crossfire-1.70.0/0000755000014500000120000000000011732537047010573 500000000000000crossfire-1.70.0/configure0000755000014500000120000211354611732537021012426 00000000000000#! /bin/sh # From configure.ac Id: configure.ac 17644 2012-03-22 05:53:09Z mwedel . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for crossfire 1.70.0. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: crossfire-devel@listserv.real-time.com about your $0: system, including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='crossfire' PACKAGE_TARNAME='crossfire' PACKAGE_VERSION='1.70.0' PACKAGE_STRING='crossfire 1.70.0' PACKAGE_BUGREPORT='crossfire-devel@listserv.real-time.com' PACKAGE_URL='' ac_unique_file="server/main.c" ac_default_prefix=/usr/games/crossfire # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS XSLTENGINE PROCESS_XSLT_FALSE PROCESS_XSLT_TRUE check_xslt_sablotronfound check_xslt_xsltprocfound check_xslt_forcedprogfound HAVE_CHECK_FALSE HAVE_CHECK_TRUE CHECK_LIBS CHECK_CFLAGS HAVE_CFNEWSPAPER_FALSE HAVE_CFNEWSPAPER_TRUE HAVE_CFLOGGER_FALSE HAVE_CFLOGGER_TRUE PLUGIN_PYTHON PYTHON_PLUGIN_FALSE PYTHON_PLUGIN_TRUE PY_INCLUDES PY_LIBS PYTHON_LIB HAVE_LIBDL_FALSE HAVE_LIBDL_TRUE pkgconfdir pkgstatedir LIBOBJS CFRHG_PLUGIN_FALSE CFRHG_PLUGIN_TRUE MAPPER_FALSE MAPPER_TRUE GD_LIBS GDLIB_CONFIG LIBCURL LIBCURL_CPPFLAGS _libcurl_config SVNVERSION BUNZIP BZIP UNCOMPRESS COMPRESS BASENAME PERL TAR GUNZIP GZIP LATEX LEXLIB LEX_OUTPUT_ROOT LEX CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_shared enable_static with_pic enable_fast_install enable_dependency_tracking with_gnu_ld with_sysroot enable_libtool_lock enable_dmalloc with_python enable_mapper enable_cfrhg with_libcurl enable_logger enable_newspaper enable_check with_check with_xsltproc ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures crossfire 1.70.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/crossfire] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of crossfire 1.70.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-libtool-lock avoid locking (might break parallel builds) --enable-dmalloc Use the dmalloc library if available, may prevent plugins from working --enable-mapper Whether or not to build the crossfire-mapper utility (default=no; requires libgd) --enable-cfrhg Whether or not to build the random house generator plugin (default=no) --disable-logger Disable the logger compilation --disable-newspaper Disable the newspaper plugin compilation --disable-check Disable the unit tests even if check is available Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-python=dir Directory to look for python headers/library (default=standard system location) --with-libcurl=DIR look for the curl library in DIR --with-check=PATH prefix where check is installed [default=auto] --with-xsltproc=path specify xslt engine to use for test report generation Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF crossfire configure 1.70.0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ----------------------------------------------------- ## ## Report this to crossfire-devel@listserv.real-time.com ## ## ----------------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_find_intX_t LINENO BITS VAR # ----------------------------------- # Finds a signed integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_intX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 $as_echo_n "checking for int$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in int$2_t 'int' 'long int' \ 'long long int' 'short int' 'signed char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else case $ac_type in #( int$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_intX_t # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ # Finds an unsigned integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by crossfire $as_me 1.70.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in utils "$srcdir"/utils; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in utils \"$srcdir\"/utils" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='crossfire' VERSION='1.70.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ac_config_headers="$ac_config_headers include/autoconf.h" # we want a config.h file instead of -D options. # Checks for programs. case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi case "$target" in alpha-dec-osf*) # If we are not using gcc, we want the ansi version of cc. if test -z "$GCC"; then # CFLAGS="$CFLAGS -std1 -warnprotos" # Not yet ready for warnprotos... CFLAGS="$CFLAGS -std1" fi ;; *) ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu for ac_prog in flex lex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LEX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LEX=$ac_cv_prog_LEX if test -n "$LEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 $as_echo "$LEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX=":" if test "x$LEX" != "x:"; then cat >conftest.l <<_ACEOF %% a { ECHO; } b { REJECT; } c { yymore (); } d { yyless (1); } e { yyless (input () != 0); } f { unput (yytext[0]); } . { BEGIN INITIAL; } %% #ifdef YYTEXT_POINTER extern char *yytext; #endif int main (void) { return ! yylex () + ! yywrap (); } _ACEOF { { ac_try="$LEX conftest.l" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$LEX conftest.l") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&6 else if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 $as_echo "$ac_cv_prog_lex_root" >&6; } LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_LIBS=$LIBS ac_cv_lib_lex='none needed' for ac_lib in '' -lfl -ll; do LIBS="$ac_lib $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_lex=$ac_lib fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext test "$ac_cv_lib_lex" != 'none needed' && break done LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 $as_echo "$ac_cv_lib_lex" >&6; } test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since # not all implementations provide the %pointer and %array declarations. ac_cv_prog_lex_yytext_pointer=no ac_save_LIBS=$LIBS LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_prog_lex_yytext_pointer=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then $as_echo "#define YYTEXT_POINTER 1" >>confdefs.h fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi if test "$LEX" = :; then LEX=${am_missing_run}flex fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports -fvisibility=hidden and the visibility __attribute__" >&5 $as_echo_n "checking whether the C compiler supports -fvisibility=hidden and the visibility __attribute__... " >&6; } saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden -Werror" if test "$cross_compiling" = yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped because cross compiling" >&5 $as_echo "skipped because cross compiling" >&6; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ __attribute__((visibility("hidden"))) int t1(void) { return 0; } __attribute__((visibility("default"))) int t2(void) { return 0; } int main(void) { t1(); t2(); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_VISIBILITY 1" >>confdefs.h CFLAGS="$saved_CFLAGS -fvisibility=hidden" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } CFLAGS="$saved_CFLAGS" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi # Check whether --enable-dmalloc was given. if test "${enable_dmalloc+set}" = set; then : enableval=$enable_dmalloc; else enable_dmalloc=no fi # Check whether --with-python was given. if test "${with_python+set}" = set; then : withval=$with_python; PYTHON_HOME="$withval" fi # Check whether --enable-mapper was given. if test "${enable_mapper+set}" = set; then : enableval=$enable_mapper; else enable_mapper=no fi # Check whether --enable-cfrhg was given. if test "${enable_cfrhg+set}" = set; then : enableval=$enable_cfrhg; else enable_cfrhg=no fi # check for some other programs # Extract the first word of "latex", so it can be a program name with args. set dummy latex; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_LATEX+:} false; then : $as_echo_n "(cached) " >&6 else case $LATEX in [\\/]* | ?:[\\/]*) ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi LATEX=$ac_cv_path_LATEX if test -n "$LATEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5 $as_echo "$LATEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gzip", so it can be a program name with args. set dummy gzip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GZIP+:} false; then : $as_echo_n "(cached) " >&6 else case $GZIP in [\\/]* | ?:[\\/]*) ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GZIP=$ac_cv_path_GZIP if test -n "$GZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5 $as_echo "$GZIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gunzip", so it can be a program name with args. set dummy gunzip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GUNZIP+:} false; then : $as_echo_n "(cached) " >&6 else case $GUNZIP in [\\/]* | ?:[\\/]*) ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GUNZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GUNZIP=$ac_cv_path_GUNZIP if test -n "$GUNZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUNZIP" >&5 $as_echo "$GUNZIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "tar", so it can be a program name with args. set dummy tar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TAR+:} false; then : $as_echo_n "(cached) " >&6 else case $TAR in [\\/]* | ?:[\\/]*) ac_cv_path_TAR="$TAR" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TAR=$ac_cv_path_TAR if test -n "$TAR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5 $as_echo "$TAR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "basename", so it can be a program name with args. set dummy basename; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_BASENAME+:} false; then : $as_echo_n "(cached) " >&6 else case $BASENAME in [\\/]* | ?:[\\/]*) ac_cv_path_BASENAME="$BASENAME" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BASENAME="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi BASENAME=$ac_cv_path_BASENAME if test -n "$BASENAME"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASENAME" >&5 $as_echo "$BASENAME" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$GZIP" -a -z "$GUNZIP" ; then echo "Found gzip, but not gunzip - setting GUNZIP to gzip -c"; GUNZIP="$GZIP -c" fi; if test -z "$COMPRESS" ; then # Extract the first word of "compress", so it can be a program name with args. set dummy compress; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_COMPRESS+:} false; then : $as_echo_n "(cached) " >&6 else case $COMPRESS in [\\/]* | ?:[\\/]*) ac_cv_path_COMPRESS="$COMPRESS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_COMPRESS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi COMPRESS=$ac_cv_path_COMPRESS if test -n "$COMPRESS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMPRESS" >&5 $as_echo "$COMPRESS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "uncompress", so it can be a program name with args. set dummy uncompress; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_UNCOMPRESS+:} false; then : $as_echo_n "(cached) " >&6 else case $UNCOMPRESS in [\\/]* | ?:[\\/]*) ac_cv_path_UNCOMPRESS="$UNCOMPRESS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_UNCOMPRESS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi UNCOMPRESS=$ac_cv_path_UNCOMPRESS if test -n "$UNCOMPRESS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNCOMPRESS" >&5 $as_echo "$UNCOMPRESS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # Extract the first word of "bzip2", so it can be a program name with args. set dummy bzip2; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_BZIP+:} false; then : $as_echo_n "(cached) " >&6 else case $BZIP in [\\/]* | ?:[\\/]*) ac_cv_path_BZIP="$BZIP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi BZIP=$ac_cv_path_BZIP if test -n "$BZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BZIP" >&5 $as_echo "$BZIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "bunzip2", so it can be a program name with args. set dummy bunzip2; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_BUNZIP+:} false; then : $as_echo_n "(cached) " >&6 else case $BUNZIP in [\\/]* | ?:[\\/]*) ac_cv_path_BUNZIP="$BUNZIP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_BUNZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi BUNZIP=$ac_cv_path_BUNZIP if test -n "$BUNZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUNZIP" >&5 $as_echo "$BUNZIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$BZIP" -a -z "$BUNZIP" ; then echo "Found bzip2, but not bunzip2 - setting BUNZIP to bzip2 -c"; BUNZIP="$BZIP -c" fi; if test -z "$COMPRESS" -a -z "$GZIP" -a -z "$BZIP" ; then echo "Unable to find either compress, bzip2, or gzip - hope you don't plan on compressing"; echo "any files."; fi; # Check if svnversion is avaliable to get the rev number # Extract the first word of "svnversion", so it can be a program name with args. set dummy svnversion; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SVNVERSION+:} false; then : $as_echo_n "(cached) " >&6 else case $SVNVERSION in [\\/]* | ?:[\\/]*) ac_cv_path_SVNVERSION="$SVNVERSION" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SVNVERSION="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SVNVERSION=$ac_cv_path_SVNVERSION if test -n "$SVNVERSION"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SVNVERSION" >&5 $as_echo "$SVNVERSION" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check for some library functions { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pow" >&5 $as_echo_n "checking for library containing pow... " >&6; } if ${ac_cv_search_pow+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pow (); int main () { return pow (); ; return 0; } _ACEOF for ac_lib in '' m; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_pow=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_pow+:} false; then : break fi done if ${ac_cv_search_pow+:} false; then : else ac_cv_search_pow=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pow" >&5 $as_echo "$ac_cv_search_pow" >&6; } ac_res=$ac_cv_search_pow if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sqrt" >&5 $as_echo_n "checking for library containing sqrt... " >&6; } if ${ac_cv_search_sqrt+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sqrt (); int main () { return sqrt (); ; return 0; } _ACEOF for ac_lib in '' m; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_sqrt=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_sqrt+:} false; then : break fi done if ${ac_cv_search_sqrt+:} false; then : else ac_cv_search_sqrt=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sqrt" >&5 $as_echo "$ac_cv_search_sqrt" >&6; } ac_res=$ac_cv_search_sqrt if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi # Misc libraries. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char crypt (); int main () { return crypt (); ; return 0; } _ACEOF for ac_lib in '' crypt; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_crypt=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_crypt+:} false; then : break fi done if ${ac_cv_search_crypt+:} false; then : else ac_cv_search_crypt=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 $as_echo "$ac_cv_search_crypt" >&6; } ac_res=$ac_cv_search_crypt if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_crypt in -ldes" >&5 $as_echo_n "checking for des_crypt in -ldes... " >&6; } if ${ac_cv_lib_des_des_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldes $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char des_crypt (); int main () { return des_crypt (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_des_des_crypt=yes else ac_cv_lib_des_des_crypt=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_crypt" >&5 $as_echo "$ac_cv_lib_des_des_crypt" >&6; } if test "x$ac_cv_lib_des_des_crypt" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDES 1 _ACEOF LIBS="-ldes $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5 $as_echo_n "checking for compress in -lz... " >&6; } if ${ac_cv_lib_z_compress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char compress (); int main () { return compress (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_compress=yes else ac_cv_lib_z_compress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5 $as_echo "$ac_cv_lib_z_compress" >&6; } if test "x$ac_cv_lib_z_compress" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBZ 1 _ACEOF LIBS="-lz $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi # Check whether --with-libcurl was given. if test "${with_libcurl+set}" = set; then : withval=$with_libcurl; _libcurl_with=$withval else _libcurl_with=yes fi if test "$_libcurl_with" != "no" ; then for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done _libcurl_version_parse="eval $AWK '{split(\$NF,A,\".\"); X=256*256*A[1]+256*A[2]+A[3]; print X;}'" _libcurl_try_link=yes if test -d "$_libcurl_with" ; then LIBCURL_CPPFLAGS="-I$withval/include" _libcurl_ldflags="-L$withval/lib" # Extract the first word of "curl-config", so it can be a program name with args. set dummy curl-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path__libcurl_config+:} false; then : $as_echo_n "(cached) " >&6 else case $_libcurl_config in [\\/]* | ?:[\\/]*) ac_cv_path__libcurl_config="$_libcurl_config" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in "$withval/bin" do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path__libcurl_config="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path__libcurl_config" && ac_cv_path__libcurl_config=""$withval/bin"" ;; esac fi _libcurl_config=$ac_cv_path__libcurl_config if test -n "$_libcurl_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_libcurl_config" >&5 $as_echo "$_libcurl_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else # Extract the first word of "curl-config", so it can be a program name with args. set dummy curl-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path__libcurl_config+:} false; then : $as_echo_n "(cached) " >&6 else case $_libcurl_config in [\\/]* | ?:[\\/]*) ac_cv_path__libcurl_config="$_libcurl_config" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path__libcurl_config="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi _libcurl_config=$ac_cv_path__libcurl_config if test -n "$_libcurl_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_libcurl_config" >&5 $as_echo "$_libcurl_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test x$_libcurl_config != "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the version of libcurl" >&5 $as_echo_n "checking for the version of libcurl... " >&6; } if ${libcurl_cv_lib_curl_version+:} false; then : $as_echo_n "(cached) " >&6 else libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK '{print $2}'` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libcurl_cv_lib_curl_version" >&5 $as_echo "$libcurl_cv_lib_curl_version" >&6; } _libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse` _libcurl_wanted=`echo 0 | $_libcurl_version_parse` if test $_libcurl_wanted -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcurl >= version " >&5 $as_echo_n "checking for libcurl >= version ... " >&6; } if ${libcurl_cv_lib_version_ok+:} false; then : $as_echo_n "(cached) " >&6 else if test $_libcurl_version -ge $_libcurl_wanted ; then libcurl_cv_lib_version_ok=yes else libcurl_cv_lib_version_ok=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libcurl_cv_lib_version_ok" >&5 $as_echo "$libcurl_cv_lib_version_ok" >&6; } fi if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then if test x"$LIBCURL_CPPFLAGS" = "x" ; then LIBCURL_CPPFLAGS=`$_libcurl_config --cflags` fi if test x"$LIBCURL" = "x" ; then LIBCURL=`$_libcurl_config --libs` # This is so silly, but Apple actually has a bug in their # curl-config script. Fixed in Tiger, but there are still # lots of Panther installs around. case "${host}" in powerpc-apple-darwin7*) LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'` ;; esac fi # All curl-config scripts support --feature _libcurl_features=`$_libcurl_config --feature` # Is it modern enough to have --protocols? (7.12.4) if test $_libcurl_version -ge 461828 ; then _libcurl_protocols=`$_libcurl_config --protocols` fi else _libcurl_try_link=no fi unset _libcurl_wanted fi if test $_libcurl_try_link = yes ; then # we didn't find curl-config, so let's see if the user-supplied # link line (or failing that, "-lcurl") is enough. LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libcurl is usable" >&5 $as_echo_n "checking whether libcurl is usable... " >&6; } if ${libcurl_cv_lib_curl_usable+:} false; then : $as_echo_n "(cached) " >&6 else _libcurl_save_cppflags=$CPPFLAGS CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS" _libcurl_save_libs=$LIBS LIBS="$LIBCURL $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { /* Try and use a few common options to force a failure if we are missing symbols or can't link. */ int x; curl_easy_setopt(NULL,CURLOPT_URL,NULL); x=CURL_ERROR_SIZE; x=CURLOPT_WRITEFUNCTION; x=CURLOPT_FILE; x=CURLOPT_ERRORBUFFER; x=CURLOPT_STDERR; x=CURLOPT_VERBOSE; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : libcurl_cv_lib_curl_usable=yes else libcurl_cv_lib_curl_usable=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS=$_libcurl_save_cppflags LIBS=$_libcurl_save_libs unset _libcurl_save_cppflags unset _libcurl_save_libs fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libcurl_cv_lib_curl_usable" >&5 $as_echo "$libcurl_cv_lib_curl_usable" >&6; } if test $libcurl_cv_lib_curl_usable = yes ; then # Does curl_free() exist in this version of libcurl? # If not, fake it with free() _libcurl_save_cppflags=$CPPFLAGS CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" _libcurl_save_libs=$LIBS LIBS="$LIBS $LIBCURL" ac_fn_c_check_func "$LINENO" "curl_free" "ac_cv_func_curl_free" if test "x$ac_cv_func_curl_free" = xyes; then : else $as_echo "#define curl_free free" >>confdefs.h fi CPPFLAGS=$_libcurl_save_cppflags LIBS=$_libcurl_save_libs unset _libcurl_save_cppflags unset _libcurl_save_libs $as_echo "#define HAVE_LIBCURL 1" >>confdefs.h for _libcurl_feature in $_libcurl_features ; do cat >>confdefs.h <<_ACEOF #define `$as_echo "libcurl_feature_$_libcurl_feature" | $as_tr_cpp` 1 _ACEOF eval `$as_echo "libcurl_feature_$_libcurl_feature" | $as_tr_sh`=yes done if test "x$_libcurl_protocols" = "x" ; then # We don't have --protocols, so just assume that all # protocols are available _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT" if test x$libcurl_feature_SSL = xyes ; then _libcurl_protocols="$_libcurl_protocols HTTPS" # FTPS wasn't standards-compliant until version # 7.11.0 if test $_libcurl_version -ge 461568; then _libcurl_protocols="$_libcurl_protocols FTPS" fi fi fi for _libcurl_protocol in $_libcurl_protocols ; do cat >>confdefs.h <<_ACEOF #define `$as_echo "libcurl_protocol_$_libcurl_protocol" | $as_tr_cpp` 1 _ACEOF eval `$as_echo "libcurl_protocol_$_libcurl_protocol" | $as_tr_sh`=yes done else unset LIBCURL unset LIBCURL_CPPFLAGS fi fi unset _libcurl_try_link unset _libcurl_version_parse unset _libcurl_config unset _libcurl_feature unset _libcurl_features unset _libcurl_protocol unset _libcurl_protocols unset _libcurl_version unset _libcurl_ldflags fi if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes ; then # This is the IF-NO path : else # This is the IF-YES path : fi unset _libcurl_with # For utils/mapper cf_make_mapper=no if eval "test x$enable_mapper = xyes"; then # Extract the first word of "gdlib-config", so it can be a program name with args. set dummy gdlib-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GDLIB_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $GDLIB_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_GDLIB_CONFIG="$GDLIB_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GDLIB_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GDLIB_CONFIG=$ac_cv_path_GDLIB_CONFIG if test -n "$GDLIB_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDLIB_CONFIG" >&5 $as_echo "$GDLIB_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$GDLIB_CONFIG"; then GD_LIBS="`$GDLIB_CONFIG --ldflags` `$GDLIB_CONFIG --libs` -lgd" GD_LIBS=$GD_LIBS cf_make_mapper=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find gdlib-config; will not build crossfire-mapper." >&5 $as_echo "$as_me: WARNING: Cannot find gdlib-config; will not build crossfire-mapper." >&2;} fi fi if test x$cf_make_mapper = xyes; then MAPPER_TRUE= MAPPER_FALSE='#' else MAPPER_TRUE='#' MAPPER_FALSE= fi # Random house generator if test x$enable_cfrhg = xyes; then CFRHG_PLUGIN_TRUE= CFRHG_PLUGIN_FALSE='#' else CFRHG_PLUGIN_TRUE='#' CFRHG_PLUGIN_FALSE= fi LIBS="$LIBS $LIBCURL" CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" # Gros - Changed this to support some external programs that do not like dmalloc (like Python). # If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one. if eval "test x$enable_dmalloc = xyes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldmalloc" >&5 $as_echo_n "checking for main in -ldmalloc... " >&6; } if ${ac_cv_lib_dmalloc_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldmalloc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dmalloc_main=yes else ac_cv_lib_dmalloc_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_main" >&5 $as_echo "$ac_cv_lib_dmalloc_main" >&6; } if test "x$ac_cv_lib_dmalloc_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDMALLOC 1 _ACEOF LIBS="-ldmalloc $LIBS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldmalloclp" >&5 $as_echo_n "checking for main in -ldmalloclp... " >&6; } if ${ac_cv_lib_dmalloclp_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldmalloclp $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dmalloclp_main=yes else ac_cv_lib_dmalloclp_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloclp_main" >&5 $as_echo "$ac_cv_lib_dmalloclp_main" >&6; } if test "x$ac_cv_lib_dmalloclp_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBDMALLOCLP 1 _ACEOF LIBS="-ldmalloclp $LIBS" fi fi # Checks for header files. ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_ac_Header=yes" else eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in arpa/inet.h fcntl.h limits.h malloc.h stddef.h stdlib.h strings.h sys/file.h sys/ioctl.h sys/time.h time.h unistd.h sys/ttycom.h sys/termios.h crypt.h des.h zlib.h pthread.h curl/curl.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "16" "ac_cv_c_int16_t" case $ac_cv_c_int16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int16_t $ac_cv_c_int16_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t" case $ac_cv_c_int32_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int32_t $ac_cv_c_int32_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t" case $ac_cv_c_int8_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int8_t $ac_cv_c_int8_t _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "#define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "#define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 $as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then $as_echo "#define uid_t int" >>confdefs.h $as_echo "#define gid_t int" >>confdefs.h fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 $as_echo_n "checking size of long long... " >&6; } if ${ac_cv_sizeof_long_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 $as_echo "$ac_cv_sizeof_long_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long _ACEOF # Checks for library functions. if test $ac_cv_c_compiler_gnu = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5 $as_echo_n "checking whether $CC needs -traditional... " >&6; } if ${ac_cv_prog_gcc_traditional+:} false; then : $as_echo_n "(cached) " >&6 else ac_pattern="Autoconf.*'x'" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes else ac_cv_prog_gcc_traditional=no fi rm -f conftest* if test $ac_cv_prog_gcc_traditional = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "$ac_pattern" >/dev/null 2>&1; then : ac_cv_prog_gcc_traditional=yes fi rm -f conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5 $as_echo "$ac_cv_prog_gcc_traditional" >&6; } if test $ac_cv_prog_gcc_traditional = yes; then CC="$CC -traditional" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setpgrp takes no argument" >&5 $as_echo_n "checking whether setpgrp takes no argument... " >&6; } if ${ac_cv_func_setpgrp_void+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : as_fn_error $? "cannot check setpgrp when cross compiling" "$LINENO" 5 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* If this system has a BSD-style setpgrp which takes arguments, setpgrp(1, 1) will fail with ESRCH and return -1, in that case exit successfully. */ return setpgrp (1,1) != -1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_setpgrp_void=no else ac_cv_func_setpgrp_void=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_setpgrp_void" >&5 $as_echo "$ac_cv_func_setpgrp_void" >&6; } if test $ac_cv_func_setpgrp_void = yes; then $as_echo "#define SETPGRP_VOID 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi for ac_func in strftime do : ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" if test "x$ac_cv_func_strftime" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRFTIME 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5 $as_echo_n "checking for strftime in -lintl... " >&6; } if ${ac_cv_lib_intl_strftime+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strftime (); int main () { return strftime (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_strftime=yes else ac_cv_lib_intl_strftime=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5 $as_echo "$ac_cv_lib_intl_strftime" >&6; } if test "x$ac_cv_lib_intl_strftime" = xyes; then : $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h LIBS="-lintl $LIBS" fi fi done for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h fi fi done for ac_func in getdtablesize gettimeofday mkdir mktime rmdir select socket strcasecmp strcspn strerror strncasecmp strspn strstr strtol snprintf setsid srandom srand48 srand sysconf scandir getaddrinfo getnameinfo do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # alphasort can not be added to AC_CHECK_FUNCS because { $as_echo "$as_me:${as_lineno-$LINENO}: checking checking if alphasort is defined" >&5 $as_echo_n "checking checking if alphasort is defined... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { alphasort; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_alphasort=yes else ac_cv_func_alphasort=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "$ac_cv_func_alphasort" = yes; then $as_echo "#define HAVE_ALPHASORT 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how many args gettimeofday uses" >&5 $as_echo_n "checking how many args gettimeofday uses... " >&6; } if ${ac_cv_gettimeofday_args+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct timeval tv; struct timezone tzp; gettimeofday(&tv, &tzp); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_gettimeofday_args=2 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct timeval tv; gettimeofday(&tv, NULL); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_gettimeofday_args=2 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct timeval tv; gettimeofday(&tv); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_gettimeofday_args=1 else ac_gettimeofday_args=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_gettimeofday_args=$ac_gettimeofday_args fi ac_gettimeofday_args=$ac_cv_gettimeofday_args if test $ac_gettimeofday_args = 1 ; then $as_echo "#define HAVE_GETTIMEOFDAY /**/" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: one argument" >&5 $as_echo "one argument" >&6; } elif test $ac_gettimeofday_args = 2 ; then $as_echo "#define HAVE_GETTIMEOFDAY /**/" >>confdefs.h $as_echo "#define GETTIMEOFDAY_TWO_ARGS /**/" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: two arguments" >&5 $as_echo "two arguments" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } fi pkgstatedir=$localstatedir/$PACKAGE pkgconfdir=$sysconfdir/$PACKAGE cat >>confdefs.h <<_ACEOF #define COMPRESS "${COMPRESS}" _ACEOF cat >>confdefs.h <<_ACEOF #define UNCOMPRESS "${UNCOMPRESS}" _ACEOF cat >>confdefs.h <<_ACEOF #define GZIP "${GZIP}" _ACEOF cat >>confdefs.h <<_ACEOF #define GUNZIP "${GUNZIP}" _ACEOF cat >>confdefs.h <<_ACEOF #define BZIP "${BZIP}" _ACEOF cat >>confdefs.h <<_ACEOF #define BUNZIP "${BUNZIP}" _ACEOF ############################################# # Plugin configuration { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : cf_have_libdl=yes fi if test "x$cf_have_libdl" = "xyes"; then HAVE_LIBDL_TRUE= HAVE_LIBDL_FALSE='#' else HAVE_LIBDL_TRUE='#' HAVE_LIBDL_FALSE= fi # Test for libdl isn't taken into account for many plugins, don't take into # account for Python. Fixes bug #3353920. # Besides, one can hope modern systems do have that function. #if test "x$cf_have_libdl" = "xyes" ; then ############### # Python plugin PYTHON_LIB="" PY_LIBS="" PY_INCLUDES="" dir="" if test "x$PYTHON_HOME" != "x"; then for dir in $PYTHON_HOME/include/python{,2.7,2.6,2.5,2.4,3.1,3.0} ; do for ac_header in "$dir/Python.h" do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF cf_have_python_h=yes fi done if test "x$cf_have_python_h" != "x" ; then PY_INCLUDES="-I$dir" break fi done PYTHON_SEARCH=$PYTHON else for ac_header in Python.h do : ac_fn_c_check_header_mongrel "$LINENO" "Python.h" "ac_cv_header_Python_h" "$ac_includes_default" if test "x$ac_cv_header_Python_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PYTHON_H 1 _ACEOF cf_have_python_h=yes fi done if test "x$cf_have_python_h" = "x" ; then for dir in /usr{,/local}/include/python{,2.7,2.6,2.5,2.4,3.1,3.0} ; do for ac_header in "$dir/Python.h" do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF cf_have_python_h=yes fi done if test "x$cf_have_python_h" != "x" ; then PY_INCLUDES="-I$dir" break fi done else PY_INCLUDES="" fi fi if test "x$cf_have_python_h" = "xyes" ; then PYTHON_LIB="" if test "x$PYTHON_HOME" != "x"; then # I am going of how manually compiled python installed on # my system. We can't use AC_CHECK_LIB, because that will # find the one in the stanard location, which is what we # want to avoid. python=`echo $dir | awk -F/ '{print $NF}'`; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python lib in various places" >&5 $as_echo_n "checking for python lib in various places... " >&6; } if test -f $PYTHON_HOME/lib/lib$python.so ; then # Hopefully -R is a universal option { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $PYTHON_HOME/lib/" >&5 $as_echo "found in $PYTHON_HOME/lib/" >&6; } if test -n "$hardcode_libdir_flag_spec" ; then oldlibdir=$libdir libdir="$PYTHON_HOME/lib/" rpath=`eval echo $hardcode_libdir_flag_spec` PYTHON_LIB="$rpath -L$PYTHON_HOME/lib/ -l$python" echo " rpath=$rpath" libdir=$oldlibdir else PYTHON_LIB="-L$PYTHON_HOME/lib/ -l$python" fi elif test -f $PYTHON_HOME/lib/$python/lib$python.a ; then PYTHON_LIB="$PYTHON_HOME/lib/$python/lib$python.a" { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $PYTHON_HOME/lib/$python" >&5 $as_echo "found in $PYTHON_HOME/lib/$python" >&6; } elif test -f $PYTHON_HOME/lib/$python/config/lib$python.a ; then PYTHON_LIB="$PYTHON_HOME/lib/$python/config/lib$python.a" { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $PYTHON_HOME/lib/$python/config" >&5 $as_echo "found in $PYTHON_HOME/lib/$python/config" >&6; } fi else for lib in python{,2.7,2.6,2.5,2.4,3.1,3.0} ; do as_ac_Lib=`$as_echo "ac_cv_lib_$lib''_PyArg_ParseTuple" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PyArg_ParseTuple in -l$lib" >&5 $as_echo_n "checking for PyArg_ParseTuple in -l$lib... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$lib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char PyArg_ParseTuple (); int main () { return PyArg_ParseTuple (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : PYTHON_LIB="-l$lib" fi if test "x$PYTHON_LIB" != "x" ; then break fi done # These checks are a bit bogus - would be better to use AC_CHECK_LIB, # but it caches the result of the first check, even if we run AC_CHECK_LIB # with other options. python=`echo $dir | awk -F/ '{print $NF}'`; if test "x$PYTHON_LIB" = "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking For python lib in various places" >&5 $as_echo_n "checking For python lib in various places... " >&6; } if test -f /usr/lib/$python/lib$python.a ; then PYTHON_LIB="/usr/lib/$python/lib$python.a" { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in /usr/lib/$python" >&5 $as_echo "found in /usr/lib/$python" >&6; } elif test -f /usr/lib/$python/config/lib$python.a ; then PYTHON_LIB="/usr/lib/$python/config/lib$python.a" { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in /usr/lib/$python/config" >&5 $as_echo "found in /usr/lib/$python/config" >&6; } fi fi fi if test "x$PYTHON_LIB" != "x" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5 $as_echo_n "checking for main in -lpthread... " >&6; } if ${ac_cv_lib_pthread_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $PY_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_main=yes else ac_cv_lib_pthread_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5 $as_echo "$ac_cv_lib_pthread_main" >&6; } if test "x$ac_cv_lib_pthread_main" = xyes; then : PY_LIBS="$PY_LIBS -lpthread" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lutil" >&5 $as_echo_n "checking for main in -lutil... " >&6; } if ${ac_cv_lib_util_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $PY_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_util_main=yes else ac_cv_lib_util_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_main" >&5 $as_echo "$ac_cv_lib_util_main" >&6; } if test "x$ac_cv_lib_util_main" = xyes; then : PY_LIBS="$PY_LIBS -lutil" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5 $as_echo_n "checking for main in -ldl... " >&6; } if ${ac_cv_lib_dl_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $PY_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_main=yes else ac_cv_lib_dl_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_main" >&5 $as_echo "$ac_cv_lib_dl_main" >&6; } if test "x$ac_cv_lib_dl_main" = xyes; then : PY_LIBS="$PY_LIBS -ldl" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether python supports the \"L\" format specifier" >&5 $as_echo_n "checking whether python supports the \"L\" format specifier... " >&6; } saved_LIBS="$LIBS" LIBS="$LIBS $PYTHON_LIB $PY_LIBS" saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PY_INCLUDES" if test "$cross_compiling" = yes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipped because cross compiling" >&5 $as_echo "skipped because cross compiling" >&6; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if PY_MAJOR_VERSION >= 3 #define IS_PY3K #endif static PyObject *callback(PyObject *self, PyObject *args) { long long val; if (!PyArg_ParseTuple(args, "L", &val)) return NULL; if (val != 1) exit(1); Py_INCREF(Py_None); return Py_None; } static PyMethodDef TestMethods[] = { {"callback", callback, METH_VARARGS}, {NULL, NULL, 0, NULL}, }; #ifdef IS_PY3K static PyModuleDef TestModule = { PyModuleDef_HEAD_INIT, "test", NULL, -1, TestMethods, NULL, NULL, NULL, NULL }; static PyObject* PyInit_test(void) { PyObject *module = PyModule_Create(&TestModule); return module; } #endif int main() { #ifdef IS_PY3K PyImport_AppendInittab("test", &PyInit_test); #endif Py_Initialize(); #ifndef IS_PY3K Py_InitModule("test", TestMethods); #endif return(PyRun_SimpleString("import test\ntest.callback(1)\n") != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PYTHON_LIB="" PYLIBS="" PY_INCLUDE="" fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$saved_LIBS" CFLAGS="$saved_CFLAGS" fi fi if test "x$PYTHON_LIB" = "x" ; then cf_will_build_python="no" { $as_echo "$as_me:${as_lineno-$LINENO}: No Python found. Python plugin will not be built." >&5 $as_echo "$as_me: No Python found. Python plugin will not be built." >&6;} else PLUGIN_PYTHON="cfpython.la" cf_will_build_python="yes" fi # *** Put other plugins configuration code here *** #else # AC_MSG_NOTICE([No dl library found. Plugins will not be supported.]) #fi if test "x$PLUGIN_PYTHON" != "x"; then PYTHON_PLUGIN_TRUE= PYTHON_PLUGIN_FALSE='#' else PYTHON_PLUGIN_TRUE='#' PYTHON_PLUGIN_FALSE= fi ######################## # CFLogger and CFNewsPaper configuration # Check whether --enable-logger was given. if test "${enable_logger+set}" = set; then : enableval=$enable_logger; else enable_logger=yes fi # Check whether --enable-newspaper was given. if test "${enable_newspaper+set}" = set; then : enableval=$enable_newspaper; else enable_newspaper=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_open in -lsqlite3" >&5 $as_echo_n "checking for sqlite3_open in -lsqlite3... " >&6; } if ${ac_cv_lib_sqlite3_sqlite3_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsqlite3 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sqlite3_open (); int main () { return sqlite3_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sqlite3_sqlite3_open=yes else ac_cv_lib_sqlite3_sqlite3_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_open" >&5 $as_echo "$ac_cv_lib_sqlite3_sqlite3_open" >&6; } if test "x$ac_cv_lib_sqlite3_sqlite3_open" = xyes; then : cf_have_libsqlite=yes fi if test x"$cf_have_libsqlite" = "xyes" -a x"$enable_logger" = "xyes"; then HAVE_CFLOGGER_TRUE= HAVE_CFLOGGER_FALSE='#' else HAVE_CFLOGGER_TRUE='#' HAVE_CFLOGGER_FALSE= fi if test x"$cf_have_libsqlite" = "xyes" -a x"$enable_newspaper" = "xyes"; then HAVE_CFNEWSPAPER_TRUE= HAVE_CFNEWSPAPER_FALSE='#' else HAVE_CFNEWSPAPER_TRUE='#' HAVE_CFNEWSPAPER_FALSE= fi ######################## # Unit test configuration # Check whether --enable-check was given. if test "${enable_check+set}" = set; then : enableval=$enable_check; else enable_check=yes fi # Check whether --with-check was given. if test "${with_check+set}" = set; then : withval=$with_check; fi min_check_version=0.8.2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for check - version >= $min_check_version" >&5 $as_echo_n "checking for check - version >= $min_check_version... " >&6; } if test x$with_check = xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 $as_echo "disabled" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Check not found; cannot run unit tests!" >&5 $as_echo "$as_me: WARNING: Check not found; cannot run unit tests!" >&2;} have_check="no" else if test "x$with_check" != x; then CHECK_CFLAGS="-I$with_check/include" CHECK_LIBS="-L$with_check/lib -lcheck" else CHECK_CFLAGS="" CHECK_LIBS="-lcheck" fi ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" rm -f conf.check-test if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.check-test"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = strdup("$min_check_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_check_version"); return 1; } if ((CHECK_MAJOR_VERSION != check_major_version) || (CHECK_MINOR_VERSION != check_minor_version) || (CHECK_MICRO_VERSION != check_micro_version)) { printf("\n*** The check header file (version %d.%d.%d) does not match\n", CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); printf("*** the check library (version %d.%d.%d).\n", check_major_version, check_minor_version, check_micro_version); return 1; } if ((check_major_version > major) || ((check_major_version == major) && (check_minor_version > minor)) || ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of check (%d.%d.%d) was found.\n", check_major_version, check_minor_version, check_micro_version); printf("*** You need a version of check being at least %d.%d.%d.\n", major, minor, micro); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the check library and header\n"); printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); printf("*** to specify the prefix where the correct version was installed.\n"); } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_check=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" if test "x$no_check" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_check="yes" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test -f conf.check-test ; then : else echo "*** Could not run check test program, checking why..." CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding check. You'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for" echo "*** the exact error that occured." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi CHECK_CFLAGS="" CHECK_LIBS="" rm -f conf.check-test { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Check not found; cannot run unit tests!" >&5 $as_echo "$as_me: WARNING: Check not found; cannot run unit tests!" >&2;} have_check="no" fi rm -f conf.check-test fi if test x"$have_check" = "xyes" -a x"$enable_check" = "xyes"; then HAVE_CHECK_TRUE= HAVE_CHECK_FALSE='#' else HAVE_CHECK_TRUE='#' HAVE_CHECK_FALSE= fi # Check whether --with-xsltproc was given. if test "${with_xsltproc+set}" = set; then : withval=$with_xsltproc; check_xslt_forcedprogfound=$withval fi if test "x$check_xslt_forcedprogfound" != "x"; then # Extract the first word of "$check_xslt_forcedprogfound", so it can be a program name with args. set dummy $check_xslt_forcedprogfound; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_check_xslt_forcedprogfound+:} false; then : $as_echo_n "(cached) " >&6 else case $check_xslt_forcedprogfound in [\\/]* | ?:[\\/]*) ac_cv_path_check_xslt_forcedprogfound="$check_xslt_forcedprogfound" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_check_xslt_forcedprogfound="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_check_xslt_forcedprogfound" && ac_cv_path_check_xslt_forcedprogfound="notfound" ;; esac fi check_xslt_forcedprogfound=$ac_cv_path_check_xslt_forcedprogfound if test -n "$check_xslt_forcedprogfound"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_xslt_forcedprogfound" >&5 $as_echo "$check_xslt_forcedprogfound" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # Extract the first word of "xsltproc", so it can be a program name with args. set dummy xsltproc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_check_xslt_xsltprocfound+:} false; then : $as_echo_n "(cached) " >&6 else case $check_xslt_xsltprocfound in [\\/]* | ?:[\\/]*) ac_cv_path_check_xslt_xsltprocfound="$check_xslt_xsltprocfound" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_check_xslt_xsltprocfound="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_check_xslt_xsltprocfound" && ac_cv_path_check_xslt_xsltprocfound="notfound" ;; esac fi check_xslt_xsltprocfound=$ac_cv_path_check_xslt_xsltprocfound if test -n "$check_xslt_xsltprocfound"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_xslt_xsltprocfound" >&5 $as_echo "$check_xslt_xsltprocfound" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "sabcmd", so it can be a program name with args. set dummy sabcmd; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_check_xslt_sablotronfound+:} false; then : $as_echo_n "(cached) " >&6 else case $check_xslt_sablotronfound in [\\/]* | ?:[\\/]*) ac_cv_path_check_xslt_sablotronfound="$check_xslt_sablotronfound" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_check_xslt_sablotronfound="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_check_xslt_sablotronfound" && ac_cv_path_check_xslt_sablotronfound="notfound" ;; esac fi check_xslt_sablotronfound=$ac_cv_path_check_xslt_sablotronfound if test -n "$check_xslt_sablotronfound"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_xslt_sablotronfound" >&5 $as_echo "$check_xslt_sablotronfound" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi xslt_prog="notfound" if test "$check_xslt_forcedprogfound" != notfound -a "x$check_xslt_forcedprogfound" != x; then xslt_prog="$check_xslt_forcedprogfound" cat << \EOF > configtest.xml HAMMER HG2606 32456240 .00 EOF cat << \EOF > configtest.xsl

Tool Information (edit):


EOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking xslt compliance of $xslt_prog" >&5 $as_echo_n "checking xslt compliance of $xslt_prog... " >&6; } to_run=$xslt_prog to_run=${to_run/\%1/configtest.xml} to_run=${to_run/\%2/configtest.xsl} to_run=${to_run/\%3/configtest.out} if { ac_try='$to_run' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; };then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; }; xsltengine=$xslt_prog else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; }; xslt_prog="notfound" fi fi xslt_prog="notfound" if test "$check_xslt_xsltprocfound" != notfound -a "$xslt_prog" = notfound; then xslt_prog="$check_xslt_xsltprocfound -o %3 %2 %1" cat << \EOF > configtest.xml HAMMER HG2606 32456240 .00 EOF cat << \EOF > configtest.xsl

Tool Information (edit):


EOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking xslt compliance of $xslt_prog" >&5 $as_echo_n "checking xslt compliance of $xslt_prog... " >&6; } to_run=$xslt_prog to_run=${to_run/\%1/configtest.xml} to_run=${to_run/\%2/configtest.xsl} to_run=${to_run/\%3/configtest.out} if { ac_try='$to_run' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; };then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; }; xsltengine=$xslt_prog else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; }; xslt_prog="notfound" fi fi if test "$check_xslt_sablotronfound" != notfound -a "$xslt_prog" = notfound; then xslt_prog="$check_xslt_sablotronfound %2 %1 %3" cat << \EOF > configtest.xml HAMMER HG2606 32456240 .00 EOF cat << \EOF > configtest.xsl

Tool Information (edit):


EOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking xslt compliance of $xslt_prog" >&5 $as_echo_n "checking xslt compliance of $xslt_prog... " >&6; } to_run=$xslt_prog to_run=${to_run/\%1/configtest.xml} to_run=${to_run/\%2/configtest.xsl} to_run=${to_run/\%3/configtest.out} if { ac_try='$to_run' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; };then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; }; xsltengine=$xslt_prog else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; }; xslt_prog="notfound" fi fi if test x"$have_check" = "xyes" -a x"$enable_check" = "xyes" -a x"$xsltengine" != x; then PROCESS_XSLT_TRUE= PROCESS_XSLT_FALSE='#' else PROCESS_XSLT_TRUE='#' PROCESS_XSLT_FALSE= fi XSLTENGINE=$xsltengine ######################## # Generate output ac_config_files="$ac_config_files Makefile doc/Makefile doc/Developers/Makefile doc/playbook/Makefile doc/playbook-html/Makefile doc/scripts/Makefile doc/spell-docs/Makefile doc/spoiler/Makefile doc/spoiler-html/Makefile common/Makefile devel/Makefile include/Makefile lib/Makefile random_maps/Makefile server/Makefile socket/Makefile types/Makefile utils/Makefile lib/checkarch.pl lib/collect.pl utils/add_throw.perl utils/metaserver.pl utils/scores.pl utils/player_dl.pl utils/crossloop.tmpl utils/crossloop.pl.tmpl utils/crossloop.web plugins/Makefile plugins/cfanim/Makefile plugins/cfanim/include/Makefile plugins/cflogger/Makefile plugins/cfnewspaper/Makefile plugins/cfnewspaper/include/Makefile plugins/cfpython/Makefile plugins/cfpython/include/Makefile plugins/cfrhg/Makefile plugins/cfrhg/include/Makefile plugins/citylife/Makefile plugins/citylife/include/Makefile plugins/common/Makefile plugins/common/include/Makefile test/Makefile test/bugs/Makefile test/bugs/bugtrack/Makefile test/include/Makefile test/templates/Makefile test/toolkit/Makefile test/unit/Makefile test/unit/common/Makefile test/unit/random_maps/Makefile test/unit/server/Makefile test/unit/socket/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MAPPER_TRUE}" && test -z "${MAPPER_FALSE}"; then as_fn_error $? "conditional \"MAPPER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CFRHG_PLUGIN_TRUE}" && test -z "${CFRHG_PLUGIN_FALSE}"; then as_fn_error $? "conditional \"CFRHG_PLUGIN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBDL_TRUE}" && test -z "${HAVE_LIBDL_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${PYTHON_PLUGIN_TRUE}" && test -z "${PYTHON_PLUGIN_FALSE}"; then as_fn_error $? "conditional \"PYTHON_PLUGIN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_CFLOGGER_TRUE}" && test -z "${HAVE_CFLOGGER_FALSE}"; then as_fn_error $? "conditional \"HAVE_CFLOGGER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_CFNEWSPAPER_TRUE}" && test -z "${HAVE_CFNEWSPAPER_FALSE}"; then as_fn_error $? "conditional \"HAVE_CFNEWSPAPER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_CHECK_TRUE}" && test -z "${HAVE_CHECK_FALSE}"; then as_fn_error $? "conditional \"HAVE_CHECK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${PROCESS_XSLT_TRUE}" && test -z "${PROCESS_XSLT_FALSE}"; then as_fn_error $? "conditional \"PROCESS_XSLT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by crossfire $as_me 1.70.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ crossfire config.status 1.70.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "include/autoconf.h") CONFIG_HEADERS="$CONFIG_HEADERS include/autoconf.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/Developers/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Developers/Makefile" ;; "doc/playbook/Makefile") CONFIG_FILES="$CONFIG_FILES doc/playbook/Makefile" ;; "doc/playbook-html/Makefile") CONFIG_FILES="$CONFIG_FILES doc/playbook-html/Makefile" ;; "doc/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES doc/scripts/Makefile" ;; "doc/spell-docs/Makefile") CONFIG_FILES="$CONFIG_FILES doc/spell-docs/Makefile" ;; "doc/spoiler/Makefile") CONFIG_FILES="$CONFIG_FILES doc/spoiler/Makefile" ;; "doc/spoiler-html/Makefile") CONFIG_FILES="$CONFIG_FILES doc/spoiler-html/Makefile" ;; "common/Makefile") CONFIG_FILES="$CONFIG_FILES common/Makefile" ;; "devel/Makefile") CONFIG_FILES="$CONFIG_FILES devel/Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "random_maps/Makefile") CONFIG_FILES="$CONFIG_FILES random_maps/Makefile" ;; "server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;; "socket/Makefile") CONFIG_FILES="$CONFIG_FILES socket/Makefile" ;; "types/Makefile") CONFIG_FILES="$CONFIG_FILES types/Makefile" ;; "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;; "lib/checkarch.pl") CONFIG_FILES="$CONFIG_FILES lib/checkarch.pl" ;; "lib/collect.pl") CONFIG_FILES="$CONFIG_FILES lib/collect.pl" ;; "utils/add_throw.perl") CONFIG_FILES="$CONFIG_FILES utils/add_throw.perl" ;; "utils/metaserver.pl") CONFIG_FILES="$CONFIG_FILES utils/metaserver.pl" ;; "utils/scores.pl") CONFIG_FILES="$CONFIG_FILES utils/scores.pl" ;; "utils/player_dl.pl") CONFIG_FILES="$CONFIG_FILES utils/player_dl.pl" ;; "utils/crossloop.tmpl") CONFIG_FILES="$CONFIG_FILES utils/crossloop.tmpl" ;; "utils/crossloop.pl.tmpl") CONFIG_FILES="$CONFIG_FILES utils/crossloop.pl.tmpl" ;; "utils/crossloop.web") CONFIG_FILES="$CONFIG_FILES utils/crossloop.web" ;; "plugins/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/Makefile" ;; "plugins/cfanim/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfanim/Makefile" ;; "plugins/cfanim/include/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfanim/include/Makefile" ;; "plugins/cflogger/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cflogger/Makefile" ;; "plugins/cfnewspaper/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfnewspaper/Makefile" ;; "plugins/cfnewspaper/include/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfnewspaper/include/Makefile" ;; "plugins/cfpython/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfpython/Makefile" ;; "plugins/cfpython/include/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfpython/include/Makefile" ;; "plugins/cfrhg/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfrhg/Makefile" ;; "plugins/cfrhg/include/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/cfrhg/include/Makefile" ;; "plugins/citylife/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/citylife/Makefile" ;; "plugins/citylife/include/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/citylife/include/Makefile" ;; "plugins/common/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/common/Makefile" ;; "plugins/common/include/Makefile") CONFIG_FILES="$CONFIG_FILES plugins/common/include/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/bugs/Makefile") CONFIG_FILES="$CONFIG_FILES test/bugs/Makefile" ;; "test/bugs/bugtrack/Makefile") CONFIG_FILES="$CONFIG_FILES test/bugs/bugtrack/Makefile" ;; "test/include/Makefile") CONFIG_FILES="$CONFIG_FILES test/include/Makefile" ;; "test/templates/Makefile") CONFIG_FILES="$CONFIG_FILES test/templates/Makefile" ;; "test/toolkit/Makefile") CONFIG_FILES="$CONFIG_FILES test/toolkit/Makefile" ;; "test/unit/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/Makefile" ;; "test/unit/common/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/common/Makefile" ;; "test/unit/random_maps/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/random_maps/Makefile" ;; "test/unit/server/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/server/Makefile" ;; "test/unit/socket/Makefile") CONFIG_FILES="$CONFIG_FILES test/unit/socket/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Configuration summary...." >&5 $as_echo "$as_me: Configuration summary...." >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Paths" >&5 $as_echo "$as_me: Paths" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: prefix default value ${prefix}" >&5 $as_echo "$as_me: prefix default value ${prefix}" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: exec_prefix default value ${exec_prefix}" >&5 $as_echo "$as_me: exec_prefix default value ${exec_prefix}" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will put executables in $bindir" >&5 $as_echo "$as_me: Will put executables in $bindir" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will put resources in $datadir" >&5 $as_echo "$as_me: Will put resources in $datadir" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will put config in $sysconfdir" >&5 $as_echo "$as_me: Will put config in $sysconfdir" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will put server runtime datas in: $localstatedir" >&5 $as_echo "$as_me: Will put server runtime datas in: $localstatedir" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Build options" >&5 $as_echo "$as_me: Build options" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will build metaserver2 support? $ac_cv_header_curl_curl_h" >&5 $as_echo "$as_me: Will build metaserver2 support? $ac_cv_header_curl_curl_h" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will build plugins? $cf_have_libdl" >&5 $as_echo "$as_me: Will build plugins? $cf_have_libdl" >&6;} if test x"$cf_have_libsqlite" = "xyes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Will build cflogger? $enable_logger" >&5 $as_echo "$as_me: Will build cflogger? $enable_logger" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will build cfnewspaper? $enable_newspaper" >&5 $as_echo "$as_me: Will build cfnewspaper? $enable_newspaper" >&6;} fi if test "x$cf_have_libdl" = "xyes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Will build python plugin? $cf_will_build_python" >&5 $as_echo "$as_me: Will build python plugin? $cf_will_build_python" >&6;} fi if test "x$enable_cfrhg" = "xyes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Will build random house plugin? yes" >&5 $as_echo "$as_me: Will build random house plugin? yes" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: Will build random house plugin? no" >&5 $as_echo "$as_me: Will build random house plugin? no" >&6;} fi if test x"$xsltengine" != "x" ; then check_complement="(will generate report)" fi if test "x$have_check" = "xyes" -a x"$enable_check" = "xyes" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Will process unit testing? yes $check_complement" >&5 $as_echo "$as_me: Will process unit testing? yes $check_complement" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: (run make; make -k check)" >&5 $as_echo "$as_me: (run make; make -k check)" >&6;} else { $as_echo "$as_me:${as_lineno-$LINENO}: Will process unit testing? no" >&5 $as_echo "$as_me: Will process unit testing? no" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: If you are a developer, you MUST install the check framework" >&5 $as_echo "$as_me: If you are a developer, you MUST install the check framework" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: and write automated tests for all your add-ons!" >&5 $as_echo "$as_me: and write automated tests for all your add-ons!" >&6;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Build utilities (Not required to build or run the server)" >&5 $as_echo "$as_me: Build utilities (Not required to build or run the server)" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: Will build crossfire-mapper? $cf_make_mapper" >&5 $as_echo "$as_me: Will build crossfire-mapper? $cf_make_mapper" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: " >&5 $as_echo "$as_me: " >&6;} crossfire-1.70.0/common/0000755000014500000120000000000011732537042012056 500000000000000crossfire-1.70.0/common/friend.c0000644000014500000120000001145111731300526013405 00000000000000/* * static char *rcsid_friend_c = * "$Id: friend.c 11594 2009-03-04 13:14:45Z anmaster $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file friend.c * Functions related to relationship management. */ #include /** * Add a new friendly object to the linked list of friendly objects. * Will log an error if the object is already on that list. * * @param op * object to add to the list. */ void add_friendly_object(object *op) { objectlink *ol; /* Add some error checking. This shouldn't happen, but the friendly * object list usually isn't very long, and remove_friendly_object * won't remove it either. Plus, it is easier to put a breakpoint in * the debugger here and see where the problem is happening. */ if (is_friendly(op)) { LOG(llevError, "add_friendly_object: Trying to add object already on list (%s)\n", op->name); return; } ol = first_friendly_object; first_friendly_object = get_objectlink(); first_friendly_object->ob = op; first_friendly_object->id = op->count; first_friendly_object->next = ol; } /** * Removes the specified object from the linked list of friendly objects. * * @param op * object to remove from list. */ void remove_friendly_object(object *op) { objectlink *this; CLEAR_FLAG(op, FLAG_FRIENDLY); if (!first_friendly_object) { LOG(llevError, "remove_friendly_object called with empty friendly list, remove ob=%s\n", op->name); return; } /* if the first object happens to be the one, processing is pretty * easy. */ if (first_friendly_object->ob == op) { this = first_friendly_object; first_friendly_object = this->next; free(this); } else { objectlink *prev = first_friendly_object; for (this = first_friendly_object->next; this != NULL; this = this->next) { if (this->ob == op) break; prev = this; } if (this) { /* This should not happen. But if it does, presumably the * call to remove it is still valid. */ if (this->id != op->count) { LOG(llevError, "remove_friendly_object, tags do no match, %s, %u != %u\n", op->name ? op->name : "none", op->count, this->id); } prev->next = this->next; free(this); } } } /** * Dumps all friendly objects. Invoked in DM-mode with dumpfriendlyobjects command. * * @note * logs at the error level. */ void dump_friendly_objects(void) { objectlink *ol; for (ol = first_friendly_object; ol != NULL; ol = ol->next) LOG(llevError, "%s (%u)\n", ol->ob->name, ol->ob->count); } /** * It traverses the friendly list removing objects that should not be here * (ie, do not have friendly flag set, freed, etc) */ void clean_friendly_list(void) { objectlink *this, *prev = NULL, *next; int count = 0; for (this = first_friendly_object; this != NULL; this = next) { next = this->next; if (QUERY_FLAG(this->ob, FLAG_FREED) || !QUERY_FLAG(this->ob, FLAG_FRIENDLY) || (this->id != this->ob->count)) { if (prev) { prev->next = this->next; } else { first_friendly_object = this->next; } count++; free(this); /* If we removed the object, then prev is still valid. */ } else prev = this; } if (count) LOG(llevDebug, "clean_friendly_list: Removed %d bogus links\n", count); } /** * Checks if the given object is already in the friendly list or not * Lauwenmark - 31/07/05 * * @param op * item to check * @return * 1 if on friendly list, 0 else */ int is_friendly(const object *op) { objectlink *ol; for (ol = first_friendly_object; ol != NULL; ol = ol->next) if (ol->ob == op) return 1; return 0; } crossfire-1.70.0/common/re-cmp.c0000644000014500000120000004161411731300526013325 00000000000000/* * static char *rcsid_player_c = * "$Id: re-cmp.c 13988 2010-10-10 14:35:49Z anmaster $"; */ /** * @file re-cmp.c * Pattern match a string, parsing some of the common RE-metacharacters. * * This code is public domain, but I would appreciate to hear of * improvements or even the fact that you use it in your program. * * Deliberate BUGS: * - These tokens are not supported: | ( ) * - You will get the longest expansion of the _first_ string which * matches the RE, not the longest string which would be the proper * behaviour for a RE-matcher. * * Author: Kjetil T. Homme (kjetilho@ifi.uio.no) May 1993 */ #include #include #include #include #include #include #include #include /* Needed for OUT_OF_MEMORY. */ /* Unlikely to be needed any more... */ #ifdef HAVE_MEMORY_H # include #endif /* Get prototype functions to prevent warnings. */ #if defined(__sun__) && defined(StupidSunHeaders) # include # include # include "sunos.h" /* Prototypes for standard libraries, sunos lack those */ #endif /* P r o t o t y p e s */ const char *re_cmp(const char *, const char *); static Boolean re_cmp_step(const char *, const char *, unsigned, int); static void re_init(void); static Boolean re_match_token(uchar, selection *); static const char *re_get_token(selection *, const char *); #ifdef DEBUG2 static void re_dump_sel(selection *); #endif /* G l o b a l v a r i a b l e s */ static Boolean re_init_done = False; static selection *re_token[RE_TOKEN_MAX]; static const char *re_substr[RE_TOKEN_MAX]; static unsigned int re_token_depth; /* E x t e r n a l f u n c t i o n */ /** * re-cmp - get regular expression match. * * @param str * string that will be matched against the regexp. * @param regexp * regular expression. * @return * @li no match or error in regexp. * @li pointer to beginning of matching string */ const char *re_cmp(const char *str, const char *regexp) { const char *next_regexp; Boolean once = False; Boolean matched; if (re_init_done == False) re_init(); #ifdef SAFE_CHECKS if (regexp == NULL || str == NULL) return NULL; #endif if (*regexp == '^') { once = True; ++regexp; } if (*regexp == 0) { /* // or /^/ matches any string */ return str; } next_regexp = re_get_token(re_token[0], regexp); re_token_depth = 0; re_substr[0] = next_regexp; matched = False; while (*str != '\0' && !(matched = re_match_token(*str, re_token[0]))) str++; if (matched && *next_regexp == 0) return str; /* Apologies for the nearly duplicated code below, hopefully it * speeds things up. */ if (once) { switch (re_token[0]->repeat) { case rep_once: if (matched == False) return NULL; break; case rep_once_or_more: if (matched == False) return NULL; if (re_cmp_step(str+1, regexp, 0, 1)) return str; break; case rep_null_or_once: if (matched == False) return re_cmp_step(str, next_regexp, 1, 0) ? str : NULL; break; case rep_null_or_more: if (matched) { if (re_cmp_step(str+1, regexp, 0, 1)) return str; } else { return re_cmp_step(str, next_regexp, 1, 0) ? str : NULL; } break; } return re_cmp_step(str+1, next_regexp, 1, 0) ? str : NULL; } if (matched) { switch (re_token[0]->repeat) { case rep_once: case rep_null_or_once: break; case rep_once_or_more: case rep_null_or_more: if (re_cmp_step(str+1, regexp, 0, 1)) return str; break; } /* The logic here is that re_match_token only sees * if the one letter matches. Thus, if the * regex is like '@match eureca', and the * the user enters anything with an e, re_match_token * returns true, but they really need to match the * entire regexp, which re_cmp_step will do. * However, what happens is that there can be a case * where the string being match is something like * 'where is eureca'. In this case, the re_match_token * matches that first e, but the re_cmp_step below, * fails because the next character (r) doesn't match * the u. So we call re_cmp with the string * after the first r, so that it should hopefully match * up properly. */ if (re_cmp_step(str+1, next_regexp, 1, 0)) return str; else if (*(str+1) != 0) return re_cmp(str+1, regexp); } return NULL; } /* A u x i l l i a r y f u n c t i o n s */ /** * Tries to match a string with a regexp. * * @param str * string to match * @param regexp * pattern * @param slot * number of the token which under consideration * @param matches * how many times the token has matched * @return * True if match, False else. */ static Boolean re_cmp_step(const char *str, const char *regexp, unsigned slot, int matches) { const char *next_regexp; Boolean matched; #ifdef DEBUG /* fprintf(stderr, "['%s', '%s', %u, %d]\n", str, regexp, slot, matches);*/ #endif if (*regexp == 0) { /* When we reach the end of the regexp, the match is a success */ return True; } /* This chunk of code makes sure that the regexp-tokenising happens * only once. We only tokenise as much as we need. */ if (slot > re_token_depth) { re_token_depth = slot; if (re_token[slot] == NULL) re_token[slot] = (selection *)malloc(sizeof(selection)); next_regexp = re_get_token(re_token[slot], regexp); if (next_regexp == NULL) { /* Syntax error, what else can we do? */ return False; } re_substr[slot] = next_regexp; } else { next_regexp = re_substr[slot]; } matched = re_match_token(*str, re_token[slot]); if (matched) ++matches; if (*str == 0) return (*next_regexp == 0 || re_token[slot]->type == sel_end) && matched; switch (re_token[slot]->repeat) { case rep_once: if (matches == 1) { /* (matches == 1) => (matched == True) */ return re_cmp_step(str+1, next_regexp, slot+1, 0); } return False; case rep_once_or_more: if (matched) { /* (matched == True) => (matches >= 1) */ /* First check if the current token repeats more */ if (re_cmp_step(str+1, regexp, slot, matches)) return True; return re_cmp_step(str+1, next_regexp, slot+1, 0); } return False; case rep_null_or_once: /* We must go on to the next token, but should we advance str? */ if (matches == 0) { return re_cmp_step(str, next_regexp, slot+1, 0); } else if (matches == 1) { return re_cmp_step(str+1, next_regexp, slot+1, 0); } return False; /* Not reached */ case rep_null_or_more: if (matched) { /* Look for further repeats, advance str */ if (re_cmp_step(str+1, regexp, slot, matches)) return True; return re_cmp_step(str, next_regexp, slot+1, 0); } return re_cmp_step(str, next_regexp, slot+1, 0); } return False; } /** * Init the regular expression structures. * * @note * will fatal() in case of memory error. */ static void re_init(void) { int i; re_token[0] = (selection *)malloc(sizeof(selection)); if (re_token[0] == NULL) fatal(OUT_OF_MEMORY); for (i = 1; i < RE_TOKEN_MAX; i++) re_token[i] = NULL; re_init_done = True; } /** * Tests if a char matches a token. * * @param c * char to test. * @param sel * token to test. * @return * True if matches, False else. */ static Boolean re_match_token(uchar c, selection *sel) { switch (sel->type) { case sel_any: return True; case sel_end: return (c == 0); case sel_single: return (tolower(c) == tolower(sel->u.single)); case sel_range: return (c >= sel->u.range.low && c <= sel->u.range.high); case sel_array: return (sel->u.array[c]); case sel_not_single: return (tolower(c) != tolower(sel->u.single)); case sel_not_range: return (c < sel->u.range.low && c > sel->u.range.high); } return False; } /** * Get the first regular expression token found in regexp in sel. * * @param[out] sel * where to store the token. * @param regexp * regular expression. * @return * @li NULL: syntax error * @li pointer to first character past token. */ static const char *re_get_token(selection *sel, const char *regexp) { #ifdef SAFE_CHECKS # define exit_if_null if (*regexp == 0) return NULL #else # define exit_if_null #endif Boolean quoted = False; uchar looking_at; #ifdef SAFE_CHECKS if (sel == NULL || regexp == NULL || *regexp == 0) return NULL; #endif do { looking_at = *regexp++; switch (looking_at) { case '$': if (quoted) { quoted = False; sel->type = sel_single; sel->u.single = looking_at; } else { sel->type = sel_end; } break; case '.': if (quoted) { quoted = False; sel->type = sel_single; sel->u.single = looking_at; } else { sel->type = sel_any; } break; case '[': /* The fun stuff... perhaps a little obfuscated since I * don't trust the compiler to analyse liveness. */ if (quoted) { quoted = False; sel->type = sel_single; sel->u.single = looking_at; } else { Boolean neg = False; uchar first, last = 0; exit_if_null; looking_at = *regexp++; if (looking_at == '^') { neg = True; exit_if_null; looking_at = *regexp++; } first = looking_at; exit_if_null; looking_at = *regexp++; if (looking_at == ']') { /* On the form [q] or [^q] */ sel->type = neg ? sel_not_single : sel_single; sel->u.single = first; break; } else if (looking_at == '-') { exit_if_null; last = *regexp++; if (last == ']') { /* On the form [A-] or [^A-]. Checking for * [,-] and making it a range is probably not * worth it :-) */ sel->type = sel_array; memset(sel->u.array, neg, sizeof(sel->u.array)); sel->u.array[first] = sel->u.array['-'] = !neg; break; } else { exit_if_null; looking_at = *regexp++; if (looking_at == ']') { /* On the form [A-G] or [^A-G]. Note that [G-A] * is a syntax error. Fair enough, I think. */ #ifdef SAFE_CHECKS if (first > last) return NULL; #endif sel->type = neg ? sel_not_range : sel_range; sel->u.range.low = first; sel->u.range.high = last; break; } } } { /* The datastructure can only represent a RE this * complex with an array. */ int i; uchar previous; sel->type = sel_array; memset(sel->u.array, neg, sizeof(sel->u.array)); if (last) { /* It starts with a range */ #ifdef SAFE_CHECKS if (first > last) return NULL; #endif for (i = first; i <= last; i++) { sel->u.array[i] = !neg; } } else { /* It begins with a "random" character */ sel->u.array[first] = !neg; } sel->u.array[looking_at] = !neg; exit_if_null; previous = looking_at; looking_at = *regexp++; /* Add more characters to the array until we reach * ]. Quoting doesn't and shouldn't work in here. * ("]" should be put first, and "-" last if they * are needed inside this construct.) * Look for ranges as we go along. */ while (looking_at != ']') { if (looking_at == '-') { exit_if_null; looking_at = *regexp++; if (looking_at != ']') { #ifdef SAFE_CHECKS if (previous > looking_at) return NULL; #endif for (i = previous+1; i < looking_at; i++) { /* previous has already been set and * looking_at is set below. */ sel->u.array[i] = !neg; } exit_if_null; } else { sel->u.array['-'] = !neg; break; } } sel->u.array[looking_at] = !neg; previous = looking_at; exit_if_null; looking_at = *regexp++; } } } break; case '\\': if (quoted) { quoted = False; sel->type = sel_single; sel->u.single = looking_at; } else { quoted = True; } break; default: quoted = False; sel->type = sel_single; sel->u.single = looking_at; break; } } while (quoted); if (*regexp == '*') { sel->repeat = rep_null_or_more; ++regexp; } else if (*regexp == '?') { sel->repeat = rep_null_or_once; ++regexp; } else if (*regexp == '+') { sel->repeat = rep_once_or_more; ++regexp; } else { sel->repeat = rep_once; } return regexp; } /* D e b u g c o d e */ #ifdef DEBUG2 /* compile all with DEBUG also ? hevi@lut.fi */ /** * Dumps specified selection to stdout. * * @param sel * token to dump. */ static void re_dump_sel(selection *sel) { switch (sel->type) { case sel_any: printf("."); break; case sel_end: printf("$"); break; case sel_single: printf("<%c>", sel->u.single); break; case sel_range: printf("[%c-%c]", sel->u.range.low, sel->u.range.high); break; case sel_array: { int i; printf("["); for (i = 0; i < UCHAR_MAX; i++) { if (sel->u.array[i]) { printf("%c", i); } } printf("]"); } break; case sel_not_single: printf("[^%c]", sel->u.single); break; case sel_not_range: printf("[^%c-%c]", sel->u.range.low, sel->u.range.high); break; default: printf(""); break; } switch (sel->repeat) { case rep_once: break; case rep_null_or_once: printf("?"); break; case rep_null_or_more: printf("*"); break; case rep_once_or_more: printf("+"); break; default: printf(""); break; } } int main(int argc, char *argv[]) { char *re, *m; selection sel; re = re_get_token(&sel, argv[1]); printf("'%s' -> '%s'\n", argv[1], re); re_dump_sel(&sel); printf("\n"); m = re_cmp(argv[2], argv[1]); if (m) printf("MATCH! -> '%s'\n", m); return 0; } #endif crossfire-1.70.0/common/stringbuffer.c0000644000014500000120000000745211731300526014644 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ #include #include #include #include "global.h" #include "libproto.h" #include "stringbuffer.h" struct StringBuffer { /** * The string buffer. The first {@link #pos} bytes contain the collected * string. It's size is at least {@link #size} bytes. */ char *buf; /** * The current length of {@link #buf}. The invariant pos < * size always holds; this means there is always enough room to * attach a trailing \0 character. */ size_t pos; /** * The allocation size of {@link #buf}. */ size_t size; }; /** * Make sure that at least len bytes are available in the passed * string buffer. * * @param sb The string buffer to modify. * * @param len The number of bytes to allocate. */ static void stringbuffer_ensure(StringBuffer *sb, size_t len); StringBuffer *stringbuffer_new(void) { StringBuffer *sb; sb = malloc(sizeof(*sb)); if (sb == NULL) { fatal(OUT_OF_MEMORY); } sb->size = 256; sb->buf = malloc(sb->size); sb->pos = 0; return sb; } void stringbuffer_delete(StringBuffer *sb) { free(sb->buf); free(sb); } char *stringbuffer_finish(StringBuffer *sb) { char *result; sb->buf[sb->pos] = '\0'; result = sb->buf; free(sb); return result; } sstring stringbuffer_finish_shared(StringBuffer *sb) { char *str; sstring result; str = stringbuffer_finish(sb); result = add_string(str); free(str); return result; } void stringbuffer_append_string(StringBuffer *sb, const char *str) { size_t len; len = strlen(str); stringbuffer_ensure(sb, len+1); memcpy(sb->buf+sb->pos, str, len); sb->pos += len; } void stringbuffer_append_printf(StringBuffer *sb, const char *format, ...) { size_t size; size = 100; /* arbitrary guess */ for (;;) { int n; va_list arg; stringbuffer_ensure(sb, size); va_start(arg, format); n = vsnprintf(sb->buf+sb->pos, size, format, arg); va_end(arg); if (n > -1 && (size_t)n < size) { sb->pos += (size_t)n; break; } if (n > -1) { size = n+1; /* precisely what is needed */ } else { size *= 2; /* twice the old size */ } } } void stringbuffer_append_stringbuffer(StringBuffer *sb, const StringBuffer *sb2) { stringbuffer_ensure(sb, sb2->pos+1); memcpy(sb->buf+sb->pos, sb2->buf, sb2->pos); sb->pos += sb2->pos; } static void stringbuffer_ensure(StringBuffer *sb, size_t len) { char *tmp; size_t new_size; if (sb->pos+len <= sb->size) { return; } new_size = sb->pos+len+256; tmp = realloc(sb->buf, new_size); if (tmp == NULL) { fatal(OUT_OF_MEMORY); } sb->buf = tmp; sb->size = new_size; } size_t stringbuffer_length(StringBuffer *sb) { return sb->pos; } crossfire-1.70.0/common/time.c0000644000014500000120000002727611731300526013110 00000000000000/* * static char *rcsid_time_c = * "$Id: time.c 13308 2010-05-28 06:12:12Z kbulgrien $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Ingame time functions. */ #include #include #ifndef WIN32 /* ---win32 exclude header */ #include #include #include #endif /* win32 */ /** * Gloabal variables: */ uint32 max_time = MAX_TIME; struct timeval last_time; /** Size of history buffer. */ #define PBUFLEN 100 static uint32 process_utime_save[PBUFLEN]; /**< Historic data. */ static uint32 psaveind; /**< Index in ::process_utime_save. */ static uint32 process_max_utime = 0; /**< Longest cycle time. */ static uint32 process_min_utime = 999999999; /**< Shortest cycle time. */ static uint32 process_tot_mtime; /**< ? */ uint32 pticks; /**< ? */ static uint32 process_utime_long_count; /**< ? */ /** Ingame seasons. */ static const char *const season_name[SEASONS_PER_YEAR+1] = { "The Season of New Year", "The Season of Growth", "The Season of Harvest", "The Season of Decay", "The Season of the Blizzard", "\n" }; /** Days of the week. */ static const char *const weekdays[DAYS_PER_WEEK] = { "the Day of the Moon", "the Day of the Bull", "the Day of the Deception", "the Day of Thunder", "the Day of Freedom", "the Day of the Great Gods", "the Day of the Sun" }; /** Months. */ static const char *const month_name[MONTHS_PER_YEAR] = { "Month of Winter", /* 0 */ "Month of the Ice Dragon", "Month of the Frost Giant", "Month of Valriel", "Month of Lythander", "Month of the Harvest", "Month of Gaea", "Month of Futility", "Month of the Dragon", "Month of the Sun", "Month of the Great Infernus", "Month of Ruggilli", "Month of the Dark Shades", "Month of the Devourers", "Month of Sorig", "Month of the Ancient Darkness", "Month of Gorokh" }; static const char *const periodsofday[PERIODS_PER_DAY] = { "Night", "Dawn", "Morning", "Noon", "Evening", "Dusk" }; /** * give access to weekday names */ const char *get_periodofday(const int index) { return ((index >= 0) && (index < PERIODS_PER_DAY)) ? periodsofday[index] : NULL; } /** * give access to month names */ const char *get_month_name(const int index) { return ((index >= 0) && (index < MONTHS_PER_YEAR)) ? month_name[index] : NULL; } /** * give access to weekday names */ const char *get_weekday(const int index) { return ((index >= 0) && (index < DAYS_PER_WEEK)) ? weekdays[index] : NULL; } /** * give access to season names */ const char *get_season_name(const int index) { return ((index >= 0) && (index < (SEASONS_PER_YEAR+1))) ? season_name[index] : NULL; } /** * Initialise all variables used in the timing routines. */ void reset_sleep(void) { int i; for (i = 0; i < PBUFLEN; i++) process_utime_save[i] = 0; psaveind = 0; process_max_utime = 0; process_min_utime = 999999999; process_tot_mtime = 0; pticks = 0; (void)GETTIMEOFDAY(&last_time); } /** * Adds time to our history list. */ static void log_time(uint32 process_utime) { pticks++; if (++psaveind >= PBUFLEN) psaveind = 0; process_utime_save[psaveind] = process_utime; if (process_utime > process_max_utime) process_max_utime = process_utime; if (process_utime < process_min_utime) process_min_utime = process_utime; process_tot_mtime += process_utime/1000; } /** * Checks elapsed time since last tick. * * @return true if the time passed since last tick is more than max-time. */ int enough_elapsed_time(void) { static struct timeval new_time; uint32 elapsed_utime; (void)GETTIMEOFDAY(&new_time); elapsed_utime = (new_time.tv_sec-last_time.tv_sec)*1000000+new_time.tv_usec-last_time.tv_usec; if (elapsed_utime > max_time) { log_time(elapsed_utime); last_time.tv_sec = new_time.tv_sec; last_time.tv_usec = new_time.tv_usec; return 1; } return 0; } /** * sleep_delta checks how much time has elapsed since last tick. * If it is less than max_time, the remaining time is slept with select(). */ void sleep_delta(void) { static struct timeval new_time; long sleep_sec, sleep_usec; (void)GETTIMEOFDAY(&new_time); sleep_sec = last_time.tv_sec-new_time.tv_sec; sleep_usec = max_time-(new_time.tv_usec-last_time.tv_usec); /* This is very ugly, but probably the fastest for our use: */ while (sleep_usec < 0) { sleep_usec += 1000000; sleep_sec -= 1; } while (sleep_usec > 1000000) { sleep_usec -= 1000000; sleep_sec += 1; } log_time((new_time.tv_sec-last_time.tv_sec)*1000000+new_time.tv_usec-last_time.tv_usec); if (sleep_sec >= 0 && sleep_usec > 0) { static struct timeval sleep_time; sleep_time.tv_sec = sleep_sec; sleep_time.tv_usec = sleep_usec; #ifndef WIN32 /* 'select' doesn't work on Windows, 'Sleep' is used instead */ select(0, NULL, NULL, NULL, &sleep_time); #else if (sleep_time.tv_sec) Sleep(sleep_time.tv_sec*1000); Sleep((int)(sleep_time.tv_usec/1000.)); #endif } else process_utime_long_count++; /* * Set last_time to when we're expected to wake up: */ last_time.tv_usec += max_time; while (last_time.tv_usec > 1000000) { last_time.tv_usec -= 1000000; last_time.tv_sec++; } /* * Don't do too much catching up: * (Things can still get jerky on a slow/loaded computer) */ if ((last_time.tv_sec-new_time.tv_sec)*1000000+(last_time.tv_usec-new_time.tv_usec) < 0) { last_time.tv_sec = new_time.tv_sec; last_time.tv_usec = new_time.tv_usec; } } /** * Sets the max speed. Can be called by a DM through the speed command. * * @param t * new speed. */ void set_max_time(long t) { max_time = t; } extern unsigned long todtick; /** * Computes the ingame time of the day. * * @param[out] tod * where to store information. Must not be NULL. */ void get_tod(timeofday_t *tod) { tod->year = todtick/HOURS_PER_YEAR; tod->month = (todtick/HOURS_PER_MONTH)%MONTHS_PER_YEAR; tod->day = (todtick%HOURS_PER_MONTH)/DAYS_PER_MONTH; tod->dayofweek = tod->day%DAYS_PER_WEEK; tod->hour = todtick%HOURS_PER_DAY; tod->minute = (pticks%PTICKS_PER_CLOCK)/(PTICKS_PER_CLOCK/58); if (tod->minute > 58) tod->minute = 58; /* it's imprecise at best anyhow */ tod->weekofmonth = tod->day/WEEKS_PER_MONTH; if (tod->month < 3) tod->season = 0; else if (tod->month < 6) tod->season = 1; else if (tod->month < 9) tod->season = 2; else if (tod->month < 12) tod->season = 3; else tod->season = 4; if (tod->hour < 5) /*until 4:59*/ tod->periodofday = 0; else if (tod->hour < 8) tod->periodofday = 1; else if (tod->hour < 13) tod->periodofday = 2; else if (tod->hour < 15) tod->periodofday = 3; else if (tod->hour < 20) tod->periodofday = 4; else if (tod->hour < 23) tod->periodofday = 5; else /*back to night*/ tod->periodofday = 0; } /** * Prints the time. * * @param op * player who requested time. */ static void print_tod(object *op) { timeofday_t tod; const char *suf; int day; get_tod(&tod); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_INFO, "It is %d minute%s past %d o'clock %s, on %s", tod.minute+1, ((tod.minute+1 < 2) ? "" : "s"), ((tod.hour%14 == 0) ? 14 : ((tod.hour)%14)), ((tod.hour >= 14) ? "pm" : "am"), weekdays[tod.dayofweek]); day = tod.day+1; if (day == 1 || ((day%10) == 1 && day > 20)) suf = "st"; else if (day == 2 || ((day%10) == 2 && day > 20)) suf = "nd"; else if (day == 3 || ((day%10) == 3 && day > 20)) suf = "rd"; else suf = "th"; draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_INFO, "The %d%s Day of the %s, Year %d", day, suf, month_name[tod.month], tod.year+1); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_INFO, "Time of Year: %s", season_name[tod.season]); } /** * Players wants to know the time. Called through the 'time' command. * * @param op * player who requested time. */ void time_info(object *op) { int tot = 0, long_count = 0; uint32 maxt = 0, mint = 99999999, i; print_tod(op); if (!QUERY_FLAG(op, FLAG_WIZ)) return; draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "Total time:"); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "ticks=%d time=%d.%2d", pticks, process_tot_mtime/1000, process_tot_mtime%1000); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "avg time=%dms max time=%dms min time=%dms", process_tot_mtime/pticks, process_max_utime/1000, process_min_utime/1000); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "ticks longer than max time (%dms) = %d (%d%%)", max_time/1000, process_utime_long_count, 100*process_utime_long_count/pticks); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "Time last %d ticks:", MIN(pticks, PBUFLEN)); for (i = 0; i < MIN(pticks, PBUFLEN); i++) { tot += process_utime_save[i]; if (process_utime_save[i] > maxt) maxt = process_utime_save[i]; if (process_utime_save[i] < mint) mint = process_utime_save[i]; if (process_utime_save[i] > max_time) long_count++; } draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "avg time=%dms max time=%dms min time=%dms", tot/MIN(pticks, PBUFLEN)/1000, maxt/1000, mint/1000); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "ticks longer than max time (%dms) = %d (%d%%)", max_time/1000, long_count, 100*long_count/MIN(pticks, PBUFLEN)); } /** * Gets the seconds. * * @return * seconds. */ long seconds(void) { struct timeval now; (void)GETTIMEOFDAY(&now); return now.tv_sec; } crossfire-1.70.0/common/recipe.c0000644000014500000120000006707611731300526013423 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001-2006 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file recipe.c * Basic stuff for use with the alchemy code. Clearly some of this stuff * could go into server/alchemy, but I left it here just in case it proves * more generally useful. * * Nov 1995 - file created by b.t. thomas@astro.psu.edu * * Our definition of 'formula' is any product of an alchemical process. * Ingredients are just comma delimited list of archetype (or object) * names. * * Example 'formula' entry in libdir/formulae: * Object transparency * chance 10 * ingred dust of beholdereye,gem * arch potion_generic * * An ingredient is a name, which can contain an initial number for how many are needed. */ #include #include #include #include static void build_stringlist(const char *str, char ***result_list, size_t *result_size); static void check_formulae(void); /** Pointer to first recipelist. */ static recipelist *formulalist; /** * Allocates a new recipelist. * * Will call fatal() if memory allocation error. * * @return * new structure initialized. Never NULL. */ static recipelist *init_recipelist(void) { recipelist *tl = (recipelist *)malloc(sizeof(recipelist)); if (tl == NULL) fatal(OUT_OF_MEMORY); tl->total_chance = 0; tl->number = 0; tl->items = NULL; tl->next = NULL; return tl; } /** * Allocates a new recipe. * * Will call fatal() if memory allocation error. * * @return * new structure initialized. Never NULL. */ static recipe *get_empty_formula(void) { recipe *t = (recipe *)malloc(sizeof(recipe)); if (t == NULL) fatal(OUT_OF_MEMORY); t->chance = 0; t->index = 0; t->transmute = 0; t->yield = 0; t->diff = 0; t->exp = 0; t->keycode = NULL; t->title = NULL; t->arch_names = 0; t->arch_name = NULL; t->skill = NULL; t->cauldron = NULL; t->ingred = NULL; t->ingred_count = 0; t->next = NULL; t->failure_arch = NULL; t->failure_message = NULL; t->min_level = 0; t->is_combination = 0; t->tool = NULL; t->tool_size = 0; return t; } /** * Gets a formula list by ingredients count. * * @param i * number of ingredients. * * @return * pointer to the formula list, or NULL if it doesn't exist. */ recipelist *get_formulalist(int i) { recipelist *fl = formulalist; int number = i; while (fl && number > 1) { if (!(fl = fl->next)) break; number--; } return fl; } /** * Makes sure we actually have the requested artifact * and archetype. * * @param rp * recipe we want to check. * * @return * 1 if recipe is ok, 0 if missing something (and LOG() to error). */ static int check_recipe(const recipe *rp) { size_t i; int result; result = 1; for (i = 0; i < rp->arch_names; i++) { if (find_archetype(rp->arch_name[i]) != NULL) { const artifact *art = locate_recipe_artifact(rp, i); if (!art && strcmp(rp->title, "NONE") != 0) { LOG(llevError, "\nWARNING: Formula %s of %s has no artifact.\n", rp->arch_name[i], rp->title); result = 0; } } else { LOG(llevError, "\nWARNING: Can't find archetype %s for formula %s\n", rp->arch_name[i], rp->title); result = 0; } } return result; } /** * Builds up the lists of formula from the file in the libdir. -b.t. */ void init_formulae(void) { static int has_been_done = 0; FILE *fp; char filename[MAX_BUF], buf[MAX_BUF], *cp, *next; recipe *formula = NULL; recipelist *fl = init_recipelist(); linked_char *tmp; int value; if (!formulalist) formulalist = fl; if (has_been_done) return; else has_been_done = 1; snprintf(filename, sizeof(filename), "%s/formulae", settings.datadir); LOG(llevDebug, "Reading alchemical formulae from %s...\n", filename); if ((fp = fopen(filename, "r")) == NULL) { LOG(llevError, "Can't open %s.\n", filename); return; } while (fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; if ((cp = strchr(buf, '\n')) != NULL) *cp = '\0'; cp = buf; while (*cp == ' ') /* Skip blanks */ cp++; if (!strncmp(cp, "Object", 6)) { formula = get_empty_formula(); formula->title = add_string(strchr(cp, ' ')+1); } else if (formula == NULL) { LOG(llevError, "recipe.c: First key in formulae file is not \"Object\".\n"); fatal(SEE_LAST_ERROR); } else if (!strncmp(cp, "keycode", 7)) { formula->keycode = add_string(strchr(cp, ' ')+1); } else if (sscanf(cp, "trans %d", &value)) { formula->transmute = value; } else if (sscanf(cp, "yield %d", &value)) { formula->yield = value; } else if (sscanf(cp, "chance %d", &value)) { formula->chance = value; } else if (sscanf(cp, "exp %d", &value)) { formula->exp = value; } else if (sscanf(cp, "diff %d", &value)) { formula->diff = value; } else if (!strncmp(cp, "ingred", 6)) { int numb_ingred; formula->ingred_count = 1; cp = strchr(cp, ' ')+1; do { if ((next = strchr(cp, ',')) != NULL) { *(next++) = '\0'; formula->ingred_count++; } tmp = (linked_char *)malloc(sizeof(linked_char)); tmp->name = add_string(cp); tmp->next = formula->ingred; formula->ingred = tmp; /* each ingredient's ASCII value is coadded. Later on this * value will be used allow us to search the formula lists * quickly for the right recipe. */ formula->index += strtoint(cp); } while ((cp = next) != NULL); /* now find the correct (# of ingred ordered) formulalist */ numb_ingred = formula->ingred_count; fl = formulalist; while (numb_ingred != 1) { if (!fl->next) fl->next = init_recipelist(); fl = fl->next; numb_ingred--; } fl->total_chance += formula->chance; fl->number++; formula->next = fl->items; fl->items = formula; } else if (!strncmp(cp, "arch", 4)) { build_stringlist(strchr(cp, ' ')+1, &formula->arch_name, &formula->arch_names); check_recipe(formula); } else if (!strncmp(cp, "skill", 5)) { formula->skill = add_string(strchr(cp, ' ')+1); } else if (!strncmp(cp, "cauldron", 8)) { formula->cauldron = add_string(strchr(cp, ' ')+1); } else if (!strncmp(cp, "failure_arch ", 13)) { formula->failure_arch = add_string(strchr(cp, ' ')+1); } else if (!strncmp(cp, "failure_message ", 16)) { formula->failure_message = add_string(strchr(cp, ' ')+1); } else if (sscanf(cp, "min_level %d", &value)) { formula->min_level = value; } else if (!strncmp(cp, "tool ", 5)) { build_stringlist(strchr(cp, ' ')+1, &formula->tool, &formula->tool_size); } else if (sscanf(cp, "combination %d", &value)) { formula->is_combination = value ? 1 : 0; } else LOG(llevError, "Unknown input in file %s: %s\n", filename, buf); } LOG(llevDebug, "done.\n"); fclose(fp); /* Lastly, lets check for problems in formula we got */ check_formulae(); } /** * Check if formula don't have the same index. * * Since we are doing a squential search on the * formulae lists now, we have to be carefull that we dont have 2 * formula with the exact same index value. Under the new nbatches * code, it is possible to have multiples of ingredients in a cauldron * which could result in an index formula mismatch. We *don't *check for * that possibility here. -b.t. * * LOG() to error level. * * @todo check archetypes exist, check coherence (skill present, cauldron ok, and such things), set chance to 0 for combinations */ static void check_formulae(void) { recipelist *fl; recipe *check, *formula; int numb = 1; LOG(llevDebug, "Checking formulae lists...\n"); for (fl = formulalist; fl != NULL; fl = fl->next) { for (formula = fl->items; formula != NULL; formula = formula->next) for (check = formula->next; check != NULL; check = check->next) if (check->index == formula->index && strcmp(check->cauldron, formula->cauldron) == 0) { /* if the recipes don't have the same facility, then no issue anyway. */ LOG(llevError, " ERROR: On %d ingred list:\n", numb); LOG(llevError, "Formulae [%s] of %s and [%s] of %s have matching index id (%d)\n", formula->arch_name[0], formula->title, check->arch_name[0], check->title, formula->index); } numb++; } LOG(llevDebug, "done checking.\n"); } /** * Dumps alchemy recipes to output. * Borrowed (again) from the artifacts code for this. * * @todo * use LOG() instead of fprintf? */ void dump_alchemy(void) { recipelist *fl = formulalist; recipe *formula = NULL; linked_char *next; int num_ingred = 1; fprintf(logfile, "\n"); while (fl) { fprintf(logfile, "\n Formulae with %d ingredient%s %d Formulae with total_chance=%d\n", num_ingred, num_ingred > 1 ? "s." : ".", fl->number, fl->total_chance); for (formula = fl->items; formula != NULL; formula = formula->next) { const artifact *art = NULL; char buf[MAX_BUF]; size_t i; for (i = 0; i < formula->arch_names; i++) { const char *string = formula->arch_name[i]; if (find_archetype(string) != NULL) { art = locate_recipe_artifact(formula, i); if (!art && strcmp(formula->title, "NONE")) LOG(llevError, "Formula %s has no artifact\n", formula->title); else { if (strcmp(formula->title, "NONE")) snprintf(buf, sizeof(buf), "%s of %s", string, formula->title); else snprintf(buf, sizeof(buf), "%s", string); fprintf(logfile, "%-30s(%d) bookchance %3d ", buf, formula->index, formula->chance); fprintf(logfile, "skill %s", formula->skill); fprintf(logfile, "\n"); if (formula->ingred != NULL) { int nval = 0, tval = 0; fprintf(logfile, "\tIngred: "); for (next = formula->ingred; next != NULL; next = next->next) { if (nval != 0) fprintf(logfile, ","); fprintf(logfile, "%s(%d)", next->name, (nval = strtoint(next->name))); tval += nval; } fprintf(logfile, "\n"); if (tval != formula->index) fprintf(logfile, "WARNING:ingredient list and formula values not equal.\n"); } if (formula->skill != NULL) fprintf(logfile, "\tSkill Required: %s", formula->skill); if (formula->cauldron != NULL) fprintf(logfile, "\tCauldron: %s\n", formula->cauldron); fprintf(logfile, "\tDifficulty: %d\t Exp: %d\n", formula->diff, formula->exp); } } else LOG(llevError, "Can't find archetype:%s for formula %s\n", string, formula->title); } } fprintf(logfile, "\n"); fl = fl->next; num_ingred++; } } /** * Find a treasure with a matching name. The 'depth' parameter is * only there to prevent infinite loops in treasure lists (a list * referencing another list pointing back to the first one). * * @param t * item of treasure list to search from * @param name * name we're trying to find. Doesn't need to be a shared string. * @param depth * current depth. Code will exit if greater than 10. * @return * archetype with name, or NULL if nothing found. */ archetype *find_treasure_by_name(const treasure *t, const char *name, int depth) { treasurelist *tl; archetype *at; if (depth > 10) return NULL; while (t != NULL) { if (t->name != NULL) { tl = find_treasurelist(t->name); at = find_treasure_by_name(tl->items, name, depth+1); if (at != NULL) return at; } else { if (!strcasecmp(t->item->clone.name, name)) return t->item; } if (t->next_yes != NULL) { at = find_treasure_by_name(t->next_yes, name, depth); if (at != NULL) return at; } if (t->next_no != NULL) { at = find_treasure_by_name(t->next_no, name, depth); if (at != NULL) return at; } t = t->next; } return NULL; } /** * Try to find an ingredient with specified name. * * If several archetypes have the same name, the value of the first * one with that name will be returned. This happens for the * mushrooms (mushroom_1, mushroom_2 and mushroom_3). For the * monsters' body parts, there may be several monsters with the same * name. This is not a problem if these monsters have the same level * (e.g. sage & c_sage) or if only one of the monsters generates the * body parts that we are looking for (e.g. big_dragon and * big_dragon_worthless). * * Will also search in artifacts. * * @param name * ingredient we're searching for. Can start with a number. * @return * cost of ingredient, -1 if wasn't found. */ static long find_ingred_cost(const char *name) { archetype *at; archetype *at2; const artifactlist *al; const artifact *art; long mult; char *cp; char part1[100]; char part2[100]; /* same as atoi(), but skip number */ mult = 0; while (isdigit(*name)) { mult = 10*mult+(*name-'0'); name++; } if (mult > 0) name++; else mult = 1; /* first, try to match the name of an archetype */ for (at = first_archetype; at != NULL; at = at->next) { if (at->clone.title != NULL) { /* inefficient, but who cares? */ snprintf(part1, sizeof(part1), "%s %s", at->clone.name, at->clone.title); if (!strcasecmp(part1, name)) return mult*at->clone.value; } if (!strcasecmp(at->clone.name, name)) return mult*at->clone.value; } /* second, try to match an artifact ("arch of something") */ cp = strstr(name, " of "); if (cp != NULL) { strcpy(part1, name); part1[cp-name] = '\0'; strcpy(part2, cp+4); /* find the first archetype matching the first part of the name */ for (at = first_archetype; at != NULL; at = at->next) if (!strcasecmp(at->clone.name, part1) && at->clone.title == NULL) break; if (at != NULL) { /* find the first artifact derived from that archetype (same type) */ for (al = first_artifactlist; al != NULL; al = al->next) if (al->type == at->clone.type) { for (art = al->items; art != NULL; art = art->next) if (!strcasecmp(art->item->name, part2)) return mult*at->clone.value*art->item->value; } } } /* third, try to match a body part ("arch's something") */ cp = strstr(name, "'s "); if (cp != NULL) { strcpy(part1, name); part1[cp-name] = '\0'; strcpy(part2, cp+3); /* examine all archetypes matching the first part of the name */ for (at = first_archetype; at != NULL; at = at->next) if (!strcasecmp(at->clone.name, part1) && at->clone.title == NULL) { if (at->clone.randomitems != NULL) { at2 = find_treasure_by_name(at->clone.randomitems->items, part2, 0); if (at2 != NULL) return mult*at2->clone.value*isqrt(at->clone.level*2); } } } /* failed to find any matching items -- formula should be checked */ return -1; } /** * Dumps to output all costs of recipes. * * Code copied from dump_alchemy() and modified by Raphael Quinet * * @todo * should use LOG() */ void dump_alchemy_costs(void) { recipelist *fl = formulalist; recipe *formula = NULL; linked_char *next; int num_ingred = 1; int num_errors = 0; long cost; long tcost; fprintf(logfile, "\n"); while (fl) { fprintf(logfile, "\n Formulae with %d ingredient%s %d Formulae with total_chance=%d\n", num_ingred, num_ingred > 1 ? "s." : ".", fl->number, fl->total_chance); for (formula = fl->items; formula != NULL; formula = formula->next) { const artifact *art = NULL; const archetype *at = NULL; char buf[MAX_BUF]; size_t i; for (i = 0; i < formula->arch_names; i++) { const char *string = formula->arch_name[i]; if ((at = find_archetype(string)) != NULL) { art = locate_recipe_artifact(formula, i); if (!art && strcmp(formula->title, "NONE")) LOG(llevError, "Formula %s has no artifact\n", formula->title); else { if (!strcmp(formula->title, "NONE")) snprintf(buf, sizeof(buf), "%s", string); else snprintf(buf, sizeof(buf), "%s of %s", string, formula->title); fprintf(logfile, "\n%-40s bookchance %3d skill %s\n", buf, formula->chance, formula->skill); if (formula->ingred != NULL) { tcost = 0; for (next = formula->ingred; next != NULL; next = next->next) { cost = find_ingred_cost(next->name); if (cost < 0) num_errors++; fprintf(logfile, "\t%-33s%5ld\n", next->name, cost); if (cost < 0 || tcost < 0) tcost = -1; else tcost += cost; } if (art != NULL && art->item != NULL) cost = at->clone.value*art->item->value; else cost = at->clone.value; fprintf(logfile, "\t\tBuying result costs: %5ld", cost); if (formula->yield > 1) { fprintf(logfile, " to %ld (max %d items)\n", cost*formula->yield, formula->yield); cost = cost*(formula->yield+1L)/2L; } else fprintf(logfile, "\n"); fprintf(logfile, "\t\tIngredients cost: %5ld\n\t\tComment: ", tcost); if (tcost < 0) fprintf(logfile, "Could not find some ingredients. Check the formula!\n"); else if (tcost > cost) fprintf(logfile, "Ingredients are much too expensive. Useless formula.\n"); else if (tcost*2L > cost) fprintf(logfile, "Ingredients are too expensive.\n"); else if (tcost*10L < cost) fprintf(logfile, "Ingredients are too cheap.\n"); else fprintf(logfile, "OK.\n"); } } } else LOG(llevError, "Can't find archetype:%s for formula %s\n", string, formula->title); } } fprintf(logfile, "\n"); fl = fl->next; num_ingred++; } if (num_errors > 0) fprintf(logfile, "WARNING: %d objects required by the formulae do not exist in the game.\n", num_errors); } /** * Extracts the name from an ingredient. * * @param name * ingredient to extract from. Can contain a number at start. * @return * pointer in name to the first character of the ingredient's name. */ static const char *ingred_name(const char *name) { const char *cp = name; if (atoi(cp)) cp = strchr(cp, ' ')+1; return cp; } /** * Extracts the number part of an ingredient. * * @param buf * ingredient. * @return * number part of an ingredient. */ static int numb_ingred(const char *buf) { int numb; if ((numb = atoi(buf))) return numb; else return 1; } /** * Convert buf into an integer equal to the coadded sum of the (lowercase) character * * ASCII values in buf (times prepended integers). * * @param buf * buffer we want to convert. Can contain an initial number. * @return * sum of lowercase characters of the ingredient's name. */ int strtoint(const char *buf) { const char *cp = ingred_name(buf); int val = 0, len = strlen(cp), mult = numb_ingred(buf); while (len) { val += tolower(*cp); cp++; len--; } return val*mult; } /** * Finds an artifact for a recipe. * * @param rp * recipe * @param idx * index of ingredient in recipe. * @return * artifact, or NULL if not found. */ const artifact *locate_recipe_artifact(const recipe *rp, size_t idx) { object *item = create_archetype(rp->arch_name[idx]); const artifactlist *at = NULL; const artifact *art = NULL; if (!item) return (artifact *)NULL; if ((at = find_artifactlist(item->type))) for (art = at->items; art; art = art->next) if (!strcmp(art->item->name, rp->title) && legal_artifact_combination(item, art)) break; object_free_drop_inventory(item); return art; } /** * Gets a random recipe list. * * @return * random recipe list. */ static recipelist *get_random_recipelist(void) { recipelist *fl = NULL; int number = 0, roll = 0; /* first, determine # of recipelist we have */ for (fl = get_formulalist(1); fl; fl = fl->next) number++; /* now, randomly choose one */ if (number > 0) roll = RANDOM()%number; fl = get_formulalist(1); while (roll && fl) { if (fl->next) fl = fl->next; else break; roll--; } if (!fl) /* failed! */ LOG(llevError, "get_random_recipelist(): no recipelists found!\n"); else if (fl->total_chance == 0) fl = get_random_recipelist(); return fl; } /** * Gets a random recipe from a list, based on chance. * * @param rpl * recipelist we want a recipe from. Can be NULL in which case a random one is selected. * @return * random recipe. Can be NULL if recipelist has a total_chance of 0. */ recipe *get_random_recipe(recipelist *rpl) { recipelist *fl = rpl; recipe *rp = NULL; int r = 0; /* looks like we have to choose a random one */ if (fl == NULL) if ((fl = get_random_recipelist()) == NULL) return rp; if (fl->total_chance > 0) { r = RANDOM()%fl->total_chance; for (rp = fl->items; rp; rp = rp->next) { r -= rp->chance; if (r < 0) break; } } return rp; } /** * Frees all memory allocated to recipes and recipes lists. */ void free_all_recipes(void) { recipelist *fl, *flnext; recipe *formula = NULL, *next; linked_char *lchar, *charnext; LOG(llevDebug, "Freeing all the recipes\n"); for (fl = formulalist; fl != NULL; fl = flnext) { flnext = fl->next; for (formula = fl->items; formula != NULL; formula = next) { next = formula->next; free(formula->arch_name[0]); free(formula->arch_name); if (formula->title) free_string(formula->title); if (formula->skill) free_string(formula->skill); if (formula->cauldron) free_string(formula->cauldron); if (formula->failure_arch) free_string(formula->failure_arch); if (formula->failure_message) free_string(formula->failure_message); for (lchar = formula->ingred; lchar; lchar = charnext) { charnext = lchar->next; free_string(lchar->name); free(lchar); } if (formula->tool) free(formula->tool[0]); free(formula->tool); free(formula); } free(fl); } formulalist = NULL; } /** * Split a comma separated string list into words. * * @param str * the string to split * @param[out] result_list * pointer to return value for the newly created list; the * caller is responsible for freeing both *result_list and **result_list. * @param[out] result_size * pointer to return value for the size of the newly created list */ static void build_stringlist(const char *str, char ***result_list, size_t *result_size) { char *dup; char *p; size_t size; size_t i; dup = strdup_local(str); if (dup == NULL) fatal(OUT_OF_MEMORY); size = 0; for (p = strtok(dup, ","); p != NULL; p = strtok(NULL, ",")) size++; *result_list = malloc(size*sizeof(*result_list)); if (*result_list == NULL) fatal(OUT_OF_MEMORY); *result_size = size; for (i = 0; i < size; i++) { (*result_list)[i] = dup; dup = dup+strlen(dup)+1; } } /** * Find a recipe for a specified tool. This function can be called multiple times to browse the whole list, * using the 'from' parameter. * @param tool tool's archetype name. * @param from formula to search from, if NULL from the first one. * @return matching formula, NULL if none matching. */ recipe *find_recipe_for_tool(const char *tool, recipe *from) { size_t t; recipelist *list = from ? get_formulalist(from->ingred_count) : formulalist; recipe *test = from ? from->next : list->items; while (list) { while (test) { for (t = 0; t < test->tool_size; t++) { if (strcmp(test->tool[t], tool) == 0) { return test; } } test = test->next; } list = list->next; } return NULL; } crossfire-1.70.0/common/dialog.c0000644000014500000120000001615711731300526013405 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file Structures and functions used for the @ref page_dialog "dialog system". */ #include #include "global.h" #include "define.h" #include "object.h" #include "dialog.h" /** * Frees obj::dialog_information. * @param op what to clean for. */ void free_dialog_information(object *op) { struct_dialog_message *current, *next; struct_dialog_reply *currep, *nextrep; if (!QUERY_FLAG(op, FLAG_DIALOG_PARSED)) return; CLEAR_FLAG(op, FLAG_DIALOG_PARSED); if (!op->dialog_information) return; current = op->dialog_information->all_messages; while (current) { next = current->next; free(current->match); free(current->message); currep = current->replies; while (currep) { nextrep = currep->next; free(currep->reply); free(currep->message); currep = nextrep; } free(current); current = next; } currep = op->dialog_information->all_replies; while (currep) { nextrep = currep->next; free(currep->reply); free(currep->message); free(currep); currep = nextrep; } free(op->dialog_information); op->dialog_information = NULL; } /** * Does the text match the expression? * @param exp expression to try to match. * @param text what to test. * @return 1 if match, 0 else. * @todo better * handling (incorrect now, will match even if trailing chars) */ static int matches(const char *exp, const char *text) { char *pipe, *save, *msg; int match = 0; if (exp[0] == '*') return 1; msg = strdup(exp); pipe = strtok_r(msg, "|", &save); while (pipe) { if (re_cmp(text, pipe)) { match = 1; break; } pipe = strtok_r(NULL, "|", &save); } free(msg); return match; } /** * Parse the dialog information for op, and fills in obj::dialog_information. * Can be called safely multiple times (will just ignore the other calls). * * @param op object to parse the obj::msg field. */ static void parse_dialog_information(object *op) { struct_dialog_message *message = NULL, *last = NULL; struct_dialog_reply *reply = NULL; char *current, *save, *msg, *cp; int len; /* Used for constructing message with */ char *tmp = NULL; size_t tmplen = 0; if (QUERY_FLAG(op, FLAG_DIALOG_PARSED)) return; SET_FLAG(op, FLAG_DIALOG_PARSED); op->dialog_information = (struct_dialog_information *)calloc(1, sizeof(struct_dialog_information)); if (!op->msg) return; msg = strdup(op->msg); current = strtok_r(msg, "\n", &save); while (current) { if (strncmp(current, "@match ", 7) == 0) { if (message) { message->message = tmp; tmp = NULL; tmplen = 0; } message = (struct_dialog_message *)calloc(1, sizeof(struct_dialog_message)); if (last) last->next = message; else op->dialog_information->all_messages = message; last = message; message->match = strdup(current+7); } else if ((strncmp(current, "@reply ", 7) == 0 && (len = 7)) || (strncmp(current, "@question ", 10) == 0 && (len = 10))) { if (message) { reply = (struct_dialog_reply *)calloc(1, sizeof(struct_dialog_reply)); reply->type = (len == 7 ? rt_reply : rt_question); cp = strchr(current+len, ' '); if (cp) { *cp = '\0'; reply->reply = strdup(current+len); reply->message = strdup(cp+1); } else { reply->reply = strdup(current+len); reply->message = strdup(reply->reply); LOG(llevDebug, "Warning: @reply/@question without message for %s!\n", op->name); } reply->next = message->replies; message->replies = reply; reply = (struct_dialog_reply *)calloc(1, sizeof(struct_dialog_reply)); reply->reply = strdup(message->replies->reply); reply->message = strdup(message->replies->message); reply->type = message->replies->type; reply->next = op->dialog_information->all_replies; op->dialog_information->all_replies = reply; } else LOG(llevDebug, "Warning: @reply not in @match block for %s!\n", op->name); } else if (message) { /* Needed to set initial \0 */ int wasnull = FALSE; tmplen += strlen(current)+2; if (!tmp) wasnull = TRUE; tmp = realloc(tmp, tmplen*sizeof(char)); if (!tmp) fatal(OUT_OF_MEMORY); if (wasnull) tmp[0] = 0; strncat(tmp, current, tmplen-strlen(tmp)-1); strncat(tmp, "\n", tmplen-strlen(tmp)-1); } current = strtok_r(NULL, "\n", &save); } if (message) { if (!tmp) message->message = strdup(""); else message->message = tmp; tmp = NULL; tmplen = 0; } free(msg); } /** * Tries to find a message matching the said text. * @param op who is being talked to. * @param text what is being said. * @param[out] message what op should say. Won't be NULL if return is 1. * @param[out] reply text the one talking should say based on the text. Can be NULL. * @return 0 if no match, 1 if a message did match the text. * @todo smarter match, try to find exact before joker (*) one. */ int get_dialog_message(object *op, const char *text, struct_dialog_message **message, struct_dialog_reply **reply) { if (!QUERY_FLAG(op, FLAG_DIALOG_PARSED)) parse_dialog_information(op); for (*message = op->dialog_information->all_messages; *message; *message = (*message)->next) { if (matches((*message)->match, text)) { break; } } if (!*message) return 0; for (*reply = op->dialog_information->all_replies; *reply; *reply = (*reply)->next) { if (strcmp((*reply)->reply, text) == 0) break; } return 1; } crossfire-1.70.0/common/exp.c0000644000014500000120000002177311731300526012742 00000000000000/* * static char *rcsid_arch_c = * "$Id: exp.c 14864 2011-07-17 08:36:07Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file exp.c * Experience management. reading data from files and such. */ #include #include #include #include sint64 *levels; /**< Number of levels for which we have experience. */ #define TRUE 1 #define FALSE 0 static const float exp_att_mult[NROFATTACKS] = { 0.0, /* AT_PHYSICAL */ 0.0, /* AT_MAGIC */ 0.0, /* AT_FIRE */ 0.0, /* AT_ELECTRICITY */ 0.0, /* AT_COLD */ 0.0, /* AT_CONFUSION */ 0.4, /* AT_ACID */ 1.5, /* AT_DRAIN */ 0.0, /* AT_WEAPONMAGIC */ 0.1, /* AT_GHOSTHIT */ 0.3, /* AT_POISON */ 0.1, /* AT_SLOW */ 0.3, /* AT_PARALYZE */ 0.0, /* AT_TURN_UNDEAD */ 0.0, /* AT_FEAR */ 0.0, /* AT_CANCELLATION */ 0.0, /* AT_DEPLETE */ 0.0, /* AT_DEATH */ 0.0, /* AT_CHAOS */ 0.0, /* AT_COUNTERSPELL */ 0.5, /* AT_GODPOWER */ 0.1, /* AT_HOLYWORD */ 0.2, /* AT_BLIND */ 0.0, /* AT_INTERNAL */ 0.5, /* AT_LIFE_STEALING */ 0.2, /* AT_DISEASE */ }; static const float exp_prot_mult[NROFATTACKS] = { 0.4, /* AT_PHYSICAL */ 0.5, /* AT_MAGIC */ 0.1, /* AT_FIRE */ 0.1, /* AT_ELECTRICITY */ 0.1, /* AT_COLD */ 0.1, /* AT_CONFUSION */ 0.1, /* AT_ACID */ 0.1, /* AT_DRAIN */ 0.1, /* AT_WEAPONMAGIC */ 0.1, /* AT_GHOSTHIT */ 0.1, /* AT_POISON */ 0.0, /* AT_SLOW */ 0.1, /* AT_PARALYZE */ 0.1, /* AT_TURN_UNDEAD */ 0.1, /* AT_FEAR */ 0.0, /* AT_CANCELLATION */ 0.0, /* AT_DEPLETE */ 0.0, /* AT_DEATH */ 0.0, /* AT_CHAOS */ 0.0, /* AT_COUNTERSPELL */ 0.0, /* AT_GODPOWER */ 0.1, /* AT_HOLYWORD */ 0.0, /* AT_BLIND */ 0.0, /* AT_INTERNAL */ 0.0, /* AT_LIFE_STEALING */ 0.1, /* AT_DISEASE */ }; /** * Alternative way to calculate experience based * on the ability of a monster. * * It's far from perfect, and doesn't consider everything which * can be considered, thus it's only used in debugging. * this is only used with one of the dumpflags, * and not anyplace in the code. * * @param ob * object for which to return experience * @return * experience computed from object's properties. */ sint64 new_exp(const object *ob) { double att_mult, prot_mult, spec_mult; double exp; int i; long mask = 1; att_mult = prot_mult = spec_mult = 1.0; for (i = 0; i < NROFATTACKS; i++) { mask = 1<attacktype&mask) != FALSE)); /* We multiply & then divide to prevent roundoffs on the floats. * the doubling is to take into account the table and resistances * are lower than they once were. */ /* prot_mult should increase by fairly minor amounts - * for example, if a creature has resist physical 30, * and exp mult on that is 0.4, then prot_mult should really * go up by 1.2 - still a considerable increase. */ prot_mult += (exp_prot_mult[i]*ob->resist[i])/10.0; } if (prot_mult < 0) prot_mult = 1; spec_mult += (0.3*(QUERY_FLAG(ob, FLAG_SEE_INVISIBLE) != FALSE))+ (0.5*(QUERY_FLAG(ob, FLAG_SPLITTING) != FALSE))+ (0.3*(QUERY_FLAG(ob, FLAG_HITBACK) != FALSE))+ (0.1*(QUERY_FLAG(ob, FLAG_REFL_MISSILE) != FALSE))+ (0.3*(QUERY_FLAG(ob, FLAG_REFL_SPELL) != FALSE))+ (1.0*(QUERY_FLAG(ob, FLAG_NO_MAGIC) != FALSE))+ (0.1*(QUERY_FLAG(ob, FLAG_USE_SCROLL) != FALSE))+ (0.2*(QUERY_FLAG(ob, FLAG_USE_RANGE) != FALSE))+ (0.1*(QUERY_FLAG(ob, FLAG_USE_BOW) != FALSE)); exp = MAX(ob->stats.maxhp, 5); exp *= (QUERY_FLAG(ob, FLAG_CAST_SPELL) && has_ability(ob)) ? (40+MIN(ob->stats.maxsp, 80))/40 : 1; exp *= (80.0/(70.0+ob->stats.wc))*(80.0/(70.0+ob->stats.ac))*(50.0+ob->stats.dam)/50.0; exp *= att_mult*prot_mult*spec_mult; /* exp *= 2.0/(2.0-(MIN(FABS(ob->speed), 0.95)));*/ exp *= 2.0/(2.0-FABS(ob->speed)); exp *= (20.0+ob->stats.Con)/20.0; if (QUERY_FLAG(ob, FLAG_STAND_STILL)) exp /= 2; return (sint64)exp; } /** * Checks whether object has innate abilities (spell/spellbook in inventory). * @return * 1 if monster has any innate abilities, 0 else */ int has_ability(const object *ob) { return object_find_by_type(ob, SPELL) != NULL || object_find_by_type(ob, SPELLBOOK) != NULL; } /** * This loads the experience table from the exp_table * file. This tends to exit on any errors, since it * populates the table as it goes along, so if there * are errors, the table is likely in an inconsistent * state. * * @note * will call exit() if file is invalid or not found. */ void init_experience(void) { char buf[MAX_BUF], *cp; int lastlevel = 0; sint64 lastexp = -1, tmpexp; FILE *fp; snprintf(buf, sizeof(buf), "%s/exp_table", settings.confdir); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Fatal error: could not open experience table (%s)\n", buf); exit(1); } while (fgets(buf, MAX_BUF-1, fp) != NULL) { if (buf[0] == '#') continue; /* eliminate newline */ if ((cp = strrchr(buf, '\n')) != NULL) *cp = '\0'; /* Skip over empty lines */ if (buf[0] == 0) continue; cp = buf; while (isspace(*cp) && *cp != 0) cp++; if (!strncasecmp(cp, "max_level", 9)) { if (settings.max_level) { LOG(llevDebug, "Got more than one max_level value from exp_table file?\n"); free(levels); } settings.max_level = atoi(cp+9); if (!settings.max_level) { LOG(llevDebug, "Got invalid max_level from exp_table file? %s\n", buf); } else { levels = calloc(settings.max_level+1, sizeof(sint64)); } } while (isdigit(*cp) && *cp != 0) { if (!settings.max_level) { LOG(llevError, "max_level is not set in exp_table file. Did you remember to update it?\n"); exit(1); } tmpexp = atoll(cp); /* Do some sanity checking - if value is bogus, just exit because * the table otherwise is probably in an inconsistent state */ if (tmpexp <= lastexp) { LOG(llevError, "Experience for level %d is lower than previous level (%"FMT64" <= %"FMT64")\n", lastlevel+1, tmpexp, lastexp); exit(1); } lastlevel++; if (lastlevel > settings.max_level) { LOG(llevError, "Too many levels specified in table (%d > %d)\n", lastlevel, settings.max_level); exit(1); } levels[lastlevel] = tmpexp; lastexp = tmpexp; /* First, skip over the number we just processed. Then skip over * any spaces, commas, etc. */ while (isdigit(*cp) && *cp != 0) cp++; while (!isdigit(*cp) && *cp != 0) cp++; } } fclose(fp); if (settings.max_level == 0 || lastlevel != settings.max_level) { LOG(llevError, "Fatal: exp_table does not have any level definition or not %d as defined, found %d.\n", settings.max_level, lastlevel); exit(1); } if (lastlevel != settings.max_level && lastlevel != 0) { LOG(llevError, "Warning: exp_table does not have %d entries (%d)\n", settings.max_level, lastlevel); exit(1); } } /** * Dump the experience table, then calls exit() - useful in terms of debugging to make sure the * format of the exp_table is correct. */ void dump_experience(void) { int i; for (i = 1; i <= settings.max_level; i++) { fprintf(logfile, "%4d %20"FMT64"\n", i, levels[i]); } exit(0); } /** * Frees experience-related memory. */ void free_experience(void) { FREE_AND_CLEAR(levels); } crossfire-1.70.0/common/arch.c0000644000014500000120000006046211731300526013061 00000000000000/* * static char *rcsid_arch_c = * "$Id: arch.c 15665 2011-11-11 10:37:59Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file arch.c * All archetype-related functions. * @note * The naming of these functions is really poor - they are all * pretty much named '.._arch_...', but they may more may not * return archetypes. Some make the arch_to_object call, and thus * return an object. Perhaps those should be called 'archob' functions * to denote they return an object derived from the archetype. * MSW 2003-04-29 * @todo * make the functions use the same order for parameters (type first, then name, or the opposite). */ #include #include /** If set, does a little timing on the archetype load. */ #define TIME_ARCH_LOAD 0 static void add_arch(archetype *at); static archetype *arch_table[ARCHTABLE]; static int arch_cmp = 0; /**< How many strcmp's */ static int arch_search = 0; /**< How many searches */ int arch_init; /**< True if doing arch initialization */ static void load_archetypes(void); /** * This function retrieves an archetype given the name that appears * during the game (for example, "writing pen" instead of "stylus"). * It does not use the hashtable system, but browse the whole archlist each time. * I suggest not to use it unless you really need it because of performance issue. * It is currently used by scripting extensions (create-object). * Params: * @param name * the name we're searching for (ex: "writing pen") * @return * the archetype found or NULL if nothing was found */ archetype *find_archetype_by_object_name(const char *name) { archetype *at; const char *tmp; if (name == NULL) return (archetype *)NULL; tmp = add_string(name); for (at = first_archetype; at != NULL; at = at->next) { if (at->clone.name == tmp) { free_string(tmp); return at; } } free_string(tmp); return NULL; } /** * This function retrieves an archetype by type and name that appears during * the game. It is basically the same as find_archetype_by_object_name() * except that it considers only items of the given type. * @param type * item type we're searching * @param name * the name we're searching for (ex: "writing pen") */ archetype *find_archetype_by_object_type_name(int type, const char *name) { archetype *at; if (name == NULL) return NULL; for (at = first_archetype; at != NULL; at = at->next) { if (at->clone.type == type && strcmp(at->clone.name, name) == 0) return at; } return NULL; } /** * Retrieves an archetype by skill name and type. * This is a lot like the other get_archetype_ functions, with different options. * @param skill * skill to search for. Must not be NULL. * @param type * item type to search for. -1 means that it doesn't matter. * @return * matching archetype, or NULL if none found. */ archetype *get_archetype_by_skill_name(const char *skill, int type) { archetype *at; if (skill == NULL) return NULL; for (at = first_archetype; at != NULL; at = at->next) { if (((type == -1) || (type == at->clone.type)) && (at->clone.skill) && (!strcmp(at->clone.skill, skill))) return at; } return NULL; } /** * Retrieves an archetype by type and subtype. * Similiar to other get_archetype_ functions. This returns the first archetype * that matches both the type and subtype. type and subtype * can be -1 to say ignore, but in this case, the match it does * may not be very useful. This function is most useful when * subtypes are known to be unique for a particular type * (eg, skills) * @param type * object type to search for. -1 means any * @param subtype * object subtype to search for. -1 means any * @return * matching archetype, or NULL if none found. */ archetype *get_archetype_by_type_subtype(int type, int subtype) { archetype *at; for (at = first_archetype; at != NULL; at = at->next) { if (((type == -1) || (type == at->clone.type)) && (subtype == -1 || subtype == at->clone.subtype)) return at; } return NULL; } /** * Creates an object given the name that appears during the game * (for example, "writing pen" instead of "stylus"). * @param name * the name we're searching for (ex: "writing pen"), must not be null * @return * a corresponding object if found; a singularity object if not found. * @note * Note by MSW - it appears that it takes the full name and keeps * shortening it until it finds a match. I re-wrote this so that it * doesn't malloc it each time - not that this function is used much, * but it otherwise had a big memory leak. */ object *create_archetype_by_object_name(const char *name) { archetype *at; char tmpname[MAX_BUF]; size_t i; strncpy(tmpname, name, MAX_BUF-1); tmpname[MAX_BUF-1] = 0; for (i = strlen(tmpname); i > 0; i--) { tmpname[i] = 0; at = find_archetype_by_object_name(tmpname); if (at != NULL) { return arch_to_object(at); } } return create_singularity(name); } /** * Initialises the internal linked list of archetypes (read from file). * Then the global ::empty_archetype pointer is initialised. * Can be called multiple times, will just return. */ void init_archetypes(void) { if (first_archetype != NULL) /* Only do this once */ return; arch_init = 1; load_archetypes(); arch_init = 0; empty_archetype = find_archetype("empty_archetype"); /* init_blocksview();*/ } /** * Stores debug-information about how efficient the hashtable * used for archetypes has been in the static errmsg array. */ void arch_info(object *op) { draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, "%d searches and %d strcmp()'s", arch_search, arch_cmp); } /** * Initialise the hashtable used by the archetypes. */ void clear_archetable(void) { memset((void *)arch_table, 0, ARCHTABLE*sizeof(archetype *)); } /** * An alternative way to init the hashtable which is slower, but _works_... */ static void init_archetable(void) { archetype *at; LOG(llevDebug, " Setting up archetable...\n"); for (at = first_archetype; at != NULL; at = (at->more == NULL) ? at->next : at->more) { if (at->name == NULL) { LOG(llevError, "archetype without name? %s\n", at->clone.name ? at->clone.name : "(no clone name)"); abort(); } add_arch(at); } LOG(llevDebug, "done\n"); } /** * Dumps an archetype to buffer. * * @param at * archetype to dump. Must not be NULL. * @param sb * buffer that will contain dumped information. */ void dump_arch(archetype *at, StringBuffer *sb) { object_dump(&at->clone, sb); } /** * Dumps _all_ archetypes to debug-level output. * If you run crossfire with debug, and enter DM-mode, you can trigger * this with the "dumpallarchetypes" command. */ void dump_all_archetypes(void) { archetype *at; for (at = first_archetype; at != NULL; at = (at->more == NULL) ? at->next : at->more) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); dump_arch(at, sb); diff = stringbuffer_finish(sb); LOG(llevDebug, "%s\n", diff); free(diff); } } /** * Frees archetype. * * @param at * archetype to free. Pointer becomes invalid after the call. */ void free_arch(archetype *at) { if (at->name) free_string(at->name); if (at->clone.name) free_string(at->clone.name); if (at->clone.name_pl) free_string(at->clone.name_pl); if (at->clone.title) free_string(at->clone.title); if (at->clone.race) free_string(at->clone.race); if (at->clone.slaying) free_string(at->clone.slaying); if (at->clone.msg) free_string(at->clone.msg); free(at->clone.discrete_damage); object_free_key_values(&at->clone); free(at); } /** * Frees all memory allocated to archetypes. * After calling this, it's possible to call again init_archetypes() to reload data. */ void free_all_archs(void) { archetype *at, *next; int i = 0; for (at = first_archetype; at != NULL; at = next) { if (at->more) next = at->more; else next = at->next; free_arch(at); i++; } first_archetype = NULL; /* Reset the hashtable */ clear_archetable(); LOG(llevDebug, "Freed %d archetypes\n", i); } /** * Allocates, initialises and returns the pointer to an archetype structure. * @return * new archetype structure, will never be NULL. * @note * this function will call fatal() if it can't allocate memory. */ archetype *get_archetype_struct(void) { archetype *new; new = (archetype *)CALLOC(1, sizeof(archetype)); if (new == NULL) fatal(OUT_OF_MEMORY); new->next = NULL; new->name = NULL; new->clone.other_arch = NULL; new->clone.name = NULL; new->clone.name_pl = NULL; new->clone.title = NULL; new->clone.race = NULL; new->clone.slaying = NULL; new->clone.msg = NULL; object_clear(&new->clone); /* to initial state other also */ CLEAR_FLAG((&new->clone), FLAG_FREED); /* This shouldn't matter, since object_copy() */ SET_FLAG((&new->clone), FLAG_REMOVED); /* doesn't copy these flags... */ new->head = NULL; new->more = NULL; new->clone.arch = new; return new; } /** * Reads/parses the archetype-file, and copies into a linked list * of archetype-structures. * Called through load_archetypes() * * Will discard object in archetypes, those are handled by second_arch_pass(). * * @param fp * opened file descriptor which will be used to read the archetypes. */ static void first_arch_pass(FILE *fp) { archetype *at, *head = NULL, *last_more = NULL; int i, first = LO_NEWFILE; at = get_archetype_struct(); first_archetype = at; while ((i = load_object(fp, &at->clone, first, 0))) { first = 0; at->clone.speed_left = (float)(-0.1); switch (i) { case LL_NORMAL: /* A new archetype, just link it with the previous */ if (last_more != NULL) last_more->next = at; if (head != NULL) head->next = at; head = last_more = at; at->tail_x = 0; at->tail_y = 0; break; case LL_MORE: /* Another part of the previous archetype, link it correctly */ at->head = head; at->clone.head = &head->clone; if (last_more != NULL) { last_more->more = at; last_more->clone.more = &at->clone; } last_more = at; /* Set FLAG_MONSTER throughout parts if head has it */ if (QUERY_FLAG(&head->clone, FLAG_MONSTER)) { SET_FLAG(&at->clone, FLAG_MONSTER); } /* If this multipart image is still composed of individual small * images, don't set the tail_.. values. We can't use them anyways, * and setting these to zero makes the map sending to the client much * easier as just looking at the head, we know what to do. */ if (at->clone.face != head->clone.face) { head->tail_x = 0; head->tail_y = 0; } else { if (at->clone.x > head->tail_x) head->tail_x = at->clone.x; if (at->clone.y > head->tail_y) head->tail_y = at->clone.y; } break; } at = get_archetype_struct(); } at->clone.arch = NULL; /* arch is checked for temporary archetypes if not NULL. */ free(at); } /** * Reads the archetype file once more, and links all pointers between * archetypes and treasure lists. Must be called after first_arch_pass(). * * This also handles putting items in inventory when defined in archetype. * * @param fp * file fron which to read. Won't be rewinded. */ static void second_arch_pass(FILE *fp) { char buf[MAX_BUF], *variable = buf, *argument, *cp; archetype *at = NULL, *other; object *inv; while (fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; if ((argument = strchr(buf, ' ')) != NULL) { *argument = '\0', argument++; cp = argument+strlen(argument)-1; while (isspace(*cp)) { *cp = '\0'; cp--; } } if (!strcmp("Object", variable)) { if ((at = find_archetype(argument)) == NULL) { LOG(llevError, "Fatal: failed to find arch %s in second_arch_pass\n", argument); fatal(ARCHETYPE_ISSUE); } } else if (!strcmp("other_arch", variable)) { if (at != NULL && at->clone.other_arch == NULL) { if ((other = find_archetype(argument)) == NULL) LOG(llevError, "Warning: failed to find other_arch %s\n", argument); else if (at != NULL) at->clone.other_arch = other; } } else if (!strcmp("randomitems", variable)) { if (at != NULL) { treasurelist *tl = find_treasurelist(argument); if (tl == NULL) LOG(llevError, "Failed to link treasure to arch (%s): %s\n", at->name, argument); else at->clone.randomitems = tl; } } else if (!strcmp("arch", variable)) { inv = create_archetype(argument); load_object(fp, inv, LO_LINEMODE, 0); if (at) { object_insert_in_ob(inv, &at->clone); /*LOG(llevDebug, "Put %s in %s\n", inv->name, at->clone.name);*/ } else { LOG(llevError, "Got an arch %s not inside an Object.\n", argument); object_free_drop_inventory(inv); } } } } /** * Check all generators have the other_arch set or something in inventory. */ void check_generators(void) { const archetype *at; int abort = 0; for (at = first_archetype; at != NULL; at = at->next) { if (!QUERY_FLAG(&at->clone, FLAG_GENERATOR)) continue; if (!QUERY_FLAG(&at->clone, FLAG_CONTENT_ON_GEN) && at->clone.other_arch == NULL) { LOG(llevError, "Fatal: %s is generator without content_on_gen but lacks other_arch.\n", at->name); abort = 1; continue; } if (QUERY_FLAG(&at->clone, FLAG_CONTENT_ON_GEN) && at->clone.inv == NULL) { LOG(llevError, "Fatal: %s is generator with content_on_gen but lacks inventory.\n", at->name); abort = 1; continue; } } if (abort) fatal(SEE_LAST_ERROR); } /** * This checks all summonable items for move_type and other things. * Will call fatal() if an error is found. */ void check_summoned(void) { const archetype *at; for (at = first_archetype; at != NULL; at = at->next) { if (at->clone.type == SPELL && at->clone.subtype == SP_SUMMON_GOLEM && at->clone.other_arch) { if (at->clone.other_arch->clone.move_type == 0) { LOG(llevError, "Summonable archetype %s [%s] has no move_type defined!\n", at->clone.other_arch->name, at->clone.other_arch->clone.name); fatal(SEE_LAST_ERROR); } } } } /** * This ensures all spells have a skill defined, calling fatal() if any error was found. */ static void check_spells(void) { int abort = 0; const archetype *at; for (at = first_archetype; at != NULL; at = at->next) { if (at->clone.type == SPELL && at->clone.skill == NULL) { LOG(llevError, "Spell archetype %s [%s] has no skill defined!\n", at->name, at->clone.name); abort = 1; } } if (abort) fatal(SEE_LAST_ERROR); } /** * Loads all archetypes and treasures. * First initialises the archtype hash-table (init_archetable()). * Reads and parses the archetype file (with the first and second-pass * functions). * Then initialises treasures by calling load_treasures(). */ static void load_archetypes(void) { FILE *fp; char filename[MAX_BUF]; #if TIME_ARCH_LOAD struct timeval tv1, tv2; #endif snprintf(filename, sizeof(filename), "%s/%s", settings.datadir, settings.archetypes); LOG(llevDebug, "Reading archetypes from %s...\n", filename); if ((fp = fopen(filename, "r")) == NULL) { LOG(llevError, " Can't open archetype file.\n"); return; } clear_archetable(); LOG(llevDebug, " arch-pass 1...\n"); #if TIME_ARCH_LOAD GETTIMEOFDAY(&tv1); #endif first_arch_pass(fp); #if TIME_ARCH_LOAD { int sec, usec; GETTIMEOFDAY(&tv2); sec = tv2.tv_sec-tv1.tv_sec; usec = tv2.tv_usec-tv1.tv_usec; if (usec < 0) { usec += 1000000; sec--; } LOG(llevDebug, "Load took %d.%06d seconds\n", sec, usec); } #endif LOG(llevDebug, " done\n"); init_archetable(); warn_archetypes = 1; rewind(fp); LOG(llevDebug, " loading treasure...\n"); load_treasures(); LOG(llevDebug, " done\n"); LOG(llevDebug, "arch-pass 2...\n"); second_arch_pass(fp); LOG(llevDebug, " done\n"); check_generators(); check_spells(); check_summoned(); fclose(fp); LOG(llevDebug, " done\n"); } /** * Creates and returns a new object which is a copy of the given archetype. * This function returns NULL if given a NULL pointer, else an object. * @param at * archetype from which to get an object. * @return * object of specified type. * @note * object_new() will either allocate memory or call fatal(), so returned value * is never NULL. */ object *arch_to_object(archetype *at) { object *op; if (at == NULL) { if (warn_archetypes) LOG(llevError, "Couldn't find archetype.\n"); return NULL; } op = object_new(); object_copy_with_inv(&at->clone, op); op->arch = at; return op; } /** * Creates a dummy object. This function is called by get_archetype() * if it fails to find the appropriate archetype. * Thus get_archetype() will be guaranteed to always return * an object, and never NULL. * @param name * name to give the dummy object. * @return * object of specified name. It fill have the ::FLAG_NO_PICK flag set. * @note * object_new() will either allocate memory or call fatal(), so returned value * is never NULL. */ object *create_singularity(const char *name) { object *op; char buf[MAX_BUF]; snprintf(buf, sizeof(buf), "%s (%s)", ARCH_SINGULARITY, name); op = object_new(); op->name = add_string(buf); op->name_pl = add_string(buf); SET_FLAG(op, FLAG_NO_PICK); return op; } /** * Finds which archetype matches the given name, and returns a new * object containing a copy of the archetype. * @param name * archetype name * @return * object of specified archetype, or a singularity. Will never be NULL. * @todo * replace with object_create_arch() which is multi-part aware. */ object *create_archetype(const char *name) { archetype *at; at = find_archetype(name); if (at == NULL) return create_singularity(name); return arch_to_object(at); } /** * Hash-function used by the arch-hashtable. * @param str * archetype name * @param tablesize * size of the hash table * @return * hash of the archetype name */ static unsigned long hasharch(const char *str, int tablesize) { unsigned long hash = 0; int i = 0; const char *p; /* use the one-at-a-time hash function, which supposedly is * better than the djb2-like one used by perl5.005, but * certainly is better then the bug used here before. * see http://burtleburtle.net/bob/hash/doobs.html */ for (p = str; i < MAXSTRING && *p; p++, i++) { hash += *p; hash += hash<<10; hash ^= hash>>6; } hash += hash<<3; hash ^= hash>>11; hash += hash<<15; return hash%tablesize; } /** * Finds, using the hashtable, which archetype matches the given name. Will not LOG() if not found. * @return * pointer to the found archetype, otherwise NULL. * @see find_archetype() */ archetype *try_find_archetype(const char *name) { archetype *at; unsigned long index; if (name == NULL) return (archetype *)NULL; index = hasharch(name, ARCHTABLE); arch_search++; for (;;) { at = arch_table[index]; if (at == NULL) { return NULL; } arch_cmp++; if (!strcmp(at->name, name)) return at; if (++index >= ARCHTABLE) index = 0; } } /** * Finds, using the hashtable, which archetype matches the given name. Will LOG() if not found. * @return * pointer to the found archetype, otherwise NULL. * @see try_find_archetype * @todo replace by try_find_archetype() when suitable and trash ::warn_archetypes. */ archetype *find_archetype(const char *name) { archetype *at; if (name == NULL) return (archetype *)NULL; at = try_find_archetype(name); if (at == NULL && warn_archetypes) LOG(llevError, "Couldn't find archetype %s\n", name); return at; } /** * Adds an archetype to the hashtable. * Will call fatal() if archetype table is too small to contain archetypes. */ static void add_arch(archetype *at) { unsigned long index = hasharch(at->name, ARCHTABLE), org_index = index; for (;;) { if (arch_table[index] == NULL) { arch_table[index] = at; return; } if (++index == ARCHTABLE) index = 0; if (index == org_index) fatal(ARCHTABLE_TOO_SMALL); } } /** * Create a full object using the given archetype. * This instanciate not only the archetype but also * all linked archetypes in case of multisquare archetype. * @param at * archetype to instanciate. Must not be NULL. * @return * pointer to head of instance. * @note * will never return NULL. */ object *object_create_arch(archetype *at) { object *op, *prev = NULL, *head = NULL; while (at) { op = arch_to_object(at); op->x = at->clone.x; op->y = at->clone.y; if (head) op->head = head, prev->more = op; if (!head) head = op; prev = op; at = at->more; } return (head); } /** * Checks if the specified type is a valid one for a Crossfire object. * It would be better (not sure how) if it could automatically * extract this somehow from define.h . Otherwise, it will complain * if a new type is added, but if a type is removed and this * function not updated, that will no be noticed. * * @param type value to check. * @return 1 if the type is valid, 0 else. */ int is_type_valid(uint8 type) { if (type >= OBJECT_TYPE_MAX) return 0; if (type == 11 || type == 12) return 0; if (type == 19 || type == 25 || type == 35 || type == 38 || type == 44 || type == 47) return 0; if (type == 61 || type == 63 || type == 76 || type == 78 || type == 81) return 0; if (type == 81 || type == 84 || type == 86 || type == 88 || type == 89) return 0; if (type == 96 || type == 97 || type == 107 || type == 108 || type == 110) return 0; if (type >= 117 && type <= 120) return 0; if (type >= 125 && type <= 129) return 0; if (type >= 131 && type <= 137) return 0; if (type >= 140 && type <= 149) return 0; if (type >= 151 && type <= 153) return 0; return 1; } /*** end of arch.c ***/ crossfire-1.70.0/common/treasure.c0000644000014500000120000015722411731300526014001 00000000000000 /* * static char *rcs_treasure_c = * "$Id: treasure.c 15527 2011-11-06 17:43:01Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Everything concerning treasures. * @see page_treasure_list */ #define ALLOWED_COMBINATION /** * TREASURE_DEBUG does some checking on the treasurelists after loading. * It is useful for finding bugs in the treasures file. Since it only * slows the startup some (and not actual game play), it is by default * left on */ #define TREASURE_DEBUG /* TREASURE_VERBOSE enables copious output concerning artifact generation */ /* #define TREASURE_VERBOSE */ #include #include #include #include #include /** * Resistances which can show up on rings and amulets. * If you want to weight things so certain resistances show up more often than * others, just add more entries in the table for the protections you want to * show up. */ static int resist_table[] = { ATNR_PHYSICAL, ATNR_MAGIC, ATNR_FIRE, ATNR_ELECTRICITY, ATNR_COLD, ATNR_CONFUSION, ATNR_ACID, ATNR_DRAIN, ATNR_GHOSTHIT, ATNR_POISON, ATNR_SLOW, ATNR_PARALYZE, ATNR_TURN_UNDEAD, ATNR_FEAR, ATNR_DEPLETE, ATNR_DEATH, ATNR_HOLYWORD, ATNR_BLIND, ATNR_LIFE_STEALING, ATNR_DISEASE }; /** Number of items in ::resist_table. */ #define num_resist_table 19 static void change_treasure(treasure *t, object *op); /* overrule default values */ static int special_potion(object *op); static void fix_flesh_item(object *item, const object *donor); extern const char *const spell_mapping[]; /** * Initialize global archtype pointers: */ void init_archetype_pointers(void) { int prev_warn = warn_archetypes; warn_archetypes = 1; if (ring_arch == NULL) ring_arch = find_archetype("ring"); if (amulet_arch == NULL) amulet_arch = find_archetype("amulet"); if (staff_arch == NULL) staff_arch = find_archetype("staff"); if (crown_arch == NULL) crown_arch = find_archetype("crown"); warn_archetypes = prev_warn; } /** * Allocate and return the pointer to an empty treasurelist structure. * * @return * new structure, blanked, never NULL. * * @note * will call fatal() if memory allocation error. * @ingroup page_treasure_list */ static treasurelist *get_empty_treasurelist(void) { treasurelist *tl = (treasurelist *)malloc(sizeof(treasurelist)); if (tl == NULL) fatal(OUT_OF_MEMORY); memset(tl, 0, sizeof(treasurelist)); return tl; } /** * Allocate and return the pointer to an empty treasure structure. * * @return * new structure, blanked, never NULL. * * @note * will call fatal() if memory allocation error. * @ingroup page_treasure_list */ static treasure *get_empty_treasure(void) { treasure *t = (treasure *)calloc(1, sizeof(treasure)); if (t == NULL) fatal(OUT_OF_MEMORY); t->item = NULL; t->name = NULL; t->next = NULL; t->next_yes = NULL; t->next_no = NULL; t->chance = 100; t->magic = 0; t->nrof = 0; return t; } /** * Reads one treasure from the file, including the 'yes', 'no' and 'more' options. * * @param fp * file to read from. * @param[out] line * position in file. * @return * read structure, never NULL. * * @todo * check if change_name is still used, and remove it if no. * @ingroup page_treasure_list */ static treasure *load_treasure(FILE *fp, int *line) { char buf[MAX_BUF], *cp, variable[MAX_BUF]; treasure *t = get_empty_treasure(); int value; nroftreasures++; while (fgets(buf, MAX_BUF, fp) != NULL) { (*line)++; if (*buf == '#') continue; if ((cp = strchr(buf, '\n')) != NULL) *cp = '\0'; cp = buf; while (isspace(*cp)) /* Skip blanks */ cp++; if (sscanf(cp, "arch %s", variable)) { if ((t->item = find_archetype(variable)) == NULL) LOG(llevError, "Treasure lacks archetype: %s\n", variable); } else if (sscanf(cp, "list %s", variable)) t->name = add_string(variable); else if (sscanf(cp, "change_name %s", variable)) t->change_arch.name = add_string(variable); else if (sscanf(cp, "change_title %s", variable)) t->change_arch.title = add_string(variable); else if (sscanf(cp, "change_slaying %s", variable)) t->change_arch.slaying = add_string(variable); else if (sscanf(cp, "chance %d", &value)) t->chance = (uint8)value; else if (sscanf(cp, "nrof %d", &value)) t->nrof = (uint16)value; else if (sscanf(cp, "magic %d", &value)) t->magic = (uint8)value; else if (!strcmp(cp, "yes")) t->next_yes = load_treasure(fp, line); else if (!strcmp(cp, "no")) t->next_no = load_treasure(fp, line); else if (!strcmp(cp, "end")) return t; else if (!strcmp(cp, "more")) { t->next = load_treasure(fp, line); return t; } else LOG(llevError, "Unknown treasure-command: '%s', last entry %s, line %d\n", cp, t->name ? t->name : "null", *line); } LOG(llevError, "treasure lacks 'end'.\n"); return t; } #ifdef TREASURE_DEBUG /** * Checks if a treasure if valid. Will also check its yes and no options. * * Will LOG() to error. * * @param t * treasure to check. * @param tl * needed only so that the treasure name can be printed out. * @ingroup page_treasure_list */ static void check_treasurelist(const treasure *t, const treasurelist *tl) { if (t->item == NULL && t->name == NULL) LOG(llevError, "Treasurelist %s has element with no name or archetype\n", tl->name); if (t->chance >= 100 && t->next_yes && (t->next || t->next_no)) LOG(llevError, "Treasurelist %s has element that has 100%% generation, next_yes field as well as next or next_no\n", tl->name); /* find_treasurelist will print out its own error message */ if (t->name && strcmp(t->name, "NONE")) find_treasurelist(t->name); if (t->next) check_treasurelist(t->next, tl); if (t->next_yes) check_treasurelist(t->next_yes, tl); if (t->next_no) check_treasurelist(t->next_no, tl); } #endif /** * Opens LIBDIR/treasure and reads all treasure-declarations from it. * Each treasure is parsed with the help of load_treasure(). * * Will LOG() if file can't be accessed. * @ingroup page_treasure_list */ void load_treasures(void) { FILE *fp; char filename[MAX_BUF], buf[MAX_BUF], name[MAX_BUF]; treasurelist *previous = NULL; treasure *t; int line = 0; snprintf(filename, sizeof(filename), "%s/%s", settings.datadir, settings.treasures); if ((fp = fopen(filename, "r")) == NULL) { LOG(llevError, "Can't open treasure file.\n"); return; } while (fgets(buf, MAX_BUF, fp) != NULL) { line++; if (*buf == '#') continue; if (sscanf(buf, "treasureone %s\n", name) || sscanf(buf, "treasure %s\n", name)) { treasurelist *tl = get_empty_treasurelist(); tl->name = add_string(name); if (previous == NULL) first_treasurelist = tl; else previous->next = tl; previous = tl; tl->items = load_treasure(fp, &line); /* This is a one of the many items on the list should be generated. * Add up the chance total, and check to make sure the yes & no * fields of the treasures are not being used. */ if (!strncmp(buf, "treasureone", 11)) { for (t = tl->items; t != NULL; t = t->next) { #ifdef TREASURE_DEBUG if (t->next_yes || t->next_no) { LOG(llevError, "Treasure %s is one item, but on treasure %s\n", tl->name, t->item ? t->item->name : t->name); LOG(llevError, " the next_yes or next_no field is set\n"); } #endif tl->total_chance += t->chance; } } } else LOG(llevError, "Treasure-list didn't understand: %s, line %d\n", buf, line); } fclose(fp); #ifdef TREASURE_DEBUG /* Perform some checks on how valid the treasure data actually is. * verify that list transitions work (ie, the list that it is supposed * to transition to exists). Also, verify that at least the name * or archetype is set for each treasure element. */ for (previous = first_treasurelist; previous != NULL; previous = previous->next) check_treasurelist(previous->items, previous); #endif } /** * Searches for the given treasurelist in the globally linked list * of treasurelists which has been built by load_treasures(). * * Will LOG() to error if not found. * * @param name * treasure list to search. * @return * match, or NULL if treasurelist doesn't exist or is 'none'. * @ingroup page_treasure_list */ treasurelist *find_treasurelist(const char *name) { const char *tmp = find_string(name); treasurelist *tl; /* Special cases - randomitems of none is to override default. If * first_treasurelist is null, it means we are on the first pass of * of loading archetyps, so for now, just return - second pass will * init these values. */ if (!strcmp(name, "none") || (!first_treasurelist)) return NULL; if (tmp != NULL) for (tl = first_treasurelist; tl != NULL; tl = tl->next) if (tmp == tl->name) return tl; LOG(llevError, "Couldn't find treasurelist %s\n", name); return NULL; } /** * Inserts generated treasure where it should go. * * @param op * treasure just generated. * @param creator * for which object the treasure is being generated. * @param flags * combination of @ref GT_xxx values. * @ingroup page_treasure_list */ static void put_treasure(object *op, object *creator, int flags) { /* Bit of a hack - spells should never be put onto the map. The entire * treasure stuff is a problem - there is no clear idea of knowing * this is the original object, or if this is an object that should be created * by another object. */ if (flags>_ENVIRONMENT && op->type != SPELL) { SET_FLAG(op, FLAG_OBJ_ORIGINAL); object_insert_in_map_at(op, creator->map, op, INS_NO_MERGE|INS_NO_WALK_ON, creator->x, creator->y); } else op = object_insert_in_ob(op, creator); } /** * if there are change_xxx commands in the treasure, we include the changes * in the generated object * * @param t * treasure. * @param op * actual generated treasure. * @ingroup page_treasure_list */ static void change_treasure(treasure *t, object *op) { /* CMD: change_name xxxx */ if (t->change_arch.name) { FREE_AND_COPY(op->name, t->change_arch.name); /* not great, but better than something that is completely wrong */ FREE_AND_COPY(op->name_pl, t->change_arch.name); } if (t->change_arch.title) { if (op->title) free_string(op->title); op->title = add_string(t->change_arch.title); } if (t->change_arch.slaying) { if (op->slaying) free_string(op->slaying); op->slaying = add_string(t->change_arch.slaying); } } /** * Creates all the treasures. * * @param t * what to generate. * @param op * for who to generate the treasure. * @param flag * combination of @ref GT_xxx values. * @param difficulty * map difficulty. * @param tries * to avoid infinite recursion. * @ingroup page_treasure_list */ static void create_all_treasures(treasure *t, object *op, int flag, int difficulty, int tries) { object *tmp; if ((int)t->chance >= 100 || (RANDOM()%100+1) < (int)t->chance) { if (t->name) { if (strcmp(t->name, "NONE") && difficulty >= t->magic) create_treasure(find_treasurelist(t->name), op, flag, difficulty, tries); } else { if (t->item->clone.invisible != 0 || !(flag>_INVISIBLE)) { tmp = arch_to_object(t->item); if (t->nrof && tmp->nrof <= 1) tmp->nrof = RANDOM()%((int)t->nrof)+1; fix_generated_item(tmp, op, difficulty, t->magic, flag); change_treasure(t, tmp); put_treasure(tmp, op, flag); } } if (t->next_yes != NULL) create_all_treasures(t->next_yes, op, flag, difficulty, tries); } else if (t->next_no != NULL) create_all_treasures(t->next_no, op, flag, difficulty, tries); if (t->next != NULL) create_all_treasures(t->next, op, flag, difficulty, tries); } /** * Creates one treasure from the list. * * @param tl * what to generate. * @param op * for who to generate the treasure. * @param flag * combination of @ref GT_xxx values. * @param difficulty * map difficulty. * @param tries * to avoid infinite recursion. * * @note * can abort() if treasure has errors. * @ingroup page_treasure_list */ static void create_one_treasure(treasurelist *tl, object *op, int flag, int difficulty, int tries) { int value = RANDOM()%tl->total_chance; treasure *t; if (tries++ > 100) { LOG(llevDebug, "create_one_treasure: tries exceeded 100, returning without making treasure\n"); return; } for (t = tl->items; t != NULL; t = t->next) { value -= t->chance; if (value < 0) break; } if (!t || value >= 0) { LOG(llevError, "create_one_treasure: got null object or not able to find treasure\n"); abort(); return; } if (t->name) { if (!strcmp(t->name, "NONE")) return; if (difficulty >= t->magic) create_treasure(find_treasurelist(t->name), op, flag, difficulty, tries); else if (t->nrof) create_one_treasure(tl, op, flag, difficulty, tries); return; } if ((t->item) && (flag>_ONLY_GOOD)) { /* Generate only good items, damnit !*/ if (QUERY_FLAG(&(t->item->clone), FLAG_CURSED) || QUERY_FLAG(&(t->item->clone), FLAG_DAMNED)) { create_one_treasure(tl, op, flag, difficulty, tries+1); return; } } if ((t->item && t->item->clone.invisible != 0) || flag != GT_INVISIBLE) { object *tmp = arch_to_object(t->item); if (!tmp) return; if (t->nrof && tmp->nrof <= 1) tmp->nrof = RANDOM()%((int)t->nrof)+1; fix_generated_item(tmp, op, difficulty, t->magic, flag); change_treasure(t, tmp); put_treasure(tmp, op, flag); } } /** * This calls the appropriate treasure creation function. * * @param t * what to generate. * @param op * for who to generate the treasure. * @param flag * combination of @ref GT_xxx values. * @param difficulty * map difficulty. * @param tries * to avoid infinite recursion. * @ingroup page_treasure_list */ void create_treasure(treasurelist *t, object *op, int flag, int difficulty, int tries) { if (tries++ > 100) { LOG(llevDebug, "createtreasure: tries exceeded 100, returning without making treasure\n"); return; } if (t->total_chance) create_one_treasure(t, op, flag, difficulty, tries); else create_all_treasures(t->items, op, flag, difficulty, tries); } /** * This is similar to the old generate treasure function. However, * it instead takes a treasurelist. It is really just a wrapper around * create_treasure(). We create a dummy object that the treasure gets * inserted into, and then return that treasure. * * @param t * treasure list to generate from. * @param difficulty * treasure difficulty. * @return * generated treasure. Can be NULL if no suitable treasure was found. * @ingroup page_treasure_list */ object *generate_treasure(treasurelist *t, int difficulty) { object *ob = object_new(), *tmp; create_treasure(t, ob, 0, difficulty, 0); /* Don't want to free the object we are about to return */ tmp = ob->inv; if (tmp != NULL) object_remove(tmp); if (ob->inv) { LOG(llevError, "In generate treasure, created multiple objects.\n"); } object_free_drop_inventory(ob); return tmp; } /** * Calculate the appropriate level for wands staves and scrolls. * * This code presumes that op has had its spell object created (in op->inv) * * @param op * item we're trying to get the level of * @param difficulty * map difficulty. * @param retmult * if 1, return the multiplier, not the level, for computing value * @return * generated level, 0 if invalid item. */ static int level_for_item(const object *op, int difficulty, int retmult) { int level, mult, olevel; if (!op->inv) { LOG(llevError, "level_for_item: Object %s has no inventory!\n", op->name); return 0; } level = op->inv->level; /* Basically, we set mult to the lowest spell increase attribute that is * not zero - zero's mean no modification is done, so we don't want those. * given we want non zero results, we can't just use a few MIN's here. */ mult = op->inv->dam_modifier; if (op->inv->range_modifier && (op->inv->range_modifier < mult || mult == 0)) mult = op->inv->range_modifier; if (op->inv->duration_modifier && (op->inv->duration_modifier < mult || mult == 0)) mult = op->inv->duration_modifier; if (mult == 0) mult = 5; if (retmult) return mult; olevel = mult*rndm(0, difficulty)+level; if (olevel > MAX_SPELLITEM_LEVEL) olevel = MAX_SPELLITEM_LEVEL; return olevel; } /** * Based upon the specified difficulty and upon the difftomagic_list array, * a random magical bonus is returned. This is a new way of calculating the chance for an item to have * a specific magical bonus * The array has two arguments, the difficulty of the level, and the * magical bonus "wanted". */ static const int difftomagic_list[DIFFLEVELS][MAXMAGIC+1] = { /*chance of magic difficulty*/ /* +0 +1 +2 +3 +4 */ { 94, 3, 2, 1, 0 }, /*1*/ { 94, 3, 2, 1, 0 }, /*2*/ { 94, 3, 2, 1, 0 }, /*3*/ { 94, 3, 2, 1, 0 }, /*4*/ { 94, 3, 2, 1, 0 }, /*5*/ { 90, 4, 3, 2, 1 }, /*6*/ { 90, 4, 3, 2, 1 }, /*7*/ { 90, 4, 3, 2, 1 }, /*8*/ { 90, 4, 3, 2, 1 }, /*9*/ { 90, 4, 3, 2, 1 }, /*10*/ { 85, 6, 4, 3, 2 }, /*11*/ { 85, 6, 4, 3, 2 }, /*12*/ { 85, 6, 4, 3, 2 }, /*13*/ { 85, 6, 4, 3, 2 }, /*14*/ { 85, 6, 4, 3, 2 }, /*15*/ { 81, 8, 5, 4, 3 }, /*16*/ { 81, 8, 5, 4, 3 }, /*17*/ { 81, 8, 5, 4, 3 }, /*18*/ { 81, 8, 5, 4, 3 }, /*19*/ { 81, 8, 5, 4, 3 }, /*20*/ { 75, 10, 6, 5, 4 }, /*21*/ { 75, 10, 6, 5, 4 }, /*22*/ { 75, 10, 6, 5, 4 }, /*23*/ { 75, 10, 6, 5, 4 }, /*24*/ { 75, 10, 6, 5, 4 }, /*25*/ { 70, 12, 7, 6, 5 }, /*26*/ { 70, 12, 7, 6, 5 }, /*27*/ { 70, 12, 7, 6, 5 }, /*28*/ { 70, 12, 7, 6, 5 }, /*29*/ { 70, 12, 7, 6, 5 }, /*30*/ { 70, 9, 8, 7, 6 }, /*31*/ { 70, 9, 8, 7, 6 }, /*32*/ { 70, 9, 8, 7, 6 }, /*33*/ { 70, 9, 8, 7, 6 }, /*34*/ { 70, 9, 8, 7, 6 }, /*35*/ { 70, 6, 9, 8, 7 }, /*36*/ { 70, 6, 9, 8, 7 }, /*37*/ { 70, 6, 9, 8, 7 }, /*38*/ { 70, 6, 9, 8, 7 }, /*39*/ { 70, 6, 9, 8, 7 }, /*40*/ { 70, 3, 10, 9, 8 }, /*41*/ { 70, 3, 10, 9, 8 }, /*42*/ { 70, 3, 10, 9, 8 }, /*43*/ { 70, 3, 10, 9, 8 }, /*44*/ { 70, 3, 10, 9, 8 }, /*45*/ { 70, 2, 9, 10, 9 }, /*46*/ { 70, 2, 9, 10, 9 }, /*47*/ { 70, 2, 9, 10, 9 }, /*48*/ { 70, 2, 9, 10, 9 }, /*49*/ { 70, 2, 9, 10, 9 }, /*50*/ { 70, 2, 7, 11, 10 }, /*51*/ { 70, 2, 7, 11, 10 }, /*52*/ { 70, 2, 7, 11, 10 }, /*53*/ { 70, 2, 7, 11, 10 }, /*54*/ { 70, 2, 7, 11, 10 }, /*55*/ { 70, 2, 5, 12, 11 }, /*56*/ { 70, 2, 5, 12, 11 }, /*57*/ { 70, 2, 5, 12, 11 }, /*58*/ { 70, 2, 5, 12, 11 }, /*59*/ { 70, 2, 5, 12, 11 }, /*60*/ { 70, 2, 3, 13, 12 }, /*61*/ { 70, 2, 3, 13, 12 }, /*62*/ { 70, 2, 3, 13, 12 }, /*63*/ { 70, 2, 3, 13, 12 }, /*64*/ { 70, 2, 3, 13, 12 }, /*65*/ { 70, 2, 3, 12, 13 }, /*66*/ { 70, 2, 3, 12, 13 }, /*67*/ { 70, 2, 3, 12, 13 }, /*68*/ { 70, 2, 3, 12, 13 }, /*69*/ { 70, 2, 3, 12, 13 }, /*70*/ { 70, 2, 3, 11, 14 }, /*71*/ { 70, 2, 3, 11, 14 }, /*72*/ { 70, 2, 3, 11, 14 }, /*73*/ { 70, 2, 3, 11, 14 }, /*74*/ { 70, 2, 3, 11, 14 }, /*75*/ { 70, 2, 3, 10, 15 }, /*76*/ { 70, 2, 3, 10, 15 }, /*77*/ { 70, 2, 3, 10, 15 }, /*78*/ { 70, 2, 3, 10, 15 }, /*79*/ { 70, 2, 3, 10, 15 }, /*80*/ { 70, 2, 3, 9, 16 }, /*81*/ { 70, 2, 3, 9, 16 }, /*82*/ { 70, 2, 3, 9, 16 }, /*83*/ { 70, 2, 3, 9, 16 }, /*84*/ { 70, 2, 3, 9, 16 }, /*85*/ { 70, 2, 3, 8, 17 }, /*86*/ { 70, 2, 3, 8, 17 }, /*87*/ { 70, 2, 3, 8, 17 }, /*88*/ { 70, 2, 3, 8, 17 }, /*89*/ { 70, 2, 3, 8, 17 }, /*90*/ { 70, 2, 3, 7, 18 }, /*91*/ { 70, 2, 3, 7, 18 }, /*92*/ { 70, 2, 3, 7, 18 }, /*93*/ { 70, 2, 3, 7, 18 }, /*94*/ { 70, 2, 3, 7, 18 }, /*95*/ { 70, 2, 3, 6, 19 }, /*96*/ { 70, 2, 3, 6, 19 }, /*97*/ { 70, 2, 3, 6, 19 }, /*98*/ { 70, 2, 3, 6, 19 }, /*99*/ { 70, 2, 3, 6, 19 }, /*100*/ { 70, 2, 3, 6, 19 }, /*101*/ { 70, 2, 3, 6, 19 }, /*101*/ { 70, 2, 3, 6, 19 }, /*102*/ { 70, 2, 3, 6, 19 }, /*103*/ { 70, 2, 3, 6, 19 }, /*104*/ { 70, 2, 3, 6, 19 }, /*105*/ { 70, 2, 3, 6, 19 }, /*106*/ { 70, 2, 3, 6, 19 }, /*107*/ { 70, 2, 3, 6, 19 }, /*108*/ { 70, 2, 3, 6, 19 }, /*109*/ { 70, 2, 3, 6, 19 }, /*110*/ { 70, 2, 3, 6, 19 }, /*111*/ { 70, 2, 3, 6, 19 }, /*112*/ { 70, 2, 3, 6, 19 }, /*113*/ { 70, 2, 3, 6, 19 }, /*114*/ { 70, 2, 3, 6, 19 }, /*115*/ { 70, 2, 3, 6, 19 }, /*116*/ { 70, 2, 3, 6, 19 }, /*117*/ { 70, 2, 3, 6, 19 }, /*118*/ { 70, 2, 3, 6, 19 }, /*119*/ { 70, 2, 3, 6, 19 }, /*120*/ { 70, 2, 3, 6, 19 }, /*121*/ { 70, 2, 3, 6, 19 }, /*122*/ { 70, 2, 3, 6, 19 }, /*123*/ { 70, 2, 3, 6, 19 }, /*124*/ { 70, 2, 3, 6, 19 }, /*125*/ { 70, 2, 3, 6, 19 }, /*126*/ { 70, 2, 3, 6, 19 }, /*127*/ { 70, 2, 3, 6, 19 }, /*128*/ { 70, 2, 3, 6, 19 }, /*129*/ { 70, 2, 3, 6, 19 }, /*130*/ { 70, 2, 3, 6, 19 }, /*131*/ { 70, 2, 3, 6, 19 }, /*132*/ { 70, 2, 3, 6, 19 }, /*133*/ { 70, 2, 3, 6, 19 }, /*134*/ { 70, 2, 3, 6, 19 }, /*135*/ { 70, 2, 3, 6, 19 }, /*136*/ { 70, 2, 3, 6, 19 }, /*137*/ { 70, 2, 3, 6, 19 }, /*138*/ { 70, 2, 3, 6, 19 }, /*139*/ { 70, 2, 3, 6, 19 }, /*140*/ { 70, 2, 3, 6, 19 }, /*141*/ { 70, 2, 3, 6, 19 }, /*142*/ { 70, 2, 3, 6, 19 }, /*143*/ { 70, 2, 3, 6, 19 }, /*144*/ { 70, 2, 3, 6, 19 }, /*145*/ { 70, 2, 3, 6, 19 }, /*146*/ { 70, 2, 3, 6, 19 }, /*147*/ { 70, 2, 3, 6, 19 }, /*148*/ { 70, 2, 3, 6, 19 }, /*149*/ { 70, 2, 3, 6, 19 }, /*150*/ { 70, 2, 3, 6, 19 }, /*151*/ { 70, 2, 3, 6, 19 }, /*152*/ { 70, 2, 3, 6, 19 }, /*153*/ { 70, 2, 3, 6, 19 }, /*154*/ { 70, 2, 3, 6, 19 }, /*155*/ { 70, 2, 3, 6, 19 }, /*156*/ { 70, 2, 3, 6, 19 }, /*157*/ { 70, 2, 3, 6, 19 }, /*158*/ { 70, 2, 3, 6, 19 }, /*159*/ { 70, 2, 3, 6, 19 }, /*160*/ { 70, 2, 3, 6, 19 }, /*161*/ { 70, 2, 3, 6, 19 }, /*162*/ { 70, 2, 3, 6, 19 }, /*163*/ { 70, 2, 3, 6, 19 }, /*164*/ { 70, 2, 3, 6, 19 }, /*165*/ { 70, 2, 3, 6, 19 }, /*166*/ { 70, 2, 3, 6, 19 }, /*167*/ { 70, 2, 3, 6, 19 }, /*168*/ { 70, 2, 3, 6, 19 }, /*169*/ { 70, 2, 3, 6, 19 }, /*170*/ { 70, 2, 3, 6, 19 }, /*171*/ { 70, 2, 3, 6, 19 }, /*172*/ { 70, 2, 3, 6, 19 }, /*173*/ { 70, 2, 3, 6, 19 }, /*174*/ { 70, 2, 3, 6, 19 }, /*175*/ { 70, 2, 3, 6, 19 }, /*176*/ { 70, 2, 3, 6, 19 }, /*177*/ { 70, 2, 3, 6, 19 }, /*178*/ { 70, 2, 3, 6, 19 }, /*179*/ { 70, 2, 3, 6, 19 }, /*180*/ { 70, 2, 3, 6, 19 }, /*181*/ { 70, 2, 3, 6, 19 }, /*182*/ { 70, 2, 3, 6, 19 }, /*183*/ { 70, 2, 3, 6, 19 }, /*184*/ { 70, 2, 3, 6, 19 }, /*185*/ { 70, 2, 3, 6, 19 }, /*186*/ { 70, 2, 3, 6, 19 }, /*187*/ { 70, 2, 3, 6, 19 }, /*188*/ { 70, 2, 3, 6, 19 }, /*189*/ { 70, 2, 3, 6, 19 }, /*190*/ { 70, 2, 3, 6, 19 }, /*191*/ { 70, 2, 3, 6, 19 }, /*192*/ { 70, 2, 3, 6, 19 }, /*193*/ { 70, 2, 3, 6, 19 }, /*194*/ { 70, 2, 3, 6, 19 }, /*195*/ { 70, 2, 3, 6, 19 }, /*196*/ { 70, 2, 3, 6, 19 }, /*197*/ { 70, 2, 3, 6, 19 }, /*198*/ { 70, 2, 3, 6, 19 }, /*199*/ { 70, 2, 3, 6, 19 }, /*200*/ }; /** This is used when determining the magical bonus created on specific maps. * * @param difficulty * difficulty. * @return * random magic bonus. */ static int magic_from_difficulty(int difficulty) { int percent, loop; difficulty--; if (difficulty < 0) difficulty = 0; if (difficulty >= DIFFLEVELS) difficulty = DIFFLEVELS-1; percent = RANDOM()%100; for (loop = 0; loop < (MAXMAGIC+1); ++loop) { percent -= difftomagic_list[difficulty][loop]; if (percent < 0) break; } if (loop == (MAXMAGIC+1)) { LOG(llevError, "Warning, table for difficulty %d bad.\n", difficulty); loop = 0; } /* LOG(llevDebug, "Chose magic %d for difficulty %d\n", loop, difficulty);*/ return (RANDOM()%3) ? loop : -loop; } /** * Sets magical bonus in an object, and recalculates the effect on * the armour variable, and the effect on speed of armour. * This function doesn't work properly, should add use of archetypes * to make it truly absolute. * * @param op * object we're modifying. * @param magic * magic modifier. */ void set_abs_magic(object *op, int magic) { if (!magic) return; op->magic = magic; if (op->arch) { if (op->type == ARMOUR) ARMOUR_SPEED(op) = (ARMOUR_SPEED(&op->arch->clone)*(100+magic*10))/100; if (magic < 0 && !(RANDOM()%3)) /* You can't just check the weight always */ magic = (-magic); op->weight = (op->arch->clone.weight*(100-magic*10))/100; } else { if (op->type == ARMOUR) ARMOUR_SPEED(op) = (ARMOUR_SPEED(op)*(100+magic*10))/100; if (magic < 0 && !(RANDOM()%3)) /* You can't just check the weight always */ magic = (-magic); op->weight = (op->weight*(100-magic*10))/100; } } /** * Sets a random magical bonus in the given object based upon * the given difficulty, and the given max possible bonus. * * Item will be cursed if magic is megative. * * @param difficulty * difficulty we want the item to be. * @param op * the object. * @param max_magic * what should be the maximum magic of the item. * @param flags * combination of @ref GT_xxx flags. */ static void set_magic(int difficulty, object *op, int max_magic, int flags) { int i; i = magic_from_difficulty(difficulty); if ((flags>_ONLY_GOOD) && i < 0) i = -i; if (i > max_magic) i = max_magic; set_abs_magic(op, i); if (i < 0) SET_FLAG(op, FLAG_CURSED); } /** * Randomly adds one magical ability to the given object. * * Modified for Partial Resistance in many ways: * 1) Since rings can have multiple bonuses, if the same bonus * is rolled again, increase it - the bonuses now stack with * other bonuses previously rolled and ones the item might natively have. * 2) Add code to deal with new PR method. * * Changes the item's value. * * @param op * ring or amulet to change. * @param bonus * bonus to add to item. */ static void set_ring_bonus(object *op, int bonus) { int r = RANDOM()%(bonus > 0 ? 25 : 11); if (op->type == AMULET) { if (!(RANDOM()%21)) r = 20+RANDOM()%2; else { if (RANDOM()&2) r = 10; else r = 11+RANDOM()%9; } } switch (r) { /* Redone by MSW 2000-11-26 to have much less code. Also, * bonuses and penalties will stack and add to existing values. * of the item. */ case 0: case 1: case 2: case 3: case 4: case 5: case 6: set_attr_value(&op->stats, r, (signed char)(bonus+get_attr_value(&op->stats, r))); break; case 7: op->stats.dam += bonus; break; case 8: op->stats.wc += bonus; break; case 9: op->stats.food += bonus; /* hunger/sustenance */ break; case 10: op->stats.ac += bonus; break; /* Item that gives protections/vulnerabilities */ case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: { int b = 5+FABS(bonus), val, resist = RANDOM()%num_resist_table; /* Roughly generate a bonus between 100 and 35 (depending on the bonus) */ val = 10+RANDOM()%b+RANDOM()%b+RANDOM()%b+RANDOM()%b; /* Cursed items need to have higher negative values to equal out with * positive values for how protections work out. Put another * little random element in since that they don't always end up with * even values. */ if (bonus < 0) val = 2*-val-RANDOM()%b; if (val > 35) val = 35; /* Upper limit */ b = 0; while (op->resist[resist_table[resist]] != 0 && b++ < 4) { resist = RANDOM()%num_resist_table; } if (b == 4) return; /* Not able to find a free resistance */ op->resist[resist_table[resist]] = val; /* We should probably do something more clever here to adjust value * based on how good a resistance we gave. */ break; } case 20: if (op->type == AMULET) { SET_FLAG(op, FLAG_REFL_SPELL); op->value *= 11; } else { op->stats.hp = 1; /* regenerate hit points */ op->value *= 4; } break; case 21: if (op->type == AMULET) { SET_FLAG(op, FLAG_REFL_MISSILE); op->value *= 9; } else { op->stats.sp = 1; /* regenerate spell points */ op->value *= 3; } break; case 22: op->stats.exp += bonus; /* Speed! */ op->value = (op->value*2)/3; break; } if (bonus > 0) op->value *= 2*bonus; else op->value = -(op->value*2*bonus)/3; } /** * get_magic(diff) will return a random number between 0 and 4. * diff can be any value above 2. The higher the diff-variable, the * higher is the chance of returning a low number. * It is only used in fix_generated_treasure() to set bonuses on * rings and amulets. * Another scheme is used to calculate the magic of weapons and armours. */ static int get_magic(int diff) { int i; if (diff < 3) diff = 3; for (i = 0; i < 4; i++) if (RANDOM()%diff) return i; return 4; } /** * Adjust trap difficulty to the map. * The default traps are too strong for wimpy level 1 players, and * unthreatening to anyone of high level * * @param trap * trap to adjust. * @param difficulty * map difficulty. */ static void trap_adjust(object *trap, int difficulty) { int i; /* now we set the trap level to match the difficulty of the level * the formula below will give a level from 1 to (2*difficulty) with * a peak probability at difficulty */ trap->level = rndm(0, difficulty-1)+rndm(0, difficulty-1); if (trap->level < 1) trap->level = 1; /* set the hiddenness of the trap, similar formula to above */ trap->stats.Cha = rndm(0, 19)+rndm(0, difficulty-1)+rndm(0, difficulty-1); if (!trap->other_arch && !trap->inv) { /* set the damage of the trap. * we get 0-4 pts of damage per level of difficulty of the map in * the trap */ trap->stats.dam = 0; for (i = 0; i < difficulty; i++) trap->stats.dam += rndm(0, 4); /* the poison trap special case */ if (trap->attacktype&AT_POISON) { trap->stats.dam = rndm(0, difficulty-1); if (trap->stats.dam < 1) trap->stats.dam = 1; } /* so we get an appropriate amnt of exp for AT_DEATH traps */ if (trap->attacktype&AT_DEATH) trap->stats.dam = 127; } } #define DICE2 (get_magic(2) == 2 ? 2 : 1) #define DICESPELL (RANDOM()%3+RANDOM()%3+RANDOM()%3+RANDOM()%3+RANDOM()%3) /** * fix_generated_item(): This is called after an item is generated, in * order to set it up right. This produced magical bonuses, puts spells * into scrolls/books/wands, makes it unidentified, hides the value, etc. * * 4/28/96 added creator object from which op may now inherit properties based on * op->type. Right now, which stuff the creator passes on is object type * dependant. I know this is a spagetti manuever, but is there a cleaner * way to do this? b.t. * * @param op * object to fix. * @param creator * for who op was created. Can be NULL. * @param difficulty * difficulty level. * @param max_magic * maximum magic for the item. * @param flags * @li ::GT_ENVIRONMENT: if not set, calls fix_flesh_item(). * @li ::GT_STARTEQUIP: Sets ::FLAG_STARTEQUIP on item if appropriate, or clears the item's * value. * @li ::GT_MINIMAL: Does minimal processing on the object - just enough to make it * a working object - don't change magic, value, etc, but set it material * type as appropriate, for objects that need spell objects, set those, etc */ void fix_generated_item(object *op, object *creator, int difficulty, int max_magic, int flags) { int was_magic = op->magic, num_enchantments = 0, save_item_power; if (!creator || creator->type == op->type) creator = op; /* safety & to prevent polymorphed objects giving attributes */ /* If we make an artifact, this information will be destroyed */ save_item_power = op->item_power; op->item_power = 0; if (op->randomitems && op->type != SPELL) { create_treasure(op->randomitems, op, flags, difficulty, 0); if (!op->inv) LOG(llevDebug, "fix_generated_item: Unable to generate treasure for %s\n", op->name); /* So the treasure doesn't get created again */ op->randomitems = NULL; } if (difficulty < 1) difficulty = 1; if (!(flags>_MINIMAL)) { if (op->arch == crown_arch) { set_magic(difficulty > 25 ? 30 : difficulty+5, op, max_magic, flags); num_enchantments = calc_item_power(op); generate_artifact(op, difficulty); } else { if (!op->magic && max_magic) set_magic(difficulty, op, max_magic, flags); num_enchantments = calc_item_power(op); if ((!was_magic && !(RANDOM()%CHANCE_FOR_ARTIFACT)) || op->type == ROD || difficulty >= 999) generate_artifact(op, difficulty); } /* Object was made an artifact. Calculate its item_power rating. * the item_power in the object is what the artifact adds. */ if (op->title) { /* if save_item_power is set, then most likely we started with an * artifact and have added new abilities to it - this is rare, but * but I have seen things like 'strange rings of fire'. So just * figure out the power from the base power plus what this one adds. * Note that since item_power is not quite linear, this actually * ends up being somewhat of a bonus. */ if (save_item_power) op->item_power = save_item_power+get_power_from_ench(op->item_power); else op->item_power += get_power_from_ench(num_enchantments); } else if (save_item_power) { /* restore the item_power field to the object if we haven't changed * it. we don't care about num_enchantments - that will basically * just have calculated some value from the base attributes of the * archetype. */ op->item_power = save_item_power; } else { /* item_power was zero. This is suspicious, as it may be because it * was never previously calculated. Let's compute a value and see if * it is non-zero. If it indeed is, then assign it as the new * item_power value. * - gros, 21th of July 2006. */ op->item_power = calc_item_power(op); save_item_power = op->item_power; /* Just in case it would get used * again below */ } } else { /* If flag is GT_MINIMAL, we want to restore item power */ op->item_power = save_item_power; } /* materialtype modifications. Note we allow this on artifacts. */ set_materialname(op); if (flags>_MINIMAL) { if (op->type == POTION) /* Handle healing and magic power potions */ if (op->stats.sp && !op->randomitems) { object *tmp; tmp = create_archetype(spell_mapping[op->stats.sp]); object_insert_in_ob(tmp, op); op->stats.sp = 0; } } else if (!op->title) { /* Only modify object if not special */ switch (op->type) { case WEAPON: case ARMOUR: case SHIELD: case HELMET: case CLOAK: if (QUERY_FLAG(op, FLAG_CURSED) && !(RANDOM()%4)) set_ring_bonus(op, -DICE2); break; case BRACERS: if (!(RANDOM()%(QUERY_FLAG(op, FLAG_CURSED) ? 5 : 20))) { set_ring_bonus(op, QUERY_FLAG(op, FLAG_CURSED) ? -DICE2 : DICE2); if (!QUERY_FLAG(op, FLAG_CURSED)) op->value *= 3; } break; case POTION: { int too_many_tries = 0, is_special = 0; /* Handle healing and magic power potions */ if (op->stats.sp && !op->randomitems) { object *tmp; tmp = create_archetype(spell_mapping[op->stats.sp]); object_insert_in_ob(tmp, op); op->stats.sp = 0; } while (!(is_special = special_potion(op)) && !op->inv) { generate_artifact(op, difficulty); if (too_many_tries++ > 10) break; } /* don't want to change value for healing/magic power potions, * since the value set on those is already correct. */ if (op->inv && op->randomitems) { /* value multiplier is same as for scrolls */ op->value = (op->value*op->inv->value); op->level = op->inv->level/2+RANDOM()%difficulty+RANDOM()%difficulty; } else { FREE_AND_COPY(op->name, "potion"); FREE_AND_COPY(op->name_pl, "potions"); } if (!(flags>_ONLY_GOOD) && RANDOM()%2) SET_FLAG(op, FLAG_CURSED); break; } case AMULET: if (op->arch == amulet_arch) op->value *= 5; /* Since it's not just decoration */ case RING: if (op->arch == NULL) { object_remove(op); object_free_drop_inventory(op); op = NULL; break; } if (op->arch != ring_arch && op->arch != amulet_arch) /* It's a special artifact!*/ break; if (GET_ANIM_ID(op)) SET_ANIMATION(op, RANDOM()%((int)NUM_ANIMATIONS(op))); if (!(flags>_ONLY_GOOD) && !(RANDOM()%3)) SET_FLAG(op, FLAG_CURSED); set_ring_bonus(op, QUERY_FLAG(op, FLAG_CURSED) ? -DICE2 : DICE2); if (op->type != RING) /* Amulets have only one ability */ break; if (!(RANDOM()%4)) { int d = (RANDOM()%2 || QUERY_FLAG(op, FLAG_CURSED)) ? -DICE2 : DICE2; if (d > 0) op->value *= 3; set_ring_bonus(op, d); if (!(RANDOM()%4)) { int d = (RANDOM()%3 || QUERY_FLAG(op, FLAG_CURSED)) ? -DICE2 : DICE2; if (d > 0) op->value *= 5; set_ring_bonus(op, d); } } break; case BOOK: /* Is it an empty book?, if yes lets make a special * msg for it, and tailor its properties based on the * creator and/or map level we found it on. */ if (!op->msg && RANDOM()%10) { /* set the book level properly */ if (creator->level == 0 || QUERY_FLAG(creator, FLAG_ALIVE)) { if (op->map && op->map->difficulty) op->level = RANDOM()%(op->map->difficulty)+RANDOM()%10+1; else op->level = RANDOM()%20+1; } else op->level = RANDOM()%creator->level; tailor_readable_ob(op, creator->stats.sp); /* books w/ info are worth more! */ if (op->msg != NULL) op->value *= ((op->level > 10 ? op->level : (op->level+1)/2)*((strlen(op->msg)/250)+1)); /* creator related stuff */ if (creator->slaying && !op->slaying) /* for check_inv floors */ op->slaying = add_string(creator->slaying); /* add exp so reading it gives xp (once)*/ op->stats.exp = op->value > 10000 ? op->value/5 : op->value/10; } /* for library, chained books. Note that some monsters have * no_pick set - we don't want to set no pick in that case. */ if (QUERY_FLAG(creator, FLAG_NO_PICK) && !QUERY_FLAG(creator, FLAG_MONSTER)) SET_FLAG(op, FLAG_NO_PICK); break; case SPELLBOOK: op->value = op->value*op->inv->value; /* add exp so learning gives xp */ op->level = op->inv->level; op->stats.exp = op->value; /* some more fun */ if (!(flags>_ONLY_GOOD) && rndm(1, 100) <= 5) { if (rndm(1, 6) <= 1) SET_FLAG(op, FLAG_DAMNED); else SET_FLAG(op, FLAG_CURSED); } else if (rndm(1, 100) <= 1) { SET_FLAG(op, FLAG_BLESSED); } break; case WAND: /* nrof in the treasure list is number of charges, * not number of wands. So copy that into food (charges), * and reset nrof. */ op->stats.food = op->inv->nrof; op->nrof = 1; /* If the spell changes by level, choose a random level * for it, and adjust price. If the spell doesn't * change by level, just set the wand to the level of * the spell, and value calculation is simpler. */ if (op->inv->duration_modifier || op->inv->dam_modifier || op->inv->range_modifier) { op->level = level_for_item(op, difficulty, 0); op->value = op->value*op->inv->value*(op->level+50)/(op->inv->level+50); } else { op->level = op->inv->level; op->value = op->value*op->inv->value; } break; case ROD: op->level = level_for_item(op, difficulty, 0); rod_adjust(op); break; case SCROLL: op->level = level_for_item(op, difficulty, 0); op->value = op->value*op->inv->value*(op->level+50)/(op->inv->level+50); /* add exp so reading them properly gives xp */ op->stats.exp = op->value/5; op->nrof = op->inv->nrof; /* some more fun */ if (!(flags>_ONLY_GOOD) && rndm(1, 100) <= 20) { if (rndm(1, 6) <= 1) SET_FLAG(op, FLAG_DAMNED); else SET_FLAG(op, FLAG_CURSED); } else if (rndm(1, 100) <= 2) { SET_FLAG(op, FLAG_BLESSED); } break; case RUNE: trap_adjust(op, difficulty); break; case TRAP: trap_adjust(op, difficulty); break; } /* switch type */ } if (flags>_STARTEQUIP) { if (op->nrof < 2 && op->type != CONTAINER && op->type != MONEY && !QUERY_FLAG(op, FLAG_IS_THROWN)) SET_FLAG(op, FLAG_STARTEQUIP); else if (op->type != MONEY) op->value = 0; } if (!(flags>_ENVIRONMENT)) fix_flesh_item(op, creator); } /** * For debugging purposes. Dumps all treasures recursively (see below). */ static void dump_monster_treasure_rec(const char *name, treasure *t, int depth) { treasurelist *tl; int i; if (depth > 100) return; while (t != NULL) { if (t->name != NULL) { for (i = 0; i < depth; i++) fprintf(logfile, " "); fprintf(logfile, "{ (list: %s)\n", t->name); tl = find_treasurelist(t->name); dump_monster_treasure_rec(name, tl->items, depth+2); for (i = 0; i < depth; i++) fprintf(logfile, " "); fprintf(logfile, "} (end of list: %s)\n", t->name); } else { for (i = 0; i < depth; i++) fprintf(logfile, " "); if (t->item->clone.type == FLESH) fprintf(logfile, "%s's %s\n", name, t->item->clone.name); else fprintf(logfile, "%s\n", t->item->clone.name); } if (t->next_yes != NULL) { for (i = 0; i < depth; i++) fprintf(logfile, " "); fprintf(logfile, " (if yes)\n"); dump_monster_treasure_rec(name, t->next_yes, depth+1); } if (t->next_no != NULL) { for (i = 0; i < depth; i++) fprintf(logfile, " "); fprintf(logfile, " (if no)\n"); dump_monster_treasure_rec(name, t->next_no, depth+1); } t = t->next; } } /** * For debugging purposes. Dumps all treasures for a given monster. * Created originally by Raphael Quinet for debugging the alchemy code. */ void dump_monster_treasure(const char *name) { archetype *at; int found; found = 0; fprintf(logfile, "\n"); for (at = first_archetype; at != NULL; at = at->next) if (!strcasecmp(at->clone.name, name) && at->clone.title == NULL) { fprintf(logfile, "treasures for %s (arch: %s)\n", at->clone.name, at->name); if (at->clone.randomitems != NULL) dump_monster_treasure_rec(at->clone.name, at->clone.randomitems->items, 1); else fprintf(logfile, "(nothing)\n"); fprintf(logfile, "\n"); found++; } if (found == 0) fprintf(logfile, "No objects have the name %s!\n\n", name); } /** * Objects of type FLESH are similar to type * FOOD, except they inherit properties (name, food value, etc). * based on the original owner (or 'donor' if you like). -b.t. * @param item FLESH item to fix based on the donor. * @param donor what monster will give item. */ static void fix_flesh_item(object *item, const object *donor) { char tmpbuf[MAX_BUF]; int i; if (item->type == FLESH && donor && QUERY_FLAG(donor, FLAG_MONSTER)) { /* change the name */ snprintf(tmpbuf, sizeof(tmpbuf), "%s's %s", donor->name, item->name); FREE_AND_COPY(item->name, tmpbuf); snprintf(tmpbuf, sizeof(tmpbuf), "%s's %s", donor->name, item->name_pl); FREE_AND_COPY(item->name_pl, tmpbuf); /* store original arch in other_arch */ if (!item->other_arch) { if (!donor->arch->reference_count) { item->other_arch = donor->arch; } else { /* If dealing with custom monsters, other_arch still needs to * point back to the original. Otherwise what happens * is that other_arch points at the custom archetype, but * that can be freed. Reference count doesn't work because * the loader will not be able to resolve the other_arch at * load time (server may has restarted, etc.) */ archetype *original = find_archetype(donor->arch->name); if (original) item->other_arch = original; else { LOG(llevError, "could not find original archetype %s for custom monster!\n", donor->arch->name); abort(); } } } /* weight is FLESH weight/100 * donor */ if ((item->weight = (signed long)(((double)item->weight/(double)100.0)*(double)donor->weight)) == 0) item->weight = 1; /* value is multiplied by level of donor */ item->value *= isqrt(donor->level*2); /* food value */ item->stats.food += (donor->stats.hp/100)+donor->stats.Con; /* flesh items inherit some abilities of donor, but not full effect. */ for (i = 0; i < NROFATTACKS; i++) item->resist[i] = donor->resist[i]/2; /* item inherits donor's level and exp (important for dragons) */ item->level = donor->level; item->stats.exp = donor->stats.exp; /* if donor has some attacktypes, the flesh is poisonous */ if (donor->attacktype&AT_POISON) item->type = POISON; if (donor->attacktype&AT_ACID) item->stats.hp = -1*item->stats.food; SET_FLAG(item, FLAG_NO_STEAL); } } /** * Check if object is a special potion. * * @param op * object to check. * @return * 1 if op is a special potion (resistance, attribute, ...), 0 else. */ static int special_potion(object *op) { int i; if (op->attacktype) return 1; if (op->stats.Str || op->stats.Dex || op->stats.Con || op->stats.Pow || op->stats.Wis || op->stats.Int || op->stats.Cha) return 1; for (i = 0; i < NROFATTACKS; i++) if (op->resist[i]) return 1; return 0; } /** * Frees a treasure, including its yes, no and next items. * * @param t * treasure to free. Pointer is free()d too, so becomes invalid. */ static void free_treasurestruct(treasure *t) { if (t->next) free_treasurestruct(t->next); if (t->next_yes) free_treasurestruct(t->next_yes); if (t->next_no) free_treasurestruct(t->next_no); free(t); } /** * Free all treasure-related memory. */ void free_all_treasures(void) { treasurelist *tl, *next; for (tl = first_treasurelist; tl != NULL; tl = next) { next = tl->next; if (tl->name) free_string(tl->name); if (tl->items) free_treasurestruct(tl->items); free(tl); } } /** * This is the function that does the actual work for treasurelist_find_matching_type(). * See notes below on what we are doing here. Note that the logic here follows * that of create_all_treasures(), except we do not care about difficulty * or chances. * * @param t * treasure entry we are working on. * @param type * object type we are matching against. * @param olp * linked list pointer, may be null. * @param tries * For each depth, increases by one. This is needed because treasurelists * can loop back on each other (A->B, B->C, C->A), so we needto make sure * we do not get in an infinite loop. * * @return * linked list of entries. This may be NULL if nothing is found. */ static objectlink *treasure_find_matching_type(treasure *t, int type, objectlink *olp, int tries) { objectlink *nolp = olp; /* I do not think this should get logged - since we are processing all * possibilities, this could happen pretty often. */ if (tries++ > 100) { return olp; } if (t->name) { if (strcmp(t->name, "NONE")) { /* Look up treasurelist and then process - this is safer * as if for some reason the treasurelist does not exist, * this will just skip over it harmlessly. */ treasurelist *tl = find_treasurelist(t->name); if (tl) nolp = treasure_find_matching_type(tl->items, type, nolp, tries); } } else { if (t->item->clone.type == type) { nolp = get_objectlink(); nolp->next = olp; nolp->ob = &t->item->clone; } } if (t->next_yes != NULL) { nolp = treasure_find_matching_type(t->next_yes, type, nolp, tries); } if (t->next_no != NULL) { nolp = treasure_find_matching_type(t->next_no, type, nolp, tries); } if (t->next != NULL) { nolp = treasure_find_matching_type(t->next, type, nolp, tries); } return nolp; } /** * This function looks at the passed in treasurelist and returns all * objects on it, or on treasurelists it references, of matching * type. The oblinkpt linked list will return a pointer to all * the archetype clones. * This is useful for functions that need to examine treasurelists * and potentially revoke or add a partial set of items on the list. * This removes the need of other functions to have their own parsing * logic of treasurelists. * Note that this will return all objects that may show up on the * the treasurelist of matching type. This does not look at difficulty, * yes/no combinations, etc. In general, functions that call this should * have some idea of what the treasurelist may be/what it may have on it. * The contents of the linked list may not be unique - it is entirely * possible that due to treasurelist traversals, the same item shows up * multiple times, and there is no check here for that. * The order of items on the returned linked list should not be taken * to be meaningful in any way - based on different processing algorithms, * the results could change. As of this writing, order is reverse from * that of the treasurelists, simply because that is fastest way to process them. * * @param randomitems * The treasurelist to examine. * @param type * the object type (arch->clone.type) to match against. * @param traverse * If true, then this will process any treasurelists that this treasurelist points * to, and so on. * * @return oblinkpt * linked list containing pointers to the arch->clone fields. Those objects * should not be altered in any way, and must be copied to a new object * before being used. the returned oblinkpt must be freed with free_objectlink(), * otherwise, this will result in a memory leak. */ objectlink * treasurelist_find_matching_type(const treasurelist *randomitems, int type, int traverse) { objectlink *olp; olp=treasure_find_matching_type(randomitems->items, type, NULL, 0); return olp; } crossfire-1.70.0/common/object.c0000644000014500000120000043305011731300526013407 00000000000000/* * static char *rcsid_object_c = * "$Id: object.c 16417 2012-01-01 17:13:34Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file common/object.c * Everything related to objects, in their basic form. */ /* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects. object_sub/add_weight will transcend the environment updating the carrying variable. */ #include #include #include #include #ifndef WIN32 /* ---win32 exclude headers */ #include #include #include #endif /* win32 */ #include #include #include #include #include "stringbuffer.h" static int compare_ob_value_lists_one(const object *, const object *); static int compare_ob_value_lists(const object *, const object *); static void expand_objects(void); static void permute(int *, int, int); static int object_set_value_s(object *, const char *, const char *, int); static void object_increase_nrof(object *op, uint32 i); #ifdef MEMORY_DEBUG int nroffreeobjects = 0; /**< Number of free objects. */ int nrofallocobjects = 0; /**< Number of allocated objects. */ #undef OBJ_EXPAND #define OBJ_EXPAND 1 #else object objarray[STARTMAX]; /**< All objects, allocated this way at first */ int nroffreeobjects = STARTMAX; /**< How many OBs allocated and free (free) */ int nrofallocobjects = STARTMAX; /**< How many OBs allocated (free + used) */ #endif object *objects; /**< Pointer to the list of used objects */ object *free_objects; /**< Pointer to the list of unused objects */ object *active_objects; /**< List of active objects that need to be processed */ /** X offset when searching around a spot. */ short freearr_x[SIZEOFFREE] = { 0, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, -2, -1, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, 1, 0, -1, -2, -3, -3, -3, -3, -3, -3, -3, -2, -1 }; /** Y offset when searching around a spot. */ short freearr_y[SIZEOFFREE] = { 0, -1, -1, 0, 1, 1, 1, 0, -1, -2, -2, -2, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, -3, -3, -3, -3, -2, -1, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, 1, 0, -1, -2, -3, -3, -3 }; /** Number of spots around a location, including that location (except for 0) */ int maxfree[SIZEOFFREE] = { 0, 9, 10, 13, 14, 17, 18, 21, 22, 25, 26, 27, 30, 31, 32, 33, 36, 37, 39, 39, 42, 43, 44, 45, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49 }; /** Direction we're pointing on this spot. */ int freedir[SIZEOFFREE] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 1, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 7, 8, 8, 8, 8, 8 }; /** * Compares value lists. * * @param wants * what to search * @param has * where to search. * @return * TRUE if every key_values in wants has a partner with the same value in has. */ static int compare_ob_value_lists_one(const object *wants, const object *has) { key_value *wants_field; /* n-squared behaviour (see object_get_key_value()), but I'm hoping both * objects with lists are rare, and lists stay short. If not, use a * different structure or at least keep the lists sorted... */ /* For each field in wants, */ for (wants_field = wants->key_values; wants_field != NULL; wants_field = wants_field->next) { key_value *has_field; /* Look for a field in has with the same key. */ has_field = object_get_key_value(has, wants_field->key); if (has_field == NULL) { /* No field with that name. */ return FALSE; } /* Found the matching field. */ if (has_field->value != wants_field->value) { /* Values don't match, so this half of the comparison is false. */ return FALSE; } /* If we get here, we found a match. Now for the next field in wants. */ } /* If we get here, every field in wants has a matching field in has. */ return TRUE; } /** * Compares two object lists. * @param ob1 * @param ob2 * objects to compare. * @return * TRUE if ob1 has the same key_values as ob2. */ static int compare_ob_value_lists(const object *ob1, const object *ob2) { /* However, there may be fields in has which aren't partnered in wants, * so we need to run the comparison *twice*. :( */ return compare_ob_value_lists_one(ob1, ob2) && compare_ob_value_lists_one(ob2, ob1); } /** * Examines the 2 objects given to it, and returns true if * they can be merged together, including inventory. * * Note that this function appears a lot longer than the macro it * replaces - this is mostly for clarity - a decent compiler should hopefully * reduce this to the same efficiency. * * Check nrof variable *before* calling object_can_merge() * * Improvements made with merge: Better checking on potion, and also * check weight * * @param ob1 * @param ob2 * objects to try to merge. * @return * TRUE if they can be merged, FALSE else. * * @note * can_merge() has been renamed to object_can_merge() * * @todo * check the function at places marked. */ int object_can_merge(object *ob1, object *ob2) { /* A couple quicksanity checks */ if (ob1 == ob2 || ob1->type != ob2->type) return 0; if (ob1->speed != ob2->speed) return 0; /* Note sure why the following is the case - either the object has to * be animated or have a very low speed. Is this an attempted monster * check? */ /*TODO is this check really needed?*/ if (!QUERY_FLAG(ob1, FLAG_ANIMATE) && FABS((ob1)->speed) > MIN_ACTIVE_SPEED) return 0; /* Do not merge objects if nrof would overflow. We use 1UL<<31 since that * value could not be stored in a sint32 (which unfortunately sometimes is * used to store nrof). */ if (ob1->nrof+ob2->nrof >= 1UL<<31) return 0; /* This is really a spellbook check - really, we should * check all objects in the inventory. */ /*TODO is this check really needed?*/ if (ob1->inv || ob2->inv) { /* if one object has inventory but the other doesn't, not equiv */ if ((ob1->inv && !ob2->inv) || (ob2->inv && !ob1->inv)) return 0; /* Now check to see if the two inventory objects could merge */ if (!object_can_merge(ob1->inv, ob2->inv)) return 0; /* inventory ok - still need to check rest of this object to see * if it is valid. */ } /* If the objects have been identified, set the BEEN_APPLIED flag. * This is to the comparison of the flags below will be OK. We * just can't ignore the been applied or identified flags, as they * are not equal - just if it has been identified, the been_applied * flags lose any meaning. */ /*TODO is this hack on BEEN_APPLIED really needed? */ if (QUERY_FLAG(ob1, FLAG_IDENTIFIED)) SET_FLAG(ob1, FLAG_BEEN_APPLIED); if (QUERY_FLAG(ob2, FLAG_IDENTIFIED)) SET_FLAG(ob2, FLAG_BEEN_APPLIED); /* Note: FLAG_INV_LOCKED is ignored for merging purposes */ if ((ob1->arch != ob2->arch) || (ob1->flags[0] != ob2->flags[0]) || (ob1->flags[1] != ob2->flags[1]) || (ob1->flags[2] != ob2->flags[2]) || ((ob1->flags[3]&~0x84) != (ob2->flags[3]&~0x84)) /* ignore CLIENT_SENT and FLAG_OBJ_ORIGINAL */ || (ob1->name != ob2->name) || (ob1->title != ob2->title) || (ob1->msg != ob2->msg) || (ob1->weight != ob2->weight) || (ob1->item_power != ob2->item_power) || (memcmp(&ob1->resist, &ob2->resist, sizeof(ob1->resist)) != 0) || (memcmp(&ob1->stats, &ob2->stats, sizeof(ob1->stats)) != 0) || (ob1->attacktype != ob2->attacktype) || (ob1->magic != ob2->magic) || (ob1->slaying != ob2->slaying) || (ob1->skill != ob2->skill) || (ob1->value != ob2->value) || (ob1->animation_id != ob2->animation_id) || (ob1->client_type != ob2->client_type) || (ob1->materialname != ob2->materialname) || (ob1->lore != ob2->lore) || (ob1->subtype != ob2->subtype) || (ob1->move_type != ob2->move_type) || (ob1->move_block != ob2->move_block) || (ob1->move_allow != ob2->move_allow) || (ob1->move_on != ob2->move_on) || (ob1->move_off != ob2->move_off) || (ob1->move_slow != ob2->move_slow) || (ob1->move_slow_penalty != ob2->move_slow_penalty) || (ob1->map_layer != ob2->map_layer)) return 0; /* Don't merge objects that are applied. With the new 'body' code, * it is possible for most any character to have more than one of * some items equipped, and we don't want those to merge. */ if (QUERY_FLAG(ob1, FLAG_APPLIED) || QUERY_FLAG(ob2, FLAG_APPLIED)) return 0; if (ob1->key_values != NULL || ob2->key_values != NULL) { /* At least one of these has key_values. */ if ((ob1->key_values == NULL) != (ob2->key_values == NULL)) { /* One has fields, but the other one doesn't. */ return 0; } else { return compare_ob_value_lists(ob1, ob2); } } /*TODO should this really be limited to scrolls?*/ switch (ob1->type) { case SCROLL: if (ob1->level != ob2->level) return 0; break; } /* Don't merge items with differing custom names. */ if (ob1->custom_name != ob2->custom_name) return 0; /* Everything passes, must be OK. */ return 1; } /** * object_sum_weight() is a recursive function which calculates the weight * an object is carrying. It goes through in figures out how much * containers are carrying, and sums it up. * * This takes into account the container's weight reduction. * * @param op * object we want the weight of. * @return * weight of this item and all its inventory. * * @note * The object's carrying field is updated. * * @note * sum_weight() has been renamed to object_sum_weight() */ /* TODO should check call this this are made a place where we really need reevaluaton of whole tree */ signed long object_sum_weight(object *op) { signed long sum; sum = 0; FOR_INV_PREPARE(op, inv) { if (inv->inv) object_sum_weight(inv); sum += inv->carrying+inv->weight*(inv->nrof ? inv->nrof : 1); } FOR_INV_FINISH(); if (op->type == CONTAINER && op->stats.Str) sum = (sum*(100-op->stats.Str))/100; op->carrying = sum; return sum; } /** * Utility function. * @param op * object we want the environment of. Can't be NULL. * @return * the outermost environment object for a given object. Will not be NULL. */ object *object_get_env_recursive(object *op) { while (op->env != NULL) op = op->env; return op; } /** * Finds the player carrying an object. * * @param op * item for which we want the carrier (player). * @return * the player, or NULL if not in an inventory. * * @todo * this function is badly named. Fix patching on the fly. * * @note * get_player_container() has been renamed to object_get_player_container() */ object *object_get_player_container(object *op) { for (; op != NULL && op->type != PLAYER; op = op->env) /*TODO this is patching the structure on the flight as side effect. Shoudln't be needed in clean code */ if (op->env == op) op->env = NULL; return op; } /** * Returns the object which this object marks as being the owner, constant version. * Mostly written for object_dump, which takes a const object. * * @param op * item to search owner of. * @return * owner, or NULL if not found. */ static const object *object_get_owner_const(const object *op) { if (op->owner == NULL) return NULL; if (!QUERY_FLAG(op->owner, FLAG_FREED) && !QUERY_FLAG(op->owner, FLAG_REMOVED) && op->owner->count == op->ownercount) return op->owner; LOG(llevError, "Warning, no owner found\n"); return NULL; } /** * Dumps an object. * * @param op * object to dump. Can be NULL. * @param sb * buffer that will contain object information. Must not be NULL. * * @note * dump_object() has been renamed to object_dump() */ void object_dump(const object *op, StringBuffer *sb) { if (op == NULL) { stringbuffer_append_string(sb, "[NULL pointer]"); return; } /* object *tmp;*/ if (op->arch != NULL) { const object *owner; stringbuffer_append_string(sb, "arch "); stringbuffer_append_string(sb, op->arch->name ? op->arch->name : "(null)"); stringbuffer_append_string(sb, "\n"); if (op->artifact != NULL) { stringbuffer_append_string(sb, "artifact "); stringbuffer_append_string(sb, op->artifact); stringbuffer_append_string(sb, "\n"); } get_ob_diff(sb, op, &empty_archetype->clone); if (op->more) { stringbuffer_append_printf(sb, "more %u\n", op->more->count); } if (op->head) { stringbuffer_append_printf(sb, "head %u\n", op->head->count); } if (op->env) { stringbuffer_append_printf(sb, "env %u\n", op->env->count); } if (op->inv) { stringbuffer_append_printf(sb, "inv %u\n", op->inv->count); } owner = object_get_owner_const(op); if (owner != NULL) { stringbuffer_append_printf(sb, "owner %u\n", owner->count); } stringbuffer_append_string(sb, "end\n"); } else { stringbuffer_append_string(sb, "Object "); stringbuffer_append_string(sb, op->name == NULL ? "(null)" : op->name); stringbuffer_append_string(sb, "\nend\n"); } } /** * Dumps all objects to console. * * This is really verbose...Can be triggered by the dumpallobjects command while in DM mode. * * All objects are dumped to stderr (or alternate logfile, if in server-mode) * * @note * dump_all_objects() has been renamed to object_dump_all() */ void object_dump_all(void) { object *op; for (op = objects; op != NULL; op = op->next) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevDebug, "Object %u\n:%s\n", op->count, diff); free(diff); } } /** * Returns the object which has the count-variable equal to the argument. * * @param i * tag. * @return * matching object, NULL if not found. * * @note * find_object() has been renamed to object_find_by_tag_global() */ object *object_find_by_tag_global(tag_t i) { object *op; for (op = objects; op != NULL; op = op->next) if (op->count == i) break; return op; } /** * Finds an object by name. * * Used only by the patch command, but not all that useful. * Enables features like "patch name-of-other-player food 999" * * @param str * name to search for. Must not be allocated by add_string(). * @return * the first object which has a name equal to the argument. * * @note * find_object_name() has been renamed to object_find_by_name_global() */ object *object_find_by_name_global(const char *str) { const char *name = add_string(str); object *op; for (op = objects; op != NULL; op = op->next) if (op->name == name) break; free_string(name); return op; } /** * Destroys all allocated objects. * * @note * free() is called instead of object_free_drop_inventory() as the object's memory has already by cleaned. * * @warning * this should be the last method called. * * @note * free_all_object_data() has been renamed to object_free_object_data() */ void object_free_all_data(void) { #ifdef MEMORY_DEBUG object *op, *next; for (op = free_objects; op != NULL; ) { next = op->next; free(op); nrofallocobjects--; nroffreeobjects--; op = next; } free_objects = NULL; for (op = objects; op != NULL; ) { next = op->next; if (!QUERY_FLAG(op, FLAG_FREED)) { LOG(llevDebug, "non freed object: %s\n", op->name); } op = next; } #endif LOG(llevDebug, "%d allocated objects, %d free objects, STARMAX=%d\n", nrofallocobjects, nroffreeobjects, STARTMAX); } /** * Returns the object which this object marks as being the owner. * * A id-scheme is used to avoid pointing to objects which have been * freed and are now reused. If this is detected, the owner is * set to NULL, and NULL is returned. * * Changed 2004-02-12 - if the player is setting at the play again * prompt, he is removed, and we don't want to treat him as an owner of * anything, so check removed flag. I don't expect that this should break * anything - once an object is removed, it is basically dead anyways. * * @param op * item to search owner of. * @return * owner, or NULL if not found. * * @todo * a side effect of this function is to clean owner chain for not existing anymore owner. * This is not the place to do such a cleaning * * @note * get_owner() has been renamed to object_get_owner() */ object *object_get_owner(object *op) { if (op->owner == NULL) return NULL; if (!QUERY_FLAG(op->owner, FLAG_FREED) && !QUERY_FLAG(op->owner, FLAG_REMOVED) && op->owner->count == op->ownercount) return op->owner; LOG(llevError, "I had to clean an owner when in object_get_owner, this isn't my job.\n"); object_clear_owner(op); return NULL; } /** * Clears the owner of specified object. * * @param op * object we want to clear the owner of. Can be NULL. * * @note * clear_owner() has been renamed to object_clear_owner() */ void object_clear_owner(object *op) { if (!op) return; op->owner = NULL; op->ownercount = 0; } /** * Sets the owner and sets the skill and exp pointers to owner's current * skill and experience objects. * * @param op * object of which to set the owner * @param owner * new owner for object. Can be NULL, in which case it's equivalent of calling object_clear_owner(op) * * @note * set_owner() has been renamed to object_set_owner() */ void object_set_owner(object *op, object *owner) { if (op == NULL) return; if (owner == NULL) { object_clear_owner(op); return; } /* next line added to allow objects which own objects */ /* Add a check for ownercounts in here, as I got into an endless loop * with the fireball owning a poison cloud which then owned the * fireball. I believe that was caused by one of the objects getting * freed and then another object replacing it. Since the ownercounts * didn't match, this check is valid and I believe that cause is valid. */ for (;;) { object *tmp; tmp = object_get_owner(owner); if (tmp == NULL) break; owner = tmp; } /* must not cause owner cycles */ assert(op != owner); if (op->owner != NULL) object_clear_owner(op); op->owner = owner; op->ownercount = owner->count; } /** * Set the owner to clone's current owner and set the skill and experience * objects to clone's objects (typically those objects that where the owner's * current skill and experience objects at the time when clone's owner was * set - not the owner's current skill and experience objects). * * Use this function if player created an object (e.g. fire bullet, swarm * spell), and this object creates further objects whose kills should be * accounted for the player's original skill, even if player has changed * skills meanwhile. * * @param op * object to update. * @param clone * object from which to get the owner. * * @note * copy_owner() has been renamed to object_copy_owner() */ void object_copy_owner(object *op, object *clone) { object *owner = object_get_owner(clone); if (owner == NULL) { /* players don't have owners - they own themselves. Update * as appropriate. */ /*TODO owner=self is dangerous and should be avoided*/ if (clone->type != PLAYER) return; owner = clone; } object_set_owner(op, owner); } /** * Sets the enemy of an object. * * @param op * the object of which to set the enemy * @param enemy * the new enemy for op; can be NULL to clear the enemy */ void object_set_enemy(object *op, object *enemy) { if (op->enemy == enemy) { return; } #if 0 if (op->type != PLAYER) { LOG(llevDebug, "object_set_enemy: %s(%lu)->enemy=%s(%lu)\n", op->name, op->count, enemy == NULL ? "NONE" : enemy->name, enemy == NULL ? 0 : enemy->count); } #endif op->enemy = enemy; } /** * Sets to 0 vital variables in an object. * * @param op * object to reset. * * @note * this doesn't free associated memory for object. * * @note * reset_object() has been renamed to object_reset() */ void object_reset(object *op) { op->name = NULL; op->name_pl = NULL; op->title = NULL; op->race = NULL; op->slaying = NULL; op->skill = NULL; op->msg = NULL; op->materialname = NULL; op->lore = NULL; object_clear(op); } /** * Zero the key_values on op, decrementing the shared-string * refcounts and freeing the links. * * @param op * object to clear. * * @note * free_key_values() has been renamed to object_free_key_values() */ void object_free_key_values(object *op) { key_value *i; key_value *next = NULL; if (op->key_values == NULL) return; for (i = op->key_values; i != NULL; i = next) { /* Store next *first*. */ next = i->next; if (i->key) FREE_AND_CLEAR_STR(i->key); if (i->value) FREE_AND_CLEAR_STR(i->value); i->next = NULL; free(i); } op->key_values = NULL; } /** * Frees everything allocated by an object, and also * clears all variables and flags to default settings. * * @param op * object to clear * * @note * clear_object() has been renamed to object_clear() */ void object_clear(object *op) { /*TODO this comment must be investigated*/ /* redo this to be simpler/more efficient. Was also seeing * crashes in the old code. Move this to the top - am * seeing periodic crashes in this code, and would like to have * as much info available as possible (eg, object name). */ object_free_key_values(op); free_dialog_information(op); /* the memset will clear all these values for us, but we need * to reduce the refcount on them. */ if (op->name != NULL) FREE_AND_CLEAR_STR(op->name); if (op->name_pl != NULL) FREE_AND_CLEAR_STR(op->name_pl); if (op->title != NULL) FREE_AND_CLEAR_STR(op->title); if (op->race != NULL) FREE_AND_CLEAR_STR(op->race); if (op->slaying != NULL) FREE_AND_CLEAR_STR(op->slaying); if (op->skill != NULL) FREE_AND_CLEAR_STR(op->skill); if (op->msg != NULL) FREE_AND_CLEAR_STR(op->msg); if (op->lore != NULL) FREE_AND_CLEAR_STR(op->lore); if (op->materialname != NULL) FREE_AND_CLEAR_STR(op->materialname); if (op->discrete_damage != NULL) FREE_AND_CLEAR(op->discrete_damage); /* Remove object from friendly list if needed. */ if (QUERY_FLAG(op, FLAG_FRIENDLY)) remove_friendly_object(op); memset((void *)((char *)op+offsetof(object, name)), 0, sizeof(object)-offsetof(object, name)); /* Below here, we clear things that are not done by the memset, * or set default values that are not zero. */ /* This is more or less true */ SET_FLAG(op, FLAG_REMOVED); op->contr = NULL; op->below = NULL; op->above = NULL; op->inv = NULL; op->container = NULL; op->env = NULL; op->more = NULL; op->head = NULL; op->map = NULL; op->active_next = NULL; op->active_prev = NULL; /* What is not cleared is next, prev, and count */ op->expmul = 1.0; op->face = blank_face; op->attacked_by_count = -1; if (settings.casting_time) op->casting_time = -1; } /** * Copy object first frees everything allocated by the second object, * and then copies the contents of the first object into the second * object, allocating what needs to be allocated. Basically, any * data that is malloc'd needs to be re-malloc/copied. Otherwise, * if the first object is freed, the pointers in the new object * will point at garbage. * * @param src_ob * object that we copy.from * @param dest_ob * object that we copy to. */ void object_copy(const object *src_ob, object *dest_ob) { int is_freed = QUERY_FLAG(dest_ob, FLAG_FREED), is_removed = QUERY_FLAG(dest_ob, FLAG_REMOVED); /* Decrement the refcounts, but don't bother zeroing the fields; they'll be overwritten by memcpy. */ if (dest_ob->artifact != NULL) free_string(dest_ob->artifact); if (dest_ob->name != NULL) free_string(dest_ob->name); if (dest_ob->name_pl != NULL) free_string(dest_ob->name_pl); if (dest_ob->anim_suffix != NULL) free_string(dest_ob->anim_suffix); if (dest_ob->title != NULL) free_string(dest_ob->title); if (dest_ob->race != NULL) free_string(dest_ob->race); if (dest_ob->slaying != NULL) free_string(dest_ob->slaying); if (dest_ob->skill != NULL) free_string(dest_ob->skill); if (dest_ob->msg != NULL) free_string(dest_ob->msg); if (dest_ob->lore != NULL) free_string(dest_ob->lore); if (dest_ob->materialname != NULL) free_string(dest_ob->materialname); if (dest_ob->custom_name != NULL) free_string(dest_ob->custom_name); if (dest_ob->discrete_damage != NULL) FREE_AND_CLEAR(dest_ob->discrete_damage); if (dest_ob->spell_tags != NULL) FREE_AND_CLEAR(dest_ob->spell_tags); /* Basically, same code as from object_clear() */ object_free_key_values(dest_ob); free_dialog_information(dest_ob); /* op is the destination, op2 is the source. */ (void)memcpy((void *)((char *)dest_ob+offsetof(object, name)), (void *)((char *)src_ob+offsetof(object, name)), sizeof(object)-offsetof(object, name)); if (is_freed) SET_FLAG(dest_ob, FLAG_FREED); if (is_removed) SET_FLAG(dest_ob, FLAG_REMOVED); if (dest_ob->artifact != NULL) add_refcount(dest_ob->artifact); if (dest_ob->name != NULL) add_refcount(dest_ob->name); if (dest_ob->name_pl != NULL) add_refcount(dest_ob->name_pl); if (dest_ob->anim_suffix != NULL) add_refcount(dest_ob->anim_suffix); if (dest_ob->title != NULL) add_refcount(dest_ob->title); if (dest_ob->race != NULL) add_refcount(dest_ob->race); if (dest_ob->slaying != NULL) add_refcount(dest_ob->slaying); if (dest_ob->skill != NULL) add_refcount(dest_ob->skill); if (dest_ob->lore != NULL) add_refcount(dest_ob->lore); if (dest_ob->msg != NULL) add_refcount(dest_ob->msg); if (dest_ob->custom_name != NULL) add_refcount(dest_ob->custom_name); if (dest_ob->materialname != NULL) add_refcount(dest_ob->materialname); if (dest_ob->discrete_damage != NULL) { dest_ob->discrete_damage = malloc(sizeof(sint16)*NROFATTACKS); memcpy(dest_ob->discrete_damage, src_ob->discrete_damage, sizeof(sint16)*NROFATTACKS); } if (dest_ob->spell_tags != NULL) { dest_ob->spell_tags = malloc(sizeof(tag_t)*SPELL_TAG_SIZE); memcpy(dest_ob->spell_tags, src_ob->spell_tags, sizeof(tag_t)*SPELL_TAG_SIZE); } /* If archetype is a temporary one, we need to update reference count, because * that archetype will be freed by object_free_drop_inventory() when the last object is removed. */ if (dest_ob->arch->reference_count > 0) dest_ob->arch->reference_count++; if (src_ob->speed < 0) dest_ob->speed_left = src_ob->speed_left-RANDOM()%200/100.0; /* Copy over key_values, if any. */ if (src_ob->key_values != NULL) { key_value *tail = NULL; key_value *i; dest_ob->key_values = NULL; for (i = src_ob->key_values; i != NULL; i = i->next) { key_value *new_link = malloc(sizeof(key_value)); new_link->next = NULL; new_link->key = add_refcount(i->key); if (i->value) new_link->value = add_refcount(i->value); else new_link->value = NULL; /* Try and be clever here, too. */ if (dest_ob->key_values == NULL) { dest_ob->key_values = new_link; tail = new_link; } else { tail->next = new_link; tail = new_link; } } } /* This way, dialog information will be parsed again when/if needed. */ CLEAR_FLAG(dest_ob, FLAG_DIALOG_PARSED); object_update_speed(dest_ob); } /** * copy an object with an inventory... i.e., duplicate the inv too. * @param src_ob * object to copy. * @param dest_ob * where to copy. * @todo * replace with a function in common library (there is certainly one). * * @note * copy_object_with_inv() has been renamed to object_copy_with_inv() */ void object_copy_with_inv(const object *src_ob, object *dest_ob) { object_copy(src_ob, dest_ob); FOR_INV_PREPARE(src_ob, walk) { object *tmp; tmp = object_new(); object_copy_with_inv(walk, tmp); object_insert_in_ob(tmp, dest_ob); } FOR_INV_FINISH(); } /** * Allocates more objects for the list of unused objects. * * It is called from object_new() if the unused list is empty. * * If there is not enough memory, fatal() is called. */ static void expand_objects(void) { int i; object *new; new = (object *)CALLOC(OBJ_EXPAND, sizeof(object)); if (new == NULL) fatal(OUT_OF_MEMORY); free_objects = new; new[0].prev = NULL; new[0].next = &new[1], SET_FLAG(&new[0], FLAG_REMOVED); SET_FLAG(&new[0], FLAG_FREED); for (i = 1; i < OBJ_EXPAND-1; i++) { new[i].next = &new[i+1], new[i].prev = &new[i-1], SET_FLAG(&new[i], FLAG_REMOVED); SET_FLAG(&new[i], FLAG_FREED); } new[OBJ_EXPAND-1].prev = &new[OBJ_EXPAND-2], new[OBJ_EXPAND-1].next = NULL, SET_FLAG(&new[OBJ_EXPAND-1], FLAG_REMOVED); SET_FLAG(&new[OBJ_EXPAND-1], FLAG_FREED); nrofallocobjects += OBJ_EXPAND; nroffreeobjects += OBJ_EXPAND; } /** * Grabs an object from the list of unused objects, makes * sure it is initialised, and returns it. * * If there are no free objects, expand_objects() is called to get more. * * @return * cleared and ready to use object*. * * @note * will never fail, as expand_objects() will fatal() if memory allocation error. * * @note * get_object() has been renamed to object_new() */ object *object_new(void) { object *op; if (free_objects == NULL) { expand_objects(); } op = free_objects; #ifdef MEMORY_DEBUG /* The idea is hopefully by doing a realloc, the memory * debugging program will now use the current stack trace to * report leaks. */ /* FIXME: However this doesn't work since object_free2() sometimes add * objects back to the free_objects linked list, and some functions mess * with the object after return of object_free2(). This is bad and should be * fixed. But it would need fairly extensive changes and a lot of debugging. * So until that is fixed, skip realloc() here unless MEMORY_DEBUG is set to * a value greater than 1. We do this in order at least make MEMORY_DEBUG * slightly useful. */ #if MEMORY_DEBUG > 1 op = realloc(op, sizeof(object)); #endif SET_FLAG(op, FLAG_REMOVED); SET_FLAG(op, FLAG_FREED); #endif if (!QUERY_FLAG(op, FLAG_FREED)) { LOG(llevError, "Fatal: Getting busy object.\n"); #ifdef MANY_CORES abort(); #endif } free_objects = op->next; if (free_objects != NULL) free_objects->prev = NULL; op->count = ++ob_count; op->name = NULL; op->name_pl = NULL; op->title = NULL; op->race = NULL; op->slaying = NULL; op->skill = NULL; op->lore = NULL; op->msg = NULL; op->materialname = NULL; op->next = objects; op->prev = NULL; op->active_next = NULL; op->active_prev = NULL; op->discrete_damage = NULL; op->spell_tags = NULL; if (objects != NULL) objects->prev = op; objects = op; object_clear(op); SET_FLAG(op, FLAG_REMOVED); nroffreeobjects--; return op; } /** * If an object with the IS_TURNABLE() flag needs to be turned due * to the closest player being on the other side, this function can * be called to update the face variable, _and_ how it looks on the map. * * @param op * object to update. * * @note * update_turn_face() has been renamed to object_update_turn_face() */ void object_update_turn_face(object *op) { if (op->animation_id == 0 || !QUERY_FLAG(op, FLAG_IS_TURNABLE)) return; animate_object(op, op->direction); } /** * Updates the speed of an object. If the speed changes from 0 to another * value, or vice versa, then add/remove the object from the active list. * This function needs to be called whenever the speed of an object changes. * * @param op * object to update. Must not be freed and still have a speed. * * @todo * check fixme & todo * * @note * update_ob_speed() has been renamed to object_update_speed() */ void object_update_speed(object *op) { /* FIXME what the hell is this crappy hack?*/ extern int arch_init; /* No reason putting the archetypes objects on the speed list, * since they never really need to be updated. */ if (QUERY_FLAG(op, FLAG_FREED) && op->speed) { LOG(llevError, "Object %s is freed but has speed.\n", op->name); #ifdef MANY_CORES abort(); #else op->speed = 0; #endif } if (arch_init) { return; } if (FABS(op->speed) > MIN_ACTIVE_SPEED) { /* If already on active list, don't do anything */ /* TODO this check can probably be simplified a lot */ if (op->active_next || op->active_prev || op == active_objects) return; /* process_events() expects us to insert the object at the beginning * of the list. */ op->active_next = active_objects; if (op->active_next != NULL) op->active_next->active_prev = op; active_objects = op; } else { /* If not on the active list, nothing needs to be done */ if (!op->active_next && !op->active_prev && op != active_objects) return; if (op->active_prev == NULL) { active_objects = op->active_next; if (op->active_next != NULL) op->active_next->active_prev = NULL; } else { op->active_prev->active_next = op->active_next; if (op->active_next) op->active_next->active_prev = op->active_prev; } op->active_next = NULL; op->active_prev = NULL; } } /** * This function removes object 'op' from the list of active * objects. * This should only be used for style maps or other such * reference maps where you don't want an object that isn't * in play chewing up cpu time getting processed. * The reverse of this is to call object_update_speed(), which * will do the right thing based on the speed of the object. * * @param op * object to remove. * * @note * remove_from_active_list() has been renamed to object_remove_from_active_list() */ void object_remove_from_active_list(object *op) { /* If not on the active list, nothing needs to be done */ if (!op->active_next && !op->active_prev && op != active_objects) return; if (op->active_prev == NULL) { active_objects = op->active_next; if (op->active_next != NULL) op->active_next->active_prev = NULL; } else { op->active_prev->active_next = op->active_next; if (op->active_next) op->active_next->active_prev = op->active_prev; } op->active_next = NULL; op->active_prev = NULL; } /** * object_update() updates the array which represents the map. * * It takes into account invisible objects (and represent squares covered * by invisible objects by whatever is below them (unless it's another * invisible object, etc...) * * If the object being updated is beneath a player, the look-window * of that player is updated (this might be a suboptimal way of * updating that window, though, since object_update() is called _often_) * * @param op * object to update * @param action * Hint of what the caller believes need to be done. One of @ref UP_OBJ_xxx "UP_OBJ_xxx" values. * For example, if the only thing that has changed is the face (due to * an animation), we don't need to call update_position until that actually * comes into view of a player. OTOH, many other things, like addition/removal * of walls or living creatures may need us to update the flags now. * * @todo * this function should be renamed to something like object_update_map, object_update is a too general term * Also it might be worth moving it to map.c * * @note * update_object() has been renamed to object_update() */ void object_update(object *op, int action) { int update_now = 0, flags; MoveType move_on, move_off, move_block, move_slow; object *pl; if (op == NULL) { /* this should never happen */ LOG(llevDebug, "object_update() called for NULL object.\n"); return; } if (op->env != NULL) { /* Animation is currently handled by client, so nothing * to do in this case. */ return; } /* If the map is saving, don't do anything as everything is * going to get freed anyways. */ if (!op->map || op->map->in_memory == MAP_SAVING) return; /* make sure the object is within map boundaries */ if (op->x < 0 || op->x >= MAP_WIDTH(op->map) || op->y < 0 || op->y >= MAP_HEIGHT(op->map)) { LOG(llevError, "object_update() called for object out of map!\n"); #ifdef MANY_CORES abort(); #endif return; } flags = GET_MAP_FLAGS(op->map, op->x, op->y); SET_MAP_FLAGS(op->map, op->x, op->y, flags|P_NEED_UPDATE); move_slow = GET_MAP_MOVE_SLOW(op->map, op->x, op->y); move_on = GET_MAP_MOVE_ON(op->map, op->x, op->y); move_block = GET_MAP_MOVE_BLOCK(op->map, op->x, op->y); move_off = GET_MAP_MOVE_OFF(op->map, op->x, op->y); if (action == UP_OBJ_INSERT) { if (QUERY_FLAG(op, FLAG_BLOCKSVIEW) && !(flags&P_BLOCKSVIEW)) update_now = 1; if (QUERY_FLAG(op, FLAG_NO_MAGIC) && !(flags&P_NO_MAGIC)) update_now = 1; if (QUERY_FLAG(op, FLAG_DAMNED) && !(flags&P_NO_CLERIC)) update_now = 1; if (QUERY_FLAG(op, FLAG_ALIVE) && !(flags&P_IS_ALIVE)) update_now = 1; if ((move_on|op->move_on) != move_on) update_now = 1; if ((move_off|op->move_off) != move_off) update_now = 1; /* This isn't perfect, but I don't expect a lot of objects to * to have move_allow right now. */ if (((move_block|op->move_block)&~op->move_allow) != move_block) update_now = 1; if ((move_slow|op->move_slow) != move_slow) update_now = 1; if (op->type == PLAYER) update_now = 1; /* if the object is being removed, we can't make intelligent * decisions, because object_remove() can't really pass the object * that is being removed. */ } else if (action == UP_OBJ_REMOVE) { update_now = 1; } else if (action == UP_OBJ_FACE || action == UP_OBJ_CHANGE) { /* In addition to sending info to client, need to update space * information. */ if (action == UP_OBJ_CHANGE) update_now = 1; /* There is a player on this space - we may need to send an * update to the client. * If this object is supposed to be animated by the client, * nothing to do here - let the client animate it. * We can't use FLAG_ANIMATE, as that is basically set for * all objects with multiple faces, regardless if they are animated. * (levers have it set for example). */ if (flags&P_PLAYER && !QUERY_FLAG(op, FLAG_CLIENT_ANIM_SYNC) && !QUERY_FLAG(op, FLAG_CLIENT_ANIM_RANDOM)) { pl = GET_MAP_PLAYER(op->map, op->x, op->y); /* If update_look is set, we're going to send this entire space * to the client, so no reason to send face information now. */ if (!pl->contr->socket.update_look) { esrv_update_item(UPD_FACE, pl, op); } } } else { LOG(llevError, "object_update called with invalid action: %d\n", action); } if (update_now) { SET_MAP_FLAGS(op->map, op->x, op->y, flags|P_NO_ERROR|P_NEED_UPDATE); update_position(op->map, op->x, op->y); } if (op->more != NULL) object_update(op->more, action); } /** * Frees everything allocated by an object, removes * it from the list of used objects, and puts it on the list of * free objects. The IS_FREED() flag is set in the object. * The object must have been removed by object_remove() first for * this function to succeed. * * Inventory will be dropped on the ground if in a map, else freed too. * * @param ob * object to free. Will become invalid when function returns. * * @note * free_object() has been renamed to object_free_drop_inventory() */ void object_free_drop_inventory(object *ob) { object_free2(ob, 0); } /** * Frees everything allocated by an object, removes * it from the list of used objects, and puts it on the list of * free objects. The IS_FREED() flag is set in the object. * * The object must have been removed by object_remove() first for * this function to succeed. * * @param ob * object to free. Will become invalid when function returns. * @param flags * the flags; see FREE_OBJ_xxx constants. * * @warning * the object's archetype should be a valid pointer, or NULL. * * @note * free_object2() has been renamed to object_free2() */ void object_free2(object *ob, int flags) { if (!QUERY_FLAG(ob, FLAG_REMOVED)) { StringBuffer *sb; char *diff; LOG(llevDebug, "Free object called with non removed object\n"); sb = stringbuffer_new(); object_dump(ob, sb); diff = stringbuffer_finish(sb); LOG(llevError, "%s", diff); free(diff); #ifdef MANY_CORES abort(); #endif } if (QUERY_FLAG(ob, FLAG_FRIENDLY)) { LOG(llevMonster, "Warning: tried to free friendly object.\n"); remove_friendly_object(ob); } if (QUERY_FLAG(ob, FLAG_FREED)) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(ob, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to free freed object.\n%s\n", diff); free(diff); return; } if ((flags & FREE_OBJ_NO_DESTROY_CALLBACK) == 0) { /* Handle for plugin destroy event */ execute_event(ob, EVENT_DESTROY, NULL, NULL, NULL, SCRIPT_FIX_NOTHING); } if (ob->inv) { /* Only if the space blocks everything do we not process - * if some form of movemnt is allowed, let objects * drop on that space. */ if ((flags & FREE_OBJ_FREE_INVENTORY) != 0 || ob->map == NULL || ob->map->in_memory != MAP_IN_MEMORY || (GET_MAP_MOVE_BLOCK(ob->map, ob->x, ob->y) == MOVE_ALL)) { FOR_INV_PREPARE(ob, op) { object_remove(op); object_free2(op, flags); } FOR_INV_FINISH(); } else { /* Put objects in inventory onto this space */ FOR_INV_PREPARE(ob, op) { object_remove(op); /* No drop means no drop, including its inventory */ if (QUERY_FLAG(op, FLAG_NO_DROP)) object_free2(op, FREE_OBJ_FREE_INVENTORY); else if (QUERY_FLAG(op, FLAG_STARTEQUIP) || QUERY_FLAG(op, FLAG_NO_DROP) || op->type == RUNE || op->type == TRAP || QUERY_FLAG(op, FLAG_IS_A_TEMPLATE)) object_free_drop_inventory(op); else { object *part; /* If it's a multi-tile object, scatter dropped items randomly */ if (ob->more) { int partcount = 0; /* Get the number of non-head parts */ for (part = ob; part; part = part->more) { partcount++; } /* Select a random part */ partcount = RANDOM()%partcount; for (part = ob; partcount > 0; partcount--) { part = part->more; } } else { part = ob; } if (QUERY_FLAG(op, FLAG_ALIVE)) { object_insert_to_free_spot_or_free(op, part->map, part->x, part->y, 0, SIZEOFFREE, NULL); } else { int f = 0; if (flags & FREE_OBJ_DROP_ABOVE_FLOOR) f = INS_ABOVE_FLOOR_ONLY; object_insert_in_map_at(op, part->map, NULL, f, part->x, part->y); /* Insert in same map as the envir */ } } } FOR_INV_FINISH(); } } if (ob->more != NULL) { object_free2(ob->more, flags); ob->more = NULL; } /* Remove object from the active list */ ob->speed = 0; object_update_speed(ob); SET_FLAG(ob, FLAG_FREED); ob->count = 0; /* Remove this object from the list of used objects */ if (ob->prev == NULL) { objects = ob->next; if (objects != NULL) objects->prev = NULL; } else { ob->prev->next = ob->next; if (ob->next != NULL) ob->next->prev = ob->prev; } if (ob->artifact != NULL) FREE_AND_CLEAR_STR(ob->artifact); if (ob->name != NULL) FREE_AND_CLEAR_STR(ob->name); if (ob->name_pl != NULL) FREE_AND_CLEAR_STR(ob->name_pl); if (ob->title != NULL) FREE_AND_CLEAR_STR(ob->title); if (ob->race != NULL) FREE_AND_CLEAR_STR(ob->race); if (ob->slaying != NULL) FREE_AND_CLEAR_STR(ob->slaying); if (ob->skill != NULL) FREE_AND_CLEAR_STR(ob->skill); if (ob->lore != NULL) FREE_AND_CLEAR_STR(ob->lore); if (ob->msg != NULL) FREE_AND_CLEAR_STR(ob->msg); if (ob->materialname != NULL) FREE_AND_CLEAR_STR(ob->materialname); if (ob->discrete_damage != NULL) FREE_AND_CLEAR(ob->discrete_damage); if (ob->spell_tags) FREE_AND_CLEAR(ob->spell_tags); /* Why aren't events freed? */ object_free_key_values(ob); free_dialog_information(ob); /* Test whether archetype is a temporary one, and if so look whether it should be trashed. */ if (ob->arch && ob->arch->reference_count > 0) { if (--ob->arch->reference_count == 0) { free_arch(ob->arch); } } #if defined(MEMORY_DEBUG) && (MEMORY_DEBUG > 2) /* memset() to clear it then set flags and finally free it. This will * help detect bad use after return. */ memset(ob, 0, sizeof(object)); SET_FLAG(ob, FLAG_REMOVED); SET_FLAG(ob, FLAG_FREED); free(ob); #else /* Now link it with the free_objects list: */ ob->prev = NULL; ob->next = free_objects; if (free_objects != NULL) free_objects->prev = ob; free_objects = ob; nroffreeobjects++; #endif } /** * Objects statistics. * * @return * number of objects on the list of free objects. * * @note * count_free() has been renamed to object_count_free() */ int object_count_free(void) { int i = 0; object *tmp = free_objects; while (tmp != NULL) tmp = tmp->next, i++; return i; } /** * Object statistics. * * @return * number of objects on the list of used objects. * * @note * count_used() has been renamed to object_count_used() */ int object_count_used(void) { int i = 0; object *tmp = objects; while (tmp != NULL) tmp = tmp->next, i++; return i; } /** * Objects statistics. * * @return * number of objects on the list of active objects. * * @note * count_active() has been renamed to object_count_active() */ int object_count_active(void) { int i = 0; object *tmp = active_objects; while (tmp != NULL) tmp = tmp->active_next, i++; return i; } /** * Recursively (outwards) subtracts a number from the * weight of an object (and what is carried by it's environment(s)). * * Takes into account the container's weight reduction. * * @param op * object to which weight is substracted. * @param weight * weight to remove. * * @todo * check if not mergeable with object_add_weight(). * * @note * sub_weight() has been renamed to object_sub_weight() */ void object_sub_weight(object *op, signed long weight) { while (op != NULL) { if (op->type == CONTAINER) { weight = (signed long)(weight*(100-op->stats.Str)/100); } op->carrying -= weight; op = op->env; } } /** * This function removes the object op from the linked list of objects * which it is currently tied to. When this function is done, the * object will have no environment. If the object previously had an * environment, the x and y coordinates will be updated to * the previous environment. * * Will inform the client of the removal if needed. * * @param op * object to remove. Must not be removed yet, else abort() is called. * * @todo * this function is a piece of overbloated crap or at lest * look like need cleanup it does to much different things. * * @note * remove_ob() has been renamed to object_remove() */ void object_remove(object *op) { object *last = NULL; object *otmp; tag_t tag; int check_walk_off; mapstruct *m; sint16 x, y; if (QUERY_FLAG(op, FLAG_REMOVED)) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to remove removed object.\n%s\n", diff); free(diff); abort(); } if (op->more != NULL) object_remove(op->more); SET_FLAG(op, FLAG_REMOVED); /* * In this case, the object to be removed is in someones * inventory. */ /* TODO try to call a generic inventory weight adjusting function like object_sub_weight */ if (op->env != NULL) { player *pl = NULL; if (op->nrof) object_sub_weight(op->env, op->weight*op->nrof); else object_sub_weight(op->env, op->weight+op->carrying); /* Update in two cases: item is in a player, or in a container the player is looking into. */ if (op->env->contr != NULL && op->head == NULL) { pl = op->env->contr; } else if (op->env->type == CONTAINER && QUERY_FLAG(op->env, FLAG_APPLIED)) { if (op->env->env && op->env->env->contr) /* Container is in player's inventory. */ pl = op->env->env->contr; else if (op->env->map) { /* Container on map, look above for player. */ object *above = op->env->above; while (above && !above->contr) above = above->above; if (above) pl = above->contr; } } /* NO_FIX_PLAYER is set when a great many changes are being * made to players inventory. If set, avoiding the call * to save cpu time. */ otmp = object_get_player_container(op->env); if (otmp != NULL && otmp->contr && !QUERY_FLAG(otmp, FLAG_NO_FIX_PLAYER)) fix_object(otmp); if (op->above != NULL) op->above->below = op->below; else op->env->inv = op->below; if (op->below != NULL) op->below->above = op->above; /* we set up values so that it could be inserted into * the map, but we don't actually do that - it is up * to the caller to decide what we want to do. */ op->x = op->env->x; op->y = op->env->y; op->ox = op->x; op->oy = op->y; op->map = op->env->map; op->above = NULL; op->below = NULL; /* send the delitem before resetting env, so container's contents be may * refreshed */ if (LOOK_OBJ(op) && pl != NULL) esrv_del_item(pl, op); op->env = NULL; return; } /* If we get here, we are removing it from a map */ if (op->map == NULL) return; if (op->contr != NULL && !op->contr->hidden) op->map->players--; x = op->x; y = op->y; m = get_map_from_coord(op->map, &x, &y); if (!m) { LOG(llevError, "object_remove called when object was on map but appears to not be within valid coordinates? %s (%d,%d)\n", op->map->path, op->x, op->y); abort(); } if (op->map != m) { LOG(llevError, "object_remove: Object not really on map it claimed to be on? %s != %s, %d,%d != %d,%d\n", op->map->path, m->path, op->x, op->y, x, y); } /* link the object above us */ if (op->above) op->above->below = op->below; else SET_MAP_TOP(m, x, y, op->below); /* we were top, set new top */ /* Relink the object below us, if there is one */ if (op->below) { op->below->above = op->above; } else { /* Nothing below, which means we need to relink map object for this space * use translated coordinates in case some oddness with map tiling is * evident */ /*TODO is this check really needed?*/ if (GET_MAP_OB(m, x, y) != op) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "object_remove: GET_MAP_OB on %s does not return object to be removed even though it appears to be on the bottom?\n%s\n", m->path, diff); free(diff); sb = stringbuffer_new(); object_dump(GET_MAP_OB(m, x, y), sb); diff = stringbuffer_finish(sb); LOG(llevError, "%s\n", diff); free(diff); } SET_MAP_OB(m, x, y, op->above); /* goes on above it. */ } op->above = NULL; op->below = NULL; if (op->map->in_memory == MAP_SAVING) return; tag = op->count; check_walk_off = !QUERY_FLAG(op, FLAG_NO_APPLY); FOR_MAP_PREPARE(m, x, y, tmp) { /* No point updating the players look faces if he is the object * being removed. */ if (tmp->type == PLAYER && tmp != op) { /* If a container that the player is currently using somehow gets * removed (most likely destroyed), update the player view * appropriately. */ if (tmp->container == op) { CLEAR_FLAG(op, FLAG_APPLIED); tmp->container = NULL; } tmp->contr->socket.update_look = 1; } /* See if player moving off should effect something */ if (check_walk_off && ((op->move_type&tmp->move_off) && (op->move_type&~tmp->move_off&~tmp->move_block) == 0)) { ob_move_on(tmp, op, NULL); if (object_was_destroyed(op, tag)) { LOG(llevError, "BUG: object_remove(): name %s, archname %s destroyed leaving object\n", tmp->name, tmp->arch->name); } } /* Eneq(@csd.uu.se): Fixed this to skip tmp->above=tmp */ if (tmp->above == tmp) tmp->above = NULL; last = tmp; } FOR_MAP_FINISH(); /* last == NULL or there are no objects on this space */ if (last == NULL) { /* set P_NEED_UPDATE, otherwise update_position will complain. In theory, * we could preserve the flags (GET_MAP_FLAGS), but update_position figures * those out anyways, and if there are any flags set right now, they won't * be correct anyways. */ SET_MAP_FLAGS(op->map, op->x, op->y, P_NEED_UPDATE); update_position(op->map, op->x, op->y); } else object_update(last, UP_OBJ_REMOVE); if (QUERY_FLAG(op, FLAG_BLOCKSVIEW) || (op->glow_radius != 0)) update_all_los(op->map, op->x, op->y); } /** * This function goes through all objects below and including top, and * merges op to the first matching object. * * Will correctly send updated objects to client if needed. * * @param op * object to merge. * @param top * from which item to merge. If NULL, it is calculated. * @return * pointer to object if it succeded in the merge, otherwise NULL * * @note * merge_ob() has been renamed to object_merge() */ object *object_merge(object *op, object *top) { if (!op->nrof) return NULL; if (top == NULL) for (top = op; top != NULL && top->above != NULL; top = top->above) ; FOR_OB_AND_BELOW_PREPARE(top) { if (top == op) continue; if (object_can_merge(op, top)) { object_increase_nrof(top, op->nrof); op->weight = 0; /* Don't want any adjustements now */ object_remove(op); object_free2(op, FREE_OBJ_FREE_INVENTORY | FREE_OBJ_NO_DESTROY_CALLBACK); return top; } } FOR_OB_AND_BELOW_FINISH(); return NULL; } /** * Same as object_insert_in_map() except it handle separate coordinates and do a clean * job preparing multi-part monsters. * * @param op * object to insert. * @param m * map to insert into. * @param originator * what caused op to be inserted. * @param flag * Combination of @ref INS_xxx "INS_xxx" values. * @param x * @param y * coordinates to insert at. * * @note * insert_ob_in_map_at() has been renamed to object_insert_in_map_at() */ object *object_insert_in_map_at(object *op, mapstruct *m, object *originator, int flag, int x, int y) { object *tmp; op = HEAD(op); for (tmp = op; tmp; tmp = tmp->more) { tmp->x = x+tmp->arch->clone.x; tmp->y = y+tmp->arch->clone.y; tmp->map = m; } return object_insert_in_map(op, m, originator, flag); } /** * This sees if there are any objects on the space that can * merge with op. Note that op does not need to actually * be inserted on the map (when called from object_insert_in_map, * it won't be), but op->map should be set correctly. * * Note that even if we find a match on the space, we keep progressing * looking for more. This is because op->range is set to 0 in * explosion, so what may not have been mergable now is. * * @param op * object to try to merge into. * * @param x * @param y * coordinates to look at for merging. * * @note * merge_spell() has been renamed to object_merge_spell() */ void object_merge_spell(object *op, sint16 x, sint16 y) { int i; /* We try to do some merging of spell objects - if something has same owner, * is same type of spell, and going in the same direction, it is somewhat * mergable. * * If the spell object has an other_arch, don't merge - when the spell * does something, like explodes, it will use this other_arch, and * if we merge, there is no easy way to make the correct values be * set on this new object (values should be doubled, tripled, etc.) * * We also care about speed - only process objects that will not be * active this tick. Without this, the results are incorrect - think * of a case where tmp would normally get processed this tick, but * get merges with op, which does not get processed. */ FOR_MAP_PREPARE(op->map, x, y, tmp) { if (op->type == tmp->type && op->subtype == tmp->subtype && op->direction == tmp->direction && op->owner == tmp->owner && op->ownercount == tmp->ownercount && op->range == tmp->range && op->stats.wc == tmp->stats.wc && op->level == tmp->level && op->attacktype == tmp->attacktype && op->speed == tmp->speed && !tmp->other_arch && (tmp->speed_left+tmp->speed) < 0.0 && op != tmp) { /* Quick test - if one or the other objects already have hash tables * set up, and that hash bucket contains a value that doesn't * match what we want to set it up, we won't be able to merge. * Note that these two if statements are the same, except * for which object they are checking against. They could * be merged, but the line wrapping would be large enough * that IMO it would become difficult to read the different clauses * so its cleaner just to do 2 statements - MSW */ if (op->spell_tags && !OB_SPELL_TAG_MATCH(op, (tag_t)tmp->stats.maxhp) && OB_SPELL_TAG_HASH(op, tmp->stats.maxhp) != 0) continue; if (tmp->spell_tags && !OB_SPELL_TAG_MATCH(tmp, (tag_t)op->stats.maxhp) && OB_SPELL_TAG_HASH(tmp, op->stats.maxhp) != 0) continue; /* If we merge, the data from tmp->spell_tags gets copied into op. * so we need to make sure that slot isn't filled up. */ if (tmp->spell_tags && !OB_SPELL_TAG_MATCH(tmp, (tag_t)tmp->stats.maxhp) && OB_SPELL_TAG_HASH(tmp, tmp->stats.maxhp) != 0) continue; /* If both objects have spell_tags, we need to see if there are conflicting * values - if there are, we won't be able to merge then. */ if (tmp->spell_tags && op->spell_tags) { int need_copy = 0; for (i = 0; i < SPELL_TAG_SIZE; i++) { /* If the two tag values in the hash are set, but are * not set to the same value, then these objects * can not be merged. */ if (op->spell_tags[i] && tmp->spell_tags[i] && op->spell_tags[i] != tmp->spell_tags[i]) { statistics.spell_hash_full++; break; } /* If one tag is set and the other is not, that is * fine, but we have to note that we need to copy * the data in that case. */ if ((!op->spell_tags[i] && tmp->spell_tags[i]) || (op->spell_tags[i] && !tmp->spell_tags[i])) { need_copy = 1; } } /* If we did not get through entire array, it means * we got a conflicting hash, and so we won't be * able to merge these - just continue processing * object on this space. */ if (i <= SPELL_TAG_SIZE) continue; /* Ok - everything checked out - we should be able to * merge tmp in op. So lets copy the tag data if * needed. Note that this is a selective copy, as * we don't want to clear values that may be set in op. */ if (need_copy) { for (i = 0; i < SPELL_TAG_SIZE; i++) if (!op->spell_tags[i] && tmp->spell_tags[i] && tmp->spell_tags[i] != (tag_t)op->stats.maxhp) op->spell_tags[i] = tmp->spell_tags[i]; } FREE_AND_CLEAR(tmp->spell_tags); } /* if tmp has a spell_tags table, copy it to op and free tmps */ if (tmp->spell_tags && !op->spell_tags) { op->spell_tags = tmp->spell_tags; tmp->spell_tags = NULL; /* We don't need to keep a copy of our maxhp value * in the copied over value */ if (OB_SPELL_TAG_MATCH(op, (tag_t)op->stats.maxhp)) OB_SPELL_TAG_HASH(op, op->stats.maxhp) = 0; } /* For spells to work correctly, we need to record what spell * tags we've merged in with this effect. This is used * in ok_to_put_more() to see if a spell effect is already on * the space. */ if (op->stats.maxhp != tmp->stats.maxhp) { #ifdef OBJECT_DEBUG /* This if statement should never happen - the logic above should * have prevented it. It is a problem, because by now its possible * we've destroyed the spell_tags in tmp, so we can't really * just bail out. */ if (op->spell_tags && OB_SPELL_TAG_HASH(op, tmp->stats.maxhp) != 0 && !OB_SPELL_TAG_MATCH(op, tmp->stats.maxhp)) { LOG(llevError, "object_insert_in_map: Got non matching spell tags: %d != %d\n", OB_SPELL_TAG_HASH(op, tmp->stats.maxhp), tmp->stats.maxhp); } #endif if (!op->spell_tags) op->spell_tags = calloc(1, SPELL_TAG_SIZE*sizeof(tag_t)); OB_SPELL_TAG_HASH(op, tmp->stats.maxhp) = tmp->stats.maxhp; } statistics.spell_merges++; op->speed_left = MAX(op->speed_left, tmp->speed_left); if (tmp->duration != op->duration) { /* We need to use tmp_dam here because otherwise the * calculations can overflow the size of stats.dam. */ int tmp_dam = tmp->stats.dam*(tmp->duration+1)+ op->stats.dam*(op->duration+1); op->duration = MAX(op->duration, tmp->duration); tmp_dam /= op->duration+1; op->stats.dam = tmp_dam+1; } else { /* in this case, duration is the same, so simply adding * up damage works. */ op->stats.dam += tmp->stats.dam; } object_remove(tmp); object_free_drop_inventory(tmp); } } FOR_MAP_FINISH(); } /** * This function inserts the object in the two-way linked list * which represents what is on a map. * * It will update player count if the op is a player. * * Player ground window will be updated if needed. * * @param op * object to insert. Must be removed. Its coordinates must be valid for the map. * @param m * map to insert into. Must not be NULL. * @param originator * player, monster or other object that caused 'op' to be inserted * into 'm'. May be NULL. * @param flag * bitmask about special things to do (or not do) when this * function is called. See the object.h file for the @ref INS_xxx "INS_xxx" values. * Passing 0 for flag gives proper default values, so flag really only needs * to be set if special handling is needed. * @return * @li new object if 'op' was merged with other object. * @li NULL if 'op' was destroyed * @li just 'op' otherwise * * @todo * this function is a mess, and should be cleaned. * * @note * insert_ob_in_map() has been renamed to object_insert_in_map() */ object *object_insert_in_map(object *op, mapstruct *m, object *originator, int flag) { object *tmp, *top, *floor = NULL; sint16 x, y; if (QUERY_FLAG(op, FLAG_FREED)) { LOG(llevError, "Trying to insert freed object!\n"); return NULL; } if (m == NULL) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to insert in null-map!\n%s\n", diff); free(diff); return op; } if (out_of_map(m, op->x, op->y)) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to insert object outside the map.\n%s\n", diff); free(diff); #ifdef MANY_CORES /* Better to catch this here, as otherwise the next use of this object * is likely to cause a crash. Better to find out where it is getting * improperly inserted. */ abort(); #endif return op; } if (!QUERY_FLAG(op, FLAG_REMOVED)) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to insert (map) inserted object.\n%s\n", diff); free(diff); return op; } if (op->more != NULL) { /* The part may be on a different map. */ object *more = op->more; /* We really need the caller to normalize coordinates - if * we set the map, that doesn't work if the location is within * a map and this is straddling an edge. So only if coordinate * is clear wrong do we normalize it. */ if (OUT_OF_REAL_MAP(more->map, more->x, more->y)) { /* Debugging information so you can see the last coordinates this object had */ more->ox = more->x; more->oy = more->y; more->map = get_map_from_coord(more->map, &more->x, &more->y); } else if (!more->map) { /* For backwards compatibility - when not dealing with tiled maps, * more->map should always point to the parent. */ more->map = m; } if (object_insert_in_map(more, more->map, originator, flag) == NULL) { if (!op->head) LOG(llevError, "BUG: object_insert_in_map(): inserting op->more killed op\n"); return NULL; } } CLEAR_FLAG(op, FLAG_REMOVED); /* Debugging information so you can see the last coordinates this object had */ op->ox = op->x; op->oy = op->y; x = op->x; y = op->y; op->map = get_map_from_coord(m, &x, &y); /* this has to be done after we translate the coordinates. */ if (op->nrof && !(flag&INS_NO_MERGE) && op->type != SPELL_EFFECT) { FOR_MAP_PREPARE(op->map, x, y, tmp) { if (object_can_merge(op, tmp)) { op->nrof += tmp->nrof; object_remove(tmp); object_free2(tmp, FREE_OBJ_FREE_INVENTORY | FREE_OBJ_NO_DESTROY_CALLBACK); } } FOR_MAP_FINISH(); } else if (op->type == SPELL_EFFECT && !op->range && !op->other_arch && (op->speed_left+op->speed) < 0.0) { object_merge_spell(op, x, y); } /* Ideally, the caller figures this out. However, it complicates a lot * of areas of callers (eg, anything that uses object_find_free_spot() would now * need extra work */ if (op->map != m) { /* coordinates should not change unless map also changes */ op->x = x; op->y = y; } if (op->type != LAMP) /* lamps use the FLAG_APPLIED to keep the light/unlit status, so don't reset it. Other objects just get unapplied, since the container "drops" them. */ CLEAR_FLAG(op, FLAG_APPLIED); CLEAR_FLAG(op, FLAG_INV_LOCKED); if (!QUERY_FLAG(op, FLAG_ALIVE)) CLEAR_FLAG(op, FLAG_NO_STEAL); /* In many places, a player is passed as the originator, which * is fine. However, if the player is on a transport, they are not * actually on the map, so we can't use them for the linked pointers, * nor should the walk on function below use them either. */ if (originator && originator->contr && originator->contr->transport) originator = originator->contr->transport; if (flag&INS_BELOW_ORIGINATOR) { if (originator->map != op->map || originator->x != op->x || originator->y != op->y) { LOG(llevError, "object_insert_in_map called with INS_BELOW_ORIGINATOR when originator not on same space!\n"); abort(); } op->above = originator; op->below = originator->below; if (op->below) op->below->above = op; else SET_MAP_OB(op->map, op->x, op->y, op); /* since *below *originator, no need to update top */ originator->below = op; } else { /* If there are other objects, then */ /* This test is incorrect i think, as ins_above_floor_only needs the floor variable if ((!(flag&INS_MAP_LOAD)) && ((top = GET_MAP_OB(op->map, op->x, op->y)) != NULL)) { */ object *last; /* * If there are multiple objects on this space, we do some trickier handling. * We've already dealt with merging if appropriate. * Generally, we want to put the new object on top. But if * flag contains INS_ABOVE_FLOOR_ONLY, once we find the last * floor, we want to insert above that and no further. * Also, if there are spell objects on this space, we stop processing * once we get to them. This reduces the need to traverse over all of * them when adding another one - this saves quite a bit of cpu time * when lots of spells are cast in one area. Currently, it is presumed * that flying non pickable objects are spell objects. */ last = NULL; FOR_MAP_PREPARE(op->map, op->x, op->y, tmp) { if (QUERY_FLAG(tmp, FLAG_IS_FLOOR) || QUERY_FLAG(tmp, FLAG_OVERLAY_FLOOR)) floor = tmp; if (QUERY_FLAG(tmp, FLAG_NO_PICK) && (tmp->move_type&(MOVE_FLY_LOW|MOVE_FLY_HIGH)) && !QUERY_FLAG(tmp, FLAG_IS_FLOOR)) { /* We insert above tmp, so we want this object below this */ break; } last = tmp; } FOR_MAP_FINISH(); top = last; if (flag&INS_MAP_LOAD) top = GET_MAP_TOP(op->map, op->x, op->y); if (flag&INS_ABOVE_FLOOR_ONLY) top = floor; /* Top is the object that our object (op) is going to get inserted above. */ /* First object on this space */ if (!top) { op->above = GET_MAP_OB(op->map, op->x, op->y); if (op->above) op->above->below = op; op->below = NULL; SET_MAP_OB(op->map, op->x, op->y, op); } else { /* get inserted into the stack above top */ op->above = top->above; if (op->above) op->above->below = op; op->below = top; top->above = op; } if (op->above == NULL) SET_MAP_TOP(op->map, op->x, op->y, op); } /* else not INS_BELOW_ORIGINATOR */ if (op->type == PLAYER) op->contr->do_los = 1; /* If we have a floor, we know the player, if any, will be above * it, so save a few ticks and start from there. */ if (!(flag&INS_MAP_LOAD)) { tmp = floor ? floor : GET_MAP_OB(op->map, op->x, op->y); FOR_OB_AND_ABOVE_PREPARE(tmp) if (tmp->type == PLAYER) tmp->contr->socket.update_look = 1; FOR_OB_AND_ABOVE_FINISH(); } /* If this object glows, it may affect lighting conditions that are * visible to others on this map. But update_all_los is really * an inefficient way to do this, as it means los for all players * on the map will get recalculated. The players could very well * be far away from this change and not affected in any way - * this should get redone to only look for players within range, * or just updating the P_NEED_UPDATE for spaces within this area * of effect may be sufficient. */ if (MAP_DARKNESS(op->map) && (op->glow_radius != 0)) update_all_los(op->map, op->x, op->y); /* updates flags (blocked, alive, no magic, etc) for this map space */ object_update(op, UP_OBJ_INSERT); if (op->contr && !op->contr->hidden) op->map->players++; /* Don't know if moving this to the end will break anything. However, * we want to have update_look set above before calling this. * * object_check_move_on() must be after this because code called from * object_check_move_on() depends on correct map flags (so functions like * blocked() and wall() work properly), and these flags are updated by * object_update(). */ /* if this is not the head or flag has been passed, don't check walk on status */ if (!(flag&INS_NO_WALK_ON) && !op->head) { if (object_check_move_on(op, originator)) return NULL; /* If we are a multi part object, lets work our way through the check * walk on's. */ for (tmp = op->more; tmp != NULL; tmp = tmp->more) if (object_check_move_on(tmp, originator)) return NULL; } return op; } /** * This function inserts an object of a specified archetype in the map, but if it * finds objects of its own type, it'll remove them first. * * @param arch_string * object's archetype to insert. * @param op * object to insert it under: supplies x and the map. * * @note * replace_insert_ob_in_map() has been renamed to object_replace_insert_in_map() */ void object_replace_insert_in_map(const char *arch_string, object *op) { object *tmp1; /* first search for itself and remove any old instances */ FOR_MAP_PREPARE(op->map, op->x, op->y, tmp) { if (!strcmp(tmp->arch->name, arch_string)) { /* same archetype */ object_remove(tmp); object_free_drop_inventory(tmp); } } FOR_MAP_FINISH(); tmp1 = arch_to_object(find_archetype(arch_string)); object_insert_in_map_at(tmp1, op->map, op, INS_BELOW_ORIGINATOR, op->x, op->y); } /** * object_split(ob,nr) splits up ob into two parts. The part which * is returned contains nr objects, and the remaining parts contains * the rest (or is removed and freed if that number is 0). * On failure, NULL is returned, and the reason LOG()ed. * * This function will send an update to the client if the remaining object * is in a player inventory. * * @param orig_ob * object from which to split. * @param nr * number of elements to split. * @param err * buffer that will contain failure reason if NULL is returned. Can be NULL. * @param size * err's size * @return * split object, or NULL on failure. * * @note * get_split_ob() has been renamed to object_split() */ object *object_split(object *orig_ob, uint32 nr, char *err, size_t size) { object *newob; if (MAX(1, orig_ob->nrof) < nr) { /* If err is set, the caller knows that nr can be wrong (player trying to drop items), thus don't log that. */ if (err) snprintf(err, size, "There are only %u %ss.", orig_ob->nrof ? orig_ob->nrof : 1, orig_ob->name); else LOG(llevDebug, "There are only %u %ss.\n", orig_ob->nrof ? orig_ob->nrof : 1, orig_ob->name); return NULL; } newob = object_create_clone(orig_ob); if (orig_ob->nrof == 0) { if (!QUERY_FLAG(orig_ob, FLAG_REMOVED)) { object_remove(orig_ob); } object_free2(orig_ob, FREE_OBJ_FREE_INVENTORY); } else { newob->nrof = nr; object_decrease_nrof(orig_ob, nr); } return newob; } /** * Decreases a specified number from * the amount of an object. If the amount reaches 0, the object * is subsequently removed and freed. * * This function will send an update to client if op is in a player inventory. * * @param op * object to decrease. * @param i * number to remove. * @return * 'op' if something is left, NULL if the amount reached 0. * * @note * decrease_ob_nr() has been renamed to object_decrease_nrof() */ object *object_decrease_nrof(object *op, uint32 i) { object *tmp; if (i == 0) /* objects with op->nrof require this check */ return op; if (i > op->nrof) i = op->nrof; if (QUERY_FLAG(op, FLAG_REMOVED)) { op->nrof -= i; } else if (op->env != NULL) { if (i < op->nrof) { player *pl; /* is this object in the players inventory, or sub container * therein? */ tmp = object_get_player_container(op->env); /* nope. Is this a container the player has opened? * If so, set tmp to that player. * IMO, searching through all the players will mostly * likely be quicker than following op->env to the map, * and then searching the map for a player. */ if (!tmp) { for (pl = first_player; pl; pl = pl->next) if (pl->ob->container == op->env) break; if (pl) tmp = pl->ob; else tmp = NULL; } /* Because of weight reduction by container and integer arithmetic, * there is no guarantee the rounded weight of combined items will be * the same as the sum of rounded weights. * Therefore just remove the current weight, and add the new. * Same adjustment done in object_increase_nrof(). */ object_sub_weight(op->env, op->weight * op->nrof); op->nrof -= i; object_add_weight(op->env, op->weight * op->nrof); if (tmp) { esrv_update_item(UPD_NROF, tmp, op); fix_object(tmp); } } else { object_remove(op); op->nrof = 0; } } else { /* On a map. */ if (i < op->nrof) { op->nrof -= i; FOR_MAP_PREPARE(op->map, op->x, op->y, pl) if (pl->contr) { pl->contr->socket.update_look = 1; break; } FOR_MAP_FINISH(); } else { object_remove(op); op->nrof = 0; } } if (op->nrof) { return op; } else { object_free_drop_inventory(op); return NULL; } } /** * Increase the count of an object. * * This function will send an update to client if needed. * * @param op * object to increase. * @param i * number to add. */ static void object_increase_nrof(object *op, uint32 i) { object *tmp; if (i == 0) /* objects with op->nrof require this check */ return; if (QUERY_FLAG(op, FLAG_REMOVED)) { op->nrof += i; } else if (op->env != NULL) { player *pl; /* is this object in the players inventory, or sub container * therein? */ tmp = object_get_player_container(op->env); /* nope. Is this a container the player has opened? * If so, set tmp to that player. * IMO, searching through all the players will mostly * likely be quicker than following op->env to the map, * and then searching the map for a player. */ if (!tmp) { for (pl = first_player; pl; pl = pl->next) if (pl->ob->container == op->env) break; if (pl) tmp = pl->ob; else tmp = NULL; } /* Because of weight reduction by container and integer arithmetic, * there is no guarantee the rounded weight of combined items will be * the same as the sum of rounded weights. * Therefore just remove the current weight, and add the new. * Same adjustment done in object_decrease_nrof(). */ object_sub_weight(op->env, op->weight * op->nrof); op->nrof += i; object_add_weight(op->env, op->weight * op->nrof); if (tmp) { esrv_update_item(UPD_NROF, tmp, op); } } else { /* On a map. */ op->nrof += i; FOR_MAP_PREPARE(op->map, op->x, op->y, pl) if (pl->contr) { pl->contr->socket.update_look = 1; break; } FOR_MAP_FINISH(); } } /** * object_add_weight(object, weight) adds the specified weight to an object, * and also updates how much the environment(s) is/are carrying. * * Takes container weight reduction into account. * * @param op * object to which we add weight. * @param weight * weight to add. * * @todo * check if mergeable with object_sub_weight(). * * @note * add_weight() has been renamed to object_add_weight() */ void object_add_weight(object *op, signed long weight) { while (op != NULL) { if (op->type == CONTAINER) { weight = (signed long)(weight*(100-op->stats.Str)/100); } op->carrying += weight; op = op->env; } } /** * This function inserts the object op in the linked list * inside the object environment. * * It will send to client where is a player. * * @param op * object to insert. Must be removed and not NULL. Must not be multipart. * May become invalid after return, so use return value of the function. * @param where * object to insert into. Must not be NULL. Should be the head part. * @return * pointer to inserted item, which will be different than op if object was merged. * * @note * insert_ob_in_ob() has been renamed to object_insert_in_ob() */ object *object_insert_in_ob(object *op, object *where) { object *otmp; if (!QUERY_FLAG(op, FLAG_REMOVED)) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to insert (ob) inserted object.\n%s\n", diff); free(diff); return op; } if (where == NULL) { StringBuffer *sb; char *diff; sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "Trying to put object in NULL.\n%s\n", diff); free(diff); return op; } if (where->head) { LOG(llevDebug, "Warning: Tried to insert object wrong part of multipart object.\n"); } where = HEAD(where); if (op->more) { LOG(llevError, "Tried to insert multipart object %s (%u)\n", op->name, op->count); return op; } CLEAR_FLAG(op, FLAG_OBJ_ORIGINAL); CLEAR_FLAG(op, FLAG_REMOVED); if (op->nrof) { FOR_INV_PREPARE(where, tmp) if (object_can_merge(tmp, op)) { /* return the original object and remove inserted object * (client needs the original object) */ object_increase_nrof(tmp, op->nrof); SET_FLAG(op, FLAG_REMOVED); object_free2(op, FREE_OBJ_FREE_INVENTORY | FREE_OBJ_NO_DESTROY_CALLBACK); /* free the inserted object */ return tmp; } FOR_INV_FINISH(); /* the item couldn't merge. */ object_add_weight(where, op->weight*op->nrof); } else object_add_weight(where, op->weight+op->carrying); op->map = NULL; op->env = where; op->above = NULL; op->below = NULL; op->x = 0, op->y = 0; op->ox = 0, op->oy = 0; /* Client has no idea of ordering so lets not bother ordering it here. * It sure simplifies this function... */ if (where->inv == NULL) where->inv = op; else { op->below = where->inv; op->below->above = op; where->inv = op; } /* Update in 2 cases: object goes into player's inventory, or object goes into container the player * is looking into. */ if (where->contr != NULL) esrv_send_item(where, op); else if (where->type == CONTAINER && QUERY_FLAG(where, FLAG_APPLIED)) { object *pl = NULL; if (op->env->env && op->env->env->contr) /* Container is in player's inventory. */ pl = op->env->env; else if (op->env->map) { /* Container on map, look above for player. */ FOR_ABOVE_PREPARE(op->env, above) if (above->contr) { pl = above; break; } FOR_ABOVE_FINISH(); } if (pl) esrv_send_item(pl, op); } otmp = object_get_player_container(where); if (otmp && otmp->contr != NULL) { if (!QUERY_FLAG(otmp, FLAG_NO_FIX_PLAYER) && (QUERY_FLAG(op, FLAG_APPLIED) || op->type == SKILL || op->glow_radius != 0)) /* fix_object will only consider applied items, or skills, or items with a glow radius. thus no need to call it if our object hasn't that. */ fix_object(otmp); } /* reset the light list and los of the players on the map */ if (op->glow_radius != 0 && where->map) { #ifdef DEBUG_LIGHTS LOG(llevDebug, " object_insert_in_ob(): got %s to insert in map/op\n", op->name); #endif /* DEBUG_LIGHTS */ if (MAP_DARKNESS(where->map)) { SET_MAP_FLAGS(where->map, where->x, where->y, P_NEED_UPDATE); update_position(where->map, where->x, where->y); update_all_los(where->map, where->x, where->y); } } return op; } /** * Checks if any objects has a move_type that matches objects * that effect this object on this space. Call apply() to process * these events. * * Any speed-modification due to SLOW_MOVE() of other present objects * will affect the speed_left of the object. * 4-21-95 added code to check if appropriate skill was readied - this will * permit faster movement by the player through this terrain. -b.t. * * MSW 2001-07-08: Check all objects on space, not just those below * object being inserted. object_insert_in_map may not put new objects * on top. * * @param op * object that may trigger something. * @param originator * player, monster or other object that caused 'op' to be inserted * into 'map'. May be NULL. * @return * 1 if 'op' was destroyed, 0 otherwise. * * @note * check_move_on() has been renamed to object_check_move_on() */ int object_check_move_on(object *op, object *originator) { object *tmp; tag_t tag; mapstruct *m = op->map; int x = op->x, y = op->y; MoveType move_on, move_slow, move_block; if (QUERY_FLAG(op, FLAG_NO_APPLY)) return 0; tag = op->count; move_on = GET_MAP_MOVE_ON(op->map, op->x, op->y); move_slow = GET_MAP_MOVE_SLOW(op->map, op->x, op->y); move_block = GET_MAP_MOVE_BLOCK(op->map, op->x, op->y); /* if nothing on this space will slow op down or be applied, * no need to do checking below. have to make sure move_type * is set, as lots of objects don't have it set - we treat that * as walking. */ if (op->move_type && !(op->move_type&move_on) && !(op->move_type&move_slow)) return 0; /* This is basically inverse logic of that below - basically, * if the object can avoid the move on or slow move, they do so, * but can't do it if the alternate movement they are using is * blocked. Logic on this seems confusing, but does seem correct. */ if ((op->move_type&~move_on&~move_block) != 0 && (op->move_type&~move_slow&~move_block) != 0) return 0; /* The objects have to be checked from top to bottom. * Hence, we first go to the top: */ tmp = GET_MAP_OB(op->map, op->x, op->y); FOR_OB_AND_ABOVE_PREPARE(tmp) { if (tmp->above == NULL) break; /* Trim the search when we find the first other spell effect * this helps performance so that if a space has 50 spell objects, * we don't need to check all of them. */ if ((tmp->move_type&MOVE_FLY_LOW) && QUERY_FLAG(tmp, FLAG_NO_PICK)) break; } FOR_OB_AND_ABOVE_FINISH(); FOR_OB_AND_BELOW_PREPARE(tmp) { if (tmp == op) continue; /* Can't apply yourself */ /* Check to see if one of the movement types should be slowed down. * Second check makes sure that the movement types not being slowed * (~slow_move) is not blocked on this space - just because the * space doesn't slow down swimming (for example), if you can't actually * swim on that space, can't use it to avoid the penalty. */ if (!QUERY_FLAG(op, FLAG_WIZPASS)) { if ((!op->move_type && tmp->move_slow&MOVE_WALK) || ((op->move_type&tmp->move_slow) && (op->move_type&~tmp->move_slow&~tmp->move_block) == 0)) { float diff; diff = tmp->move_slow_penalty*FABS(op->speed); if (op->type == PLAYER) { if ((QUERY_FLAG(tmp, FLAG_IS_HILLY) && find_skill_by_number(op, SK_CLIMBING)) || (QUERY_FLAG(tmp, FLAG_IS_WOODED) && find_skill_by_number(op, SK_WOODSMAN))) { diff /= 4.0; } } op->speed_left -= diff; } } /* Basically same logic as above, except now for actual apply. */ if ((!op->move_type && tmp->move_on&MOVE_WALK) || ((op->move_type&tmp->move_on) && (op->move_type&~tmp->move_on&~tmp->move_block) == 0)) { ob_move_on(tmp, op, originator); if (object_was_destroyed(op, tag)) return 1; /* what the person/creature stepped onto has moved the object * someplace new. Don't process any further - if we did, * have a feeling strange problems would result. */ if (op->map != m || op->x != x || op->y != y) return 0; } } FOR_OB_AND_BELOW_FINISH(); return 0; } /** * Searches for any objects with a matching archetype at the given map and coordinates. * * @param m * @param x * @param y * where to search. Must be valid position. * @param at * archetype to search for. * @return * first matching object, or NULL if none matches. * * @note * present_arch() has been renamed to map_find_by_archetype() */ object *map_find_by_archetype(mapstruct *m, int x, int y, const archetype *at) { if (m == NULL || out_of_map(m, x, y)) { LOG(llevError, "Present_arch called outside map.\n"); return NULL; } FOR_MAP_PREPARE(m, x, y, tmp) if (tmp->arch == at) return tmp; FOR_MAP_FINISH(); return NULL; } /** * Searches for any objects with * a matching type variable at the given map and coordinates. * * @param m * @param x * @param y * where to search. Must be valid position. * @param type * type to get. * @return * first matching object, or NULL if none matches. * * @note * present() has been renamed to map_find_by_type() */ object *map_find_by_type(mapstruct *m, int x, int y, uint8 type) { if (out_of_map(m, x, y)) { LOG(llevError, "Present called outside map.\n"); return NULL; } FOR_MAP_PREPARE(m, x, y, tmp) if (tmp->type == type) return tmp; FOR_MAP_FINISH(); return NULL; } /** * Searches for any objects with * a matching type variable in the inventory of the given object. * @param type * type to search for. * @param op * object to search into. * @return * first matching object, or NULL if none matches. * * @note * present_in_ob() has been renamed to object_present_in_ob() */ object *object_present_in_ob(uint8 type, const object *op) { object *tmp; for (tmp = op->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == type) return tmp; return NULL; } /** * Searches for any objects with * a matching type & name variable in the inventory of the given object. * This is mostly used by spell effect code, so that we only * have one spell effect at a time. * type can be used to narrow the search - if type is set, * the type must also match. -1 can be passed for the type, * in which case the type does not need to pass. * str is the string to match against. Note that we match against * the object name, not the archetype name. this is so that the * spell code can use one object type (force), but change it's name * to be unique. * * @param type * object type to search for. -1 means to ignore it. * @param str * object name to search for. * @param op * where to search. * @return * first matching object, or NULL if none matches. * * @todo * use add_string() hack to avoid the strcmp? * * @note * present_in_ob_by_name() has been renamed to object_present_in_ob_by_name() */ object *object_present_in_ob_by_name(int type, const char *str, const object *op) { object *tmp; for (tmp = op->inv; tmp != NULL; tmp = tmp->below) { if ((type == -1 || tmp->type == type) && !strcmp(str, tmp->name)) return tmp; } return NULL; } /** * Searches for any objects with a matching archetype in the inventory of the given object. * * @param at * archetype to search for. * @param op * where to search. * @return first matching object, or NULL if none matches. * * @note * present_arch_in_ob() has been renamed to arch_present_in_ob() */ object *arch_present_in_ob(const archetype *at, const object *op) { object *tmp; for (tmp = op->inv; tmp != NULL; tmp = tmp->below) if (tmp->arch == at) return tmp; return NULL; } /** * Activate recursively a flag on an object's inventory * * @param op * object to recurse. Can have an empty inventory. * @param flag * flag to set. * * @note * flag_inv() has been renamed to object_set_flag_inv() */ void object_set_flag_inv(object*op, int flag) { object *tmp; for (tmp = op->inv; tmp != NULL; tmp = tmp->below) { SET_FLAG(tmp, flag); object_set_flag_inv(tmp, flag); } } /** * Desactivate recursively a flag on an object inventory * * @param op * object to recurse. Can have an empty inventory. * @param flag * flag to unset. * * @note * unflag_inv() has been renamed to object_unset_flag_inv() */ void object_unset_flag_inv(object*op, int flag) { object *tmp; for (tmp = op->inv; tmp != NULL; tmp = tmp->below) { CLEAR_FLAG(tmp, flag); object_unset_flag_inv(tmp, flag); } } /** * object_set_cheat(object) sets the cheat flag (WAS_WIZ) in the object and in * all it's inventory (recursively). * If checksums are used, a player will get object_set_cheat called for * him/her-self and all object carried by a call to this function. * * @param op * object for which to set the flag. * * @note * set_cheat() has been renamed to object_set_cheat() */ void object_set_cheat(object *op) { SET_FLAG(op, FLAG_WAS_WIZ); object_set_flag_inv(op, FLAG_WAS_WIZ); } /** * Sets hx and hy to the coords to insert a possibly * multi-tile ob at, around gen. * * @param ob * object to insert. Must not be NULL. * @param gen * where to insert. Must not be NULL. * @param[out] hx * @param[out] hy * coordinates at which insertion is possible. * @return * 0 for success and -1 for failure. * * @note * This function assumes that multi-tile objects are rectangular. * * @note * find_multi_free_spot_around() has been renamed to object_find_multi_free_spot_around() */ int object_find_multi_free_spot_around(const object *ob, const object *gen, int *hx, int *hy) { int genx, geny, genx2, geny2, sx, sy, sx2, sy2, ix, iy, nx, ny, i, flag; int freecount = 0; ob = HEAD(ob); object_get_multi_size(ob, &sx, &sy, &sx2, &sy2); object_get_multi_size(gen, &genx, &geny, &genx2, &geny2); /* * sx and sy are now the coords of the bottom right corner of ob relative to the head. * genx and geny are now the coords of the bottom right corner of gen relative to the head. * sx2 and sy2 are now the coords of the head of ob relative to the top left corner. * genx2 and geny2 are now the coords of the head of gen relative to the top left corner. */ sx++; sy++; genx++; geny++; /* * sx, sy, genx, and geny, are now the size of the object, excluding parts left and above * the head. */ ix = gen->x-sx-genx2; iy = gen->y-sy-geny2; sx += genx+sx2; sy += geny+sy2; /* * ix and iy are the map coords of the top left square where the head of ob could possibly * be placed. sx and sy are now the size of the square to search for placement of the head * relative to ix and iy. */ /* * Loop around the square of possible positions for the head of ob object: */ for (i = 0; i < (sx+sx+sy+sy); i++) { if (i <= sx) { nx = i+ix; ny = iy; } else if (i <= sx+sy) { nx = ix+sx; ny = iy+i-sx; } else if (i <= sx+sy+sx) { nx = ix+sx-(i-(sx+sy)); ny = iy+sy; } else { nx = ix; ny = iy+sy-(i-(sx+sy+sx)); } /* Check if the spot is free. */ flag = ob_blocked(ob, gen->map, nx, ny); if (!flag) { freecount++; } } /* If no free spaces, return. */ if (!freecount) return -1; /* Choose a random valid position */ freecount = RANDOM()%freecount; for (i = 0; i < sx+sx+sy+sy; i++) { if (i <= sx) { nx = i+ix; ny = iy; } else if (i <= sx+sy) { nx = ix+sx; ny = iy+i-sx; } else if (i <= sx+sy+sx) { nx = ix+sx-(i-(sx+sy)); ny = iy+sy; } else { nx = ix; ny = iy+sy-(i-(sx+sy+sx)); } /* Make sure it's within map. */ if (nx < 0 || nx >= MAP_WIDTH(gen->map) || ny < 0 || ny >= MAP_HEIGHT(gen->map)) continue; /* Check if the spot is free.*/ flag = ob_blocked(ob, gen->map, nx, ny); if (!flag) { freecount--; if (freecount <= 0) { *hx = nx; *hy = ny; return 0; } } } return -1; } /** * Sets hx and hy to the coords to insert a possibly * multi-tile ob at, within radius of generator, which * is stored in key_value "generator_radius". Radius * defaults to 1. * * @param ob * object to insert. Must not be NULL. * @param gen * where to insert. Must not be NULL. * @param[out] hx * @param[out] hy * coordinates at which insertion is possible. * @return * 0 for success and -1 for failure. * * @note * This function assumes that multi-tile objects are rectangular. * * @note * find_multi_free_spot_within_radius() has been renamed to object_find_multi_free_spot_within_radius() */ int object_find_multi_free_spot_within_radius(const object *ob, const object *gen, int *hx, int *hy) { int genx, geny, genx2, geny2, sx, sy, sx2, sy2, ix, iy, nx, ny, i, flag; sint8 x, y, radius; int freecount = 0, freecountstop = 0; const char *value; sint8 *x_array; sint8 *y_array; /* If radius is not set, default to 1 */ value = object_get_value(gen, "generator_radius"); if (value) { radius = (sint8)strtol(value, NULL, 10); if (radius < 1) { radius = 1; } } else { radius = 1; } ob = HEAD(ob); object_get_multi_size(ob, &sx, &sy, &sx2, &sy2); object_get_multi_size(gen, &genx, &geny, &genx2, &geny2); /* * sx and sy are now the coords of the bottom right corner * of ob relative to the head. * genx and geny are now the coords of the bottom right corner * of gen relative to the head. * sx2 and sy2 are now the coords of the head of ob relative * to the top left corner. * genx2 and geny2 are now the coords of the head of gen relative * to the top left corner. */ sx++; sy++; genx++; geny++; /* * sx, sy, genx, and geny, are now the size of the object, * excluding parts left and above the head. */ ix = gen->x-sx-genx2-radius+1; iy = gen->y-sy-geny2-radius+1; sx += genx+sx2+radius*2-1; sy += geny+sy2+radius*2-1; /* * ix and iy are the map coords of the top left square where * the head of ob could possibly be placed. sx and sy are now * the size of the square to search for placement of the head * relative to ix and iy. */ /* Create arrays large enough to hold free space coordinates */ x_array = malloc(sx*sy*sizeof(sint8)); y_array = malloc(sx*sy*sizeof(sint8)); /* * Loop through the area of possible positions for the head of ob object: */ for (x = 0; x < sx; x++) { for (y = 0; y < sy; y++) { nx = ix+x; ny = iy+y; /* Make sure it's within map. */ if (get_map_flags(gen->map, NULL, nx, ny, NULL, NULL)&P_OUT_OF_MAP) { continue; } /* Check if the spot is free. */ flag = ob_blocked(ob, gen->map, nx, ny); if (!flag) { x_array[freecount] = nx; y_array[freecount] = ny; freecount++; } } } /* If no free spaces, return. */ if (!freecount) { free(x_array); free(y_array); return -1; } /* Choose a random valid position */ freecountstop = RANDOM()%freecount; for (i = 0; i < freecount; i++) { nx = x_array[i]; ny = y_array[i]; /* Check if the spot is free.*/ flag = ob_blocked(ob, gen->map, nx, ny); if (!flag) { freecountstop--; if (freecountstop <= 0) { *hx = nx; *hy = ny; free(x_array); free(y_array); return 0; } } } free(x_array); free(y_array); return -1; } /** * object_find_free_spot(object, map, x, y, start, stop) will search for * a spot at the given map and coordinates which will be able to contain * the given object. * * It returns a random choice among the alternatives found. * * @param ob * object to insert. * @param m * @param x * @param y * where to insert the object. * @param start * @param stop * first (inclusive) and last (exclusive) positions, in the freearr_ arrays, to search. * @return * index into ::freearr_x and ::freearr_y, -1 if no spot available (dir 0 = x,y) * * @note * this only checks to see if there is space for the head of the * object - if it is a multispace object, this should be called for all * pieces. * @note * This function does correctly handle tiled maps, but does not * inform the caller. However, object_insert_in_map will update as * necessary, so the caller shouldn't need to do any special work. * @note * Updated to take an object instead of archetype - this is necessary * because arch_blocked (now ob_blocked) needs to know the movement type * to know if the space in question will block the object. We can't use * the archetype because that isn't correct if the monster has been * customized, changed states, etc. * @note * find_free_spot() has been renamed to object_find_free_spot() */ int object_find_free_spot(const object *ob, mapstruct *m, int x, int y, int start, int stop) { int i, index = 0, flag; static int altern[SIZEOFFREE]; for (i = start; i < stop; i++) { flag = ob_blocked(ob, m, x+freearr_x[i], y+freearr_y[i]); if (!flag) altern[index++] = i; /* Basically, if we find a wall on a space, we cut down the search size. * In this way, we won't return spaces that are on another side of a wall. * This mostly work, but it cuts down the search size in all directions - * if the space being examined only has a wall to the north and empty * spaces in all the other directions, this will reduce the search space * to only the spaces immediately surrounding the target area, and * won't look 2 spaces south of the target space. */ else if ((flag&AB_NO_PASS) && maxfree[i] < stop) stop = maxfree[i]; } if (!index) return -1; return altern[RANDOM()%index]; } /** * object_find_first_free_spot(archetype, mapstruct, x, y) works like * object_find_free_spot(), but it will search max number of squares. * It will return the first available spot, not a random choice. * Changed 0.93.2: Have it return -1 if there is no free spot available. * * @param ob * object to insert. * @param m * @param x * @param y * where to insert the object. * @return * index into ::freearr_x and ::freearr_y, -1 if no spot available (dir 0 = x,y) * * @note * find_first_free_spot() has been renamed to object_find_first_free_spot() */ int object_find_first_free_spot(const object *ob, mapstruct *m, int x, int y) { int i; for (i = 0; i < SIZEOFFREE; i++) { if (!ob_blocked(ob, m, x+freearr_x[i], y+freearr_y[i])) return i; } return -1; } /** * Randomly permutes an array. * * @param arr * array to permute. * @param begin * @param end * first and last (exclusive) indexes to permute. */ static void permute(int *arr, int begin, int end) { int i, j, tmp, len; len = end-begin; for (i = begin; i < end; i++) { j = begin+RANDOM()%len; tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } } /** * New function to make monster searching more efficient, and effective! * This basically returns a randomized array (in the passed pointer) of * the spaces to find monsters. In this way, it won't always look for * monsters to the north first. However, the size of the array passed * covers all the spaces, so within that size, all the spaces within * the 3x3 area will be searched, just not in a predictable order. * * @param search_arr * array that will be initialized. Must contain at least SIZEOFFREE elements. */ void get_search_arr(int *search_arr) { int i; for (i = 0; i < SIZEOFFREE; i++) { search_arr[i] = i; } permute(search_arr, 1, SIZEOFFREE1+1); permute(search_arr, SIZEOFFREE1+1, SIZEOFFREE2+1); permute(search_arr, SIZEOFFREE2+1, SIZEOFFREE); } /** * Search some close squares in the given map at the given coordinates for live objects. * * @param m * @param x * @param y * origin from which to search. * @param exclude * an object that will be ignored. Can be NULL. * @return * direction toward the first/closest live object if it finds any, otherwise 0. * * @note * Perhaps incorrectly, but I'm making the assumption that exclude * is actually want is going to try and move there. We need this info * because we have to know what movement the thing looking to move * there is capable of. * * @note * find_dir() has been renamed to map_find_dir() */ int map_find_dir(mapstruct *m, int x, int y, object *exclude) { int i, max = SIZEOFFREE, mflags; sint16 nx, ny; mapstruct *mp; MoveType blocked, move_type; if (exclude && exclude->head) { exclude = exclude->head; move_type = exclude->move_type; } else { /* If we don't have anything, presume it can use all movement types. */ move_type = MOVE_ALL; } for (i = 1; i < max; i++) { mp = m; nx = x+freearr_x[i]; ny = y+freearr_y[i]; mflags = get_map_flags(m, &mp, nx, ny, &nx, &ny); if (mflags&P_OUT_OF_MAP) { max = maxfree[i]; } else { blocked = GET_MAP_MOVE_BLOCK(mp, nx, ny); if ((move_type&blocked) == move_type) { max = maxfree[i]; } else if (mflags&P_IS_ALIVE) { FOR_MAP_PREPARE(mp, nx, ny, tmp) { if ((QUERY_FLAG(tmp, FLAG_MONSTER) || tmp->type == PLAYER) && (tmp != exclude || (tmp->head && tmp->head != exclude))) { return freedir[i]; } } FOR_MAP_FINISH(); } } } return 0; } /** * Return the square of the distance between the two given objects. * * @param ob1 * @param ob2 * objects we want to compute the distance of. * * @note * distance() has been renamed to object_distance() */ int object_distance(const object *ob1, const object *ob2) { int i; i = (ob1->x-ob2->x)*(ob1->x-ob2->x)+ (ob1->y-ob2->y)*(ob1->y-ob2->y); return i; } /** * Computes a direction which you should travel to move of x and y. * @param x * @param y * delta. * @return * direction */ int find_dir_2(int x, int y) { int q; if (!y) q = -300*x; else q = x*100/y; if (y > 0) { if (q < -242) return 3; if (q < -41) return 2; if (q < 41) return 1; if (q < 242) return 8; return 7; } if (q < -242) return 7; if (q < -41) return 6; if (q < 41) return 5; if (q < 242) return 4; return 3; } /** * Computes an absolute direction. * @param d * direction to convert. * @return * number between 1 and 8, which represent the "absolute" direction of a number (it actually * takes care of "overflow" in previous calculations of a direction). */ int absdir(int d) { while (d < 1) d += 8; while (d > 8) d -= 8; return d; } /** * Computes a direction difference. * @param dir1 * @param dir2 * directions to compare. * @return * how many 45-degrees differences there is between two directions * (which are expected to be absolute (see absdir()) */ int dirdiff(int dir1, int dir2) { int d; d = abs(dir1-dir2); if (d > 4) d = 8-d; return d; } /** * Basically, this is a table of directions, and what directions * one could go to go back to us. Eg, entry 15 below is 4, 14, 16. * This basically means that if direction is 15, then it could either go * direction 4, 14, or 16 to get back to where we are. * Moved from spell_util.c to object.c with the other related direction * functions. * * peterm: * do LOS stuff for ball lightning. Go after the closest VISIBLE monster. */ static const int reduction_dir[SIZEOFFREE][3] = { { 0, 0, 0 }, /* 0 */ { 0, 0, 0 }, /* 1 */ { 0, 0, 0 }, /* 2 */ { 0, 0, 0 }, /* 3 */ { 0, 0, 0 }, /* 4 */ { 0, 0, 0 }, /* 5 */ { 0, 0, 0 }, /* 6 */ { 0, 0, 0 }, /* 7 */ { 0, 0, 0 }, /* 8 */ { 8, 1, 2 }, /* 9 */ { 1, 2, -1 }, /* 10 */ { 2, 10, 12 }, /* 11 */ { 2, 3, -1 }, /* 12 */ { 2, 3, 4 }, /* 13 */ { 3, 4, -1 }, /* 14 */ { 4, 14, 16 }, /* 15 */ { 5, 4, -1 }, /* 16 */ { 4, 5, 6 }, /* 17 */ { 6, 5, -1 }, /* 18 */ { 6, 20, 18 }, /* 19 */ { 7, 6, -1 }, /* 20 */ { 6, 7, 8 }, /* 21 */ { 7, 8, -1 }, /* 22 */ { 8, 22, 24 }, /* 23 */ { 8, 1, -1 }, /* 24 */ { 24, 9, 10 }, /* 25 */ { 9, 10, -1 }, /* 26 */ { 10, 11, -1 }, /* 27 */ { 27, 11, 29 }, /* 28 */ { 11, 12, -1 }, /* 29 */ { 12, 13, -1 }, /* 30 */ { 12, 13, 14 }, /* 31 */ { 13, 14, -1 }, /* 32 */ { 14, 15, -1 }, /* 33 */ { 33, 15, 35 }, /* 34 */ { 16, 15, -1 }, /* 35 */ { 17, 16, -1 }, /* 36 */ { 18, 17, 16 }, /* 37 */ { 18, 17, -1 }, /* 38 */ { 18, 19, -1 }, /* 39 */ { 41, 19, 39 }, /* 40 */ { 19, 20, -1 }, /* 41 */ { 20, 21, -1 }, /* 42 */ { 20, 21, 22 }, /* 43 */ { 21, 22, -1 }, /* 44 */ { 23, 22, -1 }, /* 45 */ { 45, 47, 23 }, /* 46 */ { 23, 24, -1 }, /* 47 */ { 24, 9, -1 } /* 48 */ }; /** * Recursive routine to see if we can find a path to a certain point. * * Modified to be map tile aware -.MSW * * @param m * map we're on * @param x * @param y * origin coordinates * @param dir * direction we're going to. Must be less than SIZEOFFREE. * @return * 1 if we can see a direct way to get it * * @todo * better document, can't figure what it does :) */ int can_see_monsterP(mapstruct *m, int x, int y, int dir) { sint16 dx, dy; int mflags; if (dir < 0) return 0; /* exit condition: invalid direction */ dx = x+freearr_x[dir]; dy = y+freearr_y[dir]; mflags = get_map_flags(m, &m, dx, dy, &dx, &dy); /* This functional arguably was incorrect before - it was * checking for P_WALL - that was basically seeing if * we could move to the monster - this is being more * literal on if we can see it. To know if we can actually * move to the monster, we'd need the monster passed in or * at least its move type. */ if (mflags&(P_OUT_OF_MAP|P_BLOCKSVIEW)) return 0; /* yes, can see. */ if (dir < 9) return 1; return can_see_monsterP(m, x, y, reduction_dir[dir][0])| can_see_monsterP(m, x, y, reduction_dir[dir][1])| can_see_monsterP(m, x, y, reduction_dir[dir][2]); } /** * Finds out if an object can be picked up. * * Add a check so we can't pick up invisible objects (0.93.8) * * @param who * who is trying to pick up. Can be a monster or a player. * @param item * item we're trying to pick up. * @return * 1 if it can be picked up, otherwise 0. * * @note * this introduces a weight limitation for monsters. * * @note * can_pick() has been renamed to object_can_pick() */ int object_can_pick(const object *who, const object *item) { /* I re-wrote this as a series of if statements * instead of a nested return (foo & bar && yaz) * - I think this is much more readable, * and likely compiler effectively optimizes it the * same. */ if (item->weight <= 0) return 0; if (QUERY_FLAG(item, FLAG_NO_PICK)) return 0; if (QUERY_FLAG(item, FLAG_ALIVE)) return 0; if (item->invisible) return 0; /* Weight limit for monsters */ if (who->type != PLAYER && ((uint32)(who->weight+who->carrying+item->weight)) > get_weight_limit(who->stats.Str)) return 0; /* Can not pick up multipart objects */ if (item->head || item->more) return 0; /* Everything passes, so OK to pick up */ return 1; } /** * Create clone from object to another. * * @param asrc * object to clone. * @return * clone of asrc, including inventory and 'more' body parts. * * @note * this function will return NULL only if asrc is NULL. If there is a memory allocation error, object_new() calls fatal(). */ object *object_create_clone(object *asrc) { object *dst = NULL, *tmp, *src, *part, *prev; if (!asrc) return NULL; src = HEAD(asrc); prev = NULL; for (part = src; part; part = part->more) { tmp = object_new(); object_copy(part, tmp); /* * Need to reset the weight, since object_insert_in_ob() later will * recompute this field. */ tmp->carrying = tmp->arch->clone.carrying; tmp->x -= src->x; tmp->y -= src->y; if (!part->head) { dst = tmp; tmp->head = NULL; } else { tmp->head = dst; } tmp->more = NULL; if (prev) prev->more = tmp; prev = tmp; } /*** copy inventory ***/ FOR_INV_PREPARE(src, item) (void)object_insert_in_ob(object_create_clone(item), dst); FOR_INV_FINISH(); return dst; } /** * Finds an object in inventory name. * * @param who * the object to search * @param name * name to search for * @return * the first object which has a name equal to the argument, NULL if none found. */ object *object_find_by_name(const object *who, const char *name) { const char *name_shared = add_string(name); object *tmp; for (tmp = who->inv; tmp; tmp = tmp->below) if (tmp->name == name_shared) break; free_string(name_shared); return tmp; } /** * Find object in inventory. * * @param who * where to search. * @param type * what to search. * @return * first object in who's inventory that has the same type match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type(const object *who, int type) { object *tmp; for (tmp = who->inv; tmp; tmp = tmp->below) if (tmp->type == type) return tmp; return NULL; } /** * Find object in inventory. * * @param who * where to search. * @param type1 * what to search. * @param type2 * what to search. * @return * first object in who's inventory that has either type match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type2(const object *who, int type1, int type2) { object *tmp; for (tmp = who->inv; tmp; tmp = tmp->below) if (tmp->type == type1 || tmp->type == type2) return tmp; return NULL; } /** * Find object in inventory. * * @param who * where to search. * @param tag * what to search. * @return * first object in who's inventory that has the given tag. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_tag(const object *who, tag_t tag) { object *tmp; for (tmp = who->inv; tmp; tmp = tmp->below) if (tmp->count == tag) return tmp; return NULL; } /** * Find applied object in inventory. * * @param who * where to search. * @param type * what to search. * @return * first object in who's inventory that has the same type match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type_applied(const object *who, int type) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == type && QUERY_FLAG(tmp, FLAG_APPLIED)) return tmp; return NULL; } /** * Find object in inventory by type and name. * * @param who * where to search. * @param type * what to search. * @param name * what to search * @return * first object in who's inventory that has the same type and name match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type_and_name(const object *who, int type, const char *name) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == type && strcmp(tmp->name, name) == 0) return tmp; return NULL; } /** * Find object in inventory by type and race. * * @param who * where to search. * @param type * what to search. * @param race * what to search * @return * first object in who's inventory that has the same type and race match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type_and_race(const object *who, int type, const char *race) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == type && strcmp(tmp->race, race) == 0) return tmp; return NULL; } /** * Find object in inventory by type and slaying. * * @param who * where to search. * @param type * what to search. * @param slaying * what to search * @return * first object in who's inventory that has the same type and slaying match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type_and_slaying(const object *who, int type, const char *slaying) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == type && tmp->slaying != NULL && strcmp(tmp->slaying, slaying) == 0) return tmp; return NULL; } /** * Find object in inventory by type and skill. * * @param who * where to search. * @param type * what to search. * @param skill * what to search * @return * first object in who's inventory that has the same type and skill match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type_and_skill(const object *who, int type, const char *skill) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == SKILL && tmp->skill != NULL && strcmp(tmp->skill, skill) == 0) return tmp; return NULL; } /** * Find object in inventory by flag. * * @param who * where to search. * @param flag * what to search. * @return * first object in who's inventory that has the flag set. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_flag(const object *who, int flag) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (QUERY_FLAG(tmp, flag)) return tmp; return NULL; } /** * Find applied object in inventory by flag. * * @param who * where to search. * @param flag * what to search. * @return * first object in who's inventory that has the flag set and is applied. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_flag_applied(const object *who, int flag) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (QUERY_FLAG(tmp, FLAG_APPLIED) && QUERY_FLAG(tmp, flag)) return tmp; return NULL; } /** * Find object in inventory by archetype name. * * @param who * where to search. * @param name * what to search. * @return * first object in who's inventory that has the archetype name match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_arch_name(const object *who, const char *name) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (strcmp(tmp->arch->name, name) == 0) return tmp; return NULL; } /** * Find object in inventory by type and archetype name. * * @param who * where to search. * @param type * what to search. * @param name * what to search. * @return * first object in who's inventory that has the type and archetype name match. NULL if no match. * * @note * will not search in inventory of items in inventory. */ object *object_find_by_type_and_arch_name(const object *who, int type, const char *name) { object *tmp; for (tmp = who->inv; tmp != NULL; tmp = tmp->below) if (tmp->type == type && strcmp(tmp->arch->name, name) == 0) return tmp; return NULL; } /** * Find object in inventory. * * @param who * where to search. * @param type * @param subtype * what to search. * @return * first object in who's inventory that has the same type and subtype match. NULL if no match. * * @note * will not search in inventory of items in inventory. * * @note * find_obj_by_type_subtype() has been renamed to object_find_by_type_subtype() */ object *object_find_by_type_subtype(const object *who, int type, int subtype) { object *tmp; for (tmp = who->inv; tmp; tmp = tmp->below) if (tmp->type == type && tmp->subtype == subtype) return tmp; return NULL; } /** * Search for a field by key. * * @param ob * object where search * @param key * key to search. Must be a passed in shared string - otherwise, this won't do the desired thing. * @return * the link from the list if ob has a field named key, otherwise NULL. * * @note * get_ob_key_link() has been renamed to object_get_key_value() */ key_value *object_get_key_value(const object *ob, const char *key) { key_value *link; for (link = ob->key_values; link != NULL; link = link->next) { if (link->key == key) { return link; } } return NULL; } /** * Get an extra value by key. * * @param op * object we're considering * @param key * key of which to retrieve the value. Doesn't need to be a shared string. * @return * the value of op has in an extra_field for key, or NULL if it doesn't have the key. * * @note * The returned string is shared. * * @note * get_ob_key_value() has been renamed to object_get_value() */ const char *object_get_value(const object *op, const char *const key) { key_value *link; const char *canonical_key; canonical_key = find_string(key); if (canonical_key == NULL) { /* 1. There being a field named key on any object * implies there'd be a shared string to find. * 2. Since there isn't, no object has this field. * 3. Therefore, *this *object doesn't have this field. */ return NULL; } /* This is copied from object_get_key_value() above - * only 4 lines, and saves the function call overhead. */ for (link = op->key_values; link != NULL; link = link->next) { if (link->key == canonical_key) { return link->value; } } return NULL; } /** * Updates or sets a key value. * * @param op * object we're considering. * @param canonical_key * key to set or update. Must be a shared string. * @param value * value to set. Doesn't need to be a shared string. * @param add_key * if 0, will not add the key if it doesn't exist in op. * @return * TRUE if key was updated or added, FALSE else. * * @note * set_ob_key_value_s() has been renamed to object_set_value_s() */ static int object_set_value_s(object *op, const char *canonical_key, const char *value, int add_key) { key_value *field = NULL, *last = NULL; LOG(llevDebug, "set_ob_value_s: '%s' '%s' %d\n", canonical_key, value ? value : "null", add_key); for (field = op->key_values; field != NULL; field = field->next) { if (field->key != canonical_key) { last = field; continue; } if (field->value) FREE_AND_CLEAR_STR(field->value); if (value) field->value = add_string(value); else { /* Basically, if the archetype has this key set, * we need to store the null value so when we save * it, we save the empty value so that when we load, * we get this value back again. */ if (object_get_key_value(&op->arch->clone, canonical_key)) field->value = NULL; else { /* Delete this link */ if (field->key) FREE_AND_CLEAR_STR(field->key); if (field->value) FREE_AND_CLEAR_STR(field->value); if (last) last->next = field->next; else op->key_values = field->next; free(field); } } return TRUE; } /* IF we get here, key doesn't exist */ /* No field, we'll have to add it. */ if (!add_key) { return FALSE; } /* There isn't any good reason to store a null * value in the key/value list. If the archetype has * this key, then we should also have it, so shouldn't * be here. If user wants to store empty strings, * should pass in "" */ if (value == NULL) return TRUE; field = malloc(sizeof(key_value)); field->key = add_refcount(canonical_key); field->value = add_string(value); /* Usual prepend-addition. */ field->next = op->key_values; op->key_values = field; return TRUE; } /** * Updates the key in op to value. * * @param op * object we're considering. * @param key * key to set or update. Doesn't need to be a shared string. * @param value * value to set. Doesn't need to be a shared string. * @param add_key * if 0, will not add the key if it doesn't exist in op. * @return * TRUE if key was updated or added, FALSE else. * * @note * This function is merely a wrapper to object_set_value_s() to ensure the key is a shared string. * * @note * In general, should be little reason FALSE is ever passed in for add_key * * @note * set_ob_key_value() has been renamed to object_set_value() */ int object_set_value(object *op, const char *key, const char *value, int add_key) { const char *canonical_key = NULL; int floating_ref = FALSE; int ret; /* HACK This mess is to make sure set_ob_value() passes a shared string * to object_get_key_value(), without leaving a leaked refcount. */ canonical_key = find_string(key); if (canonical_key == NULL) { canonical_key = add_string(key); floating_ref = TRUE; } ret = object_set_value_s(op, canonical_key, value, add_key); if (floating_ref) { free_string(canonical_key); } return ret; } /** This is a subset of the parse_id command. Basically, name can be * a string seperated lists of things to match, with certain keywords. * pl is the player (only needed to set count properly) * op is the item we are trying to match. Calling function takes care * of what action might need to be done and if it is valid * (pickup, drop, etc.) Return NONZERO if we have a match. A higher * value means a better match. 0 means no match. * * Brief outline of the procedure: * We take apart the name variable into the individual components. * cases for 'all' and unpaid are pretty obvious. * Next, we check for a count (either specified in name, or in the * player object.) * If count is 1, make a quick check on the name. * IF count is >1, we need to make plural name. Return if match. * Last, make a check on the full name. * * Details on values output (highest is output): * match type return value * --------------------------------------- * nothing 0 * 'all' 1 * 'unpaid' 2 * 'cursed' 2 * 'unlocked' 2 * partial custom name 3 * op->name with count >1 4 * op->name with count <2 6 * op->name_pl with count >1 6 * inside base name 12 * inside short name 12 * begin of base name 14 * custom name 15 * base name 16 * short name 18 * full name 20 * (note, count is extracted from begin of name parameter or * from pl->contr->count, name has priority) * * @param pl * object we're searching an item for. Must not be NULL. * @param op * object we're considering. Must not be NULL. * @param name * string we're searching. * @return * matching weight. The higher, the more the object matches. * * @todo * is the player->contr->count hack used?? Try to reduce buffers/calls to query_ functions. * * @note * item_matched_string() has been renamed to object_matches_string() */ int object_matches_string(object *pl, object *op, const char *name) { char *cp, local_name[MAX_BUF], name_op[MAX_BUF], name_short[HUGE_BUF], bname_s[MAX_BUF], bname_p[MAX_BUF]; int count, retval = 0; strcpy(local_name, name); /* strtok is destructive to name */ for (cp = strtok(local_name, ","); cp; cp = strtok(NULL, ",")) { while (cp[0] == ' ') ++cp; /* get rid of spaces */ /* LOG(llevDebug, "Trying to match %s\n", cp);*/ /* All is a very generic match - low match value */ if (!strcmp(cp, "all")) return 1; /* unpaid is a little more specific */ if (!strcmp(cp, "unpaid") && QUERY_FLAG(op, FLAG_UNPAID)) return 2; if (!strcmp(cp, "cursed") && QUERY_FLAG(op, FLAG_KNOWN_CURSED) && (QUERY_FLAG(op, FLAG_CURSED) || QUERY_FLAG(op, FLAG_DAMNED))) return 2; if (!strcmp(cp, "unlocked") && !QUERY_FLAG(op, FLAG_INV_LOCKED)) return 2; /* Allow for things like '100 arrows' */ count = atoi(cp); if (count != 0) { cp = strchr(cp, ' '); while (cp && cp[0] == ' ') ++cp; /* get rid of spaces */ } else { if (pl->type == PLAYER) count = pl->contr->count; else count = 0; } if (!cp || cp[0] == '\0' || count < 0) return 0; /* The code here should go from highest retval to lowest. That * is because of the 'else' handling - we don't want to match on * something and set a low retval, even though it may match a higher retcal * later. So keep it in descending order here, so we try for the best * match first, and work downward. */ query_name(op, name_op, MAX_BUF); query_short_name(op, name_short, HUGE_BUF); query_base_name(op, 0, bname_s, MAX_BUF); query_base_name(op, 1, bname_p, MAX_BUF); if (!strcasecmp(cp, name_op)) retval = 20; else if (!strcasecmp(cp, name_short)) retval = 18; else if (!strcasecmp(cp, bname_s)) retval = 16; else if (!strcasecmp(cp, bname_p)) retval = 16; else if (op->custom_name && !strcasecmp(cp, op->custom_name)) retval = 15; else if (!strncasecmp(cp, bname_s, strlen(cp))) retval = 14; else if (!strncasecmp(cp, bname_p, strlen(cp))) retval = 14; /* Do substring checks, so things like 'Str+1' will match. * retval of these should perhaps be lower - they are lower * then the specific strcasecmp aboves, but still higher than * some other match criteria. */ else if (strstr(bname_p, cp)) retval = 12; else if (strstr(bname_s, cp)) retval = 12; else if (strstr(name_short, cp)) retval = 12; /* Check against plural/non plural based on count. */ else if (count > 1 && !strcasecmp(cp, op->name_pl)) { retval = 6; } else if (count == 1 && !strcasecmp(op->name, cp)) { retval = 6; } /* base name matched - not bad */ else if (strcasecmp(cp, op->name) == 0 && !count) retval = 4; /* Check for partial custom name, but give a real low priority */ else if (op->custom_name && strstr(op->custom_name, cp)) retval = 3; if (retval) { if (pl->type == PLAYER) pl->contr->count = count; return retval; } } return 0; } /** * Ensures specified object has its more parts correctly inserted in map. * * Extracted from common/map.c:link_multipart_objects * * @param tmp * object we want to fix. Must be on a map. * * @note * fix_multipart_object() has been renamed to object_fix_multipart() */ void object_fix_multipart(object *tmp) { archetype *at; object *op, *last; if (!tmp->map) { LOG(llevError, "object_fix_multipart: not on a map!\n"); return; } /* already multipart - don't do anything more */ if (tmp->head || tmp->more) return; /* If there is nothing more to this object, this for loop * won't do anything. */ for (at = tmp->arch->more, last = tmp; at != NULL; at = at->more, last = op) { op = arch_to_object(at); /* update x,y coordinates */ op->x += tmp->x; op->y += tmp->y; op->head = tmp; op->map = tmp->map; last->more = op; if (tmp->name != op->name) { if (op->name) free_string(op->name); op->name = add_string(tmp->name); } if (tmp->title != op->title) { if (op->title) free_string(op->title); op->title = add_string(tmp->title); } /* we could link all the parts onto tmp, and then just * call object_insert_in_map once, but the effect is the same, * as object_insert_in_map will call itself with each part, and * the coding is simpler to just to it here with each part. */ object_insert_in_map(op, op->map, tmp, INS_NO_MERGE|INS_ABOVE_FLOOR_ONLY|INS_NO_WALK_ON); } /* for at = tmp->arch->more */ } /** * Computes the size of a multitile object. * * @param ob * object we compute the size of. * @param[out] sx * @param[out] sy * will contain the coords of the bottom right tail relative to the head. Must not be NULL. * @param[out] hx * @param[out] hy * will contain the coords of the head tile relative to the top left tile. Can be NULL. * * @todo * either check for sx/sy everywhere or remove the check :) * * @note * get_multi_size() has been renamed to object_get_multi_size() */ void object_get_multi_size(const object *ob, int *sx, int *sy, int *hx, int *hy) { archetype *part; int maxx = 0, maxy = 0, minx = 0, miny = 0; ob = HEAD(ob); *sx = 1; *sy = 1; if (ob->arch->more) { for (part = ob->arch; part; part = part->more) { if (part->clone.x > maxx) maxx = part->clone.x; if (part->clone.y > maxy) maxy = part->clone.y; if (part->clone.x < minx) minx = part->clone.x; if (part->clone.y < miny) miny = part->clone.y; } } if (sx) *sx = maxx; if (sy) *sy = maxy; if (hx) *hx = -minx; if (hy) *hy = -miny; } /** * Inserts an object into its map. The object is inserted into a free spot (as * returned by #object_find_free_spot()). If no free spot can be found, the * object is freed. * * @param op * the object to insert or free * @param map * the map to insert into * @param x * the x-coordinate to insert into * @param y * the y-coordinate to insert into * @param start * first (inclusive) position in the freearr_ arrays to search * @param stop * last (exclusive) position in the freearr_ arrays to search * @param originator * what caused op to be inserted. */ void object_insert_to_free_spot_or_free(object *op, mapstruct *map, int x, int y, int start, int stop, object *originator) { int pos; pos = object_find_free_spot(op, map, x, y, start, stop); if (pos == -1) { object_free_drop_inventory(op); return; } object_insert_in_map_at(op, map, originator, 0, x+freearr_x[pos], y+freearr_y[pos]); } /** * Sets the object#msg field of an object. * * @param op * the object to modify * @param msg * the new message to set or NULL to clear */ void object_set_msg(object *op, const char *msg) { if (op->msg != NULL) free_string(op->msg); op->msg = msg == NULL ? NULL : add_string(msg); } crossfire-1.70.0/common/anim.c0000644000014500000120000002547511731300526013075 00000000000000/* * static char *rcsid_anim_c = * "$Id: anim.c 16220 2011-12-18 19:14:52Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2003 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file anim.c * This file contains animation-related code. **/ #include #include #include /** * Clears all animation-related memory. **/ void free_all_anim(void) { int i; for (i = 0; i <= num_animations; i++) { free_string(animations[i].name); free(animations[i].faces); } free(animations); } /** * Loads the lib/animations file. * Can be called multiple times without ill effects. **/ void init_anim(void) { char buf[MAX_BUF]; FILE *fp; int num_frames = 0, i; const New_Face *faces[MAX_ANIMATIONS]; animations_allocated = 9; num_animations = 0; /* Make a default. New animations start at one, so if something * thinks it is animated but hasn't set the animation_id properly, * it will have a default value that should be pretty obvious. */ animations = malloc(10*sizeof(Animations)); /* set the name so we don't try to dereferance null. * Put # at start so it will be first in alphabetical * order. */ animations[0].name = add_string("###none"); animations[0].num_animations = 1; animations[0].faces = malloc(sizeof(New_Face*)); animations[0].faces[0] = &new_faces[find_face("bug.111", 0)]; animations[0].facings = 0; snprintf(buf, sizeof(buf), "%s/animations", settings.datadir); LOG(llevDebug, "Reading animations from %s...\n", buf); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Cannot open animations file %s: %s\n", buf, strerror_local(errno, buf, sizeof(buf))); exit(-1); } while (fgets(buf, MAX_BUF-1, fp) != NULL) { if (*buf == '#') continue; if (strlen(buf) == 0) break; /* Kill the newline */ buf[strlen(buf)-1] = '\0'; if (!strncmp(buf, "anim ", 5)) { if (num_frames) { LOG(llevError, "Didn't get a mina before %s\n", buf); num_frames = 0; } num_animations++; if (num_animations == animations_allocated) { animations = realloc(animations, sizeof(Animations)*(animations_allocated+10)); animations_allocated += 10; } animations[num_animations].name = add_string(buf+5); animations[num_animations].num = num_animations; /* for bsearch */ animations[num_animations].facings = 1; } else if (!strncmp(buf, "mina", 4)) { animations[num_animations].faces = malloc(sizeof(New_Face*)*num_frames); for (i = 0; i < num_frames; i++) animations[num_animations].faces[i] = faces[i]; animations[num_animations].num_animations = num_frames; if (num_frames <= 1) { LOG(llevDebug, "Animation %s has only one or none face!\n", animations[num_animations].name); } if (num_frames%animations[num_animations].facings) { LOG(llevDebug, "Animation %s frame numbers (%d) is not a multiple of facings (%d)\n", animations[num_animations].name, num_frames, animations[num_animations].facings); } num_frames = 0; } else if (!strncmp(buf, "facings", 7)) { if (!(animations[num_animations].facings = atoi(buf+7))) { LOG(llevDebug, "Animation %s has 0 facings, line=%s\n", animations[num_animations].name, buf); animations[num_animations].facings = 1; } } else { unsigned face = find_face(buf, (unsigned)-1); if (face == (unsigned)-1) { LOG(llevError, "Could not find face %s for animation %s\n", buf, animations[num_animations].name); face = find_face("bug.111", 0); } faces[num_frames++] = &new_faces[face]; } } fclose(fp); LOG(llevDebug, "done. got (%d)\n", num_animations); } /** * Utility function to compare 2 animations based on their name. * Used for sorting/searching. */ static int anim_compare(const Animations *a, const Animations *b) { return strcmp(a->name, b->name); } /** * Finds the animation id that matches name. Will LOG() an error if not found. * @param name * the animation's name. * @return * animation number, or 0 if no match found (animation 0 is initialized as the 'bug' face). * @see try_find_animation */ int find_animation(const char *name) { int face = try_find_animation(name); if (!face) LOG(llevError, "Unable to find animation %s\n", name); return face; } /** * Tries to find the animation id that matches name, don't LOG() an error if not found. * @param name * the animation's name. * @return * animation number, or 0 if no match found (animation 0 is initialized as the 'bug' face). * @see find_animation */ int try_find_animation(const char *name) { Animations search, *match; search.name = name; match = (Animations *)bsearch(&search, animations, (num_animations+1), sizeof(Animations), (int (*)(const void *, const void *))anim_compare); if (match) return match->num; return 0; } /** * Updates the face-variable of an object. * If the object is the head of a multi-object, all objects are animated. * The object's state is not changed, but merely updated if needed (out of bounds of * new animation, reached end of animation, ...). * This function correctly handles FLAG_IS_TURNABLE too. * * @param op is the object to animate. * @param dir is the direction the object is facing. This is generally same as * op->direction, but in some cases, op->facing is used instead - the * caller has a better idea which one it really wants to be using, * so let it pass along the right one. This parameter is ignored if * the object has a head or is turnable. */ void animate_object(object *op, int dir) { int max_state; /* Max animation state object should be drawn in */ int base_state; /* starting index # to draw from */ int oldface = op->face->number; if (!op->animation_id || !NUM_ANIMATIONS(op)) { StringBuffer *sb; char *diff; LOG(llevError, "Object lacks animation.\n"); sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "%s", diff); free(diff); return; } if (op->head) { dir = op->head->direction; if (NUM_ANIMATIONS(op) == NUM_ANIMATIONS(op->head)) op->state = op->head->state; } else if (QUERY_FLAG(op, FLAG_IS_TURNABLE)) { dir = op->direction; } /* If object is turning, then max animation state is half through the * animations. Otherwise, we can use all the animations. */ max_state = NUM_ANIMATIONS(op)/NUM_FACINGS(op); base_state = 0; /* at least in the older aniamtions that used is_turning, the first half * of the animations were left facing, the second half right facing. * Note in old the is_turning, it was set so that the animation for a monster * was always towards the enemy - now it is whatever direction the monster * is facing. */ if (NUM_FACINGS(op) == 2) { if (dir < 5) base_state = 0; else base_state = NUM_ANIMATIONS(op)/2; } else if (NUM_FACINGS(op) == 4) { if (dir == 0) base_state = 0; else base_state = ((dir-1)/2)*(NUM_ANIMATIONS(op)/4); } else if (NUM_FACINGS(op) == 8) { if (dir == 0) base_state = 0; else base_state = (dir-1)*(NUM_ANIMATIONS(op)/8); } else if (QUERY_FLAG(op, FLAG_IS_TURNABLE)) { base_state = (NUM_ANIMATIONS(op) / 9) * (dir); max_state = NUM_ANIMATIONS(op) / 9; } /* If beyond drawable states, reset */ if (op->state >= max_state) { op->state = 0; if (op->temp_animation_id) { op->temp_animation_id = 0; animate_object(op, dir); return; } } SET_ANIMATION(op, op->state+base_state); if (op->face == blank_face) op->invisible = 1; /* This block covers monsters (eg, pixies) which are supposed to * cycle from visible to invisible and back to being visible. * as such, disable it for players, as then players would become * visible. */ else if (op->type != PLAYER && QUERY_FLAG((&op->arch->clone), FLAG_ALIVE)) { if (op->face->number == 0) { op->invisible = 1; CLEAR_FLAG(op, FLAG_ALIVE); } else { op->invisible = 0; SET_FLAG(op, FLAG_ALIVE); } } if (op->more) animate_object(op->more, dir); /* object_update() will also recursively update all the pieces. * as such, we call it last, and only call it for the head * piece, and not for the other tail pieces. */ if (!op->head && (oldface != op->face->number)) object_update(op, UP_OBJ_FACE); } /** * Applies a compound animation to an object. * * @param who * object to apply the animation to. Must not be NULL. * @param suffix * animation suffix to apply. Must not be NULL. */ void apply_anim_suffix(object *who, sstring suffix) { int anim; object *head, *orig; char buf[MAX_BUF]; assert(who); assert(suffix); if (who->temp_animation_id != 0) /* don't overlap animation, let the current one finish. */ return; head = HEAD(who); orig = head; snprintf(buf, MAX_BUF, "%s_%s", animations[head->animation_id].name, suffix); anim = try_find_animation(buf); if (anim) { for (; head != NULL; head = head->more) { head->temp_animation_id = anim; head->temp_anim_speed = animations[anim].num_animations/animations[anim].facings; head->last_anim = 0; head->state = 0; } animate_object(orig, orig->facing); } } crossfire-1.70.0/common/loader.l0000644000014500000120000022373311731300526013425 00000000000000%{ /* * static char *rcsid_object_c = * "$Id: loader.l 16870 2012-01-28 11:46:31Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects. object_sub/add_weight will transcend the environment updating the carrying variable. */ #include #include #include #include #include "stringbuffer.h" #define YY_DECL int lex_load(int *depth, object **items, int maxdepth, int map_flags, int linemode) static char *yval(void); static int lex_error; static char msgbuf[HUGE_BUF]; size_t msglen = 0, total_msglen = 0; static char lorebuf[HUGE_BUF]; /** Maps the MOVE_* values to names */ static const char *const move_name[] = { "walk", "fly_low", "fly_high", "swim", "boat", NULL }; /** * This table is only necessary to convert objects that existed before the * spell object conversion to the new object. It was not practical * to go through every mapping looking for every potion, rod, wand, etc * that had a sp set and update to the new value. So this maps the * old spell numbers to the name of the new archs. * If you are adding a new spell, you should not modify this - your * new spell won't have been used, and thus won't have any legacy object. * NULL entries in this table are valid - to denote objects that should * not be updated for whatever reason. * * @todo * is this still required? it's used, but can it happen? */ const char *const spell_mapping[] = { "spell_magic_bullet", /* 0 */ "spell_small_fireball", /* 1 */ "spell_medium_fireball", /* 2 */ "spell_large_fireball", /* 3 */ "spell_burning_hands", /* 4 */ "spell_sm_lightning", /* 5 */ "spell_large_lightning", /* 6 */ "spell_magic_missile", /* 7 */ "spell_create_bomb", /* 8 */ "spell_summon_golem", /* 9 */ "spell_summon_fire_elemental", /* 10 */ "spell_summon_earth_elemental", /* 11 */ "spell_summon_water_elemental", /* 12 */ "spell_summon_air_elemental", /* 13 */ "spell_dimension_door", /* 14 */ "spell_create_earth_wall", /* 15 */ "spell_paralyze", /* 16 */ "spell_icestorm", /* 17 */ "spell_magic_mapping", /* 18 */ "spell_turn_undead", /* 19 */ "spell_fear", /* 20 */ "spell_poison_cloud", /* 21 */ "spell_wonder", /* 22 */ "spell_destruction", /* 23 */ "spell_perceive_self", /* 24 */ "spell_word_of_recall", /* 25 */ "spell_invisible", /* 26 */ "spell_invisible_to_undead", /* 27 */ "spell_probe", /* 28 */ "spell_lg_magic_bullet", /* 29 */ "spell_improved_invisibility", /* 30 */ "spell_holy_word", /* 31 */ "spell_minor_healing", /* 32 */ "spell_medium_healing", /* 33 */ "spell_major_healing", /* 34 */ "spell_heal", /* 35 */ "spell_create_food", /* 36 */ "spell_earth_to_dust", /* 37 */ "spell_armour", /* 38 */ "spell_strength", /* 39 */ "spell_dexterity", /* 40 */ "spell_constitution", /* 41 */ "spell_charisma", /* 42 */ "spell_create_fire_wall", /* 43 */ "spell_create_frost_wall", /* 44 */ "spell_protection_from_cold", /* 45 */ "spell_protection_from_electricity", /* 46 */ "spell_protection_from_fire", /* 47 */ "spell_protection_from_poison", /* 48 */ "spell_protection_from_slow", /* 49 */ "spell_protection_from_paralysis", /* 50 */ "spell_protection_from_draining", /* 51 */ "spell_protection_from_magic", /* 52 */ "spell_protection_from_attack", /* 53 */ "spell_levitate", /* 54 */ "spell_small_speedball", /* 55 */ "spell_large_speedball", /* 56 */ "spell_hellfire", /* 57 */ "spell_dragonbreath", /* 58 */ "spell_large_icestorm", /* 59 */ "spell_charging", /* 60 */ "spell_polymorph", /* 61 */ "spell_cancellation", /* 62 */ "spell_confusion", /* 63 */ "spell_mass_confusion", /* 64 */ "spell_summon_pet_monster", /* 65 */ "spell_slow", /* 66 */ "spell_regenerate_spellpoints", /* 67 */ "spell_cure_poison", /* 68 */ "spell_protection_from_confusion", /* 69 */ "spell_protection_from_cancellation", /* 70 */ "spell_protection_from_depletion", /* 71 */ "spell_alchemy", /* 72 */ "spell_remove_curse", /* 73 */ "spell_remove_damnation", /* 74 */ "spell_identify", /* 75 */ "spell_detect_magic", /* 76 */ "spell_detect_monster", /* 77 */ "spell_detect_evil", /* 78 */ "spell_detect_curse", /* 79 */ "spell_heroism", /* 80 */ "spell_aggravation", /* 81 */ "spell_firebolt", /* 82 */ "spell_frostbolt", /* 83 */ "spell_shockwave", /* 84 */ "spell_color_spray", /* 85 */ "spell_haste", /* 86 */ "spell_face_of_death", /* 87 */ "spell_ball_lightning", /* 88 */ "spell_meteor_swarm", /* 89 */ "spell_comet", /* 90 */ "spell_mystic_fist", /* 91 */ "spell_raise_dead", /* 92 */ "spell_resurrection", /* 93 */ "spell_reincarnation", /* 94 */ "spell_immunity_to_cold", /* 95 */ "spell_immunity_to_electricity", /* 96 */ "spell_immunity_to_fire", /* 97 */ "spell_immunity_to_poison", /* 98 */ "spell_immunity_to_slow", /* 99 */ "spell_immunity_to_paralysis", /* 100 */ "spell_immunity_to_draining", /* 101 */ "spell_immunity_to_magic", /* 102 */ "spell_immunity_to_attack", /* 103 */ "spell_invulnerability", /* 104 */ "spell_defense", /* 105 */ "spell_rune_of_fire", /* 106 */ "spell_rune_of_frost", /* 107 */ "spell_rune_of_shocking", /* 108 */ "spell_rune_of_blasting", /* 109 */ "spell_rune_of_death", /* 110 */ "spell_marking_rune", /* 111 */ "spell_build_director", /* 112 */ "spell_create_pool_of_chaos", /* 113 */ "spell_build_bullet_wall", /* 114 */ "spell_build_lightning_wall", /* 115 */ "spell_build_fireball_wall", /* 116 */ "spell_magic_rune", /* 117 */ "spell_rune_of_magic_drain", /* 118 */ "spell_antimagic_rune", /* 119 */ "spell_rune_of_transference", /* 120 */ "spell_transference", /* 121 */ "spell_magic_drain", /* 122 */ "spell_counterspell", /* 123 */ "spell_disarm", /* 124 */ "spell_cure_confusion", /* 125 */ "spell_restoration", /* 126 */ "was summon evil monster", /* 127 */ /* Not implenented as nothing used it */ "spell_counterwall", /* 128 */ "spell_cause_light_wounds", /* 129 */ "spell_cause_medium_wounds", /* 130 */ "spell_cause_heavy_wounds", /* 131 */ "spell_charm_monsters", /* 132 */ "spell_banishment", /* 133 */ "spell_create_missile", /* 134 */ "spell_show_invisible", /* 135 */ "spell_xray", /* 136 */ "spell_pacify", /* 137 */ "spell_summon_fog", /* 138 */ "spell_steambolt", /* 139 */ "spell_command_undead", /* 140 */ "spell_holy_orb", /* 141 */ "spell_summon_avatar", /* 142 */ "spell_holy_possession", /* 143 */ "spell_bless", /* 144 */ "spell_curse", /* 145 */ "spell_regeneration", /* 146 */ "spell_consecrate", /* 147 */ "spell_summon_cult_monsters", /* 148 */ "spell_cause_critical_wounds", /* 149 */ "spell_holy_wrath", /* 150 */ "spell_retributive_strike", /* 151 */ "spell_finger_of_death", /* 152 */ "spell_insect_plague", /* 153 */ "spell_call_holy_servant", /* 154 */ "spell_wall_of_thorns", /* 155 */ "spell_staff_to_snake", /* 156 */ "spell_light", /* 157 */ "spell_darkness", /* 158 */ "spell_nightfall", /* 159 */ "spell_daylight", /* 160 */ "spell_sunspear", /* 161 */ "spell_faery_fire", /* 162 */ "spell_cure_blindness", /* 163 */ "spell_dark_vision", /* 164 */ "spell_bullet_swarm", /* 165 */ "spell_bullet_storm", /* 166 */ "spell_cause_many_wounds", /* 167 */ "spell_small_snowstorm", /* 168 */ "spell_medium_snowstorm", /* 169 */ "spell_large_snowstorm", /* 170 */ "spell_cure_disease", /* 171 */ "spell_cause_red_death", /* 172 */ "spell_cause_flu", /* 173 */ "spell_cause_black_death", /* 174 */ "spell_cause_leprosy", /* 175 */ "spell_cause_smallpox", /* 176 */ "spell_cause_white_death", /* 177 */ "spell_cause_anthrax", /* 178 */ "spell_cause_typhoid", /* 179 */ "spell_mana_blast", /* 180 */ "spell_small_manaball", /* 181 */ "spell_medium_manaball", /* 182 */ "spell_large_manaball", /* 183 */ "spell_manabolt", /* 184 */ "spell_dancing_sword", /* 185 */ "spell_animate_weapon", /* 186 */ "spell_cause_cold", /* 187 */ "spell_divine_shock", /* 188 */ "spell_windstorm", /* 189 */ "spell_sanctuary", /* 190 */ "spell_peace", /* 191 */ "spell_spiderweb", /* 192 */ "spell_conflict", /* 193 */ "spell_rage", /* 194 */ "spell_forked_lightning", /* 195 */ "spell_poison_fog", /* 196 */ "spell_flaming_aura", /* 197 */ "spell_vitriol", /* 198 */ "spell_vitriol_splash", /* 199 */ "spell_iron_skin", /* 200 */ "spell_wrathful_eye", /* 201 */ "spell_town_portal", /* 202 */ "spell_missile_swarm", /* 203 */ "spell_cause_rabies", /* 204 */ "spell_glyph", /* 205 */ NULL }; /** Utility macro to transform a bit into a flag. */ #define SET_OR_CLEAR_FLAG(op, flag, val) \ { if (val) SET_FLAG(op, flag); else CLEAR_FLAG(op, flag); } /** * SET_RESIST is really only really needed for transition code. We normally * don't care about multiple values overwriting each other, but this is * to catch items that have multiple protection/immune/vulnerable. * This can be simplified later on to just do the set after all the archs * and maps have been updated. * We always keep the last value because otherwise the value from the * arch may take precedence. * Unfortunately, we will report warnings here simply because an object has * been modified from the arch. */ #define SET_RESIST(op, type, val) op->resist[type] = val; /** * Insert discrete damage. */ static void set_damage(object *op, int type, int val) { if (!op->discrete_damage) { op->discrete_damage = calloc(1, sizeof(sint16)*NROFATTACKS); } op->discrete_damage[type] = val; } /** Next value as integer. */ #define IVAL atoi(yval()) /** Next value as float. */ #define FVAL atof(yval()) extern int arch_init; extern int artifact_init; /** * Fills in the body information for one slot. * * @param op * object * @param params * the body part, which should be in the ::body_locations structure. */ static void set_body_info(object *op, char *params) { int i; char *cp; /* go to first space character */ for (cp = params; !isspace(*cp); cp++) ; *cp++ = 0; /* null it out */ for (i = 0; i < NUM_BODY_LOCATIONS; i++) { if (!strcmp(params, body_locations[i].save_name)) { op->body_info[i] = atoi(cp); return; /* Only one line passed in params */ } } LOG(llevError, "set_body_info called with bogus params: %s\n", params); } /** * This function checks the object after it has been loaded (when we * get the 'end' in the input stream). This function can be used to * deal with legacy objects where fields may have changed. It can also be used * to check for objects to make sure there are no common errors. * * @param op * object to check. */ static void check_loaded_object(object *op) { if (artifact_init) /* Artifacts are special beasts, let's not check them. */ return; if (!is_type_valid(op->type)) { LOG(llevError, "Invalid type %d for %s\n", op->type, op->arch ? op->arch->name : op->name); op->type = 0; } /* We do some specialized handling to handle legacy cases of name_pl. * If the object doesn't have a name_pl, we just use the object name - * this isn't perfect (things won't be properly pluralized), but works to * that degree (5 heart is still quite understandable). But the case we * also have to catch is if this object is not using the normal name for * the object. In that case, we also want to use the loaded name. * Otherwise, what happens is that the the plural name will lose * information (appear as just 'hearts' and not 'goblins heart') */ if (op->arch && op->name != op->arch->clone.name && op->name_pl == op->arch->clone.name_pl) { if (op->name_pl) free_string(op->name_pl); op->name_pl = NULL; } if (!op->name_pl && op->name) op->name_pl = add_string(op->name); /* objects now have a materialname. try to patch it in */ if (!(IS_WEAPON(op) && op->level > 0)) { set_materialname(op); } /* only do these when program is first run - a bit * excessive to do this at every run - most of this is * really just to catch any errors - program will still run, but * not in the ideal fashion. */ if ((op->type == WEAPON || op->type == BOW) && arch_init) { if (!op->skill) { LOG(llevError, "Weapon %s lacks a skill.\n", op->name); } else if ((!strcmp(op->skill, "one handed weapons") && op->body_info[1] != -1) || (!strcmp(op->skill, "two handed weapons") && op->body_info[1] != -2)) { LOG(llevError, "weapon %s arm usage does not match skill: %d, %s\n", op->name, op->body_info[1], op->skill); } } /* spellbooks & runes use slaying. But not to arch name, but to spell name */ if ((op->type == SPELLBOOK || op->type == RUNE) && op->slaying && !op->inv && !arch_init) { object *tmp; tmp = create_archetype_by_object_name(op->slaying); object_insert_in_ob(tmp, op); op->randomitems = NULL; /* So another spell isn't created for this object */ /* without this, value is all screwed up */ op->value = op->arch->clone.value*op->inv->value; } if (QUERY_FLAG(op, FLAG_MONSTER)) { if (op->stats.hp > op->stats.maxhp) LOG(llevDebug, "Monster %s has hp set higher than maxhp (%d>%d)\n", op->name, op->stats.hp, op->stats.maxhp); } if ((QUERY_FLAG(op, FLAG_GENERATOR) && QUERY_FLAG(op, FLAG_CONTENT_ON_GEN)) || op->type == CREATOR || op->type == CONVERTER) { /* Object will duplicate it's content as part of the * generation process. To do this, we must flag inventory * so it remains unevaluated concerning the randomitems and * the living (a demonlord shouldn't cast from inside generator!) */ object_set_flag_inv(op, FLAG_IS_A_TEMPLATE); } /* if the item is identified, ensure we got the correct face */ if (QUERY_FLAG(op, FLAG_IDENTIFIED)) object_give_identified_properties(op); /* Here we'll handle custom monsters. In order to handle them correctly, especially in the fix_object * method, we'll create a new temporary archetype containing defined values. * Of course this doesn't apply when loading archetypes or artifacts. */ if (arch_init == 0 && artifact_init == 0 && QUERY_FLAG(op, FLAG_MONSTER) && op->arch && !object_can_merge(op, &op->arch->clone)) { archetype *temp = get_archetype_struct(); temp->reference_count++; temp->name = add_string(op->arch->name); temp->tail_x = op->arch->tail_x; temp->tail_y = op->arch->tail_y; object_copy(op, &temp->clone); temp->clone.inv = NULL; temp->clone.env = NULL; temp->clone.x = 0; temp->clone.y = 0; temp->clone.map = NULL; if (FABS(temp->clone.speed) > MIN_ACTIVE_SPEED) { /* Clone has a speed, so need to clear that because it isn't on a map. * But we need to keep the value, because otherwise the customized object * will have no speed (fix_player() will use the 0 value). So set it * to zero, call object_update_speed() to remove it from active list, then * set its speed back to the original. */ temp->clone.speed = 0; object_update_speed(&temp->clone); temp->clone.speed = op->speed; } temp->more = op->arch->more; op->arch = temp; /* LOG(llevDebug, "created temporary archetype for %s at %d,%d\n", op->name, op->x, op->y); */ } } /** * This extracts the key/value from the yytext field - * calls object_set_value() to actually set the value. * Function basically has to find spaces, strip out extra, * etc. strchr doesn't work as good because could also * be tabs. * * @param op * object in which to insert the value. */ static void add_key_value(object *op) { char *key = NULL; char *value = NULL; char *cp; char *end; /* First, skip over leading whitespace. */ for (cp = yytext; isspace(*cp); cp++) { ; } key = cp; /* Now look for the end of the key/field name. */ for (; !isspace(*cp); cp++) { if (*cp == '\0') { /* Oops, ran out of string! Set the key with an empty value. */ object_set_value(op, key, NULL, TRUE); return; } } if (*cp == '\0') { object_set_value(op, key, NULL, TRUE); return; } /* Chop off the key, and start at the next character. */ *cp = '\0'; cp++; if (*cp == '\0') { /* Was followed by one space? */ object_set_value(op, key, NULL, TRUE); return; } /* Now looking for the value. Skip over whitespace. */ for (; isspace(*cp); cp++) { if (*cp == '\0') { /* Guess not. */ object_set_value(op, key, NULL, TRUE); return; } } value = cp; /* Got last character before null and strip * off tailing whitespace */ for (end = value+(strlen(cp)-1); isspace(*end); end--) { if (end == value) { /* *blink blink* Still no value? */ object_set_value(op, key, NULL, TRUE); return; } *end = '\0'; } object_set_value(op, key, value, TRUE); } /** * Handles the different move types an object can have. * * @param mt * field for which we are computing the value. * @param params * string containing the definition of the move type. */ static void set_move(MoveType *mt, char *params) { char *str; int i, negate; if (isdigit(*params)) { *mt = atoi(params); } else { *mt = 0; for (str = strtok(params, " "); str; str = strtok(NULL, " ")) { negate = 0; if (!strcasecmp(str, "all")) *mt |= MOVE_ALL; else { if (*str == '-') { negate = 1; str++; } for (i = 0; move_name[i] != NULL; i++) { if (!strcasecmp(move_name[i], str)) { if (negate) { *mt &= ~(1<^endmsg{WS}$ { BEGIN(INITIAL); object_set_msg(op, msgbuf); /* Just print a warning so we can be reasonably safe * about not overflowing the buffer. */ if (total_msglen > (HUGE_BUF/2)) LOG(llevDebug, "\n\tWarning message length > %d (max allowed=%d): %lu\n>%.80s<\n", HUGE_BUF/2, HUGE_BUF, (unsigned long)total_msglen, op->msg); } .* { safe_strcat(msgbuf, yytext, &msglen, HUGE_BUF); safe_strcat(msgbuf, "\n", &msglen, HUGE_BUF); total_msglen += strlen(yytext)+1; } ^lore{WS}$ { BEGIN(LORE); lorebuf[0] = '\0'; } ^endlore{WS}$ { BEGIN(INITIAL); op->lore = add_string(lorebuf); /* Just print a warning so we can be reasonably safe * about not overflowing the buffer. */ if (strlen(op->lore) > (HUGE_BUF/2)) LOG(llevDebug, "\n\tWarning lore length > %d (max allowed=%d): %lu\n>%.80s<\n", HUGE_BUF/2, HUGE_BUF, (unsigned long)strlen(op->lore), op->lore); } .* { strcat(lorebuf, yytext); strcat(lorebuf, "\n"); } ^object{S} { char *yv = yval(); if (*yv == '\0') { LOG(llevError, "Object lacks name.\n"); return LL_IGNORED; } if (!arch_init) { LOG(llevError, "Got object info when not in arch_init (%s)?\n", yv); } else { if (op->arch != NULL) op->arch->name = add_string(yv); op->name = add_string(yv); } } ^name{S} { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Name without val\n"); else FREE_AND_COPY(op->name, yv); } ^name_pl{S} { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Name without val\n"); else FREE_AND_COPY(op->name_pl, yv); } ^anim_suffix{S} { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Anim suffix without val\n"); else FREE_AND_COPY(op->anim_suffix, yv); } ^skill{S} FREE_AND_COPY(op->skill, yval()); ^custom_name{S} { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Custom name without val\n"); else FREE_AND_COPY(op->custom_name, yv); } ^race{S} FREE_AND_COPY(op->race, yval()); ^slaying{S} FREE_AND_COPY(op->slaying, yval()); ^arch{S} { /* If op->arch has been set, then this new object * must be part of the inventory. So process * appropriately. */ if (op->arch) { /* The logic is a follow: - in linemode, we are loading artifacts, so just increase depth, next calls with work on object in inventory, and linking done in the "end" part - when not in linemode, we are loading an archetype, or a map - if archetype loading, discard the object, it'll be handled by second_arch_pass() - else put object like usual */ object *tmp; char *yv = yval(); tmp = object_new(); tmp->arch = find_archetype(yv); if (tmp->arch != NULL) object_copy(&tmp->arch->clone, tmp); else { if (tmp->name) free_string(tmp->name); /* record the name of the broken object */ tmp->name = add_string(yv); } strcpy(msgbuf, ""); strcpy(lorebuf, ""); msglen = 0; total_msglen = 0; (*depth)++; items[*depth] = tmp; if (linemode == 0) { lex_load(depth, items, maxdepth, map_flags, linemode); (*depth)--; if (tmp->arch && (arch_init == 0)) { object_insert_in_ob(tmp, op); } else { if (arch_init == 0) LOG(llevDebug, "Discarding object without arch: %s\n", tmp->name ? tmp->name : "(null)"); object_free_drop_inventory(tmp); } } } else { /* This is the actual archetype definition then */ char *yv = yval(); op->arch = find_archetype(yv); if (op->arch != NULL) object_copy(&op->arch->clone, op); else if (!arch_init) { if (op->name) free_string(op->name); /* record the name of the broken object */ op->name = add_string(yv); } } } ^artifact{S} { const char *yv = yval(); const artifact *art = find_artifact(op, yv); if (art == NULL) { LOG(llevError, "can't find artifact %s [%d]\n for loading", yv, op->type); } else { give_artifact_abilities(op, art->item); } } ^other_arch{S} op->other_arch = find_archetype(yval()); ^animation{S} { if (strcmp (yval(), "NONE") == 0) { op->animation_id = 0; CLEAR_FLAG (op, FLAG_ANIMATE); } else { op->animation_id = find_animation (yval()); SET_FLAG (op, FLAG_ANIMATE); } } ^more{WS}$ { /* We need to record that this is a multipart object, * so the calling function can glue things back together */ ismore = 1; } ^end{WS}$ { check_loaded_object(op); if (linemode) { /* Linemode is only set for artifact loading. */ if ((*depth) > 0) { object_insert_in_ob(items[*depth], items[(*depth)-1]); } return LL_NORMAL; } if (ismore) return LL_MORE; else return LL_NORMAL; } ^last_heal{S} op->last_heal = IVAL; ^last_sp{S} op->last_sp = IVAL; ^last_grace{S} op->last_grace = IVAL; ^last_eat{S} op->last_eat = IVAL; ^speed{S} { op->speed = FVAL; if (!(map_flags&MAP_STYLE)) { if (op->speed < 0) op->speed_left = op->speed_left-RANDOM()%100/100.0; object_update_speed(op); } } ^speed_left{S} op->speed_left = FVAL; ^weapon_speed_left{S} op->weapon_speed_left = FVAL; ^weapon_speed{S} op->weapon_speed = FVAL; ^slow_move{S} { op->move_slow |= MOVE_WALK; op->move_slow_penalty = FVAL; } ^title{S} { char *y = yval(); if (*y == '\0') LOG(llevError, "Title without value.\n"); else FREE_AND_COPY(op->title, y); } ^face{S} { const char *name = yval(); int face = find_face(yval(), 0); op->face = &new_faces[face]; if (face == 0) LOG(llevError, "couldn't find face %s for %s\n", name, op->arch ? op->arch->name : op->name); } ^str{S} op->stats.Str = IVAL; ^dex{S} op->stats.Dex = IVAL; ^con{S} op->stats.Con = IVAL; ^wis{S} op->stats.Wis = IVAL; ^cha{S} op->stats.Cha = IVAL; ^int{S} op->stats.Int = IVAL; ^pow{S} op->stats.Pow = IVAL; ^hp{S} op->stats.hp = IVAL; ^maxhp{S} op->stats.maxhp = IVAL; ^sp{S} op->stats.sp = IVAL; ^maxsp{S} op->stats.maxsp = IVAL; ^grace{S} op->stats.grace = IVAL; ^maxgrace{S} op->stats.maxgrace = IVAL; ^exp{S} op->stats.exp = atoll(yval()); ^perm_exp{S} op->perm_exp = atoll(yval()); ^food{S} op->stats.food = IVAL; ^dam{S} op->stats.dam = IVAL; ^wc{S} op->stats.wc = IVAL; ^ac{S} op->stats.ac = IVAL; ^x{S} { op->x = IVAL; op->ox= op->x; } ^y{S} { op->y = IVAL; op->oy= op->y; } ^nrof{S} op->nrof= atol(yval()); ^level{S} op->level = IVAL; ^direction{S} op->direction = IVAL; ^type{S} op->type = IVAL; ^subtype{S} op->subtype = IVAL; ^material{S} op->material = IVAL; ^materialname{S} { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Materialname without val\n"); else FREE_AND_COPY(op->materialname, yv); } ^value{S} op->value = IVAL; ^weight{S} op->weight = atol(yval()); ^carrying{S} op->carrying = atol(yval()); ^attacktype{S} op->attacktype = IVAL; ^path_attuned{S} op->path_attuned = IVAL; ^path_repelled{S} op->path_repelled = IVAL; ^path_denied{S} op->path_denied = IVAL; ^invisible{S} op->invisible = IVAL; ^magic{S} op->magic = IVAL; ^state{S} op->state = IVAL; ^alive{S} SET_OR_CLEAR_FLAG(op, FLAG_ALIVE, IVAL); ^applied{S} SET_OR_CLEAR_FLAG(op, FLAG_APPLIED, IVAL); ^unpaid{S} SET_OR_CLEAR_FLAG(op, FLAG_UNPAID, IVAL); ^is_animated{S} SET_OR_CLEAR_FLAG(op, FLAG_ANIMATE, IVAL); ^no_pick{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_PICK, IVAL); ^client_anim_sync{S} SET_OR_CLEAR_FLAG(op, FLAG_CLIENT_ANIM_SYNC, IVAL); ^client_anim_random{S} SET_OR_CLEAR_FLAG(op, FLAG_CLIENT_ANIM_RANDOM, IVAL); %{ /* These are the new values */ %} ^move_block{S} set_move(&op->move_block, yval()); ^move_allow{S} set_move(&op->move_allow, yval()); ^move_type{S} set_move(&op->move_type, yval()); ^move_on{S} set_move(&op->move_on, yval()); ^move_off{S} set_move(&op->move_off, yval()); ^move_slow{S} set_move(&op->move_slow, yval()); ^move_slow_penalty{S} op->move_slow_penalty = FVAL; ^monster{S} SET_OR_CLEAR_FLAG(op, FLAG_MONSTER, IVAL); ^neutral{S} SET_OR_CLEAR_FLAG(op, FLAG_NEUTRAL, IVAL); ^no_attack{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_ATTACK, IVAL); ^no_damage{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_DAMAGE, IVAL); ^friendly{S} { if (IVAL) { SET_FLAG(op, FLAG_FRIENDLY); if (op->type != PLAYER) { LOG(llevDebug, " Adding friendly object %s.\n", op->name); add_friendly_object(op); } } else CLEAR_FLAG(op, FLAG_FRIENDLY); } ^generator{S} SET_OR_CLEAR_FLAG(op, FLAG_GENERATOR, IVAL); ^use_content_on_gen{S} SET_OR_CLEAR_FLAG (op, FLAG_CONTENT_ON_GEN, IVAL); ^is_thrown{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_THROWN, IVAL); ^auto_apply{S} SET_OR_CLEAR_FLAG(op, FLAG_AUTO_APPLY, IVAL); ^treasure{S} SET_OR_CLEAR_FLAG(op, FLAG_TREASURE, IVAL); ^see_invisible{S} SET_OR_CLEAR_FLAG(op, FLAG_SEE_INVISIBLE, IVAL); ^can_roll{S} SET_OR_CLEAR_FLAG(op, FLAG_CAN_ROLL, IVAL); ^overlay_floor{S} SET_OR_CLEAR_FLAG(op, FLAG_OVERLAY_FLOOR, IVAL); ^is_turnable{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_TURNABLE, IVAL); ^is_used_up{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_USED_UP, IVAL); ^identified{S} { if (IVAL) { SET_FLAG(op, FLAG_IDENTIFIED); CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL); } else CLEAR_FLAG(op, FLAG_IDENTIFIED); } ^reflecting{S} SET_OR_CLEAR_FLAG(op, FLAG_REFLECTING, IVAL); ^changing{S} SET_OR_CLEAR_FLAG(op, FLAG_CHANGING, IVAL); ^splitting{S} SET_OR_CLEAR_FLAG(op, FLAG_SPLITTING, IVAL); ^hitback{S} SET_OR_CLEAR_FLAG(op, FLAG_HITBACK, IVAL); ^startequip{S} SET_OR_CLEAR_FLAG(op, FLAG_STARTEQUIP, IVAL); ^blocksview{S} SET_OR_CLEAR_FLAG(op, FLAG_BLOCKSVIEW, IVAL); ^editor_folder{S} { /* This field is used by Gridarta, so it's not an error. */ } ^undead{S} SET_OR_CLEAR_FLAG(op, FLAG_UNDEAD, IVAL); ^scared{S} SET_OR_CLEAR_FLAG(op, FLAG_SCARED, IVAL); ^unaggressive{S} SET_OR_CLEAR_FLAG(op, FLAG_UNAGGRESSIVE, IVAL); ^reflect_missile{S} SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL); ^reflect_spell{S} SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL); ^no_magic{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_MAGIC, IVAL); ^wiz{S} { if (IVAL) { SET_FLAG(op, FLAG_WIZ); SET_FLAG(op, FLAG_WAS_WIZ); SET_FLAG(op, FLAG_WIZPASS); SET_FLAG(op, FLAG_WIZCAST); } else { CLEAR_FLAG(op, FLAG_WIZ); CLEAR_FLAG(op, FLAG_WIZPASS); CLEAR_FLAG(op, FLAG_WIZCAST); } } ^was_wiz{S} SET_OR_CLEAR_FLAG(op, FLAG_WAS_WIZ, IVAL); ^no_fix_player{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_FIX_PLAYER, IVAL); ^is_lightable{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_LIGHTABLE, IVAL); ^tear_down{S} SET_OR_CLEAR_FLAG(op, FLAG_TEAR_DOWN, IVAL); ^luck{S} op->stats.luck = IVAL; ^run_away{S} op->run_away = IVAL; ^pick_up{S} op->pick_up = IVAL; ^item_power{S} op->item_power = IVAL; ^gen_sp_armour{S} op->gen_sp_armour = IVAL; ^anim_speed{S} op->anim_speed = IVAL; ^container{S} op->weight_limit = IVAL; ^no_drop{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_DROP, IVAL); ^will_apply{S} op->will_apply = IVAL; ^random_movement{S} SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL); ^can_use_shield{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_SHIELD, IVAL); ^can_cast_spell{S} SET_OR_CLEAR_FLAG(op, FLAG_CAST_SPELL, IVAL); ^can_use_scroll{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_SCROLL, IVAL); ^can_use_range{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_RANGE, IVAL); ^can_use_bow{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_BOW, IVAL); ^can_use_armour{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_ARMOUR, IVAL); ^can_use_weapon{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_WEAPON, IVAL); ^can_use_ring{S} SET_OR_CLEAR_FLAG(op, FLAG_USE_RING, IVAL); ^has_ready_bow{S} SET_OR_CLEAR_FLAG(op, FLAG_READY_BOW, IVAL); ^xrays{S} SET_OR_CLEAR_FLAG(op, FLAG_XRAYS, IVAL); ^is_floor{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_FLOOR, IVAL); ^lifesave{S} SET_OR_CLEAR_FLAG(op, FLAG_LIFESAVE, IVAL); ^no_strength{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_STRENGTH, IVAL); ^sleep{S} SET_OR_CLEAR_FLAG(op, FLAG_SLEEP, IVAL); ^stand_still{S} SET_OR_CLEAR_FLAG(op, FLAG_STAND_STILL, IVAL); ^only_attack{S} SET_OR_CLEAR_FLAG(op, FLAG_ONLY_ATTACK, IVAL); ^activate_on_push{S} SET_OR_CLEAR_FLAG(op, FLAG_ACTIVATE_ON_PUSH, IVAL); ^activate_on_release{S} SET_OR_CLEAR_FLAG(op, FLAG_ACTIVATE_ON_RELEASE, IVAL); /* Start of various attacktypes */ ^resist_physical{S} SET_RESIST(op, ATNR_PHYSICAL, IVAL); ^resist_magic{S} SET_RESIST(op, ATNR_MAGIC, IVAL); ^resist_fire{S} SET_RESIST(op, ATNR_FIRE, IVAL); ^resist_electricity{S} SET_RESIST(op, ATNR_ELECTRICITY, IVAL); ^resist_cold{S} SET_RESIST(op, ATNR_COLD, IVAL); ^resist_confusion{S} SET_RESIST(op, ATNR_CONFUSION, IVAL); ^resist_acid{S} SET_RESIST(op, ATNR_ACID, IVAL); ^resist_drain{S} SET_RESIST(op, ATNR_DRAIN, IVAL); ^resist_weaponmagic{S} SET_RESIST(op, ATNR_WEAPONMAGIC, IVAL); ^resist_ghosthit{S} SET_RESIST(op, ATNR_GHOSTHIT, IVAL); ^resist_poison{S} SET_RESIST(op, ATNR_POISON, IVAL); ^resist_slow{S} SET_RESIST(op, ATNR_SLOW, IVAL); ^resist_paralyze{S} SET_RESIST(op, ATNR_PARALYZE, IVAL); ^resist_turn_undead{S} SET_RESIST(op, ATNR_TURN_UNDEAD, IVAL); ^resist_fear{S} SET_RESIST(op, ATNR_FEAR, IVAL); ^resist_cancellation{S} SET_RESIST(op, ATNR_CANCELLATION, IVAL); ^resist_deplete{S} SET_RESIST(op, ATNR_DEPLETE, IVAL); ^resist_death{S} SET_RESIST(op, ATNR_DEATH, IVAL); ^resist_chaos{S} SET_RESIST(op, ATNR_CHAOS, IVAL); ^resist_counterspell{S} SET_RESIST(op, ATNR_COUNTERSPELL, IVAL); ^resist_godpower{S} SET_RESIST(op, ATNR_GODPOWER, IVAL); ^resist_holyword{S} SET_RESIST(op, ATNR_HOLYWORD, IVAL); ^resist_blind{S} SET_RESIST(op, ATNR_BLIND, IVAL); ^resist_internal{S} SET_RESIST(op, ATNR_INTERNAL, IVAL); ^resist_life_stealing{S} SET_RESIST(op, ATNR_LIFE_STEALING, IVAL); ^resist_disease{S} SET_RESIST(op, ATNR_DISEASE, IVAL); ^attack_movement{S} op->attack_movement = IVAL; ^move_state{S} op->move_status = IVAL; ^confused{S} SET_OR_CLEAR_FLAG(op, FLAG_CONFUSED, IVAL); ^stealth{S} SET_OR_CLEAR_FLAG(op, FLAG_STEALTH, IVAL); ^connected{S} add_button_link(op, op->map, IVAL); ^cursed{S} SET_OR_CLEAR_FLAG(op, FLAG_CURSED, IVAL); ^damned{S} SET_OR_CLEAR_FLAG(op, FLAG_DAMNED, IVAL); ^blessed{S} SET_OR_CLEAR_FLAG(op, FLAG_BLESSED, IVAL); ^see_anywhere{S} SET_OR_CLEAR_FLAG(op, FLAG_SEE_ANYWHERE, IVAL); ^known_magical{S} SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL, IVAL); ^known_cursed{S} SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_CURSED, IVAL); ^known_blessed{S} SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_BLESSED, IVAL); ^can_use_skill{S} SET_OR_CLEAR_FLAG(op, FLAG_CAN_USE_SKILL, IVAL); ^been_applied{S} SET_OR_CLEAR_FLAG(op, FLAG_BEEN_APPLIED, IVAL); ^has_ready_scroll{S} SET_OR_CLEAR_FLAG(op, FLAG_READY_SCROLL, IVAL); ^expmul{S} op->expmul = FVAL; ^unique{S} SET_OR_CLEAR_FLAG(op, FLAG_UNIQUE, IVAL); ^make_invisible{S} SET_OR_CLEAR_FLAG(op, FLAG_MAKE_INVIS, IVAL); ^inv_locked{S} SET_OR_CLEAR_FLAG(op, FLAG_INV_LOCKED, IVAL); ^is_wooded{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_WOODED, IVAL); ^is_hilly{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_HILLY, IVAL); ^is_water{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_WATER, IVAL); ^has_ready_skill{S} SET_OR_CLEAR_FLAG(op, FLAG_READY_SKILL, IVAL); ^has_ready_weapon{S} SET_OR_CLEAR_FLAG(op, FLAG_READY_WEAPON, IVAL); ^no_skill_ident{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT, IVAL); ^glow_radius{S} op->glow_radius = IVAL; ^is_blind{S} SET_OR_CLEAR_FLAG(op, FLAG_BLIND, IVAL); ^can_see_in_dark{S} SET_OR_CLEAR_FLAG(op, FLAG_SEE_IN_DARK, IVAL); ^is_cauldron{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_CAULDRON, IVAL); ^randomitems{S} op->randomitems = find_treasurelist(yval()); ^no_steal{S} SET_OR_CLEAR_FLAG(op, FLAG_NO_STEAL, IVAL); ^one_hit{S} SET_OR_CLEAR_FLAG(op, FLAG_ONE_HIT, IVAL); ^berserk{S} SET_OR_CLEAR_FLAG(op, FLAG_BERSERK, IVAL); ^can_knockback{S} { /* Some archetypes have these values in them */ } ^can_parry{S} { /* Probably the pupland archetypes - I imagined */ } ^can_impale{S} { /* That these are for the new combat code */ } ^can_cut{S} { /* just ignore for now */ } ^can_dam_armour{S} { } ^weapontype{S} op->weapontype = IVAL; ^casting_time{S} op->casting_time = FVAL; ^elevation{S} op->elevation = IVAL; ^smoothlevel{S} op->smoothlevel = IVAL; ^map_layer{S} { if (IVAL) op->map_layer = IVAL; else { int i; char *cp = yval(); for (i = 0; i < MAP_LAYERS; i++) { if (!strcasecmp(cp, map_layer_name[i])) { op->map_layer = i; break; } } if (i == MAP_LAYERS) { LOG(llevError, "Invalid map_layer name found: %s\n", cp); } } } ^client_type{S} op->client_type = IVAL; ^body_{A} set_body_info(op, yytext); ^duration{S} op->duration = IVAL; ^range{S} op->range = IVAL; ^range_modifier{S} op->range_modifier = IVAL; ^dam_modifier{S} op->dam_modifier = IVAL; ^duration_modifier{S} op->duration_modifier = IVAL; ^is_buildable{S} SET_OR_CLEAR_FLAG(op, FLAG_IS_BUILDABLE, IVAL); ^sound_chance{S} op->sound_chance = IVAL; /* Discrete damage */ ^damage_physical{S} set_damage(op, ATNR_PHYSICAL, IVAL); ^damage_magic{S} set_damage(op, ATNR_MAGIC, IVAL); ^damage_fire{S} set_damage(op, ATNR_FIRE, IVAL); ^damage_electricity{S} set_damage(op, ATNR_ELECTRICITY, IVAL); ^damage_cold{S} set_damage(op, ATNR_COLD, IVAL); ^damage_confusion{S} set_damage(op, ATNR_CONFUSION, IVAL); ^damage_acid{S} set_damage(op, ATNR_ACID, IVAL); ^damage_drain{S} set_damage(op, ATNR_DRAIN, IVAL); ^damage_weaponmagic{S} set_damage(op, ATNR_WEAPONMAGIC, IVAL); ^damage_ghosthit{S} set_damage(op, ATNR_GHOSTHIT, IVAL); ^damage_poison{S} set_damage(op, ATNR_POISON, IVAL); ^damage_slow{S} set_damage(op, ATNR_SLOW, IVAL); ^damage_paralyze{S} set_damage(op, ATNR_PARALYZE, IVAL); ^damage_turn_undead{S} set_damage(op, ATNR_TURN_UNDEAD, IVAL); ^damage_fear{S} set_damage(op, ATNR_FEAR, IVAL); ^damage_cancellation{S} set_damage(op, ATNR_CANCELLATION, IVAL); ^damage_deplete{S} set_damage(op, ATNR_DEPLETE, IVAL); ^damage_death{S} set_damage(op, ATNR_DEATH, IVAL); ^damage_chaos{S} set_damage(op, ATNR_CHAOS, IVAL); ^damage_counterspell{S} set_damage(op, ATNR_COUNTERSPELL, IVAL); ^damage_godpower{S} set_damage(op, ATNR_GODPOWER, IVAL); ^damage_holyword{S} set_damage(op, ATNR_HOLYWORD, IVAL); ^damage_blind{S} set_damage(op, ATNR_BLIND, IVAL); ^damage_internal{S} set_damage(op, ATNR_INTERNAL, IVAL); ^damage_life_stealing{S} set_damage(op, ATNR_LIFE_STEALING, IVAL); ^damage_disease{S} set_damage(op, ATNR_DISEASE, IVAL); <*>(^{WS}$)|\n { /* ignore empty lines, newlines we don't do above */ } #.*\n { } <> { /* If we got an error, return the error. Otherwise, return that we got EOF */ if (lex_error != 0) return lex_error; else return LL_EOF; } .* { add_key_value(op); } %% /** * Returns the next token for lex. * Our save file syntax is very simple, so we can use a very simple * processing mechanism here instead using something like bison * This skips over the space and returns the value, or "" if no value * is found. Modified 4/26/2000 to also strip spaces at end of * line */ static char *yval(void) { static char em[] = ""; char *cp, *end; /* First skip over start of line, like animation or name */ for (cp = yytext; *cp != ' '; cp++) { if (*cp == '\0') { return em; } } /* Skip over whitespace */ for (; *cp == ' '; cp++) { if (*cp == '\0') { return em; } } /* Got last character before null and strip * off tailing whitespace */ for (end = cp+strlen(cp)-1; *end == ' '; end--) { if (end == cp) return em; *end = '\0'; } return cp; } /** * Loads an object from the given file-pointer. * Variables will be read and parsed and patched into the object * until the string "end" is reached, or the end of the file. * * @param fp * file pointer from which to read. * @param op * where to read the data. * @param bufstate * used to determine various file attributes: * @li LO_REPATE (0): We are reading from the same buffer as the last call. * @li LO_LINEMODE (1): file that is being read from is multi purpose (ie, other functions * will also be reading from this (treasure file, artifacts.) * @li LO_NEWFILE (2): This is the first read from a particular file, so the buffers should be reset. * @li LO_NOREAD (3): Reset the buffers, but don't read from it. (op can be null) * @param map_flags * ? * @return * @li LL_NORMAL if object was read. * @li LL_EOF if an error occured. * @li LL_MORE if this is a multipart object. * * @todo * document map_flags */ int load_object(FILE *fp, object *op, int bufstate, int map_flags) { int retval; char inbuf[MAX_BUF]; #define MAXDEPTH 10 object *items[MAXDEPTH]; int depth = 0; items[0] = op, strcpy(msgbuf, ""); msglen = 0; total_msglen = 0; strcpy(lorebuf, ""); if (bufstate == LO_NEWFILE || bufstate == LO_NOREAD) { /* LOG(llevDebug, "Switching lex buffers\n");*/ yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); if (bufstate == LO_NOREAD) return LL_NORMAL; } if (bufstate == LO_LINEMODE) { YY_BUFFER_STATE yybufstate; yy_delete_buffer(YY_CURRENT_BUFFER); while (fgets(inbuf, MAX_BUF-3, fp)) { yybufstate = yy_scan_string(inbuf); retval = lex_load(&depth, items, MAXDEPTH, map_flags, 1); yy_delete_buffer(yybufstate); if (retval == LL_NORMAL) { if (depth == 0) return retval; else depth--; } } LOG(llevDebug, "Got eof while scanning strings\n"); return LL_EOF; } retval = lex_load(&depth, items, MAXDEPTH, map_flags, 0); /* LOG(llevDebug, " load completed, object=%s\n", op->name);*/ return retval; } /** * This takes a buffer, scans it for variables, and sets those variables * as appropriate in op. * * This function appears to be used in only 2 places - in crossedit to * override values and in c_wiz to mutate values. * * @param op * object to alter. * @param buf * modifications to apply. * @return * ? * @todo * document return value. */ int set_variable(object *op, const char *buf) { YY_BUFFER_STATE yybufstate, yycurbuf = YY_CURRENT_BUFFER; int retval, depth; object *items[MAXDEPTH]; strcpy(msgbuf, ""); msglen = 0; total_msglen = 0; strcpy(lorebuf, ""); items[0] = op; depth = 0; yy_push_state(INITIAL); yybufstate = yy_scan_string(buf); retval = lex_load(&depth, items, MAXDEPTH, 0, 0); yy_switch_to_buffer(yycurbuf); yy_delete_buffer(yybufstate); yy_pop_state(); return retval; } /* Start of C code */ /* This array equates the FLAG_ values with the V_ values. Use -1 to * put gaps in the array that should not be processed. * The order matches the order of the define values in 'define.h'. */ /** * This is a list of pointers that correspond to the FLAG_.. values. * This is a simple 1:1 mapping - if FLAG_FRIENDLY is 15, then * the 15'th element of this array should match that name. * If an entry is NULL, that is a flag not to loaded/saved. */ static const char *const flag_names[NUM_FLAGS+1] = { "alive", "wiz", NULL, NULL, "was_wiz", "applied", "unpaid", "can_use_shield", "no_pick", "client_anim_sync", "client_anim_random", /* 10 */ "is_animated", NULL /* FLAG_DIALOG_PARSED, not saved */, NULL /* flying */, "monster", "friendly", "generator", "is_thrown", "auto_apply", "treasure", "player sold", /* 20 */ "see_invisible", "can_roll", "overlay_floor", "is_turnable", NULL /* walk_off */, NULL /* fly_on */, NULL /*fly_off*/, "is_used_up", "identified", "reflecting", /* 30 */ "changing", "splitting", "hitback", "startequip", "blocksview", "undead", "scared", "unaggressive", "reflect_missile", "reflect_spell", /* 40 */ "no_magic", "no_fix_player", "is_lightable", "tear_down", "run_away", NULL /*pass_thru */, NULL /*can_pass_thru*/, NULL /*"pick_up"*/, "unique", "no_drop", /* 50 */ NULL /* wizcast*/, "can_cast_spell", "can_use_scroll", "can_use_range", "can_use_bow", "can_use_armour", "can_use_weapon", "can_use_ring", "has_ready_range", "has_ready_bow", /* 60 */ "xrays", NULL, "is_floor", "lifesave", "no_strength", "sleep", "stand_still", "random_movement", "only_attack", "confused", /* 70 */ "stealth", NULL, NULL, "cursed", "damned", "see_anywhere", "known_magical", "known_cursed", "can_use_skill", "been_applied", /* 80 */ "has_ready_scroll", NULL, NULL, NULL, "make_invisible", "inv_locked", "is_wooded", "is_hilly", "has_ready_skill", "has_ready_weapon", /* 90 */ "no_skill_ident", "is_blind", "can_see_in_dark", "is_cauldron", NULL, "no_steal", "one_hit", NULL, "berserk", "neutral", /* 100 */ "no_attack", "no_damage", NULL, NULL, "activate_on_push", "activate_on_release", "is_water", "use_content_on_gen", NULL, "is_buildable", /* 110 */ NULL, "blessed", "known_blessed" }; /** * Initialises the array of variable-names. Needed before any * objects can be loaded. Called by init_library(). * @todo * remove as it is empty. */ void init_vars(void) { } /** * Frees all memory allocated by the loader. */ void free_loader(void) { yy_delete_buffer(YY_CURRENT_BUFFER); /* Comment out this yylex_destroy(), as it results in link errors * on linux */ /* yylex_destroy();*/ } /** * This returns a string of the integer movement type * * @param sb * buffer that will contain the description. Must not be NULL. * @param mt * move to describe. */ static void get_string_move_type(StringBuffer *sb, MoveType mt) { static char retbuf[MAX_BUF], retbuf_all[MAX_BUF]; int i, all_count = 0, count; strcpy(retbuf, ""); strcpy(retbuf_all, " all"); /* Quick check, and probably fairly common */ if (mt == MOVE_ALL) { stringbuffer_append_string(sb, "all"); return; } if (mt == 0) { stringbuffer_append_string(sb, "0"); return; } /* We basically slide the bits down. Why look at MOVE_ALL? * because we may want to return a string like 'all -swim', * and if we just looked at mt, we couldn't get that. */ for (i = MOVE_ALL, count = 0; i != 0; i >>= 1, count++) { if (mt&(1<key_values; my_field != NULL; my_field = my_field->next) { /* Find the field in the opposing member. */ arch_field = object_get_key_value(op2, my_field->key); /* If there's no partnering field, or it's got a different value, save our field. */ if (arch_field == NULL || my_field->value != arch_field->value) { stringbuffer_append_string(sb, my_field->key); stringbuffer_append_string(sb, " "); /* If this is null, then saving it as a space should * cause it to be null again. */ if (my_field->value) stringbuffer_append_string(sb, my_field->value); stringbuffer_append_string(sb, "\n"); } } /* We don't need to worry about the arch's extra fields - they * will get taken care of the object_copy() function. */ if (op->name && op->name != op2->name) { ADD_STRINGLINE_ENTRY(sb, "name ", op->name); } if (op->name_pl && op->name_pl != op2->name_pl) { ADD_STRINGLINE_ENTRY(sb, "name_pl ", op->name_pl); } if (op->anim_suffix && op->anim_suffix != op2->anim_suffix) { ADD_STRINGLINE_ENTRY(sb, "anim_suffix ", op->anim_suffix); } if (op->custom_name && op->custom_name != op2->custom_name) { ADD_STRINGLINE_ENTRY(sb, "custom_name ", op->custom_name); } if (op->title && op->title != op2->title) { ADD_STRINGLINE_ENTRY(sb, "title ", op->title); } if (op->race && op->race != op2->race) { ADD_STRINGLINE_ENTRY(sb, "race ", op->race); } if (op->slaying && op->slaying != op2->slaying) { ADD_STRINGLINE_ENTRY(sb, "slaying ", op->slaying); } if (op->skill && op->skill != op2->skill) { ADD_STRINGLINE_ENTRY(sb, "skill ", op->skill); } if (op->msg && op->msg != op2->msg) { stringbuffer_append_string(sb, "msg\n"); stringbuffer_append_string(sb, op->msg); stringbuffer_append_string(sb, "endmsg\n"); } if (op->lore && op->lore != op2->lore) { stringbuffer_append_string(sb, "lore\n"); stringbuffer_append_string(sb, op->lore); stringbuffer_append_string(sb, "endlore\n"); } if (op->other_arch != op2->other_arch && op->other_arch != NULL && op->other_arch->name) { ADD_STRINGLINE_ENTRY(sb, "other_arch ", op->other_arch->name); } if (op->face != op2->face) { ADD_STRINGLINE_ENTRY(sb, "face ", op->face->name); } if (op->animation_id != op2->animation_id) { if (op->animation_id) { ADD_STRINGLINE_ENTRY(sb, "animation ", animations[GET_ANIM_ID(op)].name); if (!QUERY_FLAG (op, FLAG_ANIMATE)) { stringbuffer_append_string(sb, "is_animated 0\n"); } } else { stringbuffer_append_string(sb, "animation NONE\n"); } } if (op->stats.Str != op2->stats.Str) FAST_SAVE_LONG(sb, "Str ", op->stats.Str); if (op->stats.Dex != op2->stats.Dex) FAST_SAVE_LONG(sb, "Dex ", op->stats.Dex); if (op->stats.Con != op2->stats.Con) FAST_SAVE_LONG(sb, "Con ", op->stats.Con); if (op->stats.Wis != op2->stats.Wis) FAST_SAVE_LONG(sb, "Wis ", op->stats.Wis); if (op->stats.Pow != op2->stats.Pow) FAST_SAVE_LONG(sb, "Pow ", op->stats.Pow); if (op->stats.Cha != op2->stats.Cha) FAST_SAVE_LONG(sb, "Cha ", op->stats.Cha); if (op->stats.Int != op2->stats.Int) FAST_SAVE_LONG(sb, "Int ", op->stats.Int); if (op->stats.hp != op2->stats.hp) FAST_SAVE_LONG(sb, "hp ", op->stats.hp); if (op->stats.maxhp != op2->stats.maxhp) FAST_SAVE_LONG(sb, "maxhp ", op->stats.maxhp); if (op->stats.sp != op2->stats.sp) FAST_SAVE_LONG(sb, "sp ", op->stats.sp); if (op->stats.maxsp != op2->stats.maxsp) FAST_SAVE_LONG(sb, "maxsp ", op->stats.maxsp); if (op->stats.grace != op2->stats.grace) FAST_SAVE_LONG(sb, "grace ", op->stats.grace); if (op->stats.maxgrace != op2->stats.maxgrace) FAST_SAVE_LONG(sb, "maxgrace ", op->stats.maxgrace); if (op->stats.exp != op2->stats.exp) { snprintf(buf2, sizeof(buf2), "%"FMT64, op->stats.exp); ADD_STRINGLINE_ENTRY(sb, "exp ", buf2); } if (op->perm_exp != op2->perm_exp) { snprintf(buf2, sizeof(buf2), "%"FMT64, op->perm_exp); ADD_STRINGLINE_ENTRY(sb, "perm_exp ", buf2); } if (op->expmul != op2->expmul) FAST_SAVE_DOUBLE(sb, "expmul ", op->expmul); if (op->stats.food != op2->stats.food) FAST_SAVE_LONG(sb, "food ", op->stats.food); if (op->stats.dam != op2->stats.dam) FAST_SAVE_LONG(sb, "dam ", op->stats.dam); if (op->stats.luck != op2->stats.luck) FAST_SAVE_LONG(sb, "luck ", op->stats.luck); if (op->stats.wc != op2->stats.wc) FAST_SAVE_LONG(sb, "wc ", op->stats.wc); if (op->stats.ac != op2->stats.ac) FAST_SAVE_LONG(sb, "ac ", op->stats.ac); if (op->x != op2->x) FAST_SAVE_LONG(sb, "x ", op->x); if (op->y != op2->y) FAST_SAVE_LONG(sb, "y ", op->y); if (op->speed != op2->speed) { FAST_SAVE_DOUBLE(sb, "speed ", op->speed); } if (op->speed > 0 && op->speed_left != op2->speed_left) { FAST_SAVE_DOUBLE(sb, "speed_left ", op->speed_left); } if (op->weapon_speed != op2->weapon_speed) { FAST_SAVE_DOUBLE(sb, "weapon_speed ", op->weapon_speed); } if (op->weapon_speed > 0 && op->weapon_speed_left != op2->weapon_speed_left) { FAST_SAVE_DOUBLE(sb, "weapon_speed_left ", op->weapon_speed_left); } if (op->move_status != op2->move_status) FAST_SAVE_LONG(sb, "move_state ", op->move_status); if (op->attack_movement != op2->attack_movement) FAST_SAVE_LONG(sb, "attack_movement ", op->attack_movement); if (op->nrof != op2->nrof) FAST_SAVE_LONG(sb, "nrof ", op->nrof); if (op->level != op2->level) FAST_SAVE_LONG(sb, "level ", op->level); if (op->direction != op2->direction) FAST_SAVE_LONG(sb, "direction ", op->direction); if (op->type != op2->type) FAST_SAVE_LONG(sb, "type ", op->type); if (op->subtype != op2->subtype) FAST_SAVE_LONG(sb, "subtype ", op->subtype); if (op->attacktype != op2->attacktype) FAST_SAVE_LONG(sb, "attacktype ", op->attacktype); for (tmp = 0; tmp < NROFATTACKS; tmp++) { if (op->resist[tmp] != op2->resist[tmp]) { stringbuffer_append_string(sb, "resist_"); FAST_SAVE_LONG(sb, resist_save[tmp], op->resist[tmp]); } } if (op->path_attuned != op2->path_attuned) FAST_SAVE_LONG(sb, "path_attuned ", op->path_attuned); if (op->path_repelled != op2->path_repelled) FAST_SAVE_LONG(sb, "path_repelled ", op->path_repelled); if (op->path_denied != op2->path_denied) FAST_SAVE_LONG(sb, "path_denied ", op->path_denied); if (op->material != op2->material) FAST_SAVE_LONG(sb, "material ", op->material); if (op->materialname && op->materialname != op2->materialname) { ADD_STRINGLINE_ENTRY(sb, "materialname ", op->materialname); } if (op->value != op2->value) FAST_SAVE_LONG(sb, "value ", op->value); if (op->carrying != op2->carrying) FAST_SAVE_LONG(sb, "carrying ", op->carrying); if (op->weight != op2->weight) FAST_SAVE_LONG(sb, "weight ", op->weight); if (op->invisible != op2->invisible) FAST_SAVE_LONG(sb, "invisible ", op->invisible); if (op->state != op2->state) FAST_SAVE_LONG(sb, "state ", op->state); if (op->magic != op2->magic) FAST_SAVE_LONG(sb, "magic ", op->magic); if (op->last_heal != op2->last_heal) FAST_SAVE_LONG(sb, "last_heal ", op->last_heal); if (op->last_sp != op2->last_sp) FAST_SAVE_LONG(sb, "last_sp ", op->last_sp); if (op->last_grace != op2->last_grace) FAST_SAVE_LONG(sb, "last_grace ", op->last_grace); if (op->last_eat != op2->last_eat) FAST_SAVE_LONG(sb, "last_eat ", op->last_eat); if (QUERY_FLAG(op, FLAG_IS_LINKED) && (tmp = get_button_value(op))) FAST_SAVE_LONG(sb, "connected ", tmp); if (op->glow_radius != op2->glow_radius) FAST_SAVE_LONG(sb, "glow_radius ", op->glow_radius); if (op->randomitems != op2->randomitems) { ADD_STRINGLINE_ENTRY(sb, "randomitems ", op->randomitems ? op->randomitems->name : "none"); } if (op->run_away != op2->run_away) FAST_SAVE_LONG(sb, "run_away ", op->run_away); if (op->pick_up != op2->pick_up) FAST_SAVE_LONG(sb, "pick_up ", op->pick_up); if (op->weight_limit != op2->weight_limit) FAST_SAVE_LONG(sb, "container ", op->weight_limit); if (op->will_apply != op2->will_apply) FAST_SAVE_LONG(sb, "will_apply ", op->will_apply); if (op->smoothlevel != op2->smoothlevel) FAST_SAVE_LONG(sb, "smoothlevel ", op->smoothlevel); if (op->map_layer != op2->map_layer) ADD_STRINGLINE_ENTRY(sb, "map_layer ", map_layer_name[op->map_layer]); if (op->weapontype && op->weapontype != op2->weapontype) { FAST_SAVE_LONG(sb, "weapontype ", op->weapontype); } if (op->elevation && op->elevation != op2->elevation) { FAST_SAVE_LONG(sb, "elevation ", op->elevation); } if (op->client_type && op->client_type != op2->client_type) { FAST_SAVE_LONG(sb, "client_type ", op->client_type); } if (op->item_power != op2->item_power) { FAST_SAVE_LONG(sb, "item_power ", op->item_power); } if (op->duration != op2->duration) FAST_SAVE_LONG(sb, "duration ", op->duration); if (op->range != op2->range) FAST_SAVE_LONG(sb, "range ", op->range); if (op->range_modifier != op2->range_modifier) FAST_SAVE_LONG(sb, "range_modifier ", op->range_modifier); if (op->duration_modifier != op2->duration_modifier) FAST_SAVE_LONG(sb, "duration_modifier ", op->duration_modifier); if (op->dam_modifier != op2->dam_modifier) FAST_SAVE_LONG(sb, "dam_modifier ", op->dam_modifier); if (op->gen_sp_armour != op2->gen_sp_armour) { FAST_SAVE_LONG(sb, "gen_sp_armour ", op->gen_sp_armour); } /* I've kept the old int move type saving code commented out. * In an ideal world, we'd know if we want to do a quick * save (say to a temp map, where we don't care about strings), * or a slower save/dm dump, where printing out strings is handy. */ if (op->move_type != op2->move_type) { /*FAST_SAVE_LONG(sb, "move_type ", op->move_type)*/ stringbuffer_append_string(sb, "move_type "); get_string_move_type(sb, op->move_type); stringbuffer_append_string(sb, "\n"); } if (op->move_block != op2->move_block) { /*FAST_SAVE_LONG(sb, "move_block ", op->move_block)*/ stringbuffer_append_string(sb, "move_block "); get_string_move_type(sb, op->move_block); stringbuffer_append_string(sb, "\n"); } if (op->move_allow != op2->move_allow) { /*FAST_SAVE_LONG(sb, "move_allow ", op->move_allow);*/ stringbuffer_append_string(sb, "move_allow "); get_string_move_type(sb, op->move_allow); stringbuffer_append_string(sb, "\n"); } if (op->move_on != op2->move_on) { /*FAST_SAVE_LONG(sb, "move_on ", op->move_on);*/ stringbuffer_append_string(sb, "move_on "); get_string_move_type(sb, op->move_on); stringbuffer_append_string(sb, "\n"); } if (op->move_off != op2->move_off) { /*FAST_SAVE_LONG(sb, "move_off ", op->move_off);*/ stringbuffer_append_string(sb, "move_off "); get_string_move_type(sb, op->move_off); stringbuffer_append_string(sb, "\n"); } if (op->move_slow != op2->move_slow) { /*FAST_SAVE_LONG(sb, "move_slow ", op->move_slow);*/ stringbuffer_append_string(sb, "move_slow "); get_string_move_type(sb, op->move_slow); stringbuffer_append_string(sb, "\n"); } if (op->move_slow_penalty != op2->move_slow_penalty) { FAST_SAVE_DOUBLE(sb, "move_slow_penalty ", op->move_slow_penalty); } if (!COMPARE_FLAGS(op, op2)) { for (tmp = 0; tmp <= NUM_FLAGS; tmp++) { if (flag_names[tmp] && (QUERY_FLAG(op, tmp) != QUERY_FLAG(op2, tmp))) { ADD_STRINGLINE_ENTRY(sb, flag_names[tmp], QUERY_FLAG(op, tmp) ? " 1" : " 0"); } } } /* Save body locations */ for (i = 0; i < NUM_BODY_LOCATIONS; i++) { if (op->body_info[i] != op2->body_info[i]) { stringbuffer_append_string(sb, body_locations[i].save_name); FAST_SAVE_LONG(sb, " ", op->body_info[i]); } } /* Save discrete damage if applicable * Note that given how the discrete_damage allocation is done, there can't be any case where * op->discrete_damage == NULL && op2->discrete_damage != NULL. */ if (op->discrete_damage) { for (i = 0; i < NROFATTACKS; i++) { if (op2->discrete_damage == NULL || op2->discrete_damage[i] != op->discrete_damage[i]) { stringbuffer_append_string(sb, "damage_"); FAST_SAVE_LONG(sb, resist_save[i], op->discrete_damage[i]); } } } } /** * Dumps all variables in an object to a file. * * @param fp * file to write to. * @param op * object to save. * @param flag * combination of @ref SAVE_FLAG_xxx "SAVE_FLAG_xxx" flags. * @return * one of @ref SAVE_ERROR_xxx "SAVE_ERROR_xxx" values. */ int save_object(FILE *fp, object *op, int flag) { archetype *at; char *cp; int res; StringBuffer *sb; /* Even if the object does have an owner, it would seem that we should * still save it. */ if (object_get_owner(op) != NULL || fp == NULL) return SAVE_ERROR_OK; /* If it is unpaid and we don't want to save those, just return. */ if (!(flag&SAVE_FLAG_SAVE_UNPAID) && (QUERY_FLAG(op, FLAG_UNPAID))) { return SAVE_ERROR_OK; } /* If the object has no_save set, just return */ if (QUERY_FLAG(op, FLAG_NO_SAVE)) return SAVE_ERROR_OK; if ((at = op->arch) == NULL) at = empty_archetype; if (fprintf(fp, "arch %s\n", at->name) < 0) return SAVE_ERROR_WRITE; sb = stringbuffer_new(); if (op->arch->reference_count > 0) { /* The object is a custom item/monster, so we handle its save differently. * We compare the custom archetype to the "original" one, then only save hp/gr/sp * which are the only values we can't recompute later - all others are modified by items in inventory. * Note that hp/gr/sp will appear twice in save, but last value will take precedence. */ archetype *original = find_archetype(op->arch->name); if (!original) { LOG(llevError, "could not find original archetype %s for custom monster!\n", op->arch->name); abort(); } get_ob_diff(sb, &op->arch->clone, &original->clone); if (op->stats.hp != op->arch->clone.stats.hp) FAST_SAVE_LONG(sb, "hp ", op->stats.hp); if (op->stats.sp != op->arch->clone.stats.sp) FAST_SAVE_LONG(sb, "sp ", op->stats.sp); if (op->stats.grace != op->arch->clone.stats.grace) FAST_SAVE_LONG(sb, "grace ", op->stats.grace); if (op->x != op->arch->clone.x) FAST_SAVE_LONG(sb, "x ", op->x); if (op->y != op->arch->clone.y) FAST_SAVE_LONG(sb, "y ", op->y); } else { /* if op is an artifact, then find the "standard" artifact to use that for the diff */ if (op->artifact != NULL) { object *base; const artifact *artifact; artifact = find_artifact(op, op->artifact); if (artifact == NULL) { LOG(llevError, "could not find artifact %s [%d] to save data\n", op->artifact, op->type); get_ob_diff(sb, op, &at->clone); } else { stringbuffer_append_printf(sb, "artifact %s\n", op->artifact); base = arch_to_object(at); give_artifact_abilities(base, artifact->item); get_ob_diff(sb, op, base); object_free2(base, FREE_OBJ_NO_DESTROY_CALLBACK | FREE_OBJ_FREE_INVENTORY); } } else { get_ob_diff(sb, op, &at->clone); } } cp = stringbuffer_finish(sb); if (fputs(cp, fp) == EOF) { free(cp); return SAVE_ERROR_WRITE; } free(cp); /* Eneq(@csd.uu.se): Added this to allow containers being saved with contents*/ FOR_INV_PREPARE(op, tmp) if ((res = save_object(fp, tmp, flag)) != 0) return res; FOR_INV_FINISH(); if (fprintf(fp, "end\n") < 0) return SAVE_ERROR_WRITE; return SAVE_ERROR_OK; } crossfire-1.70.0/common/path.c0000644000014500000120000001203511731300526013071 00000000000000/* $Id: path.c 11278 2009-01-28 15:00:48Z anmaster $ */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file path.c * Contains file path manipulation functions. */ #include #include #include #include #include "define.h" #include "path.h" #if 0 /** * Define DEBUG_PATH to enable debug output. */ #define DEBUG_PATH #endif /** * Combines 2 paths, which can be relative. * * @param src * path we're starting from. * @param dst * path we're doing to. * @param path * buffer containing the combined path. * @param size * size of path. * @return * path. * * @note * this doesn't handle the '..', check path_normalize(). */ char *path_combine(const char *src, const char *dst, char *path, size_t size) { char *p; if (*dst == '/') { /* absolute destination path => ignore source path */ snprintf(path, size, "%s", dst); } else { /* relative destination path => add after last '/' of source */ snprintf(path, size, "%s", src); p = strrchr(path, '/'); if (p != NULL) { p++; } else { p = path; if (*src == '/') *p++ = '/'; } snprintf(p, size-(p-path), "%s", dst); } #if defined(DEBUG_PATH) LOG(llevDebug, "path_combine(%s, %s) = %s\n", src, dst, path); #endif return(path); } /** * Cleans specified path. Removes .. and things like that. * * @param path * path to clear. It will be modified in place. * @note * there shouldn't be any buffer overflow, as we just remove stuff. */ void path_normalize(char *path) { char *p; /* points to the beginning of the path not yet processed; this is either a path component or a path separator character */ char *q; /* points to the end of the path component p points to */ char *w; /* points to the end of the already normalized path; w <= p is maintained */ size_t len; /* length of current component (which p points to) */ #if defined(DEBUG_PATH) LOG(llevDebug, "path_normalize: input '%s'\n", path); #endif p = path; w = p; while (*p != '\0') { if (*p == '/') { if ((w == path && *path == '/') || (w > path && w[-1] != '/')) *w++ = '/'; p++; continue; } q = strchr(p, '/'); if (q == NULL) q = p+strlen(p); len = q-p; assert(len > 0); #if defined(DEBUG_PATH) LOG(llevDebug, "path_normalize: checking '%.*s'\n", (int)len, p); #endif if (len == 1 && *p == '.') { /* remove current component */ } else if (len == 2 && memcmp(p, "..", 2) == 0) { if (w == path || (w == path+3 && memcmp(path, "../", 3) == 0)) { /* keep ".." at beginning of relative path ("../x" => "../x") */ memmove(w, p, len); w += len; } else if (w == path+1 && *path == '/') { /* remove ".." at beginning of absolute path ("/../x" => "/x") */ } else { /* remove both current component ".." and preceding one */ if (w > path && w[-1] == '/') w--; while (w > path && w[-1] != '/') w--; } } else { /* normal component ==> add it */ memmove(w, p, len); w += len; } p = q; #if defined(DEBUG_PATH) LOG(llevDebug, "path_normalize: so far '%.*s'\n", (int)(w-path), path); #endif } /* remove trailing slashes, but keep the one at the start of the path */ while (w > path+1 && w[-1] == '/') { w--; } *w = '\0'; #if defined(DEBUG_PATH) LOG(llevDebug, "path_normalize: result '%s'\n", path); #endif } /** * Combines the 2 paths. * * @param src * path we're starting from. * @param dst * path we're getting to. * @param path * buffer that will contain combined paths. * @param size * length of path. * @return * path */ char *path_combine_and_normalize(const char *src, const char *dst, char *path, size_t size) { path_combine(src, dst, path, size); path_normalize(path); return(path); } crossfire-1.70.0/common/ob_types.c0000644000014500000120000000677211731300526013774 00000000000000/* * static char *rcsid_ob_types = * "$Id: build_map.c 5057 2006-10-29 07:50:09Z mwedel $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail to crossfire-devel@real-time.com */ /** * @file * Those functions deal with the object/type system. */ #include #include #include #ifndef __CEXTRACT__ #include #endif /** Registered method handlers. */ ob_methods type_methods[OBJECT_TYPE_MAX]; /** * Initializes a ob_methods struct. Make sure this always matches ob_methods.h * @param methods ob_method structure to initialize * @param fallback Default fallback for the ob_method */ void init_ob_method_struct(ob_methods *methods, ob_methods *fallback) { methods->fallback = fallback; methods->apply = NULL; methods->process = NULL; methods->describe = NULL; methods->move_on = NULL; methods->trigger = NULL; } /** * Initializes the object system. * * @param base_type * base type to use as a base for all types. * @todo when migration is complete, the parameter should go, and this function should be called from * init_library() instead of init_ob_methods() in server/ob_methods.c. */ void init_ob_types(ob_methods *base_type) { int tmp; for (tmp = 0; tmp < OBJECT_TYPE_MAX; tmp++) init_ob_method_struct(&type_methods[tmp], base_type); } /* Functions for registering methods for types */ /** * Registers the apply method for the given type. * @param ob_type The type of object to register this method to * @param method The method to link */ void register_apply(int ob_type, apply_func method) { type_methods[ob_type].apply = method; } /** * Registers the process method for the given type. * @param ob_type The type of object to register this method to * @param method The method to link */ void register_process(int ob_type, process_func method) { type_methods[ob_type].process = method; } /** * Registers the describe method for the given type. * @param ob_type The type of object to register this method to * @param method The method to link */ void register_describe(int ob_type, describe_func method) { type_methods[ob_type].describe = method; } /** * Registers the move_on method for the given type. * @param ob_type The type of object to register this method to * @param method The method to link */ void register_move_on(int ob_type, move_on_func method) { type_methods[ob_type].move_on = method; } /** * Registers the trigger method for the given type. * @param ob_type The type of object to register this method to * @param method The method to link */ void register_trigger(int ob_type, trigger_func method) { type_methods[ob_type].trigger = method; } crossfire-1.70.0/common/README0000644000014500000120000000042011731300526012644 00000000000000If you link with this library, it's a _very_ good idea to call init_library() as a part of your initializing. (If not, a lot of function-pointers will point to god knows where...) Documentation for the functions can be generated using doxygen. See ../Doxyfile. -Frank. crossfire-1.70.0/common/button.c0000644000014500000120000006650111731300526013457 00000000000000/* * static char *rcsid_button_c = * "$Id: button.c 14671 2011-06-21 17:17:13Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * This handles triggers, buttons, altars and associated objects. */ #include #include static objectlink *get_button_links(const object *button); /** * Trigger every object in an objectlink. This was originally * part of push_button but has been extracted to make it * possible to trigger the connected object on a map * from a plugin without requiring a source object. * This method will take care of calling EVENT_TRIGGER of all * elligible object in list (see state parameter) * @param ol the objectlink to trigger. This can be acquire from map * @param cause the object that cause this path to trigger, may be NULL * @param state which object to apply. * 0=all object with FLAG_ACTIVATE_ON_PUSH * other=all object with FLAG_ACTIVATE_ON_RELEASE */ void trigger_connected(objectlink *ol, object *cause, const int state) { object *tmp; for (; ol; ol = ol->next) { object *part; if (!ol->ob || ol->ob->count != ol->id) { LOG(llevError, "Internal error in trigger_connect. No object associated with link id (%u) (cause='%s'.\n", ol->id, (cause && cause->name) ? cause->name : ""); continue; } /* a button link object can become freed when the map is saving. As * a map is saved, objects are removed and freed, and if an object is * on top of a button, this function is eventually called. If a map * is getting moved out of memory, the status of buttons and levers * probably isn't important - it will get sorted out when the map is * re-loaded. As such, just exit this function if that is the case. */ if (QUERY_FLAG(ol->ob, FLAG_FREED)) return; tmp = ol->ob; /* if the criteria isn't appropriate, don't do anything */ if (state && !QUERY_FLAG(tmp, FLAG_ACTIVATE_ON_PUSH)) continue; if (!state && !QUERY_FLAG(tmp, FLAG_ACTIVATE_ON_RELEASE)) continue; /* * (tchize) call the triggers of the activated object. * tmp = activated object * op is activator (aka button) */ if (execute_event(tmp, EVENT_TRIGGER, cause, NULL, NULL, SCRIPT_FIX_ALL) != 0) continue; switch (tmp->type) { case GATE: case HOLE: tmp->value = tmp->stats.maxsp ? !state : state; tmp->speed = 0.5; object_update_speed(tmp); break; case CF_HANDLE: SET_ANIMATION(tmp, (tmp->value = tmp->stats.maxsp ? !state : state)); object_update(tmp, UP_OBJ_FACE); break; case SIGN: if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) { ext_info_map(NDI_UNIQUE|NDI_NAVY, tmp->map, MSG_TYPE_SIGN, MSG_SUBTYPE_NONE, tmp->msg); if (tmp->stats.food) tmp->last_eat++; } break; case ALTAR: tmp->value = 1; SET_ANIMATION(tmp, tmp->value); object_update(tmp, UP_OBJ_FACE); break; case BUTTON: case PEDESTAL: tmp->value = state; SET_ANIMATION(tmp, tmp->value); object_update(tmp, UP_OBJ_FACE); break; case TIMED_GATE: for (part = tmp; tmp != NULL; tmp = tmp->more) { part->speed = tmp->arch->clone.speed; part->value = tmp->arch->clone.value; part->stats.sp = 1; part->stats.hp = tmp->stats.maxhp; object_update_speed(part); } break; case DIRECTOR: case FIREWALL: if (!QUERY_FLAG(tmp, FLAG_ANIMATE) && tmp->type == FIREWALL) move_firewall(tmp); else { if ((tmp->stats.sp += tmp->stats.maxsp) > 8) /* next direction */ tmp->stats.sp = ((tmp->stats.sp-1)%8)+1; animate_turning(tmp); } break; default: ob_trigger(tmp, cause, state); } } } /** * Push the specified object. This can affect other buttons/gates/handles * altars/pedestals/holes in the whole map. * Changed the routine to loop through _all_ linked objects. * Better hurry with that linked list... * @param op * object to push. */ void push_button(object *op) { /* LOG(llevDebug, "push_button: %s (%d)\n", op->name, op->count); */ trigger_connected(get_button_links(op), op, op->value); } /** * Updates everything connected with the button op. * After changing the state of a button, this function must be called * to make sure that all gates and other buttons connected to the * button reacts to the (eventual) change of state. * @param op * object to update. */ void update_button(object *op) { object *tmp, *head; int tot, any_down = 0, old_value = op->value; objectlink *ol; /* LOG(llevDebug, "update_button: %s (%d)\n", op->name, op->count); */ for (ol = get_button_links(op); ol; ol = ol->next) { if (!ol->ob || ol->ob->count != ol->id) { LOG(llevDebug, "Internal error in update_button (%s).\n", op->name); continue; } tmp = ol->ob; if (tmp->type == BUTTON) { tot = 0; FOR_ABOVE_PREPARE(tmp, ab) /* Bug? The pedestal code below looks for the head of * the object, this bit doesn't. I'd think we should check * for head here also. Maybe it also makese sense to * make the for ab=tmp->above loop common, and alter * behaviour based on object within that loop? */ /* Basically, if the move_type matches that on what the * button wants, we count it. The second check is so that * objects don't move (swords, etc) will count. Note that * this means that more work is needed to make buttons * that are only triggered by flying objects. */ if ((ab->move_type&tmp->move_on) || ab->move_type == 0) tot += ab->weight*(ab->nrof ? ab->nrof : 1)+ab->carrying; FOR_ABOVE_FINISH(); tmp->value = (tot >= tmp->weight) ? 1 : 0; if (tmp->value) any_down = 1; } else if (tmp->type == PEDESTAL) { tmp->value = 0; FOR_ABOVE_PREPARE(tmp, ab) { head = ab->head ? ab->head : ab; /* Same note regarding move_type for buttons above apply here. */ if (((head->move_type&tmp->move_on) || ab->move_type == 0) && (head->race == tmp->slaying || ((head->type == SPECIAL_KEY) && (head->slaying == tmp->slaying)) || (!strcmp(tmp->slaying, "player") && head->type == PLAYER))) tmp->value = 1; } FOR_ABOVE_FINISH(); if (tmp->value) any_down = 1; } } if (any_down) /* If any other buttons were down, force this to remain down */ op->value = 1; /* If this button hasn't changed, don't do anything */ if (op->value != old_value) { SET_ANIMATION(op, op->value); object_update(op, UP_OBJ_FACE); push_button(op); /* Make all other buttons the same */ } } /** * Updates every button on the map (by calling update_button() for them). */ void update_buttons(mapstruct *m) { objectlink *ol; oblinkpt *obp; for (obp = m->buttons; obp; obp = obp->next) for (ol = obp->link; ol; ol = ol->next) { if (!ol->ob || ol->ob->count != ol->id) { LOG(llevError, "Internal error in update_button (%s (%dx%d):%u, connected %ld).\n", ol->ob ? ol->ob->name : "null", ol->ob ? ol->ob->x : -1, ol->ob ? ol->ob->y : -1, ol->id, obp->value); continue; } if (ol->ob->type == BUTTON || ol->ob->type == PEDESTAL) { update_button(ol->ob); break; } } } /** * Toggles the state of specified button. * @param op * object to toggle. */ void use_trigger(object *op) { /* Toggle value */ op->value = !op->value; push_button(op); } /** * Animates one step of object. * @param op * object to animate. * @note * animate_object() should be used instead of this, * but it can't handle animations in the 8 directions * @todo * check if object is really animated? */ void animate_turning(object *op) { if (++op->state >= NUM_ANIMATIONS(op)/8) op->state = 0; SET_ANIMATION(op, (op->stats.sp-1)*NUM_ANIMATIONS(op)/8+op->state); object_update(op, UP_OBJ_FACE); } #define ARCH_SACRIFICE(xyz) ((xyz)->slaying) #define NROF_SACRIFICE(xyz) ((uint32)(xyz)->stats.food) /** * Helper function to check if the item matches altar's requested sacrifice. * The number of objects is not taken into account. * * @param altar * altar we're checking for. Can't be NULL. * @param sacrifice * what object to check for. Can't be NULL. * @return * 1 if object is suitable for the altar (number not taken into account), 0 else. */ static int matches_sacrifice(const object *altar, const object *sacrifice) { char name[MAX_BUF]; if ((QUERY_FLAG(sacrifice, FLAG_ALIVE) && object_get_value(altar, "accept_alive") == NULL) || QUERY_FLAG(sacrifice, FLAG_IS_LINKED) || sacrifice->type == PLAYER) return 0; query_base_name(sacrifice, 0, name, MAX_BUF); if (ARCH_SACRIFICE(altar) == sacrifice->arch->name || ARCH_SACRIFICE(altar) == sacrifice->name || ARCH_SACRIFICE(altar) == sacrifice->slaying || (!strcmp(ARCH_SACRIFICE(altar), name))) return 1; if (strcmp(ARCH_SACRIFICE(altar), "money") == 0 && sacrifice->type == MONEY) return 1; return 0; } /** * Checks whether the altar has enough to sacrifice. * * Function put in (0.92.1) so that identify altars won't grab money * unnecessarily - we can see if there is sufficient money, see if something * needs to be identified, and then remove money if needed. * * 0.93.4: Linked objects (ie, objects that are connected) can not be * sacrificed. This fixes a bug of trying to put multiple altars/related * objects on the same space that take the same sacrifice. * * The function will now check for all items sitting on the altar, so that the player * can put various matching but non merging items on the altar. * * This function can potentially remove other items, if remove_others is set. * * @param altar * item to which there is a sacrifice * @param sacrifice * object that may be sacrifed * @param remove_others * if 1, will remove enough items apart sacrifice to compensate for not having enough in sacrifice itself. * @param[out] toremove * will contain the nrof of sacrifice to really remove to finish operating. Will be set if not NULL only * if the function returns 1. * @return * 1 if the sacrifice meets the needs of the altar, 0 else */ int check_altar_sacrifice(const object *altar, const object *sacrifice, int remove_others, int *toremove) { int money; uint32 wanted, rest; if (!matches_sacrifice(altar, sacrifice)) /* New dropped object doesn't match the altar, other objects already on top are not enough to * activate altar, else they would have disappeared. */ return 0; /* Check item is paid for. */ if (QUERY_FLAG(sacrifice, FLAG_UNPAID)) { return 0; } money = (strcmp(ARCH_SACRIFICE(altar), "money") == 0) ? 1 : 0; /* Easy checks: newly dropped object is enough for sacrifice. */ if (money && sacrifice->nrof*sacrifice->value >= NROF_SACRIFICE(altar)) { if (toremove) { *toremove = NROF_SACRIFICE(altar)/sacrifice->value; /* Round up any sacrifices. Altars don't make change either */ if (NROF_SACRIFICE(altar)%sacrifice->value) (*toremove)++; } return 1; } if (!money && NROF_SACRIFICE(altar) <= (sacrifice->nrof ? sacrifice->nrof : 1)) { if (toremove) *toremove = NROF_SACRIFICE(altar); return 1; } if (money) { wanted = NROF_SACRIFICE(altar)-sacrifice->nrof*sacrifice->value; } else { wanted = NROF_SACRIFICE(altar)-(sacrifice->nrof ? sacrifice->nrof : 1); } rest = wanted; /* Ok, now we check if we got enough with other items. * We only check items above altar, and not checking again sacrifice. */ FOR_ABOVE_PREPARE(altar, tmp) { if (wanted <= 0) break; if (tmp == sacrifice || !matches_sacrifice(altar, tmp)) continue; if (money) wanted -= tmp->nrof*tmp->value; else wanted -= (tmp->nrof ? tmp->nrof : 1); } FOR_ABOVE_FINISH(); if (wanted > 0) /* Not enough value, let's bail out. */ return 0; /* From there on, we do have enough objects for the altar. */ /* Last dropped object will be totally eaten in any case. */ if (toremove) *toremove = sacrifice->nrof ? sacrifice->nrof : 1; if (!remove_others) return 1; /* We loop again, this time to remove what we need. */ FOR_ABOVE_PREPARE(altar, tmp) { if (rest <= 0) break; if (tmp == sacrifice || !matches_sacrifice(altar, tmp)) continue; if (money) { wanted = tmp->nrof*tmp->value; if (rest > wanted) { object_remove(tmp); rest -= wanted; } else { wanted = rest/tmp->value; if (rest%tmp->value) wanted++; object_decrease_nrof(tmp, wanted); return 1; } } else if (rest > (tmp->nrof ? tmp->nrof : 1)) { rest -= (tmp->nrof ? tmp->nrof : 1); object_remove(tmp); } else { object_decrease_nrof(tmp, rest); return 1; } } FOR_ABOVE_FINISH(); /* Something went wrong, we'll be nice and accept the sacrifice anyway. */ LOG(llevError, "check_altar_sacrifice on %s: found objects to sacrifice, but couldn't remove them??\n", altar->map->path); return 1; } /** * Checks if sacrifice was accepted and removes sacrificed * objects. Might be better to * call check_altar_sacrifice (above) than depend on the return value, * since operate_altar will remove the sacrifice also. * * If this function returns 1, '*sacrifice' is modified to point to the * remaining sacrifice, or is set to NULL if the sacrifice was used up. * * @param altar * item to which there is a sacrifice * @param sacrifice * object that may be sacrifed * @return * 1 if sacrifice was accepted, else 0 */ int operate_altar(object *altar, object **sacrifice) { int number; if (!altar->map) { LOG(llevError, "BUG: operate_altar(): altar has no map\n"); return 0; } if (!altar->slaying || altar->value) return 0; if (!check_altar_sacrifice(altar, *sacrifice, 1, &number)) return 0; /* check_altar_sacrifice fills in number for us. */ *sacrifice = object_decrease_nrof(*sacrifice, number); if (altar->msg) ext_info_map(NDI_BLACK, altar->map, MSG_TYPE_DIALOG, MSG_TYPE_DIALOG_ALTAR, altar->msg); return 1; } /** * @todo document? */ static void trigger_move(object *op, int state) { /* 1 down and 0 up */ op->stats.wc = state; if (state) { use_trigger(op); if (op->stats.exp > 0) /* check sanity */ op->speed = 1.0/op->stats.exp; else op->speed = 1.0; object_update_speed(op); op->speed_left = -1; } else { use_trigger(op); op->speed = 0; object_update_speed(op); } } /** * @todo document properly * cause != NULL: something has moved on top of op * * cause == NULL: nothing has moved, we have been called from * animate_trigger(). * * TRIGGER_ALTAR: Returns 1 if 'cause' was destroyed, 0 if not. * * TRIGGER: Returns 1 if handle could be moved, 0 if not. * * TRIGGER_BUTTON, TRIGGER_PEDESTAL: Returns 0. */ int check_trigger(object *op, object *cause) { int push = 0, tot = 0; int in_movement = op->stats.wc || op->speed; switch (op->type) { case TRIGGER_BUTTON: if (op->weight > 0) { if (cause) { FOR_ABOVE_PREPARE(op, tmp) /* Comment reproduced from update_buttons(): * Basically, if the move_type matches that on what the * button wants, we count it. The second check is so that * objects that don't move (swords, etc) will count. Note that * this means that more work is needed to make buttons * that are only triggered by flying objects. */ if ((tmp->move_type&op->move_on) || tmp->move_type == 0) { tot += tmp->weight*(tmp->nrof ? tmp->nrof : 1)+tmp->carrying; } FOR_ABOVE_FINISH(); if (tot >= op->weight) push = 1; if (op->stats.ac == push) return 0; op->stats.ac = push; if (NUM_ANIMATIONS(op) > 1) { SET_ANIMATION(op, push); object_update(op, UP_OBJ_FACE); } if (in_movement || !push) return 0; } trigger_move(op, push); } return 0; case TRIGGER_PEDESTAL: if (cause) { FOR_ABOVE_PREPARE(op, tmp) { object *head = tmp->head ? tmp->head : tmp; /* See comment in TRIGGER_BUTTON about move_types */ if (((head->move_type&op->move_on) || head->move_type == 0) && (head->race == op->slaying || (!strcmp(op->slaying, "player") && head->type == PLAYER))) { push = 1; break; } } FOR_ABOVE_FINISH(); if (op->stats.ac == push) return 0; op->stats.ac = push; if (NUM_ANIMATIONS(op) > 1) { SET_ANIMATION(op, push); object_update(op, UP_OBJ_FACE); } if (in_movement || !push) return 0; } trigger_move(op, push); return 0; case TRIGGER_ALTAR: if (cause) { if (in_movement) return 0; if (operate_altar(op, &cause)) { if (NUM_ANIMATIONS(op) > 1) { SET_ANIMATION(op, 1); object_update(op, UP_OBJ_FACE); } if (op->last_sp >= 0) { trigger_move(op, 1); if (op->last_sp > 0) op->last_sp = -op->last_sp; } else { /* for trigger altar with last_sp, the ON/OFF * status (-> +/- value) is "simulated": */ op->value = !op->value; trigger_move(op, 1); op->last_sp = -op->last_sp; op->value = !op->value; } return cause == NULL; } else { return 0; } } else { if (NUM_ANIMATIONS(op) > 1) { SET_ANIMATION(op, 0); object_update(op, UP_OBJ_FACE); } /* If trigger_altar has "last_sp > 0" set on the map, * it will push the connected value only once per sacrifice. * Otherwise (default), the connected value will be * pushed twice: First by sacrifice, second by reset! -AV */ if (!op->last_sp) trigger_move(op, 0); else { op->stats.wc = 0; op->value = !op->value; op->speed = 0; object_update_speed(op); } } return 0; case TRIGGER: if (cause) { if (in_movement) return 0; push = 1; } if (NUM_ANIMATIONS(op) > 1) { SET_ANIMATION(op, push); object_update(op, UP_OBJ_FACE); } trigger_move(op, push); return 1; default: LOG(llevDebug, "Unknown trigger type: %s (%d)\n", op->name, op->type); return 0; } } /** * Links specified object in the map. * @param button * object to link. Must not be NULL. * @param map * map we are on. Should not be NULL. * @param connected * connection value for the item. */ void add_button_link(object *button, mapstruct *map, int connected) { oblinkpt *obp; objectlink *ol = get_objectlink(); if (!map) { LOG(llevError, "Tried to add button-link without map.\n"); free_objectlink(ol); return; } SET_FLAG(button, FLAG_IS_LINKED); ol->ob = button; ol->id = button->count; for (obp = map->buttons; obp && obp->value != connected; obp = obp->next) ; if (obp) { ol->next = obp->link; obp->link = ol; } else { obp = get_objectlinkpt(); obp->value = connected; obp->next = map->buttons; map->buttons = obp; obp->link = ol; } } /** * Remove the object from the linked lists of buttons in the map. * This is only needed by editors. * @param op * object to remove. Must be on a map, and linked. */ void remove_button_link(object *op) { oblinkpt *obp; objectlink **olp, *ol; if (op->map == NULL) { LOG(llevError, "remove_button_link() in object without map.\n"); return; } if (!QUERY_FLAG(op, FLAG_IS_LINKED)) { LOG(llevError, "remove_button_linked() in unlinked object.\n"); return; } for (obp = op->map->buttons; obp; obp = obp->next) for (olp = &obp->link; (ol = *olp); olp = &ol->next) if (ol->ob == op) { /* LOG(llevDebug, "Removed link %d in button %s and map %s.\n", obp->value, op->name, op->map->path); */ *olp = ol->next; free(ol); return; } LOG(llevError, "remove_button_linked(): couldn't find object.\n"); CLEAR_FLAG(op, FLAG_IS_LINKED); } /** * Return the first objectlink in the objects linked to this one * @param button * object to check. Must not be NULL. * @return * ::objectlink for this object, or NULL. */ static objectlink *get_button_links(const object *button) { oblinkpt *obp; objectlink *ol; if (!button->map) return NULL; for (obp = button->map->buttons; obp; obp = obp->next) for (ol = obp->link; ol; ol = ol->next) if (ol->ob == button && ol->id == button->count) return obp->link; return NULL; } /** * Returns the first value linked to this button. * Made as a separate function to increase efficiency * @param button * object to check. Must not be NULL. * @return * connection value, or 0 if not connected. */ int get_button_value(const object *button) { oblinkpt *obp; objectlink *ol; if (!button->map) return 0; for (obp = button->map->buttons; obp; obp = obp->next) for (ol = obp->link; ol; ol = ol->next) if (ol->ob == button && ol->id == button->count) return obp->value; return 0; } /** * Checks object and its inventory for specific item. * * It will descend through containers to find the object. * slaying = match object slaying flag * race = match object archetype name flag * hp = match object type (excpt type '0'== PLAYER) * title = match object title * Searching by title only is not recommended, as it can be a rather slow * operation; use it in combination with archetype or type. * @param op * object of which to search inventory * @param trig * what to search * @return * object that matches, or NULL if none matched. */ object *check_inv_recursive(object *op, const object *trig) { object *ret = NULL; /* First check the object itself. */ if ((!trig->stats.hp || (op->type == trig->stats.hp)) && (!trig->slaying || (op->slaying == trig->slaying)) && (!trig->race || (op->arch->name == trig->race)) && (!trig->title || (op->title == trig->title))) return op; FOR_INV_PREPARE(op, tmp) { if (tmp->inv) { ret = check_inv_recursive(tmp, trig); if (ret) return ret; } else if ((!trig->stats.hp || (tmp->type == trig->stats.hp)) && (!trig->slaying || (tmp->slaying == trig->slaying)) && (!trig->race || (tmp->arch->name == trig->race)) && (!trig->title || (tmp->title == trig->title))) return tmp; } FOR_INV_FINISH(); return NULL; } /** * Function to search the inventory, * of a player and then based on a set of conditions, * the square will activate connected items. * * Monsters can't trigger this square (for now) * Values are: last_sp = 1/0 obj/no obj triggers * last_heal = 1/0 remove/dont remove obj if triggered * -b.t. (thomas@nomad.astro.psu.edu * * @param op * object to check. Must be a player. * @param trig * trigger object that may be activated. */ void check_inv(object *op, object *trig) { object *match; if (op->type != PLAYER) return; match = check_inv_recursive(op, trig); if (match && trig->last_sp) { if (trig->last_heal) object_decrease_nrof_by_one(match); use_trigger(trig); } else if (!match && !trig->last_sp) use_trigger(trig); } /** * This does a minimal check of the button link consistency for object * map. All it really does it much sure the object id link that is set * matches what the object has. * * Will log to error level. * * @param map * map to check. */ void verify_button_links(const mapstruct *map) { oblinkpt *obp; objectlink *ol; if (!map) return; for (obp = map->buttons; obp; obp = obp->next) { for (ol = obp->link; ol; ol = ol->next) { if (ol->id != ol->ob->count) LOG(llevError, "verify_button_links: object %s on list is corrupt (%u!=%u)\n", ol->ob->name, ol->id, ol->ob->count); } } } crossfire-1.70.0/common/los.c0000644000014500000120000005656411731300526012751 00000000000000/* * static char *rcsid_los_c = * "$Id: los.c 14671 2011-06-21 17:17:13Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file los.c * This handles the "line of sight" for players and monsters. */ /* Nov 95 - inserted USE_LIGHTING code stuff in here - b.t. */ #include #include /** * Distance must be less than this for the object to be blocked. * An object is 1.0 wide, so if set to 0.5, it means the object * that blocks half the view (0.0 is complete block) will * block view in our tables. * .4 or less lets you see through walls. .5 is about right. */ #define SPACE_BLOCK 0.5 typedef struct blstr { int x[4], y[4]; int index; } blocks; static blocks block[MAP_CLIENT_X][MAP_CLIENT_Y]; static void expand_lighted_sight(object *op); /** * What this sets is that x,y blocks the view of bx,by * This then sets up a relation - for example, something * at 5,4 blocks view at 5,3 which blocks view at 5,2 * etc. So when we check 5,4 and find it blocks, we have * the data to know that 5,3 and 5,2 and 5,1 should also * be blocked. * Used to initialise the array used by the LOS routines. * * @param x * @param y * coordinates that block. * @param bx * @param by * coordinates that get blocked. * @todo * check index for overflow? */ static void set_block(int x, int y, int bx, int by) { int index = block[x][y].index, i; /* Due to flipping, we may get duplicates - better safe than sorry. */ for (i = 0; i < index; i++) { if (block[x][y].x[i] == bx && block[x][y].y[i] == by) return; } block[x][y].x[index] = bx; block[x][y].y[index] = by; block[x][y].index++; #ifdef LOS_DEBUG LOG(llevDebug, "setblock: added %d %d -> %d %d (%d)\n", x, y, bx, by, block[x][y].index); #endif } /** * initialises the array used by the LOS routines. * * Since we are only doing the upper left quadrant, only * these spaces could possibly get blocked, since these * are the only ones further out that are still possibly in the * sightline. */ void init_block(void) { int x, y, dx, dy, i; static const int block_x[3] = { -1, -1, 0 }, block_y[3] = { -1, 0, -1 }; for (x = 0; x < MAP_CLIENT_X; x++) for (y = 0; y < MAP_CLIENT_Y; y++) { block[x][y].index = 0; } /* The table should be symmetric, so only do the upper left * quadrant - makes the processing easier. */ for (x = 1; x <= MAP_CLIENT_X/2; x++) { for (y = 1; y <= MAP_CLIENT_Y/2; y++) { for (i = 0; i < 3; i++) { dx = x+block_x[i]; dy = y+block_y[i]; /* center space never blocks */ if (x == MAP_CLIENT_X/2 && y == MAP_CLIENT_Y/2) continue; /* If its a straight line, its blocked */ if ((dx == x && x == MAP_CLIENT_X/2) || (dy == y && y == MAP_CLIENT_Y/2)) { /* For simplicity, we mirror the coordinates to block the other * quadrants. */ set_block(x, y, dx, dy); if (x == MAP_CLIENT_X/2) { set_block(x, MAP_CLIENT_Y-y-1, dx, MAP_CLIENT_Y-dy-1); } else if (y == MAP_CLIENT_Y/2) { set_block(MAP_CLIENT_X-x-1, y, MAP_CLIENT_X-dx-1, dy); } } else { float d1, s, l; /* We use the algorihm that found out how close the point * (x,y) is to the line from dx,dy to the center of the viewable * area. l is the distance from x,y to the line. * r is more a curiosity - it lets us know what direction (left/right) * the line is off */ d1 = (float)(pow(MAP_CLIENT_X/2-dx, 2)+pow(MAP_CLIENT_Y/2-dy, 2)); s = (float)((dy-y)*(MAP_CLIENT_X/2-dx)-(dx-x)*(MAP_CLIENT_Y/2-dy))/d1; l = FABS(sqrt(d1)*s); if (l <= SPACE_BLOCK) { /* For simplicity, we mirror the coordinates to block the other * quadrants. */ set_block(x, y, dx, dy); set_block(MAP_CLIENT_X-x-1, y, MAP_CLIENT_X-dx-1, dy); set_block(x, MAP_CLIENT_Y-y-1, dx, MAP_CLIENT_Y-dy-1); set_block(MAP_CLIENT_X-x-1, MAP_CLIENT_Y-y-1, MAP_CLIENT_X-dx-1, MAP_CLIENT_Y-dy-1); } } } } } } /** * This recursively sets the blocked line of sight view. * From the blocked[][] array, we know for example * that if some particular space is blocked, it blocks * the view of the spaces 'behind' it, and those blocked * spaces behind it may block other spaces, etc. * In this way, the chain of visibility is set. * Used to initialise the array used by the LOS routines. * * @param op * player for which we're computing. * @param x * @param y * indexes into the blocked[][] array. */ static void set_wall(object *op, int x, int y) { int i; for (i = 0; i < block[x][y].index; i++) { int dx = block[x][y].x[i], dy = block[x][y].y[i], ax, ay; /* ax, ay are the values as adjusted to be in the * socket look structure. */ ax = dx-(MAP_CLIENT_X-op->contr->socket.mapx)/2; ay = dy-(MAP_CLIENT_Y-op->contr->socket.mapy)/2; if (ax < 0 || ax >= op->contr->socket.mapx || ay < 0 || ay >= op->contr->socket.mapy) continue; /* we need to adjust to the fact that the socket * code wants the los to start from the 0,0 * and not be relative to middle of los array. */ op->contr->blocked_los[ax][ay] = 100; set_wall(op, dx, dy); } } /** * Used to initialise the array used by the LOS routines. * @param op * player's object * @param x * @param y * Values based on MAP_CLIENT_X and Y that index the blocked[][] arrays. * * @todo * use player *instead of object *to show it must be a player? */ static void check_wall(object *op, int x, int y) { int ax, ay; if (!block[x][y].index) return; /* ax, ay are coordinates as indexed into the look window */ ax = x-(MAP_CLIENT_X-op->contr->socket.mapx)/2; ay = y-(MAP_CLIENT_Y-op->contr->socket.mapy)/2; /* If the converted coordinates are outside the viewable * area for the client, return now. */ if (ax < 0 || ay < 0 || ax >= op->contr->socket.mapx || ay >= op->contr->socket.mapy) return; /* If this space is already blocked, prune the processing - presumably * whatever has set this space to be blocked has done the work and already * done the dependency chain. */ if (op->contr->blocked_los[ax][ay] == 100) return; if (get_map_flags(op->map, NULL, op->x+x-MAP_CLIENT_X/2, op->y+y-MAP_CLIENT_Y/2, NULL, NULL)&(P_BLOCKSVIEW|P_OUT_OF_MAP)) set_wall(op, x, y); } /** * Clears/initialises the los-array associated to the player * controlling the object. * * @param op * player's object. * * @todo * use player *instead of object *to show it must be a player? */ void clear_los(object *op) { /* This is safer than using the socket->mapx, mapy because * we index the blocked_los as a 2 way array, so clearing * the first z spaces may not not cover the spaces we are * actually going to use */ (void)memset((void *)op->contr->blocked_los, 0, MAP_CLIENT_X*MAP_CLIENT_Y); } /** * Goes through the array of what the given player is * able to see, and expands the visible area a bit, so the player will, * to a certain degree, be able to see into corners. * This is somewhat suboptimal, would be better to improve the formula. * * @param op * player's object to process. * * @todo * use player *instead of object *to show it must be a player? */ static void expand_sight(object *op) { int i, x, y, dx, dy; for (x = 1; x < op->contr->socket.mapx-1; x++) /* loop over inner squares */ for (y = 1; y < op->contr->socket.mapy-1; y++) { if (!op->contr->blocked_los[x][y] && !(get_map_flags(op->map, NULL, op->x-op->contr->socket.mapx/2+x, op->y-op->contr->socket.mapy/2+y, NULL, NULL)&(P_BLOCKSVIEW|P_OUT_OF_MAP))) { for (i = 1; i <= 8; i += 1) { /* mark all directions */ dx = x+freearr_x[i]; dy = y+freearr_y[i]; if (op->contr->blocked_los[dx][dy] > 0) /* for any square blocked */ op->contr->blocked_los[dx][dy] = -1; } } } if (MAP_DARKNESS(op->map) > 0) /* player is on a dark map */ expand_lighted_sight(op); /* clear mark squares */ for (x = 0; x < op->contr->socket.mapx; x++) for (y = 0; y < op->contr->socket.mapy; y++) if (op->contr->blocked_los[x][y] < 0) op->contr->blocked_los[x][y] = 0; } /** * Checks if op has a light source. * * @param op * object being checked. * @return * true if op carries one or more lights * * @note * This is a trivial function now days, but it used to * be a bit longer. Probably better for callers to just * check the op->glow_radius instead of calling this. */ int has_carried_lights(const object *op) { /* op may glow! */ if (op->glow_radius > 0) return 1; return 0; } /** * Propagate the light information. * * @param op * player's object for which to compute the light values. */ static void expand_lighted_sight(object *op) { int x, y, darklevel, ax, ay, basex, basey, mflags, light, x1, y1; mapstruct *m = op->map; sint16 nx, ny; darklevel = MAP_DARKNESS(m); /* If the player can see in the dark, lower the darklevel for him */ if (QUERY_FLAG(op, FLAG_SEE_IN_DARK)) darklevel -= 2; /* add light, by finding all (non-null) nearby light sources, then * mark those squares specially. If the darklevel<1, there is no * reason to do this, so we skip this function */ if (darklevel < 1) return; /* Do a sanity check. If not valid, some code below may do odd * things. */ if (darklevel > MAX_DARKNESS) { LOG(llevError, "Map darkness for %s on %s is too high (%d)\n", op->name, op->map->path, darklevel); darklevel = MAX_DARKNESS; } /* First, limit player furthest (unlighted) vision */ for (x = 0; x < op->contr->socket.mapx; x++) for (y = 0; y < op->contr->socket.mapy; y++) if (op->contr->blocked_los[x][y] != 100) op->contr->blocked_los[x][y] = MAX_LIGHT_RADII; /* the spaces[] darkness value contains the information we need. * Only process the area of interest. * the basex, basey values represent the position in the op->contr->blocked_los * array. Its easier to just increment them here (and start with the right * value) than to recalculate them down below. */ for (x = (op->x-op->contr->socket.mapx/2-MAX_LIGHT_RADII), basex = -MAX_LIGHT_RADII; x <= (op->x+op->contr->socket.mapx/2+MAX_LIGHT_RADII); x++, basex++) { for (y = (op->y-op->contr->socket.mapy/2-MAX_LIGHT_RADII), basey = -MAX_LIGHT_RADII; y <= (op->y+op->contr->socket.mapy/2+MAX_LIGHT_RADII); y++, basey++) { m = op->map; nx = x; ny = y; mflags = get_map_flags(m, &m, nx, ny, &nx, &ny); if (mflags&P_OUT_OF_MAP) continue; /* This space is providing light, so we need to brighten up the * spaces around here. */ light = GET_MAP_LIGHT(m, nx, ny); if (light != 0) { for (ax = basex-light; ax <= basex+light; ax++) { if (ax < 0 || ax >= op->contr->socket.mapx) continue; for (ay = basey-light; ay <= basey+light; ay++) { if (ay < 0 || ay >= op->contr->socket.mapy) continue; /* If the space is fully blocked, do nothing. Otherwise, we * brighten the space. The further the light is away from the * source (basex-x), the less effect it has. Though light used * to dim in a square manner, it now dims in a circular manner * using the the pythagorean theorem. glow_radius still * represents the radius */ if (op->contr->blocked_los[ax][ay] != 100) { x1 = abs(basex-ax)*abs(basex-ax); y1 = abs(basey-ay)*abs(basey-ay); if (light > 0) op->contr->blocked_los[ax][ay] -= MAX((light-isqrt(x1+y1)), 0); if (light < 0) op->contr->blocked_los[ax][ay] -= MIN((light+isqrt(x1+y1)), 0); } } /* for ay */ } /* for ax */ } /* if this space is providing light */ } /* for y */ } /* for x */ /* Outdoor should never really be completely pitch black dark like * a dungeon, so let the player at least see a little around themselves */ if (op->map->outdoor && darklevel > (MAX_DARKNESS-3)) { if (op->contr->blocked_los[op->contr->socket.mapx/2][op->contr->socket.mapy/2] > (MAX_DARKNESS-3)) op->contr->blocked_los[op->contr->socket.mapx/2][op->contr->socket.mapy/2] = MAX_DARKNESS-3; for (x = -1; x <= 1; x++) for (y = -1; y <= 1; y++) { if (op->contr->blocked_los[x+op->contr->socket.mapx/2][y+op->contr->socket.mapy/2] > (MAX_DARKNESS-2)) op->contr->blocked_los[x+op->contr->socket.mapx/2][y+op->contr->socket.mapy/2] = MAX_DARKNESS-2; } } /* grant some vision to the player, based on the darklevel */ for (x = darklevel-MAX_DARKNESS; x < MAX_DARKNESS+1-darklevel; x++) for (y = darklevel-MAX_DARKNESS; y < MAX_DARKNESS+1-darklevel; y++) if (!(op->contr->blocked_los[x+op->contr->socket.mapx/2][y+op->contr->socket.mapy/2] == 100)) op->contr->blocked_los[x+op->contr->socket.mapx/2][y+op->contr->socket.mapy/2] -= MAX(0, 6-darklevel-MAX(abs(x), abs(y))); } /** * Sets all veiwable squares to blocked except * for the one the central one that the player occupies. A little * odd that you can see yourself (and what your standing on), but * really need for any reasonable game play. * * @param op * player's object for which to reset los. Must have a valid contr. */ static void blinded_sight(object *op) { int x, y; for (x = 0; x < op->contr->socket.mapx; x++) for (y = 0; y < op->contr->socket.mapy; y++) op->contr->blocked_los[x][y] = 100; op->contr->blocked_los[op->contr->socket.mapx/2][op->contr->socket.mapy/2] = 0; } /** * Recalculates the array which specifies what is * visible for the given player-object. * * @param op * player's object for which to compute. */ void update_los(object *op) { int dx = op->contr->socket.mapx/2, dy = op->contr->socket.mapy/2, x, y; if (QUERY_FLAG(op, FLAG_REMOVED)) return; clear_los(op); if (QUERY_FLAG(op, FLAG_WIZ) /* || XRAYS(op) */) return; /* For larger maps, this is more efficient than the old way which * used the chaining of the block array. Since many space views could * be blocked by different spaces in front, this mean that a lot of spaces * could be examined multile times, as each path would be looked at. */ for (x = (MAP_CLIENT_X-op->contr->socket.mapx)/2+1; x < (MAP_CLIENT_X+op->contr->socket.mapx)/2-1; x++) for (y = (MAP_CLIENT_Y-op->contr->socket.mapy)/2+1; y < (MAP_CLIENT_Y+op->contr->socket.mapy)/2-1; y++) check_wall(op, x, y); /* do the los of the player. 3 (potential) cases */ if (QUERY_FLAG(op, FLAG_BLIND)) /* player is blind */ blinded_sight(op); else expand_sight(op); if (QUERY_FLAG(op, FLAG_XRAYS)) { int x, y; for (x = -2; x <= 2; x++) for (y = -2; y <= 2; y++) op->contr->blocked_los[dx+x][dy+y] = 0; } } /** * update all_map_los is like update_all_los() below, * but updates everyone on the map, no matter where they * are. This generally should not be used, as a per * specific map change doesn't make much sense when tiling * is considered (lowering darkness would certainly be a * strange effect if done on a tile map, as it makes * the distinction between maps much more obvious to the * players, which is should not be. * Currently, this function is called from the * change_map_light function * * @param map * map on which affected players are. */ void update_all_map_los(mapstruct *map) { player *pl; for (pl = first_player; pl != NULL; pl = pl->next) { if (pl->ob->map == map) pl->do_los = 1; } } /** * This function makes sure that update_los() will be called for all * players on the given map within the next frame. * It is triggered by removal or inserting of objects which blocks * the sight in the map. * Modified by MSW 2001-07-12 to take a coordinate of the changed * position, and to also take map tiling into account. This change * means that just being on the same map is not sufficient - the * space that changes must be withing your viewable area. * * @param map * map that changed. * @param x * @param y * coordinates of the change. * * @todo * check if this couldn't be simplified, especially tiling (isn't there a function somewhere that could help?) */ void update_all_los(const mapstruct *map, int x, int y) { player *pl; for (pl = first_player; pl != NULL; pl = pl->next) { /* Player should not have a null map, but do this * check as a safety */ if (!pl->ob->map) continue; /* Same map is simple case - see if pl is close enough. * Note in all cases, we did the check for same map first, * and then see if the player is close enough and update * los if that is the case. If the player is on the * corresponding map, but not close enough, then the * player can't be on another map that may be closer, * so by setting it up this way, we trim processing * some. */ if (pl->ob->map == map) { if ((abs(pl->ob->x-x) <= pl->socket.mapx/2) && (abs(pl->ob->y-y) <= pl->socket.mapy/2)) pl->do_los = 1; } /* Now we check to see if player is on adjacent * maps to the one that changed and also within * view. The tile_maps[] could be null, but in that * case it should never match the pl->ob->map, so * we want ever try to dereference any of the data in it. */ /* The logic for 0 and 3 is to see how far the player is * from the edge of the map (height/width) - pl->ob->(x,y) * and to add current position on this map - that gives a * distance. * For 1 and 2, we check to see how far the given * coordinate (x,y) is from the corresponding edge, * and then add the players location, which gives * a distance. */ else if (pl->ob->map == map->tile_map[0]) { if ((abs(pl->ob->x-x) <= pl->socket.mapx/2) && (abs(y+MAP_HEIGHT(map->tile_map[0])-pl->ob->y) <= pl->socket.mapy/2)) pl->do_los = 1; } else if (pl->ob->map == map->tile_map[2]) { if ((abs(pl->ob->x-x) <= pl->socket.mapx/2) && (abs(pl->ob->y+MAP_HEIGHT(map)-y) <= pl->socket.mapy/2)) pl->do_los = 1; } else if (pl->ob->map == map->tile_map[1]) { if ((abs(pl->ob->x+MAP_WIDTH(map)-x) <= pl->socket.mapx/2) && (abs(pl->ob->y-y) <= pl->socket.mapy/2)) pl->do_los = 1; } else if (pl->ob->map == map->tile_map[3]) { if ((abs(x+MAP_WIDTH(map->tile_map[3])-pl->ob->x) <= pl->socket.mapx/2) && (abs(pl->ob->y-y) <= pl->socket.mapy/2)) pl->do_los = 1; } } } /** * Debug-routine which dumps the array which specifies the visible * area of a player. Triggered by the DM command printlos. * * @param op * DM asking for information. * * @todo * change the command to view another player's LOS? */ void print_los(object *op) { int x, y; char buf[MAP_CLIENT_X*2+20], buf2[10]; snprintf(buf, sizeof(buf), "[fixed] "); for (x = 0; x < op->contr->socket.mapx; x++) { snprintf(buf2, sizeof(buf2), "%2d", x); strncat(buf, buf2, sizeof(buf)-strlen(buf)-1); } draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, buf); for (y = 0; y < op->contr->socket.mapy; y++) { snprintf(buf, sizeof(buf), "[fixed]%2d:", y); for (x = 0; x < op->contr->socket.mapx; x++) { snprintf(buf2, sizeof(buf2), " %1d", op->contr->blocked_los[x][y] == 100 ? 1 : 0); strncat(buf, buf2, sizeof(buf)-strlen(buf)-1); } draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_DEBUG, buf); } } /** * The object is supposed to be visible through walls, thus * check if any players are nearby, and edit their LOS array. * * @param op * object that should be visible. * * @todo * what about tiled maps? */ void make_sure_seen(const object *op) { player *pl; for (pl = first_player; pl; pl = pl->next) if (pl->ob->map == op->map && pl->ob->y-pl->socket.mapy/2 <= op->y && pl->ob->y+pl->socket.mapy/2 >= op->y && pl->ob->x-pl->socket.mapx/2 <= op->x && pl->ob->x+pl->socket.mapx/2 >= op->x) pl->blocked_los[pl->socket.mapx/2+op->x-pl->ob->x][pl->socket.mapy/2+op->y-pl->ob->y] = 0; } /** * The object which is supposed to be visible through * walls has just been removed from the map, so update the los of any * players within its range * * @param op * object that disappears. * * @todo * what about tiled maps? */ void make_sure_not_seen(const object *op) { player *pl; for (pl = first_player; pl; pl = pl->next) if (pl->ob->map == op->map && pl->ob->y-pl->socket.mapy/2 <= op->y && pl->ob->y+pl->socket.mapy/2 >= op->y && pl->ob->x-pl->socket.mapx/2 <= op->x && pl->ob->x+pl->socket.mapx/2 >= op->x) pl->do_los = 1; } crossfire-1.70.0/common/holy.c0000644000014500000120000004257311731300526013122 00000000000000/* * static char *rcsid_holy_c = * "$Id: holy.c 17403 2012-03-08 22:22:35Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file holy.c * God-related common functions. */ #include #include #include #include #include #include static void add_god_to_list(archetype *god_arch); /** * Initializes a god structure. * * @note * Will never return NULL. */ static godlink *init_godslist(void) { godlink *gl = (godlink *)malloc(sizeof(godlink)); if (gl == NULL) fatal(OUT_OF_MEMORY); gl->name = NULL; /* how to describe the god to the player */ gl->arch = NULL; /* pointer to the archetype of this god */ gl->id = 0; /* id of the god */ gl->next = NULL; /* next god in this linked list */ return gl; } /** * This takes a look at all of the archetypes to find * the objects which correspond to the GODS (type GOD) */ void init_gods(void) { archetype *at = NULL; LOG(llevDebug, "Initializing gods...\n"); for (at = first_archetype; at != NULL; at = at->next) if (at->clone.type == GOD) add_god_to_list(at); LOG(llevDebug, "done.\n"); } /** * Adds specified god to linked list, gives it an id. * * @param god_arch * God to add. If NULL, will log an error. */ static void add_god_to_list(archetype *god_arch) { godlink *god; if (!god_arch) { LOG(llevError, "ERROR: Tried to add null god to list!\n"); return; } god = init_godslist(); god->arch = god_arch; god->name = add_string(god_arch->clone.name); if (!first_god) god->id = 1; else { god->id = first_god->id+1; god->next = first_god; } first_god = god; #ifdef DEBUG_GODS LOG(llevDebug, "Adding god %s (%d) to list\n", god->name, god->id); #endif } /** * Returns a random god. * * @return * a random god, or NULL if no god was found. */ godlink *get_rand_god(void) { godlink *god = first_god; int i; if (god) for (i = RANDOM()%(god->id)+1; god; god = god->next) if (god->id == i) break; if (!god) LOG(llevError, "get_rand_god(): can't find a random god!\n"); return god; } /** * Returns a pointer to the object * We need to be VERY careful about using this, as we * are returning a pointer to the CLONE object. -b.t. * * @param godlnk * god to get object. */ const object *pntr_to_god_obj(godlink *godlnk) { if (godlnk && godlnk->arch) return &godlnk->arch->clone; return NULL; } /** * Describe a god. The reason we return a combination is to know what exactly was written for knowledge management. * @param god which god to describe. * @param what information to describe, combination of @ref GOD_xxx "GOD_xxx" flags. * @param buf where to describe, must not be NULL. * @param maxlen maximum wanted length of the description, if 0 no maximum length. * @return information actually written, combination of @ref GOD_xxx "GOD_xxx", based on maxlen. */ int describe_god(const object *god, int what, StringBuffer *buf, size_t maxlen) { int hassomething = 0, real = 0; char temp[HUGE_BUF]; StringBuffer *add; const char *name; name = god->name; /* preamble.. */ assert(buf); stringbuffer_append_printf(buf, "This document contains knowledge concerning the diety %s", name); /* Always have as default information the god's descriptive terms. */ if (nstrtok(god->msg, ",") > 0) { stringbuffer_append_string(buf, ", known as"); stringbuffer_append_string(buf, strtoktolin(god->msg, ",", temp, sizeof(temp))); } else stringbuffer_append_string(buf, "..."); stringbuffer_append_string(buf, "\n ---\n"); if (what & GOD_PATHS) { /* spell paths */ int has_effect = 0; add = stringbuffer_new(); stringbuffer_append_printf(add, "It is rarely known fact that the priests of %s are mystically transformed. Effects of this include:\n", name); if (god->path_attuned) { has_effect = 1; describe_spellpath_attenuation("Attuned", god->path_attuned, add); } if (god->path_repelled) { has_effect = 1; describe_spellpath_attenuation("Repelled", god->path_repelled, add); } if (god->path_denied) { has_effect = 1; describe_spellpath_attenuation("Denied", god->path_denied, add); } if (has_effect) { stringbuffer_append_string(add, "\n ---\n"); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } else { free(stringbuffer_finish(add)); } what |= GOD_PATHS; } if (what & GOD_IMMUNITIES) { int has_effect = 0, tmpvar; char tmpbuf[MAX_BUF]; add = stringbuffer_new(); stringbuffer_append_printf(add, "\nThe priests of %s are known to make cast a mighty prayer of possession which gives the recipient ", name); for (tmpvar = 0; tmpvar < NROFATTACKS; tmpvar++) { if (god->resist[tmpvar] == 100) { has_effect = 1; snprintf(tmpbuf, MAX_BUF, "Immunity to %s", attacktype_desc[tmpvar]); } } if (has_effect) { stringbuffer_append_printf(add, "%s\n ---\n", tmpbuf); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } else { free(stringbuffer_finish(add)); } real |= GOD_IMMUNITIES; } if (what & GOD_BLESSED) { char *cp = stringbuffer_finish(describe_resistance(god, 1, NULL)); if (*cp) { /* This god does have protections */ add = stringbuffer_new(); stringbuffer_append_printf(add, "\nThe priests of %s are known to be able to bestow a blessing which makes the recipient %s\n ---\n", name, cp); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } free(cp); real |= GOD_BLESSED; } if (what & GOD_SACRED) { if (god->race && !(god->path_denied&PATH_SUMMON)) { int i = nstrtok(god->race, ","); add = stringbuffer_new(); stringbuffer_append_printf(add, "Creatures sacred to %s include the\n", name); if (i > 1) stringbuffer_append_printf(add, "following races:%s\n ---\n", strtoktolin(god->race, ",", temp, sizeof(temp))); else stringbuffer_append_printf(add, "race of %s\n ---\n", strtoktolin(god->race, ",", temp, sizeof(temp))); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } real |= GOD_SACRED; } if (what & GOD_RESISTANCES) { char *cp; cp = stringbuffer_finish(describe_resistance(god, 1, NULL)); if (*cp) { /* This god does have protections */ add = stringbuffer_new(); stringbuffer_append_printf(add, "%s has a potent aura which is extended to faithful priests. The effects of this aura include:\n%s\n ---\n", name, cp); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } free(cp); real |= GOD_RESISTANCES; } if (what & GOD_HOLYWORD) { if ((god->slaying) && !(god->path_denied&PATH_TURNING)) { add = stringbuffer_new(); stringbuffer_append_printf(add, "The holy words of %s have the power to slay creatures belonging to the ", name); if (nstrtok(god->slaying, ",") > 1) stringbuffer_append_printf(add, "following races:%s\n ---\n", strtoktolin(god->slaying, ",", temp, sizeof(temp))); else stringbuffer_append_printf(add, "race of%s\n ---\n", strtoktolin(god->slaying, ",", temp, sizeof(temp))); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } real |= GOD_HOLYWORD; } if (what & GOD_ENEMY) { if (god->title) { add = stringbuffer_new(); stringbuffer_append_printf(add, "The gods %s and %s are enemies.\n ---\n", name, god->title); if ((maxlen == 0) || (stringbuffer_length(add) + stringbuffer_length(buf) < maxlen)) { stringbuffer_append_stringbuffer(buf, add); free(stringbuffer_finish(add)); hassomething = 1; } else { free(stringbuffer_finish(add)); return real; } } real |= GOD_ENEMY; } if (hassomething == 0) { /* we got no information beyond the preamble! */ stringbuffer_append_string(buf, " Unfortunately the rest of the information is hopelessly garbled!\n ---\n"); } return real; } /** * Frees all god information. */ void free_all_god(void) { godlink *god, *godnext; LOG(llevDebug, "Freeing god information\n"); for (god = first_god; god; god = godnext) { godnext = god->next; if (god->name) free_string(god->name); free(god); } first_god = NULL; } #define DESCRIBE_ABILITY(retbuf, variable, name) \ if (variable) { \ int i, j = 0; \ strcat(retbuf, "(" name ": "); \ for (i = 0; i < NROFATTACKS; i++) \ if (variable&(1<next) { const object *god = pntr_to_god_obj(glist); char tmpbuf[HUGE_BUF], *final; int tmpvar, gifts = 0; fprintf(stderr, "GOD: %s\n", god->name); fprintf(stderr, " avatar stats:\n"); fprintf(stderr, " S:%d C:%d D:%d I:%d W:%d P:%d\n", god->stats.Str, god->stats.Con, god->stats.Dex, god->stats.Int, god->stats.Wis, god->stats.Pow); fprintf(stderr, " lvl:%d speed:%4.2f\n", god->level, god->speed); fprintf(stderr, " wc:%d ac:%d hp:%d dam:%d\n", god->stats.wc, god->stats.ac, god->stats.hp, god->stats.dam); fprintf(stderr, " enemy: %s\n", god->title ? god->title : "NONE"); if (god->other_arch) { object *serv = &god->other_arch->clone; fprintf(stderr, " servant stats: (%s)\n", god->other_arch->name); fprintf(stderr, " S:%d C:%d D:%d I:%d W:%d P:%d\n", serv->stats.Str, serv->stats.Con, serv->stats.Dex, serv->stats.Int, serv->stats.Wis, serv->stats.Pow); fprintf(stderr, " lvl:%d speed:%4.2f\n", serv->level, serv->speed); fprintf(stderr, " wc:%d ac:%d hp:%d dam:%d\n", serv->stats.wc, serv->stats.ac, serv->stats.hp, serv->stats.dam); } else fprintf(stderr, " servant: NONE\n"); fprintf(stderr, " aligned_race(s): %s\n", god->race); fprintf(stderr, " enemy_race(s): %s\n", (god->slaying ? god->slaying : "none")); final = stringbuffer_finish(describe_resistance(god, 1, NULL)); fprintf(stderr, "%s", final); free(final); snprintf(tmpbuf, sizeof(tmpbuf), " attacktype:"); if ((tmpvar = god->attacktype)) { strcat(tmpbuf, "\n "); DESCRIBE_ABILITY(tmpbuf, tmpvar, "Attacks"); } strcat(tmpbuf, "\n aura:"); strcat(tmpbuf, "\n paths:"); if ((tmpvar = god->path_attuned)) { strcat(tmpbuf, "\n "); DESCRIBE_PATH(tmpbuf, tmpvar, "Attuned"); } if ((tmpvar = god->path_repelled)) { strcat(tmpbuf, "\n "); DESCRIBE_PATH(tmpbuf, tmpvar, "Repelled"); } if ((tmpvar = god->path_denied)) { strcat(tmpbuf, "\n "); DESCRIBE_PATH(tmpbuf, tmpvar, "Denied"); } fprintf(stderr, "%s\n", tmpbuf); fprintf(stderr, " Desc: %s", god->msg ? god->msg : "---\n"); fprintf(stderr, " Priest gifts/limitations: "); if (!QUERY_FLAG(god, FLAG_USE_WEAPON)) { gifts = 1; fprintf(stderr, "\n weapon use is forbidden"); } if (!QUERY_FLAG(god, FLAG_USE_ARMOUR)) { gifts = 1; fprintf(stderr, "\n no armour may be worn"); } if (QUERY_FLAG(god, FLAG_UNDEAD)) { gifts = 1; fprintf(stderr, "\n is undead"); } if (QUERY_FLAG(god, FLAG_SEE_IN_DARK)) { gifts = 1; fprintf(stderr, "\n has infravision "); } if (QUERY_FLAG(god, FLAG_XRAYS)) { gifts = 1; fprintf(stderr, "\n has X-ray vision"); } if (QUERY_FLAG(god, FLAG_REFL_MISSILE)) { gifts = 1; fprintf(stderr, "\n reflect missiles"); } if (QUERY_FLAG(god, FLAG_REFL_SPELL)) { gifts = 1; fprintf(stderr, "\n reflect spells"); } if (QUERY_FLAG(god, FLAG_STEALTH)) { gifts = 1; fprintf(stderr, "\n is stealthy"); } if (QUERY_FLAG(god, FLAG_MAKE_INVIS)) { gifts = 1; fprintf(stderr, "\n is (permanently) invisible"); } if (QUERY_FLAG(god, FLAG_BLIND)) { gifts = 1; fprintf(stderr, "\n is blind"); } if (god->last_heal) { gifts = 1; fprintf(stderr, "\n hp regenerate at %d", god->last_heal); } if (god->last_sp) { gifts = 1; fprintf(stderr, "\n sp regenerate at %d", god->last_sp); } if (god->last_eat) { gifts = 1; fprintf(stderr, "\n digestion is %s (%d)", god->last_eat < 0 ? "slowed" : "faster", god->last_eat); } if (god->last_grace) { gifts = 1; fprintf(stderr, "\n grace regenerates at %d", god->last_grace); } if (god->stats.luck) { gifts = 1; fprintf(stderr, "\n luck is %d", god->stats.luck); } if (!gifts) fprintf(stderr, "NONE"); fprintf(stderr, "\n\n"); } } crossfire-1.70.0/common/init.c0000644000014500000120000004005211731300526013100 00000000000000/* * static char *rcsid_init_c = * "$Id: init.c 16018 2011-12-03 15:13:09Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Basic initialization for the common library. */ #define EXTERN #define INIT_C #include #include static void init_environ(void); static void init_defaults(void); static void init_dynamic(void); static void init_clocks(void); static void init_attackmess(void); /* * You unforunately need to looking in include/global.h to see what these * correspond to. */ struct Settings settings = { LOGFILE, /* Logfile */ CSPORT, /* Client/server port */ llevInfo, /* Debug level */ 0, NULL, 0, /* dumpvalues, dumparg, daemonmode */ 0, /* argc */ NULL, /* argv */ CONFDIR, DATADIR, LOCALDIR, PLAYERDIR, MAPDIR, ARCHETYPES, REGIONS, TREASURES, UNIQUE_DIR, TEMPLATE_DIR, TMPDIR, STAT_LOSS_ON_DEATH, PK_LUCK_PENALTY, PERMANENT_EXPERIENCE_RATIO, DEATH_PENALTY_RATIO, DEATH_PENALTY_LEVEL, BALANCED_STAT_LOSS, NOT_PERMADETH, SIMPLE_EXP, RESET_LOCATION_TIME, SET_TITLE, RESURRECTION, SEARCH_ITEMS, SPELL_ENCUMBRANCE, SPELL_FAILURE_EFFECTS, CASTING_TIME, REAL_WIZ, RECYCLE_TMP_MAPS, SPELLPOINT_LEVEL_DEPEND, SET_FRIENDLY_FIRE, "", /* Who format specifier */ "", /* who wiz format specifier */ MOTD, "rules", "news", "", /* DM_MAIL */ 0, /* This and the next 3 values are metaserver values */ "", "", 0, "", 0, 0, 0, 0, 0, 0, 0, /* worldmap settings*/ NULL, EMERGENCY_X, EMERGENCY_Y, 0, 1.0, /* Armor enchantment stuff */ ARMOR_MAX_ENCHANT, ARMOR_WEIGHT_REDUCTION, ARMOR_WEIGHT_LINEAR, ARMOR_SPEED_IMPROVEMENT, ARMOR_SPEED_LINEAR, 1, /* no_player_stealing */ 0, /* create_home_portals */ 1, /* personalized_blessings */ 5000000, /* pk_max_experience */ 10, /* pk_max_experience_percent */ 0, /* allow_denied_spells_writing */ 0, /* allow_broken_converters */ 0, /* log_timestamp */ NULL, /* log_timestamp_format */ 3, /* starting_stat_min */ 18, /* starting_stat_max */ 85, /* starting_stat_points */ 115, /* roll_stat_points */ 0, /* max_stat - will be loaded from stats file */ 1, /* special_break_map, 1 for historical reasons */ NULL, /* disabled_plugins */ 0, /* ignore_plugin_compatibility */ }; struct Statistics statistics; /** * Perhaps not the best place for this, but needs to be * in some file in the common area so that standalone * programs, like the random map generator, can be built. */ const char *const spellpathnames[NRSPELLPATHS] = { "Protection", "Fire", "Frost", "Electricity", "Missiles", "Self", "Summoning", "Abjuration", "Restoration", "Detonation", "Mind", "Creation", "Teleportation", "Information", "Transmutation", "Transferrence", "Turning", "Wounding", "Death", "Light" }; /** * This loads the emergency map information from a * .emergency file in the map directory. Doing this makes * it easier to switch between map distributions (don't need * to recompile. Note that there is no reason I see that * this could not be re-loaded during play, but it seems * like there should be little reason to do that. * * @note * If file doesn't exist, will not do anything. */ static void init_emergency_mappath(void) { char filename[MAX_BUF], tmpbuf[MAX_BUF]; FILE *fp; int online = 0; settings.emergency_mapname = strdup_local(EMERGENCY_MAPPATH); /* If this file doesn't exist, not a big deal */ snprintf(filename, sizeof(filename), "%s/%s/.emergency", settings.datadir, settings.mapdir); fp = fopen(filename, "r"); if (fp != NULL) { while (fgets(tmpbuf, MAX_BUF-1, fp)) { if (tmpbuf[0] == '#') continue; /* ignore comments */ if (online == 0) { tmpbuf[strlen(tmpbuf)-1] = 0; /* kill newline */ free(settings.emergency_mapname); settings.emergency_mapname = strdup_local(tmpbuf); } else if (online == 1) { settings.emergency_x = atoi(tmpbuf); } else if (online == 2) { settings.emergency_y = atoi(tmpbuf); } online++; if (online > 2) break; } fclose(fp); if (online <= 2) LOG(llevError, "Online read partial data from %s\n", filename); LOG(llevDebug, "Emergency mappath reset to %s (%d, %d)\n", settings.emergency_mapname, settings.emergency_x, settings.emergency_y); } } /** * It is vital that init_library() is called by any functions * using this library. * If you want to lessen the size of the program using the library, * you can replace the call to init_library() with init_globals() and * init_function_pointers(). Good idea to also call init_vars and * init_hash_table if you are doing any object loading. */ void init_library(void) { init_environ(); init_globals(); init_stats(FALSE); /* Needs to be fairly early, since the loader will check * against the settings.max_stat value */ init_hash_table(); i18n_init(); init_objects(); init_vars(); init_block(); read_bmap_names(); read_smooth(); init_anim(); /* Must be after we read in the bitmaps */ init_archetypes(); /* Reads all archetypes from file */ init_attackmess(); init_clocks(); init_emergency_mappath(); init_experience(); init_regions(); /* init_dynamic() loads a map, so needs a region */ init_dynamic(); } /** * Initializes values from the environmental variables. * it needs to be called very early, since command line options should * overwrite these if specified. */ static void init_environ(void) { char *cp; cp = getenv("CROSSFIRE_LIBDIR"); if (cp) settings.datadir = cp; cp = getenv("CROSSFIRE_LOCALDIR"); if (cp) settings.localdir = cp; cp = getenv("CROSSFIRE_PLAYERDIR"); if (cp) settings.playerdir = cp; cp = getenv("CROSSFIRE_MAPDIR"); if (cp) settings.mapdir = cp; cp = getenv("CROSSFIRE_ARCHETYPES"); if (cp) settings.archetypes = cp; cp = getenv("CROSSFIRE_TREASURES"); if (cp) settings.treasures = cp; cp = getenv("CROSSFIRE_UNIQUEDIR"); if (cp) settings.uniquedir = cp; cp = getenv("CROSSFIRE_TEMPLATEDIR"); if (cp) settings.templatedir = cp; cp = getenv("CROSSFIRE_TMPDIR"); if (cp) settings.tmpdir = cp; } /** * Initialises all global variables. * Might use environment-variables as default for some of them. * * Setups logfile, and such variables. */ void init_globals(void) { memset(&statistics, 0, sizeof(struct Statistics)); if (settings.logfilename[0] == 0) { logfile = stderr; } else if ((logfile = fopen(settings.logfilename, "a")) == NULL) { fprintf(stderr, "Unable to open %s as the logfile - will use stderr instead\n", settings.logfilename); logfile = stderr; } else { setvbuf(logfile, NULL, _IOLBF, 0); } exiting = 0; first_player = NULL; first_friendly_object = NULL; first_map = NULL; first_treasurelist = NULL; first_artifactlist = NULL; first_archetype = NULL; *first_map_ext_path = 0; warn_archetypes = 0; nroftreasures = 0; nrofartifacts = 0; nrofallowedstr = 0; ring_arch = NULL; amulet_arch = NULL; staff_arch = NULL; undead_name = add_string("undead"); trying_emergency_save = 0; num_animations = 0; animations = NULL; animations_allocated = 0; init_defaults(); } /** * Cleans all memory allocated for global variables. * * Will clear: * * attack messages * * emergency map settings * * friendly list * * experience * * regions */ void free_globals(void) { int msg, attack; objectlink *friend; region *reg; FREE_AND_CLEAR_STR(undead_name); for (msg = 0; msg < NROFATTACKMESS; msg++) for (attack = 0; attack < MAXATTACKMESS; attack++) { free(attack_mess[msg][attack].buf1); free(attack_mess[msg][attack].buf2); free(attack_mess[msg][attack].buf3); } free(settings.emergency_mapname); while (first_friendly_object) { friend = first_friendly_object->next; FREE_AND_CLEAR(first_friendly_object); first_friendly_object = friend; } free_experience(); while (first_region) { reg = first_region->next; FREE_AND_CLEAR(first_region->name); FREE_AND_CLEAR(first_region->parent_name); FREE_AND_CLEAR(first_region->jailmap); FREE_AND_CLEAR(first_region->msg); FREE_AND_CLEAR(first_region->longname); FREE_AND_CLEAR(first_region); first_region = reg; } } /** * Sets up and initialises the linked list of free and used objects. * Allocates a certain chunk of objects and puts them on the free list. * Called by init_library(); */ void init_objects(void) { #ifndef MEMORY_DEBUG int i; #endif /* Initialize all objects: */ objects = NULL; active_objects = NULL; #ifdef MEMORY_DEBUG free_objects = NULL; #else free_objects = objarray; objarray[0].prev = NULL, objarray[0].next = &objarray[1], SET_FLAG(&objarray[0], FLAG_REMOVED); SET_FLAG(&objarray[0], FLAG_FREED); for (i = 1; i < STARTMAX-1; i++) { objarray[i].next = &objarray[i+1]; objarray[i].prev = &objarray[i-1]; SET_FLAG(&objarray[i], FLAG_REMOVED); SET_FLAG(&objarray[i], FLAG_FREED); } objarray[STARTMAX-1].next = NULL; objarray[STARTMAX-1].prev = &objarray[STARTMAX-2]; SET_FLAG(&objarray[STARTMAX-1], FLAG_REMOVED); SET_FLAG(&objarray[STARTMAX-1], FLAG_FREED); #endif } /** * Initialises global variables which can be changed by options. * Called by init_library(). */ static void init_defaults(void) { nroferrors = 0; } /** * Initializes first_map_path from the archetype collection. * * Must be called after archetypes have been initialized. * * @note * will call exit() if no MAP archetype was found. */ static void init_dynamic(void) { archetype *at = first_archetype; while (at) { if (at->clone.type == MAP && at->clone.subtype == MAP_TYPE_LEGACY) { if (at->clone.race) { strcpy(first_map_ext_path, at->clone.race); } if (EXIT_PATH(&at->clone)) { mapstruct *first; snprintf(first_map_path, sizeof(first_map_path), "%s", EXIT_PATH(&at->clone)); first = ready_map_name(first_map_path, 0); if (!first) { LOG(llevError, "Initial map %s can't be found! Please ensure maps are correctly installed.\n", first_map_path); LOG(llevError, "Unable to continue without initial map.\n"); abort(); } delete_map(first); return; } } at = at->next; } LOG(llevError, "You need a archetype called 'map' and it have to contain start map\n"); exit(-1); } /** Ingame time */ unsigned long todtick; /** * Write out the current time to the file so time does not * reset every time the server reboots. */ void write_todclock(void) { char filename[MAX_BUF]; FILE *fp; snprintf(filename, sizeof(filename), "%s/clockdata", settings.localdir); fp = fopen(filename, "w"); if (fp == NULL) { LOG(llevError, "Cannot open %s for writing\n", filename); return; } fprintf(fp, "%lu", todtick); fclose(fp); } /** * Initializes the gametime and TOD counters * Called by init_library(). */ static void init_clocks(void) { char filename[MAX_BUF]; FILE *fp; static int has_been_done = 0; if (has_been_done) return; else has_been_done = 1; snprintf(filename, sizeof(filename), "%s/clockdata", settings.localdir); LOG(llevDebug, "Reading clockdata from %s...\n", filename); fp = fopen(filename, "r"); if (fp == NULL) { LOG(llevError, "Can't open %s.\n", filename); todtick = 0; write_todclock(); return; } /* Read TOD and default to 0 on failure. */ if (fscanf(fp, "%lu", &todtick) == 1) { LOG(llevDebug, "todtick=%lu\n", todtick); fclose(fp); } else { LOG(llevError, "Couldn't parse todtick, using default value 0\n"); todtick = 0; fclose(fp); write_todclock(); } } /** * Initializes the attack messages. * Called by init_library(). * * Memory will be cleared by free_globals(). */ static void init_attackmess(void) { char buf[MAX_BUF]; char filename[MAX_BUF]; char *cp, *p; FILE *fp; static int has_been_done = 0; int mess = -1, level; int mode = 0, total = 0; if (has_been_done) return; else has_been_done = 1; snprintf(filename, sizeof(filename), "%s/attackmess", settings.datadir); LOG(llevDebug, "Reading attack messages from %s...\n", filename); fp = fopen(filename, "r"); if (fp == NULL) { LOG(llevError, "Can't open %s.\n", filename); return; } level = 0; while (fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; cp = strchr(buf, '\n'); if (cp != NULL) *cp = '\0'; cp = buf; while (*cp == ' ') /* Skip blanks */ cp++; if (strncmp(cp, "TYPE:", 5) == 0) { p = strtok(buf, ":"); p = strtok(NULL, ":"); if (mode == 1) { attack_mess[mess][level].level = -1; attack_mess[mess][level].buf1 = NULL; attack_mess[mess][level].buf2 = NULL; attack_mess[mess][level].buf3 = NULL; } level = 0; mess = atoi(p); mode = 1; continue; } if (mode == 1) { p = strtok(buf, "="); attack_mess[mess][level].level = atoi(buf); p = strtok(NULL, "="); if (p != NULL) attack_mess[mess][level].buf1 = strdup_local(p); else attack_mess[mess][level].buf1 = strdup_local(""); mode = 2; continue; } else if (mode == 2) { p = strtok(buf, "="); attack_mess[mess][level].level = atoi(buf); p = strtok(NULL, "="); if (p != NULL) attack_mess[mess][level].buf2 = strdup_local(p); else attack_mess[mess][level].buf2 = strdup_local(""); mode = 3; continue; } else if (mode == 3) { p = strtok(buf, "="); attack_mess[mess][level].level = atoi(buf); p = strtok(NULL, "="); if (p != NULL) attack_mess[mess][level].buf3 = strdup_local(p); else attack_mess[mess][level].buf3 = strdup_local(""); mode = 1; level++; total++; continue; } } LOG(llevDebug, "got %d messages in %d categories.\n", total, mess+1); fclose(fp); } crossfire-1.70.0/common/porting.c0000644000014500000120000003742011731300526013624 00000000000000/* * static char *rcsid_porting_c = * "$Id: porting.c 15042 2011-09-04 09:09:08Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file porting.c * This file contains various functions that are not really unique for * crossfire, but rather provides what should be standard functions * for systems that do not have them. In this way, most of the * nasty system dependent stuff is contained here, with the program * calling these functions. */ #include #ifdef WIN32 /* ---win32 exclude/include headers */ #include "process.h" #include #define pid_t int /* we include it non global, because there is a redefinition in python.h */ #else #include #include #include #include #include #include /* Need to pull in the HAVE_... values somehow */ /* win32 reminder: always put this in a ifndef win32 block */ #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #include /* Has to be after above includes so we don't redefine some values */ #include "global.h" /** Used to generate temporary unique name. */ static unsigned int curtmp = 0; /***************************************************************************** * File related functions ****************************************************************************/ /** * A replacement for the tempnam() function since it's not defined * at some unix variants. Do not use this function for new code, use * tempnam_secure() instead. * * @param dir * directory where to create the file. Can be NULL, in which case NULL is returned. * @param pfx * prefix to create unique name. Can be NULL. * @return * path to temporary file, or NULL if failure. Must be freed by caller. */ char *tempnam_local(const char *dir, const char *pfx) { char *name; pid_t pid = getpid(); /* HURD does not have a hard limit, but we do */ #ifndef MAXPATHLEN #define MAXPATHLEN 4096 #endif if (!pfx) pfx = "cftmp."; /* This is a pretty simple method - put the pid as a hex digit and * just keep incrementing the last digit. Check to see if the file * already exists - if so, we'll just keep looking - eventually we should * find one that is free. */ if (dir != NULL) { if (!(name = (char *)malloc(MAXPATHLEN))) return(NULL); do { #ifdef HAVE_SNPRINTF (void)snprintf(name, MAXPATHLEN, "%s/%s%x.%u", dir, pfx, (unsigned int)pid, curtmp); #else (void)sprintf(name, "%s/%s%x%u", dir, pfx, (unsigned int)pid, curtmp); #endif curtmp++; } while (access(name, F_OK) != -1); return(name); } return(NULL); } /** * A replacement for the tempnam_local() function since that one is not very * secure. This one will open the file in an atomic way on platforms where it is * possible. * * @param dir * Directory where to create the file. Can be NULL, in which case NULL is returned. * @param pfx * Prefix to create unique name. Can be NULL. * @param filename * This should be a pointer to a char*, the function will overwrite the char* * with the name of the resulting file. Must be freed by caller. Value is * unchanged if the function returns NULL. * @return * A pointer to a FILE opened exclusively, or NULL if failure. * It is up to the caller to properly close it. * @note * The file will be opened read-write. * * @todo * Maybe adding some ifdef for non-UNIX? I don't have any such system around * to test with. */ FILE *tempnam_secure(const char *dir, const char *pfx, char **filename) { char *tempname = NULL; int fd; int i; FILE *file = NULL; #define MAXTMPRETRY 10 /* Limit number of retries to MAXRETRY */ for (i = 0; i < MAXTMPRETRY; i++) { tempname = tempnam_local(dir, pfx); /* tempnam_local only fails for really bad stuff, so lets bail out right * away then. */ if (!tempname) return NULL; fd = open(tempname, O_CREAT|O_EXCL|O_RDWR, S_IRUSR|S_IWUSR); if (fd != -1) break; if (errno == EEXIST) LOG(llevError, "Created file detected in tempnam_secure. Someone hoping for a race condition?\n"); free(tempname); } /* Check that we successfully got an fd. */ if (fd == -1) return NULL; file = fdopen(fd, "w+"); if (!file) { LOG(llevError, "fdopen() failed in tempnam_secure()!\n"); free(tempname); return NULL; } *filename = tempname; return file; } /** * This function removes everything in the directory, and the directory itself. * * Errors are LOG() to error level. * * @param path * directory to remove. * * @note * will fail if any file has a name starting by . */ void remove_directory(const char *path) { DIR *dirp; char buf[MAX_BUF]; struct stat statbuf; int status; if ((dirp = opendir(path)) != NULL) { struct dirent *de; for (de = readdir(dirp); de; de = readdir(dirp)) { /* Don't remove '.' or '..' In theory we should do a better * check for .., but the directories we are removing are fairly * limited and should not have dot files in them. */ if (de->d_name[0] == '.') continue; /* Linux actually has a type field in the dirent structure, * but that is not portable - stat should be portable */ status = stat(de->d_name, &statbuf); if ((status != -1) && (S_ISDIR(statbuf.st_mode))) { snprintf(buf, sizeof(buf), "%s/%s", path, de->d_name); remove_directory(buf); continue; } snprintf(buf, sizeof(buf), "%s/%s", path, de->d_name); if (unlink(buf)) { LOG(llevError, "Unable to remove %s\n", path); } } closedir(dirp); } if (rmdir(path)) { LOG(llevError, "Unable to remove directory %s\n", path); } } #if defined(sgi) #include #include #include #define popen fixed_popen /** * Executes a command in the background through a call to /bin/sh. * * @param command * command which will be launched. * @param type * whether we want to read or write to that command. Must be "r" or "w". * @return * pointer to stream to command, NULL on failure. * @note * for SGI only. * * @todo * is this actually used? */ FILE *popen_local(const char *command, const char *type) { int fd[2]; int pd; FILE *ret; if (!strcmp(type, "r")) { pd = STDOUT_FILENO; } else if (!strcmp(type, "w")) { pd = STDIN_FILENO; } else { return NULL; } if (pipe(fd) != -1) { switch (fork()) { case -1: close(fd[0]); close(fd[1]); break; case 0: close(fd[0]); if ((fd[1] == pd) || (dup2(fd[1], pd) == pd)) { if (fd[1] != pd) { close(fd[1]); } execl("/bin/sh", "sh", "-c", command, NULL); close(pd); } exit(1); break; default: close(fd[1]); if (ret = fdopen(fd[0], type)) { return ret; } close(fd[0]); break; } } return NULL; } #endif /* defined(sgi) */ /***************************************************************************** * String related function ****************************************************************************/ /** * A replacement of strdup(), since it's not defined at some * unix variants. * * @param str * string to duplicate. * @return * copy, needs to be freed by caller. NULL on memory allocation error. */ char *strdup_local(const char *str) { char *c = (char *)malloc(strlen(str)+1); if (c != NULL) strcpy(c, str); return c; } /** Converts x to number */ #define DIGIT(x) (isdigit(x) ? (x)-'0' : \ islower(x) ? (x)+10-'a' : (x)+10-'A') #define MBASE ('z'-'a'+1+10) #if !defined(HAVE_STRTOL) /** * Converts a string to long. * * A replacement of strtol() since it's not defined at * many unix systems. * * @param str * string to convert. * @param ptr * will point to first invalid character in str. * @param base * base to consider to convert to long. * * @todo * check weird -+ handling (missing break?) */ long strtol(register char *str, char **ptr, register int base) { register long val; register int c; int xx, neg = 0; if (ptr != (char **)0) *ptr = str; /* in case no number is formed */ if (base < 0 || base > MBASE) return (0); /* base is invalid */ if (!isalnum(c = *str)) { while (isspace(c)) c = *++str; switch (c) { case '-': neg++; case '+': c = *++str; } } if (base == 0) { if (c != '0') base = 10; else { if (str[1] == 'x' || str[1] == 'X') base = 16; else base = 8; } } /* * For any base > 10, the digits incrementally following * 9 are assumed to be "abc...z" or "ABC...Z" */ if (!isalnum(c) || (xx = DIGIT(c)) >= base) return 0; /* no number formed */ if (base == 16 && c == '0' && isxdigit(str[2]) && (str[1] == 'x' || str[1] == 'X')) c = *(str += 2); /* skip over leading "0x" or "0X" */ for (val = -DIGIT(c); isalnum(c = *++str) && (xx = DIGIT(c)) < base; ) /* accumulate neg avoids surprises near MAXLONG */ val = base*val-xx; if (ptr != (char **)0) *ptr = str; return (neg ? val : -val); } #endif /** * Case-insensitive comparaison of strings. * * This seems to be lacking on some system. * * @param s1 * @param s2 * strings to compare. * @param n * maximum number of chars to compare. * @return * @li -1 if s1 is less than s2 * @li 0 if s1 equals s2 * @li 1 if s1 is greater than s2 */ #if !defined(HAVE_STRNCASECMP) int strncasecmp(const char *s1, const char *s2, int n) { register int c1, c2; while (*s1 && *s2 && n) { c1 = tolower(*s1); c2 = tolower(*s2); if (c1 != c2) return (c1-c2); s1++; s2++; n--; } if (!n) return (0); return (int)(*s1-*s2); } #endif #if !defined(HAVE_STRCASECMP) /** * Case-insensitive comparaison of strings. * * This seems to be lacking on some system. * * @param s1 * @param s2 * strings to compare. * @return * @li -1 if s1 is less than s2 * @li 0 if s1 equals s2 * @li 1 if s1 is greater than s2 */ int strcasecmp(const char *s1, const char *s2) { register int c1, c2; while (*s1 && *s2) { c1 = tolower(*s1); c2 = tolower(*s2); if (c1 != c2) return (c1-c2); s1++; s2++; } if (*s1 == '\0' && *s2 == '\0') return 0; return (int)(*s1-*s2); } #endif /** * Finds a substring in a string, in a case-insensitive manner. * * @param s * string we're searching into. * @param find * string we're searching for. * @return * pointer to first occurrence of find in s, NULL if not found. */ const char *strcasestr_local(const char *s, const char *find) { char c, sc; size_t len; if ((c = *find++) != 0) { c = tolower(c); len = strlen(find); do { do { if ((sc = *s++) == 0) return NULL; } while (tolower(sc) != c); } while (strncasecmp(s, find, len) != 0); s--; } return s; } #if !defined(HAVE_SNPRINTF) /** * Formats to a string, in a size-safe way. * * @param dest * where to write. * @param max * max length of dest. * @param format * format specifier, and arguments. * @return * number of chars written to dest. * * @warning * this function will abort() if there is an overflow. * * @todo * try to do something better than abort()? */ int snprintf(char *dest, int max, const char *format, ...) { va_list var; int ret; va_start(var, format); ret = vsprintf(dest, format, var); va_end(var); if (ret > max) abort(); return ret; } #endif /** * This takes an err number and returns a string with a description of * the error. * * @param errnum * error we want the description of. * @param buf * buffer to contain the description. * @param size * buf's length. * @return * buf. */ char *strerror_local(int errnum, char *buf, size_t size) { #if defined(HAVE_STRERROR_R) /* Then what flavour of strerror_r... */ # if defined(STRERROR_R_CHAR_P) char *bbuf; buf[0] = 0; bbuf = (char *)strerror_r(errnum, buf, size); if ((buf[0] == 0) && (bbuf != NULL)) snprintf(buf, size, "%s", bbuf); # else if (strerror_r(errnum, buf, size) != 0) { /* EINVAL and ERANGE are possible errors from this strerror_r */ if (errno == ERANGE) { snprintf(buf, size, "Too small buffer."); } else if (errno == EINVAL) { snprintf(buf, size, "Error number invalid."); } } # endif /* STRERROR_R_CHAR_P */ #else /* HAVE_STRERROR_R */ # if defined(HAVE_STRERROR) snprintf(buf, size, "%s", strerror(errnum)); # else # error If this is C89 the compiler should have strerror!; # endif #endif /* HAVE_STRERROR_R */ return buf; } /** * Computes the square root. * Based on (n+1)^2 = n^2 + 2n + 1 * given that 1^2 = 1, then * 2^2 = 1 + (2 + 1) = 1 + 3 = 4 * 3^2 = 4 + (4 + 1) = 4 + 5 = 1 + 3 + 5 = 9 * 4^2 = 9 + (6 + 1) = 9 + 7 = 1 + 3 + 5 + 7 = 16 * ... * In other words, a square number can be express as the sum of the * series n^2 = 1 + 3 + ... + (2n-1) * * @param n * number of which to compute the root. * @return * square root. */ int isqrt(int n) { int result, sum, prev; result = 0; prev = sum = 1; while (sum <= n) { prev += 2; sum += prev; ++result; } return result; } /** * Checks if any directories in the given path doesn't exist, and creates if necessary. * * @param filename * file path we'll want to access. Can be NULL. * * @note * will LOG() to debug and error. */ void make_path_to_file(const char *filename) { char buf[MAX_BUF], *cp = buf; struct stat statbuf; if (!filename || !*filename) return; strcpy(buf, filename); LOG(llevDebug, "make_path_tofile %s...\n", filename); while ((cp = strchr(cp+1, (int)'/'))) { *cp = '\0'; if (stat(buf, &statbuf) || !S_ISDIR(statbuf.st_mode)) { LOG(llevDebug, "Was not dir: %s\n", buf); if (mkdir(buf, SAVE_DIR_MODE)) { char err[MAX_BUF]; LOG(llevError, "Cannot mkdir %s: %s\n", buf, strerror_local(errno, err, sizeof(err))); return; } } *cp = '/'; } } crossfire-1.70.0/common/Makefile.in0000644000014500000120000004776411732537021014062 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@scruz.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = common DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ loader.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libcross_a_AR = $(AR) $(ARFLAGS) libcross_a_LIBADD = am_libcross_a_OBJECTS = anim.$(OBJEXT) arch.$(OBJEXT) \ artifact.$(OBJEXT) button.$(OBJEXT) dialog.$(OBJEXT) \ exp.$(OBJEXT) friend.$(OBJEXT) glue.$(OBJEXT) holy.$(OBJEXT) \ info.$(OBJEXT) image.$(OBJEXT) init.$(OBJEXT) item.$(OBJEXT) \ languages.$(OBJEXT) links.$(OBJEXT) living.$(OBJEXT) \ loader.$(OBJEXT) logger.$(OBJEXT) los.$(OBJEXT) map.$(OBJEXT) \ ob_methods.$(OBJEXT) ob_types.$(OBJEXT) object.$(OBJEXT) \ path.$(OBJEXT) porting.$(OBJEXT) player.$(OBJEXT) \ re-cmp.$(OBJEXT) readable.$(OBJEXT) recipe.$(OBJEXT) \ region.$(OBJEXT) shstr.$(OBJEXT) stringbuffer.$(OBJEXT) \ time.$(OBJEXT) treasure.$(OBJEXT) utils.$(OBJEXT) libcross_a_OBJECTS = $(am_libcross_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) YLWRAP = $(top_srcdir)/utils/ylwrap SOURCES = $(libcross_a_SOURCES) DIST_SOURCES = $(libcross_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libcross.a libcross_a_SOURCES = \ anim.c \ arch.c\ artifact.c\ button.c\ dialog.c \ exp.c\ friend.c\ glue.c\ holy.c\ info.c\ image.c \ init.c\ item.c\ languages.c\ links.c\ living.c\ loader.l\ logger.c\ los.c\ map.c\ ob_methods.c \ ob_types.c \ object.c\ path.c\ porting.c\ player.c\ re-cmp.c\ readable.c\ recipe.c\ region.c\ shstr.c\ stringbuffer.c\ time.c\ treasure.c\ utils.c EXTRA_DIST = README AM_CPPFLAGS = -I$(top_srcdir)/include -DDATADIR=\"$(pkgdatadir)\" -DCONFDIR=\"$(pkgconfdir)\" \ -DLIBDIR=\"$(pkglibdir)\" -DLOCALDIR=\"$(pkgstatedir)\" AM_LFLAGS = -i CLEANFILES = loader.c all: all-am .SUFFIXES: .SUFFIXES: .c .l .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libcross.a: $(libcross_a_OBJECTS) $(libcross_a_DEPENDENCIES) $(EXTRA_libcross_a_DEPENDENCIES) -rm -f libcross.a $(libcross_a_AR) libcross.a $(libcross_a_OBJECTS) $(libcross_a_LIBADD) $(RANLIB) libcross.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/artifact.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/button.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/friend.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glue.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/holy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/languages.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/links.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/living.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/los.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ob_methods.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ob_types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/object.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/porting.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/re-cmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/recipe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/region.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shstr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringbuffer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/treasure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .l.c: $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f loader.c clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am proto: cproto -e -o ../include/libproto.h.bak $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) loader.c " " | $(AWK) -v RS=" " '/.c$$/ { print }'` sed -e "s/__signed/signed/g" -e "/inline/d" -e "/YY_BUFFER/d" -e "/yy_size_t/d" < ../include/libproto.h.bak > ../include/libproto.h chmod 644 ../include/libproto.h rm -f ../include/libproto.h.bak # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/common/languages.c0000644000014500000120000002141511731300526014105 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002,2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * i18n support routines. See @ref page_i18n. * @warning * This file is encoded in UTF-8, take care to not mess the language_names array. */ #include /** * One message. */ typedef struct i18n_message { sstring code; /**< Message code, usually the English version. */ sstring message; /**< Message to display. */ } i18n_message; /** * One available language. */ typedef struct i18n_file { sstring code; /**< Language code, "message." extension. */ sstring name; /**< Language's name, in its native version. */ int count; /**< How many items in messages. */ struct i18n_message *messages; /**< Available messages for this language. */ } i18n_file; /** Number of defined languages. */ static int i18n_count = 0; /** Defined languages. */ static struct i18n_file *i18n_files = NULL; /** Index of "English" in the i18nfiles array. */ static int i18n_default = -1; static int i18n_message_compare_code(const i18n_message *a, const i18n_message *b) { return strcmp(a->code, b->code); } /** * Returns the i18n language index associated with the given object. * This only has a meaning for players. * @param op The player object to get the language of * @return The language numerical code. If none is associated, get_language returns 0 */ int get_language(object *op) { if (!op->contr) return 0; if (op->contr->language < 0 || op->contr->language >= i18n_count) return 0; return op->contr->language; } /** * Translate a message in the appropriate language. * @param who who to translate for. * @param code string to translate, usually the English version. * @return translated message, or code if not found or who's language is invalid. */ const char *i18n(const object *who, const char *code) { i18n_message search, *found; if (!who || !who->contr) return code; if (who->contr->language < 0 || who->contr->language >= i18n_count) return code; search.code = add_string(code); found = bsearch(&search, i18n_files[who->contr->language].messages, i18n_files[who->contr->language].count, sizeof(i18n_message), (int (*)(const void *, const void *))i18n_message_compare_code); free_string(search.code); if (found) return found->message; return code; } /** * Attenmpt to find the identifier of a language from its code. * @param code language code. * @return index, -1 if not found. */ int i18n_find_language_by_code(const char *code) { int index; for (index = 0; index < i18n_count; index++) { if (strcmp(code, i18n_files[index].code) == 0) return index; } return -1; } /** * Find the identifier of a language from its code. * @param code language's code. * @return language's code, or the default language if code is invalid. */ int i18n_get_language_by_code(const char *code) { int try = i18n_find_language_by_code(code); if (try != -1) return try; return i18n_default; } /** * Return the code of a specified language. * @param language identifier of the language. * @return language's code, or default language's code if identifier is invalid. */ sstring i18n_get_language_code(int language) { if (language < 0 || language >= i18n_count) return i18n_files[i18n_default].code; return i18n_files[language].code; } /** * List all languages for who. * @param who who to display languages for. */ void i18n_list_languages(object *who) { int index; for (index = 0; index < i18n_count; index++) { draw_ext_info_format(NDI_UNIQUE, 0, who, MSG_TYPE_COMMAND, MSG_SUBTYPE_NONE, "[fixed]%s: %s", i18n_files[index].code, i18n_files[index].name ); } } /** * Replaces '\n' by a newline char. * * Since we are replacing 2 chars by 1, no overflow should happen. * * @param line * text to replace into. */ static void convert_newline(char *line) { char *next; char buf[MAX_BUF]; while ((next = strstr(line, "\\n")) != NULL) { *next = '\n'; *(next+1) = '\0'; snprintf(buf, MAX_BUF, "%s%s", line, next+2); strcpy(line, buf); } } /** * Initializes the i18n subsystem. * Will load all found strings. * If there is an error, calls fatal(). */ void i18n_init(void) { char dirname[MAX_BUF], filename[MAX_BUF], line[HUGE_BUF]; FILE *fp; char *token; DIR *dir; struct dirent *file; i18n_message code, *found; snprintf(dirname, sizeof(dirname), "%s/i18n/", settings.datadir); dir = opendir(dirname); if (dir == NULL) { LOG(llevError, "couldn't open i18n directory %s\n", dirname); fatal(SEE_LAST_ERROR); } code.code = add_string("LN"); while ((file = readdir(dir)) != NULL) { if (strncmp(file->d_name, "messages.", 9) != 0) continue; snprintf(filename, sizeof(filename), "%s%s", dirname, file->d_name); if ((fp = fopen(filename, "r")) == NULL) { LOG(llevError, "Cannot open i18n file %s: %s\n", filename, strerror_local(errno, line, sizeof(line))); fatal(SEE_LAST_ERROR); } i18n_files = realloc(i18n_files, (i18n_count + 1) * sizeof(i18n_file)); i18n_files[i18n_count].code = add_string(file->d_name + 9); i18n_files[i18n_count].count = 0; i18n_files[i18n_count].messages = NULL; while (fgets(line, MAX_BUF, fp)) { if (line[0] != '#') { line[strlen(line)-1] = '\0'; /* erase the final newline that messes things. */ i18n_files[i18n_count].messages = realloc(i18n_files[i18n_count].messages, (i18n_files[i18n_count].count + 1) * sizeof(i18n_message)); token = strtok(line, "|"); convert_newline(token); i18n_files[i18n_count].messages[i18n_files[i18n_count].count].code = add_string(token); token = strtok(NULL, "|"); if (token != NULL) { convert_newline(token); i18n_files[i18n_count].messages[i18n_files[i18n_count].count].message = add_string(token); } else { i18n_files[i18n_count].messages[i18n_files[i18n_count].count].message = add_refcount(i18n_files[i18n_count].messages[i18n_files[i18n_count].count].code); } i18n_files[i18n_count].count++; } } fclose(fp); qsort(i18n_files[i18n_count].messages, i18n_files[i18n_count].count, sizeof(i18n_message), (int (*)(const void *, const void *))i18n_message_compare_code); found = bsearch(&code, i18n_files[i18n_count].messages, i18n_files[i18n_count].count, sizeof(i18n_message), (int (*)(const void *, const void *))i18n_message_compare_code); if (found == NULL) { LOG(llevError, "couldn't find language name (LN) for %s\n", filename); fatal(SEE_LAST_ERROR); } i18n_files[i18n_count].name = found->message; LOG(llevDebug, "Read %i strings for language: %s\n", i18n_files[i18n_count].count, found->message); if (strcmp(i18n_files[i18n_count].code, "en") == 0) i18n_default = i18n_count; i18n_count++; } closedir(dir); free_string(code.code); if (i18n_default == -1) { LOG(llevError, "couldn't find default language en!\n"); fatal(SEE_LAST_ERROR); } } /** * Clears all i18n-related data. */ void i18n_free(void) { int file, message; for (file = 0; file < i18n_count; file++) { free_string(i18n_files[file].code); /* name is a copy of a message */ for (message = 0; message < i18n_files[file].count; message++) { free_string(i18n_files[file].messages[message].code); free_string(i18n_files[file].messages[message].message); } free(i18n_files[file].messages); } free(i18n_files); i18n_files = NULL; i18n_count = 0; } crossfire-1.70.0/common/player.c0000644000014500000120000001651511731300526013440 00000000000000/* * static char *rcsid_player_c = * "$Id: player.c 12599 2010-03-08 18:33:07Z akirschbaum $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Player-structure related functions. */ #include /** * Clears data in player structure. * * Socket isn't touched. Nor is anything that doesn't need to be freed. So you * may need to do a memset() to clear out values. * * @param pl * player to clear. Pointer is still valid, and can be reused for "play again". */ void clear_player(player *pl) { client_spell *info; client_spell *next; /* Clear item stack (used by DMs only) */ free(pl->stack_items); pl->stack_position = 0; info = pl->spell_state; while (info) { next = info->next; free(info); info = next; } if (pl->unarmed_skill) FREE_AND_CLEAR_STR(pl->unarmed_skill); } /** * Clears player structure, including pointed object (through object_free_drop_inventory()). * * @param pl * player to clear. Pointer is invalid after this call. */ void free_player(player *pl) { if (first_player != pl) { player *prev = first_player; while (prev != NULL && prev->next != NULL && prev->next != pl) prev = prev->next; if (prev->next != pl) { LOG(llevError, "Free_player: Can't find previous player.\n"); exit(1); } prev->next = pl->next; } else first_player = pl->next; if (pl->ob != NULL) { if (!QUERY_FLAG(pl->ob, FLAG_REMOVED)) object_remove(pl->ob); object_free_drop_inventory(pl->ob); } clear_player(pl); free(pl->socket.faces_sent); CFREE(pl); } /** * Determine if the attacktype represented by the * specified attack-number is enabled for dragon players. * A dragon player (quetzal) can gain resistances for * all enabled attacktypes. * * @param attacknr * attacktype to check * @return * TRUE if player can gain resistances in that, FALSE else. */ int atnr_is_dragon_enabled(int attacknr) { if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE || attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON) return 1; return 0; } /** * Checks if player is a dragon. * * @param op * player to check. Can be NULL. * @return * TRUE if the adressed object 'ob' is a player of the dragon race. */ int is_dragon_pl(const object *op) { if (op != NULL && op->type == PLAYER && op->arch != NULL && op->arch->clone.race != NULL && strcmp(op->arch->clone.race, "dragon") == 0) return 1; return 0; } /** * Gets the (client-side) spell state for specified spell. Will be created to empty state if not found. * * @note * will fatal() in case of memory allocation failure. * @param pl * player we're handling. * @param spell * spell for which to search data. * @return * state information for that spell. */ client_spell *get_client_spell_state(player *pl, object *spell) { client_spell *info = pl->spell_state; while (info) { if (info->spell == spell) return info; info = info->next; } info = (client_spell *)malloc(sizeof(client_spell)); if (info == NULL) fatal(OUT_OF_MEMORY); memset(info, 0, sizeof(client_spell)); info->next = pl->spell_state; info->spell = spell; pl->spell_state = info; return info; } /** * Tests if a player is a wraith. * * @param op * player to check. * @return * true if the adressed object 'ob' is a wraith player, false else. */ int is_wraith_pl(object *op) { return op != NULL && op->type == PLAYER && op->arch != NULL && object_find_by_name(op, "wraith feed") != NULL; } /** * Checks if player is a wraith without the 'wraith feed' skill. * * @param op * player to check. * @return * true if the adressed object 'ob' is an old wraith player, false else. */ int is_old_wraith_pl(object *op) { return op != NULL && op->type == PLAYER && op->arch != NULL && object_find_by_name(op, "Wraith_Force") != NULL && !is_wraith_pl(op); } /** * Updates the title of a dragon player to reflect the current level, attack * type, and resistances. * * @param pl * the player to update * @param level * the dragon's current level * @param attack * the dragon's current attack focus * @param skin_resist * the dragon's skin resistance for attack */ void player_set_dragon_title(struct pl *pl, int level, const char *attack, int skin_resist) { if (level == 0) snprintf(pl->title, sizeof(pl->title), "%s hatchling", attack); else if (level == 1) snprintf(pl->title, sizeof(pl->title), "%s wyrm", attack); else if (level == 2) snprintf(pl->title, sizeof(pl->title), "%s wyvern", attack); else if (level == 3) snprintf(pl->title, sizeof(pl->title), "%s dragon", attack); /* special titles for extra high resistance! */ else if (skin_resist > 80) snprintf(pl->title, sizeof(pl->title), "legendary %s dragon", attack); else if (skin_resist > 50) snprintf(pl->title, sizeof(pl->title), "ancient %s dragon", attack); else snprintf(pl->title, sizeof(pl->title), "big %s dragon", attack); pl->own_title[0] = '\0'; } /** * Returns the player's title. The returned title is never empty and includes a * "the" prefix if necessary. * * @param pl * the player to return the title of * @param buf * returns the title * @param bufsize * the size of buf in byte */ void player_get_title(const struct pl *pl, char *buf, size_t bufsize) { if (pl->own_title[0] == '\0') snprintf(buf, bufsize, "the %s", pl->title); else snprintf(buf, bufsize, "%s", pl->own_title); } /** * Returns whether the player has a custom title. * * @param pl * the player to check * @return * whether the player has a custom title */ int player_has_own_title(const struct pl *pl) { return pl->own_title[0] != '\0'; } /** * Returns the player's own title. The returned value must not be modified and * points into the player structure. * * @param pl * the player * @return * the own title */ const char *player_get_own_title(const struct pl *pl) { return pl->own_title; } /** * Sets the custom title. * * @param pl * the player to modify * @param title * the new title to set; empty string to unset */ void player_set_own_title(struct pl *pl, const char *title) { snprintf(pl->own_title, sizeof(pl->own_title), "%s", title); replace_unprintable_chars(pl->own_title); } crossfire-1.70.0/common/utils.c0000644000014500000120000004157211731300526013305 00000000000000/* * static char *rcsid_utils_c = * "$Id: utils.c 14734 2011-06-29 17:18:42Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002,2010 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file utils.c * General convenience functions for crossfire. * * The random functions here take luck into account when rolling random * dice or numbers. This function has less of an impact the larger the * difference becomes in the random numbers. IE, the effect is lessened * on a 1-1000 roll, vs a 1-6 roll. This can be used by crafty programmers, * to specifically disable luck in certain rolls, simply by making the * numbers larger (ie, 1d1000 > 500 vs 1d6 > 3) */ #include #include /** * Roll a random number between min and max. Uses op to determine luck, * and if goodbad is non-zero, luck increases the roll, if zero, it decreases. * * Generally, op should be the player/caster/hitter requesting the roll, * not the recipient (ie, the poor slob getting hit). [garbled 20010916] */ int random_roll(int min, int max, const object *op, int goodbad) { int omin, diff, luck, base, ran; omin = min; diff = max-min+1; ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */ if (max < 1 || diff < 1) { LOG(llevError, "Calling random_roll with min=%d max=%d\n", min, max); return(min); /* avoids a float exception */ } ran = RANDOM(); if (op->type != PLAYER) return((ran%diff)+min); luck = op->stats.luck; if (RANDOM()%base < MIN(10, abs(luck))) { /* we have a winner */ ((luck > 0) ? (luck = 1) : (luck = -1)); diff -= luck; if (diff < 1) return(omin); /*check again*/ ((goodbad) ? (min += luck) : (diff)); return(MAX(omin, MIN(max, (ran%diff)+min))); } return((ran%diff)+min); } /** * This is a 64 bit version of random_roll() above. This is needed * for exp loss calculations for players changing religions. */ sint64 random_roll64(sint64 min, sint64 max, const object *op, int goodbad) { sint64 omin, diff, luck, ran; int base; omin = min; diff = max-min+1; ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */ if (max < 1 || diff < 1) { LOG(llevError, "Calling random_roll with min=%"FMT64" max=%"FMT64"\n", min, max); return(min); /* avoids a float exception */ } /* Don't know of a portable call to get 64 bit random values. * So make a call to get two 32 bit random numbers, and just to * a little byteshifting. Do make sure the first one is only * 32 bit, so we don't get skewed results */ ran = (RANDOM()&0xffffffff)|((sint64)RANDOM()<<32); if (op->type != PLAYER) return((ran%diff)+min); luck = op->stats.luck; if (RANDOM()%base < MIN(10, abs(luck))) { /* we have a winner */ ((luck > 0) ? (luck = 1) : (luck = -1)); diff -= luck; if (diff < 1) return (omin); /*check again*/ ((goodbad) ? (min += luck) : (diff)); return (MAX(omin, MIN(max, (ran%diff)+min))); } return ((ran%diff)+min); } /** * Roll a number of dice (2d3, 4d6). Uses op to determine luck, * If goodbad is non-zero, luck increases the roll, if zero, it decreases. * Generally, op should be the player/caster/hitter requesting the roll, * not the recipient (ie, the poor slob getting hit). * The args are num D size (ie 4d6) [garbled 20010916] */ int die_roll(int num, int size, const object *op, int goodbad) { int min, diff, luck, total, i, gotlucky, base, ran; diff = size; min = 1; luck = total = gotlucky = 0; ((diff > 2) ? (base = 20) : (base = 50)); /* d2 and d3 are corner cases */ if (size < 2 || diff < 1) { LOG(llevError, "Calling die_roll with num=%d size=%d\n", num, size); return(num); /* avoids a float exception */ } if (op->type == PLAYER) luck = op->stats.luck; for (i = 0; i < num; i++) { if (RANDOM()%base < MIN(10, abs(luck)) && !gotlucky) { /* we have a winner */ gotlucky++; ((luck > 0) ? (luck = 1) : (luck = -1)); diff -= luck; if (diff < 1) return(num); /*check again*/ ((goodbad) ? (min += luck) : (diff)); ran = RANDOM(); total += MAX(1, MIN(size, (ran%diff)+min)); } else { total += RANDOM()%size+1; } } return(total); } /** * Returns a number between min and max. * * It is suggested one use these functions rather than RANDOM()%, as it * would appear that a number of off-by-one-errors exist due to improper * use of %. This should also prevent SIGFPE. */ int rndm(int min, int max) { int diff; diff = max-min+1; if (max < 1 || diff < 1) return (min); return (RANDOM()%diff+min); } /** * Decay and destroy persihable items in a map */ void decay_objects(mapstruct *m) { int x, y, destroy; if (m->unique) return; for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, op) { destroy = 0; if (QUERY_FLAG(op, FLAG_IS_FLOOR) && QUERY_FLAG(op, FLAG_UNIQUE)) break; if (QUERY_FLAG(op, FLAG_IS_FLOOR) || QUERY_FLAG(op, FLAG_OBJ_ORIGINAL) || QUERY_FLAG(op, FLAG_UNIQUE) || QUERY_FLAG(op, FLAG_OVERLAY_FLOOR) || QUERY_FLAG(op, FLAG_UNPAID) || IS_LIVE(op)) continue; if (op->head) /* Don't try to remove a non head part of a multipart object, object_remove() would abort(). */ continue; /* otherwise, we decay and destroy */ if (IS_WEAPON(op)) { op->stats.dam--; if (op->stats.dam < 0) destroy = 1; } else if (IS_ARMOR(op) || IS_SHIELD(op) || op->type == GIRDLE || op->type == GLOVES || op->type == CLOAK) { op->stats.ac--; if (op->stats.ac < 0) destroy = 1; } else if (op->type == FOOD) { op->stats.food -= rndm(5, 20); if (op->stats.food < 0) destroy = 1; } else { if (op->material&M_PAPER || op->material&M_LEATHER || op->material&M_WOOD || op->material&M_ORGANIC || op->material&M_CLOTH || op->material&M_LIQUID) destroy = 1; if (op->material&M_IRON && rndm(1, 5) == 1) destroy = 1; if (op->material&M_GLASS && rndm(1, 2) == 1) destroy = 1; if ((op->material&M_STONE || op->material&M_ADAMANT) && rndm(1, 10) == 1) destroy = 1; if ((op->material&M_SOFT_METAL || op->material&M_BONE) && rndm(1, 3) == 1) destroy = 1; if (op->material&M_ICE && rndm(0, 100) > 70) destroy = 1; } /* adjust overall chance below */ if (destroy && rndm(0, 1)) { object_remove(op); object_free_drop_inventory(op); } } FOR_MAP_FINISH(); } /** * Convert materialname to materialtype_t * * @todo * why use a break? */ materialtype_t *name_to_material(const char *name) { materialtype_t *mt, *nmt; mt = NULL; for (nmt = materialt; nmt != NULL && nmt->next != NULL; nmt = nmt->next) { if (strcmp(name, nmt->name) == 0) { mt = nmt; break; } } return mt; } /** * When doing transmutation of objects, we have to recheck the resistances, * as some that did not apply previously, may apply now. * * Only works on armors. */ void transmute_materialname(object *op, const object *change) { materialtype_t *mt; int j; if (op->materialname == NULL) return; if (change->materialname != NULL && strcmp(op->materialname, change->materialname)) return; if (!(IS_ARMOR(op) || IS_SHIELD(op) || op->type == GIRDLE || op->type == GLOVES || op->type == CLOAK)) return; mt = name_to_material(op->materialname); if (!mt) { LOG(llevError, "archetype '%s>%s' uses nonexistent material '%s'\n", op->arch->name, op->name, op->materialname); return; } for (j = 0; j < NROFATTACKS; j++) if (op->resist[j] == 0 && change->resist[j] != 0) { op->resist[j] += mt->mod[j]; if (op->resist[j] > 100) op->resist[j] = 100; if (op->resist[j] < -100) op->resist[j] = -100; } } /** * Set the material name and type for an item, if not set. * @param op item to set the material for. */ void set_materialname(object *op) { materialtype_t *mt; if (op->materialname != NULL) return; for (mt = materialt; mt != NULL && mt->next != NULL; mt = mt->next) { if (op->material&mt->material) { break; } } if (mt != NULL) { op->materialname = add_string(mt->name); return; } } /** * Finds a string in a string. * * @todo * isn't there another function (porting.c?) for that? */ const char *strrstr(const char *haystack, const char *needle) { const char *lastneedle; lastneedle = NULL; while ((haystack = strstr(haystack, needle)) != NULL) { lastneedle = haystack; haystack++; } return lastneedle; } #define EOL_SIZE (sizeof("\n")-1) /** * Removes endline from buffer (modified in place). */ void strip_endline(char *buf) { if (strlen(buf) < sizeof("\n")) { return; } if (!strcmp(buf+strlen(buf)-EOL_SIZE, "\n")) buf[strlen(buf)-EOL_SIZE] = '\0'; } /** * Replace in string src all occurrences of key by replacement. The resulting * string is put into result; at most resultsize characters (including the * terminating null character) will be written to result. */ void replace(const char *src, const char *key, const char *replacement, char *result, size_t resultsize) { size_t resultlen; size_t keylen; /* special case to prevent infinite loop if key==replacement=="" */ if (strcmp(key, replacement) == 0) { snprintf(result, resultsize, "%s", src); return; } keylen = strlen(key); resultlen = 0; while (*src != '\0' && resultlen+1 < resultsize) { if (strncmp(src, key, keylen) == 0) { snprintf(result+resultlen, resultsize-resultlen, "%s", replacement); resultlen += strlen(result+resultlen); src += keylen; } else { result[resultlen++] = *src++; } } result[resultlen] = '\0'; } /** * Taking a string as an argument, mutate it into a string that looks like a list. * * A 'list' for the purposes here is a string of items, seperated by commas, except * for the last entry, which has an 'and' before it, and a full stop (period) after it. * * This function will also strip all trailing non alphanumeric characters. * * It does not insert an oxford comma. * * @param input * string to transform. Will be overwritten. Must be long enough to contain the modified string. * * @todo * use safe string functions. */ void make_list_like(char *input) { char *p, tmp[MAX_BUF]; int i; if (!input || strlen(input) > MAX_BUF-5) return; /* bad stuff would happen if we continued here, the -5 is to make space for ' and ' */ strncpy(tmp, input, MAX_BUF-5); /*trim all trailing commas, spaces etc.*/ for (i = strlen(tmp); !isalnum(tmp[i]) && i >= 0; i--) tmp[i] = '\0'; strcat(tmp, "."); p = strrchr(tmp, ','); if (p) { *p = '\0'; strcpy(input, tmp); p++; strcat(input, " and"); strcat(input, p); } else strcpy(input, tmp); return; } /** * Returns a random direction (1..8). * * @return * the random direction. */ int get_random_dir(void) { return rndm(1, 8); } /** * Returns a random direction (1..8) similar to a given direction. * * @param dir * the exact direction * @return * the randomized direction */ int get_randomized_dir(int dir) { return absdir(dir+RANDOM()%3+RANDOM()%3-2); } /** * Adjusts a given direction by +/-1 towards a destination direction. * * @param dir * the direction to adjust * @param destination_dir * the destination direction to adjust towards * @return * the adjusted direction */ int adjust_dir(int dir, int destination_dir) { int diff; diff = (destination_dir-dir)&7; if (1 <= diff && diff <= 3) dir++; else if (5 <= diff && diff <= 7) dir--; else if (rndm(0, 1) == 0) dir++; else dir--; return absdir(dir); } /** * Replaces any unprintable character in the given buffer with a space. * * @param buf * the buffer to modify */ void replace_unprintable_chars(char *buf) { char *p; for (p = buf; *p != '\0'; p++) { if (*p < ' ') { *p = ' '; } } } /** * Splits a string delimited by passed in sep value into characters into an array of strings. * * @param str * the string to be split; will be modified * @param array * the string array; will be filled with pointers into str * @param array_size * the number of elements in array; if str contains more fields * excess fields are not split but included into the last element * @param sep * seperator to use. * @return * the number of elements found; always less or equal to * array_size */ size_t split_string(char *str, char *array[], size_t array_size, char sep) { char *p; size_t pos; if (array_size <= 0) return 0; if (*str == '\0') { array[0] = str; return 1; } pos = 0; p = str; while (pos < array_size) { array[pos++] = p; while (*p != '\0' && *p != sep) p++; if (pos >= array_size) break; if (*p != sep) break; *p++ = '\0'; } return pos; } /** * Describe the specified path attenuation. * @param attenuation string describing if "Attenued", "Denied", "Repelled". * @param value path value to describe. * @param buf where to describe, can be NULL. * @return buf, newly allocated StringBuffer the caller should free if buf was NULL. */ StringBuffer *describe_spellpath_attenuation(const char *attenuation, int value, StringBuffer *buf) { if (buf == NULL) buf = stringbuffer_new(); if (value) { int i, j = 0; stringbuffer_append_printf(buf, "(%s: ", attenuation); for (i = 0; i < NRSPELLPATHS; i++) if (value&(1< #include #include #include #include #include #include #include /* For LOG */ #if defined(__sun__) && defined(StupidSunHeaders) #include #include "sunos.h" #endif #include #define SS_STATISTICS #include "shstr.h" #ifdef WIN32 #include #else #include #endif #ifdef HAVE_LIBDMALLOC #include #endif /** Hash table to store our string. */ static shared_string *hash_table[TABLESIZE]; /** * Initialises the hash-table used by the shared string library. */ void init_hash_table(void) { /* A static object should be zeroed out always */ #if !defined(__STDC__) (void)memset((void *)hash_table, 0, TABLESIZE*sizeof(shared_string *)); #endif } /** * Hashing-function used by the shared string library. * * @param str * string to hash. * @return * hash of string, suitable for use in ::hash_table. */ static unsigned long hashstr(const char *str) { unsigned long hash = 0; int i = 0; unsigned rot = 0; const char *p; GATHER(hash_stats.calls); for (p = str; i < MAXSTRING && *p; p++, i++) { hash ^= (unsigned long)*p<= (sizeof(unsigned long)-sizeof(char))*CHAR_BIT) rot = 0; } return (hash%TABLESIZE); } /** * Allocates and initialises a new shared_string structure, containing * the string str. * * @note * will fatal() in case of memory allocation failure. * @param str * string to store. * @return * sharing structure. */ static shared_string *new_shared_string(const char *str) { shared_string *ss; /* Allocate room for a struct which can hold str. Note * that some bytes for the string are already allocated in the * shared_string struct. */ ss = (shared_string *)malloc(sizeof(shared_string)-PADDING+strlen(str)+1); if (ss == NULL) fatal(OUT_OF_MEMORY); ss->u.previous = NULL; ss->next = NULL; ss->refcount = 1; strcpy(ss->string, str); return ss; } /** * This will add 'str' to the hash table. If there's no entry for this * string, a copy will be allocated, and a pointer to that is returned. * * @param str * string to share. * @return * pointer to string identical to str, but shared. */ sstring add_string(const char *str) { shared_string *ss; unsigned long ind; GATHER(add_stats.calls); /* Should really core dump here, since functions should not be calling * add_string with a null parameter. But this will prevent a few * core dumps. */ if (str == NULL) { #ifdef MANY_CORES abort(); #else return NULL; #endif } ind = hashstr(str); ss = hash_table[ind]; /* Is there an entry for that hash? */ if (ss) { /* Simple case first: See if the first pointer matches. */ if (str != ss->string) { GATHER(add_stats.strcmps); if (strcmp(ss->string, str)) { /* Apparantly, a string with the same hash value has this * slot. We must see in the list if "str" has been * registered earlier. */ while (ss->next) { GATHER(add_stats.search); ss = ss->next; if (ss->string != str) { GATHER(add_stats.strcmps); if (strcmp(ss->string, str)) { /* This wasn't the right string... */ continue; } } /* We found an entry for this string. Fix the * refcount and exit. */ GATHER(add_stats.linked); ++(ss->refcount); return ss->string; } /* There are no occurences of this string in the hash table. */ { shared_string *new_ss; GATHER(add_stats.linked); new_ss = new_shared_string(str); ss->next = new_ss; new_ss->u.previous = ss; return new_ss->string; } } /* Fall through. */ } GATHER(add_stats.hashed); ++(ss->refcount); return ss->string; } else { /* The string isn't registered, and the slot is empty. */ GATHER(add_stats.hashed); hash_table[ind] = new_shared_string(str); /* One bit in refcount is used to keep track of the union. */ hash_table[ind]->refcount |= TOPBIT; hash_table[ind]->u.array = &(hash_table[ind]); return hash_table[ind]->string; } } /** * This will increase the refcount of the string str. * @param str * string which *must *have been returned from a previous add_string(). * @return * str */ sstring add_refcount(sstring str) { GATHER(add_ref_stats.calls); ++(SS(str)->refcount); return str; } /** * This will return the refcount of the string str. * * @param str * string which *must *have been returned from a previous add_string(). * @return * refcount of the string. */ int query_refcount(sstring str) { return (SS(str)->refcount)&~TOPBIT; } /** * Searches a string in the shared strings. * * @param str * string to search for. * @return * pointer to identical string or NULL */ sstring find_string(const char *str) { shared_string *ss; unsigned long ind; GATHER(find_stats.calls); ind = hashstr(str); ss = hash_table[ind]; /* Is there an entry for that hash? */ if (ss) { /* Simple case first: Is the first string the right one? */ GATHER(find_stats.strcmps); if (!strcmp(ss->string, str)) { GATHER(find_stats.hashed); return ss->string; } else { /* Recurse through the linked list, if there's one. */ while (ss->next) { GATHER(find_stats.search); GATHER(find_stats.strcmps); ss = ss->next; if (!strcmp(ss->string, str)) { GATHER(find_stats.linked); return ss->string; } } /* No match. Fall through. */ } } return NULL; } /** * This will reduce the refcount, and if it has reached 0, str will * be freed. * * @param str * string to release, which *must *have been returned from a previous add_string(). * * @note * the memory pointed to by str can be freed after this call, so don't use str anymore. */ void free_string(sstring str) { shared_string *ss; GATHER(free_stats.calls); ss = SS(str); if ((--ss->refcount&~TOPBIT) == 0) { /* Remove this entry. */ if (ss->refcount&TOPBIT) { /* We must put a new value into the hash_table[]. */ if (ss->next) { *(ss->u.array) = ss->next; ss->next->u.array = ss->u.array; ss->next->refcount |= TOPBIT; } else { *(ss->u.array) = NULL; } free(ss); } else { /* Relink and free this struct. */ if (ss->next) ss->next->u.previous = ss->u.previous; ss->u.previous->next = ss->next; free(ss); } } } #ifdef SS_STATISTICS /** * A call to this function will cause the statistics to be dumped * into specified buffer. * * The routines will gather statistics if SS_STATISTICS is defined. * * @param buf * buffer which will contain dumped information. * @param size * buf's size. */ void ss_dump_statistics(char *buf, size_t size) { static char line[80]; snprintf(buf, size, "%-13s %6s %6s %6s %6s %6s\n", "", "calls", "hashed", "strcmp", "search", "linked"); snprintf(line, sizeof(line), "%-13s %6d %6d %6d %6d %6d\n", "add_string:", add_stats.calls, add_stats.hashed, add_stats.strcmps, add_stats.search, add_stats.linked); snprintf(buf+strlen(buf), size-strlen(buf), "%s", line); snprintf(line, sizeof(line), "%-13s %6d\n", "add_refcount:", add_ref_stats.calls); snprintf(buf+strlen(buf), size-strlen(buf), "%s", line); snprintf(line, sizeof(line), "%-13s %6d\n", "free_string:", free_stats.calls); snprintf(buf+strlen(buf), size-strlen(buf), "%s", line); snprintf(line, sizeof(line), "%-13s %6d %6d %6d %6d %6d\n", "find_string:", find_stats.calls, find_stats.hashed, find_stats.strcmps, find_stats.search, find_stats.linked); snprintf(buf+strlen(buf), size-strlen(buf), "%s", line); snprintf(line, sizeof(line), "%-13s %6d\n", "hashstr:", hash_stats.calls); snprintf(buf+strlen(buf), size-strlen(buf), "%s", line); } #endif /* SS_STATISTICS */ /** * Dump the contents of the share string tables. * * @param what * combination of flags: * @li ::SS_DUMP_TABLE: dump the contents of the hash table to stderr. * @li ::SS_DUMP_TOTALS: return a string which says how many entries etc. there are in the table. * @param buf * buffer that will contain total information if (what & SS_DUMP_TABLE). Left untouched else. * @param size * buffer's size * @return * buf if (what & SS_DUMP_TOTALS) or NULL. */ char *ss_dump_table(int what, char *buf, size_t size) { int entries = 0, refs = 0, links = 0; int i; for (i = 0; i < TABLESIZE; i++) { shared_string *ss; if ((ss = hash_table[i]) != NULL) { ++entries; refs += (ss->refcount&~TOPBIT); /* Can't use stderr any longer, need to include global.h and if (what&SS_DUMP_TABLE) * use logfile. */ LOG(llevDebug, "%4d -- %4d refs '%s' %c\n", i, (ss->refcount&~TOPBIT), ss->string, (ss->refcount&TOPBIT ? ' ' : '#')); while (ss->next) { ss = ss->next; ++links; refs += (ss->refcount&~TOPBIT); if (what&SS_DUMP_TABLE) LOG(llevDebug, " -- %4d refs '%s' %c\n", (ss->refcount&~TOPBIT), ss->string, (ss->refcount&TOPBIT ? '*' : ' ')); } } } if (what&SS_DUMP_TOTALS) { snprintf(buf, size, "\n%d entries, %d refs, %d links.", entries, refs, links); return buf; } return NULL; } /** * We don't want to exceed the buffer size of buf1 by adding on buf2! * * @param buf1 * @param buf2 * buffers we plan on concatening. Can be NULL. * @param bufsize * size of buf1. Can be NULL. * @return * true if overflow will occur. */ int buf_overflow(const char *buf1, const char *buf2, size_t bufsize) { size_t len1 = 0, len2 = 0; if (buf1) len1 = strlen(buf1); if (buf2) len2 = strlen(buf2); if (len2 >= bufsize) return 1; if (len1 >= (bufsize-len2)) return 1; return 0; } crossfire-1.70.0/common/ob_methods.c0000644000014500000120000001214311731300526014260 00000000000000/* * static char *rcsid_ob_methods = * "$Id: build_map.c 5057 2006-10-29 07:50:09Z mwedel $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail to crossfire-devel@real-time.com */ /** * @file * Those functions deal with the object/type system. */ #include #include #include #ifndef __CEXTRACT__ #include #endif /* * The following functions are meant for calling methods. No actual behavoir * logic should be contained in this code. Code in the common/ directory should * be used for logic common to all types, and should always be called by * individual method code (i.e. all apply methods should call 'can_apply' from * common/). Defaults for all types should not be put here either, as that code * belongs in the common/ directory also, referenced to by base_type. */ /** * Applies an object. * @param op The object to apply * @param applier The object that executes the apply action * @param aflags Special (always apply/unapply) flags * @retval 0 A player or monster can't apply objects of that type * @retval 1 has been applied, or there was an error applying the object * @retval 2 objects of that type can't be applied if not in inventory */ method_ret ob_apply(object *op, object *applier, int aflags) { method_ret ret; ob_methods *methods; for (methods = &type_methods[op->type]; methods; methods = methods->fallback) { if (methods->apply) { ret = methods->apply(methods, op, applier, aflags); if (ret != METHOD_UNHANDLED) return ret; } } return METHOD_UNHANDLED; } /** * Processes an object, giving it the opportunity to move or react. * Note: The return value of ob_process doesn't seem to be used anymore. * @param op The object to process * @retval METHOD_UNHANDLED if the process method does not exist for that objec, */ method_ret ob_process(object *op) { method_ret ret; ob_methods *methods; for (methods = &type_methods[op->type]; methods; methods = methods->fallback) { if (methods->process) { ret = methods->process(methods, op); if (ret != METHOD_UNHANDLED) return ret; } } return METHOD_UNHANDLED; } /** * Returns the description of an object, as seen by the given observer. * @param op The object to describe * @param observer The object to which the description is made * @param buf Buffer that will contain the description * @param size Size of buf * @return * buf. */ char *ob_describe(const object *op, const object *observer, char *buf, size_t size) { ob_methods *methods; for (methods = &type_methods[op->type]; methods; methods = methods->fallback) { if (methods->describe) { methods->describe(methods, op, observer, buf, size); return buf; } } buf[0] = '\0'; return buf; } /** * Makes an object move on top of another one. * @param op The object over which to move * @param victim The object moving over op * @param originator The object that is the cause of the move * @retval METHOD_UNHANDLED if the process method does not exist for that object */ method_ret ob_move_on(object *op, object *victim, object *originator) { method_ret ret; ob_methods *methods; for (methods = &type_methods[op->type]; methods; methods = methods->fallback) { if (methods->move_on) { ret = methods->move_on(methods, op, victim, originator); if (ret != METHOD_UNHANDLED) return ret; } } return METHOD_UNHANDLED; } /** * An object is triggered by another one. * @param op The object being triggered * @param cause The object that is the cause of the trigger * @param state trigger state, 0 for released, other for pushed * @retval METHOD_UNHANDLED if the process method does not exist for that object * @todo check the exact state values/meaning */ method_ret ob_trigger(object *op, object *cause, int state) { method_ret ret; ob_methods *methods; for (methods = &type_methods[op->type]; methods; methods = methods->fallback) { if (methods->trigger) { ret = methods->trigger(methods, op, cause, state); if (ret != METHOD_UNHANDLED) return ret; } } return METHOD_UNHANDLED; } crossfire-1.70.0/common/info.c0000644000014500000120000001017611731300526013074 00000000000000/* * static char *rcsid_info_c = * "$Id: info.c 17404 2012-03-08 22:31:47Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ #include /** * @file * The functions in this file are purely mean to generate information * in differently formatted output, mainly about monsters. */ /** * Writes num ones and zeros to the given string based on the * bits variable. * * @param bits * variable to convert to binary string * @param num * number of bits to dump. Values above 32 will be ignored. * @param str * string to write to. Must be long enough. * * @note * no check is done whether str has enough space to write or not. * Final \\0 is appended to str. */ static void bitstostring(long bits, int num, char *str) { int i, j = 0; if (num > 32) num = 32; for (i = 0; i < num; i++) { if (i && (i%3) == 0) { str[i+j] = ' '; j++; } if (bits&1) str[i+j] = '1'; else str[i+j] = '0'; bits >>= 1; } str[i+j] = '\0'; return; } /** * Dump to standard out the abilities of all monsters. */ void dump_abilities(void) { archetype *at; char *name; for (at = first_archetype; at; at = at->next) { const char *gen_name = ""; archetype *gen; if (!QUERY_FLAG(&at->clone, FLAG_MONSTER)) continue; /* Get rid of e.g. multiple black puddings */ if (QUERY_FLAG(&at->clone, FLAG_CHANGING)) continue; for (gen = first_archetype; gen; gen = gen->next) { if (gen->clone.other_arch && gen->clone.other_arch == at) { gen_name = gen->name; break; } } name = stringbuffer_finish(describe_item(&at->clone, NULL, NULL)); printf("%-16s|%6"FMT64"|%4d|%3d|%s|%s|%s\n", at->clone.name, at->clone.stats.exp, at->clone.stats.hp, at->clone.stats.ac, name, at->name, gen_name); free(name); } } /** * As dump_abilities(), but with an alternative way of output. */ void print_monsters(void) { archetype *at; object *op; char attbuf[34]; int i; printf(" | | | | | attack | resistances |\n"); printf("monster | hp |dam| ac | wc |pmf ecw adw gpd ptf|phy mag fir ele cld cfs acd drn wmg ght poi slo par tud fer cnc dep dth chs csp gpw hwd bln int | exp | new exp |\n"); printf("---------------------------------------------------------------------------------------------------------------------------------------------------\n"); for (at = first_archetype; at != NULL; at = at->next) { op = arch_to_object(at); if (QUERY_FLAG(op, FLAG_MONSTER)) { bitstostring((long)op->attacktype, NROFATTACKS, attbuf); printf("%-15s|%5d|%3d|%4d|%4d|%s|", op->arch->name, op->stats.maxhp, op->stats.dam, op->stats.ac, op->stats.wc, attbuf); for (i = 0; i < NROFATTACKS; i++) printf("%4d", op->resist[i]); printf("|%8"FMT64"|%9"FMT64"|\n", op->stats.exp, new_exp(op)); } object_free_drop_inventory(op); } } crossfire-1.70.0/common/map.c0000644000014500000120000025335611731300526012727 00000000000000/* * static char *rcsid_map_c = * "$Id: map.c 15908 2011-11-24 18:01:35Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006-2008 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file map.c * Map-related functions. */ #include #include #include #include #ifndef WIN32 /* ---win32 exclude header */ #include #endif /* win32 */ #include "path.h" extern int nrofallocobjects, nroffreeobjects; static void free_all_objects(mapstruct *m); /** * These correspond to the layer names in map.h - * since some of the types can be on multiple layers, * names are duplicated to correspond to that layer. */ const char *const map_layer_name[MAP_LAYERS] = { "floor", "no_pick", "no_pick", "item", "item", "item", "living", "living", "fly", "fly" }; /** Information about a layer. */ typedef struct Map_Layer_Info { uint8 high_layer; uint8 honor_visibility; } Map_Layer_Info; /** * the ob->map_layer holds the low layer. For the update_position() * logic, we also need to know the higher layer and whether * visibility should be honored. This table has that information, * so that it doesn't need to be hardcoded. */ static const Map_Layer_Info map_layer_info[MAP_LAYERS] = { { MAP_LAYER_FLOOR, 1 }, { MAP_LAYER_NO_PICK2, 0 }, { MAP_LAYER_NO_PICK2, 0 }, { MAP_LAYER_ITEM3, 1 }, { MAP_LAYER_ITEM3, 1 }, { MAP_LAYER_ITEM3, 1 }, { MAP_LAYER_LIVING2, 1 }, { MAP_LAYER_LIVING2, 1 }, { MAP_LAYER_FLY2, 1 }, { MAP_LAYER_FLY2, 1 } }; /** * Checks whether map has been loaded. * @param name * path of the map to search. Can be NULL. * @return * the mapstruct which has a name matching the given argument. * return NULL if no match is found. */ mapstruct *has_been_loaded(const char *name) { mapstruct *map; if (!name || !*name) return NULL; for (map = first_map; map; map = map->next) if (!strcmp(name, map->path)) break; return (map); } /** * This makes a path absolute outside the world of Crossfire. * In other words, it prepends LIBDIR/MAPDIR/ to the given path * and returns the pointer to a static array containing the result. * it really should be called create_mapname * * @param name * path of the map. * @param buf * buffer that will contain the full path. * @param size * buffer's length. * @return * buf. */ char *create_pathname(const char *name, char *buf, size_t size) { /* Why? having extra / doesn't confuse unix anyplace? Dependancies * someplace else in the code? msw 2-17-97 */ if (*name == '/') snprintf(buf, size, "%s/%s%s", settings.datadir, settings.mapdir, name); else snprintf(buf, size, "%s/%s/%s", settings.datadir, settings.mapdir, name); return buf; } /** * Same as create_pathname(), but for the overlay maps. / * @param name * path of the overlay map. * @param buf * buffer that will contain the full path. * @param size * buffer's length. */ void create_overlay_pathname(const char *name, char *buf, size_t size) { /* Why? having extra / doesn't confuse unix anyplace? Dependancies * someplace else in the code? msw 2-17-97 */ if (*name == '/') snprintf(buf, size, "%s/%s%s", settings.localdir, settings.mapdir, name); else snprintf(buf, size, "%s/%s/%s", settings.localdir, settings.mapdir, name); } /** * same as create_pathname(), but for the template maps. * * @param name * path of the template map. * @param buf * buffer that will contain the full path. * @param size * buf's length */ void create_template_pathname(const char *name, char *buf, size_t size) { /* Why? having extra / doesn't confuse unix anyplace? Dependancies * someplace else in the code? msw 2-17-97 */ if (*name == '/') snprintf(buf, size, "%s/%s%s", settings.localdir, settings.templatedir, name); else snprintf(buf, size, "%s/%s/%s", settings.localdir, settings.templatedir, name); } /** * This makes absolute path to the itemfile where unique objects * will be saved. Converts '/' to '@'. I think it's essier maintain * files than full directory structure, but if this is problem it can * be changed. * * @param s * path of the map for the item. * @param buf * buffer that will contain path. Must not be NULL. * @param size * buffer's length. */ static void create_items_path(const char *s, char *buf, size_t size) { char *t; if (*s == '/') s++; snprintf(buf, size, "%s/%s/", settings.localdir, settings.uniquedir); t = buf+strlen(buf); snprintf(t, buf+size-t, "%s", s); while (*t != '\0') { if (*t == '/') *t = '@'; t++; } } /** * This function checks if a file with the given path exists. * * It tries out all the compression suffixes listed in the uncomp[] array, * except for Windows which checks an exact file. * * @param name * map path to check. * @param prepend_dir * If set, then we call create_pathname (which prepends libdir & mapdir). * Otherwise, we assume the name given is fully complete. * @return * -1 if it fails, otherwise the mode of the file is returned. * * @note * Only the editor actually cares about the writablity of this - * the rest of the code only cares that the file is readable. * when the editor goes away, the call to stat should probably be * replaced by an access instead (similar to the windows one, but * that seems to be missing the prepend_dir processing */ int check_path(const char *name, int prepend_dir) { char buf[MAX_BUF]; #ifndef WIN32 struct stat statbuf; int mode = 0; #endif if (prepend_dir) create_pathname(name, buf, MAX_BUF); else snprintf(buf, sizeof(buf), "%s", name); #ifdef WIN32 /* ***win32: check this sucker in windows style. */ return(_access(buf, 0)); #else if (stat(buf, &statbuf) != 0) return -1; if (!S_ISREG(statbuf.st_mode)) return (-1); if (((statbuf.st_mode&S_IRGRP) && getegid() == statbuf.st_gid) || ((statbuf.st_mode&S_IRUSR) && geteuid() == statbuf.st_uid) || (statbuf.st_mode&S_IROTH)) mode |= 4; if ((statbuf.st_mode&S_IWGRP && getegid() == statbuf.st_gid) || (statbuf.st_mode&S_IWUSR && geteuid() == statbuf.st_uid) || (statbuf.st_mode&S_IWOTH)) mode |= 2; return (mode); #endif } /** * Prints out debug-information about a map. * Dumping these at llevError doesn't seem right, but is * necessary to make sure the information is in fact logged. * Can be used by a DM with the dumpmap command. * * @param m * map to dump. */ void dump_map(const mapstruct *m) { LOG(llevError, "Map %s status: %d.\n", m->path, m->in_memory); LOG(llevError, "Size: %dx%d Start: %d,%d\n", MAP_WIDTH(m), MAP_HEIGHT(m), MAP_ENTER_X(m), MAP_ENTER_Y(m)); if (m->msg != NULL) LOG(llevError, "Message:\n%s", m->msg); if (m->maplore != NULL) LOG(llevError, "Lore:\n%s", m->maplore); if (m->tmpname != NULL) LOG(llevError, "Tmpname: %s\n", m->tmpname); LOG(llevError, "Difficulty: %d\n", m->difficulty); LOG(llevError, "Darkness: %d\n", m->darkness); } /** * Prints out debug-information about all maps. * This basically just goes through all the maps and calls * dump_map() on each one. * Can be used by a DM with the dumpallmaps command. */ void dump_all_maps(void) { mapstruct *m; for (m = first_map; m != NULL; m = m->next) { dump_map(m); } } /** * This rolls up wall, blocks_magic, blocks_view, etc, all into * one function that just returns a P_.. value (see map.h) * it will also do map translation for tiled maps, returning * new values into newmap, nx, and ny. Any and all of those * values can be null, in which case if a new map is needed (returned * by a P_NEW_MAP value, another call to get_map_from_coord * is needed. The case of not passing values is if we're just * checking for the existence of something on those spaces, but * don't expect to insert/remove anything from those spaces. * * @param oldmap * map for which we want information. * @param newmap * if not NULL, will contain the actual map checked if not oldmap. * @param x * @param y * coordinates to check * @param nx * @param ny * if not NULL, will contain the actual coordinates checked. * @return * flags for specified position, with maybe ::P_OUT_OF_MAP or ::P_NEW_MAP set. */ int get_map_flags(mapstruct *oldmap, mapstruct **newmap, sint16 x, sint16 y, sint16 *nx, sint16 *ny) { sint16 newx, newy; int retval = 0; mapstruct *mp; newx = x; newy = y; mp = get_map_from_coord(oldmap, &newx, &newy); if (!mp) return P_OUT_OF_MAP; if (mp != oldmap) retval |= P_NEW_MAP; if (newmap) *newmap = mp; if (nx) *nx = newx; if (ny) *ny = newy; retval |= mp->spaces[newx+mp->width*newy].flags; return retval; } /** * Returns true if the given coordinate is blocked except by the * object passed is not blocking. This is used with * multipart monsters - if we want to see if a 2x2 monster * can move 1 space to the left, we don't want its own area * to block it from moving there. * * @param ob * object we ignore. Must not be NULL. * @param m * map we're considering. * @param sx * @param sy * target coordinates * @return * TRUE if the space is blocked by something other than ob. * * @note * the coordinates & map passed in should have been updated for tiling * by the caller. */ int blocked_link(object *ob, mapstruct *m, int sx, int sy) { object *tmp_head; int mflags, blocked; /* Make sure the coordinates are valid - they should be, as caller should * have already checked this. */ if (OUT_OF_REAL_MAP(m, sx, sy)) { LOG(llevError, "blocked_link: Passed map, x, y coordinates outside of map\n"); return 1; } /* special hack for transports: if it's a transport with a move_type of 0, it can do on the space anyway */ if (ob->type == TRANSPORT && ob->move_type == 0) return 0; /* Save some cycles - instead of calling get_map_flags(), just get the value * directly. */ mflags = m->spaces[sx+m->width*sy].flags; blocked = GET_MAP_MOVE_BLOCK(m, sx, sy); /* If space is currently not blocked by anything, no need to * go further. Not true for players - all sorts of special * things we need to do for players. */ if (ob->type != PLAYER && !(mflags&P_IS_ALIVE) && (blocked == 0)) return 0; /* if there isn't anytyhing alive on this space, and this space isn't * otherwise blocked, we can return now. Only if there is a living * creature do we need to investigate if it is part of this creature * or another. Likewise, only if something is blocking us do we * need to investigate if there is a special circumstance that would * let the player through (inventory checkers for example) */ if (!(mflags&P_IS_ALIVE) && !OB_TYPE_MOVE_BLOCK(ob, blocked)) return 0; ob = HEAD(ob); /* We basically go through the stack of objects, and if there is * some other object that has NO_PASS or FLAG_ALIVE set, return * true. If we get through the entire stack, that must mean * ob is blocking it, so return 0. */ FOR_MAP_PREPARE(m, sx, sy, tmp) { /* Never block part of self. */ tmp_head = HEAD(tmp); if (tmp_head == ob) continue; /* This must be before the checks below. Code for inventory checkers. */ if (tmp->type == CHECK_INV && OB_MOVE_BLOCK(ob, tmp)) { /* If last_sp is set, the player/monster needs an object, * so we check for it. If they don't have it, they can't * pass through this space. */ if (tmp->last_sp) { if (check_inv_recursive(ob, tmp) == NULL) { if (tmp->msg) { /* Optionally display the reason why one cannot move * there. Note: emitting a message from this function * is not very elegant. Ideally, this should be done * somewhere in server/player.c, but this is difficult * for objects of type CHECK_INV that are not alive. */ draw_ext_info(NDI_UNIQUE|NDI_NAVY, 0, ob, MSG_TYPE_ATTACK, MSG_TYPE_ATTACK_NOKEY, tmp->msg); } return 1; } } else { /* In this case, the player must not have the object - * if they do, they can't pass through. */ if (check_inv_recursive(ob, tmp) != NULL) { if (tmp->msg) { draw_ext_info(NDI_UNIQUE|NDI_NAVY, 0, ob, MSG_TYPE_ATTACK, MSG_TYPE_ATTACK_NOKEY, tmp->msg); } return 1; } } } /* if check_inv */ else { /* Broke apart a big nasty if into several here to make * this more readable. first check - if the space blocks * movement, can't move here. * second - if a monster, can't move there, unless it is a * hidden dm */ if (OB_MOVE_BLOCK(ob, tmp)) return 1; if (QUERY_FLAG(tmp, FLAG_ALIVE) && tmp->head != ob && tmp != ob && tmp->type != DOOR && !(QUERY_FLAG(tmp, FLAG_WIZ) && tmp->contr->hidden)) return 1; } } FOR_MAP_FINISH(); return 0; } /** * Returns true if the given object can't fit in the given spot. * This is meant for multi space objects - for single space objecs, * just calling get_map_blocked and checking that against movement type * of object. This function goes through all the parts of the * multipart object and makes sure they can be inserted. * * While this doesn't call out of map, the get_map_flags does. * * This function has been used to deprecate arch_out_of_map - * this function also does that check, and since in most cases, * a call to one would follow the other, doesn't make a lot of sense to * have two seperate functions for this. * * This returns nonzero if this arch can not go on the space provided, * 0 otherwise. the return value will contain the P_.. value * so the caller can know why this object can't go on the map. * Note that callers should not expect ::P_NEW_MAP to be set * in return codes - since the object is multispace - if * we did return values, what do you return if half the object * is one map, half on another. * * @param ob * object to test. * @param m * @param x * @param y * map and coordinates to check. * @return * 0 if the object can fit on specified space, non-zero else. * * @note * This used to be arch_blocked, but with new movement * code, we need to have actual object to check its move_type * against the move_block values. */ int ob_blocked(const object *ob, mapstruct *m, sint16 x, sint16 y) { archetype *tmp; int flag; mapstruct *m1; sint16 sx, sy; const object *part; if (ob == NULL) { flag = get_map_flags(m, &m1, x, y, &sx, &sy); if (flag&P_OUT_OF_MAP) return P_OUT_OF_MAP; /* don't have object, so don't know what types would block */ return(GET_MAP_MOVE_BLOCK(m1, sx, sy)); } for (tmp = ob->arch, part = ob; tmp != NULL; tmp = tmp->more, part = part->more) { flag = get_map_flags(m, &m1, x+tmp->clone.x, y+tmp->clone.y, &sx, &sy); if (flag&P_OUT_OF_MAP) return P_OUT_OF_MAP; if (flag&P_IS_ALIVE) return P_IS_ALIVE; /* object_find_first_free_spot() calls this function. However, often * ob doesn't have any move type (when used to place exits) * so the AND operation in OB_TYPE_MOVE_BLOCK doesn't work. */ if (ob->move_type == 0 && GET_MAP_MOVE_BLOCK(m1, sx, sy) != MOVE_ALL) continue; /* A transport without move_type for a part should go through everything for that part. */ if (ob->type == TRANSPORT && part->move_type == 0) continue; /* Note it is intentional that we check ob - the movement type of the * head of the object should correspond for the entire object. */ if (OB_TYPE_MOVE_BLOCK(ob, GET_MAP_MOVE_BLOCK(m1, sx, sy))) return AB_NO_PASS; } return 0; } /** * When the map is loaded, load_object() does not actually insert objects * into inventory, but just links them. What this does is go through * and insert them properly. * @param container * object that contains the inventory. This is needed so that we can update the containers weight. * * @todo * This is unusued, should it be used somewhere? */ void fix_container(object *container) { object *tmp = container->inv; container->inv = NULL; FOR_OB_AND_BELOW_PREPARE(tmp) { if (tmp->inv) fix_container(tmp); (void)object_insert_in_ob(tmp, container); } FOR_OB_AND_BELOW_FINISH(); /* object_sum_weight will go through and calculate what all the containers are * carrying. */ object_sum_weight(container); } /** * Go through all the objects in a container (recursively) looking * for objects whose arch says they are multipart yet according to the * info we have, they only have the head (as would be expected when * they are saved). We do have to look for the old maps that did save * the more sections and not re-add sections for them. * * @param container * object that contains the inventory. */ static void fix_container_multipart(object *container) { FOR_INV_PREPARE(container, tmp) { archetype *at; object *op, *last; if (tmp->inv) fix_container_multipart(tmp); /* already multipart, or non-multipart arch - don't do anything more */ for (at = tmp->arch->more, last = tmp; at != NULL; at = at->more, last = op) { /* FIXME: We can't reuse object_fix_multipart() since that only * works for items directly on maps. Maybe factor out common code? */ op = arch_to_object(at); op->head = tmp; op->env = tmp->env; last->more = op; if (tmp->name != op->name) { if (op->name) free_string(op->name); op->name = add_string(tmp->name); } if (tmp->title != op->title) { if (op->title) free_string(op->title); op->title = add_string(tmp->title); } CLEAR_FLAG(op, FLAG_REMOVED); } } FOR_INV_FINISH(); } /** * Go through all the objects on the map looking * for objects whose arch says they are multipart yet according to the * info we have, they only have the head (as would be expected when * they are saved). We do have to look for the old maps that did save * the more sections and not re-add sections for them. * * @param m * map to check. */ static void link_multipart_objects(mapstruct *m) { int x, y; for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, tmp) { if (tmp->inv) fix_container_multipart(tmp); /* already multipart - don't do anything more */ if (tmp->head || tmp->more) continue; object_fix_multipart(tmp); } FOR_MAP_FINISH(); /* for objects on this space */ } /** * Loads (and parses) the objects into a given map from the specified * file pointer. * * @param m * m being loaded. * @param fp * file to read from. * @param mapflags * the same as we get with load_original_map() */ static void load_objects(mapstruct *m, FILE *fp, int mapflags) { int i, j, bufstate = LO_NEWFILE; int unique; object *op, *prev = NULL, *last_more = NULL; op = object_new(); op->map = m; /* To handle buttons correctly */ while ((i = load_object(fp, op, bufstate, mapflags))) { /* Since the loading of the map header does not load an object * anymore, we need to pass LO_NEWFILE for the first object loaded, * and then switch to LO_REPEAT for faster loading. */ bufstate = LO_REPEAT; /* if the archetype for the object is null, means that we * got an invalid object. Don't do anything with it - the game * or editor will not be able to do anything with it either. */ if (op->arch == NULL) { LOG(llevDebug, "Discarding object without arch: %s\n", op->name ? op->name : "(null)"); continue; } /* * You can NOT have players on a map being loaded. * Trying to use such a type leads to crashes everywhere as op->contr is NULL. */ if (op->type == PLAYER) { LOG(llevError, "Discarding invalid item with type PLAYER in map %s\n", m->path); continue; } switch (i) { case LL_NORMAL: /* if we are loading an overlay, put the floors on the bottom */ if ((QUERY_FLAG(op, FLAG_IS_FLOOR) || QUERY_FLAG(op, FLAG_OVERLAY_FLOOR)) && mapflags&MAP_OVERLAY) object_insert_in_map_at(op, m, op, INS_NO_MERGE|INS_NO_WALK_ON|INS_ABOVE_FLOOR_ONLY|INS_MAP_LOAD, op->x, op->y); else object_insert_in_map_at(op, m, op, INS_NO_MERGE|INS_NO_WALK_ON|INS_ON_TOP|INS_MAP_LOAD, op->x, op->y); if (op->inv) object_sum_weight(op); prev = op, last_more = op; break; case LL_MORE: object_insert_in_map_at(op, m, op, INS_NO_MERGE|INS_NO_WALK_ON|INS_ABOVE_FLOOR_ONLY, op->x, op->y); op->head = prev, last_more->more = op, last_more = op; break; } if (mapflags&MAP_STYLE) { object_remove_from_active_list(op); } op = object_new(); op->map = m; } for (i = 0; i < m->width; i++) { for (j = 0; j < m->height; j++) { unique = 0; /* check for unique items, or unique squares */ FOR_MAP_PREPARE(m, i, j, otmp) { if (QUERY_FLAG(otmp, FLAG_UNIQUE)) unique = 1; if (!(mapflags&(MAP_OVERLAY|MAP_PLAYER_UNIQUE) || unique)) SET_FLAG(otmp, FLAG_OBJ_ORIGINAL); } FOR_MAP_FINISH(); } } object_free_drop_inventory(op); link_multipart_objects(m); } /** * This saves all the objects on the map in a non destructive fashion. * Modified by MSW 2001-07-01 to do in a single pass - reduces code, * and we only save the head of multi part objects - this is needed * in order to do map tiling properly. * * @param m * map to save. * @param fp * file where regular objects are saved. * @param fp2 * file to save unique objects. * @param flag * combination of @ref SAVE_FLAG_xxx "SAVE_FLAG_xxx" flags. * @return * one of @ref SAVE_ERROR_xxx "SAVE_ERROR_xxx" value. */ static int save_objects(mapstruct *m, FILE *fp, FILE *fp2, int flag) { int i, j = 0, unique = 0, res = 0; /* first pass - save one-part objects */ for (i = 0; i < MAP_WIDTH(m); i++) for (j = 0; j < MAP_HEIGHT(m); j++) { unique = 0; FOR_MAP_PREPARE(m, i, j, op) { if (QUERY_FLAG(op, FLAG_IS_FLOOR) && QUERY_FLAG(op, FLAG_UNIQUE)) unique = 1; if (op->type == PLAYER) { LOG(llevDebug, "Player on map that is being saved\n"); continue; } if (op->head || object_get_owner(op) != NULL) continue; if (unique || QUERY_FLAG(op, FLAG_UNIQUE)) res = save_object(fp2, op, SAVE_FLAG_SAVE_UNPAID|SAVE_FLAG_NO_REMOVE); else if (flag == 0 || (flag == SAVE_FLAG_NO_REMOVE && (!QUERY_FLAG(op, FLAG_OBJ_ORIGINAL) && !QUERY_FLAG(op, FLAG_UNPAID)))) res = save_object(fp, op, SAVE_FLAG_SAVE_UNPAID|SAVE_FLAG_NO_REMOVE); if (res != 0) return res; } FOR_MAP_FINISH(); /* for this space */ } /* for this j */ return 0; } /** * Allocates, initialises, and returns a pointer to a mapstruct. * Modified to no longer take a path option which was not being * used anyways. MSW 2001-07-01 * * @return * new structure. * * @note * will never return NULL, but call fatal() if memory error. */ mapstruct *get_linked_map(void) { mapstruct *map = (mapstruct *)calloc(1, sizeof(mapstruct)); mapstruct *mp; if (map == NULL) fatal(OUT_OF_MEMORY); for (mp = first_map; mp != NULL && mp->next != NULL; mp = mp->next) ; if (mp == NULL) first_map = map; else mp->next = map; map->in_memory = MAP_SWAPPED; /* The maps used to pick up default x and y values from the * map archetype. Mimic that behaviour. */ MAP_WIDTH(map) = 16; MAP_HEIGHT(map) = 16; MAP_RESET_TIMEOUT(map) = 0; MAP_TIMEOUT(map) = 300; MAP_ENTER_X(map) = 0; MAP_ENTER_Y(map) = 0; map->last_reset_time.tv_sec = 0; return map; } /** * This basically allocates the dynamic array of spaces for the * map. * * @param m * map to check. * * @note * will never fail, since it calls fatal() if memory allocation failure. */ static void allocate_map(mapstruct *m) { m->in_memory = MAP_IN_MEMORY; /* Log this condition and free the storage. We could I suppose * realloc, but if the caller is presuming the data will be intact, * that is their poor assumption. */ if (m->spaces) { LOG(llevError, "allocate_map called with already allocated map (%s)\n", m->path); free(m->spaces); } m->spaces = calloc(1, MAP_WIDTH(m)*MAP_HEIGHT(m)*sizeof(MapSpace)); if (m->spaces == NULL) fatal(OUT_OF_MEMORY); } /** * Creates and returns a map of the specific size. Used * in random map code and the editor. * * @param sizex * @param sizey * map size. * @return * new map. * * @note * will never return NULL, as get_linked_map() never fails. */ mapstruct *get_empty_map(int sizex, int sizey) { mapstruct *m = get_linked_map(); m->width = sizex; m->height = sizey; m->in_memory = MAP_SWAPPED; allocate_map(m); return m; } /** * Takes a string from a map definition and outputs a pointer to the array of shopitems * corresponding to that string. Memory is allocated for this, it must be freed * at a later date. * Called by parse_map_headers() below. * * @param input_string * shop item line. * @return * new array that should be freed by the caller. */ static shopitems *parse_shop_string(const char *input_string) { char *shop_string, *p, *q, *next_semicolon, *next_colon; shopitems *items = NULL; int i = 0, number_of_entries = 0; const typedata *current_type; shop_string = strdup_local(input_string); p = shop_string; LOG(llevDebug, "parsing %s\n", input_string); /* first we'll count the entries, we'll need that for allocating the array shortly */ while (p) { p = strchr(p, ';'); number_of_entries++; if (p) p++; } p = shop_string; strip_endline(p); items = CALLOC(number_of_entries+1, sizeof(shopitems)); memset(items, 0, (sizeof(shopitems)*number_of_entries+1)); for (i = 0; i < number_of_entries; i++) { if (!p) { LOG(llevError, "parse_shop_string: I seem to have run out of string, that shouldn't happen.\n"); break; } next_semicolon = strchr(p, ';'); next_colon = strchr(p, ':'); /* if there is a stregth specified, figure out what it is, we'll need it soon. */ if (next_colon && (!next_semicolon || next_colon < next_semicolon)) items[i].strength = atoi(strchr(p, ':')+1); if (isdigit(*p) || *p == '*') { items[i].typenum = *p == '*' ? -1 : atoi(p); current_type = get_typedata(items[i].typenum); if (current_type) { items[i].name = current_type->name; items[i].name_pl = current_type->name_pl; } } else { /*we have a named type, let's figure out what it is */ q = strpbrk(p, ";:"); if (q) *q = '\0'; current_type = get_typedata_by_name(p); if (current_type) { items[i].name = current_type->name; items[i].typenum = current_type->number; items[i].name_pl = current_type->name_pl; } else { /* oh uh, something's wrong, let's free up this one, and try * the next entry while we're at it, better print a warning */ LOG(llevError, "invalid type %s defined in shopitems in string %s\n", p, input_string); } } items[i].index = number_of_entries; if (next_semicolon) p = ++next_semicolon; else p = NULL; } free(shop_string); return items; } /** * Opposite of parse string(), this puts the string that was originally fed in to * the map (or something equivilent) into output_string. * * @param m * map we're considering. * @param output_string * string to write to. * @param size * output_string's length. */ static void print_shop_string(mapstruct *m, char *output_string, int size) { int i; char tmp[MAX_BUF]; output_string[0] = '\0'; for (i = 0; i < m->shopitems[0].index; i++) { if (m->shopitems[i].typenum != -1) { if (m->shopitems[i].strength) { snprintf(tmp, sizeof(tmp), "%s:%d;", m->shopitems[i].name, m->shopitems[i].strength); } else snprintf(tmp, sizeof(tmp), "%s;", m->shopitems[i].name); } else { if (m->shopitems[i].strength) { snprintf(tmp, sizeof(tmp), "*:%d;", m->shopitems[i].strength); } else snprintf(tmp, sizeof(tmp), "*"); } snprintf(output_string+strlen(output_string), size-strlen(output_string), "%s", tmp); } } /** * This loads the header information of the map. The header * contains things like difficulty, size, timeout, etc. * this used to be stored in the map object, but with the * addition of tiling, fields beyond that easily named in an * object structure were needed, so it just made sense to * put all the stuff in the map object so that names actually make * sense. * This could be done in lex (like the object loader), but I think * currently, there are few enough fields this is not a big deal. * MSW 2001-07-01 * * @param fp * file to read from. * @param m * map being read. * @return * 0 on success, 1 on failure. */ static int load_map_header(FILE *fp, mapstruct *m) { char buf[HUGE_BUF], *key = NULL, *value; m->width = m->height = 0; while (fgets(buf, sizeof(buf), fp) != NULL) { char *p; p = strchr(buf, '\n'); if (p == NULL) { LOG(llevError, "Error loading map header - did not find a newline - perhaps file is truncated? Buf=%s\n", buf); return 1; } *p = '\0'; key = buf; while (isspace(*key)) key++; if (*key == 0) continue; /* empty line */ value = strchr(key, ' '); if (value) { *value = 0; value++; while (isspace(*value)) { value++; if (*value == '\0') { /* Nothing but spaces. */ value = NULL; break; } } } /* key is the field name, value is what it should be set * to. We've already done the work to null terminate key, * and strip off any leading spaces for both of these. * We have not touched the newline at the end of the line - * these are needed for some values. the end pointer * points to the first of the newlines. * value could be NULL! It would be easy enough to just point * this to "" to prevent cores, but that would let more errors slide * through. * * First check for entries that do not use the value parameter, then * validate that value is given and check for the remaining entries * that use the parameter. */ if (!strcmp(key, "msg")) { char msgbuf[HUGE_BUF]; int msgpos = 0; while (fgets(buf, sizeof(buf), fp) != NULL) { if (!strcmp(buf, "endmsg\n")) break; else { snprintf(msgbuf+msgpos, sizeof(msgbuf)-msgpos, "%s", buf); msgpos += strlen(buf); } } /* There are lots of maps that have empty messages (eg, msg/endmsg * with nothing between). There is no reason in those cases to * keep the empty message. Also, msgbuf contains garbage data * when msgpos is zero, so copying it results in crashes */ if (msgpos != 0) { /* When loading eg an overlay, message is already set, so free() current one. */ free(m->msg); m->msg = strdup_local(msgbuf); } } else if (!strcmp(key, "maplore")) { char maplorebuf[HUGE_BUF]; int maplorepos = 0; while (fgets(buf, HUGE_BUF-1, fp) != NULL) { if (!strcmp(buf, "endmaplore\n")) break; else { snprintf(maplorebuf+maplorepos, sizeof(maplorebuf)-maplorepos, "%s", buf); maplorepos += strlen(buf); } } if (maplorepos != 0) m->maplore = strdup_local(maplorebuf); } else if (!strcmp(key, "end")) { break; } else if (value == NULL) { LOG(llevError, "Got '%s' line without parameter in map header\n", key); } else if (!strcmp(key, "arch")) { /* This is an oddity, but not something we care about much. */ if (strcmp(value, "map")) LOG(llevError, "loading map and got a non 'arch map' line(%s %s)?\n", key, value); } else if (!strcmp(key, "name")) { /* When loading eg an overlay, the name is already set, so free() current one. */ free(m->name); m->name = strdup_local(value); /* first strcmp value on these are old names supported * for compatibility reasons. The new values (second) are * what really should be used. */ } else if (!strcmp(key, "enter_x")) { m->enter_x = atoi(value); } else if (!strcmp(key, "enter_y")) { m->enter_y = atoi(value); } else if (!strcmp(key, "width")) { m->width = atoi(value); } else if (!strcmp(key, "height")) { m->height = atoi(value); } else if (!strcmp(key, "reset_timeout")) { m->reset_timeout = atoi(value); } else if (!strcmp(key, "swap_time")) { m->timeout = atoi(value); } else if (!strcmp(key, "difficulty")) { m->difficulty = atoi(value); } else if (!strcmp(key, "darkness")) { m->darkness = atoi(value); } else if (!strcmp(key, "fixed_resettime")) { m->fixed_resettime = atoi(value); } else if (!strcmp(key, "unique")) { m->unique = atoi(value); } else if (!strcmp(key, "template")) { m->is_template = atoi(value); } else if (!strcmp(key, "region")) { m->region = get_region_by_name(value); } else if (!strcmp(key, "shopitems")) { m->shopitems = parse_shop_string(value); } else if (!strcmp(key, "shopgreed")) { m->shopgreed = atof(value); } else if (!strcmp(key, "shopmin")) { m->shopmin = atol(value); } else if (!strcmp(key, "shopmax")) { m->shopmax = atol(value); } else if (!strcmp(key, "shoprace")) { m->shoprace = strdup_local(value); } else if (!strcmp(key, "outdoor")) { m->outdoor = atoi(value); } else if (!strcmp(key, "nosmooth")) { m->nosmooth = atoi(value); } else if (!strcmp(key, "first_load")) { m->last_reset_time.tv_sec = atoi(value); } else if (!strncmp(key, "tile_path_", 10)) { int tile = atoi(key+10); if (tile < 1 || tile > 4) { LOG(llevError, "load_map_header: tile location %d out of bounds (%s)\n", tile, m->path); } else { char path[HUGE_BUF]; if (m->tile_path[tile-1]) { LOG(llevError, "load_map_header: tile location %d duplicated (%s)\n", tile, m->path); free(m->tile_path[tile-1]); m->tile_path[tile-1] = NULL; } if (check_path(value, 1) != -1) { /* The unadorned path works. */ snprintf(path, sizeof(path), "%s", value); } else { /* Try again; it could be a relative exit. */ path_combine_and_normalize(m->path, value, path, sizeof(path)); if (check_path(path, 1) == -1) { LOG(llevError, "get_map_header: Bad tile path %s %s\n", m->path, value); path[0] = '\0'; } } if (*path != '\0') { /* Use the normalized value. */ m->tile_path[tile-1] = strdup_local(path); } } /* end if tile direction (in)valid */ } else if (!strcmp(key, "background_music")) { m->background_music = strdup_local(value); } else { LOG(llevError, "Got unknown value in map header: %s %s\n", key, value); } } if ((m->width == 0) || (m->height == 0)) { LOG(llevError, "Map width or height not specified\n"); return 1; } if (!key || strcmp(key, "end")) { LOG(llevError, "Got premature eof on map header!\n"); return 1; } return 0; } /** * Opens the file "filename" and reads information about the map * from the given file, and stores it in a newly allocated * mapstruct. A pointer to this structure is returned, or NULL on failure. * flags correspond to those in map.h. Main ones used are * ::MAP_PLAYER_UNIQUE, in which case we don't do any name changes, and * * @param filename * map path. * @param flags * how to interpret the path, and misc information (can be combined): * \li ::MAP_PLAYER_UNIQUE: this is a unique map, path isn't changed * \li ::MAP_OVERLAY: map is an overlay * \li ::MAP_BLOCK: we block on this load. This happens in all cases, no matter if this flag is set or not. * \li ::MAP_STYLE: style map - don't add active objects, don't add to server managed map list. * @return * loaded map, or NULL if failure. */ mapstruct *load_original_map(const char *filename, int flags) { FILE *fp; mapstruct *m; char pathname[MAX_BUF]; LOG(llevDebug, "load_original_map: %s (%x)\n", filename, flags); if (flags&MAP_PLAYER_UNIQUE) snprintf(pathname, sizeof(pathname), "%s", filename); else if (flags&MAP_OVERLAY) create_overlay_pathname(filename, pathname, MAX_BUF); else create_pathname(filename, pathname, MAX_BUF); if ((fp = fopen(pathname, "r")) == NULL) { char err[MAX_BUF]; LOG((flags&MAP_PLAYER_UNIQUE) ? llevDebug : llevError, "Can't open %s: %s\n", pathname, strerror_local(errno, err, sizeof(err))); return (NULL); } m = get_linked_map(); strcpy(m->path, filename); if (load_map_header(fp, m)) { LOG(llevError, "Error loading map header for %s, flags=%d\n", filename, flags); delete_map(m); return NULL; } allocate_map(m); m->in_memory = MAP_LOADING; load_objects(m, fp, flags&(MAP_BLOCK|MAP_STYLE)); fclose(fp); m->in_memory = MAP_IN_MEMORY; if (!MAP_DIFFICULTY(m)) MAP_DIFFICULTY(m) = calculate_difficulty(m); set_map_reset_time(m); /* In case other objects press some buttons down */ update_buttons(m); /* Handle for map load event */ execute_global_event(EVENT_MAPLOAD, m); if (!(flags & MAP_STYLE)) apply_auto_fix(m); /* Chests which open as default */ return (m); } /** * Loads a map, which has been loaded earlier, from file. * * @param m * map we want to reload. * @return * 0 if success, non zero if failure, in which case error was LOG'ed. */ static int load_temporary_map(mapstruct *m) { FILE *fp; char buf[MAX_BUF]; if (!m->tmpname) { LOG(llevError, "No temporary filename for map %s\n", m->path); return 1; } if ((fp = fopen(m->tmpname, "r")) == NULL) { LOG(llevError, "Cannot open %s: %s\n", m->tmpname, strerror_local(errno, buf, sizeof(buf))); return 2; } if (load_map_header(fp, m)) { LOG(llevError, "Error loading map header for %s (%s)\n", m->path, m->tmpname); return 3; } allocate_map(m); m->in_memory = MAP_LOADING; load_objects(m, fp, 0); fclose(fp); m->in_memory = MAP_IN_MEMORY; return 0; } /** * Loads an overlay for a map, which has been loaded earlier, from file. * @param filename * filename for overlay. * @param m * map we want to load. * @return * 0 on success, non zero in case of error, which is LOG'ed. */ static int load_overlay_map(const char *filename, mapstruct *m) { FILE *fp; char pathname[MAX_BUF]; create_overlay_pathname(filename, pathname, MAX_BUF); if ((fp = fopen(pathname, "r")) == NULL) { /* nothing bad to not having an overlay */ return 0; } if (load_map_header(fp, m)) { LOG(llevError, "Error loading map header for overlay %s (%s)\n", m->path, pathname); return 1; } /*allocate_map(m);*/ m->in_memory = MAP_LOADING; load_objects(m, fp, MAP_OVERLAY); fclose(fp); m->in_memory = MAP_IN_MEMORY; return 0; } /****************************************************************************** * This is the start of unique map handling code *****************************************************************************/ /** * This goes through map 'm' and removes any unique items on the map. * * @param m * map to check. */ static void delete_unique_items(mapstruct *m) { int i, j, unique = 0; for (i = 0; i < MAP_WIDTH(m); i++) for (j = 0; j < MAP_HEIGHT(m); j++) { unique = 0; FOR_MAP_PREPARE(m, i, j, op) { if (QUERY_FLAG(op, FLAG_IS_FLOOR) && QUERY_FLAG(op, FLAG_UNIQUE)) unique = 1; if (op->head == NULL && (QUERY_FLAG(op, FLAG_UNIQUE) || unique)) { clean_object(op); if (QUERY_FLAG(op, FLAG_IS_LINKED)) remove_button_link(op); object_remove(op); object_free_drop_inventory(op); } } FOR_MAP_FINISH(); } } /** * Loads unique objects from file(s) into the map which is in memory * @param m * map to load unique items into. */ static void load_unique_objects(mapstruct *m) { FILE *fp; int count; char firstname[MAX_BUF], name[MAX_BUF]; create_items_path(m->path, name, MAX_BUF); for (count = 0; count < 10; count++) { snprintf(firstname, sizeof(firstname), "%s.v%02d", name, count); if (!access(firstname, R_OK)) break; } /* If we get here, we did not find any map */ if (count == 10) return; if ((fp = fopen(firstname, "r")) == NULL) { /* There is no expectation that every map will have unique items, but this * is debug output, so leave it in. */ LOG(llevDebug, "Can't open unique items file for %s\n", name); return; } m->in_memory = MAP_LOADING; if (m->tmpname == NULL) /* if we have loaded unique items from */ delete_unique_items(m); /* original map before, don't duplicate them */ load_object(fp, NULL, LO_NOREAD, 0); load_objects(m, fp, 0); fclose(fp); m->in_memory = MAP_IN_MEMORY; } /** * Saves a map to file. If flag is SAVE_MODE_INPLACE, it is saved into the same * file it was (originally) loaded from. Otherwise a temporary * filename will be genarated, and the file will be stored there. * The temporary filename will be stored in the mapstructure. * If the map is unique, we also save to the filename in the map * (this should have been updated when first loaded) * * @param m * map to save. * @param flag * One of @ref SAVE_MODE_xxx "SAVE_MODE_xxx" values. * @return * one of @ref SAVE_ERROR_xxx "SAVE_ERROR_xxx" values. */ int save_map(mapstruct *m, int flag) { #define TEMP_EXT ".savefile" FILE *fp, *fp2; char filename[MAX_BUF], buf[MAX_BUF], shop[MAX_BUF], final[MAX_BUF]; int i, res; if (flag && !*m->path) { LOG(llevError, "Tried to save map without path.\n"); return SAVE_ERROR_NO_PATH; } if (flag != SAVE_MODE_NORMAL || (m->unique) || (m->is_template)) { if (!m->unique && !m->is_template) { /* flag is set */ if (flag == SAVE_MODE_OVERLAY) create_overlay_pathname(m->path, filename, MAX_BUF); else create_pathname(m->path, filename, MAX_BUF); } else snprintf(filename, sizeof(filename), "%s", m->path); make_path_to_file(filename); } else { if (!m->tmpname) m->tmpname = tempnam_local(settings.tmpdir, NULL); snprintf(filename, sizeof(filename), "%s", m->tmpname); } LOG(llevDebug, "Saving map %s\n", m->path); m->in_memory = MAP_SAVING; snprintf(final, sizeof(final), "%s", filename); snprintf(filename, sizeof(filename), "%s%s", final, TEMP_EXT); fp = fopen(filename, "w"); if (fp == NULL) { LOG(llevError, "Cannot open regular objects file %s: %s\n", filename, strerror_local(errno, buf, sizeof(buf))); return SAVE_ERROR_RCREATION; } /* legacy */ fprintf(fp, "arch map\n"); if (m->name) fprintf(fp, "name %s\n", m->name); if (!flag) fprintf(fp, "swap_time %d\n", m->swap_time); if (m->reset_timeout) fprintf(fp, "reset_timeout %u\n", m->reset_timeout); if (m->fixed_resettime) fprintf(fp, "fixed_resettime %d\n", m->fixed_resettime); /* we unfortunately have no idea if this is a value the creator set * or a difficulty value we generated when the map was first loaded */ if (m->difficulty) fprintf(fp, "difficulty %d\n", m->difficulty); if (m->region) fprintf(fp, "region %s\n", m->region->name); if (m->shopitems) { print_shop_string(m, shop, sizeof(shop)); fprintf(fp, "shopitems %s\n", shop); } if (m->shopgreed) fprintf(fp, "shopgreed %f\n", m->shopgreed); if (m->shopmin) fprintf(fp, "shopmin %"FMT64U"\n", m->shopmin); if (m->shopmax) fprintf(fp, "shopmax %"FMT64U"\n", m->shopmax); if (m->shoprace) fprintf(fp, "shoprace %s\n", m->shoprace); if (m->darkness) fprintf(fp, "darkness %d\n", m->darkness); if (m->width) fprintf(fp, "width %d\n", m->width); if (m->height) fprintf(fp, "height %d\n", m->height); if (m->enter_x) fprintf(fp, "enter_x %d\n", m->enter_x); if (m->enter_y) fprintf(fp, "enter_y %d\n", m->enter_y); if (m->msg) fprintf(fp, "msg\n%sendmsg\n", m->msg); if (m->maplore) fprintf(fp, "maplore\n%sendmaplore\n", m->maplore); if (m->unique) fprintf(fp, "unique %d\n", m->unique); if (m->is_template) fprintf(fp, "template %d\n", m->is_template); if (m->outdoor) fprintf(fp, "outdoor %d\n", m->outdoor); if (m->nosmooth) fprintf(fp, "nosmooth %d\n", m->nosmooth); if (m->last_reset_time.tv_sec) fprintf(fp, "first_load %d\n", (int)m->last_reset_time.tv_sec); if (m->background_music) fprintf(fp, "background_music %s\n", m->background_music); /* Save any tiling information, except on overlays */ if (flag != SAVE_MODE_OVERLAY) for (i = 0; i < 4; i++) if (m->tile_path[i]) fprintf(fp, "tile_path_%d %s\n", i+1, m->tile_path[i]); fprintf(fp, "end\n"); /* In the game save unique items in the different file, but * in the editor save them to the normal map file. * If unique map, save files in the proper destination (set by * player) */ if ((flag == SAVE_MODE_NORMAL || flag == SAVE_MODE_OVERLAY) && !m->unique && !m->is_template) { char name[MAX_BUF], final_unique[MAX_BUF]; create_items_path(m->path, name, MAX_BUF); snprintf(final_unique, sizeof(final_unique), "%s.v00", name); snprintf(buf, sizeof(buf), "%s%s", final_unique, TEMP_EXT); if ((fp2 = fopen(buf, "w")) == NULL) { LOG(llevError, "Can't open unique items file %s\n", buf); fclose(fp); return SAVE_ERROR_UCREATION; } if (flag == SAVE_MODE_OVERLAY) { /* SO_FLAG_NO_REMOVE is non destructive save, so map is still valid. */ res = save_objects(m, fp, fp2, SAVE_FLAG_NO_REMOVE); if (res < 0) { LOG(llevError, "Save error during object save: %d\n", res); fclose(fp); fclose(fp2); return res; } m->in_memory = MAP_IN_MEMORY; } else { res = save_objects(m, fp, fp2, 0); if (res < 0) { LOG(llevError, "Save error during object save: %d\n", res); fclose(fp); fclose(fp2); return res; } free_all_objects(m); } if (ftell(fp2) == 0) { fclose(fp2); unlink(buf); /* If there are no unique items left on the map, we need to * unlink the original unique map so that the unique * items don't show up again. */ unlink(final_unique); } else { fflush(fp2); fclose(fp2); unlink(final_unique); /* failure isn't too bad, maybe the file doesn't exist. */ if (rename(buf, final_unique) == -1) { LOG(llevError, "Couldn't rename unique file %s to %s\n", buf, final_unique); fclose(fp); return SAVE_ERROR_URENAME; } chmod(final_unique, SAVE_MODE); } } else { /* save same file when not playing, like in editor */ res = save_objects(m, fp, fp, 0); if (res < 0) { LOG(llevError, "Save error during object save: %d\n", res); fclose(fp); return res; } free_all_objects(m); } fflush(fp); if (fclose(fp) != 0) { LOG(llevError, "fclose error!\n"); return SAVE_ERROR_CLOSE; } unlink(final); /* failure isn't too bad, maybe the file doesn't exist. */ if (rename(filename, final) == -1) { LOG(llevError, "Couldn't rename regular file %s to %s\n", filename, final); return SAVE_ERROR_RRENAME; } chmod(final, SAVE_MODE); return SAVE_ERROR_OK; } /** * Remove and free all objects in the inventory of the given object. * * @param op * object to clean. * * @todo * move to common/object.c ? */ void clean_object(object *op) { FOR_INV_PREPARE(op, tmp) { clean_object(tmp); if (QUERY_FLAG(tmp, FLAG_IS_LINKED)) remove_button_link(tmp); object_remove(tmp); object_free_drop_inventory(tmp); } FOR_INV_FINISH(); } /** * Remove and free all objects in the given map. * * @param m * map to free. */ static void free_all_objects(mapstruct *m) { int i, j; object *op; for (i = 0; i < MAP_WIDTH(m); i++) for (j = 0; j < MAP_HEIGHT(m); j++) { object *previous_obj = NULL; while ((op = GET_MAP_OB(m, i, j)) != NULL) { if (op == previous_obj) { LOG(llevDebug, "free_all_objects: Link error, bailing out.\n"); break; } previous_obj = op; op = HEAD(op); /* If the map isn't in memory, object_free_drop_inventory() will remove and * free objects in op's inventory. So let it do the job. */ if (m->in_memory == MAP_IN_MEMORY) clean_object(op); object_remove(op); object_free_drop_inventory(op); } } #ifdef MANY_CORES /* I see periodic cores on metalforge where a map has been swapped out, but apparantly * an item on that map was not saved - look for that condition and die as appropriate - * this leaves more of the map data intact for better debugging. */ for (op = objects; op != NULL; op = op->next) { if (!QUERY_FLAG(op, FLAG_REMOVED) && op->map == m) { LOG(llevDebug, "free_all_objects: object %s still on map after it should have been freed\n", op->name); abort(); } } #endif } /** * Frees everything allocated by the given mapstructure. * Don't free tmpname - our caller is left to do that. * Mapstructure itself is not freed. * * @param m * map to free. */ void free_map(mapstruct *m) { int i; if (!m->in_memory) { LOG(llevError, "Trying to free freed map.\n"); return; } /* Handle for plugin map unload event. */ execute_global_event(EVENT_MAPUNLOAD, m); if (m->spaces) free_all_objects(m); if (m->name) FREE_AND_CLEAR(m->name); if (m->spaces) FREE_AND_CLEAR(m->spaces); if (m->msg) FREE_AND_CLEAR(m->msg); if (m->maplore) FREE_AND_CLEAR(m->maplore); if (m->shopitems) FREE_AND_CLEAR(m->shopitems); if (m->shoprace) FREE_AND_CLEAR(m->shoprace); if (m->background_music) FREE_AND_CLEAR(m->background_music); if (m->buttons) free_objectlinkpt(m->buttons); m->buttons = NULL; for (i = 0; i < 4; i++) { if (m->tile_path[i]) FREE_AND_CLEAR(m->tile_path[i]); m->tile_map[i] = NULL; } m->in_memory = MAP_SWAPPED; } /** * Frees the map, including the mapstruct. * * This deletes all the data on the map (freeing pointers) * and then removes this map from the global linked list of maps. * * @param m * pointer to mapstruct, if NULL no action. Will be invalid after this function. */ void delete_map(mapstruct *m) { mapstruct *tmp, *last; int i; if (!m) return; if (m->in_memory == MAP_IN_MEMORY) { /* change to MAP_SAVING, even though we are not, * so that object_remove() doesn't do as much work. */ m->in_memory = MAP_SAVING; free_map(m); } /* move this out of free_map, since tmpname can still be needed if * the map is swapped out. */ free(m->tmpname); m->tmpname = NULL; last = NULL; /* We need to look through all the maps and see if any maps * are pointing at this one for tiling information. Since * tiling can be assymetric, we just can not look to see which * maps this map tiles with and clears those. */ for (tmp = first_map; tmp != NULL; tmp = tmp->next) { if (tmp->next == m) last = tmp; /* This should hopefully get unrolled on a decent compiler */ for (i = 0; i < 4; i++) if (tmp->tile_map[i] == m) tmp->tile_map[i] = NULL; } /* If last is null, then this should be the first map in the list */ if (!last) { if (m == first_map) first_map = m->next; else /* m->path is a static char, so should hopefully still have * some useful data in it. */ LOG(llevError, "delete_map: Unable to find map %s in list\n", m->path); } else last->next = m->next; free(m); } /** * Makes sure the given map is loaded and swapped in. * @param name * path name of the map. * @param flags * @li 0x1 (::MAP_FLUSH): flush the map - always load from the map directory, * and don't do unique items or the like. * @li 0x2 (::MAP_PLAYER_UNIQUE) - this is a unique map for each player. * dont do any more name translation on it. * * @return * pointer to the given map, NULL on failure. */ mapstruct *ready_map_name(const char *name, int flags) { mapstruct *m; if (!name) return (NULL); /* Have we been at this level before? */ m = has_been_loaded(name); /* Map is good to go, so just return it */ if (m && (m->in_memory == MAP_LOADING || m->in_memory == MAP_IN_MEMORY)) { return m; } /* unique maps always get loaded from their original location, and never * a temp location. Likewise, if map_flush is set, or we have never loaded * this map, load it now. I removed the reset checking from here - * it seems the probability of a player trying to enter a map that should * reset but hasn't yet is quite low, and removing that makes this function * a bit cleaner (and players probably shouldn't rely on exact timing for * resets in any case - if they really care, they should use the 'maps command. */ if ((flags&(MAP_FLUSH|MAP_PLAYER_UNIQUE)) || !m) { /* first visit or time to reset */ if (m) { clean_tmp_map(m); /* Doesn't make much difference */ delete_map(m); } /* create and load a map */ if (flags&MAP_PLAYER_UNIQUE) LOG(llevDebug, "Trying to load map %s.\n", name); else { char fullpath[MAX_BUF]; create_pathname(name, fullpath, MAX_BUF); LOG(llevDebug, "Trying to load map %s.\n", fullpath); } if (!(m = load_original_map(name, (flags&MAP_PLAYER_UNIQUE)))) return (NULL); /* If a player unique map, no extra unique object file to load. * if from the editor, likewise. */ if (!(flags&(MAP_FLUSH|MAP_PLAYER_UNIQUE))) load_unique_objects(m); if (!(flags&(MAP_FLUSH|MAP_PLAYER_UNIQUE|MAP_OVERLAY))) { if (load_overlay_map(name, m) != 0) { delete_map(m); m = load_original_map(name, 0); if (m == NULL) { /* Really, this map is bad :( */ return NULL; } } } } else { /* If in this loop, we found a temporary map, so load it up. */ if (load_temporary_map(m) != 0) { /* * There was a failure loading the temporary map, fall back to original one. * load_temporary_map() already logged the error. */ delete_map(m); m = load_original_map(name, 0); if (m == NULL) { /* Really, this map is bad :( */ return NULL; } } load_unique_objects(m); clean_tmp_map(m); m->in_memory = MAP_IN_MEMORY; /* tempnam() on sun systems (probably others) uses malloc * to allocated space for the string. Free it here. * In some cases, load_temporary_map above won't find the * temporary map, and so has reloaded a new map. If that * is the case, tmpname is now null */ free(m->tmpname); m->tmpname = NULL; /* It's going to be saved anew anyway */ } /* Below here is stuff common to both first time loaded maps and * temp maps. */ decay_objects(m); /* start the decay */ if (m->outdoor) set_darkness_map(m); if (!(flags&(MAP_FLUSH))) { if (m->last_reset_time.tv_sec == 0) gettimeofday(&(m->last_reset_time), NULL); } return m; } /** * This routine is supposed to find out the difficulty of the map. * Difficulty does not have a lot to do with character level, * but does have a lot to do with treasure on the map. * * Difficulty can now be set by the map creature. If the value stored * in the map is zero, then use this routine. Maps should really * have a difficulty set than using this function - human calculation * is much better than this functions guesswork. * * @param m * map for which to compute difficulty. * @return * difficulty of the map. */ int calculate_difficulty(mapstruct *m) { archetype *at; int x, y; int diff = 0; int i; sint64 exp_pr_sq, total_exp = 0; if (MAP_DIFFICULTY(m)) { return MAP_DIFFICULTY(m); } for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, op) { if (QUERY_FLAG(op, FLAG_MONSTER)) total_exp += op->stats.exp; if (QUERY_FLAG(op, FLAG_GENERATOR)) { total_exp += op->stats.exp; at = get_archetype_by_type_subtype(GENERATE_TYPE(op), -1); if (at != NULL) total_exp += at->clone.stats.exp*8; } } FOR_MAP_FINISH(); exp_pr_sq = ((double)1000*total_exp)/(MAP_WIDTH(m)*MAP_HEIGHT(m)+1); diff = 20; for (i = 1; i < 20; i++) if (exp_pr_sq <= level_exp(i, 1.0)) { diff = i; break; } return diff; } /** * Removse the temporary file used by the map. * * @param m * map, which mustn't be NULL but can have no temporary file set. */ void clean_tmp_map(mapstruct *m) { if (m->tmpname == NULL) return; (void)unlink(m->tmpname); } /** * Frees all allocated maps. */ void free_all_maps(void) { int real_maps = 0; while (first_map) { /* I think some of the callers above before it gets here set this to be * saving, but we still want to free this data */ if (first_map->in_memory == MAP_SAVING) first_map->in_memory = MAP_IN_MEMORY; delete_map(first_map); real_maps++; } LOG(llevDebug, "free_all_maps: Freed %d maps\n", real_maps); } /** * Used to change map light level (darkness) * up or down. It should now be possible to change a value by more than 1. * * Move this from los.c to map.c since this is more related * to maps than los. * postive values make it darker, negative make it brighter * * Will inform players on the map. * * @param m * map to change. * @param change * delta of light. * @return * TRUE if light changed, FALSE else. */ int change_map_light(mapstruct *m, int change) { int new_level = m->darkness+change; /* Nothing to do */ if (!change || (new_level <= 0 && m->darkness == 0) || (new_level >= MAX_DARKNESS && m->darkness >= MAX_DARKNESS)) { return 0; } /* inform all players on the map */ if (change > 0) ext_info_map(NDI_BLACK, m, MSG_TYPE_MISC, MSG_SUBTYPE_NONE, "It becomes darker."); else ext_info_map(NDI_BLACK, m, MSG_TYPE_MISC, MSG_SUBTYPE_NONE, "It becomes brighter."); /* Do extra checking. since m->darkness is a unsigned value, * we need to be extra careful about negative values. * In general, the checks below are only needed if change * is not +/-1 */ if (new_level < 0) m->darkness = 0; else if (new_level >= MAX_DARKNESS) m->darkness = MAX_DARKNESS; else m->darkness = new_level; /* All clients need to get re-updated for the change */ update_all_map_los(m); return 1; } /** * This function is used for things that can have multiple * layers - NO_PICK, ITEM, LIVING, FLYING. * Basically, we want to store in the empty spot, * and if both full, store highest visiblity objects. * Since update_position() goes from bottom to top order, * if the new object is equal to existing we take the new * object since it is higher in the stack. * @param low_layer * lower bounds to check (inclusive). * @param high_layer * upper bounds to check (inclusive). * @param ob * object to add to the layer. * @param layers * layers to change. * @param honor_visibility * if it is set to 0,then we do a pure stacking logic - this is used * for the no pick layer, since stacking ordering there * is basically fixed - don't want to re-order walls, * pentagrams, etc. */ static inline void add_face_layer(int low_layer, int high_layer, object *ob, object *layers[], int honor_visibility) { int l, l1; object *tmp; for (l = low_layer; l <= high_layer; l++) { if (!layers[l]) { /* found an empty spot. now, we want to make sure * highest visibility at top, etc. */ layers[l] = ob; if (!honor_visibility) return; /* This is basically a mini bubble sort. Only swap * position if the lower face has greater (not equal) * visibility - map stacking is secondary consideration here. */ for (l1 = (l-1); l1 >= low_layer; l1--) { if (layers[l1]->face->visibility > layers[l1+1]->face->visibility) { tmp = layers[l1+1]; layers[l1+1] = layers[l1]; layers[l1] = tmp; } } /* Nothing more to do - face inserted */ return; } } /* If we get here, all the layers have an object.. */ if (!honor_visibility) { /* Basically, in this case, it is pure stacking logic, so * new object goes on the top. */ for (l = low_layer; l < high_layer; l++) layers[l] = layers[l+1]; layers[high_layer] = ob; /* If this object doesn't have higher visibility than * the lowest object, no reason to go further. */ } else if (ob->face->visibility >= layers[low_layer]->face->visibility) { /* * Start at the top (highest visibility) layer and work down. * once this face exceed that of the layer, push down those * other layers, and then replace the layer with our object. */ for (l = high_layer; l >= low_layer; l--) { if (ob->face->visibility >= layers[l]->face->visibility) { for (l1 = low_layer; l1 < l; l1++) layers[l1] = layers[l1+1]; layers[l] = ob; break; } } } } /** * This function updates various attributes about a specific space * on the map (what it looks like, whether it blocks magic, * has a living creatures, prevents people from passing * through, etc) * * @param m * map considered * @param x * @param y * coordinates to update */ void update_position(mapstruct *m, int x, int y) { object *player = NULL; uint8 flags = 0, oldflags, light = 0; object *layers[MAP_LAYERS]; MoveType move_block = 0, move_slow = 0, move_on = 0, move_off = 0, move_allow = 0; oldflags = GET_MAP_FLAGS(m, x, y); if (!(oldflags&P_NEED_UPDATE)) { LOG(llevDebug, "update_position called with P_NEED_UPDATE not set: %s (%d, %d)\n", m->path, x, y); return; } memset(layers, 0, MAP_LAYERS*sizeof(object *)); FOR_MAP_PREPARE(m, x, y, tmp) { /* DMs just don't do anything when hidden, including no light. */ if (QUERY_FLAG(tmp, FLAG_WIZ) && tmp->contr->hidden) continue; if (tmp->type == PLAYER) player = tmp; /* This could be made additive I guess (two lights better than * one). But if so, it shouldn't be a simple additive - 2 * light bulbs do not illuminate twice as far as once since * it is a dissipation factor that is squared (or is it cubed?) */ if (tmp->glow_radius > light) light = tmp->glow_radius; /* if this object is visible and not a blank face, * update the objects that show how this space * looks. */ if (!tmp->invisible && tmp->face != blank_face) { if (tmp->map_layer) { add_face_layer(tmp->map_layer, map_layer_info[tmp->map_layer].high_layer, tmp, layers, map_layer_info[tmp->map_layer].honor_visibility); } else if (tmp->move_type&MOVE_FLYING) { add_face_layer(MAP_LAYER_FLY1, MAP_LAYER_FLY2, tmp, layers, 1); } else if ((tmp->type == PLAYER || QUERY_FLAG(tmp, FLAG_MONSTER))) { add_face_layer(MAP_LAYER_LIVING1, MAP_LAYER_LIVING2, tmp, layers, 1); } else if (QUERY_FLAG(tmp, FLAG_IS_FLOOR)) { layers[MAP_LAYER_FLOOR] = tmp; /* floors hide everything else */ memset(layers+1, 0, (MAP_LAYERS-1)*sizeof(object *)); /* Check for FLAG_SEE_ANYWHERE is removed - objects * with that flag should just have a high visibility * set - we shouldn't need special code here. */ } else if (QUERY_FLAG(tmp, FLAG_NO_PICK)) { add_face_layer(MAP_LAYER_NO_PICK1, MAP_LAYER_NO_PICK2, tmp, layers, 0); } else { add_face_layer(MAP_LAYER_ITEM1, MAP_LAYER_ITEM3, tmp, layers, 1); } } if (tmp == tmp->above) { LOG(llevError, "Error in structure of map\n"); exit(-1); } move_slow |= tmp->move_slow; move_block |= tmp->move_block; move_on |= tmp->move_on; move_off |= tmp->move_off; move_allow |= tmp->move_allow; if (QUERY_FLAG(tmp, FLAG_ALIVE)) flags |= P_IS_ALIVE; if (QUERY_FLAG(tmp, FLAG_NO_MAGIC)) flags |= P_NO_MAGIC; if (QUERY_FLAG(tmp, FLAG_DAMNED)) flags |= P_NO_CLERIC; if (QUERY_FLAG(tmp, FLAG_BLOCKSVIEW)) flags |= P_BLOCKSVIEW; } FOR_MAP_FINISH(); /* for stack of objects */ if (player) flags |= P_PLAYER; /* we don't want to rely on this function to have accurate flags, but * since we're already doing the work, we calculate them here. * if they don't match, logic is broken someplace. */ if (((oldflags&~(P_NEED_UPDATE|P_NO_ERROR)) != flags) && (!(oldflags&P_NO_ERROR))) { LOG(llevDebug, "update_position: updated flags do not match old flags: %s (x=%d,y=%d) %x != %x\n", m->path, x, y, (oldflags&~P_NEED_UPDATE), flags); } SET_MAP_FLAGS(m, x, y, flags); SET_MAP_MOVE_BLOCK(m, x, y, move_block&~move_allow); SET_MAP_MOVE_ON(m, x, y, move_on); SET_MAP_MOVE_OFF(m, x, y, move_off); SET_MAP_MOVE_SLOW(m, x, y, move_slow); SET_MAP_LIGHT(m, x, y, light); /* Note that player may be NULL here, which is fine - if no player, need * to clear any value that may be set. */ SET_MAP_PLAYER(m, x, y, player); /* Note it is intentional we copy everything, including NULL values. */ memcpy(GET_MAP_FACE_OBJS(m, x, y), layers, sizeof(object *)*MAP_LAYERS); } /** * Updates the map's timeout. * * @param map * map to update. */ void set_map_reset_time(mapstruct *map) { int timeout; timeout = MAP_RESET_TIMEOUT(map); if (timeout <= 0) timeout = MAP_DEFAULTRESET; if (timeout >= MAP_MAXRESET) timeout = MAP_MAXRESET; MAP_WHEN_RESET(map) = seconds()+timeout; } /** * This updates the orig_map->tile_map[tile_num] value after loading * the map. It also takes care of linking back the freshly loaded * maps tile_map values if it tiles back to this one. It returns * the value of orig_map->tile_map[tile_num]. It really only does this * so that it is easier for calling functions to verify success. * * @param orig_map * map for which we load the tiled map. * @param tile_num * tile to load. Must be between 0 and 3 inclusive. * @return * linked map, or NULL on failure. * * @todo * check ready_map_name() 's return value, which can be NULL? */ static mapstruct *load_and_link_tiled_map(mapstruct *orig_map, int tile_num) { int dest_tile = (tile_num+2)%4; char path[HUGE_BUF]; path_combine_and_normalize(orig_map->path, orig_map->tile_path[tile_num], path, sizeof(path)); orig_map->tile_map[tile_num] = ready_map_name(path, 0); /* need to do a strcmp here as the orig_map->path is not a shared string */ if (orig_map->tile_map[tile_num]->tile_path[dest_tile] && !strcmp(orig_map->tile_map[tile_num]->tile_path[dest_tile], orig_map->path)) orig_map->tile_map[tile_num]->tile_map[dest_tile] = orig_map; return orig_map->tile_map[tile_num]; } /** * this returns TRUE if the coordinates (x,y) are out of * map m. This function also takes into account any * tiling considerations, loading adjacant maps as needed. * This is the function should always be used when it * necessary to check for valid coordinates. * This function will recursively call itself for the * tiled maps. * * @param m * map to consider. * @param x * @param y * coordinates. * @return * 1 if out of map, 0 else */ int out_of_map(mapstruct *m, int x, int y) { /* If we get passed a null map, this is obviously the * case. This generally shouldn't happen, but if the * map loads fail below, it could happen. */ if (!m) return 0; /* Simple case - coordinates are within this local * map. */ if (x >= 0 && x < MAP_WIDTH(m) && y >= 0 && y < MAP_HEIGHT(m)) return 0; if (x < 0) { if (!m->tile_path[3]) return 1; if (!m->tile_map[3] || m->tile_map[3]->in_memory != MAP_IN_MEMORY) { load_and_link_tiled_map(m, 3); } return (out_of_map(m->tile_map[3], x+MAP_WIDTH(m->tile_map[3]), y)); } if (x >= MAP_WIDTH(m)) { if (!m->tile_path[1]) return 1; if (!m->tile_map[1] || m->tile_map[1]->in_memory != MAP_IN_MEMORY) { load_and_link_tiled_map(m, 1); } return (out_of_map(m->tile_map[1], x-MAP_WIDTH(m), y)); } if (y < 0) { if (!m->tile_path[0]) return 1; if (!m->tile_map[0] || m->tile_map[0]->in_memory != MAP_IN_MEMORY) { load_and_link_tiled_map(m, 0); } return (out_of_map(m->tile_map[0], x, y+MAP_HEIGHT(m->tile_map[0]))); } if (y >= MAP_HEIGHT(m)) { if (!m->tile_path[2]) return 1; if (!m->tile_map[2] || m->tile_map[2]->in_memory != MAP_IN_MEMORY) { load_and_link_tiled_map(m, 2); } return (out_of_map(m->tile_map[2], x, y-MAP_HEIGHT(m))); } return 1; } /** * This is basically the same as out_of_map above(), but * instead we return NULL if no map is valid (coordinates * out of bounds and no tiled map), otherwise it returns * the map as that the coordinates are really on, and * updates x and y to be the localized coordinates. * Using this is more efficient than calling out_of_map * and then figuring out what the real map is * * @param m * map we want to look at. * @param x * @param y * coordinates, which will contain the real position that was checked. * @return * map that is at specified location. Will be NULL if not on any map. */ mapstruct *get_map_from_coord(mapstruct *m, sint16 *x, sint16 *y) { /* m should never be null, but if a tiled map fails to load below, it could * happen. */ if (!m) return NULL; /* Simple case - coordinates are within this local * map. */ if (*x >= 0 && *x < MAP_WIDTH(m) && *y >= 0 && *y < MAP_HEIGHT(m)) return m; if (*x < 0) { if (!m->tile_path[3]) return NULL; if (!m->tile_map[3] || m->tile_map[3]->in_memory != MAP_IN_MEMORY) load_and_link_tiled_map(m, 3); *x += MAP_WIDTH(m->tile_map[3]); return (get_map_from_coord(m->tile_map[3], x, y)); } if (*x >= MAP_WIDTH(m)) { if (!m->tile_path[1]) return NULL; if (!m->tile_map[1] || m->tile_map[1]->in_memory != MAP_IN_MEMORY) load_and_link_tiled_map(m, 1); *x -= MAP_WIDTH(m); return (get_map_from_coord(m->tile_map[1], x, y)); } if (*y < 0) { if (!m->tile_path[0]) return NULL; if (!m->tile_map[0] || m->tile_map[0]->in_memory != MAP_IN_MEMORY) load_and_link_tiled_map(m, 0); *y += MAP_HEIGHT(m->tile_map[0]); return (get_map_from_coord(m->tile_map[0], x, y)); } if (*y >= MAP_HEIGHT(m)) { if (!m->tile_path[2]) return NULL; if (!m->tile_map[2] || m->tile_map[2]->in_memory != MAP_IN_MEMORY) load_and_link_tiled_map(m, 2); *y -= MAP_HEIGHT(m); return (get_map_from_coord(m->tile_map[2], x, y)); } return NULL; /* Coordinates aren't valid if we got here */ } /** * Return whether map2 is adjacent to map1. If so, store the distance from * map1 to map2 in dx/dy. * * @param map1 * @param map2 * maps to consider. * @param dx * @param dy * distance. Must not be NULL. Not altered if returns 0. * @return * 1 if maps are adjacent, 0 else. */ static int adjacent_map(const mapstruct *map1, const mapstruct *map2, int *dx, int *dy) { if (!map1 || !map2) return 0; if (map1 == map2) { *dx = 0; *dy = 0; } else if (map1->tile_map[0] == map2) { /* up */ *dx = 0; *dy = -MAP_HEIGHT(map2); } else if (map1->tile_map[1] == map2) { /* right */ *dx = MAP_WIDTH(map1); *dy = 0; } else if (map1->tile_map[2] == map2) { /* down */ *dx = 0; *dy = MAP_HEIGHT(map1); } else if (map1->tile_map[3] == map2) { /* left */ *dx = -MAP_WIDTH(map2); *dy = 0; } else if (map1->tile_map[0] && map1->tile_map[0]->tile_map[1] == map2) { /* up right */ *dx = MAP_WIDTH(map1->tile_map[0]); *dy = -MAP_HEIGHT(map1->tile_map[0]); } else if (map1->tile_map[0] && map1->tile_map[0]->tile_map[3] == map2) { /* up left */ *dx = -MAP_WIDTH(map2); *dy = -MAP_HEIGHT(map1->tile_map[0]); } else if (map1->tile_map[1] && map1->tile_map[1]->tile_map[0] == map2) { /* right up */ *dx = MAP_WIDTH(map1); *dy = -MAP_HEIGHT(map2); } else if (map1->tile_map[1] && map1->tile_map[1]->tile_map[2] == map2) { /* right down */ *dx = MAP_WIDTH(map1); *dy = MAP_HEIGHT(map1->tile_map[1]); } else if (map1->tile_map[2] && map1->tile_map[2]->tile_map[1] == map2) { /* down right */ *dx = MAP_WIDTH(map1->tile_map[2]); *dy = MAP_HEIGHT(map1); } else if (map1->tile_map[2] && map1->tile_map[2]->tile_map[3] == map2) { /* down left */ *dx = -MAP_WIDTH(map2); *dy = MAP_HEIGHT(map1); } else if (map1->tile_map[3] && map1->tile_map[3]->tile_map[0] == map2) { /* left up */ *dx = -MAP_WIDTH(map1->tile_map[3]); *dy = -MAP_HEIGHT(map2); } else if (map1->tile_map[3] && map1->tile_map[3]->tile_map[2] == map2) { /* left down */ *dx = -MAP_WIDTH(map1->tile_map[3]); *dy = MAP_HEIGHT(map1->tile_map[3]); } else { /* not "adjacent" enough */ return 0; } return 1; } /** * From map.c * This is used by get_player to determine where the other * creature is. get_rangevector takes into account map tiling, * so you just can not look the the map coordinates and get the * right value. distance_x/y are distance away, which * can be negative. direction is the crossfire direction scheme * that the creature should head. part is the part of the * monster that is closest. * * get_rangevector looks at op1 and op2, and fills in the * structure for op1 to get to op2. * We already trust that the caller has verified that the * two objects are at least on adjacent maps. If not, * results are not likely to be what is desired. * * @param op1 * object which wants to go to op2's location. * @param op2 * target of op1. * @param retval * vector for op1 to go to op2. * @param flags * if 1, don't translate for closest body part of 'op1' * @return * 1=ok; 0=the objects are not on the same map */ int get_rangevector(object *op1, const object *op2, rv_vector *retval, int flags) { if (!adjacent_map(op1->map, op2->map, &retval->distance_x, &retval->distance_y)) { /* be conservative and fill in _some_ data */ retval->distance = 100000; retval->distance_x = 32767; retval->distance_y = 32767; retval->direction = 0; retval->part = NULL; return 0; } else { object *best; retval->distance_x += op2->x-op1->x; retval->distance_y += op2->y-op1->y; best = op1; /* If this is multipart, find the closest part now */ if (!(flags&0x1) && op1->more) { object *tmp; int best_distance = retval->distance_x*retval->distance_x+ retval->distance_y*retval->distance_y, tmpi; /* we just take the offset of the piece to head to figure * distance instead of doing all that work above again * since the distance fields we set above are positive in the * same axis as is used for multipart objects, the simply arithmetic * below works. */ for (tmp = op1->more; tmp != NULL; tmp = tmp->more) { tmpi = (op1->x-tmp->x+retval->distance_x)*(op1->x-tmp->x+retval->distance_x)+ (op1->y-tmp->y+retval->distance_y)*(op1->y-tmp->y+retval->distance_y); if (tmpi < best_distance) { best_distance = tmpi; best = tmp; } } if (best != op1) { retval->distance_x += op1->x-best->x; retval->distance_y += op1->y-best->y; } } retval->part = best; retval->distance = isqrt(retval->distance_x*retval->distance_x+retval->distance_y*retval->distance_y); retval->direction = find_dir_2(-retval->distance_x, -retval->distance_y); return 1; } } /** * This is basically the same as get_rangevector() above, but instead of * the first parameter being an object, it instead is the map * and x,y coordinates - this is used for path to player - * since the object is not infact moving but we are trying to traverse * the path, we need this. * flags has no meaning for this function at this time - I kept it in to * be more consistant with the above function and also in case they are needed * for something in the future. Also, since no object is pasted, the best * field of the rv_vector is set to NULL. * * @param m * map to consider. * @param x * @param y * origin coordinates. * @param op2 * target object. * @param retval * vector to get to op2. * @param flags * unused. * @return * 1=ok; 0=the objects are not on the same map */ int get_rangevector_from_mapcoord(const mapstruct *m, int x, int y, const object *op2, rv_vector *retval, int flags) { if (!adjacent_map(m, op2->map, &retval->distance_x, &retval->distance_y)) { /* be conservative and fill in _some_ data */ retval->distance = 100000; retval->distance_x = 32767; retval->distance_y = 32767; retval->direction = 0; retval->part = NULL; return 0; } else { retval->distance_x += op2->x-x; retval->distance_y += op2->y-y; retval->part = NULL; retval->distance = isqrt(retval->distance_x*retval->distance_x+retval->distance_y*retval->distance_y); retval->direction = find_dir_2(-retval->distance_x, -retval->distance_y); return 1; } } /** * Checks whether 2 objects are on the same map or not. * * Note we only look one map out to keep the processing simple * and efficient. This could probably be a macro. * MSW 2001-08-05 * * @param op1 * first object. * @param op2 * second object. * @return * TRUE if op1 and op2 are effectively on the same map (as related to map tiling). * * @note * This looks for a path from op1 to op2, so if the tiled maps are assymetric and op2 has a path * to op1, this will still return false. */ int on_same_map(const object *op1, const object *op2) { int dx, dy; return adjacent_map(op1->map, op2->map, &dx, &dy); } /** * Finds an object in a map tile by flag number. Checks the objects' heads. * * @param map * the map to search. * @param x * the x-coordiate to search. * @param y * the y-coordiate to search. * @param flag * the flag to seacrh for * @return * first object's head in the tile that has the flag set. NULL if no match. * * @note * will not search in inventory of objects. */ object *map_find_by_flag(mapstruct *map, int x, int y, int flag) { object *tmp; for (tmp = GET_MAP_OB(map, x, y); tmp != NULL; tmp = tmp->above) { object *head; head = HEAD(tmp); if (QUERY_FLAG(head, flag)) return head; } return NULL; } /** * Remove files containing the map's unique items. * @param map */ void map_remove_unique_files(const mapstruct *map) { char base[HUGE_BUF], path[HUGE_BUF]; int count; if (map->unique) { /* Unique maps have their full path already set. */ unlink(map->path); return; } create_items_path(map->path, base, sizeof(base)); for (count = 0; count < 10; count++) { snprintf(path, sizeof(path), "%s.v%02d", base, count); unlink(path); } } crossfire-1.70.0/common/readable.c0000644000014500000120000021061711731300526013702 00000000000000/* * static char *rcsid_readable_c = * "$Id: readable.c 16408 2012-01-01 13:03:00Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file readable.c * This file contains code relevant to the BOOKS hack -- designed * to allow randomly occuring messages in non-magical texts. * * @todo * replace message type with defines/enums & such things. */ /* laid down initial file - dec 1995. -b.t. thomas@astro.psu.edu */ #include #include #include #include #include #include /* Define this if you want to archive book titles by contents. * This option should enforce UNIQUE combinations of titles,authors and * msg contents during and *between *game sessions. * Note: a slight degeneracy exists since books are archived based on an integer * index value calculated from the message text (similar to alchemy formulae). * Sometimes two widely different messages have the same index value (rare). In * this case, it is possible to occasionally generate 2 books with same title and * different message content. Not really a bug, but rather a feature. This action * should keeps player on their toes ;). * Also, note that there is *finite *space available for archiving message and titles. * Once this space is used, books will stop being archived. Not a serious problem * under the current regime, since there are generally fewer possible (random) * messages than space available on the titlelists. * One exception (for sure) are the monster messages. But no worries, you should * see all of the monster info in some order (but not all possble combinations) * before the monster titlelist space is run out. You can increase titlelist * space by increasing the array sizes for the monster book_authours and book_names * (see max_titles[] array and include/read.h). Since the unique_book algorthm is * kinda stupid, this program *may *slow down program execution if defined (but I don't * think its a significant problem, at least, I have no problems running this option * on a Sparc 10! Also, once archive title lists are filled and/or all possible msg * combinations have been generated, unique_book isnt called anymore. It takes 5-10 * sessions for this to happen). * Final note: the game remembers book/title/msg combinations from reading the * file lib/bookarch. If you REMOVE this file, you will lose your archive. So * be sure to copy it over to the new lib directory when you change versions. * -b.t. */ /* This flag is useful to see what kind of output messages are created */ /* #define BOOK_MSG_DEBUG */ /* This flag is useful for debugging archiving action */ /* #define ARCHIVE_DEBUG */ /** How many times to try to generate a unique name for a book. */ #define MAX_TITLE_CHECK 20 #define MSGTYPE_LIB 0 #define MSGTYPE_MONSTER 1 #define MSGTYPE_ARTIFACT 2 #define MSGTYPE_SPELLPATH 3 #define MSGTYPE_ALCHEMY 4 #define MSGTYPE_GODS 5 #define MSGTYPE_MSGFILE 6 /** * Returns the element size of an array. * @param arrayname the array's name * @return the number of elements */ #define arraysize(arrayname) (sizeof(arrayname)/sizeof(*(arrayname))) /* Moved these structures from struct.h to this file in 0.94.3 - they * are not needed anyplace else, so why have them globally declared? */ /** 'title' and 'titlelist' are used by the readable code */ typedef struct titlestruct { const char *name; /**< the name of the book */ const char *authour; /**< the name of the book authour */ const char *archname; /**< the archetype name of the book */ int level; /**< level of difficulty of this message */ size_t size; /**< size of the book message */ int msg_index; /**< an index value derived from book message */ struct titlestruct *next; } title; typedef struct titleliststruct { int number; /**< number of items in the list */ struct titlestruct *first_book; /**< pointer to first book in this list */ struct titleliststruct *next; /**< pointer to next book list */ } titlelist; /** special structure, used only by art_name_array[] */ typedef struct namebytype { const char *name; /**< generic name to call artifacts of this type */ int type; /**< matching type */ } arttypename; /** * One general message, from the lib/messages file. */ struct GeneralMessage { int chance; /**< Relative chance of the message appearing randomly. If 0 will never appear. */ sstring identifier; /**< Message identifier, can be NULL. */ sstring title; /**< The message's title, only used for knowledge. */ sstring message; /**< The message's body. */ sstring quest_code; /**< Optional quest code and state this message will start. */ GeneralMessage *next; /**< Next message in the list. */ }; static void add_book(title *book, int type, const char *fname, int lineno); /** * booklist is the buffer of books read in from the bookarch file. It's element * size does not exceed arraysize(max_titles). */ static titlelist *booklist = NULL; /** Information on monsters */ static objectlink *first_mon_info = NULL; /** * these are needed for creation of a linked list of * pointers to all (hostile) monster objects */ static int nrofmon = 0, need_to_write_bookarchive = 0; /** * First message from data read from the messages file. * Note that this points to the last message in the file, * as messages are added to the start of the list. */ static GeneralMessage *first_msg = NULL; /** * Total chance of messages (GeneralMessage), to randomly select one. */ static int msg_total_chance = 0; /** * Spellpath information */ static const uint32 spellpathdef[NRSPELLPATHS] = { PATH_PROT, PATH_FIRE, PATH_FROST, PATH_ELEC, PATH_MISSILE, PATH_SELF, PATH_SUMMON, PATH_ABJURE, PATH_RESTORE, PATH_DETONATE, PATH_MIND, PATH_CREATE, PATH_TELE, PATH_INFO, PATH_TRANSMUTE, PATH_TRANSFER, PATH_TURNING, PATH_WOUNDING, PATH_DEATH, PATH_LIGHT }; /** Book names for path information. */ static const char *const path_book_name[] = { "codex", "compendium", "exposition", "tables", "treatise" }; /** Used by spellpath texts */ static const char *const path_author[] = { "aether", "astral byways", "connections", "the Grey Council", "deep pathways", "knowledge", "magic", "mystic ways", "pathways", "power", "spells", "transforms", "the mystic veil", "unknown spells" }; /** * Artiface/item information. * * if it isnt listed here, then art_attr_msg() will never generate * a message for this type of artifact. -b.t. */ static const arttypename art_name_array[] = { { "Helmet", HELMET }, { "Amulet", AMULET }, { "Shield", SHIELD }, { "Bracers", BRACERS }, { "Boots", BOOTS }, { "Cloak", CLOAK }, { "Gloves", GLOVES }, { "Gridle", GIRDLE }, { "Ring", RING }, { "Horn", ROD }, { "Missile Weapon", BOW }, { "Missile", ARROW }, { "Hand Weapon", WEAPON }, { "Artifact", SKILL }, { "Food", FOOD }, { "Body Armour", ARMOUR } }; /** Book titles for artifact information. */ static const char *const art_book_name[] = { "collection", "file", "files", "guide", "handbook", "index", "inventory", "list", "listing", "record", "record book" }; /** Used by artifact texts */ static const char *const art_author[] = { "ancient things", "artifacts", "Havlor", /* ancient warrior scribe :) */ "items", "lost artifacts", "the ancients", "useful things" }; /** * Monster book information. */ static const char *const mon_book_name[] = { "beastuary", "catalog", "compilation", "collection", "encyclopedia", "guide", "handbook", "list", "manual", "notes", "record", "register", "volume" }; /** Used by monster beastuary texts */ static const char *const mon_author[] = { "beasts", "creatures", "dezidens", "dwellers", "evil nature", "life", "monsters", "nature", "new life", "residents", "the spawn", "the living", "things" }; /** * God book information */ static const char *const gods_book_name[] = { "devotional", "devout notes", "divine text", "divine work", "holy book", "holy record", "moral text", "sacred guide", "testament", "transcript" }; /** Used by gods texts */ static const char *const gods_author[] = { "cults", "joy", "lasting curse", "madness", "religions", "the dead", "the gods", "the heirophant", "the poor priest", "the priestess", "pain", "white" }; /** * Alchemy (formula) information */ static const char *const formula_book_name[] = { "cookbook", "formulary", "lab book", "lab notes", "recipe book", "experiment record", "work plan", "design notes" }; /** This isn't used except for empty books */ static const char *const formula_author[] = { "Albertus Magnus", "alchemy", "balms", "creation", "dusts", "magical manufacture", "making", "philosophical items", "potions", "powders", "the cauldron", "the lamp black", "transmutation", "waters" }; /** * Generic book information */ /** Used by msg file and 'generic' books */ static const char *const light_book_name[] = { "calendar", "datebook", "diary", "guidebook", "handbook", "ledger", "notes", "notebook", "octavo", "pamphlet", "practicum", "script", "transcript" }; /** Name for big books. */ static const char *const heavy_book_name[] = { "catalog", "compendium", "guide", "manual", "opus", "tome", "treatise", "volume", "work" }; /** Used by 'generic' books */ static const char *const book_author[] = { "Abdulah", "Al'hezred", "Alywn", "Arundel", "Arvind", "Aerlingas", "Bacon", "Baliqendii", "Bosworth", "Beathis", "Bertil", "Cauchy", "Chakrabarti", "der Waalis", "Dirk", "Djwimii", "Eisenstaadt", "Fendris", "Frank", "Habbi", "Harlod", "Ichibod", "Janus", "June", "Magnuson", "Nandii", "Nitfeder", "Norris", "Parael", "Penhew", "Sophia", "Skilly", "Tahir", "Thockmorton", "Thomas", "van Helsing", "van Pelt", "Voormis", "Xavier", "Xeno", "Zardoz", "Zagy" }; /** Book descriptions. */ static const char *const book_descrpt[] = { "ancient", "cryptic", "cryptical", "dusty", "hiearchical", "grizzled", "gold-guilt", "great", "lost", "magnificent", "musty", "mythical", "mystical", "rustic", "stained", "silvered", "transcendental", "weathered" }; /** * Each line of this array is a readable subtype * Be careful to keep the order. If you add readable subtype, add them * at the bottom of the list. Never delete a subtype because index is used as * subtype parameter in arch files! */ static const readable_message_type readable_message_types[] = { /*subtype 0 */ { 0, 0 }, /* book messages subtypes */ /*subtype 1 */ { MSG_TYPE_BOOK, MSG_TYPE_BOOK_CLASP_1 }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_CLASP_2 }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_ELEGANT_1 }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_ELEGANT_2 }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_QUARTO_1 }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_QUARTO_2 }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_SPELL_EVOKER }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_SPELL_PRAYER }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_SPELL_PYRO }, /*subtype 10 */ { MSG_TYPE_BOOK, MSG_TYPE_BOOK_SPELL_SORCERER }, { MSG_TYPE_BOOK, MSG_TYPE_BOOK_SPELL_SUMMONER }, /* card messages subtypes*/ { MSG_TYPE_CARD, MSG_TYPE_CARD_SIMPLE_1 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_SIMPLE_2 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_SIMPLE_3 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_ELEGANT_1 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_ELEGANT_2 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_ELEGANT_3 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_STRANGE_1 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_STRANGE_2 }, /*subtype 20 */ { MSG_TYPE_CARD, MSG_TYPE_CARD_STRANGE_3 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_MONEY_1 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_MONEY_2 }, { MSG_TYPE_CARD, MSG_TYPE_CARD_MONEY_3 }, /* Paper messages subtypes */ { MSG_TYPE_PAPER, MSG_TYPE_PAPER_NOTE_1 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_NOTE_2 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_NOTE_3 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_LETTER_OLD_1 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_LETTER_OLD_2 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_LETTER_NEW_1 }, /*subtype 30 */ { MSG_TYPE_PAPER, MSG_TYPE_PAPER_LETTER_NEW_2 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_ENVELOPE_1 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_ENVELOPE_2 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_SCROLL_OLD_1 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_SCROLL_OLD_2 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_SCROLL_NEW_1 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_SCROLL_NEW_2 }, { MSG_TYPE_PAPER, MSG_TYPE_PAPER_SCROLL_MAGIC }, /* road signs messages subtypes */ { MSG_TYPE_SIGN, MSG_TYPE_SIGN_BASIC }, { MSG_TYPE_SIGN, MSG_TYPE_SIGN_DIR_LEFT }, /*subtype 40 */ { MSG_TYPE_SIGN, MSG_TYPE_SIGN_DIR_RIGHT }, { MSG_TYPE_SIGN, MSG_TYPE_SIGN_DIR_BOTH }, /* stones and monument messages */ { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_STONE_1 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_STONE_2 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_STONE_3 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_STATUE_1 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_STATUE_2 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_STATUE_3 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_GRAVESTONE_1 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_GRAVESTONE_2 }, /*subtype 50 */ { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_GRAVESTONE_3 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_WALL_1 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_WALL_2 }, { MSG_TYPE_MONUMENT, MSG_TYPE_MONUMENT_WALL_3 }, { MSG_TYPE_SIGN, MSG_TYPE_SIGN_MAGIC_MOUTH } }; /** Number of elements in ::readable_message_types */ static const int last_readable_subtype = arraysize(readable_message_types); /** Number of titles for different name lists. */ static const int max_titles[6] = { (arraysize(light_book_name)+arraysize(heavy_book_name))*arraysize(book_author), /* MSGTYPE_LIB */ arraysize(mon_book_name)*arraysize(mon_author), /* MSGTYPE_MONSTER */ arraysize(art_book_name)*arraysize(art_author), /* MSGTYPE_ARTIFACT */ arraysize(path_book_name)*arraysize(path_author), /* MSGTYPE_SPELLPATH */ arraysize(formula_book_name)*arraysize(formula_author), /* MSGTYPE_ALCHEMY */ arraysize(gods_book_name)*arraysize(gods_author), /* MSGTYPE_GODS */ }; /****************************************************************************** * * Start of misc. readable functions used by others functions in this file * *****************************************************************************/ /** * Creates a titlelist. * * @return * new titlelist. * * @note * if memory allocation failes, calls fatal(). */ static titlelist *get_empty_booklist(void) { titlelist *bl = (titlelist *)malloc(sizeof(titlelist)); if (bl == NULL) fatal(OUT_OF_MEMORY); bl->number = 0; bl->first_book = NULL; bl->next = NULL; return bl; } /** * Creates a title. * * @return * new title. * * @note * if memory allocation failes, calls fatal(). */ static title *get_empty_book(void) { title *t = (title *)malloc(sizeof(title)); if (t == NULL) fatal(OUT_OF_MEMORY); t->name = NULL; t->archname = NULL; t->authour = NULL; t->level = 0; t->size = 0; t->msg_index = 0; t->next = NULL; return t; } /** * Gets the ith titlelist. * * Will create items if they don't exist. * * @param i * index to get. * @return * pointer to the title list referenced by i. Will never be NULL. */ static titlelist *get_titlelist(int i) { titlelist *tl; int number; if (i < 0 || i >= (int)arraysize(max_titles)) { LOG(llevInfo, "Warning: invalid book index %d, using 0 instead\n", i); return booklist; } for (tl = booklist, number = i; tl && number; tl = tl->next, number--) { if (!tl->next) tl->next = get_empty_booklist(); } return tl; } /* HANDMADE STRING FUNCTIONS.., perhaps these belong in another file * (shstr.c ?), but the quantity BOOK_BUF will need to be defined. */ /** * Simple routine to return the number of list * items in buf1 as separated by the value of buf2 * * @param buf1 * items we want to split. * @param buf2 * what to split by. * @return * number of elements. */ int nstrtok(const char *buf1, const char *buf2) { char *tbuf, buf[MAX_BUF]; int number = 0; if (!buf1 || !buf2) return 0; snprintf(buf, sizeof(buf), "%s", buf1); for (tbuf = strtok(buf, buf2); tbuf; tbuf = strtok(NULL, buf2)) { number++; } return number; } /** * Takes a string in buf1 and separates it into * a list of strings delimited by buf2. Then returns a comma * separated string w/ decent punctuation. * * @param buf1 * buffer to split. * @param buf2 * what to split buf1 by. * @param retbuf * where to write the resulting string. * @param size * length of retbuf. * @return * retbuf. */ char *strtoktolin(const char *buf1, const char *buf2, char *retbuf, size_t size) { int maxi, i = nstrtok(buf1, buf2); char *tbuf, buf[MAX_BUF]; maxi = i; snprintf(buf, sizeof(buf), "%s", buf1); snprintf(retbuf, size, " "); for (tbuf = strtok(buf, buf2); tbuf && i > 0; tbuf = strtok(NULL, buf2)) { snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "%s", tbuf); i--; if (i == 1 && maxi > 1) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), " and "); else if (i > 0 && maxi > 1) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), ", "); else snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "."); } return retbuf; } /** * Checks if buf1 and buf2 can be combined. * @param buf1 * @param buf2 * buffer we plan on combining. * @param booksize * maximum book size. * @return * 0 if buffers can be combined, 1 else. */ int book_overflow(const char *buf1, const char *buf2, size_t booksize) { if (buf_overflow(buf1, buf2, BOOK_BUF-2) /* 2 less so always room for trailing \n */ || buf_overflow(buf1, buf2, booksize)) return 1; return 0; } /***************************************************************************** * * Start of initialization related functions. * ****************************************************************************/ /** * If not called before, initialize the info list. * * Reads the messages file into the list pointed to by first_msg */ static void init_msgfile(void) { FILE *fp; char buf[MAX_BUF], msgbuf[HUGE_BUF], fname[MAX_BUF], *cp; int text = 0, nrofmsg = 0; static int did_init_msgfile = 0; if (did_init_msgfile) return; did_init_msgfile = 1; snprintf(fname, sizeof(fname), "%s/messages", settings.datadir); LOG(llevDebug, "Reading messages from %s...\n", fname); fp = fopen(fname, "r"); if (fp != NULL) { GeneralMessage *tmp = NULL; int lineno; int error_lineno; error_lineno = 0; for (lineno = 1; fgets(buf, MAX_BUF, fp) != NULL; lineno++) { if (*buf == '#') continue; cp = strchr(buf, '\n'); if (cp != NULL) { while (cp > buf && (cp[-1] == ' ' || cp[-1] == '\t')) cp--; *cp = '\0'; } if (tmp != NULL) { if (text && strcmp(buf, "ENDMSG") == 0) { if (strlen(msgbuf) > BOOK_BUF) { LOG(llevDebug, "Warning: this string exceeded max book buf size:\n"); LOG(llevDebug, " %s\n", msgbuf); } tmp->message = add_string(msgbuf); tmp->next = first_msg; first_msg = tmp; nrofmsg++; if (tmp->identifier != NULL && tmp->title == NULL) { LOG(llevError, "Error: message can't have identifier without title, on line %d\n", error_lineno); fatal(SEE_LAST_ERROR); } tmp = NULL; text = 0; } else if (text) { if (!buf_overflow(msgbuf, buf, HUGE_BUF-1)) { strcat(msgbuf, buf); strcat(msgbuf, "\n"); } else if (error_lineno != 0) { LOG(llevInfo, "Warning: truncating book at %s, line %d\n", fname, error_lineno); } } else if (strcmp(buf, "TEXT") == 0) { text = 1; } else if (strncmp(buf, "CHANCE ", 7) == 0) { tmp->chance = atoi(buf + 7); msg_total_chance += tmp->chance; } else if (strncmp(buf, "TITLE ", 6) == 0) { tmp->title = add_string(buf + 6); } else if (strncmp(buf, "QUEST ", 6) == 0) { tmp->quest_code = add_string(buf + 6); } else if (error_lineno != 0) { LOG(llevInfo, "Warning: unknown line %s, line %d\n", buf, error_lineno); } } else if (strncmp(buf, "MSG", 3) == 0) { error_lineno = lineno; tmp = (GeneralMessage *)calloc(1, sizeof(GeneralMessage)); strcpy(msgbuf, " "); /* reset msgbuf for new message */ if (buf[3] == ' ') { int i = 4; while (buf[i] == ' ' && buf[i] != '\0') i++; if (buf[i] != '\0') { tmp->identifier = add_string(buf + i); if (get_message_from_identifier(buf + i)) { LOG(llevError, "Duplicated message identifier %s at line %d\n", buf + i, error_lineno); fatal(SEE_LAST_ERROR); } } } } else { LOG(llevInfo, "Warning: syntax error at %s, line %d\n", fname, lineno); } } fclose(fp); if (tmp != NULL) { LOG(llevError, "Invalid file %s", fname); fatal(SEE_LAST_ERROR); } } LOG(llevDebug, "done messages, found %d for total chance %d.\n", nrofmsg, msg_total_chance); } /** * If not called before, initialize the info list. * * This reads in the bookarch file into memory. bookarch is the file * created and updated across multiple runs of the program. */ static void init_book_archive(void) { FILE *fp; int nroftitle = 0; char buf[MAX_BUF], fname[MAX_BUF], *cp; static int did_init_barch = 0; if (did_init_barch) return; did_init_barch = 1; if (!booklist) booklist = get_empty_booklist(); snprintf(fname, sizeof(fname), "%s/bookarch", settings.localdir); LOG(llevDebug, " Reading bookarch from %s...\n", fname); fp = fopen(fname, "r"); if (fp != NULL) { int type; size_t i; titlelist *bl; int lineno; title *book; int skipping; skipping = 0; book = NULL; type = -1; for (lineno = 1; fgets(buf, MAX_BUF, fp) != NULL; lineno++) { int len; int value; if (*buf == '#') continue; cp = strchr(buf, '\n'); if (cp != NULL) { while (cp > buf && (cp[-1] == ' ' || cp[-1] == '\t')) cp--; *cp = '\0'; } cp = buf; if (strncmp(buf, "title ", 6) == 0) { skipping = 0; cp = buf+6; while (*cp == ' ' || *cp == '\t') cp++; if (*cp == '\0') { LOG(llevInfo, "Warning: missing book title at %s, line %d\n", fname, lineno); book = NULL; } else { book = get_empty_book(); /* init new book entry */ book->name = add_string(cp); type = -1; nroftitle++; } } else if (book == NULL) { if (!skipping) { skipping = 1; LOG(llevInfo, "Warning: expecting 'title' at %s, line %d\n", fname, lineno); } } else if (strncmp(buf, "authour ", 8) == 0) { cp = buf+8; while (*cp == ' ' || *cp == '\t') cp++; if (*cp == '\0') { LOG(llevInfo, "Warning: missing book authour at %s, line %d\n", fname, lineno); } else { book->authour = add_string(cp); } } else if (strncmp(buf, "arch ", 5) == 0) { cp = buf+5; while (*cp == ' ' || *cp == '\t') cp++; if (*cp == '\0') { LOG(llevInfo, "Warning: missing book arch at %s, line %d\n", fname, lineno); } else { book->archname = add_string(cp); } } else if (sscanf(buf, "level %d%n", &value, &len) == 1 && len == (int)strlen(buf)) { book->level = value; } else if (sscanf(buf, "type %d%n", &value, &len) == 1 && len == (int)strlen(buf)) { type = value; } else if (sscanf(buf, "size %d%n", &value, &len) == 1 && len == (int)strlen(buf)) { book->size = value; } else if (sscanf(buf, "index %d%n", &value, &len) == 1 && len == (int)strlen(buf)) { book->msg_index = value; } else if (strcmp(buf, "end") == 0) { /* link it */ add_book(book, type, fname, lineno); book = NULL; type = -1; } else { LOG(llevInfo, "Warning: syntax error at %s, line %d\n", fname, lineno); } } if (book != NULL) { LOG(llevInfo, "Warning: missing 'end' at %s, line %d\n", fname, lineno); add_book(book, type, fname, lineno); } LOG(llevDebug, " book archives(used/avail):\n"); for (bl = booklist, i = 0; bl != NULL && i < arraysize(max_titles); bl = bl->next, i++) { LOG(llevDebug, "(%d/%d)\n", bl->number, max_titles[i]); } fclose(fp); } #ifdef BOOK_MSG_DEBUG LOG(llevDebug, "\n init_book_archive() got %d titles.\n", nroftitle); #endif LOG(llevDebug, " done.\n"); } /** * Appends a book to the booklist. * @param book the book to add * @param type the book type * @param fname the file name; for error messages * @param lineno the line number; for error messages */ static void add_book(title *book, int type, const char *fname, int lineno) { titlelist *bl; if (type == -1) { LOG(llevInfo, "Warning: book with no type at %s, line %d; using type 0\n", fname, lineno); type = 0; } bl = get_titlelist(type); book->next = bl->first_book; bl->first_book = book; bl->number++; } /** * Creates the linked list of pointers to * monster archetype objects if not called previously. */ static void init_mon_info(void) { archetype *at; static int did_init_mon_info = 0; if (did_init_mon_info) return; did_init_mon_info = 1; for (at = first_archetype; at != NULL; at = at->next) { if (QUERY_FLAG(&at->clone, FLAG_MONSTER) && (!QUERY_FLAG(&at->clone, FLAG_CHANGING) || QUERY_FLAG(&at->clone, FLAG_UNAGGRESSIVE))) { objectlink *mon = (objectlink *)malloc(sizeof(objectlink)); if (!mon) { LOG(llevError, "init_mon_info: malloc failed!\n"); abort(); } mon->ob = &at->clone; mon->id = nrofmon; mon->next = first_mon_info; first_mon_info = mon; nrofmon++; } } LOG(llevDebug, "init_mon_info() got %d monsters\n", nrofmon); } /** * Initialize linked lists utilized by message functions in tailor_readable_ob() * * This is the function called by the main routine to initialize * all the readable information. */ void init_readable(void) { static int did_this = 0; if (did_this) return; did_this = 1; LOG(llevDebug, "Initializing reading data...\n"); init_msgfile(); init_book_archive(); init_mon_info(); LOG(llevDebug, " done reading data\n"); } /***************************************************************************** * * This is the start of the administrative functions when creating * new books (ie, updating title and the like) * *****************************************************************************/ /** * Search the titlelist (based on msgtype) to see if * book matches something already there. IF so, return that title. * * @param book * book we're searching. * @param msgtype * message type. * @return * title if found, NULL if no match. */ static title *find_title(const object *book, int msgtype) { title *t; titlelist *tl; size_t length; int index; if (msgtype < 0) return (title *)NULL; tl = get_titlelist(msgtype); if (!tl) return (title *)NULL; length = strlen(book->msg); index = strtoint(book->msg); for (t = tl->first_book; t; t = t->next) if (t->size == length && t->msg_index == index) { #ifdef ARCHIVE_DEBUG LOG(llevDebug, "Found title match (list %d): %s %s (%d)\n", msgtype, t->name, t->authour, t->msg_index); #endif return t; } return (title *)NULL; } /** * Only for objects of type BOOK. SPELLBOOK stuff is * handled directly in change_book_name(). Names are based on text * msgtype * * This sets book book->name based on msgtype given. What name * is given is based on various criteria * * @param book * book we want to alter. * @param msgtype * what information we want in the book. */ static void new_text_name(object *book, int msgtype) { const char *name; if (book->type != BOOK) return; switch (msgtype) { case MSGTYPE_MONSTER: name = mon_book_name[RANDOM()%arraysize(mon_book_name)]; break; case MSGTYPE_ARTIFACT: name = art_book_name[RANDOM()%arraysize(art_book_name)]; break; case MSGTYPE_SPELLPATH: name = path_book_name[RANDOM()%arraysize(path_book_name)]; break; case MSGTYPE_ALCHEMY: name = formula_book_name[RANDOM()%arraysize(formula_book_name)]; break; case MSGTYPE_GODS: name = gods_book_name[RANDOM()%arraysize(gods_book_name)]; break; case MSGTYPE_MSGFILE: default: if (book->weight > 2000) { /* based on weight */ name = heavy_book_name[RANDOM()%arraysize(heavy_book_name)]; } else { name = light_book_name[RANDOM()%arraysize(light_book_name)]; } break; } free_string(book->name); book->name = add_string(name); } /** * A lot like new_text_name() above, but instead chooses an author * and sets op->title to that value * * @param op * book to alter. * @param msgtype * information we want. */ static void add_author(object *op, int msgtype) { char title[MAX_BUF]; const char *name; if (msgtype < 0 || strlen(op->msg) < 5) return; switch (msgtype) { case MSGTYPE_MONSTER: name = mon_author[RANDOM()%arraysize(mon_author)]; break; case MSGTYPE_ARTIFACT: name = art_author[RANDOM()%arraysize(art_author)]; break; case MSGTYPE_SPELLPATH: name = path_author[RANDOM()%arraysize(path_author)]; break; case MSGTYPE_ALCHEMY: name = formula_author[RANDOM()%arraysize(formula_author)]; break; case MSGTYPE_GODS: name = gods_author[RANDOM()%arraysize(gods_author)]; break; case MSGTYPE_MSGFILE: default: name = book_author[RANDOM()%arraysize(book_author)]; } snprintf(title, sizeof(title), "of %s", name); op->title = add_string(title); } /** * Check to see if the book title/msg is unique. We * go through the entire list of possibilities each time. If we find * a match, then unique_book returns true (because inst unique). * * @param book * book we're searching. * @param msgtype * type of information contained. * @return */ static int unique_book(const object *book, int msgtype) { title *test; if (!booklist) return 1; /* No archival entries! Must be unique! */ /* Go through the booklist. If the author and name match, not unique so * return 0. */ for (test = get_titlelist(msgtype)->first_book; test; test = test->next) { if (!strcmp(test->name, book->name) && !strcmp(book->title, test->authour)) return 0; } return 1; } /** * Adds a book to the list of existing books. * * @param book * book to add. * @param msgtype * what information the book contains. */ static void add_book_to_list(const object *book, int msgtype) { titlelist *tl = get_titlelist(msgtype); title *t; if (!tl) { LOG(llevError, "add_book_to_list can't get booklist!\n"); return; } t = get_empty_book(); t->name = add_string(book->name); t->authour = add_string(book->title); t->size = strlen(book->msg); t->msg_index = strtoint(book->msg); t->archname = add_string(book->arch->name); t->level = book->level; t->next = tl->first_book; tl->first_book = t; tl->number++; /* We have stuff we need to write now */ need_to_write_bookarchive = 1; #ifdef ARCHIVE_DEBUG LOG(llevDebug, "Archiving new title: %s %s (%d)\n", book->name, book->title, msgtype); #endif } /** * Give a new, fancier name to generated * objects of type BOOK and SPELLBOOK. * Aug 96 I changed this so we will attempt to create consistent * authour/title and message content for BOOKs. Also, we will * alter books that match archive entries to the archival * levels and architypes. -b.t. * * @param book * book to alter. Should be of type BOOK. * @param msgtype * what information the book contains. */ static void change_book(object *book, int msgtype) { titlelist *tl; title *t; int tries; if (book->type != BOOK) { LOG(llevError, "change_book_name() called w/ illegal obj type.\n"); return; } tl = get_titlelist(msgtype); t = NULL; tries = 0; /* look to see if our msg already been archived. If so, alter * the book to match the archival text. If we fail to match, * then we archive the new title/name/msg combo if there is * room on the titlelist. */ if (strlen(book->msg) > 5 && (t = find_title(book, msgtype))) { object *tmpbook; sstring marker = object_get_value(book, "knowledge_marker"); /* alter book properties */ tmpbook = create_archetype(t->archname); if (marker != NULL) /* need to copy the knowledge_marker */ object_set_value(tmpbook, "knowledge_marker", marker, 1); object_set_msg(tmpbook, book->msg); object_copy(tmpbook, book); object_free_drop_inventory(tmpbook); book->title = add_string(t->authour); free_string(book->name); book->name = add_string(t->name); book->level = t->level; } else { /* Don't have any default title, so lets make up a new one */ int numb, maxnames = max_titles[msgtype]; const char *old_title; const char *old_name; old_title = book->title ? add_string(book->title) : NULL; old_name = add_string(book->name); /* some pre-generated books have title already set (from * maps), also don't bother looking for unique title if * we already used up all the available names! */ if (!tl) { LOG(llevError, "change_book_name(): can't find title list\n"); numb = 0; } else numb = tl->number; if (numb == maxnames) { #ifdef ARCHIVE_DEBUG LOG(llevDebug, "titles for list %d full (%d possible).\n", msgtype, maxnames); #endif if (old_title != NULL) free_string(old_title); free_string(old_name); return; } /* shouldnt change map-maker books */ if (!book->title) do { /* random book name */ new_text_name(book, msgtype); add_author(book, msgtype); /* random author */ tries++; } while (!unique_book(book, msgtype) && tries < MAX_TITLE_CHECK); /* Now deal with 2 cases. * 1) If no space for a new title exists lets just restore * the old book properties. Remember, if the book had * matchd an older entry on the titlelist, we shouldnt * have called this routine in the first place! * 2) If we got a unique title, we need to add it to * the list. */ if (tries == MAX_TITLE_CHECK) { #ifdef ARCHIVE_DEBUG LOG(llevDebug, "Failed to obtain unique title for %s %s (names:%d/%d)\n", book->name, book->title, numb, maxnames); #endif /* restore old book properties here */ free_string(book->name); free_string(book->title); book->title = old_title != NULL ? add_string(old_title) : NULL; if (RANDOM()%4) { /* Lets give the book a description to individualize it some */ char new_name[MAX_BUF]; snprintf(new_name, MAX_BUF, "%s %s", book_descrpt[RANDOM()%arraysize(book_descrpt)], old_name); book->name = add_string(new_name); } else { book->name = add_string(old_name); } } else if (book->title && strlen(book->msg) > 5) { /* archive if long msg texts */ add_book_to_list(book, msgtype); } if (old_title != NULL) free_string(old_title); free_string(old_name); } } /***************************************************************************** * * This is the start of the area that generates the actual contents * of the book. * *****************************************************************************/ /***************************************************************************** * Monster msg generation code. ****************************************************************************/ /** * Returns a random monster selected from linked * list of all monsters in the current game. * Changed 971225 to be greater than equal to level passed. Also * made choosing by level more random. * * @param level * if non-zero, then only monsters greater than that level will be returned. * @return * random monster, or NULL if failure. */ object *get_random_mon(int level) { objectlink *mon; int i, monnr; /* safety check. Problem w/ init_mon_info list? */ if (!nrofmon || !first_mon_info) return (object *)NULL; if (!level) { /* lets get a random monster from the mon_info linked list */ monnr = RANDOM()%nrofmon; for (mon = first_mon_info, i = 0; mon; mon = mon->next, i++) if (i == monnr) break; if (!mon) { LOG(llevError, "get_random_mon: Didn't find a monster when we should have\n"); return NULL; } return mon->ob; } /* Case where we are searching by level. Redone 971225 to be clearer * and more random. Before, it looks like it took a random monster from * the list, and then returned the first monster after that which was * appropriate level. This wasn't very random because if you had a * bunch of low level monsters and then a high level one, if the random * determine took one of the low level ones, it would just forward to the * high level one and return that. Thus, monsters that immediately followed * a bunch of low level monsters would be more heavily returned. It also * means some of the dragons would be poorly represented, since they * are a group of high level monsters all around each other. */ /* First count number of monsters meeting level criteria */ for (mon = first_mon_info, i = 0; mon; mon = mon->next) if (mon->ob->level >= level) i++; if (i == 0) { LOG(llevError, "get_random_mon() couldn't return monster for level %d\n", level); return NULL; } monnr = RANDOM()%i; for (mon = first_mon_info; mon; mon = mon->next) if (mon->ob->level >= level && monnr-- == 0) return mon->ob; LOG(llevError, "get_random_mon(): didn't find a monster when we should have\n"); return NULL; } /** * Returns a description of the monster. This really needs to be * redone, as describe_item really gives a pretty internal description. * * @param mon * monster to describe. * @return * new StringBuffer containing the description. */ static StringBuffer *mon_desc(const object *mon) { StringBuffer *desc = stringbuffer_new(); stringbuffer_append_printf(desc, "\n---\n *** %s ***\n", mon->name); describe_item(mon, NULL, desc); return desc; } /** * This function returns the next monster after 'tmp' in the monster list. * * @param tmp * monster. * @return * next monster, or if no match is found, it returns NULL. * * @note * list is considered circular, asking for the next of the last element will return the first one. */ static object *get_next_mon(const object *tmp) { objectlink *mon; for (mon = first_mon_info; mon; mon = mon->next) if (mon->ob == tmp) break; /* didn't find a match */ if (!mon) return NULL; if (mon->next) return mon->next->ob; else return first_mon_info->ob; } /** * Generate a message detailing the properties of randomly monster(s), and add relevant knowledge markers. * * @param level * book level. * @param booksize * size (in characters) of the book we want. * @param book * book in which we will put the information. * @return * StringBuffer containing the information. */ static StringBuffer *mon_info_msg(int level, size_t booksize, object *book) { object *tmp; StringBuffer *marker = stringbuffer_new(), *desc = stringbuffer_new(), *mon = NULL; int added = 0; sstring final; /*preamble */ stringbuffer_append_string(desc, "This beastiary contains:"); stringbuffer_append_string(marker, "monster"); /* lets print info on as many monsters as will fit in our * document. * 8-96 Had to change this a bit, otherwise there would * have been an impossibly large number of combinations * of text! (and flood out the available number of titles * in the archive in a snap!) -b.t. */ for (tmp = get_random_mon(level*3); tmp; tmp = get_next_mon(tmp)) { /* monster description */ mon = mon_desc(tmp); if (stringbuffer_length(desc) + stringbuffer_length(mon) >= booksize) break; added++; stringbuffer_append_printf(marker, ":%s", tmp->arch->name); stringbuffer_append_stringbuffer(desc, mon); stringbuffer_delete(mon); } if (mon != NULL) stringbuffer_delete(mon); final = stringbuffer_finish_shared(marker); if (added) object_set_value(book, "knowledge_marker", final, 1); free_string(final); return desc; } /***************************************************************************** * Artifact msg generation code. ****************************************************************************/ /** * Describe an artifact. * @param art artifact to describe. * @param al list art is part of. * @param message if non zero, and the artifact has a suitable message, add it to the description. * @param art_name index in ::art_name_array the artifact is in. * @param separator if non zero, a separator is inserted at the start of the description. * @return newly allocated StringBuffer* containing the description. */ static StringBuffer *artifact_describe(const artifact *art, const artifactlist *al, int message, int art_name, int separator) { object *tmp; int chance; StringBuffer *desc = stringbuffer_new(), *sbuf; if (separator) stringbuffer_append_string(desc, "---\n"); /* Name */ if (art->allowed != NULL) { archetype *arch; linked_char *temp = art->allowed; int inv = 0, w; assert(art->allowed_size > 0); if (art->allowed_size > 1) w = 1 + RANDOM() % art->allowed_size; else w = 1; while (w > 1) { assert(temp); temp = temp->next; w--; } if (temp->name[0] == '!') inv = 1; /** @todo check archetype when loading archetypes, not here */ arch = try_find_archetype(temp->name + inv); if (!arch) arch = find_archetype_by_object_name(temp->name + inv); if (!arch) LOG(llevError, "artifact_msg: missing archetype %s for artifact %s (type %d)\n", temp->name + inv, art->item->name, art->item->type); else { if (inv) stringbuffer_append_printf(desc, " A %s (excepted %s) of %s", art_name_array[art_name].name, arch->clone.name_pl, art->item->name); else stringbuffer_append_printf(desc, " A %s of %s", arch->clone.name, art->item->name); } } else { /* default name is used */ /* use the base 'generic' name for our artifact */ stringbuffer_append_printf(desc, " The %s of %s", art_name_array[art_name].name, art->item->name); } /* chance of finding */ stringbuffer_append_string(desc, " is "); chance = 100*((float)art->chance/al->total_chance); if (chance >= 20) stringbuffer_append_string(desc, "an uncommon"); else if (chance >= 10) stringbuffer_append_string(desc, "an unusual"); else if (chance >= 5) stringbuffer_append_string(desc, "a rare"); else stringbuffer_append_string(desc, "a very rare"); /* value of artifact */ stringbuffer_append_printf(desc, " item with a value that is %d times normal.\n", art->item->value); /* include the message about the artifact, if exists, and book * level is kinda high */ if (message && !(strlen(art->item->msg) > BOOK_BUF)) stringbuffer_append_string(desc, art->item->msg); /* properties of the artifact */ tmp = object_new(); add_abilities(tmp, art->item); tmp->type = al->type; SET_FLAG(tmp, FLAG_IDENTIFIED); sbuf = describe_item(tmp, NULL, NULL); if (stringbuffer_length(sbuf) > 1) { stringbuffer_append_string(desc, " Properties of this artifact include:\n "); stringbuffer_append_stringbuffer(desc, sbuf); stringbuffer_append_string(desc, "\n"); } free(stringbuffer_finish(sbuf)); object_free_drop_inventory(tmp); return desc; } /** * Generate a message detailing the properties * of 1-6 artifacts drawn sequentially from the artifact list. * * @param level * level of the book. * @param booksize * maximum length of the book. * @return * new StringBuffer containing the dsecription. */ static StringBuffer *artifact_msg(int level, size_t booksize) { const artifactlist *al; const artifact *art; int i, type, index; int book_entries = level > 5 ? RANDOM()%3+RANDOM()%3+2 : RANDOM()%level+1; StringBuffer *desc, *message = stringbuffer_new(); /* values greater than 5 create msg buffers that are too big! */ if (book_entries > 5) book_entries = 5; /* lets determine what kind of artifact type randomly. * Right now legal artifacts only come from those listed * in art_name_array. Also, we check to be sure an artifactlist * for that type exists! */ i = 0; do { index = RANDOM()%arraysize(art_name_array); type = art_name_array[index].type; al = find_artifactlist(type); i++; } while (al == NULL && i < 10); if (i == 10) { /* Unable to find a message */ stringbuffer_append_string(message, "None"); return message; } /* There is no reason to start on the artifact list at the beginning. Lets * take our starting position randomly... */ art = al->items; for (i = RANDOM()%level+RANDOM()%2+1; i > 0; i--) { if (art == NULL) art = al->items; /* hmm, out of stuff, loop back around */ art = art->next; } /* Ok, lets print out the contents */ stringbuffer_append_printf(message, "Herein %s detailed %s...\n", book_entries > 1 ? "are" : "is", book_entries > 1 ? "some artifacts" : "an artifact"); i = 0; /* artifact msg attributes loop. Lets keep adding entries to the 'book' * as long as we have space up to the allowed max # (book_entires) */ while (book_entries > 0) { int with_message; if (art == NULL) art = al->items; with_message = (art->item->msg && RANDOM()%4+1 < level) ? 1 : 0; desc = artifact_describe(art, al, with_message, index, i++); if (stringbuffer_length(message) + stringbuffer_length(desc) >= booksize) { stringbuffer_delete(desc); break; } stringbuffer_append_stringbuffer(message, desc); stringbuffer_delete(desc); art = art->next; book_entries--; } return message; } /***************************************************************************** * Spellpath message generation *****************************************************************************/ /** * Generate a message detailing the member incantations/prayers (and some of their * properties) belonging to a random spellpath. * * @param level * level of the book. * @param booksize * maximumlength of the book. * @param buf * where to store the message. If not NULL, it is supposed to contain the message header. * @return * buf, newly allocated StringBuffer if buf is NULL. */ static StringBuffer *spellpath_msg(int level, size_t booksize, StringBuffer *buf) { int path = RANDOM()%NRSPELLPATHS, prayers = RANDOM()%2; int did_first_sp = 0; uint32 pnum = spellpathdef[path]; archetype *at; if (buf == NULL) { buf = stringbuffer_new(); /* Preamble */ stringbuffer_append_printf(buf, "Herein are detailed the names of %s", prayers ? "prayers" : "incantations"); stringbuffer_append_printf(buf, " belonging to the path of %s:\n ", spellpathnames[path]); } for (at = first_archetype; at != NULL; at = at->next) { /* Determine if this is an appropriate spell. Must * be of matching path, must be of appropriate type (prayer * or not), and must be within the valid level range. */ if (at->clone.type == SPELL && at->clone.path_attuned&pnum && ((at->clone.stats.grace && prayers) || (at->clone.stats.sp && !prayers)) && at->clone.level < level*8) { if (strlen(at->clone.name) + stringbuffer_length(buf) >= booksize) break; if (did_first_sp) stringbuffer_append_string(buf, ",\n "); did_first_sp = 1; stringbuffer_append_string(buf,at->clone.name); } } /* Geez, no spells were generated. */ if (!did_first_sp) { if (RANDOM()%4) { /* usually, lets make a recursive call... */ return spellpath_msg(level, booksize, buf); } /* give up, cause knowing no spells exist for path is info too. need the header too. */ stringbuffer_append_string(buf, "- no known spells exist -\n"); } return buf; } /** * Generate a message detailing the properties of a randomly selected alchemical formula. * * @param book * book we write to. * @param level * level for formulaes and such. */ static void make_formula_book(object *book, int level) { recipelist *fl; recipe *formula; int chance, count = 0; const char *op_name; archetype *at; StringBuffer *text, *title; char *final, km[MAX_BUF]; /* the higher the book level, the more complex (ie number of * ingredients) the formula can be. */ fl = get_formulalist((RANDOM()%level)/3+1); if (!fl) fl = get_formulalist(1); /* safety */ if (fl->total_chance == 0) { object_set_msg(book, " \n"); new_text_name(book, MSGTYPE_ALCHEMY); add_author(book, MSGTYPE_ALCHEMY); return; } /* get a random formula, weighted by its bookchance */ chance = RANDOM()%fl->total_chance; for (formula = fl->items; formula != NULL; formula = formula->next) { chance -= formula->chance; if (chance <= 0 && formula->chance != 0 && !formula->is_combination) break; } if (!formula || formula->arch_names <= 0) { object_set_msg(book, " \n"); new_text_name(book, MSGTYPE_ALCHEMY); add_author(book, MSGTYPE_ALCHEMY); return; } /* looks like a formula was found. Base the amount * of information on the booklevel and the spellevel * of the formula. */ op_name = formula->arch_name[RANDOM()%formula->arch_names]; at = find_archetype(op_name); if (at == (archetype *)NULL) { LOG(llevError, "formula_msg() can't find arch %s for formula.\n", op_name); object_set_msg(book, " \n"); new_text_name(book, MSGTYPE_ALCHEMY); add_author(book, MSGTYPE_ALCHEMY); return; } op_name = at->clone.name; text = stringbuffer_new(); title = stringbuffer_new(); /* preamble */ stringbuffer_append_printf(text, "Herein is described a project using %s:\n", formula->skill ? formula->skill : "an unknown skill"); /* item name */ if (strcmp(formula->title, "NONE")) { stringbuffer_append_printf(text, "The %s of %s", op_name, formula->title); /* This results in things like pile of philo. sulfur. * while philo. sulfur may look better, without this, * you get things like 'the wise' because its missing the * water of section. */ stringbuffer_append_printf(title, "%s: %s of %s", formula_book_name[RANDOM()%arraysize(formula_book_name)], op_name, formula->title); } else { stringbuffer_append_printf(text, "The %s", op_name); stringbuffer_append_printf(title, formula_book_name[RANDOM()%arraysize(formula_book_name)], op_name); if (at->clone.title) { stringbuffer_append_printf(text, " %s", at->clone.title); stringbuffer_append_printf(title, " %s", at->clone.title); } } /* Lets name the book something meaningful ! */ if (book->name) free_string(book->name); book->name = stringbuffer_finish_shared(title); if (book->title) { free_string(book->title); book->title = NULL; } /* ingredients to make it */ if (formula->ingred != NULL) { linked_char *next; archetype *at; char name[MAX_BUF]; at = find_archetype(formula->cauldron); if (at) query_name(&at->clone, name, MAX_BUF); else snprintf(name, sizeof(name), "an unknown place"); stringbuffer_append_printf(text, " may be made at %s using the following ingredients:\n", name); for (next = formula->ingred; next != NULL; next = next->next) { count++; stringbuffer_append_printf(text, "%s\n", next->name); } } else { LOG(llevError, "formula_msg() no ingredient list for object %s of %s\n", op_name, formula->title); stringbuffer_append_string(text, "\n"); } final = stringbuffer_finish(text); object_set_msg(book, final); free(final); /** knowledge marker */ /** @todo this would be better in knowledge.c, except this file is in server, not common... */ snprintf(km, sizeof(km), "alchemy:%d:%d:%s", count, formula->index, formula->title); object_set_value(book, "knowledge_marker", km, 1); } /** * Generate a message drawn randomly from lib/messages. * * @param book * book to fill. * @param booksize * length of the book we want. * @return * message to put into book, newly allocated StringBuffer the caller should free. */ static StringBuffer *msgfile_msg(object *book, size_t booksize) { int weight; GeneralMessage *msg = NULL; StringBuffer *ret = stringbuffer_new(); /* get a random message for the 'book' from linked list */ if (msg_total_chance > 0) { assert(first_msg != NULL); msg = first_msg; weight = (RANDOM() % msg_total_chance) - msg->chance; while (weight > 0 && msg) { weight -= msg->chance; msg = msg->next; } /* if msg is NULL, then something is really wrong in the computation! */ assert(msg != NULL); } if (msg && strlen(msg->message) <= booksize) { stringbuffer_append_string(ret, msg->message); if (msg->identifier != NULL) { char km[HUGE_BUF]; /** knowledge marker */ /** @todo this would be better in knowledge.c, except this file is in server, not common... */ snprintf(km, sizeof(km), "message:%s", msg->identifier); object_set_value(book, "knowledge_marker", km, 1); } if (msg->quest_code) { /* add a 'apply' hook to launch the quest */ object *event = object_create_arch(find_archetype("quest_advance_apply")); FREE_AND_COPY(event->name, msg->quest_code); object_insert_in_ob(event, book); } } else stringbuffer_append_string(ret, "\n "); return ret; } /** * Generate a message detailing the properties * of a random god. Used by the book hack. b.t. * * @param level * number of elements to give. * @param booksize * desired length of the book. * @param book * book we're writing the information to, for knowledge management. * @return * StringBuffer with the information that the caller is responsible for cleaning, * NULL if information overflows the booksize. */ static StringBuffer *god_info_msg(int level, size_t booksize, object *book) { int what = 0; const object *god = pntr_to_god_obj(get_rand_god()); StringBuffer *desc = NULL; if (!god) return NULL; /* oops, problems... */ if (booksize > BOOK_BUF) { LOG(llevError, "common/readable.c:god_info_msg() - passed in booksize (%lu) is larger than book buffer (%d)\n", (unsigned long)booksize, BOOK_BUF); booksize = BOOK_BUF; } if (level >= 2 && RANDOM()%2) { what |= GOD_ENEMY; } if (level >= 3 && RANDOM()%2) { what |= GOD_HOLYWORD; } if (level >= 4 && RANDOM()%2) { what |= GOD_RESISTANCES; } if (level >= 5 && RANDOM()%2) { what |= GOD_SACRED; } if (level >= 6 && RANDOM()%2) { what |= GOD_BLESSED; } if (level >= 8 && RANDOM()%2) { what |= GOD_IMMUNITIES; } if (level >= 12 && RANDOM()%2) { what |= GOD_PATHS; } desc = stringbuffer_new(); what = describe_god(god, what, desc, booksize); /* check to be sure new buffer size dont exceed either * the maximum buffer size, or the 'natural' size of the * book... */ if (stringbuffer_length(desc) > 1 && stringbuffer_length(desc) <= booksize) { char buf[BOOK_BUF]; snprintf(buf, sizeof(buf), "god:%s:%d", god->name, what); object_set_value(book, "knowledge_marker", buf, 1); return desc; } stringbuffer_delete(desc); return NULL; } /** * The main routine. This chooses a random * message to put in given readable object (type==BOOK) which will * be referred hereafter as a 'book'. We use the book level to de- * termine the value of the information we will insert. Higher * values mean the book will (generally) have better/more info. * See individual cases as to how this will be utilized. * "Book" name/content length are based on the weight of the * document. If the value of msg_type is negative, we will randomly * choose the kind of message to generate. * -b.t. thomas@astro.psu.edu * * @param book * the object we are creating into. Must be a book, can have a level. * @param msg_type * if it is a positive value, we use that to determine the * message type - otherwise a random value is used. */ void tailor_readable_ob(object *book, int msg_type) { int level = book->level ? RANDOM()%book->level+1 : 1; size_t book_buf_size; StringBuffer *message = NULL; /* safety */ if (book->type != BOOK) return; if (level <= 0) return; /* if no level no point in doing any more... */ /* Max text length this book can have. */ book_buf_size = BOOKSIZE(book); book_buf_size -= strlen("\n"); /* Keep enough for final \n. */ assert(book_buf_size < BOOK_BUF); /* &&& The message switch &&& */ /* Below all of the possible types of messages in the "book"s. */ /* * IF you add a new type of book msg, you will have to do several things. * 1) make sure there is an entry in the msg switch below! * 2) make sure there is an entry in max_titles[] array. * 3) make sure there are entries for your case in new_text_title() * and add_authour(). * 4) you may want separate authour/book name arrays in read.h */ msg_type = msg_type > 0 ? msg_type : RANDOM()%6; switch (msg_type) { case MSGTYPE_MONSTER: message = mon_info_msg(level, book_buf_size, book); break; case MSGTYPE_ARTIFACT: message = artifact_msg(level, book_buf_size); break; case MSGTYPE_SPELLPATH: /* grouping incantations/prayers by path */ message = spellpath_msg(level, book_buf_size, NULL); break; case MSGTYPE_ALCHEMY: /* describe an alchemy formula */ make_formula_book(book, level); /* make_formula_book already gives title */ return; break; case MSGTYPE_GODS: /* bits of information about a god */ message = god_info_msg(level, book_buf_size, book); break; case MSGTYPE_LIB: /* use info list in lib/ */ default: message = msgfile_msg(book, book_buf_size); break; } if (message != NULL) { char *final; stringbuffer_append_string(message, "\n"); final = stringbuffer_finish(message); object_set_msg(book, final); free(final); /* lets give the "book" a new name, which may be a compound word */ change_book(book, msg_type); } } /***************************************************************************** * * Cleanup routine for readable stuff. * *****************************************************************************/ void free_all_readable(void) { titlelist *tlist, *tnext; title *title1, *titlenext; GeneralMessage *lmsg, *nextmsg; objectlink *monlink, *nextmon; LOG(llevDebug, "freeing all book information\n"); for (tlist = booklist; tlist != NULL; tlist = tnext) { tnext = tlist->next; for (title1 = tlist->first_book; title1; title1 = titlenext) { titlenext = title1->next; if (title1->name) free_string(title1->name); if (title1->authour) free_string(title1->authour); if (title1->archname) free_string(title1->archname); free(title1); } free(tlist); } for (lmsg = first_msg; lmsg; lmsg = nextmsg) { nextmsg = lmsg->next; if (lmsg->identifier) free_string(lmsg->identifier); if (lmsg->title) free_string(lmsg->title); if (lmsg->message) free_string(lmsg->message); if (lmsg->quest_code) free_string(lmsg->quest_code); free(lmsg); } for (monlink = first_mon_info; monlink; monlink = nextmon) { nextmon = monlink->next; free(monlink); } } /***************************************************************************** * * Writeback routine for updating the bookarchive. * ****************************************************************************/ /** * Write out the updated book archive to bookarch file. */ void write_book_archive(void) { FILE *fp; int index; char fname[MAX_BUF]; title *book; titlelist *bl; /* If nothing changed, don't write anything */ if (!need_to_write_bookarchive) return; snprintf(fname, sizeof(fname), "%s/bookarch", settings.localdir); LOG(llevDebug, "Updating book archive: %s...\n", fname); fp = fopen(fname, "w"); if (fp == NULL) { LOG(llevDebug, "Can't open book archive file %s\n", fname); return; } for (bl = get_titlelist(0), index = 0; bl; bl = bl->next, index++) { for (book = bl->first_book; book; book = book->next) if (book && book->authour) { fprintf(fp, "title %s\n", book->name); fprintf(fp, "authour %s\n", book->authour); fprintf(fp, "arch %s\n", book->archname); fprintf(fp, "level %d\n", book->level); fprintf(fp, "type %d\n", index); /* C89 doesn't have %zu... */ fprintf(fp, "size %lu\n", (unsigned long)book->size); fprintf(fp, "index %d\n", book->msg_index); fprintf(fp, "end\n"); } } if (ferror(fp)) { LOG(llevError, "Error during book archive save.\n"); fclose(fp); return; } if (fclose(fp) != 0) { LOG(llevError, "Error during book archive save.\n"); return; } chmod(fname, SAVE_MODE); need_to_write_bookarchive = 0; } /** * Get the readable type for an object (hopefully book). * @param readable * object for which we want the readable type. * @return * type of the book. Will never be NULL. */ const readable_message_type *get_readable_message_type(object *readable) { uint8 subtype = readable->subtype; if (subtype > last_readable_subtype) return &readable_message_types[0]; return &readable_message_types[subtype]; } /** * Find the message from its identifier. * @param identifier message's identifier. * @return corresponding message, NULL if no such message. */ const GeneralMessage *get_message_from_identifier(const char *identifier) { GeneralMessage *msg = first_msg; while (msg && ((msg->identifier == 0) || (strcmp(msg->identifier, identifier) != 0))) msg = msg->next; return msg; } /** * Get a message's title. * @param message message, must not be NULL. * @return title. */ sstring get_message_title(const GeneralMessage *message) { return message->title; } /** * Get a message's body. * @param message message, must not be NULL. * @return body. */ sstring get_message_body(const GeneralMessage *message) { return message->message; } crossfire-1.70.0/common/region.c0000644000014500000120000004127611731300526013431 00000000000000/* * static char *rcsid_map_c = * "$Id: region.c 14865 2011-07-17 08:40:09Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001-2003 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file region.c * Region management. * * A region is a group of maps. It includes a "parent" region. */ #include #ifndef WIN32 /* ---win32 exclude header */ #include #endif /* win32 */ static void parse_regions(FILE *fp); static void assign_region_parents(void); /** * Gets a region by name. * * Used by the map parsing code. * * @param region_name * name of region. * @return * @li matching region * @li if no match, returns the first region with the 'fallback' property set and LOG()s to debug. * @li if it can't find a matching name and a fallback region it LOG()s an info message and returns NULL. */ region *get_region_by_name(const char *region_name) { region *reg; for (reg = first_region; reg != NULL; reg = reg->next) if (!strcmp(reg->name, region_name)) return reg; for (reg = first_region; reg != NULL; reg = reg->next) { if (reg->fallback) { LOG(llevDebug, "region called %s requested, but not found, fallback used.\n", region_name); return reg; } } LOG(llevInfo, "Got no region or fallback for region %s.\n", region_name); return NULL; } /** * Gets a region from a map. * * @param m * map we want the region of. * @return * region. * * @todo * This might need optimising at some point. */ region *get_region_by_map(mapstruct *m) { return get_region_by_name(get_name_of_region_for_map(m)); } /** * Gets the name of a region for a map. * * Since we won't assume all maps have a region set properly, we need an * explicit check that it is, this is much nicer here than scattered throughout * the map code. * * @param m * map * @return * @li region's name if map has a region * @li if no region is set for the map, returns the first region with the 'fallback' property * @li if no fallback region, LOG()s an info message and returns "unknown". */ const char *get_name_of_region_for_map(const mapstruct *m) { region *reg; if (m->region != NULL) return m->region->name; for (reg = first_region; reg != NULL; reg = reg->next) { if (reg->fallback) return reg->name; } LOG(llevInfo, "map %s had no region and I couldn't find a fallback to use.\n", m->name); return "unknown"; } /** * Tries to find a region that 'name' corresponds to. * It looks, in order, for: * @li an exact match to region name (case insensitive) * @li an exact match to longname (case insensitive) * @li a substring that matches to the longname (eg Kingdom) * @li a substring that matches to the region name (eg nav) * @li if it can find none of these it returns the first parentless region * (there should be only one of these - the top level one) * An empty region name returns the top level region * * @param name * region we're searching. * @return * matching region. */ region *get_region_from_string(const char *name) { region *reg; char *substr; char *p; if (first_region == NULL) { return NULL; } if (*name == '\0') { for (reg = first_region; reg->parent != NULL; reg = reg->parent) ; return reg; } p = strchr(name, '\n'); if (p) *p = '\0'; for (reg = first_region; reg != NULL; reg = reg->next) if (!strcasecmp(reg->name, name)) return reg; for (reg = first_region; reg != NULL; reg = reg->next) if (reg->longname != NULL) { if (!strcasecmp(reg->longname, name)) return reg; } substr = NULL; for (reg = first_region; reg != NULL; reg = reg->next) if (reg->longname != NULL) { substr = strstr(reg->longname, name); if (substr != NULL) return reg; } for (reg = first_region; reg != NULL; reg = reg->next) if (reg->longname != NULL) { /* * This is not a bug, we want the region that is most identifiably a discrete * area in the game, eg if we have 'scor', we want to return 'scorn' and not * 'scornarena', regardless of their order on the list so we only look at those * regions with a longname set. */ substr = strstr(reg->name, name); if (substr != NULL) return reg; } for (reg = first_region; reg != NULL; reg = reg->next) { substr = strstr(reg->name, name); if (substr != NULL) return reg; } /* if we are still here, we are going to have to give up, and give the top level region */ for (reg = first_region; reg->parent != NULL; reg = reg->parent) ; return reg; } /** * Checks if a region is a child of another. * * @param child * region we want to test. * @param r * potential parent. * @return * @li 1 if child has r as parent somewhere. * @li -1 if passed a NULL region * @li 0 else */ int region_is_child_of_region(const region *child, const region *r) { if (r == NULL) return -1; if (child == NULL) return 0; if (!strcmp(child->name, r->name)) return 1; else if (child->parent != NULL) return region_is_child_of_region(child->parent, r); else return 0; } /** * Gets the longname of a region. * * The longname of a region is not a required field, any given region * may want to not set it and use the parent's one instead. * * @param r * region we're searching the longname. * @return * @li if a longname is set return it. * @li if there is a parent, call the function against that * @li if all fails, return a obviously wrong string if we can't get a longname, this should * never happen. We also LOG() a debug message. */ const char *get_region_longname(const region *r) { if (r->longname != NULL) return r->longname; else if (r->parent != NULL) return get_region_longname(r->parent); else { LOG(llevDebug, "NOTICE region %s has no parent and no longname.\n", r->name); return "no name can be found for the current region"; } } /** * Gets a message for a region. * * @param r * region. Can't be NULL. * @return * @li region's message if set * @li message of parent else * @li obviously wrong message if no parent, and we LOG() a debug message. */ const char *get_region_msg(const region *r) { if (r->msg != NULL) return r->msg; else if (r->parent != NULL) return get_region_msg(r->parent); else { LOG(llevDebug, "NOTICE region %s has no parent and no msg.\n", r->name); return "no description can be found for the current region"; } } /** * Returns an object which is an exit through which the player represented by op should be * sent in order to be imprisoned. If there is no suitable place to which an exit can be * constructed, then NULL will be returned. The caller is responsible for freeing the object * created by this function. * * @param op * Object we want to jail. Must be a player. * @return * exit to jail, or NULL, in which case a message is LOG()ged . */ object *get_jail_exit(object *op) { region *reg; object *exit; if (op->type != PLAYER) { LOG(llevError, "region.c: get_jail_exit called against non-player object.\n"); return NULL; } reg = get_region_by_map(op->map); while (reg != NULL) { if (reg->jailmap) { exit = object_new(); EXIT_PATH(exit) = add_string(reg->jailmap); /* damned exits reset savebed and remove teleports, so the prisoner can't escape */ SET_FLAG(exit, FLAG_DAMNED); EXIT_X(exit) = reg->jailx; EXIT_Y(exit) = reg->jaily; return exit; } else reg = reg->parent; } LOG(llevDebug, "No suitable jailmap for region %s was found.\n", reg->name); return NULL; } /** * Initialises regions from the regions file. */ void init_regions(void) { FILE *fp; char filename[MAX_BUF]; if (first_region != NULL) /* Only do this once */ return; snprintf(filename, sizeof(filename), "%s/%s/%s", settings.datadir, settings.mapdir, settings.regions); LOG(llevDebug, "Reading regions from %s...\n", filename); if ((fp = fopen(filename, "r")) == NULL) { LOG(llevError, " Can't open regions file %s in init_regions.\n", filename); return; } parse_regions(fp); assign_region_parents(); LOG(llevDebug, " done\n"); fclose(fp); } /** * Allocates and zeros a region struct, this isn't free()'d anywhere, so might * be a memory leak, but it shouldn't matter too much since it isn't called that * often.... * * @return * initialised region structure. * * @note * will never fail, as a memory allocation error calls fatal(). * * @todo * free those pointers someday? :) */ region *get_region_struct(void) { region *new; new = (region *)CALLOC(1, sizeof(region)); if (new == NULL) fatal(OUT_OF_MEMORY); memset(new, '\0', sizeof(region)); return new; } /** * Reads/parses the region file, and copies into a linked list * of region structs. * * @param fp * opened file to read from. */ static void parse_regions(FILE *fp) { region *new; region *reg; char buf[HUGE_BUF], msgbuf[HUGE_BUF], *key = NULL, *value, *end; int msgpos = 0; new = NULL; while (fgets(buf, HUGE_BUF-1, fp) != NULL) { buf[HUGE_BUF-1] = 0; key = buf; while (isspace(*key)) key++; if (*key == 0) continue; /* empty line */ value = strchr(key, ' '); if (!value) { end = strchr(key, '\n'); *end = 0; } else { *value = 0; value++; /* isspace() includes newline. To avoid crash on empty line further * down we must check for it here. */ while (isspace(*value) && *value != '\n') value++; end = strchr(value, '\n'); } /* * This is a bizzare mutated form of the map and archetype parser * rolled into one. Key is the field name, value is what it should * be set to. * We've already done the work to null terminate key, * and strip off any leading spaces for both of these. * We have not touched the newline at the end of the line - * these might be needed for some values. the end pointer * points to the first of the newlines. * value could be NULL! It would be easy enough to just point * this to "" to prevent cores, but that would let more errors slide * through. */ if (!strcmp(key, "region")) { *end = 0; new = get_region_struct(); new->name = strdup_local(value); } else if (!strcmp(key, "parent")) { /* * Note that this is in the initialisation code, so we don't actually * assign the pointer to the parent yet, because it might not have been * parsed. */ *end = 0; if (!new) { LOG(llevError, "region.c: malformated regions file: \"parent\" before \"region\".\n"); fatal(SEE_LAST_ERROR); } if (!value) { LOG(llevError, "region.c: malformated regions file: No value given for \"parent\" key.\n"); fatal(SEE_LAST_ERROR); } new->parent_name = strdup_local(value); } else if (!strcmp(key, "longname")) { *end = 0; if (!new) { LOG(llevError, "region.c: malformated regions file: \"longname\" before \"region\".\n"); fatal(SEE_LAST_ERROR); } if (!value) { LOG(llevError, "region.c: malformated regions file: No value given for \"longname\" key.\n"); fatal(SEE_LAST_ERROR); } new->longname = strdup_local(value); } else if (!strcmp(key, "jail")) { /* jail entries are of the form: /path/to/map x y */ char path[MAX_BUF]; int x, y; if (!new) { LOG(llevError, "region.c: malformated regions file: \"jail\" before \"region\".\n"); fatal(SEE_LAST_ERROR); } if (!value) { LOG(llevError, "region.c: malformated regions file: No value given for \"jail\" key.\n"); fatal(SEE_LAST_ERROR); } if (sscanf(value, "%[^ ] %d %d\n", path, &x, &y) != 3) { LOG(llevError, "region.c: malformated regions entry: jail %s\n", value); continue; } new->jailmap = strdup_local(path); new->jailx = x; new->jaily = y; } else if (!strcmp(key, "msg")) { if (!new) { LOG(llevError, "region.c: malformated regions file: \"msg\" before \"region\".\n"); fatal(SEE_LAST_ERROR); } while (fgets(buf, HUGE_BUF-1, fp) != NULL) { if (!strcmp(buf, "endmsg\n")) break; else { strcpy(msgbuf+msgpos, buf); msgpos += strlen(buf); } } /* * There may be regions with empty messages (eg, msg/endmsg * with nothing between). When maps are loaded, this is done * so better do it here too... */ if (msgpos != 0) new->msg = strdup_local(msgbuf); /* we have to reset msgpos, or the next region will store both msg blocks.*/ msgpos = 0; } else if (!strcmp(key, "fallback")) { *end = 0; if (!new) { LOG(llevError, "region.c: malformated regions file: \"fallback\" before \"region\".\n"); fatal(SEE_LAST_ERROR); } if (!value) { LOG(llevError, "region.c: malformated regions file: No value given for \"fallback\" key.\n"); fatal(SEE_LAST_ERROR); } new->fallback = atoi(value); } else if (!strcmp(key, "end")) { if (!new) { LOG(llevError, "region.c: Ignoring spurious \"end\" between regions.\n"); continue; } /* Place this new region last on the list, if the list is empty put it first */ for (reg = first_region; reg != NULL && reg->next != NULL; reg = reg->next) ; if (reg == NULL) first_region = new; else reg->next = new; new = NULL; } else if (!strcmp(key, "nomore")) { if (new) { LOG(llevError, "region.c: Last region not properly closed.\n"); } /* we have reached the end of the region specs....*/ break; } else { /* we should never get here, if we have, then something is wrong */ LOG(llevError, "Got unknown value in region file: %s %s\n", key, value); } } if (!key || strcmp(key, "nomore")) LOG(llevError, "Got premature eof on regions file!\n"); } /** * Links child with their parent from the parent_name field. */ static void assign_region_parents(void) { region *reg; uint32 parent_count = 0; uint32 region_count = 0; for (reg = first_region; reg != NULL; reg = reg->next) { if (reg->parent_name != NULL) { reg->parent = get_region_by_name(reg->parent_name); if (reg->parent == NULL) { LOG(llevError, "Couldn't find parent %s for region %s\n", reg->name, reg->parent_name); } parent_count++; } region_count++; } LOG(llevDebug, "Assigned %u regions with %u parents.\n", region_count, parent_count); } crossfire-1.70.0/common/logger.c0000644000014500000120000001115511731300526013416 00000000000000/* * static char *rcsid_loger_c = * "$Id: logger.c 17401 2012-03-08 22:13:26Z ryo_saeba $ "; */ int reopen_logfile = 0; /* May be set in SIGHUP handler */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file logger.c * This handles logging, to file or strerr/stdout. */ #include #include #include /** * Human-readable name of log levels. */ static const char *const loglevel_names[] = { "[Error] ", "[Info] ", "[Debug] ", "[Monster] " }; /** * Logs a message to stderr, or to file. * Or discards the message if it is of no importance, and none have * asked to hear messages of that logLevel. * * See include/logger.h for possible logLevels. Messages with llevInfo * and llevError are always printed, regardless of debug mode. * * @param logLevel * level of the message * @param format * message to log. Works like printf() and such */ void LOG(LogLevel logLevel, const char *format, ...) { char buf[20480]; /* This needs to be really really big - larger * than any other buffer, since that buffer may * need to be put in this one. */ char time_buf[2048]; va_list ap; va_start(ap, format); buf[0] = '\0'; if (logLevel <= settings.debug) { time_buf[0] = '\0'; if (settings.log_timestamp == TRUE) { struct tm *time_tmp; time_t now = time((time_t *)NULL); time_tmp = localtime(&now); if (time_tmp != NULL) { if (strftime(time_buf, sizeof(time_buf), settings.log_timestamp_format, time_tmp) == 0) { time_buf[0] = '\0'; } } } vsnprintf(buf, sizeof(buf), format, ap); #ifdef WIN32 /* ---win32 change log handling for win32 */ if (time_buf[0] != 0) { fputs(time_buf, logfile); fputs(" ", logfile); } fputs(loglevel_names[logLevel], logfile); /* wrote to file or stdout */ fputs(buf, logfile); /* wrote to file or stdout */ #ifdef DEBUG /* if we have a debug version, we want see ALL output */ fflush(logfile); /* so flush this! */ #endif if (logfile != stderr) { /* if was it a logfile wrote it to screen too */ if (time_buf[0] != 0) { fputs(time_buf, stderr); fputs(" ", stderr); } fputs(loglevel_names[logLevel], stderr); fputs(buf, stderr); } #else /* not WIN32 */ if (reopen_logfile) { reopen_logfile = 0; if (fclose(logfile) != 0) { /* stderr has been closed if -detach was used, but it's better * to try to report about this anyway. */ perror("tried to close log file after SIGHUP in logger.c:LOG()"); } if ((logfile = fopen(settings.logfilename, "a")) == NULL) { /* There's likely to be something very wrong with the OS anyway * if reopening fails. */ perror("tried to open log file after SIGHUP in logger.c:LOG()"); emergency_save(0); clean_tmp_files(); exit(1); } setvbuf(logfile, NULL, _IOLBF, 0); LOG(llevInfo, "logfile reopened\n"); } if (time_buf[0] != 0) { fputs(time_buf, logfile); fputs(" ", logfile); } fputs(loglevel_names[logLevel], logfile); fputs(buf, logfile); #endif } if (!exiting && !trying_emergency_save && logLevel == llevError && ++nroferrors > MAX_ERRORS) { exiting = 1; if (!trying_emergency_save) emergency_save(0); } va_end(ap); } crossfire-1.70.0/common/artifact.c0000644000014500000120000005121011731300526013730 00000000000000/* * static char *rcs_artifact_c = * "$Id: artifact.c 12599 2010-03-08 18:33:07Z akirschbaum $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Everything concerning artifacts. * @see page_treasure_list */ #include #include "global.h" #include "loader.h" int artifact_init; /**< 1 if doing archetypes initialization */ /** * Allocate and return the pointer to an empty artifactlist structure. * * @return * new structure blanked, never NULL. * * @note * will fatal() if memory error. */ static artifactlist *get_empty_artifactlist(void) { artifactlist *tl = (artifactlist *)malloc(sizeof(artifactlist)); if (tl == NULL) fatal(OUT_OF_MEMORY); tl->next = NULL; tl->items = NULL; tl->total_chance = 0; return tl; } /** * Allocate and return the pointer to an empty artifact structure. * * @return * new structure blanked, never NULL. * * @note * will fatal() if memory error. */ static artifact *get_empty_artifact(void) { artifact *t = (artifact *)malloc(sizeof(artifact)); if (t == NULL) fatal(OUT_OF_MEMORY); t->item = NULL; t->next = NULL; t->chance = 0; t->difficulty = 0; t->allowed = NULL; t->allowed_size = 0; return t; } /** * Frees a link structure and its next items. * * @param lc * item to free. Pointer is free()d too, so becomes invalid. */ static void free_charlinks(linked_char *lc) { if (lc->next) free_charlinks(lc->next); free(lc); } /** * Totally frees an artifact, its next items, and such. * * @param at * artifact to free. Pointer is free()d too, so becomes invalid. * * @note * Objects at->item are malloc()ed by init_artifacts(), so can simply be free()d. * * But artifact inventory is a 'real' object, that may be created for 'old' objects. So should be * destroyed through object_free_drop_inventory(). Note that it isn't on the usual item list, so some tweaking is required. */ static void free_artifact(artifact *at) { object *next; if (at->next) free_artifact(at->next); if (at->allowed) free_charlinks(at->allowed); while (at->item) { next = at->item->next; if (at->item->name) free_string(at->item->name); if (at->item->name_pl) free_string(at->item->name_pl); if (at->item->msg) free_string(at->item->msg); if (at->item->title) free_string(at->item->title); object_free_key_values(at->item); free(at->item); at->item = next; } free(at); } /** * Free specified list and its items. * * @param al * list to free. Pointer is free()d too, so becomes invalid. */ static void free_artifactlist(artifactlist *al) { artifactlist *nextal; for (; al != NULL; al = nextal) { nextal = al->next; if (al->items) { free_artifact(al->items); } free(al); } } /** * Free all artifact-related information. */ void free_all_artifacts(void) { free_artifactlist(first_artifactlist); first_artifactlist = NULL; } /** Give 1 re-roll attempt per artifact */ #define ARTIFACT_TRIES 2 /** * Decides randomly which artifact the object should be * turned into. Makes sure that the item can become that * artifact (means magic, difficulty, and Allowed fields properly). * Then calls give_artifact_abilities in order to actually create * the artifact. */ void generate_artifact(object *op, int difficulty) { const artifactlist *al; const artifact *art; int i; al = find_artifactlist(op->type); if (al == NULL) { return; } for (i = 0; i < ARTIFACT_TRIES; i++) { int roll = RANDOM()%al->total_chance; for (art = al->items; art != NULL; art = art->next) { roll -= art->chance; if (roll < 0) break; } if (art == NULL || roll >= 0) { LOG(llevError, "Got null entry and non zero roll in generate_artifact, type %d\n", op->type); return; } if (!strcmp(art->item->name, "NONE")) return; if (FABS(op->magic) < art->item->magic) continue; /* Not magic enough to be this item */ /* Map difficulty not high enough */ if (difficulty < art->difficulty) continue; if (!legal_artifact_combination(op, art)) { #ifdef TREASURE_VERBOSE LOG(llevDebug, "%s of %s was not a legal combination.\n", op->name, art->item->name); #endif continue; } give_artifact_abilities(op, art->item); return; } } /** * Fixes the given object, giving it the abilities and titles * it should have due to the second artifact-template. */ void give_artifact_abilities(object *op, const object *artifact) { char new_name[MAX_BUF]; snprintf(new_name, sizeof(new_name), "of %s", artifact->name); if (op->title) free_string(op->title); op->title = add_string(new_name); if (op->artifact) free_string(op->artifact); op->artifact = add_refcount(artifact->name); add_abilities(op, artifact); /* Give out the bonuses */ return; } /** * Checks if op can be combined with art. */ int legal_artifact_combination(const object *op, const artifact *art) { int neg, success = 0; linked_char *tmp; const char *name; if (art->allowed == (linked_char *)NULL) return 1; /* Ie, "all" */ for (tmp = art->allowed; tmp; tmp = tmp->next) { #ifdef TREASURE_VERBOSE LOG(llevDebug, "legal_art: %s\n", tmp->name); #endif if (*tmp->name == '!') { name = tmp->name+1; neg = 1; } else { name = tmp->name; neg = 0; } /* If we match name, then return the opposite of 'neg' */ if (!strcmp(name, op->name) || (op->arch && !strcmp(name, op->arch->name))) return !neg; /* Set success as true, since if the match was an inverse, it means * everything is allowed except what we match */ else if (neg) success = 1; } return success; } /** * Used in artifact generation. The bonuses of the first object * is modified by the bonuses of the second object. */ void add_abilities(object *op, const object *change) { int i, tmp; char buf[MAX_BUF]; if (change->face != blank_face) { #ifdef TREASURE_VERBOSE LOG(llevDebug, "FACE: %d\n", change->face->number); #endif object_set_value(op, "identified_face", change->face->name, 1); } if (QUERY_FLAG(change, FLAG_CLIENT_ANIM_RANDOM)) { object_set_value(op, "identified_anim_random", "1", 1); } if (change->anim_speed > 0) { snprintf(buf, sizeof(buf), "%d", change->anim_speed); object_set_value(op, "identified_anim_speed", buf, 1); } if (change->animation_id != 0 && op->arch != NULL) { /* op->arch can be NULL when called from artifact_msg(). */ snprintf(buf, sizeof(buf),"%d", change->animation_id); object_set_value(op, "identified_animation", buf, 1); } for (i = 0; i < NUM_STATS; i++) change_attr_value(&(op->stats), i, get_attr_value(&(change->stats), i)); op->attacktype |= change->attacktype; op->path_attuned |= change->path_attuned; op->path_repelled |= change->path_repelled; op->path_denied |= change->path_denied; op->move_type |= change->move_type; op->stats.luck += change->stats.luck; if (QUERY_FLAG(change, FLAG_CURSED)) SET_FLAG(op, FLAG_CURSED); if (QUERY_FLAG(change, FLAG_DAMNED)) SET_FLAG(op, FLAG_DAMNED); if ((QUERY_FLAG(change, FLAG_CURSED) || QUERY_FLAG(change, FLAG_DAMNED)) && op->magic > 0) set_abs_magic(op, -op->magic); if (QUERY_FLAG(change, FLAG_LIFESAVE)) SET_FLAG(op, FLAG_LIFESAVE); if (QUERY_FLAG(change, FLAG_REFL_SPELL)) SET_FLAG(op, FLAG_REFL_SPELL); if (QUERY_FLAG(change, FLAG_STEALTH)) SET_FLAG(op, FLAG_STEALTH); if (QUERY_FLAG(change, FLAG_XRAYS)) SET_FLAG(op, FLAG_XRAYS); if (QUERY_FLAG(change, FLAG_BLIND)) SET_FLAG(op, FLAG_BLIND); if (QUERY_FLAG(change, FLAG_SEE_IN_DARK)) SET_FLAG(op, FLAG_SEE_IN_DARK); if (QUERY_FLAG(change, FLAG_REFL_MISSILE)) SET_FLAG(op, FLAG_REFL_MISSILE); if (QUERY_FLAG(change, FLAG_MAKE_INVIS)) SET_FLAG(op, FLAG_MAKE_INVIS); if (QUERY_FLAG(change, FLAG_STAND_STILL)) { CLEAR_FLAG(op, FLAG_ANIMATE); /* so artifacts will join */ if (!QUERY_FLAG(op, FLAG_ALIVE)) op->speed = 0.0; object_update_speed(op); } if (change->nrof) op->nrof = RANDOM()%((int)change->nrof)+1; op->stats.exp += change->stats.exp; /* Speed modifier */ op->stats.wc += change->stats.wc; op->stats.ac += change->stats.ac; if (change->other_arch) { /* Basically, for horns & potions, the other_arch field is the spell * to cast. So convert that to into a spell and put it into * this object. */ if (op->type == ROD || op->type == POTION) { object *tmp_obj; /* Remove any spells this object currently has in it */ while (op->inv) { tmp_obj = op->inv; object_remove(tmp_obj); object_free_drop_inventory(tmp_obj); } tmp_obj = arch_to_object(change->other_arch); /* This is an artifact, so this function will be called at load time, * thus we don't need to keep the inventory */ SET_FLAG(tmp_obj, FLAG_NO_SAVE); object_insert_in_ob(tmp_obj, op); } /* No harm setting this for potions/horns */ op->other_arch = change->other_arch; } if (change->stats.hp < 0) op->stats.hp = -change->stats.hp; else op->stats.hp += change->stats.hp; if (change->stats.maxhp < 0) op->stats.maxhp = -change->stats.maxhp; else op->stats.maxhp += change->stats.maxhp; if (change->stats.sp < 0) op->stats.sp = -change->stats.sp; else op->stats.sp += change->stats.sp; if (change->stats.maxsp < 0) op->stats.maxsp = -change->stats.maxsp; else op->stats.maxsp += change->stats.maxsp; if (change->stats.food < 0) op->stats.food = -(change->stats.food); else op->stats.food += change->stats.food; if (change->level < 0) op->level = -(change->level); else op->level += change->level; op->item_power = change->item_power; for (i = 0; i < NROFATTACKS; i++) { if (change->resist[i]) { op->resist[i] += change->resist[i]; } } if (change->stats.dam) { if (change->stats.dam < 0) op->stats.dam = (-change->stats.dam); else if (op->stats.dam) { tmp = (int)(((int)op->stats.dam*(int)change->stats.dam)/10); if (tmp == op->stats.dam) { if (change->stats.dam < 10) op->stats.dam--; else op->stats.dam++; } else op->stats.dam = tmp; } } if (change->weight) { if (change->weight < 0) op->weight = (-change->weight); else op->weight = (op->weight*(change->weight))/100; } if (change->last_sp) { if (change->last_sp < 0) op->last_sp = (-change->last_sp); else op->last_sp = (signed char)(((int)op->last_sp*(int)change->last_sp)/(int)100); } if (change->gen_sp_armour) { if (change->gen_sp_armour < 0) op->gen_sp_armour = (-change->gen_sp_armour); else op->gen_sp_armour = (signed char)(((int)op->gen_sp_armour*((int)change->gen_sp_armour))/(int)100); } op->value *= change->value; if (change->material) op->material = change->material; if (change->materialname) { if (op->materialname) free_string(op->materialname); op->materialname = add_refcount(change->materialname); } if (change->slaying) { if (op->slaying) free_string(op->slaying); op->slaying = add_refcount(change->slaying); } if (change->race) { if (op->race) free_string(op->race); op->race = add_refcount(change->race); } if (change->msg) object_set_msg(op, change->msg); if (change->inv) { object *copy; FOR_INV_PREPARE(change, inv) { copy = object_new(); object_copy(inv, copy); object_insert_in_ob(copy, op); } FOR_INV_FINISH(); } } /** * Searches the artifact lists and returns one that has the same type * of objects on it, non-const version of find_artifactlist() used only * during artifact loading. * * @return * NULL if no suitable list found. */ static artifactlist *find_artifactlist_internal(int type) { artifactlist *al; for (al = first_artifactlist; al != NULL; al = al->next) if (al->type == type) return al; return NULL; } /** * Builds up the lists of artifacts from the file in the libdir. * Can be called multiple times without ill effects. */ void init_artifacts(void) { static int has_been_inited = 0; FILE *fp; char filename[MAX_BUF], buf[HUGE_BUF], *cp, *next; artifact *art = NULL; linked_char *tmp; int value; artifactlist *al; archetype dummy_archetype; memset(&dummy_archetype, 0, sizeof(archetype)); if (has_been_inited) return; else has_been_inited = 1; artifact_init = 1; snprintf(filename, sizeof(filename), "%s/artifacts", settings.datadir); LOG(llevDebug, "Reading artifacts from %s...\n", filename); if ((fp = fopen(filename, "r")) == NULL) { LOG(llevError, "Can't open %s.\n", filename); return; } while (fgets(buf, HUGE_BUF, fp) != NULL) { if (*buf == '#') continue; if ((cp = strchr(buf, '\n')) != NULL) *cp = '\0'; cp = buf; while (*cp == ' ') /* Skip blanks */ cp++; if (*cp == '\0') continue; if (!strncmp(cp, "Allowed", 7)) { if (art == NULL) { art = get_empty_artifact(); nrofartifacts++; } cp = strchr(cp, ' ')+1; while (*(cp+strlen(cp)-1) == ' ') cp[strlen(cp)-1] = '\0'; if (!strcmp(cp, "all")) continue; do { while (*cp == ' ') cp++; nrofallowedstr++; if ((next = strchr(cp, ',')) != NULL) *(next++) = '\0'; tmp = (linked_char *)malloc(sizeof(linked_char)); tmp->name = add_string(cp); tmp->next = art->allowed; art->allowed = tmp; art->allowed_size++; } while ((cp = next) != NULL); } else if (sscanf(cp, "chance %d", &value)) art->chance = (uint16)value; else if (sscanf(cp, "difficulty %d", &value)) art->difficulty = (uint8)value; else if (!strncmp(cp, "Object", 6)) { art->item = (object *)calloc(1, sizeof(object)); if (art->item == NULL) { LOG(llevError, "init_artifacts: memory allocation failure.\n"); abort(); } object_reset(art->item); art->item->arch = &dummy_archetype; if (!load_object(fp, art->item, LO_LINEMODE, MAP_STYLE)) LOG(llevError, "Init_Artifacts: Could not load object.\n"); art->item->arch = NULL; art->item->name = add_string((strchr(cp, ' ')+1)); al = find_artifactlist_internal(art->item->type); if (al == NULL) { al = get_empty_artifactlist(); al->type = art->item->type; al->next = first_artifactlist; first_artifactlist = al; } art->next = al->items; al->items = art; art = NULL; } else LOG(llevError, "Unknown input in artifact file: %s\n", buf); } fclose(fp); for (al = first_artifactlist; al != NULL; al = al->next) { for (art = al->items; art != NULL; art = art->next) { if (!art->chance) LOG(llevError, "Warning: artifact with no chance: %s\n", art->item->name); else al->total_chance += art->chance; } #if 0 LOG(llevDebug, "Artifact list type %d has %d total chance\n", al->type, al->total_chance); #endif } LOG(llevDebug, "done artifacts.\n"); artifact_init = 0; } /** * Searches the artifact lists and returns one that has the same type * of objects on it. * * @return * NULL if no suitable list found. */ const artifactlist *find_artifactlist(int type) { return find_artifactlist_internal(type); } /** * Searches and returns a specific artifact, NULL if not found. * @param op item to search for. * @param name artifact name. * @return matching artifact, NULL if none matched. */ const artifact *find_artifact(const object *op, const char *name) { artifactlist *list; artifact *at; sstring sname = find_string(name); if (sname == NULL) return NULL; list = find_artifactlist_internal(op->type); if (list == NULL) return NULL; for (at = list->items; at != NULL; at = at->next) { if (at->item->name == sname && legal_artifact_combination(op, at)) return at; } return NULL; } /** * For debugging purposes. Dumps all tables. * * @todo * use LOG() instead of fprintf. */ void dump_artifacts(void) { artifactlist *al; artifact *art; linked_char *next; fprintf(logfile, "\n"); for (al = first_artifactlist; al != NULL; al = al->next) { fprintf(logfile, "Artifact has type %d, total_chance=%d\n", al->type, al->total_chance); for (art = al->items; art != NULL; art = art->next) { fprintf(logfile, "Artifact %-30s Difficulty %3d Chance %5d\n", art->item->name, art->difficulty, art->chance); if (art->allowed != NULL) { fprintf(logfile, "\tAllowed combinations:"); for (next = art->allowed; next != NULL; next = next->next) fprintf(logfile, "%s,", next->name); fprintf(logfile, "\n"); } } } fprintf(logfile, "\n"); } /** * Get a suitable face number for representing an artifact. * @param art what to get the face of. * @return face, -1 as unsigned if none could be found. */ unsigned artifact_get_face(const artifact *art) { const archetype *arch = first_archetype; if (art->item->face != blank_face && art->item->face != NULL) return art->item->face->number; if (art->allowed_size > 0) { if (art->allowed->name[0] == '!') { linked_char *allowed; while (arch) { if (arch->clone.type != art->item->type) arch = arch->next; for (allowed = art->allowed; allowed != NULL; allowed = allowed->next) { if (strcmp(arch->name, allowed->name + 1) == 0) { break; } } if (allowed != NULL) continue; if (arch->clone.face == NULL) continue; return arch->clone.face->number; } return (unsigned)-1; } else { const archetype *arch = find_archetype(art->allowed->name); if (arch != NULL) return arch->clone.face->number; return (unsigned)-1; } } while (arch != NULL) { if (arch->clone.type == art->item->type && arch->clone.face != NULL) return arch->clone.face->number; arch = arch->next; } return (unsigned)-1; } crossfire-1.70.0/common/links.c0000644000014500000120000000456311731300526013264 00000000000000/* * static char *rcsid_friend_c = * "$Id: links.c 11206 2009-01-21 20:45:38Z akirschbaum $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to frankj@ifi.uio.no. */ /** * @file links.c * Utility functions for links between objects. */ #include /** * Allocates a new objectlink structure, initialises it, and returns * a pointer to it. * * @note * will call fatal() if memory allocation failure, thus never return NULL. * * @return * new link object, cleared. */ objectlink *get_objectlink(void) { objectlink *ol = (objectlink *)CALLOC(1, sizeof(objectlink)); if (!ol) fatal(OUT_OF_MEMORY); ol->ob = NULL; ol->next = NULL; ol->id = 0; return ol; } /** * Allocates a new oblinkpt structure, initialises it, and returns * a pointer to it. * * @note * will call fatal() if memory allocation failure, thus never return NULL. * * @return * new link pointer. */ oblinkpt *get_objectlinkpt(void) { oblinkpt *obp = (oblinkpt *)malloc(sizeof(oblinkpt)); if (!obp) fatal(OUT_OF_MEMORY); obp->link = NULL; obp->next = NULL; obp->value = 0; return obp; } /** * Recursively frees all objectlinks. * * @param ol * object link to free. */ void free_objectlink(objectlink *ol) { if (ol->next) free_objectlink(ol->next); free(ol); } /** * Recursively frees all linked list of objectlink pointers * * @param obp * pointer to free. */ void free_objectlinkpt(oblinkpt *obp) { if (obp->next) free_objectlinkpt(obp->next); if (obp->link) free_objectlink(obp->link); free(obp); } crossfire-1.70.0/common/item.c0000644000014500000120000014373411731300526013106 00000000000000/* * static char *rcsid_item_c = * "$Id: item.c 16871 2012-01-28 13:23:12Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Those functions deal with objects in general, including description, body location, and such. * * @todo * put const char *instead of char *when possible. */ #include #include #include #include #include /** * The ordering of this is actually doesn't make a difference * However, for ease of use, new entries should go at the end * so those people that debug the code that get used to something * being in the location 4 don't get confused. * * The ordering in save_name, use_name, nonuse_name. * save_name is the name used to load/save it from files. It should * match that of the doc/Developers/objects. The only * real limitation is that it shouldn't have spaces or other characters * that may mess up the match code. It must also start with body_ * use_name is how we describe the location if we can use it. * nonuse_name is how we describe it if we can't use it. I think * the values below will make it pretty clear how those work out * They are basically there to make life a little easier - if a character * examines an item and it says it goes on 'your arm', its pretty clear * they can use it. See the last sample (commented out) for a dragon * Note that using the term 'human' may not be very accurate, humanoid * may be better. * Basically, for the use/nonuse, the code does something like: * "This item goes %s\n", with the use/nonuse values filling in the %s */ body_locations_struct body_locations[NUM_BODY_LOCATIONS] = { { "body_range", "in your range slot", "in a human's range slot" }, { "body_arm", "on your arm", "on a human's arm" }, { "body_torso", "on your body", "on a human's torso" }, { "body_head", "on your head", "on a human's head" }, { "body_neck", "around your neck", "around a humans neck" }, { "body_skill", "in your skill slot", "in a human's skill slot" }, { "body_finger", "on your finger", "on a human's finger" }, { "body_shoulder", "around your shoulders", "around a human's shoulders" }, { "body_foot", "on your feet", "on a human's feet" }, { "body_hand", "on your hands", "on a human's hands" }, { "body_wrist", "around your wrists", "around a human's wrist" }, { "body_waist", "around your waist", "around a human's waist" }, { "body_leg", "around your legs", "around a human's legs" }, /*{"body_dragon_torso", "your body", "a dragon's body"} */ }; /** Tens */ static const char *const numbers_10[] = { "zero", "ten", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety" }; /** Levels as a full name and not a number. */ static const char *const levelnumbers[] = { "zeroth", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelfth", "thirteenth", "fourteenth", "fifteenth", "sixteenth", "seventeenth", "eighteen", "nineteen", "twentieth" }; /** Tens for levels */ static const char *const levelnumbers_10[] = { "zeroth", "tenth", "twentieth", "thirtieth", "fortieth", "fiftieth", "sixtieth", "seventieth", "eightieth", "ninetieth" }; /** * The following is a large table of item types, the fields are: * item number, item name, item name (plural), and two numbers that are the skills * used to identify them. Anytime a new item type is added or removed, this list * should be altered to reflect that. The defines for the numerical values are in * define.h */ static const typedata item_types[] = { { 0, "none", "none", 0, 0 }, { PLAYER, "player", "players", 0, 0 }, { ROD, "rod", "rods", SK_THAUMATURGY, 0 }, { TREASURE, "treasure", "treasure", 0, 0 }, { POTION, "potion", "potions", SK_ALCHEMY, 0 }, { FOOD, "food", "food", SK_WOODSMAN, 0 }, { POISON, "poison", "poisons", SK_ALCHEMY, 0 }, { BOOK, "book", "books", SK_LITERACY, 0 }, { CLOCK, "clock", "clocks", 0, 0 }, { ARROW, "arrow", "arrows", SK_BOWYER, 0 }, { BOW, "bow", "bows", SK_BOWYER, 0 }, { WEAPON, "weapon", "weapons", SK_SMITHERY, 0 }, { ARMOUR, "armour", "armour", SK_SMITHERY, 0 }, { PEDESTAL, "pedestal", "pedestals", 0, 0 }, { ALTAR, "altar", "altars", 0, 0 }, { LOCKED_DOOR, "locked door", "locked doors", 0, 0 }, { SPECIAL_KEY, "special key", "special keys", 0, 0 }, { MAP, "map", "maps", 0, 0 }, { DOOR, "door", "doors", 0, 0 }, { KEY, "key", "keys", 0, 0 }, { TIMED_GATE, "timed_gate", "timed_gates", 0, 0 }, { TRIGGER, "trigger", "triggers", 0, 0 }, { GRIMREAPER, "grimreaper", "grimreapers", 0, 0 }, { MAGIC_EAR, "magic ear", "magic ears", 0, 0 }, { TRIGGER_BUTTON, "trigger button", "trigger buttons", 0, 0 }, { TRIGGER_ALTAR, "trigger altar", "trigger altars", 0, 0 }, { TRIGGER_PEDESTAL, "trigger pedestal", "trigger pedestals", 0, 0 }, { SHIELD, "shield", "shields", SK_SMITHERY, 0 }, { HELMET, "helmet", "helmets", SK_SMITHERY, 0 }, { MONEY, "money", "money", 0, 0 }, { CLASS, "class", "classes", 0, 0 }, { AMULET, "amulet", "amulets", SK_JEWELER, 0 }, { PLAYERMOVER, "player mover", "player movers", 0, 0 }, { TELEPORTER, "teleporter", "teleporters", 0, 0 }, { CREATOR, "creator", "creators", 0, 0 }, { SKILL, "skill", "skills", 0, 0 }, { EARTHWALL, "earthwall", "earthwalls", 0, 0 }, { GOLEM, "golem", "golems", 0, 0 }, { THROWN_OBJ, "projectile", "projectiles", 0, 0 }, { BLINDNESS, "blindness", "blindness", 0, 0 }, { GOD, "god", "gods", 0, 0 }, { DETECTOR, "detector", "detectors", 0, 0 }, { TRIGGER_MARKER, "trigger marker", "trigger markers", 0, 0 }, { DEAD_OBJECT, "dead object", "dead objects", 0, 0 }, { DRINK, "drink", "drinks", SK_WOODSMAN, SK_ALCHEMY }, { MARKER, "marker", "markers", 0, 0 }, { HOLY_ALTAR, "holy altar", "holy altars", 0, 0 }, { PLAYER_CHANGER, "player changer", "player changers", 0, 0 }, { BATTLEGROUND, "battleground", "battlegrounds", 0, 0 }, { PEACEMAKER, "peacemaker", "peacemakers", 0, 0 }, { GEM, "gem", "gems", SK_JEWELER, 0 }, { FIREWALL, "firewall", "firewalls", 0, 0 }, { CHECK_INV, "inventory checker", "inventory checkers", 0, 0 }, { MOOD_FLOOR, "mood floor", "mood floors", 0, 0 }, { EXIT, "exit", "exits", 0, 0 }, { ENCOUNTER, "encounter", "encounters", 0, 0 }, { SHOP_FLOOR, "shop floor", "shop floors", 0, 0 }, { SHOP_MAT, "shop mat", "shop mats", 0, 0 }, { RING, "ring", "rings", SK_JEWELER, 0 }, { FLOOR, "floor", "floors", 0, 0 }, { FLESH, "flesh", "flesh", SK_WOODSMAN, 0 }, { INORGANIC, "inorganic", "inorganics", SK_ALCHEMY, 0 }, { SKILL_TOOL, "skill tool", "skill tools", 0, 0 }, { LIGHTER, "lighter", "lighters", 0, 0 }, { WALL, "wall", "walls", 0, 0 }, { MISC_OBJECT, "bric-a-brac", "bric-a-brac", 0, 0 }, { MONSTER, "monster", "monsters", 0, 0 }, { LAMP, "lamp", "lamps", 0, 0 }, { DUPLICATOR, "duplicator", "duplicators", 0, 0 }, { SPELLBOOK, "spellbook", "spellbooks", SK_LITERACY, 0 }, { CLOAK, "cloak", "cloaks", SK_SMITHERY, 0 }, { SPINNER, "spinner", "spinners", 0, 0 }, { GATE, "gate", "gates", 0, 0 }, { BUTTON, "button", "buttons", 0, 0 }, { CF_HANDLE, "cf handle", "cf handles", 0, 0 }, { HOLE, "hole", "holes", 0, 0 }, { TRAPDOOR, "trapdoor", "trapdoors", 0, 0 }, { SIGN, "sign", "signs", 0, 0 }, { BOOTS, "boots", "boots", SK_SMITHERY, 0 }, { GLOVES, "gloves", "gloves", SK_SMITHERY, 0 }, { SPELL, "spell", "spells", 0, 0 }, { SPELL_EFFECT, "spell effect", "spell effects", 0, 0 }, { CONVERTER, "converter", "converters", 0, 0 }, { BRACERS, "bracers", "bracers", SK_SMITHERY, 0 }, { POISONING, "poisoning", "poisonings", 0, 0 }, { SAVEBED, "savebed", "savebeds", 0, 0 }, { WAND, "wand", "wands", SK_THAUMATURGY, 0 }, { SCROLL, "scroll", "scrolls", SK_LITERACY, 0 }, { DIRECTOR, "director", "directors", 0, 0 }, { GIRDLE, "girdle", "girdles", SK_SMITHERY, 0 }, { FORCE, "force", "forces", 0, 0 }, { POTION_RESIST_EFFECT, "potion effect", "potion effects", 0, 0 }, { CLOSE_CON, "closed container", "closed container", 0, 0 }, { CONTAINER, "container", "containers", SK_ALCHEMY, 0 }, { ARMOUR_IMPROVER, "armour improver", "armour improvers", SK_LITERACY, 0 }, { WEAPON_IMPROVER, "weapon improver", "weapon improvers", SK_LITERACY, 0 }, { SKILLSCROLL, "skillscroll", "skillscrolls", SK_LITERACY, 0 }, { DEEP_SWAMP, "deep swamp", "deep swamps", 0, 0 }, { IDENTIFY_ALTAR, "identify altar", "identify altars", 0, 0 }, { SHOP_INVENTORY, "inventory list", "inventory lists", 0, 0 }, { RUNE, "rune", "runes", 0, 0 }, { TRAP, "trap", "traps", 0, 0 }, { POWER_CRYSTAL, "power_crystal", "power_crystals", 0, 0 }, { CORPSE, "corpse", "corpses", 0, 0 }, { DISEASE, "disease", "diseases", 0, 0 }, { SYMPTOM, "symptom", "symptoms", 0, 0 }, { BUILDER, "item builder", "item builders", 0, 0 }, { MATERIAL, "building material", "building materials", 0, 0 }, }; /** Number of items in ::item_types array. */ static const int item_types_size = sizeof(item_types)/sizeof(*item_types); /** This curve may be too steep. But the point is that there should * be tough choices - there is no real point to this if everyone can * wear whatever they want with no worries. Perhaps having the steep * curve is good (maybe even steeper), but allowing players to * have 2 * level instead. Ideally, top level characters should only be * able to use 2-3 of the most powerful items. * note that this table is only really used for program generated items - * custom objects can use whatever they want. */ static const int enc_to_item_power[] = { 0, 0, 1, 2, 3, 4, /* 5 */ 5, 7, 9, 11, 13, /* 10 */ 15, 18, 21, 24, 27, /* 15 */ 30, 35, 40, 45, 50 /* 20 */ }; int get_power_from_ench(int ench) { if (ench < 0) ench = 0; if (ench > (int)(sizeof(enc_to_item_power)/sizeof(*enc_to_item_power)-1)) ench = sizeof(enc_to_item_power)/sizeof(*enc_to_item_power)-1; return enc_to_item_power[ench]; } /** * This takes an object 'op' and figures out what its item_power * rating should be. This should only really be used by the treasure * generation code, and when loading legacy objects. It returns * the item_power it calculates. * * @param op * object of which to compute the item_power * @return op's item power. */ int calc_item_power(const object *op) { int i, tmp, enc; enc = 0; for (i = 0; i < NUM_STATS; i++) enc += get_attr_value(&op->stats, i); /* This protection logic is pretty flawed. 20% fire resistance * is much more valuable than 20% confusion, or 20% slow, or * several others. Start at 1 - ignore physical - all that normal * armour shouldn't be counted against */ tmp = 0; for (i = 1; i < NROFATTACKS; i++) tmp += op->resist[i]; /* Add/substract 10 so that the rounding works out right */ if (tmp > 0) enc += (tmp+10)/20; else if (tmp < 0) enc += (tmp-10)/20; enc += op->magic; /* For each attacktype a weapon has, one more encantment. Start at 1 - * physical doesn't count against total. */ if (op->type == WEAPON) { for (i = 1; i < NROFATTACKS; i++) if (op->attacktype&(1<slaying) enc += 2; /* What it slays is probably more relevent */ } /* Items the player can equip */ if ((op->type == WEAPON) || (op->type == ARMOUR) || (op->type == HELMET) || (op->type == SHIELD) || (op->type == RING) || (op->type == BOOTS) || (op->type == GLOVES) || (op->type == AMULET) || (op->type == GIRDLE) || (op->type == BRACERS) || (op->type == CLOAK)) { enc += op->stats.food; /* sustenance */ enc += op->stats.hp; /* hp regen */ enc += op->stats.sp; /* mana regen */ enc += op->stats.grace; /* grace regen */ enc += op->stats.exp; /* speed bonus */ } enc += op->stats.luck; /* Do spell paths now */ for (i = 1; i < NRSPELLPATHS; i++) { if (op->path_attuned&(1<path_denied&(1<path_repelled&(1<resist[tmpvar] && (op->type != FLESH || atnr_is_dragon_enabled(tmpvar) == 1)) { if (!newline) stringbuffer_append_printf(buf, "(%s %+d)", resist_plus[tmpvar], op->resist[tmpvar]); else stringbuffer_append_printf(buf, "%s %d\n", resist_plus[tmpvar], op->resist[tmpvar]); } } return buf; } /** * Formats the item's weight. * @param op * object we want the weight of. * @param[out] buf * buffer to write to. * @param size * buffer size. */ void query_weight(const object *op, char *buf, size_t size) { sint32 i = (op->nrof ? op->nrof : 1)*op->weight+op->carrying; if (op->weight < 0) snprintf(buf, size, " "); else if (i%1000) snprintf(buf, size, "%6.1f", i/1000.0); else snprintf(buf, size, "%4d ", i/1000); } /** * Formats a level. * @param i * level to format. * @param[out] buf * buffer which will contain the level. * @param size * size of the buffer. */ void get_levelnumber(int i, char *buf, size_t size) { if (i > 99 || i < 0) { snprintf(buf, size, "%d.", i); return; } if (i < 21) { snprintf(buf, size, "%s", levelnumbers[i]); return; } if (!(i%10)) { snprintf(buf, size, "%s", levelnumbers_10[i/10]); return; } snprintf(buf, size, "%s%s", numbers_10[i/10], levelnumbers[i%10]); return; } /** * Describes a ring or amulet, or a skill. * @param op * item to describe, must be RING, AMULET or SKILL. * @param buf * buffer that will contain the description. If NULL a new one is created. * @return buf, or a new StringBuffer the caller should free if buf was NULL. * @todo why does this also describe a SKILL? */ static StringBuffer *ring_desc(const object *op, StringBuffer *buf) { int attr, val; size_t len; assert(op != NULL); assert(op->type == RING || op->type == AMULET || op->type == SKILL); if (buf == NULL) buf = stringbuffer_new(); len = stringbuffer_length(buf); if (!QUERY_FLAG(op, FLAG_IDENTIFIED)) return buf; for (attr = 0; attr < NUM_STATS; attr++) { if ((val = get_attr_value(&(op->stats), attr)) != 0) { stringbuffer_append_printf(buf, "(%s%+d)", short_stat_name[attr], val); } } if (op->stats.exp) stringbuffer_append_printf(buf, "(speed %+"FMT64")", op->stats.exp); if (op->stats.wc) stringbuffer_append_printf(buf, "(wc%+d)", op->stats.wc); if (op->stats.dam) stringbuffer_append_printf(buf, "(dam%+d)", op->stats.dam); if (op->stats.ac) stringbuffer_append_printf(buf, "(ac%+d)", op->stats.ac); describe_resistance(op, 0, buf); if (op->stats.food != 0) stringbuffer_append_printf(buf, "(sustenance%+d)", op->stats.food); if (op->stats.grace) stringbuffer_append_printf(buf, "(grace%+d)", op->stats.grace); if (op->stats.sp && op->type != SKILL) stringbuffer_append_printf(buf, "(magic%+d)", op->stats.sp); if (op->stats.hp) stringbuffer_append_printf(buf, "(regeneration%+d)", op->stats.hp); if (op->stats.luck) stringbuffer_append_printf(buf, "(luck%+d)", op->stats.luck); if (QUERY_FLAG(op, FLAG_LIFESAVE)) stringbuffer_append_printf(buf, "(lifesaving)"); if (QUERY_FLAG(op, FLAG_REFL_SPELL)) stringbuffer_append_printf(buf, "(reflect spells)"); if (QUERY_FLAG(op, FLAG_REFL_MISSILE)) stringbuffer_append_printf(buf, "(reflect missiles)"); if (QUERY_FLAG(op, FLAG_STEALTH)) stringbuffer_append_printf(buf, "(stealth)"); describe_spellpath_attenuation("Attuned", op->path_attuned, buf); describe_spellpath_attenuation("Repelled", op->path_repelled, buf); describe_spellpath_attenuation("Denied", op->path_denied, buf); /* item_power is done by the caller */ /* if (op->item_power) snprintf(buf+strlen(buf), size-strlen(buf), "(item_power %+d)", op->item_power);*/ if (stringbuffer_length(buf) == len && op->type != SKILL) stringbuffer_append_string(buf, "of adornment"); return buf; } /** * query_short_name(object) is similar to query_name(), but doesn't * contain any information about object status (worn/cursed/etc.) * * @param op * object to describe. * @param buf * buffer which will contain the name. Must not be NULL. * @param size * buffer length. */ void query_short_name(const object *op, char *buf, size_t size) { size_t len = 0; if (op->name == NULL) { snprintf(buf, size, "(null)"); return; } if (!op->nrof && !op->weight && !op->title && !is_magical(op)) { snprintf(buf, size, "%s", op->name); /* To speed things up (or make things slower?) */ return; } buf[0] = '\0'; if (op->nrof <= 1) safe_strcat(buf, op->name, &len, size); else safe_strcat(buf, op->name_pl, &len, size); if (op->title && QUERY_FLAG(op, FLAG_IDENTIFIED)) { safe_strcat(buf, " ", &len, size); safe_strcat(buf, op->title, &len, size); } switch (op->type) { case SPELLBOOK: case SCROLL: case WAND: case ROD: if (QUERY_FLAG(op, FLAG_IDENTIFIED) || QUERY_FLAG(op, FLAG_BEEN_APPLIED)) { if (!op->title) { safe_strcat(buf, " of ", &len, size); if (op->inv) safe_strcat(buf, op->inv->name, &len, size); else LOG(llevError, "Spellbook %s lacks inventory\n", op->name); } if (op->type != SPELLBOOK) { snprintf(buf+len, size-len, " (lvl %d)", op->level); len += strlen(buf+len); } } break; case SKILL: case AMULET: case RING: if (!op->title) { /* If ring has a title, full description isn't so useful */ char* desc; desc = stringbuffer_finish(ring_desc(op, NULL)); if (desc[0]) { safe_strcat(buf, " ", &len, size); safe_strcat(buf, desc, &len, size); } free(desc); } break; default: if (op->magic && ((QUERY_FLAG(op, FLAG_BEEN_APPLIED) && need_identify(op)) || QUERY_FLAG(op, FLAG_IDENTIFIED))) { snprintf(buf+len, size-len, " %+d", op->magic); len += strlen(buf+len); } } } /** * Describes an item. * * @param op * item to describe. Must not be NULL. * @param buf * buffer that will contain the description. * @param size * size of buffer. */ void query_name(const object *op, char *buf, size_t size) { size_t len = 0; buf[0] = '\0'; query_short_name(op, buf+len, size-len); len += strlen(buf+len); if (QUERY_FLAG(op, FLAG_INV_LOCKED)) safe_strcat(buf, " *", &len, size); if (op->type == CONTAINER && ((op->env && op->env->container == op) || (!op->env && QUERY_FLAG(op, FLAG_APPLIED)))) safe_strcat(buf, " (open)", &len, size); if (QUERY_FLAG(op, FLAG_KNOWN_CURSED)) { if (QUERY_FLAG(op, FLAG_DAMNED)) safe_strcat(buf, " (damned)", &len, size); else if (QUERY_FLAG(op, FLAG_CURSED)) safe_strcat(buf, " (cursed)", &len, size); } if (QUERY_FLAG(op, FLAG_BLESSED) && QUERY_FLAG(op, FLAG_KNOWN_BLESSED)) safe_strcat(buf, " (blessed)", &len, size); /* Basically, if the object is known magical (detect magic spell on it), * and it isn't identified, print out the fact that * it is magical. Assume that the detect magical spell will only set * KNOWN_MAGICAL if the item actually is magical. * * Changed in V 0.91.4 - still print that the object is magical even * if it has been applied. Equipping an item does not tell full * abilities, especially for artifact items. */ if (QUERY_FLAG(op, FLAG_KNOWN_MAGICAL) && !QUERY_FLAG(op, FLAG_IDENTIFIED)) safe_strcat(buf, " (magic)", &len, size); if (QUERY_FLAG(op, FLAG_APPLIED)) { switch (op->type) { case BOW: case WAND: case ROD: safe_strcat(buf, " (readied)", &len, size); break; case WEAPON: safe_strcat(buf, " (wielded)", &len, size); break; case ARMOUR: case HELMET: case SHIELD: case RING: case BOOTS: case GLOVES: case AMULET: case GIRDLE: case BRACERS: case CLOAK: safe_strcat(buf, " (worn)", &len, size); break; case CONTAINER: safe_strcat(buf, " (active)", &len, size); break; case SKILL: default: safe_strcat(buf, " (applied)", &len, size); } } if (QUERY_FLAG(op, FLAG_UNPAID)) safe_strcat(buf, " (unpaid)", &len, size); } /** * Query a short name for the item. * * This is a lot like query_name(), but we * don't include the item count or item status. Used for inventory sorting * and sending to client. * If plural is set, we generate the plural name of this. * * @param op * item we want the name of. * @param plural * whether to get the singular or plural name * @param buf * buffer that will contain the object's name. Must not be NULL. * @param size * buffer's length */ void query_base_name(const object *op, int plural, char *buf, size_t size) { size_t len; if ((!plural && !op->name) || (plural && !op->name_pl)) { strncpy(buf, "(null)", size); return; } if (!op->nrof && !op->weight && !op->title && !is_magical(op)) { strncpy(buf, op->name, size); /* To speed things up (or make things slower?) */ return; } buf[0] = '\0'; snprintf(buf, size, "%s", plural ? op->name_pl : op->name); len = strlen(buf); if (op->title && QUERY_FLAG(op, FLAG_IDENTIFIED)) { safe_strcat(buf, " ", &len, size); safe_strcat(buf, op->title, &len, size); } switch (op->type) { case SPELLBOOK: case SCROLL: case WAND: case ROD: if (QUERY_FLAG(op, FLAG_IDENTIFIED) || QUERY_FLAG(op, FLAG_BEEN_APPLIED)) { if (!op->title) { safe_strcat(buf, " of ", &len, size); if (op->inv) safe_strcat(buf, op->inv->name, &len, size); else LOG(llevError, "Spellbook %s lacks inventory\n", op->name); } if (op->type != SPELLBOOK) { snprintf(buf+len, size-len, " (lvl %d)", op->level); len += strlen(buf+len); } } break; case SKILL: case AMULET: case RING: if (!op->title) { /* If ring has a title, full description isn't so useful */ char* s; s = stringbuffer_finish(ring_desc(op, NULL)); if (s[0]) { safe_strcat(buf, " ", &len, size); safe_strcat(buf, s, &len, size); } free(s); } break; default: if (op->magic && ((QUERY_FLAG(op, FLAG_BEEN_APPLIED) && need_identify(op)) || QUERY_FLAG(op, FLAG_IDENTIFIED))) { snprintf(buf+strlen(buf), size-strlen(buf), " %+d", op->magic); } } } /** * Describes a monster. * * @param op * monster to describe. Must not be NULL, and must have FLAG_MONSTER or be a PLAYER. * @param buf * buffer that will contain the description. Can be NULL. * @return buf, or a new StringBuffer the caller should clear if buf was NULL. * * @todo * Rename to describe_living (or equivalent) since called for player too. * Fix weird sustenance logic. */ StringBuffer *describe_monster(const object *op, StringBuffer *buf) { int i; assert(op != NULL); assert(QUERY_FLAG(op, FLAG_MONSTER) || op->type == PLAYER); if (buf == NULL) buf = stringbuffer_new(); /* Note that the resolution this provides for players really isn't * very good. Any player with a speed greater than .67 will * fall into the 'lightning fast movement' category. */ if (FABS(op->speed) > MIN_ACTIVE_SPEED) { switch ((int)((FABS(op->speed))*15)) { case 0: stringbuffer_append_string(buf, "(very slow movement)"); break; case 1: stringbuffer_append_string(buf, "(slow movement)"); break; case 2: stringbuffer_append_string(buf, "(normal movement)"); break; case 3: case 4: stringbuffer_append_string(buf, "(fast movement)"); break; case 5: case 6: stringbuffer_append_string(buf, "(very fast movement)"); break; case 7: case 8: case 9: case 10: stringbuffer_append_string(buf, "(extremely fast movement)"); break; default: stringbuffer_append_string(buf, "(lightning fast movement)"); break; } } if (QUERY_FLAG(op, FLAG_UNDEAD)) stringbuffer_append_string(buf, "(undead)"); if (QUERY_FLAG(op, FLAG_SEE_INVISIBLE)) stringbuffer_append_string(buf, "(see invisible)"); if (QUERY_FLAG(op, FLAG_USE_WEAPON)) stringbuffer_append_string(buf, "(wield weapon)"); if (QUERY_FLAG(op, FLAG_USE_BOW)) stringbuffer_append_string(buf, "(archer)"); if (QUERY_FLAG(op, FLAG_USE_ARMOUR)) stringbuffer_append_string(buf, "(wear armour)"); if (QUERY_FLAG(op, FLAG_USE_RING)) stringbuffer_append_string(buf, "(wear ring)"); if (QUERY_FLAG(op, FLAG_USE_SCROLL)) stringbuffer_append_string(buf, "(read scroll)"); if (QUERY_FLAG(op, FLAG_USE_RANGE)) stringbuffer_append_string(buf, "(fires wand/rod/horn)"); if (QUERY_FLAG(op, FLAG_CAN_USE_SKILL)) stringbuffer_append_string(buf, "(skill user)"); if (QUERY_FLAG(op, FLAG_CAST_SPELL)) stringbuffer_append_string(buf, "(spellcaster)"); if (QUERY_FLAG(op, FLAG_FRIENDLY)) stringbuffer_append_string(buf, "(friendly)"); if (QUERY_FLAG(op, FLAG_UNAGGRESSIVE)) stringbuffer_append_string(buf, "(unaggressive)"); if (QUERY_FLAG(op, FLAG_HITBACK)) stringbuffer_append_string(buf, "(hitback)"); if (QUERY_FLAG(op, FLAG_STEALTH)) stringbuffer_append_string(buf, "(stealthy)"); if (op->randomitems != NULL) { treasure *t; int first = 1; for (t = op->randomitems->items; t != NULL; t = t->next) if (t->item && (t->item->clone.type == SPELL)) { if (first) { first = 0; stringbuffer_append_string(buf, "(Spell abilities:)"); } stringbuffer_append_printf(buf, "(%s)", t->item->clone.name); } } if (op->type == PLAYER) { if (op->contr->digestion) { if (op->contr->digestion != 0) stringbuffer_append_printf(buf, "(sustenance%+d)", op->contr->digestion); } if (op->contr->gen_grace) { stringbuffer_append_printf(buf, "(grace%+d)", op->contr->gen_grace); } if (op->contr->gen_sp) { stringbuffer_append_printf(buf, "(magic%+d)", op->contr->gen_sp); } if (op->contr->gen_hp) { stringbuffer_append_printf(buf, "(regeneration%+d)", op->contr->gen_hp); } if (op->stats.luck) { stringbuffer_append_printf(buf, "(luck%+d)", op->stats.luck); } } /* describe attacktypes */ if (is_dragon_pl(op)) { /* for dragon players display the attacktypes from clawing skill * Break apart the for loop - move the comparison checking down - * this makes it more readable. */ object *tmp; tmp = object_find_by_type_and_name(op, SKILL, "clawing"); if (tmp && tmp->attacktype != 0) { describe_attacktype("Claws", tmp->attacktype, buf); } else { describe_attacktype("Attacks", op->attacktype, buf); } } else { describe_attacktype("Attacks", op->attacktype, buf); } describe_spellpath_attenuation("Attuned", op->path_attuned &~ op->path_denied, buf); describe_spellpath_attenuation("Repelled", op->path_repelled &~ op->path_denied, buf ); describe_spellpath_attenuation("Denied", op->path_denied, buf); for (i = 0; i < NROFATTACKS; i++) { if (op->resist[i]) { stringbuffer_append_printf(buf, "(%s %+d)", resist_plus[i], op->resist[i]); } } return buf; } /** * Describes an item, in all its details. * * \li If it is a monster, lots of information about its abilities * will be returned. * \li If it is an item, lots of information about which abilities * will be gained about its user will be returned. * \li If it is a player, it writes out the current abilities * of the player, which is usually gained by the items applied. * * It would be really handy to actually pass another object * pointer on who is examining this object. Then, you could reveal * certain information depending on what the examiner knows, eg, * wouldn't need to use the SEE_INVISIBLE flag to know it is * a dragon player examining food. Could have things like * a dwarven axe, in which the full abilities are only known to * dwarves, etc. * * Add 'owner' who is the person examining this object. * owner can be null if no one is being associated with this * item (eg, debug dump or the like) * * @param op * object to describe. Must not be NULL. * @param owner * player examining the object. * @param buf * buffer that will contain the description. Can be NULL. * @return buf, or new StringBuffer the caller must free if buf was NULL. * * @note * This function is really much more complicated than it should * be, because different objects have different meanings * for the same field (eg, wands use 'food' for charges). This * means these special cases need to be worked out. * * @todo * Check whether owner is really needed. */ StringBuffer *describe_item(const object *op, const object *owner, StringBuffer *buf) { int identified, i; if (buf == NULL) buf = stringbuffer_new(); if (QUERY_FLAG(op, FLAG_MONSTER) || op->type == PLAYER) { return describe_monster(op, buf); } /* figure this out once, instead of making multiple calls to need_identify. * also makes the code easier to read. */ if (!need_identify(op) || QUERY_FLAG(op, FLAG_IDENTIFIED)) identified = 1; else { stringbuffer_append_string(buf, "(unidentified)"); identified = 0; } switch (op->type) { case BOW: case ARROW: case WAND: case ROD: case WEAPON: case ARMOUR: case HELMET: case SHIELD: case BOOTS: case GLOVES: case GIRDLE: case BRACERS: case CLOAK: case SKILL_TOOL: break; /* We have more information to do below this switch */ case LAMP: break; /* just so we get the "glowing" part. */ case POWER_CRYSTAL: /* Avoid division by zero... */ if (op->stats.maxsp == 0) { stringbuffer_append_printf(buf, "(capacity %d).", op->stats.maxsp); } else { if (op->stats.maxsp > 1000) { /*higher capacity crystals*/ i = (op->stats.maxsp%1000)/100; if (i) stringbuffer_append_printf(buf, "(capacity %d.%dk). It is ", op->stats.maxsp/1000, i); else stringbuffer_append_printf(buf, "(capacity %dk). It is ", op->stats.maxsp/1000); } else stringbuffer_append_printf(buf, "(capacity %d). It is ", op->stats.maxsp); i = (op->stats.sp*10)/op->stats.maxsp; if (op->stats.sp == 0) stringbuffer_append_string(buf, "empty."); else if (i == 0) stringbuffer_append_string(buf, "almost empty."); else if (i < 3) stringbuffer_append_string(buf, "partially filled."); else if (i < 6) stringbuffer_append_string(buf, "half full."); else if (i < 9) stringbuffer_append_string(buf, "well charged."); else if (op->stats.sp == op->stats.maxsp) stringbuffer_append_string(buf, "fully charged."); else stringbuffer_append_string(buf, "almost full."); } break; case FOOD: case FLESH: case DRINK: if (identified || QUERY_FLAG(op, FLAG_BEEN_APPLIED)) { stringbuffer_append_printf(buf, "(food+%d)", op->stats.food); if (op->type == FLESH && op->last_eat > 0 && atnr_is_dragon_enabled(op->last_eat)) { stringbuffer_append_printf(buf, "(%s metabolism)", change_resist_msg[op->last_eat]); } if (!QUERY_FLAG(op, FLAG_CURSED)) { if (op->stats.hp) stringbuffer_append_string(buf, "(heals)"); if (op->stats.sp) stringbuffer_append_string(buf, "(spellpoint regen)"); } else { if (op->stats.hp) stringbuffer_append_string(buf, "(damages)"); if (op->stats.sp) stringbuffer_append_string(buf, "(spellpoint depletion)"); } } break; case SKILL: case RING: case AMULET: if (op->item_power) { stringbuffer_append_printf(buf, "(item_power %+d)", op->item_power); } if (op->title) { ring_desc(op, buf); } return buf; default: return buf; } /* Down here, we more further describe equipment type items. * only describe them if they have been identified or the like. */ if (identified || QUERY_FLAG(op, FLAG_BEEN_APPLIED)) { int attr, val; for (attr = 0; attr < NUM_STATS; attr++) { if ((val = get_attr_value(&(op->stats), attr)) != 0) { stringbuffer_append_printf(buf, "(%s%+d)", short_stat_name[attr], val); } } if (op->glow_radius) stringbuffer_append_string(buf, "(glowing)"); switch (op->type) { case FLESH: break; default: if (op->stats.exp) { stringbuffer_append_printf(buf, "(speed %+"FMT64")", op->stats.exp); } break; } switch (op->type) { case BOW: case ARROW: case GIRDLE: case HELMET: case SHIELD: case BOOTS: case GLOVES: case WEAPON: case SKILL: case RING: case AMULET: case ARMOUR: case BRACERS: case FORCE: case CLOAK: if (op->stats.wc) { stringbuffer_append_printf(buf, "(wc%+d)", op->stats.wc); } if (op->stats.dam) { stringbuffer_append_printf(buf, "(dam%+d)", op->stats.dam); } if (op->stats.ac) { stringbuffer_append_printf(buf, "(ac%+d)", op->stats.ac); } if ((op->type == WEAPON || op->type == BOW) && op->level > 0) { stringbuffer_append_printf(buf, "(improved %d/%d)", op->last_eat, op->level); } break; default: break; } if (QUERY_FLAG(op, FLAG_XRAYS)) stringbuffer_append_string(buf, "(xray-vision)"); if (QUERY_FLAG(op, FLAG_SEE_IN_DARK)) stringbuffer_append_string(buf, "(infravision)"); /* levitate was what is was before, so we'll keep it */ if (op->move_type&MOVE_FLY_LOW) stringbuffer_append_string(buf, "(levitate)"); if (op->move_type&MOVE_FLY_HIGH) stringbuffer_append_string(buf, "(fly)"); if (op->move_type&MOVE_SWIM) stringbuffer_append_string(buf, "(swim)"); /* walking is presumed as 'normal', so doesn't need mentioning */ if (op->item_power) { stringbuffer_append_printf(buf, "(item_power %+d)", op->item_power); } } /* End if identified or applied */ /* This blocks only deals with fully identified object. * it is intentional that this is not an 'else' from a above - * in this way, information is added. */ if (identified) { int more_info = 0; switch (op->type) { case ROD: /* These use stats.sp for spell selection and stats.food */ case BOW: /* and stats.hp for spell-point regeneration... */ case ARROW: case WAND: case FOOD: case FLESH: case DRINK: more_info = 0; break; /* Armor type objects */ case ARMOUR: case HELMET: case SHIELD: case BOOTS: case GLOVES: case GIRDLE: case BRACERS: case CLOAK: if (ARMOUR_SPEED(op)) { stringbuffer_append_printf(buf, "(Max speed %1.2f)", ARMOUR_SPEED(op)/10.0); } if (ARMOUR_SPELLS(op)) { stringbuffer_append_printf(buf, "(Spell regen penalty %d)", ARMOUR_SPELLS(op)); } more_info = 1; break; case WEAPON: /* Calculate it the same way fix_object does so the results * make sense. */ i = (WEAPON_SPEED(op)*2-op->magic)/2; if (i < 0) i = 0; stringbuffer_append_printf(buf, "(weapon speed %d)", i); more_info = 1; break; } if (more_info) { if (op->stats.food) { if (op->stats.food != 0) stringbuffer_append_printf(buf, "(sustenance%+d)", op->stats.food); } if (op->stats.grace) { stringbuffer_append_printf(buf, "(grace%+d)", op->stats.grace); } if (op->stats.sp) { stringbuffer_append_printf(buf, "(magic%+d)", op->stats.sp); } if (op->stats.hp) { stringbuffer_append_printf(buf, "(regeneration%+d)", op->stats.hp); } } if (op->stats.luck) { stringbuffer_append_printf(buf, "(luck%+d)", op->stats.luck); } if (QUERY_FLAG(op, FLAG_LIFESAVE)) stringbuffer_append_string(buf, "(lifesaving)"); if (QUERY_FLAG(op, FLAG_REFL_SPELL)) stringbuffer_append_string(buf, "(reflect spells)"); if (QUERY_FLAG(op, FLAG_REFL_MISSILE)) stringbuffer_append_string(buf, "(reflect missiles)"); if (QUERY_FLAG(op, FLAG_STEALTH)) stringbuffer_append_string(buf, "(stealth)"); if (op->slaying != NULL && op->type != FOOD) { stringbuffer_append_printf(buf, "(slay %s)", op->slaying); } describe_attacktype("Attacks", op->attacktype, buf); /* resistance on flesh is only visible for dragons. If * non flesh, everyone can see its resistances */ if (op->type != FLESH || (owner && is_dragon_pl(owner))) { describe_resistance(op, 0, buf); } describe_spellpath_attenuation("Attuned", op->path_attuned &~ op->path_denied, buf); describe_spellpath_attenuation("Repelled", op->path_repelled &~ op->path_denied, buf); describe_spellpath_attenuation("Denied", op->path_denied, buf); } return buf; } /** * Checks whether object is magical. * * A magical item is one that * increases/decreases any abilities, provides a resistance, * has a generic magical bonus, or is an artifact. * * @param op * item to check. * @return * true if the item is magical. */ int is_magical(const object *op) { int i; /* living creatures are considered non magical */ if (QUERY_FLAG(op, FLAG_ALIVE)) return 0; /* This is a test for it being an artifact, as artifacts have titles */ if (op->title != NULL) return 1; /* Handle rings and amulets specially. If they change any of these * values, it means they are magical. */ if ((op->type == AMULET || op->type == RING) && (op->stats.ac || op->stats.food || op->stats.exp || op->stats.dam || op->stats.wc || op->stats.sp || op->stats.hp || op->stats.luck)) return 1; /* Check for stealty, speed, flying, or just plain magic in the boots */ /* Presume any boots that have a move_type are special. */ if (op->type == BOOTS && ((QUERY_FLAG(op, FLAG_STEALTH) || op->move_type || op->stats.exp))) return 1; /* Take care of amulet/shield that reflects spells/missiles */ if ((op->type == AMULET || op->type == SHIELD) && (QUERY_FLAG(op, FLAG_REFL_SPELL) || QUERY_FLAG(op, FLAG_REFL_MISSILE))) return 1; /* Take care of helmet of xrays */ if (op->type == HELMET && QUERY_FLAG(op, FLAG_XRAYS)) return 1; /* Potions & rods are always magical. Wands/staves are also magical, * assuming they still have any charges left. */ if (op->type == POTION || op->type == ROD || (op->type == WAND && op->stats.food)) return 1; /* if something gives a protection, either positive or negative, its magical */ /* This is really a pretty bad hack - as of now, ATNR_PHYSICAL is 0, * so this always works out fine. */ for (i = ATNR_PHYSICAL+1; i < NROFATTACKS; i++) if (op->resist[i]) return 1; /* Physical protection is expected on some item types, so they should * not be considered magical. */ if (op->resist[ATNR_PHYSICAL] && op->type != HELMET && op->type != SHIELD && op->type != BOOTS && op->type != GLOVES && op->type != ARMOUR) return 1; /* power crystal, spellbooks, and scrolls are always magical. */ if (op->magic || op->type == POWER_CRYSTAL || op->type == SPELLBOOK || op->type == SCROLL || op->type == GIRDLE) return 1; /* Check to see if it increases/decreases any stats */ for (i = 0; i < NUM_STATS; i++) if (get_attr_value(&(op->stats), i) != 0) return 1; /* If it doesn't fall into any of the above categories, must * be non magical. */ return 0; } /** * This function really should not exist - by default, any item not identified * should need it. * * @param op * item to check. * @return * true if the item should be identified. * @todo * either remove this function, or fix comment above :) */ int need_identify(const object *op) { switch (op->type) { case RING: case WAND: case ROD: case SCROLL: case SKILL: case SKILLSCROLL: case SPELLBOOK: case FOOD: case POTION: case BOW: case ARROW: case WEAPON: case ARMOUR: case SHIELD: case HELMET: case AMULET: case BOOTS: case GLOVES: case BRACERS: case GIRDLE: case CONTAINER: case DRINK: case FLESH: case INORGANIC: case CLOSE_CON: case CLOAK: case GEM: case POWER_CRYSTAL: case POISON: case BOOK: case SKILL_TOOL: case ARMOUR_IMPROVER: case WEAPON_IMPROVER: return 1; } return 0; } /** * Ensure op has all its "identified" properties set. * @param op object to process. */ void object_give_identified_properties(object *op) { sstring key; key = object_get_value(op, "identified_face"); if (key != NULL) { op->face = &new_faces[find_face(key, op->face->number)]; /* if the face is defined, clean the animation, because else * the face can be lost ; if an animation is defined, it'll be * processed later on */ CLEAR_FLAG(op, FLAG_CLIENT_ANIM_RANDOM); CLEAR_FLAG(op, FLAG_CLIENT_ANIM_SYNC); op->anim_speed = 0; op->animation_id = 0; object_set_value(op, "identified_face", NULL, 0); } if (object_get_value(op, "identified_anim_random") != NULL) { SET_FLAG(op, FLAG_CLIENT_ANIM_RANDOM); object_set_value(op, "identified_anim_random", NULL, 0); } key = object_get_value(op, "identified_anim_speed"); if (key != NULL) { op->anim_speed = atoi(key); op->last_anim = 1; object_set_value(op, "identified_anim_speed", NULL, 0); } key = object_get_value(op, "identified_animation"); if (key != NULL) { op->animation_id = atoi(key); if (!QUERY_FLAG(op, FLAG_IS_TURNABLE)) SET_FLAG(op, FLAG_ANIMATE); animate_object(op, op->facing); object_set_value(op, "identified_animation", NULL, 0); } key = object_get_value(op, "identified_name"); if (key != NULL) { FREE_AND_COPY(op->name, key); object_set_value(op, "identified_name", NULL, 0); } key = object_get_value(op, "identified_name_pl"); if (key != NULL) { FREE_AND_COPY(op->name_pl, key); object_set_value(op, "identified_name_pl", NULL, 0); } } /** * Identifies an item. * Supposed to fix face-values as well here, but later. * Note - this may merge op with other object, so * this function returns either the merged object * or the original if no merge happened. * * @param op * item to identify. Can be already identified without ill effects. * @retval object * The identify object - this may vary from op if the object was * merged. */ object *identify(object *op) { object *pl, *op1; SET_FLAG(op, FLAG_IDENTIFIED); CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL); CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT); object_give_identified_properties(op); /* * We want autojoining of equal objects: */ if (QUERY_FLAG(op, FLAG_CURSED) || QUERY_FLAG(op, FLAG_DAMNED)) SET_FLAG(op, FLAG_KNOWN_CURSED); if (QUERY_FLAG(op, FLAG_BLESSED)) SET_FLAG(op, FLAG_KNOWN_BLESSED); if (op->type == POTION) { if (op->inv && op->randomitems) { if (op->title) free_string(op->title); op->title = add_refcount(op->inv->name); } else if (op->arch) { free_string(op->name); op->name = add_refcount(op->arch->clone.name); free_string(op->name_pl); op->name_pl = add_refcount(op->arch->clone.name_pl); } } if (op->map) { /* If the object is on a map, make sure we update its face. * Also send name and such information to a player standing on it. */ object *player = map_find_by_type(op->map, op->x, op->y, PLAYER); object_update(op, UP_OBJ_FACE); op1 = object_merge(op, GET_MAP_TOP(op->map, op->x, op->y)); if (op1) op = op1; if (player) esrv_update_item(UPD_FACE | UPD_NAME | UPD_FLAGS, player, op); } else { pl = object_get_player_container(op->env); op1 = object_merge(op, op->env->inv); if (op1) op = op1; if (pl) /* A lot of the values can change from an update - might as well send * it all. */ esrv_update_item(UPD_ALL, pl, op); } return op; } crossfire-1.70.0/common/loader.c0000644000014500000120000071521111731540241013411 00000000000000 #line 3 "loader.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart(yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart (FILE *input_file ); void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); void yy_delete_buffer (YY_BUFFER_STATE b ); void yy_flush_buffer (YY_BUFFER_STATE b ); void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); void yypop_buffer_state (void ); static void yyensure_buffer_stack (void ); static void yy_load_buffer_state (void ); static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); void yyfree (void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer(yyin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define yywrap(n) 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #define yytext_ptr yytext static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 253 #define YY_END_OF_BUFFER 254 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[2322] = { 0, 252, 252, 3, 3, 6, 6, 0, 0, 254, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 3, 3, 3, 6, 6, 6, 253, 253, 252, 252, 251, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 3, 3, 3, 3, 6, 6, 6, 6, 0, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 51, 51, 252, 52, 52, 3, 6, 50, 50, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 20, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 39, 39, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 1, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 41, 41, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 49, 49, 252, 252, 252, 252, 252, 252, 3, 6, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 36, 36, 252, 252, 34, 34, 252, 252, 252, 252, 252, 48, 48, 252, 252, 252, 33, 33, 252, 252, 252, 252, 45, 45, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 37, 37, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 4, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 19, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 38, 38, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 32, 32, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 35, 35, 113, 113, 252, 3, 6, 252, 252, 252, 252, 252, 15, 15, 252, 252, 252, 252, 252, 252, 252, 216, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 31, 31, 47, 47, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 118, 118, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 8, 8, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 53, 53, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 13, 13, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 56, 56, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 3, 6, 252, 70, 70, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 43, 43, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 54, 54, 252, 68, 68, 252, 252, 252, 252, 40, 40, 42, 42, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 218, 218, 252, 252, 252, 252, 252, 252, 252, 11, 11, 252, 141, 141, 252, 252, 252, 25, 25, 252, 252, 252, 252, 69, 69, 252, 252, 252, 30, 30, 252, 252, 252, 252, 252, 252, 60, 60, 252, 252, 252, 252, 252, 137, 137, 3, 2, 6, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 177, 177, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 178, 178, 252, 252, 252, 252, 252, 187, 187, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 7, 7, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 108, 108, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 107, 107, 188, 188, 72, 72, 252, 252, 252, 252, 61, 61, 252, 6, 5, 252, 252, 252, 252, 71, 71, 252, 252, 252, 252, 252, 204, 204, 179, 179, 252, 252, 208, 208, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 103, 103, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 22, 22, 252, 252, 252, 252, 252, 252, 84, 84, 252, 252, 252, 80, 80, 252, 252, 252, 9, 9, 85, 85, 252, 252, 125, 125, 252, 252, 74, 74, 252, 252, 252, 203, 203, 252, 252, 252, 252, 252, 252, 252, 120, 120, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 14, 14, 252, 252, 252, 252, 252, 252, 252, 175, 175, 57, 57, 252, 252, 252, 252, 114, 114, 252, 252, 252, 252, 252, 252, 252, 16, 16, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 95, 95, 252, 252, 252, 252, 252, 252, 252, 252, 252, 62, 62, 252, 101, 101, 252, 252, 174, 174, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 217, 217, 252, 252, 252, 88, 88, 252, 252, 252, 252, 252, 252, 252, 252, 198, 198, 252, 252, 138, 138, 192, 192, 252, 252, 252, 252, 193, 193, 252, 252, 252, 252, 252, 24, 24, 252, 252, 139, 139, 252, 252, 58, 58, 252, 44, 44, 252, 252, 81, 81, 252, 252, 252, 252, 252, 252, 252, 112, 112, 252, 202, 202, 252, 252, 252, 252, 252, 252, 252, 46, 46, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 119, 119, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 93, 93, 252, 252, 252, 252, 252, 252, 18, 18, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 206, 206, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 176, 176, 124, 124, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 55, 55, 252, 252, 212, 212, 89, 89, 252, 252, 252, 252, 252, 252, 67, 67, 252, 252, 252, 252, 252, 91, 91, 252, 252, 191, 191, 252, 252, 252, 252, 252, 21, 21, 252, 214, 214, 252, 252, 252, 82, 82, 252, 252, 79, 79, 86, 86, 87, 87, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 29, 29, 252, 252, 252, 102, 102, 252, 252, 117, 117, 252, 252, 252, 252, 252, 252, 123, 123, 252, 63, 63, 252, 92, 92, 252, 105, 105, 252, 252, 207, 207, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 99, 99, 190, 190, 252, 252, 252, 252, 252, 98, 98, 121, 121, 252, 252, 252, 23, 23, 252, 252, 78, 78, 77, 77, 252, 173, 173, 252, 252, 252, 252, 17, 17, 252, 252, 252, 252, 252, 252, 252, 100, 100, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 26, 26, 252, 104, 104, 252, 252, 210, 210, 252, 126, 126, 252, 252, 10, 10, 252, 252, 252, 252, 252, 252, 252, 132, 132, 252, 252, 252, 252, 252, 252, 252, 252, 252, 215, 215, 12, 12, 230, 230, 252, 252, 252, 228, 228, 252, 252, 252, 252, 252, 252, 252, 238, 238, 226, 226, 252, 252, 252, 252, 252, 252, 252, 252, 252, 235, 235, 252, 252, 252, 252, 252, 252, 197, 197, 252, 252, 252, 252, 73, 73, 252, 200, 200, 252, 97, 97, 252, 252, 252, 252, 252, 252, 252, 252, 140, 140, 143, 143, 252, 252, 66, 66, 252, 201, 201, 252, 252, 252, 252, 152, 152, 252, 252, 252, 150, 150, 252, 252, 252, 252, 252, 252, 252, 160, 160, 148, 148, 252, 252, 252, 252, 252, 252, 252, 252, 252, 157, 157, 252, 252, 252, 252, 213, 213, 252, 142, 142, 252, 252, 252, 252, 252, 252, 252, 185, 185, 252, 252, 252, 252, 252, 252, 135, 135, 252, 252, 252, 252, 211, 211, 252, 252, 246, 246, 252, 242, 242, 252, 252, 241, 241, 252, 252, 231, 231, 252, 252, 252, 252, 252, 252, 225, 225, 252, 252, 252, 252, 252, 220, 220, 252, 252, 252, 252, 252, 252, 252, 222, 222, 116, 116, 252, 182, 182, 252, 252, 59, 59, 252, 252, 252, 252, 64, 64, 252, 252, 252, 252, 252, 168, 168, 252, 164, 164, 252, 252, 163, 163, 252, 252, 153, 153, 252, 252, 252, 252, 252, 252, 147, 147, 252, 252, 252, 252, 252, 180, 180, 252, 223, 223, 109, 109, 252, 28, 28, 252, 252, 252, 252, 252, 252, 205, 205, 252, 252, 131, 131, 252, 252, 184, 184, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 234, 234, 252, 252, 252, 106, 106, 122, 122, 136, 136, 252, 252, 252, 183, 183, 181, 181, 252, 252, 115, 115, 252, 96, 96, 65, 65, 252, 252, 252, 111, 111, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 156, 156, 252, 252, 94, 94, 252, 252, 252, 252, 252, 129, 129, 209, 209, 252, 133, 133, 130, 130, 128, 128, 134, 134, 252, 252, 252, 252, 252, 240, 240, 249, 249, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 189, 189, 252, 196, 196, 252, 219, 219, 252, 252, 252, 252, 162, 162, 171, 171, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 172, 172, 199, 199, 252, 252, 252, 252, 252, 252, 233, 233, 244, 244, 245, 245, 247, 247, 252, 236, 236, 224, 224, 252, 252, 252, 252, 194, 194, 252, 252, 127, 127, 110, 110, 252, 252, 252, 252, 155, 155, 166, 166, 167, 167, 169, 169, 252, 158, 158, 146, 146, 252, 252, 252, 252, 144, 144, 252, 252, 75, 75, 252, 229, 229, 252, 252, 252, 252, 252, 252, 186, 186, 195, 195, 252, 252, 151, 151, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 221, 221, 83, 83, 252, 252, 252, 252, 252, 252, 252, 27, 27, 252, 76, 76, 252, 252, 227, 227, 252, 237, 237, 232, 232, 252, 252, 149, 149, 252, 159, 159, 154, 154, 90, 90, 145, 145, 239, 239, 243, 243, 252, 161, 161, 165, 165, 252, 248, 248, 170, 170, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1, 1, 1, 32, 33, 1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int32_t yy_meta[60] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int16_t yy_base[2703] = { 0, 0, 32, 89, 90, 91, 92, 93, 94, 4275, 0, 4276, 4271, 0, 123, 89, 172, 129, 171, 113, 128, 180, 172, 82, 224, 187, 217, 229, 239, 237, 284, 276, 163, 98, 305, 118, 4271, 0, 4, 137, 0, 5, 156, 4276, 6, 0, 4269, 4276, 10, 0, 244, 190, 191, 221, 271, 227, 232, 285, 278, 252, 321, 287, 289, 306, 325, 317, 313, 323, 327, 337, 342, 345, 334, 348, 337, 344, 340, 340, 355, 338, 339, 4269, 355, 342, 4237, 356, 351, 351, 354, 380, 373, 390, 415, 383, 388, 383, 378, 4236, 385, 392, 401, 400, 404, 390, 394, 412, 393, 439, 426, 404, 419, 442, 440, 450, 437, 435, 464, 467, 456, 461, 444, 461, 455, 494, 469, 466, 468, 4266, 500, 493, 4265, 487, 4264, 0, 11, 0, 485, 0, 12, 0, 503, 16, 4276, 4263, 499, 489, 501, 506, 512, 512, 521, 509, 511, 508, 509, 527, 507, 4231, 516, 521, 547, 538, 560, 526, 531, 562, 4261, 549, 563, 545, 545, 17, 571, 565, 568, 570, 573, 554, 578, 4229, 581, 4259, 571, 4258, 579, 616, 573, 564, 577, 594, 605, 615, 610, 614, 621, 4226, 624, 623, 613, 628, 629, 20, 630, 620, 670, 635, 639, 4225, 628, 661, 655, 667, 664, 667, 4255, 674, 678, 668, 675, 4223, 669, 4222, 676, 665, 686, 669, 678, 681, 4252, 691, 688, 708, 708, 4251, 707, 711, 718, 730, 727, 726, 729, 718, 735, 4219, 717, 4218, 4248, 723, 733, 729, 4247, 4246, 0, 4245, 717, 0, 4244, 730, 732, 0, 4243, 723, 741, 747, 740, 4242, 745, 749, 4210, 4209, 748, 746, 767, 4208, 804, 757, 774, 4238, 777, 772, 4237, 767, 784, 789, 786, 781, 4236, 791, 794, 787, 4235, 798, 782, 788, 803, 22, 4276, 4234, 784, 4233, 4232, 795, 803, 815, 4200, 833, 821, 839, 0, 4230, 822, 4229, 825, 833, 832, 835, 851, 842, 846, 848, 850, 840, 862, 4197, 846, 4196, 849, 845, 24, 4226, 862, 4194, 857, 858, 860, 863, 865, 870, 26, 4193, 28, 4276, 897, 877, 876, 897, 891, 900, 893, 892, 4223, 905, 902, 4191, 893, 901, 4190, 4189, 4188, 4218, 4217, 899, 911, 912, 900, 919, 916, 926, 910, 923, 917, 4185, 914, 933, 0, 4215, 942, 931, 948, 933, 949, 944, 4214, 932, 4182, 953, 940, 4212, 957, 965, 946, 959, 966, 965, 948, 0, 4211, 957, 965, 4179, 4209, 4208, 956, 957, 962, 977, 4207, 963, 969, 984, 4206, 989, 980, 992, 1001, 989, 1003, 990, 0, 1011, 1009, 1000, 1000, 1014, 1005, 1017, 1004, 1015, 1011, 0, 4205, 1017, 1007, 0, 4204, 1009, 1026, 1022, 1029, 1021, 0, 4203, 1034, 1040, 1030, 0, 4202, 1026, 1038, 1031, 1038, 0, 4201, 1051, 4200, 4199, 1060, 1064, 1050, 1050, 4198, 1064, 1067, 1062, 0, 4197, 1067, 1063, 1070, 1071, 1072, 1061, 1068, 1072, 1078, 1069, 1070, 1084, 1070, 1080, 1084, 4165, 1114, 4195, 1100, 105, 4276, 4194, 4193, 1093, 1102, 1105, 1119, 4192, 4191, 1119, 108, 4276, 1161, 4190, 1109, 1125, 1107, 1119, 1121, 1113, 1131, 1136, 1131, 1138, 4189, 1121, 1135, 1144, 4157, 1145, 1174, 1146, 1136, 0, 4187, 4186, 1145, 1173, 1156, 1157, 1159, 1179, 1174, 1175, 4185, 1179, 4184, 1181, 1187, 4152, 1199, 1177, 4151, 1193, 4181, 1180, 0, 4180, 1186, 1203, 4179, 1191, 4178, 1195, 1210, 1210, 1214, 1204, 4177, 1215, 1215, 1211, 1231, 0, 4176, 0, 4175, 4174, 1226, 1216, 1216, 4173, 1228, 1223, 1234, 0, 4172, 1242, 1228, 1233, 1234, 1240, 1249, 1232, 0, 1236, 1238, 1250, 1252, 1254, 1252, 1259, 1269, 1270, 1266, 1277, 1271, 4140, 1282, 1268, 1275, 4170, 4138, 4137, 4167, 1286, 1283, 1278, 4135, 1285, 4165, 0, 4164, 0, 4163, 1283, 1280, 4131, 1300, 4161, 1303, 1294, 1300, 1305, 1306, 1297, 1297, 1302, 1307, 1309, 1313, 1318, 1312, 1316, 1327, 1331, 1336, 1326, 1343, 1342, 1326, 1343, 1333, 4160, 1328, 0, 4159, 4158, 1337, 1332, 1359, 1358, 4157, 4156, 1344, 1351, 1353, 1361, 1374, 1345, 0, 4155, 1368, 1369, 1381, 1382, 1371, 4123, 1383, 1385, 1385, 1398, 1395, 0, 4153, 4152, 1381, 1382, 1403, 1380, 1386, 1402, 1407, 1389, 1400, 0, 4151, 1408, 4150, 1405, 1399, 4118, 1420, 4148, 1398, 1404, 4147, 1424, 4146, 1422, 1426, 1436, 4145, 1430, 1434, 1429, 1433, 4144, 1444, 1448, 1440, 4143, 1438, 0, 4142, 1452, 4141, 4140, 4139, 1444, 4138, 1434, 1441, 4137, 1446, 4136, 110, 1458, 1459, 0, 4135, 1453, 1467, 1467, 4134, 1454, 1450, 1464, 1463, 1466, 4133, 4132, 1478, 1473, 4131, 4099, 1493, 1492, 1479, 1486, 4098, 4097, 1492, 4096, 1497, 1508, 1502, 1503, 1506, 4126, 1498, 1561, 4125, 1504, 1499, 1502, 1511, 1503, 4124, 1494, 1505, 1523, 1527, 0, 4123, 1612, 4122, 1608, 1606, 1608, 1619, 1617, 1618, 1619, 1606, 1600, 1606, 1604, 1627, 4090, 1611, 1625, 1608, 1620, 1612, 1633, 1615, 1635, 1636, 4120, 0, 4119, 1633, 0, 4118, 1617, 1635, 1629, 1637, 0, 4117, 0, 4116, 4115, 1631, 1657, 1667, 4114, 1659, 1674, 1660, 4113, 4112, 1674, 1671, 4111, 1663, 1677, 4110, 1669, 1670, 1669, 4109, 4108, 1664, 1667, 4076, 1666, 1673, 1672, 1673, 4106, 1670, 1678, 0, 4105, 1677, 1712, 1754, 1669, 4104, 1672, 1687, 0, 4103, 4102, 0, 4101, 1675, 1693, 1691, 0, 4100, 1804, 1796, 1791, 1791, 0, 4099, 4098, 4097, 1790, 0, 4096, 1809, 1796, 4095, 4094, 4093, 1796, 0, 4092, 4091, 1792, 1799, 4090, 1803, 0, 4089, 112, 4276, 114, 4057, 1806, 1816, 1816, 4087, 4086, 1807, 1809, 1813, 1814, 4085, 4084, 1822, 4052, 4082, 1827, 1817, 1819, 1806, 4081, 1823, 1860, 4080, 1815, 4079, 1822, 1840, 4078, 1862, 1849, 0, 4077, 1867, 1866, 1858, 1872, 1866, 1860, 1872, 1877, 1859, 1862, 1873, 1885, 1915, 1879, 1896, 1913, 0, 4076, 1915, 1908, 1927, 1910, 1912, 0, 4075, 4074, 1910, 1911, 1922, 1907, 4073, 1928, 1929, 1930, 1916, 4072, 1936, 1920, 4071, 4070, 1938, 1926, 1939, 1921, 4069, 1939, 1942, 1943, 1934, 1965, 4068, 1970, 1962, 4067, 4066, 1968, 1960, 1982, 4065, 4064, 1966, 1979, 4063, 4062, 1960, 1964, 1980, 4061, 4060, 1975, 1982, 4059, 1976, 4058, 4057, 4025, 4055, 1982, 0, 4054, 4053, 1989, 1988, 1986, 1972, 1985, 1990, 4052, 4051, 1992, 1983, 1995, 1989, 2015, 2001, 1995, 2028, 2028, 2018, 2033, 2032, 2024, 2027, 2035, 2044, 2075, 2037, 2029, 2046, 4050, 0, 4049, 2044, 2034, 4048, 2049, 2037, 2059, 2057, 2077, 2076, 2077, 4047, 4046, 2075, 4045, 2073, 0, 4044, 0, 4043, 0, 4042, 2088, 4041, 2078, 2079, 0, 4040, 2084, 150, 4276, 2082, 4039, 2094, 2090, 0, 4038, 4037, 2095, 2079, 2077, 2094, 0, 4036, 0, 4035, 2082, 2087, 0, 4034, 2089, 2103, 2107, 4033, 4032, 2096, 2097, 2101, 2131, 2138, 2114, 4031, 2130, 4030, 2133, 2129, 4029, 4028, 4027, 2135, 2141, 2142, 2138, 2152, 2142, 2156, 2136, 2157, 2154, 2160, 2144, 2149, 2161, 2154, 2151, 2169, 2181, 2177, 2171, 2188, 2183, 2183, 2201, 2195, 4026, 4025, 2192, 2194, 4024, 4023, 4022, 2194, 2187, 3990, 0, 4020, 2205, 4019, 2206, 2206, 4018, 2210, 2198, 4017, 4016, 2212, 4015, 2203, 2201, 4014, 4013, 2200, 2200, 2201, 2212, 4012, 2217, 4011, 0, 4010, 4009, 2208, 4008, 4007, 2227, 4006, 0, 4005, 2208, 2233, 4004, 0, 4003, 2254, 2247, 4002, 0, 4001, 0, 4000, 3999, 3998, 0, 3997, 2252, 3996, 0, 3995, 2248, 3994, 2238, 0, 3993, 2257, 2253, 2250, 2249, 2259, 2253, 3992, 0, 3991, 2253, 2245, 2259, 2262, 2261, 2255, 2264, 2265, 2261, 2275, 2293, 2299, 2259, 2282, 2279, 2307, 2291, 2295, 2309, 2304, 2297, 2312, 2312, 2302, 2296, 2313, 2308, 2306, 2324, 3990, 2321, 2318, 0, 3989, 3988, 2324, 2316, 2311, 3987, 2320, 2318, 0, 3986, 0, 3985, 3984, 3983, 2330, 2326, 0, 3982, 2351, 2356, 2338, 2350, 3981, 3980, 2341, 0, 3979, 3978, 2361, 3977, 2364, 3976, 2354, 2358, 3975, 2371, 3974, 0, 3973, 3941, 2360, 2351, 2361, 2362, 2359, 2369, 2370, 2379, 0, 3971, 2368, 0, 3970, 2369, 2378, 0, 3969, 3968, 3967, 2380, 2382, 2373, 2385, 2375, 2391, 2390, 2398, 2397, 2407, 2415, 2412, 2419, 2407, 2421, 2408, 2412, 2404, 2425, 2426, 2423, 2432, 2415, 2416, 2413, 2423, 2422, 2434, 3966, 0, 3965, 2426, 2438, 3964, 0, 3963, 3962, 2428, 2425, 2466, 3961, 3960, 3959, 2442, 0, 3958, 2439, 2438, 0, 3957, 0, 3956, 2461, 3955, 2470, 3954, 0, 3953, 3952, 3951, 2457, 2472, 2475, 0, 3950, 3949, 3948, 0, 3947, 2472, 3946, 0, 3945, 2469, 0, 3944, 3943, 3942, 0, 3941, 3940, 2467, 3939, 3938, 3937, 3936, 2459, 0, 3935, 2482, 0, 3934, 2479, 2477, 3933, 2475, 2486, 2488, 2481, 0, 3932, 2475, 2490, 2491, 3931, 2479, 2494, 2496, 2488, 2504, 2493, 2520, 2523, 2517, 2512, 2521, 2529, 2528, 2535, 2521, 2535, 2522, 2526, 2518, 2539, 2540, 2537, 2546, 2529, 2530, 2527, 2537, 2537, 0, 3930, 2536, 2553, 3929, 2544, 2555, 3928, 3927, 2551, 3926, 3925, 0, 3924, 2542, 2560, 3923, 2580, 3922, 3890, 0, 3920, 3919, 3918, 3917, 2574, 3916, 2584, 3915, 2584, 2575, 3914, 2590, 0, 3913, 2590, 2580, 3912, 2589, 2590, 2583, 2594, 2588, 2585, 2597, 3880, 3910, 0, 3909, 0, 3908, 3907, 3906, 2599, 2599, 2586, 3905, 2585, 2587, 2601, 2605, 2610, 2598, 2594, 3904, 3903, 2599, 2605, 2613, 2623, 3871, 2640, 2632, 2636, 2631, 3901, 3869, 2634, 2632, 0, 3899, 2647, 2647, 0, 3898, 0, 3897, 2632, 3896, 2639, 2652, 2651, 3895, 0, 3894, 3893, 3892, 2652, 3891, 2653, 0, 3890, 3889, 3888, 0, 3887, 3886, 2654, 2656, 2660, 3885, 0, 3884, 2660, 0, 3883, 2660, 3882, 3881, 0, 3880, 2661, 3879, 0, 3878, 0, 3877, 0, 3876, 2662, 2663, 3875, 3874, 3873, 2655, 2671, 3872, 2671, 3871, 2679, 2688, 3870, 2680, 2688, 3869, 2697, 2697, 2686, 3868, 2685, 2687, 2700, 2704, 2709, 2697, 2692, 3867, 3866, 2693, 2699, 2692, 2698, 3834, 2714, 2706, 2710, 2706, 3864, 3832, 2707, 2718, 2712, 0, 3862, 3861, 2721, 3860, 0, 3859, 3858, 3857, 0, 3856, 2726, 3824, 3854, 2728, 3853, 2737, 0, 3852, 3851, 0, 3850, 2743, 0, 3849, 3848, 0, 3847, 2744, 2736, 0, 3846, 2747, 2760, 2741, 3845, 2758, 3844, 2752, 2753, 2754, 2752, 3843, 2750, 3842, 3841, 3840, 3839, 2758, 3838, 3837, 2752, 2767, 3836, 2753, 2755, 3835, 2757, 3834, 3833, 2769, 2755, 2764, 2766, 2763, 3832, 2762, 2785, 2790, 3831, 2788, 2797, 3830, 2803, 2795, 2796, 3829, 2794, 2800, 2810, 2819, 0, 3828, 0, 3827, 3826, 3825, 3824, 3823, 3822, 0, 3821, 0, 3820, 2817, 3819, 2810, 0, 3818, 2811, 3817, 0, 3816, 0, 3815, 2810, 0, 3814, 2807, 2812, 3813, 3812, 0, 3811, 2809, 3810, 3809, 2824, 3808, 2824, 2825, 0, 3807, 2822, 2821, 3806, 3805, 2822, 3804, 3803, 2816, 2831, 3802, 2818, 2824, 3801, 2826, 3800, 3799, 2852, 2842, 2852, 2854, 2850, 3798, 2845, 2870, 2860, 3797, 2854, 2862, 3796, 2872, 3795, 3794, 0, 3793, 3792, 0, 3791, 3790, 2863, 0, 3789, 2882, 0, 3788, 2859, 2876, 0, 3787, 2869, 3786, 2872, 2867, 3785, 2868, 2869, 0, 3784, 3783, 3782, 2877, 2886, 3781, 2877, 3780, 2891, 2869, 0, 3779, 0, 3778, 0, 3777, 3776, 2887, 3775, 0, 96, 2891, 2889, 101, 2911, 2916, 103, 2914, 0, 116, 0, 148, 2915, 2920, 2908, 2928, 2910, 152, 2905, 2931, 155, 0, 156, 2919, 2921, 158, 2930, 160, 163, 0, 193, 197, 2922, 2926, 2923, 0, 200, 210, 0, 229, 239, 0, 258, 265, 272, 281, 2935, 310, 2940, 315, 2922, 0, 406, 0, 410, 414, 420, 0, 460, 485, 0, 494, 2929, 2927, 2934, 599, 0, 646, 658, 2935, 701, 0, 703, 2939, 2932, 750, 2950, 2951, 788, 2954, 0, 790, 0, 795, 2963, 2972, 2961, 2979, 2961, 797, 2956, 2984, 798, 0, 800, 2972, 2974, 1108, 1137, 0, 1138, 1202, 0, 1369, 1532, 2974, 1533, 2977, 2971, 2980, 2973, 0, 1536, 1538, 1541, 1546, 2983, 1552, 1553, 0, 1554, 1556, 1557, 1558, 1696, 0, 1731, 2981, 2982, 0, 1732, 2996, 0, 1733, 2983, 2980, 0, 1734, 1735, 1736, 0, 1737, 2998, 2982, 2985, 3000, 2994, 3006, 0, 1738, 3007, 3007, 1739, 3024, 3032, 0, 1740, 3026, 1741, 1742, 1744, 3024, 3025, 3023, 0, 1745, 0, 1746, 1747, 0, 1748, 1749, 1750, 0, 1751, 3029, 1755, 1836, 1837, 0, 1891, 1930, 3022, 2011, 3038, 2051, 0, 2058, 3043, 0, 2257, 3030, 3027, 0, 2280, 2282, 2290, 0, 2885, 3045, 3029, 3032, 3047, 3040, 3048, 0, 3057, 3050, 3045, 3061, 3055, 3059, 0, 3065, 3070, 0, 3071, 0, 3078, 3054, 0, 3087, 3081, 3081, 3085, 3094, 3095, 3096, 0, 3097, 3098, 3099, 0, 3100, 3101, 3102, 0, 3103, 3104, 3098, 3100, 3084, 3091, 3090, 3110, 3111, 3100, 3113, 3114, 3115, 3116, 3114, 3119, 3122, 0, 3123, 3116, 3115, 3118, 0, 3127, 0, 3128, 0, 3129, 3115, 3131, 3115, 0, 3138, 0, 3139, 3141, 3119, 0, 3143, 3144, 0, 3145, 0, 3147, 3148, 3149, 3150, 0, 3151, 3132, 3139, 3138, 3159, 3161, 3150, 3163, 3164, 3165, 3166, 3163, 3168, 3169, 0, 3171, 3164, 3163, 0, 3174, 3165, 3167, 3177, 3174, 3179, 0, 3180, 0, 3181, 3182, 0, 3186, 0, 3187, 0, 3188, 0, 3189, 3173, 3192, 3181, 3194, 3188, 0, 3197, 0, 3198, 3176, 3202, 3205, 3207, 3208, 3194, 3210, 3211, 3208, 3201, 3193, 3215, 3216, 3217, 0, 3218, 3192, 0, 3222, 3223, 0, 3225, 3226, 3216, 3229, 3222, 0, 3231, 0, 3232, 3210, 3234, 3235, 3236, 3238, 3224, 3243, 3244, 3241, 3234, 3239, 3226, 3250, 3229, 0, 3252, 0, 3253, 3238, 3255, 3239, 3259, 3245, 3234, 0, 3263, 0, 3264, 0, 3265, 0, 3266, 3256, 0, 3269, 0, 3270, 3264, 3266, 3276, 3278, 0, 3280, 3281, 3283, 0, 3284, 0, 3286, 3269, 3289, 3276, 3264, 0, 3293, 0, 3294, 0, 3295, 0, 3297, 3286, 0, 3301, 0, 3302, 3296, 3298, 3288, 3306, 0, 3307, 3300, 3309, 0, 3310, 3294, 0, 3312, 3298, 3314, 3299, 3317, 3318, 3321, 0, 3322, 0, 3323, 3324, 3308, 0, 3327, 3313, 3329, 3313, 3334, 3335, 3337, 3338, 3340, 3342, 3343, 3345, 3346, 3337, 3348, 3349, 0, 3350, 0, 3351, 3352, 3354, 3355, 3347, 3359, 3360, 3361, 0, 3362, 3363, 0, 3364, 3365, 3366, 0, 3367, 3368, 0, 3369, 0, 3370, 3371, 3372, 0, 3373, 3374, 0, 3376, 0, 3377, 0, 3378, 0, 3379, 0, 3380, 0, 3381, 3382, 0, 3383, 0, 3384, 3386, 0, 3387, 0, 3388, 4276, 3390, 3392, 3394, 3396, 3398, 3399, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775 } ; static yyconst flex_int16_t yy_def[2703] = { 0, 2322, 2321, 2323, 2323, 2324, 2324, 2325, 2325, 2321, 2326, 2321, 2327, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2328, 2328, 2328, 2329, 2329, 2329, 2321, 2321, 2326, 2327, 2321, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2330, 2326, 2331, 2328, 2328, 2328, 2328, 2329, 2329, 2329, 2329, 2321, 2321, 2332, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2333, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2334, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2335, 2326, 2326, 2326, 2326, 2326, 2330, 2330, 2326, 2331, 2331, 2328, 2329, 2332, 2332, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2336, 2326, 2326, 2337, 2326, 2326, 2326, 2326, 2326, 2338, 2326, 2326, 2326, 2339, 2326, 2326, 2326, 2326, 2326, 2321, 2340, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2333, 2333, 2326, 2341, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2321, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2342, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2334, 2334, 2326, 2326, 2326, 2326, 2326, 2326, 2343, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2335, 2335, 2326, 2326, 2326, 2344, 2345, 2326, 2328, 2329, 2326, 2326, 2326, 2326, 2326, 2346, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2347, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2336, 2336, 2326, 2326, 2337, 2337, 2326, 2326, 2326, 2326, 2326, 2338, 2338, 2326, 2326, 2326, 2339, 2339, 2326, 2326, 2326, 2326, 2340, 2340, 2326, 2348, 2349, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2341, 2341, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2321, 2350, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2321, 2326, 2351, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2352, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2342, 2342, 2353, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2343, 2343, 2326, 2326, 2326, 2326, 2354, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2344, 2344, 2345, 2345, 2326, 2328, 2329, 2326, 2355, 2326, 2326, 2326, 2346, 2346, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2347, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2348, 2348, 2349, 2349, 2326, 2326, 2326, 2326, 2356, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2357, 2326, 2350, 2350, 2358, 2326, 2326, 2326, 2326, 2359, 2360, 2326, 2326, 2326, 2326, 2326, 2326, 2351, 2351, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2352, 2352, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2353, 2353, 2326, 2361, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2362, 2326, 2363, 2326, 2326, 2326, 2364, 2326, 2326, 2326, 2326, 2365, 2326, 2326, 2326, 2366, 2326, 2354, 2354, 2326, 2326, 2326, 2326, 2326, 2367, 2326, 2326, 2326, 2326, 2368, 2328, 2329, 2326, 2355, 2355, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2369, 2326, 2321, 2370, 2326, 2326, 2326, 2326, 2326, 2371, 2326, 2326, 2326, 2326, 2356, 2356, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2357, 2357, 2326, 2358, 2358, 2326, 2326, 2326, 2326, 2359, 2359, 2360, 2360, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2372, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2361, 2361, 2326, 2326, 2321, 2326, 2373, 2326, 2326, 2362, 2362, 2326, 2363, 2363, 2326, 2326, 2326, 2364, 2364, 2326, 2326, 2326, 2326, 2365, 2365, 2326, 2326, 2326, 2366, 2366, 2326, 2326, 2374, 2375, 2376, 2326, 2367, 2367, 2326, 2326, 2326, 2377, 2326, 2368, 2368, 2328, 2321, 2329, 2326, 2326, 2326, 2326, 2378, 2326, 2326, 2326, 2326, 2326, 2379, 2380, 2326, 2326, 2381, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2369, 2369, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2370, 2370, 2326, 2326, 2326, 2326, 2326, 2371, 2371, 2326, 2326, 2326, 2326, 2326, 2382, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2383, 2326, 2326, 2326, 2326, 2326, 2384, 2326, 2326, 2326, 2385, 2326, 2326, 2326, 2386, 2387, 2326, 2326, 2388, 2326, 2326, 2389, 2326, 2326, 2326, 2372, 2372, 2390, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2391, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2373, 2373, 2326, 2326, 2392, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2393, 2394, 2326, 2326, 2326, 2374, 2374, 2375, 2375, 2376, 2376, 2326, 2395, 2326, 2326, 2377, 2377, 2326, 2329, 2321, 2326, 2326, 2326, 2326, 2378, 2378, 2396, 2326, 2326, 2326, 2326, 2379, 2379, 2380, 2380, 2326, 2326, 2381, 2381, 2326, 2326, 2326, 2326, 2397, 2326, 2326, 2326, 2326, 2326, 2326, 2398, 2326, 2399, 2326, 2326, 2400, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2401, 2326, 2326, 2326, 2402, 2326, 2326, 2326, 2326, 2382, 2382, 2326, 2326, 2326, 2326, 2403, 2326, 2326, 2404, 2405, 2326, 2326, 2326, 2326, 2406, 2326, 2326, 2326, 2326, 2326, 2407, 2326, 2326, 2408, 2408, 2409, 2326, 2326, 2410, 2326, 2411, 2412, 2412, 2326, 2326, 2413, 2414, 2414, 2326, 2326, 2326, 2415, 2415, 2416, 2416, 2326, 2326, 2417, 2417, 2326, 2418, 2419, 2419, 2326, 2420, 2326, 2421, 2421, 2326, 2326, 2326, 2326, 2326, 2326, 2422, 2423, 2423, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2424, 2326, 2326, 2425, 2425, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2426, 2426, 2427, 2427, 2326, 2428, 2326, 2326, 2429, 2429, 2326, 2326, 2326, 2326, 2430, 2326, 2326, 2431, 2431, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2432, 2433, 2433, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2434, 2434, 2326, 2435, 2435, 2326, 2326, 2436, 2436, 2437, 2438, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2439, 2440, 2440, 2326, 2326, 2441, 2442, 2442, 2443, 2326, 2326, 2326, 2326, 2444, 2326, 2326, 2445, 2445, 2326, 2326, 2446, 2446, 2447, 2447, 2326, 2448, 2326, 2326, 2449, 2449, 2450, 2326, 2326, 2326, 2326, 2451, 2451, 2326, 2452, 2453, 2453, 2326, 2454, 2455, 2455, 2326, 2456, 2456, 2326, 2326, 2457, 2457, 2458, 2326, 2326, 2459, 2460, 2461, 2326, 2462, 2462, 2326, 2463, 2463, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2464, 2464, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2465, 2465, 2326, 2326, 2466, 2326, 2326, 2326, 2467, 2326, 2326, 2468, 2469, 2469, 2326, 2326, 2326, 2326, 2326, 2326, 2470, 2470, 2471, 2326, 2472, 2326, 2473, 2326, 2474, 2326, 2326, 2475, 2326, 2476, 2476, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2477, 2477, 2478, 2478, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2479, 2479, 2326, 2326, 2480, 2480, 2481, 2481, 2326, 2326, 2326, 2326, 2326, 2482, 2483, 2483, 2484, 2326, 2326, 2326, 2326, 2485, 2485, 2326, 2486, 2487, 2487, 2488, 2326, 2326, 2326, 2489, 2490, 2490, 2326, 2491, 2491, 2326, 2492, 2493, 2494, 2494, 2326, 2495, 2496, 2496, 2497, 2497, 2498, 2498, 2326, 2326, 2326, 2326, 2499, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2500, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2501, 2501, 2326, 2326, 2502, 2503, 2503, 2326, 2504, 2505, 2505, 2326, 2326, 2506, 2326, 2507, 2326, 2508, 2508, 2509, 2510, 2510, 2326, 2511, 2511, 2326, 2512, 2512, 2326, 2326, 2513, 2513, 2326, 2326, 2326, 2514, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2515, 2516, 2517, 2326, 2326, 2326, 2518, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2519, 2520, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2521, 2326, 2326, 2326, 2326, 2326, 2326, 2522, 2326, 2326, 2326, 2326, 2523, 2523, 2524, 2524, 2525, 2326, 2526, 2326, 2527, 2528, 2528, 2529, 2529, 2326, 2326, 2326, 2530, 2530, 2326, 2326, 2531, 2531, 2532, 2532, 2326, 2533, 2533, 2326, 2326, 2534, 2535, 2536, 2536, 2326, 2326, 2537, 2326, 2538, 2326, 2326, 2539, 2539, 2326, 2326, 2540, 2326, 2326, 2326, 2541, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2542, 2543, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2544, 2326, 2326, 2326, 2326, 2545, 2326, 2546, 2546, 2547, 2548, 2548, 2326, 2326, 2549, 2549, 2326, 2550, 2550, 2326, 2326, 2551, 2551, 2326, 2552, 2326, 2326, 2326, 2326, 2326, 2553, 2553, 2326, 2554, 2326, 2326, 2326, 2326, 2555, 2326, 2326, 2556, 2556, 2557, 2557, 2558, 2558, 2559, 2326, 2560, 2561, 2561, 2326, 2326, 2562, 2326, 2326, 2563, 2326, 2564, 2564, 2565, 2565, 2326, 2326, 2326, 2326, 2326, 2566, 2326, 2326, 2326, 2567, 2567, 2326, 2326, 2568, 2326, 2326, 2326, 2569, 2569, 2326, 2326, 2326, 2326, 2570, 2570, 2571, 2572, 2572, 2573, 2574, 2574, 2326, 2575, 2326, 2326, 2576, 2326, 2326, 2326, 2577, 2577, 2578, 2578, 2326, 2579, 2580, 2580, 2326, 2581, 2581, 2326, 2326, 2326, 2326, 2582, 2582, 2583, 2326, 2584, 2585, 2585, 2326, 2326, 2586, 2326, 2326, 2587, 2326, 2588, 2588, 2589, 2589, 2326, 2326, 2326, 2326, 2326, 2590, 2326, 2326, 2326, 2591, 2591, 2326, 2326, 2592, 2326, 2593, 2593, 2594, 2595, 2595, 2596, 2326, 2597, 2326, 2326, 2326, 2326, 2598, 2598, 2326, 2326, 2599, 2326, 2326, 2600, 2601, 2601, 2326, 2326, 2602, 2326, 2603, 2603, 2326, 2326, 2604, 2604, 2326, 2605, 2605, 2326, 2326, 2606, 2606, 2326, 2326, 2607, 2607, 2326, 2326, 2326, 2326, 2326, 2326, 2608, 2608, 2326, 2326, 2609, 2326, 2326, 2610, 2610, 2326, 2611, 2612, 2613, 2326, 2326, 2326, 2614, 2614, 2615, 2615, 2616, 2617, 2617, 2618, 2326, 2619, 2619, 2326, 2620, 2326, 2621, 2622, 2622, 2623, 2326, 2326, 2326, 2624, 2625, 2625, 2326, 2626, 2626, 2326, 2326, 2627, 2627, 2326, 2326, 2628, 2628, 2326, 2326, 2326, 2326, 2326, 2326, 2629, 2629, 2326, 2326, 2630, 2326, 2326, 2631, 2631, 2632, 2633, 2633, 2634, 2634, 2326, 2635, 2635, 2326, 2326, 2326, 2326, 2636, 2637, 2638, 2638, 2326, 2639, 2640, 2640, 2641, 2642, 2643, 2643, 2644, 2326, 2326, 2326, 2326, 2326, 2645, 2646, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2647, 2647, 2326, 2326, 2326, 2648, 2648, 2649, 2649, 2650, 2650, 2326, 2326, 2326, 2651, 2651, 2652, 2652, 2653, 2326, 2654, 2654, 2655, 2656, 2656, 2657, 2657, 2326, 2658, 2326, 2659, 2659, 2326, 2326, 2326, 2660, 2661, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2326, 2630, 2630, 2326, 2326, 2632, 2632, 2326, 2326, 2326, 2326, 2662, 2636, 2636, 2637, 2637, 2663, 2639, 2639, 2641, 2641, 2642, 2642, 2644, 2644, 2326, 2326, 2326, 2326, 2326, 2645, 2645, 2646, 2646, 2326, 2664, 2665, 2666, 2667, 2326, 2668, 2669, 2326, 2326, 2326, 2326, 2670, 2326, 2653, 2653, 2326, 2655, 2655, 2671, 2658, 2658, 2672, 2326, 2326, 2326, 2660, 2660, 2661, 2661, 2326, 2673, 2674, 2675, 2676, 2326, 2677, 2678, 2326, 2326, 2326, 2326, 2679, 2326, 2662, 2662, 2663, 2663, 2326, 2680, 2326, 2681, 2326, 2326, 2664, 2664, 2665, 2665, 2666, 2666, 2667, 2667, 2326, 2668, 2668, 2669, 2669, 2326, 2326, 2326, 2682, 2670, 2670, 2683, 2326, 2671, 2671, 2672, 2672, 2326, 2684, 2326, 2326, 2673, 2673, 2674, 2674, 2675, 2675, 2676, 2676, 2326, 2677, 2677, 2678, 2678, 2326, 2326, 2326, 2326, 2679, 2679, 2326, 2326, 2680, 2680, 2326, 2681, 2681, 2326, 2326, 2326, 2326, 2326, 2685, 2682, 2682, 2683, 2683, 2686, 2326, 2684, 2684, 2326, 2326, 2326, 2326, 2326, 2326, 2687, 2326, 2688, 2326, 2326, 2689, 2326, 2690, 2691, 2685, 2685, 2686, 2686, 2326, 2326, 2692, 2326, 2693, 2694, 2695, 2687, 2687, 2696, 2688, 2688, 2697, 2698, 2689, 2689, 2326, 2690, 2690, 2691, 2691, 2699, 2700, 2692, 2692, 2326, 2693, 2693, 2694, 2694, 2695, 2695, 2696, 2696, 2697, 2697, 2698, 2698, 2701, 2699, 2699, 2700, 2700, 2702, 2701, 2701, 2702, 2702, 0, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321 } ; static yyconst flex_int16_t yy_nxt[4336] = { 0, 2321, 48, 11, 12, 49, 134, 138, 141, 135, 139, 142, 48, 134, 138, 49, 135, 139, 141, 295, 296, 142, 340, 341, 295, 296, 485, 486, 496, 497, 340, 341, 13, 10, 10, 11, 12, 10, 14, 15, 16, 17, 18, 19, 20, 21, 22, 10, 23, 24, 25, 26, 27, 28, 10, 29, 30, 31, 32, 33, 34, 35, 36, 10, 13, 10, 14, 15, 16, 17, 18, 19, 20, 21, 22, 10, 23, 24, 25, 26, 27, 28, 10, 29, 30, 31, 32, 33, 34, 35, 36, 10, 11, 11, 11, 11, 11, 11, 1799, 57, 39, 86, 42, 1936, 125, 1940, 58, 485, 486, 59, 496, 497, 885, 886, 885, 886, 1060, 1061, 1808, 73, 130, 38, 38, 41, 41, 44, 44, 57, 39, 86, 42, 50, 125, 74, 58, 65, 75, 59, 76, 66, 51, 131, 52, 67, 53, 77, 54, 73, 55, 56, 1810, 78, 1060, 1061, 1948, 68, 136, 1951, 1821, 50, 1955, 74, 1957, 65, 75, 1958, 76, 66, 51, 131, 52, 67, 53, 77, 54, 140, 55, 56, 60, 78, 69, 82, 123, 68, 136, 61, 79, 124, 70, 62, 71, 83, 63, 92, 80, 1829, 84, 85, 64, 1959, 72, 81, 1835, 140, 145, 146, 60, 93, 69, 82, 123, 94, 1964, 61, 79, 124, 70, 62, 71, 83, 63, 92, 80, 95, 84, 85, 64, 96, 72, 81, 87, 1838, 145, 146, 88, 93, 99, 97, 89, 94, 98, 1966, 147, 107, 90, 103, 143, 108, 100, 104, 91, 95, 150, 105, 101, 96, 102, 151, 87, 106, 1841, 156, 88, 109, 99, 97, 89, 1967, 98, 144, 147, 107, 90, 103, 1969, 108, 100, 104, 91, 148, 150, 105, 101, 1970, 102, 151, 119, 106, 154, 156, 120, 109, 110, 160, 111, 152, 149, 144, 155, 121, 112, 113, 114, 161, 115, 116, 122, 148, 153, 117, 118, 126, 1973, 127, 119, 128, 154, 1975, 120, 129, 110, 160, 111, 152, 149, 162, 155, 121, 112, 113, 114, 161, 115, 116, 122, 165, 153, 117, 118, 126, 157, 127, 166, 128, 158, 159, 167, 129, 163, 164, 168, 169, 170, 162, 171, 172, 173, 174, 175, 176, 177, 178, 179, 165, 180, 182, 186, 183, 157, 184, 166, 187, 158, 159, 167, 188, 163, 164, 168, 169, 170, 189, 171, 172, 173, 174, 175, 176, 177, 178, 179, 190, 180, 182, 186, 183, 191, 184, 192, 187, 201, 202, 198, 188, 203, 205, 199, 206, 1851, 189, 200, 207, 1853, 209, 210, 211, 1977, 212, 208, 190, 213, 214, 1979, 219, 191, 220, 192, 193, 201, 202, 198, 194, 203, 205, 199, 206, 195, 217, 200, 207, 196, 209, 210, 211, 197, 212, 208, 215, 213, 214, 218, 219, 221, 220, 222, 193, 223, 226, 216, 194, 224, 227, 1857, 234, 195, 217, 228, 235, 196, 236, 225, 237, 197, 231, 229, 215, 238, 232, 218, 243, 221, 230, 222, 244, 223, 226, 216, 1980, 224, 227, 233, 234, 245, 254, 257, 235, 1860, 236, 225, 237, 239, 231, 229, 240, 238, 232, 247, 243, 241, 230, 249, 244, 258, 261, 248, 242, 262, 250, 233, 263, 245, 254, 257, 264, 251, 265, 266, 267, 239, 268, 269, 240, 270, 271, 247, 272, 241, 273, 249, 275, 258, 261, 248, 242, 262, 250, 276, 263, 279, 277, 284, 264, 251, 265, 266, 267, 285, 268, 269, 291, 270, 271, 280, 272, 286, 273, 278, 275, 287, 292, 293, 281, 294, 297, 276, 299, 279, 300, 284, 282, 301, 288, 304, 302, 285, 283, 305, 291, 307, 298, 310, 323, 324, 312, 278, 289, 287, 292, 293, 281, 294, 1984, 325, 299, 326, 300, 303, 282, 301, 288, 304, 302, 313, 283, 305, 327, 307, 298, 310, 323, 324, 312, 314, 315, 316, 328, 329, 317, 330, 318, 325, 331, 326, 319, 333, 334, 335, 337, 338, 339, 342, 320, 321, 327, 322, 343, 350, 336, 1866, 351, 314, 315, 316, 328, 329, 317, 330, 318, 353, 331, 1986, 319, 333, 334, 335, 337, 338, 339, 342, 320, 321, 354, 322, 343, 350, 336, 344, 351, 355, 345, 356, 346, 357, 358, 360, 363, 353, 361, 347, 364, 362, 348, 366, 368, 349, 369, 370, 371, 372, 354, 373, 376, 377, 1989, 344, 1871, 355, 345, 356, 346, 357, 358, 360, 363, 381, 361, 347, 364, 362, 348, 366, 368, 349, 369, 370, 371, 372, 378, 373, 376, 377, 379, 383, 380, 384, 385, 386, 387, 388, 389, 390, 391, 381, 393, 397, 398, 399, 402, 403, 404, 405, 406, 1993, 407, 409, 378, 411, 412, 415, 379, 383, 380, 384, 385, 386, 387, 388, 389, 390, 391, 416, 393, 397, 398, 399, 402, 403, 404, 405, 406, 408, 407, 409, 417, 411, 412, 415, 427, 428, 431, 1997, 432, 1880, 435, 436, 437, 438, 1882, 416, 2005, 2008, 439, 1893, 442, 443, 444, 447, 448, 449, 450, 453, 417, 419, 420, 456, 427, 428, 431, 421, 432, 422, 435, 436, 437, 438, 423, 457, 424, 425, 439, 426, 442, 443, 444, 447, 448, 449, 450, 453, 458, 419, 420, 456, 460, 461, 462, 421, 463, 422, 466, 467, 468, 469, 423, 457, 424, 425, 471, 426, 472, 473, 470, 474, 475, 477, 481, 483, 458, 478, 484, 488, 460, 461, 462, 490, 463, 476, 466, 467, 468, 469, 491, 479, 492, 493, 471, 494, 472, 473, 470, 474, 475, 477, 481, 483, 495, 478, 484, 488, 499, 501, 502, 490, 503, 476, 505, 506, 507, 508, 491, 479, 492, 493, 511, 494, 512, 514, 509, 515, 522, 504, 523, 524, 495, 525, 526, 527, 530, 501, 502, 500, 503, 528, 505, 506, 507, 508, 531, 532, 534, 529, 511, 535, 512, 514, 509, 515, 522, 504, 523, 524, 536, 525, 526, 527, 530, 537, 538, 539, 540, 528, 541, 544, 546, 547, 531, 532, 534, 529, 549, 535, 550, 551, 552, 553, 554, 555, 556, 557, 536, 563, 564, 565, 566, 537, 538, 539, 540, 568, 541, 544, 546, 547, 569, 570, 573, 574, 549, 575, 550, 551, 552, 553, 554, 555, 556, 557, 576, 563, 564, 565, 566, 577, 578, 579, 583, 568, 581, 584, 585, 586, 569, 570, 573, 574, 587, 575, 588, 589, 590, 591, 592, 593, 594, 595, 576, 596, 582, 597, 598, 577, 578, 579, 583, 599, 581, 584, 585, 586, 600, 601, 602, 603, 587, 604, 588, 589, 590, 591, 592, 593, 594, 595, 605, 596, 582, 597, 598, 606, 611, 612, 613, 599, 614, 616, 617, 618, 600, 601, 602, 603, 619, 604, 620, 621, 622, 623, 624, 625, 626, 627, 605, 628, 629, 630, 631, 606, 611, 612, 613, 632, 614, 616, 617, 618, 633, 640, 644, 645, 619, 2012, 620, 621, 622, 623, 624, 625, 626, 627, 646, 628, 629, 630, 631, 635, 647, 636, 637, 632, 650, 658, 659, 660, 633, 640, 644, 645, 661, 638, 2013, 1899, 662, 663, 664, 665, 666, 671, 646, 667, 672, 673, 675, 635, 647, 636, 637, 679, 650, 658, 659, 660, 668, 680, 683, 686, 661, 638, 651, 652, 662, 663, 664, 665, 666, 671, 684, 667, 672, 673, 675, 676, 653, 687, 677, 679, 654, 655, 688, 689, 668, 680, 683, 686, 690, 691, 651, 652, 678, 693, 695, 696, 698, 700, 702, 2015, 704, 685, 705, 676, 653, 687, 677, 706, 654, 655, 688, 689, 708, 711, 712, 713, 690, 691, 714, 715, 678, 693, 695, 696, 717, 700, 702, 699, 704, 718, 705, 719, 720, 722, 723, 706, 724, 727, 730, 728, 708, 711, 712, 713, 729, 731, 714, 715, 732, 734, 735, 736, 717, 737, 738, 739, 733, 718, 740, 719, 720, 722, 723, 741, 724, 727, 730, 728, 742, 743, 744, 745, 729, 731, 746, 747, 732, 734, 735, 736, 748, 737, 738, 739, 749, 750, 740, 752, 753, 754, 759, 741, 760, 761, 763, 765, 742, 743, 744, 745, 766, 768, 746, 747, 771, 772, 773, 774, 748, 775, 776, 777, 749, 750, 778, 752, 753, 754, 759, 779, 760, 761, 763, 765, 780, 781, 782, 783, 766, 768, 784, 785, 771, 772, 773, 774, 786, 775, 776, 777, 787, 788, 778, 792, 793, 789, 790, 779, 794, 795, 798, 801, 780, 781, 782, 783, 791, 802, 784, 785, 803, 804, 809, 810, 786, 811, 1902, 812, 787, 788, 816, 792, 793, 789, 790, 813, 794, 795, 798, 801, 817, 818, 819, 820, 791, 802, 814, 821, 803, 804, 809, 810, 823, 811, 815, 812, 824, 825, 816, 826, 827, 829, 830, 813, 831, 832, 833, 834, 817, 818, 819, 820, 835, 836, 814, 821, 837, 838, 842, 843, 823, 845, 815, 847, 824, 825, 848, 826, 827, 829, 830, 851, 831, 832, 833, 834, 839, 854, 855, 856, 835, 836, 859, 860, 837, 838, 842, 843, 861, 845, 862, 847, 865, 866, 848, 867, 870, 871, 875, 851, 878, 879, 882, 887, 888, 854, 855, 856, 889, 880, 859, 860, 890, 891, 893, 894, 861, 895, 862, 896, 865, 866, 897, 867, 870, 871, 875, 900, 878, 879, 882, 887, 888, 901, 904, 905, 889, 906, 907, 910, 890, 891, 893, 894, 912, 895, 915, 896, 916, 913, 897, 917, 920, 938, 939, 900, 940, 941, 942, 945, 946, 901, 904, 905, 947, 906, 907, 910, 914, 2017, 2020, 948, 912, 1911, 915, 2025, 916, 913, 2026, 917, 920, 938, 939, 2028, 940, 941, 942, 945, 946, 2030, 2032, 1919, 947, 2033, 2034, 2036, 914, 45, 45, 948, 45, 45, 921, 922, 923, 924, 925, 926, 927, 928, 929, 45, 45, 930, 931, 45, 45, 932, 45, 45, 933, 934, 45, 45, 935, 45, 45, 45, 45, 45, 921, 922, 923, 924, 925, 926, 927, 928, 929, 45, 45, 930, 931, 45, 45, 932, 45, 45, 933, 934, 45, 45, 935, 45, 45, 45, 949, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 964, 965, 966, 967, 968, 969, 970, 971, 972, 974, 975, 976, 977, 978, 980, 949, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 964, 965, 966, 967, 968, 969, 970, 971, 972, 974, 975, 976, 977, 978, 980, 981, 982, 984, 985, 986, 989, 990, 992, 993, 995, 996, 997, 1001, 1002, 1004, 1005, 1006, 1007, 1009, 1010, 1011, 2037, 1029, 1032, 1033, 1035, 1036, 1037, 981, 982, 984, 985, 986, 989, 990, 992, 993, 995, 996, 997, 1001, 1002, 1004, 1005, 1006, 1007, 1009, 1010, 1011, 1012, 1029, 1032, 1033, 1035, 1036, 1037, 1925, 1929, 1932, 1936, 2043, 2044, 1940, 1948, 2054, 1955, 2059, 2061, 1013, 2063, 1964, 1966, 2068, 1969, 2070, 2071, 1973, 1012, 45, 45, 2074, 45, 45, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 45, 45, 1023, 1024, 45, 45, 1025, 45, 45, 1026, 1027, 45, 45, 1028, 45, 45, 45, 45, 45, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 45, 45, 1023, 1024, 45, 45, 1025, 45, 45, 1026, 1027, 45, 45, 1028, 45, 45, 45, 1038, 1039, 1040, 1041, 1044, 1045, 1046, 1053, 1055, 1056, 1059, 1063, 1064, 1065, 1069, 1070, 1071, 1072, 1077, 1081, 1082, 1083, 1084, 1086, 2075, 2077, 1093, 1095, 1038, 1039, 1040, 1041, 1044, 1045, 1046, 1053, 1055, 1056, 1059, 1063, 1064, 1065, 1069, 1070, 1071, 1072, 1077, 1081, 1082, 1083, 1084, 1086, 1087, 1088, 1093, 1095, 1096, 1098, 1099, 1100, 1101, 1102, 1106, 1109, 1103, 1114, 1107, 1115, 1110, 1089, 1090, 1104, 1111, 1116, 1091, 1108, 1112, 1117, 1105, 1979, 1087, 1088, 1121, 1113, 1096, 1098, 1099, 1100, 1101, 1102, 1106, 1109, 1103, 1114, 1107, 1115, 1110, 1089, 1090, 1104, 1111, 1116, 1091, 1108, 1112, 1117, 1105, 1118, 1122, 1123, 1121, 1113, 1124, 1125, 1119, 1126, 1128, 1129, 2079, 1131, 1132, 1120, 1133, 1134, 1137, 1138, 1139, 1140, 1142, 1143, 1146, 1147, 1148, 1149, 1151, 1118, 1122, 1123, 1152, 1153, 1124, 1125, 1119, 1154, 1128, 1129, 1127, 1131, 1132, 1120, 1133, 1134, 1137, 1138, 1139, 1140, 1142, 1143, 1146, 1147, 1148, 1149, 1151, 1155, 1157, 1158, 1152, 1153, 1162, 1163, 1164, 1154, 1169, 1170, 1174, 1175, 1176, 1181, 1182, 1185, 1191, 1194, 1195, 1196, 1197, 1198, 1199, 1165, 1203, 1204, 1205, 1155, 1157, 1158, 1206, 1209, 1162, 1163, 1210, 2081, 1169, 1170, 1174, 1175, 1176, 1181, 1182, 1185, 1191, 1194, 1195, 1196, 1197, 1198, 1199, 1165, 1203, 1204, 1205, 1207, 1211, 1217, 1206, 1209, 1214, 1208, 1210, 1212, 1215, 1218, 1222, 1220, 1223, 1219, 1213, 1224, 1225, 1216, 1221, 2084, 1229, 1230, 1231, 1233, 1234, 1237, 1986, 1207, 1211, 1217, 1238, 1239, 1214, 1208, 1240, 1212, 1215, 1218, 1222, 1220, 1223, 1219, 1213, 1224, 1225, 1216, 1221, 1226, 1229, 1230, 1231, 1233, 1234, 1237, 1227, 1241, 1242, 1243, 1238, 1239, 1248, 1228, 1240, 1250, 1251, 1254, 1255, 1256, 1257, 1259, 1260, 1263, 1264, 1265, 1266, 1226, 1267, 1268, 1269, 1270, 1271, 1275, 1227, 1241, 1242, 1243, 1276, 1277, 1248, 1228, 1283, 1250, 1251, 1254, 1255, 1256, 1257, 1259, 1260, 1263, 1264, 1265, 1266, 1278, 1267, 1268, 1269, 1270, 1271, 1275, 1286, 1279, 1280, 1289, 1276, 1277, 1290, 1281, 1283, 1295, 1282, 1296, 1297, 1298, 1299, 1300, 1305, 1301, 1303, 1306, 1307, 1278, 1308, 1309, 1302, 1310, 1311, 1312, 1286, 1279, 1280, 1289, 1313, 1304, 1290, 1281, 1314, 1295, 1282, 1296, 1297, 1298, 1299, 1300, 1305, 1301, 1303, 1306, 1307, 1315, 1308, 1309, 1302, 1310, 1311, 1312, 1316, 1317, 1318, 1319, 1313, 1304, 1320, 1321, 1314, 1322, 1326, 1327, 1332, 1333, 1335, 1337, 1338, 1341, 1342, 1347, 1349, 1315, 1350, 1354, 1355, 1356, 1357, 1360, 1316, 1317, 1318, 1319, 1364, 1368, 1320, 1321, 1371, 1322, 1326, 1327, 1332, 1333, 1335, 1337, 1338, 1341, 1342, 1347, 1349, 1372, 1350, 1354, 1355, 1356, 1357, 1360, 1375, 1377, 1381, 1989, 1364, 1368, 1384, 1387, 1371, 1388, 1389, 1390, 1391, 1392, 1393, 1396, 1397, 1398, 1399, 1400, 1401, 1372, 1402, 1403, 1404, 1405, 1993, 1411, 2088, 1377, 1381, 1376, 1412, 1413, 1384, 1387, 2089, 1388, 1389, 1390, 1391, 1392, 1393, 1396, 1397, 1398, 1399, 1400, 1401, 1409, 1402, 1403, 1404, 1405, 1406, 1411, 1407, 1414, 1415, 1416, 1412, 1413, 1417, 1408, 1410, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1430, 1431, 1409, 1433, 1434, 1435, 1437, 1406, 1438, 1407, 1414, 1415, 1416, 1442, 1443, 1417, 1408, 1410, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1430, 1431, 1444, 1433, 1434, 1435, 1437, 1445, 1438, 1446, 1447, 1451, 1453, 1442, 1443, 1455, 1457, 1458, 1460, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1444, 1479, 1480, 1481, 1482, 1445, 1483, 1446, 1447, 1451, 1453, 1484, 1485, 1455, 1457, 1458, 1460, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1486, 1479, 1480, 1481, 1482, 1487, 1483, 1488, 1489, 1490, 1491, 1484, 1485, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1486, 1509, 1510, 1515, 1516, 1487, 1524, 1488, 1489, 1490, 1491, 1525, 1526, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1517, 1509, 1510, 1515, 1516, 1527, 1524, 1530, 1535, 1536, 1537, 1525, 1526, 1541, 1544, 1549, 1557, 1518, 1558, 1559, 1560, 1519, 1562, 1563, 1564, 1565, 1566, 1567, 1517, 1568, 1570, 1571, 1572, 1527, 1573, 1530, 1535, 1536, 1537, 1574, 1575, 1541, 1544, 1549, 1557, 1518, 1558, 1559, 1560, 1519, 1562, 1563, 1564, 1565, 1566, 1567, 1576, 1568, 1570, 1571, 1572, 1577, 1573, 1578, 1579, 1580, 1581, 1574, 1575, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1576, 1597, 1598, 1599, 1602, 1577, 1603, 1578, 1579, 1580, 1581, 1607, 1611, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1612, 1597, 1598, 1599, 1602, 1614, 1603, 1622, 1625, 1628, 1629, 1607, 1611, 1632, 1633, 1634, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1647, 1648, 1649, 1651, 1652, 1612, 1653, 1654, 1655, 1656, 1614, 1657, 1622, 1625, 1628, 1629, 1660, 1661, 1632, 1633, 1634, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1647, 1648, 1649, 1651, 1652, 1662, 1653, 1654, 1655, 1656, 1663, 1657, 1665, 1666, 1667, 1668, 1660, 1661, 1671, 1672, 1673, 1674, 1675, 1677, 1678, 1680, 1686, 1688, 1694, 1695, 1696, 1699, 1679, 1662, 1700, 1705, 1708, 1709, 1663, 1714, 1665, 1666, 1667, 1668, 1715, 1717, 1671, 1672, 1673, 1674, 1675, 1677, 1678, 1680, 1686, 1688, 1694, 1695, 1696, 1699, 1679, 1719, 1700, 1705, 1708, 1709, 1720, 1714, 1723, 1724, 1726, 1727, 1715, 1717, 1728, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1739, 1740, 1741, 1742, 1744, 1745, 1746, 1719, 1747, 1750, 1751, 1752, 1720, 1754, 1723, 1724, 1726, 1727, 1760, 1764, 1728, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1739, 1740, 1741, 1742, 1744, 1745, 1746, 1771, 1747, 1750, 1751, 1752, 1767, 1754, 1768, 1773, 1774, 1775, 1760, 1764, 1776, 1777, 1780, 1782, 1783, 1784, 1785, 1787, 1788, 1796, 1800, 1801, 1803, 1804, 1806, 1771, 1811, 1812, 1813, 1814, 1767, 1815, 1768, 1773, 1774, 1775, 1817, 1818, 1776, 1777, 1780, 1782, 1783, 1784, 1785, 1787, 1788, 1796, 1800, 1801, 1803, 1804, 1806, 1819, 1811, 1812, 1813, 1814, 1822, 1815, 1823, 1825, 1826, 1827, 1817, 1818, 1830, 1831, 1832, 1833, 1842, 1844, 1845, 1847, 1848, 1849, 1854, 1858, 1861, 1862, 1863, 1819, 1864, 1868, 1872, 1873, 1822, 1875, 1823, 1825, 1826, 1827, 1876, 1878, 1830, 1831, 1832, 1833, 1842, 1844, 1845, 1847, 1848, 1849, 1854, 1858, 1861, 1862, 1863, 1883, 1864, 1868, 1872, 1873, 1884, 1875, 1885, 1886, 1887, 1889, 1876, 1878, 1890, 1891, 1894, 1895, 1897, 1904, 1905, 1907, 1908, 1997, 1909, 1912, 1913, 1915, 1916, 1883, 1920, 1921, 1923, 1926, 1884, 1927, 1885, 1886, 1887, 1889, 1930, 1933, 1890, 1891, 1894, 1895, 1897, 1904, 1934, 1907, 1908, 1906, 1909, 1912, 1913, 1915, 1916, 1937, 1920, 1921, 1923, 1926, 1938, 1927, 1941, 1942, 1943, 1944, 1930, 1933, 1945, 1946, 1949, 1950, 1952, 1953, 1934, 1956, 1960, 1961, 1962, 1971, 1974, 1976, 1981, 1937, 1982, 1983, 1987, 1990, 1938, 1991, 1941, 1942, 1943, 1944, 1994, 1995, 1945, 1946, 1949, 1950, 1952, 1953, 1998, 1956, 1960, 1961, 1962, 1971, 1974, 1976, 1981, 1999, 1982, 1983, 1987, 1990, 2000, 1991, 2001, 2002, 2003, 2006, 1994, 1995, 2007, 2009, 2010, 2018, 2021, 2022, 1998, 2023, 2024, 2029, 2038, 2039, 2040, 2041, 2042, 1999, 2045, 2046, 2047, 2048, 2000, 2049, 2001, 2002, 2003, 2006, 2050, 2051, 2007, 2009, 2010, 2018, 2021, 2022, 2052, 2023, 2024, 2029, 2038, 2039, 2040, 2041, 2042, 2055, 2045, 2046, 2047, 2048, 2056, 2049, 2057, 2064, 2065, 2066, 2050, 2051, 2072, 2080, 2082, 2085, 2086, 2087, 2052, 2090, 2091, 2092, 2093, 2094, 2095, 2005, 2096, 2055, 2097, 2099, 2100, 2101, 2056, 2012, 2057, 2064, 2065, 2066, 2103, 2015, 2072, 2080, 2082, 2085, 2086, 2087, 2017, 2090, 2091, 2092, 2093, 2094, 2095, 2104, 2096, 2020, 2097, 2105, 2100, 2101, 2106, 2107, 2108, 2110, 2112, 2028, 2113, 2115, 2032, 2117, 2119, 2036, 2121, 2122, 2123, 2124, 2125, 2126, 2128, 2130, 2131, 2132, 2133, 2134, 2135, 2105, 2136, 2137, 2106, 2107, 2138, 2054, 2139, 2140, 2141, 2059, 2061, 2063, 2142, 2143, 2144, 2122, 2123, 2124, 2125, 2126, 2068, 2070, 2131, 2146, 2147, 2074, 2149, 2077, 2136, 2079, 2150, 2152, 2153, 2084, 2139, 2140, 2141, 2154, 2155, 2156, 2142, 2158, 2144, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2147, 2099, 2169, 2170, 2103, 2171, 2172, 2173, 2174, 2176, 2110, 2112, 2178, 2154, 2155, 2156, 2115, 2117, 2119, 2121, 2161, 2179, 2180, 2181, 2182, 2166, 2183, 2128, 2130, 2184, 2169, 2170, 2186, 2171, 2172, 2188, 2174, 2190, 2192, 2193, 2195, 2197, 2198, 2199, 2200, 2201, 2203, 2204, 2146, 2179, 2205, 2181, 2149, 2207, 2183, 2152, 2209, 2184, 2210, 2211, 2212, 2158, 2160, 2213, 2215, 2217, 2219, 2193, 2221, 2222, 2198, 2199, 2200, 2224, 2226, 2227, 2228, 2229, 2205, 2230, 2232, 2233, 2176, 2178, 2234, 2236, 2210, 2237, 2212, 2239, 2240, 2213, 2241, 2186, 2188, 2190, 2192, 2222, 2242, 2195, 2197, 2243, 2244, 2227, 2228, 2229, 2245, 2230, 2247, 2233, 2203, 2249, 2234, 2250, 2207, 2237, 2209, 2251, 2240, 2253, 2241, 2254, 2255, 2215, 2217, 2219, 2242, 2221, 2256, 2243, 2244, 2224, 2226, 2257, 2258, 2259, 2260, 2232, 2261, 2262, 2236, 2263, 2239, 2264, 2265, 2251, 2266, 2267, 2268, 2254, 2255, 2270, 2247, 2249, 2272, 2273, 2256, 2253, 2274, 2275, 2276, 2257, 2258, 2259, 2277, 2278, 2261, 2279, 2281, 2263, 2282, 2264, 2284, 2285, 2266, 2286, 2288, 2289, 2291, 2293, 2270, 2272, 2294, 2273, 2295, 2297, 2274, 2298, 2276, 2300, 2302, 2304, 2281, 2306, 2284, 2308, 2310, 2288, 2311, 2291, 2293, 2313, 2315, 2297, 2316, 2289, 2300, 2302, 2304, 2306, 2308, 2310, 2318, 2313, 2315, 2298, 2320, 2318, 2320, 10, 10, 37, 37, 40, 40, 43, 43, 45, 46, 46, 133, 137, 252, 255, 259, 308, 374, 395, 429, 433, 440, 445, 451, 464, 519, 542, 559, 561, 571, 580, 607, 609, 641, 656, 669, 681, 709, 725, 769, 796, 799, 805, 807, 840, 849, 852, 857, 863, 868, 876, 883, 918, 936, 943, 998, 1030, 1047, 1049, 1051, 1057, 1066, 1073, 1075, 1079, 1135, 1159, 1167, 1172, 1177, 1179, 1183, 1187, 1192, 1201, 1235, 1244, 1246, 1252, 1261, 1273, 1284, 1287, 1291, 1324, 1329, 1339, 1343, 1345, 1351, 1358, 1159, 1362, 1366, 1369, 1167, 1373, 1172, 1177, 1179, 1183, 1382, 1187, 1385, 1192, 1394, 1201, 1428, 1235, 1244, 1246, 1440, 1252, 1448, 1261, 1461, 1273, 1284, 1287, 1291, 1475, 1477, 1507, 1324, 1511, 1329, 1513, 1521, 1339, 1343, 1345, 1528, 1351, 1532, 1358, 1539, 1362, 1542, 1366, 1369, 1373, 1547, 1551, 1553, 1555, 1382, 1385, 1394, 1428, 1600, 1605, 1609, 1440, 1448, 1617, 1620, 1623, 1626, 1630, 1461, 1475, 1477, 1507, 1511, 1513, 1681, 1521, 1683, 1528, 1690, 1532, 1692, 1697, 1539, 1542, 1701, 1703, 1547, 1706, 1551, 1553, 1555, 1712, 1721, 1600, 1755, 1605, 1758, 1609, 1762, 1765, 1617, 1769, 1620, 1623, 1626, 1630, 1778, 1789, 1791, 1793, 1798, 1807, 1809, 1820, 1828, 1681, 1683, 1834, 1837, 1840, 1690, 1692, 1697, 1701, 1703, 1706, 1850, 1852, 1712, 1856, 1859, 1721, 1865, 1870, 1879, 1881, 1892, 1898, 1755, 1901, 1758, 1762, 1765, 1769, 1910, 1778, 1918, 1924, 1789, 1791, 1793, 1928, 1931, 1798, 1935, 1939, 1807, 1809, 1947, 1820, 1954, 1828, 1834, 1963, 1837, 1965, 1840, 1968, 1972, 1850, 1852, 1978, 1856, 1859, 1865, 1985, 1988, 1870, 1992, 1996, 1879, 1881, 2004, 1892, 2011, 1898, 2014, 1901, 2016, 2019, 1910, 2027, 2031, 1918, 2035, 1924, 1928, 1931, 1935, 1939, 1947, 2053, 1954, 2058, 2060, 2062, 1963, 1965, 2067, 1968, 2069, 1972, 2073, 2076, 1978, 2078, 2083, 1985, 1988, 1992, 1996, 2004, 2098, 2011, 2102, 2014, 2016, 2019, 2109, 2111, 2027, 2114, 2031, 2116, 2118, 2035, 2120, 2127, 2129, 2053, 2058, 2060, 2062, 2067, 2069, 2145, 2073, 2148, 2076, 2078, 2151, 2083, 2157, 2159, 2175, 2177, 2185, 2187, 2189, 2191, 2194, 2196, 2202, 2206, 2208, 2214, 2216, 2218, 2220, 2223, 2225, 2231, 2235, 2238, 2246, 2248, 2252, 2269, 2271, 2280, 2283, 2287, 2290, 2292, 2296, 2299, 2301, 2303, 2305, 2307, 2309, 2312, 2314, 2317, 2319, 1932, 1929, 1794, 1792, 1790, 1925, 1922, 1919, 1917, 1779, 1914, 1911, 1770, 1766, 1763, 1903, 1759, 1902, 1756, 1900, 1899, 1896, 1893, 1888, 1882, 1880, 1877, 1874, 1871, 1869, 1867, 1866, 1722, 1860, 1857, 1855, 1713, 1853, 1851, 1707, 1704, 1702, 1846, 1698, 1843, 1693, 1691, 1841, 1839, 1838, 1836, 1835, 1684, 1682, 1829, 1824, 1821, 1816, 1810, 1808, 1805, 1802, 1799, 1797, 1795, 1794, 1792, 1790, 1786, 1781, 1779, 1631, 1627, 1772, 1624, 1621, 1770, 1618, 1766, 1763, 1761, 1610, 1759, 1757, 1606, 1756, 1753, 1601, 1749, 1748, 1743, 1738, 1737, 1729, 1725, 1722, 1718, 1716, 1713, 1711, 1710, 1556, 1554, 1552, 1707, 1548, 1704, 1702, 1543, 1540, 1698, 1693, 1533, 1691, 1689, 1529, 1687, 1685, 1684, 1522, 1682, 1676, 1514, 1512, 1508, 1670, 1669, 1664, 1659, 1658, 1650, 1646, 1645, 1478, 1476, 1644, 1643, 1635, 1462, 1631, 1627, 1624, 1621, 1619, 1618, 1449, 1616, 1615, 1613, 1441, 1610, 1608, 1606, 1604, 1601, 1429, 1569, 1395, 1561, 1386, 1383, 1556, 1554, 1552, 1550, 1548, 1374, 1546, 1545, 1370, 1367, 1543, 1363, 1540, 1538, 1359, 1534, 1533, 1352, 1531, 1529, 1346, 1344, 1340, 1523, 1522, 1520, 1514, 1330, 1512, 1325, 1508, 1478, 1476, 1292, 1288, 1285, 1463, 1274, 1462, 1459, 1456, 1454, 1452, 1262, 1450, 1449, 1253, 1441, 1439, 1247, 1245, 1436, 1432, 1236, 1429, 1202, 1395, 1193, 1386, 1188, 1383, 1184, 1380, 1379, 1180, 1178, 1378, 1173, 1374, 1168, 1370, 1367, 1365, 1363, 1160, 1361, 1359, 1353, 1352, 1348, 1346, 1344, 1340, 1336, 1136, 1334, 1331, 1330, 1328, 1325, 1323, 1294, 1293, 1292, 1288, 1285, 1274, 1272, 1080, 1076, 1074, 1262, 1067, 1258, 1058, 1253, 1052, 1050, 1048, 1249, 1247, 1245, 1236, 1031, 1232, 1202, 1200, 1193, 999, 1190, 1189, 1188, 1186, 1184, 1180, 1178, 1173, 1171, 1168, 1166, 1161, 1160, 1156, 1150, 1145, 1144, 1141, 1136, 1130, 944, 937, 919, 1097, 1094, 1092, 1085, 1080, 1078, 1076, 1074, 1068, 1067, 1062, 884, 1058, 1054, 877, 1052, 1050, 1048, 869, 1043, 1042, 864, 858, 853, 1034, 850, 1031, 841, 1008, 1003, 1000, 999, 994, 991, 988, 987, 983, 979, 808, 806, 800, 797, 973, 963, 950, 770, 944, 937, 919, 911, 909, 908, 903, 902, 899, 898, 892, 726, 884, 881, 877, 874, 873, 872, 710, 869, 864, 858, 853, 850, 846, 844, 841, 682, 828, 670, 822, 657, 808, 806, 800, 642, 797, 770, 767, 610, 608, 764, 762, 758, 757, 756, 755, 751, 572, 726, 721, 562, 560, 716, 710, 707, 543, 703, 701, 697, 694, 692, 682, 520, 674, 670, 657, 649, 648, 643, 642, 639, 634, 465, 615, 610, 608, 452, 446, 441, 434, 430, 572, 567, 562, 560, 558, 396, 548, 545, 543, 375, 533, 521, 520, 518, 517, 516, 513, 510, 498, 489, 487, 482, 480, 465, 309, 459, 455, 454, 452, 446, 441, 434, 430, 418, 414, 413, 410, 260, 256, 253, 401, 400, 396, 394, 392, 382, 375, 367, 365, 359, 352, 332, 311, 309, 306, 290, 274, 260, 256, 253, 246, 204, 185, 181, 47, 132, 47, 2321, 9, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321 } ; static yyconst flex_int16_t yy_chk[4336] = { 0, 0, 13, 1, 1, 13, 38, 41, 44, 38, 41, 44, 48, 134, 138, 48, 134, 138, 141, 171, 171, 141, 201, 201, 295, 295, 328, 328, 338, 338, 340, 340, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 8, 1799, 15, 4, 23, 6, 1802, 33, 1805, 15, 485, 485, 15, 496, 496, 722, 722, 885, 885, 887, 887, 1808, 19, 35, 3, 4, 5, 6, 7, 8, 15, 4, 23, 6, 14, 33, 19, 15, 17, 19, 15, 20, 17, 14, 35, 14, 17, 14, 20, 14, 19, 14, 14, 1810, 20, 1060, 1060, 1816, 17, 39, 1819, 1821, 14, 1824, 19, 1826, 17, 19, 1827, 20, 17, 14, 35, 14, 17, 14, 20, 14, 42, 14, 14, 16, 20, 18, 22, 32, 17, 39, 16, 21, 32, 18, 16, 18, 22, 16, 25, 21, 1829, 22, 22, 16, 1830, 18, 21, 1835, 42, 51, 52, 16, 25, 18, 22, 32, 25, 1836, 16, 21, 32, 18, 16, 18, 22, 16, 25, 21, 26, 22, 22, 16, 26, 18, 21, 24, 1838, 51, 52, 24, 25, 27, 26, 24, 25, 26, 1839, 53, 29, 24, 28, 50, 29, 27, 28, 24, 26, 55, 28, 27, 26, 27, 56, 24, 28, 1841, 59, 24, 29, 27, 26, 24, 1842, 26, 50, 53, 29, 24, 28, 1843, 29, 27, 28, 24, 54, 55, 28, 27, 1844, 27, 56, 31, 28, 58, 59, 31, 29, 30, 61, 30, 57, 54, 50, 58, 31, 30, 30, 30, 62, 30, 30, 31, 54, 57, 30, 30, 34, 1846, 34, 31, 34, 58, 1848, 31, 34, 30, 61, 30, 57, 54, 63, 58, 31, 30, 30, 30, 62, 30, 30, 31, 65, 57, 30, 30, 34, 60, 34, 66, 34, 60, 60, 67, 34, 64, 64, 68, 69, 70, 63, 71, 72, 73, 74, 75, 76, 77, 78, 79, 65, 80, 82, 85, 83, 60, 83, 66, 86, 60, 60, 67, 87, 64, 64, 68, 69, 70, 88, 71, 72, 73, 74, 75, 76, 77, 78, 79, 89, 80, 82, 85, 83, 90, 83, 91, 86, 94, 95, 93, 87, 96, 98, 93, 99, 1851, 88, 93, 100, 1853, 101, 102, 103, 1854, 104, 100, 89, 105, 106, 1855, 109, 90, 110, 91, 92, 94, 95, 93, 92, 96, 98, 93, 99, 92, 108, 93, 100, 92, 101, 102, 103, 92, 104, 100, 107, 105, 106, 108, 109, 111, 110, 112, 92, 113, 114, 107, 92, 113, 115, 1857, 118, 92, 108, 116, 119, 92, 120, 113, 121, 92, 117, 116, 107, 122, 117, 108, 124, 111, 116, 112, 125, 113, 114, 107, 1858, 113, 115, 117, 118, 126, 131, 136, 119, 1860, 120, 113, 121, 123, 117, 116, 123, 122, 117, 128, 124, 123, 116, 129, 125, 140, 144, 128, 123, 145, 129, 117, 146, 126, 131, 136, 147, 129, 148, 149, 150, 123, 151, 152, 123, 153, 154, 128, 155, 123, 156, 129, 158, 140, 144, 128, 123, 145, 129, 159, 146, 161, 160, 163, 147, 129, 148, 149, 150, 164, 151, 152, 167, 153, 154, 162, 155, 165, 156, 160, 158, 165, 168, 169, 162, 170, 172, 159, 173, 161, 174, 163, 162, 175, 165, 177, 176, 164, 162, 178, 167, 180, 172, 182, 186, 187, 184, 160, 165, 165, 168, 169, 162, 170, 1864, 188, 173, 189, 174, 176, 162, 175, 165, 177, 176, 184, 162, 178, 190, 180, 172, 182, 186, 187, 184, 185, 185, 185, 191, 192, 185, 193, 185, 188, 194, 189, 185, 196, 197, 197, 198, 199, 200, 202, 185, 185, 190, 185, 203, 205, 197, 1866, 206, 185, 185, 185, 191, 192, 185, 193, 185, 208, 194, 1867, 185, 196, 197, 197, 198, 199, 200, 202, 185, 185, 209, 185, 203, 205, 197, 204, 206, 210, 204, 211, 204, 212, 213, 215, 217, 208, 216, 204, 218, 216, 204, 220, 222, 204, 223, 224, 225, 226, 209, 227, 229, 230, 1869, 204, 1871, 210, 204, 211, 204, 212, 213, 215, 217, 232, 216, 204, 218, 216, 204, 220, 222, 204, 223, 224, 225, 226, 231, 227, 229, 230, 231, 234, 231, 235, 236, 237, 238, 239, 240, 241, 242, 232, 244, 247, 248, 249, 254, 257, 258, 261, 262, 1874, 263, 264, 231, 266, 267, 270, 231, 234, 231, 235, 236, 237, 238, 239, 240, 241, 242, 271, 244, 247, 248, 249, 254, 257, 258, 261, 262, 263, 263, 264, 272, 266, 267, 270, 275, 276, 278, 1877, 279, 1880, 281, 282, 283, 284, 1882, 271, 1888, 1891, 285, 1893, 287, 288, 289, 291, 292, 293, 294, 298, 272, 274, 274, 301, 275, 276, 278, 274, 279, 274, 281, 282, 283, 284, 274, 302, 274, 274, 285, 274, 287, 288, 289, 291, 292, 293, 294, 298, 303, 274, 274, 301, 305, 306, 307, 274, 310, 274, 312, 313, 314, 315, 274, 302, 274, 274, 316, 274, 317, 318, 315, 319, 320, 321, 324, 326, 303, 322, 327, 330, 305, 306, 307, 332, 310, 320, 312, 313, 314, 315, 333, 322, 334, 335, 316, 336, 317, 318, 315, 319, 320, 321, 324, 326, 337, 322, 327, 330, 342, 343, 344, 332, 345, 320, 346, 347, 348, 349, 333, 322, 334, 335, 351, 336, 352, 354, 349, 355, 361, 345, 362, 363, 337, 364, 365, 366, 368, 343, 344, 342, 345, 367, 346, 347, 348, 349, 369, 370, 372, 367, 351, 373, 352, 354, 349, 355, 361, 345, 362, 363, 376, 364, 365, 366, 368, 377, 378, 379, 380, 367, 381, 383, 385, 386, 369, 370, 372, 367, 388, 373, 389, 390, 391, 392, 393, 394, 397, 398, 376, 402, 403, 404, 405, 377, 378, 379, 380, 407, 381, 383, 385, 386, 408, 409, 411, 412, 388, 413, 389, 390, 391, 392, 393, 394, 397, 398, 414, 402, 403, 404, 405, 415, 416, 417, 420, 407, 419, 421, 422, 423, 408, 409, 411, 412, 424, 413, 425, 426, 427, 428, 431, 432, 435, 436, 414, 437, 419, 438, 439, 415, 416, 417, 420, 442, 419, 421, 422, 423, 443, 444, 447, 448, 424, 449, 425, 426, 427, 428, 431, 432, 435, 436, 450, 437, 419, 438, 439, 453, 456, 457, 458, 442, 459, 461, 462, 463, 443, 444, 447, 448, 466, 449, 467, 468, 469, 470, 471, 472, 473, 474, 450, 475, 476, 477, 478, 453, 456, 457, 458, 479, 459, 461, 462, 463, 480, 484, 489, 490, 466, 1896, 467, 468, 469, 470, 471, 472, 473, 474, 491, 475, 476, 477, 478, 482, 492, 482, 482, 479, 495, 500, 501, 502, 480, 484, 489, 490, 503, 482, 1897, 1899, 504, 505, 506, 507, 508, 511, 491, 509, 512, 513, 515, 482, 492, 482, 482, 517, 495, 500, 501, 502, 509, 518, 522, 524, 503, 482, 498, 498, 504, 505, 506, 507, 508, 511, 523, 509, 512, 513, 515, 516, 498, 525, 516, 517, 498, 498, 526, 527, 509, 518, 522, 524, 528, 529, 498, 498, 516, 531, 533, 534, 536, 537, 539, 1900, 541, 523, 544, 516, 498, 525, 516, 545, 498, 498, 526, 527, 547, 549, 550, 551, 528, 529, 552, 553, 516, 531, 533, 534, 555, 537, 539, 536, 541, 556, 544, 557, 558, 564, 565, 545, 566, 568, 570, 569, 547, 549, 550, 551, 569, 573, 552, 553, 574, 575, 576, 577, 555, 578, 579, 581, 574, 556, 582, 557, 558, 564, 565, 583, 566, 568, 570, 569, 584, 585, 586, 587, 569, 573, 588, 589, 574, 575, 576, 577, 590, 578, 579, 581, 591, 592, 582, 594, 595, 596, 601, 583, 602, 603, 605, 611, 584, 585, 586, 587, 612, 614, 588, 589, 616, 617, 618, 619, 590, 620, 621, 622, 591, 592, 623, 594, 595, 596, 601, 624, 602, 603, 605, 611, 625, 626, 627, 628, 612, 614, 629, 630, 616, 617, 618, 619, 631, 620, 621, 622, 632, 633, 623, 635, 636, 634, 634, 624, 637, 638, 640, 644, 625, 626, 627, 628, 634, 645, 629, 630, 646, 647, 650, 651, 631, 652, 1902, 653, 632, 633, 655, 635, 636, 634, 634, 653, 637, 638, 640, 644, 658, 659, 660, 661, 634, 645, 654, 662, 646, 647, 650, 651, 664, 652, 654, 653, 665, 666, 655, 667, 668, 672, 673, 653, 674, 675, 676, 677, 658, 659, 660, 661, 678, 679, 654, 662, 680, 683, 685, 686, 664, 688, 654, 690, 665, 666, 691, 667, 668, 672, 673, 693, 674, 675, 676, 677, 683, 695, 696, 697, 678, 679, 699, 700, 680, 683, 685, 686, 701, 688, 702, 690, 704, 705, 691, 706, 708, 711, 715, 693, 717, 718, 720, 723, 724, 695, 696, 697, 727, 718, 699, 700, 728, 729, 731, 732, 701, 733, 702, 734, 704, 705, 735, 706, 708, 711, 715, 738, 717, 718, 720, 723, 724, 739, 742, 743, 727, 744, 745, 748, 728, 729, 731, 732, 750, 733, 752, 734, 753, 751, 735, 754, 756, 759, 760, 738, 761, 762, 763, 765, 766, 739, 742, 743, 767, 744, 745, 748, 751, 1903, 1905, 768, 750, 1911, 752, 1912, 753, 751, 1913, 754, 756, 759, 760, 1914, 761, 762, 763, 765, 766, 1916, 1917, 1919, 767, 1920, 1921, 1922, 751, 757, 757, 768, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 771, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 801, 802, 803, 804, 810, 771, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 801, 802, 803, 804, 810, 811, 812, 814, 815, 816, 819, 820, 822, 823, 825, 826, 827, 830, 831, 833, 834, 835, 836, 838, 839, 842, 1923, 845, 847, 848, 854, 855, 856, 811, 812, 814, 815, 816, 819, 820, 822, 823, 825, 826, 827, 830, 831, 833, 834, 835, 836, 838, 839, 842, 843, 845, 847, 848, 854, 855, 856, 1925, 1929, 1932, 1936, 1937, 1938, 1940, 1948, 1951, 1955, 1957, 1958, 843, 1959, 1964, 1966, 1967, 1969, 1970, 1971, 1973, 843, 844, 844, 1975, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 859, 860, 861, 862, 867, 870, 871, 875, 879, 880, 882, 889, 890, 891, 894, 895, 896, 897, 900, 903, 904, 905, 906, 908, 1976, 1977, 911, 913, 859, 860, 861, 862, 867, 870, 871, 875, 879, 880, 882, 889, 890, 891, 894, 895, 896, 897, 900, 903, 904, 905, 906, 908, 909, 909, 911, 913, 914, 916, 917, 920, 921, 922, 924, 925, 923, 928, 924, 929, 926, 909, 909, 923, 926, 930, 909, 924, 927, 931, 923, 1979, 909, 909, 933, 927, 914, 916, 917, 920, 921, 922, 924, 925, 923, 928, 924, 929, 926, 909, 909, 923, 926, 930, 909, 924, 927, 931, 923, 932, 934, 935, 933, 927, 938, 939, 932, 940, 941, 942, 1980, 946, 947, 932, 948, 949, 951, 952, 953, 954, 956, 957, 960, 961, 962, 963, 965, 932, 934, 935, 966, 967, 938, 939, 932, 968, 941, 942, 940, 946, 947, 932, 948, 949, 951, 952, 953, 954, 956, 957, 960, 961, 962, 963, 965, 969, 971, 972, 966, 967, 975, 976, 977, 968, 980, 981, 984, 985, 986, 989, 990, 992, 997, 1001, 1002, 1003, 1004, 1005, 1006, 977, 1009, 1010, 1011, 969, 971, 972, 1012, 1014, 975, 976, 1015, 1982, 980, 981, 984, 985, 986, 989, 990, 992, 997, 1001, 1002, 1003, 1004, 1005, 1006, 977, 1009, 1010, 1011, 1013, 1016, 1018, 1012, 1014, 1017, 1013, 1015, 1016, 1017, 1019, 1021, 1020, 1022, 1019, 1016, 1023, 1024, 1017, 1020, 1984, 1026, 1027, 1028, 1032, 1033, 1035, 1986, 1013, 1016, 1018, 1036, 1037, 1017, 1013, 1038, 1016, 1017, 1019, 1021, 1020, 1022, 1019, 1016, 1023, 1024, 1017, 1020, 1025, 1026, 1027, 1028, 1032, 1033, 1035, 1025, 1039, 1040, 1041, 1036, 1037, 1044, 1025, 1038, 1046, 1053, 1055, 1056, 1059, 1062, 1064, 1065, 1069, 1070, 1071, 1072, 1025, 1077, 1078, 1081, 1082, 1083, 1086, 1025, 1039, 1040, 1041, 1087, 1088, 1044, 1025, 1091, 1046, 1053, 1055, 1056, 1059, 1062, 1064, 1065, 1069, 1070, 1071, 1072, 1089, 1077, 1078, 1081, 1082, 1083, 1086, 1093, 1089, 1090, 1095, 1087, 1088, 1096, 1090, 1091, 1100, 1090, 1101, 1102, 1103, 1104, 1105, 1107, 1105, 1106, 1108, 1109, 1089, 1110, 1111, 1105, 1112, 1113, 1114, 1093, 1089, 1090, 1095, 1115, 1106, 1096, 1090, 1116, 1100, 1090, 1101, 1102, 1103, 1104, 1105, 1107, 1105, 1106, 1108, 1109, 1117, 1110, 1111, 1105, 1112, 1113, 1114, 1118, 1119, 1120, 1121, 1115, 1106, 1122, 1123, 1116, 1124, 1127, 1128, 1132, 1133, 1137, 1139, 1140, 1142, 1143, 1146, 1148, 1117, 1149, 1152, 1153, 1154, 1155, 1157, 1118, 1119, 1120, 1121, 1162, 1165, 1122, 1123, 1169, 1124, 1127, 1128, 1132, 1133, 1137, 1139, 1140, 1142, 1143, 1146, 1148, 1170, 1149, 1152, 1153, 1154, 1155, 1157, 1174, 1175, 1185, 1989, 1162, 1165, 1189, 1191, 1169, 1194, 1195, 1196, 1197, 1198, 1199, 1203, 1204, 1205, 1206, 1207, 1208, 1170, 1209, 1210, 1211, 1212, 1993, 1215, 1994, 1175, 1185, 1174, 1216, 1217, 1189, 1191, 1995, 1194, 1195, 1196, 1197, 1198, 1199, 1203, 1204, 1205, 1206, 1207, 1208, 1214, 1209, 1210, 1211, 1212, 1213, 1215, 1213, 1218, 1219, 1220, 1216, 1217, 1221, 1213, 1214, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1233, 1234, 1214, 1238, 1239, 1240, 1242, 1213, 1243, 1213, 1218, 1219, 1220, 1250, 1251, 1221, 1213, 1214, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1233, 1234, 1254, 1238, 1239, 1240, 1242, 1255, 1243, 1256, 1257, 1260, 1264, 1250, 1251, 1266, 1268, 1269, 1271, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1286, 1289, 1290, 1254, 1295, 1296, 1297, 1298, 1255, 1299, 1256, 1257, 1260, 1264, 1300, 1301, 1266, 1268, 1269, 1271, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1286, 1289, 1290, 1302, 1295, 1296, 1297, 1298, 1303, 1299, 1304, 1305, 1306, 1307, 1300, 1301, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1302, 1326, 1327, 1332, 1333, 1303, 1338, 1304, 1305, 1306, 1307, 1341, 1342, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1334, 1326, 1327, 1332, 1333, 1347, 1338, 1349, 1355, 1356, 1357, 1341, 1342, 1364, 1368, 1376, 1381, 1334, 1384, 1387, 1388, 1334, 1390, 1391, 1392, 1393, 1396, 1397, 1334, 1398, 1400, 1401, 1402, 1347, 1403, 1349, 1355, 1356, 1357, 1404, 1405, 1364, 1368, 1376, 1381, 1334, 1384, 1387, 1388, 1334, 1390, 1391, 1392, 1393, 1396, 1397, 1406, 1398, 1400, 1401, 1402, 1407, 1403, 1408, 1409, 1410, 1411, 1404, 1405, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1406, 1427, 1430, 1431, 1433, 1407, 1434, 1408, 1409, 1410, 1411, 1437, 1442, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1443, 1427, 1430, 1431, 1433, 1445, 1434, 1453, 1455, 1457, 1458, 1437, 1442, 1460, 1463, 1464, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1481, 1482, 1483, 1485, 1486, 1443, 1487, 1488, 1489, 1490, 1445, 1491, 1453, 1455, 1457, 1458, 1494, 1495, 1460, 1463, 1464, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1481, 1482, 1483, 1485, 1486, 1496, 1487, 1488, 1489, 1490, 1497, 1491, 1499, 1500, 1501, 1502, 1494, 1495, 1505, 1506, 1509, 1510, 1515, 1517, 1518, 1519, 1525, 1527, 1535, 1536, 1537, 1541, 1518, 1496, 1544, 1549, 1557, 1558, 1497, 1562, 1499, 1500, 1501, 1502, 1563, 1565, 1505, 1506, 1509, 1510, 1515, 1517, 1518, 1519, 1525, 1527, 1535, 1536, 1537, 1541, 1518, 1567, 1544, 1549, 1557, 1558, 1568, 1562, 1570, 1571, 1573, 1574, 1563, 1565, 1575, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1586, 1587, 1588, 1589, 1591, 1592, 1593, 1567, 1594, 1597, 1598, 1599, 1568, 1603, 1570, 1571, 1573, 1574, 1611, 1614, 1575, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1586, 1587, 1588, 1589, 1591, 1592, 1593, 1622, 1594, 1597, 1598, 1599, 1616, 1603, 1616, 1628, 1629, 1632, 1611, 1614, 1633, 1634, 1636, 1638, 1639, 1640, 1641, 1643, 1643, 1648, 1651, 1652, 1654, 1655, 1657, 1622, 1660, 1661, 1662, 1663, 1616, 1664, 1616, 1628, 1629, 1632, 1666, 1667, 1633, 1634, 1636, 1638, 1639, 1640, 1641, 1643, 1643, 1648, 1651, 1652, 1654, 1655, 1657, 1668, 1660, 1661, 1662, 1663, 1670, 1664, 1671, 1673, 1674, 1675, 1666, 1667, 1677, 1678, 1679, 1680, 1694, 1696, 1699, 1705, 1708, 1709, 1714, 1717, 1719, 1720, 1723, 1668, 1724, 1727, 1730, 1731, 1670, 1733, 1671, 1673, 1674, 1675, 1734, 1736, 1677, 1678, 1679, 1680, 1694, 1696, 1699, 1705, 1708, 1709, 1714, 1717, 1719, 1720, 1723, 1739, 1724, 1727, 1730, 1731, 1740, 1733, 1741, 1742, 1743, 1745, 1734, 1736, 1746, 1747, 1749, 1750, 1752, 1761, 1764, 1767, 1768, 1997, 1771, 1773, 1774, 1776, 1777, 1739, 1782, 1783, 1785, 1787, 1740, 1788, 1741, 1742, 1743, 1745, 1796, 1800, 1746, 1747, 1749, 1750, 1752, 1761, 1801, 1767, 1768, 1764, 1771, 1773, 1774, 1776, 1777, 1803, 1782, 1783, 1785, 1787, 1804, 1788, 1806, 1811, 1812, 1813, 1796, 1800, 1814, 1815, 1817, 1818, 1822, 1823, 1801, 1825, 1831, 1832, 1833, 1845, 1847, 1849, 1861, 1803, 1862, 1863, 1868, 1872, 1804, 1873, 1806, 1811, 1812, 1813, 1875, 1876, 1814, 1815, 1817, 1818, 1822, 1823, 1878, 1825, 1831, 1832, 1833, 1845, 1847, 1849, 1861, 1883, 1862, 1863, 1868, 1872, 1884, 1873, 1885, 1886, 1887, 1889, 1875, 1876, 1890, 1894, 1895, 1904, 1906, 1907, 1878, 1908, 1909, 1915, 1926, 1927, 1930, 1933, 1934, 1883, 1941, 1942, 1943, 1944, 1884, 1945, 1885, 1886, 1887, 1889, 1946, 1949, 1890, 1894, 1895, 1904, 1906, 1907, 1950, 1908, 1909, 1915, 1926, 1927, 1930, 1933, 1934, 1952, 1941, 1942, 1943, 1944, 1953, 1945, 1956, 1960, 1961, 1962, 1946, 1949, 1974, 1981, 1983, 1987, 1990, 1991, 1950, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 1952, 2007, 2008, 2009, 2010, 1953, 2012, 1956, 1960, 1961, 1962, 2013, 2015, 1974, 1981, 1983, 1987, 1990, 1991, 2017, 1998, 1999, 2000, 2001, 2002, 2003, 2018, 2006, 2020, 2007, 2021, 2009, 2010, 2022, 2023, 2024, 2025, 2026, 2028, 2029, 2030, 2032, 2033, 2034, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2021, 2050, 2051, 2022, 2023, 2052, 2054, 2055, 2056, 2057, 2059, 2061, 2063, 2064, 2065, 2066, 2038, 2039, 2040, 2041, 2042, 2068, 2070, 2045, 2071, 2072, 2074, 2075, 2077, 2050, 2079, 2080, 2081, 2082, 2084, 2055, 2056, 2057, 2085, 2086, 2087, 2064, 2088, 2066, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2072, 2099, 2100, 2101, 2103, 2104, 2105, 2106, 2107, 2108, 2110, 2112, 2113, 2085, 2086, 2087, 2115, 2117, 2119, 2121, 2090, 2122, 2123, 2124, 2125, 2095, 2126, 2128, 2130, 2131, 2100, 2101, 2132, 2104, 2105, 2133, 2107, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2146, 2122, 2147, 2124, 2149, 2150, 2126, 2152, 2153, 2131, 2154, 2155, 2156, 2158, 2160, 2161, 2162, 2163, 2164, 2136, 2165, 2166, 2139, 2140, 2141, 2167, 2168, 2169, 2170, 2171, 2147, 2172, 2173, 2174, 2176, 2178, 2179, 2180, 2154, 2181, 2156, 2182, 2183, 2161, 2184, 2186, 2188, 2190, 2192, 2166, 2193, 2195, 2197, 2198, 2199, 2169, 2170, 2171, 2200, 2172, 2201, 2174, 2203, 2204, 2179, 2205, 2207, 2181, 2209, 2210, 2183, 2211, 2184, 2212, 2213, 2215, 2217, 2219, 2193, 2221, 2222, 2198, 2199, 2224, 2226, 2227, 2228, 2229, 2230, 2232, 2233, 2234, 2236, 2237, 2239, 2240, 2241, 2210, 2242, 2243, 2244, 2212, 2213, 2245, 2247, 2249, 2250, 2251, 2222, 2253, 2254, 2255, 2256, 2227, 2228, 2229, 2257, 2258, 2233, 2259, 2260, 2237, 2261, 2240, 2262, 2263, 2242, 2264, 2265, 2266, 2267, 2268, 2270, 2272, 2273, 2251, 2274, 2275, 2254, 2276, 2256, 2277, 2278, 2279, 2281, 2282, 2284, 2285, 2286, 2288, 2289, 2291, 2293, 2294, 2295, 2297, 2298, 2266, 2300, 2302, 2304, 2306, 2308, 2310, 2311, 2313, 2315, 2276, 2316, 2318, 2320, 2322, 2322, 2323, 2323, 2324, 2324, 2325, 2325, 2326, 2327, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 1797, 1795, 1794, 1792, 1790, 1786, 1784, 1781, 1780, 1779, 1775, 1772, 1770, 1766, 1763, 1760, 1759, 1757, 1756, 1754, 1753, 1751, 1748, 1744, 1738, 1737, 1735, 1732, 1729, 1728, 1726, 1725, 1722, 1718, 1716, 1715, 1713, 1711, 1710, 1707, 1704, 1702, 1700, 1698, 1695, 1693, 1691, 1689, 1688, 1687, 1686, 1685, 1684, 1682, 1676, 1672, 1669, 1665, 1659, 1658, 1656, 1653, 1650, 1649, 1647, 1646, 1645, 1644, 1642, 1637, 1635, 1631, 1627, 1625, 1624, 1621, 1619, 1618, 1615, 1613, 1612, 1610, 1608, 1607, 1606, 1604, 1602, 1601, 1596, 1595, 1590, 1585, 1584, 1576, 1572, 1569, 1566, 1564, 1561, 1560, 1559, 1556, 1554, 1552, 1550, 1548, 1546, 1545, 1543, 1540, 1538, 1534, 1533, 1531, 1530, 1529, 1526, 1524, 1523, 1522, 1520, 1516, 1514, 1512, 1508, 1504, 1503, 1498, 1493, 1492, 1484, 1480, 1479, 1478, 1476, 1474, 1473, 1465, 1462, 1459, 1456, 1454, 1452, 1451, 1450, 1449, 1447, 1446, 1444, 1441, 1439, 1438, 1436, 1435, 1432, 1429, 1399, 1395, 1389, 1386, 1383, 1380, 1379, 1378, 1377, 1375, 1374, 1372, 1371, 1370, 1367, 1365, 1363, 1361, 1360, 1359, 1354, 1353, 1352, 1350, 1348, 1346, 1344, 1340, 1337, 1336, 1335, 1331, 1330, 1328, 1325, 1323, 1294, 1293, 1292, 1288, 1285, 1275, 1274, 1272, 1270, 1267, 1265, 1263, 1262, 1259, 1258, 1253, 1249, 1248, 1247, 1245, 1241, 1237, 1236, 1232, 1202, 1200, 1193, 1190, 1188, 1186, 1184, 1182, 1181, 1180, 1178, 1176, 1173, 1171, 1168, 1166, 1164, 1163, 1161, 1160, 1158, 1156, 1151, 1150, 1147, 1145, 1144, 1141, 1138, 1136, 1134, 1131, 1130, 1129, 1126, 1125, 1099, 1098, 1097, 1094, 1092, 1085, 1084, 1080, 1076, 1074, 1068, 1067, 1063, 1058, 1054, 1052, 1050, 1048, 1045, 1043, 1042, 1034, 1031, 1029, 1008, 1007, 1000, 999, 996, 995, 994, 993, 991, 988, 987, 983, 982, 979, 978, 974, 973, 970, 964, 959, 958, 955, 950, 945, 944, 937, 919, 915, 912, 910, 907, 902, 901, 899, 898, 893, 892, 888, 884, 881, 878, 877, 874, 873, 872, 869, 866, 865, 864, 858, 853, 851, 850, 846, 841, 837, 832, 829, 828, 824, 821, 818, 817, 813, 809, 808, 806, 800, 797, 795, 785, 772, 770, 764, 758, 755, 749, 747, 746, 741, 740, 737, 736, 730, 726, 721, 719, 716, 714, 713, 712, 710, 707, 703, 698, 694, 692, 689, 687, 684, 682, 671, 670, 663, 657, 649, 648, 643, 642, 639, 615, 613, 610, 608, 606, 604, 600, 599, 598, 597, 593, 572, 567, 563, 562, 560, 554, 548, 546, 543, 540, 538, 535, 532, 530, 521, 520, 514, 510, 499, 494, 493, 488, 487, 483, 481, 465, 460, 455, 454, 452, 446, 441, 434, 430, 410, 406, 401, 400, 399, 396, 387, 384, 382, 375, 371, 360, 359, 358, 357, 356, 353, 350, 339, 331, 329, 325, 323, 311, 309, 304, 300, 299, 297, 290, 286, 280, 277, 273, 269, 268, 265, 260, 256, 253, 251, 250, 246, 245, 243, 233, 228, 221, 219, 214, 207, 195, 183, 181, 179, 166, 157, 143, 132, 130, 127, 97, 84, 81, 46, 36, 12, 9, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "loader.l" #line 2 "loader.l" /* * static char *rcsid_object_c = * "$Id: loader.l 16870 2012-01-28 11:46:31Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* Eneq(@csd.uu.se): Added weight-modifiers in environment of objects. object_sub/add_weight will transcend the environment updating the carrying variable. */ #include #include #include #include #include "stringbuffer.h" #define YY_DECL int lex_load(int *depth, object **items, int maxdepth, int map_flags, int linemode) static char *yval(void); static int lex_error; static char msgbuf[HUGE_BUF]; size_t msglen = 0, total_msglen = 0; static char lorebuf[HUGE_BUF]; /** Maps the MOVE_* values to names */ static const char *const move_name[] = { "walk", "fly_low", "fly_high", "swim", "boat", NULL }; /** * This table is only necessary to convert objects that existed before the * spell object conversion to the new object. It was not practical * to go through every mapping looking for every potion, rod, wand, etc * that had a sp set and update to the new value. So this maps the * old spell numbers to the name of the new archs. * If you are adding a new spell, you should not modify this - your * new spell won't have been used, and thus won't have any legacy object. * NULL entries in this table are valid - to denote objects that should * not be updated for whatever reason. * * @todo * is this still required? it's used, but can it happen? */ const char *const spell_mapping[] = { "spell_magic_bullet", /* 0 */ "spell_small_fireball", /* 1 */ "spell_medium_fireball", /* 2 */ "spell_large_fireball", /* 3 */ "spell_burning_hands", /* 4 */ "spell_sm_lightning", /* 5 */ "spell_large_lightning", /* 6 */ "spell_magic_missile", /* 7 */ "spell_create_bomb", /* 8 */ "spell_summon_golem", /* 9 */ "spell_summon_fire_elemental", /* 10 */ "spell_summon_earth_elemental", /* 11 */ "spell_summon_water_elemental", /* 12 */ "spell_summon_air_elemental", /* 13 */ "spell_dimension_door", /* 14 */ "spell_create_earth_wall", /* 15 */ "spell_paralyze", /* 16 */ "spell_icestorm", /* 17 */ "spell_magic_mapping", /* 18 */ "spell_turn_undead", /* 19 */ "spell_fear", /* 20 */ "spell_poison_cloud", /* 21 */ "spell_wonder", /* 22 */ "spell_destruction", /* 23 */ "spell_perceive_self", /* 24 */ "spell_word_of_recall", /* 25 */ "spell_invisible", /* 26 */ "spell_invisible_to_undead", /* 27 */ "spell_probe", /* 28 */ "spell_lg_magic_bullet", /* 29 */ "spell_improved_invisibility", /* 30 */ "spell_holy_word", /* 31 */ "spell_minor_healing", /* 32 */ "spell_medium_healing", /* 33 */ "spell_major_healing", /* 34 */ "spell_heal", /* 35 */ "spell_create_food", /* 36 */ "spell_earth_to_dust", /* 37 */ "spell_armour", /* 38 */ "spell_strength", /* 39 */ "spell_dexterity", /* 40 */ "spell_constitution", /* 41 */ "spell_charisma", /* 42 */ "spell_create_fire_wall", /* 43 */ "spell_create_frost_wall", /* 44 */ "spell_protection_from_cold", /* 45 */ "spell_protection_from_electricity", /* 46 */ "spell_protection_from_fire", /* 47 */ "spell_protection_from_poison", /* 48 */ "spell_protection_from_slow", /* 49 */ "spell_protection_from_paralysis", /* 50 */ "spell_protection_from_draining", /* 51 */ "spell_protection_from_magic", /* 52 */ "spell_protection_from_attack", /* 53 */ "spell_levitate", /* 54 */ "spell_small_speedball", /* 55 */ "spell_large_speedball", /* 56 */ "spell_hellfire", /* 57 */ "spell_dragonbreath", /* 58 */ "spell_large_icestorm", /* 59 */ "spell_charging", /* 60 */ "spell_polymorph", /* 61 */ "spell_cancellation", /* 62 */ "spell_confusion", /* 63 */ "spell_mass_confusion", /* 64 */ "spell_summon_pet_monster", /* 65 */ "spell_slow", /* 66 */ "spell_regenerate_spellpoints", /* 67 */ "spell_cure_poison", /* 68 */ "spell_protection_from_confusion", /* 69 */ "spell_protection_from_cancellation", /* 70 */ "spell_protection_from_depletion", /* 71 */ "spell_alchemy", /* 72 */ "spell_remove_curse", /* 73 */ "spell_remove_damnation", /* 74 */ "spell_identify", /* 75 */ "spell_detect_magic", /* 76 */ "spell_detect_monster", /* 77 */ "spell_detect_evil", /* 78 */ "spell_detect_curse", /* 79 */ "spell_heroism", /* 80 */ "spell_aggravation", /* 81 */ "spell_firebolt", /* 82 */ "spell_frostbolt", /* 83 */ "spell_shockwave", /* 84 */ "spell_color_spray", /* 85 */ "spell_haste", /* 86 */ "spell_face_of_death", /* 87 */ "spell_ball_lightning", /* 88 */ "spell_meteor_swarm", /* 89 */ "spell_comet", /* 90 */ "spell_mystic_fist", /* 91 */ "spell_raise_dead", /* 92 */ "spell_resurrection", /* 93 */ "spell_reincarnation", /* 94 */ "spell_immunity_to_cold", /* 95 */ "spell_immunity_to_electricity", /* 96 */ "spell_immunity_to_fire", /* 97 */ "spell_immunity_to_poison", /* 98 */ "spell_immunity_to_slow", /* 99 */ "spell_immunity_to_paralysis", /* 100 */ "spell_immunity_to_draining", /* 101 */ "spell_immunity_to_magic", /* 102 */ "spell_immunity_to_attack", /* 103 */ "spell_invulnerability", /* 104 */ "spell_defense", /* 105 */ "spell_rune_of_fire", /* 106 */ "spell_rune_of_frost", /* 107 */ "spell_rune_of_shocking", /* 108 */ "spell_rune_of_blasting", /* 109 */ "spell_rune_of_death", /* 110 */ "spell_marking_rune", /* 111 */ "spell_build_director", /* 112 */ "spell_create_pool_of_chaos", /* 113 */ "spell_build_bullet_wall", /* 114 */ "spell_build_lightning_wall", /* 115 */ "spell_build_fireball_wall", /* 116 */ "spell_magic_rune", /* 117 */ "spell_rune_of_magic_drain", /* 118 */ "spell_antimagic_rune", /* 119 */ "spell_rune_of_transference", /* 120 */ "spell_transference", /* 121 */ "spell_magic_drain", /* 122 */ "spell_counterspell", /* 123 */ "spell_disarm", /* 124 */ "spell_cure_confusion", /* 125 */ "spell_restoration", /* 126 */ "was summon evil monster", /* 127 */ /* Not implenented as nothing used it */ "spell_counterwall", /* 128 */ "spell_cause_light_wounds", /* 129 */ "spell_cause_medium_wounds", /* 130 */ "spell_cause_heavy_wounds", /* 131 */ "spell_charm_monsters", /* 132 */ "spell_banishment", /* 133 */ "spell_create_missile", /* 134 */ "spell_show_invisible", /* 135 */ "spell_xray", /* 136 */ "spell_pacify", /* 137 */ "spell_summon_fog", /* 138 */ "spell_steambolt", /* 139 */ "spell_command_undead", /* 140 */ "spell_holy_orb", /* 141 */ "spell_summon_avatar", /* 142 */ "spell_holy_possession", /* 143 */ "spell_bless", /* 144 */ "spell_curse", /* 145 */ "spell_regeneration", /* 146 */ "spell_consecrate", /* 147 */ "spell_summon_cult_monsters", /* 148 */ "spell_cause_critical_wounds", /* 149 */ "spell_holy_wrath", /* 150 */ "spell_retributive_strike", /* 151 */ "spell_finger_of_death", /* 152 */ "spell_insect_plague", /* 153 */ "spell_call_holy_servant", /* 154 */ "spell_wall_of_thorns", /* 155 */ "spell_staff_to_snake", /* 156 */ "spell_light", /* 157 */ "spell_darkness", /* 158 */ "spell_nightfall", /* 159 */ "spell_daylight", /* 160 */ "spell_sunspear", /* 161 */ "spell_faery_fire", /* 162 */ "spell_cure_blindness", /* 163 */ "spell_dark_vision", /* 164 */ "spell_bullet_swarm", /* 165 */ "spell_bullet_storm", /* 166 */ "spell_cause_many_wounds", /* 167 */ "spell_small_snowstorm", /* 168 */ "spell_medium_snowstorm", /* 169 */ "spell_large_snowstorm", /* 170 */ "spell_cure_disease", /* 171 */ "spell_cause_red_death", /* 172 */ "spell_cause_flu", /* 173 */ "spell_cause_black_death", /* 174 */ "spell_cause_leprosy", /* 175 */ "spell_cause_smallpox", /* 176 */ "spell_cause_white_death", /* 177 */ "spell_cause_anthrax", /* 178 */ "spell_cause_typhoid", /* 179 */ "spell_mana_blast", /* 180 */ "spell_small_manaball", /* 181 */ "spell_medium_manaball", /* 182 */ "spell_large_manaball", /* 183 */ "spell_manabolt", /* 184 */ "spell_dancing_sword", /* 185 */ "spell_animate_weapon", /* 186 */ "spell_cause_cold", /* 187 */ "spell_divine_shock", /* 188 */ "spell_windstorm", /* 189 */ "spell_sanctuary", /* 190 */ "spell_peace", /* 191 */ "spell_spiderweb", /* 192 */ "spell_conflict", /* 193 */ "spell_rage", /* 194 */ "spell_forked_lightning", /* 195 */ "spell_poison_fog", /* 196 */ "spell_flaming_aura", /* 197 */ "spell_vitriol", /* 198 */ "spell_vitriol_splash", /* 199 */ "spell_iron_skin", /* 200 */ "spell_wrathful_eye", /* 201 */ "spell_town_portal", /* 202 */ "spell_missile_swarm", /* 203 */ "spell_cause_rabies", /* 204 */ "spell_glyph", /* 205 */ NULL }; /** Utility macro to transform a bit into a flag. */ #define SET_OR_CLEAR_FLAG(op, flag, val) \ { if (val) SET_FLAG(op, flag); else CLEAR_FLAG(op, flag); } /** * SET_RESIST is really only really needed for transition code. We normally * don't care about multiple values overwriting each other, but this is * to catch items that have multiple protection/immune/vulnerable. * This can be simplified later on to just do the set after all the archs * and maps have been updated. * We always keep the last value because otherwise the value from the * arch may take precedence. * Unfortunately, we will report warnings here simply because an object has * been modified from the arch. */ #define SET_RESIST(op, type, val) op->resist[type] = val; /** * Insert discrete damage. */ static void set_damage(object *op, int type, int val) { if (!op->discrete_damage) { op->discrete_damage = calloc(1, sizeof(sint16)*NROFATTACKS); } op->discrete_damage[type] = val; } /** Next value as integer. */ #define IVAL atoi(yval()) /** Next value as float. */ #define FVAL atof(yval()) extern int arch_init; extern int artifact_init; /** * Fills in the body information for one slot. * * @param op * object * @param params * the body part, which should be in the ::body_locations structure. */ static void set_body_info(object *op, char *params) { int i; char *cp; /* go to first space character */ for (cp = params; !isspace(*cp); cp++) ; *cp++ = 0; /* null it out */ for (i = 0; i < NUM_BODY_LOCATIONS; i++) { if (!strcmp(params, body_locations[i].save_name)) { op->body_info[i] = atoi(cp); return; /* Only one line passed in params */ } } LOG(llevError, "set_body_info called with bogus params: %s\n", params); } /** * This function checks the object after it has been loaded (when we * get the 'end' in the input stream). This function can be used to * deal with legacy objects where fields may have changed. It can also be used * to check for objects to make sure there are no common errors. * * @param op * object to check. */ static void check_loaded_object(object *op) { if (artifact_init) /* Artifacts are special beasts, let's not check them. */ return; if (!is_type_valid(op->type)) { LOG(llevError, "Invalid type %d for %s\n", op->type, op->arch ? op->arch->name : op->name); op->type = 0; } /* We do some specialized handling to handle legacy cases of name_pl. * If the object doesn't have a name_pl, we just use the object name - * this isn't perfect (things won't be properly pluralized), but works to * that degree (5 heart is still quite understandable). But the case we * also have to catch is if this object is not using the normal name for * the object. In that case, we also want to use the loaded name. * Otherwise, what happens is that the the plural name will lose * information (appear as just 'hearts' and not 'goblins heart') */ if (op->arch && op->name != op->arch->clone.name && op->name_pl == op->arch->clone.name_pl) { if (op->name_pl) free_string(op->name_pl); op->name_pl = NULL; } if (!op->name_pl && op->name) op->name_pl = add_string(op->name); /* objects now have a materialname. try to patch it in */ if (!(IS_WEAPON(op) && op->level > 0)) { set_materialname(op); } /* only do these when program is first run - a bit * excessive to do this at every run - most of this is * really just to catch any errors - program will still run, but * not in the ideal fashion. */ if ((op->type == WEAPON || op->type == BOW) && arch_init) { if (!op->skill) { LOG(llevError, "Weapon %s lacks a skill.\n", op->name); } else if ((!strcmp(op->skill, "one handed weapons") && op->body_info[1] != -1) || (!strcmp(op->skill, "two handed weapons") && op->body_info[1] != -2)) { LOG(llevError, "weapon %s arm usage does not match skill: %d, %s\n", op->name, op->body_info[1], op->skill); } } /* spellbooks & runes use slaying. But not to arch name, but to spell name */ if ((op->type == SPELLBOOK || op->type == RUNE) && op->slaying && !op->inv && !arch_init) { object *tmp; tmp = create_archetype_by_object_name(op->slaying); object_insert_in_ob(tmp, op); op->randomitems = NULL; /* So another spell isn't created for this object */ /* without this, value is all screwed up */ op->value = op->arch->clone.value*op->inv->value; } if (QUERY_FLAG(op, FLAG_MONSTER)) { if (op->stats.hp > op->stats.maxhp) LOG(llevDebug, "Monster %s has hp set higher than maxhp (%d>%d)\n", op->name, op->stats.hp, op->stats.maxhp); } if ((QUERY_FLAG(op, FLAG_GENERATOR) && QUERY_FLAG(op, FLAG_CONTENT_ON_GEN)) || op->type == CREATOR || op->type == CONVERTER) { /* Object will duplicate it's content as part of the * generation process. To do this, we must flag inventory * so it remains unevaluated concerning the randomitems and * the living (a demonlord shouldn't cast from inside generator!) */ object_set_flag_inv(op, FLAG_IS_A_TEMPLATE); } /* if the item is identified, ensure we got the correct face */ if (QUERY_FLAG(op, FLAG_IDENTIFIED)) object_give_identified_properties(op); /* Here we'll handle custom monsters. In order to handle them correctly, especially in the fix_object * method, we'll create a new temporary archetype containing defined values. * Of course this doesn't apply when loading archetypes or artifacts. */ if (arch_init == 0 && artifact_init == 0 && QUERY_FLAG(op, FLAG_MONSTER) && op->arch && !object_can_merge(op, &op->arch->clone)) { archetype *temp = get_archetype_struct(); temp->reference_count++; temp->name = add_string(op->arch->name); temp->tail_x = op->arch->tail_x; temp->tail_y = op->arch->tail_y; object_copy(op, &temp->clone); temp->clone.inv = NULL; temp->clone.env = NULL; temp->clone.x = 0; temp->clone.y = 0; temp->clone.map = NULL; if (FABS(temp->clone.speed) > MIN_ACTIVE_SPEED) { /* Clone has a speed, so need to clear that because it isn't on a map. * But we need to keep the value, because otherwise the customized object * will have no speed (fix_player() will use the 0 value). So set it * to zero, call object_update_speed() to remove it from active list, then * set its speed back to the original. */ temp->clone.speed = 0; object_update_speed(&temp->clone); temp->clone.speed = op->speed; } temp->more = op->arch->more; op->arch = temp; /* LOG(llevDebug, "created temporary archetype for %s at %d,%d\n", op->name, op->x, op->y); */ } } /** * This extracts the key/value from the yytext field - * calls object_set_value() to actually set the value. * Function basically has to find spaces, strip out extra, * etc. strchr doesn't work as good because could also * be tabs. * * @param op * object in which to insert the value. */ static void add_key_value(object *op) { char *key = NULL; char *value = NULL; char *cp; char *end; /* First, skip over leading whitespace. */ for (cp = yytext; isspace(*cp); cp++) { ; } key = cp; /* Now look for the end of the key/field name. */ for (; !isspace(*cp); cp++) { if (*cp == '\0') { /* Oops, ran out of string! Set the key with an empty value. */ object_set_value(op, key, NULL, TRUE); return; } } if (*cp == '\0') { object_set_value(op, key, NULL, TRUE); return; } /* Chop off the key, and start at the next character. */ *cp = '\0'; cp++; if (*cp == '\0') { /* Was followed by one space? */ object_set_value(op, key, NULL, TRUE); return; } /* Now looking for the value. Skip over whitespace. */ for (; isspace(*cp); cp++) { if (*cp == '\0') { /* Guess not. */ object_set_value(op, key, NULL, TRUE); return; } } value = cp; /* Got last character before null and strip * off tailing whitespace */ for (end = value+(strlen(cp)-1); isspace(*end); end--) { if (end == value) { /* *blink blink* Still no value? */ object_set_value(op, key, NULL, TRUE); return; } *end = '\0'; } object_set_value(op, key, value, TRUE); } /** * Handles the different move types an object can have. * * @param mt * field for which we are computing the value. * @param params * string containing the definition of the move type. */ static void set_move(MoveType *mt, char *params) { char *str; int i, negate; if (isdigit(*params)) { *mt = atoi(params); } else { *mt = 0; for (str = strtok(params, " "); str; str = strtok(NULL, " ")) { negate = 0; if (!strcasecmp(str, "all")) *mt |= MOVE_ALL; else { if (*str == '-') { negate = 1; str++; } for (i = 0; move_name[i] != NULL; i++) { if (!strcasecmp(move_name[i], str)) { if (negate) { *mt &= ~(1< #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy (void ); int yyget_debug (void ); void yyset_debug (int debug_flag ); YY_EXTRA_TYPE yyget_extra (void ); void yyset_extra (YY_EXTRA_TYPE user_defined ); FILE *yyget_in (void ); void yyset_in (FILE * in_str ); FILE *yyget_out (void ); void yyset_out (FILE * out_str ); int yyget_leng (void ); char *yyget_text (void ); int yyget_lineno (void ); void yyset_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap (void ); #else extern int yywrap (void ); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void ); #else static int input (void ); #endif #endif static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = NULL; static void yy_push_state (int new_state ); static void yy_pop_state (void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO fwrite( yytext, yyleng, 1, yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ if ( yyleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (yytext[yyleng - 1] == '\n'); \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 617 "loader.l" /* Declare some local variables */ int ismore = 0; object *op = items[*depth]; lex_error = 0; #line 3066 "loader.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer(yyin,YY_BUF_SIZE ); } yy_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 2322 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 4276 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 628 "loader.l" { BEGIN(MESSAGE); msgbuf[0] = '\0'; msglen = 0; total_msglen = 0;} YY_BREAK case 2: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 629 "loader.l" { BEGIN(INITIAL); object_set_msg(op, msgbuf); /* Just print a warning so we can be reasonably safe * about not overflowing the buffer. */ if (total_msglen > (HUGE_BUF/2)) LOG(llevDebug, "\n\tWarning message length > %d (max allowed=%d): %lu\n>%.80s<\n", HUGE_BUF/2, HUGE_BUF, (unsigned long)total_msglen, op->msg); } YY_BREAK case 3: YY_RULE_SETUP #line 638 "loader.l" { safe_strcat(msgbuf, yytext, &msglen, HUGE_BUF); safe_strcat(msgbuf, "\n", &msglen, HUGE_BUF); total_msglen += strlen(yytext)+1; } YY_BREAK case 4: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 643 "loader.l" { BEGIN(LORE); lorebuf[0] = '\0'; } YY_BREAK case 5: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 644 "loader.l" { BEGIN(INITIAL); op->lore = add_string(lorebuf); /* Just print a warning so we can be reasonably safe * about not overflowing the buffer. */ if (strlen(op->lore) > (HUGE_BUF/2)) LOG(llevDebug, "\n\tWarning lore length > %d (max allowed=%d): %lu\n>%.80s<\n", HUGE_BUF/2, HUGE_BUF, (unsigned long)strlen(op->lore), op->lore); } YY_BREAK case 6: YY_RULE_SETUP #line 653 "loader.l" { strcat(lorebuf, yytext); strcat(lorebuf, "\n"); } YY_BREAK case 7: YY_RULE_SETUP #line 655 "loader.l" { char *yv = yval(); if (*yv == '\0') { LOG(llevError, "Object lacks name.\n"); return LL_IGNORED; } if (!arch_init) { LOG(llevError, "Got object info when not in arch_init (%s)?\n", yv); } else { if (op->arch != NULL) op->arch->name = add_string(yv); op->name = add_string(yv); } } YY_BREAK case 8: YY_RULE_SETUP #line 671 "loader.l" { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Name without val\n"); else FREE_AND_COPY(op->name, yv); } YY_BREAK case 9: YY_RULE_SETUP #line 679 "loader.l" { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Name without val\n"); else FREE_AND_COPY(op->name_pl, yv); } YY_BREAK case 10: YY_RULE_SETUP #line 687 "loader.l" { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Anim suffix without val\n"); else FREE_AND_COPY(op->anim_suffix, yv); } YY_BREAK case 11: YY_RULE_SETUP #line 695 "loader.l" FREE_AND_COPY(op->skill, yval()); YY_BREAK case 12: YY_RULE_SETUP #line 696 "loader.l" { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Custom name without val\n"); else FREE_AND_COPY(op->custom_name, yv); } YY_BREAK case 13: YY_RULE_SETUP #line 704 "loader.l" FREE_AND_COPY(op->race, yval()); YY_BREAK case 14: YY_RULE_SETUP #line 705 "loader.l" FREE_AND_COPY(op->slaying, yval()); YY_BREAK case 15: YY_RULE_SETUP #line 706 "loader.l" { /* If op->arch has been set, then this new object * must be part of the inventory. So process * appropriately. */ if (op->arch) { /* The logic is a follow: - in linemode, we are loading artifacts, so just increase depth, next calls with work on object in inventory, and linking done in the "end" part - when not in linemode, we are loading an archetype, or a map - if archetype loading, discard the object, it'll be handled by second_arch_pass() - else put object like usual */ object *tmp; char *yv = yval(); tmp = object_new(); tmp->arch = find_archetype(yv); if (tmp->arch != NULL) object_copy(&tmp->arch->clone, tmp); else { if (tmp->name) free_string(tmp->name); /* record the name of the broken object */ tmp->name = add_string(yv); } strcpy(msgbuf, ""); strcpy(lorebuf, ""); msglen = 0; total_msglen = 0; (*depth)++; items[*depth] = tmp; if (linemode == 0) { lex_load(depth, items, maxdepth, map_flags, linemode); (*depth)--; if (tmp->arch && (arch_init == 0)) { object_insert_in_ob(tmp, op); } else { if (arch_init == 0) LOG(llevDebug, "Discarding object without arch: %s\n", tmp->name ? tmp->name : "(null)"); object_free_drop_inventory(tmp); } } } else { /* This is the actual archetype definition then */ char *yv = yval(); op->arch = find_archetype(yv); if (op->arch != NULL) object_copy(&op->arch->clone, op); else if (!arch_init) { if (op->name) free_string(op->name); /* record the name of the broken object */ op->name = add_string(yv); } } } YY_BREAK case 16: YY_RULE_SETUP #line 768 "loader.l" { const char *yv = yval(); const artifact *art = find_artifact(op, yv); if (art == NULL) { LOG(llevError, "can't find artifact %s [%d]\n for loading", yv, op->type); } else { give_artifact_abilities(op, art->item); } } YY_BREAK case 17: YY_RULE_SETUP #line 778 "loader.l" op->other_arch = find_archetype(yval()); YY_BREAK case 18: YY_RULE_SETUP #line 779 "loader.l" { if (strcmp (yval(), "NONE") == 0) { op->animation_id = 0; CLEAR_FLAG (op, FLAG_ANIMATE); } else { op->animation_id = find_animation (yval()); SET_FLAG (op, FLAG_ANIMATE); } } YY_BREAK case 19: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 789 "loader.l" { /* We need to record that this is a multipart object, * so the calling function can glue things back together */ ismore = 1; } YY_BREAK case 20: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 795 "loader.l" { check_loaded_object(op); if (linemode) { /* Linemode is only set for artifact loading. */ if ((*depth) > 0) { object_insert_in_ob(items[*depth], items[(*depth)-1]); } return LL_NORMAL; } if (ismore) return LL_MORE; else return LL_NORMAL; } YY_BREAK case 21: YY_RULE_SETUP #line 809 "loader.l" op->last_heal = IVAL; YY_BREAK case 22: YY_RULE_SETUP #line 810 "loader.l" op->last_sp = IVAL; YY_BREAK case 23: YY_RULE_SETUP #line 811 "loader.l" op->last_grace = IVAL; YY_BREAK case 24: YY_RULE_SETUP #line 812 "loader.l" op->last_eat = IVAL; YY_BREAK case 25: YY_RULE_SETUP #line 813 "loader.l" { op->speed = FVAL; if (!(map_flags&MAP_STYLE)) { if (op->speed < 0) op->speed_left = op->speed_left-RANDOM()%100/100.0; object_update_speed(op); } } YY_BREAK case 26: YY_RULE_SETUP #line 821 "loader.l" op->speed_left = FVAL; YY_BREAK case 27: YY_RULE_SETUP #line 823 "loader.l" op->weapon_speed_left = FVAL; YY_BREAK case 28: YY_RULE_SETUP #line 824 "loader.l" op->weapon_speed = FVAL; YY_BREAK case 29: YY_RULE_SETUP #line 826 "loader.l" { op->move_slow |= MOVE_WALK; op->move_slow_penalty = FVAL; } YY_BREAK case 30: YY_RULE_SETUP #line 830 "loader.l" { char *y = yval(); if (*y == '\0') LOG(llevError, "Title without value.\n"); else FREE_AND_COPY(op->title, y); } YY_BREAK case 31: YY_RULE_SETUP #line 839 "loader.l" { const char *name = yval(); int face = find_face(yval(), 0); op->face = &new_faces[face]; if (face == 0) LOG(llevError, "couldn't find face %s for %s\n", name, op->arch ? op->arch->name : op->name); } YY_BREAK case 32: YY_RULE_SETUP #line 846 "loader.l" op->stats.Str = IVAL; YY_BREAK case 33: YY_RULE_SETUP #line 847 "loader.l" op->stats.Dex = IVAL; YY_BREAK case 34: YY_RULE_SETUP #line 848 "loader.l" op->stats.Con = IVAL; YY_BREAK case 35: YY_RULE_SETUP #line 849 "loader.l" op->stats.Wis = IVAL; YY_BREAK case 36: YY_RULE_SETUP #line 850 "loader.l" op->stats.Cha = IVAL; YY_BREAK case 37: YY_RULE_SETUP #line 851 "loader.l" op->stats.Int = IVAL; YY_BREAK case 38: YY_RULE_SETUP #line 852 "loader.l" op->stats.Pow = IVAL; YY_BREAK case 39: YY_RULE_SETUP #line 853 "loader.l" op->stats.hp = IVAL; YY_BREAK case 40: YY_RULE_SETUP #line 854 "loader.l" op->stats.maxhp = IVAL; YY_BREAK case 41: YY_RULE_SETUP #line 855 "loader.l" op->stats.sp = IVAL; YY_BREAK case 42: YY_RULE_SETUP #line 856 "loader.l" op->stats.maxsp = IVAL; YY_BREAK case 43: YY_RULE_SETUP #line 857 "loader.l" op->stats.grace = IVAL; YY_BREAK case 44: YY_RULE_SETUP #line 858 "loader.l" op->stats.maxgrace = IVAL; YY_BREAK case 45: YY_RULE_SETUP #line 859 "loader.l" op->stats.exp = atoll(yval()); YY_BREAK case 46: YY_RULE_SETUP #line 860 "loader.l" op->perm_exp = atoll(yval()); YY_BREAK case 47: YY_RULE_SETUP #line 861 "loader.l" op->stats.food = IVAL; YY_BREAK case 48: YY_RULE_SETUP #line 862 "loader.l" op->stats.dam = IVAL; YY_BREAK case 49: YY_RULE_SETUP #line 863 "loader.l" op->stats.wc = IVAL; YY_BREAK case 50: YY_RULE_SETUP #line 864 "loader.l" op->stats.ac = IVAL; YY_BREAK case 51: YY_RULE_SETUP #line 865 "loader.l" { op->x = IVAL; op->ox= op->x; } YY_BREAK case 52: YY_RULE_SETUP #line 866 "loader.l" { op->y = IVAL; op->oy= op->y; } YY_BREAK case 53: YY_RULE_SETUP #line 867 "loader.l" op->nrof= atol(yval()); YY_BREAK case 54: YY_RULE_SETUP #line 868 "loader.l" op->level = IVAL; YY_BREAK case 55: YY_RULE_SETUP #line 869 "loader.l" op->direction = IVAL; YY_BREAK case 56: YY_RULE_SETUP #line 870 "loader.l" op->type = IVAL; YY_BREAK case 57: YY_RULE_SETUP #line 871 "loader.l" op->subtype = IVAL; YY_BREAK case 58: YY_RULE_SETUP #line 872 "loader.l" op->material = IVAL; YY_BREAK case 59: YY_RULE_SETUP #line 873 "loader.l" { char *yv = yval(); if (*yv == '\0') LOG(llevError, "Materialname without val\n"); else FREE_AND_COPY(op->materialname, yv); } YY_BREAK case 60: YY_RULE_SETUP #line 882 "loader.l" op->value = IVAL; YY_BREAK case 61: YY_RULE_SETUP #line 883 "loader.l" op->weight = atol(yval()); YY_BREAK case 62: YY_RULE_SETUP #line 884 "loader.l" op->carrying = atol(yval()); YY_BREAK case 63: YY_RULE_SETUP #line 885 "loader.l" op->attacktype = IVAL; YY_BREAK case 64: YY_RULE_SETUP #line 886 "loader.l" op->path_attuned = IVAL; YY_BREAK case 65: YY_RULE_SETUP #line 887 "loader.l" op->path_repelled = IVAL; YY_BREAK case 66: YY_RULE_SETUP #line 888 "loader.l" op->path_denied = IVAL; YY_BREAK case 67: YY_RULE_SETUP #line 889 "loader.l" op->invisible = IVAL; YY_BREAK case 68: YY_RULE_SETUP #line 890 "loader.l" op->magic = IVAL; YY_BREAK case 69: YY_RULE_SETUP #line 891 "loader.l" op->state = IVAL; YY_BREAK case 70: YY_RULE_SETUP #line 892 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_ALIVE, IVAL); YY_BREAK case 71: YY_RULE_SETUP #line 893 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_APPLIED, IVAL); YY_BREAK case 72: YY_RULE_SETUP #line 894 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_UNPAID, IVAL); YY_BREAK case 73: YY_RULE_SETUP #line 895 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_ANIMATE, IVAL); YY_BREAK case 74: YY_RULE_SETUP #line 896 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_PICK, IVAL); YY_BREAK case 75: YY_RULE_SETUP #line 897 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CLIENT_ANIM_SYNC, IVAL); YY_BREAK case 76: YY_RULE_SETUP #line 898 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CLIENT_ANIM_RANDOM, IVAL); YY_BREAK /* These are the new values */ case 77: YY_RULE_SETUP #line 902 "loader.l" set_move(&op->move_block, yval()); YY_BREAK case 78: YY_RULE_SETUP #line 903 "loader.l" set_move(&op->move_allow, yval()); YY_BREAK case 79: YY_RULE_SETUP #line 904 "loader.l" set_move(&op->move_type, yval()); YY_BREAK case 80: YY_RULE_SETUP #line 905 "loader.l" set_move(&op->move_on, yval()); YY_BREAK case 81: YY_RULE_SETUP #line 906 "loader.l" set_move(&op->move_off, yval()); YY_BREAK case 82: YY_RULE_SETUP #line 907 "loader.l" set_move(&op->move_slow, yval()); YY_BREAK case 83: YY_RULE_SETUP #line 908 "loader.l" op->move_slow_penalty = FVAL; YY_BREAK case 84: YY_RULE_SETUP #line 911 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_MONSTER, IVAL); YY_BREAK case 85: YY_RULE_SETUP #line 912 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NEUTRAL, IVAL); YY_BREAK case 86: YY_RULE_SETUP #line 913 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_ATTACK, IVAL); YY_BREAK case 87: YY_RULE_SETUP #line 914 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_DAMAGE, IVAL); YY_BREAK case 88: YY_RULE_SETUP #line 915 "loader.l" { if (IVAL) { SET_FLAG(op, FLAG_FRIENDLY); if (op->type != PLAYER) { LOG(llevDebug, " Adding friendly object %s.\n", op->name); add_friendly_object(op); } } else CLEAR_FLAG(op, FLAG_FRIENDLY); } YY_BREAK case 89: YY_RULE_SETUP #line 926 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_GENERATOR, IVAL); YY_BREAK case 90: YY_RULE_SETUP #line 927 "loader.l" SET_OR_CLEAR_FLAG (op, FLAG_CONTENT_ON_GEN, IVAL); YY_BREAK case 91: YY_RULE_SETUP #line 928 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_THROWN, IVAL); YY_BREAK case 92: YY_RULE_SETUP #line 929 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_AUTO_APPLY, IVAL); YY_BREAK case 93: YY_RULE_SETUP #line 930 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_TREASURE, IVAL); YY_BREAK case 94: YY_RULE_SETUP #line 931 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_SEE_INVISIBLE, IVAL); YY_BREAK case 95: YY_RULE_SETUP #line 932 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CAN_ROLL, IVAL); YY_BREAK case 96: YY_RULE_SETUP #line 933 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_OVERLAY_FLOOR, IVAL); YY_BREAK case 97: YY_RULE_SETUP #line 934 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_TURNABLE, IVAL); YY_BREAK case 98: YY_RULE_SETUP #line 935 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_USED_UP, IVAL); YY_BREAK case 99: YY_RULE_SETUP #line 936 "loader.l" { if (IVAL) { SET_FLAG(op, FLAG_IDENTIFIED); CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL); } else CLEAR_FLAG(op, FLAG_IDENTIFIED); } YY_BREAK case 100: YY_RULE_SETUP #line 944 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_REFLECTING, IVAL); YY_BREAK case 101: YY_RULE_SETUP #line 945 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CHANGING, IVAL); YY_BREAK case 102: YY_RULE_SETUP #line 946 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_SPLITTING, IVAL); YY_BREAK case 103: YY_RULE_SETUP #line 947 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_HITBACK, IVAL); YY_BREAK case 104: YY_RULE_SETUP #line 948 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_STARTEQUIP, IVAL); YY_BREAK case 105: YY_RULE_SETUP #line 949 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_BLOCKSVIEW, IVAL); YY_BREAK case 106: YY_RULE_SETUP #line 950 "loader.l" { /* This field is used by Gridarta, so it's not an error. */ } YY_BREAK case 107: YY_RULE_SETUP #line 951 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_UNDEAD, IVAL); YY_BREAK case 108: YY_RULE_SETUP #line 952 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_SCARED, IVAL); YY_BREAK case 109: YY_RULE_SETUP #line 953 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_UNAGGRESSIVE, IVAL); YY_BREAK case 110: YY_RULE_SETUP #line 954 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_REFL_MISSILE, IVAL); YY_BREAK case 111: YY_RULE_SETUP #line 955 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_REFL_SPELL, IVAL); YY_BREAK case 112: YY_RULE_SETUP #line 956 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_MAGIC, IVAL); YY_BREAK case 113: YY_RULE_SETUP #line 957 "loader.l" { if (IVAL) { SET_FLAG(op, FLAG_WIZ); SET_FLAG(op, FLAG_WAS_WIZ); SET_FLAG(op, FLAG_WIZPASS); SET_FLAG(op, FLAG_WIZCAST); } else { CLEAR_FLAG(op, FLAG_WIZ); CLEAR_FLAG(op, FLAG_WIZPASS); CLEAR_FLAG(op, FLAG_WIZCAST); } } YY_BREAK case 114: YY_RULE_SETUP #line 969 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_WAS_WIZ, IVAL); YY_BREAK case 115: YY_RULE_SETUP #line 970 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_FIX_PLAYER, IVAL); YY_BREAK case 116: YY_RULE_SETUP #line 971 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_LIGHTABLE, IVAL); YY_BREAK case 117: YY_RULE_SETUP #line 972 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_TEAR_DOWN, IVAL); YY_BREAK case 118: YY_RULE_SETUP #line 973 "loader.l" op->stats.luck = IVAL; YY_BREAK case 119: YY_RULE_SETUP #line 974 "loader.l" op->run_away = IVAL; YY_BREAK case 120: YY_RULE_SETUP #line 975 "loader.l" op->pick_up = IVAL; YY_BREAK case 121: YY_RULE_SETUP #line 976 "loader.l" op->item_power = IVAL; YY_BREAK case 122: YY_RULE_SETUP #line 977 "loader.l" op->gen_sp_armour = IVAL; YY_BREAK case 123: YY_RULE_SETUP #line 978 "loader.l" op->anim_speed = IVAL; YY_BREAK case 124: YY_RULE_SETUP #line 979 "loader.l" op->weight_limit = IVAL; YY_BREAK case 125: YY_RULE_SETUP #line 980 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_DROP, IVAL); YY_BREAK case 126: YY_RULE_SETUP #line 981 "loader.l" op->will_apply = IVAL; YY_BREAK case 127: YY_RULE_SETUP #line 982 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_RANDOM_MOVE, IVAL); YY_BREAK case 128: YY_RULE_SETUP #line 983 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_SHIELD, IVAL); YY_BREAK case 129: YY_RULE_SETUP #line 984 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CAST_SPELL, IVAL); YY_BREAK case 130: YY_RULE_SETUP #line 985 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_SCROLL, IVAL); YY_BREAK case 131: YY_RULE_SETUP #line 986 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_RANGE, IVAL); YY_BREAK case 132: YY_RULE_SETUP #line 987 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_BOW, IVAL); YY_BREAK case 133: YY_RULE_SETUP #line 988 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_ARMOUR, IVAL); YY_BREAK case 134: YY_RULE_SETUP #line 989 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_WEAPON, IVAL); YY_BREAK case 135: YY_RULE_SETUP #line 990 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_USE_RING, IVAL); YY_BREAK case 136: YY_RULE_SETUP #line 991 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_READY_BOW, IVAL); YY_BREAK case 137: YY_RULE_SETUP #line 992 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_XRAYS, IVAL); YY_BREAK case 138: YY_RULE_SETUP #line 993 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_FLOOR, IVAL); YY_BREAK case 139: YY_RULE_SETUP #line 994 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_LIFESAVE, IVAL); YY_BREAK case 140: YY_RULE_SETUP #line 995 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_STRENGTH, IVAL); YY_BREAK case 141: YY_RULE_SETUP #line 996 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_SLEEP, IVAL); YY_BREAK case 142: YY_RULE_SETUP #line 997 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_STAND_STILL, IVAL); YY_BREAK case 143: YY_RULE_SETUP #line 998 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_ONLY_ATTACK, IVAL); YY_BREAK case 144: YY_RULE_SETUP #line 1000 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_ACTIVATE_ON_PUSH, IVAL); YY_BREAK case 145: YY_RULE_SETUP #line 1001 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_ACTIVATE_ON_RELEASE, IVAL); YY_BREAK /* Start of various attacktypes */ case 146: YY_RULE_SETUP #line 1004 "loader.l" SET_RESIST(op, ATNR_PHYSICAL, IVAL); YY_BREAK case 147: YY_RULE_SETUP #line 1005 "loader.l" SET_RESIST(op, ATNR_MAGIC, IVAL); YY_BREAK case 148: YY_RULE_SETUP #line 1006 "loader.l" SET_RESIST(op, ATNR_FIRE, IVAL); YY_BREAK case 149: YY_RULE_SETUP #line 1007 "loader.l" SET_RESIST(op, ATNR_ELECTRICITY, IVAL); YY_BREAK case 150: YY_RULE_SETUP #line 1008 "loader.l" SET_RESIST(op, ATNR_COLD, IVAL); YY_BREAK case 151: YY_RULE_SETUP #line 1009 "loader.l" SET_RESIST(op, ATNR_CONFUSION, IVAL); YY_BREAK case 152: YY_RULE_SETUP #line 1010 "loader.l" SET_RESIST(op, ATNR_ACID, IVAL); YY_BREAK case 153: YY_RULE_SETUP #line 1011 "loader.l" SET_RESIST(op, ATNR_DRAIN, IVAL); YY_BREAK case 154: YY_RULE_SETUP #line 1012 "loader.l" SET_RESIST(op, ATNR_WEAPONMAGIC, IVAL); YY_BREAK case 155: YY_RULE_SETUP #line 1013 "loader.l" SET_RESIST(op, ATNR_GHOSTHIT, IVAL); YY_BREAK case 156: YY_RULE_SETUP #line 1014 "loader.l" SET_RESIST(op, ATNR_POISON, IVAL); YY_BREAK case 157: YY_RULE_SETUP #line 1015 "loader.l" SET_RESIST(op, ATNR_SLOW, IVAL); YY_BREAK case 158: YY_RULE_SETUP #line 1016 "loader.l" SET_RESIST(op, ATNR_PARALYZE, IVAL); YY_BREAK case 159: YY_RULE_SETUP #line 1017 "loader.l" SET_RESIST(op, ATNR_TURN_UNDEAD, IVAL); YY_BREAK case 160: YY_RULE_SETUP #line 1018 "loader.l" SET_RESIST(op, ATNR_FEAR, IVAL); YY_BREAK case 161: YY_RULE_SETUP #line 1019 "loader.l" SET_RESIST(op, ATNR_CANCELLATION, IVAL); YY_BREAK case 162: YY_RULE_SETUP #line 1020 "loader.l" SET_RESIST(op, ATNR_DEPLETE, IVAL); YY_BREAK case 163: YY_RULE_SETUP #line 1021 "loader.l" SET_RESIST(op, ATNR_DEATH, IVAL); YY_BREAK case 164: YY_RULE_SETUP #line 1022 "loader.l" SET_RESIST(op, ATNR_CHAOS, IVAL); YY_BREAK case 165: YY_RULE_SETUP #line 1023 "loader.l" SET_RESIST(op, ATNR_COUNTERSPELL, IVAL); YY_BREAK case 166: YY_RULE_SETUP #line 1024 "loader.l" SET_RESIST(op, ATNR_GODPOWER, IVAL); YY_BREAK case 167: YY_RULE_SETUP #line 1025 "loader.l" SET_RESIST(op, ATNR_HOLYWORD, IVAL); YY_BREAK case 168: YY_RULE_SETUP #line 1026 "loader.l" SET_RESIST(op, ATNR_BLIND, IVAL); YY_BREAK case 169: YY_RULE_SETUP #line 1027 "loader.l" SET_RESIST(op, ATNR_INTERNAL, IVAL); YY_BREAK case 170: YY_RULE_SETUP #line 1028 "loader.l" SET_RESIST(op, ATNR_LIFE_STEALING, IVAL); YY_BREAK case 171: YY_RULE_SETUP #line 1029 "loader.l" SET_RESIST(op, ATNR_DISEASE, IVAL); YY_BREAK case 172: YY_RULE_SETUP #line 1030 "loader.l" op->attack_movement = IVAL; YY_BREAK case 173: YY_RULE_SETUP #line 1031 "loader.l" op->move_status = IVAL; YY_BREAK case 174: YY_RULE_SETUP #line 1032 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CONFUSED, IVAL); YY_BREAK case 175: YY_RULE_SETUP #line 1033 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_STEALTH, IVAL); YY_BREAK case 176: YY_RULE_SETUP #line 1034 "loader.l" add_button_link(op, op->map, IVAL); YY_BREAK case 177: YY_RULE_SETUP #line 1035 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CURSED, IVAL); YY_BREAK case 178: YY_RULE_SETUP #line 1036 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_DAMNED, IVAL); YY_BREAK case 179: YY_RULE_SETUP #line 1037 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_BLESSED, IVAL); YY_BREAK case 180: YY_RULE_SETUP #line 1038 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_SEE_ANYWHERE, IVAL); YY_BREAK case 181: YY_RULE_SETUP #line 1039 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_MAGICAL, IVAL); YY_BREAK case 182: YY_RULE_SETUP #line 1040 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_CURSED, IVAL); YY_BREAK case 183: YY_RULE_SETUP #line 1041 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_KNOWN_BLESSED, IVAL); YY_BREAK case 184: YY_RULE_SETUP #line 1042 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_CAN_USE_SKILL, IVAL); YY_BREAK case 185: YY_RULE_SETUP #line 1043 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_BEEN_APPLIED, IVAL); YY_BREAK case 186: YY_RULE_SETUP #line 1044 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_READY_SCROLL, IVAL); YY_BREAK case 187: YY_RULE_SETUP #line 1045 "loader.l" op->expmul = FVAL; YY_BREAK case 188: YY_RULE_SETUP #line 1046 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_UNIQUE, IVAL); YY_BREAK case 189: YY_RULE_SETUP #line 1047 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_MAKE_INVIS, IVAL); YY_BREAK case 190: YY_RULE_SETUP #line 1048 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_INV_LOCKED, IVAL); YY_BREAK case 191: YY_RULE_SETUP #line 1049 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_WOODED, IVAL); YY_BREAK case 192: YY_RULE_SETUP #line 1050 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_HILLY, IVAL); YY_BREAK case 193: YY_RULE_SETUP #line 1051 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_WATER, IVAL); YY_BREAK case 194: YY_RULE_SETUP #line 1052 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_READY_SKILL, IVAL); YY_BREAK case 195: YY_RULE_SETUP #line 1053 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_READY_WEAPON, IVAL); YY_BREAK case 196: YY_RULE_SETUP #line 1054 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_SKILL_IDENT, IVAL); YY_BREAK case 197: YY_RULE_SETUP #line 1055 "loader.l" op->glow_radius = IVAL; YY_BREAK case 198: YY_RULE_SETUP #line 1056 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_BLIND, IVAL); YY_BREAK case 199: YY_RULE_SETUP #line 1057 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_SEE_IN_DARK, IVAL); YY_BREAK case 200: YY_RULE_SETUP #line 1058 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_CAULDRON, IVAL); YY_BREAK case 201: YY_RULE_SETUP #line 1059 "loader.l" op->randomitems = find_treasurelist(yval()); YY_BREAK case 202: YY_RULE_SETUP #line 1060 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_NO_STEAL, IVAL); YY_BREAK case 203: YY_RULE_SETUP #line 1061 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_ONE_HIT, IVAL); YY_BREAK case 204: YY_RULE_SETUP #line 1062 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_BERSERK, IVAL); YY_BREAK case 205: YY_RULE_SETUP #line 1064 "loader.l" { /* Some archetypes have these values in them */ } YY_BREAK case 206: YY_RULE_SETUP #line 1065 "loader.l" { /* Probably the pupland archetypes - I imagined */ } YY_BREAK case 207: YY_RULE_SETUP #line 1066 "loader.l" { /* That these are for the new combat code */ } YY_BREAK case 208: YY_RULE_SETUP #line 1067 "loader.l" { /* just ignore for now */ } YY_BREAK case 209: YY_RULE_SETUP #line 1068 "loader.l" { } YY_BREAK case 210: YY_RULE_SETUP #line 1069 "loader.l" op->weapontype = IVAL; YY_BREAK case 211: YY_RULE_SETUP #line 1070 "loader.l" op->casting_time = FVAL; YY_BREAK case 212: YY_RULE_SETUP #line 1071 "loader.l" op->elevation = IVAL; YY_BREAK case 213: YY_RULE_SETUP #line 1072 "loader.l" op->smoothlevel = IVAL; YY_BREAK case 214: YY_RULE_SETUP #line 1073 "loader.l" { if (IVAL) op->map_layer = IVAL; else { int i; char *cp = yval(); for (i = 0; i < MAP_LAYERS; i++) { if (!strcasecmp(cp, map_layer_name[i])) { op->map_layer = i; break; } } if (i == MAP_LAYERS) { LOG(llevError, "Invalid map_layer name found: %s\n", cp); } } } YY_BREAK case 215: YY_RULE_SETUP #line 1091 "loader.l" op->client_type = IVAL; YY_BREAK case 216: YY_RULE_SETUP #line 1092 "loader.l" set_body_info(op, yytext); YY_BREAK case 217: YY_RULE_SETUP #line 1093 "loader.l" op->duration = IVAL; YY_BREAK case 218: YY_RULE_SETUP #line 1094 "loader.l" op->range = IVAL; YY_BREAK case 219: YY_RULE_SETUP #line 1095 "loader.l" op->range_modifier = IVAL; YY_BREAK case 220: YY_RULE_SETUP #line 1096 "loader.l" op->dam_modifier = IVAL; YY_BREAK case 221: YY_RULE_SETUP #line 1097 "loader.l" op->duration_modifier = IVAL; YY_BREAK case 222: YY_RULE_SETUP #line 1098 "loader.l" SET_OR_CLEAR_FLAG(op, FLAG_IS_BUILDABLE, IVAL); YY_BREAK case 223: YY_RULE_SETUP #line 1099 "loader.l" op->sound_chance = IVAL; YY_BREAK /* Discrete damage */ case 224: YY_RULE_SETUP #line 1102 "loader.l" set_damage(op, ATNR_PHYSICAL, IVAL); YY_BREAK case 225: YY_RULE_SETUP #line 1103 "loader.l" set_damage(op, ATNR_MAGIC, IVAL); YY_BREAK case 226: YY_RULE_SETUP #line 1104 "loader.l" set_damage(op, ATNR_FIRE, IVAL); YY_BREAK case 227: YY_RULE_SETUP #line 1105 "loader.l" set_damage(op, ATNR_ELECTRICITY, IVAL); YY_BREAK case 228: YY_RULE_SETUP #line 1106 "loader.l" set_damage(op, ATNR_COLD, IVAL); YY_BREAK case 229: YY_RULE_SETUP #line 1107 "loader.l" set_damage(op, ATNR_CONFUSION, IVAL); YY_BREAK case 230: YY_RULE_SETUP #line 1108 "loader.l" set_damage(op, ATNR_ACID, IVAL); YY_BREAK case 231: YY_RULE_SETUP #line 1109 "loader.l" set_damage(op, ATNR_DRAIN, IVAL); YY_BREAK case 232: YY_RULE_SETUP #line 1110 "loader.l" set_damage(op, ATNR_WEAPONMAGIC, IVAL); YY_BREAK case 233: YY_RULE_SETUP #line 1111 "loader.l" set_damage(op, ATNR_GHOSTHIT, IVAL); YY_BREAK case 234: YY_RULE_SETUP #line 1112 "loader.l" set_damage(op, ATNR_POISON, IVAL); YY_BREAK case 235: YY_RULE_SETUP #line 1113 "loader.l" set_damage(op, ATNR_SLOW, IVAL); YY_BREAK case 236: YY_RULE_SETUP #line 1114 "loader.l" set_damage(op, ATNR_PARALYZE, IVAL); YY_BREAK case 237: YY_RULE_SETUP #line 1115 "loader.l" set_damage(op, ATNR_TURN_UNDEAD, IVAL); YY_BREAK case 238: YY_RULE_SETUP #line 1116 "loader.l" set_damage(op, ATNR_FEAR, IVAL); YY_BREAK case 239: YY_RULE_SETUP #line 1117 "loader.l" set_damage(op, ATNR_CANCELLATION, IVAL); YY_BREAK case 240: YY_RULE_SETUP #line 1118 "loader.l" set_damage(op, ATNR_DEPLETE, IVAL); YY_BREAK case 241: YY_RULE_SETUP #line 1119 "loader.l" set_damage(op, ATNR_DEATH, IVAL); YY_BREAK case 242: YY_RULE_SETUP #line 1120 "loader.l" set_damage(op, ATNR_CHAOS, IVAL); YY_BREAK case 243: YY_RULE_SETUP #line 1121 "loader.l" set_damage(op, ATNR_COUNTERSPELL, IVAL); YY_BREAK case 244: YY_RULE_SETUP #line 1122 "loader.l" set_damage(op, ATNR_GODPOWER, IVAL); YY_BREAK case 245: YY_RULE_SETUP #line 1123 "loader.l" set_damage(op, ATNR_HOLYWORD, IVAL); YY_BREAK case 246: YY_RULE_SETUP #line 1124 "loader.l" set_damage(op, ATNR_BLIND, IVAL); YY_BREAK case 247: YY_RULE_SETUP #line 1125 "loader.l" set_damage(op, ATNR_INTERNAL, IVAL); YY_BREAK case 248: YY_RULE_SETUP #line 1126 "loader.l" set_damage(op, ATNR_LIFE_STEALING, IVAL); YY_BREAK case 249: YY_RULE_SETUP #line 1127 "loader.l" set_damage(op, ATNR_DISEASE, IVAL); YY_BREAK case 250: /* rule 250 can match eol */ YY_RULE_SETUP #line 1129 "loader.l" { /* ignore empty lines, newlines we don't do above */ } YY_BREAK case 251: /* rule 251 can match eol */ YY_RULE_SETUP #line 1130 "loader.l" { } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(MESSAGE): case YY_STATE_EOF(LORE): case YY_STATE_EOF(SCRIPT): #line 1132 "loader.l" { /* If we got an error, return the error. Otherwise, return that we got EOF */ if (lex_error != 0) return lex_error; else return LL_EOF; } YY_BREAK case 252: YY_RULE_SETUP #line 1138 "loader.l" { add_key_value(op); } YY_BREAK case 253: YY_RULE_SETUP #line 1139 "loader.l" ECHO; YY_BREAK #line 4681 "loader.c" case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart(yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 2322 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 2322 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 2321); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart(yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer(yyin,YY_BUF_SIZE ); } yy_init_buffer(YY_CURRENT_BUFFER,input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree((void *) b->yy_ch_buf ); yyfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { int num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { return yy_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } static void yy_push_state (int new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; new_size = (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) (yy_start_stack) = (int *) yyalloc(new_size ); else (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; BEGIN(new_state); } static void yy_pop_state (void) { if ( --(yy_start_stack_ptr) < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param line_number * */ void yyset_lineno (int line_number ) { yylineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * in_str ) { yyin = in_str ; } void yyset_out (FILE * out_str ) { yyout = out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int bdebug ) { yy_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; (yy_start_stack_ptr) = 0; (yy_start_stack_depth) = 0; (yy_start_stack) = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Destroy the start condition stack. */ yyfree((yy_start_stack) ); (yy_start_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return (void *) malloc( size ); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 1139 "loader.l" /** * Returns the next token for lex. * Our save file syntax is very simple, so we can use a very simple * processing mechanism here instead using something like bison * This skips over the space and returns the value, or "" if no value * is found. Modified 4/26/2000 to also strip spaces at end of * line */ static char *yval(void) { static char em[] = ""; char *cp, *end; /* First skip over start of line, like animation or name */ for (cp = yytext; *cp != ' '; cp++) { if (*cp == '\0') { return em; } } /* Skip over whitespace */ for (; *cp == ' '; cp++) { if (*cp == '\0') { return em; } } /* Got last character before null and strip * off tailing whitespace */ for (end = cp+strlen(cp)-1; *end == ' '; end--) { if (end == cp) return em; *end = '\0'; } return cp; } /** * Loads an object from the given file-pointer. * Variables will be read and parsed and patched into the object * until the string "end" is reached, or the end of the file. * * @param fp * file pointer from which to read. * @param op * where to read the data. * @param bufstate * used to determine various file attributes: * @li LO_REPATE (0): We are reading from the same buffer as the last call. * @li LO_LINEMODE (1): file that is being read from is multi purpose (ie, other functions * will also be reading from this (treasure file, artifacts.) * @li LO_NEWFILE (2): This is the first read from a particular file, so the buffers should be reset. * @li LO_NOREAD (3): Reset the buffers, but don't read from it. (op can be null) * @param map_flags * ? * @return * @li LL_NORMAL if object was read. * @li LL_EOF if an error occured. * @li LL_MORE if this is a multipart object. * * @todo * document map_flags */ int load_object(FILE *fp, object *op, int bufstate, int map_flags) { int retval; char inbuf[MAX_BUF]; #define MAXDEPTH 10 object *items[MAXDEPTH]; int depth = 0; items[0] = op, strcpy(msgbuf, ""); msglen = 0; total_msglen = 0; strcpy(lorebuf, ""); if (bufstate == LO_NEWFILE || bufstate == LO_NOREAD) { /* LOG(llevDebug, "Switching lex buffers\n");*/ yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(yy_create_buffer(fp,YY_BUF_SIZE)); if (bufstate == LO_NOREAD) return LL_NORMAL; } if (bufstate == LO_LINEMODE) { YY_BUFFER_STATE yybufstate; yy_delete_buffer(YY_CURRENT_BUFFER); while (fgets(inbuf, MAX_BUF-3, fp)) { yybufstate = yy_scan_string(inbuf); retval = lex_load(&depth, items, MAXDEPTH, map_flags, 1); yy_delete_buffer(yybufstate); if (retval == LL_NORMAL) { if (depth == 0) return retval; else depth--; } } LOG(llevDebug, "Got eof while scanning strings\n"); return LL_EOF; } retval = lex_load(&depth, items, MAXDEPTH, map_flags, 0); /* LOG(llevDebug, " load completed, object=%s\n", op->name);*/ return retval; } /** * This takes a buffer, scans it for variables, and sets those variables * as appropriate in op. * * This function appears to be used in only 2 places - in crossedit to * override values and in c_wiz to mutate values. * * @param op * object to alter. * @param buf * modifications to apply. * @return * ? * @todo * document return value. */ int set_variable(object *op, const char *buf) { YY_BUFFER_STATE yybufstate, yycurbuf = YY_CURRENT_BUFFER; int retval, depth; object *items[MAXDEPTH]; strcpy(msgbuf, ""); msglen = 0; total_msglen = 0; strcpy(lorebuf, ""); items[0] = op; depth = 0; yy_push_state(INITIAL); yybufstate = yy_scan_string(buf); retval = lex_load(&depth, items, MAXDEPTH, 0, 0); yy_switch_to_buffer(yycurbuf); yy_delete_buffer(yybufstate); yy_pop_state(); return retval; } /* Start of C code */ /* This array equates the FLAG_ values with the V_ values. Use -1 to * put gaps in the array that should not be processed. * The order matches the order of the define values in 'define.h'. */ /** * This is a list of pointers that correspond to the FLAG_.. values. * This is a simple 1:1 mapping - if FLAG_FRIENDLY is 15, then * the 15'th element of this array should match that name. * If an entry is NULL, that is a flag not to loaded/saved. */ static const char *const flag_names[NUM_FLAGS+1] = { "alive", "wiz", NULL, NULL, "was_wiz", "applied", "unpaid", "can_use_shield", "no_pick", "client_anim_sync", "client_anim_random", /* 10 */ "is_animated", NULL /* FLAG_DIALOG_PARSED, not saved */, NULL /* flying */, "monster", "friendly", "generator", "is_thrown", "auto_apply", "treasure", "player sold", /* 20 */ "see_invisible", "can_roll", "overlay_floor", "is_turnable", NULL /* walk_off */, NULL /* fly_on */, NULL /*fly_off*/, "is_used_up", "identified", "reflecting", /* 30 */ "changing", "splitting", "hitback", "startequip", "blocksview", "undead", "scared", "unaggressive", "reflect_missile", "reflect_spell", /* 40 */ "no_magic", "no_fix_player", "is_lightable", "tear_down", "run_away", NULL /*pass_thru */, NULL /*can_pass_thru*/, NULL /*"pick_up"*/, "unique", "no_drop", /* 50 */ NULL /* wizcast*/, "can_cast_spell", "can_use_scroll", "can_use_range", "can_use_bow", "can_use_armour", "can_use_weapon", "can_use_ring", "has_ready_range", "has_ready_bow", /* 60 */ "xrays", NULL, "is_floor", "lifesave", "no_strength", "sleep", "stand_still", "random_movement", "only_attack", "confused", /* 70 */ "stealth", NULL, NULL, "cursed", "damned", "see_anywhere", "known_magical", "known_cursed", "can_use_skill", "been_applied", /* 80 */ "has_ready_scroll", NULL, NULL, NULL, "make_invisible", "inv_locked", "is_wooded", "is_hilly", "has_ready_skill", "has_ready_weapon", /* 90 */ "no_skill_ident", "is_blind", "can_see_in_dark", "is_cauldron", NULL, "no_steal", "one_hit", NULL, "berserk", "neutral", /* 100 */ "no_attack", "no_damage", NULL, NULL, "activate_on_push", "activate_on_release", "is_water", "use_content_on_gen", NULL, "is_buildable", /* 110 */ NULL, "blessed", "known_blessed" }; /** * Initialises the array of variable-names. Needed before any * objects can be loaded. Called by init_library(). * @todo * remove as it is empty. */ void init_vars(void) { } /** * Frees all memory allocated by the loader. */ void free_loader(void) { yy_delete_buffer(YY_CURRENT_BUFFER); /* Comment out this yylex_destroy(), as it results in link errors * on linux */ /* yylex_destroy();*/ } /** * This returns a string of the integer movement type * * @param sb * buffer that will contain the description. Must not be NULL. * @param mt * move to describe. */ static void get_string_move_type(StringBuffer *sb, MoveType mt) { static char retbuf[MAX_BUF], retbuf_all[MAX_BUF]; int i, all_count = 0, count; strcpy(retbuf, ""); strcpy(retbuf_all, " all"); /* Quick check, and probably fairly common */ if (mt == MOVE_ALL) { stringbuffer_append_string(sb, "all"); return; } if (mt == 0) { stringbuffer_append_string(sb, "0"); return; } /* We basically slide the bits down. Why look at MOVE_ALL? * because we may want to return a string like 'all -swim', * and if we just looked at mt, we couldn't get that. */ for (i = MOVE_ALL, count = 0; i != 0; i >>= 1, count++) { if (mt&(1<key_values; my_field != NULL; my_field = my_field->next) { /* Find the field in the opposing member. */ arch_field = object_get_key_value(op2, my_field->key); /* If there's no partnering field, or it's got a different value, save our field. */ if (arch_field == NULL || my_field->value != arch_field->value) { stringbuffer_append_string(sb, my_field->key); stringbuffer_append_string(sb, " "); /* If this is null, then saving it as a space should * cause it to be null again. */ if (my_field->value) stringbuffer_append_string(sb, my_field->value); stringbuffer_append_string(sb, "\n"); } } /* We don't need to worry about the arch's extra fields - they * will get taken care of the object_copy() function. */ if (op->name && op->name != op2->name) { ADD_STRINGLINE_ENTRY(sb, "name ", op->name); } if (op->name_pl && op->name_pl != op2->name_pl) { ADD_STRINGLINE_ENTRY(sb, "name_pl ", op->name_pl); } if (op->anim_suffix && op->anim_suffix != op2->anim_suffix) { ADD_STRINGLINE_ENTRY(sb, "anim_suffix ", op->anim_suffix); } if (op->custom_name && op->custom_name != op2->custom_name) { ADD_STRINGLINE_ENTRY(sb, "custom_name ", op->custom_name); } if (op->title && op->title != op2->title) { ADD_STRINGLINE_ENTRY(sb, "title ", op->title); } if (op->race && op->race != op2->race) { ADD_STRINGLINE_ENTRY(sb, "race ", op->race); } if (op->slaying && op->slaying != op2->slaying) { ADD_STRINGLINE_ENTRY(sb, "slaying ", op->slaying); } if (op->skill && op->skill != op2->skill) { ADD_STRINGLINE_ENTRY(sb, "skill ", op->skill); } if (op->msg && op->msg != op2->msg) { stringbuffer_append_string(sb, "msg\n"); stringbuffer_append_string(sb, op->msg); stringbuffer_append_string(sb, "endmsg\n"); } if (op->lore && op->lore != op2->lore) { stringbuffer_append_string(sb, "lore\n"); stringbuffer_append_string(sb, op->lore); stringbuffer_append_string(sb, "endlore\n"); } if (op->other_arch != op2->other_arch && op->other_arch != NULL && op->other_arch->name) { ADD_STRINGLINE_ENTRY(sb, "other_arch ", op->other_arch->name); } if (op->face != op2->face) { ADD_STRINGLINE_ENTRY(sb, "face ", op->face->name); } if (op->animation_id != op2->animation_id) { if (op->animation_id) { ADD_STRINGLINE_ENTRY(sb, "animation ", animations[GET_ANIM_ID(op)].name); if (!QUERY_FLAG (op, FLAG_ANIMATE)) { stringbuffer_append_string(sb, "is_animated 0\n"); } } else { stringbuffer_append_string(sb, "animation NONE\n"); } } if (op->stats.Str != op2->stats.Str) FAST_SAVE_LONG(sb, "Str ", op->stats.Str); if (op->stats.Dex != op2->stats.Dex) FAST_SAVE_LONG(sb, "Dex ", op->stats.Dex); if (op->stats.Con != op2->stats.Con) FAST_SAVE_LONG(sb, "Con ", op->stats.Con); if (op->stats.Wis != op2->stats.Wis) FAST_SAVE_LONG(sb, "Wis ", op->stats.Wis); if (op->stats.Pow != op2->stats.Pow) FAST_SAVE_LONG(sb, "Pow ", op->stats.Pow); if (op->stats.Cha != op2->stats.Cha) FAST_SAVE_LONG(sb, "Cha ", op->stats.Cha); if (op->stats.Int != op2->stats.Int) FAST_SAVE_LONG(sb, "Int ", op->stats.Int); if (op->stats.hp != op2->stats.hp) FAST_SAVE_LONG(sb, "hp ", op->stats.hp); if (op->stats.maxhp != op2->stats.maxhp) FAST_SAVE_LONG(sb, "maxhp ", op->stats.maxhp); if (op->stats.sp != op2->stats.sp) FAST_SAVE_LONG(sb, "sp ", op->stats.sp); if (op->stats.maxsp != op2->stats.maxsp) FAST_SAVE_LONG(sb, "maxsp ", op->stats.maxsp); if (op->stats.grace != op2->stats.grace) FAST_SAVE_LONG(sb, "grace ", op->stats.grace); if (op->stats.maxgrace != op2->stats.maxgrace) FAST_SAVE_LONG(sb, "maxgrace ", op->stats.maxgrace); if (op->stats.exp != op2->stats.exp) { snprintf(buf2, sizeof(buf2), "%"FMT64, op->stats.exp); ADD_STRINGLINE_ENTRY(sb, "exp ", buf2); } if (op->perm_exp != op2->perm_exp) { snprintf(buf2, sizeof(buf2), "%"FMT64, op->perm_exp); ADD_STRINGLINE_ENTRY(sb, "perm_exp ", buf2); } if (op->expmul != op2->expmul) FAST_SAVE_DOUBLE(sb, "expmul ", op->expmul); if (op->stats.food != op2->stats.food) FAST_SAVE_LONG(sb, "food ", op->stats.food); if (op->stats.dam != op2->stats.dam) FAST_SAVE_LONG(sb, "dam ", op->stats.dam); if (op->stats.luck != op2->stats.luck) FAST_SAVE_LONG(sb, "luck ", op->stats.luck); if (op->stats.wc != op2->stats.wc) FAST_SAVE_LONG(sb, "wc ", op->stats.wc); if (op->stats.ac != op2->stats.ac) FAST_SAVE_LONG(sb, "ac ", op->stats.ac); if (op->x != op2->x) FAST_SAVE_LONG(sb, "x ", op->x); if (op->y != op2->y) FAST_SAVE_LONG(sb, "y ", op->y); if (op->speed != op2->speed) { FAST_SAVE_DOUBLE(sb, "speed ", op->speed); } if (op->speed > 0 && op->speed_left != op2->speed_left) { FAST_SAVE_DOUBLE(sb, "speed_left ", op->speed_left); } if (op->weapon_speed != op2->weapon_speed) { FAST_SAVE_DOUBLE(sb, "weapon_speed ", op->weapon_speed); } if (op->weapon_speed > 0 && op->weapon_speed_left != op2->weapon_speed_left) { FAST_SAVE_DOUBLE(sb, "weapon_speed_left ", op->weapon_speed_left); } if (op->move_status != op2->move_status) FAST_SAVE_LONG(sb, "move_state ", op->move_status); if (op->attack_movement != op2->attack_movement) FAST_SAVE_LONG(sb, "attack_movement ", op->attack_movement); if (op->nrof != op2->nrof) FAST_SAVE_LONG(sb, "nrof ", op->nrof); if (op->level != op2->level) FAST_SAVE_LONG(sb, "level ", op->level); if (op->direction != op2->direction) FAST_SAVE_LONG(sb, "direction ", op->direction); if (op->type != op2->type) FAST_SAVE_LONG(sb, "type ", op->type); if (op->subtype != op2->subtype) FAST_SAVE_LONG(sb, "subtype ", op->subtype); if (op->attacktype != op2->attacktype) FAST_SAVE_LONG(sb, "attacktype ", op->attacktype); for (tmp = 0; tmp < NROFATTACKS; tmp++) { if (op->resist[tmp] != op2->resist[tmp]) { stringbuffer_append_string(sb, "resist_"); FAST_SAVE_LONG(sb, resist_save[tmp], op->resist[tmp]); } } if (op->path_attuned != op2->path_attuned) FAST_SAVE_LONG(sb, "path_attuned ", op->path_attuned); if (op->path_repelled != op2->path_repelled) FAST_SAVE_LONG(sb, "path_repelled ", op->path_repelled); if (op->path_denied != op2->path_denied) FAST_SAVE_LONG(sb, "path_denied ", op->path_denied); if (op->material != op2->material) FAST_SAVE_LONG(sb, "material ", op->material); if (op->materialname && op->materialname != op2->materialname) { ADD_STRINGLINE_ENTRY(sb, "materialname ", op->materialname); } if (op->value != op2->value) FAST_SAVE_LONG(sb, "value ", op->value); if (op->carrying != op2->carrying) FAST_SAVE_LONG(sb, "carrying ", op->carrying); if (op->weight != op2->weight) FAST_SAVE_LONG(sb, "weight ", op->weight); if (op->invisible != op2->invisible) FAST_SAVE_LONG(sb, "invisible ", op->invisible); if (op->state != op2->state) FAST_SAVE_LONG(sb, "state ", op->state); if (op->magic != op2->magic) FAST_SAVE_LONG(sb, "magic ", op->magic); if (op->last_heal != op2->last_heal) FAST_SAVE_LONG(sb, "last_heal ", op->last_heal); if (op->last_sp != op2->last_sp) FAST_SAVE_LONG(sb, "last_sp ", op->last_sp); if (op->last_grace != op2->last_grace) FAST_SAVE_LONG(sb, "last_grace ", op->last_grace); if (op->last_eat != op2->last_eat) FAST_SAVE_LONG(sb, "last_eat ", op->last_eat); if (QUERY_FLAG(op, FLAG_IS_LINKED) && (tmp = get_button_value(op))) FAST_SAVE_LONG(sb, "connected ", tmp); if (op->glow_radius != op2->glow_radius) FAST_SAVE_LONG(sb, "glow_radius ", op->glow_radius); if (op->randomitems != op2->randomitems) { ADD_STRINGLINE_ENTRY(sb, "randomitems ", op->randomitems ? op->randomitems->name : "none"); } if (op->run_away != op2->run_away) FAST_SAVE_LONG(sb, "run_away ", op->run_away); if (op->pick_up != op2->pick_up) FAST_SAVE_LONG(sb, "pick_up ", op->pick_up); if (op->weight_limit != op2->weight_limit) FAST_SAVE_LONG(sb, "container ", op->weight_limit); if (op->will_apply != op2->will_apply) FAST_SAVE_LONG(sb, "will_apply ", op->will_apply); if (op->smoothlevel != op2->smoothlevel) FAST_SAVE_LONG(sb, "smoothlevel ", op->smoothlevel); if (op->map_layer != op2->map_layer) ADD_STRINGLINE_ENTRY(sb, "map_layer ", map_layer_name[op->map_layer]); if (op->weapontype && op->weapontype != op2->weapontype) { FAST_SAVE_LONG(sb, "weapontype ", op->weapontype); } if (op->elevation && op->elevation != op2->elevation) { FAST_SAVE_LONG(sb, "elevation ", op->elevation); } if (op->client_type && op->client_type != op2->client_type) { FAST_SAVE_LONG(sb, "client_type ", op->client_type); } if (op->item_power != op2->item_power) { FAST_SAVE_LONG(sb, "item_power ", op->item_power); } if (op->duration != op2->duration) FAST_SAVE_LONG(sb, "duration ", op->duration); if (op->range != op2->range) FAST_SAVE_LONG(sb, "range ", op->range); if (op->range_modifier != op2->range_modifier) FAST_SAVE_LONG(sb, "range_modifier ", op->range_modifier); if (op->duration_modifier != op2->duration_modifier) FAST_SAVE_LONG(sb, "duration_modifier ", op->duration_modifier); if (op->dam_modifier != op2->dam_modifier) FAST_SAVE_LONG(sb, "dam_modifier ", op->dam_modifier); if (op->gen_sp_armour != op2->gen_sp_armour) { FAST_SAVE_LONG(sb, "gen_sp_armour ", op->gen_sp_armour); } /* I've kept the old int move type saving code commented out. * In an ideal world, we'd know if we want to do a quick * save (say to a temp map, where we don't care about strings), * or a slower save/dm dump, where printing out strings is handy. */ if (op->move_type != op2->move_type) { /*FAST_SAVE_LONG(sb, "move_type ", op->move_type)*/ stringbuffer_append_string(sb, "move_type "); get_string_move_type(sb, op->move_type); stringbuffer_append_string(sb, "\n"); } if (op->move_block != op2->move_block) { /*FAST_SAVE_LONG(sb, "move_block ", op->move_block)*/ stringbuffer_append_string(sb, "move_block "); get_string_move_type(sb, op->move_block); stringbuffer_append_string(sb, "\n"); } if (op->move_allow != op2->move_allow) { /*FAST_SAVE_LONG(sb, "move_allow ", op->move_allow);*/ stringbuffer_append_string(sb, "move_allow "); get_string_move_type(sb, op->move_allow); stringbuffer_append_string(sb, "\n"); } if (op->move_on != op2->move_on) { /*FAST_SAVE_LONG(sb, "move_on ", op->move_on);*/ stringbuffer_append_string(sb, "move_on "); get_string_move_type(sb, op->move_on); stringbuffer_append_string(sb, "\n"); } if (op->move_off != op2->move_off) { /*FAST_SAVE_LONG(sb, "move_off ", op->move_off);*/ stringbuffer_append_string(sb, "move_off "); get_string_move_type(sb, op->move_off); stringbuffer_append_string(sb, "\n"); } if (op->move_slow != op2->move_slow) { /*FAST_SAVE_LONG(sb, "move_slow ", op->move_slow);*/ stringbuffer_append_string(sb, "move_slow "); get_string_move_type(sb, op->move_slow); stringbuffer_append_string(sb, "\n"); } if (op->move_slow_penalty != op2->move_slow_penalty) { FAST_SAVE_DOUBLE(sb, "move_slow_penalty ", op->move_slow_penalty); } if (!COMPARE_FLAGS(op, op2)) { for (tmp = 0; tmp <= NUM_FLAGS; tmp++) { if (flag_names[tmp] && (QUERY_FLAG(op, tmp) != QUERY_FLAG(op2, tmp))) { ADD_STRINGLINE_ENTRY(sb, flag_names[tmp], QUERY_FLAG(op, tmp) ? " 1" : " 0"); } } } /* Save body locations */ for (i = 0; i < NUM_BODY_LOCATIONS; i++) { if (op->body_info[i] != op2->body_info[i]) { stringbuffer_append_string(sb, body_locations[i].save_name); FAST_SAVE_LONG(sb, " ", op->body_info[i]); } } /* Save discrete damage if applicable * Note that given how the discrete_damage allocation is done, there can't be any case where * op->discrete_damage == NULL && op2->discrete_damage != NULL. */ if (op->discrete_damage) { for (i = 0; i < NROFATTACKS; i++) { if (op2->discrete_damage == NULL || op2->discrete_damage[i] != op->discrete_damage[i]) { stringbuffer_append_string(sb, "damage_"); FAST_SAVE_LONG(sb, resist_save[i], op->discrete_damage[i]); } } } } /** * Dumps all variables in an object to a file. * * @param fp * file to write to. * @param op * object to save. * @param flag * combination of @ref SAVE_FLAG_xxx "SAVE_FLAG_xxx" flags. * @return * one of @ref SAVE_ERROR_xxx "SAVE_ERROR_xxx" values. */ int save_object(FILE *fp, object *op, int flag) { archetype *at; char *cp; int res; StringBuffer *sb; /* Even if the object does have an owner, it would seem that we should * still save it. */ if (object_get_owner(op) != NULL || fp == NULL) return SAVE_ERROR_OK; /* If it is unpaid and we don't want to save those, just return. */ if (!(flag&SAVE_FLAG_SAVE_UNPAID) && (QUERY_FLAG(op, FLAG_UNPAID))) { return SAVE_ERROR_OK; } /* If the object has no_save set, just return */ if (QUERY_FLAG(op, FLAG_NO_SAVE)) return SAVE_ERROR_OK; if ((at = op->arch) == NULL) at = empty_archetype; if (fprintf(fp, "arch %s\n", at->name) < 0) return SAVE_ERROR_WRITE; sb = stringbuffer_new(); if (op->arch->reference_count > 0) { /* The object is a custom item/monster, so we handle its save differently. * We compare the custom archetype to the "original" one, then only save hp/gr/sp * which are the only values we can't recompute later - all others are modified by items in inventory. * Note that hp/gr/sp will appear twice in save, but last value will take precedence. */ archetype *original = find_archetype(op->arch->name); if (!original) { LOG(llevError, "could not find original archetype %s for custom monster!\n", op->arch->name); abort(); } get_ob_diff(sb, &op->arch->clone, &original->clone); if (op->stats.hp != op->arch->clone.stats.hp) FAST_SAVE_LONG(sb, "hp ", op->stats.hp); if (op->stats.sp != op->arch->clone.stats.sp) FAST_SAVE_LONG(sb, "sp ", op->stats.sp); if (op->stats.grace != op->arch->clone.stats.grace) FAST_SAVE_LONG(sb, "grace ", op->stats.grace); if (op->x != op->arch->clone.x) FAST_SAVE_LONG(sb, "x ", op->x); if (op->y != op->arch->clone.y) FAST_SAVE_LONG(sb, "y ", op->y); } else { /* if op is an artifact, then find the "standard" artifact to use that for the diff */ if (op->artifact != NULL) { object *base; const artifact *artifact; artifact = find_artifact(op, op->artifact); if (artifact == NULL) { LOG(llevError, "could not find artifact %s [%d] to save data\n", op->artifact, op->type); get_ob_diff(sb, op, &at->clone); } else { stringbuffer_append_printf(sb, "artifact %s\n", op->artifact); base = arch_to_object(at); give_artifact_abilities(base, artifact->item); get_ob_diff(sb, op, base); object_free2(base, FREE_OBJ_NO_DESTROY_CALLBACK | FREE_OBJ_FREE_INVENTORY); } } else { get_ob_diff(sb, op, &at->clone); } } cp = stringbuffer_finish(sb); if (fputs(cp, fp) == EOF) { free(cp); return SAVE_ERROR_WRITE; } free(cp); /* Eneq(@csd.uu.se): Added this to allow containers being saved with contents*/ FOR_INV_PREPARE(op, tmp) if ((res = save_object(fp, tmp, flag)) != 0) return res; FOR_INV_FINISH(); if (fprintf(fp, "end\n") < 0) return SAVE_ERROR_WRITE; return SAVE_ERROR_OK; } crossfire-1.70.0/common/Makefile.am0000644000014500000120000000374111731300526014031 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@scruz.net noinst_LIBRARIES = libcross.a libcross_a_SOURCES = \ anim.c \ arch.c\ artifact.c\ button.c\ dialog.c \ exp.c\ friend.c\ glue.c\ holy.c\ info.c\ image.c \ init.c\ item.c\ languages.c\ links.c\ living.c\ loader.l\ logger.c\ los.c\ map.c\ ob_methods.c \ ob_types.c \ object.c\ path.c\ porting.c\ player.c\ re-cmp.c\ readable.c\ recipe.c\ region.c\ shstr.c\ stringbuffer.c\ time.c\ treasure.c\ utils.c EXTRA_DIST = README AM_CPPFLAGS = -I$(top_srcdir)/include -DDATADIR=\"$(pkgdatadir)\" -DCONFDIR=\"$(pkgconfdir)\" \ -DLIBDIR=\"$(pkglibdir)\" -DLOCALDIR=\"$(pkgstatedir)\" AM_LFLAGS = -i proto: cproto -e -o ../include/libproto.h.bak $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) loader.c " " | $(AWK) -v RS=" " '/.c$$/ { print }'` sed -e "s/__signed/signed/g" -e "/inline/d" -e "/YY_BUFFER/d" -e "/yy_size_t/d" < ../include/libproto.h.bak > ../include/libproto.h chmod 644 ../include/libproto.h rm -f ../include/libproto.h.bak CLEANFILES = loader.c crossfire-1.70.0/common/living.c0000644000014500000120000026132111731300526013431 00000000000000/* * static char *rcsid_living_c = * "$Id: living.c 16343 2011-12-28 22:45:32Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file living.c * Functions related to attributes, weight, experience, which concern only living things. * * @todo * make "stat"/"attr" coherent. */ #include #include #include #include #include "living.h" static float get_con_bonus(int stat); static float get_sp_bonus(int stat); static float get_grace_bonus(int stat); static size_t get_index(int stat, size_t max_index); /** * Handy little macro that adds exp and keeps it within bounds. Since * we are now using 64 bit values, I'm not all concerned about overflow issues * with exptotal wrapping. exptotal is typically op->exp, or op->perm_exp */ #define ADD_EXP(exptotal, exp) { exptotal += exp; if (exptotal > MAX_EXPERIENCE) exptotal = MAX_EXPERIENCE; } /** * The definitions below are indexes into the bonuses[] array. * Rather than have a bunch of different variables, it is easier * to just have a single array - all access to these is done * through the get_cha_...() function in any case - * making it an array makes processing simpler. * * The INT_ prefix is to note the type of array the bonus * goes into (vs FLOAT) - it is unfortunately that it is also the * name of one of the stats. * * The NUM_BONUSES is how many bonuses they are (size of the array), * so is equal to last value +1. */ #define INT_FEAR_BONUS 0 #define INT_TURN_BONUS 1 #define INT_CLERIC_CHANCE 2 #define INT_LEARN_SPELL 3 #define INT_CHA_BONUS 4 #define INT_DEX_BONUS 5 #define INT_DAM_BONUS 6 #define INT_THAC0_BONUS 7 #define INT_WEIGHT_LIMIT 8 #define NUM_INT_BONUSES 9 static int *int_bonuses[NUM_INT_BONUSES]; /** * Following array corresponds to the defines above, but are the text * names as found in the file. In this way, processing of file is simpler. */ static const char *int_bonus_names[NUM_INT_BONUSES] = { "cha_fear_bonus", "wis_turn_bonus", "wis_cleric_chance", "int_wis_learn_spell", "cha_shop_bonus", "dex_bonus", "str_damage_bonus", "str_hit_bonus", "str_weight_limit", }; /** * This is basically same as above, but for bonuses in which we store * the value as a float. */ #define FLOAT_CON_BONUS 0 #define FLOAT_DEX_BONUS 1 #define FLOAT_SP_BONUS 2 #define FLOAT_GRACE_BONUS 3 #define NUM_FLOAT_BONUSES 4 static float *float_bonuses[NUM_FLOAT_BONUSES]; static const char *float_bonus_names[NUM_FLOAT_BONUSES] = { "con_hp_bonus", "dex_speed_bonus", "pow_int_sp_bonus", "wis_pow_grace_bonus" }; /* * Since this is nowhere defined ... * Both come in handy at least in function add_exp() */ #define MAX_EXPERIENCE levels[settings.max_level] extern sint64 *levels; #define MAX_SAVE_LEVEL 110 /** * Probability to avoid something. * * This no longer needs to be changed anytime the number of * levels is increased - rather, did_make_save() will do the * right thing and always use range within this table. * for safety, savethrow should not be accessed directly anymore, * and instead did_make_save() should be used instead. */ static const int savethrow[MAX_SAVE_LEVEL+1] = { 18, 18, 17, 16, 15, 14, 14, 13, 13, 12, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; /** Attack type names. */ const char *const attacks[NROFATTACKS] = { "physical", "magical", "fire", "electricity", "cold", "confusion", "acid", "drain", "weaponmagic", "ghosthit", "poison", "slow", "paralyze", "turn undead", "fear", "cancellation", "depletion", "death", "chaos", "counterspell", "god power", "holy power", "blinding", "", "life stealing", "disease" }; /** Message when a player is drained of a stat. */ static const char *const drain_msg[NUM_STATS] = { "Oh no! You are weakened!", "You're feeling clumsy!", "You feel less healthy", "You suddenly begin to lose your memory!", "Your face gets distorted!", "Watch out, your mind is going!", "Your spirit feels drained!" }; /** Message when a player has a stat restored. */ const char *const restore_msg[NUM_STATS] = { "You feel your strength return.", "You feel your agility return.", "You feel your health return.", "You feel your wisdom return.", "You feel your charisma return.", "You feel your memory return.", "You feel your spirits return." }; /** Message when a player increases permanently a stat. */ const char *const gain_msg[NUM_STATS] = { "You feel stronger.", "You feel more agile.", "You feel healthy.", "You feel wiser.", "You seem to look better.", "You feel smarter.", "You feel more potent." }; /** Message when a player decreases permanently a stat. */ const char *const lose_msg[NUM_STATS] = { "You feel weaker!", "You feel clumsy!", "You feel less healthy!", "You lose some of your memory!", "You look ugly!", "You feel stupid!", "You feel less potent!" }; /** Name of stats. */ const char *const statname[NUM_STATS] = { "strength", "dexterity", "constitution", "wisdom", "charisma", "intelligence", "power" }; /** Short name of stats. */ const char *const short_stat_name[NUM_STATS] = { "Str", "Dex", "Con", "Wis", "Cha", "Int", "Pow" }; /** * Sets Str/Dex/con/Wis/Cha/Int/Pow in stats to value, depending on * what attr is (STR to POW). * * @param stats * item to modify. Must not be NULL. * @param attr * attribute to change. * @param value * new value. * * @todo * check if attr is valid? Check whether value is valid or not. */ void set_attr_value(living *stats, int attr, sint8 value) { switch (attr) { case STR: stats->Str = value; break; case DEX: stats->Dex = value; break; case CON: stats->Con = value; break; case WIS: stats->Wis = value; break; case POW: stats->Pow = value; break; case CHA: stats->Cha = value; break; case INT: stats->Int = value; break; } } /** * Like set_attr_value(), but instead the value (which can be negative) * is added to the specified stat. * * @param stats * item to modify. Must not be NULL. * @param attr * attribute to change. * @param value * delta (can be positive). * * @todo * check if attr is valid? Checks result valus is valid? */ void change_attr_value(living *stats, int attr, sint8 value) { if (value == 0) return; switch (attr) { case STR: stats->Str += value; break; case DEX: stats->Dex += value; break; case CON: stats->Con += value; break; case WIS: stats->Wis += value; break; case POW: stats->Pow += value; break; case CHA: stats->Cha += value; break; case INT: stats->Int += value; break; default: LOG(llevError, "Invalid attribute in change_attr_value: %d\n", attr); } } /** * Gets the value of a stat. * * @param stats * item from which to get stat. * @param attr * attribute to get. * @return * specified attribute, 0 if not found. * * @see set_attr_value(). */ sint8 get_attr_value(const living *stats, int attr) { switch (attr) { case STR: return(stats->Str); case DEX: return(stats->Dex); case CON: return(stats->Con); case WIS: return(stats->Wis); case CHA: return(stats->Cha); case INT: return(stats->Int); case POW: return(stats->Pow); } return 0; } /** * Ensures that all stats (str/dex/con/wis/cha/int) are within the * passed in range of min_stat and max_stat. Often, the caller * will pass in MIN_STAT and MAX_STAT, but in case of force objects * or temporary calculations, we want things outside the range * (force objects may have negative stats, but we don't want them * too negative) * * @param stats * attributes to check. * @param min_stat * lowest the stat can be * @param max_stat * highest the stat can be */ void check_stat_bounds(living *stats, sint8 min_stat, sint8 max_stat) { int i, v; for (i = 0; i < NUM_STATS; i++) if ((v = get_attr_value(stats, i)) > max_stat) set_attr_value(stats, i, max_stat); else if (v < min_stat) set_attr_value(stats, i, min_stat); } /** * Rather than having a whole bunch of if (flag) draw.. else _draw, * make this macro to clean those up. Not usuable outside change_abil * function since some of the values passed to draw_ext_info are hardcoded. */ #define DIFF_MSG(flag, subtype1, subtype2, msg1, msg2) \ draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, (flag > 0) ? subtype1 : subtype2, (flag > 0) ? msg1 : msg2); /** * Permanently alters an object's stats/flags based on another object. * @return * 1 if we sucessfully changed a stat, 0 if nothing was changed. * * @note * flag is set to 1 if we are applying the object, -1 if we are removing * the object. * * @note * It is the calling functions responsibilty to check to see if the object * can be applied or not. * The main purpose of calling this function is the messages that are * displayed - fix_object should really always be called after this when * removing an object - that is because it is impossible to know if some object * is the only source of an attacktype or spell attunement, so this function * will clear the bits, but the player may still have some other object * that gives them that ability. * * @todo * check logic, and things like that. Is the call to fix_object always required? */ int change_abil(object *op, object *tmp) { int flag = QUERY_FLAG(tmp, FLAG_APPLIED) ? 1 : -1, i, j, success = 0; object refop; int potion_max = 0; /* remember what object was like before it was changed. note that * refop is a local copy of op only to be used for detecting changes * found by fix_object. refop is not a real object */ memcpy(&refop, op, sizeof(object)); if (op->type == PLAYER) { if (tmp->type == POTION) { potion_max = 1; for (j = 0; j < NUM_STATS; j++) { int nstat, ostat; ostat = get_attr_value(&(op->contr->orig_stats), j); i = get_attr_value(&(tmp->stats), j); /* nstat is what the stat will be after use of the potion */ nstat = flag*i+ostat; /* Do some bounds checking. While I don't think any * potions do so right now, there is the potential for potions * that adjust that stat by more than one point, so we need * to allow for that. */ if (nstat < 1 && i*flag < 0) nstat = 1; else if (nstat > 20+get_attr_value(&(op->arch->clone.stats), j)) { nstat = 20+get_attr_value(&(op->arch->clone.stats), j); } if (nstat != ostat) { set_attr_value(&(op->contr->orig_stats), j, nstat); potion_max = 0; } else if (i) { /* potion is useless - player has already hit the natural maximum */ potion_max = 1; } } /* This section of code ups the characters normal stats also. I am not * sure if this is strictly necessary, being that fix_object probably * recalculates this anyway. */ for (j = 0; j < NUM_STATS; j++) change_attr_value(&(op->stats), j, flag*get_attr_value(&(tmp->stats), j)); check_stat_bounds(&(op->stats), MIN_STAT, settings.max_stat); } /* end of potion handling code */ } /* reset attributes that fix_object doesn't reset since it doesn't search * everything to set */ if (flag == -1) { op->attacktype &= ~tmp->attacktype; op->path_attuned &= ~tmp->path_attuned; op->path_repelled &= ~tmp->path_repelled; op->path_denied &= ~tmp->path_denied; /* Presuming here that creatures only have move_type, * and not the other move_ fields. */ op->move_type &= ~tmp->move_type; } /* call fix_object since op object could have whatever attribute due * to multiple items. if fix_object always has to be called after * change_ability then might as well call it from here */ fix_object(op); /* Fix player won't add the bows ability to the player, so don't * print out message if this is a bow. */ if (tmp->attacktype&AT_CONFUSION && tmp->type != BOW) { success = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_ATTACKTYPE_GAIN, MSG_TYPE_ATTRIBUTE_ATTACKTYPE_LOSS, "Your hands begin to glow red.", "Your hands stop glowing red."); } if (QUERY_FLAG(op, FLAG_LIFESAVE) != QUERY_FLAG(&refop, FLAG_LIFESAVE)) { success = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN, MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS, "You feel very protected.", "You don't feel protected anymore."); } if (QUERY_FLAG(op, FLAG_REFL_MISSILE) != QUERY_FLAG(&refop, FLAG_REFL_MISSILE)) { success = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN, MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS, "A magic force shimmers around you.", "The magic force fades away."); } if (QUERY_FLAG(op, FLAG_REFL_SPELL) != QUERY_FLAG(&refop, FLAG_REFL_SPELL)) { success = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN, MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS, "You feel more safe now, somehow.", "Suddenly you feel less safe, somehow."); } /* movement type has changed. We don't care about cases where * user has multiple items giving the same type appled like we * used to - that is more work than what we gain, plus messages * can be misleading (a little higher could be miscontrued from * from fly high) */ if (tmp->move_type && op->move_type != refop.move_type) { success = 1; /* MOVE_FLY_HIGH trumps MOVE_FLY_LOW - changing your move_fly_low * status doesn't make a difference if you are flying high */ if (tmp->move_type&MOVE_FLY_LOW && !(op->move_type&MOVE_FLY_HIGH)) { DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_MOVE, MSG_TYPE_ATTRIBUTE_MOVE, "You start to float in the air!", "You float down to the ground."); } if (tmp->move_type&MOVE_FLY_HIGH) { /* double conditional - second case covers if you have move_fly_low - * in that case, you don't actually land */ DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_MOVE, MSG_TYPE_ATTRIBUTE_MOVE, "You soar into the air!.", (op->move_type&MOVE_FLY_LOW ? "You fly lower in the air": "You float down to the ground.")); } if (tmp->move_type&MOVE_SWIM) DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_MOVE, MSG_TYPE_ATTRIBUTE_MOVE, "You feel ready for a swim", "You no longer feel like swimming"); /* Changing move status may mean you are affected by things you weren't before */ object_check_move_on(op, op); } /* becoming UNDEAD... a special treatment for this flag. Only those not * originally undead may change their status */ if (!QUERY_FLAG(&op->arch->clone, FLAG_UNDEAD)) if (QUERY_FLAG(op, FLAG_UNDEAD) != QUERY_FLAG(&refop, FLAG_UNDEAD)) { success = 1; if (flag > 0) { if (op->race) free_string(op->race); op->race = add_string("undead"); draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_RACE, "Your lifeforce drains away!"); } else { if (op->race) free_string(op->race); if (op->arch->clone.race) op->race = add_string(op->arch->clone.race); else op->race = NULL; draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_RACE, "Your lifeforce returns!"); } } if (QUERY_FLAG(op, FLAG_STEALTH) != QUERY_FLAG(&refop, FLAG_STEALTH)) { success = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END, "You walk more quietly.", "You walk more noisily."); } if (QUERY_FLAG(op, FLAG_MAKE_INVIS) != QUERY_FLAG(&refop, FLAG_MAKE_INVIS)) { success = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END, "You become transparent.", "You can see yourself."); } /* blinded you can tell if more blinded since blinded player has minimal * vision */ if (QUERY_FLAG(tmp, FLAG_BLIND)) { success = 1; if (flag > 0) { if (QUERY_FLAG(op, FLAG_WIZ)) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_START, "Your mortal self is blinded."); else { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_START, "You are blinded."); SET_FLAG(op, FLAG_BLIND); if (op->type == PLAYER) op->contr->do_los = 1; } } else { if (QUERY_FLAG(op, FLAG_WIZ)) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_END, "Your mortal self can now see again."); else { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_END, "Your vision returns."); CLEAR_FLAG(op, FLAG_BLIND); if (op->type == PLAYER) op->contr->do_los = 1; } } } if (QUERY_FLAG(op, FLAG_SEE_IN_DARK) != QUERY_FLAG(&refop, FLAG_SEE_IN_DARK)) { success = 1; if (op->type == PLAYER) op->contr->do_los = 1; DIFF_MSG(flag, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END, "Your vision is better in the dark.", "You see less well in the dark."); } if (QUERY_FLAG(op, FLAG_XRAYS) != QUERY_FLAG(&refop, FLAG_XRAYS)) { success = 1; if (flag > 0) { if (QUERY_FLAG(op, FLAG_WIZ)) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START, "Your vision becomes a little clearer."); else { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_START, "Everything becomes transparent."); if (op->type == PLAYER) op->contr->do_los = 1; } } else { if (QUERY_FLAG(op, FLAG_WIZ)) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END, "Your vision becomes a bit out of focus."); else { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_GOOD_EFFECT_END, "Everything suddenly looks very solid."); if (op->type == PLAYER) op->contr->do_los = 1; } } } if (tmp->stats.luck) { success = 1; DIFF_MSG(flag*tmp->stats.luck, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel more lucky.", "You feel less lucky."); } if (tmp->stats.hp && op->type == PLAYER) { success = 1; DIFF_MSG(flag*tmp->stats.hp, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel much more healthy!", "You feel much less healthy!"); } if (tmp->stats.sp && op->type == PLAYER && tmp->type != SKILL) { success = 1; DIFF_MSG(flag*tmp->stats.sp, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel one with the powers of magic!", "You suddenly feel very mundane."); } /* for the future when artifacts set this -b.t. */ if (tmp->stats.grace && op->type == PLAYER) { success = 1; DIFF_MSG(flag*tmp->stats.grace, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel closer to your god!", "You suddenly feel less holy."); } if (tmp->stats.wc && op->type == PLAYER) { success = 1; DIFF_MSG(flag*tmp->stats.wc, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel more confident in combat.", "You feel less confident in combat."); } if (tmp->stats.ac && op->type == PLAYER) { success = 1; DIFF_MSG(flag*tmp->stats.ac, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel more confident in your dodging skills.", "You feel less confident in your dodging skills."); } if (tmp->stats.exp && tmp->type != SKILL && op->type == PLAYER) { success = 1; DIFF_MSG(flag*tmp->stats.exp, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel like you're moving faster.", "You feel like you're moving more slowly."); } if (tmp->stats.food && op->type == PLAYER) { success = 1; DIFF_MSG(flag*tmp->stats.food, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, "You feel your digestion slowing down.", "You feel your digestion speeding up."); } /* Messages for changed resistance */ for (i = 0; i < NROFATTACKS; i++) { if (i == ATNR_PHYSICAL) continue; /* Don't display about armour */ if (op->resist[i] != refop.resist[i]) { success = 1; if (op->resist[i] > refop.resist[i]) draw_ext_info_format(NDI_UNIQUE|NDI_BLUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN, "Your resistance to %s rises to %d%%.", change_resist_msg[i], op->resist[i]); else draw_ext_info_format(NDI_UNIQUE|NDI_BLUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_PROTECTION_LOSS, "Your resistance to %s drops to %d%%.", change_resist_msg[i], op->resist[i]); } } if (!potion_max) { for (j = 0; j < NUM_STATS; j++) { if ((i = get_attr_value(&(tmp->stats), j)) != 0) { success = 1; DIFF_MSG(i*flag, MSG_TYPE_ATTRIBUTE_STAT_GAIN, MSG_TYPE_ATTRIBUTE_STAT_LOSS, gain_msg[j], lose_msg[j]); } } } return success; } /** * Drains a random stat from op. * Stat draining by Vick 930307 * (Feeling evil, I made it work as well now. -Frank 8) * * @param op * object to drain. */ void drain_stat(object *op) { drain_specific_stat(op, RANDOM()%NUM_STATS); } /** * Drain a specified stat from op. * * @param op * victim to drain. * @param deplete_stats * statistic to drain. */ void drain_specific_stat(object *op, int deplete_stats) { object *tmp; archetype *at; at = find_archetype(ARCH_DEPLETION); if (!at) { LOG(llevError, "Couldn't find archetype depletion.\n"); return; } else { tmp = arch_present_in_ob(at, op); if (!tmp) { tmp = arch_to_object(at); tmp = object_insert_in_ob(tmp, op); SET_FLAG(tmp, FLAG_APPLIED); } } draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_STAT_LOSS, drain_msg[deplete_stats]); change_attr_value(&tmp->stats, deplete_stats, -1); fix_object(op); } /** * Remove depletion from op, if present, and warn player of such restorations. * @param op who to remove depletion from. * @param level maximum depletion level to remove, if -1 no maximum. * @return 0 if no depletion (or with no drained statistics) was present or level was insufficient, 1 if something was removed. */ int remove_depletion(object *op, int level) { object *depl; archetype *at; int i, count = 0; if ((at = find_archetype(ARCH_DEPLETION)) == NULL) { LOG(llevError, "Could not find archetype depletion\n"); return 0; } depl = arch_present_in_ob(at, op); if (depl == NULL) return 0; if (level != -1 && level < op->level) return 0; for (i = 0; i < NUM_STATS; i++) { if (get_attr_value(&depl->stats, i)) { count++; draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_STAT_GAIN, restore_msg[i]); } } object_remove(depl); object_free_drop_inventory(depl); fix_object(op); return (count == 0) ? 0 : 1; } /** * Alter the object's luck. * * @param op * object to altar. * @param value * delta to apply. 0 indicates timeout (moves luck towards 0), otherwise change the luck of the object * via an applied bad_luck object in inventory. */ void change_luck(object *op, int value) { object *tmp; archetype *at; int new_luck; at = find_archetype("luck"); if (!at) LOG(llevError, "Couldn't find archetype luck.\n"); else { tmp = arch_present_in_ob(at, op); if (!tmp) { if (!value) return; tmp = arch_to_object(at); tmp = object_insert_in_ob(tmp, op); SET_FLAG(tmp, FLAG_APPLIED); } if (value) { /* Limit the luck value of the bad luck object to +/-100. This * (arbitrary) value prevents overflows (both in the bad luck object and * in op itself). */ new_luck = tmp->stats.luck+value; if (new_luck >= -100 && new_luck <= 100) { op->stats.luck += value; tmp->stats.luck = new_luck; } } else { if (!tmp->stats.luck) { return; } /* Randomly change the players luck. Basically, we move it * back neutral (if greater>0, subtract, otherwise add) */ if (RANDOM()%(FABS(tmp->stats.luck)) >= RANDOM()%30) { int diff = tmp->stats.luck > 0 ? -1 : 1; op->stats.luck += diff; tmp->stats.luck += diff; } } } } /** * Subtracts stat-bonuses given by the class which the player has chosen. * * @param op * object which must be a player with contr not NULL. */ void remove_statbonus(object *op) { op->stats.Str -= op->arch->clone.stats.Str; op->stats.Dex -= op->arch->clone.stats.Dex; op->stats.Con -= op->arch->clone.stats.Con; op->stats.Wis -= op->arch->clone.stats.Wis; op->stats.Pow -= op->arch->clone.stats.Pow; op->stats.Cha -= op->arch->clone.stats.Cha; op->stats.Int -= op->arch->clone.stats.Int; op->contr->orig_stats.Str -= op->arch->clone.stats.Str; op->contr->orig_stats.Dex -= op->arch->clone.stats.Dex; op->contr->orig_stats.Con -= op->arch->clone.stats.Con; op->contr->orig_stats.Wis -= op->arch->clone.stats.Wis; op->contr->orig_stats.Pow -= op->arch->clone.stats.Pow; op->contr->orig_stats.Cha -= op->arch->clone.stats.Cha; op->contr->orig_stats.Int -= op->arch->clone.stats.Int; } /** * Adds stat-bonuses given by the class which the player has chosen. * * @param op * object which must be a player with contr not NULL. */ void add_statbonus(object *op) { op->stats.Str += op->arch->clone.stats.Str; op->stats.Dex += op->arch->clone.stats.Dex; op->stats.Con += op->arch->clone.stats.Con; op->stats.Wis += op->arch->clone.stats.Wis; op->stats.Pow += op->arch->clone.stats.Pow; op->stats.Cha += op->arch->clone.stats.Cha; op->stats.Int += op->arch->clone.stats.Int; op->contr->orig_stats.Str += op->arch->clone.stats.Str; op->contr->orig_stats.Dex += op->arch->clone.stats.Dex; op->contr->orig_stats.Con += op->arch->clone.stats.Con; op->contr->orig_stats.Wis += op->arch->clone.stats.Wis; op->contr->orig_stats.Pow += op->arch->clone.stats.Pow; op->contr->orig_stats.Cha += op->arch->clone.stats.Cha; op->contr->orig_stats.Int += op->arch->clone.stats.Int; } /** * Complement to fix_object() for player. * Figure out the players sp/mana/hp totals. Also do encumberance and various speeds. * @param op object being fixed, must not be NULL. * @param ac current ac, may be adjusted. * @param wc current wc, may be adjusted. * @param grace_obj praying skill, can be NULL. * @param mana_obj spell-casting skill, can be NULL. * @param wc_obj applied combat skill, can be NULL. * @param weapon_speed current weapon's speed. * @param added_speed speed bonus from items. */ static void fix_player(object *op, int *ac, int *wc, const object *grace_obj, const object *mana_obj, const object *wc_obj, int weapon_speed, float added_speed) { int pl_level, i; float character_load = 0.0, maxhp, tmpf; if (op->type != PLAYER) return; check_stat_bounds(&(op->stats), MIN_STAT, settings.max_stat); pl_level = op->level; if (pl_level < 1) pl_level = 1; /* safety, we should always get 1 levels worth of hp! */ /* * We store maxhp as a float to hold any fractional hp bonuses, * (eg, 2.5 con bonus). While it may seem simpler to just * do a get_con_bonus() * min(level,10), there is also a 1 hp/level * minimum (including bonus), se we have to do the logic on a * level basis. */ maxhp = 0.0; for (i = 1, op->stats.maxhp = 0; i <= pl_level && i <= 10; i++) { tmpf = op->contr->levhp[i]+get_con_bonus(op->stats.Con); /* always get at least 1 hp/level */ if (tmpf < 1.0) tmpf = 1.0; maxhp += tmpf; } /* Add 0.5 so that this rounds normally - the cast just drops the * fraction, so 1.5 becomes 1. */ op->stats.maxhp = (int)(maxhp + 0.5); if (op->level > 10) op->stats.maxhp += 2 * (op->level - 10); op->stats.maxhp += op->arch->clone.stats.maxhp; if (op->stats.hp > op->stats.maxhp) op->stats.hp = op->stats.maxhp; /* Sp gain is controlled by the level of the player's * relevant experience object (mana_obj, see above) */ /* set maxsp */ if (!mana_obj || !mana_obj->level) { op->stats.maxsp = 1; } else { float sp_tmp = 0.0, mana_bonus; int mana_lvl_max; mana_lvl_max = (mana_obj->level >10 ? 10: mana_obj->level); mana_bonus = (2.0*get_sp_bonus(op->stats.Pow)+get_sp_bonus(op->stats.Int)) / 3.0; for (i = 1; i <= mana_lvl_max; i++) { float stmp; stmp = op->contr->levsp[i] + mana_bonus; /* Got some extra bonus at first level */ if (i == 1) stmp += mana_bonus; if (stmp < 1.0) stmp = 1.0; sp_tmp += stmp; } op->stats.maxsp = (int)sp_tmp+op->arch->clone.stats.maxsp; if (mana_obj->level > 10) op->stats.maxsp += 2 * (mana_obj->level - 10); } /* Characters can get their sp supercharged via rune of transferrance */ if (op->stats.sp > op->stats.maxsp*2) op->stats.sp = op->stats.maxsp*2; /* set maxgrace, notice 3-4 lines below it depends on both Wis and Pow */ if (!grace_obj || !grace_obj->level) { op->stats.maxgrace = 1; } else { /* store grace in a float - this way, the divisions below don't create * big jumps when you go from level to level - with int's, it then * becomes big jumps when the sums of the bonuses jump to the next * step of 8 - with floats, even fractional ones are useful. */ float sp_tmp = 0.0, grace_bonus; grace_bonus = (get_grace_bonus(op->stats.Pow)+2.0*get_grace_bonus(op->stats.Wis)) / 3.0; for (i = 1; i <= grace_obj->level && i <= 10; i++) { float grace_tmp = 0.0; grace_tmp = op->contr->levgrace[i] + grace_bonus; /* Got some extra bonus at first level */ if (i == 1) grace_tmp += grace_bonus; if (grace_tmp < 1.0) grace_tmp = 1.0; sp_tmp += grace_tmp; } op->stats.maxgrace = (int)sp_tmp+op->arch->clone.stats.maxgrace; /* two grace points per level after 11 */ if (grace_obj->level > 10) op->stats.maxgrace += 2 * (grace_obj->level - 10); } /* No limit on grace vs maxgrace */ if (op->contr->braced) { (*ac) += 2; (*wc) += 4; } else (*ac) -= get_dex_bonus(op->stats.Dex); /* In new exp/skills system, wc bonuses are related to * the players level in a relevant exp object (wc_obj) * not the general player level -b.t. * I changed this slightly so that wc bonuses are better * than before. This is to balance out the fact that * the player no longer gets a personal weapon w/ 1 * improvement every level, now its fighterlevel/5. So * we give the player a bonus here in wc and dam * to make up for the change. Note that I left the * monster bonus the same as before. -b.t. */ if (wc_obj && wc_obj->level >= 1) { const char *wc_in = object_get_value(wc_obj, "wc_increase_rate"); int wc_increase_rate; wc_increase_rate = wc_in?atoi(wc_in):5; (*wc) -= get_thaco_bonus(op->stats.Str); (*wc) -= (wc_obj->level-1)/wc_increase_rate; op->stats.dam += (wc_obj->level-1)/4; } else { (*wc) -= (((op->level-1)/5)+get_thaco_bonus(op->stats.Str)); } op->stats.dam += get_dam_bonus(op->stats.Str); if (op->stats.dam < 1) op->stats.dam = 1; op->speed = MAX_PLAYER_SPEED+get_speed_bonus(op->stats.Dex); if (settings.search_items && op->contr->search_str[0]) op->speed -= 0.25; if (op->attacktype == 0) op->attacktype = op->arch->clone.attacktype; /* First block is for encumbrance of the player */ /* The check for FREE_PLAYER_LOAD_PERCENT < 1.0 is really a safety. One would * think that it should never be the case if that is set to 1.0, that carrying * would be above the limit. But it could be if character is weakened and * was otherwise at limit. Without that safety, could get divide by zeros. */ if (op->carrying > (get_weight_limit(op->stats.Str)*FREE_PLAYER_LOAD_PERCENT) && (FREE_PLAYER_LOAD_PERCENT < 1.0)) { int extra_weight = op->carrying-get_weight_limit(op->stats.Str)*FREE_PLAYER_LOAD_PERCENT; character_load = (float)extra_weight/(float)(get_weight_limit(op->stats.Str)*(1.0-FREE_PLAYER_LOAD_PERCENT)); /* character_load is used for weapon speed below, so sanitize value */ if (character_load >= 1.0) character_load = 1.0; /* If a character is fully loaded, they will always get cut down to min * speed no matter what their dex. Note that magic is below, so * still helps out. */ if (op->speed > MAX_PLAYER_SPEED) op->speed -= character_load*(op->speed-MIN_PLAYER_SPEED); else op->speed -= character_load*(MAX_PLAYER_SPEED-MIN_PLAYER_SPEED); } /* This block is for weapon speed */ op->weapon_speed = BASE_WEAPON_SPEED+get_speed_bonus(op->stats.Dex)-weapon_speed/20.0+added_speed/10.0; if (wc_obj) { op->weapon_speed += 0.005*wc_obj->level; } else op->weapon_speed += 0.005*op->level; /* character_load=1.0 means character is fully loaded, 0.0 is unloaded. Multiplying * by 0.2 for penalty is purely arbitrary, but slows things down without completely * stopping them. */ op->weapon_speed -= character_load*0.2; if (op->weapon_speed < 0.05) op->weapon_speed = 0.05; /* It is quite possible that a player's spell costing might have changed, * so we will check that now. */ esrv_update_spells(op->contr); } /** * Updates all abilities given by applied objects in the inventory * of the given object. * * This functions starts from base values (archetype or player object) * and then adjusts them according to what the player/monster has equipped. * * Note that a player always has stats reset to their initial value. * * July 95 - inserted stuff to handle new skills/exp system - b.t. * spell system split, grace points now added to system --peterm * * November 2006: max armor speed is always taken into account, no exception. * * @param op * object to reset. * * @todo * this function is too long, and should be cleaned / split. */ void fix_object(object *op) { int i; float max = 9, added_speed = 0, speed_reduce_from_disease = 1; int weapon_speed = 0; int best_wc = 0, best_ac = 0, wc = 0, ac = 0; int prot[NROFATTACKS], vuln[NROFATTACKS], potion_resist[NROFATTACKS]; const object *grace_obj = NULL, *mana_obj = NULL, *wc_obj = NULL; /* First task is to clear all the values back to their original values */ if (op->type == PLAYER) { for (i = 0; i < NUM_STATS; i++) { set_attr_value(&(op->stats), i, get_attr_value(&(op->contr->orig_stats), i)); set_attr_value(&(op->contr->applied_stats), i, 0); } if (settings.spell_encumbrance == TRUE) op->contr->encumbrance = 0; op->attacktype = 0; op->contr->digestion = 0; op->contr->gen_hp = 0; op->contr->gen_sp = 0; op->contr->gen_grace = 0; op->contr->gen_sp_armour = 10; op->contr->item_power = 0; /* Don't clobber all the range_ values. range_golem otherwise * gets reset for no good reason, and we don't want to reset * range_magic (what spell is readied). These three below * well get filled in based on what the player has equipped. */ op->contr->ranges[range_bow] = NULL; op->contr->ranges[range_misc] = NULL; op->contr->ranges[range_skill] = NULL; } /* If player */ memcpy(op->body_used, op->body_info, sizeof(op->body_info)); if (op->slaying != NULL) { free_string(op->slaying); op->slaying = NULL; } if (!QUERY_FLAG(op, FLAG_WIZ)) { CLEAR_FLAG(op, FLAG_XRAYS); CLEAR_FLAG(op, FLAG_MAKE_INVIS); } CLEAR_FLAG(op, FLAG_LIFESAVE); CLEAR_FLAG(op, FLAG_STEALTH); CLEAR_FLAG(op, FLAG_BLIND); if (!QUERY_FLAG(&op->arch->clone, FLAG_REFL_SPELL)) CLEAR_FLAG(op, FLAG_REFL_SPELL); if (!QUERY_FLAG(&op->arch->clone, FLAG_REFL_MISSILE)) CLEAR_FLAG(op, FLAG_REFL_MISSILE); if (!QUERY_FLAG(&op->arch->clone, FLAG_UNDEAD)) CLEAR_FLAG(op, FLAG_UNDEAD); if (!QUERY_FLAG(&op->arch->clone, FLAG_SEE_IN_DARK)) CLEAR_FLAG(op, FLAG_SEE_IN_DARK); CLEAR_FLAG(op, FLAG_PROBE); op->path_attuned = op->arch->clone.path_attuned; op->path_repelled = op->arch->clone.path_repelled; op->path_denied = op->arch->clone.path_denied; op->glow_radius = op->arch->clone.glow_radius; op->move_type = op->arch->clone.move_type; op->chosen_skill = NULL; /* initializing resistances from the values in player/monster's * archetype clone */ memcpy(&op->resist, &op->arch->clone.resist, sizeof(op->resist)); for (i = 0; i < NROFATTACKS; i++) { if (op->resist[i] > 0) prot[i] = op->resist[i], vuln[i] = 0; else vuln[i] = -(op->resist[i]), prot[i] = 0; potion_resist[i] = 0; } wc = op->arch->clone.stats.wc; op->stats.dam = op->arch->clone.stats.dam; /* for players which cannot use armour, they gain AC -1 per 3 levels, * plus a small amount of physical resist, those poor suckers. ;) * the fact that maxlevel is factored in could be considered sort of bogus - * we should probably give them some bonus and cap it off - otherwise, * basically, if a server updates its max level, these playes may find * that their protection from physical goes down */ if (!QUERY_FLAG(op, FLAG_USE_ARMOUR) && op->type == PLAYER) { ac = MAX(-10, op->arch->clone.stats.ac-op->level/3); prot[ATNR_PHYSICAL] += ((100-prot[AT_PHYSICAL])*(80*op->level/settings.max_level))/100; } else ac = op->arch->clone.stats.ac; op->stats.luck = op->arch->clone.stats.luck; op->speed = op->arch->clone.speed; /* OK - we've reset most all the objects attributes to sane values. * now go through and make adjustments for what the player has equipped. */ FOR_INV_PREPARE(op, tmp) { /* See note in map.c:update_position about making this additive * since light sources are never applied, need to put check here. */ if (tmp->glow_radius > op->glow_radius) op->glow_radius = tmp->glow_radius; /* This happens because apply_potion calls change_abil with the potion * applied so we can tell the player what chagned. But change_abil * then calls this function. */ if (QUERY_FLAG(tmp, FLAG_APPLIED) && tmp->type == POTION) continue; /* For some things, we don't care what is equipped */ if (tmp->type == SKILL) { /* Want to take the highest skill here. */ if (IS_MANA_SKILL(tmp->subtype)) { if (!mana_obj) mana_obj = tmp; else if (tmp->level > mana_obj->level) mana_obj = tmp; } if (IS_GRACE_SKILL(tmp->subtype)) { if (!grace_obj) grace_obj = tmp; else if (tmp->level > grace_obj->level) grace_obj = tmp; } } /* Container objects are not meant to adjust a players, but other applied * objects need to make adjustments. * This block should handle all player specific changes * The check for Praying is a bit of a hack - god given bonuses are put * in the praying skill, and the player should always get those. * It also means we need to put in additional checks for applied below, * because the skill shouldn't count against body positions being used * up, etc. */ if ((QUERY_FLAG(tmp, FLAG_APPLIED) && tmp->type != CONTAINER && tmp->type != CLOSE_CON) || (tmp->type == SKILL && tmp->subtype == SK_PRAYING)) { if (op->type == PLAYER) { if (tmp->type == BOW) op->contr->ranges[range_bow] = tmp; if (tmp->type == WAND || tmp->type == ROD) op->contr->ranges[range_misc] = tmp; for (i = 0; i < NUM_STATS; i++) { sint8 value; value = get_attr_value(&(tmp->stats), i); change_attr_value(&(op->stats), i, value); if (strcmp(tmp->arch->clone.name, ARCH_DEPLETION) != 0) change_attr_value(&(op->contr->applied_stats), i, value); } /* For this temporary calculation, allow wider range of stat - if we have * having that gives +5 and different object that gives -5 and stat * is maxed, we don't want different results based on order of * inventory. */ check_stat_bounds(&(tmp->stats), -settings.max_stat, 2*settings.max_stat); /* these are the items that currently can change digestion, regeneration, * spell point recovery and mana point recovery. Seems sort of an arbitary * list, but other items store other info into stats array. */ if ((tmp->type == WEAPON) || (tmp->type == ARMOUR) || (tmp->type == HELMET) || (tmp->type == SHIELD) || (tmp->type == RING) || (tmp->type == BOOTS) || (tmp->type == GLOVES) || (tmp->type == AMULET) || (tmp->type == GIRDLE) || (tmp->type == BRACERS) || (tmp->type == CLOAK) || (tmp->type == DISEASE) || (tmp->type == FORCE) || (tmp->type == SKILL)) { op->contr->digestion += tmp->stats.food; op->contr->gen_hp += tmp->stats.hp; op->contr->gen_sp += tmp->stats.sp; op->contr->gen_grace += tmp->stats.grace; op->contr->gen_sp_armour += tmp->gen_sp_armour; op->contr->item_power += tmp->item_power; } } /* if this is a player */ /* Update slots used for items */ if (QUERY_FLAG(tmp, FLAG_APPLIED)) { for (i = 0; i < NUM_BODY_LOCATIONS; i++) op->body_used[i] += tmp->body_info[i]; } if (tmp->type == SYMPTOM && tmp->last_sp) { /* Should take the worst disease of the bunch */ if (((float)tmp->last_sp/100.0) < speed_reduce_from_disease) speed_reduce_from_disease = (float)tmp->last_sp/100.0; } /* Pos. and neg. protections are counted seperate (-> pro/vuln). * (Negative protections are calculated extactly like positive.) * Resistance from potions are treated special as well. If there's * more than one potion-effect, the bigger prot.-value is taken. */ if (tmp->type != POTION) { for (i = 0; i < NROFATTACKS; i++) { /* Potential for cursed potions, in which case we just can use * a straight MAX, as potion_resist is initialized to zero. */ if (tmp->type == POTION_RESIST_EFFECT) { if (potion_resist[i]) potion_resist[i] = MAX(potion_resist[i], tmp->resist[i]); else potion_resist[i] = tmp->resist[i]; } else if (tmp->resist[i] > 0) prot[i] += ((100-prot[i])*tmp->resist[i])/100; else if (tmp->resist[i] < 0) vuln[i] += ((100-vuln[i])*(-tmp->resist[i]))/100; } } /* There may be other things that should not adjust the attacktype */ if (tmp->type != BOW && tmp->type != SYMPTOM) op->attacktype |= tmp->attacktype; op->path_attuned |= tmp->path_attuned; op->path_repelled |= tmp->path_repelled; op->path_denied |= tmp->path_denied; op->stats.luck += tmp->stats.luck; op->move_type |= tmp->move_type; if (QUERY_FLAG(tmp, FLAG_LIFESAVE)) SET_FLAG(op, FLAG_LIFESAVE); if (QUERY_FLAG(tmp, FLAG_REFL_SPELL)) SET_FLAG(op, FLAG_REFL_SPELL); if (QUERY_FLAG(tmp, FLAG_REFL_MISSILE)) SET_FLAG(op, FLAG_REFL_MISSILE); if (QUERY_FLAG(tmp, FLAG_STEALTH)) SET_FLAG(op, FLAG_STEALTH); if (QUERY_FLAG(tmp, FLAG_XRAYS)) SET_FLAG(op, FLAG_XRAYS); if (QUERY_FLAG(tmp, FLAG_BLIND)) SET_FLAG(op, FLAG_BLIND); if (QUERY_FLAG(tmp, FLAG_SEE_IN_DARK)) SET_FLAG(op, FLAG_SEE_IN_DARK); if (QUERY_FLAG(tmp, FLAG_PROBE)) SET_FLAG(op, FLAG_PROBE); if (QUERY_FLAG(tmp, FLAG_UNDEAD) && !QUERY_FLAG(&op->arch->clone, FLAG_UNDEAD)) SET_FLAG(op, FLAG_UNDEAD); if (QUERY_FLAG(tmp, FLAG_MAKE_INVIS)) { SET_FLAG(op, FLAG_MAKE_INVIS); op->invisible = 1; } if (tmp->stats.exp && tmp->type != SKILL) { added_speed += (float)tmp->stats.exp/3.0; } switch (tmp->type) { /* skills modifying the character -b.t. */ /* for all skills and skill granting objects */ case SKILL: if (!QUERY_FLAG(tmp, FLAG_APPLIED)) break; if (IS_COMBAT_SKILL(tmp->subtype)) wc_obj = tmp; if (op->chosen_skill) { LOG(llevDebug, "fix_object, op %s has multiple skills applied\n", op->name); } op->chosen_skill = tmp; if (tmp->stats.dam > 0) { /* skill is a 'weapon' */ if (!QUERY_FLAG(op, FLAG_READY_WEAPON)) weapon_speed = (int)WEAPON_SPEED(tmp); if (weapon_speed < 0) weapon_speed = 0; op->stats.dam += tmp->stats.dam*(1+(op->chosen_skill->level/9)); if (tmp->magic) op->stats.dam += tmp->magic; } if (tmp->stats.wc) wc -= (tmp->stats.wc+tmp->magic); if (tmp->slaying != NULL) { if (op->slaying != NULL) free_string(op->slaying); add_refcount(op->slaying = tmp->slaying); } if (tmp->stats.ac) ac -= (tmp->stats.ac+tmp->magic); if (settings.spell_encumbrance == TRUE && op->type == PLAYER) op->contr->encumbrance += (int)3*tmp->weight/1000; if (op->type == PLAYER) op->contr->ranges[range_skill] = op; break; case SKILL_TOOL: if (op->chosen_skill) { LOG(llevDebug, "fix_object, op %s has multiple skills applied\n", op->name); } op->chosen_skill = tmp; if (op->type == PLAYER) op->contr->ranges[range_skill] = op; break; case SHIELD: if (settings.spell_encumbrance == TRUE && op->type == PLAYER) op->contr->encumbrance += (int)tmp->weight/2000; case RING: case AMULET: case GIRDLE: case HELMET: case BOOTS: case GLOVES: case CLOAK: if (tmp->stats.wc) wc -= tmp->stats.wc; if (tmp->stats.dam) op->stats.dam += (tmp->stats.dam+tmp->magic); if (tmp->stats.ac) ac -= (tmp->stats.ac+tmp->magic); break; case WEAPON: wc -= tmp->stats.wc; if (tmp->stats.ac && tmp->stats.ac+tmp->magic > 0) ac -= tmp->stats.ac+tmp->magic; op->stats.dam += (tmp->stats.dam+tmp->magic); weapon_speed = ((int)WEAPON_SPEED(tmp)*2-tmp->magic)/2; if (weapon_speed < 0) weapon_speed = 0; if (tmp->slaying != NULL) { if (op->slaying != NULL) free_string(op->slaying); add_refcount(op->slaying = tmp->slaying); } /* If there is desire that two handed weapons should do * extra strength damage, this is where the code should * go. */ op->current_weapon = tmp; if (settings.spell_encumbrance == TRUE && op->type == PLAYER) op->contr->encumbrance += (int)3*tmp->weight/1000; break; case ARMOUR: /* Only the best of these three are used: */ if (settings.spell_encumbrance == TRUE && op->type == PLAYER) op->contr->encumbrance += (int)tmp->weight/1000; /* ARMOUR falls through to here */ case BRACERS: case FORCE: if (tmp->stats.wc) { if (best_wc < tmp->stats.wc) { wc += best_wc; best_wc = tmp->stats.wc; } else wc += tmp->stats.wc; } if (tmp->stats.ac) { if (best_ac < tmp->stats.ac+tmp->magic) { ac += best_ac; /* Remove last bonus */ best_ac = tmp->stats.ac+tmp->magic; } else /* To nullify the below effect */ ac += tmp->stats.ac+tmp->magic; } if (tmp->stats.dam && tmp->type == BRACERS) op->stats.dam += (tmp->stats.dam+tmp->magic); if (tmp->stats.wc) wc -= tmp->stats.wc; if (tmp->stats.ac) ac -= (tmp->stats.ac+tmp->magic); if (ARMOUR_SPEED(tmp) && ARMOUR_SPEED(tmp)/10.0 < max) max = ARMOUR_SPEED(tmp)/10.0; break; } /* switch tmp->type */ } /* item is equipped */ } FOR_INV_FINISH(); /* for loop of items */ /* We've gone through all the objects the player has equipped. For many things, we * have generated intermediate values which we now need to assign. */ /* 'total resistance = total protections - total vulnerabilities'. * If there is an uncursed potion in effect, granting more protection * than that, we take: 'total resistance = resistance from potion'. * If there is a cursed (and no uncursed) potion in effect, we take * 'total resistance = vulnerability from cursed potion'. */ for (i = 0; i < NROFATTACKS; i++) { op->resist[i] = prot[i]-vuln[i]; if (potion_resist[i] && ((potion_resist[i] > op->resist[i]) || (potion_resist[i] < 0))) op->resist[i] = potion_resist[i]; } fix_player(op, &ac, &wc, grace_obj, mana_obj, wc_obj, weapon_speed, added_speed); op->speed = op->speed*speed_reduce_from_disease; /* Max is determined by armour */ if (op->speed > max) op->speed = max; op->speed += added_speed/10.0; /* Put a lower limit on speed. Note with this speed, you move once every * 20 ticks or so. This amounts to once every 3 seconds of realtime. */ if (op->speed < 0.05 && op->type == PLAYER) op->speed = 0.05; /* I want to limit the power of small monsters with big weapons: */ if (op->type != PLAYER && op->arch != NULL && op->stats.dam > op->arch->clone.stats.dam*3) op->stats.dam = op->arch->clone.stats.dam*3; /* Prevent overflows of wc - best you can get is ABS(120) - this * should be more than enough - remember, AC is also in 8 bits, * so its value is the same. */ if (wc > 120) wc = 120; else if (wc < -120) wc = -120; op->stats.wc = wc; if (ac > 120) ac = 120; else if (ac < -120) ac = -120; op->stats.ac = ac; /* if for some reason the creature doesn't have any move type, * give them walking as a default. * The second case is a special case - to more closely mimic the * old behaviour - if your flying, your not walking - just * one or the other. */ if (op->move_type == 0) op->move_type = MOVE_WALK; else if (op->move_type&(MOVE_FLY_LOW|MOVE_FLY_HIGH)) op->move_type &= ~MOVE_WALK; object_update_speed(op); } /** * Returns true if the given player is a legal class. * The function to add and remove class-bonuses to the stats doesn't * check if the stat becomes negative, thus this function * merely checks that all stats are 1 or more, and returns * false otherwise. * * @param op * object to check. * @return * 1 if allowed, 0 else. */ int allowed_class(const object *op) { return op->stats.Dex > 0 && op->stats.Str > 0 && op->stats.Con > 0 && op->stats.Int > 0 && op->stats.Wis > 0 && op->stats.Pow > 0 && op->stats.Cha > 0; } /** * Set the new dragon name after gaining levels or * changing ability focus (later this can be extended to * eventually change the player's face and animation) * * Note that the title is written to 'own_title' in the * player struct. This should be changed to 'ext_title' * as soon as clients support this! * Please, anyone, write support for 'ext_title'. * * @param pl * player's object to change. * @param abil * dragon's innate abilities. * @param skin * dragon's skin. */ void set_dragon_name(object *pl, const object *abil, const object *skin) { int atnr = -1; /* attacknumber of highest level */ int level = 0; /* highest level */ int i; /* Perhaps do something more clever? */ if (!abil || !skin) return; /* first, look for the highest level */ for (i = 0; i < NROFATTACKS; i++) { if (atnr_is_dragon_enabled(i) && (atnr == -1 || abil->resist[i] > abil->resist[atnr])) { level = abil->resist[i]; atnr = i; } } /* now if there are equals at highest level, pick the one with focus, or else at random */ if (atnr_is_dragon_enabled(abil->stats.exp) && abil->resist[abil->stats.exp] >= level) atnr = abil->stats.exp; level = (int)(level/5.); /* now set the new title */ if (pl->contr != NULL) { player_set_dragon_title(pl->contr, level, attacks[atnr], skin->resist[atnr]); } } /** * This function is called when a dragon-player gains * an overall level. Here, the dragon might gain new abilities * or change the ability-focus. * * @param who * dragon's object. */ static void dragon_level_gain(object *who) { object *abil = NULL; /* pointer to dragon ability force*/ object *skin = NULL; /* pointer to dragon skin force*/ /* now grab the 'dragon_ability'-forces from the player's inventory */ abil = object_find_by_type_and_arch_name(who, FORCE, "dragon_ability_force"); skin = object_find_by_type_and_arch_name(who, FORCE, "dragon_skin_force"); /* if the force is missing -> bail out */ if (abil == NULL) return; /* The ability_force keeps track of maximum level ever achieved. * New abilties can only be gained by surpassing this max level */ if (who->level > abil->level) { /* increase our focused ability */ abil->resist[abil->stats.exp]++; if (abil->resist[abil->stats.exp] > 0 && abil->resist[abil->stats.exp]%5 == 0) { /* time to hand out a new ability-gift */ dragon_ability_gain(who, (int)abil->stats.exp, (int)((1+abil->resist[abil->stats.exp])/5.)); } if (abil->last_eat > 0 && atnr_is_dragon_enabled(abil->last_eat)) { /* apply new ability focus */ draw_ext_info_format(NDI_UNIQUE|NDI_BLUE, 0, who, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_RACE, "Your metabolism now focuses on %s!", change_resist_msg[abil->last_eat]); abil->stats.exp = abil->last_eat; abil->last_eat = 0; } abil->level = who->level; } /* last but not least, set the new title for the dragon */ set_dragon_name(who, abil, skin); } /** * Given the skill name skill_name, we find the skill * archetype/object, set appropriate values, and insert it into * the object (op) that is passed. * * We return the skill - this makes it easier for calling functions that * want to do something with it immediately. * * @param op * object to which to give the skill. Must not be NULL. * @param skill_name * skill to give. Must not be NULL. * @return * newly created skill, or NULL if failure (logger with error level). * * @note * this doesn't check whether the object already has the skill or not. */ object *give_skill_by_name(object *op, const char *skill_name) { object *skill_obj; archetype *skill_arch; skill_arch = get_archetype_by_skill_name(skill_name, SKILL); if (!skill_arch) { LOG(llevError, "add_player_exp: couldn't find skill %s\n", skill_name); return NULL; } skill_obj = arch_to_object(skill_arch); /* never returns NULL. */ /* clear the flag - exp goes into this bucket, but player * still doesn't know it. */ CLEAR_FLAG(skill_obj, FLAG_CAN_USE_SKILL); skill_obj->stats.exp = 0; skill_obj->level = 1; object_insert_in_ob(skill_obj, op); if (op->contr) { op->contr->last_skill_ob[skill_obj->subtype] = skill_obj; op->contr->last_skill_exp[skill_obj->subtype] = -1; } return skill_obj; } /** * For the new exp system. we are concerned with * whether the player gets more hp, sp and new levels. * Note this this function should only be called for players. Monsters * don't really gain levels * * Will tell the player about changed levels. * * @param who * player, must not be NULL. * @param op * what we are checking to gain the level (eg, skill), can be NULL. * * @note * this function can call itself recursively to check for multiple levels. */ void player_lvl_adj(object *who, object *op) { char buf[MAX_BUF]; assert(who); if (!op) /* when rolling stats */ op = who; if (op->level < settings.max_level && op->stats.exp >= level_exp(op->level+1, who->expmul)) { op->level++; if (op != NULL && op == who && op->stats.exp > 1 && is_dragon_pl(who)) dragon_level_gain(who); /* Only roll these if it is the player (who) that gained the level */ if (op == who && (who->level < 11) && who->type == PLAYER) { who->contr->levhp[who->level] = die_roll(2, 4, who, PREFER_HIGH)+1; who->contr->levsp[who->level] = die_roll(2, 3, who, PREFER_HIGH); who->contr->levgrace[who->level] = die_roll(2, 2, who, PREFER_HIGH)-1; } fix_object(who); if (op->level > 1) { if (op->type != PLAYER) snprintf(buf, sizeof(buf), "You are now level %d in the %s skill.", op->level, op->name); else snprintf(buf, sizeof(buf), "You are now level %d.", op->level); draw_ext_info(NDI_UNIQUE|NDI_RED, 0, who, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_LEVEL_GAIN, buf); } player_lvl_adj(who, op); /* To increase more levels */ } else if (op->level > 1 && op->stats.exp < level_exp(op->level, who->expmul)) { op->level--; fix_object(who); if (op->type != PLAYER) snprintf(buf, sizeof(buf), "You are now level %d in the %s skill.", op->level, op->name); else snprintf(buf, sizeof(buf), "You are now level %d.", op->level); draw_ext_info(NDI_UNIQUE|NDI_RED, 0, who, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_LEVEL_LOSS, buf); player_lvl_adj(who, op); /* To decrease more levels */ } } /** * Returns how much experience is needed for a player to become * the given level. level should really never exceed max_level * * @param level * level player wants to reach * @param expmul * penality/bonus for experience. */ sint64 level_exp(int level, double expmul) { if (level > settings.max_level) return expmul*levels[settings.max_level]; return expmul*levels[level]; } /** * Ensure that the permanent experience requirements in an exp object are met. * This really just checks 'op to make sure the perm_exp value is within * proper range. Note that the checking of what is passed through * has been reduced. Since there is now a proper field for perm_exp, * this can now work on a much larger set of objects. * * @param op * object to check. */ void calc_perm_exp(object *op) { sint64 p_exp_min; /* Ensure that our permanent experience minimum is met. * permenent_exp_ratio is an integer percentage, we divide by 100 * to get the fraction */ p_exp_min = settings.permanent_exp_ratio*op->stats.exp/100; if (op->perm_exp < p_exp_min) op->perm_exp = p_exp_min; /* Cap permanent experience. */ if (op->perm_exp < 0) op->perm_exp = 0; else if (op->perm_exp > MAX_EXPERIENCE) op->perm_exp = MAX_EXPERIENCE; } /** * Add experience to a player - exp should only be positive. * Updates permanent exp for the skill we are adding to. * * @param op * object we add exp to. * @param exp * experience to gain. Can be 0, but not that useful to call in that case... * @param skill_name * skill to add exp to. Can be NULL, in which case exp increases the players general * total, but not any particular skill. * @param flag * what to do if the player doesn't have the skill. Combination of @ref SK_EXP_xxx "SK_EXP_xxx" flags. */ static void add_player_exp(object *op, sint64 exp, const char *skill_name, int flag) { object *skill_obj = NULL; sint64 limit, exp_to_add; int i; /* prevents some forms of abuse. */ if (op->contr->braced) exp = exp/5; /* Try to find the matching skill. * We do a shortcut/time saving mechanism first - see if it matches * chosen_skill. This means we don't need to search through * the players inventory. */ if (skill_name) { if (op->chosen_skill && op->chosen_skill->type == SKILL && !strcmp(skill_name, op->chosen_skill->skill)) skill_obj = op->chosen_skill; else { for (i = 0; i < NUM_SKILLS; i++) if (op->contr->last_skill_ob[i] && !strcmp(op->contr->last_skill_ob[i]->skill, skill_name)) { skill_obj = op->contr->last_skill_ob[i]; break; } /* Player doesn't have the skill. Check to see what to do, and give * it to the player if necessary */ if (!skill_obj) { if (flag == SK_EXP_NONE) return; else if (flag == SK_EXP_ADD_SKILL) skill_obj = give_skill_by_name(op, skill_name); } } } /* Basically, you can never gain more experience in one shot * than half what you need to gain for next level. */ exp_to_add = exp; limit = (levels[op->level+1]-levels[op->level])/2; if (exp_to_add > limit) exp_to_add = limit; ADD_EXP(op->stats.exp, (float)exp_to_add*(skill_obj ? skill_obj->expmul : 1)); if (settings.permanent_exp_ratio) { ADD_EXP(op->perm_exp, (float)exp_to_add*PERM_EXP_GAIN_RATIO*(skill_obj ? skill_obj->expmul : 1)); calc_perm_exp(op); } player_lvl_adj(op, NULL); if (skill_obj) { exp_to_add = exp; limit = (levels[skill_obj->level+1]-levels[skill_obj->level])/2; if (exp_to_add > limit) exp_to_add = limit; ADD_EXP(skill_obj->stats.exp, exp_to_add); if (settings.permanent_exp_ratio) { skill_obj->perm_exp += exp_to_add*PERM_EXP_GAIN_RATIO; calc_perm_exp(skill_obj); } player_lvl_adj(op, skill_obj); } } /** * This function checks to make sure that object 'op' can * lose 'exp' experience. It basically makes * adjustments based on permanent exp and the like. * This function should always be used for losing experience - * the 'exp' value passed should be positive - this is the * amount that should get subtract from the player. * * @param op * object to which to substract. * @param exp * experience to lose. * @return * the amount of exp object 'op' can in fact lose - */ sint64 check_exp_loss(const object *op, sint64 exp) { sint64 del_exp; if (exp > op->stats.exp) exp = op->stats.exp; if (settings.permanent_exp_ratio) { del_exp = (op->stats.exp-op->perm_exp)*PERM_EXP_MAX_LOSS_RATIO; if (del_exp < 0) del_exp = 0; if (exp > del_exp) exp = del_exp; } return exp; } /** * Returns the maximum experience the object can gain or lose. * * @param op * object which will be the victim. * @param exp * experience to gain or lose. * @return * maximum value op can gain or lose (can be positive or negative). */ sint64 check_exp_adjust(const object *op, sint64 exp) { if (exp < 0) return check_exp_loss(op, exp); else return MIN(exp, MAX_EXPERIENCE-op->stats.exp); } /** * Subtracts experience from player. * * Eg, if we figure the player is losing 10% * of his total exp, what happens is he loses 10% from all his skills. * Note that if permanent exp is used, player may not in fact lose * as much as listed. Eg, if player has gotten reduced to the point * where everything is at the minimum perm exp, he would lose nothing. * * @param op * victim we want to substract from * @param exp * value to substract. Should be positive. * @param skill * skill to substract exp from. Can be NULL. * @param flag * if ::SK_SUBTRACT_SKILL_EXP and skill is set, only subtract from the matching skill. Otherwise, * this subtracts a portion from all skills the player has. * * @todo * check whether flag is necessary, can't it be only based on skill==null? */ static void subtract_player_exp(object *op, sint64 exp, const char *skill, int flag) { float fraction = (float)exp/(float)op->stats.exp; sint64 del_exp; FOR_INV_PREPARE(op, tmp) if (tmp->type == SKILL && tmp->stats.exp) { if (flag == SK_SUBTRACT_SKILL_EXP && skill && !strcmp(tmp->skill, skill)) { del_exp = check_exp_loss(tmp, exp); tmp->stats.exp -= del_exp; player_lvl_adj(op, tmp); } else if (flag != SK_SUBTRACT_SKILL_EXP) { /* only want to process other skills if we are not trying * to match a specific skill. */ del_exp = check_exp_loss(tmp, tmp->stats.exp*fraction); tmp->stats.exp -= del_exp; player_lvl_adj(op, tmp); } } FOR_INV_FINISH(); if (flag != SK_SUBTRACT_SKILL_EXP) { del_exp = check_exp_loss(op, exp); op->stats.exp -= del_exp; player_lvl_adj(op, NULL); } } /** * Changes experience to a player/monster. This * does bounds checking to make sure we don't overflow the max exp. * * The exp passed is typically not modified much by this function - * it is assumed the caller has modified the exp as needed. * skill_name is the skill that should get the exp added. * flag is what to do if player doesn't have the skill. * these last two values are only used for players. * * @param op * victim to alter. * @param exp * experience to gain (positive) or lose (negative). * @param skill_name * skill to change. Can be NULL. * @param flag * @li if experience gain, what to do if player doesn't have the skill * @li if experience loss, whether to remove from all skills or only specified skill * @see share_exp() for a party-aware version. */ void change_exp(object *op, sint64 exp, const char *skill_name, int flag) { #ifdef EXP_DEBUG char name[MAX_BUF]; query_name(op, name, MAX_BUF); #ifndef WIN32 LOG(llevDebug, "change_exp() called for %s, exp = %lld\n", name, exp); #else LOG(llevDebug, "change_exp() called for %s, exp = %I64d\n", name, exp); #endif #endif /* safety */ if (!op) { LOG(llevError, "change_exp() called for null object!\n"); return; } /* if no change in exp, just return - most of the below code * won't do anything if the value is 0 anyways. */ if (exp == 0) return; /* Monsters are easy - we just adjust their exp - we * don't adjust level, since in most cases it is unrelated to * the exp they have - the monsters exp represents what its * worth. */ if (op->type != PLAYER) { /* Sanity check */ if (!QUERY_FLAG(op, FLAG_ALIVE)) return; /* reset exp to max allowed value. We subtract from * MAX_EXPERIENCE to prevent overflows. If the player somehow has * more than max exp, just return. */ if (exp > 0 && (op->stats.exp > (MAX_EXPERIENCE-exp))) { exp = MAX_EXPERIENCE-op->stats.exp; if (exp < 0) return; } op->stats.exp += exp; } else { /* Players only */ if (exp > 0) add_player_exp(op, exp, skill_name, flag); else subtract_player_exp(op, FABS(exp), skill_name, flag); } } /** * Applies a death penalty experience, the size of this is defined by the * settings death_penalty_percentage and death_penalty_levels, and by the * amount of permenent experience, whichever gives the lowest loss. * * @param op * victim of the penalty. Must not be NULL. */ void apply_death_exp_penalty(object *op) { sint64 loss; sint64 percentage_loss; /* defined by the setting 'death_penalty_percent' */ sint64 level_loss; /* defined by the setting 'death_penalty_levels */ FOR_INV_PREPARE(op, tmp) if (tmp->type == SKILL && tmp->stats.exp) { percentage_loss = tmp->stats.exp*settings.death_penalty_ratio/100; level_loss = tmp->stats.exp-levels[MAX(0, tmp->level-settings.death_penalty_level)]; /* With the revised exp system, you can get cases where * losing several levels would still require that you have more * exp than you currently have - this is true if the levels * tables is a lot harder. */ if (level_loss < 0) level_loss = 0; loss = check_exp_loss(tmp, MIN(level_loss, percentage_loss)); tmp->stats.exp -= loss; player_lvl_adj(op, tmp); } FOR_INV_FINISH(); percentage_loss = op->stats.exp*settings.death_penalty_ratio/100; level_loss = op->stats.exp-levels[MAX(0, op->level-settings.death_penalty_level)]; if (level_loss < 0) level_loss = 0; loss = check_exp_loss(op, MIN(level_loss, percentage_loss)); op->stats.exp -= loss; player_lvl_adj(op, NULL); } /** * This function takes an object (monster/player, op), and * determines if it makes a basic save throw by looking at the * save_throw table. * * @param op * potential victim. * @param level * the effective level to make the save at * @param bonus * any plus/bonus (typically based on resistance to particular attacktype). * @return * 1 if op makes his save, 0 if he failed */ int did_make_save(const object *op, int level, int bonus) { if (level > MAX_SAVE_LEVEL) level = MAX_SAVE_LEVEL; if ((random_roll(1, 20, op, PREFER_HIGH)+bonus) < savethrow[level]) return 0; return 1; } /** * Gives experience to a player/monster, sharing it with party if applicable. This * does bounds checking to make sure we don't overflow the max exp. * * The exp passed is typically not modified much by this function - * it is assumed the caller has modified the exp as needed. * * This is merely a wrapper for change_exp(). * * @param op * victim to alter. * @param exp * experience to gain (positive) or lose (negative). * @param skill * skill to change. Can be NULL. * @param flag * @li if experience gain, what to do if player doesn't have the skill * @li if experience loss, whether to remove from all skills or only specified skill * @note * flag only applies to op, not other players in same party. */ void share_exp(object *op, sint64 exp, const char *skill, int flag) { int shares = 0, count = 0; player *pl; partylist *party; if (op->type != PLAYER || op->contr->party == NULL) { change_exp(op, exp, skill, 0); return; } party = op->contr->party; for (pl = first_player; pl != NULL; pl = pl->next) { if (party && pl->ob->contr->party == party && on_same_map(pl->ob, op)) { count++; shares += (pl->ob->level+4); } } if (count == 1 || shares > exp) change_exp(op, exp, skill, flag); else { sint64 share = exp/shares, given = 0, nexp; for (pl = first_player; pl != NULL; pl = pl->next) { if (party && pl->ob->contr->party == party && on_same_map(pl->ob, op)) { nexp = (pl->ob->level+4)*share; change_exp(pl->ob, nexp, skill, SK_EXP_TOTAL); given += nexp; } } exp -= given; /* give any remainder to the player */ change_exp(op, exp, skill, flag); } } int get_cha_bonus(int stat) { return int_bonuses[INT_CHA_BONUS][get_index(stat, settings.max_stat)]; } int get_dex_bonus(int stat) { return int_bonuses[INT_DEX_BONUS][get_index(stat, settings.max_stat)]; } int get_thaco_bonus(int stat) { return int_bonuses[INT_THAC0_BONUS][get_index(stat, settings.max_stat)]; } uint32 get_weight_limit(int stat) { return int_bonuses[INT_WEIGHT_LIMIT][get_index(stat, settings.max_stat)]; } int get_learn_spell(int stat) { return int_bonuses[INT_LEARN_SPELL][get_index(stat, settings.max_stat)]; } int get_cleric_chance(int stat) { return int_bonuses[INT_CLERIC_CHANCE][get_index(stat, settings.max_stat)]; } int get_turn_bonus(int stat) { return int_bonuses[INT_TURN_BONUS][get_index(stat, settings.max_stat)]; } int get_dam_bonus(int stat) { return int_bonuses[INT_DAM_BONUS][get_index(stat, settings.max_stat)]; } float get_speed_bonus(int stat) { return float_bonuses[FLOAT_DEX_BONUS][get_index(stat, settings.max_stat)]; } int get_fear_bonus(int stat) { return int_bonuses[INT_FEAR_BONUS][get_index(stat, settings.max_stat)]; } static float get_con_bonus(int stat) { return float_bonuses[FLOAT_CON_BONUS][get_index(stat, settings.max_stat)]; } static float get_sp_bonus(int stat) { return float_bonuses[FLOAT_SP_BONUS][get_index(stat, settings.max_stat)]; } static float get_grace_bonus(int stat) { return float_bonuses[FLOAT_GRACE_BONUS][get_index(stat, settings.max_stat)]; } /** * Limits a stat value to [0..max_index]. * @param stat * index of the stat to get. * @param max_index * the maximum index (inclusive). * @return the limited index. */ static size_t get_index(int stat, size_t max_index) { size_t index; if (stat < 0) { return 0; } index = (size_t)stat; return MIN(index, max_index); } /** * This loads up a stat table from the file - basically, * it keeps processing until it gets the closing brace. * * @param bonuses * an array will be allocated and the bonus put into this allocated * array. * @param fp * File to load the data from. * @param bonus_name * Used purely for error messages to make it easier to identify * where in the file an error is. * * @return * 0 on success, 1 on error. In general, the error * will be too many or too few bonus values. */ static int load_table_int(int **bonuses, FILE *fp, char *bonus_name) { char buf[MAX_BUF], *cp; int on_stat = 0, tmp_bonus; *bonuses = calloc(settings.max_stat+1, sizeof(int)); while (fgets(buf, MAX_BUF-1, fp) != NULL) { if (buf[0] == '#') continue; /* Skip over empty lines */ if (buf[0] == '\n') continue; /* Do not care about opening brace */ if (buf[0] == '{') continue; if (buf[0] == '}') { if ((on_stat-1) != settings.max_stat) { LOG(llevError,"Number of bonus does not match max stat (%d!=%d, bonus=%s)\n", on_stat, settings.max_stat, bonus_name); return 1; } else return 0; } /* If not any of the above values, must be the stat table, * or so we hope. */ cp = buf; while (*cp != 0) { /* Skip over any non numbers */ while (!isdigit(*cp) && *cp!='.' && *cp!='-' && *cp!='+' && *cp != 0) cp++; if (*cp == 0) break; tmp_bonus = atoi(cp); if (on_stat > settings.max_stat) { LOG(llevError,"Number of bonus entries exceed max stat (line=%s, bonus=%s)\n", buf, bonus_name); return 1; } (*bonuses)[on_stat] = tmp_bonus; on_stat++; /* Skip over any digits, as that is the number we just processed */ while ((isdigit(*cp) || *cp=='-' || *cp=='+') && *cp != 0) cp++; } } /* This should never happen - we should always get the closing brace */ LOG(llevError,"Reached end of file without getting close brace? bonus=%s\n", bonus_name); return 1; } /** * This loads up a stat table from the file - basically, * it keeps processing until it gets the closing brace. * * @param bonuses * an array will be allocated and the bonus put into this allocated * array. * @param fp * File to load the data from. * @param bonus_name * Used purely for error messages to make it easier to identify * where in the file an error is. * * @return * 0 on success, 1 on error. In general, the error * will be too many or too few bonus values. */ static int load_table_float(float **bonuses, FILE *fp, char *bonus_name) { char buf[MAX_BUF], *cp; int on_stat = 0; float tmp_bonus; *bonuses = calloc(settings.max_stat+1, sizeof(float)); while (fgets(buf, MAX_BUF-1, fp) != NULL) { if (buf[0] == '#') continue; /* Skip over empty lines */ if (buf[0] == '\n') continue; /* Do not care about opening brace */ if (buf[0] == '{') continue; if (buf[0] == '}') { if ((on_stat-1) != settings.max_stat) { LOG(llevError,"Number of bonus does not match max stat (%d!=%d, bonus=%s)\n", on_stat, settings.max_stat, bonus_name); return 1; } else return 0; } /* If not any of the above values, must be the stat table, * or so we hope. */ cp = buf; while (*cp != 0) { /* Skip over any non numbers */ while (!isdigit(*cp) && *cp!='.' && *cp!='-' && *cp!='+' && *cp != 0) cp++; if (*cp == 0) break; tmp_bonus = atof(cp); if (on_stat > settings.max_stat) { LOG(llevError,"Number of bonus entries exceed max stat (line=%s, bonus=%s)\n", buf, bonus_name); return 1; } (*bonuses)[on_stat] = tmp_bonus; on_stat++; /* Skip over any digits, as that is the number we just processed * since this is floats, also skip over any dots. */ while ((isdigit(*cp) || *cp=='-' || *cp=='+' || *cp=='.') && *cp != 0) cp++; } } /* This should never happen - we should always get the closing brace */ LOG(llevError,"Reached end of file without getting close brace? bonus=%s\n", bonus_name); return 1; } /** * This loads statistic bonus/penalties from the stat_bonus file. * If reload is false (eg, this is initial start time load), * then any error becomes fatal, as system needs working * bonuses. * * @param reload * If set, this is reloading new values - this can be useful for * real time adjustment of stat bonuses - however, it also has some * more restraints - in particular, max_stat can not decrease (that could * be made to work but is more work) and also errors are not fatal - it * will just use the old stat bonus tables in the case of any errors. * TODO: add code that uses reload * * @note * will call exit() if file is invalid or not found. */ void init_stats(int reload) { char buf[MAX_BUF], *cp; int error=0, i, oldmax = settings.max_stat; FILE *fp; float *new_float_bonuses[NUM_FLOAT_BONUSES]; int *new_int_bonuses[NUM_INT_BONUSES]; snprintf(buf, sizeof(buf), "%s/stat_bonus", settings.confdir); memset(new_int_bonuses, 0, NUM_INT_BONUSES * sizeof(int)); memset(new_float_bonuses, 0, NUM_FLOAT_BONUSES * sizeof(float)); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Fatal error: could not open experience table (%s)\n", buf); if (reload) return; else exit(1); } while (fgets(buf, MAX_BUF-1, fp) != NULL) { if (buf[0] == '#') continue; /* eliminate newline */ if ((cp = strrchr(buf, '\n')) != NULL) *cp = '\0'; /* Skip over empty lines */ if (buf[0] == 0) continue; /* Skip over leading spaces */ cp = buf; while (isspace(*cp) && *cp != 0) cp++; if (!strncasecmp(cp, "max_stat", 8)) { int newmax = atoi(cp+8); /* newmax must be at least MIN_STAT and we do not currently * cupport decrease max stat on the fly - why this might be possible, * bounds checking for all objects would be needed, potentionally resetting * them. * If this is a reload, then on error, we just return without doing work. * If this is initial load, having an invalid stat range is an error, so * exit the program. */ if (newmax < MIN_STAT || newmax < settings.max_stat) { LOG(llevError, "Got invalid max_stat (%d) from stat_bonus file\n", newmax); fclose(fp); if (reload) return; else exit(1); } settings.max_stat = newmax; continue; } /* max_stat needs to be set before any of the bonus values - we * need to know how large to make the array. */ if (settings.max_stat == 0) { LOG(llevError, "Got bonus line or otherwise unknown value before max stat! (%s)\n", buf); if (reload) return; else exit(1); } for (i=0; i #include #include "image.h" /** * Contains face information, with names, numbers, magicmap color and such. * It is sorted by alphabetical order. */ New_Face *new_faces; /** * Following can just as easily be pointers, but * it is easier to keep them like this. */ New_Face *blank_face, *empty_face, *smooth_face; /** * Number of bitmaps loaded from the "bmaps" file. */ unsigned int nrofpixmaps = 0; face_sets facesets[MAX_FACE_SETS]; /**< All facesets */ /** * The only thing this table is used for now is to * translate the colorname in the magicmap field of the * face into a numeric index that is then sent to the * client for magic map commands. The order of this table * must match that of the NDI colors in include/newclient.h. */ static const char *const colorname[] = { "black", /* 0 */ "white", /* 1 */ "blue", /* 2 */ "red", /* 3 */ "orange", /* 4 */ "light_blue", /* 5 */ "dark_orange", /* 6 */ "green", /* 7 */ "light_green", /* 8 */ "grey", /* 9 */ "brown", /* 10 */ "yellow", /* 11 */ "khaki" /* 12 */ }; /** * Used for bsearch searching for faces by name. * The face "bug.111" is always put at first. * @todo "bug.111" should be a regular face, alas many places consider face 0 * to be that face. This should be fixed at some point. * @param a first item to compare. * @param b second item to compare. * @retval -1 if a < b * @retval 0 if a == b * @retval 1 if a > b */ static int compare_face(const New_Face *a, const New_Face *b) { if (strcmp(a->name, "bug.111") == 0) { if (strcmp(b->name, "bug.111") == 0) return 0; return -1; } else if (strcmp(b->name, "bug.111") == 0) return 1; return strcmp(a->name, b->name); } /** * Finds a color by name. * * @param name * color name, case-sensitive. * @return * the matching color in the coloralias if found, * 0 otherwise. * * @note * 0 will actually be black, so there is no * way the calling function can tell if an error occurred or not */ static uint8 find_color(const char *name) { uint8 i; for (i = 0; i < sizeof(colorname)/sizeof(*colorname); i++) if (!strcmp(name, colorname[i])) return i; LOG(llevError, "Unknown color: %s\n", name); return 0; } /** * This reads the lib/faces file, getting color and visibility information. * It is called by read_bmap_names(). * * @note * will call exit() if file doesn't exist. */ static void read_face_data(void) { char buf[MAX_BUF], *cp; New_Face *on_face = NULL; FILE *fp; snprintf(buf, sizeof(buf), "%s/faces", settings.datadir); LOG(llevDebug, "Reading faces from %s...\n", buf); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Cannot open faces file: %s\n", strerror_local(errno, buf, sizeof(buf))); exit(-1); } while (fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; if (!strncmp(buf, "end", 3)) { on_face = NULL; } else if (!strncmp(buf, "face", 4)) { unsigned tmp; cp = buf+5; cp[strlen(cp)-1] = '\0'; /* remove newline */ if ((tmp = find_face(cp, (unsigned)-1)) == (unsigned)-1) { LOG(llevError, "Could not find face %s\n", cp); on_face = NULL; continue; } on_face = &new_faces[tmp]; on_face->visibility = 0; } else if (on_face == NULL) { LOG(llevError, "Got line with no face set: %s\n", buf); } else if (!strncmp(buf, "visibility", 10)) { on_face->visibility = atoi(buf+11); } else if (!strncmp(buf, "magicmap", 8)) { cp = buf+9; cp[strlen(cp)-1] = '\0'; on_face->magicmap = find_color(cp); } else if (!strncmp(buf, "is_floor", 8)) { int value = atoi(buf+9); if (value) on_face->magicmap |= FACE_FLOOR; } else LOG(llevDebug, "Got unknown line in faces file: %s\n", buf); } LOG(llevDebug, "done\n"); fclose(fp); } /** * This reads the bmaps file to get all the bitmap names and * stuff. It only needs to be done once, because it is player * independent (ie, what display the person is on will not make a * difference.) * * @note * will call exit() if file doesn't exist, and abort() in case of memory error. */ void read_bmap_names(void) { char buf[MAX_BUF], *p, *q; FILE *fp; int value; unsigned int i; size_t l; bmaps_checksum = 0; snprintf(buf, sizeof(buf), "%s/bmaps", settings.datadir); LOG(llevDebug, "Reading bmaps from %s...\n", buf); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Cannot open bmaps file: %s\n", strerror_local(errno, buf, sizeof(buf))); exit(-1); } nrofpixmaps = 0; /* First count how many bitmaps we have, so we can allocate correctly */ while (fgets(buf, MAX_BUF, fp) != NULL) if (buf[0] != '#' && buf[0] != '\n') nrofpixmaps++; rewind(fp); new_faces = (New_Face *)malloc(sizeof(New_Face)*nrofpixmaps); if (new_faces == NULL) { LOG(llevError, "read_bmap_names: new_faces memory allocation failure.\n"); abort(); } for (i = 0; i < nrofpixmaps; i++) { new_faces[i].name = NULL; new_faces[i].visibility = 0; new_faces[i].magicmap = 255; new_faces[i].smoothface = (uint16)-1; } i = 0; while (i < nrofpixmaps && fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; p = (*buf == '\\') ? (buf+1) : buf; if (!(p = strtok(p, " \t")) || !(q = strtok(NULL, " \t\n"))) { LOG(llevDebug, "Warning, syntax error: %s\n", buf); continue; } value = atoi(p); new_faces[i].name = strdup_local(q); /* We need to calculate the checksum of the bmaps file * name->number mapping to send to the client. This does not * need to match what sum or other utility may come up with - * as long as we get the same results on the same real file * data, it does the job as it lets the client know if * the file has the same data or not. */ ROTATE_RIGHT(bmaps_checksum); bmaps_checksum += value&0xff; bmaps_checksum &= 0xffffffff; ROTATE_RIGHT(bmaps_checksum); bmaps_checksum += (value>>8)&0xff; bmaps_checksum &= 0xffffffff; for (l = 0; l < strlen(q); l++) { ROTATE_RIGHT(bmaps_checksum); bmaps_checksum += q[l]; bmaps_checksum &= 0xffffffff; } i++; } fclose(fp); if (i != nrofpixmaps) { LOG(llevError, "read_bmap_names: first read gave %d faces but only loaded %d??\n", nrofpixmaps, i); fatal(SEE_LAST_ERROR); } LOG(llevDebug, "done (got %d faces)\n", nrofpixmaps); qsort(new_faces, nrofpixmaps, sizeof(New_Face), (int (*)(const void *, const void *))compare_face); for (i = 0; i < nrofpixmaps; i++) { new_faces[i].number = i; } read_face_data(); for (i = 0; i < nrofpixmaps; i++) { if (new_faces[i].magicmap == 255) { new_faces[i].magicmap = 0; } } /* Actually forcefully setting the colors here probably should not * be done - it could easily create confusion. */ blank_face = &new_faces[find_face(BLANK_FACE_NAME, 0)]; blank_face->magicmap = find_color("khaki")|FACE_FLOOR; empty_face = &new_faces[find_face(EMPTY_FACE_NAME, 0)]; smooth_face = &new_faces[find_face(SMOOTH_FACE_NAME, 0)]; } /** * This returns an the face number of face 'name'. Number is constant * during an invocation, but not necessarily between versions (this * is because the faces are arranged in alphabetical order, so * if a face is removed or added, all faces after that will now * have a different number. * * @param name * face to search for * @param error * value to return if face was not found. * * @note * If a face is not found, then error is returned. This can be useful if * you want some default face used, or can be set to negative * so that it will be known that the face could not be found * (needed in client, so that it will know to request that image * from the server) */ unsigned find_face(const char *name, unsigned error) { New_Face *bp, tmp; tmp.name = name; bp = (New_Face *)bsearch(&tmp, new_faces, nrofpixmaps, sizeof(New_Face), (int (*)(const void *, const void *))compare_face); return bp ? bp->number : error; } /** * Reads the smooth file to know how to smooth datas. * the smooth file if made of 2 elements lines. * lines starting with # are comment * the first element of line is face to smooth * the next element is the 16x2 faces picture * used for smoothing * * @note * will call exit() if file can't be opened. */ int read_smooth(void) { char buf[MAX_BUF], *p, *q; FILE *fp; unsigned regular, smoothed; int nrofsmooth = 0; snprintf(buf, sizeof(buf), "%s/smooth", settings.datadir); LOG(llevDebug, "Reading smooth from %s...\n", buf); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Cannot open smooth file: %s\n", strerror_local(errno, buf, sizeof(buf))); exit(-1); } while (fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; if ((p = strchr(buf, '\n'))) *p = '\0'; p = strchr(buf, ' '); if (!p) continue; *p = '\0'; q = buf; regular = find_face(q, (unsigned)-1); if (regular == (unsigned)-1) { LOG(llevError, "invalid regular face: %s\n", q); continue; } q = p+1; smoothed = find_face(q, (unsigned)-1); if (smoothed == (unsigned)-1) { LOG(llevError, "invalid smoothed face: %s\n", q); continue; } new_faces[regular].smoothface = smoothed; nrofsmooth++; } fclose(fp); LOG(llevDebug, "done (got %d smooth entries)\n", nrofsmooth); return nrofsmooth; } /** * Find the smooth face for a given face. * * @param face the face to find the smoothing face for * * @param smoothed return value: set to smooth face * * @return 1=smooth face found, 0=no smooth face found */ int find_smooth(uint16 face, uint16 *smoothed) { (*smoothed) = 0; if (face < nrofpixmaps) { if (new_faces[face].smoothface == ((uint16)-1)) return 0; (*smoothed) = new_faces[face].smoothface; return 1; } return 0; } /** * Deallocates memory allocated by read_bmap_names() and read_smooth(). */ void free_all_images(void) { unsigned int i; for (i = 0; i < nrofpixmaps; i++) free((char*)(new_faces[i].name)); free(new_faces); } /** * Checks fallback are correctly defined. * This is a simple recursive function that makes sure the fallbacks * are all proper (eg, the fall back to defined sets, and also * eventually fall back to 0). At the top level, togo is set to * MAX_FACE_SETS. If togo gets to zero, it means we have a loop. * This is only run when we first load the facesets. */ static void check_faceset_fallback(int faceset, int togo) { int fallback = facesets[faceset].fallback; /* proper case - falls back to base set */ if (fallback == 0) return; if (!facesets[fallback].prefix) { LOG(llevError, "Face set %d falls to non set faceset %d\n", faceset, fallback); abort(); } togo--; if (togo == 0) { LOG(llevError, "Infinite loop found in facesets. aborting.\n"); abort(); } check_faceset_fallback(fallback, togo); } /** * Loads all the image types into memory. * * This way, we can easily send them to the client. We should really * do something better than abort on any errors - on the other hand, * these are all fatal to the server (can't work around them), but the * abort just seems a bit messy (exit would probably be better.) * * Couple of notes: We assume that the faces are in a continous block. * This works fine for now, but this could perhaps change in the future * * Function largely rewritten May 2000 to be more general purpose. * The server itself does not care what the image data is - to the server, * it is just data it needs to allocate. As such, the code is written * to do such. */ void read_client_images(void) { char filename[400]; char buf[HUGE_BUF]; char *cp, *cps[7+1], *slash; FILE *infile; int len, fileno, i; unsigned int num; memset(facesets, 0, sizeof(facesets)); snprintf(filename, sizeof(filename), "%s/image_info", settings.datadir); if ((infile = fopen(filename, "r")) == NULL) { LOG(llevError, "Unable to open %s\n", filename); abort(); } while (fgets(buf, HUGE_BUF-1, infile) != NULL) { if (buf[0] == '#') continue; if (split_string(buf, cps, sizeof(cps)/sizeof(*cps), ':') != 7) LOG(llevError, "Bad line in image_info file, ignoring line:\n %s", buf); else { len = atoi(cps[0]); if (len >= MAX_FACE_SETS) { LOG(llevError, "To high a setnum in image_info file: %d > %d\n", len, MAX_FACE_SETS); abort(); } facesets[len].prefix = strdup_local(cps[1]); facesets[len].fullname = strdup_local(cps[2]); facesets[len].fallback = atoi(cps[3]); facesets[len].size = strdup_local(cps[4]); facesets[len].extension = strdup_local(cps[5]); facesets[len].comment = strdup_local(cps[6]); } } fclose(infile); for (i = 0; i < MAX_FACE_SETS; i++) { if (facesets[i].prefix) check_faceset_fallback(i, MAX_FACE_SETS); } /* Loaded the faceset information - now need to load up the * actual faces. */ for (fileno = 0; fileno < MAX_FACE_SETS; fileno++) { /* if prefix is not set, this is not used */ if (!facesets[fileno].prefix) continue; facesets[fileno].faces = calloc(nrofpixmaps, sizeof(face_info)); snprintf(filename, sizeof(filename), "%s/crossfire.%d", settings.datadir, fileno); LOG(llevDebug, "Loading image file %s\n", filename); if ((infile = fopen(filename, "rb")) == NULL) { LOG(llevError, "Unable to open %s\n", filename); abort(); } while (fgets(buf, HUGE_BUF-1, infile) != NULL) { if (strncmp(buf, "IMAGE ", 6) != 0) { LOG(llevError, "read_client_images:Bad image line - not IMAGE, instead\n%s", buf); abort(); } cp = buf + 6; len = atoi(cp); if (len == 0 || len > MAX_IMAGE_SIZE) { LOG(llevError, "read_client_images: length not valid: %d > %d \n%s", len, MAX_IMAGE_SIZE, buf); abort(); } for ( ; *cp != ' ' && *cp != '\n' && *cp != '\0'; cp++) ; if (*cp != ' ') { LOG(llevError, "read_client_images: couldn't find name start for %d\n", num); abort(); } cp++; /* cp points to the start of the full name */ slash = strrchr(cp, '/'); if (slash != NULL) cp = slash + 1; if (cp[strlen(cp) - 1] == '\n') cp[strlen(cp) - 1] = '\0'; /* cp points to the start of the picture name itself */ num = find_face(cp, (unsigned)-1); if (num == (unsigned)-1) { LOG(llevError, "read_client_images: couldn't find picture %s\n", cp); abort(); } if (num >= nrofpixmaps) { LOG(llevError, "read_client_images: invalid picture number %d for %s\n", num, cp); abort(); } facesets[fileno].faces[num].datalen = len; facesets[fileno].faces[num].data = malloc(len); if ((i = fread(facesets[fileno].faces[num].data, len, 1, infile)) != 1) { LOG(llevError, "read_client_images: Did not read desired amount of data, wanted %d, got %d\n%s", len, i, buf); abort(); } facesets[fileno].faces[num].checksum = 0; for (i = 0; i < len; i++) { ROTATE_RIGHT(facesets[fileno].faces[num].checksum); facesets[fileno].faces[num].checksum += facesets[fileno].faces[num].data[i]; facesets[fileno].faces[num].checksum &= 0xffffffff; } } fclose(infile); } /* For fileno < MAX_FACE_SETS */ } /** * Checks specified faceset is valid * \param fsn faceset number */ int is_valid_faceset(int fsn) { if (fsn >= 0 && fsn < MAX_FACE_SETS && facesets[fsn].prefix) return TRUE; return FALSE; } /** * Frees all faceset information */ void free_socket_images(void) { int num; unsigned int q; for (num = 0; num < MAX_FACE_SETS; num++) { if (facesets[num].prefix) { for (q = 0; q < nrofpixmaps; q++) free(facesets[num].faces[q].data); free(facesets[num].prefix); free(facesets[num].fullname); free(facesets[num].size); free(facesets[num].extension); free(facesets[num].comment); free(facesets[num].faces); } } } /** * This returns the set we will actually use when sending * a face. This is used because the image files may be sparse. * This function is recursive. imageno is the face number we are * trying to send * * If face is not found in specified faceset, tries with 'fallback' faceset. * * \param faceset faceset to check * \param imageno image number * */ int get_face_fallback(int faceset, int imageno) { /* faceset 0 is supposed to have every image, so just return. Doing * so also prevents infinite loops in the case if it not having * the face, but in that case, we are likely to crash when we try * to access the data, but that is probably preferable to an infinite * loop. */ if (faceset == 0) return 0; if (!facesets[faceset].prefix) { LOG(llevError, "get_face_fallback called with unused set (%d)?\n", faceset); return 0; /* use default set */ } if (facesets[faceset].faces[imageno].data) return faceset; return get_face_fallback(facesets[faceset].fallback, imageno); } crossfire-1.70.0/common/glue.c0000644000014500000120000000422311731300526013071 00000000000000/* * static char *rcsid_glue_c = * "$Id: glue.c 12291 2009-11-28 22:40:21Z anmaster $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ #include #include /** * @file glue.c * * All this glue is currently needed to connect the game with the * server. I'll try to make the library more able to "stand on it's * own legs" later; not done in 5 minutes to separate two parts of * the code which were connected, well, can you say "spagetti"? * * Glue has been cleaned, so this file is almost empty now :) * Ryo 2005-07-15 */ /** * Error messages to display. */ static const char *const fatalmsgs[] = { "Failed to allocate memory", "Failed repeatedly to load maps", "Hashtable for archetypes is too small", "Fatal issue in archetype file", "See last error", }; /** * fatal() is meant to be called whenever a fatal signal is intercepted. * It will call the emergency_save and the clean_tmp_files functions. * * @note * this function never returns, as it calls exit(). */ void fatal(int err) { fprintf(logfile, "Fatal: %s\n", (unsigned)err < sizeof(fatalmsgs)/sizeof(*fatalmsgs) ? fatalmsgs[(unsigned)err] : "invalid error code"); emergency_save(0); clean_tmp_files(); fprintf(logfile, "Exiting...\n"); exit(err); } crossfire-1.70.0/macros/0000755000014500000120000000000011732537041012051 500000000000000crossfire-1.70.0/macros/ltoptions.m40000644000014500000120000003007311732536431014273 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) crossfire-1.70.0/macros/ltversion.m40000644000014500000120000000126211732536432014264 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) crossfire-1.70.0/macros/lt~obsolete.m40000644000014500000120000001375611732536432014624 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) crossfire-1.70.0/macros/libtool.m40000644000014500000120000105721611732536431013715 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS crossfire-1.70.0/macros/cf_python.m40000644000014500000120000001112011731300523014207 00000000000000# Check for Python. # For now we prefer Python 2.x rather than 3.x # AC_DEFUN([CF_CHECK_PYTHON], [ PYTHON_LIB="" PY_LIBS="" PY_INCLUDES="" dir="" if test "x$PYTHON_HOME" != "x"; then for dir in $PYTHON_HOME/include/python{,2.7,2.6,2.5,2.4,3.1,3.0} ; do AC_CHECK_HEADERS(["$dir/Python.h"],[cf_have_python_h=yes]) if test "x$cf_have_python_h" != "x" ; then PY_INCLUDES="-I$dir" break fi done PYTHON_SEARCH=$PYTHON else AC_CHECK_HEADERS([Python.h],[cf_have_python_h=yes]) if test "x$cf_have_python_h" = "x" ; then for dir in /usr{,/local}/include/python{,2.7,2.6,2.5,2.4,3.1,3.0} ; do AC_CHECK_HEADERS(["$dir/Python.h"],[cf_have_python_h=yes]) if test "x$cf_have_python_h" != "x" ; then PY_INCLUDES="-I$dir" break fi done else PY_INCLUDES="" fi fi if test "x$cf_have_python_h" = "xyes" ; then PYTHON_LIB="" if test "x$PYTHON_HOME" != "x"; then # I am going of how manually compiled python installed on # my system. We can't use AC_CHECK_LIB, because that will # find the one in the stanard location, which is what we # want to avoid. python=`echo $dir | awk -F/ '{print $NF}'`; AC_MSG_CHECKING([for python lib in various places]) if test -f $PYTHON_HOME/lib/lib$python.so ; then # Hopefully -R is a universal option AC_MSG_RESULT([found in $PYTHON_HOME/lib/]) if test -n "$hardcode_libdir_flag_spec" ; then oldlibdir=$libdir libdir="$PYTHON_HOME/lib/" rpath=`eval echo $hardcode_libdir_flag_spec` PYTHON_LIB="$rpath -L$PYTHON_HOME/lib/ -l$python" echo " rpath=$rpath" libdir=$oldlibdir else PYTHON_LIB="-L$PYTHON_HOME/lib/ -l$python" fi elif test -f $PYTHON_HOME/lib/$python/lib$python.a ; then PYTHON_LIB="$PYTHON_HOME/lib/$python/lib$python.a" AC_MSG_RESULT([found in $PYTHON_HOME/lib/$python]) elif test -f $PYTHON_HOME/lib/$python/config/lib$python.a ; then PYTHON_LIB="$PYTHON_HOME/lib/$python/config/lib$python.a" AC_MSG_RESULT([found in $PYTHON_HOME/lib/$python/config]) fi else for lib in python{,2.7,2.6,2.5,2.4,3.1,3.0} ; do AC_CHECK_LIB($lib, PyArg_ParseTuple,[PYTHON_LIB="-l$lib"]) if test "x$PYTHON_LIB" != "x" ; then break fi done # These checks are a bit bogus - would be better to use AC_CHECK_LIB, # but it caches the result of the first check, even if we run AC_CHECK_LIB # with other options. python=`echo $dir | awk -F/ '{print $NF}'`; if test "x$PYTHON_LIB" = "x" ; then AC_MSG_CHECKING([For python lib in various places]) if test -f /usr/lib/$python/lib$python.a ; then PYTHON_LIB="/usr/lib/$python/lib$python.a" AC_MSG_RESULT([found in /usr/lib/$python]) elif test -f /usr/lib/$python/config/lib$python.a ; then PYTHON_LIB="/usr/lib/$python/config/lib$python.a" AC_MSG_RESULT([found in /usr/lib/$python/config]) fi fi fi if test "x$PYTHON_LIB" != "x" ; then AC_CHECK_LIB(pthread, main, PY_LIBS="$PY_LIBS -lpthread", , $PY_LIBS ) AC_CHECK_LIB(util, main, PY_LIBS="$PY_LIBS -lutil", , $PY_LIBS ) AC_CHECK_LIB(dl, main, PY_LIBS="$PY_LIBS -ldl", , $PY_LIBS ) AC_MSG_CHECKING([whether python supports the "L" format specifier]) saved_LIBS="$LIBS" LIBS="$LIBS $PYTHON_LIB $PY_LIBS" saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PY_INCLUDES" AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include #if PY_MAJOR_VERSION >= 3 #define IS_PY3K #endif static PyObject *callback(PyObject *self, PyObject *args) { long long val; if (!PyArg_ParseTuple(args, "L", &val)) return NULL; if (val != 1) exit(1); Py_INCREF(Py_None); return Py_None; } static PyMethodDef TestMethods[] = { {"callback", callback, METH_VARARGS}, {NULL, NULL, 0, NULL}, }; #ifdef IS_PY3K static PyModuleDef TestModule = { PyModuleDef_HEAD_INIT, "test", NULL, -1, TestMethods, NULL, NULL, NULL, NULL }; static PyObject* PyInit_test(void) { PyObject *module = PyModule_Create(&TestModule); return module; } #endif int main() { #ifdef IS_PY3K PyImport_AppendInittab("test", &PyInit_test); #endif Py_Initialize(); #ifndef IS_PY3K Py_InitModule("test", TestMethods); #endif return(PyRun_SimpleString("import test\ntest.callback(1)\n") != 0); } ]])],[ AC_MSG_RESULT([yes]) ],[ AC_MSG_RESULT([no]) PYTHON_LIB="" PYLIBS="" PY_INCLUDE="" ],[ AC_MSG_RESULT([skipped because cross compiling]) ]) LIBS="$saved_LIBS" CFLAGS="$saved_CFLAGS" fi fi if test "x$PYTHON_LIB" = "x" ; then $2 else $1 fi AC_SUBST(PYTHON_LIB) AC_SUBST(PY_LIBS) AC_SUBST(PY_INCLUDES) ]) crossfire-1.70.0/macros/cf_visibility.m40000644000014500000120000000141611731300523015064 00000000000000# Check for -fvisibility and the related __attribute__s AC_DEFUN([CF_CHECK_VISIBILITY], [ AC_MSG_CHECKING([whether the C compiler supports -fvisibility=hidden and the visibility __attribute__]) saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden -Werror" AC_RUN_IFELSE([AC_LANG_SOURCE([[ __attribute__((visibility("hidden"))) int t1(void) { return 0; } __attribute__((visibility("default"))) int t2(void) { return 0; } int main(void) { t1(); t2(); return 0; } ]])],[ AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_VISIBILITY], 1, [Define if __attribute__((visibility)) is supported]) CFLAGS="$saved_CFLAGS -fvisibility=hidden" ],[ AC_MSG_RESULT([no]) CFLAGS="$saved_CFLAGS" ],[ AC_MSG_RESULT([skipped because cross compiling]) ]) ]) crossfire-1.70.0/macros/cf_xslt.m40000644000014500000120000000572411731300523013675 00000000000000# CF_IS_XSLT_COMPLIANT(progpath,ACTION-IF-FOUND, ACTION_IF_NOT_FOUND) # check for xslt compliance of a given prog, prog must be a full executable # execution command, in this command, this substitution will be donne: # %1 = xml file # %2 = xsl file # %3 = html file # AC_DEFUN([CF_IS_XSLT_COMPLIANT],[ cat << \EOF > configtest.xml HAMMER HG2606 32456240 $30.00 EOF cat << \EOF > configtest.xsl

Tool Information (edit):


EOF AC_MSG_CHECKING([xslt compliance of $1]) to_run=$1 to_run=${to_run/\%1/configtest.xml} to_run=${to_run/\%2/configtest.xsl} to_run=${to_run/\%3/configtest.out} if AC_TRY_COMMAND([$to_run]);then AC_MSG_RESULT([yes]); [$2] else AC_MSG_RESULT([no]); [$3] fi ]) AC_DEFUN([CF_CHECK_XSLT],[ AC_ARG_WITH(xsltproc, [AS_HELP_STRING([--with-xsltproc=path], [specify xslt engine to use for test report generation])], [check_xslt_forcedprogfound=$withval]) if test "x$check_xslt_forcedprogfound" != "x"; then AC_PATH_PROG([check_xslt_forcedprogfound],[$check_xslt_forcedprogfound],[notfound]) fi AC_PATH_PROG([check_xslt_xsltprocfound],[xsltproc],[notfound]) AC_PATH_PROG([check_xslt_sablotronfound],[sabcmd],[notfound]) xslt_prog="notfound" if test "$check_xslt_forcedprogfound" != notfound -a "x$check_xslt_forcedprogfound" != x; then xslt_prog="$check_xslt_forcedprogfound" CF_IS_XSLT_COMPLIANT([$xslt_prog],[$1=$xslt_prog],[xslt_prog="notfound"]) fi xslt_prog="notfound" if test "$check_xslt_xsltprocfound" != notfound -a "$xslt_prog" = notfound; then xslt_prog="$check_xslt_xsltprocfound -o %3 %2 %1" CF_IS_XSLT_COMPLIANT([$xslt_prog],[$1=$xslt_prog],[xslt_prog="notfound"]) fi if test "$check_xslt_sablotronfound" != notfound -a "$xslt_prog" = notfound; then xslt_prog="$check_xslt_sablotronfound %2 %1 %3" CF_IS_XSLT_COMPLIANT([$xslt_prog],[$1=$xslt_prog],[xslt_prog="notfound"]) fi ]) crossfire-1.70.0/macros/ltsugar.m40000644000014500000120000001042411732536432013720 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) crossfire-1.70.0/macros/libcurl.m40000644000014500000120000002176611731300523013673 00000000000000# LIBCURL_CHECK_CONFIG ([DEFAULT-ACTION], [MINIMUM-VERSION], # [ACTION-IF-YES], [ACTION-IF-NO]) # ---------------------------------------------------------- # David Shaw May-09-2006 # # Checks for libcurl. DEFAULT-ACTION is the string yes or no to # specify whether to default to --with-libcurl or --without-libcurl. # If not supplied, DEFAULT-ACTION is yes. MINIMUM-VERSION is the # minimum version of libcurl to accept. Pass the version as a regular # version number like 7.10.1. If not supplied, any version is # accepted. ACTION-IF-YES is a list of shell commands to run if # libcurl was successfully found and passed the various tests. # ACTION-IF-NO is a list of shell commands that are run otherwise. # Note that using --without-libcurl does run ACTION-IF-NO. # # This macro #defines HAVE_LIBCURL if a working libcurl setup is # found, and sets @LIBCURL@ and @LIBCURL_CPPFLAGS@ to the necessary # values. Other useful defines are LIBCURL_FEATURE_xxx where xxx are # the various features supported by libcurl, and LIBCURL_PROTOCOL_yyy # where yyy are the various protocols supported by libcurl. Both xxx # and yyy are capitalized. See the list of AH_TEMPLATEs at the top of # the macro for the complete list of possible defines. Shell # variables $libcurl_feature_xxx and $libcurl_protocol_yyy are also # defined to 'yes' for those features and protocols that were found. # Note that xxx and yyy keep the same capitalization as in the # curl-config list (e.g. it's "HTTP" and not "http"). # # Users may override the detected values by doing something like: # LIBCURL="-lcurl" LIBCURL_CPPFLAGS="-I/usr/myinclude" ./configure # # For the sake of sanity, this macro assumes that any libcurl that is # found is after version 7.7.2, the first version that included the # curl-config script. Note that it is very important for people # packaging binary versions of libcurl to include this script! # Without curl-config, we can only guess what protocols are available, # or use curl_version_info to figure it out at runtime. AC_DEFUN([LIBCURL_CHECK_CONFIG], [ AH_TEMPLATE([LIBCURL_FEATURE_SSL],[Defined if libcurl supports SSL]) AH_TEMPLATE([LIBCURL_FEATURE_KRB4],[Defined if libcurl supports KRB4]) AH_TEMPLATE([LIBCURL_FEATURE_IPV6],[Defined if libcurl supports IPv6]) AH_TEMPLATE([LIBCURL_FEATURE_LIBZ],[Defined if libcurl supports libz]) AH_TEMPLATE([LIBCURL_FEATURE_ASYNCHDNS],[Defined if libcurl supports AsynchDNS]) AH_TEMPLATE([LIBCURL_FEATURE_IDN],[Defined if libcurl supports IDN]) AH_TEMPLATE([LIBCURL_FEATURE_SSPI],[Defined if libcurl supports SSPI]) AH_TEMPLATE([LIBCURL_FEATURE_NTLM],[Defined if libcurl supports NTLM]) AH_TEMPLATE([LIBCURL_PROTOCOL_HTTP],[Defined if libcurl supports HTTP]) AH_TEMPLATE([LIBCURL_PROTOCOL_HTTPS],[Defined if libcurl supports HTTPS]) AH_TEMPLATE([LIBCURL_PROTOCOL_FTP],[Defined if libcurl supports FTP]) AH_TEMPLATE([LIBCURL_PROTOCOL_FTPS],[Defined if libcurl supports FTPS]) AH_TEMPLATE([LIBCURL_PROTOCOL_FILE],[Defined if libcurl supports FILE]) AH_TEMPLATE([LIBCURL_PROTOCOL_TELNET],[Defined if libcurl supports TELNET]) AH_TEMPLATE([LIBCURL_PROTOCOL_LDAP],[Defined if libcurl supports LDAP]) AH_TEMPLATE([LIBCURL_PROTOCOL_DICT],[Defined if libcurl supports DICT]) AH_TEMPLATE([LIBCURL_PROTOCOL_TFTP],[Defined if libcurl supports TFTP]) AC_ARG_WITH(libcurl, AS_HELP_STRING([--with-libcurl=DIR],[look for the curl library in DIR]), [_libcurl_with=$withval],[_libcurl_with=ifelse([$1],,[yes],[$1])]) if test "$_libcurl_with" != "no" ; then AC_PROG_AWK _libcurl_version_parse="eval $AWK '{split(\$NF,A,\".\"); X=256*256*A[[1]]+256*A[[2]]+A[[3]]; print X;}'" _libcurl_try_link=yes if test -d "$_libcurl_with" ; then LIBCURL_CPPFLAGS="-I$withval/include" _libcurl_ldflags="-L$withval/lib" AC_PATH_PROG([_libcurl_config],[curl-config],["$withval/bin"], ["$withval/bin"]) else AC_PATH_PROG([_libcurl_config],[curl-config]) fi if test x$_libcurl_config != "x" ; then AC_CACHE_CHECK([for the version of libcurl], [libcurl_cv_lib_curl_version], [libcurl_cv_lib_curl_version=`$_libcurl_config --version | $AWK '{print $[]2}'`]) _libcurl_version=`echo $libcurl_cv_lib_curl_version | $_libcurl_version_parse` _libcurl_wanted=`echo ifelse([$2],,[0],[$2]) | $_libcurl_version_parse` if test $_libcurl_wanted -gt 0 ; then AC_CACHE_CHECK([for libcurl >= version $2], [libcurl_cv_lib_version_ok], [ if test $_libcurl_version -ge $_libcurl_wanted ; then libcurl_cv_lib_version_ok=yes else libcurl_cv_lib_version_ok=no fi ]) fi if test $_libcurl_wanted -eq 0 || test x$libcurl_cv_lib_version_ok = xyes ; then if test x"$LIBCURL_CPPFLAGS" = "x" ; then LIBCURL_CPPFLAGS=`$_libcurl_config --cflags` fi if test x"$LIBCURL" = "x" ; then LIBCURL=`$_libcurl_config --libs` # This is so silly, but Apple actually has a bug in their # curl-config script. Fixed in Tiger, but there are still # lots of Panther installs around. case "${host}" in powerpc-apple-darwin7*) LIBCURL=`echo $LIBCURL | sed -e 's|-arch i386||g'` ;; esac fi # All curl-config scripts support --feature _libcurl_features=`$_libcurl_config --feature` # Is it modern enough to have --protocols? (7.12.4) if test $_libcurl_version -ge 461828 ; then _libcurl_protocols=`$_libcurl_config --protocols` fi else _libcurl_try_link=no fi unset _libcurl_wanted fi if test $_libcurl_try_link = yes ; then # we didn't find curl-config, so let's see if the user-supplied # link line (or failing that, "-lcurl") is enough. LIBCURL=${LIBCURL-"$_libcurl_ldflags -lcurl"} AC_CACHE_CHECK([whether libcurl is usable], [libcurl_cv_lib_curl_usable], [ _libcurl_save_cppflags=$CPPFLAGS CPPFLAGS="$LIBCURL_CPPFLAGS $CPPFLAGS" _libcurl_save_libs=$LIBS LIBS="$LIBCURL $LIBS" AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]],[ /* Try and use a few common options to force a failure if we are missing symbols or can't link. */ int x; curl_easy_setopt(NULL,CURLOPT_URL,NULL); x=CURL_ERROR_SIZE; x=CURLOPT_WRITEFUNCTION; x=CURLOPT_FILE; x=CURLOPT_ERRORBUFFER; x=CURLOPT_STDERR; x=CURLOPT_VERBOSE; ])],[libcurl_cv_lib_curl_usable=yes],[libcurl_cv_lib_curl_usable=no]) CPPFLAGS=$_libcurl_save_cppflags LIBS=$_libcurl_save_libs unset _libcurl_save_cppflags unset _libcurl_save_libs ]) if test $libcurl_cv_lib_curl_usable = yes ; then # Does curl_free() exist in this version of libcurl? # If not, fake it with free() _libcurl_save_cppflags=$CPPFLAGS CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" _libcurl_save_libs=$LIBS LIBS="$LIBS $LIBCURL" AC_CHECK_FUNC(curl_free,, AC_DEFINE(curl_free,free, [Define curl_free() as free() if our version of curl lacks curl_free.])) CPPFLAGS=$_libcurl_save_cppflags LIBS=$_libcurl_save_libs unset _libcurl_save_cppflags unset _libcurl_save_libs AC_DEFINE(HAVE_LIBCURL,1, [Define to 1 if you have a functional curl library.]) AC_SUBST(LIBCURL_CPPFLAGS) AC_SUBST(LIBCURL) for _libcurl_feature in $_libcurl_features ; do AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_feature_$_libcurl_feature),[1]) eval AS_TR_SH(libcurl_feature_$_libcurl_feature)=yes done if test "x$_libcurl_protocols" = "x" ; then # We don't have --protocols, so just assume that all # protocols are available _libcurl_protocols="HTTP FTP FILE TELNET LDAP DICT" if test x$libcurl_feature_SSL = xyes ; then _libcurl_protocols="$_libcurl_protocols HTTPS" # FTPS wasn't standards-compliant until version # 7.11.0 if test $_libcurl_version -ge 461568; then _libcurl_protocols="$_libcurl_protocols FTPS" fi fi fi for _libcurl_protocol in $_libcurl_protocols ; do AC_DEFINE_UNQUOTED(AS_TR_CPP(libcurl_protocol_$_libcurl_protocol),[1]) eval AS_TR_SH(libcurl_protocol_$_libcurl_protocol)=yes done else unset LIBCURL unset LIBCURL_CPPFLAGS fi fi unset _libcurl_try_link unset _libcurl_version_parse unset _libcurl_config unset _libcurl_feature unset _libcurl_features unset _libcurl_protocol unset _libcurl_protocols unset _libcurl_version unset _libcurl_ldflags fi if test x$_libcurl_with = xno || test x$libcurl_cv_lib_curl_usable != xyes ; then # This is the IF-NO path ifelse([$4],,:,[$4]) else # This is the IF-YES path ifelse([$3],,:,[$3]) fi unset _libcurl_with ])dnl crossfire-1.70.0/macros/check.m40000644000014500000120000001034111731300523013277 00000000000000# AM_PATH_CHECK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) # Test for check, and define CHECK_CFLAGS and CHECK_LIBS # AC_DEFUN([AM_PATH_CHECK], [ AC_ARG_WITH(check, [AS_HELP_STRING([--with-check=PATH], [prefix where check is installed [default=auto]])]) min_check_version=ifelse([$1], ,0.8.2,$1) AC_MSG_CHECKING(for check - version >= $min_check_version) if test x$with_check = xno; then AC_MSG_RESULT(disabled) ifelse([$3], , AC_MSG_ERROR([disabling check is not supported]), [$3]) else if test "x$with_check" != x; then CHECK_CFLAGS="-I$with_check/include" CHECK_LIBS="-L$with_check/lib -lcheck" else CHECK_CFLAGS="" CHECK_LIBS="-lcheck" fi ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" rm -f conf.check-test AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.check-test"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = strdup("$min_check_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_check_version"); return 1; } if ((CHECK_MAJOR_VERSION != check_major_version) || (CHECK_MINOR_VERSION != check_minor_version) || (CHECK_MICRO_VERSION != check_micro_version)) { printf("\n*** The check header file (version %d.%d.%d) does not match\n", CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); printf("*** the check library (version %d.%d.%d).\n", check_major_version, check_minor_version, check_micro_version); return 1; } if ((check_major_version > major) || ((check_major_version == major) && (check_minor_version > minor)) || ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of check (%d.%d.%d) was found.\n", check_major_version, check_minor_version, check_micro_version); printf("*** You need a version of check being at least %d.%d.%d.\n", major, minor, micro); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the check library and header\n"); printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); printf("*** to specify the prefix where the correct version was installed.\n"); } return 1; } ]])],[],[no_check=yes],[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" if test "x$no_check" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test -f conf.check-test ; then : else echo "*** Could not run check test program, checking why..." CFLAGS="$CFLAGS $CHECK_CFLAGS" LIBS="$CHECK_LIBS $LIBS" AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include #include #include ]], [[]])],[ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding check. You'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for" echo "*** the exact error that occured." ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi CHECK_CFLAGS="" CHECK_LIBS="" rm -f conf.check-test ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) fi AC_SUBST(CHECK_CFLAGS) AC_SUBST(CHECK_LIBS) rm -f conf.check-test fi ]) crossfire-1.70.0/plugins/0000755000014500000120000000000011732537046012253 500000000000000crossfire-1.70.0/plugins/cfrhg/0000755000014500000120000000000011732537046013344 500000000000000crossfire-1.70.0/plugins/cfrhg/include/0000755000014500000120000000000011732537046014767 500000000000000crossfire-1.70.0/plugins/cfrhg/include/cfrhg_proto.h0000644000014500000120000000045611731300517017367 00000000000000/* cfrhg.c */ int cfrhg_globalEventListener(int *type, ...); int eventListener(int *type, ...); int initPlugin(const char *iversion, f_plug_api gethooksptr); void *getPluginProperty(int *type, ...); int cfrhg_runPluginCommand(object *op, char *params); int postInitPlugin(void); int closePlugin(void); crossfire-1.70.0/plugins/cfrhg/include/Makefile.am0000644000014500000120000000005011731300517016724 00000000000000noinst_HEADERS = cfrhg_proto.h cfrhg.h crossfire-1.70.0/plugins/cfrhg/include/cfrhg.h0000644000014500000120000000554211731300517016145 00000000000000/*****************************************************************************/ /* Template for version 2.0 plugins. */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /** * @file * This file is part of the @ref plugin_rhg "random house generation plugin". * See this page for more information. * @ingroup plugin_rhg * @{ */ #ifndef PLUGIN_cfrhg_H #define PLUGIN_cfrhg_H #define PLUGIN_NAME "cfrhg" #define PLUGIN_VERSION "Random house generator plugin version 1.0" #ifndef __CEXTRACT__ #include #endif #undef MODULEAPI #ifdef WIN32 # ifdef PYTHON_PLUGIN_EXPORTS # define MODULEAPI __declspec(dllexport) # else # define MODULEAPI __declspec(dllimport) # endif #else #ifdef HAVE_VISIBILITY # define MODULEAPI __attribute__((visibility("default"))) #else # define MODULEAPI #endif #endif #include #include extern f_plug_api gethook; /*@}*/ #endif /* PLUGIN_cfrhg_H */ crossfire-1.70.0/plugins/cfrhg/include/Makefile.in0000644000014500000120000003052711732537022016755 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfrhg/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = cfrhg_proto.h cfrhg.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfrhg/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfrhg/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfrhg/Makefile.in0000644000014500000120000006310511732537022015330 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfrhg DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) cfrhg_la_DEPENDENCIES = am_cfrhg_la_OBJECTS = cfrhg.lo plugin_common.lo cfrhg_la_OBJECTS = $(am_cfrhg_la_OBJECTS) cfrhg_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(cfrhg_la_LDFLAGS) \ $(LDFLAGS) -o $@ @CFRHG_PLUGIN_TRUE@am_cfrhg_la_rpath = -rpath $(plugindir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(cfrhg_la_SOURCES) DIST_SOURCES = $(cfrhg_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = include @CFRHG_PLUGIN_FALSE@plugin_LTLIBRARIES = @CFRHG_PLUGIN_TRUE@plugin_LTLIBRARIES = cfrhg.la plugindir = $(pkglibdir)/plugins noinst_HEADERS = include/cfrhg.h ../common/include/plugin_common.h cfrhg_la_SOURCES = cfrhg.c\ ../common/plugin_common.c cfrhg_la_LIBADD = cfrhg_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfrhg/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfrhg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done cfrhg.la: $(cfrhg_la_OBJECTS) $(cfrhg_la_DEPENDENCIES) $(EXTRA_cfrhg_la_DEPENDENCIES) $(cfrhg_la_LINK) $(am_cfrhg_la_rpath) $(cfrhg_la_OBJECTS) $(cfrhg_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfrhg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< plugin_common.lo: ../common/plugin_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT plugin_common.lo -MD -MP -MF $(DEPDIR)/plugin_common.Tpo -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/plugin_common.Tpo $(DEPDIR)/plugin_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/plugin_common.c' object='plugin_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-pluginLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pluginLTLIBRARIES proto: cproto -D__CEXTRACT__ -o include/cfrhg_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfrhg_proto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfrhg/cfrhg.c0000644000014500000120000002071711731300517014516 00000000000000/*****************************************************************************/ /* Template for version 2.0 plugins. */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2008 the Crossfire development team */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /** * @defgroup plugin_rhg Random house generation plugin * This plugin links unused exits to random maps. * The random map parameters vary based on the map it is in, but each exit will always use * the same random seed to have the same layout and content. * * Exits will only point to a random map if both their @ref obj::slaying "slaying" and * @ref obj::msg "msg" fields are empty. * * @todo * - make more parameters vary based on maps * - add exits to all towns * * @{ */ /** * @file * This file is part of the @ref plugin_rhg "random house generation plugin". * See this page for more information. */ #include #include #include #ifndef __CEXTRACT__ #include #endif #include CF_PLUGIN char SvnRevPlugin[] = SVN_REV; /** Link between a map and the exits to generate for it. */ typedef struct house_zone_struct { const char *mappath; /**< Full map path. */ const char *monsterstyle; /**< Style of monsters. */ } house_zone_struct; /** Maps we work on. */ static const house_zone_struct zones[] = { /* Scorn */ { "/world/world_104_115", "city" }, { "/world/world_105_115", "city" }, { "/world/world_104_116", "city" }, { "/world/world_105_116", "city" }, /* Navar */ { "/world/world_122_116", "city" }, { "/world/world_121_116", "city" }, { "/world/world_122_117", "city" }, { "/world/world_121_117", "city" }, { NULL, NULL } }; /** * Get the random map parameters of a map. * @param map * map to get the zone of. * @return * NULL if the map shouldn't be processed, else its parameters. */ static const house_zone_struct *get_map_zone(const mapstruct *map) { int zone; for (zone = 0; zones[zone].mappath != NULL; zone++) { if (strcmp(zones[zone].mappath, map->path) == 0) return &zones[zone]; } return NULL; } /** * Should we add a random map to this exit? * @param exit * exit to check. * @return * 1 if a map should be set, 0 else. */ static int is_suitable_exit(object *exit) { assert(exit); if (cf_object_get_int_property(exit, CFAPI_OBJECT_PROP_TYPE) != EXIT) return 0; if (cf_object_get_sstring_property(exit, CFAPI_OBJECT_PROP_SLAYING) || cf_object_get_sstring_property(exit, CFAPI_OBJECT_PROP_MESSAGE)) return 0; return 1; } /** * Get the random map seed. Will always yield the same value for the same (position included) exit. * @param exit * exit to get the seed of. * @param map * map the exit is on. * @return * random seed. */ static int get_exit_seed(const object *exit, const mapstruct *map) { char r[500]; int seed = 0, len, w = 0; snprintf(r, sizeof(r), "%s!%d,%d*%s", exit->arch->name, exit->x, exit->y, map->path); len = strlen(r)-1; while (len >= 0) { seed ^= ((int)r[len])<monsterstyle, get_exit_seed(exit, map)); cf_object_set_string_property(exit, CFAPI_OBJECT_PROP_SLAYING, "/!"); cf_object_set_string_property(exit, CFAPI_OBJECT_PROP_MESSAGE, params); } /** * Checks if the map should be processed, and if so process it. * @param map * map to work on. */ static void add_exits_to_map(const mapstruct *map) { int x, y; const house_zone_struct *zone = get_map_zone(map); if (!zone) return; for (x = 0; x < MAP_WIDTH(map); x++) { for (y = 0; y < MAP_HEIGHT(map); y++) { FOR_MAP_PREPARE(map, x, y, item) { if (is_suitable_exit(item)) add_exit_to_item(item, zone, map); } FOR_MAP_FINISH(); } } } /** * Global server event handling. Only uses EVENT_MAPLOAD. * @param type * unused. * @return * 0. */ CF_PLUGIN int cfrhg_globalEventListener(int *type, ...) { va_list args; int rv = 0; mapstruct *map; int code; va_start(args, type); code = va_arg(args, int); switch (code) { case EVENT_MAPLOAD: map = va_arg(args, mapstruct *); add_exits_to_map(map); break; } va_end(args); return rv; } /** * Unused. * @param type * unused. * @return * 0. */ CF_PLUGIN int eventListener(int *type, ...) { return 0; } /** * Plugin initialization. * @param iversion * server version. * @param gethooksptr * function to get hooks. * @return * 0. */ CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr) { cf_init_plugin(gethooksptr); cf_log(llevDebug, PLUGIN_VERSION " init\n"); return 0; } /** * Get the plugin identification or full name. * @param type * unused. * @return * NULL. */ CF_PLUGIN void *getPluginProperty(int *type, ...) { va_list args; const char *propname; int size; char *buf; va_start(args, type); propname = va_arg(args, const char *); if (!strcmp(propname, "Identification")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_NAME); return NULL; } else if (!strcmp(propname, "FullName")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_VERSION); return NULL; } va_end(args); return NULL; } /** * Unused. * @param op * unused. * @param params * unused. * @return * -1. */ CF_PLUGIN int cfrhg_runPluginCommand(object *op, char *params) { return -1; } /** * Plugin initialisation. * @return * 0. */ CF_PLUGIN int postInitPlugin(void) { cf_log(llevDebug, PLUGIN_VERSION " post init\n"); cf_system_register_global_event(EVENT_MAPLOAD, PLUGIN_NAME, cfrhg_globalEventListener); return 0; } /** * Unloading of plugin. * @return * 0. */ CF_PLUGIN int closePlugin(void) { cf_log(llevDebug, PLUGIN_VERSION " closing\n"); return 0; } /*@}*/ crossfire-1.70.0/plugins/cfrhg/Makefile.am0000644000014500000120000000311011731300517015301 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net SUBDIRS = include if CFRHG_PLUGIN plugin_LTLIBRARIES = cfrhg.la else plugin_LTLIBRARIES = endif plugindir=$(pkglibdir)/plugins noinst_HEADERS = include/cfrhg.h ../common/include/plugin_common.h cfrhg_la_SOURCES = cfrhg.c\ ../common/plugin_common.c cfrhg_la_LIBADD = cfrhg_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include proto: cproto -D__CEXTRACT__ -o include/cfrhg_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfrhg_proto.h crossfire-1.70.0/plugins/cfnewspaper/0000755000014500000120000000000011732537047014571 500000000000000crossfire-1.70.0/plugins/cfnewspaper/cfnewspaper.c0000644000014500000120000003162511731300520017160 00000000000000/*****************************************************************************/ /* Newspaper plugin version 1.0 alpha. */ /* Contact: */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2007 by Weeger Nicolas (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /* First let's include the header file needed */ #include #include #ifndef __CEXTRACT__ #include #endif #include #include CF_PLUGIN char SvnRevPlugin[] = SVN_REV; f_plug_api gethook; f_plug_api registerGlobalEvent; f_plug_api unregisterGlobalEvent; f_plug_api reCmp; static sqlite3 *logger_database; static sqlite3 *newspaper_database; static void do_sql(const char *sql, sqlite3 *base) { int err; char *msg; if (!base) return; err = sqlite3_exec(base, sql, NULL, NULL, &msg); if (err != SQLITE_OK) { cf_log(llevError, " [%s] error: %d [%s] for sql = %s\n", PLUGIN_NAME, err, msg, sql); sqlite3_free(msg); } } static int get_region_id(region *reg) { char **line; char *sql; int nrow, ncolumn, id; if (!reg) return 0; sql = sqlite3_mprintf("select reg_id from region where reg_name='%q'", reg->name); sqlite3_get_table(logger_database, sql, &line, &nrow, &ncolumn, NULL); if (nrow > 0) id = atoi(line[ncolumn]); else { sqlite3_free(sql); sql = sqlite3_mprintf("insert into region(reg_name) values( '%q' )", reg->name); do_sql(sql, logger_database); id = sqlite3_last_insert_rowid(logger_database); } sqlite3_free(sql); sqlite3_free_table(line); return id; } static void format_time(timeofday_t *tod, char *buffer, int size) { snprintf(buffer, size, "%10d-%2d-%2d %2d:%2d", tod->year, tod->month, tod->day, tod->hour, tod->minute); } static void read_parameters(void) { } CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr) { cf_init_plugin(gethooksptr); cf_log(llevInfo, "%s init\n", PLUGIN_VERSION); return 0; } CF_PLUGIN void *getPluginProperty(int *type, ...) { va_list args; const char *propname; int size; char *buf; va_start(args, type); propname = va_arg(args, const char *); if (!strcmp(propname, "Identification")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_NAME); return NULL; } if (!strcmp(propname, "FullName")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_VERSION); return NULL; } va_end(args); return NULL; } CF_PLUGIN int cfnewspaper_runPluginCommand(object *op, char *params) { return -1; } CF_PLUGIN int cfnewspaper_globalEventListener(int *type, ...) { va_list args; int rv = 0; int event_code; va_start(args, type); event_code = va_arg(args, int); switch (event_code) { } va_end(args); return rv; } CF_PLUGIN int postInitPlugin(void) { char path[500]; const char *dir; cf_log(llevInfo, "%s post init\n", PLUGIN_VERSION); dir = cf_get_directory(4); snprintf(path, 500, "%s/cflogger.db", dir); if (sqlite3_open(path, &logger_database) != SQLITE_OK) { cf_log(llevError, " [%s] couldn't connect to logger database!\n", PLUGIN_NAME); sqlite3_close(logger_database); logger_database = NULL; return 0; } snprintf(path, 500, "%s/cfnewspaper.db", dir); if (sqlite3_open(path, &newspaper_database) != SQLITE_OK) { cf_log(llevError, " [%s] unable to open newspaper database!\n", PLUGIN_NAME); sqlite3_close(logger_database); sqlite3_close(newspaper_database); logger_database = NULL; newspaper_database = NULL; return 0; } read_parameters(); return 0; } typedef struct paper_properties { const char *name; int info_region; int info_world; } paper_properties; static paper_properties default_properties = { "world newspaper", 0, 1 }; typedef struct kill_format { const char *no_player_death; const char *one_player_death; const char *many_player_death; const char *no_monster_death; const char *one_monster_death; const char *many_monster_death; } kill_format; static paper_properties *get_newspaper(const char *name) { return &default_properties; } static void news_cat(char *buffer, int size, const char *format, ...) { va_list args; size -= strlen(buffer)-1; buffer += strlen(buffer); va_start(args, format); vsprintf(buffer, format, args); va_end(args); } static void do_kills(char *buffer, int size, time_t start, time_t end, const char *reg, kill_format *format) { char *sql; char **results; int deaths = 0; int nrow, ncolumn; int err; char *msg; const char *raw_players = "select sum(1) as deaths from kill_event inner join living on liv_id = ke_victim_id where liv_is_player = %d and ke_time >= %d and ke_time < %d %s"; const char *raw_monsters = "select sum(1) as deaths from kill_event inner join living on liv_id = ke_victim_id where liv_is_player = %d and ke_time >= %d and ke_time < %d"; sql = sqlite3_mprintf(raw_players, 1, start, end, reg); err = sqlite3_get_table(logger_database, sql, &results, &nrow, &ncolumn, &msg); sqlite3_free(sql); if (err != SQLITE_OK) { cf_log(llevError, " [%s] error: %d [%s] for sql = %s\n", PLUGIN_NAME, err, msg, sql); sqlite3_free(msg); } if (nrow > 0 && results[ncolumn] != NULL) deaths = atoi(results[ncolumn]); sqlite3_free_table(results); if (deaths == 0) news_cat(buffer, size, format->no_player_death); else if (deaths == 1) news_cat(buffer, size, format->one_player_death); else news_cat(buffer, size, format->many_player_death, deaths); news_cat(buffer, size, "\n"); sql = sqlite3_mprintf(raw_monsters, 0, start, end); err = sqlite3_get_table(logger_database, sql, &results, &nrow, &ncolumn, &msg); sqlite3_free(sql); if (err != SQLITE_OK) { cf_log(llevError, " [%s] error: %d [%s] for sql = %s\n", PLUGIN_NAME, err, msg, sql); sqlite3_free(msg); } if (nrow > 0 && results[ncolumn] != NULL) deaths = atoi(results[ncolumn]); sqlite3_free_table(results); if (deaths == 0) news_cat(buffer, size, format->no_monster_death); else if (deaths == 1) news_cat(buffer, size, format->one_monster_death); else news_cat(buffer, size, format->many_monster_death, deaths); news_cat(buffer, size, "\n"); } static void do_region_kills(region *reg, char *buffer, int size, time_t start, time_t end) { kill_format f; char where[50]; int region_id; f.no_player_death = "No player died."; f.one_player_death = "Only one player died, May Fido(tm) Have Mercy."; f.many_player_death = "Monsters were busy, %d players died."; f.no_monster_death = "No monster was killed, players were lazy around here."; f.one_monster_death = "One poor monster was killed."; f.many_monster_death = "Players tried hard to kill monsters, with %d victims."; region_id = get_region_id(reg); snprintf(where, 50, "and map_reg_id = %d", region_id); do_kills(buffer, size, start, end, where, &f); } static void do_region(region *reg, char *buffer, int size, time_t start, time_t end) { news_cat(buffer, size, "--- local %s news ---\n", reg->name); do_region_kills(reg, buffer, size, start, end); news_cat(buffer, size, "\n\n"); } static void do_world_kills(char *buffer, int size, time_t start, time_t end) { kill_format f; f.no_player_death = "No player died at all."; f.one_player_death = "Only one player died in the whole world, May Fido(tm) Have Mercy."; f.many_player_death = "Monsters all around the world were busy, %d players died."; f.no_monster_death = "No monster was killed at all, players must be tired!"; f.one_monster_death = "One poor monster was killed in the whole world, too bad for it."; f.many_monster_death = "Bad day for monsters, with %d dead in their ranks."; do_kills(buffer, size, start, end, "", &f); } static void do_world(char *buffer, int size, time_t start, time_t end) { news_cat(buffer, size, "--- worldnews section ---\n"); do_world_kills(buffer, size, start, end); news_cat(buffer, size, "\n\n"); } static void get_newspaper_content(object *paper, paper_properties *properties, region *reg) { char contents[5000]; char *sql; char **results; char date[50]; int nrow, ncolumn; time_t start, end; timeofday_t tod; int err; char *msg; start = 0; time(&end); cf_get_time(&tod); format_time(&tod, date, 50); sql = sqlite3_mprintf("select * from time where time_ingame < '%q' order by time_ingame desc", date); err = sqlite3_get_table(logger_database, sql, &results, &nrow, &ncolumn, &msg); sqlite3_free(sql); if (err != SQLITE_OK) { cf_log(llevError, " [%s] error: %d [%s] for sql = %s\n", PLUGIN_NAME, err, msg, sql); sqlite3_free(msg); } if (nrow > 1 && results[ncolumn+1] != NULL) { end = atol(results[ncolumn+1]); if (nrow > 1 && results[ncolumn+2] != NULL) start = atol(results[ncolumn+2]); } contents[0] = '\0'; if (properties->info_region) do_region(reg, contents, 5000, start, end); if (properties->info_world) do_world(contents, 5000, start, end); cf_object_set_string_property(paper, CFAPI_OBJECT_PROP_MESSAGE, contents); } CF_PLUGIN int eventListener(int *type, ...) { int rv = 0; va_list args; object *who; int event_code; object *activator; /*object *third;*/ object *event; /*char *buf;*/ /*int fix;*/ object *newspaper; paper_properties *paper; region *reg; va_start(args, type); who = va_arg(args, object *); /*event_code = va_arg(args, int);*/ activator = va_arg(args, object *); /*third =*/ va_arg(args, object *); /*buf =*/ va_arg(args, char *); /*fix =*/ va_arg(args, int); /*buf = va_arg(args, char *);*/ event = va_arg(args, object *); event_code = event->subtype; va_end(args); if (event_code != EVENT_APPLY) return rv; paper = get_newspaper(event->slaying); newspaper = cf_create_object_by_name("scroll"); cf_object_set_string_property(newspaper, CFAPI_OBJECT_PROP_NAME, paper->name); cf_object_set_string_property(newspaper, CFAPI_OBJECT_PROP_NAME_PLURAL, paper->name); if (activator->map) reg = cf_map_get_region_property(activator->map, CFAPI_MAP_PROP_REGION); else reg = NULL; get_newspaper_content(newspaper, paper, reg); cf_object_insert_object(newspaper, who); return rv; } CF_PLUGIN int closePlugin(void) { cf_log(llevInfo, "%s closing.\n", PLUGIN_VERSION); if (logger_database) { sqlite3_close(logger_database); logger_database = NULL; } if (newspaper_database) { sqlite3_close(newspaper_database); newspaper_database = NULL; } return 0; } crossfire-1.70.0/plugins/cfnewspaper/Makefile.in0000644000014500000120000006346211732537022016562 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfnewspaper DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) cfnewspaper_la_DEPENDENCIES = am_cfnewspaper_la_OBJECTS = cfnewspaper.lo plugin_common.lo cfnewspaper_la_OBJECTS = $(am_cfnewspaper_la_OBJECTS) cfnewspaper_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(cfnewspaper_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_CFNEWSPAPER_TRUE@am_cfnewspaper_la_rpath = -rpath $(plugindir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(cfnewspaper_la_SOURCES) DIST_SOURCES = $(cfnewspaper_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = include plugindir = $(pkglibdir)/plugins noinst_HEADERS = ../common/include/plugin_common.h @HAVE_CFNEWSPAPER_FALSE@plugin_LTLIBRARIES = @HAVE_CFNEWSPAPER_TRUE@plugin_LTLIBRARIES = cfnewspaper.la cfnewspaper_la_SOURCES = cfnewspaper.c\ ../common/plugin_common.c cfnewspaper_la_CPSOURCES = cfnewspaper.c cfnewspaper_la_LIBADD = -lsqlite3 cfnewspaper_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfnewspaper/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfnewspaper/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done cfnewspaper.la: $(cfnewspaper_la_OBJECTS) $(cfnewspaper_la_DEPENDENCIES) $(EXTRA_cfnewspaper_la_DEPENDENCIES) $(cfnewspaper_la_LINK) $(am_cfnewspaper_la_rpath) $(cfnewspaper_la_OBJECTS) $(cfnewspaper_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfnewspaper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< plugin_common.lo: ../common/plugin_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT plugin_common.lo -MD -MP -MF $(DEPDIR)/plugin_common.Tpo -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/plugin_common.Tpo $(DEPDIR)/plugin_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/plugin_common.c' object='plugin_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-pluginLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pluginLTLIBRARIES proto: cproto -D__CEXTRACT__ -o include/cfnewspaper_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cfnewspaper_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfnewspaper_proto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfnewspaper/include/0000755000014500000120000000000011732537047016214 500000000000000crossfire-1.70.0/plugins/cfnewspaper/include/cfnewspaper.h0000644000014500000120000000524411731300520020606 00000000000000/*****************************************************************************/ /* Template for version 2.0 plugins. */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef PLUGIN_TEMPLATE_H #define PLUGIN_TEMPLATE_H #define PLUGIN_NAME "Newspaper" #define PLUGIN_VERSION "Newspaper Plugin 1.0 alpha" #ifndef __CEXTRACT__ #include #endif #undef MODULEAPI #ifdef WIN32 # ifdef PYTHON_PLUGIN_EXPORTS # define MODULEAPI __declspec(dllexport) # else # define MODULEAPI __declspec(dllimport) # endif #else #ifdef HAVE_VISIBILITY # define MODULEAPI __attribute__((visibility("default"))) #else # define MODULEAPI #endif #endif #include extern f_plug_api gethook; #endif /* PLUGIN_TEMPLATE_H */ crossfire-1.70.0/plugins/cfnewspaper/include/cfnewspaper_proto.h0000644000014500000120000000050011731300520022017 00000000000000/* cfnewspaper.c */ int initPlugin(const char *iversion, f_plug_api gethooksptr); void *getPluginProperty(int *type, ...); int cfnewspaper_runPluginCommand(object *op, char *params); int cfnewspaper_globalEventListener(int *type, ...); int postInitPlugin(void); int eventListener(int *type, ...); int closePlugin(void); crossfire-1.70.0/plugins/cfnewspaper/include/Makefile.am0000644000014500000120000000006511731300520020150 00000000000000 noinst_HEADERS = cfnewspaper.h cfnewspaper_proto.h crossfire-1.70.0/plugins/cfnewspaper/include/Makefile.in0000644000014500000120000003056511732537022020203 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfnewspaper/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = cfnewspaper.h cfnewspaper_proto.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfnewspaper/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfnewspaper/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfnewspaper/Makefile.am0000644000014500000120000000325211731300520016526 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net SUBDIRS = include plugindir=$(pkglibdir)/plugins noinst_HEADERS = ../common/include/plugin_common.h if HAVE_CFNEWSPAPER plugin_LTLIBRARIES = cfnewspaper.la else plugin_LTLIBRARIES = endif cfnewspaper_la_SOURCES = cfnewspaper.c\ ../common/plugin_common.c cfnewspaper_la_CPSOURCES = cfnewspaper.c cfnewspaper_la_LIBADD = -lsqlite3 cfnewspaper_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include proto: cproto -D__CEXTRACT__ -o include/cfnewspaper_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cfnewspaper_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfnewspaper_proto.h crossfire-1.70.0/plugins/common/0000755000014500000120000000000011732537046013543 500000000000000crossfire-1.70.0/plugins/common/Makefile.in0000644000014500000120000004326211732537022015531 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/common DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = include noinst_HEADERS = \ plugin_common.c\ hashtable.c all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/common/Makefile.am0000644000014500000120000000010511731300517015501 00000000000000SUBDIRS = include noinst_HEADERS = \ plugin_common.c\ hashtable.c crossfire-1.70.0/plugins/common/hashtable.c0000644000014500000120000001733011731300517015554 00000000000000/*****************************************************************************/ /* hashtable.c */ /* Author: Alex Schultz, 2006 */ /* Based upon shstr.c, origionally written by Kjetil T. Homme, Oslo 1992. */ /*****************************************************************************/ /* This is a pointer association hash table library for plugins to use with */ /* a simple interface. This file is named as it is for other hash table */ /* types to be added if people wish to. */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include #ifdef WIN32 #include typedef UINT_PTR uintptr_t; #include #else #include #include #endif #ifdef HAVE_LIBDMALLOC #include #endif #include /** * Initialises the hash table for a pointer association table. * * @param hash_table * Pointer to the hash table to initialise. */ void init_ptr_assoc_table(ptr_assoc **hash_table) { (void)memset((void *)hash_table, 0, PTR_ASSOC_TABLESIZE*sizeof(ptr_assoc *)); } /** * Hashing-function used by the pointer association library. Currently * just takes the pointer modulus the table size (which should be a prime * number). * * @param ptr * The pointer to hash. * * @return * The returned hash value. */ static int hashptr(void *ptr) { return (int)((uintptr_t)ptr%PTR_ASSOC_TABLESIZE); } /** * Allocates and initialises a new ptr_assoc structure. * * @param key * The key to lookup by in the association. * @param value * The value to store with the key. * * @return * The new ptr_assoc structure. */ static ptr_assoc *new_ptr_assoc(void *key, void *value) { ptr_assoc *assoc; assoc = (ptr_assoc *)malloc(sizeof(ptr_assoc)); assoc->previous = NULL; assoc->array = NULL; assoc->next = NULL; assoc->key = key; assoc->value = value; return assoc; } /** * Adds a value to a hash table which one can lookup with key. * * @param hash_table * Pointer to the hash table to add to. * @param key * The key to lookup by in the association. * @param value * The value to store with the key. */ void add_ptr_assoc(ptr_assoc **hash_table, void *key, void *value) { ptr_assoc *assoc; int ind; ind = hashptr(key); assoc = hash_table[ind]; /* Is there an entry for that hash? */ if (assoc) { /* Simple case first: See if the first pointer matches. */ if (key != assoc->key) { /* Apparantly, a association with the same hash value has this * slot. We must see in the list if this perticular key has * been registered before. */ while (assoc->next) { assoc = assoc->next; if (key != assoc->key) { /* This wasn't the right key... */ continue; } /* We found an entry for this key. Make sure the value * is set as we want it. */ assoc->value = value; return; } /* There are no occurences of this key in the hash table. */ { ptr_assoc *new_assoc; new_assoc = new_ptr_assoc(key, value); assoc->next = new_assoc; new_assoc->previous = assoc; return; } } return; } else { /* The string isn't registered, and the slot is empty. */ hash_table[ind] = new_ptr_assoc(key, value); hash_table[ind]->array = &(hash_table[ind]); return; } } /** * Find the ptr_assoc with a given key. * * @param hash_table * Pointer to the hash table to search. * @param key * The key to lookup by in the association. * * @return * The ptr_assoc that is found, or null if none is found. */ static ptr_assoc *find_ptr_assoc(ptr_assoc **hash_table, void *key) { ptr_assoc *assoc; int ind; ind = hashptr(key); assoc = hash_table[ind]; /* Is there an entry for that hash? */ if (assoc) { /* Simple case first: Is the first key the right one? */ if (assoc->key == key) { return assoc; } else { /* Recurse through the linked list, if there's one. */ while (assoc->next) { assoc = assoc->next; if (assoc->key == key) { return assoc; } } /* No match. Fall through. */ } } return NULL; } /** * Find the value associated with a given key. * * @param hash_table * Pointer to the hash table to search. * @param key * The key to lookup by in the association. * * @return * The value associated with the key. */ void *find_assoc_value(ptr_assoc **hash_table, void *key) { ptr_assoc *assoc; assoc = find_ptr_assoc(hash_table, key); if (!assoc) return NULL; return assoc->value; } /** * Remove the association with a given key. * * @param hash_table * Pointer to the hash table to search. * @param key * The key to lookup by in the association. */ void free_ptr_assoc(ptr_assoc **hash_table, void *key) { ptr_assoc *assoc; assoc = find_ptr_assoc(hash_table, key); if (!assoc) return; if (assoc->array) { /* We must put a new value into the hash_table[]. */ if (assoc->next) { *(assoc->array) = assoc->next; assoc->next->previous = NULL; assoc->next->array = assoc->array; } else { *(assoc->array) = NULL; } free(assoc); } else { /* Relink and free this struct. */ if (assoc->next) assoc->next->previous = assoc->previous; assoc->previous->next = assoc->next; free(assoc); } } crossfire-1.70.0/plugins/common/include/0000755000014500000120000000000011732537047015167 500000000000000crossfire-1.70.0/plugins/common/include/Makefile.in0000644000014500000120000003054511732537022017154 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/common/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = \ plugin_common.h\ hashtable.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/common/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/common/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/common/include/Makefile.am0000644000014500000120000000006311731300517017127 00000000000000 noinst_HEADERS = \ plugin_common.h\ hashtable.h crossfire-1.70.0/plugins/common/include/plugin_common.h0000644000014500000120000003526211731300517020123 00000000000000/*****************************************************************************/ /* Crossfire Plugin Interface Common Parts */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef PLUGIN_COMMON_H #define PLUGIN_COMMON_H #ifdef WIN32 #define CF_PLUGIN __declspec(dllexport) #else #ifdef HAVE_VISIBILITY #define CF_PLUGIN __attribute__((visibility("default"))) #else #define CF_PLUGIN #endif #endif #include #define PLUGIN_ERROR_INT 0x0FFFFF extern int cf_init_plugin(f_plug_api getHooks); extern void cf_system_register_global_event(int event, const char *name, f_plug_event hook); extern void cf_system_unregister_global_event(int event, const char *name); /* General functions */ extern sstring cf_add_string(const char *str); extern void cf_free_string(sstring str); extern sstring cf_find_string(const char *str); extern char *cf_strdup_local(const char *str); extern char *cf_get_maps_directory(const char *name, char *buf, int size); extern int cf_find_animation(const char *txt); extern int cf_find_face(const char *name, int error); extern void cf_log(LogLevel logLevel, const char *format, ...); extern void cf_log_plain(LogLevel logLevel, const char *message); extern void cf_get_time(timeofday_t *tod); extern int cf_timer_create(object *ob, long delay, int mode); extern int cf_timer_destroy(int id); extern const char *cf_get_directory(int id); extern const char *cf_re_cmp(const char *str, const char *regexp); extern const char *cf_get_season_name(int index); extern const char *cf_get_month_name(int index); extern const char *cf_get_weekday_name(int index); extern const char *cf_get_periodofday_name(int index); extern void cf_cost_string_from_value(uint64 cost, int largest_coin, char *buffer, int length); /* Objects */ extern void cf_object_set_int_property(object *op, int propcode, int value); extern int cf_object_get_int_property(object *op, int propcode); extern long cf_object_get_long_property(object *op, long propcode); extern void cf_object_set_movetype_property(object *op, int propcode, MoveType value); extern MoveType cf_object_get_movetype_property(object *op, int propcode); extern object *cf_object_get_object_property(object *op, int propcode); extern void cf_object_set_object_property(object *op, int propcode, object *value); extern float cf_object_get_float_property(object *op, int propcode); extern void cf_object_set_float_property(object *op, int propcode, float value); extern mapstruct *cf_object_get_map_property(object *op, int propcode); extern archetype *cf_object_get_archetype_property(object *op, int propcode); extern partylist *cf_object_get_partylist_property(object *op, int propcode); extern sint64 cf_object_get_int64_property(object *op, int propcode); extern void cf_object_set_int64_property(object *op, int propcode, sint64 value); extern double cf_object_get_double_property(object *op, int propcode); extern sstring cf_object_get_sstring_property(object *op, int propcode); extern char *cf_object_get_string_property(object *op, int propcode, char *buf, int size); extern void cf_fix_object(object *op); extern char *cf_query_name(object *ob, char *name, int size); extern sstring cf_query_name_pl(object *ob); extern char *cf_query_base_name(object *ob, int plural, char *name, int size); extern const char *cf_object_get_msg(object *); extern void cf_object_set_weight(object *ob, int weight); extern int cf_object_get_weight(object *ob); extern void cf_object_set_weight_limit(object *ob, int weight); extern int cf_object_get_weight_limit(object *ob); extern int cf_object_set_nrof(object *, int nrof); extern int cf_object_get_nrof(object *); extern int cf_object_get_flag(object *ob, int flag); extern void cf_object_set_flag(object *ob, int flag, int value); extern object *cf_object_insert_in_ob(object *op, object *where); extern void cf_object_set_string_property(object *op, int propcode, const char *value); extern void cf_spring_trap(object *trap, object *victim); extern int cf_object_check_trigger(object *op, object *cause); extern int cf_object_query_money(const object *op); extern int cf_object_query_cost(const object *tmp, object *who, int flag); extern void cf_object_query_cost_string(const object *tmp, object *who, int flag, char *buffer, int length); extern int cf_object_cast_spell(object *op, object *caster, int dir, object *spell_ob, char *stringarg); extern void cf_object_learn_spell(object *op, object *spell, int special_prayer); extern void cf_object_forget_spell(object *op, object *sp); extern object *cf_object_check_for_spell(object *op, const char *name); extern int cf_object_cast_ability(object *caster, object *ctoo, int dir, object *sp, char *flags); extern int cf_object_pay_amount(object *pl, uint64 to_pay); extern int cf_object_pay_item(object *op, object *pl); extern void cf_object_set_long_property(object *op, int propcode, long value); extern int cf_object_transfer(object *op, int x, int y, int randomly, object *originator); extern int cf_object_move_to(object *op, int x, int y); extern int cf_object_out_of_map(object *op, int x, int y); extern void cf_object_drop(object *op, object *author); extern void cf_object_say(object *op, char *msg); extern object *cf_object_insert_object(object *op, object *container); extern object *cf_object_present_archname_inside(object *op, char *whatstr); extern int cf_object_apply(object *op, object *author, int flags); extern void cf_object_remove(object *op); extern void cf_object_free_drop_inventory(object *ob); extern object *cf_create_object(void); extern object *cf_create_object_by_name(const char *name); extern object *cf_object_change_map(object *op, mapstruct *m, object *originator, int flag, int x, int y); extern int cf_object_teleport(object *ob, mapstruct *map, int x, int y); extern void cf_object_update(object *op, int flags); extern void cf_object_pickup(object *op, object *what); extern const char *cf_object_get_key(object *op, const char *keyname); extern int cf_object_set_key(object *op, const char *keyname, const char *value, int add_key); extern sint16 cf_object_get_resistance(object *op, int rtype); extern void cf_object_set_resistance(object *op, int rtype, sint16 value); extern int cf_object_move(object *op, int dir, object*originator); extern void cf_object_apply_below(object *pl); extern object *cf_object_clone(object *op, int clonetype); extern void cf_object_change_exp(object *op, sint64 exp, const char *skill_name, int flag); extern int cf_object_change_abil(object *op, object *tmp); extern int cf_object_user_event(object *op, object *activator, object *third, const char *message, int fix); extern int cf_object_remove_depletion(object *op, int level); extern object *cf_object_find_by_arch_name(const object *who, const char *name); extern object *cf_object_find_by_name(const object *who, const char *name); extern object *cf_object_split(object *orig_ob, uint32 nr, char *err, size_t size); extern object *cf_object_clone(object *op, int clonetype); extern int cf_object_set_face(object *op, const char *face); extern int cf_object_set_animation(object *op, const char *animation); extern object *cf_identify(object *op); /* Maps */ /*extern void *cf_map_get_property(mapstruct *map, int propcode);*/ extern sstring cf_map_get_sstring_property(mapstruct *map, int propcode); extern mapstruct *cf_map_get_map_property(mapstruct *map, int propcode); extern region *cf_map_get_region_property(mapstruct *map, int propcode); extern int cf_map_get_int_property(mapstruct *map, int property); extern void cf_map_set_int_property(mapstruct *map, int propcode, int value); extern void cf_map_set_string_property(mapstruct *map, int propcode, const char *value); extern mapstruct *cf_map_get_map(const char *name, int flags); extern mapstruct *cf_get_empty_map(int sizex, int sizey); extern mapstruct *cf_map_get_first(void); extern mapstruct *cf_map_has_been_loaded(const char *name); extern void cf_map_message(mapstruct *m, const char *msg, int color); extern object *cf_map_get_object_at(mapstruct *m, int x, int y); extern object *cf_map_insert_object(mapstruct *where, object *op, int x, int y); extern object *cf_map_insert_object_around(mapstruct *where, object *op, int x, int y); extern object *cf_map_find_by_archetype_name(const char *str, mapstruct *map, int nx, int ny); extern int cf_map_get_flags(mapstruct *oldmap, mapstruct **newmap, sint16 x, sint16 y, sint16 *nx, sint16 *ny); extern object *cf_map_insert_object_there(object *op, mapstruct *m, object *originator, int flag); extern int cf_map_get_difficulty(mapstruct *map); extern int cf_map_get_reset_time(mapstruct *map); extern int cf_map_get_reset_timeout(mapstruct *map); extern int cf_map_get_players(mapstruct *map); extern int cf_map_get_darkness(mapstruct *map); extern int cf_map_get_light(mapstruct *map); extern int cf_map_get_width(mapstruct *map); extern int cf_map_get_height(mapstruct *map); extern int cf_map_get_enter_x(mapstruct *map); extern int cf_map_get_enter_y(mapstruct *map); extern int cf_map_change_light(mapstruct *m, int change); extern void cf_map_trigger_connected(objectlink *ol, object *cause, int state); /* Random maps */ extern int cf_random_map_set_variable(RMParms *rp, const char *buf); extern mapstruct *cf_random_map_generate(const char *OutFileName, RMParms *RP, char **use_layout); /* Players */ extern char *cf_player_get_title(object *op, char *title, int size); extern void cf_player_set_title(object *op, const char *title); extern sstring cf_player_get_ip(object *op); extern object *cf_player_get_marked_item(object *op); extern void cf_player_set_marked_item(object *op, object *ob); extern player *cf_player_find(const char *plname); extern void cf_player_message(object *op, char *txt, int flags); extern int cf_player_move(player *pl, int dir); extern partylist *cf_player_get_party(object *op); extern void cf_player_set_party(object *op, partylist *party); extern int cf_player_can_pay(object *op); extern int cf_player_knowledge_has(object *op, const char *knowledge); extern int cf_player_arrest(object *who); /* Archetypes */ extern archetype *cf_archetype_get_first(void); extern sstring cf_archetype_get_name(archetype *arch); extern archetype *cf_archetype_get_next(archetype *arch); extern archetype *cf_archetype_get_more(archetype *arch); extern archetype *cf_archetype_get_head(archetype *arch); extern object *cf_archetype_get_clone(archetype *arch); /* Parties */ extern partylist *cf_party_get_first(void); extern const char *cf_party_get_name(partylist *party); extern partylist *cf_party_get_next(partylist *party); extern const char *cf_party_get_password(partylist *party); extern player *cf_party_get_first_player(partylist *party); extern player *cf_party_get_next_player(partylist *party, player *op); /* Regions */ extern region *cf_region_get_first(void); extern const char *cf_region_get_name(region *reg); extern region *cf_region_get_next(region *reg); extern region *cf_region_get_parent(region *reg); extern const char *cf_region_get_longname(region *reg); extern const char *cf_region_get_message(region *reg); extern int cf_region_get_jail_x(region *reg); extern int cf_region_get_jail_y(region *reg); extern const char *cf_region_get_jail_path(region *reg); /* Friendly list */ extern object *cf_friendlylist_get_first(void); extern object *cf_friendlylist_get_next(object *ob); /* Quest-related functions */ extern int cf_quest_get_player_state(object *pl, sstring quest_code); extern void cf_quest_start(object *pl, sstring quest_code, int state); extern void cf_quest_set_player_state(object *pl, sstring quest_code, int state); extern int cf_quest_was_completed(object *pl, sstring quest_code); #ifdef WIN32 struct timezone { int tz_minuteswest; int tz_dsttime; }; int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info); #endif #endif /* PLUGIN_COMMON_H */ crossfire-1.70.0/plugins/common/include/hashtable.h0000644000014500000120000000132011731300517017174 00000000000000/* Usually we will store only about 10 or so elements, however we may get * cases of a fair bit more and we should handle those cases efficently. * hashptr() assumes this value will fit in int. */ #define PTR_ASSOC_TABLESIZE 251 typedef struct _ptr_assoc { struct _ptr_assoc **array; struct _ptr_assoc *previous; struct _ptr_assoc *next; void *key; void *value; } ptr_assoc; typedef ptr_assoc *ptr_assoc_table[PTR_ASSOC_TABLESIZE]; extern void init_ptr_assoc_table(ptr_assoc **hash_table); extern void add_ptr_assoc(ptr_assoc **hash_table, void *key, void *value); extern void *find_assoc_value(ptr_assoc **hash_table, void *key); extern void free_ptr_assoc(ptr_assoc **hash_table, void *key); crossfire-1.70.0/plugins/common/plugin_common.c0000644000014500000120000016002111731300517016463 00000000000000/*****************************************************************************/ /* Crossfire Plugin Interface Common Parts */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* The CPICP are the various functions of the server that can be used by all */ /* plugins. It is recommended that plugins do not call the server-provided */ /* functions directly, but instead use the wrappers provided here by the */ /* CPICP interface. By doing so, various validity checks can be performed */ /* by CPICP, protecting the server from potential nasty effects of passing */ /* it wrong parameter values. */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include static f_plug_api cfapiSystem_add_string = NULL; static f_plug_api cfapiSystem_find_string = NULL; static f_plug_api cfapiSystem_register_global_event = NULL; static f_plug_api cfapiSystem_remove_string = NULL; static f_plug_api cfapiSystem_unregister_global_event = NULL; static f_plug_api cfapiSystem_strdup_local = NULL; static f_plug_api cfapiSystem_find_animation = NULL; static f_plug_api cfapiSystem_find_face = NULL; static f_plug_api cfapiSystem_log = NULL; static f_plug_api cfapiSystem_get_time = NULL; static f_plug_api cfapiSystem_timer_create = NULL; static f_plug_api cfapiSystem_timer_destroy = NULL; static f_plug_api cfapiSystem_directory = NULL; static f_plug_api cfapiSystem_re_cmp = NULL; static f_plug_api cfapiObject_get_property = NULL; static f_plug_api cfapiObject_set_property = NULL; static f_plug_api cfapiObject_apply = NULL; static f_plug_api cfapiObject_identify = NULL; static f_plug_api cfapiObject_describe = NULL; static f_plug_api cfapiObject_drain = NULL; static f_plug_api cfapiObject_fix = NULL; static f_plug_api cfapiObject_give_skill = NULL; static f_plug_api cfapiObject_transmute = NULL; static f_plug_api cfapiObject_remove = NULL; static f_plug_api cfapiObject_delete = NULL; static f_plug_api cfapiObject_clone = NULL; static f_plug_api cfapiObject_create = NULL; static f_plug_api cfapiObject_insert = NULL; static f_plug_api cfapiObject_split = NULL; static f_plug_api cfapiObject_merge = NULL; static f_plug_api cfapiObject_distance = NULL; static f_plug_api cfapiObject_update = NULL; static f_plug_api cfapiObject_clear = NULL; static f_plug_api cfapiObject_reset = NULL; static f_plug_api cfapiObject_activate_rune = NULL; static f_plug_api cfapiObject_check_trigger = NULL; static f_plug_api cfapiObject_query_money = NULL; static f_plug_api cfapiObject_query_cost = NULL; static f_plug_api cfapiObject_query_cost_string = NULL; static f_plug_api cfapiObject_cast = NULL; static f_plug_api cfapiObject_learn_spell = NULL; static f_plug_api cfapiObject_forget_spell = NULL; static f_plug_api cfapiObject_check_spell = NULL; static f_plug_api cfapiObject_pay_amount = NULL; static f_plug_api cfapiObject_pay_item = NULL; static f_plug_api cfapiObject_transfer = NULL; static f_plug_api cfapiObject_find_archetype_inside = NULL; static f_plug_api cfapiObject_find_by_arch_name = NULL; static f_plug_api cfapiObject_find_by_name = NULL; static f_plug_api cfapiObject_out_of_map = NULL; static f_plug_api cfapiObject_drop = NULL; static f_plug_api cfapiObject_change_abil = NULL; static f_plug_api cfapiObject_say = NULL; static f_plug_api cfapiMap_get_property = NULL; static f_plug_api cfapiMap_set_property = NULL; static f_plug_api cfapiMap_get_map = NULL; static f_plug_api cfapiMap_message = NULL; static f_plug_api cfapiMap_get_object_at = NULL; static f_plug_api cfapiMap_find_by_archetype_name = NULL; static f_plug_api cfapiMap_create_path = NULL; static f_plug_api cfapiMap_has_been_loaded = NULL; static f_plug_api cfapiMap_change_light = NULL; static f_plug_api cfapiMap_trigger_connected = NULL; static f_plug_api cfapiPlayer_find = NULL; static f_plug_api cfapiPlayer_message = NULL; static f_plug_api cfapiObject_teleport = NULL; static f_plug_api cfapiObject_pickup = NULL; static f_plug_api cfapiObject_get_key = NULL; static f_plug_api cfapiObject_set_key = NULL; static f_plug_api cfapiObject_move = NULL; static f_plug_api cfapiObject_apply_below = NULL; static f_plug_api cfapiArchetype_get_property = NULL; static f_plug_api cfapiParty_get_property = NULL; static f_plug_api cfapiRegion_get_property = NULL; static f_plug_api cfapiPlayer_can_pay = NULL; static f_plug_api cfapiFriendlylist_get_next = NULL; static f_plug_api cfapiSet_random_map_variable = NULL; static f_plug_api cfapiGenerate_random_map = NULL; static f_plug_api cfapiObject_change_exp = NULL; static f_plug_api cfapiSystem_get_month_name = NULL; static f_plug_api cfapiSystem_get_season_name = NULL; static f_plug_api cfapiSystem_get_weekday_name = NULL; static f_plug_api cfapiSystem_get_periodofday_name = NULL; static f_plug_api cfapiObject_user_event = NULL; static f_plug_api cfapiCost_string_from_value = NULL; static f_plug_api cfapiPlayer_quest = NULL; static f_plug_api cfapiObject_remove_depletion = NULL; static f_plug_api cfapiPlayer_knowledge = NULL; #define GET_HOOK(x, y, z) { \ getHooks(&z, 1, y, &x); \ if (z != CFAPI_FUNC) { \ printf("unable to find hook %s!\n", y); \ return 0; \ } \ } int cf_init_plugin(f_plug_api getHooks) { int z; GET_HOOK(cfapiSystem_strdup_local, "cfapi_system_strdup_local", z); GET_HOOK(cfapiSystem_add_string, "cfapi_system_add_string", z); GET_HOOK(cfapiSystem_register_global_event, "cfapi_system_register_global_event", z); GET_HOOK(cfapiSystem_remove_string, "cfapi_system_remove_string", z); GET_HOOK(cfapiSystem_directory, "cfapi_system_directory", z); GET_HOOK(cfapiSystem_unregister_global_event, "cfapi_system_unregister_global_event", z); GET_HOOK(cfapiSystem_find_animation, "cfapi_system_find_animation", z); GET_HOOK(cfapiSystem_find_face, "cfapi_system_find_face", z); GET_HOOK(cfapiSystem_re_cmp, "cfapi_system_re_cmp", z); GET_HOOK(cfapiObject_get_property, "cfapi_object_get_property", z); GET_HOOK(cfapiObject_set_property, "cfapi_object_set_property", z); GET_HOOK(cfapiObject_apply, "cfapi_object_apply", z); GET_HOOK(cfapiObject_identify, "cfapi_object_identify", z); GET_HOOK(cfapiObject_describe, "cfapi_object_describe", z); GET_HOOK(cfapiObject_drain, "cfapi_object_drain", z); GET_HOOK(cfapiObject_fix, "cfapi_object_fix", z); GET_HOOK(cfapiObject_give_skill, "cfapi_object_give_skill", z); GET_HOOK(cfapiObject_transmute, "cfapi_object_transmute", z); GET_HOOK(cfapiObject_remove, "cfapi_object_remove", z); GET_HOOK(cfapiObject_delete, "cfapi_object_delete", z); GET_HOOK(cfapiObject_clone, "cfapi_object_clone", z); GET_HOOK(cfapiObject_create, "cfapi_object_create", z); GET_HOOK(cfapiObject_insert, "cfapi_object_insert", z); GET_HOOK(cfapiObject_split, "cfapi_object_split", z); GET_HOOK(cfapiObject_merge, "cfapi_object_merge", z); GET_HOOK(cfapiObject_distance, "cfapi_object_distance", z); GET_HOOK(cfapiObject_update, "cfapi_object_update", z); GET_HOOK(cfapiObject_clear, "cfapi_object_clear", z); GET_HOOK(cfapiObject_reset, "cfapi_object_reset", z); GET_HOOK(cfapiObject_activate_rune, "cfapi_object_spring_trap", z); GET_HOOK(cfapiObject_check_trigger, "cfapi_object_check_trigger", z); GET_HOOK(cfapiObject_query_money, "cfapi_object_query_money", z); GET_HOOK(cfapiObject_query_cost, "cfapi_object_query_cost", z); GET_HOOK(cfapiObject_query_cost_string, "cfapi_object_query_cost_string", z); GET_HOOK(cfapiObject_cast, "cfapi_object_cast", z); GET_HOOK(cfapiObject_learn_spell, "cfapi_object_learn_spell", z); GET_HOOK(cfapiObject_forget_spell, "cfapi_object_forget_spell", z); GET_HOOK(cfapiObject_check_spell, "cfapi_object_check_spell", z); GET_HOOK(cfapiObject_pay_amount, "cfapi_object_pay_amount", z); GET_HOOK(cfapiObject_pay_item, "cfapi_object_pay_item", z); GET_HOOK(cfapiObject_transfer, "cfapi_object_transfer", z); GET_HOOK(cfapiObject_find_archetype_inside, "cfapi_object_find_archetype_inside", z); GET_HOOK(cfapiObject_remove, "cfapi_object_remove", z); GET_HOOK(cfapiObject_delete, "cfapi_object_delete", z); GET_HOOK(cfapiObject_out_of_map, "cfapi_map_out_of_map", z); GET_HOOK(cfapiObject_drop, "cfapi_object_drop", z); GET_HOOK(cfapiObject_change_abil, "cfapi_object_change_abil", z); GET_HOOK(cfapiObject_say, "cfapi_object_say", z); GET_HOOK(cfapiMap_create_path, "cfapi_map_create_path", z); GET_HOOK(cfapiMap_get_property, "cfapi_map_get_property", z); GET_HOOK(cfapiMap_set_property, "cfapi_map_set_property", z); GET_HOOK(cfapiMap_get_map, "cfapi_map_get_map", z); GET_HOOK(cfapiMap_message, "cfapi_map_message", z); GET_HOOK(cfapiMap_get_object_at, "cfapi_map_get_object_at", z); GET_HOOK(cfapiMap_find_by_archetype_name, "cfapi_map_find_by_archetype_name", z); GET_HOOK(cfapiMap_change_light, "cfapi_map_change_light", z); GET_HOOK(cfapiMap_has_been_loaded, "cfapi_map_has_been_loaded", z); GET_HOOK(cfapiMap_trigger_connected, "cfapi_map_trigger_connected", z); GET_HOOK(cfapiPlayer_find, "cfapi_player_find", z); GET_HOOK(cfapiPlayer_message, "cfapi_player_message", z); GET_HOOK(cfapiObject_teleport, "cfapi_object_teleport", z); GET_HOOK(cfapiObject_pickup, "cfapi_object_pickup", z); GET_HOOK(cfapiObject_get_key, "cfapi_object_get_key", z); GET_HOOK(cfapiObject_set_key, "cfapi_object_set_key", z); GET_HOOK(cfapiObject_move, "cfapi_object_move", z); GET_HOOK(cfapiObject_apply_below, "cfapi_object_apply_below", z); GET_HOOK(cfapiArchetype_get_property, "cfapi_archetype_get_property", z); GET_HOOK(cfapiParty_get_property, "cfapi_party_get_property", z); GET_HOOK(cfapiRegion_get_property, "cfapi_region_get_property", z); GET_HOOK(cfapiPlayer_can_pay, "cfapi_player_can_pay", z); GET_HOOK(cfapiSystem_log, "cfapi_log", z); GET_HOOK(cfapiSystem_get_time, "cfapi_system_get_time", z); GET_HOOK(cfapiSystem_timer_create, "cfapi_system_timer_create", z); GET_HOOK(cfapiSystem_timer_destroy, "cfapi_system_timer_destroy", z); GET_HOOK(cfapiFriendlylist_get_next, "cfapi_friendlylist_get_next", z); GET_HOOK(cfapiSet_random_map_variable, "cfapi_set_random_map_variable", z); GET_HOOK(cfapiGenerate_random_map, "cfapi_generate_random_map", z); GET_HOOK(cfapiObject_change_exp, "cfapi_object_change_exp", z); GET_HOOK(cfapiSystem_get_season_name, "cfapi_system_get_season_name", z); GET_HOOK(cfapiSystem_get_month_name, "cfapi_system_get_month_name", z); GET_HOOK(cfapiSystem_get_weekday_name, "cfapi_system_get_weekday_name", z); GET_HOOK(cfapiSystem_get_periodofday_name, "cfapi_system_get_periodofday_name", z); GET_HOOK(cfapiObject_user_event, "cfapi_object_user_event", z); GET_HOOK(cfapiSystem_find_string, "cfapi_system_find_string", z); GET_HOOK(cfapiCost_string_from_value, "cfapi_cost_string_from_value", z); GET_HOOK(cfapiPlayer_quest, "cfapi_player_quest", z); GET_HOOK(cfapiObject_remove_depletion, "cfapi_object_remove_depletion", z); GET_HOOK(cfapiObject_find_by_arch_name, "cfapi_object_find_by_arch_name", z); GET_HOOK(cfapiObject_find_by_name, "cfapi_object_find_by_name", z); GET_HOOK(cfapiPlayer_knowledge, "cfapi_player_knowledge", z); return 1; } /* Should get replaced by tons of more explicit wrappers */ /*void *cf_map_get_property(mapstruct *map, int propcode) { int type; return cfapiMap_get_property(&type, propcode, map); }*/ int cf_map_get_int_property(mapstruct *map, int property) { int type, value; cfapiMap_get_property(&type, map, property, &value); assert(type == CFAPI_INT); return value; } int cf_object_user_event(object *op, object *activator, object *third, const char *message, int fix) { int type, value; cfapiObject_user_event(&type, op, activator, third, message, fix, &value); assert(type == CFAPI_INT); return value; } sstring cf_map_get_sstring_property(mapstruct *map, int propcode) { int type; sstring value; cfapiMap_get_property(&type, map, propcode, &value); assert(type == CFAPI_SSTRING); return value; } mapstruct *cf_map_get_map_property(mapstruct *map, int propcode) { int type; mapstruct *value; cfapiMap_get_property(&type, map, propcode, &value); assert(type == CFAPI_PMAP); return value; } region *cf_map_get_region_property(mapstruct *map, int propcode) { int type; region *value; cfapiMap_get_property(&type, map, propcode, &value); assert(type == CFAPI_PREGION); return value; } /* Should get replaced by tons of more explicit wrappers */ void cf_map_set_int_property(mapstruct *map, int propcode, int value) { int type; cfapiMap_set_property(&type, map, propcode, value); assert(type == CFAPI_INT); } void cf_map_set_string_property(mapstruct *map, int propcode, const char *value) { int type; cfapiMap_set_property(&type, map, propcode, value); assert(type == CFAPI_STRING); } /* Should get replaced by tons of more explicit wrappers */ sint16 cf_object_get_resistance(object *op, int rtype) { int type; sint16 resist; cfapiObject_get_property(&type, op, CFAPI_OBJECT_PROP_RESIST, rtype, &resist); assert(type == CFAPI_INT16); return resist; } void cf_object_set_resistance(object *op, int rtype, sint16 value) { int type; cfapiObject_set_property(&type, op, CFAPI_OBJECT_PROP_RESIST, rtype, value); assert(type == CFAPI_INT16); } /* Should get replaced by tons of more explicit wrappers */ void cf_object_set_int_property(object *op, int propcode, int value) { int type; cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_INT); } int cf_object_get_int_property(object *op, int propcode) { int type, value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_INT); return value; } long cf_object_get_long_property(object *op, long propcode) { int type; long value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_LONG); return value; } void cf_object_set_movetype_property(object *op, int propcode, MoveType value) { int type; cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_MOVETYPE); } MoveType cf_object_get_movetype_property(object *op, int propcode) { int type; MoveType value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_MOVETYPE); return value; } object *cf_object_get_object_property(object *op, int propcode) { int type; object *value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_POBJECT); return value; } mapstruct *cf_object_get_map_property(object *op, int propcode) { int type; mapstruct *value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_PMAP); return value; } sint64 cf_object_get_int64_property(object *op, int propcode) { int type; sint64 value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_SINT64); return value; } /* Should get replaced by tons of more explicit wrappers */ void cf_object_set_long_property(object *op, int propcode, long value) { int type; cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_LONG); } void cf_object_set_float_property(object *op, int propcode, float value) { int type; cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_FLOAT); } void cf_object_set_int64_property(object *op, int propcode, sint64 value) { int type; cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_SINT64); } float cf_object_get_float_property(object *op, int propcode) { int type; float value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_FLOAT); return value; } archetype *cf_object_get_archetype_property(object *op, int propcode) { int type; archetype *value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_PARCH); return value; } partylist *cf_object_get_partylist_property(object *op, int propcode) { int type; partylist *value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_PPARTY); return value; } double cf_object_get_double_property(object *op, int propcode) { int type; double value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_DOUBLE); return value; } sstring cf_object_get_sstring_property(object *op, int propcode) { int type; sstring value; cfapiObject_get_property(&type, op, propcode, &value); assert(type == CFAPI_SSTRING); return value; } char *cf_object_get_string_property(object *op, int propcode, char *buf, int size) { int type; cfapiObject_get_property(&type, op, propcode, buf, size); assert(type == CFAPI_STRING); return buf; } /* Should get replaced by tons of more explicit wrappers */ void cf_object_set_string_property(object *op, int propcode, const char *value) { int type; /* use cf_object_set_face() for changing the face! */ assert(propcode != CFAPI_OBJECT_PROP_FACE); /* use cf_object_set_animation() to change the animation */ assert(propcode != CFAPI_OBJECT_PROP_ANIMATION); cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_STRING); } /** * Set the object's face. * @param op who to change the face for. * @param face face to set. * @return 0 if invalid face, non zero is set. */ int cf_object_set_face(object *op, const char *face) { int type, ret; cfapiObject_set_property(&type, op, CFAPI_OBJECT_PROP_FACE, face, &ret); assert(type == CFAPI_INT); return ret; } /** * Set the object's animation. * @param op who to change the animation for. * @param animation animation's name to set. * @return 0 if invalid animation, non zero is set. */ int cf_object_set_animation(object *op, const char *animation) { int type, ret; cfapiObject_set_property(&type, op, CFAPI_OBJECT_PROP_ANIMATION, animation, &ret); assert(type == CFAPI_INT); return ret; } void cf_object_set_object_property(object *op, int propcode, object *value) { int type; cfapiObject_set_property(&type, op, propcode, value); assert(type == CFAPI_POBJECT); } /** * Wrapper for change_exp(). * @copydoc change_exp(). */ void cf_object_change_exp(object *op, sint64 exp, const char *skill_name, int flag) { int type; cfapiObject_change_exp(&type, op, exp, skill_name && strlen(skill_name) > 0 ? skill_name : NULL, flag); assert(type == CFAPI_NONE); } int cf_player_move(player *pl, int dir) { int type, ret; cfapiObject_move(&type, 1, pl, dir, &ret); assert(type == CFAPI_INT); return ret; } int cf_object_move(object *op, int dir, object*originator) { int type, ret; cfapiObject_move(&type, 0, op, dir, originator, &ret); assert(type == CFAPI_INT); return ret; } /** * Wrapper for apply_manual(). * @copydoc apply_manual() */ int cf_object_apply(object *op, object *tmp, int aflag) { int type, ret; cfapiObject_apply(&type, op, tmp, aflag, &ret); return ret; } /** * Wrapper for apply_by_living_below(). * @copydoc apply_by_living_below() */ void cf_object_apply_below(object *pl) { int type; cfapiObject_apply_below(&type, pl); } /** * Wrapper for object_remove(). * @copydoc object_remove() */ void cf_object_remove(object *op) { int type; cfapiObject_remove(&type, op); } /** * Wrapper for object_free_drop_inventory(). * @copydoc object_free_drop_inventory() */ void cf_object_free_drop_inventory(object *ob) { int type; cfapiObject_delete(&type, ob); } /** * Kinda wrapper for arch_present_in_ob(). */ object *cf_object_present_archname_inside(object *op, char *whatstr) { int type; object *value; cfapiObject_find_archetype_inside(&type, op, whatstr, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for object_find_by_arch_name(). * @copydoc object_find_by_arch_name() */ object *cf_object_find_by_arch_name(const object *who, const char *name) { int type; object *result; cfapiObject_find_by_arch_name(&type, who, name, &result); assert(type == CFAPI_POBJECT); return result; } /** * Wrapper for object_find_by_name(). * @copydoc object_find_by_name() */ object *cf_object_find_by_name(const object *who, const char *name) { int type; object *result; cfapiObject_find_by_name(&type, who, name, &result); assert(type == CFAPI_POBJECT); return result; } /** * Wrapper for transfer_ob(). * @copydoc transfer_ob() */ int cf_object_transfer(object *op, int x, int y, int randomly, object *originator) { int type, value; cfapiObject_transfer(&type, op, 0, x, y, randomly, originator, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for move_to(). * @copydoc move_to() */ int cf_object_move_to(object *op, int x, int y) { int type, value; cfapiObject_transfer(&type, op, 2, x, y, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for object_insert_in_map_at(). * @copydoc object_insert_in_map_at(). */ object *cf_object_change_map(object *op, mapstruct *m, object *originator, int flag, int x, int y) { int type; object *value; cfapiObject_transfer(&type, op, 1, m, originator, flag, x, y, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for GET_MAP_OB(). * @copydoc GET_MAP_OB() */ object *cf_map_get_object_at(mapstruct *m, int x, int y) { int type; object *value; cfapiMap_get_object_at(&type, m, x, y, &value); assert(type == CFAPI_POBJECT); return value; } /** * Partial wrapper for ext_info_map(). * @todo add missing parameters. */ void cf_map_message(mapstruct *m, const char *msg, int color) { int type; cfapiMap_message(&type, m, msg, color); } /** * Clone an object. * @param op * what to clone. * @param clonetype * - 0 means to clone through object_create_clone(). * - 1 means to clone through object_copy(). * @return * clone. */ object *cf_object_clone(object *op, int clonetype) { int type; object *value; cfapiObject_clone(&type, op, clonetype, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for object_split(). * @copydoc object_split(). */ object *cf_object_split(object *orig_ob, uint32 nr, char *err, size_t size) { int type; object *value; cfapiObject_split(&type, orig_ob, nr, err, size, &value); if (value == NULL) { assert(type == CFAPI_NONE); } else { assert(type == CFAPI_POBJECT); } return value; } /** * Wrapper for pay_for_item(). * @copydoc pay_for_item(). */ int cf_object_pay_item(object *op, object *pl) { int type, value; cfapiObject_pay_item(&type, op, pl, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for pay_for_amount(). * @copydoc pay_for_amount(). */ int cf_object_pay_amount(object *pl, uint64 to_pay) { int type, value; cfapiObject_pay_amount(&type, pl, to_pay, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for cast_spell(). * @copydoc cast_spell(). */ int cf_object_cast_spell(object *op, object *caster, int dir, object *spell_ob, char *stringarg) { int type, value; cfapiObject_cast(&type, op, caster, dir, spell_ob, stringarg, &value); assert(type == CFAPI_INT); return value; } /** * Should there be a difference nowadays between that and cast_spell ? * @todo * either totally remove or replace by cf_object_cast_spell(). */ int cf_object_cast_ability(object *caster, object *ctoo, int dir, object *sp, char *flags) { int type, value; cfapiObject_cast(&type, caster, ctoo, dir, sp, flags, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for do_learn_spell(). * @copydoc do_learn_spell(). */ void cf_object_learn_spell(object *op, object *spell, int special_prayer) { int type; cfapiObject_learn_spell(&type, op, spell, special_prayer); assert(type == CFAPI_NONE); } /** * Wrapper for do_forget_spell(), except takes an object, not a string. * @todo * make coherent with do_forget_spell() (string instead of ob). */ void cf_object_forget_spell(object *op, object *sp) { int type; cfapiObject_forget_spell(&type, op, sp); } /** * Wrapper for check_spell_known(). * @copydoc check_spell_known() */ object *cf_object_check_for_spell(object *op, const char *name) { int type; object *value; cfapiObject_check_spell(&type, op, name, &value); assert(type == CFAPI_POBJECT); return value; } void cf_player_message(object *op, char *txt, int flags) { int type; cfapiPlayer_message(&type, flags, 0, op, txt); assert(type == CFAPI_NONE); } /** * Wrapper for remove_depletion(). * @copydoc remove_depletion() */ int cf_object_remove_depletion(object *op, int level) { int type, result; cfapiObject_remove_depletion(&type, op, level, &result); assert(type == CFAPI_INT); return result; } /** * Wrapper for identify(). * @copydoc identify() * @param op * @return */ object *cf_identify(object *op) { int type; object *result; cfapiObject_identify(&type, op, &result); assert(type == CFAPI_POBJECT); return result; } /** * Wrapper for find_player_partial_name(). * @copydoc find_player_partial_name(). */ player *cf_player_find(const char *plname) { int type; player *value; cfapiPlayer_find(&type, plname, &value); assert(type == CFAPI_PPLAYER); return value; } char *cf_player_get_title(object *op, char *title, int size) { int type; cfapiObject_get_property(&type, op, CFAPI_PLAYER_PROP_TITLE, title, size); assert(type == CFAPI_STRING); return title; } void cf_player_set_title(object *op, const char *title) { int type; cfapiObject_set_property(&type, op, CFAPI_PLAYER_PROP_TITLE, title); } sstring cf_player_get_ip(object *op) { int type; sstring value; cfapiObject_get_property(&type, op, CFAPI_PLAYER_PROP_IP, &value); assert(type == CFAPI_SSTRING); return value; } object *cf_player_get_marked_item(object *op) { int type; object *value; cfapiObject_get_property(&type, op, CFAPI_PLAYER_PROP_MARKED_ITEM, &value); assert(type == CFAPI_POBJECT); return value; } void cf_player_set_marked_item(object *op, object *ob) { int type; cfapiObject_set_property(&type, op, CFAPI_PLAYER_PROP_MARKED_ITEM, ob); } partylist *cf_player_get_party(object *op) { return cf_object_get_partylist_property(op, CFAPI_PLAYER_PROP_PARTY); } void cf_player_set_party(object *op, partylist *party) { int type; cfapiObject_set_property(&type, op, CFAPI_PLAYER_PROP_PARTY, party); } /** * Wrapper for can_pay(). * @copydoc can_pay(). */ int cf_player_can_pay(object *pl) { int type, value; cfapiPlayer_can_pay(&type, pl, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for knowledge_player_has(). * @param op who to check knowledge for. * @param knowledge what to check for. * @return 0 if op is not a player or knowledge is not known, 1 else. */ int cf_player_knowledge_has(object *op, const char *knowledge) { int type, value; cfapiPlayer_knowledge(&type, 1, op, knowledge, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for player_arrest(). * @copydoc player_arrest() */ int cf_player_arrest(object *who) { int type, value; cfapiObject_move(&type, 2, who, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for ready_map_name(). * @copydoc ready_map_name() */ mapstruct *cf_map_get_map(const char *name, int flags) { int type; mapstruct *ret; cfapiMap_get_map(&type, 1, name, flags, &ret); assert(type == CFAPI_PMAP); return ret; } /** * Wrapper for get_empty_map(). * @copydoc get_empty_map(). */ mapstruct *cf_get_empty_map(int sizex, int sizey) { int type; mapstruct *ret; cfapiMap_get_map(&type, 0, sizex, sizey, &ret); assert(type == CFAPI_PMAP); return ret; } /** * Wrapper for has_been_loaded(). * @copydoc has_been_loaded() */ mapstruct *cf_map_has_been_loaded(const char *name) { int type; mapstruct *ret; cfapiMap_has_been_loaded(&type, name, &ret); assert(type == CFAPI_PMAP); return ret; } /** * Gives access to ::first_map. * @return * ::first_map. */ mapstruct *cf_map_get_first(void) { return cf_map_get_map_property(NULL, CFAPI_MAP_PROP_NEXT); } /** * Wrapper for query_money(). * @copydoc query_money(). */ int cf_object_query_money(const object *op) { int type, value; cfapiObject_query_money(&type, op, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for query_cost(). * @copydoc query_cost(). */ int cf_object_query_cost(const object *tmp, object *who, int flag) { int type, value; cfapiObject_query_cost(&type, tmp, who, flag, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for query_cost_string modifier to take a char* and length instead of StringBuffer. */ void cf_object_query_cost_string(const object *tmp, object *who, int flag, char *buffer, int length) { int type; cfapiObject_query_cost_string(&type, tmp, who, flag, buffer, length); assert(type == CFAPI_NONE); } /** * Wrapper for cost_string_from_value modified to take a char* and length instead of a StringBuffer. */ void cf_cost_string_from_value(uint64 cost, int largest_coin, char *buffer, int length) { int type; cfapiCost_string_from_value(&type, cost, largest_coin, buffer, length); assert(type == CFAPI_NONE); } /** * Wrapper for spring_trap(). * @copydoc spring_trap(). */ void cf_spring_trap(object *trap, object *victim) { int type; if (trap) cfapiObject_activate_rune(&type, trap, victim); } /** * Wrapper for check_trigger(). * @copydoc check_trigger(). */ int cf_object_check_trigger(object *op, object *cause) { int type, value; cfapiObject_check_trigger(&type, op, cause, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for trigger_connected(). * @copydoc trigger_connected(). */ void cf_map_trigger_connected(objectlink *ol, object *cause, int state) { int type; cfapiMap_trigger_connected(&type, ol, cause, state); assert(type == CFAPI_NONE); } int cf_object_out_of_map(object *op, int x, int y) { int type, value; cfapiObject_out_of_map(&type, op->map, x, y, &value); assert(type == CFAPI_INT); return value; } void cf_object_drop(object *op, object *author) { int type; cfapiObject_drop(&type, op, author); } void cf_object_say(object *op, char *msg) { int type, value; cfapiObject_say(&type, op, msg, &value); assert(type == CFAPI_INT); } object *cf_object_insert_object(object *op, object *container) { int type; object *value; cfapiObject_insert(&type, op, 3, container, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for create_pathname(). * @copydoc create_pathname() */ char *cf_get_maps_directory(const char *name, char *buf, int size) { int type; cfapiMap_create_path(&type, 0, name, buf, size); assert(type == CFAPI_STRING); return buf; } /** * Wrapper for object_new(). * @copydoc object_new(). */ object *cf_create_object(void) { int type; object *value; cfapiObject_create(&type, 0, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for create_archetype() and create_archetype_by_object_name(). */ object *cf_create_object_by_name(const char *name) { int type; object *value; cfapiObject_create(&type, 1, name, &value); assert(type == CFAPI_POBJECT); return value; } void cf_system_register_global_event(int event, const char *name, f_plug_event hook) { int type; cfapiSystem_register_global_event(&type, event, name, hook); assert(type == CFAPI_NONE); } void cf_system_unregister_global_event(int event, const char *name) { int type; cfapiSystem_unregister_global_event(&type, event, name); assert(type == CFAPI_NONE); } /** * Gets a directory Crossfire uses. * @param id * what directory to return: * -# @copydoc Settings::mapdir * -# @copydoc Settings::uniquedir * -# @copydoc Settings::tmpdir * -# @copydoc Settings::confdir * -# @copydoc Settings::localdir * -# @copydoc Settings::playerdir * -# @copydoc Settings::datadir * @return * directory. Must not be altered. NULL if invalid value. */ const char *cf_get_directory(int id) { int type; const char *ret; cfapiSystem_directory(&type, id, &ret); assert(type == CFAPI_STRING); return ret; } /** * Wrapper for re_cmp(). * @copydoc re_cmp() */ const char *cf_re_cmp(const char *str, const char *regexp) { int type; const char *result; cfapiSystem_re_cmp(&type, str, regexp, &result); assert(type == CFAPI_STRING); return result; } /** * Wrapper for fix_object(). * @copydoc fix_object() */ void cf_fix_object(object *op) { int type; if (op) cfapiObject_fix(&type, op); } /** * Wrapper for add_string(). * @copydoc add_string() */ sstring cf_add_string(const char *str) { int type; sstring ret; if (!str) return NULL; cfapiSystem_add_string(&type, str, &ret); assert(type == CFAPI_SSTRING); return ret; } /** * Wrapper for free_string(). * @copydoc free_string() */ void cf_free_string(sstring str) { int type; if (str) cfapiSystem_remove_string(&type, str); } sstring cf_find_string(const char *str) { int type; sstring ret; if (!str) return NULL; cfapiSystem_find_string(&type, str, &ret); assert(type == CFAPI_SSTRING); return ret; } char *cf_query_name(object *ob, char *name, int size) { int type; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_NAME, name, size); assert(type == CFAPI_STRING); return name; } sstring cf_query_name_pl(object *ob) { int type; sstring value; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_NAME_PLURAL, &value); assert(type == CFAPI_SSTRING); return value; } char *cf_query_base_name(object *ob, int plural, char *name, int size) { int type; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_BASE_NAME, name, size); assert(type == CFAPI_STRING); return name; } sstring cf_object_get_msg(object *ob) { int type; sstring value; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_MESSAGE, &value); assert(type == CFAPI_SSTRING); return value; } void cf_object_set_weight(object *ob, int weight) { int type; cfapiObject_set_property(&type, ob, CFAPI_OBJECT_PROP_WEIGHT, weight); assert(type == CFAPI_INT); } void cf_object_set_weight_limit(object *ob, int weight_limit) { int type; cfapiObject_set_property(&type, ob, CFAPI_OBJECT_PROP_WEIGHT_LIMIT, weight_limit); assert(type == CFAPI_INT); } int cf_object_get_weight(object *ob) { int type, weight; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_WEIGHT, &weight); assert(type == CFAPI_INT); return weight; } int cf_object_get_weight_limit(object *ob) { int type, limit; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_WEIGHT_LIMIT, &limit); assert(type == CFAPI_INT); return limit; } /** * @return -1=nrof is invalid, 0=nrof is ok# */ int cf_object_set_nrof(object *ob, int nrof) { int type; if (nrof < 0) return -1; cfapiObject_set_property(&type, ob, CFAPI_OBJECT_PROP_NROF, nrof); return 0; } int cf_object_get_nrof(object *ob) { int type, nrof; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_NROF, &nrof); return nrof; } int cf_object_get_flag(object *ob, int flag) { int type; int rv; cfapiObject_get_property(&type, ob, CFAPI_OBJECT_PROP_FLAGS, flag, &rv); if (rv != 0) return 1; else return 0; } void cf_object_set_flag(object *ob, int flag, int value) { int type; cfapiObject_set_property(&type, ob, CFAPI_OBJECT_PROP_FLAGS, flag, value ? 1 : 0); } /** * Wrapper for object_insert_in_ob(). * @copydoc object_insert_in_ob(). */ object *cf_object_insert_in_ob(object *op, object *where) { int type; object *value; if (!cf_object_get_flag(op, FLAG_REMOVED)) { cfapiObject_remove(&type, op); } cfapiObject_insert(&type, op, 3, where, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for object_insert_in_map(). * @copydoc object_insert_in_map(). */ object *cf_map_insert_object_there(object *op, mapstruct *m, object *originator, int flag) { int type; object *value; cfapiObject_insert(&type, op, 1, m, originator, flag, &value); assert(type == CFAPI_POBJECT); return value; } /** * Wrapper for object_insert_in_map_at(). * @todo * merge/replace with cf_object_change_map */ object *cf_map_insert_object(mapstruct *where, object *op, int x, int y) { int type; object *value; cfapiObject_insert(&type, op, 0, where, NULL, 0 , x, y, &value); assert(type == CFAPI_POBJECT); return value; } /** * Will insert op in the map where around the spot x, y. * Combination of object_find_free_spot and object_insert_in_map_at. * @param where * map to insert into. * @param op * what to insert. * @param x * @param y * where to insert op. * @return * NULL if op couldn't be inserted around the spot, else op or an object it merged with. */ object *cf_map_insert_object_around(mapstruct *where, object *op, int x, int y) { int type; object *value; cfapiObject_insert(&type, op, 2, where, NULL, 0 , x, y, &value); assert(type == CFAPI_POBJECT); return value; } int cf_object_teleport(object *op, mapstruct *map, int x, int y) { int type, value; cfapiObject_teleport(&type, op, map, x, y, &value); assert(type == CFAPI_INT); return value; } /** * Kinda wrapper for map_find_by_archetype_name(). */ object *cf_map_find_by_archetype_name(const char *str, mapstruct *map, int nx, int ny) { int type; object *value; cfapiMap_find_by_archetype_name(&type, str, map, nx, ny, &value); assert(type == CFAPI_POBJECT); return value; } int cf_map_get_difficulty(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_DIFFICULTY); } int cf_map_get_reset_time(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_RESET_TIME); } int cf_map_get_reset_timeout(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_RESET_TIMEOUT); } int cf_map_get_players(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_PLAYERS); } int cf_map_get_darkness(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_DARKNESS); } int cf_map_get_width(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_WIDTH); } int cf_map_get_height(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_HEIGHT); } int cf_map_get_enter_x(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_ENTER_X); } int cf_map_get_enter_y(mapstruct *map) { return cf_map_get_int_property(map, CFAPI_MAP_PROP_ENTER_Y); } /** * Wrapper for change_map_light(). * @copydoc change_map_light(). */ int cf_map_change_light(mapstruct *m, int change) { int type, value; cfapiMap_change_light(&type, m, change, &value); assert(type == CFAPI_INT); return value; } void cf_object_update(object *op, int flags) { int type; cfapiObject_update(&type, op, flags); } void cf_object_pickup(object *op, object *what) { int type; cfapiObject_pickup(&type, op, what); assert(type == CFAPI_NONE); } /** * Wrapper for strdup_local(). * * @copydoc strdup_local(). */ char *cf_strdup_local(const char *str) { int type; char *dup; if (str == NULL) return NULL; cfapiSystem_strdup_local(&type, str, &dup); assert(type == CFAPI_STRING); return dup; } /** * Wrapper for get_map_flags(). * @copydoc get_map_flags() */ int cf_map_get_flags(mapstruct *oldmap, mapstruct **newmap, sint16 x, sint16 y, sint16 *nx, sint16 *ny) { int type, value; cfapiMap_get_property(&type, oldmap, CFAPI_MAP_PROP_FLAGS, newmap, x, y, nx, ny, &value); assert(type == CFAPI_INT); return value; } /** * Wrapper for set_random_map_variable(). * @copydoc set_random_map_variable() */ int cf_random_map_set_variable(RMParms *rp, const char *buf) { int type, ret; cfapiSet_random_map_variable(&type, rp, buf, &ret); assert(type == CFAPI_INT); return ret; } /** * Wrapper for generate_random_map(). * @copydoc generate_random_map() */ mapstruct *cf_random_map_generate(const char *OutFileName, RMParms *RP, char **use_layout) { int type; mapstruct *map; cfapiGenerate_random_map(&type, OutFileName, RP, use_layout, &map); assert(type == CFAPI_PMAP); return map; } /** * Wrapper for find_animation(). * @copydoc find_animation(). */ int cf_find_animation(const char *name) { int type, anim; cfapiSystem_find_animation(&type, name, &anim); assert(type == CFAPI_INT); return anim; } /** * Wrapper for find_face(). * @copydoc find_face(). */ int cf_find_face(const char *name, int error) { int type, anim; cfapiSystem_find_face(&type, name, error, &anim); assert(type == CFAPI_INT); return anim; } /** * Wrapper for LOG(). * @copydoc LOG(). */ void cf_log(LogLevel logLevel, const char *format, ...) { int type; /* Copied from common/logger.c */ char buf[20480]; /* This needs to be really really big - larger than any other buffer, since that buffer may need to be put in this one. */ va_list ap; va_start(ap, format); buf[0] = '\0'; vsprintf(buf, format, ap); va_end(ap); cfapiSystem_log(&type, logLevel, buf); assert(type == CFAPI_NONE); } /** * Wrapper for LOG() that * uses directly a buffer, without format */ void cf_log_plain(LogLevel logLevel, const char *message) { int type; cfapiSystem_log(&type, logLevel, message); assert(type == CFAPI_NONE); } void cf_get_time(timeofday_t *tod) { int type; cfapiSystem_get_time(&type, tod); assert(type == CFAPI_NONE); } const char *cf_get_season_name(int index) { int type; char *result; cfapiSystem_get_season_name(&type, index, &result); assert(type == CFAPI_STRING); return result; } const char *cf_get_month_name(int index) { int type; char *result; cfapiSystem_get_month_name(&type, index, &result); assert(type == CFAPI_STRING); return result; } const char *cf_get_weekday_name(int index) { int type; char *result; cfapiSystem_get_weekday_name(&type, index, &result); assert(type == CFAPI_STRING); return result; } const char *cf_get_periodofday_name(int index) { int type; char *result; cfapiSystem_get_periodofday_name(&type, index, &result); assert(type == CFAPI_STRING); return result; } /** * Creates a timer, equivalent of calling cftimer_create(). * * @param ob * ::object that will get called. Should handle ::EVENT_TIMER. * @param delay * delay, seconds or ticks. * @param mode * timer mode, ::TIMER_MODE_SECONDS or ::TIMER_MODE_CYCLES * @return * timer identifier, or one of ::TIMER_ERR_ID, ::TIMER_ERR_OBJ or ::TIMER_ERR_MODE */ int cf_timer_create(object *ob, long delay, int mode) { int type, timer; cfapiSystem_timer_create(&type, ob, delay, mode, &timer); assert(type == CFAPI_INT); return timer; } /** * Destroys specified timer, equivalent of calling cftimer_destroy(). * * @param id * timer to destroy * @return * ::TIMER_ERR_ID if invalid id, ::TIMER_ERR_NONE else. */ int cf_timer_destroy(int id) { int type, code; cfapiSystem_timer_destroy(&type, id, &code); assert(type == CFAPI_INT); return code; } /** * Gets value for specified key, equivalent of object_get_value(). * @param op * ::object for which we search a key. * @param keyname * key to look for. Not required to be a shared string. * @return * value (shared string), or NULL if not found. */ const char *cf_object_get_key(object *op, const char *keyname) { int type; const char *value; cfapiObject_get_key(&type, op, keyname, &value); assert(type == CFAPI_SSTRING); return value; } /** * Sets a value for specified key, equivalent to object_set_value(). * @param op * ::object which will contain the key/value * @param keyname * key * @param value * value * @param add_key * if 0, key is only updated if it exists, else it's updated or added. * @return * TRUE or FALSE. */ int cf_object_set_key(object *op, const char *keyname, const char *value, int add_key) { int type, ret; cfapiObject_set_key(&type, op, keyname, value, add_key, &ret); assert(type == CFAPI_INT); return ret; } /** * Wrapper for change_abil(). * @copydoc change_abil(). */ int cf_object_change_abil(object *op, object *tmp) { int type, ret; cfapiObject_change_abil(&type, op, tmp, &ret); assert(type == CFAPI_INT); return ret; } /* Archetype-related functions */ /** * Get first archetype. * @return * first archetype in the archetype list. */ archetype *cf_archetype_get_first(void) { int type; archetype *value; cfapiArchetype_get_property(&type, NULL, CFAPI_ARCH_PROP_NEXT, &value); assert(type == CFAPI_PARCH); return value; } /** * Get archetype's name. * @param arch * archetype, mustn't be NULL. * @return * archetype's name. */ sstring cf_archetype_get_name(archetype *arch) { int type; sstring name; cfapiArchetype_get_property(&type, arch, CFAPI_ARCH_PROP_NAME, &name); assert(type == CFAPI_SSTRING); return name; } /** * Get next archetype in linked list. * @param arch * archetype for which we want the next. Can be NULL, in which case it is equivalent * to calling cf_archetype_get_first(). * @return * next archetype. */ archetype *cf_archetype_get_next(archetype *arch) { int type; archetype *value; cfapiArchetype_get_property(&type, arch, CFAPI_ARCH_PROP_NEXT, &value); assert(type == CFAPI_PARCH); return value; } /** * Get next part of archetype. * @param arch * archetype, mustn't be NULL. * @return * archetype's more field. */ archetype *cf_archetype_get_more(archetype *arch) { int type; archetype *value; cfapiArchetype_get_property(&type, arch, CFAPI_ARCH_PROP_MORE, &value); assert(type == CFAPI_PARCH); return value; } /** * Get head of archetype. * @param arch * archetype, mustn't be NULL. * @return * archetype's head field. */ archetype *cf_archetype_get_head(archetype *arch) { int type; archetype *value; cfapiArchetype_get_property(&type, arch, CFAPI_ARCH_PROP_HEAD, &value); assert(type == CFAPI_PARCH); return value; } /** * Get clone of archetype. * @param arch * archetype, mustn't be NULL. * @return * archetype's clone. Will never be NULL. */ object *cf_archetype_get_clone(archetype *arch) { int type; object *value; cfapiArchetype_get_property(&type, arch, CFAPI_ARCH_PROP_CLONE, &value); assert(type == CFAPI_POBJECT); return value; } /* Party-related functions */ /** * Get first party. * @return * first party in partylist. */ partylist *cf_party_get_first(void) { int type; partylist *value; cfapiParty_get_property(&type, NULL, CFAPI_PARTY_PROP_NEXT, &value); assert(type == CFAPI_PPARTY); return value; } /** * @param party * party, mustn't be NULL. * @return * party's name. */ const char *cf_party_get_name(partylist *party) { int type; sstring value; cfapiParty_get_property(&type, party, CFAPI_PARTY_PROP_NAME, &value); assert(type == CFAPI_SSTRING); return value; } /** * Get next party in party list. * @param party * party, can be NULL in which case behaves like cf_party_get_first(). * @return * party's next field. */ partylist *cf_party_get_next(partylist *party) { int type; partylist *value; cfapiParty_get_property(&type, party, CFAPI_PARTY_PROP_NEXT, &value); assert(type == CFAPI_PPARTY); return value; } /** * Get party's password. * @param party * party, mustn't be NULL. * @return * party's password field. */ const char *cf_party_get_password(partylist *party) { int type; sstring value; cfapiParty_get_property(&type, party, CFAPI_PARTY_PROP_PASSWORD, &value); assert(type == CFAPI_SSTRING); return value; } /** * Get first player in party. * @param party * party, mustn't be NULL. * @return * party's first player. */ player *cf_party_get_first_player(partylist *party) { int type; player *value; cfapiParty_get_property(&type, party, CFAPI_PARTY_PROP_PLAYER, NULL, &value); assert(type == CFAPI_PPLAYER); return value; } /** * Get next player in party. * @param party * party, mustn't be NULL. * @param op * player we want the next of. Can be NULL, in this case behaves like cf_party_get_first_player(). * @return * party's name. */ player *cf_party_get_next_player(partylist *party, player *op) { int type; player *value; cfapiParty_get_property(&type, party, CFAPI_PARTY_PROP_PLAYER, op, &value); assert(type == CFAPI_PPLAYER); return value; } /** * Get first region in region list. * @return * first region. */ region *cf_region_get_first(void) { int type; region *value; cfapiRegion_get_property(&type, NULL, CFAPI_REGION_PROP_NEXT, &value); assert(type == CFAPI_PREGION); return value; } /** * Get name of region. * @param reg * region. Mustn't be NULL. * @return * region's name. */ const char *cf_region_get_name(region *reg) { int type; sstring value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_NAME, &value); assert(type == CFAPI_SSTRING); return value; } /** * Get next region in region list. * @param reg * region. Can be NULL in which case equivalent of cf_region_get_first(). * @return * next region. */ region *cf_region_get_next(region *reg) { int type; region *value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_NEXT, &value); assert(type == CFAPI_PREGION); return value; } /** * Get parent of region. * @param reg * region. Mustn't be NULL. * @return * region's parent. */ region *cf_region_get_parent(region *reg) { int type; region *value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_PARENT, &value); assert(type == CFAPI_PREGION); return value; } /** * Get longname of region. * @param reg * region. Mustn't be NULL. * @return * region's longname. */ const char *cf_region_get_longname(region *reg) { int type; sstring value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_LONGNAME, &value); assert(type == CFAPI_SSTRING); return value; } /** * Get message of region. * @param reg * region. Mustn't be NULL. * @return * region's message. */ const char *cf_region_get_message(region *reg) { int type; sstring value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_MESSAGE, &value); assert(type == CFAPI_SSTRING); return value; } /** * Get region's jail x coordinate. * @param reg * region. Mustn't be NULL. * @return * region's x coordinate for jail. */ int cf_region_get_jail_x(region *reg) { int type, value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_JAIL_X, &value); assert(type == CFAPI_INT); return value; } /** * Get region's jail y coordinate. * @param reg * region. Mustn't be NULL. * @return * region's y coordinate for jail. */ int cf_region_get_jail_y(region *reg) { int type, value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_JAIL_Y, &value); assert(type == CFAPI_INT); return value; } /** * Get jail path of region. * @param reg * region. Mustn't be NULL. * @return * region's jail path, can be NULL. */ const char *cf_region_get_jail_path(region *reg) { int type; sstring value; cfapiRegion_get_property(&type, reg, CFAPI_REGION_PROP_JAIL_PATH, &value); assert(type == CFAPI_SSTRING); return value; } /* Friendlylist functions. */ /** * Get first object on friendly list. * @return * first object on friendly list. */ object *cf_friendlylist_get_first(void) { int type; object *value; cfapiFriendlylist_get_next(&type, NULL, &value); assert(type == CFAPI_POBJECT); return value; } /** * Get next object on friendly list. * @param ob * object we want the next of. If NULL then equivalent of cf_friendlylist_get_first(). * @return * next object. */ object *cf_friendlylist_get_next(object *ob) { int type; object *value; cfapiFriendlylist_get_next(&type, ob, &value); assert(type == CFAPI_POBJECT); return value; } /* Quest-related functions */ /** * Wrapper for quest_get_player_state(). * @copydoc quest_get_player_state() */ int cf_quest_get_player_state(object *pl, sstring quest_code) { int type, ret; cfapiPlayer_quest(&type, CFAPI_PLAYER_QUEST_GET_STATE, pl, quest_code, &ret); assert(type == CFAPI_INT); return ret; } /** * Wrapper for quest_start(). * @copydoc quest_start() */ void cf_quest_start(object *pl, sstring quest_code, int state) { int type; cfapiPlayer_quest(&type, CFAPI_PLAYER_QUEST_START, pl, quest_code, state); assert(type == CFAPI_NONE); } /** * Wrapper for quest_set_player_state(); * @copydoc quest_set_player_state() */ void cf_quest_set_player_state(object *pl, sstring quest_code, int state) { int type; cfapiPlayer_quest(&type, CFAPI_PLAYER_QUEST_SET_STATE, pl, quest_code, state); assert(type == CFAPI_NONE); } /** * Wrapper for quest_was_completed(). * @copydoc quest_was_completed() */ int cf_quest_was_completed(object *pl, sstring quest_code) { int type, ret; cfapiPlayer_quest(&type, CFAPI_PLAYER_QUEST_WAS_COMPLETED, pl, quest_code, &ret); assert(type == CFAPI_INT); return ret; } #ifdef WIN32 int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info) { /* Get the time, if they want it */ if (time_Info != NULL) { time_Info->tv_sec = time(NULL); time_Info->tv_usec = timeGetTime()*1000; } /* Get the timezone, if they want it */ if (timezone_Info != NULL) { _tzset(); timezone_Info->tz_minuteswest = _timezone; timezone_Info->tz_dsttime = _daylight; } /* And return */ return 0; } #endif crossfire-1.70.0/plugins/cfanim/0000755000014500000120000000000011732537046013510 500000000000000crossfire-1.70.0/plugins/cfanim/include/0000755000014500000120000000000011732537046015133 500000000000000crossfire-1.70.0/plugins/cfanim/include/cfanim.h0000644000014500000120000001101011731300520016432 00000000000000/*****************************************************************************/ /* Crossfire Animator v2.0a */ /* Contacts: yann.chachkoff@myrealbox.com, tchize@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* */ /* (C) 2001 David Delbecq for the original code version. */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef PLUGIN_ANIM_H #define PLUGIN_ANIM_H #define PLUGIN_NAME "Animator" #define PLUGIN_VERSION "CFAnim Plugin 2.0" #ifndef __CEXTRACT__ #include #include #endif #include /** Time units the animation can use. @todo add owner's speed unit */ enum time_enum { time_second, /**< One second. */ time_tick /**< One server tick. */ }; /** Result of one animation move. */ typedef enum anim_move_result { mr_finished, /**< Move completed. */ mr_again /**< Move should continue next time. */ } anim_move_result; struct CFanimation_struct; struct CFmovement_struct; typedef anim_move_result (*CFAnimRunFunc)(struct CFanimation_struct *animation, long int id, void *parameters); typedef long int (*CFAnimInitFunc)(const char *name, char *parameters, struct CFmovement_struct *); /** One move in an animation. */ typedef struct CFmovement_struct { struct CFanimation_struct *parent; /**< Animation this move is linked to. */ CFAnimRunFunc func; /**< Function to run for this move. */ void *parameters; /**< Parameters to the function. */ long int id; /**< Identifier, used for various things. */ int tick; /**< Move duration, units depending on parent's time_representation. */ struct CFmovement_struct *next; /**< Next move in the animation. */ } CFmovement; /** One full animation. */ typedef struct CFanimation_struct { char *name; object *victim; object *event; int paralyze; int invisible; int wizard; int unique; int verbose; int ghosted; int errors_allowed; int delete_end; object *corpse; long int tick_left; enum time_enum time_representation; struct CFmovement_struct *nextmovement; struct CFanimation_struct *nextanimation; } CFanimation; /** Available animation move. */ typedef struct { const char *name; /**< Name as it appears in the animation file. */ CFAnimInitFunc funcinit; /**< Function to process the parameters of the move. */ CFAnimRunFunc funcrun; /**< Function to run the move. */ } CFanimationHook; extern CFanimationHook animationbox[]; extern int animationcount; #ifndef __CEXTRACT__ #include #endif #endif /* PLUGIN_ANIM_H */ crossfire-1.70.0/plugins/cfanim/include/Makefile.am0000644000014500000120000000005311731300520017065 00000000000000 noinst_HEADERS = cfanim.h cfanim_proto.h crossfire-1.70.0/plugins/cfanim/include/cfanim_proto.h0000644000014500000120000000060411731300520017664 00000000000000/* cfanim.c */ CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr); CF_PLUGIN void *getPluginProperty(int *type, ...); CF_PLUGIN anim_move_result cfanim_runPluginCommand(object *op, char *params); CF_PLUGIN int postInitPlugin(void); CF_PLUGIN int cfanim_globalEventListener(int *type, ...); CF_PLUGIN int eventListener(int *type, ...); CF_PLUGIN int closePlugin(void); crossfire-1.70.0/plugins/cfanim/include/Makefile.in0000644000014500000120000003053411732537022017117 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfanim/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = cfanim.h cfanim_proto.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfanim/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfanim/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfanim/Makefile.in0000644000014500000120000006262211732537022015477 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfanim DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) cfanim_la_DEPENDENCIES = am_cfanim_la_OBJECTS = cfanim.lo plugin_common.lo cfanim_la_OBJECTS = $(am_cfanim_la_OBJECTS) cfanim_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(cfanim_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(cfanim_la_SOURCES) DIST_SOURCES = $(cfanim_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(pkglibdir)/plugins plugin_LTLIBRARIES = cfanim.la cfanim_la_SOURCES = cfanim.c\ ../common/plugin_common.c cfanim_la_CPSOURCES = cfanim.c SUBDIRS = include cfanim_la_LIBADD = cfanim_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfanim/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfanim/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done cfanim.la: $(cfanim_la_OBJECTS) $(cfanim_la_DEPENDENCIES) $(EXTRA_cfanim_la_DEPENDENCIES) $(cfanim_la_LINK) -rpath $(plugindir) $(cfanim_la_OBJECTS) $(cfanim_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfanim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< plugin_common.lo: ../common/plugin_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT plugin_common.lo -MD -MP -MF $(DEPDIR)/plugin_common.Tpo -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/plugin_common.Tpo $(DEPDIR)/plugin_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/plugin_common.c' object='plugin_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-pluginLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pluginLTLIBRARIES proto: cproto -D__CEXTRACT__ -o include/cfanim_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cfanim_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfanim_proto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfanim/Makefile.am0000644000014500000120000000300411731300520015441 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net plugindir=$(pkglibdir)/plugins plugin_LTLIBRARIES = cfanim.la cfanim_la_SOURCES = cfanim.c\ ../common/plugin_common.c cfanim_la_CPSOURCES = cfanim.c SUBDIRS=include cfanim_la_LIBADD = cfanim_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include proto: cproto -D__CEXTRACT__ -o include/cfanim_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cfanim_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfanim_proto.h crossfire-1.70.0/plugins/cfanim/cfanim.c0000644000014500000120000011624211731300520015017 00000000000000/*****************************************************************************/ /* Crossfire Animator v2.0a */ /* Contacts: yann.chachkoff@myrealbox.com, tchize@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* */ /* (C) 2001 David Delbecq for the original code version. */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /* First let's include the header file needed */ #include #include #include #include CF_PLUGIN char SvnRevPlugin[] = SVN_REV; static CFanimation *first_animation = NULL; /**< Animations we're currently processing. */ static int get_boolean(const char *strg, int *bl); /** * Returns the direction from its name. * @param name direction's name * @return direction or -1 if unknown. */ static int get_dir_from_name(const char *name) { if (!strcmp(name, "north")) return 1; if (!strcmp(name, "north_east")) return 2; if (!strcmp(name, "east")) return 3; if (!strcmp(name, "south_east")) return 4; if (!strcmp(name, "south")) return 5; if (!strcmp(name, "south_west")) return 6; if (!strcmp(name, "west")) return 7; if (!strcmp(name, "north_west")) return 8; return -1; } static long int initmovement(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int dir; dir = get_dir_from_name(name); move_entity->parameters = NULL; return dir; } static anim_move_result runmovement(struct CFanimation_struct *animation, long int id, void *parameters) { object *op = animation->victim; int dir = id; if (animation->verbose) cf_log(llevDebug, "CFAnim: Moving in direction %ld\n", id); if (op->type == PLAYER) cf_player_move(op->contr, dir); else cf_object_move(op, dir, op); return mr_finished; } static long int initfire(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int dir; dir = get_dir_from_name(&(name[5])); move_entity->parameters = NULL; return dir; } /** @todo fix */ static anim_move_result runfire(struct CFanimation_struct *animation, long int id, void *parameters) { if (animation->verbose) cf_log(llevDebug, "CFAnim: Firing in direction %ld\n", id); return mr_finished; } static long int initturn(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int dir; dir = get_dir_from_name(&(name[5])); move_entity->parameters = NULL; return dir; } static anim_move_result runturn(struct CFanimation_struct *animation, long int id, void *parameters) { object *op = animation->victim; int dir = id; /*int face;*/ if (animation->verbose) cf_log(llevDebug, "CFAnim: Turning in direction %ld\n", id); op->facing = dir; /** @todo fix suspicious or missing call */ /* cf_object_set_int_property(op, CFAPI_OBJECT_PROP_ANIMATION, face);*/ return mr_finished; } static long int initcamera(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int dir; dir = get_dir_from_name(&(name[7])); move_entity->parameters = NULL; return dir; } /** @todo fix */ static anim_move_result runcamera(struct CFanimation_struct *animation, long int id, void *parameters) { if (animation->verbose) cf_log(llevDebug, "CFAnim: Moving the camera in direction %ld\n", id); return mr_finished; /*if (animation->victim->type == PLAYER) hook_scroll_map(animation->victim, id); else printf("CFAnim: Not a player\n"); return 1;*/ } static long int initvisible(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int result; if (get_boolean(parameters, &result)) return result; cf_log(llevError, "CFAnim: Error in animation - possible values for 'invisible' are 'yes' and 'no'\n"); return -1; } static anim_move_result runvisible(struct CFanimation_struct *animation, long int id, void *parameters) { if (id == -1) return mr_finished; animation->invisible = id; return mr_finished; } static long int initwizard(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int result; if (get_boolean(parameters, &result)) return result; cf_log(llevError, "CFAnim: Error in animation - possible values for 'wizard' are 'yes' and 'no'\n"); return -1; } static anim_move_result runwizard(struct CFanimation_struct *animation, long int id, void *parameters) { if (id == -1) return 1; animation->wizard = id; return mr_finished; } static long int initsay(const char *name, char *parameters, struct CFmovement_struct *move_entity) { if (parameters) move_entity->parameters = cf_strdup_local(parameters); else move_entity->parameters = NULL; if (move_entity->parent->verbose) cf_log(llevDebug, "CFAnim: init say: parameters: %s\n", parameters ? parameters : "null"); return 1; } static anim_move_result runsay(struct CFanimation_struct *animation, long int id, void *parameters) { if (parameters) { cf_object_say(animation->victim, parameters); free(parameters); } else cf_log(llevError, "CFAnim: Error in animation: nothing to say with say function\n"); return mr_finished; } static long int initapply(const char *name, char *parameters, struct CFmovement_struct *move_entity) { return 1; } static anim_move_result runapply(struct CFanimation_struct *animation, long int id, void *parameters) { object *current_container; if (animation->victim->type != PLAYER) return mr_finished; current_container = animation->victim->container; animation->victim->container = NULL; cf_object_apply_below(animation->victim); animation->victim->container = current_container; return mr_finished; } static long int initapplyobject(const char *name, char *parameters, struct CFmovement_struct *move_entity) { move_entity->parameters = parameters ? (void*)cf_add_string(parameters) : NULL; return 1; } static anim_move_result runapplyobject(struct CFanimation_struct *animation, long int id, void *parameters) { object *current; int aflag; if (!parameters) return mr_finished; current = animation->victim->below; FOR_OB_AND_BELOW_PREPARE(current) if (current->name == parameters) break; FOR_OB_AND_BELOW_FINISH(); if (!current) current = cf_object_find_by_name(animation->victim, parameters); if (!current) { cf_free_string(parameters); return mr_finished; } aflag = AP_APPLY; cf_object_apply(animation->victim, current, aflag); cf_free_string(parameters); return mr_finished; } static long int initdropobject(const char *name, char *parameters, struct CFmovement_struct *move_entity) { move_entity->parameters = parameters ? cf_strdup_local(parameters) : NULL; return 1; } static anim_move_result rundropobject(struct CFanimation_struct *animation, long int id, void *parameters) { if (!parameters) return mr_finished; cf_object_drop(animation->victim, parameters); cf_free_string(parameters); return mr_finished; } static long int initpickup(const char *name, char *parameters, struct CFmovement_struct *move_entity) { return 1; } static anim_move_result runpickup(struct CFanimation_struct *animation, long int id, void *parameters) { object *current; current = animation->victim->below; if (!current) return mr_finished; cf_object_pickup(animation->victim, current); return mr_finished; } static long int initpickupobject(const char *name, char *parameters, struct CFmovement_struct *move_entity) { move_entity->parameters = parameters ? (void*)cf_add_string(parameters) : NULL; return 1; } static anim_move_result runpickupobject(struct CFanimation_struct *animation, long int id, void *parameters) { if (!parameters) return mr_finished; FOR_BELOW_PREPARE(animation->victim, current) if (current->name == parameters) { cf_object_pickup(animation->victim, current); break; } FOR_BELOW_FINISH(); cf_free_string(parameters); return mr_finished; } static long int initghosted(const char *name, char *parameters, struct CFmovement_struct *move_entity) { int result; if (get_boolean(parameters, &result)) return result; cf_log(llevError, "CFAnim: Error in animation: possible values for 'ghosted' are 'yes' and 'no'\n"); return -1; } static anim_move_result runghosted(struct CFanimation_struct *animation, long int id, void *parameters) { object *corpse; if ((id && animation->ghosted) || (!id && !animation->ghosted)) runghosted(animation, !id, parameters); if (id) { /*Create a ghost/corpse pair*/ corpse = cf_object_clone(animation->victim, 1); corpse->x = animation->victim->x; corpse->y = animation->victim->y; corpse->type = 0; CLEAR_FLAG(corpse, FLAG_WIZ); corpse->contr = NULL; cf_map_insert_object_there(corpse, animation->victim->map, NULL, 0); animation->wizard = 1; animation->invisible = 1; animation->corpse = corpse; } else { /*Remove a corpse, make current player visible*/ animation->wizard = 0; animation->invisible = 0; cf_object_remove(animation->corpse); cf_object_free_drop_inventory(animation->corpse); animation->corpse = NULL; animation->victim->invisible = 0; cf_player_move(animation->victim->contr, 0); } animation->ghosted = id; return mr_finished; } typedef struct { char *mapname; int mapx; int mapy; } teleport_params; static long int initteleport(const char *name, char *parameters, struct CFmovement_struct *move_entity) { char *mapname; int mapx; int mapy; teleport_params *teleport; move_entity->parameters = NULL; cf_log(llevDebug, ".(%s)\n", parameters); if (!parameters) { cf_log(llevError, "CFAnim: Error - no parameters for teleport\n"); return 0; } mapname = strstr(parameters, " "); cf_log(llevDebug, ".(%s)\n", parameters); if (!mapname) return 0; *mapname = '\0'; mapx = atoi(parameters); mapname++; parameters = mapname; if (!parameters) { cf_log(llevError, "CFAnim: Error - not enough parameters for teleport\n"); return 0; } cf_log(llevDebug, ".(%s)\n", parameters); mapname = strstr(parameters, " "); cf_log(llevDebug, ".\n"); if (!mapname) return 0; *mapname = '\0'; mapy = atoi(parameters); mapname++; if (mapname[0] == '\0') return 0; teleport = (teleport_params *)malloc(sizeof(teleport_params)); teleport->mapname = cf_strdup_local(mapname); teleport->mapx = mapx; teleport->mapy = mapy; move_entity->parameters = teleport; return 1; } static anim_move_result runteleport(struct CFanimation_struct *animation, long int id, void *parameters) { teleport_params *teleport = (teleport_params *)parameters; if (!parameters) return mr_finished; cf_object_teleport(animation->victim, cf_map_get_map(teleport->mapname, 0), teleport->mapx, teleport->mapy); free(parameters); return mr_finished; } static long int initnotice(const char *name, char *parameters, struct CFmovement_struct *move_entity) { move_entity->parameters = parameters ? cf_strdup_local(parameters) : NULL; return 1; } static anim_move_result runnotice(struct CFanimation_struct *animation, long int id, void *parameters) { int val; val = NDI_NAVY|NDI_UNIQUE; cf_player_message(animation->victim, parameters, val); return mr_finished; } static long int initstop(const char *name, char *parameters, struct CFmovement_struct *move_entity) { return 1; } /** @todo fix */ static anim_move_result runstop(struct CFanimation_struct *animation, long int id, void *parameters) { if (animation->verbose) cf_log(llevDebug, "CFAnim: stop encountered\n"); return mr_finished; } /** Destination for moveto command. */ typedef struct { int x, y; /**< Coordinates. */ } param_moveto; static long int initmoveto(const char *name, char *parameters, struct CFmovement_struct *move_entity) { param_moveto *moveto; int x, y; if (sscanf(parameters, "%d %d", &x, &y) != 2) return 0; moveto = (param_moveto *)calloc(1, sizeof(param_moveto)); moveto->x = x; moveto->y = y; move_entity->parameters = moveto; return 1; } static anim_move_result runmoveto(struct CFanimation_struct *animation, long int id, void *parameters) { int move; param_moveto *dest = (param_moveto *)parameters; if (!dest) return mr_finished; move = cf_object_move_to(animation->victim, dest->x, dest->y); if (animation->victim->x == dest->x && animation->victim->y == dest->y) { free(parameters); return mr_finished; } if (move == 1) return mr_again; return mr_finished; } static long int initmessage(const char *name, char *parameters, struct CFmovement_struct *move_entity) { if (parameters) move_entity->parameters = strdup(parameters); else move_entity->parameters = NULL; return 1; } static anim_move_result runmessage(struct CFanimation_struct *animation, long int id, void *parameters) { if (parameters && animation->victim->map) { cf_map_message(animation->victim->map, (const char *)parameters, NDI_UNIQUE|NDI_GREEN); free(parameters); } return mr_finished; } /** Available animation commands. */ CFanimationHook animationbox[] = { { "north", initmovement, runmovement }, { "north_east", initmovement, runmovement }, { "east", initmovement, runmovement }, { "south_east", initmovement, runmovement }, { "south", initmovement, runmovement }, { "south_west", initmovement, runmovement }, { "west", initmovement, runmovement }, { "north_west", initmovement, runmovement }, { "fire_north", initfire, runfire }, { "fire_north_east", initfire, runfire }, { "fire_east", initfire, runfire }, { "fire_south_east", initfire, runfire }, { "fire_south", initfire, runfire }, { "fire_south_west", initfire, runfire }, { "fire_west", initfire, runfire }, { "fire_north_west", initfire, runfire }, { "turn_north", initturn, runturn }, { "turn_north_east", initturn, runturn }, { "turn_east", initturn, runturn }, { "turn_south_east", initturn, runturn }, { "turn_south", initturn, runturn }, { "turn_south_west", initturn, runturn }, { "turn_west", initturn, runturn }, { "turn_north_west", initturn, runturn }, { "camera_north", initcamera, runcamera }, { "camera_north_east", initcamera, runcamera }, { "camera_east", initcamera, runcamera }, { "camera_south_east", initcamera, runcamera }, { "camera_south", initcamera, runcamera }, { "camera_south_west", initcamera, runcamera }, { "camera_west", initcamera, runcamera }, { "camera_north_west", initcamera, runcamera }, { "invisible", initvisible, runvisible }, { "wizard", initwizard, runwizard }, { "say", initsay, runsay }, { "apply", initapply, runapply }, { "apply_object", initapplyobject, runapplyobject }, { "drop_object", initdropobject, rundropobject }, { "pickup", initpickup, runpickup }, { "pickup_object", initpickupobject, runpickupobject }, { "ghosted", initghosted, runghosted }, { "teleport", initteleport, runteleport }, { "notice", initnotice, runnotice }, { "stop", initstop, runstop }, { "moveto", initmoveto, runmoveto }, { "message", initmessage, runmessage } }; int animationcount = sizeof(animationbox)/sizeof(CFanimationHook); static int ordered_commands = 0; static int compareAnims(const void *a, const void *b) { return strcmp(((const CFanimationHook *)a)->name, ((const CFanimationHook *)b)->name); } static void prepare_commands(void) { qsort(animationbox, animationcount, sizeof(CFanimationHook), compareAnims); ordered_commands = 1; } static CFanimationHook *get_command(char *command) { CFanimationHook dummy; dummy.name = command; if (!ordered_commands) prepare_commands(); return (CFanimationHook *)bsearch(&dummy, animationbox, animationcount, sizeof(CFanimationHook), compareAnims); } /** * Parse an animation block in the animation file. * @param buffer buffer to read data info, will have been modified when function exits. * @param buffer_size size of buffer. * @param fichier file to read from. * @param parent animation we're reading the block for. * @return one animation frame. */ static CFmovement *parse_animation_block(char *buffer, size_t buffer_size, FILE *fichier, CFanimation *parent) { CFmovement *first = NULL; CFmovement *current = NULL; CFmovement *next; char *time; char *name; char *parameters; int tick; CFanimationHook *animationhook; if (parent->verbose) cf_log(llevDebug, "CFAnim: In parse block for %s\n", buffer); while (fgets(buffer, buffer_size, fichier)) { if (buffer[0] == '[') break; if (buffer[0] == '#') continue; buffer[strlen(buffer)-strlen("\n")] = '\0'; while (buffer[strlen(buffer)-1] == ' ') buffer[strlen(buffer)-1] = '\0'; if (strlen(buffer) <= 0) continue; time = buffer; name = strstr(buffer, " "); if (!name) continue; *name = '\0'; name++; while (*name == ' ') name++; tick = atoi(time); if (tick < 0) continue; parameters = strstr(name, " "); if (parameters) { /*Parameters may be nul*/ *parameters = '\0'; parameters++; while (*parameters == ' ') parameters++; if (*parameters == '\0') parameters = NULL; } animationhook = get_command(name); if (parent->verbose) { if (!animationhook) cf_log(llevError, "CFAnim: %s - Unknown animation command\n", name); else cf_log(llevDebug, "CFAnim: Parsed %s -> %p\n", name, animationhook); } if (!animationhook) { if (parent->errors_allowed) continue; else break; } next = (CFmovement *)malloc(sizeof(CFmovement)); if (!next) continue; next->parent = parent; next->tick = tick; next->next = NULL; if (animationhook->funcinit) next->id = animationhook->funcinit(name, parameters, next); next->func = animationhook->funcrun; if (current) current->next = next; else first = next; current = next; } return first; } /** * This function take buffer with a value like "blabla= things" and extracts some things. * * @param buffer where equality is written * @param[out] variable will be positionned to where in buffer the * variable name starts. leading spaces will be converted to \0 * @param[out] value same as above but for the value part * @note variable and value become pointers to internals of * buffer. If buffer chages, they will change too and/or become invalid! */ static int equality_split(char *buffer, char **variable, char **value) { if (!strcmp(&buffer[strlen(buffer)-strlen("\n")], "\n")) buffer[strlen(buffer)-strlen("\n")] = '\0'; *value = strstr(buffer, "="); if (!*value) return 0; **value = '\0'; *variable = buffer; (*value)++; while ((strlen(*variable) > 0) && ((*variable)[strlen(*variable)-1] == ' ')) (*variable)[strlen(*variable)-1] = '\0'; while ((strlen(*value) > 0) && ((*value)[strlen(*value)-1] == ' ')) (*value)[strlen(*value)-1] = '\0'; while (**value == ' ') (*value)++; if ((**variable == '\0') || (**value == '\0')) return 0; return 1; } /** * This function gets a string containing * [Y/y](es)/[N/n](o), 1/0 * and set bl according to what's read * if return value is true, strg was set successfully * else, an error occured and bl was not touched * * @param strg string to process. * @param bl value strg meant. * @return 1 if strg was processed, 0 else. */ static int get_boolean(const char *strg, int *bl) { if (!strncmp(strg, "y", 1)) *bl = 1; else if (!strncmp(strg, "n", 1)) *bl = 0; else if (!strncmp(strg, "Y", 1)) *bl = 1; else if (!strncmp(strg, "N", 1)) *bl = 0; else if (!strncmp(strg, "1", 1)) *bl = 1; else if (!strncmp(strg, "0", 1)) *bl = 0; else return 0; return 1; } /** * Is specified object currently being animated? * @param ob object to search for. * @return 1 if ob is part of animation, 0 else. */ static int is_animated_object(const object *ob) { CFanimation *current; for (current = first_animation; current; current = current->nextanimation) if (current->victim == ob) { return 1; } return 0; } /** * Create a new animation. * @return new animation pointer inserted in the list of animations. */ static CFanimation *create_animation(void) { CFanimation *new; CFanimation *current; new = (CFanimation *)malloc(sizeof(CFanimation)); if (!new) return NULL; new->name = NULL; new->victim = NULL; new->event = NULL; new->nextmovement = NULL; new->nextanimation = NULL; new->delete_end = 0; for (current = first_animation; (current && current->nextanimation); current = current->nextanimation) ; if (!current) first_animation = new; else current->nextanimation = new; return new; } static object *find_by_name(object *origin, const char *name) { int x, y, w, h; mapstruct *map; const char *sname; sname = cf_find_string(name); if (!sname) return NULL; while (origin && !origin->map) origin = origin->env; if (!origin || !origin->map) return NULL; map = origin->map; w = cf_map_get_width(map); h = cf_map_get_height(map); for (x = 0; x < w; x++) { for (y = 0; y < h; y++) { FOR_MAP_PREPARE(map, x, y, ob) { if (/*cf_object_get_sstring_property(ob, CFAPI_OBJECT_PROP_NAME)*/ob->name == sname) return ob; } FOR_MAP_FINISH(); } } return NULL; } /** * Create a new animation object according to file, option and activator (who) * * @param who object that raised the event leading to the plugin. * @param activator object that caused who to get an event. * @param event actual event object linking who and this plugin. Can be removed. * @param file file name to read from, should be accessible from the current path. * @param message if non empty, will be the name of the used animation instead of the one specified in the file. * @return 1 if the animation was created, 0 else. * @todo fix memory leaks in case of errors. */ static int start_animation(object *who, object *activator, object *event, const char *file, const char *message) { FILE *fichier; char *name = NULL; int victimtype = 0; object *victim = NULL; int unique = 0; int always_delete = 0; int delete_end = 0; int parallel = 0; int paralyzed = 1; int invisible = 0; int wizard = 0; enum time_enum timetype; int errors_allowed = 0; int verbose = 0; const char *animationitem; char buffer[HUGE_BUF]; char *variable; char *value; int errors_found = 0; CFanimation *current_anim; fichier = fopen(file, "r"); if (fichier == NULL) { cf_log(llevDebug, "CFAnim: Unable to open %s\n", file); return 0; } while (fgets(buffer, HUGE_BUF, fichier)) { if (buffer[0] == '[') break; if (buffer[0] == '#') continue; if (!strcmp(buffer, "\n")) continue; errors_found = 1; cf_log(llevError, "CFAnim: '%s' has an invalid syntax.\n", buffer); } if (feof(fichier)) return 0; if (strncmp(buffer, "[Config]", 8)) { cf_log(llevError, "CFAnim: Fatal error in %s: [Config] must be the first group defined.\n", file); return 0; } while (fgets(buffer, HUGE_BUF, fichier)) { if (buffer[0] == '[') break; if (buffer[0] == '#') continue; if (!strcmp(buffer, "\n")) continue; if (!equality_split(buffer, &variable, &value)) errors_found = 1; else { if (!strcmp(variable, "name")) { if (*value == '"') value++; if (value[strlen(value)-1] == '"') value[strlen(value)-1] = '\0'; name = cf_strdup_local(value); } else if (!strcmp(variable, "victimtype")) { if (!strcmp(value, "player")) victimtype = 0; else if (!strcmp(value, "object")) victimtype = 1; else if (!strcmp(value, "any")) victimtype = 2; else if (!strcmp(value, "byname")) victimtype = 3; else errors_found = 1; } else if (!strcmp(variable, "victim")) { cf_log(llevDebug, "CFAnim: Setting victim to %s\n", value); if (!strcmp(value, "who")) victim = who; else if (!strcmp(value, "activator")) victim = activator; else if (!strcmp(value, "who_owner")) if (!who) { errors_found = 1; cf_log(llevError, "CFAnim: Warning: object \"who\" doesn't exist and you're victimized it's owner\n"); } else victim = who->env; else if (!strcmp(value, "activator_owner")) if (!activator) { errors_found = 1; cf_log(llevError, "CFAnim: Warning: object \"activator\" doesn't exist and you're victimized it's owner\n"); } else victim = activator->env; else if (victimtype == 3) { victim = find_by_name(who, value); } else errors_found = 1; } else if (!strcmp(variable, "unique")) { if (!get_boolean(value, &unique)) errors_found = 1; } else if (!strcmp(variable, "always_delete")) { if (!get_boolean(value, &always_delete)) errors_found = 1; } else if (!strcmp(variable, "delete_event_end")) { if (!get_boolean(value, &delete_end)) errors_found = 1; } else if (!strcmp(variable, "parallel")) { if (!get_boolean(value, ¶llel)) errors_found = 1; } else if (!strcmp(variable, "paralyzed")) { if (!get_boolean(value, ¶lyzed)) errors_found = 1; } else if (!strcmp(variable, "invisible")) { if (!get_boolean(value, &invisible)) errors_found = 1; } else if (!strcmp(variable, "wizard")) { if (!get_boolean(value, &wizard)) errors_found = 1; } else if (!strcmp(variable, "errors_allowed")) { if (!get_boolean(value, &errors_allowed)) errors_found = 1; } else if (!strcmp(variable, "verbose")) { if (!get_boolean(value, &verbose)) errors_found = 1; } else if (!strcmp(variable, "time_representation")) { if (!strcmp(value, "second")) timetype = time_second; else if (!strcmp(value, "tick")) timetype = time_tick; else errors_found = 1; } else if (!strcmp(variable, "animation")) { animationitem = cf_add_string(value); } else errors_found = 1; } } if (message && message[0] != '\0') { cf_free_string(animationitem); animationitem = cf_add_string(message); } if (buffer[0] == '\0') { if (animationitem) cf_free_string(animationitem); cf_log(llevError, "CFAnim: Errors occurred during the parsing of %s\n", file); return 0; } if (!victim) { if (animationitem) cf_free_string(animationitem); cf_log(llevError, "CFAnim: Fatal error - victim is NULL"); return 0; } if (!(current_anim = create_animation())) { if (animationitem) cf_free_string(animationitem); cf_log(llevError, "CFAnim: Fatal error - Not enough memory.\n"); return 0; } if (always_delete) { /*if (verbose) printf("CFAnim: Freeing event nr. %d for %s.\n", current_event, who->name);*/ cf_object_remove(event); event = NULL; } if (((victim->type == PLAYER) && (victimtype == 1)) || ((victim->type != PLAYER) && (victimtype == 0)) || (errors_found && !errors_allowed)) { if (verbose) cf_log(llevError, "CFAnim: No correct victim found or errors found, aborting.\n"); if (animationitem) cf_free_string(animationitem); return 0; } if (unique && !always_delete) { /*if (verbose) printf("CFAnim: Freeing event nr. %d for %s.\n", current_event, who->name);*/ cf_object_remove(event); event = NULL; } current_anim->name = name; current_anim->victim = victim; current_anim->event = event; current_anim->paralyze = paralyzed; current_anim->invisible = invisible; current_anim->wizard = wizard; current_anim->unique = unique; current_anim->delete_end = delete_end; current_anim->ghosted = 0; current_anim->corpse = NULL; current_anim->time_representation = timetype; current_anim->verbose = verbose; current_anim->tick_left = 0; current_anim->errors_allowed = errors_allowed; while (buffer[0] == '[') { while (strncmp(&buffer[1], animationitem, strlen(animationitem))) { while ((value = fgets(buffer, HUGE_BUF, fichier)) != NULL) if (buffer[0] == '[') break; if (value == NULL) { cf_log(llevError, "CFAnim: no matching animation %s in file.\n", animationitem); cf_free_string(animationitem); return 0; } } current_anim->nextmovement = parse_animation_block(buffer, HUGE_BUF, fichier, current_anim); if (current_anim->nextmovement) break; } fclose(fichier); return 1; } /** * Checks if an animation can execute one or more moves, and if so does them. * @param animation animation to check * @param milliseconds time elapsed since the last time this function was called. */ static void animate_one(CFanimation *animation, long int milliseconds) { CFmovement *current; int mult = 1; anim_move_result result; if (animation->time_representation == time_second) { animation->tick_left += milliseconds; mult = 1000; } else animation->tick_left++; if (animation->verbose) cf_log(llevDebug, "CFAnim: Ticking %s for %s. Tickleft is %ld\n", animation->name, animation->victim->name, animation->tick_left); if (animation->invisible) animation->victim->invisible = 10; if (animation->wizard && animation->victim->type == PLAYER) { /* setting FLAG_WIZ *on non player leads to issues, as many functions expect contr to not be NULL in this case. */ if (animation->verbose) cf_log(llevDebug, "CFAnim: Setting wizard flags\n"); cf_object_set_flag(animation->victim, FLAG_WIZPASS, 1); cf_object_set_flag(animation->victim, FLAG_WIZCAST, 1); cf_object_set_flag(animation->victim, FLAG_WIZ, 1); if (animation->verbose) cf_log(llevDebug, "CFAnim: Setting wizard flags done\n"); } if (animation->paralyze) animation->victim->speed_left = -99999; cf_object_update(animation->victim, UP_OBJ_CHANGE); if (animation->nextmovement) while (animation->tick_left > animation->nextmovement->tick*mult) { animation->tick_left -= animation->nextmovement->tick*mult; result = animation->nextmovement->func(animation, animation->nextmovement->id, animation->nextmovement->parameters); if (result == mr_again) continue; current = animation->nextmovement; animation->nextmovement = animation->nextmovement->next; free(current); if (!animation->nextmovement) break; } cf_object_set_flag(animation->victim, FLAG_WIZPASS, 0); cf_object_set_flag(animation->victim, FLAG_WIZCAST, 0); cf_object_set_flag(animation->victim, FLAG_WIZ, 0); } /** * Animates all currently running animations. */ static void animate(void) { CFanimation *current; CFanimation *next; CFanimation *previous_anim = NULL; struct timeval now; static struct timeval yesterday; static int already_passed = 0; long int delta_milli; (void)GETTIMEOFDAY(&now); if (!already_passed) { already_passed = 1; memcpy(&yesterday, &now, sizeof(struct timeval)); return; } delta_milli = (now.tv_sec-yesterday.tv_sec)*1000+(now.tv_usec/1000-yesterday.tv_usec/1000); /*printf("Working for %ld milli seconds\n", delta_milli);*/ memcpy(&yesterday, &now, sizeof(struct timeval)); for (current = first_animation; current; current = current->nextanimation) animate_one(current, delta_milli); current = first_animation; while (current) { if (!current->nextmovement) { if (current->paralyze) current->victim->speed_left = current->victim->speed; next = current->nextanimation; if (first_animation == current) first_animation = next; else { previous_anim->nextanimation = next; } if (current->delete_end && current->event != NULL) cf_object_remove(current->event); free(current->name); free(current); current = next; } else { previous_anim = current; current = current->nextanimation; } } } /** * Plugin initialisation function. * @param iversion server version. * @param gethooksptr function to get the hooks. * @return 0 */ CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr) { cf_init_plugin(gethooksptr); cf_log(llevDebug, "CFAnim 2.0a init\n"); /* Place your initialization code here */ return 0; } CF_PLUGIN void *getPluginProperty(int *type, ...) { va_list args; const char *propname; char *buf; int size; va_start(args, type); propname = va_arg(args, const char *); if (!strcmp(propname, "Identification")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_NAME); return NULL; } else if (!strcmp(propname, "FullName")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_VERSION); return NULL; } va_end(args); return NULL; } CF_PLUGIN anim_move_result cfanim_runPluginCommand(object *op, char *params) { return -1; } CF_PLUGIN int postInitPlugin(void) { cf_log(llevDebug, "CFAnim 2.0a post init\n"); /* Pick the global events you want to monitor from this plugin */ cf_system_register_global_event(EVENT_CLOCK, PLUGIN_NAME, cfanim_globalEventListener); return 0; } CF_PLUGIN int cfanim_globalEventListener(int *type, ...) { va_list args; int rv = 0; int event_code; va_start(args, type); event_code = va_arg(args, int); assert(event_code == EVENT_CLOCK); animate(); va_end(args); return rv; } CF_PLUGIN int eventListener(int *type, ...) { int rv = 0; va_list args; char *buf, message[MAX_BUF], script[MAX_BUF]; object *who, *activator/*, *third*/, *event; int query; va_start(args, type); who = va_arg(args, object *); activator = va_arg(args, object *); /*third =*/ va_arg(args, object *); buf = va_arg(args, char *); if (buf != NULL) strcpy(message, buf); else message[0] = '\0'; query = va_arg(args, int); /* 'fix', ignored */ event = va_arg(args, object *); if (query == 1 && strcmp(message, "query_object_is_animated") == 0) { rv = is_animated_object(who); return rv; } /** @todo build from current map's path, probably */ cf_get_maps_directory(event->slaying, script, sizeof(script)); va_end(args); /* Put your plugin action(s) here */ if (activator != NULL) { cf_log(llevDebug, "CFAnim: %s called animator script %s\n", activator->name, script); } else if (who != NULL) { activator = who; cf_log(llevDebug, "CFAnim: %s called animator script %s\n", who->name, script); } rv = start_animation(who, activator, event, script, message); return rv; } CF_PLUGIN int closePlugin(void) { cf_log(llevDebug, "CFAnim 2.0a closing\n"); return 0; } crossfire-1.70.0/plugins/cflogger/0000755000014500000120000000000011732537047014044 500000000000000crossfire-1.70.0/plugins/cflogger/Makefile.am0000644000014500000120000000324211731300516016005 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net plugindir=$(pkglibdir)/plugins noinst_HEADERS = include/cflogger.h include/cflogger_proto.h ../common/include/plugin_common.h if HAVE_CFLOGGER plugin_LTLIBRARIES = cflogger.la else plugin_LTLIBRARIES = endif cflogger_la_SOURCES = cflogger.c\ ../common/plugin_common.c cflogger_la_CPSOURCES = cflogger.c cflogger_la_LIBADD = -lsqlite3 cflogger_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include proto: cproto -D__CEXTRACT__ -o include/cflogger_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cflogger_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cflogger_proto.h crossfire-1.70.0/plugins/cflogger/include/0000755000014500000120000000000011732537047015467 500000000000000crossfire-1.70.0/plugins/cflogger/include/cflogger_proto.h0000644000014500000120000000046711731300516020566 00000000000000/* cflogger.c */ int initPlugin(const char *iversion, f_plug_api gethooksptr); void *getPluginProperty(int *type, ...); int cflogger_runPluginCommand(object *op, char *params); int eventListener(int *type, ...); int cflogger_globalEventListener(int *type, ...); int postInitPlugin(void); int closePlugin(void); crossfire-1.70.0/plugins/cflogger/include/cflogger.h0000644000014500000120000000535611731300516017345 00000000000000/*****************************************************************************/ /* Template for version 2.0 plugins. */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef PLUGIN_TEMPLATE_H #define PLUGIN_TEMPLATE_H /** Name of the plugin as known by the server. */ #define PLUGIN_NAME "SqliteLogger" /** Full name. */ #define PLUGIN_VERSION "Sqlite Logger Plugin 1.0 alpha" #ifndef __CEXTRACT__ #include #endif #undef MODULEAPI #ifdef WIN32 # ifdef PYTHON_PLUGIN_EXPORTS # define MODULEAPI __declspec(dllexport) # else # define MODULEAPI __declspec(dllimport) # endif #else #ifdef HAVE_VISIBILITY # define MODULEAPI __attribute__((visibility("default"))) #else # define MODULEAPI #endif #endif #include extern f_plug_api gethook; #endif /* PLUGIN_TEMPLATE_H */ crossfire-1.70.0/plugins/cflogger/cflogger.c0000644000014500000120000006122611731300516015713 00000000000000/*****************************************************************************/ /* Logger plugin version 1.0 alpha. */ /* Contact: */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2007 by Weeger Nicolas (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /** * @file cflogger.c * This plugin will log events to an sqlite3 database named cflogger.db in the * var directory. * * Log includes: * @li players join/leave/creation/quit * @li map load/unload/reset/enter/leave * @li kills, whenever a player is concerned * @li ingame/real time links * * @warning * The plugin will not check the database size, which can grow a lot. * * @note * Thanks to sqlite's locking, it's possible to access the database through the command * line even while the server is running. */ #include #ifndef __CEXTRACT__ #include #endif /*#include */ #include #include CF_PLUGIN char SvnRevPlugin[] = SVN_REV; /** Current database format */ #define CFLOGGER_CURRENT_FORMAT 3 /** Pointer to the logging database. */ static sqlite3 *database; /** To keep track of stored ingame/real time matching. */ static int last_stored_day = -1; /** * Simple callback to get an integer from a query. * * @param param * user-supplied data. * @param argc * number of items. * @param argv * values. * @param azColName * column names. * * @return * always returns 0 to continue the execution. */ static int check_tables_callback(void *param, int argc, char **argv, char **azColName) { int *format = (int *)param; *format = atoi(argv[0]); return 0; } /** * Helper function to run a SQL query. * * Will LOG() an error if the query fails. * * @param sql * query to run. * * @return * SQLITE_OK if no error, other value if error. * * @note * There is most likely no need to check return value unless you need to * rollback a transaction or similar. */ static int do_sql(const char *sql) { int err; char *msg; if (!database) return -1; err = sqlite3_exec(database, sql, NULL, NULL, &msg); if (err != SQLITE_OK) { cf_log(llevError, " [%s] error: %d [%s] for sql = %s\n", PLUGIN_NAME, err, msg, sql); sqlite3_free(msg); } return err; } /** * Updates a table to a new schema, used for when ALTER TABLE doesn't work. * (Such as when changing column constraints.) * * @param table * Name of table. * @param newschema * This is the new table format. Will be inserted into the parantheses of * "create table table_name()". * @param select_columns * This is inserted into "INSERT INTO table_name SELECT _ FROM ..." to allow * changing order of columns, or skipping some. Normally it should be "*". * * @warning * This function should only be used in check_tables() below. * * No error checking is done. Also it is expected that appending an _old * on the table name won't collide with anything. * * Note that columns are expected to have same (or compatible) type, and be in * the same order. Further both tables should have the same number of columns. * * @return * SQLITE_OK if no error, non-zero if error. This SHOULD be rollback any * transaction this function is called in. */ static int update_table_format(const char *table, const char *newschema, const char *select_columns) { char *sql; int err; sql = sqlite3_mprintf("ALTER TABLE %s RENAME TO %s_old;", table, table); err = do_sql(sql); sqlite3_free(sql); if (err != SQLITE_OK) return err; sql = sqlite3_mprintf("CREATE TABLE %s(%s);", table, newschema); err = do_sql(sql); sqlite3_free(sql); if (err != SQLITE_OK) return err; sql = sqlite3_mprintf("INSERT INTO %s SELECT %s FROM %s_old;", table, select_columns, table); err = do_sql(sql); sqlite3_free(sql); if (err != SQLITE_OK) return err; sql = sqlite3_mprintf("DROP TABLE %s_old;", table, table); err = do_sql(sql); sqlite3_free(sql); /* Final return. */ return err; } /** * Helper macros for rolling back and returning if query failed. * Used in check_tables(). * * Yes they are quite messy. The alternatives seemed worse. */ #define DO_OR_ROLLBACK(sqlstring) \ if (do_sql(sqlstring) != SQLITE_OK) { \ do_sql("rollback transaction;"); \ cf_log(llevError, " [%s] Logger database format update failed! Couldn't upgrade from format %d to fromat %d!. Won't log.\n", PLUGIN_NAME, format, CFLOGGER_CURRENT_FORMAT);\ sqlite3_close(database); \ database = NULL; \ return; \ } #define UPDATE_OR_ROLLBACK(tbl, newschema, select_columns) \ if (update_table_format((tbl), (newschema), (select_columns)) != SQLITE_OK) { \ do_sql("rollback transaction;"); \ cf_log(llevError, " [%s] Logger database format update failed! Couldn't upgrade from format %d to fromat %d!. Won't log.\n", PLUGIN_NAME, format, CFLOGGER_CURRENT_FORMAT);\ sqlite3_close(database); \ database = NULL; \ return; \ } /** * Checks the database format, and applies changes if old version. */ static void check_tables(void) { int format; /*int err;*/ format = 0; /*err =*/ sqlite3_exec(database, "select param_value from parameters where param_name = 'version';", check_tables_callback, &format, NULL); /* Safety check. */ if (format > CFLOGGER_CURRENT_FORMAT) { cf_log(llevError, " [%s] Logger database format (%d) is newer than supported (%d) by this binary!. Won't log.\n", PLUGIN_NAME, format, CFLOGGER_CURRENT_FORMAT); /* This will disable using the db since do_sql() checks if database is * NULL. */ sqlite3_close(database); database = NULL; } /* Check if we need to upgrade/create database. */ if (format < 1) { cf_log(llevDebug, " [%s] Creating logger database schema (format 1).\n", PLUGIN_NAME); if (do_sql("BEGIN EXCLUSIVE TRANSACTION;") != SQLITE_OK) { cf_log(llevError, " [%s] Logger database format update failed! Couldn't acquire exclusive lock to database when upgrading from format %d to fromat %d!. Won't log.\n", PLUGIN_NAME, format, CFLOGGER_CURRENT_FORMAT); sqlite3_close(database); database = NULL; return; } DO_OR_ROLLBACK("create table living(liv_id integer primary key autoincrement, liv_name text, liv_is_player integer, liv_level integer);"); DO_OR_ROLLBACK("create table region(reg_id integer primary key autoincrement, reg_name text);"); DO_OR_ROLLBACK("create table map(map_id integer primary key autoincrement, map_path text, map_reg_id integer);"); DO_OR_ROLLBACK("create table time(time_real integer, time_ingame text);"); DO_OR_ROLLBACK("create table living_event(le_liv_id integer, le_time integer, le_code integer, le_map_id integer);"); DO_OR_ROLLBACK("create table map_event(me_map_id integer, me_time integer, me_code integer, me_living_id integer);"); DO_OR_ROLLBACK("create table kill_event(ke_time integer, ke_victim_id integer, ke_victim_level integer, ke_map_id integer , ke_killer_id integer, ke_killer_level integer);"); DO_OR_ROLLBACK("create table parameters(param_name text, param_value text);"); DO_OR_ROLLBACK("insert into parameters values( 'version', '1' );"); do_sql("COMMIT TRANSACTION;"); } /* Must be able to handle update from format 1. If we are creating a new * database, format 1 is still created first, then updated. * * This way is simpler than having to create two ways to make a format 2 db. */ if (format < 2) { cf_log(llevDebug, " [%s] Upgrading logger database schema (to format 2).\n", PLUGIN_NAME); if (do_sql("BEGIN EXCLUSIVE TRANSACTION;") != SQLITE_OK) { cf_log(llevError, " [%s] Logger database format update failed! Couldn't acquire exclusive lock to database when upgrading from format %d to fromat %d!. Won't log.\n", PLUGIN_NAME, format, CFLOGGER_CURRENT_FORMAT); sqlite3_close(database); database = NULL; return; } /* Update schema for various tables. Why so complex? Because ALTER TABLE * can't add the "primary key" bit or other constraints... */ UPDATE_OR_ROLLBACK("living", "liv_id INTEGER PRIMARY KEY AUTOINCREMENT, liv_name TEXT NOT NULL, liv_is_player INTEGER NOT NULL, liv_level INTEGER NOT NULL", "*"); UPDATE_OR_ROLLBACK("region", "reg_id INTEGER PRIMARY KEY AUTOINCREMENT, reg_name TEXT UNIQUE NOT NULL", "*"); UPDATE_OR_ROLLBACK("map", "map_id INTEGER PRIMARY KEY AUTOINCREMENT, map_path TEXT NOT NULL, map_reg_id INTEGER NOT NULL, CONSTRAINT map_path_reg_id UNIQUE(map_path, map_reg_id)", "*"); #if 0 /* Turned out this was incorrect. And version 1 -> 3 directly works for this. */ UPDATE_OR_ROLLBACK("time", "time_real INTEGER PRIMARY KEY, time_ingame TEXT UNIQUE NOT NULL"); #endif UPDATE_OR_ROLLBACK("living_event", "le_liv_id INTEGER NOT NULL, le_time INTEGER NOT NULL, le_code INTEGER NOT NULL, le_map_id INTEGER NOT NULL", "*"); UPDATE_OR_ROLLBACK("map_event", "me_map_id INTEGER NOT NULL, me_time INTEGER NOT NULL, me_code INTEGER NOT NULL, me_living_id INTEGER NOT NULL", "*"); UPDATE_OR_ROLLBACK("kill_event", "ke_time INTEGER NOT NULL, ke_victim_id INTEGER NOT NULL, ke_victim_level INTEGER NOT NULL, ke_map_id INTEGER NOT NULL, ke_killer_id INTEGER NOT NULL, ke_killer_level INTEGER NOT NULL", "*"); /* Handle changed parameters table format: */ /* Due to backward compatiblity "primary key" in SQLite doesn't imply * "not null" (http://www.sqlite.org/lang_createtable.html), unless it * is "integer primary key". * * We don't need to save anything stored in this in format 1, it was * only used for storing what format was used. */ DO_OR_ROLLBACK("DROP TABLE parameters;"); DO_OR_ROLLBACK("CREATE TABLE parameters(param_name TEXT NOT NULL PRIMARY KEY, param_value TEXT);"); DO_OR_ROLLBACK("INSERT INTO parameters (param_name, param_value) VALUES( 'version', '2' );"); /* Create various indexes. */ DO_OR_ROLLBACK("CREATE INDEX living_name_player_level ON living(liv_name,liv_is_player,liv_level);"); /* Newspaper module could make use of some indexes too: */ DO_OR_ROLLBACK("CREATE INDEX kill_event_time ON kill_event(ke_time);"); DO_OR_ROLLBACK("CREATE INDEX map_reg_id ON map(map_reg_id);"); /* Finally commit the transaction. */ do_sql("COMMIT TRANSACTION;"); } if (format < 3) { cf_log(llevDebug, " [%s] Upgrading logger database schema (to format 3).\n", PLUGIN_NAME); if (do_sql("BEGIN EXCLUSIVE TRANSACTION;") != SQLITE_OK) { cf_log(llevError, " [%s] Logger database format update failed! Couldn't acquire exclusive lock to database when upgrading from format %d to fromat %d!. Won't log.\n", PLUGIN_NAME, format, CFLOGGER_CURRENT_FORMAT); sqlite3_close(database); database = NULL; return; } UPDATE_OR_ROLLBACK("time", "time_ingame TEXT NOT NULL PRIMARY KEY, time_real INTEGER NOT NULL", "time_ingame, time_real"); DO_OR_ROLLBACK("UPDATE parameters SET param_value = '3' WHERE param_name = 'version';"); do_sql("COMMIT TRANSACTION;"); /* After all these changes better vacuum... The tables could have been * huge, and since we recreated several of them above there could be a * lot of wasted space. */ do_sql("VACUUM;"); } } /** * Returns a unique identifier for specified object. * * Will insert an item in the table if required. * * If the object is a player, only name is taken into account to generate an id. * * Else, the object's level is taken into account, to distinguish monsters with * the same name and different levels (special monsters, and such). * * @param living * object to get identifier for. * @return * unique identifier in the 'living' table. */ static int get_living_id(object *living) { char **line; char *sql; int nrow, ncolumn, id; if (living->type == PLAYER) sql = sqlite3_mprintf("select liv_id from living where liv_name='%q' and liv_is_player = 1", living->name); else sql = sqlite3_mprintf("select liv_id from living where liv_name='%q' and liv_is_player = 0 and liv_level = %d", living->name, living->level); sqlite3_get_table(database, sql, &line, &nrow, &ncolumn, NULL); if (nrow > 0) id = atoi(line[ncolumn]); else { sqlite3_free(sql); sql = sqlite3_mprintf("insert into living(liv_name, liv_is_player, liv_level) values('%q', %d, %d)", living->name, living->type == PLAYER ? 1 : 0, living->level); do_sql(sql); id = sqlite3_last_insert_rowid(database); } sqlite3_free(sql); sqlite3_free_table(line); return id; } /** * Gets the unique identifier for a region. * * Will generate one if required. * * @param reg * region for which an id is wanted * @return * unique region identifier, or 0 if reg is NULL. */ static int get_region_id(region *reg) { char **line; char *sql; int nrow, ncolumn, id; if (!reg) return 0; sql = sqlite3_mprintf("select reg_id from region where reg_name='%q'", reg->name); sqlite3_get_table(database, sql, &line, &nrow, &ncolumn, NULL); if (nrow > 0) id = atoi(line[ncolumn]); else { sqlite3_free(sql); sql = sqlite3_mprintf("insert into region(reg_name) values( '%q' )", reg->name); do_sql(sql); id = sqlite3_last_insert_rowid(database); } sqlite3_free(sql); sqlite3_free_table(line); return id; } /** * Gets the unique identifier for a map. * * Will generate one if required. * * Maps starting with '/random/' will all share the same identifier for the same region. * * @param map * map for which an id is wanted. Must not be NULL. * @return * unique map identifier. */ static int get_map_id(mapstruct *map) { char **line; char *sql; int nrow, ncolumn, id, reg_id; const char *path = map->path; if (strncmp(path, "/random/", 7) == 0) path = "/random/"; reg_id = get_region_id(map->region); sql = sqlite3_mprintf("select map_id from map where map_path='%q' and map_reg_id = %d", path, reg_id); sqlite3_get_table(database, sql, &line, &nrow, &ncolumn, NULL); if (nrow > 0) id = atoi(line[ncolumn]); else { sqlite3_free(sql); sql = sqlite3_mprintf("insert into map(map_path, map_reg_id) values( '%q', %d)", path, reg_id); do_sql(sql); id = sqlite3_last_insert_rowid(database); } sqlite3_free(sql); sqlite3_free_table(line); return id; } /** * Stores a line to match current ingame and real time. * * @return * 1 if a line was inserted, 0 if the current ingame time was already logged. */ static int store_time(void) { char **line; char *sql; int nrow, ncolumn; char date[50]; time_t now; timeofday_t tod; cf_get_time(&tod); now = time(NULL); if (tod.day == last_stored_day) return 0; last_stored_day = tod.day; snprintf(date, 50, "%10d-%2d-%2d %2d:%2d", tod.year, tod.month, tod.day, tod.hour, tod.minute); sql = sqlite3_mprintf("select * from time where time_ingame='%q'", date); sqlite3_get_table(database, sql, &line, &nrow, &ncolumn, NULL); sqlite3_free(sql); sqlite3_free_table(line); if (nrow > 0) return 0; sql = sqlite3_mprintf("insert into time (time_ingame, time_real) values( '%s', %d )", date, now); do_sql(sql); sqlite3_free(sql); return 1; } /** * Logs an event for a living object. * * @param pl * object for which to log an event. * @param event_code * arbitrary event code. */ static void add_player_event(object *pl, int event_code) { int id = get_living_id(pl); int map_id = 0; char *sql; if (pl == NULL) return; if (pl->map) map_id = get_map_id(pl->map); sql = sqlite3_mprintf("insert into living_event values( %d, %d, %d, %d)", id, time(NULL), event_code, map_id); do_sql(sql); sqlite3_free(sql); } /** * Logs an event for a map. * * @param map * map for which to log an event. * @param event_code * arbitrary event code. * @param pl * object causing the event. Can be NULL. */ static void add_map_event(mapstruct *map, int event_code, object *pl) { int mapid; int playerid = 0; char *sql; if (pl && pl->type == PLAYER) playerid = get_living_id(pl); mapid = get_map_id(map); sql = sqlite3_mprintf("insert into map_event values( %d, %d, %d, %d)", mapid, time(NULL), event_code, playerid); do_sql(sql); sqlite3_free(sql); } /** * Logs a death. * * If either of the parameters is NULL, or if neither is a PLAYER, nothing is logged. * * @param victim * who died. * @param killer * who killed. */ static void add_death(object *victim, object *killer) { int vid, kid, map_id; char *sql; if (!victim || !killer) return; if (victim->type != PLAYER && killer->type != PLAYER) { /* Killer might be a bullet, which might be owned by the player. */ object *owner = cf_object_get_object_property(killer, CFAPI_OBJECT_PROP_OWNER); if (owner != NULL && owner->type == PLAYER) killer = owner; else return; } vid = get_living_id(victim); kid = get_living_id(killer); map_id = get_map_id(victim->map); sql = sqlite3_mprintf("insert into kill_event values( %d, %d, %d, %d, %d, %d)", time(NULL), vid, victim->level, map_id, kid, killer->level); do_sql(sql); sqlite3_free(sql); } /** * Main plugin entry point. * * @param iversion * server version. * @param gethooksptr * function to get hooks from. * @return * always 0. */ CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr) { cf_init_plugin(gethooksptr); cf_log(llevInfo, "%s init\n", PLUGIN_VERSION); return 0; } /** * Gets a plugin property. * * @param type * ignored. * @return * @li the name, if asked for 'Identification'. * @li the version, if asked for 'FullName'. * @li NULL else. */ CF_PLUGIN void *getPluginProperty(int *type, ...) { va_list args; const char *propname; char *buf; int size; va_start(args, type); propname = va_arg(args, const char *); if (!strcmp(propname, "Identification")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_NAME); return NULL; } else if (!strcmp(propname, "FullName")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_VERSION); return NULL; } va_end(args); return NULL; } /** * Runs a plugin command. Doesn't do anything. * * @param op * ignored. * @param params * ignored. * @return * -1. */ CF_PLUGIN int cflogger_runPluginCommand(object *op, char *params) { return -1; } /** * Handles an object-related event. Doesn't do anything. * * @param type * ignored. * @return * 0. */ CF_PLUGIN int eventListener(int *type, ...) { return 0; } /** * Handles a global event. * * @param type * ignored. * @return * 0 */ CF_PLUGIN int cflogger_globalEventListener(int *type, ...) { va_list args; int rv = 0; player *pl; object *op/*, *op2*/; int event_code; mapstruct *map; va_start(args, type); event_code = va_arg(args, int); switch (event_code) { case EVENT_BORN: case EVENT_REMOVE: case EVENT_MUZZLE: case EVENT_KICK: op = va_arg(args, object *); add_player_event(op, event_code); break; case EVENT_PLAYER_DEATH: op = va_arg(args, object *); /*op2 =*/ va_arg(args, object *); add_player_event(op, event_code); break; case EVENT_LOGIN: case EVENT_LOGOUT: pl = va_arg(args, player *); add_player_event(pl->ob, event_code); break; case EVENT_MAPENTER: case EVENT_MAPLEAVE: op = va_arg(args, object *); map = va_arg(args, mapstruct *); add_map_event(map, event_code, op); break; case EVENT_MAPLOAD: case EVENT_MAPUNLOAD: case EVENT_MAPRESET: map = va_arg(args, mapstruct *); add_map_event(map, event_code, NULL); break; case EVENT_GKILL: { object *killer; op = va_arg(args, object *); killer = va_arg(args, object *); add_death(op, killer); } break; case EVENT_CLOCK: store_time(); break; } va_end(args); return rv; } /** * Plugin was initialized, now to finish. * * Registers events, initializes the database. * * @return * 0. */ CF_PLUGIN int postInitPlugin(void) { char path[500]; const char *dir; cf_log(llevInfo, "%s post init\n", PLUGIN_VERSION); dir = cf_get_directory(4); snprintf(path, sizeof(path), "%s/cflogger.db", dir); cf_log(llevDebug, " [%s] database file: %s\n", PLUGIN_NAME, path); if (sqlite3_open(path, &database) != SQLITE_OK) { cf_log(llevError, " [%s] database error!\n", PLUGIN_NAME); sqlite3_close(database); database = NULL; return 0; } check_tables(); store_time(); cf_system_register_global_event(EVENT_BORN, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_REMOVE, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_GKILL, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_LOGIN, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_LOGOUT, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_PLAYER_DEATH, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_MAPENTER, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_MAPLEAVE, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_MAPRESET, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_MAPLOAD, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_MAPUNLOAD, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_MUZZLE, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_KICK, PLUGIN_NAME, cflogger_globalEventListener); cf_system_register_global_event(EVENT_CLOCK, PLUGIN_NAME, cflogger_globalEventListener); return 0; } /** * Close the plugin. * * Closes the sqlite database. * * @return * 0. */ CF_PLUGIN int closePlugin(void) { cf_log(llevInfo, "%s closing.\n", PLUGIN_VERSION); if (database) { sqlite3_close(database); database = NULL; } return 0; } crossfire-1.70.0/plugins/cflogger/Makefile.in0000644000014500000120000005061511732537022016031 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cflogger DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) cflogger_la_DEPENDENCIES = am_cflogger_la_OBJECTS = cflogger.lo plugin_common.lo cflogger_la_OBJECTS = $(am_cflogger_la_OBJECTS) cflogger_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(cflogger_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_CFLOGGER_TRUE@am_cflogger_la_rpath = -rpath $(plugindir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(cflogger_la_SOURCES) DIST_SOURCES = $(cflogger_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(pkglibdir)/plugins noinst_HEADERS = include/cflogger.h include/cflogger_proto.h ../common/include/plugin_common.h @HAVE_CFLOGGER_FALSE@plugin_LTLIBRARIES = @HAVE_CFLOGGER_TRUE@plugin_LTLIBRARIES = cflogger.la cflogger_la_SOURCES = cflogger.c\ ../common/plugin_common.c cflogger_la_CPSOURCES = cflogger.c cflogger_la_LIBADD = -lsqlite3 cflogger_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cflogger/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cflogger/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done cflogger.la: $(cflogger_la_OBJECTS) $(cflogger_la_DEPENDENCIES) $(EXTRA_cflogger_la_DEPENDENCIES) $(cflogger_la_LINK) $(am_cflogger_la_rpath) $(cflogger_la_OBJECTS) $(cflogger_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cflogger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< plugin_common.lo: ../common/plugin_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT plugin_common.lo -MD -MP -MF $(DEPDIR)/plugin_common.Tpo -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/plugin_common.Tpo $(DEPDIR)/plugin_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/plugin_common.c' object='plugin_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pluginLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-pluginLTLIBRARIES proto: cproto -D__CEXTRACT__ -o include/cflogger_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cflogger_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cflogger_proto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/Makefile.in0000644000014500000120000004340211732537021014234 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = cfrhg citylife cfpython cfanim common cflogger cfnewspaper DISTCHECK_CONFIGURE_FLAGS = --localstatedir=$$dc_install_base/var --mandir=$$dc_install_base/man all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am proto: (cd cfpython; make proto; cd ..; cd cfanim; make proto) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/citylife/0000755000014500000120000000000011732537046014063 500000000000000crossfire-1.70.0/plugins/citylife/citylife.c0000644000014500000120000003536611731300517015762 00000000000000/*****************************************************************************/ /* Template for version 2.0 plugins. */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /** * @defgroup plugin_citylife City life plugin * This plugin adds random NPCs to town, and makes them enter houses, spawns new * ones. * * When a map is loaded, NPCs are randomly added so they appear already. During the * course of the server, some will enter houses (disappear), others will exit from * houses (appear on a house). * * For each map to be processed, two things are defined: * - spawn zones, where NPCs should be added when the map is loaded * - spawn points, from which to add new NPCs while the map is in memory. * Should probably be houses and such. * * NPCs use a key/value to prevent them from immediately entering the building * they exited. * * @todo * - define spawn points/zones for other towns * - vary NPCs based on time of day * - define "objectives" to go to * - make NPCs pause when player talks to them * * @{ */ /** * @file * This file is part of the @ref plugin_citylife "city life plugin". * See this page for more information. */ #include #include #ifndef __CEXTRACT__ #include #endif #include CF_PLUGIN char SvnRevPlugin[] = SVN_REV; CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr) { cf_init_plugin(gethooksptr); cf_log(llevDebug, PLUGIN_VERSION " init\n"); return 0; } CF_PLUGIN void *getPluginProperty(int *type, ...) { va_list args; const char *propname; int size; char *buf; va_start(args, type); propname = va_arg(args, const char *); if (!strcmp(propname, "Identification")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_NAME); return NULL; } else if (!strcmp(propname, "FullName")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_VERSION); return NULL; } va_end(args); return NULL; } CF_PLUGIN int citylife_runPluginCommand(object *op, char *params) { return -1; } /** Key to contain whether it's the first move of the NPC or not. */ #define FIRST_MOVE_KEY "citylife_first_move" /** * Point from which a NPC can come when the map is loaded. */ typedef struct { int x; int y; } spawn_point; /** * Zone in which to add NPCs when the map was just loaded. * NPC will be added in [sx, ex[ and [sy, ey[. */ typedef struct { int sx, sy, ex, ey; } spawn_zone; /** * Options for a map. */ typedef struct { const spawn_point *points; /**< Points to spawn from when there is a player on the map. */ int count_points; /**< How many items in points. */ const spawn_zone *zones; /**< Zones where to spawn at load time. */ int count_zones; /**< How many items in zones. */ int population; /**< Maximum of NPCs to add at load time. */ const char *mapname; /**< Map path. */ const char *const *available_archetypes; /**< What archetypes can we chose from for an NPC? */ int archetypes_count; /**< Number of items in available_archetypes. */ } mapzone; /*@}*/ /** * @defgroup citylife_scorn Scorn parameters * Parameters for the @ref plugin_citylife "City life" plugin for Scorn. * * The city is pretty rectangular, so quite easy to define large zones to add to. * @ingroup plugin_citylife */ /*@{*/ /** Zones for map 104_115. */ static const spawn_zone scorn_nw_zones[] = { { 40, 26, 50, 50 } }; /** Points for map 104_115. */ static const spawn_point scorn_nw_points[] = { { 41, 37 }, { 48, 35 }, { 49, 40 }, { 47, 22 }, { 49, 37 } }; /** Zones for map 105_115. */ static const spawn_zone scorn_ne_zones[] = { { 0, 26, 22, 50 } }; /** Points for map 105_115. */ static const spawn_point scorn_ne_points[] = { { 15, 42 }, { 9, 35 }, { 15, 29 }, { 1, 25 }, { 1, 29 } }; /** Zones for map 104_116. */ static const spawn_zone scorn_sw_zones[] = { { 41, 0, 50, 10 } }; /** Points for map 104_116. */ static const spawn_point scorn_sw_points[] = { { 41, 2 }, { 46, 8 }, { 42, 8 } }; /** Zones for map 105_116. */ static const spawn_zone scorn_se_zones[] = { { 0, 0, 13, 10 } }; /** Points for map 105_116. */ static const spawn_point scorn_se_points[] = { { 2, 8 }, { 11, 8 }, { 8, 1 }, { 5, 8 } }; /** Archetypes to spawn in Scorn. */ static const char *const scorn_archs[] = { "c_man", "c_woman", "child", "farmer", "fatman", "fatwoman", "guard", "knight", "man", "nun", "sage", "woman" }; /*@}*/ /** @ingroup plugin_citylife @{*/ /** * All maps we work on. */ static const mapzone available_zones[] = { { scorn_nw_points, 5, scorn_nw_zones, 1, 2, "/world/world_104_115", scorn_archs, 12 }, { scorn_ne_points, 1, scorn_ne_zones, 1, 5, "/world/world_105_115", scorn_archs, 12 }, { scorn_sw_points, 3, scorn_sw_zones, 1, 5, "/world/world_104_116", scorn_archs, 12 }, { scorn_se_points, 1, scorn_se_zones, 1, 5, "/world/world_105_116", scorn_archs, 12 }, { NULL, -1, NULL, -1, 1, "", NULL, 0 }, }; /** * Finds if a map has a zone defined. * * @param map * candidat map. * @return * map zone, NULL if not defined. */ static const mapzone *get_zone_for_map(mapstruct *map) { int test; for (test = 0; available_zones[test].count_points != -1; test++) { if (strcmp(available_zones[test].mapname, map->path) == 0) return &available_zones[test]; } return NULL; } /** * Creates a NPC for the specified zone, and do needed initialization. * @param zone * what NPCs to create. * @return * new NPC, with event handled for time. NULL if invalid archetype in the zone. */ static object *get_npc(const mapzone *zone) { int arch = RANDOM()%zone->archetypes_count; object *npc = cf_create_object_by_name(zone->available_archetypes[arch]); object *evt; if (!npc) { cf_log(llevError, PLUGIN_NAME ": get_npc() got NULL object for %s!\n", zone->available_archetypes[arch]); return NULL; } cf_object_set_flag(npc, FLAG_RANDOM_MOVE, 1); /* Prevent disease spreading in Scorn, mostly rabies. */ cf_object_set_flag(npc, FLAG_UNDEAD, 1); /* add a key so NPC will not disappear in the house it came from */ cf_object_set_key(npc, FIRST_MOVE_KEY, "1", 1); evt = cf_create_object_by_name("event_time"); evt->slaying = cf_add_string(PLUGIN_NAME); evt->title = cf_add_string(PLUGIN_NAME); cf_object_insert_object(evt, npc); return npc; } /** * Add an NPC somewhere in a spawn zone. * @param zone * map zone definition from which to get a spawn zone. * @param map * map to insert into. */ static void add_npc_to_zone(const mapzone *zone, mapstruct *map) { int which; object *npc = get_npc(zone); if (!npc) return; which = RANDOM()%zone->count_zones; if (cf_object_teleport(npc, map, zone->zones[which].sx+RANDOM()%(zone->zones[which].ex-zone->zones[which].sx), zone->zones[which].sy+RANDOM()%(zone->zones[which].ey-zone->zones[which].sy))) { cf_object_free_drop_inventory(npc); } } /** * Add an NPC somewhere at a spawn point. * @param zone * map zone definition from which to get a spawn point. * @param map * map to insert into. */ static void add_npc_to_point(const mapzone *zone, mapstruct *map) { int which; object *npc = get_npc(zone); which = RANDOM()%zone->count_points; if (cf_object_teleport(npc, map, zone->points[which].x, zone->points[which].y)) { cf_object_free_drop_inventory(npc); } } /** * Add some NPCs to the map, based on the zone definition. * @param map * map to add to. */ static void add_npcs_to_map(mapstruct *map) { int add; const mapzone *zone = get_zone_for_map(map); if (!zone) return; add = 1+RANDOM()%zone->population; cf_log(llevDebug, PLUGIN_NAME ": adding %d NPC to map %s.\n", add, map->path); while (add-- >= 0) { add_npc_to_zone(zone, map); } } /** * Find a suitable map loaded and add an NPC to it. */ static void add_npc_to_random_map(void) { int count, test; mapstruct *list[50]; int zones[50]; count = 0; cf_log(llevDebug, PLUGIN_NAME ": adding NPC to random map.\n"); for (test = 0; available_zones[test].count_points != -1 && count < 50; test++) { if ((list[count] = cf_map_has_been_loaded(available_zones[test].mapname)) && (list[count]->in_memory == MAP_IN_MEMORY)) { zones[count] = test; count++; } } if (!count) return; test = RANDOM()%count; add_npc_to_point(&available_zones[zones[test]], list[test]); } CF_PLUGIN int citylife_globalEventListener(int *type, ...) { va_list args; int rv = 0; mapstruct *map; int code; va_start(args, type); code = va_arg(args, int); switch (code) { case EVENT_MAPLOAD: map = va_arg(args, mapstruct *); add_npcs_to_map(map); break; case EVENT_CLOCK: if (RANDOM()%40 == 0) add_npc_to_random_map(); } va_end(args); return rv; } CF_PLUGIN int postInitPlugin(void) { cf_log(llevDebug, PLUGIN_VERSION " post init\n"); /* Pick the global events you want to monitor from this plugin */ /* cf_system_register_global_event(EVENT_BORN, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_CRASH, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_PLAYER_DEATH, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_GKILL, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_LOGIN, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_LOGOUT, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_MAPENTER, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_MAPLEAVE, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_MAPRESET, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_REMOVE, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_SHOUT, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_TELL, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_MUZZLE, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_KICK, PLUGIN_NAME, citylife_globalEventListener); */ cf_system_register_global_event(EVENT_CLOCK, PLUGIN_NAME, citylife_globalEventListener); cf_system_register_global_event(EVENT_MAPLOAD, PLUGIN_NAME, citylife_globalEventListener); /* cf_system_register_global_event(EVENT_MAPRESET, PLUGIN_NAME, citylife_globalEventListener); */ return 0; } CF_PLUGIN int eventListener(int *type, ...) { int rv = 1; va_list args; /*char *buf;*/ object *ground, *who/*, *activator, *third, *event*/; /*int fix;*/ const char *value; va_start(args, type); who = va_arg(args, object *); /*activator =*/ va_arg(args, object *); /*third =*/ va_arg(args, object *); /*buf =*/ va_arg(args, char *); /*fix =*/ va_arg(args, int); /*event =*/ va_arg(args, object *); va_arg(args, talk_info *); /* ignored for now */ va_end(args); /* should our npc disappear? */ if (RANDOM()%100 < 30) { for (ground = cf_map_get_object_at(who->map, who->x, who->y); ground; ground = cf_object_get_object_property(ground, CFAPI_OBJECT_PROP_OB_ABOVE)) { if (ground->type == EXIT) { object *inv; value = cf_object_get_key(who, FIRST_MOVE_KEY); if (strcmp(value, "1") == 0) { cf_object_set_key(who, FIRST_MOVE_KEY, "0", 1); break; } /* must set inventory as no drop, else it'll just drop on the ground */ for (inv = cf_object_get_object_property(who, CFAPI_OBJECT_PROP_INVENTORY); inv; inv = cf_object_get_object_property(inv, CFAPI_OBJECT_PROP_OB_BELOW)) cf_object_set_flag(inv, FLAG_NO_DROP, 1); cf_log(llevDebug, PLUGIN_NAME ": NPC entering building.\n"); cf_object_remove(who); cf_object_free_drop_inventory(who); return rv; } } } /* we have to move manually, because during the night NPCs don't move. */ cf_object_move(who, 1+RANDOM()%8, NULL); return rv; } CF_PLUGIN int closePlugin(void) { cf_log(llevDebug, PLUGIN_VERSION " closing\n"); return 0; } /*@}*/ crossfire-1.70.0/plugins/citylife/Makefile.am0000644000014500000120000000305511731300517016030 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net SUBDIRS = include plugindir=$(pkglibdir)/plugins noinst_HEADERS = include/citylife.h ../common/include/plugin_common.h plugin_LTLIBRARIES = citylife.la citylife_la_SOURCES = citylife.c\ ../common/plugin_common.c citylife_la_LIBADD = citylife_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include proto: cproto -D__CEXTRACT__ -o include/citylife_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/citylife_proto.h crossfire-1.70.0/plugins/citylife/include/0000755000014500000120000000000011732537046015506 500000000000000crossfire-1.70.0/plugins/citylife/include/Makefile.am0000644000014500000120000000005611731300516017450 00000000000000noinst_HEADERS = citylife_proto.h citylife.h crossfire-1.70.0/plugins/citylife/include/citylife_proto.h0000644000014500000120000000046711731300516020626 00000000000000/* citylife.c */ int initPlugin(const char *iversion, f_plug_api gethooksptr); void *getPluginProperty(int *type, ...); int citylife_runPluginCommand(object *op, char *params); int citylife_globalEventListener(int *type, ...); int postInitPlugin(void); int eventListener(int *type, ...); int closePlugin(void); crossfire-1.70.0/plugins/citylife/include/Makefile.in0000644000014500000120000003054611732537022017475 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/citylife/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = citylife_proto.h citylife.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/citylife/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/citylife/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/citylife/include/citylife.h0000644000014500000120000000517611731300516017405 00000000000000/*****************************************************************************/ /* Template for version 2.0 plugins. */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef PLUGIN_citylife_H #define PLUGIN_citylife_H #define PLUGIN_NAME "citylife" #define PLUGIN_VERSION "City life version 0.2" #ifndef __CEXTRACT__ #include #endif #undef MODULEAPI #ifdef WIN32 # ifdef PYTHON_PLUGIN_EXPORTS # define MODULEAPI __declspec(dllexport) # else # define MODULEAPI __declspec(dllimport) # endif #else #ifdef HAVE_VISIBILITY # define MODULEAPI __attribute__((visibility("default"))) #else # define MODULEAPI #endif #endif #include #endif /* PLUGIN_citylife_H */ crossfire-1.70.0/plugins/citylife/Makefile.in0000644000014500000120000006304011732537022016045 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/citylife DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) citylife_la_DEPENDENCIES = am_citylife_la_OBJECTS = citylife.lo plugin_common.lo citylife_la_OBJECTS = $(am_citylife_la_OBJECTS) citylife_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(citylife_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(citylife_la_SOURCES) DIST_SOURCES = $(citylife_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = include plugindir = $(pkglibdir)/plugins noinst_HEADERS = include/citylife.h ../common/include/plugin_common.h plugin_LTLIBRARIES = citylife.la citylife_la_SOURCES = citylife.c\ ../common/plugin_common.c citylife_la_LIBADD = citylife_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/../common/include -I$(top_srcdir)/include all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/citylife/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/citylife/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done citylife.la: $(citylife_la_OBJECTS) $(citylife_la_DEPENDENCIES) $(EXTRA_citylife_la_DEPENDENCIES) $(citylife_la_LINK) -rpath $(plugindir) $(citylife_la_OBJECTS) $(citylife_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/citylife.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< plugin_common.lo: ../common/plugin_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT plugin_common.lo -MD -MP -MF $(DEPDIR)/plugin_common.Tpo -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/plugin_common.Tpo $(DEPDIR)/plugin_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/plugin_common.c' object='plugin_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-pluginLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pluginLTLIBRARIES proto: cproto -D__CEXTRACT__ -o include/citylife_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/citylife_proto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfpython/0000755000014500000120000000000011732537046014105 500000000000000crossfire-1.70.0/plugins/cfpython/cfpython_party.c0000644000014500000120000001115111731300520017221 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include static PyObject *Crossfire_Party_GetName(Crossfire_Party *partyptr, void *closure) { return Py_BuildValue("s", cf_party_get_name(partyptr->party)); } static PyObject *Crossfire_Party_GetPassword(Crossfire_Party *partyptr, void *closure) { return Py_BuildValue("s", cf_party_get_password(partyptr->party)); } static PyObject *Crossfire_Party_GetNext(Crossfire_Party *party, void *closure) { return Crossfire_Party_wrap(cf_party_get_next(party->party)); } static PyObject *Crossfire_Party_GetPlayers(Crossfire_Party *party, PyObject *args) { PyObject *list; player *pl; list = PyList_New(0); pl = cf_party_get_first_player(party->party); while (pl) { PyList_Append(list, Crossfire_Object_wrap(pl->ob)); pl = cf_party_get_next_player(party->party, pl); } return list; } PyObject *Crossfire_Party_wrap(partylist *what) { Crossfire_Party *wrapper; /* return None if no object was to be wrapped */ if (what == NULL) { Py_INCREF(Py_None); return Py_None; } wrapper = PyObject_NEW(Crossfire_Party, &Crossfire_PartyType); if (wrapper != NULL) wrapper->party = what; return (PyObject *)wrapper; } static int Crossfire_Party_InternalCompare(Crossfire_Party *left, Crossfire_Party *right) { return (left->party < right->party ? -1 : (left->party == right->party ? 0 : 1)); } static PyObject *Crossfire_Party_RichCompare(Crossfire_Party *left, Crossfire_Party *right, int op) { int result; if (!left || !right || !PyObject_TypeCheck((PyObject*)left, &Crossfire_PartyType) || !PyObject_TypeCheck((PyObject*)right, &Crossfire_PartyType)) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } result = Crossfire_Party_InternalCompare(left, right); /* Based on how Python 3.0 (GPL compatible) implements it for internal types: */ switch (op) { case Py_EQ: result = (result == 0); break; case Py_NE: result = (result != 0); break; case Py_LE: result = (result <= 0); break; case Py_GE: result = (result >= 0); break; case Py_LT: result = (result == -1); break; case Py_GT: result = (result == 1); break; } return PyBool_FromLong(result); } crossfire-1.70.0/plugins/cfpython/include/0000755000014500000120000000000011732537046015530 500000000000000crossfire-1.70.0/plugins/cfpython/include/cfpython_object.h0000644000014500000120000000675311731300517021002 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef CFPYTHON_OBJECT_H #define CFPYTHON_OBJECT_H typedef struct { PyObject_HEAD object *obj; tag_t count; } Crossfire_Object; extern PyTypeObject Crossfire_ObjectType; typedef struct { PyObject_HEAD object *obj; tag_t count; } Crossfire_Player; extern PyTypeObject Crossfire_PlayerType; #define EXISTCHECK(ob) { \ if (!ob || !ob->obj || (object_was_destroyed(ob->obj, ob->obj->count))) { \ PyErr_SetString(PyExc_ReferenceError, "Crossfire object no longer exists"); \ return NULL; \ } } /** * This is meant to be used for parameters where you don't know if the type of * the object is correct. It should NOT be used for the self pointer, since that * will always be a compatible type. */ #define TYPEEXISTCHECK(ob) { \ if (!ob || !PyObject_TypeCheck((PyObject*)ob, &Crossfire_ObjectType) || !ob->obj || (object_was_destroyed(ob->obj, ob->obj->count))) { \ PyErr_SetString(PyExc_ReferenceError, "Not a Crossfire object or Crossfire object no longer exists"); \ return NULL; \ } } #define EXISTCHECK_INT(ob) { \ if (!ob || !ob->obj || (object_was_destroyed(ob->obj, ob->obj->count))) { \ PyErr_SetString(PyExc_ReferenceError, "Crossfire object no longer exists"); \ return -1; \ } } #endif /* CFPYTHON_OBJECT_H */ crossfire-1.70.0/plugins/cfpython/include/cfpython_proto.h0000644000014500000120000000154411731300517020670 00000000000000/* cfpython.c */ CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr); CF_PLUGIN void *getPluginProperty(int *type, ...); CF_PLUGIN void cfpython_runPluginCommand(object *op, const char *params); CF_PLUGIN int postInitPlugin(void); CF_PLUGIN int cfpython_globalEventListener(int *type, ...); CF_PLUGIN int eventListener(int *type, ...); CF_PLUGIN int closePlugin(void); /* cfpython_archetype.c */ PyObject *Crossfire_Archetype_wrap(archetype *what); /* cfpython_object.c */ void init_object_assoc_table(void); PyObject *Crossfire_Object_wrap(object *what); /* cfpython_party.c */ PyObject *Crossfire_Party_wrap(partylist *what); /* cfpython_region.c */ PyObject *Crossfire_Region_wrap(region *what); /* cfpython_map.c */ void init_map_assoc_table(void); void Handle_Map_Unload_Hook(Crossfire_Map *map); PyObject *Crossfire_Map_wrap(mapstruct *what); crossfire-1.70.0/plugins/cfpython/include/cfpython_map.h0000644000014500000120000000550211731300517020300 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef CFPYTHON_MAP_H #define CFPYTHON_MAP_H typedef struct { PyObject_HEAD mapstruct *map; int valid; } Crossfire_Map; extern PyTypeObject Crossfire_MapType; #define MAPEXISTCHECK(map) { \ if (!(map) || ((map)->valid == 0)) { \ PyErr_SetString(PyExc_ReferenceError, "Crossfire map no longer exists"); \ return NULL; \ } \ } #define MAPEXISTCHECK_INT(map) { \ if (!(map) || ((map)->valid == 0)) { \ PyErr_SetString(PyExc_ReferenceError, "Crossfire map no longer exists"); \ return -1; \ } \ } extern PyObject *Crossfire_Map_wrap(mapstruct *what); #endif /* CFPYTHON_MAP_H */ crossfire-1.70.0/plugins/cfpython/include/cfpython_region_private.h0000644000014500000120000001010711731300517022535 00000000000000static PyObject *Crossfire_Region_GetName(Crossfire_Region *whoptr, void *closure); static PyObject *Crossfire_Region_GetLongname(Crossfire_Region *whoptr, void *closure); static PyObject *Crossfire_Region_GetMessage(Crossfire_Region *whoptr, void *closure); static PyObject *Crossfire_Region_GetNext(Crossfire_Region *who, void *closure); static PyObject *Crossfire_Region_GetParent(Crossfire_Region *who, PyObject *args); static PyObject *Crossfire_Region_GetJailX(Crossfire_Region *who, void *closure); static PyObject *Crossfire_Region_GetJailY(Crossfire_Region *who, void *closure); static PyObject *Crossfire_Region_GetJailPath(Crossfire_Region *who, void *closure); static int Crossfire_Region_InternalCompare(Crossfire_Region *left, Crossfire_Region *right); static PyObject *Crossfire_Region_RichCompare(Crossfire_Region *left, Crossfire_Region *right, int op); static PyGetSetDef Region_getseters[] = { { "Name", (getter)Crossfire_Region_GetName, NULL, NULL, NULL }, { "Longname", (getter)Crossfire_Region_GetLongname, NULL, NULL, NULL }, { "Message", (getter)Crossfire_Region_GetMessage, NULL, NULL, NULL }, { "Next", (getter)Crossfire_Region_GetNext, NULL, NULL, NULL }, { "JailX", (getter)Crossfire_Region_GetJailX, NULL, NULL, NULL }, { "JailY", (getter)Crossfire_Region_GetJailY, NULL, NULL, NULL }, { "JailPath", (getter)Crossfire_Region_GetJailPath, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; static PyMethodDef RegionMethods[] = { { "GetParent", (PyCFunction)Crossfire_Region_GetParent, METH_NOARGS, NULL }, { NULL, NULL, 0, NULL } }; /* Our actual Python ArchetypeType */ PyTypeObject Crossfire_RegionType = { #ifdef IS_PY3K /* See http://bugs.python.org/issue4385 */ PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ #endif "Crossfire.Region", /* tp_name*/ sizeof(Crossfire_Region), /* tp_basicsize*/ 0, /* tp_itemsize*/ NULL, /* tp_dealloc*/ NULL, /* tp_print*/ NULL, /* tp_getattr*/ NULL, /* tp_setattr*/ #ifdef IS_PY3K NULL, /* tp_reserved */ #else (cmpfunc)Crossfire_Region_InternalCompare, /* tp_compare*/ #endif NULL, /* tp_repr*/ NULL, /* tp_as_number*/ NULL, /* tp_as_sequence*/ NULL, /* tp_as_mapping*/ PyObject_HashNotImplemented, /* tp_hash */ NULL, /* tp_call*/ NULL, /* tp_str*/ PyObject_GenericGetAttr, /* tp_getattro*/ PyObject_GenericSetAttr, /* tp_setattro*/ NULL, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags*/ "Crossfire regions", /* tp_doc */ NULL, /* tp_traverse */ NULL, /* tp_clear */ (richcmpfunc)Crossfire_Region_RichCompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ NULL, /* tp_iter */ NULL, /* tp_iternext */ RegionMethods, /* tp_methods */ NULL, /* tp_members */ Region_getseters, /* tp_getset */ NULL, /* tp_base */ NULL, /* tp_dict */ NULL, /* tp_descr_get */ NULL, /* tp_descr_set */ 0, /* tp_dictoffset */ NULL, /* tp_init */ NULL, /* tp_alloc */ NULL, /* tp_new */ NULL, /* tp_free */ NULL, /* tp_is_gc */ NULL, /* tp_bases */ NULL, /* tp_mro */ NULL, /* tp_cache */ NULL, /* tp_subclasses */ NULL, /* tp_weaklist */ NULL, /* tp_del */ }; crossfire-1.70.0/plugins/cfpython/include/cfpython_map_private.h0000644000014500000120000002736511731300517022045 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ static PyObject *Map_GetDifficulty(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetPath(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetTempName(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetName(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetResetTime(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetResetTimeout(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetPlayers(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetDarkness(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetWidth(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetHeight(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetEnterX(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetEnterY(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetMessage(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetRegion(Crossfire_Map *whoptr, void *closure); static PyObject *Map_GetUnique(Crossfire_Map *whoptr, void *closure); static int Map_SetPath(Crossfire_Map *whoptr, PyObject *value, void *closure); static PyObject *Map_Message(Crossfire_Map *map, PyObject *args); static PyObject *Map_GetFirstObjectAt(Crossfire_Map *map, PyObject *args); static PyObject *Map_CreateObject(Crossfire_Map *map, PyObject *args); static PyObject *Map_Check(Crossfire_Map *map, PyObject *args); static PyObject *Map_Next(Crossfire_Map *map, PyObject *args); static PyObject *Map_Insert(Crossfire_Map *map, PyObject *args); static PyObject *Map_InsertAround(Crossfire_Map *map, PyObject *args); static PyObject *Map_ChangeLight(Crossfire_Map *map, PyObject *args); static PyObject *Map_TriggerConnected(Crossfire_Map *map, PyObject *args); static int Map_InternalCompare(Crossfire_Map *left, Crossfire_Map *right); static PyObject *Crossfire_Map_RichCompare(Crossfire_Map *left, Crossfire_Map *right, int op); static PyObject *Crossfire_Map_Long(PyObject *obj); #ifndef IS_PY3K static PyObject *Crossfire_Map_Int(PyObject *obj); #endif static void Crossfire_Map_dealloc(PyObject *obj); static PyObject *Crossfire_Map_new(PyTypeObject *type, PyObject *args, PyObject *kwds); /* Python binding */ static PyGetSetDef Map_getseters[] = { { "Difficulty", (getter)Map_GetDifficulty, NULL, NULL, NULL }, { "Path", (getter)Map_GetPath, (setter)Map_SetPath, NULL, NULL }, { "TempName", (getter)Map_GetTempName, NULL, NULL, NULL }, { "Name", (getter)Map_GetName, NULL, NULL, NULL }, { "ResetTime", (getter)Map_GetResetTime, NULL, NULL, NULL }, { "ResetTimeout", (getter)Map_GetResetTimeout, NULL, NULL, NULL }, { "Players", (getter)Map_GetPlayers, NULL, NULL, NULL }, { "Light", (getter)Map_GetDarkness, NULL, NULL, NULL }, { "Darkness", (getter)Map_GetDarkness, NULL, NULL, NULL }, { "Width", (getter)Map_GetWidth, NULL, NULL, NULL }, { "Height", (getter)Map_GetHeight, NULL, NULL, NULL }, { "EnterX", (getter)Map_GetEnterX, NULL, NULL, NULL }, { "EnterY", (getter)Map_GetEnterY, NULL, NULL, NULL }, { "Message", (getter)Map_GetMessage, NULL, NULL, NULL }, { "Region", (getter)Map_GetRegion, NULL, NULL, NULL }, { "Unique", (getter)Map_GetUnique, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; static PyMethodDef MapMethods[] = { { "Print", (PyCFunction)Map_Message, METH_VARARGS, NULL }, { "ObjectAt", (PyCFunction)Map_GetFirstObjectAt, METH_VARARGS, NULL }, { "CreateObject", (PyCFunction)Map_CreateObject, METH_VARARGS, NULL }, { "Check", (PyCFunction)Map_Check, METH_VARARGS, NULL }, { "Next", (PyCFunction)Map_Next, METH_NOARGS, NULL }, { "Insert", (PyCFunction)Map_Insert, METH_VARARGS, NULL }, { "InsertAround", (PyCFunction)Map_InsertAround, METH_VARARGS, NULL }, { "ChangeLight", (PyCFunction)Map_ChangeLight, METH_VARARGS, NULL }, { "TriggerConnected", (PyCFunction)Map_TriggerConnected, METH_VARARGS, NULL }, { NULL, NULL, 0, NULL } }; static PyNumberMethods MapConvert = { NULL, /* binaryfunc nb_add; */ /* __add__ */ NULL, /* binaryfunc nb_subtract; */ /* __sub__ */ NULL, /* binaryfunc nb_multiply; */ /* __mul__ */ #ifndef IS_PY3K NULL, /* binaryfunc nb_divide; */ /* __div__ */ #endif NULL, /* binaryfunc nb_remainder; */ /* __mod__ */ NULL, /* binaryfunc nb_divmod; */ /* __divmod__ */ NULL, /* ternaryfunc nb_power; */ /* __pow__ */ NULL, /* unaryfunc nb_negative; */ /* __neg__ */ NULL, /* unaryfunc nb_positive; */ /* __pos__ */ NULL, /* unaryfunc nb_absolute; */ /* __abs__ */ #ifdef IS_PY3K NULL, /* inquiry nb_bool; */ /* __bool__ */ #else NULL, /* inquiry nb_nonzero; */ /* __nonzero__ */ #endif NULL, /* unaryfunc nb_invert; */ /* __invert__ */ NULL, /* binaryfunc nb_lshift; */ /* __lshift__ */ NULL, /* binaryfunc nb_rshift; */ /* __rshift__ */ NULL, /* binaryfunc nb_and; */ /* __and__ */ NULL, /* binaryfunc nb_xor; */ /* __xor__ */ NULL, /* binaryfunc nb_or; */ /* __or__ */ #ifndef IS_PY3K NULL, /* coercion nb_coerce; */ /* __coerce__ */ #endif #ifdef IS_PY3K /* This is not a typo. For Py3k it should be Crossfire_Map_Long * and NOT Crossfire_Map_Int. */ Crossfire_Map_Long, /* unaryfunc nb_int; */ /* __int__ */ NULL, /* void *nb_reserved; */ #else Crossfire_Map_Int, /* unaryfunc nb_int; */ /* __int__ */ Crossfire_Map_Long, /* unaryfunc nb_long; */ /* __long__ */ #endif NULL, /* unaryfunc nb_float; */ /* __float__ */ #ifndef IS_PY3K NULL, /* unaryfunc nb_oct; */ /* __oct__ */ NULL, /* unaryfunc nb_hex; */ /* __hex__ */ #endif NULL, /* binaryfunc nb_inplace_add; */ NULL, /* binaryfunc nb_inplace_subtract; */ NULL, /* binaryfunc nb_inplace_multiply; */ #ifndef IS_PY3K NULL, /* binaryfunc nb_inplace_divide; */ #endif NULL, /* binaryfunc nb_inplace_remainder; */ NULL, /* ternaryfunc nb_inplace_power; */ NULL, /* binaryfunc nb_inplace_lshift; */ NULL, /* binaryfunc nb_inplace_rshift; */ NULL, /* binaryfunc nb_inplace_and; */ NULL, /* binaryfunc nb_inplace_xor; */ NULL, /* binaryfunc nb_inplace_or; */ NULL, /* binaryfunc nb_floor_divide; */ NULL, /* binaryfunc nb_true_divide; */ NULL, /* binaryfunc nb_inplace_floor_divide; */ NULL, /* binaryfunc nb_inplace_true_divide; */ #if defined(IS_PY25) || defined(IS_PY3K) NULL /* unaryfunc nb_index; */ #endif }; /* Our actual Python MapType */ PyTypeObject Crossfire_MapType = { #ifdef IS_PY3K /* See http://bugs.python.org/issue4385 */ PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ #endif "Crossfire.Map", /* tp_name*/ sizeof(Crossfire_Map), /* tp_basicsize*/ 0, /* tp_itemsize*/ Crossfire_Map_dealloc, /* tp_dealloc*/ NULL, /* tp_print*/ NULL, /* tp_getattr*/ NULL, /* tp_setattr*/ #ifdef IS_PY3K NULL, /* tp_reserved */ #else (cmpfunc)Map_InternalCompare, /* tp_compare*/ #endif NULL, /* tp_repr*/ &MapConvert, /* tp_as_number*/ NULL, /* tp_as_sequence*/ NULL, /* tp_as_mapping*/ PyObject_HashNotImplemented, /* tp_hash */ NULL, /* tp_call*/ NULL, /* tp_str*/ PyObject_GenericGetAttr, /* tp_getattro*/ PyObject_GenericSetAttr, /* tp_setattro*/ NULL, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags*/ "Crossfire maps", /* tp_doc */ NULL, /* tp_traverse */ NULL, /* tp_clear */ (richcmpfunc)Crossfire_Map_RichCompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ NULL, /* tp_iter */ NULL, /* tp_iternext */ MapMethods, /* tp_methods */ NULL, /* tp_members */ Map_getseters, /* tp_getset */ NULL, /* tp_base */ NULL, /* tp_dict */ NULL, /* tp_descr_get */ NULL, /* tp_descr_set */ 0, /* tp_dictoffset */ NULL, /* tp_init */ NULL, /* tp_alloc */ Crossfire_Map_new, /* tp_new */ NULL, /* tp_free */ NULL, /* tp_is_gc */ NULL, /* tp_bases */ NULL, /* tp_mro */ NULL, /* tp_cache */ NULL, /* tp_subclasses */ NULL, /* tp_weaklist */ NULL, /* tp_del */ }; crossfire-1.70.0/plugins/cfpython/include/Makefile.in0000644000014500000120000003122111732537022017506 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfpython/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = \ cfpython.h cfpython_object_private.h \ cfpython_archetype.h cfpython_party.h \ cfpython_archetype_private.h cfpython_party_private.h \ cfpython_map.h cfpython_proto.h \ cfpython_map_private.h cfpython_region.h \ cfpython_object.h cfpython_region_private.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfpython/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfpython/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfpython/include/cfpython_archetype.h0000644000014500000120000000473111731300517021512 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef CFPYTHON_ARCHETYPE_H #define CFPYTHON_ARCHETYPE_H typedef struct { PyObject_HEAD archetype *arch; } Crossfire_Archetype; extern PyTypeObject Crossfire_ArchetypeType; extern PyObject *Crossfire_Archetype_wrap(archetype *what); #endif /* CFPYTHON_ARCHETYPE_H */ crossfire-1.70.0/plugins/cfpython/include/cfpython_party.h0000644000014500000120000000470211731300517020663 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef CFPYTHON_PARTY_H #define CFPYTHON_PARTY_H typedef struct { PyObject_HEAD partylist *party; } Crossfire_Party; extern PyTypeObject Crossfire_PartyType; extern PyObject *Crossfire_Party_wrap(partylist *what); #endif /* CFPYTHON_PARTY_H */ crossfire-1.70.0/plugins/cfpython/include/cfpython_party_private.h0000644000014500000120000000664411731300517022424 00000000000000static PyObject *Crossfire_Party_GetName(Crossfire_Party *whoptr, void *closure); static PyObject *Crossfire_Party_GetPassword(Crossfire_Party *whoptr, void *closure); static PyObject *Crossfire_Party_GetNext(Crossfire_Party *who, void *closure); static PyObject *Crossfire_Party_GetPlayers(Crossfire_Party *who, PyObject *args); static int Crossfire_Party_InternalCompare(Crossfire_Party *left, Crossfire_Party *right); static PyObject *Crossfire_Party_RichCompare(Crossfire_Party *left, Crossfire_Party *right, int op); static PyGetSetDef Party_getseters[] = { { "Name", (getter)Crossfire_Party_GetName, NULL, NULL, NULL }, { "Password", (getter)Crossfire_Party_GetPassword, NULL, NULL, NULL }, { "Next", (getter)Crossfire_Party_GetNext, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; static PyMethodDef PartyMethods[] = { { "GetPlayers", (PyCFunction)Crossfire_Party_GetPlayers, METH_NOARGS, NULL }, { NULL, NULL, 0, NULL } }; /* Our actual Python ArchetypeType */ PyTypeObject Crossfire_PartyType = { #ifdef IS_PY3K /* See http://bugs.python.org/issue4385 */ PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ #endif "Crossfire.Party", /* tp_name*/ sizeof(Crossfire_Party), /* tp_basicsize*/ 0, /* tp_itemsize*/ NULL, /* tp_dealloc*/ NULL, /* tp_print*/ NULL, /* tp_getattr*/ NULL, /* tp_setattr*/ #ifdef IS_PY3K NULL, /* tp_reserved */ #else (cmpfunc)Crossfire_Party_InternalCompare, /* tp_compare*/ #endif NULL, /* tp_repr*/ NULL, /* tp_as_number*/ NULL, /* tp_as_sequence*/ NULL, /* tp_as_mapping*/ PyObject_HashNotImplemented, /* tp_hash */ NULL, /* tp_call*/ NULL, /* tp_str*/ PyObject_GenericGetAttr, /* tp_getattro*/ PyObject_GenericSetAttr, /* tp_setattro*/ NULL, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags*/ "Crossfire parties", /* tp_doc */ NULL, /* tp_traverse */ NULL, /* tp_clear */ (richcmpfunc)Crossfire_Party_RichCompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ NULL, /* tp_iter */ NULL, /* tp_iternext */ PartyMethods, /* tp_methods */ NULL, /* tp_members */ Party_getseters, /* tp_getset */ NULL, /* tp_base */ NULL, /* tp_dict */ NULL, /* tp_descr_get */ NULL, /* tp_descr_set */ 0, /* tp_dictoffset */ NULL, /* tp_init */ NULL, /* tp_alloc */ NULL, /* tp_new */ NULL, /* tp_free */ NULL, /* tp_is_gc */ NULL, /* tp_bases */ NULL, /* tp_mro */ NULL, /* tp_cache */ NULL, /* tp_subclasses */ NULL, /* tp_weaklist */ NULL, /* tp_del */ }; crossfire-1.70.0/plugins/cfpython/include/cfpython_object_private.h0000644000014500000120000014111111731300517022520 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ static PyObject *Object_GetName(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetNamePl(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetTitle(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetRace(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMap(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCha(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCon(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetDex(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetInt(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetPow(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetStr(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetWis(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetHP(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMaxHP(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSP(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMaxSP(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetGrace(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMaxGrace(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetFood(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAC(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetWC(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetDam(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetLuck(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMessage(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSkill(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetExp(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetPermExp(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetExpMul(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSlaying(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCursed(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetDamned(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetWeight(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetWeightLimit(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAbove(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetBelow(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetInventory(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetX(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetY(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetDirection(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetFacing(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetUnaggressive(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetGod(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetPickable(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetQuantity(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetInvisible(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSpeed(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSpeedLeft(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetLastSP(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetLastGrace(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetLastEat(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetLevel(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetFace(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAnim(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAnimSpeed(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAttackType(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetBeenApplied(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetIdentified(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAlive(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetDM(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetWasDM(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetApplied(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetUnpaid(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMonster(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetFriendly(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetGenerator(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetThrown(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanSeeInvisible(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetRollable(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetTurnable(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetUsedUp(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSplitting(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetBlind(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseSkill(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetKnownCursed(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetStealthy(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetConfused(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSleeping(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetLifesaver(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetFloor(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetHasXRays(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseRing(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseBow(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseWand(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanSeeInDark(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetKnownMagical(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseWeapon(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseArmour(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanUseScroll(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCanCastSpell(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetReflectSpells(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetReflectMissiles(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetUnique(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetRunAway(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetScared(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetUndead(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetBlocksView(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetHitBack(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetStandStill(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetOnlyAttack(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMakeInvisible(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoney(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetType(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetSubtype(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetValue(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetArchName(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetArchetype(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetNoSave(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetExists(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetEnv(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveType(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveBlock(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveAllow(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveOn(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveOff(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveSlow(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetMoveSlowPenalty(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetOwner(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetEnemy(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetCount(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetGodGiven(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetIsPet(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAttackMovement(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetDuration(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetGlowRadius(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetAnimated(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetNoDamage(Crossfire_Object *whoptr, void *closure); static PyObject *Object_GetRandomMovement(Crossfire_Object *whoptr, void *closure); static int Object_SetMessage(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetExp(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetName(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetNamePl(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetTitle(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetRace(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetMap(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetSlaying(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetSkill(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetCursed(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetDamned(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetApplied(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetStr(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetDex(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetCon(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetInt(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetPow(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetWis(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetCha(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetHP(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetMaxHP(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetSP(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetMaxSP(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetGrace(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetMaxGrace(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetDam(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetFood(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetAC(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetWC(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetWeight(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetWeightLimit(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetDirection(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetFacing(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetGod(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetSpeed(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetSpeedLeft(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetQuantity(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetLastSP(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetLastGrace(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetLastEat(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetAttackType(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetIdentified(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetUnaggressive(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetPickable(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetUnpaid(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetFriendly(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetCanSeeInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetRollable(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetTurnable(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetUsedUp(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetBlind(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetKnownCursed(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetStealthy(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetConfused(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetSleeping(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetLifesaver(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetHasXRays(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetCanSeeInDark(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetKnownMagical(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetReflectSpells(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetReflectMissiles(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetUnique(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetRunAway(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetScared(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetUndead(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetBlocksView(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetHitBack(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetStandStill(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetOnlyAttack(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetMakeInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetValue(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetFace(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetAnim(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetAnimSpeed(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetNoSave(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetOwner(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetEnemy(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetGodGiven(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetIsPet(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetAttackMovement(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetDuration(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetGlowRadius(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetAnimated(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetNoDamage(Crossfire_Object *whoptr, PyObject *value, void *closure); static int Object_SetRandomMovement(Crossfire_Object *whoptr, PyObject *value, void *closure); static PyObject *Crossfire_Object_Remove(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Apply(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Drop(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Clone(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Split(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Fix(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Say(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Take(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Teleport(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Reposition(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_QueryName(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_GetResist(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_SetResist(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_ActivateRune(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_CheckTrigger(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_QueryCost(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Cast(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_LearnSpell(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_ForgetSpell(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_KnowSpell(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_CastAbility(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_PayAmount(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Pay(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_CheckInventory(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_CheckArchInventory(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_GetOutOfMap(Crossfire_Object *whoptr, PyObject *args); static PyObject *Crossfire_Object_CreateInside(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_InsertInto(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_ReadKey(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_WriteKey(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_CreateTimer(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_AddExp(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Move(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_ChangeAbil(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Event(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_RemoveDepletion(Crossfire_Object *who, PyObject *args); static PyObject *Crossfire_Object_Arrest(Crossfire_Object *who, PyObject *args); static PyObject *Object_GetMaterial(Crossfire_Object *whoptr, void *closure); static int Crossfire_Object_InternalCompare(Crossfire_Object *left, Crossfire_Object *right); static PyObject *Crossfire_Object_RichCompare(Crossfire_Object *left, Crossfire_Object *right, int op); static PyObject *Crossfire_Object_Long(PyObject *obj); #ifndef IS_PY3K static PyObject *Crossfire_Object_Int(PyObject *obj); #endif static PyObject *Crossfire_Object_new(PyTypeObject *type, PyObject *args, PyObject *kwds); /* Python binding */ static PyGetSetDef Object_getseters[] = { { "Name", (getter)Object_GetName, (setter)Object_SetName, NULL, NULL }, { "NamePl", (getter)Object_GetNamePl, (setter)Object_SetNamePl, NULL, NULL }, { "Title", (getter)Object_GetTitle, (setter)Object_SetTitle, NULL, NULL }, { "Race", (getter)Object_GetRace, (setter)Object_SetRace, NULL, NULL }, { "Skill", (getter)Object_GetSkill, (setter)Object_SetSkill, NULL, NULL }, { "Map", (getter)Object_GetMap, (setter)Object_SetMap, NULL, NULL }, { "Cha", (getter)Object_GetCha, (setter)Object_SetCha, NULL, NULL }, { "Con", (getter)Object_GetCon, (setter)Object_SetCon, NULL, NULL }, { "Dex", (getter)Object_GetDex, (setter)Object_SetDex, NULL, NULL }, { "Int", (getter)Object_GetInt, (setter)Object_SetInt, NULL, NULL }, { "Pow", (getter)Object_GetPow, (setter)Object_SetPow, NULL, NULL }, { "Str", (getter)Object_GetStr, (setter)Object_SetStr, NULL, NULL }, { "Wis", (getter)Object_GetWis, (setter)Object_SetWis, NULL, NULL }, { "HP", (getter)Object_GetHP, (setter)Object_SetHP, NULL, NULL }, { "MaxHP", (getter)Object_GetMaxHP, (setter)Object_SetMaxHP, NULL, NULL }, { "SP", (getter)Object_GetSP, (setter)Object_SetSP, NULL, NULL }, { "MaxSP", (getter)Object_GetMaxSP, (setter)Object_SetMaxSP, NULL, NULL }, { "Grace", (getter)Object_GetGrace, (setter)Object_SetGrace, NULL, NULL }, { "MaxGrace", (getter)Object_GetMaxGrace, (setter)Object_SetMaxGrace, NULL, NULL }, { "Food", (getter)Object_GetFood, (setter)Object_SetFood, NULL, NULL }, { "AC", (getter)Object_GetAC, (setter)Object_SetAC, NULL, NULL }, { "WC", (getter)Object_GetWC, (setter)Object_SetWC, NULL, NULL }, { "Dam", (getter)Object_GetDam, (setter)Object_SetDam, NULL, NULL }, { "Luck", (getter)Object_GetLuck, NULL, NULL, NULL }, { "Exp", (getter)Object_GetExp, (setter)Object_SetExp, NULL, NULL }, { "ExpMul", (getter)Object_GetExpMul, NULL, NULL, NULL }, { "PermExp", (getter)Object_GetPermExp, NULL, NULL, NULL }, { "Message", (getter)Object_GetMessage, (setter)Object_SetMessage, NULL, NULL }, { "Slaying", (getter)Object_GetSlaying, (setter)Object_SetSlaying, NULL, NULL }, { "Cursed", (getter)Object_GetCursed, (setter)Object_SetCursed, NULL, NULL }, { "Damned", (getter)Object_GetDamned, (setter)Object_SetDamned, NULL, NULL }, { "Weight", (getter)Object_GetWeight, (setter)Object_SetWeight, NULL, NULL }, { "WeightLimit", (getter)Object_GetWeightLimit, (setter)Object_SetWeightLimit, NULL, NULL }, { "Above", (getter)Object_GetAbove, NULL, NULL, NULL }, { "Below", (getter)Object_GetBelow, NULL, NULL, NULL }, { "Inventory", (getter)Object_GetInventory, NULL, NULL, NULL }, { "X", (getter)Object_GetX, NULL, NULL, NULL }, { "Y", (getter)Object_GetY, NULL, NULL, NULL }, { "Direction", (getter)Object_GetDirection, (setter)Object_SetDirection, NULL, NULL }, { "Facing", (getter)Object_GetFacing, (setter)Object_SetFacing, NULL, NULL }, { "Unaggressive", (getter)Object_GetUnaggressive, (setter)Object_SetUnaggressive, NULL, NULL }, { "God", (getter)Object_GetGod, (setter)Object_SetGod, NULL, NULL }, { "Pickable", (getter)Object_GetPickable, (setter)Object_SetPickable, NULL, NULL }, { "Quantity", (getter)Object_GetQuantity, (setter)Object_SetQuantity, NULL, NULL }, { "Invisible", (getter)Object_GetInvisible, (setter)Object_SetInvisible, NULL, NULL }, { "Speed", (getter)Object_GetSpeed, (setter)Object_SetSpeed, NULL, NULL }, { "SpeedLeft", (getter)Object_GetSpeedLeft, (setter)Object_SetSpeedLeft, NULL, NULL }, { "LastSP", (getter)Object_GetLastSP, (setter)Object_SetLastSP, NULL, NULL }, { "LastGrace", (getter)Object_GetLastGrace, (setter)Object_SetLastGrace, NULL, NULL }, { "LastEat", (getter)Object_GetLastEat, (setter)Object_SetLastEat, NULL, NULL }, { "Level", (getter)Object_GetLevel, NULL, NULL, NULL }, { "Face", (getter)Object_GetFace, (setter)Object_SetFace, NULL, NULL }, { "Anim", (getter)Object_GetAnim, (setter)Object_SetAnim, NULL, NULL }, { "AnimSpeed", (getter)Object_GetAnimSpeed, (setter)Object_SetAnimSpeed, NULL, NULL }, { "AttackType", (getter)Object_GetAttackType, (setter)Object_SetAttackType, NULL, NULL }, { "BeenApplied", (getter)Object_GetBeenApplied, NULL, NULL, NULL }, { "Identified", (getter)Object_GetIdentified, (setter)Object_SetIdentified, NULL, NULL }, { "Alive", (getter)Object_GetAlive, NULL, NULL, NULL }, { "DungeonMaster", (getter)Object_GetDM, NULL, NULL, NULL }, { "WasDungeonMaster", (getter)Object_GetWasDM, NULL, NULL, NULL }, { "Applied", (getter)Object_GetApplied, (setter)Object_SetApplied, NULL, NULL }, { "Unpaid", (getter)Object_GetUnpaid, (setter)Object_SetUnpaid, NULL, NULL }, { "Monster", (getter)Object_GetMonster, NULL, NULL, NULL }, { "Friendly", (getter)Object_GetFriendly, (setter)Object_SetFriendly, NULL, NULL }, { "Generator", (getter)Object_GetGenerator, NULL, NULL, NULL }, { "Thrown", (getter)Object_GetThrown, NULL, NULL, NULL }, { "CanSeeInvisible", (getter)Object_GetCanSeeInvisible, (setter)Object_SetCanSeeInvisible, NULL, NULL }, { "Rollable", (getter)Object_GetRollable, (setter)Object_SetRollable, NULL, NULL }, { "Turnable", (getter)Object_GetTurnable, (setter)Object_SetTurnable, NULL, NULL }, { "UsedUp", (getter)Object_GetUsedUp, (setter)Object_SetUsedUp, NULL, NULL }, { "Splitting", (getter)Object_GetSplitting, NULL, NULL, NULL }, { "Blind", (getter)Object_GetBlind, (setter)Object_SetBlind, NULL, NULL }, { "CanUseSkill", (getter)Object_GetCanUseSkill, NULL, NULL, NULL }, { "KnownCursed", (getter)Object_GetKnownCursed, (setter)Object_SetKnownCursed, NULL, NULL }, { "Stealthy", (getter)Object_GetStealthy, (setter)Object_SetStealthy, NULL, NULL }, { "Confused", (getter)Object_GetConfused, (setter)Object_SetConfused, NULL, NULL }, { "Sleeping", (getter)Object_GetSleeping, (setter)Object_SetSleeping, NULL, NULL }, { "Lifesaver", (getter)Object_GetLifesaver, (setter)Object_SetLifesaver, NULL, NULL }, { "Floor", (getter)Object_GetFloor, NULL, NULL, NULL }, { "HasXRays", (getter)Object_GetHasXRays, (setter)Object_SetHasXRays, NULL, NULL }, { "CanUseRing", (getter)Object_GetCanUseRing, NULL, NULL, NULL }, { "CanUseBow", (getter)Object_GetCanUseBow, NULL, NULL, NULL }, { "CanUseWand", (getter)Object_GetCanUseWand, NULL, NULL, NULL }, { "CanSeeInDark", (getter)Object_GetCanSeeInDark, (setter)Object_SetCanSeeInDark, NULL, NULL }, { "KnownMagical", (getter)Object_GetKnownMagical, (setter)Object_SetKnownMagical, NULL, NULL }, { "CanUseWeapon", (getter)Object_GetCanUseWeapon, NULL, NULL, NULL }, { "CanUseArmour", (getter)Object_GetCanUseArmour, NULL, NULL, NULL }, { "CanUseScroll", (getter)Object_GetCanUseScroll, NULL, NULL, NULL }, { "CanCastSpell", (getter)Object_GetCanCastSpell, NULL, NULL, NULL }, { "ReflectSpells", (getter)Object_GetReflectSpells, (setter)Object_SetReflectSpells, NULL, NULL }, { "ReflectMissiles", (getter)Object_GetReflectMissiles, (setter)Object_SetReflectMissiles, NULL, NULL }, { "Unique", (getter)Object_GetUnique, (setter)Object_SetUnique, NULL, NULL }, { "RunAway", (getter)Object_GetRunAway, (setter)Object_SetRunAway, NULL, NULL }, { "Scared", (getter)Object_GetScared, (setter)Object_SetScared, NULL, NULL }, { "Undead", (getter)Object_GetUndead, (setter)Object_SetUndead, NULL, NULL }, { "BlocksView", (getter)Object_GetBlocksView, (setter)Object_SetBlocksView, NULL, NULL }, { "HitBack", (getter)Object_GetHitBack, (setter)Object_SetHitBack, NULL, NULL }, { "StandStill", (getter)Object_GetStandStill, (setter)Object_SetStandStill, NULL, NULL }, { "OnlyAttack", (getter)Object_GetOnlyAttack, (setter)Object_SetOnlyAttack, NULL, NULL }, { "MakeInvisible", (getter)Object_GetMakeInvisible, (setter)Object_SetMakeInvisible, NULL, NULL }, { "Money", (getter)Object_GetMoney, NULL, NULL, NULL }, { "Type", (getter)Object_GetType, NULL, NULL, NULL }, { "Subtype", (getter)Object_GetSubtype, NULL, NULL, NULL }, { "Value", (getter)Object_GetValue, (setter)Object_SetValue, NULL, NULL }, { "ArchName", (getter)Object_GetArchName, NULL, NULL, NULL }, { "Archetype", (getter)Object_GetArchetype, NULL, NULL, NULL }, { "Exists", (getter)Object_GetExists, NULL, NULL, NULL }, { "NoSave", (getter)Object_GetNoSave, (setter)Object_SetNoSave, NULL, NULL }, { "Env", (getter)Object_GetEnv, NULL, NULL, NULL }, { "MoveType", (getter)Object_GetMoveType, NULL, NULL, NULL }, { "MoveBlock", (getter)Object_GetMoveBlock, NULL, NULL, NULL }, { "MoveAllow", (getter)Object_GetMoveAllow, NULL, NULL, NULL }, { "MoveOn", (getter)Object_GetMoveOn, NULL, NULL, NULL }, { "MoveOff", (getter)Object_GetMoveOff, NULL, NULL, NULL }, { "MoveSlow", (getter)Object_GetMoveSlow, NULL, NULL, NULL }, { "MoveSlowPenalty", (getter)Object_GetMoveSlowPenalty, NULL, NULL, NULL }, { "Owner", (getter)Object_GetOwner, (setter)Object_SetOwner, NULL, NULL }, { "Enemy", (getter)Object_GetEnemy, (setter)Object_SetEnemy, NULL, NULL }, { "Count", (getter)Object_GetCount, NULL, NULL, NULL }, { "GodGiven", (getter)Object_GetGodGiven, (setter)Object_SetGodGiven, NULL, NULL }, { "IsPet", (getter)Object_GetIsPet, (setter)Object_SetIsPet, NULL, NULL }, { "AttackMovement", (getter)Object_GetAttackMovement, (setter)Object_SetAttackMovement, NULL, NULL }, { "Duration", (getter)Object_GetDuration, (setter)Object_SetDuration, NULL, NULL }, { "GlowRadius", (getter)Object_GetGlowRadius, (setter)Object_SetGlowRadius, NULL, NULL }, { "Animated", (getter)Object_GetAnimated, (setter)Object_SetAnimated, NULL, NULL }, { "NoDamage", (getter)Object_GetNoDamage, (setter)Object_SetNoDamage, NULL, NULL }, { "RandomMovement", (getter)Object_GetRandomMovement, (setter)Object_SetRandomMovement, NULL, NULL }, { "Material", (getter)Object_GetMaterial, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; static PyMethodDef ObjectMethods[] = { { "Remove", (PyCFunction)Crossfire_Object_Remove, METH_NOARGS, NULL }, { "Apply", (PyCFunction)Crossfire_Object_Apply, METH_VARARGS, NULL }, { "Drop", (PyCFunction)Crossfire_Object_Drop, METH_O, NULL }, { "Clone", (PyCFunction)Crossfire_Object_Clone, METH_VARARGS, NULL }, { "Split", (PyCFunction)Crossfire_Object_Split, METH_VARARGS, NULL }, { "Fix", (PyCFunction)Crossfire_Object_Fix, METH_NOARGS, NULL }, { "Say", (PyCFunction)Crossfire_Object_Say, METH_VARARGS, NULL }, { "Speak", (PyCFunction)Crossfire_Object_Say, METH_VARARGS, NULL }, { "Take", (PyCFunction)Crossfire_Object_Take, METH_O, NULL }, { "Teleport", (PyCFunction)Crossfire_Object_Teleport, METH_VARARGS, NULL }, { "Reposition", (PyCFunction)Crossfire_Object_Reposition, METH_VARARGS, NULL }, { "QueryName", (PyCFunction)Crossfire_Object_QueryName, METH_NOARGS, NULL }, { "GetResist", (PyCFunction)Crossfire_Object_GetResist, METH_VARARGS, NULL }, { "SetResist", (PyCFunction)Crossfire_Object_SetResist, METH_VARARGS, NULL }, { "ActivateRune", (PyCFunction)Crossfire_Object_ActivateRune, METH_O, NULL }, { "CheckTrigger", (PyCFunction)Crossfire_Object_CheckTrigger, METH_O, NULL }, { "QueryCost", (PyCFunction)Crossfire_Object_QueryCost, METH_VARARGS, NULL }, { "Cast", (PyCFunction)Crossfire_Object_Cast, METH_VARARGS, NULL }, { "LearnSpell", (PyCFunction)Crossfire_Object_LearnSpell, METH_O, NULL }, { "ForgetSpell", (PyCFunction)Crossfire_Object_ForgetSpell, METH_O, NULL }, { "KnowSpell", (PyCFunction)Crossfire_Object_KnowSpell, METH_VARARGS, NULL }, { "CastAbility", (PyCFunction)Crossfire_Object_CastAbility, METH_VARARGS, NULL }, { "PayAmount", (PyCFunction)Crossfire_Object_PayAmount, METH_VARARGS, NULL }, { "Pay", (PyCFunction)Crossfire_Object_Pay, METH_O, NULL }, { "CheckInventory", (PyCFunction)Crossfire_Object_CheckInventory, METH_VARARGS, NULL }, { "CheckArchInventory", (PyCFunction)Crossfire_Object_CheckArchInventory, METH_VARARGS, NULL }, { "OutOfMap", (PyCFunction)Crossfire_Object_GetOutOfMap, METH_VARARGS, NULL }, { "CreateObject", (PyCFunction)Crossfire_Object_CreateInside, METH_VARARGS, NULL }, { "InsertInto", (PyCFunction)Crossfire_Object_InsertInto, METH_O, NULL }, { "ReadKey", (PyCFunction)Crossfire_Object_ReadKey, METH_VARARGS, NULL }, { "WriteKey", (PyCFunction)Crossfire_Object_WriteKey, METH_VARARGS, NULL }, { "CreateTimer", (PyCFunction)Crossfire_Object_CreateTimer, METH_VARARGS, NULL }, { "AddExp", (PyCFunction)Crossfire_Object_AddExp, METH_VARARGS, NULL }, { "Move", (PyCFunction)Crossfire_Object_Move, METH_VARARGS, NULL }, { "ChangeAbil", (PyCFunction)Crossfire_Object_ChangeAbil, METH_O, NULL }, { "Event", (PyCFunction)Crossfire_Object_Event, METH_VARARGS, NULL }, { "RemoveDepletion",(PyCFunction)Crossfire_Object_RemoveDepletion, METH_VARARGS, NULL }, { "Arrest", (PyCFunction)Crossfire_Object_Arrest, METH_VARARGS, NULL }, { NULL, NULL, 0, NULL } }; static PyNumberMethods ObjectConvert = { NULL, /* binaryfunc nb_add; */ /* __add__ */ NULL, /* binaryfunc nb_subtract; */ /* __sub__ */ NULL, /* binaryfunc nb_multiply; */ /* __mul__ */ #ifndef IS_PY3K NULL, /* binaryfunc nb_divide; */ /* __div__ */ #endif NULL, /* binaryfunc nb_remainder; */ /* __mod__ */ NULL, /* binaryfunc nb_divmod; */ /* __divmod__ */ NULL, /* ternaryfunc nb_power; */ /* __pow__ */ NULL, /* unaryfunc nb_negative; */ /* __neg__ */ NULL, /* unaryfunc nb_positive; */ /* __pos__ */ NULL, /* unaryfunc nb_absolute; */ /* __abs__ */ #ifdef IS_PY3K NULL, /* inquiry nb_bool; */ /* __bool__ */ #else NULL, /* inquiry nb_nonzero; */ /* __nonzero__ */ #endif NULL, /* unaryfunc nb_invert; */ /* __invert__ */ NULL, /* binaryfunc nb_lshift; */ /* __lshift__ */ NULL, /* binaryfunc nb_rshift; */ /* __rshift__ */ NULL, /* binaryfunc nb_and; */ /* __and__ */ NULL, /* binaryfunc nb_xor; */ /* __xor__ */ NULL, /* binaryfunc nb_or; */ /* __or__ */ #ifndef IS_PY3K NULL, /* coercion nb_coerce; */ /* __coerce__ */ #endif #ifdef IS_PY3K /* This is not a typo. For Py3k it should be Crossfire_Object_Long * and NOT Crossfire_Object_Int. */ Crossfire_Object_Long, /* unaryfunc nb_int; */ /* __int__ */ NULL, /* void *nb_reserved; */ #else Crossfire_Object_Int, /* unaryfunc nb_int; */ /* __int__ */ Crossfire_Object_Long, /* unaryfunc nb_long; */ /* __long__ */ #endif NULL, /* unaryfunc nb_float; */ /* __float__ */ #ifndef IS_PY3K NULL, /* unaryfunc nb_oct; */ /* __oct__ */ NULL, /* unaryfunc nb_hex; */ /* __hex__ */ #endif NULL, /* binaryfunc nb_inplace_add; */ NULL, /* binaryfunc nb_inplace_subtract; */ NULL, /* binaryfunc nb_inplace_multiply; */ #ifndef IS_PY3K NULL, /* binaryfunc nb_inplace_divide; */ #endif NULL, /* binaryfunc nb_inplace_remainder; */ NULL, /* ternaryfunc nb_inplace_power; */ NULL, /* binaryfunc nb_inplace_lshift; */ NULL, /* binaryfunc nb_inplace_rshift; */ NULL, /* binaryfunc nb_inplace_and; */ NULL, /* binaryfunc nb_inplace_xor; */ NULL, /* binaryfunc nb_inplace_or; */ NULL, /* binaryfunc nb_floor_divide; */ NULL, /* binaryfunc nb_true_divide; */ NULL, /* binaryfunc nb_inplace_floor_divide; */ NULL, /* binaryfunc nb_inplace_true_divide; */ #if defined(IS_PY25) || defined(IS_PY3K) NULL /* unaryfunc nb_index; */ #endif }; static void Crossfire_Object_dealloc(PyObject *obj); static PyObject *Crossfire_Object_new(PyTypeObject *type, PyObject *args, PyObject *kwds); /* Our actual Python ObjectType */ PyTypeObject Crossfire_ObjectType = { #ifdef IS_PY3K /* See http://bugs.python.org/issue4385 */ PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ #endif "Crossfire.Object", /* tp_name*/ sizeof(Crossfire_Object), /* tp_basicsize*/ 0, /* tp_itemsize*/ Crossfire_Object_dealloc, /* tp_dealloc*/ NULL, /* tp_print*/ NULL, /* tp_getattr*/ NULL, /* tp_setattr*/ #ifdef IS_PY3K NULL, /* tp_reserved */ #else (cmpfunc)Crossfire_Object_InternalCompare, /* tp_compare*/ #endif NULL, /* tp_repr*/ &ObjectConvert, /* tp_as_number*/ NULL, /* tp_as_sequence*/ NULL, /* tp_as_mapping*/ PyObject_HashNotImplemented, /* tp_hash */ NULL, /* tp_call*/ NULL, /* tp_str*/ PyObject_GenericGetAttr, /* tp_getattro*/ PyObject_GenericSetAttr, /* tp_setattro*/ NULL, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags*/ "Crossfire objects", /* tp_doc */ NULL, /* tp_traverse */ NULL, /* tp_clear */ (richcmpfunc)Crossfire_Object_RichCompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ NULL, /* tp_iter */ NULL, /* tp_iternext */ ObjectMethods, /* tp_methods */ NULL, /* tp_members */ Object_getseters, /* tp_getset */ NULL, /* tp_base */ NULL, /* tp_dict */ NULL, /* tp_descr_get */ NULL, /* tp_descr_set */ 0, /* tp_dictoffset */ NULL, /* tp_init */ NULL, /* tp_alloc */ Crossfire_Object_new, /* tp_new */ NULL, /* tp_free */ NULL, /* tp_is_gc */ NULL, /* tp_bases */ NULL, /* tp_mro */ NULL, /* tp_cache */ NULL, /* tp_subclasses */ NULL, /* tp_weaklist */ NULL, /* tp_del */ }; static PyObject *Player_GetTitle(Crossfire_Object *whoptr, void *closure); static int Player_SetTitle(Crossfire_Object *whoptr, PyObject *value, void *closure); static PyObject *Player_GetIP(Crossfire_Player *whoptr, void *closure); static PyObject *Player_GetMarkedItem(Crossfire_Player *whoptr, void *closure); static int Player_SetMarkedItem(Crossfire_Player *whoptr, PyObject *value, void *closure); static PyObject *Crossfire_Player_Message(Crossfire_Player *who, PyObject *args); static PyObject *Player_GetParty(Crossfire_Player *whoptr, void *closure); static int Player_SetParty(Crossfire_Player *whoptr, PyObject *value, void *closure); static PyObject *Crossfire_Player_CanPay(Crossfire_Player *who, PyObject *args); static PyObject *Player_GetBedMap(Crossfire_Player *whoptr, void *closure); static PyObject *Player_GetBedX(Crossfire_Player *whoptr, void *closure); static PyObject *Player_GetBedY(Crossfire_Player *whoptr, void *closure); static int Player_SetBedMap(Crossfire_Player *whoptr, PyObject *value, void *closure); static int Player_SetBedX(Crossfire_Player *whoptr, PyObject *value, void *closure); static int Player_SetBedY(Crossfire_Player *whoptr, PyObject *value, void *closure); static PyObject *Player_QuestStart(Crossfire_Player *whoptr, PyObject *args); static PyObject *Player_QuestGetState(Crossfire_Player *whoptr, PyObject *args); static PyObject *Player_QuestSetState(Crossfire_Player *whoptr, PyObject *args); static PyObject *Player_QuestWasCompleted(Crossfire_Player *whoptr, PyObject *args); static PyObject *Player_KnowledgeKnown(Crossfire_Player *whoptr, PyObject *args); static PyGetSetDef Player_getseters[] = { { "Title", (getter)Player_GetTitle, (setter)Player_SetTitle, NULL, NULL }, { "IP", (getter)Player_GetIP, NULL, NULL, NULL }, { "MarkedItem", (getter)Player_GetMarkedItem, (setter)Player_SetMarkedItem, NULL, NULL }, { "Party", (getter)Player_GetParty, (setter)Player_SetParty, NULL, NULL }, { "BedMap", (getter)Player_GetBedMap, (setter)Player_SetBedMap, NULL, NULL }, { "BedX", (getter)Player_GetBedX, (setter)Player_SetBedX, NULL, NULL }, { "BedY", (getter)Player_GetBedY, (setter)Player_SetBedY, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; static PyMethodDef PlayerMethods[] = { { "Message", (PyCFunction)Crossfire_Player_Message, METH_VARARGS, NULL }, { "Write", (PyCFunction)Crossfire_Player_Message, METH_VARARGS, NULL }, { "CanPay", (PyCFunction)Crossfire_Player_CanPay, METH_NOARGS, NULL }, { "QuestStart", (PyCFunction)Player_QuestStart, METH_VARARGS, NULL }, { "QuestGetState", (PyCFunction)Player_QuestGetState, METH_VARARGS, NULL }, { "QuestSetState", (PyCFunction)Player_QuestSetState, METH_VARARGS, NULL }, { "QuestWasCompleted", (PyCFunction)Player_QuestWasCompleted, METH_VARARGS, NULL }, { "KnowledgeKnown", (PyCFunction)Player_KnowledgeKnown, METH_VARARGS, NULL }, { NULL, NULL, 0, NULL } }; static void Crossfire_Player_dealloc(PyObject *obj); static PyObject *Crossfire_Player_new(PyTypeObject *type, PyObject *args, PyObject *kwds); /* Our actual Python ObjectPlayerType */ PyTypeObject Crossfire_PlayerType = { #ifdef IS_PY3K /* See http://bugs.python.org/issue4385 */ PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ #endif "Crossfire.Player", /* tp_name*/ sizeof(Crossfire_Player), /* tp_basicsize*/ 0, /* tp_itemsize*/ Crossfire_Player_dealloc, /* tp_dealloc*/ NULL, /* tp_print*/ NULL, /* tp_getattr*/ NULL, /* tp_setattr*/ NULL, /* tp_compare*/ NULL, /* tp_repr*/ NULL, /* tp_as_number*/ NULL, /* tp_as_sequence*/ NULL, /* tp_as_mapping*/ /* Should be NULL to inherit tp_richcompare and tp_compare from Crossfire_ObjectType. */ NULL, /* tp_hash */ NULL, /* tp_call*/ NULL, /* tp_str*/ PyObject_GenericGetAttr, /* tp_getattro*/ PyObject_GenericSetAttr, /* tp_setattro*/ NULL, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT, /* tp_flags*/ "Crossfire player", /* tp_doc */ NULL, /* tp_traverse */ NULL, /* tp_clear */ NULL, /* tp_richcompare */ 0, /* tp_weaklistoffset */ NULL, /* tp_iter */ NULL, /* tp_iternext */ PlayerMethods, /* tp_methods */ NULL, /* tp_members */ Player_getseters, /* tp_getset */ &Crossfire_ObjectType, /* tp_base */ NULL, /* tp_dict */ NULL, /* tp_descr_get */ NULL, /* tp_descr_set */ 0, /* tp_dictoffset */ NULL, /* tp_init */ NULL, /* tp_alloc */ Crossfire_Player_new, /* tp_new */ NULL, /* tp_free */ NULL, /* tp_is_gc */ NULL, /* tp_bases */ NULL, /* tp_mro */ NULL, /* tp_cache */ NULL, /* tp_subclasses */ NULL, /* tp_weaklist */ NULL, /* tp_del */ }; crossfire-1.70.0/plugins/cfpython/include/cfpython_archetype_private.h0000644000014500000120000000751611731300517023250 00000000000000static PyObject *Crossfire_Archetype_GetName(Crossfire_Archetype *whoptr, void *closure); static PyObject *Crossfire_Archetype_GetNext(Crossfire_Archetype *who, void *closure); static PyObject *Crossfire_Archetype_GetMore(Crossfire_Archetype *who, void *closure); static PyObject *Crossfire_Archetype_GetHead(Crossfire_Archetype *who, void *closure); static PyObject *Crossfire_Archetype_GetClone(Crossfire_Archetype *who, void *closure); static PyObject *Crossfire_Archetype_GetNewObject(Crossfire_Archetype *who, PyObject *args); static int Crossfire_Archetype_InternalCompare(Crossfire_Archetype *left, Crossfire_Archetype *right); static PyObject *Crossfire_Archetype_RichCompare(Crossfire_Archetype *left, Crossfire_Archetype *right, int op); static PyGetSetDef Archetype_getseters[] = { { "Name", (getter)Crossfire_Archetype_GetName, NULL, NULL, NULL }, { "Next", (getter)Crossfire_Archetype_GetNext, NULL, NULL, NULL }, { "More", (getter)Crossfire_Archetype_GetMore, NULL, NULL, NULL }, { "Head", (getter)Crossfire_Archetype_GetHead, NULL, NULL, NULL }, { "Clone", (getter)Crossfire_Archetype_GetClone, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL } }; static PyMethodDef ArchetypeMethods[] = { { "NewObject", (PyCFunction)Crossfire_Archetype_GetNewObject, METH_NOARGS, NULL }, { NULL, NULL, 0, NULL } }; /* Our actual Python ArchetypeType */ PyTypeObject Crossfire_ArchetypeType = { #ifdef IS_PY3K /* See http://bugs.python.org/issue4385 */ PyVarObject_HEAD_INIT(NULL, 0) #else PyObject_HEAD_INIT(NULL) 0, /* ob_size*/ #endif "Crossfire.Archetype", /* tp_name*/ sizeof(Crossfire_Archetype), /* tp_basicsize*/ 0, /* tp_itemsize*/ NULL, /* tp_dealloc*/ NULL, /* tp_print*/ NULL, /* tp_getattr*/ NULL, /* tp_setattr*/ #ifdef IS_PY3K NULL, /* tp_reserved */ #else (cmpfunc)Crossfire_Archetype_InternalCompare, /* tp_compare*/ #endif NULL, /* tp_repr*/ NULL, /* tp_as_number*/ NULL, /* tp_as_sequence*/ NULL, /* tp_as_mapping*/ PyObject_HashNotImplemented, /* tp_hash */ NULL, /* tp_call*/ NULL, /* tp_str*/ PyObject_GenericGetAttr, /* tp_getattro*/ PyObject_GenericSetAttr, /* tp_setattro*/ NULL, /* tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags*/ "Crossfire archetypes", /* tp_doc */ NULL, /* tp_traverse */ NULL, /* tp_clear */ (richcmpfunc)Crossfire_Archetype_RichCompare, /* tp_richcompare */ 0, /* tp_weaklistoffset */ NULL, /* tp_iter */ NULL, /* tp_iternext */ ArchetypeMethods, /* tp_methods */ NULL, /* tp_members */ Archetype_getseters, /* tp_getset */ NULL, /* tp_base */ NULL, /* tp_dict */ NULL, /* tp_descr_get */ NULL, /* tp_descr_set */ 0, /* tp_dictoffset */ NULL, /* tp_init */ NULL, /* tp_alloc */ NULL, /* tp_new */ NULL, /* tp_free */ NULL, /* tp_is_gc */ NULL, /* tp_bases */ NULL, /* tp_mro */ NULL, /* tp_cache */ NULL, /* tp_subclasses */ NULL, /* tp_weaklist */ NULL, /* tp_del */ }; crossfire-1.70.0/plugins/cfpython/include/cfpython_region.h0000644000014500000120000000470011731300517021005 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef CFPYTHON_REGION_H #define CFPYTHON_REGION_H typedef struct { PyObject_HEAD region *reg; } Crossfire_Region; extern PyTypeObject Crossfire_RegionType; extern PyObject *Crossfire_Region_wrap(region *what); #endif /* CFPYTHON_REGION_H */ crossfire-1.70.0/plugins/cfpython/include/cfpython.h0000644000014500000120000001171611731300517017447 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #ifndef PLUGIN_PYTHON_H #define PLUGIN_PYTHON_H /* First the required header files - only the CF module interface and Python */ #ifdef WIN32 #ifdef _DEBUG #undef _DEBUG #include #define _DEBUG #else #include #endif #else /* WIN32 */ #include #endif /* This is for allowing both python 3 and python 2. * We also use some warnings and such with python 2.6 (and later 2.x). */ #if PY_MAJOR_VERSION >= 3 # define IS_PY3K #else /* Python 2.x */ # if PY_MINOR_VERSION >= 6 /* 2.6 or later */ # define IS_PY26 # else # define IS_PY_LEGACY /* Pre-2.6 lack forward compat. changes for Py3 */ # endif # if PY_MINOR_VERSION >= 5 /* PyNumberMethods changed in 2.5 */ # define IS_PY25 # endif #endif /* Python 2.5 or older doesn't define these. */ #ifndef Py_SIZE # define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) #endif #ifndef Py_TYPE # define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) #endif /* Python 2.6 and later use PyObject_HashNotImplemented to indicate no support * for hash. */ #ifdef IS_PY_LEGACY # define PyObject_HashNotImplemented NULL #endif /* Handle Bytes vs. String */ #ifdef IS_PY3K # define CF_IS_PYSTR(cfpy_obj) (PyUnicode_Check(cfpy_obj)) #else # define CF_IS_PYSTR(cfpy_obj) (PyString_Check(cfpy_obj) || PyUnicode_Check(cfpy_obj)) #endif /* Python can define HAVE_GETTIMEOFDAY, but we have our own later on. */ #ifdef HAVE_GETTIMEOFDAY #undef HAVE_GETTIMEOFDAY #endif /* include compile.h from python. Python.h doesn't pull it in with versions * 2.3 and older, and it does have protection from double-imports. */ #include #include #undef MODULEAPI #ifdef WIN32 # ifdef PYTHON_PLUGIN_EXPORTS # define MODULEAPI __declspec(dllexport) # else # define MODULEAPI __declspec(dllimport) # endif #else #ifdef HAVE_VISIBILITY # define MODULEAPI __attribute__((visibility("default"))) #else # define MODULEAPI #endif #endif #define PLUGIN_NAME "Python" #define PLUGIN_VERSION "CFPython Plugin 2.0a13 (Fido)" #include #include #include #include #include #include typedef struct _cfpcontext { struct _cfpcontext *down; PyObject *who; PyObject *activator; PyObject *third; PyObject *event; char message[1024]; int fix; int event_code; char script[1024]; char options[1024]; int returnvalue; int parms[5]; struct talk_info *talk; } CFPContext; extern f_plug_api gethook; extern CFPContext *context_stack; extern CFPContext *current_context; #include #endif /* PLUGIN_PYTHON_H */ crossfire-1.70.0/plugins/cfpython/include/Makefile.am0000644000014500000120000000053111731300517017471 00000000000000 noinst_HEADERS = \ cfpython.h cfpython_object_private.h \ cfpython_archetype.h cfpython_party.h \ cfpython_archetype_private.h cfpython_party_private.h \ cfpython_map.h cfpython_proto.h \ cfpython_map_private.h cfpython_region.h \ cfpython_object.h cfpython_region_private.h crossfire-1.70.0/plugins/cfpython/cjson.c0000644000014500000120000012273011731300520015272 00000000000000/* * Copyright (C) 2006-2007 Dan Pascu. * Author: Dan Pascu * * Fast JSON encoder/decoder implementation for Python * This file is under GPL licence */ #include #include #include #include #include #include #if defined(IS_PY26) # include #elif !defined(IS_PY3K) /* Python versions 2.5 or older doesn't have bytesobject.h */ # define PyBytesObject PyStringObject # define PyBytes_Check PyString_Check # define PyBytes_AS_STRING PyString_AS_STRING # define PyBytes_GET_SIZE PyString_GET_SIZE # define PyBytes_FromStringAndSize PyString_FromStringAndSize # define PyBytes_FromString PyString_FromString # define PyBytes_Size PyString_Size # define PyBytes_AsString PyString_AsString # define PyBytes_Concat PyString_Concat # define PyBytes_ConcatAndDel PyString_ConcatAndDel # define _PyBytes_Resize _PyString_Resize # define PyBytes_DecodeEscape PyString_DecodeEscape # define _PyBytes_Join _PyString_Join # define PyBytes_AsStringAndSize PyString_AsStringAndSize #endif typedef struct JSONData { char *str; /* the actual json string */ char *end; /* pointer to the string end */ char *ptr; /* pointer to the current parsing position */ int all_unicode; /* make all output strings unicode if true */ } JSONData; static PyObject *encode_object(PyObject *object); static PyObject *encode_string(PyObject *object); static PyObject *encode_unicode(PyObject *object); static PyObject *encode_tuple(PyObject *object); static PyObject *encode_list(PyObject *object); static PyObject *encode_dict(PyObject *object); static PyObject *decode_json(JSONData *jsondata); static PyObject *decode_null(JSONData *jsondata); static PyObject *decode_bool(JSONData *jsondata); static PyObject *decode_string(JSONData *jsondata); static PyObject *decode_inf(JSONData *jsondata); static PyObject *decode_nan(JSONData *jsondata); static PyObject *decode_number(JSONData *jsondata); static PyObject *decode_array(JSONData *jsondata); static PyObject *decode_object(JSONData *jsondata); static PyObject *JSON_Error; static PyObject *JSON_EncodeError; static PyObject *JSON_DecodeError; #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #define SSIZE_T_F "%d" #else #define SSIZE_T_F "%zd" #endif #define True 1 #define False 0 #ifndef INFINITY #define INFINITY HUGE_VAL #endif #ifndef NAN #define NAN (HUGE_VAL-HUGE_VAL) #endif #ifndef Py_IS_NAN #define Py_IS_NAN(X) ((X) != (X)) #endif #define skipSpaces(d) while (*((d)->ptr) && isspace(*((d)->ptr))) (d)->ptr++ /* ------------------------------ Utility ----------------------------- */ #ifdef IS_PY3K /** Same as PyObject_Str but return a UTF-8 encoded Bytes object instead. */ static PyObject* cjson_PyObject_Str(PyObject* obj) { PyObject *tmp_str, *result; tmp_str = PyObject_Str(obj); if (!tmp_str) return NULL; result = PyUnicode_AsUTF8String(tmp_str); Py_DECREF(tmp_str); return result; } #else # define cjson_PyObject_Str PyObject_Str #endif /* ------------------------------ Decoding ----------------------------- */ static void getRowAndCol(char *begin, char *current, int *row, int *col) { *col = 1; *row = 1; while (current > begin) { if (*current == '\n') (*row)++; if (*row < 2) (*col)++; current--; } } static PyObject *decode_null(JSONData *jsondata) { ptrdiff_t left; left = jsondata->end-jsondata->ptr; if (left >= 4 && strncmp(jsondata->ptr, "null", 4) == 0) { jsondata->ptr += 4; Py_INCREF(Py_None); return Py_None; } else { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "cannot parse JSON description: %.20s" "(row "SSIZE_T_F", col "SSIZE_T_F")", jsondata->ptr, (Py_ssize_t)row, (Py_ssize_t)col); return NULL; } } static PyObject *decode_bool(JSONData *jsondata) { ptrdiff_t left; left = jsondata->end-jsondata->ptr; if (left >= 4 && strncmp(jsondata->ptr, "true", 4) == 0) { jsondata->ptr += 4; Py_INCREF(Py_True); return Py_True; } else if (left >= 5 && strncmp(jsondata->ptr, "false", 5) == 0) { jsondata->ptr += 5; Py_INCREF(Py_False); return Py_False; } else { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "cannot parse JSON description: %.20s" "(row "SSIZE_T_F", col "SSIZE_T_F")", jsondata->ptr, (Py_ssize_t)row, (Py_ssize_t)col); return NULL; } } static PyObject *decode_string(JSONData *jsondata) { PyObject *object; int c, escaping, has_unicode, string_escape; Py_ssize_t len; char *ptr; /* look for the closing quote */ escaping = has_unicode = string_escape = False; ptr = jsondata->ptr+1; while (True) { c = *ptr; if (c == 0) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "unterminated string starting at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); return NULL; } if (!escaping) { if (c == '\\') { escaping = True; } else if (c == '"') { break; } else if (!isascii(c)) { has_unicode = True; } } else { switch (c) { case 'u': has_unicode = True; break; case '"': case 'r': case 'n': case 't': case 'b': case 'f': case '\\': string_escape = True; break; } escaping = False; } ptr++; } len = ptr-jsondata->ptr-1; if (has_unicode || jsondata->all_unicode) object = PyUnicode_DecodeUnicodeEscape(jsondata->ptr+1, len, NULL); else if (string_escape) object = PyBytes_DecodeEscape(jsondata->ptr+1, len, NULL, 0, NULL); else object = PyBytes_FromStringAndSize(jsondata->ptr+1, len); if (object == NULL) { PyObject *type, *value, *tb, *reason; PyErr_Fetch(&type, &value, &tb); if (type == NULL) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "invalid string starting at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); } else { if (PyErr_GivenExceptionMatches(type, PyExc_UnicodeDecodeError)) { int row, col; reason = PyObject_GetAttrString(value, "reason"); #ifdef IS_PY3K /* If we are using Python3 we need to convert to bytes here. */ if (reason && PyUnicode_Check(reason)) { PyObject * bytes_reason = PyUnicode_AsUTF8String(reason); Py_DECREF(reason); reason = bytes_reason; } #endif getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "cannot decode string starting" " at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F"): %s", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col, reason ? PyBytes_AsString(reason) : "bad format"); Py_XDECREF(reason); } else { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "invalid string starting at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); } } Py_XDECREF(type); Py_XDECREF(value); Py_XDECREF(tb); } else { jsondata->ptr = ptr+1; } return object; } static PyObject *decode_inf(JSONData *jsondata) { PyObject *object; ptrdiff_t left; left = jsondata->end-jsondata->ptr; if (left >= 8 && strncmp(jsondata->ptr, "Infinity", 8) == 0) { jsondata->ptr += 8; object = PyFloat_FromDouble(INFINITY); return object; } else if (left >= 9 && strncmp(jsondata->ptr, "+Infinity", 9) == 0) { jsondata->ptr += 9; object = PyFloat_FromDouble(INFINITY); return object; } else if (left >= 9 && strncmp(jsondata->ptr, "-Infinity", 9) == 0) { jsondata->ptr += 9; object = PyFloat_FromDouble(-INFINITY); return object; } else { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "cannot parse JSON description: %.20s (row "SSIZE_T_F", col "SSIZE_T_F")", jsondata->ptr, (Py_ssize_t)row, (Py_ssize_t)col); return NULL; } } static PyObject *decode_nan(JSONData *jsondata) { PyObject *object; ptrdiff_t left; left = jsondata->end-jsondata->ptr; if (left >= 3 && strncmp(jsondata->ptr, "NaN", 3) == 0) { jsondata->ptr += 3; object = PyFloat_FromDouble(NAN); return object; } else { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "cannot parse JSON description: %.20s(row "SSIZE_T_F", col "SSIZE_T_F")", jsondata->ptr, (Py_ssize_t)row, (Py_ssize_t)col); return NULL; } } static PyObject *decode_number(JSONData *jsondata) { PyObject *object, *str; int c, is_float, should_stop; char *ptr; /* check if we got a floating point number */ ptr = jsondata->ptr; is_float = should_stop = False; while (True) { c = *ptr; if (c == 0) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '-': case '+': break; case '.': case 'e': case 'E': is_float = True; break; default: should_stop = True; } if (should_stop) { break; } ptr++; } str = PyBytes_FromStringAndSize(jsondata->ptr, ptr-jsondata->ptr); if (str == NULL) return NULL; if (is_float) { #ifdef IS_PY3K object = PyFloat_FromString(str); #else object = PyFloat_FromString(str, NULL); #endif } else { #ifdef IS_PY3K object = PyLong_FromString(PyBytes_AS_STRING(str), NULL, 10); #else object = PyInt_FromString(PyBytes_AS_STRING(str), NULL, 10); #endif } Py_DECREF(str); if (object == NULL) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "invalid number starting at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); } else { jsondata->ptr = ptr; } return object; } static PyObject *decode_array(JSONData *jsondata) { PyObject *object, *item; int c, expect_item, items, result; char *start; object = PyList_New(0); start = jsondata->ptr; jsondata->ptr++; expect_item = True; items = 0; while (True) { skipSpaces(jsondata); c = *jsondata->ptr; if (c == 0) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "unterminated array starting at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(start-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } else if (c == ']') { if (expect_item && items > 0) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "expecting array item at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } jsondata->ptr++; break; } else if (c == ',') { if (expect_item) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "expecting array item at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } expect_item = True; jsondata->ptr++; continue; } else { item = decode_json(jsondata); if (item == NULL) goto failure; result = PyList_Append(object, item); Py_DECREF(item); if (result == -1) goto failure; expect_item = False; items++; } } return object; failure: Py_DECREF(object); return NULL; } static PyObject *decode_object(JSONData *jsondata) { PyObject *object, *key, *value; int c, expect_key, items, result; char *start; object = PyDict_New(); expect_key = True; items = 0; start = jsondata->ptr; jsondata->ptr++; while (True) { skipSpaces(jsondata); c = *jsondata->ptr; if (c == 0) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "unterminated object starting at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(start-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } else if (c == '}') { if (expect_key && items > 0) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "expecting object property name at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } jsondata->ptr++; break; } else if (c == ',') { if (expect_key) { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "expecting object property name at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } expect_key = True; jsondata->ptr++; continue; } else { if (c != '"') { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "expecting property name in object at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); goto failure; } key = decode_json(jsondata); if (key == NULL) goto failure; skipSpaces(jsondata); if (*jsondata->ptr != ':') { int row, col; getRowAndCol(jsondata->str, jsondata->ptr, &row, &col); PyErr_Format(JSON_DecodeError, "missing colon after object property name at position "SSIZE_T_F"(row "SSIZE_T_F", col "SSIZE_T_F")", (Py_ssize_t)(jsondata->ptr-jsondata->str), (Py_ssize_t)row, (Py_ssize_t)col); Py_DECREF(key); goto failure; } else { jsondata->ptr++; } value = decode_json(jsondata); if (value == NULL) { Py_DECREF(key); goto failure; } result = PyDict_SetItem(object, key, value); Py_DECREF(key); Py_DECREF(value); if (result == -1) goto failure; expect_key = False; items++; } } return object; failure: Py_DECREF(object); return NULL; } static PyObject *decode_json(JSONData *jsondata) { PyObject *object; skipSpaces(jsondata); switch (*jsondata->ptr) { case 0: PyErr_SetString(JSON_DecodeError, "empty JSON description"); return NULL; case '{': object = decode_object(jsondata); break; case '[': object = decode_array(jsondata); break; case '"': object = decode_string(jsondata); break; case 't': case 'f': object = decode_bool(jsondata); break; case 'n': object = decode_null(jsondata); break; case 'N': object = decode_nan(jsondata); break; case 'I': object = decode_inf(jsondata); break; case '+': case '-': if (*(jsondata->ptr+1) == 'I') { object = decode_inf(jsondata); } else { object = decode_number(jsondata); } break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': object = decode_number(jsondata); break; default: PyErr_SetString(JSON_DecodeError, "cannot parse JSON description"); return NULL; } return object; } /* ------------------------------ Encoding ----------------------------- */ /* * This function is an almost verbatim copy of PyString_Repr() from * Python's stringobject.c with the following differences: * * - it always quotes the output using double quotes. * - it also quotes \b and \f * - it replaces any non ASCII character hh with \u00hh instead of \xhh */ static PyObject *encode_string(PyObject *string) { register PyBytesObject *op = (PyBytesObject *)string; size_t newsize = 2+6*Py_SIZE(op); PyObject *v; if (Py_SIZE(op) > (PY_SSIZE_T_MAX-2)/6) { PyErr_SetString(PyExc_OverflowError, "string is too large to make repr"); return NULL; } v = PyBytes_FromStringAndSize((char *)NULL, newsize); if (v == NULL) { return NULL; } else { register Py_ssize_t i; register char c; register char *p; int quote; quote = '"'; p = PyBytes_AS_STRING(v); *p++ = quote; for (i = 0; i < Py_SIZE(op); i++) { /* There's at least enough room for a hex escape and a closing quote. */ assert(newsize-(p-PyBytes_AS_STRING(v)) >= 7); c = op->ob_sval[i]; if (c == quote || c == '\\') *p++ = '\\', *p++ = c; else if (c == '\t') *p++ = '\\', *p++ = 't'; else if (c == '\n') *p++ = '\\', *p++ = 'n'; else if (c == '\r') *p++ = '\\', *p++ = 'r'; else if (c == '\f') *p++ = '\\', *p++ = 'f'; else if (c == '\b') *p++ = '\\', *p++ = 'b'; else if (c < ' ' || c >= 0x7f) { /* For performance, we don't want to call * PyOS_snprintf here (extra layers of * function call). */ sprintf(p, "\\u%04x", c&0xff); p += 6; } else *p++ = c; } assert(newsize-(p-PyBytes_AS_STRING(v)) >= 1); *p++ = quote; *p = '\0'; _PyBytes_Resize(&v, (int) (p-PyBytes_AS_STRING(v))); return v; } } /* * This function is an almost verbatim copy of unicodeescape_string() from * Python's unicodeobject.c with the following differences: * * - it always quotes the output using double quotes. * - it uses \u00hh instead of \xhh in output. * - it also quotes \b and \f */ #if defined(IS_PY26) || defined(IS_PY3K) static PyObject *encode_unicode(PyObject *unicode) { PyObject *repr; Py_UNICODE *s; Py_ssize_t size; char *p; static const char *hexdigit = "0123456789abcdef"; #ifdef Py_UNICODE_WIDE static const Py_ssize_t expandsize = 10; #else static const Py_ssize_t expandsize = 6; #endif s = PyUnicode_AS_UNICODE(unicode); size = PyUnicode_GET_SIZE(unicode); if (size > (PY_SSIZE_T_MAX-2-1)/expandsize) { PyErr_SetString(PyExc_OverflowError, "unicode object is too large to make repr"); return NULL; } repr = PyByteArray_FromStringAndSize(NULL, 2 + expandsize*size + 1); if (repr == NULL) return NULL; p = PyByteArray_AS_STRING(repr); *p++ = '"'; while (size-- > 0) { Py_UNICODE ch = *s++; /* Escape quotes */ if ((ch == (Py_UNICODE)PyByteArray_AS_STRING(repr)[0] || ch == '\\')) { *p++ = '\\'; *p++ = (char)ch; continue; } #ifdef Py_UNICODE_WIDE /* Map 21-bit characters to '\U00xxxxxx' */ else if (ch >= 0x10000) { *p++ = '\\'; *p++ = 'U'; *p++ = hexdigit[(ch>>28)&0x0000000F]; *p++ = hexdigit[(ch>>24)&0x0000000F]; *p++ = hexdigit[(ch>>20)&0x0000000F]; *p++ = hexdigit[(ch>>16)&0x0000000F]; *p++ = hexdigit[(ch>>12)&0x0000000F]; *p++ = hexdigit[(ch>>8)&0x0000000F]; *p++ = hexdigit[(ch>>4)&0x0000000F]; *p++ = hexdigit[ch&0x0000000F]; continue; } #else /* Map UTF-16 surrogate pairs to Unicode \UXXXXXXXX escapes */ else if (ch >= 0xD800 && ch < 0xDC00) { Py_UNICODE ch2; Py_UCS4 ucs; ch2 = *s++; size--; if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) { ucs = (((ch&0x03FF)<<10)|(ch2&0x03FF))+0x00010000; *p++ = '\\'; *p++ = 'U'; *p++ = hexdigit[(ucs>>28)&0x0000000F]; *p++ = hexdigit[(ucs>>24)&0x0000000F]; *p++ = hexdigit[(ucs>>20)&0x0000000F]; *p++ = hexdigit[(ucs>>16)&0x0000000F]; *p++ = hexdigit[(ucs>>12)&0x0000000F]; *p++ = hexdigit[(ucs>>8)&0x0000000F]; *p++ = hexdigit[(ucs>>4)&0x0000000F]; *p++ = hexdigit[ucs&0x0000000F]; continue; } /* Fall through: isolated surrogates are copied as-is */ s--; size++; } #endif /* Map 16-bit characters to '\uxxxx' */ if (ch >= 256) { *p++ = '\\'; *p++ = 'u'; *p++ = hexdigit[(ch>>12)&0x000F]; *p++ = hexdigit[(ch>>8)&0x000F]; *p++ = hexdigit[(ch>>4)&0x000F]; *p++ = hexdigit[ch&0x000F]; /* Map special whitespace to '\t', \n', '\r', '\f', '\b' */ } else if (ch == '\t') { *p++ = '\\'; *p++ = 't'; } else if (ch == '\n') { *p++ = '\\'; *p++ = 'n'; } else if (ch == '\r') { *p++ = '\\'; *p++ = 'r'; } else if (ch == '\f') { *p++ = '\\'; *p++ = 'f'; } else if (ch == '\b') { *p++ = '\\'; *p++ = 'b'; } /* Map non-printable US ASCII to '\u00hh' */ else if (ch < ' ' || ch >= 0x7F) { *p++ = '\\'; *p++ = 'u'; *p++ = '0'; *p++ = '0'; *p++ = hexdigit[(ch>>4)&0x000F]; *p++ = hexdigit[ch&0x000F]; } /* Copy everything else as-is */ else *p++ = (char)ch; } *p++ = PyByteArray_AS_STRING(repr)[0]; *p = '\0'; { PyObject *result = PyBytes_FromStringAndSize(PyByteArray_AS_STRING(repr), p - PyByteArray_AS_STRING(repr)); Py_DECREF(repr); return result; } } #else static PyObject *encode_unicode(PyObject *unicode) { PyObject *repr; Py_UNICODE *s; Py_ssize_t size; char *p; static const char *hexdigit = "0123456789abcdef"; #ifdef Py_UNICODE_WIDE static const Py_ssize_t expandsize = 10; #else static const Py_ssize_t expandsize = 6; #endif s = PyUnicode_AS_UNICODE(unicode); size = PyUnicode_GET_SIZE(unicode); if (size > (PY_SSIZE_T_MAX-2-1)/expandsize) { PyErr_SetString(PyExc_OverflowError, "unicode object is too large to make repr"); return NULL; } repr = PyString_FromStringAndSize(NULL, 2+expandsize*size+1); if (repr == NULL) return NULL; p = PyString_AS_STRING(repr); *p++ = '"'; while (size-- > 0) { Py_UNICODE ch = *s++; /* Escape quotes */ if ((ch == (Py_UNICODE)PyString_AS_STRING(repr)[0] || ch == '\\')) { *p++ = '\\'; *p++ = (char)ch; continue; } #ifdef Py_UNICODE_WIDE /* Map 21-bit characters to '\U00xxxxxx' */ else if (ch >= 0x10000) { int offset = p-PyString_AS_STRING(repr); /* Resize the string if necessary */ if (offset+12 > PyString_GET_SIZE(repr)) { if (_PyString_Resize(&repr, PyString_GET_SIZE(repr)+100)) return NULL; p = PyString_AS_STRING(repr)+offset; } *p++ = '\\'; *p++ = 'U'; *p++ = hexdigit[(ch>>28)&0x0000000F]; *p++ = hexdigit[(ch>>24)&0x0000000F]; *p++ = hexdigit[(ch>>20)&0x0000000F]; *p++ = hexdigit[(ch>>16)&0x0000000F]; *p++ = hexdigit[(ch>>12)&0x0000000F]; *p++ = hexdigit[(ch>>8)&0x0000000F]; *p++ = hexdigit[(ch>>4)&0x0000000F]; *p++ = hexdigit[ch&0x0000000F]; continue; } #endif /* Map UTF-16 surrogate pairs to Unicode \UXXXXXXXX escapes */ else if (ch >= 0xD800 && ch < 0xDC00) { Py_UNICODE ch2; Py_UCS4 ucs; ch2 = *s++; size--; if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) { ucs = (((ch&0x03FF)<<10)|(ch2&0x03FF))+0x00010000; *p++ = '\\'; *p++ = 'U'; *p++ = hexdigit[(ucs>>28)&0x0000000F]; *p++ = hexdigit[(ucs>>24)&0x0000000F]; *p++ = hexdigit[(ucs>>20)&0x0000000F]; *p++ = hexdigit[(ucs>>16)&0x0000000F]; *p++ = hexdigit[(ucs>>12)&0x0000000F]; *p++ = hexdigit[(ucs>>8)&0x0000000F]; *p++ = hexdigit[(ucs>>4)&0x0000000F]; *p++ = hexdigit[ucs&0x0000000F]; continue; } /* Fall through: isolated surrogates are copied as-is */ s--; size++; /* Map 16-bit characters to '\uxxxx' */ } if (ch >= 256) { *p++ = '\\'; *p++ = 'u'; *p++ = hexdigit[(ch>>12)&0x000F]; *p++ = hexdigit[(ch>>8)&0x000F]; *p++ = hexdigit[(ch>>4)&0x000F]; *p++ = hexdigit[ch&0x000F]; /* Map special whitespace to '\t', \n', '\r', '\f', '\b' */ } else if (ch == '\t') { *p++ = '\\'; *p++ = 't'; } else if (ch == '\n') { *p++ = '\\'; *p++ = 'n'; } else if (ch == '\r') { *p++ = '\\'; *p++ = 'r'; } else if (ch == '\f') { *p++ = '\\'; *p++ = 'f'; } else if (ch == '\b') { *p++ = '\\'; *p++ = 'b'; } /* Map non-printable US ASCII to '\u00hh' */ else if (ch < ' ' || ch >= 0x7F) { *p++ = '\\'; *p++ = 'u'; *p++ = '0'; *p++ = '0'; *p++ = hexdigit[(ch>>4)&0x000F]; *p++ = hexdigit[ch&0x000F]; } /* Copy everything else as-is */ else *p++ = (char)ch; } *p++ = PyString_AS_STRING(repr)[0]; *p = '\0'; _PyString_Resize(&repr, p-PyString_AS_STRING(repr)); return repr; } #endif /* * This function is an almost verbatim copy of tuplerepr() from * Python's tupleobject.c with the following differences: * * - it uses encode_object() to get the object's JSON reprezentation. * - it uses [] as decorations isntead of () (to masquerade as a JSON array). */ static PyObject *encode_tuple(PyObject *tuple) { Py_ssize_t i, n; PyObject *s, *temp; PyObject *pieces, *result = NULL; PyTupleObject *v = (PyTupleObject *)tuple; n = Py_SIZE(v); if (n == 0) return PyBytes_FromString("[]"); pieces = PyTuple_New(n); if (pieces == NULL) return NULL; /* Do repr() on each element. */ for (i = 0; i < n; ++i) { s = encode_object(v->ob_item[i]); if (s == NULL) goto Done; PyTuple_SET_ITEM(pieces, i, s); } /* Add "[]" decorations to the first and last items. */ assert(n > 0); s = PyBytes_FromString("["); if (s == NULL) goto Done; temp = PyTuple_GET_ITEM(pieces, 0); PyBytes_ConcatAndDel(&s, temp); PyTuple_SET_ITEM(pieces, 0, s); if (s == NULL) goto Done; s = PyBytes_FromString("]"); if (s == NULL) goto Done; temp = PyTuple_GET_ITEM(pieces, n-1); PyBytes_ConcatAndDel(&temp, s); PyTuple_SET_ITEM(pieces, n-1, temp); if (temp == NULL) goto Done; /* Paste them all together with ", " between. */ s = PyBytes_FromString(", "); if (s == NULL) goto Done; result = _PyBytes_Join(s, pieces); Py_DECREF(s); Done: Py_DECREF(pieces); return result; } /* * This function is an almost verbatim copy of list_repr() from * Python's listobject.c with the following differences: * * - it uses encode_object() to get the object's JSON reprezentation. * - it doesn't use the ellipsis to represent a list with references * to itself, instead it raises an exception as such lists cannot be * represented in JSON. */ static PyObject *encode_list(PyObject *list) { Py_ssize_t i; PyObject *s, *temp; PyObject *pieces = NULL, *result = NULL; PyListObject *v = (PyListObject *)list; i = Py_ReprEnter((PyObject *)v); if (i != 0) { if (i > 0) { PyErr_SetString(JSON_EncodeError, "a list with references to itself is not JSON encodable"); } return NULL; } if (Py_SIZE(v) == 0) { result = PyBytes_FromString("[]"); goto Done; } pieces = PyList_New(0); if (pieces == NULL) goto Done; /* Do repr() on each element. Note that this may mutate the list, * so must refetch the list size on each iteration. */ for (i = 0; i < Py_SIZE(v); ++i) { int status; s = encode_object(v->ob_item[i]); if (s == NULL) goto Done; status = PyList_Append(pieces, s); Py_DECREF(s); /* append created a new ref */ if (status < 0) goto Done; } /* Add "[]" decorations to the first and last items. */ assert(PyList_GET_SIZE(pieces) > 0); s = PyBytes_FromString("["); if (s == NULL) goto Done; temp = PyList_GET_ITEM(pieces, 0); PyBytes_ConcatAndDel(&s, temp); PyList_SET_ITEM(pieces, 0, s); if (s == NULL) goto Done; s = PyBytes_FromString("]"); if (s == NULL) goto Done; temp = PyList_GET_ITEM(pieces, PyList_GET_SIZE(pieces)-1); PyBytes_ConcatAndDel(&temp, s); PyList_SET_ITEM(pieces, PyList_GET_SIZE(pieces)-1, temp); if (temp == NULL) goto Done; /* Paste them all together with ", " between. */ s = PyBytes_FromString(", "); if (s == NULL) goto Done; result = _PyBytes_Join(s, pieces); Py_DECREF(s); Done: Py_XDECREF(pieces); Py_ReprLeave((PyObject *)v); return result; } /* * This function is an almost verbatim copy of dict_repr() from * Python's dictobject.c with the following differences: * * - it uses encode_object() to get the object's JSON reprezentation. * - only accept strings for keys. * - it doesn't use the ellipsis to represent a dictionary with references * to itself, instead it raises an exception as such dictionaries cannot * be represented in JSON. */ static PyObject *encode_dict(PyObject *dict) { Py_ssize_t i; PyObject *s, *temp, *colon = NULL; PyObject *pieces = NULL, *result = NULL; PyObject *key, *value; PyDictObject *mp = (PyDictObject *)dict; i = Py_ReprEnter((PyObject *)mp); if (i != 0) { if (i > 0) { PyErr_SetString(JSON_EncodeError, "a dict with references to " "itself is not JSON encodable"); } return NULL; } if (mp->ma_used == 0) { result = PyBytes_FromString("{}"); goto Done; } pieces = PyList_New(0); if (pieces == NULL) goto Done; colon = PyBytes_FromString(": "); if (colon == NULL) goto Done; /* Do repr() on each key+value pair, and insert ": " between them. * Note that repr may mutate the dict. */ i = 0; while (PyDict_Next((PyObject *)mp, &i, &key, &value)) { int status; if (!PyBytes_Check(key) && !PyUnicode_Check(key)) { PyErr_SetString(JSON_EncodeError, "JSON encodable dictionaries must have string/unicode keys"); goto Done; } /* Prevent repr from deleting value during key format. */ Py_INCREF(value); s = encode_object(key); PyBytes_Concat(&s, colon); PyBytes_ConcatAndDel(&s, encode_object(value)); Py_DECREF(value); if (s == NULL) goto Done; status = PyList_Append(pieces, s); Py_DECREF(s); /* append created a new ref */ if (status < 0) goto Done; } /* Add "{}" decorations to the first and last items. */ assert(PyList_GET_SIZE(pieces) > 0); s = PyBytes_FromString("{"); if (s == NULL) goto Done; temp = PyList_GET_ITEM(pieces, 0); PyBytes_ConcatAndDel(&s, temp); PyList_SET_ITEM(pieces, 0, s); if (s == NULL) goto Done; s = PyBytes_FromString("}"); if (s == NULL) goto Done; temp = PyList_GET_ITEM(pieces, PyList_GET_SIZE(pieces)-1); PyBytes_ConcatAndDel(&temp, s); PyList_SET_ITEM(pieces, PyList_GET_SIZE(pieces)-1, temp); if (temp == NULL) goto Done; /* Paste them all together with ", " between. */ s = PyBytes_FromString(", "); if (s == NULL) goto Done; result = _PyBytes_Join(s, pieces); Py_DECREF(s); Done: Py_XDECREF(pieces); Py_XDECREF(colon); Py_ReprLeave((PyObject *)mp); return result; } static PyObject *encode_object(PyObject *object) { if (object == Py_True) { return PyBytes_FromString("true"); } else if (object == Py_False) { return PyBytes_FromString("false"); } else if (object == Py_None) { return PyBytes_FromString("null"); } else if (PyBytes_Check(object)) { return encode_string(object); } else if (PyUnicode_Check(object)) { return encode_unicode(object); } else if (PyFloat_Check(object)) { double val = PyFloat_AS_DOUBLE(object); if (Py_IS_NAN(val)) { return PyBytes_FromString("NaN"); } else if (Py_IS_INFINITY(val)) { if (val > 0) { return PyBytes_FromString("Infinity"); } else { return PyBytes_FromString("-Infinity"); } } else { return cjson_PyObject_Str(object); } } #ifdef IS_PY3K else if (PyLong_Check(object)) { return cjson_PyObject_Str(object); } #else else if (PyInt_Check(object) || PyLong_Check(object)) { return cjson_PyObject_Str(object); } #endif else if (PyList_Check(object)) { return encode_list(object); } else if (PyTuple_Check(object)) { return encode_tuple(object); } else if (PyDict_Check(object)) { /* use PyMapping_Check(object) instead? -Dan */ return encode_dict(object); } else { PyErr_SetString(JSON_EncodeError, "object is not JSON encodable"); return NULL; } } /* Encode object into its JSON representation */ static PyObject *JSON_encode(PyObject *self, PyObject *object) { return encode_object(object); } /* Decode JSON representation into pyhton objects */ static PyObject *JSON_decode(PyObject *self, PyObject *args, PyObject *kwargs) { static char *kwlist[] = { "json", "all_unicode", NULL }; #ifdef IS_PY3K int all_unicode = True; /* by default return unicode always */ #else int all_unicode = False; /* by default return unicode only when needed */ #endif PyObject *object, *string, *str; JSONData jsondata; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|i:decode", kwlist, &string, &all_unicode)) return NULL; if (PyUnicode_Check(string)) { #ifdef IS_PY3K /* HACK: Workaround for crash bug in Python3's PyUnicode_AsRawUnicodeEscapeString... */ str = PyUnicode_EncodeRawUnicodeEscape(PyUnicode_AS_UNICODE(string), PyUnicode_GET_SIZE(string)); #else str = PyUnicode_AsRawUnicodeEscapeString(string); #endif if (str == NULL) { return NULL; } } else { Py_INCREF(string); str = string; } if (PyBytes_AsStringAndSize(str, &(jsondata.str), NULL) == -1) { Py_DECREF(str); return NULL; /* not a string object or it contains null bytes */ } jsondata.ptr = jsondata.str; jsondata.end = jsondata.str+strlen(jsondata.str); jsondata.all_unicode = all_unicode; object = decode_json(&jsondata); if (object != NULL) { skipSpaces(&jsondata); if (jsondata.ptr < jsondata.end) { PyErr_Format(JSON_DecodeError, "extra data after JSON description at position "SSIZE_T_F, (Py_ssize_t)(jsondata.ptr-jsondata.str)); Py_DECREF(str); Py_DECREF(object); return NULL; } } Py_DECREF(str); return object; } /* List of functions defined in the module */ static PyMethodDef cjson_methods[] = { { "encode", (PyCFunction)JSON_encode, METH_O, PyDoc_STR("encode(object) -> generate the JSON representation for object.") }, /* On Python 3.x we normally want Unicode. */ { "decode", (PyCFunction)JSON_decode, METH_VARARGS|METH_KEYWORDS, #ifdef IS_PY3K PyDoc_STR("decode(string, all_unicode=True) -> parse the JSON representation into\n" "python objects. The optional argument `all_unicode', specifies how to\n" "convert the strings in the JSON representation into python objects.\n" "If it is False (default on Python 2.x), it will return strings/bytes\n" "everywhere possible and unicode objects only where necessary, else\n" "it will return unicode objects everywhere (this is slower, but default\n" "on Python 3.x).") #else PyDoc_STR("decode(string, all_unicode=False) -> parse the JSON representation into\n" "python objects. The optional argument `all_unicode', specifies how to\n" "convert the strings in the JSON representation into python objects.\n" "If it is False (default on Python 2.x), it will return strings/bytes\n" "everywhere possible and unicode objects only where necessary, else\n" "it will return unicode objects everywhere (this is slower, but default\n" "on Python 3.x).") #endif }, { NULL, NULL, 0, NULL } /* sentinel */ }; PyDoc_STRVAR(module_doc, "Fast JSON encoder/decoder module."); #define MODULE_VERSION "1.0.5" static void initcjson_shared(PyObject *m) { JSON_Error = PyErr_NewException("cjson.Error", NULL, NULL); if (JSON_Error == NULL) return; Py_INCREF(JSON_Error); PyModule_AddObject(m, "Error", JSON_Error); JSON_EncodeError = PyErr_NewException("cjson.EncodeError", JSON_Error, NULL); if (JSON_EncodeError == NULL) return; Py_INCREF(JSON_EncodeError); PyModule_AddObject(m, "EncodeError", JSON_EncodeError); JSON_DecodeError = PyErr_NewException("cjson.DecodeError", JSON_Error, NULL); if (JSON_DecodeError == NULL) return; Py_INCREF(JSON_DecodeError); PyModule_AddObject(m, "DecodeError", JSON_DecodeError); /* Module version (the MODULE_VERSION macro is defined by setup.py) */ PyModule_AddStringConstant(m, "__version__", MODULE_VERSION); } #ifdef IS_PY3K static PyModuleDef cjsonModule = { PyModuleDef_HEAD_INIT, "cjson", /* m_name */ module_doc, /* m_doc */ -1, /* m_size */ cjson_methods, /* m_methods */ NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; PyObject* PyInit_cjson(void) { PyObject *m; m = PyModule_Create(&cjsonModule); if (m == NULL) return NULL; initcjson_shared(m); return m; } #else /* Initialization function for the module (*must *be called initcjson) */ PyMODINIT_FUNC initcjson(void) { PyObject *m; m = Py_InitModule3("cjson", cjson_methods, module_doc); if (m == NULL) return; initcjson_shared(m); } #endif crossfire-1.70.0/plugins/cfpython/cfpython_object.c0000644000014500000120000023176111731300520017343 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include #include /* Table for keeping track of which PyObject goes with with Crossfire object */ static ptr_assoc_table object_assoc_table; /* Helper functions for dealing with object_assoc_table */ void init_object_assoc_table(void) { init_ptr_assoc_table(object_assoc_table); } static void add_object_assoc(object *key, PyObject *value) { add_ptr_assoc(object_assoc_table, key, value); } static PyObject *find_assoc_pyobject(object *key) { return (PyObject *)find_assoc_value(object_assoc_table, key); } static void free_object_assoc(object *key) { free_ptr_assoc(object_assoc_table, key); } static PyObject *Player_GetTitle(Crossfire_Object *whoptr, void *closure) { char title[MAX_NAME]; EXISTCHECK(whoptr); return Py_BuildValue("s", cf_player_get_title(whoptr->obj, title, MAX_NAME)); } static int Player_SetTitle(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Title attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Title attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_player_set_title(whoptr->obj, val); return 0; } static PyObject *Player_GetIP(Crossfire_Player *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_player_get_ip(whoptr->obj)); } static PyObject *Player_GetMarkedItem(Crossfire_Player *whoptr, void *closure) { EXISTCHECK(whoptr); return Crossfire_Object_wrap(cf_player_get_marked_item(whoptr->obj)); } static int Player_SetMarkedItem(Crossfire_Player *whoptr, PyObject *value, void *closure) { Crossfire_Object *ob; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "O!", &Crossfire_ObjectType, &ob)) return -1; cf_player_set_marked_item(whoptr->obj, ob->obj); return 0; } static PyObject *Crossfire_Player_Message(Crossfire_Player *who, PyObject *args) { char *message; int color = NDI_UNIQUE|NDI_ORANGE; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s|i", &message, &color)) return NULL; cf_player_message(who->obj, message, color); Py_INCREF(Py_None); return Py_None; } static PyObject *Player_KnowledgeKnown(Crossfire_Player *who, PyObject *args) { const char *knowledge; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &knowledge)) return NULL; return Py_BuildValue("i", cf_player_knowledge_has(who->obj, knowledge)); } static PyObject *Player_GetParty(Crossfire_Player *whoptr, void *closure) { EXISTCHECK(whoptr); return Crossfire_Party_wrap(cf_player_get_party(whoptr->obj)); } static int Player_SetParty(Crossfire_Player *whoptr, PyObject *value, void *closure) { Crossfire_Party *ob; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "O!", &Crossfire_PartyType, &ob)) return -1; cf_player_set_party(whoptr->obj, ob->party); return 0; } static PyObject *Crossfire_Player_CanPay(Crossfire_Player *who, PyObject *args) { EXISTCHECK(who); return Py_BuildValue("i", cf_player_can_pay(who->obj)); } static PyObject *Player_GetBedMap(Crossfire_Player *whoptr, void *closure) { char bed[200]; EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_string_property(whoptr->obj, CFAPI_PLAYER_PROP_BED_MAP, bed, sizeof(bed))); } static int Player_SetBedMap(Crossfire_Player *whoptr, PyObject *value, void *closure) { char *location; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "s", &location)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_PLAYER_PROP_BED_MAP, location); return 0; } static PyObject *Player_GetBedX(Crossfire_Player *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_PLAYER_PROP_BED_X)); } static int Player_SetBedX(Crossfire_Player *whoptr, PyObject *value, void *closure) { int x; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &x)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_PLAYER_PROP_BED_X, x); return 0; } static PyObject *Player_GetBedY(Crossfire_Player *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_PLAYER_PROP_BED_Y)); } static int Player_SetBedY(Crossfire_Player *whoptr, PyObject *value, void *closure) { int y; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &y)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_PLAYER_PROP_BED_Y, y); return 0; } static PyObject *Player_QuestStart(Crossfire_Player *whoptr, PyObject *args) { char *code; int state; sstring quest_code; EXISTCHECK(whoptr); if (!PyArg_ParseTuple(args, "si", &code, &state)) return NULL; quest_code = cf_add_string(code); cf_quest_start(whoptr->obj, quest_code, state); cf_free_string(quest_code); Py_INCREF(Py_None); return Py_None; } static PyObject *Player_QuestGetState(Crossfire_Player *whoptr, PyObject *args) { char *code; int state; sstring quest_code; EXISTCHECK(whoptr); if (!PyArg_ParseTuple(args, "s", &code)) return NULL; quest_code = cf_add_string(code); state = cf_quest_get_player_state(whoptr->obj, quest_code); cf_free_string(quest_code); return Py_BuildValue("i", state); } static PyObject *Player_QuestSetState(Crossfire_Player *whoptr, PyObject *args) { char *code; int state; sstring quest_code; EXISTCHECK(whoptr); if (!PyArg_ParseTuple(args, "si", &code, &state)) return NULL; quest_code = cf_add_string(code); cf_quest_set_player_state(whoptr->obj, quest_code, state); cf_free_string(quest_code); Py_INCREF(Py_None); return Py_None; } static PyObject *Player_QuestWasCompleted(Crossfire_Player *whoptr, PyObject *args) { char *code; int completed; sstring quest_code; EXISTCHECK(whoptr); if (!PyArg_ParseTuple(args, "s", &code)) return NULL; quest_code = cf_add_string(code); completed = cf_quest_was_completed(whoptr->obj, quest_code); cf_free_string(quest_code); return Py_BuildValue("i", completed); } /* Object properties. Get and maybe set. */ static PyObject *Object_GetName(Crossfire_Object *whoptr, void *closure) { char name[200]; EXISTCHECK(whoptr); return Py_BuildValue("s", cf_query_name(whoptr->obj, name, sizeof(name))); } static PyObject *Object_GetNamePl(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", (char *)cf_query_name_pl(whoptr->obj)); } static PyObject *Object_GetTitle(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_TITLE)); } static PyObject *Object_GetRace(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_RACE)); } static PyObject *Object_GetMap(Crossfire_Object *whoptr, void *closure) { mapstruct *m; EXISTCHECK(whoptr); m = cf_object_get_map_property(whoptr->obj, CFAPI_OBJECT_PROP_MAP); return Crossfire_Map_wrap(m); } static PyObject *Object_GetCha(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_CHA)); } static PyObject *Object_GetCon(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_CON)); } static PyObject *Object_GetDex(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DEX)); } static PyObject *Object_GetInt(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_INT)); } static PyObject *Object_GetPow(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_POW)); } static PyObject *Object_GetStr(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_STR)); } static PyObject *Object_GetWis(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WIS)); } static PyObject *Object_GetHP(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_HP)); } static PyObject *Object_GetMaxHP(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MAXHP)); } static PyObject *Object_GetSP(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_SP)); } static PyObject *Object_GetMaxSP(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MAXSP)); } static PyObject *Object_GetGrace(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_GP)); } static PyObject *Object_GetMaxGrace(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MAXGP)); } static PyObject *Object_GetFood(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_FP)); } static PyObject *Object_GetAC(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_AC)); } static PyObject *Object_GetWC(Crossfire_Object *whoptr, void *closure) { return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WC)); } static PyObject *Object_GetDam(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DAM)); } static PyObject *Object_GetLuck(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LUCK)); } static PyObject *Object_GetMessage(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_MESSAGE)); } static PyObject *Object_GetSkill(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_SKILL)); } static PyObject *Object_GetExp(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("L", cf_object_get_int64_property(whoptr->obj, CFAPI_OBJECT_PROP_EXP)); } static PyObject *Object_GetPermExp(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("L", cf_object_get_int64_property(whoptr->obj, CFAPI_OBJECT_PROP_PERM_EXP)); } static PyObject *Object_GetExpMul(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("d", cf_object_get_double_property(whoptr->obj, CFAPI_OBJECT_PROP_EXP_MULTIPLIER)); } static PyObject *Object_GetSlaying(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_SLAYING)); } static PyObject *Object_GetCursed(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_CURSED)); } static PyObject *Object_GetDamned(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_DAMNED)); } static PyObject *Object_GetWeight(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WEIGHT)); } static PyObject *Object_GetWeightLimit(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WEIGHT_LIMIT)); } static PyObject *Object_GetAbove(Crossfire_Object *whoptr, void *closure) { object *op; EXISTCHECK(whoptr); op = cf_object_get_object_property(whoptr->obj, CFAPI_OBJECT_PROP_OB_ABOVE); return Crossfire_Object_wrap(op); } static PyObject *Object_GetBelow(Crossfire_Object *whoptr, void *closure) { object *op; EXISTCHECK(whoptr); op = cf_object_get_object_property(whoptr->obj, CFAPI_OBJECT_PROP_OB_BELOW); return Crossfire_Object_wrap(op); } static PyObject *Object_GetInventory(Crossfire_Object *whoptr, void *closure) { object *op; EXISTCHECK(whoptr); op = cf_object_get_object_property(whoptr->obj, CFAPI_OBJECT_PROP_INVENTORY); return Crossfire_Object_wrap(op); } static PyObject *Object_GetX(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_X)); } static PyObject *Object_GetY(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_Y)); } static PyObject *Object_GetDirection(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DIRECTION)); } static PyObject *Object_GetFacing(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_FACING)); } static PyObject *Object_GetUnaggressive(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_UNAGGRESSIVE)); } static PyObject *Object_GetGod(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_GOD)); } static PyObject *Object_GetPickable(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", !cf_object_get_flag(whoptr->obj, FLAG_NO_PICK)); } static PyObject *Object_GetQuantity(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_NROF)); } static PyObject *Object_GetInvisible(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_INVISIBLE)); } static PyObject *Object_GetSpeed(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("f", cf_object_get_float_property(whoptr->obj, CFAPI_OBJECT_PROP_SPEED)); } static PyObject *Object_GetSpeedLeft(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("f", cf_object_get_float_property(whoptr->obj, CFAPI_OBJECT_PROP_SPEED_LEFT)); } static PyObject *Object_GetLastSP(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LAST_SP)); } static PyObject *Object_GetLastGrace(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LAST_GRACE)); } static PyObject *Object_GetLastEat(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LAST_EAT)); } static PyObject *Object_GetLevel(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LEVEL)); } static PyObject *Object_GetFace(Crossfire_Object *whoptr, void *closure) { char buf[200]; EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_string_property(whoptr->obj, CFAPI_OBJECT_PROP_FACE, buf, sizeof(buf))); } static PyObject *Object_GetAnim(Crossfire_Object *whoptr, void *closure) { char buf[200]; EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_string_property(whoptr->obj, CFAPI_OBJECT_PROP_ANIMATION, buf, sizeof(buf))); } static PyObject *Object_GetAnimSpeed(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_ANIM_SPEED)); } static PyObject *Object_GetAttackType(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_ATTACK_TYPE)); } static PyObject *Object_GetBeenApplied(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_BEEN_APPLIED)); } static PyObject *Object_GetIdentified(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_IDENTIFIED)); } static PyObject *Object_GetAlive(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_ALIVE)); } static PyObject *Object_GetDM(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_WIZ)); } static PyObject *Object_GetWasDM(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_WAS_WIZ)); } static PyObject *Object_GetApplied(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_APPLIED)); } static PyObject *Object_GetUnpaid(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_UNPAID)); } static PyObject *Object_GetMonster(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_MONSTER)); } static PyObject *Object_GetFriendly(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_FRIENDLY)); } static PyObject *Object_GetGenerator(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_GENERATOR)); } static PyObject *Object_GetThrown(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_IS_THROWN)); } static PyObject *Object_GetCanSeeInvisible(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_SEE_INVISIBLE)); } static PyObject *Object_GetRollable(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_CAN_ROLL)); } static PyObject *Object_GetTurnable(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_IS_TURNABLE)); } static PyObject *Object_GetUsedUp(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_IS_USED_UP)); } static PyObject *Object_GetSplitting(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_SPLITTING)); } static PyObject *Object_GetBlind(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_BLIND)); } static PyObject *Object_GetCanUseSkill(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_CAN_USE_SKILL)); } static PyObject *Object_GetKnownCursed(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_KNOWN_CURSED)); } static PyObject *Object_GetStealthy(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_STEALTH)); } static PyObject *Object_GetConfused(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_CONFUSED)); } static PyObject *Object_GetSleeping(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_SLEEP)); } static PyObject *Object_GetLifesaver(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_LIFESAVE)); } static PyObject *Object_GetFloor(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_IS_FLOOR)); } static PyObject *Object_GetHasXRays(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_XRAYS)); } static PyObject *Object_GetCanUseRing(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_USE_RING)); } static PyObject *Object_GetCanUseBow(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_USE_BOW)); } static PyObject *Object_GetCanUseWand(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_USE_RANGE)); } static PyObject *Object_GetCanSeeInDark(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_SEE_IN_DARK)); } static PyObject *Object_GetKnownMagical(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_KNOWN_MAGICAL)); } static PyObject *Object_GetCanUseWeapon(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_USE_WEAPON)); } static PyObject *Object_GetCanUseArmour(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_USE_ARMOUR)); } static PyObject *Object_GetCanUseScroll(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_USE_SCROLL)); } static PyObject *Object_GetCanCastSpell(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_CAST_SPELL)); } static PyObject *Object_GetReflectSpells(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_REFL_SPELL)); } static PyObject *Object_GetReflectMissiles(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_REFL_MISSILE)); } static PyObject *Object_GetUnique(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_UNIQUE)); } static PyObject *Object_GetRunAway(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_RUN_AWAY)); } static PyObject *Object_GetScared(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_SCARED)); } static PyObject *Object_GetUndead(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_UNDEAD)); } static PyObject *Object_GetBlocksView(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_BLOCKSVIEW)); } static PyObject *Object_GetHitBack(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_HITBACK)); } static PyObject *Object_GetStandStill(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_STAND_STILL)); } static PyObject *Object_GetOnlyAttack(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_ONLY_ATTACK)); } static PyObject *Object_GetMakeInvisible(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_MAKE_INVIS)); } static PyObject *Object_GetMoney(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_query_money(whoptr->obj)); } static PyObject *Object_GetType(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_TYPE)); } static PyObject *Object_GetSubtype(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_SUBTYPE)); } static PyObject *Object_GetValue(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("l", cf_object_get_long_property(whoptr->obj, CFAPI_OBJECT_PROP_VALUE)); } static PyObject *Object_GetArchName(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("s", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_ARCH_NAME)); } static PyObject *Object_GetArchetype(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Crossfire_Archetype_wrap(cf_object_get_archetype_property(whoptr->obj, CFAPI_OBJECT_PROP_ARCHETYPE)); } static PyObject *Object_GetNoSave(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_NO_SAVE)); } static PyObject *Object_GetExists(Crossfire_Object *whoptr, void *closure) { if (!object_was_destroyed(whoptr->obj, whoptr->obj->count)) { Py_INCREF(Py_True); return Py_True; } else { Py_INCREF(Py_False); return Py_False; } } static PyObject *Object_GetEnv(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Crossfire_Object_wrap(cf_object_get_object_property(whoptr->obj, CFAPI_OBJECT_PROP_ENVIRONMENT)); } static PyObject *Object_GetMoveType(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_movetype_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_TYPE)); } static PyObject *Object_GetMoveBlock(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_movetype_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_BLOCK)); } static PyObject *Object_GetMoveAllow(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_movetype_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_ALLOW)); } static PyObject *Object_GetMoveOn(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_movetype_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_ON)); } static PyObject *Object_GetMoveOff(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_movetype_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_OFF)); } static PyObject *Object_GetMoveSlow(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_movetype_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_SLOW)); } static PyObject *Object_GetMoveSlowPenalty(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("f", cf_object_get_float_property(whoptr->obj, CFAPI_OBJECT_PROP_MOVE_SLOW_PENALTY)); } static PyObject *Object_GetOwner(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Crossfire_Object_wrap(cf_object_get_object_property(whoptr->obj, CFAPI_OBJECT_PROP_OWNER)); } static PyObject *Object_GetEnemy(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Crossfire_Object_wrap(cf_object_get_object_property(whoptr->obj, CFAPI_OBJECT_PROP_ENEMY)); } static PyObject *Object_GetCount(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_COUNT)); } static PyObject *Object_GetGodGiven(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_STARTEQUIP)); } static PyObject *Object_GetNoDamage(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_NO_DAMAGE)); } static PyObject *Object_GetRandomMovement(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_RANDOM_MOVE)); } static PyObject *Object_GetIsPet(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_FRIENDLY)); } static PyObject *Object_GetAttackMovement(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_ATTACK_MOVEMENT)); } static PyObject *Object_GetDuration(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DURATION)); } static PyObject *Object_GetGlowRadius(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_GLOW_RADIUS)); } static PyObject *Object_GetAnimated(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_get_flag(whoptr->obj, FLAG_ANIMATE)); } static PyObject *Object_GetMaterial(Crossfire_Object *whoptr, void *closure) { EXISTCHECK(whoptr); return Py_BuildValue("{s:s,s:i}", "Name", cf_object_get_sstring_property(whoptr->obj, CFAPI_OBJECT_PROP_MATERIAL_NAME), "Number", cf_object_get_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MATERIAL)); } /** Setters */ static int Object_SetMessage(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Message attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Message attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_MESSAGE, val); return 0; } static int Object_SetName(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Name attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Name attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_NAME, val); cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_NAME_PLURAL, val); return 0; } static int Object_SetNamePl(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the NamePl attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The NamePl attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_NAME_PLURAL, val); return 0; } static int Object_SetTitle(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Title attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Title attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_TITLE, val); return 0; } static int Object_SetRace(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Race attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Race attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_RACE, val); return 0; } static int Object_SetMap(Crossfire_Object *whoptr, PyObject *value, void *closure) { Crossfire_Map *val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "O!", &Crossfire_MapType, &val)) return -1; cf_object_change_map(whoptr->obj, val->map, NULL, 0, -1, -1); return 0; } static int Object_SetSlaying(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Slaying attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Slaying attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_SLAYING, val); return 0; } static int Object_SetSkill(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (value == NULL) { PyErr_SetString(PyExc_TypeError, "Cannot delete the Skill attribute"); return -1; } if (!CF_IS_PYSTR(value)) { PyErr_SetString(PyExc_TypeError, "The Skill attribute must be a string"); return -1; } if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_SKILL, val); return 0; } static int Object_SetCursed(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_CURSED, val); return 0; } static int Object_SetDamned(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_DAMNED, val); return 0; } static int Object_SetApplied(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_APPLIED, val); return 0; } static int Object_SetStr(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_STR, val); /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetDex(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DEX, val); /*cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetCon(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_CON, val); /*cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetInt(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_INT, val); /*cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetPow(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_POW, val); /*cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetWis(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WIS, val); /*cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetCha(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_CHA, val); /*cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetHP(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_HP, val); return 0; } static int Object_SetMaxHP(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MAXHP, val); return 0; } static int Object_SetSP(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_SP, val); return 0; } static int Object_SetMaxSP(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MAXSP, val); return 0; } static int Object_SetGrace(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_GP, val); return 0; } static int Object_SetMaxGrace(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_MAXGP, val); return 0; } static int Object_SetAC(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_AC, val); return 0; } static int Object_SetWC(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WC, val); return 0; } static int Object_SetDam(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DAM, val); return 0; } static int Object_SetFood(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_FP, val); return 0; } static int Object_SetWeight(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WEIGHT, val); return 0; } static int Object_SetWeightLimit(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_WEIGHT_LIMIT, val); return 0; } static int Object_SetDirection(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DIRECTION, val); return 0; } static int Object_SetFacing(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_FACING, val); return 0; } static int Object_SetGod(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "s", &val)) return -1; cf_object_set_string_property(whoptr->obj, CFAPI_OBJECT_PROP_GOD, val); return 0; } static int Object_SetSpeed(Crossfire_Object *whoptr, PyObject *value, void *closure) { float val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "f", &val)) return -1; cf_object_set_float_property(whoptr->obj, CFAPI_OBJECT_PROP_SPEED, val); /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetSpeedLeft(Crossfire_Object *whoptr, PyObject *value, void *closure) { float val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "f", &val)) return -1; cf_object_set_float_property(whoptr->obj, CFAPI_OBJECT_PROP_SPEED_LEFT, val); /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetQuantity(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; if (cf_object_set_nrof(whoptr->obj, val) != 0) { PyErr_SetString(PyExc_TypeError, "Invalid quantity"); return -1; } /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetLastSP(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LAST_SP, val); /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetLastGrace(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LAST_GRACE, val); /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetLastEat(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_LAST_EAT, val); return 0; } static int Object_SetFace(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *face; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "s", &face)) return -1; if (!cf_object_set_face(whoptr->obj, face)) { PyErr_SetString(PyExc_TypeError, "Unknown face."); return -1; } return 0; } static int Object_SetAnim(Crossfire_Object *whoptr, PyObject *value, void *closure) { char *anim; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "s", &anim)) return -1; if (!cf_object_set_animation(whoptr->obj, anim)) { PyErr_SetString(PyExc_TypeError, "Unknown animation."); return -1; } return 0; } static int Object_SetAnimSpeed(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_ANIM_SPEED, val); return 0; } static int Object_SetAttackType(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_ATTACK_TYPE, val); /* cf_fix_object(whoptr->obj);*/ return 0; } static int Object_SetIdentified(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_IDENTIFIED, val); return 0; } static int Object_SetUnaggressive(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_UNAGGRESSIVE, val); return 0; } static int Object_SetPickable(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_NO_PICK, !val); return 0; } static int Object_SetInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_ParseTuple(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_INVISIBLE, val); return 0; } static int Object_SetUnpaid(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_UNPAID, val); return 0; } static int Object_SetFriendly(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_FRIENDLY, val); return 0; } static int Object_SetCanSeeInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_SEE_INVISIBLE, val); return 0; } static int Object_SetRollable(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_CAN_ROLL, val); return 0; } static int Object_SetTurnable(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_IS_TURNABLE, val); return 0; } static int Object_SetUsedUp(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_IS_USED_UP, val); return 0; } static int Object_SetBlind(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_BLIND, val); return 0; } static int Object_SetKnownCursed(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_KNOWN_CURSED, val); return 0; } static int Object_SetStealthy(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_STEALTH, val); return 0; } static int Object_SetConfused(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_CONFUSED, val); return 0; } static int Object_SetSleeping(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_SLEEP, val); return 0; } static int Object_SetLifesaver(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_LIFESAVE, val); return 0; } static int Object_SetHasXRays(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_XRAYS, val); return 0; } static int Object_SetCanSeeInDark(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_SEE_IN_DARK, val); return 0; } static int Object_SetKnownMagical(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_KNOWN_MAGICAL, val); return 0; } static int Object_SetReflectSpells(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_REFL_SPELL, val); return 0; } static int Object_SetReflectMissiles(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_REFL_MISSILE, val); return 0; } static int Object_SetUnique(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_UNIQUE, val); return 0; } static int Object_SetRunAway(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_RUN_AWAY, val); return 0; } static int Object_SetScared(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_SCARED, val); return 0; } static int Object_SetUndead(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_UNDEAD, val); return 0; } static int Object_SetBlocksView(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_BLOCKSVIEW, val); return 0; } static int Object_SetHitBack(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_HITBACK, val); return 0; } static int Object_SetStandStill(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_STAND_STILL, val); return 0; } static int Object_SetOnlyAttack(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_ONLY_ATTACK, val); return 0; } static int Object_SetMakeInvisible(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_MAKE_INVIS, val); return 0; } static int Object_SetValue(Crossfire_Object *whoptr, PyObject *value, void *closure) { long val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "l", &val)) return -1; cf_object_set_long_property(whoptr->obj, CFAPI_OBJECT_PROP_VALUE, val); return 0; } static int Object_SetNoSave(Crossfire_Object *whoptr, PyObject *value, void *closure) { long val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_NO_SAVE, val); return 0; } static int Object_SetOwner(Crossfire_Object *whoptr, PyObject *value, void *closure) { Crossfire_Object *ob; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "O!", &Crossfire_ObjectType, &ob)) return -1; cf_object_set_object_property(whoptr->obj, CFAPI_OBJECT_PROP_OWNER, ob->obj); return 0; } static int Object_SetEnemy(Crossfire_Object *whoptr, PyObject *value, void *closure) { Crossfire_Object *ob; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "O!", &Crossfire_ObjectType, &ob)) return -1; cf_object_set_object_property(whoptr->obj, CFAPI_OBJECT_PROP_ENEMY, ob->obj); return 0; } static int Object_SetGodGiven(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_STARTEQUIP, val); return 0; } static int Object_SetNoDamage(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_NO_DAMAGE, val); return 0; } static int Object_SetRandomMovement(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_RANDOM_MOVE, val); return 0; } static int Object_SetIsPet(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_FRIENDLY, val); return 0; } static int Object_SetAttackMovement(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_ATTACK_MOVEMENT, val); return 0; } static int Object_SetExp(Crossfire_Object *whoptr, PyObject *value, void *closure) { sint64 val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "L", &val)) return -1; cf_object_set_int64_property(whoptr->obj, CFAPI_OBJECT_PROP_EXP, val); return 0; } static int Object_SetDuration(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_DURATION, val); return 0; } static int Object_SetGlowRadius(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_int_property(whoptr->obj, CFAPI_OBJECT_PROP_GLOW_RADIUS, val); return 0; } static int Object_SetAnimated(Crossfire_Object *whoptr, PyObject *value, void *closure) { int val; EXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "i", &val)) return -1; cf_object_set_flag(whoptr->obj, FLAG_ANIMATE, val); return 0; } /* Methods. */ static PyObject *Crossfire_Object_Remove(Crossfire_Object *who, PyObject *args) { EXISTCHECK(who); if ((current_context->who != NULL) && (((Crossfire_Object *)current_context->who)->obj == who->obj)) current_context->who = NULL; if (!cf_object_get_flag(who->obj, FLAG_REMOVED)) { cf_object_remove(who->obj); } cf_object_free_drop_inventory(who->obj); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_Apply(Crossfire_Object *who, PyObject *args) { Crossfire_Object *whoptr; int flags; if (!PyArg_ParseTuple(args, "O!i", &Crossfire_ObjectType, &whoptr, &flags)) return NULL; EXISTCHECK(who); EXISTCHECK(whoptr); return Py_BuildValue("i", cf_object_apply(whoptr->obj, who->obj, flags)); } static PyObject *Crossfire_Object_Drop(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *whoptr = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(whoptr); cf_object_drop(whoptr->obj, who->obj); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_Clone(Crossfire_Object *who, PyObject *args) { int clone_type; object *clone; if (!PyArg_ParseTuple(args, "i", &clone_type)) return NULL; if (clone_type != 0 && clone_type != 1) { PyErr_SetString(PyExc_ValueError, "Clone type must be 0 (object_create_clone) or 1 (object_copy)."); return NULL; } clone = cf_object_clone(who->obj, clone_type); if (clone == NULL) { PyErr_SetString(PyExc_RuntimeError, "Clone failed."); return NULL; } return Crossfire_Object_wrap(clone); } static PyObject *Crossfire_Object_Split(Crossfire_Object *who, PyObject *args) { int count; char err[255]; object *split; err[0] = '\0'; /* Just in case. */ if (!PyArg_ParseTuple(args, "i", &count)) return NULL; split = cf_object_split(who->obj, count, err, 255); if (split == NULL) { PyErr_SetString(PyExc_ValueError, err); return NULL; } return Crossfire_Object_wrap(split); } static PyObject *Crossfire_Object_Fix(Crossfire_Object *who, PyObject *args) { cf_fix_object(who->obj); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_Take(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *whoptr = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(whoptr); cf_object_pickup(who->obj, whoptr->obj); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_Teleport(Crossfire_Object *who, PyObject *args) { Crossfire_Map *where; int x, y; int val; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "O!ii", &Crossfire_MapType, &where, &x, &y)) return NULL; val = cf_object_teleport(who->obj, where->map, x, y); return Py_BuildValue("i", val); } static PyObject *Crossfire_Object_ActivateRune(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ object *trap; object *victim; Crossfire_Object *pcause = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(pcause); trap = who->obj; victim = pcause->obj; cf_spring_trap(trap, victim); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_CheckTrigger(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ object *trigger; object *cause; int result; Crossfire_Object *pcause = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(pcause); trigger = who->obj; cause = pcause->obj; result = cf_object_check_trigger(trigger, cause); return Py_BuildValue("i", result); } static PyObject *Crossfire_Object_Say(Crossfire_Object *who, PyObject *args) { char *message, buf[2048]; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &message)) return NULL; /* compatibility */ if (current_context->talk == NULL) { cf_object_say(who->obj, message); Py_INCREF(Py_None); return Py_None; } if (current_context->talk->npc_msg_count == MAX_NPC) { PyErr_SetString(PyExc_ValueError, "too many NPCs"); return NULL; } if (strlen(message) >= sizeof(buf) - 1) cf_log(llevError, "warning, too long message in npcSay, will be truncated"); /** @todo fix by wrapping monster_format_say() (or the whole talk structure methods) */ snprintf(buf, sizeof(buf), "%s says: %s", who->obj->name, message); current_context->talk->npc_msgs[current_context->talk->npc_msg_count] = cf_add_string(buf); current_context->talk->npc_msg_count++; Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_Reposition(Crossfire_Object *who, PyObject *args) { int x, y; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "ii", &x, &y)) return NULL; cf_object_transfer(who->obj, x, y, 0, NULL); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_QueryName(Crossfire_Object *who, PyObject *args) { char name[200]; EXISTCHECK(who); return Py_BuildValue("s", cf_query_name(who->obj, name, sizeof(name))); } static PyObject *Crossfire_Object_GetResist(Crossfire_Object *who, PyObject *args) { int resist; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "i", &resist)) return NULL; if ((resist < 0) || (resist >= NROFATTACKS)) { return Py_BuildValue("l", 0); } return Py_BuildValue("i", cf_object_get_resistance(who->obj, resist)); } static PyObject *Crossfire_Object_SetResist(Crossfire_Object *who, PyObject *args) { int resist, value; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "ii", &resist, &value)) return NULL; if ((resist >= 0) && (resist < NROFATTACKS)) cf_object_set_resistance(who->obj, resist, value); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_QueryCost(Crossfire_Object *who, PyObject *args) { int flags; Crossfire_Object *pcause; if (!PyArg_ParseTuple(args, "O!i", &Crossfire_ObjectType, &pcause, &flags)) return NULL; EXISTCHECK(who); EXISTCHECK(pcause); return Py_BuildValue("i", cf_object_query_cost(who->obj, pcause->obj, flags)); } static PyObject *Crossfire_Object_Cast(Crossfire_Object *who, PyObject *args) { int dir; char *op; Crossfire_Object *pspell; if (!PyArg_ParseTuple(args, "O!is", &Crossfire_ObjectType, &pspell, &dir, &op)) return NULL; EXISTCHECK(who); EXISTCHECK(pspell); cf_object_cast_spell(who->obj, who->obj, dir, pspell->obj, op); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_LearnSpell(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *pspell = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(pspell); cf_object_learn_spell(who->obj, pspell->obj, 0); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_ForgetSpell(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *pspell = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(pspell); cf_object_forget_spell(who->obj, pspell->obj); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_KnowSpell(Crossfire_Object *who, PyObject *args) { char *spellname; object *op; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &spellname)) return NULL; op = cf_object_check_for_spell(who->obj, spellname); return Crossfire_Object_wrap(op); } static PyObject *Crossfire_Object_CastAbility(Crossfire_Object *who, PyObject *args) { Crossfire_Object *pspell; int dir; char *str; if (!PyArg_ParseTuple(args, "O!is", &Crossfire_ObjectType, &pspell, &dir, &str)) return NULL; EXISTCHECK(who); EXISTCHECK(pspell); cf_object_cast_ability(who->obj, who->obj, dir, pspell->obj, str); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_PayAmount(Crossfire_Object *who, PyObject *args) { uint64 to_pay; int val; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "L", &to_pay)) return NULL; val = cf_object_pay_amount(who->obj, to_pay); return Py_BuildValue("i", val); } static PyObject *Crossfire_Object_Pay(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *op = (Crossfire_Object*)args; int val; EXISTCHECK(who); TYPEEXISTCHECK(op); val = cf_object_pay_item(who->obj, op->obj); return Py_BuildValue("i", val); } static PyObject *Crossfire_Object_ReadKey(Crossfire_Object *who, PyObject *args) { const char *val; char *keyname; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &keyname)) return NULL; val = cf_object_get_key(who->obj, keyname); return Py_BuildValue("s", val ? val : ""); } static PyObject *Crossfire_Object_WriteKey(Crossfire_Object *who, PyObject *args) { char *keyname; char *value; int add_key = 0; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "ss|i", &keyname, &value, &add_key)) return NULL; return Py_BuildValue("i", cf_object_set_key(who->obj, keyname, value, add_key)); } static PyObject *Crossfire_Object_CreateTimer(Crossfire_Object *who, PyObject *args) { int mode; long delay; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "li", &delay, &mode)) return NULL; return Py_BuildValue("i", cf_timer_create(who->obj, delay, mode)); } static PyObject *Crossfire_Object_CheckInventory(Crossfire_Object *who, PyObject *args) { char *whatstr; object *foundob; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &whatstr)) return NULL; foundob = cf_object_present_archname_inside(who->obj, whatstr); return Crossfire_Object_wrap(foundob); /* FOR_INV_PREPARE(WHO, tmp) { if (!strncmp(PyQueryName(tmp), whatstr, strlen(whatstr))) { return Py_BuildValue("l", (long)(tmp)); } if (!strncmp(tmp->name, whatstr, strlen(whatstr))) { return Py_BuildValue("l", (long)(tmp)); } } FOR_INV_FINISH(); return Py_BuildValue("l", (long)0);*/ } static PyObject *Crossfire_Object_CheckArchInventory(Crossfire_Object *who, PyObject *args) { char *whatstr; object *tmp; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &whatstr)) return NULL; tmp = cf_object_find_by_arch_name(who->obj, whatstr); return Crossfire_Object_wrap(tmp); } static PyObject *Crossfire_Object_GetOutOfMap(Crossfire_Object *who, PyObject *args) { int x, y; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "ii", &x, &y)) return NULL; return Py_BuildValue("i", cf_object_out_of_map(who->obj, x, y)); } static PyObject *Crossfire_Object_CreateInside(Crossfire_Object *who, PyObject *args) { char *txt; object *myob; EXISTCHECK(who); if (!PyArg_ParseTuple(args, "s", &txt)) return NULL; myob = cf_create_object_by_name(txt); if (myob) myob = cf_object_insert_object(myob, who->obj); return Crossfire_Object_wrap(myob); } static PyObject *Crossfire_Object_InsertInto(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *op = (Crossfire_Object*)args; object *myob; EXISTCHECK(who); TYPEEXISTCHECK(op); /* we can only insert removed object, so first remove it * from it's current container */ if (!cf_object_get_flag(who->obj, FLAG_REMOVED)) { cf_object_remove(who->obj); } myob = cf_object_insert_in_ob(who->obj, op->obj); return Crossfire_Object_wrap(myob); } static PyObject *Crossfire_Object_ChangeAbil(Crossfire_Object *who, PyObject *args) { /* Note that this function uses the METH_O calling convention. */ Crossfire_Object *op = (Crossfire_Object*)args; EXISTCHECK(who); TYPEEXISTCHECK(op); return Py_BuildValue("i", cf_object_change_abil(who->obj, op->obj)); } static PyObject *Crossfire_Object_AddExp(Crossfire_Object *who, PyObject *args) { sint64 exp; const char *skill = NULL; int arg = 0; if (!PyArg_ParseTuple(args, "L|si", &exp, &skill, &arg)) return NULL; EXISTCHECK(who); cf_object_change_exp(who->obj, exp, skill, arg); Py_INCREF(Py_None); return Py_None; } static PyObject *Crossfire_Object_Move(Crossfire_Object *who, PyObject *args) { int dir; if (!PyArg_ParseTuple(args, "i", &dir)) return NULL; EXISTCHECK(who); return Py_BuildValue("i", cf_object_move(who->obj, dir, who->obj)); } static PyObject *Crossfire_Object_Event(Crossfire_Object *who, PyObject *args) { int fix; const char *message = NULL; object *op1 = NULL; object *op2 = NULL; object *op3 = NULL; Crossfire_Object *activator = NULL; Crossfire_Object *third = NULL; if (!PyArg_ParseTuple(args, "O!O!si", &Crossfire_ObjectType, &activator, &Crossfire_ObjectType, &third, &message, &fix)) return NULL; EXISTCHECK(who); EXISTCHECK(activator); EXISTCHECK(third); op1 = who->obj; op2 = activator->obj; op3 = third->obj; return Py_BuildValue("i", cf_object_user_event(op1, op2, op3, message, fix)); } static PyObject *Crossfire_Object_RemoveDepletion(Crossfire_Object *who, PyObject *args) { int level; if (!PyArg_ParseTuple(args, "i", &level)) return NULL; EXISTCHECK(who); return Py_BuildValue("i", cf_object_remove_depletion(who->obj, level)); } static PyObject *Crossfire_Object_Arrest(Crossfire_Object *who, PyObject *args) { EXISTCHECK(who); return Py_BuildValue("i", cf_player_arrest(who->obj)); } static int Crossfire_Object_InternalCompare(Crossfire_Object *left, Crossfire_Object *right) { EXISTCHECK_INT(left); EXISTCHECK_INT(right); return (left->obj < right->obj ? -1 : (left->obj == right->obj ? 0 : 1)); } static PyObject *Crossfire_Object_RichCompare(Crossfire_Object *left, Crossfire_Object *right, int op) { int result; if (!left || !right || !PyObject_TypeCheck((PyObject*)left, &Crossfire_ObjectType) || !PyObject_TypeCheck((PyObject*)right, &Crossfire_ObjectType)) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } result = Crossfire_Object_InternalCompare(left, right); /* Handle removed objects. */ if (result == -1 && PyErr_Occurred()) return NULL; /* Based on how Python 3.0 (GPL compatible) implements it for internal types: */ switch (op) { case Py_EQ: result = (result == 0); break; case Py_NE: result = (result != 0); break; case Py_LE: result = (result <= 0); break; case Py_GE: result = (result >= 0); break; case Py_LT: result = (result == -1); break; case Py_GT: result = (result == 1); break; } return PyBool_FromLong(result); } /* Legacy code: convert to long so that non-object functions work correctly */ static PyObject *Crossfire_Object_Long(PyObject *obj) { return Py_BuildValue("l", ((Crossfire_Object *)obj)->obj); } #ifndef IS_PY3K static PyObject *Crossfire_Object_Int(PyObject *obj) { return Py_BuildValue("i", ((Crossfire_Object *)obj)->obj); } #endif /** * Python initialized. **/ static PyObject *Crossfire_Object_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { Crossfire_Object *self; self = (Crossfire_Object *)type->tp_alloc(type, 0); if (self) { self->obj = NULL; self->count = 0; } return (PyObject *)self; } static PyObject *Crossfire_Player_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { Crossfire_Player *self; self = (Crossfire_Player *)type->tp_alloc(type, 0); if (self) { self->obj = NULL; self->count = 0; } return (PyObject *)self; } static void Crossfire_Object_dealloc(PyObject *obj) { Crossfire_Object *self; self = (Crossfire_Object *)obj; if (self) { if (self->obj) { free_object_assoc(self->obj); } Py_TYPE(self)->tp_free(obj); } } static void Crossfire_Player_dealloc(PyObject *obj) { Crossfire_Player *self; self = (Crossfire_Player *)obj; if (self) { if (self->obj) { free_object_assoc(self->obj); } Py_TYPE(self)->tp_free(obj); } } PyObject *Crossfire_Object_wrap(object *what) { Crossfire_Object *wrapper; Crossfire_Player *plwrap; PyObject *pyobj; /* return None if no object was to be wrapped */ if (what == NULL) { Py_INCREF(Py_None); return Py_None; } pyobj = find_assoc_pyobject(what); if ((!pyobj) || (object_was_destroyed(((Crossfire_Object *)pyobj)->obj, ((Crossfire_Object *)pyobj)->count))) { if (what->type == PLAYER) { plwrap = PyObject_NEW(Crossfire_Player, &Crossfire_PlayerType); if (plwrap != NULL) { plwrap->obj = what; plwrap->count = what->count; } pyobj = (PyObject *)plwrap; } else { wrapper = PyObject_NEW(Crossfire_Object, &Crossfire_ObjectType); if (wrapper != NULL) { wrapper->obj = what; wrapper->count = what->count; } pyobj = (PyObject *)wrapper; } add_object_assoc(what, pyobj); } else { Py_INCREF(pyobj); } return pyobj; } crossfire-1.70.0/plugins/cfpython/cfpython.c0000644000014500000120000017024211731300520016011 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /*****************************************************************************/ /* This is the third version of the Crossfire Scripting Engine. */ /* The first version used Guile. It was directly integrated in the server */ /* code, but since Guile wasn't perceived as an easy-to-learn, easy-to-use */ /* language by many, it was dropped in favor of Python. */ /* The second version, CFPython 1.0, was included as a plugin and provided */ /* just about the same level of functionality the current version has. But */ /* it used a rather counter-intuitive, procedural way of presenting things. */ /* */ /* CFPython 2.0 aims at correcting many of the design flaws crippling the */ /* older version. It is also the first plugin to be implemented using the */ /* new interface, that doesn't need awkward stuff like the horrible CFParm */ /* structure. For the Python writer, things should probably be easier and */ /* lead to more readable code: instead of writing "CFPython.getObjectXPos(ob)*/ /* he/she now can simply write "ob.X". */ /* */ /*****************************************************************************/ /* Please note that it is still very beta - some of the functions may not */ /* work as expected and could even cause the server to crash. */ /*****************************************************************************/ /* Version history: */ /* 0.1 "Ophiuchus" - Initial Alpha release */ /* 0.5 "Stalingrad" - Message length overflow corrected. */ /* 0.6 "Kharkov" - Message and Write correctly redefined. */ /* 0.7 "Koursk" - Setting informations implemented. */ /* 1.0a "Petersburg" - Last "old-fashioned" version, never submitted to CVS.*/ /* 2.0 "Arkangelsk" - First release of the 2.x series. */ /*****************************************************************************/ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ /* First let's include the header file needed */ #include #include #include #include CF_PLUGIN char SvnRevPlugin[] = SVN_REV; #define PYTHON_DEBUG /* give us some general infos out */ #define PYTHON_CACHE_SIZE 16 /* number of python scripts to store the bytecode of at a time */ /** * One compiled script, cached in memory. */ typedef struct { sstring file; /**< Script full path. */ PyCodeObject *code; /**< Compiled code, NULL if there was an error. */ time_t cached_time, /**< Time this cache entry was created. */ used_time; /**< Last use of this cache entry. */ } pycode_cache_entry; /* This structure is used to define one python-implemented crossfire command.*/ typedef struct PythonCmdStruct { sstring name; /* The name of the command, as known in the game. */ sstring script; /* The name of the script file to bind. */ double speed; /* The speed of the command execution. */ } PythonCmd; /* This plugin allows up to 1024 custom commands. */ #define NR_CUSTOM_CMD 1024 /** Commands defined by scripts. */ static PythonCmd CustomCommand[NR_CUSTOM_CMD]; /** Cached compiled scripts. */ static pycode_cache_entry pycode_cache[PYTHON_CACHE_SIZE]; static void set_exception(const char *fmt, ...); static PyObject *createCFObject(PyObject *self, PyObject *args); static PyObject *createCFObjectByName(PyObject *self, PyObject *args); static PyObject *getCFPythonVersion(PyObject *self, PyObject *args); static PyObject *getReturnValue(PyObject *self, PyObject *args); static PyObject *setReturnValue(PyObject *self, PyObject *args); static PyObject *matchString(PyObject *self, PyObject *args); static PyObject *findPlayer(PyObject *self, PyObject *args); static PyObject *readyMap(PyObject *self, PyObject *args); static PyObject *createMap(PyObject *self, PyObject *args); static PyObject *getMapDirectory(PyObject *self, PyObject *args); static PyObject *getUniqueDirectory(PyObject *self, PyObject *args); static PyObject *getTempDirectory(PyObject *self, PyObject *args); static PyObject *getConfigDirectory(PyObject *self, PyObject *args); static PyObject *getLocalDirectory(PyObject *self, PyObject *args); static PyObject *getPlayerDirectory(PyObject *self, PyObject *args); static PyObject *getDataDirectory(PyObject *self, PyObject *args); static PyObject *getWhoAmI(PyObject *self, PyObject *args); static PyObject *getWhoIsActivator(PyObject *self, PyObject *args); static PyObject *getWhoIsThird(PyObject *self, PyObject *args); static PyObject *getWhatIsMessage(PyObject *self, PyObject *args); static PyObject *getScriptName(PyObject *self, PyObject *args); static PyObject *getScriptParameters(PyObject *self, PyObject *args); static PyObject *getEvent(PyObject *self, PyObject *args); static PyObject *getPrivateDictionary(PyObject *self, PyObject *args); static PyObject *getSharedDictionary(PyObject *self, PyObject *args); static PyObject *getArchetypes(PyObject *self, PyObject *args); static PyObject *getPlayers(PyObject *self, PyObject *args); static PyObject *getMaps(PyObject *self, PyObject *args); static PyObject *getParties(PyObject *self, PyObject *args); static PyObject *getRegions(PyObject *self, PyObject *args); static PyObject *getFriendlyList(PyObject *self, PyObject *args); static PyObject *registerCommand(PyObject *self, PyObject *args); static PyObject *registerGEvent(PyObject *self, PyObject *args); static PyObject *unregisterGEvent(PyObject *self, PyObject *args); static PyObject *CFPythonError; static PyObject *getTime(PyObject *self, PyObject *args); static PyObject *destroyTimer(PyObject *self, PyObject *args); static PyObject *getMapHasBeenLoaded(PyObject *self, PyObject *args); static PyObject *findAnimation(PyObject *self, PyObject *args); static PyObject *log_message(PyObject *self, PyObject *args); static PyObject *findFace(PyObject *self, PyObject *args); static PyObject *getSeasonName(PyObject *self, PyObject *args); static PyObject *getMonthName(PyObject *self, PyObject *args); static PyObject *getWeekdayName(PyObject *self, PyObject *args); static PyObject *getPeriodofdayName(PyObject *self, PyObject *args); static PyObject *addReply(PyObject *self, PyObject *args); static PyObject *setPlayerMessage(PyObject *self, PyObject *args); static PyObject *npcSay(PyObject *self, PyObject *args); static PyObject *costStringFromValue(PyObject *self, PyObject *args); /** Set up an Python exception object. */ static void set_exception(const char *fmt, ...) { char buf[1024]; va_list arg; va_start(arg, fmt); vsnprintf(buf, sizeof(buf), fmt, arg); va_end(arg); PyErr_SetString(PyExc_ValueError, buf); } static PyMethodDef CFPythonMethods[] = { { "WhoAmI", getWhoAmI, METH_NOARGS, NULL }, { "WhoIsActivator", getWhoIsActivator, METH_NOARGS, NULL }, { "WhoIsOther", getWhoIsThird, METH_NOARGS, NULL }, { "WhatIsMessage", getWhatIsMessage, METH_NOARGS, NULL }, { "ScriptName", getScriptName, METH_NOARGS, NULL }, { "ScriptParameters", getScriptParameters, METH_NOARGS, NULL }, { "WhatIsEvent", getEvent, METH_NOARGS, NULL }, { "MapDirectory", getMapDirectory, METH_NOARGS, NULL }, { "UniqueDirectory", getUniqueDirectory, METH_NOARGS, NULL }, { "TempDirectory", getTempDirectory, METH_NOARGS, NULL }, { "ConfigDirectory", getConfigDirectory, METH_NOARGS, NULL }, { "LocalDirectory", getLocalDirectory, METH_NOARGS, NULL }, { "PlayerDirectory", getPlayerDirectory, METH_NOARGS, NULL }, { "DataDirectory", getDataDirectory, METH_NOARGS, NULL }, { "ReadyMap", readyMap, METH_VARARGS, NULL }, { "CreateMap", createMap, METH_VARARGS, NULL }, { "FindPlayer", findPlayer, METH_VARARGS, NULL }, { "MatchString", matchString, METH_VARARGS, NULL }, { "GetReturnValue", getReturnValue, METH_NOARGS, NULL }, { "SetReturnValue", setReturnValue, METH_VARARGS, NULL }, { "PluginVersion", getCFPythonVersion, METH_NOARGS, NULL }, { "CreateObject", createCFObject, METH_NOARGS, NULL }, { "CreateObjectByName", createCFObjectByName, METH_VARARGS, NULL }, { "GetPrivateDictionary", getPrivateDictionary, METH_NOARGS, NULL }, { "GetSharedDictionary", getSharedDictionary, METH_NOARGS, NULL }, { "GetPlayers", getPlayers, METH_NOARGS, NULL }, { "GetArchetypes", getArchetypes, METH_NOARGS, NULL }, { "GetMaps", getMaps, METH_NOARGS, NULL }, { "GetParties", getParties, METH_NOARGS, NULL }, { "GetRegions", getRegions, METH_NOARGS, NULL }, { "GetFriendlyList", getFriendlyList, METH_NOARGS, NULL }, { "RegisterCommand", registerCommand, METH_VARARGS, NULL }, { "RegisterGlobalEvent", registerGEvent, METH_VARARGS, NULL }, { "UnregisterGlobalEvent", unregisterGEvent, METH_VARARGS, NULL }, { "GetTime", getTime, METH_NOARGS, NULL }, { "DestroyTimer", destroyTimer, METH_VARARGS, NULL }, { "MapHasBeenLoaded", getMapHasBeenLoaded, METH_VARARGS, NULL }, { "Log", log_message, METH_VARARGS, NULL }, { "FindFace", findFace, METH_VARARGS, NULL }, { "FindAnimation", findAnimation, METH_VARARGS, NULL }, { "GetSeasonName", getSeasonName, METH_VARARGS, NULL }, { "GetMonthName", getMonthName, METH_VARARGS, NULL }, { "GetWeekdayName", getWeekdayName, METH_VARARGS, NULL }, { "GetPeriodofdayName", getPeriodofdayName, METH_VARARGS, NULL }, { "AddReply", addReply, METH_VARARGS, NULL }, { "SetPlayerMessage", setPlayerMessage, METH_VARARGS, NULL }, { "NPCSay", npcSay, METH_VARARGS, NULL }, { "CostStringFromValue", costStringFromValue, METH_VARARGS, NULL }, { NULL, NULL, 0, NULL } }; CFPContext *context_stack; CFPContext *current_context; static int current_command = -999; static PyObject *shared_data = NULL; static PyObject *private_data = NULL; static PyObject *registerGEvent(PyObject *self, PyObject *args) { int eventcode; if (!PyArg_ParseTuple(args, "i", &eventcode)) return NULL; cf_system_register_global_event(eventcode, PLUGIN_NAME, cfpython_globalEventListener); Py_INCREF(Py_None); return Py_None; } static PyObject *unregisterGEvent(PyObject *self, PyObject *args) { int eventcode; if (!PyArg_ParseTuple(args, "i", &eventcode)) return NULL; cf_system_unregister_global_event(EVENT_TELL, PLUGIN_NAME); Py_INCREF(Py_None); return Py_None; } static PyObject *createCFObject(PyObject *self, PyObject *args) { object *op; op = cf_create_object(); return Crossfire_Object_wrap(op); } static PyObject *createCFObjectByName(PyObject *self, PyObject *args) { char *obname; object *op; if (!PyArg_ParseTuple(args, "s", &obname)) return NULL; op = cf_create_object_by_name(obname); return Crossfire_Object_wrap(op); } static PyObject *getCFPythonVersion(PyObject *self, PyObject *args) { int i = 2044; return Py_BuildValue("i", i); } static PyObject *getReturnValue(PyObject *self, PyObject *args) { return Py_BuildValue("i", current_context->returnvalue); } static PyObject *setReturnValue(PyObject *self, PyObject *args) { int i; if (!PyArg_ParseTuple(args, "i", &i)) return NULL; current_context->returnvalue = i; Py_INCREF(Py_None); return Py_None; } static PyObject *matchString(PyObject *self, PyObject *args) { char *premiere; char *seconde; const char *result; if (!PyArg_ParseTuple(args, "ss", &premiere, &seconde)) return NULL; result = cf_re_cmp(premiere, seconde); if (result != NULL) return Py_BuildValue("i", 1); else return Py_BuildValue("i", 0); } static PyObject *findPlayer(PyObject *self, PyObject *args) { player *foundpl; char *txt; if (!PyArg_ParseTuple(args, "s", &txt)) return NULL; foundpl = cf_player_find(txt); if (foundpl != NULL) return Py_BuildValue("O", Crossfire_Object_wrap(foundpl->ob)); else { Py_INCREF(Py_None); return Py_None; } } static PyObject *readyMap(PyObject *self, PyObject *args) { char *mapname; mapstruct *map; int flags = 0; if (!PyArg_ParseTuple(args, "s|i", &mapname, &flags)) return NULL; map = cf_map_get_map(mapname, flags); return Crossfire_Map_wrap(map); } static PyObject *createMap(PyObject *self, PyObject *args) { int sizex, sizey; mapstruct *map; if (!PyArg_ParseTuple(args, "ii", &sizex, &sizey)) return NULL; map = cf_get_empty_map(sizex, sizey); return Crossfire_Map_wrap(map); } static PyObject *getMapDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(0)); } static PyObject *getUniqueDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(1)); } static PyObject *getTempDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(2)); } static PyObject *getConfigDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(3)); } static PyObject *getLocalDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(4)); } static PyObject *getPlayerDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(5)); } static PyObject *getDataDirectory(PyObject *self, PyObject *args) { return Py_BuildValue("s", cf_get_directory(6)); } static PyObject *getWhoAmI(PyObject *self, PyObject *args) { if (!current_context->who) { Py_INCREF(Py_None); return Py_None; } Py_INCREF(current_context->who); return current_context->who; } static PyObject *getWhoIsActivator(PyObject *self, PyObject *args) { if (!current_context->activator) { Py_INCREF(Py_None); return Py_None; } Py_INCREF(current_context->activator); return current_context->activator; } static PyObject *getWhoIsThird(PyObject *self, PyObject *args) { if (!current_context->third) { Py_INCREF(Py_None); return Py_None; } Py_INCREF(current_context->third); return current_context->third; } static PyObject *getWhatIsMessage(PyObject *self, PyObject *args) { if (*current_context->message == '\0') return Py_BuildValue(""); else return Py_BuildValue("s", current_context->message); } static PyObject *getScriptName(PyObject *self, PyObject *args) { return Py_BuildValue("s", current_context->script); } static PyObject *getScriptParameters(PyObject *self, PyObject *args) { if (!*current_context->options) { Py_INCREF(Py_None); return Py_None; } return Py_BuildValue("s", current_context->options); } static PyObject *getEvent(PyObject *self, PyObject *args) { if (!current_context->event) { Py_INCREF(Py_None); return Py_None; } Py_INCREF(current_context->event); return current_context->event; } static PyObject *getPrivateDictionary(PyObject *self, PyObject *args) { PyObject *data; data = PyDict_GetItemString(private_data, current_context->script); if (!data) { data = PyDict_New(); PyDict_SetItemString(private_data, current_context->script, data); Py_DECREF(data); } Py_INCREF(data); return data; } static PyObject *getSharedDictionary(PyObject *self, PyObject *args) { Py_INCREF(shared_data); return shared_data; } static PyObject *getArchetypes(PyObject *self, PyObject *args) { PyObject *list; archetype *arch; list = PyList_New(0); arch = cf_archetype_get_first(); while (arch) { PyList_Append(list, Crossfire_Archetype_wrap(arch)); arch = cf_archetype_get_next(arch); } return list; } static PyObject *getPlayers(PyObject *self, PyObject *args) { PyObject *list; object *pl; list = PyList_New(0); pl = cf_object_get_object_property(NULL, CFAPI_PLAYER_PROP_NEXT); while (pl) { PyList_Append(list, Crossfire_Object_wrap(pl)); pl = cf_object_get_object_property(pl, CFAPI_PLAYER_PROP_NEXT); } return list; } static PyObject *getMaps(PyObject *self, PyObject *args) { PyObject *list; mapstruct *map; list = PyList_New(0); map = cf_map_get_first(); while (map) { PyList_Append(list, Crossfire_Map_wrap(map)); map = cf_map_get_map_property(map, CFAPI_MAP_PROP_NEXT); } return list; } static PyObject *getParties(PyObject *self, PyObject *args) { PyObject *list; partylist *party; list = PyList_New(0); party = cf_party_get_first(); while (party) { PyList_Append(list, Crossfire_Party_wrap(party)); party = cf_party_get_next(party); } return list; } static PyObject *getRegions(PyObject *self, PyObject *args) { PyObject *list; region *reg; list = PyList_New(0); reg = cf_region_get_first(); while (reg) { PyList_Append(list, Crossfire_Region_wrap(reg)); reg = cf_region_get_next(reg); } return list; } static PyObject *getFriendlyList(PyObject *self, PyObject *args) { PyObject *list; object *ob; list = PyList_New(0); ob = cf_friendlylist_get_first(); while (ob) { PyList_Append(list, Crossfire_Object_wrap(ob)); ob = cf_friendlylist_get_next(ob); } return list; } static PyObject *registerCommand(PyObject *self, PyObject *args) { char *cmdname; char *scriptname; double cmdspeed; int i; if (!PyArg_ParseTuple(args, "ssd", &cmdname, &scriptname, &cmdspeed)) return NULL; if (cmdspeed < 0) { set_exception("speed must not be negative"); return NULL; } for (i = 0; i < NR_CUSTOM_CMD; i++) { if (CustomCommand[i].name != NULL) { if (!strcmp(CustomCommand[i].name, cmdname)) { set_exception("command '%s' is already registered", cmdname); return NULL; } } } for (i = 0; i < NR_CUSTOM_CMD; i++) { if (CustomCommand[i].name == NULL) { CustomCommand[i].name = cf_add_string(cmdname); CustomCommand[i].script = cf_add_string(scriptname); CustomCommand[i].speed = cmdspeed; break; } } Py_INCREF(Py_None); return Py_None; } static PyObject *getTime(PyObject *self, PyObject *args) { PyObject *list; timeofday_t tod; cf_get_time(&tod); list = PyList_New(0); PyList_Append(list, Py_BuildValue("i", tod.year)); PyList_Append(list, Py_BuildValue("i", tod.month)); PyList_Append(list, Py_BuildValue("i", tod.day)); PyList_Append(list, Py_BuildValue("i", tod.hour)); PyList_Append(list, Py_BuildValue("i", tod.minute)); PyList_Append(list, Py_BuildValue("i", tod.dayofweek)); PyList_Append(list, Py_BuildValue("i", tod.weekofmonth)); PyList_Append(list, Py_BuildValue("i", tod.season)); PyList_Append(list, Py_BuildValue("i", tod.periodofday)); return list; } static PyObject *destroyTimer(PyObject *self, PyObject *args) { int id; if (!PyArg_ParseTuple(args, "i", &id)) return NULL; return Py_BuildValue("i", cf_timer_destroy(id)); } static PyObject *getMapHasBeenLoaded(PyObject *self, PyObject *args) { char *name; if (!PyArg_ParseTuple(args, "s", &name)) return NULL; return Crossfire_Map_wrap(cf_map_has_been_loaded(name)); } static PyObject *findFace(PyObject *self, PyObject *args) { char *name; if (!PyArg_ParseTuple(args, "s", &name)) return NULL; return Py_BuildValue("i", cf_find_face(name, 0)); } static PyObject *log_message(PyObject *self, PyObject *args) { LogLevel level; int intLevel; char *message; if (!PyArg_ParseTuple(args, "is", &intLevel, &message)) return NULL; switch (intLevel) { case llevError: level = llevError; break; case llevInfo: level = llevInfo; break; case llevDebug: level = llevDebug; break; case llevMonster: level = llevMonster; break; default: return NULL; } if ((message != NULL) && (message[strlen(message)] == '\n')) cf_log(level, "CFPython: %s", message); else cf_log(level, "CFPython: %s\n", message); Py_INCREF(Py_None); return Py_None; } static PyObject *findAnimation(PyObject *self, PyObject *args) { char *name; if (!PyArg_ParseTuple(args, "s", &name)) return NULL; return Py_BuildValue("i", cf_find_animation(name)); } static PyObject *getSeasonName(PyObject *self, PyObject *args) { int i; if (!PyArg_ParseTuple(args, "i", &i)) return NULL; return Py_BuildValue("s", cf_get_season_name(i)); } static PyObject *getMonthName(PyObject *self, PyObject *args) { int i; if (!PyArg_ParseTuple(args, "i", &i)) return NULL; return Py_BuildValue("s", cf_get_month_name(i)); } static PyObject *getWeekdayName(PyObject *self, PyObject *args) { int i; if (!PyArg_ParseTuple(args, "i", &i)) return NULL; return Py_BuildValue("s", cf_get_weekday_name(i)); } static PyObject *getPeriodofdayName(PyObject *self, PyObject *args) { int i; if (!PyArg_ParseTuple(args, "i", &i)) return NULL; return Py_BuildValue("s", cf_get_periodofday_name(i)); } static PyObject *addReply(PyObject *self, PyObject *args) { char *word, *reply; talk_info *talk; if (current_context->talk == NULL) { set_exception("not in a dialog context"); return NULL; } talk = current_context->talk; if (!PyArg_ParseTuple(args, "ss", &word, &reply)) { return NULL; } if (talk->replies_count == MAX_REPLIES) { set_exception("too many replies"); return NULL; } talk->replies_words[talk->replies_count] = cf_add_string(word); talk->replies[talk->replies_count] = cf_add_string(reply); talk->replies_count++; Py_INCREF(Py_None); return Py_None; } static PyObject *setPlayerMessage(PyObject *self, PyObject *args) { char *message; int type = rt_reply; if (current_context->talk == NULL) { set_exception("not in a dialog context"); return NULL; } if (!PyArg_ParseTuple(args, "s|i", &message, &type)) { return NULL; } if (current_context->talk->message != NULL) cf_free_string(current_context->talk->message); current_context->talk->message = cf_add_string(message); current_context->talk->message_type = type; Py_INCREF(Py_None); return Py_None; } static PyObject *npcSay(PyObject *self, PyObject *args) { Crossfire_Object *npc = NULL; char *message, buf[2048]; if (!PyArg_ParseTuple(args, "O!s", &Crossfire_ObjectType, &npc, &message)) return NULL; if (current_context->talk == NULL) { set_exception("not in a dialog context"); return NULL; } if (current_context->talk->npc_msg_count == MAX_NPC) { set_exception("too many NPCs"); return NULL; } if (strlen(message) >= sizeof(buf) - 1) cf_log(llevError, "warning, too long message in npcSay, will be truncated"); /** @todo fix by wrapping monster_format_say() (or the whole talk structure methods) */ snprintf(buf, sizeof(buf), "%s says: %s", npc->obj->name, message); current_context->talk->npc_msgs[current_context->talk->npc_msg_count] = cf_add_string(buf); current_context->talk->npc_msg_count++; Py_INCREF(Py_None); return Py_None; } static PyObject *costStringFromValue(PyObject *self, PyObject *args) { uint64 value; char buf[2048]; int largest_coin = 0; if (!PyArg_ParseTuple(args, "L|i", &value, &largest_coin)) return NULL; cf_cost_string_from_value(value, largest_coin, buf, sizeof(buf)); return Py_BuildValue("s", buf); } static void initContextStack(void) { current_context = NULL; context_stack = NULL; } static void pushContext(CFPContext *context) { if (current_context == NULL) { context_stack = context; context->down = NULL; } else { context->down = current_context; } current_context = context; } static CFPContext *popContext(void) { CFPContext *oldcontext; if (current_context != NULL) { oldcontext = current_context; current_context = current_context->down; return oldcontext; } else return NULL; } static void freeContext(CFPContext *context) { Py_XDECREF(context->event); Py_XDECREF(context->third); Py_XDECREF(context->who); Py_XDECREF(context->activator); free(context); } /** * Open a file in the way we need it for compilePython() and postInitPlugin(). */ static PyObject* cfpython_openpyfile(char *filename) { PyObject *scriptfile; #ifdef IS_PY3K { int fd; fd = open(filename, O_RDONLY); if (fd == -1) return NULL; scriptfile = PyFile_FromFd(fd, filename, "r", -1, NULL, NULL, NULL, 1); } #else if (!(scriptfile = PyFile_FromString(filename, "r"))) { return NULL; } #endif return scriptfile; } /** * Return a file object from a Python file (as needed for compilePython() and * postInitPlugin()) */ static FILE* cfpython_pyfile_asfile(PyObject* obj) { #ifdef IS_PY3K return fdopen(PyObject_AsFileDescriptor(obj), "r"); #else return PyFile_AsFile(obj); #endif } /** * A Python object receiving the contents of Python's stderr, and used to output * to the Crossfire log instead of stderr. */ static PyObject *catcher = NULL; /** * Trace a Python error to the Crossfire log. * This uses code from: * http://stackoverflow.com/questions/4307187/how-to-catch-python-stdout-in-c-code * See also in initPlugin() the parts about stdOutErr. */ static void log_python_error(void) { PyErr_Print(); if (catcher != NULL) { PyObject *output = PyObject_GetAttrString(catcher, "value"); //get the stdout and stderr from our catchOutErr object PyObject* empty = PyString_FromString(""); cf_log_plain(llevError, PyString_AsString(output)); Py_DECREF(output); PyObject_SetAttrString(catcher, "value", empty); Py_DECREF(empty); } return; } /** Outputs the compiled bytecode for a given python file, using in-memory caching of bytecode */ static PyCodeObject *compilePython(char *filename) { PyObject *scriptfile = NULL; sstring sh_path; struct stat stat_buf; struct _node *n; int i; pycode_cache_entry *replace = NULL, *run = NULL; if (stat(filename, &stat_buf)) { cf_log(llevDebug, "cfpython - The Script file %s can't be stat:ed\n", filename); return NULL; } sh_path = cf_add_string(filename); /* Search through cache. Three cases: * 1) script in cache, but older than file -> replace cached * 2) script in cache and up to date -> use cached * 3) script not in cache, cache not full -> add to end of cache * 4) script not in cache, cache full -> replace least recently used */ for (i = 0; i < PYTHON_CACHE_SIZE; i++) { if (pycode_cache[i].file == NULL) { /* script not in cache, cache not full */ replace = &pycode_cache[i]; /* add to end of cache */ break; } else if (pycode_cache[i].file == sh_path) { /* script in cache */ if (pycode_cache[i].code == NULL || (pycode_cache[i].cached_time < stat_buf.st_mtime)) { /* cache older than file, replace cached */ replace = &pycode_cache[i]; } else { /* cache uptodate, use cached*/ replace = NULL; run = &pycode_cache[i]; } break; } else if (replace == NULL || pycode_cache[i].used_time < replace->used_time) /* if we haven't found it yet, set replace to the oldest cache */ replace = &pycode_cache[i]; } /* replace a specific cache index with the file */ if (replace) { Py_XDECREF(replace->code); /* safe to call on NULL */ replace->code = NULL; /* Need to replace path string? */ if (replace->file != sh_path) { if (replace->file) { cf_free_string(replace->file); } replace->file = cf_add_string(sh_path); } /* Load, parse and compile. Note: because Pyhon may have been built with a * different library than Crossfire, the FILE* it uses may be incompatible. * Therefore we use PyFile to open the file, then convert to FILE* and get * Python's own structure. Messy, but can't be helped... */ if (!(scriptfile = cfpython_openpyfile(filename))) { cf_log(llevDebug, "cfpython - The Script file %s can't be opened\n", filename); cf_free_string(sh_path); return NULL; } else { /* Note: FILE* being opaque, it works, but the actual structure may be different! */ FILE* pyfile = cfpython_pyfile_asfile(scriptfile); if ((n = PyParser_SimpleParseFile(pyfile, filename, Py_file_input))) { replace->code = PyNode_Compile(n, filename); PyNode_Free(n); } if (PyErr_Occurred()) log_python_error(); else replace->cached_time = stat_buf.st_mtime; run = replace; } } cf_free_string(sh_path); if (scriptfile) { Py_DECREF(scriptfile); } if (run) { run->used_time = time(NULL); return run->code; } else return NULL; } static int do_script(CFPContext *context, int silent) { PyCodeObject *pycode; PyObject *dict; PyObject *ret; #if 0 PyObject *list; int item; #endif pycode = compilePython(context->script); if (pycode) { pushContext(context); dict = PyDict_New(); PyDict_SetItemString(dict, "__builtins__", PyEval_GetBuiltins()); ret = PyEval_EvalCode(pycode, dict, NULL); if (PyErr_Occurred()) { log_python_error(); } Py_XDECREF(ret); #if 0 printf("cfpython - %d items in heap\n", PyDict_Size(dict)); list = PyDict_Values(dict); for (item = PyList_Size(list)-1; item >= 0; item--) { dict = PyList_GET_ITEM(list, item); ret = PyObject_Str(dict); printf(" ref %s = %d\n", PyString_AsString(ret), dict->ob_refcnt); Py_XDECREF(ret); } Py_DECREF(list); #endif Py_DECREF(dict); return 1; } else return 0; } typedef struct { const char *name; const int value; } CFConstant; static void addConstants(PyObject *module, const char *name, const CFConstant *constants) { int i = 0; char tmp[1024]; PyObject *new; PyObject *dict; strncpy(tmp, "Crossfire_", sizeof(tmp)); strncat(tmp, name, sizeof(tmp)-strlen(tmp)); new = PyModule_New(tmp); dict = PyDict_New(); while (constants[i].name != NULL) { PyModule_AddIntConstant(new, (char *)constants[i].name, constants[i].value); #ifdef IS_PY3K PyDict_SetItem(dict, PyLong_FromLong(constants[i].value), PyUnicode_FromString(constants[i].name)); #else PyDict_SetItem(dict, PyLong_FromLong(constants[i].value), PyString_FromString(constants[i].name)); #endif i++; } PyDict_SetItemString(PyModule_GetDict(module), name, new); strncpy(tmp, name, sizeof(tmp)); strncat(tmp, "Name", sizeof(tmp)-strlen(tmp)); PyDict_SetItemString(PyModule_GetDict(module), tmp, dict); Py_DECREF(dict); } /** * Do half the job of addConstants. It only * Set constantc, but not a hashtable to get constant * names from values. To be used for collections of constants * which are not unique but still are usefull for scripts */ static void addSimpleConstants(PyObject *module, const char *name, const CFConstant *constants) { int i = 0; char tmp[1024]; PyObject *new; strncpy(tmp, "Crossfire_", sizeof(tmp)); strncat(tmp, name, sizeof(tmp)-strlen(tmp)); new = PyModule_New(tmp); while (constants[i].name != NULL) { PyModule_AddIntConstant(new, (char *)constants[i].name, constants[i].value); i++; } PyDict_SetItemString(PyModule_GetDict(module), name, new); } static void initConstants(PyObject *module) { static const CFConstant cstDirection[] = { { "NORTH", 1 }, { "NORTHEAST", 2 }, { "EAST", 3 }, { "SOUTHEAST", 4 }, { "SOUTH", 5 }, { "SOUTHWEST", 6 }, { "WEST", 7 }, { "NORTHWEST", 8 }, { NULL, 0 } }; static const CFConstant cstType[] = { { "PLAYER", PLAYER }, { "TRANSPORT", TRANSPORT }, { "ROD", ROD }, { "TREASURE", TREASURE }, { "POTION", POTION }, { "FOOD", FOOD }, { "POISON", POISON }, { "BOOK", BOOK }, { "CLOCK", CLOCK }, { "ARROW", ARROW }, { "BOW", BOW }, { "WEAPON", WEAPON }, { "ARMOUR", ARMOUR }, { "PEDESTAL", PEDESTAL }, { "ALTAR", ALTAR }, { "LOCKED_DOOR", LOCKED_DOOR }, { "SPECIAL_KEY", SPECIAL_KEY }, { "MAP", MAP }, { "DOOR", DOOR }, { "KEY", KEY }, { "TIMED_GATE", TIMED_GATE }, { "TRIGGER", TRIGGER }, { "GRIMREAPER", GRIMREAPER }, { "MAGIC_EAR", MAGIC_EAR }, { "TRIGGER_BUTTON", TRIGGER_BUTTON }, { "TRIGGER_ALTAR", TRIGGER_ALTAR }, { "TRIGGER_PEDESTAL", TRIGGER_PEDESTAL }, { "SHIELD", SHIELD }, { "HELMET", HELMET }, { "MONEY", MONEY }, { "CLASS", CLASS }, { "AMULET", AMULET }, { "PLAYERMOVER", PLAYERMOVER }, { "TELEPORTER", TELEPORTER }, { "CREATOR", CREATOR }, { "SKILL", SKILL }, { "EARTHWALL", EARTHWALL }, { "GOLEM", GOLEM }, { "THROWN_OBJ", THROWN_OBJ }, { "BLINDNESS", BLINDNESS }, { "GOD", GOD }, { "DETECTOR", DETECTOR }, { "TRIGGER_MARKER", TRIGGER_MARKER }, { "DEAD_OBJECT", DEAD_OBJECT }, { "DRINK", DRINK }, { "MARKER", MARKER }, { "HOLY_ALTAR", HOLY_ALTAR }, { "PLAYER_CHANGER", PLAYER_CHANGER }, { "BATTLEGROUND", BATTLEGROUND }, { "PEACEMAKER", PEACEMAKER }, { "GEM", GEM }, { "FIREWALL", FIREWALL }, { "CHECK_INV", CHECK_INV }, { "MOOD_FLOOR", MOOD_FLOOR }, { "EXIT", EXIT }, { "ENCOUNTER", ENCOUNTER }, { "SHOP_FLOOR", SHOP_FLOOR }, { "SHOP_MAT", SHOP_MAT }, { "RING", RING }, { "FLOOR", FLOOR }, { "FLESH", FLESH }, { "INORGANIC", INORGANIC }, { "SKILL_TOOL", SKILL_TOOL }, { "LIGHTER", LIGHTER }, { "WALL", WALL }, { "MISC_OBJECT", MISC_OBJECT }, { "MONSTER", MONSTER }, { "LAMP", LAMP }, { "DUPLICATOR", DUPLICATOR }, { "SPELLBOOK", SPELLBOOK }, { "CLOAK", CLOAK }, { "SPINNER", SPINNER }, { "GATE", GATE }, { "BUTTON", BUTTON }, { "CF_HANDLE", CF_HANDLE }, { "HOLE", HOLE }, { "TRAPDOOR", TRAPDOOR }, { "SIGN", SIGN }, { "BOOTS", BOOTS }, { "GLOVES", GLOVES }, { "SPELL", SPELL }, { "SPELL_EFFECT", SPELL_EFFECT }, { "CONVERTER", CONVERTER }, { "BRACERS", BRACERS }, { "POISONING", POISONING }, { "SAVEBED", SAVEBED }, { "WAND", WAND }, { "SCROLL", SCROLL }, { "DIRECTOR", DIRECTOR }, { "GIRDLE", GIRDLE }, { "FORCE", FORCE }, { "POTION_RESIST_EFFECT", POTION_RESIST_EFFECT }, { "EVENT_CONNECTOR", EVENT_CONNECTOR }, { "CLOSE_CON", CLOSE_CON }, { "CONTAINER", CONTAINER }, { "ARMOUR_IMPROVER", ARMOUR_IMPROVER }, { "WEAPON_IMPROVER", WEAPON_IMPROVER }, { "SKILLSCROLL", SKILLSCROLL }, { "DEEP_SWAMP", DEEP_SWAMP }, { "IDENTIFY_ALTAR", IDENTIFY_ALTAR }, { "SHOP_INVENTORY", SHOP_INVENTORY }, { "RUNE", RUNE }, { "TRAP", TRAP }, { "POWER_CRYSTAL", POWER_CRYSTAL }, { "CORPSE", CORPSE }, { "DISEASE", DISEASE }, { "SYMPTOM", SYMPTOM }, { "BUILDER", BUILDER }, { "MATERIAL", MATERIAL }, { NULL, 0 } }; static const CFConstant cstMove[] = { { "WALK", MOVE_WALK }, { "FLY_LOW", MOVE_FLY_LOW }, { "FLY_HIGH", MOVE_FLY_HIGH }, { "FLYING", MOVE_FLYING }, { "SWIM", MOVE_SWIM }, { "BOAT", MOVE_BOAT }, { "ALL", MOVE_ALL }, { NULL, 0 } }; static const CFConstant cstMessageFlag[] = { { "NDI_BLACK", NDI_BLACK }, { "NDI_WHITE", NDI_WHITE }, { "NDI_NAVY", NDI_NAVY }, { "NDI_RED", NDI_RED }, { "NDI_ORANGE", NDI_ORANGE }, { "NDI_BLUE", NDI_BLUE }, { "NDI_DK_ORANGE", NDI_DK_ORANGE }, { "NDI_GREEN", NDI_GREEN }, { "NDI_LT_GREEN", NDI_LT_GREEN }, { "NDI_GREY", NDI_GREY }, { "NDI_BROWN", NDI_BROWN }, { "NDI_GOLD", NDI_GOLD }, { "NDI_TAN", NDI_TAN }, { "NDI_UNIQUE", NDI_UNIQUE }, { "NDI_ALL", NDI_ALL }, { "NDI_ALL_DMS", NDI_ALL_DMS }, { NULL, 0 } }; static const CFConstant cstCostFlag[] = { { "TRUE", F_TRUE }, { "BUY", F_BUY }, { "SELL", F_SELL }, { "NOBARGAIN", F_NO_BARGAIN }, { "IDENTIFIED", F_IDENTIFIED }, { "NOTCURSED", F_NOT_CURSED }, { NULL, 0 } }; static const CFConstant cstAttackType[] = { { "PHYSICAL", AT_PHYSICAL }, { "MAGIC", AT_MAGIC }, { "FIRE", AT_FIRE }, { "ELECTRICITY", AT_ELECTRICITY }, { "COLD", AT_COLD }, { "CONFUSION", AT_CONFUSION }, { "ACID", AT_ACID }, { "DRAIN", AT_DRAIN }, { "WEAPONMAGIC", AT_WEAPONMAGIC }, { "GHOSTHIT", AT_GHOSTHIT }, { "POISON", AT_POISON }, { "SLOW", AT_SLOW }, { "PARALYZE", AT_PARALYZE }, { "TURN_UNDEAD", AT_TURN_UNDEAD }, { "FEAR", AT_FEAR }, { "CANCELLATION", AT_CANCELLATION }, { "DEPLETE", AT_DEPLETE }, { "DEATH", AT_DEATH }, { "CHAOS", AT_CHAOS }, { "COUNTERSPELL", AT_COUNTERSPELL }, { "GODPOWER", AT_GODPOWER }, { "HOLYWORD", AT_HOLYWORD }, { "BLIND", AT_BLIND }, { "INTERNAL", AT_INTERNAL }, { "LIFE_STEALING", AT_LIFE_STEALING }, { "DISEASE", AT_DISEASE }, { NULL, 0 } }; static const CFConstant cstAttackTypeNumber[] = { { "PHYSICAL", ATNR_PHYSICAL }, { "MAGIC", ATNR_MAGIC }, { "FIRE", ATNR_FIRE }, { "ELECTRICITY", ATNR_ELECTRICITY }, { "COLD", ATNR_COLD }, { "CONFUSION", ATNR_CONFUSION }, { "ACID", ATNR_ACID }, { "DRAIN", ATNR_DRAIN }, { "WEAPONMAGIC", ATNR_WEAPONMAGIC }, { "GHOSTHIT", ATNR_GHOSTHIT }, { "POISON", ATNR_POISON }, { "SLOW", ATNR_SLOW }, { "PARALYZE", ATNR_PARALYZE }, { "TURN_UNDEAD", ATNR_TURN_UNDEAD }, { "FEAR", ATNR_FEAR }, { "CANCELLATION", ATNR_CANCELLATION }, { "DEPLETE", ATNR_DEPLETE }, { "DEATH", ATNR_DEATH }, { "CHAOS", ATNR_CHAOS }, { "COUNTERSPELL", ATNR_COUNTERSPELL }, { "GODPOWER", ATNR_GODPOWER }, { "HOLYWORD", ATNR_HOLYWORD }, { "BLIND", ATNR_BLIND }, { "INTERNAL", ATNR_INTERNAL }, { "LIFE_STEALING", ATNR_LIFE_STEALING }, { "DISEASE", ATNR_DISEASE }, { NULL, 0 } }; static const CFConstant cstEventType[] = { { "APPLY", EVENT_APPLY }, { "ATTACK", EVENT_ATTACK }, { "DEATH", EVENT_DEATH }, { "DROP", EVENT_DROP }, { "PICKUP", EVENT_PICKUP }, { "SAY", EVENT_SAY }, { "STOP", EVENT_STOP }, { "TIME", EVENT_TIME }, { "THROW", EVENT_THROW }, { "TRIGGER", EVENT_TRIGGER }, { "CLOSE", EVENT_CLOSE }, { "TIMER", EVENT_TIMER }, { "DESTROY", EVENT_DESTROY }, { "BORN", EVENT_BORN }, { "CLOCK", EVENT_CLOCK }, { "CRASH", EVENT_CRASH }, { "PLAYER_DEATH", EVENT_PLAYER_DEATH }, { "GKILL", EVENT_GKILL }, { "LOGIN", EVENT_LOGIN }, { "LOGOUT", EVENT_LOGOUT }, { "MAPENTER", EVENT_MAPENTER }, { "MAPLEAVE", EVENT_MAPLEAVE }, { "MAPRESET", EVENT_MAPRESET }, { "REMOVE", EVENT_REMOVE }, { "SHOUT", EVENT_SHOUT }, { "TELL", EVENT_TELL }, { "MUZZLE", EVENT_MUZZLE }, { "KICK", EVENT_KICK }, { "MAPUNLOAD", EVENT_MAPUNLOAD }, { "MAPLOAD", EVENT_MAPLOAD }, { "USER", EVENT_USER }, { NULL, 0 } }; static const CFConstant cstTime[] = { { "HOURS_PER_DAY", HOURS_PER_DAY }, { "DAYS_PER_WEEK", DAYS_PER_WEEK }, { "WEEKS_PER_MONTH", WEEKS_PER_MONTH }, { "MONTHS_PER_YEAR", MONTHS_PER_YEAR }, { "SEASONS_PER_YEAR", SEASONS_PER_YEAR }, { "PERIODS_PER_DAY", PERIODS_PER_DAY }, { NULL, 0 } }; static const CFConstant cstReplyTypes[] = { { "SAY", rt_say }, { "REPLY", rt_reply }, { "QUESTION", rt_question }, { NULL, 0 } }; addConstants(module, "Direction", cstDirection); addConstants(module, "Type", cstType); addConstants(module, "Move", cstMove); addConstants(module, "MessageFlag", cstMessageFlag); addConstants(module, "CostFlag", cstCostFlag); addConstants(module, "AttackType", cstAttackType); addConstants(module, "AttackTypeNumber", cstAttackTypeNumber); addConstants(module, "EventType", cstEventType); addSimpleConstants(module, "Time", cstTime); addSimpleConstants(module, "ReplyType", cstReplyTypes); } /* * Set up the main module and handle misc plugin loading stuff and such. */ /** * Set up the various types (map, object, archetype and so on) as well as some * constants, and Crossfire.error. */ static void cfpython_init_types(PyObject* m) { PyObject *d = PyModule_GetDict(m); Crossfire_ObjectType.tp_new = PyType_GenericNew; Crossfire_MapType.tp_new = PyType_GenericNew; Crossfire_PlayerType.tp_new = PyType_GenericNew; Crossfire_ArchetypeType.tp_new = PyType_GenericNew; Crossfire_PartyType.tp_new = PyType_GenericNew; Crossfire_RegionType.tp_new = PyType_GenericNew; PyType_Ready(&Crossfire_ObjectType); PyType_Ready(&Crossfire_MapType); PyType_Ready(&Crossfire_PlayerType); PyType_Ready(&Crossfire_ArchetypeType); PyType_Ready(&Crossfire_PartyType); PyType_Ready(&Crossfire_RegionType); Py_INCREF(&Crossfire_ObjectType); Py_INCREF(&Crossfire_MapType); Py_INCREF(&Crossfire_PlayerType); Py_INCREF(&Crossfire_ArchetypeType); Py_INCREF(&Crossfire_PartyType); Py_INCREF(&Crossfire_RegionType); PyModule_AddObject(m, "Object", (PyObject *)&Crossfire_ObjectType); PyModule_AddObject(m, "Map", (PyObject *)&Crossfire_MapType); PyModule_AddObject(m, "Player", (PyObject *)&Crossfire_PlayerType); PyModule_AddObject(m, "Archetype", (PyObject *)&Crossfire_ArchetypeType); PyModule_AddObject(m, "Party", (PyObject *)&Crossfire_PartyType); PyModule_AddObject(m, "Region", (PyObject *)&Crossfire_RegionType); PyModule_AddObject(m, "LogError", Py_BuildValue("i", llevError)); PyModule_AddObject(m, "LogInfo", Py_BuildValue("i", llevInfo)); PyModule_AddObject(m, "LogDebug", Py_BuildValue("i", llevDebug)); PyModule_AddObject(m, "LogMonster", Py_BuildValue("i", llevMonster)); CFPythonError = PyErr_NewException("Crossfire.error", NULL, NULL); PyDict_SetItemString(d, "error", CFPythonError); } #ifdef IS_PY3K extern PyObject* PyInit_cjson(void); #else extern PyMODINIT_FUNC initcjson(void); #endif #ifdef IS_PY3K static PyModuleDef CrossfireModule = { PyModuleDef_HEAD_INIT, "Crossfire", /* m_name */ NULL, /* m_doc */ -1, /* m_size */ CFPythonMethods, /* m_methods */ NULL, /* m_reload */ NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; static PyObject* PyInit_Crossfire(void) { PyObject *m = PyModule_Create(&CrossfireModule); Py_INCREF(m); return m; } #endif CF_PLUGIN int initPlugin(const char *iversion, f_plug_api gethooksptr) { PyObject *m; int i; /* Python code to redirect stdouts/stderr. */ const char *stdOutErr = "import sys\n\ class CatchOutErr:\n\ def __init__(self):\n\ self.value = ''\n\ def write(self, txt):\n\ self.value += txt\n\ catchOutErr = CatchOutErr()\n\ sys.stdout = catchOutErr\n\ sys.stderr = catchOutErr\n\ "; cf_init_plugin(gethooksptr); cf_log(llevDebug, "CFPython 2.0a init\n"); init_object_assoc_table(); init_map_assoc_table(); #ifdef IS_PY26 Py_Py3kWarningFlag++; #endif #ifdef IS_PY3K PyImport_AppendInittab("Crossfire", &PyInit_Crossfire); PyImport_AppendInittab("cjson", &PyInit_cjson); #endif Py_Initialize(); #ifdef IS_PY3K m = PyImport_ImportModule("Crossfire"); #else m = Py_InitModule("Crossfire", CFPythonMethods); #endif cfpython_init_types(m); for (i = 0; i < NR_CUSTOM_CMD; i++) { CustomCommand[i].name = NULL; CustomCommand[i].script = NULL; CustomCommand[i].speed = 0.0; } initConstants(m); private_data = PyDict_New(); shared_data = PyDict_New(); /* Redirect Python's stderr to a special object so it can be put to * the Crossfire log. */ m = PyImport_AddModule("__main__"); PyRun_SimpleString(stdOutErr); catcher = PyObject_GetAttrString(m, "catchOutErr"); #ifndef IS_PY3K /* add cjson module*/ initcjson(); #endif return 0; } CF_PLUGIN void *getPluginProperty(int *type, ...) { va_list args; const char *propname; int i, size; command_array_struct *rtn_cmd; char *buf; va_start(args, type); propname = va_arg(args, const char *); if (!strcmp(propname, "command?")) { const char *cmdname; cmdname = va_arg(args, const char *); rtn_cmd = va_arg(args, command_array_struct *); va_end(args); for (i = 0; i < NR_CUSTOM_CMD; i++) { if (CustomCommand[i].name != NULL) { if (!strcmp(CustomCommand[i].name, cmdname)) { rtn_cmd->name = CustomCommand[i].name; rtn_cmd->time = (float)CustomCommand[i].speed; rtn_cmd->func = cfpython_runPluginCommand; current_command = i; return rtn_cmd; } } } return NULL; } else if (!strcmp(propname, "Identification")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_NAME); return NULL; } else if (!strcmp(propname, "FullName")) { buf = va_arg(args, char *); size = va_arg(args, int); va_end(args); snprintf(buf, size, PLUGIN_VERSION); return NULL; } va_end(args); return NULL; } CF_PLUGIN void cfpython_runPluginCommand(object *op, const char *params) { char buf[1024], path[1024]; CFPContext *context; if (current_command < 0) { cf_log(llevError, "Illegal call of cfpython_runPluginCommand, call find_plugin_command first.\n"); return; } snprintf(buf, sizeof(buf), "%s.py", cf_get_maps_directory(CustomCommand[current_command].script, path, sizeof(path))); context = malloc(sizeof(CFPContext)); context->message[0] = 0; context->who = Crossfire_Object_wrap(op); context->activator = NULL; context->third = NULL; context->fix = 0; snprintf(context->script, sizeof(context->script), "%s", buf); if (params) snprintf(context->options, sizeof(context->options), "%s", params); else context->options[0] = 0; context->returnvalue = 1; /* Default is "command successful" */ current_command = -999; if (!do_script(context, 0)) { freeContext(context); return; } context = popContext(); freeContext(context); /* printf("Execution complete"); */ } CF_PLUGIN int postInitPlugin(void) { PyObject *scriptfile; char path[1024]; int i; cf_log(llevDebug, "CFPython 2.0a post init\n"); initContextStack(); cf_system_register_global_event(EVENT_BORN, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_CLOCK, PLUGIN_NAME, cfpython_globalEventListener); /*registerGlobalEvent(NULL, EVENT_CRASH, PLUGIN_NAME, cfpython_globalEventListener);*/ cf_system_register_global_event(EVENT_PLAYER_DEATH, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_GKILL, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_LOGIN, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_LOGOUT, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_MAPENTER, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_MAPLEAVE, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_MAPRESET, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_REMOVE, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_SHOUT, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_TELL, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_MUZZLE, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_KICK, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_MAPUNLOAD, PLUGIN_NAME, cfpython_globalEventListener); cf_system_register_global_event(EVENT_MAPLOAD, PLUGIN_NAME, cfpython_globalEventListener); scriptfile = cfpython_openpyfile(cf_get_maps_directory("python/events/python_init.py", path, sizeof(path))); if (scriptfile != NULL) { FILE* pyfile = cfpython_pyfile_asfile(scriptfile); PyRun_SimpleFile(pyfile, cf_get_maps_directory("python/events/python_init.py", path, sizeof(path))); Py_DECREF(scriptfile); } for (i = 0; i < PYTHON_CACHE_SIZE; i++) { pycode_cache[i].code = NULL; pycode_cache[i].file = NULL; pycode_cache[i].cached_time = 0; pycode_cache[i].used_time = 0; } return 0; } CF_PLUGIN int cfpython_globalEventListener(int *type, ...) { va_list args; int rv = 0; CFPContext *context; char *buf; player *pl; object *op; context = malloc(sizeof(CFPContext)); va_start(args, type); context->event_code = va_arg(args, int); context->message[0] = 0; context->who = NULL; context->activator = NULL; context->third = NULL; context->event = NULL; context->talk = NULL; rv = context->returnvalue = 0; cf_get_maps_directory("python/events/python_event.py", context->script, sizeof(context->script)); strcpy(context->options, ""); switch (context->event_code) { case EVENT_CRASH: cf_log(llevDebug, "Unimplemented for now\n"); break; case EVENT_BORN: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); snprintf(context->options, sizeof(context->options), "born"); break; case EVENT_PLAYER_DEATH: op = va_arg(args, object *); context->who = Crossfire_Object_wrap(op); op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); snprintf(context->options, sizeof(context->options), "death"); break; case EVENT_GKILL: op = va_arg(args, object *); context->who = Crossfire_Object_wrap(op); context->activator = Crossfire_Object_wrap(op); snprintf(context->options, sizeof(context->options), "gkill"); break; case EVENT_LOGIN: pl = va_arg(args, player *); context->activator = Crossfire_Object_wrap(pl->ob); buf = va_arg(args, char *); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); snprintf(context->options, sizeof(context->options), "login"); break; case EVENT_LOGOUT: pl = va_arg(args, player *); context->activator = Crossfire_Object_wrap(pl->ob); buf = va_arg(args, char *); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); snprintf(context->options, sizeof(context->options), "logout"); break; case EVENT_REMOVE: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); snprintf(context->options, sizeof(context->options), "remove"); break; case EVENT_SHOUT: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); buf = va_arg(args, char *); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); snprintf(context->options, sizeof(context->options), "shout"); break; case EVENT_MUZZLE: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); buf = va_arg(args, char *); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); snprintf(context->options, sizeof(context->options), "muzzle"); break; case EVENT_KICK: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); buf = va_arg(args, char *); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); snprintf(context->options, sizeof(context->options), "kick"); break; case EVENT_MAPENTER: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); context->who = Crossfire_Map_wrap(va_arg(args, mapstruct *)); snprintf(context->options, sizeof(context->options), "mapenter"); break; case EVENT_MAPLEAVE: op = va_arg(args, object *); context->activator = Crossfire_Object_wrap(op); context->who = Crossfire_Map_wrap(va_arg(args, mapstruct *)); snprintf(context->options, sizeof(context->options), "mapleave"); break; case EVENT_CLOCK: snprintf(context->options, sizeof(context->options), "clock"); break; case EVENT_MAPRESET: context->who = Crossfire_Map_wrap(va_arg(args, mapstruct *)); snprintf(context->options, sizeof(context->options), "mapreset"); break; case EVENT_TELL: op = va_arg(args, object *); buf = va_arg(args, char *); context->activator = Crossfire_Object_wrap(op); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); op = va_arg(args, object *); context->third = Crossfire_Object_wrap(op); snprintf(context->options, sizeof(context->options), "tell"); break; case EVENT_MAPUNLOAD: context->who = Crossfire_Map_wrap(va_arg(args, mapstruct *)); snprintf(context->options, sizeof(context->options), "mapunload"); break; case EVENT_MAPLOAD: context->who = Crossfire_Map_wrap(va_arg(args, mapstruct *)); snprintf(context->options, sizeof(context->options), "mapload"); break; } va_end(args); context->returnvalue = 0; if (!do_script(context, 1)) { freeContext(context); return rv; } context = popContext(); rv = context->returnvalue; /* Invalidate freed map wrapper. */ if (context->event_code == EVENT_MAPUNLOAD) Handle_Map_Unload_Hook((Crossfire_Map *)context->who); freeContext(context); return rv; } CF_PLUGIN int eventListener(int *type, ...) { int rv = 0; va_list args; char *buf; CFPContext *context; object *event; context = malloc(sizeof(CFPContext)); context->message[0] = 0; va_start(args, type); context->who = Crossfire_Object_wrap(va_arg(args, object *)); context->activator = Crossfire_Object_wrap(va_arg(args, object *)); context->third = Crossfire_Object_wrap(va_arg(args, object *)); buf = va_arg(args, char *); if (buf != NULL) snprintf(context->message, sizeof(context->message), "%s", buf); context->fix = va_arg(args, int); event = va_arg(args, object *); context->talk = va_arg(args, talk_info *); context->event_code = event->subtype; context->event = Crossfire_Object_wrap(event); cf_get_maps_directory(event->slaying, context->script, sizeof(context->script)); snprintf(context->options, sizeof(context->options), "%s", event->name); context->returnvalue = 0; va_end(args); if (!do_script(context, 0)) { freeContext(context); return rv; } context = popContext(); rv = context->returnvalue; freeContext(context); return rv; } CF_PLUGIN int closePlugin(void) { int i; cf_log(llevDebug, "CFPython 2.0a closing\n"); for (i = 0; i < NR_CUSTOM_CMD; i++) { if (CustomCommand[i].name != NULL) cf_free_string(CustomCommand[i].name); if (CustomCommand[i].script != NULL) cf_free_string(CustomCommand[i].script); } for (i = 0; i < PYTHON_CACHE_SIZE; i++) { Py_XDECREF(pycode_cache[i].code); if (pycode_cache[i].file != NULL) cf_free_string(pycode_cache[i].file); } Py_Finalize(); return 0; } crossfire-1.70.0/plugins/cfpython/cfpython_map.c0000644000014500000120000003503611731300520016647 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include #include /* Table for keeping track of which PyObject goes with with Crossfire object */ static ptr_assoc_table map_assoc_table; /* Helper functions for dealing with object_assoc_table */ void init_map_assoc_table(void) { init_ptr_assoc_table(map_assoc_table); } static void add_map_assoc(mapstruct *key, Crossfire_Map *value) { add_ptr_assoc(map_assoc_table, key, value); } static PyObject *find_assoc_pymap(mapstruct *key) { return (PyObject *)find_assoc_value(map_assoc_table, key); } static void free_map_assoc(mapstruct *key) { free_ptr_assoc(map_assoc_table, key); } /** This makes sure the map is in memory and not swapped out. */ static void ensure_map_in_memory(Crossfire_Map *map) { assert(map->map != NULL); if (map->map->in_memory != MAP_IN_MEMORY) { char* mapname = map->map->path; int is_unique = cf_map_get_int_property(map->map, CFAPI_MAP_PROP_UNIQUE); /* If the map is unique the path name will be freed. We need to handle that. */ if (is_unique) { char* tmp = strdup(mapname); if (!tmp) { /* FIXME: We should fatal() here, but that doesn't exist in plugins. */ cf_log(llevError, "Out of memory in ensure_map_in_memory()!\n"); abort(); } mapname = tmp; } cf_log(llevDebug, "MAP %s AIN'T READY ! Loading it...\n", mapname); /* Map pointer may change for player unique maps. */ /* Also, is the MAP_PLAYER_UNIQUE logic correct? */ map->map = cf_map_get_map(mapname, is_unique ? MAP_PLAYER_UNIQUE : 0); if (is_unique) free(mapname); } } static PyObject *Map_GetDifficulty(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_difficulty(whoptr->map)); } static PyObject *Map_GetPath(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("s", cf_map_get_sstring_property(whoptr->map, CFAPI_MAP_PROP_PATH)); } static PyObject *Map_GetTempName(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("s", cf_map_get_sstring_property(whoptr->map, CFAPI_MAP_PROP_TMPNAME)); } static PyObject *Map_GetName(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("s", cf_map_get_sstring_property(whoptr->map, CFAPI_MAP_PROP_NAME)); } static PyObject *Map_GetResetTime(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_reset_time(whoptr->map)); } static PyObject *Map_GetResetTimeout(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_reset_timeout(whoptr->map)); } static PyObject *Map_GetPlayers(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_players(whoptr->map)); } static PyObject *Map_GetDarkness(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_darkness(whoptr->map)); } static PyObject *Map_GetWidth(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_width(whoptr->map)); } static PyObject *Map_GetHeight(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_height(whoptr->map)); } static PyObject *Map_GetEnterX(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_int_property(whoptr->map, CFAPI_MAP_PROP_ENTER_X)); } static PyObject *Map_GetEnterY(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_enter_x(whoptr->map)); } static PyObject *Map_GetMessage(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("s", cf_map_get_sstring_property(whoptr->map, CFAPI_MAP_PROP_MESSAGE)); } static PyObject *Map_GetRegion(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Crossfire_Region_wrap(cf_map_get_region_property(whoptr->map, CFAPI_MAP_PROP_REGION)); } static int Map_SetPath(Crossfire_Map *whoptr, PyObject *value, void *closure) { const char *val; MAPEXISTCHECK_INT(whoptr); if (!PyArg_Parse(value, "s", &val)) return -1; cf_map_set_string_property(whoptr->map, CFAPI_MAP_PROP_PATH, val); return 0; } static PyObject *Map_GetUnique(Crossfire_Map *whoptr, void *closure) { MAPEXISTCHECK(whoptr); return Py_BuildValue("i", cf_map_get_int_property(whoptr->map, CFAPI_MAP_PROP_UNIQUE)); } static PyObject *Map_Message(Crossfire_Map *map, PyObject *args) { int color = NDI_BLUE|NDI_UNIQUE; char *message; if (!PyArg_ParseTuple(args, "s|i", &message, &color)) return NULL; MAPEXISTCHECK(map); cf_map_message(map->map, message, color); Py_INCREF(Py_None); return Py_None; } static PyObject *Map_GetFirstObjectAt(Crossfire_Map *map, PyObject *args) { int x, y; object *val; if (!PyArg_ParseTuple(args, "ii", &x, &y)) return NULL; MAPEXISTCHECK(map); /* make sure the map is swapped in */ ensure_map_in_memory(map); val = cf_map_get_object_at(map->map, x, y); return Crossfire_Object_wrap(val); } static PyObject *Map_CreateObject(Crossfire_Map *map, PyObject *args) { char *txt; int x, y; object *op; if (!PyArg_ParseTuple(args, "sii", &txt, &x, &y)) return NULL; MAPEXISTCHECK(map); /* make sure the map is swapped in */ ensure_map_in_memory(map); op = cf_create_object_by_name(txt); if (op) op = cf_map_insert_object(map->map, op, x, y); return Crossfire_Object_wrap(op); } static PyObject *Map_Check(Crossfire_Map *map, PyObject *args) { char *what; int x, y; object *foundob; sint16 nx, ny; int mflags; if (!PyArg_ParseTuple(args, "s(ii)", &what, &x, &y)) return NULL; MAPEXISTCHECK(map); /* make sure the map is swapped in */ ensure_map_in_memory(map); mflags = cf_map_get_flags(map->map, &(map->map), (sint16)x, (sint16)y, &nx, &ny); if (mflags&P_OUT_OF_MAP) { Py_INCREF(Py_None); return Py_None; } foundob = cf_map_find_by_archetype_name(what, map->map, nx, ny); return Crossfire_Object_wrap(foundob); } static PyObject *Map_Next(Crossfire_Map *map, PyObject *args) { MAPEXISTCHECK(map); return Crossfire_Map_wrap(cf_map_get_map_property(map->map, CFAPI_MAP_PROP_NEXT)); } static PyObject *Map_Insert(Crossfire_Map *map, PyObject *args) { int x, y; Crossfire_Object *what; if (!PyArg_ParseTuple(args, "O!ii", &Crossfire_ObjectType, &what, &x, &y)) return NULL; MAPEXISTCHECK(map); /* make sure the map is swapped in */ ensure_map_in_memory(map); return Crossfire_Object_wrap(cf_map_insert_object(map->map, what->obj, x, y)); } static PyObject *Map_InsertAround(Crossfire_Map *map, PyObject *args) { int x, y; Crossfire_Object *what; if (!PyArg_ParseTuple(args, "O!ii", &Crossfire_ObjectType, &what, &x, &y)) return NULL; MAPEXISTCHECK(map); /* make sure the map is swapped in */ ensure_map_in_memory(map); return Crossfire_Object_wrap(cf_map_insert_object_around(map->map, what->obj, x, y)); } static PyObject *Map_ChangeLight(Crossfire_Map *map, PyObject *args) { int change; if (!PyArg_ParseTuple(args, "i", &change)) return NULL; MAPEXISTCHECK(map); return Py_BuildValue("i", cf_map_change_light(map->map, change)); } /** * Python backend method for Map.TriggerConnected(int connected, CfObject cause, int state) * * Expected arguments: * - connected will be used to locate Objectlink with given id on map * - state: 0=trigger the "release", other is trigger the "push", default is push * - cause, eventual CfObject causing this trigger * * @param map * map we're on. * @param args * arguments as explained above. * @return * NULL if error, Py_None else. */ static PyObject *Map_TriggerConnected(Crossfire_Map *map, PyObject *args) { objectlink *ol = NULL; int connected; int state; Crossfire_Object *cause = NULL; oblinkpt *olp; if (!PyArg_ParseTuple(args, "ii|O!", &connected, &state, &Crossfire_ObjectType, &cause)) return NULL; MAPEXISTCHECK(map); /* make sure the map is swapped in */ ensure_map_in_memory(map); /* locate objectlink for this connected value */ if (!map->map->buttons) { cf_log(llevError, "Map %s called for trigger on connected %d but there ain't any button list for that map!\n", cf_map_get_sstring_property(map->map, CFAPI_MAP_PROP_PATH), connected); PyErr_SetString(PyExc_ReferenceError, "No objects connected to that ID on this map."); return NULL; } for (olp = map->map->buttons; olp; olp = olp->next) { if (olp->value == connected) { ol = olp->link; break; } } if (ol == NULL) { cf_log(llevInfo, "Map %s called for trigger on connected %d but there ain't any button list for that map!\n", cf_map_get_sstring_property(map->map, CFAPI_MAP_PROP_PATH), connected); /* FIXME: I'm not sure about this message... */ PyErr_SetString(PyExc_ReferenceError, "No objects with that connection ID on this map."); return NULL; } /* run the object link */ cf_map_trigger_connected(ol, cause ? cause->obj : NULL, state); Py_INCREF(Py_None); return Py_None; } static int Map_InternalCompare(Crossfire_Map *left, Crossfire_Map *right) { MAPEXISTCHECK_INT(left); MAPEXISTCHECK_INT(right); return left->map < right->map ? -1 : (left->map == right->map ? 0 : 1); } static PyObject *Crossfire_Map_RichCompare(Crossfire_Map *left, Crossfire_Map *right, int op) { int result; if (!left || !right || !PyObject_TypeCheck((PyObject*)left, &Crossfire_MapType) || !PyObject_TypeCheck((PyObject*)right, &Crossfire_MapType)) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } result = Map_InternalCompare(left, right); /* Handle removed maps. */ if (result == -1 && PyErr_Occurred()) return NULL; /* Based on how Python 3.0 (GPL compatible) implements it for internal types: */ switch (op) { case Py_EQ: result = (result == 0); break; case Py_NE: result = (result != 0); break; case Py_LE: result = (result <= 0); break; case Py_GE: result = (result >= 0); break; case Py_LT: result = (result == -1); break; case Py_GT: result = (result == 1); break; } return PyBool_FromLong(result); } /* Legacy code: convert to long so that non-object functions work correctly */ static PyObject *Crossfire_Map_Long(PyObject *obj) { MAPEXISTCHECK((Crossfire_Map *)obj); return Py_BuildValue("l", ((Crossfire_Map *)obj)->map); } #ifndef IS_PY3K static PyObject *Crossfire_Map_Int(PyObject *obj) { MAPEXISTCHECK((Crossfire_Map *)obj); return Py_BuildValue("i", ((Crossfire_Map *)obj)->map); } #endif /** * Python initialized. **/ static PyObject *Crossfire_Map_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { Crossfire_Map *self; self = (Crossfire_Map *)type->tp_alloc(type, 0); if (self) self->map = NULL; return (PyObject *)self; } static void Crossfire_Map_dealloc(PyObject *obj) { Crossfire_Map *self; self = (Crossfire_Map *)obj; if (self) { if (self->map && self->valid) { free_map_assoc(self->map); } Py_TYPE(self)->tp_free(obj); } } void Handle_Map_Unload_Hook(Crossfire_Map *map) { map->valid = 0; free_map_assoc(map->map); } PyObject *Crossfire_Map_wrap(mapstruct *what) { Crossfire_Map *wrapper; /* return None if no object was to be wrapped */ if (what == NULL) { Py_INCREF(Py_None); return Py_None; } wrapper = (Crossfire_Map *)find_assoc_pymap(what); if (!wrapper) { wrapper = PyObject_NEW(Crossfire_Map, &Crossfire_MapType); if (wrapper != NULL) { wrapper->map = what; wrapper->valid = 1; add_map_assoc(what, wrapper); } } else { Py_INCREF(wrapper); } return (PyObject *)wrapper; } crossfire-1.70.0/plugins/cfpython/Makefile.in0000644000014500000120000006665711732537022016110 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = plugins/cfpython DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(plugin_LTLIBRARIES) cfpython_la_DEPENDENCIES = am_cfpython_la_OBJECTS = cfpython.lo cfpython_archetype.lo \ cfpython_object.lo cfpython_map.lo cfpython_party.lo \ cfpython_region.lo cjson.lo plugin_common.lo hashtable.lo cfpython_la_OBJECTS = $(am_cfpython_la_OBJECTS) cfpython_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(cfpython_la_LDFLAGS) $(LDFLAGS) -o $@ @PYTHON_PLUGIN_TRUE@am_cfpython_la_rpath = -rpath $(plugindir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(cfpython_la_SOURCES) DIST_SOURCES = $(cfpython_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ plugindir = $(pkglibdir)/plugins SUBDIRS = include @PYTHON_PLUGIN_FALSE@plugin_LTLIBRARIES = @PYTHON_PLUGIN_TRUE@plugin_LTLIBRARIES = cfpython.la cfpython_la_SOURCES = cfpython.c\ cfpython_archetype.c\ cfpython_object.c\ cfpython_map.c\ cfpython_party.c\ cfpython_region.c\ cjson.c\ ../common/plugin_common.c\ ../common/hashtable.c cfpython_la_CPSOURCES = cfpython.c\ cfpython_archetype.c\ cfpython_object.c\ cfpython_party.c\ cfpython_region.c\ cfpython_map.c cfpython_la_LIBADD = @PYTHON_LIB@ @PY_LIBS@ cfpython_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(top_srcdir)/plugins/common/include -I$(top_srcdir)/include @PY_INCLUDES@ all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu plugins/cfpython/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu plugins/cfpython/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done cfpython.la: $(cfpython_la_OBJECTS) $(cfpython_la_DEPENDENCIES) $(EXTRA_cfpython_la_DEPENDENCIES) $(cfpython_la_LINK) $(am_cfpython_la_rpath) $(cfpython_la_OBJECTS) $(cfpython_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfpython.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfpython_archetype.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfpython_map.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfpython_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfpython_party.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfpython_region.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cjson.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_common.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< plugin_common.lo: ../common/plugin_common.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT plugin_common.lo -MD -MP -MF $(DEPDIR)/plugin_common.Tpo -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/plugin_common.Tpo $(DEPDIR)/plugin_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/plugin_common.c' object='plugin_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o plugin_common.lo `test -f '../common/plugin_common.c' || echo '$(srcdir)/'`../common/plugin_common.c hashtable.lo: ../common/hashtable.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hashtable.lo -MD -MP -MF $(DEPDIR)/hashtable.Tpo -c -o hashtable.lo `test -f '../common/hashtable.c' || echo '$(srcdir)/'`../common/hashtable.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/hashtable.Tpo $(DEPDIR)/hashtable.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common/hashtable.c' object='hashtable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hashtable.lo `test -f '../common/hashtable.c' || echo '$(srcdir)/'`../common/hashtable.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-pluginLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pluginLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-pluginLTLIBRARIES proto: cproto -D__CEXTRACT__ -o include/cfpython_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cfpython_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfpython_proto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/plugins/cfpython/cfpython_region.c0000644000014500000120000001206611731300520017353 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include static PyObject *Crossfire_Region_GetName(Crossfire_Region *regionptr, void *closure) { return Py_BuildValue("s", cf_region_get_name(regionptr->reg)); } static PyObject *Crossfire_Region_GetLongname(Crossfire_Region *regionptr, void *closure) { return Py_BuildValue("s", cf_region_get_longname(regionptr->reg)); } static PyObject *Crossfire_Region_GetMessage(Crossfire_Region *regionptr, void *closure) { return Py_BuildValue("s", cf_region_get_message(regionptr->reg)); } static PyObject *Crossfire_Region_GetNext(Crossfire_Region *party, void *closure) { return Crossfire_Region_wrap(cf_region_get_next(party->reg)); } static PyObject *Crossfire_Region_GetParent(Crossfire_Region *party, PyObject *args) { return Crossfire_Region_wrap(cf_region_get_parent(party->reg)); } static PyObject *Crossfire_Region_GetJailX(Crossfire_Region *regionptr, void *closure) { return Py_BuildValue("i", cf_region_get_jail_x(regionptr->reg)); } static PyObject *Crossfire_Region_GetJailY(Crossfire_Region *regionptr, void *closure) { return Py_BuildValue("i", cf_region_get_jail_y(regionptr->reg)); } static PyObject *Crossfire_Region_GetJailPath(Crossfire_Region *regionptr, void *closure) { return Py_BuildValue("s", cf_region_get_jail_path(regionptr->reg)); } PyObject *Crossfire_Region_wrap(region *what) { Crossfire_Region *wrapper; /* return None if no object was to be wrapped */ if (what == NULL) { Py_INCREF(Py_None); return Py_None; } wrapper = PyObject_NEW(Crossfire_Region, &Crossfire_RegionType); if (wrapper != NULL) wrapper->reg = what; return (PyObject *)wrapper; } static int Crossfire_Region_InternalCompare(Crossfire_Region *left, Crossfire_Region *right) { return (left->reg < right->reg ? -1 : (left->reg == right->reg ? 0 : 1)); } static PyObject *Crossfire_Region_RichCompare(Crossfire_Region *left, Crossfire_Region *right, int op) { int result; if (!left || !right || !PyObject_TypeCheck((PyObject*)left, &Crossfire_RegionType) || !PyObject_TypeCheck((PyObject*)right, &Crossfire_RegionType)) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } result = Crossfire_Region_InternalCompare(left, right); /* Based on how Python 3.0 (GPL compatible) implements it for internal types: */ switch (op) { case Py_EQ: result = (result == 0); break; case Py_NE: result = (result != 0); break; case Py_LE: result = (result <= 0); break; case Py_GE: result = (result >= 0); break; case Py_LT: result = (result == -1); break; case Py_GT: result = (result == 1); break; } return PyBool_FromLong(result); } crossfire-1.70.0/plugins/cfpython/cfpython_archetype.c0000644000014500000120000001151011731300520020045 00000000000000/*****************************************************************************/ /* CFPython - A Python module for Crossfire RPG. */ /* Version: 2.0beta8 (also known as "Alexander") */ /* Contact: yann.chachkoff@myrealbox.com */ /*****************************************************************************/ /* That code is placed under the GNU General Public Licence (GPL) */ /* (C)2001-2005 by Chachkoff Yann (Feel free to deliver your complaints) */ /*****************************************************************************/ /* CrossFire, A Multiplayer game for X-windows */ /* */ /* Copyright (C) 2000 Mark Wedel */ /* Copyright (C) 1992 Frank Tore Johansen */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* */ /*****************************************************************************/ #include #include static PyObject *Crossfire_Archetype_GetName(Crossfire_Archetype *whoptr, void *closure) { return Py_BuildValue("s", cf_archetype_get_name(whoptr->arch)); } static PyObject *Crossfire_Archetype_GetNext(Crossfire_Archetype *who, void *closure) { return Crossfire_Archetype_wrap(cf_archetype_get_next(who->arch)); } static PyObject *Crossfire_Archetype_GetMore(Crossfire_Archetype *who, void *closure) { return Crossfire_Archetype_wrap(cf_archetype_get_more(who->arch)); } static PyObject *Crossfire_Archetype_GetHead(Crossfire_Archetype *who, void *closure) { return Crossfire_Archetype_wrap(cf_archetype_get_head(who->arch)); } static PyObject *Crossfire_Archetype_GetClone(Crossfire_Archetype *who, void *closure) { return Crossfire_Object_wrap(cf_archetype_get_clone(who->arch)); } static PyObject *Crossfire_Archetype_GetNewObject(Crossfire_Archetype *who, PyObject *args) { return Crossfire_Object_wrap(cf_create_object_by_name(cf_archetype_get_name(who->arch))); } PyObject *Crossfire_Archetype_wrap(archetype *what) { Crossfire_Archetype *wrapper; /* return None if no object was to be wrapped */ if (what == NULL) { Py_INCREF(Py_None); return Py_None; } wrapper = PyObject_NEW(Crossfire_Archetype, &Crossfire_ArchetypeType); if (wrapper != NULL) wrapper->arch = what; return (PyObject *)wrapper; } static int Crossfire_Archetype_InternalCompare(Crossfire_Archetype *left, Crossfire_Archetype *right) { return (left->arch < right->arch ? -1 : (left->arch == right->arch ? 0 : 1)); } static PyObject *Crossfire_Archetype_RichCompare(Crossfire_Archetype *left, Crossfire_Archetype *right, int op) { int result; if (!left || !right || !PyObject_TypeCheck((PyObject*)left, &Crossfire_ArchetypeType) || !PyObject_TypeCheck((PyObject*)right, &Crossfire_ArchetypeType)) { Py_INCREF(Py_NotImplemented); return Py_NotImplemented; } result = Crossfire_Archetype_InternalCompare(left, right); /* Based on how Python 3.0 (GPL compatible) implements it for internal types: */ switch (op) { case Py_EQ: result = (result == 0); break; case Py_NE: result = (result != 0); break; case Py_LE: result = (result <= 0); break; case Py_GE: result = (result >= 0); break; case Py_LT: result = (result == -1); break; case Py_GT: result = (result == 1); break; } return PyBool_FromLong(result); } crossfire-1.70.0/plugins/cfpython/Makefile.am0000644000014500000120000000354211731300520016045 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@sonic.net plugindir=$(pkglibdir)/plugins SUBDIRS = include if PYTHON_PLUGIN plugin_LTLIBRARIES = cfpython.la else plugin_LTLIBRARIES = endif cfpython_la_SOURCES = cfpython.c\ cfpython_archetype.c\ cfpython_object.c\ cfpython_map.c\ cfpython_party.c\ cfpython_region.c\ cjson.c\ ../common/plugin_common.c\ ../common/hashtable.c cfpython_la_CPSOURCES = cfpython.c\ cfpython_archetype.c\ cfpython_object.c\ cfpython_party.c\ cfpython_region.c\ cfpython_map.c cfpython_la_LIBADD = @PYTHON_LIB@ @PY_LIBS@ cfpython_la_LDFLAGS = -module -avoid-version -rdynamic AM_CPPFLAGS = -I$(srcdir)/include -I$(top_srcdir)/plugins/common/include -I$(top_srcdir)/include @PY_INCLUDES@ proto: cproto -D__CEXTRACT__ -o include/cfpython_proto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(cfpython_la_CPSOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 include/cfpython_proto.h crossfire-1.70.0/plugins/Makefile.am0000644000014500000120000000035011731300520014205 00000000000000SUBDIRS = cfrhg citylife cfpython cfanim common cflogger cfnewspaper DISTCHECK_CONFIGURE_FLAGS = --localstatedir=$$dc_install_base/var --mandir=$$dc_install_base/man proto: (cd cfpython; make proto; cd ..; cd cfanim; make proto) crossfire-1.70.0/types/0000755000014500000120000000000011732537043011733 500000000000000crossfire-1.70.0/types/pedestal/0000755000014500000120000000000011732537043013534 500000000000000crossfire-1.70.0/types/pedestal/pedestal.c0000644000014500000120000000364311731300533015416 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file pedestal.c * The implementation of the Pedestal class of objects. */ #include #include #include #include #include static method_ret pedestal_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the PEDESTAL object type. */ void init_type_pedestal(void) { register_move_on(PEDESTAL, pedestal_type_move_on); } /** * Move on this Pedestal object. * @param context The method context * @param trap The Pedestal we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret pedestal_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; update_button(trap); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/shop_inventory/0000755000014500000120000000000011732537043015021 500000000000000crossfire-1.70.0/types/shop_inventory/shop_inventory.c0000644000014500000120000001344311731300533020167 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file shop_inventory.c * Implementation of the shop inventory class of objects. */ #include #include #include #include #include static method_ret shop_inventory_type_apply(ob_methods *context, object *lighter, object *applier, int aflags); /** * Initializer for the SHOP_INVENTORY object type. */ void init_type_shop_inventory(void) { register_apply(SHOP_INVENTORY, shop_inventory_type_apply); } /** * One item to list on the sign. */ typedef struct shopinv { char *item_sort; /**< Singular name. */ char *item_real; /**< Plural name. */ uint16 type; /**< Item type. */ uint32 nrof; /**< Count of this items. */ } shopinv; /** * Sort routine for shopinv. * There are a lot of extra casts in here just to suppress warnings - it * makes it look uglier than it really it. * The format of the strings we get is type:name. So we first want to * sort by type (numerical) - if the same type, then sort by name. * * @param a1 * @param a2 * items to compare. * @return * -1 is a1 is less than a2, 1 if the opposite, 0 if equals. */ static int shop_sort(const void *a1, const void *a2) { const shopinv *s1 = (const shopinv *)a1, *s2 = (const shopinv *)a2; if (s1->type < s2->type) return -1; if (s1->type > s2->type) return 1; /* the type is the same (what atoi gets), so do a strcasecmp to sort * via alphabetical order */ return strcasecmp(s1->item_sort, s2->item_sort); } /** * Insert the item in the list. * @param tmp * object to insert. Must have FLAG_UNPAID set. * @param items * array of items, should have (*numitems)+1 items allocated. * @param numitems * how many items items contains. */ static void add_shop_item(object *tmp, shopinv *items, size_t *numitems) { /* clear unpaid flag so that doesn't come up in query * string. We clear nrof so that we can better sort * the object names. */ char name[MAX_BUF]; CLEAR_FLAG(tmp, FLAG_UNPAID); items[*numitems].nrof = tmp->nrof; /* Non mergable items have nrof of 0, but count them as one * so the display is properly. */ if (tmp->nrof == 0) items[*numitems].nrof++; items[*numitems].type = tmp->type; query_base_name(tmp, 0, name, MAX_BUF); items[*numitems].item_sort = strdup_local(name); query_base_name(tmp, 1, name, MAX_BUF); items[*numitems].item_real = strdup_local(name); (*numitems)++; SET_FLAG(tmp, FLAG_UNPAID); } /** * Apply a shop inventory. * * @param context * method context. * @param lighter * applied object to apply. * @param applier * object attempting to apply the inventory. Should be a player. * @param aflags * special flags (always apply/unapply). * @return * METHOD_OK if applier is a player, METHOD_UNHANDLED else. */ static method_ret shop_inventory_type_apply(ob_methods *context, object *lighter, object *applier, int aflags) { size_t i, j, numitems = 0, numallocated = 0; object *stack; shopinv *items; if (applier->type != PLAYER) return METHOD_UNHANDLED; draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_SHOP, MSG_TYPE_SHOP_LISTING, "\nThe shop contains:"); items = malloc(40*sizeof(shopinv)); numallocated = 40; /* Find all the appropriate items */ for (i = 0; i < MAP_WIDTH(applier->map); i++) { for (j = 0; j < MAP_HEIGHT(applier->map); j++) { stack = GET_MAP_OB(applier->map, i, j); while (stack) { if (QUERY_FLAG(stack, FLAG_UNPAID)) { if (numitems == numallocated) { items = realloc(items, sizeof(shopinv)*(numallocated+10)); numallocated += 10; } add_shop_item(stack, items, &numitems); } stack = stack->above; } } } if (numitems == 0) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_SHOP, MSG_TYPE_SHOP_LISTING, "The shop is currently empty.\n"); free(items); return METHOD_OK; } qsort(items, numitems, sizeof(shopinv), (int (*)(const void *, const void *))shop_sort); for (i = 0; i < numitems; i++) { /* Collapse items of the same name together */ if ((i+1) < numitems && !strcmp(items[i].item_real, items[i+1].item_real)) { items[i+1].nrof += items[i].nrof; free(items[i].item_sort); free(items[i].item_real); } else { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_SHOP, MSG_TYPE_SHOP_LISTING, "%d %s", items[i].nrof ? items[i].nrof : 1, items[i].nrof == 1 ? items[i].item_sort : items[i].item_real); free(items[i].item_sort); free(items[i].item_real); } } free(items); return METHOD_OK; } crossfire-1.70.0/types/poison/0000755000014500000120000000000011732537043013242 500000000000000crossfire-1.70.0/types/poison/poison.c0000644000014500000120000000502711731300533014630 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file poison.c * The implementation of the Poison class of objects. */ #include #include #include #include #include static method_ret poison_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the POISON object type. */ void init_type_poison(void) { register_apply(POISON, poison_type_apply); } /** * Attempts to apply some poison. * @param context The method context * @param op The poison to apply * @param applier The object attempting to apply the poison. * @param aflags Special flags (always apply/unapply) * @return The return value is always METHOD_OK */ static method_ret poison_type_apply(ob_methods *context, object *op, object *applier, int aflags) { /* If a player, let's tell them what happened */ if (applier->type == PLAYER) { play_sound_player_only(applier->contr, SOUND_TYPE_ITEM, op, 0, "poison"); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "Yech! That tasted poisonous!"); snprintf(applier->contr->killer, BIG_NAME, "poisonous %s", op->name); } /* If the 'hp' of the poison is greater than zero, use poison attacktype */ if (op->stats.hp > 0) { LOG(llevDebug, "Trying to poison player/monster for %d hp\n", op->stats.hp); hit_player(applier, op->stats.hp, op, AT_POISON, 1); } /* Reduce the applier's food to one quarter of what it was */ applier->stats.food -= applier->stats.food/4; apply_handle_yield(op); object_decrease_nrof_by_one(op); return METHOD_OK; } crossfire-1.70.0/types/spinner/0000755000014500000120000000000011732537043013411 500000000000000crossfire-1.70.0/types/spinner/spinner.c0000644000014500000120000000402311731300534015142 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file spinner.c * The implementation of the Spinner class of objects. */ #include #include #include #include #include static method_ret spinner_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the SPINNER object type. */ void init_type_spinner(void) { register_move_on(SPINNER, spinner_type_move_on); } /** * Move on this Spinner object. * @param context The method context * @param trap The Spinner we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret spinner_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (victim->direction) { victim->direction = absdir(victim->direction-trap->stats.sp); object_update_turn_face(victim); } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/teleporter/0000755000014500000120000000000011732537043014120 500000000000000crossfire-1.70.0/types/teleporter/teleporter.c0000644000014500000120000001007311731300534016362 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of @ref page_type_41 "teleporter" objects. */ #include #include #include #include #include static method_ret teleporter_type_process(ob_methods *context, object *op); static method_ret teleporter_type_trigger(ob_methods *context, object *op, object *cause, int state); /** * Initializer for the @ref page_type_41 "teleporter" object type. */ void init_type_teleporter(void) { register_process(TELEPORTER, teleporter_type_process); register_trigger(TELEPORTER, teleporter_type_trigger); } /** * Move function for @ref page_type_41 "teleporter" objects. * * @param op * teleporter. */ static void move_teleporter(object *op) { object *tmp, *head; /* if this is a multipart teleporter, handle the other parts * The check for speed isn't strictly needed - basically, if * there is an old multipart teleporter in which the other parts * have speed, we don't really want to call it twice for the same * function - in fact, as written below, part N would get called * N times without the speed check. */ if (op->more && FABS(op->more->speed) < MIN_ACTIVE_SPEED) move_teleporter(op->more); head = HEAD(op); for (tmp = op->above; tmp != NULL; tmp = tmp->above) if (!QUERY_FLAG(tmp, FLAG_IS_FLOOR)) break; /* If nothing above us to move, nothing to do */ if (!tmp || QUERY_FLAG(tmp, FLAG_WIZPASS)) return; if (EXIT_PATH(head)) { if (tmp->type == PLAYER) { /* Lauwenmark: Handle for plugin TRIGGER event */ if (execute_event(op, EVENT_TRIGGER, tmp, NULL, NULL, SCRIPT_FIX_ALL) != 0) return; enter_exit(tmp, head); } else /* Currently only players can transfer maps */ return; } else if (EXIT_X(head) || EXIT_Y(head)) { if (out_of_map(head->map, EXIT_X(head), EXIT_Y(head))) { LOG(llevError, "Removed illegal teleporter.\n"); object_remove(head); object_free_drop_inventory(head); return; } /* Lauwenmark: Handle for plugin TRIGGER event */ if (execute_event(op, EVENT_TRIGGER, tmp, NULL, NULL, SCRIPT_FIX_ALL) != 0) return; transfer_ob(tmp, EXIT_X(head), EXIT_Y(head), 0, head); } else { /* Random teleporter */ /* Lauwenmark: Handle for plugin TRIGGER event */ if (execute_event(op, EVENT_TRIGGER, tmp, NULL, NULL, SCRIPT_FIX_ALL) != 0) return; teleport(head, TELEPORTER, tmp); } } /** * Processes a @ref page_type_41 "teleporter". * @param context The method context * @param op The teleporter to process * @retval METHOD_OK */ static method_ret teleporter_type_process(ob_methods *context, object *op) { move_teleporter(op); return METHOD_OK; } /** * A @ref page_type_41 "teleporter" is triggered. * @param context Ignored. * @param op The object being triggered * @param cause Ignored. * @param state Ignored. * @retval METHOD_OK */ static method_ret teleporter_type_trigger(ob_methods *context, object *op, object *cause, int state) { move_teleporter(op); return METHOD_OK; } crossfire-1.70.0/types/potion/0000755000014500000120000000000011732537043013243 500000000000000crossfire-1.70.0/types/potion/potion.c0000644000014500000120000002112611731300535014632 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file potion.c * The implementation of the Potion class of objects. */ #include #include #include #include #include static method_ret potion_type_apply(ob_methods *context, object *potion, object *applier, int aflags); /** * Initializer for the potion object type. */ void init_type_potion(void) { register_apply(POTION, potion_type_apply); } /** * Handles applying a potion. * @param context The method context * @param potion The potion to apply * @param applier The object attempting to apply the potion * @param aflags Special flags (always apply/unapply) * @return METHOD_OK unless failure for some reason. */ static method_ret potion_type_apply(ob_methods *context, object *potion, object *applier, int aflags) { int got_one = 0, i; object *force; if (applier->type == PLAYER) { if (!QUERY_FLAG(potion, FLAG_IDENTIFIED)) potion = identify(potion); } apply_handle_yield(potion); /* Potion of restoration - only for players */ if (applier->type == PLAYER && (potion->attacktype&AT_DEPLETE)) { if (QUERY_FLAG(potion, FLAG_CURSED) || QUERY_FLAG(potion, FLAG_DAMNED)) { drain_stat(applier); fix_object(applier); object_decrease_nrof_by_one(potion); return METHOD_OK; } if (remove_depletion(applier, potion->level) == 0) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "Your potion had no effect."); object_decrease_nrof_by_one(potion); return METHOD_OK; } /* improvement potion - only for players */ if (applier->type == PLAYER && potion->attacktype&AT_GODPOWER) { for (i = 1; i < MIN(11, applier->level); i++) { if (QUERY_FLAG(potion, FLAG_CURSED) || QUERY_FLAG(potion, FLAG_DAMNED)) { if (applier->contr->levhp[i] != 1) { applier->contr->levhp[i] = 1; break; } if (applier->contr->levsp[i] != 1) { applier->contr->levsp[i] = 1; break; } if (applier->contr->levgrace[i] != 1) { applier->contr->levgrace[i] = 1; break; } } else { if (applier->contr->levhp[i] < 9) { applier->contr->levhp[i] = 9; break; } if (applier->contr->levsp[i] < 6) { applier->contr->levsp[i] = 6; break; } if (applier->contr->levgrace[i] < 3) { applier->contr->levgrace[i] = 3; break; } } } /* Just makes checking easier */ if (i < MIN(11, applier->level)) got_one = 1; if (!QUERY_FLAG(potion, FLAG_CURSED) && !QUERY_FLAG(potion, FLAG_DAMNED)) { if (got_one) { fix_object(applier); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The Gods smile upon you and remake you a little more in their image." "You feel a little more perfect."); } else draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The potion had no effect - you are already perfect"); } else { /* cursed potion */ if (got_one) { fix_object(applier); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "The Gods are angry and punish you."); } else draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "You are fortunate that you are so pathetic."); } object_decrease_nrof_by_one(potion); return METHOD_OK; } /* A potion that casts a spell. Healing, restore spellpoint * (power potion) and heroism all fit into this category. * Given the spell object code, there is no limit to the number * of spells that potions can be cast, but direction is * problematic to try and imbue fireball potions for example. */ if (potion->inv) { if (QUERY_FLAG(potion, FLAG_CURSED) || QUERY_FLAG(potion, FLAG_DAMNED)) { object *fball; draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "Yech! Your lungs are on fire!"); /* Explodes a fireball centered at player */ fball = create_archetype(EXPLODING_FIREBALL); fball->dam_modifier = random_roll(1, applier->level, applier, PREFER_LOW)/5+1; fball->stats.maxhp = random_roll(1, applier->level, applier, PREFER_LOW)/10+2; object_insert_in_map_at(fball, applier->map, NULL, 0, applier->x, applier->y); } else cast_spell(applier, potion, applier->facing, potion->inv, NULL); object_decrease_nrof_by_one(potion); /* if youre dead, no point in doing this... */ if (!QUERY_FLAG(applier, FLAG_REMOVED)) fix_object(applier); return METHOD_OK; } /* Deal with protection potions */ force = NULL; for (i = 0; i < NROFATTACKS; i++) { if (potion->resist[i]) { if (!force) force = create_archetype(FORCE_NAME); memcpy(force->resist, potion->resist, sizeof(potion->resist)); force->type = POTION_RESIST_EFFECT; force->speed = 0.2; force->duration = 100; break; /* Only need to find one protection since we cappliery entire batch */ } } /* This is a protection potion */ if (force) { char name[MAX_BUF]; int resist = i; /* cursed items last longer */ if (QUERY_FLAG(potion, FLAG_CURSED) || QUERY_FLAG(potion, FLAG_DAMNED)) { draw_ext_info_format(NDI_RED|NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "The %s was cursed!", potion->name); force->duration *= 10; for (i = 0; i < NROFATTACKS; i++) if (force->resist[i] > 0) force->resist[i] = -force->resist[i]; /* prot => vuln */ } force->speed_left = -1; /* set name for expiry messages */ snprintf(name, MAX_BUF, "resistance to %s", change_resist_msg[resist]); free_string(force->name); force->name = add_string(name); store_spell_expiry(force); force = object_insert_in_ob(force, applier); CLEAR_FLAG(potion, FLAG_APPLIED); SET_FLAG(force, FLAG_APPLIED); change_abil(applier, force); object_decrease_nrof_by_one(potion); return METHOD_OK; } /* Only thing left are the stat potions */ if (applier->type == PLAYER) { /* only for players */ if ((QUERY_FLAG(potion, FLAG_CURSED) || QUERY_FLAG(potion, FLAG_DAMNED)) && potion->value != 0) CLEAR_FLAG(potion, FLAG_APPLIED); else SET_FLAG(potion, FLAG_APPLIED); if (!change_abil(applier, potion)) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "Nothing happened."); } /* CLEAR_FLAG is so that if the character has other potions * that were grouped with the one consumed, his * stat will not be raised by them. fix_object just clears * up all the stats. */ CLEAR_FLAG(potion, FLAG_APPLIED); fix_object(applier); object_decrease_nrof_by_one(potion); return METHOD_OK; } crossfire-1.70.0/types/blindness/0000755000014500000120000000000011732537043013714 500000000000000crossfire-1.70.0/types/blindness/blindness.c0000644000014500000120000000353211731300534015754 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of the BLINDNESS class of objects. */ #include #include #include #include #include static method_ret blindness_type_process(ob_methods *context, object *op); /** * Initializer for the blindness object type. */ void init_type_blindness(void) { register_process(BLINDNESS, blindness_type_process); } /** * Move for ::BLINDNESS. * If blindness is finished, remove it from the victim's inventory. * * @param context The method context. * @param op Blindness being processed. * @return METHOD_OK */ static method_ret blindness_type_process(ob_methods *context, object *op) { if (--op->stats.food > 0) return METHOD_OK; CLEAR_FLAG(op, FLAG_APPLIED); if (op->env != NULL) { change_abil(op->env, op); fix_object(op->env); } object_remove(op); object_free_drop_inventory(op); return METHOD_OK; } crossfire-1.70.0/types/ChangeLog0000644000014500000120000001611611731300535013423 00000000000000Refactoring changes in the type-specific subsystem. A few notes when putting entries in this file: 1) Please included your name and a date in the form yyyy-mm-dd, consistat with the top level ChangeLog file. 2) Please follow the conventions set out by existing entries here 3) You should still put entries in the top-level ChangeLog 4) Only refactoring of functuality to and/or from the type-specific subsystem should be inlcluded here. Other changes should simply be in the top level ChangeLog. Ob types : POISONING Events : process Moved from : ../server/time.c, legacy/process.c Moved to : poisoning/poisoning.c Comment : Moved process code for POISONING. 2007-11-28 - Alex Schultz -- Ob types : PEACEMAKER Events : process Moved from : ../server/spell_effect.c, legacy/process.c Moved to : peacemaker/peacemaker.c Comment : Moved process code for PEACEMAKER. 2007-11-25 - Alex Schultz -- Ob types : GATE, TIMED_GATE Events : process Moved from : ../server/time.c, legacy/process.c Moved to : gate/gate.c Comment : Moved process code for GATE and TIMED_GATE. 2007-11-23 - Alex Schultz -- Ob types : SAVEBED, POISON, CF_HANDLE, TREASURE, WEAPON_IMPROVER Events : apply Moved from : ../server/apply.c, legacy/apply.c Moved to : savebed/savebed.c, poison/poison.c, cf_handle/cf_handle.c, treasure/treasure.c, weapon_improver/weapon_improver.c Comment : Moved apply code for savebeds, poison, cf_handle, treasure and weapon_improver. Now the only ob types left for apply, are containers and equippable items. 2007-11-21 - Alex Schultz -- Ob types : FOOD, DRINK, FLESH Events : apply Moved from : ../server/apply.c, legacy/apply.c Moved to : food/food.c Comment : Move apply code for food. 2007-06-09 - Alex Schultz -- Ob types : SCROLL, POTION Events : apply Moved from : ../server/apply.c, legacy/apply.c Moved to : scroll/scroll.c, potion/potion.c Comment : Move apply code for scrolls and potions. 2007-06-08 - Alex Schultz -- Ob types : SKILLSCROLL, SPELLBOOK Events : apply Moved from : ../server/apply.c, legacy/apply.c Moved to : skillscroll/skillscroll.c, spellbook/spellbook.c Comment : Move apply code for skillscrolls and spellbooks. 2007-06-07 - Alex Schultz -- Ob types : TRAP, RUNE Events : process Moved from : ../server/rune.c, legacy/process.c Moved to : trap/common_trap.c Comment : Move process code for traps and runes. 2007-06-06 - Alex Schultz -- Ob types : TRAP, RUNE Events : move_on Moved from : trap/trap.c, rune/rune.c Moved to : trap/common_trap.c, trap/rune.c Comment : Merged rune and trap directories 2007-06-06 - Alex Schultz -- Ob types : LAMP Events : apply Moved from : legacy/apply.c, server/apply.c Moved to : lamp/lamp.c Comment : Moved apply handling for lamps. 2007-06-02 - Nicolas Weeger ------------------------------------------------------------------------------- Ob types : ARMOUR_IMPROVER Events : apply Moved from : legacy/apply.c Moved to : armour_improver/armour_improver.c Comment : Moved apply handling for Enchant armor. 2007-06-02 - Nicolas Weeger ------------------------------------------------------------------------------- Ob types : SHOP_INVENTORY (former MENU) Events : apply Moved from : legacy/apply.c Moved to : shop_inventory/shop_inventory.c Comment : Moved apply handling for shop inventory. 2007-06-02 - Nicolas Weeger ------------------------------------------------------------------------------- Ob types : LIGHTER Events : apply Moved from : legacy/apply.c Moved to : lighter/lighter.c Comment : Moved apply handling for lighter. 2007-06-02 - Nicolas Weeger ------------------------------------------------------------------------------- Ob types : EXIT, CLOCK Events : apply Moved from : legacy/apply.c Moved to : exit/exit.c, clock/clock.c Comment : Moved apply handling for exits and clocks. 2007-04-05 - Alex Schultz ------------------------------------------------------------------------------- Ob types : SPELL_EFFECT Events : process Moved from : ../server/{spell_attack.c, spell_util.c, spell_effect.c} Moved to : spell_effect/spell_effect.c Comment : Moved ob_process logic into the ob_method system. Should probably split spell_effect.c into multiple files by subtype. 2007-04-03 - Alex Schultz ------------------------------------------------------------------------------- Ob types : THROWN_OBJ, ARROW Events : process Moved from : ../server/time.c Moved to : common/projectile.c, arrow/arrow.c, thrown_object/thrown_object.c Comment : Implimented process method for the given object types taking code from move_arrow() and stop_arrow(). 2007-02-19 - Alex Schultz ------------------------------------------------------------------------------- Ob types : ALTAR, ARROW, BUTTON, CHECK_INV, CONTAINER, CONVERTER, DEEPSWAMP, DIRECTOR, EXIT, HOLE, IDENTIFY_ALTAR, PEDESTAL, PLAYERMOVER, RUNE, SHOP_MAT, SIGN, SPELL_EFFECT, SPINNER, THROWN_OBJ, TRAP, TRAPDOOR, TRIGGER_ALTAR, TRIGGER_BUTTON, TRIGGER_PEDESTAL Events : move_on Moved from : ../server/apply.c, ../server/time.c Moved to : common/common_apply.c, altar/altar.c, arrow/arrow.c, button/button.c, check_inv/check_inv.c, container/container.c, converter/converter.c, deep_swamp/deep_swamp.c, director/director.c, exit/exit.c, hole/hole.c, identify_altar/identify_altar.c, pedestal/pedestal.c, player_mover/player_mover.c, rune/rune.c, shop_mat/shop_mat.c, sign/sign.c, spell_effect/spell_effect.c, spinner/spinner.c, thrown_object/thrown_object.c, trap/trap.c, trapdoor/trapdoor.c, trigger_altar/trigger_altar.c, trigger_button/trigger_button.c, trigger_pedestal/trigger_pedestal.c Comment : Implemented the move_on method for the given object types. 2007-01-21 - Yann Chachkoff ------------------------------------------------------------------------------- Ob types : TRIGGER Events : apply, process Moved from : ../server/apply.c, ../server/time.c Moved to : trigger/trigger.c Comment : Implemented apply and process methods for the given object type. 2007-01-14 - Yann Chachkoff ------------------------------------------------------------------------------- Ob types : TRANSPORT, POWER_CRYSTAL, ITEM_TRANSFORMER, BOOK Events : apply, process, describe Moved from : ../server/apply.c, ../server/time.c, ../server/c_object.c Moved to : legacy/apply.c, legacy/legacy_describe.c, legacy/process.c, common/describe.c, transport/transport.c, power_crystal/power_crystal.c, item_transformer/item_transformer.c, book/book.c Comment : Implemented apply, process and describe methods for the given object types. 2007-01-14 - Yann Chachkoff ------------------------------------------------------------------------------- --EXAMPLE-- Ob types: ALL Events: APPLY Functunality moved from: ../server/apply.c:foobar() Functunality moved to: legacy/apply.c Comment: Move legacy apply code into a temporary location. Alex Schultz 2006-11-29 --EXAMPLE-- crossfire-1.70.0/types/altar/0000755000014500000120000000000011732537043013036 500000000000000crossfire-1.70.0/types/altar/altar.c0000644000014500000120000000542411731300534014222 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file altar.c * The implementation of the Altar class of objects. */ #include #include #include #include #include static method_ret altar_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the ALTAR object type. */ void init_type_altar(void) { register_move_on(ALTAR, altar_type_move_on); } /** * Move on this Altar object. * @param context The method context * @param trap The Altar we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret altar_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { trap = HEAD(trap); if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; /* sacrifice victim on trap */ /* Only players can make sacrifices on spell casting altars. */ if (trap->inv && (!originator || originator->type != PLAYER)) { common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } if (operate_altar(trap, &victim)) { /* Simple check. Unfortunately, it means you can't cast magic bullet * with an altar. We call it a Potion - altars are stationary - it * is up to map designers to use them properly. */ if (trap->inv && trap->inv->type == SPELL) { draw_ext_info_format(NDI_BLACK, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The altar casts %s.", trap->inv->name); cast_spell(originator, trap, 0, trap->inv, NULL); } else { trap->value = 1; /* works only once */ push_button(trap); } } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/skillscroll/0000755000014500000120000000000011732537043014270 500000000000000crossfire-1.70.0/types/skillscroll/skillscroll.c0000644000014500000120000000573611731300534016714 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file skillscroll.c * Implimentation of skill scrolls. */ #include #include #include #include #include static method_ret skillscroll_type_apply(ob_methods *context, object *lighter, object *applier, int aflags); /** * Initializer for the SKILLSCROLL object type. */ void init_type_skillscroll(void) { register_apply(SKILLSCROLL, skillscroll_type_apply); } /** * Applies a skillscroll. * * @param context * method context. * @param scroll * Skillscroll to apply. * @param applier * object attempting to apply the scroll. Should be a player. * @param aflags * special flags (always apply/unapply). * @return * METHOD_OK always. */ static method_ret skillscroll_type_apply(ob_methods *context, object *scroll, object *applier, int aflags) { char name[MAX_BUF]; /* Must be applied by a player. */ if (applier->type == PLAYER) { switch ((int)learn_skill(applier, scroll)) { case 0: query_name(scroll, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You already possess the knowledge held within the %s.", name); return METHOD_OK; case 1: draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You succeed in learning %s", scroll->skill); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Type 'bind ready_skill %s to store the skill in a key.", scroll->skill); object_decrease_nrof_by_one(scroll); return METHOD_OK; default: query_name(scroll, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You fail to learn the knowledge of the %s.\n", name); object_decrease_nrof_by_one(scroll); return METHOD_OK; } } return METHOD_OK; } crossfire-1.70.0/types/check_inv/0000755000014500000120000000000011732537043013664 500000000000000crossfire-1.70.0/types/check_inv/check_inv.c0000644000014500000120000000371111731300534015673 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file check_inv.c * The implementation of the Inventory Checker class of objects. */ #include #include #include #include #include static method_ret check_inv_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the CHECK_INV object type. */ void init_type_check_inv(void) { register_move_on(CHECK_INV, check_inv_type_move_on); } /** * Move on this Inventory Checker object. * @param context The method context * @param trap The Inventory Checker we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret check_inv_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; check_inv(victim, trap); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/legacy/0000755000014500000120000000000011732537043013177 500000000000000crossfire-1.70.0/types/legacy/apply.c0000644000014500000120000000503611731300534014404 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail to crossfire-devel@real-time.com */ #include #include #include #include #include /** @file * Legacy implementation of apply-related methods. */ /** * Main apply handler. * * Checks for unpaid items before applying. * * Return value: * 0: player or monster can't apply objects of that type * 1: has been applied, or there was an error applying the object * 2: objects of that type can't be applied if not in inventory * * op is the object that is causing object to be applied, tmp is the object * being applied. * * aflag is special (always apply/unapply) flags. Nothing is done with * them in this function - they are passed to apply_special */ method_ret legacy_ob_apply(ob_methods *context, object *op, object *applier, int aflags) { switch (op->type) { /* Eneq(at)(csd.uu.se): Handle apply on containers. */ case CLOSE_CON: if (applier->type == PLAYER) legacy_apply_container(applier, op->env); return METHOD_OK; case CONTAINER: if (applier->type == PLAYER) legacy_apply_container(applier, op); return METHOD_OK; case WEAPON: case ARMOUR: case BOOTS: case GLOVES: case AMULET: case GIRDLE: case BRACERS: case SHIELD: case HELMET: case RING: case CLOAK: case WAND: case ROD: case SKILL: case BOW: case BUILDER: case SKILL_TOOL: if (op->env != applier) return METHOD_ERROR; /* not in inventory */ (void)apply_special(applier, op, aflags); return METHOD_OK; default: return METHOD_UNHANDLED; } } crossfire-1.70.0/types/legacy/process.c0000644000014500000120000000452711731300534014741 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail to crossfire-devel@real-time.com */ #include #include #include #include /** @file process.c * Legacy implementation of the process method. */ method_ret legacy_ob_process(ob_methods *context, object *op) { switch (op->type) { case ROD: regenerate_rod(op); return METHOD_OK; case FORCE: case POTION_RESIST_EFFECT: legacy_remove_force(op); return METHOD_OK; case DISEASE: move_disease(op); return METHOD_OK; case SYMPTOM: move_symptom(op); return METHOD_OK; case DOOR: remove_door(op); return METHOD_OK; case LOCKED_DOOR: remove_locked_door(op); return METHOD_OK; case GOLEM: pets_move_golem(op); return METHOD_OK; case EARTHWALL: hit_player(op, 2, op, AT_PHYSICAL, 1); return METHOD_OK; case FIREWALL: move_firewall(op); if (op->stats.maxsp) animate_turning(op); return METHOD_OK; case TRIGGER_BUTTON: case TRIGGER_PEDESTAL: case TRIGGER_ALTAR: legacy_animate_trigger(op); return METHOD_OK; case DIRECTOR: if (op->stats.maxsp) animate_turning(op); return METHOD_OK; case HOLE: legacy_move_hole(op); return METHOD_OK; case PLAYERMOVER: move_player_mover(op); return METHOD_OK; } return METHOD_UNHANDLED; } crossfire-1.70.0/types/legacy/legacy_describe.c0000644000014500000120000000407211731300534016362 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ #include #include #include /** @file legacy_describe.c * Legacy implementation of description-related methods. */ /** * Describes an object, seen by a given observer. * @param context The method context * @param op The object to describe * @param observer The object to make the description to * @param buf Buffer that will contain the description * @param size buf's size. */ void legacy_ob_describe(const ob_methods *context, const object *op, const object *observer, char *buf, size_t size) { buf[0] = '\0'; if (op == NULL) return; switch (op->type) { case RING: case SKILL: case WEAPON: case ARMOUR: case BRACERS: case HELMET: case SHIELD: case BOOTS: case GLOVES: case AMULET: case GIRDLE: case BOW: case ARROW: case CLOAK: case FOOD: case DRINK: case FLESH: case SKILL_TOOL: case LAMP: common_ob_describe(context, op, observer, buf, size); return; default: if (buf[0] == '\0') { query_name(op, buf, size-1); buf[size-1] = 0; } return; } } crossfire-1.70.0/types/Makefile.am0000644000014500000120000000354211731300535013704 00000000000000AUTOMAKE_OPTIONS = subdir-objects noinst_LIBRARIES = libtypes.a libtypes_a_SOURCES = altar/altar.c \ armour_improver/armour_improver.c \ arrow/arrow.c \ blindness/blindness.c \ book/book.c \ button/button.c \ cf_handle/cf_handle.c \ check_inv/check_inv.c \ clock/clock.c \ container/container.c \ converter/converter.c \ creator/creator.c \ deep_swamp/deep_swamp.c \ detector/detector.c \ director/director.c \ dragon_focus/dragon_focus.c \ duplicator/duplicator.c \ exit/exit.c \ food/food.c \ gate/gate.c \ hole/hole.c \ identify_altar/identify_altar.c \ lamp/lamp.c \ lighter/lighter.c \ marker/marker.c \ mood_floor/mood_floor.c \ peacemaker/peacemaker.c \ pedestal/pedestal.c \ player_changer/player_changer.c \ player_mover/player_mover.c \ poison/poison.c \ poisoning/poisoning.c \ potion/potion.c \ power_crystal/power_crystal.c \ savebed/savebed.c \ scroll/scroll.c \ shop_inventory/shop_inventory.c \ shop_mat/shop_mat.c \ sign/sign.c \ skillscroll/skillscroll.c \ spell_effect/spell_effect.c \ spellbook/spellbook.c \ spinner/spinner.c \ teleporter/teleporter.c \ thrown_object/thrown_object.c \ transport/transport.c \ trap/common_trap.c \ trap/trap.c \ trap/rune.c \ trapdoor/trapdoor.c \ treasure/treasure.c \ trigger/trigger.c \ trigger_altar/trigger_altar.c \ trigger_button/trigger_button.c \ trigger_pedestal/trigger_pedestal.c \ weapon_improver/weapon_improver.c \ common/common_apply.c \ common/describe.c \ common/projectile.c \ legacy/apply.c \ legacy/legacy_describe.c \ legacy/process.c AM_CPPFLAGS = -I$(top_srcdir)/include -DDATADIR=\"$(pkgdatadir)\" -DCONFDIR=\"$(pkgconfdir)\" \ -DLIBDIR=\"$(pkglibdir)\" -DLOCALDIR=\"$(pkgstatedir)\" \ -DPLUGIN_SUFFIX=\".so\" proto: cproto -D__CEXTRACT__ -o ../include/typesproto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/typesproto.h crossfire-1.70.0/types/trigger_button/0000755000014500000120000000000011732537043014771 500000000000000crossfire-1.70.0/types/trigger_button/trigger_button.c0000644000014500000120000000375011731300533020107 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file trigger_button.c * The implementation of the Trigger-Button class of objects. */ #include #include #include #include #include static method_ret trigger_button_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the TRIGGER_BUTTON object type. */ void init_type_trigger_button(void) { register_move_on(TRIGGER_BUTTON, trigger_button_type_move_on); } /** * Move on this Trigger Button object. * @param context The method context * @param trap The Trigger Button we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret trigger_button_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; check_trigger(trap, victim); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/treasure/0000755000014500000120000000000011732537043013565 500000000000000crossfire-1.70.0/types/treasure/treasure.c0000644000014500000120000000746111731300534015503 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file * The implementation of the Treasure class of objects. */ #include #include #include #include #include static method_ret treasure_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the TREASURE object type. */ void init_type_treasure(void) { register_apply(TREASURE, treasure_type_apply); } /** * Attempts to apply treasure. * @param context The method context * @param op The treasure to apply * @param applier The object attempting to apply the treasure. Ignored unless * a player * @param aflags Special flags (always apply/unapply) * @return The return value is always METHOD_OK */ static method_ret treasure_type_apply(ob_methods *context, object *op, object *applier, int aflags) { object *treas; tag_t op_tag = op->count, applier_tag = applier->count; char name[MAX_BUF]; if (applier->type == PLAYER) { /* Nice side effect of new treasure creation method is that the * treasure for the chest is done when the chest is created, * and put into the chest inventory. So that when the chest * burns up, the items still exist. Also prevents people from * moving chests to more difficult maps to get better treasure */ treas = op->inv; if (treas == NULL) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The chest was empty."); object_decrease_nrof_by_one(op); return METHOD_OK; } while (op->inv) { treas = op->inv; object_remove(treas); /* don't tell the player about invisible objects */ if (!treas->invisible) { query_name(treas, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You find %s in the chest.", name); } treas = object_insert_in_map_at(treas, applier->map, applier, INS_BELOW_ORIGINATOR, applier->x, applier->y); if (treas && (treas->type == RUNE || treas->type == TRAP) && treas->level && QUERY_FLAG(applier, FLAG_ALIVE)) spring_trap(treas, applier); /* If either player or container was destroyed, no need to do * further processing. I think this should be enclused with * spring trap above, as I don't think there is otherwise * any way for the treasure chest or player to get killed */ if (object_was_destroyed(applier, applier_tag) || object_was_destroyed(op, op_tag)) break; } if (!object_was_destroyed(op, op_tag) && op->inv == NULL) object_decrease_nrof_by_one(op); } return METHOD_OK; } crossfire-1.70.0/types/creator/0000755000014500000120000000000011732537043013372 500000000000000crossfire-1.70.0/types/creator/creator.c0000644000014500000120000001064211731300534015110 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of @ref page_type_42 "creator" objects. */ #include #include #include #include #include static method_ret creator_type_process(ob_methods *context, object *op); static method_ret creator_type_trigger(ob_methods *context, object *op, object *cause, int state); /** * Initializer for the @ref page_type_42 "creator" object type. */ void init_type_creator(void) { register_process(CREATOR, creator_type_process); register_trigger(CREATOR, creator_type_trigger); } /** * Move function for @ref page_type_42 "creator" objects. * * It has the creator object create it's other_arch right on top of it. * connected: what will trigger it * - hp: how many times it may create before stopping * - lifesave: if set, it'll never disappear but will go on creating * everytime it's triggered * - other_arch: the object to create * * Note this can create large objects, however, in that case, it * has to make sure that there is in fact space for the object. * It should really do this for small objects also, but there is * more concern with large objects, most notably a part being placed * outside of the map which would cause the server to crash * * @param creator * creator to move. */ static void move_creator(object *creator) { object *new_ob; if (!QUERY_FLAG(creator, FLAG_LIFESAVE) && --creator->stats.hp < 0) { creator->stats.hp = -1; return; } if (creator->inv != NULL) { int i; object *ob_to_copy; /* select random object from inventory to copy */ ob_to_copy = creator->inv; i = 1; FOR_BELOW_PREPARE(creator->inv, ob) { if (rndm(0, i) == 0) { ob_to_copy = ob; } i++; } FOR_BELOW_FINISH(); new_ob = object_create_clone(ob_to_copy); CLEAR_FLAG(new_ob, FLAG_IS_A_TEMPLATE); object_unset_flag_inv(new_ob, FLAG_IS_A_TEMPLATE); } else { if (creator->other_arch == NULL) { LOG(llevError, "move_creator: Creator doesn't have other arch set: %s (%s, %d, %d)\n", creator->name ? creator->name : "(null)", creator->map->path, creator->x, creator->y); return; } new_ob = object_create_arch(creator->other_arch); fix_generated_item(new_ob, creator, 0, 0, GT_MINIMAL); } /* Make sure this multipart object fits */ if (new_ob->arch->more && ob_blocked(new_ob, creator->map, creator->x, creator->y)) { object_free_drop_inventory(new_ob); return; } if (creator->level != 0) new_ob->level = creator->level; object_insert_in_map_at(new_ob, creator->map, creator, 0, creator->x, creator->y); if (QUERY_FLAG(new_ob, FLAG_FREED)) return; if (creator->slaying) { FREE_AND_COPY(new_ob->name, creator->slaying); if (new_ob->title) { FREE_AND_CLEAR_STR(new_ob->title); } } } /** * Processes a @ref page_type_42 "creator". * @param context The method context * @param op The teleporter to process * @retval METHOD_OK */ static method_ret creator_type_process(ob_methods *context, object *op) { move_creator(op); return METHOD_OK; } /** * A @ref page_type_42 "creator" is triggered. * @param context Ignored. * @param op The object being triggered * @param cause Ignored. * @param state Ignored. * @retval METHOD_OK */ static method_ret creator_type_trigger(ob_methods *context, object *op, object *cause, int state) { move_creator(op); return METHOD_OK; } crossfire-1.70.0/types/transport/0000755000014500000120000000000011732537043013767 500000000000000crossfire-1.70.0/types/transport/transport.c0000644000014500000120000002214611731300534016104 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file transport.c * The implementation of the Transport class of objects. * A transport is basically little more than a container in which players * can enter, and that can be moved around on the map. */ #include #include #include #include #include static method_ret transport_type_apply(ob_methods *context, object *op, object *applier, int aflags); static method_ret transport_type_process(ob_methods *context, object *op); /** * Initializer for the TRANSPORT object type. */ void init_type_transport(void) { register_apply(TRANSPORT, transport_type_apply); register_process(TRANSPORT, transport_type_process); } /** * Player is trying to use a transport. This returns same values as * apply_manual() does. This function basically checks to see if * the player can use the transport, and if so, sets up the appropriate * pointers. * @param context The method context * @param op The Transport to apply * @param applier The object attempting to apply the Transport * @param aflags Special flags (always apply/unapply) * @retval 0 If the applier was not a player * @retval 1 If the applier was a player */ static method_ret transport_type_apply(ob_methods *context, object *op, object *applier, int aflags) { object *old_transport = applier->contr->transport; object *inv; char name_op[MAX_BUF], name_old[MAX_BUF]; /* Only players can use transports right now */ if (applier->type != PLAYER) return 0; query_name(op, name_op, MAX_BUF); /* If player is currently on a transport but not this transport, they need * to exit first. Perhaps transport to transport transfers should be * allowed. */ if (old_transport && old_transport != op) { query_name(old_transport, name_old, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You must exit %s before you can board %s.", name_old, name_op); return 1; } /* player is currently on a transport. This must mean he * wants to exit. */ if (old_transport) { /* Should we print a message if the player only wants to * apply? */ if (aflags&AP_APPLY) return 1; query_name(old_transport, name_old, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_UNAPPLY, "You disembark from %s.", name_old); object_remove(applier); if (applier->contr == old_transport->contr) old_transport->contr = NULL; applier->contr->transport = NULL; object_insert_in_map_at(applier, old_transport->map, applier, 0, old_transport->x, old_transport->y); object_sum_weight(old_transport); /* Possible for more than one player to be using a transport. * if that is the case, we don't want to reset the face, as the * transport is still occupied. */ inv = object_find_by_type(old_transport, PLAYER); if (!inv) { old_transport->face = old_transport->arch->clone.face; old_transport->animation_id = old_transport->arch->clone.animation_id; } else { old_transport->contr = inv->contr; draw_ext_info_format(NDI_UNIQUE, 0, inv, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "%s has disembarked. You are now the captain of %s", applier->name, name_old); } return 1; } else { /* player is trying to board a transport */ int pc = 0, p_limit; const char *kv; sint16 ox, oy; if (aflags&AP_UNAPPLY) return 1; /* Can this transport hold the weight of this player? */ if (!transport_can_hold(op, applier, 1)) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "The %s is unable to hold your weight!", name_op); return 1; } /* If the player is holding the transport, drop it. */ if (op->env == applier) { old_transport = op; /* Don't drop transports in shops. */ if (!is_in_shop(applier)) { op = drop_object(applier, op, 1); } else { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You cannot drop the %s in a shop to use it.", name_old); return 1; } /* Did it fail to drop? */ if (!op) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You need to drop the %s to use it.", name_old); return 1; } } /* Does this transport have space for more players? */ FOR_INV_PREPARE(op, inv) if (inv->type == PLAYER) pc++; FOR_INV_FINISH(); kv = object_get_value(op, "passenger_limit"); if (!kv) p_limit = 1; else p_limit = atoi(kv); if (pc >= p_limit) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "The %s does not have space for any more people", name_op); return 1; } /* Everything checks out OK - player can get on the transport */ applier->contr->transport = op; if (op->contr) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The %s's captain is currently %s", name_op, op->contr->ob->name); } else { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You're the %s's captain", name_op); op->contr = applier->contr; } object_remove(applier); /* object_insert_in_ob clear applier->x and applier->y, so store them away */ ox = applier->x; oy = applier->y; object_insert_in_ob(applier, op); object_sum_weight(op); applier->map = op->map; if (ox != op->x || oy != op->y) { esrv_map_scroll(&applier->contr->socket, (ox-op->x), (oy-op->y)); } applier->contr->socket.update_look = 1; applier->contr->socket.look_position = 0; applier->x = op->x; applier->y = op->y; /* Might need to update face, animation info */ if (!pc) { const char *str; str = object_get_value(op, "face_full"); if (str) op->face = &new_faces[find_face(str, op->face->number)]; str = object_get_value(op, "anim_full"); if (str) op->animation_id = find_animation(str); } /* Does speed of this object change based on weight? */ kv = object_get_value(op, "weight_speed_ratio"); if (kv) { int wsr = atoi(kv); float base_speed; kv = object_get_value(op, "base_speed"); if (kv) base_speed = atof(kv); else base_speed = op->arch->clone.speed; op->speed = base_speed-(base_speed*op->carrying*wsr)/(op->weight_limit*100); /* Put some limits on min/max speeds */ if (op->speed < 0.10) op->speed = 0.10; if (op->speed > 1.0) op->speed = 1.0; } } /* else if player is boarding the transport */ return 1; } /** * Processes a Transport. * @param context The method context * @param op The Transport to process * @retval 0 If the remaining speed of the transport was > 0.0 * @retval 1 If the remaining speed of the transport was < 0.0 */ static method_ret transport_type_process(ob_methods *context, object *op) { /* Transports are directed by players - thus, there * speed is reduced when the player moves them about. * So give them back there speed here, since process_objects() * has decremented it. */ if (op->speed_left < 0.0) { op->speed_left += 1.0; return 1; } return 0; } crossfire-1.70.0/types/hole/0000755000014500000120000000000011732537043012662 500000000000000crossfire-1.70.0/types/hole/hole.c0000644000014500000120000000473711731300534013700 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file hole.c * The implementation of the Hole class of objects. */ #include #include #include #include #include static method_ret hole_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the HOLE object type. */ void init_type_hole(void) { register_move_on(HOLE, hole_type_move_on); } /** * Move on this Hole object. * @param context The method context * @param trap The Hole we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret hole_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; /* Hole not open? */ if (trap->stats.wc > 0) { common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } /* Is this a multipart monster and not the head? If so, return. * Processing will happen if the head runs into the pit */ if (victim->head) { common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } play_sound_map(SOUND_TYPE_GROUND, trap, 0, "fall hole"); draw_ext_info(NDI_UNIQUE, 0, victim, MSG_TYPE_APPLY, MSG_TYPE_APPLY_TRAP, "You fall through the hole!"); transfer_ob(victim, EXIT_X(trap), EXIT_Y(trap), 1, victim); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/shop_mat/0000755000014500000120000000000011732537043013545 500000000000000crossfire-1.70.0/types/shop_mat/shop_mat.c0000644000014500000120000001272011731300534015435 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file shop_mat.c * The implementation of the Shop Mat class of objects. */ #include #include #include #include #include static method_ret shop_mat_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the SHOP_MAT object type. */ void init_type_shop_mat(void) { register_move_on(SHOP_MAT, shop_mat_type_move_on); } /** * Move on this Shop Mat object. * @param context The method context * @param trap The Shop Mat we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret shop_mat_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { int rv = 0; double opinion; if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; SET_FLAG(victim, FLAG_NO_APPLY); /* prevent loops */ if (victim->type != PLAYER) { /* Remove all the unpaid objects that may be carried here. * This could be pets or monsters that are somehow in * the shop. */ FOR_INV_PREPARE(victim, tmp) { if (QUERY_FLAG(tmp, FLAG_UNPAID)) { int i = object_find_free_spot(tmp, victim->map, victim->x, victim->y, 1, 9); object_remove(tmp); if (i == -1) i = 0; object_insert_in_map_at(tmp, victim->map, victim, 0, victim->x+freearr_x[i], victim->y+freearr_y[i]); } } FOR_INV_FINISH(); /* Don't teleport things like spell effects */ if (QUERY_FLAG(victim, FLAG_NO_PICK)) goto leave; /* unpaid objects, or non living objects, can't transfer by * shop mats. Instead, put it on a nearby space. */ if (QUERY_FLAG(victim, FLAG_UNPAID) || !QUERY_FLAG(victim, FLAG_ALIVE)) { /* Somebody dropped an unpaid item, just move to an adjacent place. */ int i = object_find_free_spot(victim, victim->map, victim->x, victim->y, 1, 9); if (i != -1) { rv = transfer_ob(victim, victim->x+freearr_x[i], victim->y+freearr_y[i], 0, trap); } goto leave; } rv = teleport(trap, SHOP_MAT, victim); /* immediate block below is only used for players */ } else if (can_pay(victim)) { get_payment(victim, victim->inv); rv = teleport(trap, SHOP_MAT, victim); if (trap->msg) { draw_ext_info(NDI_UNIQUE, 0, victim, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, trap->msg); } /* This check below is a bit simplistic - generally it should be correct, * but there is never a guarantee that the bottom space on the map is * actually the shop floor. */ else if (!rv && !is_in_shop(victim)) { opinion = shopkeeper_approval(victim->map, victim); if (opinion > 0.9) draw_ext_info(NDI_UNIQUE, 0, victim, MSG_TYPE_SHOP, MSG_TYPE_SHOP_MISC, "The shopkeeper gives you a friendly wave."); else if (opinion > 0.75) draw_ext_info(NDI_UNIQUE, 0, victim, MSG_TYPE_SHOP, MSG_TYPE_SHOP_MISC, "The shopkeeper waves to you."); else if (opinion > 0.5) draw_ext_info(NDI_UNIQUE, 0, victim, MSG_TYPE_SHOP, MSG_TYPE_SHOP_MISC, "The shopkeeper ignores you."); else draw_ext_info(NDI_UNIQUE, 0, victim, MSG_TYPE_SHOP, MSG_TYPE_SHOP_MISC, "The shopkeeper glares at you with contempt."); } } else { /* if we get here, a player tried to leave a shop but was not able * to afford the items he has. We try to move the player so that * they are not on the mat anymore */ int i = object_find_free_spot(victim, victim->map, victim->x, victim->y, 1, 9); if (i == -1) LOG(llevError, "Internal shop-mat problem.\n"); else { object_remove(victim); rv = object_insert_in_map_at(victim, victim->map, trap, 0, victim->x+freearr_x[i], victim->y+freearr_y[i]) == NULL; esrv_map_scroll(&victim->contr->socket, freearr_x[i], freearr_y[i]); victim->contr->socket.update_look = 1; victim->contr->socket.look_position = 0; } } CLEAR_FLAG(victim, FLAG_NO_APPLY); leave: common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/lamp/0000755000014500000120000000000011732537043012664 500000000000000crossfire-1.70.0/types/lamp/lamp.c0000644000014500000120000001002711731300533013670 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file lamp.c * Lamps. */ #include #include #include #include #include static method_ret lamp_type_apply(ob_methods *context, object *lighter, object *applier, int aflags); /** * Initializer for the LAMP object type. */ void init_type_lamp(void) { register_apply(LAMP, lamp_type_apply); } /** * Turn on/off the lamp, based on op's APPLIED status. * @param op * lamp. * @param who * player or monster. * @param aflags * flags. * @param onoff * string that will be appended to the 'turn' verb in the message. */ static void do_turn(object *op, object *who, int aflags, const char *onoff) { object *tmp2; if (!(aflags&AP_NOPRINT)) draw_ext_info_format(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You turn %s your %s.", onoff, op->name); tmp2 = arch_to_object(op->other_arch); tmp2->stats.food = op->stats.food; if (QUERY_FLAG(op, FLAG_APPLIED)) CLEAR_FLAG(tmp2, FLAG_APPLIED); else SET_FLAG(tmp2, FLAG_APPLIED); if (QUERY_FLAG(op, FLAG_INV_LOCKED)) SET_FLAG(tmp2, FLAG_INV_LOCKED); object_insert_in_ob(tmp2, who); object_remove(op); object_free_drop_inventory(op); fix_object(who); if (QUERY_FLAG(op, FLAG_CURSED) || QUERY_FLAG(op, FLAG_DAMNED)) { if (who->type == PLAYER) { if (!(aflags&AP_NOPRINT)) draw_ext_info(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "Oops, it feels deadly cold!"); SET_FLAG(tmp2, FLAG_KNOWN_CURSED); } } if (who->map) { SET_MAP_FLAGS(who->map, who->x, who->y, P_NEED_UPDATE); update_position(who->map, who->x, who->y); update_all_los(who->map, who->x, who->y); } } /** * Applies a lamp. * * @param context * method context. * @param lamp * lamp to turn on/off. * @param applier * object attempting to apply the scroll. Should be a player. * @param aflags * special flags (always apply/unapply). * @return * METHOD_ERROR if lamp can't be applied, METHOD_OK else. */ static method_ret lamp_type_apply(ob_methods *context, object *lamp, object *applier, int aflags) { object *tmp; if (object_get_player_container(lamp) != applier) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You must get it first!\n"); return METHOD_ERROR; } if (lamp->nrof > 1) tmp = object_split(lamp, lamp->nrof-1, NULL, 0); else tmp = NULL; if (QUERY_FLAG(lamp, FLAG_APPLIED)) do_turn(lamp, applier, aflags, "off"); else { if (lamp->stats.food < 1) { if (!(aflags&AP_NOPRINT)) draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "Your %s is out of fuel!", lamp->name); return METHOD_OK; } do_turn(lamp, applier, aflags, "on"); } /* insert the portion that was split off. */ if (tmp != NULL) { object_insert_in_ob(tmp, applier); } return METHOD_OK; } crossfire-1.70.0/types/Makefile.in0000644000014500000120000014046311732537023013726 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = types DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ChangeLog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libtypes_a_AR = $(AR) $(ARFLAGS) libtypes_a_LIBADD = am__dirstamp = $(am__leading_dot)dirstamp am_libtypes_a_OBJECTS = altar/altar.$(OBJEXT) \ armour_improver/armour_improver.$(OBJEXT) \ arrow/arrow.$(OBJEXT) blindness/blindness.$(OBJEXT) \ book/book.$(OBJEXT) button/button.$(OBJEXT) \ cf_handle/cf_handle.$(OBJEXT) check_inv/check_inv.$(OBJEXT) \ clock/clock.$(OBJEXT) container/container.$(OBJEXT) \ converter/converter.$(OBJEXT) creator/creator.$(OBJEXT) \ deep_swamp/deep_swamp.$(OBJEXT) detector/detector.$(OBJEXT) \ director/director.$(OBJEXT) \ dragon_focus/dragon_focus.$(OBJEXT) \ duplicator/duplicator.$(OBJEXT) exit/exit.$(OBJEXT) \ food/food.$(OBJEXT) gate/gate.$(OBJEXT) hole/hole.$(OBJEXT) \ identify_altar/identify_altar.$(OBJEXT) lamp/lamp.$(OBJEXT) \ lighter/lighter.$(OBJEXT) marker/marker.$(OBJEXT) \ mood_floor/mood_floor.$(OBJEXT) \ peacemaker/peacemaker.$(OBJEXT) pedestal/pedestal.$(OBJEXT) \ player_changer/player_changer.$(OBJEXT) \ player_mover/player_mover.$(OBJEXT) poison/poison.$(OBJEXT) \ poisoning/poisoning.$(OBJEXT) potion/potion.$(OBJEXT) \ power_crystal/power_crystal.$(OBJEXT) \ savebed/savebed.$(OBJEXT) scroll/scroll.$(OBJEXT) \ shop_inventory/shop_inventory.$(OBJEXT) \ shop_mat/shop_mat.$(OBJEXT) sign/sign.$(OBJEXT) \ skillscroll/skillscroll.$(OBJEXT) \ spell_effect/spell_effect.$(OBJEXT) \ spellbook/spellbook.$(OBJEXT) spinner/spinner.$(OBJEXT) \ teleporter/teleporter.$(OBJEXT) \ thrown_object/thrown_object.$(OBJEXT) \ transport/transport.$(OBJEXT) trap/common_trap.$(OBJEXT) \ trap/trap.$(OBJEXT) trap/rune.$(OBJEXT) \ trapdoor/trapdoor.$(OBJEXT) treasure/treasure.$(OBJEXT) \ trigger/trigger.$(OBJEXT) \ trigger_altar/trigger_altar.$(OBJEXT) \ trigger_button/trigger_button.$(OBJEXT) \ trigger_pedestal/trigger_pedestal.$(OBJEXT) \ weapon_improver/weapon_improver.$(OBJEXT) \ common/common_apply.$(OBJEXT) common/describe.$(OBJEXT) \ common/projectile.$(OBJEXT) legacy/apply.$(OBJEXT) \ legacy/legacy_describe.$(OBJEXT) legacy/process.$(OBJEXT) libtypes_a_OBJECTS = $(am_libtypes_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libtypes_a_SOURCES) DIST_SOURCES = $(libtypes_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = subdir-objects noinst_LIBRARIES = libtypes.a libtypes_a_SOURCES = altar/altar.c \ armour_improver/armour_improver.c \ arrow/arrow.c \ blindness/blindness.c \ book/book.c \ button/button.c \ cf_handle/cf_handle.c \ check_inv/check_inv.c \ clock/clock.c \ container/container.c \ converter/converter.c \ creator/creator.c \ deep_swamp/deep_swamp.c \ detector/detector.c \ director/director.c \ dragon_focus/dragon_focus.c \ duplicator/duplicator.c \ exit/exit.c \ food/food.c \ gate/gate.c \ hole/hole.c \ identify_altar/identify_altar.c \ lamp/lamp.c \ lighter/lighter.c \ marker/marker.c \ mood_floor/mood_floor.c \ peacemaker/peacemaker.c \ pedestal/pedestal.c \ player_changer/player_changer.c \ player_mover/player_mover.c \ poison/poison.c \ poisoning/poisoning.c \ potion/potion.c \ power_crystal/power_crystal.c \ savebed/savebed.c \ scroll/scroll.c \ shop_inventory/shop_inventory.c \ shop_mat/shop_mat.c \ sign/sign.c \ skillscroll/skillscroll.c \ spell_effect/spell_effect.c \ spellbook/spellbook.c \ spinner/spinner.c \ teleporter/teleporter.c \ thrown_object/thrown_object.c \ transport/transport.c \ trap/common_trap.c \ trap/trap.c \ trap/rune.c \ trapdoor/trapdoor.c \ treasure/treasure.c \ trigger/trigger.c \ trigger_altar/trigger_altar.c \ trigger_button/trigger_button.c \ trigger_pedestal/trigger_pedestal.c \ weapon_improver/weapon_improver.c \ common/common_apply.c \ common/describe.c \ common/projectile.c \ legacy/apply.c \ legacy/legacy_describe.c \ legacy/process.c AM_CPPFLAGS = -I$(top_srcdir)/include -DDATADIR=\"$(pkgdatadir)\" -DCONFDIR=\"$(pkgconfdir)\" \ -DLIBDIR=\"$(pkglibdir)\" -DLOCALDIR=\"$(pkgstatedir)\" \ -DPLUGIN_SUFFIX=\".so\" all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu types/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu types/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) altar/$(am__dirstamp): @$(MKDIR_P) altar @: > altar/$(am__dirstamp) altar/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) altar/$(DEPDIR) @: > altar/$(DEPDIR)/$(am__dirstamp) altar/altar.$(OBJEXT): altar/$(am__dirstamp) \ altar/$(DEPDIR)/$(am__dirstamp) armour_improver/$(am__dirstamp): @$(MKDIR_P) armour_improver @: > armour_improver/$(am__dirstamp) armour_improver/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) armour_improver/$(DEPDIR) @: > armour_improver/$(DEPDIR)/$(am__dirstamp) armour_improver/armour_improver.$(OBJEXT): \ armour_improver/$(am__dirstamp) \ armour_improver/$(DEPDIR)/$(am__dirstamp) arrow/$(am__dirstamp): @$(MKDIR_P) arrow @: > arrow/$(am__dirstamp) arrow/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) arrow/$(DEPDIR) @: > arrow/$(DEPDIR)/$(am__dirstamp) arrow/arrow.$(OBJEXT): arrow/$(am__dirstamp) \ arrow/$(DEPDIR)/$(am__dirstamp) blindness/$(am__dirstamp): @$(MKDIR_P) blindness @: > blindness/$(am__dirstamp) blindness/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) blindness/$(DEPDIR) @: > blindness/$(DEPDIR)/$(am__dirstamp) blindness/blindness.$(OBJEXT): blindness/$(am__dirstamp) \ blindness/$(DEPDIR)/$(am__dirstamp) book/$(am__dirstamp): @$(MKDIR_P) book @: > book/$(am__dirstamp) book/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) book/$(DEPDIR) @: > book/$(DEPDIR)/$(am__dirstamp) book/book.$(OBJEXT): book/$(am__dirstamp) \ book/$(DEPDIR)/$(am__dirstamp) button/$(am__dirstamp): @$(MKDIR_P) button @: > button/$(am__dirstamp) button/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) button/$(DEPDIR) @: > button/$(DEPDIR)/$(am__dirstamp) button/button.$(OBJEXT): button/$(am__dirstamp) \ button/$(DEPDIR)/$(am__dirstamp) cf_handle/$(am__dirstamp): @$(MKDIR_P) cf_handle @: > cf_handle/$(am__dirstamp) cf_handle/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) cf_handle/$(DEPDIR) @: > cf_handle/$(DEPDIR)/$(am__dirstamp) cf_handle/cf_handle.$(OBJEXT): cf_handle/$(am__dirstamp) \ cf_handle/$(DEPDIR)/$(am__dirstamp) check_inv/$(am__dirstamp): @$(MKDIR_P) check_inv @: > check_inv/$(am__dirstamp) check_inv/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) check_inv/$(DEPDIR) @: > check_inv/$(DEPDIR)/$(am__dirstamp) check_inv/check_inv.$(OBJEXT): check_inv/$(am__dirstamp) \ check_inv/$(DEPDIR)/$(am__dirstamp) clock/$(am__dirstamp): @$(MKDIR_P) clock @: > clock/$(am__dirstamp) clock/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) clock/$(DEPDIR) @: > clock/$(DEPDIR)/$(am__dirstamp) clock/clock.$(OBJEXT): clock/$(am__dirstamp) \ clock/$(DEPDIR)/$(am__dirstamp) container/$(am__dirstamp): @$(MKDIR_P) container @: > container/$(am__dirstamp) container/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) container/$(DEPDIR) @: > container/$(DEPDIR)/$(am__dirstamp) container/container.$(OBJEXT): container/$(am__dirstamp) \ container/$(DEPDIR)/$(am__dirstamp) converter/$(am__dirstamp): @$(MKDIR_P) converter @: > converter/$(am__dirstamp) converter/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) converter/$(DEPDIR) @: > converter/$(DEPDIR)/$(am__dirstamp) converter/converter.$(OBJEXT): converter/$(am__dirstamp) \ converter/$(DEPDIR)/$(am__dirstamp) creator/$(am__dirstamp): @$(MKDIR_P) creator @: > creator/$(am__dirstamp) creator/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) creator/$(DEPDIR) @: > creator/$(DEPDIR)/$(am__dirstamp) creator/creator.$(OBJEXT): creator/$(am__dirstamp) \ creator/$(DEPDIR)/$(am__dirstamp) deep_swamp/$(am__dirstamp): @$(MKDIR_P) deep_swamp @: > deep_swamp/$(am__dirstamp) deep_swamp/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) deep_swamp/$(DEPDIR) @: > deep_swamp/$(DEPDIR)/$(am__dirstamp) deep_swamp/deep_swamp.$(OBJEXT): deep_swamp/$(am__dirstamp) \ deep_swamp/$(DEPDIR)/$(am__dirstamp) detector/$(am__dirstamp): @$(MKDIR_P) detector @: > detector/$(am__dirstamp) detector/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) detector/$(DEPDIR) @: > detector/$(DEPDIR)/$(am__dirstamp) detector/detector.$(OBJEXT): detector/$(am__dirstamp) \ detector/$(DEPDIR)/$(am__dirstamp) director/$(am__dirstamp): @$(MKDIR_P) director @: > director/$(am__dirstamp) director/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) director/$(DEPDIR) @: > director/$(DEPDIR)/$(am__dirstamp) director/director.$(OBJEXT): director/$(am__dirstamp) \ director/$(DEPDIR)/$(am__dirstamp) dragon_focus/$(am__dirstamp): @$(MKDIR_P) dragon_focus @: > dragon_focus/$(am__dirstamp) dragon_focus/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) dragon_focus/$(DEPDIR) @: > dragon_focus/$(DEPDIR)/$(am__dirstamp) dragon_focus/dragon_focus.$(OBJEXT): dragon_focus/$(am__dirstamp) \ dragon_focus/$(DEPDIR)/$(am__dirstamp) duplicator/$(am__dirstamp): @$(MKDIR_P) duplicator @: > duplicator/$(am__dirstamp) duplicator/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) duplicator/$(DEPDIR) @: > duplicator/$(DEPDIR)/$(am__dirstamp) duplicator/duplicator.$(OBJEXT): duplicator/$(am__dirstamp) \ duplicator/$(DEPDIR)/$(am__dirstamp) exit/$(am__dirstamp): @$(MKDIR_P) exit @: > exit/$(am__dirstamp) exit/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) exit/$(DEPDIR) @: > exit/$(DEPDIR)/$(am__dirstamp) exit/exit.$(OBJEXT): exit/$(am__dirstamp) \ exit/$(DEPDIR)/$(am__dirstamp) food/$(am__dirstamp): @$(MKDIR_P) food @: > food/$(am__dirstamp) food/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) food/$(DEPDIR) @: > food/$(DEPDIR)/$(am__dirstamp) food/food.$(OBJEXT): food/$(am__dirstamp) \ food/$(DEPDIR)/$(am__dirstamp) gate/$(am__dirstamp): @$(MKDIR_P) gate @: > gate/$(am__dirstamp) gate/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) gate/$(DEPDIR) @: > gate/$(DEPDIR)/$(am__dirstamp) gate/gate.$(OBJEXT): gate/$(am__dirstamp) \ gate/$(DEPDIR)/$(am__dirstamp) hole/$(am__dirstamp): @$(MKDIR_P) hole @: > hole/$(am__dirstamp) hole/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) hole/$(DEPDIR) @: > hole/$(DEPDIR)/$(am__dirstamp) hole/hole.$(OBJEXT): hole/$(am__dirstamp) \ hole/$(DEPDIR)/$(am__dirstamp) identify_altar/$(am__dirstamp): @$(MKDIR_P) identify_altar @: > identify_altar/$(am__dirstamp) identify_altar/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) identify_altar/$(DEPDIR) @: > identify_altar/$(DEPDIR)/$(am__dirstamp) identify_altar/identify_altar.$(OBJEXT): \ identify_altar/$(am__dirstamp) \ identify_altar/$(DEPDIR)/$(am__dirstamp) lamp/$(am__dirstamp): @$(MKDIR_P) lamp @: > lamp/$(am__dirstamp) lamp/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) lamp/$(DEPDIR) @: > lamp/$(DEPDIR)/$(am__dirstamp) lamp/lamp.$(OBJEXT): lamp/$(am__dirstamp) \ lamp/$(DEPDIR)/$(am__dirstamp) lighter/$(am__dirstamp): @$(MKDIR_P) lighter @: > lighter/$(am__dirstamp) lighter/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) lighter/$(DEPDIR) @: > lighter/$(DEPDIR)/$(am__dirstamp) lighter/lighter.$(OBJEXT): lighter/$(am__dirstamp) \ lighter/$(DEPDIR)/$(am__dirstamp) marker/$(am__dirstamp): @$(MKDIR_P) marker @: > marker/$(am__dirstamp) marker/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) marker/$(DEPDIR) @: > marker/$(DEPDIR)/$(am__dirstamp) marker/marker.$(OBJEXT): marker/$(am__dirstamp) \ marker/$(DEPDIR)/$(am__dirstamp) mood_floor/$(am__dirstamp): @$(MKDIR_P) mood_floor @: > mood_floor/$(am__dirstamp) mood_floor/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) mood_floor/$(DEPDIR) @: > mood_floor/$(DEPDIR)/$(am__dirstamp) mood_floor/mood_floor.$(OBJEXT): mood_floor/$(am__dirstamp) \ mood_floor/$(DEPDIR)/$(am__dirstamp) peacemaker/$(am__dirstamp): @$(MKDIR_P) peacemaker @: > peacemaker/$(am__dirstamp) peacemaker/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) peacemaker/$(DEPDIR) @: > peacemaker/$(DEPDIR)/$(am__dirstamp) peacemaker/peacemaker.$(OBJEXT): peacemaker/$(am__dirstamp) \ peacemaker/$(DEPDIR)/$(am__dirstamp) pedestal/$(am__dirstamp): @$(MKDIR_P) pedestal @: > pedestal/$(am__dirstamp) pedestal/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) pedestal/$(DEPDIR) @: > pedestal/$(DEPDIR)/$(am__dirstamp) pedestal/pedestal.$(OBJEXT): pedestal/$(am__dirstamp) \ pedestal/$(DEPDIR)/$(am__dirstamp) player_changer/$(am__dirstamp): @$(MKDIR_P) player_changer @: > player_changer/$(am__dirstamp) player_changer/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) player_changer/$(DEPDIR) @: > player_changer/$(DEPDIR)/$(am__dirstamp) player_changer/player_changer.$(OBJEXT): \ player_changer/$(am__dirstamp) \ player_changer/$(DEPDIR)/$(am__dirstamp) player_mover/$(am__dirstamp): @$(MKDIR_P) player_mover @: > player_mover/$(am__dirstamp) player_mover/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) player_mover/$(DEPDIR) @: > player_mover/$(DEPDIR)/$(am__dirstamp) player_mover/player_mover.$(OBJEXT): player_mover/$(am__dirstamp) \ player_mover/$(DEPDIR)/$(am__dirstamp) poison/$(am__dirstamp): @$(MKDIR_P) poison @: > poison/$(am__dirstamp) poison/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) poison/$(DEPDIR) @: > poison/$(DEPDIR)/$(am__dirstamp) poison/poison.$(OBJEXT): poison/$(am__dirstamp) \ poison/$(DEPDIR)/$(am__dirstamp) poisoning/$(am__dirstamp): @$(MKDIR_P) poisoning @: > poisoning/$(am__dirstamp) poisoning/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) poisoning/$(DEPDIR) @: > poisoning/$(DEPDIR)/$(am__dirstamp) poisoning/poisoning.$(OBJEXT): poisoning/$(am__dirstamp) \ poisoning/$(DEPDIR)/$(am__dirstamp) potion/$(am__dirstamp): @$(MKDIR_P) potion @: > potion/$(am__dirstamp) potion/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) potion/$(DEPDIR) @: > potion/$(DEPDIR)/$(am__dirstamp) potion/potion.$(OBJEXT): potion/$(am__dirstamp) \ potion/$(DEPDIR)/$(am__dirstamp) power_crystal/$(am__dirstamp): @$(MKDIR_P) power_crystal @: > power_crystal/$(am__dirstamp) power_crystal/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) power_crystal/$(DEPDIR) @: > power_crystal/$(DEPDIR)/$(am__dirstamp) power_crystal/power_crystal.$(OBJEXT): power_crystal/$(am__dirstamp) \ power_crystal/$(DEPDIR)/$(am__dirstamp) savebed/$(am__dirstamp): @$(MKDIR_P) savebed @: > savebed/$(am__dirstamp) savebed/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) savebed/$(DEPDIR) @: > savebed/$(DEPDIR)/$(am__dirstamp) savebed/savebed.$(OBJEXT): savebed/$(am__dirstamp) \ savebed/$(DEPDIR)/$(am__dirstamp) scroll/$(am__dirstamp): @$(MKDIR_P) scroll @: > scroll/$(am__dirstamp) scroll/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) scroll/$(DEPDIR) @: > scroll/$(DEPDIR)/$(am__dirstamp) scroll/scroll.$(OBJEXT): scroll/$(am__dirstamp) \ scroll/$(DEPDIR)/$(am__dirstamp) shop_inventory/$(am__dirstamp): @$(MKDIR_P) shop_inventory @: > shop_inventory/$(am__dirstamp) shop_inventory/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) shop_inventory/$(DEPDIR) @: > shop_inventory/$(DEPDIR)/$(am__dirstamp) shop_inventory/shop_inventory.$(OBJEXT): \ shop_inventory/$(am__dirstamp) \ shop_inventory/$(DEPDIR)/$(am__dirstamp) shop_mat/$(am__dirstamp): @$(MKDIR_P) shop_mat @: > shop_mat/$(am__dirstamp) shop_mat/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) shop_mat/$(DEPDIR) @: > shop_mat/$(DEPDIR)/$(am__dirstamp) shop_mat/shop_mat.$(OBJEXT): shop_mat/$(am__dirstamp) \ shop_mat/$(DEPDIR)/$(am__dirstamp) sign/$(am__dirstamp): @$(MKDIR_P) sign @: > sign/$(am__dirstamp) sign/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) sign/$(DEPDIR) @: > sign/$(DEPDIR)/$(am__dirstamp) sign/sign.$(OBJEXT): sign/$(am__dirstamp) \ sign/$(DEPDIR)/$(am__dirstamp) skillscroll/$(am__dirstamp): @$(MKDIR_P) skillscroll @: > skillscroll/$(am__dirstamp) skillscroll/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) skillscroll/$(DEPDIR) @: > skillscroll/$(DEPDIR)/$(am__dirstamp) skillscroll/skillscroll.$(OBJEXT): skillscroll/$(am__dirstamp) \ skillscroll/$(DEPDIR)/$(am__dirstamp) spell_effect/$(am__dirstamp): @$(MKDIR_P) spell_effect @: > spell_effect/$(am__dirstamp) spell_effect/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) spell_effect/$(DEPDIR) @: > spell_effect/$(DEPDIR)/$(am__dirstamp) spell_effect/spell_effect.$(OBJEXT): spell_effect/$(am__dirstamp) \ spell_effect/$(DEPDIR)/$(am__dirstamp) spellbook/$(am__dirstamp): @$(MKDIR_P) spellbook @: > spellbook/$(am__dirstamp) spellbook/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) spellbook/$(DEPDIR) @: > spellbook/$(DEPDIR)/$(am__dirstamp) spellbook/spellbook.$(OBJEXT): spellbook/$(am__dirstamp) \ spellbook/$(DEPDIR)/$(am__dirstamp) spinner/$(am__dirstamp): @$(MKDIR_P) spinner @: > spinner/$(am__dirstamp) spinner/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) spinner/$(DEPDIR) @: > spinner/$(DEPDIR)/$(am__dirstamp) spinner/spinner.$(OBJEXT): spinner/$(am__dirstamp) \ spinner/$(DEPDIR)/$(am__dirstamp) teleporter/$(am__dirstamp): @$(MKDIR_P) teleporter @: > teleporter/$(am__dirstamp) teleporter/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) teleporter/$(DEPDIR) @: > teleporter/$(DEPDIR)/$(am__dirstamp) teleporter/teleporter.$(OBJEXT): teleporter/$(am__dirstamp) \ teleporter/$(DEPDIR)/$(am__dirstamp) thrown_object/$(am__dirstamp): @$(MKDIR_P) thrown_object @: > thrown_object/$(am__dirstamp) thrown_object/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) thrown_object/$(DEPDIR) @: > thrown_object/$(DEPDIR)/$(am__dirstamp) thrown_object/thrown_object.$(OBJEXT): thrown_object/$(am__dirstamp) \ thrown_object/$(DEPDIR)/$(am__dirstamp) transport/$(am__dirstamp): @$(MKDIR_P) transport @: > transport/$(am__dirstamp) transport/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) transport/$(DEPDIR) @: > transport/$(DEPDIR)/$(am__dirstamp) transport/transport.$(OBJEXT): transport/$(am__dirstamp) \ transport/$(DEPDIR)/$(am__dirstamp) trap/$(am__dirstamp): @$(MKDIR_P) trap @: > trap/$(am__dirstamp) trap/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) trap/$(DEPDIR) @: > trap/$(DEPDIR)/$(am__dirstamp) trap/common_trap.$(OBJEXT): trap/$(am__dirstamp) \ trap/$(DEPDIR)/$(am__dirstamp) trap/trap.$(OBJEXT): trap/$(am__dirstamp) \ trap/$(DEPDIR)/$(am__dirstamp) trap/rune.$(OBJEXT): trap/$(am__dirstamp) \ trap/$(DEPDIR)/$(am__dirstamp) trapdoor/$(am__dirstamp): @$(MKDIR_P) trapdoor @: > trapdoor/$(am__dirstamp) trapdoor/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) trapdoor/$(DEPDIR) @: > trapdoor/$(DEPDIR)/$(am__dirstamp) trapdoor/trapdoor.$(OBJEXT): trapdoor/$(am__dirstamp) \ trapdoor/$(DEPDIR)/$(am__dirstamp) treasure/$(am__dirstamp): @$(MKDIR_P) treasure @: > treasure/$(am__dirstamp) treasure/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) treasure/$(DEPDIR) @: > treasure/$(DEPDIR)/$(am__dirstamp) treasure/treasure.$(OBJEXT): treasure/$(am__dirstamp) \ treasure/$(DEPDIR)/$(am__dirstamp) trigger/$(am__dirstamp): @$(MKDIR_P) trigger @: > trigger/$(am__dirstamp) trigger/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) trigger/$(DEPDIR) @: > trigger/$(DEPDIR)/$(am__dirstamp) trigger/trigger.$(OBJEXT): trigger/$(am__dirstamp) \ trigger/$(DEPDIR)/$(am__dirstamp) trigger_altar/$(am__dirstamp): @$(MKDIR_P) trigger_altar @: > trigger_altar/$(am__dirstamp) trigger_altar/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) trigger_altar/$(DEPDIR) @: > trigger_altar/$(DEPDIR)/$(am__dirstamp) trigger_altar/trigger_altar.$(OBJEXT): trigger_altar/$(am__dirstamp) \ trigger_altar/$(DEPDIR)/$(am__dirstamp) trigger_button/$(am__dirstamp): @$(MKDIR_P) trigger_button @: > trigger_button/$(am__dirstamp) trigger_button/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) trigger_button/$(DEPDIR) @: > trigger_button/$(DEPDIR)/$(am__dirstamp) trigger_button/trigger_button.$(OBJEXT): \ trigger_button/$(am__dirstamp) \ trigger_button/$(DEPDIR)/$(am__dirstamp) trigger_pedestal/$(am__dirstamp): @$(MKDIR_P) trigger_pedestal @: > trigger_pedestal/$(am__dirstamp) trigger_pedestal/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) trigger_pedestal/$(DEPDIR) @: > trigger_pedestal/$(DEPDIR)/$(am__dirstamp) trigger_pedestal/trigger_pedestal.$(OBJEXT): \ trigger_pedestal/$(am__dirstamp) \ trigger_pedestal/$(DEPDIR)/$(am__dirstamp) weapon_improver/$(am__dirstamp): @$(MKDIR_P) weapon_improver @: > weapon_improver/$(am__dirstamp) weapon_improver/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) weapon_improver/$(DEPDIR) @: > weapon_improver/$(DEPDIR)/$(am__dirstamp) weapon_improver/weapon_improver.$(OBJEXT): \ weapon_improver/$(am__dirstamp) \ weapon_improver/$(DEPDIR)/$(am__dirstamp) common/$(am__dirstamp): @$(MKDIR_P) common @: > common/$(am__dirstamp) common/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) common/$(DEPDIR) @: > common/$(DEPDIR)/$(am__dirstamp) common/common_apply.$(OBJEXT): common/$(am__dirstamp) \ common/$(DEPDIR)/$(am__dirstamp) common/describe.$(OBJEXT): common/$(am__dirstamp) \ common/$(DEPDIR)/$(am__dirstamp) common/projectile.$(OBJEXT): common/$(am__dirstamp) \ common/$(DEPDIR)/$(am__dirstamp) legacy/$(am__dirstamp): @$(MKDIR_P) legacy @: > legacy/$(am__dirstamp) legacy/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) legacy/$(DEPDIR) @: > legacy/$(DEPDIR)/$(am__dirstamp) legacy/apply.$(OBJEXT): legacy/$(am__dirstamp) \ legacy/$(DEPDIR)/$(am__dirstamp) legacy/legacy_describe.$(OBJEXT): legacy/$(am__dirstamp) \ legacy/$(DEPDIR)/$(am__dirstamp) legacy/process.$(OBJEXT): legacy/$(am__dirstamp) \ legacy/$(DEPDIR)/$(am__dirstamp) libtypes.a: $(libtypes_a_OBJECTS) $(libtypes_a_DEPENDENCIES) $(EXTRA_libtypes_a_DEPENDENCIES) -rm -f libtypes.a $(libtypes_a_AR) libtypes.a $(libtypes_a_OBJECTS) $(libtypes_a_LIBADD) $(RANLIB) libtypes.a mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f altar/altar.$(OBJEXT) -rm -f armour_improver/armour_improver.$(OBJEXT) -rm -f arrow/arrow.$(OBJEXT) -rm -f blindness/blindness.$(OBJEXT) -rm -f book/book.$(OBJEXT) -rm -f button/button.$(OBJEXT) -rm -f cf_handle/cf_handle.$(OBJEXT) -rm -f check_inv/check_inv.$(OBJEXT) -rm -f clock/clock.$(OBJEXT) -rm -f common/common_apply.$(OBJEXT) -rm -f common/describe.$(OBJEXT) -rm -f common/projectile.$(OBJEXT) -rm -f container/container.$(OBJEXT) -rm -f converter/converter.$(OBJEXT) -rm -f creator/creator.$(OBJEXT) -rm -f deep_swamp/deep_swamp.$(OBJEXT) -rm -f detector/detector.$(OBJEXT) -rm -f director/director.$(OBJEXT) -rm -f dragon_focus/dragon_focus.$(OBJEXT) -rm -f duplicator/duplicator.$(OBJEXT) -rm -f exit/exit.$(OBJEXT) -rm -f food/food.$(OBJEXT) -rm -f gate/gate.$(OBJEXT) -rm -f hole/hole.$(OBJEXT) -rm -f identify_altar/identify_altar.$(OBJEXT) -rm -f lamp/lamp.$(OBJEXT) -rm -f legacy/apply.$(OBJEXT) -rm -f legacy/legacy_describe.$(OBJEXT) -rm -f legacy/process.$(OBJEXT) -rm -f lighter/lighter.$(OBJEXT) -rm -f marker/marker.$(OBJEXT) -rm -f mood_floor/mood_floor.$(OBJEXT) -rm -f peacemaker/peacemaker.$(OBJEXT) -rm -f pedestal/pedestal.$(OBJEXT) -rm -f player_changer/player_changer.$(OBJEXT) -rm -f player_mover/player_mover.$(OBJEXT) -rm -f poison/poison.$(OBJEXT) -rm -f poisoning/poisoning.$(OBJEXT) -rm -f potion/potion.$(OBJEXT) -rm -f power_crystal/power_crystal.$(OBJEXT) -rm -f savebed/savebed.$(OBJEXT) -rm -f scroll/scroll.$(OBJEXT) -rm -f shop_inventory/shop_inventory.$(OBJEXT) -rm -f shop_mat/shop_mat.$(OBJEXT) -rm -f sign/sign.$(OBJEXT) -rm -f skillscroll/skillscroll.$(OBJEXT) -rm -f spell_effect/spell_effect.$(OBJEXT) -rm -f spellbook/spellbook.$(OBJEXT) -rm -f spinner/spinner.$(OBJEXT) -rm -f teleporter/teleporter.$(OBJEXT) -rm -f thrown_object/thrown_object.$(OBJEXT) -rm -f transport/transport.$(OBJEXT) -rm -f trap/common_trap.$(OBJEXT) -rm -f trap/rune.$(OBJEXT) -rm -f trap/trap.$(OBJEXT) -rm -f trapdoor/trapdoor.$(OBJEXT) -rm -f treasure/treasure.$(OBJEXT) -rm -f trigger/trigger.$(OBJEXT) -rm -f trigger_altar/trigger_altar.$(OBJEXT) -rm -f trigger_button/trigger_button.$(OBJEXT) -rm -f trigger_pedestal/trigger_pedestal.$(OBJEXT) -rm -f weapon_improver/weapon_improver.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@altar/$(DEPDIR)/altar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@armour_improver/$(DEPDIR)/armour_improver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@arrow/$(DEPDIR)/arrow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@blindness/$(DEPDIR)/blindness.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@book/$(DEPDIR)/book.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@button/$(DEPDIR)/button.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@cf_handle/$(DEPDIR)/cf_handle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@check_inv/$(DEPDIR)/check_inv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@clock/$(DEPDIR)/clock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_apply.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/describe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/projectile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@container/$(DEPDIR)/container.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@converter/$(DEPDIR)/converter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@creator/$(DEPDIR)/creator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@deep_swamp/$(DEPDIR)/deep_swamp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@detector/$(DEPDIR)/detector.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@director/$(DEPDIR)/director.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@dragon_focus/$(DEPDIR)/dragon_focus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@duplicator/$(DEPDIR)/duplicator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@exit/$(DEPDIR)/exit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@food/$(DEPDIR)/food.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gate/$(DEPDIR)/gate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@hole/$(DEPDIR)/hole.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@identify_altar/$(DEPDIR)/identify_altar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lamp/$(DEPDIR)/lamp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@legacy/$(DEPDIR)/apply.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@legacy/$(DEPDIR)/legacy_describe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@legacy/$(DEPDIR)/process.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@lighter/$(DEPDIR)/lighter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@marker/$(DEPDIR)/marker.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@mood_floor/$(DEPDIR)/mood_floor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@peacemaker/$(DEPDIR)/peacemaker.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@pedestal/$(DEPDIR)/pedestal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@player_changer/$(DEPDIR)/player_changer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@player_mover/$(DEPDIR)/player_mover.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@poison/$(DEPDIR)/poison.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@poisoning/$(DEPDIR)/poisoning.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@potion/$(DEPDIR)/potion.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@power_crystal/$(DEPDIR)/power_crystal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@savebed/$(DEPDIR)/savebed.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@scroll/$(DEPDIR)/scroll.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shop_inventory/$(DEPDIR)/shop_inventory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@shop_mat/$(DEPDIR)/shop_mat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@sign/$(DEPDIR)/sign.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@skillscroll/$(DEPDIR)/skillscroll.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@spell_effect/$(DEPDIR)/spell_effect.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@spellbook/$(DEPDIR)/spellbook.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@spinner/$(DEPDIR)/spinner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@teleporter/$(DEPDIR)/teleporter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@thrown_object/$(DEPDIR)/thrown_object.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@transport/$(DEPDIR)/transport.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trap/$(DEPDIR)/common_trap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trap/$(DEPDIR)/rune.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trap/$(DEPDIR)/trap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trapdoor/$(DEPDIR)/trapdoor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@treasure/$(DEPDIR)/treasure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trigger/$(DEPDIR)/trigger.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trigger_altar/$(DEPDIR)/trigger_altar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trigger_button/$(DEPDIR)/trigger_button.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@trigger_pedestal/$(DEPDIR)/trigger_pedestal.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@weapon_improver/$(DEPDIR)/weapon_improver.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f altar/$(DEPDIR)/$(am__dirstamp) -rm -f altar/$(am__dirstamp) -rm -f armour_improver/$(DEPDIR)/$(am__dirstamp) -rm -f armour_improver/$(am__dirstamp) -rm -f arrow/$(DEPDIR)/$(am__dirstamp) -rm -f arrow/$(am__dirstamp) -rm -f blindness/$(DEPDIR)/$(am__dirstamp) -rm -f blindness/$(am__dirstamp) -rm -f book/$(DEPDIR)/$(am__dirstamp) -rm -f book/$(am__dirstamp) -rm -f button/$(DEPDIR)/$(am__dirstamp) -rm -f button/$(am__dirstamp) -rm -f cf_handle/$(DEPDIR)/$(am__dirstamp) -rm -f cf_handle/$(am__dirstamp) -rm -f check_inv/$(DEPDIR)/$(am__dirstamp) -rm -f check_inv/$(am__dirstamp) -rm -f clock/$(DEPDIR)/$(am__dirstamp) -rm -f clock/$(am__dirstamp) -rm -f common/$(DEPDIR)/$(am__dirstamp) -rm -f common/$(am__dirstamp) -rm -f container/$(DEPDIR)/$(am__dirstamp) -rm -f container/$(am__dirstamp) -rm -f converter/$(DEPDIR)/$(am__dirstamp) -rm -f converter/$(am__dirstamp) -rm -f creator/$(DEPDIR)/$(am__dirstamp) -rm -f creator/$(am__dirstamp) -rm -f deep_swamp/$(DEPDIR)/$(am__dirstamp) -rm -f deep_swamp/$(am__dirstamp) -rm -f detector/$(DEPDIR)/$(am__dirstamp) -rm -f detector/$(am__dirstamp) -rm -f director/$(DEPDIR)/$(am__dirstamp) -rm -f director/$(am__dirstamp) -rm -f dragon_focus/$(DEPDIR)/$(am__dirstamp) -rm -f dragon_focus/$(am__dirstamp) -rm -f duplicator/$(DEPDIR)/$(am__dirstamp) -rm -f duplicator/$(am__dirstamp) -rm -f exit/$(DEPDIR)/$(am__dirstamp) -rm -f exit/$(am__dirstamp) -rm -f food/$(DEPDIR)/$(am__dirstamp) -rm -f food/$(am__dirstamp) -rm -f gate/$(DEPDIR)/$(am__dirstamp) -rm -f gate/$(am__dirstamp) -rm -f hole/$(DEPDIR)/$(am__dirstamp) -rm -f hole/$(am__dirstamp) -rm -f identify_altar/$(DEPDIR)/$(am__dirstamp) -rm -f identify_altar/$(am__dirstamp) -rm -f lamp/$(DEPDIR)/$(am__dirstamp) -rm -f lamp/$(am__dirstamp) -rm -f legacy/$(DEPDIR)/$(am__dirstamp) -rm -f legacy/$(am__dirstamp) -rm -f lighter/$(DEPDIR)/$(am__dirstamp) -rm -f lighter/$(am__dirstamp) -rm -f marker/$(DEPDIR)/$(am__dirstamp) -rm -f marker/$(am__dirstamp) -rm -f mood_floor/$(DEPDIR)/$(am__dirstamp) -rm -f mood_floor/$(am__dirstamp) -rm -f peacemaker/$(DEPDIR)/$(am__dirstamp) -rm -f peacemaker/$(am__dirstamp) -rm -f pedestal/$(DEPDIR)/$(am__dirstamp) -rm -f pedestal/$(am__dirstamp) -rm -f player_changer/$(DEPDIR)/$(am__dirstamp) -rm -f player_changer/$(am__dirstamp) -rm -f player_mover/$(DEPDIR)/$(am__dirstamp) -rm -f player_mover/$(am__dirstamp) -rm -f poison/$(DEPDIR)/$(am__dirstamp) -rm -f poison/$(am__dirstamp) -rm -f poisoning/$(DEPDIR)/$(am__dirstamp) -rm -f poisoning/$(am__dirstamp) -rm -f potion/$(DEPDIR)/$(am__dirstamp) -rm -f potion/$(am__dirstamp) -rm -f power_crystal/$(DEPDIR)/$(am__dirstamp) -rm -f power_crystal/$(am__dirstamp) -rm -f savebed/$(DEPDIR)/$(am__dirstamp) -rm -f savebed/$(am__dirstamp) -rm -f scroll/$(DEPDIR)/$(am__dirstamp) -rm -f scroll/$(am__dirstamp) -rm -f shop_inventory/$(DEPDIR)/$(am__dirstamp) -rm -f shop_inventory/$(am__dirstamp) -rm -f shop_mat/$(DEPDIR)/$(am__dirstamp) -rm -f shop_mat/$(am__dirstamp) -rm -f sign/$(DEPDIR)/$(am__dirstamp) -rm -f sign/$(am__dirstamp) -rm -f skillscroll/$(DEPDIR)/$(am__dirstamp) -rm -f skillscroll/$(am__dirstamp) -rm -f spell_effect/$(DEPDIR)/$(am__dirstamp) -rm -f spell_effect/$(am__dirstamp) -rm -f spellbook/$(DEPDIR)/$(am__dirstamp) -rm -f spellbook/$(am__dirstamp) -rm -f spinner/$(DEPDIR)/$(am__dirstamp) -rm -f spinner/$(am__dirstamp) -rm -f teleporter/$(DEPDIR)/$(am__dirstamp) -rm -f teleporter/$(am__dirstamp) -rm -f thrown_object/$(DEPDIR)/$(am__dirstamp) -rm -f thrown_object/$(am__dirstamp) -rm -f transport/$(DEPDIR)/$(am__dirstamp) -rm -f transport/$(am__dirstamp) -rm -f trap/$(DEPDIR)/$(am__dirstamp) -rm -f trap/$(am__dirstamp) -rm -f trapdoor/$(DEPDIR)/$(am__dirstamp) -rm -f trapdoor/$(am__dirstamp) -rm -f treasure/$(DEPDIR)/$(am__dirstamp) -rm -f treasure/$(am__dirstamp) -rm -f trigger/$(DEPDIR)/$(am__dirstamp) -rm -f trigger/$(am__dirstamp) -rm -f trigger_altar/$(DEPDIR)/$(am__dirstamp) -rm -f trigger_altar/$(am__dirstamp) -rm -f trigger_button/$(DEPDIR)/$(am__dirstamp) -rm -f trigger_button/$(am__dirstamp) -rm -f trigger_pedestal/$(DEPDIR)/$(am__dirstamp) -rm -f trigger_pedestal/$(am__dirstamp) -rm -f weapon_improver/$(DEPDIR)/$(am__dirstamp) -rm -f weapon_improver/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf altar/$(DEPDIR) armour_improver/$(DEPDIR) arrow/$(DEPDIR) blindness/$(DEPDIR) book/$(DEPDIR) button/$(DEPDIR) cf_handle/$(DEPDIR) check_inv/$(DEPDIR) clock/$(DEPDIR) common/$(DEPDIR) container/$(DEPDIR) converter/$(DEPDIR) creator/$(DEPDIR) deep_swamp/$(DEPDIR) detector/$(DEPDIR) director/$(DEPDIR) dragon_focus/$(DEPDIR) duplicator/$(DEPDIR) exit/$(DEPDIR) food/$(DEPDIR) gate/$(DEPDIR) hole/$(DEPDIR) identify_altar/$(DEPDIR) lamp/$(DEPDIR) legacy/$(DEPDIR) lighter/$(DEPDIR) marker/$(DEPDIR) mood_floor/$(DEPDIR) peacemaker/$(DEPDIR) pedestal/$(DEPDIR) player_changer/$(DEPDIR) player_mover/$(DEPDIR) poison/$(DEPDIR) poisoning/$(DEPDIR) potion/$(DEPDIR) power_crystal/$(DEPDIR) savebed/$(DEPDIR) scroll/$(DEPDIR) shop_inventory/$(DEPDIR) shop_mat/$(DEPDIR) sign/$(DEPDIR) skillscroll/$(DEPDIR) spell_effect/$(DEPDIR) spellbook/$(DEPDIR) spinner/$(DEPDIR) teleporter/$(DEPDIR) thrown_object/$(DEPDIR) transport/$(DEPDIR) trap/$(DEPDIR) trapdoor/$(DEPDIR) treasure/$(DEPDIR) trigger/$(DEPDIR) trigger_altar/$(DEPDIR) trigger_button/$(DEPDIR) trigger_pedestal/$(DEPDIR) weapon_improver/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf altar/$(DEPDIR) armour_improver/$(DEPDIR) arrow/$(DEPDIR) blindness/$(DEPDIR) book/$(DEPDIR) button/$(DEPDIR) cf_handle/$(DEPDIR) check_inv/$(DEPDIR) clock/$(DEPDIR) common/$(DEPDIR) container/$(DEPDIR) converter/$(DEPDIR) creator/$(DEPDIR) deep_swamp/$(DEPDIR) detector/$(DEPDIR) director/$(DEPDIR) dragon_focus/$(DEPDIR) duplicator/$(DEPDIR) exit/$(DEPDIR) food/$(DEPDIR) gate/$(DEPDIR) hole/$(DEPDIR) identify_altar/$(DEPDIR) lamp/$(DEPDIR) legacy/$(DEPDIR) lighter/$(DEPDIR) marker/$(DEPDIR) mood_floor/$(DEPDIR) peacemaker/$(DEPDIR) pedestal/$(DEPDIR) player_changer/$(DEPDIR) player_mover/$(DEPDIR) poison/$(DEPDIR) poisoning/$(DEPDIR) potion/$(DEPDIR) power_crystal/$(DEPDIR) savebed/$(DEPDIR) scroll/$(DEPDIR) shop_inventory/$(DEPDIR) shop_mat/$(DEPDIR) sign/$(DEPDIR) skillscroll/$(DEPDIR) spell_effect/$(DEPDIR) spellbook/$(DEPDIR) spinner/$(DEPDIR) teleporter/$(DEPDIR) thrown_object/$(DEPDIR) transport/$(DEPDIR) trap/$(DEPDIR) trapdoor/$(DEPDIR) treasure/$(DEPDIR) trigger/$(DEPDIR) trigger_altar/$(DEPDIR) trigger_button/$(DEPDIR) trigger_pedestal/$(DEPDIR) weapon_improver/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am proto: cproto -D__CEXTRACT__ -o ../include/typesproto.h $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/typesproto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/types/director/0000755000014500000120000000000011732537043013546 500000000000000crossfire-1.70.0/types/director/director.c0000644000014500000120000000405311731300534015437 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file director.c * The implementation of the Director class of objects. */ #include #include #include #include #include static method_ret director_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the DIRECTOR object type. */ void init_type_director(void) { register_move_on(DIRECTOR, director_type_move_on); } /** * Move on this Director object. * @param context The method context * @param trap The Director we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret director_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (victim->direction && !should_director_abort(trap, victim)) { victim->direction = trap->stats.sp; object_update_turn_face(victim); } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/gate/0000755000014500000120000000000011732537043012653 500000000000000crossfire-1.70.0/types/gate/gate.c0000644000014500000120000001676711731300533013667 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file gate/gate.c * The implementation of the Gate and Timed Gate classes of objects. * @todo merge GATE and TIMED_GATE object types. */ #include #include #include #include #include static method_ret gate_type_process(ob_methods *context, object *op); static method_ret timed_gate_type_process(ob_methods *context, object *op); /** * Initializer for the gate object type. */ void init_type_gate(void) { register_process(GATE, gate_type_process); register_process(TIMED_GATE, timed_gate_type_process); } /** * Handle ob_process for all gate objects. * @param context The method context * @param op The gate that's being processed. * @return METHOD_OK */ static method_ret gate_type_process(ob_methods *context, object *op) { object *tmp; if (op->stats.wc < 0 || (int)op->stats.wc >= NUM_ANIMATIONS(op)) { StringBuffer *sb; char *diff; LOG(llevError, "Gate error: animation was %d, max=%d\n", op->stats.wc, NUM_ANIMATIONS(op)); sb = stringbuffer_new(); object_dump(op, sb); diff = stringbuffer_finish(sb); LOG(llevError, "%s\n", diff); free(diff); op->stats.wc = 0; } /* We're going down */ if (op->value) { if (--op->stats.wc <= 0) { /* Reached bottom, let's stop */ op->stats.wc = 0; if (op->arch->clone.speed) op->value = 0; else { op->speed = 0; object_update_speed(op); } } if ((int)op->stats.wc < (NUM_ANIMATIONS(op)/2+1)) { op->move_block = 0; CLEAR_FLAG(op, FLAG_BLOCKSVIEW); update_all_los(op->map, op->x, op->y); } SET_ANIMATION(op, op->stats.wc); object_update(op, UP_OBJ_CHANGE); return METHOD_OK; } /* We're going up */ /* First, lets see if we are already at the top */ if ((unsigned char)op->stats.wc == (NUM_ANIMATIONS(op)-1)) { /* Check to make sure that only non pickable and non rollable * objects are above the gate. If so, we finish closing the gate, * otherwise, we fall through to the code below which should lower * the gate slightly. */ for (tmp = op->above; tmp != NULL; tmp = tmp->above) if (!QUERY_FLAG(tmp, FLAG_NO_PICK) || QUERY_FLAG(tmp, FLAG_CAN_ROLL) || QUERY_FLAG(tmp, FLAG_ALIVE)) break; if (tmp == NULL) { if (op->arch->clone.speed) op->value = 1; else { op->speed = 0; object_update_speed(op); /* Reached top, let's stop */ } return METHOD_OK; } } if (op->stats.food) { /* The gate is going temporarily down */ if (--op->stats.wc <= 0) { /* Gone all the way down? */ op->stats.food = 0; /* Then let's try again */ op->stats.wc = 0; } } else { /* The gate is still going up */ op->stats.wc++; if ((int)op->stats.wc >= (NUM_ANIMATIONS(op))) op->stats.wc = (signed char)NUM_ANIMATIONS(op)-1; /* If there is something on top of the gate, we try to roll it off. * If a player/monster, we don't roll, we just hit them with damage */ if ((int)op->stats.wc >= NUM_ANIMATIONS(op)/2) { /* Halfway or further, check blocks */ /* First, get the top object on the square. */ for (tmp = op->above; tmp != NULL && tmp->above != NULL; tmp = tmp->above) ; if (tmp != NULL) { if (QUERY_FLAG(tmp, FLAG_ALIVE)) { hit_player(tmp, random_roll(1, op->stats.dam, tmp, PREFER_LOW), op, AT_PHYSICAL, 1); if (tmp->type == PLAYER) draw_ext_info_format(NDI_UNIQUE, 0, tmp, MSG_TYPE_VICTIM, MSG_TYPE_VICTIM_WAS_HIT, "You are crushed by the %s!", op->name); } else /* If the object is not alive, and the object either can * be picked up or the object rolls, move the object * off the gate. */ if (!QUERY_FLAG(tmp, FLAG_ALIVE) && (!QUERY_FLAG(tmp, FLAG_NO_PICK) || QUERY_FLAG(tmp, FLAG_CAN_ROLL))) { /* If it has speed, it should move itself, otherwise: */ int i = object_find_free_spot(tmp, op->map, op->x, op->y, 1, 9); /* If there is a free spot, move the object someplace */ if (i != -1) { object_remove(tmp); object_insert_in_map_at(tmp, op->map, op, 0, op->x+freearr_x[i], op->y+freearr_y[i]); } } } /* See if there is still anything blocking the gate */ for (tmp = op->above; tmp != NULL; tmp = tmp->above) if (!QUERY_FLAG(tmp, FLAG_NO_PICK) || QUERY_FLAG(tmp, FLAG_CAN_ROLL) || QUERY_FLAG(tmp, FLAG_ALIVE)) break; /* IF there is, start putting the gate down */ if (tmp) { op->stats.food = 1; } else { op->move_block = MOVE_ALL; if (!op->arch->clone.stats.ac) SET_FLAG(op, FLAG_BLOCKSVIEW); update_all_los(op->map, op->x, op->y); } } /* gate is halfway up */ SET_ANIMATION(op, op->stats.wc); object_update(op, UP_OBJ_CHANGE); } /* gate is going up */ return METHOD_OK; } /** * Handle ob_process for all timed gate objects. * - hp : how long door is open/closed * - maxhp : initial value for hp * - sp : 1 = open, 0 = close * @param context The method context * @param op The timed gate that's being processed. * @return METHOD_OK * @todo Split function into more managable functions. */ static method_ret timed_gate_type_process(ob_methods *context, object *op) { int v = op->value; if (op->stats.sp) { gate_type_process(context, op); if (op->value != v) /* change direction ? */ op->stats.sp = 0; return METHOD_OK; } if (--op->stats.hp <= 0) { /* keep gate down */ gate_type_process(context, op); if (op->value != v) { /* ready ? */ op->speed = 0; object_update_speed(op); } } return METHOD_OK; } crossfire-1.70.0/types/sign/0000755000014500000120000000000011732537043012673 500000000000000crossfire-1.70.0/types/sign/sign.c0000644000014500000120000001017611731300534013714 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file sign.c * The implementation of the Sign class of objects. */ #include #include #include #include #include static void apply_sign(object *sign, object *op, int autoapply); static method_ret sign_type_apply(ob_methods *context, object *op, object *applier, int aflags); static method_ret sign_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the SIGN object type. */ void init_type_sign(void) { register_move_on(SIGN, sign_type_move_on); register_apply(SIGN, sign_type_apply); } /** * Handles applying a sign. * @param sign The sign applied * @param op The object applying the sign * @param autoapply Set this to 1 to automatically apply the sign */ static void apply_sign(object *sign, object *op, int autoapply) { const readable_message_type *msgType; if (sign->msg == NULL) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "Nothing is written on it."); return; } if (sign->stats.food) { if (sign->last_eat >= sign->stats.food) { if (!sign->move_on) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You cannot read it anymore."); return; } if (!QUERY_FLAG(op, FLAG_WIZPASS)) sign->last_eat++; } /* Sign or magic mouth? Do we need to see it, or does it talk to us? * No way to know for sure. The presumption is basically that if * move_on is zero, it needs to be manually applied (doesn't talk * to us). */ if (QUERY_FLAG(op, FLAG_BLIND) && !QUERY_FLAG(op, FLAG_WIZ) && !sign->move_on) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You are unable to read while blind."); return; } msgType = get_readable_message_type(sign); draw_ext_info(NDI_UNIQUE|NDI_NAVY, 0, op, msgType->message_type, msgType->message_subtype, sign->msg); } /** * Attempts to apply a sign. * @param context The method context * @param op The Sign to apply * @param applier The object attempting to apply the Sign * @param aflags Special flags (always apply/unapply) * @return The return value is always METHOD_OK */ static method_ret sign_type_apply(ob_methods *context, object *op, object *applier, int aflags) { apply_sign(op, applier, 0); return METHOD_OK; } /** * Move on this Sign object. * @param context The method context * @param trap The Sign we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret sign_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (victim->type != PLAYER && trap->stats.food > 0) { common_post_ob_move_on(trap, victim, originator); return METHOD_OK; /* monsters musn't apply magic_mouths with counters */ } apply_sign(trap, victim, 1); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/savebed/0000755000014500000120000000000011732537043013344 500000000000000crossfire-1.70.0/types/savebed/savebed.c0000644000014500000120000000644311731300535015041 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file savebed.c * The implementation of the Savebed class of objects. */ #include #include #include #include #include static method_ret savebed_type_apply(ob_methods *context, object *op, object *applier, int aflags); static void apply_savebed(object *pl); /** * Initializer for the SAVEBED object type. */ void init_type_savebed(void) { register_apply(SAVEBED, savebed_type_apply); } /** * Attempts to apply a savebed. * @param context The method context * @param op The savebed to apply * @param applier The object attempting to apply the savebed. Ignore if not * a player * @param aflags Special flags (always apply/unapply) * @return The return value is always METHOD_OK */ static method_ret savebed_type_apply(ob_methods *context, object *op, object *applier, int aflags) { if (applier->type == PLAYER) apply_savebed(applier); return METHOD_OK; } /** * Handle savebed. * * @param pl * player who is applying the bed. */ static void apply_savebed(object *pl) { /* What is otherwise happening is a brand new character goes to save, it seems to work, * but the character isn't actually saved as save_player() won't save characters * with 0 exp. Warn the player */ if (!pl->stats.exp) { draw_ext_info_format(NDI_UNIQUE | NDI_RED, 5, pl, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_LOADSAVE, "You need to earn some experience before you can save the character"); return; } /* Lauwenmark : Here we handle the LOGOUT global event */ execute_global_event(EVENT_LOGOUT, pl->contr, pl->contr->socket.host); /* Need to call pets_terminate_all() before we remove the player ob */ pets_terminate_all(pl); object_remove(pl); pl->direction = 0; draw_ext_info_format(NDI_UNIQUE|NDI_ALL|NDI_DK_ORANGE, 5, pl, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_PLAYER, "%s leaves the game.", pl->name); /* update respawn position */ strcpy(pl->contr->savebed_map, pl->map->path); pl->contr->bed_x = pl->x; pl->contr->bed_y = pl->y; strcpy(pl->contr->killer, "left"); hiscore_check(pl, 0); /* Always check score */ (void)save_player(pl, 0); party_leave(pl); #if MAP_MAXTIMEOUT MAP_SWAP_TIME(pl->map) = MAP_TIMEOUT(pl->map); #endif play_again(pl); pl->speed = 0; object_update_speed(pl); } crossfire-1.70.0/types/player_changer/0000755000014500000120000000000011732537043014716 500000000000000crossfire-1.70.0/types/player_changer/player_changer.c0000644000014500000120000000574111731300533017763 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of the PLAYER_CHANGER class of objects. */ #include #include #include #include #include static method_ret player_changer_type_process(ob_methods *context, object *op); /** * Initializer for the player changer object type. */ void init_type_player_changer(void) { register_process(PLAYER_CHANGER, player_changer_type_process); } /** * Move for ::PLAYER_CHANGER. * * This object will teleport someone to a different map * and will also apply changes to the player from its inventory. * * This was invented for giving classes, but there's no reason it * can't be generalized. * * @param context The method context * @param op The player changer that's being processed. * @return METHOD_OK */ static method_ret player_changer_type_process(ob_methods *context, object *op) { object *player; char c; if (!op->above || !EXIT_PATH(op)) return METHOD_OK; /* This isn't all that great - means that the player_mover * needs to be on top. */ if (op->above->type == PLAYER) { /* Lauwenmark: Handle for plugin TRIGGER event */ if (execute_event(op, EVENT_TRIGGER, op->above, NULL, NULL, SCRIPT_FIX_NOTHING) != 0) return METHOD_OK; player = op->above; FOR_INV_PREPARE(op, walk) apply_changes_to_player(player, walk, AC_PLAYER_STAT_LIMIT); FOR_INV_FINISH(); fix_object(player); esrv_send_inventory(op->above, op->above); esrv_update_item(UPD_FACE, op->above, op->above); /* update players death & WoR home-position */ sscanf(EXIT_PATH(op), "%c", &c); if (c == '/') { strcpy(player->contr->savebed_map, EXIT_PATH(op)); player->contr->bed_x = EXIT_X(op); player->contr->bed_y = EXIT_Y(op); } else LOG(llevDebug, "WARNING: destination '%s' in player_changer must be an absolute path!\n", EXIT_PATH(op)); enter_exit(op->above, op); save_player(player, 1); } return METHOD_OK; } crossfire-1.70.0/types/book/0000755000014500000120000000000011732537043012665 500000000000000crossfire-1.70.0/types/book/book.c0000644000014500000120000001231311731300533013672 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file book.c * The implementation of the Book class of objects. */ #include #include #include #include #include static method_ret book_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the BOOK object type. */ void init_type_book(void) { register_apply(BOOK, book_type_apply); } /** * Handles reading a regular (ie not containing a spell) book. * @param context The method context * @param op The Book to apply * @param applier The object attempting to apply the Book * @param aflags Special flags (always apply/unapply) * @retval METHOD_UNHANDLED If the Book wasn't read by a player * @retval METHOD_OK If applier was a player */ static method_ret book_type_apply(ob_methods *context, object *op, object *applier, int aflags) { int lev_diff; object *skill_ob; if (applier->type != PLAYER) return METHOD_UNHANDLED; if (QUERY_FLAG(applier, FLAG_BLIND) && !QUERY_FLAG(applier, FLAG_WIZ)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You are unable to read while blind."); return METHOD_OK; } if (op->msg == NULL) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You open the %s and find it empty.", op->name); return METHOD_OK; } /* need a literacy skill to read stuff! */ skill_ob = find_skill_by_name(applier, op->skill); if (!skill_ob) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You are unable to decipher the strange symbols."); return METHOD_OK; } lev_diff = op->level-(skill_ob->level+5); if (!QUERY_FLAG(applier, FLAG_WIZ) && lev_diff > 0) { if (lev_diff < 2) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "This book is just barely beyond your comprehension."); else if (lev_diff < 3) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "This book is slightly beyond your comprehension."); else if (lev_diff < 5) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "This book is beyond your comprehension."); else if (lev_diff < 8) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "This book is quite a bit beyond your comprehension."); else if (lev_diff < 15) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "This book is way beyond your comprehension."); else draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "This book is totally beyond your comprehension."); return METHOD_OK; } /* Lauwenmark: Handle for plugin book event */ /*printf("Book apply: %s\n", tmp->name); execute_event(tmp, EVENT_APPLY, op, NULL, SCRIPT_FIX_ALL); printf("Book applied: %s\n", tmp->name);*/ { char desc[MAX_BUF]; const readable_message_type *msgType = get_readable_message_type(op); draw_ext_info_format(NDI_UNIQUE|NDI_NAVY, 0, applier, msgType->message_type, msgType->message_subtype, "You open the %s and start reading.\n%s", ob_describe(op, applier, desc, sizeof(desc)), op->msg); if (applier->contr) knowledge_read(applier->contr, op); } /* gain xp from reading */ if (!QUERY_FLAG(op, FLAG_NO_SKILL_IDENT)) { /* only if not read before */ int exp_gain = calc_skill_exp(applier, op, skill_ob); if (!QUERY_FLAG(op, FLAG_IDENTIFIED)) { /*exp_gain *= 2; because they just identified it too */ SET_FLAG(op, FLAG_IDENTIFIED); /* If in a container, update how it looks */ if (op->env) esrv_update_item(UPD_FLAGS|UPD_NAME, applier, op); else applier->contr->socket.update_look = 1; } change_exp(applier, exp_gain, skill_ob->skill, 0); /* so no more xp gained from this book */ SET_FLAG(op, FLAG_NO_SKILL_IDENT); } return METHOD_OK; } crossfire-1.70.0/types/lighter/0000755000014500000120000000000011732537043013371 500000000000000crossfire-1.70.0/types/lighter/lighter.c0000644000014500000120000001046511731300534015111 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file lighter.c * Implementation of the Lighter class of objects. */ #include #include #include #include #include static method_ret lighter_type_apply(ob_methods *context, object *lighter, object *applier, int aflags); /** * Initializer for the LIGHTER object type. */ void init_type_lighter(void) { register_apply(LIGHTER, lighter_type_apply); } /** * Attempts to apply a lighter. * * Designed primarily to light torches/lanterns/etc. * Also burns up burnable material too. First object in the inventory is * the selected object to "burn". -b.t. * * @param context * method context. * @param lighter * lighter to apply. * @param applier * object attempting to apply the lighter. * @param aflags * special flags (always apply/unapply). * @return * METHOD_UNHANDLED if the applier is not a player, METHOD_OK else.. */ static method_ret lighter_type_apply(ob_methods *context, object *lighter, object *applier, int aflags) { object *item; int is_player_env = 0; uint32 nrof; tag_t count; char item_name[MAX_BUF]; if (applier->type != PLAYER) return METHOD_UNHANDLED; item = find_marked_object(applier); if (!item) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You need to mark a lightable object."); return METHOD_OK; } if (lighter->last_eat && lighter->stats.food) { /* Split multiple lighters if they're being used up. Otherwise * one charge from each would be used up. --DAMN */ if (lighter->nrof > 1) { object *oneLighter = object_split(lighter, 1, NULL, 0); oneLighter->stats.food--; oneLighter = object_insert_in_ob(oneLighter, applier); } else { lighter->stats.food--; } } else if (lighter->last_eat) { /* no charges left in lighter */ draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You fail to light the %s with a used up %s.", item->name, lighter->name); return METHOD_OK; } /* Perhaps we should split what we are trying to light on fire? * I can't see many times when you would want to light multiple * objects at once. */ nrof = item->nrof; count = item->count; /* If the item is destroyed, we don't have a valid pointer to the * name object, so make a copy so the message we print out makes * some sense. */ strncpy(item_name, item->name, sizeof(item_name)); if (applier == object_get_player_container(item)) is_player_env = 1; save_throw_object(item, AT_FIRE, applier); /* Change to check count and not freed, since the object pointer * may have gotten recycled */ if ((nrof != item->nrof) || (count != item->count)) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You light the %s with the %s.", item_name, lighter->name); /* Need to update the player so that the players glow radius * gets changed. */ if (is_player_env) fix_object(applier); } else { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You attempt to light the %s with the %s and fail.", item->name, lighter->name); } return METHOD_OK; } crossfire-1.70.0/types/marker/0000755000014500000120000000000011732537043013214 500000000000000crossfire-1.70.0/types/marker/marker.c0000644000014500000120000001052111731300533014547 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of @ref page_type_55 "marker" objects. */ #include #include #include #include #include static method_ret marker_type_process(ob_methods *context, object *op); static method_ret marker_type_trigger(ob_methods *context, object *op, object *cause, int state); /** * Initializer for the @ref page_type_55 "marker" object type. */ void init_type_marker(void) { register_process(MARKER, marker_type_process); register_trigger(TRIGGER_MARKER, marker_type_trigger); } /** * Move function for @ref page_type_55 "marker" objects. * * When moved, a marker will search for a player sitting above * it, and insert an invisible, weightless force into him * with a specific code as the slaying field. * * At that time, it writes the contents of its own message * field to the player. The marker will decrement hp to * 0 and then delete itself every time it grants a mark. * unless hp was zero to start with, in which case it is infinite. * @author peterm@soda.csua.berkeley.edu * * @param op * marker to move. Can be removed if it reached its marking limit. */ void move_marker(object *op) { object *tmp, *tmp2; /* * markers not on a map for any reason should not crash server */ if (!op->map) { return; } for (tmp = GET_MAP_OB(op->map, op->x, op->y); tmp != NULL; tmp = tmp->above) { if (tmp->type == PLAYER) { /* we've got someone to MARK */ /* cycle through his inventory to look for the MARK we want to * place */ tmp2 = object_find_by_type_and_slaying(tmp, FORCE, op->slaying); /* if we didn't find our own MARK */ if (tmp2 == NULL) { object *force = create_archetype(FORCE_NAME); force->speed = 0; if (op->stats.food) { force->speed = 0.01; force->speed_left = -op->stats.food; } object_update_speed(force); /* put in the lock code */ force->slaying = add_string(op->slaying); if (op->lore) force->lore = add_string(op->lore); object_insert_in_ob(force, tmp); if (op->msg) draw_ext_info(NDI_UNIQUE|NDI_NAVY, 0, tmp, MSG_TYPE_MISC, MSG_SUBTYPE_NONE, op->msg); if (op->stats.hp > 0) { op->stats.hp--; if (op->stats.hp == 0) { /* marker expires--granted mark number limit */ object_remove(op); object_free_drop_inventory(op); return; } } } /* if tmp2 == NULL */ } /* if tmp->type == PLAYER */ } /* For all objects on this space */ } /** * Processes a @ref page_type_55 "marker". * @param context The method context * @param op The marker to process * @retval METHOD_OK */ static method_ret marker_type_process(ob_methods *context, object *op) { move_marker(op); return METHOD_OK; } /** * A @ref page_type_55 "marker" is triggered. * @param context Ignored. * @param op The object being triggered * @param cause Ignored. * @param state Ignored. * @retval METHOD_OK */ static method_ret marker_type_trigger(ob_methods *context, object *op, object *cause, int state) { move_marker(op); return METHOD_OK; } crossfire-1.70.0/types/spellbook/0000755000014500000120000000000011732537043013725 500000000000000crossfire-1.70.0/types/spellbook/spellbook.c0000644000014500000120000002050211731300534015772 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file spellbook.c * Implimentation of spellbooks. */ #include #include #include #include #include #include "living.h" static method_ret spellbook_type_apply(ob_methods *context, object *lighter, object *applier, int aflags); /** * Initializer for the SPELLBOOK object type. */ void init_type_spellbook(void) { register_apply(SPELLBOOK, spellbook_type_apply); } /** * Applies a spellbook. * Checks whether player has knowledge of required skill, doesn't * already know the spell, stuff like that. Random learning failure too. * @param context * method context. * @param book * Spellbook to apply. * @param applier * object attempting to apply the spellbook. Should be a player. * @param aflags * special flags (always apply/unapply). * @return * METHOD_OK always. * * @todo * handle failure differently for praying/magic. * @todo * split into multiple functions */ static method_ret spellbook_type_apply(ob_methods *context, object *book, object *applier, int aflags) { object *skapplier, *spell, *spell_skill; int read_level; char level[100]; /* Must be applied by a player. */ if (applier->type == PLAYER) { if (QUERY_FLAG(applier, FLAG_BLIND) && !QUERY_FLAG(applier, FLAG_WIZ)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You are unable to read while blind."); return METHOD_OK; } skapplier = find_skill_by_name(applier, book->skill); /* need a literacy skill to learn spells. Also, having a literacy level * lower than the spell will make learning the spell more difficult */ if (!skapplier) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You can't read! Your attempt fails."); return METHOD_OK; } read_level = skapplier->level; spell = book->inv; if (!spell) { LOG(llevError, "apply_spellbook: Book %s has no spell in it!\n", book->name); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The spellbook symbols make no sense."); return METHOD_OK; } if (QUERY_FLAG(book, FLAG_CURSED) || QUERY_FLAG(book, FLAG_DAMNED)) { char name[MAX_BUF]; /* Player made a mistake, let's shake her/him :) */ int failure = -35; if (settings.spell_failure_effects == TRUE) failure = -rndm(35, 100); query_name(book, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "The %s was %s!", name, QUERY_FLAG(book, FLAG_DAMNED) ? "damned" : "cursed"); scroll_failure(applier, failure, (spell->level+4)*7); if (QUERY_FLAG(book, FLAG_DAMNED) && check_spell_known(applier, spell->name) && die_roll(1, 10, applier, 1) < 2) /* Really unlucky player, better luck next time */ do_forget_spell(applier, spell->name); book = object_decrease_nrof_by_one(book); if (book && (!QUERY_FLAG(book, FLAG_IDENTIFIED))) { /* Well, not everything is lost, player now knows the * book is cursed/damned. */ book = identify(book); if (book->env) esrv_update_item(UPD_FLAGS|UPD_NAME, applier, book); else applier->contr->socket.update_look = 1; } return METHOD_OK; } if (QUERY_FLAG(book, FLAG_BLESSED)) read_level += 5; if (spell->level > (read_level+10)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You are unable to decipher the strange symbols."); return METHOD_OK; } get_levelnumber(spell->level, level, sizeof(level)); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The spellbook contains the %s level spell %s.", level, spell->name); if (!QUERY_FLAG(book, FLAG_IDENTIFIED)) { book = identify(book); if (book->env) esrv_update_item(UPD_FLAGS|UPD_NAME, applier, book); else applier->contr->socket.update_look = 1; spell = book->inv; } /* I removed the check for special_prayer_mark here - it didn't make * a lot of sense - special prayers are not found in spellbooks, and * if the player doesn't know the spell, doesn't make a lot of sense * that they would have a special prayer mark. */ if (check_spell_known(applier, spell->name)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You already know that spell.\n"); return METHOD_OK; } if (spell->skill) { spell_skill = find_skill_by_name(applier, spell->skill); if (!spell_skill) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You lack the skill %s to use this spell", spell->skill); return METHOD_OK; } if (spell_skill->level < spell->level) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You need to be level %d in %s to learn this spell.", spell->level, spell->skill); return METHOD_OK; } } /* Logic as follows * * 1- MU spells use Int to learn, Cleric spells use Wisdom * * 2- The learner's skill level in literacy adjusts the chance * to learn a spell. * * 3 -Automatically fail to learn if you read while confused * * Overall, chances are the same but a player will find having a high * literacy rate very useful! -b.t. */ if (QUERY_FLAG(applier, FLAG_CONFUSED)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "In your confused state you flub the wording of the text!"); scroll_failure(applier, 0-random_roll(0, spell->level, applier, PREFER_LOW), MAX(spell->stats.sp, spell->stats.grace)); } else if (QUERY_FLAG(book, FLAG_STARTEQUIP) || (random_roll(0, 100, applier, PREFER_LOW)-(5*read_level)) < get_learn_spell(spell->stats.grace ? applier->stats.Wis : applier->stats.Int)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You succeed in learning the spell!"); do_learn_spell(applier, spell, 0); /* xp gain to literacy for spell learning */ if (!QUERY_FLAG(book, FLAG_STARTEQUIP)) change_exp(applier, calc_skill_exp(applier, book, skapplier), skapplier->skill, 0); } else { play_sound_player_only(applier->contr, SOUND_TYPE_SPELL, book, 0, "fumble"); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You fail to learn the spell.\n"); } object_decrease_nrof_by_one(book); } return METHOD_OK; } crossfire-1.70.0/types/trigger_pedestal/0000755000014500000120000000000011732537043015257 500000000000000crossfire-1.70.0/types/trigger_pedestal/trigger_pedestal.c0000644000014500000120000000402311731300534020656 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file trigger_pedestal.c * The implementation of the Trigger-Pedestal class of objects. */ #include #include #include #include #include static method_ret trigger_pedestal_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the TRIGGER_PEDESTAL object type. */ void init_type_trigger_pedestal(void) { register_move_on(TRIGGER_PEDESTAL, trigger_pedestal_type_move_on); } /** * Move on this Trigger Pedestal object. * @param context The method context * @param trap The Trigger Pedestal we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret trigger_pedestal_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { trap = HEAD(trap); if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; check_trigger(trap, victim); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/trigger_altar/0000755000014500000120000000000011732537043014561 500000000000000crossfire-1.70.0/types/trigger_altar/trigger_altar.c0000644000014500000120000000376511731300534017476 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file trigger_altar.c * The implementation of the Trigger-Altar class of objects. */ #include #include #include #include #include static method_ret trigger_altar_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the TRIGGER_ALTAR object type. */ void init_type_trigger_altar(void) { register_move_on(TRIGGER_ALTAR, trigger_altar_type_move_on); } /** * Move on this Trigger Altar object. * @param context The method context * @param trap The Trigger Altar we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret trigger_altar_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { trap = HEAD(trap); if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; check_trigger(trap, victim); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/detector/0000755000014500000120000000000011732537043013544 500000000000000crossfire-1.70.0/types/detector/detector.c0000644000014500000120000000715711731300534015443 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of @ref page_type_51 "detector" objects. */ #include #include #include #include #include static method_ret detector_type_process(ob_methods *context, object *op); /** * Initializer for the @ref page_type_51 "detector" object type. */ void init_type_detector(void) { register_process(DETECTOR, detector_type_process); } /** * Move a @ref page_type_51 "detector". * * - slaying: name of the thing the detector is to look for * - speed: frequency of 'glances' * - connected: connected value of detector * - sp: 1 if detection sets buttons * -1 if detection unsets buttons * * @param op * detector to move. */ static void move_detector(object *op) { object *tmp; int last = op->value; int detected; detected = 0; if (!op->slaying) { if (op->map) LOG(llevError, "Detector with no slaying set at %s (%d,%d)\n", op->map->path, op->x, op->y); else if (op->env) LOG(llevError, "Detector with no slaying in %s\n", op->env->name); else LOG(llevError, "Detector with no slaying nowhere?\n"); op->speed = 0; object_update_speed(op); return; } for (tmp = GET_MAP_OB(op->map, op->x, op->y); tmp != NULL; tmp = tmp->above) { if (op->stats.hp) { if (object_find_by_name(tmp, op->slaying) != NULL || object_find_by_type_and_slaying(tmp, FORCE, op->slaying)) { detected = 1; break; } } if (op->slaying == tmp->name) { detected = 1; break; } if (tmp->type == PLAYER && !strcmp(op->slaying, "player")) { detected = 1; break; } if (tmp->type == SPECIAL_KEY && tmp->slaying == op->slaying) { detected = 1; break; } } /* the detector sets the button if detection is found */ if (op->stats.sp == 1) { if (detected && last == 0) { op->value = 1; push_button(op); } if (!detected && last == 1) { op->value = 0; push_button(op); } } else { /* in this case, we unset buttons */ if (detected && last == 1) { op->value = 0; push_button(op); } if (!detected && last == 0) { op->value = 1; push_button(op); } } } /** * Processes a @ref page_type_51 "detector". * @param context The method context, ignored * @param op The detector to process * @retval METHOD_OK */ static method_ret detector_type_process(ob_methods *context, object *op) { move_detector(op); return METHOD_OK; } crossfire-1.70.0/types/exit/0000755000014500000120000000000011732537043012704 500000000000000crossfire-1.70.0/types/exit/exit.c0000644000014500000120000001502411731300535013734 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file * The implementation of the Exit class of objects. */ #include #include #include #include #include static method_ret exit_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); static method_ret exit_type_apply(ob_methods *context, object *exit, object *op, int autoapply); /** * Initializer for the EXIT object type. */ void init_type_exit(void) { register_move_on(EXIT, exit_type_move_on); register_apply(EXIT, exit_type_apply); } /** * Move on this Exit object. * @param context The method context * @param trap The Exit we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret exit_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (victim->type == PLAYER && EXIT_PATH(trap)) { /* Basically, don't show exits leading to random maps the * players output. */ if (trap->msg && strncmp(EXIT_PATH(trap), "/!", 2) && strncmp(EXIT_PATH(trap), "/random/", 8)) draw_ext_info(NDI_NAVY, 0, victim, MSG_TYPE_APPLY, MSG_TYPE_APPLY_TRAP, trap->msg); enter_exit(victim, trap); } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } /** * This fonction return true if the exit is not a 2 ways one * or it is 2 ways, valid exit. * A valid 2 way exit means: * - You can come back (there is another exit at the other side) * - You are * - the owner of the exit * - or in the same party as the owner * * @note * a owner in a 2 way exit is saved as the owner's name * in the field exit->name cause the field exit->owner doesn't * survive in the swapping (in fact the whole exit doesn't survive). * * @param op * player to check for. * @param exit * exit object. * @return * 1 if exit is not 2 way, 0 else. */ static int is_legal_2ways_exit(object *op, object *exit) { object *tmp; object *exit_owner; player *pp; mapstruct *exitmap; if (exit->stats.exp != 1) return 1; /*This is not a 2 way, so it is legal*/ if (!has_been_loaded(EXIT_PATH(exit)) && exit->race) return 0; /* This is a reset town portal */ /* To know if an exit has a correspondant, we look at * all the exits in destination and try to find one with same path as * the current exit's position */ if (!strncmp(EXIT_PATH(exit), settings.localdir, strlen(settings.localdir))) exitmap = ready_map_name(EXIT_PATH(exit), MAP_PLAYER_UNIQUE); else exitmap = ready_map_name(EXIT_PATH(exit), 0); if (exitmap) { tmp = GET_MAP_OB(exitmap, EXIT_X(exit), EXIT_Y(exit)); if (!tmp) return 0; for ((tmp = GET_MAP_OB(exitmap, EXIT_X(exit), EXIT_Y(exit))); tmp; tmp = tmp->above) { if (tmp->type != EXIT) continue; /*Not an exit*/ if (!EXIT_PATH(tmp)) continue; /*Not a valid exit*/ if ((EXIT_X(tmp) != exit->x) || (EXIT_Y(tmp) != exit->y)) continue; /*Not in the same place*/ if (strcmp(exit->map->path, EXIT_PATH(tmp)) != 0) continue; /*Not in the same map*/ /* From here we have found the exit is valid. However * we do here the check of the exit owner. It is important * for the town portals to prevent strangers from visiting * your apartments */ if (!exit->race) return 1; /*No owner, free for all!*/ exit_owner = NULL; for (pp = first_player; pp; pp = pp->next) { if (!pp->ob) continue; if (pp->ob->name != exit->race) continue; exit_owner = pp->ob; /*We found a player which correspond to the player name*/ break; } if (!exit_owner) return 0; /* No more owner*/ if (exit_owner->contr == op->contr) return 1; /*It is your exit*/ if (exit_owner /*There is a owner*/ && (op->contr) /*A player tries to pass */ && ((exit_owner->contr->party == NULL) /*No pass if controller has no party*/ || (exit_owner->contr->party != op->contr->party))) /* Or not the same as op*/ return 0; return 1; } } return 0; } /** * Handles applying an exit. * @param context The method context * @param exit The exit applied * @param op The object applying the exit * @param autoapply Set this to 1 to automatically apply the sign * @return METHOD_OK unless op is not a player, in which case METHOD_ERROR */ static method_ret exit_type_apply(ob_methods *context, object *exit, object *op, int autoapply) { if (op->type != PLAYER) return METHOD_ERROR; if (!EXIT_PATH(exit) || !is_legal_2ways_exit(op, exit)) { char name[MAX_BUF]; query_name(exit, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The %s is closed.", name); } else { /* Don't display messages for random maps. */ if (exit->msg && strncmp(EXIT_PATH(exit), "/!", 2) && strncmp(EXIT_PATH(exit), "/random/", 8)) draw_ext_info(NDI_NAVY, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, exit->msg); enter_exit(op, exit); } return METHOD_OK; } crossfire-1.70.0/types/trigger/0000755000014500000120000000000011732537043013376 500000000000000crossfire-1.70.0/types/trigger/trigger.c0000644000014500000120000000527511731300534015126 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file trigger.c * The implementation of the Trigger class of objects. * Triggers are things like handles in the game. */ #include #include #include #include #include static method_ret trigger_type_apply(ob_methods *context, object *op, object *applier, int aflags); static method_ret trigger_type_process(ob_methods *context, object *op); /** * Initializer for the TRIGGER object type. */ void init_type_trigger(void) { register_apply(TRIGGER, trigger_type_apply); register_process(TRIGGER, trigger_type_process); } /** * Attempts to apply a trigger. * @param context The method context * @param op The Trigger to apply * @param applier The object attempting to apply the Trigger * @param aflags Special flags (always apply/unapply) * @return The return value is always 1 */ static method_ret trigger_type_apply(ob_methods *context, object *op, object *applier, int aflags) { if (check_trigger(op, applier)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You turn the handle."); play_sound_map(SOUND_TYPE_GROUND, op, 0, "turn handle"); } else { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The handle doesn't move."); } return 1; } /** * Processes a Trigger. * @param context The method context * @param op The Trigger to process * @return Always METHOD_OK */ static method_ret trigger_type_process(ob_methods *context, object *op) { if ((unsigned char)++op->stats.wc >= NUM_ANIMATIONS(op)) { op->stats.wc = 0; check_trigger(op, NULL); } else { SET_ANIMATION(op, op->stats.wc); object_update(op, UP_OBJ_FACE); } return METHOD_OK; } crossfire-1.70.0/types/cf_handle/0000755000014500000120000000000011732537043013636 500000000000000crossfire-1.70.0/types/cf_handle/cf_handle.c0000644000014500000120000000403611731300533015617 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file cf_handle.c * The implementation of the CF_Handle class of objects. */ #include #include #include #include #include static method_ret cf_handle_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the CF_HANDLE object type. */ void init_type_cf_handle(void) { register_apply(CF_HANDLE, cf_handle_type_apply); } /** * Attempts to apply a handle. * @param context The method context * @param op The handle to apply * @param applier The object attempting to apply the handle. * @param aflags Special flags (always apply/unapply) * @return The return value is always METHOD_OK */ static method_ret cf_handle_type_apply(ob_methods *context, object *op, object *applier, int aflags) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You turn the handle."); play_sound_map(SOUND_TYPE_ITEM, op, 0, "turn handle"); op->value = op->value ? 0 : 1; SET_ANIMATION(op, op->value); object_update(op, UP_OBJ_FACE); push_button(op); return METHOD_OK; } crossfire-1.70.0/types/deep_swamp/0000755000014500000120000000000011732537043014057 500000000000000crossfire-1.70.0/types/deep_swamp/deep_swamp.c0000644000014500000120000001214111731300534016256 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file deep_swamp.c * The implementation of the Deep Swamp class of objects. */ #include #include #include #include #include static method_ret deep_swamp_type_process(ob_methods *context, object *op); static method_ret deep_swamp_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the DEEP_SWAMP object type. */ void init_type_deep_swamp(void) { register_move_on(DEEP_SWAMP, deep_swamp_type_move_on); register_process(DEEP_SWAMP, deep_swamp_type_process); } /** * Processes a Deep Swamp. * @param context The method context * @param op The swamp to process * @return Always METHOD_OK */ static method_ret deep_swamp_type_process(ob_methods *context, object *op) { object *above = op->above; object *nabove; int got_player = 0; while (above) { nabove = above->above; if (above->type == PLAYER && !(above->move_type&MOVE_FLYING) && above->stats.hp >= 0 && !QUERY_FLAG(above, FLAG_WIZ)) { object *woodsman = object_find_by_type_subtype(above, SKILL, SK_WOODSMAN); got_player = 1; if (op->stats.food < 1) { LOG(llevDebug, "move_deep_swamp(): player is here, but state is %d\n", op->stats.food); op->stats.food = 1; } if (op->stats.food < 10) { if (rndm(0, 2) == 0) { draw_ext_info_format(NDI_UNIQUE, 0, above, MSG_TYPE_VICTIM, MSG_TYPE_VICTIM_SWAMP, "You are down to your waist in the wet %s.", op->name); op->stats.food = woodsman ? op->stats.food+1 : 10; above->speed_left -= op->move_slow_penalty; } } else if (op->stats.food < 20) { if (rndm(0, 2) == 0) { draw_ext_info_format(NDI_UNIQUE|NDI_RED, 0, above, MSG_TYPE_VICTIM, MSG_TYPE_VICTIM_SWAMP, "You are down to your NECK in the dangerous %s.", op->name); op->stats.food = woodsman ? op->stats.food+1 : 20; snprintf(above->contr->killer, sizeof(above->contr->killer), "drowning in a %s", op->name); above->stats.hp--; above->speed_left -= op->move_slow_penalty; } } else if (rndm(0, 4) == 0) { op->stats.food = 0; draw_ext_info_format(NDI_UNIQUE|NDI_ALL, 1, NULL, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_PLAYER, "%s disappeared into a %s.", above->name, op->name); snprintf(above->contr->killer, sizeof(above->contr->killer), "drowning in a %s", op->name); above->stats.hp = -1; kill_player(above, op); /* player dies in the swamp */ } } else if (!QUERY_FLAG(above, FLAG_ALIVE) && !(above->move_type&MOVE_FLYING) && !(QUERY_FLAG(above, FLAG_IS_FLOOR)) && !(QUERY_FLAG(above, FLAG_OVERLAY_FLOOR)) && !(QUERY_FLAG(above, FLAG_NO_PICK))) { if (rndm(0, 2) == 0) object_decrease_nrof_by_one(above); } above = nabove; } if (!got_player) op->stats.food = 1; return METHOD_OK; } /** * Move on this Deep Swamp object. * @param context The method context * @param trap The Deep Swamp we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret deep_swamp_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (victim->type == PLAYER && victim->stats.hp >= 0 && !(victim->move_type&MOVE_FLYING)) { draw_ext_info_format(NDI_UNIQUE, 0, victim, MSG_TYPE_VICTIM, MSG_TYPE_VICTIM_SWAMP, "You are down to your knees in the %s.", trap->name); trap->stats.food = 1; victim->speed_left -= trap->move_slow_penalty; } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/converter/0000755000014500000120000000000011732537043013742 500000000000000crossfire-1.70.0/types/converter/converter.c0000644000014500000120000001453611731300534016036 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file converter.c * The implementation of the Converter class of objects. */ #include #include #include #include #include /* * convert_item() returns 1 if anything was converted, 0 if the item was not * what the converter wants, -1 if the converter is broken. */ #define CONV_FROM(xyz) xyz->slaying #define CONV_TO(xyz) xyz->other_arch #define CONV_NR(xyz) (unsigned char)xyz->stats.sp #define CONV_NEED(xyz) (unsigned long)xyz->stats.food static int convert_item(object *item, object *converter); static method_ret converter_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the CONVERTER object type. */ void init_type_converter(void) { register_move_on(CONVERTER, converter_type_move_on); } /** * Transforms an item into another item. * @param item The object that triggered the converter - if it isn't of a type * accepted by the converter, nothing will happen * @param converter The object that is doing the conversion * @retval -1 If something went wrong when attempting the conversion * @retval 0 If the item was not converted * @retval 1 If the item got converted */ static int convert_item(object *item, object *converter) { int nr = 0; uint32 price_in; /* We make some assumptions - we assume if it takes money as it type, * it wants some amount. We don't make change (ie, if something costs * 3 gp and player drops a platinum, tough luck) */ if (!strcmp(CONV_FROM(converter), "money")) { int cost; if (item->type != MONEY) return 0; nr = (item->nrof*item->value)/CONV_NEED(converter); if (!nr) return 0; cost = nr*CONV_NEED(converter)/item->value; /* take into account rounding errors */ if (nr*CONV_NEED(converter)%item->value) cost++; object_decrease_nrof(item, cost); price_in = cost*item->value; } else { if (item->type == PLAYER || CONV_FROM(converter) != item->arch->name || (CONV_NEED(converter) && CONV_NEED(converter) > item->nrof)) return 0; /* silently burn unpaid items (only if they match what we want) */ if (QUERY_FLAG(item, FLAG_UNPAID)) { object_remove(item); object_free_drop_inventory(item); item = create_archetype("burnout"); if (item != NULL) object_insert_in_map_at(item, converter->map, converter, 0, converter->x, converter->y); return 1; } if (CONV_NEED(converter)) { nr = item->nrof/CONV_NEED(converter); object_decrease_nrof(item, nr*CONV_NEED(converter)); price_in = nr*CONV_NEED(converter)*item->value; } else { price_in = item->value; object_remove(item); object_free_drop_inventory(item); } } if (converter->inv != NULL) { int i; object *ob_to_copy; /* select random object from inventory to copy */ ob_to_copy = converter->inv; i = 1; FOR_BELOW_PREPARE(converter->inv, ob) { if (rndm(0, i) == 0) ob_to_copy = ob; i++; } FOR_BELOW_FINISH(); item = object_create_clone(ob_to_copy); CLEAR_FLAG(item, FLAG_IS_A_TEMPLATE); object_unset_flag_inv(item, FLAG_IS_A_TEMPLATE); } else { if (converter->other_arch == NULL) { LOG(llevError, "move_creator: Converter doesn't have other arch set: %s (%s, %d, %d)\n", converter->name ? converter->name : "(null)", converter->map->path, converter->x, converter->y); return -1; } item = object_create_arch(converter->other_arch); fix_generated_item(item, converter, 0, 0, GT_MINIMAL); } if (CONV_NR(converter)) item->nrof = CONV_NR(converter); if (nr) item->nrof *= nr; if (item->type != MONEY && is_in_shop(converter)) SET_FLAG(item, FLAG_UNPAID); else if (price_in < item->nrof*item->value && settings.allow_broken_converters == FALSE) { LOG(llevError, "Broken converter %s at %s (%d, %d) in value %d, out value %d for %s\n", converter->name, converter->map->path, converter->x, converter->y, price_in, item->nrof*item->value, item->name); object_free_drop_inventory(item); return -1; } object_insert_in_map_at(item, converter->map, converter, 0, converter->x, converter->y); return 1; } /** * Move on this Converter object. * @param context The method context * @param trap The Converter we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret converter_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (convert_item(victim, trap) < 0) { object *op; char name[MAX_BUF]; query_name(trap, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The %s seems to be broken!", name); op = create_archetype("burnout"); if (op != NULL) object_insert_in_map_at(op, trap->map, trap, 0, trap->x, trap->y); } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/trap/0000755000014500000120000000000011732537043012701 500000000000000crossfire-1.70.0/types/trap/trap.c0000644000014500000120000000243611731300533013727 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file trap.c * The implementation of the Trap class of objects. */ #include #include #include #include #include /** * Initializer for the TRAP object type. */ void init_type_trap(void) { register_move_on(TRAP, common_trap_type_move_on); register_process(TRAP, common_trap_type_process); } crossfire-1.70.0/types/trap/rune.c0000644000014500000120000000242711731300533013732 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file * The implementation of the Rune class of objects. */ #include #include #include #include #include /** * Initializer for the RUNE object type. */ void init_type_rune(void) { register_move_on(RUNE, common_trap_type_move_on); register_process(RUNE, common_trap_type_process); } crossfire-1.70.0/types/trap/common_trap.c0000644000014500000120000000563111731300533015277 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file common_trap.c * Common code for traps and runes. */ #include #include #include #include #include /** * Move on this Rune or Trap object. * @param context The method context * @param trap The rune or trap we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ method_ret common_trap_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (trap->level && QUERY_FLAG(victim, FLAG_ALIVE)) spring_trap(trap, victim); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } /** * Processes a Rune or Trap. * Comments on runes (and traps): * rune->level : level at which rune will cast its spell. * rune->hp : number of detonations before rune goes away * rune->msg : message the rune displays when it goes off * rune->direction : direction it will cast a spell in * rune->dam : damage the rune will do if it doesn't cast spells * rune->attacktype: type of damage it does, if not casting spells * rune->other_arch: spell in the rune * rune->Cha : how hidden the rune is * rune->maxhp : number of spells the rune casts * @param context The method context * @param op The rune or trap to process * @return Always METHOD_OK */ method_ret common_trap_type_process(ob_methods *context, object *op) { int det = 0; if (!op->level) { return METHOD_OK; /* runes of level zero cannot detonate. */ } det = op->invisible; if (!(rndm(0, MAX(1, (op->stats.Cha))-1))) { op->invisible = 0; op->speed_left -= 1; } else op->invisible = 1; if (op->invisible != det) object_update(op, UP_OBJ_FACE); return METHOD_OK; } crossfire-1.70.0/types/button/0000755000014500000120000000000011732537043013246 500000000000000crossfire-1.70.0/types/button/button.c0000644000014500000120000000360711731300535014644 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file * The implementation of the Button class of objects. */ #include #include #include #include #include static method_ret button_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the BUTTON object type. */ void init_type_button(void) { register_move_on(BUTTON, button_type_move_on); } /** * Move on this Button object. * @param context The method context * @param trap The Button we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret button_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; update_button(trap); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/mood_floor/0000755000014500000120000000000011732537043014072 500000000000000crossfire-1.70.0/types/mood_floor/mood_floor.c0000644000014500000120000001253111731300534016307 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of @ref page_type_65 "mood floor" objects. */ #include #include #include #include #include static method_ret mood_floor_type_process(ob_methods *context, object *op); static method_ret mood_floor_type_trigger(ob_methods *context, object *op, object *cause, int state); /** * Initializer for the @ref page_type_65 "mood floor" object type. */ void init_type_mood_floor(void) { register_process(MOOD_FLOOR, mood_floor_type_process); register_trigger(MOOD_FLOOR, mood_floor_type_trigger); } /** * Main function for @ref page_type_65 "mood floor" objects. * * This routine makes monsters who are * standing on the 'mood floor' change their * disposition if it is different. * If floor is to be triggered must have * a speed of zero (default is 1 for all * but the charm floor type). * by b.t. thomas@nomad.astro.psu.edu * @param op * floor that activates * @param op2 * object that caused op to activate. Should be either op (for floors with speed), or * a connected button a player pushed. Must not be NULL. Will be used for charming floors * to locate the player the monster will become a pet of. */ static void do_mood_floor(object *op, object *op2) { object *tmp; object *tmp2; if (op->map == NULL) { LOG(llevError, "mood floor not in a map but in %s\n", op->env ? op->env->name : "null??"); op->speed = 0; object_update_speed(op); return; } tmp = map_find_by_flag(op->map, op->x, op->y, FLAG_MONSTER); /* doesn't effect players, and if there is a player on this space, won't also * be a monster here. */ if (!tmp || tmp->type == PLAYER) return; switch (op->last_sp) { case 0: /* furious--make all monsters mad */ if (QUERY_FLAG(tmp, FLAG_UNAGGRESSIVE)) CLEAR_FLAG(tmp, FLAG_UNAGGRESSIVE); if (QUERY_FLAG(tmp, FLAG_FRIENDLY)) { CLEAR_FLAG(tmp, FLAG_FRIENDLY); remove_friendly_object(tmp); tmp->attack_movement = 0; /* lots of checks here, but want to make sure we don't * dereference a null value */ if (tmp->type == GOLEM) { object *owner; owner = object_get_owner(tmp); if (owner != NULL && owner->type == PLAYER && owner->contr->ranges[range_golem] == tmp) { owner->contr->ranges[range_golem] = NULL; owner->contr->golem_count = 0; } } object_clear_owner(tmp); } break; case 1: /* angry -- get neutral monsters mad */ if (QUERY_FLAG(tmp, FLAG_UNAGGRESSIVE) && !QUERY_FLAG(tmp, FLAG_FRIENDLY)) CLEAR_FLAG(tmp, FLAG_UNAGGRESSIVE); break; case 2: /* calm -- pacify unfriendly monsters */ if (!QUERY_FLAG(tmp, FLAG_UNAGGRESSIVE)) { SET_FLAG(tmp, FLAG_UNAGGRESSIVE); object_set_enemy(tmp, NULL); } break; case 3: /* make all monsters fall asleep */ if (!QUERY_FLAG(tmp, FLAG_SLEEP)) SET_FLAG(tmp, FLAG_SLEEP); break; case 4: /* charm all monsters */ if (op == op2) break; /* only if 'connected' */ for (tmp2 = GET_MAP_OB(op2->map, op2->x, op2->y); tmp2->type != PLAYER; tmp2 = tmp2->above) if (tmp2->above == NULL) break; if (tmp2->type != PLAYER) break; object_set_owner(tmp, tmp2); SET_FLAG(tmp, FLAG_MONSTER); tmp->stats.exp = 0; SET_FLAG(tmp, FLAG_FRIENDLY); add_friendly_object(tmp); tmp->attack_movement = PETMOVE; break; default: break; } } /** * Processes a @ref page_type_65 "mood floor". * @param context The method context * @param op The mood_floor to process * @retval METHOD_OK */ static method_ret mood_floor_type_process(ob_methods *context, object *op) { do_mood_floor(op, op); return METHOD_OK; } /** * A @ref page_type_65 "mood floor" is triggered. * @param context Ignored. * @param op The object being triggered * @param cause Ignored. * @param state Ignored. * @retval METHOD_OK */ static method_ret mood_floor_type_trigger(ob_methods *context, object *op, object *cause, int state) { do_mood_floor(op, cause); return METHOD_OK; } crossfire-1.70.0/types/power_crystal/0000755000014500000120000000000011732537043014630 500000000000000crossfire-1.70.0/types/power_crystal/power_crystal.c0000644000014500000120000000527511731300534017612 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file power_crystal.c * The implementation of a Power Crystal. * A Power Crystal can store mana from a player, and give it back when needed. */ #include #include #include #include static method_ret power_crystal_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the POWER_CRYSTAL object type. */ void init_type_power_crystal(void) { register_apply(POWER_CRYSTAL, power_crystal_type_apply); register_describe(POWER_CRYSTAL, common_ob_describe); } /** * This function handles the application of power crystals. * Power crystals, when applied, either suck power from the applier, * if he's at full spellpoints, or gives him power, if it's got * spellpoins stored. * @param context The method context * @param op The power crystal to apply * @param applier The object applying the crystal * @param aflags Special flags (always apply/unapply) * @return The return value is always METHOD_OK */ static method_ret power_crystal_type_apply(ob_methods *context, object *op, object *applier, int aflags) { int available_power; int power_space; int power_grab; available_power = applier->stats.sp-applier->stats.maxsp; power_space = op->stats.maxsp-op->stats.sp; power_grab = 0; if (available_power >= 0 && power_space > 0) power_grab = MIN(power_space, 0.5*applier->stats.sp); if (available_power < 0 && op->stats.sp > 0) power_grab = -MIN(-available_power, op->stats.sp); applier->stats.sp -= power_grab; op->stats.sp += power_grab; op->speed = (float)op->stats.sp/(float)op->stats.maxsp; object_update_speed(op); if (applier->type == PLAYER) esrv_update_item(UPD_ANIMSPEED, applier, op); return METHOD_OK; } crossfire-1.70.0/types/spell_effect/0000755000014500000120000000000011732537043014366 500000000000000crossfire-1.70.0/types/spell_effect/spell_effect.c0000644000014500000120000007061111731300534017102 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file * The implementation of the Spell Effect class of objects. * @todo Split the subtype functions into their own file each, and split large functions. */ #include #include #include #include #include static method_ret spell_effect_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); static method_ret spell_effect_type_process(ob_methods *context, object *op); static void move_bolt(object *op); static void move_bullet(object *op); static void explosion(object *op); static void move_cone(object *op); static void animate_bomb(object *op); static void move_missile(object *op); static void execute_word_of_recall(object *op); static void move_ball_spell(object *op); static void move_swarm_spell(object *op); static void move_aura(object *aura); static void forklightning(object *op, object *tmp); static void check_spell_knockback(object *op); /** * Initializer for the SPELL_EFFECT object type. */ void init_type_spell_effect(void) { register_move_on(SPELL_EFFECT, spell_effect_type_move_on); register_process(SPELL_EFFECT, spell_effect_type_process); } /** * Move on this Spell Effect object. * @param context The method context * @param trap The Spell Effect we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret spell_effect_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; switch (trap->subtype) { case SP_CONE: if (QUERY_FLAG(victim, FLAG_ALIVE) && trap->speed && trap->attacktype) hit_player(victim, trap->stats.dam, trap, trap->attacktype, 0); break; case SP_MAGIC_MISSILE: if (QUERY_FLAG(victim, FLAG_ALIVE)) { tag_t spell_tag = trap->count; hit_player(victim, trap->stats.dam, trap, trap->attacktype, 1); if (!object_was_destroyed(trap, spell_tag)) { object_remove(trap); object_free_drop_inventory(trap); } } break; case SP_MOVING_BALL: if (QUERY_FLAG(victim, FLAG_ALIVE)) hit_player(victim, trap->stats.dam, trap, trap->attacktype, 1); else if (victim->material || victim->materialname) save_throw_object(victim, trap->attacktype, trap); break; } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } /** * Handle ob_process for all SPELL_EFFECT objects. * @param context The method context * @param op The spell effect that's being processed. * @return METHOD_OK */ static method_ret spell_effect_type_process(ob_methods *context, object *op) { switch (op->subtype) { case SP_BOLT: move_bolt(op); break; case SP_BULLET: move_bullet(op); break; case SP_EXPLOSION: explosion(op); break; case SP_CONE: move_cone(op); break; case SP_BOMB: animate_bomb(op); break; case SP_MAGIC_MISSILE: move_missile(op); break; case SP_WORD_OF_RECALL: execute_word_of_recall(op); break; case SP_MOVING_BALL: move_ball_spell(op); break; case SP_SWARM: move_swarm_spell(op); break; case SP_AURA: move_aura(op); break; } return METHOD_OK; } /** * Moves bolt 'op'. Basically, it just advances a space, and checks for various * things that may stop it. * @param op The bolt object moving. */ static void move_bolt(object *op) { object *tmp; int mflags; sint16 x, y; mapstruct *m; if (--(op->duration) < 0) { object_remove(op); object_free_drop_inventory(op); return; } hit_map(op, 0, op->attacktype, 1); if (op->weight) check_spell_knockback(op); if (!op->direction) return; if (--op->range < 0) { op->range = 0; } else { x = op->x+DIRX(op); y = op->y+DIRY(op); m = op->map; mflags = get_map_flags(m, &m, x, y, &x, &y); if (mflags&P_OUT_OF_MAP) return; /* We are about to run into something - we may bounce */ /* Calling reflwall is pretty costly, as it has to look at all the objects * on the space. So only call reflwall if we think the data it returns * will be useful. */ if (OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, x, y)) || ((mflags&P_IS_ALIVE) && reflwall(m, x, y, op))) { if (!QUERY_FLAG(op, FLAG_REFLECTING)) return; /* Since walls don't run diagonal, if the bolt is in * one of 4 main directions, it just reflects back in the * opposite direction. However, if the bolt is travelling * on the diagonal, it is trickier - eg, a bolt travelling * northwest bounces different if it hits a north/south * wall (bounces to northeast) vs an east/west (bounces * to the southwest. */ if (op->direction&1) { op->direction = absdir(op->direction+4); } else { int left, right; int mflags; /* Need to check for P_OUT_OF_MAP: if the bolt is tavelling * over a corner in a tiled map, it is possible that * op->direction is within an adjacent map but either * op->direction-1 or op->direction+1 does not exist. */ mflags = get_map_flags(op->map, &m, op->x+freearr_x[absdir(op->direction-1)], op->y+freearr_y[absdir(op->direction-1)], &x, &y); left = (mflags&P_OUT_OF_MAP) ? 0 : OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, x, y)); mflags = get_map_flags(op->map, &m, op->x+freearr_x[absdir(op->direction+1)], op->y+freearr_y[absdir(op->direction+1)], &x, &y); right = (mflags&P_OUT_OF_MAP) ? 0 : OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, x, y)); if (left == right) op->direction = absdir(op->direction+4); else if (left) op->direction = absdir(op->direction+2); else if (right) op->direction = absdir(op->direction-2); } object_update_turn_face(op); /* A bolt *must *be IS_TURNABLE */ return; } else { /* Create a copy of this object and put it ahead */ tmp = object_new(); object_copy(op, tmp); tmp->speed_left = -0.1; tmp = object_insert_in_map_at(tmp, op->map, op, 0, op->x+DIRX(op), op->y+DIRY(op)); /* To make up for the decrease at the top of the function */ tmp->duration++; /* New forking code. Possibly create forks of this object * going off in other directions. */ if (rndm(0, 99) < tmp->stats.Dex) { /* stats.Dex % of forking */ forklightning(op, tmp); } /* In this way, the object left behind sticks on the space, but * doesn't create any bolts that continue to move onward. */ op->range = 0; } /* copy object and move it along */ } /* if move bolt along */ } /** * Moves bullet 'op'. Basically, we move 'op' one square, and if it hits * something, call check_bullet. This function is only applicable to bullets, * but not to all fired arches (eg, bolts). * @param op The bullet being moved. */ static void move_bullet(object *op) { sint16 new_x, new_y; int mflags; mapstruct *m; /* Reached the end of its life - remove it */ if (--op->range <= 0) { if (op->other_arch) { explode_bullet(op); } else { object_remove(op); object_free_drop_inventory(op); } return; } new_x = op->x+DIRX(op); new_y = op->y+DIRY(op); m = op->map; mflags = get_map_flags(m, &m, new_x, new_y, &new_x, &new_y); if (mflags&P_OUT_OF_MAP) { object_remove(op); object_free_drop_inventory(op); return; } if (!op->direction || OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, new_x, new_y))) { if (op->other_arch) { explode_bullet(op); } else { object_remove(op); object_free_drop_inventory(op); } return; } object_remove(op); if ((op = object_insert_in_map_at(op, m, op, 0, new_x, new_y)) == NULL) return; if (reflwall(op->map, op->x, op->y, op)) { op->direction = absdir(op->direction+4); object_update_turn_face(op); } else { check_bullet(op); } } /** * Expands an explosion. op is a piece of the explosion - this expans it in the * different directions. At least that is what I think this does. * @param op piece of explosion expanding. */ static void explosion(object *op) { object *tmp; mapstruct *m = op->map; int i; if (--(op->duration) < 0) { object_remove(op); object_free_drop_inventory(op); return; } hit_map(op, 0, op->attacktype, 0); // if (op->weight) check_spell_knockback(op); if (op->range > 0) { for (i = 1; i < 9; i++) { sint16 dx, dy; sint16 Dx, Dy; dx = op->x+freearr_x[i]; dy = op->y+freearr_y[i]; /* ok_to_put_more already does things like checks for walls, * out of map, etc. */ if (ok_to_put_more(op->map, dx, dy, op, op->attacktype)) { tmp = object_new(); object_copy(op, tmp); tmp->state = 0; tmp->speed_left = -0.21; tmp->range--; tmp->value = 0; Dx=dx-op->x; Dy=dy-op->y; if (Dx==-1 && Dy==-1){ tmp->direction=8; } if (Dx==0 && Dy==-1){ tmp->direction=1; } if (Dx==1 && Dy==-1){ tmp->direction=2; } if (Dx==1 && Dy==0){ tmp->direction=3; } if (Dx==1 && Dy==1){ tmp->direction=4; } if (Dx==0 && Dy==1){ tmp->direction=5; } if (Dx==-1 && Dy==-1){ tmp->direction=6; } if (Dx==-1 && Dy==0){ tmp->direction=7; } object_insert_in_map_at(tmp, m, op, 0, dx, dy); } } /* Reset range so we don't try to propogate anymore. * Call object_merge_spell() to see if we can merge with another * spell on the space. */ op->range = 0; object_merge_spell(op, op->x, op->y); } } /** * Causes cone object 'op' to move a space/hit creatures. * @param op cone object moving. */ static void move_cone(object *op) { int i; tag_t tag; /* if no map then hit_map will crash so just ignore object */ if (!op->map) { LOG(llevError, "Tried to move_cone object %s without a map.\n", op->name ? op->name : "unknown"); op->speed = 0; object_update_speed(op); return; } /* lava saves it's life, but not yours :) */ if (QUERY_FLAG(op, FLAG_LIFESAVE)) { hit_map(op, 0, op->attacktype, 0); return; } tag = op->count; hit_map(op, 0, op->attacktype, 0); /* Check to see if we should push anything. * Spell objects with weight push whatever they encounter to some * degree. */ if (op->weight) check_spell_knockback(op); if (object_was_destroyed(op, tag)) return; if ((op->duration--) < 0) { object_remove(op); object_free_drop_inventory(op); return; } /* Object has hit maximum range, so don't have it move * any further. When the duration above expires, * then the object will get removed. */ if (--op->range < 0) { op->range = 0; /* just so it doesn't wrap */ return; } for (i = -1; i < 2; i++) { sint16 x = op->x+freearr_x[absdir(op->stats.sp+i)]; sint16 y = op->y+freearr_y[absdir(op->stats.sp+i)]; if (ok_to_put_more(op->map, x, y, op, op->attacktype)) { object *tmp = object_new(); object_copy(op, tmp); tmp->duration = op->duration+1; /* Use for spell tracking - see ok_to_put_more() */ tmp->stats.maxhp = op->stats.maxhp; object_insert_in_map_at(tmp, op->map, op, 0, x, y); if (tmp->other_arch) cone_drop(tmp); } } } /** * This handles an exploding bomb. * @param op The original bomb object. */ static void animate_bomb(object *op) { int i; object *env, *tmp; archetype *at; if (op->state != NUM_ANIMATIONS(op)-1) return; env = object_get_env_recursive(op); if (op->env) { if (env->map == NULL) return; object_remove(op); if ((op = object_insert_in_map_at(op, env->map, op, 0, env->x, env->y)) == NULL) return; } /* This copies a lot of the code from the fire bullet, * but using the cast_bullet isn't really feasible, * so just set up the appropriate values. */ at = find_archetype(SPLINT); if (at) { for (i = 1; i < 9; i++) { if (out_of_map(op->map, op->x+freearr_x[i], op->y+freearr_x[i])) continue; tmp = arch_to_object(at); tmp->direction = i; tmp->range = op->range; tmp->stats.dam = op->stats.dam; tmp->duration = op->duration; tmp->attacktype = op->attacktype; object_copy_owner(tmp, op); if (op->skill && op->skill != tmp->skill) { if (tmp->skill) free_string(tmp->skill); tmp->skill = add_refcount(op->skill); } object_update_turn_face(tmp); object_insert_in_map_at(tmp, op->map, op, 0, op->x+freearr_x[i], op->y+freearr_x[i]); ob_process(tmp); } } explode_bullet(op); } /** * Move a missle object. * @param op The missile that needs to be moved. */ static void move_missile(object *op) { int i, mflags; sint16 new_x, new_y; mapstruct *m; if (op->range-- <= 0) { object_remove(op); object_free_drop_inventory(op); return; } /* call is required to potentially clean owner, but we don't care for the result */ object_get_owner(op); new_x = op->x+DIRX(op); new_y = op->y+DIRY(op); mflags = get_map_flags(op->map, &m, new_x, new_y, &new_x, &new_y); if (!(mflags&P_OUT_OF_MAP) && ((mflags&P_IS_ALIVE) || OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, new_x, new_y)))) { tag_t tag = op->count; hit_map(op, op->direction, AT_MAGIC, 1); /* Basically, missile only hits one thing then goes away. * we need to remove it if someone hasn't already done so. */ if (!object_was_destroyed(op, tag)) { object_remove(op); object_free_drop_inventory(op); } return; } object_remove(op); if (!op->direction || (mflags&P_OUT_OF_MAP)) { object_free_drop_inventory(op); return; } i = spell_find_dir(m, new_x, new_y, object_get_owner(op)); if (i > 0 && i != op->direction) { op->direction = adjust_dir(op->direction, i); object_update_turn_face(op); } object_insert_in_map_at(op, m, op, 0, new_x, new_y); } /** * Handles the actual word of recalling. Called when force in player inventory expires. * @param op The word of recall effect activating. */ static void execute_word_of_recall(object *op) { object *wor = op; while (op != NULL && op->type != PLAYER) op = op->env; if (op != NULL && op->map) { if ((get_map_flags(op->map, NULL, op->x, op->y, NULL, NULL)&P_NO_CLERIC) && (!QUERY_FLAG(op, FLAG_WIZCAST))) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_SPELL, MSG_TYPE_SPELL_FAILURE, "You feel something fizzle inside you."); else enter_exit(op, wor); } object_remove(wor); object_free_drop_inventory(wor); } /** * This handles ball type spells that just sort of wander about. * Note that duration is handled by process_object() in time.c * @param op The spell effect. */ static void move_ball_spell(object *op) { int i, j, dam_save, dir, mflags; sint16 nx, ny, hx, hy; object *owner; mapstruct *m; owner = object_get_owner(op); /* the following logic makes sure that the ball doesn't move into a wall, * and makes sure that it will move along a wall to try and get at it's * victim. The block immediately below more or less chooses a random * offset to move the ball, eg, keep it mostly on course, with some * deviations. */ dir = 0; j = rndm(0, 1); for (i = 1; i <= 9; i++) { /* i bit 0: alters sign of offset * other bits (i/2): absolute value of offset */ int offset = ((i^j)&1) ? (i/2) : -(i/2); int tmpdir = absdir(op->direction+offset); nx = op->x+freearr_x[tmpdir]; ny = op->y+freearr_y[tmpdir]; if (!(get_map_flags(op->map, &m, nx, ny, &nx, &ny)&P_OUT_OF_MAP) && !(OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, nx, ny)))) { dir = tmpdir; break; } } if (dir == 0) { nx = op->x; ny = op->y; m = op->map; } object_remove(op); object_insert_in_map_at(op, m, op, 0, nx, ny); dam_save = op->stats.dam; /* save the original dam: we do halfdam on surrounding squares */ /* loop over current square and neighbors to hit. * if this has an other_arch field, we insert that in * the surround spaces. */ for (j = 0; j < 9; j++) { object *new_ob; hx = nx+freearr_x[j]; hy = ny+freearr_y[j]; m = op->map; mflags = get_map_flags(m, &m, hx, hy, &hx, &hy); if (mflags&P_OUT_OF_MAP) continue; /* first, don't ever, ever hit the owner. Don't hit out * of the map either. */ if ((mflags&P_IS_ALIVE) && (!owner || owner->x != hx || owner->y != hy || !on_same_map(owner, op))) { if (j) op->stats.dam = dam_save/2; hit_map(op, j, op->attacktype, 1); } /* insert the other arch */ if (op->other_arch && !(OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, hx, hy)))) { new_ob = arch_to_object(op->other_arch); object_insert_in_map_at(new_ob, m, op, 0, hx, hy); } } /* restore to the center location and damage*/ op->stats.dam = dam_save; i = spell_find_dir(op->map, op->x, op->y, object_get_owner(op)); if (i >= 0) { /* we have a preferred direction! */ op->direction = adjust_dir(op->direction, i); if (rndm(0, 3) != 0) op->direction = adjust_dir(op->direction, i); if (rndm(0, 3) == 0) op->direction = adjust_dir(op->direction, i); } } /* * This is an implementation of the swarm spell. It was written for meteor * swarm, but it could be used for any swarm. A swarm spell is a special type * of object that casts swarms of other types of spells. Which spell it casts * is flexible. It fires the spells from a set of squares surrounding the * caster, in a given direction. * @param op The spell effect. */ static void move_swarm_spell(object *op) { static int cardinal_adjust[9] = { -3, -2, -1, 0, 0, 0, 1, 2, 3 }; static int diagonal_adjust[10] = { -3, -2, -2, -1, 0, 0, 1, 2, 2, 3 }; sint16 target_x, target_y, origin_x, origin_y; int basedir, adjustdir; mapstruct *m; object *owner; owner = object_get_owner(op); if (op->duration == 0 || owner == NULL || owner->x != op->x || owner->y != op->y) { object_remove(op); object_free_drop_inventory(op); return; } op->duration--; basedir = op->direction; if (basedir == 0) { /* spray in all directions! 8) */ basedir = get_random_dir(); } /* new offset calculation to make swarm element distribution * more uniform */ if (op->duration) { if (basedir&1) { adjustdir = cardinal_adjust[rndm(0, 8)]; } else { adjustdir = diagonal_adjust[rndm(0, 9)]; } } else { adjustdir = 0; /* fire the last one from forward. */ } target_x = op->x+freearr_x[absdir(basedir+adjustdir)]; target_y = op->y+freearr_y[absdir(basedir+adjustdir)]; /* back up one space so we can hit point-blank targets, but this * necessitates extra out_of_map check below */ origin_x = target_x-freearr_x[basedir]; origin_y = target_y-freearr_y[basedir]; /* spell pointer is set up for the spell this casts. Since this * should just be a pointer to the spell in some inventory, * it is unlikely to disappear by the time we need it. However, * do some sanity checking anyways. */ if (op->spell && op->spell->type == SPELL && !(get_map_flags(op->map, &m, target_x, target_y, &target_x, &target_y)&P_OUT_OF_MAP)) { /* Bullet spells have a bunch more customization that needs to be done */ if (op->spell->subtype == SP_BULLET) fire_arch_from_position(owner, op, origin_x+freearr_x[basedir], origin_y+freearr_y[basedir], basedir, op->spell); else if (op->spell->subtype == SP_MAGIC_MISSILE) fire_arch_from_position(owner, op, origin_x, origin_y, basedir, op->spell); } } /** * Process an aura. An aura is a part of someone's inventory, * which he carries with him, but which acts on the map immediately * around him. * Aura parameters: * duration: duration counter. * attacktype: aura's attacktype * other_arch: archetype to drop where we attack * @param aura The spell effect. */ static void move_aura(object *aura) { int i, mflags; object *env; mapstruct *m; /* auras belong in inventories */ env = aura->env; /* no matter what we've gotta remove the aura... * we'll put it back if its time isn't up. */ object_remove(aura); /* exit if we're out of gas */ if (aura->duration-- < 0) { object_free_drop_inventory(aura); return; } /* auras only exist in inventories */ if (env == NULL || env->map == NULL) { object_free_drop_inventory(aura); return; } /* we need to jump out of the inventory for a bit * in order to hit the map conveniently. */ object_insert_in_map_at(aura, env->map, aura, 0, env->x, env->y); for (i = 1; i < 9; i++) { sint16 nx, ny; nx = aura->x+freearr_x[i]; ny = aura->y+freearr_y[i]; mflags = get_map_flags(env->map, &m, nx, ny, &nx, &ny); /* Consider the movement type of the person with the aura as * movement type of the aura. Eg, if the player is flying, the aura * is flying also, if player is walking, it is on the ground, etc. */ if (!(mflags&P_OUT_OF_MAP) && !(OB_TYPE_MOVE_BLOCK(env, GET_MAP_MOVE_BLOCK(m, nx, ny)))) { hit_map(aura, i, aura->attacktype, 0); if (aura->other_arch) { object *new_ob; new_ob = arch_to_object(aura->other_arch); object_insert_in_map_at(new_ob, m, aura, 0, nx, ny); } } } /* put the aura back in the player's inventory */ object_remove(aura); object_insert_in_ob(aura, env); check_spell_expiry(aura); } /** * Causes op to fork. * @param op original bolt. * @param tmp first piece of the fork. */ static void forklightning(object *op, object *tmp) { int new_dir = 1; /* direction or -1 for left, +1 for right 0 if no new bolt */ int t_dir; /* stores temporary dir calculation */ mapstruct *m; sint16 sx, sy; object *new_bolt; /* pick a fork direction. tmp->stats.Con is the left bias * i.e., the chance in 100 of forking LEFT * Should start out at 50, down to 25 for one already going left * down to 0 for one going 90 degrees left off original path */ if (rndm(0, 99) < tmp->stats.Con) /* fork left */ new_dir = -1; /* check the new dir for a wall and in the map*/ t_dir = absdir(tmp->direction+new_dir); if (get_map_flags(tmp->map, &m, tmp->x+freearr_x[t_dir], tmp->y+freearr_y[t_dir], &sx, &sy)&P_OUT_OF_MAP) return; if (OB_TYPE_MOVE_BLOCK(tmp, GET_MAP_MOVE_BLOCK(m, sx, sy))) return; /* OK, we made a fork */ new_bolt = object_new(); object_copy(tmp, new_bolt); /* reduce chances of subsequent forking */ new_bolt->stats.Dex -= 10; tmp->stats.Dex -= 10; /* less forks from main bolt too */ new_bolt->stats.Con += 25*new_dir; /* adjust the left bias */ new_bolt->speed_left = -0.1; new_bolt->direction = t_dir; new_bolt->duration++; new_bolt->stats.dam /= 2; /* reduce daughter bolt damage */ new_bolt->stats.dam++; tmp->stats.dam /= 2; /* reduce father bolt damage */ tmp->stats.dam++; new_bolt = object_insert_in_map_at(new_bolt, m, op, 0, sx, sy); object_update_turn_face(new_bolt); } /** * Checks to see if a spell pushes objects as well as flies * over and damages them (only used for cones for now) * but moved here so it could be applied to bolts too * @param op The spell object. */ static void check_spell_knockback(object *op) { object *tmp, *tmp2; /* object on the map */ int weight_move; int frictionmod = 2; /*poor man's physics - multipy targets weight by this amount */ if (!op->weight) { /*shouldn't happen but if cone object has no weight drop out*/ LOG(llevDebug, "DEBUG: arch weighs nothing in check_spell_knockback\n"); return; } else { weight_move = op->weight+(op->weight*op->level)/3; /*LOG(llevDebug, "DEBUG: arch weighs %d and masses %d (%s,level %d)\n", op->weight, weight_move, op->name, op->level);*/ } for (tmp = GET_MAP_OB(op->map, op->x, op->y); tmp != NULL; tmp = tmp->above) { int num_sections = 1; /* don't move DM */ if (QUERY_FLAG(tmp, FLAG_WIZ)) return; /* don't move parts of objects */ if (tmp->head) continue; /* don't move floors or immobile objects */ if (QUERY_FLAG(tmp, FLAG_IS_FLOOR) || QUERY_FLAG(tmp, FLAG_NO_PICK)) continue; /* count the object's sections */ for (tmp2 = tmp; tmp2 != NULL; tmp2 = tmp2->more) num_sections++; /* I'm not sure if it makes sense to divide by num_sections - bigger * objects should be harder to move, and we are moving the entire * object, not just the head, so the total weight should be relevant. */ /* surface area? -tm */ if (tmp->move_type&MOVE_FLYING) frictionmod = 1; /* flying objects loose the friction modifier */ if (rndm(0, weight_move-1) > ((tmp->weight/num_sections)*frictionmod)) { /* move it. */ /* move_object is really for monsters, but looking at * the move_object function, it appears that it should * also be safe for objects. * This does return if successful or not, but * I don't see us doing anything useful with that information * right now. */ // LOG(llevDebug, "trying move\n"); if (op->direction){ move_object(tmp,absdir(op->direction)); } else { (move_object(tmp, absdir(op->stats.sp))); } } else{ // LOG(llevDebug, "did not try move, don't know why\n"); } } } crossfire-1.70.0/types/common/0000755000014500000120000000000011732537043013223 500000000000000crossfire-1.70.0/types/common/projectile.c0000644000014500000120000002125411731300534015443 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file projectile.c * This file contains code common to projectile objects. For now it is limited * to arrows and thrown objects. */ #include #include #include #include /** * Handle an arrow or thrown object stopping. * @param op The arrow or thrown object that is stopping. */ void stop_projectile(object *op) { /* Lauwenmark: Handle for plugin stop event */ object *event = op; tag_t tag; if (op->inv) event = op->inv; tag = event->count; execute_event(event, EVENT_STOP, NULL, NULL, NULL, SCRIPT_FIX_NOTHING); if (object_was_destroyed(event, tag)) { if (event != op) { object_remove(op); object_free2(op, FREE_OBJ_FREE_INVENTORY); } return; } if (op->inv) { object *payload = op->inv; object_remove(payload); object_clear_owner(payload); object_insert_in_map_at(payload, op->map, payload, 0, op->x, op->y); object_remove(op); object_free_drop_inventory(op); } else { op = fix_stopped_arrow(op); if (op) object_merge(op, NULL); } } /** * Move an arrow or thrown object along its course. * @param context The method context * @param op The arrow or thrown object being moved. * @todo Split this function up. * @return METHOD_ERROR if op is not in a map, otherwise METHOD_OK */ method_ret common_process_projectile(ob_methods *context, object *op) { object *tmp; sint16 new_x, new_y; int mflags; mapstruct *m; if (op->map == NULL) { LOG(llevError, "BUG: Projectile had no map.\n"); object_remove(op); object_free_drop_inventory(op); return METHOD_ERROR; } /* Calculate target map square */ new_x = op->x+DIRX(op); new_y = op->y+DIRY(op); m = op->map; mflags = get_map_flags(m, &m, new_x, new_y, &new_x, &new_y); if (mflags&P_OUT_OF_MAP) { stop_projectile(op); return METHOD_OK; } /* only need to look for living creatures if this flag is set */ if (mflags&P_IS_ALIVE) { tmp = map_find_by_flag(m, new_x, new_y, FLAG_ALIVE); /* Not really fair, but don't let monsters hit themselves with * their own arrow - this can be because they fire it then * move into it. */ if (tmp != NULL && tmp != object_get_owner(op)) { /* Found living object, but it is reflecting the missile. Update * as below. (Note that for living creatures there is a small * chance that reflect_missile fails.) */ if (QUERY_FLAG(tmp, FLAG_REFL_MISSILE) && (rndm(0, 99)) < (90-op->level/10)) { op->direction = absdir(op->direction+4); op->state = 0; if (GET_ANIM_ID(op)) { object_update_turn_face(op); } } else { /* Attack the object. */ op = hit_with_arrow(op, tmp); if (op == NULL) return METHOD_OK; } } /* if this is not hitting its owner */ } /* if there is something alive on this space */ if (OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m, new_x, new_y))) { int retry = 0; /* if the object doesn't reflect, stop the arrow from moving * note that this code will now catch cases where a monster is * on a wall but has reflecting - the arrow won't reflect. * Mapmakers shouldn't put monsters on top of wall in the first * place, so I don't consider that a problem. */ if (!QUERY_FLAG(op, FLAG_REFLECTING) || !(rndm(0, 19))) { stop_projectile(op); return METHOD_OK; } else { /* If one of the major directions (n,s,e,w), just reverse it */ if (op->direction&1) { op->direction = absdir(op->direction+4); retry = 1; } /* There were two blocks with identical code - * use this retry here to make this one block * that did the same thing. */ while (retry < 2) { int left, right, mflags; mapstruct *m1; sint16 x1, y1; retry++; /* Need to check for P_OUT_OF_MAP: if the arrow is tavelling * over a corner in a tiled map, it is possible that * op->direction is within an adjacent map but either * op->direction-1 or op->direction+1 does not exist. */ mflags = get_map_flags(op->map, &m1, op->x+freearr_x[absdir(op->direction-1)], op->y+freearr_y[absdir(op->direction-1)], &x1, &y1); left = (mflags&P_OUT_OF_MAP) ? 0 : OB_TYPE_MOVE_BLOCK(op, (GET_MAP_MOVE_BLOCK(m1, x1, y1))); mflags = get_map_flags(op->map, &m1, op->x+freearr_x[absdir(op->direction+1)], op->y+freearr_y[absdir(op->direction+1)], &x1, &y1); right = (mflags&P_OUT_OF_MAP) ? 0 : OB_TYPE_MOVE_BLOCK(op, (GET_MAP_MOVE_BLOCK(m1, x1, y1))); if (left == right) op->direction = absdir(op->direction+4); else if (left) op->direction = absdir(op->direction+2); else if (right) op->direction = absdir(op->direction-2); mflags = get_map_flags(op->map, &m1, op->x+DIRX(op), op->y+DIRY(op), &x1, &y1); /* If this space is not out of the map and not blocked, valid space - * don't need to retry again. */ if (!(mflags&P_OUT_OF_MAP) && !OB_TYPE_MOVE_BLOCK(op, GET_MAP_MOVE_BLOCK(m1, x1, y1))) break; } /* Couldn't find a direction to move the arrow to - just * top it from moving. */ if (retry == 2) { stop_projectile(op); return METHOD_OK; } /* update object image for new facing */ /* many thrown objects *don't *have more than one face */ if (GET_ANIM_ID(op)) object_update_turn_face(op); } /* object is reflected */ } /* object ran into a wall */ /* decrease the speed as it flies. 0.05 means a standard bow will shoot * about 17 squares. Tune as needed. */ op->speed -= 0.05; if (op->speed < 0.05) { stop_projectile(op); return METHOD_OK; } /* Move the arrow. */ object_remove(op); object_insert_in_map_at(op, m, op, 0, new_x, new_y); return METHOD_OK; } /** * Move on this Thrown Object object. * @param context The method context * @param trap The thrown object or arrow we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ method_ret common_projectile_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (trap->inv == NULL) { common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } /* bad bug: monster throw a object, make a step forwards, step on object , * trigger this here and get hit by own missile - and will be own enemy. * Victim then is his own enemy and will start to kill herself (this is * removed) but we have not synced victim and his missile. To avoid senseless * action, we avoid hits here */ if ((QUERY_FLAG(victim, FLAG_ALIVE) && trap->speed) && object_get_owner(trap) != victim) hit_with_arrow(trap, victim); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/common/describe.c0000644000014500000120000000424011731300534015057 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file describe.c * This file contains description-related methods that are common to many * classes of objects. */ #include #include #include /** * Describes an object, seen by a given observer. * @param context The method context * @param op The object to describe * @param observer The object to make the description to * @param buf Buffer that will contain the description * @param size buf's size. */ void common_ob_describe(const ob_methods *context, const object *op, const object *observer, char *buf, size_t size) { char *desc; buf[0] = '\0'; if (op == NULL) return; desc = stringbuffer_finish(describe_item(op, observer, NULL)); if (desc[0] != '\0') { size_t len; query_name(op, buf, size-1); buf[size-1] = 0; len = strlen(buf); if ((len+5) < size) { /* Since we know the length, we save a few cpu cycles by using * it instead of calling strcat */ strcpy(buf+len, " "); len++; strncpy(buf+len, desc, size-len-1); buf[size-1] = 0; } } free(desc); if (buf[0] == '\0') { query_name(op, buf, size-1); buf[size-1] = 0; } } crossfire-1.70.0/types/common/common_apply.c0000644000014500000120000000707211731300534016002 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file common_apply.c * This file contains apply-related methods that are common to many * classes of objects. */ #include #include #include #include /** * 'victim' moves onto 'trap' * 'victim' leaves 'trap' * effect is determined by move_on/move_off of trap and move_type of victim. * * originator: Player, monster or other object that caused 'victim' to move * onto 'trap'. Will receive messages caused by this action. May be NULL. * However, some types of traps require an originator to function. */ method_ret common_ob_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; LOG(llevDebug, "name %s, arch %s, type %d with fly/walk on/off not handled in move_apply()\n", trap->name, trap->arch->name, trap->type); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } static int ob_move_on_recursion_depth = 0; method_ret common_pre_ob_move_on(object *trap, object *victim, object *originator) { /* If player is DM, only 2 cases to consider: * - exits * - opened containers on the ground, which should be closed. */ if (QUERY_FLAG(victim, FLAG_WIZPASS) && trap->type != EXIT && trap->type != SIGN && trap->type != CONTAINER && !QUERY_FLAG(trap, FLAG_APPLIED)) return METHOD_ERROR; /* common_ob_move_on() is the most likely candidate for causing unwanted and * possibly unlimited recursion. */ /* The following was changed because it was causing perfectly correct * maps to fail. 1) it's not an error to recurse: * rune detonates, summoning monster. monster lands on nearby rune. * nearby rune detonates. This sort of recursion is expected and * proper. This code was causing needless crashes. */ if (ob_move_on_recursion_depth >= 500) { LOG(llevDebug, "WARNING: move_apply(): aborting recursion [trap arch %s, name %s; victim arch %s, name %s]\n", trap->arch->name, trap->name, victim->arch->name, victim->name); return METHOD_ERROR; } ob_move_on_recursion_depth++; trap = HEAD(trap); /* Lauwenmark: Handle for plugin trigger event */ if (execute_event(trap, EVENT_TRIGGER, originator, victim, NULL, SCRIPT_FIX_ALL) != 0) { ob_move_on_recursion_depth--; return METHOD_ERROR; } return METHOD_OK; } void common_post_ob_move_on(object *trap, object *victim, object *originator) { ob_move_on_recursion_depth--; if (ob_move_on_recursion_depth < 0) /* Safety net :) */ ob_move_on_recursion_depth = 0; } crossfire-1.70.0/types/identify_altar/0000755000014500000120000000000011732537043014731 500000000000000crossfire-1.70.0/types/identify_altar/identify_altar.c0000644000014500000120000001136611731300533020011 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file identify_altar.c * The implementation of the Identify Altar class of objects. */ #include #include #include #include #include static method_ret identify_altar_type_move_on(ob_methods *context, object *altar, object *money, object *originator); /** * Initializer for the IDENTIFY_ALTAR object type. */ void init_type_identify_altar(void) { register_move_on(IDENTIFY_ALTAR, identify_altar_type_move_on); } /** * Move on this Altar Identifier object. * @param context The method context * @param altar The Altar Identifier we're moving on * @param money The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret identify_altar_type_move_on(ob_methods *context, object *altar, object *money, object *originator) { object *marked; int success = 0; char desc[MAX_BUF]; if (common_pre_ob_move_on(altar, money, originator) == METHOD_ERROR) return METHOD_OK; if (originator == NULL || originator->type != PLAYER) { common_post_ob_move_on(altar, money, originator); return METHOD_OK; } /* Check for MONEY type is a special hack - it prevents 'nothing needs * identifying' from being printed out more than it needs to be. */ if (money->type != MONEY || !check_altar_sacrifice(altar, money, 0, NULL)) { common_post_ob_move_on(altar, money, originator); return METHOD_OK; } marked = find_marked_object(originator); /* if the player has a marked item, identify that if it needs to be * identified. IF it doesn't, then go through the player inventory. */ if (marked && !QUERY_FLAG(marked, FLAG_IDENTIFIED) && need_identify(marked)) { if (operate_altar(altar, &money)) { marked = identify(marked); draw_ext_info_format(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You have %s.", ob_describe(marked, originator, desc, sizeof(desc))); if (marked->msg) { draw_ext_info(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The item has a story:"); draw_ext_info(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, marked->msg); } common_post_ob_move_on(altar, money, originator); return METHOD_OK; } } FOR_INV_PREPARE(originator, id) { if (!QUERY_FLAG(id, FLAG_IDENTIFIED) && !id->invisible && need_identify(id)) { if (operate_altar(altar, &money)) { id = identify(id); draw_ext_info_format(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You have %s.", ob_describe(id, originator, desc, sizeof(desc))); if (id->msg) { draw_ext_info(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The item has a story:"); draw_ext_info(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, id->msg); } success = 1; /* If no more money, might as well quit now */ if (money == NULL || !check_altar_sacrifice(altar, money, 0, NULL)) break; } else { LOG(llevError, "check_id_altar: Couldn't do sacrifice when we should have been able to\n"); break; } } } FOR_INV_FINISH(); if (!success) draw_ext_info(NDI_UNIQUE, 0, originator, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You have nothing that needs identifying"); common_post_ob_move_on(altar, money, originator); return METHOD_OK; } crossfire-1.70.0/types/poisoning/0000755000014500000120000000000011732537043013740 500000000000000crossfire-1.70.0/types/poisoning/poisoning.c0000644000014500000120000000544611731300533016031 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file poisoning/poisoning.c * The implementation of the Poisoning class of objects. */ #include #include #include #include #include static method_ret poisoning_type_process(ob_methods *context, object *op); /** * Initializer for the poisoning object type. */ void init_type_poisoning(void) { register_process(POISONING, poisoning_type_process); } /** * Handle ob_process for all poisoning objects. * @param context The method context * @param op The poisoning that's being processed. * @return METHOD_OK normally. METHOD_ERROR if POISONING is in an invalid env. */ static method_ret poisoning_type_process(ob_methods *context, object *op) { if (op->env == NULL || !QUERY_FLAG(op->env, FLAG_ALIVE) || op->env->stats.hp < 0) { object_remove(op); object_free_drop_inventory(op); LOG(llevDebug, "Found POISONING with invalid env. Removing...\n"); return METHOD_ERROR; } if (op->stats.food == 1) { /* need to remove the object before fix_player is called, else fix_object * will not do anything. */ if (op->env->type == PLAYER) { CLEAR_FLAG(op, FLAG_APPLIED); fix_object(op->env); draw_ext_info(NDI_UNIQUE, 0, op->env, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_END, "You feel much better now."); } object_remove(op); object_free_drop_inventory(op); return METHOD_OK; } if (op->env->type == PLAYER) { op->env->stats.food--; /* Not really the start of a bad effect, more the continuing effect */ draw_ext_info(NDI_UNIQUE, 0, op->env, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_BAD_EFFECT_START, "You feel very sick..."); } (void)hit_player(op->env, op->stats.dam, op, AT_INTERNAL, 1); return METHOD_OK; } crossfire-1.70.0/types/player_mover/0000755000014500000120000000000011732537043014437 500000000000000crossfire-1.70.0/types/player_mover/player_mover.c0000644000014500000120000000512611731300534017223 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file player_mover.c * The implementation of the Player-mover class of objects. */ #include #include #include #include #include static method_ret player_mover_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the PLAYERMOVER object type. */ void init_type_player_mover(void) { register_move_on(PLAYERMOVER, player_mover_type_move_on); } /** * Move on this Player Mover object. * @param context The method context * @param trap The Player Mover we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret player_mover_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (trap->attacktype && (trap->level || victim->type != PLAYER) && !should_director_abort(trap, victim)) { if (!trap->stats.maxsp) trap->stats.maxsp = 2; /* Is this correct? From the docs, it doesn't look like it * should be divided by trap->speed */ victim->speed_left = -FABS(trap->stats.maxsp*victim->speed/trap->speed); /* Just put in some sanity check. I think there is a bug in the * above with some objects have zero speed, and thus the player * getting permanently paralyzed. */ if (victim->speed_left < -50.0) victim->speed_left = -50.0; } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/trapdoor/0000755000014500000120000000000011732537043013565 500000000000000crossfire-1.70.0/types/trapdoor/trapdoor.c0000644000014500000120000000616211731300534015500 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file trapdoor.c * The implementation of the Trapdoor class of objects. */ #include #include #include #include #include static method_ret trapdoor_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the TRAPDOOR object type. */ void init_type_trapdoor(void) { register_move_on(TRAPDOOR, trapdoor_type_move_on); } /** * Move on this Trapdoor object. * @param context The method context * @param trap The Trapdoor we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret trapdoor_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { int max, sound_was_played; object *ab, *ab_next; if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (!trap->value) { int tot; for (ab = trap->above, tot = 0; ab != NULL; ab = ab->above) if ((ab->move_type && trap->move_on) || ab->move_type == 0) tot += (ab->nrof ? ab->nrof : 1)*ab->weight+ab->carrying; if (!(trap->value = (tot > trap->weight) ? 1 : 0)) { common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } SET_ANIMATION(trap, trap->value); object_update(trap, UP_OBJ_FACE); } for (ab = trap->above, max = 100, sound_was_played = 0; --max && ab; ab = ab_next) { /* need to set this up, since if we do transfer the object, * ab->above would be bogus */ ab_next = ab->above; if ((ab->move_type && trap->move_on) || ab->move_type == 0) { if (!sound_was_played) { play_sound_map(SOUND_TYPE_GROUND, trap, 0, "fall hole"); sound_was_played = 1; } draw_ext_info(NDI_UNIQUE, 0, ab, MSG_TYPE_APPLY, MSG_TYPE_APPLY_TRAP, "You fall into a trapdoor!"); transfer_ob(ab, (int)EXIT_X(trap), (int)EXIT_Y(trap), 0, ab); } } common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/types/README0000644000014500000120000001202411731300535012523 00000000000000This directory is for the object-type dependent code, in addition to also storing some generic methods for objects which an object-type may want to override. ==Organization== -Place object-type specific code in this directory either as "foobar.c" or in a directory, as "foobar/*.c" with logical and clear individual file names. Use your discretion on if the code for the type should be split across multiple C files or not -If multiple type numbers are the same in behavior (i.e. armor types, though those should be fixed later), it is fine to put them in the same grouping of code. -Code used by multiple types, that is specific to an action controlled by this subsystem is put in "common/*.c" under a logical filename. This includes generic code for dropping, picking up, etc. -Code for an action controlled by this system, but not yet split in to type-specific segments may be stored in "legacy/*.c" for the moment. This will obviously be removed after refactoring is complete. ==API== -The api for this system is in "server/ob_types.c" and "server/ob_methods.c" at the top level. Read the comments in those files for more complete documentation. -The following types are initialized and defined in init_ob_methods(), which you should edit to modify. -The base_type is for defining default actions for all object types. It inherits from legacy_type. -legacy_type is for references to code in "legacy/*.c", and does not have a fallback. It will be removed when the refactoring is complete. -Functions: -The function, init_ob_method_struct(ob_method *methods, ob_methods *fallback) initializes an ob_method struct and sets it's fallback to fallback. -All functions in the form of ob_foobar(object *ob, ...) are for calling object methods. They search though fallbacks when the object's type. -All functions named register_foobar(int ob_type, ...) are for registering a callback with the array storing object methods for different types. Use this to register object_type_specific callbacks -Defined types: -Always make sure your callback functions match the typedefs such as apply_func, as defined in ob_methods.h ==Adding new object methods== As a quick reference, here is a checklist for adding a new object method for use in this section of the code. 1) Define "foobar_func" in ob_methods.h 2) Add "foobar" to the "ob_methods" struct in ob_methods.h 3) Add a line to set it to NULL in init_ob_method_struct() in ob_methods.c 4) Add the boring handler function, "ob_foobar(object *ob, ...)" in ob_methods.c 5) Add the boring "register_foobar(int ob_type, foobar_func *methodptr)" function in ob_types.c 6) Add handler functions for base_type and/or legacy_type if applicable. Reference to in init_ob_methods() in ob_methods.c 7) Add type-specific methods and register them in an init function for the type, using register_foobar(). Call this init function in init_ob_types() in ob_types.c ==Notes on refactoring into here== -Always make a note in the ChangeLog file in this directory, but don't neglect the top level ChangeLog either when making changes here. -Try to refactor one whole object type at a time, adding whatever object methods are required. -Commit often, in fact, as often as you can so long as things don't break -Try not to change in-game behavior here; unless it's a really obvious bug, try to leave that for separate commits either before or after moving the code. -When moving code here, always review it entirely, clean up the comments, and code style. ==Example== /** @file example.c * An example of how to define a type for the object 'method' system. This * example is for a simple food type with no special behavoir except for when it * is applied it gives the food value to the player. Do not use this for real code, and just consider it an example of how to */ /** * Initialize the food object type. Call this from init_ob_types in * server/ob_types.c */ void init_type_food() { register_apply(FOOD, food_type_apply); register_apply(FLESH, food_type_apply); register_apply(DRINK, food_type_apply); } /** * ob_method handler for FOOD, FLESH and DRINK object types. * @todo Handle cursed food * @todo Add hook for dragon resistance gaining * @todo Give special messages when full * @note Remember this is just an example ;-) */ method_ret food_type_apply(ob_methods *context, object *ob, object *pl) { method_ret can_apply; /* * Call the 'can_apply' method for the player to check if the player can * indeed apply it (checking if the player can reach it, etc). */ can_apply = ob_can_apply(pl, ob); if (can_apply == METHOD_OK) { char name[MAX_BUF]; query_name(ob, name, MAX_BUF); pl->stats.food += ob->stats.food; if (pl->stats.food > 999) pl->stats.food = 999; draw_ext_info_format(NDI_UNIQUE, 0, pl, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You eat the %s!", "You eat the %s!", ); decrease_ob(ob); } return METHOD_OK; } crossfire-1.70.0/types/clock/0000755000014500000120000000000011732537043013026 500000000000000crossfire-1.70.0/types/clock/clock.c0000644000014500000120000000441311731300534014177 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file clock.c * The implementation of the Clock class of objects. */ #include #include #include #include #include static method_ret clock_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the CLOCK object type. */ void init_type_clock(void) { register_apply(CLOCK, clock_type_apply); } /** * Handles using a clock. * @param context The method context * @param op The clock to apply * @param applier The object attempting to view the clock * @param aflags Special flags (always apply/unapply) * @retval METHOD_UNHANDLED If the clock wasn't viewed by a player * @retval METHOD_OK If applier was a player */ static method_ret clock_type_apply(ob_methods *context, object *op, object *applier, int aflags) { if (applier->type == PLAYER) { timeofday_t tod; get_tod(&tod); play_sound_player_only(applier->contr, SOUND_TYPE_ITEM, op, 0, "tick"); draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "It is %d minute%s past %d o'clock %s", tod.minute+1, ((tod.minute+1 < 2) ? "" : "s"), ((tod.hour%14 == 0) ? 14 : ((tod.hour)%14)), ((tod.hour >= 14) ? "pm" : "am")); return METHOD_OK; } return METHOD_UNHANDLED; } crossfire-1.70.0/types/arrow/0000755000014500000120000000000011732537043013065 500000000000000crossfire-1.70.0/types/arrow/arrow.c0000644000014500000120000000411511731300533014273 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file arrow.c * The implementation of the Arrow class of objects. */ #include #include #include #include #include static method_ret arrow_type_process(ob_methods *context, object *op); /** * Initializer for the ARROW object type. */ void init_type_arrow(void) { register_move_on(ARROW, common_projectile_move_on); register_process(ARROW, arrow_type_process); } /** * Move an arrow along its course. Uses common_process_projectile. * @param context The method context * @param op The arrow being moved. * @return METHOD_ERROR if op is not in a map, otherwise METHOD_OK */ static method_ret arrow_type_process(ob_methods *context, object *op) { if (op->map == NULL) { LOG(llevError, "BUG: Arrow had no map.\n"); object_remove(op); object_free_drop_inventory(op); return METHOD_ERROR; } /* if the arrow is moving too slow.. stop it. 0.5 was chosen as lower values look rediculous. */ if (op->speed < 0.5 && op->type == ARROW) { stop_projectile(op); return METHOD_OK; } return common_process_projectile(context, op); } crossfire-1.70.0/types/weapon_improver/0000755000014500000120000000000011732537043015147 500000000000000crossfire-1.70.0/types/weapon_improver/weapon_improver.c0000644000014500000120000004014211731300534020440 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file weapon_improver.c * The implementation of the Weapon Improver class of objects. */ #include #include #include #include #include static method_ret weapon_improver_type_apply(ob_methods *context, object *op, object *applier, int aflags); static int check_item(object *op, const char *item); static void eat_item(object *op, const char *item, uint32 nrof); static int check_sacrifice(object *op, const object *improver); static int improve_weapon_stat(object *op, object *improver, object *weapon, signed char *stat, int sacrifice_count, const char *statname); static int prepare_weapon(object *op, object *improver, object *weapon); static int improve_weapon(object *op, object *improver, object *weapon); /** * Initializer for the WEAPON_IMPROVER object type. */ void init_type_weapon_improver(void) { register_apply(WEAPON_IMPROVER, weapon_improver_type_apply); } /** * Attempts to apply weapon_improver. * @param context The method context * @param op The weapon_improver to apply * @param applier The object attempting to apply the weapon_improver. Ignored unless * a player * @param aflags Special flags (always apply/unapply) * @return The return value is METHOD_OK unless it fails to apply. */ static method_ret weapon_improver_type_apply(ob_methods *context, object *op, object *applier, int aflags) { object *oop; if (applier->type != PLAYER) return METHOD_ERROR; if (!QUERY_FLAG(applier, FLAG_WIZCAST) && (get_map_flags(applier->map, NULL, applier->x, applier->y, NULL, NULL)&P_NO_MAGIC)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Something blocks the magic of the scroll."); return METHOD_ERROR; } oop = find_marked_object(applier); if (!oop) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You need to mark a weapon object."); return METHOD_ERROR; } if (oop->type != WEAPON && oop->type != BOW) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Marked item is not a weapon or bow"); return METHOD_ERROR; } draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Applied weapon builder."); improve_weapon(applier, op, oop); esrv_update_item(UPD_NAME|UPD_NROF|UPD_FLAGS, applier, oop); return METHOD_OK; } /** * Counts suitable items with specified archetype name. Will not consider unpaid/cursed items. * @param op * object just before the bottom of the pile, others will be checked through object->below. * @param item * what archetype to check for. * @return * count of matching items. * @todo * couldn't item be a shared string, and == be used instead of strcmp? * The op = op->below is weird - what is it's NULL? */ static int check_item(object *op, const char *item) { int count = 0; if (item == NULL) return 0; FOR_BELOW_PREPARE(op, tmp) { if (strcmp(tmp->arch->name, item) == 0) { if (!QUERY_FLAG(tmp, FLAG_CURSED) && !QUERY_FLAG(tmp, FLAG_DAMNED) /* Loophole bug? -FD- */ && !QUERY_FLAG(tmp, FLAG_UNPAID)) { if (tmp->nrof == 0)/* this is necessary for artifact sacrifices --FD-- */ count++; else count += tmp->nrof; } } } FOR_BELOW_FINISH(); return count; } /** * This removes 'nrof' items with specified archetype. * op is typically the player, which is only * really used to determine what space to look at. * Modified to only eat 'nrof' of objects. * * @param op * item at the bottom to check. * @param item * archetype to look for. * @param nrof * count to remove. * @todo * couldn't item be a shared string, and use == instead of strcmp? * also, the remove logic is wrong - op->nrof will be 0 after decreat_ob_nr in the 2nd case. */ static void eat_item(object *op, const char *item, uint32 nrof) { object *prev; prev = op; op = op->below; while (op != NULL) { if (strcmp(op->arch->name, item) == 0) { if (op->nrof >= nrof) { object_decrease_nrof(op, nrof); return; } else { object_decrease_nrof(op, op->nrof); nrof -= op->nrof; } op = prev; } prev = op; op = op->below; } } /** * Returns how many items of type improver->slaying there are under op. * Will display a message if none found, and 1 if improver->slaying is NULL. * * @param op * item just below the bottom of the pile. * @param improver * sacrifice object. * @return * count of matching items. * @todo * weird logic? use shared string directly, improver isn't really useful. */ static int check_sacrifice(object *op, const object *improver) { int count = 0; if (improver->slaying != NULL) { count = check_item(op, improver->slaying); if (count < 1) { draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "The gods want more %ss", improver->slaying); return 0; } } else count = 1; return count; } /** * Actually improves the weapon, and tells user. Won't test anything. * * @param op * player improving. * @param improver * scroll used to improve. * @param weapon * improved weapon. * @param stat * what statistic to improve. * @param sacrifice_count * how much to improve stat by. * @param statname * name of stat to display to player. * @return * 1. */ static int improve_weapon_stat(object *op, object *improver, object *weapon, signed char *stat, int sacrifice_count, const char *statname) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Your sacrifice was accepted."); *stat += sacrifice_count; weapon->last_eat++; draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Weapon's bonus to %s improved by %d", statname, sacrifice_count); object_decrease_nrof_by_one(improver); /* So it updates the players stats and the window */ fix_object(op); return 1; } /* Types of improvements, hidden in the sp field. */ #define IMPROVE_PREPARE 1 /**< Prepare the weapon. */ #define IMPROVE_DAMAGE 2 /**< Increase damage. */ #define IMPROVE_WEIGHT 3 /**< Decrease weight. */ #define IMPROVE_ENCHANT 4 /**< Increase magic. */ #define IMPROVE_STR 5 /**< Increase strength bonus. */ #define IMPROVE_DEX 6 /**< Increase dexterity bonus. */ #define IMPROVE_CON 7 /**< Increase constitution bonus. */ #define IMPROVE_WIS 8 /**< Increase wisdom bonus. */ #define IMPROVE_CHA 9 /**< Increase charisma bonus. */ #define IMPROVE_INT 10 /**< Increase intelligence bonus. */ #define IMPROVE_POW 11 /**< Increase power bonus. */ /** * This does the prepare weapon scroll. * * Checks for sacrifice, and so on. Will inform the player of failures or success. * * @param op * player using the scroll. * @param improver * improvement scroll. * @param weapon * weapon to improve. * @return * 1 if weapon was prepared, 0 else. */ static int prepare_weapon(object *op, object *improver, object *weapon) { int sacrifice_count, i; char buf[MAX_BUF]; if (weapon->level != 0) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Weapon already prepared."); return 0; } for (i = 0; i < NROFATTACKS; i++) if (weapon->resist[i]) break; /* If we break out, i will be less than nrofattacks, preventing * improvement of items that already have protections. */ if (i < NROFATTACKS || weapon->stats.hp /* regeneration */ || (weapon->stats.sp && weapon->type == WEAPON) /* sp regeneration */ || weapon->stats.exp /* speed */ || weapon->stats.ac) { /* AC - only taifu's I think */ draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Cannot prepare magic weapons."); return 0; } sacrifice_count = check_sacrifice(op, improver); if (sacrifice_count <= 0) return 0; /* We do not allow improving stacks, so split this off from * stack. Only need to do this if weapon is part of a stack. * We set nrof of weapon to zero so it can not merge with other * items, so one can not do further improvements on a stack. * side effect of doing it before the object_insert_in_ob() is that * it won't merge back in. We know from the code that marked * objects must be in the players inventory, so we know where * to put this. */ if (weapon->nrof >1) { weapon = object_split(weapon,1, NULL, 0); weapon->nrof = 0; object_insert_in_ob(weapon, op); } else { weapon->nrof = 0; } weapon->level = isqrt(sacrifice_count); draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Your sacrifice was accepted."); eat_item(op, improver->slaying, sacrifice_count); snprintf(buf, sizeof(buf), "%s's %s", op->name, weapon->name); FREE_AND_COPY(weapon->name, buf); FREE_AND_COPY(weapon->name_pl, buf); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Your %s may be improved %d times.", weapon->name, weapon->level); object_decrease_nrof_by_one(improver); weapon->last_eat = 0; esrv_update_item(UPD_NAME | UPD_NROF, op, weapon); return 1; } /** * Does the dirty job for 'improve weapon' scroll, prepare or add something. * This is the new improve weapon code. * * Checks if weapon was prepared, if enough potions on the floor, ... * * We are hiding extra information about the weapon in the level and * last_eat numbers for an object. Hopefully this won't break anything ?? * level == max improve last_eat == current improve * * @param op * player improving. * @param improver * the scroll that was read. * @param weapon * wepaon to improve. * @return * 1 if weapon was improved, 0 if not enough sacrifice, weapon not prepared, ... */ static int improve_weapon(object *op, object *improver, object *weapon) { int sacrifice_count, sacrifice_needed = 0; if (improver->stats.sp == IMPROVE_PREPARE) { return prepare_weapon(op, improver, weapon); } if (weapon->level == 0) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "This weapon has not been prepared."); return 0; } if (weapon->level == weapon->last_eat && weapon->item_power >= MAX_WEAPON_ITEM_POWER) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "This weapon cannot be improved any more."); return 0; } if (QUERY_FLAG(weapon, FLAG_APPLIED) && !apply_check_weapon_power(op, weapon->last_eat+1)) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Improving the weapon will make it too powerful for you to use. Unready it if you really want to improve it."); return 0; } /* All improvements add to item power, so check if player can * still wear the weapon after improvement. */ if (QUERY_FLAG(weapon, FLAG_APPLIED) && op->type == PLAYER && (op->contr->item_power+1) > (settings.item_power_factor*op->level)) { apply_special(op, weapon, AP_UNAPPLY); if (QUERY_FLAG(weapon, FLAG_APPLIED)) { /* Weapon is cursed, too bad */ draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You can't enchant this weapon without unapplying it because it would consume your soul!"); return 0; } } /* This just increases damage by 5 points, no matter what. No * sacrifice is needed. Since stats.dam is now a 16 bit value and * not 8 bit, don't put any maximum value on damage - the limit is * how much the weapon can be improved. */ if (improver->stats.sp == IMPROVE_DAMAGE) { weapon->stats.dam += 5; weapon->weight += 5000; /* 5 KG's */ draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Damage has been increased by 5 to %d", weapon->stats.dam); weapon->last_eat++; weapon->item_power++; object_decrease_nrof_by_one(improver); esrv_update_item(UPD_WEIGHT, op, weapon); return 1; } if (improver->stats.sp == IMPROVE_WEIGHT) { /* Reduce weight by 20% */ weapon->weight = (weapon->weight*8)/10; if (weapon->weight < 1) weapon->weight = 1; draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Weapon weight reduced to %6.1f kg", (float)weapon->weight/1000.0); weapon->last_eat++; weapon->item_power++; object_decrease_nrof_by_one(improver); esrv_update_item(UPD_WEIGHT, op, weapon); return 1; } if (improver->stats.sp == IMPROVE_ENCHANT) { weapon->magic++; weapon->last_eat++; draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Weapon magic increased to %d", weapon->magic); object_decrease_nrof_by_one(improver); weapon->item_power++; return 1; } sacrifice_needed = weapon->stats.Str +weapon->stats.Int +weapon->stats.Dex +weapon->stats.Pow +weapon->stats.Con +weapon->stats.Cha +weapon->stats.Wis; if (sacrifice_needed < 1) sacrifice_needed = 1; sacrifice_needed *= 2; sacrifice_count = check_sacrifice(op, improver); if (sacrifice_count < sacrifice_needed) { draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You need at least %d %s", sacrifice_needed, improver->slaying); return 0; } eat_item(op, improver->slaying, sacrifice_needed); weapon->item_power++; switch (improver->stats.sp) { case IMPROVE_STR: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Str), 1, "strength"); case IMPROVE_DEX: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Dex), 1, "dexterity"); case IMPROVE_CON: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Con), 1, "constitution"); case IMPROVE_WIS: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Wis), 1, "wisdom"); case IMPROVE_CHA: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Cha), 1, "charisma"); case IMPROVE_INT: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Int), 1, "intelligence"); case IMPROVE_POW: return improve_weapon_stat(op, improver, weapon, (signed char *)&(weapon->stats.Pow), 1, "power"); default: draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Unknown improvement type."); } LOG(llevError, "improve_weapon: Got to end of function\n"); return 0; } crossfire-1.70.0/types/food/0000755000014500000120000000000011732537043012662 500000000000000crossfire-1.70.0/types/food/food.c0000644000014500000120000003545211731300533013675 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file food.c * The implementation of the Food class of objects. */ #include #include #include #include #include #include static method_ret food_type_apply(ob_methods *context, object *food, object *applier, int aflags); static void eat_special_food(object *who, object *food); static int dragon_eat_flesh(object *op, object *meal); /** * Initializer for the food object type. */ void init_type_food(void) { register_apply(FOOD, food_type_apply); register_apply(DRINK, food_type_apply); register_apply(FLESH, food_type_apply); } /** * Handles applying food. * If player is applying, takes care of messages and dragon special food. * @param context The method context * @param food The food to apply * @param applier The object attempting to apply the food * @param aflags Special flags (always apply/unapply) * @return METHOD_OK unless failure for some reason. */ static method_ret food_type_apply(ob_methods *context, object *food, object *applier, int aflags) { int capacity_remaining; if (QUERY_FLAG(food, FLAG_NO_PICK)) { draw_ext_info_format(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You can't %s that!", food->type == DRINK ? "drink" : "eat"); return METHOD_OK; } if (applier->type != PLAYER) applier->stats.hp = applier->stats.maxhp; else { /* check if this is a dragon (player), eating some flesh */ if (food->type == FLESH && is_dragon_pl(applier)) dragon_eat_flesh(applier, food); /* Check for old wraith player, give them the feeding skill */ else if (is_old_wraith_pl(applier)) { object *skill = give_skill_by_name(applier, "wraith feed"); if (skill) { char buf[MAX_BUF]; SET_FLAG(skill, FLAG_CAN_USE_SKILL); link_player_skills(applier); snprintf(buf, sizeof(buf), "You have been dead for too long to taste %s, ", food->name); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, buf); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "and seem to have obtained a taste for living flesh."); } else LOG(llevError, "wraith feed skill not found\n"); /* Wraith player gets no food from eating. */ } else if (is_wraith_pl(applier)) { char buf[MAX_BUF]; snprintf(buf, sizeof(buf), "You can no longer taste %s, and do not feel less hungry after %s it.", food->name, food->type == DRINK ? "drinking" : "eating"); draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, buf); /* usual case - not a wraith or a dgaron: */ } else { if (applier->stats.food+food->stats.food > 999) { if (food->type == FOOD || food->type == FLESH) draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You feel full, but what a waste of food!"); else draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "Most of the drink goes down your face not your throat!"); } if (!QUERY_FLAG(food, FLAG_CURSED)) { char buf[MAX_BUF]; if (!is_dragon_pl(applier)) { /* eating message for normal players*/ if (food->type == DRINK) snprintf(buf, sizeof(buf), "Ahhh...that %s tasted good.", food->name); else snprintf(buf, sizeof(buf), "The %s tasted %s", food->name, food->type == FLESH ? "terrible!" : "good."); } else { /* eating message for dragon players*/ snprintf(buf, sizeof(buf), "The %s tasted terrible!", food->name); } draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, buf); capacity_remaining = 999-applier->stats.food; applier->stats.food += food->stats.food; if (capacity_remaining < food->stats.food) applier->stats.hp += capacity_remaining/50; else applier->stats.hp += food->stats.food/50; if (applier->stats.hp > applier->stats.maxhp) applier->stats.hp = applier->stats.maxhp; if (applier->stats.food > 999) applier->stats.food = 999; } /* special food hack -b.t. */ if (food->title || QUERY_FLAG(food, FLAG_CURSED)) eat_special_food(applier, food); } } apply_handle_yield(food); object_decrease_nrof_by_one(food); return METHOD_OK; } /** * Handles player eating food that temporarily changes status * (resistances, stats). * This used to call cast_change_attr(), but * that doesn't work with the new spell code. Since we know what * the food changes, just grab a force and use that instead. * * @param who * living eating food. * @param food * eaten food. */ static void eat_special_food(object *who, object *food) { object *force; int i, did_one = 0; sint8 k; force = create_archetype(FORCE_NAME); for (i = 0; i < NUM_STATS; i++) { k = get_attr_value(&food->stats, i); if (k) { set_attr_value(&force->stats, i, k); did_one = 1; } } /* check if we can protect the eater */ for (i = 0; i < NROFATTACKS; i++) { if (food->resist[i] > 0) { force->resist[i] = food->resist[i]/2; did_one = 1; } } if (did_one) { force->speed = 0.1; object_update_speed(force); /* bigger morsel of food = longer effect time */ force->duration = food->stats.food/5; SET_FLAG(force, FLAG_IS_USED_UP); SET_FLAG(force, FLAG_APPLIED); change_abil(who, force); object_insert_in_ob(force, who); } else { object_free_drop_inventory(force); } /* check for hp, sp change */ if (food->stats.hp != 0 && !is_wraith_pl(who)) { if (QUERY_FLAG(food, FLAG_CURSED)) { strcpy(who->contr->killer, food->name); hit_player(who, food->stats.hp, food, AT_POISON, 1); draw_ext_info(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "Eck!...that was poisonous!"); } else { if (food->stats.hp > 0) draw_ext_info(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You begin to feel better."); else draw_ext_info(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "Eck!...that was poisonous!"); who->stats.hp += food->stats.hp; } } if (food->stats.sp != 0) { if (QUERY_FLAG(food, FLAG_CURSED)) { draw_ext_info(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_CURSED, "You are drained of mana!"); who->stats.sp -= food->stats.sp; if (who->stats.sp < 0) who->stats.sp = 0; } else { draw_ext_info(NDI_UNIQUE, 0, who, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "You feel a rush of magical energy!"); who->stats.sp += food->stats.sp; /* place limit on max sp from food? */ } } fix_object(who); } /** * A dragon is eating some flesh. If the flesh contains resistances, * there is a chance for the dragon's skin to get improved. * * @param op * object (dragon player) eating the flesh. * @param meal * flesh item, getting chewed in dragon's mouth. * @return * 1 if meal was eaten, 0 else. * @note * meal's nrof isn't decreased, caller is responsible for that. */ static int dragon_eat_flesh(object *op, object *meal) { object *skin = NULL; /* pointer to dragon skin force*/ object *abil = NULL; /* pointer to dragon ability force*/ char buf[MAX_BUF]; /* tmp. string buffer */ double chance; /* improvement-chance of one resist type */ double totalchance = 1; /* total chance of gaining one resistance */ double bonus = 0; /* level bonus (improvement is easier at lowlevel) */ double mbonus = 0; /* monster bonus */ int atnr_winner[NROFATTACKS]; /* winning candidates for resistance improvement */ int winners = 0; /* number of winners */ int i; /* index */ /* let's make sure and doublecheck the parameters */ if (meal->type != FLESH || !is_dragon_pl(op)) return 0; /* now grab the 'dragon_skin'- and 'dragon_ability'-forces * from the player's inventory */ skin = object_find_by_type_and_arch_name(op, FORCE, "dragon_skin_force"); abil = object_find_by_type_and_arch_name(op, FORCE, "dragon_ability_force"); /* if either skin or ability are missing, this is an old player * which is not to be considered a dragon -> bail out */ if (skin == NULL || abil == NULL) return 0; /* now start by filling stomache and health, according to food-value */ if ((999-op->stats.food) < meal->stats.food) op->stats.hp += (999-op->stats.food)/50; else op->stats.hp += meal->stats.food/50; if (op->stats.hp > op->stats.maxhp) op->stats.hp = op->stats.maxhp; op->stats.food = MIN(999, op->stats.food+meal->stats.food); /*LOG(llevDebug, "-> player: %d, flesh: %d\n", op->level, meal->level);*/ /* on to the interesting part: chances for adding resistance */ for (i = 0; i < NROFATTACKS; i++) { if (meal->resist[i] > 0 && atnr_is_dragon_enabled(i)) { /* got positive resistance, now calculate improvement chance (0-100) */ /* this bonus makes resistance increase easier at lower levels */ bonus = (settings.max_level-op->level)*30./((double)settings.max_level); if (i == abil->stats.exp) bonus += 5; /* additional bonus for resistance of ability-focus */ /* monster bonus increases with level, because high-level * flesh is too rare */ mbonus = op->level*20./((double)settings.max_level); chance = (((double)MIN(op->level+bonus, meal->level+bonus+mbonus))*100./((double)settings.max_level))-skin->resist[i]; if (chance >= 0.) chance += 1.; else chance = (chance < -12) ? 0. : 1./pow(2., -chance); /* chance is proportional to amount of resistance (max. 50) */ chance *= ((double)(MIN(meal->resist[i], 50)))/50.; /* doubled chance for resistance of ability-focus */ if (i == abil->stats.exp) chance = MIN(100., chance*2.); /* now make the throw and save all winners (Don't insert luck bonus here!) */ if (RANDOM()%10000 < (int)(chance*100)) { atnr_winner[winners] = i; winners++; } if (chance >= 0.01) totalchance *= 1-chance/100; /*LOG(llevDebug, " %s: bonus %.1f, chance %.1f\n", attacks[i], bonus, chance);*/ } } /* inverse totalchance as until now we have the failure-chance */ totalchance = 100-totalchance*100; /* print message according to totalchance */ if (totalchance > 50.) snprintf(buf, sizeof(buf), "Hmm! The %s tasted delicious!", meal->name); else if (totalchance > 10.) snprintf(buf, sizeof(buf), "The %s tasted very good.", meal->name); else if (totalchance > 1.) snprintf(buf, sizeof(buf), "The %s tasted good.", meal->name); else if (totalchance > 0.1) snprintf(buf, sizeof(buf), "The %s tasted bland.", meal->name); else if (totalchance >= 0.01) snprintf(buf, sizeof(buf), "The %s had a boring taste.", meal->name); else if (meal->last_eat > 0 && atnr_is_dragon_enabled(meal->last_eat)) snprintf(buf, sizeof(buf), "The %s tasted strange.", meal->name); else snprintf(buf, sizeof(buf), "The %s had no taste.", meal->name); draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, buf); /* now choose a winner if we have any */ i = -1; if (winners > 0) i = atnr_winner[RANDOM()%winners]; if (i >= 0 && i < NROFATTACKS && skin->resist[i] < 95) { /* resistance increased! */ skin->resist[i]++; fix_object(op); draw_ext_info_format(NDI_UNIQUE|NDI_RED, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_PROTECTION_GAIN, "Your skin is now more resistant to %s!", change_resist_msg[i]); } /* if this flesh contains a new ability focus, we mark it * into the ability_force and it will take effect on next level */ if (meal->last_eat > 0 && atnr_is_dragon_enabled(meal->last_eat) && meal->last_eat != abil->last_eat) { abil->last_eat = meal->last_eat; /* write:last_eat */ if (meal->last_eat != abil->stats.exp) { draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_RACE, "Your metabolism prepares to focus on %s!", change_resist_msg[meal->last_eat]); draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_RACE, "The change will happen at level %d", abil->level+1); } else { draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_ATTRIBUTE, MSG_TYPE_ATTRIBUTE_RACE, "Your metabolism will continue to focus on %s.", change_resist_msg[meal->last_eat]); abil->last_eat = 0; } } return 1; } crossfire-1.70.0/types/scroll/0000755000014500000120000000000011732537043013231 500000000000000crossfire-1.70.0/types/scroll/scroll.c0000644000014500000120000001101711731300534014603 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file scroll.c * The implementation of the Scroll class of objects. */ #include #include #include #include #include static method_ret scroll_type_apply(ob_methods *context, object *op, object *applier, int aflags); /** * Initializer for the scroll object type. */ void init_type_scroll(void) { register_apply(SCROLL, scroll_type_apply); } /** * Handles reading a spell scroll. * @param context * The method context * @param scroll * The scroll to apply * @param applier * The object attempting to apply the scroll * @param aflags * Special flags (always apply/unapply) * @return METHOD_OK * @todo * should handle scroll failure differently if god-like scroll. * @todo * Tweak failure parameters. */ static method_ret scroll_type_apply(ob_methods *context, object *scroll, object *applier, int aflags) { object *skapplier; object *head; sstring name; head = HEAD(applier); if (QUERY_FLAG(applier, FLAG_BLIND) && !QUERY_FLAG(applier, FLAG_WIZ)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You are unable to read while blind."); return METHOD_OK; } if (!scroll->inv || scroll->inv->type != SPELL) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "The scroll just doesn't make sense!"); return METHOD_OK; } if (applier->type == PLAYER) { /* players need a literacy skill to read stuff! */ int exp_gain; /* hard code literacy - scroll->skill points to where the exp * should go for anything killed by the spell. */ skapplier = find_skill_by_name(applier, skill_names[SK_LITERACY]); if (!skapplier) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_FAILURE, "You are unable to decipher the strange symbols."); return METHOD_OK; } if (!QUERY_FLAG(scroll, FLAG_IDENTIFIED)) scroll = identify(scroll); if (QUERY_FLAG(scroll, FLAG_CURSED) || QUERY_FLAG(scroll, FLAG_DAMNED)) { /* Player made a mistake, let's shake her/him :) * a failure of -35 means merely mana drain, -80 means * mana blast. But if server settings say 'no failure effect', * we still want to drain mana. * As for power, hey, better take care what you apply :) */ int failure = -35; if (settings.spell_failure_effects == TRUE) failure = -rndm(35, 100); scroll_failure(applier, failure, MAX(20, (scroll->level-skapplier->level)*5)); object_decrease_nrof_by_one(scroll); return METHOD_OK; } if ((exp_gain = calc_skill_exp(applier, scroll, skapplier))) change_exp(applier, exp_gain, skapplier->skill, 0); } /* need to keep the name, as the scroll may be destroyed when on the ground (reading a scroll of alchemy for instance) */ name = scroll->inv->name; cast_spell(applier, scroll, head->facing, scroll->inv, NULL); if (QUERY_FLAG(scroll, FLAG_BLESSED) && die_roll(1, 100, applier, 1) < 10) { draw_ext_info_format(NDI_BLACK, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Your scroll of %s glows for a second!", name); } else { draw_ext_info_format(NDI_BLACK, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "The scroll of %s turns to dust.", name); object_decrease_nrof_by_one(scroll); } return METHOD_OK; } crossfire-1.70.0/types/peacemaker/0000755000014500000120000000000011732537043014030 500000000000000crossfire-1.70.0/types/peacemaker/peacemaker.c0000644000014500000120000000604411731300533016204 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file peacemaker/peacemaker.c * The implementation of the Peacemaker class of objects. * @todo Consider merging Peacemaker with Spell Effects */ #include #include #include #include #include static method_ret peacemaker_type_process(ob_methods *context, object *op); /** * Initializer for the peacemaker object type. */ void init_type_peacemaker(void) { register_process(PEACEMAKER, peacemaker_type_process); } /** * Handle ob_process for all peacemaker objects. Makes monster it passes * peaceful. * @param context The method context * @param op The peacemaker that's being processed. * @return METHOD_OK */ static method_ret peacemaker_type_process(ob_methods *context, object *op) { object *owner; owner = object_get_owner(op); if (owner == NULL) { LOG(llevError, "peacemaker_type_process: peacemaker object %s has no owner\n", op->name); object_remove(op); object_free2(op, 1); return METHOD_OK; } FOR_MAP_PREPARE(op->map, op->x, op->y, tmp) { int atk_lev, def_lev; object *victim; victim = HEAD(tmp); if (!QUERY_FLAG(victim, FLAG_MONSTER)) continue; if (QUERY_FLAG(victim, FLAG_UNAGGRESSIVE)) continue; if (victim->stats.exp == 0) continue; def_lev = MAX(1, victim->level); atk_lev = MAX(1, op->level); if (rndm(0, atk_lev-1) > def_lev) { /* make this sucker peaceful. */ change_exp(owner, victim->stats.exp, op->skill, 0); victim->stats.exp = 0; victim->attack_movement = RANDO2; SET_FLAG(victim, FLAG_UNAGGRESSIVE); SET_FLAG(victim, FLAG_RUN_AWAY); SET_FLAG(victim, FLAG_RANDOM_MOVE); CLEAR_FLAG(victim, FLAG_MONSTER); if (victim->name) { draw_ext_info_format(NDI_UNIQUE, 0, owner, MSG_TYPE_SPELL, MSG_TYPE_SPELL_SUCCESS, "%s no longer feels like fighting.", victim->name); } } } FOR_MAP_FINISH(); return METHOD_OK; } crossfire-1.70.0/types/armour_improver/0000755000014500000120000000000011732537043015163 500000000000000crossfire-1.70.0/types/armour_improver/armour_improver.c0000644000014500000120000001473611731300534020502 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file armour_improver.c * Armour improvement scrolls. */ #include #include #include #include #include static method_ret armour_improver_type_apply(ob_methods *context, object *lighter, object *applier, int aflags); /** * Initializer for the ARMOUR_IMPROVER object type. */ void init_type_armour_improver(void) { register_apply(ARMOUR_IMPROVER, armour_improver_type_apply); } /** * This code deals with the armour improvment scrolls. * Change limits on improvement - let players go up to * +5 no matter what level, but they are limited by item * power. * Try to use same improvement code as in the common/treasure.c * file, so that if you make a +2 full helm, it will be just * the same as one you find in a shop. * * @param op * player improving the armor. * @param improver * improvement scroll. * @param armour * armour to improve. */ static void improve_armour(object *op, object *improver, object *armour) { object *tmp; int oldmagic = armour->magic; if (armour->magic >= settings.armor_max_enchant) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "This armour can not be enchanted any further."); return; } /* Dealing with random artifact armor is a lot trickier * (in terms of value, weight, etc), so take the easy way out * and don't worry about it. Note - maybe add scrolls which * make the random artifact versions (eg, armour of gnarg and * what not?) */ if (armour->title) { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "This armour will not accept further enchantment."); return; } /* Check item power: if player has it equipped, unequip if armor * would become unwearable. */ if (QUERY_FLAG(armour, FLAG_APPLIED) && op->type == PLAYER && (op->contr->item_power+1) > (settings.item_power_factor*op->level)) { apply_special(op, armour, AP_UNAPPLY); if (QUERY_FLAG(armour, FLAG_APPLIED)) { /* Armour is cursed, too bad */ draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You can't enchant this armour without unapplying it because it would consume your soul!"); return; } } /* Split objects if needed. Can't insert tmp until the * end of this function - otherwise it will just re-merge. */ if (armour->nrof > 1) tmp = object_split(armour, armour->nrof-1, NULL, 0); else tmp = NULL; armour->magic++; if (!settings.armor_speed_linear) { int base = 100; int pow = 0; while (pow < armour->magic) { base = base-(base*settings.armor_speed_improvement)/100; pow++; } ARMOUR_SPEED(armour) = (ARMOUR_SPEED(&armour->arch->clone)*base)/100; } else ARMOUR_SPEED(armour) = (ARMOUR_SPEED(&armour->arch->clone)*(100+armour->magic*settings.armor_speed_improvement))/100; if (!settings.armor_weight_linear) { int base = 100; int pow = 0; while (pow < armour->magic) { base = base-(base*settings.armor_weight_reduction)/100; pow++; } armour->weight = (armour->arch->clone.weight*base)/100; } else armour->weight = (armour->arch->clone.weight*(100-armour->magic*settings.armor_weight_reduction))/100; if (armour->weight <= 0) { LOG(llevInfo, "Warning: enchanted armours can have negative weight\n."); armour->weight = 1; } armour->item_power += (armour->magic-oldmagic)*3; if (armour->item_power < 0) armour->item_power = 0; if (op->type == PLAYER) { esrv_update_item(UPD_WEIGHT|UPD_NAME|UPD_NROF, op, armour); if (QUERY_FLAG(armour, FLAG_APPLIED)) fix_object(op); } object_decrease_nrof_by_one(improver); if (tmp) { object_insert_in_ob(tmp, op); } return; } /** * Applies a scroll of Enchant Armour. * * @param context * method context. * @param scroll * scroll to apply. * @param applier * object attempting to apply the scroll. Should be a player. * @param aflags * special flags (always apply/unapply). * @return * METHOD_OK if applier is a player, METHOD_UNHANDLED else. */ static method_ret armour_improver_type_apply(ob_methods *context, object *scroll, object *applier, int aflags) { object *armor; if (applier->type != PLAYER) return METHOD_UNHANDLED; if (!QUERY_FLAG(applier, FLAG_WIZCAST) && (get_map_flags(applier->map, NULL, applier->x, applier->y, NULL, NULL)&P_NO_MAGIC)) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Something blocks the magic of the scroll."); return METHOD_OK; } armor = find_marked_object(applier); if (!armor) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "You need to mark an armor object."); return METHOD_OK; } if (armor->type != ARMOUR && armor->type != CLOAK && armor->type != BOOTS && armor->type != GLOVES && armor->type != BRACERS && armor->type != SHIELD && armor->type != HELMET) { draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_ERROR, "Your marked item is not armour!"); return METHOD_OK; } draw_ext_info(NDI_UNIQUE, 0, applier, MSG_TYPE_APPLY, MSG_TYPE_APPLY_SUCCESS, "Applying armour enchantment."); improve_armour(applier, scroll, armor); return METHOD_OK; } crossfire-1.70.0/types/duplicator/0000755000014500000120000000000011732537043014101 500000000000000crossfire-1.70.0/types/duplicator/duplicator.c0000644000014500000120000000527311731300533016331 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008 Crossfire Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The implementation of @ref page_type_83 "duplicator" objects. */ #include #include #include #include #include static method_ret duplicator_type_trigger(ob_methods *context, object *op, object *cause, int state); /** * Initializer for the @ref page_type_83 "duplicator" object type. */ void init_type_duplicator(void) { register_trigger(DUPLICATOR, duplicator_type_trigger); } /** * Trigger for @ref page_type_83 "duplicator". * * Will duplicate a specified object placed on top of it. * - connected: what will trigger it. * - level: multiplier. 0 to destroy. * - other_arch: the object to look for and duplicate. * * @param op * duplicator. */ void move_duplicator(object *op) { object *tmp; if (!op->other_arch) { LOG(llevInfo, "Duplicator with no other_arch! %d %d %s\n", op->x, op->y, op->map ? op->map->path : "nullmap"); return; } if (op->above == NULL) return; for (tmp = op->above; tmp != NULL; tmp = tmp->above) { if (strcmp(op->other_arch->name, tmp->arch->name) == 0) { if (op->level <= 0) { object_remove(tmp); object_free_drop_inventory(tmp); } else { uint64 new_nrof = (uint64)tmp->nrof*op->level; if (new_nrof >= 1UL<<31) new_nrof = 1UL<<31; tmp->nrof = new_nrof; } break; } } } /** * A @ref page_type_83 "duplicator" is triggered. * @param context Ignored. * @param op The duplicator being triggered * @param cause Ignored. * @param state Ignored. * @retval METHOD_OK */ static method_ret duplicator_type_trigger(ob_methods *context, object *op, object *cause, int state) { move_duplicator(op); return METHOD_OK; } crossfire-1.70.0/types/dragon_focus/0000755000014500000120000000000011732537043014404 500000000000000crossfire-1.70.0/types/dragon_focus/dragon_focus.c0000644000014500000120000000513311731300534017133 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2008,2010 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file food.c * The implementation of the Food class of objects. */ #include #include #include #include #include #include static method_ret dragon_focus_type_apply(ob_methods *context, object *focus, object *applier, int aflags); /** * Initializer for the food object type. */ void init_type_dragon_focus(void) { register_apply(DRAGON_FOCUS, dragon_focus_type_apply); } /** * Handles applying food. * If player is applying, takes care of messages and dragon special food. * @param context The method context * @param focus - The focus to apply * @param applier The player attempting to apply the food * @param aflags Special flags (always apply/unapply) * @return METHOD_OK unless failure for some reason. */ static method_ret dragon_focus_type_apply(ob_methods *context, object *focus, object *applier, int aflags) { object *abil = NULL; /* pointer to dragon ability force*/ if (applier->type != PLAYER) return METHOD_ERROR; if (!is_dragon_pl(applier)) return METHOD_ERROR; abil = object_find_by_type_and_arch_name(applier, FORCE, "dragon_ability_force"); if (abil == NULL) return METHOD_ERROR; abil->stats.exp = focus->stats.exp; if (focus->face) { applier->face = focus->face; /* It only makes sense to change the animation if the * face is also changing. */ if (focus->animation_id) applier->animation_id = focus->animation_id; } if (focus->title) { if (applier->title) free_string(applier->title); applier->title = add_refcount(focus->title); } return 0; } crossfire-1.70.0/types/thrown_object/0000755000014500000120000000000011732537043014602 500000000000000crossfire-1.70.0/types/thrown_object/thrown_object.c0000644000014500000120000000546411731300533017535 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file thrown_object.c * The implementation of the Thrown Object class of objects. */ #include #include #include #include #include static method_ret thrown_object_type_process(ob_methods *context, object *op); /** * Initializer for the THROWN_OBJ object type. */ void init_type_thrown_object(void) { register_move_on(THROWN_OBJ, common_projectile_move_on); register_process(THROWN_OBJ, thrown_object_type_process); } /** * Move a thrown object along its course. Uses common_process_projectile. * @param context The method context * @param op The thrown object being moved. * @return METHOD_ERROR if op is not in a map, otherwise METHOD_OK */ static method_ret thrown_object_type_process(ob_methods *context, object *op) { if (op->map == NULL) { LOG(llevError, "BUG: Thrown object had no map.\n"); object_remove(op); object_free_drop_inventory(op); return METHOD_ERROR; } /* we need to stop thrown objects at some point. Like here. */ if (op->type == THROWN_OBJ) { /* If the object that the THROWN_OBJ encapsulates disappears, * we need to have this object go away also - otherwise, you get * left over remnants on the map. Where this currently happens * is if the player throws a bomb - the bomb explodes on its own, * but this object sticks around. We could handle the cleanup in the * bomb code, but there are potential other cases where that could happen, * and it is easy enough to clean it up here. */ if (op->inv == NULL) { object_remove(op); object_free_drop_inventory(op); return METHOD_OK; } if (op->last_sp-- < 0) { stop_projectile(op); return METHOD_OK; } } return common_process_projectile(context, op); } crossfire-1.70.0/types/container/0000755000014500000120000000000011732537043013715 500000000000000crossfire-1.70.0/types/container/container.c0000644000014500000120000000375011731300534015760 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** @file container.c * The implementation of the Container class of objects. */ #include #include #include #include #include static method_ret container_type_move_on(ob_methods *context, object *trap, object *victim, object *originator); /** * Initializer for the CONTAINER object type. */ void init_type_container(void) { register_move_on(CONTAINER, container_type_move_on); } /** * Move on this Container object. * @param context The method context * @param trap The Container we're moving on * @param victim The object moving over this one * @param originator The object that caused the move_on event * @return METHOD_OK */ static method_ret container_type_move_on(ob_methods *context, object *trap, object *victim, object *originator) { if (common_pre_ob_move_on(trap, victim, originator) == METHOD_ERROR) return METHOD_OK; if (victim->type == PLAYER) (void)legacy_apply_container(victim, trap); common_post_ob_move_on(trap, victim, originator); return METHOD_OK; } crossfire-1.70.0/ChangeLog0000644000014500000120000336255411731300571012274 00000000000000============================================================================== Changes for 1.70.0 ============================================================================== Hack to make the server work on FreeBSD 9. Nicolas Weeger 2012-02-07 Make artifacts hide their properties when not identified. Nicolas Weeger 2012-01-28 Do not fail build when not building in a working copy. Andreas Kirschbaum 2012-01-19 Implement feature request #1676810: Throw specific items. Throwing will now use marked item, or items in a 'quiver of throwing items'. Nicolas Weeger 2011-12-30 Improve 'probe' spell. Over level 15, a status bar is displayed over the target. Duration and precision are based on the level. Requires arch revision 16342 or higher. Nicolas Weeger 2011-12-28 Fix bug #3440456: Animated bolts. Adjust animate_object() to correctly handle FLAG_IS_TURNABLE, and make object_update_turn_face() a mere wrapper to that function. Nicolas Weeger 2011-12-18 Add logic to do svn version check between plugin and server - this prevents incompatible plugins from being used. MSW 2011-11-26 New server argument: -disable-plugin. Disables a plugin from its name, 'All' to disable all. Nicolas Weeger 2011-11-20 New server setting: "special_break_map". Controls whether submaps in random maps can break the walls to be placed. On (can break) by default for historical reasons. Nicolas Weeger 2011-11-20 Rewrite the i18n system. This makes it easier to use strings in the code, instead of arbitrary identifiers. Nicolas Weeger 2011-11-12 Improve artifact support. Add an 'artifact' field to 'object', that is saved and loaded, to keep trace of what (optional) artifact an item was created with. This enables artifact modifications on existing items. Nicolas Weeger 2011-11-01 Apply patch #3428070: Autoreconf Warnings, by Steven Johnson. It is for 'client', but fixes the same bug on server. Nicolas Weeger 2011-10-27 Fix bug #2005689: 2.0 Creator creates items with duplicate names. Have creator objects clear the title instead of setting both it and the name. Nicolas Weeger 2011-10-22 Fix invalid expression. Nicolas Weeger 2011-10-21 Add sys/socket.h to includes, since newserver.h needs it on some systems, and every file includes that. Remove it from files which previously included it, since includes.h takes care of that now. MSW 2011-10-08 Fix face issue with artifacts, eg gems. Nicolas Weeger 2011-09-24 Fix account-related potential crashes. Nicolas Weeger 2011-09-12 Remove curl/types.h include, which is obsolete. Nicolas Weeger 2011-09-10 Enable server to listen to IPV6 ports, as well as IPV4. Maurice Massar 2011-09-10 Relax check for valid listening ports to allow 1..65535. Andreas Kirschbaum 2011-09-08 Fix experience for cure disease going to invalid skill (lockpicking for instance). Nicolas Weeger 2011-08-14 Fix crash when a spellbook a player is reading gets identified, merges and thus changes. Nicolas Weeger 2011-08-13 Enable altars to have a special animation when there is a god intervention. Nicolas Weeger 2011-08-11 Inform player of changes in wc, ac and speed. Nicolas Weeger 2011-08-07 Update character speed and other attributes when consuming items from inventory. Andreas Kirschbaum 2011-08-05 Correctly display changes due to 'bless' spell. Add spell expiry. Nicolas Weeger 2011-08-04 Implement "blessed 1" for TREASURE items: such items never create bad or cursed items (GT_ONLY_GOOD). Andreas Kirschbaum 2011-08-04 Add potion of 'testing monsters', casting probe. Add recipe for it. Both patches courtesy Khaleh. Nicolas Weeger 2011-07-30 Give the alchemy level to generated potions. Fix documentation. Nicolas Weeger 2011-07-30 Remove socket_info.nconn which gets invalid in some cases. Nicolas Weeger 2011-07-24 Add protocol to send quest updates to client. Add optional face to quests. Nicolas Weeger 2011-07-23 Make container's contents browsable like the ground view. Nicolas Weeger 2011-07-10 Randomize chests in random maps. Nicolas Weeger 2011-07-08 Make immunity reduce symptoms when not totally immune. This enables partial disease resistances. Nicolas Weeger 2011-07-08 Display recipes a player knows that can use an item when examining it. Nicolas Weeger 2011-07-08 Tentative fix for bug #3349111: invidious server crash. Don't decrease socket_info.nconns if the socket is not available. In some cases nconns gets decreased too much, which leads to issues. The real fix would be to figure why there is a double decrease... Nicolas Weeger 2011-07-05 Forbid un-locking items not in direct player's inventory. Nicolas Weeger 2011-07-05 Tentative fix for bug #3349111: invidious server crash. Do not destroy init_socket[0], instead try to reopen the listening socket. Do not try to check its status if not valid. Nicolas Weeger 2011-07-02 Correctly link all regions to their parent. Warn if not found. Nicolas Weeger 2011-07-02 Remove NEW_MATERIAL_CODE support. Nicolas Weeger 2011-06-29 Fix crash with detect monster on custom monsters. Reference count wasn't uptodate, thus archetype would be freed. Nicolas Weeger 2011-06-28 Rewrite picture loading logic to not be dependant on picture number in the various bmaps and crossfire.x files. Remove picture number in crossfire.x files. Nicolas Weeger 2011-06-26 Remove stray spaces from outputs of applymode, bowmode, petmode, usekeys. Andreas Kirschbaum 2011-06-25 Remove obsolete type 44 EXPERIENCE. Nicolas Weeger 2011-06-25 Allow non weapon attacks to have animation suffixes. Nicolas Weeger 2011-06-25 Redirect Python's stderr and stdout to the Crossfire log. Uses technique and code from http://stackoverflow.com/questions/4307187/how-to-catch-python-stdout-in-c-code Nicolas Weeger 2011-06-23 Don't open Python script file if cached. Nicolas Weeger 2011-06-23 Do not crash due to corrupted name/password protocol packets. Andreas Kirschbaum 2011-06-19 Send golem's hp and maxhp as part of statistics, so client can display that. Nicolas Weeger 2011-06-12 Give access to jail's information for a region to the plugins. Nicolas Weeger 2011-06-09 Use a specific field (wc_increase_rate, like skills) for summoning creature's wc improvement by level. Nicolas Weeger 2011-06-05 Fix for bug #3309792: Invidious server crash. Don't try to send animation 0, instead clear FLAG_ANIMATE. Set a bug face for animation 0, just in case. Nicolas Weeger 2011-06-01 Correctly update improved weapon's weight in inventory. Nicolas Weeger 2011-05-29 Ensure account information is stored at creation and character linking. Nicolas Weeger 2011-05-29 Implement account password change. Nicolas Weeger 2011-05-23 Tentative fix for bug #3127973: 'detect monster' effect badly positioned. Nicolas Weeger 2011-05-22 Fix crash with character creation using jxclient. Nicolas Weeger 2011-05-22 Prevent converters from creating unpaid coins. Andreas Kirschbaum 2011-05-21 Fix Lythander's pipe not having spell it should. Nicolas Weeger 2011-05-21 Fix god's knowledge handling always considering the god information as new. Nicolas Weeger 2011-05-07 Allow messages from lib/messages to be stored through knowledge system. Nicolas Weeger 2011-05-07 Improve messages (lib/messages): add relative chance, so messages can be more frequent than others. Nicolas Weeger 2011-05-07 Remove hard coded stat values - the stat bonuses (as well as max stat) can be set in a file that is read at load time. The default lib/stat_bonus file has bonuses exactly the same as the old hard coded values (or in case of Charisma, as close as could be done with the change). Note: you must do a 'make install' in the lib directory after this update, otherwise, your server will be missing the stat bonuses and fail to run. Automake/autoconf should automatically be run to know about the stat_bonus file. MSW 2011-05-01 Fix type conversion error and logic mistake resulting in really high prices when selling items in some situations. See the end of query_cost() in server/shop.c for more details. This may fix bug #3163782: Inscription glitch brings 'unimaginable amount of platinum'. Nicolas Weeger 2011-03-22 ============================================================================== Changes for 1.60.0 ============================================================================== lib/collect.pl.in: Remove default line which just generates an error when server starts up and doesn't do anything. server/init.c: Update copyright date & owners that is displayed when program starts up. MSW 2011-01-26 Add another flag to add_player() to have it supress harmless, but perhaps confusing message, about swapping stats - on new clients, all stats are set up in the client - message will still be printed for older clients. MSW 2011-01-22 Remove metaserver1 support from server. lib/settings: Remove settings for metaserver1, add not to update metaserver2 server/init.c, socket/metaserver.c: Remove code MSW 2011-01-22 Don't put artifacts on active list. This fixes boots of mobility and also avoids an [Error] in the log. Nicolas Weeger 2011-01-08 Fix memory leak in formula code. Nicolas Weeger 2011-01-08 Don't make 2 fountains in random maps, one is enough. Nicolas Weeger 2011-01-08 Fix broken fountains in random maps. Nicolas Weeger 2011-01-08 test/unit/common/check_living.c: Modify some hard coded array sizes to use the defined values. Remove randomly generated input values and put those into arrays - the test only works with specific input values, and randomly generating them only works if one is using the same random number generator. test/unit/common/check_item.c: Disable this test if not using glibc - its checking requires specific random number sequence - however, since many of the RANDOM() calls are from within libcommon, not easy to hard code the values. INSTALL: Update notes on make check - only works with default values. MSW 2010-12-26 Change the Animations structure to use New_Face* instead of indexes. Nicolas Weeger 2010-12-05 Accept skill names with spaces (sense curse/sense magic) in addexp command. Andreas Kirschbaum 2010-12-04 Fix some compilers errors in CRE - 0b is non standard constant declaration, some compilers do not like a semicolon after Q_PROPERTY declarations, and it seemed some include files were missing. MSW 2010-11-26 Added function to python plugin for getting the material name and materil number of objects. Returns python dict. (Affects cfpython_object.c and cfpython_object_private.h) Alestan 2010-11-25 Takes in account the magic of a cauldron when the chance of successfully making a recipe is calculated (adds (cauldron->magic+1)/2 to the skill_level in the calculation). Khaleh 2010-11-24 Allow cost_string_from_value() callers to specify maximum coin to use. This enables the guild script to display the account balance with amberium instead of platinum, while leaving shops in platinum. Nicolas Weeger 2010-11-22 Few shop fixes: 1) limit total paid for unpaid items to be per item, not per group - otherwise, player just has to sell items in smaller bunches which doesn't make much sense. 2) Change the minor randomization of shop values to be based on map reset time - in this way, values will change slightly, bug if you are splitting a larger group, you will get consistent values (and if you logout and log back in, as long as the map hasn't reset, will also get same value) 3) Reset value strings for sold items to cap at platinum - fixes problem when selling valuable items that message said you got paid in jade coins, when in fact you did not. MSW 2010-11-21 Enable traps to have unlimited uses, with the 'lifesave' flag. Nicolas Weeger 2010-11-20 Automatically attempt to lockpick doors when not running. This apparently doesn't alter readied spell or such, so should be ok. Nicolas Weeger 2010-11-20 Fix bug 3028405 - Too high bargaining experience when selling containers - due to variations in shop pricing (probably another bug), it can sometimes be the case that bargaining skill results in a higher price (by 1 sp) - I think this might just be a rounding error - however, since the value being used was unsigned, this overflowed into high value, meaning high exp. Change that to unsigned, and now no overflow and not lots of exp. MSW 2010-11-19 Add code to have identified objects merge together with like objects. identify() modified to return object, which may be merged object. examine() modified to stop processing once it does a skill ident on an item, since the pointer is has may now be invalid. MSW 2010-11-18 Add ability for server to provide choice of starting items for new - characters - add support for sending that data and receiving and validating the responses. Add DRAGON_FOCUS type which changes the dragon focus. ---- common/arch.c: Update type checking. Remove check for < 0 - since unsigned value is passed in, that will never happen. doc/Developers/protocol: Add information about choice handling. include/define.h: Add dragon_focus type. server/ob_types.c: Add call to init_type_dragon_focus() socket/requestinfo.c: Include choice options in race/class information we send to client. socket/request.c: Add handling of item choices during character creation. types/Makefile.am, types/dragon_focus/dragon_focus.c: Add code to handle applying dragon focus object. MSW 2010-11-14 Tentative fix fox unability to create characters with some clients. Nicolas Weeger 2010-11-14 Correctly copy initial map information when using advanced character creation. This ensures that if a player dies she'll come back to the initial spot instead of the hall of selection. Fix for bug #3108219: Wrong map upon player death. Nicolas Weeger 2010-11-14 Make skill tools be picked up by the 'magical device' category. This implements part of feature request #3094026: auto-pickup option for lockpick/flint&steel/torch archetypes Nicolas Weeger 2010-11-14 Adjust alchemy success chance to not depend on the ingredients, but only the recipe difficulty as defined in lib/formulae and the skill. Nicolas Weeger 2010-11-07 Adjust alchemy danger computation: remove name length, but take into account weight and cursed or damned item status. Nicolas Weeger 2010-11-07 Have singing honor the 'no_mood_change' flag. Nicolas Weeger 2010-11-06 Partial fix for #3093752: Too hard to get experience in oratory (part 3). Allow orating to monsters with a message (why not?). This also enables to orate to monsters on signs. While we're at it, honor the 'no_mood_change' flag for oratory. Nicolas Weeger 2010-11-06 Partial fix for #3093752: Too hard to get experience in oratory (part 2). Set monster's skill to oratory (in this case) so experience for killing something goes there. Nicolas Weeger 2010-11-06 Partial fix for #3093752: Too hard to get experience in oratory (part 1). Compute skill exp before setting monster's exp to 0. Nicolas Weeger 2010-11-06 Fix broken magic map spell for "small" maps. Nicolas Weeger 2010-11-06 Integrate some lore from the wiki to the messages file. Nicolas Weeger 2010-11-06 Fix possibility of arithmetic overflow in the function buf_overflow(). Arvid Norlander 2010-10-25 Enable Python 2.7 to be used. Prefer 3.1 over 3.0. Arvid Norlander 2010-10-24 Remove 'Fontindex' type and use 'uint16', for coherence. Nicolas Weeger 2010-10-24 server/player.c: Bug fix for new character creation - give racial items before applying class so special racial faces stick. MSW 2010-10-23 Update for advanced (in game) character creation: common/init.c: Add check for new subtype for finding first map. doc/Developers/protocol: Fix formatting, add starting map information. include/shared/newclient.h: Add types for map requestinfo data. include/map.h: Add new map subtypes. include/player.h: Add new ADD_PLAYER_... values for add_player() include/sockproto.h: updated include/sproto.h: updated server/player.c: Change add_player() to have second parameter be a bitmask value and not true/false. Add apply_race_and_class(). server/apply.c: Reformat apply_changes_to_player() and have it take new parameter which determines if class stat bonus can exceed racial maximum. socket/loop.c: Handle startingmap requestinfo requrest. socket/lowlevel.c: Add SockList_AddLen16Data() for cases were we want to send a length prefixed block of data that is >255 bytes long. socket/request.c: Update for loginmethod 2. Update decode_name_password() to support passing length of data back to server via parameter. Handle new character creation data from client. socket/requestinfo.c: Add command to send choice of starting maps to the client. types/player_changer/player_changer.c: Add new parameter to call of apply_changes_to_player() MSW 2010-10-20 Prevent duplicate freeing of socket_struct entries. Andreas Kirschbaum 2010-10-18 Correctly enable plugins to handle THROW and STOP events for projectiles. Nicolas Weeger 2010-10-10 Change from using memory.h to using string.h, include memory.h as well but make use of the check for it we already have in configure... That header shouldn't be needed, but who knows... Also Update the output of the -o flag to be more relevant... Arvid Norlander 2010-10-10 Fix incorrect check in test/bugs/bugtrack/check_2879249.c. Arvid Norlander 2010-10-10 Fix bug that caused server to sometimes crash on account login. Arvid Norlander 2010-10-10 Give access to 'cost_string_from_value' to the Python plugin. Nicolas Weeger 2010-10-10 Use all coin types when displaying prices. Nicolas Weeger 2010-10-10 Do not make symbols globally visible by default on *nix (when supported), on Windows this is always the case. To prevent hidden errors (since most developers seem to test on *nix), use -fvisibility=hidden when GCC is used and make the MODULEAPI and CF_PLUGIN macros use __attribute__ to mark those as visible. This will not break on any compiler not supporting this, but will prevent future hidden errors of this type. A further advantage with this is that it reduces risk of symbol name collision between various dynamic objects. Arvid Norlander 2010-10-09 Add missing CF_PLUGIN in cflogger. This would only fail on Windows since by default on *nix, all symbols are exported. Thus this error went unnoticed until I tried with -fvisibility=hidden and setting the MODULEAPI and CF_PLUGIN macros use __attribute__((visibility("default"))... Arvid Norlander 2010-10-09 Fix some serious compiler warnings (missing declaration of function, fixed by adding an #include; wrong type for argument to snprintf, fixed by changing to use the proper variable) in the test suites. Arvid Norlander 2010-10-08 Fix case where a size_t* and an int* were confused. On my system that resulted in rare data corruption sometimes when the function in question was called. Arvid Norlander 2010-10-08 Fix format string used to include pid in temporary filenames. It was %hx (short) but in reality pids are these days 32-bit. Change to %x and cast the parameter to unsignd int. Arvid Norlander 2010-10-08 Add missing -I in utils/Makefile.am, otherwise mapper.c doesn't find global.h. Arvid Norlander 2010-10-06 Don't crash when there is a mood floor with speed in a container. Fix for bug #3079991: server crash from bad map object. Nicolas Weeger 2010-10-03 Discard items of type PLAYER during map loading. Fix for bug #3079997: server crash from misc type object in a petshop. Nicolas Weeger 2010-10-03 New pickup type, 'container'. Partial fix for bug #3075860: Auto-pickup fails to pickup certain items. Nicolas Weeger 2010-10-02 Use 'magic devices' for weapon and armour improvers during pickup. Partial fix for bug #3075860: Auto-pickup fails to pickup certain items. Nicolas Weeger 2010-10-02 Extend 'reset' to enable to reset unique player maps and unique squares in maps. Nicolas Weeger 2010-09-29 Fix bug #1811411: Ground view is not correctly updated. Correctly send face and name information when there is a player on an item that is being identified. Nicolas Weeger 2010-09-26 Simplify door-opening with keys for player, bypassing hit_player(). This should partly fix bug #1811331: discrete damage bug. Nicolas Weeger 2010-09-26 Fix bug #2072850: Inconsistent limits for damage stat. Nicolas Weeger 2010-09-26 Tentative fix for bug #2020224: buggy(?) crafting yields. Don't call again attempt_recipe(), as that would give again artifact properties to the item. Instead, use the item in the cauldron. Nicolas Weeger 2010-09-26 Partial fix for bug #3075860: Auto-pickup fails to pickup certain items. Correctly pick weapons. Nicolas Weeger 2010-09-26 Fix bug #2938887: problem with casting unknown spell. Change the display logic, don't show all spells when no matching spell. Nicolas Weeger 2010-09-26 Directors should not move doors. This fixes bug #3059451: force (smover) throws doors off hinges. Nicolas Weeger 2010-09-21 Ignore 'FLAG_OBJ_ORIGINAL' for merging purposes. This fixes a merging bug with unique maps. Nicolas Weeger 2010-09-12 Fix broken DM 'follow' command. Nicolas Weeger 2010-09-12 Add unit test exposing a weight reduction issue with containers. Fix said weight reduction bug. Nicolas Weeger 2010-09-11 Fix fishing rod not being correctly applied with ready_skill. This fixes the second part of bug #3060474. Nicolas Weeger 2010-09-08 Fix do_harvest() not checking if player can actually carry what is harvested. This fixes bug #3060474: fishing puts more fishes into inventory than you can carry. Nicolas Weeger 2010-09-08 Fix examine_monster() to handle critically hit cases. Nicolas Weeger 2010-09-08 Unit tests: correctly initialise the config dir (for experience and such). Nicolas Weeger 2010-09-06 CRE: fix item's chance in treasure display. Show % and chance out of total. Nicolas Weeger 2010-09-04 CRE: extract various things to 'ResourcesManager'. This gets back archetypes and treasure sorting, without messing the treasure list's ordering. Nicolas Weeger 2010-09-04 Add key_value 'no_mood_change' that when set to 1 on a monster prevents spells like charm or pacify to have any effect. Nicolas Weeger 2010-09-04 Don't join party again at startup if formed automatically. This leads to party removal, and memory corruption. Nicolas Weeger 2010-09-02 Fix bug #3055569: godenchanting is still buggy. The enchanting code was bypassing attacktypes if weapon was already enchanted. Also fix wrong name check. Nicolas Weeger 2010-09-02 Fix Python Object.Say to automatically use the dialog system if in a dialog context. This makes the object talk after the player, like expected, without needing to change all scripts. Also, 'Say' is almost always used in reply to something said, so it makes sense. Nicolas Weeger 2010-09-02 Fix broken Python Object.Take (inverted parameters). Nicolas Weeger 2010-09-02 server/player.c: Move clearing of monitor_spells to initial socket allocation. Fixes bug where spell updates would cease if player used a savebed and then played again on same server. MSW 2010-08-30 Tentative fix for bug #3054686: unarmed combat xp goes to sorcery by default. When checking for chosen_skill, talismans were taking into account, which is a mistake. Nicolas Weeger 2010-08-29 Fix broken special foods. Duration wasn't updated as needed, making the force expire immediately. Nicolas Weeger 2010-08-28 Fix jumping skill: now jumping into a monster or player attacks it. Andreas Kirschbaum 2010-08-26 Check head parts of multi-part objects when using the skills jumping, singing, or oratory. Andreas Kirschbaum 2010-08-26 Fix possible crash using the singing skill. neodeno 2010-08-26 Remove new lines in town portal messages. Nicolas Weeger 2010-08-16 Fix container-related crash, when a plugin removes the container or equivalent. Nicolas Weeger 2010-08-16 server/c_range.c: Fix missing assignment of spell in player object - only results in crashes if casting time is used. MSW 2010-08-14 Fix wrong attack roll adjust for player in the dark with xray. Nicolas Weeger 2010-08-14 Wrap player state change to a function. Nicolas Weeger 2010-08-14 Correctly inform player of lost overall level at death. Nicolas Weeger 2010-08-14 Make Python's Object.Anim a String in both read and write. Raise an error if invalid animation is set. Nicolas Weeger 2010-08-14 Make Python's Object.Face a String in both read and write. Raise an error if invalid face is set. Nicolas Weeger 2010-08-14 Fix accidentally broke 'tell' command. Nicolas Weeger 2010-08-10 Fix broken 'curse' spell. Nicolas Weeger 2010-08-08 Merge split lines in artifacts messages. Nicolas Weeger 2010-08-08 Don't change decor's move_block in random maps, this messes item merging. Nicolas Weeger 2010-08-07 Fix mover-related crash if in an inventory. Nicolas Weeger 2010-08-07 Change plugin hooks prototype, don't return anything. Make functions static. Nicolas Weeger 2010-08-07 Change event listener prototype for plugins to return int instead of void*. Nicolas Weeger 2010-08-07 Remove unused 'command_' return values. Change function prototype to make 'params' const. Fix some const discarding. Nicolas Weeger 2010-08-05 Make some DM functions static. Move 'command_dumpbelow' to c_wiz.c. Nicolas Weeger 2010-08-05 Remove old 'ring_desc' function. Nicolas Weeger 2010-08-05 Don't send the view when dropping items, that makes appear an opened container was closed. Nicolas Weeger 2010-08-04 Don't switch to golem mode if summon failed. Nicolas Weeger 2010-08-04 CRE: tool to create base for smoothed face from a face. Nicolas Weeger 2010-08-02 Fix bug #2546538: odd rune spell behavior. Don't check grace cost against player's grace if no grace cost. Nicolas Weeger 2010-08-01 Don't display attenuation or repell if denied. Fixes part of #2941923: 11 bugs, alchemy, spell attunement, npc shops, client (WIN). Nicolas Weeger 2010-08-01 Fix bug #3018536: duplication of items in containers. Correctly free the removed item's inventory. Also fix invalid carrying field. Nicolas Weeger 2010-08-01 Remove deprecated function. Nicolas Weeger 2010-08-01 Fix knowledge for recipes not displaying the required cauldron. Nicolas Weeger 2010-08-01 CRE: correctly display artifacts that can be made via alchemy. Nicolas Weeger 2010-08-01 Fix lighter message containing 'NULL'. Nicolas Weeger 2010-08-01 Fix a unit test. Nicolas Weeger 2010-08-01 CRE: add a 'spell table' report. Nicolas Weeger 2010-07-29 Replace some calls to describe_item() with the StringBuffer version. Nicolas Weeger 2010-07-29 Rewrite 'describe_item' to use StringBuffer. Nicolas Weeger 2010-07-29 Rewrite 'describe_resistance' to use StringBuffer. Nicolas Weeger 2010-07-29 Changes related to new character creation code - add new settings value which determine stat ranges, split out the requestinfo replies to its own file (request.c was getting a bit large), add handling for 'newcharinfo' requestinfo, document this in the protocol file. NOTE: you will need to re-run automake & configure to pick up the new source file. --- common/init.c: Initialize new fields in setting structure to default values. doc/Developers/protocol: Add documentation on newcharinfo include/global.h: Add new fields in settings structure for starting stat info. lib/settings: Add new starting stat values to file. server/init.c: Add logic to load new settings value from file. server/player.c: Remove hard coded value, change to use settings value. socket/Makefile.am: Add requestinfo.c file socket/loop.c: Add callback for newcharinfo requestinfo. socket/request.c, requestinfo.c: Move requestinfo handling to its own file, and new function for newcharinfo handling. --- MSW 2010-07-28 Rewrite 'describe_monster' to use StringBuffer. Nicolas Weeger 2010-07-28 Rewrite 'ring_desc' to use StringBuffer. Nicolas Weeger 2010-07-28 Remove unused variable. Document. Nicolas Weeger 2010-07-28 Remove static variable. Nicolas Weeger 2010-07-28 Remove commented out code. Nicolas Weeger 2010-07-28 Remove global variables. Nicolas Weeger 2010-07-28 Fix documentation. Nicolas Weeger 2010-07-28 Explicit why the 'accounts' file can't be opened, to help debug. Nicolas Weeger 2010-07-28 Abort at startup if a creature one can summon has no move_type defined. Add a redundant check for move_type 0 when summoning, set it to walk in this case. This is a fix enforcer for bug #2791003. Nicolas Weeger 2010-07-26 For the throwing skill, prefer items with 'is_thrown'. This makes the player throw eg throwing daggers before other items. Nicolas Weeger 2010-07-23 CRE: alchemy recipes report. Nicolas Weeger 2010-07-21 CRE: display if artifacts can be generated through alchemy. Nicolas Weeger 2010-07-21 Correctly generate readable of specified type if set. This fixes a bug in Scorn (and elsewhere) library where you could have alchemy recipes in the god section. Nicolas Weeger 2010-07-19 CRE: bullet-like spells damage and cost report, praying only. Nicolas Weeger 2010-07-18 CRE: add 'damage' to object wrapper. Nicolas Weeger 2010-07-18 CRE: disable tree sorting for resource window, as that prevents reading the treasure lists correctly. Nicolas Weeger 2010-07-18 Add 'knowledge search ' to filter knowledge. Nicolas Weeger 2010-07-14 Remove unused parameters. Nicolas Weeger 2010-07-14 Don't display in summary functions, but in higher level. Nicolas Weeger 2010-07-14 Don't display in detail functions, but in higher level. Nicolas Weeger 2010-07-14 Enable knowledge filter, with additional parameter to 'knowledge list'. Nicolas Weeger 2010-07-14 CRE: fix displayed alchemy formulae count. Nicolas Weeger 2010-07-10 CRE: parse race-specific maps if they exist. Nicolas Weeger 2010-07-05 Abort() on empty archetype name. Nicolas Weeger 2010-07-05 Extract some code from enter_exit(). server/server.c Nicolas Weeger 2010-06-26 Add item type validity check when loading something. Nicolas Weeger 2010-06-26 CRE: take 'npctoken' and 'setnpctoken' into account for message display. Nicolas Weeger 2010-06-23 CRE: display actual item values for artifacts, as suggested by Leaf. Nicolas Weeger 2010-06-20 CRE: add 'exit' command, add status bar tips to menu commands. Nicolas Weeger 2010-06-20 CRE: read comments from quest pre/post scripts, to display in the dropdown list. Nicolas Weeger 2010-06-19 Add 'purge_quests' DM command to unload quest definition. Useful when modifying quest files, to avoid restarting server. Nicolas Weeger 2010-06-19 Remove unused variables. Nicolas Weeger 2010-06-19 CRE: message rule duplication. Nicolas Weeger 2010-06-19 Correctly mark quests as completed during state loading. Nicolas Weeger 2010-06-19 Remove cf_darcap plugin, as everything is now done through Python scripts and the quest system. Nicolas Weeger 2010-06-19 CRE: enable step reordering. Nicolas Weeger 2010-06-19 Fix suspicious (and duplicate) artifact change. Update documentation. common/artifact.h lib/artifacts Nicolas Weeger 2010-06-13 CRE: display artifact values, as a dump for now. Nicolas Weeger 2010-06-13 CRE: word wrap for messages. Nicolas Weeger 2010-06-13 CRE: quest step description is multiline too, for edition. Nicolas Weeger 2010-06-13 CRE: redesign the quest steps panel, to have inplace edition. This gives a better overview of the steps. Nicolas Weeger 2010-06-13 Make the plugin calls to player titles respect the custom titles the player has set. server/plugins.c, plugins/common, plugins/cfpython Brendan Lally 2010-06-08 Expose one knowledge function to plugin. Nicolas Weeger 2010-06-06 CRE: display alchemy's index. Nicolas Weeger 2010-06-06 Use 'const' for parameters. Nicolas Weeger 2010-06-06 CRE: "setwhen" basic edition support. Nicolas Weeger 2010-06-03 CRE: read and write 'setwhen' quest support, no modification for now. Nicolas Weeger 2010-06-03 server/quest.c, quest step conditions, used to advance quests when another quest(s) are at the 'right' step(s) Brendan Lally 2010-05-30 server/quest.c, #define the state numbers in the quest parsing code Brendan Lally 2010-05-30 Use a specific message to query animation state, fix isn't enough. Nicolas Weeger 2010-05-30 Fix crash in cfanim. Nicolas Weeger 2010-05-30 Change log level to error for various things in cf_anim. Nicolas Weeger 2010-05-30 New variable to cf_anim. Enable object state querying (using 'fix') to know if an object is animated. Nicolas Weeger 2010-05-30 CRE: don't hardcode pre and post conditions files. Nicolas Weeger 2010-05-30 CRE: add 'npctoken' and 'setnpctoken' pre and post conditions. Nicolas Weeger 2010-05-30 Add DM 'purge_quest_state' command to make it easy to fix quest state through manual file editing without restarting server. Nicolas Weeger 2010-05-30 CRE: enable message rule reordering. Nicolas Weeger 2010-05-30 CRE: expand resource tree if only one item. Nicolas Weeger 2010-05-29 CRE: enable new message file creation. Nicolas Weeger 2010-05-29 CRE: enable message rule addition or removal. Nicolas Weeger 2010-05-29 Fix CRE crash when not enough reply data. Nicolas Weeger 2010-05-29 Disable cf_darcap's plugin handleDeath function, replaced by a Python script. Nicolas Weeger 2010-05-29 Expose 'Map.InsertAround' to Python. Nicolas Weeger 2010-05-29 Remove unused "oldmessage" parameter from draw_ext_info, draw_ext_info_format, ext_info_map, ext_info_map_except, and ext_info_map_except2 functions and calls. Kevin Bulgrien 2010-05-28 Fix socket/info.c::draw_ext_message() comments to be more informative and to update them to more completely describe current behavior. Remove the socket/info.c::draw_ext_message() socket/info.c::print_message() call to fix bug 2984255 and to remove inappropriate log file clutter. Remove socket/info.c::print_message() as LOG() is the proper method of logging messages. It is obvious that the function has been modified from its original implementation as it expects a player pointer but does not use it. The only function that called it was draw_ext_info(), and it only did so when the player pointer was NULL or when a player's contr pointer was NULL. It appears that print_message() used to be a mechanism by which an old client could get simple messages without any formatting (based on out-dated comments in draw_ext_info()'s header), but that functionality is long gone. Note: draw_ext_info()'s oldmessage parameter is completely useless, unused, and should be set to NULL. Really it should be removed and all calls to draw_ext_info() cleaned up likewise. Kevin Bulgrien 2010-05-27 Quest parent edition in CRE. Nicolas Weeger 2010-05-26 Permit Quests to define parents, display only parent quests in the quest lists and fold child quests into the parent's description. The same behaviour is used for the quest summary with the -mq flag server/quest.c Brendan Lally 2010-05-25 Display warning if an animation only has one face. Nicolas Weeger 2010-05-24 Support for building utils/mapper.c as crossfire-mapper. The utility is not built by default as it requires libgd (not normally required by the server). crossfire-mapper is not needed to run a server, but it is useful for making crossfire world maps for publishing via web server. To build this utility, specify --enable-mapper when running ./configure. Kevin Bulgrien 2010-05-24 Add missing function prototypes. Use 'const' where possible. Nicolas Weeger 2010-05-23 Speed up compilation with precompiled headers. Nicolas Weeger 2010-05-22 Reply edition panel. Nicolas Weeger 2010-05-22 Fix various crashes. Nicolas Weeger 2010-05-22 'pre' and 'post' conditions edition. Nicolas Weeger 2010-05-22 Extract widget, enable 'message' edition. Nicolas Weeger 2010-05-22 Preliminary rule edition ("match" only for now). Rule file saving support. Nicolas Weeger 2010-05-22 Downcast type, remove const, which apparently cause issues. Nicolas Weeger 2010-05-21 Update help text for filters. Nicolas Weeger 2010-05-21 Don't display an empty menu on right click. Nicolas Weeger 2010-05-19 Add Race to the set of things that can be filtered on in CRE Brendan Lally 2010-05-19 Implement requestinfo for race_info and class_info. Note there is a bug with the archetypes in that many archetypes have type==37 (CLASS) which are not actually class descriptors. socket/request.c: New functions to send class/race information. doc/Developers/protocol: Update document for format of race/class_info requestinfo. MSW 2010-05-18 Improve quest edition, now can add or remove steps. Can add new quests. Nicolas Weeger 2010-05-16 Indicate quest end steps. Enable edition of the 'can restart?' flag. Nicolas Weeger 2010-05-16 Remove unused class. Nicolas Weeger 2010-05-16 Fix crash if wanting to start an unknown quest. Nicolas Weeger 2010-05-16 Highlight rules when the same token. Nicolas Weeger 2010-05-15 Preliminary message file (.msg) support. No edition yet. Nicolas Weeger 2010-05-15 Update the tree if the quest code changes. Enables quest step edition. Nicolas Weeger 2010-05-15 Quest edition, not complete but some fields already. Nicolas Weeger 2010-05-15 Show existing quests, and their various steps. Nicolas Weeger 2010-05-15 Fix typedef definition issue when building CRE. Nicolas Weeger 2010-05-15 Make various pointers const. Nicolas Weeger 2010-05-15 Correctly initialize variable. Make pointers const. Nicolas Weeger 2010-05-15 Clean code. Nicolas Weeger 2010-05-13 Correctly initialize variables. Nicolas Weeger 2010-05-13 Make buffer bigger to avoid truncation, warn if still truncation. Nicolas Weeger 2010-05-13 Remove unused code. Nicolas Weeger 2010-05-09 Make variables 'const'. Nicolas Weeger 2010-05-09 Expose rt_xxx to Python scripts through 'Crossfire.ReplyType'. Nicolas Weeger 2010-05-08 Add 'rt_say', give explicit values. Extract texts to function. Nicolas Weeger 2010-05-08 Add Crossfire.AddReply, Crossfire.SetPlayerMessage and Crossfire.NPCSay wrappers to the Python plugin. Nicolas Weeger 2010-05-08 Transmit talk information to plugins. Make a specific "say" plugin command. Nicolas Weeger 2010-05-08 Keep NPC messages only, in case NPCs are removed during the dialog. Nicolas Weeger 2010-05-08 Extract talk_info to dialog.h. Use sstring for various messages. Nicolas Weeger 2010-05-08 Update Man Page Brendan Lally 2010-05-07 Add -mq as a command line option to dump a list of the quests that the server recognises. Brendan Lally 2010-05-07 Improve dialog system. Use "You" for the player saying something. Don't send multiple texts when @reply is used in dialogs. Nicolas Weeger 2010-05-06 Include -mexp as one of the command line options listed in the help text. Brendan Lally 2010-05-06 Doxygen fixes. Nicolas Weeger 2010-05-06 Make parameters and return values const when applicable. Nicolas Weeger 2010-05-06 Extract artifact functions to their own file. Nicolas Weeger 2010-05-06 Don't send warnings on the server log from the DM's 'create' command. Nicolas Weeger 2010-05-06 Make proto. Nicolas Weeger 2010-05-06 ANSI C89 fix. server/quest.c Nicolas Weeger 2010-05-04 server/player.c: don't switch to account mode if no account name (else segfault). This could happen if the client sends the setup command but starts playing without actually logging in. Nicolas Weeger 2010-05-01 Enforce 2 characters minimum for account passwords, else accounts with 1 character can't create new characters. Some code cleaning. socket/request.c Nicolas Weeger 2010-05-01 server/account_char.c: Modify to use the map name, not path for character listing if that data is available - gives nicer output. socket/request.c: Add numeric face number for character information, add standard handling to send face number to client before use. test/unit/common/check_living.c: Minor change to make it C89 compliant. MSW 2010-04-26 server/quest.c: Allow quest definition files to 'include' other quest definition files. Make the error messages from the quest file parsing code more explicit to make tracking down errors easier. Add quest_get_by_code() which quest_get() now acts as a wrapper to, so that error messages can be given if a quest is defined multiple times. Change the default quest file to world.quests so that old servers will still work properly (but without the new syntax) Brendan Lally 2010-04-26 Clear hp fixing code. Nicolas Weeger 2010-04-26 Clean player grace fixing code. Nicolas Weeger 2010-04-26 Clean player sp fixing code. Nicolas Weeger 2010-04-26 Extract part of fix_object() to fix_player(), to make the function more manageable. Nicolas Weeger 2010-04-26 Rename POTION_EFFECT to POTION_RESIST_EFFECT to better describe what it is. Nicolas Weeger 2010-04-26 Warn players of the end of resistance effects. Nicolas Weeger 2010-04-26 Some unit tests for fix_object(). Nicolas Weeger 2010-04-26 server/skills.c, server/c_object.c, include/sproto.h: Make the 'examine' command id of objects. * Move the detect curse and detect magic logic out into separate functions * Make the id skills use the item types array to figure out which objects they should identify * For any object which is examined, use the player's skills to attempt to detect magic, sense curse and then perform a skill-based id of objects. Brendan Lally 2010-04-26 ============================================================================== Changes for 1.50.0 ============================================================================== server/attack.c: Don't make doors (or other objects) harder to hit because they lack a move type. Remove unused variable. MSW 2010-04-25 Fix a missing whitespace issue that makes books read like "which gives the recipientImmunity to magic". Kevin Bulgrien 2010-04-25 Add ability to send face number (instead of name) - add new definition to newclient.h, update protocol doc. First commit is so shared newclient.h file can get used. Files affected: include/shared/newclient.h doc/Developers/protocol MSW 2010-04-24 Replace [NULL] from response to command-line `crossfire-server -v` with the same text that is sent back to a client when it requests server version. Make `crossfire-server -help` information for -v more accurate to current function. Kevin Bulgrien 2010-04-24 CRE: expose 'item' as an Object instead of an Archetype to scripting engine. Makes things much easier. Nicolas Weeger 2010-04-22 CRE: ac and wc as properties for objects. Nicolas Weeger 2010-04-22 random_maps/treasure.c - Make sure random map dungeon level numbers on signs and keys match up and make sense. This is an off-by-one issue. include/map.h - Change mapstruct members enter_x and enter_y to sint16 since it appears that most other server code uses sint16 types for map coordinates, and the change results in dropping some -Wconversion warnings. Use of -1,-1 in an exit is now the way to mark it the defaults set in the map are used without having to set them in the exit. It may be odd to have -1,-1 in a map (mapstruct), but it still seems better to have type consistency. Also fix up the broken doxygen comment on these items, and add some content detail. Kevin Bulgrien 2010-04-21 Simplify code. Nicolas Weeger 2010-04-21 CRE: export attack types values to scripting. Nicolas Weeger 2010-04-18 CRE: export object's attacktype to scripting. Nicolas Weeger 2010-04-18 CRE: display items count, and if filtered total count. Nicolas Weeger 2010-04-18 Fix unit test for accounts when tmp files are still around. Nicolas Weeger 2010-04-18 Fix invalid attack roll handling in easy cases. Nicolas Weeger 2010-04-18 CRE: export some properties for formulae. Nicolas Weeger 2010-04-18 CRE: set a better progress caption. Nicolas Weeger 2010-04-17 CRE: show report generation progress, enable cancelling. Nicolas Weeger 2010-04-17 CRE: button to copy report contents to clipboard. Nicolas Weeger 2010-04-17 CRE: expose maps to report interfaces. Nicolas Weeger 2010-04-17 CRE: keep map level while we're at it. Nicolas Weeger 2010-04-17 CRE: expand maps node if only maps, resize columns to meaningful size. Nicolas Weeger 2010-04-17 CRE: display an empty panel by default, to force a decent size. Nicolas Weeger 2010-04-17 CRE: display item property in treasure panel. Nicolas Weeger 2010-04-16 CRE: report definition is now managed like filters. Add quick item filter. Nicolas Weeger 2010-04-16 CRE: wrap object name and experience. Nicolas Weeger 2010-04-16 CRE: change disposition for resource window. Nicolas Weeger 2010-04-15 CRE: display region information when one is selected. Nicolas Weeger 2010-04-15 CRE: experience display. Nicolas Weeger 2010-04-15 CRE: load data in the thread, no need to freeze everything. Nicolas Weeger 2010-04-14 CRE: display map name, and exits to and from. Nicolas Weeger 2010-04-14 CRE improvements. Keep region information for maps. Display map list by region, with map experience. Nicolas Weeger 2010-04-14 Fix for bug 2985631 - can not create a new character if you have a long account password. Simple solution is to just truncat password. MSW 2010-04-11 Add some minimal new character support. Work in progress, but added code that at least hands off the username/password to server. --- doc/Developers/protocol: Add some docs on createplayer protocol command. include/sockproto.h, include/sproto.h: Update with new functions. server/login.c: Add code to update account for new characters. server/player.c: Make set_first_map() non static. Change add_player() to take second argument and return the newly created player object. Fix roll_again() output to use <> instead of [], since later are markup commands. socket/loop.c: Add callback for createplayer protocol command. socket/request.c: Add create_player_cmd(). Update add_player to take second argument. types/savebed/savebed.c: Add warning message and prevent player from saving if they have 0 exp and the character won't be saved. Otherwise, it seems to work but does nothing. --- MSW 2010-04-07 Keep rough monster experience for maps. Dump region experience after parsing. utils/cre/CREMapInformation.{h,cpp} CREMapInformationManager.{cpp,h} Nicolas Weeger 2010-04-07 Don't send pickup information if not explicitely asked for. server/c_object.c Nicolas Weeger 2010-04-07 Fix potential crash when changing class. plugins/cflogger/cflogger.c Nicolas Weeger 2010-04-07 Fix crash if 'add_me' was sent multiple times. socket/request.c Nicolas Weeger 2010-04-07 Commit account management code. Seems mature enough for general use - probably a few bugs. What this adds is an account that characters use to log in, at which point they then choose what character they want to play. --- doc/Developers/protocol: Fix some formatting, clarify some points, make some revisions to account protocol commands. include/account_char.h: Move MAX_CHARACTERS_PER_ACCOUNT to this file so other files to access it. include/newserver.h: Add login_method to socket structure. include/sockproto.h: Update for new functions. include/sproto.h: Update for new functions. lib/Makefile.am: Have it make account directory if it does not exist. server/account.c: Fix bug related to loading when only 1 character is associated with account. Change account_exists() to return proper name of account. Clean up some function declarations and bugs. Add some new functions to get character/account data. server/account_char.c: Fix typo and minor errors in error message. server/c_misc.c: Update check_login() for 2 params server/init.c: Add call to load account information. server/login.c: Save account information. Modify check_login() for account logins which bypass password checking. server/player.c: Make get_player() non static. Add enhancements for new login code in play again. socket/init.c: initialize login_method to 0. socket/loop.c: Add new protocol commands with callbacks. socket/request.c: Add loginmethod setup command. Add several new functions to handle account management functionality. test/unit/server/check_account.c: Update for new return semantics for account_exists() --- MSW 2010-04-06 Add more extended statistics information: applied stats. These allow clients to distinguish between depleted stats and stat changes due to gear or skills. Andreas Kirschbaum 2010-04-03 socket/request.c - Fix segfault when client requests spellmon 2. Kevin Bulgrien 2010-04-02 socket/init.c - Remove duplicate initializer. Kevin Bulgrien 2010-04-01 Fix invalid function call. Add function prototypes. plugins/cfpython/cfpython_object.c plugins/common/include/plugin_common.h Nicolas Weeger 2010-04-01 include/shared/newclient.h - Rename the confusing MSG_TYPE_DIALOG_MAGIC_MOUTH to MSG_TYPE_DIALOG_MAGIC_EAR since only magic ears are MSG_TYPE_DIALOG. - Add a new MSG_TYPE_SIGN subtype of MSG_TYPE_SIGN_MAGIC_MOUTH since magic mouths are distinctly different from all other signs, and this might mean a client might want to handle their messages uniquely. server/monster.c - Rename MSG_TYPE_DIALOG_MAGIC_MOUTH to MSG_TYPE_DIALOG_MAGIC_EAR to match up with newclient.h changes. common/readable.c - Add a new MSG_TYPE_SIGN subtype MSG_TYPE_SIGN_MAGIC_MOUTH in conjunction with changes made to newclient.h. Kevin Bulgrien 2010-03-30 - Commit some edits made in conjunction with wiki edits a while back: - Sort the normal commands alphabetically. - Move gsay to the communications command list. - Move printlos out of the communications command list to the normal list. - Move cointoss and orcknuckle out from among the emote commands and put them next to the non-emotion commands in the communications commands group. They still do not seem to be communication commands, but that's where they were already and I don't feel like debating it at the moment. Kevin Bulgrien 2010-03-29 - Add extra detail to the apply command help (lib/help/apply.en) Kevin Bulgrien 2010-03-29 Add a patch written by Funnyman3595 to add Object.Split and Object.Clone to the methods which can be used by python scripts through the plugin. plugins/cfpython/include/cfpython_object_private.h server/plugins.c plugins/cfpython/cfpython_object.c plugins/common/plugin_common.c Brendan Lally 2010-03-30 Changes to the way the server handles quests: Rather than a separate end_quest() function, quest steps may contain the line 'finishes_quest' advancing to any step that contains that line finishes the quest. All references to end_quest are removed. The stage number for completed, unrestartable quests is preserved, and the step description (called 'outcome') is shown for completed quests also. The quest list command output is reworked, it defaults to showing the number of completed quests, and listing the active ones, but 'quest list all' can be used to show all of the quests whether completed or not. plugins/cf_darcap/cf_darcap.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h include/plugin.h server/quest.c server/plugins.c Brendan Lally 2010-03-29 Replace the numbers in the map2 command handling with some #define's include/shared/newclient.h socket/request.c Brendan Lally 2010-03-28 Don't drop the inventory of items marked as 'no drop' common/object.c Brendan Lally 2010-03-28 Massive CRE improvements. Filters are now defined globally. Report window, to display things (will be improved soon). Nicolas Weeger 2010-03-27 Don't list invisible items as part of the contents of chests when applied. types/treasure/treasure.c Brendan Lally 2010-03-26 Town portal now has an animation instead of being immediate. server/spell_effect.c Nicolas Weeger 2010-03-25 Have disappearing FLAG_IS_USED_UP items put their inventory on the ground, not on pile top. server/time.c Nicolas Weeger 2010-03-25 Add new flag to object_free() to force inventory contents on the ground instead on pile top. common/object.c include/object.h Nicolas Weeger 2010-03-25 Add '!' to pickup to toggle the mode. lib/help/pickup.en server/c_object.c Nicolas Weeger 2010-03-25 Basic help text for filtering. Nicolas Weeger 2010-03-25 Basic filtering on artifacts and formulaes. Nicolas Weeger 2010-03-24 Enable filtering on archetypes (name and clone's type). Nicolas Weeger 2010-03-24 Add requestinfo/replyinfo mechanisms to get the news/rules/motd file. In this way, client does not need to parse drawinfo commands, and this functionality is needed in account based logins since the login code path is different. Add setup command for loginmethod - work in progress but needed for testing. --- socket/request.c: Add setup loginmethod, add send_file() to send files socket/loop.c: Update requestinfo handling to deal with motd/news/rules doc/Developers/protocol: Clarify some areas of protocol. Add information about requestinfo/replyinfo for news/rules/motd MSW 2010-03-23 As per discussion on IRC, some changes to hopefully improve balance - will await feedback: common/living.c: Don't have the magic of an item affect wc. Only if wc is explicitly set does it improve the character. server/skills.c: Tweak lockpicking - give the skill level more relevence. Have difficulty increase exp gained. MSW 2010-03-23 Fix EVENT_SAY for items in a container. server/monster.c Nicolas Weeger 2010-03-22 Reformat and spellcheck all help texts and default rules/motd/news files. Andreas Kirschbaum 2010-03-21 Add help for 'title' command. Andreas Kirschbaum 2010-03-21 Send updated ground view when num_look_objects is received. socket/request.c Nicolas Weeger 2010-03-20 Extract function to find player from socket. include/sproto.h server/player.c socket/request.c Nicolas Weeger 2010-03-20 Don't send empty "stats " commands. socket/request.c Nicolas Weeger 2010-03-20 Add extended statistics information: race stats, natural stats. This enables clients to display depletion and such. doc/Developers/protocol include/newserver.h player.h include/shared/newclient.h README socket/init.c request.c Nicolas Weeger 2010-03-20 Fix crash with "cast" command having no arguments. Andreas Kirschbaum 2010-03-19 Cache map information. utils/cre/ CREArchetypePanel.cpp CREArchetypePanel.h CREMainWindow.cpp CREMainWindow.h CREMapInformationManager.h CREMapInformationManager.cpp CREMapInformation.cpp CREMapInformation.h CREResourcesWindow.cpp CREResourcesWindow.h cre.pro Nicolas Weeger 2010-03-17 Basic settings for map cache directory, and associated dialog. utils/cre/cre.{cpp,pro} CRESettings.{cpp,h} CRESettingsDialog.{cpp,h} Nicolas Weeger 2010-03-14 Add relevant debug flags to compilation. utils/cre/.qmake.cache Nicolas Weeger 2010-03-14 Use archetype name instead of archetype itself. Show map name in list too. utils/cre/CREArchetypePanel.cpp CREMapInformation.{cpp,h} CREMapInformationManager.{cpp,h} CREMainWindow.cpp CREUtils.{cpp,h} Nicolas Weeger 2010-03-14 Remove obsolete map fields in header. common/map.c Nicolas Weeger 2010-03-14 Basic map browsing. Report archetype use in maps. Modified files: utils/cre/cre.pro CREArchetypePanel.cpp CREMainWindow.{cpp,h} New files: utils/cre/CREMapInformationManager.{cpp,h} CREMapInformation.{cpp,h} Nicolas Weeger 2010-03-14 Sort alphabetically by default. utils/cre/CREAnimationPanel.cpp CREArchetypePanel.cpp CREResourcesWindow.cpp Nicolas Weeger 2010-03-14 Display archetype use in other_arch and treasure lists. utils/cre/CREArchetypePanel.{cpp,h} Nicolas Weeger 2010-03-14 Rename field 'class' to 'character_class' because that's a reserved C++ keyword and thus conflicts for CRE building. Nicolas Weeger 2010-03-14 Update account handling - add character specific handling for the accounts, add test case, and add some missing svn keywords. Still some more work to be done here --- doc/Developers/protocol: Clean up formatting some. include/Makefile.am: Add new file include/account_char.h: New file for account information include/global.h: Include account_char.h include/newserver.h: Add references to account information to socket include/sproto.h: Add function prototypes socket/init.c: And initialization & cleanup for account info in socket server/Makefile.am: Add new file server/account.c: Add creation time to account record server/account_char.c: New file - character management server/login.c: Add code to update character info in socket. server/server.c: Add periodic saving of account information. test/unit/server/Makefile.am: Update for new file test/unit/server/check_account_char.c: New file - test for character management MSW 2010-03-14 Enable sacrificed items on altars and such to be alive, if asked for. server/common/button.c Nicolas Weeger 2010-03-13 Fix some object_free_drop_inventory() to object_free2(). server/apply.c c_wiz.c login.c plugins.c server.c skills.c spell_effect.c Nicolas Weeger 2010-03-13 Do not send negative area for empty magicmap responses. Andreas Kirschbaum 2010-03-12 Do not run EVENT_DESTROY plugin events for merged objects. Andreas Kirschbaum 2010-03-08 Properly free inventory of merged objects. Andreas Kirschbaum 2010-03-08 Rename object_free() to object_free_drop_inventory() to hint about possible side-effects. Andreas Kirschbaum 2010-03-08 Properly distinguish between text and binary files. Andreas Kirschbaum 2010-03-07 Correctly reset los when mapsize changes. socket/request.c Nicolas Weeger 2010-03-07 Load regions before trying to load the initial map. common/init.c Nicolas Weeger 2010-03-07 Fix crash when plugin removed dropped item. server/c_object.c Nicolas Weeger 2010-03-07 Misc Win32 fixes. Nicolas Weeger 2010-03-06 Fix possible segmentation fault when shutting down the server. Andreas Kirschbaum 2010-03-04 Don't call server functions directly from plugins. Nicolas Weeger 2010-02-28 Make object_dump() and get_ob_diff() use const object*. Nicolas Weeger 2010-02-28 CRE: display archetype information. Nicolas Weeger 2010-02-28 CRE: try the object name if archetype isn't found for artifact display. Nicolas Weeger 2010-02-28 CRE: display 'yes' and 'no' sub lists. Nicolas Weeger 2010-02-28 Only consider items of the right knowledge type, to avoid dumb crashes. Nicolas Weeger 2010-02-28 Correctly handle NONE subtreasure list in treasure list. Nicolas Weeger 2010-02-28 Simplify code. Nicolas Weeger 2010-02-28 Extract 'remove_depletion' function from potion. Give access to plugins to it, add to Python wrappers. Nicolas Weeger 2010-02-28 Use ARCH_DEPLETION instead of hardcoding the value. Nicolas Weeger 2010-02-28 Rewrite spellpath_msg() to use stringbuffer. Nicolas Weeger 2010-02-13 Fix memory leak. Nicolas Weeger 2010-02-13 Rewrite artifact_msg() to use stringbuffer, not complete. Nicolas Weeger 2010-02-13 Fix stupid infinite loop. Nicolas Weeger 2010-02-13 Track god-information knowledge. Nicolas Weeger 2010-02-07 Extract describe_god() from god_info_msg(), use StringBuffer. Nicolas Weeger 2010-02-07 Make artifact description more random (for items it can apply to), correctly handle forbidden items. Nicolas Weeger 2010-02-07 Fix artifact description to use item's name, not archetype name. Nicolas Weeger 2010-02-07 Keep track of monster knowledge. Nicolas Weeger 2010-02-07 Tweak knowledge functions, preparing for additional items. Nicolas Weeger 2010-02-07 Remove support for lib/treasures file from lib/collect.pl. Andreas Kirschbaum 2010-02-01 Remind player of spell consumption when casting. Nicolas Weeger 2010-01-31 Extend alchemy to describe item combinations/transformations. Nicolas Weeger 2010-01-31 Ensure formulae with 0 chance are never listed. Nicolas Weeger 2010-01-31 Tighten up string checking for accounts, since they will get used for filenames. Add new checks for these new allowed characters. Files: server/account.c test/unit/server/check_account.c MSW 2010-01-21 Add 'spellmon 2' setup option, to send more spell information. This includes if the spell needs arguments (another spell, ...) and if the spell requires items to be cast. Nicolas Weeger 2010-01-24 Enable spells to consume items to be cast. Nicolas Weeger 2010-01-24 When talked to, NPCs now stay still a few ticks before moving - only if random movement. Nicolas Weeger 2010-01-24 Give access to quest-related functions to the Python plugin. Nicolas Weeger 2010-01-24 Tweak Spike's quest (Darcap) so it can be done again and again. Nicolas Weeger 2010-01-24 Plugin access to 'quest_was_completed' function. Nicolas Weeger 2010-01-24 Track quests already completed once, so we can avoid giving a super reward all the time. Nicolas Weeger 2010-01-24 Revamp quests, use a definition file to factorize things. Nicolas Weeger 2010-01-24 General cleanup related to protocol and documentation. Make many setup options that have been around for a while standard. MSW 2010-01-19 -- doc/Developers/protocol: Clean this up - remove obsolete commands, document protocol commands consistently, stating what type of data the different commands expect. Update for new account based protocol commands (not yet implemented) include/shared/newclient.h: Formatting fixes, add MSG_TYPE_ADMIN_ERROR include/newserver.h: Remove fields from socket structure which are now considered standard. include/sockproto.h: Add print_ext_msg() socket/image.c: Remove code that handles setfacemode socket/info.c: Always use drawextinfo socket/init.c: remove initializations for what are now standard options. socket/loop.c: Remove setfacemode, setsound, toggleextendedinfos, toggleextendedtext protocol commands. socket/request.c: Remove obsolete setup options. Put options that should be removed (but clients are using them as version tests) to end of routine. Remove toggle_extended_infos_cmd() - now default. Remove toggle_extended_text_cmd() - server now uses drawextinfo exclusively. Remove set_sound_cmd(). Update map_newmap_cmd() to assume client supports newmap command. -- Fix various missing return values and warnings in functions. Nicolas Weeger 2010-01-18 Player knowledge management. See server/knowledge.c for more technical information, and doc/knowledge for playing information. Nicolas Weeger 2010-01-18 Fix a crash when using shutdown. Nicolas Weeger 2010-01-17 Implement a quest in Darcap, just to test stuff - no combat, just get items :) Nicolas Weeger 2010-01-17 Low-level quest status handling. Nicolas Weeger 2010-01-17 New property for plugins to get the raw name without any modification. Nicolas Weeger 2010-01-17 Invalidate parsed dialog when setting the message through a plugin. Nicolas Weeger 2010-01-17 Add 'min_level' for alchemy formulae. Nicolas Weeger 2010-01-16 Failing at mushroom of Gourmet only yields ashes instead of some random nasty effect. Nicolas Weeger 2010-01-16 Remind player when doing alchemy in wizard mode. Nicolas Weeger 2010-01-16 Add 'failure_arch' and 'failure_message' to formulas, to have specific archetypes be generated in case of failure instead of a random effect. Nicolas Weeger 2010-01-16 Punishment for players selling holy relics from the St Andreas church. Nicolas Weeger 2010-01-09 New object event for plugins: selling (object is being sold by activator). Nicolas Weeger 2010-01-09 Plugin utility function cf_map_insert_object_around(). Nicolas Weeger 2010-01-09 The Darcap church is now a sacred place, don't kill ghosts there! Nicolas Weeger 2010-01-09 Give the price in coins instead of platinum only. Nicolas Weeger 2010-01-09 Export query_cost_string and cost_string_from_value to plugins. Nicolas Weeger 2010-01-09 Add account handling code. This is work in progress - the checked in piece is the backend piece. Protocol updates and client interface are next steps to do. As part of this, split_string() was modified to take as an argument the seperator - this is useful because the account code stores the player names in a semicolon separated list. MSW 2010-01-07 --- common/image.c: Update call to split_string() common/utils.c: Modify split_string() to take as an argument the seperator - this makes it more useful/general purpose. include/libproto.h: Update split_string() prototype include/sproto.h: Add prototypes for account.c server/Makefile.am: Add account.c server/hiscore.c: Update call to split_string() server/swap.c: Update call to split_string() test/unit/server/Makefile.am: Add check_account test. test/unit/server/check_account.c: functional tests for account code. test/unit/common/check_utils.c: Update split_string() call First version of a Darcap handling plugin. For now handles the barman in the tavern. Nicolas Weeger 2009-12-28 Correctly make monster face its direction when using move_to. Nicolas Weeger 2009-12-12 Fix monster_compute_path. Nicolas Weeger 2009-12-12 Pass an empty string rather than NULL to command_function if no parameters are given. Andreas Kirschbaum 2009-12-20 server/c_misc.c: Fix overflow in showing how much time character has been played - use 64 bit interim values. MSW 2009-12-12 Prevent DMs from using 'quit', else they aren't actually deleted. Nicolas Weeger 2009-12-12 Try to fix disappearing dragon abilities when converting to a god. Nicolas Weeger 2009-12-12 Track how many ticks the character has been played. Piece of information tracking easy to add in. Output is shown in the statistics command. MSW 2009-12-07 Send 'pickup' update to clients requesting it when the player uses the 'pickup' command directly. Nicolas Weeger 2009-12-06 Honore the 'NO_PICK' flag for generated BOOKS even if empty. Nicolas Weeger 2009-12-05 test/unit/common/check_time.c: Remove apparent debugging output which doesn't really belong. MSW 2009-12-01 Fix some crashes on malformed input in alchemy loading code. Arvid Norlander 2009-11-29 Fix potential NULL dereference in poisoning code in server/attack.c. Arvid Norlander 2009-11-28 Implement proper error handling on malformed regions file. Also added a new fatal() message to refer to the last error (used in region parsing, will be used elsewhere soon too). Arvid Norlander 2009-11-28 Fix a potential NULL dereference due to passing a potential NULL pointer to qsort(). Arvid Norlander 2009-11-28 Fix uninitialised value on a empty attackmess file. The issue should never happen in practice however. Arvid Norlander 2009-11-28 Fix some dead initialisations (value assigned never used). Arvid Norlander 2009-11-28 We already used the generic autoconf INSTALL. Update it to a newer version (autoreconf automatically updated it). Arvid Norlander 2009-11-28 Add missing prototype to include/sproto.h Arvid Norlander 2009-11-28 Add correct text to highscore table for players disconnecting from the game. Andreas Kirschbaum 2009-11-22 Make utils/cre actually build and link. Nicolas Weeger 2009-11-16 Not finding an archetype in second_arch_pass indicates a mistake in archetypes file, so it's better to just exit so it gets fixed instead of leading to issues later on. Nicolas Weeger 2009-11-16 Rewrite hiscore.c module. Now the highscore file is read once when the server is started and written whenever it changes. Adding new entries and generating output for the 'hiscore command do not anymore read the highscore file from disk. Andreas Kirschbaum 2009-11-15 Remove support for undefined translations 'nl', 'de', and 'it'. Removes some error messages at startup. Andreas Kirschbaum 2009-11-14 Remove 'explore' mode. Andreas Kirschbaum 2009-11-14 Fix formatting of 'hiscore' command output. Andreas Kirschbaum 2009-11-13 Omit objects below the floor from the ground view. Andreas Kirschbaum 2009-10-29 Fix exit location for the goto command in server/c_wiz.c (was broken when exit coordinates recently changed so that (-1,-1) meant default coordinates). Arvid Norlander 2009-10-29 Disable [Debug] messages by default. Use the -d command-line option to enable debug messages. Andreas Kirschbaum 2009-10-25 Fix incorrect error message for throwing skill when no throwable object was found. Andreas Kirschbaum 2009-10-25 Fix checks for incorrect/missing parameters of 'abil' command. Andreas Kirschbaum 2009-10-25 Adapt regression test to changed spell parameters (r12127). Andreas Kirschbaum 2009-10-24 Fix #2879249 (SIGSEGV on transport moving across some edges of tiled maps). Andreas Kirschbaum 2009-10-23 Change exits pointing to new map's default coordinates from (0,0) to (-1,-1). This allows exits to point to (0,0). Andreas Kirschbaum 2009-10-23 The hiscore command requests 50 high scores, but for some reason the command that outputs the scores arbitrarily returns only 49. Removed a needless decrement of the max parameter. Now the command returns 50. Kevin Bulgrien 2009-08-31 Remove i18n strings and help files that used to support the output-sync and output-count functionality. Kevin Bulgrien 2009-08-31 Remove output-count and output-sync from the server. Remove the output buffer defines and declarations, along with the outputs_sync and outputs_count items. Remove now unused flush_output_element(), check_output_buffers(), various comments, calls to removed functions, output-sync and output-count command support, player struct outputs_sync and outputs_count members. This mod does attempt to preserve player file compatibility with older server versions by always saving legacy defaults to the player file outputs_sync and count parameters. Re-ran make cproto to add missing items fix brokenness in the proto files. NOTE: References to I18N_MSG_CMISC_099, 100, 101, 102, 103, and 104 were removed, but the messages themselves were not removed and no attempt was made to see if other references still exist. Kevin Bulgrien 2009-08-13 Fix bug 2835449 pickup is broken by changing server/login.c check_login() to read the pickup value saved in the player file as an unsigned value instead of as a signed value. Unfortunately corrupted player files still have the debug bit set, and this fix does not address that issue. To fix the player file, zero out the pickup value, or adjust the value to turn off the debug bit. Kevin Bulgrien 2009-08-11 Fix regression introduced at revision 12136 by commenting an uncommented line in experience table D (Table C is supposed to be used). Reported by MarkM / knotwork. Causes server start failure [Error] Experience for level 116 is lower than previous level (0 <= 67200000000). Kevin Bulgrien 2009-08-10 Set perm XP to 50 and select experience table C to match the metalforge server configuration. Meflin 2009-08-08 Fix for tracker #2825935 `cast consecrate` regression introduced at revision 11827, Sat Jun 13 2009 in server/spell_effect.c that resulted in "You are not standing over an altar!" even when standing on an altar. The regression caused the altar check to iterate over character inventory instead of objects below the character. Various spelling issues also corrected. Kevin Bulgrien 2009-08-03 Fix whitespace issue with an attack message "viciously strikes". Kevin Bulgrien 2009-08-01 Disembark transport when using dimension door from inside. Andreas Kirschbaum 2009-07-14 Fix some grammar in server/login.c. Kevin Bulgrien 2009-07-11 Fix some crashes observed on invidious due to access to uninitialized variables. Andreas Kirschbaum 2009-07-11 Fix player save file parser. Now usekeys and applymode settings are retained between logins. Fixes #2819301 (usekeys setting no longer persists across logout.) Andreas Kirschbaum 2009-07-10 Fix some memory leaks when updating object->msg. Andreas Kirschbaum 2009-07-09 Fix for bug 2.0 wraith feed auto-ready bug? - ID: 1989153 - unarmed skill selection is hardcoded. Add a command - 'unarmed_skill' in which player can specify what unarmed skill to use by default instead of the server using its built in defaults. --- common/player.c: clear unarmed_skill field in clear_player() include/sproto.h: Add definition for command_unarmed_skill() include/player.h: add unarmed_skill field to player structure. lib/Makefile.am,lib/help/unarmed_skill.en : Add help file for unarmed_skill server/c_misc.c: Add command_unarmed_skill() to set/get preferred unarmed skill. server/commands.c: Add unarmed_skill to command listing. server/login.c: Add code to load/save unarmed_skill value. Since there are several saved/loaded string values, pull processing of that out and make the string value available to all values. Updated some of the other users in the login function. server/player.c: Set unarmed_skill to NULL for new players. server/skill_util.c: Modify find_best_player_hth_skill() to look at unarmed_skill if set. MSW 2009-07-02 Fix bolt spells: do not hit caster. Do not allow casting into walls. Andreas Kirschbaum 2009-06-29 Fix trajectory of thrown objects. Formerly some objects did speed up again after they should have fallen to the ground. Andreas Kirschbaum 2009-06-24 Fix incorrect player counts in /maps command output for logged out players. Andreas Kirschbaum 2009-06-24 Fix alchemy failure effect: now the cauldron actually explodes. Andreas Kirschbaum 2009-06-24 Add help file for "chat" command. Andreas Kirschbaum 2009-06-24 Fix monster movement code. Now multi-tiled monsters are much smarter attacking the player. Andreas Kirschbaum 2009-06-24 Fix monster movement code. Now monsters opening door and/or destroying earthwalls works. Makes multi-tiled monsters more agile. Andreas Kirschbaum 2009-06-24 Make monsters hit doors with attack damage rather than fixed 1000 damage. Andreas Kirschbaum 2009-06-24 Make bullet swarm spells fire three tiles wide. Andreas Kirschbaum 2009-06-23 Change movement of ball spells. Andreas Kirschbaum 2009-06-22 Make missile and ball spells hit targets adjacent to the caster. Formerly the spell did start one tile away. Andreas Kirschbaum 2009-06-22 Limit missile spells to turn at most one direction per turn. Andreas Kirschbaum 2009-06-22 Make missile and ball spells target a random part for multi-tiled objects. Andreas Kirschbaum 2009-06-22 Fix array out-of-bounds accesses for monsters having stats > 30. Makes trolls pick up boulders. Andreas Kirschbaum 2009-06-22 Do not teleport character to savebed when re-logging in in a random map. Andreas Kirschbaum 2009-06-21 Make monsters take the shortest route to the player. Andreas Kirschbaum 2009-06-20 Suppress error messages about non-existing items for "apply -a" on already applied items or "apply -u" un unapplied items. Andreas Kirschbaum 2009-06-20 Make singing and oratory skills work against multi-tiled monsters. Andreas Kirschbaum 2009-06-20 Retain unaggressive flag for splitting monsters. Andreas Kirschbaum 2009-06-19 Prevent black puddings from jumping over walls. Andreas Kirschbaum 2009-06-19 Insert dropped objects below the player. Andreas Kirschbaum 2009-06-18 Allow monsters to pick up "throwable" items as weapons. Andreas Kirschbaum 2009-06-18 Change weight check for monsters in object_get_pick(): replace "item_weight <= picker_weight/3" with "total_picker_weight does not exceed get_weight_limit(picker)". This allows hill giants to pick up boulders and prevents vampires from carrying unlimited weight. Andreas Kirschbaum 2009-06-17 Allow monsters to apply items even if they do not know the needed skill. Requiring the appropriate can_xxx flag is good enough. Andreas Kirschbaum 2009-06-17 Add shopitems type 'none' matching items with 'type 0'. Prevents some error messages in the server log. Andreas Kirschbaum 2009-06-17 Fix monsters applying items generated from treasure lists: do not apply items before all treasures have been created. Without this fix applying of weapons did sometimes fail because the needed skill was generated after the weapon. Andreas Kirschbaum 2009-06-17 Include "hostile" attribute in (pk) messages. Andreas Kirschbaum 2009-06-16 Fix owner check ("The weapon does not recognize you as its owner.") for bows and character names which are a prefix of the owner's name. Andreas Kirschbaum 2009-06-16 Fix incorrect experience calculation when disarming traps/runes as reported by Alex Tokar. Andreas Kirschbaum 2009-06-14 Move party related code into party.c module. Fix PARTY_KILL_LOG compile-time option. Reliably print party join/leave messages. Properly leave the party when the client connection breaks or when the character logs out. Properly clean up empty parties. Andreas Kirschbaum 2009-06-14 Add command parameter validation as reported by Alex Tokar. Andreas Kirschbaum 2009-06-14 Extract code accessing or manipulating the player's title into player.c module. Fixes #2017797 (Multiple 'the' displayed in hiscore output). Needs update to existing 'settings' files: remove all occurrences of "%T" from who_format and who_wiz_format. Andreas Kirschbaum 2009-06-14 Do not switch a monster's enemy at each attack. This allows pets to concentrate on one enemy when being attacked by multiple enemies. Do not change monster's enemy from pet to player whenever the player's pet attacks the monster. Make pets using ranged weapons work correctly on tiled maps. Make pets using skills work correctly on tiled maps. Make pet movement work correctly on tiled maps. Andreas Kirschbaum 2009-06-14 Rewrite loops iterating over inv/env/below/above object lists with macros that are not affected by objects being modified/removed/freed within the loop. Andreas Kirschbaum 2009-06-13 Apply patch by Dany Talbot fixing #1990214 (2.0 godenchant bug?). Andreas Kirschbaum 2009-06-10 Fix #1961814 (scripting failing to drop items). Also fixes "drop 1 cauldron" command. Andreas Kirschbaum 2009-06-10 Fix rod generation: make sure it can hold enough spell points. Now all light rods get spell points for 3 changes, heavy rods for 6 charges. Andreas Kirschbaum 2009-06-10 Merge HORNs (type 35) into RODs (type 3). Andreas Kirschbaum 2009-06-10 Fix monsters not using wands/staffs/rods. Andreas Kirschbaum 2009-06-09 Remove support for obsolete attributes can_use_rod, can_use_wand, and can_use_horn. These attributes have been read/written from/to map files but not used for anything. Andreas Kirschbaum 2009-06-09 include/shared: Add as a non-external directory. include/shared/newclient.h: Added client/trunk/common/shared/newclient.h revision 11674 to transfer control of newclient.h from client area to server area. include/shared/README: Add a file with a brief note stating that the client references the files in this directory using an SVN external property. Kevin Bulgrien 2009-05-09 include: After advice of Ragnor against svn:externals without -r, deleted the svn:externals pointing to client/trunk/common/shared, after also coming to the conclusion that this needs to be controlled in server vs. client so that any client software base that wants to use this file can specify the version of the file they want instead of the server having to pick one from somewhere else. Kevin Bulgrien 2009-05-09 include: Added svn:externals pointing to client/trunk/common/shared include/includes.h include/Makefile.am include/newclient.h: Removed. Duplicate file. socket/item.c socket/image.c socket/request.c socket/lowlevel.c server/c_range.c server/shop.c server/player.c: changed references of newclient.h to shared/newclient.h. Kevin Bulgrien 2009-05-09 server/c_object.c: Fix crash when picking up some flying objects. Andreas Kirschbaum 2009-04-20 Fix for bug 2281692 - CFDialog conversation NPC answer precedes PC speech. server/monster.c: ext_info_map() wasn't called until after the event logic. Instead, for players, we can draw it immediately - we only need to perhaps do something special for monsters. In this way, conversation is in the correct order. MSW 2009-04-14 Apply #2753395 (help file for the wimpy command). Andreas Kirschbaum 2009-04-11 Fix for bug 2602566 - Players can nest containers. pick_up() has largely same functionality, but lots of changes to remove the series of gotos and generally just clean it up. server/c_object.c: Clean up function pick_up(). Modify put_object_in_sack() to not allow containers to be put in containers. MSW 2009-04-07 Fix for bug include/autoconf.h.in - customize stack of weapons bug. This commit also fixes some other things, like update name not getting sent to the client when doing the prepare. types/weapon_improver/weapon_improver.c: All changes in prepare_weapon(): Split stack of weapons so other items don't disappear. Move the draw_info() call after updating the weapon name, so it uses new weapon name. Add call to esrv_update_item() to update the name of the weapon. MSW 2009-04-05 common/friend.c, common/exp.c, common/button.c, common/object.c, common/utils.c: Fix some bad format strings for LOG(). Arvid Norlander 2009-03-04 common/map.c: Based on profiling of charm monster on a large map with Chinese dragons, optimise get_map_flags() a bit by avoiding a call to out_of_map(), get_map_from_coord() performs the needed checks and we need to call it anyway. Also fix typos in the documentation for get_map_from_coord(). Arvid Norlander 2009-03-03 server/attack.c: Fix crash bug introduced in r11584 (Fix for bug 1922771: xp non zero in meditation). Bug triggered by charming chinese dragons. Arvid Norlander 2009-03-03 Work in progress skill rebalance code. This should not affect play in any way - while it introduces some new skills, those skills are not available right now (players need to choose class that doesn't exist). --- doc/Developers/spells: Fix some typos, add info on elemental shield. include/skills.h: Add new magic skills. Update defines related to that. Change terminator of unarmed_skills[] to 0, so type is defined as unsigned so -1 doesn't work. include/spells.h: Add new spell type - elemental shield. server/player.c: Don't remove spell objects from new characters - this makes it possible to give starting characters set of spells. This shouldn't make any difference - if characters have spells they shouldn't, this suggests an issue with treasurelists. server/skill_util.c: Modify find_skill_by_name() to take comma separated list of skill names. This is used for common spells to all spell casting skills (something like detect magic) - don't want 4 versions of it, and don't want to require character to know a particular skill for something basic. Also add handling for new skills. server/skills.c: Add note about problems of raising monsters Wis on failed steal attempt. No actual code change. server/spell_effect.c: Update for auras that provide resistances. server/spell_util.c: Add handling for elemental shield spell. -- MSW 2009-03-02 Fix for bug 1830750: Buffer overflow with stat depletion via rabies (note it wasn't an actual buffer overflow by integer overflow). Fix was to modify check_stat_bounds() to take parameters for valid range, and add check for it for the disease a well as temporary calculations in fix_object. --- common/living.c: Modify check_stat_bounds() as described above. Update existing calls and add new call in fix_object() include/libproto.h: Update with no prototype. server/disease.c: Update disease function to use get_attr_value/ set_attr_value. Add call to check_stat_bounds to make sure disease stats are within range. server/player.c: Update calls to check_stat_bounds() MSW 2009-03-02 test/toolkit/toolkit_common.c, test/include/toolkit_common.h: Fix a lot of compiler warnings in the unit tests by adding a missing prototype to a header and correcting another prototype. server/c_misc.c: Fix trivially player triggered uninitialised read in the language command. common/object.c: Use "%s" to LOG() when dumping objects instead of passing the dump as format string. Fix some compile warnings about variable shadowing. Arvid Norlander 2009-03-02 common/anim.c: Use "%s" to LOG() when dumping objects instead of passing the dump as format string. common/image.c: Fix LOG() with too formatstring/parameter mismatch. common/init.c: Fix a compiler warning when using MEMORY_DEBUG, fix an uninitialised read if tod data file exists but is invalid (default to sane value instead, as is done if the file doesn't exist at all). common/map.c: Fix a potential uninitialised read. Arvid Norlander 2009-03-02 macros/cf_python.m4: Support Python 3 but prefer Python 2 when possible. This is because Python 3 is still rather experimental. To force building against a specific Python version use --with-python=path where path is replaced with the install prefix for Python. Arvid Norlander 2009-02-27 plugins/cfpython/cjson.c: Add support for Python 3. For Python 3 we always encode to Bytes but can decode both Bytes and Unicode. For decoded strings the default is to use Unicode under Python 3 (and under 2.x we still default to String). plugins/cfpython/cfpython: Support for Python 3. This involves some changes for Python 2.x too in order to make it possible to maintain the code. Some of the Python 3.x specific code for caching bytecode is rather messy and could be probably be improved. The way the constant modules are created has been changed to support both Python 2.x and 3.x (now using PyModule_New()). Arvid Norlander 2009-02-27 server/attack.c: Fix for bug 1922771: xp non zero in meditation. In poison_living(), do some more work to find proper skill to set to credit the exp gain - for players, op->skill doesn't look like it is set, but op->chosen_skill is. MSW 2009-02-26 autogen.sh: Error out if the various programs called aren't successful. This means we can hopefully get the first error in bug reports instead of errors caused by the first error later. Arvid Norlander 2009-02-26 server/attack.c: Fix for bug 2019648: Too high experience gain with draining monsters. Don't add more exp to monsters than the player lost by draining. Record original exp of player before draining and use that as a check in MIN() statement - because from old code, divisor is twice as much as we remove, very likely the old method will be less than actual lost exp. MSW 2009-02-25 server/attack.c: Fix for bug 2021012: Do insane damage in arena - if characters are on battleground, do not reduce damage for them being friendly. MSW 2009-02-24 Fix for bug 1988417 - rebalanced WC bug. common/living.c: Remove unneeded if op->type==PLAYER right after closing brace for same if clause. Move character_load to top of that code block. Fix wc calculation so now if skill_level>=1 and not >1. Fix fallback method to divide characters overall level in calculating wc to give more sane results. Add key/value wc_increase_rate so skills can be better tuned instead of having it hardcoded (it is still hardcoded as a fallback if that isn't set) doc/Developers/skills: Update some notes on values in combat skills, especially the wc_increase_rate. MSW 2009-02-22 plugins/cfpython/cfpython_archetype.c, plugins/cfpython/cfpython_object.c, plugins/cfpython/cfpython_party.c, plugins/cfpython/cfpython_region.c, plugins/cfpython/cfpython_map.c, plugins/cfpython/include/cfpython_object_private.h, plugins/cfpython/include/cfpython_map_private.h, plugins/cfpython/include/cfpython_party_private.h, plugins/cfpython/include/cfpython_region_private.h, plugins/cfpython/include/cfpython_archetype_private.h: Implement the function tp_richcompare, since Python 3.x no longer uses tp_compare. tp_richcompare can also be used on Python 2.x. Also fix broken compare for players since tp_richcompare and tp_compare are not inherited if tp_hash is non-NULL. Also fix type definition head initialisation for Python 3.x. plugins/cfpython/include/cfpython_region_private.h: Fix a typo that resulted in Python showing region type name as Crossfire.Party. plugins/cfpython/cfpython_map.c: Fix several crash bugs related to swapped out maps. Arvid Norlander 2009-02-19 server/c_range.c, server/init.c, server/shop.c, server/login.c, server/c_wiz.c: Fix some format string bugs (found using the GCC format __attribute__ for some crossfire functions). server/c_wiz.c: Add some missing [fixed] to style_info output. Arvid Norlander 2009-02-17 socket/item.c, socket/loop.c, socket/lowlevel.c, socket/metaserver.c: Fix some format string bugs (found using the GCC format __attribute__ for some crossfire functions). Arvid Norlander 2009-02-17 common/map.c: Make a function static. common/loader.l, common/object.c, common/readable.c: Fix some format string bugs (found using the GCC format __attribute__ for some crossfire functions). Arvid Norlander 2009-02-17 common/map.c: Properly fill in op->more for multipart objects in containers. Multipart objects in containers can happen for customised monsters in generator inventories. This happened on /darcap/raffle/raffle1_u3. Arvid Norlander 2009-02-17 README: Update the README file somewhat. It mentioned CVS and various other outdated things. Arvid Norlander 2009-02-16 This is another step towards Python 3.x support, however in this commit there are mostly fixes for various bugs in the existing found when working on the porting. Also this commit drops support for Python 2.3 and older. This support was already broken (some code already used modern features). --- plugins/cfpython/include/cfpython.h: We need more python-version dependant defines so rewrite the checks to be cleaner as well. plugins/cfpython/include/cfpython_object.h: Add a variant of the EXISTCHECK() macro that also verifies that the type matches (to fix some crashes). plugins/cfpython/include/cfpython_party_private.h, plugins/cfpython/include/cfpython_region_private.h, plugins/cfpython/include/cfpython_archetype_private.h: Fix the method calling conventions to match was actually being done in the code. plugins/cfpython/include/cfpython_object_private.h, plugins/cfpython/include/cfpython_map_private.h, plugins/cfpython/cfpython_object.c, plugins/cfpython/cfpython_map.c: Fix out of date PyNumberMethods structs. Handle the int/long unification in Python 3 as well. Change to calling convention METH_NOARGS when no arguments were passed to the methods. Change to METH_O when a single object argument was passed. Add checks for correct type of objects where that was missing (could result in crashes before, if there were bugs in the python scripts, now such bugs will just throw a python exception). plugins/cfpython/cfpython.c: Change to calling convention METH_NOARGS when no arguments were passed to the methods. macros/cf_python.m4: Remove checks for Python 2.3 and older. Arvid Norlander 2009-02-14 plugins/cfpython/cfpython.c, plugins/cfpython/cfpython_map.c, plugins/cfpython/include/cfpython_archetype_private.h, plugins/cfpython/include/cfpython_region_private.h, plugins/cfpython/include/cfpython_party_private.h, plugins/cfpython/include/cfpython_map_private.h, plugins/cfpython/include/cfpython_object_private.h, plugins/cfpython/include/cfpython.h, plugins/cfpython/cfpython_object.c: Some of the changes needed to support Python 3: Adding some compatibility defines to support some stuff on both Python 2 and Python 3. This also means we now support unicode strings in a few places we didn't before. Also properly handle "hash not supported" under Python 2.6 or later. Arvid Norlander 2009-02-13 server/apply.c, server/skills.c, server/player.c, server/spell_attack.c: Add a comment marking some variables set but then never used (found with compiler warnings). Unsure about what the correct way to solve them are (that is: should the variable assignment be removed, or should the variable be used somewhere). server/c_misc.c, common/map.c, common/object.c: Fix some format strings using %d when %u should have been used. Arvid Norlander 2009-02-13 plugins/cfpython/include/cfpython_proto.h, plugins/cfpython/cfpython.c: Fix broken give command. Was broken due to MSW removing -Bsymbolic when building plugins about half a year ago. Also change some other symbols to static in the plugins to avoid more issues like this. plugins/cflogger/include/cflogger_proto.h, plugins/cflogger/cflogger.c, plugins/citylife/include/citylife_proto.h, plugins/citylife/citylife.c, plugins/cfrhg/include/cfrhg_proto.h, plugins/cfrhg/cfrhg.c, plugins/cfanim/include/cfanim.h, plugins/cfanim/include/cfanim_proto.h, plugins/cfanim/cfanim.c, plugins/cfnewspaper/include/cfnewspaper_proto.h, plugins/cfnewspaper/cfnewspaper.c: More changes in the same style as the above python changes to reduce possible symbol lookup conflicts. Also make some functions static. plugins/cfrhg/include/cfrhg_proto.h, plugins/cfrhg/cfrhg.c: Fix a typo in cfrhg (was "cfrgh" in one place). Arvid Norlander 2009-02-12 common/treasure.c: Restore item_power if GT_MINIMAL is passed into fix_generated_item(). Fixes bug 2590465: Anvils making items without item power MSW 2009-02-11 lib/Makefile.am: replace make with $(MAKE) - needed if using non default make, or otherwise have special set up. MSW 2009-02-11 lib/attackmess: Fix for bug# [ 2565212 ] Output quirk with wraith feed ability (You You). Removed 'You' text from the attack messages file. Rick Tanner 2009-02-11 lib/.collect-stamp, lib/smooth: Both of these are generated by make collect, remove them from SVN. The latter file also showed up a lot in svn diff because the locally generated copy no longer matched the svn version and no one committed the change. lib/: Add those two removed files to svn:ignore. lib/Makefile.am: Update to match change, also add some other auto generated files to MAINTAINERCLEANFILES. Arvid Norlander 2009-02-10 include/living.h, include/player.h: Rearrange member order in some structs to reduce wasted space due to alignment. Arvid Norlander 2009-02-10 plugins/cfnewspaper/cfnewspaper.c: Remove unused function. Arvid Norlander 2009-02-10 types/README: Fix indentation. Arvid Norlander 2009-02-10 test/templates/logresult.xsl: Fix case of tag, must be lower case since it generates XHTML, not HTML. check-fragment.am: Make report generation work for out of tree builds. We now copy the xsl files to test/logs/ before everything else, instead of after. We also use the copy now, instead of using the file in test/templates/. Arvid Norlander 2009-02-10 test/templates/crossfire-logo-unit-failed.png, test/templates/crossfire-logo-unit-success.png, test/templates/txtlog.png, test/templates/failure.png, test/templates/success.png, test/templates/error.png, test/templates/crossfire-logo-unit.png: Recompress png images for smaller file size. Arvid Norlander 2009-02-10 check-fragment.am: Add a define -DBUILD_ROOT to support out of tree builds properly. test/unit/common/check_object.c, test/unit/common/check_loader.c, test/unit/common/check_arch.c, test/unit/common/check_item.c: make check should now works for out of tree builds. Not well tested yet. Not functional changes for in-tree builds. Arvid Norlander 2009-02-10 include/Makefile.am: Make svnversion.h work properly when the build tree is not the source tree. Arvid Norlander 2009-02-10 include/object.h: Small spelling correction in comment. utils/mapper.c: Fix a crash when generating tiled (non-world) maps (such as for greenway) and the user used -limit. Arvid Norlander 2009-02-10 plugins/cfpython/cfpython_object.c, plugins/cfpython/include/cfpython_object_private.h: Add Object_GetAnimated() to be able to read this property (it used to be write only from python). Arvid Norlander 2009-02-10 plugins/cfpython/cfpython_object.c, plugins/cfpython/include/cfpython_object_private.h: Make it possible to set Object.Identified as well as get it. This was used by some python scripts (though it didn't actually work). Arvid Norlander 2009-02-09 utils/mapper.c: Fix a segfault when generating world map and not all input maps was found (could happen using -limit). Arvid Norlander 2009-02-08 utils/mapper.c: Change // style comment to /**/ style. Add missing include. Make some variables and functions static (fixing GCC warnings about missing prototypes). Change some 0 to NULL for pointers to make code clearer. Arvid Norlander 2009-02-08 utils/mapper.c: Change all sprintf() to snprintf(). Also fix a crash due to division by zero when using -limit and we didn't get as far as processing any maps with non-zero elevation. Arvid Norlander 2009-02-08 utils/mapper.c: Remove some unused variables. Get rid of zero length snprintf() (caused GCC warning). Arvid Norlander 2009-02-08 include/libproto.h, common/dialog.c, common/init.c, common/object.c, common/button.c, common/region.c, common/living.c, common/time.c, common/recipe.c, common/map.c, common/arch.c, common/treasure.c: Make a lot of functions that aren't used outside one file in common/ static. Arvid Norlander 2009-02-07 common/readable.c, common/object.c, common/map.c, include/libproto.h: Use size_t instead of int for buffer sizes. common/readable.c, include/libproto.h: Make some functions not used elsewhere static. common/readable.c: Get rid of sprintf(). Arvid Norlander 2009-02-07 common/porting.c: Fix format string. Arvid Norlander 2009-02-07 common/player.c: Remove unused variables. Arvid Norlander 2009-02-07 types/mood_floor/mood_floor.c: Use NULL instead of 0 for pointers. types/player_mover/player_mover.c: Assigning a floating point constant to an integer variable makes no sense. Arvid Norlander 2009-02-07 include/libproto.h, include/ob_methods.h, include/typesproto.h, common/ob_methods.c, types/common/describe.c, types/legacy/legacy_describe.c: Use size_t when working with buffer sizes. include/sproto.h, server/attack.c, server/spell_util.c: Attack type should be uint32 and not int. Arvid Norlander 2009-02-07 types/shop_inventory/shop_inventory.c: Use size_t not int when working with list sizes. The variable i is used for several things, but using size_t should be safe for all uses of it. Arvid Norlander 2009-02-07 types/deep_swamp/deep_swamp.c: Replace sprintf() with snprintf(). Arvid Norlander 2009-02-07 common/readable.c: Fix a snprintf() with non-constant format string and no parameters passed. Arvid Norlander 2009-02-07 types/detector/detector.c: Fix GCC warning caused by a declaration of an unimplemented, unused static function. Arvid Norlander 2009-02-07 plugins/cfpython/include/cfpython_object_private.h, plugins/cfpython/include/cfpython_map_private.h, plugins/cfpython/include/cfpython_party_private.h, plugins/cfpython/include/cfpython_region_private.h, plugins/cfpython/include/cfpython_archetype_private.h, plugins/cfpython/cfpython.c: Fix some minor issues (variables that should have been static, using 0 instead of NULL [leading to more confusing code]). Arvid Norlander 2009-02-07 plugins/cfanim/cfanim.c, plugins/cflogger/cflogger.c: Fix some minor issues (variables that should have been static, using 0 instead of NULL, leading to more confusing code) found using the static analysis tool "sparse". Arvid Norlander 2009-02-07 server/init.c: Avoid some warnings by casting function to one with the right type before calling. Also convert some char* to const char* and make the variable options static. Arvid Norlander 2009-02-06 server/pets.c, server/player.c, server/plugins.c: Fix some minor issues (such as using 0 instead of NULL [leading to more confusing code], using snprintf with no format arguments [use strncpy instead], using int instead of tag_t [which is typedefed to unsigned int]). Arvid Norlander 2009-02-06 socket/info.c, server/alchemy.c, server/gods.c: Fix some minor issues (using 0 instead of NULL [leading to confusing code], casting const char* to char*). Arvid Norlander 2009-02-06 include/global.h: Get rid of some warnings by making some "char*" "const char*" in the Settings struct. Arvid Norlander 2009-02-06 server/player.c: Make sure unpaid items are removed at death even on non-shop floors. Arvid Norlander 2009-02-06 server/spell_effect.c: Fix part of bug #2457751 "Unpaid items work for some things...". Staff to snake and animate weapon no longer works on unpaid items. Arvid Norlander 2009-02-06 common/readable.c: Passing the same buffer as both the output buffer as a parameter in the format to s(n)printf invokes undefined behaviour. Avoid doing that. Tests showed that glibc treated the buffer as empty, resulting in ignoring whatever was in the buffer before. Arvid Norlander 2009-02-06 common/item.c: Make item_types_size static, it isn't used elsewhere. Arvid Norlander 2009-02-06 server/attack.c: Fix rare abort() with spells like dragonfire on multi-tile objects. Required some single tile object to be on top of the multi-tile object. Arvid Norlander 2009-02-04 server/spell_attack.c: Fix bug #2353025 "2.0, holy wrath and ret. strike freeze server". This happened because explosion spells use stats.maxhp as a unique ID to avoid running out of control. This one was properly set by bullet spells, but not by smite spells. Fix this. Arvid Norlander 2009-02-04 server/spell_util.c: Put cap on level used for cast_magic_storm() in prayer_failure() - otherwise, spell can hang the server as it gets cast at super high level. MSW 2009-02-04 common/button.c: Fix bug #2457751 "Unpaid items work for some things...". Now dropping unpaid items on altars no longer works. Arvid Norlander 2009-02-03 Fix out-of-bounds accessess to xxx_bonus[] (and similar) arrays. Andreas Kirschbaum common/living.c: random_maps/wall.c, random_maps/style.c, random_maps/door.c, random_maps/exit.c, random_maps/random_map.c, random_maps/rogue_layout.c, random_maps/test.c, random_maps/special.c, random_maps/floor.c, random_maps/monster.c, random_maps/standalone.c, random_maps/treasure.c: Fix some minor issues (variables that should have been static, using 0 instead of NULL [leading to more confusing code], mismatching prototype and so on) found using the static analysis tool "sparse" (made for Linux kernel originally). Arvid Norlander 2009-02-03 random_maps/reader.l, common/loader.l, include/libproto.h: The shared yyerror() in loader.l didn't work properly in reader.l (which was the intention). Instead it caused memory errors (and potentially segfaults) when called. This was due to yyerror() accessing the static variable yytext, which is unique to each file. Since yytext in loader.l was often freed already when yyerror() in reader.l was called this would cause memory errors. If it wasn't yet freed it would instead report irrelevant data in the error message. Thus duplicate the routine to both of the files, and make them both static. Arvid Norlander 2009-02-03 Encapsulate access to xxx_bonus[] (and similar) arrays with accessor functions get_xxx_bonus(). --- common/living.c: Make arrays static. Add accessor functions. common/living.h: Remove arrays. Add accessor function prototypes. *.c: Replace xxx_bonus[stat] with get_xxx_bonus(stat). Andreas Kirschbaum 2009-02-03 common/object.c, common/exp.c, common/time.c, common/recipe.c, common/arch.c, common/map.c, common/los.c: Fix some minor issues (variables that should have been static, using 0 instead of NULL, leading to more confusing code) found using the static analysis tool "sparse" (made for Linux kernel originally). Arvid Norlander 2009-02-03 plugins/cfpython/include/cfpython.h, plugins/cfpython/cfpython.c: To make porting to Python 3 in the future easier, enable the forward compatibility warning flag if crossfire is compiled against Python 2.6, this will result in warnings to stderr about "DeprecationWarning" if incompatible code is found. Several issues has already been fixed recently (thanks to having this enabled locally). Compiling Crossfire against Python 2.5 or older still works (of course). Also add a missing include causing warnings under Python 2.6. Arvid Norlander 2009-02-03 common/shstr.c: Use the correct return type from hashstr() current code assumed sizeof(int) == sizeof(long) == sizeof(void*) which is incorrect for many systems (such as x86_64). There was another potential (as in: would not happen with current hash table size) issue in the same code with mixing signed and unsigned. Also fixed. Arvid Norlander 2009-02-03 server/plugins.c: Fix possible buffer overflow when initializing plugins. Andreas Kirschbaum 2009-02-03 doc/Developers/smooth.pdf, doc/Developers/img/sgrass.base.111.eps, doc/Developers/img/smoothlevel.eps, doc/Developers/img/canvas_smooth.eps, doc/Developers/smooth.tex: smooth.pdf was broken (due to someone using svn:eol-style on it [as far as I can tell], pdf are binary files and shouldn't be mangled like that!). Also the pdf couldn't be re-generated from smooth.tex since some of the image files were missing. (They were erroneously removed in revision 3560). Add the three *.eps needed back. Then regenerate the pdf. Also some cosmetic changes to the file. Arvid Norlander 2009-02-03 doc/Developers/sound, doc/Developers/*.dox, doc/Developers/types/*.dox, doc/Developers/fields/*.dox: Set svn:eol-style to native. Correct a few files that were stored with CRLF. Arvid Norlander 2009-02-03 include/define.h, include/libproto.h, common/item.c, common/readable.c, common/loader.l: Make safe_strcat() (defined in include/define.h for some odd reason) use size_t instead of int for buffer size, since this includes changing a pointer to int into a pointer to size_t update all calls to safe_strcat() to use size_t for that. Arvid Norlander 2009-02-02 common/object.c, include/config.h: Document the different levels of MEMORY_DEBUG and add a third level that calls free() instead of adding back to free list in order to more properly detect use after free. Arvid Norlander 2009-02-01 common/object.c, include/config.h: Workaround to make MEMORY_DEBUG usable, currently we can't realloc on allocation to ensure the backtrace is correct (as the comment in the code described) since a lot of stuff access objects after freeing and fixing these are non-trivial. So disable realloc() for now unless MEMORY_DEBUG is defined to a value greater than 1. Also fix one of the accesses after free_object() (was in clean_friendly_list()). Arvid Norlander 2009-02-01 common/re-cmp.c: Correct some #ifdef to use the correct variable name (SAFE_CHECKS not SAFE_CHECK). Arvid Norlander 2009-02-01 include/define.h: Update comment about INORGANIC (type 73) including dragon scales. Making them type flesh had negative consequences such as making them edible and causing them to weigh 50000Kg instead of 25Kg each. Rick Tanner 2009-01-31 common/player.c, include/libproto.h, server/player.c: Fix a few memory leaks if player selects "play again" after logging out. Arvid Norlander 2009-01-29 plugins/cfpython/cfpython.c: Remove some Py_DECREF() calls in the python module. This fixes bug #2459929 (DECREF error, bombs server if python is strict). However, I'm not sure this is the correct way to fix that bug. Arvid Norlander 2009-01-29 macros/cf_python.m4: Add python 2.6 to the python path search lists as well. Arvid Norlander 2009-01-28 include/newserver.h, socket/init.c, socket/request.c: Remove MapMode type/mapmode field since only one mode is supported. Andreas Kirschbaum 2009-01-28 common/shstr.c, common/arch.c, common/path.c: Fix some int that should have been size_t, found using splint. common/arch.c: Also fix an "int" that should have been "unsigned long". include/libproto.h, include/path.h: Update prototypes where needed for these int to size_t changes. Arvid Norlander 2009-01-28 macros/libtool.m4: Removed this file as it depends on which libtool version is installed on the system running autogen.sh. configure will fail with an error if version doesn't match between this file and the generated (non-versioned) file utils/ltmain.sh. autogen.sh will install the correct version of macros/libtool.m4 as long as a newer version doesn't exist. Thus removing this file from SVN is the correct way to solve the issue. This file _should_ however be included in release tarballs since utils/ltmain.sh will also be included there. macros/: Added svn:ignore for libtool.m4 Arvid Norlander 2009-01-27 server/plugins.c: Set plugins_list to NULL when unloading plugins at exit to prevent some possible issues if someone tries to mess with plugins afterwards. Arvid Norlander 2009-01-26 include/libproto.h, common/arch.c: Make hasharch() in arch.c static since it wasn't (and shouldn't be) used anywhere else. Arvid Norlander 2009-01-26 test/unit/common/check_shstr.c: Fix small memory leak in the shstr unit test. common/arch.c: Make free_all_archs() also clear the hash table for archetypes, this fixes an invalid read in test/unit/common/check_arch.c. Arvid Norlander 2009-01-26 Use a subdirectory for aclocal macros instead of the old-style acinclude.m4. This will make it simpler to maintain and update to current upstream copies of the various autoconf macros. This commit does not update to current upstream copies, but extracts the version crossfire used from the old acinclude.m4. --- autogen.sh: Updated commands to match for this change. include/autoconf.h.in: Auto-regenerated by autotools, no functionality changes. macros/: Added macros/libtool.m4: Auto imported by aclocal, previously aclocal copied this directly into the (non-versioned) file aclocal.m4. macros/cf_xslt.m4, macros/cf_python.m4, macros/libcurl.m4, macros/check.m4: Extracted from acinclude.m4. acinclude.m4: Removed. Makefile.am: Added matching ACLOCAL_AMFLAGS line. --- Arvid Norlander 2009-01-26 lib/Makefile.am, lib/adm/collect_images.pl: Make out of tree builds work. Note that the arch symlink in lib should be placed in the build tree. Further: the Perl script change might be suboptimal, I'm not a Perl expert. Arvid Norlander 2009-01-25 types/transport/transport.c: Add missing braces to if clause in transport_type_process(). MSW 2009-01-24 Server part of client window resizing. When server gets a mapsize request, it now clears its map data so it does a complete refresh of the map to the client. This fixes drawing issues. --- include/sockproto.h: Change map_newmap_cmd() definition server/move.c, server/plugins.c, server/server.c, server/spell_effect.c: Change call to map_newmap_cmd() socket/request.c: Add call to map_new_cmd() in setup area. Change map_newmap_cmd() to take a socket structure instead of player - the setup only has socket pointer and not player pointer to use. --- MSW 2009-01-24 test/unit/server/check_c_party.c: Fix failing regression test. (Access to uninitialized variable.) Andreas Kirschbaum 2009-01-24 test/unit/common/check_object.c: Make the test_count_free test work in a build with MEMORY_DEBUG turned on as well. Arvid Norlander 2009-01-24 common/image.c: Fix crash if read_bmap_names() is called more than once. Needed for debugging regression tests. test/unit/common/check_object.c: Fix failing regression test. (Access to non-existent face.) Andreas Kirschbaum 2009-01-24 common/readable.c, common/dialog.c, common/loader.l, common/treasure.c, common/image.c, socket/item.c: Add missing ending \n to LOG() calls. Arvid Norlander 2009-01-24 socket/info.c: Fix stack smashing in magic_mapping_mark() on maps wider than 50 tiles. Arvid Norlander 2009-01-24 test/unit/common/check_item.c: Fix failing regression test. Andreas Kirschbaum 2009-01-24 plugins/common/hashtable.c: Rewrite the code documentation to doxygen style. Arvid Norlander 2009-01-23 plugins/cflogger/cflogger.c: Make non-direct kills (kill by spell, kill by poison, kill by golem and so on) register properly. Arvid Norlander 2009-01-23 plugins/cflogger/cflogger.c: Slight error in last commit, turns out time table can't use real time as primary key. Change database schema to format 3. Upgrades directly from version 1 not run into the issue. Arvid Norlander 2009-01-23 plugins/cflogger/cflogger.c: Clean out some of the messy and broken SQL (didn't use indexes, was missing important constraints and so on) in cflogger. This includes introducing a new version of the SQL schema used. The database will be automatically upgraded at next run. Be aware of that older versions were missing a check for too new format, thus once you upgraded the format you should not run it with an older version of the server. Changes to the schema includes adding some indexes and similar. Arvid Norlander 2009-01-22 plugins/cflogger/cflogger.c, plugins/cfnewspaper/cfnewspaper.c: Now handles random maps the way the source code comments claims it does. plugins/cfnewspaper/cfnewspaper.c: Make info about kills from a specific region work. Arvid Norlander 2009-01-22 common/object.c: Add missing newline to log message that is shown if MEMORY_DEBUG is defined. Arvid Norlander 2009-01-21 common/arch.c: Fix memory leak in archetypes when discrete damage is used. Arvid Norlander 2009-01-21 server/plugins.c: Remove forgotten debug output. plugins/cflogger/cflogger.c, plugins/cfnewspaper/cfnewspaper.c: Add missing newline in log output. plugins/cfnewspaper/cfnewspaper.c: Close the second sqlite database as well. Arvid Norlander 2009-01-21 server/plugins.c, server/server.c: Run closePlugin() in the various plugins at server shutdown. Previously it was only run when the wiz command plugout was used. This change is needed to properly close the sqlite database handles in cflogger and cfnewspaper. include/sproto.h: Run make proto in server/ to include the newly added cleanupPlugins() in server/plugins.c. This caused some other changes, such as reordering and adding some other functions. Arvid Norlander 2009-01-21 server/plugins.c: Fix broken error checking in plugin loading code. Arvid Norlander 2009-01-21 common/readable.c: Fix a rare bug that caused the use of an uninitialised variable in god_info_msg() for gods denies summoning (such as valkyrie). Arvid Norlander 2009-01-21 doc/Developers/objects, lib/artifacts: Remove obsolete fields color_fg and color_bg. lib/adm/map_info: Remove support for color_fg/color_bg fields. Andreas Kirschbaum 2008-12-12 server/login.c: Clear shootype value when player leaves game - otherwise it will point to bad value in ranges[] array. MSW 2008-11-25 lib/collect.pl.in: Prepend an underscore to names generated for implicitly defined animations. Andreas Kirschbaum 2008-11-23 Rewrite SockList handling to not malloc/free buffers but use stack space instead. Encapsulate most accesses to SockList instances into lowlevel.c. Andreas Kirschbaum 2008-11-21 common/treasure.c: Do not call tailor_readable_ob() with invalid msgtype parameter. common/readable.c: Detect and report errors when saving bookarch file. common/readable.c: Remove trailing whitespace from generated book contents. common/readable.c: Do not call get_titlelist() for invalid indices. common/readable.c: Fix 'bookarch' parser to strip trailing spaces but not leading spaces. Fix possible memory leak when reading the 'bookarch' file. Detect and report syntax errors. Andreas Kirschbaum 2008-11-20 common/readable.c: Fix 'messages' file parser to strip trailing spaces but not leading spaces. Issue warning messages if messages are truncated. Detect and report syntax errors rather than crash. common/readable.c: Fix incorrect random expression -- condition was always false. socket/image.c: Accelerate "replyinfo image_sums" processing. doc/Developers/protocol: Fix documentation for "replyinfo image_sums" format. Andreas Kirschbaum 2008-11-19 socket/request.c, doc/Developers/protocol: Properly check "setup" settings; document allowed values. socket/request.c: Properly check input read from client socket. Andreas Kirschbaum 2008-11-18 Apply patch #2305993: Random Item generation difficutly table expansion, courtesy meflin. common/treasure.c include/treasure.h Nicolas Weeger 2008-11-17 Allow transports to not occupy the same spaces depending on the facing direction. common/map.c: tweak various move_type checks for transport doc/Developers/objects: update with special flag server/player.c: special handling for transport facings Nicolas Weeger 2008-11-16 Reduce selling cost of Gourmet Mushrooms. They were to easy to exploit and abuse for massive cash influx. Requested change by meflin. /lib/artifacts Rick Tanner 2008-11-11 Tentative fix for bug #1982043: Ruggilli immolation. server/disease.c: don't remove god-diven diseases. Nicolas Weeger 2008-11-11 Fix for bug #2259992: I dont know how to apply the ... * (unpaid). include/ob_methods.h: new return value for methods. server/apply.c: don't display anything if player already warned. Nicolas Weeger 2008-11-11 Tentative fix for bug #2094038: Monk Confusion... server/gods.c: don't try to update the 'no weapon' flag if the player is forbidden weapons, that messes with things. Nicolas Weeger 2008-11-10 Remove obsolete 'color_fg' handling. common/image.c Nicolas Weeger 2008-11-10 Merge smoothing information in New_Face, to simplify some. common/image.c include/face.h Nicolas Weeger 2008-11-09 Apply patch #2040854: Patch to compile on OSX PPC, and to comply with ANSI C, by elliotbay. Basically put an array definition in the .c instead of the .h. plugins/cfpython/include/cfpython.h plugins/cfpython/cfpython.c Nicolas Weeger 2008-11-09 Fix for bug #2249875: 2.0 random say crashes. Remove 'duplicate_dialog_information()', and merely clear FLAG_DIALOG_PARSED in object copy so dialog is correctly parsed again when needed. common/dialog.c object.c include/libproto.h Nicolas Weeger 2008-11-09 Initial import of Crossfire Resource Editor, tool to manage various resources like artifacts, archetypes, faces, animations, treasures. For now it only lets the user view, but edition is planned. This is a C++/Qt program, not part of the regular build system. utils/cre/*cpp *h: CRE files. Nicolas Weeger 2008-11-08 Rename map's 'template' field which conflicts with C++ compilers. Also change 'region' and 'shopitems' in some structures to the underlying structure instead of the typedef, for the same confusion reason. common/anim.c map.c include/map.h random_maps/random_map.h server/server.c swap.c Nicolas Weeger 2008-11-08 Tentative fix for bug #2018391: Zero-cap or capless containers, also stacking containers. Split containers when reading/applying them (coherent with eg rings when applied). Also ensure that a sack is split when putting things into it anyway. include/sproto.h: function now visible to others. server/apply.c c_object.c: split containers socket/item.c: don't crash if object isn't a player. test/unit/server/check_c_object.c: write some tests for put_object_in_sack(). Nicolas Weeger 2008-10-31 Fix for bug #2081472: short int encoding for food value in payment altars. include/living.h object.h: make food and last_eat sint32 so no overflow. Nicolas Weeger 2008-10-31 Fix for bug #2140899: crash server by reading scroll on ground. types/scroll/scroll.c: keep scroll's inventory name in case inventory is removed. Nicolas Weeger 2008-10-05 Add a function called tempnam_secure(), unlike the old tempnam_local() it should be secure against race conditions. Replaced one of the two uses of tempnam_local with tempnam_secure, the other one is a bit tricker. It may or may not work on Windows, but it should be easy for someone with access to a Windows system to add an #ifdef for that. include/libproto.h common/porting.c server/login.c Arvid Norlander 2008-09-25 Fix for bug #1985944: problem with trigger_markers (object type 52). types/marker/marker.c Arvid Norlander 2008-09-25 Fix for bug #2021042: level inscription indefinately with 1 scroll. server/skills.c: don't allow to write when blind. Nicolas Weeger 2008-09-19 Tentative fix for bug #2028467: confusing changing things it should not. server/spell_util.c: correctly count items. Nicolas Weeger 2008-09-19 Fix for bug #2088893: Assertion in cfanim.c globalEventListener on client connect. Renamed all globalEventListener to put a plugin-specific prefix. plugins/cfanim/include/cfanim_proto.h plugins/cfanim/cfanim.c plugins/cflogger/include/cflogger_proto.h plugins/cflogger/cflogger.c plugins/cfnewspaper/include/cfnewspaper_proto.h plugins/cfnewspaper/cfnewspaper.c plugins/cfpython/include/cfpython_proto.h plugins/cfpython/cfpython.c plugins/cfrhg/include/cfrhg_proto.h plugins/cfrhg/cfrhg.c plugins/citylife/include/citylife_proto.h plugins/citylife/citylife.c Nicolas Weeger 2008-09-19 Add new setup option "num_look_objects": allows clients to set the size of the ground view. Clients not sending this option default to 50 which is the previously hard-coded size. Fixes some off-by-one issues; now always exactly the requested number of objects are sent. trunk/include/newserver.h trunk/socket/item.c trunk/socket/init.c trunk/socket/request.c trunk/doc/Developers/protocol Andreas Kirschbaum 2008-09-06 Automatic strip of trailing whitespaces. This stripped a trailing whitespace in ChangeLog, that is why ChangeLog is listed too. ChangeLog make_win32/plugin_python/plugin_python.rc make_win32/plugin_anim/plugin_anim.dsp make_win32/crossfire.rc make_win32/plugin_common/plugin_common.dsp make_win32/INSTALL_WIN32.txt make_win32/Release_notes.txt Arvid Norlander 2008-09-02 Small code fixes found using GCC compiler warnings (bad format strings, unreachable return, missing return, unclear {} in a #define when used in a if.) include/global.h socket/item.c socket/loop.c socket/metaserver.c server/shop.c server/swap.c server/spell_util.c server/resurrection.c server/server.c server/login.c server/c_wiz.c Arvid Norlander 2008-09-02 Added %a in the default format string for the 'who' command, because the 'afk' command is useless if nobody can see the AFK status of players who use it. lib/settings Raphaël Quinet 2008-08-27 Inform other party members when a player leaves a party by joining or creating another party, not only when the player uses "party leave". server/c_party.c Raphaël Quinet 2008-08-25 Some plugin-related fixes. server/c_object.c: EVENT_DROP should be called before the item is removed, else can't prevent dropping. server/monster.c: enable items in player/npc's inventory to react, too Nicolas Weeger 2008-08-16 Added new subtype 4 ST_MAT_WINDOW for building materials. This allows the player to build windows in existing walls (if these walls have a corresponding window archetype). Fixed an issue in apply_builder_floor() that could cause a floor to be removed twice when a wall was replaced by a floor. include/define.h server/build_map.c Raphaël Quinet 2008-08-04 Bug fix: when building a new floor on top of an old floor, the old one was never removed, resulting in a stack of floors in some buildable areas. server/build_map.c Raphaël Quinet 2008-08-03 Fix for bug #2028541: Any object using a non-default move_slow_penalty was always saved with the value 0 because the code was using FAST_SAVE_LONG instead of FAST_SAVE_DOUBLE for a floating-point value. common/loader.l Raphaël Quinet 2008-08-02 Change regions file name to 'regions.reg'. include/config.h Nicolas Weeger 2008-08-02 If an object of type CHECK_INV blocks movement (e.g. move_block all) and if it contains a message, then display that message to those who are blocked. This allows the inventory checkers to behave a bit like locked doors. common/map.c Raphaël Quinet 2008-07-31 Allow other archetypes than fingers to be given as trophies in arena battles. In order to do that, the battleground should have other_arch set to the archetype to be generated. If no other_arch is set, then fingers will be generated as before. Also, the trophies will have their value, type and material set to 0 so that they cannot be used nor destroyed. include/sproto.h server/attack.c server/disease.c server/pets.c server/player.c server/spell_util.c Raphaël Quinet 2008-07-28 lib/smooth: updated by 'make collect' after Ryo's changes to the archetypes. Raphaël Quinet 2008-07-28 plugins/*/Makefile.am: Remove -Xlinker -export-dynamic -Xlinker -Bsymbolic from extra LDFLAGS. Those are gnu specific linker options which cause the plugins to fail to compile when not using gld. I've tested the build without those options with gld on linux, and all works fine, so not sure if those are still needed - in theory, libtool should cover that. If those options are still needed, configure.ac should get updated with a a better test. MSW 2008-07-24 Automatic style fix: replace "foo* bar" by "foo *bar", remove extra spaces inside parentheses, etc. This was done after an analysis of the code revealed that less than 20% of the pointer declarations were using the other style. Same for the parentheses. Having a consistent style in all files should make it a bit easier to maintain the code. common/anim.c common/arch.c common/button.c common/dialog.c common/friend.c common/glue.c common/holy.c common/image.c common/init.c common/item.c common/languages.c common/logger.c common/los.c common/map.c common/object.c common/ob_methods.c common/ob_types.c common/path.c common/player.c common/porting.c common/readable.c common/recipe.c common/re-cmp.c common/shstr.c common/stringbuffer.c common/treasure.c common/utils.c devel/devel.c include/attack.h include/dialog.h include/global.h include/languages.h include/libproto.h include/map.h include/object.h include/ob_methods.h include/path.h include/player.h include/plugin.h include/sockproto.h include/spells.h include/sproto.h include/stringbuffer.h plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim.h plugins/cflogger/cflogger.c plugins/cfnewspaper/cfnewspaper.c plugins/cfpython/cfpython_archetype.c plugins/cfpython/cfpython.c plugins/cfpython/cfpython_map.c plugins/cfpython/cfpython_object.c plugins/cfpython/cfpython_party.c plugins/cfpython/cfpython_region.c plugins/cfpython/cjson.c plugins/cfpython/include/cfpython_archetype.h plugins/cfpython/include/cfpython_archetype_private.h plugins/cfpython/include/cfpython.h plugins/cfpython/include/cfpython_map.h plugins/cfpython/include/cfpython_map_private.h plugins/cfpython/include/cfpython_object.h plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/include/cfpython_party.h plugins/cfpython/include/cfpython_party_private.h plugins/cfpython/include/cfpython_region.h plugins/cfpython/include/cfpython_region_private.h plugins/cfrhg/cfrhg.c plugins/citylife/citylife.c plugins/common/hashtable.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/template/include/plugin_template.h plugins/template/plugin_template.c random_maps/floor.c random_maps/maze_gen.c random_maps/rproto.h random_maps/standalone.c random_maps/treasure.c server/alchemy.c server/apply.c server/attack.c server/build_map.c server/c_chat.c server/c_misc.c server/c_object.c server/c_party.c server/c_wiz.c server/disease.c server/gods.c server/hiscore.c server/init.c server/login.c server/monster.c server/move.c server/player.c server/plugins.c server/server.c server/shop.c server/skills.c server/skill_util.c server/spell_attack.c server/spell_effect.c server/spell_util.c server/swap.c server/time.c server/timers.c server/win32.c socket/info.c socket/init.c socket/item.c socket/loop.c socket/request.c socket/sounds.c test/bugs/bugtrack/check_1727944.c test/toolkit/toolkit_common.c test/toolkit/toolkit_crossedit.c test/toolkit/toolkit_map.c test/toolkit/toolkit_random_maps.c test/toolkit/toolkit_server.c test/toolkit/toolkit_socket.c test/unit/common/check_arch.c test/unit/common/check_item.c test/unit/common/check_loader.c test/unit/common/check_object.c test/unit/common/check_shstr.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/server/check_attack.c test/unit/server/check_c_object.c test/unit/server/check_c_party.c test/unit/socket/stubs_socket.c types/altar/altar.c types/armour_improver/armour_improver.c types/book/book.c types/button/button.c types/cf_handle/cf_handle.c types/check_inv/check_inv.c types/clock/clock.c types/common/common_apply.c types/common/describe.c types/common/projectile.c types/container/container.c types/converter/converter.c types/deep_swamp/deep_swamp.c types/director/director.c types/exit/exit.c types/food/food.c types/hole/hole.c types/identify_altar/identify_altar.c types/lamp/lamp.c types/legacy/legacy_describe.c types/lighter/lighter.c types/marker/marker.c types/pedestal/pedestal.c types/player_mover/player_mover.c types/poison/poison.c types/potion/potion.c types/power_crystal/power_crystal.c types/savebed/savebed.c types/scroll/scroll.c types/shop_inventory/shop_inventory.c types/shop_mat/shop_mat.c types/sign/sign.c types/skillscroll/skillscroll.c types/spellbook/spellbook.c types/spell_effect/spell_effect.c types/spinner/spinner.c types/transport/transport.c types/trap/common_trap.c types/trapdoor/trapdoor.c types/treasure/treasure.c types/trigger_altar/trigger_altar.c types/trigger_button/trigger_button.c types/trigger_pedestal/trigger_pedestal.c types/trigger/trigger.c types/weapon_improver/weapon_improver.c utils/bwp.c utils/gridarta-types-convert.c utils/mapper.c Raphaël Quinet 2008-07-20 Style fixes in files that were using foo[ bar ] instead of foo[bar], slight reformatting of Win32 code. There were only 30 occurences of foo[ bar ] among 3958 lines using array indexes or declarations, so it is clear that the common style is to avoid spaces inside the brackets. common/object.c plugins/cfnewspaper/cfnewspaper.c server/c_party.c server/win32.c server/c_misc.c server/c_object.c server/apply.c socket/info.c utils/mapper.c Raphaël Quinet 2008-07-20 Win32 compilation fixes. include/win32.h: some #define to fix things. make_win32/crossfire32.dsp: add missing files. make_win32/plugin_python/plugin_python.dsp: add missing files. socket/loop.c: function doesn't exist, so we'll suppose the socket is ok for now. Nicolas Weeger 2008-07-19 Fix for bug #2017790 "Cannot build talking books, listening books or signs". Fixed the incorrect usage of the function can_build_over(), refactored and simplified the code, made functions static, added test to prevent the same wall from being rebuilt several times, do not remove the marking rune prematurely if a listening book cannot be built. include/sproto.h server/build_map.c Raphaël Quinet 2008-07-19 Fix bug #2009686 "party password does not work if 8 characters long". 8 chars long passwords broke with party_rejoin to auto rejoin on login due to 9 char buffer and assuming the last char would always be an \n. server/login.c Arvid Norlander 2008-07-18 Fix bug #2017648 "applying devourer weap causes crash", this was a division by zero bug that affected any "personalized blessings" weapons with a willpower in the range 0-1000. Also fix some minor issues in the same code block (reordering tests and reusing a variable instead of fetching it using get_ob_key_value twice). server/apply.c Arvid Norlander 2008-07-17 In debug log message, check for null value and substitute as needed - it is not universal that printf("%s", NULL) will not crash. MSW 2008-07-07 Fix for bug #2009802 "alchemy experience not stored correctly": Remove useless and dangerous casts to uint16 because both source and destination variables are of type int, and the experience points for several recipes do not fit in 16 bits. common/recipe.c Raphaël Quinet 2008-07-03 Partially update metaserver specification. doc/metaserver Andreas Kirschbaum 2008-06-27 Don't reset image checksum. common/image.c Nicolas Weeger 2008-06-21 Fix for bug #1990016 "No message when using skills over an empty cauldron" server/alchemy.c Raphaël Quinet 2008-06-14 Add missing newlines in copyright header in some plugin source/header files. plugins/cfpython/include/cfpython.h plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/include/cfpython_map.h plugins/cfpython/cfpython_map.c plugins/cfnewspaper/cfnewspaper.c Arvid Norlander 2008-06-13 Reformat all header files in include/ to fit with current coding style standard, a combination of using the astyle tool and manual review afterwards. include/define.h include/treasure.h include/commands.h include/win32.h include/shstr.h include/timers.h include/config.h include/object.h include/loader.h include/attack.h include/race.h include/logger.h include/newserver.h include/image.h include/ob_methods.h include/re-cmp.h include/living.h include/book.h include/player.h include/plugin.h include/material.h include/metaserver2.h include/spellist.h include/global.h include/skills.h include/spells.h include/includes.h include/god.h include/map.h include/tod.h include/newclient.h Arvid Norlander 2008-06-13 First step in fixing bug #1992235 (citylife/rabies potential DOS). Make citylife NPCs undead. plugins/citylife/citylife.c Arvid Norlander 2008-06-12 Reformat all files in server/ to fit with current coding style standard, a combination of using the astyle tool and manual review afterwards. server/c_range.c server/weather.c server/c_party.c server/commands.c server/win32.c server/init.c server/daemon.c server/timers.c server/spell_attack.c server/attack.c server/c_move.c server/rune.c server/shop.c server/swap.c server/pets.c server/skill_util.c server/spell_util.c server/disease.c server/c_chat.c server/alchemy.c server/resurrection.c server/c_new.c server/player.c server/gods.c server/build_map.c server/c_misc.c server/time.c server/ban.c server/skills.c server/move.c server/server.c server/c_object.c server/c_wiz.c server/plugins.c server/apply.c server/monster.c server/spell_effect.c server/hiscore.c Arvid Norlander 2008-06-12 Reformat all files in random_maps/ to fit with current coding style standard, a combination of using the astyle tool and manual review afterwards. random_maps/wall.c random_maps/style.c random_maps/snake.c random_maps/door.c random_maps/room_gen_onion.c random_maps/exit.c random_maps/square_spiral.c random_maps/random_map.c random_maps/rogue_layout.c random_maps/room_gen_spiral.c random_maps/test.c random_maps/special.c random_maps/floor.c random_maps/maze_gen.c random_maps/monster.c random_maps/standalone.c random_maps/expand2x.c random_maps/treasure.c random_maps/decor.c Arvid Norlander 2008-06-12 Reformat all files in socket/ to fit with current coding style standard, a combination of using the astyle tool and manual review afterwards. Also fix copy-and-paste typo from svn output in changelog below. socket/item.c socket/image.c socket/init.c socket/request.c socket/loop.c socket/lowlevel.c socket/info.c socket/sounds.c socket/metaserver.c Arvid Norlander 2008-06-12 Reformat common/loader.l a bit too. Update info in common/README. Clean up some trailing whitespaces in some header files. common/loader.l common/README make_win32/plugin_python/resource.h make_win32/resource.h Arvid Norlander 2008-06-12 Reformat all files in common/ to fit with current coding style standard, a combination of using the astyle tool and manual review afterwards. common/item.c common/readable.c common/dialog.c common/shstr.c common/object.c common/languages.c common/button.c common/holy.c common/logger.c common/image.c common/re-cmp.c common/ob_methods.c common/region.c common/living.c common/info.c common/player.c common/exp.c common/stringbuffer.c common/recipe.c common/friend.c common/map.c common/arch.c common/links.c common/porting.c common/ob_types.c common/anim.c common/treasure.c common/glue.c common/los.c Arvid Norlander 2008-06-12 Get rid of a GCC warning, fix a typo in a comment. include/libproto.h common/loader.l server/time.c Arvid Norlander 2008-06-12 Reformat some files to fit with current coding style standard, a combination of astyle and manual review afterwards. common/utils.c common/init.c common/time.c common/porting.c Arvid Norlander 2008-06-11 Remove some auto generated (by autoconf/automake) files from svn. Updated svn:ignore to match. Also updated svn:ignore for other places. Removed: utils/depcomp utils/config.guess utils/config.sub utils/mkinstalldirs utils/missing utils/install-sh Property change on: . utils test/bugs/bugtrack Arvid Norlander 2008-06-11 Reformat some files to fit with current coding style standard, a combination of astyle and manual review afterwards. Also fix bad date in ChangeLog I entered below (copy and paste blergh). server/init.c server/disease.c server/login.c server/main.c Arvid Norlander 2008-06-11 Reformat two files to fit with current coding style standard, a combination of astyle and manual review afterwards. server/move.c server/server.c Arvid Norlander 2008-06-11 Prevent running the crossfire server as root on *nix systems. Give an explaining error message. It will also prevent running it as suid (intentional). server/server.c Arvid Norlander 2008-06-11 Temporary work around a crash in move_disease() that is very hard to reproduce, and I haven't managed to find the cause for. server/disease.c Arvid Norlander 2008-06-11 Make more functions and variables in plugins static. Clean up some indention in plugins. plugins/cflogger/cflogger.c plugins/cfanim/include/cfanim.h plugins/cfanim/include/cfanim_proto.h plugins/cfanim/cfanim.c plugins/cfnewspaper/cfnewspaper.c Arvid Norlander 2008-06-05 Clean up in plugins, fix a lot of gcc warnings (in plugins), update prototype headers in plugins, make some functions static. Also update build system for cflogger to make it not include common plugin stuff in header. Followed example set by cfnewspaper's Makefile.am. Make the template plugin include prototype header. (It is a good idea to do so, for various reasons.) Also add some missing newlines at end of copyright header comments in some files. Also make some variables const (in python plugin) in order to fix gcc warnings and to make code cleaner (a string literal is always a const char* in C90 or later, but char* is allowed for compatibility reasons, though it will actually be a const). configure.ac plugins/cflogger/include/cflogger_proto.h plugins/cflogger/include/cflogger.h plugins/cflogger/Makefile.am plugins/cflogger/cflogger.c plugins/citylife/citylife.c plugins/cfrhg/cfrhg.c plugins/cfpython/include/cfpython_proto.h plugins/cfpython/include/cfpython_object.h plugins/cfpython/cfpython.c plugins/template/create_plugin.sh plugins/template/plugin_template.c plugins/cfnewspaper/include/cfnewspaper.h plugins/cfnewspaper/include/cfnewspaper_proto.h plugins/cfnewspaper/cfnewspaper.c Added: plugins/citylife/include/citylife_proto.h plugins/cfrhg/include/cfrhg_proto.h Removed: plugins/cflogger/include/Makefile.am Arvid Norlander 2008-06-04 Spellcheck and update documentation. Updated CVS commit guide lines to refer to SVN (and current practice). Added missing docs for "music" command to protocol docs. doc/Developers/objects doc/Developers/mapguide doc/Developers/protocol doc/Developers/key-value doc/Developers/spells doc/Developers/svn doc/Developers/README doc/Developers/map-technical doc/Developers/random-maps Moved: doc/Developers/cvs to doc/Developers/svn Arvid Norlander 2008-06-02 Add missing call to init_gods in check_item unit test that caused a crash at -O1 or higher (sometimes). That however broke other parts of the test suite that depends on a certain sequence of random numbers. (Very brittle code!) Fix so it matches the new generated random order. test/unit/common/check_item.c Arvid Norlander 2008-06-01 Add some missing "extern" keywords that caused warnings. Change some EXTERN to extern (as EXTERN is undefined in some files, but that caused issues in a few cases). Add some missing "const" keywords to devel/devel.c and fix a typo in a comment. Remove some unused variables from random_maps. include/timers.h include/global.h devel/devel.c random_maps/room_gen_onion.c random_maps/room_gen_spiral.c server/timers.c Arvid Norlander 2008-06-01 Set svn:eol-style to native on *.c and *.h files that were missing it. server/ob_methods.c server/ob_types.c test/unit/server/comet_perf.c test/bugs/bugtrack/check_1727944.c plugins/cflogger/include/cflogger_proto.h plugins/cflogger/include/cflogger.h plugins/cflogger/cflogger.c plugins/citylife/include/citylife.h plugins/citylife/citylife.c plugins/cfrhg/include/cfrhg.h plugins/cfrhg/cfrhg.c plugins/cfpython/cjson.c plugins/cfnewspaper/include/cfnewspaper.h plugins/cfnewspaper/include/cfnewspaper_proto.h plugins/cfnewspaper/cfnewspaper.c include/dialog.h include/languages.h include/image.h include/ob_methods.h include/typesproto.h include/metaserver2.h include/stringbuffer.h include/ob_types.h common/dialog.c common/languages.c common/ob_methods.c common/stringbuffer.c common/ob_types.c utils/mapper.c utils/gridarta-types-convert.c utils/bwp.c types/gate/gate.c types/marker/marker.c types/player_changer/player_changer.c types/shop_inventory/shop_inventory.c types/food/food.c types/lamp/lamp.c types/arrow/arrow.c types/book/book.c types/peacemaker/peacemaker.c types/identify_altar/identify_altar.c types/trigger_button/trigger_button.c types/pedestal/pedestal.c types/cf_handle/cf_handle.c types/poisoning/poisoning.c types/trap/common_trap.c types/trap/trap.c types/trap/rune.c types/duplicator/duplicator.c types/thrown_object/thrown_object.c types/poison/poison.c types/converter/converter.c types/detector/detector.c types/shop_mat/shop_mat.c types/director/director.c types/weapon_improver/weapon_improver.c types/spinner/spinner.c types/blindness/blindness.c types/container/container.c types/trigger_pedestal/trigger_pedestal.c types/deep_swamp/deep_swamp.c types/teleporter/teleporter.c types/trigger_altar/trigger_altar.c types/hole/hole.c types/armour_improver/armour_improver.c types/common/describe.c types/common/projectile.c types/common/common_apply.c types/check_inv/check_inv.c types/spellbook/spellbook.c types/trapdoor/trapdoor.c types/treasure/treasure.c types/clock/clock.c types/spell_effect/spell_effect.c types/transport/transport.c types/power_crystal/power_crystal.c types/skillscroll/skillscroll.c types/lighter/lighter.c types/scroll/scroll.c types/mood_floor/mood_floor.c types/creator/creator.c types/sign/sign.c types/altar/altar.c types/trigger/trigger.c types/legacy/process.c types/legacy/legacy_describe.c types/legacy/apply.c types/player_mover/player_mover.c types/potion/potion.c types/exit/exit.c types/savebed/savebed.c types/button/button.c Arvid Norlander 2008-06-01 Update 'make collect' so that it does not complain about files that are not really junk: CHANGES, TODO, *.xcf* (including *.xcf.gz or *.xcf.bz2), *.doc and *.txt. lib/collect.pl.in Raphaël Quinet 2008-06-01 Scripted removal of trailing whitespaces, also removing excessive newlines at end of files (one final newline should be all). plugins/cfpython/cjson.c socket/metaserver.c common/languages.c common/button.c common/time.c random_maps/treasure.c server/spell_attack.c server/resurrection.c server/player.c server/skills.c server/move.c server/c_object.c server/hiscore.c INSTALL Arvid Norlander 2008-06-01 Change even more sprintf to snprintf. socket/init.c socket/loop.c socket/info.c random_maps/random_map.c server/c_party.c server/init.c server/rune.c server/swap.c server/pets.c server/disease.c server/alchemy.c server/resurrection.c server/gods.c server/player.c server/c_misc.c server/ban.c server/skills.c server/login.c server/c_wiz.c server/spell_effect.c server/hiscore.c Arvid Norlander 2008-05-31 Change some more sprintf to snprintf. common/readable.c common/languages.c common/holy.c common/logger.c common/image.c common/region.c common/living.c common/exp.c common/recipe.c common/arch.c common/porting.c common/anim.c common/treasure.c socket/metaserver.c types/food/food.c types/weapon_improver/weapon_improver.c Arvid Norlander 2008-05-31 Change some sprintf to snprintf. socket/image.c socket/item.c socket/request.c Arvid Norlander 2008-05-30 Fix use of uninitialised variables in the plugin API and remove some dead code from the plugin API (as in: never called from plugin_common.c) Also cleanup indention in map.h, change order of members in some structs in face.h to pack them a bit better. include/face.h include/map.h plugins/common/plugin_common.c server/plugins.c Arvid Norlander 2008-05-29 Fix the member order in global.h to match the one in init.c. Fix some extern with wrong type (was char* instead of const char* const). Change some prototypes to use const pointers. Change to strtol if it exists, and only fall back to strtol_local if it doesn't. common/object.c common/porting.c common/treasure.c include/attack.h include/global.h include/libproto.h include/sproto.h server/login.c server/spell_util.c server/time.c Arvid Norlander 2008-05-29 Fix a case of assigning and passing a string literal (const char*) as a char*. Also pack one structure a bit better. random_maps/random_map.c random_maps/random_map.h random_maps/rproto.h random_maps/special.c Arvid Norlander 2008-05-29 Make server send size and data in one packet, this fix is suboptimal though as it uses memcpy to do so, it should use writev instead. socket/lowlevel.c Arvid Norlander 2008-05-29 Change the order of some members in some of the large and often used structs in order to pack them better. This will mainly help on x86_64, but also a bit on x86. No actual functionality change. Some structs could be packed even better but that would destroy the logical sectioning of the members in groups. include/living.h include/map.h include/newserver.h include/object.h include/player.h Arvid Norlander 2008-05-27 Fix some more snprintf using a non-constant string as format parameter, and no arguments to format string. Also change some more // comments to /**/, as crossfire is C89 not C99. Add some missing prototypes to headers. Add missing value to a return. Change from using strcasestr (GNU specific) to the already existing strcasestr_local in one place. plugins/cflogger/cflogger.c plugins/cfnewspaper/cfnewspaper.c plugins/common/include/plugin_common.h server/hiscore.c server/login.c socket/lowlevel.c server/move.c server/player.c server/plugins.c server/server.c server/shop.c server/spell_effect.c Arvid Norlander 2008-05-27 Fix some snprintf using a non-constant string as format parameter, and no arguments to format string. Also change some // comments to /**/, as crossfire is C89 not C99. common/anim.c common/init.c common/map.c common/readable.c common/shstr.c Arvid Norlander 2008-05-25 Removed unused .cvsignore files, after all we use SVN since a long time. .cvsignore */.cvsignore */*/.cvsignore */*/*/.cvsignore Arvid Norlander 2008-05-25 Add length parameter for some functions to be able to use snprintf instead of sprintf in those. Fixed a char* that should have been const char* in plugin code. Fixed some typos in protocol documentation. Also fixed indention in some code while I was working on it anyway. doc/Developers/protocol include/sockproto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c socket/info.c socket/request.c Arvid Norlander 2008-05-25 Cleanup the autoconf and automake stuff somewhat: * Removed tests for X libraries (as the map editor is no longer a part of the server) * Ran autoupdate to update the syntax (where it could do so). * Add some missing checks * Make check for gethostbyname try libc first, no need to get nsl version. * Use AS_HELP_STRING to format help strings. * General cleanup and reformatting to make it easier to maintain. * Update automake syntax in some files. acinclude.m4 check-fragment.am configure.ac include/autoconf.h.in test/toolkit/Makefile.am Arvid Norlander 2008-05-24 Fix for bug #1965528. Not sure if it fixes all cases of the bug. server/shop.c Arvid Norlander 2008-05-21 Change a lot of static variables to static const, as they are never modified. Also remove some non-needed nested (inside a function) extern. Also fix some compiler warning in cfanim (on x86_64 int is not same size as long int!). common/exp.c common/logger.c common/los.c common/item.c common/object.c common/readable.c common/time.c common/treasure.c plugins/cfanim/cfanim.c server/c_object.c server/c_misc.c server/monster.c server/player.c server/server.c socket/loop.c socket/request.c Arvid Norlander 2008-05-21 Fix wrong format string for 64-bit unsigned values. Fix confusing error log message in shop code (confusing due to not refering to the correct function). include/global.h server/shop.c Arvid Norlander 2008-05-21 Remove an unused static const array. Not referenced anywhere. common/item.c Arvid Norlander 2008-05-21 Add a 'message' command, that will display a message on the whole map the victim is on. plugins/cfanim/cfanim.c Nicolas Weeger 2008-05-20 Clean some log messages. Add the option to specify the animation to play through the 'message' sent as part of the event. plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim_proto.h Nicolas Weeger 2008-05-20 The current configure.ac was already set to use the utils directory for auxillary files, so the config.guess and config.sub in the top source directory were not used, thus moved them to utils directory. (Before, locally created copies by autogen.sh placed in utils/ would were used. Try removing them if svn complains about already existing files). Also force update of all autoconf/automake files to last versions. Also fix a minor issue with "inline" and "void" being in wrong order in a function (gcc will handle it, but the C standard doesn't allow it). INSTALL common/map.c utils/depcomp utils/install-sh utils/missing utils/mkinstalldirs Moved: config.guess to utils/config.guess config.sub to utils/config.sub Arvid Norlander 2008-05-20 Fix some cases of using snprintf function with potentially untrusted data as format parameter. Change two sprintf into snprintf. Add return value for all code paths in a non-void returning function. common/path.c server/c_chat.c server/c_misc.c server/c_wiz.c Arvid Norlander 2008-05-20 Update svn:ignore property for various directories in the server source, in order to make it simpler to work with. (Lots of directories in the source tree, too many to list here) Arvid Norlander 2008-05-20 Apply Patch #1966455: Fix for cut off NPC dialog messages. common/dialog.c Arvid Norlander 2008-05-20 Apply Patch #1966113: Fix uninitialised range vector in monster.c. server/monster.c Arvid Norlander 2008-05-20 Increase base book max size, to try to get more various messages. include/book.h Nicolas Weeger 2008-05-19 Apply Patch #1967076: Fix crash in use command. command/c_object.c Arvid Norlander 2008-05-19 Apply patch #1965969: Unit test for common/path.c. common/path.c test/unit/common/check_path.c Makefile.am Arvid Norlander 2008-05-17 Apply patch #1964563: Fix compile error when "MEMORY_DEBUG" is defined in config.h. server/server.c Arvid Norlander 2008-05-16 Apply patch #1964058: Fix missing \0 in buffer in add_object_to_socklist. socket/item.c Arvid Norlander 2008-05-16 Apply patch #1964051: Valgrind error fix: Bad format string. lib/i18n/messages.en messages.fr Arvid Norlander 2008-05-16 Fix incorrect boundary of the object type array, courtesy of Arvid Norlander. include/define.h Yann "gros" Chachkoff 2008-05-16 Fix memory leaks, courtesy Arvid Norlander. common/dialog.c Andreas Kirschbaum 2008-05-23 Added the possibility to build the server outside of its source directory. plugins/citylife/Makefile.am plugins/cfrhg/Makefile.am plugins/template/Makefile.am plugins/cfnewspaper/Makefile.am Arvid Norlander 2008-05-14 Fixed bug #1962926 "Fix for crash on division by zero", courtesy of Arvid Norlander common/item.c Yann "gros" Chachkoff 2008-05-13 Removed 'context' stuff as it isn't used here. Clean event handling. plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim.h cfanim_proto.h Nicolas Weeger 2008-05-12 Add 'moveto' command, and 'byname' victim type. Fix potential memory leak. Enable moves to take more than one tick. doc/Developers/plugins.doc/cfanim/animfiles.txt plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim.h cfanim_proto.h Nicolas Weeger 2008-05-12 Wrapper for move_to(). Fix invalid move_to parameter order. plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2008-05-12 Give access to find_string() to plugins. Fix invalid manual_apply parameter order. include/sproto.h server/plugins.c Nicolas Weeger 2008-05-12 Detect correct prototype for strerror_r() courtesy Arvid Norlander. common/porting.c configure.ac include/autoconf.h.in include/libproto.h Andreas Kirschbaum 2008-05-12 Ansi C compatibility improvements courtesy Arvid Norlander: include/attack.h: do not redeclare variable socket/lowlevel.c: use #include (lots of files): use prototypes Andreas Kirschbaum 2008-05-12 Fix possible buffer overflows courtesy Arvid Norlander. common/init.c Andreas Kirschbaum 2008-05-12 Give access to move_to() to plugins. plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2008-05-12 Rewrite NPC communication system. See doc/objects 'J. NPC's Speak out' for more information, or check doc/Developers/dialog.dox, or the maps/test/say map. common/loader.l Makefile.am object.c doc/Developers/mainpage.dox objects include/define.h Makefile.am object.h libproto.h typesproto.h server/c_chat.c monster.c New files: common/dialog.c doc/Developers/dialog.dox include/dialog.h Nicolas Weeger 2008-05-11 Add 'move_to' function, that can be used later on for eg plugins (should replace Python's CFMove). include/sproto.h server/monster.c move.c Nicolas Weeger 2008-05-11 Merge NPC and MAGIC_EAR handling, add comments, fix prototype to use const. include/sproto.h server/monster.c Nicolas Weeger 2008-05-11 Document a few things. plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim_proto.h Nicolas Weeger 2008-05-10 Fix bombs being really too powerful. server/spell_attack.c: set the maxhp (for spell merging) for bombs too. Nicolas Weeger 2008-05-10 Make the 'second' timemode work. Don't set FLAG_WIZ* on non player object. Correctly remove event if unique. plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim_proto.h Nicolas Weeger 2008-05-10 Fix a few warnings. include/sproto.h: add prototype for query_cost_string(). test/toolkit/toolkit_common.c: make argument const. Nicolas Weeger 2008-05-10 Rename some functions, fix documentation. doc/Developers/login.dox include/sockproto.h server/init.c server.c socket/init.c loop.c request.c Nicolas Weeger 2008-05-10 Implement feature request #1961031: 'drop food' and 'drop flesh' buttons would be nice. lib/help/dropall.{fr,en}: update help text. server/c_object.c: extend 'dropall' to accept 'food' and 'flesh'. Nicolas Weeger 2008-05-10 Fix bug #1846018: artifact monster graphics broken. common/treasure.c: animation is part of things artifact can change. lib/artifacts: add correct animations to monsters. Nicolas Weeger 2008-05-09 Also extract NPC messages for friendly living things. utils/mapper.c Nicolas Weeger 2008-05-08 Potential fix for bug #1928570: x-ray vision now needs a push start. server/spell_effect.c: use FLAG_NO_FIX_PLAYER to not mess with our values. Nicolas Weeger 2008-05-08 Fix a potential underflow, forbid players to create too powerful missiles. server/spell_effect.c Nicolas Weeger 2008-05-08 Remove unpaid items when returning a player to his savebed for map reset or after server-specific timeout. include/sproto.h server/login.c player.c Nicolas Weeger 2008-05-08 Generate NPC information page. utils/mapper.c Nicolas Weeger 2008-05-08 Better and more logical fix for bug #1936178: Trying to remove removed object causes server crash. random_maps/treasure.c: remove doors after door replacing. Nicolas Weeger 2008-05-08 Fix artifact reading to (kind of) trim strings. Fix add missing artifacts to fix alchemy warning. common/treasure.c lib/artifacts Nicolas Weeger 2008-05-08 Tentative fix for bug #1936178: Trying to remove removed object causes server crash. random_maps/treasure.c: update doorlist to process when removing a door. Nicolas Weeger 2008-05-08 Tentative fix for bug #1956908: bolt wc can overflow. server/player.c: cap modifiers so we don't overflow wc. Nicolas Weeger 2008-05-07 Fix bug #1929084: Wrong artifact stats on forged items. Use 'legal_artifact_combination' to check that the item matches the artifact. common/recipe.c treasure.c include/libproto.h Nicolas Weeger 2008-05-07 common/loader.l: remove obsolete code. Nicolas Weeger 2008-05-07 Add min/max monster level information to maps. utils/mapper.c utils/templates/map_monster_before.template: added the fields to the default template. Nicolas Weeger 2008-05-07 Remove unused #ifdef and useless LOG. common/map.c Nicolas Weeger 2008-05-06 Provide a more explicit message when attempting to write down a spell with no marked scroll, as per bug #1910805. server/skills.c Yann Chachkoff 2008-04-20 New plugin: random house generator. Check cfrhg.c for details. Still basic, but should be a good start. configure.ac plugins/Makefile.am Added: cfrhg/include/cfrhg.h cfrhg/cfrhg.c Makefile.am Nicolas Weeger 2008-04-12 Extract duplicator handling to its own type file. common/button.c include/sproto.h typesproto.h random_maps/standalone.c server/ob_types.c time.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c types/Makefile.am New file: types/duplicator/duplicator.c Nicolas Weeger 2008-04-11 Extract detector handling to its own type file. include/sproto.h typesproto.h server/ob_types.c time.c types/Makefile.am types/legacy/process.c New file: types/detector/detector.c Nicolas Weeger 2008-04-11 Extract mood floor handling to its own type file. common/button.c include/sproto.h typesproto.h server/ob_types.c types/Makefile.am types/legacy/process.c New file: types/mood_floor/mood_floor.c Nicolas Weeger 2008-04-09 Extract marker handling to its own type file. common/button.c include/sproto.h typesproto.h random_maps/standalone.c server/ob_types.c time.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c types/legacy/process.c types/Makefile.am New file: types/marker/marker.c Nicolas Weeger 2008-04-09 Extract creator handling to its own type file. common/button.c include/sproto.h typesproto.h random_maps/standalone.c server/ob_types.c time.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c types/legacy/process.c types/Makefile.am New file: types/creator/creator.c Nicolas Weeger 2008-04-09 Extract teleporter handling to its own type file. common/button.c include/sproto.h typesproto.h random_maps/standalone.c server/ob_types.c time.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c types/legacy/process.c types/Makefile.am New file: types/teleporter/teleporter.c Nicolas Weeger 2008-04-08 include/libproto.h: missing register_trigger prototype. Nicolas Weeger 2008-04-08 New 'ob_trigger' object function. common/ob_methods.c ob_types.c include/libproto.h ob_methods.h Nicolas Weeger 2008-04-08 Move most of the object system's logic to common, to prepare for more refactoring and easier calling from the common library. common/Makefile.am include/libproto.h sproto.h random_maps/standalone.c server/ob_methods.c ob_types.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c Added files: common/ob_methods.c ob_types.c: duplicated from server/ and cleaned Nicolas Weeger 2008-04-08 Make type's type coherent. common/object.c include/libproto.h Nicolas Weeger 2008-04-06 Move conversion to lower case to calling function. server/c_new.c Nicolas Weeger 2008-04-06 Link to quest's definition instead of the page itself. utils/mapper.c Nicolas Weeger 2008-04-02 Sort maps on the quest page. utils/mapper.c Nicolas Weeger 2008-04-02 Remove obsolete get_map_ob define, replaced by GET_MAP_OB. common/button.c map.c utils.c include/map.h plugins/common/plugin_common.c random_maps/decor.c exit.c special.c standalone.c style.c treasure.c wall.c server/alchemy.c apply.c attack.c c_wiz.c disease.c monster.c move.c pets.c player.c plugins.c resurrection.c rune.c shop.c skill_util.c skills.c spell_attack.c spell_effect.c spell_util.c time.c socket/item.c utils/bwp.c mapper.c types/common/projectile.c types/exit/exit.c types/peacemaker/peacemaker.c types/shop_inventory/shop_inventory.c types/spell_effect/spell_effect.c Nicolas Weeger 2008-03-30 Remove static buffer. server/player.c Nicolas Weeger 2008-03-30 common/living.c: remove unneeded test. Nicolas Weeger 2008-03-30 Move function is_legal_2ways_exit() to relevant file, remove legacy function. include/sproto.h server/apply.c types/exit/exit.c Nicolas Weeger 2008-03-30 Extract blindness to its own file. include/sproto.h typesproto.h server/ob_types.c time.c types/legacy/process.c types/Makefile.am Added file: types/blindness/blindness.c Nicolas Weeger 2008-03-30 Change test order to speed up some, fix comments. server/c_object.c Nicolas Weeger 2008-03-30 Rename a few xxx_player() functions to xxx_living() for coherence. include/sproto.h server/apply.c attack.c skills.c spell_effect.c spell_util.c Nicolas Weeger 2008-03-30 Remove global variables. Make functions static. random_maps/maze_gen.c maze_gen.h rproto.h Nicolas Weeger 2008-03-30 Remove unused parameter, rename to better name. server/attack.c Nicolas Weeger 2008-03-30 Extract player_changer to its own file. include/sproto.h typesproto.h server/ob_types.c time.c types/legacy/process.c types/Makefile.am Added file: types/player_changer/player_changer.c Nicolas Weeger 2008-03-29 Remove obsolete code, tweak comment. server/time.c Nicolas Weeger 2008-03-29 Remove autohook inserted in items, and use was_destroyed() to check item's validity. plugins/cfpython/include/cfpython_object.h: keep item's count, change check macros. plugins/cfpython/cfpython_map.c: fix wrong EXISTCHECK_INT to MAPEXISTCHECK_INT. plugins/cfpython/cfpython_object.c: remove autohook stuff, use item's count. plugins/cfpython/cfpython.c: remove autohook handling. Nicolas Weeger 2008-03-29 Tweak documentation generation. doc/playbook/Makefile.am: factorize code to make it easy to generate PDFs, fix many pic issues. doc/scripts/makeps.pl: add "pdf" output support. Nicolas Weeger 2008-03-29 Remove unused variable. Use safe string functions. server/alchemy.c Nicolas Weeger 2008-03-29 Use try_find_archetype() instead of find_archetype() and remove the nroferrors handling. random_maps/wall.c Nicolas Weeger 2008-03-29 Remove unused parameter. random_maps/random_map.c rproto.h snake.c square_spiral.c test.c Nicolas Weeger 2008-03-29 Use StringBuffer to remove static buffers. include/sproto.h server/c_object.c shop.c Nicolas Weeger 2008-03-29 Fix accidentally broken connection. socket/request.c Nicolas Weeger 2008-03-29 Remove unused parameter. include/sproto.h server/spell_effect.c spell_util.c Nicolas Weeger 2008-03-29 Use safe string functions. server/build_map.c Nicolas Weeger 2008-03-29 Use flags instead of hardcoded values for monster's will_apply. include/object.h server/monster.c move.c Nicolas Weeger 2008-03-29 Remove unused return value. include/sproto.h server/player.c socket/request.c Nicolas Weeger 2008-03-29 Remove unused return value. include/sproto.h server/player.c Nicolas Weeger 2008-03-29 Remove static buffer. server/hiscore.c Nicolas Weeger, 2008-03-29 Remove static buffer, simplify code. server/hiscore.c Nicolas Weeger, 2008-03-29 Make god-related object const to avoid modification. common/holy.c readable.c include/libproto.h sproto.h server/attack.c c_wiz.c gods.c pets.c spell_attack.c spell_effect.c Nicolas Weeger, 2008-03-29 Clean code, use player-finding function. server/c_wiz.c Nicolas Weeger, 2008-03-29 Remove global variables, make them in a structure. Make function static. random_maps/rproto.h treasure.c Nicolas Weeger, 2008-03-29 Remove global variable, remove suspect tests. random_maps/treasure.c Nicolas Weeger, 2008-03-29 Remove obsolete other_arch field which was used for spell in firewall. server/time.c Nicolas Weeger, 2008-03-29 Remove free_map()'s second parameter, unused. common/map.c include/libproto.h server/swap.c test/unit/server/comet_perf.c Nicolas Weeger, 2008-03-29 Use 'const char*' instead of 'char*'. server/c_party.c c_wiz.c Nicolas Weeger, 2008-03-29 Fix non meaningful return value of summon_hostile_monsters(). server/spell_util.c Nicolas Weeger, 2008-03-29 Use 'const char*' instead of 'char*'. include/sproto.h server/swap.c Nicolas Weeger, 2008-03-29 Write 'describe_item' unit tests. test/unit/common/check_item.c Makefile.am Nicolas Weeger, 2008-03-25 Generate global elevation map. utils/mapper.c Nicolas Weeger, 2008-03-25 Factorize code. common/friend.c Nicolas Weeger, 2008-03-24 Correctly point to tiled group instead of non existing map page. utils/mapper.c Nicolas Weeger, 2008-03-24 Use region's name instead of the filename in maps's pages. utils/mapper.c Nicolas Weeger, 2008-03-24 Remove trailing newlines in quest/map description. utils/mapper.c Nicolas Weeger, 2008-03-24 Tweak documentation so some programs in utils/ are part of Doxygen's output. Doxyfile utils/bwp.c gridarta-types-convert.c mapper.c Nicolas Weeger, 2008-03-23 Tweak documentation, remove unused parameters. plugins/citylife/citylife.c Nicolas Weeger, 2008-03-23 Fix memory leak. utils/mapper.c Nicolas Weeger, 2008-03-23 Fix documentation, no functional change. common/button.c image.c info.c init.c item.c player.c time.c treasure.c plugins/cfpython/cfpython_map.c random_maps/exit.c random_map.h treasure.c server/apply.c plugins.c rune.c spell_effect.c types/button/button.c types/exit/exit.c types/legacy/apply.c types/spell_effect/spell_effect.c types/trap/rune.c types/treasure/treasure.c Nicolas Weeger, 2008-03-23 Fix protocol issues regarding sent items: do not send invisible items. common/object.c Andreas Kirschbaum 2008-03-21 Fix protocol issues regarding face caching. socket/request.c Andreas Kirschbaum 2008-03-21 Implement strerror_local() for systems not having strerror_r(). common/porting.c Andreas Kirschbaum 2008-03-20 Fix some integer overflows in experience calculations. common/exp.c common/living.c include/libproto.h include/sproto.h server/attack.c server/skill_util.c Andreas Kirschbaum, 2008-03-08 Fix i18n bug resulting in erroneous output for 'statistics' command. include/languages.h Kevin Bulgrien, 2008-03-02 Generate a global list of monsters in maps, and list monsters on each map. utils/templates/map.template utils/mapper.c Added files: utils/templates/map_monster_after.template map_monster_before.template map_monster_between.template map_no_monster.template map_monster_one.template Nicolas Weeger, 2008-02-23 Generate a list of special equipment in maps. Not yet listed in the map page itself. utils/mapper.c Nicolas Weeger, 2008-02-22 Smarter pic generation for tiled maps. Fix crash if no map for quest. utils/mapper.c Nicolas Weeger, 2008-02-16 Remove obsolete functions (related to weather). random_maps/standalone.c utils/bwp.c mapper.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c Nicolas Weeger, 2008-02-17 Fix shifted pic for eg Titan. common/object.c: make get_multi_size() non static so can be used elsewhere. include/libproto.h utils/mapper.c Nicolas Weeger, 2008-02-17 Remove ltostr10 and doubletostr10. They were using static buffer, and are nicely replaced by stringbuffer_append_printf() or snprintf(). common/loader.l object.c porting.c include/libproto.h server/time.c test/unit/common/check_loader.c Nicolas Weeger, 2008-02-17 Unit test for get_ob_diff(). test/unit/common/check_loader.c test/unit/common/Makefile.am Nicolas Weeger, 2008-02-17 Tileset support, through '-tileset=' option. Default 'standard' tileset. utils/mapper.c Nicolas Weeger, 2008-02-16 Remove left-over from weather code. common/map.c utils.c include/map.h plugin.h sproto.h plugins/cfpython/include/cfpython_map_private.h plugins/cfpython/cfpython_map.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/c_misc.c init.c plugins.c weather.c Nicolas Weeger, 2008-02-16 Fix various warnings, remove unused variables/code. common/button.c languages.c server/attack.c c_misc.c spell_util.c socket/request.c sounds.c types/gate/gate.c Nicolas Weeger, 2008-02-14 Add 'race_restriction' key/value field, that enables to restrict an item to being appliable only for certain races. doc/Developers/objects server/apply.c Nicolas Weeger, 2008-02-14 Remove unused functions. common/porting.c include/libproto.h Nicolas Weeger, 2008-02-13 Better tiled maps handling. Now tiled maps are considered as one map, and all links will point to the group. utils/mapper.c Nicolas Weeger, 2008-02-13 Kind of update a few things. doc/handbook.ps doc/playbook/appA.tex chap3.tex Nicolas Weeger, 2008-02-09 Fix broken pics. doc/playbook/items-extract doc/playbook/Makefile.am Nicolas Weeger, 2008-02-09 socket/loop.c request.c: fix missing parameter. Nicolas Weeger, 2008-02-09 Use 'anim_suffix' in class selection to try to find a race/class animation. server/apply.c Nicolas Weeger, 2008-02-09 Some bases for sending race/class info to client. Not finished. doc/Developers/protocol: update. include/sockproto.h socket/loop.c request.c Nicolas Weeger, 2008-02-09 Helper stringbuffer function. common/stringbuffer.c include/stringbuffer.h Nicolas Weeger, 2008-02-09 Get quest information from map's lore. Generate quest index. utils/mapper.c utils/templates/map.template Added files: templates/map_no_quest.template map_one_quest.template map_with_quests.template quests.template quests_map.template quests_quest.template Nicolas Weeger, 2008-02-08 Include level of map in variables. Generate global map index by level. utils/mapper.c Added files: utils/templates/level.template level_map.template level_value.template Nicolas Weeger, 2008-02-08 Documentation, no functional change. common/anim.c: remove todo, done. doc/Developers/compound_animations.dox: added. doc/Developers/custom_attributes.dox: first version. doc/Developers/mainpage.dox: add the previous 2 pages. Nicolas Weeger, 2008-02-07 Add stringbuffer_append_printf(), stringbuffer_append_stringbuffer(), and stringbuffer_finish_shared(). common/stringbuffer.c include/stringbuffer.h Andreas Kirschbaum 2008-02-07 Change heading of high score command output to match the actual highscore data by using <> instead of [] around max grace, hp, and sp. The reason is that when [max x] gets to a client that supports mediaTags, the text is treated as a tag, and a log message is created about an unknown tag. server/hiscore.c Kevin Bulgrien, 2008-02-06 Use map's name on the slaying page. utils/mapper.c Nicolas Weeger, 2008-02-05 Add exits leading to a map. Changes tag to be coherent. utils/mapper.c utils/templates/map.template map_with_exit.template Added templates: utils/templates/map_exit_to.template map_no_exit_to.template map_with_exit_to.template Nicolas Weeger, 2008-02-05 Extract map page writing to separate function. Make names coherent. Delay map loading, reducing memory consumption. Use map name in exit list. Fix documentation. utils/mapper.c Nicolas Weeger, 2008-02-05 Always get map's name at cost of memory use. utils/mapper.c Nicolas Weeger, 2008-02-05 Parameter to toggle exit info generation. utils/mapper.c Nicolas Weeger, 2008-02-05 Simplify code. utils/mapper.c Nicolas Weeger, 2008-02-05 Fix warnings. utils/mapper.c Nicolas Weeger, 2008-02-04 Get the real map's name. utils/mapper.c Nicolas Weeger, 2008-02-04 Keep pointer to region instead of just the name. utils/mapper.c Nicolas Weeger, 2008-02-03 Major refactoring, to prepare for more fun things. utils/mapper.c Nicolas Weeger, 2008-02-03 Generate information on 'slaying' fields. Not complete yet, missing FORCE created by markers and other things. utils/mapper.c Nicolas Weeger, 2008-02-03 Add lore information to map page. utils/mapper.c Added files: utils/templates/map_lore.template map_no_lore.template Nicolas Weeger, 2008-02-03 common/object.c: fix memory leak. Nicolas Weeger, 2008-02-03 Remove weather code, unused and messy. include/global.h sproto.h tod.h common/init.c map.c lib/i18n/messages.en messages.fr settings server/c_misc.c commands.c init.c weather.c Nicolas Weeger, 2008-02-01 Fix for bug #1882265: Server failure when all exp_table entries commented out. common/exp.c: exit() in case of errors. lib/exp_table: enable a table by default. Nicolas Weeger, 2008-02-01 plugins/cfanim/cfanim.c, plugins/cfanim/include/cfanim.h, plugins/cfanim/include/cfanim_proto.h: Changed the name of variables that some C compilers considered as keywords. Yann "gros" Chachkoff 2008-02-01 socket/request.c: trash obsolete code (and version is checked for >= 1027 anyway). Nicolas Weeger, 2008-01-30 configure.in: Remove to eliminate autoconf complaints that configure.ac and configure.in exist. include/define.h: Add a comment to HOLE. include/, include/.cvsignore: svnversion.h should not be controlled in SVN so ignore it. Changed svn:ignore property accordingly. Kevin Bulgrien 2008-01-30 include/Makefile.am: Use hint at http://www.in-ulm.de/~mascheck/various/echo/ to try to remove a portability issue regarding use of echo -n. Kevin Bulgrien 2008-01-29 Fix for bug 1850524 - SDL clients crash when entering boat. Bogus scroll values were being sent on mapscroll, but only the SDL client did anything with the mapscroll variables, so only it saw problems. --- types/transport/transport.c: Store away player x and y positions so we can do proper comparisions. Move update of applier values out of if coordinates are different, since those need to get updated in all cases. MSW 2008-01-27 Changes for SVN: Fix for #1878361: "Hill Giants no longer throw boulders" Modified files: server/skills.c Yann "gros" Chachkoff, 2008-01-27 Fix for #1878323: "trunk server crashes when praying on alter" Modified files: server/gods.c Yann "gros" Chachkoff, 2008-01-27 New plugin: citylife. Adds NPCs to town, to make them more lively. See the plugin documentation for more details. Modified files: configure.ac: build new plugin. doc/Developers/mainpage.dox: link to plugin documentation. plugins/Makefile.am: build new plugin. Added files: plugins/citylife/include/citylife.h plugins/citylife/citylife.c plugins/citylife/Makefile.am Nicolas Weeger, 2008-01-27 Fix template plugin generation and compilation. plugins/template/plugin_template.c: fix compilation and parameter order for strncpy. plugins/template/create_plugin.sh: missing "exit" to quit if no name. Nicolas Weeger, 2008-01-26 utils/mapper.c: new option, "-regionslink", to generate a .dot file containing relationship between regions. New option "-noworldmap" to not generate the full world map. Use region's longname instead of the short name in regions index. Change world map size from 30xtiles to 50xtiles. Nicolas Weeger, 2008-01-26 .cvsignore files created in types subdirectories and svn:ignore set. Kevin Bulgrien Spelling mistakes corrected. README configure.ac doc/crossfire-server.man Kevin Bulgrien Solved an issue about the portability of strerror_r. common/porting.c Yann "gros" Chachkoff, 2008-01-25 Add F_BLESSED to send blessed status to client. include/newclient.h socket/item.c Nicolas Weeger, 2008-01-24 plugins/cfpython/cfpython.c: add EVENT_USER to defined constants. Nicolas Weeger, 2008-01-24 Documentation, no functional change. common/treasure.c: link functions to the relevant page. doc/Developers/collect.dox: new file. doc/Developers/mainpage.dox: link to collect process. doc/Developers/treasure_list.dox: add much content. Nicolas Weeger, 2008-01-16 Commit combat rebalancing. Combat is slower now, so less deadly. If player is idle, they get faster hp/sp regen. Allow generators to have limit on number of monsters they generate before disappearing. Starting characters all have same stat total (re-rolling may make the distribution different, but total will be the same). Add weapon_speed as an object attributed, and also add weapon_speed_left - distinct values fixes some odd speed bugs. Change encumberance for players - character can carry some portion with no slowdown. Allow more tuning for races (hp/sp/grace can be customized more) --- common/exp.c: Refine exp calculator (for dump) for monsters. This isn't used in play, but system gave too much bonus for resistances and speed, resulting in skewed exp values when using the dump values. common/living.c: Greatly reduce speed bonuses for high dex. Reduce damage and to hit bonuses from strength. Remove max_carry. Improve disease handling - player gets speed penalty from worse disease. Change speed benefits from magical devices. For players, give them extra hp/sp/grace based upon what the archetype says. Reduce rate of increase of wc and damage from melee skill. Implement new encumberance calculations. Add code to calculate weapon speed. common/loader.l: Add support for loading an saving weapon_speed and weapon_speed_left. doc/Developers/objects: Update notes for the generators to detail generator_limit doc/Developers/protocol: Add note about sc protocol 1029 (change way weapon speed is calculated) include/config.h: Add new defines related to encumberance handling. Also add new define related to characters base weapon speed include/newclient.h: Add MSG_TYPE_ATTACK_MISS include/newserver.h: Bump up SC_VERSION because of weapon_speed handling. include/object.h: Add weapon_speed, weapon_speed_left to object structure. include/player.h: remove weapon_sp from player structure. lib/exp_table: Add new experience table to slows down character advancment. (table D) server/attack.c: Display all attack messages, not just a portion of them. With slower combat, this is still reasonable, and is useful in debugging stages of combat. If not all messages are to be displayed, this should really be controlled by listen level and not random choice. server/login.c: Remove load/save support of weapon_sp in player file. Now an object attribute handled in common/loader.l server/player.c: Keep rolling stat until total is 105 (arbitrary value) - good for testing balance since all characters are closer in power. Add code to handle weapon_speed properly. server/server.c: Add weapon_speed_left handling. Give boost to players sp/hp/grace/food consumption when player is 'resting' server/skills.c: Change throw calculation based on new character encumberance server/skill_util.c: Add 'you miss foo' messages when attacking - otherwise hard to know what is going on. server/time.c: Modify generator code for max limiting of monsters. Functions that actually generate monsters were modified to return if in fact they generated a monster, so that generator_limit only happens if in fact that number of monsters were generated, not attempted to generate (otherwise generators go poof in room full of monsters because there is no space to make new monster). socket/request.c: Pull weapon_speed from object, not player structure when sending to client --- MSW 2008-01-13 Fix invalid check in test unit, resulting in failure. test/unit/common/check_object.c Nicolas Weeger 2008-01-13 Fix buffer overflows in get_ob_diff(), dump_object(), and dump_arch(). Introduce a new module stringbuffer which implements a buffer that can hold variable-sized strings. Makefile.am  common/anim.c arch.c loader.l object.c include/global.h libproto.h Makefile.am server/c_misc.c c_wiz.c server.c  types/gate/gate.c Added files: common/stringbuffer.c  include/stringbuffer.h Andreas Kirschbaum 2008-01-12 Added more French help translations. lib/help/motd.fr lib/help/news.fr lib/help/output-count.fr lib/help/output.fr lib/help/output-sync.fr lib/help/party.fr lib/help/party_rejoin.fr lib/help/peaceful.fr lib/help/petmode.fr lib/help/pickup.fr lib/help/quit.fr lib/help/rename.fr lib/help/rules.fr lib/help/save.fr lib/help/shout.fr lib/help/showpets.fr lib/help/skills.fr lib/help/take.fr lib/help/use.fr lib/help/usekeys.fr lib/help/whereabouts.fr Yann Chachkoff (gros) 2008-01-10 Make 'player quits the game' in the same style as entered/leave messages. server/player.c Nicolas Weeger 2008-01-07 Documentation, no functional changes. doc/Developers/custom_attributes.dox: added include/define.h: document a few things. types/treasure/treasure.c: fix @file directive. Nicolas Weeger 2008-01-06 Add documentation generated by the converter program. This way, people don't have to get Gridarta to generate it. doc/Developers/fields/field_* doc/Developers/types/type_* Nicolas Weeger 2008-01-06 New small program to extract information from Gridarta's types.xml file and generate doxygen documentation. New files: doc/Developers/fields/README doc/Developers/types/README utils/gridarta-types-convert.c Modified file: doc/Developers/mainpage.dox Nicolas Weeger 2008-01-06 Fix multipart holes not animating properly. server/time.c: use convenient animate_object function. Nicolas Weeger 2008-01-05 Handle invalid file descriptors more gracefully. socket/init.c: reset a file descriptor when closing it. socket/loop.c: try to look up bad file descriptors and drop them. Nicolas Weeger 2008-01-04 Fix crash on invalid bulletwalls. server/time.c: ensure other_arch is not NULL. Nicolas Weeger 2008-01-03 Fix plugin-related potential crash. server/plugins.c: ensure msg has a newline at the end, else bad things happen. Nicolas Weeger 2008-01-03 Win32 compilation fixes. server/c_misc.c plugins.c: variable declaration/use order. Nicolas Weeger 2008-01-03 Win32 compilation fixes. plugins/cfpython/include/cfpython_proto.h: missing CF_PLUGIN. plugins/cfpython/cjson.c: variable order. Nicolas Weeger 2008-01-03 Win32 compilation fixes. include/win32.h: #define sleep. plugins/cfanim/include/cfanim_proto.h: missing CF_PLUGIN. Nicolas Weeger 2008-01-03 Fix variable being used while not initialized. server/player.c Nicolas Weeger 2007-12-28 Merge documentation change from wiki. doc/Developers/objects Kevin Bulgrien 2007-12-28 Fix variable being used while not initialized. server/player.c Nicolas Weeger 2007-12-28 No functional change, reformat object types defines for export to wiki page. include/define.h Kevin Bulgrien 2007-12-27 Fix spurious errors in log from plugins. common/arch.c: new function try_find_archetype(). include/libproto.h: new prototype. server/plugins.c: replace find_archetype() by try_find_archetype(). Nicolas Weeger 2007-12-27 plugins/cfpython/cfpython.c: fix invalid options when empty parameter. Nicolas Weeger 2007-12-26 Add support for user-defined events. Those can be called from the Python plugin. server/plugins.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython.c include/sproto.h include/plugin.h Yann Chachkoff (gros) 2007-12-23 Add error information to CrossfireMap.TriggerConnected, make magice_ear scriptable server/monster.c plugins/cfpython/cfpython_map.c Tchize 2007-12-22 Change skill animation to use anim_suffix instead of the name. server/skill_util.c Nicolas Weeger 2007-12-21 Fix missing animation first pic. Change animate_object to not alter the state, but merely ensure the pic is valid. Move state/face changing upstream. common/anim.c server/player.c server.c time.c Nicolas Weeger 2007-12-16 More compound animations. Make animations loop instead of resetting all the time. Fix missing first animation pic in some cases. common/anim.c server/skill_util.c Nicolas Weeger 2007-12-16 Add line/row info to cjson module upon error Tchize 2007-12-18 Added my missing entries to Changelog Tchize 2007-12-18 Add try_find_animation() for compound animations, LOG() again in find_animation(). common/anim.c include/libproto.h Nicolas Weeger 2007-12-16 Fix incorrect "setup sound FALSEFALSE" response. socket/request.c Andreas Kirschbaum 2007-12-18 Add Object.NoDamage and Object.RandomMovement to Python Crossfire Object. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h Nicolas Weeger 2007-12-16 Add 'apply' sound, sounds for spell casting. Give more sounds when emitter is in something on a map. doc/Developers/sound server/apply.c spell_util.c socket/sounds.c Nicolas Weeger 2007-12-16 New sound support. Check doc/Developers/sound. common/loader.l doc/Developers/protocol sound include/newserver.h object.h sockproto.h sounds.h server/apply.c attack.c player.c server.c spell_effect.c spell_util.c socket/request.c sounds.c types/cf_handle/cf_handle.c types/clock/clock.c types/hole/hole.c types/poison/poison.c types/spellbook/spellbook.c types/trapdoor/trapdoor.c types/trigger/trigger.c Nicolas Weeger 2007-12-16 Do not forget background music when swapping map. common/map.c Andreas Kirschbaum 2007-12-15 Do not include stray \n character in background_music field. Do not modify const strings. common/map.c common/region.c Andreas Kirschbaum 2007-12-15 Remove unused variables. common/image.c include/define.h global.h Nicolas Weeger 2007-12-15 Extract some code from massive move_monster(). server/monster.c Nicolas Weeger 2007-12-15 Remove redundant check. server/player.c: can_detect_enemy() calls on_same_map(). Nicolas Weeger 2007-12-15 Factorise wand charge draining code. include/sproto.h server/monster.c player.c spell_util.c Nicolas Weeger 2007-12-15 Real path-finding algorithm for monsters. Pretty basic, but works for now. server/monster.c Nicolas Weeger 2007-12-10 Fix trailing newline in i18n messing display. Convert \n to "real" newline. common/languages.c Nicolas Weeger 2007-12-09 Have player's language be a variable in player instead of a key/value. Makes things faster, no key lookup, and it's only useful for players anyway. common/languages.c include/player.h server/c_misc.c login.c player.c Nicolas Weeger 2007-12-09 Factorize compound animation code. common/anim.c include/libproto.h server/apply.c attack.c spell_util.c Nicolas Weeger 2007-12-09 Fix 0 destination coordinates warning for final exit of random maps. random_maps/exit.c Nicolas Weeger 2007-12-02 Enable a special exit to final map in random maps, through the 'final_exit_archetype' field. random_maps/exit.c random_map.c random_map.h reader.l Nicolas Weeger 2007-12-02 Add death animation to objects, through the key 'death_animation' (which should be an archetype). server/attack.c: check for a death animation to insert. Nicolas Weeger 2007-12-02 Fix bug #1828785: Possible false positive in the alchemy formula list. common/recipe.c: don't warn of same index id if not same cauldron. Nicolas Weeger 2007-12-01 Fix bug #1825685: "Got no region..." when creating weather. server/init.c: delay weather initialisation after other ones. Nicolas Weeger 2007-12-01 Fix some nrof issues when many items. Always return real money value. server/c_object.c: divide before multiply to avoid some overflows. server/c_wiz.c: nrof is uint32. server/shop.c: nrof is uint32. Money we know the real value. Nicolas Weeger 2007-12-01 Fix bug #1827100: Curse dection not working or problem with containers ? server/alchemy.c: ensure cursed items can be identified. server/skills.c: cauldrons are always checked for curse status, it is important to know it. Nicolas Weeger 2007-12-01 Fix bug #1841391: Item Power and pickup bug. common/object.c: check item_power for merging test. Nicolas Weeger 2007-12-01 Fix bug #1833943: Buffer overflow in item power calculation. include/define.h: MAX_WEAPON_ITEM_POWER set to 100. server/gods.c: make god refuse to enchant an already powerful item. types/weapon_improver/weapon_improver.c: change enchant logic to not enchant already powerful items. Nicolas Weeger 2007-12-01 Fix bugs #825265: Broken container images and #799392: 2.0 server mat container = chest. server/apply.c: store custom container image at container opening, and restore it later. Nicolas Weeger 2007-12-01 Adapted the compound animations code so that it properly works with multipart monsters. server/apply.c server/attack.c server/spell_util.c Yann Chachkoff (gros) 2007-11-25 ------------------------------------------------------------------------ r7575 | tchize | 2007-11-25 16:27:46 +0100 (dim, 25 nov 2007) | 2 lines Chemins modifiés : M server/attack.c Fix sigsegv when arrows are thrown by monster and hit (no wrapped object) ------------------------------------------------------------------------ r7573 | tchize | 2007-11-25 16:06:45 +0100 (dim, 25 nov 2007) | 4 lines Chemins modifiés : M server/attack.c probable fix for [ 1835332 ]. At least, now, the experiences for throwing object is rewarded to a skill. -- Refactor poisoning code. server/time.c server/ob_types.c include/sproto.h include/typesproto.h types/poisoning/poisoning.c types/legacy/process.c types/Makefile.am Alex Schultz 2007-11-28 Added support for compound item apply animations server/apply.c Yann Chachkoff (gros) 2007-11-25 Refactor peacemaker code. server/ob_types.c server/spell_effect.c include/sproto.h include/typesproto.h types/peacemaker/peacemaker.c types/legacy/process.c types/Makefile.am Alex Schultz 2007-11-25 Refactor gate code. server/time.c server/ob_types.c include/sproto.h include/typesproto.h types/gate/gate.c types/legacy/process.c types/Makefile.am Alex Schultz 2007-11-23 Refactor savebed, poison, cf_handle, treasure, and weapon_improver code. Generalize 'killer' message for poison objects. server/ob_types.c server/apply.c server/attack.d include/sproto.h include/typesproto.h types/legacy/apply.c types/Makefile.am types/savebed/savebed.c types/poison/poison.c types/cf_handle/cf_handle.c types/treasure/treasure.c types/weapon_improver/weapon_improver.c Alex Schultz 2007-11-21 ------------------------------------------------------------------------ r7550 | tchize | 2007-11-20 20:35:08 +0100 (mar, 20 nov 2007) | 3 lines Chemins modifiés : M common/map.c Fix for [ 1825248 ] Logging missing apartment map for player as error The "can not load original map" message are now debug level for player appartments, but stay error level for normal maps ------------------------------------------------------------------------ r7549 | tchize | 2007-11-20 20:25:26 +0100 (mar, 20 nov 2007) | 2 lines Chemins modifiés : M common/map.c Fix for [ 1823026 ] Server accepts map files missing size attributes ------------------------------------------------------------------------ r7547 | tchize | 2007-11-20 19:03:14 +0100 (mar, 20 nov 2007) | 2 lines Chemins modifiés : M server/c_object.c Fix #1825589 Cheat bug with containers (access to locked container without key) ------------------------------------------------------------------------ r7545 | tchize | 2007-11-20 00:18:12 +0100 (mar, 20 nov 2007) | 5 lines Chemins modifiés : M plugins/cfpython/Makefile.am M plugins/cfpython/cfpython.c A plugins/cfpython/cjson.c JSON notation support for parameters This notation will make it easier to customize script from editor interface. For performances reasons, the JSON parser is C implemented. It's LGPL but was converted to GPL for crossfire ------------------------------------------------------------------------ r7531 | tchize | 2007-11-18 19:03:18 +0100 (dim, 18 nov 2007) | 2 lines Chemins modifiés : M server/time.c Fixed a sigsegv when maker is outside of map -------------- Added support for compound spellcasting animations server/spell_util.c common/object.c Yann Chachkoff (gros) 2007-11-18 Added support for compound attack animations (displaying a custom animation sequence when attacking with a weapon) server/attack.c server/time.c server/server.c include/object.h include/global.h common/loader.l common/anim.c Yann Chachkoff (gros) 2007-11-18 Added support for changing the FLAG_ANIMATED from cfpython. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h Yann Chachkoff (gros) 2007-11-18 Misc fixes, no functional change. common/languages.c: convert to UTF-8, fix comment, add missing new line at end. doc/Developers/object.dox: fix references. include/spellist.h: fix comment. lib/i18n/messages.fr: convert to UTF-8. server/c_misc.c hiscore.c: fix comments. Nicolas Weeger 2007-11-17 ------------------------------------------------------------------------ r7518 | tchize | 2007-11-17 18:31:20 +0100 (sam, 17 nov 2007) | 6 lines Chemins modifiés : M plugins/cfpython/cfpython_object.c Added a "removed" check in CrossfireObject.InsertInto This check is needed because backend proprety of cfapi issue error messages when it's not the case and the python CrossfireObject.RemoveObject issue a free that make object unusable. ------------------- Adds basical i18n support for help and "static" server strings. Modified files:  common/init.c Makefile.am include/includes.h libproto.h sproto.h lib/Makefile.am server/c_misc.c commands.c Added files: server/trunk/common/languages.c  include/languages.h  lib/help/*.en  lib/i18n/messages.fr messages.en Removed files: lib/help/* (old help files) Yann Chachkoff (gros) 2007-11-17 ------------------------------------------------------------------------ r7508 | tchize | 2007-11-16 14:24:51 +0100 (ven, 16 nov 2007) | 10 lines Chemins modifiés : M common/button.c M common/time.c M include/autoconf.h.in M include/libproto.h M include/sproto.h M include/tod.h M plugins/cfanim/include/cfanim_proto.h M plugins/cfpython/cfpython.c M plugins/cfpython/cfpython_map.c M plugins/cfpython/cfpython_object.c M plugins/cfpython/include/cfpython_map_private.h M plugins/cfpython/include/cfpython_object_private.h M plugins/cfpython/include/cfpython_proto.h M plugins/common/include/plugin_common.h M plugins/common/plugin_common.c M server/plugins.c M test/unit/common/Makefile.am M test/unit/common/check_time.c Plugins Added Trigger, updated TimeOfDay and glowRadius Add support to trigger a specific "connected" from plugins Add support to get timeofday names (seasons, months, weeks, day, period of day) Add in timeofday the notion of period of the day (Night, Morning, Noon, etc) Fixed glowRadius setter priperty in plugin interface so changes are reflected to user's UI Add EVENT_TRIGGER call to all objects triggered in a connected chain autogen.sh invoked Note: those changes were necessary to build some basic tod based scripts ------------------------------------------------------------------------ r7502 | tchize | 2007-11-09 18:58:49 +0100 (ven, 09 nov 2007) | 2 lines Chemins modifiés : M include/version.h removed FIXME comment, kbulgrien fixed it. ----------------------- Adding svnversion.h to SVN was not a good idea. It will get re-committed over and over even though that was not the intent. Removed. Move include prior to all other directories to be sure svnversion.h is built prior to inclusion in any other source file. Makefile.am include/svnversion.h include/version.h Kevin Bulgrien 2007-11-09 Add Log() support to python scripts David Delbecq (tchize) 2007-11-09 Add SVN version to the server version (as -rnnnn suffix) reported at server startup, by the player "version" command, and by the metaservers. The method to for adding the SVN version information was copied from the client. The expanded version information should not be generated if the sources are built outside of an SVN checkout. configure.ac server/init.c server/server.c include/version.h include/svnversion.h include/Makefile.am socket/metaserver.c Kevin Bulgrien 2007-11-08 Remove support for spellcasting objects using sp/dam fields. common/loader.l Andreas Kirschbaum 2007-11-04 Fix collect script to not insert editor_folder lines into nested inventory objects. lib/collect.pl.in Andreas Kirschbaum 2007-11-03 Adapt alchemy formulas to changed archetypes. lib/formulae: rename "shoes" to "pair of shoes". Andreas Kirschbaum 2007-11-03 Remove useless 'start_holding' field. include/object.h server/server.c Nicolas Weeger 2007-10-28 Remove unused 'tooltype' field. common/loader.l include/object.h Nicolas Weeger 2007-10-28 Fix for bug #1693250: loader.c isn't correctly generated. configure.ac: remove AM_MAINTAINER_MODE macro, no one remembers why it was set. Nicolas Weeger 2007-10-27 server/login.c: Fix file handle leaks in save_player() and check_login(). Andreas Kirschbaum 2007-10-25 Don't remove inventory if player save fails. Warn online DMs. server/login.c Nicolas Weeger 2007-10-24 Fix for bug #1815251: Multiple 'the' displayed in party who. Moved player listing code to own function, call it from command_who and party who. Move 'who' format checking to load_settings(). include/sproto.h server/c_misc.c c_party.c init.c Nicolas Weeger 2007-10-20 common/map.c: Add misisng call to unlink() empty unique maps. Fixes bug 1799361 - Permadeath corpse reproduction. Bug is more general - any unique object could be duplicated, so long as it was the only unique object on the map. MSW 2007-10-03 server/pets.c: Add missing call to get_map_from_coord() - summoned big creatures on tiled maps end up having incorrect map/coordinate data set, resulting in crash. Fixes bug 1800719 MSW 2007-10-02 server/c_object.c: Add call to fix_object() in pick_up_ob() - this causes player weight & speed to be recalculated - fixes bug 1799411 where this wasn't happening. MSW 2007-10-01 server/c_range.c: Bug fix for [ 1804610 ] cast : info.c:message_callback: unidentified messages. Text output to the gtk2 client may not contain text enclosed in square brackets... which is probably a bug in and of itself. socket/info.c: doxygenated parameters for draw_ext_info() and draw_ext_info_format(). Kevin Bulgrien 2007-09-30 server/plugins.c: fix wrong #define leading to crashes. Nicolas Weeger 2007-09-28 common/map.c: Move update_buttons() from ready_map_name() to load_original_map() - in this way, button state is not reset when swapping a map back into memory, but button state is still verified at first load. Fixes bug 1706075. MSW 2007-09-27 server/gods.c: modify god_enchants_weapon() to increase item_power of weapon by 1 each time god improves it. This make sense, but also fixes bug 1696807 - if the weapon has item_power 0, when player logs on, game will calculate new item power, which may be quite surprising to character. If item_power is set, new item_power won't be calculated. Note: For trunk, item_power was not recalculated, but I think the changing of item_power is just good for some balance. MSW 2007-09-27 Fix some hiscore changes - some functions were not passing in quiet flag when they should have been, etc. -- server/apply.c: Remove some code that sees if player can save - update_score() does this, so no reason to have it in both places. server/hiscore.c: Add check not to save 0 scores. server/login.c: Be quiet for backup saves. server/server.c: Be quiet for backup saves. --- MSW 2007-09-27 Face/animation related plugin functions. --- Enable a plugin to find a face, and change face or animation. Make property name coherent with others. include/plugin.h sproto.h plugins/cfanim/cfanim.c server/plugins.c --- Add wrapper for find_face(). plugins/common/include/plugin_common.h plugins/common/plugin_common.c --- Add Object.AnimSpeed and Object.Anim, fix face handling. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h --- Add Crossfire.FindFace() and Crossfire.FindAnimation() plugins/cfpython/cfpython.c --- doc/Developers/python.ps: updated Nicolas Weeger 2007-09-27 Couple bug fixes related to 1713188 - dropall performance issues. --- include/config.h: Increase SOCKETBUFSIZE - should help reduce premature dropped connections. server/c_object.c: Improve dropall logic - instead of calling fix_object() for each object dropped, call it just once for the entire stack - should improve performance considerably. This also fixes sending updated weight information to the client for each object dropped (player weight 1000, player weight 995, player weight 992, etc), so may help on dropped connections. MSW 2007-09-26 common/object.c: Modify can_pick() so you are not allowed to pick up multipart objects. insert_ob_in_ob() doesn't let it happen, but this way, at least the player gets a message. Also cleaned up function so it is easier to read. MSW 2007-09-26 Adding the minor, medium and major Potions of Life to the treasure list so they can be found in shops, dungeons, et al. -- server/branches/1.x/lib/treasures -- RJT 2007-09-26 Renamed "potion of invulnerability" to "potion of shielding." Hopefully this will remove player confusion as to why one takes damage from all attack types (except physical) when drinking this potion. -- arch/trunk/potion/potioninv.arc maps/trunk/pup_land/begin/adv server/trunk/lib/treasures --- RJT 2007-09-26 Add support for periodic updating of hiscore information for players - fixes bug 1735262. Main change was to modify check_score() to take a flag that determines if messages related to high score placement should be displayed or not. -- include/sproto.h: Rebuilt because of change to check_score() server/apply.c: Change calls to check_score() to take quiet flag. server/c_wiz.c: Change calls to check_score() to take quiet flag. server/hiscore.c: Modify check_score to take quiet flag, update function not to print messages if it is set. server/login.c: Change calls to check_score() to take quiet flag. server/player.c: Change calls to check_score() to take quiet flag. server/server.c: Add calls to check_score() when doing autosaves as well as when player connection is unexpected terminated. -- MSW 2007-09-25 Always destroy projectiles having no_drop when they stop being a projectile. This prevents arrows and weapons fired from summoned monsters to stick to the ground/into the victim's inventory. -- common/objects.c: Remove static modifier from free_object2(). server/attack.c: In hit_with_arrow() destroy no_drop arrows. server/time.c: In stop_item() and fix_stopped_arrow() destroy no_drop projectiles. Add new function free_no_drop() to check for and destroy objects having no_drop. Andreas Kirschbaum 2007-09-20 Fix bug 1763098 - wrong key placement in random maps. The key placement breaks if there is a normal door next to the locked door, so modify code to remove normal doors next to locked doors. On broken test map, this change results in key being placed in right area. -- random_maps/treasure.c: Update some comments on keyplace(), since the comments did not go into limitations on what keyplace does. Add remove_adjacent_doors() to remove the doors, and call to function from lock_and_hide_doors() MSW 2007-09-18 Fix bug 1790456 - dropall with count drops more than 'count' of each object. server/c_object.c: in command_dropall(), after each call to drop(), set op->contr->count back to original value - drop() sets it to 0. MSW 2007-09-17 Add ability to specify port that crossfire listens to in settings file. Handy when you want to run 2 servers on same host and don't want to mess with command line options. -- lib/settings: Add port variable and comment on its usage. server/init.c: Add code to handle port value in settings file. MSW 2007-09-17 Fix chaos attacktypes when used from a weapon - Fixes bug 1795875. Problem was target of attack was getting attacktype changed, and attacker was never getting chaos attacktypes. -- include/attack.h: move ATTACKS array and Chaos_Attacks structure here. server/attack.c now needs that data, so having it only in server/spell_util.c no longer works. server/attack.c: Remove call to shuffle_attack(), instead just update the local type (attack type) variable. server/spell_util.c: Remove ATTACKS array - moved to include/attack.h. MSW 2007-09-16 Fix problems with player updating client with spell handling - should all work now. -- server/login.c: Move esvr_add_spells() and fix_object() to after esvr_new_player() - when client gets new player protocol from server, it purges all info it has, including spell data. server/player.c: Remove the line that clears the monitor_spells in the socket structure. With the clear there, if you play a new character on the same server (savebed, a to play again), this second character doesn't get any spells. socket/request.c: Check to see if pl->spell_state is non null in esrv_update_spells() - in this way, server doesn't try to update spells on client before the first add_player_spells() is called. -- MSW 2007-09-16 server/pets.c: Always mark inventory objects as FLAG_NO_DROP, not only objects created from randomitems attribute and having nrof=0. Always expand randomitems; do not omit it for player summoned monsters or golems. Andreas Kirschbaum 2007-09-16 Add a message when explore mode is disabled. Add help file for this command. lib/Makefile.am server/c_misc.c Added file: lib/help/explore Nicolas Weeger 2007-09-16 Fix many objects getting applied with 'a' key. server/apply.c: use METHOD_OK for success, not 1. Nicolas Weeger 2007-09-15 Fix player teleported on wrong HallOfSelection for race if dying before class selection. server/player.c Nicolas Weeger 2007-09-15 Add an 'empty' command, that puts all contents of a (or all) container either on ground or in player's opened container. include/sproto.h lib/Makefile.am server/c_object.c commands.c Added file: lib/help/empty Nicolas Weeger 2007-09-09 lib/metaserver2: Update with official metaserver2 location. MSW 2007-08-31 Remove support for obsolete 'fly_on/fly_off/walk_on/walk_off' attributes. -- doc/Developers/objects: Update documentation about no_pass attribute. doc/{checkarch,collect}.pl.in: Check for move_on/off instead. common/loader.l: Remove support for fly_on/fly_off/walk_on/walk_off attributes. Andreas Kirschbaum 2007-08-25 Fix incorrect lookup_spell_by_name() that prevented eg marking runes to work. server/spell_util.c Nicolas Weeger 2007-08-23 Fix mistake in check logic, preventing from building connected items. server/build_map.c Nicolas Weeger 2007-08-23 Fix bug #1779574: can destroy outer walls in lone town apartment, level 2. server/build_map.c: fix can_build_over(), add missing check. Nicolas Weeger 2007-08-23 lib/help/{fire,fire_stop}: Add help for "fire" and "fire_stop" commands. Andreas Kirschbaum 2007-08-22 Don't display an evil error message when trying to reset a map with a player on. server/c_wiz.c Nicolas Weeger 2007-08-20 Write when an item is glowing. common/item.c: add "glowing" to glowing items. types/legacy/legacy_describe.c: LAMP have some description, too. Nicolas Weeger 2007-08-20 Fix item update on ground. Factorize code. Add increase_ob_nr() function. include/libproto.h common/object.c Nicolas Weeger 2007-08-18 Various small fixes. common/exp.c: fix comment. include/plugin.h: make fname const char*. server/c_party.c: say something if no parameter to gsay. server/c_wiz.c: remove some useless tests. server/init.c: make get_racelink() abort() if memory failure. server/monster.c: fix comment. Nicolas Weeger 2007-08-16 Fix spurious function replace_insert_ob_in_map(), document it. Implement unit test for that. common/object.c test/unit/common/check_object.c Nicolas Weeger 2007-08-16 Partial fix for #1772759: Too much alchemy causes client crash. common/object.c: correctly send/remove object when in container the player is looking into. Nicolas Weeger 2007-08-12 Fix plugin documentation, add some .ps version made from the wiki. This fixes bug #1537236: cfpython 2.0 - documentation missing. doc/plugins doc/Developers/Makefile.am plugins python README Added files: doc/Developers/plugins.ps python.ps Nicolas Weeger 2007-08-12 Save maps into a .savefile first, then rename if success. Flush files. This should fix bug #1542893: Full disk destroys player's apartment. common/map.c include/map.h server/c_wiz.c swap.c Nicolas Weeger 2007-08-12 Don't delete (partial) map from memory in case of save error, warn DMs. include/libproto.h map.h sproto.h common/loader.l map.c server/c_wiz.c login.c swap.c Nicolas Weeger 2007-08-11 Add new NDI_ALL_DMS to send a message to all connected DMs. Used in case of errors. include/newclient.h socket/info.c Nicolas Weeger 2007-08-11 server/player.c: fix find_better_arrow() comment, allow parameter to be NULL. Nicolas Weeger 2007-08-11 doc/Developers/map.dox: add some real content. Nicolas Weeger 2007-08-09 doc/playbook-html/Makefile.am,doc/spoiler-html/Makefile.am: Update the clean directive to remove the png files, since that is what is now used, and not gif files. MSW 2007-08-08 Server support for Metaserver2: acinclude.m4: Add LIBCURL_CHECK_CONFIG macro, used by configure. configure.ac: Add check for pthread, LIBCURL. Extra logic to display if we will build with metaserver2 support lib/Makefile.am: add metaserver2 to list of files to install. lib/metaserver2: Settings file for metaserver2 support. server/init.c: Add call to metaserver2_init() during startup. include/metaserver2.h: Header file include metaserver2 related data. include/autoconf.h.in: Rebuilt include/sockproto.h: Rebuilt with new metaserver2 functions. socket/metaserver.c: metaserver2 update logic added. MSW 2007-08-08 Remove useless parameter. include/sproto.h server/pets.c server.c swap.c Nicolas Weeger 2007-08-06 Rename remove_door2() to remove_locked_door(). include/sproto.h server/player.c time.c types/legacy/process.c Nicolas Weeger 2007-08-06 Documentation, no functional change. doc/Developers/login.dox: new file. doc/Developers/mainpage.dox include/define.h player.h socket/init.c Nicolas Weeger 2007-08-06 Various fixes. server/c_misc.c: display information for weather even if turned off. server/commands.c: make 'archs' a wizard command. Nicolas Weeger 2007-08-05 Use safe string functions. Removed unused parameters. Rename init_spells() to check_spells(). common/recipe.c include/sproto.h server/init.c spell_effect.c spell_util.c Nicolas Weeger 2007-08-05 Use safe string functions. Removed unused parameters. include/sproto.h server/skill_util.c skills.c Nicolas Weeger 2007-08-05 Use safe string functions. common/living.c include/sproto.h server/c_misc.c skill_util.c Nicolas Weeger 2007-08-05 Remove unused defines, functions and parameters. common/living.c include/commands.h map.h sproto.h server/c_misc.c c_party.c login.c player.c resurrection.c win32.c socket/request.c Nicolas Weeger 2007-08-05 Remove unused parameter. include/sproto.h server/server.c test/unit/server/comet_perf.c Nicolas Weeger 2007-08-05 Remove unused command_generate(). include/sproto.h server/c_wiz.c Nicolas Weeger 2007-08-05 include/config.h: fix default emergency path/coordinates. Nicolas Weeger 2007-08-05 Merge NewServerCommands to ServerCommands, remove unused SocketCommands declaration. include/commands.h server/c_new.c commands.c Nicolas Weeger 2007-08-05 Remove unused parameter from fire_bow(). include/sproto.h server/monster.c player.c Nicolas Weeger 2007-08-05 Remove unused parameter from fatal_signal(), make signal handlers static. include/sproto.h server/init.c Nicolas Weeger 2007-08-05 Remove unused loading field. include/player.h server/c_wiz.c server.c Nicolas Weeger 2007-08-05 include/newserver.h: fix documentation. Nicolas Weeger 2007-08-05 Documentation, no functional change. Doxyfile common/living.c map.c object.c doc/Developers/mainpage.dox include/artifact.h attack.h commands.h config.h define.h face.h global.h god.h image.h includes.h living.h loader.h logger.h map.h material.h newclient.h object.h skills.h spells.h random_maps/random_map.h room_gen_onion.c room_gen_spiral.c special.c treasure.c test/unit/server/check_c_object.c server/apply.c attack.c c_chat.c c_object.c shop.c Nicolas Weeger 2007-08-05 Documentation, no functional change. include/newclient.h newserver.h ob_methods.h ob_types.h object.h path.h player.h plugin.h re-cmp.h recipe.h shstr.h skills.h sounds.h spellist.h spells.h tod.h treasure.h win32.h server/skill_util.c spell_util.c time.c weather.c win32.c Nicolas Weeger 2007-08-04 Documentation, no functional change. common/shstr.c include/race.h server/commands.c daemon.c hiscore.c init.c login.c main.c server.c Nicolas Weeger 2007-08-03 Fix compilation, document compile command line. utils/mapper.c Nicolas Weeger 2007-07-31 Move read_client_images() from socket/ to common/. common/image.c include/image.h libproto.h sockproto.h socket/image.c Nicolas Weeger 2007-07-31 Documentation, no functional change. server/apply.c c_chat.c c_object.c c_party.c c_range.c ob_methods.c ob_types.c player.c resurrection.c Nicolas Weeger 2007-07-29 Documentation, no functional change. server/c_move.c c_new.c move.c Nicolas Weeger 2007-07-29 Documentation, no functional change. server/c_wiz.c Nicolas Weeger 2007-07-27 Documentation, no functional change. Doxyfile: enable svn:keywords property. Various tweaks. New files: doc/Developers/archetype.dox artifact.dox client.dox connected.dox general.dox mainpage.dox map.dox misc.dox object.dox player.dox region.dox treasure_list.dox Nicolas Weeger 2007-07-27 Documentation, no functional change. plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/spell_attack.c spell_effect.c Nicolas Weeger 2007-07-26 Documentation, no functional change. include/sproto.h: fix paramss to params for coherence. server/c_misc.c Nicolas Weeger 2007-07-25 server/plugins.c: sanity checks on parameters for usual crashing culprit. Nicolas Weeger 2007-07-25 Documentation, no functional change. server/pets.c swap.c Nicolas Weeger 2007-07-23 Remove unused return values. Fix wrong return for cure_disease. Remove hardcoded value. include/sproto.h server/disease.c Nicolas Weeger 2007-07-17 Change function return type for coherence with experience. common/exp.c info.c include/libproto.h Nicolas Weeger 2007-07-17 Remove obsolete color_bg handling. common/image.c lib/collect.pl.in Nicolas Weeger 2007-07-17 No functional changes - various cleanups to reduce number of compiler warnings when compiled with -Wall - makes it easier to catch real errors. Most things changed/fixed are missing returns in non void functions, missing includes, declared but unused variables, not escaping #include sproto in CEXTRACT checks. MSW 2007-07-16 -- Changed files: common/object.c common/button.c common/logger.c common/loader.l common/living.c common/map.c common/treasure.c common/glue.c include/libproto.h include/define.h include/sproto.h plugins/cfpython/cfpython.c plugins/cfanim/cfanim.c random_maps/standalone.c server/apply.c server/attack.c server/c_chat.c server/c_object.c server/c_wiz.c server/ob_methods.c server/ob_types.c server/shop.c server/skill_util.c server/skills.c server/time.c socket/item.c socket/lowlevel.c socket/info.c test/toolkit/toolkit_common.c test/unit/random_maps/stubs_random.c test/unit/server/check_attack.c test/unit/server/check_c_party.c test/unit/server/check_c_object.c test/unit/server/comet_perf.c test/unit/common/check_object.c test/unit/common/stubs_common.c test/unit/socket/stubs_socket.c types/shop_inventory/shop_inventory.c types/common/common_apply.c types/spellbook/spellbook.c types/skillscroll/skillscroll.c server/Makefile.am: Don't include main.c when building sproto.h MSW 2007-07-16 test/unit/server/Makefile.am, test/bugs/bugtrack/Makefile.am: Remove duplicate build directions for libtypes.a MSW 2007-07-16 common/shstr.c, include/shstr.h, server/c_misc.c: Move SS_STATISTICS from shstr.h to shstr.c - c_misc.c also includes the file, and got warnings about unused static variables. - MSW 2007-07-16 Add support for using png files for html handbook and spoiler - png support is common enough in browsers now days that don't need to convert to gif. Reduces tool requirements to build documents (as it is a simple copy for the png, vs actual conversion), and speeds up building the files dramatically. -- doc/scripts/makeps.pl: Add png output handling. What this amounts to is doing a hard link to the original png file. doc/playbook-html/Makefile.am, doc/spoiler-html/Makefile.am: Use png output for images now, not gif. MSW 2007-07-16 plugins/cfpython/cfpython_object.c: don't try to insert a NULL object. Nicolas Weeger 2007-07-16 Remove "random_move" field, "random_movement" exists. common/loader.l utils/bwp.c Nicolas Weeger 2007-07-16 Remove obsolete/unused things. common/glue.c item.c map.c utils.c include/define.h plugins/cfpython/cfpython.c socket/request.c Nicolas Weeger 2007-07-15 Remove unused field. include/newserver.h socket/init.c request.c Nicolas Weeger 2007-07-15 Fix spoilers generation. giftrans is now disabled. doc/playbook/Makefile.am doc/playbook-html/Makefile.am doc/scripts/Makefile.in makeps.pl doc/spoiler/Makefile.am doc/spoiler-html/Makefile.am doc/spoiler-html/spoiler.html: removed as it's generated by make archive Nicolas Weeger 2007-07-15 server/skills.c: Fix crash - using incorrect map pointer in call to get_map_ob MSW 2007-07-11 Tentative fix for bug #1746208: Critical crash with 'printlos'. common/los.c: use safe string functions. Use 0/100 for view instead of 0-100. Nicolas Weeger 2007-07-11 socket/request.c: In map sending routine, use object anim_speed if so for animation speed instead of object speed. Allows for zero speed objects to be animated, also matches behavior for inventory items. MSW 2007-07-09 Documentation, no functional change. common/object.c server/rune.c Nicolas Weeger 2007-07-09 Remove superfluous calls to esrv_del_item (since remove_ob calls it if needed). Remove now unused send_removed_object function. Change esrv_send_item to esrv_update_item. common/item.c server/c_object.c c_wiz.c gods.c player.c plugins.c shop.c skills.c spell_effect.c time.c types/spell_effect/spell_effect.c Nicolas Weeger 2007-07-09 Update face information below player if it changes. Add P_PLAYER mapflag field, as well as pointer to player on space making it easy to find players on a space. Fix for bug 1735459 --- common/map.c: Modify update_position() to look for player and update MapSpace accordingly. common/object.c: update_object(): If player is object, update map attributes immediately. Add handling for face or object changes. include/map.h: Add SET/GET_MAP_PLAYER, player * to MapSpace, P_PLAYER flag --- MSW 2007-07-08 Documentation, no functional change. Change some #define to enum for grouping purposes. include/map.h Nicolas Weeger 2007-07-08 Try to factor esrv_del_item and esrv_send_item into remove_ob() and insert_ob_in_ob(). Fix calls to esrv_send_item that are really esrv_update_item(). common/object.c treasure.c include/newclient.h random_maps/standalone.c server/apply.c attack.c c_object.c c_wiz.c gods.c player.c plugins.c skills.c shop.c spell_effect.c time.c socket/item.c test/unit/common/stubs_common.c types/armour_improver/armour_improver.c types/lamp/lamp.c types/lighter/lighter.c Nicolas Weeger 2007-07-05 Remove crossedit-related documentation, replace with Gridarta. Removed: doc/Crossedit.doc crossedit.man Modified: doc/Makefile.am doc/Developers/objects mapguide random-maps testplans Nicolas Weeger 2007-07-05 server/c_range.c: don't lose golem if only consulting the spell list. Nicolas Weeger 2007-07-05 Hopefully fix invalid player count on map. Now handled by remove_ob() and insert_ob_in_map() directly. Also handled by leave() as the player leaves badly the game in this case. Remove now unused leave_map() function. common/object.c include/map.h sproto.h server/apply.c login.c player.c server.c Nicolas Weeger 2007-07-04 Fix bug #1735283: shining amulet of repulsion behaves strangely. common/object.c: remove stacking logic for blockview items, obsolete with map_layer. Nicolas Weeger 2007-07-02 lib/help/skills, lib/Makefile.am: Add help for skills command. Andreas Kirschbaum 2007-07-02 Documentation, no functional changes. include/timers.h server/timers.c Nicolas Weeger 2007-07-01 Change behavior of shop mats: do not fail if the destination shop mat is blocked. This prevents players from being trapped inside shops if the outside shop mat has been blocked with earthwalls. --- server/move.c: In teleport() place player on destination shop mat even if it is blocked. Andreas Kirschbaum 2007-06-27 server/attack.c: don't say '(pk)' if duel, makes it easier to check for real pk. Nicolas Weeger 2007-06-22 Party unit tests (partial). test/unit/server/check_c_party.c Makefile.am Nicolas Weeger 2007-06-22 server/c_party.c: fix mistake in party removal. Nicolas Weeger 2007-06-22 common/shstr.c: Remove C++ style comment. include/map.h, include/player.h: Fix 'comma at end of enumerator list' warnings. types/food/food.c: Fix missing math.h include. (Harmless but caused a warning) Alex Schultz 2007-06-21 server/time.c: make detectors able to find players (slaying set to 'player'). Nicolas Weeger 2007-06-20 server/plugins.c: add PLUGIN_DEBUG to log plugin activity, off by default (log gets filled with debug info which is not usually relevant). Nicolas Weeger 2007-06-18 server/skills.c: correctly copy spell's path_repelled field when inscribing a scroll, so casting from said scroll works with MOVING_BALL. Nicolas Weeger 2007-06-18 server/login.c: Fix crash at login if player is set to rejoin party, and that party does not exist - shouldn't try to use partyname from null structure. MSW 2007-06-17 Documentation, no functional change. server/skill_util.c skills.c Fix variable name confusion Doxygen. random_maps/standalone.c test/unit/random_maps/stubs_random.c test/unit/common/stubs_common.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c Nicolas Weeger 2007-06-17 Documentation, no functional change. server/disease.c gods.c spell_effect.c Nicolas Weeger 2007-06-17 Fix bug #1735464: Reset command does not accept relative names. server/c_wiz.c Nicolas Weeger 2007-06-16 Remove Crossedit, replaced by Gridarta. See http://sourceforge.net/projects/gridarta for more information. Removed paths: crossedit test/unit/crossedit Modified paths: acinclude.m4 configure.ac Makefile.am include/autoconf.h.in define.h global.h object.h common/button.c init.c loader.l map.c object.c server/init.c login.c test/bugs/bugtrack/check_1727944.c test/unit/Makefile.am Nicolas Weeger 2007-06-13 Add some unit tests. test/unit/server/check_c_object.c Makefile.am test/unit/common/check_object.c Nicolas Weeger 2007-06-13 Tentative optimizations, shouldn't cause issues but need testing. common/object.c: fix_object() doesn't need to be called all the time. server/c_object.c: why is player/monster removed then inserted? if special case, please document why Nicolas Weeger 2007-06-10 Partial fix for #1735275: Server sends incorrect spell info data. server/login.c: send spell before calling fix_object() which updates spells. Nicolas Weeger 2007-06-10 Tentative fix for #1735272: Server sends invalid item tags server/plugins.c: don't send invisible objects, they're never sent to the client. Nicolas Weeger 2007-06-10 test/bugs/bugtrack/check_1727944.c: fix ininitialized variable, reduce # of tests as the test isn't that meaningful. Nicolas Weeger 2007-06-10 Disable unimplemented tests, remove quests tests. test/unit/common/Makefile.am test/unit/common/check_quest.c: removed test/unit/random_maps/Makefile.am test/unit/server/Makefile.am test/unit/socket/Makefile.am Nicolas Weeger 2007-06-10 Fix accidentally broken unit test. test/unit/common/check_arch.c: use correct type/subtype. Nicolas Weeger 2007-06-10 Fix Win32 compilation. common/loader.l logger.c re-cmp.c make_win32/crossfire32.dsp installwin32.bat plugins/cfanim/include/cfanim_proto.h plugins/cfpython/cfpython_object.c random_maps/floor.c treasure.c Nicolas Weeger 2007-06-10 utils/mapper.c: fix compilation. Fix exit without path not displayed. Nicolas Weeger 2007-06-10 Remove obsolete player_cmd(). doc/Developers/protocol include/sockproto.h socket/loop.c request.c Nicolas Weeger 2007-06-10 lib/artifacts: update header. Nicolas Weeger 2007-06-09 Fix bug #1729829: Server using access to check for file existance. Also remove obsolete old player directory mode support. server/login.c Nicolas Weeger 2007-06-09 Fix bug #1730874: +dam on bracers not working. common/living.c: bracers can give damage too. Nicolas Weeger 2007-06-09 common/loader.l: remove obsolete checks and conversions. Nicolas Weeger 2007-06-09 Remove obsolete 'map1' and 'map1a' modes. doc/Developers/protocol include/newserver.h socket/init.c request.c Nicolas Weeger 2007-06-09 Remove obsolete 'item' command, always assume 'item2'. doc/Developers/protocol include/newserver.h socket/init.c item.c request.c Nicolas Weeger 2007-06-09 Assume clients always use 64b experience mode (commit for that support: MSW 2003-05-17). include/newserver.h socket/init.c request.c Nicolas Weeger 2007-06-09 Remove obsolete old_mode support. Remove unused log_kill stuff. include/newserver.h sockproto.h sproto.h socket/init.c info.c server/attack.c c_misc.c commands.c Nicolas Weeger 2007-06-09 Remove obsolete image/face/face1 support. Increment protocol version to 1028. doc/Developers/protocol include/newserver.h socket/image.c init.c request.c Nicolas Weeger 2007-06-09 server/{ob_types.c, apply.c}, include/{sproto.h, typesproto.h}, types/{food/food.c, legacy/apply.c, Makefile.am}: Refactor food applying. include/libproto.h: Update prototypes. Alex Schultz 2007-06-09 Remove badly implemented quest support. Removed files: common/quest.c doc/Developers/quests include/quest.h lib/help/quests Modified files: common/Makefile.am include/define.h libproto.h Makefile.am sproto.h lib/Makefile.am plugins/cfpython/cfpython.c server/c_misc.c commands.c monster.c time.c Nicolas Weeger 2007-06-09 doc/Developers/testplans: update. Nicolas Weeger 2007-06-09 Remove party spell support. Not really tested, badly implemented. include/spells.h server/spell_util.c Nicolas Weeger 2007-06-09 server/{attack.c, ob_types.c, apply.c, monster.c}, include/{sproto.h, typesproto.h}, types/{scroll/scroll.c, legacy/apply.c, potion/potion.c, Makefile.am: Refactor SCROLL and POTION applying. server/ob_methods.c, include/sproto.h: Make METHOD_UNHANDLED cause fallback to other callbacks. types/skillscroll/skillscroll.c, types/spellbook/spellbook.c: Use METHOD_OK instead of METHOD_ERROR when the applier is not a player. Alex Schultz 2007-06-08 server/ob_types.c, server/apply.c, types/spellbook/spellbook.c, types/skillscroll/skillscroll.c. types/legacy/apply.c, types/Makefile.am, include/typesproto.h, include/sproto.h: Refactor apply for skillscrolls and spellbooks. server/daemon.c: Remove extraenous parameter for become_daemon. include/sproto.h: Update sproto.h Alex Schultz 2007-06-07 Documentation, no functional change. server/shop.c types/trap/rune.c Nicolas Weeger 2007-06-07 server/rune.c, include/typesproto.h, types/trap/{trap.c, rune.c, common_trap.c}, types/rune/rune.c, types/legacy/process.c, types/Makefile.am: Refactor some rune and trap code. Alex Schultz 2007-06-06 common/button.c: document, no functional change. Nicolas Weeger 2007-06-06 Create the 'bugs/bugtrack' directories for the unit test framework. Add test for a bug. configure.ac: add new directories doc/Developers/testplans: update test/Makefile.am: add directory New files: test/bugs/bugtrack/check_1727944.c Makefile.am test/bugs/Makefile.am Nicolas Weeger 2007-06-04 common/utils.c: don't try to decay a non head object, this leads to abort() from remove_ob(). Nicolas Weeger 2007-06-04 Add Crossfire.Object.Skill property. plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython_object.c plugins/common/plugin_common.c: fix a crash when a NULL value. Nicolas Weeger 2007-06-04 common/living.c: don't ignore exp gained in a skill you don't know yet. Nicolas Weeger 2007-06-04 Fix wrong return values. types/book/book.c types/clock/clock.c types/power_crystal/power_crystal.c types/sign/sign.c Nicolas Weeger 2007-06-03 types/shop_inventory/shop_inventory.c: fix documentation. Nicolas Weeger 2007-06-03 Fix multipart altars not working correctly. types/altar/altar.c types/trigger_altar/trigger_altar.c types/trigger_pedestal/trigger_pedestal.c Nicolas Weeger 2007-06-03 Apply patch #1638868: Ident skills cover larger area with exp courtesy Aaron Baugher. server/skills.c Nicolas Weeger 2007-06-03 server/apply.c: wrong return value when handled by a plugin. Nicolas Weeger 2007-06-03 Fix lamp-related issues. common/map.c: don't clear FLAG_APPLY for lamps, as it indicates on/off. server/apply.c: lamps don't change apply status when being 'unapplied'. types/lamp/lamp.c: lamps can only be (un)applied when in inventory. Nicolas Weeger 2007-06-02 common/object.c: simplify insert_ob_in_ob when merging. Correctly update the light. Nicolas Weeger 2007-06-02 Move ob_apply logic for LAMP objects to the ob_method system. include/typesproto.h server/apply.c ob_types.c types/lamp/lamp.c types/legacy/apply.c types/ChangeLog Makefile.am Nicolas Weeger 2007-06-02 Move ob_apply logic for ARMOUR_IMPROVER objects to the ob_method system. include/sproto.h typesproto.h server/apply.c ob_types.c types/armour_improver types/armour_improver/armour_improver.c types/legacy/apply.c types/Changelog Makefile.am Nicolas Weeger 2007-06-02 Rename MENU to SHOP_INVENTORY, better match. Move ob_apply logic for SHOP_INVENTORY objects to the ob_method system. common/item.c include/define.h typesproto.h plugins/cfpython/cfpython.c server/shop.c ob_types.c types/legacy/apply.c types/shop_inventory/shop_inventory.c types/ChangeLog types/Makefile.am Nicolas Weeger 2007-06-02 Fix wrong check for object applying. Move ob_apply logic for LIGHTER objects to the ob_method system. include/sproto.h typesproto.h server/ob_types.c server/apply.c: use METHOD_xxx for test values. types/ChangeLog types/legacy/apply.c types/lighter/lighter.c: added. Nicolas Weeger 2007-06-02 Remove obsolete oldsocket stuff. include/newserver.h sockproto.h sproto.h server/commands.c socket/info.c loop.c lowlevel.c Nicolas Weeger 2007-06-02 Fix uninitialized memory / invalid memory access. common/arch.c treasure.c Nicolas Weeger 2007-06-01 Fix bug #1729192: Writing any spellscroll requires positive grace. server/skills.c Nicolas Weeger 2007-06-01 Implement feature request #1724356: logging improvements. Apply modified patch from Wart. New settings log_timestamp and log_timestamp_format to control behaviour. Log player creation. common/init.c logger.c include/global.h lib/settings server/c_misc.c init.c Nicolas Weeger 2007-05-30 Fix bug #1726632: After useing a # of times on the forge.. server/alchemy.c: item may change, so its weight too. This leads to invalid carrying. Nicolas Weeger 2007-05-30 Documentation, fix indentation. No functional change. server/ban.c build_map.c Nicolas Weeger 2007-05-29 lib/formulae: fix bug #1726561: formulae for potion_heal needs supreme potion of life. Nicolas Weeger 2007-05-28 utils/mapper.c: add a world map of used and unused exits / blocking zones / roads. Nicolas Weeger 2007-05-28 common/button.c: calming mood floors should calm attacking monsters. Nicolas Weeger 2007-05-27 server/c_move.c: remove extra space. Nicolas Weeger 2007-05-27 server/attack.c: document code, no functional change. Nicolas Weeger 2007-05-26 server/apply.c: food/drink can't be eaten if no_pick is set. Nicolas Weeger 2007-05-26 server/c_misc.c: use region's longname for 'mapinfo', neater than name. Nicolas Weeger 2007-05-26 lib/messages: some more stories. Nicolas Weeger 2007-05-26 Document code, no functional change. common/arch.c include/define.h server/apply.c Nicolas Weeger 2007-05-25 Implement feature request #1653768: Pants/legs common/item.c include/object.h Nicolas Weeger 2007-05-24 server/time.c: allow plugins to override the usual move process. Nicolas Weeger 2007-05-24 Add party rejoin at login. New command 'party_rejoin' to control the behaviour. include/player.h sproto.h server/c_party.c commands.c login.c player.c lib/help/party_rejoin lib/Makefile.am Nicolas Weeger 2007-05-21 Misc memory fixes. Remove obsolete "inventory" line. common/image.c links.c loader.l player.c re-cmp.c shstr.c treasure.c Nicolas Weeger 2007-05-20 Document save_object(s) and save_map() options, add enum for doc linking. common/loader.l map.c crossedit/Edit.c include/map.h random_maps/standalone.c server/c_wiz.c server.c swap.c weather.c Nicolas Weeger 2007-05-20 Fix bug #1713140: sustenance overflow. include/player.h: change digestion from sint8 to sint16. Change other fields the same to avoid potential overflows. Nicolas Weeger 2007-05-20 server/disease.c: Add check to make sure symptom was not destroyed when victim dies - otherwise we get double remove/free. MSW 2007-05-19 Static buffer removal, remove unused parameters, use safe string functions. random_maps/decor.c door.c exit.c expand2x.c floor.c monster.c random_map.c rproto.h style.c treasure.c wall.c server/server.c Nicolas Weeger 2007-05-18 server/weather.c: remove static buffer. Nicolas Weeger 2007-05-17 server/server.c: player count tracking will get false if moving from a map to the same. Nicolas Weeger 2007-05-17 Remove obsolete funcpoint.h file. include/funcpoint.h: removed include/global.h Makefile.am crossedit/xutil.c common/arch.c button.c item.c living.c logger.c los.c map.c object.c player.c time.c treasure.c utils.c Nicolas Weeger 2007-05-17 Don't pass variables that aren't needed, remove prototype confusion. Document. server/weather.c Nicolas Weeger 2007-05-17 Change weather_effect() to use mapstruct* instead of filename. common/map.c crossedit/stubs.c include/funcpoint.h sproto.h random_maps/standalone.c server/weather.c test/unit/common/stubs_common.c test/unit/crossedit/stubs_crossedit.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c utils/bwp.c mapper.c Nicolas Weeger 2007-05-17 server/weather.c: fix mountain cave being covered and rendered invisible. Nicolas Weeger 2007-05-17 test/unit/server/check_attack.c: some tests for hit_player. Nicolas Weeger 2007-05-17 server/ob_types.c, types/Makefile.am, types/item_transformer/item_transformer.c: Remove code for the obsolete item_transformer type. Alex Schultz 2007-05-16 Add spell merging code - this makes the server run much faster when many spell objects are in use. For more details, see doc/Developers/spells --- common/init.c: And declaration/initialization of statistics values. common/object.c: Add handling of spell_tags in object structure (free, copy. Add merge_spell() function. Add call to function from insert_ob_in_map(). Remove was_destroyed() function - now macro. doc/Developers/spells: Add notes on performance numbers and how spell merging works. include/global.h: Add statistics structure used to hold various statistic related variables - added since I added a few points to collect data for my testing. include/libproto.h: remove was_destroyed() declaration. include/object.h: Make was_destroyed() a macro, moving it here. Also add information related to spell tags in object structure. server/server.c: change process_events() to be a non static function, so that test programs can call it/use it. server/spell_util.c: Change ok_to_put_more() to look at the spell_tags in the object for match spell instances. test/unit/server/Makefile.am: Remove double dependency of libraries - not needed. Add dependency for libtypes.a. Add comet_perf test case. test/unit/server/comet_perf.c: New file/test, used to test both performance improvments as well as consistency of results. types/spell_effect/spell_effect.c: Modify explosion() to set op->range=0 after spell has propogated to neighboring spaces. Call merge_spell() after setting range to zero. MSW 2007-05-14 Remove now obsolete 'item_transformer' type, replaced by 'use' command. common/item.c include/define.h plugins/cfpython/cfpython.c server/apply.c types/item_transformer/item_transformer.c Nicolas Weeger 2007-05-13 Remove (legacy_)apply_container that wasn't used - called only for non players, but starts by returning if applier is not a player. Rename (legacy_)esrv_apply_container to (legacy_)apply_container. include/sproto.h server/apply.c player.c types/container/container.c types/legacy/apply.c Nicolas Weeger 2007-05-13 Fix unit test pics (those are dummy ones, to be replaced someday). Add more tests to objects. test/templates/checkTextResult.xsl: put dummy stuff so it works (copied from logresult.xsl) test/templates/crossfire-logo-unit.png test/templates/crossfire-logo-unit-failed.png test/templates/crossfire-logo-unit-success.png test/templates/error.png test/templates/failure.png test/templates/success.png test/templates/txtlog.png test/toolkit/toolkit_common.c: use multipart-aware function test/unit/common/check_object.c: implement more tests test/unit/common/check_shstr.c: don't try to add_string(NULL) if MANY_CORES is set, abort(). test/unit/server/Makefile.am: add libtypes.a to server. Nicolas Weeger 2007-05-13 Remove obsolete fields. common/loader.l include/attack.h Nicolas Weeger 2007-05-13 server/skill_util.c: fix wrong 'skills' display when no god is whoreshipped. Nicolas Weeger 2007-05-10 server/disease.c: fix bug #1713112: rabies infects audience of the arena. Nicolas Weeger 2007-05-09 server/c_wiz.c: fix multipart object creation. Nicolas Weeger 2007-05-09 server/plugins.c: fix wrong parameter order. Nicolas Weeger 2007-05-08 Add 'Crossfire.Object.Race' attribute. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h Nicolas Weeger 2007-05-08 New command: 'use with ', which enables complex item transformation. doc/Developers/item_transformation include/sproto.h lib/help/use server/c_object.c commands.c Nicolas Weeger 2007-05-08 Remove obsolete object types. common/item.c include/define.h plugins/python/cfpython.c Nicolas Weeger 2007-05-08 server/alchemy.c: Doxygen documentation, no functional change. Nicolas Weeger 2007-05-08 utils/mapper.c: new parameter, -listunusedmaps, that'll generate a maps.unused file. Nicolas Weeger 2007-05-07 server/plugins.c: fix plugin unloading which didn't call the closePlugin function. server/c_wiz.c: document. Nicolas Weeger 2007-05-07 Apply patch #1713563: Reopen log file on SIGHUP, courtesy Kari Pahula. common/logger.c include/global.h server/init.c Nicolas Weeger 2007-05-05 Apply patch #1713564, Open log file only once with -detach, courtesy Kari Pahula. include/sproto.h server/daemon.c init.c Nicolas Weeger 2007-05-05 Implement feature request #1657735: Server setting for handling 'incorrect' converters. New server setting, 'allow_broken_converters', that controls what to do. common/init.c include/global.h lib/settings server/init.c types/converter/converter.c Nicolas Weeger 2007-05-05 types/legacy/apply.c: fix broken LIGHTER. Nicolas Weeger 2007-05-05 Fix some type issues in plugin. Wrap change_abil(). Add set_resist(). Add duration property. include/plugin.h sproto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython_object.c server/plugins.c Nicolas Weeger 2007-05-05 random_maps/random_map.c: initialize random map's reset time, so town portal works correctly there too. Nicolas Weeger 2007-05-04 Fix misc compilation warnings. Remove duplicate function. include/sproto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/cfpython.c cfpython_object.c server/plugins.c Nicolas Weeger 2007-04-30 server/c_misc.c: ensure you can't harvest items already harvested, or skills and such. Nicolas Weeger 2007-04-30 server/monster.c: fix bug #1709618: Text message is too long/truncated. Nicolas Weeger 2007-04-30 Partially implement feature request #1668158: Better nethack implementation. Random maps now have a new 'multiple_floors' parameter that, if set, will make the different rooms of the map have different floors. All floors are still taken from the same floor style, for coherence. doc/Developers/random-maps random_maps/floor.c reader.l random_map.c random_map.h Nicolas Weeger 2007-04-29 random_maps/wall.c: walls should always block, even if they sometimes allow some movement. Nicolas Weeger 2007-04-29 server/rune.c: trap's message can be NULL (random maps for instance). Nicolas Weeger 2007-04-29 Return result of cf_object_move(). plugins/common/include/plugin_common.h plugins/common/plugin_common.c Add 'Crossfire.Object.Move' method. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h Nicolas Weeger 2007-04-29 Give read-only access to map->unique to plugins. Add Crossfire.Map.Unique property. include/plugin.h plugins/cfpython/include/cfpython_map_private.h plugins/cfpython/cfpython_map.c server/plugins.c Nicolas Weeger 2007-04-29 plugins/common/plugin_common.c: wrong param type. Nicolas Weeger 2007-04-29 plugins/cfanim/cfanim.c: fixed a crash occuring when ghosting a DM. Made the Animator work by making it listening to the time event. Fixed the bug that left the player invisible after having been ghosted. Made the paralyze option of animation files to work. Fixed crashes when more than an animator was running simultaneously. Yann Chachkoff 2007-04-29 server/plugins.c, plugins/cfpython/cfpython_object.c: Fix type mismatch in varargs function parameters. Andreas Kirschbaum 2007-04-28 server/disease.c: fix bug #1706986: Rabies can infect a DM. DMs are now immune and non contagious. Nicolas Weeger 2007-04-28 Change the version string from 1.9.1 to 2.0-dev for trunk. Alex Schultz 2007-04-28 socket/loop.c: fix unitialized variable. Nicolas Weeger 2007-04-28 plugins/cfpython/cfpython_object.c: fix wrong property set (value is int). Nicolas Weeger 2007-04-28 server/player.c: No need to copy faces_sent - just use the data already there, and set ns->faces_sent to NULL so we know there is no data there. socket/init.c: Allocate ns->faces_sent if not there. MSW 2007-04-25 socket/init.c: Change free calls with FREE_AND_CLEAR - were getting double frees - since pointer wasn't reset, was no way for program to know not to have the data cleared again. MSW 2007-04-24 server/disease.c: In move symptom() stop processing if victim dies. This prevents access to freed objects. server/gods.c: In tailor_god_spell() do not pass NULL value to add_string(). server/spell_effect.c, server/alchemy.c: Fix format arguments of calls to draw_ext_info_format(). server/disease.c: In move_symptom() fix possible buffer overflow when creating symptom names. Andreas Kirschbaum 2007-04-25 server/spell_effect.c: In polymorph_item() fix possible access to freed object. common/los.c: In update_los() fix array out-of-bounds access for clients using 25x25 map size. Andreas Kirschbaum 2007-04-24 Clean old code related to single player directory. include/sproto.h server/login.c player.c Nicolas Weeger 2007-04-23 Implement feature request #1560389: improve inscription logic. New server command, "inscribe", that makes it easy to send spell and scroll information. 'setup inscribe 1' will return 'inscribe 1', so client know they can use this command. doc/Developers/protocol include/sockproto.h socket/item.c loop.c request.c Nicolas Weeger 2007-04-23 Add background music support to maps, change 'socket.sound' field signification. Add SockList_AddString helper function. common/map.c include/map.h newserver.h sockproto.h sounds.h server/c_misc.c server.c socket/lowlevel.c sounds.c Nicolas Weeger 2007-04-22 server/apply.c: remove legacy spellbook handling. Nicolas Weeger 2007-04-22 Second and last part of feature request #1543553: Inventories in artifacts/archetypes. It's now possible to put "arch" in archetypes, they'll be correctly handled. Like any other object, you can customize it. common/arch.c loader.l Nicolas Weeger 2007-04-22 server/server.c: Add some debug to see if objects are on swapped out maps in process_objects() socket/loop.c: Hopeful fix for old bug - can be rare cases where next player gets freed, so code tries to process garbage player and crashes. MSW 2007-04-21 lib/artifacts: fix bug #1673804: Items "of Occidental Mages" use obsolete event_xxx fields. Nicolas Weeger 2007-04-21 Partially implement feature request #1543553: Inventories in artifacts/archetypes. It's now possible to have items in artifacts, they'll be inserted in object. Doesn't yet work with archetypes, since you could possibly reference an archetype defined *after* the current archetype. common/arch.c: do a deep object copy instead of a partial one common/loader.l: handle inventories during artifact load common/object.c: put copy_object_with_inv common/treasure.c: add inventory from artifact include/libproto.h: updated prototypes random_maps/random_map.c rproto.h: moved copy_object_with_inv to common lib Nicolas Weeger 2007-04-21 Implement EVENT_TELL. plugins/cfpython/cfpython.c plugins/template/plugin_template.c server/c_chat.c plugins.c Nicolas Weeger 2007-04-21 Add discrete damage type for weapons, and probably also spells and such. common/loader.l object.c include/object.h server/attack.c Nicolas Weeger 2007-04-21 server/spell_attack.c: wrong argument to ob_process, leading to infinite recursion. Nicolas Weeger 2007-04-21 server/apply.c: potions of life now won't affect player if their level is too low. Nicolas Weeger 2007-04-20 server/attack.c: enable plugins to prevent attacks. Nicolas Weeger 2007-04-18 server/plugins.c: fix wrong return type. Nicolas Weeger 2007-04-18 plugins/cfpython/cfpython_object.c: don't insert hooks in 'more' parts of items. plugins/cfpython/cfpython.c: player list (GetPlayers()), activate 'clock' event. --- Give access to player list to plugins. Fix mishandling of multipart objects. include/plugin.h server/plugins.c Nicolas Weeger 2007-04-17 common/region.c: don't crash if no regions file found. Nicolas Weeger 2007-04-15 Wrap change_exp() function. Make 'exp' property the same as others. Also fix a crash: don't insert destroy hooks in archetype clones. include/sproto.h plugins/cfpython/cfpython_object.c plugins/cfpython/include/Makefile.in plugins/cfpython/include/cfpython_object_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2007-04-15 server/plugins.c: wrong case - FLAG_FRIENDLY is not the same as friendlylist :) plugins/cfpython/cfpython_object.c: add 'IsPet' and 'AttackMovement' plugins/cfpython/include/cfpython_object_private.h Nicolas Weeger 2007-04-15 server/skills.c: EVENT_TRIGGER for magical scroll writing. Nicolas Weeger 2007-04-15 server/cfpython.c: add AttackType, AttackTypeNumber, EventType constants. Nicolas Weeger 2007-04-15 common/living.c: fix comments. common/object.c: dump owner too. server/plugins.c: check values for cfapi_map_get_object_at(). Handle FLAG_FRIENDLY and friendlist. Nicolas Weeger 2007-04-15 Enable plugins to change the 'path' property of a map. plugins/cfpython/cfpython_map.c plugins/cfpython/include/cfpython_map_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2007-04-15 Add plugin wrapper for cf_get_empty_map(). Add 'Object.GodGiven' and 'Crossfire.CreateMap'. plugins/cfpython/cfpython.c plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2007-04-14 Remove obsolete command_build function. include/sproto.h server/c_object.c commands.c Nicolas Weeger 2007-04-14 Correctly clear god information. common/holy.c Nicolas Weeger 2007-04-14 Remove unused godlink::pantheon field. common/holy.c include/god.h Nicolas Weeger 2007-04-14 Remove unused (and obsolete) current_weapon_script field. Remove now unused find_best_weapon_used_match(). common/loader.l object.c crossedit/Attr.c include/libproto.h object.h server/apply.c skill_util.c test/unit/common/check_arch.c check_object.c Nicolas Weeger 2007-04-14 Replace plugin light change with call to map_change_light() for coherence checking. Remove obsolete properties. include/sproto.h plugins/cfpython/cfpython_map.c plugins/cfpython/include/cfpython_map_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-04-14 server/monster.c: make monsters use the same 'say' format than players. Nicolas Weeger 2007-04-12 Remove '_speak' hook and related functions. '_say' exists, and is the same. plugins/cfanim/cfanim.c plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-04-12 Plugin API changes. More void* conversion removing. plugins/cfanim/cfanim.c plugins/cflogger/cflogger.c plugins/cfnewspaper/cfnewspaper.c plugins/cfpython/cfpython.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/template/plugin_template.c server/plugins.c Nicolas Weeger 2007-04-12 server/init.c: add -conf documentation to help. Nicolas Weeger 2007-04-12 server/skill_util.c: In init_skill() do not crash for SKILL objects having incorrect subtype. Andreas Kirschbaum 2007-04-11 Fix bug #1696810: skill items autoapply. Now skilltool will be used even if skill can be used without, to benefit from its bonuses. server/skill_util.c Nicolas Weeger 2007-04-10 Fix parameter for Doxygen, no functional change. plugins/common/plugin_common.c plugins/common/include/plugin_common.h Nicolas Weeger 2007-04-09 More API changes. server/plugins.c plugins/cfpython/cfpython_object.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2007-04-09 More API changes. server/plugins.c plugins/cfanim/cfanim.c plugins/cfpython/cfpython_object.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2007-04-09 More API changes. server/plugins.c plugins/cflogger/include/cflogger_proto.h: remove plugin_common functions. plugins/cfpython/cfpython_object.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c Nicolas Weeger 2007-04-08 Have create_pathname() return buf to simplify code. common/map.c include/libproto.h Nicolas Weeger 2007-04-08 Remove unused function. include/sproto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/cfpython_object.c server/plugins.c Nicolas Weeger 2007-04-08 Map-property type checking. Remove some unused void* return values. plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-04-08 Change map plugin API to not use static vars. Remove old hooks (replaced by other means). include/plugin.h sproto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/cfpython_map.c plugins/cfpython/cfpython.c plugins/cfnewspaper/cfnewspaper.c server/plugins.c Nicolas Weeger 2007-04-08 common/init.c: abort() if first map doesn't exist. Better than crashing later on. Nicolas Weeger 2007-04-08 Fix bug #1695764: Charm monsters - shared experience broken. Add new share_exp() function, working like change_exp() but party-aware. common/living.c include/libproto.h server/attack.c server/spell_attack.c Nicolas Weeger 2007-04-07 Fix Doxygen stuff, no functional changes. types/clock/clock.c types/spell_effect/spell_effect.c types/exit/exit.c Nicolas Weeger 2007-04-07 Enable polymorph spell. Will need tweaking, quite certainly. include/sproto.h server/spell_util.c server/spell_effect.c Nicolas Weeger 2007-04-07 Add 'Crossfire.WhatIsEvent()' to get event object. plugins/cfpython/cfpython_object.c: don't put a destroy hook in a destroy hook :) plugins/cfpython/cfpython.c: WhatIsEvent() Nicolas Weeger 2007-04-07 Change plugin object event interface to send the event object itself, instead of its slaying/name values. plugins/cfanim/include/cfanim.h plugins/cfanim/cfanim.c plugins/cfnewspaper/cfnewspaper.c plugins/cfpython/include/cfpython.h plugins/cfpython/cfpython.c plugins/template/include/plugin_template.h plugins/template/plugin_template.c server/plugins.c Nicolas Weeger 2007-04-07 server/swap.c: fix crash with map reset (parameter is map, not path). Nicolas Weeger 2007-04-06 Add 'Object.Count' property (read-only). plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h Nicolas Weeger 2007-04-06 Fix wrong set/get key checks. plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-04-06 Add 'Object.Enemy' property. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h Nicolas Weeger 2007-04-06 types/legacy/apply.c: fix scrolls not taking direction into account. Nicolas Weeger 2007-04-06 Remove support for obsolete 'no_pass' attribute. -- doc/Developers/{objects,spells,map-technical}: Update documentation about no_pass attribute. lib/adm/getfaces.pl: Scan for move_blocked instead of no_pass. common/loader.l: Remove support for no_pass attribute. crossedit/Attr.c: Remove no_pass from the list of valid attribute names. Andreas Kirschbaum 2007-04-05 types/exit/exit.c: Fix bad definition of exit_type_apply. -- types/{legacy/apply.c, clock/clock.c}, server/ob_types.c: Move apply logic for clocks out of legacy area in the ob_method system. -- types/{legacy/apply.c, exit/exit.c}: Move apply logic for exits out of legacy area in the ob_method system. Alex Schultz 2007-04-05 Tweak harvesting skill per Lalo's suggestions. If a living object is harvested, goes to map instead of in the inventory. Also make the key/value checks more meaningful. server/c_misc.c Nicolas Weeger 2007-04-04 server/{spell_attack.c, spell_util.c, spell_effect.c}, include/{libproto.h, sproto.h}, types/{spell_effect/spell_effect.c, legacy/process.c}: Move ob_process logic for SPELL_EFFECT objects to the ob_method system. -- plugins/cfpython/cfpython.c: Remove LIGHTNING from cfpython type constants. -- types/legacy/process.c, common/item.c, include/define.h, server/spell_util.c: Remove old LIGHTNING(12) type. Alex Schultz 2007-04-03 Remove obsolete Flying/CanPassThru properties. plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython_object.c Nicolas Weeger 2007-04-03 Clean some old stuff, unused functions, ... common/arch.c common/holy.c common/image.c common/item.c common/loader.l: remove "empty" fields. Those are legacy, and should be removed in maps/archs. common/los.c common/porting.c common/quest.c common/treasure.c include/define.h include/map.h include/spelllist.h server/apply.c server/attack.c server/c_object.c server/disease.c server/gods.c: remove unused follower_remove_similar_item() and misc functions. server/login.c: remove "old player file removing" code, shouldn't be needed anymore. server/monster.c server/player.c server/resurrection.c server/server.c server/skills.c server/spell_attack.c server/spell_effect.c server/spell_util.c server/weather.c socket/loop.c socket/lowlevel.c socket/request.c Nicolas Weeger 2007-04-03 New skill: "harvesting", get something from some place - example: fishing. include/skills.h sproto.h server/c_misc.c skill_util.c Nicolas Weeger 2007-04-03 types/{example.c, README}: Merge example.c into README. Alex Schultz 2007-04-03 Remove obsolete "Directionxxx" and "CostFlagxxx", replaced by constants. plugins/cfpython/cfpython.c Nicolas Weeger 2007-04-02 Add 'MessageFlag' constant, holding the NDI_xxx values, to Python. plugins/cfpython/cfpython.c Nicolas Weeger 2007-04-02 configure.ac: Add AM_PROG_CC_C_O macro so it properly handles the types directory. MSW 2007-04-01 Document random map files (except test.c and some .h). plugins/common/include/plugin_common.h: fix parameter name. plugins/common/plugin_common.c: fix parameter name. random_maps/*.c random_maps/random_maps.h: replace #define by enum to be linkable for Doxygen. Nicolas Weeger 2007-04-01 Fix bug #1672117: elves etc don't fire over move_allow flying tiles. Logic for monster_use_bow() was changed to make monsters fire only horizontally/vertically/in diagonals, and also fire over terrain they can't cross but which lets an arrow go over. server/monster.c server/player.c: note about move_type Nicolas Weeger 2007-03-31 Fix wrong type/missing value. Fix some comments. plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-03-31 Change partially map plugin API. Add cf_map_has_been_loaded() to plugins. plugins/cfanim/cfanim.c plugins/cfpython/cfpython.c plugins/cfpython/cfpython_map.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-03-31 crossedit/Attr.c: Remove obsolete 'flying' attribute. Andreas Kirschbaum 2007-03-26 Implement feature request #1560387: DM follow command. include/player.h sproto.h server/c_wiz.c commands.c server/server.c: also fix wrong player count with hidden DMs. Nicolas Weeger 2007-03-25 Fix broken banish command: loop logic was weird (skipping one file?). server/ban.c Nicolas Weeger 2007-03-25 New plugin: cfnewspaper. As its name implies, it will (in the future) generate an ingame newspaper. Currently, it will only list player and monster deaths for last ingame day. It's still very basic, and hopefully will be improved :) Note that it requires the database generated by cflogger. configure configure.ac plugins/Makefile.[am|in] plugins/cfnewspaper/include/cfnewspaper.h cfnewspaper_proto.h plugins/cfnewspaper/cfnewspaper.c Makefile.[am|in] Nicolas Weeger 2007-03-25 Fix cflogger. plugins/cflogger/cflogger.c --- Add missing directories for cflogger plugin. plugins/Makefile.[am|in] --- Change misc functions plugin API. server/plugins.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfanim/cfanim.c plugins/cfpython/cfpython.c plugins/cfpython/cfpython_object.c plugins/template/plugin_template.c --- server/apply.c: doc update. include/global.h: doc update. --- Remove common plugin functions from proto. plugins/cfanim/Makefile.[am|in] plugins/cfanim/include/cfanim_proto.h --- common/object.c: add 'inv' field for object dump. Nicolas Weeger 2007-03-25 doc/Developers/objects: Mark 'flying' attribute as obsolete. common/loader.l: In check_loaded_object() remove code to support legacy attribute 'flying'. Andreas Kirschbaum 2007-03-25 common/loader.l: In check_loaded_object() remove code to update legacy playermover objects after map loading. Andreas Kirschbaum 2007-03-25 common/loader.l: In check_loaded_object() remove code to update legacy monster objects after map loading. Andreas Kirschbaum 2007-03-24 server/c_wiz.c: fix missing treasure generation for create command in some cases. Nicolas Weeger 2007-03-24 plugins/cfpython/cfpython_object.c, plugins/cfpython/include/cfpython_object_private.h, include/define.h, common/exp.c, common/loader.l: Remove FLAG_PICK_UP since it was not actually used, and since it was saved under "pick_up" which clashes with another attribute. Andreas Kirschbaum 2007-03-23 common/shstr.c, include/libproto.h: Use the new sstring typedef in shstr.c Alex Schultz 2007-03-22 Change party, region, friendlylist plugin API. include/sproto.h plugins/cfanim/include/cfanim_proto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-03-22 Change archetype plugin API. plugins/cfanim/include/cfanim_proto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Nicolas Weeger 2007-03-21 server/egoitem.c: Removed blank file. Alex Schultz 2007-03-21 Changes to plugin API: start to use a (type)* parameter instead of returning a value cast to void*. This removes static variables. Also add Object.PermExp and Object.ExpMul to Python. include/plugin.h: add CFAPI_MOVETYPE type. plugins/common/include/plugin_common.h: add many wrappers. plugins/common/plugin_common.c: wrappers, new calling syntax. plugins/cfpython/cfpython_object.c: clean calls to common plugin. plugins/cfpython/include/cfpython_object_private.h: some more properties. server/plugins.c: change cfapi_object_get_property. --- include/global.h: new type, 'sstring', to be used for shared strings. --- common/loader.l: fix crash when object is missing archetype. Nicolas Weeger 2007-03-21 server/monster.c: documentation and indent, no functional change. Nicolas Weeger 2007-03-18 Fix 'make distclean': acinclude.m4: Use -I./${srcdir} for crossedit check - otherwise, when building in alternate directory, doesn't fine files correctly. configure.*: Add new makefiles. check-fragment.am, test/unit/crossedit/Makefile.am, test/unit/common/Makefile.am,test/toolkit/Makefile.am: Add support for building in alternate directory, which make distclean does - using relative directories to find files does not work. Some files should also be in the buildir, not srcdir. Have Makefiels remove .autrun.xml with distclean Makefile.am: Remove to config files on make distclean test/include/Makefile.*, test/templates/Makefile.*: Add missing Makefiles test/unit/random_maps/Makefile.am,test/unit/socket/Makefile.am, test/unit/Makefile.am: remove .autorun.xml file as part of distclean test/unit/server/Makefile.am: Remove LDFLAGS from Makefile.am - automake says don't mess with those - use AM_LDFLAGS instead. Remove .autrun.xml file with distclean test/Makefile.am: Add include, templates to subdir list. Have make clean remove log files, .autorun.xml file. crossedit/Makefile.am: Fix indentation of stubs.c (use tab, not spaces) other files: Rebuilt as part of running autogen.sh MSW 2007-03-25 Implement feature request #1528522: Initial items should be applied/worn. server/player.c --- server/apply.c skill_util.c: keep the AP_NOPRINT flag for subcalls. --- server/c_wiz.c: update DM's view when using nodm. --- server/apply.c: update player's view when turning on/off a lamp. --- server/spell_util.c: ignore sp/gr/time cost for DM casting spells. --- common/object.c: when inserting an object, need to fix 'map' too, if not set later, will crash. --- Implement feature request #1680229: dmhide - glowing things. common/map.c: totally ignore hidden DMs for map update. --- Implement feature request #1669464: Need new command - dmtell. include/sproto.h server/c_chat.c commands.c --- server/c_wiz.c: enable 'teleport' to use a partial name. server/c_misc: 'listen' should be positive. --- Fix bug #1668283: Crossfire.CreateObjectByName is faulty, by applying patch (feature request) #1682802: CreateObjectByName fix/change. Code by Yann Chackhoff. Also fix a crash when teleporting a newly created object. server/plugins.c --- Fix bug #1671102: Generic destroy can remove permanent buttons. The code was doing a wrong check related to marked item/destroyer. Fix bug #1657675: multi-tile buildable object bug (note: one .x11 image though). code now uses multi-tile aware function to generate object, and correctly checks all relevant spots for building. server/build_map.c --- plugins/template/create_plugin.sh: plugin generation script. plugins/template/include/plugin_template.h: remove unused file, fix comment. --- Random map functions for plugins. plugins/common/include/plugin_common.h plugins/common/plugin_common.c --- Give access to random map generation to plugins. include/sproto.h server/plugins.c --- Allow one to give a prebuilt layout (.#<> and such) for random map generation. random_maps/random_map.c rproto.h standalone.c server/server.c --- plugins/template/plugin_template.c: use cf_log instead of printf, fix missing CF_PLUGIN (Win32 specific). --- server/c_object.c: missing ;, missing buffer reinitialisation. server/login.c: wrong function call. --- lib/races: remove obsolete player races. lib/treasures: remove lists put into individual .trs files. Nicolas Weeger 2007-03-17 types/Makefile.am: Build object files in their own directories instead of in types/ --- server/login.c: Make error messages for invalid usernames more useful. --- server/c_object.c: Change examine to use "Those are" instead of "That is" for more than one object. Alex Schultz 2007-03-16 Apply patch #1660388: Code-cleanup: () -> (void) courtesy Stefan Huehner. server/timers.c weather.c ob_methods.c test/unit/common/stubs_common.c test/unit/crossedit/stubs_crossedit.c test/unit/random_maps/stubs_random.c test/unit/socket/stubs_socket.c test/toolkit/toolkit_common.c common/init.c treasure.c crossedit/stubs.c types/altar/altar.c types/arrow/arrow.c types/book/book.c types/button/button.c types/check_inv/check_inv.c types/container/container.c types/converter/converter.c types/deep_swamp/deep_swamp.c types/director/director.c types/exit/exit.c types/hole/hole.c types/identify_altar/identify_altar.c types/item_transformer/item_transformer.c types/pedestal/pedestal.c types/player_mover/player_mover.c types/power_crystal/power_crystal.c types/rune/rune.c types/shop_mat/shop_mat.c types/sign/sign.c types/spell_effect/spell_effect.c types/spinner/spinner.c types/thrown_object/thrown_object.c types/transport/transport.c types/trap/trap.c types/trapdoor/trapdoor.c types/trigger/trigger.c types/trigger_altar/trigger_altar.c types/trigger_button/trigger_button.c types/trigger_pedestal/trigger_pedestal.c Ryo 2007-03-13 Win32 compilation fixes. common/shstr.c: missing Windows include. plugins/cfanim/include/cfanim_proto.h: missing CF_PLUGIN export. plugins/cfpython/include/cfpython_proto.h plugins/cfpython/include/cfpython.h: DEBUG fix (Python doesn't provide the good debug library). plugins/common/hashtable.c: missing Windows include. --- utils/mapper.c: new "warnnnopath" option to display exits without slaying field. Ryo 2007-03-08 Fix bug #1673713: event_attack in (sword etc) weapon doesn't work. server/attack.c: fix EVENT_ATTACK weirdness. --- Fix compilation warnings, mostly missing #include. common/exp.c holy.c item.c living.c map.c porting.c readable.c recipe.c shstr.c treasure.c utils.c: missing #includes. common/object.c: don't declare variables in the middle of code. Missing #include. include/libproto.h: missing find_multi_free_spot_within_radius. include/sockproto.h: missing send_exp_table. lib/races: fix dwarf player archetype (was using old one). plugins/cfpython/cfpython.c: unused variable. random_maps/maze_gen.c random_map.c room_gen_onion.c square_spiral.c: missing #include. server/plugins.c: unused variable. server/ob_methods.c: missing include. server/ob_types.c: missing include. server/time.c: unused variable. socket/image.c: use right type for faceset. types/*.c: add missing #include . types/legacy/legacy_describe.c: unused variable. --- Implement feature request #1560416: give warning when spell is about to expire. Player will be warned when left duration is one fifth, then one twenty-fifth. Two new functions are introduced, check_spell_expiry() and store_spell_expiry(). include/sproto.h server/spell_effect.c spell_util.c time.c --- Implement feature request #1675158: dmhide - "detect monster" will reveal DM. spell_effect.c: detection doesn't concern DMs. Ryo 2007-03-06 Some documentation, no functional change. include/define.h face.h gods.h living.h Ryo 2007-03-05 Implement feature request #1560396: flag to set fixed buying/selling prices. Three keys are used, "price_adjustment", "price_adjustment_sell" and "price_adjustment_buy". price_adjustment overrides the 2 other keys. Value should be numeric/decimal, anything that atof() will recognize as a float. server/shop.c Ryo 2007-03-05 Add Object.Owner (read/write) and Crossfire.GetFriendlyList. plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython.c plugins/cfpython/cfpython_object.c --- Add cf_friendlylist_get_first / cf_friendlylist_get_next to browser friendlylist. Add cf_object_set_object_property. plugins/common/include/plugin_common.h plugins/common/plugin_common.c --- Give access to friendlylist to plugins, through cfapi_friendlylist_get_next(). include/sproto.h server/plugins.c --- common/object.c: let set_owner accept owner NULL (-> clear_owner()). --- Implement feature request #1669443: dmhide - players can still send 'tell. server/c_chat.c: DM are now shown as not logger with regard to tell/reply. --- server/c_object.c: call EVENT_PICKUP which was forgotten somewhere along the way. server/plugins.c: don't remove/free removed/freed objects, log mistake. This closes bug #1670465: server doesn't have check to see if it is removing removed Ryo 2007-03-04 Fix some potential / real crashes under Windows. common/readable.c: wrong field cleared. Set to NULL after clear. Wrong buffer size. --- socket/info.c: old_format is sometimes NULL, use new_format. --- Fix a potential crash related to map swapping: swap_map can delete map. include/sproto.h server/c_wiz.c swap.c Ryo 2007-03-03 utils/mapper.c: display map name before loading it, makes it easier to debug maps :) Ryo 2007-03-02 Add cf_object_set_float_property. plugins/common/include/plugin_common.h plugins/common/plugin_common.c --- Add SpeedLeft to Python plugin. Fix wrong type for speed. plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython_object.c --- Fix wrong type for speed. server/plugins.c Ryo 2007-02-28 include/typesproto.h, types/*/*.c: Make functions static where possible and reasonable. Alex Schultz 2007-02-24 server/player.c: wrong call order. plugins/cfpython/cfpython.c: fix crash when Python and server are compiled with different versions of MS's DLLs. Ryo 2007-02-24 Fix some comments from // to /* */ common/map.c include/ob_types.h server/c_wiz.c gods.c pets.c server.c ---- Some Win32 compilation fixes. server/apply.c player.c plugins.c Ryo 2007-02-23 Rebuild prototypes. include/{sproto.h, typesproto.h} --- Move arrow and thrown object code into types/ server/time.c, types/{arrow/arrow.c, thrown_object/thrown_object.c, common/projectiles.c, legacy/process.c} --- Change move_arrow calls to ob_process. server/{player.c, skills.c} Alex Schultz 2007-02-19 Fix uninitialized variables. server/weather.c: wrong temperature initialisation. socket/init.c: init newsocket->want_pickup Ryo 2007-02-18 Replace "type_to_archetype" by "get_archetype_by_type_subtype". common/arch.c map.c include/libproto.h test/unit/common/check_arch.c Ryo 2007-02-18 Whitespace formatting (indents and tab removal) and long-line cleanup server/c_new.c socket/request.c Aaron Baugher 2007-02-18 Implement feature request 1025952: GTK Client - Save Pickup options. New setup command, 'want_pickup', which makes server send 'pickup xxx' when player joins. Modified files; doc/Developers/protocol include/newserver.h sockproto.h server/login.c socket/request.c Ryo 2007-02-18 Make containers with an other_arch face display it when opened. server/apply.c Aaron Baugher 2007-02-15 New server settings: allow_denied_spells_writing, for inscription. common/init.c include/global.h server/init.c skills.c Ryo 2007-02-15 Whitespace and long-line cleanup socket/item.c socket/image.c Aaron Baugher 2007-02-15 server/shop.c: handle "no money" case when player tries to exit shop. --- Fix a crash with object handling by plugins. cfpython/cfpython_map.c: don't assume op exists after inserting in map. Ryo 2007-02-15 Remove static buffers from path_combine and path_combine_and_normalize. common/path.c map.c include/libproto.h path.h server/server.c utils/mapper.c --- common/map.c: add buffer's size to prevent overflows. Ryo 2007-02-14 Invalidate player's view if teleporting. Call update_ob_speed when changing speed. server/plugins.c Ryo 2007-02-12 Remove unused field object::refcount from unit testing test/unit/check_object.c gros 2007-02-12 lib/smooth updated in conjunction with arch update (revision 5421). Kevin Bulgrien 2007-02-11 Remove unused field object::refcount. common/object.c include/object.c plugins.h server/plugins.c Fix speed logic, implementing feature request #1624544: Armour speed limit common/living.c Fix missing call, resulting in corrupted output. server/c_object.c Fix mishandling of weapon/shield/armour restriction. Fix crash with NULL value. server/gods.c Ryo 2007-02-11 Formatting clean-up: server/apply.c: fixed indentation, untabified, broke long lines Aaron Baugher 2007-02-11 Make armour handling coherent between gods, monsters and such. Cloaks and bracers are not armour. common/item.c utils.c: fix tests with macros. include/define.h: update macro, new IS_SHIELD. server/apply.c monster.c player.c: use macros. Ryo 2007-02-11 Remove last static buffers, use safe string functions. common/readable.c include/libproto.h --- Remove obsolete long_desc(), replaced by ob_describe(), get rid of static buffer. include/sproto.h server/c_object.c ob_methods.c skills.c spell_effect.c types/book/book.c types/identify_altar/identify_altar.c --- Fix compilation warnings. include/global.h: remove duplicate DELETE_STRING (FREE_AND_CLEAR_STR), cast to void*. plugins/cfpython/include/cfpython.h: Python defines HAVE_GETTIMEOFDAY, but we do too. plugins/cfpython/cfpython.c: explicit cast to wanted type. plugins/common/hashtable.c: add missing include for malloc(). --- Remove static buffer for strerror_local(). common/anim.c image.c map.c porting.c include/libproto.h server/c_misc.c deamon.c hiscore.c init.c login.c resurrection.c socket/init.c loop.c lowlevel.c --- Remove some static variables. Return values from server. plugins/cfpython/cfpython_object.c plugins/cfanim/include/cfanim_proto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c --- Update cf_object_[gs]et key to use parameter instead of void* return. include/plugin.h plugins/cfpython/cfpython_object.c plugins/cfanim/include/cfanim_proto.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c --- Remove static variables from plugin API, use parameters instead. plugins/common/plugin_common.c server/plugins.c Ryo 2007-10-11 Remove "sstable" command for players, which is called "ssdumptable" for DMs. include/sproto.h server/commands.c c_mist.c --- Remove static buffer fur ss_dump_table. Use SS_ flags. Use LOG instead of direct fprintf. common/shstr.c include/libproto.h server/c_misc.c --- include/global.h: errmsg isn't used anymore. --- Remove errmsg use for ss_dump_statistics. common/shstr.c include/libproto.h server/c_misc.c --- Fix get_split_ob not returning failure message (was through errmsg). common/object.c include/libproto.h server/apply.c c_object.c player.c plugins.c skills.c spell_effect.c Ryo 2007-02-11 Remove errmsg use for dump_object and dump_arch. Merge dump_object and dump_object2. common/anim.c arch.c object.c crossedit/Attr.c include/libproto.h server/c_misc.c c_wiz.c server.c time.c test/unit/common/check_object.c Ryo 2007-02-11 server/weather.c: Fix possible buffer overflows. server/gods.c: Use correct format specifier in sprintf(). server/spell_util.c: Fix return statements with no value in non-void function. server/time.c, include/libproto.h: Make log_time() static. server/apply.c: Fix return statements with no value in non-void function. common/living.c: Fix incorrect "extern" definition for "levels". server/c_range.c: Fix possible buffer overflows. server/server.c: Fix possible buffer overflows. common/map.c: Fix possible buffer overflows; Reduce memory used by load_map_header(). common/readable: Improve performance by minimizing string copies. server/c_object.c: Fix possible buffer overflows. common/item.c: Fix possible buffer overflows; improve performance by minimizing string copies; fix bugs because of missing braces; make sure all strings are \0-terminated. Andreas Kirschbaum 2007-02-10 Misc LOG fixes (mostly add missing newline), no functional change. common/anim.c arch.c holy.c image.c init.c [also fix missing init value] porting.c readable.c recipe.c region.c treasure.c server/init.c weather.c Ryo 2007-02-10 Implement feature request #1653770: Sockpuppeting fix (no exp when perm exp is hit). Implement feature request #1560385: Players killing other players should get no exp. Two new settings are added, pk_max_experience and pk_max_experience_percent. Check settings file to see how they work. Also, experience gained for killing a player never exceed experience that player can lose considering permanent experience. Modified files: common/init.c include/global.h lib/settings server/attack.c init.c --- common/porting.c: add missing variable type. Ryo 2007-02-10 Use const char* instead of char*, use thread-safe strerror_r, fix potential memory leak. common/porting.c include/libproto.h --- Remove static buffer from get_string_move_type(). common/loader.l --- common/object.c: don't use global errmsg variable for errors, just LOG() them. --- Remove static buffer from create_template_pathname(). common/map.c include/libproto.h server/server.c --- Remove static buffer from create_pathname(). common/map.c include/libproto.h server/plugins.c server.c utils/mapper.c --- Remove static buffer from create_overlay_pathname(). common/map.c include/libproto.h server/c_wiz.c plugins.c --- Remove static buffer from create_items_path(), and play it safe with length. common/map.c --- Remove static buffer for query_base_name(). common/button.c item.c object.c include/libproto.h server/alchemy.c apply.c c_objects.c c_range.c player.c plugins.c shop.c socket/info.c item.c types/item_transformer/item_transformer.c --- Remove static buffer for get_ob_diff(). common/object.c loader.l include/libproto.h server/c_wiz.c Ryo 2007-02-10 No functional changes, just compilation warnings / Doxygen stuff. --- Add missing includes. types/book/book.c types/identify_altar/identify_altar.c (also fix missing argument) types/item_transformer/item_transformer.c types/transport/transport.c --- Add newline at end. types/common/common_apply.c types/trigger/trigger.c --- Add Doxygen path info to distinguish files. common/button.c random_maps/exit.c server/alchemy.c apply.c rune.c spell_effect.c types/button/button.c types/exit/exit.c types/rune/rune.c types/spell_effect/spell_effect.c utils/bwp.c Ryo 2007-02-09 Remove static buffer from ob_describe(). Make op some parameter const. include/ob_methods.h sproto.h typesproto.h server/c_object.c ob_methods.c types/common/describe.c types/legacy/megacy_describe.c Ryo 2007-02-09 Doxyfile: Adjust Doxyfile options to create more information in the documentation. Alex Schultz 2007-02-09 Remove static buffer from query_short_name(). common/item.c object.c include/libproto.h server/gods.c player.c plugins.c skills.c spell_effect.c Ryo 2007-02-09 common/item.c: fix documentation. -- Remove some more static buffers. common/item.c info.c readable.c include/libproto.h server/plugins.c spell_effect.c types/common/describe.c Ryo 2007-02-09 Fix a few compiler warnings. Most were just unused variables, but some in server/c_object.c had returns without values. Files: server/c_object.c server/monster.c server/player.c server/weather.c MSW 2007-02-08 Remove static buffer for query_name(). common/item.c include/libproto.h server/apply.c attack.c build_map.c c_object.c c_range.c c_wiz.c gods.c monster.c move.c player.c plugins.c server.c shop.c skill_util.c spell_attack.c spell_util.c common/living.c object.c readable.c socket/item.c types/common/describe.c types/converter/converter.c types/example.c types/item_transformer/item_transformer.c types/legacy/apply.c legacy_describe.c types/transport/transport.c Ryo 2007-02-08 More generator enhancements: Added a generator_max field to generators. If this field is set, the generator will only create this many objects on the map at one time. It sets a generator_code key/value in itself and any objects it creates, so it can identify them when counting. This code is taken from the new generator_name field if it exists, or the "name" field otherwise. server/time.c: added the scan for child objects to generate_monster, and setting the code to child objects in the generate_monster_* routines. Aaron Baugher 2007-02-08 common/button.c: fix memory leak if map is NULL. --- Some static buffer removal, replaced by buffer + size parameters. common/item.c: use const char* for constants. Remove some static buffers. Remove unused function. common/holy.c readable.c: adjust to functions. include/libproto.h: new function prototypes. server/apply.c c_object.c: changes to function calls. Ryo 2007-02-08 Enhancing generator ability: Add a "generator_radius" field to generators; objects are created randomly within this radius of the generator. server/time.c: changed calls to find free spot common/object.c: added function find_multi_free_spot_within_radius, which is called from server/time.c Aaron Baugher 2007-02-08 Makefile.am, Makefile.in (and Makefiles in subdirs): Put types in list of SUBDIRS before server so that compilation happens in correct order - server area requires types to be up to date. MSW 2007-02-07 Make players change place with pets from party members instead of pushing them away. --- server/player.c: In move_player_attack() check for pets from party members in addition to own pets. server/move.c: In push_ob() check for pets from party members in addition to own pets. Andreas Kirschbaum 2007-02-07 Implement feature request #1652066: Python: get user's savebed location and x,y coords. --- New properties for player: server/plugins.c include/plugin.h --- Python properties: plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython_object.c Ryo 2007-02-06 utils/mapper.c: new command-line option "-addmap=", to add a map to process. Now also take into account player_changer a an exit. Flag "rowmaps" to generate maps with random tiles instead of items. Ryo 2007-02-04 plugins/cfpython/cfpython_object.c: Fix missing braces. Alex Schultz 2007-02-03 plugins/cflogger/cflogger.c: Add missing return value in store_time(). plugins/cflogger/cflogger.c: Add missing call to va_end(). Andreas Kirschbaum 2007-01-29 utils/bwp.c: fix sort (sort by object's name). Fix memory leaks. Ryo 2007-01-28 Implement feature request #822087: Apply below. 'apply' now has a new flag, '-b', that specified an item on the ground. lib/help/apply: updated. server/c_object.c: look for item on ground/in container. Ryo 2007-01-21 Refactoring of move_apply -> move_on for several object classes. Removed obsolete server/swamp.c file. See types/ChangeLog for details. server/apply.c server/swamp.c server/time.c Yann Chachkoff 2007-01-21 Some changes to the mapper. utils/mapper.c: some code cleaning. New tags. utils/templates/map.template map_with_exit.template: use new tags, legend. Ryo 2007-01-21 server/spell_util.c: Consider all stats when swapping random stats due to a failed spell. Andreas Kirschbaum 2007-01-21 Implement feature request #656195: More effects of confusion. Three effects can happen: * one item is transformed temporarily to flowers * 2 random statistics are temporarily swapped * a random spell is cast. A new force type is introduced, FORCE_TRANSFORMED_ITEM, which does some magic when it expires. Modified files: include/spells.h server/spell_util.c time.c Ryo 2007-01-20 Partially revert patch from 2006-31-12: girdles are not armours for wearing restrictions. server/apply.c player.c Ryo 2007-01-20 configure.ac: add --disable-logger flag to not build cflogger plugin, courtesy gros. ---- Implement partially feature request #656194: It should be possible to curse and bless. Added 2 new spells, 'curse item' and 'bless item', that work on marked item. Also changed the spell name matching logic, to always return if a perfect match is found. include/spells.h sproto.h server/spell_effect.c spell_util.c Ryo 2007-01-15 types/{dummy.c, Makefile.in, Makefile.am}, include/typesproto.h: Remove dummy file now that it's no longer necessary Alex Schultz 2007-01-14 Implement feature request #817585: altars don't take group of same logical item. Checking logic is now modified to take into account other items apart last dropped item. This is mainly done by changing check_altar_sacrifice(). common/button.c: improve check_altar_sacrifice(). include/libproto.h: update prototype for check_altar_sacrifice(). server/apply.c: don't remove items, we don't care what we should remove. ---- Implement feature request #778211: allow avatars and holy servants to be random. Changed determine_holy_arch to return one random item instead of first matching one. server/gods.c ---- Rename 'new_save_map' to 'save_map'. common/map.c crossedit/Edit.c include/libproto.h random_maps/standalone.c server/c_wiz.c server.c swap.c weather.c ---- common/map.c: fix memory leak. server/skill_util.c: give a dummy name if skill doesn't have it. Avoids crashing later on :) Ryo 2007-01-14 Apply long standing patch #1382884: change to player wraith race courtesy Anton Oussik. lib/attackmess: new attack messages for feeding. lib/treasures: give feeding skill to wraith. server/attack.c: feeding skill, life stealing. server/skill_util.c: new skill. server/player.c: wraiths don't regenerate hp. server/apply.c: wraiths don't get anything by eating food. include/libproto.h: new functions. include/attack.h: new attack message type. include/skills.h: new skill. common/player.c: wraith-related functions. Ryo 2007-01-14 Apply patch #1631685: Monster flag set on all monster parts courtesy Aaron Baugher. common/arch.c Ryo 2007-01-14 Object types refactoring: TRIGGER. See types ChangeLog for details. ---- Object types refactoring: TRANSPORT, BOOK, POWER_CRYSTAL, BOOK. See types ChangeLog for details. Modified files: include/ob_methods.h include/ob_types.h server/ob_methods.c server/ob_types.c server/apply.c server/c_object.c server/time.c Added files: types/transport/transport.c types/power_crystal/power_crystal.c types/book/book.c types/item_transformer/item_transformer.c types/legacy/apply.c types/legacy/legacy_describe.c types/legacy/process.c types/common/describe.c Removed files: server/egoitem.c Yann Chachkoff 2007-01-14 New util: mapper.c, which generates HTML pages to browse maps. See the file itself for information and such. ---- Moved structures outside a .c so other programs can access it. include/image.h: new file, client-side image structures. socket/image.c: moved data to include. ---- utils/mapper.c: new program, map browser generator. utils/templates/*.template: template files for mapper. Ryo 2007-01-13 Some Win32 fixes: binmode for Perl, binary mode for opened files. common/porting.c lib/adm/collect_images.pl lib/collect.pl.in socket/item.c: variables should be declared at function start. Ryo 2007-01-13 server/gods.c: Clean up follower_remove_given_items() Alex Schultz 2007-01-10 Win32 compilation fixes: variables should be declared at function start. socket/item.c server/gods.c resurrection.c Ryo 2007-01-09 New plugin: 'cflogger', which logs things to a sqlite3 database. Warning: the database size may grow a lot, you'll have to check manually. Logged events: * players join/leave/creation/quit * map load/unload/reset/enter/leave * kills, whenever a player is concerned * ingame/real time links Note that the plugin is not yet part of the autobuild process. Added files: cflogger/include/cflogger.h cflogger_proto.h Makefile.[am|in] cflogger/cflogger.c Makefile.[am|in] Ryo 2007-01-07 common/loader.l: Remove call to yylex_destroy() - at least on my linux box, I get an unresolved symbol during link time (maybe different versions of flex?) MSW 2007-01-04 Make some commands DM only, and not visible to players. server/commands.c Ryo 2007-01-04 server/gods.c: Apply patch #1627442 by Aaron Baugher, to fix bug #1551735. Works by using a key_value of "divine_giver_name" to objects that are given by a god. Alex Schultz 2007-01-04 Fix a logic mistake: code should be called unless cursed and good only, not if good only set (since t->item is never NULL). This would make empty spellbooks and crash. common/treasure.c Ryo 2007-01-03 include/book.h: Doxygenify header file and add licence. No functional changes. Alex Schultz 2007-01-03 Check len of client-sent commands. socket/item.c: a few checks. Ryo 2007-01-02 Implement feature request #1443844: Lock in 1.9.0 is ethernal. Added new 'lock' command, locking/unlocking specified item. include/sproto.h server/c_object.c commands.c Ryo 2007-01-02 Massive doxygenation of code. Reformat indentation. No functional change. include/artifact.h Ryo 2007-01-02 Implement feature request #1555532: Disallow enchanting armour/weapons while wearing/wielding it. Weapon/armour will be unequipped (unless cursed) if that would mean the player can't wear it anymore. server/apply.c Ryo 2007-01-02 Fixed some mistakes in the alchemical formulae lib/formulae Yann Chachkoff 2007-01-02 Removed unused defines, documentation fixes, no functional change. common/treasure.c: add some links for GT_xxx. include/treasure.h: add anchor 'GT_xxx'. Ryo 2007-01-01 server/player.c: fix wrong message displayed. Make sp test coherent with draining for rod/horn. Ryo 2007-01-01 Implement feature request #656191: Add blessings and curses to scrolls. ---- New flags: 'blessed', 'known_blessed'. common/item.c common/loader.l: new flag, and fix mistake on array size. include/define.h ---- Randomly set blessed/cursed on scrolls and spellbooks. common/treasure.c ---- Blessed/cursed/damned effect for scrolls and books. server/apply.c: effects, and also there should be a failure even if settings is no. ---- server/spell_effect.c: add a check to be done. Ryo 2007-01-01 Implement feature request #1536177: "Orc Knuckle" requires no dice. If there is an "dice" archetype in server arches, this command will require the player to have at least 4 dice to play. There is a 5% chance to lose one dice at each play. Dice can be made through alchemy (finding the recipe is left as an exercise to the player). Note that the check is on the name 'dice', so you can have multiple archetypes for that name, they'll be all taken into account. server/c_chat.c: change command. lib/formulae: add recipe. ---- ChangeLog: fix date info (it's not american, but ISO) Ryo 2007-01-01 Corrected garbage being displayed when examining an object, caused by an uninitialized buffer. server/c_object.c Yann Chachkoff 2007-01-01 server/{player.c, gods.c, apply.c, monster.c}: Fix bug #1543130 and make handling of can_use_armour and can_use_shield consistant. Alex Schultz 2006-12-31 Some memory fixes. common/arch.c: split code to make free_arch(). common/exp.c: free levels memory. common/init.c: add free_globals(). common/loader.l: add free_loader() to clean allocated memory. common/object.c: call free_arch() instead of free() to free temporary archetype. common/treasure.c: clear correctly the artifacts. include/libproto.h: new functions. include/sproto.h: new functions. server/init.c: call cleanup() instead of exit() when doing dumps. Free some memory. server/server.c: call some free_xxx() stuff. server/weather.c: add free_weather(). ---- Use const char* instead of char* common/apply.c gods.c Ryo 2006-12-31 Implemented proposal #1497089: fix for some random items. lib/artifacts, lib/formulae Changed the title of several treasures from Gaea to Vitality, and from Ruggilli to Blazing Fires, to match better the personality of those gods. Yann Chachkoff 2006-12-30 Some memory fixes. common/arch.c: arch should free after object, since free_object2() checks the archetype. common/loader.l: when doing line mode (from artifact loading), we should clear the buffer, else it is lost, resulting in 16kb memory leak (not nice!). common/object.c: warning about archetype needed for free_object2(). Ryo 2006-12-30 Fix for bug #1539120: talisman of Evocation grants wrong skill. Changed the name of the "Talisman of Evocation" artifact to "Talisman of Creation", so there is no confusion with the skill name. Last part of the fix for bug #1612838 common/treasure.c: Changed the formula used to compute the item_power of a generated artifact treasure. Yann Chachkoff 2006-12-30 Partial fix for bug #1612838: Problem with item_power code server/apply.c Now armours get +3*magic increase to their item_power field. Corrected stupid mistakes made when fixing bug #1528525 Yann Chachkoff 2006-12-30 Another Win32 compilation fix. common/player.c: variable definition is a function start. Ryo 2006-12-30 Fix for bug #1573294: Flesh displays speed +x and gives lot identification exp. common/item.c Patch initially submitted by Aaron Baugher Yann Chachkoff 2006-12-30 Fix for bug #1528525: Sometimes "bad" initial items are created. common/treasure.c Changed the behavior of create_one_treasure, that will now not generate a treasure whose base object is cursed or damned when the GT_ONLY_GOOD flag is set. Yann Chachkoff 2006-12-30 Fix for Win32 compilation. plugins/common/hashtable.c: missing #include for Windows. Ryo 2009-12-29 common/c_misc.c lib/settings Fix for bug #1622609: Specific flags no longer displayed with 'who command Replaced [] by <> in the who output command, as [] are reserved for the various formatting tags. Yann Chachkoff 2006-12-29 Massive doxygenation of code. Reformat indentation. No functional change. common/object.c path.c player.c porting.c quest.c readable.c recipe.c re-cmp.c region.c shstr.c time.c treasure.c utils.c doc/Developers/programming_guide: add rule for function comments. Ryo 2006-12-29 Fix previous broken commit. common/arch.c Massive doxygenation of code. Reformat indentation. No functional change. common/friend.c glue.c holy.c image.c info.c init.c item.c links.c living.c loader.l logger.c los.c map.c Ryo 2006-12-28 Massive doxygenation of code. Reformat indentation. No functional change. Doxyfile: extract also static and private stuff. common/anim.c arch.c button.c exp.c Ryo 2006-12-27 Fix for bug #1622575: Range attack switches to punching on contact, applied patch courtesy Aaron Baugher server/skill_util.c: use good flag to not switch. Ryo 2006-12-27 Fix some crashes observed on metalforge: common/treasure.c: When generating flesh items from custom monsters, update other_arch of the flesh item to point back to the original base archetype, not the custom archetype. random_maps/treasure.c: Create the key object before we reference it in find_first_free_spot() MSW 2006-12-26 Make method/property coherent for Python objects. plugins/cfpython/cfpython_archetype.c cfpython_party.c cfpython_region.c plugins/cfpython/include/cfpython_archetype_private.h cfpython_party_private.h cfpython_region_private.h Ryo 2006-12-26 Implemented FR #1539153: Blessed weapons should have an owner. Added option personalized_blessings to activate that feature. server/apply.c server/gods.c server/init.c include/global.h Yann Chachkoff 2006-12-26 Fix for bug #1527978: summon fog spell is somewhat broken. Summon now occurs either randomly around (when casting on oneself), or around, either clockwise or anticlockwise. server/pets.c Ryo 2006-12-26 Implement feature request #1617446 :add "glow radius" to perceive self server/spell_effect.c Ryo 2006-12-26 Add "Crossfire.Object.LastEat. More return fixes. plugins/cfpython/include/cfpython_object_private.h: add "Subtype". plugins/cfpython/cfpython_object.c: add "Subtype". server/plugins.c: fix wrong return values. Ryo 2006-12-26 Fix wrong return values for plugin calls. Add "Crossfire.Object.Subtype" property. plugins/cfpython/include/cfpython_object_private.h: add "Subtype". plugins/cfpython/cfpython_object.c: add "Subtype". server/plugins.c: fix wrong return values. Ryo 2006-12-26 types/example.c: Add quick example file. Alex Schultz 2006-12-26 server/player.c: Added a supplementary check on attacked objects, so that an alive object that has its FLAG_MONSTER set is always a preferred target over an alive object without that flag. Fix for the bug mentioned in #1551404 server/skill_util.c: Corrected the flags passed to change_exp when failing to properly write a spell scroll, which resulted in loss of experience in the wrong skill. Fix for the bug mentioned in #1530000 Yann Chachkoff 2006-12-26 lib/{Makefile.in,adm/map_info,collect.pl.in,Makefile.am}: ignore .svn rather than CVS. Andreas Kirschbaum 2006-12-24 server/c_chat.c: In command_tell() do not crash when extendedTextInfos are enabled. Andreas Kirschbaum 2006-12-22 common/loader.l: Fix some problems related to curse spell monster handling. Specifically, coordinates of custom monsters was not being saved (always set to 0,0), which caused crashes for multipart monsters upon load. Also, speed was being set to 0, resulting in customized monsters not having any speed. MSW 2006-12-21 server/shop.c: Remove unused switch statement. Alex Schultz 2006-12-17 No change, just remove unused code in #if 0 server/commands.c server/shop.c Ryo 2006-12-17 Fix a crash due to non-checking of parameters. socket/item.c Ryo 2006-12-13 Tentative fix for bug #1551398: Curse spell breaks customized monsters. The server will now create a "temporary" archetype when loading a customized monster. This archetype will have the same name, but not be part of regular archetype list. It'll be removed when last object using it is removed. A new field "reference_count" is added to archetype structure, to store how many objects reference that temporary archetype (think of item duplication with customized archetype). This fix has been roughly tested, but could certainly use more tests. Modified files: common/loader.l: handle customized monsters common/object.c: increment reference_count if copying a temporary archetype. Decrement it when freeing an object, and free archetype if needed common/treasure.c: add "artifact_init" to signal start/end of artifact loading, required for temporary archetypes handling. include/object.h: new "reference_count" field Ryo 2006-12-09 Tentative fix for bugs #1605033: Random map gets blocked #1522796: Random map, locked door(s) and no key Random map generator will try harder to put keys, and not lock if no spot found (can happen if chest is surrounded by locked doors blocking the corridor). Modified files: random_maps/rproto.h random_maps/treasures.c Ryo 2006-12-03 Cosmetic fixes only, before bugfix. random_maps/treasures.c: fix indentation. Ryo 2006-12-03 Fix for bug #1556723: Broken Show invisible - scrolls, wands, staves and rods server/spell_effect.c: use the item's level, and not computed level, to see if should be shown. Ryo 2006-12-03 Fix for bug #1569017: Healing gives grace cost to target. Information sent to client is now stored in a special structure, to not conflict with spell fields. Note that this doesn't fix player files. common/player.c: free spell information, new function for spell state. include/libproto.h: new function. include/player.h: new structure, new field in player structure. socket/request.c: use spell information instead of spell fields. Ryo 2006-12-02 Merge patch #1558073: newpickup flesh courtesy bencha include/define.h server/c_object.c player.c Ryo 2006-11-29 Implement feature request #1555887: Thief player - should have bargaining as default skill lib/treasures: add skill to class items. Ryo 2006-11-26 Fix bug #1539207: "Max speed" attribute does not work common/living.c: armor's max_speed should always be taken into account. Ryo 2006-11-26 Fix indentation and comments, cosmetic changes only. common/living.c server/pets.c: Ryo 2006-11-26 Fix bug #1599307: server/shop.c: In pay_from_container() handle non-standard MONEY objects when buying items. Andreas Kirschbaum 2006-11-19 socket/info.c: In draw_ext_info() do not crash for out of memory. Andreas Kirschbaum 2006-11-19 server/rune.c: If skill is NULL in dispel_rune(), just return as server will otherwise crash in trap_disarm() server/spell_util.c: Fix bug in that runes that hold other spells (glyphs, firetraps, magic runes, etc) do not find a skill object, and thus player doesn't get exp. Instead, for runes, try to find owner, and then the relevant skill object. MSW 2006-11-18 Documentation tweaks. include/object.h: doxygen-like comments. Doxyfile: created with some defaults. Ryo 2006-11-18 Rename fix_player to fix_object, since it works for other items. common/item.c living.c object.c include/define.h libproto.h skills.h server/apply.c attack.c c_misc.c c_object.c c_wiz.c disease.c gods.c login.c player.c plugins.c shop.c skills.c skill_util.c spell_attack.c spell_effect.c time.c Ryo 2006-11-18 Fix bug #598649: Building apartments use multiple materials per tile server/build_map.c: don't redo same floor. ---- socket/info.c: fix spurious logic, fix indent. Ryo 2006-11-18 Tentative fix for bug #1519089: item cannot afford in container can be taken from store. server/shop.c: do a real recursion in can_pay. Ryo 2006-11-16 include\{treasure.h path.h face.h commands.h win32.h shstr.h timers.h config.h funcpoint.h object.h loader.h attack.h race.h newserver.h re-cmp.h living.h book.h plugproto.h player.h artifact.h material.h plugin.h spellist.h skills.h spells.h recipe.h god.h sounds.h map.h tod.h newclient.h}: Clean up anti-double-include mechanisms. ---- include/arch.h: Removing unused file. include/Makefile.am: Remove reference to arch.h common/arch.c: Remove reference to arch.h Alex Schultz 2006-11-14 Fix bug #1573296: arena : spells with "target" doesn't works server/spell_util.c: spell_find_dir should consider players when on battleground. ---- Fix bug #1594696: Altar created with creator - consecration server/time.c: copy creator's level, as per behaviour before function rewrite. Ryo 2006-11-13 doc/Developers/protocol: Add documentation about exp_table requestinfo addition socket/loop.c: Add call to send_exp_table() in request_info_cmd() socket/request.c: Add send_exp_table() to use a replyinfo exp_table to send data to client. MSW 2006-11-03 socket/loop.c: Fix replyinfo, in that it was using incorrect length parameter when replying to unsupported requests. MSW 2006-11-02 Fix for bug #1547517: DM issue with containers server/apply.c: move_apply shouldn't exit if opened container. Ryo 2006-10-29 Update code so everything uses draw_ext_info(), and remove new_draw_info(). For the most part, everything is just a simple update of function name/ parameters. In some places, there was some other cleanup, like inconsistent whitespace being made consistent. A few places were changed to use the varargs version, so no longer needed a local snprintf. Many places where used to remove the hard formatting (combine several calls into one so that the client can do the word wrap/formatting, since assuming the width of the client never was really accurate) Dead code was removed, rather than being updated. For old clients, it will continue to use the old protocol commands, so this doesn't break client compatibility in any way. -- Files affected: common/arch.c, common/button.c, common/living.c, common/los.c. common/map.c, common/quest.cm common/time.c, common/treasure.c crossedit/stubs.c random_maps/standalone.c include/funcpoint.h, include/newclient.h, include/sockproto.h server/alchemy.c, server/apply.c, server/attack.c, server/build_map.c, server/c_chat.c, server/c_wiz.c, server/c_new.c, server/c_object.c, server/c_range.c, server/c_party.c, server/commands.c, server/disease.c, server/gods.c, server/hiscore.c, server/login.c, server/monster.c, server/move.c, server/pets.c, server/player.c, server/plugins.c server/resurrection.c, server/rune.c, server/server.c, server/skill_util.c, server/skills.c, server/spell_attack.c, server/spell_effect.c, server/spell_util.c, server/swamp.c, server/time.c socket/info.c, socket/item.c, socket/request.c test/unit/common/stubs_common.c test/unit/crossedit/stubs_crossedit.c, test/unit/random_maps/stubs_random.c -- MSW 2006-10-28 Implement feature request #1551406: Add player's name to disease symptoms server/disease.c: add player's name. Ryo 2006-10-28 /plugins/cfpython/{cfpython.c, cfpython_map.c, cfpython_object.c}: Remove redundent checks in values passed to Crossfire_Foobar_wrap() functions. Alex Schultz 2006-10-27 Fix for bug #1573381 (death attacks does works on skull) server/attack.c: check for undead when no slaying set for hitter in deathstrike_player. Ryo 2006-10-22 Fix for bug #1553636 (Crashbug: reset/swaped map after use of "overlay_save"). Make command coherent with ingame command (command_overlay_save since overlay_save). Add 'overlay_reset' command to reset a saved overlay. common/map.c: if flag is 2, map is still valid (non destructive save). include/sproto.h: rename function, new function. server/c_wiz.c: no need to save and reload the map for overlay. Rename function. New function. server/commands.c: rename function, new function. Ryo 2006-10-22 common/loader.l: Make it so that long msg/endmsg won't overflow temp buffer by using safe_strcat. Will result in long messages being truncated, but better than crashes. server/pets.c: Check for existance of object existance after call to follow_owner() in remove_all_pets(). Can be cases where put is killed when moving to new map. MSW 2006-10-18 server/apply.c: If the captain of a transport exits the transport, make the next player on the transport the captain. server/server.c: Like change to apply.c to make player another player captain if one leaves the game. But in addition, in all cases, we need to clean up the transport->contr pointer, which will otherwise cause crashes. MSW 2006-10-12 common/readable.c: Rewrite god_info_msg() - a buffer overflow crash was seen on metalforge, and the old code had lots of dangerous string operations (non safe strcats, sprintf with overlapping buffers). No code is functionally equivalant, just uses safe string funtions. MSW 2006-10-12 doc/Developers/objects updated to better describe @match use in objects. Many objects contain useless case handling keys like @match Hello|hello because mapmakers do not know how @match works. Also add mention of the limited regular expression support that applies to match keys. Kevin R. Bulgrien 2006-10-08 Make converters inside shops work again. --- server/c_object.c: Sell item after dropping because converters do not accept unpaid items. Andreas Kirschbaum 2006-10-08 Fix bug where in players could unequip cursed weapons by switching to a hand to hand skill (punching, karate, etc). -- include/define.h: Add AP_NOPRINT flag. server/apply.c: Modify the apply_special() code to take AP_NOPRINT option, which as implies, causes messages not to be printed. Used in change to skill_util.c, since the code thre prints better message about uequipping of weapon. server/skill_util.c: Do some cleanup of unused vars in do_skill(). Modify attack_hth() to call apply_special() to unequip weapon (that takes care of checking cursed status, etc). -- MSW 2006-10-05 server/rune.c: Fix mistake in revision 4979, causing get_rangevector to be called with an uninitialized env. Alex Schultz 2006-10-04 server/c_misc.c: Fix incorrect use of FMT64 in commant_statistics(). Alex Schultz 2006-10-02 server/monster.c: Revert message formatting of NPC responses back to the two-line format. Fix a possible buffer overflow when players talk to certain NPCs. Andreas Kirschbaum 2006-10-02 server/rune.c: Cleanup spring_trap() and clean some questionable logic. server/attack.c: Cause spell traps to be triggered when containers with traps are destroyed by a spell effect. Alex Schultz 2006-09-25 doc/Makefile.am, server/Makefile.am, utils/crossloop.in, utils/crossloop.pl.in, utils/crossloop.tmpl.in, utils/crossloop.web.in, utils/crossloop.pl.tmpl.in, doc/crossfire-server.man: Rename crossfire binary to crossfire-server. Make changes to account for that in crossloop and the man page. Alex Schultz 2006-09-20 server/plugins.c: Change cfapi_object_say() to use either command_say() or npc_say() depending on if the object is a player. Fixes bug #1534889. server/monster.c, include/sproto: Move code for NPCs to talk from the code that handles NPC replies into npc_say(). server/spell_effect.c: Implement proposed alchemy changes from the mailing list. Make value of nuggets given range from 5% to 40%. Depends on archetype changes to the alchemy spell and nuggets. (Without archetype changes will give obscenely low value.) server/spell_util.c, include/sproto.h: Make min_casting_level() non-static. Alex Schultz 2006-09-16 server/alchemy.c: Make shadow alchemy and random alchemy failures ignore the 'cauldron' type being used. Fixes bug #1551385. Alex Schultz 2006-09-15 lib/README: Large update to the ancient readme file describing the files in lib. Alex Schultz 2006-09-12 common/treasure.c, include/treasure.h: Add MAX_SPELLITEM_LEVEL set to 110. include/living.h: Set MAXLEVEL to 115. doc/settings: Document create_home_portals outside of comments in lib/settings. server/player.c: Comment cleanup. No code changes. server/apply.c: Add check to auto-dropping of applied transports to not drop in shops. common/treasure.c: Make fix_flesh_item only run when the donor is a monster. Fixes bug #1555569. Alex Schultz 2006-09-10 server/apply.c, server/c_object.c, server/player.c: Use is_in_shop() to check if it's in a a shop. server/shop.c, include/sproto.h: Add is_in_shop() and coords_in_shop() based on addition of is_in_shop() in cf+ by elmex. server/apply.c: When applying a transport which is in an inventory, drop the transport. server/c_object.c, include/sproto.h: Make drop_object return a pointer to the dropped object, NULL otherwise. Alex Schultz 2006-09-09 common/treasure.c: add exp and other_arch to flesh; more info about the original monster, to be used in spells or scripts. Lalo Martins 2006-09-10 doc/Developers/protocol: Fix off by one on how many layers are currently defined. server/swap.c: When loading up temp maps, make sure timeout is set to 0 - fixes bug 1539203. MSW 2006-09-06 lib/collect.pl.in: Explicitly ignore backup files (*~), just because they really annoy me. Lalo Martins 2006-09-06 server/gods.c: Make get_god_for_race() safe for gods of no race. Alex Schultz 2006-09-06 server/shop.c: Make (real) sure shops won't give amber/jade Lalo Martins 2006-09-06 Apply patch #551467 (type mismatch in surround_flag3() can cause SIGSEGV) courtesy Mark Kidder. random_maps/rproto.h wall.c Ryo 2006-09-04 Bulk of this change is updating some files to use draw_ext_info() - all future code should use this, since there is no real reason not to and it provides additional features. One notable change - reversed the order of the new and old formats in draw_ext_info_format() - the order was different than that of draw_ext_info(), which leads to confusion. draw_ext_info_format() wasn't used in many places, so easier to change that than all the draw_ext_info() calls. Only another 1200 new_draw_info calls left in the server. -- doc/mediaTags: Fix some typos, clarify some behaviour (the way it works now so that there will not be confusion in the future). include/define.h: Remove MSG_ tags - moved to newclient.h include/newclient.h: Synchronize with client version. Add MSG_ defines include/newserver.h: Move some defines from here to newclient.h server/apply.c: Reverse format parameters to draw_ext_info_format() calls. server/c_misc.c: Rewrite to use draw_ext_info{_format} - this allows nice formatting of tables, etc. Also general style cleanups, clarify some messages. in help_topics(), don't do linewrap - let the client handle it. remove bug_report() function - no longer used. Remove explore_mode() - wasn't used. Move command_style_map_info() to c_wiz.c since it is a wiz only command. server/c_wiz.c: As per above, move command_style_map_info() to this file since it is a wiz command. server/player.c: Reverse format parameters to draw_ext_info_format() calls. server/shop.c: Update to use draw_ext_info{_format} instead of new_draw_info() socket/info.c: Reverse format parameters in draw_ext_info_format(). Update va_start() to use new last parameter. Remove call to strip_media() if the client supports the tag - that should only be used if the client does not support the tag. socket/request.c: remove commented out MSG_TYPE values. MSW 2006-09-03 plugins/common/hashtable.c: make Win32 define of uintptr_t more correct. Alex Schultz 2006-09-03 plugins/common/hashtable.c: fix Win32 compilation. server/spell_effect.c: missing return value. ---- Potential fix for bug #1551307 (crash in python plugin). If event_destroy is not found, set del_event to NULL. And don't dare you call remove_ob on it! :) plugins/cfpython/cfpython_object.c ---- Fix for bug #1551371 (No-magic prevents monsters from casting spells) server/skill_util.c: ignore no_spell/no_magic for monsters. ---- Fix for bug #1551386 (Alchemy with unpaid items). include/sproto.h: new function declaration. server/alchemy.c: check for unpaid items/cauldrons in new function. server/skill_util.c: move alchemy code to other function. Ryo 2006-09-03 server/attack.c: Store away victim_map in hit_with_arrow() - what could otherwise happen is that victim is a player, and killed and ends up on new map, so that victim->map points at the wrong map. MSW 2006-09-02 server/swamp.c: swamp will now kill players with woodsman, but slower than players without that skill. Feature request #1539125 by Andreas Kirschbaum. socket/lowlevel.c: apply patch #1550716 (Frequent crashes after client disconnects) courtesy Mark Kidder Ryo 2006-09-02 server/attack.c: Move kill_player() after we set up the pl->killer string. Needed just so right message is on grave stone - also prevents crashes, as if the hitter is poison or disease, kill_player() will remove those. MSW 2006-08-30 lib/attackmess: Fix missing space in a 'type 17' attack message. Alex Schultz 2006-08-30 server/player.c: Fix logic error in fire_bow and avoid unnecessary messages. Fixes bug #1547699. Alex Schultz 2006-08-28 Add plugin access to move fields. Add sint64 type to plugin. 'AddExp' wrapper. include/plugin.h plugins/common/plugin_common.c plugins/common/include/plugin_common.h server/plugins.c ----- Add 'object->env' and move_xxx wrappers to Object. plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h ----- Add constants for many things. Note that they aren't real constants and can be changed from a Python script. But it's the case for everything, so... plugins/cfpython/cfpython.c Ryo 2006-08-27 Removed obsolete 'event' field from object struct, and associated functions. common/living.c common/loader.[cl] common/object.c common/treasure.c include/libproto.h include/object.h server/apply.c test/unit/common/check_arch.c Ryo 2006-08-26 server/weather.c: change spurious logic in weather_avoid function. Ryo 2006-08-26 Hopefully fix weather-related bug. common/object.c: tentatively fix insert_ob_in_map weird behaviour when both INS_MAP_LOAD and INS_ABOVE_FLOOR_ONLY are set. Ryo 2006-08-26 common/object.c, server/time.c: Make generators work properly with multi-tile objects. Fixes bugs #1543220 and #1546835 and also allows generators themself to be multi-tile. Alex Schultz 2006-08-25 check-fragment.am: Add some quotes to avoid problems with spaces appearing in macro expansions. Raphaël Quinet 2006-08-25 configure, aclocal.m4, utils/config.guess, utils/config.sub, utils/ltmain.sh, include/autoconf.h.in, */Makefile.in: regenerated using slightly newer versions of libtoolize, aclocal, automake and autoconf. Raphaël Quinet 2006-08-25 configure.ac: add option to disable unit tests, fix incorrect usage of AC_ARG_ENABLE for dmalloc, fix some typos. Raphaël Quinet 2006-08-25 common/map.c: static buffers are evil. This resulted in name weirdness, and strange results with overlays. Ryo 2006-08-25 server/server.c: fix a weird name change. Basically, function path_combine_and_normalize was called twice while first result was still in use, resulting in weird names. Ryo 2006-08-23 Fix for bug #1528636 (Invisible player disappears from map view). socket/request.c: special case for view's center. Ryo 2006-08-22 Fix/improve login procedure such that if a player is trying to log in with the name & correct password of character already on server, terminate old connection and let them log in. --- server/login.c: Remove name check for players on server in check_name(). Make wrong_password() to handle error message handling for wrong password In check_login(), iterate over players on system to see if there is a match - if mismatched password, print error. If correct password, terminate old connection. Move wrong password logic from check_login() to wrong_password(). MSW 2006-08-21 server/attack.c: Call kill_player() from the kill_object() code. Fixes bug #1539192. Alex Schultz 2006-08-21 server/spell_effect.c: Make counterspell not effect permenant spell effects. Fixes bug #1539220. lib/adm/getfaces.pl, lib/adm/README: Add 'getfaces' script that I had on the tracker and forgot about. Alex Schultz 2006-08-20 Fix timers not working properly and potentially crashing. include/timers.h: use tag instead of pointer to avoid crashes. server/init.c: init timers. server/timers.c: wrong check for EVENT_TIMER. ----- Add timers to functions a plugin can call. include/sproto.h: new functions. server/plugins.c: callbacks to timers. ----- Add Python wrappers to timer, Object.CreateTimer(delay,mode) and Crossfire.DestroyTimer(id) plugins/cfpython/cfpython.c plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h plugins/common/plugin_common.c plugins/common/include/plugin_common.h Ryo 2006-08-20 common/object.c: Scatter objects dropped from a multi-tile object being freed. Fixes bug #1542884 server/c_wiz.c: Make DM 'free' command safe on multi-tile objects. Alex Schultz 2006-08-19 Fix for bug #1540158 (Broken spells - Face of Death) server/attack.c: death attack always kills, no escape from it. ----- Fix for bug #1460251 (Big monsters generated by generators broken). The generators didn't correctly create the other monster parts. common/map.c: move stuff out of link_multipart_objects to object.c common/object.c: add fix_multipart_object function, taken from link_multipart_objects include/libproto.h: new function. server/time.c: call new function when adding big monster. ----- Fix for bug #1523571 (Diseases work only on "head" part). server/spell_attack.c: the "more" part doesn't always have all the right flags, so get head before testing. ----- common/object.c: add "more", "head" and "env" values when dumping an object. server/spell_util.c: DMs can cast denied spells. Ryo 2006-08-19 Recollected archetypes in order to integrate fix for bug #1530006: lib/smooth, lib/faces, lib/bmaps.paths, lib/bmaps, lib/archetypes, lib/animations, lib/crossfire.1, lib/crossfire.0, lib/treasures.bld Raphaël Quinet 2006-08-18 Added a plugin function to get time. Add Python wrapper. include/plugin.h sproto.h plugins/cfpython/cfpython.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Ryo 2006-08-15 common/map.c, include/plugin.h, plugins/cfpython/{cfpython.c, include/cfpython_map.h, include/cfpython_map_private.h}, server/plugins.c, server/server.c, server/swap.c: Add EVENT_MAPLOAD and EVENT_MAPUNLOAD, add support to cfpython. Modify EVENT_MAP* to send the map object (in place of the path for MAPRESET). Impliment wrapper invalidation for cfpython map wrapper objects. crossedit/stubs.c, include/funcpoint.h, random_maps/standalone.c, test/unit/common/stubs_common.c: Allow execute_global_event() to be called from common. Alex Schultz 2006-08-12 lib/artifacts: Add artifact descriptions, courtesy of Raphaël Quinet. Applies patch from tracker item #1538983 Alex Schultz 2006-08-12 server/c_object.c: Corrected a mistake in examine that would display the content of a message prefixed by @match to the player. Fix for the bug mentioned in #1539227 server/spell_effect.c, common/map.c, common/map.h: Added a field in the map structure to store the timestamp of the last original map loading, and modified the Town Portal spell so that it now cannot lead to a map that was marked before a reset, after a reset. Fix for bug #1539155 server/apply.c: changed the comparaison code between the weapon's name and the player's, so that a weapon created by "gro" cannot be used by "gros. Fix for bug #1539150 server/c_object.c: modifier command_take so it is less noisy about no_pick items when doing a "get all" request. Fix for bug #1539122 server/c_object.c: modified command_drop so it is less noisy about locked items when doing a "drop all" request. Fix for bug #1539121 server/pets.c: added filling of inventory for monsters magically created that didn't come from a player caster, and aren't golems. Fix for bug #1529980 server/spell_effect.c: fixed incorrect behavior of the create missile spell, that couldn't find a proper archetype when a bow or a crossbow was wielded. Fix for bug #1532403 Yann Chachkoff 2006-08-12 server/apply.c: keep converters from accepting unpaid items Lalo 2006-08-12 lib/addexp: update help text. server/c_wiz.c: update addexp's help text. Ryo 2006-08-11 server/c_wiz.c: fix create command with some artifact fun. Update player inventory if removing an item. Ryo 2006-08-10 server/apply.c: Tell the client the map has scrolled when applying transports. Fixes bug #1528565. Alex Schultz 2006-08-10 lib/regions, common/region.c: Move regions file to map files. server/player.c: Set default listen level to 10. Alex Schultz 2006-08-09 common/loader.l, include/object.h, include/plugin.h, server/plugins.c: Add no_save attribute. Prevents object from being saved to disk. Add plugin support for the attribute. plugins/cfpython/{cfpython.c, cfpython_object.c include/cfpython_object.h, include/cfpython_object_private.h}: Add cfpython support for no_save, and have cfpython "invalidate" object wrappers when the object is destroyed. Add "Exists" property to python object wrappers. Alex Schultz 2006-08-08 Feature request #1465397 (improved feedback in character creation for existing names). Made message more explicit. server/login.c Ryo 2006-08-08 Implement feature request #821645 (change password command). This introduces 3 new player states, "entering current password", "new password", "confirm new password". include/define.h: new states. include/player.h: add new_password field. include/sproto.h: new command prototype. server/c_misc.c: new command. server/commands.c: bind command. socket/request.c: handle new states. Ryo 2006-08-08 Implement feature request #1528641 (consecrate should change face of altar). This simply removes the altar, and add the god's altar. Note that the name of the altar should be altar_, which seems to be the case everywhere. server/spell_effect.c Ryo 2006-08-07 Tell player whether she's the transport's captain or not. server/apply.c Ryo 2006-08-07 Commit patch #1389033 (Large-value coins) courtesy Lalo Martins server/shop.c: accept jade & amber coins, never give'em back. Ryo 2006-08-07 Fix bug #1534727 (create_home_portals TRUE doesn't work) server/init.c: wrong variable changed. Ryo 2006-08-05 Committed patch #1389432 (Per-race HallOfSelection) courtesy Lalo Martins. Modified files: include/global.h common/init.c server/server.c player.c Rebuilt archetypes and treasures. Ryo 2006-08-05 plugins/cfpython/cfpython.c, plugins/cfpython/cfpython_object.c, plugins/cfpython/include/cfpython_object_private.h: Modify Crossfire_Object_wrap() to use the hash tables provided by hashtable.c to avoid creating more python wrapper objects than is needed. Alex Schultz 2006-07-29 common/object.c: fix bug #1526364 (stacking Royal Guards). Use find_free_spot to place dropped items if living. Also fix indent of function free_object2. server/c_object.c: fix bug #1529969 (shop floor not working in random maps). Ryo 2006-07-29 server/c_wiz.c: fix addexp not working on skills. server/time.c: don't crash if duplicator doesn't have other_arch set. Ryo 2006-07-28 plugins/common/hashtable.c, plugins/common/include/hashtable.h, plugins/common/Makefile.am, plugins/common/include/Makefile.am, plugins/cfpython/Makefile.am: Add hashtable.c, to add ptr-to-ptr hash tables for plugins to use. (Useful to use a cf object as a key for the table) plugins/cfpython/include/cfpython.h: Include compile.h which Python.h doesn't include on it's own in versions of python older than 2.4. include/plugin.h, common/object.c: Add EVENT_DESTROY, a local event triggered when an object is freed. include/funcpoint.h, crossedit/stubs.c, random_maps/standalone.c, test/unit/common/stubs_common.c: Allow execute_event to be called from common and add appropriate stubs. Alex Schultz 2006-07-28 common/item.c: In describe_item() correct capacity description of large (>1000 maxsp) Glowing Crystals. Andreas Kirschbaum 2006-07-28 plugins/cfpython/cfpython.c: Added compilePython() function to split the compiling of python bytecode from the execution of it. Add support for caching the bytecode for a fixed number of scripts (default of 16) to increase speed. Alex Schultz 2006-07-27 server/c_wiz.c: prevent a DM to reset a random map if (s)he is on that map. Workaround for bug #1528173. Yann Chachkoff 2006-07-26 server/c_wiz.c: call update_ob_speed if removed object is animated. server/spell_attack.c: stop generating swarm/bullet if player moved. This fixes bug #1528194. server/spell_util.c: don't report blocking if caster is not player. It then is a swarm spell or equivalent, so position is random, no need to warn. Ryo 2006-07-25 server/server.c: Select op->facing instead of op->direction in process_events for players and monsters as the direction reference for the face to display. Fix for bug #1528182. (*few* ! that's a lot of bugs ! :)) server/spell_util.c: Make the search for a friendly target for some spells also browse transports located in the square from which the spell was cast. This is a fix for bug #1528018 server/c_wiz.c: Prevents the use of reset on self-map while in a transport. Work-around for bug #1528172. server/skill_util.c: Make dragons prefer clawing over anything else as unarmed combat technique. Fix for bug #1528197 Yann Chachkoff 2006-07-25 common/treasure.c: Added explicit item_power calculation for generated items that got an item_power of 0 - should solve bug #1460354. Yann Chachkoff 2006-07-21 scommon/map.c: Add check to block_linked() to make sure things never block themself. server/spell_attack.c: Target the head of monsters diseases are cast at. Alex Schultz 2006-07-18 Fix player count reporting to the metaserver. It now excludes connections with not-yet-logged-in players and AFK/WIZ/BOT players. --- socket/metaserver.c: In metaserver_update() use the same conditions as for the who command. Andreas Kirschbaum 2006-07-16 server/spell_effect.c, include/global.h, common/init.c, server/init.c: Add setting "create_home_portals" which allows server admins to allow town portals to be created in apartments. Based on a patch by pippijn in the cf-ext project. lib/settings: Set default create_home_portals to FALSE Alex Schultz 2006-07-12 lib/regions: Fix typo in region "portjoseph". Bug #1518392 (Port Joseph region spelling inconsistent with map directory) by Kevin R. Bulgrien. Andreas Kirschbaum 2006-07-07 acinclude.m4, configure: Fix last fix which discarded any passed in CFLAGS or if that is set in the environment. MSW 2006-07-05 common/button.c: Fix for sourceforge bug common/button.c - harpsicord crashes client. The problem is that the trigger code presumed that the object would be animated, and blindly set teh face to the second animation frame. harpsicords are not animated, so this could amount to garbage. So add check for trigger objects to see if they are in fact animated before blindly setting the face. MSW 2006-07-05 server/daemon.c: Patch by wart, tracker 1489902 - open a file like /dev/null to then dup - this fixes -detach crash problem. Might be better to use some other file, but in theory, shouldn't be much going here, and I don't think we can safely use a file that is already opened by the server. MSW 2006-07-05 common/region.c: wrong order for memset call. Ryo 2006-07-04 common/object.c: revert my previous fix, it's actually a feature :) Ryo 2006-06-27 ------------------------------------------------------------------------------ Changes for 1.9.1: acinclude.m4, aclocal.m4, configure, configure.ac: Fix crossedit header detection - even when passed --with-x to configure and having all the files, it wouldn't find the headers because it didn't pass in the correct -I options for where they sit. Also, update for 1.9.1 release. MSW 2006-06-29 server/rune.c: Undo last patch - breaks summoning runes. server/skills.c: Change disarm logic - after first failure, don't continue to disarm traps (makes sense anyways - can really only disarm one thing at a time) - this fixes the problem that last change to rune.c tried to fix. MSW 2006-06-27 server/rune.c: Patch from schmorp - when dealing with traps, don't put them underneath the player when a disarm failure happens, instead, update the direction to hit the player - prevents a recursion problems causing hundreds of objects. MSW 2006-06-25 common/object.c: don't consider FLAG_INV_LOCKED for can_merge. Ryo 2006-06-24 common/object.c: in insert_ob_in_map() don't stop processing flying objects if the object also has floor set. This fixes crashes when an object is both flying and has floor set. MSW 2006-06-06 Add commands rules and news to display the rules/news files. --- include/sproto.h: Add prototypes for new commands. lib/help/{motd,news,rules}: Add help files. lib/Makefile.am: Add new help files. lib/Makefile.in: Rebuilt. server/c_misc: Add functions to implement the commands. server/commands: Add new commands to commands list. Andreas Kirschbaum 2006-06-06 Fix problem with create food when used on transports. Rather than put a specific check in the create food code, modify insert_ob_in_map to check to see of the passed in originator is on a transport, and if so, find out the right info - this probably fixes the same type of bug that happens from other areas of the code. common/object.c: Above change, as well as #if 0 out some unused functions. MSW 2006-06-04 Clean up some compiler warnings. Most of the changes are related to replaced %lld with FMT64 defines so that the format will be correct, no matter if the 64 bit type is a long, long long, or if this is windows. #if 0 out a bunch of code that isn't used. -- common/exp.c: Replaced lld with FMT64 common/holy.c: #if 0 out baptize_altar(). Add banner copyright at top of file. common/info.c, common/item.c, common/loader.l, common/loader.c, common/map.c: common/porting.c Replaced lld with FMT64 common/time.c: Replace a bunch of variables declared as longs to be uint32. Update various sprintf appropriately. include/global.h: Add FMT64 and FMT64U as appropriate for different systems. Change max_time to be a uint32 include/sockproto.h, include/sproto.h: rebuilt server/apply.c: #if 0 out monster_apply_special server/c_range.c: Add != 0 in assignment if statement - same meaning, clearer on intention and avoids compiler warning. server/c_wiz.c: Update command_kick() to take const char. Update command_speed() to operate properly based on max_time being a uint32. Update various lld to FMT64. Clarify ambiguous if/if/else statement in command_insert_into() server/commands.c: Add cast to command_kick for new function prototype. #if 0 out find_command(), parse_string(), parse_command() server/disease.c: #if 0 out find_disease(), reduce_symptoms() server/egoitem.c: #if 0 out create_artifact(). Add copyright at top of file. server/gods.c: #if 0 out get_god() server/hiscore.c: Replace lld with FMT64 server/login.c: #if 0 out create_savedir_if_needed() server/resurrection.c: Replace lld with FMT64. #if 0 out dead_character() and dead_player_exists() server/server.c: Remove info_keys() - hasn't been used in a long time. #if 0 out process_active_maps() server/skill_util.c: Replace lld with FMT64 server/spell_util.c: #if 0 out check_spell_effect() server/weather.c: #if 0 out feather_map(). Fix what I suspect is an error in worldmap_to_weathermap() to skip over starting slashes. socket/image.c: Add a fair number of char * casts to suppress warnings. socket/init.c: Change buflen in init_connection() to socklen_t to match function prototype. Add some char * casts. socket/loop.c: Add some char * casts. -- MSW 2006-06-04 Add a name 'dungeon_name' for random maps, and put it in the random key's name. This implements feature request #815622 (keys in random maps should note map they are from) https://sourceforge.net/tracker/index.php?func=detail&aid=815622&group_id=13833&atid=363833 random_maps/random_map.c: fix a memory leak. Add random name. random_maps/reader.[cl]: read 'dungeon_name'. Use strncpy instead of strcpy. random_maps/random_map.h: add new field, use a #define instead of hardcoded constant. Do not merge renamed items with differing custom names. --- common/object.c: In can_merge() check for differing custom_name field. server/c_object.c: In command_rename_item() try to merge the affected item. Andreas Kirschbaum 2006-06-02 Do not merge locked and unlocked items. --- common/object.c: In can_merge() do not ignore FLAG_INV_LOCKED anymore. socket/item.c: In lock_item_cmd() try to merge the affected item. Andreas Kirschbaum 2006-06-01 lib/artifacts: Fix typo to not anymore generate "boots of of steel". lib/artifacts: Fix typo to make bows of Sorig work. lib/archetypes, lib/treasures.bld: Rebuilt. Andreas Kirschbaum 2006-06-01 Various bug fixes, related to the new map display code. common/loader.c, common/loader.l: Add map_layer attribute so object can override what layer it should go on (fix for levitation boots). common/map.c: Add support for map_layer to override layering. Fix bug where if there were more objects than would fit on a layer, not all would be drawn (same object was duplicated onto multiple layers). common/object.c: Add check for ob->map_layer in can_merge() include/map.h: Add extern declaration for map_layer_name[] include/object.h: Add map_layer to object. socket/request.c: In map1 compatibility mode, make sure we always send the player. MSW 2006-05-29 server/monster.c: Only call animate_object() if object is animated - otherwise, animate_object() spews bunch of error about being called with non animated object. MSW 2006-05-29 Monsters now cannot anymore see through earthwalls/monsters. This restores the behavior to what it was before the new movement code. For players this basically means that monsters will not anymore cast spells though earthwalls or other monsters. --- server/player.c: In path_to_player() consider tiles with P_IS_ALIVE set as blocking. Andreas Kirschbaum 2006-05-27 Make attacking with melee in 'fire command work again. Now attacking with + works again. --- server/skill_util.c: In skill_attack() also attack if the destination tile has P_IS_ALIVE set. Andreas Kirschbaum 2006-05-27 Make swarm spells work again. These spells did not work anymore on tiles which had a move_block type set (for example cobblestones). --- server/spell_attack.c: In move_swarm_spell() remove check for blocked movement. This check was incorrect since it did check the SPELL object instead of the SPELL_EFFECT object. Also, this check is not necessary since it is also present in the called functions fire_xxx(). Andreas Kirschbaum 2006-05-25 Fix monster not changing direction when attacking adjacent object. server/monster.c: update facing/direction according to enemy. Ryo 2006-05-25 common/item.c: Skip some processing if NEW_MATERIAL_CODE is undefined. common/holy.c, include/libproto.h: Declare some functions as "static". Andreas Kirschbaum 2006-05-21 Make socket handling more robust. --- include/newclient.h: Split MAXSOCKBUF into MAXSOCKRECVBUF and MAXSOCKSENDBUF. Increase the receive buffer size to be able to handle all valid packets; decrease send buffer size to 10239 to not overflow the receive buffer of old clients. socket/{image.c,info.c,init.c,item.c,loop.c,lowlevel.c,request.c,sounds.c}: Use renamed constants. socket/image.c: In send_image_sums() prevent buffer overflows. Reject the command instead. socket/request.c: In send_skill_info() and send_spell_paths() prevent buffer overflows. Instead send only as much information as fits into the buffer. socket/loop.c: In handle_client() prevent possible array out-of-bounds access. Andreas Kirschbaum 2006-05-21 Added a 'cf_log' function for plugins. Replace printf in plugins with correct call. --- include/plugin.h: include required header for log level definitions. include/sproto.h: new function. plugins/cfanim/cfanim.c: replace printf with calls to cf_log. plugins/cfpython/cfpython.c: replace printf with calls to cf_log. plugins/cfpython/cfpython_map.c: replace printf with calls to cf_log. plugins/common/plugin_common.c: new cf_log function. plugins/common/include/plugin_common.h: new cf_log function. server/plugins.c: new hook. Ryo 2006-05-20 This adds a "bot" flag for players. Such players won't be counted when sending information to metaserver. To enable it, just send "bot 1" through the "setup" command. --- include/newserver.h: add new is_bot flag. lib/settings: add %b to default formats. server/c_misc.c: add %b to who options, for [BOT] flag. socket/init.c: init is_bot. socket/metaserver.c: don't count bots. socket/request.c: new "bot" setup command. Ryo 2006-05-20 This commit adds support for the map2 protocol command (10 layer map). This changes how the data is stored and sent to the client. This also implements the idea of client handling map animations, so adds some object flags so that the server knows if it should let the client handle animations or not. Support for the original map protocol command is removed. --- aclocal.m4: rebuilt configure.ac: Add checks for zlib.h, libz - not used right now, but will probably be used in the future, so no reason to remove it. common/loader.l: Add client_anim_sync, client_anim_random FLAGS. common/map.c: Add add_face_layer() to set face for a layer. Redo/simplify update_position to store faces away based on layering criteria. common/time.c: Replace long pticks with a uint32, since size of a long will vary, and we now send pticks to the client as a 32 bit value. crossedit/CrEdit.c: Update the draw logic based on the fact there are more layers now. crossedit/Edit.c: Comment out some code that probably should be fixed. Replace calls of SET_MAP_FACE with SET_MAP_FACE_OBJ doc/Developers/protocol: Updated with map2, tick protocol additions. Reorganize the parameters in the setup protocol command so they are now listed in alphabetical order. include/autoconf.h.in: Add HAVE_ZLIB_H define. include/define.h: Update for the FLAG_CLIENT_ANIM values. include/face.h: Remove MapLook structure - no longer used. include/global.h: change extern type for pticks from long to uint32 include/map.h: Change MAP_LAYERS to 10. Add definitions for what each map layer is. Remove GET/SET_MAP_FACE macro - no longer used, GET/SET_MAP_FACE_OBJ replaces it. Add GET_MAP_FACE_OBJS which returns pointer to all the object info for the space. Remove faces from MapSpace structure. include/newclient.h: Update with new defines used for map2 protocol command. include/newserver.h: Change type of faces in map_cell_struct to be uint16 to be consistent. Change 'count' to 'darkness' to more accurately describe what it represents. Add MAP2_COORD_OFFSET define. Add Map2Cmd to MapMode enum. Add map_scroll_x/y to socket structure so we send those as part of map2 command. Add tick field to socket structure to know if we should send tick data to the client. server/login.c: Remove extern long pticks declaration - declared in global.h - don't need to declare it again locally. socket/info.c: Rewrite magic map code to use GET_MAP_FACE_OBJ instead of GET_MAP_FACE macros. socket/init.c: Initialize new fields in socket structure to 0. socket/loop.c: If client wants tick data sent, send one each tick. socket/request.c: Add setup responses for tick, map2 requests. Remove some extra code in Map1a setup. Send error message to client if not using at least Map1 protocol level. Modify map_newmap_cmd() to clear scroll information when using Map2. Remove original (map0) protocol logic. Update map_clearcell() to clear all 10 layers. Replace MAX_LAYERS with MAP_LAYERS. Add add_head() to remove some of the complication from update_space(). Add code in draw_client_map1() to find which 3 layers to send to the client from the 10 we now have. Add map2_add_ob(), map2_delete_layer(), check_space_for_heads(), draw_client_map2() to handle map2 protocol. Add send_tick() - sends tick to client, but also forces flush of data to reduce lag. utils/config.guess.utils/config.sub,utils/ltmain.sh: rebuilt MSW 2006-05-15 Fix server crash when sending addspell command(s). --- socket/lowlevel.c: Do not abort if output buffer is completely filled. (Was off-by-one, so if addspell did fill the complete buffer, the server did detect an buffer-overflow error.) socket/request.c: Update comments. Andreas Kirschbaum 2006-05-13 server/spell_effect.c: Disallow town portal while in transports (caused map corruption, crashes and other nasty things) Alex Schultz 2006-05-12 Fix for bug #1473941 (damnation bug) server/apply.c: wrong parenthesis for cursed/damned logic Ryo 2006-05-05 Applied patch #1453869 (code-cleanup) courtesy Stefan Huehner (shuehner). Modified files for first patch: include/funcpoint.h sproto.h server/alchemy.c apply.c attack.c commands.c disease.c egoitem.c gods.c init.c login.c main.c monster.c move.c pets.c player.c resurrection.c rune.c skill_util.c skills.c spell_attack.c spell_effect.c spell_util.c swap.c time.c timers.c Modified files for second patch: crossedit/stubs.c include/sockproto.h random_maps/standalone.c socket/info.c item.c request.c sounds.c test/unit/common/stubs_common.c test/unit/random_maps/stubs_random.c Modified files for third and last patch: common/item.c include/libproto.h sproto.h server/c_chat.c c_object.c c_wiz.c daemon.c hiscore.c main.c shop.c Ryo 2006-05-05 Commit patch #1456016 courtesy schmorp.de development team. server/pets.c Add Map.Insert(object,x,y) and Player.CanPay( ) to Python plugin. include/sproto.h plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/include/cfpython_map_private.h plugins/cfpython/cfpython_object.c plugins/cfpython/cfpython_map.c plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c Ryo 2006-05-05 include/config.h: Increase Archtable to 8192, the new hashing algorithm works better with a table size that is a power of 2, and the current value is very close to being exceeded anyway. Suggested by Crossfire+ Development Team http://cf.schmorp.de Brendan Lally 2006-04-06 server/swamp.c: Use the object name for swamp messages. Allows custom swamp names to work better Alex Schultz 2006-04-04 Fix exploit with alchemy spell. This effectively removes the improvement implemented at 2006-03-07. --- server/spell_effect.c: Use query_cost() to determine value of nuggets. Andreas Kirschbaum 2006-03-22 Apply patch by Stefan Huehner: add const where appropriate. --- Affected files: include/sockproto.h, socket/{loop.c,lowlevel.c} Andreas Kirschbaum 2006-03-19 Use const when possible. Patch courtesy Stefan Huehner. common/item.c map.c porting.c readable.c shstr.c utils.c crossedit/Attr.c CrEdit.c include/global.h libproto.h random_maps/rproto.h treasure.c server/c_new.c commands.c Ryo 2006-03-18 Removed unused header file version.h. include/version.h: removed. include/win32.h: don't include that file. Ryo 2006-03-18 Add 'add_key' parameter to object.set_key for plugins. plugins/common/include/plugin_common.h plugins/common/plugin_common.c plugins/cfpython/cfpython_object.c server/plugins.c Ryo 2006-03-18 Massive code cleanup. Changed FunctionsInCamelCase to conform to conventions. Changed comments to doxygen syntax. Made function/variable/structure names more coherent. There shouldn't be any functional change. Modified files: common/anim.c image.c loader.[cl] object.c crossedit/xutil.c include/commands.h global.h libproto.h newserver.h object.h player.h sockproto.h /sproto.h plugins/cfpython/cfpython.c server/apply.c attack.c c_misc.c commands.c init.c main.c move.c player.c plugins.c spell_effect.c time.c socket/image.c info.c init.c item.c loop.c request.c Ryo 2006-03-18 Apply patch #1450408 (Improved hash table) by cf.schmorp.de development team. The new hash function seems to produce fewer collisions than the previous function. This especially holds for strings that share a common prefix: the old function did use only a small fraction of the available slots; the new function uses all slots with a fairly equal distribution. --- common/arch.c: Replace algorithmn implemented in hasharch(). Andreas Kirschbaum 2006-03-16 Apply patch #1439143 (code-cleanup: crossedit) by Stefan Huehner: Remove unused code, add static/const where appropriate. --- Affected files: crossedit/{App.c,App.h,Attr.c,CrEdit.c,CrFace.c,CrList.c,CrUtil.c,Defines.h}, crossedit/{Edit.c,Str.h,crossedit.c,png.c,proto.h,xutil.c,Cnv/Cnv.h}, crossedit/include/{Makefile.am,Makefile.in,util.h} Andreas Kirschbaum 2006-03-16 common/utils.c: apply patch #1445892 (transmute_materialname crash) courtesy the cf.schmorp.de development team. include/spellist.h: disable big unused arrays, legacy of spell code. server/c_object.c: merge find_best_apply_object_match and find_best_object_match which are really the same. server/init.c: fix memory leak. server/monster.c: fix a monster/scroll related crash, based on patch #1447242 by the cf.schmorp.de development team. server/player.c: fix monitor_spells not initalized (before InitConnection()). server/skills.c: fix merging bug with inscription. socket/init.c: fix monitor_spells not being initialized. Ryo 2006-03-14 Fix bug/exploit in setup command. We were strcat'ing back data provided by the client. --- socket/request.c: Modify SetUp() to use safe_strcat() - eliminates buffer overflow issues. Add some char* casts to spell/skill requestinfo to eliminate compiler warnings. Add IP address to log for incoming connections. MSW 2006-03-13 Fix possible exploit with shadow alchemy. Also improve the alchemy spell to yield more nuggets. --- server/shop.c: In query_cost() apply the hack (to multiply non-GEM/non-MONEY values by four) also if no player object is present. Andreas Kirschbaum 2006-03-07 Add settings permanent_experience_percentage, death_penalty_percentage and death_penalty_levels to the settings file. --- common/living.c: don't hardcode exp calculations common/init.c, include/config.h, lib/settings: set defaults for new values doc/settings: document new values include/global.h: change settings struct to hold the new values server/init.c: parse new values in the settings file. server/skill_util.c: reference new value Brendan Lally 2006-03-07 Apply modified parts of patch #1439490 (Fix in random map generation) by CF Development Team Schmorp.de . --- random_maps/exit.c: In place_exits() check for a valid exit path before dereferencing it. random_maps/treasure.c: In find_closest_monster() include monsters at map border. In find_enclosed_spot() prevent access to out of map tiles. Andreas Kirschbaum 2006-03-04 Apply patch #1436833 (Patch for forked lightning crash at map borders) by CF Development Team Schmorp.de . --- server/spell_attack.c: In forklightning() prevent access to out of map tiles. Andreas Kirschbaum 2006-03-04 common/loader.l: Prevent excess whitespace while saving objects. common/loader.c: Rebuilt. Andreas Kirschbaum 2006-02-27 Apply patch by Marc Alexander Lehmann to improve server performance. --- include/map.h: Move path field to end of struct. Since this field was huge it pushed all other fields to large offsets in the struct. Moving it to the end of the struct mapdef should not break anything but will improve performance and reduce the server code by >3500 bytes. Andreas Kirschbaum 2006-02-27 ------------------------------------------------------------------------------ Changes for 1.9.0: lib/collect.pl.in: Again fix generation of 'editor_folder' field to make sub-folder selection work again. lib/archetypes: Rebuilt. Andreas Kirschbaum 2006-02-26 */Makefile{in.am}: Fix plugin makefiles so that 'make distcheck' works. Using relative path names for files to include in distribution does not work - need to have a makefile in each directory. configure{.ac}: Updated as result of new Makefiles. MSW 2006-02-24 Apply patch #1428057 courtesy Pippijn van Steenhoven: fix to a crashing bug in plugins (incoherent order of parameters). Also use plugin_common.h in CFAnim instead of having separate definitions. Modified files: plugins/cfanim/cfanim.c plugins/cfanim/include/cfanim.h plugins/cfanim/include/cfanim_proto.h plugins/common/plugin_common.c plugins/common/include/plugin_common.h Ryo 2006-02-23 Remove object type CONFUSION since it was not used anymore. --- common/item.c: Remove CONFUSION entry from item_types[] array. include/define.h: Uncomment #define CONFUSION. Andreas Kirschbaum 2006-02-22 lib/collect.pl.in: Fix generation of 'editor_folder' field. It did not work too well for .arc files in deep subdirs. lib/{archetypes,bmaps.paths,crossfire.0}: Rebuilt. Andreas Kirschbaum 2006-02-21 random_maps/random_map.c: Cause the random map generator to skip certain elements if the style is set to "none". doc/Developers/random-maps: Document above change Alex Schultz 2006-02-20 socket/request.c: Don't crash on trying to send a spell which doesn't have an associated skill Brendan Lally 2006-02-20 Do not allow to dimension door into monsters or earthwalls. --- server/spell_effect.c: In dimension_door() do not allow destinations that are P_IS_ALIVE. Andreas Kirschbaum 2006-02-19 random_maps/style.c: In find_style() fix access to uninitialized variable. Andreas Kirschbaum 2006-02-19 Prevent crossedit from stripping out 'maplore' map header field. --- common/map.c: Add code to load/save/dump maplore information. include/map.h: Add new maplore field to map struct. Andreas Kirschbaum 2006-02-19 Apply patch #1433271 (code-cleanup) by Stefan Huehner: Add const and static. --- Affected files: common/{loader.l,los.c,map.c}, include/{libproto.h,sproto.h}, plugins/cfanim/{cfanim.c,include/cfanim.h}, server/{apply.c,skill_util.c} common/loader.c: Rebuilt. Andreas Kirschbaum 2006-02-17 common/map.c: Modify ob_blocked() to properly handly objects with a 0 ob->move_type. Fixes infinite loop from random map code when trying to place exits. MSW 2006-02-16 Commit forgotten file for yesterday, which have the CFAPI_INT16 define... include/plugin.h server/plugins.c Ryo 2006-02-15 Minor bugfixes: server/apply.c: Fix apply_transport ->contr checks to actually check against correct values. server/plugins.c: Replace CFAPI_INT16 with CFAPI_INT - there is no declaration anyplace for CFAPI_INT16 so compiles fails. server/swamp.c: Fix swamp code so that only objects that can be picked up disappear - this way, transports don't disappear into oblivion. MSW 2006-02-15 Swamps don't affect DMs anymore. Also, swamps don't remove items with FLAG_IS_FLOOR or FLAG_IS_OVERLAY_FLOOR. server/swamp.c ---- Fixes to plugin system. Added "SINT16" as return type. server/plugins.c: resistances are sint16, not int. plugins/cfanim/include/cfanim_proto.h: fix cf_object_get_resistance declaration. plugins/cfpython/cfpython_archetype.c: fix comparison function, which should return 0 or +-1. plugins/cfpython/cfpython_map.c: fix comparison function. plugins/cfpython/cfpython_object.c: fix broken GetResist, fix comparison function. plugins/cfpython/cfpython_party.c: fix comparison function. plugins/cfpython/cfpython_region.c: fix comparison function. plugins/common/plugin_common.c: object resistances are sint16. plugins/common/include/plugin_common.h: object resistances are sint16. Ryo 2006-02-14 Apply modified patch #1428048 (make the log line buffered) by Marc Lehmann. --- common/init.c: In init_globals() switch the log file to line buffer mode. Andreas Kirschbaum 2006-02-11 server/apply.c: In apply_scroll() do not identify the scroll if the player lacks the literacy skill. Andreas Kirschbaum 2006-02-10 Apply slightly modified patch #1428309 (code-cleanup: const, static) by Stefan Huehner: add const/static to functions/variables. Remove some type casts. --- Affected files: common/{arch.c,glue.c,image.c,init.c,readable.c,time.c}, crossedit/stubs.c include/{attack.h,libproto.h,object.h,sockproto.h,spells.h,sproto.h}, random_maps/{door.c,rproto.h,standalone.c,style.c}, server/{alchemy.c,apply.c,c_chat.c,c_misc.c,init.c,player.c,shop.c,spell_effect.c}, socket/{info.c,loop.c,request.c} Andreas Kirschbaum 2006-02-10 server/c_wiz.c: make dm stats command print Int and damage. Rearrange output to match the stat ordering. lib/wizhelp/stats: document the stats command lib/Makefile.am lib/Makefile.in: install the new help file Brendan Lally 2006-02-10 Apply modified patch by Marc Alexander Lehmann to fix get_rangevector functions on tiled maps. --- server/map.c: Add helper function adjacent_map() to check if two maps are adjacent. Modify get_rangevector(), get_rangevector_from_mapcoord(), and on_same_map() to use this function. Andreas Kirschbaum 2006-02-09 server/player.c: make a player's starting items be locked, so that they can't accidentally drop and lose them without unlocking them first. Brendan Lally 2006-02-09 Apply patch #1427979 (code-cleanup: add const, fix warnings) by Stefan Huehner. --- common/{anim.c,button.c,exp.c,friend.c,image.c,item.c,living.c,los.c,map.c, object.c,player.c,quest.c,readable.c,recipe.c,region.c,treasure.c,utils.c}, include/libproto.h: Add "const" to pointer function parameters. Andreas Kirschbaum 2006-02-09 Make create food spell work for all FOOD/DRINK objects. It used to fail for objects where another object with the same name but type POISON does exist. --- common/arch.c: Add new function find_archetype_by_object_type_name() to find an archetype by item type and item name. include/libproto.h: Add new prototype. server/spell_effect.c: In cast_create_food() only search for objects of type FOOD or DRINK. Andreas Kirschbaum 2006-02-09 Added a "insert_into" command for DMs, to easily put items in other items. Modified filse: include/sproto.h server/c_wiz.c server/commands.c Ryo 2006-02-08 server/main.c: Modify enter_exit() to see if player is in a transport, and if so, remove him. Can happen if player uses word of recall while in a transport. MSW 2006-02-07 Regional jails. --- common/region.c, include/libproto.h, map.h: parse jail entries, new function get_jail_exit to return the exit to the local jail. doc/Developers/regions: update server/c_wiz.c, commands.c, include/sproto.h: add dm command, command_arrest to jail players in the correct location. lib/regions: add scorn and navar jails. Brendan Lally 2006/02/08 Code that adds transports. Transports are described more in detail in docs/Developers/objects. --- loader.l: Add new move type ('boat'). Update move_name field to be aware of this type. common/object.c: Unrelated to transport, but more apparant with transports - fix bug with insert_ob_in_map() and multipart objects - we now only try to fix up map and coordinates if the provided coordinates are out of the map. Before, function would always use the passed map for multipart objects, which is incorrect if we have already set valid coordinates. doc/Developers/objects: Update notes for TRANSPORTS. Update move information to include MOVE_BOAT. include/define.h: Add type TRANSPORT. Add MOVE_BOAT. include/player.h: Add transport field to player structure. include/sproto.h: rebuilt. server/apply.c: Add code to handle applying of transports. Update apply_below to apply transport if player is on one. server/attack.c: Update hit_map() to look for transports, and hit any players with the damage. server/c_object.c: Update put_object_in_sack() to also handle TRANSPORTS so that code can be re-used. server/move.c: Fix handling of multipart objects in move_object() - old code didn't work right with multipart objects moving along seams of tiled maps. Add code to move_ob() to update player map position for all players in a moving transport. server/player.c: Update move_player_attack() too check of player is in tranport, and use that for map and location information. Update move_player() to handle speed related issues with transports. server/time.c: Add code to credit time back to TRANSPORT objects since we remove time in move_player() for TRANSPORTS. socket/item.c: Add add_object_to_socklist() so that same code isn't reproduced in 3 different places in the file. Update draw_look() to handle transports - send transport object itself, then objects in transport. Update esrv_send_inventory() and esrv_send_item() to use add_object_to_socklist(). Update esrv_get_ob_from_count() to look for objects in transport if player is in transport. socket/loop.c: Remove checking of pl->map status, since draw_client_map() does that, and we need to handle if the player is in a transport. socket/request.c: Handle map drawing if player is in a transport. MSW 2006-02-06 movement type changes. Add move_allow field to explicitly allow certain movement types on spaces. Add suppport for using string names instead of numeric values to specify the MOVE_ values. Add code so when saving data out, use string names instead of numeric value. --- common/loader.l: Remove save_double(), as it isn't used by any code. Add set_move() to set movement types from strings. Add get_string_move_type, which takes integer movement type and returns a string. Update load and save code to use these functions respectively. common/map.c: Change blocked_link() so that we only examine all the objects on a space if there is something alive on the space or space is otherwise blocked. There is no reason to examine all the objects on the space if the object in question can move onto it. Modify update_position() to use the move_allow field to clear bits in the move_block field. common/object.c: Add check in CAN_MERGE for move_allow. Add check for move_allow in update_object to see if we should update the space or not. doc/Developers/objects: Update Movement code section to note use of using strings to set movement types. Add note about move_allow. Section about Transports added, but code isn't there yet. include/object.h: Add move_allow to object structure. MSW 2006-02-04 Fix attack messages containing random characters. -- server/attack.c: In attack_message() always initialize variables. Andreas Kirschbaum 2006-02-03 server/c_misc.c: fix bug 1413239 Server crash with "who" command output using null map names Brendan Lally 2006-02-03 include/newserver.h, server/login.c, socket/init.c, socket/loop.c: drop any connection that fails to login successfully after MAX_PASSWORD_FAILURES attempts (defaults to 5) doc/Developers/protocol: document properly the byte counts of item flags, and include documentation of the itemcmd setup option. Brendan Lally 2006-01-30 Custom commands-related fixes. plugins/cfpython/cfpython.c: fix custom command handling. server/plugins.c: try all plugins for custom commands. ----- Moved the global event 'LOGOUT' from when player actually disconnects to when player logs out and is asked whether to play again or not. Modified files: server/apply.c main.c Ryo 2006-01-15 socket/request.c: In ReplyCmd() make sure the reply does not cause a buffer overflow. Andreas Kirschbaum 2006-01-13 socket/request.c: add some better checks in addspell packet formation, fix a crash bug. Brendan Lally 2006-01-13 server/c_object.c: stop rename crashing if there is no name to rename to when object is passed by number -- server/c_object.c: allow the rename command to take tag of the item to be renamed, so that clients can form rename commands properly. Brendan Lally 2006-01-11 server/c_range.c: allow spells cast by number to also have options passed to them Changelog: Commit the changelog entry for the last commit. Brendan Lally 2006-01-10 Spell listing support: allow 'spell_paths' to be sent to requestinfo, reply with number:path change return type of SP_level_spellpoint_cost to sint16 add spellmon as a setup value, if it is set; send path attunement/repulsion/denial in stats send data about spells in addspell packets send updates to that data Affected files: common/living.c crossedit/stubs.c doc/Developers/protocol include/funcpoint.h, newclient.h, newserver.h, player.h, sockproto.h, sproto.h random_maps/standalone.c server/apply.c, login.c, spell_util.c, init.c, loop.c, request.c -- server/c_range.c: allow cast/invoke and prepare commands to take item tags as well as spell names Brendan Lally 2006-01-09 Apply modified patch #1396303 (add setting to disable stealing from players) by Terry Brown. It adds a new option "no_player_stealing" to the settings file. If set, it prevents players from stealing from other players. It defaults to ON. -- doc/settings: Add documentation for new setting. include/global.h: Add new field to settings structure. lib/settings: Add new option no_player_stealing. server/init.c: In load_settings() recognizes the new option. server/skills.c: In attempt_steal() prevent stealing from PLAYER if option is set. Andreas Kirschbaum 2006-01-08 include/newserver.h, socket/{init.c,request.c}: Remove unused fields ext2 and ext_title_flag from NewSocket structure. server/skills.c: Fix/improve feedback messages for stealing skill. plugins/cfpython/cfpython.c, server/plugins.c: Just whitespace changes to make it conform to programming_guide. plugins/cfpython/cfpython.c: Make sure context->options always is initialized. server/main.c: Make code more readable; use snprintf where appropriate. crossedit/Cnv/CnvPrompt.c: Make file compilable with Ansi C89 compiler. Andreas Kirschbaum 2006-01-08 Global event Python scripts now are in subdirectories. This makes it easier to distribute "Python packages". Modified file: plugins/cfpython/cfpython.c Ryo 2006-01-07 common/{item.c,treasure.c}, server/{apply.c,gods.c,spell_effect.c}: Use named constants instead of numbers. server/monster.c: Use correct field name in move_monster(). Andreas Kirschbaum 2006-01-07 Summon pets less often to the owner on tiled maps. -- server/pets.c: In remove_all_pets() and pet_move() use on_same_map() to check whether the pet is too far away. Andreas Kirschbaum 2006-01-07 Change meaning of "items are on same map": for tiled maps now two objects are also considered to be on the same map if they are on diagonally adjacent maps. This solves the issue that a pet can be only one tile away from the owner but still considered not to be on the same map. -- common/map.c: In on_same_map() also consider diagonally adjacent maps. Andreas Kirschbaum 2006-01-07 Added regions support for plugins. Affected files: include/plugin.h sproto.h server/plugins.c -- Added regions to Python plugin. Affected files: cfpython/include/cfpython.h cfpython_map_private.h cfpython/cfpython.c cfpython_map.c cfpython_region.c Makefile.am Makefile.in New files: cfpython/include/cfpython_region.h cfpython_region_private.h cfpython/cfpython_region.c -- In Python's Object, Archetype is now a property and not a method. Affected files: cfpython/include/cfpython_object_private.h cfpython/cfpython_object.c -- Cleaned obsolete include/plugproto.h. Ryo 2006-01-07 Make teleporters hidden below the floor work again. -- server/time.c: In move_teleporter() use object above floor instead above teleporter to operate one. Andreas Kirschbaum 2006-01-07 Fix issues with map tiling. -- server/move.c: In move_ob() make sure inserting multi-part objects into tiled maps work. server/spell_attack.c: In cast_cone() insert spell effect at correct position for tiled maps. Andreas Kirschbaum 2006-01-07 common/map.c: Allow map tiling paths to be reletive. server/main.c: Template maps: Impliment using fixed maps as templates, and improve reletive path support for them. Alex Schultz 2006-01-06 Make SIGNs (including Magic Mouths) trigger for DMs again. Does not reduce the counter if in 'wizpass mode. -- server/apply.c: In apply_sign() ignore DMs. Andreas Kirschbaum 2006-01-04 server/spell_effect.c: Apply patch 1394861 - fixes magic walls. In conjuction with archetype changes, look at the spell object (and not created wall) to see if it blocks. server/c_chat.c: Apply patch 1389113 - orcknuckle messages appear in same window. MSW 2006-01-01 Prefer marked item when throwing objects. -- server/skills.c: In find_throw_ob() prefer marked item. Andreas Kirschbaum 2006-01-01 Make EXITs affect DM players again. -- common/object.c: In check_move_on() ignore only slow movement penalties for DMs. server/apply.c: In move_apply() ignore anything but EXITs for DM players. Andreas Kirschbaum 2006-01-01 Make forked lightning correctly traverse tiled maps. -- server/spell_attack.c: In forklightning() insert forked part into correct map. Andreas Kirschbaum 2006-01-01 Properly unready forgotten spells. Prevents crashing the server if casting a forgotten spell. -- include/sproto.h: Add new prototype. server/{apply.c,gods.c}: Call player_remove_range_ob() when forgetting a spell. server/player.c: Add player_remove_range_ob() to unready a given object. Andreas Kirschbaum 2006-01-01 Improve the commands learn_spell and forget_spell: now these commands accept partial spell names and print sensible error messages if they fail. -- include/sproto.h: Remove prototype for now static function. lib/wizhelp/{forget_spell,learn_special_prayer,learn_spell}: Update help files. server/c_wiz.c: Add parameter op to get_spell_by_name() for printing error messages to op. Allow partial matches for spell name. In command_learn_spell_or_prayer() and command_forget_spell() report an error to the player instead of an error message to the server log file. Andreas Kirschbaum 2006-01-01 Fix reference-related crashes. plugins/cfpython/cfpython.c Ryo 2006-01-01 Apply modified patch #1391648 (FIX: new movement code and generators) by Lalo Martins. This fixes bugs #1383398, #1383392, #1375643, #1372035, #1370409; all bugs are related to objects stacking which should not stack. -- common/map.c: In ob_blocked() consider tiles with living objects as blocked. Andreas Kirschbaum 2005-12-31 Don't print "file not found" for global events. plugins/cfpython/cfpython.c Ryo 2005-12-31 Changed the way Python scripts are called. Now script don't share variables anymore. Fix a memory leak. plugins/cfpython/cfpython.c Ryo 2005-12-28 Applied patch #1383359 (Fix death message) courtesy Anton Oussik ( https://sourceforge.net/tracker/index.php?func=detail&aid=1383359&group_id=13833&atid=313833 ) server/attack.c Ryo 2005-12-27 server/skills.c: In steal() do not give exp for stealing from pets since this can be exploited to gain exp over and over. Andreas Kirschbaum 2005-12-23 server/c_party.c: fix crash with party obsolescence (->next on freed item). Added get_firstparty() to get firstparty private var needed for plugin. ------- Added party information to plugin functions. Plugins can change player's party or marked item. New files: plugins/cfpython/include/cfpython_party.h cfpython_party_private.h plugins/cfpython/cfpython_party.c Modified files: include/sproto.h: add new functions prototypes. include/plugin.h: party-related defines plugins/common/include/plugin_common.h: new party functions. plugins/common/plugin_common.c: new party functions. plugins/cfpython/include/cfpython.h: add new include. plugins/cfpython/include/cfpython_object_private.h: marked item/party getter/setter. plugins/cfpython/cfpython.c: add GetParties to Crossfire module. plugins/cfpython/cfpython_object.c: MarkedItem setter, Party getter/setter. server/plugins.c: new callbacks for party, marked item setter. Ryo 2005-12-17 server/attack.c: Make spells destroy objects again. Andreas Kirschbaum 2005-12-15 Moved natural dragon skin resistances from "statistics" to "resistances". server/c_misc.c Ryo 2005-12-13 Fix Windows compilation after Andreas's changes. include/win32.h: define WIFEXITED and WEXITSTATUS. Ryo 2005-12-11 Fix buffer overflows which can be triggered remotely. -- common/porting.c: Re-implement open_and_uncompress(). The new implementation should not contain any buffer overflows anymore. It also fixes possible exploits due to funny characters in file names. plugins/cfpython/cfpython.c: Use snprintf() to truncate long strings. server/login.c: Reject invalid user names. socket/loop.c: Make overflow detection work while reading from socket. Properly re-allocate memory for listen command. Fix buffer overflow for too long command names. Andreas Kirschbaum 2005-12-11 lib/collect.pl.in: General cleanup - just whitespace changes. Andreas Kirschbaum 2005-12-11 Prevent the map loader from crashing when loading maps with incorrect headers. Changes are based on patch #1275563 by Kevin Rudat. -- common/map.c: Do not dereference NULL value for map headers without parameter. Andreas Kirschbaum 2005-12-11 Apply modified second part of patch #1275563 (Crossedit: fix map attributes window) by Kevin Rudat: let crossedit save/load tiling paths as the mapmaker entered them, rather than saving the normalized version. -- common/map.c: Delay path normalization from map loading time (load_map_header()) to access time (load_and_link_tiled_map()) if running as editor. Andreas Kirschbaum 2005-12-11 server/move.c: In move_ob() print error message instead of crashing: check passed arguments before accessing them. common/object.c, server/{pets.c,player.c,spell_attack.c,time.c}, socket/request.c: Properly check for P_OUT_OF_MAP after calling get_map_flags(). Andreas Kirschbaum 2005-12-10 common/path.c: add missing global.h include. make_win32/crossfire32.dsp: add path.c and some headers. Ryo 2005-12-09 Apply slightly modified first part of patch #1275563 (Crossedit: fix map attributes window) by Kevin Rudat: make the map attributes dialogs work again. -- crossedit/Attr.c: Remove code to handle map attributes dialogs. crossedit/Crossedit.ad, crossedit/Crossedit.ad.h: Update X11 resources. crossedit/Defines.h: Add typedef for MapAttr. crossedit/{Edit.c,Edit.h}: Remove/update code to handle map attributes dialogs. crossedit/Makefile.am: Add new files MapAttr.c and MapAttr.h. crossedit/Makefile.in: Rebuilt. crossedit/{MapAttr.c,MapAttr.h}: New functions containing code to handle the main map attributes dialog. crossedit/Cnv/CnvPrompt.c: Convert CnvPromptStr into char array. Andreas Kirschbaum 2005-12-09 Remove a strange feature of normalize_path(): it did convert the path "//" into "/". Also add a stand-alone application for regression testing this function, and fix a few issues with ".." in path name. -- common/path.c: New file containing the modified implementation and the stand-alone application. include/path.h: Prototypes for path.c. server/main.c: Remove implementation; call renamed function. common/Makefile.am, include/Makefile.am: Add new files. common/Makefile.in, include/Makefile.in: Rebuilt. Andreas Kirschbaum 2005-12-08 server/ban.c: General cleanup - whitespace changes, rename variable names. Should not affect function. server/apply.c: In player_apply() do not consider DM PLAYERs to be DM-created items. This prevents the server from destroying the player object (and crashing shortly afterwards). Andreas Kirschbaum 2005-12-07 Apply slightly modified patch #1293744 (Inversed ban entries) by Thomas Equeter. -- server/ban.c: In checkbanned() recognize '~' prefix to allow entries. Also fix possible buffer overflow. Andreas Kirschbaum 2005-12-07 Apply modified patch #1293774 (Kick banned hosts at once) by Thomas Equeter: disconnect new connection for banned host right after connecting. Also add support for user name in ban files. -- lib/ban_file: Update comments and examples to new syntax. server/ban.c: Allow a NULL user name to check for host name only. server/c_misc.c: In receive_player_password() check for banned user name. server/player.c: In add_player() remove check for banned host - this was already done if we reach this state. socket/init.c, include/sockproto.h: Pass ip address as a string. socket/loop.c: In doeric_server() check for banned host after a new connection was accepted. Andreas Kirschbaum 2005-12-07 Apply patch #1371956 (code cleanup patch) by Stefan Huehner: fix old-style function declarations and prototypes to proper Ansi C syntax. This patch allows the compiler to check function arguments and also removes some warnings when compiling with -Wstrict-prototypes. -- All affected files: Convert "void foo()" into "void foo(void)". Andreas Kirschbaum 2005-12-06 Fix bug #1173563 (Creator created Bombs malfunction): Creators and Converters now copy items from inventory. Fallback (for empty inventory) is the old behavior to create the new item from other_arch. If the inventory contains more than one item, a random one is picked. -- common/loader.l: Mark inventory of CREATOR and CONVERTER as FLAG_CONTENT_ON_GEN. common/loader.c: Rebuilt. common/object.c: Update x/y/map for non-head parts to make inserting multipart objects via insert_ob_in_ob_at() work. server/apply.c: In convert_item() consider inventory for item to create. server/time.c: In move_creator() consider inventory for item to create. In process_object() ignore item flagged as FLAG_IS_A_TEMPLATE. (Otherwise bombs in inventories would explode prematurely.) Andreas Kirschbaum 2005-12-05 New plugin property for player: marked item, added Python wrapper. Modified files: include/plugin.h plugins/cfpython/cfpython_object.c plugins/cfpython/include/cfpython_object_private.h plugins/common/include/plugin_common.h plugins/common/plugin_common.c server/plugins.c plugins/cfpython/cfpython.c: fix invalid reference management. Don't return NULL but Py_None. Ryo 2005-12-04 Fix bug #1372194 (stairways now block movement). -- random_maps/exit.c: In unblock_exits() check correct field move_block to find blocking exits. Andreas Kirschbaum 2005-12-03 server/apply.c: In move_apply() properly decrement recursion counter. Andreas Kirschbaum 2005-12-02 server/spell_attack.c: Add some missing P_IS_ALIVE checks - these weren't needed in the past because living objects would block movement - with new movement code, isn't always the case. server/time.c: Fix player movers so that if the victim doesn't have any movement type, we move it. MSW 2005-11-30 common/time.c: In move_teleporter() and move_player_mover() do not affect DMs if FLAG_WIZPASS is set. common/object.c: In check_move_on() do not affect DMs if FLAG_WIZPASS is set. This prevents DMs from triggering traps when walking over them. Andreas Kirschbaum 2005-11-30 common/map.c: Replace code with OB_TYPE_MOVE_BLOCK - effectively same as what it was. include/define.h: Update OB_TYPE_MOVE_BLOCK so that spaces that don't block any type of movement doesn't block objects that also don't have movement. This fixes cases of gates not pushing objects off them. server/c_party.c: Remove double use of ->next pointer/loop in confirm_party_password() - fixes crash and likely makes setting party password work more reliably. MSW 2005-11-29 common/object.c: Fix wrong comparision operator in free_object2() to make monsters drop loot again. Andreas Kirschbaum 2005-11-28 Basically added a parameter to 'skills' command to filter skills. And one char/const char* fix. common/anim.c: use const char* for find_animation. include/libproto.h: find_animation uses a const char*. include/sproto.h: fix prototype. server/c_wiz.c: send parameter to show_skills. server/skill_util.c: add search parameter to show_skills command. Ryo 2005-11-27 plugins/cfpython/cfpython_map.c: use wrappers instead of direct property access. plugins/common/include/plugin_common.h: new wrappers for maps. plugins/common/plugin_common.c: new wrappers for maps. Ryo 2005-11-26 plugins/cfpython/Makefile.in: rebuilt. Andreas Kirschbaum 2005-11-23 Plugins can now get archetypes. Added a check in cfapi_object_set_property to prevent changing archtypes. Fixed some Python bugs related to map properties. Added Crossfire.GetArchetypes and Crossfire.GetMaps to get all archetypes/maps. Modified files: include/plugin.h sproto.h plugins/cfpython/include: cfpython.h cfpython_map_private.h cfpython_object_private.h plugins/cfpython/cfpython.c cfpython_map.c cfpython_object.c server/plugins.c New files: plugins/cfpython/include/cfpython_archetype.h cfpython_archetype_private.h plugins/cfpython/cfpython_archetype.c Ryo 2005-11-20 server/shop.c: adjust minimum value that shop_specialisation_ratio can return to 0.1. This should stop some prices being exceptionally high. Brendan Lally 2005-11-19 Commit for new blocking code. Not going to dictate all the changes - but will outline the broad points. Note also that the doc/Developers/objects is updated and goes into more details also. - check for P_WALL no longer used - instead, need to use GET_MAP_MOVE_BLCOK and check against movement type of objects. - arch_blocked() changed to ob_blocked(), now takes object. Needed because just looking at archetype move_ values is no longer sufficient. - find_first_free_spot() changed to take object, since it just calls arch_blocked() - FLAG_FLYING removed, now in move type. - walk_on/walk_off/fly_on/fly_off removed - now based on move_on and move_off fields. - Map space structure extended to hold the move_on/move_off, etc values so that we can shortcut some processing by not having to check every object on the space when something enters it if move_on isn't set. - archetypes recollected - boulders needed move_walk to properly trigger buttons. - Note that the new plugin code has to be fixed up for the new movement code. Look for FIXME in plugins/cfpython/cfpython_object.c MSW 2005-11-15 Apply patch 1352485 newpickup rings/amulets courtesy anonymous user. include/define.h: add PU_JEWELS server/c_object.c: handle new type. server/player.c: handle new type. Ryo 2005-11-12 server/plugins.c: Properly update client view after removing objects. Andreas Kirschbaum 2005-11-10 server/plugins.c: Properly update client view after changing object names. server/plugins.c: Return an empty string if an object has no message. This makes Object.Message() always return a string object, which removes the need for special case code to handle empty messages. include/sproto.h, server/monster.c: Declare parameter of communicate() as "const". Andreas Kirschbaum 2005-11-09 Implement new functions for the Python plugin: Object.WeightLimit, Object.InsertInto(Object), Object.NamePl. Change Object.Name to set both name and name_pl. This should prevents scripts from failing to set name_pl. -- plugins/cfanim/include/cfanim_proto.h, plugins/common/include/plugin_common.h: Add prototypes. plugins/cfpython/cfpython_object.c: Add callback functions for new Python functions. plugins/cfpython/include/cfpython_object_private.h: Add prototypes for callback functions. Add callback functions to Python object descriptors. plugins/common/plugin_common.c: Add missing helper functions. Andreas Kirschbaum 2005-11-09 server/shop.c: When we are counting unpaid items and their values, to check if a player may leave a shop, make certain that we count all of them, and don't stop when we have dropped into a container (such as a spellbook) Brendan Lally 2005-11-09 plugins/cfpython/cfpython.c: Add missing 'PyType_Ready' calls for map and player, failure to do so crashes with Python objects destructors set to 0. Ryo 2005-11-07 server/spell_effect.c: fix WoR not executing on cursed ground with WIZCAST set. Ryo 2005-11-06 server/skills.c: In do_throw() abort processing if the thrown object was destroyed before it gets its first move. Andreas Kirschbaum 2005-11-06 server/build_map.c: test FLAG_IS_FLOOR too, type == FLOOR is not always enough. Ryo 2005-11-05 server/shop.c: In value_limit() return the unmodified item price if not in a shop or not for a player. Andreas Kirschbaum 2005-11-05 plugins/cfpython/cfpython.c: added GetPrivateDictionary and GetSharedDictionary methods to keep data between runs and share data between scripts. Ryo 2005-11-05 plugins/Makefile,plugins/cfanim/Makefile: Remove files to be generated by configure. server/main.c: Fix possible out-of-bounds array access. Andreas Kirschbaum 2005-11-05 Fix case for [sg]etReturnValue. Add compare operator for object and map (of course only == is relevant). Modified files: plugins/cfpython/include/cfpython_map_private.h plugins/cfpython/include/cfpython_object_private.h plugins/cfpython/cfpython.c plugins/cfpython/cfpython_map.c plugins/cfpython/cfpython_object.c Ryo 2005-11-05 aclocal.m4, configure, utils/config.guess, utils/config.sub, utils/ltmain.sh, *Makefile.in, plugins/cfanim/Makefile, plugins/Makefile: Rebuilt. lib/Makefile.am: Add template-maps to list of directories to create while install. Andreas Kirschbaum 2005-11-05 lib/wizhelp/reset: document use of '.' as an argument Brendan Lally 2005-11-05 random_maps/treasure.c: Fix out-of-bounds array access if place_chest() cannot find a free spot to place a new chest. Andreas Kirschbaum 2005-11-01 Fix bug #1082534 (monks with weapons): Now monks properly are denied from using weapons. Only newly created monks are affected since it now relies on a force named "no weapon force" in the player's inventory. The problem was that become_follower() assumed it was the only means do allow/disallow weapon use. -- server/gods.c: Do not let the god allow using weapons if a "no weapon force" object is present in the player's inventory. lib/treasures: add force to monk's treasure list. Andreas Kirschbaum 2005-11-01 Fix bug #815620 (CFPython.SetQuantity() doesn't update client): now notifies the client after changing nrof and/or weight. -- server/plugins.c: Re-calculate player's weight and send item change notifications in cfapi_object_set_property(). Andreas Kirschbaum 2005-11-01 Improve newpickup command: add new flag PU_NOT_CURSED to ignore cursed items. -- include/define.h: Add flag #define. server/c_object.c: Add "notcursed" option to pickup command. server/player.c: Respect new flag in check_pickup(). Andreas Kirschbaum 2005-11-01 plugins/cfanim/cfanim.c: remove printf for properties. Export functions for DLL for Win32. plugins/cfanim/cfanim.h: remove obsolete definitions (see plugin_common.h). plugins/cfanim/cfanim_proto.h: fix definition for exported functions. plugins/common/plugin_common.c: add gettimeofday for Win32. plugins/common/include/plugin_common.h: add gettimeofday for Win32. Ryo 2005-11-01 server/plugins.c: Print error message for event_xxx objects with missing or invalid parameters. Also remove the affected object to prevent multiple error messages. Andreas Kirschbaum 2005-11-01 Add new function object_get_env_recursive() to find the outermost environment object for a given object. -- common/object.c, include/libproto.h: Add function. server/{rune.c,spell_attack.c}: Use function where appropriate. Andreas Kirschbaum 2005-11-01 General cleanup of weather code. -- server/weather: Declare many functions and variables as "static", add prototypes for affected functions. Declare some variables as "const". include/sproto.h: Remove prototypes for now static functions. include/tod.h: Add "const" to strings. Andreas Kirschbaum 2005-11-01 Fix bug #1102975 (Bronze items not keeping their + in alchemy): the problem was that a formula for full_helmet did exist but not for b_full_helmet. Since both helmet's names are "full helmet", the recipe was selected even if using the ingredient b_full_helmet. This fix adds new formulae for alternative archetypes with the same name as the base object, and makes the server code select the matching formula from multiple arch names in the "arch" field. -- common/readable.c: Use new fields to build messages. common/recipe.c: Make alchemy work for recipes with multiple base archetypes. include/{libproto.h,sproto.h}: Update prototype. include/recipe.h: Split string field arch_name into string list fields arch_name and arch_names. lib/formulae: Add archetype names to formulae for all items with same name as the base object. Also fix a few name mismatches that prevent any object from matching, and change transmution formulae to normal formulae where base name does not match archetype name. server/alchemy.c: Disable debugging code. Make alchemy work for recipes with multiple base archetypes. Andreas Kirschbaum 2005-10-31 server/c_wiz.c: Don't crash on "create" a living thing that has some part out of the map. Forbid removing a 'PLAYER' object. Ryo 2005-10-31 random_maps/style.c: Pass correct sorting function to qsort(): the sorted array contains pointers to strings, not strings. Andreas Kirschbaum 2005-10-29 Fix bug #1236244 (Exp from scrolls): reading a scroll of charm monsters or meteor swarm now gives exp for use magic item, not summoning or pyromancy. -- server/spell_attack.c: In mood_change() use skill from scroll, not from spell. In move_swarm_spell() use the spell "owner" as the object casting the spell. Andreas Kirschbaum 2005-10-29 include/config.h: DEBUG just been defined, no need to define it again. include/win32.h: typedef for socklen_t. random_maps/random_map.c: generate_random_map can use a const char*. random_maps/rproto.h: fix generate_random_map definition. server/plugins.c: EVENT_CRASH doesn't really need a parameter, especially if not initialized :) Ryo 2005-10-29 Prevent problems (crashes) for large item piles. Now limit nrof to less than 2^31. -- common/object.c: In CAN_MERGE() pretend that the objects are not mergeable if the nrof sum would overflow. common/porting.c: Fix buffer overflow for large numbers in ltostr10(). Also make n=1L<<31 work correctly. plugins/cfpython/cfpython_object.c: In Object_SetQuantity() raise an exception for negative nrof values. plugins/common/plugin_common.c: Reject negative nrof values in cf_object_set_nrof(). plugins/cfanim/include/cfanim_proto.h, plugins/common/include/plugin_common.h: Update prototype. server/plugins.c: Treat negative nrof as nrof=0 when setting CFAPI_OBJECT_PROP_NROF property. server/time.c: In move_duplicator() limit nrof of created items. Andreas Kirschbaum 2005-10-29 Fix compiler warnings. Most changes do not change the program (remove unused variables, convert "if(x = y)" into "x = y; if(x)"); a few actually fix (possible) problems (fix uninitialized variables, fix printf format specifiers, fix mismatches between signed and unsigned variables, add missing return and default statements). -- Affected files: common/{arch.c,init.c,item.c,map.c,object.c,re-cmp.c,readable.c,region.c, shstr.c}, crossedit/{Attr.c,Edit.c,Cnv/CnvPath.c}, include/sproto.h, plugins/cfanim/cfanim.c, plugins/cfpython/{cfpython.c,cfpython_object.c}, plugins/cfpython/include/{cfpython_map_private.h,cfpython_object_private.h}, random_maps/{rogue_layout.c,special.c,square_spiral.c}, server/{apply.c,attack.c,build_map.c,c_misc.c,c_object.c,c_party.c,init.c, main.c,monster.c,pets.c,player.c,plugins.c,shop.c,skill_util.c,spell_util.c, weather.c}, socket/{loop.c,request.c} Andreas Kirschbaum 2005-10-28 Fixes my previous commit. Should now properly allocate/deallocate the faces_sent array. -- common/player.c: Free faces_sent in free_player(). include/newserver.h: Add field faces_sent_len to NewSocket struct. server/player.c: Allocate and copy faces_sent in add_player(). socket/init.c: Use faces_sent_len in InitConnection(). socket/loop.c: Initialize faces_sent_len in doeric_server(). Andreas Kirschbaum 2005-10-28 The archetypes now contain more than MAXFACENUM (5000) faces. The following changes remove the fixed limit of the number of faces. The server now allocates enough memory to handle all defined faces. include/newserver.h: Remove MAXFACENUM since it is not used anymore. Change NewSocket.faces_sent from array into pointer. socket/{init.c, loop.c}: Allocate/initialize NewSocket.faces_sent. socket/request.c: Remove safeguard/error message since it depends on MAXFACENUM. Andreas Kirschbaum 2005-10-24 Code improvements: common/image.c: Declare some variables and functions as static or const; add safeguards while loading config files; remove support for numeric face names (no active archetype or map does use it); in free_all_images() deallocate memory allocated for smoothing. crossedit/xutil.c: Remove assignment to nrofpixmaps since ReadBmapNames() already sets this variable. include/{global.h, libproto.h, loader.h}: Remove now static variables and functions. Andreas Kirschbaum 2005-10-24 common/readable.c: Fix out of bounds access to max_titles[] in init_book_archive(). common/image.c, include/define.h, include/global.h: Remove unused variables potion_face and POTION_FACE_NAME. common/image.c, include/global.h: Remove unused variable blank_look. Andreas Kirschbaum 2005-10-24 Make shout command work in old socket emulation mode. common/commands.c: Sort all command arrays in init_commands(). Andreas Kirschbaum 2005-10-23 common/item.c - fix spelling mistake common/utils.c include/libproto.h - new function make_list_like that takes a string of comma deliminated words, and puts an and in the right place. include/sproto.h server/apply.c server/shop.c -new function can_pay - checks that a player can pay for every unpaid item that they are holding before starting to purchase them. Brendan Lally 2005-10-21 plugins/cfpython/{Makefile.in, Makefile.am}, plugins/cfpython/include/cfpython.h: Corrected improper regeneration of the function prototypes using "make proto" for the cfpython plugin. Gros 2005-10-20 plugins/cfpython/{cfpython.c, cfpython_object.c, cfpython_map.c}, plugins/cfanim/cfanim.c, plugins/common/plugin_common.c, server/plugins.c: Added support for execution of python_init.py upon initialization of cfpython. Reduced the console spam produced by various leftover debugging messages. Gros 2005-10-19 plugins/common/include/plugin_common.h: add CF_PLUGIN macro. plugins/cfpython/cfpython.c: add CF_PLUGIN to exported functions. plugins/cfpython/include/cfpython_proto.h: fix prototypes. Ryo 2005-10-19 plugin/*, plugin_logger/*, plugin_anim/*, plugins/*, server/{apply.c, attack.c, c_chat.c, c_object.c, c_wiz.c, gods.c, main.c, monster.c, player.c, skills.c, swap.c, time.c, timers.c}, include/{plugin.h, sproto.h}: Replaced the old plugin interface by the 2.0 one. Upgraded the Python and Animator ones to the new interface. Removed obsolete Logger plugin. Gros 2005-10-19 server/main.c: Template Maps: Allow %x, %y, and %n in the path to respectively be replaced with, the x coord, the y coord, and the parent map name. Alex Schultz 2005-10-18 server/{main.c, swap.c}, common/map.c, include/{libproto.h, map.h}: Add support for random template maps (still need to document, and still need to add support for template maps created from non-random templates) Alex Schultz 2005-10-16 common/info.c: fix -m1 crashing (34 chars, not 32!), and -m2 crashing under Win32. include/sproto.h: fix cast_change_ability definition. server/gods.c: fix cast_change_ability to hide the 'can't recast' message. server/spell_effect.c: don't stack word of recall forces. Add a 'silent' parameter to cast_change_ability to not display 'can't recast xx while xx is in effect' server/spell_util.c: fix cast_change_ability call. Ryo 2005-10-16 include/{global.h, sproto.h, config.h}, server/init.c, common/init.c, lib/Makefile.in: Add directory in preparation for template (where the template can optionally be from the random map generator) maps. Alex Schultz 2005-10-15 server/c_wiz.c: make reset command show the names of other players on the map when it fails. Brendan Lally 2005-10-14 server/c_party.c: fix another obscure party crash bug Brendan Lally 2005-10-12 server/c_party.c: fix a couple of loops that could crash under certain circumstances Brendan Lally 2005-10-11 common/object.c: use canonical_key instead of key, else == always fails. server/apply.c: drop "on_use_yield" item if required when applying potion, food or poison. This lets players get empty bottles/vials/... when using potions. Ryo 2005-10-09 Added GetMarkedItem to Python, cleaned compilation warnings. plugin/plugin_python.c plugin/include/plugin_python.h Moved gps code to Python script, thus cleaning relevant code from server core. common/item.c: remove item description. include/define.h: remove gps define. server/apply.c: remove gps function. Ryo 2005-10-08 Prevent objects from losing inventory when thrown. include/libproto.h, common/object.c: Add new parameter "free_inventory" to free_object(). Is set, free inventory as well instead of dropping it on the ground. common/object.c: In get_split_ob() prevent inventory of splitted object to be dropped. Andreas Kirschbaum 2005-10-07 common/object.c: Use object_create_clone in get_split_ob; Fixes things inside of objects disappearing when throwing. Alex Schultz 2005-10-7 Make damage done by area spells not depend on monster size. include/sproto.h, server/attack.c: Add additional parameter "full_hit" to hit_map() and hit_player(). If set, do full damage, if unset scale down by monster size. server/{apply.c, attack.c, disease.c, monster.c, player.c, rune.c, spell_attack.c, spell_effect.c, spell_util.c, time.c}: Change callers to set "full_hit" parameter according to the attack used. Andreas Kirschbaum 2005-10-07 common/{arch.c, object.c}, crossedit/{Attr.c, Defines.h, Edit.c}, include/libproto.h, server/{plugins.c, time.c}: Rename functions with mixed-case names to lower case only. crossedit/Defines.h: Remove prototypes for nonexisting functions. Andreas Kirschbaum 2005-10-07 server/apply.c: In prepare_weapon() do not lose a reference to the item name. Andreas Kirschbaum 2005-10-06 include/sproto.h, server/shop.c - make value_limit static, change its arguments to add some checking for NULL pointers Brendan Lally 2005-10-06 server/monster.c: In move_monster() prevent hp/sp overflows for monsters with very high maxhp/maxsp and very high regeneration rates. Andreas Kirschbaum 2005-10-05 common/treasure.c - prevent crashes with some broken treasure lists. Brendan Lally 2005-10-05 server/shop.c: convert val to sint64 - compilation issues with Win32. Checked with patch author that it's fine. Ryo 2005-10-04 common/map.c - fix output names in new_save_map -- server/shop.c - don't assume that shop_specialisation_ratio only gets passed items with valid types. -- common/map.c - /actually/ fix pointer issue -- common/map.c - fix potential issue with NULL pointer Brendan Lally 2005-10-04 common/map.c - fix an inequality in for loop - not sure if this actually fixes anything of note, but the previous form was definatly wrong. common/item.c - big item type table, function to deal therewith common/loader.l - add player_sold flag common/map.c - shop related header parsing include/define.h - define typedata, player_sold flag and some new shop flags include/libproto.h - define typedata related functions include/map.h - define new shop headers include/sproto.h - define new functions in shop.c server/apply.c - Change shop mat usage message server/c_object.c - Change display of price estimates server/shop.c - new functions describe_shop, value_limit, shopkeeper_approval, shop_greed, shop_specialisation_ratio, substantially alter query_cost_string and query_cost to make use of these server/skill_util.c - make bargaining a directly usable skill doc/Developers/shops - document the above doc/Developers/maps-technical - add shopheader names, and reference to shops doc Brendan Lally 2005-10-03 server/disease.c: check for value <= 0 as some diseases get dumped on a map with value == 0 (negative values will eventually underflox, but it'll take time). Apply patches courtesy quisar. #1307880 Allow to add a param to the cast command #1306987 Allow to summon lower level pet monsters Modified files: include/player.h sproto.h server/c_range.c login.c pets.c player.c spell_util.c Ryo 2005-10-01 common/button.c: explicit cast of stats.food to uint32 when used as sacrifice count. common/image.c: strlen returns size_t. Remove unused FindFaceName. common/object.c: obj::count is tag_t. Can't decrease item's nrof by a negative value. include/libproto.h: fix prototypes. include/player.h: weight and weight_limit are sint32, so last_ should be the same. include/sproto.h: nrof is uint32, not int. server/apply.c: nrof is uint32, can't eat a negative number of items. obj::count is tag_t. server/c_misc.c: remove unused variable. server/c_object.c: use uint32 instead of int to specify number of items to drop/put. server/plugins.c: strlen returns size_t. server/spell_effect.c: distances are uint32 and not int. socket/loop.c: remove now obsolete cast of -1 to uint32 for last_weight. socket/request.c: explicit cast of weight_limit to sint32 when comparing to last_weight. Ryo 2005-10-01 plugin/plugin_python.c: added CF[SG]etWeightLimit. plugin/include/plugin_python.h: function prototypes. server/plugins.c: update player inventory if item teleporter from that. Ryo 2005-09-30 lib/collect.pl.in: can now use lines like "attacktype fire electricity poison" instead of hard to remember numbers. Numbers are still supported, you can even mix both. Ryo 2005-09-28 server/spell_effect.c: In recharge() verify that the object to charge is in fact a wand or staff. Andreas Kirschbaum 2005-09-27 Changed quest behaviour, now uses its own archetypes. Can change npc/magic ear text based on quest status. Warning: not totally tested. Quest start/end works, rest needs some tweaks & fixes. common/quest.c: new functions, some cleaning. doc/Developers/quest: update (partially). include/define.h: new item types. include/libproto.h: new definitions. server/c_misc.c: update. server/monster.c: take into account quest overrides. server/time.c: markers now start/end tasks if needed. Ryo 2009-09-25 server/c_party.c - fix another party list corruption bug, and a couple of possible infinite loops Brendan Lally 2005-09-25 Clean some compilation warnings. common/map.c: remove unused variable. common/readable.c: strlen returns size_t. include/object.h: objectlink id should be tag_t since it's the item's "count" field. server/c_misc.c: strlen returns size_t. server/c_object.c: strlen returns size_t. server/c_party.c: remove_party returns void, value not used anyway. Fordward declaration. server/c_wiz.c: settings.worldmaptiles[x|y] is uint32. server/gods.c: strlen returns size_t. server/hiscore.c: maxchar is const. server/skill_util.c: strlen_returns size_t. Ryo 2005-09-25 include/player.h sproto.h server/attack.c c_party.c player.c Fix several bugs in patch #1194964, including one that caused segfaults one that corrupted the party list, and one that broke party password recognition remove partyid from the party struct - use party pointers instead remove functions find_party() and find_party_struct() - no longer needed or used. make form_party a local function - it is only used by the party form command, and can't easy be used safely elsewhere. Brendan Lally 2005-09-25 server/build_map.c: remove unused variable. -- Commit patch #1194964 (party obsoletion) by cavesomething. Affected files: include/player.h sproto.h server/apply.c attack.c c_party.c login.c main.c pets.c player.c skill_util.c skills.c spell_util.c -- include/win32.h: turn off harmless warning. Ryo 2005-09-24 Fix bug #744327 ('immortal' monsters): Prevent monsters from loosing hp or sp if they have negative Con/Pow. For hp, this made some monsters unkillable because they eventually had negative hp. -- server/monster.c: In move_monster() do gain hp/sp only if Con/Pow is positive. Andreas Kirschbaum 2005-09-24 Update client inventory view for players dieing in a shop with unpaid items in inventory. -- server/player.c: Send removed item to client in remove_unpaid_objects(). Do not call remove_unpaid_objects() multiple times in kill_player(). Andreas Kirschbaum 2005-09-17 Allow directors/movers to specify a specific arch/name/race. include/sproto.h: Add should_director_abort to here. server/{apply.c, time.c}: Add should_director_abort for the logic code for this change, and add checks for it in director/mover code. doc/Developers/objects: Add documentation for directors including this change, and update mover documentation. Alex Schultz 2005-09-15 Make untriggered TIMED_GATEs work again. server/apply.c: Clear object speed only for connected objects. Andreas Kirschbaum 2005-09-13 This change is mostly cosmetic and a preparation for the new movement type code. Basically, it just changes the old object movement_type field to attack_movement. This makes sense because that is what that field is called in saved and loaded objects/archetypes, and thus frees up that name for the new movement code. -- common/button.c: field name change common/loader.{cl}: field name change doc/Developers/objects: Add section on new movement types, update old documentation to note it is attack_movement and not movement_type field that is important. include/object.h: field name change. server/attack.c: field name change. server/monster.c: field name change server/pets.c: field name change server/skills.c: field name change. server/spell_attack.c: field name change server/spell_effect.c: field name change MSW 2005-09-12 Allow a DM to cast spells and prayers in no-magic/no-prayer areas. Add new command "wizcast" to toggle this setting. common/loader.l: Set/reset FLAG_WIZCAST for flag "wiz". common/loader.c: Rebuilt include/define.h: Add new flag FLAG_WIZCAST; remove unused flag FLAG_NO_PRETEXT. lib/Makefile.am: Add new help file for wizcast. lib/Makefile.in: Rebuilt. plugin_animator/plugin_animator.c: Set/reset FLAG_WIZCAST in animate_one(). server/apply.c: Always allow FLAG_WIZCAST to enchant weapons and armour. server/c_misc.c: Add new function command_wizcast(). server/c_wiz.c: Set/reset FLAG_WIZCAST when entering/leaving DM mode. server/commands.c: Add "wizcast" command. server/spell_effect.c: Always allow FLAG_WIZCAST to use the spell probe. server/spell_util.c: Always allow FLAG_WIZCAST to cast spells and prayers. Andreas Kirschbaum 2005-09-09 server/monster.c: Set FLAG_READY_SKILL in monster_check_apply() for monsters with skills. This fixes hill giants and trolls not throwing boulders anymore. server/monster.c: Add missing "break" statement in monster_can_pick(). It did prevent some monsters from picking up scrolls. Andreas Kirschbaum 2005-09-08 common/{anim.c, image.c, los.c, map.c, porting.c, treasure.c}, include/define.h, random_maps/treasure.c, server/{apply.c, c_misc.c, c_object.c, c_wiz.c, commands.c, daemon.c, hiscore.c, init.c, login.c, player.c, plugins.c, resurrection.c, weather.c}, socket/{init.c, item.c, loop.c, lowlevel.c}: Use LOG() for error messages and debug output instead of stdout/stderr. Include filename in error messages. server/resurrection.c: Fix error message in read_player(). Andreas Kirschbaum 2005-09-04 socket/item.c: Make selecting objects from ground view work again. common/object.c: Fix update of player's ground view in insert_ob_in_map(). Previously the ground view was not updated after applying exits or after being hit by a spell. Andreas Kirschbaum 2005-09-03 Fix bug #1102991 (Duplicate grapical display of the same monster): doc/Developers/protocol: Change semantics of map_scroll command to what the server actually does: big faces outside the viewable area are cleared. Add newmap command. include/newserver.h: Increase MAX_HEAD_OFFSET to 8 (the size of a Greater Demon). socket/request.c: MapRedrawCmd(): Disable mapredraw command; it is now just ignored. MapNewmapCmd(): Clear map state before sending newmap command. check_head(): Remove redundant code. update_space(): Move invariant condition out of loop to speed it up. Fix uninitialized variable. Remove redundant condition. Fix off-by-one array access. update_smooth(): Remove unused code. Properly send cleared big faces. draw_client_map(): Remove duplicate check. Properly clear newly visible area when scrolling the map. Andreas Kirschbaum 2005-08-31 common/{loader.l, map.c, object.c}, include/{define.h, map.h, object.h}: Accelerate map loading (a lot) and map saving (a bit) codes to improve map transition experience. common/loader.c: Rebuilt. Add (slightly reformatted) patch #1276121 (Crossedit: handle big faces) by Kevin Rudat: crossedit/CrEdit.c: UpdatePosition(): Use new drawing subroutines. crossedit/CrFace.c: DrawObject(): Use new drawing subroutine. crossedit/CrList.c: Redisplay(): Use new drawing subroutine. crossedit/CrUtil.c, crossedit/CrUtil.h: Remove FaceDraw(), add DrawFacePart() and DrawPartObject(). crossedit/png.c: Upload the whole image, not just the top-left corner. Andreas Kirschbaum 2005-08-30 Fix bug #1256173 (Magic drain not exploding head): server/spell_effect.c: Prevent mana transfer to/from caster himself; also create fireball for overcharges resulting from sucking mana. Andreas Kirschbaum 2005-08-30 Fix bug #1059537 (Chainmail mutations): common/loader.l: Remove code that "fixes" broken item names by removing a leading material name. This effectively renames "mithril chainmails" into "chainmails". common/loader.c: Rebuilt. Andreas Kirschbaum 2005-08-29 Fix player weapon speed/speed. There are a few bugs this fixes: 1) when player hit something, a has_hit field was set to true, to denote they hit something and to use weapon speed. However, this was only cleared when player issued a command. Thus, if you are running and hit something, you'd continue at weapon_speed pace until you needed to change direction. 2) Because has_hit was used, this basically put in a 1 tick lag - you'd hit something, but not until objects were processed and speed given would you get your extra speed. Likewise, after you killed something, you'd get your burst of speed for the next tick also. -- server/main.c: Clear has_hit, change function to only do bounds checking, not actually do weapon_speed adjustments. server/player.c: Give player speed boost when they hit something. MSW 2005-08-28 Add patch #1274385 by Kevin Rudat to make crossedit draw floors on tiles with items. crossedit/CrEdit.c: Add call to update_position() in UpdatePosition(). Andreas Kirschbaum 2005-08-28 Add patch #1271417 by Kevin Rudat to stop crossedit losing regions. Patch is slightly modified to properly handle all map fields. crossedit/Edit.c: Copy all map fields in MapMoveScrollResize(). Do not add a msg header to already existing maps. crossedit/crossedit.c: Call init_regions() at program initialization. Andreas Kirschbaum 2005-08-28 socket/init.c: Make setsockopt(REUSEADDR) work if using gcc in Ansi C mode on Linux. Andreas Kirschbaum 2005-08-28 common/map.c: Change default values for reset_timeout, enter_x, and enter_y map headers to zero. In set_map_reset_time() use MAP_DEFAULTRESET if reset_timeout is zero. This change prevents crossedit from adding these headers by just loading and saving a map. include/config.h: Add MAP_DEFAULTRESET. Andreas Kirschbaum 2005-08-27 server/rune.c: Fix crash if casting disarm out of map bounds. server/spell_effect.c: Fix crash if casting polymorph out of map bounds. Andreas Kirschbaum 2005-08-25 Apply patch 1200555 - addition of key/value lists which allows arbitrary storing of data in objects - see doc/Developers/key-value for more information --- loader.l, loader.c: Add add_key_value() function which parses the unknown line in the object/archetype. Update get_ob_diff() to make differences for the key/value lists. common/object.c: Add functions for properly comparing the key/value lists, setting and getting the vaues, clearing values upon freeing of object, etc. doc/Developers/Makefile.am: Add key-value file. doc/Developers/key-value: Documentation of this feature. include/libproto.h: Rebuilt include/object.h: Addition of key_value struct, addition of key_values field to object. MSW 2005-08-22 socket/request.c: Fix range checking of toggleextendedtext parameters. Andreas Kirschbaum 2005-08-17 The following fix code that basically does "for(x = pos-5; x < pos+5; x++)". This is not correct because it includes "pos-5" but not "pos+5". common/los.c: Make lighted distance equal in all directions. server/disease.c: Make infection distance equal in all directions. server/monster.c: Make lighted distance equal in all directions. Andreas Kirschbaum 2005-08-17 Add patch by Kevin Rudat for applyable but non pickable objects to have item items. doc/Dvelopers/objects: Update item types. socket/item.c: Use the head of any objects we send. Should generally only be an issue for objects on the ground, as currently there is no large objects players can pick up. Also fix up some of the formatting/ indenting in this file. MSW 2005-08-16 server/attack.c, include/define.h, common/loader.l doc/Developers/objects: Add a flag FLAG_IS_LIGHTABLE, to make lightable objects such as lanterns able to work again lib/archetypes: recollect archs Brendan Lally 2005-08-16 server/build_map.c: Add support for buildable signs, and magic mouths/ears. Alex Schultz 2005-08-15 lib/Makefile.am, lib/Makefile.in: Actually install help file for showpets. common/living.c, include/living.h: Make global arrays really const. Andreas Kirschbaum 2005-08-15 server/gods.c: Fix crash for monsters without appropriate god. server/gods.c: Add missing braces around body of if statement. Andreas Kirschbaum 2005-08-14 NPCs instead of being given a random god are for preference given the god that likes their race. If one can't be found, then we fall back to a random god. Affected files: server/gods.c include/sproto.h Brendan Lally 2005-08-12 String fields in structures using add_string are now const char*. Functions in shstr (add_refcount, add_string, free_string, ...) now take/return const char*. More argument replacing from char* to const char*. Fixed a potential string corruption in recipe.c (when dumping) and readable.c (was using strtok on a add_string-ed string, when strtok changes argument). Fixed a few type mismatch on qsort calls. Global char arrays (messages and such) are const char* too. Removed unused typedefs / structures. Affected files: common/anim.c image.c info.c item.c living.c object.c quest.c readable.c recipe.c shstr.c treasure.c include/arch.h commands.h define.h face.h funcpoint.h global.h god.h libproto.h living.h map.h material.h object.h player.h race.h recipe.h skills.h sproto.h treasure.h random_maps/random_map.h reader.[cl] style.c server/apply.c attack.c c_object.c c_range.c c_wiz.c gods.c main.c monster.c pets.c player.c plugins.c resurrection.c shop.c skill_util.c skills.c spell_attack.c spell_effect.c time.c timers.c socket/item.c Ryo 2005-08-12 Arguments are now const char* instead of char* when available. This ensures the variable is not changed in random places. Affected files: common/porting.c quest.c readable.c recipe.c re-cmp.c shstr.c treasure.c include/libproto.h sproto.h win32.h server/c_misc.c c_object.c c_party.c c_wiz.c egoitem.c gods.c hiscore.c init.c login.c main.c monster.c player.c resurrection.c rune.c shop.c skill_util.c skills.c spell_effect.c spell_util.c win32.c Ryo 2005-08-12 Add help for showpets, and update help for killpets lib/help/{showpets, killpets} Add a new command 'showpets' to give a numbered list of the pets that a player controls. These numbers can be passed to showpets to give more detail about one pet, or they can be passed to killpets to control which pets are killed. Also allow killpets to take a name as an argument. Affected files: include/sproto.h server/{c_misc.c, commands.c} Make random maps take the region of the map creates them. Affected files: random_maps/{random_maps.h, random_maps.c} server/main.c Brendan Lally 2005-08-11 ------------------------------------------------------------------------------ Changes for 1.8.0: Update for release 1.8.0. include/Makefile.am: missing quest.h file Rest automatic rebuild MSW 2005-08-10 Replaced "depletion" by ARCH_DEPLETION (defined in object.h). Affected files: common/living.c include/object.h server/apply.c gods.c spell_effect.c Ryo 2005-08-10 server/player.c: Set map for arrow as returned by get_map_flags - otherwise when firing at edge of tiled maps, arrows could end up in wrong place. MSW 2005-08-09 include/config.h: Make DEBUG default - appears last commit changed this as unrelated to actual changes in place. include/sproto.h: Rebuild server/player.c: fire_bow() - add checks for wall/out of map. fire_bow() wasn't using right coordinates on check, which caused problems in threewide mode at edge of maps. MSW 2005-08-07 plugin_logger/plugin_logger.c: make it compile under Win32. Ryo 2005-07-30 server/player.c: fix crash when news or rules > HUGE_BUF. Ryo 2005-07-29 server/{monster.c, pets.c}: Fix bugs in arena petmode and clean up most of it's logic into it's own function. lib/help/petmode: Document the arena petmode in the "help petmode" output. Alex Schultz 2005-07-28 server/skills.c: use correct sp/grace for inscription. Ryo 2005-07-27 The following changes prevent spells in player's inventories from being damaged by casting spells, using skills, or praying. server/attack.c: Limit cancellation and acid attacks to visible objects only. server/gods.c: Limit god granted remove curse/damnation to visible objects only. server/skills.c: Limit the skills sense curse and sense magic to visible objects only. server/spell_effect.c: Limit the spells detect curse and detect magic to visible objects only. Andreas Kirschbaum 2005-07-26 server/skill_util.c: don't try to send a message if monster killed/removed. Ryo 2005-07-23 socket/init.c: settings values to 0 before using'em works better, usually ^_- Ryo 2005-07-22 random_maps/random_map.h: Add prototype for set_random_map_variable(). server/main.c: Remove prototype for set_random_map_variable(). lib/Makefile.am, lib/Makefile.in, lib/help/whereabouts: Add help for whereabouts command. server/apply.c: Properly terminate destination string with '\0' in apply_item_transformer(). Avoid clearing the string buffer multiple times. Andreas Kirschbaum 2005-07-20 doc/Developers/item_transformation: fixed documentation. server/apply.c: remove incorrect comment. Item transformer uses food for max use. Replaced some hardcoded values with define. Modified files: common/arch.c include/object.h plugin/plugin_python.c server/apply.c attack.c build_map.c spell_attack.c spell_effect.c time.c Ryo 2005-07-19 include/win32.h: add PLUGIN_SUFFIX definition. Ryo 2005-07-18 server/plugins.c: Merge mostly identical code from #ifdef WIN32 and #else blocks. Use opendir/readdir/closedir instead scandir for Unix because WIN32 probably does not have these functions. Prevent loading one plugin multiple times. include/sproto.h: Update prototypes for plugin functions. server/c_wiz.c: Add success/failure messages to plugin and plugout commands. Do not crash due to missing parameter. Andreas Kirschbaum 2005-07-18 server/pets: Fix off-by-one error in follow_owner(). server/c_wiz: Allow the summon and teleport commands to place the summoned player/DM north-west of DM/player. Andreas Kirschbaum 2005-07-17 Use const char* instead of char* when possible. Remove unused variables in weather code. Affected files: common/map.c region.c utils.c crossedit/stubs.c include/funcpoint.h libproto.h sproto.h random_maps/standalone.c server/weather.c Ryo 2005-07-17 server/apply.c: Make converters that increase value non-functional. Andreas Kirschbaum 2005-07-17 server/{monster.c, pets.c}: Fixed bug in previous commit of arena petmode that cause pets that should be friendly to eachother to fight. Alex Schultz 2005-07-16 common/{map.c, readable.c, treasure.c}, crossedit/{Attr.c, png.c, Cnv/{CnvFiles.c, CnvPath.c}}, plugin_animator/plugin_animator.c, plugin_logger/maps.c, server/{alchemy.c, c_misc.c, c_wiz.c, init.c, main.c, monster.c, pets.c, player.c, resurrection.c, rune.c, skills.c, spell_effect.c, time.c, weather.c}: Fix spelling errors in string constants. server/c_misc.c: Remove superfluous trailing '\0' from strings. Andreas Kirschbaum 2005-07-15 server/{c_misc.c, monster.c, pets.c}, include/player.h: Add new "arena" petmode which allows pets to attack players and other pets while in the arena. Alex Schultz 2005-07-16 *Makefile.in, aclocal.m4, configure: Rebuilt generated files. lib/Makefile.am: Update list of help files to install. server/skills.c: Do not reveal a hidden DM in attempt_jump(). server/skills.c: Do not reveal a hidden DM in steal(). server/player.c: Ignore hidden DM in stand_near_hostile(). Formerly it always returned false if a hidden DM was present. Andreas Kirschbaum 2005-07-15 server/c_object.c: Improved pickup. You can now do pickup +bow, or pickup -shield. Much simpler then fiddling with sums of 2^x values. Ryo 2005-07-15 server/c_party.c: Make party passwords with a length of 8 characters work again. lib/artifacts: Fix type of lockpicks of quality/high quality. Andreas Kirschbaum 2005-07-15 Those commits remove the dependency on the plugin towards the library. All functions used from the plugin are hooked, instead of being called directly. This fixes bugs under Windows, and simplifies compilation. Also, many new callbacks were defined. Affected files: include/plugin.h plugproto.h sproto.h plugin/plugin_python.c server/plugins.c Note that at some point some functions could be moved out of plugin_python and put in plugin_general to be shared between different plugins. Ryo 2005-07-15 Those commits remove the whole "glue/callback" logic. Instead functions are just defined as external, and should be implemented (even as dummy) by all programs. Affected files: common/arch.c button.c glue.c init.c item.c living.c logger.c los.c map.c object.c time.c treasure.c crossedit/stubs.c: new file with dummy functions. crossedit/Makefile.[in|am]: add this new file. include/funcpoint.h libproto.h sproto.h random_maps/standalone.c: add dummy functions for those externals. server/init.c: remove obsolete setup_library() Added a wrapper function for check_trigger from plugins. include/plugin.h: new function server/plugins.c: wrapper for check_trigger. Ryo 2005-07-15 plugin/plugin_python.c: (add|free)_string should *not* be called directly under Win32. Therefore let's use the hooks. Also, when removing an object, better check it's not the current object (CFPython.RemoveObject(CFPython.WhoAmI()) anyone?). Ryo 2005-07-15 server/spell_util.c: use on_same_map instead of checking directly map pointers. Ryo 2005-07-15 Those changes implement a quest tracking system. Check the doc/quests document for more info. common/quest.c: new file with a few quests-related functions. doc/Developers/mapguide: point to quests file for instructions on quests. doc/Developers/quests: new file with instructions on how to use quests, and implementation details. doc/Developers/README: added quests file. include/libproto.h: new functions in quest.c. include/quest.h: new file with a few defines for quests. include/sproto.h: new function command_quest, update talk_to_wall definition. lib/help/quests: new help file for quests command. server/c_misc: new command_quests function. server/commands.c: link command_quests to "quests". server/monster.c: update talk_to_wall and talk_to_npc to check for quests. server/time.c: modify marker behaviour to handle quests. Ryo 2005-07-14 common/{button.c, treasure.c, utils.c}, server/{c_wiz.c, login.c, shop.c, skill_util.c, spell_effect.c}, socket/{image.c, item.c}: Fix printf like format specifiers. At least one of them fixes a means to crash the server. Andreas Kirschbaum 2005-07-14 Those changes introduce party spells. Casted spell should be defined through 'other_arch' field. Note that this needs through testing to make sure it works as intended. include/spells.h: new spell type, 'party spell'. server/spell_util.c: new spell type, party spell. Ryo 2005-07-10 server/{login.c, player.c}: Fix buffer overflow with pl->title. Based on patch by Scott Kullberg. crossedit/{Edit.c, Cnv/CnvPrompt.c}, server/{ban.c, hiscore.c, login.c, player.c, shop.c, win32.c}: Properly terminate destination string of strncpy with '\0'. server/init.c: Fix error message. Andreas Kirschbaum 2005-07-10 configure.ac, configure, aclocal.m4, Makefile.in: Add AM_MAINTAINER_MODE macro to configure.ac - this should hopefully supress auto regeneration of makefiles.in MSW 2005-07-08 Add a --with-python option to configure. Also, update the python detection script to check for 2.5 (not out yet, but might as well be prepared.) Will try to commit files in proper order so that dependency checking is correct and it won't try to rebuild makefiles or other files. -- acinclude: Updated checks for --with-python aclocal.m4: updated configure.ac,configure: Updated checks for --with-python config.sub, config.guess - update to latest versions INSTALL: Updated build directions MSW 2005-07-08 lib/Makefile.am, lib/Makefile.in: Remove map_check from normal distribution due to different license on file. random_maps/monster.c: Reduce monster density on random maps - take into account size of monsters when calculating density. utils/metaserver.pl.in: At a timeout value that limits how often clients can ask for metaserver info. MSW 2005-07-08 lib/settings: Turn of fastclock as default option. socket/loop.c: Change behaviour of metaserver/flushmaps/watchdog calls if fastclock is set - don't do those any faster than normal. MSW 2005-06-22 Server can now be used as a Windows server, with command-line options -regsrv (register server and exit), -unregsrv (unregister server and exit) and -srv (should not be used directly, for the service control manager call). server/init.c: add command-line options. server/main.c: loop is no more infinite under Windows. Save and clean after it, too. server/win32.c: add service routines. Ryo 2005-06-22 common/living.c: Print correct message when (un-)wearing items with negative luck. Andreas Kirschbaum 2005-06-14 include/living.h: Patch from Kari Pahula to remove obsolete variable declarations. Andreas Kirschbaum 2005-06-01 server/skill_util.c: Print correct permanent experience ratio for experience values >2 billion. Andreas Kirschbaum 2005-05-22 server/apply.c: Do not unlock LAMP items when turning them on or off. server/apply.c: Fix CONVERTER items with slaying "money" to trigger for MONEY items only. server/player.c: Generate proper plural name for player's gravestones. Andreas Kirschbaum 2005-05-21 Ensure that object->msg always has a trailing \n character. This is necessary to prevent corrupted map files. plugin/plugin_python.c: Add trailing \n to message set by CFPython.SetMessage() if not already present. server/plugins.c: Add trailing \n to message set by HOOK_TELEPORTOBJECT if not already present. server/rune.c: Add trailing \n to rune messages. Andreas Kirschbaum 2005-05-21 Apply qal21's patch [ #1205421 ]: Implement new Python functions: GetArchType, GetFacing, GetLevel. plugin/plugin_python.c, plugin/include/plugin_python.h: Add new functions. doc/Developers/python: Describe new functions. Andreas Kirschbaum 2005-05-20 server/monster.c: Fix monsters to cast spells from spellbooks. Andreas Kirschbaum 2005-05-15 Fixed compilation issue. server/apply.c: can't declare a variable after some function call. socket/info.c: removed unused variable. Ryo 2005/05/07 Corrected code to compile under -ansi gcc flag: * correction of some non posix compatible calls around scandir * changing configure to detect the absence of 'alphasort' prototype * converted some '//' comment to /**/ one * reran automake1.8/autoconf2.50/autheader2.50 Note even it it compiles with -ansi -pedantic, it still need cleanup to get 64 bits experience code working! Tchize 2005/05/07 Applied Casper1's patch [ #1193516 ] for Hurd support. * socket/lowlevel.c: #ifdef some code part that won't work. Change some char* to const char*, when values shouldn't be changed. Changed files: * include/libproto.h * common/arch.c * common/living.c Ryo 2005-05-03 Change some char* to const char*, when values shouldn't be changed. Changed files: * include/sproto.h * socket/info.c * socket/item.c Ryo 2005-04-30 Change some char* to const char*, when values shouldn't be changed. Changed files: * include/sproto.h * server/apply.c * server/ban.c * server/spell_util.c Ryo 2005-04-27 server/skills.c: Change it so that jeweler skill is used to identify amulets, not alchemy skill. MSW 2005-04-27 Apply patch 1190107 so server compiles on HURD. common/porting.c: Add define for MAXPATHLEN socket/init.c: Add check for __GNU__ for setsockopt() MSW 2005-04-27 Change to have objects generated by creator properly fixed up (material, for potions, spell object, etc). --- common/treasure.c: add GT_MINIMAL flag to change_treasure() to do minimal processing for objects created. include/treasure.h: Add GT_MINIMAL define. server/apply.c: Add call to fix_generated_item() in convert_item() MSW 2005-04-27 Various minor bugfixes. common/los.c: Patch to fix negative lighting. Use isqrt instead of sqrt, so we only want integer values anyways. include/libproto.h, include/sproto.h: Rebuilt as there were some improperly matching prototypes. random_maps/rogue_layout.c: Replace sqrt with isqrt calls. server/c_misc.c: Make name_cmp() a static declaration so it won't be put in the sproto.h file. server/init.c: Remove /* within comment string. server/monster.c: Change sqrt to isqrt MSW 2005-04-16 Those changes are just changing char* to const char* in some function prototypes. Affected files: common/recipe.c common/region.c common/treasure.c common/utils.c include/libproto.h: match headers. server/main.c Ryo 2005-04-16 Those changes add the ability to transform items through 'item_transformer' (163)-type items See doc/Developers/item_transformation for more info. common/item.c: don't display 'slaying' field for food. include/define.h: add new 'ITEM_TRANSFORMER' type. include/sproto.h: add new function 'apply_item_transformer'. server/apply.c: new 'apply_item_transformer' function to handle that item type. Ryo 2005-04-15 common/map.c: map pathnames are now const char*, no reason for something else. common/region.c: remove unused variable. include/libproto.h: update functions definitions. include/sproto.h: weathermap_to_worldmap_corner now returns a const char*. include/win32.h: define missing NAME_MAX as MAX_BUF. server/c_misc.c: remove unused variable. Use const char* when possible. server/weather.c: weathermap_to_worldmap_corner now uses const char* as return type. Ryo 2005-04-14 Random map code improvements - add support for subdirectories in the style maps for random maps. Add difficulty_increase parameter for random maps to control how fast they get harder. doc/Developers/random-maps: Add notes about difficulty_increase parameter. random_maps/Makefile.am: Update proto directive to use cproto, not cextract. random_maps/random_map.c: Update to use difficulty_increase when figuring difficulty of maps. Add code to save it in list of parameters. random_maps/random_map.h: Add difficulty_increase field to structure. random_maps/reader.l, reader.c: Add code to find difficulty_increase parameter. random_maps/rproto.h: rebuilt. random_maps/special.c: Pass in difficulty increase to write_parameters_to_string() random_maps/style.c: Remove old scandir - replaced by our own load_dir() - necessary because we need to check type of files, which scandir doesn't easily let us do. Since it is now our own routine, just return array of file names instead of dirent structures. MSW 2005-04-13 utils/Makefile.am: Add cfmeta-rrd to list of files to add to distributions utils/cfmeta-rrd: Example of sample script that takes data and stores it into rrd file and draws graphs (new file). utils/metaserver.pl.in: Add recording of useful stats to external file so they can be processed by other external scripts. MSW 2005-04-13 server/shop.c: Pass in player object to pay_from_container() - code was trying to deref pouch->contr which was null. Only occurs when player has 2 different money objects of the same type, but 2 crashes observed on metalforge. MSW 2005-04-13 socket/image.c: Change esrv_send_face to check for <=0 instead of <0 on face number. socket/request.c: Change if statement that acted improperly to determine when to send faces. MSW 2005-03-27 include/sproto.h: get_who_escape_code_value is void, not void*. server/c_misc.c: move local function outside the function. server/c_wiz.c: remove sleep( 1 ) that would cause whole server to sleep one sec. Ryo 2005-03-23 common/living.c: Allow luck to drop back to zero. Limit bad luck object to +/-100 to prevent overflows. Andreas Kirschbaum 2005-03-22 common/living.c: When randomly adjusting luck, change both op->stats.luck and the applied bad_luck object. server/attack.c: Do not decrease luck if a player kills himself with a spell or pet. Andreas Kirschbaum 2005-03-20 server/c_wiz.c: change command_free() and command_remove() to always process the head of the object - doing this operations on the non head will typically always cause problems. MSW 2005-03-19 This change makes it so that the smoothing information is pushed to the client (if the client is using smoothing) instead of a process were we tell the client the smoothlevel and the client then has to request the face info for smoothing. If we know the client wants the info, much easier to push it to the client. This simplifies the client code (doesn't have to keep track of what is requests). It also fixes the 'problem' that when you join the game, you get a few frames with no smoothing and then the smoothing shows up, which seems a bit odd. My testing shows that old clients that want smoothing use this new logic withouth any problems. -- common/image.c: add smooth_face default so that we don't have to look it up everytime. include/define.h: Add SMOOTH_FACE_NAME used by image.c include/global.h: Add smooth_face extern declaration. include/newserver.h: Update comment on what faces_sent is used for, add NS_FACESENT_* values which determines what info for the face was sent. socket/image.c, socket/init.c, socket/item.c: Update faces_sent checks/set to check against NS_FACESENT bitmask. socket/request.c: Update faces_sent as mentioned above. And SendSmooth(), rewrite AskSmooth() to use SendSmooth(). Modify update_smooth() to send smoothing information to the client. MSW 2005-03-19 common/map.c: Clean up if statement ins blocked_link() which caused warning messages - broke it apart to make it a little clear. Add check for premature end of map header - make code more resilent in case of truncated saved maps. Fix saving of region name in new_save_map() - saving the pointer to the region isn't what the loader is expecting, and is highly non portable even if it was. MSW 2005-03-18 Applied patch: * #1145089 (cavesomething): Region support. common/Makefile.am: add new 'region.c' file. common/init.c: add 'REGIONS' setting. common/map.c: add 'region' map key. include/config.h: add regions file default name. include/global.h: add 'first_region' global variable and settings. include/libproto.h: add region.c functions prototypes. include/map.h: add region structure. include/sproto.h: add new region-related command. lib/Makefile.am: add 'regions' file. lib/regions (new): regions definition file. server/c_misc.c: add region information to current_map_info. Add new 'whereami' command. server/commands.c: add 'whereami' command. server/init.c: add regions settings, and load data. Ryo 2005-03-15 Applied patches: * #1119366 (salathar): wiz food, DMs don't use food anymore. * #1161816 (cowboyatheart) : Add wands/staves/rods/horns to new pickup. * #1119762 (salathar): afk command. common/loader.[lc]: add 'FLAG_AFK'. include/define.h: add 'PU_MAGIC_DEVICE. Add 'FLAG_AFK'. include/sproto.h: add 'command_afk'. server/c_misc.c: add 'AFK' to who display, add command_afk. server/c_object.c: add new flag to dump. server/commands.c: add command_afk. server/player.c: wiz don't use food. Check for rod/wand/horn for new pickup flag. Ryo 2005-03-13 *Makefile.in, aclocal.m4, configure, utils/config.guess, utils/config.sub, utils/ltmain.sh: Rebuild generated files. acinclude.m4: Check whether Python supports the "L" format specifier. Do not build python plugin if not. Andreas Kirschbaum 2005-03-09 common/{map.c, readable.c, treasure.c}, crossedit/Attr.c, server/{apply.c, attack.c, c_wiz.c, init.c, monster.c, pets.c, shop.c, skill_util.c, skills.c, spell_attack.c, spell_effect.c, time.c}, socket/{info.c, request.c}: Add missing newline character to LOG() messages. common/living.c, include/living.h: Change type of weight_limit to uint32. socket/request.c: Remove non-portable assignment to rvalue. doc/{README_PLUGINS.doc, README_PYTHON.txt, plugins}, doc/Developers/{README, plugins, python}: Update plugin documentation. plugin/plugin_python.c, plugin/include/plugin_python.h: Whitespace changes, remove obsolete comments. plugin/plugin_python.c: Only set WhoAmI when running the command registered by CFPython.RegisterCommand. Set default result value to "success". plugin/plugin_python.c: Fix memory leaks by freeing old strings before assigning a new value. plugin/plugin_python.c: Use correct format specifiers for item values and experience values. plugin/plugin_python.c: Make CFPython.IsCanBePicked return whether the object can be picked up. (Did return whether the object cannot be picked up.) plugin/plugin_python.c: Do not return a pointer to a variable on the stack. server/plugins.c: Fix pointer type mismatch while processing CFPython.RegisterCommand. plugin/plugin_python.c: Change second parameter of CFPython.CheckMap to use a map object instead of a map name. Now it works for tiles maps. acinclude.m4: Add check for python 2.4 to match this file with aclocal.m4. Andreas Kirschbaum 2005-03-06 plugin/plugin_python.c: Increase limits of values the Python script may set to the ranges given by objects in the archetypes file. Andreas Kirschbaum 2005-02-28 common/object.c, include/libproto.h: change nrof parameter of get_split_ob to uint32 type. server/c_object.c, include/sproto.h: change nrof parameter of drop_object to uint32 type. plugin/{plugin_python.c, include/plugin_python.h}, plugin_animator/{plugin_animator.c, include/plugin_animator.h}, server/{apply.c, attack.c, gods.c, monster.c, player.c, skills.c, time.c, timers.c}: Change type of CFParm.Value[5] and StackParm1[] to uint32 to be able to pass an "nrof" value. plugin/plugin_python.c, plugin/include/plugin_python.h: Remove spell wrapper functions. plugin/plugin_python.c, plugin/include/plugin_python.h: Replace skill-IDs by skill names. Remove skill-ID wrapper functions. Andreas Kirschbaum 2005-02-20 ------------------------------------------------------------------------------ Changes for 1.7.0: configure, configure.ac, include/autoconf.h.in: Update for version 1.7.0. Add check for libz - needed by libpng (at least on my system), which is needed for the editor. MSW 2005-01-23 common/object.c: Change CAN_MERGE() from an inline function, since it calls itself and inline functions are not supposed to do that. Update type check in insert_ob_in_map() to check against defined type (EXIT) instead of hardcoded integer value (66). crossedit/xutil.c: Update to just include Defines.h, which then includes all the other necessary files, including global.h. include/global.h: Add #ifdef checks for the UINT*_MAX types, as some systems already define these values, which results in a redefinition error. Also fix up // style comment. include/shstr.h: Include proper cast in TOPBIT definition. server/main.c: Don't display 'xyz left the game' messages if the player is only at the get name or get password prompt. Prevents possible spoofing of that message. server/player.c: Clean up formatting of check_pick() function. If player is using newpickup to pick up booze, also pick up poison unless they know it is cursed. socket/request.c: AskSmooth() - change buffer type to uint8 so that it matches what the SockList structure wants. utils/scores.pl.in: Use skill_praying to find players god, and not the deprecated experience_wis object. MSW 2005-01-23 aclocal.m4, configure: Add check for python 2.4. common/re-cmp.c: Fix improper comparison *(str+1) instead of str+1 server/login.c: don't allow null names. server/main.c: Disable logging of removed objects - filling up log files on archmage of all the errors. server/player.c: Fix improper initialization of attacktype in for loop. Give players max grace, sp when they die - also, if they are near starvation, give them a bunch of food. server/spell_effect.c: Put cap on duration of godly retribution - it can otherwise last so long that if a player is killed by it at their savebed location, spell could still go on after players temporary immunity ends. Retribution as increases in damage, so no need to really increase damage and duration to really high amounts. server/spell_util.c: In fire_arch_from_position(), and check that player isn't casting spell on top of wall - fixes for many spells, including ball lightning. server/time.c: Change comparsion on return of get_map_flags() from == P_OUT_OF_MAP to & P_OUT_OF_MAP - keeps syntax consistent. MSW 2005-01-11 plugin/plugin_python.c, plugin_animator/plugin_animator.c, plugin_animator/plugin_animator.c: Use script return value set by CFPython.SetReturnValue(): access to stack was off by one. Do not return a pointer to a local variable on the stack. plugin/plugin_python.c, plugin_animator/plugin_animator.c: Handle all defined events. Andreas Kirschbaum 2005-01-10 server/spell_attack.c: apply patch #1096921 courtesy Salathar. Charmed monsters now lose the 'generator' flag, to prevent things like mice outbreak in bigworld maps. Ryo 2005-01-07 plugin/plugin_pyhton.c, plugin/include/plugin_python.h: Remove obsolete functions: SetGender, SetRank, SetAlignment, SetGuildForce, GetGuildForce, CreatePlayerForce, CreatePlayerInfo, GetPlayerInfo, GetNextPlayerInfo, SetPreviousObject, SetNextObject. plugin/plugin_python.c, plugin/include/plugin_python.h: Add missing attack type wrapper functions, function CFPython.SetDamned(), wrapper functions for missing cost flags, and wrapper functions for event types. plugin/plugin_python.c: Add an optional parameter to CFPython.SetName() to specify name_pl as well. Always set name_pl. plugin/plugin_python.c: Fix a buffer overflow in CFPython.RegisterCommand(): allocated memory was not sufficient to hold the trailing '\0'. plugin/plugin_python.c: Use #define constants. plugin/include/plugin_python.h, plugin/plugin_python.c, plugin_animator/plugin_animator.c, server/plugins.c: General cleanup - merge duplicate code, remove debugging code, rename variables, rename C function names to match the Python function name, use hook functions where appropriate. include/sproto.h, plugin/plugin_python.c, server/plugins.c, server/shop.c: Use uint64 type for variables holding money. Use Python long integers to pass these variables to/from the Python plugin. Andreas Kirschbaum 2005-01-07 plugin/plugin_python.c: Check values passed in from the Python code; generate proper Python exceptions for invalid values. plugin/plugin_python.c, plugin_animator/plugin_animator.c: Make sure all fields on the stack are initialized. Prevent stack overflow: check was one off, causing a buffer overflow. Decrement stack pointer in error case. Andreas Kirschbaum 2005-01-06. common/regexp.c: Fixed couple flaws in regexp handling. First, there was an off by one error in the handling of matches (if the match was for example eureca, player could just say eurec, and it would treat that as a valid match). Second case was that the regular expression logic would not try comparing the rest of the passed in string after a partial match - In the eureca case above, if the passed in string was 'where is eureca', after matching the first e (in where), it then fails to match the next letter and would give up. It now tries comparing the rest of the passed in string with the regex (so after that failure, it will try to match 're is eureca'. server/apply.c: Add missing 'return 0' to shop_mat code that is needed to prevent unpaid objects from teleporting out of the shop. Also extend code so that non living objects can't use shop mats. server/player.c: Insert force into the player when they die making them immune to any spells on the space they reappear on - this prevents multiple deaths if there is large spell effect going on in the savebed location. Duration of force should be long enough for most spells to run their course, but no so long that the player can use it for much of an advantage (plus, killing yourself to get such an advantage seems odd, and the force only makes the player immune to the attacktypes currently on the space) server/spell_effect.c: Fix spell casting walls (lighting wall, firewall, etc) in that the spell object they cast was not being inserted, resulting in the walls not doing anything. MSW 2004-12-28 Applied patch (bug misc/zoo2) by Lalo server/time.c: creators can now create multi part objects. Applied patch 1086102 by Salathar: server/attack.c: If player kills another player, add (pk) to the death message. Applied patch 1086103 by Salathar: server/move.c: If player pushes another player, send message to both players that pushed happened. Previously, when pushing another player, the pusher wouldn't get any notice. MSW 2004-12-28 Applied patch 1001079 - make alchemy books say what skill & equipment is needed - by Kevin Rudat. common/readable.c: Update code that generates book title, contents to denote what skill and equipment is needed. random_maps/{random_map.c, reader.l, reader.c}, server/main.c: Remove generate_treasure_now as an option for random maps - none are using delayed treasure, and IMO, if someone did, it would horribly break things, so it should never be used - given that, no reason to leave the code there. server/main.c: Add additional debugging for process events on removed objects - trying to track down occasional disease crash. server/time.c: Fix crash in move_player_mover() - it was never map tile aware, but even more so, appears to have always been broken if the player move tried to push the player off the edge of a map. Check for out of map condition, as well as make it map tile aware. MSW 2004-12-28 Applied patches #1086095 and 1088385 courtesy Salathar: common/map.c: hidden DM is non blocking server/c_chat: can't do emotions towards hidden DMs. Player's emotions always displayed in split window. server/c_wiz.c: add an extra player leave message when DM hides server/main.c: don't display leave messages for hidden DM when connection timeout server/c_party.c: party password max length is 7, due to buffer size. (i think it was a patch from Casper?) Ryo 2004-12-25 server/c_wiz.c: Remove item when 'free' by DM if not removed, avoiding crash. Ryo 2004-12-22 server/c_party.c: Make party passwords of 8 characters work, disallow longer passwords. Based on patch #1080096 from Casper. Correct help message for party commands. Andreas Kirschbaum 2004-12-10 plugin/plugin_python.c: change 'long long' so 'sint64' (typedef). Ryo Saeba 2004-11-29 common/object.c: apply patch #1066665 courtesy Salathar for exits with blockview 1. lib/formulae: apply patch #1064643 courtesy Salathar to fix broken formulae. lib/wizhelp/speed: remove file, command changed name. lib/wizhelp/server_speed: updated 'speed' command help. server/c_wiz.c: apply patch #1063051 courtesy Salathar to update muzzle message. server/commands.c: apply patch #1052224 courtesy Casper to change 'speed' to 'server_speed' as name is ambiguous. Ryo Saeba 2004-11-25 common/loader.l: Fix passed size in FAST_SAVE_LONG() - was one too long, causing truncated diffs after "dam_modifier" entry. Andreas Kirschbaum 2004-11-15 This commit adds the functionality of patch 991916, although the patch as submitted was used as a baseline to start from. include/sproto.h: rebuilt server/c_chat.c: Rename command_chat() to command_tell_all() which takes a few more optional parameters. Add command_shout() and command_chat() that invoke command_tell_all() with the appropriate changes. server/commands.c: Add chat to list of command table. MSW 2004-11-08 plugin/plugin_python.c: Run the script python_init.py right after initializing the interpreter. Andreas Kirschbaum 2004-10-21 server/c_party.c: actually warn party members of password change. Notify when someone joins party. Ryo 2004-10-21 plugin/plugin_python.c, plugin/include/plugin_python.h, server/plugins.c: Fix comments, change whitespace. Andreas Kirschbaum 2004-10-19 Fix some bugs I introduced in my last commit. common/map.c: Add back in call to sum_weight that got removed when removing the object checking code. common/treasure.c: Have fix_generated_item() blank out the randomitems field after it has created treasure. server/apply.c: Only clear randomitems after create_treasure() - don't presume it should get blanked out for other reasons - with change to treasure.c above, this should be more reliable and fix starting skill issue, as randomitems was getting blanked out for CLASS object. server/main.c: Change processing of players a little - found crash where autosave was called for a removed player (map had got swapped out) - don't do autosave logic if player is removed. Move the autosave code to after the players action, so that can just have a single check of removed status. MSW 2004-10-17 include/sproto.h, server/egoitem.c: Change create_artifact() to return whether the artifact was created. server/plugins.c: Change CFWCreateArtifact()/HOOK_CREATEARTIFACT to return whether the artifact was created. plugin/plugin_python.c: Define new function create_object() to create objects. Use this function to fix CFPython.CreateObjectInside() and CFPython.CreateObject(): creation of artifacts does work now. plugin/plugin_python.c: Fix CFPython.GetNextPlayerInfo() to work with long force names. Remove duplicate variable initialization. server/plugins.c: Remove the use of malloc() in initOnePlugin(). Andreas Kirschbaum 2004-10-18 plugin/plugin_python.c, plugin_animator/animator_box.c, plugin_animator/plugin_animator.c, plugin_logger/arena.c, plugin_logger/plugin_logger.c: Use HOOK_FREEMEMORY to free memory allocated by HOOK-functions. Fix memory leaks. plugin/plugin_python.c, server/plugin.c, plugin_animator/animator_box.c: Fix some more mismatches between plugin interface and implementation. CFPython.Get/SetSkillExperience() use 64-bit exp values now. CFPython.CastAbility() works again. Andreas Kirschbaum 2004-10-16 plugin/plugin_python.c, server/plugin.c: Fix type mismatches between plugin interface and implementation. plugin/plugin_python.c, server/plugin.c: Add/remove "static" to/from some variables. Fixes a memory leak in CFPython.SaveObject(). plugin/plugin_python.c: Fix reference counting for Python objects. Andreas Kirschbaum 2004-10-15 common/living.c: Fix exp functions to use the player objects expmul value when determining level gains, and not the skills. Also, fix bug where players last hp/sp/grace gain I think was being re-rolled when player gained level in skill. common/loader.l, loader.c: Add better recording of non existant objects (no archetype for them) in maps. Also, handle such objects in players inventories properly (which is to just discard them) common/map.c: Add better logging about discarded archetypes. Since the loader now deals with objects without archs in inventories, that code doesn't need to be in the server. common/object.c: copy_object() was not properly nulling out the next field in the event object, pointer to event list was also incorrect, causing events to not be copied properly. doc/spoiler-html/spoiler.html: Rebuilt. server/apply.c: Apply patch by MT that fixes problem of entire inventory not being copied properly. Fix problem that objects in creatures were not having any sub treasure created (eg, put a pyro_book in a monster on the map, and the pyro_book wouldn't have a spell in it) - now we make sure we process inventory objects as well as map objects, creating treasure as needed. server/monster.c: Reverse order of cast_spell() and drain_rod() in monster_use_range() - drain_rod() should go first, because case_spell() can in rare cases destroy the rod. MSW 2004-10-14 server/c_misc.c: Add natural skin resistances to 'statistics' output for dragon players. Ryo 2004-10-10 common/readable.c: Apply patch by Kevin Rudat to add some alchemy book names. common/readable.c: Apply patch by Kevin Rudat to fix buffer overrun while generating book titles. Andreas Kirschbaum 2004-10-09 include/sproto.h: Add function prototype. server/c_wiz.c: Add 'command_stack_clear' to clear DM item stack. server/commands.c: Link function to function array. Ryo 2004-09-26 server/player.c: Allow to 'reply' to players that logged out but did not yet drop the connection. Now reply works like other communication commands. common/utils.c: Fix random_roll() and die_roll() to not return out of range values. include/define.h: Add parentheses around arguments of FABS macro. Andreas Kirschbaum 2004-09-19 server/rune.c: Prevent creation of level 0 runes. Re-enable runes to cast multiple spells. Andreas Kirschbaum 2004-09-14 include/config.h: fix Win32 log path so there actually is a log. plugin/plugin_python.c: uint doesn't exist under Win32, use uint32 instead. Patches from tracker, courtesy Kurtat: patch 1022942: Random documentation updates doc/SurvivalGuide doc/Developers/programming_guide doc/Developers/protocol lib/settings lib/help/cast patch 1022973: Words for numbers in spellbook description server/c_object Ryo 2004-09-12 server/attack.c: Pass in skill (string) to change_exp instead of skop->skill - skop can be null, resulting in a crash here. In addition, other calls to change_exp in this function use the skill string, so it is good to be consistent. MSW 2004-09-09 server/c_wiz.c: Don't forget to skip blanks after reading item number or stack position. Works better for commands like patch :) Ryo 2004-09-06 common/object.c: Fix insert_ob_in_map so right coordinates and map value are used on GET_MAP_OB call - was using values before changes for tiling were applied. MSW 2004-09-02 server/player.c: allow to 'talk' to players with ambiguous names: use a perfect match even if other partial matches exist. Andreas Kirschbaum 2004-08-30 include/define.h server/shop.c add new flags F_IDENTIFIED and F_NOT_CURSED to query_cost() to pretend the item to be identified/not cursed or damned. server/alchemy.c fix possible abuse of shadow alchemy: do not allow the generated items to be more valuable than the ingredients when using alternate recipes. Andreas Kirschbaum 2004-08-24 common/map.c: Add extra check to make sure variable is set before calling strcmp - this can happen if the map file that is being loaded is 0 bytes - without this, the server would crash. MSW 2004-08-23 server/disease.c: fix crash when casting diseases on tiled maps. server/move.c: fix problem with multi-tile monsters and pass thru walls. server/spell_effect.c: fix magic walls sometimes appearing in wrong place. Andreas Kirschbaum 2004-08-20 common/loader.l, loader.c: in check_loaded_object() - don't give spell objects inventory if we are in the arch_init phase. When loading objects in common loader routine, if object doesn't have arch, set the object name to the arch name so that it is more meaningful than 'singularity'. common/map.c: If object has inventory, check to make sure the inventory objects have an archetype set - if not, remove and free the object - objects without archetypes causes crashes. MSW 2004-08-17 server/apply.c: fix_auto_apply() - add some debugging statements, as I've seen crashes caused by monsters with scrolls with no spells - need to figure out how those are showing up. server/c_wiz.c: command_kick() - fix occasional crashes when player isn't on any map when kicked. command_create() largely rewritten so it doesn't crash the server on any malformed values passed in, add some more features so it should be easier to create objects. MSW 2004-08-16 server/apply.c: better to not create a treasure for spellbooks that already have something in inventory. Else you get 2 spells in the book, which then mutates when loading (first spell is the book's spell, and order changes every load/save...) Ryo 2004-08-16 Those changes mostly add an item stack for DMs. It makes it easier to dump & patch & manipulate items without having to copy numbers all the time. Basically, you can use '$x', meaning item at position x on stack. Or even omit argument, defaulting to stack top. When using an object number, it gets stacked automatically (up to 50 items). Also add a 'diff' command, letting the DM see the result of 'get_ob_diff' on items, to spot differences easily. common/player.c: free item stack when freeing player structure. include/player.h: add item stack to player structure. include/sproto.h: new functions for stack. include/win32.h: missed commit for 1.6.1 version. server/c_misc.c: push item dumped with 'deumpbelow' on dm stack. server/c_wiz.c: add stack functions. Use'em on patch, create, remove, free, and such. Add 'diff' command. server/commands.c: add new stack & diff commands. Ryo 2004-08-15 server/spell_attack.c: fix mood_change when spell has no attacktype. In this case, do a specific saving throw, to ensure a level 1 player can't charm a level 125 monster. Ryo 2004-08-14 random_maps/exit.c random_maps/random_map.c random_maps/random_map.h random_maps/reader.l random_maps/rproto.h random_maps/special.c random_maps/wall.c added fix for random maps with single arch walls, added level indicator on random map signs added new parameter 'exit_on_final_map'- see documentation TM 2004-08-07 include/plugin.h plugin/plugin_python.c server/c_wiz.c server/plugins.c add event hooks for Kick and Muzzle(toggle_shout) commands. fix CFSetQuantity by changing the int to uint and remove 100000 item limit. pythonplug now looks for event scripts in maps/python/events. TM 2004-08-02 server/skills.c: xp for writing is now multiplied by skill level, to make it possible to level. Ryo 2004-07-17 common/loader.c: add #ifndef for non-existant Win32 header include/win32.h: #define vsnprintf _vsnprintf to fix linking issue Ryo 2004-07-03 server/skill_util.c: Fix skills command so that it properly displays percentage of permanent exp. server/time.c: Modify move_arrow() so that it removes thrown objects with no inventory. MSW 2004-06-22 socket/info.c: Replace sprintf() calls with snprintf() - got metalforge crash with apparent buffer overun - going to snprintf should prevent the problem in the future. MSW 2004-06-21 server/c_wiz.c: for command_create() - check to see if 'of' parameter is a spell archetype name, and do the right thing if it is. This allows things like 'create rod_heavy of spell_large_lightning'. Note that the command_create is still a seriously broken function in many regards. server/rune.c: Fix write_rune() when trying to find the spell in encase in the rune - assignment was incorrect, so it always took the last matching spell in the players inventory, not the best matching spell. server/spell_util.c: Change the call to prayer_failure() so that its potency is based on how badly short the player is short of grace. Eg, if only 1 point short, potency of 1. This changes from before where the potency was always the difference in mana. MSW 2004-06-17 server/attack.c: Fix hit_with_arrow() so that it uses the proper map when inserting the arrow. server/c_wiz.c: Add note about brokeness of command_create() server/spell_effect.c: execute_word_of_recall() - don't attempt recall if player isn't on any map. MSW 2004-06-15 common/object.c include/define.h include/player.h include/sproto.h server/attack.c server/c_object.c server/player.c server/shop.c socket/item.c socket/loop.c socket/request.c: Remove explicit calls to esrv_update_item(UPD_WEIGHT, pl, pl) for player objects. Instead send the new weight whenever it changes. Andreas Kirschbaum 2004-06-13 server/spell_attack.c: cast_destruction() - have it change the skill for the caster so that exp is properly awarded. common/object.c: insert_map_in_ob() - remove CAN_MERGE checks after the map translation - otherwise, we can have bogus coordinates that are used for GET_MAP_OB. random_maps/style.c: pick_random_object() - have it return null object (and probably crash) instead of getting into an infinite loop. server/c_wiz.c: command_kick() - check FLAG_FREED of player. Remove all the broken skill/exp object granting code in command_possess() - this is probably still a broken function. common/item.c: describe_monster() - if the creature/player is stealthy, mention it when the object is described. common/loader.l, loader.c: Fix passed in size to get_ob_diff() - was one to long, causing string corruption. server/spell_attack.c: mood_change() - fix get_map_ob call - wasn't using correct coordinate variables, resulting in crash. MSW 2004-06-10 server/c_party.c: gsay improvements, courtesy Katia. Ryo 2004-06-09 server/commands.c: Disable 'possess', that crashes server. server/monster.c: Make monsters use wands/horns/... again. Also make'em ignore DMs all the time (even when not invisible). server/skill_util.c: Fix the change_skill when called for monsters. Ryo 2004-06-06 server/c_misc.c: Add sum_weight() call to fix_me command so that players weight is properly recalculated. server/skills.c: Fix up attempt_steal() so that it doesn't improperly remove object from target when person doing the stealing can't pick it up. server/spell_attack.c: Set maxhp properly, so multipled fireballs, etc can be going off at the same time. server/spell_effect.c: Fix up cast_create_missile() so more esoteric missiles can be created. MSW 2004-05-31 include/sproto.h: new 'dmhide' command. server/commands.c: new 'dmhide' command. server/c_wiz.c: added 'dmhide' command. Player becomes DM, and 'hide's immediately. Others only see him/her leave the game, they don't know s/he's DM. Ryo 2004-05-24 include/book.h: Increase the size of BOOK_BUF, so inscribed books can hold more informatin. lib/Makefile.am, lib/Makefile.in: Add the 'rename' to the list of help files. lib/archetypes: update the glyph/rune spells to have proper face. lib/bmaps, lib/crossfire.* - add glyph.111 image. server/gods.c: Modify tailor_god_spell() to look harder to find a god - necessary for glyph spells. server/spell_attack.c: Give players 50% of exp for monsters they charm. MSW 2004-05-19 common/object.c: Correct get_search_arr() to return a proper permutation. Andreas Kirschbaum 2004-05-18 server/main.c: Have process_events display information from dumped object. also, more refinement on checking of object status. MSW 2004-05-16 server/build_map.c: change 'player' variable to 'pl', since a player structure already exists. Also fix disappearing pedestals on non-unique maps (put'em over floor, they are visible but hey, can't have everything :p) server/c_wiz.c: fix learn_spell. Ryo 2004-05-16 server/main.c: freeing removed objects appeared to have more of a consequence than expected - only remove the object if it was on a map (op->map). It turns out that the artifact code uses objects that are removed to store what the new object is. server/spell_effect.c: Fix cast_create_food() to call find_archetype_by_object_name() instead of find_archetype(). In this way, players can use invoke without having to know the archetype name. server/c_wiz.c: Modify command_banish() to record dm name, player name, and date of command. server/acinclude.m4: Patch by acinclude.m4 to add python 2.3 support. Rebuilt files (Makefile.in, aclocal.m4, configure, configure.in). add config.guess, config.sub since automake now includes them in the Makefile.in file. MSW 2004-05-15 Added a new item type: ground positioning system (GPS). This lets a player know his/her location in the world. Only works in 'world_xxx_xxx' maps. include/define.h: add new item type, 'GPS' (162). include/sproto.h: add new function, 'apply_positioning_system'. server/apply.c: handle new item type. Ryo 2004-05-15 server/spell_util.c: SP_level_spellpoint_cost() - never have a spell cost 0 spellpoints due to attunement or other bonuses - spell always cost at least 1 sp/grace. server/main.c: Fix process_events() so it doesn't purge removed players from the list - players get in the removed state at play again prompt. server/apply.c: Fix fix_auto_apply() so we don't generate additional spells for spellcasting objects that already have them (regression from fix from 5/11 below) MSW 2004-05-13 server/pets.c: Fix summon golem, summon pet monsters so that the summoned monsters are not worth any exp. Fixes bugs were players could summon monsters and then kill them. server/skills.c: Fix do_skill_detect_curse() and do_skill_detect_magic() so that they don't process objects the player is incapable of picking up (eg, floors). Fixes experience exploit. server/apply.c: modify fix_auto_apply() so that it properly generates items for creatures that start with objects in their inventory. MSW 2004-05-11 server/spell_util.c: Fix cast_spell() so that failed spells (due to encumberance or other penalties) still cost some random number of grace/ mana points. MSW 2004-05-10 common/treasure.c: Change the loading of the artifacts file to actually calloc() the object - reset_object() doesn't clear all the values, like active_next, active_prev, so better to just do it there. server/main.c: Add code in process_events() that checks for removed objects - have seen occasional crashes caused by them. MSW 2004-05-08 Armor enchantment now uses setting values. common/init.c: new values to init in settings. include/global.h: new setting values. include/config.h: new default values for settings. lib/settings: explanation for those new values. server/apply.c: change armor improvement code to use setting values. server/init.c: read new settings. Ryo 2004-05-08 common/init.c: there's a #define LOGFILE, use it instead of hardcoded value. include/config.h: change default logfile path to previous value in init.c. server/c_wiz.c: Fix 'nodm' displaying incorrect messages, and forgetting to update player count on map. Ryo 2004-05-08 server/apply.c: Fix apply_special() to properly deal with LAMP objects - it wasn't dealing properly with the split off lamp compared to the one it was supposed to deal with - was crashing server. MSW 2004-05-04 common/item.c: describe_monster() - print luck when describing players (fixex perceive self not showing luck) server/attack.c: kill_object() - don't give player exp if he kills himself - compare owner against what was killed, not the hitter. server/pets.c: summon_object() - move breaking out for last treasurelist after we set the last valid treasurelist - otherwise, the list entry for the treasurelist was never used. Change summoned creatures so that the items they have are god given, and thus disappear when they are killed - prevents players from summoning and then looting their pets. server/spell_attack.c: explode_bullet() - Get owner of the spell so that we can properly tailor the explosion portion of the spell for the god of the worshipper. MSW 2004-05-03 server/shop.c: patch from Andreas Kirschbaum for Windows compilation. server/spell_effect.c: patch from Andreas Kirschbaum for Windows compilation. Ryo 2004-05-03 common/porting: changed open_and_uncompress to use const char* instead of char*, since value shouldn't be changed (and isn't). include/libproto.h: changed prototype for open_and_uncompress Ryo 2004-04-28 ------------------------------------------------------------------------------ Changes for 1.6.0: configure, Makefiles: Rebuilt for 1.6.0 release doc/*/Makefile.am: Modified to use one makeps.pl utility in scripts directory. doc/scripts/makeps.pl: Make this the definitive copy - fix problem with it trying to combine big images when it doesn't need to. Remove other copies. doc/playbook/chap1.tex, doc/playbook/chap5.tex: Fix some obvious errors, but overall, the playbook is still quite out of date. doc/playbook/treas2-extract: Have it not include abilities in given items, have it properly deal with multiple underscores in arch names. doc/spoiler-html/spoiler.html, doc/spoiler.ps: Rebuilt MSW 2004-04-26 server/apply.c: apply_savebed() - make call to terminate_all pets before call to remove_ob() so that pets are properly removed. common/item.c, server/c_object.c: Fix code so that skill tools (talismans, holy symbols, etc) are properly describe. Clean up formatting of long_desc() MSW 2004-04-25 Change most shop buy/sell functions to use 64 bit values. Problem arises where player would sell valuable item, and if they wanted to buy them back, it would overflow a 32 bit value, so they could buy them back for free. Note quite as odd when you consider the buy/sell price for really valuable items to be very different. include/global.h: Add UINT32_MAX and other max type defines for our typedef values so that we have standard setting of what the cap is. server/apply.c: Change get_payment call to take second argument. server/plugins.c: Add note about bug in handling of query_cost in this function. server/shop.c: query_cost() now returns 64 bit. Many other functions updated to also take/return 64 bit cost values. Have cost_string nicely deal with values that are beyond affordability. Rename get_payment2() to get_payment(), and remove the later, which was just a simple wrapper function that called get_payment2. server/spell_effect.c: Update alchemy code. Remove some suspect use of static values. MSW 2004-04-24 server/apply.c: fix check_weapon_power() so it operates on overall character level and not skill level - this matches up what the out of skills displays. MSW 2004-04-20 common/button.c: Patch by Bernd Edler to have proper speed set for items activated by buttons. server/apply.c: Apply the 'special prayer' marker stuff, since it wasn't used anymore. server/gods.c: Check for FLAG_EQUIP on spells and not for a special prayer marker to guess if a spell is a god given spell or not. server/spell_util.c: Patch by Bernd Edler so that firewalls are immune to casting time. MSW 2004-04-17 server/shop.c: Decrease adjustment limit for expensive items to 10000 to get a continuous adjustment function. That is you will get much less when selling items with a value between 800pp and 2000pp. Andreas Kirschbaum 2004-04-16 common/map.c: Change blocked_link() to take a map parameter. Also, change code in blocked_link() to assume that the caller has set up appropriate map and coordinates related to tiling (in all functions that currently call blocked_link, this is the case) include/libproto.h: Rebuilt. server/move.c, server/player.c: update call to blocked_link to include the map. MSW 2004-04-15 common/object.c: Change CAN_MERGE() so that it compares the stats structure of the objects being merged. Fixes problems of rings improperly merging with other rings that have different stat values. server/monster.c: Modify check_earthwalls() and check_doors() to take a map structure as an option parameter, and use that structure when calling get_map_ob. Fixes a crash in cases where earthwalls/doors were at the edge of a tiled map, and creature was on other map moving into it. server/move.c: Change move_ob() to adjust coordinates for tiling, and pass in these adjusted coordinages (and map) to the check_() functions in monster.c random_maps/treasure.c: Apply patch by Andreas Kirschbaum so that it does more work in trying to place keys on maps. MSW 2004-04-13 common/living.c: Patch by Bernd Edler to remove cap on exp for players. MSW 2004-04-09 common/item.c: If potion wasn't given a random spell, use the archetype name when it is identified. common/treasure.c: Fix potion codes so that healing and magic power potions get the proper spell inserted into them. Also fix line termination issue. server/skill_util.c: Add check in skill_attack() to make sure current_weapon is not null - there has been some crashes here, but I can't figure out how it gets to this state, so better to at least handle it. MSW 2004-04-07 server/player.c: In flee_player(), make sure the enemy to the player is on an actual map - fixes crashes. MSW 2004-04-06 common/potion.c: Fix up change_abil() to more properly deal with potions - characters could get 0 stat values. Also, messages were not being properly displayed. Patch is slightly modified from one sent in by Bernd Edler. MSW 2004-04-05 server/main.c: Add extra checking for valid map coordinates after we grab them from the destination map itself - if a map is broken and has default enter_ coordinates outside the maps range, this previously resulted in a crash. server/pets.c: Pass the correct map object into insert_ob_in_map(). MSW 2004-04-03 server/monster.c: fixed wiz's hidden mode not working on monsters. Ryo 2004-03-28 common/porting.c include/libproto.h include/win32.h: added 'const' specifier to str-related functions. Ryo 2004-03-26 common/exp.c common/living.c common/loader.[cl] common/porting.c server/c_misc.c server/c_wiz.c server/hiscore.c server/resurrection.c: fixed %lld to %I64d for Windows. Ryo 2004-03-26 server/attack.c: Add scare_creature() function, which sets FLAG_SCARED and also sets up appropriate enemy. Clean up some formatting in other functions, and fix friendly fire - move it out of the loop for all attacktypes (can be after we have figured out max damage). Also, has a bug where if an attach wasn't doing any damage, friendly fire could actually make it do damage (eg, fear spell). server/player.c: Fix up flee_player() to be map tile aware. Also, add call to flee_player() in handle_newcs_player() so player will run away. MSW 2004-03-24 server/attack.c: Add missing skill=NULL in kill_object() - can be rare cases where the proper skill can't be found. server/move.c: Fix push_object() so that it also updates the pushers/ pushees map - should only happen in tiled map cases. server/pets.c: Fix summon_object() so that if a summon cult monsters was cast, we try to find the god from the owner. If still can't find the god, just return instead of crashing. server/rune.c: Change trap_disarm() to call destroy_object() on the trap object, so that all the trapss inventory is also destroyed and not dumped on the ground. server/skills.c: Only players without arms to steal. server/spell_util.c: Change cast_spell to set up the skill pointer for the caster even if the caster is the wizard. MSW 2004-03-22 server/treasure.c: patch from Bernd Edler to enable multiple 'allowed' lines in artifacts. Ryo 2004-03-12 Those fixes make DMs more 'stealthy' (when hiding/unhiding). Also use yet unused colors for player join/leave, and DM join/leave. This way those messages appear in a different window in split window mode, to make the messages easier to spot. server/apply.c: change color for player leave message. server/c_misc.c: let DMs see hidden DMs. server/c_wiz.c: make DMs more stealthy. server/login.c: change color for player joining message. server/main.c: change color for player joining/exiting message. Ryo 2004-03-12 common/item.c: Fixed calc_item_power() to return valid item power for items with high enchantments. Andreas Kirschbaum 2004-03-07 server/spell_effect.c: small patch by Karla Stenger to put player's name in the 'race' field of marking runes. This way, a DM can know who wrote a rune, in case it has some bad vocabulary :) Ryo 2004-03-06 server/spell_attack.c: change check_cone_push function to use arch weights. move function up for resuability and change to check_spell_knockback include/sproto.h: change function name TM 2004-02-28 common/image.c: removed unused variables. common/item.c: conditionally remove unused variables. common/map.c: conditionally define variables, unused under Windows. include/global.h: turned off a conversion warning under Windows. Ryo 2004-02-28 common/living.c: changed 'signed char' to 'sint8' for set|get|change_attr_value. common/map.c: map size is sint16, for arch_blocked. include/libproto.h: update prototypes for set|get|change_attr_value and arch_blocked. random_maps/rproto.h: changed prototype for surround_flag3. random_maps/wall.c: changed surround_flag3 to use sint16 instead of int for map coordinates. server/apply.c: attribute values are sint8 in eat_special_food and apply_changes_to_player. Some explicit casts. server/player.c: map coordinates are sint16, in hideability. server/spell_attack.c: map coordinates are sint16, not int. server/spell_effect.c: stats are sint8 in cast_change_ability. Map coordinates are sint16 in move_aura. server/time.c: generate_monster doesn't return a value. Ryo 2004-02-27 common/living.c: Have give_skill_by_name() update the skill pointers in the player object. server/spell_attack.c: Properly set maxhp in the cone spell - this is used in ok_to_put_more() to make sure one spell doesn't hit a single space too many times. MSW 2004-02-23 common/object.c: Change CAN_MERGE() so that we never merge applied objects - whether or not they are rings. lib/*: different spell for dragons vs players for firebreath - update treasures so monsters use ability version. server/gods.c: Add missing call to link_player_skills(), resulting in players having multiple praying skills. server/skill_util.c: Change learn_skill() so we don't create a skill pointer for the player if they didn't learn the skill (even if they can't use such a created skill, it is still a bit confusing). Fix finding of hand to hand skills to make sure the player can in fact use the skill in question. server/spell_attack.c: Fix cast_cone() so that it properly hits all directions. MSW 2004-02-22 include/define.h,server/shop.c: Apply patch by Bernd Edler that gives bargaining experience based on the amount of money a character saves. Higher the bargaining skill, the more money they can save. MSW 2004-02-16 doc/Developers/spells: Update type on casting_time - include suggested value for times so that results are hopefully more coherent. lib/archetypes, treasures.bld: rebuilt. lib/treasures: Change some of the 'spelldirect' types to just the actual spells, so that two seperate archs don't have to be maintained. server/c_wiz.c: Add some basic sanity checking to command_remove() so that we don't unnecessarily crash. server/skills.c: write_scroll() - have it reset value of the scroll so that the scrolls so inscribed by players have better chance of merging. server/spell_attack.c: cast_cone() - if the caster is a trap, have it hit the center space, so that characters who detonate cone traps will get hit by the effects. Also, reduce range of cone spells if they are going in all directions, compared to being targetted in a speciifc direction. server/spell_util.c: cast_spell() - put lower limit on player speed_left value when casting spells - since higher up the calling stack, the player speed is also reduced, we need to set the lower limit here so that the player isn't out of action longer than they should be. MSW 2004-02-16 include/map.h: removed unused fields from wmapdef.. include/object.h: removed unused field from object.h. Changed glow_radius to sint8 to be coherent with struct MapSpace. include/player.h: removed unused fields from player structure. server/apply.c: removed unused known_spell field. Ryo 2004-02-16 common/object.c: change get_owner() so that it also returns no valid owner if the owner is removed. This fixes a crash if a player quits but is still sitting at the play again prompt when something he owns kills something. server/skill_util.c: Fix show_skills() so that if the character has too many skills for whatever reason, we don't crash, and instead print an error to the player. server/spell_attack.c: Fix typo - not sure actual effect, but probably nothing good. '+ +' should just have been '+' MSW 2004-02-12 common/Makefile.am: Clean up proto - lex seems to toss some new symbols in now days. common/map.c, common/object.c, server/player.c, socket/item.c, socket/request.c: change parameters of get_map_from_coord from int to sint16, so the op->x,op->y can get passed directly in. Update callers of this function. lib/archetypes: Add damned 1 to the shop floors. server/pets.c: Fix problem with big (multisquare) pets following the owner across tiled map boundaries. socket/item.c: Fix problem of players being able to see everything within containers by just looking at them. MSW 2004-02-10 common/treasure.c: add_abilities(): For potions and horns (spell casting objects) convert the other_arch into a spell and put into the object - otherwise, the spell casting object casts the wrong spell. common/object.c: Clean up formatting of copy_object. Only real code change is to fix events - copied event data wasn't getting malloc'd, and thus when another object of that event was freed, it freed the event data for all objects derived from it. common/treasure.c: Fix fix_generated_item() so that books generated by monsters with no_pick set don't inherit that for the book itself. Still do it for other objects of the creator type. MSW 2004-02-08 server/c_object.c: fixed sack_can_hold for the 'won't fit' cast, missing 'return 0' server/gods.c: applied Karla Stenger's patch, making sure 'praying' is applied when becoming fellower of a god Ryo 2004-02-08 Changed map-building to work on non-unique maps too. server/build_map.c: removed check for unique map. Ryo 2004-01-19 Added map-building code. This lets players change unique maps, adding & removing walls, doors, stuff like that. New item types BUILDER & MATERIAL. New item flag FLAG_IS_BUILDABLE. New range attack (builder). ---- Changelog: change prescribed date format to be coherent with usage :) common/loader.l: added 'is_buildable' flag. include/define.h: added defines for item types & subtypes, and item flag. include/player.h: new range type 'builder'. include/spropo.h: new function apply_map_builder. server/apply.c: handle new range type. server/build_map.c: new file, handles all build-related code. server/c_object.c: added 'buildable item' to examine function. server/Makefile.am: added build_map.c to compilation. server/player.c: handle new range type. socket/info.c: handle new range type. Ryo 2004-01-18 Fix a crash related to plugin hooks common/object.c: clear_object(): object's event's hook/plugin/options are initialized with FREE_AND_COPY, so they are shared strings. Better to release'em with FREE_AND_CLEAR_STR instead of FREE_AND_CLEAR, else nice crashes... Ryo 2004-01-16 Fix writing not inserting correctly item in inventory, and Windows- specific stuff too server/skills.c: write_scroll(): Better to insert spell in scroll, and not the other way around server/skill_util.c: fix Windows-specific int64 stuff. Changelog: fix Mark's 2003 to 2004 :) Ryo 2004-01-16 Fix a bunch of crashes observed on metalforge: server/player.c: do_hidden_move(): Move call to find skill so that it is always called. server/skills.c: write_scroll(): Fix freeing of spell object in scroll - newscroll->inv isn't valid after calling remove_ob, so need to copy object to temporary pointer first. server/spell_effect.c: cast_detection(): Pass in skill to use. If no skill in use, use the caster object - fixes pointer derefence as op->chosen_skill wasn't always set. server/spell_util.c: modify caster_level() to always return at least 1. Fixes pointer potential divide by zero problems - also guarantees that players will be able to cast first level spells even if repelled to that spellpath. ok_to_put_more() - Fix to use correct map pointer variable. find_target_for_friendly_spell() - make it so it handles tiled maps OK. MSW 2004-01-15 common/object.c: fix the monsters on tiled maps bug that I may have mentioned a while ago. Seems that the server assumed that all parts of a multi part monster are on the same map as the head while moving. DVS 2004-01-12 common/living.c: fix fix_player() so that character gets benefits/penalties for sp/hp/grace/etc regen bonuses as related to the god they worship. server/player.c: dragon_ability_gain(): Modify so that character now gets attacktype of new ability that they gain. Also, add code so that the characters face/animation can change (getting set to values the bonus ability). MSW 2003-12-27 common/object.c: Set op->events=NULL in reset_object(), and move the clearing of the op->events structure to be before the memset in clear_object() - this was otherwise resulting in a memory leak, as memset would clear the pointer without actually freeing the data. server/attack.c: Fix indentation of hit_map(), modify it so that attacks won't destroy items with no_pass set. server/login.c: set op->speed=0, call update_ob_speed() before calling reset_object() - fixes problem with players not moving with recent changes to initting the active lists to NULL. msw 2003-12-20 server/skills.c: changed NDI_UNIQUE to NDI_BLACK for the meditation message (so that messages can correctly be grouped, also makes it coherent with praying). Ryo 2003-12-20 Those fixes deal with gcc3.3 infinite loop. Fixes (except sizeof/memset) courtesy Bernd Edler. --- common/item.c: use right buffer size for safe_strcat. common/object.c: clear active_next and active_prev when cleaning an object. include/define.h: fixed *curlen=maxlen-1; instead of *curlen=maxlen=1; socket/init.c: initialize whole ns->inbuf.buf, instead of setting first element only to 0. Also allocated with a sizeof( unsigned char ) * size, in case size changes one day. And initialize some more fields. Ryo 2003-12-18 Those changes deal only with warning cleaning under Windows. Mostly, using the right type at the right place, or doing explicit casts. --- common/object.c: changed free_arr_[xy] to short[] instead of int[]. include/global.h: changed free_arr_[xy] to short[] instead of int[]. Changed Windows-specific comments to C-style comments, not C++-style. include/sockproto.h: play_sound_player_only takes sint8, not int, for coordinates. play_sound_map takes a short for the sound number. socket/image.c: some type fixing, explicit casts. socket/init.c: Windows-specific type fixing. socket/lowlevel.c: explicit casts to char for SockList_AddInt64 socket/request.c: fixed types to match function parameters, or added explicit casts when needed. socket/sound.c: play_sound_player_only takes sint8, not int, for coordinates. play_sound_map takes a short for the sound number. Ryo 2003-12-14 server/rune.c: Fix it so that players won't be hit by traps if they are not next to them when set off (firing arrows at a door for example). server/spell_util.c: Fix spell_failure() to properly damage player if they fumble. Fix cast_spell() to not complain about not having enough grace if the spell doesn't take grace. Add same check for mana, but that is much less likely, as harder to get negative mana. socket/request.c: Fix problem where map sending code was not properly avoiding duplicating the head of a big image on multiple layers. This bug most often manifested itself of player standing on lower right corner of large building, and something else standing on other portion of building - player would seem to disappear. MSW 2003-11-30 lib/adm/collect_images.pl: forced binary mode for written files. This lets the script work correctly under Windows. Ryo 2003-11-29 server/apply.c: correctly display learned skill's name, and not the scroll's. server/skills.c: make 'sense curse' and 'sense magic' check items on the ground too. Ryo 2003-11-25 common/loader.l, loader.c: Fix firewalls so that their spell is properly initialized - uses 'dam' and not sp for those objects server/apply.c: Fix check_weapon_power so that it finds proper wc object. Fix unapply_for_ob so that it won't unequip cursed/damned weapons if player switches objects. MSW 2003-11-11 bulk of this is to fix exp loss when changing gods if you have more than 2 billion exp, removal of spells when you switch levels, and not giving you all new spells when you switch religions. -- common/living.c: Update exp functions to be fully 64 bit aware. Don't take away from player total exp if SK_SUBTRACT_SKILL_EXP is passed in. common/utils.c: Add 64 bit version of random_roll(), called random_roll64() lib/treasures: Make indentation consistent for some treasures. server/apply.c: Use the FLAG_STARTEQUIP to denote god given spells, instead of using special prayer markers. This simplifies the spell learning and removal code. server/gods.c: Make exp loss for changing religions 64 bit compliant. Fix become_follower() so that it doesn't give all the new gods special spells if you switch religions. Fix code so that it properly removes all special prayers from previous god, and also print out message on what spells you lost. Don't set the prayer skill as applied in various areas - this results in two skills being applied, which isn't proper. MSW 2003-11-09 common/living.c: Win32 compilation fix (levels is sint64, not uint64) include/plugin.h: new hooks for free & fix_player. Required for Win32. include/plugproto.h: new prototypes for CFWFreeMemory and CFWFixPlayer, wrappers for free( ) and fix_player( ). Required for Win32. include/sproto.h: added prototypes for new plugin hooks and improved tell command helper. plugin/plugin_python.c: wrap calls to fix_player, free and free_object with plugin ones when memory allocated by CF's main exe. Required for Win32 to work correctly. server/c_chat.c: improved 'tell' command to accept first letters of player name only, case-insensitive. If 2+ players match, returns with a failure message. server/player.c: new function find_player_partial_name. Returns player whose beginning of name matches specified string, NULL if more than one matches. Fix move_player to check specified direction's validity. server/plugins.c: added wrappers for free( ) and fix_player( ). Required for Win32 compatibility. Ryo 2003-11-07 common/treasure.c, doc/Developers/spells: Fix generation of rods so they have enough charges to cast the spells. Update documentation on what maxhp for the archetype of rods means. MSW 2003-11-01 server/player.c: Fix crash in stand_near_hostile when it is called on tiled maps with player near edge. MSW 2003-11-01 Various bug fixes: common/arch.c: Fix item_matched_string() so that it only passes in the length of the pssed in name in the strncasecmp(), and not the shorter of the passed in string or item name. Otherwise, if player does a 'drop wand of', unidentified wands (name just wand) would match. Similarly, if a player did 'drop ringmail', unidentified rings would match, etc. common/living.c: Fix fix_player() to always process the praying skill with respect to resistances and whatnot. This is necessary because the god give abilities are put in this skill, and those shouldn't go away depending on if the skill is in use or not. Also fix bug in add_exp routines which wasn't multiplying permanent exp by PERM_EXP_GAIN_RATIO common/object.c: Fix find_obj_by_type_subtype() - had extraneous semicolon after the for loop, so the if code that was supposed to be for each object was never called and instead would crash as it would get called with tmp was null. server/attack.c: Fix problem with kill_object() not finding proper skill - it would use the skill object instead of the skill. Fix problem of poisoning not setting up proper skill name in poisoning object. server/c_range.c: If player is invoking a spell, don't update their range_magic value. server/skill_util.c: Fix divide by zero problem if improperly passed skill object. MSW 2003-10-26 TRIGGER_MARKER: common/glue.c, common/button.c, include/define.h, funcpoint.h, libproto.h server/init.c: Add trigger_marker (type #52) which is a Marker that can be triggered. Useful for placing forces in player when connected trigger is tripped. TM 2003-10-26 common/glue.c, common/object.c, common/player.c, include/funcpoint.h, server/init.c, server/monster.c, server/shop.c, server/skill_util.c: add find_skill_by_number() function - this replaces find_skill. Locate new function in skill_util.c, which is more a proper place than common/player.c - this change necessitated adding glue function pointers so the other common files can call it. server/spell_effect.c: Fix cast_heal() so if the spell is not one that heals hit points, don't process the code that checks for that and sets a false success value. socket/metaserver.c: Clean up formatting - no code changes. MSW 2003-10-25 server/apply.c: small fix to apply_spellbook in the rare case when the spellbook contains no spell (happens when DM issues a bad 'create' command for instance :). Ryo 2003-10-04 server/c_new.c: fix command_run and command_fire so they check the given direction is [0..8]. This enabled weird things like hitting non-adjacent monsters. Patch by Karla Stenger on cf-devel, slightly modified by me. Ryo 2003-10-21 common/arch.c: fix item_matched_string() so that matching makes sense - the ordering was wrong, so that we would match something with a low priority, and skip over looking to see if that same object would get a better match. Order the function so that we look for the best matches first. MSW 2003-10-08 socket/request.c: Clean up some compile warnings. Improve big face handling - there were cases where data wasn't being sent when it should have, and vice versa. Basically, do better checking to see if we should send a big face for a particular layer, and also better checking to make sure we don't send the same face more than once for the same layer. Also, change esrv_map_scroll() to clear out spaces that appear into view - adds a little extra bandwdith, but necessary because otherwise the fact there is a big face on the edge doesn't always get sent. MSW 2003-10-07 TODO: various updates. common/button: Old patch by David Seikel: change inventory checkers so that the monster/player is also checked against. And do more proper for checkers that check against slaying or race - if the trigger doesn't have those set, we don't want to compare a null against another null and get success). server/apply.c: Change apply_shop_mat() so that it removes unpaid objects from monsters (or thrown containers for that matter). Old patch by Bernd Edler to improve messages dragons get for eating various food types. server/player.c: Add another missing call to fix_player(). Modify move_player_attack() so that the target player doesn't hit back if they are the WIZ or on a battleground MSW 2003-10-06 utils/player_dl.html utils/player_dl.pl.in: New files - scripts for allowing character directories to be downloaded over the web. configure.ac: Add check for 'tar', so that we can put it in the script above. Makefile.in (All of them): Changed because TAR variable propogated to them. MSW 2003-09-30 server/time.c: Real change is to add a missing call to fix_player - without this new players would be getting messed up maxsp/maxgrace values. Cleaned up formatting in move_player_changer() while doing the other change. MSW 2003-09-28 common/living.c, include/libproto.h: Update some functions to take 64 bit int values for exp usage. random_maps/random_map.c: Don't ever make rogue maps symmetric - creates unconnected maps. Clean up layoutgen() to not have a bunch of duplicated code. MSW 2003-09-25 server/skill_util.c: Call esrv_send_inventory on the cauldron if we performed alchemy. Needed for cauldron's contents to get updated. MSW 2003-09-23 Modified files: TODO common/anim.c common/arch.c common/button.c common/exp.c common/init.c common/item.c common/living.c common/loader.c common/loader.l common/logger.c common/object.c common/re-cmp.c common/readable.c common/recipe.c common/treasure.c doc/Developers/objects doc/Developers/protocol doc/Developers/python doc/Developers/skills doc/Developers/spells include/Makefile.am include/Makefile.in include/attack.h include/config.h include/define.h include/global.h include/includes.h include/libproto.h include/living.h include/map.h include/newclient.h include/newserver.h include/object.h include/player.h include/plugin.h include/skills.h include/sockproto.h include/spells.h include/sproto.h include/timers.h lib/Makefile.am lib/Makefile.in lib/animations lib/archetypes lib/artifacts lib/bmaps lib/bmaps.paths lib/collect.pl.in lib/crossfire.0 lib/crossfire.1 lib/faces lib/formulae lib/settings lib/treasures lib/treasures.bld lib/adm/collect_images.pl plugin/plugin_python.c plugin/include/plugin_python.h server/Makefile.am server/Makefile.in server/alchemy.c server/apply.c server/attack.c server/c_misc.c server/c_move.c server/c_object.c server/c_party.c server/c_range.c server/c_wiz.c server/commands.c server/disease.c server/gods.c server/init.c server/login.c server/main.c server/monster.c server/pets.c server/player.c server/plugins.c server/resurrection.c server/rune.c server/shop.c server/skill_util.c server/skills.c server/spell_effect.c server/spell_util.c server/swamp.c server/time.c server/weather.c socket/info.c socket/init.c socket/item.c socket/loop.c socket/lowlevel.c socket/metaserver.c socket/request.c socket/sounds.c Added Files: server/spell_attack.c Removed Files: include/skillist.h lib/skill_params lib/spell_params Updated code for skill + spell code. skills and spells are now objects. tuning these now means changing the archetypes. New spells can now be added just by making a new archetype. Lots of code cleanup also done. MSW 2003-09-12 TRAPS: include/define.h common/object.c, treasure.c server/attack.c, skill_util.c, skills.c, rune.c, time.c, player.c, apply.c Established new type traps distinguished from runes. Traps are more mechanical in nature, not impacted by detect magic or counterspell (maybe in future once skills are settled out more fine tuning changes in detecting and disarming these too...). Traps also can now trigger connected objects if they are detonated. Migrated traps to new type and made new generic trap archetype for more complex trapping (ye olde red shaded tile...) TM -2003-09-04 friendly_fire: Added friendly_fire to attack.c, called from hit_player. Will put a cap on maxdam that is a percentage (1-100%) of damage (min 1) based on SET_FRIENDLY_FIRE value when players attack in peaceful mode. Changed who, statistics to show this setting better and added help file for peaceful. It would be nice to have a indicator in the client for this as well. TM - 2003-08-25 protocol/doc/code: Changed the way smoothing is done. Switched the smooth command to binary mode, rebuild archetype files, added doc on smoothing, updated protocol file. Changed a the "togglemapextended smoothing" to "togglemapextended smooth" to prevent problem of compatibilities with previous cvs smoothing releases. Tchize 2003-07-08 protocol: Added new command to send extended map information to the client. Mainly used for now to send smoothing information. Also commented the modifications in the protocol file ind doc/ lib/Makefiles: Changed to install the smooth file too. Needed by smooth code common/loader.l and loader.c completly reworked get_ob_diff to improve speed at mapsave time. For now function is interlaced with commented old code. Will clean up when code will be proved working. (hope middle of july) Tchize 2003-07-03 server/apply.c: Fix auto_apply - missing else, causing extra treausres to be generated inside of shop tiles. server/monster.c: Fix npc_call_help to be map tile aware. MSW 2003-06-18 lib/collect.pl.in: Modify it so that it will collect .trs (treasure) files and build a treasures.bld from that as well as the existing treasures file. In this way, treasure information for objects can be put in the arch directory. lib/Makefile.am, Makefile.in: Modified so that it copies over the treasures.bld to treasures in the destination directory. Have the collect directive also build the images, so that a double make isn't necessary. lib/treasures.bld: Added file - like the archetypes, this is the pre- build treasure file. Until .trs files are added, this will just match the treasures file with some additional comments. MSW 2003-05-26 common/map.c: Fix bug causing unnecessary crashes - ok for the map to match if the object has been removed. socket/loop.c: Only make call to draw_client_map() if we have a valid map to draw. MSW 2003-05-26 common/anim.c: Patch by AV to make sure multipart monsters animations stay in sync. MSW 2003-05-25 server/apply.c: Fix bug in that we weren't calling esrv_map_scroll() when player used a shop map but lacked sufficient funds to pay for his items. MSW 2002-05-23 common/item.c, common/utils.c, include/config.h: Add #define NEW_MATERIAL_CODE and checks in the other files for this - if this is commented out (default), then the new material naming code is disabled - material names won't be put in the items names as shown in the inventory (can still see material by examining an object), and objects that are created will be created with the default material (eg, iron for most armor/weapons, eg, brass, bronze, copper items won't show up anymore). lib/settings: Add comments from the old config.h file that describes what the options already does. Having no comments in this file or in config.h anymore is very unfriendly. MSW 2003-05-20 server/player.c: Have players start at max hp/grace/sp. MSW 2003-04-14 server/c_range.c: Add check to make sure we are actually removing a golem and that the object hasn't been freed/recycled and the player not updated. Fixes crashes. MSW 2003-04-13 acinclude.m4: Update path to find python includes, since aclocal.m4 gets derived from this file. configure.ac, configure: Add utils/scores.pl to list of files to substitute on. common/loader.l, loader.c: Add subtype for objects - will be used in future work. common/object.c: Add subtype diff check in CAN_MERGE() common/porting.c: Have it use SAVE_DIR_MODE when doing the mkdir, and not have hardcoded 777 permissions. doc/Makefile.in, doc/Makefile.am, doc/Developers/Makefile.am, doc/Developers/Makefile.in: Move some of the spell docs around and merge them together doc/Developers/objects: Add notes about subtype. doc/Developers/spells: New file, contains preliminary work on spell objects. include/config.h: Remove command about DM_MAIL and LIBDIR from file, as they are options no longer present. Update comment about SAVE_MODE, and add SAVE_DIR_MODE include/object.h: Add subtype field to object. server/login.c: Have it use SAVE_DIR_MODE when doing the mkdir, and not have hardcoded 6700 permissions. utils/Makefile.in: Updated to know about scores.pl utils/scores.pl.in: New file - reads player file to generate HTML score file. MSW 2003-04-04 TODO: Various update aclocal.m4,configure: Update path to find python (fix again) common/image.c: Minor update to a ocmment in the code. common/los.c: Add missing P_OUT_OF_MAP checks that resulted in some incorrect LOS calcuations. include/funcpoint.h: Remove draw_func function pointer. lib/Makefile.am, in: Remove bmaps.paths to from being installed or being part of distribution - bmaps.paths is only needed when collecting the image lib/*: Rebuilt server/c_object.c: Patch by Bernd Edler to have the apply functions take into acount if the item is equipped or not when looking for good matched items. server/commands.c: Move printlos to normal commands. I don't think it reveals any information that is in any way harmful. And since it dumps the output to the players screen, no concern of it filling up log files. Also, when doing LOS debugging, it is pointless to have it as a DM command because LOS is ignored for DM's. server/disease.c: Modify remove_symptoms to remove all symptoms the player may have a disease. Modify infect_object() to not allow a creature to have more than one instance of the same disease. socket/info.c: remove draw() - instead, draw_client_map() can be used, as that is most the only thing draw() did anyways. socket/loop.c: Update draw() calls to draw_client_map() socket/request.c: Remove special handling for darkness==4 cases (first space that is in full darkness) - this is extra complications and causes display problems. Update draw_client_map() to include the little bit of logic that draw() had that this function did not have. MSW 2003-04-01 common/glue.c, include/funcpoint.h: remove draw_func() pointer - no longer needed, so code that sets up pointer removed. lib/*: rebuilt - facings added to old player animation information. ruined_temple archetype added. server/init.c: remove set_draw() function server/player.c: remove call to draw() - socket code takes care of this. MSW 2003-03-24 server/spell_effect.c: Some code cleanuip to cast_change_attr - mostly to combine the processing of the stat improving spells together. The actual change to playability is that bless and holy possession don't stack if cast multiple times. server/spell_util.c: Modify create_aura so that player can't have more than one aura (of the same type) active at a time. MSW 2003-03-20 server/apply.c: Change weapon improving code to only use up the number of potions that it needs, and not all on the ground. Required adding another arg to eat_item() which is the number of items to consume. include/sproto.h: Rebuilt for new eat_item() (actually, a static, so no longer shows up in this file) server/attack.c: Change did_make_save to strip out magic attacktype when making saves for objects - otherwise, things like poison cloud destroy objects. server/time.c: deal with player animations special in process_object - need to pass in the facing value, and not direction, since direction gets reset. MSW 2003-03-19 common/anim.c: Pass direction to animate_object() - needed for player animations as player's facing may not match direction. crossedit/Attr.c, server/main.c, server/time.c: Update calls to animate_object() include/libproto.h: rebuilt include/newserver.h, plugin_animator/animator_box.c, socket/init.c, socket/request.c: Remove newanim field from socket structure - not needed - how to animate is determined by object, not by socket. server/move.c: Add check to P_OUT_OF_MAP in teleport function. server/player.c: change move_player to call animate_object, so it gets full power of functionality it supports instead of 4 way hardcode animation information. server/spell_effect.c: When altars are consecrated, don't look to arch name for first portion of name - always call them Altar of %s - fixes problem where altar is special god altar that has god's name in archetype, resulting in altar of .. of ... MSW 2003-03-18 Patch for 64 bit experience total, as well as flexible number of levels. Basically, max level is now dynamic, set in exp_table file. Experience is now a 64 bit value, so much higher totals now allowed. To allow for flexible levels, add new function - did_make_save() which is used for players/monsters to see if they make their saving throw - this is necessary because the savethrow[] array may not be as large as max level - did_make_save takes this into account. NOTE: If your updating a server, you will need to copy over/set up a new exp_table file that has max_levels defined and at least one of the tables uncommented. There are no longer any compiled in defaults -- configure, configure.ac: Add AC_CHECK_SIZEOF calls for long and long long so we can know which one to use for 64 bit support (other checks may need to be added) common/exp.c: Remove levels table, replace it with a 64 bit pointer. Change init_experience to allocate appropriately sized table, have it read max_level value from exp_table file. Replace atoi calls with atoll to get 64 bit value. Update dump_experience to properly print 64 bit values. common/info.c: Update dump routines that dump exp to properly print 64 bit values. common/init.c: Add initializing for settings.max_level value. common/item.c: Update sprintf's to handle 64 bit output of exp (speed) value in objects. common/living.c: change MAX_EXP define, update MAX_EXP_IN_OBJ define, add MAX_SAVE_LEVEL which corresponds to how large the savethrow table is. Change MAXLEVEL to settings.max_level. Change level_exp() to return 64 bit value, other updates in functions to use 64 bit values. Add did_make_save() function. common/loader.l, common/loader.c: Update load/save routins of exp to deal with 64 bit values. common/map.c: Update calculate_difficulty to use 64 bit values when storing exp - unlikely to make a difference, since unlikely any map will get to a point where it has that much exp on it. common/porting.c: Remove dead code from save_long(), add save_long_long() to save 64 bit values. include/autoconf.h.in: SIZEOF_LONG and SIZEOF_LONG_LONG values added. include/global.h: Add code to typedef sint64/uint64 types based on what type gives us those values. Add max_level to settings array. include/libproto.h: rebuilt. include/living.h: Replace exp field with 64 bit value. include/player.h: Update party kill log exp tracking to have 64 bit values. lib/exp_table: Udpate comments about max_level, uncomment what was the default table so new installs have working table. Add 5 levels to all the tables. random_maps/monster.c: Update place_monsters to use 64 bit when storing exp total for map/per square. server/apply.c: Replace MAXLEVEL with settings.max_level, add did_make_save calls where appropriate server/c_misc.c: have statistics command properly print 64 bit exp value. server/c_wiz.c: Have stats command properly display 64 bit value. server/hiscore.c: Replace exp values with 64 bit values, update to properly load/display them. server/player.c: replace savethrow[] reference with did_make_save() server/skill_util.c: Update skills command to properly show 64 bit exp values. server/spell_effect.c: replace savethrow[] reference with did_make_save(), allow players to cast directors right beneath themselves, but other walls must be on empty space. MSW 2003-03-07 Various bug fixes. crossedit/Attr.c: Minor cleanup to eliminate some compile time warnings. plugin/plugin_python.c: Remove some unused variables, thus fixing up some compiler warnings. random_maps/random_map.c, random_maps/random_map.h, random_maps/special.c: Add MIN_RANDOM_MAP_SIZE values instead of hardcode constants. server/monster.c: Fix communicate - odd bug can be map gets swapped out just after player is transferred to another map, causing crashes as map that was originally spoken on is no longer in memory. server/rune.c: add missing free_object call when erasing runes. server/skills.c: Change write_on_item to determine type of writing based on content of mesage, or lack thereof, and not the marked object. Fix problem of buf not being initalized. MSW 2003-03-06 Various bug fixes. Makefile.am, Makefile.in: Put crossedit as the last directory, so any build errors for crossedit doesn't effect anything else. README: Update ftp site listing. TODO: More things aded. aclocal.m4, configure: Add missing / when checking in /usr/local for python headers. common/map.c: Add some debugging in free_all_objects that checks to make sure there are not objects remaining that belong to the map just freed - only active if MANY_CORES is set. random_maps/random_map.c: Increase minimum random map size to 10x10 - this is need for square spirals to work properly I think. server/spell_effect.c: Have perceive self tell dragon players what they are currently focused on. Fix town portal to remove force objects from players if destination is no longer available. server/swap.c: Reset maps reset_time when loading them in in read_map_log() - this is only used if recycle temp maps is on. Also, do sanity checking on reset_time value - bogus values were observed on metalforge. socket/request.c: Update map timeout in draw_client_map() - in this way, we don't swap out a map within a players view only to swap it back in. MSW 2003-03-01 ------------------------------------------------------------------------------ Changes for 1.5.0: */Makefile.in, related files: Updated for 1.5.0 server/attack.c: Don't change weak wall image if no damage was actually done. server/c_object.c: Include math.h - needed for pow() server/spell_effect.c: fix infinite loop in town_portal MSW 2003-02-24 common/anim.c: Fix for 8 way facing animations. lib/treasures: Add sheep treasures lib/* (rest) - rebuilt server/spell_effect.c: Fix up counterspell - mainly fix a bug in that if counterspell hit a multipart magic that used magic as an attacktype, it would also crash. However, code also woudln't work properly on tiled maps, and I'm dubious if it would work properly if there was more than one effect on a space. MSW 2003-02-23 server/skills.c: Fix jump so that it updates the clients map properly. server/spell_effect.c: insert town portals below the player so it works better with apply. MSW 2003-02-20 server/move.c: Fix transfer_ob so that it sends newmap command to client if we're moving a playing - otherwise fog of war displays bad information on the client. MSW 2003-02-19 More bugfixes: server/c_wiz.c: Fix reset command - while it deleted the maps, it made things so that it never got removed from the map listing - instead, just let flush_old_maps do most of the work. server/main.c: If player tries to enter a random map that has been reset and that we have no informatino about (eg, going up in a dungeon), just say the exit is closed instead of making a completely random map that usually isn't in keeping with the dungeon (and still won't lead outdoors) server/move.c: In move_teleporter(), change it so that if a player uses a shop map yet there is no place to put the player, just drop him on top of a monster - this fixes problem of players getting trapped inside of shops in random dungeons. MSW 2003-02-16 random_map/random_map.c: Include parameters used to make map in msg of map - this can hopefully be used to debug what is really happening when bad maps are made. server/rune.c: Modify dispel_rune function (called from disarm spell) to erase marking runes. While at it, fix it so that it does the right thing with respect to tiled maps. MSW 2003-02-15 include/sproto.h, server/move.c: Modify try_fit() to take mapstruct parameter for which map we are trying to fit this on - fixes problems with rolling boulders accross map (only function that currently uses this). MSW 2003-02-14 common/item.c: make item_power stop showing up in ring short descriptions. fix some of the items that were double-displaying materialnames, like mithril mithril chainmail. common/loader.l: add tooltype common/utils.c: Unless the object is armour or weapons, pick the first materialname we find. Now, newly generated diamonds will stack. Fix name_to_material to return NULL if it finds nothing, fixes navar_city/museum crash. Change set_materialname to take a materialtype_t argument, allowing functions to manually set the materialname, rather than let the randomizer pick for them. include/define.h: Add TOOL and BUILDFAC for item building. include/object.h: add tooltype for item building. include/materials.h: add M_SPECIAL. Set this in an object, to prevent things like mithril mithril chainmail. This is primarily only needed in artifacts, because they change the base material of the arch. Also useful in things like the demonspawn shield, and on maps. lib/artifacts: sprinkle M_SPECIAL around. server/player.c: remove auto_heal. This never should have been committed, and was never referenced by any code. server/c_object.c: add item building, but add it disabled. Too many bugfixes were tied in with this code to cleanly add them. When enabled, this code will add player item building, similar to create to take place. Requires a host of graphics and arches to be useable. garbled 2003-02-13 random_maps/special.c: Fix possible bug with placement of special maps. Add lore/endlore to object structure to hold general information about objects: common/loader.c, common/loader.l: Add loading and saving of lore field. common/object.c: handle lore field for copy/free/other object operations. Also, update CAN_MERGE to look at materialname also. doc/Developers/objects: Add notes about lore. include/object.h: add lore field to object. server/apply.c: Fix bug in that cursed weapons were not equipped/ unequipped. MSW 2003-02-11 doc/Developers/objects: Add nodes about shared strings in objects. server/c_misc.c: Remove check for name length - check_name takes care of that for us. server/monster.c: store return value from get_map_flags - seen some crashes traced back to this area, want to see what it returned. Allow objects with no msg to still use scripts that listen. server/player.c: Fix potentional issue of freeing/adding players name when they enter play again - seen some crashes attributed to odd names. MSW 2003-02-08 More bugfixes: server/player.c: Fix permadeath without resurrection - wasn't deleting player save files as it was supposed to. If permadeath + resurrection was in use, I believe it all worked as expected. include/shop.h: remove _SHOP_H after endif, causing compiler warnings. include/skills.h: Add check to USING_SKILL to make sure chosen_skill is not null. server/c_chat.c: Add some missing return values, resulting in compiler warnings. server/skill_util.c: Remove unused variable. compiler warnings again. server/spell_effect.c: Change dimension door so that you can't go through spaces that block passsage and also block view (eg walls). This goes back to the more traditional behaviour. Remove some unused variables. server/spell_util.c: Add missing P_OUT_OF_MAP to move_missile, resulting in crashes. server/time.c: if generator is not on a map, don't have it generates. Fixes crashes. MSW 2003-02-02 New materialtype system for crossfire. Based in concept on my original design, but rewritten from scratch to make it easily extensible. In a nutshell: Each of the old materialtypes (metal, glass, stone, wood) are now a class of materials. When an item in the game is created, if it does not have a specific materialname of it's own, a materialname is generated randomly from the matching entries in the "lib/materials" file. This file contains all of the saving throws, and other material specific modifications for each of the expanded materials. Materials can be manually specified in the arch with the "materialname" directive. Such as the gold coins, which are specified to be made of, you guessed it, gold. Saving throws have been slightly rewritten to use the new materialtypes, and a few other minor details associated with materialtypes have been patched up. Adding a new type of stone or wood, is as simple as adding a new entry in the lib/materials file. The game will automatically start distributing them around randomly. garbled 2003-01-29 Various bug fixes: common/item.c: If nrof of an item is 0, have it print singular name and not plural name. server/c_object.c: Fix typo when printing value of optoins - had an extra 'the' in place. Also, don't print value of objects with no pick flag set. server/login.c: Enforce maximum name length for new characters. server/monster.c: Change parsing code for messages/@match code - new code is simpler, and should also be simpler and less bug ridden, but otherwise functionally equivalant. Also fix up communicate to work properly on tiled maps. server/spell_effect.c: fix up move_aura to not crash hopefully. MSW 2003-01-26 More bug fixes: common/item.c: Add missing braces - was resulting in some items getting display like 'gauntlets of strength (Str+1)(Str+1). include/map.h: Add MAGIC_MAP definitions to the file. server/shop.c: Put back in code that uses magic_mapping_mark to determine what items to display in inventory. Update for new one magic mapping code stores information away. server/spell_util.c: Add missing P_OUT_OF_FLAG check, which resulted in crashes. socket/info.c: Move MAGIC_MAP definations to map.h. Add check for P_OUT_OF_MAP. Remove code that stops on P_NO_MAGIC - with that it wouldn't search the shops. MSW 2003-01-16 server/move.c: fix try_to_fit and roll_ob to work properly on tiled maps. Also some performance improvements to those functions. MSW 2003-01-12 Bulk of this commit is to improve code for tiled maps - replace wall/blocks_magic/blocks_cleric, etc with get_map_flags which also does map tiling translation as needed. This should fix a lot of the bugs related to map tiling (there are sure to be more out there - all the get_map_ob still need to be checked). Other changes - many spells stopped progressing on spaces that blocked view - that is now removed - didn't make a lot of sense. Other fixes - some cleric spells (eg, word of recall) checked to see if magic was prohibited, didn't check to see if cleric was prohibited. Clean up some bugs in the lighting code that would cause erroneous results. Also, allow players to see immediately around them on outdoor maps no matter how dark the map really is - behaviour on indoor maps is the same. Lots of code reformatted, and lots of obsoleted/dead code removed. Add max range to dimension door. Fix magic map - got broken when the layer stuff was redone - was not showing proper colors. IT also works sensibly on tiled maps now - rather than display based on the map, it gives the player a 50x50 area centered on where the player is. Change fire_bow - move special player fire modes into own function - makes code much cleaner. Hopefully this fixes more bugs than it introduces. common/los.c, common/map.c, common/object.c, crossedit/Edit.c, include/libproto.h, include/sockproto.h, include/map.h, include/spellist.h, include/sproto.h, random_maps/treasure.c, random_maps/wall.c, server/attack.c, server/c_misc.c, server/c_wiz.c, server/disease.c, server/main.c, server/monster.c, server/pets.c, server/player.c, server/rune.c, server/shop.c, server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/time.c, socket/info.c: See note above server/apply.c: Limit number of times weapon can be enchanted so that it won't overflow item_power. Modify enchant armor to enchant as normal armor is enchanted, also only allows one item to be enchanted. MSW 2002-01-07 common/item.c: Add 'unidentified' to display of examined items if the item has not been identified. Only display spell regen penalty for armour if there is in fact a penalty. lib/archetypes: rebuilt for updated demon speed, pick up other new archs. lib/animations, lib/bmaps lib/bmaps.paths lib/crossfire.0 lib/crossfire.1 lib/faces: rebuilt server/main.c: Name random maps based on final map component (if available) or map they are spawned from - this gives so clue in 'who' command where the players really are. server/monster.c: Fix code that would cause monsters to ignore golems/ avatars. server/pets.c: Clean up a few warnings, fix bug in pet_move that caused crashes - owner of a pet isn't always a player. server/player.c: Remove on_same_map check - can_detect_monster also performed check, so no need to have extra call. server/spell_effect.c: modify alchemy to properly deal with tiled maps, change behavior for spells that block view - they no longer block alchemy, but spaces that block magic will. MSW 2002-01-05 TODO - add notes about item damage - clear it out of my mailbox. common/loader.l, loader.c: Add check at load time to see if monsters hp is higher than its maxhp and print a debug message if so. devel/Makefile: Remove - makefiles shouldn't be in CVS, only .in versions. server/attack.c: Fix calculation of max_damage in kill_object - this was being done incorrectly, resulting in fired spell objects causing incorrect amounts of damage, resulint in some monsters ending up with a lot of hp. Fix call to kill_object to pass in correct damage value. server/monster.c: Put in check so that monster won't regen to more hp than they should have. server/spell_util.c: Removed unused variable from move_missile. server/weather.c: fix bug that causes crash if empty space is encountered on map. MSW 2003-01-03 socket/request.c: Fix buffer (malloc) overrun in esrv_send_stats - more stuff has gotten to be added, without ever increasing the size of the buffer to hold it. MSW 2003-01-01 server/time.c: Fix bad code in stop_arrow that caused crashes/improper freeing of data. MSW 2002-12-30 common/treasure.c: Fix initialization of treasure structs to use calloc. server/player.c: Fix infinite loop. socket/loop.c: Make sure we put in null terminator for socket data. MSW 2002-12-26 New Arrow and Pet Code: Add bowmode and petmode commands. Allowing the player to change the firing style for bows to one of either threewide, or spreadshot. Allow players to change the operating modes of his pet with petmode. Can be either seek and destroy, defend, or normal historical behavior. Change bows to impart speed to arrows based on damage and other magical plusses. Damage decays over distance, to stop arrows from flying forever. Very fast moving arrows will pierce multiple targets. An arrow moving at a speed greater than 10.0 will go straight through a target, losing 1.0 of speed in the process. Change magic missile to use spell_find_dir instead of find_dir to stop it from flying in a circle and hitting the caster, and to make it stop flying into walls to hit creatures behind the walls. Various bug fixes: common/living.c: Reset glow_radius for players, so they stop glowing after they snuff out their torch or whatever. server/apply.c: Fix message about improving armour so that it is now accurate. server/monster.c: Add some debug lines that may show cause of excess monster hp. server/spell_effect.c: fix compile warning in summon_pet(). Clean up indentation of alchemy functions, but functional changes is to insert gold nuggets below player (so more of the actions work), as well as to reset the view position, so that it won't have the 'previous 50' object selection. Add suggested parens in cast_detection. server/weather.c: Fix crash in weather code if snow was only object on space. MSW 2002-12-20 +++ server/weather.c: More weather routines: Now the game will attempt to completely reformat the world, and modify it with the weather and elevation. When dynamiclevel is set to 5 or above, the game looks at each tile, and the weather conditions present in that tile. It then consults a table of different terrain types, and what conditions they prefer to grow under. If the conditions match the spot, and there is nothing special about the spot (like a house, or a road), then we drop the new tile type on the overlay map on that location. Tuning of this can be done at the top of weather.c, by changing the weather_tile array. Also.. add a feather_map() routine which tries to break up the blockiness of some of the weather effects by spreading the tiles around. This code works.. but needs tuning, and probably a little more testing. Some of the conditions for the various tiles really need to be looked at, and fiddled with. garbled 2002-12-08 +++ common/exp.c: Fix bug were drain attacks added exp. MSW 2002-12-05 server/player.c: Change move_player_attack() so that we look for monsters to attack even after finding a rollable object - there can be non blocking rollable objects with monsters on top - we want to attack the monster, not roll the object. MSW 2002-12-03 TODO: Move more items from my mailbox to the TODO list. common/living.c: Init item_power in player to zero in fix_player() - bogus results were getting generated as it just kept getting incremented. common/porting.c: fix remove_directory so it works properly - checking for . and .. entries too late, calling unlink instead of rmdir. include/sproto.h: rebuilt lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.0, lib/crossfire.1, lib/faces: Rebuilt - new archs added, catch is_thrown addition to thrown rock/boulder archs. server/c_move.c, server/c_range.c: Add another parameter to do_skill() - part, which is closest part of creature to target object - current only used for the throw code. Update calls to this function to add additional parameter. server/c_object.c: Remove the NDI_UNIQUE from the 'item is too heavy to pick up' so that it won't flood the client with them if players goes onto space with lots of objects. server/main.c: Minor cleanup to fix compiler warning about ambigous if/else. server/monster.c: Pass closest part of monster when having it use a skill so that it doesn't throw rocks into itself. Update calls to do_skill as described above. server/player.c: Cal delete_player() when player quits - this properly cleans up any per player unique maps they have. Also, check for any such maps currently in memory, and delete those so that unique maps don't get 'gifted' to the next character of the same name. Update calls to do_skill as described above. server/shop.c: Combine items of the same name together in the output of the shop listings. Include the number of items, remove special casing of some objects so that query_base_name is used for all item types. server/skill_util.c: Modify do_skill() to take additional param as described above. Also, have do_skill return 1 on success, 0 on failur to use skill, and not return exp - otherwise, monster code has no idea if skill was successfully used, as throw doesn't grant exp, and this caused monsters to move into the object they just threw. Update calls to do_skill as described above. server/skills.c: Clean up skill_throw function to return meaningfull value. Also, pass along extra part of closest monster part to target. Modify do_throw to return value, use closest part of body as origin point for thwon object. server/spell_effect.c: Use isqrt function instead of definining ISQRT that used float version. Cleans up compile warning - most likely not seen before as spell was #ifdef SPELL_ENCUMBERANCE out. server/time.c: Put sanity checking for players speed_left in move_player_mover() - got some reports of infinite negative speed on metalforge, and this is the only place in the code where I could see that happening given the description of the events. utils/arch2xml.py, utils/cfarches.xsl: New script (and template) by Todd Mitchell. Script can convert archs to xml, and the template is usuable with mozilla to look at the output. MSW 2002-12-02 common/object.c, include/object.h: Add INS_BELOW_ORIGINATOR flag to insert_ob_in_map - this is used for treasure chests so the treasure is put below the player. Also fix insertiong of items on spaces that block view - put them in proper order, and not just directly above the floor server/apply.c: Tell player what level they need to be if they are not of sufficient level to improve armor. Modify apply_treasure to use INS_BELOW_ORIGINATOR flag, clean up some of the other logic in apply_treasure. server/c_object.c: Modify command_take to use the container inventory when doing a pickup, and not the container itself. MSW 2002-11-30 TODO: Updated with dm 'follow' command. common/loader.l: Rebuilt. common/map.c: Fix up some formatting - no code change. include/player.h, server/apply.c, server/player.c, socket/info.c: Remove chosen_item_spell field - isn't needed anymore as that information is determined each time player fires wand/rod/horn. This fixes those items firing magic bullets if they were equipped when player saved and rejoined. Some additional cleanup done in rangetostring() - mostly formatting changes, but minor code changes. MSW 2002-11-29 include/shstr.h: Update REFCOUNT_TYPE to be an int - seems to at least fix the bug of server crashing when running around the bigworld - given the size of the maps, quite possible that enough objects of the same name would be in memory to overflow the size size of a short. MSW 2002-11-19 Changed a ton of #ifdefs into settings: convert #ifdef NOT_PERMADETH into settings.not_permadeth. SET_TITLE and RESURRECTION are now settings. #ifdef SEARCH_ITEMS -> settings.search_items #ifdef SPELL_ENCUMBRANCE -> settings.spell_encumbrance #ifdef SPELL_FAILURE_EFFECTS -> settings.spell_failure_effects #ifdef CASTING_TIME -> settings.casting_time #ifdef REAL_WIZ -> settings.real_wiz #ifdef RECYCLE_TMP_MAPS -> settings.recycle_tmp_maps #ifdef SPELLPOINT_LEVEL_DEPEND -> settings.spellpoint_level_depend #ifdef EXPLORE_MODE -> settings.explore_mode make explore mode actually *work*. #define MOTD -> settings.motd #define DM_MAIL -> settings.dm_mail garbled 2002-11-12 New alchemy code, as discussed on the developer list. Now recipies include two new tags: skill and cauldron. With skill, you can set which skill activates this recipie, and the cauldron, corresponds to the arch name of the facility you will use when creating the item. In this way, item creation is now more generalized than just alchemy, and specific formulae can be written to utilize different skills, or perhaps special formulae would require a hard-to-find cauldron. Functionally, the alchemy, or alchemy-like-skills are now activated by the use_skill command. The secondary use of the alchemy spell has been withdrawn, so now it functions in the way it was originally intended again. garbled 2002-11-11 socket/loop.c: add a setting fastclock. This makes the server's clock run *really* fast. For now, it's good for debugging purposes, but in the future it will allow a dm to ravage a world with weather quickly. include/define.h: add FLAG_IS_WATER include/global.h: add fastclock to settings include/map.h: add water to weathermap structure include/sproto.h: add tons of new functions in weather.c common/init.c: update for FLAG_IS_WATER common/loader.l: update for FLAG_IS_WATER server/init.c: add code to read fastclock setting server/weather.c: Complete update, largely rewritten. Now the world is cut into a 100x100 matrix of weathermaps. Each one of these maps is computed at initial boot, and written to disk, following which, they are simply read from disk at boot. For each of the main weather types (pressure, humitidy, base temperature, wind direction, wind speed) the game recomputes the entire weathermap, applying smoothing algorithims, or derriving each map from it's predecessor. Weathermaps are only used if you have set your dynamiclevel to 1 or greater, and, are using the bigmap set. At this time, there is still no functional change to the game, bigmap, or not. utils/maps.c: This program will generate ppm files from each of the weathermaps. Mostly for debugging, but curious DM's might find it useful to see the weather. garbled 2002-10-27 server/c_chat.c: Fix some buffer overflow issues - use snprintf or use new_draw_info_format instead. lib/artifacts: Update some cloaks not to require a minimum magic level, since that will never be met. MSW 2002-10-16 Minor bugfixes: common/living.c: Fix it so that if you die, you won't _gain_ exp in any skills - could happen if new table is harder - 3 level loss could still mean having higher exp total. common/map.c: Fix on_same_map so check to see if either object has null map value - prevents crashes. MSW 2002-10-13 Experience cleanup - the main functional change is that no upper limit of exp in an individual skill, save for the limit that there is an upper limit of total exp a player can have. Thus, if a player concentrates complete in one skill, he could get to level 110 in it. A lot of code cleanup was done - so much had gotten added to the exp code that it was a real mess. common/living.c: re-arrange some of the code, so all the exp related functions are together. remove adjust_exp(), change check_dm_add_exp_to_obj() to check_exp_adjust. Add new functions add_player_exp(), check_exp_loss(), check_exp_add(), subtract_player_exp(). include/libproto.h: rebuilt. server/c_wiz.c: Update command_addexp() to use new exp functions. server/gods.c: Update lose_priest_exp() to use new exp functions. MSW 2002-10-11 configure, configure.ac: Remove --enable-old-layout option - that is more than 3+ years old now. Add --enable-dmalloc option so code can be compiled with dmalloc debugging without needing to change/rebuild the configure files. common/porting.c: Add stdarg.h to list of included files. include/autoconf.h.in: rebuilt, HAVE_LIBDMALLOC undef added. random_maps/square_spiral.c: fix bound checking value. MSW 2002-10-07 common/item.c: Fix bug with identified potions not getting set to proper name. MSW 2002-10-03 Bugfixes: Add golem_count element to player structure so we can properly detect when golem is destroyed. This fixes a crash in some places as the code tried to remove this already removed golem. Fix crash when null player maps. include/player.h: Add golem_count element to player structure. server/player.c: Add code in handle_newscs_player() that checks status of golem, clears op->contr->golem is value is bogus server/spell_effect.c, server/spell_util.c: Initialize golem_count value when golem is created. socket/request.c: Check for null map value. MSW 2002-10-02 Mostly bugfixes, but the addition of a wiz 'hide' command which makes the wiz out of sight so to speak. -- common/loader.l, common/loader.c: Fix bug where flag values were being saved with actual value of the flag (eg, 32768, 16, etc) instead of 1/0 value - Code effectively worked the same, just was a bit odd looking at save files. include/player.h: Add hidden element to player structure. include/sproto.h: Add command_hide(), update proto for players_on_map() lib/Makefile.am, lib/Makefile.in: add wizhelp/hide file. server/apply.c: Add error checking to converts so it doesn't crash if the converter doesn't have a proper other_arch. Modify shopmats so that they don't transport spell effects, like fireballs an burning hands. server/attack.c: Modify code so players can drain other players exp. server/c_misc.c: Modify various functions to not show info on hidden DM. server/c_wiz.c: Add command_hide(), clean up command_invisible() a bit. server/commands.c: Add hide command to dispatch table. server/main.c: Add code to not update players on map for hidden dm. server/player.c: Give hidden dm perpetual invisiblity. server/skills.c: Only get exp if you actually stole an item - fixes abuse whereby players who couldn't carry item could continually 'steal' it from monster and just gain exp. server/swap.c: modify players_on_map() to take addition arg to determine if real players on map should be shown, or if we shouldn't count hidden dms. socket/info.c: Modify code so that oldsockets don't get reports on high verbose messages. socket/metaserver.c: Modify metaserver update to not include hidden dms. utils/Makefile.in: update datestmp. MSW 2002-09-27 server/pet.c: Add check to pet_move() to make sure the space we are checking is within the map, and handle map tiling. MSW 2002-09-23 Various updates: NOTE - You need to install the updated archetypes (included below) if you run this code without the updated archs, you will likely find many things do not work. acinclude.m4 aclocal.m4 configure: more refinements for libpython detection. common/button.c: Two push_button() changes - have it check for ACTIVATE_ON_ PUSH/RELEASE to determine if the object should get activated. Also, change behaviour of TIMED_GATE so that multipart timed gates work. common/loader.l, loader.c: Update with acttivate_on_push/release doc/Developers/objects: Add notes about how to add flags to objects. include/define.h: add new FLAG_ values include/win32.h: update by pstolarc so it compiles on Win32. lib/archetypes: rebuilt MSW 2002-09-17 common/map.c: Fix problem with ordering in check_linked() - checking for NO_PASS was before checks for inventory checkers, resulting in inventory checkers that require the player to have an item not working. MSW 2002-09-15 ------------------------------------------------------------------------------ Changes for 1.4.0: server/disease.c: Change move_disease() somehwat - before, if you were not susceptible to a disease, it would never run its course. Yet you would still get stuck with the symptoms. there was a case on metalforge where a character had a symptom with no disease, and had immunity, yet was still getting stuck with the symptoms. Not sure if this change will help prevent that in the future or not. include/player.h: Change item_power in player structure to be 16 bits - 8 bit values were getting overflowed. MSW 2002-09-14 INSTALL: Update directions with new automake method. common/Makefile.am, common/Makefile.in: Fix code for building the libproto.h file - it was including loader.l and not loader.c common/exp.c: Add init_experience() and dump_experience() functions - init_experience() loads the experience table from a file. Add default experience table into this file common/init.c: Add call to init_experience() common/living.c: Remove experience tables - players can select the one they want by changing the exp_table file. Remove reference to new_levels[] - only levels[] is used now for the formentioned reason. include/config.h: Update notes about SIMPLE_EXP system. include/libproto.h: rebuilt. lib/Makefile.am, lib/Makefile.in: Add exp_table to list of files. lib/exp_table: New file that contains experience information. server/c_object.c: Modify command_take() to look for objects above the player to pick up, then objects below. This fixes the bug with not being able to use the take command on items from a chest the player opens without moving off the space. server/init.c: Add -mexp dump switch to dump the experience table. Allow the simple experience system to be set in the settings file. server/skill_util.c: Fix oddness in calc_skill_exp() which could result in add amounts of exp given. MSW 2002-09-10 include/sproto.h: rebuilt lib/help/killpets: New file lib/Makefile.in: Add help/killpets file. server/c_misc.c: Add command_kill_pets(). server/commands.c: add killpets command which kills your pets. server/monster.c: Add some code in check_enemy so that the enemy has to be a monster/generator/player to be considered valid - I was seeing things like arrows ending up as target enemies. MSW 2002-09-07 More bugfixes: common/loader.l, loader.c: Fix up the handling with speed with respect to style maps - the objects were still getting put on the active list. common/map.c: Fix up blocked_link() to behave more like the blocked_two() function - inventory checkers and door handling. Comment out blocked_two since it isn't used anymore. Modify load_objects to remove objects on style maps from the active list. Remove some of the debug messages about map loading. common/object.c: Add remove_from_active_list() function for use in map.c to remove objects from active list. common/porting.c: Comment out debug message if open_and_uncompress() can open a file - caller of the function should print out messages, and it really isn't much of an error in any case. include/libproto.h: rebuilt. random_maps/special.c: Modify place_special_exit() - this should fix bug of very large treasure maps - problem was if the generated map size was too small, when generate_random_map was called, it would generate a newly sized map that was much larger. Code was also re-arranged some to make it a little more readable. server/attack.c: Fix crash when creature may not have an owner and it kills something else. server/move.c: comment added - no code change. socket/request.c: Fix off by one error in esrv_send_animation() - rare condition as it only showed up when trying to send the last animation (zombie) - only an issue if the player is put on top of a zombie for some reason (no other space for them) - observed when leaving the random dungeon in the undead church in scorn without clearing out all the zombies first. MSW 2002-09-06 CHANGES: Update build instructions for the plugin. random_maps/square_spiral.c: Fix bug that could cause the search function to go off the edge of the map looking for a clear space. Doesn't happen often, but one crash did happen here. server/monster.c: Fix some bugs with monsters and wakeup - remove check for friendly that could never be true, and also fix logic so that monsters will now find the players. MSW 2002-09-05 common/button.c: Fix do_mood_floor() to look at all objects on space for something to effect, not just things above the moodfloor. server/attack.c: Add missing check to make sure the plugin exists before we try to access the plugin function. common/readlable.c: Fix crash caused by passing null value to mon_desc - check for non null was at end of { } do loop - check should be at the start. server/monster.c: Make it so that monsters with see invisible are not immune to blind - monster can be given appropriate resistance to make it so it is not effected by blind. MSW 2002-09-04 server/main.c: Move #endif in crypt_string to more proper place. server/monster.c: Fix bad if statement that may have been waking up monsters when they shouldn't have been. MSW 2002-09-03 This change mostly deals with improving behaviour of pet monstes. Most of the code is from K. Reinert - however, I did some code cleanup/ fixes related to pet monsters, so it is difficult to note where each piece of code came from. One thing this does fix is handling of multipart pets - these now work properly. common/map.c: Update comment for get_rangevector() - no code change. common/object.c: Add get_search_arr() which is used in pet monster code. This returns a semi random scrambling of the freearr array. doc/Developers/protocol: Update documentation about map1a protocol command. include/libproto.h, include/sproto.h: rebuilt. server/attack.c: Have drain attacks return 1 damage so that it is clear that you are actually hitting your opponent. Otherwise, you would get messages that 'you missed xyz', even though you are draining it. This extra point of damage shouldn't change balance in any significant way. server/monster.c: Update hnadling of enemies for pet monsters. It should more intelligently choose the monsters and not switch/clear the enemy field for no reason anymore. Change find_nearest_living_creature to use the get_search_arr() to more randomly choose direction of target - before, there was a proclivity to always look in the north direction. Modify can_hit() to look for closes part of enemy - otherwise, monsters may not attack opponents even if they were right next to them because they couldn't get to the enemies head. Remove move_object from this function - merged with move_ob in move.c server/move.c: Fix move_ob to use 'cleaner' code of move_object, but also have specific features that move_ob had (player handling). Before move_ob didn't handle multipart objects correctly, and the two functions were largely the same. Now move_object() just calls move_ob - the only difference in the functions is that move_ob() takes 3 parameters instead of 2 of move_object() (added parameter is originator). I think this should now mean multipart player objects may now work. server/pets.c: get_pet_enemy enhanced to be much smarter about selecting/finding things for the pet to attack. server/player.c: Remove commented out line of init_beforeplay MSW 2002-08-31 server/attack.c: Modify drain attack code so that if some agent of the player is doing the drain (eg, avatar, summoned monster, or even spell), player gets exp added to his total. Otherwise, the agent could suck all the exp out of the monster, resulting in no gain for the player. Also, fix bug in drain code where uninitialized value was being used if enemy had 0 protection to drain. MSW 2002-08-30 Various bugfixes: common/map.c: Change so that same logic is used to determine pclose/fclose that is used to determine popen/fopen - otherwise, compressed map files probably don't work properly. common/treasure.c: Do a memset to make sure entire treasureslist is set to sane values. lib/archetypes: Fix 'slaying' field (which determines spell name) in god_spelldirect_face_of_death and god_spelldirect_finger_of_death server/apply.c: Fix infinite loop if the player had cursed items that needed to be unapplied to apply an item - setting up next item iteration was inside if check when it shouldn't be. Also, print message to player if this is the case. server/monster.c: Better format some of the code for improved readability. Fix indentation of can_see_enemy. Clean up invisiblity check - may have fixed a bug - old code should have worked, but wasn't very readable. server/move.c: Fix some bad code from last checkin - didn't fix the crash on no floor for door type, and instead removed check type from next line by accident. server/player.c: Remove call for init_beforeplay - this is already properly called, and re-calling it resulted in some things being redone when they shouldn't be. server/skills.c: Add message if there is nothing to steal form the monster. server/spell_effect.c: Improve message when invisiblity duration is maximized. socket/init.c: change O_NDELAY to O_NONBLOCK of fcntl. MSW 2002-08-25 doc/Developers/objects: Update with new (better) information from Todd Mitchell. Doc is more complete, and now has an index which should make it easier to find things. server/move.c: Fix dereferencing NULL problem - was looking at op->above, but op could be NULL if the map had no objects on a space (typically not the case, but...) No reason I can see that we care about the object above - just process in normal order. MSW 2002-08-21 server/time.c: Possible fix for bug seen on metalforge - in move_player_mover, make sure we are working with the head of the monster. MSW 2002-08-13 More spoiler-html fixes - was not including attacktype information, but also fixed some formatting issues. common/item.c: Include attacktypes in describe_monster. doc/scripts/Makefile.in: Add monsters-extract.pl file. doc/spoiler-html/Makefile.in: Update to use ../scripts/monster-extract.pl file, remove monster-extract file. doc/spoiler-html/spoiler.html: rebuilt. MSW 2002-08-11 Fix spoiler-html generation to show resistances. Need to do normal spoiler next. Add a new docs/scripts directory to hold the common scripts, instead of spoiler, spoiler-html, playbook, and playbook-html each having their own copies. configure, configure.in: Add doc/scripts directory. doc/spoiler-html/Makefile.in: Update build directions to use ../scripts/items-extract.pl doc/spoiler-html/spoiler.html: Rebuilt with updated information. doc/scripts/Makefile.in: Makefile for directory. doc/scripts/items-extract.pl: perl version of the items-extract file. doc/spoiler-html/items-extract: awk version - no longer used. MSW 2002-08-02 common/item.c: Have describe monster show resistances of monsters - useful for spoiler output, as well probe spell. server/disease.c: Fix typo. MSW 2002-08-02 include/global.h: add FREE_AND_CLEAR_STR macro, relocate DELETE_STRING by the other macros. server/c_misc.c: Fix string printout in applymode function. server/disease.c: Update name_pl in diseases. server/player.c: replace FREE_AND_CLEAR with FREE_AND_CLEAR_STR - was freeing data that shouldn't be freed. MSW 2002-08-01 Various fixes: INSTALL: Update with note about --with-includes configure option. common/loader.c, common/loader.l: Add comment about flag_invis_undead include/define.h: Add FLAG_INVIS_UNDEAD lib/adm/map_info: Modify to not follow symbolic links. server/monster.c: Modify can_detect_enemy to be a bit more straightforward in its logic. Also, modify detection of invisible creatures - don't reduce duration, just return that the monster can detect the player. There were also spurious messages about the player being seen. Modify can_see_enemy to check FLAG_INVIS_UNDEAD, also fix broken comparison server/player.c: Clear FLAG_INVIS_UNDEAD when invisibility ends. Fix action_makes_visible() - had reverse logic on FLAG_MAKE_INVIS check, and a typo in the printed message. server/spell_effect.c: cast_invisible() to use FLAG_INVIS_UNDEAD - also check for maximum duration, and only search active objects when clearing enemy. server/weather.c: Fix off by one on comparision when intializing maps darkness when loading map from disk. In dawn_to_dusk, don't do further processing if the light hasn't changed. MSW 2002-07-29 Various bug fixes, add glyph spell: TODO: Updated common/map.c: Fix change_map_light() - if darkness was reduced to zero, it wouldn't properly notify the players or update the maps they are on. Also, make it more robust to handle changes by more than one. include/define.h: Increase NROFREALSPELLS include/spellist.h: Add glyph spell. include/spells.h: Add SP_GLYPH entry. server/attack.c: Fix up kill_object() - it has had some many various additions that it was difficult to follow the logic. It should also now do better check on skill objects when awarding experience. server/player.c: Add some checks/addition to properly deal with freeing the name_pl in the player object. Fix it so that if you are braced, you still won't attack friendly creatures. server/rune.c: Add cast_generic_rune() to handle the glyph and rune spell. server/spell_effect.c: Fix up some pointers in cast_cause_disease() - needed so that it works properly when embedded in a glyph. Have it return 1 even if no one caught anything - you still cast the spell, so you should lose the grace for it. server/spell_util.c: Fix some formatting. Break out the code dealing with rune into cast_generic_rune() socket/loop.c: Add flag to player command mapping, and update structure - if flag is set, command can only be issued when player is in play, and not when waiting at the quit or login prompt - fixes crashes where players could wait for the map to get swapped out (after quitting), and then looking at a space. socket/request.c: Fix map2cmd so that invisible players are drawn. MSW 2002-07-24 Add dm command 'freeze' which freezes a player from doing anything for some amount of time. include/sproto.h: rebuilt. lib/Makefile.in: Add freeze to wizhelp files. lib/wizhelp/freeze: New file. server/c_wiz.c: Add command_freeze(). Also, break out get_other_player_from_name() - several functions need the same logic of getting a player named X that is not us - making it a function reduces the duplicate code. Fix some formatting for some functions. server/commands.c: Add command_freeze to the dispatch table. MSW 2002-07-17 lib/Makefile.in: add a 'archonly' directive that only collects archetypes and doesn't collect images. lib/archetypes: rebuilt for fixes made to arches. lib/collect.pl.in: modified to take second parameter -ARCHONLY, that causes it not to save out animation, bmaps and faces file. server/apply.c: Change order of print when applying/unapplying - print out the 'you apply/unapply' before we print out the changes that applying the item does. It seems odd for it to be 'you feel stronger. you apply xyz'. Fix can_apply_object() so that if a player needs to unapply several items, the right return code is returned and we don't say the player has a choice. server/player.c: Fix missing clearing of player->next. MSW 2002-07-15 -- Start body commit notes -- Major commit. This adds body locations which is used for equipping items. Equipment has information which body part it gets equipped to, and monsters have information on how which body locations they can have. As part of this work, I also did a lot of code cleanup. To use this, you must use up to date archetypes - the ones included in this commit are fine - just make sure you install them. If you don't, players will not be able to equip items. common/arch.c: Initialize body_used to be same as body_info for archetypes - this way when monsters are created, they can start equipping items right away. common/exp.c: update new_exp() - some flags it checked for before no longer exist or have new names. common/info.c: describe_item() now takes second parameter - update dump_abilities to use new calling convention. common/item.c: Add table that describes the body_info locations and their names. Add functions that calculate item power for objects that don't have it set. Update display functions to show item_power in items. Update describe_monster() - use_horn/wand/rod merged into just use_range. Modify describe_item() to take second paramater - who the item is being described for. Show item_power in describe_item. common/living.c: Pull out MAXLEVEL from being defined in this file - define in in define.h, since other files use it. Add NUM_STATS define - replace hard coded values of having just 7 stats with it. Update change_abil to not display that the player has a new attacktype when equipping a bow that has it - fix_player() ignores the attacktype of the bow, so it was incorrect information. fix_player(): Initialize player ranges structure to null - will get filled in by code in function, updated to deal with updating the body_used data from body_info in the objects. Replace instances of last_heal with gen_sp_armour. Rearrange some code to make function more readable. common/loader.c, common/loader.l: Remove the variable_const information - no longer needed and confusing for new people when adding in new object elements. Add set_body_info() - parses the string from the load file and sets the appropriate array element. Add check_loaded_object() - does sanity checking for an object after finished loading - replaces need for long processing directive in the actual rules by having seperate function. Remove unused flags from load directives (apply_once, no_pretext, can_apply), add some new ones (item_power, gen_sp_armour), update others to can_use_range. Replace flag_links with simple array that contains the name for each corresponding flag. Update get_ob_diff to not use the V_ values and just include the actual string name - all recent changes have done this, just updated for old stuff. Update get_ob_diff to save new values that have been added. common/object.c: clear_object: Modify to use memset to clear the structure to zero - this is less error prone than listing all the specific values, and probably faster. Also, makes it easier to add new elements - no need to update object.c in most cases. common/player.c: Remove get_player_ob routine - this is now merged in with get_player_ob in server/player.c. Remove generate_ext_title - not used. common/readable.c: Update to pass second argument to describe_item. common/treasure.c: Update to calculate item_power of generated items. Clean up a lot of code formatting. Update add_abilities to use gen_sp_armour values, not last heal (note, it appears the last_heal values weren't being used before). Update calls to describe item to take second parameter. doc/Developers/objects: Update will_apply notes, add note about item_power, body location. include/define.h: Comment out unused flags (flag_apply_once, flag_paralyzed, flag_no_pretext, flag_ready_rod, flag_read_horn). Add flag_use_shield. rename flag_use_wand to flag_use_range. rename flag_ready_wand to flag_ready_range. Add flag_ready_scroll. Update ARMOUR_SPELLS access macro. Add AP_PRINT flag to apply flags. Add CAN_APPLY_.. return types for can_apply_object function. include/includes.h: add strftime, mktime checks to this file. include/libproto.h: rebuilt. include/living.h: Add NUM_STATS define, update extern declarations to use it for sizing. include/loader.h: remove the V_.. info and xbm_.. externs that were not used. include/newserver.h: Remove ext_tile information. include/object.h: Add Body_Locations structure, NUM_BODY_LOCATIONS define. Add definitions for WILL_APPLY values. Clean up object structure - formatting is now consistent, ordering of values groups values together more logically. Update all types to use the int8/int16/int32 types. Several unused fields removed. include/player.h: Update rangetype enum. Add unapplymode enum. Clean up player structure - type updates, unused fields removed, formatting fixed up. include/spells.h: remove range_name extern. Update SpellTypeFrom field to combine wand/rod/horn into spellMisc - none of the spell casting code was differentiating these. include/sproto.h: rebuilt. lib/Makefile.in: Add new help files (applymode, bind, brace) lib/archetypes: rebuilt for body_info, gen_sp_armour, item_power, can_use_shield information. lib/artifacts: updated for item_poer and gen_sp_armour changes. lib/treasures: remove unused _force for player treasure. plugin/plugin_python.c: Change FLAG_USE_WAND to FLAG_USE_RANGE. server/apply.c: Move stftime, mktime to include/includes.h. Remove draw_find() - one line function can just as easly be in the code itself. Update calls to long_desc to pass second parameter. move gravestone_text() to player.c file. Add direction parameter to apply_scroll() - in this way monsters can use it properly. Remove dead code. Update apply_special function. Add unapply_special(), get_item_from_body_location(), unapply_for_ob(), and can_apply_object() functions. server/attack.c: Remove SET_FLAG(op, FLAG_PARALYZED) line - no code was ever checking status of FLAG_PARALYZED. server/c_misc.c: add command_body() which dumps body information for player. Update who as idle element in player structure removed - was not being used by anything. Add command_applymode() to set players prefered unapply method. Remove calls to unlock_player() in various functions - unlock_player() has not done anything meaningful for a while. server/c_object.c: Modify long_desc to take a second parameter which is who is examing the object. this is needed so that we can pass it down to some of the lower level functions. Update calls to describe_item to pass this second parameter. remove FLAG_NO_PRETEXT code - no archetyps were using it. When examining objects, also tell player where to put them on. server/c_range.c: Update legal_range() - we now store the object that is responsible for a range in the player object, so code is much simpler. Update change_spell() to not destroy golem just by readying another spell - we now let players regain control of golems after switching to another range. Update change_spell to use item name of object for range description. server/c_wiz.c: remove reference to count_left from player object - field removed from structure. server/commands.c: add new commands (applymode, body) to command dispatch table. server/login.c: Remove unlock_player() and lock_player() and calls to it - current checking of names at login should be sufficient to prevent duplicates. Remove dead code from check_name. Update load/save code for unapply mode value. Add set_flag(op, FLAG_USE_SHIELD) if player is allowed to use armor - needed since flag_use_shield is really a class feature and so is not automatically updated for old player files. server/main.c: Remove references to count_left. memset marker object to NULL - seems to increase stability on metalforge server. server/monster.c: Many updates related to the body info - monsters follow some rules as players. Add monster_should_cast_spell function - monsters will use this for all spellcasting related actions (abilities, scrolls, wands, etc). Update for merged rod/horn/wand ranges. Update bow use by monsters - they don't actually need to equip it to fire - this way we don't need to constantly swap the monsters weapons between the bow and melee item. Use fire_bow from player.c for most of the work. Modify scroll usage - monster will use it when player is near, not when it first picks it up. Add FLAG_READY_SCROLL to denote the monster has a scroll to use. Also, monster now casts it in appropriate direciton. Merge the monster_use_wand/rod/horn into monster_use_range. Modify check_good_weapon and check_good_armour to just look at the stats of the two items without needing the monster to apply it first. server/player.c: Print motd in green so it is more noticable. Update get_player function to do work it did before as well as that of get_player_ob. Have get_player take a parameter which is the object of the player if he has one. Modify to use memset to clear the player structure - more sure fire than explicitly listing values to initialize. Remove calls to unlock_player. Modify fire_bow so that monsters can also use the function. Add fire_misc_object() to fire_wand/rod/horn - removes code from fire(). Add gravesetone_text() to this file. server/shop.c: Update to pass second parameter to describe_item(). server/skill_util.c: Update check_skill_to_fire since there are fewer rangetypes now. change range_scroll name to range_golem, as that is a bit more accurate for what it actually does. Modify show_skills() to show player his item power and total of items he has equipped. server/skills.c: Add second paramater to long_desc, remove references to count_left. server/spell_effect.c: Add second paramater to long_desc, remove references to count_left. Update range_scroll to range_golem server/spell_util.c: remove references to count_left. Update messages if player trying to cast where he can't with new range names. socket/info.c: Update range information and how we display what it is - we will use the object name of the range if available. Remove reference last_known_spell, last_shoot, last_spell, last_value player structure fields. socket/init.c: Remove ext_title information. socket/request.c: Add element for life_stealing in the resistance array. Remove references to idle, count_left in player structure. remove ext2 title information. MSW 2002-07-14 -- End body commit notes -- common/anim.c, common/button.c, common/friend.c, common/glue.c, common/init.c,common/logger.c, common/los.c, common/porting.c, common/time.c, common/utils.c, crossedit/png.c, crossedit/xutil.c, include/attack.h, include/config.h, include/map.h, include/material.h, include/newclient.h, include/skills.h, include/treasure.h, random_maps/decor.c, random_maps/door.c, random_maps/floor.c, random_maps/monster.c, random_maps/special.c, random_maps/standalone.c, random_maps/style.c, random_maps/wall.c, server/alchemy.c, server/c_chat.c, server/c_party.c, server/gods.c, server/hiscore.c, server/init.c, server/pets.c, server/resurrection.c, server/rune.c, server/time.c, socket/metaserver.c: Update banner copyright with proper contact information. MSW 2002-07-14 server/disease.c: Fix propogation of diseases with negative damage (these do a percent of the creatures damage). The new disease was getting a damage rating of 1 in all cases because we were passing a negative value to random_roll for the top end of the range. MSW 2002-07-08 common/arch.c: Add 'unlocked' match for item_matched_string. lib/help/drop, lib/help/dropall: Help files for these commands. lib/Makefile.in: Update to include help commands above. server/spell_effect.c: Fix formatting of summon_pet() function. Modified so that it no longers sucks player spellpoints when casting it via scroll - scrolls should not cast the player spellpoints. No idea why that code was there - in fact, casting off a scroll used more sp than casting from memory. Modify cast_cause_disease() function so that if the passed direction is 0, we refer to the facing and cast in that direction - this means spells of cause disease now work. Also perform some minor formatting changes in the function. TODO: Add not about inscription. MSW 2002-07-05 common/arch.c: Fix bug in item_matched_string which was matching all values (inverse in fact) when passed with count > 1 in matching string - missing ! operator. README: Update - remove note about windows client, since it is currently unsupported and could stop working in some future release. MSW 2002-07-05 ------------------------------------------------------------------------------ Changes for 1.3.0: socket/request.c: If players were using the original map command with an even map size, server would try to send too much data to client - checking in server would result in an abort. Modify code to now properly send right number of spaces. lib/Makefile.in: remove extraneous / in front of motd entry in file list. include/version.h: Update for version 1.3.0 Makefile.in: Update for version 1.3.0 lib/archetypes: rebuilt. MSW 2002-07-01 doc updates: Rebuild the doc files, but most of this is fixing some of the doc build stuff to correctly working with the new image set naming scheme and fixing some bugs. Some doc is certainly out of date - the playbook doesn't mention the classes for example. doc/handbook.ps, doc/spoiler.ps: rebuilt Note: all the doc/playbook changes also apply to the same files in doc/playbook-html. doc/playbook/Makefile.in, doc/playbook/makeps, doc/playbook/makeps.pl: replace the awk makeps script with the perl one. doc/playbook/items-extract: Don't show invisible items. doc/playbook/levels-extract: Update so that it properly finds the declaration of the levels in living.c doc/playbook/treas1-extract: Clear type when we get a new Object header. was resulting in duplicate entries for the characters. doc/playbook/treas2-extract: Don't include forces of the no_class_face_change as part of characters treasures doc/playbook-html/chap1.html: Update ftp site information. doc/spoiler/Makefile.in, doc/spoiler/makeps.pl, doc/spoiler/makeps: replace the awk makeps script with the perl one. doc/spoiler/items-extract: Add a space after the name match so that it won't match on the name_pl field. doc/spoiler-html/items-extract: Add a space after the name match so that it won't match on the name_pl field. doc/spoiler-html/makeps.pl: Update to handle new naming scheme for images. doc/spoiler-html/spoiler.html: rebuilt. lib/Makefile.in: Fix error in variable not being surrounded by parens. MSW 2002-06-30 server/rune.c: Fix bug that allowed players to use marking runes to create arbitrary objects by embedding a endmsg in the string. MSW 2002-06-26 lib/ban_file: Update comments to describe how it actually works. server/commands.c: Add some time cost to shout, say, and tell commands. This prevents abusive players from issuing huge number of these commands. MSW 2002-06-20 doc/playbook-html/Makefile.in: Remove some superfluous blank lines in the file. configure, configure.in, plugin/Makefile.in: Modify configure script to subtitute PLUGIN_TARGET, have plugin/Makefile not build/install plugin if necessary support libraries are not in place. common/item.c, include/material.h: Move the declaration/initialization of materialtype from material.h to item.c server/main.c: Modify crypt_string so that on Freebsd systems, it will use des_crypt if available, if not, won't encrypt. MSW 2002-06-18 TODO: Additional updates. Add support for loading the EMERGENCY_.. locations from a .emergency file in the map directory. This makes it easy to switch map distributions without the need to recompile. The emergency information is now stored in the settings structure. common/init.c: add EMERGENCY_ defines to default values in setting. Add init_emergency_mappath which loads the information. include/config.h: Remove NEW_WORLD_MAP definition, as it is no longer needed. Update some of the EMERGENCY_.. information as we don't need to include the information for the new world map. include/global.h: Add emergency_.. fields to settings structure. server/login.c, server/main.c, server/player.c: Update references from the EMERGENCY.. values to settings.emergency values. MSW 2002-06-15 lib/Makefile.in: modified so that it doesn't overwrite commonly customized files (eg, motd, dm_file, ban_file). These files will get installed on new installations. MSW 2002-06-14 common/item.c: break out monster description into describe_monster function from describe_item - the later was a really long function. Reveal weapon speed for identified weapons, spell point regen penalty and max speed for identified armor - this was discussed about 6 weeks ago. Clean up the code to reduce the number of redundant if statements and otherwise confusing code in describe_item. MSW 2002-06-14 configure.in, configure, plugin/Makefile, plugin/Makefile.in, plugin/Makefile.old: Modify the plugin module to gets its needed information from configure. configure.in modified to look for Python.h and to find the python library. plugin/Makefile.in is a new file. plugin/Makefile.old is the old plugin/Makefile (removed) - may be useful for sites where configure does not work for some reason. The use of --with-includes=-I/usr/include/python2.2 (or the like) will likely be needed for configure to find the Python.h file. Note - if you are doing a CVS update, you will need to re-run configure with the appropriate options for this change to take effect. MSW 2002-06-13 server/main.c: If on freebsd system, don't crypt the password. Crypt on freebsd behaves diferently, and since there is little reason to encrypt passwords, easier to just leave them decrypted. Fix for sourceforge bug 469017 MSW 2002-06-13 More minor changes, including a fix for the disappearing object bug - this was caused by the flag_links not getting updated the last time new flags were added. Problem probably only showed up now because loader.c wasn't rebuilt until recent changes. -- common/loader.c, common/loader.l: add extern to arch_init, when loading and get an object from a file, complain and ignore it if arch_init is not set (only time we should get object (vs arch) for names is when we load the archetypes file). Add missing entries to flag_links array. common/treasure.c: Fix code so that proper plural names are generated for custom items (potions, flesh items, etc). include/define.h: Add note about updating flag_links when NUM_FLAGS is increased. server/skills.c: don't let players steal from players with FLAG_WIZ set. MSW 2002-06-09 Mostly bugfixes. I'm not sure if this will fix the disappearing arch problem- none of the changes made in the original multiple name would seem to cause it, so hard to say if any of these changes may fix it. -- common/arch.c: Change get_archetype_by_name to be more efficient and not leak memory. Modify code that frees all archetype data to free the name_pl information. Make sure the clone.name_pl is set to NULL. When singularites are created, set the name_pl for them. common/loader.l, common/loader.c: Modify code that fixes up name_pl to be more correct when it fixes up name_pl for old objects. common/map.c: Modify load_map_header so that tile_paths will be normalized - need for editor to be able to load maps that have a multipart object that spans the maps. crossedit/Edit.c: Modify some calls of out_of_map to OUT_OF_REAL_MAP, since tiling code really isn't fully in place for the editor. Modify EditPerformFill so that it actually works and doesn't crash the editor. include/global.h: Move FREE_AND_COPY macro from loader.l to here so that all source code files can use it. lib/adm/map_info: Modify to actually be able to examine just a sub portion of the map directories, and not all of them. Don't always show the unused objects - information isn't very interesting if only a portion is being examined. Modify the exit examining code to properly deal with random maps (if there is a finalmap component, make sure that does exist.) Loade the bmaps file and not the faces file to find valid faces. plugin/plugin_python.c: Add missing %s that described what script was actually loaded. random_maps/special.c, server/alchemy.c, server/c_misc.c, server/gods.c, server/login.c, server/player.c, server/spell_effect.c: Set up proper name_pl value for code that changes the name of objects. server/apply.c: Use FREE_AND_COPY to set up names. Set up proper name_pl values for cases that change name. In apply_lighter, call fix_player if player is lighting an object in his inventory - necessary for the players glow_radius to get updated so the change actually takes effect. socket/request.c: Modify esrv_map_scroll so that it properly clears cells that are moving out of view - failure to do this was resulting in the map1a updating these spaces with empty faces. This was causing fog of war wackiness with the client. MSW 2002-06-06 common/button.c: Fix mood floor code - before, it was changing the moods of all sorts of objects (luggage, itself, etc). Now, it only changes objects above the floor, and only monsters. MSW 2002-05-31 Main change is the addition of name_pl and client_type to object structure. The name_pl contains the proper plural name instance - fixes problem of '2 tooths'. client_type is sent to the client so that client doesn't need to figure out sorting on its own. Client_type is an object attribute, so can be modified in maps to hide the real type. -- common/arch.c: item_matched_string() modified to use the name_pl field when trying to match names, and not to try to make the name plural itself. common/item.c: query_short_name(),query_base_name() modified to use name_pl instead of trying to make the name plural. common/loader.c, common/loader.l: Add code to load and save the name_pl value and client_type. Add logic when object is finished loading to set name_pl value to same as name or arch name if no name_pl is specified - this supports old maps/characters in which the objects dont have a name_pl field yet. Disable logic for need_an and need_ie flags since they are no longer needed. Fix bug that caused elevation not to get saved. common/object.c: Add client_type check for CAN_MERGE function. Add appropriate logice in functions to handle setting, clearing, and copying of name_pl values. Remove unused anim_... fields initialization. doc/Developers/objects: Add information about the name_pl field and client_type. doc/Developers/protocol: Remove item protocol command info - it has been obsoleted. Add information about item2 protocol command. include/define.h: Remote ST1_* values - they were not being used. comment out FLAG_AN and FLAG_NEED_IE values. include/newserver.h: Add itemcmd to socket structure - this is the version of the item protocol command that will be sent to the client. include/object.h: Add name_pl and client_type field to object structure. Remove unused anim_* values. lib/archetypes: rebuilt with new archetypes that contain client_type and name_pl information. lib/bmaps, lib/bmaps.paths, lib/crossfire.1, lib/crossfire.0, lib/faces: rebuilt. server/monster.c: Remove anim_ references that were not being used. socket/init.c: Initialize itemcmd version in the socket to 1. socket/item.c: Remove special handling for clients of old versions - all clients now have to be at least sc_version 1024 (which has been around for a long time). This simplifies a lot of the object code that deals with sending or not sending plural names to the client - now always send them. Change code that sends item to client to use the item revision (currently 1 or 2) that the client wants. If version 2, send along client_type information. socket/request.c: Handle 'itemcmd' parameter in setup command. Make sure it is in proper range. If client is very old (sc_version < 1024) tell them so. MSW 2002-05-30 crossedit/png.c, crossedit/xutil.c: Increase size of temporary buffers that are used when loading images - necessary to allow the editor to run without crashing. include/newserver.h: Remove quick_pos from the MapCell structure. server/main.c: Add code to set the coordinates to the EMERGENCY_X/Y values if using the EMERGENCY_MAP. socket/request.c: Fix code that was causing darkness to get repeatedly sent for some spaces. MSW 2002-05-19 The bulk of this commit is to modify the server to only send the lower rightmost part of multipart archetypes that use the same head. This allows support of big images in the client. common/arch.c: Modify first_arch_pass to figure out the tail_x/y values for multipart archs. Rename the prev variable to head, as that it really what it is. Remove quick_pos info. common/object.c: remove quick_pos info from object. doc/Developers/images: Add notes about using merged images. doc/Developers/protocol: Add information about the map1a command, which is used to for big image support. Remove map2 documentation. include/map.h: Add MAP_LAYERS define instead of using hardcoded value of 3. include/newserver.h: Change the MapCell to use MAP_LAYERS - saves considerable memory. Add defines for MAX_CLIENT_ map sizes. Remove map1cmd, map2cmd elements from socket structure - instead use enumeration of mapmode - only one map type will be used at any time by the client, so no reason to have individual elements - it also makes it easier to add new mapmode commands. include/object.h: remove quick_pos, update_tag from object structure. Add tail_x, tail_y values to archetype structure. include/player.h: Remove some now unused values from the player structure (drawn, floor, floor2, darkmask). These have been superseded by the map cells in the socket structure for quite a while. include/sockproto.h: rebuilt server/player.c: Remove code that initialized the drawn values in the player structure since they no longer exist. socket/init.c: Replace map1cmd, map2cmd elements in socket structure with mapmode element. Modify init_ericserver so that it properly passes an int when setting the SO_REUSERADDR field. socket/request.c: Modify code in SetUp function to use the new mapmode enumeration in the socket structure. Add support for map1acmd setup option. Throughout map code, replace MAXMAPCELLFACES with MAP_LAYERS. modify map_clearcell to take options for values to clear the cell to. Add have_head, check_head, and update_space commands - used with the map1 command to store and find head information. draw_client_map1 modified to support map1a extensions, as well as added logic for checking for heads in blocked and out of viewable map spaces. Some of the code is simplified by using the update_space function, since the logic for processing each layer was otherwise the same. remove draw_client_map2 function. esrv_map_scroll has same logic - some variables and code formatting changes. MSW 2002-05-18 server/login.c, server/c_misc.c: Don't save characters with 0 experience. This apparantly fixes some abuses. MSW 2002-05-18 server/attack.c: Don't generate PLAYER_KILL_PLAYER messages if kill happened on battleground. Also, datestamp the messages. MSW 2002-05-13 server/attack.c: Generate log message when a player kills another player - include the ip address of the killer to make it easier to add them to ban files. MSW 2002-05-06 ------------------------------------------------------------------------------ Changes for 1.2.0: Makefile.in, include/version.h: Update for 1.2.0 release lib/Makefile.in: have it make an archive for the archetypes. MSW 2002-04-28 doc/Developers/protocol: Add documentation about the map2 protocol command. socket/request.c: Fix bad indentation for the map2 function. No actual functional code changes, but some comments updated. Running diff with the -w option will make the changes, or lack thereof, more viewable. MSW 2002-04-28 crossedit/xutil.c: Update to use name of png file. lib/archetypes: collected - pl_dragon arch changed a while back, with no new collect. lib/collect.pl.in: Add some notes about usage if no option is given or if --help is given. server/gods.c: Fix that resulted in weapon/armor restrictions not working. MSW 2002-04-23 Various minor bugfixes. Note the changes may appear larger than they really are due to formatting/indentation changes. Run diff -w to supress those: make_win32/installwin32.bat: Update for new image files. server/c_object.c: Fix SAVE_INTERVAL #ifdef block. It failed to compile as it was written. Simplify code, but it should have the same effect. server/move.c: Modify push_object so that if a player swaps position with his pet, we send a esrv_map_scroll. This should save bandwidth, and also prevents display corruption when fog of war on the client is in use. Add some new comments, adjust some formatting. server/player.c: Fix minor typo in comment. server/skills.c: Modify new_draw_info that is responsible for the "You pray" messages to not have the NDI_UNIQUE flag so that they can get batched up, depending on users value of output-count server/swap.c: Remove swapped out per player unique maps from the list of maps. Reduces cpu and memory consumption by a minor amount, and results in a cleaner 'maps command output. server/weather.c: Add standard crossfire banner to top of file. Modify long long declartion to just be a long. MSW 2002-04-20 socket/item.c: Add checks to esrv_move_object - before it just trusted the client that the destination target to move items into was a container. Now do valid checking that the object can be picked up, that the container can hold it, etc. MSW 2002-04-18 Add utils/crossloop.web.in script. This script is used on metalforge - it generates the backtrace file, compresses the core, and sends out mail. configure.in, configure: Rebuilt to make the crossloop.web script. utils/Makefile.in: Install the crossloop.web script. Include the crossloop.web.in script when making the archive. utils/crossloop.web.in: New file. MSW 2002-04-14 Update to improve image caching and faceset support in the client. The main change is adding the 'requestinfo image_info' and 'requestinfo image_sums' commands. common/image.c: Checksum the bmaps file when we load it - we send this as part of the image_info data. doc/Developers/protocol: Document the requestinfo data. include/global.h: Add extern for bmaps_checksum, and the define for ROTATE_RIGHT which is used for checksumming. include/newserver.h: Update SC version to 1027 so that clients can know if they can issue requestinfo commands. include/sockproto.h: rebuilt lib/adm/collect_images.pl: Add support for it to make a crossfire-images distribution that the client can use to bootstrap its image set. socket/image.c: Change SendFaceCmd to take a NewSocket parameter instead of a player parameter - in this way, it can be used before the AddMe command - this allows the client to download images before issuing that command. Add send_image_info and send_image_sums function which send the requestinfo data to the client. socket/loop.c: Move the askface command from the player commands to the newsocket commands. Add RequestInfo functino that determines the type of request and calls the specific function to deal with it. MSW 2002-03-25 ------------------------------------------------------------------------------ Changes for 1.1.0: Updates for 1.1.0 release - pretty much all minor bug fixes, like compiler warning messages, invalid ANSI C constructs, missing files to include in the distribution. Makefile.in, include/version.h: update version. include/Makefile.in: Add some missing files include/libproto.h, sproto.h: rebuilt to prevent compiler warnings lib/Makefile.in: Include the wizhelp files in the archive. server/apply.c, server/skill_util.c: fix invalid code (function parameter names can't match structs/typedefs), add a missing return value. server/c_move.c, server/c_new.c, server/c_object.c, server/commands.c, server/daemon.c: Don't include the sproto.h if CEXTRACT is defined. server/plugins.c: fix printf command that was printing wrong value type. doc/spoiler-html/Makefile.in: Remove extraneous newline server/player.c: modify play_again to remove the player object if not done so already. This fixes a crash observed on metalforge when a player quit at the roll/swap stats prompt (undocumented that you can use 'q' then to do so). It looks like this should also fix crashes that may be associated with the kick and shutdown wiz commands. MSW 2002-03-12 Added new dragon race to crossfire. Players of this dragon race can gain resistances by eating the flesh of their defeated foes. They can also specify in a certain resistance-type and gain various abilities when increasing levels. This "focus" can be switched by eating very special As announced on cf-devel, this is the patch which adds a new dragon-race to Crossfire. Players of this dragon race can gain resistances by eating the flesh of their defeated foes. They can also specify in a certain resistance-type and gain various abilities when increasing levels. This "focus" can be switched by eating very special flesh, which will be available for sale. Dragon players gain special titles which cannot be overwritten by manually set titles. AndreasV 2002-03-01 lib/collect.pl.in: Modified so that it uses the image.base.xyz.png to make sure each listed face in objects has an image, and not the old xbm images for that task. Also, ignore all files that end in .png, .xpm, or the face extension - consider them legitimate files for the arch directory. MSW 2002-02-25 socket/image.c: Change type of image data to be uint8 from char. Checksums were being incorrectly calculated when using the char type. MSW 2002-02-25 server/main.c: If exit is damned, update players death & WoR home-position and delete town portal. server/apply.c: Fix bug in move_apply. return was used instead of goto leave, so recursion_depth wasn't decremented. mids 02/13/2002 server/spell_effect.c: Fix bug in summon_cult_monster that would result in crash if monster was killed when inserted. MSW 2002-02-10 common/map.c: load_map_header: If the map message is empty, don't copy uninitialized data as the message. This fixes various crashes. lib/Makefile.in: Remove the adm/*xpm* utilities, as they are no longer needed or distributed. server/apply.c: set the player speed to zero after they use a savebed. Fixes crashes with players that have constant image animation (fireborns) when they apply the savebed and the map then gets swapped out. server/plugins.c: Fix some serious memory leaks. Some still remain, with my comments included. server/skills.c: Removed unused variable. MSW 2002-02-05 include/player.h include/sproto.h server/c_chat.c server/player.c: New player command 'reply', replies to the last person who told you something. server/c_wiz.c: New DM command 'teleport', lets a DM teleport next to target player, it is an inverse summon. server/commands.c: Add hooks for 'reply' and 'teleport'. mids 2002-01-16 TODO: updated with bugs, remove things that have been done and are no longer TODO's. configure.in, configure: Remove lib/xpmtopix.pl file form those to be built, as that file has been removed. common/object.c: Fix bug in check_walk_on which would result in spell objects not being properly processed - the intention is not to process spell objects - we should stop going up (in previous loop) when we get such an object, not on the way down. This fixes directors not working really well. MSW 2001-01-13 Add the concept of overlay maps to the code. An overlay map is a map which is loaded on top of another map, replacing values in the header, and placing objects on top of other objects. This is the fundamental part of the new weather code, but also can be used to allow dynamic editing of the worldmaps by DM's eventually. garbled 2002-01-01 server/spell_effect.c: fix animate_bomb so that if the bomb is in a container, it does not crash the server - the problem was that it was calling drop, which would then drop it right back into the container. also, the x and y coordinates were not being properly set. MSW 2001-12-31 This change lets the server have multiple image sets. The client can then request which image set to use, and the server will use that image set, falling back to other sets as necessary. I have tested this with CVS client, and works fine at least in terms of old functionality. = doc/Makefile.in: Add images file which describes image guideline. doc/Protocol: Various updates - some things missing, added other notes about facesets. doc/images: New file, describes guidelines for image sets, as well as some of the internals include/newserver.h: Update for multiple image set - redid most of the image definitions as they were out of date with only png being supported. include/sockproto.h: rebuilt lib/Makefile.in: remove crossfire.png, add crossfire.0, crossfire.0. Update build directions to use crossfire.0 instead of crossfire.png lib/adm/collect_images.pl: Modified to collect all the image sets, remove support for collect xpm and xbm images. lib/crossfire.0: new file, base images lib/crossfire.1: new file, alternate images lib/image_info: New file, describes image sets. lib/crossfire.png, lib/xpmtopix.pl.in: Removed - no longer needed. socket/Makefile.in: add image.c file. socket/image.c: Moved all image related data in this file - this includes loading the image files, as well as the protocol commands. socket/init.c: move read_client_images to image.c file. set ns->faceset and ns->facecache to 0. Move freeing of image data to image.c socket/request.c: fixed some indentation inconsistencies.add setup commands for faceset as facecache. Move SetFaceMode,SendFaceCmd,esrv_send_face to image.c file. MSW 2001-12-31 common/loader.l, common/loader.c, common/object.c, include/object.h, socket/item.c: Remove sub_type and sub_type2 information - these were poorly named fields and not properly implemented. common/treasure.c: Add missing return type to change_treasure function. crossedit/Edit.c: Add SET_MAP_FLAGS macro to set P_NEED_UPDATE flag before calling update_position. include/config.h: Add NEW_WORLD_MAP selection which results in proper emergency save paths if you are using the maps-bigworld distribution. server/c_wiz.c: Fix the formatting (indentation) of the command_create function. No actual changes in how it runs, but the old formatting was really terrible and inconsistent. server/main.c: remove call to send_mapstats_cmd server/monster.c: Update the comment style to be proper, as well as the comments themselves. socket/request.c: Fix up improper indentation in esrv_update_stats. remove send_mapstats_cmd function. MSW 2001-12-23 Lots of changes here. Basically implement a night and day system, as well as tracking of game time. A clockdata file is now created and updated by the server to increment time. Time increases by 1 hour, approximately every 2 minutes of real time. Right now this code has virtually no effect, but as maps are updated with outdoor settings, nightfall will occur automatically. The time command has been modified to show the current game time, and the clock objects have been changed to show the game time as well. garbled 2001-12-18 common/map.c: Fix some bugs relating to map tiling. MSW 2001-12-16 common/object.c random_maps/Makefile.in server/c_wiz.c server/player.c server/plugins.c server/timers.c socket/request.c: Most of the changes are to just fix compiling warnings or errors so that it compiles on sparc solaris with the workshop compiler (things like }; should just be }). Declaration for alphasort was missing in plugins.c. random_maps/Makefile.in had the wrong order in linking - the system library needs to be linked in after the crossfire libraries. crossedit/App.c: Fix for running on 8 bit color - colormap was not being initialized to usuable default value. crossedit/xutil.c: Broken code when duplicating faces for undefined images. That code should never really be used, as pixmaps currently are always contiguous. MSW 2001-12-15 Include mapstats cmd for extended clients (sdl iso). Cmd is needed for automaps ambient media infos, map name and map parameter infos. Paramter infos are used for "fire & forget" animation tags inside the map2 cmd (next patch). server/main.c: include a automatic mapstats cmd every time the player enters a new map. Its the "default" mapenter cmd. The script event should used for special cases. include/sockproto.h and socket/request.c: include the mapstats cmd function. MT 2001-12-03 This checkin for the most part removes support for xpm and xbm graphics - now the only image supported is the png. common/arch.c: comment out printing on warning of object having no type - getting 300 meaningless messages at startup is annoying. common/image.c: Remove X11 color information from colorname array. Remove processing of color_fg and color_bg information from face file - only use color_fg if no magicmap information is available - foreground and background infoformation was only needed for bitmap graphics. common/loader.c, loader.l: Add elevation element, comment out some logging messages that are excessive and only really relevant for people who want to fix them (really should be in the collect script anyways). Remove some unused code. common/map.c: add outdoor field to map structure - add support for loading and saving it. crossedit/App.c,crossedit/CrUtil.c, crossedit/Defines.h, crossedit/crossedit.c crossedit/xutil.c: Remove support for non png graphics. crossedit/Attr.c: Add support for elevation variable, remove code for non png graphics. doc/map-technical: Add note about outdoor field. include/face.h: remove fg, bg fields from face struecture. include/global.h: Update colorname array definition. include/loader.h: Add V_ELEVATION field. include/map.h: Add outdoor field to map structure. include/newserver.h: Update types so it only loads/knows about png information. include/object.h: Add elevation field to object structure. lib/Makefile.in: Remove support for building crossfire.xpm and crossfire.xbm files. lib/animations, lib/archetypes, lib/bmaps, lib/bmaps.paths, lib/crossfire.png, lib/faces: Rebuilt. Main difference is a few sea types, and the fact that it hadn't been collected for a while. server/spell_effect.c: Modify dimension door so that it calls MapNewmapCmd so that fog of war does not get confused. Also, removes call to draw as functions further up will do that. server/spell_util.c: Remove color information from attack information that shuffle_attack uses. socket/init.c, socket/request.c: Remove support for non png images. MSW 2001-12-02 Various minor bugfixes - common/loader.c: rebuilt include/map.h: Change width,height,enter_x,enter_y to be 16 bit instead of 8 bits. lib/treasures: change skull treasure to tooth instead of skull_tooth since the later is not currently in the distributed archetypes file server/monster.c: Optimize some code, remove some other that is not used. server/plugins.c: Fix un initialized value in initPlugins that would cause crash at startup if plugin directory does not exist. MSW 2001-11-13 common/object.c: Modify copy_owner so that if a player is passed in as the object to copy, we properly set that player as the owner of the object instead of returning. This fixes the lack of exp when poison inflicted from a weapon kills something. MSW 2001-11-05 common/map.c: Fix bug in get_rangevector which was causing reverse of documented procedure. This also resulted in monsters not attacking adjacent creatures with physical attacks. MSW 2001-11-03 Add weapontypes to the game. These are currently used for nothing other than messages, which are not fully written yet. Players should not see them appear yet. Fix the bug where you opened a door with a key and saw "You ." Fix a bug in the PLUGIN code where current_weapon wasn't set when the player loaded from savefile. Take the setting of current_weapon out of #ifdef PLUGIN garbled 2001-10-31 server/spell_util.c: Add out_of_map check to can_see_monsterP. Fixes crash when casting ball lightning/divine shock (and likely other events) on maps not surrounded by walls. MSW 2001-10-07 New attacktype messages for damage. Now it gives you the message for the damage type you actually did. So if you are attacking with stormbringer, you get electrical or drain-based messages. Also added special messages for the attack-based skills like punching, karate, etc. garbled 2001-10-06 common/map.c: Add INS_ON_TOP flag to insert_ob_in_map calls to preserve stacking order. Modify update_position to generate map spaces with more proper order. common/object.c: Modify insert_ob_in_map so that it preserves stacking if INS_ON_TOP is set. crossedit/CrEdit.c: Add missing code that would draw third face on a space. include/object.h: Add INS_ON_TOP flag/define. random_maps/exit.c: Modify code so that if the random maps leading to a special map are reset, they will properly link in with an already loaded final map (and update exit from final map back up) as needed. Also fix bug in that if the final map has been reset, a new one will now be properly loaded. random_maps/random_map.c:Update minimum size to be 7 (up from 6) - fixes bug which caused crashes when square_spiral maps of 6x6 would fail to generate. random_maps/random_map.h,random_maps/room_gen_onion.c: move OPT_values from room_gen_onion to random_map.h since the square_spiral code uses them. random_maps/square_spiral.c: Update call to map_gen_onion to use OPT_.. values instead of constant integer. random_maps/treasure.c: Add some casts to sprintf statements to eliminate some compiler warnings. server/main.c: Modify enter_exit code such that a random map has reset, we generate a new random map. This can happen when the random_map resets before the map that leads to them resets. MSW 2001-10-06 Add a new command category called communications commands. Place tell, shout and say in here. Also create emotion functions. These functions have no real effect on the game, but make communications between players more colorful and fun. They are mostly fluff. Included with this patch are two new convenience functions, new_info_map_except, and new_info_map_except2, which allow the programmer to write to an entire map, except for certain individuals. garbled 2001-09-27 Add complete processing code for luck. This new code removes all previous instances of luck, and adds a few new convenience utilities. Now, every die roll in the game is affected by luck in some small way. This causes luck to be an intangible benefit to the player, without totally unbalancing the game. The new functions are random_roll, die_roll, and rndm, which should be used in place of RANDOM() whenever possible. garbled 2001-09-26 This checkin mainly fixes multipart teleporters - they should now work properly. Also a minor fix to make the new pickup code work. server/apply.c: apply_shop_mat rewritten to be more 'presentable'. Minor changes were needed in any case to pass the player/creature a a second object to teleport. server/c_object.c: change the sscanf to be unsigned when getting value for new pickup mode. At least on my system, if the value in the string was larger than the max signed value, sscanf set it to the max value. server/move.c: teleport function largely re-written. Instead of the third arg being the 'originator', it is now the object to teleport. This allows the head of the teleporter to get passed to this function even if the object to teleport is not on the head. server/time.c: move_teleporter modified to also check for objects on the other parts of multipart teleporters. Also, pass the head object to the teleport function so that proper destination is used. MSW 2001-09-02 Add Nils Lohner patch that new selections to the pickup mode. include/define.h: Pickup type defines added. include/player.h: Change mode (pickup mode) to 32 bits. server/c_object.c: command_pickup function modified to support all the new pickup options. server/player.c: Fix for path_to_player to prevent crashes. Add check in move_player_attack just in case. check_pick function modified to support new pickup options. do_some_living modified to eat flesh items if player is starving and they don't have any food. server/spell_effect.c: cast_detection modified so that detect magic/curse will not show objects beneath the floor. Change so that detect_monster and detect_evil spells copy the face of what they detected - gives better appearance on client. socket/item.c: fix bug LookAt that ws checking blocked_los on wrong offset. MSW 2001-08-28 Enhancements to make monsters 'do the right thing' with relation to tiled maps (ie, will detect players and attack them if on an adjoining tiled maps). This involved a rewrite of path_to_player - I've tested this out, and if anything, it seems that monsters may be more aggressive on spellcasting. ++ common/map.c: blocked modify to make sure it is checking valid coordinate value. blocked_link,blocked_two modified to translate for tiled maps. Add load_and_link_tiled_map which loads a tiled map and links in all pointers relative to adjoining maps. out_of_map modified to use this function instead of doing the work itself. Add get_rangevector function that returns offset, direction, and distance between two objects, taking into account tiled maps. get_rangevector_from_mapcoord added which is similar to get_rangevector, but takes a map and coordinates instead of a second object. on_same_map function added which returns true if the two objects are on the same logical (ie tiled) maps. doc/crossfire.doc: Add note about what Int does for monsters. include/map.h: Add some comments, and add structure for rangevector function return values. server/attack.c: add calls to on_same_map instead of doing op->map comparisons. server/monster.c: Many functions modified to properly handle tiled maps properly. server/pets.c: get_pet_enemy modified to know about tiled maps. server/player.c: get_nearest_player modified to know about tiled maps. path_to_player rewritten to know about tiled maps - I think some other bugs were also fixed in return values. Split player_attack_door from move_player attack to keep functions a more reasonable size. move_player_attack, player_can_view modified to know about tiled maps. server/skills.c: can detect_enemy modified to take another parameter - call in steal updated to pass this parameter. server/spell_util.c: ok_to_put_more, can_see_monsterP modified to handle tiled maps properly. socket/item.c: look_at modified to return proper results when player looks at something on an adjoining tiled map. ++ End of checkin common/object.c:decrease_ob_nr modified to correctly update client when player uses item from container that is on the ground (bookshelf for example) server/time.c: move_teleporter modified to skip over wall/floors and teleport whatever is above them. MSW 2001-08-05 common/map.c: modify link_multipart_objects to preserve name and title of head when making the more parts. modify update_position so that it should never show an invisible face to the player. common/object.c: fix check_walk_on so that spells will now properly get affected by spinners and directories. include/sockproto.h: Rebuilt to include MapNewmapCmd server/hiscore.c: Fix crash if player savebeds map on map which does not have a name. Use the path instead. server/move.c: modify teleporter function to send MapNewmapCmd to client if player got teleported. Needed for fog of war code. server/time.c: modify move_teleporter so that it will not teleport walls. socket/Makefile.in: Modified to use cproto to generate proto files. MSW 2001-08-04 common/Makefile.in crossedit/Makefile.in doc/Makefile.in doc/playbook-html/Makefile.in doc/spoiler/Makefile.in doc/spoiler-html/Makefile.in lib/Makefile.in lib/crossfire.png random_maps/Makefile.in socket/Makefile.in utils/Makefile.in: Fix up so that distclean now clears out all appropriate files - MSW 2001-08-01 common/map.c free_map Set in_memory status to MAP_SWAPPED - fixed bugs of maps not getting reset properly common/object.c: insert_ob_in_map - was passing wrong value to check_walk_on, resulting in some things not working as expected. doc/Protocol: Clarify how the sending of the version command works. server/move.c: move_ob redone. It should hopefully be more efficient (only' remove objects after verifying they can in fact move). IMO, code is also simpler, and hopefully has fewer bugs. socket/init.c: InitConnection - modified to set faces_sent[0] to one so that we will never send any information about face 0 to the client. facecode 0 is sent in the map1 command to clear spaces/layers. MSW 2001-07-30 Added support for the newmap cmd needed for the fog_of_war code in the gtk client. include/newserver.h: added newmapcmd:1 to NewSocket struct server/main.c: added call to MapNewmapCmd in enter_map() socket/init.c: init code for new newmapcmd value in NewSocket socket/request.c: deal with "newmapcmd" value in client setup string Added MapNewmapCmd( player* pl) function. SMACFIGGEN 2001-07-21 common/object.c: remove_ob - set P_NEED_UPDATE before calling update_position to prevent warnings from update_position being called with P_NEED_UPDATE being set. MSW 2001-07-19 socket/request.c: Fix bug in map1 command which resulted in it sending too much data with even maps. For example, if the client requested a 16x16 map, the server would effectively send a 17x17 map to the client. MSW 2001-07-19 +++ Major redo of map code: 1) Remove encounter map support (with the much better random map code, I don't see much reason for it) 2) Remove map_ob from map structure, and instead store relevant information in map structure itself. Remove strange meanings (stand_still meaning fixed reset time for example) 3) Redo internal structure of map and how information on each space was stored - this should make future extensions much easier, as well as making debugging easier. 4) Make USE_LIGHTING standard part of game. 5) Redo how lighting objects are handled - instead of making a linked list of the light giving objects, at field to mapspace that contains lightsource for the space. 6) Rewrite insert_ob_in_map to take optional parameter that determines other behaviour. This replaces insert_ob_in_map_simple. Function now does sorting of some objects, so performance for lots of spell objects on one space should be much better. 7) Change how multipart objects are saved. Now only save the head, and link in the rest of the parts when map is loaded. Additional parts linked in are put just above floor level when linked in, so things like shops won't hide items that someone drops on them. For monsters, this linking shouldn't be a problem - once they start moving, they will get relinked as normal (on top). 8) Modify update_object to only call update_position when necessary (ie, space attributes change). Otherwise, let the map transmission code call update_position when necessary (ie, in players view) - this saves cpu time as time will not be spent updating spaces that no one will see (before, how the space looks was updated whenever a space had an object added or removed). TODO: remove some things that have now been done. common/Makefile.in: Remove ltostr.c and sqrt.c from list of files common/ltostr.c, common/sqrt.c: Moved into porting.c common/anim.c, common/button.c, common/item.c: Update calls to update_object common/living.c: have fix_player calculate light value for player/monster. common/logger.c: Remove code that has server exit if too many LOG messages happen too quickly. This was not a reliable mechanism, and it should really be up to the functions doing the logging to know if they can continue or not. common/los.c: Changes on how it deals with lighting on maps - get light value from map space array instead of using the linked list. Functions that managed the light list have been removed. Change logic of line of sight function to be more efficient (before, we may examine the same space multiple times). rename update_all_los to update_all_map_los, and change update_all_los to take coordinates so that we only have clients within view of the change recalculate los. Also, have update_all_los check for tiled maps that may have clients that need to get updated. common/map.c: remove refresh_map - this used to be used to try to recover from map errors if many_cores was not set - IMO better to core and just restart and really fix the error than try to deal with possible corruption that may otherwise result. Move open_and_uncompress and close_and_delete functions to porting.c - they are 'common' functions that are not related to the map code. Remove some lighting related code, as that is no longer done with a list. Many modifications because of new map structure. And logic to load and save the new map structure format. Modify many of the functions to take map tiling into account. Change way multipart objects are saved, and add logic to relink objects when maps are loaded up. Remove some functions that are only used by the editor into the editor. Move update_position from object.c to map.c as it is better placed in map.c. Modify function to figure out light for a space. Make out_of_map a function that knows about map tiling. New function - get_map_from_coord which knows about map tiling and does coordinate and map translation. common/object.c: Have update_object take another parameter which tells update object what has changed about the object. This lets the function know if it should call update_position right away or if it can just mark the space as needing an update at a later time. move update_position to map.c. insert_ob_in_map: now takes another parameter that describes actions not to do. modified to know about map tiling and do appropriate translation. Does some object sorting so it should handle spell objects more efficiently. insert_ob_in_map_simple is now replaced by using appropriate flag to this changed version of insert_ob_in_map. Clean up remove_ob - seemed to have done things in a more complicated fashion that is no longer necessary. Modify check_walk_on to look at all objects on space, not those below the object - with changes to insert_ob_in_map, new object won't always be on top. common/porting.c: functions from ltostr.c, sqrt.c, as open_and_uncompress close_and_delete, make_path_to_file from map.c common/treasure.c: Modified to use updated insert_ob_in_map crossedit/Attr.c: Rename Layout to AppLayout so other files can use it. crossedit/CrEdit.c: Modified to use new map header. Modified drawing routines, as face values could be null crossedit/Edit.c: Move many functions from common/map.c that are only used here and thus don't need to be in common/map.c. Modify to use new map structure. crossedit/Makefile.in: Change to use cproto to make proto.h file. crossedit/png.c: change user_read_data to be static so proto doesn't pick it up. doc/Makefile.in: add map-technical to list of files. doc/crossfire.doc: remove map information that was in this file. doc/map-technical: new file. Describes inner workings of how the maps work. include/config.h: remove RANDOM_ENCOUNTERS (no longer available) and USE_LIGHTING (now standard part and always on). include/define.h: move P_... values to map.h include/global.h: add definition for compression externals, as they are used in a few files. remove map macro functions - moved to map.h as appropriate. Add FREE_AND_CLEAR macro that frees data and then sets the pointer to NULL. include/map.h: Largely redone - many new macros, new map structure. include/object.h: remove lights object link pointer from objects. At some #defines that are the flags for update_object and insert_ob_in_map include/player.h: Add a few comments. random_maps/decor.c,random_maps/door.c, random_maps/exit.c, random_maps/floor.c,random_maps/monster.c,random_maps/special.c, random_maps/standalone.c, random_maps/style.c,random_maps/treasure.c, random_maps/wall.c: modified to use modified insert_ob_in_map function, use new macros to access map structure related data server/Makefile.in: Remove encounter.c file. Use cproto instead of cextract to create proto file. server/alchemy.c,server/attack.c,server/c_object.c,server/c_wiz.c, server/disease.c, server/login.c, server/main.c, server/monster.c, server/move.c, server/pets.c, server/player.c, server/resurrection.c, server/rune.c, server/shop.c,server/skill_util.c, server/skills.c, server/spell_effect.c, server/spell_util.c, server/swap.c, server/time.c modified to use modified insert_ob_in_map function, use new macros to access map structure related data. change calls to update_all_los, remove lighting related code. server/apply.c: modified to use new insert_ob_in_map function. Update calls to update_object. remove RANDOM_ENCOUNTER code. for exits, modified to use the head for valid coordinates since the other parts may not have valid values since they are not saved out to disk anymore. server/c_misc.c,server/hiscore.c: modified to use new map structure/information. server/commands.c: remove dumplights command. server/encounter.c: removed - code no longer used server/init.c: remove RANDOM_ENCOUNTERS code. server/script.c: change Script_getMapObject to return NULL since there is no longer a map object. Modify to use new insert_ob_in_map and update_object functions. socket/info.c: Modified to use new map structure/macros socket/request.c: Modify draw_map_routines to use get_map_from_coord so that it properly deals with tiled maps. Modified to deal with potentially NULL face values. Modified update routine to call update_position for spaces within player view which need an update MSW 2001-07-13 +++ common/object.c, common/player.c, include/object.h, server/skill_util.c: Remove the unused LINKED_SKILL code. common/Makefile.in: Use cproto to make prototypes - cextract fails for some reason and now seems unsupported. Cproto generates a bunch of warnings, but does do the job. common/arch.c,server/apply.c, server/main.c, server/monster.c: cleanup some compile warnings (unusued variables, returns without value doc/playbook/Makefile.in: Create proper dependencies for files. doc/playbook/treas2-extract: Add player_force to value to ignore. doc/spoiler-html/spoiler.html: rebuilt server/skill_util.c: Remove the unused LINKED_SKILL code. Prevent characters that have meditation skill from learning melee weapon skill. MSW 2001-06-28 doc/Protocol: Add 'darkness' setup option documentation. include/newserver.h: add darkness element to socket structure. include/script.h,server/script.c: remove static declaration from script.h, move it to script.c socket/init.c: init darkness element in socket structure. socket/request.c: Add support in setup command for client to set if it wants darkness information or not. Modify map update functions such that if the client does want darkness information, server does not send it. Improve darkness handling so that if using the map1 protocol command, send darkness for first blocked space due to darkness - this makes it possible for client to interpolate results better. MSW 2001-06-16 common/item.c: Add boots and gloves to items which are not magical just because they have resist physical. This bug resulted in most all boots and gloves being shown as magical, even though they had no special properties. socket/request.c: remove some dead code. Memset entire map cell to zero when scrolling and the map is cells is one that was not in view. This fixes redraw problems when using large viewable maps. MSW 2001-06-11 doc/Protocol: update information for the mapcmd, add map1cmd to section of setup commands. include/newserver.h,socket/init.c: add map1cmd element to socket structure that determines which protocol (map,map1) will be used for sending the map. socket/request.c:add 'map1cmd' to list of setup options. when sending the map, use the map1cmd element to determine what protocol command to use to send it. MSW 2001-06-07 server/shop.c: Fix bug that resulted in items in shop being paid, as well as not generating proper listing. MSW 2001-06-06. Checkin of code that supports larger map sizes (configurable in config.h). common/los.c: update los code since it only handled 11x11 maps. Now uses formulatic approach so any map size should be supported. This does result in a few more spaces getting blocked around corners, but it doesn't seem that bad - certainly not compared to the ability to have larger viewable maps. common/map.c, crossedit/CrEdit.c, crossedit/Edit.c, include/global.h, include/map.h,random_maps/monster.c,random_maps/special.c, random_maps/standalone.c, server/apply.c,server/c_misc.c, server/spell_effect.c,socket/info.c: change mapx,mapy to what they really point to, as it prevented using those as variable/structure element names. common/object.c: update_position - if faces for different layers are duplicate, set the duplicates to be blank to increase client update efficiency. doc/Protocol: Add map1 command description, update setup command to describe setting of mapsize. include/config.h: add MAP_CLIENT_X/Y to set maximum map size we can send to the client. include/newserver.h: add mapx, mapy values to socket structure include/player.h: Use MAP_CLIENT_X/Y for sizing arrays that hold map related information in player structure. server/player.c: As per player.h above, use appropriate sizing when initializing player stucture. server/shop.c: Update mapx,mapy like above, but re-do shop listings code as it was doing a lot more work than necessarily (I think some changes got put in for sorting, and the old object manipulation was never removed when that got done) socket/init.c: set default client map size to 11x11 in the socket. socket/item.c: LookAt - change checks for position checking (such that you can only look at things in bounds) use max viewable map size. socket/request.c: Make setup commands a little more forgiving if there are extra spaces. Add 'mapsize' command to setup command. Update old map sending code to use socket map sizes (to support even smaller than normal maps, or 13x13 or 15x15 maps). add draw_client_map1 command which implements the map1 protocol command. MSW 2001-06-03 random_maps/treasure.c, wall.c: fix a problem where hidden doors surrounding a treasure could destroy exits. --PeterM 5/31/2001 Make ALLOW_SKILLS standard part of game (remove #ifdef's for it) Files affected: common/living.c common/object.c common/treasure.c include/config.h include/player.h server/apply.c server/attack.c server/c_move.c server/c_range.c server/c_wiz.c server/commands.c server/init.c server/login.c server/monster.c server/player.c server/rune.c server/skill_util.c server/spell_util.c Make MULTIPLE_GODS standards part of game (remove #ifdefs for it) Files affected: common/readable.c include/spellist.h include/config.h server/attack.c server/gods.c server/skills.c server/spell_effect.c server/spell_util.c doc/Makefile.in, doc/Protocol: Add protocol description file here instead of in the client distribution. include/global.h: Move declaration of MAX_EXP_CAT near top of file so it is set before player.h is included. include/newclient.h: Add CS_STAT_SKILL* values for sending skill experience information to client. include/newserver.h: Add skillexp value to socket struct which determines if client wants skill experience informatiion. include/player.h: Add skill information tracking to player structure so we can easily know when to send updates to client. random_maps/expand2x.c: remove unused variable to prevent compiler warnings. random_maps/square_spiral.c: Include prototype information on all systems, not just win32 to prevent compiler warnings. server/skill_util.c: Initialize skill pointers to make it easier to find skill information when we want to update client. socket/init.c: Init socket->skillexp to 0. socket/loop.c: Fix indentation of table - whitespace change only socket/metaserver.c: Minor fix to prevent compile warnings (on the sprintf that composes the data to send to the metaserver) socket/request.c: Redo SetUp function to be more compact and IMO simpler as wll as easier to read (functionality remains the same). VersionCmd modified to warn users of on dxclients (code on MT) StatsCmd added to send skill information if client wants it. The sending of skill experience is by MT, rest of the changes by me. MSW 2001-05-28 common/readable.c: When making recipe books, give the recipe that they are for in the title. Makes it more worthwhile to buy them. lib/treasures.c: Increase the chance of readables in chests some (in fact, add a chance.) MSW 2001-05-25 lib/artifacts: Reduce potency of Poison artifact foods. server/apply.c: When eating poison artifact foods, hit player with poison attacktype instead of just subtracting hp. This way people with poison resistance get proper benefit. MSW 2001-05-24 doc/metaserver, doc/Makefile.in: Add metaserver file which describes working of metaserver and format of data fields. socket/metaserver.c: Add reporting of inbytes, output bytes, and uptime in seconds to notification of metaserver MSW 2001-05-24 server/player.c common/living.c include/libproto.h: New experience loss on death policy implemented. (As per consensus.) 3 levels or 20%, whichever is less. --PeterM 5/24/2001 server/spell_util.c: Fix typo in polymorph code (when enabled in config.h) MSW 2001-05-24 server/disease.c: replace disease->owner check with get_owner. MSW 2001-05-24 server/pets.c: pet_move - fix formatting to be 4 space indentation. if we remove the monster, free it here instead of having move_monster do it. Add check for was_destroyed after first call to move_ob - crashes have been observed in that function, and I believe that is the cause. server/monster.c: move_monster: let pet_move free the pet if necessary. server/spell_effect.c: Clear sleeping flag of monsters when casting summon pet monster (or other creatures). Some archs have this value on by default, so the monsters don't follow the player until an enemy is found. MSW 2001-05-22 socket/item.c: Don't raise player to top of stack when they look at something. I think this may be causing server crashes in some circumstances - plus its not really needed anyways. socket/loop.c: block_until_new_connections: Add call to flush_old_maps so maps are reset while waiting for a new player. MSW 2001-05-22 configure.in, configure: Fix png and Xpm library detection. Suggested patch by Yann Chackhoff, applied by MSW 2001-05-20 ------------------------------------------------------------------------------ Changes for 1.0.0: common/living.c: Fix AC wrapping problem - now limit ac to +/- 120. MSW 2001-05-12 include/config.h: Add NO_POLYMORPH feature selection include/spellist.h: If NO_POLYMORPH is set, make it so that polymorph will not show up in wands/rods server/spell_util.c: Handling for NO_POLYMORPH selection MSW 2001-05-11 server/rune.c: Make sure rune message is newline terminated. Fix map corruption problem. MSW 2001-05-10 Various improvements to make finding memory leaks easier. common/anim.c: Add free_all_anim function common/arch.c: Modify free_all_arch to free more data common/init.c: If running under MEMORY_DEBUG, don't pre-allocate objects. common/map.c: Add free_all_maps functiion. common/object.c: Modify object allocations if using MEMORY_DEBUG to only malloc one object at a time, and not pre-allocate objects. common/readable.c: Fix memory leak. common/shstr.c: Include autoconf.h so it can pull in dmalloc.h file. include/config.h: Remove notes of what was removed a long time ago. Add MEMORY_DEBUG option. include/libproto.h, include/sockproto.h, include/sproto.h: automatic rebuild server/c_misc.c: Fix 'malloc info command so it reports right memory total for maps. Add command_style_map_info which sums up memory used by style maps. server/commands.c: Add style_info wiz command which dumps memory usage for style maps. server/init.c: Have sighup handler call cleanup function. server/main.c: Fix clean_tmp_files which could result in crash if one of the maps in memory has 0 reset time. Modify cleanup function to free more data. server/player.c: op_on_battleground: Fix compile warning about unuused variable. socket/init.c: Change name of free_all_ericserver to free_all_newserver, have it free all face data. MSW 2001-05-08 socket/item.c: Modify look_at to not stop when it finds the first invisible object. server/monster.c: Modify monster_check_pickup to check to see if the next object got destroyed. I'm not sure the exact way this happens, but I've seen one crash where this did happen - I'm guess some function further down in the monster_check_apply look may call this or destroy the item. MSW 2001-05-01 common/object.c: Add clear_owner function. include/libproto.h: rebuild. server/player.c: Modify op_on_battleground to look for battleground anyplace on space. Temp for for wall of thorns on space - as long as maps don't try to abuse the use of battlegrounds, should be OK. server/time.c: Add clear_owner call to stop_arrow. Fixes problem of thrown objects not getting saved. MSW 2001-04-28 common/object.c: Have update_object map the look window for redraw if the object is not something the client normally animates (like a lever). MSW 2001-04-27 server/apply.c: Modify apply_id_altar check for player - had a && instead of a ||. socket/item.c: Modify ApplyCmd so a removed player can not apply objects. Fix crashes caused by players applying savebeds after they have used the bed. MSW 2001-04-26 server/spell_util.c: have put_a_monster generate random monster abilities. TODO, doc/mapguide: Various minor updates. MSW 2001-04-25 server/c_object.c: Pass right object to query_cost_string so that if you pick up an unpaid object into a container, it generates the correct price. MSW 2001-04-22 server/c_wiz.c: fix shutdown and reset_map wizard commands/function so they no longer crash the server. MSW 2001-04-22 server/monster.c: add check to was_destroyed when monster fires an arrow. Call was certainly missing, and appears to be responsible for crash. MSW 2001-04-20 server/player.c: Clear op->chosen_skill when we get to the play_again prompt. Otherwise, the server may try to use this later on, and it no longer points to a valid object, so it results in a crash. MSW 2001-04-19 server/skill_util.c: Add missing call to out_of_map in skill_attack which could result in crashes if player is at edge of maps and decides to attack in direction off map. MSW 2001-04-18 server/attack.c: Remove error message about golem without owners, also add better checking before clering the op->contr->golem field. common/map.c: set status flag on maps to MAP_SAVING so remove_ob does not do extra work when we are deleting a map (ie, immediate reset) from emory. server/skills.c: If someone is stolen from a player, send an esrv_delete_item to the client so the clients inventory remains correct. MSW 2001-04-16 common/re-cmp.c: Modify re_cmp functiion so that it properly matches strings not at the start 'ie, dude chain will now match against the chain value'. server/monster.c: Properly alter direction monster moves if they are feared or confused. It was properly altering direction when monsters were using range attacks, but not if they were just wanting to move. MSW 2001-04-12 common/living.c: Don't use the last_heal object in experience objects as sp regen penalty. This should fix the problem of inconsistent sp regen rates - last_heal is used in experience objects if the permanent experience option is turned on. MSW 2001-04-11 PeterM: server/spell_util.c: fix peace so it gives experience common/button.c: change the "error" to a "debug" message to reduce server crashing. ------------------------------------------------------------------------------ Changes for 0.98.0: server/skills.c: Modify inscription so that when inscribing cleric spells, it reduces grace. Before, reduced mana no matter the type of spell. server/c_object.c: Fix bug in pick_up where it was not using the right count for picking up objects if the player did not specify one. This allowed players to put objects into containers that should not really fit. server/player.c: Don't let players shoot arrows at themself. Also, minor changes to use new_draw_info_format. server/swap.c: If recycle temp maps, don't save out random maps to get recycled. MSW 2001/04/07 PeterM 2001/04/06: include/libproto.h common/object.c server/apply.c server/spell_util.c Added a new function: instead of stacking many burnout or firetrail objects, only 1 per square is added. Real reduction in server overhead. No reduction in cosmetic effect. common/porting.c: Fix compile warnings/bugs introduced by Win32 changes. server/time.c: Modify move_player_mover so that it determines direction of the mover and then process accordingly, as well as formatting changes. server/c_object.c: modify examine so that it properly shows info about magic bullet spell books. MSW 2001-04-05 common/item.c: Modify identify function to clear the NO_SKILL_IDENT flag so objects will now merge. Also, once the object has been identified, the no_skill_ident doesn't have meaning anymore. MSW 2001-04-03 server/c_object: Modify examine command to only be able to examine valid objects, and not whatever is on top of the space, which may be insivisible. MSW 2001-04-01 include/sproto.h, server/c_wiz.c server/main.c server/player.c socket/loop.c: Modify leave function to take a second parameter that determines if it should print a message about the player leaving the game or not. Proper use of this prevents duplicate XXX left the game messages. MSW 2001-03-29 common/image.c, include/define.h, include/global.h: Add empty_face structure and appropriate code to initialize it. This is used for the server side look selection. include/newserver.h: Add NUM_LOOK_OBJECTS to control number of look objects to send at any one time. add look_position field to the newsocket structure. server/move.c: clear look position as player moves. server/player.c: initalize look_position element in structure. socket/item.c: modify esrv_draw_look to sne NUM_LOOK_OBJECTS at any one time, and to also send pseudo objects that lets the player scroll up and down. modify ApplyCmd so that if it detects the application of one pseudo objects to adjust the look_position. MSW 2001-03-29 common/readable.c: Name spellbooks based on level of spell, and not just randomly. Patch by Preston Crow, applied by Mark Wedel 2001-03-29 configure, configure.in, include/autoconf.h, includes.h: add check for time.h and include it if we find it. socket/item.c: esrv_move_object - have it check to see if the object is already on the ground before we try to re-drop it. Likewise, check to see if it is already in players inventory before we try to pick it up. common/object.c: Don't send face updates to the client or make the space as needing to be redrawn. Client now deals with animation of the look window on its own. utils/(metaserver.pl crossloop add_throw.perl crossloop.pl) lib/(Makefie.in, checkarch.pl collect.pl xpmtopix.pl) - - deleted from CVS - '.in' versions of these files now exist and the real versions are created as part of the configure process. Update Makefile.in to reflect this change. MSW 2001/03/28 common/object.c: have update_position just update the flag that the server needs to send the look window to the client and don't send the item at this point, as sending the look will do that. server/main.c: process_players1: Remove call to draw (which updates the client map) - the handle newclient in socket/loop.c already does this and there is no reason to send multiple instances of the same map. MSW 2001/03/23 server/c_object.c: drop_object function: send delete item to client as item is dropped. This fixes a problem of phantom objects in the inventory. Unrelated change to not call esrv_send_item for objects that are dropped - esrv_draw_look will get called later on and will update this at that time. MSW 2001/03/23 server/c_object.c: Update the return value for some matches - they function was returning immediately when it got a match, but did not give them a high match value, so searching for 'key ring' used to return a match value of 6 or so on the key ring, but a 14 on a key. common/object.c: Modify find_free_spot to call arch_out_of_map so that it properly deals with multipart objects. server/main.c: Fix enter_map so that we first use the golem (and not player) when calling find_free_spot. Also, modify code so that it properly updates coordinates of the multipart golem. MSW 2001/03/20 server/skills.c: Fix orate so that we check for a positive chance (and just not nonzero chance) for successful oration. Due to adjustments, at low levels, the oratory chance can be negative. MSW 2001/03/20 server/spell_effect.c: Change cast_change_attr to find an enemy (and not friend) when casting the curse spell. MSW 2001/03/20 server/apply.c: Increase size of buf to be a HUGE_BUF to very long item names don't cause a stack overflow. MSW 2001/03/20 common/object.c: Modify update_position so that we don't show invisible players to other players. MSW 2001/03/20 ------------------------------------------------------------------------------ Changes for 0.97.0: MSW 2001/03/18: common/init.c: add RESET_LOCATION_TIME initializer to settings structure. include/config.h: Add RESET_LOCATION_TIME value. If nonzero and the save was longer than the specified time in seconds, player will be returned home upon login from save. include/global.h: Add reset_loc_time field to settings structure. server/login.c: Remove some unused variables, add support to return player home as described above. server/spell_effect.c: Fix for crashes when casting control undead and your god does not have an enemy. Now properly check to make sure we are not dereferencing null pointers. MSW 2001/03/16: Change code so that if player dies and loading the players savebed map does not work, return player to EMERGENCY_MAPPATH instead. New function added to server/main.c called enter_player_savebed which does the work, Files changed: include/sproto.h server/main.c server/player.c server/spell_effect.c (comment added) Unrelated change: Remove messages about multiple resist types set. Files changed: common/loader.l common/loader.c MSW 2001/03/15: server/spell_effect.c: Add physical attacktype when casting holy possession. Otherwise, characters who use karate end up not being able to damaage anything. MSW 2001/03/09: crossedit/App.c: Move the loading of images to later in the editor startup state. In this way, the client can allocate the colors it needs for its windows before the the png images use up all the colors. crossedit/png.c: New png loader implementation. New version is much faster (50 times faster). As part of this, only 8 bit displays, a private colormap will be allocated, and after that gets filled up, a color mapping routine will be used - this makes the png images loadable on an 8 bit system in addition to the speedup. crossedit/xutil.c: Adding timing information for loading of images. call init_pngx_loader before starting to load png images. Pass colormap to png_to_xpixmap by pointer and not value so that the loader can change the colormap. AV 2001/03/09: common/button.c: Added new attribute to altar triggers: "last_sp 1". If set, the altar trigger will push the connected value only by dropping the sacrifice, NOT by altar reset. If unset ("last_sp 0") it will work like it used to (push by sacrifice and by reset). MSW 2001/03/06: server/spell_effect.c: Fix message when consecration fails - use the ob->name field and not the ob->title field. Also fix broken logic that checked for the floor. server/init.c: Related to 3-4 change which changed the default name of the logfile to "" so we know to use stderr. This doesn't work for daemon mode, so if the name is "", we use the default logfile instead. MSW 2001/03/04: TODO: add re-connecting player to new client if client logs in with right name/password. common/init.c: Open up the logfile with the provide filename when given the -log option. server/init.c: Make set_logfile a first pass option so the init_library has the right logfile name to work with. server/main.c: Fix crash if map has an exit path yet that file does not exist. Give proper error message. MSW 2001/03/01: server/main.c: Modified random_map code so the server will not crash if the exit object has no message (and thus variables to set for the random map). Modified so that golems move away from player when player changes map. Values were reversed before, causing the golem to move towards the player. MSW 2001/02/25: General player login cleanup. This should fix the crash when players re-roll stats too often. So far, it also seems to have the additional effect that calculated players on map now appears to be correct. common/player.c: No longer allocate the player object structure in get_player_ob (function is really misnamed). Callers to this function were not using the allocated function. server/login.c: Add leave_map call when player is loaded. server/main.c: Add leave_map function. server/player.c: Move get_player function to start of file - can declare it static that way. Move some initialize from add_player to get_player. Add set_first_map function. Add appropriate calls to leave_map and set_first_map when players join and leaves the game. MSW 2001/02/22: TODO: Add some items, remove some others, remove outline of future versions, since it was out of date. common/loader.l,loader.c: Declare msgbuf a static outside the lex_load function. lex_load was otherwise clearing it each time it was called, which resulted in empty messages for the random artifacts (since the call lex_load one line at a time). Instead, we just zero this at start of load_object. Original reason of this change was due to purify errors - as I look at the code, it appears even before these changes that it was clearing the buffer properly. common/map.c: removing pending field from map objects. common/re-cmp.c: Comment out some code which was resulting in too many false compares. include/config.h: increase default for MAX_OBJECTS. 6000 is a bit small on current systems. include/map.h: Remove pending field from map structure. random_maps/treasure.c: Increase size of doorlist. Fixes crash, in that if a random map could place 8 doors around the treasure, the list was not terminated, so the problem would eventually try to read/dereference random memory after the array. server/c_misc.c: Remove pending field from maps, so remove functions and other places that referred to it (like the maps command) server/c_wiz.c: fix up wiz map reset command. Not really tested, but old code had some definate problems just from visual inspection. server/main.c: Further fix for unique exits - relative paths to unique maps from non unique maps should now work. server/monster.c: Various fixes - one is that should get more reliable distance values for multipart monsters. Second, modify dist_att to calculate from closest part of monster, and not the head of the monster. server/pets.c: Remove code dealing with pending objects. server/player.c: Don't remove invisible objects in players inventory when playing with permadeath mode. server/spell_util.c: If you try to cast denied spell, it no longer costs any spellpoints. socket/item.c: Fix bug where it was using 'item' protocol command instead of 'item1' End of MSW 2001/02/22 checkin. ------------------------------------------------------------------------------ Changes for 0.96.0: MSW 2001/01/11: include/rproto.h: Rebuilt for new random map code. server/player.c: remove player insert in key_roll_stat - player is already inserted. server/swap.c: When swapping out map, see if it has already reached reset time, and if so, just delete it and not save it. In flush_old_maps, now have it check for maps that have no timeout set - this sometimes happens when players save/die on maps. MSW 2001/01/11: Other than various general cleanups, the main change this code does is that style maps (for random maps) get loaded special now - they objects they contain are not put on the active list, and they use a private map list so they do not appear in the output of the 'maps command. common/arch.c, common/treasure.c,server/login.c: Update calls to load_object common/loaderl.l,loader.c: Update lex_load to take an optional flags option. This is currently only used so that the loader can decide if it should call update_ob_speedto put objects on the active list or not. Calls to lex_load updated. load_object modified to take another option common.map.c: remove PROCESS_WHILE_LOADING and CHECK_ACTIVE_MAPS ifdefs. update calls to load_object. Remove some dead code. include/config.h: Remove CHECK_ACTIVE_MAPS and PROCESS_WHILE_LOADING flags. Those options did not work, and in all likelihood, this would be done via threading now days and not what code was there. include/libproto.h, sproto.h: updated or various function changes. include/map.h: Add MAP_STYLE flag. random_maps/exit.c: Call set_map_timeout after we load the final map so it will get swapped out. random_maps/standalone.c: Add dummy set_map_timeout function so it compiles. random_maps/style.c: Add load_style_map function which does the job of actually checking to see if a style map is in memory, and if not, loads it up. Updates the pointers so it appears on a map style map list and not the general map list. server/main.c: create set_map_timeout function that deals with setting the map timeouts. Fix bug so server doesn't crash if two players kill each other on hall of selection. server/monster.c remove dead code. socket/loop.c: If realloc fails, catch it and exit with meaningful error message. End of MSW 2001/02/11 checkin. MSW 2001/02/08: server/login.c:Fix that would prevent maps from getting swapped out properly - we would try to swap out a map the player is in the process of leaving - move swap out code until after we have moved the player to the new map. MSW 2001-02-08 MSW 2001/02/06: common/porting.c: relocate clean_path from this file to server/main.c server/main.c: relocate clean_path from porting.c. Add unclean_path. Modify enter_unique_exit so it supports relative maps on unique maps. Modify enter_exit so word of recall (or other forcelike fields), work when the return point is a swapped out unique map. MSW 2001/02/05: server/attack.c: Fix blind and paralyze - logic for reducing duration was broken, resulting in zero duration for most characters. It should now work properly, reducing according to the amount of protection. MSW 2001/02/02: common/item.c: Don't have armour item types get returned as magical if they have an armour value - that is to be expected. This eliminates the false positives that you otherwise get on armor when you cast detect magic. include/newserver/h: and checksum field to FaceInfo struct. Update version_sc to 1026. socket/init.c: calculate image checksums as we load the images. socket/request.c: If client is at least version_Sc 1026, use face1 protocol command that includes the checksum. MSW 2001/01/31: common/object.c: Fix that that spells cast on spaces with no floors get set properly after the spell expires. common/player.c: Use skill tools first (lockpicks, talismans, etc) before using native skills. In this way, an object with bonus automatically gets used. common/living.c: Fix so that negative con bonuses work properly - fixes bug where a higher con could result in lower total hp due to improper calculation. MSW 2001/01/30: Complete rewrite of the exit handling code. Hopefully as an effect, this will fix the player appearing in the middle of the oceans. I think the code should also work better in many other areas. Main enhancements is a 3x3 area for pets to follow player to new map, as well as golems now following players to the new maps. include/sproto.h, random_maps/rproto.h - rebuilt. random_maps/random_map.c: Change generate_random_map to take a structure with the random map paremeters. random_maps/reader.l, reader.c: Add set_random_map_variable function that reads the map parameters from a char buffer. Also, remove some leftover comments that were from the common/loader.l file. random_maps/rogue_layout.c: Change some functions to be static so make proto doesn't collect them. random_maps/standalone.c: Add opening of parms file into main function since it ws removed from the random_map.c file. server/apply.c: Don't display the message of random maps to the players as they enter them, as this message is random map parameters, and not a real message. server/login.c: #if 0 out using of the player loading element in the structure. this isn't used right now. server/main.c: Bulk of the changes. main changes are to break apart the old enter_exit function into smaller functions that more logically do the needed function (random maps, unique maps, and transferring the player to the new map). random map code now passes the parameters via structure instead of file in /tmp. Code is much more understandable now and hopefully bugfree. server/pets.c: minor changes/bugfixes. Search full SIZEOFFREE array, use real owner variable when print out messages. server/player.c: Remove usage of the loading variable in the player structure. End of MSW 2001/01/30 checking. MSW 2001/01/23: Various cleanups/fixes as detected by purify: common/anim.c: animation[0] was given a null pointer as the name, but bsearch/or comparison function will try to de-reference it. Give it a unique name. common/loader.l: msgbuf was being used initialized in the main loading function. loader.c also regenerated. common/object.c: find_free functions were not checking to see if the spaces they were examining were out of the map. Added checks to do so. server/apply.c: buf was being used uninitialized in the function. socket/init.c: input buffer needs to be initialized as we do a strncasecmp against the buffer which may not have any data in it. MSW 2001/01/18: server/skill_util.c: add change_skill_to_skill function to be used when we already know the skill object we want to use. This is more efficient than change_skill which takes a skill number and then searches the inventory for the object. remove extra esrv_send_item from do_skill_attack - don't need to send skills to player. do_skill_attack: remove call to hth_damage - that function does not take into account objects in the player inventory that increase damage, and since that is called each attack, it is not feasible to have it search the players inventory. Instead, we just rely on damage generated by fix_player - only think hth_damage did was adjust damage based on level difference. PeterM 2001/01/16 Added randomly-generated nethack-style maps to crossfire's random map generator. MSW 2001/01/15: Change blindness and paralyze so that duration is reduced based on protection the player has. file server/attack.c MSW 2001/01/15: Various fixes for friendly object code: common/button.c: Add missing call to remove_friendly_object common/friend.c: Pretty much completely re-written. add_friendly_object now checks to make sure the object being added isn't already on the list, remove_friendly_object will remove objects whose tags don't match, and added clean_friendly_list. common/object.c: No reason to use the function pointer to remove_friendly_object since that function is in the lib. common/time.c: Make DEBUG_TIME always on (no longer compile time option). other areas use the global var pticks, so if it was turned off, compile would break anyways. common/treasuer.c: No longer print debug messages on artifacts created. Cluttered log file making it hard to see more important errors. include/config.h: Remove DEBUG_TIME define. include/libproto.h: Rebuilt for clean_friendly_list function. server/main.c: rewrote do_specials to do things based on pticks variable. This allows various specials to be spread out across multiple ticks easier. Also, added clean_friendly_function to part of what this does. server/skills.c: add missing call to remove_friendly_object. Also, removed from #if 0 .. #else .. #endif code. End of MSW 2000/01/15 checkin. PeterM 2001/01/08: Wrathful Eye spell implemented. MSW 2000/12/26: Checkin of Jan's new god intervention code. I haven't played around with it much, but I haven't seen any really obvious problems. common/living.c: remove learn_prayer_chance common/treasure.c: Various changes to treasure generation - mostly to deal with starting equipment and putting it in the inventory. doc/crossfire.doc: Update docs on god intervention. include/define.h: GT_... flags removed. include/treasure.h: GT_... flags added. Addition flags added from what was in define.h before. lib/archetypes, lib/crossfire.png, lib/treasures: Updated with new archetypes and treasures. random_maps/standalone.c,server/rune.c,server/time.c: Calls to create_treasure updated server/apply.c: New functions for god intervention added, update calls to create_treasure, other god related changes. server/c_wiz.c: Calls to create_treasure updated, various functions to allow DM's to learn/unlearn spells added. server/commands.c: Various commands added to the wiz set of commands. See commen for c_wiz.c server/disease.c: Changes to reduce_symptoms server/gods.c: Numerous updates for god intervention code. server/player.c: Modifications for starting player equipment. server/skill_util.c: Display the god the character worships when they issue the skills command. server/skills.c: Minor cosmetic change made to message when praying on altar. server/spell_effect.c: Changes related to gods, cure spells, and generation of treasures & items. End of MSW 2000/12/26 checkin. MSW 2000/12/23: include/define.h: Add SIZEOFFREE1 and SIZEOFFREE2 values to use instead of arbitrary constants in the code. server/monster.c: change communicate function to use above values. Before it was stopping one short of the full 2 space array, so one particular space (-1, -2 relative to player) would not hear players speech. server/attack.c: Don't exit hit_player function if damage is reduced to 0 in magical attacks. This was preventing face of death and probably a lot of effect only spells from working. server/spell_util.c: modify check_cone_push to use move_object to blow the objects. Before, multisquare monsters were getting sliced into their individual components - move_object deals with multisquare objects properly. PeterM 2000/12/18: Re-add the conflict spell (various files) attack.c: fix a bug which could easily have led to seg fault, and did when I was testing under efence. MSW 2000/12/17: Various changes. Note that the scope of files in this checkin make it appear that a lot was changed, but in fact it was mostly just re-orginization - very little code has actually changed. include/autoconf.h.in: Add HAVE_LIBDES to file. include/config.h: Remove comments after defines for MAP_MIN/MAX timeouts. This just removes some warnings during compile. comments are now on lines by themselves. include/player.h: remove shootstrength for player structure. It was unused. server/Makefile.in: remove input.c file, add c_range.c file. server/c_chat.c: remove command_last, add command_shout and command_tell from input.c to this file. Also fix bug in command tell which would let players crash server at will. server/c_misc.c,server/c_object.c: Relocate many functions from input.c into these files. server/c_move.c, server/c_new.c: Add standard crossfire banner comment. server/c_range.c: New file - contains range related commands, including spell casting (relocated from input.c) server/c_wiz.c: move command_invisible from input.c into this file. server/commands.c: Remove unused commands (bell, last, strength) server/input.c: removed file. server/main.c: Change HAVE_DES_H to HAVE_LIBDES server/player.c: When choosing a race, draw it facing south for best presentation of image. server/spell_util.c: Remove dead code (#if 0 shootstrength related code) socket/loop.c: remove unused variables. NOTE: Due to the addition/removal of files, you will need to do 'config.status; make depend; make' from the top level directory for everything to be compiled properly. End of MSW 2000/12/17 checkin. PeterM: 2000/12/17: Various problems fixed in random_maps/*.c: endless loop removed, exit leading to blocked area of spiral fixed. PeterM: 2000/12/17: Stat max bug fixed. server/apply.c MSW 2000/12/16: server/player.c: If the player race archetype has a message, print that out. This allows a descriptive message about what the different races will get. The message is removed from the player once they decide on the race. common/living.c: Add some parens around some PR resistant checks - eliminates warnings from gcc. server/disease.c: have cure_disease remove all diseases a player is infected with. The code suggested it was attempting to do so, and the messages it printed out certainly suggested that the character was disease free. PeterM: 2000/12/14: Added spiral map layout PeterM: 2000/12/14: Restructuring of the random map code. Functionally, it should be identical. All global variables moved into the functions. MSW 2000/12/10: utils/metaserver.pl: Various improvements. Main one is that tcp connections to port 13326 of the metaserver will dump the information in a easily parsable format for the client or other applications. include/config.h: Set ARCHTABLE size to correct value. server/player.c: Have server send update item to client for players face while select class. Added esrv_new_player in Roll_Again, because without it, the client had yet to receive information on what tag the player was so could not make sense of the updated face. server/spell_effect.c: Balance issues for polymorph. Reduce maximum value for high valued objects, remove ability to polymorph generators, put maximum level on polymorphed monsters and give them saving throws against the effects. MSW 2000/12/5: server/player.c: Move location of where it sets the player has_hit variable until after we have confirmed that the player has actually attacked a monster and not that the space is blocked. Fixes various problems and make behaviour more predictable. common/button.c: Do not set path_attuned when loading connected objects from within the editor. This is normally done for random map code/glue logic. common/player.c: When trying to find a skill to use, use a native skill first before going off and returning a skill object like a talisman. MSW 2000/12/4: common/treasure.c: Make it so resistances from artifact files are absolute adjustments. Makefile.in configure configure.in: Fix check for libdes to see if des_crypt exists in libdes before setting HAVE_LIBDES crossedit/Makefile.in: Add Cnv/libCnv.a before LIBS - should fix linking error on irix systems. utils/metaserver.pl: modified so it ignores entries from hosts that report their name as put.your.hostname.here MSW 2000/12/3: crossedit/Attr.c: Add the new resist names to set of variables one can set. MSW 2000/12/3: Misc changes. Main one is adding PNG support to the editor. TODO: Remove outdated things to do (like partial resistance code) configure, configure.in, include/autoconf.h.in: Add check for libpng. include/global.h: Remove displaymodes - moved to crossedit/Defines.h crossedit/App.c, crossedit/App.h crossedit/CrEdit.c crossedit/CrFace.c crossedit/CrList.c crossedit/CrUtil.c crossedit/Edit.c crossedit/crossedit.c crossedit/xutil.c, crossedit/png.c (new file): Add support for png display in crossedit. crossedit/Makefile.in: Add png.c file. server/c_misc.c: Change who command to only display real players, and not players in process of connecting/unconnecting. Also, remove code to display old sockets, since those are not supported anymore. MSW 2000/12/3: Checking for partial resistance code. Various minor errors also fixed (compiler warnings, unused variables, Makefile.in changes, etc). PR code also includes support to send protections to the client. Files changed: common/Makefile.in common/button.c common/exp.c common/friend.c common/holy.c common/info.c common/init.c common/item.c common/living.c common/loader.c common/loader.l common/object.c common/player.c common/re-cmp.c common/readable.c common/treasure.c crossedit/App.c crossedit/crossedit.c crossedit/proto.h doc/crossfire.doc include/define.h include/global.h include/libproto.h include/newclient.h include/newserver.h include/object.h include/player.h include/sproto.h lib/Makefile.in lib/archetypes lib/artifacts lib/crossfire.png lib/crossfire.xbm lib/crossfire.xpm random_maps/rproto.h random_maps/special.c random_maps/style.c server/Makefile.in server/apply.c server/attack.c server/c_misc.c server/c_object.c server/commands.c server/disease.c server/gods.c server/input.c server/monster.c server/player.c server/resurrection.c server/rune.c server/spell_effect.c server/spell_util.c server/swap.c socket/metaserver.c socket/request.c Added Files: include/attack.h ------------------------------------------------------------------------------ Changes for 0.95.8: MSW 2000/11/26: utils/metaserver.pl (added), utils/Makefile.in: Add metaserver.pl script. MSW 2000/11/25: include/patchlevel.h (removed), doc/spell-docs/Makefile (removed), include/Makefile.in, include/version.h, server/init.c, server/main.c, socket/metaserver.c: remove patchlevel.h - include the patchlevel in the version.h file, update other files to use version as a single string. MSW 2000/11/25: socket/metaserver.c: If on FreeBSD systems, do not attempt to connect to the metaserve. FreeBSD seems to have a problem using sendto on a connected soccket. MSW 2000/11/25: configure.in, configure, include/autoconf.h.in, server/main.c: Update to check for libdes.a and des.h and use those for password decryption - fixes a problem on freebsd if it is using md5 crypt. Hopefully it doesn't break anything. main.c was also checking for HAVE_CRYPT_H too early. include/sproto.h: Needed updating. Unrelated to above changes. MSW 2000/11/22 server/main.c: Modify enter_exit so that it properly uses per player unique maps that are only in memory and not on disk. Remove unused variable from process events (unrelated change). PeterM 2000/11/18: New spells added: 1) Sanctuary (aura of counterwall) 2) Peace (make monsters unable to fight) 3) Spiderweb (create spider webs) 4) rage (heroism, armour, haste, regenration combined) 5) forked lightning (lightning which forks and strikes ) 6) flaming aura (aura of fire) 7) vitriol combined ball/cone/pool acid attack spell 8) vitriol splash (spell for internal use only) 9) ironwood skin (clerical version of armour spell) Not implemented: 10) poison fog MSW 2000/11/17: socket/metaserver.c: More changes - use fcntl to set O_NONBLOCK. Don't close socket if connect fails, since with sendto it is not required that the connect works. PeterM: 2000/11/17 define.h spells.h spellist.h spell_util.c spell_effect.c: windstorm spell implemented. attack.c: saving throw behavior modified. Items take a bit of DAM to destroy now instead of being destroyed with 1hp attacks. MSW: 2000/11/16: socket/metaserver.c: Add #ifdef MSG_DONTWAIT into metaserver.c for systems that lack that definition. random_maps/style.c: alphasort was not properly de-referencing pointers when doing name comparisons, and thus returned garbage results, resulting in a crash when entering random maps. This only happens for systems which lack scandir in normal libraries (like Solaris). BSDs and linux have scandir built in, and did not have a problem. server/disease.c: fix infect_object - server would crash if player did not have praying skill and was infecting someone else. end of changes, MSW 2000/11/16 PeterM : 2000/11/14 PeterM: Made some changes so that non-disease effects may be done without being labelled as a disease. Also, fixed a bug in which we'd kill something and then try to insert something in the killed thing's map. metaserver update: common/init.c: Add meta_ fields to settings structure initialization. include/global.h: Add meta_ fields to settings structure. include/sockproto.h: Updated for new meta_ functions. lib/Makefile.in: Have it install settings file. lib/settings: Default settings file with some metaserver default value.s server/init.c: Add load_settings file. Add call to metaserver_init. server/main.c: Add call to metaserver_update in do_specials. socket/Makefile.in: Add metaserver.c to list of files. socket/metaserver.c: File that deals with metaserver related data. socket/item.c: Remove some unused variables. Unrelated to metaserver changes. socket/loop.c: Add calls to metaserver_update in block_until_new)connection. Change function so that if there are no active players, it still timeouts and does metaserver update. Basically changed to do it the way the WATCHDOG code did it. End of metaserver update. MSW 2000-11-13 server/player.c: removed unused tmp2 variable from move_player_attack. modify depletion in kill_player so the maximum depletion for a stat is -50. This should preven stat wrapping from -126 to 127. MSW 2000-11-08 ============================================================================== MSW 2000-11-07 common/item.c: query_base_name was not return plural version of items with 'of' in name. Also, much of the function was not using safe_strcat, which could result in buffer overlow problems. common/object.c: Change update_position so that we always generate 3 images per space. This fixes players standing on top of dragon transports, but generally works for things like monsters standing on objects. insert_ob_in_map: change 'return' statement to 'return NULL'. Also remove unused map pointer. decrease_ob_nr: Fix bug for client updates when player drops item that is then consume. It was using op->above after object was removed to find the player. Store above pointer before we remove the object. socket/item.c: Don't terminate pointer as returned by query_base_name - instead, terminator buffer after we copy it. For simple object, query_base_name may directly return a pointer to the objects name which is only long enough to hold the name itself. socket/lowlevel.c: Abort if we are trying to send the client a packet longer than supported by the protocol. Since that buffer is static, overflowing it will just create memory corruption - easier to stop then than try and debug it later. End of MSW checkin 2000-11-7 ============================================================================== PeterM: 2000-11-06 server/spell_util.c crash bug removed from move ball lightning: ball lightning mover improved in general. --PeterM -------------------------------------------- --- BEGIN stop_item() / attack fix patch --- Jan Echternach 2000-11-06 -------------------------------------------- Summary of this patch: Provide new stop_item() function for properly handling "moving" items on a map (flying arrows, thrown objects, active cones); obsoletes the workarounds. Fix some attack bugs (with possible server crashes) - many attackers attacked while being removed, even though much code could only handle the attacker being on the same map as the victim (not even the attacker being in the victim's inventory, e.g. poison). common/object.c: insert_ob_in_map(): Call check_walk_on() after update_object() because the latter needs to update some very important flags used by a lot of code before this code is called by check_walk_on(). common/object.c: get_split_ob(): Completed support for splitting removed objects. common/object.c: decrease_ob_nr(): Rewrote this function: Added support for removed objects. Removing an object completely didn't always update the environment's weight properly. Removing an amount of 0 from an object with nrof == 0 destroyed the object. Improved performance a bit (don't need to update the player's weight if an object below the player is modified). server/apply.c: move_apply(): Added recursion limit. server/apply.c: move_apply(): THROWN_OBJ and ARROW: Use new hit_with_arrow() function. server/apply.c: move_apply(): FBULLET and BULLET: Call check_fired_arch() only when the victim blocks the square (FLAG_NO_PASS or FLAG_ALIVE). server/attack.c: save_throw_object(): Use new stop_item() function before trying to modify an object. Added originator to all insert_ob_in_map() calls. server/attack.c: hit_map(): Added log message if the hitter is not on a map. Added was_destroyed() check after calling save_throw_object(). server/attack.c: get_attack_mode() and abort_attack(): New functions to determine the type of attack (simple or full attack). server/attack.c: attack_ob(): Now only attack_ob_simple() with default damage and weapon class values. server/attack.c: attack_ob_simple(): Contains most of old attack_ob(), but takes damage and weapon class as parameters, needed for hit_with_arrow(). Uses get_attack_mode() and abort_attack() to support new "simple" attack mode. server/attack.c: stick_arrow() and hit_with_arrow(): Moved those parts of old stop_arrow() and move_arrow() that dealt with attacking a victim over here. server/attack.c: hit_player(): Uses get_attack_mode() and abort_attack() to support new "simple" attack mode. server/attack.c: paralyze_player(): Use insert_ob_in_map_simple() instead of insert_ob_in_map() because the callers are not prepared for this function triggering any complex machinery, and insert_ob_in_map_simple() should be enough for plain visual effects. server/attack.c: thrown_item_effect(): Don't need to deal with thrown objects, hit_with_arrow() already does everything necessary. server/attack.c: adj_attackroll(): Added log message if hitter and victim are not on the same map. server/c_object.c: Fixed two typos in "can't pick up xxx" messages. server/c_object.c: pick_up_object(): Removed can_pick() check because pick_up() already checks this. Added support for picking up removed objects because the stop_item() in pick_up() can now call us with removed objects. Moved FLAG_STARTEQUIP check to pick_up(). Fixed weight limit lookup for monsters that have strength > MAX_STAT. server/c_object.c: pick_up(): Use new stop_item() function. server/player.c: fire_bow() and server/skills.c: do_throw(): Removed FLAG_NO_PICK workaround for flying objects. stop_item() now handles this correctly. server/rune.c: spring_trap(): Fix unlimited trap recursion. Since traps are triggered by move_apply(), the result of triggering a trap may trigger the trap again before it is deactivated. server/rune.c: spring_trap(): Runes that don't cast spells can only be triggered by living objects. server/spell_effect.c: move_cancellation(): Don't call hit_map() with a removed attacker. server/spell_util.c: cast_cone(): Only print warning message about cones that don't have FLAG_FLY/WALK_ON if the cone does any damage. server/spell_util.c: move_cone(): Removed workaround for cones in ice cubes. stop_item() now handles this correctly. server/spell_util.c: explode_object(): Rewrote this function: New interface - exploding object must not be removed when the function is called, it must have an other_arch (i.e. it must be able to explode), and it will be gone for sure when the function terminates. Removed some code with no effect. Don't call any attack functions with removed attackers. server/spell_util.c: check_fired_arch(): Rewrote this function. server/spell_util.c: move_fired_arch(): Rewrote most of this function: Don't attack with removed attackers. Call check_fired_arch() instead of duplicating its code. server/spell_util.c: move_ball_lightning(): Don't attack with removed attackers. Rewrote the movement algorithm to simplify this task. server/time.c: stop_item() and fix_stopped_item: New functions. server/time.c: fix_stopped_arrow(): Contains most of the old stop_arrow() function. Unlike stop_arrow(), it takes an arrow that is not removed. Removed FLACK_NO_PICK workaround. server/time.c: stop_arrow(): Stops arrows and thrown objects and puts them on the map. Sticking objects into targets is no longer handled by stop_arrow(), but by hit_with_arrow(). server/time.c: move_arrow(): Don't attack with removed attackers. socket/item.c: esrv_move_object(): Removed misleading comment. ------------------------------------------ --- END stop_item() / attack fix patch --- Jan Echternach 2000-11-06 ------------------------------------------ server/time.c: Add call to esrv_update_item to update the face for the client after the player chooses a class. MSW 11/3/2000 server/c_object.c, socket/item.c: Fixed for long item support. pick_up_object in c_object was overwriting a fixed length string, causing server crashes. item.c was not properly terminating plural version of object name, resulting in corrupt packets being sent to the client. MSW 11/2/2000 PeterM: ball lightning made stronger, strikes larger area, never hits player. divine shock spell added. include/sproto.h: Removed prototype of obsolete make_gravestone() function. server/apply.c: Put back gravestone_text() function that was removed accidently a while ago, needed by NOT_PERMADEATH. server/player.c: Don't use the dead player as the originator of object movements. Fixed string handling for NOT_PERMADEATH. - Jan Echternach 10/30/2000 Major race/class change by PeterM: BEGIN: ***************** apply.c: new function, apply changes to player. If the change is a CLASS, player receives certain attributes from the class. login.c: make sure people using the old race/class archetypes in their player files can still use them. player.c: 1) give_initial_items modified for greater flexibility: you can pass in a treasurelist. 2) Also, initial forces are applied to the player. 3) Comment added on the stat roll function. 4) Word of recall into the new class-choice map (unfortunately hard-wired.) for newly-rolled players. 5) gen_sp and gen_hp and gen_grace now allowed to go negative to slow down player regen. skill_util.c 1) Don't give out basic skills anymore. This interferes with the class code. spell_util.c 1) Praying failures moderated in frequency. 2) Summoned creatures enhanced in wc, speed, depending on casting level. 3) Word of recall allowed to work in no-magic areas if a flag is set. time.c 1) Move player changer function added. 2) Marker object expiration added. living.c: cleric fail chance array modified. map.c: bugfix for random map/recycle tmp map problem. define.h: defines added for playerchangers and class types base 10 numbers added for the spell paths. spellist.h: fixed up summoning spells a little sproto.h: new prototypes config.h: hate RECYCLE_TMP_MAPS, turned it off maps/HallOfSelection: new map for class choice. lib/treasures: classs/race stuff heavily modified lib/archetypes, animation, bmaps, bmaps.paths, crossfire.png faces crossfire.xbm New faces, etc. END race/class stuff 10/16/2000 apply.c: bugfix for random map/recycle tmp maps interaction. --PeterM 10/16/200 include/skill* server/skill_util.c: levitation skill added. 9/26/2000. --PeterM common/map.c server/apply.c: Fix an interaction between RECYCLE_TMP_MAPS and random maps which would cause crashing. peterm: 10/12/2000 disease.c spell_effect.c: peterm: 10/5/2000 1) Diseases moderated in power by ~1/2 and randomized. Now monsters can have a mild/moderate/serious/fatal case of a particular disease. 2) cause disease spells modified to NOT go through objects spells ordinarily couldn't go through. ------------------------------------------------------------------------------ Changes for 0.95.7: README: Add crossfire.csua.berkeley.edu server. TODO: Remove entry about setable behaviour for keyrings, since that has now been done. include/patchlevel.h, Makefile.in: Update for 0.95.7 MSW 9/20/2000 lib/maps: got rid of the stuff that was there. Useless stuff. the maps dist. is the thing to use. --PeterM common/living.c, server/skill_util.c: Patches by Garth Denley: Fixes divide by zero crash, sets up perm exp when a new player is loaded, seperates permanent exp code/calculations into another function. checked in by MSW, 8/24/2000 lib/crossfire.png: ground/sea*png - remove transperancies from png images since they should not be transparent. MSW 8/23/2000 doc/spoiler.html/(Makefile.in,empty.pbm, makeps.pl, spoiler.html): Modify to make gif images from png source instead of xpm images. A valid question to ask is why convert to gif at all and not just keep in PNG format. The answer right now is that png support in netscape at least still is not very good, and it displays gifs better. MSW 8/8/2000 Add/Remove some LOG calls: common/living.c: Remove log messages about gen_sp values on armor server/login.c, server/main.c: Add messages about player logins/logouts with IP address. Useful for tracking potentially troublesome players and where they are player from. MSW 8/7/2000 The following change basically does the following: When the server sends an item name to the client, this item name is now two pieces - the first piece of the name is its singular form, the second piece is the plural name. This now makes items in the inventory appear more proper in terms of pluralization and just normal English. I did notice that the server does not know how to properly make 'torch' plural - it turns it into torchs. A matching check in for the client has also been done. include/newserver.h: Update VERSION_SC to 1024 common/item.c: Change query_base_name to take a second option on whether we should generate a plural version of the name or not. socket/item.c: Modify functions to use second argument on the query_base_name function. Update item commands to send two part names (singular & plural). Modify esrv_send_look to use item1 protocol command instead of item command. server/c_object.c: Update item_matched_string to use second option to query_base_name. Modify function to check against both singular and plural versions of name. server/shop.c: Modify shop_listing command usage in query_basename to use second option. It will also generate the singular name, but that is only used on sorting, so I don't think it will generally cause any problems. include/libproto.h: rebuilt because query_base_name has an addition opt. Mark Wedel 8/6/2000 include/config.h, include/global.h, common/init.c, common/living.c, server/init.c, server/player.c, server/skill_util.c: Add permanent experience and balanced stat loss features (code by Garth Denley). Permanent experience make some experience in the skills permanent. Balance stat loss makes stat loss less likely/costly at low level and more costly at higher levels. These features are by default off, but can be turned on either in the config.h file or via command line options. Code checked in by MSW 8/1/2000 server/time.c: Update the change_object function such that if the object is in a players inventory, send a delete & send_item for the object that has changed (the delete + send_item is necessary due to the ways objects change, so we just can't sent a update_item). This fixes the 'torches go dim & then out but client inventory not updated' bug, and likely fixes some other problems - I am not sure how many other objects out there change. MSW 7/28/2000 random_maps/treasure.c: potential crash bug fixed. Only applied when a bad archetype was given as a wallstyle. I will also put in a redundant archetypes fix. --PeterM 7/26/00 lib/adm/map_info, lib/adm/map_check: Update to use new layout of installed files (share/crossfire), know about random exits (it doesn't do any checking to make sure the values are sane, which it probably should, but at least it won't complain about them), update to use /usr/bin/perl. MSW 7/25/2000 server/resurrection.c include/spellist.h: PeterM: fixed a few unintended things about resurrection: experience removal was wrong, spellpoints/levels changed. --PetrM lib/archetypes: Update to keep in sync with arch tree. Changes to about a dozen arch's to remove the 'a' in their name. MSW 6/27/2000 server/c_object.c: Fix command_drop which was doing incorrect check for invisible object - it was supposed to skip over them and only do visible objects, instead it was doing the reverse. Fixes the 'drop command. MSW 6/27/2000 server/input.c: Make the inventory command more robust for very long object names - specify a maximum number of characters we will take from the name. Without this, you could get buffer overruns that cause crashes. No normally generated items would ever likely have names long enough to exploit this bug however. MSW 6/27/2000 INSTALL, README: Update mailing address to real-time address. MSW 6/27/2000 server/login.c: Load and save usekeys value in player save file. MSW 6/27/2000 Patch by Jeffry Hantin which fixes glow objects in map. insert_ob_in_map_simple now will call the appropriate light updating code. Applied by MSW 6/26/2000 server/player.c: check_pick(): Rewrite of this function to consistently skip items that can't be picked up, and to only use a single loop over all items on the map square. - Jan Echternach 6/23/2000 ------------------------------------------------------------------------------ Changes for 0.95.6: server/monster.c: Patch by Neil Muller so that corrupt/bad @match entries will not cause the server to crash. Applied by MSW 6/21/2000 lib/archetypes: rebuilt for 0.95.6 lib/collect.pl: Modify to search the archetypes directories in alphabetical order - before I believe they were collected in basically inode order. This should make it easier to multiple people to run the collect script not have basically an entirely new archetyeps file. MSW 6/21/2000 server/commands.c; server/c_object.c: dump_object_from_tag(): Removed broken command. Fixes server crashes very easily triggered by players. - Jan Echternach 6/21/2000 server/attack.c: deathstrike_player(): Check for def_lev == 0 very early (and print error message if we find such an invalid level). Should fix server crash in case archetypes or maps get broken again in that an alive object has level < 1. - Jan Echternach 6/21/2000 Makefile.in: Update version to 0.95.6 include/patchlevel.h: Update to .6 for 0.95.6 release common/porting.c, include/config.h, include/loader.h, include/skills.h, include/spells.h, include/treasure.h, include/version.h, random_maps/style.c: Update my mail address and copyright date. Mostly committed to sync up my data with the CVS repository - MSW 6/20/2000 random_maps/treasure.c server/apply.c: made containers able to have more than one treasure in them, made a fix to treasure.c, which would change the options given to it in an unintended way. --PeterM 6/20/2000 common/living.c: fix_player(): Bugfix: Don't reset FLAG_FLYING, FLAG_REFL_SPELL, FLAG_REFL_MISSILE and FLAG_SEE_IN_DARK if the archetype has these flags. - Jan Echternach 6/19/2000 random_maps/* Numerous changes improving random maps, including two crash-fixes, a new type of 'special', ability to copy inventory of monsters when putting them into maps... --PeterM 6/19/2000 New naming scheme for random maps: they won't grow in size indefinitely anymore. --PeterM 6/17/2000 server/input.c: command_cast_spell(): Bugfix: Call check_skill_to_fire() even for wizards because this function has the important side effect of setting the current skill and experience objects. - Jan Echternach 6/19/2000 server/apply.c: apply_treasure(): Bugfix: We need to trigger runes as they are found in the treasure chest, because move_rune() will no longer trigger them for us. - Jan Echternach 6/18/2000 Updated the INSTALL directions. MSW 6/16/2000 Modified the editor to make certain objects (teleporters, creators, markers) more easily editable. --PeterM 6/16/2000 Modifed how firewalls worked. They can now be triggered by handles as well as turned. Ones which are turned by handles cannot be triggered by handles. PeterM 6/15/2000 fixes to random_maps: exit.c: won't crash if named final_map doesn't exist room_gen_onion.c: reordered the options more sanely special.c: fixed a crash-bug: nuke_map would nuke parts of monsters, but not the whole monster. --PeterM server/skill_util.c: Fix type in change_skill - was doing an == operation when it should just have been an =. MSW 6/13/2000 common/anim.c: animation_object() - return if object does not have a valid animation after logging error. Before, we logged the error and would promptly crash. MSW 6/13/2000 server/apply.c: apply_treasure(): Bugfix: Set FLAG_NO_APPLY before moving object to the top. - Jan Echternach 6/13/2000 server/time.c: move_marker(): Bugfix: Call update_ob_speed() after changing force->speed. - Jan Echternach 6/13/2000 server/spell_util.c: move_swarm_spell(): Improved distribution of fired objects. Fixed starting position of fired objects to be able to hit targets immediately in front the caster. - Patch by Jeffrey Hantin, applied by Jan Echternach 6/13/2000 server/disease.c, sproto.h, rune.c Fixes from jhantin@derringer.net for diseases: Reversed strstr calls, force argument added to infect_object, diseases in immune carrier last forever, needles use infect object, cast_cause_disease won't fail. --PeterM 6/9/2000 common/loader.l: Fix handling of objects with no animation. Fixes server crash if object's archetype has an animation, but object doesn't. - Jan Echternach 6/9/2000 common/loader.l: get_ob_diff(): Bugfix: Issue a "is_animated 0" line if the object has an animation, but doesn't have FLAG_ANIMATE. - Jan Echternach 6/9/2000 server/apply.c: manual_apply() and monster_apply_special(): Don't check for FLAG_UNPAID if object is applied. This should make the code more robust if an unpaid item get's applied accidently. - Jan Echternach 6/9/2000 server/apply.c: apply_special(): New optional flags AP_NO_MERGE and AP_IGNORE_CURSE. - Jan Echternach 6/9/2000 server/monster.c: find_mon_throw_ob(); server/skills.c: find_throw_ob(): Bugfix: Use AP_NO_MERGE flag to prevent unapplied object be merged with other objects. - Jan Echternach 6/9/2000 server/spell_effect.c: animate_weapon: Bugfixes: Correctly unapply weapon. Don't set FLAG_APPLIED directly on weapon in golem, but use apply_special(). Don't call esrv_send_item() when caster is not a player (fixes server crash if monster casts this spell). - Jan Echternach 6/9/2000 random_map/ Fixes in the map code for various things, including: 1) crash bug on multi-square monsters. 2) no treasures in final_map, 3) new feature of doing walls only, .... --PeterM 6/9/2000: common/button.c: do_mood_floor(): Bugfixes: Only players can have pets. Call add_friendly_object() for friendly monsters. - Jan Echternach 6/8/2000 server/spell_effect.c and server/spell_util.c: Several functions: Only add a pet if there really is a pet's owner, and it's a player. - Jan Echternach 6/8/2000 server/spell_effect.c: cast_charm() and cast_charm_undead(): Bugfixes: Only players can cast these spells. This fixes server crash if a monster casted a charm spell, and the charmed pet was killed. Call add_friendly_object for friendly monsters. - Jan Echternach 6/8/2000 common/friend.c: remove_friendly_object(): Use llevError for error messages. - Jan Echternach 6/8/2000 common/living.c: fix_player(); server/gods.c: tailor_god_spell(); server/spell_effect.c: summon_avatar() and animate_weapon(): Bugfix: Set a string to NULL after calling free_string(). This fixes a nasty bug that caused the string's reference count drop below 0, which resulted in corruption of malloc()'s internal data structures (and possibly server crashes). - Jan Echternach 6/8/2000 server/time.c: move_creator(): Bugfix: Call free_string() to free old values of op->name and op->title before overwriting them with new values. - Jan Echternach 6/8/2000 common/object.c: insert_ob_in_map_simple() and insert_ob_in_map(): Check that we don't insert freed objects. - Jan Echternach 6/8/2000 server/attack.c: hit_player_attacktype() and hit_player(): Bugfix: Check that find_god() really found a god, and that 'god->slaying' is not NULL. Fixes crash if a monster casted turn undead and actually hit something. - Jan Echternach 6/8/2000 server/attack.c: hit_player(): Check that a pet's owner is a player. Prevents server crashes if a monster has a pet monster due to a bug somewhere. Use llevError for error message. - Jan Echternach 6/8/2000 server/time.c: move_arrow(): Use llevDebug level for "Arrow had no map" message. - Jan Echternach 6/8/2000 server/c_object.c, server/spell_effect.c, server/spell_util.c: Bugfixes: Added some missing checks for destroyed objects. Use was_destroyed() or return value of insert_ob_in_map() to check for destroyed objects, not FLAG_FREED or FLAG_REMOVED. Don't use op->count of destroyed objects. - Jan Echternach 6/8/2000 server/shop.c: get_payment2(): Type of tag is 'tag_t', not 'long'. - Jan Echternach 6/8/2000 server/spell_effect.c: animate_bomb(): Fix environment checks. - Jan Echternach 6/8/2000 server/spell_util.c: fire_bolt(): Bugfix: Set level of bolt. - Jan Echternach 6/8/2000 server/spell_util.c: explosion(): Bugfix: Set FLAG_NO_APPLY before moving the exploding object to the top. - Jan Echternach 6/8/2000 server/spell_util.c: put_a_monster(): First create the monster completely, then just insert its head. - Jan Echternach 6/8/2000 server/time.c: generate_monster(): Bugfix: Don't free generators that are used up in this function. process_object() already does this. This fixes steambolt (which is a generator but must not used up here - generate_monster() wasn't looking at FLAG_IS_USED_UP) and all generators which should really be used up (because process_object() didn't expect generate_monster() to destroy the object). - Jan Echternach 6/8/2000 server/rune.c: trap_disarm(): Bugfix: Use SK_level() to determine disarmer's level. Fixes server crash if multisquare monster casts "disarm". - Jan Echternach 6/8/2000 server/attack.c: hit_map(): Use was_destroyed() to properly check for destroyed next object. Use llevError for error messages. Skip all objects that are (no longer) at the specified map position. - Jan Echternach 6/8/2000 server/map.h server/main.c Increased buffer sizes for map paths. Needed for random map code. --PeterM 6/6/2000 6/4/2000: Fix done to disease.c which causes diseases to put experience into the appropriate category. --PeterM 6/4/2000: Added race fields to a lot of monsters. Modified disease arcs so that they'll be specific to races. Changed include/spellist.h to re-enable the disease spells. --PeterM 6/4/2000 (disease.c) Added a self-limiting parameter to diseases so that their power can be tuned to be reasonable. --PeterM lib/crossfire.png: Some floors modified to no longer have transperencies. include/newserver.h: Add Send_Face_Png made, also update versions of the protocol include/newclient.h: Add CF_FACE_PNG constant. socket/request.c: Add support for receiving PNG facemode request, ad final logic to send png images to the client. Changes by Mark Wedel, 6/2/2000 lib/checkarch.pl: Check for archetypes with type FIRECHEST but no level. - Jan Echternach 5/29/2000 server/apply.c: move_apply(): Added handling of THROWN_OBJ, CANCELLATION and BALL_LIGHTNING. server/spell_effect.c: cancellation(): Traverse inventory of objects with type THROWN_OBJ. - Jan Echternach 5/29/2000 server/player.c: fire_bow() and server_skills.c: do_throw(): Bugfix: Don't use op->count of freed objects. Use was_destroyed() to check for freed objects instead of QUERY_FLAG (FLAG_FREED). - Jan Echternach 5/29/2000 server/spell_util.c: fire_a_ball(): Bugfixes: Use op->other_arch as the archetype to fire, not FBULLET. (-> Firechests now cast fire balls again, not snowballs.) Set level of fired archetype. Check if object was destroyed after insert_ob_in_map(). - Jan Echternach 5/29/2000 server/time.c: move_firewall() and move_firechest(): Do nothing if object has no map. Fixes server crashes if a dm creates such a thing in the inventory. - Jan Echternach 5/29/2000 lib/collect.pl: Modify so that it does not complain about png files in the arch directory MSW 5/28/2000 common/item.c: Fix query_short_name - wasn't generating all item names properly because of changes made a few days ago - some areas manipulate the string being worked on and was not updating the length properly. MSW 5/26/2000 doc/mapguide: Fix some typos. MSW 5/26/2000 include/define.h: Add MIN_ACTIVE_SPEED value to determine what threshold something will be put on the active list or not instead of using varying values throughout the source code. common/item.c, common/object.c, server/monster.c, server/pets.c, server/spell_effect.c: Updated to use the MIN_ACTIVE_SPEED instead of hardcoded values. MSW 5/26/2000 include/define.h,include/global.h, common/image.c: Remove following old face information: INV_*_FACES, BLOCKED_FACE, STIPPLE[12]_FACE. This is just a general cleanup - the server has not used these since the X11 code was pulled from the server. MSW 5/26/2000 common/living.c: Add entries for the attack type AT_INTERNAL in description. include/material.h: Update to include saves against INTERNAL attacktype. include/living.h: Remove defunct objects_saves external referance. The additions of internal to the tables should not really be needed, as internal attacktypes should not be used publically, but these also act as placeholders for future attacktypes. MSW 5/26/2000 * server/attack.c: hit_map(), hit_player(); server/spell_effect.c: move_cone(); server/rune.c: spring_trap(); server/spell_util.c: move_missile(): Bugfix: Added missing was_destroyed() calls. * server/rune.c: spring_trap(): Bugfix: Call trap_show() before the rune has a chance to be destroyed. * server/attack.c: hit_map(), hit_player(): Check for freed objects right at the beginning of the function. Removed check that hitter has a name from hit_player(). * server/spell_util.c: move_cone(): Bugfix: Remove cone objects in inventories from active list, this fixes the cone without map problem when a flower was hit with ice and put into an icecube. * server/spell_util.c: move_missile(): Bugfix: Don't call hit_map() while missile is removed from the map. * server/apply.c: manual_apply(): Handle MMISSILE. - Jan Echternach 5/26/2000 * server/spell_effect.c: animate_weapon() and server/spell_util.c: summon_monster(): Bugfix: Set FLAG_FRIENDLY for friendly objects. - Jan Echternach 5/26/2000 * server/attack.c: hit_player(): Bugfix: remove_friendly_object() was called always after an object with type GOLEM had been killed, but friendly objects are objects with FLAG_FRIENDLY, not objects with type GOLEM. This fixes some "Remove_friendly_object(): Can't find object" errors. - Jan Echternach 5/26/2000 ----------------------------------- --- BEGIN apply() cleanup patch --- Jan Echternach 26/5/2000 ----------------------------------- * player specific code moved from apply() to player_apply() and player_apply_below(). * apply(): null pointer check removed * (bugfix?) print message if scroll is unusable because of invalid spell number * bugfix: if the altar casted a spell, the message was sent to the (destroyed!) sacrifice, not the player * split apply() -> move_apply() / manual_apply() * move_apply(), check_walk_on(), insert_ob_in_map() and other functions: New parameter 'originator' that is the object that caused another object to be inserted into the map. This removes the need to look through all map objects above an altar to find the player who dropped the sacrifice. * always check FLAG_UNPAID in manual_apply() * don't check FLAG_UNPAID in apply_special(), new function monster_apply_special() which checks FLAG_UNPAID and calls apply_special() * many new functions like apply_altar() and apply_spellbook() to make the switch statements in move_apply() and manual_apply() shorter * changes to actual apply() code: ALTAR: spell casting altars should work now if not operated by a player common/button.c, operate_altar(): altar's message is sent to altar's map, not player's map bugfix: if sacrifice was accepted, apply() didn't tell the caller that it has been destroyed ARROW, CONE, FBULLET, BULLET: now returns 'victim destroyed' if victim was killed by the attack TRAPDOOR: play sound only if something fell through the trapdoor print trapdoor message _before_ falling into trapdoor TRIGGER_ALTAR (in check_trigger()): don't check for sacrifices if called from animate_trigger() don't call check_trigger() from fix_auto_apply() anymore (this change breaks maps with altars that have their sacrifice already stored on them) DEEP_SWAMP: deep_swamp() -> walk_on_deep_swamp() / move_deep_swamp() when deep_swamp() (now move_deep_swamp()) is called from process_object(), assume that state (swamp->stats.food) is already 1 EXIT: removed support for multisquare players don't print 'is closed' message when moving on an exit, only print this message if exit is applied manually SIGN: only increment last_eat if it hadn't reached the limit yet SPELLBOOK: removed partial support for applying by monsters BOW, WAND, ROD, HORN: moved code to apply_special() CLOCK: bugfix: Monsters must not apply a clock, they would crash the server. POWER_CRYSTAL: Bugfix? Don't call esrv_update_item() if not applied by a player. LIGHTER: Bugfix? Just return 0 if not applied by a player. * changes to apply_special(): BOW: remove double check_skill_to_apply() ROD, HORN: change message from "you apply ..." to "you ready ..." BOW: FLAG_READY_BOW is now set by apply_special(), but that seems redundant because monster_check_apply() also sets this flag. Remove setting of this flag from apply_special() because it could have a more complex meaning in monster.c or remove setting of this flag from monster_check_apply() because such stuff should be handled in apply.c? FLAG_READY_BOW is also unset in apply_special() if a bow is unapplied. CONE: don't multiply damage by 20 SIGN: you can hear magic mouths even if you are blind however, now you can also read signs with FLAG_WALK_ON/FLAG_FLY_ON if you are blind (different object types or a new flag would be required) RUNE: detonation moved from move_rune() to move_apply() -> runes will now always detonate if somebody steps on them allow runes with FLAG_FLY_ON completely removed GRAVE and MONEY_CHANGER common/object.c: was_destroyed(): new function include/object.h: new typedef tag_t move_apply() returns void, check_walk_on() uses was_destroyed() lib/checkarch.pl: check for archetypes with walk_on, walk_off, fly_on or fly_off and without a type check for archetypes with type FIREWALL (type 62) and without a level * server/apply.c: Bugfix: Don't skip calls to change_skill() if wizard - calc_skill_exp() requires change_skill() to set the current experience object. * server/monster.c: find_mon_throw_ob(): Bugfix: Unapply applied object even if heaviest object was choosen. Bugfix: Use monster_apply_special() to unapply, clearing FLAG_APPLIED isn't enough. -> Should fix the "HAS_READY_BOW without bow" errors. * server/skills.c: find_throw_ob(): Bugfix: Use player_apply(), clearing FLAG_APPLIED isn't enough. Replace redundant check for FLAG_INV_LOCKED with error message at end of function if the first check failed somehow and we have choosen an object with FLAG_INV_LOCKED. make_throw_ob(): error message if object is applied * lib/checkarch.pl: check that potions (type 5, POTION) have a level * server/apply.c: apply_special(): Handle all cases of applying and unapplying skill objects. * server/apply.c: manual_apply(SKILL): Just call apply_special(). * server/skill_util.c: change_skill(): Rewrite to simply use apply_special() for changing skills. * server/apply.c: apply_special(): Bugfix: Fixed return values. * server/skill_util.c: link_player_skills(): Bugfix: Don't set exp_obj for (visible) skill tools. * server/skill_util.c: link_player_skills(): Bugfix? Reset op->chosen_skill and FLAG_READY_SKILL because we have unapplied all skills. * server/input.c: legal_range(): Bugfix: range_skill is valid only if op->chosen_skill != NULL, not when there is some (unapplied) skill somewhere in the inventory. * server/login.c: check_login(): Bugfix: call legal_range() after init_player_skills() - we can't handle range_skill correctly if skills haven't been initialized. * server/login.c: check_login(): Bugfix: Check return value of legal_range(), and reset op->contr->shoottype to range_none if range was invalid. * server/login.c: check_login(): Bugfix: Don't call fix_weight() - fixing the weight of _all_ players isn't necessary. Just initialize op->carrying directly with sum_weight() instead. This also removes the problem of updating the weight of an object that hasn't been sent to the client yet. * server/login.c: check_login(): Bugfix: We need to call fix_player() (init_player_skills() needs this, and it also makes the code more robust). * server/apply.c: apply_altar(): Bugfix: Print altar's message before casting the spell. * server/spell_util.c: move_cone(): Use copy_owner() instead of set_owner() and manually correcting the skill and experience object pointers. * server/spell_util.c: cast_cone(): Don't set FLAG_FLYING - the archetype needs to have this anyway for move_cone() to work properly. Instead, print error messages if FLAG_FLYING, FLAG_WALK_ON or FLAG_FLY_ON are missing. * server/apply.c: move_apply(): TRAPDOOR: Bugfix: Multiply by op->nrof when calculating the weight. * randommaps/standalone.c, server/apply.c: fix_auto_apply(): Bugfix: Don't call check_trigger() for objects of type TRIGGER. For other trigger types, call check_trigger() only if there is an object above the trigger. This can be used to implement doors that are only open shortly after the map has been loaded. * common/button.c: check_trigger(): Many changes. The triggers should now behave as described in crossfire.doc. -> This breaks maps that rely on old buggy behaviour. * server/monster.c: monster_apply_below(): will_apply & 1 now also applies TRIGGER objects, not only HANDLE objects. Allows an interesting solution for /asyvan/gate9 if there is no second player who can open the middle grate. * common/button.c: check_trigger(TRIGGER_PEDESTAL) and update_button(PEDESTAL): Bugfix: Handle objects with heads correctly. * server/c_object.c: drop_object() and socket/item.c: look_at(): Bugfix: If a player is moved on top with remove_ob()/insert_ob_in_map(), FLAG_NO_APPLY must be set temporarily. * common/object.c: remove_ob(): Bugfix: Don't call move_apply_func() if FLAG_NO_APPLY is set. * server/apply.c: manual_apply(): Don't call apply_special() for objects that are not in the inventory. Return 2 in this case. * server/apply.c: player_apply_below(): Skip objects for which manual_apply() returned 2. * server/apply.c: apply_spellbook(): Bugfix: Don't give experience for items with FLAG_STARTEQUIP. --------------------------------- --- END apply() cleanup patch --- Jan Echternach 26/5/2000 --------------------------------- server/input.c: modify examine_monster to use the maxhp field instead of the arch hp field to determine healthiness of the monster. Also, give this information for all creatures, not just monsters or players. MSW 5/23/200 socket/item.c: Add MAXITEMLEN define at top of file and use that to determine at what point item commands should be broken up. Prior hard coded value was not always large enough. MSW 5/23/2000 include/define.h: add safe_strcat inline/static function. Add DESCRIBE_ABILITY_SAFE and DESCRIBE_PATH_SAFE which use the safe_strcat to prevent buffer overuns. common/item.c: Have query_name use HUGE_BUF for its buffer - query_short_name uses that buffer size, and we call the same thing. have quer_name and query_short_name use the safe_strcat function. Increase buffer size in ring_desc to be a VERY_BIG_BUF and also use safe_strcat along with the DESCRIBE_*_SAFE macros. server/input.c: Modify examine.c to not get buffer overruns for very long/ complicated items. Modify long_desc to also handle long names/descriptions without buffer overruns. socket/item.c: Modify the functions that prepend the length to the name of the object to handle very long (>255) object names properly - now we just truncate it and only send the first 255 bytes. add function add_stringlen_to_sockbuf to make this task easier. With the above changes, very long named items/items with very long descriptions works properly in both the server (no crashes) and the client (no crashes/protocol errors) MSW 5/22/2000 common/item.c: Modify query_short_name to avoid buffer overflow on long ring descriptions. Also, increased size of buffer in this function so that longer ring descriptions will not get truncated. MSW 5/22/2000 server/c_chat.c: Add standard banner to top of file. Fix say command so that it does not crash the server if something beyond 256 characters is spoken - extra data is just truncated. MSW 5/22/2000 common/object.c: Splitted set_owner() into set_owner_simple() and set_owner(). copy_owner(): New function. server/spell_util.c: explode_object(): Use copy_owner() instead of setting skill and experience objects manually. Bugfix: Don't use op->owner directly (fixed by using the caster in call to SP_level_dam_adjust(), not the owner, which was wrong anyway). server/spell_util.c: fire_arch_from_position(): Use copy_owner() instead of set_owner() if 'op' isn't the real owner but only a spell object owned by somebody else. server/spell_util.c: move_swarm_spell(): Use the swarm spell object as the owner in call to fire_arch_from_position(), which now handles this case correctly. server/spell_util.c: fire_swarm(): Call tailor_god_spell(). server/gods.c: determine_god(): op->type==SWARM_SPELL is a spell. server/gods.c: tailor_god_spell(): op->type==SWARM_SPELL is a spell. Always abort function if we couldn't find a god. Always add god's attacktype if the spellop's attacktype has AT_GODPOWER. - Jan Echternach 22/5/2000 common/init.c, common/loger.c, include/logger.h, server/init.c: New log level llevInfo which is the new default log level. Many other files: Use llevInfo instead of llevError where appropriate. Use 'settings.debug >= llevDebug' instead of 'settings.debug'. - Jan Echternach 21/5/2000 server/main.c: Use a marker object to track current position in the list of active objects. Using a pointer didn't work because all objects on that list can be removed from it by process_object(). One of the things this fixes is bogus "Free object on list" errors. - Jan Echternach 21/5/2000 crossedite/Makefile.in: Modify to use $(MAKE) instead of make when descending into subdirectories - fixes compilation on FreeBSD - MSW 5/17/2000 socket/init.c: Fix incorrect check on return value from fread when loading xpm images. MSW 5/17/2000 Fix server/spell_effect.c - was assigning altar->other_arch to an object and not archetype MSW 5/16/2000 server/spell_effect.c: magic_wall(): Duration of darkness spell now implemented with op->stats.food. This avoids problems with very low speed values that were interpreted as infinite duration. lib/spell_params: Changed duration parameters of darkness spell to give a reasonable duration with the new formula. - Jan Echternach 16/5/2000 common/living.c: drain_stat(): There are 7 stats now, not 6. - Jan Echternach 15/5/2000 server/rune.c: rune_attack(): Check that victim still exists after hit_player() was missing. This fixes server crashes if monster applied a chest, found a diseased needle and was killed by it. - Jan Echternach 15/5/2000 server/spell_effect.c: cast_charm(): out_of_map() check was missing. This fixes server crashes when a player casted this spell near the edge of a map. - Jan Echternach 15/5/2000 Make image files and code more generic. This was largely done to make adding support for png files easier, but in reality, it means adding support for any new file format is now trivially easy. Format of the image file is: IMAGE \n followed by the image data. This allows support for binary image formats (png), but also means that the server doesn't need to know anything about the image format - rather it is all just data as far as the server is concerned. I think this actuallyy loads the xpm data a little faster - it would make sense that it should, since it just reads all the data in with one fread instead of parsing it line by line waiting for the end image delimeter. Note: While png images are loaded, they are currently not supported in the client nor will the server send them - that is the next step in the work, but that will require just a few minor changes to the server - most of those change will be in the client. crossedit/xutil.c: Merge bitmap & pixmap load routine into one called ReadImages, function modified to use above format. crossedit/App.c: Call ReadImages to load images. include/newserver.h: Change FaceInfo structure to have arrays of data and datalength instead of explicity entries for pixmap vs bitmap data. lib/adm/make_xpm_file.pl, lib/crossfire.cfb, lib/xbmtobdf.c: Removed - either note needed or replaced by new naming scheme. lib/adm/collect_images.pl: Replacement/improvement of make_xpm_file.pl above - this handles all image formats (xbm, xpm, png). This is also more intelligent in that it will not try to rebuild the image files if there is not a valid arch directory. lib/crossfire.png, lib/crossfire.xbm (new files): .png file is for png images. xbm is to keep with the new standardized naming convention used and is for the bitmaps. lib/crossfire.xpm: New format used in file. lib/Makefile.in: Modified to collect via new script as well as new directives to collect (png files). socket/init.c: Modified to load with the new format and data structures. socket/request.c: Modified to send data with the new data structures provided. End of image changes, MSW 5/13/2000 configure.in, configure: Add check for perl so that we can call scripts properly - MSW 5/13/2000 common/re-cmp.c: Add some tolower calls in the comparisons so most regular expressions should not be case insenstive (makes matches & says work better). Note that I did not change the behaviour on range matches (Z-f for example), as I thought there may be side effects in that case. MSW 5/8/2000 socket/request.c: Add length checking to NewPlayerCmd so that if the client sends us a really long command, we just truncate the end of it and not overwrite our internal buffers causing crashes. MSW 5/8/2000 server/player.c: add out_of_map check to stand_near_hostile function. This fixes a server crash if the player uses a hiding skill near the edge of a map. MSW 5/8/2000 common/arch.c, common/loader.l (loader.c): Modify the load routines to strip off trailing whitespace in object names and other_arch fields - I believe this is why altars to Sorig did not generally work, and while generally that white space should not exist, doing a little extra checking for it is not a bad idea - MSW 4/26/2000 Add HOLY_ALTAR type, and use that for praying over for gods and the like. doc/crossfire.doc: Add description of HOLY_ALTAR type and meaning of fields. common/map.c: Disable consecration code for altars. include/define.h: Add type for HOLY_ALTAR include/sproto.h: Update for change of some functions below. server/c_wiz.c: Modify setgod command to call become_follower with proper second arg. server/gods.c: Change become_follower to take object pointer to god instead of name, since the holy_altar has the pointer in its other_arch. Modify pray_at_altar to use the new fields, as well as fixed what seemed to be numerous bugs in that function. sever/skills.c: Change check from ALTAR to HOLY_ALTAR, also change check to see if HOLY_ALTAR is consecrated by looking at the other_arch field. server/spell_effect.c: Update consecrate so that caster must be higher effective level than the altar, also update for differing fields. maps/thomas/sisters/shrine0, map/thomas/sisters/tower0: Remove title from altars on these maps - these were the only two maps using old style altars consecrated to a god. Since it appears the real purpose of the altars on these maps was to trigger something else, they were kept as old style altars. arch/gods/altars (relocated from arch/indoors, as I think the new location makes more logical sense): Update for new fields/format. This also affects lib/archetypes, lib/bmaps.paths, lib/crossfire.xpm, lib/crossfire.cfb lib/adm/archsearch.pl: Modified to hunt out old archetypes - some of the changes could be useful in general cases. MSW 4/26/2000 server/spell_util.c: Fix move_golem so that multi square avatars (golems) don't hit themselves. Remove will_hit_self function (only used in move_golem), since it did not work. Change structure & indenting of move_golem function so it isn't quite so nested - functionality remains the same. When we do find something to kill in move_golem, call attack_ob against it instead of hit_map - hit_map is not save for multi object hitters. MSW 4/24/2000 Key usage change: Add new command 'usekeys' that specify how keys are searched for. The three options are inventory, keyrings, and containers. These options apply to both standard keys and special keys. If the player has a key for the door but it is in a container that will not be used, print a friendly message of the key name and container name. Files affected: help/usekeys: Added describing options lib/Makefile.in: Addition of help/usekeys above. include/player.h: Add new enumeration and entry into player structure include/sproto.h: New function prototype server/apply.c: change of Find_Key to new function with slightly different options server/c_misc.c: add function to support 'usekeys command. server/commands.c: addition of usekeys command server/player.c: rewrite & rename of find_key command, as well as changes to move_player_attack Mark Wedel 4/21/2000 server/spell_effect.c: create_bomb(): New spell_type parameter, merely for consistency with itself and with other spell casting functions. - Jan Echternach 4/19/2000 server/spell_effect.c: create_bomb(): Set level of created bomb. Fixes the problem that the splints were casted without a level. - Jan Echternach 4/19/2000 lib/checkarch.pl: New perl script to check the archetypes file for obvious bugs (like object that is alive but doesn't have a level). - Jan Echternach 4/17/2000 include/spellist.h: "meteor swarm" is now a missile spell (PATH_MISSILE) just like "comet". - Jan Echternach 4/17/2000 server/spell_util.c: path_level_mod(): Rewrote to fix countless bugs. New interface with explicit base level parameter. server/spell_effect.c: finger_of_death(): Call path_level_mod() with correct base level. server/spell_util.c: casting_level(): New function that combines SK_level() with path_level_mod(). - Jan Echternach 4/17/2000 server/spell_util.c: Several cosmetic changes (spell type parameter name is spell_type, arch_to_object(get_archtetype(...)) is equivalent to get_archetype(...), use casting_level() if applicable). - Jan Echternach 4/17/2000 server/spell_util.c: fire_swarm(): New 'caster' parameter because owner and caster can be different. Level of the swarm object is casting level of the caster, not overall level of the owner. server/spell_util.c: fire_arch_from_position(): Set level of fired arch to casting level of caster. server/spell_util.c: cast_cone(), cast_smite_spell(): Set level of spell object to casting_level() and not SK_level() to honour path_attuned and path_repelled of the caster. server/spell_util.c: move_cone(): Just copy the level for new cone objects. Missing level meant AT_DEATH didn't work, missing call to path_level_mod()/casting_level() meant path_attuned/path_repelled was ignored. - Jan Echternach 4/17/2000 server/player.c: fire_bow(): Set level of fired arrow. Arrows with AT_DEATH are now working. - Jan Echternach 4/17/2000 server/player.c: fire(): Call check_skill_to_fire() even for wizards because this function has the important side effect of setting the current skill and experience objects. - Jan Echternach 4/17/2000 server/skills.c: do_throw(), server/time.c: stop_arrow(), server/player.c: fire_bow(): Flying arrows and thrown objects have FLAG_NO_PICK set because picking these objects is currently broken (and maybe it shouldn't be possible anyway - picking up a _flying_ arrow?). - Jan Echternach 4/17/2000 server/c_wiz.c: set_god(): Didn't work at all because it was trying to set the current player as his own god. - Jan Echternach 4/17/2000 server/map.c: check_path(): Return value was wrong if the name did not refer to a regular file. A symptom of this bug was that the server crashed if a wizard tried to enter a directory with the 'goto' command. - Jan Echternach 4/17/2000 server/map.c: open_and_uncompress(): Check that the file we have opened is (still) a regular file, fail if it's not. This is the right place for such checks if we want to avoid race conditions (e.g. file replaced by directory while trying to open it). - Jan Echternach 4/17/2000 c_party.c commands.c daemon.c disease.c gods.c spell_effect.c spell_util.c: Cosmetic fixes - updates to rcsid string to include right file name as well as updates to mail address and/or additions to top banner. Mark Wedel 4/13/2000 Various files: Updated my mailing address to be accurate - Mark Wedel 4/13/2000 doc/playbook/handbook.idx: Automatically generated file removed. This is not something normally included in packed up distributions, so no reason to have it in CVS - Mark Wedel 4/13/2000 doc/include_html.pl, doc/playbook/make_index.pl, doc/spoiler-html/makeps.pl, lib/adm/make_xpm_file.pl: Change to use /usr/bin/perl instead of /usr/local/bin/perl - real change is to find perl in configure.in and call the scripts with that. Mark Wedel 4/13/2000 server/input.c: Don't try to calculate spellpoint costs for denied spells, because these are undefined and are now causing lots of BUG messages. Also improved formatting: spellpoint costs can be > 99, and don't fill everything with zeros, use spaces instead. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/12/2000 server/skill_util.c: Fixed some log messages that were lacking a newline at the end. SK_level(): Rewrite of this function to simplify its structure. Print error message if we find an invalid level. Add top copyright/contact banner (msw) Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/12/2000 server/apply.c, server/monster.c: Fix in apply.c for encounter maps so that proper message is generated, and differentiate behaviour if it is a floor vs not a floor. Also, change to both files in that apply_below stops at the floor object. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/12/2000 server/apply.c, doc/crossfire.doc: Fix to prevent server crashes when monster applies poison object. doc file is updated to include accurate information on values in poison object. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/11/2000 CREDITS, server/main.c: Add Peter Gardner to list of credits. Mark Wedel 4/4/2000 server/apply.c, improve_armour(): Maximum armour value reduced to 90. Items can now always be improved up to this value. For armour x you need level x, not level x + 1 as before. esrv_send_item() and fix_player() also called if only magic value was improved. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 server/attack.c, attack_message(): More messages. "grind to dust" is more damage than "shred to pieces". Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 server/spell_effect.c, magic_wall(): Fix calculation of duration of darkness spell. Before, you could get huge negative speed values with high experience levels, which meant very short duration. Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 server/spell_util.c: 1) New argument of fire_swarm() to specify whether it's a magic attack. All swarm spells except meteor swarm are now magic (just as the underlying basic spell). 2) New function fire_arch_from_position() which doesn't use the owner's position as the starting position of the fired arch. 3) move_swarm_spell(): Correctly set owner and magic in call to fire_arch_from_position(). 4) Above changes fixes "cause many wounds" spell Patch by Jan Echternach, applied & checked in by Mark Wedel, 4/4/2000 common/map.c: Change calls in file to use insert_ob_in_map simple. This fixes bugs with buttons not being applied correctly when the map is loaded - the cause is that push_button is getting called for the button before all the objects the button is linked to have been loaded. Then when the map finishes loading, the call to update_button is called and they are not in sync. This change should make loading slightly faster, mostly because it does not call check_walk_on during the loading, so that buttons don't get pushed/changed around. Mark Wedel 3/28/2000 server/player.c: If player is using pickup mode 6, only have them pick up the item if they know it is magical. Prior to change, items would be picked up if they are magical, but not if the player knew that, so the code was giving extra knowledge to players. Bug reported by Kurt Fitzner, checked in by Mark Wedel, 3/26/2000 common/map.c: Code fix by Kurt Fitzner so that unique maps will get compressed if so needed. Fixes problem of unique maps not being able to get reloaded as they are saved with the compress suffix but not in compressed form. Code checked in by Mark Wedel, 3/26/2000 server/skills.c, server/spell_effect.c: Improve behaviour when identifying items - the identify routine already updates the client if it is in the players inventory, so only send update to client if the item is on the map. Also, do full item update, as many fields may change, and that is what the identify function does. Standard top of file banner also added to skills.c file. Fixes problem of objects in inventory being displayed with two numbers in from (ie, two two bows +1). Bug and initial fix of item updates by Kurt Fitzner, implemented in a bit different way by Mark Wedel. 3/26/2000 Makefile.in, doc/Makefile.in: Modified so that making the docarchive now works. The make must be done from the top level for it to work, since some values are passed, but the doc/Makefile.in was missing some declarations and had some other fixes that needed to be done. msw 3/22/2000 ------------------------------------------------------------------------------ Changes for 0.95.5: Makefile.in: comment out the EXTRA_FLAGS (which contains the -Wall entry) - the presumption that everyone is going to use gcc to compile crossfire is a poor one, and -Wall is only supported on gcc. I would rather have it compile on the maximum number of systems without it needing changes than to require the end user to make the customizations. A better long term solution is to have configure.in check for gcc or if -Wall is supported it and have it add it in. msw 3/21/2000 server/c_object.c: Fix pick_up_object function to deal with non players picking up objects - prior to fix, program would crash when monsters pick up objects. Also, add standard banner at top of file about copyright, contact, version information. msw 3/21/2000 CREDITS, README: Updated to contain my new mailing address. In reality, almost all the files have an out of date address for me, but these are probably the ones people will look at most. README also updated with new ftp location. msw 3/20/2000 include/Makefile.in: Update files to include material.h - need when packing up new releases - msw 3/20/2000 doc/hanbook.ps, doc/spoiler.ps, doc/spoiler-html/spoiler.html: Rebuilt with latest version of crossfire - not sure if there are any content changes, as the tools to build the file have been updated on my system, causing many changes to the prologue and outputted data. - msw 3/20/2000 Change doc/spoiler-html/Makefile.in and doc/playbook-html/Makefile.in to use $(datadir) instead of $(C_LIBDIR). Other add AWK and INCDIR lines so that it properly builds with autoconf setup. msw 3/19/2000 Change spoiler.tex, handbook.tex to build properly with later versions of tetex - added language specifier when using the babel package. msw 3/19/2000 Add missing doc/playbook/fig directory to the CVS reposistory - msw 3/18/2000 Change summon_cult_monster code so that it will no longer summon big monsters on top of walls or the player. Also, if there is not space for a big monster, try to find another pet monster that will fit in the space. File affected: server/spell_effect.c - msw Change gorokh.arc to use anim devil instead of anim Lucifer - fixes crash when using avatars of gorokh - msw Split off kill_player function from do some living, and check for player death upon player login. This splits up an otherwise very large function, but more importantly, the second point allows NOT_PERMADEATH to work as expected when the player is dead when logged out. Previous, the if the player was dead when they logged out, it would just kill off the character permanently (without grave marker or anything), even in NOT_PERMADEATH mode. Also, cleaned up player load code to remove code that supported very old style save files. Files changed: server/login.c server/player.c include/sproto.h - msw Change NO_STAT define in living.h,skillist.h,skill_util.c to NO_STAT_VAL to remove conflict on AIX systems. - msw Fix error in configure.in - was referancing BZIP2, when it should have used BZIP - msw 2/7/2000 server/skill_util.c: Fixed spelling of unwield configure.in: Update -z checks to not use eval, double quote the variable. This seems to be needed on solaris and probably other systems. Both changes commited by Mark Wedel, 2/7/2000 ---SMALL BUGFIX--- John Cater 5/11/1999 server/attack.c: - changed the logic in hit_player to attack enemy races with holy word playtested ---BEGIN BATCH UPDATE--- DAMN 9/17/1999 server/alchemy.c: - minor cleanup server/apply.c: - split multiple lighters server/attack.c: - vulnerability gives -4 to saving throw against non-damage attack effects - immunity to acid reduces the probability of corrosion - immunity and protection and not vulnerability to acid prevents corrosion - magic bonus improves item's saving throw against acid - vulnerability to drain doubles rate of exp loss, protection halves rate - holy word slaying is checked in hit_player, no need to double-check in hit_player_attacktype - prot:magic and vuln:magic affect all magical damage, not just raw magic - Holy Word and Turn Undead affect undead at half strength if they're not listed as an enemy race - Holy Word and Turn Undead have no effect on undead if they're listed as a friendly race - minor bugfix/cleanup server/gods.c: - minor bugfix/cleanup - luck slightly improves chance of divine intervention server/input.c: - fixed typo server/main.c: - trivial bulletproofing, probably no effect server/player.c: - sp regen penalty from armour calculated in fix_player instead of being recalculated for each spell point gained. server/shop.c: - payment will come from open pouches if you don't have enough in your top-level inventory - money for sold items will go into open pouches until they're full, then overflow into top-level inventory server/skills.c: - minor bugfix in throwing - writing in one of a stack of books seperates one book out first server/spell_effect.c: - generalized staff_to_snake to animate_weapon server/spell_util.c: - Staff to Snake, Dancing Sword, and Animate Weapon spells now all use animate_weapon function - holy golems avoid damaging their owners - raw mana spells common/living.c: - minor bugfix - fix_player now calculates sp regen penalty from armour common/readable.c: - spelling fix: grimore -> grimoire doc/crossfire.doc: - minor edits include/defines.h: - moved object type numbers to object.h - moved flag numbers to object.h - moved NROFREALSPELLS to spells.h - moved path numbers to spells.h - moved DESCRIBE_PATH macro to spells.h - moved ARMOUR_ and WEAPON_ macros to player.h - moved player state numbers to player.h - moved monster movement numbers to living.h - moved NROFSKILLS to skills.h include/global.h: - #defines from spells.h and material.h loaded early include/object.h: - now has the #defines for object type numbers include/skills.h: - moved NROFSKILLS here include/player.h: - added gen_sp_armour variable include/spellist.h: - added mana spells, Dancing Sword, and Animate Weapon include/spells.h: - moved NROFREALSPELLS here and updated it - now has the #defines for spell path nummbers - added mana spells, Dancing Sword, and Animate Weapon include/sproto.h: - added animate_weapon and pay_from_container prototypes include/material.h: - new lib/spell_params: - added entries for mana spells along with their fire equivalents lib/formulae: - minor spelling fixes to match minor spelling fixes in artifacts lib/artifacts: Weapons - Sanwe -> Gnarg (any weapon) chance 5, value x10, magic 0, dam 120% - Lythander (any weapon) chance 5, value x20, magic 0, luck +1, weight 90% - Gwormi -> Gaea (wooden weapons only) chance 20, value x50, magic 2, regen +1, dam 110% - Slay Demon -> Valriel (any weapon) chance 15, value x30, magic 2, weapon speed 120%, slaying demon - (new) Gorokh (any weapon) chance 15, value x30, magic 2, weapon speed 120%, slaying angel - (new) the Devourers (any weapon) chance 8, value x30, magic 1, attacktype: physical, cold, depletion - (new) Mostrai (axes and hammers only) chance 10, value x12, magic 1, dam 140%, weight 115% - (new) Sorig (metal weapons only) chance 5, value x15, magic 1, weight 95%, weapon speed 125% attacktype physical, electricity - (new) Ruggilli (metal weapons only) chance 5, value 15, magic 1, weight 85%, weapon speed 110% attacktype physical, fire Helmets (moved to after weapons, with the rest of the armour) - Lordliness -> Valriel (full helm only) chance 20, value x50, magic 2, Wis +1, Cha +1 - Uriel -> Sorig chance 10, value x20, magic 1, ac +1, armour 120%, prot electricity Shields - Theodin -> Mostrai chance 8, value x24, magic 1, prot fire - Gnarg chance 8, value x12, magic 1, ac +1, armour 180%, Cha -1 Gauntlets - (new) Sorig (gauntlets only) chance 15, value x75, magic 2, armour 10, weight 125%, attack: electricity - (new) Sorig (gloves only) chance 10, value x10, magic 1, armour 5, weight 125%, prot: electricity Armour - (new) Valriel (plate and scale only) chance 6, value x20, magic 1, armour 120%, weight 110% - (new) Gorokh (plate and scale only) chance 6, value x15, magic 1, ac +2, armour 110%, weight 105% - (new) Ruggilli (plate, scale, or dragon armour) chance 10, value x55, magic 3, ac +1, armour 120%, weight 90%, prot: fire - (new) Gaea chance 10, value x25, magic 2, ac +1, armour 120% Cloaks - (lesser version of cloak of the Underworld) the Devourers chance 3, difficulty 3, value x50, magic 3, weight 50%, material 0, Cha -2, prot: acid, drain, ghosthit, depletion Bows - (new) Valriel chance 10, value x15, magic 1, weight 110%, damage 200% - (new) Gorokh chance 15, value x15, magic 2, damage 160%, attacktype: physical, acid - (new) Lythander (not crossbow) chance 10, value x22, magic 1, weight 75%, wc +1, speed 150% - (new) Ruggilli (crossbow only) chance 10, value x18, magic 2, weight 85%, wc +1, speed 110%, attacktype: fire - (new) Sorig chance 12, value x20, magic 2, weight 95%, wc +1, speed 125%, attacktype: electricity - (new) Mostrai (crossbow only) chance 5, value x50, magic 3, damage 140%, speed 75%, attacktype: weaponmagic - (new) Thunder chance 10, dificulty 5, value x10, magic 2, weight 90%, damage 150%, wc +2 attacktype: physical, slow, paralyze ...and a few minor spelling fixes ---END OF BATCH UPDATE--- DAMN 9/17/1999 Add crossfire.oc.humbug.org.au server information to README file - msw Change compress method definitions from being determined by checks on system type to having autoconf find the utilities for us. Also, add bzip2 support. Files affected: Makefile.in configure.in common/map.c server/init.c server/login.c include/config.h include/define.h include/autoconf.h.in - msw Fix in server/rune.c - if the victim of a trap/rune is not on a map and the object has a disease, it would crash the server. Temporary fix put in to make sure there is a map, and if not, use a predefined difficult of 1. I think the real issue is how can an object not on a map be setting a trap (in this particular bug, reported by Klaus Elsbernd, the victim was a thrown object) - msw Change by dragonm@absolut.tegris.org - improve crossedit so that if you try to load a map you alreay have in memory, it will raise the window - it will also give you the option to forget, save changes, or just raise the window if the in memory version of that map has been modified. Checked in by msw. (crossedit, App.c, Edit.c, Edit.h) Bugfix in server/apply.c - apply_container() When checking for keys to locked containers, only searched player's inventory, not keyrings. Changed to use FindKey function in player.c, which does search keyrings. --DAMN Bugfix in server/main.c - enter_exit() Unique maps were using their actual location as a path for moving to a new map. They need to use the location of the original map, not the character's individual copy of it. This is re-constructed from the individual map's filename, which is based on the original path. --DAMN Remove xbmtobdf man page - since it is run automatically and it is likely that people will not run it manually (and it appears to be innacruate - or at least imcomplete), may as well remove it. - msw Change install location of man pages to section 6 instead of section 1 - msw New man page submitted by Egbert Hinzen that is actually correct and accurate as the options now relate to crossfire. - msw This one is a suggested fix for the alchemy bug that grants obscene amounts of experience for certain formulas. Those formulas are the ones that create items with a high fixed level, because those items are pretty worthless otherwise. Dust of Repelling Undead, for example, is level 30. The fix I implemented here is to base the chance of success largely on the level of the product, so it's very difficult to produce something like Dust of Repelling Undead, and therefore worth the extra experience. The chance of success is now based on the following factors: 1) level of product 2) number of ingredients in formula 3) rarity of formula as listed in "formulae" data file 4) number of batches being made 5) Alchemy skill (if present) 6) enchantment of cauldron 7) luck patch from DAMN This one makes a couple things level dependent that used to be fixed: 1) time it takes Word of Recall to take effect 2) amount of energy transferred by Transferrence spell 3) percentage of energy drained by Magic Drain spell Also, the following effects have been modified: 1) Followers of a cult that considers undead enemies have a penalty to Command Undead. 2) Magic Drain gives back to the caster a small portion of the energy drained from the victim. And a bug was fixed: 1) SP_level_dam_adjust used and SP_level_strength_adjust used the player's level, where they should have used the caster's level. --Patches from DAMN, applied by PeterM Marker object added, alchemy modified so that recipes can require keycodes and MARKS to execute, detectors modified to be able to detect MARKS, and all of this documented in crossfire.doc --PeterM server/gods.c -- changing gods now costs players their special prayers. --PeterM server/alchemy.c -- levels less than ten no longer produce cursed items, but only slag or nothing. --PeterM server/shop.c -- unidentified stuff is worth at most 60gp or so. ---PeterM random_maps/style.c - fix type in the scandir function which cause compilation problems for those systems that actually need it. - msw Change command_cast_spell so that it preserves a return value from find_spell. This re-enables partial spell matching (ie, cast prot will show all spells that start with that.) - msw ------------------------------------------------------------------------------ Change for 0.95.4: Add better comment in config.h about the DM_MAIL option - msw. Fixed and doc/playbook/Makefile.in doc/spoiler/Makefile.in so it works with autoconf setup. Updated to properly generated handbook.ps when needed - msw doc/crossfire.doc: Updated with disease code notes, detector notes. crossedit: Fix in edit.c to ensure map objects (mainly is_floor objects) are actually removed visually as well as from a pure object standpoint. Change to save_throw_object: If object is in players inventory and is destroyed, send update to client. This can happen when trying to ignite something in the inventory with flint and steel - msw. In apply_lighter, do more accurate check when seeing if the attempted object was actually destroyed. Also, cache the item name so that if it is destroyed, we have a proper name to print out. - msw fireborns changed to have Pow stat bonus instead of Wis stat bonus. --PeterM Some problems in the random map code fixed: specificially, 1) fountains no longer attempted placement outside map 2) Ignore files/dirs named CVS when looking for styles. I changed a few of the maps to have exits to random maps. I made one random house in Scorn, one random exit in the Hall of Bones to an undead maze, another exit to a random map in the hole SE of Scorn, and one in the bottom of the Tower of the Stars. --PeterM Update lib/Makefile.in to create empty bookarch and temp.maps files as part of install process. - msw Change configure.in script so that by default, files will be put in installdir/var/crossfire and installdir/share/crossfire instead of just installdir/var and installdir/share. This allows crossfire to be installed more cleaning without it having its own top level directory. Old installation behaviour can be gained by using --enable-old-layout when running the configure script. - msw Patch by Carsten Pluntke that fixes a problem with unique maps not being properly reloaded after being swapped out (main.c) - msw Fix so that when picking up objects from a container, the client gets an update to remove the object display from the container (ie, if you pick up all the gold coins from a container, the total in the players inventory always got corrected, but the client still displayed some in the container even if there should not be.) The change is in c_object.c - msw Check that hitter has a valid name before it attacks - fixes some crashes (attack.c) - msw Enhance lib/collect.pl to ignore CVS directories - msw. Improve auto_apply functions so that it will create treasures (random_* items) inside other objects. There is still a limit in that it will only look for these objects inside other top level objects - a random potion inside a chest inside a monster will not be processed. But that should be a rare case, and nesting containers very deep has never been well supported in the code. The code affects is in the apply.c file. -msw Add Xaw to start of libraries when linking crossedit - fixes focus problem. File affected configure.in - msw Fixed a bug in the "depletion on death" code. The depletion never had any stat removal specified. --PeterM Remove berzerk code/variable from player structure. The code had no effect - whatever functionality it once had has been removed in the past. - msw Add flag save information for FLAG_CLIENT_SENT that was otherwise missing (loader.l). This fixes the disappearing archetype bug - msw Fixed buffering bug in lowlevel.c --David ------------------------------------------------------------------------------ Changes from Crossfire 0.95.2 to 0.95.3: Fixed missing god animations in the archetypes. SIMPLE_EXP option added. From config.h: * Define this if you want to use the new (0.95.3) experience system. * The system has the following changes: * * 1) 2000 exp need for second level. All additional levels are shifted * accordingly. * 2) Your stats in your skill categories don't affect the amount of * exp you get. * 3) Your level difference doesn't affect the exp you get for killing * monsters. * * If this commented out, you get the old system. * * This can also be set by using -simple-exp/+simple-exp as a run * time option. Change treasure lists so that stat improving potions won't show up in shop. They should still show up on the ramdom_potion spaces on the maps (may in fact be slightly more common there than before) Move socket related code out of server directory and into socket directory and re-arrange cod so that what is in what file makes more sense. Code from Peter Mardahl to have death result in stat depletion and not actual stat loss. Setable by via STAT_LOSS_ON_DEATH option in config.h or -stat_loss_on_death/+stat_loss_on_death command line options. Patch by Peter Mardahl to change immunity spells from PATH_PROT to PATH_NULL - this will stop gods from giving out these spells. Patch by Peter Mardahl so that players will never fumble the reading of scrolls. You only get half as much exp for reading the scrolls now however. Update the README file - the list of public servers was grossly out of date and mostly removed. The instructions for running/playing were out of date, containing information for servers with the old X11 code. Change CAN_MERGE so that identified items with different been_applied will merge (this is currently done by just setting the been_applied flags for the object in CAN_MERGE if they have been identified) Temporary fix for disease code - I was seeing endless loops in weight contributions because an disease object op->env points back at itself. In do_symptoms, we check to see if the victim matches the disease we are about to infect them with, and if so, don't proceed further. The cause of this pointer recursion needs to be found instead of this current fix. Change daemon.c so that hpux systems can also use ioctl (.., TIOCTTY, ..) call in addition to SYSV systems. players and logs command added. players show all current player names currently in use, logs show sockets that are currently listening for kill log information. Add limited support for some commands from the socket (hiscore, logs, maps, motd, players, version, who). After socket has been authenticated to have valid server, shout and tell also available. To switch socket into old style mode, first command entered should be 'oldsocketmode'. Server code then knows not to prepend packet length information, so most functions work on this new socket without any changes. Add verify_player function to login.c (takes name and password and verifies they are ok - used for old socket emulation). Also notify all players when a player joins the game (this must have gotten removed at some point). change prototype for cs_write_string to take a constant string. In readpacket, have it read in 100 bytes even if length information looks incorrect (allows easier initial switching to oldsocketmode). If the length of the input buffer is for some reason negative, call abort. Clean up nconns in socket.c - it was being increased 2 times when a socket was added, and decreased by 2 when a socket was removed. Add newline to initial version command so people telneting in for old socket compatibilty get something a little more presentable. command char pointer added to newsocket structure - used for player name or listener html address. Fix in memory overrun/corruption when freeing the last allocated socket - it would write data beyond the allocated data. if new_draw_info is called to notify everyone, also notify sockets running in old mode if it isn't a kill log listener. Update commands.h file so that it won't declare various values if included multiple times - only the first time it is included will it declare the values. Add extern declaration for init_sockets to global.h since other functions now need to access them. Who command extended to also show active socket connections without a player attached. Kill log (watchable from socket) added. Add support to use old socket commands on the new port. Fix by Seikoh Nishita for weapons that slay multiple creatures - before fix, they would not slay anything (args to strstr were reversed) Don't give out exp for orating to monsters owned by another player - fixes abuse since 2 players could quickly orate back and forth and gets lots of exp. The orate function was also cleaned up a bit to be more efficient (presumption is made that there is only 1 monster on any one space, so once we find one, there is no need to do further processing) If door is passable, print a message to the player if he tries to pick the lock and don't let them pick it (examples here are the doors which you can walk through) Fix by Seikoh Nishita that should prevent some crashes when exiting shops - appears that there could be circumstances when i was trying to referance a null pointer in an error message. Add popen_local for sgi systems - without this, sgi can only open one compressed map before it fails to open further compressed maps. Fix by Timo Kokkonen so that resurrection works with the new player save method. This should also fix the problem that dead players when using PERMADEATH being able to log in after dying. Allow FORCE objects to increase digestion/hp/sp/grace regeneration. Remove style.h file, since we now have an automatically generated proto file from random directory source. Also fix in makefine to use proper ar when creating the archive. Add 'race *' to maps/styles/misc/fountains - this fixes a crash when entering random maps. If use presses an incorrect key at the play again prompt, reprint the play again question. Change find_free_spot to return -1 if no spot available, update calls so check for this return value instead of 0 (value = means current spot available) Change pet movement so that pets should no longer jump walls. Update configure, makefiles, and code to use proper locations of installed files (no longer $prefix/lib, instead $prefix/share for read only, and $prefix/var for read/write. When using a special key to open the door, print a message informing the player what key was used to open the door. Minor map cleanups/changes. Some improper exits changed to point the right place, extraneous style maps removed due to new gods, other maps updated to replace now missing altars with their replacements. Change gate code logic so instead of using speed to determine if the object can move itself, we instead check the ALIVE flag (this fixes problems for animated objects, and is a more accurate method in any case.) Fix by S.Nishita so that containers on the ground get properly unapplied when player moves off them. Fix by S.Yoshioka's so that damage for cone spells is calculated properly as they propogate. Remove server side referances to INFOLINES and INFOCHARS, since that is now controlled by the client. Code cleanup to random map generator to prevent compiler warnings. Also, change comparision of val == 0x1 to val-1 = null, since the later is more portable. added some missing newlines to log messages in the newsocket.c file. fix pickup modes some - mode 4 appeared to work ok (pickup all), but mode 5 wasn't working right (pickup all and stop). I have tested the modes with the X11 client, and they all appear to work properly. House of Healing map (with link from starting city) added by Peter Mardahl. Change player move code so you will no longer swap spaces with a pet monster/other friendly object is you are braced. Fix off by one error in the buffering socket buffering code - this would cause buffer overflows if the data being added equaled exactly the buffer size+1. Similar fix when reading in packets Increase NROFATTACKS to 24 in define.h so the AT_INTERNAL attacktype work properly. Patch by S.Yoshioka so that godpower/holyword spells are not magical. Fix in attack.c by S.Yoshioka to call free_object instead of free for splitting monsters. Fix by S.Yoshioka so that magic bullet or other pure magic spells do damage to other parts of multisquare monsters. Fix by S.Yoshioka so that you can not get exp in other skills with cone spells. Fix by Seikoh Nishita so that magic walsl can not be placed on top of other walls/monsters. Fix by Seikoh Nishita so that we don't clear the NO_STEAL flag on insert_ob_in_map - this makes singing/stealting from the same monster multiple times impossible. Patch by Seikoh Nishita so that boulders will roll off gates. Have server send updated weight of container when dropping all items from a container. New random map decore styles for new religions added. Patches from James Cameron to fix compile errors/warnings. Fix missing animations for some of the gods. Remove *.orig files from maps/picks directory. Maps updated wtih dtabb 2.60, navar_city 2.40 maps from John Cater. ------------------------------------------------------------------------------ Changes from Crossfire 0.95.1 to 0.95.2: speed_left values should not be changed when loading/saving maps with the editor. Map updates from Anthony Tyson and others (990128 version) Note: I was unable to reproduce the staff to snake killing the client bug. If still in this client/server release, please let me know. Set player->count in esrv_move_item when picking up objects. This fixes a bug introduced in 0.95.1 for the improved pickup code which only allowed picking up of all the objects on the ground. lifesaving items should now disappear from client inventory after they are used. Improve decrease_ob_nr so that items dropped on the ground will get removed from the players inventory if they are used up (fixes bug where you drop the last of some item on an altar but it would not disappear from your inventory) Add check to add_exp so that we don't add experience to non living creatures. This should fix the thrown objects getting lots of speed bug. Random map code by Peter Mardahl added. Various changes made so it will compile on non gcc systems as well as non bsd systems. Another fix for pits (holes) so objects should drop through. The fix in the last release made fixed a possible infinite loop, but also made it that once an object on the pit could not drop through, no other objects on the pit would drop through. The change made will attempt to drop all objects through the pit, but also not run into a problem with infinite loops. Update pedestal and detector code to also match on the lockcode of the special keys. Change detector function to call push_button instead of update_button. The later would only change the state of buttons, which doesn't do much good when you want to open a gate. push_button will cause gates and other connected objects to open. Change move_gate so that it won't roll off things like grass or other immovable objects. Update configure script to check for scandir function (needed by disease code) - if not found, then check in -lucb. Disease code from Peter Mardahl added. add break value in while loop in generate artifact message (readable.c) so we eventually break out if no match is found. reduce minimum supported map size in crossedit to 1x1 Don't let characters be easily saved on unholy ground. Player can't issue 'save' command when on unholy ground, and we don't autosave if on unholy ground. Improve pickup code mode 6 (pickup magic item) - call is_magical to determine if an item is magical instead of relying on known_magical flag. If the player has a marked item in need of identifying, identify that specific item first when an apply altar is used. This allows a player to selective choose what to identify. Fix in apply code between server and client. Containers on the ground now work properly. Server side simplified a bit, and updated to be a bit more bandwidth efficient (use update item to open/close containers.) Client updated to handle updating its container status via the update commands. Fix in pay_for_item in that it will not mistake kobans or other coins for gold coins when making change (or converting the older coins into new coins with the same arch but with a different value) Have player swap places with pet monster even if player no longer has peacful set. At confirmation when player quits, inform them that quitting will delete the chararacter. When a weapon is improved by the god, if it had no prior attactkype set, give it physical attacktype in addition to what the god gives it. By default, make new players peaceful. Fix up the fire cancellation function - it seems some of the code wasn't quite right (inserting in map vs setting the owner.) The fix should prevent some core dumps this could have caused. Fix for main loop in socket.c that should prevent infinite loops when a socket dies in some improper way. It should now drop the connection properly and continue with processing. Autoconf fixes - check for canonical system, specail check for alpha-dec-osf to add -std1 to cflags, add check for latex, add check for BOURNE_SHELL (this is used in hte makefiles, as some os's will use the users shell, but some constructs we use require bourne type shell), add check for number of args gettimeofday uses, change order when we create the makefiles to be proper. Use autoconf check above to get correct number of args for gettimeofday. Fix from Anthony Thyssen for the editor - should hopefully fix problem with delete not deleting the correct object. Remove font displaymode from editor - since we are not distributing any fonts anymore, doesn't make a lot of sense to support it. When connection is lost from player, save off the character - prevents items being dropped on the floor or the players duplicating the items. However, some additional logic will need to be added to prevent players from saving their characters in treasure rooms. Improvements in save_player which should better prevent saves from happening at inopportune times (like after they have mostly exited). Add stat_loss_on_death option (yes/no if stat is subtracted when you die.) Default can be set in config.h, and can also be changed with run time flags. Add / behind -I@x_includes@ in crossedit/Makefile.in. This should prevent the includes from being reset if there are no x_includes. Extend draw_look to send multiple item commands - this should only happen if there are a lot of items on one square. Fix should prevent crashes/memory corruption in that case. ------------------------------------------------------------------------------ Changes from Crossfire 0.95.0 to 0.95.1: Fix server crash if player ran into friendly object. Strip extra spaces that may be between the command and option (ie, "use_skill disarm" would result in " disarm" getting passed to the appropriate command function. Some functions could deal with this, others did not, and it makes sense to strip them out. Send update to client to remove item from players inventory when it disintegrates (demon ichors for example). Change load code so that player handling on unique maps should work better (I believe there were various strange cases if the player saved on a per player unique map and that map was or was not in memory, it might not load the per player unique map) Removed player file lockin during login. Extra lock files get left laying around in aborted login attempts. And in retrospect, I don't think it is ever really needed. Some excessive/annoying debugging messages removed. Some general cleanup in some functions that were previous setting automatic variables. If the variables are none changing, we now declare them static, otherwise we don't set the value as the initialization area - this prevents warnings with some compilers. Some casts added for some functions to also prevent warning messages. Remove HAVE_SAVE_UID in config.h - no longer any code using it. In free_player, only call remove_ob on pl->ob if it is not already removed. This fixes crashes when a player kills there login session before it is completed. Instead of calling draw_look (which causes all data on that space being sent to the client) each time the space changes, instead mark that we need to send that change, and have code higher up (top processing loop) send the data each tick if it needs to be send. This should result in less data being sent, and is easier to process. Add flag_client_sent for debugging purposes - makes it much easier to trace down cases where server was sending updates without actually having sent the object yet. Most all of those cases are fixed with the new draw_look logic mentioned above. Add dump_object_from_tag to figure help figure out the objects generating messages. dumptag command is available from within the game if compiled with DEBUG to use this fucntion. Pup land maps updated to version 1.3. Fixes in configure script to autodetect X11 libraries better. Fixes also in Makefiles so all rules should work and all needed variables should now be expanded. Add checks for a few more header files. Makefile fixes also include changes so that archive is packed in proper order that it should not try to rebuild pregenerated files. Master makefile now set to make bzip2 archives in addition to gzip archives. Added watchdog code from Christian Stieber - periodically sends out UDP packets so other programs can watch for them and restart the server if it doesn't see them (hung or down server). Added ISQRT macro to spell_effect.c - seemed that the code was changed a while back but that function wasn't added. It was only needed of SPELL_FAILURE_EFFECTS is compiled in as an option. Simplify checking of MAXNAMELEN in crossedite/include/Posix.h Updated list of options you get when you do -help - removed old options that are no longer around and added new ones. Dropping an active container will now result in all the items in the container being dropped, and not the container itself. It could be argued this should be a client issue (client send a move for each item in the container). However, dropping everything in the container should be faster than individually dropping (ie, you turn the container upside down), and client dropping them one by one would result in that many commands of the player being used. Change esrv_move_object to use the pick_up function instead of pick_up_object. The difference here is that pick_up will look for matching containers, so players manually picking stuff up in the client will have items go into active containers as appropriate. However, this can also cause problems with smarter clients that really want the object to go into the players inventory and not a container (I don't think any will have that problem currently) Fix in apply for holes - return 0 if we can not move the monster through the hole - this prevents an infinite loop in move_hole in time.c Added internal buffering for sockets if the OS's buffers fills up. This greatly improves reliability in the client. Size of buffering is setable in config.h Fixed makefile dependancies - make install should now depend on the actual programs it plans to install. Fix some bugs in the animation code - most notable is animations with just 2 facings like the quetcoutal. Changes to archetypes is to change the half orc to have 4 facings the quetzalcatl to have 2 facings. Fixed animations to always use the direction value for determing object animations. Change examine code so that if the first thing in an object message field is @match, don't display the message. Fix map update code that wasn't calling update_los before sending the map to the client. Fix from Timo Kokkonen for socket code - check to see if we got an interrupted system call (EINTR) on a read/write - if so, loop until it clears or we get a real error. Apparantly greatly improved reliability of the server. ------------------------------------------------------------------------------ Changes from Crossfire 0.94.3 to 0.95.0: Added diagnostic message if you try to use a skill and it can't find a match Fix in send item command to better handle objects with a huge number of items in its inventory. Shop listing code simplified - send all data to the client at once instead of havign to store it and wait for the player to hit a keypress. Fix bug in ghosthit which would cause server to crash (patch for 0.94.3 was released for this bug) Some general code cleanup - fixing/removing unreachable statements, removing unused variable. Build/configuration now done by autoconf (run ./configure). This cleans up a lot of special checks throughout the program, and hopefully should be more portable. Cleaned up/rearranaged the include/.h files. Prior, most all structures where included in structs.h. Structures and support values now in unique header files (ie, player structure and support enums and like in player.h, object structure and support in object.h, etc.). This doesn't change the working on the code, but is just easier to maintain. global.h takes care of including these is the correct order. Many options now removed from config.h file. Options removed either relate to X11 code/old server support or machine specific details which we can now pick up via autoconf. Better speed checking in update_object_speed. When improving a weapon, client should now get updated (code was updating the incorrect object) Improve apply below to be more bug free (that is to say, we preserve the pointer to the next object - I think there were cases where the last of an object was applied, and thus removed, but the apply function did not return a code specifying something was applied, so the code would then try to apply an object with an invalid pointer) Fix for collect.pl script to fix problem traversing directories. (note for 0.95.0, there were many large scale changes, so many of the entries below are more of just an overview of what changed, and not a highly detailed account of the changes.) Fix/improvement in player movers so that players trying to run in the direction they move don't move incredibly fast. They will still seem to move faster (I am guessing roughly player speed + mover speed now). I am not sure of the original bug, but my guess is that the mover moves the player to the next mover (which has a low speed). But now the player still has his own action left, and moves to the next mover which has high speed, so wisks the player to the next mover, which has low speed, so he effectively moves 3 spaces in one tick when he should just move one. Changed save player method so that a directory is created for each player. Added per player unique maps (new apartments). Maps from Christian Stieber, however the implementation is a bit different - if an exit is marked as unique, it will lead to a unique maps. The unique maps are stored in the new player save file directories as above. Removed all X11 support from the server code. Change crossedit so that it can read in the pixmaps as they are stored in for the client/server support (so that only 1 copy needs to be kept). This method of reading them in is slower than the montage method unfortunately. Changed socket handling. Port 13326 has been removed from active service. Socket information is now part of player structure, which cleans up a lot of the old code which had to do with find the player that correlates to a socket and vice versa. Fix bug so that if invaliad variable is given to dm 'patch' command, program no longer crashes. Fix bug so that containers that have a huge number of items don't crash the server (a container needed to have more than 250 items for this to happen). The real problem is containers that allow an infinite amount of junk to be stored in them (Lepreds bag, but this item/map isn't part of the standard distribution). Even with the fix, there still becomes some point where problems will occur (around 2000 items, the amount of data that needs to be sent would exceed the size of the output buffer). In any case, with that many items in place, the player will see a noticable performance hit when such containers are opened. Fix bug that caused the program to crash when attacking ghost or other creatures with ONE_HIT flag set. Print out message to player if they have old keybindings. Some map fixes by Christian Stieber - eliminate ability to bypass quest and typo fixed in other map. Fix so that perceive spell (off of rods/staves/scrolls) properly finds the god of the player. ------------------------------------------------------------------------------ Changes from Crossfire 0.94.2 to 0.94.3: Fixes to some recipes - before some had non existant ingredients. As part of this, a treasurelist for ogres added. archsearch.pl function added to lib/adm. Useful little perl script that can do object context searches (ie, immune to X and attacktype of Y) Old loader code removed - only lex loader supported now (no bugs reported, so it seems to be OK) Debugging output improved in various areas to be easier to read/better inform what is happening. Hopeful fix in place to prevent player movers causing players to have -infinite in speed_left. Fix right now is to just limit speed_left to -50 - I believe the real problem is that some player moves have speed=0.0, and it is diving by that value. Fix so that if a player dimension doors onto a player mover, he no longer gets stuck in an endless loop - he will now move along the movers as expected. When a player dies in NOT_PERMADEATH mode, clear the braced flag. In the case of spell failure, don't cast mana storm in no magic areas (instead, just kill the player) Only write out an updated bookarchive if data has actually changed and needs to be written out. Don't print out new client server usage logging if nothing has changed. Reduced power of 'loose mana' (it appears this only happens when a spell is failed really badly). It seemed to me that the area of affect and damage could be many times deadlier than anything else out there. Hopeful bug fix for thrown objects getting very fast speed (I am unable to reliably reproduce this, so am not sure.) Basically, I believe the problem was that set_owner was only being set for the wrapper in the thrown object, but it is the actual internal object that gets used at some point in the attack sequence. As such, I believe that the knife, spear, whatever was getting the exp for the kill (exp = speed in weapons). To hopefully fix this, I have also added a set_owner call on the real object so when it goes to grant exp, it should find a valid place for it and credit the player and not the weapon. Changed spell parsing so 'of' is not needed in some complex spells (ie, create food or marking rune). From kfitzner@nexus.v-wave.com Fixed bug in which you could kill multispace monsters with paralyze or slow attacktypes. Added ncom and comc commands to client and server. These commands allow client command queing/dropping (note that server will only send a comc if it gets a ncom first, so old clients should still work just fine). The protocol numbers increased to 1021. Added more objects to the show invisible list - hopefully the pupland maps should now be fully playable. RPLAY_SOUND definitions changed to RPLAY_SND - should make for cleaner compilations for those using that. Fixed #ifdef for NetBSD in common/time.c to use proper symbol. Fix so that counterspell should no longer kill monsters with magic attacktype (ie, jessys and probably others) Added debugging in deathstrike code to hopefully be able to better track down face of death problems. My guess is that it is a problem with level comparisons. Fixed/clarified many nexted if/else statements that were ambiguous. Now braces are properly in place (From Klaus Elsbernd) Hopeful bug for disappear objects when emptying bags. I believe the problem was that invisible objects ended up showing up in the containers somehow - this by itself is not a problem. However, the empty bag function calls drop with the object to drop and keeps the next value - however, drop would forward past the invisible object so the calling functions next value is no longer accurate. Drop function now does not skip over invisible objects in containers (will skip over them in player inventory) - it instead removes the invisible object since I believe it is garbage anyways. I am not sure if this will fix the problem, but there was certainly some problem in the code here. Fixed bug with multipart monsters & pits. Before, they got split into a few parts like a magician trick. Now they stay in one piece. At current time, the logic probably isn't great, as all that is currently checked for is the head of monster being on a pit - in reality, probably all the monster parts need to be on a pit. -m9 and -mt options added (Code from Raphaël Quinet). Formulas have been fixed such that all are now creatable (none missing archetypes). However, the output still shows some formulas out of balance in terms of costs. Changed AT_GHOSTHIT meaning and added ONE_HIT flag. GHOSTHIT is now treated like any other attacktype (monster will not be removed just for having ghosthit). ONE_HIT flag now means the monster will disappear. This fixes the acid sphere deadliness (before, they did have ghosthit as an attacktype). All the objects with ghosthit have been updated. However, there are probably some other undead which could now have ghosthit added to their attacktypes since it won't cause them to disappear now. Updated the programming_guide doc. Hopefully, it is a bit easier to read and a little more accurate. Improved polymorph. Invisible objects should no longer appear. Also improved so that all objects of a type would be possible results (before, it would be the first 80 weapons would be chosen from, or the first 80 monsters, etc.) Now it is unlimited. Smarter initial selection should also result in a few less meltdowns from it now being able to find an acceptable object. Also, possible fix that could cause crashes on rare occasion (monster polymorphed into something else, and when inserted into the map, something on that space kills it) Also, we stop processing a space once we hit the floor - I don't recall floor types ever changing anyways, but there could be other problems processing subfloor items. ------------------------------------------------------------------------------ Changes from Crossfire 0.94.1 to 0.94.2: Changed calls to send_query on server side to include the string on what the query is for. This is to make clients be able to do smarter/nicer things when it receives a query. Bug fix in check_walk_on which would cause crashes when objects are put on spaces with multiple destructive forces (ie, earthwall cast on top of a double pool of chaos). Once check_walk_on finds that the item has been freed, it stops doing any further processing on it. Animation code cleaned up. Animations are now object properties, and not archetype properties (and thus can be changed in maps). Also cleaned up so that the is_turning flag is removed - more complex animations available via the num_facings. Below is the section from the TODO file. Note that there is still potential to improve animations (many 1 frame animations could take advantage of the new code to have multi frame (ie, players can now have images for all directions, and animations for each of those) New code is in common/anim.c: Clean up animation code and make it more general purpose (instead of is_animated and is_turning flags, instead add a value that states how many animations/direction there are. For example, right now the big dragon has 8 animations and 2 facings (left & right), with 4 animations/facing. Something like num_facings could be added so we know there is 2 facings. For arrows, num_facings would be 8, so we know that it shouldn't be animated (since there are only 8 images in its animation.) This would make the code a little cleaner, and allow better/ more complex animations (an object that faces 8 directions could have animations for all directions, were as right now, that is not possible.) collect.pl changed to handle generation of animation file. Wipe below added to crossedit by Steven Unruh removed non NEW_HIT_PLAYER in attack.c (ie, old attack code removed) Added hitback code (looks like it was missing from the NEW_HIT_PLAYER code) dm commands will now be accepted from the new client (provided they have dm priveledges of course) Add AT_INTERNAL attacktype used only for internal calculations (ie, does that amount of damage). Actual damage section of poison now uses this. Fix spoiler generation - don't convert monster archetype names to lowercase - images generated properly for them now. Also, fixed problem with some images (dragon) being rotated when they shouldn't. Clear INV_LOCKED flag when stealing objects. Fixed couple of bugs in throw code. First, players remaining speed calculation seemed incorrect. Second, you can now specify an object name to throw (ie, throw ring, throw chair). Third, the client now gets properly updated with the new/changed item. Make UNIQUE_ITEMS standard feature. Removed LOCK_ITEMS as a secondary feature - running multiple servers against the same set of files is no longer supported. Note for compatibility reasons of both methods, it will look for unique files starting at v00 and will write new ones with the .v00 extensions. If you have .v01 files, these will be read in the first time through (provided you also don't have a .v00), but all new files will be written with the .v00 extension. Referances to ITEMS_DIR changed to be UNIQUE_DIR - I think that is more descriptive. This includes the environmental variable. Change ok_to_put_more to do more complete checking and also not to stop spells because of a monster with certain immunities being on a space. If hit_player is called with the 'tail' of a monster, it would previously just exit if the attacktype included slow or paralyze functions (must hit the head with those.) Changed hit_player so we just remove the slow and paralyze, and still hit with any remaining attacktypes. change explode_object so it only hits the monster once with the bullet/ meteor. Previously, it called hit_map, which then hit the player, and then called hit_player again. This effectively doubled the amount of damage caused by the bullet - it now does the correct amount of damage. As best as I can tell, meteor/meteor swarm does properly damage the monster even if the tail was hit. Bug fix in singing so exp should now be granted the first time singing is used on a monster. Changed so that server can be compiled with new client/server support but without old (port 13326) support. Various sections of code updated to work/compile in such a setting. Fixed premature freeing of map->tmpanme. Now in delete_map instead. Added checking in free_object to see if we are called on a non removed object. IF many cores is defined, will dump core here. I believe there is some section of code calling free_object on a monster without calling remove_object, which is causing a lot of error/warning messages when it happens (very infrequently.) With this test in, it should become quite easy to track down when it happens. Added free bsd & net bsd to those systems whose gettimeofday takes 2 arguments (common/time.c) -lcompat added to libraries needed for FreeBsd. Include unistd.h on freebsd. Don't include malloc.h in xbmtobdf.c on freebsd. Sample ban_file added to lib. Read in of ban_file will now ignore lines that start with #. Also, animations file (used for new animation code) included. Config file rearranged to hopefully be in better sections and easier to edit. NEW_IMPROVE_WEAPON and SIMPLE_PARTY_SYSTEMS removed from options - now always selected. NO_LOG, ONE_PLAYER_PR_UID, CHRFONT removed from sections - these can never be valid. NO_ADD added to prevent players from adding others Server updated to send full lines of text with query commands to client so for clients that pop up a dialog box, they can print meaningful data on what the request is for. Bug fix so that you can no longer apply multiple objects of the same type with apply -a Give better messages when attempting to light something. New client/server statistic gathering added - will periodically dump usage stats to the log file. Server will now longer crash if client/supposed client sends bad data - will now just close the connection instead. Server will not longer crash when player runs into a door. Can now longer polymorph objects into items that are invisible. Removed client directory from main archive. Too many people thought that was the new client creating confusion, and I don't see a big need to have it around (it will go away when the X11 code is yanked from the server anyways0. If you still like it, the old version of it will work just fine (no changes have been made to it in a very long time0 Map changes: color_ removed from map files. library card cost decreased some. oldcity maps updated to take full advantage of XPM mode.. Lake_Country/DA map changed - exp reduced, sp increased. ------------------------------------------------------------------------------ Changes from Crossfire 0.94.0 to 0.94.1: in artifacts file - moved some settings of difficulty before Object line. (difficulty after the Object line have no effect) In low level socket code, retry read/write again if we get a EWOULDBLOCK in addition to EAGAIN errors. Some systems return EAGAIN, others EWOULDBLOCK Fixed possible crash in move_monsters. I believe the problem was that the monster got killed by a door, and the function was not expecting it, and would use the invalid object. Not sure if the code I put in will really fix the problem, or just migrate it to a higher level calling function (have not seen the crash myself) If on linux, include crypt.h in main.c Various minor memory leaks fixed. Better error message for non wiz people trying to use shutdown command. Shutdown command actually added to command structures and is now usuable. Internal animations changed from explicit defines to use SET_ANIMATION macro. Much easier to read, and better supports client side animations. Include sounds.h/sound calls no matter what RPLAY is set to. Only rplay special code is in sounds.h. This way, client can still get sound information without rplay being defined. removed NPC_PROG code - not used at all - only thing there was a few #ifdefs setting values. Moved typedefs for function pointer stuff from structs.h to funcpoint.h. No outside affect on code, just makes more sense internally. Disable default selection of DEBUG_DMALLOC on crosssite.def Removed old/unused charisma bonus values from common/living.c Minor fix so that a space is properly added between item number and name. Added a lex loading routine. Performance seems to be roughly the same, but ease of maintenace/readability seems better to me. Modifications to loader.c should not be done - instead, they should be done to loader.l Loader directive flags and loader return flags added to loader.l - those are now used instead of arbitrary integer values. Fix c_wix.c dm goto command to set the destination object/map name. Otherwise, if an invalid map was entered, the enter_exit would try to print a null string - some systems handle this OK, others will crash. Changed common/time.c to use GETTIMEOFDAY macro defined once at top of file instead of having #ifdefs throughout the file. Fix so that items of differing values will not be merged. Also, when merging objects, do not clear startequip flag. Fix in doc/playbook-html so all include directives are handled properly with the include_html.pl script. More details printed about improved weapons (how many improvements done, max number of improvements.) Also, skills will show how many improvements the character can handle. Bargaining skill will be auto applied when in shops. Change teleporter code so the teleporter does not have to be the first or second item on the space - teleporter can be any object on the space. -a, -u apply options added (always apply/unapply instead of toggling). Internally, apply and apply_special have been changed to take one more option which is this flag. Applied rings will not be merged - instead they will remain seperate. Fixes problems with getting full bonuses, and also makes it easier to apply/unapply one item. Increased frequency of generation for strange ring (nodrain ring). This should make it appear probably roughly as often as the ring of life, or maybe even more often. Put maximum carry limit in - beyond the limit, a character can carry no more. This limit is fairly high right now, but should improve playbalance and prevent characters from getting a negative weight or carrying so much stuff it takes forever to move (session appears hung to them) Added CS_STAT_WEIGHT_LIM to newclient.h, so client can know how much the player can handle (only used for GUI, so it can do a carry/limit type of thing) Title information now used in hiscore displays. Show invisible spell will now make handles visible. New server code won't crash if player does nothing when it prompts for the name. Also, include necessary dummy functions so server will compile of ERIC_SERVER is not set. Will now search keyrings when running into special doors for matching keys (players can protect keys by putting them in other containers.) Change jump skill so that any spaces with FLY_ON set will affect the jumping player. This prevents the character from jumping over player movers. In create_wall - if insertion if the initial wall fails (new all is destroyed), don't extend the wall. Fixes the earthwall on top of pool of chaos which creates strange map problems. Map fixes: Lake_Country/ebony/masterlev altar should now accept fragment of chaos. Put no magic areas in apartment so it should no longer be able to dimension door and get keys. /city/houses/wizz.entry should now be entered at the correct position. /city/misc/library - library cards are now identified, so it should no longer be able to buy then sell at a profit. /city/houses/wizz* maps: removed ./ from start of some map paths - causes apparant problems. Lake_Country/Butakis/blacksmith - can no longer get free dragon mails or other items - have to pay for them now. Remove pup_land/rainbow/Lv4/\nkey (\n was an embedded newline). Map doesn't look to be needed. Archetype changes: Added blocksview to gwall so you can no longer see through them. Fixed up castle animation in bitmap mode (212/312 images needed to be swapped) Increased exp for skulls from 3500 to 5000, reduced exp of deathtrees from 1400 to 1000. fixed typo in gauntlets which meant title was set right. aggressive 1 values changed to unagressive 0 values in some archetypes (no such value as agressive) ------------------------------------------------------------------------------ Changes from Crossfire 0.93.7 to 0.94.0: Added outline of future versions in the TODO file. a mana storm should now hit with godpower attacktype. The spell create_food will now create food with 0 monetary value, and be marked as starting equipment, so can not be dropped. Player titles with spaces should now load properly. Updated command times for use skill, ready skill, and stay commands so when client executes them, proper amount of time is subtracted. drop_object now preserves the freeze inv/look window, which prevents slowdowns when picking up a lot of objects/dropped. Added yield to water of diamond, fixed typo for dust of frost recipe. If a recipe doesn't have a yield, recipe should still be properly generated. Hiscore savefile now stores maxgrace and seperates player title from player name. Option added to only swap out maps when MAX_OBJECTS is exceeded (MAX_OBJECTS_LWM) Changed internal definition from SOUND_EFFECTS to RPLAY_SOUND to properly reflect what it actually enables (sounds for the client are always enabled) No longer put a 'a' for single objects. Changed ring generation so rings of power can be generated. Change can_merge so that more objects are mergable, add nrof 1 to some objects. Improved set_owner which can fix getting into endless loops. Change insert_ob_in_map_simple so it doesn't call check_walk_on. fixes player being slowed way down when dropping objects on slow move space. Animations moved out of archetype and into seperate array. This is necessary for the client as it makes a unique referance number for each animations. Also, in future, this would make it easier to be able to change aminations in objects/maps. Print out level gain messages in red so they are more noticable. Change can_pick so that invisible objects can not be picked up. Change singing so you can calm a monster multiple times - you only get exp once however. Change show invisible so it only makes monsters and players visible, and not things like magic mouths and ears. Patch so that if peaceful is set, you will not attack other players even if they have attacked you. Auto apply woodsman/mountaineering benefit when in the appropriate terrain. Fix get command so it takes from a container if appropriate. shutdown and kick wizard commands added. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Client/Server changes for 0.94.0 Updated protocol version to 1010 Server debugging statements in ericserver can be enabled/disabled by define at top. Client can lock/unlock items on the server. Client can now look at spaces now. Send update of item to client when it is identified. Send update command to client from decrease_ob_nr to update players overall weight. Now send animation information to the client. Now send sound information to the client, client can send setsound to server to enable/disable sounds. Client side image caching fully supported. Added updates when picking up objects/dropping objects so that players weight and container weight is updated if necessary. Also, if object merges, make sure we then send a delete of the original object that is now gone to the client. Update object changed to send floor animations to the client. Send update when power crystal changes speed. Send update of player object after player is loaded. Change server so that only send map update and player stats once a tick - should be more efficient and equally sufficient. Added LOCKED flag to item transmission command so client can no which items are locked. Added item1 command which superceded item command - sends more informatin. Added update command to protocol, and function in server - only sends portions of an object that need to be updated. Server now properly handles repeat fire on. ------------------------------------------------------------------------------ Changes from Crossfire 0.93.6 to 0.93.7: set_god wiz command added. Changed call to 'index' to 'strchr' in commands.c - keeps with what the rest of the program does. Pupland archetypes and maps added (v1.2 of pupland distribution). Changed get_random_mon to be more random when a monster of a specific level is requested. Casting transferrance spell on another playing and having their head explode will no longet get the recipient of the spell exp - instead, the caster of the spell will get the exp for any kills. change put_a_monster function so it properly handles multi-square monsters (put_a_monster is called by summon_evil_monsters, at probably others) Changed alchemy so you no longer get exp for failed/random mixtures If a container on the ground that the player is using (ie opened) is somehow removed, update the players view to now be the ground and not the container. Player titles will now be loaded properly from save files. Can no longer sing and make the same monster unagressive multiple times. The implementation is actually borrowing the NO_STEAL flag, which means you can't steal after you sing, and after a failed steal, you can't sing and calm it down. Also, make sure that only the 'head' of a monster is sung to. Fixed up CSword_116 xpm file (too many chars on one line) Added note/option in config.h for systems lacking O_NDELAY. Fixed up some of the quests in Lake Country - can no longer just run and get the dragonbane or buy the armor with a lot of scales. New Client/Server changes: changed esrv_send_face to take the client_num instead of client_id (should be slightly more efficient). This does not affect the protocol in any way - it just makes the handling on the serverside more efficient. Changed item command to calculate objects total weight before sending it to the client (total weight = weight+carrying). This is needed because there are many times that the client does not know what is in the container and thus can not properly calculate the weight. Change server so it sends updates for the parent items that the object is being moved from/to (ie, when removing something from a sack, send an update for the sacks weight). For the client to properly handle the player being re-updated, some special handling had to be added so the inventory list would be updated and so that we don't try and add another player object (client search routine for tags didn't look at the player) Fixed server so it now properly updates the original item from which a portion of it is being dropped. Fixed bug in server handling which kept the -1 return code from a blocked socket and decreased amount to send by that - reset to zero so amount to be sent remains the same. askface and mapredraw commands added to Protocol by Phil. Changed load player function so it calls fix_player before sending initial data to client. Removed some printf/debug statements from pickup code for newcs in player.c ------------------------------------------------------------------------------ Changes from Crossfire 0.93.5 to 0.93.6: If we fail to save a map, all objects on that map should now be properly deleted from memory. Fix possible crash when score is being generated if player is on swapped out map. Default output buffer for new clients is now 64k. Partial code in place for client side image caching. Alchemy changes from Peter & Brian. Main change is that multiple recipes can be made at once. Bad grammer in messages printed out when readable object is beyond players comprehension. ethreality recipe commented out in formulae file. Some playbalance issues on maps fixed by Samuli Tursas. Internal handling of shop menus changed - instead of a list of objects, change it to an array of strings. Minor changes in porting.c to hopefully make that file compile properly on more systems. doc/experience updated with some more notes from Brian. CAN_MERGE changed from a macro in define.h to an inline function in object.c (only file it is used.). It makes it a bit clearer, and hopefully a little safer. There is an option at the top of config.h for handling of the INLINE function declaration. Possible fix so that altars should not be re-concecrated if god is set in the editor. Undead monsters can now see in the dark. Fixed bug in parse_command which would cause crashes if a socket connection entered a string with a ; in it. Increased string size in new_draw_info which prevents crashes/stack corruption when really ling strings from a socket is entered. Changed spell level/costs between invisibility and improved invis such so that the improved version is now a higher level and more sp. Now possible to steal from a creature more than once as long as character remains unseen. Each steal attempt will become harder in any case. Remove some special player checking in get_nearest_player - I think it caused some crashes, and wasn't necessary (in fact, clever players could use it to get it such that monsters would not target them.) When characters stop levitating, call check_walk_on so they will fall through pits or other applicable effects. Fixed up some archetypes which could be picked up when that should be set (trapdoor, bullet, meteor). The last 2 cases can not be picked up, but clever casting of alchemy could have nuetralized them. collect.pl will now print warning if an object has walk_on set but does not have no_pick set. Added new map from Bjoern Helfesrieder to starting town (Yarin's House) Fix in item matching code that could cause core dumps. Fixed clearinfo command so that it still works even if player is using scroll mode (only if player issues the clearinfo command - other uses of clearinfo in function won't clear in scroll mode.) Improved shop listings so they are sorted by type, then sorted by name. Fixed bug in backspacing the to the front of the first line of an extended command - it now works properly and puts you back in normal command mode (this got broken in the addition of extended line input.) Player should still be able to save if they were the wizard. However, wizard status will be stripped for save, but the fact they were a wizard will not be stripped. Imp made even wimpier by Peter M. If you set of traps, open doors, push a player, or roll a boulder, you now become visible. Change it so that when something/someone reads a scroll, only inform the other people on the map (perhaps this is still overkill?) ------------------------------------------------------------------------------ Changes from Crossfire 0.93.4 to 0.93.5: Replaced handbook make_index script with perl version. Much faster, and also fixes problem with echo command doing different things on different systems. Minor change in crossedit such that if it is not compiled with XPM support, it will give an error message if run with the -xpm option. Changed code so that experience objects no longer change stats (reverses 'fix' made in 0.92.9) Fixes problem of characters getting extra stat points from the experience objcts. Fix bug that could cause infinite recursion loop in spellpath_msg. From cameron@ripper.stl.dec.com (James Cameron) Fix bug in complex keybindings in which all the commands in the keybinding were executed that tick. Thus, if you bound a key to north;north;north;north and pressed that key, you would move 4 spaces north no matter what your speed was. It now works properly, and you move at proper speed (keybinding is copied into buffer in player structure, and removed as we go along.) Note: This buffer could also be used to hold keypresses not yet processed, but that hasn't been done yet. Added ability to enter lines longer than the info window is wide. This allows for longer keybindings or say commands. It isn't the most sophisitcated thing (the extra lines show up with a 1> and 2>, etc for the extra lines, and we just redraw the previous line if you backspace that far. After you complete the command, it does end up redrawing the entire command, which can take a few lines, which gives some confirmation on what you typed in. This feature was added to both the standard server code and the new client. Change use of tempnam to tempnam_local which we supply. Standard tempnam will look at the TMPDIR environmental variable, and use that to override any other value for the directory - this causes problems if different people runn the program and using the temporary maps accross runs. tempnam_local will not look at the TMPDIR variable, and will instead always use the value we pass it. This can be changed if we were not compiled in SECURE mode by changing the CROSSFIRE_TMPDIR environmental variable. Code was also changed so the CROSSFIRE_TMPDIR variable will not be used if compiled in SECURE mode. Fix so that you can no longer move really fast or fire really fast by using the mouse buttons in the game window. Using the mouse buttons in the game window should now result in the same speed as using the keyboard. Patches from Peter Mardahl: Dusts now cast as ability and not spells. This mean that they will not have magic as part of the attacktype. Spells that are cast on oneself now ignore direction. Thus, healing and protection potions can not be cast on something next to the player using the object. Detector object added. Similar to inventory checkers, but only periodically samples what is in the space, and doesn't look at the inventory, only objects actually on the map. Creators can now cause objects they create to inherit names. They can also periodically create items. Arch diffs: imps weakened, cold dragon spews forth cold, creator modified to have default speed 0. New FireTemple set of maps. These have been onto the Volcano in the southeast area of the continent. The maps that were there were moved to world_e2, under the crater. Gradual light/darkness code put in place. I fixed a few of the bugs that were in peters orignal version, so it works flawlessly for both server and new client. ------------------------------------------------------------------------------ Changes from Crossfire 0.93.3 to 0.93.4: Inventory checkers can now act as doors. If no_pass is set in an inventory checker, player can not move onto that space unless they meet the match requirements. Signs that are usuable only a fixed number of times added. Fix for pedestals & buttons so they are only activated once when a player moves onto a space (previously, they were being activated twice.) Fix for connected objects so that they will not be sacrificed on altars. This fixes a case where you might want to put a check_inv and altar with the same sacrifice on the same space. Before, the inventory checker would be sacrificed on the altar, causing the linked button list for inventory checker to be corrupt. Many maps updated to look better in xpm mode or just better in general. Change in crossedit so that if you set the randomitems variable for an object, it only sets the value at the head of the object, and not all parts of the object (it would be nice to allow non head parts to have this set, but I am not sure how to get what part was clicked on in the editor, since it seems the head is passed to the function.). xpmtopix.pl script added. Eventually, I hope this will replace the C version. For now, all it is good for is to verify that the XPM images are using the proper colors. Numerous XPM images were not using the proper colors (a lot were using brown, which is not an official color - see the xpm template for what is.) Cleanup of proto directive to turn __signed into signed. Also, change #if __STDC__ to #ifdef __STDC__ in proto files. Fix so it should now compile if SECURE is defined. Ability to more easily added needed libraries in crosssite.def - Extra_Libraries option added. Assume Linux has a prototype for tempnam (at least my version does.) Many objects added, and many XPM images updated/improved. Change in new CS code - don't send the version string until after we fully set up the structure. Change so crossfire will compile if SAVE_HOMEDIR is set. Reverse actions of -m8 and -m9 (Believe they were doing the wrong thing relative to the scripts and what the docs say.) Change in hiding code and detection by monsters. ------------------------------------------------------------------------------ Changes from Crossfire 0.93.2 to 0.93.3: Added a fill below function in crossedit. This make filling in backgrounds for maps much easier. Basically, it just puts whatever object you select as the bottom object of the bounding box. If the bottom object on the map matches the object being inserted, the object is not inserted. As a side effect of some code in GetMapObjectZ, if it matches the top object, it won't be inserted either. This makes things much easier to update map backgrounds for XPM mode. Hiding made easier for players. Stealing is made easier for players, but harder beyond the first item. Many image colored and perspective corrected David Sundqvist. Also, several new objects added (specialized altars, some more indoor furniture/more orientations, some sliding secret doors, and new wall types.) Barn image naming conventioned changed to follow what is considered proper. A few maps added by David (two temples in starting village, along with a mercenary recruitment building.) Also, some maps fixed to look better in XPM made. Party kill option added by Rauli Ruohonen. IT lets you see who has killed what recently in your party. Saving throw for objects cleaned up. Previously, an objects immunities/ protections were not being used correctly to determine if it made its saving throw (that is why icecubes could be destroyed by ice). It is now set up properly. Gods will no longer improve weapons that have been enchanted by other gods (Or I believe by yourself.) Fix memory overrun (1 entry) when initializing values for the images. Program will not recover properly when it attempts to load a temporary map. This means that load_temporary_map returns the map object to use, since it might change. When setting the owner of a monster, clear its ability to use skills Fix in decrease_ob_nr so it should now work on 64 bit systems. Mapguide updated with various suggestions made on the mailing list. Linux systems assumed to have at least random available (change in the config.h file.) 't' is now bound by default to 'ready_skill throw' missing demon types (imp, big_demon, Greater_Demon) added to the list of demon races. xpmtopix will print a warning if it detects and XPM file using a tab character in the color name - makes it easier to track possible image corruption. Check for power of improved weapons now in its own function. Also, we now properly check weapon power when improving one (before, you could improve it one level more than you could actually use.) When a container is applied, make sure it is a player applying it before checking for new client/server information - otherwise an invalid pointer is dereference. Complex keybindings added - thus, you can bind several commands seperated with semicolons to one key. Fix in encounter.c so if compiled with RANDOM_ENCOUNTERS, the new settings structure is used for map location. Added check fot out_of_map in various places that needed them - prevents some more core dumps. skill identifications will now look on objects on ground in addition to those in the inventory. perceive self should now tell you what god you worship. map reset times on maps (temporary maps accross multiple runs) will not be altered if there is no map reset time. ------------------------------------------------------------------------------ Changes from Crossfire 0.93.1 to 0.93.2: New argument parsing routine - we now parse arguments in phases. With this, I have moved many of the global settings into a settings structure, and allowed highscores to be displayed by class/name. The man page and -h option have also been updated. Also, all the files that could previously be specified via environmental variables can now be specified with command line options. The temporary directory can now be specified via -tmpdir command line option or CROSSFIRE_TMPDIR environmental variable. If you cast word of recall and then save before it takes effect, it will no longer corrupt the character (and will in fact take effect when you restart). Don't let players throw starting equipment. At the same time, don't mark throwable items as starting equipment - instead, just give it zero value. Fixed inscription - now properly writes scroll when passed no string instead of crashing. Artifact monsters now possible (monsters whose abilities are changed based on the artifacts file.) Top of the artifacts file has more information on this. For now, I have only set up the orc, ogre, and goblin to get special leaders. Temp maps can be reused across multiple runs. See config.h for more notes. Bug fix in inscription: If you inscribed a scroll and already had one like it in your inventory, the game would crash after they merged. Also, if you failed in inscribe a scroll, the game would also crash (object it was using to calculate experience had never been initialized). For now, I just changed it to return -10*spell level as the exp award. Items will now be merged with other items even if one has been inventory locked. This way, if you have some torches that are locked and you pick up some more, they will merge in instead of showing up seperately. Bug fix for saving throw on objects hit by cold. There could be cases where an object being processed is no longer on the map and would cause a crash. Change find_first_free_space to return -1 if there are no free spaces. Calling function should check this and then do the 'right thing'. This fixes problems with runes creating monsters on top of monsters (or below the player). Magic map cleanup. Now have magicmap field in NewFace structure. This field holds the color to use for magic map in low 4 bits, and various flags in high 4 (right now, only floor bit is used, since drawing may differ on bw systems with that value.) magicmap filed is now supported in .arc and faces file. collect.pl modified to automaticaly put magicmap into the faces file, will also copy is_floor into faces file. magicmap takes a color name. This seperation allows magic map colors to be set independant of foreground and background colors, and simplifies the code a good deal. Also, it makes new client magic map support easier. Now all the archetypes need to be updated (I have already done the armour, connect and construct directories.) Magic map for client now implemented. Definition of protocol added to Protocol file. Only limitation implementation has over direct server is it only flashes the position of the player who cast the spell. This seems perfectly reasonable to me (use color or other attribute to know where other players are.) Old client (telnet front end) changed so that it no longer requires libcross.a. save object should do a better job if it gets an object without an archetype. buffer size for LOG increased - there were cases where this buffer was not large enough and was causing crashes (sending large amounts of garbage data to the socket was one way.) Load map will now reload the original map if the temporary map is for some reason no longer around. Fix bug where randomitems may not have been properly initialized for now objects (was inside an #ifdef for CASTING_TIME) strerror_local added to porting.c. Lets up give up more reasonable error descriptions for certain errors. If an object is cursed, set its vulnerable values to its protected and immune fields, adn clear those fields. Fixes 'problems' with finding cursed rings which are not really cursed (pro fire/vuln cold rings.) If trying to switch to private colormap in XPM mode, check to see if we are successful. Fix crossedit so that if you have a map loaded and you then try to load an invalid file, it no longer crashes (now reverts back to old file) Archetype changes: Golden unicorn horn now has its own set of images. Editable field updated for the gods archetypes (they were showing up in all the menus.) living_chaos object added (need for Brian Thomas's maps.) Update the editor/picks map so that all archetypes are included in at least one of the maps. Modified the map_info script to print out unused archetype. New server: Only increase buffer size of socket if it would increase overall size. fix in skill experience calculation to use magic field properly. Alchemy spell changed. If there is a cauldron in area of effect, only do cauldron alchemy. Otherwise, do item to gold nugget conversion. Added a few more notes/thoughts to the mapguide/ ------------------------------------------------------------------------------ Changes from Crossfire 0.93.0 to 0.93.1: change race initialization functions to to fix cases where race is specified in race file but no race is specified in the arch it points to - before it would not be added to the proper race list. include handbook.ps in the standard distribution. Client server rewritten to no longer use eutl package. Other bugfixes for client server: server now properly sends delete item command to client, client now properly adds up a containers (and hence players) weight, pixmaps are now supported. Snowball spells added - these are the same idea as the fireball spells. (by peterm) Magic wall will consume several squares now. spells array (in spellist.h) updated - was missing a spell (cure blindness). splitter.pl (by peterm) added to arch/dev directory - takes a larger xpm file and splits it into 24x24 chunks. icestorm and small snowball added to possible list of starting spells. Only set minimum speed of 0.01 for players. This fixes the bug introduced in 0.93.0 where multisquare monsters moved too slow. Only print out a creature lost a spell if it is in fact a player. Only applies for casting time. fix_me command added - basically just calls the fixme function. Can be useful if you that your characters weight is for some reason incorrect. Fixed sprintf that was copying over static character data if you tried to form a party that already matched a name. Also, fixed a possible buffer overrun situation. More memory leaks fixed by Rupert Goldie - also fix to prevent orated monsters from attack themselves. New xpm images for woods and some buildings by David Sundqvist. The new buildings have a bit more texture and 3-d look, the new woods look a little bit more in scale and mesh together better. The old images are in the xpm_pref directory if you prefer those. More code added to free memory when server shuts down (useful for trying to track down some memory leaks). ------------------------------------------------------------------------------ Changes from Crossfire 0.92.9 to 0.93.0: Minor map changes: Some maps cleaned up to look better in XPM mode. Removed no magic areas from around the demilichs in lord ramsdre mansion. map_expand perl script added (located in lib/adm) Cleaned up use of externs and declarations of many structures. Depending on the linker, these would not be merged into one value, and thus not be initialized/set properly (fixes 'mark pushed you bug'). This was a problem at least on SGI systems, probably others. If on a sun and not using sun's acc, assuming Stupid Sun Headers, even if on a Solaris system. Changed change_abil so it returns true if a value actually changed (useful for printint out information when apply objects like potions.) A lot of return checking of this function in apply.c is removed - that checking now seems obsolete. Set visibility to zero at first stage initialization. Put a lower limit of 0.01 for player speed. This still gives an action every 12 seconds if you pick up way too much junk. When praying at altars, have gods grant out spells only if it is a spell they are attuned to. Cleaned up some memory leaks, courtesy of Rupert G. Goldie. Cleaned up the cast command code. Also, if you do something like 'cast p', it will now show all spells you know that start with p, instead of casting the first one it finds. Shift middle button in the inventory window should now mark an item. Fix button handling for look and message window so that only if it is clicked with the right 30 pixels do we consider it a scrollbar event (before, anything more than 270 from the left was considered scrollbar - works fine for default sizes, but if you resize, it would cause problems. If on SGI systems, don't default to using rand - it should now pick up lrand48 or random instead. Change spell casting such that if you aren't high enough level, it more obviously states it (previously it said you 'lack the skill', which can lead to confusion.) Fix so that the first recipe is now accessible when performing alchemies. Added many thoughts/ideas to the TODO list. Increase buffer size for examine command - some object could overflow the old buffer. remove no_magic from all monsters - immunity values should be used instead. am not sure Made changes for strcasecmp detect - was checking as defined(sun), now is defined(__sun__) - this is proper and what the rest of the code uses. define MAXNAMLEN in crossedit/Posix.h - needed for ultrix systems. Made it so that boots are not always considered magical (since there are now many plain boots out there.) Also, removed the always_magical function - is_magical should now handle it all. Allow items of type BOOK to be identified, since you can now find non identified readable items. Change loot_object so it doesn't remove experience objects - this way skills don't get removed when a player dies. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.8 to 0.92.9: Make sure all skills are unapplied when changing the class. When generating a spell listing (cast with no options), display the level of the spell (or den if it is denied.) Also, display mage spells in one batch, priest spels in another group - I think this is more relevant now since these are seperate exp objects and draw on different power sources. Still no pause key (doing those is a real pain) - that is really a client issue or we should just add a scrollbar to the text window. Removed level 20 from artifact 'sword of Beserkgang' - was preventing characters from using it. Put cause many wounds spell in PATH_WOUNDING. Book chance for holy word increased. Let experience objects change stats. Many debugging messages added or updated to print out more useful/ detailed information. Changed usage and set_protocol function names in client/client.c. This prevents name collision with libcross. Web site locations added to the README file. Load and save window positions even if split windows is not set. This way, window posititions are lost if you run the game in non split mode (and I don't see any reason to discard these values.) Also, -split can be used in addition to -w to get split mode. Changed check inventory objects to recursively search through containers, and cleaned up the code. Also, added notes on crossfire.doc on using it, and made basic archetype to use. When using inventory checkers in crossedit, have the attributes by default come up with connected and lockcode fields. Made change to unique items: If the object is a floor and has unique items set, then all objects above and including the floor get saved as unique objects. Also, when merging maps and freeing old unique items, make sure we remove them from the button links. Made an apartment map which characters can buy permanent apartments and also store equipment in. When exiting the program, save off all maps so the unique items get written out. Xpm fixes: Moved floor setting from map loader to update_object. This makes it so that crossedit will display the map properly in XPM mode as you make updates. Also, made default visiblity 0 - this makes the double floor work properly. There still seems to be some bug when pasting objects in the editor with respect to updates. Change made to goths taverns and tavern in lake country. Change is so that some of the wimpier informants don't have really good stuff to take. Periodically write out the book archive during play, and not just when the program exits. Bug fix so 'drop x items' should no longer crash. Also, 'drop 1 item' should now only drop 1 item of 'item', and not all of 'item'. Bug fix so 'unlock item' should now work OK. When throwing objects, clear the APPLIED flag before the throw. Prayer granting from praying at altars changed around - you will get more unusual prayers, and a Wisdom of 25 is not a yes/no cutoff - value of sucess depends on wisdom. Archetype changes: remove no_magic flag from demon lord - I don't think this should be set in any monster - instead, immune should be set properly. Added damned flag to gates that are no magic (probably not necessary, but I think it makes sense.) Added check_inv object. Removed some duplicate skill types (same skill, different arch names.) Have get_pointed_target return the head of the monster if it is a multi part monster. Change smite and finger of death spell so they have no effect if creature reflects spells. Fix to prevent bug crashes with magic rune spell. Fix in spring_trap to correctly target the victim. Also, fix in find_traps which prevented the gaining of experience. If character has bonus grace, display it with percieve self. Also, load and store the last_grace value properly. Changes from Brians hide/attack patch: Adjustments for attacking based on varying factors, monsters wake up & call for help if it, can't remain hidden if you attack, changes for monster detection of hidden/dark/invisible players, players no longer remain invisible if attacking, adjustment in exp for stealing, stealing and hiding chances changed based on terrain and other modifiers, when generating flesh items, set no_steal, give chinese dragons some treasure, giants a little more gold. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.7 to 0.92.8: races file changed, a bit more flexible. Additional dump flag (-m8) to dump god information. If attacktype is holyword, creature must be in slaying field of holyword. Better handling for items that remove/add protections,immunities, vulnerabilities. Only print changes if there is an actual change. holy power, blinding attacktypes added. Add poison to list of items that might not be identified. Two when windows are killed: 1) data is freed properly without causing crash now. 2) If player has saved but window is still active, will no longer make a save of the player. This save would be a no-item save that the character had been playing. Bug fix to prevent crashes if clicking a button in the message window and show_Buttons not enabled. Also, moved button handling in message window into its own function. Bug fix for pet monsters that should prevent cores if cycling through many maps very quickly. appendix for god information added to handbook (both latex and html versions.) gods2 patch applied from Brian Thomas. The main thrust of the patch is to make gods objects/archetype, and not array entries in the source code. A lot of code needed to be changed to support this difference. God patches so that game doesn't crash if no gods are set. Hopeful change for FreeBSD so it automatically pulls in the crypt library. Can no longer cast spells which are beyond your skill level. More powerful spell failures added. Can no longer read scrolls/other readable if blind. Fix bug that if a weapon had slaying, it slayed all monsters, not just the ones it was supposed to. Don't add the bows attacktype in when figuring out the attacktype of this player. This pretty much always gave the character a physical attacktype in addition to everything else. Fix 'peaceful' when using buttons so it doesn't crash the game. path_to_player changed to work better on diagonals. Spell choosing by monsters a bit more intelligent. No longer get experience for disarming/finding your own traps or those of other players. Add NO_STEAL flag, with obvious meaning. If a monster notices you stealing stuff, all his items are set to this, so nothing more can be stolen. Flag is automatically cleared when items are dropped. Add run and fire messages to message (stat bar) window. Make USE_BUTTONS playable setable item instead of compile time item. Don't insert heavy (>5 kg) missile objects into player when they hit - have them drop to the ground instead. -- Made more general object matching routines. item_matched_string sees if an object matches a string (which can be comma seperated list of many things.) find_best_object_match finds the best match in the players inventory. item_matched_string gets used for for matching multiple items. It is used in drop, get, take, lock/unlock find_best_object_match is used for apply, examine, mark, search-items. Also changed code so that certain actions are in sync with what display mode is set (mostly drop.) -- If levitating, you can now remove items from containers in your inventory (after all, they are levitation with you.) Clear is_changing flag if object is being thrown. Changes made to inscription code to work better. Changes mode to experience awarding for player skills. Fixes made to Peter Mardahl's dragonquest maps. Big Wizard, Belzebub, and Demon lord xpm versions colored. Minor bug fix to container in Thomas map. Some new archetypes/images for peterm/dragonquest maps. Make food creation spell more dynamic - food names/values no longer hard coded in. Additional demons added by Peter Mardahl Bug fix to prevent crashes with improve armor/weapon scrolls. Bug fix to prevent crossedit from crashing when exiting with edit windows open. Fix to prevent monsters from throwing certain good objects. Make sure praying over an altar only gets cleric spells. Increase saving throw array to correspond with max level. Monster hp/sp regeneration method changed some - more accurately tunable for low regeneration values. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.6 to 0.92.7: Monsters now tend to be more agressive about firing spells. Several changes - now monsters will fire along diagonals. For multisquare monsters, we check to see if any part of the monster has a good shot at the player, not just the head. This changes tend to make it more likely that a monster will cast a spell and hit other monsters (makes a pack of wyverns more dangerous, as many will cast spells at you.) I am not sure if this is a bad thing - all it means is that you can't mix fire using creatures with monsters that will be damaged by fire. Let archetypes in the races file have spaces (for Arch Angel) Throwing code added - players and monsters can now throw objects. Some new throwable archetypes added. You need to add throwing_skill to any old players - you can run the utils/add_throw.perl to do this crossedit: If a object have editable of 0, make it so it doesn't appear in any of the menus. Max yield added to recipes. Better checks for insert_ob_in_ob to make sure we really have a player before calling some of the update functions. Weight limit for custom containers is now saved. If we load an object and find it has no archetype, just drop the object. This shouldn't happen, but can prevent core dumps for maps with missing objects or players from a different version. Add 5 static buffers to query_name - it is now safe to call it a few times in a sprintf or the like without losing the old value. Added 'statistics' command. Shows useful information about the character (none that can't be found in the docs.) Also changed 'skills' to show how much exp you need in each category for the next level. change_abil changed so that it only prints out what values/attributes have changed. Ie, if you remove a ring that gives protection from fire, but have other fire resistance, it won't say you are more vulnerable to file (since you are not.) Charisma bonus/mechanism changed (again.) Values in living.c are more easily/directly translated into what it means for buy/sell cost. Curve also balanced out some more. Query_cost changed so the value mechanism is a bit different (unfortunately, we need to multiply the value of objects by 4 to keep them roughly the same price as before.) Added 'mark' command. You use this to mark objects that are used for other objects (ie, torches with flint & steel, weapon with improvement scroll, etc.) This removes the necessity that the item you want to apply be the first thing in your inventory (in fact, that is no longer supported.) This should also make things easier for the client. Bug fix that prevents crashes on spaces which have a teleporter and sacrifice altar on the same space (/Lake_Country/DA). Some minor changes to lighting code, some maps also updated to use lighting code. Added halfling and half orc character to the game (From Brian Thomas) Changed valuation for FLESH items. Before it was value*level of creature. Now it is value*sqrt(level*2). For low level, this keeps roughly the same value, but for high levels, it keeps things more reasonable (drops the value of zombie corpses to about half previous value) Bug fix for monsters that have attacktype of ghosthit along with others (main fix ghasts, for Lake County, REtower/tower3, but this could happen for any monster.) Fix for attacks doing no damage against monsters they should. Bug fixes to readable code - should no longer core dump (At times) when books are created, should also be more robust and fix some other bugs. Also, give more detailed messages on how many levels beyond your comprehension a book is. randomitems now stored in object, not archetype. This means that treasure types can be changed in the map - a new archetype doesn't need to be added. However, the treasure to set must still be in the treasures file (or you can use none so treasure is not generated.) Removed color_fg and color_bg variables from game - these have long been obsoleted, but code to handle them has never been completely removed. Changed code so that best wc possible is +/-120 - should now prevent overflows. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.5 to 0.92.6: If player deletes window and we can't save, delete player objects instead of dumping them on the map. Make NEW_PROCESS_EVENTS standard - remove old proces code and ifdefs. Remove temporary object from cast_spell - pass along both spellcasting and owner objects. Seems to fix some bugs and increase reliability (also is a better way to deal with it.) Change made so that converters are also knowledge about 'money' psuedotype. change spellcasting altars so they also push the button. Fixes altars on some old maps. Some minor tweaks made to the artifact file - mostly clarification of names or setting values correctly. spellcasting skill renamed to wizardry. Fix made so that 'old' potions (strength, int, etc) use correct price. If you examine food/flesh items, you now get detailed information (food value, protections, etc.) Code by brian thomas so that book titles will remain constant across different program runs. Bug fix for crashes caused by multisquare monsters stepping on deadly objects. Basically, fully insert the object, then start doing the check_walkon's one at a time to see if the creature dies. Brian Thomas' valley of the sisters quest added. Additional archetypes and treasures added to handle this. 'sort_inventory' option added (player setable.) IF set, when items are picked up, they will be inserted by type, then alphabetical. Very handy for scrolls and rings. Some fixes made to the kundi maps. Flesh/alchemy fixes by Brian Thomas. Flesh type now inherit properties from parent creature (weight, and possibly protections/vulnerabilities are added). Change made for alchemy - you can't toss a bunch of junk in a cauldron and get a good item out unless you sucessfully use alchemy. handbook added to the doc directory (tex/postscript.) And html version is also there, along with an html version to the spoiler. Tex version of spoiler also fixed so it is generated properly with new Latex. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.4 to 0.92.5: Som bug fixes made dealing with cursed improvement potions. Always let players learn spells if they are in their starting spellbook. New attack methodology put in palce. To put in simply, if there is only 1 attacktype, things remain the same. If there are multiple attacktypes, we cycle through them one by one, and take the one that does the best damage and use it. Some attacktypes no longer do damage - they are effects (ie, paralyzation, slow.) In the case of of these, the effect will always be applied if appropriate. Code looks to behave pretty much the same, but is easier to follow. IF new code is buggy, or you don't want it, there is a define at the top of attack.c you can change. If god blesses you, lets actually remove the depletion object from the player inventory. Other god related fixes put in place - look to also deal with blessed weapons. Additional dump flag added. fix bugs with USE_BUTTONS and the peaceful button. Only allow write_rune to use objects of type RUNE Bugfix in get_pointed_target if it can't find a target - prevents endless loop NRSPELLPATHS set to correct value. Remove null terminator from gods array - not needed anymore. Fix savethrow array size to match maxlevel properly (was 1 short) remove damnation and remove curse now cleric spells. Fix some header code to better work on solaris 2.5 Support for compilation with the dmalloc (debug malloc) package. Allow altars and related items to match objects based on type. Use hp field of altar object as the type to match. Library patch by Brian Thomas. Various skill fixes by Brian Thomas. Alchemy patch by Brian Thomas. Here is a copy of his README: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The amount of work I put into this was substantial; other than new code -- I created new archetypes, revised archetypes, altered the treasures file and created 2 new object types and a flag. It therefore may be enjoyable to install this patch (incl code) and *not* define ALCHEMY in define.h. In particular, this patch does the following things: 1) more varieties of potions are available in shops. 2) new gems and types of food. 3) monsters will now leave behind body parts when you kill them. 4) if ALCHEMY is defined players may make potions/artifacts. I have included instructions for installation in INSTALL.PATCH, and a brief document for using the code (Alchemy.doc). Finally, as always, feedback is appreciated. b.t. thomas@astro.psu.edu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ------------------------------------------------------------------------------ Changes from Crossfire 0.92.3 to 0.92.4: Various bug fixes to readable code. Let altars be able to cast spells. sp field determine what spell to cast. Fix obscure bug that an arrow can be 'killed' if a monster that has hitback moves onto it while it is moving. Thus would then cause problems because apply would try to remove the object after it had been killed. Give quetzalcoatl melee attack skill. Give experience for clawing attacks. Include literacy skill with fighter skill - this should now give all starting classes literacy skill. I think it improves play balance. Don't mark a players starting money as being start equipment - otherwise they can't drop it on identify altars and it can get merged with money gained at a later date, yet still be marked as starting equipment. Bug fix in keybindings so that we check return of XKeysymToString to make sure we don't use a null value. Some keyboards have keys with no names, and on some systems, passing a null pointer as a string causes it to crash. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.2 to 0.92.3: Removed ability to use unpaid objects for sacrifices. Changed weapon improvement code to be based on skill levels (if skills are used.) Code in place to generate hit points by average of fighter and overall level - to enable this, change the #if 0 to #if 1 at around line 1040 in common/living.c Books hack by Brian Thomas. This mainly means that when emptry books are created (or are otherwise on the map), that they will be filled with some type of information. Some (like monster/spells/gods/artifacts) are generated via the program itself. Information from a messages file that is stored in lib can also be found. Experience can be gained by reading this information. Read/write patch by Brian Thomas. This mainly encompasses the fact that players can now write messages in books, that you must be literate enough (as determined by literacy skill level) to read various books/scrolls. Scrolls are now not identified, but literacy can be used to identify them. Players can still read signs even if they are not literated (needed for game balance/ information) ------------------------------------------------------------------------------ Changes from Crossfire 0.92.1 to 0.92.2: Give artifact Gram weapon attacktype physical|confusion. Before, it was only confusion which would never actually damage anything. If a player dies in a shop, remove any unpaid items from his inventory and put them back in the map. Only applies in NOT_PERMADEATH mode. Put in better DM security - now checks for name, password, and hostname (any of those can be wildcarded out) - see the lib/dm_file for some demo. To supply a password for dm mode, just use dm with the password (ie, "'dm ") Lighting code added (with various support objects, spells, etc). No maps support this yet. Don't baptize altars if we are in the editor. Leave altars the way they are so that they will be baptized the crossfire loads the map instead. Allow the title of and object to be set from within crossedit. Allow individual players to set the inventory icon, now longer a compile time option. If we get a non critical error and do an emergency save just in case, then don't remove any information/objects. This probably fixes the disappearing inventory bug. ------------------------------------------------------------------------------ Changes from Crossfire 0.92.0 to 0.92.1: Improved altar sacrifice code (actually, any object type that calls check_altar) - treat a slaying field of 'money' as something special- don't care what form the money is in (see docs for more details) Improve identify table (in conjunction with altar code above) - now takes any type of money, won't take money if nothing needs to be identified, will identify as many things as money is dropped for (ie, drop 200 gold, it will do 10 items) In the map attributes in crossedit, you can select an option called "ShowWeakWalls". If this is selected, weak walls will be shown in a partial teardown state - makes working with some maps much easier. New client updated to support Power and Grace stats. Magic system broken into 2 forms of magic - clerical and mage (they are now seperate). Power stat also added to the game - plays into mage spellpoint (mana) total. Grace also added - used for cleric spell casting. Skill system greatly expanded - different experience types with skills associated with them (only has meaning if you are using the skill code) - thus you gain experience for certain categories as you use certain skills - see doc/skills.doc for more info Multiple gods added (via config option in config.h) - basically, different gods have different enemies, and the effects cleric spells have will depend on this. Altars are created for different gods. See doc/Multigod.doc for more information. Along with this, some new spells were added. Fix a problem of some objects falling out of sight when they shouldn't. Send delete item to client if decrease_ob reduces the items nrof to 0. Weight should now be fixed up when transferring stuff to/from containers. config option called NO_AUTO_SKILL_SWITCH added - it means range type doesn't automatically get switched to skill type when using melee weapon. Main effects is that it makes it easier to switch between melee and range weapons (pretty much makes it like it was prior to the skill code.) Sack code cleaned up - we don't need to split an object to see if it will actually fit in a container - we can just say how many we want to try to put in. Actually put wimpy command back in (all code was there, just the link to call the fucntion was missing.) Increase max count from 9999 to 99,999. Wasn't that uncommen for high level characters to have more than 10000 platinum coins. When invoking spells, temporarily switch the range type to range_magic - otherwise, a proper check for spellpoints is not done, and it then becomes possible to go negative. Modified crossloop so that it renames and compresses any core files created while it is running - very handy for debugging (note that you could easily modify it to remove the core files instead.) ------------------------------------------------------------------------------ Changes from Crossfire 0.91.9 to 0.92.0: Make sure the weight a container is carrying can never go below 0. Fixed fall below code, so that objects with visibility will not fall below objects that otherwise blocks view. Fixed colormap problems with xpm graphics on black and white displays. ALLOW_SKILLS is now the default in the config.h file. IS_SUMMON_SPELL macro fixed (= was supposed to be ==) Artifact foods added by Brian Thomas. These are foods that can give some nice benefits (stat improvements, etc), or be much nastier poisons. Bug fix made to skill selection that would otherwise cause core dumps. Bug fix made to query_cost that would cause core dumps if the alchemy spell was used. Fixed bug in dimension door that would cause core dumps if cast from a wand. find_target_for_friendly_spell fixed to use the get_owner call instead of referring to op->owner (get_owner should always be used.) Fixed core dumps that were caused when the owner would be killed, but still have a pet monster (vampires as an example.) get_owner makes checks to make sure the owner still exists. Only set the windows colormap if on a color display. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.8 to 0.91.9: Changed some parameter names from spell to spellnum. Some compilers don't like parameter names that match structure names. Alot of skill code added by Brian Thomas. Assume that Suns running solaris have strncasecmp. Also, if using Xpm_Pix, assume the strcasecmp is available (the Xpm library should provide it.) get_player_ob function now uses the CALLOC define, instead of just calloc. When dropping items onto objects that blocks view, they now fall below the object that blocks the view. XPM mode now works with private colormaps. It will also switch to a private colormap if it runs out of color during the xpm creation (works for crossedit also). Don't let players put starting equipment into containers. A bows weapon class (WC) is now used to determined hit probability for arrows. When a player dies (in NOT_PERMADEATH mode), the character is immediately saved. Thus, if you die there is no advantage to crashing the server, hoping for a copy of your character from before you died. Set the value to 0 for arrows created with the create missile spell. When transferrance is cast excessively, don't hit the person receiving the spell with 9999 points of physical damage (otherwise, spell can be used to kill many powerful monsters.) Made some changes to make it compile properly under Solaris. Fixed bug in dropall that would cause an infinite loop if the player had an open container. Exits can now inflict damage on players. Fixed middle mouse button missle attack. Now clears the fire_on flag. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.7 to 0.91.8: Messages about an objects speed no longer printed to the console. When players exit maps, no longer inform all the other players. install-same and install-font directives added to lib/Imakefile - used if game is being installed to same font it was unpacked in. Client now supports receiving bitmaps - server does not support sending them, however. Max experience achievable is based on max level, not a hard coded value (although, at present time, max level is hardcoded to 100) insert_ob_in_ob now returns an object - needed for client/server code. check_inv function added to button.c. Trigger will be altered depending if the character has a matching item (or lack of a matching item.) Option added to config.h to make it so that backup saves will save the player back at home, instead of the present map. Code adapated from code sent by John Steven Moerk (jsm@axon.ksc.nasa.gov) Minor bug in crossedit fixed that would cause it to exit if both -p and -xpm is specified. Both can now be specified - it will effectively ignore the -pix portion. New skills added, with corresponding code to use these skills (from Brian Thomas) Use of skill code is selectable in the config.h file. Two new spells: summon fog and steambolt (from Brian Thomas) Enchant armor code added (from Brian Thomas) Fixed bug in crossedit that would cause it to core dump whenever a non exit was selected and then the enter command run. Fixed bug in attack.c that was using info_all if CASTING_TIME was selected. Made it so that decrease_ob_nr will never decrease the object number below 0. This fixes a bug in that remove_ob would calculate a negative weight, and then call sub_weight with that negative value. This ended up resulting in weight being added to the player instead of subtracted. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.6 to 0.91.7: Item saving throw changed around - items are only invulernable to attack types that they are protectected or immune to. For example, if an item is protected from magic, and is is by AT_FIRE | AT_MAGIC, it still needs to save against fire. Before, since it was protected from magic and the attack type includes magic, it would not have been affected in any way. insert_ob_in_map_simple function added. This is used in functions that what to examine all the objects on a space, yet insert new objects as it goes (polymorph). This function will not merge objects, so traversing the stack will work fine. Should fix removing removed object bugs that used to happen for polymorph (function should be used in other functions that do a similar thing) Damage field in objects is now 16 bits (signed). Needed because some high level spells would do more damage than could be stored in signed 8 bits. The 'old' client program no longer compares versions - there is no reason to, since the client doesn't do anything that requires an exact version match. Better handling of the Eutl library added - selection is now done in crosssite.def. Large lake faces expanded - now set up like walls, where auto join works. walls pick file expanded to include this image series and some other walls that were not previously set. Pacify spell added - code from Brian Thomas Show invisible and X-ray spell added (code by Peter Mardahl) Face data is static - that is to say the the color for any face can not be changed. In order to do a face with a different color, a new face needs to be created (or perhaps linked to the old). This change was made because for client/server communication, having a known color for each image greatly simplify things (also, on monochrome or XPM displays, color information didn't have any effect). Related changes: 1) color information is no longer stored in the archetypes file, but continues to be stored in the individual .arc files. collect.pl has been modified to store this information in a faces file. 2) visibility variable added. This is a face value, and it is meant to take the place of the DOUBLE_FLOOR_PATCH. System will work like this if DOUBLE_FLOOR_PATCH is enabled: the floor and the object with the highest visibility + the top object will be drawn. 3) color can not be changed in maps - in fact, since color is now stored in a different file, the color handling for objects has been removed. Note - when loading a map with crossedit, this information is silently ignored. Thus, when then saving the map, the color information will be lost. The maps should be updated with new faces if this color information is imporant. The lib/adm/map_info perl program now will print out warning messages for maps that are using color changes. Also, the code in loader.c can easily be changed to print out when it loads a color change (disabled because it is too verbose for most uses) PLAYER_COLORS config option and code support removed - with new static face information above, this can not be supported in any real way. Shop buildings no longer have is_floor set. This was a hack for the DOUBLE_FLOOR_PATCH for XPM mode. However, enabling it can make it so objects disappear beneath the shops (due to the way maps save.) Having objects not disappear is much more important (IMHO) than having things look just a little bit nicer for XPM mode. Archetypes exist for it, but are in the dev/unused/0.91/7/mood_floor directory, since no maps presently use them Mood floors added (code by thomas@nomad.astro.psu.edu). When activated, these floors can change the mode/flags of monsters (make them aggressive, make them unagressive, make them fall asleep, or charm them) New output mode in place - this uses a much smarter buffering method - it keeps track of several messages, and how often they are flushed is setable with the output-sync and output-flush commands (a help file does exist). All the various draw/write functions have been cleaned up, so that there now exists only 1 front end function (new_draw_info), which takes flags, priority, object, and the actual string. The flags are defined in newclient.h, as NDI_* (in this file because client should use the color flags sometime in the future, and it makes sense to keep all the flags in one place). Priority corresponds to the listen level that the player has set - the lower priority, the more likely it will be printed. Certain runes/traps now work properly (things like create bomb and magic draining would not work if the player is not on the same square as the rune) When a player kills a window, the players objects will be destroyed and not placed on the map. Scrolls, rods, wands, and staves will always be at least level 1. Beefed up demilich's. Previously, for the experience they were worth, it was much to easy to kill them. Main difference is that now their speed is 0.25 compared to 0.06 Fixed minor bugs with player movers - if the object to be moved had a speed greater than 1, it was possible to avoid all affects of the mover. Objects that slay are fixed up. Previously, only if the race matched the slaying type did it work. Now, in addition, f the race of archetype name matches the slaying, the object will slay. This fixes stakes, and probably a lot of other items that weren't slaying creatures properly. Changed some of the stat bonuses/penalties for all the classes. All the 'normal' races now have a net total of 0 (fireborn, wraith, and quetzalcoatl are not considered normal races, so their totals are unchanged.) Some of the items in the artifacts file have been fixed up - fixed spelling errors and errors in placement of the difficulty. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.5 to 0.91.6: When player stops attacking, make sure his speed_left is not larger than his normal speed. Fixes a bug where you could attack a wall, then try to attack in another direction, and move quite quickly for a short time, since weapon speed would be used for that short burst of movement. Drain attacks become attack type physical when the character reaches the mininum experience possible. Do not allow equipped weapons to be improved if they would make it too powerful for the character to use. errmsg buffer sized increased to HUGE_BUF. Should fix some bugs that were causes when this was overflowed in dump_object2. SOUND_EFFECTS (if selected) is now defined when compiling all files. Previously, it was only set when compiling files in the server directory - this had the effect that the player structure was different between the server and common area. speed+2 items now increase speed properly. Values in the computation were not being cast to floats, so a speed+2 ended up giving the same amount of speed as a speed+1 item. Restoration changed around. The spell will no longer restore depleted stats - this can only be done with the potion. The potion is now only generic restoration - specific stat restoration potions removed. Also, perceive self will now tell the player what stats are drained and by how much. Reduce the amount of experience you get from killing other players to 1/10'th what it used to be. This should also discourage players from killing other players. SAVE_PLAYER removed from configurable options - it is always on. I can't see why anyone wouldn't want to be able to use this, and if you really don't want to use it, removing the save directory would pretty much work. Fixed dropall command. It wasn't dropping all items (seemed to stop at first locked item.) Also, 'dropall armour' now drops helmets in addition to shields and armor. Fixed heroism potion. It was casting the incorrect spell (detect curse). Now it casts heroism. Fixed bug that would cause remove object to try and remove object. When loading maps, an object in a container in a container would not be inserted (this mostly happened with an object in a chest in an icecube.) Changed code in load_objects to a recursive call, which can handle inventories any number of layers deep. Fixed bug in drop_all that would cause core dumps. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.4 to 0.91.5 Inventory icons are now updated properly. Also, the inv_name and look_name arrays in the player structure have been redone - these are now arrays of function pointers and use the shared string libraries to allocated and free storage. This should take less space than the fixed size arrays that were previously used. When buying equipment, weight is now subtracted properly from the player for the coins that are used. Maps can now have a fixed reset time. This means that the map will reset after a set amount of time, no matter whether it is accessed or not. Useful for highly used maps that really need to be reset once in a while. Bug fixed in get_ob_diff. The difference array would get overflow, corrupting other data. Many core dumps were probably caused by this. Fixed bug in legal_range routine where legal_range would only check to first item of type BOW in a players inventory. This caused rotateshoottype to not list the bow entry if it was not the first bow equipped. Cloaks are not always turned into artifacts - normal cloaks can be found now. Charisma bonus changed around some more. Penalties are not quite as harsh for very ugly characters - with the change, a character will never pay more than 10 times to buy something than to sell that same item. Various functions changed around and some new ones added so things will work properly with the new client (still under developement.) Most notable changes were to common/xutil.c, with the newclient.c and newsocket.c files added. Unpaid items that are alchemied are now worth nothing. TWO_BYTES_FONT is now a standard. I can't see crossfire ever going back to having less than 256 images. free map->tmpname when it is no longer needed (before setting it to NULL). this pointer is assigned from a tempnam calls, which (on Sunos 4.1.x) uses malloc to allocate space. Note - if this is not true for you system, let me know, so I can put code in to handle this. destruction spell (from scrolls) fixed. This was actually a problem in that cast_spell was not setting the owner properly. Magic mapping improved for bw systems. This actually makes it work like it used to, with it doing stippling for object. Casting of director spells changed. Placement away from characters and underneath characters now possible New potion type added - Improvement: This will raise level hit point or spell point gain to the maximum value. It starts at the lowest level (ie, first hit/spell points gained), and will raise one value to maximum. Some patches added (From Manfred Weichel, manfred.weichel@mch.sni.de) which should make compiles on SVR4 work properly. New artifacts (in lib/artifacts file) added. Configurable option: cone attacks no longer propogate through monster - it will only hit the first row. Remove curse/damnation changed so that it will not remove curses which are a higher level than the spell caster. Polymorph code changed around. Greater chance of items being destroyed, value can never be greater than twice the original value, no mininum value. Also, now the item value and not clone value is used, so things like scrolls, wands, rods, etc should have the max price work correctly. magic is not maintained, rather, magic*4 is used as the difficulty for creating the new item, with max_magic of the new item never being greater than the magic of the old item. The number of objects remaining after a polymorph will be less than the original (10 arrows might become 8 bolts, for example.) You will no longer attack players in the group you are in by running into them. Titles now restored properly from save files (only makes a different if SET_TITLE is defined When doing a save, check the return value of fclose when writing to tmp file and the final file. If either of these writes file, use the backup file instead (previous save file is renamed as a backup file.) Should prevent problems when there are full filesystems of quotas in effect. The character will not be saved, but at least an older save file exsists instead of the character being totally gone (like before.) Patch from Laurent Wacrenier Plural names for items that have a 'of' in them is fixed/added. This mostly deal with potions (so instead of potion of dexterys, you get potions of dexterity) Patch from Laurent Wacrenier query_cost changed around so that value for very low priced items are now computed correctly. Before, the nrof of items was multiplied in very late, and various divisions (for being unidentified) were done previously. For low value items, this would result in a zero value. Zero values still result for low priced items if you only have 1 or 2 of them, but if you have 80 of them, a proper value is now generated. Code to control golems (and in fact many summoned creatures) now fixed. Help file added about golems. This also fixes a core dump that was caused when a summoned creature was around, and another scroll was used. Modified logger in common directory to no longer create a fatal error if you get too many minor errors in and the editor is what is being used. Before, occasional errors would be reported by the editor (mostly dealing with not found archetypes in maps), which would eventually cause a fatal error. This seemed erratic, because the editor never changes the tick, so loading one map might result in the fatal error because of the error total from the previous maps. Also, when using the editor, having missiong archetypes probably should not be a fatal condition. food value can be changed in artifact file. Food is mostly used to have various meanings in different objects. The artifact file has also been updated about everything that is changable, and what the values mean (ie, docs are built into the top of the file as comments) Weapons/armor no longer 'disappear' when a class that can not use such an item tries to equip a group of them. That is, if a class that could not use armor tried to equip 2 chain mails, one of the chain mails would disappear. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.3 to 0.91.4 FLAG_NO_FIX_PLAYER is set before saving the player, and cleared after the player is loaded. Before, a character will full sp and hp could be save, and when reload, not be at full strength. This is because fix_player was being called during the load process, before all the characters items had been loaded and equipped. This, the maxsp and maxhp values were that of the character with no items. Artifacts can now pass the various spell paths to the newly created artifact. The values are or'd with the previous spell path values of the object. The artifact file now supports objects with name NONE. If this object is rolled up when trying to generate an artifact, then no artifact is generated. This allows for better tuning the chances of having certain artifacts, by just reducing the chance of having an artifact at all. The 'type' field of the Object in the artifact field is still required, but any other fields for the artifact object are not used. Crossedit fixed so that all the images do not appeared inversed when being used on a monochrome display. Changed common/xutil.h so that XPM mode will work on monochrome systems. In fact, XPM mode should now work on all systems, previously, the load process tried to create a pixmap 8 bits deep. If the X server did not support it, errors would result. So while playing in XPM mode on monochrome may be pointless, this allows play on systems where it may have some use. libproto.h and sproto.h only check that __STDC__ is defined. Previously, __STDC__ had to be nonzero, and not all compilers set this. Also, in global.h, if __STDC__ is not defined, return an error. Many compilers do not allow _STDC__ to be redefined. Updated changable variable in crossedit. Now the various spell paths can be set in the editor. SPEED_GAME now standard compile option, and not selectable. Having it as an option seemed to create more problems than bugs non speed game found. Crossfire man page updated. xledit.man changed to crossedit.man, to reflect the name of the program it represents. crossfire.doc updated with more information - mostly about new objects added to the game. More help files. Objects with type CREATOR were added. The objects, when applied, create other objects. Documentation in crossfire.doc. Object that cast spells (rod, scrolls, wands, and horns) now have a level associated with them. This level is used to determine at what level the spell should be cast, instead of using the owners level, which was typically used before (allows creation of super powerful wands/rods/horns, but having them be a very high level.) Bow, crossbow, bolt, and arrow code redone by Tero Haatanen. This cleans up the code, and allows for magical arrows and bolts. Race can now be changed in the artifacts file. A spell of Banishment has been added. Attacktype AT_DEATH is now more potent when if against a monster that the item also has slayign capability against. Bug fixed to prevent players from getting infinite experience for finding the same trap. Also, experience changed for disarming traps. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.2 to 0.91.3 Changed artifact structure so that items with a chance greater than 255 are now possible. Object now put into icecubes when hit by a cold spell, like before. This probably got messed up in the saving throw re-write, where objects had to be either immune or protected from cold to be put in icecubes. In fact, the reverse was supposed (and now does) happen. IF an object is protected/immune from cold, it is also immune from being put in an icecbub. Fixed up is_magical and need_identify routines to handle more items. Rods, scrolls, and spellbooks are always considered magical in nature. Wands and staves are magical if they still have charges. Also, fixed up so that some of the Artifact items are now detected as being magical. If player lacks sufficient money to buy from shop, it now prints how much short he is in standard english string, (ie, 2 platinum 3 gold,etc), instead of gold.silver format (lacke 44.25 gold). Inventory drawing changed. Should be a little more efficient, and be more efficient on drawing. With auto pickup modes (that pick up more than one item), inventory will be drawn after all applicable items have been picked up, instead of after each one. Item status is printed next to item image in players inventory if SHOW_INV_ICON is selected in the config.h file. It would be nice if better imagines were designed for the status (right now, just words are printed out.) When connecting to the server, a one line welcome message is printed. Crossclient was modified to ignore this line if it starts with 'Welcome', so changing it may cause problems with crossclient. Potion of restorations are now handled by means of different archetypes and treasure lists, instead of having special code in the program to handle them. If a RUNE is found in an object inventory when free_object has been called, remove the rune instead of dropping it to the ground. This is so that traps (runes) disappear when the object they are placed on is destroyed. Doors are now trapped, and be detected & searched just like chest traps. Map difficulty can now be set in the map, and not be calculated at map load time. Crossedit has been modified so that 'Attributes' now contains a difficulty field, and if set, this will be used when loading a map (it is stored in the level field of the map). If this value is 0 (default), then the old formula for calculating the difficulty will be done. The advantage of this is that map creators can now set the difficulty of the map more to their liking, and certainly do a better job than the program can do. Pickup by value density fixed. The number of items is now taken into consideration (before it did not, so a lot of arrows would be picked up, because the total value divided by the weight of 1 arrow was greater than the pickup value.) Bug fixed in query_cost. Before, for F_TRUE value, unless the item was worth more than 10,000 sp, F_SELL value would be calculated instead of the true value. Merge several small files in common.c into one file called porting.c. porting.c contains common functions that are called by crossfire. This allows system dependent code by be in one file, instead of scattered throughout the program. -listen_port command line option added. num is the port to use for connections, instead of the default (13326) Instances when a variable name is the same as a structure name have been fixed (by changing the variable name). On some compilers, this is a problem. I can not be sure that all such cases have been fixed, as I have not found a way for gcc to create warnings in this situation. Random happenings when a spell fails due to encumbrance has been added. This option is configurable in the config.h file. Trap code added. Chests and doors can now be trapped. 'search' and 'disarm' commands added. old 'search' command was changed to 'search items' Inventory locking added. Makes it so that items can be locked in a players inventory, and will not be dropped when a 'dropall' command is issued. 'inv-lock' and 'inv-unlock' commands were also added. 'gsay' command added for party mode. Spellbooks can now have their slaying field set to the name of the spell that the spellbook is of. Debugging output disabled in crossedit. It produced copious amounts of data that has little relevance except for the developers. It can easy be turned back on by editing the crossedit/include/debug.h file. Artifact gems (worth lots of money) and amulets added. Invisible object now appear in crossedit. Fixes a problem, but now makes use of the global 'editor' variable, making it likely it won't be obsolete any time soon. Artifacts (in artifacts file) can now have nrof field that will be used to generated the number of items instead of the treasure list. If the nrof in the artifact is 0, then the standard treasure list nrof is used instead. Artifacts can now grant reflect missile and spell ability. Also, by setting stand_still, the objects will not be animated. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.1 to 0.91.2 Some options now standard part of game (SHOP_LISTINGS, Line of Sight). The config.h (for this release) contains these options, but they are commented out with the note they no longer do anything. Changed value pickup to pick up things based on true value, and not sell value. True value is how much the item is worth without applying charisma bonuses. Before, if two different characters used the same pickup mode, different stuff could be picked up because of charisma differences (or even if a character gained charisma, the same pickup mode may not work as it did before). By using true value, pickup mode operates the same between all characters, Items of type TREASURE can now have their experience set, and this will be used for the difficulty of the generated treasure instead of the map difficulty (as was done with shops). If experience is not set, then the map difficulty will instead be used (or 14 in the case of shop floors). Cure poison actually cures it, instead of reducing the duration. Don't use fseek when loading in map files. Some systems do not support fseek on pipes (which are used for compressed files). Instead, just set the variable with the data we read, instead of seeking back and re-reading it. Transferrance spell changed so that supercharging will have bad effects (first confuses the player, then a large fireball is created (with player losing all spellpoints) Poisoning made more vicious - it does more damage based on the level of the creature that uses it (level/2 in fact). This makes it so that very tough creatures that poison someone will have the poison do serious damage. Also, damage caused is no longer random. Chests can now contain multiple items. Code changed to handle this properly. Treasure is also always dropped on the floor (Even if the chest is in an objects inventory.) hp field used in chests (and in fact all treasures) to determine how many objects to create (thus, a chest with 3 hp will have 3 objects created). Crossedit now draws a rectangle around the selected area. Reversing the color of the images did not work in XPM mode. Have client.c include "includes.h". includes.h sets up all the name defines properly (ie, __sgi__, __sun__) SP_* functions changed (by Rupert Goldie) to take an object pointer instead of a level value. This makes adjustments for spell costs (via stuff like spell paths) easier to make, because now only the SP_* functions need to be changed. With the object structure, checking for known paths (or perhaps other things in the future) can easily be done. Bombs will now be dropped before exploding. New attack type (God Power) added. The cleric cause wound spells use this attack type. Charm monster spell added. Party system re-written by Scott MacFiggen . Characters will now only share experience if on the same map, and other features were also added. Modified check_item function (used in creating weapons with the improve scrolls). The objects being sacrificed do not need to be in one group (ie, two groups of 4 potions of dex will now be counted as 8 potions). This only applies to potions, since some can be identified and others not identified. Also, cursed or damned items will not count towards sacrifice count (although, they will be consumed). Changed way cancellation works on items. Before, if cancellation hit a player and the player failed the saving throws, the items got no saving throw versus cancellation (only if their absolute magic value was less than RANDOM()%6 did they survive). Now each item gets a saving throw. Note that if a container makes a saving throw, then the items inside do not need to make saving throws and are unaffected. A separate function did_make_save_item was split off from save_throw_object. did_make_save_item justs checks to see if the item made its saving throw based on the tables (and any protections or immunities grants it an automatic save, as before) save_throw_item calls this function, and in addition, does the appropriate actions (burns up items, turns them into icecubes, calls cancellation, etc.) Saving throw method changed. Before, each item got 5 chances to make a save for each item it is composed of. Now, it gets one chance for material it is composed of. Then, based on the number of saves it made, and the number materials it is composed of, an overall made save/failed save is determined. This change is to make it easier to figure out saving throw values, and hopefully make adjustment easier. Saving throw tables updated. In general, each item is +5 compared to what it was before. This should hopefully make it so that items have about the same success rate they did before. Crossedit modified to preserve value of connected field when cut/copying and pasting. Before, an object that was copied/cut would also have its connected field reset to 0. More XPM images colored. Filenames for the river directory have been re-done, to actually make it a bit clearer of what does what. The archetype names were not renamed however, to keep compatibility. World expanded. Another row of maps was added to the southern edge. The world maps were also renamed to a world_xy format, where x is a letter and y is a number. This represents the x and y location of the map, making it easier to figure out how maps related to each other. Map spaces can prevent magic user spells, cleric spells, or both. Before, an anti magic square prevented all types of spell casting. Have monsters regenerate spell points even if they don't cast a spell. Monsters have a 1:3 chance of casting spells, irregardless of any other factors. Before, spellpoints would only be regenerated if it got past this check. Also, some monsters (dragons, chinese dragons) have had their max spellpoint and regeneration rates increased to correspond with the higher cost of casting their breath weapons. Altars now will also match on the slaying field of the object being sacrificed. This is similar to how keys and special doors work. With this change, it is no longer required to make a unique item that then needs to be sacrificed (ie, the dagger, the cup, and the crown for the old city quests). Instead, a cup, and crown can be used, with the slaying field set appropriately (unfortunately, will not work for weapons, as it will think that is the monster to do extra damage against.) However, the altar code always did match item name, so calling it something special like 'The Dagger' and have the sacrifice look for that should also work. Spell encumbrance code added. More you are carrying the higher your chance for failure. ------------------------------------------------------------------------------ Changes from Crossfire 0.91.0 to 0.91.1: Fixed bug in the enchant weapon code. It was not allocing enough space for the string, and thus would corrupt the heap. Minor fix to spells.c. IT was using strdup instead of strdup_local, which caused the compile to fail on some machines. No longer gets errors when adding a player on a map that is not loaded in a multi player game. Before, process_events would see that the player has no object, and could get enough errors to cause the game to quit. Now, it suppresses errors if it is only loading objects for that map. Default map difficult for treasure that is created in shops was changed from 9 to 5. In this way, the likelihood is higher that good items will be found in dungeons, not in the shops (there are very few items with difficulty above 9) Archetypes cleaned up. All archetypes that were not being used in a map were moved to dev/unused/0.91.1. Note: There are still a few archetypes that are not used in any maps, but these are part of a collection (ie, one section type of a wall). This was done really because there is no reason to have archetypes that are not being used to be in the official distribution. It could be misleading for people looking through the arch directory (ie, 'I thought I looked at all the maps, but never saw this monster'). Also, I have no problem moving these archetypes back in, once some maps actually use them. 'grass' and 'sea' are no longer animated. There are a few reasons for this: 1) The animations never really were that interesting, 2) being animated put them on the speed list, and being that over all, they are the second and third most used objects, this is a performance hit, and 3) With pixmap and xpm images, re-draws are only done on squared the have changed (really improves performance). However, with them being animated, they often changed, so that more re-draws were needed. The old archetype and image files are in dev/old (in arch distribution) if you actually want to use the animated versions. Put a limit of 70 on damage bonus for weapons. Treasure lists expanded. The old treasure lists (in treasure.c) have been removed, and treasure lists added to the treasures file added to take their place. The treasure file has been expanded have list transitions, and treasure lists in which 1 object on that list will be generated. Archetypes (shop, random, and chest) updated to use the randomitems field to determine what treasure list to use to generate the items. Advantages of the new method: Ability to better tune treasure probabilities, re-compiling not necessary in order to update treasures. the create_treasure function was modified to add an extra argument - this is used to keep track of how many times it has been called on this attempt to create a treasure. In this way, infinite loops (with list transitions) are avoided. Generate treasure replaced with a simpler function that calls create_treasure, and returns the object. create_treasure takes a treasurelist instead of a integer treasurelist number, like it did before. The crossfire.doc file has been updated about the new treasures file capabilities. Chests are now created with their treasure as their inventory (this mostly happened because of the treasure changes above). Advantage is that when a chest burns up, its treasure may remain (or may be burned up). Before, when a chest was burned up, its treasure inside was not created. Rolling multi-part objects should now work better (not perfect, however). Carrying an open bag with a mode that picks everything up will no longer cause an infinite loop. Crossedit changed to draw selected areas as a black box. Fixes some problems with display in XPM mode. Fixed bug that would cause game to crash when pets were summoned. Problem was an infinite recursive loop, that would then cause the system to run out of stack space. Solution is to decrease the speed_left of the object before one of the function calls. This makes it so that at some point, one of the functions will not be called. When a rune is cast, use the s->archname for the archetype name, and not hard coded strings. Cured a bug with rune of transference. Also, allowed several case statements to be merged. Really, no archetype names should be used in spells.c, when casting spells. The archetype name should be gotten from the spell structure. If a button is being updated on a map that is being saved, just return from the function. Prevents errors 'object has speed but is free' Fixed bug that caused objects that got a speed_left of exactly 0 to be frozen. This was because speed_left >0 to have the object be processed, and <0 to have speed added. Now, speed is added if speed_left <=0. Some minor changes made to hopefully make it compile on AIX systems without any modifications. process_active_maps now called when a map is being loaded. It should hopefully work properly, since enter_exit was modified to not use any static variables. Also, process_events was modified to take a map as an argument, and if non null, only update objects on that map. That makes process_map obsolete. process_active_maps was also changed to still process even if there is only one player. Crossfire should let players still perform actions when a map is being saved. Problem is, handling a map that is in the process of it being saved, and having a character enter it. Crossfire needs to finish saving that map, then re-load it and insert the character. Large changes to how player interact with loading & saving of maps would probably be needed, and probably should be done. You no longer lose luck if you kill yourself, and the player who kills another player now loses the luck (before, the player killed would lose luck). Now inventory display modes - unpaid, cursed, magical, nonmagical. All pretty self explanatory. ------------------------------------------------------------------------------ Changes from Crossfire 0.90.5 to 0.91.0: Some new maps added to the standard distribution (Magara and some of the esben maps). Magara was added as a place to depart to by ship, the esben maps were merged in as new buildings or towers on existing maps, not as a new continent. Keyboard buffering is now selectable via 'keyboard' command. Before, an attempt to remove keystrokes from the X Events queue was made, but could not always remove all of them. Now, it should remove all of them, or none of them, depending on the keyboard buffer setting. The value will be saved with the player. Pickup mode value now saved and restored from the characters save files. Inventory and look window should only be re-drawn once when selling an item. Calls to draw_stats in common/living.c will only be made if the object type is a player (should prevent some warning messages) Fixed create earth wall spell so that it uses bdur as the base hit points of the wall (instead of bdam). This will prevent some core dumps, because otherwise, the wall can have 0 hit points. Program should not core dump when person quits that game and the map he is on has been swapped out. (ie, person saves or quits the character, but the map gets swapped out before they type 'q' to the play again question) Word activated teleporter code added (Peter Mardahl). Who can become DM, based on their user id, can now be set in the dm_file (assumed to be in lib.) (Tyler Van Gorder) Tell should now work properly (Eric Mehlhaff) Cloak code added (Peter Mardahl) Objects can not grant invisibility, make_invisible variable added to archetype files. Added information to the crossfire.doc file (was missing several attack types and materials). Added better information on what some of the flags do. Noticed that will_apply 4 applied for both scrolls and earthwalls, now only applies to earthwalls. To have a monster use scrolls, can_use_scroll should be used instead. Code added to deny users or sites from connecting. This is to prevent users who intentionally crash the server to connect and start up a window, which they then crash the server with. Patches from Tyler Van Gorder. Two floors will can now be drawn when using XPM mode and this options has been selected in config.h This allows for towers to sit on top of grass to look proper. From Gregor Schmid Patches that modified 'create food' spell. Better food (ie, waybread) will be created at higher levels, and the caster can also specify what type of food to be created. From Peter Mardahl. Spell paths added by Rupert G. Goldie . Simply put, each 'spell path' contains a certain category of spells. Objects and races can be attuned, repelled, or denied certain paths (objects would apply the the person wearing them). Attuned allows casting of spells in that path at lower cost and greater efficiency, repelled paths are cast at a higher cost and lower efficiency, and denied paths can not be cast at all. Thus, a wand of small fireball that is attuned to Fire would cast more powerful fireballs. A character wearing a ring that is denied the path of fire could not cast fire spells at all. Right now, no items will be created using these features, and no characters have any of these, but these might be added in the future. Look at the spell-paths file in the doc directory for a little more information. Pickup mode 6 (pick up magical items) will not pick up known cursed items. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Object structure and process_events changed. Now, a separate list us used to keep track of active objects (objects whose speed is nonzero). All objects on the active list are still on the normal list, but process_objects only needs to go through the active_list for objects to process, saving a lot of time. The cost is adding two pointers (active_next and active_prev) to each objects. But the speed gains are well worth the minor memory cost. the 'malloc command was changed to display the number of objects on the active list - note that there is zero memory usage for these, since these objects are also on the normal object list. Programming note: Any time an objects speed is changed (doesn't happen too often), a call to update_ob_speed(object *) must be made, so that the object can be added or removed from the active list, as appropriate. In testing, I first ran crossfire, with process events using the normal object list, and printing out error messages if it found objects that had speed but were not in the active_list. I cleared out a couple warehouses in Navar without any errors. Then, I switched to using the active_list, and printing out errors if it found objects on that list with zero speed. I cleared out the mages tower in Navar city without any errors. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Selling items now works properly (it only failed to work if AUTO_SAVE was not set previously, and the value of the item was beyond a certain amount.) Look window code changed so that it does not erase the unused area unless necessary. Also, when a player moves, freeze_look is set. This was changed because the functions that move_ob calls update the look window, and the window was being updated 3 times each time the player moved. When poisoning ends, it no longer core dumps. Inventory window updated if reading an unidentified spell book and you already know that spell. Casting rune spells now works properly. Spells now (once again) sorted upon loading of characters. ------------------------------------------------------------------------------ Changes from Crossfire 0.90.4 to 0.90.5: Bug fixed with window titles getting their names changed. (Tero Haatanen) Container code changed around. Containers can be locked, they can be used from the ground. FLAG_CONTAINER removed, since there is already a type container, and bonus removed from object structure (Tero Haatanen) insert_ob_in_ob sorts objects, so items with more magic are before those with no magic bonuses even for unidentified. It also uses the absolute value of the magic, so it should be a little more difficult to know if the item is cursed or not. Added unique-flag and UNIQUE_ITEMS define. All items which have unique flag are saved to directory .../lib/unique-items. A filename is mapname + ".v" + number, where number is normally 01, but if two or more server is running same time it can be also greater. This feature can be used to banks and inns to save permanently items. The code is one limitation: if map contains unique item which can be carried away from map (e.g. an unique excalibur) there must be at least one unique item on map which can't be carried away. This is because unique items are loaded from original map only if unique items file doesn't exit. If all unique items are carried away from map then they are loaded back next time when someone enters that map. This should not a problem if map makers remembers this. (Tero Haatanen) Editor by Jarkko Sonninen. He added toggle button into attribute window and made map's reset time and timeout so that they can be configured in maps. He also fixed map archetype, so that map default stating coordinate is (2,2) like before. This seems break a gatehouse map, where it use default value on map (changed 0 to 2), but it's easy to fix. Change check_walk_on (common/object.c) so it no longer calls the draw_func. This eliminates a problem of seeing flashes of areas that should be blocked. This is because the draw function it called would re-draw the game window before the variable to re-calculate line of set was set. As I see it, this function call was not needed in any case, because this is called during the players movement. After the player moves, the draw function is called from the process_events (now process_players1) function. This should also conserver a little cpu time, and bandwidth. Coin code in shop.c changed. Patch from Kjetil Torgrim Homme made it so that coin value can be changed in archetypes and the shop code should still work properly. I made changes so that the number of coin types is set with a #define, making adding new coin types easier. AUTOSAVE, SAVE_INTERVAL, and NO_EMERGENCY_SAVE should now work properly. See include/config.h for more information on these options. Changed it so that updates to other maps will not be performed while loading a map. This caused a bug if two players entered exits at the same time. One or both of the players may end up in incorrect locations, all exits in that location may be closed, etc. Saving throw table expanded to handle all materials and attack types (Peter Mardahl) Fixes so that Turn Undead does not do physical damage (Peter Mardahl) Patch to make it impossible to prepare multiple weapons at the same time (Peter Mardahl) Added 'sea1' archetype. This is the same as the sea archetype, but allows for walk on. Its purpose is to use for backgrounds behind boats and similar objects. Because it will probably be needed in so many places, I decided to make an archetype, instead of editing the variables inside crossedit for the object. Removed xbm_values array. This was used to map a face number to that face location in memory. Since the bmaps file is created automatically without any holes, this is not longer necessary. Archetype for wonder spell now in place. This will prevent core dumps when the spell is cast. Pixmaps will now be freed upon exiting Crossfire. They will also be freed after emergency saves are performed. This fixes the problem that some X-Terminals would not free the memory used the the pixmaps otherwise, and run out of memory. This fix pertains to both -pix and -xpm mode. Patch to hopefully double death problem/core dumps with NOT_PERMADEATH mode. Changed the size of the temporary string that is used when loading messages. For a few very long messages, 1024 bytes was not enought. Patches put in Crossedit to allow for XPM mode. From Petri Heinil. Cleaned up the code for look window. Now, everything agrees (ie, when you click on something in the look window, it is actually that object.) Likewise, invisible objects are not displayed anywhere. This should also fix a bug of not being able to enter some building by clicking the middle mouse button on them. Added help file for pickup. Explains the 8 basic pickup modes plus the value-density pickup mode. Detect magic will detect magic on all items in a stack, not just the top object. Spells fixes (From Peter Mardahl): 1) Identify modified to identify items on the ground if inventory is identified. 2) Detect magic spell finds magical runes and makes them more visible 3) AT_CHAOS and AT_COUNTERSPELL reimplemented so that they are not treated as special cases by the move_cone function 4) Magical walls created by spells (firewall, frostwall, ....) are fixed If a map is reset, that map is then removed from the list of map objects (what you see when you type 'maps ). This way, the 'maps commands only displays maps that are reasonably active. This change should also save a little memory. make depend now descends into crossedit/Cnv to depend there. Changed some of the colors in the xutil.c file. This is so that it uses the same colors as the official colors for XPM files. It would have been better to make those colors part of the official XPM colors to start with, but it is a bit late to do that now. The change of the xutil.c file was made so that crossfire would not use quite as many entries in the colormap. The change in colors should be quite minor. Two new pickup modes added - one picks up all money and gems, the other all magical items. Removed a lot of dead code from the various header files. removed hiscore.h from distribution (wasn't declaring anything that was not being declared elsewhere.) ------------------------------------------------------------------------------ Changes from Crossfire 0.90.3 to 0.90.4: Many more XPM images now properly colored. NOTE TO COLORERS: A few minor changes have been to the xpm.template file (palegreen has been replaced with green3, and a more medium orange has been added.) I replaced palegreen because it was very close to the 'green' color already present. And a medium green was lacking. A medium orange was also lacking, so I added one in. New pickup modes, that can be based on value density (from Peter Mardahl ) Spells now have a casting time. (From Matthew Zeher ) Added libproto1.h file. This will be used for function prototypes are affected by certain settings (ie, SPEED_GAME). This way, people should not need to run 'make proto' New XPM loading method. Creates montage of the xpm files, so that not as many calls to XPM are needed. This has reduced loading time to about 30% of what it was before. Note: This done mean it takes some more memory at start up, as the montage has to be stored temporarily. Changed charisma bonuses. At 30 charisma, it will no longer be possible to buy an item, and then sell it for more than you bought it for. Graphic exposures turned off on the GC's that are used in the game window. Should improve performance. When a raise stat spell ends, the proper message (ie, You look ugly, you feel less intelligent, etc) will now be printed out. If player NOT_PERMADEATH mode, and you die, a stat will only be decreased one. Before, that stat was decreased one, and the max stat was set to that value. So if the player was poisoned, or a stat was lowered due to some other reason, that loss would become permanent. Now, both the stat and orig_stat only gets decreased by one. invoke.c removed, cast_spell modified to handle what invoke.c did. Keep old shoot type if reading a scroll, instead of it being set to none. Raise stats spells should be progressively more costly (From Peter Mardahl) Should now be able to handle broken pipes without problem (ie, telnet session closing unexpectedly). Made it so that listen level 0 on a socket means that draw_all_sockets will not write to that socket. Crossclient uses this so that it does not get unexpected messages, and thinks that it failed. Added 'set font' option. This basically unsets color pixmaps or xpm mode. If crossclient was run without -xpm or -pix mode, it will send this command to use fonts. What this means is that set (font,pix,xpm) should set that display mode. Before, the display selection it defaulted to for crossclient seemed unreliable at best. Fixed memory allocation problem in commands.c (it was writing to more bytes than it had allocated) Draw message window almost complete re-written. In an effort to cut down on flashing of the the status bars. ( Niilo Neuvo ) More bug fixes for spells (from Peter Mardahl) Fixed some bugs for compiling on the Alpha running OSF/1 1.3 ------------------------------------------------------------------------------ Changes from Crossfire 0.90.2 to 0.90.3: Added -xpm command line option to crossclient. All spells should not be handled in the switch statement in spells.c Let players buy zero value items from shop. This really shouldn't be a problem, the only zero value items of any use might be wands with very few charges. If someone wants to buy poison or cursed items, they should be able to. Fix spelling error of command line argument 'detatch'. It is now spelled properly (detach). Change draw_color_pix in server/xio.c. It now draws the images to an intermediate pixmap, and then draws that to the screen. May or may not be quicker (XSetClipOrigin only needs to be set once), but it does prevent flicker. Also add two more GC's to the player struct, to make these operations faster. Unless XPM_PIX is defined, draw_color_pix will note be compiled in the code. Fixes to make it compile on both Solaris and NeXT machines (hopefully) Removed PLAYER_COLOR #ifdefs and lines they control out of login.c. Those were not needed any more. Added 'mapinfo' command to valid input commands. Only have crossfire display -m as a valid command if it was compiled with DUMP_SWITCHES set. Changed install procedure to only copy those files necessary to playing into lib. Also, don't install obsolete scripts into the bin directory when installing. ----------------------------------------------------------------------------- Changes from Crossfire 0.90.1 to 0.90.2: Cleaned up the display from 'maps. Now things line up nicely. It doesn't print the name anymore, and truncates the path at 18 characters. But this doesn't make a difference for most maps, and now you can actually see what variables are set to what. Experience requirements changed. Initial values from Peter, but I changed them to be more round numbers. Change targets in server and crossclient from ComplexProgramTarget to AllTarget, DependTarget, and NormalProgramTarget. This is because ComplexProgramTarget expects man pages in those directories, which do not exist. Moved data initialization out of treasure.h and into common/treasure.h. In theory, no data initialization should be done in the .h files, it should all be done in the .c files, with the .h files declaring the appropriate externs. Likewise, no .c files should have extern's for other data functions, they should include the appropriate .h file to get those externs declared. This would fix the problem of having to go through the various .c files whenever one of the data structures change, to update all the externs made to it. Since the compiler will check to make sure that the extern in the .h file and the actual declaration in the .c file are the same, it prevents errors of mismatched declarations (ie, having something like char s[40][20], which at later point gets to char *s[40], but some files still think it is supposed to be s[40][20].) Changed doc/Imakefile so that make install.man will actually install the man pages. Characters that dies who were poisoned should have the poisoning removed. Changes from the Berkeley Folks: What we've done that's in this server code that I know of: --level dependency added to many spells. --level dependency tunable on the fly by editing the spell_params in the 'lib' dir and using the dm command 'spellreset' spellpoints and spell level are also changeable on the fly. --many new spells added --protection spells can now superimpose, as can gain stat spells. repeated applications of protective or stat spells yield diminishing returns. --runes added--an implementation of magical traps. any spell may go in a rune. Read the documentation. --new spell interface. invoke invokes that spell immediately. Some spells can take parameters now. invoke magic rune will store in a magic rune. invoke will not set the range spell. cast and prepare are synonymous. --Certain spells cannot be set as range spells now--less than 10 of these. These are spells which no one would want to use more than once in a while, like magic map. --A hack to object.c in common dir which makes objects created by objects with owners owned by the creating object's owner. (This allows players to get credit for a kill with the meteor swarm spell, which creates a 'swarm' object, which in turn creates the meteor objects.) -- End of Berkeley additions. New maps and archetypes added. Crossedit can now load maps that are compressed. Add Solaris 2.x compile support. Now prints out what the scroll name was that turned to dust. Minor artifact changes (ring of ice is blue, ring of fire is red) Horn range weapon now works properly, via using the + and - keys. New input method (From Jari Vanhala ). Looks like it should now be possible to define keys to do most every command. Made a few minor changes to default key file to make the present set up act like the previous one. Fixed triggers and magic mouth. These devices will now open gates as would be expected. The problem was that the opening routine expects to see the op->value of these to be one, in order to open the gate or whatever. Changed routines to toggle value between 0 and 1. Note: As I understand, trigger handles return to their original state, but keep the same value. That is, you pull the trigger handle, the handle returns to its original position, but gate opens. Pull handle again, handle returns to same position, but gate now closes. Or at least that is how I implemented the devices. Make some more changes to the is_magical routine. Hopefully, it will now detect all rings and amulets that are magical. Also, it should not detect monsters (or any living object) as magical. Fixed bug with Color Pixmaps (XPM). Would try to free the pl->pixmaps area twice, causing core dump. Looks like the same thing should have happened when using bitmaps also. In any case, only one free(pl->pixmaps) is now performed. Bug fixed with XPM code, in which 'floors' would appear to be carried around with the player. This is because the players pixmap did not change, and hence, it did not update that square. Now fixed. Random encounter bug might now be fixed (patches from Frank) New FLAG method used. flags in the object structure is now an array, and SET_FLAG, CLEAR_FLAG and QUERY_FLAG functions are now used. This reduced a lot of code in common/loader.c Fixed bug in common/object.c in expand_objects function. Looks like braces were missing from for statement, so the the prev and flag fields of the new objects were not being set properly. Fixed bug that could cause core dump if trying to print map message when no message existed. (From Tero Haatanen ) Starting character will have uncursed, undamned and identified items at the start of the game. (From Tero Haatanen ) ----------------------------------------------------------------------------- Changes from Crossfire 0.90.0 to 0.90.1: Crossedit 0.7 was merged in with the 0.90.0 source. This once again creates a common distribution. I tried to retain the best features of both programs. This means that the artifact code, and cursed/uncursed items (from CF 0.90.0) remain. But I also used the filepaths for fonts, elimination of omaps for internals use, and creation of partially processed bitmap file for bitmap reading. The general patch method was to keep the cf 0.90.0, and create a diff file for crossedit 0.7 from crossfire 0.89.3. These patches were then applied. Many had to be implemented by hand. There are some exceptions. The crossedit program is almost the exact same thing as in the crossedit 0.7 distribution. I made a few minor changes to clean up compiling, but otherwise, no serious changes were made. The archetypes (lib/arch) structure was also taken from crossedit 0.7, as well as most of the archetypes themselves. I think the breakdown makes things much easier to handle for changes or improvements. NOTE: it is likely that directory (lib/arch) will not be in the standard distribution, but will instead be a separate file (to keep the size down). The various files (archetypes, bmaps, font, etc.) will be created for the distribution. All new archetypes from cf 0.90.0 were merged into the structure, as well as a few minor changes in the old archetypes I noticed. The maps are from the crossfire 0.90.0-a-maps distribution. A few simple programs (in lib/adm) were used convert them to use fontpaths and to change some monster names that conflicted with character classes. Note: Because in the old format, a 'food' field was used to determine the map to link to, it is possible some of these fields were changed when they were not supposed to be. This is because some other archetypes (altars for one) also use the food field. If you notice any converted by mistake, please let me know. A few minor memory leaks and other patches have also been applied. Other specific changes to this version: 'set' now gives better help message (like what can be set.) XPM code added. Fixed bug in 'who', which would cause a core dump if done when another playing was still creating their character. 'who' also display the map path of the other players, and not the map name. Map names seldom seem to be set. The crossfire.cfb and crossfire.pix files (in lib) can be compressed. Fixed bug that caused core dumps when pet monsters were summoned. If restoring a saved game, and the map it was saved on does not exist, start them on the standard starting level. Added option in config.h, that allows full ring and amulet descriptions to be printed in inventory and look window. Hopefully fixed bug which caused game to dump core when player died, if NOT_PERMADEATH was set on. Add flag HAS_MAGIC, and use that for the detect magic spell. This way, artifacts that have no magic, will still be shown as magical. So will rings that change abilities, etc. Doesn't work quite perfectly, but seems to work as well as the old method. Fixed bug so that if it can not find a map, it just prints that that exit is closed, instead of panicing. Have it re-draw the look window when you middle click on something (ie apply) in that window. This fixes a bug with bags/sacks, of it not updating when an item is used directly from a sack. crossfire-1.70.0/utils/0000755000014500000120000000000011732537044011730 500000000000000crossfire-1.70.0/utils/metaserver.pl.in0000755000014500000120000001266111731300533014766 00000000000000#!/usr/bin/perl # $Id: metaserver.pl.in 6717 2007-06-27 20:07:36Z akirschbaum $ # Copyright 2000 by Mark Wedel. # This script follows the same license as crossfire (GPL). use Socket; use English; # We periodically generate a nice HTML file that people can't put their # web browser at. This is the location of that file. $HTML_FILE="/var/apache/htdocs/metaserver.html"; # Cache file to keep data we ahve collected. This is used so that if # the metaserver program crashes/dies, it still has some old data. # You may want to set this to a location that will survive across system # reboots. $CACHE_FILE="/var/tmp/meta_xfire.cache"; # We remove a server after $REMOVE_SERVER number of seconds of no updates. # 600 is 10 minutes - if we haven't gotten an update that fast, the server # is almost certainly gone/not available. This reduces congestion when # someone on a dhcp connection keeps running a server and it fills # up a bunch of the slots. $REMOVE_SERVER=600; # UPDATE_SYNC determines how often we update the HTML_FILE and CACHE_FILE. $UPDATE_SYNC=300; # IP_INTERVAL is how often (in seconds) same IP can request metaserver # info. This is to prevent DOS attacks. $IP_INTERVAL=5; # For gathering some anonymous statistics. You probably want to use # MRTG/RRDTOOL for generating statistics from the file. # -- Heikki Hokkanen, 2005-03-26 my $STATS_FILE="/var/tmp/meta_xfire.stats"; my $stats_updatehits = 0; # COUNTER my $stats_requesthits = 0; # COUNTER my $stats_totalplayers = 0; # GAUGE my $stats_totalservers = 0; # GAUGE socket(SOCKET, PF_INET, SOCK_DGRAM, getprotobyname("udp")) || die("$0: can not open udp socket: $OS_ERROR\n"); bind(SOCKET, sockaddr_in(13326, INADDR_ANY)) || die("$0: Can not bind to socket: $OS_ERROR\n"); # Socket1 is used for incoming requests - if we get a connection on this, # we dump out our data to that socket in an easily parsible form. socket(SOCKET1, PF_INET, SOCK_STREAM, getprotobyname("tcp")) || die("$0: can not open tcp socket: $OS_ERROR\n"); # errors on this not that critical setsockopt(SOCKET1, SOL_SOCKET, SO_REUSEADDR, 1); bind(SOCKET1, sockaddr_in(13326, INADDR_ANY)) || die("$0: Can not bind to socket: $OS_ERROR\n"); listen(SOCKET1, 10) || die("$0: Can not listen on socket: $OS_ERROR\n"); vec($rin, fileno(SOCKET), 1)=1; vec($rin, fileno(SOCKET1), 1)=1; if (open(CACHE,"<$CACHE_FILE")) { while () { chomp; ($ip, $rest) = split /\|/, $_, 2; $data{$ip} = $_; } } close(CACHE); $last_sync=time; while (1) { $nfound=select($rout=$rin, undef, undef, 60); $cur_time=time; if ($nfound) { if (vec($rout, fileno(SOCKET),1)) { $ipaddr = recv(SOCKET, $data, 256, 0) || print STDERR "$0: error on recv call: $OS_ERROR\n"; ($port, $ip) = sockaddr_in($ipaddr); $host = inet_ntoa $ip; ($name, $rest) = split /\|/, $data; if ($name ne "put.your.hostname.here") { $data{$host} = "$host|$cur_time|$data"; $stats_updatehits++; } } if (vec($rout, fileno(SOCKET1),1)) { # This is overly basic - if there are enough servers # where the output won't fit in the outgoing socket, # this will block. However, if we fork, we open # ourselves up to someone intentionally designing something # that causes these to block, and then have us fork a huge # number of process potentially filling up our proc table. if ($ipaddr=accept NEWSOCKET, SOCKET1) { ($port, $ip ) = sockaddr_in( $ipaddr ); $dq = join('.',unpack('C4', $ip)); if ($ip_times{$dq} > time) { close(NEWSOCKET); } else { $ip_times{$dq} = time + $IP_INTERVAL; foreach $i (keys %data) { # Report idle time to client, and not last update # as we received in seconds since epoch. ($ip, $time, $rest) = split /\|/, $data{$i}, 3; $newtime = $cur_time - $time; print NEWSOCKET "$ip|$newtime|$rest\n"; } close(NEWSOCKET); $stats_requesthits++; } } } } # Need to generate some files. This is also where we remove outdated # hosts. if ($last_sync+$UPDATE_SYNC < $cur_time) { $last_sync = $cur_time; open(CACHE,">$CACHE_FILE"); open(HTML,">$HTML_FILE"); print HTML 'Crossfire Server List

Crossfire Server List

'; $stats_totalplayers = 0; $stats_totalservers = 0; foreach $i (keys %data) { $stats_totalservers++; ($ip, $time, @rest) = split /\|/, $data{$i}; if ($time+$REMOVE_SERVER<$cur_time) { delete $data{$i}; } else { print CACHE "$data{$i}\n"; $elapsed = int(($cur_time - $time)/60); $gmtime = gmtime($time); print HTML ""; print HTML "\n"; $stats_totalplayers += int($rest[2]); } } $gmtime = gmtime($cur_time); print HTML "
IP AddressLast Update Date/TimeLast Update Minutes Elapsed HostnameNumber of PlayersVersionComment
$i$gmtime$elapsed$rest[0]$rest[1]$rest[2]$rest[3]

The server name is reported by the server, while the ip address is determined by the incoming data packet. These values may not resolve to the same thing in the case of multi homed hosts or multi ip hosts.

All times are in GMT.

Last Updated: $gmtime

"; close(HTML); close(CACHE); open(STATS,">$STATS_FILE"); print STATS "$stats_updatehits:$stats_requesthits:$stats_totalservers:$stats_totalplayers\n"; close(STATS); } } crossfire-1.70.0/utils/compile0000755000014500000120000000727111732535033013231 00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2009-10-06.20; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software # Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use `[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: crossfire-1.70.0/utils/player_dl.pl.in0000644000014500000120000001645011731300533014561 00000000000000#!/usr/bin/perl -w ################## # Playerfile download utility. # Version 1.2 #### # Note: This file requires the CGI.pm module to operate. # The player_dl.html file is a basic web page which # can be used for downloads. # # This CGI script allows players to download their players # files through a web interface. It does password checking # and has some extra options. # # Note 2: The player files and directories need to be readable # by whatever uid runs this program. In many cases, this may be # nobody or apache or whatever. This script does not differentiate # invalid password or lack of ability to read player files. If # you get invalid name/password combos and you're sure you're # entering them correctly, check file permissions. # # Note 3: on some systems, differnet password encryption schemes # are used. Eg, on windows, no encryption is used at all, while # on others, if des_crypt is available, that is used instead. # this script would need modification to cover those cases. # #### # Copyright (c) 2003 by Philip Stolarczyk # This program is free software; you can redistribute it # and/or modify it under the terms of the GNU General Public # License as published by the Free Software Foundation; # either version 2 of the License, or (at your option) any # later version. # This program is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU General Public License for more # details. #### # Config options: # # Where the tar program is located. $tar = '@TAR@'; $prefix="@prefix@"; # Where the crossfire directory is located. $crossfire_home = "@pkgstatedir@/players"; # Where to save temporary files $temp_dir = '/tmp'; # How often a player can have their file sent to them, in seconds. (ie. 3600 is once/hour), set to 0 to disable. $timelimit = 3600; # Where to save information on when which player files were downloaded, for the time limit function. $statefile = "$temp_dir/pldl.dat"; # Whether to delete the player's file after they download it. $delete_player = 0; # #### # BUGS: # Systems that do NL to CRLF interpretation on CGI output # will corrupt the .tar file. This includes Microsoft # Windows systems. I haven't found any solution. ################## # Code begins. use CGI; use CGI::Carp 'fatalsToBrowser'; $CGI::POST_MAX=1024; # max 1K posts $CGI::DISABLE_UPLOADS = 1; # no uploads $q = new CGI; # Verify that player name contains no invalid characters. $playername = ''; $playername = $q->param('playername') if $q->param('playername'); $playername =~ s/[^A-Za-z_\-]//g; # No invalid chars $playername =~ s/^(.{1,64}).*$/$1/; # Max 64 chars, (really it's 16 or 32 in the server) # Default to not validated, until the password is checked. $valid = 0; # No error to report yet. $errormsg = ''; # We want to the time we ran to be consistent, even if it takes a couple seconds. $time = time(); # Validate password $password = $q->param('password'); if ($playername) { # Make sure that the user typed in a playername. if ((open PLAYERFILE, "$crossfire_home/$playername/$playername.pl") # Make sure the player's file exists or (open PLAYERFILE, "$crossfire_home/$playername/$playername.pl.dead")) { # Or use the dead file, if no player is alive foreach () { chomp; chomp; # Do actual checking of password. if ( /^password (.*)$/ ) { $cp = crypt($password,$1); if ($cp eq $1) { $valid = 1; } } } close PLAYERFILE; } } if (!$valid) { $errormsg = 'Invalid username or password' }; # If the player is validated, and we're limiting how often players can download their files, do so. if ($valid and $timelimit and $statefile) { open STATEFILE, "<$statefile"; @contents = ; close STATEFILE; # Don't allow more than 1024 players to download their files per $timelimit seconds. # This is to prevent STATEFILE from getting too large. if ($#contents > 1024) { $valid = 0; $errormsg = 'Too many players have tried to download their files recently. Please wait a bit before trying again.\n'; } # Check timestamp of last download for this player foreach (@contents) { chomp; chomp; if (/^DL $playername (.*)$/) { # $1 is the last time the file was DLed. if ($time > ($timelimit + $1)) { $valid = 0; $errormsg = 'You just downloaded your file. Wait a bit before trying again.'; } } } } if ($valid) { # Create and send file # Create a new archive # Sending binary data. # Add content-disposition, in this way, the browser (at least mozilla) # will use it as the default filename, instead of the cgi script name. print $q->header(-type=>"application/x-compressed-tar", "-content-disposition"=>"inline; filename=\"$playername.tar\""); # Change to player directory, so that long pathname is not included in # sent file. chdir("$crossfire_home"); # archive up the player system("$tar -cf - $playername"); # 'Delete' player's files, if applicable. (technically rename them, to hide from server.) if ($valid and $delete_player) { @files= glob("$crossfire_home/$playername/*"); # Rename all files except *.tar foreach (@files) { next if ( /\.tar$/i ); rename $_, "$_.downloaded"; } } # Set timestamp of last download for this player, if applicable. # Also, remove outdated player download timestamps, if applicable. if ($timelimit > 0 and $statefile) { if (open STATEFILE, "<$statefile") { @contents = ; close STATEFILE; } else { @contents = (); } if (open STATEFILE, ">$statefile") { foreach (@contents) { chomp; chomp; if (/^DL (.*) (.*)$/) { # All lines starting with DL are download time records. my ($playerdownloaded, $timedownloaded) = ($1, $2); # If this player just downloaded their file, don't copy them yet. We update their timestamp later. next if ($valid and ($playerdownloaded eq $playername)); # If this record has expired, don't copy it. next if (($timedownloaded + $timelimit) < $time); # Otherwise, copy the record to the new state file. print "$_\n"; } else { # Allow other lines in this file. print "$_\n"; } } # If this player downloaded their file, save it. if ($valid) { print STATEFILE "DL $playername $time\n"; } close STATEFILE; } else { die "Unable to save state to file $statefile.\n"; } } } # If no file was sent, send a form and any error messages. if (!$valid) { print $q->header('text/html'); # Print header print $q->start_html('Download your player file'); print "\n\n\n"; # print any error message that may have occured. if ($errormsg) { print $q->h3("ERROR: ". $errormsg), $q->br(), $q->br(); } # Print warnings if $delete_player is enabled. if ($delete_player) { print <<'(END)';

WARNING:
Downloading your file will remove it from the server.  If the
download fails, contact the system administrator, and they may
be able to retrieve the file.
(END) } print $q->h2("Download your player file:"); # Print generic form to allow player to download their file. print $q->start_form(), 'Character name: ', $q->textfield('playername'), $q->br(), 'Character password: ' , $q->password_field('password'), $q->br(), $q->submit('Download'), $q->reset('Clear Entries'), $q->end_form(); print $q->end_html(); } crossfire-1.70.0/utils/config.guess0000444000014500000120000012522411661512173014166 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-12-13' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; x86:Interix*:[345]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^LIBC/{s: ::g;p;}'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: crossfire-1.70.0/utils/config.sub0000444000014500000120000007662711661512171013643 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. timestamp='2005-12-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m32c) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; m32c-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: crossfire-1.70.0/utils/cfmeta-rrd0000755000014500000120000000256311731300533013616 00000000000000#!/bin/bash # Crossfire metaserver statistics generator script # Copyright (c) 2005 Heikki Hokkanen # License: GPLv2 # the stats file format is: # updatehits:requesthits:totalservers:totalplayers statsfile=/var/tmp/meta_xfire.stats rrdfile=cfstats.rrd if [ ! -f ${rrdfile} ]; then # daily (5min), weekly (30min), monthly (2h), yearly (1d) # (24*3600)/300 = 288 # (7*24**3600)/(300*6) = 336 # (5*7*24*3600)/(7200) = 420 rrdtool create ${rrdfile} \ DS:updates:COUNTER:600:0:U \ DS:requests:COUNTER:600:0:U \ DS:servers:GAUGE:600:0:U \ DS:players:GAUGE:600:0:U \ RRA:AVERAGE:0.5:1:288 \ RRA:AVERAGE:0.5:6:336 \ RRA:AVERAGE:0.5:24:420 \ RRA:AVERAGE:0.5:288:3650 \ RRA:MAX:0.5:1:288 \ RRA:MAX:0.5:6:336 \ RRA:MAX:0.5:24:420 \ RRA:MAX:0.5:288:3650 fi # update def=" DEF:updates=${rrdfile}:updates:AVERAGE DEF:requests=${rrdfile}:requests:AVERAGE DEF:servers=${rrdfile}:servers:AVERAGE DEF:players=${rrdfile}:players:AVERAGE " gfx=" LINE1:updates#00CC00:updates LINE1:requests#0000CC:hits LINE1:servers#00FFFF:servers LINE1:players#FF0000:players " if [ "$1" == "graph" ]; then rrdtool graph stats-day.png $def $gfx rrdtool graph stats-week.png $def $gfx -s '-8days' rrdtool graph stats-month.png $def $gfx -s '-1month' rrdtool graph stats-year.png $def $gfx -s '-1year' else rrdtool update ${rrdfile} N:$(cat ${statsfile}) fi crossfire-1.70.0/utils/depcomp0000755000014500000120000004426711732535034013237 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: crossfire-1.70.0/utils/missing0000755000014500000120000002623311732535033013251 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: crossfire-1.70.0/utils/crossloop.web0000644000014500000120000000651611732537036014403 00000000000000#!/bin/bash # # This is a replacement for the crosserv.pl perl script., # No point in using perl for such a simple task. # This script 'archives' relevent crash information in some # directory, and sends a mail message informing people of # the crash. The mail message includes the backtrace info. # This was originally written by Bob Tanner, modified by Mark Wedel # NOTE: Before using this script, some of the variables at the top # will need to be changed. Also note that make install will not # overwrite this file if it already exists. # Note2: This script uses $HOME/.gdbweb as the script used to # feed to gdb. This file should be like: # echo \n(gdb) Executing command "bt full":\n\n # bt full # echo \n(gdb) Executing command "up" (20 times):\n\n # up # up (repeat 18 more times) # # due to variable substitution, we need all of this for it to # work. prefix="/usr/games/crossfire" exec_prefix="${prefix}" bindir="${exec_prefix}/bin" CROSSFIRE="$bindir/crossfire-server" # This can include multiple people, just seperate them by commas. MAILTO="master@hugin" # This is the program used to send out the mail message. It needs # to support the -s (subject) option. On SysV systems, this may be # /usr/ucb/mail. MAIL=/usr/bin/Mail # URL that contains the publicly available crash information. # Thi is only used in the mail message that is sent out to make it # easier for people to go to the web site. URL="http://www.metalforge.org/core/" MAXRESTART=500 # This is the publicly available directory that will contain the log # and core files. HTMLDIR="$HOME/public_html" # This is where the source resides on the server. This is used to # get better information on backtraces. SRCDIR="/export/home/crossfire/crossfire-CVS" ulimit -c unlimited logcount=0 if [ ! -d $HTMLDIR ]; then echo "$HTMLDIR does not exist. Aborting." exit 1 fi while [ ! "$logcount"x = "$MAXRESTART"x ]; do echo "Starting Crossfire `date` for the $logcount time..." 1>$HTMLDIR/server.$$.$logcount.log 2>&1 $CROSSFIRE -d 2>>$HTMLDIR/server.$$.$logcount.log 1>&2 if [ -f core ] ; then echo "
" > $HTMLDIR/backtrace.$$.$logcount.html
	/usr/bin/gdb -batch -d $SRCDIR -x $HOME/.gdbweb $CROSSFIRE core >> $HTMLDIR/backtrace.$$.$logcount.html
	if [ $? -ne 0 ]; then
	  echo "gdb failed for some reaons." >> $HTMLDIR/backtrace.$$.$logcount.html
 	fi
	echo "
" >> $HTMLDIR/backtrace.$$.$logcount.html mv core $HTMLDIR/core.$$.$logcount if [ $? -ne 0 ]; then echo "Could not move core file." break fi /usr/bin/gzip -9 $HTMLDIR/core.$$.$logcount & /usr/bin/gzip -9 $HTMLDIR/server.$$.$logcount.log & /bin/chmod 644 $HTMLDIR/core*.gz echo "Crossfired crashed at `date`. Crash instance is $logcount." > /tmp/crossloop.web.$$ echo "The core files and server log can be found at" >> /tmp/crossloop.web.$$ echo "$URL/backtrace.$$.$logcount.html" >> /tmp/crossloop.web.$$ echo "$URL/core.$$.$logcount.gz" >> /tmp/crossloop.web.$$ echo "$URL/server.$$.$logcount.log.gz" >> /tmp/crossloop.web.$$ cat /tmp/crossloop.web.$$ $HTMLDIR/backtrace.$$.$logcount.html | $MAIL -s "Crossfire crashed." $MAILTO @RM@ /tmp/crossloop.web.$$ else # may or may not want to keep the old one around. #@RM@ $HTMLDIR/backtrace.$$.$logcount.html # Need some statement here for the else/fi to work. /bin/false fi logcount=`expr $logcount + 1` sleep 10s done crossfire-1.70.0/utils/player_dl.html0000644000014500000120000000050211731300533014474 00000000000000
Character name:

Character password:

crossfire-1.70.0/utils/crossloop.web.in0000755000014500000120000000645611731300533015003 00000000000000#!/bin/bash # # This is a replacement for the crosserv.pl perl script., # No point in using perl for such a simple task. # This script 'archives' relevent crash information in some # directory, and sends a mail message informing people of # the crash. The mail message includes the backtrace info. # This was originally written by Bob Tanner, modified by Mark Wedel # NOTE: Before using this script, some of the variables at the top # will need to be changed. Also note that make install will not # overwrite this file if it already exists. # Note2: This script uses $HOME/.gdbweb as the script used to # feed to gdb. This file should be like: # echo \n(gdb) Executing command "bt full":\n\n # bt full # echo \n(gdb) Executing command "up" (20 times):\n\n # up # up (repeat 18 more times) # # due to variable substitution, we need all of this for it to # work. prefix="@prefix@" exec_prefix="@exec_prefix@" bindir="@bindir@" CROSSFIRE="$bindir/crossfire-server" # This can include multiple people, just seperate them by commas. MAILTO="master@hugin" # This is the program used to send out the mail message. It needs # to support the -s (subject) option. On SysV systems, this may be # /usr/ucb/mail. MAIL=/usr/bin/Mail # URL that contains the publicly available crash information. # Thi is only used in the mail message that is sent out to make it # easier for people to go to the web site. URL="http://www.metalforge.org/core/" MAXRESTART=500 # This is the publicly available directory that will contain the log # and core files. HTMLDIR="$HOME/public_html" # This is where the source resides on the server. This is used to # get better information on backtraces. SRCDIR="/export/home/crossfire/crossfire-CVS" ulimit -c unlimited logcount=0 if [ ! -d $HTMLDIR ]; then echo "$HTMLDIR does not exist. Aborting." exit 1 fi while [ ! "$logcount"x = "$MAXRESTART"x ]; do echo "Starting Crossfire `date` for the $logcount time..." 1>$HTMLDIR/server.$$.$logcount.log 2>&1 $CROSSFIRE -d 2>>$HTMLDIR/server.$$.$logcount.log 1>&2 if [ -f core ] ; then echo "
" > $HTMLDIR/backtrace.$$.$logcount.html
	/usr/bin/gdb -batch -d $SRCDIR -x $HOME/.gdbweb $CROSSFIRE core >> $HTMLDIR/backtrace.$$.$logcount.html
	if [ $? -ne 0 ]; then
	  echo "gdb failed for some reaons." >> $HTMLDIR/backtrace.$$.$logcount.html
 	fi
	echo "
" >> $HTMLDIR/backtrace.$$.$logcount.html mv core $HTMLDIR/core.$$.$logcount if [ $? -ne 0 ]; then echo "Could not move core file." break fi @GZIP@ -9 $HTMLDIR/core.$$.$logcount & @GZIP@ -9 $HTMLDIR/server.$$.$logcount.log & /bin/chmod 644 $HTMLDIR/core*.gz echo "Crossfired crashed at `date`. Crash instance is $logcount." > /tmp/crossloop.web.$$ echo "The core files and server log can be found at" >> /tmp/crossloop.web.$$ echo "$URL/backtrace.$$.$logcount.html" >> /tmp/crossloop.web.$$ echo "$URL/core.$$.$logcount.gz" >> /tmp/crossloop.web.$$ echo "$URL/server.$$.$logcount.log.gz" >> /tmp/crossloop.web.$$ cat /tmp/crossloop.web.$$ $HTMLDIR/backtrace.$$.$logcount.html | $MAIL -s "Crossfire crashed." $MAILTO @RM@ /tmp/crossloop.web.$$ else # may or may not want to keep the old one around. #@RM@ $HTMLDIR/backtrace.$$.$logcount.html # Need some statement here for the else/fi to work. /bin/false fi logcount=`expr $logcount + 1` sleep 10s done crossfire-1.70.0/utils/Makefile.am0000644000014500000120000000221711731540050013674 00000000000000nodist_bin_SCRIPTS = crossloop.pl crossloop player_dl.pl dist_bin_SCRIPTS = crossloop.web nodist_pkglibexec_SCRIPTS = dist_pkglibexec_SCRIPTS = mktable.script add_throw.perl metaserver.pl dist_noinst_SCRIPTS = ad2c.script mktable.script player_dl.html cfmeta-rrd EXTRA_DIST = AM_CPPFLAGS = -I$(top_srcdir)/include CLEANFILES = crossloop.pl crossloop SED = sed # For some reason, Sun's make fails if you try to use $< # in the following entries. Sun's man page does say $< # is legal. Easy enough to just replace them with real entries # however. crossloop.pl: crossloop.pl.tmpl $(SED) s%BINDIR%$(bindir)%g < crossloop.pl.tmpl > crossloop.pl crossloop: crossloop.tmpl $(SED) s%BINDIR%$(bindir)%g < crossloop.tmpl > crossloop if MAPPER noinst_PROGRAMS = crossfire-mapper crossfire_mapper_SOURCES = mapper.c crossfire_mapper_INCLUDES = -I ../include crossfire_mapper_DEPENDENCIES = ../common/libcross.a crossfire_mapper_LDADD = ../common/libcross.a $(GD_LIBS) $(crossfire_mapper_DEPENDENCIES) : for DEP in $(crossfire_mapper_DEPENDENCIES); \ do \ pushd `dirname $${DEP}` >/dev/null; \ $(MAKE) `basename $${DEP}`; \ popd >/dev/null; \ done; endif crossfire-1.70.0/utils/install-sh0000755000014500000120000003253711732535033013662 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: crossfire-1.70.0/utils/scores.pl.in0000644000014500000120000002351411731300533014103 00000000000000#!@PERL@ # scores.pl # (c) Pertti Karppinen a.k.a roWer # # thanks for Sami Ylönen a.k.a klux for some cleaning up # # This program is free software; you can redistribute it # and/or modify it under the terms of the GNU General Public # License as published by the Free Software Foundation; # either version 2 of the License, or (at your option) any # later version. # This program is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU General Public License for more # details. # This should get run out of cron like: # 0,5,10,15,20,25,30,35,40,45,50,55 * * * * $HOME/crossfire/var/www/bin/scores.pl > /dev/null 2>&1 # As a note, if you have a lot of players, you may want to run this less often. This # reads through all the player files on the server to generate this information. # use File::Basename; #the name of the server admin my $admin_name="Some Admin"; #the email of the server admin my $admin_email="Some.Admin@Some.Where"; #html output file my $outfile="/var/www/html/cscores.html"; #complete url to the output my $scoreurl="/cscores.html"; my $timezone=`date +%Z`; #Your Crossfire folder my $crossfire_home="@prefix@"; #background color of the webpage my $bgcolor="#eeeeee"; #background color of the outer table my $outertablebgcolor="#dddddd"; #background color of the inner table my $innertablebgcolor="#dddddd"; #background color for my $tabletrcolor="#a9b4f2"; #the title of your score webpage my $title="Crossfire scores"; #the levels =) # MSW Note - we should really be clever and read the exp_table # file to dynamically generate this. my @levels=(0,2000,4000, 8000, 16000,32000,64000,125000,250000, 500000,900000,1400000,2000000,2600000, 3300000,4100000,4900000,5700000,6600000, 7500000,8400000,9300000,10300000,11300000, 12300000,13300000,14400000,15500000,16600000, 17700000,18800000,19900000,21100000,22300000, 23500000,24700000,25900000,27100000,28300000, 29500000,30800000,32100000,33400000,34700000, 36000000,37300000,38600000,39900000,41200000, 42600000,44000000,45400000,46800000,48200000, 49600000,51000000,52400000,53800000,55200000, 56600000,58000000,59400000,60800000,62200000, 63700000,65200000,66700000,68200000,69700000, 71200000,72700000,74200000,75700000,77200000, 78700000,80200000,81700000,83200000,84700000, 86200000,87700000,89300000,90900000,92500000, 94100000,95700000,97300000,98900000,100500000, 102100000,103700000,105300000,106900000,108500000, 110100000,111700000,113300000,114900000,116500000, 118100000,119700000,121300000,122900000,124500000, 126100000,127700000,129300000,130900000,785400000, 1570800000); my $DEBUG=0; #prototypes sub parse_file($); sub html_print_player($@); sub html_print_table_header(); sub html_print_header(); sub html_print_footer(); sub read_dms(); my @files= glob("$crossfire_home/var/crossfire/players/*/*.pl"); foreach(sort @files) { print "$_\n" if $DEBUG; parse_file($_); } for($i=0;$i<$#scores+1;$i++) { my $exp=$scores[$i][6]; my $name=$scores[$i][0]; $score_hash{$name}=$exp; $ranking{$name}=$i; } my %dms; read_dms(); my $rank=1; $saved_exp=-1; $saved_rank=-1; open(OUT,">$outfile") or die("Couldn't open outputfile $outfile: $!\n"); my $ofh=select(OUT); $|=1; html_print_header(); html_print_table_header(); foreach(sort {$score_hash{$b} <=> $score_hash{$a}} keys %ranking) { my $i=$ranking{$_}; my @tmp; print "$scores[$i][0]\t$scores[$i][6]\n" if $DEBUG; for($j=0;$j<12;$j++) { $tmp[$j]=$scores[$i][$j]; } html_print_player($rank++,@tmp); } print "\n"; html_print_footer(); close(OUT); select($ofh); exit 0; sub parse_file($) { my $player_file=shift; my($name,$title,$race,$class,$killer,$exp,$map,$maxhp,$maxsp,$maxgrace,$level,$god); my $state=0; my $count=0; my $no_class=0; $killer="left"; $god=" "; open(PLAYER_FILE,"$player_file") or die("autch $!"); while() { if(/no_class_face_change/) { $no_class=1; } if($state==0) { if(/^title/) { /^title\s*(.*)$/; $title=$1; $count++; next; } elsif(/^map/) { chomp; $map=basename($_); $count++; next; } $state=2 if($count==2); $state=2 if(/^arch.*_player/ || /^arch.*pl_.*/); next unless($state==2); } if($state==2||$state==3) { next unless($state==3||/^arch.*_player/ || /^arch.*pl_.*/); next if(/^name_pl/); if($state==2&&/^arch.*_player/) { /^arch\s*(.*?)_player/; $race=$1; $count++; $state=3; next; } if($state==2&&/^arch.*pl_.*/) { /^arch.*pl_(\S*)/; $race=$1; $race =~ s/_/ /g; $count++; $state=3; next; } if(/^title/) { /^title\s*(.*)$/; $title=$1; $count++; next; } if(/^name/) { /^name\s*(.*)$/; $name=$1; $count++; next; } if(/^face/) { /^face\s*([^_]*).*\.\d+/; $class=$1; $count++; next; } if(/^maxhp/) { /^maxhp\s*(\d*)/; $maxhp=$1; $count++; next; } if(/^maxsp/) { /^maxsp\s*(\d*)/; $maxsp=$1; $count++; next; } if(/^maxgrace/) { /^maxgrace\s*(\d*)/; $maxgrace=$1; $count++; next; } if(/^exp/) { /^exp\s*(\d*)/; $exp=$1; $count++; next; } if(/^level/) { /^level\s*(\d*)/; $level=$1; $count++; next; } # $state=4 if($count==8); $state=4 if(/^arch/ || /^end/); next; } elsif($state==4) { next unless(/^arch skill_praying/); $state=5; next; } elsif($state==5) { $state=6 if(/^end/); next unless(/^title/); /^title\s*(.*)/; $god=$1; $state=6; } } close(PLAYER_FILE); $class=$race if($no_class); $title=$class unless defined $title; if(!defined $level) { for($level=0;$level<$#levels;$level++) { last if($exp<$levels[$level]); } } if(defined $exp) { my @tmp= ($name, $title ,$race,$class,$killer,$map,$exp,$level,$maxhp,$maxsp,$maxgrace,$god); push(@scores,\@tmp); print STDERR "$name the $title ($race $class) $killer the game on map $map with $exp points (level $level)" if $DEBUG; print STDERR " and maxhp of $maxhp, maxsp of $maxsp and maxgrace" if $DEBUG; print STDERR " (from $god)" if (defined $god && $DEBUG); print STDERR " of $maxgrace.\n" if $DEBUG; } } sub html_print_player($@) { my($rank,@table)=@_; my $name = $table[0]; my $title = $table[1]; my $race = $table[2]; my $class = $table[3]; my $killer = $table[4]; my $map = $table[5]; my $exp = $table[6]; my $level = $table[7]; my $maxhp = $table[8]; my $maxsp = $table[9]; my $maxgrace = $table[10]; my $god = $table[11]; print "\n"; if ($saved_exp!=$exp) { $saved_exp=$exp; $saved_rank=$rank; } if ($saved_rank<11) { print " $saved_rank.\n"; } else { print " $saved_rank.\n"; } if ($dms{$name}) { print " $name the $title DM\n"; } else { print " $name the $title\n"; } print " $race\n"; print " $exp\n" unless($exp>=785400000); print " $exp\n" if($exp>=785400000); print " $level\n"; print " $maxhp\n"; print " $maxsp\n"; print " $maxgrace\n"; print " $god\n"; print " $map\n"; print "\n"; } sub html_print_table_header() { print "\n"; print "\n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print "\n"; } sub html_print_header() { print "\n"; print "$title\n"; print "\n"; print "\n"; print << "EOF"; EOF print "\n"; print "
\n"; print "
RankCharacterRaceScoreLevelMaxHPMaxSPMaxGPGodLocation
\n"; print "

$title

\n"; } sub html_print_footer() { my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year+=1900; my @months=("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); my @days=("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); print "Back\n\n"; print "
\n
$admin_name
\n"; printf ("Last modified: $days[$wday] $months[$mon] $mday %2.2d:%2.2d:%2.2d $timezone $year\n",$hour,$min,$sec); print "
\n"; print "\n"; } sub read_dms() { open(DMLIST, "$crossfire_home/etc/crossfire/dm_file"); while() { next if(/^\s*#/); chomp; /\s*([^\s:]+):/; $dms{$1}=1; } close(DMLIST); } crossfire-1.70.0/utils/crossloop.tmpl.in0000644000014500000120000000104511731300533015164 00000000000000#!/bin/sh # # This is a replacement for the crosserv.pl perl script., # No point in using perl for such a simple task. CMDNAME="BINDIR/crossfire-server" maxrestart=500 logdir="/tmp/crosservlog" logcount=0 rm -rf $logdir mkdir $logdir while [ ! "$logcount"x = "$maxrestart"x ]; do echo "Starting Crossfire `date` for the $logcount time..." 1>$logdir/$logcount 2>&1 $CMDNAME -d 2>>$logdir/$logcount 1>&2 if [ -f core ] ; then mv core core.$logcount @GZIP@ core.$logcount fi logcount=`expr $logcount + 1` sleep 50 done crossfire-1.70.0/utils/mapper.c0000644000014500000120000040542711731300533013302 00000000000000/* * Crossfire map browser generator. * * Author: Nicolas Weeger , (C) 2006, 2007, 2008. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /** * @file mapper.c * This program generates map browsing web pages. * * Quick run: without arguments, will make sensible choices. * * For help, try the -help option. * * The following information is generated: * - a page per map * - a page per region * - a global map index * - the world map, including regions information * - the world map, with exits and blocking zones * - the world map, with elevation information. * * Since this program browses maps from the first map, only maps linked from there will be processed. * * Maps are generated as the server sees them, that is with weather effects, treasures instead of markers, * and things like that. * * For maps, 2 pictures are generated, one real size and one small-size. * * Three maps are generated for the world: raw world map, world map with region information, region information only. * * Maps are always sorted, by the map name (part after the last /). * * Files are generated based on templates, where tags are replaced by their runtime value. * * Templates are recursively included. Here is the list: * - map.template: main map template. * - map_no_exit.template: template to use when no exit on the map. * - map_with_exit.template: template to use when there are exits on the map. * - map_exit.template: template to use for each exit on the map. * - map_lore: template to use to insert the map's lore. * - map_no_lore: template when no lore for the map. * - map_no_quest.template: when the map is linked to no quest. * - map_with_quests.template: the map is linked to at least one quest. * - map_one_quest.template: one quest link. * - map_no_monster: used when no monster on map. * - map_monster_before: applied before the monster list. * - map_monster_one: one monster on the map. * - map_monster_between: added after each monster except the last. * - map_monster_after: added after the last monster in the list. * - region.template: region page template. * - region_letter: template for one letter * - region_map.template: one map in a region * - world.template: world map template * - world_row.template: one row of world maps. * - world_map.template: one map in the template. * - index.template: global map index. * - index_letter.template: one letter in the index * - index_map.template: one map in the whole index * - index_region.template: region index template. * - index_region_region.template: one region in the index. * - level.template: index of maps by level. * - level_value.template: one level. * - level_map.template: one map in the level. * - quests.template: quest index. * - quests_quest.template: one quest. * - quests_map.template: one map in a quest. * * * Tags must be in the form \#TAG#. To have a # in the code, please put ##. Valid tags are: * * - map: * - NAME: map relative path * - MAPPATH: full path to currently generated file. * - MAPNAME: name of the map (part of the path after last /). * - MAPPIC: name of full-size pic of the map. * - MAPSMALLPIC: name of reduced-size pic of the map. * - MAPEXIT: text generated by map_with_exit or map_no_exit. * - INDEXPATH: path to index.html file. * - REGIONPATH: path to region's file. * - REGIONNAME: name of map's region. * - REGIONINDEXPATH: path to region index file. * - WORLDMAPPATH: path to world map file. * - MAPLORE: map's lore. * - MAPLEVEL: level as defined in the map. * - MINMONSTER and MAXMONSTER: minimum and maximum level of monsters on the map. * - map_no_exit: * - tags for map, except MAPEXIT. * - map_with_exit: * - tags for map, except MAPEXIT. * - EXIT: text generated by the map exits. * - map_exit: * - map's tags. * - EXITNAME: name of exit (part of the path after /). * - EXITPATH: relative path of exit's page. * - map_lore: * - tags for map, except MAPEXIT. * - MAPLORE: map's lore. * - map_no_lore: * - tags for map, except MAPEXIT. * - map_with_quests: * - tags for map * - QUESTS: result of map_one_quest processing. * - map_one_quest: * - NAME: map's name. * - PATH: path to the quest page from the index. * - TEXT: text associated to the map about the quest. * - map_no_quest: not processed. * - map_no_monster: * - map's tags * - map_monster_before: * - map's tags * - map_monster_one: * - NAME: monster's name. * - map_monster_between: * - map's tags * - map_monster_after: * - map's tags * - region: * - MAPCOUNT: count of maps in region. * - LETTERS: text generated by region_letter processing. * - region_letter: * - region's tags, except LETTERS. * - MAPNAME: name of the map (part of the path after last /). * - MAPPATH: relative path of the map from the map's root. * - MAPHTML: relative path of HTML file for map. * - region_map: * - tags of region_letter. * - MAPNAME: name of the map (part of the path after last /). * - MAPPATH: relative path of the map from the map's root. * - MAPHTML: relative path of HTML file for map. * - world: * - MAPS: text generated by world_row processing. * - WORLDMAP: path to world map picture, with regions information. * - WORLDRAW: path to raw world map, without regions information. * - WORLDREGIONS: path to world map picture containing only regions information. * - world_row: * - MAPS: text generated by world_map processing. * - world_map: * - MAPNAME: name of the map (part of the path after last /). * - MAPPATH: relative path of the map's generated page. * - MAPLEFT, MAPTOP, MAPRIGHT, MAPBOTTOM: coordinates (in pixels) of current map in full world map. * - index: * - MAPCOUNT: count of maps. * - LETTERS: text generated by index_letter processing. * - index_letter: * - tags of index, except LETTERS. * - MAPS: text generated by index_letter processing. * - LETTER: letter being processed, uppercase. * - LETTERCOUNT: number of maps for current letter. * - index_map: * - tags of index_letter. * - MAPNAME: name of the map (part of the path after last /). * - MAPPATH: relative path of the map from the map's root. * - MAPHTML: relative path of HTML file for map. * - index_region: * - REGIONCOUNT: total number of regions. * - REGIONS: text generated by index_region_region processing. * - index_region_region: * - REGIONFILE: relative path to region page. * - REGIONNAME: region name. * - level: * - COUNT: count of different levels. * - LEVELS: result of the sub-level templates. * - level_value: * - LEVEL: current level. * - MAPS: result of the level maps templates. * - level_map: * - MAPNAME: name of the map. * - MAPPATH: relative path of the map from the index. * - quests: * - QUESTS: processing of quest. * - quests_quest: * - QUESTNAME: quest name. * - QUESTTEXT: quest description. * - QUESTMAPS: processing of quests_map. * - QUESTID: unique quest identifier, anchor to index page. * - MAINMAPPATH: path to the map defining the quest. * - MAINMAPNAME: name of the map defining the quest. * - quests_map: * - MAPPATH: path to the map. * - MAPNAME: map name. * - MAPTEXT: description associated. * * To build this program, from the utils directory: *
gcc mapper.c -I../include ../common/libcross.a -o mapper -lm -lgd
* * @todo * - split this file in multiple ones for easier maintenance * - add missing documentation on variables / functions * - add command line argument for large / small picture size * - add maximum width/height for small picture * - add slaying information to maps themselves * - make the equipment page use templates * - shop catalog * - treasure list use */ #include #include /* For strcasecmp(). */ #include #include #include #include #include #include #include #include static gdImagePtr *gdfaces; extern int nrofpixmaps; /* Found in common/image.c */ /** Information about a NPC with a custom message. */ typedef struct struct_npc_info { const char *name; /**< NPC's name. */ const char *message; /**< NPC's message. */ int x, y; /**< Coordinates in the map. */ } struct_npc_info; /** List of NPCs with a custom message. */ typedef struct struct_npc_list { struct_npc_info **npc; int count; int allocated; } struct_npc_list; /** Collection of races. */ typedef struct struct_race_list { struct struct_race **races; /**< Races on the list. */ int count; /**< Number of races. */ int allocated; /**< Allocated space. */ } struct_race_list; /** Utility structure to group map-quest link structure. */ typedef struct { struct struct_map_in_quest **list; int count; int allocated; } struct_map_in_quest_list; /** List of maps. */ typedef struct { struct struct_map_info **maps; int count; int allocated; } struct_map_list; /** Map information. */ typedef struct struct_map_info { char *path; char *name; char *filename; char *lore; region *cfregion; int level, pic_was_done, max_monster, min_monster; struct_map_list exits_from; struct_map_list exits_to; struct_map_in_quest_list quests; struct_map_list tiled_maps; struct_race_list monsters; struct_npc_list npcs; struct_npc_list readable; struct struct_map_info *tiled_group; int height, width; int tiled_x_from, tiled_y_from, processed; struct struct_map_info *tiles[4]; } struct_map_info; /** Maps to process or found. */ static struct_map_list maps_list; /** Pseudo-maps grouping other maps. */ static struct_map_list tiled_map_list; /** One special item (weapon, shield, ...). */ typedef struct struct_equipment { char *name; /**< Item's name. */ int power; /**< Item power as declared by the item itself. */ int calc_power; /**< Item power calculated via calc_item_power(). */ char *diff; /**< Result of get_ob_diff() with the item's clone. */ struct_map_list origin; /**< Map(s) this item is found in. */ } struct_equipment; static struct_equipment **special_equipment = NULL; /**< Special equipment list. */ static int equipment_count = 0; /**< Number of items in special_equipment. */ static int equipment_allocated = 0; /**< Allocated items in special_equipment. */ /** One monster race in the maps. */ typedef struct struct_race { char *name; /**< Monster's name. */ int count; /**< Number found on map. */ struct_map_list origin; /**< Maps to find said monster. */ } struct_race; static struct_race_list races; /**< Monsters found in maps. */ /** * Blanks a struct_race_list. * @param list * list to blank. */ static void init_race_list(struct_race_list *list) { list->races = NULL; list->count = 0; list->allocated = 0; } /** * Appends a race to a race list. * * @param race * race to add. * @param list * list to add to. * @param check * if 0, don't check if race is already on the list ; else don't make duplicated entries. */ static void add_race_to_list(struct_race *race, struct_race_list *list, int check) { if (check) { int test; for (test = 0; test < list->count; test++) { if (list->races[test] == race) return; } } if (list->allocated == list->count) { list->allocated += 50; list->races = realloc(list->races, sizeof(struct_race *)*list->allocated); } list->races[list->count] = race; list->count++; } /** Path to store generated files. Relative or absolute, shouldn't end with a / */ static char root[500]; /** Number of created pictures for GD. */ static int pics_allocated; /* Options */ static int generate_pics = 1; /**< Whether to generate the picture or not. */ static int force_pics = 0; /**< To force picture regeneration even if map didn't change. */ static int generate_index = 1; /**< Whether to do the map index or not. */ static int size_small = 16; /**< Tile size for small map */ static int map_limit = -1; /**< Maximum number of maps to browse, -1 for all. */ static int show_maps = 0; /**< If set, will generate much information on map loaded. */ static int world_map = 1; /**< If set, will generate a world map. */ static int world_exit_info = 1; /**< If set, will generate a world map of exits. */ static int tileset = 0; /**< Tileset to use to generate pics. */ static char *world_template; /**< World map template. */ static char *world_row_template; /**< One row in the world map. */ static char *world_map_template; /**< One map in a row. */ static char *map_template; /**< Map template. */ static char *map_no_exit_template; /**< World map template: no exit. */ static char *map_with_exit_template; /**< Map template: exit template. */ static char *map_exit_template; /**< Map template: one exit. */ static char *map_no_exit_to_template; /**< World map template: no exit leading to this map. */ static char *map_with_exit_to_template; /**< Map template: exits leading to this map. */ static char *map_exit_to_template; /**< Map template: one exit leading to this map. */ static char *map_lore_template; /**< Map template: lore. */ static char *map_no_lore_template; /**< Map template: no lore. */ static char *map_no_monster_template; /**< Map template: no monster. */ static char *map_monster_before_template; /**< Map template: before the monster list. */ static char *map_monster_between_template; /**< Map template: between each monster. */ static char *map_monster_one_template; /**< Map template: one monster. */ static char *map_monster_after_template; /**< Map template: after the monster list. */ static char *index_template; /**< Index page template. */ static char *index_letter; /**< Index page template: one letter, including the maps it contains. */ static char *index_map; /**< Index page template: one map. */ static char *region_template; /**< Region page template. */ static char *region_letter_template; /**< One letter for the region. */ static char *region_map_template; /**< Region page template: one map. */ static char *index_region_template; /**< Region index template. */ static char *index_region_region_template; /**< One region in the region index template. */ static char *level_template; static char *level_value_template; static char *level_map_template; static char *index_quest_template; static char *quest_template; static char *quest_map_template; static char *map_no_quest_template; static char *map_with_quests_template; static char *map_one_quest_template; /** Picture statistics. */ static int created_pics = 0; /**< Total created pics. */ static int cached_pics = 0; /**< Non recreated pics. */ /** Map output formats. */ enum output_format_type { OF_PNG = 0, /**< PNG, default value. */ OF_JPG = 1 /**< JPG. */ }; /** Extensions depending on output format. */ static const char *output_extensions[] = { ".png", ".jpg" }; /** Selected output format. */ static enum output_format_type output_format = OF_PNG; /** Quality for jpg pictures. */ static int jpeg_quality = -1; /** Whether to generate raw pics or instancied ones. */ static int rawmaps = 0; /** Whether to warn of exits without a path */ static int warn_no_path = 0; /** Region information. */ typedef struct struct_region_info { region *reg; /**< Region. */ struct_map_list maps_list; /**< Maps in the region. */ int sum_x, sum_y, sum; /**< Sum of locations, to compute name position. */ int is_world; /**< If set, this region has at least one map part of the world, thus region name should be written. */ } struct_region_info; static struct struct_region_info **regions = NULL; /**< Found regions. */ static int region_count = 0; /**< Count of regions. */ static int region_allocated = 0; /**< Allocated size of regions. */ static int list_unused_maps = 0; /**< If set, program will list maps found in directory but not linked from the first maps. */ static char **found_maps = NULL; /**< Maps found in directories. */ static int found_maps_count = 0; /**< Number of items in found_maps. */ static int found_maps_allocated = 0; /**< Allocated size of found_maps. */ /* Path/exit info */ static gdImagePtr infomap; /**< World map with exits / roads / blocking / ... */ static int color_unlinked_exit; /**< Color for exits without a path set. */ static int color_linked_exit; /**< Exit leading to another map. */ static int color_road; /**< Road or equivalent. */ static int color_blocking; /**< Block all movement. */ static int color_slowing; /**< Slows movement. */ static int **elevation_info; /**< All elevation spots in the "world_" maps. */ static int elevation_min; /**< Maximal elevation found. */ static int elevation_max; /**< Lowest elevation found. */ /* Links between regions */ static int do_regions_link = 0; static char **regions_link; static int regions_link_count = 0; static int regions_link_allocated = 0; /** Connection/slaying information. */ #define S_DOOR 0 #define S_KEY 1 #define S_CONTAINER 2 #define S_DETECTOR 3 #define S_CONNECT 4 #define S_MAX 5 /** slaying information. */ typedef struct { char *slaying; /**< Slaying value. */ struct_map_list maps[S_MAX]; } struct_slaying_info; static struct_slaying_info **slaying_info = NULL; /**< Found slaying fields. */ static int slaying_count = 0; /**< Count of items in slaying_info. */ static int slaying_allocated = 0; /**< Allocated size of slaying_info. */ /** * Initialises a list structure. * @param list * list to blank. */ static void init_map_list(struct_map_list *list) { list->maps = NULL; list->count = 0; list->allocated = 0; } static void add_map(struct_map_info *info, struct_map_list *list); static int is_special_equipment(object *item) { if (item->name == item->arch->clone.name && item->title == item->arch->clone.title) return 0; if (QUERY_FLAG(item, FLAG_NO_PICK)) return 0; if (item->move_block == MOVE_ALL) return 0; if (IS_SHIELD(item) || IS_WEAPON(item) || IS_ARMOR(item) || IS_ARROW(item) || (item->type == ROD) || (item->type == WAND) || (item->type == RING) || (item->type == AMULET)) return 1; return 0; } /** * Gets an empty struct_equipment. * @return * new item. */ static struct_equipment *get_equipment(void) { struct_equipment *add = calloc(1, sizeof(struct_equipment)); init_map_list(&add->origin); return add; } /** * Frees a struct_equipment. * * @param equip * item to free. */ static void free_equipment(struct_equipment *equip) { free(equip->diff); free(equip->name); free(equip); } /** * Searches the item list for an identical item, except maps. * * @param item * item to search. The variable may be freed, so must not be used after calling this function. * @return * item guaranteed to be unique in the item list. */ static struct_equipment *ensure_unique(struct_equipment *item) { int check; struct_equipment *comp; for (check = 0; check < equipment_count; check++) { comp = special_equipment[check]; if (strcmp(comp->name, item->name)) continue; if (comp->power != item->power) continue; if (comp->calc_power != item->calc_power) continue; if (strcmp(comp->diff, item->diff)) continue; free_equipment(item); return comp; } if (equipment_count == equipment_allocated) { equipment_allocated += 50; special_equipment = realloc(special_equipment, sizeof(struct_equipment *)*equipment_allocated); } special_equipment[equipment_count] = item; equipment_count++; return item; } /** * Adds an item to the list of special items. * * @param item * item to add. * @param map * map it is on. * @todo merge items with the same properties. */ static void add_one_item(object *item, struct_map_info *map) { struct_equipment *add = get_equipment(); StringBuffer *bf = stringbuffer_new(); int x, y; sstring name, namepl; uint32 nrof; object *base; x = item->x; y = item->y; name = item->name; namepl = item->name_pl; nrof = item->nrof; if (item->artifact != NULL) { const artifact *artifact; artifact = find_artifact(item, item->artifact); if (artifact == NULL) { LOG(llevError, "could not find artifact %s [%d] to save data\n", item->artifact, item->type); base = arch_to_object(item->arch); } else { base = arch_to_object(item->arch); give_artifact_abilities(base, artifact->item); } } else { base = arch_to_object(item->arch); } item->x = base->x; item->y = base->y; item->name = base->name; item->name_pl = base->name_pl; item->nrof = base->nrof; if (QUERY_FLAG(item, FLAG_IDENTIFIED) && !QUERY_FLAG(base, FLAG_IDENTIFIED)) { object_give_identified_properties(base); SET_FLAG(base, FLAG_IDENTIFIED); } if (QUERY_FLAG(item, FLAG_UNPAID)) SET_FLAG(base, FLAG_UNPAID); get_ob_diff(bf, item, base); object_free2(base, FREE_OBJ_NO_DESTROY_CALLBACK | FREE_OBJ_FREE_INVENTORY); add->diff = stringbuffer_finish(bf); item->x = x; item->y = y; item->name = name; item->name_pl = namepl; item->nrof = nrof; if (add->diff == NULL || strcmp(add->diff, "") == 0) { free_equipment(add); return; } add->name = strdup(item->name); add->power = item->item_power; add->calc_power = calc_item_power(item); add = ensure_unique(add); add_map(map, &add->origin); } /** * Checks if item and its inventory are worthy to be listed. * * @param item * item to check. * @param map * map the item is on. */ static void check_equipment(object *item, struct_map_info *map) { if (is_special_equipment(item)) add_one_item(item, map); FOR_INV_PREPARE(item, inv) check_equipment(inv, map); FOR_INV_FINISH(); } /** * Sort 2 struct_equipment, first on item power then name. * @param a * @param b * items to compare. * @return * -1, 0 or 1. */ static int sort_equipment(const void *a, const void *b) { const struct_equipment *l = *(const struct_equipment **)a; const struct_equipment *r = *(const struct_equipment **)b; int c = l->power-r->power; if (c) return c; return strcasecmp(l->name, r->name); } /** * Returns the race for specified name. * * @param name * monster's name. * @return * race structure. */ static struct_race *get_race(const char *name) { int test; struct_race *item; for (test = 0; test < races.count; test++) { if (strcmp(races.races[test]->name, name) == 0) { races.races[test]->count++; return races.races[test]; } } item = calloc(1, sizeof(struct_race)); item->name = strdup(name); item->count = 1; init_map_list(&item->origin); add_race_to_list(item, &races, 0); return item; } /** * Adds a monster to the monster list. * * @param monster * monster to add. Can be any part. * @param map * map to add the monster to. */ static void add_monster(object *monster, struct_map_info *map) { struct_race *race; if (monster->head && monster != monster->head) return; map->min_monster = MIN(monster->level, map->min_monster); map->max_monster = MAX(monster->level, map->max_monster); race = get_race(monster->name); add_map(map, &race->origin); add_race_to_list(race, &map->monsters, 1); } /** * Sort 2 struct_race. * @param a * @param b * items to compare. * @return * -1, 0 or 1. */ static int sort_race(const void *a, const void *b) { const struct_race *l = *(const struct_race **)a; const struct_race *r = *(const struct_race **)b; return strcasecmp(l->name, r->name); } /** * Checks if ::object is considered a road or not. * @param item * ::object to check. * @return * 1 if object is a road, 0 else. */ static int is_road(object *item) { int test; /* Archetypes used as roads. */ const char *roads[] = { "cobblestones", "flagstone", "ice_stone", "snow", NULL }; const char *partial[] = { "dirtroad_", NULL }; for (test = 0; partial[test] != NULL; test++) { if (strstr(item->arch->name, partial[test]) != NULL) return 1; } if (!QUERY_FLAG(item, FLAG_IS_FLOOR)) return 0; for (test = 0; roads[test] != NULL; test++) { if (strcmp(item->arch->name, roads[test]) == 0) return 1; } return 0; } /** * Checks if item blocks movement or not. * @param item * ::object to test. * @return * 1 if item blocks all movement, 0 else. */ static int is_blocking(object *item) { return item->move_block == MOVE_ALL ? 1 : 0; } /** * Gets the color for an elevation. * * @param elevation * elevation to get color for. * @param elevationmap * picture that will get the color. * @return * color. */ static int get_elevation_color(int elevation, gdImagePtr elevationmap) { if (elevation > 0) return gdImageColorResolve(elevationmap, 200*elevation/elevation_max, 0, 0); else return gdImageColorResolve(elevationmap, 0, 0, 200*elevation/elevation_min); } /** * Proceses exit / road / blocking information for specified map into the global infomap map. * * If map isn't a world map, won't do anything. * * @param map * map to write info for. */ static void do_exit_map(mapstruct *map) { int tx, ty, x, y; object *test; if (sscanf(map->path, "/world/world_%d_%d", &x, &y) != 2) return; x -= 100; y -= 100; for (tx = 0; tx < MAP_WIDTH(map); tx++) { for (ty = 0; ty < MAP_HEIGHT(map); ty++) { FOR_MAP_PREPARE(map, tx, ty, item) { test = HEAD(item); if (test->type == EXIT || test->type == TELEPORTER) { if (!test->slaying) gdImageSetPixel(infomap, x*50+tx, y*50+ty, color_unlinked_exit); else gdImageSetPixel(infomap, x*50+tx, y*50+ty, color_linked_exit); } else if (is_road(test)) gdImageSetPixel(infomap, x*50+tx, y*50+ty, color_road); else if (is_blocking(test)) { gdImageSetPixel(infomap, x*50+tx, y*50+ty, color_blocking); /* can't get on the spot, so no need to go on. */ break; } else if (test->move_slow != 0) gdImageSetPixel(infomap, x*50+tx, y*50+ty, color_slowing); if (item->elevation) { elevation_min = MIN(elevation_min, item->elevation); elevation_max = MAX(elevation_max, item->elevation); elevation_info[x*50+tx][y*50+ty] = item->elevation; } } FOR_MAP_FINISH(); } } } void do_auto_apply(mapstruct *m); /** * Sort values alphabetically * Used by qsort to sort values alphabetically. * @param a * First value * @param b * Second value * @return * -1 if a is less than b, 0 if a equals b, 1 else. */ static int sortbyname(const void *a, const void *b) { return (strcmp(*(const char **)a, *(const char **)b)); } /** * Concatenates a string, and free concatenated string. * * @param source * string to append to. Can be NULL. * @param add * string that is appened. Will be free()d after. Must not be NULL. * @return * new string that should be free()d by caller. */ static char *cat_template(char *source, char *add) { if (!source) return add; source = realloc(source, strlen(source)+strlen(add)+1); strcat(source, add); free(add); return source; } /** * Reads a file in memory. * * @param name * file path to read. * @param buffer * where to store. Can be left uninitialized in case of errors. * @note * will exit() with code 1 if any error occurs or if the file doesn't exist. */ static void read_template(const char *name, char **buffer) { FILE *file; struct stat info; if (stat(name, &info)) { printf("Couldn't stat template %s!\n", name); exit(1); } (*buffer) = calloc(1, info.st_size+1); if (!(*buffer)) { printf("Template %s calloc failed!\n", name); exit(1); } if (info.st_size == 0) { (*buffer)[0] = '\0'; return; } file = fopen(name, "rb"); if (!file) { printf("Couldn't open template %s!\n", name); free(*buffer); exit(1); } if (fread(*buffer, info.st_size, 1, file) != 1) { printf("Couldn't read template %s!\n", name); free(*buffer); fclose(file); exit(1); } fclose(file); } /** * Processes a template. * * Variables in the form \#VARIABLE# will be substituted for specified values. * * @param template * template to process. * @param vars * variables to replace. Array must be NULL-terminated. * @param values * variables to replace by. Must be the same size as vars, no NULL element allowed. * @return * filled-in template, that must be free()d be caller. NULL if memory allocation error. * * @note * returned string will be a memory block larger than required, for performance reasons. */ static char *do_template(const char *template, const char **vars, const char **values) { int count = 0; const char *sharp = template; int maxlen = 0; int var = 0; char *result; char *current_result; const char *end; while ((sharp = strchr(sharp, '#')) != NULL) { sharp++; count++; } if (!count) return strdup(template); if (count%2) { printf("Malformed template, mismatched #!\n"); return strdup(template); } while (vars[var] != NULL) { if (strlen(values[var]) > maxlen) maxlen = strlen(values[var]); var++; } result = calloc(1, strlen(template)+maxlen*(count/2)+1); if (!result) return NULL; current_result = result; sharp = template; while ((sharp = strchr(sharp, '#')) != NULL) { end = strchr(sharp+1, '#'); strncpy(current_result, template, sharp-template); if (end == sharp+1) { strcat(current_result, "#"); } else { current_result = current_result+strlen(current_result); var = 0; while (vars[var] != NULL && (strncmp(vars[var], sharp+1, end-sharp-1) || (strlen(vars[var]) != end-sharp-1))) /* tag must be the same length, else can take a wrong tag */ var++; if (vars[var] == NULL) printf("Wrong tag: %s\n", sharp); else strcpy(current_result, values[var]); } current_result = current_result+strlen(current_result); sharp = end+1; template = sharp; } strcat(current_result, template); return result; } /** * Computes the shortest path from one file to another. * * @param from * origin. * @param to * destination. * @param result * string that will contain the calculated path. Must be large enough, no test done. * @warning * from and to must be absolute paths (starting with /). */ static void relative_path(const char *from, const char *to, char *result) { const char *fslash; const char *rslash; result[0] = '\0'; fslash = strchr(from+1, '/'); if (!fslash) { strcpy(result, to+1); return; } rslash = strchr(to+1, '/'); while (fslash && rslash && (fslash-from == rslash-to) && strncmp(from, to, fslash-from+1) == 0) { from = fslash+1; to = rslash+1; fslash = strchr(fslash+1, '/'); rslash = strchr(rslash+1, '/'); } while (fslash) { strcat(result, "../"); fslash = strchr(fslash+1, '/'); } if (strlen(result) && result[strlen(result)-1] == '/' && *to == '/') result[strlen(result)-1] = '\0'; strcat(result, to); } /** * Sorts the strings according to the last part of the filename (after the last /). * * @param left * first string. * @param right * second string. * @return * comparison on last element, and if equal then on whole string. */ static int sort_mapname(const void *left, const void *right) { const char *l = *(const char **)left; const char *r = *(const char **)right; const char *sl = strrchr(l, '/'); const char *sr = strrchr(r, '/'); int c; if (!sl) sl = l; if (!sr) sr = r; c = strcasecmp(sl, sr); if (c) return c; return strcasecmp(l, r); } /** * Compares struct_map_info according to the map name or the path if equal. * * @param left * first item. * @param right * second item. * @return * comparison on name, and if equal then on whole path. */ static int compare_map_info(const struct_map_info *left, const struct_map_info *right) { int c; if (left->tiled_group) left = left->tiled_group; if (right->tiled_group) right = right->tiled_group; c = strcasecmp(left->name, right->name); if (c) return c; return strcasecmp(left->path, right->path); } /** * Sorts the struct_map_info according to the map name or the path if equal. * * @param left * first item. * @param right * second item. * @return * comparison on name, and if equal then on whole path. */ static int sort_map_info(const void *left, const void *right) { const struct_map_info *l = *(const struct_map_info **)left; const struct_map_info *r = *(const struct_map_info **)right; return compare_map_info(l, r); } /** * Sorts the struct_map_info according to the map's level, and if equal the name or the path. * * @param left * first item. * @param right * second item. * @return * comparison on name, and if equal then on whole path. */ static int sort_map_info_by_level(const void *left, const void *right) { const struct_map_info *l = *(const struct_map_info **)left; const struct_map_info *r = *(const struct_map_info **)right; int c = l->level-r->level; if (c) return c; return compare_map_info(l, r); } /** * Sorts an array of struct_region_info by region name. * * @param left * first region. * @param right * second region. * @return * result of strcmp() for names. */ static int sort_region(const void *left, const void *right) { return strcmp((*((struct_region_info **)left))->reg->name, (*((struct_region_info **)right))->reg->name); } /************************************ Start of quest-related definitions. ************************************/ /** Link between a quest and a map. */ typedef struct struct_map_in_quest { struct_map_info *map; /**< Linked map. */ char *description; /**< Description associated with the map for the quest. */ struct struct_quest *quest; /**< Point back to the quest. */ } struct_map_in_quest; /** One quest. */ typedef struct struct_quest { char *name; /**< Quest's name. */ char *description; /**< Description, from the main map's lore. */ int number; /**< Unique quest identifier. */ struct_map_info *mainmap; /**< Map defining the quest. Can be NULL if quest has no definition or map not processed. */ struct_map_in_quest_list maps; /**< Maps part of this quest. */ } struct_quest; static struct_quest **quests = NULL; /**< All quests in the game. */ static int quests_count = 0; /**< Count of quests. */ static int quests_allocated = 0; /**< Allocated items in quests. */ static void init_struct_map_in_quest_list(struct_map_in_quest_list *list) { list->list = NULL; list->count = 0; list->allocated = 0; } static void add_to_struct_map_in_quest_list(struct_map_in_quest_list *list, struct_map_in_quest *item) { if (list->count == list->allocated) { list->allocated += 10; list->list = realloc(list->list, sizeof(struct_map_in_quest *)*list->allocated); } list->list[list->count++] = item; } /** * Gets the information for a quest, create the field if needed. * * @param name * quest's name. * @return * information, never NULL. */ static struct_quest *get_quest_info(const char *name) { int test; struct_quest *add; for (test = 0; test < quests_count; test++) { if (strcmp(quests[test]->name, name) == 0) return quests[test]; } if (quests_count == quests_allocated) { quests_allocated += 10; quests = realloc(quests, sizeof(struct_quest *)*quests_allocated); } add = calloc(1, sizeof(struct_quest)); add->name = strdup(name); add->number = quests_count; init_struct_map_in_quest_list(&add->maps); quests[quests_count] = add; quests_count++; return add; } /** * Links a map to a quest. * * @param map * map to link. * @param name * quest name. * @param description * associated link description. Must not be NULL. */ static void add_map_to_quest(struct_map_info *map, const char *name, const char *description) { struct_map_in_quest *add; struct_quest *quest = get_quest_info(name); add = calloc(1, sizeof(struct_map_in_quest)); add->map = map; add->quest = quest; add->description = strdup(description); while (strlen(add->description) && add->description[strlen(add->description)-1] == '\n') add->description[strlen(add->description)-1] = '\0'; add_to_struct_map_in_quest_list(&quest->maps, add); add_to_struct_map_in_quest_list(&map->quests, add); } /** * Sorts 2 struct_map_in_quest, on the map's name or path. * @param left * @param right * items to compare. * @return * -1, 0 or 1. */ static int sort_struct_map_in_quest(const void *left, const void *right) { int c; const struct_map_in_quest *l = *(const struct_map_in_quest **)left; const struct_map_in_quest *r = *(const struct_map_in_quest **)right; const struct_map_info *ml = l->map; const struct_map_info *mr = r->map; if (ml->tiled_group) ml = ml->tiled_group; if (mr->tiled_group) mr = mr->tiled_group; c = strcasecmp(ml->name, mr->name); if (c) return c; return strcasecmp(ml->path, mr->path); } /** * Sets the main map for a quest. * * @param name * quest name. * @param mainmap * main map to associate. * @param description * quest description. Must not be NULL. */ static void define_quest(const char *name, struct_map_info *mainmap, const char *description) { struct_quest *quest = get_quest_info(name); if (quest->description || quest->mainmap) { printf("warning, multiple quest definition for %s, found in %s and %s.\n", quest->name, quest->mainmap ? quest->mainmap->path : "(unknown map)", mainmap->path); return; } quest->description = strdup(description); while (strlen(quest->description) && quest->description[strlen(quest->description)-1] == '\n') quest->description[strlen(quest->description)-1] = '\0'; quest->mainmap = mainmap; } /** * Extracts from the map's lore quest information if found. May modify map->lore. * * @param map * map to process. */ static void process_map_lore(struct_map_info *map) { char *start, *end, *next; char name[500]; char description[500]; start = strstr(map->lore, "@def"); while (start) { description[0] = '\0'; /* find name */ end = strstr(start, "\n"); if (end) { strncpy(name, start+5, end-start-5); name[end-start-5] = '\0'; next = end+1; end = strstr(next, "@end"); if (end) { strncpy(description, next, end-next); description[end-next] = '\0'; /* need to erase the text. */ memcpy(start, end+4, strlen(map->lore)-(end-start+3)); end = start; } else { strcpy(description, next); *start = '\0'; end = NULL; } } else { strcpy(name, start); *start = '\0'; end = NULL; } define_quest(name, map, description); start = end ? strstr(end, "@def") : NULL; } start = strstr(map->lore, "@quest"); while (start) { description[0] = '\0'; /* find name */ end = strstr(start, "\n"); if (end) { strncpy(name, start+7, end-start-7); name[end-start-7] = '\0'; next = end+1; end = strstr(next, "@end"); if (end) { strncpy(description, next, end-next); description[end-next] = '\0'; /* need to erase the text. */ memcpy(start, end+4, strlen(map->lore)-(end-start+3)); end = start; } else { strcpy(description, next); *start = '\0'; end = NULL; } } else { strcpy(name, start); *start = '\0'; end = NULL; } add_map_to_quest(map, name, description); start = end ? strstr(end, "@quest") : NULL; } } /** * Writes the global quests page. */ static void write_quests_page(void) { int quest, map; FILE *out; char path[500]; char mappath[500]; char mainmappath[500]; char questid[500]; const char *map_vars[] = { "MAPPATH", "MAPNAME", "MAPTEXT", NULL }; const char *map_vals[] = { mappath, NULL, NULL, NULL }; const char *quest_vars[] = { "QUESTNAME", "QUESTTEXT", "QUESTMAPS", "QUESTID", "MAINMAPPATH", "MAINMAPNAME", NULL }; const char *quest_vals[] = { NULL, NULL, NULL, questid, mainmappath, NULL, NULL }; const char *idx_vars[] = { "QUESTS", NULL }; const char *idx_vals[] = { NULL, NULL }; char *text_map = NULL; char *text_quest = NULL; char *text_idx = NULL; printf("Writing quest index..."); for (quest = 0; quest < quests_count; quest++) { qsort(quests[quest]->maps.list, quests[quest]->maps.count, sizeof(struct_map_in_quest *), sort_struct_map_in_quest); for (map = 0; map < quests[quest]->maps.count; map++) { snprintf(mappath, sizeof(mappath), "%s.html", quests[quest]->maps.list[map]->map->path+1); map_vals[1] = quests[quest]->maps.list[map]->map->name; map_vals[2] = quests[quest]->maps.list[map]->description ? quests[quest]->maps.list[map]->description : "(no description)"; text_map = cat_template(text_map, do_template(quest_map_template, map_vars, map_vals)); } if (!text_map) text_map = strdup(""); quest_vals[0] = quests[quest]->name; quest_vals[1] = quests[quest]->description ? quests[quest]->description : "(main map not processed)"; quest_vals[2] = text_map; snprintf(questid, sizeof(questid), "quest_%d", quests[quest]->number); if (quests[quest]->mainmap) { snprintf(mainmappath, sizeof(mainmappath), "%s.html", quests[quest]->mainmap->path+1); quest_vals[5] = quests[quest]->mainmap->name; } else { snprintf(mainmappath, sizeof(mainmappath), "#"); quest_vals[5] = ""; } text_quest = cat_template(text_quest, do_template(quest_template, quest_vars, quest_vals)); free(text_map); text_map = NULL; } if (!text_quest) text_quest = strdup("No quest."); idx_vals[0] = text_quest; text_idx = do_template(index_quest_template, idx_vars, idx_vals); free(text_quest); snprintf(path, sizeof(path), "%s/quests.html", root); out = fopen(path, "w+"); fprintf(out, "%s", text_idx); fclose(out); free(text_idx); printf(" done.\n"); } /************************************ End of quest-related definitions. ************************************/ /********* NPC-related stuff ********/ /** * Initialise a list of NPCs. * @param list * list to initialise. */ static void init_npc_list(struct_npc_list *list) { list->allocated = 0; list->count = 0; list->npc = NULL; } /** * Create the struct_npc_info from the specified NPC. It must have a name and message. * @param npc * NPC to gather info for. * @return * structure with info. */ static struct_npc_info *create_npc_info(const object *npc) { struct_npc_info *info = calloc(1, sizeof(struct_npc_info)); info->name = strdup(npc->name); info->message = strdup(npc->msg); info->x = npc->x; info->y = npc->y; return info; } /** * Add the specified NPC to the list. * @param list * where to add the NPC. * @param npc * NPC to add. Must have a name and message. */ static void add_npc_to_map(struct_npc_list *list, const object *npc) { if (list->count == list->allocated) { list->allocated += 50; list->npc = realloc(list->npc, list->allocated*sizeof(struct_npc_info *)); } list->npc[list->count] = create_npc_info(npc); list->count++; } /* end of NPC stuff */ /** * Adds a map to specified array, if it isn't already. * * @param info * map to add. * @param list * list to add to. * * @note * will allocate memory and update variables when required. */ static void add_map(struct_map_info *info, struct_map_list *list) { int map; for (map = 0; map < list->count; map++) if (list->maps[map] == info) return; if (list->count == list->allocated) { list->allocated += 50; list->maps = realloc(list->maps, list->allocated*sizeof(struct_map_info *)); } list->maps[list->count] = info; list->count++; } /** * Returns an initialised struct_map_info. * * @return * new struct_map_info. */ static struct_map_info *create_map_info(void) { struct_map_info *add = calloc(1, sizeof(struct_map_info)); add->min_monster = 2000; init_map_list(&add->exits_to); init_map_list(&add->exits_from); init_map_list(&add->tiled_maps); init_struct_map_in_quest_list(&add->quests); init_race_list(&add->monsters); init_npc_list(&add->npcs); init_npc_list(&add->readable); add->tiled_group = NULL; return add; } /** * Create a new tiled map and link it to the tiled map list. * * @return * new tiled map. */ static struct_map_info *create_tiled_map(void) { struct_map_info *add = create_map_info(); add_map(add, &tiled_map_list); return add; } /** * Merge two tiled maps groups. This can happen if based on processing we do one map with tiled maps, * another with tiled maps, and later figure out the tiles are actually linked. * * @param map * the map that being processed has a tiling to a map in another group. Its group will be the final merging group. * @param tile * the tile index causing the merge * @param tiled_map * the map tiled to another group. Its group will disappear. */ static void merge_tiled_maps(struct_map_info *map, int tile, struct_map_info *tiled_map) { int g; struct_map_info *group = tiled_map->tiled_group; struct_map_info *change; while (group->tiled_maps.count > 0) { change = group->tiled_maps.maps[group->tiled_maps.count-1]; change->tiled_group = map->tiled_group; add_map(change, &map->tiled_group->tiled_maps); group->tiled_maps.count--; } for (g = 0; g < tiled_map_list.count; g++) { if (tiled_map_list.maps[g] == group) { if (g < tiled_map_list.count-1) tiled_map_list.maps[g] = tiled_map_list.maps[tiled_map_list.count-1]; tiled_map_list.count--; free(group); return; } } printf("tiled_map not in tiled_map_list!"); abort(); } /** * Gets or creates if required the info structure for a map. * * @param path * map to consider. * @return * associated structure. */ static struct_map_info *get_map_info(const char *path) { int map; struct_map_info *add; char *tmp; for (map = 0; map < maps_list.count; map++) { if (strcmp(maps_list.maps[map]->path, path) == 0) return maps_list.maps[map]; } add = create_map_info(); add->path = strdup(path); tmp = strrchr(path, '/'); if (tmp) add->filename = strdup(tmp+1); else add->filename = strdup(path); add_map(add, &maps_list); return add; } /** * Marks specified path as processed. * * @param path * map to remove. */ static void list_map(const char *path) { int index; for (index = 0; index < found_maps_count; index++) { if (found_maps[index] && strcmp(path, found_maps[index]) == 0) { free(found_maps[index]); found_maps[index] = NULL; return; } } printf("Map processed but not found in directory reading? %s\n", path); } /** * Links a map to a region. * * Will not readd the map if already linked. * * @param map * map name. * @param reg * region to link the map to. */ static void add_map_to_region(struct_map_info *map, region *reg) { int test; int x, y; for (test = 0; test < region_count; test++) { if (regions[test]->reg == reg) break; } if (test == region_count) { if (test == region_allocated) { region_allocated++; regions = realloc(regions, sizeof(struct_region_info *)*region_allocated); regions[test] = calloc(1, sizeof(struct_region_info)); } region_count++; regions[test]->reg = reg; } add_map(map, ®ions[test]->maps_list); if (sscanf(map->path, "/world/world_%d_%d", &x, &y) == 2) { regions[test]->sum_x += (x-100); regions[test]->sum_y += (y-100); regions[test]->sum++; regions[test]->is_world = 1; } } /** * Saves a map to a file, based on jpg/png settings. * * @param file * opened file to which to save. * @param pic * picture to save. */ static void save_picture(FILE *file, gdImagePtr pic) { if (output_format == OF_PNG) gdImagePng(pic, file); else gdImageJpeg(pic, file, jpeg_quality); } /** * Creates a link between two maps if they are on different regions. * @param source * map from. * @param dest * map to. * @param linkname * name of the link as it should appear. Unused. */ static void add_region_link(mapstruct *source, mapstruct *dest, const char *linkname) { int search = 0; char entry[500]; region *s, *d; s = get_region_by_map(source); d = get_region_by_map(dest); if (s == d) return; if (linkname && 0) snprintf(entry, sizeof(entry), "%s -> %s [ label = \"%s\" ]\n", s->name, d->name, linkname); else snprintf(entry, sizeof(entry), "%s -> %s\n", s->name, d->name); for (search = 0; search < regions_link_count; search++) { if (strcmp(regions_link[search], entry) == 0) return; } if (regions_link_count == regions_link_allocated) { regions_link_allocated += 10; regions_link = realloc(regions_link, sizeof(const char *)*regions_link_allocated); } regions_link[regions_link_count] = strdup(entry); regions_link_count++; } /** * Is the slaying field relevant for this item? * * @param item * item to check. * @return * 1 if relevant, 0 else. */ static int is_slaying(object *item) { return (item->type == LOCKED_DOOR || item->type == SPECIAL_KEY || item->type == CONTAINER || item->type == CHECK_INV); } /** * Returns a struct_slaying_info for specified slaying. Creates a new one if required. * * @param slaying * value to get the structure of. * @return * structure for slaying. Never NULL. */ static struct_slaying_info *get_slaying_struct(const char *slaying) { struct_slaying_info *add; int l; for (l = 0; l < slaying_count; l++) { if (!strcmp(slaying_info[l]->slaying, slaying)) return slaying_info[l]; } if (slaying_count == slaying_allocated) { slaying_allocated += 10; slaying_info = (struct_slaying_info **)realloc(slaying_info, sizeof(struct_slaying_info *)*slaying_allocated); } add = (struct_slaying_info *)calloc(1, sizeof(struct_slaying_info)); add->slaying = strdup(slaying); for (l = 0; l < S_MAX; l++) init_map_list(&add->maps[l]); slaying_info[slaying_count] = add; slaying_count++; return add; } /** * Adds the specified map to the slaying information if not already present. * * @param info * structure to add to. * @param item * one of the S_xxx values specifying what type of slaying this is. * @param map * map to add. */ static void add_map_to_slaying(struct_slaying_info *info, int item, struct_map_info *map) { add_map(map, &info->maps[item]); } /** * Adds the item's information to the map. * * @param map * map containing the item. * @param item * item which slaying field we're considering. */ static void add_slaying(struct_map_info *map, object *item) { struct_slaying_info *info; if (!item->slaying) /* can be undefined */ return; info = get_slaying_struct(item->slaying); if (item->type == LOCKED_DOOR) add_map_to_slaying(info, S_DOOR, map); else if (item->type == SPECIAL_KEY) add_map_to_slaying(info, S_KEY, map); else if (item->type == CONTAINER) add_map_to_slaying(info, S_CONTAINER, map); else add_map_to_slaying(info, S_CONNECT, map); } /** * Recursively checks if the object should be considered for slaying information. * * @param map * map containing the items. * @param item * item to consider. Must not be NULL. */ static void check_slaying_inventory(struct_map_info *map, object *item) { FOR_INV_PREPARE(item, inv) { if (is_slaying(inv)) add_slaying(map, inv); check_slaying_inventory(map, inv); } FOR_INV_FINISH(); } /** * Processes a map. * * Generates the map pictures (big and small), and exit information. * * @param info * map to process. */ static void process_map(struct_map_info *info) { mapstruct *m; int x, y, isworld; FILE *out; gdImagePtr pic; gdImagePtr small; struct stat stats; struct stat statspic; char exit_path[500]; char tmppath[MAX_BUF]; char picpath[MAX_BUF], smallpicpath[MAX_BUF]; int needpic = 0; struct_map_info *link; if (list_unused_maps) list_map(info->path); if (show_maps) printf(" processing map %s\n", info->path); m = ready_map_name(info->path, 0); if (!m) { printf("couldn't load map %s\n", info->path); return; } do_exit_map(m); if (!rawmaps) do_auto_apply(m); info->level = m->difficulty; if (m->maplore) { info->lore = strdup(m->maplore); process_map_lore(info); } isworld = (sscanf(info->path, "/world/world_%d_%d", &x, &y) == 2); if (m->name) info->name = strdup(m->name); else info->name = strdup(info->filename); info->cfregion = get_region_by_map(m); add_map_to_region(info, info->cfregion); snprintf(picpath, sizeof(picpath), "%s%s%s", root, info->path, output_extensions[output_format]); snprintf(smallpicpath, sizeof(smallpicpath), "%s%s.small%s", root, info->path, output_extensions[output_format]); if (force_pics) needpic = 1; else if (generate_pics) { create_pathname(info->path, tmppath, MAX_BUF); stat(tmppath, &stats); if (stat(picpath, &statspic) || (statspic.st_mtime < stats.st_mtime)) needpic = 1; else if (stat(smallpicpath, &statspic) || (statspic.st_mtime < stats.st_mtime)) needpic = 1; } else needpic = 0; if (needpic) { pic = gdImageCreateTrueColor(MAP_WIDTH(m)*32, MAP_HEIGHT(m)*32); created_pics++; } else cached_pics++; for (x = 0; x < 4; x++) if (m->tile_path[x] != NULL) { path_combine_and_normalize(m->path, m->tile_path[x], exit_path, sizeof(exit_path)); create_pathname(exit_path, tmppath, MAX_BUF); if (stat(tmppath, &stats)) { printf(" map %s doesn't exist in map %s, for tile %d.\n", exit_path, info->path, x); } if (isworld) { link = get_map_info(exit_path); add_map(link, &info->exits_from); add_map(info, &link->exits_to); if (do_regions_link) { mapstruct *link = ready_map_name(exit_path, 0); if (link && link != m) { /* no need to link a map with itself. Also, if the exit points to the same map, we don't * want to reset it. */ add_region_link(m, link, NULL); link->reset_time = 1; link->in_memory = MAP_IN_MEMORY; delete_map(link); } } } else { link = get_map_info(exit_path); info->tiles[x] = link; if (link->tiled_group) { if (info->tiled_group && link->tiled_group != info->tiled_group) { merge_tiled_maps(info, x, link); continue; } if (link->tiled_group == info->tiled_group) { continue; } if (!info->tiled_group) { add_map(info, &link->tiled_group->tiled_maps); continue; } } if (!info->tiled_group) { info->tiled_group = create_tiled_map(); add_map(info, &info->tiled_group->tiled_maps); } link->tiled_group = info->tiled_group; add_map(link, &info->tiled_group->tiled_maps); } } info->width = MAP_WIDTH(m); info->height = MAP_HEIGHT(m); for (x = MAP_WIDTH(m)-1; x >= 0; x--) for (y = MAP_HEIGHT(m)-1; y >= 0; y--) { FOR_MAP_PREPARE(m, x, y, item) { if (item->type == EXIT || item->type == TELEPORTER || item->type == PLAYER_CHANGER) { char ep[500]; const char *start; if (!item->slaying) { ep[0] = '\0'; if (warn_no_path) printf(" exit without any path at %d, %d on %s\n", item->x, item->y, info->path); } else { memset(ep, 0, 500); if (strcmp(item->slaying, "/!")) strcpy(ep, EXIT_PATH(item)); else { if (!item->msg) { printf(" random map without message in %s at %d, %d\n", info->path, item->x, item->y); } else { /* Some maps have a 'exit_on_final_map' flag, ignore it. */ start = strstr(item->msg, "\nfinal_map "); if (!start && strncmp(item->msg, "final_map", strlen("final_map")) == 0) /* Message start is final_map, nice */ start = item->msg; if (start) { char *end = strchr(start+1, '\n'); start += strlen("final_map")+2; strncpy(ep, start, end-start); } } } if (strlen(ep)) { path_combine_and_normalize(m->path, ep, exit_path, 500); create_pathname(exit_path, tmppath, MAX_BUF); if (stat(tmppath, &stats)) { printf(" map %s doesn't exist in map %s, at %d, %d.\n", ep, info->path, item->x, item->y); } else { link = get_map_info(exit_path); add_map(link, &info->exits_from); add_map(info, &link->exits_to); if (do_regions_link) { mapstruct *link = ready_map_name(exit_path, 0); if (link && link != m) { /* no need to link a map with itself. Also, if the exit points to the same map, we don't * want to reset it. */ add_region_link(m, link, item->arch->clone.name); link->reset_time = 1; link->in_memory = MAP_IN_MEMORY; delete_map(link); } } } } } } else if (is_slaying(item)) add_slaying(info, item); check_equipment(item, info); check_slaying_inventory(info, item); if (QUERY_FLAG(item, FLAG_MONSTER)) { /* need to get the "real" archetype, as the item's archetype can certainly be a temporary one. */ archetype *arch = find_archetype(item->arch->name); add_monster(item, info); if ((QUERY_FLAG(item, FLAG_UNAGGRESSIVE) || QUERY_FLAG(item, FLAG_FRIENDLY)) && (item->msg != arch->clone.msg) && (item->msg != NULL)) add_npc_to_map(&info->npcs, item); } else if ((item->type == SIGN || item->type == BOOK) && (item->msg != item->arch->clone.msg) && (item->msg != NULL)) { add_npc_to_map(&info->readable, item); } if (item->invisible) continue; if (needpic) { int sx, sy, hx, hy; if (gdfaces[item->face->number] == NULL) { int set = get_face_fallback(tileset, item->face->number); gdfaces[item->face->number] = gdImageCreateFromPngPtr(facesets[set].faces[item->face->number].datalen, facesets[set].faces[item->face->number].data); pics_allocated++; } if (item->head || item->more) { object_get_multi_size(item, &sx, &sy, &hx, &hy); } else { hx = 0; hy = 0; } if (gdfaces[item->face->number] != NULL && ((!item->head && !item->more) || (item->arch->clone.x+hx == 0 && item->arch->clone.y+hy == 0))) { gdImageCopy(pic, gdfaces[item->face->number], x*32, y*32, 0, 0, gdfaces[item->face->number]->sx, gdfaces[item->face->number]->sy); } } } FOR_MAP_FINISH(); } if (needpic) { make_path_to_file(picpath); out = fopen(picpath, "wb+"); save_picture(out, pic); fclose(out); small = gdImageCreateTrueColor(MAP_WIDTH(m)*size_small, MAP_HEIGHT(m)*size_small); gdImageCopyResampled(small, pic, 0, 0, 0, 0, MAP_WIDTH(m)*size_small, MAP_HEIGHT(m)*size_small, MAP_WIDTH(m)*32, MAP_HEIGHT(m)*32); out = fopen(smallpicpath, "wb+"); save_picture(out, small); fclose(out); gdImageDestroy(small); gdImageDestroy(pic); info->pic_was_done = 1; } m->reset_time = 1; m->in_memory = MAP_IN_MEMORY; delete_map(m); } /** * Creates the page for a map index. * * @param dest * path relative to root where the index will be located, without leading /. Used to compute the map's path relative to the index. * @param maps_list * maps in the index. * @param template_page * global page template. * @param template_letter * template for one letter of the index. * @param template_map * template for one map. * @param vars * template variables to give access to. * @param values * associated values. * @return * processed template. Should be free() by the caller. */ static char *do_map_index(const char *dest, struct_map_list *maps_list, const char *template_page, const char *template_letter, const char *template_map, const char **vars, const char **values) { #define VARSADD 6 int map; char *string; char mappath[500]; char maphtml[500]; char count[50]; char lettercount[50]; char *tmp; const char **idx_vars; const char **idx_values; char str_letter[2]; char last_letter; char index_path[500]; char *mapstext = NULL; int byletter; int basevalues, realcount = 0; struct_map_info *last_group = NULL; if (!generate_index) return strdup(""); if (vars) for (basevalues = 0; vars[basevalues] != NULL; basevalues++) ; else basevalues = 0; idx_vars = malloc(sizeof(char *)*(basevalues+VARSADD)); idx_vars[0] = "MAPCOUNT"; memcpy(&idx_vars[1], vars, sizeof(char *)*basevalues); idx_vars[basevalues+VARSADD-1] = NULL; idx_values = malloc(sizeof(char *)*(basevalues+VARSADD-1)); memcpy(&idx_values[1], values, sizeof(char *)*basevalues); string = NULL; idx_values[0] = count; /* wrong value, but in case the template needs to display something... */ snprintf(count, sizeof(count), "%d", maps_list->count); idx_vars[basevalues+1] = "MAPNAME"; idx_vars[basevalues+2] = "MAPPATH"; idx_vars[basevalues+3] = "MAPHTML"; idx_vars[basevalues+4] = NULL; qsort(maps_list->maps, maps_list->count, sizeof(const char *), sort_map_info); last_letter = '\0'; str_letter[0] = '\0'; str_letter[1] = '\0'; strcpy(index_path, "/"); strcat(index_path, dest); string = NULL; for (map = 0; map < maps_list->count; map++) { if (tolower(maps_list->maps[map]->name[0]) != last_letter) { if (mapstext != NULL) { idx_vars[basevalues+1] = "MAPS"; idx_vars[basevalues+2] = "LETTER"; idx_vars[basevalues+3] = "LETTERCOUNT"; idx_vars[basevalues+4] = NULL; idx_values[basevalues+1] = mapstext; idx_values[basevalues+2] = str_letter; snprintf(lettercount, sizeof(lettercount), "%d", byletter); idx_values[basevalues+3] = lettercount; string = cat_template(string, do_template(template_letter, idx_vars, idx_values)); free(mapstext); mapstext = NULL; idx_values[basevalues+2] = NULL; } last_letter = tolower(maps_list->maps[map]->name[0]); str_letter[0] = last_letter; byletter = 0; last_group = NULL; } if (last_group && last_group == maps_list->maps[map]->tiled_group) continue; else last_group = maps_list->maps[map]->tiled_group; realcount++; idx_vars[basevalues+1] = "MAPNAME"; idx_vars[basevalues+2] = "MAPPATH"; idx_vars[basevalues+3] = "MAPHTML"; idx_values[basevalues+1] = last_group ? last_group->name : (maps_list->maps[map]->name ? maps_list->maps[map]->name : maps_list->maps[map]->path); relative_path(index_path, last_group ? last_group->path : maps_list->maps[map]->path, mappath); strcpy(maphtml, mappath); strcat(maphtml, ".html"); idx_values[basevalues+2] = mappath; idx_values[basevalues+3] = maphtml; mapstext = cat_template(mapstext, do_template(template_map, idx_vars, idx_values)); byletter++; } if (last_letter != '\0') { idx_vars[basevalues+1] = "MAPS"; idx_vars[basevalues+2] = "LETTER"; idx_vars[basevalues+3] = "LETTERCOUNT"; idx_vars[basevalues+4] = NULL; idx_values[basevalues+1] = mapstext; idx_values[basevalues+2] = str_letter; snprintf(lettercount, sizeof(lettercount), "%d", byletter); idx_values[basevalues+3] = lettercount; string = cat_template(string, do_template(template_letter, idx_vars, idx_values)); free(mapstext); mapstext = NULL; idx_values[basevalues+2] = NULL; } snprintf(count, sizeof(count), "%d", realcount); idx_values[basevalues+1] = string; idx_vars[basevalues+1] = "LETTERS"; idx_vars[basevalues+2] = NULL; tmp = do_template(template_page, idx_vars, idx_values); free(string); free(idx_vars); free(idx_values); return tmp; } /** * Generates the web page for a region. * * @param reg * region/maps for which to generate. * * @note * will sort the maps. */ static void write_region_page(struct_region_info *reg) { char *string; FILE *index; char html[500]; const char *vars[] = { "REGIONNAME", "REGIONHTML", "REGIONLONGNAME", "REGIONDESC", NULL }; const char *values[] = { reg->reg->name, html, NULL, NULL }; printf("Generating map index for region %s...", reg->reg->name); values[2] = get_region_longname(reg->reg); values[3] = get_region_msg(reg->reg); strcpy(html, reg->reg->name); strcat(html, ".html"); string = do_map_index(html, ®->maps_list, region_template, region_letter_template, region_map_template, vars, values); strcpy(html, root); strcat(html, "/"); strcat(html, reg->reg->name); strcat(html, ".html"); index = fopen(html, "w+"); fprintf(index, "%s", string); fclose(index); free(string); printf(" done.\n"); } /** * Generates all map indexes for a region. */ static void write_all_regions(void) { int reg; qsort(regions, region_count, sizeof(struct_region_info *), sort_region); for (reg = 0; reg < region_count; reg++) write_region_page(regions[reg]); } /** * Generates global map index, file maps.html. */ static void write_maps_index(void) { char index_path[500]; char *tmp; FILE *index; printf("Generating global map index in maps.html..."); tmp = do_map_index("maps.html", &maps_list, index_template, index_letter, index_map, NULL, NULL); strcpy(index_path, root); strcat(index_path, "/maps.html"); index = fopen(index_path, "w+"); fprintf(index, "%s", tmp); fclose(index); free(tmp); printf(" done.\n"); } /** * Generates region index. */ static void write_region_index(void) { char *txt; char *final; char count[10]; struct_region_info *region; int reg; char file[500]; const char *vars[] = { "REGIONCOUNT", "REGIONFILE", "REGIONNAME", NULL }; const char *values[] = { count, file, NULL }; FILE *out; printf("Generating regions index in regions.html..."); snprintf(count, sizeof(count), "%d", region_count); txt = NULL; for (reg = 0; reg < region_count; reg++) { region = regions[reg]; snprintf(file, sizeof(file), "%s.html", region->reg->name); values[2] = get_region_longname(region->reg); txt = cat_template(txt, do_template(index_region_region_template, vars, values)); } vars[1] = "REGIONS"; values[1] = txt; vars[2] = NULL; final = do_template(index_region_template, vars, values); free(txt); strcpy(file, root); strcat(file, "/regions.html"); out = fopen(file, "w+"); fprintf(out, "%s", final); fclose(out); free(final); printf(" done.\n"); } /** * Generates a big world map. */ static void write_world_map(void) { #define SIZE 50 int x, y; FILE *out; int wx, wy; char file[500]; char *map = NULL; char *total; char *row = NULL; char mapleft[10], maptop[10], mapright[10], mapbottom[10]; const char *vars[] = { NULL, NULL, "MAPLEFT", "MAPTOP", "MAPRIGHT", "MAPBOTTOM", NULL }; const char *values[] = { NULL, NULL, mapleft, maptop, mapright, mapbottom, NULL }; char name[100]; char mappath[500], mapraw[500], mapregion[500]; gdImagePtr pic; gdImagePtr small; gdFontPtr font; int region, color; if (!world_map) return; printf("Generating world map in world.html..."); fflush(stdout); pic = gdImageCreateTrueColor(SIZE*30, SIZE*30); strcpy(file, root); strcat(file, "/world.html"); wx = 100; wy = 100; for (y = 0; y < 30; y++) { for (x = 0; x < 30; x++) { values[0] = name; vars[0] = "MAPNAME"; vars[1] = "MAPPATH"; values[1] = mappath, snprintf(name, sizeof(name), "world_%d_%d", wx, wy); snprintf(mappath, sizeof(mappath), "world/%s.html", name); snprintf(mapleft, sizeof(mapleft), "%d", SIZE*x); snprintf(maptop, sizeof(maptop), "%d", SIZE*y); snprintf(mapright, sizeof(mapright), "%d", SIZE*(x+1)-1); snprintf(mapbottom, sizeof(mapbottom), "%d", SIZE*(y+1)-1); map = cat_template(map, do_template(world_map_template, vars, values)); snprintf(mappath, sizeof(mappath), "%s/world/%s%s", root, name, output_extensions[output_format]); out = fopen(mappath, "rb"); if (!out) { printf("\n warning: large pic not found for world_%d_%d", wx, wy); wx++; continue; } if (output_format == OF_PNG) small = gdImageCreateFromPng(out); else small = gdImageCreateFromJpeg(out); fclose(out); if (!small) { printf("\n warning: pic not found for world_%d_%d", wx, wy); wx++; continue; } gdImageCopyResized(pic, small, SIZE*x, SIZE*y, 0, 0, SIZE, SIZE, small->sx, small->sy); gdImageDestroy(small); wx++; } wy++; wx = 100; values[0] = map; vars[0] = "MAPS"; vars[1] = NULL; row = cat_template(row, do_template(world_row_template, vars, values)); free(map); map = NULL; } snprintf(mappath, sizeof(mappath), "world%s", output_extensions[output_format]); snprintf(mapraw, sizeof(mapraw), "world_raw%s", output_extensions[output_format]); snprintf(mapregion, sizeof(mapregion), "world_regions%s", output_extensions[output_format]); values[0] = row; vars[0] = "MAPS"; values[1] = mappath; vars[1] = "WORLDMAP"; values[2] = mapraw; vars[2] = "WORLDRAW"; values[3] = mapregion; vars[3] = "WORLDREGIONS"; vars[4] = NULL; total = do_template(world_template, vars, values); free(row); out = fopen(file, "w+"); fprintf(out, "%s", total); free(total); fclose(out); snprintf(mappath, sizeof(mappath), "%s/world_raw%s", root, output_extensions[output_format]); out = fopen(mappath, "wb+"); save_picture(out, pic); fclose(out); /* Write region names. */ small = gdImageCreateTrueColor(SIZE*30, SIZE*30); font = gdFontGetGiant(); color = gdImageColorAllocateAlpha(pic, 255, 0, 0, 20); for (region = 0; region < region_allocated; region++) { if (!regions[region]->is_world || regions[region]->sum == 0) continue; x = regions[region]->sum_x*SIZE/regions[region]->sum+SIZE/2-strlen(regions[region]->reg->name)*font->w/2; y = regions[region]->sum_y*SIZE/regions[region]->sum+SIZE/2-font->h/2; gdImageString(small, font, x, y, (unsigned char *)regions[region]->reg->name, color); gdImageString(pic, font, x, y, (unsigned char *)regions[region]->reg->name, color); /* For exit/road map, size isn't the same. */ x = regions[region]->sum_x*50/regions[region]->sum+50/2-strlen(regions[region]->reg->name)*font->w/2; y = regions[region]->sum_y*50/regions[region]->sum+50/2-font->h/2; gdImageString(infomap, font, x, y, (unsigned char *)regions[region]->reg->name, color); } snprintf(mappath, sizeof(mappath), "%s/world_regions%s", root, output_extensions[output_format]); out = fopen(mappath, "wb+"); save_picture(out, small); fclose(out); gdImageDestroy(small); snprintf(mappath, sizeof(mappath), "%s/world%s", root, output_extensions[output_format]); out = fopen(mappath, "wb+"); save_picture(out, pic); fclose(out); gdImageDestroy(pic); printf(" done.\n"); #undef SIZE } /** * Write a map page. * * @param map * map to write page of. */ static void write_map_page(struct_map_info *map) { char *exits_text; char *exits_to; char *maplore; char *tmp; char *quests, *quest; char *monsters; char htmlpath[500]; /* Map file path. */ char mappic[500]; /* Name of map's full size picture. */ char mapsmallpic[500]; /* Name of map's small size picture. */ char indexpath[500]; /* Relative path of full index. */ char regionpath[500]; /* Path to region's filename. */ char regionname[500]; /* Name of map's region. */ char regionindexpath[500]; /* Path to region index file. */ char worldmappath[500]; /* Path to world map. */ char exit_path[500]; char maplevel[5], minmonster[5], maxmonster[5]; FILE *out; char questpath[500], questtemp[500]; const char *quest_vars[] = { "NAME", "PATH", "TEXT", NULL }; const char *quest_vals[] = { NULL, questpath, NULL, NULL }; const char *q_vars[] = { "QUESTS", NULL }; const char *q_vals[] = { NULL, NULL }; const char *m_vars[] = { "NAME", NULL }; const char *m_vals[] = { NULL, NULL }; const char *vars[] = { "NAME", "MAPPATH", "MAPNAME", "MAPPIC", "MAPSMALLPIC", "MAPEXITFROM", "INDEXPATH", "REGIONPATH", "REGIONNAME", "REGIONINDEXPATH", "WORLDMAPPATH", "MAPLORE", "MAPEXITTO", "MAPLEVEL", "QUESTS", "MONSTERS", "MINMONSTER", "MAXMONSTER", NULL, NULL, NULL }; const char *values[] = { map->path, htmlpath, map->name, mappic, mapsmallpic, "", indexpath, regionpath, regionname, regionindexpath, worldmappath, "", "", maplevel, NULL, "", minmonster, maxmonster, NULL, NULL, NULL }; int vars_count = 0; while (vars[vars_count]) vars_count++; snprintf(minmonster, sizeof(minmonster), "%d", map->min_monster); snprintf(maxmonster, sizeof(maxmonster), "%d", map->max_monster); relative_path(map->path, "/maps.html", indexpath); relative_path(map->path, "/world.html", worldmappath); relative_path(map->path, "/regions.html", regionindexpath); if (map->cfregion) { strcpy(regionname, get_region_longname(map->cfregion)); strcpy(exit_path, "/"); strcat(exit_path, map->cfregion->name); strcat(exit_path, ".html"); relative_path(map->path, exit_path, regionpath); } else { regionpath[0]='\0'; snprintf(regionname, sizeof(regionname), "(map was not processed)"); } snprintf(mappic, sizeof(mappic), "%s%s", map->filename, output_extensions[output_format]); snprintf(mapsmallpic, sizeof(mapsmallpic), "%s.small%s", map->filename, output_extensions[output_format]); snprintf(htmlpath, sizeof(htmlpath), "%s%s.html", root, map->path); make_path_to_file(htmlpath); values[14] = ""; snprintf(maplevel, sizeof(maplevel), "%d", map->level); if (map->lore && map->lore[0] != '\0') { values[11] = map->lore; maplore = do_template(map_lore_template, vars, values); } else { maplore = do_template(map_no_lore_template, vars, values); } values[11] = maplore; if (map->exits_from.count) { char *one_exit = NULL; int exit; char relative[500]; vars[vars_count] = "EXITNAME"; vars[vars_count+1] = "EXITFILE"; qsort(map->exits_from.maps, map->exits_from.count, sizeof(const char *), sort_map_info); for (exit = 0; exit < map->exits_from.count; exit++) { relative_path(map->path, map->exits_from.maps[exit]->path, relative); values[vars_count] = map->exits_from.maps[exit]->name; strcat(relative, ".html"); values[vars_count+1] = relative; one_exit = cat_template(one_exit, do_template(map_exit_template, vars, values)); } vars[vars_count] = "EXIT"; vars[vars_count+1] = NULL; values[vars_count] = one_exit; exits_text = do_template(map_with_exit_template, vars, values); free(one_exit); } else exits_text = do_template(map_no_exit_template, vars, values); values[5] = exits_text; if (map->exits_to.count) { char *one_exit = NULL; int exit; char relative[500]; vars[vars_count] = "EXITNAME"; vars[vars_count+1] = "EXITFILE"; qsort(map->exits_to.maps, map->exits_to.count, sizeof(struct_map_info *), sort_map_info); for (exit = 0; exit < map->exits_to.count; exit++) { relative_path(map->path, map->exits_to.maps[exit]->path, relative); values[vars_count] = map->exits_to.maps[exit]->name; strcat(relative, ".html"); values[vars_count+1] = relative; one_exit = cat_template(one_exit, do_template(map_exit_to_template, vars, values)); } vars[vars_count] = "EXIT"; vars[vars_count+1] = NULL; values[vars_count] = one_exit; exits_to = do_template(map_with_exit_to_template, vars, values); free(one_exit); } else exits_to = do_template(map_no_exit_to_template, vars, values); values[12] = exits_to; if (map->quests.count) { int q; quest = NULL; for (q = 0; q < map->quests.count; q++) { quest_vals[0] = map->quests.list[q]->quest->name; relative_path(map->path, "/quests.html", questtemp); snprintf(questpath, sizeof(questpath), "%s#quest_%d", questtemp, map->quests.list[q]->quest->number); quest_vals[2] = map->quests.list[q]->description; quest = cat_template(quest, do_template(map_one_quest_template, quest_vars, quest_vals)); } q_vals[0] = quest; quests = do_template(map_with_quests_template, q_vars, q_vals); free(quest); quest = NULL; } else quests = strdup(map_no_quest_template); values[14] = quests; if (map->monsters.count) { int m; qsort(map->monsters.races, map->monsters.count, sizeof(struct_race *), sort_race); monsters = do_template(map_monster_before_template, vars, values); for (m = 0; m < map->monsters.count; m++) { m_vals[0] = map->monsters.races[m]->name; monsters = cat_template(monsters, do_template(map_monster_one_template, m_vars, m_vals)); if (m != map->monsters.count-1) monsters = cat_template(monsters, do_template(map_monster_between_template, vars, values)); } monsters = cat_template(monsters, do_template(map_monster_after_template, vars, values)); } else monsters = do_template(map_no_monster_template, vars, values); values[15] = monsters; vars[vars_count] = NULL; out = fopen(htmlpath, "w+"); tmp = do_template(map_template, vars, values); fprintf(out, "%s", tmp); fclose(out); free(tmp); free(exits_text); free(exits_to); free(maplore); free(quests); free(monsters); } /** Ensures all maps have a name (if there was a limit to map processing, some maps will have a NULL name which causes issues). */ static void fix_map_names(void) { int map; for (map = 0; map < maps_list.count; map++) { if (maps_list.maps[map]->name) continue; if (!maps_list.maps[map]->filename) { printf("map without path!\n"); abort(); } maps_list.maps[map]->name = strdup(maps_list.maps[map]->filename); } } /** * Ensures all tiled maps have a name, a region, a filename and a path. * Will try to find a suitable name and region from the maps in the group. * @todo * use a better filename, try to get the start of the map filenames. */ static void fix_tiled_map(void) { int map, tile; char name[500]; char *slash, *test; region *cfregion; for (map = 0; map < tiled_map_list.count; map++) { if (tiled_map_list.maps[map]->tiled_maps.count == 0) { printf("empty tiled map group!"); abort(); } snprintf(name, sizeof(name), "tiled_map_group_%d", map); tiled_map_list.maps[map]->filename = strdup(name); cfregion = NULL; test = NULL; for (tile = 0; tile < tiled_map_list.maps[map]->tiled_maps.count; tile++) { if (tiled_map_list.maps[map]->tiled_maps.maps[tile]->cfregion == NULL) /* map not processed, ignore it. */ continue; if (!cfregion) cfregion = tiled_map_list.maps[map]->tiled_maps.maps[tile]->cfregion; else if (cfregion != tiled_map_list.maps[map]->tiled_maps.maps[tile]->cfregion) { printf("*** warning: tiled maps %s and %s not in same region (%s and %s).\n", tiled_map_list.maps[map]->tiled_maps.maps[0]->path, tiled_map_list.maps[map]->tiled_maps.maps[tile]->path, tiled_map_list.maps[map]->tiled_maps.maps[0]->cfregion->name, tiled_map_list.maps[map]->tiled_maps.maps[tile]->cfregion->name); cfregion = NULL; } if (strcmp(tiled_map_list.maps[map]->tiled_maps.maps[tile]->name, tiled_map_list.maps[map]->tiled_maps.maps[tile]->filename)) { /* map has a custom name, use it */ if (!test) test = tiled_map_list.maps[map]->tiled_maps.maps[tile]->name; } } if (!test) { /* this can happen of course if only partial maps were processed, but well... */ printf("*** warning: tiled map without any name. First map path %s\n", tiled_map_list.maps[map]->tiled_maps.maps[0]->path); test = name; } tiled_map_list.maps[map]->name = strdup(test); tiled_map_list.maps[map]->cfregion = cfregion; strncpy(name, tiled_map_list.maps[map]->tiled_maps.maps[0]->path, sizeof(name)); slash = strrchr(name, '/'); if (!slash) snprintf(name, sizeof(name), "/"); else *(slash+1) = '\0'; strncat(name, tiled_map_list.maps[map]->filename, sizeof(name)); tiled_map_list.maps[map]->path = strdup(name); } } /** * Changes for the list all maps to the tiled map they are part of, if applicable. * * @param current * map currently being processed. * @param from * list that contains the exits to/from map to be fixed. * @param is_from * if non zero, from is exit_from field, else it is an exit_to. */ static void fix_exits_for_map(struct_map_info *current, struct_map_list *from, int is_from) { int map, max; struct_map_info *group; max = from->count-1; for (map = max; map >= 0; map--) { if (from->maps[map]->tiled_group) { group = from->maps[map]->tiled_group; if (map != max) from->maps[map] = from->maps[max]; from->count--; max--; add_map(group, from); add_map(current->tiled_group ? current->tiled_group : current, is_from ? &group->exits_to : &group->exits_from); } } } /** Changes all exits to maps in a tiled map to point directly to the tiled map. Same for region lists. */ static void fix_exits_to_tiled_maps(void) { int map, region, max; struct_map_info *group; for (map = 0; map < maps_list.count; map++) { fix_exits_for_map(maps_list.maps[map], &maps_list.maps[map]->exits_from, 1); fix_exits_for_map(maps_list.maps[map], &maps_list.maps[map]->exits_to, 0); } for (region = 0; region < region_count; region++) { max = regions[region]->maps_list.count-1; for (map = max; map >= 0; map--) { if (regions[region]->maps_list.maps[map]->tiled_group) { group = regions[region]->maps_list.maps[map]->tiled_group; if (map != max) regions[region]->maps_list.maps[map] = regions[region]->maps_list.maps[max]; regions[region]->maps_list.count--; max--; add_map(group, ®ions[region]->maps_list); } } } } /** * Makes all monsters point to tiled maps instead of map when appliable, and merge * map monster to tiled map. */ static void fix_tiled_map_monsters(void) { int map, race, max; struct_map_info *group; for (race = 0; race < races.count; race++) { max = races.races[race]->origin.count-1; for (map = max; map >= 0; map--) { if (races.races[race]->origin.maps[map]->tiled_group) { group = races.races[race]->origin.maps[map]->tiled_group; if (map != max) races.races[race]->origin.maps[map] = races.races[race]->origin.maps[max]; races.races[race]->origin.count--; max--; add_map(group, &races.races[race]->origin); } } } for (map = 0; map < maps_list.count; map++) { if (maps_list.maps[map]->tiled_group) { for (race = 0; race < maps_list.maps[map]->monsters.count; race++) { add_race_to_list(maps_list.maps[map]->monsters.races[race], &maps_list.maps[map]->tiled_group->monsters, 1); } } } } /** Ensures all maps have a name, and writes all map pages. */ static void write_all_maps(void) { int map; printf("Writing map pages..."); for (map = 0; map < maps_list.count; map++) if (!maps_list.maps[map]->tiled_group) write_map_page(maps_list.maps[map]); printf(" done.\n"); } static int tiled_map_need_pic(struct_map_info *map) { int test; char picpath[500]; struct stat stats; snprintf(picpath, sizeof(picpath), "%s%s%s", root, map->path, output_extensions[output_format]); if (stat(picpath, &stats)) return 1; snprintf(picpath, sizeof(picpath), "%s%s.small%s", root, map->path, output_extensions[output_format]); if (stat(picpath, &stats)) return 1; for (test = 0; test < map->tiled_maps.count; test++) { if (map->tiled_maps.maps[test]->pic_was_done) return 1; } return 0; } /** * Generates the large and small pictures for a tiled map. * This uses the large/small pictures made during process_map(), so having a map limit could lead * to maps not found and invalid results. * * @param map * tiled map to make the picture of. * @todo * add a field to struct_map_info to remember if pic was updated or not, and update the tiled map * only if one map has changed / the pic doesn't exist. */ static void do_tiled_map_picture(struct_map_info *map) { int xmin = 0, xmax = 0, ymin = 0, ymax = 0, tiled, count, last; char picpath[500]; gdImagePtr small, large, load; FILE *out; struct_map_info *current; if (!generate_pics) return; printf(" Generating composite map for %s...", map->name); fflush(stdout); if (!tiled_map_need_pic(map)) { printf(" already uptodate.\n"); return; } count = map->tiled_maps.count; if (count == 0) { printf("Tiled map without tiled maps?\n"); abort(); } map->tiled_maps.maps[0]->processed = 1; map->tiled_maps.maps[0]->tiled_x_from = 0; map->tiled_maps.maps[0]->tiled_y_from = 0; while (count > 0) { last = count; for (tiled = 0; tiled < map->tiled_maps.count; tiled++) { current = map->tiled_maps.maps[tiled]; if (current->processed != 1) continue; count--; if ((current->tiles[0]) && (current->tiles[0]->processed == 0)) { current->tiles[0]->processed = 1; current->tiles[0]->tiled_x_from = current->tiled_x_from; current->tiles[0]->tiled_y_from = current->tiled_y_from-current->tiles[0]->height; } if ((current->tiles[1]) && (current->tiles[1]->processed == 0)) { current->tiles[1]->processed = 1; current->tiles[1]->tiled_x_from = current->tiled_x_from+current->width; current->tiles[1]->tiled_y_from = current->tiled_y_from; } if ((current->tiles[2]) && (current->tiles[2]->processed == 0)) { current->tiles[2]->processed = 1; current->tiles[2]->tiled_x_from = current->tiled_x_from; current->tiles[2]->tiled_y_from = current->tiled_y_from+current->height; } if ((current->tiles[3]) && (current->tiles[3]->processed == 0)) { current->tiles[3]->processed = 1; current->tiles[3]->tiled_x_from = current->tiled_x_from-current->tiles[3]->width; current->tiles[3]->tiled_y_from = current->tiled_y_from; } } if (last == count) { printf("do_tiled_map_picture: didn't process any map in %s (%d left)??\n", map->path, last); abort(); } } for (tiled = 0; tiled < map->tiled_maps.count; tiled++) { if (map->tiled_maps.maps[tiled]->tiled_x_from < xmin) xmin = map->tiled_maps.maps[tiled]->tiled_x_from; if (map->tiled_maps.maps[tiled]->tiled_y_from < ymin) ymin = map->tiled_maps.maps[tiled]->tiled_y_from; if (map->tiled_maps.maps[tiled]->tiled_x_from+map->tiled_maps.maps[tiled]->width > xmax) xmax = map->tiled_maps.maps[tiled]->tiled_x_from+map->tiled_maps.maps[tiled]->width; if (map->tiled_maps.maps[tiled]->tiled_y_from+map->tiled_maps.maps[tiled]->height > ymax) ymax = map->tiled_maps.maps[tiled]->tiled_y_from+map->tiled_maps.maps[tiled]->height; } large = gdImageCreateTrueColor(32*(xmax-xmin), 32*(ymax-ymin)); small = gdImageCreateTrueColor(size_small*(xmax-xmin), size_small*(ymax-ymin)); for (tiled = 0; tiled < map->tiled_maps.count; tiled++) { snprintf(picpath, sizeof(picpath), "%s%s%s", root, map->tiled_maps.maps[tiled]->path, output_extensions[output_format]); out = fopen(picpath, "rb"); if (!out) { printf("\n do_tiled_map_picture: warning: pic file not found for %s (errno=%d)\n", map->tiled_maps.maps[tiled]->path, errno); continue; } if (output_format == OF_PNG) load = gdImageCreateFromPng(out); else load = gdImageCreateFromJpeg(out); fclose(out); if (!load) { printf("\n do_tiled_map_picture: warning: pic not found for %s\n", map->tiled_maps.maps[tiled]->path); continue; } gdImageCopy(large, load, 32*(map->tiled_maps.maps[tiled]->tiled_x_from-xmin), 32*(map->tiled_maps.maps[tiled]->tiled_y_from-ymin), 0, 0, load->sx, load->sy); gdImageDestroy(load); snprintf(picpath, sizeof(picpath), "%s%s.small%s", root, map->tiled_maps.maps[tiled]->path, output_extensions[output_format]); out = fopen(picpath, "rb"); if (output_format == OF_PNG) load = gdImageCreateFromPng(out); else load = gdImageCreateFromJpeg(out); fclose(out); if (!load) { printf("\n do_tiled_map_picture: warning: small pic not found for %s\n", map->tiled_maps.maps[tiled]->path); continue; } gdImageCopy(small, load, size_small*(map->tiled_maps.maps[tiled]->tiled_x_from-xmin), size_small*(map->tiled_maps.maps[tiled]->tiled_y_from-ymin), 0, 0, load->sx, load->sy); gdImageDestroy(load); } snprintf(picpath, sizeof(picpath), "%s%s%s", root, map->path, output_extensions[output_format]); out = fopen(picpath, "wb+"); save_picture(out, large); fclose(out); snprintf(picpath, sizeof(picpath), "%s%s.small%s", root, map->path, output_extensions[output_format]); out = fopen(picpath, "wb+"); save_picture(out, small); fclose(out); gdImageDestroy(small); gdImageDestroy(large); printf(" done.\n"); } /** Writes the page for a tiled map group. */ static void write_tiled_map_page(struct_map_info *map) { do_tiled_map_picture(map); /** @todo: do a real page, with the various levels, maps and such. */ write_map_page(map); } /** Outputs all tiled map pages. */ static void write_tiled_maps(void) { int map; printf("Writing tiled map information...\n"); for (map = 0; map < tiled_map_list.count; map++) write_tiled_map_page(tiled_map_list.maps[map]); printf(" done.\n"); } /** Outputs the list of maps sorted by level. */ static void write_maps_by_level(void) { int map; FILE *out; char name[500]; char mappath[500]; char *letters = NULL; char *maps = NULL; char *level = NULL; int lastlevel = -1; char strlevel[10]; char strcount[10]; const char *val_vars[] = { "LEVEL", "MAPS", NULL }; const char *val_values[] = { strlevel, NULL, NULL }; const char *map_vars[] = { "MAPNAME", "MAPPATH", NULL }; const char *map_values[] = { NULL, mappath, NULL }; const char *idx_vars[] = { "COUNT", "LEVELS", NULL }; const char *idx_values[] = { strcount, NULL, NULL }; int levelcount = 0; struct_map_info *last_tiled = NULL; struct_map_info *process; printf("Writing map index by level..."); snprintf(name, sizeof(name), "%s/index_by_level.html", root); qsort(maps_list.maps, maps_list.count, sizeof(struct_map_info *), sort_map_info_by_level); for (map = 0; map < maps_list.count; map++) { process = maps_list.maps[map]; if (maps_list.maps[map]->level != lastlevel) { if (maps) { snprintf(strlevel, sizeof(strlevel), "%d", lastlevel); val_values[1] = maps; letters = cat_template(letters, do_template(level_value_template, val_vars, val_values)); free(maps); maps = NULL; } lastlevel = process->level; levelcount++; last_tiled = NULL; } else if (last_tiled && last_tiled == process->tiled_group) /* Group maps of same tiled group and level, but make them appear in different levels if applicable. */ continue; if (process->tiled_group) { process = process->tiled_group; last_tiled = process; } else last_tiled = process->tiled_group; map_values[0] = process->name; snprintf(mappath, sizeof(mappath), "%s.html", process->path+1); /* don't want the leading / */ maps = cat_template(maps, do_template(level_map_template, map_vars, map_values)); } snprintf(strlevel, sizeof(strlevel), "%d", lastlevel); val_values[1] = maps; letters = cat_template(letters, do_template(level_value_template, val_vars, val_values)); free(maps); maps = NULL; snprintf(strcount, sizeof(strcount), "%d", levelcount); idx_values[1] = letters; level = do_template(level_template, idx_vars, idx_values); free(letters); out = fopen(name, "w+"); fprintf(out, "%s", level); fclose(out); free(level); printf(" done.\n"); } /** * Writes the item page. */ static void write_equipment_index(void) { int item, map; FILE *out; char name[500]; printf("Generating special equipment list.."); fflush(stdout); qsort(special_equipment, equipment_count, sizeof(struct_equipment *), sort_equipment); snprintf(name, sizeof(name), "%s/items.html", root); out = fopen(name, "w+"); fprintf(out, "Item list

Special items found in maps

\n"); fprintf(out, "\n"); for (item = 0; item < equipment_count; item++) { fprintf(out, "\n", special_equipment[item]->power, special_equipment[item]->calc_power, special_equipment[item]->diff); } fprintf(out, "
NameMap(s)Item powerCalc item powerDescription
%s
    ", special_equipment[item]->name); for (map = 0; map < special_equipment[item]->origin.count; map++) fprintf(out, "
  • %s
  • \n", special_equipment[item]->origin.maps[map]->path); fprintf(out, "
%d%d
%s
\n"); fclose(out); printf(" done.\n"); } /** * Writes the monster information page. */ static void write_race_index(void) { int item, map; FILE *out; char name[500]; printf("Generating monster list..."); fflush(stdout); qsort(races.races, races.count, sizeof(struct_race *), sort_race); snprintf(name, sizeof(name), "%s/monsters.html", root); out = fopen(name, "w+"); fprintf(out, "Monster list

Monsters found in maps

\n"); fprintf(out, "\n"); for (item = 0; item < races.count; item++) { fprintf(out, "\n"); } fprintf(out, "
NameCountMap(s)
%s%dFound on %d maps:
    ", races.races[item]->name, races.races[item]->count, races.races[item]->origin.count); qsort(races.races[item]->origin.maps, races.races[item]->origin.count, sizeof(struct_map_info *), sort_map_info); for (map = 0; map < races.races[item]->origin.count; map++) fprintf(out, "
  • %s
  • \n", races.races[item]->origin.maps[map]->path); fprintf(out, "
\n"); fclose(out); printf(" done.\n"); } /** Directories to ignore for map search. */ static const char *ignore_path[] = { "/Info", "/editor", "/python", "/styles", "/templates", "/test", "/unlinked", NULL }; /** File names to ignore for map search. */ static const char *ignore_name[] = { ".", "..", ".svn", "README", NULL }; /** * Recursively find all all maps in a directory. * * @param from * path to search from, without trailing /. */ static void find_maps(const char *from) { struct dirent *file; struct stat statbuf; int status, ignore; char path[1024], full[1024]; DIR *dir; for (ignore = 0; ignore_path[ignore] != NULL; ignore++) { if (strcmp(from, ignore_path[ignore]) == 0) return; } snprintf(path, sizeof(path), "%s/%s%s", settings.datadir, settings.mapdir, from); dir = opendir(path); if (dir) { for (file = readdir(dir); file; file = readdir(dir)) { for (ignore = 0; ignore_name[ignore] != NULL; ignore++) { if (strcmp(file->d_name, ignore_name[ignore]) == 0) break; } if (ignore_name[ignore] != NULL) continue; snprintf(full, sizeof(full), "%s/%s", path, file->d_name); status = stat(full, &statbuf); if ((status != -1) && (S_ISDIR(statbuf.st_mode))) { snprintf(full, sizeof(full), "%s/%s", from, file->d_name); find_maps(full); continue; } if (found_maps_count == found_maps_allocated) { found_maps_allocated += 50; found_maps = realloc(found_maps, found_maps_allocated*sizeof(char *)); } snprintf(full, sizeof(full), "%s/%s", from, file->d_name); found_maps[found_maps_count++] = strdup(full); } closedir(dir); } } /** Writes the list of unused maps, maps found in the directories but not linked from the other maps. */ static void dump_unused_maps(void) { FILE *dump; char path[1024]; int index, found = 0; snprintf(path, sizeof(path), "%s/%s", root, "maps.unused"); dump = fopen(path, "w+"); if (dump == NULL) { printf("Unable to open file maps.unused!\n"); return; } for (index = 0; index < found_maps_count; index++) { if (found_maps[index] != NULL) { fprintf(dump, "%s\n", found_maps[index]); free(found_maps[index]); found++; } } fclose(dump); printf("%d unused maps.\n", found); } /** Writes the exit information world map. */ static void write_world_info(void) { FILE *file; char path[MAX_BUF]; int x, y; gdImagePtr elevationmap; if (!world_exit_info) return; printf("Saving exit/blocking/road information..."); snprintf(path, sizeof(path), "%s/%s%s", root, "world_info", output_extensions[output_format]); file = fopen(path, "wb+"); save_picture(file, infomap); fclose(file); printf("done.\n"); gdImageDestroy(infomap); infomap = NULL; if (elevation_min == 0 || elevation_max == 0) { puts("Error: Could not save elevation world map due to not finding any minimum or maximum elevation."); return; } elevationmap = gdImageCreateTrueColor(30*50, 30*50);; for (x = 0; x < 30*50; x++) { for (y = 0; y < 30*50; y++) { gdImageSetPixel(elevationmap, x, y, get_elevation_color(elevation_info[x][y], elevationmap)); } } printf("Saving elevation world map..."); snprintf(path, sizeof(path), "%s/%s%s", root, "world_elevation", output_extensions[output_format]); file = fopen(path, "wb+"); save_picture(file, elevationmap); fclose(file); printf("done.\n"); gdImageDestroy(elevationmap); elevationmap = NULL; } /** Write the .dot file representing links between regions. */ static void write_regions_link(void) { FILE *file; char path[MAX_BUF]; int link; if (!do_regions_link) return; printf("Writing regions link file..."); snprintf(path, sizeof(path), "%s/%s", root, "region_links.dot"); file = fopen(path, "wb+"); fprintf(file, "digraph {\n"); for (link = 0; link < regions_link_count; link++) fprintf(file, "%s", regions_link[link]); fprintf(file, "}\n"); fclose(file); printf("done.\n"); } /** * Helper function to write a map to a file with its link and full path. * * @param file * where to write. * @param map * map info to write. */ static void write_slaying_map_name(FILE *file, struct_map_info *map) { fprintf(file, "%s (full map path: %s)", map->tiled_group ? map->tiled_group->path+1 : map->path+1, map->name, map->path); } /** * Writes all maps of the specified slaying information. * * @param file * file to write to. * @param info * slaying information to write. * @param item * which of the S_xxx to write. * @param with * text to write when there are maps to write. Mustn't be NULL. * @param without * text to write when there are no maps. Can be NULL. */ static void write_one_slaying_info(FILE *file, struct_slaying_info *info, int item, const char *with, const char *without) { int map; if (info->maps[item].count == 0) { if (without) fprintf(file, "%s", without); return; } qsort(info->maps[item].maps, info->maps[item].count, sizeof(const char *), sort_mapname); fprintf(file, "%s", with); fprintf(file, "
    \n"); for (map = 0; map < info->maps[item].count; map++) { fprintf(file, "\t
  • "); write_slaying_map_name(file, info->maps[item].maps[map]); fprintf(file, "
  • \n"); } fprintf(file, "
\n"); } /** * Helper function to sort an array of struct_slaying_info. * * @param left * first item. * @param right * second item. * @return * sort order. */ static int sort_slaying(const void *left, const void *right) { struct_slaying_info *l = *(struct_slaying_info **)left; struct_slaying_info *r = *(struct_slaying_info **)right; return strcasecmp(l->slaying, r->slaying); } /** * Writes all slaying info to file. */ static void write_slaying_info(void) { FILE *file; char path[MAX_BUF]; int lock; struct_slaying_info *info; printf("Writing slaying info file..."); qsort(slaying_info, slaying_count, sizeof(struct_slaying_info *), sort_slaying); snprintf(path, sizeof(path), "%s/%s", root, "slaying_info.html"); file = fopen(path, "wb+"); fprintf(file, "\n\nSlaying information\n\n\n"); fprintf(file, "

This is a list of various slaying fields on keys, containers, doors, detectors.

"); for (lock = 0; lock < slaying_count; lock++) { info = slaying_info[lock]; fprintf(file, "

%s

\n", info->slaying); if (info->maps[S_DOOR].count == 0 && info->maps[S_CONTAINER].count == 0 && info->maps[S_CONNECT].count == 0) { fprintf(file, "No door, container or detector matching this slaying.
\n"); } else { write_one_slaying_info(file, info, S_DOOR, "Connected doors:\n", NULL); write_one_slaying_info(file, info, S_CONTAINER, "Matching containers:\n", NULL); write_one_slaying_info(file, info, S_CONNECT, "Detectors and such:\n", NULL); } write_one_slaying_info(file, info, S_KEY, "Matching keys:\n", "No key with this slaying.
\n"); } fprintf(file, "\n\n"); fclose(file); printf("done.\n"); } /** * Write the list of all found NPCs in maps. */ static void write_npc_list(void) { FILE *file; char path[MAX_BUF]; int map, npc; printf("Writing NPC info file..."); qsort(slaying_info, slaying_count, sizeof(struct_slaying_info *), sort_slaying); snprintf(path, sizeof(path), "%s/%s", root, "npc_info.html"); file = fopen(path, "wb+"); fprintf(file, "\n\nNPCs who have a special message\n\n\n"); fprintf(file, "

This is a list of NPCs having a special message.

"); fprintf(file, "
    \n"); for (map = 0; map < maps_list.count; map++) { if (maps_list.maps[map]->npcs.count == 0) continue; fprintf(file, "
  • %s
  • \n
      ", maps_list.maps[map]->path); for (npc = 0; npc < maps_list.maps[map]->npcs.count; npc++) { fprintf(file, "
    • %s (%d,%d):
      %s
    • \n", maps_list.maps[map]->npcs.npc[npc]->name, maps_list.maps[map]->npcs.npc[npc]->x, maps_list.maps[map]->npcs.npc[npc]->y, maps_list.maps[map]->npcs.npc[npc]->message); } fprintf(file, "
    \n\n"); } fprintf(file, "
\n"); fprintf(file, "\n\n"); fclose(file); printf("done.\n"); } /** * Write the list of all found SIGN and BOOK in maps. */ static void write_readable_list(void) { FILE *file; char path[MAX_BUF]; int map, readable; printf("Writing readable info file..."); snprintf(path, sizeof(path), "%s/%s", root, "readable_info.html"); file = fopen(path, "wb+"); fprintf(file, "\n\nSIGN and BOOK with a special message\n\n\n"); fprintf(file, "

This is a list of SIGN and BOOK with a special message.

"); fprintf(file, "
    \n"); for (map = 0; map < maps_list.count; map++) { if (maps_list.maps[map]->readable.count == 0) continue; fprintf(file, "
  • %s
  • \n
      ", maps_list.maps[map]->path); for (readable = 0; readable < maps_list.maps[map]->readable.count; readable++) { fprintf(file, "
    • %s (%d,%d):
      %s
    • \n", maps_list.maps[map]->readable.npc[readable]->name, maps_list.maps[map]->readable.npc[readable]->x, maps_list.maps[map]->readable.npc[readable]->y, maps_list.maps[map]->readable.npc[readable]->message); } fprintf(file, "
    \n\n"); } fprintf(file, "
\n"); fprintf(file, "\n\n"); fclose(file); printf("done.\n"); } /** * Prints usage information, and exit. * * @param program * program path. */ static void do_help(const char *program) { printf("Crossfire Mapper will generate pictures of maps, and create indexes for all maps and regions.\n\n"); printf("Syntax: %s\n\n", program); printf("Optional arguments:\n"); printf(" -nopics don't generate pictures.\n"); printf(" -noindex don't generate global map index.\n"); printf(" -root= destination path. Default 'html'.\n"); printf(" -limit= stop processing after this number of maps, -1 to do all maps (default).\n"); printf(" -showmaps outputs the name of maps as they are processed.\n"); printf(" -jpg[=quality] generate jpg pictures, instead of default png. Quality should be 0-95, -1 for automatic.\n"); printf(" -forcepics force to regenerate pics, even if pics's date is after map's.\n"); printf(" -addmap= adds a map to process. Path is relative to map's directory root.\n"); printf(" -rawmaps generates maps pics without items on random (shop, treasure) tiles.\n"); printf(" -warnnopath inform when an exit has no path set.\n"); printf(" -listunusedmaps finds all unused maps in the maps directory.\n"); printf(" -noworldmap don't write the world map in world.png.\n"); printf(" -noregionslink don't generate regions relation file.\n"); printf(" -regionslink generate regions relation file.\n"); printf(" -noexitmap don't generate map of exits.\n"); printf(" -exitmap generate map of exits.\n"); printf(" -tileset= use specified tileset to generate the pictures. Default 0 (standard).\n"); printf("\n\n"); exit(0); } /** * Handles command-line parameters. * * @param argc * number of parameters, including program name. * @param argv * arguments, including program name. */ static void do_parameters(int argc, char **argv) { int arg = 1; char path[500]; root[0] = '\0'; while (arg < argc) { if (strcmp(argv[arg], "-nopics") == 0) generate_pics = 0; else if (strcmp(argv[arg], "-noindex") == 0) generate_index = 0; else if (strncmp(argv[arg], "-root=", 6) == 0) strncpy(root, argv[arg]+6, 500); else if (strncmp(argv[arg], "-limit=", 7) == 0) map_limit = atoi(argv[arg]+7); else if (strcmp(argv[arg], "-showmaps") == 0) show_maps = 1; else if (strcmp(argv[arg], "-jpg") == 0) { output_format = OF_JPG; if (argv[arg][4] == '=') { jpeg_quality = atoi(argv[arg]+5); if (jpeg_quality < 0) jpeg_quality = -1; } } else if (strcmp(argv[arg], "-forcepics") == 0) force_pics = 1; else if (strncmp(argv[arg], "-addmap=", 8) == 0) { if (*(argv[arg]+8) == '/') strncpy(path, argv[arg]+8, 500); else snprintf(path, 500, "/%s", argv[arg]+8); add_map(get_map_info(path), &maps_list); } else if (strcmp(argv[arg], "-rawmaps") == 0) rawmaps = 1; else if (strcmp(argv[arg], "-warnnopath") == 0) warn_no_path = 1; else if (strcmp(argv[arg], "-listunusedmaps") == 0) list_unused_maps = 1; else if (strcmp(argv[arg], "-noworldmap") == 0) world_map = 0; else if (strcmp(argv[arg], "-noregionslink") == 0) do_regions_link = 0; else if (strcmp(argv[arg], "-regionslink") == 0) do_regions_link = 1; else if (strcmp(argv[arg], "-noexitmap") == 0) world_exit_info = 0; else if (strcmp(argv[arg], "-exitmap") == 0) world_exit_info = 1; else if (strncmp(argv[arg], "-tileset=", 9) == 0) { tileset = atoi(argv[arg]+9); /* check of validity is done in main() as we need to actually have the sets loaded. */ } else do_help(argv[0]); arg++; } if (!strlen(root)) strcpy(root, "html"); if (root[strlen(root)-1] == '/') root[strlen(root)-1] = '\0'; if (map_limit < -1) map_limit = -1; } /** * Ensures destination directory exists. */ static void create_destination(void) { char dummy[502]; strcpy(dummy, root); strcat(dummy, "/a"); make_path_to_file(dummy); } /** * Helper to write yes/no. * * @param value * value to print. * @return * "no" if value == 0, "yes" else. */ static const char *yesno(int value) { return (value ? "yes" : "no"); } int main(int argc, char **argv) { int current_map = 0, i; char max[50]; region *dummy; init_map_list(&maps_list); init_map_list(&tiled_map_list); init_race_list(&races); pics_allocated = 0; do_parameters(argc, argv); printf("Initializing Crossfire data...\n"); settings.debug = 0; init_globals(); init_library(); init_archetypes(); init_artifacts(); init_formulae(); init_readable(); init_regions(); init_gods(); read_client_images(); /* Add a dummy region so unlinked maps can be identified. */ dummy = get_region_struct(); dummy->fallback = 1; dummy->name = strdup_local("unlinked"); dummy->longname = strdup_local("This dummy region contains all maps without a region set."); dummy->longname = strdup_local("This dummy region contains all maps without a region set."); dummy->next = first_region; first_region = dummy; printf("\n\n done.\n\n"); if (!is_valid_faceset(tileset)) { printf("Erreor: invalid tileset %d!\n", tileset); exit(1); } create_destination(); gdfaces = calloc(1, sizeof(gdImagePtr)*nrofpixmaps); read_template("templates/map.template", &map_template); read_template("templates/map_no_exit.template", &map_no_exit_template); read_template("templates/map_with_exit.template", &map_with_exit_template); read_template("templates/map_exit.template", &map_exit_template); read_template("templates/map_no_exit_to.template", &map_no_exit_to_template); read_template("templates/map_with_exit_to.template", &map_with_exit_to_template); read_template("templates/map_exit_to.template", &map_exit_to_template); read_template("templates/map_lore.template", &map_lore_template); read_template("templates/map_no_lore.template", &map_no_lore_template); read_template("templates/map_no_monster.template", &map_no_monster_template); read_template("templates/map_monster_before.template", &map_monster_before_template); read_template("templates/map_monster_between.template", &map_monster_between_template); read_template("templates/map_monster_one.template", &map_monster_one_template); read_template("templates/map_monster_after.template", &map_monster_after_template); read_template("templates/index.template", &index_template); read_template("templates/index_letter.template", &index_letter); read_template("templates/index_map.template", &index_map); read_template("templates/region.template", ®ion_template); read_template("templates/region_letter.template", ®ion_letter_template); read_template("templates/region_map.template", ®ion_map_template); read_template("templates/index_region.template", &index_region_template); read_template("templates/index_region_region.template", &index_region_region_template); read_template("templates/world.template", &world_template); read_template("templates/world_row.template", &world_row_template); read_template("templates/world_map.template", &world_map_template); read_template("templates/level.template", &level_template); read_template("templates/level_value.template", &level_value_template); read_template("templates/level_map.template", &level_map_template); read_template("templates/quests.template", &index_quest_template); read_template("templates/quests_quest.template", &quest_template); read_template("templates/quests_map.template", &quest_map_template); read_template("templates/map_with_quests.template", &map_with_quests_template); read_template("templates/map_one_quest.template", &map_one_quest_template); read_template("templates/map_no_quest.template", &map_no_quest_template); if (map_limit != -1) snprintf(max, sizeof(max), "%d", map_limit); else strcpy(max, "(none)"); printf("Crossfire map browser generator\n"); printf("-------------------------------\n\n"); printf("Parameters:\n"); printf(" path to write files: %s\n", root); printf(" maximum number of maps to process: %s\n", max); printf(" will generate map picture: %s\n", yesno(generate_pics)); printf(" will always generate map picture: %s\n", yesno(force_pics)); printf(" picture output format: %s\n", output_extensions[output_format]); if (output_format == OF_JPG) printf(" JPEG quality: %d\n", jpeg_quality); printf(" will generate map index: %s\n", yesno(generate_index)); printf(" show map being processed: %s\n", yesno(show_maps)); printf(" generate raw maps: %s\n", yesno(rawmaps)); printf(" warn of exit without path: %s\n", yesno(warn_no_path)); printf(" list unused maps: %s\n", yesno(list_unused_maps)); printf(" generate world map: %s\n", yesno(world_map)); printf(" generate exit map: %s\n", yesno(world_exit_info)); printf(" generate regions link file: %s\n", yesno(do_regions_link)); printf(" tileset: %s\n", facesets[tileset].fullname); printf("\n"); if (list_unused_maps) { printf("listing all maps..."); find_maps(""); printf("done, %d maps found.\n", found_maps_count); qsort(found_maps, found_maps_count, sizeof(char *), sortbyname); } /* exit/blocking information. */ infomap = gdImageCreateTrueColor(30*50, 30*50); color_unlinked_exit = gdImageColorResolve(infomap, 255, 0, 0); color_linked_exit = gdImageColorResolve(infomap, 255, 255, 255); color_road = gdImageColorResolve(infomap, 0, 255, 0); color_blocking = gdImageColorResolve(infomap, 0, 0, 255); color_slowing = gdImageColorResolve(infomap, 0, 0, 127); elevation_info = calloc(50*30, sizeof(int *)); for (i = 0; i < 50*30; i++) elevation_info[i] = calloc(50*30, sizeof(int)); elevation_min = 0; elevation_max = 0; printf("browsing maps...\n"); get_map_info(first_map_path); while (current_map < maps_list.count) { process_map(maps_list.maps[current_map++]); if (current_map%100 == 0) { printf(" %d maps processed, %d map pictures created, %d map pictures were uptodate. %d faces used.\n", current_map, created_pics, cached_pics, pics_allocated); } if ((map_limit != -1) && (current_map == map_limit)) { printf(" --- map limit reached, stopping ---\n"); break; } } printf(" finished map parsing, %d maps processed, %d map pictures created, %d map pictures were uptodate. Total %d faces used.\n", current_map, created_pics, cached_pics, pics_allocated); if (list_unused_maps) dump_unused_maps(); fix_exits_to_tiled_maps(); fix_map_names(); fix_tiled_map(); fix_tiled_map_monsters(); write_all_maps(); write_maps_index(); write_maps_by_level(); write_tiled_maps(); write_all_regions(); write_region_index(); write_world_map(); write_world_info(); write_regions_link(); write_slaying_info(); write_quests_page(); write_equipment_index(); write_race_index(); write_npc_list(); write_readable_list(); return 0; } void do_auto_apply(mapstruct *m) { int x, y; if (m == NULL) return; for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, tmp) { if (tmp->inv) { FOR_INV_PREPARE(tmp, invtmp) { if (QUERY_FLAG(invtmp, FLAG_AUTO_APPLY)) apply_auto(invtmp); else if (invtmp->type == TREASURE && HAS_RANDOM_ITEMS(invtmp)) { while ((invtmp->stats.hp--) > 0) create_treasure(invtmp->randomitems, invtmp, 0, m->difficulty, 0); invtmp->randomitems = NULL; } else if (invtmp && invtmp->arch && invtmp->type != TREASURE && invtmp->type != SPELL && invtmp->type != CLASS && HAS_RANDOM_ITEMS(invtmp)) { create_treasure(invtmp->randomitems, invtmp, 0, m->difficulty, 0); /* Need to clear this so that we never try to create * treasure again for this object */ invtmp->randomitems = NULL; } } FOR_INV_FINISH(); /* This is really temporary - the code at the bottom will * also set randomitems to null. The problem is there are bunches * of maps/players already out there with items that have spells * which haven't had the randomitems set to null yet. * MSW 2004-05-13 * * And if it's a spellbook, it's better to set randomitems to NULL too, * else you get two spells in the book ^_- * Ryo 2004-08-16 */ if (tmp->type == WAND || tmp->type == ROD || tmp->type == SCROLL || tmp->type == FIREWALL || tmp->type == POTION || tmp->type == ALTAR || tmp->type == SPELLBOOK) tmp->randomitems = NULL; } if (QUERY_FLAG(tmp, FLAG_AUTO_APPLY)) apply_auto(tmp); else if ((tmp->type == TREASURE || (tmp->type == CONTAINER)) && HAS_RANDOM_ITEMS(tmp)) { while ((tmp->stats.hp--) > 0) create_treasure(tmp->randomitems, tmp, 0, m->difficulty, 0); tmp->randomitems = NULL; } else if (tmp->type == TIMED_GATE) { object *head = HEAD(tmp); if (QUERY_FLAG(head, FLAG_IS_LINKED)) { tmp->speed = 0; object_update_speed(tmp); } /* This function can be called everytime a map is loaded, even when * swapping back in. As such, we don't want to create the treasure * over and ove again, so after we generate the treasure, blank out * randomitems so if it is swapped in again, it won't make anything. * This is a problem for the above objects, because they have counters * which say how many times to make the treasure. */ } else if (tmp && tmp->arch && tmp->type != PLAYER && tmp->type != TREASURE && tmp->type != SPELL && tmp->type != PLAYER_CHANGER && tmp->type != CLASS && HAS_RANDOM_ITEMS(tmp)) { create_treasure(tmp->randomitems, tmp, 0, m->difficulty, 0); tmp->randomitems = NULL; } } FOR_MAP_FINISH(); for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, tmp) { if (tmp->above && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL)) check_trigger(tmp, tmp->above); } FOR_MAP_FINISH(); } #ifndef DOXYGEN_SHOULD_SKIP_THIS /** * Dummy functions to link the library. */ void draw_ext_info(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *txt) { fprintf(logfile, "%s\n", txt); } void draw_ext_info_format(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *format, ...) { va_list ap; va_start(ap, format); vfprintf(logfile, format, ap); va_end(ap); } void ext_info_map(int color, const mapstruct *map, uint8 type, uint8 subtype, const char *str1) { fprintf(logfile, "ext_info_map: %s\n", str1); } void move_firewall(object *ob) { } void emergency_save(int x) { } void clean_tmp_files(void) { } void esrv_send_item(object *ob, object *obx) { } void dragon_ability_gain(object *ob, int x, int y) { } void set_darkness_map(mapstruct *m) { } object *find_skill_by_number(object *who, int skillno) { return NULL; } void esrv_del_item(player *pl, object *ob) { } void esrv_update_item(int flags, object *pl, object *op) { } void esrv_update_spells(player *pl) { } void rod_adjust(object *rod) { } int execute_event(object *op, int eventcode, object *activator, object *third, const char *message, int fix) { return 0; } int execute_global_event(int eventcode, ...) { return 0; } /* * This a modified version of apply_auto: BOOK are not generated, so they don't pollute * the readable list. */ int apply_auto(object *op) { object *tmp = NULL; int i; switch (op->type) { case SHOP_FLOOR: if (!HAS_RANDOM_ITEMS(op)) return 0; do { i = 10; /* let's give it 10 tries */ while ((tmp = generate_treasure(op->randomitems, op->stats.exp ? (int)op->stats.exp : MAX(op->map->difficulty, 5))) == NULL && --i) ; if (tmp == NULL) return 0; if (QUERY_FLAG(tmp, FLAG_CURSED) || QUERY_FLAG(tmp, FLAG_DAMNED) || tmp->type == BOOK) { object_free_drop_inventory(tmp); tmp = NULL; } } while (!tmp); SET_FLAG(tmp, FLAG_UNPAID); object_insert_in_map_at(tmp, op->map, NULL, 0, op->x, op->y); CLEAR_FLAG(op, FLAG_AUTO_APPLY); tmp = identify(tmp); break; case TREASURE: if (QUERY_FLAG(op, FLAG_IS_A_TEMPLATE)) return 0; while ((op->stats.hp--) > 0) create_treasure(op->randomitems, op, 0, op->stats.exp ? (int)op->stats.exp : op->map == NULL ? 14 : op->map->difficulty, 0); /* If we generated an object and put it in this object inventory, * move it to the parent object as the current object is about * to disappear. An example of this item is the random_ *stuff * that is put inside other objects. */ FOR_INV_PREPARE(op, tmp) { object_remove(tmp); if (op->env && tmp->type != BOOK) object_insert_in_ob(tmp, op->env); else object_free_drop_inventory(tmp); } FOR_INV_FINISH(); object_remove(op); object_free_drop_inventory(op); break; } return tmp ? 1 : 0; } void apply_auto_fix(mapstruct *m) { } #endif /* dummy DOXYGEN_SHOULD_SKIP_THIS */ crossfire-1.70.0/utils/add_throw.perl0000644000014500000120000000125311732537036014511 00000000000000#!/usr/bin/perl # Adds the throwing skill to to the old player files. This script # is likely no longer needed, since skills have been around for quite a while. # $end = 0; if (!-e $ARGV[0]) { die("Can not find file $ARGV[0]\n"); } if (-e $ARGV[0].".old") { die("$ARGV[0].new already exists.\n"); } rename($ARGV[0], $ARGV[0].".old"); open(PLAYER,"<".$ARGV[0].".old") || die("can not open $ARGV[0].old"); open(PL_NEW,">".$ARGV[0]) || die("can not open $ARGV[0]"); while () { if (/^end$/) { if ($end) { print PL_NEW "arch skill_throwing\nend\nend\n"; } else {print PL_NEW $_;} $end=1; } else { print PL_NEW $_; $end=0; } } close(PLAYER); close(PL_NEW); crossfire-1.70.0/utils/metaserver.pl0000644000014500000120000001266111732537036014371 00000000000000#!/usr/bin/perl # $Id: metaserver.pl.in 6717 2007-06-27 20:07:36Z akirschbaum $ # Copyright 2000 by Mark Wedel. # This script follows the same license as crossfire (GPL). use Socket; use English; # We periodically generate a nice HTML file that people can't put their # web browser at. This is the location of that file. $HTML_FILE="/var/apache/htdocs/metaserver.html"; # Cache file to keep data we ahve collected. This is used so that if # the metaserver program crashes/dies, it still has some old data. # You may want to set this to a location that will survive across system # reboots. $CACHE_FILE="/var/tmp/meta_xfire.cache"; # We remove a server after $REMOVE_SERVER number of seconds of no updates. # 600 is 10 minutes - if we haven't gotten an update that fast, the server # is almost certainly gone/not available. This reduces congestion when # someone on a dhcp connection keeps running a server and it fills # up a bunch of the slots. $REMOVE_SERVER=600; # UPDATE_SYNC determines how often we update the HTML_FILE and CACHE_FILE. $UPDATE_SYNC=300; # IP_INTERVAL is how often (in seconds) same IP can request metaserver # info. This is to prevent DOS attacks. $IP_INTERVAL=5; # For gathering some anonymous statistics. You probably want to use # MRTG/RRDTOOL for generating statistics from the file. # -- Heikki Hokkanen, 2005-03-26 my $STATS_FILE="/var/tmp/meta_xfire.stats"; my $stats_updatehits = 0; # COUNTER my $stats_requesthits = 0; # COUNTER my $stats_totalplayers = 0; # GAUGE my $stats_totalservers = 0; # GAUGE socket(SOCKET, PF_INET, SOCK_DGRAM, getprotobyname("udp")) || die("$0: can not open udp socket: $OS_ERROR\n"); bind(SOCKET, sockaddr_in(13326, INADDR_ANY)) || die("$0: Can not bind to socket: $OS_ERROR\n"); # Socket1 is used for incoming requests - if we get a connection on this, # we dump out our data to that socket in an easily parsible form. socket(SOCKET1, PF_INET, SOCK_STREAM, getprotobyname("tcp")) || die("$0: can not open tcp socket: $OS_ERROR\n"); # errors on this not that critical setsockopt(SOCKET1, SOL_SOCKET, SO_REUSEADDR, 1); bind(SOCKET1, sockaddr_in(13326, INADDR_ANY)) || die("$0: Can not bind to socket: $OS_ERROR\n"); listen(SOCKET1, 10) || die("$0: Can not listen on socket: $OS_ERROR\n"); vec($rin, fileno(SOCKET), 1)=1; vec($rin, fileno(SOCKET1), 1)=1; if (open(CACHE,"<$CACHE_FILE")) { while () { chomp; ($ip, $rest) = split /\|/, $_, 2; $data{$ip} = $_; } } close(CACHE); $last_sync=time; while (1) { $nfound=select($rout=$rin, undef, undef, 60); $cur_time=time; if ($nfound) { if (vec($rout, fileno(SOCKET),1)) { $ipaddr = recv(SOCKET, $data, 256, 0) || print STDERR "$0: error on recv call: $OS_ERROR\n"; ($port, $ip) = sockaddr_in($ipaddr); $host = inet_ntoa $ip; ($name, $rest) = split /\|/, $data; if ($name ne "put.your.hostname.here") { $data{$host} = "$host|$cur_time|$data"; $stats_updatehits++; } } if (vec($rout, fileno(SOCKET1),1)) { # This is overly basic - if there are enough servers # where the output won't fit in the outgoing socket, # this will block. However, if we fork, we open # ourselves up to someone intentionally designing something # that causes these to block, and then have us fork a huge # number of process potentially filling up our proc table. if ($ipaddr=accept NEWSOCKET, SOCKET1) { ($port, $ip ) = sockaddr_in( $ipaddr ); $dq = join('.',unpack('C4', $ip)); if ($ip_times{$dq} > time) { close(NEWSOCKET); } else { $ip_times{$dq} = time + $IP_INTERVAL; foreach $i (keys %data) { # Report idle time to client, and not last update # as we received in seconds since epoch. ($ip, $time, $rest) = split /\|/, $data{$i}, 3; $newtime = $cur_time - $time; print NEWSOCKET "$ip|$newtime|$rest\n"; } close(NEWSOCKET); $stats_requesthits++; } } } } # Need to generate some files. This is also where we remove outdated # hosts. if ($last_sync+$UPDATE_SYNC < $cur_time) { $last_sync = $cur_time; open(CACHE,">$CACHE_FILE"); open(HTML,">$HTML_FILE"); print HTML 'Crossfire Server List

Crossfire Server List

'; $stats_totalplayers = 0; $stats_totalservers = 0; foreach $i (keys %data) { $stats_totalservers++; ($ip, $time, @rest) = split /\|/, $data{$i}; if ($time+$REMOVE_SERVER<$cur_time) { delete $data{$i}; } else { print CACHE "$data{$i}\n"; $elapsed = int(($cur_time - $time)/60); $gmtime = gmtime($time); print HTML ""; print HTML "\n"; $stats_totalplayers += int($rest[2]); } } $gmtime = gmtime($cur_time); print HTML "
IP AddressLast Update Date/TimeLast Update Minutes Elapsed HostnameNumber of PlayersVersionComment
$i$gmtime$elapsed$rest[0]$rest[1]$rest[2]$rest[3]

The server name is reported by the server, while the ip address is determined by the incoming data packet. These values may not resolve to the same thing in the case of multi homed hosts or multi ip hosts.

All times are in GMT.

Last Updated: $gmtime

"; close(HTML); close(CACHE); open(STATS,">$STATS_FILE"); print STATS "$stats_updatehits:$stats_requesthits:$stats_totalservers:$stats_totalplayers\n"; close(STATS); } } crossfire-1.70.0/utils/Makefile.in0000644000014500000120000006254711732537023013730 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @MAPPER_TRUE@noinst_PROGRAMS = crossfire-mapper$(EXEEXT) subdir = utils DIST_COMMON = $(dist_bin_SCRIPTS) $(dist_noinst_SCRIPTS) \ $(dist_pkglibexec_SCRIPTS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/add_throw.perl.in \ $(srcdir)/crossloop.pl.tmpl.in $(srcdir)/crossloop.tmpl.in \ $(srcdir)/crossloop.web.in $(srcdir)/metaserver.pl.in \ $(srcdir)/player_dl.pl.in $(srcdir)/scores.pl.in compile \ config.guess config.sub depcomp install-sh ltmain.sh missing \ ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = add_throw.perl metaserver.pl scores.pl \ player_dl.pl crossloop.tmpl crossloop.pl.tmpl crossloop.web CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am__crossfire_mapper_SOURCES_DIST = mapper.c @MAPPER_TRUE@am_crossfire_mapper_OBJECTS = mapper.$(OBJEXT) crossfire_mapper_OBJECTS = $(am_crossfire_mapper_OBJECTS) am__DEPENDENCIES_1 = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" \ "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" SCRIPTS = $(dist_bin_SCRIPTS) $(dist_noinst_SCRIPTS) \ $(dist_pkglibexec_SCRIPTS) $(nodist_bin_SCRIPTS) \ $(nodist_pkglibexec_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(crossfire_mapper_SOURCES) DIST_SOURCES = $(am__crossfire_mapper_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = sed SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ nodist_bin_SCRIPTS = crossloop.pl crossloop player_dl.pl dist_bin_SCRIPTS = crossloop.web nodist_pkglibexec_SCRIPTS = dist_pkglibexec_SCRIPTS = mktable.script add_throw.perl metaserver.pl dist_noinst_SCRIPTS = ad2c.script mktable.script player_dl.html cfmeta-rrd EXTRA_DIST = AM_CPPFLAGS = -I$(top_srcdir)/include CLEANFILES = crossloop.pl crossloop @MAPPER_TRUE@crossfire_mapper_SOURCES = mapper.c @MAPPER_TRUE@crossfire_mapper_INCLUDES = -I ../include @MAPPER_TRUE@crossfire_mapper_DEPENDENCIES = ../common/libcross.a @MAPPER_TRUE@crossfire_mapper_LDADD = ../common/libcross.a $(GD_LIBS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu utils/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu utils/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): add_throw.perl: $(top_builddir)/config.status $(srcdir)/add_throw.perl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ metaserver.pl: $(top_builddir)/config.status $(srcdir)/metaserver.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ scores.pl: $(top_builddir)/config.status $(srcdir)/scores.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ player_dl.pl: $(top_builddir)/config.status $(srcdir)/player_dl.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ crossloop.tmpl: $(top_builddir)/config.status $(srcdir)/crossloop.tmpl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ crossloop.pl.tmpl: $(top_builddir)/config.status $(srcdir)/crossloop.pl.tmpl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ crossloop.web: $(top_builddir)/config.status $(srcdir)/crossloop.web.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list crossfire-mapper$(EXEEXT): $(crossfire_mapper_OBJECTS) $(crossfire_mapper_DEPENDENCIES) $(EXTRA_crossfire_mapper_DEPENDENCIES) @rm -f crossfire-mapper$(EXEEXT) $(LINK) $(crossfire_mapper_OBJECTS) $(crossfire_mapper_LDADD) $(LIBS) install-dist_binSCRIPTS: $(dist_bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) install-dist_pkglibexecSCRIPTS: $(dist_pkglibexec_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_pkglibexecSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(pkglibexecdir)'; $(am__uninstall_files_from_dir) install-nodist_binSCRIPTS: $(nodist_bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(nodist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-nodist_binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(nodist_bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) install-nodist_pkglibexecSCRIPTS: $(nodist_pkglibexec_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" @list='$(nodist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-nodist_pkglibexecSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(nodist_pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(pkglibexecdir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapper.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibexecdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-dist_binSCRIPTS \ install-dist_pkglibexecSCRIPTS install-nodist_binSCRIPTS \ install-nodist_pkglibexecSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_binSCRIPTS \ uninstall-dist_pkglibexecSCRIPTS uninstall-nodist_binSCRIPTS \ uninstall-nodist_pkglibexecSCRIPTS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am \ install-dist_binSCRIPTS install-dist_pkglibexecSCRIPTS \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-nodist_binSCRIPTS \ install-nodist_pkglibexecSCRIPTS install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-dist_binSCRIPTS \ uninstall-dist_pkglibexecSCRIPTS uninstall-nodist_binSCRIPTS \ uninstall-nodist_pkglibexecSCRIPTS # For some reason, Sun's make fails if you try to use $< # in the following entries. Sun's man page does say $< # is legal. Easy enough to just replace them with real entries # however. crossloop.pl: crossloop.pl.tmpl $(SED) s%BINDIR%$(bindir)%g < crossloop.pl.tmpl > crossloop.pl crossloop: crossloop.tmpl $(SED) s%BINDIR%$(bindir)%g < crossloop.tmpl > crossloop @MAPPER_TRUE@$(crossfire_mapper_DEPENDENCIES) : @MAPPER_TRUE@ for DEP in $(crossfire_mapper_DEPENDENCIES); \ @MAPPER_TRUE@ do \ @MAPPER_TRUE@ pushd `dirname $${DEP}` >/dev/null; \ @MAPPER_TRUE@ $(MAKE) `basename $${DEP}`; \ @MAPPER_TRUE@ popd >/dev/null; \ @MAPPER_TRUE@ done; # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/utils/ad2c.script0000644000014500000120000000110311731300533013670 00000000000000#!/bin/sh # # ad2c : Convert app-defaults file to C strings decls. # # George Ferguson, ferguson@cs.rcohester.edu, 12 Nov 1990. # Updated 19 Mar 1991 - Made it self-contained. # sed -n ' : read # remove comments /^!/d # remove blanks /^$/d # escape quotes s/"/\\"/g # escape backslash s/\\/\\\\/g # except the line continuation ones s/\\$//g # add leading quote s/^/"/ # : test /\\$/b slash s/$/",/ p n b read # : slash p n # just like "read" only does not add leading quote /^!/d /^$/d s/"/\\"/g s/\\\\/\\/g s/\\n/\\\\n/g s/\\t/\\\\t/g s/\\f/\\\\f/g s/\\b/\\\\b/g b test' "$@" crossfire-1.70.0/utils/ltmain.sh0000644000014500000120000105152211732536431013475 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 crossfire-1.70.0/utils/crossloop.pl.tmpl.in0000644000014500000120000000267411731300533015607 00000000000000#!@PERL@ $crossname = "/madhatter/bin/crossfire-server"; $playerdir = "/madhatter/lib/X11/crossfire/players"; $logcount = 0; $logdir= "/tmp/crosslog"; if (! -d $logdir) { mkdir($logdir,0775) || die("Unable to mkdir $logdir\n"); } system("rm $logdir/*"); $badcount = 0; while(1) { ++$logcount; $starttime = time; &doserver; system("rm /tmp/*$crosspid.o?"); system("rmdir $playerdir/*.lock"); $badcount = 0 if ((time-$startime)<300); ++$badcount; die("Crossfire really unhappy\n") if $badcount>10; } sub doserver { open(LOGFILE,">$logdir/$logcount") || die("Unable to open $logdir/$logcount for write\n"); $oldfh = select(LOGFILE);$|=1;select(LOGFILE); pipe(READ,WRITE); if (($crosspid=fork)>0) { # Parent close(WRITE); $now = time; $toomuch =0; while() { if ((time-$now)<5) { ++$toomuch; if ($toomuch>500) { print LOGFILE "Crossfire Talks too much\n"; kill 'HUP', $crosspid; sleep(5); kill 'TERM', $crosspid; sleep(5); kill 'INT', $crosspid; sleep(5); kill 9, $crosspid; last; } } else { $toomuch = 0; } print LOGFILE $_; } } elsif ($crosspid==0) { close(READ); open(STDOUT,">&WRITE") || die("Can't redirect stdout\n"); open(STDERR,">&WRITE") || die("Can't redirect stderr\n"); exec "$crossname","-server"; die("Exec Failed\n"); } else { die("can't fork\n"); } close(LOGFILE); } crossfire-1.70.0/utils/ylwrap0000755000014500000120000001404311732535034013113 00000000000000#! /bin/sh # ylwrap - wrapper for lex/yacc invocations. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, # 2007, 2009 Free Software Foundation, Inc. # # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case "$1" in '') echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 exit 1 ;; --basedir) basedir=$2 shift 2 ;; -h|--h*) cat <<\EOF Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... Wrapper for lex/yacc invocations, renaming files as desired. INPUT is the input file OUTPUT is one file PROG generates DESIRED is the file we actually want instead of OUTPUT PROGRAM is program to run ARGS are passed to PROG Any number of OUTPUT,DESIRED pairs may be used. Report bugs to . EOF exit $? ;; -v|--v*) echo "ylwrap $scriptversion" exit $? ;; esac # The input. input="$1" shift case "$input" in [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; *) # Relative path. Make it absolute. input="`pwd`/$input" ;; esac pairlist= while test "$#" -ne 0; do if test "$1" = "--"; then shift break fi pairlist="$pairlist $1" shift done # The program to run. prog="$1" shift # Make any relative path in $prog absolute. case "$prog" in [\\/]* | ?:[\\/]*) ;; *[\\/]*) prog="`pwd`/$prog" ;; esac # FIXME: add hostname here for parallel makes that run commands on # other machines. But that might take us over the 14-char limit. dirname=ylwrap$$ trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 mkdir $dirname || exit 1 cd $dirname case $# in 0) "$prog" "$input" ;; *) "$prog" "$@" "$input" ;; esac ret=$? if test $ret -eq 0; then set X $pairlist shift first=yes # Since DOS filename conventions don't allow two dots, # the DOS version of Bison writes out y_tab.c instead of y.tab.c # and y_tab.h instead of y.tab.h. Test to see if this is the case. y_tab_nodot="no" if test -f y_tab.c || test -f y_tab.h; then y_tab_nodot="yes" fi # The directory holding the input. input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` # Quote $INPUT_DIR so we can use it in a regexp. # FIXME: really we should care about more than `.' and `\'. input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` while test "$#" -ne 0; do from="$1" # Handle y_tab.c and y_tab.h output by DOS if test $y_tab_nodot = "yes"; then if test $from = "y.tab.c"; then from="y_tab.c" else if test $from = "y.tab.h"; then from="y_tab.h" fi fi fi if test -f "$from"; then # If $2 is an absolute path name, then just use that, # otherwise prepend `../'. case "$2" in [\\/]* | ?:[\\/]*) target="$2";; *) target="../$2";; esac # We do not want to overwrite a header file if it hasn't # changed. This avoid useless recompilations. However the # parser itself (the first file) should always be updated, # because it is the destination of the .y.c rule in the # Makefile. Divert the output of all other files to a temporary # file so we can compare them to existing versions. if test $first = no; then realtarget="$target" target="tmp-`echo $target | sed s/.*[\\/]//g`" fi # Edit out `#line' or `#' directives. # # We don't want the resulting debug information to point at # an absolute srcdir; it is better for it to just mention the # .y file with no path. # # We want to use the real output file name, not yy.lex.c for # instance. # # We want the include guards to be adjusted too. FROM=`echo "$from" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` TARGET=`echo "$2" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? # Check whether header files must be updated. if test $first = no; then if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then echo "$2" is unchanged rm -f "$target" else echo updating "$2" mv -f "$target" "$realtarget" fi fi else # A missing file is only an error for the first file. This # is a blatant hack to let us support using "yacc -d". If -d # is not specified, we don't want an error when the header # file is "missing". if test $first = yes; then ret=1 fi fi shift shift first=no done else ret=$? fi # Remove the directory. cd .. rm -rf $dirname exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: crossfire-1.70.0/utils/add_throw.perl.in0000755000014500000120000000124411731300533015106 00000000000000#!@PERL@ # Adds the throwing skill to to the old player files. This script # is likely no longer needed, since skills have been around for quite a while. # $end = 0; if (!-e $ARGV[0]) { die("Can not find file $ARGV[0]\n"); } if (-e $ARGV[0].".old") { die("$ARGV[0].new already exists.\n"); } rename($ARGV[0], $ARGV[0].".old"); open(PLAYER,"<".$ARGV[0].".old") || die("can not open $ARGV[0].old"); open(PL_NEW,">".$ARGV[0]) || die("can not open $ARGV[0]"); while () { if (/^end$/) { if ($end) { print PL_NEW "arch skill_throwing\nend\nend\n"; } else {print PL_NEW $_;} $end=1; } else { print PL_NEW $_; $end=0; } } close(PLAYER); close(PL_NEW); crossfire-1.70.0/utils/mktable.script0000644000014500000120000000373111731300533014507 00000000000000#!/usr/bin/perl # mktable - generate: # 1. struct _type # 2. table _table # 3. table size _size # 3. enum-list _enum, enumerator from given names # from one definition file # # definition file: # ^# hashes are allowed as comments in begining of line # ^# first line declares type-member pairs separated by slash # ^# typenames have to be in one part eg. "struct type" don't # ^# work, typedef these instead. # ^ type1/member1 type2/memeber2 # ^ # ^# in data lines, exist first name of row and then members # ^# of struct in order. The name may not enclose in "'s althought # ^# its type is char *. # ^ name member1 member2 # ^ name ... ... # ^ ... # if( ! $ARGV[0] ) { print "Usage: mktable definition-file\n"; exit(2); } else { $def = $ARGV[0]; } open(DEF,$def) || die("Can't open ".$def); $line = 0; $elems = 0; %table; print "/* should not be modified */\n\n"; &loop; sub loop { while() { chop; next if /^$/; next if /^[\t ]*#/; $line++; @tuple = split; shift @tuple if $tuple[0] eq ""; if($line == 1) { print "typedef struct {\n"; print "\tchar\t*key;\n"; foreach $field (@tuple) { # print "\"$field\"\n"; last if $field eq "empty"; ($type,$mem) = split(/\//,$field); print "\t$type\t$mem;\n"; } print "} ".$def."_type;\n\n"; } else { $elems++; $key = shift(@tuple); $val = join(":",@tuple); $table{$key} = $val; } } # size print "#define\t".$def."_size\t$elems\n\n"; # table print "/* sorted */\n"; print $def."_type ".$def."_table[] = {\n"; foreach $key (sort(keys(%table))) { print "\t\"$key\",\t"; foreach $mem (split(/:/,$table{$key})) { print "$mem,\t"; } print "\n"; } print "}; /* ".$def."_table */\n\n"; # enum print "typedef enum {\n"; foreach $key (sort(keys(%table))) { print "\tinput_".$key.",\n"; } print "} "."$def"."_enum;\n\n"; } crossfire-1.70.0/DEVELOPERS0000644000014500000120000000604511731300547012103 00000000000000Current projects (and people working on them) can be found at: http://wiki.metalforge.net/doku.php/dev_todo Current list of developers with SVN access can be found at: http://sourceforge.net/project/memberlist.php?group_id=13833 The list below are people that have worked on crossfire and things they have worked on. Some are still active, some are not: ------------------------------------------------------------------------------ Mark Wedel ("cvs", mwedel@sonic.net) - core maintainer, handles patches submitted by those not having CVS access, investigates bugs, and future long term developement. Peter Mardahl <"peterm", peterm@eecs.berkeley.edu> runes, new spells, changing of spell parameters, new archetypes, random maps, traps, race/class, diseases, graded lighting, movers, creators, peterm/* maps David Andrew Michael Noelle ("damn", dave@straylight.org)- fixing things that ain't broke (and occasionally some that is) primarily in the server, maps, and archetypes Raphael Quinet ("quinet", Raphael Quinet) - sounds (originally using rplay), client/server split, various small changes to the server. Frank Tore Johansen ("ftj", frankj@osc.no) - misc. Kjetil Torgrim Homme ("kjetilho", kjetilho@ifi.uio.no) David Sundqvist ("azzi") - images ? ("dragonm", dragonm@absolut.tegris.com) - Client/server John Cater ("cater", john.cater@eng.monash.edu.au) - Maps, navar etc, bug fixing Bob Tanner ("tanner", tanner@real-time.com) - .spec files Jan Echternach ("jec", jan.echternach@informatik.uni-rostock.de) - bug fixing Andreas Vogl ("red_blaze", andi.vogl@gmx.net) - bug fixing, creating maps, maintaining pupland. David Hurst "dnh@hawthorn.csse.monash.edu.au" - gods rebalancing, images for classes and other images, spell testing and concepts Hwei Sheng Teoh hsteoh@quickfur.yi.org -- random_maps expand2x, also, images for Fiend, dread, beholder generator, grimreaper. Tim Rightnour ("garbled", root@garbled.net) - luck, attackmessages, time, weather, new alchemy, overlay maps, emotions. Todd Mitchell ("Avion", temichell@sympatico.ca) -general busybody, graphics and arches(player animation, winter graphics, many others), metadata (lore),python scripts, creating maps, getting Tim to add Orcknuckle... Nicolas Weeger ("Ryo", nicolas.weeger@laposte.net) - some work on Win32 port, some bugfixes & improvements. David Seikel ("onefang", won_fang@yahoo.com.au) - bug fixing, weather tweaking, weather god, visualisations, large forest, ice castle and ant farm maps. Phil Brown (phil@bolthole.com)- Java Client Brian Thomas (thomas@astro.psu.edu)- Skills, alchemy, altars Tyler Van Gorder added color stuff, interested in working on client side (user interface) David.M.Fisher@Dartmouth.EDU (David M. Fisher) Rupert G. Goldie testing under Purify, new spells, spell paths, and gifts. 'Evil' ERic Mehlhaff Client server, also works with Peter Mardahl "Eric A. Anderson" - general bug fixing Michael Martin (martinm@millner.bevc.blacksburg.va.us) - Java client crossfire-1.70.0/run_win32.bat0000644000014500000120000000003111731300547013013 00000000000000rem test crossfire32.exe crossfire-1.70.0/aclocal.m40000644000014500000120000011042011732537017012346 00000000000000# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_PROG_LEX # ----------- # Autoconf leaves LEX=: if lex or flex can't be found. Change that to a # "missing" invocation, for better error output. AC_DEFUN([AM_PROG_LEX], [AC_PREREQ(2.50)dnl AC_REQUIRE([AM_MISSING_HAS_RUN])dnl AC_REQUIRE([AC_PROG_LEX])dnl if test "$LEX" = :; then LEX=${am_missing_run}flex fi]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([macros/cf_python.m4]) m4_include([macros/cf_visibility.m4]) m4_include([macros/cf_xslt.m4]) m4_include([macros/check.m4]) m4_include([macros/libcurl.m4]) m4_include([macros/libtool.m4]) m4_include([macros/ltoptions.m4]) m4_include([macros/ltsugar.m4]) m4_include([macros/ltversion.m4]) m4_include([macros/lt~obsolete.m4]) crossfire-1.70.0/TODO0000644000014500000120000000037411731300547011177 00000000000000This file is now obsolete. Bugs and minor feature requests can be found on the sourceforge tracker: http://sourceforge.net/tracker/?group_id=13833 More major features can be found the metalforge WIKI: http://wiki.metalforge.net/doku.php/dev_todo_new crossfire-1.70.0/random_maps/0000755000014500000120000000000011732537043013067 500000000000000crossfire-1.70.0/random_maps/standalone.c0000644000014500000120000001467011731300530015277 00000000000000/* * static char *rcsid_standalone_c = * "$Id: standalone.c 15527 2011-11-06 17:43:01Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002-2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ #define LO_NEWFILE 2 /* the main routine for making a standalone version. */ #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { char InFileName[1024], OutFileName[1024]; mapstruct *newMap; RMParms rp; FILE *fp; if (argc < 3) { printf("\nUsage: %s inputfile outputfile\n", argv[0]); exit(0); } strcpy(InFileName, argv[1]); strcpy(OutFileName, argv[2]); init_globals(); init_library(); init_archetypes(); init_artifacts(); init_formulae(); init_readable(); init_gods(); memset(&rp, 0, sizeof(RMParms)); rp.Xsize = -1; rp.Ysize = -1; if ((fp = fopen(InFileName, "r")) == NULL) { fprintf(stderr, "\nError: can not open %s\n", InFileName); exit(1); } load_parameters(fp, LO_NEWFILE, &rp); fclose(fp); newMap = generate_random_map(OutFileName, &rp, NULL); save_map(newMap, SAVE_MODE_INPLACE); exit(0); } void set_map_timeout(mapstruct *oldmap) { /* doesn't need to do anything */ } #include /* some plagarized code from apply.c--I needed just these two functions without all the rest of the junk, so.... */ int apply_auto(object *op) { object *tmp = NULL; int i; switch (op->type) { case SHOP_FLOOR: if (!HAS_RANDOM_ITEMS(op)) return 0; do { i = 10; /* let's give it 10 tries */ while ((tmp = generate_treasure(op->randomitems, op->stats.exp ? op->stats.exp : 5)) == NULL && --i) ; if (tmp == NULL) return 0; if (QUERY_FLAG(tmp, FLAG_CURSED) || QUERY_FLAG(tmp, FLAG_DAMNED)) { object_free_drop_inventory(tmp); tmp = NULL; } } while (!tmp); SET_FLAG(tmp, FLAG_UNPAID); object_insert_in_map_at(tmp, op->map, NULL, 0, op->x, op->y); CLEAR_FLAG(op, FLAG_AUTO_APPLY); tmp = identify(tmp); break; case TREASURE: if (HAS_RANDOM_ITEMS(op)) while ((op->stats.hp--) > 0) create_treasure(op->randomitems, op, GT_ENVIRONMENT, op->stats.exp ? op->stats.exp : op->map == NULL ? 14 : op->map->difficulty, 0); object_remove(op); object_free_drop_inventory(op); break; } return tmp ? 1 : 0; } /* apply_auto_fix goes through the entire map (only the first time * when an original map is loaded) and performs special actions for * certain objects (most initialization of chests and creation of * treasures and stuff). Calls apply_auto if appropriate. */ void apply_auto_fix(mapstruct *m) { int x, y; for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, tmp) { if (QUERY_FLAG(tmp, FLAG_AUTO_APPLY)) apply_auto(tmp); else if (tmp->type == TREASURE) { if (HAS_RANDOM_ITEMS(tmp)) while ((tmp->stats.hp--) > 0) create_treasure(tmp->randomitems, tmp, 0, m->difficulty, 0); } if (tmp && tmp->arch && tmp->type != PLAYER && tmp->type != TREASURE && tmp->randomitems) { if (tmp->type == CONTAINER) { if (HAS_RANDOM_ITEMS(tmp)) while ((tmp->stats.hp--) > 0) create_treasure(tmp->randomitems, tmp, 0, m->difficulty, 0); } else if (HAS_RANDOM_ITEMS(tmp)) create_treasure(tmp->randomitems, tmp, 0, m->difficulty, 0); } } FOR_MAP_FINISH(); for (x = 0; x < MAP_WIDTH(m); x++) for (y = 0; y < MAP_HEIGHT(m); y++) FOR_MAP_PREPARE(m, x, y, tmp) { if (tmp->above && (tmp->type == TRIGGER_BUTTON || tmp->type == TRIGGER_PEDESTAL)) check_trigger(tmp, tmp->above); } FOR_MAP_FINISH(); } /** * Those are dummy functions defined to resolve all symboles. * Added as part of glue cleaning. * Ryo 2005-07-15 **/ void draw_ext_info(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *message) { fprintf(logfile, "%s\n", message); } void draw_ext_info_format(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *format, ...) { va_list ap; va_start(ap, format); vfprintf(logfile, format, ap); va_end(ap); } void ext_info_map(int color, const mapstruct *map, uint8 type, uint8 subtype, const char *str1) { fprintf(logfile, "ext_info_map: %s\n", str1); } void move_firewall(object *ob) { } void emergency_save(int x) { } void clean_tmp_files(void) { } void esrv_send_item(object *ob, object *obx) { } void esrv_update_item(int flags, object *pl, object *op) { } void dragon_ability_gain(object *ob, int x, int y) { } void set_darkness_map(mapstruct *m) { } object *find_skill_by_number(object *who, int skillno) { return NULL; } void esrv_del_item(player *pl, object *ob) { } void esrv_update_spells(player *pl) { } void rod_adjust(object *rod) { } int execute_event(object *op, int eventcode, object *activator, object *third, const char *message, int fix) { return 0; } int execute_global_event(int eventcode, ...) { return 0; } crossfire-1.70.0/random_maps/random_map.h0000644000014500000120000001357111731300530015270 00000000000000/* * static char *rcsid_map_c = * "$Id: random_map.h 14926 2011-07-30 21:13:25Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Random map related variables. */ #ifndef RANDOM_MAP_H #define RANDOM_MAP_H #define RM_SIZE 512 /** * Random map parameters. */ typedef struct RMParms { /** * Name of the wall style file, in /styles/wallstyles, can be an empty * string in which case a random one is chosen, or "none". */ char wallstyle[RM_SIZE]; /** * Will contain the actual wall archetype, can be an empty * string in which case a random one is chosen, or "none". */ char wall_name[RM_SIZE]; /** * Name of the floor style file, in /styles/floors, can be an empty * string in which case a random one is chosen, or "none". */ char floorstyle[RM_SIZE]; /** * Name of the monster style directory, in /styles/monsters, can be an empty * string in which case a random one is chosen. */ char monsterstyle[RM_SIZE]; /** * Name of the treasures style file, in /styles/treasurestyles, can be an empty * string in which case a random one is chosen, or "none". */ char treasurestyle[RM_SIZE]; /** Contains the layout type to generate, see layoutgen() for valid types. */ char layoutstyle[RM_SIZE]; /** Name of the doors style file, in /styles/doorstyles, see put_doors(). */ char doorstyle[RM_SIZE]; /** * Name of the decor style file, in /styles/decorstyles, can be an empty * string in which case a random one is chosen, or "none". */ char decorstyle[RM_SIZE]; /** Path to the map this random map is generated from, to make an exit back. */ char origin_map[RM_SIZE]; /** If not empty, the path of the final map this whole maze leads to. */ char final_map[RM_SIZE]; /** If not empty, the archetype name of the exit leading to the final map. */ char final_exit_archetype[RM_SIZE]; /** Name of the exit style files, in /styles/exitstyles/{up,down}, can be * an empty string in which case a random one is chosen, or "none". */ char exitstyle[RM_SIZE]; /** @todo remove, never non zero */ char this_map[RM_SIZE]; /** * If this is "no", then no exit will be made to the final map from the * previous random map. */ char exit_on_final_map[RM_SIZE]; /** If not empty, will be used in the name of the random keys. */ char dungeon_name[RM_SIZE]; int Xsize; int Ysize; int expand2x; int layoutoptions1; int layoutoptions2; int symmetry; int difficulty; /** If non zero, this means the difficulty was not zero initially. */ int difficulty_given; float difficulty_increase; int dungeon_level; int dungeon_depth; int decoroptions; int orientation; int origin_y; int origin_x; int random_seed; int map_layout_style; /** Total hit points of the monsters in the map, used for treasure generation. */ long unsigned int total_map_hp; int treasureoptions; int symmetry_used; struct regiondef *region; /** * If non zero, then the map will have multiple floors, else only one * floor will be used. */ int multiple_floors; } RMParms; int load_parameters(FILE *fp, int bufstate, RMParms *RP); /** * @defgroup RM_LAYOUT Random map layout */ /*@{*/ #define ONION_LAYOUT 1 #define MAZE_LAYOUT 2 #define SPIRAL_LAYOUT 3 #define ROGUELIKE_LAYOUT 4 #define SNAKE_LAYOUT 5 #define SQUARE_SPIRAL_LAYOUT 6 #define NROFLAYOUTS 6 /*@}*/ /** * @defgroup OPT_xxx Random map layout options. * * Move these defines out of room_gen_onion.c to here, as * other files (like square_spiral) also uses them. */ /*@{*/ #define OPT_RANDOM 0 /**< Random option. */ #define OPT_CENTERED 1 /**< Centered. */ #define OPT_LINEAR 2 /**< Linear doors (default is nonlinear). */ #define OPT_BOTTOM_C 4 /**< Bottom-centered. */ #define OPT_BOTTOM_R 8 /**< Bottom-right centered. */ #define OPT_IRR_SPACE 16 /**< Irregularly/randomly spaced layers (default: regular). */ #define OPT_WALL_OFF 32 /**< No outer wall. */ #define OPT_WALLS_ONLY 64 /**< Only walls. */ #define OPT_NO_DOORS 256 /**< Place walls insead of doors. Produces broken map. */ /*@}*/ /** * @defgroup SYM_xxx Random map symetry * Symmetry definitions -- used in this file AND in @ref treasure.c, * the numerical values matter so don't change them. */ /*@{*/ #define RANDOM_SYM 0 /**< Random symmetry. */ #define NO_SYM 1 /**< No symmetry. */ #define X_SYM 2 /**< Vertical symmetry. */ #define Y_SYM 3 /**< Horizontal symmetry. */ #define XY_SYM 4 /**< Reflection. */ /*@}*/ /** Minimal size a random should have to actually be generated. */ #define MIN_RANDOM_MAP_SIZE 10 /** * Macro to get a strongly centered random distribution, * from 0 to x, centered at x/2 */ #define BC_RANDOM(x) ((int) ((RANDOM()%(x)+RANDOM()%(x)+RANDOM()%(x))/3.)) int set_random_map_variable(RMParms *rp, const char *buf); #endif crossfire-1.70.0/random_maps/door.c0000644000014500000120000000671611731300530014114 00000000000000/* * static char *rcsid_door_c = * "$Id: door.c 15223 2011-10-21 17:05:02Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * door-related functions. */ #include #include #include /** * Serch for doors or walls around a spot. * @param layout * maze. * @param i * @param j * coordinates to check. * @param Xsize * @param Ysize * maze size. * @return * Combination of flags: * - 1 = door or wall to left. * - 2 = door or wall to right. * - 4 = door or wall above. * - 8 = door or wall below. */ int surround_check2(char **layout, int i, int j, int Xsize, int Ysize) { int surround_index = 0; if ((i > 0) && (layout[i-1][j] == 'D' || layout[i-1][j] == '#')) surround_index += 1; if ((i < Xsize-1) && (layout[i+1][j] == 'D' || layout[i+1][j] == '#')) surround_index += 2; if ((j > 0) && (layout[i][j-1] == 'D' || layout[i][j-1] == '#')) surround_index += 4; if ((j < Ysize-1) && (layout[i][j+1] == 'D' || layout[i][j+1] == '#')) surround_index += 8; return surround_index; } /** * Add doors to a map. * @param the_map * map we're adding doors to. * @param maze * maze layout. * @param doorstyle * door style to be. If "none", won't do anything. If NULL, will choose one randomly. * @param RP * random map parameters. */ void put_doors(mapstruct *the_map, char **maze, const char *doorstyle, RMParms *RP) { int i, j; mapstruct *vdoors; mapstruct *hdoors; char doorpath[128]; if (!strcmp(doorstyle, "none")) return; vdoors = find_style("/styles/doorstyles", doorstyle, -1); if (vdoors) hdoors = vdoors; else { vdoors = find_style("/styles/doorstyles/vdoors", doorstyle, -1); if (!vdoors) return; snprintf(doorpath, sizeof(doorpath), "/styles/doorstyles/hdoors%s", strrchr(vdoors->path, '/')); hdoors = find_style(doorpath, NULL, -1); } for (i = 0; i < RP->Xsize; i++) for (j = 0; j < RP->Ysize; j++) { if (maze[i][j] == 'D') { int sindex; object *this_door, *new_door; sindex = surround_check2(maze, i, j, RP->Xsize, RP->Ysize); if (sindex == 3) this_door = pick_random_object(hdoors); else this_door = pick_random_object(vdoors); new_door = arch_to_object(this_door->arch); object_copy(this_door, new_door); object_insert_in_map_at(new_door, the_map, NULL, 0, i, j); } } } crossfire-1.70.0/random_maps/exit.c0000644000014500000120000003165611731300530014123 00000000000000/* * static char *rcsid_exit_c = * "$Id: exit.c 14877 2011-07-17 09:52:43Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ #include #include #include #include /** * @file * Handle exit placement in map. */ /** * Find a character in the layout. * @param mode * how to look: * - 1: from top/left to bottom/right. * - 2: from top/right to bottom/left. * - 3: from bottom/left to top/right. * - 4: from bottom/right to top/left. * - other value: one random order is chosen. * @param target * character to search. * @param fx * @param fy * position of character, or -1 if not found. * @param layout * maze. * @param RP * maze parameters. */ void find_in_layout(int mode, char target, int *fx, int *fy, char **layout, RMParms *RP) { int M; int i, j; *fx = -1; *fy = -1; /* if a starting mode isn't given, pick one */ if (mode < 1 || mode > 4) M = RANDOM()%4+1; else M = mode; /* four different search starting points and methods so that we can do something different for symmetrical maps instead of the same damned thing every time. */ switch (M) { case 1: { /* search from top left down/right */ for (i = 1; i < RP->Xsize; i++) for (j = 1; j < RP->Ysize; j++) { if (layout[i][j] == target) { *fx = i; *fy = j; return; } } break; } case 2: { /* Search from top right down/left */ for (i = RP->Xsize-2; i > 0; i--) for (j = 1; j < RP->Ysize-1; j++) { if (layout[i][j] == target) { *fx = i; *fy = j; return; } } break; } case 3: { /* search from bottom-left up-right */ for (i = 1; i < RP->Xsize-1; i++) for (j = RP->Ysize-2; j > 0; j--) { if (layout[i][j] == target) { *fx = i; *fy = j; return; } } break; } case 4: { /* search from bottom-right up-left */ for (i = RP->Xsize-2; i > 0; i--) for (j = RP->Ysize-2; j > 0; j--) { if (layout[i][j] == target) { *fx = i; *fy = j; return; } } break; } } } /* orientation: */ /** * Place exits in the map. * @param map * map to put exits into. * @param maze * map layout. * @param exitstyle * what style to use. If NULL uses a random one. * @param orientation * how exits should be oriented: * - 0 means random. * - 1 means descending dungeon. * - 2 means ascending dungeon. * - 3 means rightward. * - 4 means leftward. * - 5 means northward. * - 6 means southward. * @param RP * map parameters. * @note * unblock_exits() should be called at some point, as exits will be blocking everything * to avoid putting other objects on them. * @todo * add orientations 3-6 or fix previous comment. */ void place_exits(mapstruct *map, char **maze, char *exitstyle, int orientation, RMParms *RP) { char styledirname[256]; mapstruct *style_map_down = NULL; /* harder maze */ mapstruct *style_map_up = NULL; /* easier maze */ object *the_exit_down; /* harder maze */ object *the_exit_up; /* easier maze */ object *random_sign; /* magic mouth saying this is a random map. */ char buf[512]; int cx = -1, cy = -1; /* location of a map center */ int upx = -1, upy = -1; /* location of up exit */ int downx = -1, downy = -1; int final_map_exit = 1; int i, j; if (RP->exit_on_final_map) { if (strstr(RP->exit_on_final_map, "no")) final_map_exit = 0; } if (orientation == 0) orientation = RANDOM()%6+1; switch (orientation) { case 1: { snprintf(styledirname, sizeof(styledirname), "/styles/exitstyles/up"); style_map_up = find_style(styledirname, exitstyle, -1); snprintf(styledirname, sizeof(styledirname), "/styles/exitstyles/down"); style_map_down = find_style(styledirname, exitstyle, -1); break; } case 2: { snprintf(styledirname, sizeof(styledirname), "/styles/exitstyles/down"); style_map_up = find_style(styledirname, exitstyle, -1); snprintf(styledirname, sizeof(styledirname), "/styles/exitstyles/up"); style_map_down = find_style(styledirname, exitstyle, -1); break; } default: { snprintf(styledirname, sizeof(styledirname), "/styles/exitstyles/generic"); style_map_up = find_style(styledirname, exitstyle, -1); style_map_down = style_map_up; break; } } if (style_map_up == NULL) the_exit_up = arch_to_object(find_archetype("exit")); else { object *tmp; tmp = pick_random_object(style_map_up); the_exit_up = arch_to_object(tmp->arch); } /* we need a down exit only if we're recursing. */ if (RP->dungeon_level < RP->dungeon_depth || RP->final_map[0] != 0) if (RP->dungeon_level >= RP->dungeon_depth && RP->final_exit_archetype[0] != 0) the_exit_down = arch_to_object(find_archetype(RP->final_exit_archetype)); else if (style_map_down == NULL) the_exit_down = arch_to_object(find_archetype("exit")); else { object *tmp; tmp = pick_random_object(style_map_down); the_exit_down = arch_to_object(tmp->arch); } else the_exit_down = NULL; /* set up the up exit */ the_exit_up->stats.hp = RP->origin_x; the_exit_up->stats.sp = RP->origin_y; the_exit_up->slaying = add_string(RP->origin_map); /* figure out where to put the entrance */ /* First, look for a '<' char */ find_in_layout(0, '<', &upx, &upy, maze, RP); /* next, look for a C, the map center. */ find_in_layout(0, 'C', &cx, &cy, maze, RP); /* if we didn't find an up, find an empty place far from the center */ if (upx == -1 && cx != -1) { if (cx > RP->Xsize/2) upx = 1; else upx = RP->Xsize-2; if (cy > RP->Ysize/2) upy = 1; else upy = RP->Ysize-2; /* find an empty place far from the center */ if (upx == 1 && upy == 1) find_in_layout(1, 0, &upx, &upy, maze, RP); else if (upx == 1 && upy > 1) find_in_layout(3, 0, &upx, &upy, maze, RP); else if (upx > 1 && upy == 1) find_in_layout(2, 0, &upx, &upy, maze, RP); else if (upx > 1 && upy > 1) find_in_layout(4, 0, &upx, &upy, maze, RP); } /* no indication of where to place the exit, so just place it at any empty spot. */ if (upx == -1) find_in_layout(0, 0, &upx, &upy, maze, RP); /* surround the exits with notices that this is a random map. */ for (j = 1; j < 9; j++) { if (!wall_blocked(map, upx+freearr_x[j], upy+freearr_y[j])) { random_sign = create_archetype("sign"); snprintf(buf, sizeof(buf), "This is a random map.\nLevel: %d\n", (RP->dungeon_level)-1); object_set_msg(random_sign, buf); object_insert_in_map_at(random_sign, map, NULL, 0, upx+freearr_x[j], upy+freearr_y[j]); } } /* Block the exit so things don't get dumped on top of it. */ the_exit_up->move_block = MOVE_ALL; object_insert_in_map_at(the_exit_up, map, NULL, 0, upx, upy); maze[upx][upy] = '<'; /* set the starting x,y for this map */ MAP_ENTER_X(map) = upx; MAP_ENTER_Y(map) = upy; /* first, look for a '>' character */ find_in_layout(0, '>', &downx, &downy, maze, RP); /* if no > is found use C */ if (downx == -1) { downx = cx; downy = cy; } /* make the other exit far away from this one if there's no center. */ if (downx == -1) { if (upx > RP->Xsize/2) downx = 1; else downx = RP->Xsize-2; if (upy > RP->Ysize/2) downy = 1; else downy = RP->Ysize-2; /* find an empty place far from the entrance */ if (downx == 1 && downy == 1) find_in_layout(1, 0, &downx, &downy, maze, RP); else if (downx == 1 && downy > 1) find_in_layout(3, 0, &downx, &downy, maze, RP); else if (downx > 1 && downy == 1) find_in_layout(2, 0, &downx, &downy, maze, RP); else if (downx > 1 && downy > 1) find_in_layout(4, 0, &downx, &downy, maze, RP); } /* no indication of where to place the down exit, so just place it on an empty spot. */ if (downx == -1) find_in_layout(0, 0, &downx, &downy, maze, RP); if (the_exit_down) { char *buf; i = object_find_first_free_spot(the_exit_down, map, downx, downy); RP->origin_x = downx+freearr_x[i]; RP->origin_y = downy+freearr_y[i]; buf = stringbuffer_finish(write_map_parameters_to_string(RP)); object_set_msg(the_exit_down, buf); free(buf); /* the identifier for making a random map. */ if (RP->dungeon_level >= RP->dungeon_depth && RP->final_map[0] != 0) { /* Next map is the final map, special case. */ mapstruct *new_map; object *the_exit_back = arch_to_object(the_exit_up->arch); /* load it */ if ((new_map = ready_map_name(RP->final_map, 0)) == NULL) return; the_exit_down->slaying = add_string(RP->final_map); EXIT_X(the_exit_down) = MAP_ENTER_X(new_map); EXIT_Y(the_exit_down) = MAP_ENTER_Y(new_map); strncpy(new_map->path, RP->final_map, sizeof(new_map->path)); FOR_MAP_PREPARE(new_map, MAP_ENTER_X(new_map), MAP_ENTER_Y(new_map), tmp) /* Remove exit back to previous random map. There should only be one * which is why we break out. To try to process more than one * would require keeping a 'next' pointer, as object_free_drop_inventory() kills tmp, which * breaks the for loop. */ if (tmp->type == EXIT && EXIT_PATH(tmp) && !strncmp(EXIT_PATH(tmp), "/random/", 8)) { object_remove(tmp); object_free_drop_inventory(tmp); break; } FOR_MAP_FINISH(); if (final_map_exit == 1) { /* setup the exit back */ the_exit_back->slaying = add_string(map->path); the_exit_back->stats.hp = downx+freearr_x[i]; the_exit_back->stats.sp = downy+freearr_y[i]; object_insert_in_map_at(the_exit_back, new_map, NULL, 0, MAP_ENTER_X(new_map), MAP_ENTER_Y(new_map)); } set_map_timeout(new_map); /* So it gets swapped out */ } else the_exit_down->slaying = add_string("/!"); /* Block the exit so things don't get dumped on top of it. */ the_exit_down->move_block = MOVE_ALL; object_insert_in_map_at(the_exit_down, map, NULL, 0, downx+freearr_x[i], downy+freearr_y[i]); maze[the_exit_down->x][the_exit_down->y] = '>'; } } /** * This function unblocks the exits. We blocked them to * keep things from being dumped on them during the other * phases of random map generation. * @param map * map to alter. * @param maze * map layout. * @param RP * map generation parameters. */ void unblock_exits(mapstruct *map, char **maze, RMParms *RP) { int i = 0, j = 0; for (i = 0; i < RP->Xsize; i++) for (j = 0; j < RP->Ysize; j++) if (maze[i][j] == '>' || maze[i][j] == '<') { FOR_MAP_PREPARE(map, i, j, walk) { if (walk->move_block == MOVE_ALL && walk->type != LOCKED_DOOR) { walk->move_block = MOVE_BLOCK_DEFAULT; object_update(walk, UP_OBJ_CHANGE); } } FOR_MAP_FINISH(); } } crossfire-1.70.0/random_maps/style.c0000644000014500000120000002412411731300530014302 00000000000000/* * static char *rcsid_style_c = * "$Id: style.c 12290 2009-11-28 21:04:41Z anmaster $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Those functions deal with style for random maps. * @todo * couldn't load_dir() be merged with a function in common library? */ #include #include #ifndef WIN32 /* ---win32 exclude headers */ #include #include #include #include "../include/autoconf.h" #endif /* win32 */ /** * Char comparison for sorting purposes. * @param p1 * @param p2 * pointers to compare. * @return * return of strcmp() on pointed strings. */ static int pointer_strcmp(const void *p1, const void *p2) { const char *s1 = *(const char * const *)p1; const char *s2 = *(const char * const *)p2; return(strcmp(s1, s2)); } /** * This is our own version of scandir/select_regular_files/sort. * To support having subdirectories in styles, we need to know * if in fact the directory we read is a subdirectory. However, * we can't get that through the normal dirent entry. So * instead, we do our own where we do have the full directory * path so can do stat calls to see if in fact it is a directory. * dir is the name of the director to scan. * namelist is the array of file names returned. IT needs to be * freed by the caller. * skip_dirs controls our behavioru - if nonzero, we don't * skip any subdirectories - if zero, we store those away, * since there are cases where we want to choose a random * directory. * @param dir * directory to list. * @param[out] namelist * list of files found. * @param skip_dirs * if non 0, don't list directories. * @return * -1 if dir is invalid, number of files else. */ int load_dir(const char *dir, char ***namelist, int skip_dirs) { DIR *dp; struct dirent *d; int entries = 0, entry_size = 0; char name[NAME_MAX+1], **rn = NULL; struct stat sb; dp = opendir(dir); if (dp == NULL) return -1; while ((d = readdir(dp)) != NULL) { if (skip_dirs) { snprintf(name, sizeof(name), "%s/%s", dir, d->d_name); stat(name, &sb); if (S_ISDIR(sb.st_mode)) { continue; } } if (entries == entry_size) { entry_size += 10; rn = realloc(rn, sizeof(char *)*entry_size); } rn[entries] = strdup_local(d->d_name); entries++; } (void)closedir(dp); /* We don't return -1 for this case here as directory isn't invalid as such. * Most likely directory was empty. In theory it could also be due to * realloc failing to allocate. */ if (rn == NULL) return 0; qsort(rn, entries, sizeof(char *), pointer_strcmp); *namelist = rn; return entries; } /** * Loaded styles maps cache, to avoid having to load all the time. */ mapstruct *styles = NULL; /** * Loads specified map (or take it from cache list). * @param style_name * map to load. * @return * map. */ mapstruct *load_style_map(char *style_name) { mapstruct *style_map; /* Given a file. See if its in memory */ for (style_map = styles; style_map != NULL; style_map = style_map->next) { if (!strcmp(style_name, style_map->path)) return style_map; } style_map = load_original_map(style_name, MAP_STYLE); /* Remove it from global list, put it on our local list */ if (style_map) { mapstruct *tmp; if (style_map == first_map) first_map = style_map->next; else { for (tmp = first_map; tmp && tmp->next != style_map; tmp = tmp->next) ; if (tmp) tmp->next = style_map->next; } style_map->next = styles; styles = style_map; } return style_map; } /** * Loads and returns the map requested. * Dirname, for example, is "/styles/wallstyles", stylename, is, * for example, "castle", difficulty is -1 when difficulty is * irrelevant to the style. If dirname is given, but stylename * isn't, and difficult is -1, it returns a random style map. * Otherwise, it tries to match the difficulty given with a style * file, named style_name_# where # is an integer * @param dirname * where to look. * @param stylename * style to use, can be NULL. * @param difficulty * style difficulty. * @return * style, or NULL if none suitable. * @todo * better document. */ mapstruct *find_style(const char *dirname, const char *stylename, int difficulty) { char style_file_path[256]; char style_file_full_path[256]; mapstruct *style_map = NULL; struct stat file_stat; int i, only_subdirs = 0; /* if stylename exists, set style_file_path to that file.*/ if (stylename && strlen(stylename) > 0) snprintf(style_file_path, sizeof(style_file_path), "%s/%s", dirname, stylename); else /* otherwise, just use the dirname. We'll pick a random stylefile.*/ snprintf(style_file_path, sizeof(style_file_path), "%s", dirname); /* is what we were given a directory, or a file? */ snprintf(style_file_full_path, sizeof(style_file_full_path), "%s/maps%s", settings.datadir, style_file_path); if (stat(style_file_full_path, &file_stat) == 0 && !S_ISDIR(file_stat.st_mode)) { style_map = load_style_map(style_file_path); } if (style_map == NULL) { /* maybe we were given a directory! */ char **namelist; int n; char style_dir_full_path[256]; /* get the names of all the files in that directory */ snprintf(style_dir_full_path, sizeof(style_dir_full_path), "%s/maps%s", settings.datadir, style_file_path); /* First, skip subdirectories. If we don't find anything, then try again * without skipping subdirs. */ n = load_dir(style_dir_full_path, &namelist, 1); if (n <= 0) { n = load_dir(style_dir_full_path, &namelist, 0); only_subdirs = 1; } if (n <= 0) return NULL; /* nothing to load. Bye. */ /* Picks a random map. Note that if this is all directories, * we know it won't be able to load, so save a few ticks. * the door handling checks for this failure and handles * it properly. */ if (difficulty == -1) { /* pick a random style from this dir. */ if (only_subdirs) style_map = NULL; else { char *p; p = strchr(style_file_path, '\0'); snprintf(p, style_file_path+sizeof(style_file_path)-p, "/%s", namelist[RANDOM()%n]); style_map = load_style_map(style_file_path); } } else { /* find the map closest in difficulty */ int min_dist = 32000, min_index = -1; char *p; for (i = 0; i < n; i++) { int dist; char *mfile_name = strrchr(namelist[i], '_')+1; if ((mfile_name-1) == NULL) { /* since there isn't a sequence, */ int q; /*pick one at random to recurse */ style_map = find_style(style_file_path, namelist[RANDOM()%n], difficulty); for (q = 0; q < n; q++) free(namelist[q]); free(namelist); return style_map; } else { dist = abs(difficulty-atoi(mfile_name)); if (dist < min_dist) { min_dist = dist; min_index = i; } } } /* presumably now we've found the "best" match for the difficulty. */ p = strchr(style_file_path, '\0'); snprintf(p, style_file_path+sizeof(style_file_path)-p, "/%s", namelist[min_index]); style_map = load_style_map(style_file_path); } for (i = 0; i < n; i++) free(namelist[i]); free(namelist); } return style_map; } /** * Picks a random object from a style map. * Redone by MSW so it should be faster and not use static * variables to generate tables. * @param style * map to pick from. * @return * random object. Can be NULL. */ object *pick_random_object(mapstruct *style) { int x, y, limit = 0; object *new_obj; /* while returning a null object will result in a crash, that * is actually preferable to an infinite loop. That is because * most servers will automatically restart in case of crash. * Change the logic on getting the random space - shouldn't make * any difference, but this seems clearer to me. */ do { limit++; x = RANDOM()%MAP_WIDTH(style); y = RANDOM()%MAP_HEIGHT(style); new_obj = GET_MAP_OB(style, x, y); } while (new_obj == NULL && limit < 1000); return HEAD(new_obj); } /** * Frees cached style maps. */ void free_style_maps(void) { mapstruct *next; int style_maps = 0; /* delete_map will try to free it from the linked list, * but won't find it, so we need to do it ourselves */ while (styles) { next = styles->next; delete_map(styles); styles = next; style_maps++; } LOG(llevDebug, "free_style_maps: Freed %d maps\n", style_maps); } crossfire-1.70.0/random_maps/room_gen_onion.c0000644000014500000120000004121111731300530016145 00000000000000/* * static char *room_gen_onion_c = * "$Id: room_gen_onion.c 12020 2009-06-25 09:24:32Z akirschbaum $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * The onion room generator: Onion rooms are like this: char **map_gen_onion(int xsize, int ysize, int option, int layers); like this: regular random centered, linear onion bottom/right centered, nonlinear ######################### ######################### # # # # # ######## ########## # # ##################### # # # # # # # # # ###### ######## # # # # # # # # # # # # # ######## ######## # # # #### ###### # # # # # # # # # # # # # # # # # # # # # # ############ # # # # # # ########### ## # # # # # # # # # # # # # ################ # # # # # # ######### # # # # # # # # # # #################### # # # # # # # # # # # # # # ######################### ######################### */ #include #include #include #ifndef MIN #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #endif void centered_onion(char **maze, int xsize, int ysize, int option, int layers); void bottom_centered_onion(char **maze, int xsize, int ysize, int option, int layers); void bottom_right_centered_onion(char **maze, int xsize, int ysize, int option, int layers); void draw_onion(char **maze, float *xlocations, float *ylocations, int layers); void make_doors(char **maze, float *xlocations, float *ylocations, int layers, int options); /** * Generates an onion layout. * @param xsize * @param ysize * layout size. * @param option * combination of @ref OPT_xxx "OPT_xxx" values. * @param layers * number of layers the onion should have. * @return * layout. */ char **map_gen_onion(int xsize, int ysize, int option, int layers) { int i, j; /* allocate that array, set it up */ char **maze = (char **)calloc(sizeof(char *), xsize); for (i = 0; i < xsize; i++) { maze[i] = (char *)calloc(sizeof(char), ysize); } /* pick some random options if option = 0 */ if (option == 0) { switch (RANDOM()%3) { case 0: option |= OPT_CENTERED; break; case 1: option |= OPT_BOTTOM_C; break; case 2: option |= OPT_BOTTOM_R; break; } if (RANDOM()%2) option |= OPT_LINEAR; if (RANDOM()%2) option |= OPT_IRR_SPACE; } /* write the outer walls, if appropriate. */ if (!(option&OPT_WALL_OFF)) { for (i = 0; i < xsize; i++) maze[i][0] = maze[i][ysize-1] = '#'; for (j = 0; j < ysize; j++) maze[0][j] = maze[xsize-1][j] = '#'; }; if (option&OPT_WALLS_ONLY) return maze; /* pick off the mutually exclusive options */ if (option&OPT_BOTTOM_R) bottom_right_centered_onion(maze, xsize, ysize, option, layers); else if (option&OPT_BOTTOM_C) bottom_centered_onion(maze, xsize, ysize, option, layers); else if (option&OPT_CENTERED) centered_onion(maze, xsize, ysize, option, layers); return maze; } /** * Creates a centered onion layout. * @param maze * layout. * @param xsize * @param ysize * layout size. * @param option * combination of @ref OPT_xxx "OPT_xxx" values. * @param layers * number of layers to create. */ void centered_onion(char **maze, int xsize, int ysize, int option, int layers) { int i, maxlayers; float *xlocations; float *ylocations; maxlayers = (MIN(xsize, ysize)-2)/5; if (!maxlayers) return; /* map too small to onionize */ if (layers > maxlayers) layers = maxlayers; if (layers == 0) layers = (RANDOM()%maxlayers)+1; xlocations = (float *)calloc(sizeof(float), 2*layers); ylocations = (float *)calloc(sizeof(float), 2*layers); /* place all the walls */ if (option&OPT_IRR_SPACE) { /* randomly spaced */ int x_spaces_available, y_spaces_available; /* the "extra" spaces available for spacing between layers */ x_spaces_available = (xsize-2)-6*layers+1; y_spaces_available = (ysize-2)-6*layers+1; /* pick an initial random pitch */ for (i = 0; i < 2*layers; i++) { float xpitch = 2, ypitch = 2; if (x_spaces_available > 0) xpitch = 2 +(RANDOM()%x_spaces_available +RANDOM()%x_spaces_available +RANDOM()%x_spaces_available)/3; if (y_spaces_available > 0) ypitch = 2 +(RANDOM()%y_spaces_available +RANDOM()%y_spaces_available +RANDOM()%y_spaces_available)/3; xlocations[i] = ((i > 0) ? xlocations[i-1] : 0)+xpitch; ylocations[i] = ((i > 0) ? ylocations[i-1] : 0)+ypitch; x_spaces_available -= xpitch-2; y_spaces_available -= ypitch-2; } } if (!(option&OPT_IRR_SPACE)) { /* evenly spaced */ float xpitch, ypitch; /* pitch of the onion layers */ xpitch = (xsize-2.0)/(2.0*layers+1); ypitch = (ysize-2.0)/(2.0*layers+1); xlocations[0] = xpitch; ylocations[0] = ypitch; for (i = 1; i < 2*layers; i++) { xlocations[i] = xlocations[i-1]+xpitch; ylocations[i] = ylocations[i-1]+ypitch; } } /* draw all the onion boxes. */ draw_onion(maze, xlocations, ylocations, layers); make_doors(maze, xlocations, ylocations, layers, option); } /** * Create a bottom-centered layout. * @param maze * layout. * @param xsize * @param ysize * layout size. * @param option * combination of @ref OPT_xxx "OPT_xxx" values. * @param layers * number of layers to create. */ void bottom_centered_onion(char **maze, int xsize, int ysize, int option, int layers) { int i, maxlayers; float *xlocations; float *ylocations; maxlayers = (MIN(xsize, ysize)-2)/5; if (!maxlayers) return; /* map too small to onionize */ if (layers > maxlayers) layers = maxlayers; if (layers == 0) layers = (RANDOM()%maxlayers)+1; xlocations = (float *)calloc(sizeof(float), 2*layers); ylocations = (float *)calloc(sizeof(float), 2*layers); /* place all the walls */ if (option&OPT_IRR_SPACE) { /* randomly spaced */ int x_spaces_available, y_spaces_available; /* the "extra" spaces available for spacing between layers */ x_spaces_available = (xsize-2)-6*layers+1; y_spaces_available = (ysize-2)-3*layers+1; /* pick an initial random pitch */ for (i = 0; i < 2*layers; i++) { float xpitch = 2, ypitch = 2; if (x_spaces_available > 0) xpitch = 2 +(RANDOM()%x_spaces_available +RANDOM()%x_spaces_available +RANDOM()%x_spaces_available)/3; if (y_spaces_available > 0) ypitch = 2 +(RANDOM()%y_spaces_available +RANDOM()%y_spaces_available +RANDOM()%y_spaces_available)/3; xlocations[i] = ((i > 0) ? xlocations[i-1] : 0)+xpitch; if (i < layers) ylocations[i] = ((i > 0) ? ylocations[i-1] : 0)+ypitch; else ylocations[i] = ysize-1; x_spaces_available -= xpitch-2; y_spaces_available -= ypitch-2; } } if (!(option&OPT_IRR_SPACE)) { /* evenly spaced */ float xpitch, ypitch; /* pitch of the onion layers */ xpitch = (xsize-2.0)/(2.0*layers+1); ypitch = (ysize-2.0)/(layers+1); xlocations[0] = xpitch; ylocations[0] = ypitch; for (i = 1; i < 2*layers; i++) { xlocations[i] = xlocations[i-1]+xpitch; if (i < layers) ylocations[i] = ylocations[i-1]+ypitch; else ylocations[i] = ysize-1; } } /* draw all the onion boxes. */ draw_onion(maze, xlocations, ylocations, layers); make_doors(maze, xlocations, ylocations, layers, option); } /** * Draws the lines in the maze defining the onion layers. * @param maze * map to draw to. * @param xlocations * @param ylocations * array of locations. * @param layers * number of layers. * @todo * explain what locations arrays should be, and the meaning of layers. */ void draw_onion(char **maze, float *xlocations, float *ylocations, int layers) { int i, j, l; for (l = 0; l < layers; l++) { int x1, x2, y1, y2; /* horizontal segments */ y1 = (int)ylocations[l]; y2 = (int)ylocations[2*layers-l-1]; for (i = (int)xlocations[l]; i <= (int)xlocations[2*layers-l-1]; i++) { maze[i][y1] = '#'; maze[i][y2] = '#'; } /* vertical segments */ x1 = (int)xlocations[l]; x2 = (int)xlocations[2*layers-l-1]; for (j = (int)ylocations[l]; j <= (int)ylocations[2*layers-l-1]; j++) { maze[x1][j] = '#'; maze[x2][j] = '#'; } } } /** * Add doors to the layout. * @param maze * map to draw to. * @param xlocations * @param ylocations * array of locations. Will be free()d. * @param layers * number of layers. * @param options * combination of @ref OPT_xxx "OPT_xxx" values. * @todo * explain what locations arrays should be, and the meaning of layers. */ void make_doors(char **maze, float *xlocations, float *ylocations, int layers, int options) { int freedoms; /* number of different walls on which we could place a door */ int which_wall; /* left, 1, top, 2, right, 3, bottom 4 */ int l, x1 = 0, x2, y1 = 0, y2; freedoms = 4; /* centered */ if (options&OPT_BOTTOM_C) freedoms = 3; if (options&OPT_BOTTOM_R) freedoms = 2; if (layers <= 0) return; /* pick which wall will have a door. */ which_wall = RANDOM()%freedoms+1; for (l = 0; l < layers; l++) { if (options&OPT_LINEAR) { /* linear door placement. */ switch (which_wall) { case 1: { /* left hand wall */ x1 = (int)xlocations[l]; y1 = (int)((ylocations[l]+ylocations[2*layers-l-1])/2); break; } case 2: { /* top wall placement */ x1 = (int)((xlocations[l]+xlocations[2*layers-l-1])/2); y1 = (int)ylocations[l]; break; } case 3: { /* right wall placement */ x1 = (int)xlocations[2*layers-l-1]; y1 = (int)((ylocations[l]+ylocations[2*layers-l-1])/2); break; } case 4: { /* bottom wall placement */ x1 = (int)((xlocations[l]+xlocations[2*layers-l-1])/2); y1 = (int)ylocations[2*layers-l-1]; break; } } } else { /* random door placement. */ which_wall = RANDOM()%freedoms+1; switch (which_wall) { case 1: { /* left hand wall */ x1 = (int)xlocations[l]; y2 = ylocations[2*layers-l-1]-ylocations[l]-1; if (y2 > 0) y1 = ylocations[l]+RANDOM()%y2+1; else y1 = ylocations[l]+1; break; } case 2: { /* top wall placement */ x2 = (int)((-xlocations[l]+xlocations[2*layers-l-1]))-1; if (x2 > 0) x1 = xlocations[l]+RANDOM()%x2+1; else x1 = xlocations[l]+1; y1 = (int)ylocations[l]; break; } case 3: { /* right wall placement */ x1 = (int)xlocations[2*layers-l-1]; y2 = (int)((-ylocations[l]+ylocations[2*layers-l-1]))-1; if (y2 > 0) y1 = ylocations[l]+RANDOM()%y2+1; else y1 = ylocations[l]+1; break; } case 4: { /* bottom wall placement */ x2 = (int)((-xlocations[l]+xlocations[2*layers-l-1]))-1; if (x2 > 0) x1 = xlocations[l]+RANDOM()%x2+1; else x1 = xlocations[l]+1; y1 = (int)ylocations[2*layers-l-1]; break; } } } if (options&OPT_NO_DOORS) maze[x1][y1] = '#'; /* no door. */ else maze[x1][y1] = 'D'; /* write the door */ } /* mark the center of the maze with a C */ l = layers-1; x1 = (int)(xlocations[l]+xlocations[2*layers-l-1])/2; y1 = (int)(ylocations[l]+ylocations[2*layers-l-1])/2; maze[x1][y1] = 'C'; /* not needed anymore */ free(xlocations); free(ylocations); } /** * Create a bottom-right-centered layout. * @param maze * layout. * @param xsize * @param ysize * layout size. * @param option * combination of @ref OPT_xxx "OPT_xxx" values. * @param layers * number of layers to create. */ void bottom_right_centered_onion(char **maze, int xsize, int ysize, int option, int layers) { int i, maxlayers; float *xlocations; float *ylocations; maxlayers = (MIN(xsize, ysize)-2)/5; if (!maxlayers) return; /* map too small to onionize */ if (layers > maxlayers) layers = maxlayers; if (layers == 0) layers = (RANDOM()%maxlayers)+1; xlocations = (float *)calloc(sizeof(float), 2*layers); ylocations = (float *)calloc(sizeof(float), 2*layers); /* place all the walls */ if (option&OPT_IRR_SPACE) { /* randomly spaced */ int x_spaces_available, y_spaces_available; /* the "extra" spaces available for spacing between layers */ x_spaces_available = (xsize-2)-3*layers+1; y_spaces_available = (ysize-2)-3*layers+1; /* pick an initial random pitch */ for (i = 0; i < 2*layers; i++) { float xpitch = 2, ypitch = 2; if (x_spaces_available > 0) xpitch = 2 +(RANDOM()%x_spaces_available +RANDOM()%x_spaces_available +RANDOM()%x_spaces_available)/3; if (y_spaces_available > 0) ypitch = 2 +(RANDOM()%y_spaces_available +RANDOM()%y_spaces_available +RANDOM()%y_spaces_available)/3; if (i < layers) xlocations[i] = ((i > 0) ? xlocations[i-1] : 0)+xpitch; else xlocations[i] = xsize-1; if (i < layers) ylocations[i] = ((i > 0) ? ylocations[i-1] : 0)+ypitch; else ylocations[i] = ysize-1; x_spaces_available -= xpitch-2; y_spaces_available -= ypitch-2; } } if (!(option&OPT_IRR_SPACE)) { /* evenly spaced */ float xpitch, ypitch; /* pitch of the onion layers */ xpitch = (xsize-2.0)/(2.0*layers+1); ypitch = (ysize-2.0)/(layers+1); xlocations[0] = xpitch; ylocations[0] = ypitch; for (i = 1; i < 2*layers; i++) { if (i < layers) xlocations[i] = xlocations[i-1]+xpitch; else xlocations[i] = xsize-1; if (i < layers) ylocations[i] = ylocations[i-1]+ypitch; else ylocations[i] = ysize-1; } } /* draw all the onion boxes. */ draw_onion(maze, xlocations, ylocations, layers); make_doors(maze, xlocations, ylocations, layers, option); } crossfire-1.70.0/random_maps/snake.c0000644000014500000120000000462111731300530014243 00000000000000 /** * @file * Snake-like layout generator. * @author peterm@langmuir.eecs.berkeley.edu */ #include #include #include /** * Generate a snake-like layout. * @param xsize * @param ysize * layout size. * @return * generated layout. */ char **make_snake_layout(int xsize, int ysize) { int i, j; /* allocate that array, set it up */ char **maze = (char **)calloc(sizeof(char *), xsize); for (i = 0; i < xsize; i++) { maze[i] = (char *)calloc(sizeof(char), ysize); } /* write the outer walls */ for (i = 0; i < xsize; i++) maze[i][0] = maze[i][ysize-1] = '#'; for (j = 0; j < ysize; j++) maze[0][j] = maze[xsize-1][j] = '#'; /* Bail out if the size is too small to make a snake. */ if (xsize < 8 || ysize < 8) return maze; /* decide snake orientation--vertical or horizontal , and make the walls and place the doors. */ if (RANDOM()%2) { /* vertical orientation */ int n_walls = RANDOM()%((xsize-5)/3)+1; int spacing = xsize/(n_walls+1); int orientation = 1; for (i = spacing; i < xsize-3; i += spacing) { if (orientation) { for (j = 1; j < ysize-2; j++) { maze[i][j] = '#'; } maze[i][j] = 'D'; } else { for (j = 2; j < ysize; j++) { maze[i][j] = '#'; } maze[i][1] = 'D'; } orientation ^= 1; /* toggle the value of orientation */ } } else { /* horizontal orientation */ int n_walls = RANDOM()%((ysize-5)/3)+1; int spacing = ysize/(n_walls+1); int orientation = 1; for (i = spacing; i < ysize-3; i += spacing) { if (orientation) { for (j = 1; j < xsize-2; j++) { maze[j][i] = '#'; } maze[j][i] = 'D'; } else { for (j = 2; j < xsize; j++) { maze[j][i] = '#'; } maze[1][i] = 'D'; } orientation ^= 1; /* toggle the value of orientation */ } } /* place the exit up/down */ if (RANDOM()%2) { maze[1][1] = '<'; maze[xsize-2][ysize-2] = '>'; } else { maze[1][1] = '>'; maze[xsize-2][ysize-2] = '<'; } return maze; } crossfire-1.70.0/random_maps/expand2x.h0000644000014500000120000000113211731300530014672 00000000000000/* * Expands a layout by 2x in each dimension. * (Header file) * H. S. Teoh * -------------------------------------------------------------------------- * $Id: expand2x.h 4960 2006-09-21 05:10:51Z mwedel $ */ #ifndef EXPAND2X_H #define EXPAND2X_H /* Expands a layout by 2x in each dimension. * Resulting layout is actually (2*xsize-1)x(2*ysize-1). (Because of the cheesy * algorithm, but hey, it works). * * Don't forget to free the old layout after this is called (it does not * presume to do so itself). */ char **expand2x(char **layout, int xsize, int ysize); #endif /* EXPAND2X_H */ crossfire-1.70.0/random_maps/square_spiral.c0000644000014500000120000001027711731300530016020 00000000000000/* * static char *rcsid_map_c = * "$Id: square_spiral.c 11227 2009-01-24 15:16:32Z akirschbaum $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Square-spiral layout generator. * @todo * what does that look like? :) */ /* peterm@langmuir.eecs.berkeley.edu: this function generates a random snake-type layout. */ #include #include #include #include #include #include #include #include #include char **map_gen_onion(int xsize, int ysize, int option, int layers); /* These are some helper functions which help with manipulating a centered onion and turning it into a square spiral */ /** * This starts from within a centered onion layer (or between two layers), * and looks up until it finds a wall, and then looks right until it * finds a vertical wall, i.e., the corner. It sets cx and cy to that. * it also starts from cx and cy. * @param maze * where to look. * @param cx * @param cy * where to start from, and detected corner. */ void find_top_left_corner(char **maze, int *cx, int *cy) { (*cy)--; /* find the top wall. */ while (maze[*cx][*cy] == 0) (*cy)--; /* proceed right until a corner is detected */ while (maze[*cx][*cy+1] == 0) (*cx)++; /* cx and cy should now be the top-right corner of the onion layer */ } /** * Generates a square-spiral layout. * @param xsize * @param ysize * size of the layout. * @return * generated layout. * @todo * use function in another file for character searching. */ char **make_square_spiral_layout(int xsize, int ysize) { int i, j; int cx, cy; int tx, ty; /* generate and allocate a doorless, centered onion */ char **maze = map_gen_onion(xsize, ysize, OPT_CENTERED|OPT_NO_DOORS, 0); /* find the layout center. */ cx = 0; cy = 0; for (i = 0; i < xsize; i++) for (j = 0; j < ysize; j++) { if (maze[i][j] == 'C') { cx = i; cy = j; } } tx = cx; ty = cy; while (1) { find_top_left_corner(maze, &tx, &ty); if (ty < 2 || tx < 2 || tx > xsize-2 || ty > ysize-2) break; make_wall(maze, tx, ty-1, 1); /* make a vertical wall with a door */ maze[tx][ty-1] = '#'; /* convert the door that make_wall puts here to a wall */ maze[tx-1][ty] = 'D';/* make a doorway out of this layer */ /* walk left until we find the top-left corner */ while ((tx > 2) && maze[tx-1][ty]) tx--; make_wall(maze, tx-1, ty, 0); /* make a horizontal wall with a door */ /* walk down until we find the bottom-left corner */ while (((ty+1) < ysize) && maze[tx][ty+1]) ty++; make_wall(maze, tx, ty+1, 1); /* make a vertical wall with a door */ /* walk rightuntil we find the bottom-right corner */ while (((tx+1) < xsize) && maze[tx+1][ty]) tx++; make_wall(maze, tx+1, ty, 0); /* make a horizontal wall with a door */ tx++; /* set up for next layer. */ } /* place the exits. */ if (RANDOM()%2) { maze[cx][cy] = '>'; maze[xsize-2][1] = '<'; } else { maze[cx][cy] = '<'; maze[xsize-2][1] = '>'; } return maze; } crossfire-1.70.0/random_maps/special.c0000644000014500000120000003045611731300530014567 00000000000000/* * static char *rcsid_special_c = * "$Id: special.c 15822 2011-11-20 10:16:12Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Those functions handle placement of fountains, submaps, and so on. */ #include #include #include /** * @defgroup SPECIAL_xxx Special objects in random map */ /*@{*/ #define NUM_OF_SPECIAL_TYPES 4 #define NO_SPECIAL 0 #define SPECIAL_SUBMAP 1 #define SPECIAL_FOUNTAIN 2 #define SPECIAL_EXIT 3 /*@}*/ /** * @defgroup HOLE_xxx Random map holes */ /*@{*/ #define GLORY_HOLE 1 #define ORC_ZONE 2 #define MINING_ZONE 3 #define NR_OF_HOLE_TYPES 3 /*@}*/ /** * Erases all objects (except floor) in the given rectangle. * @param map * map to process. * @param xstart * @param ystart * top-left coordinates of zone. * @param xsize * @param ysize * size of zone. */ void nuke_map_region(mapstruct *map, int xstart, int ystart, int xsize, int ysize) { int i, j; for (i = xstart; i < xstart+xsize; i++) for (j = ystart; j < ystart+ysize; j++) { FOR_MAP_PREPARE(map, i, j, tmp) { if (!QUERY_FLAG(tmp, FLAG_IS_FLOOR)) { tmp = HEAD(tmp); object_remove(tmp); object_free_drop_inventory(tmp); } } FOR_MAP_FINISH(); } } /** * Copy in_map into dest_map at point x,y. This also copies shop information if set in in_map. * @param dest_map * map where to copy to. * @param in_map * map to copy from. * @param x * @param y * coordinates to put in_map to. */ void include_map_in_map(mapstruct *dest_map, const mapstruct *in_map, int x, int y) { int i, j; object *new_ob; /* First, splatter everything in the dest map at the location */ nuke_map_region(dest_map, x, y, MAP_WIDTH(in_map), MAP_HEIGHT(in_map)); for (i = 0; i < MAP_WIDTH(in_map); i++) for (j = 0; j < MAP_HEIGHT(in_map); j++) { FOR_MAP_PREPARE(in_map, i, j, tmp) { /* don't copy things with multiple squares: must be dealt with specially. */ if (tmp->head != NULL) continue; new_ob = arch_to_object(tmp->arch); object_copy_with_inv(tmp, new_ob); if (QUERY_FLAG(tmp, FLAG_IS_LINKED)) add_button_link(new_ob, dest_map, tmp->path_attuned); new_ob->x = i+x; new_ob->y = j+y; insert_multisquare_ob_in_map(new_ob, dest_map); } FOR_MAP_FINISH(); } /* Copy shop-related information. * This ensures that, if a shop map is included, its information is correctly * copied. * Most of the time dest_map won't have any information set (random map), but better * safe than sorry. */ if (in_map->shopgreed) dest_map->shopgreed = in_map->shopgreed; if (in_map->shopmax) dest_map->shopmax = in_map->shopmax; if (in_map->shopmin) dest_map->shopmin = in_map->shopmin; if (in_map->shoprace) { FREE_AND_CLEAR(dest_map->shoprace); dest_map->shoprace = strdup_local(in_map->shoprace); } if (in_map->shopitems) { FREE_AND_CLEAR(dest_map->shopitems); dest_map->shopitems = CALLOC(in_map->shopitems[0].index + 1, sizeof(shopitems)); memcpy(dest_map->shopitems, in_map->shopitems, in_map->shopitems[0].index * sizeof(shopitems)); } } /** * Finds a place to put a submap into. * @param map * map to insert. * @param layout * where to insert into. * @param ix * @param iy * coordinates of suitable location if return is 1. * @param xsize * @param ysize * size of layout. * @return * 0 if no space found, 1 else. */ int find_spot_for_submap(mapstruct *map, char **layout, int *ix, int *iy, int xsize, int ysize) { int tries; int i = 0, j = 0; /* initialization may not be needed but prevents compiler warnings */ int is_occupied = 0; int l, m; /* don't even try to place a submap into a map if the big map isn't sufficiently large. */ if (2*xsize > MAP_WIDTH(map) || 2*ysize > MAP_HEIGHT(map)) return 0; tries = 20; if (!settings.special_break_map) { /* can't break layout, so try harder */ tries = 50; } /* search for a completely free spot. */ for (; tries >= 0; tries--) { /* pick a random location in the layout */ i = RANDOM()%(MAP_WIDTH(map)-xsize-2)+1; j = RANDOM()%(MAP_HEIGHT(map)-ysize-2)+1; is_occupied = 0; for (l = i; l < i+xsize; l++) for (m = j; m < j+ysize; m++) is_occupied |= layout[l][m]; if (!is_occupied) break; } /* if we failed, relax the restrictions */ if (is_occupied && settings.special_break_map) { /* failure, try a relaxed placement if allowed. */ /* pick a random location in the layout */ for (tries = 0; tries < 10; tries++) { i = RANDOM()%(MAP_WIDTH(map)-xsize-2)+1; j = RANDOM()%(MAP_HEIGHT(map)-ysize-2)+1; is_occupied = 0; for (l = i; l < i+xsize; l++) for (m = j; m < j+ysize; m++) if (layout[l][m] == 'C' || layout[l][m] == '>' || layout[l][m] == '<') is_occupied |= 1; } } if (is_occupied) return 0; *ix = i; *iy = j; return 1; } /** * Places a special fountain on the map. * @param map * map to place to. * @todo * change logic to allocate potion only if success? */ void place_fountain_with_specials(mapstruct *map) { int ix, iy, i = -1, tries = 0; mapstruct *fountain_style = find_style("/styles/misc", "fountains", -1); const archetype *fountain = find_archetype("fountain"); object *potion = object_new(); object_copy_with_inv(pick_random_object(fountain_style), potion); while (i < 0 && tries < 10) { ix = RANDOM()%(MAP_WIDTH(map)-2)+1; iy = RANDOM()%(MAP_HEIGHT(map)-2)+1; i = object_find_first_free_spot(potion, map, ix, iy); tries++; }; if (i == -1) { /* can't place fountain */ object_free_drop_inventory(potion); return; } ix += freearr_x[i]; iy += freearr_y[i]; potion->speed = fountain->clone.speed; potion->face = fountain->clone.face; potion->anim_speed = fountain->clone.anim_speed; potion->animation_id = fountain->clone.animation_id; if (QUERY_FLAG(&fountain->clone, FLAG_ANIMATE)) { SET_FLAG(potion, FLAG_ANIMATE); SET_FLAG(potion, FLAG_CLIENT_ANIM_RANDOM); } else CLEAR_FLAG(potion, FLAG_ANIMATE); object_update_speed(potion); SET_FLAG(potion, FLAG_NO_PICK); SET_FLAG(potion, FLAG_IDENTIFIED); FREE_AND_COPY(potion->name, fountain->clone.name); FREE_AND_COPY(potion->name_pl, fountain->clone.name_pl); object_set_value(potion, "on_use_yield", fountain->name, 1); potion->material = M_ADAMANT; object_insert_in_map_at(potion, map, NULL, 0, ix, iy); } /** * Place an exit with a resource map. * @param map * where to put the exit. * @param hole_type * type of random map to link to, see @ref HOLE_xxx "HOLE_xxx". * @param RP * parameters from which map was generated. */ void place_special_exit(mapstruct *map, int hole_type, const RMParms *RP) { int ix, iy, i = -1; char *buf; const char *style, *decor, *mon; mapstruct *exit_style = find_style("/styles/misc", "obscure_exits", -1); int g_xsize, g_ysize; object *the_exit; RMParms hole; if (!exit_style) return; the_exit = object_new(); object_copy(pick_random_object(exit_style), the_exit); while (i < 0) { ix = RANDOM()%(MAP_WIDTH(map)-2)+1; iy = RANDOM()%(MAP_HEIGHT(map)-2)+1; i = object_find_first_free_spot(the_exit, map, ix, iy); } if (!hole_type) hole_type = RANDOM()%NR_OF_HOLE_TYPES+1; switch (hole_type) { case GLORY_HOLE: { /* treasures */ g_xsize = RANDOM()%3+4+RP->difficulty/4; g_ysize = RANDOM()%3+4+RP->difficulty/4; style = "onion"; decor = "wealth2"; mon = "none"; break; } case ORC_ZONE: { /* hole with orcs in it. */ g_xsize = RANDOM()%3+4+RP->difficulty/4; g_ysize = RANDOM()%3+4+RP->difficulty/4; style = "onion"; decor = "wealth2"; mon = "orc"; break; } case MINING_ZONE: { /* hole with orcs in it. */ g_xsize = RANDOM()%9+4+RP->difficulty/4; g_ysize = RANDOM()%9+4+RP->difficulty/4; style = "maze"; decor = "minerals2"; mon = "none"; break; } default: /* undefined */ LOG(llevError, "place_special_exit: undefined hole type %d\n", hole_type); return; break; } /* Need to be at least this size, otherwise the load * code will generate new size values which are too large. */ if (g_xsize < MIN_RANDOM_MAP_SIZE) g_xsize = MIN_RANDOM_MAP_SIZE; if (g_ysize < MIN_RANDOM_MAP_SIZE) g_ysize = MIN_RANDOM_MAP_SIZE; memset(&hole, 0, sizeof(hole)); hole.Xsize = g_xsize; hole.Ysize = g_ysize; strcpy(hole.wallstyle, RP->wallstyle); strcpy(hole.floorstyle, RP->floorstyle); strcpy(hole.monsterstyle, mon); strcpy(hole.treasurestyle, "none"); strcpy(hole.layoutstyle, style); strcpy(hole.decorstyle, decor); strcpy(hole.doorstyle, "none"); strcpy(hole.exitstyle, RP->exitstyle); strcpy(hole.final_map, ""); strcpy(hole.exit_on_final_map, ""); strcpy(hole.this_map, ""); hole.layoutoptions1 = OPT_WALLS_ONLY; hole.layoutoptions2 = 0; hole.symmetry = 1; hole.dungeon_depth = RP->dungeon_level; hole.dungeon_level = RP->dungeon_level; hole.difficulty = RP->difficulty; hole.difficulty_given = RP->difficulty; hole.decoroptions = -1; hole.orientation = 1; hole.origin_x = 0; hole.origin_y = 0; hole.random_seed = 0; hole.treasureoptions = 0; hole.difficulty_increase = RP->difficulty_increase; buf = stringbuffer_finish(write_map_parameters_to_string(&hole)); object_set_msg(the_exit, buf); free(buf); the_exit->slaying = add_string("/!"); object_insert_in_map_at(the_exit, map, NULL, 0, ix+freearr_x[i], iy+freearr_y[i]); } /** * Main function for specials. * @param map * map to alter. * @param layout * layout the map was generated from. * @param RP * parameters the map was generated from. */ void place_specials_in_map(mapstruct *map, char **layout, RMParms *RP) { mapstruct *special_map; int ix, iy; /* map insertion locatons */ int special_type; /* type of special to make */ special_type = RANDOM()%NUM_OF_SPECIAL_TYPES; switch (special_type) { /* includes a special map into the random map being made. */ case SPECIAL_SUBMAP: { special_map = find_style("/styles/specialmaps", NULL, RP->difficulty); if (special_map == NULL) return; if (find_spot_for_submap(map, layout, &ix, &iy, MAP_WIDTH(special_map), MAP_HEIGHT(special_map))) include_map_in_map(map, special_map, ix, iy); break; } /* Make a special fountain: an unpickable potion disguised as * a fountain, or rather, colocated with a fountain. */ case SPECIAL_FOUNTAIN: { place_fountain_with_specials(map); break; } /* Make an exit to another random map, e.g. a gloryhole. */ case SPECIAL_EXIT: { place_special_exit(map, 0, RP); break; } } } crossfire-1.70.0/random_maps/Notes0000644000014500000120000000133711731300530014012 00000000000000 test.c is a file for testing new layouts. Compile it: cc test.c .c -I../include -lm -L. -lrandom_map -o test # wall > stairs down (may be omitted) < stairs up (may be omitted) C map center (may be omitted) D door (may be omitted) '\0' nothing (should occupy every space not defined above) Layout ideas: snake layouts (done) square spirals (like Mwizard maps) (done) nethack (actually called "rogue" implemented Jan 16, 2001) progressive rooms room and corridor temple maps monster placement decor placement Other ideas: riddle-maps with artifact rewards as specials, with reward keyed to difficulty special-maps with word-activated teleporters and magic mouths as the only hint of presense crossfire-1.70.0/random_maps/treasure.c0000644000014500000120000007651711731300530015011 00000000000000/* * static char *rcsid_treasure_c = * "$Id: treasure.c 16685 2012-01-16 22:11:54Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* placing treasure in maps, where appropriate. */ /** * @file * This deals with inserting treasures in random maps. */ #include #include #include /** * @defgroup TREASURE_OPTIONS Treasure options * * Some defines for various options which can be set for random map treasures. */ /*@{*/ #define CONCENTRATED 1 /* all the treasure is at the C's for onions. */ #define HIDDEN 2 /* doors to treasure are hidden. */ #define KEYREQUIRED 4 /* chest has a key, which is placed randomly in the map. */ #define DOORED 8 /* treasure has doors around it. */ #define TRAPPED 16 /* trap dropped in same location as chest. */ #define SPARSE 32 /* 1/2 as much treasure as default */ #define RICH 64 /* 2x as much treasure as default */ #define FILLED 128 /* Fill/tile the entire map with treasure */ #define LAST_OPTION 64 /* set this to the last real option, for random */ /*@}*/ #define NO_PASS_DOORS 0 #define PASS_DOORS 1 static object **surround_by_doors(mapstruct *map, char **layout, int x, int y, int opts); /** * Returns true if square x,y has P_NO_PASS set, which is true for walls * and doors but not monsters. * This function is not map tile aware. * @param m * @param x * @param y * map and coordinates to check for. * @return * non zero if blocked, 0 else. */ int wall_blocked(mapstruct *m, int x, int y) { int r; if (OUT_OF_REAL_MAP(m, x, y)) return 1; r = GET_MAP_MOVE_BLOCK(m, x, y)&~MOVE_BLOCK_DEFAULT; return r; } /** * Place treasures in the map. * map, (required) * layout, (required) * treasure style (may be empty or NULL, or "none" to cause no treasure.) * treasureoptions (may be 0 for random choices or positive) * @param map * where to insert to. * @param layout * layout the map was generated from. * @param treasure_style * treasure style. May be empty or NULL for random style, or "none" for no treasures. * @param treasureoptions * treasure options. * @param RP * random map parameters. * @todo * flags for treasureoptions. */ void place_treasure(mapstruct *map, char **layout, char *treasure_style, int treasureoptions, RMParms *RP) { char styledirname[256]; char stylefilepath[256]; mapstruct *style_map = NULL; int num_treasures; /* bail out if treasure isn't wanted. */ if (treasure_style) if (!strcmp(treasure_style, "none")) return; if (treasureoptions <= 0) treasureoptions = RANDOM()%(2*LAST_OPTION); /* filter out the mutually exclusive options */ if ((treasureoptions&RICH) && (treasureoptions&SPARSE)) { if (RANDOM()%2) treasureoptions -= 1; else treasureoptions -= 2; } /* pick the number of treasures */ if (treasureoptions&SPARSE) num_treasures = BC_RANDOM(RP->total_map_hp/600+RP->difficulty/2+1); else if (treasureoptions&RICH) num_treasures = BC_RANDOM(RP->total_map_hp/150+2*RP->difficulty+1); else num_treasures = BC_RANDOM(RP->total_map_hp/300+RP->difficulty+1); if (num_treasures <= 0) return; /* get the style map */ snprintf(styledirname, sizeof(styledirname), "%s", "/styles/treasurestyles"); snprintf(stylefilepath, sizeof(stylefilepath), "%s/%s", styledirname, treasure_style); style_map = find_style(styledirname, treasure_style, -1); /* all the treasure at one spot in the map. */ if (treasureoptions&CONCENTRATED) { /* map_layout_style global, and is previously set */ switch (RP->map_layout_style) { case ONION_LAYOUT: case SPIRAL_LAYOUT: case SQUARE_SPIRAL_LAYOUT: { int i, j; /* search the onion for C's or '>', and put treasure there. */ for (i = 0; i < RP->Xsize; i++) { for (j = 0; j < RP->Ysize; j++) { if (layout[i][j] == 'C' || layout[i][j] == '>') { int tdiv = RP->symmetry_used; object **doorlist; object *chest; if (tdiv == 3) tdiv = 2; /* this symmetry uses a divisor of 2*/ /* don't put a chest on an exit. */ chest = place_chest(treasureoptions, i, j, map, style_map, num_treasures/tdiv, RP); if (!chest) continue; /* if no chest was placed NEXT */ if (treasureoptions&(DOORED|HIDDEN)) { doorlist = find_doors_in_room(map, i, j, RP); lock_and_hide_doors(doorlist, map, treasureoptions, RP); free(doorlist); } } } } break; } default: { int i, j, tries; object *chest; object **doorlist; i = j = -1; tries = 0; while (i == -1 && tries < 100) { i = RANDOM()%(RP->Xsize-2)+1; j = RANDOM()%(RP->Ysize-2)+1; find_enclosed_spot(map, &i, &j, RP); if (wall_blocked(map, i, j)) i = -1; tries++; } chest = place_chest(treasureoptions, i, j, map, style_map, num_treasures, RP); if (!chest) return; i = chest->x; j = chest->y; if (treasureoptions&(DOORED|HIDDEN)) { doorlist = surround_by_doors(map, layout, i, j, treasureoptions); lock_and_hide_doors(doorlist, map, treasureoptions, RP); free(doorlist); } } } } else { /* DIFFUSE treasure layout */ int ti, i, j; for (ti = 0; ti < num_treasures; ti++) { i = RANDOM()%(RP->Xsize-2)+1; j = RANDOM()%(RP->Ysize-2)+1; place_chest(treasureoptions, i, j, map, style_map, 1, RP); } } } /** * Put a chest into the map. * near x and y, with the treasure style * determined (may be null, or may be a treasure list from lib/treasures, * if the global variable "treasurestyle" is set to that treasure list's name * @param treasureoptions * options. * @param x * @param y * around which spot to put treasure. * @param map * map to put on. * @param style_map * unused. * @param n_treasures * ? * @param RP * parameters the map was generated from. * @return * inserted chest, NULL for failure. * @todo * document treasureoptions. Clean parameters. Check meaning of chest hp's field. */ object *place_chest(int treasureoptions, int x, int y, mapstruct *map, mapstruct *style_map, int n_treasures, RMParms *RP) { object *the_chest; int i, xl, yl; treasurelist *tlist; const char *chests[] = { "chest", "chest_green" }; the_chest = create_archetype(chests[RANDOM() % (sizeof(chests)/sizeof(*chests))]); /* first, find a place to put the chest. */ i = object_find_first_free_spot(the_chest, map, x, y); if (i == -1) { object_free_drop_inventory(the_chest); return NULL; } xl = x+freearr_x[i]; yl = y+freearr_y[i]; /* if the placement is blocked, return a fail. */ if (wall_blocked(map, xl, yl)) { object_free_drop_inventory(the_chest); return NULL; } tlist = find_treasurelist("chest"); the_chest->randomitems = tlist; the_chest->stats.hp = n_treasures; /* stick a trap in the chest if required */ if (treasureoptions&TRAPPED) { mapstruct *trap_map = find_style("/styles/trapstyles", "traps", -1); object *the_trap; if (trap_map) { the_trap = pick_random_object(trap_map); if (the_trap) { object *new_trap; new_trap = object_new(); object_copy_with_inv(the_trap, new_trap); new_trap->stats.Cha = 10+RP->difficulty; new_trap->level = BC_RANDOM((3*RP->difficulty)/2); if (new_trap->level == 0) new_trap->level = 1; new_trap->x = x; new_trap->y = y; object_insert_in_ob(new_trap, the_chest); } } } /* set the chest lock code, and call the keyplacer routine with the lockcode. It's not worth bothering to lock the chest if there's only 1 treasure....*/ if ((treasureoptions&KEYREQUIRED) && n_treasures > 1) { char keybuf[256]; snprintf(keybuf, sizeof(keybuf), "%d", (int)RANDOM()); if (keyplace(map, x, y, keybuf, PASS_DOORS, 1, RP)) the_chest->slaying = add_string(keybuf); } /* actually place the chest. */ object_insert_in_map_at(the_chest, map, NULL, 0, xl, yl); return the_chest; } /** * finds the closest monster and returns him, regardless of doors * or walls * @param map * @param x * @param y * where to look from. * @param RP * parameters for random map. * @return * monster, or NULL if none found. * @todo * shouldn't it search further away? */ object *find_closest_monster(mapstruct *map, int x, int y, RMParms *RP) { int i; for (i = 0; i < SIZEOFFREE; i++) { int lx, ly; lx = x+freearr_x[i]; ly = y+freearr_y[i]; /* boundscheck */ if (lx >= 0 && ly >= 0 && lx < RP->Xsize && ly < RP->Ysize) /* don't bother searching this square unless the map says life exists.*/ if (GET_MAP_FLAGS(map, lx, ly)&P_IS_ALIVE) { FOR_MAP_PREPARE(map, lx, ly, the_monster) if (QUERY_FLAG(the_monster, FLAG_MONSTER)) return the_monster; FOR_MAP_FINISH(); } } return NULL; } /** * Places keys in the map, preferably in something alive. * * The idea is that you call keyplace on x,y where a door is, and it'll make * sure a key is placed on both sides of the door. * * @param map * @param x * @param y * where to put a key. * @param keycode * keycode is the key's code. * @param door_flag * if NO_PASS_DOORS won't cross doors or walls to keyplace, PASS_DOORS will. * if PASS_DOORS is set, the x & y values that are passed in are basically * meaningless - IMO, it is a bit of misnomer, as when it is set, it just * randomly chooses spaces on the map, ideally finding a close monster, to put * the key in. In fact, if PASS_DOORS is set, there is no guarantee that * the keys will be on both sides of the door - it may happen by randomness, * but the code doesn't work to make sure it happens. * @param n_keys * number of keys to place. If 1, it will place 1 key. Else, it will place 2-4 keys. * @param RP * random map parameters. * @return * 1 if key was successfully placed, 0 else. */ int keyplace(mapstruct *map, int x, int y, char *keycode, int door_flag, int n_keys, RMParms *RP) { int i, j; int kx, ky; object *the_keymaster; /* the monster that gets the key. */ object *the_key; char keybuf[256]; const char *keys[] = { "key2", "blue_key", "brown_key", "darkgray_key", "darkgreen_key", "gray_key", "green_key", "magenta_key", "red_key", "white_key" }; /* get a key and set its keycode */ the_key = create_archetype(keys[RANDOM() % (sizeof(keys)/sizeof(*keys))]); the_key->slaying = add_string(keycode); free_string(the_key->name); snprintf(keybuf, 256, "key from level %d of %s", RP->dungeon_level-1, RP->dungeon_name[0] != '\0' ? RP->dungeon_name : "a random map"); the_key->name = add_string(keybuf); if (door_flag == PASS_DOORS) { int tries = 0; the_keymaster = NULL; while (tries < 15 && the_keymaster == NULL) { i = (RANDOM()%(RP->Xsize-2))+1; j = (RANDOM()%(RP->Ysize-2))+1; tries++; the_keymaster = find_closest_monster(map, i, j, RP); } /* if we don't find a good keymaster, drop the key on the ground. */ if (the_keymaster == NULL) { int freeindex; freeindex = -1; for (tries = 0; tries < 15 && freeindex == -1; tries++) { kx = (RANDOM()%(RP->Xsize-2))+1; ky = (RANDOM()%(RP->Ysize-2))+1; freeindex = object_find_first_free_spot(the_key, map, kx, ky); } if (freeindex != -1) { kx += freearr_x[freeindex]; ky += freearr_y[freeindex]; } } } else { /* NO_PASS_DOORS --we have to work harder.*/ /* don't try to keyplace if we're sitting on a blocked square and * NO_PASS_DOORS is set. */ if (n_keys == 1) { if (wall_blocked(map, x, y)) return 0; the_keymaster = find_monster_in_room(map, x, y, RP); if (the_keymaster == NULL) /* if fail, find a spot to drop the key. */ if (!find_spot_in_room(map, x, y, &kx, &ky, RP)) return 0; } else { /* It can happen that spots around that point are all blocked, so * try to look farther away if needed */ int sum = 0; /* count how many keys we actually place */ int distance = 1; while (distance < 5) { /* I'm lazy, so just try to place in all 4 directions. */ sum += keyplace(map, x+distance, y, keycode, NO_PASS_DOORS, 1, RP); sum += keyplace(map, x, y+distance, keycode, NO_PASS_DOORS, 1, RP); sum += keyplace(map, x-distance, y, keycode, NO_PASS_DOORS, 1, RP); sum += keyplace(map, x, y-distance, keycode, NO_PASS_DOORS, 1, RP); if (sum < 2) { /* we might have made a disconnected map-place more keys. */ /* diagonally this time. */ keyplace(map, x+distance, y+distance, keycode, NO_PASS_DOORS, 1, RP); keyplace(map, x+distance, y-distance, keycode, NO_PASS_DOORS, 1, RP); keyplace(map, x-distance, y+distance, keycode, NO_PASS_DOORS, 1, RP); keyplace(map, x-distance, y-distance, keycode, NO_PASS_DOORS, 1, RP); } if (sum > 0) return 1; distance++; } return 0; } } if (the_keymaster == NULL) { object_insert_in_map_at(the_key, map, NULL, 0, kx, ky); return 1; } object_insert_in_ob(the_key, the_keymaster); return 1; } /** * A recursive routine which will return a monster, eventually, if there is one. * One should really call find_monster_in_room(). * @param layout * map layout. * @param map * generated map. * @param x * @param y * where to look from. * @param RP * random map parameters. * @return * monster, or NULL if none found. */ object *find_monster_in_room_recursive(char **layout, mapstruct *map, int x, int y, RMParms *RP) { int i, j; /* bounds check x and y */ if (!(x >= 0 && y >= 0 && x < RP->Xsize && y < RP->Ysize)) return NULL; /* if the square is blocked or searched already, leave */ if (layout[x][y] != 0) return NULL; /* check the current square for a monster. If there is one, set theMonsterToFind and return it. */ layout[x][y] = 1; if (GET_MAP_FLAGS(map, x, y)&P_IS_ALIVE) { FOR_MAP_PREPARE(map, x, y, the_monster) if (QUERY_FLAG(the_monster, FLAG_ALIVE)) return HEAD(the_monster); FOR_MAP_FINISH(); } /* now search all the 8 squares around recursively for a monster, in random order */ for (i = RANDOM()%8, j = 0; j < 8; i++, j++) { object *the_monster; the_monster = find_monster_in_room_recursive(layout, map, x+freearr_x[i%8+1], y+freearr_y[i%8+1], RP); if (the_monster != NULL) return the_monster; } return NULL; } /** * Find a monster in a room. Real work is done by find_monster_in_room_recursive(). * @param map * generated map. * @param x * @param y * where to look from. * @param RP * random map parameters. * @return * monster, or NULL if none found. * @todo * couldn't the layout be given instead of being calculated? */ object *find_monster_in_room(mapstruct *map, int x, int y, RMParms *RP) { char **layout2; int i, j; object *theMonsterToFind; layout2 = (char **)calloc(sizeof(char *), RP->Xsize); /* allocate and copy the layout, converting C to 0. */ for (i = 0; i < RP->Xsize; i++) { layout2[i] = (char *)calloc(sizeof(char), RP->Ysize); for (j = 0; j < RP->Ysize; j++) { if (wall_blocked(map, i, j)) layout2[i][j] = '#'; } } theMonsterToFind = find_monster_in_room_recursive(layout2, map, x, y, RP); /* deallocate the temp. layout */ for (i = 0; i < RP->Xsize; i++) { free(layout2[i]); } free(layout2); return theMonsterToFind; } /** Datastructure needed by find_spot_in_room() and find_spot_in_room_recursive() */ typedef struct free_spots_struct { int *room_free_spots_x; /**< Positions. */ int *room_free_spots_y; /**< Positions. */ int number_of_free_spots_in_room; /**< Number of positions. */ } free_spots_struct; /** * the workhorse routine, which finds the free spots in a room: * a datastructure of free points is set up, and a position chosen from * that datastructure. * @param layout * map layout. * @param x * @param y * where to look from. * @param RP * random map parameters. * @param spots * currently found free spots. */ static void find_spot_in_room_recursive(char **layout, int x, int y, RMParms *RP, free_spots_struct *spots) { int i, j; /* bounds check x and y */ if (!(x >= 0 && y >= 0 && x < RP->Xsize && y < RP->Ysize)) return; /* if the square is blocked or searched already, leave */ if (layout[x][y] != 0) return; /* set the current square as checked, and add it to the list. check off this point */ layout[x][y] = 1; spots->room_free_spots_x[spots->number_of_free_spots_in_room] = x; spots->room_free_spots_y[spots->number_of_free_spots_in_room] = y; spots->number_of_free_spots_in_room++; /* now search all the 8 squares around recursively for free spots, in random order */ for (i = RANDOM()%8, j = 0; j < 8; i++, j++) { find_spot_in_room_recursive(layout, x+freearr_x[i%8+1], y+freearr_y[i%8+1], RP, spots); } } /** * Find a random non-blocked spot in this room to drop a key. * Returns 1 if success, 0 else. * @param map * map to look into. * @param x * @param y * where to look from. * @param[out] kx * @param[out] ky * found spot if 1 is returned. * @param RP * random map parameters. * @return * 1 if spot found, 0 else. * @todo * couldn't layout be given instead of being computed? */ int find_spot_in_room(mapstruct *map, int x, int y, int *kx, int *ky, RMParms *RP) { char **layout2; int i, j; free_spots_struct spots; spots.number_of_free_spots_in_room = 0; spots.room_free_spots_x = (int *)calloc(sizeof(int), RP->Xsize*RP->Ysize); spots.room_free_spots_y = (int *)calloc(sizeof(int), RP->Xsize*RP->Ysize); layout2 = (char **)calloc(sizeof(char *), RP->Xsize); /* allocate and copy the layout, converting C to 0. */ for (i = 0; i < RP->Xsize; i++) { layout2[i] = (char *)calloc(sizeof(char), RP->Ysize); for (j = 0; j < RP->Ysize; j++) { if (wall_blocked(map, i, j)) layout2[i][j] = '#'; } } /* setup num_free_spots and room_free_spots */ find_spot_in_room_recursive(layout2, x, y, RP, &spots); if (spots.number_of_free_spots_in_room > 0) { i = RANDOM()%spots.number_of_free_spots_in_room; *kx = spots.room_free_spots_x[i]; *ky = spots.room_free_spots_y[i]; } /* deallocate the temp. layout */ for (i = 0; i < RP->Xsize; i++) { free(layout2[i]); } free(layout2); free(spots.room_free_spots_x); free(spots.room_free_spots_y); if (spots.number_of_free_spots_in_room > 0) return 1; return 0; } /** * Searches the map for a spot with walls around it. The more * walls the better, but it'll settle for 1 wall, or even 0, but * it'll return 0 if no FREE spots are found. * @param map * where to look. * @param cx * @param cy * where to look, and coordinates of found spot. -1 if no spot found. * @param RP * parameters of the random map. */ void find_enclosed_spot(mapstruct *map, int *cx, int *cy, RMParms *RP) { int x, y; int i; x = *cx; y = *cy; for (i = 0; i <= SIZEOFFREE1; i++) { int lx, ly, sindex; lx = x+freearr_x[i]; ly = y+freearr_y[i]; sindex = surround_flag3(map, lx, ly, RP); /* if it's blocked on 3 sides, it's enclosed */ if (sindex == 7 || sindex == 11 || sindex == 13 || sindex == 14) { *cx = lx; *cy = ly; return; } } /* OK, if we got here, we're obviously someplace where there's no enclosed spots--try to find someplace which is 2x enclosed. */ for (i = 0; i <= SIZEOFFREE1; i++) { int lx, ly, sindex; lx = x+freearr_x[i]; ly = y+freearr_y[i]; sindex = surround_flag3(map, lx, ly, RP); /* if it's blocked on 3 sides, it's enclosed */ if (sindex == 3 || sindex == 5 || sindex == 9 || sindex == 6 || sindex == 10 || sindex == 12) { *cx = lx; *cy = ly; return; } } /* settle for one surround point */ for (i = 0; i <= SIZEOFFREE1; i++) { int lx, ly, sindex; lx = x+freearr_x[i]; ly = y+freearr_y[i]; sindex = surround_flag3(map, lx, ly, RP); /* if it's blocked on 3 sides, it's enclosed */ if (sindex) { *cx = lx; *cy = ly; return; } } /* give up and return the closest free spot. */ i = object_find_first_free_spot(&find_archetype("chest")->clone, map, x, y); if (i != -1 && i <= SIZEOFFREE1) { *cx = x+freearr_x[i]; *cy = y+freearr_y[i]; return; } /* indicate failure */ *cx = *cy = -1; } /** * Remove living things on specified spot. * @param x * @param y * @param map * where to remove. */ void remove_monsters(int x, int y, mapstruct *map) { FOR_MAP_PREPARE(map, x, y, tmp) { if (QUERY_FLAG(tmp, FLAG_ALIVE)) { tmp = HEAD(tmp); object_remove(tmp); object_free_drop_inventory(tmp); tmp = GET_MAP_OB(map, x, y); if (tmp == NULL) break; } } FOR_MAP_FINISH(); } /** * Surrounds the point x,y by doors, so as to enclose something, like * a chest. It only goes as far as the 8 squares surrounding, and * it'll remove any monsters it finds. * @param map * map to work on. * @param layout * map's layout. * @param x * @param y * point to surround. * @param opts * flags. * @return * array of generated doors, NULL-terminated. Should be freed by caller. * @todo * document opts. */ static object **surround_by_doors(mapstruct *map, char **layout, int x, int y, int opts) { int i; const char *doors[2]; object **doorlist; int ndoors_made = 0; doorlist = (object **)calloc(9, sizeof(object *)); /* 9 doors so we can hold termination null */ /* this is a list we pick from, for horizontal and vertical doors */ if (opts&DOORED) { doors[0] = "locked_door2"; doors[1] = "locked_door1"; } else { doors[0] = "door_1"; doors[1] = "door_2"; } /* place doors in all the 8 adjacent unblocked squares. */ for (i = 1; i < 9; i++) { int x1 = x+freearr_x[i], y1 = y+freearr_y[i]; if (!wall_blocked(map, x1, y1) || layout[x1][y1] == '>') {/* place a door */ object *new_door = create_archetype((freearr_x[i] == 0) ? doors[1] : doors[0]); sint16 nx, ny; nx = x+freearr_x[i]; ny = y+freearr_y[i]; remove_monsters(nx, ny, map); object_insert_in_map_at(new_door, map, NULL, 0, nx, ny); doorlist[ndoors_made] = new_door; ndoors_made++; } } return doorlist; } /** * Returns the first door in this square, or NULL if there isn't a door. * @param map * @param x * @param y * where to look. * @return * door, or NULL if none found. * @todo * isn't there a function for that in map.c? */ static object *door_in_square(mapstruct *map, int x, int y) { FOR_MAP_PREPARE(map, x, y, tmp) if (tmp->type == DOOR || tmp->type == LOCKED_DOOR) return tmp; FOR_MAP_FINISH(); return NULL; } /** * The workhorse routine, which finds the doors in a room * @param layout * @param map * @param x * @param y * random map to look into. * @param doorlist * list of doors. * @param ndoors * number of found doors. * @param RP * map parameters. */ void find_doors_in_room_recursive(char **layout, mapstruct *map, int x, int y, object **doorlist, int *ndoors, RMParms *RP) { int i, j; object *door; /* bounds check x and y */ if (!(x >= 0 && y >= 0 && x < RP->Xsize && y < RP->Ysize)) return; /* if the square is blocked or searched already, leave */ if (layout[x][y] == 1) return; /* check off this point */ if (layout[x][y] == '#') { /* there could be a door here */ layout[x][y] = 1; door = door_in_square(map, x, y); if (door != NULL) { doorlist[*ndoors] = door; if (*ndoors > 254) { /* eek! out of memory */ LOG(llevError, "find_doors_in_room_recursive:Too many doors for memory allocated!\n"); return; } *ndoors = *ndoors+1; } } else { layout[x][y] = 1; /* now search all the 8 squares around recursively for free spots, in random order */ for (i = RANDOM()%8, j = 0; j < 8; i++, j++) { find_doors_in_room_recursive(layout, map, x+freearr_x[i%8+1], y+freearr_y[i%8+1], doorlist, ndoors, RP); } } } /** * Gets all doors in a room. * @param map * map to look into. * @param x * @param y * point of a room to find door for. * @param RP * map parameters. * @return * door list. Should be free()d be caller. NULL-terminated. * @todo * couldn't layout be given instead of being computed? */ object **find_doors_in_room(mapstruct *map, int x, int y, RMParms *RP) { char **layout2; object **doorlist; int i, j; int ndoors = 0; doorlist = (object **)calloc(sizeof(int), 256); layout2 = (char **)calloc(sizeof(char *), RP->Xsize); /* allocate and copy the layout, converting C to 0. */ for (i = 0; i < RP->Xsize; i++) { layout2[i] = (char *)calloc(sizeof(char), RP->Ysize); for (j = 0; j < RP->Ysize; j++) { if (wall_blocked(map, i, j)) layout2[i][j] = '#'; } } /* setup num_free_spots and room_free_spots */ find_doors_in_room_recursive(layout2, map, x, y, doorlist, &ndoors, RP); /* deallocate the temp. layout */ for (i = 0; i < RP->Xsize; i++) { free(layout2[i]); } free(layout2); return doorlist; } /** * This removes any 'normal' doors around the specified door. * This is used for lock_and_hide_doors() below - it doesn't make sense * to have a locked door right behind a normal door, so lets * remove the normal ones. It also fixes key placement issues. * * @param door * door around which to remove unlocked doors. */ static void remove_adjacent_doors(object *door) { mapstruct *m = door->map; int x = door->x; int y = door->y; int i, flags; for (i = 1; i <= 8; i++) { flags = get_map_flags(m, NULL, x+freearr_x[i], y+freearr_y[i], NULL, NULL); if (flags&P_OUT_OF_MAP) continue; /* Old style doors are living objects. So if P_IS_ALIVE is not * set, can not be a door on this space. */ if (flags&P_IS_ALIVE) { FOR_MAP_PREPARE(m, x+freearr_x[i], y+freearr_y[i], tmp) { if (tmp->type == DOOR) { object_remove(tmp); object_free_drop_inventory(tmp); break; } } FOR_MAP_FINISH(); } } } /** * Locks and/or hides all the doors in doorlist, or does nothing if * opts doesn't say to lock/hide doors. * Note that some doors can be not locked if no good spot to put a key was found. * @param doorlist * doors to list. NULL-terminated. * @param map * map we're working on. * @param opts * options. * @param RP * map parameters. * @todo * document opts. Isn't it part of RP? */ void lock_and_hide_doors(object **doorlist, mapstruct *map, int opts, RMParms *RP) { object *door; int i; /* lock the doors and hide the keys. */ if (opts&DOORED) { for (i = 0, door = doorlist[0]; doorlist[i] != NULL; i++) { object *new_door = create_archetype("locked_door1"); char keybuf[256]; door = doorlist[i]; new_door->face = door->face; object_remove(door); object_free_drop_inventory(door); doorlist[i] = new_door; object_insert_in_map_at(new_door, map, NULL, 0, door->x, door->y); snprintf(keybuf, 256, "%d", (int)RANDOM()); if (keyplace(map, new_door->x, new_door->y, keybuf, NO_PASS_DOORS, 2, RP)) new_door->slaying = add_string(keybuf); } for (i = 0; doorlist[i] != NULL; i++) remove_adjacent_doors(doorlist[i]); } /* change the faces of the doors and surrounding walls to hide them. */ if (opts&HIDDEN) { for (i = 0, door = doorlist[0]; doorlist[i] != NULL; i++) { object *wallface; door = doorlist[i]; wallface = retrofit_joined_wall(map, door->x, door->y, 1, RP); if (wallface != NULL) { retrofit_joined_wall(map, door->x-1, door->y, 0, RP); retrofit_joined_wall(map, door->x+1, door->y, 0, RP); retrofit_joined_wall(map, door->x, door->y-1, 0, RP); retrofit_joined_wall(map, door->x, door->y+1, 0, RP); door->face = wallface->face; if (!QUERY_FLAG(wallface, FLAG_REMOVED)) object_remove(wallface); object_free_drop_inventory(wallface); } } } } crossfire-1.70.0/random_maps/rproto.h0000644000014500000120000001253111731300530014473 00000000000000/* random_map.c */ extern void dump_layout(char **layout, RMParms *RP); extern mapstruct *generate_random_map(const char *OutFileName, RMParms *RP, char **use_layout); extern char **layoutgen(RMParms *RP); extern char **symmetrize_layout(char **maze, int sym, RMParms *RP); extern char **rotate_layout(char **maze, int rotation, RMParms *RP); extern void roomify_layout(char **maze, RMParms *RP); extern int can_make_wall(char **maze, int dx, int dy, int dir, RMParms *RP); extern int make_wall(char **maze, int x, int y, int dir); extern void doorify_layout(char **maze, RMParms *RP); extern StringBuffer *write_map_parameters_to_string(RMParms *RP); /* room_gen_onion.c */ extern char **map_gen_onion(int xsize, int ysize, int option, int layers); extern void centered_onion(char **maze, int xsize, int ysize, int option, int layers); extern void bottom_centered_onion(char **maze, int xsize, int ysize, int option, int layers); extern void draw_onion(char **maze, float *xlocations, float *ylocations, int layers); extern void make_doors(char **maze, float *xlocations, float *ylocations, int layers, int options); extern void bottom_right_centered_onion(char **maze, int xsize, int ysize, int option, int layers); /* room_gen_spiral.c */ extern char **map_gen_spiral(int xsize, int ysize, int option); extern void connect_spirals(int xsize, int ysize, int sym, char **layout); /* maze_gen.c */ extern char **maze_gen(int xsize, int ysize, int option); /* floor.c */ extern mapstruct *make_map_floor(char **layout, char *floorstyle, RMParms *RP); /* wall.c */ extern int surround_flag(char **layout, int i, int j, RMParms *RP); extern int surround_flag2(char **layout, int i, int j, RMParms *RP); extern int surround_flag3(mapstruct *map, int i, int j, RMParms *RP); extern int surround_flag4(mapstruct *map, int i, int j, RMParms *RP); extern void make_map_walls(mapstruct *map, char **layout, char *w_style, RMParms *RP); extern object *pick_joined_wall(object *the_wall, char **layout, int i, int j, RMParms *RP); extern object *retrofit_joined_wall(mapstruct *the_map, int i, int j, int insert_flag, RMParms *RP); /* monster.c */ extern void insert_multisquare_ob_in_map(object *new_obj, mapstruct *map); extern void place_monsters(mapstruct *map, char *monsterstyle, int difficulty, RMParms *RP); /* door.c */ extern int surround_check2(char **layout, int i, int j, int Xsize, int Ysize); extern void put_doors(mapstruct *the_map, char **maze, const char *doorstyle, RMParms *RP); /* decor.c */ extern int obj_count_in_map(mapstruct *map, int x, int y); extern void put_decor(mapstruct *map, char **maze, char *decorstyle, int decor_option, RMParms *RP); /* exit.c */ extern void find_in_layout(int mode, char target, int *fx, int *fy, char **layout, RMParms *RP); extern void place_exits(mapstruct *map, char **maze, char *exitstyle, int orientation, RMParms *RP); extern void unblock_exits(mapstruct *map, char **maze, RMParms *RP); /* treasure.c */ extern int wall_blocked(mapstruct *m, int x, int y); extern void place_treasure(mapstruct *map, char **layout, char *treasure_style, int treasureoptions, RMParms *RP); extern object *place_chest(int treasureoptions, int x, int y, mapstruct *map, mapstruct *style_map, int n_treasures, RMParms *RP); extern object *find_closest_monster(mapstruct *map, int x, int y, RMParms *RP); extern int keyplace(mapstruct *map, int x, int y, char *keycode, int door_flag, int n_keys, RMParms *RP); extern object *find_monster_in_room_recursive(char **layout, mapstruct *map, int x, int y, RMParms *RP); extern object *find_monster_in_room(mapstruct *map, int x, int y, RMParms *RP); extern int find_spot_in_room(mapstruct *map, int x, int y, int *kx, int *ky, RMParms *RP); extern void find_enclosed_spot(mapstruct *map, int *cx, int *cy, RMParms *RP); extern void remove_monsters(int x, int y, mapstruct *map); extern void find_doors_in_room_recursive(char **layout, mapstruct *map, int x, int y, object **doorlist, int *ndoors, RMParms *RP); extern object **find_doors_in_room(mapstruct *map, int x, int y, RMParms *RP); extern void lock_and_hide_doors(object **doorlist, mapstruct *map, int opts, RMParms *RP); /* special.c */ extern void nuke_map_region(mapstruct *map, int xstart, int ystart, int xsize, int ysize); extern void include_map_in_map(mapstruct *dest_map, const mapstruct *in_map, int x, int y); extern int find_spot_for_submap(mapstruct *map, char **layout, int *ix, int *iy, int xsize, int ysize); extern void place_fountain_with_specials(mapstruct *map); extern void place_special_exit(mapstruct *map, int hole_type, const RMParms *RP); extern void place_specials_in_map(mapstruct *map, char **layout, RMParms *RP); /* style.c */ extern int load_dir(const char *dir, char ***namelist, int skip_dirs); extern mapstruct *load_style_map(char *style_name); extern mapstruct *find_style(const char *dirname, const char *stylename, int difficulty); extern object *pick_random_object(mapstruct *style); extern void free_style_maps(void); /* rogue_layout.c */ extern int surround_check(char **layout, int i, int j, int Xsize, int Ysize); extern char **roguelike_layout_gen(int xsize, int ysize, int options); /* snake.c */ extern char **make_snake_layout(int xsize, int ysize); /* square_spiral.c */ extern void find_top_left_corner(char **maze, int *cx, int *cy); extern char **make_square_spiral_layout(int xsize, int ysize); /* expand2x.c */ extern char **expand2x(char **layout, int xsize, int ysize); crossfire-1.70.0/random_maps/maze_gen.c0000644000014500000120000002416411731300530014733 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * General maze generator. * @author * peterm@langmuir.eecs.berkeley.edu */ /* we need to maintain a list of wall points to generate * reasonable mazes: a straightforward recursive random walk maze * generator would generate a map with a trivial circle-the-outer-wall solution */ #include #include #include #include #include /** Contains free walls in the map. */ typedef struct free_walls_struct { int *wall_x_list; /**< X coordinates of free spots for walls. */ int *wall_y_list; /**< Y coordinates of free spots for walls. */ int wall_free_size; /**< Number of items in wall_x_list and wall_y_list. */ } free_walls_struct; static void fill_maze_full(char **maze, int x, int y, int xsize, int ysize, free_walls_struct *); static void fill_maze_sparse(char **maze, int x, int y, int xsize, int ysize, free_walls_struct *); static void make_wall_free_list(int xsize, int ysize, free_walls_struct *); static void pop_wall_point(int *x, int *y, free_walls_struct *); static int find_free_point(char **maze, int *x, int *y, int xc, int yc, int xsize, int ysize); /** * This function generates a random blocked maze with the property that there is only one path from one spot * to any other, and there is always a path from one spot to any other. * @param xsize * @param ysize * wanted map size. * @param option * if 0, maze will be sparse (sizeable rooms), else totally filled. * @return * a char** array with # and . for closed and open respectively. * a char value of 0 represents a blank space: a '#' is * a wall. */ char **maze_gen(int xsize, int ysize, int option) { int i, j; struct free_walls_struct free_walls; /* allocate that array, set it up */ char **maze = (char **)calloc(sizeof(char *), xsize); for (i = 0; i < xsize; i++) { maze[i] = (char *)calloc(sizeof(char), ysize); } /* write the outer walls */ for (i = 0; i < xsize; i++) maze[i][0] = maze[i][ysize-1] = '#'; for (j = 0; j < ysize; j++) maze[0][j] = maze[xsize-1][j] = '#'; /* find how many free wall spots there are */ free_walls.wall_free_size = 2*(xsize-4)+2*(ysize-4); free_walls.wall_x_list = NULL; free_walls.wall_y_list = NULL; make_wall_free_list(xsize, ysize, &free_walls); /* return the empty maze */ if (free_walls.wall_free_size <= 0) return maze; /* recursively generate the walls of the maze */ /* first pop a random starting point */ while (free_walls.wall_free_size > 0) { pop_wall_point(&i, &j, &free_walls); if (option) fill_maze_full(maze, i, j, xsize, ysize, &free_walls); else fill_maze_sparse(maze, i, j, xsize, ysize, &free_walls); } /* clean up our intermediate data structures. */ free(free_walls.wall_x_list); free(free_walls.wall_y_list); return maze; } /** * Inits the list of points where we can put walls on. * The free wall points are those outer points which aren't corners or * near corners, and don't have a maze wall growing out of them already. * @param xsize * @param ysize * size of the map. * @param free_walls * structure to initialise. free_walls_struct::wall_free_size must be initialised. */ static void make_wall_free_list(int xsize, int ysize, free_walls_struct *free_walls) { int i, j, count; count = 0; /* entries already placed in the free list */ /*allocate it*/ if (free_walls->wall_free_size < 0) return; free_walls->wall_x_list = (int *)calloc(sizeof(int), free_walls->wall_free_size); free_walls->wall_y_list = (int *)calloc(sizeof(int), free_walls->wall_free_size); /* top and bottom wall */ for (i = 2; i < xsize-2; i++) { free_walls->wall_x_list[count] = i; free_walls->wall_y_list[count] = 0; count++; free_walls->wall_x_list[count] = i; free_walls->wall_y_list[count] = ysize-1; count++; } /* left and right wall */ for (j = 2; j < ysize-2; j++) { free_walls->wall_x_list[count] = 0; free_walls->wall_y_list[count] = j; count++; free_walls->wall_x_list[count] = xsize-1; free_walls->wall_y_list[count] = j; count++; } } /** * Randomly returns one of the elements from the wall point list. * @param[out] x * @param[out] y * coordinates of the point. * @param free_walls * free walls list. */ static void pop_wall_point(int *x, int *y, free_walls_struct *free_walls) { int index = RANDOM()%free_walls->wall_free_size; *x = free_walls->wall_x_list[index]; *y = free_walls->wall_y_list[index]; /* write the last array point here */ free_walls->wall_x_list[index] = free_walls->wall_x_list[free_walls->wall_free_size-1]; free_walls->wall_y_list[index] = free_walls->wall_y_list[free_walls->wall_free_size-1]; free_walls->wall_free_size--; } /** * Randomly look for a square adjacent to this one where * we can place a new block without closing a path. We may only look * up, down, right, or left. * @param maze * current maze. * @param[out] x * @param[out] y * coordinates of the found point. * @param xc * @param yc * coordinates from where to look. * @param xsize * @param ysize * maze size. * @return * -1 if no free spot, 0 else. */ static int find_free_point(char **maze, int *x, int *y, int xc, int yc, int xsize, int ysize) { /* we will randomly pick from this list, 1=up, 2=down, 3=right, 4=left */ int dirlist[4]; int count = 0; /* # elements in dirlist */ /* look up */ if (yc < ysize-2 && xc > 2 && xc < xsize-2) { int cleartest = (int)maze[xc][yc+1]+(int)maze[xc-1][yc+1]+(int)maze[xc+1][yc+1]; cleartest += (int)maze[xc][yc+2]+(int)maze[xc-1][yc+2]+(int)maze[xc+1][yc+2]; if (cleartest == 0) { dirlist[count] = 1; count++; } } /* look down */ if (yc > 2 && xc > 2 && xc < xsize-2) { int cleartest = (int)maze[xc][yc-1]+(int)maze[xc-1][yc-1]+(int)maze[xc+1][yc-1]; cleartest += (int)maze[xc][yc-2]+(int)maze[xc-1][yc-2]+(int)maze[xc+1][yc-2]; if (cleartest == 0) { dirlist[count] = 2; count++; } } /* look right */ if (xc < xsize-2 && yc > 2 && yc < ysize-2) { int cleartest = (int)maze[xc+1][yc]+(int)maze[xc+1][yc-1]+(int)maze[xc+1][yc+1]; cleartest += (int)maze[xc+2][yc]+(int)maze[xc+2][yc-1]+(int)maze[xc+2][yc+1]; if (cleartest == 0) { dirlist[count] = 3; count++; } } /* look left */ if (xc > 2 && yc > 2 && yc < ysize-2) { int cleartest = (int)maze[xc-1][yc]+(int)maze[xc-1][yc-1]+(int)maze[xc-1][yc+1]; cleartest += (int)maze[xc-2][yc]+(int)maze[xc-2][yc-1]+(int)maze[xc-2][yc+1]; if (cleartest == 0) { dirlist[count] = 4; count++; } } if (count == 0) return -1; /* failed to find any clear points */ /* choose a random direction */ if (count > 1) count = RANDOM()%count; else count = 0; switch (dirlist[count]) { case 1: { /* up */ *y = yc+1; *x = xc; break; }; case 2: { /* down */ *y = yc-1; *x = xc; break; }; case 3: { /* right */ *y = yc; *x = xc+1; break; } case 4: { /* left */ *x = xc-1; *y = yc; break; } default: { /* ??? */ return -1; } } return 1; } /** * Recursive routine which will fill every available space in the maze * with walls. * * @param maze * maze. * @param x * @param y * where to put a wall. * @param xsize * @param ysize * maze size. * @param free_walls * free walls list. */ static void fill_maze_full(char **maze, int x, int y, int xsize, int ysize, free_walls_struct *free_walls) { int xc, yc; /* write a wall here */ maze[x][y] = '#'; /* decide if we're going to pick from the wall_free_list */ if (RANDOM()%4 && free_walls->wall_free_size > 0) { pop_wall_point(&xc, &yc, free_walls); fill_maze_full(maze, xc, yc, xsize, ysize, free_walls); } /* change the if to a while for a complete maze. */ while (find_free_point(maze, &xc, &yc, x, y, xsize, ysize) != -1) { fill_maze_full(maze, xc, yc, xsize, ysize, free_walls); } } /** * Recursive routine which will fill much of the maze, but will leave * some free spots (possibly large) toward the center. * @param maze * maze. * @param x * @param y * where to put a wall. * @param xsize * @param ysize * maze size. * @param free_walls * free walls list. */ static void fill_maze_sparse(char **maze, int x, int y, int xsize, int ysize, free_walls_struct *free_walls) { int xc, yc; /* write a wall here */ maze[x][y] = '#'; /* decide if we're going to pick from the wall_free_list */ if (RANDOM()%4 && free_walls->wall_free_size > 0) { pop_wall_point(&xc, &yc, free_walls); fill_maze_sparse(maze, xc, yc, xsize, ysize, free_walls); } /* change the if to a while for a complete maze. */ if (find_free_point(maze, &xc, &yc, x, y, xsize, ysize) != -1) { fill_maze_sparse(maze, xc, yc, xsize, ysize, free_walls); } } crossfire-1.70.0/random_maps/decor.c0000644000014500000120000001122611731300530014235 00000000000000/* * static char *rcsid_decor_ = * "$Id: decor.c 13563 2010-08-07 14:04:36Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Those functions handle the decor in the random maps. */ #include #include #include /** Number of decor styles that can be chosen if none specified. */ #define NR_DECOR_OPTIONS 1 /** * Count objects at a spot. * @param map * map we want to check * @param x * @param y * coordinates * @return * count of objects in the map at x,y. */ int obj_count_in_map(mapstruct *map, int x, int y) { int count = 0; FOR_MAP_PREPARE(map, x, y, tmp) count++; FOR_MAP_FINISH(); return count; } /** * Put the decor into the map. Right now, it's very primitive. * @param map * map to add decor to. * @param maze * layout of the map, as was generated. * @param decorstyle * style to use. Can be NULL. * @param decor_option * how to place decor: * - 0 means no decor. * - 1 means to place randomly decor. * - other means to fill the map with decor. * @param RP * parameters of the random map. */ void put_decor(mapstruct *map, char **maze, char *decorstyle, int decor_option, RMParms *RP) { mapstruct *decor_map; char style_name[256]; snprintf(style_name, sizeof(style_name), "/styles/decorstyles"); decor_map = find_style(style_name, decorstyle, -1); if (decor_map == NULL) return; /* pick a random option, only 1 option right now. */ if (decor_option == 0) decor_option = RANDOM()%NR_DECOR_OPTIONS+1; switch (decor_option) { case 0: break; case 1: { /* random placement of decor objects. */ int number_to_place = RANDOM()%((RP->Xsize*RP->Ysize)/5); int failures = 0; object *new_decor_object; while (failures < 100 && number_to_place > 0) { int x, y; x = RANDOM()%(RP->Xsize-2)+1; y = RANDOM()%(RP->Ysize-2)+1; if (maze[x][y] == 0 && obj_count_in_map(map, x, y) < 2) { /* empty */ object *this_object; new_decor_object = pick_random_object(decor_map); this_object = arch_to_object(new_decor_object->arch); object_copy(new_decor_object, this_object); /* * Don't change move_block, this prevents item merging. * Instead, fix the item on the style map if blocking * is bad. */ /*this_object->move_block = MOVE_BLOCK_DEFAULT;*/ object_insert_in_map_at(this_object, map, NULL, 0, x, y); number_to_place--; } else failures++; } break; } default: { /* place decor objects everywhere: tile the map. */ int i, j; for (i = 1; i < RP->Xsize-1; i++) for (j = 1; j < RP->Ysize-1; j++) { if (maze[i][j] == 0) { object *new_decor_object, *this_object; new_decor_object = pick_random_object(decor_map); this_object = arch_to_object(new_decor_object->arch); object_copy(new_decor_object, this_object); /* * Don't change move_block, this prevents item merging. * Instead, fix the item on the style map if blocking * is bad. */ /*this_object->move_block = MOVE_BLOCK_DEFAULT;*/ object_insert_in_map_at(this_object, map, NULL, 0, i, j); } } break; } } } crossfire-1.70.0/random_maps/reader.l0000644000014500000120000001325611731300530014421 00000000000000%{ /* * static char *reader_l = * "$Id: reader.l 15372 2011-11-01 16:53:00Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 1994 Mark Wedel Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to mark@pyramid.com */ #include #include #include #include #define YY_DECL int rmap_lex_read(RMParms *RP) static char *rmap_yval(void); static int rmap_lex_error; #define IVAL atoi(rmap_yval()) #define FVAL atof(rmap_yval()) /** * Error handler. * * @param s * lex-generated error message. */ static int yyerror(const char *s) { LOG(llevError, "%s: %s\n", s, yytext); return -1; } %} S [ \t]+.+ WS [ \t]* %x MESSAGE /* Don't have to link with -lfl with this */ %option noyywrap /* those functions are unused, not sure of compatibility with Flex versions. */ %option nounput %option noyy_top_state %option noinput %% %{ /* Declare some local variables */ rmap_lex_error = 0; %} ^wallstyle{S} strncpy(RP->wallstyle, rmap_yval(), RM_SIZE); ^floorstyle{S} strncpy(RP->floorstyle, rmap_yval(), RM_SIZE); ^monsterstyle{S} strncpy(RP->monsterstyle, rmap_yval(), RM_SIZE); ^treasurestyle{S} strncpy(RP->treasurestyle, rmap_yval(), RM_SIZE); ^layoutstyle{S} strncpy(RP->layoutstyle, rmap_yval(), RM_SIZE); ^doorstyle{S} strncpy(RP->doorstyle, rmap_yval(), RM_SIZE); ^decorstyle{S} strncpy(RP->decorstyle, rmap_yval(), RM_SIZE); ^xsize{S} RP->Xsize = IVAL; ^ysize{S} RP->Ysize = IVAL; ^expand2x{S} RP->expand2x = IVAL; ^layoutoptions1{S} RP->layoutoptions1 = IVAL; ^layoutoptions2{S} RP->layoutoptions2 = IVAL; ^symmetry{S} RP->symmetry = IVAL; ^difficulty{S} RP->difficulty = IVAL; ^difficulty_increase{S} RP->difficulty_increase = FVAL; ^decoroptions{S} RP->decoroptions = IVAL; ^exitstyle{S} strncpy(RP->exitstyle, rmap_yval(), RM_SIZE); ^dungeon_level{S} RP->dungeon_level = IVAL; ^dungeon_name{S} strncpy(RP->dungeon_name, rmap_yval(), RM_SIZE); ^dungeon_depth{S} RP->dungeon_depth = IVAL; ^final_map{S} strncpy(RP->final_map, rmap_yval(), RM_SIZE); ^final_exit_archetype{S} strncpy(RP->final_exit_archetype, rmap_yval(), RM_SIZE); ^orientation{S} RP-> orientation = IVAL; ^origin_x{S} RP->origin_x = IVAL; ^origin_y{S} RP-> origin_y = IVAL; ^origin_map{S} strncpy(RP->origin_map, rmap_yval(), RM_SIZE); ^random_seed{S} RP->random_seed = IVAL; ^treasureoptions{S} RP->treasureoptions = IVAL; ^exit_on_final_map{S} strncpy(RP->exit_on_final_map, rmap_yval(), RM_SIZE); ^multiple_floors{S} RP->multiple_floors = IVAL; <*>(^{WS}$)|\n {/* ignore empty lines, newlines we don't do above */} #.*\n { } <> {/* If we got an error, return the error. Otherwise, return that we got EOF */ if (rmap_lex_error != 0) return rmap_lex_error; else return LL_EOF; } .* { yyerror("Unrecognized string"); rmap_lex_error= -1; } %% /* Our save file syntax is very simple, so we can use a very simple * processing mechanism here instead using something like bison * This skips over the space and returns the value, or "" if no value * is found. */ static char *rmap_yval(void) { static char em[] = ""; char *cp; cp = strchr(yytext, ' '); if (cp) return cp+1; else return em; } int load_parameters(FILE *fp, int bufstate, RMParms *RP) { int retval; char inbuf[MAX_BUF]; if (bufstate == LO_NEWFILE || bufstate == LO_NOREAD) { yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); if (bufstate == LO_NOREAD) return LL_NORMAL; } if (bufstate == LO_LINEMODE) { YY_BUFFER_STATE yybufstate; while (fgets(inbuf, MAX_BUF-3, fp)) { yybufstate = yy_scan_string(inbuf); retval = rmap_lex_read(RP); yy_delete_buffer(yybufstate); if (retval == LL_NORMAL) return retval; } return LL_EOF; } retval = rmap_lex_read(RP); /* LOG(llevDebug, " load completed, object=%s\n", op->name);*/ return retval; } /* This takes a buffer, scans it for variables, and sets those variables * as appropriate in op. * * This function appears to be used in only 2 places - in crossedit to * override values and in c_wiz to mutate values. */ int set_random_map_variable(RMParms *rp, const char *buf) { YY_BUFFER_STATE yybufstate; int retval; yybufstate = yy_scan_string(buf); retval = rmap_lex_read(rp); yy_delete_buffer(yybufstate); return retval; } crossfire-1.70.0/random_maps/expand2x.c0000644000014500000120000001314411731300530014673 00000000000000/* * -------------------------------------------------------------------------- * $Id: expand2x.c 11227 2009-01-24 15:16:32Z akirschbaum $ * * ALGORITHM * * ... (TBW) */ /** * @file * Expands a layout by 2x in each dimension. * * H. S. Teoh */ #include /* just in case */ #include /* use compiler to do sanity check */ /* PROTOTYPES */ static void expand_misc(char **newlayout, int i, int j, char **layout); static void expand_wall(char **newlayout, int i, int j, char **layout, int xsize, int ysize); static void expand_door(char **newlayout, int i, int j, char **layout, int xsize, int ysize); /* FUNCTIONS */ /** * Expands the layout be a factor 2. Doors and walls are taken care of. * @param layout * layout to expand. Memory is free()d at the end, so pointer becomes invalid. * @param xsize * @param ysize * layout size. * @return * new layout. Must be free()d by caller. */ char **expand2x(char **layout, int xsize, int ysize) { int i, j; int nxsize = xsize*2-1; int nysize = ysize*2-1; /* Allocate new layout */ char **newlayout = (char **)calloc(sizeof(char *), nxsize); for (i = 0; i < nxsize; i++) { newlayout[i] = (char *)calloc(sizeof(char), nysize); } for (i = 0; i < xsize; i++) { for (j = 0; j < ysize; j++) { switch (layout[i][j]) { case '#': expand_wall(newlayout, i, j, layout, xsize, ysize); break; case 'D': expand_door(newlayout, i, j, layout, xsize, ysize); break; default: expand_misc(newlayout, i, j, layout); } } } /* Dump old layout */ for (i = 0; i < xsize; i++) { free(layout[i]); } free(layout); return newlayout; } /** * Copy the old tile X into the new one at location (i*2, j*2) and * fill up the rest of the 2x2 result with 0: * X ---> X 0 * 0 0 * @param newlayout * map layout. * @param i * @param j * spot to expand. * @param layout * map layout. */ static void expand_misc(char **newlayout, int i, int j, char **layout) { newlayout[i*2][j*2] = layout[i][j]; /* (Note: no need to reset rest of 2x2 area to \0 because calloc does that * for us.) */ } /** * Returns a bitmap that represents which squares on the right and bottom * edges of a square (i,j) match the given character. * * @param ch * character to look for. * @param layout * map. * @param i * @param j * spot where to look. * @param xsize * @param ysize * layout size. * @return * combination of the following values: * - 1 means match on (i+1, j). * - 2 means match on (i, j+1). * - 4 means match on (i+1, j+1). */ static int calc_pattern(char ch, char **layout, int i, int j, int xsize, int ysize) { int pattern = 0; if (i+1 < xsize && layout[i+1][j] == ch) pattern |= 1; if (j+1 < ysize) { if (layout[i][j+1] == ch) pattern |= 2; if (i+1 < xsize && layout[i+1][j+1] == ch) pattern |= 4; } return pattern; } /** * Expand a wall. This function will try to sensibly connect the resulting * wall to adjacent wall squares, so that the result won't have disconnected * walls. * @param newlayout * map layout. * @param i * @param j * coordinates of wall to expand in non expanded layout. * @param layout * current (non expanded) layout. * @param xsize * @param ysize * sizes of layout. */ static void expand_wall(char **newlayout, int i, int j, char **layout, int xsize, int ysize) { int wall_pattern = calc_pattern('#', layout, i, j, xsize, ysize); int door_pattern = calc_pattern('D', layout, i, j, xsize, ysize); int both_pattern = wall_pattern|door_pattern; newlayout[i*2][j*2] = '#'; if (i+1 < xsize) { if (both_pattern&1) { /* join walls/doors to the right */ newlayout[i*2+1][j*2] = layout[i+1][j]; } } if (j+1 < ysize) { if (both_pattern&2) { /* join walls/doors to the bottom */ newlayout[i*2][j*2+1] = layout[i][j+1]; } if (wall_pattern == 7) { /* if orig layout is a 2x2 wall block, * we fill the result with walls. */ newlayout[i*2+1][j*2+1] = '#'; } } } /** * Expand a door. This function will try to sensibly connect doors so that they meet up with * adjacent walls. Note that it will also presumptuously delete (ignore) doors * that it doesn't know how to correctly expand. * @param newlayout * expanded layout. * @param i * @param j * coordinates of door to expand in non expanded layout. * @param layout * non expanded layout. * @param xsize * @param ysize * size of non expanded layout. */ static void expand_door(char **newlayout, int i, int j, char **layout, int xsize, int ysize) { int wall_pattern = calc_pattern('#', layout, i, j, xsize, ysize); int door_pattern = calc_pattern('D', layout, i, j, xsize, ysize); int join_pattern; /* Doors "like" to connect to walls more than other doors. If there is * a wall and another door, this door will connect to the wall and * disconnect from the other door. */ if (wall_pattern&3) { join_pattern = wall_pattern; } else { join_pattern = door_pattern; } newlayout[i*2][j*2] = 'D'; if (i+1 < xsize) { if (join_pattern&1) { /* there is a door/wall to the right */ newlayout[i*2+1][j*2] = 'D'; } } if (j+1 < ysize) { if (join_pattern&2) { /* there is a door/wall below */ newlayout[i*2][j*2+1] = 'D'; } } } crossfire-1.70.0/random_maps/Makefile.in0000644000014500000120000005262611732537022015064 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 1998 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mark@pyramid.com VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ pkglibexec_PROGRAMS = random_map$(EXEEXT) subdir = random_maps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in reader.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru librandom_map_a_AR = $(AR) $(ARFLAGS) librandom_map_a_LIBADD = am_librandom_map_a_OBJECTS = random_map.$(OBJEXT) \ room_gen_onion.$(OBJEXT) room_gen_spiral.$(OBJEXT) \ maze_gen.$(OBJEXT) reader.$(OBJEXT) floor.$(OBJEXT) \ wall.$(OBJEXT) monster.$(OBJEXT) door.$(OBJEXT) \ decor.$(OBJEXT) exit.$(OBJEXT) treasure.$(OBJEXT) \ special.$(OBJEXT) style.$(OBJEXT) rogue_layout.$(OBJEXT) \ snake.$(OBJEXT) square_spiral.$(OBJEXT) expand2x.$(OBJEXT) librandom_map_a_OBJECTS = $(am_librandom_map_a_OBJECTS) am__installdirs = "$(DESTDIR)$(pkglibexecdir)" PROGRAMS = $(pkglibexec_PROGRAMS) am_random_map_OBJECTS = standalone.$(OBJEXT) random_map_OBJECTS = $(am_random_map_OBJECTS) random_map_DEPENDENCIES = ../common/libcross.a librandom_map.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS) LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS) YLWRAP = $(top_srcdir)/utils/ylwrap SOURCES = $(librandom_map_a_SOURCES) $(random_map_SOURCES) DIST_SOURCES = $(librandom_map_a_SOURCES) $(random_map_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = lex.rmap LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ random_map_SOURCES = standalone.c noinst_LIBRARIES = librandom_map.a librandom_map_a_SOURCES = random_map.c \ room_gen_onion.c \ room_gen_spiral.c \ maze_gen.c \ reader.l \ floor.c \ wall.c \ monster.c \ door.c \ decor.c \ exit.c \ treasure.c \ special.c \ style.c \ rogue_layout.c \ snake.c \ square_spiral.c \ expand2x.c \ maze_gen.h random_map.h room_gen.h EXTRA_DIST = maze_gen.h random_map.h room_gen.h\ standalone.c rproto.h expand2x.h Notes AM_CPPFLAGS = -I$(top_srcdir)/include AM_LFLAGS = -Prmap -i random_map_LDADD = ../common/libcross.a librandom_map.a CLEANFILES = reader.c all: all-am .SUFFIXES: .SUFFIXES: .c .l .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu random_maps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu random_maps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) librandom_map.a: $(librandom_map_a_OBJECTS) $(librandom_map_a_DEPENDENCIES) $(EXTRA_librandom_map_a_DEPENDENCIES) -rm -f librandom_map.a $(librandom_map_a_AR) librandom_map.a $(librandom_map_a_OBJECTS) $(librandom_map_a_LIBADD) $(RANLIB) librandom_map.a install-pkglibexecPROGRAMS: $(pkglibexec_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" @list='$(pkglibexec_PROGRAMS)'; test -n "$(pkglibexecdir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-pkglibexecPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(pkglibexec_PROGRAMS)'; test -n "$(pkglibexecdir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files clean-pkglibexecPROGRAMS: @list='$(pkglibexec_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list random_map$(EXEEXT): $(random_map_OBJECTS) $(random_map_DEPENDENCIES) $(EXTRA_random_map_DEPENDENCIES) @rm -f random_map$(EXEEXT) $(LINK) $(random_map_OBJECTS) $(random_map_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/door.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expand2x.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floor.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/maze_gen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/monster.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random_map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rogue_layout.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/room_gen_onion.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/room_gen_spiral.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snake.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/special.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/square_spiral.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/standalone.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/style.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/treasure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wall.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .l.c: $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(pkglibexecdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f reader.c clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-pkglibexecPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-pkglibexecPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pkglibexecPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLIBRARIES clean-pkglibexecPROGRAMS \ ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pkglibexecPROGRAMS install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-pkglibexecPROGRAMS proto: cproto -e -o rproto.h.bak $(CPPFLAGS) -I. $(AM_CPPFLAGS) \ `echo $(librandom_map_a_SOURCES) | $(AWK) -v RS=" " '/.c$$/ { print }'` sed -e "s/#if __STDC__/#ifdef __STDC__/" -e "s/__signed/signed/g" -e "/__inline/d" -e "/YY_BUFFER/d" < rproto.h.bak >rproto.h chmod 644 rproto.h rm -f rproto.h.bak # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/random_maps/monster.c0000644000014500000120000001060311731300530014626 00000000000000/* * static char *rcsid_monster_c = * "$Id: monster.c 11817 2009-06-12 15:46:56Z akirschbaum $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Monster placement for random maps. */ #include #include #include /** * Inserts a monster in the map. * Some monsters are multisquare, and these guys require special * handling. * @param new_obj * monster to insert. Its x and y fields must be the desired location. * @param map * where to insert to. * @todo * there probably is a function in the common library for that, so remove this one. */ void insert_multisquare_ob_in_map(object *new_obj, mapstruct *map) { int x, y; archetype *at; object *old_seg; object *head; /* first insert the head */ object_insert_in_map(new_obj, map, new_obj, INS_NO_MERGE|INS_NO_WALK_ON); x = new_obj->x; y = new_obj->y; old_seg = new_obj; head = new_obj; for (at = new_obj->arch->more; at != NULL; at = at->more) { object *new_seg; new_seg = arch_to_object(at); new_seg->x = x+at->clone.x; new_seg->y = y+at->clone.y; new_seg->map = old_seg->map; object_insert_in_map(new_seg, new_seg->map, new_seg, INS_NO_MERGE|INS_NO_WALK_ON); new_seg->head = head; old_seg->more = new_seg; old_seg = new_seg; } old_seg->more = NULL; } /** * Place some monsters into the map. Their experience is linked to difficulty to insert a * suitable number of critters. * @param map * where to put monsters on. * @param monsterstyle * style. Can be NULL, in which case a random one is used. * @param difficulty * how difficult the monsters should be, and how many there should be. * @param RP * random map parameters. */ void place_monsters(mapstruct *map, char *monsterstyle, int difficulty, RMParms *RP) { char styledirname[256]; mapstruct *style_map = NULL; int failed_placements; sint64 exp_per_sq, total_experience; int number_monsters = 0; archetype *at; snprintf(styledirname, sizeof(styledirname), "%s", "/styles/monsterstyles"); style_map = find_style(styledirname, monsterstyle, difficulty); if (style_map == NULL) return; /* fill up the map with random monsters from the monster style*/ total_experience = 0; failed_placements = 0; exp_per_sq = 0; while (exp_per_sq <= level_exp(difficulty, 1.0) && failed_placements < 100 && number_monsters < (RP->Xsize*RP->Ysize)/8) { object *this_monster = pick_random_object(style_map); int x, y, freeindex; if (this_monster == NULL) return; /* no monster?? */ x = RANDOM()%RP->Xsize; y = RANDOM()%RP->Ysize; freeindex = object_find_first_free_spot(this_monster, map, x, y); if (freeindex != -1) { object *new_monster = arch_to_object(this_monster->arch); x += freearr_x[freeindex]; y += freearr_y[freeindex]; object_copy_with_inv(this_monster, new_monster); new_monster->x = x; new_monster->y = y; insert_multisquare_ob_in_map(new_monster, map); total_experience += this_monster->stats.exp; for (at = new_monster->arch; at != NULL; at = at->more) number_monsters++; RP->total_map_hp += new_monster->stats.hp; /* a global count */ } else { failed_placements++; } exp_per_sq = ((double)1000*total_experience)/(MAP_WIDTH(map)*MAP_HEIGHT(map)+1); } } crossfire-1.70.0/random_maps/reader.c0000644000014500000120000020327211731540242014415 00000000000000 #line 3 "reader.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer rmap_create_buffer #define yy_delete_buffer rmap_delete_buffer #define yy_flex_debug rmap_flex_debug #define yy_init_buffer rmap_init_buffer #define yy_flush_buffer rmap_flush_buffer #define yy_load_buffer_state rmap_load_buffer_state #define yy_switch_to_buffer rmap_switch_to_buffer #define yyin rmapin #define yyleng rmapleng #define yylex rmaplex #define yylineno rmaplineno #define yyout rmapout #define yyrestart rmaprestart #define yytext rmaptext #define yywrap rmapwrap #define yyalloc rmapalloc #define yyrealloc rmaprealloc #define yyfree rmapfree #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; #endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE rmaprestart(rmapin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif extern int rmapleng; extern FILE *rmapin, *rmapout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up rmaptext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up rmaptext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via rmaprestart()), so that the user can continue scanning by * just pointing rmapin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when rmaptext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int rmapleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow rmapwrap()'s to do buffer switches * instead of setting up a fresh rmapin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void rmaprestart (FILE *input_file ); void rmap_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE rmap_create_buffer (FILE *file,int size ); void rmap_delete_buffer (YY_BUFFER_STATE b ); void rmap_flush_buffer (YY_BUFFER_STATE b ); void rmappush_buffer_state (YY_BUFFER_STATE new_buffer ); void rmappop_buffer_state (void ); static void rmapensure_buffer_stack (void ); static void rmap_load_buffer_state (void ); static void rmap_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER rmap_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE rmap_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE rmap_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE rmap_scan_bytes (yyconst char *bytes,int len ); void *rmapalloc (yy_size_t ); void *rmaprealloc (void *,yy_size_t ); void rmapfree (void * ); #define yy_new_buffer rmap_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ rmapensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ rmap_create_buffer(rmapin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ rmapensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ rmap_create_buffer(rmapin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define rmapwrap(n) 1 #define YY_SKIP_YYWRAP typedef unsigned char YY_CHAR; FILE *rmapin = (FILE *) 0, *rmapout = (FILE *) 0; typedef int yy_state_type; extern int rmaplineno; int rmaplineno = 1; extern char *rmaptext; #define yytext_ptr rmaptext static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); static void yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up rmaptext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ rmapleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 34 #define YY_END_OF_BUFFER 35 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static yyconst flex_int16_t yy_accept[358] = { 0, 33, 33, 0, 0, 35, 33, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 33, 33, 32, 33, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 8, 8, 9, 9, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 10, 10, 33, 33, 33, 33, 33, 33, 33, 33, 33, 24, 24, 25, 25, 33, 13, 13, 33, 33, 33, 33, 33, 33, 33, 6, 6, 33, 33, 33, 17, 17, 33, 33, 21, 21, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 1, 1, 33, 7, 7, 14, 14, 33, 33, 33, 33, 33, 33, 2, 2, 33, 33, 33, 33, 33, 26, 26, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 5, 5, 33, 33, 23, 23, 27, 27, 33, 33, 16, 16, 33, 33, 33, 19, 19, 33, 33, 33, 33, 3, 3, 33, 33, 33, 33, 20, 20, 18, 18, 33, 33, 33, 33, 33, 33, 4, 4, 33, 33, 33, 11, 11, 12, 12, 33, 33, 33, 33, 33, 30, 30, 28, 28, 33, 33, 33, 33, 29, 29, 33, 33, 33, 15, 15, 33, 22, 22, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 1, 9, 10, 11, 12, 13, 14, 15, 1, 1, 16, 17, 18, 19, 20, 1, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1, 1, 1, 30, 31, 1, 32, 1, 33, 34, 35, 36, 37, 38, 39, 1, 1, 40, 41, 42, 43, 44, 1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int32_t yy_meta[54] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int16_t yy_base[392] = { 0, 0, 30, 81, 82, 657, 0, 658, 653, 0, 102, 59, 75, 84, 75, 74, 88, 70, 79, 93, 81, 82, 658, 4, 0, 652, 658, 5, 0, 96, 94, 88, 90, 118, 116, 116, 108, 121, 124, 127, 125, 127, 135, 131, 133, 134, 6, 658, 132, 140, 132, 141, 132, 148, 153, 146, 150, 152, 158, 171, 173, 169, 179, 172, 161, 162, 171, 179, 173, 185, 178, 179, 183, 180, 178, 180, 189, 195, 202, 203, 218, 208, 209, 221, 222, 216, 225, 213, 220, 217, 223, 233, 623, 222, 222, 236, 228, 226, 232, 234, 229, 237, 242, 651, 650, 250, 254, 254, 251, 262, 253, 264, 644, 273, 260, 269, 265, 271, 284, 619, 618, 272, 274, 268, 646, 645, 274, 270, 283, 284, 615, 293, 614, 286, 291, 317, 298, 307, 305, 307, 319, 308, 317, 310, 307, 325, 322, 0, 642, 0, 641, 324, 324, 318, 332, 356, 335, 335, 640, 342, 341, 357, 352, 348, 354, 610, 363, 371, 638, 637, 369, 636, 364, 371, 365, 376, 360, 635, 378, 380, 384, 634, 378, 633, 371, 632, 384, 390, 393, 386, 408, 402, 402, 631, 630, 412, 629, 404, 402, 628, 408, 627, 425, 626, 408, 405, 414, 625, 416, 0, 624, 594, 622, 621, 416, 425, 421, 423, 422, 620, 0, 619, 0, 618, 431, 0, 617, 419, 415, 616, 429, 615, 614, 438, 0, 613, 434, 451, 457, 0, 612, 461, 462, 0, 611, 610, 453, 609, 461, 454, 608, 607, 606, 459, 460, 0, 605, 604, 0, 603, 0, 602, 460, 465, 464, 601, 466, 462, 0, 600, 462, 599, 598, 466, 597, 0, 596, 595, 468, 477, 594, 480, 593, 592, 591, 561, 481, 6, 0, 589, 588, 470, 0, 587, 0, 586, 481, 585, 0, 584, 480, 583, 582, 0, 581, 488, 496, 580, 579, 0, 578, 494, 495, 577, 507, 0, 576, 0, 575, 511, 509, 574, 573, 572, 571, 0, 570, 513, 502, 501, 0, 569, 0, 568, 567, 566, 504, 565, 499, 0, 564, 0, 563, 517, 562, 510, 561, 0, 560, 520, 551, 547, 0, 545, 537, 0, 536, 658, 555, 557, 536, 559, 535, 534, 532, 531, 431, 347, 108, 101, 96, 92, 88, 87, 86, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 0 } ; static yyconst flex_int16_t yy_def[392] = { 0, 358, 357, 359, 359, 357, 360, 357, 361, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 361, 357, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 362, 363, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 362, 362, 363, 363, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 364, 360, 360, 360, 360, 360, 360, 360, 360, 360, 365, 366, 360, 367, 360, 360, 360, 360, 360, 360, 368, 360, 360, 360, 369, 360, 364, 364, 360, 370, 360, 360, 360, 360, 360, 360, 360, 365, 365, 366, 366, 360, 367, 367, 360, 360, 371, 360, 372, 373, 360, 368, 368, 360, 360, 360, 369, 369, 360, 360, 370, 370, 374, 360, 360, 360, 360, 360, 375, 360, 360, 360, 371, 371, 360, 372, 372, 373, 373, 360, 360, 360, 360, 360, 360, 374, 374, 360, 376, 360, 360, 377, 375, 375, 378, 360, 360, 379, 360, 360, 360, 380, 360, 360, 360, 376, 376, 381, 360, 377, 377, 378, 378, 360, 360, 379, 379, 360, 382, 383, 380, 380, 360, 360, 360, 360, 381, 381, 360, 360, 384, 360, 382, 382, 383, 383, 360, 360, 385, 386, 360, 360, 384, 384, 360, 360, 360, 385, 385, 386, 386, 387, 388, 360, 360, 360, 387, 387, 388, 388, 360, 389, 360, 360, 389, 389, 360, 390, 360, 390, 390, 391, 391, 391, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357 } ; static yyconst flex_int16_t yy_nxt[712] = { 0, 355, 27, 7, 8, 28, 46, 27, 46, 47, 28, 47, 307, 308, 352, 347, 341, 339, 332, 330, 325, 317, 315, 309, 303, 298, 294, 292, 288, 275, 9, 6, 6, 7, 8, 6, 6, 6, 6, 6, 10, 11, 12, 6, 6, 6, 13, 14, 6, 15, 6, 16, 17, 18, 6, 6, 19, 20, 21, 6, 9, 6, 6, 6, 10, 11, 12, 6, 6, 6, 13, 14, 6, 15, 6, 16, 17, 18, 6, 6, 19, 20, 21, 6, 7, 7, 33, 268, 260, 258, 34, 35, 36, 255, 37, 39, 40, 243, 41, 38, 42, 43, 239, 44, 45, 48, 49, 50, 51, 234, 33, 23, 23, 29, 34, 35, 36, 30, 37, 39, 40, 31, 41, 38, 42, 43, 32, 44, 45, 48, 49, 50, 51, 52, 54, 55, 56, 29, 53, 57, 58, 30, 59, 60, 61, 31, 62, 63, 64, 65, 32, 66, 67, 68, 69, 70, 71, 52, 54, 55, 56, 72, 53, 57, 58, 73, 59, 60, 61, 74, 62, 63, 64, 65, 75, 66, 67, 68, 69, 70, 71, 76, 77, 79, 78, 72, 80, 81, 82, 73, 83, 84, 85, 74, 86, 87, 88, 91, 75, 92, 89, 93, 94, 95, 96, 76, 77, 79, 78, 90, 80, 81, 82, 97, 83, 84, 85, 98, 86, 87, 88, 91, 99, 92, 89, 93, 94, 95, 96, 100, 101, 102, 103, 104, 107, 105, 108, 97, 106, 109, 110, 98, 111, 112, 114, 115, 99, 116, 117, 118, 119, 120, 121, 100, 101, 102, 103, 104, 107, 105, 108, 122, 106, 109, 110, 123, 111, 112, 114, 115, 126, 116, 117, 118, 119, 120, 121, 127, 128, 129, 130, 131, 132, 136, 134, 122, 139, 140, 137, 123, 135, 138, 141, 144, 126, 145, 146, 151, 152, 153, 154, 127, 128, 129, 130, 131, 132, 136, 134, 156, 139, 140, 137, 158, 135, 138, 141, 144, 159, 145, 146, 151, 152, 153, 154, 160, 161, 162, 163, 164, 165, 166, 170, 156, 167, 171, 172, 158, 173, 174, 175, 176, 159, 177, 168, 169, 181, 182, 225, 160, 161, 162, 163, 164, 165, 166, 170, 184, 167, 171, 172, 185, 173, 174, 175, 176, 178, 177, 168, 169, 181, 182, 179, 186, 180, 187, 188, 189, 191, 192, 195, 184, 199, 197, 200, 185, 198, 201, 202, 204, 178, 205, 206, 208, 211, 213, 179, 186, 180, 187, 188, 189, 191, 192, 195, 214, 199, 197, 200, 215, 198, 201, 202, 204, 216, 205, 206, 208, 211, 213, 217, 218, 219, 224, 227, 228, 230, 232, 236, 214, 237, 238, 222, 215, 241, 246, 247, 248, 216, 249, 250, 252, 253, 254, 217, 218, 219, 224, 227, 228, 230, 257, 236, 262, 237, 238, 233, 263, 241, 246, 247, 248, 264, 249, 250, 252, 253, 254, 265, 266, 267, 270, 272, 273, 278, 257, 279, 262, 281, 282, 283, 263, 285, 286, 287, 291, 264, 296, 297, 300, 306, 311, 265, 266, 267, 270, 272, 273, 278, 312, 279, 314, 281, 282, 283, 319, 285, 286, 287, 291, 320, 296, 297, 300, 306, 311, 323, 324, 327, 328, 329, 336, 337, 312, 338, 314, 343, 345, 346, 319, 349, 351, 220, 209, 320, 149, 147, 24, 356, 356, 323, 324, 327, 328, 329, 336, 337, 353, 338, 354, 343, 345, 346, 353, 349, 351, 6, 6, 22, 22, 25, 25, 348, 350, 348, 342, 340, 344, 342, 340, 333, 331, 326, 335, 334, 333, 331, 318, 316, 326, 310, 322, 321, 304, 318, 316, 299, 313, 295, 293, 310, 289, 305, 304, 302, 301, 299, 295, 276, 293, 290, 289, 269, 284, 261, 259, 280, 256, 277, 276, 274, 271, 269, 244, 240, 235, 261, 259, 256, 226, 223, 221, 251, 245, 244, 242, 210, 240, 235, 231, 229, 226, 223, 221, 212, 210, 207, 203, 196, 194, 193, 190, 183, 150, 148, 157, 155, 150, 148, 143, 142, 133, 125, 124, 113, 26, 26, 357, 5, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357 } ; static yyconst flex_int16_t yy_chk[712] = { 0, 391, 9, 1, 1, 9, 23, 27, 46, 23, 27, 46, 287, 287, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 11, 374, 373, 372, 12, 12, 13, 371, 14, 15, 16, 370, 17, 14, 18, 19, 369, 20, 21, 29, 30, 31, 32, 368, 11, 3, 4, 10, 12, 12, 13, 10, 14, 15, 16, 10, 17, 14, 18, 19, 10, 20, 21, 29, 30, 31, 32, 33, 34, 35, 36, 10, 33, 37, 38, 10, 39, 40, 41, 10, 42, 43, 44, 45, 10, 48, 49, 50, 51, 52, 53, 33, 34, 35, 36, 54, 33, 37, 38, 55, 39, 40, 41, 56, 42, 43, 44, 45, 57, 48, 49, 50, 51, 52, 53, 58, 59, 60, 59, 54, 61, 62, 63, 55, 64, 65, 66, 56, 67, 68, 69, 71, 57, 72, 70, 73, 74, 75, 76, 58, 59, 60, 59, 70, 61, 62, 63, 77, 64, 65, 66, 78, 67, 68, 69, 71, 79, 72, 70, 73, 74, 75, 76, 80, 81, 82, 83, 84, 86, 85, 87, 77, 85, 88, 89, 78, 90, 91, 93, 94, 79, 95, 96, 97, 98, 99, 100, 80, 81, 82, 83, 84, 86, 85, 87, 101, 85, 88, 89, 102, 90, 91, 93, 94, 105, 95, 96, 97, 98, 99, 100, 106, 107, 108, 109, 110, 111, 114, 113, 101, 116, 117, 115, 102, 113, 115, 118, 121, 105, 122, 123, 126, 127, 128, 129, 106, 107, 108, 109, 110, 111, 114, 113, 131, 116, 117, 115, 133, 113, 115, 118, 121, 134, 122, 123, 126, 127, 128, 129, 135, 136, 137, 138, 139, 140, 141, 143, 131, 142, 144, 145, 133, 146, 151, 152, 153, 134, 154, 142, 142, 156, 157, 367, 135, 136, 137, 138, 139, 140, 141, 143, 159, 142, 144, 145, 160, 146, 151, 152, 153, 155, 154, 142, 142, 156, 157, 155, 161, 155, 162, 163, 164, 166, 167, 170, 159, 173, 172, 174, 160, 172, 175, 176, 178, 155, 179, 180, 182, 184, 186, 155, 161, 155, 162, 163, 164, 166, 167, 170, 187, 173, 172, 174, 188, 172, 175, 176, 178, 189, 179, 180, 182, 184, 186, 190, 191, 192, 195, 197, 198, 200, 202, 204, 187, 205, 206, 366, 188, 208, 214, 215, 216, 189, 217, 218, 224, 227, 228, 190, 191, 192, 195, 197, 198, 200, 230, 204, 233, 205, 206, 202, 236, 208, 214, 215, 216, 237, 217, 218, 224, 227, 228, 238, 241, 242, 246, 248, 249, 253, 230, 254, 233, 262, 263, 264, 236, 266, 267, 270, 273, 237, 278, 279, 281, 286, 291, 238, 241, 242, 246, 248, 249, 253, 296, 254, 300, 262, 263, 264, 305, 266, 267, 270, 273, 306, 278, 279, 281, 286, 291, 311, 312, 314, 319, 320, 327, 328, 296, 329, 300, 336, 338, 343, 305, 345, 349, 365, 364, 306, 363, 362, 360, 356, 354, 311, 312, 314, 319, 320, 327, 328, 353, 329, 351, 336, 338, 343, 350, 345, 349, 358, 358, 359, 359, 361, 361, 348, 346, 344, 342, 340, 337, 335, 334, 333, 331, 326, 324, 323, 322, 321, 318, 316, 313, 310, 308, 307, 304, 302, 301, 299, 297, 295, 293, 290, 289, 285, 284, 283, 282, 280, 277, 276, 274, 272, 271, 269, 265, 261, 259, 257, 256, 252, 251, 250, 247, 245, 244, 240, 235, 232, 231, 229, 226, 223, 221, 219, 213, 212, 211, 210, 207, 203, 201, 199, 196, 194, 193, 185, 183, 181, 177, 171, 169, 168, 165, 158, 150, 148, 132, 130, 125, 124, 120, 119, 112, 104, 103, 92, 25, 8, 5, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int rmap_flex_debug; int rmap_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *rmaptext; #line 1 "reader.l" #line 2 "reader.l" /* * static char *reader_l = * "$Id: reader.l 15372 2011-11-01 16:53:00Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 1994 Mark Wedel Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to mark@pyramid.com */ #include #include #include #include #define YY_DECL int rmap_lex_read(RMParms *RP) static char *rmap_yval(void); static int rmap_lex_error; #define IVAL atoi(rmap_yval()) #define FVAL atof(rmap_yval()) /** * Error handler. * * @param s * lex-generated error message. */ static int yyerror(const char *s) { LOG(llevError, "%s: %s\n", s, rmaptext); return -1; } /* Don't have to link with -lfl with this */ /* those functions are unused, not sure of compatibility with Flex versions. */ #define YY_NO_INPUT 1 #line 815 "reader.c" #define INITIAL 0 #define MESSAGE 1 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int rmaplex_destroy (void ); int rmapget_debug (void ); void rmapset_debug (int debug_flag ); YY_EXTRA_TYPE rmapget_extra (void ); void rmapset_extra (YY_EXTRA_TYPE user_defined ); FILE *rmapget_in (void ); void rmapset_in (FILE * in_str ); FILE *rmapget_out (void ); void rmapset_out (FILE * out_str ); int rmapget_leng (void ); char *rmapget_text (void ); int rmapget_lineno (void ); void rmapset_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int rmapwrap (void ); #else extern int rmapwrap (void ); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void ); #else static int input (void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO fwrite( rmaptext, rmapleng, 1, rmapout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( rmapin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( rmapin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, rmapin))==0 && ferror(rmapin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(rmapin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int rmaplex (void); #define YY_DECL int rmaplex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after rmaptext and rmapleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ if ( rmapleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (rmaptext[rmapleng - 1] == '\n'); \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 71 "reader.l" /* Declare some local variables */ rmap_lex_error = 0; #line 1009 "reader.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! rmapin ) rmapin = stdin; if ( ! rmapout ) rmapout = stdout; if ( ! YY_CURRENT_BUFFER ) { rmapensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = rmap_create_buffer(rmapin,YY_BUF_SIZE ); } rmap_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of rmaptext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 358 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 658 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 80 "reader.l" strncpy(RP->wallstyle, rmap_yval(), RM_SIZE); YY_BREAK case 2: YY_RULE_SETUP #line 81 "reader.l" strncpy(RP->floorstyle, rmap_yval(), RM_SIZE); YY_BREAK case 3: YY_RULE_SETUP #line 82 "reader.l" strncpy(RP->monsterstyle, rmap_yval(), RM_SIZE); YY_BREAK case 4: YY_RULE_SETUP #line 83 "reader.l" strncpy(RP->treasurestyle, rmap_yval(), RM_SIZE); YY_BREAK case 5: YY_RULE_SETUP #line 84 "reader.l" strncpy(RP->layoutstyle, rmap_yval(), RM_SIZE); YY_BREAK case 6: YY_RULE_SETUP #line 85 "reader.l" strncpy(RP->doorstyle, rmap_yval(), RM_SIZE); YY_BREAK case 7: YY_RULE_SETUP #line 86 "reader.l" strncpy(RP->decorstyle, rmap_yval(), RM_SIZE); YY_BREAK case 8: YY_RULE_SETUP #line 87 "reader.l" RP->Xsize = IVAL; YY_BREAK case 9: YY_RULE_SETUP #line 88 "reader.l" RP->Ysize = IVAL; YY_BREAK case 10: YY_RULE_SETUP #line 89 "reader.l" RP->expand2x = IVAL; YY_BREAK case 11: YY_RULE_SETUP #line 90 "reader.l" RP->layoutoptions1 = IVAL; YY_BREAK case 12: YY_RULE_SETUP #line 91 "reader.l" RP->layoutoptions2 = IVAL; YY_BREAK case 13: YY_RULE_SETUP #line 92 "reader.l" RP->symmetry = IVAL; YY_BREAK case 14: YY_RULE_SETUP #line 93 "reader.l" RP->difficulty = IVAL; YY_BREAK case 15: YY_RULE_SETUP #line 94 "reader.l" RP->difficulty_increase = FVAL; YY_BREAK case 16: YY_RULE_SETUP #line 95 "reader.l" RP->decoroptions = IVAL; YY_BREAK case 17: YY_RULE_SETUP #line 96 "reader.l" strncpy(RP->exitstyle, rmap_yval(), RM_SIZE); YY_BREAK case 18: YY_RULE_SETUP #line 97 "reader.l" RP->dungeon_level = IVAL; YY_BREAK case 19: YY_RULE_SETUP #line 98 "reader.l" strncpy(RP->dungeon_name, rmap_yval(), RM_SIZE); YY_BREAK case 20: YY_RULE_SETUP #line 99 "reader.l" RP->dungeon_depth = IVAL; YY_BREAK case 21: YY_RULE_SETUP #line 100 "reader.l" strncpy(RP->final_map, rmap_yval(), RM_SIZE); YY_BREAK case 22: YY_RULE_SETUP #line 101 "reader.l" strncpy(RP->final_exit_archetype, rmap_yval(), RM_SIZE); YY_BREAK case 23: YY_RULE_SETUP #line 102 "reader.l" RP-> orientation = IVAL; YY_BREAK case 24: YY_RULE_SETUP #line 103 "reader.l" RP->origin_x = IVAL; YY_BREAK case 25: YY_RULE_SETUP #line 104 "reader.l" RP-> origin_y = IVAL; YY_BREAK case 26: YY_RULE_SETUP #line 105 "reader.l" strncpy(RP->origin_map, rmap_yval(), RM_SIZE); YY_BREAK case 27: YY_RULE_SETUP #line 106 "reader.l" RP->random_seed = IVAL; YY_BREAK case 28: YY_RULE_SETUP #line 107 "reader.l" RP->treasureoptions = IVAL; YY_BREAK case 29: YY_RULE_SETUP #line 108 "reader.l" strncpy(RP->exit_on_final_map, rmap_yval(), RM_SIZE); YY_BREAK case 30: YY_RULE_SETUP #line 109 "reader.l" RP->multiple_floors = IVAL; YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP #line 111 "reader.l" {/* ignore empty lines, newlines we don't do above */} YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP #line 112 "reader.l" { } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(MESSAGE): #line 114 "reader.l" {/* If we got an error, return the error. Otherwise, return that we got EOF */ if (rmap_lex_error != 0) return rmap_lex_error; else return LL_EOF; } YY_BREAK case 33: YY_RULE_SETUP #line 120 "reader.l" { yyerror("Unrecognized string"); rmap_lex_error= -1; } YY_BREAK case 34: YY_RULE_SETUP #line 124 "reader.l" ECHO; YY_BREAK #line 1278 "reader.c" case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed rmapin at a new source and called * rmaplex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = rmapin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( rmapwrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * rmaptext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of rmaplex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ rmaprealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; rmaprestart(rmapin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) rmaprealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 358 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 358 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 357); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ rmaprestart(rmapin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( rmapwrap( ) ) return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve rmaptext */ (yy_hold_char) = *++(yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void rmaprestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ rmapensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = rmap_create_buffer(rmapin,YY_BUF_SIZE ); } rmap_init_buffer(YY_CURRENT_BUFFER,input_file ); rmap_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void rmap_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * rmappop_buffer_state(); * rmappush_buffer_state(new_buffer); */ rmapensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; rmap_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (rmapwrap()) processing, but the only time this flag * is looked at is after rmapwrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void rmap_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; rmapin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE rmap_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) rmapalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in rmap_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) rmapalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in rmap_create_buffer()" ); b->yy_is_our_buffer = 1; rmap_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with rmap_create_buffer() * */ void rmap_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) rmapfree((void *) b->yy_ch_buf ); rmapfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a rmaprestart() or at EOF. */ static void rmap_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; rmap_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then rmap_init_buffer was _probably_ * called from rmaprestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void rmap_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) rmap_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void rmappush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; rmapensure_buffer_stack(); /* This block is copied from rmap_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from rmap_switch_to_buffer. */ rmap_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void rmappop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; rmap_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { rmap_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void rmapensure_buffer_stack (void) { int num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; (yy_buffer_stack) = (struct yy_buffer_state**)rmapalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in rmapensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)rmaprealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in rmapensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE rmap_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) rmapalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in rmap_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; rmap_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to rmaplex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * rmap_scan_bytes() instead. */ YY_BUFFER_STATE rmap_scan_string (yyconst char * yystr ) { return rmap_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to rmaplex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE rmap_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; buf = (char *) rmapalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in rmap_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = rmap_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in rmap_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up rmaptext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ rmaptext[rmapleng] = (yy_hold_char); \ (yy_c_buf_p) = rmaptext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ rmapleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int rmapget_lineno (void) { return rmaplineno; } /** Get the input stream. * */ FILE *rmapget_in (void) { return rmapin; } /** Get the output stream. * */ FILE *rmapget_out (void) { return rmapout; } /** Get the length of the current token. * */ int rmapget_leng (void) { return rmapleng; } /** Get the current token. * */ char *rmapget_text (void) { return rmaptext; } /** Set the current line number. * @param line_number * */ void rmapset_lineno (int line_number ) { rmaplineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see rmap_switch_to_buffer */ void rmapset_in (FILE * in_str ) { rmapin = in_str ; } void rmapset_out (FILE * out_str ) { rmapout = out_str ; } int rmapget_debug (void) { return rmap_flex_debug; } void rmapset_debug (int bdebug ) { rmap_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from rmaplex_destroy(), so don't allocate here. */ (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT rmapin = stdin; rmapout = stdout; #else rmapin = (FILE *) 0; rmapout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * rmaplex_init() */ return 0; } /* rmaplex_destroy is for both reentrant and non-reentrant scanners. */ int rmaplex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ rmap_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; rmappop_buffer_state(); } /* Destroy the stack itself. */ rmapfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * rmaplex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *rmapalloc (yy_size_t size ) { return (void *) malloc( size ); } void *rmaprealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } void rmapfree (void * ptr ) { free( (char *) ptr ); /* see rmaprealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 124 "reader.l" /* Our save file syntax is very simple, so we can use a very simple * processing mechanism here instead using something like bison * This skips over the space and returns the value, or "" if no value * is found. */ static char *rmap_yval(void) { static char em[] = ""; char *cp; cp = strchr(rmaptext, ' '); if (cp) return cp+1; else return em; } int load_parameters(FILE *fp, int bufstate, RMParms *RP) { int retval; char inbuf[MAX_BUF]; if (bufstate == LO_NEWFILE || bufstate == LO_NOREAD) { rmap_delete_buffer(YY_CURRENT_BUFFER); rmap_switch_to_buffer(rmap_create_buffer(fp,YY_BUF_SIZE)); if (bufstate == LO_NOREAD) return LL_NORMAL; } if (bufstate == LO_LINEMODE) { YY_BUFFER_STATE yybufstate; while (fgets(inbuf, MAX_BUF-3, fp)) { yybufstate = rmap_scan_string(inbuf); retval = rmap_lex_read(RP); rmap_delete_buffer(yybufstate); if (retval == LL_NORMAL) return retval; } return LL_EOF; } retval = rmap_lex_read(RP); /* LOG(llevDebug, " load completed, object=%s\n", op->name);*/ return retval; } /* This takes a buffer, scans it for variables, and sets those variables * as appropriate in op. * * This function appears to be used in only 2 places - in crossedit to * override values and in c_wiz to mutate values. */ int set_random_map_variable(RMParms *rp, const char *buf) { YY_BUFFER_STATE yybufstate; int retval; yybufstate = rmap_scan_string(buf); retval = rmap_lex_read(rp); rmap_delete_buffer(yybufstate); return retval; } crossfire-1.70.0/random_maps/random_map.c0000644000014500000120000005613611731300530015267 00000000000000/* * static char *rcsid_random_map_c = * "$Id: random_map.c 14924 2011-07-30 20:46:27Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * random map generation main routines. * @todo * explain process, layout signs (# C < > ) and such. Use constants/defines for spot types. */ #include #include #include #include #include #include #include #include #include /** * Dumps specified layout using printf(). * @param layout * layout to dump. * @param RP * layout parameters. */ void dump_layout(char **layout, RMParms *RP) { int i, j; for (i = 0; i < RP->Xsize; i++) { for (j = 0; j < RP->Ysize; j++) { if (layout[i][j] == 0) layout[i][j] = ' '; printf("%c", layout[i][j]); if (layout[i][j] == ' ') layout[i][j] = 0; } printf("\n"); } printf("\n"); } /** * Main random map routine. Generates a random map based on specified parameters. * @param OutFileName * the path the map should have. * @param RP * parameters for generation. * @param use_layout * if not NULL, this should be a suitable layout. * @return * Crossfire map, which should be free()d by caller. */ mapstruct *generate_random_map(const char *OutFileName, RMParms *RP, char **use_layout) { char **layout, *buf; mapstruct *theMap; int i; /* pick a random seed, or use the one from the input file */ if (RP->random_seed == 0) RP->random_seed = time(NULL); SRANDOM(RP->random_seed); buf = stringbuffer_finish(write_map_parameters_to_string(RP)); if (RP->difficulty == 0) { RP->difficulty = RP->dungeon_level; /* use this instead of a map difficulty */ if (RP->difficulty_increase > 0.001) { RP->difficulty = (int)((float)RP->dungeon_level*RP->difficulty_increase); if (RP->difficulty < 1) RP->difficulty = 1; } } else RP->difficulty_given = 1; if (!use_layout) { if (RP->Xsize < MIN_RANDOM_MAP_SIZE) RP->Xsize = MIN_RANDOM_MAP_SIZE+RANDOM()%25+5; if (RP->Ysize < MIN_RANDOM_MAP_SIZE) RP->Ysize = MIN_RANDOM_MAP_SIZE+RANDOM()%25+5; if (RP->expand2x > 0) { RP->Xsize /= 2; RP->Ysize /= 2; } layout = layoutgen(RP); #ifdef RMAP_DEBUG dump_layout(layout, RP); #endif /* rotate the layout randomly */ layout = rotate_layout(layout, RANDOM()%4, RP); #ifdef RMAP_DEBUG dump_layout(layout, RP); #endif } else layout = use_layout; /* increment these for the current map */ RP->dungeon_level += 1; /* allocate the map and set the floor */ theMap = make_map_floor(layout, RP->floorstyle, RP); /* set the name of the map. */ strncpy(theMap->path, OutFileName, sizeof(theMap->path)); /* set region */ theMap->region = RP->region; /* create walls unless the wallstyle is "none" */ if (strcmp(RP->wallstyle, "none")) { make_map_walls(theMap, layout, RP->wallstyle, RP); /* place doors unless doorstyle or wallstyle is "none"*/ if (strcmp(RP->doorstyle, "none")) put_doors(theMap, layout, RP->doorstyle, RP); } /* create exits unless the exitstyle is "none" */ if (strcmp(RP->exitstyle, "none")) place_exits(theMap, layout, RP->exitstyle, RP->orientation, RP); place_specials_in_map(theMap, layout, RP); /* create monsters unless the monsterstyle is "none" */ if (strcmp(RP->monsterstyle, "none")) place_monsters(theMap, RP->monsterstyle, RP->difficulty, RP); /* treasures needs to have a proper difficulty set for the map. */ theMap->difficulty = calculate_difficulty(theMap); /* create treasure unless the treasurestyle is "none" */ if (strcmp(RP->treasurestyle, "none")) place_treasure(theMap, layout, RP->treasurestyle, RP->treasureoptions, RP); /* create decor unless the decorstyle is "none" */ if (strcmp(RP->decorstyle, "none")) put_decor(theMap, layout, RP->decorstyle, RP->decoroptions, RP); /* generate treasures, etc. */ apply_auto_fix(theMap); unblock_exits(theMap, layout, RP); /* free the layout unless it was given by caller */ if (!use_layout) { for (i = 0; i < RP->Xsize; i++) free(layout[i]); free(layout); } theMap->msg = buf; /* We set the reset time at this, so town portal works on the map. */ gettimeofday(&(theMap->last_reset_time), NULL); return theMap; } /** * This function builds the actual layout. * Selects the layout based on parameters and gives it whatever * arguments it needs. * @param RP * random map parameters. * @return * layout, must be free()d be caller. * @todo * use an array for name/style mapping. Refactor to call only one function for each * (will make it easier to override later on). */ char **layoutgen(RMParms *RP) { char **maze = NULL; int oxsize = RP->Xsize, oysize = RP->Ysize; if (RP->symmetry == RANDOM_SYM) RP->symmetry_used = (RANDOM()%(XY_SYM))+1; else RP->symmetry_used = RP->symmetry; if (RP->symmetry_used == Y_SYM || RP->symmetry_used == XY_SYM) RP->Ysize = RP->Ysize/2+1; if (RP->symmetry_used == X_SYM || RP->symmetry_used == XY_SYM) RP->Xsize = RP->Xsize/2+1; if (RP->Xsize < MIN_RANDOM_MAP_SIZE) RP->Xsize = MIN_RANDOM_MAP_SIZE+RANDOM()%5; if (RP->Ysize < MIN_RANDOM_MAP_SIZE) RP->Ysize = MIN_RANDOM_MAP_SIZE+RANDOM()%5; RP->map_layout_style = 0; /* Redo this - there was a lot of redundant code of checking for preset * layout style and then random layout style. Instead, figure out * the numeric layoutstyle, so there is only one area that actually * calls the code to make the maps. */ if (strstr(RP->layoutstyle, "onion")) { RP->map_layout_style = ONION_LAYOUT; } if (strstr(RP->layoutstyle, "maze")) { RP->map_layout_style = MAZE_LAYOUT; } if (strstr(RP->layoutstyle, "spiral")) { RP->map_layout_style = SPIRAL_LAYOUT; } if (strstr(RP->layoutstyle, "rogue")) { RP->map_layout_style = ROGUELIKE_LAYOUT; } if (strstr(RP->layoutstyle, "snake")) { RP->map_layout_style = SNAKE_LAYOUT; } if (strstr(RP->layoutstyle, "squarespiral")) { RP->map_layout_style = SQUARE_SPIRAL_LAYOUT; } /* No style found - choose one ranomdly */ if (RP->map_layout_style == 0) { RP->map_layout_style = (RANDOM()%NROFLAYOUTS)+1; } switch (RP->map_layout_style) { case ONION_LAYOUT: maze = map_gen_onion(RP->Xsize, RP->Ysize, RP->layoutoptions1, RP->layoutoptions2); if (!(RANDOM()%3) && !(RP->layoutoptions1&OPT_WALLS_ONLY)) roomify_layout(maze, RP); break; case MAZE_LAYOUT: maze = maze_gen(RP->Xsize, RP->Ysize, RANDOM()%2); if (!(RANDOM()%2)) doorify_layout(maze, RP); break; case SPIRAL_LAYOUT: maze = map_gen_spiral(RP->Xsize, RP->Ysize, RP->layoutoptions1); if (!(RANDOM()%2)) doorify_layout(maze, RP); break; case ROGUELIKE_LAYOUT: /* Don't put symmetry in rogue maps. There isn't much reason to * do so in the first place (doesn't make it any more interesting), * but more importantly, the symmetry code presumes we are symmetrizing * spirals, or maps with lots of passages - making a symmetric rogue * map fails because its likely that the passages the symmetry process * creates may not connect the rooms. */ RP->symmetry_used = NO_SYM; RP->Ysize = oysize; RP->Xsize = oxsize; maze = roguelike_layout_gen(RP->Xsize, RP->Ysize, RP->layoutoptions1); /* no doorifying... done already */ break; case SNAKE_LAYOUT: maze = make_snake_layout(RP->Xsize, RP->Ysize); if (RANDOM()%2) roomify_layout(maze, RP); break; case SQUARE_SPIRAL_LAYOUT: maze = make_square_spiral_layout(RP->Xsize, RP->Ysize); if (RANDOM()%2) roomify_layout(maze, RP); break; } maze = symmetrize_layout(maze, RP->symmetry_used, RP); #ifdef RMAP_DEBUG dump_layout(maze, RP); #endif if (RP->expand2x) { maze = expand2x(maze, RP->Xsize, RP->Ysize); RP->Xsize = RP->Xsize*2-1; RP->Ysize = RP->Ysize*2-1; } return maze; } /** * Takes a map and makes it symmetric: adjusts Xsize and * Ysize to produce a symmetric map. * @param maze * layout to symmetrize. Will be free()d by this function. * @param sym * how to make symetric, a @ref SYM_xxx value. * @param RP * map parameters. * @return * new layout, must be free()d by caller. */ char **symmetrize_layout(char **maze, int sym, RMParms *RP) { int i, j; char **sym_maze; int Xsize_orig, Ysize_orig; Xsize_orig = RP->Xsize; Ysize_orig = RP->Ysize; RP->symmetry_used = sym; /* tell everyone else what sort of symmetry is used.*/ if (sym == NO_SYM) { RP->Xsize = Xsize_orig; RP->Ysize = Ysize_orig; return maze; } /* pick new sizes */ RP->Xsize = ((sym == X_SYM || sym == XY_SYM) ? RP->Xsize*2-3 : RP->Xsize); RP->Ysize = ((sym == Y_SYM || sym == XY_SYM) ? RP->Ysize*2-3 : RP->Ysize); sym_maze = (char **)calloc(sizeof(char *), RP->Xsize); for (i = 0; i < RP->Xsize; i++) sym_maze[i] = (char *)calloc(sizeof(char), RP->Ysize); if (sym == X_SYM) for (i = 0; i < RP->Xsize/2+1; i++) for (j = 0; j < RP->Ysize; j++) { sym_maze[i][j] = maze[i][j]; sym_maze[RP->Xsize-i-1][j] = maze[i][j]; }; if (sym == Y_SYM) for (i = 0; i < RP->Xsize; i++) for (j = 0; j < RP->Ysize/2+1; j++) { sym_maze[i][j] = maze[i][j]; sym_maze[i][RP->Ysize-j-1] = maze[i][j]; } if (sym == XY_SYM) for (i = 0; i < RP->Xsize/2+1; i++) for (j = 0; j < RP->Ysize/2+1; j++) { sym_maze[i][j] = maze[i][j]; sym_maze[i][RP->Ysize-j-1] = maze[i][j]; sym_maze[RP->Xsize-i-1][j] = maze[i][j]; sym_maze[RP->Xsize-i-1][RP->Ysize-j-1] = maze[i][j]; } /* delete the old maze */ for (i = 0; i < Xsize_orig; i++) free(maze[i]); free(maze); /* reconnect disjointed spirals */ if (RP->map_layout_style == SPIRAL_LAYOUT) connect_spirals(RP->Xsize, RP->Ysize, sym, sym_maze); /* reconnect disjointed nethackmazes: the routine for * spirals will do the trick? */ if (RP->map_layout_style == ROGUELIKE_LAYOUT) connect_spirals(RP->Xsize, RP->Ysize, sym, sym_maze); return sym_maze; } /** * Takes a map and rotates it. This completes the * onion layouts, making them possibly centered on any wall. * It'll modify Xsize and Ysize if they're swapped. * @param maze * layout to rotate, will be free()d by this function. * @param rotation * how to rotate: * - 0: don't do anything. * - 1: rotate 90 deg clockwise. * - 2: rotate 180 deg. * - 3: rotate 90 deg counter-clockwise. * @param RP * random map parameters. * @return * new layout, must be free()d be caller. NULL if invalid rotation. */ char **rotate_layout(char **maze, int rotation, RMParms *RP) { char **new_maze; int i, j; switch (rotation) { case 0: return maze; break; case 2: { /* a reflection */ char *new = malloc(sizeof(char)*RP->Xsize*RP->Ysize); for (i = 0; i < RP->Xsize; i++) { /* make a copy */ for (j = 0; j < RP->Ysize; j++) { new[i*RP->Ysize+j] = maze[i][j]; } } for (i = 0; i < RP->Xsize; i++) { /* copy a reflection back */ for (j = 0; j < RP->Ysize; j++) { maze[i][j] = new[(RP->Xsize-i-1)*RP->Ysize+RP->Ysize-j-1]; } } free(new); return maze; break; } case 1: case 3: { int swap; new_maze = (char **)calloc(sizeof(char *), RP->Ysize); for (i = 0; i < RP->Ysize; i++) { new_maze[i] = (char *)calloc(sizeof(char), RP->Xsize); } if (rotation == 1) /* swap x and y */ for (i = 0; i < RP->Xsize; i++) for (j = 0; j < RP->Ysize; j++) new_maze[j][i] = maze[i][j]; if (rotation == 3) { /* swap x and y */ for (i = 0; i < RP->Xsize; i++) for (j = 0; j < RP->Ysize; j++) new_maze[j][i] = maze[RP->Xsize-i-1][RP->Ysize-j-1]; } /* delete the old layout */ for (i = 0; i < RP->Xsize; i++) free(maze[i]); free(maze); swap = RP->Ysize; RP->Ysize = RP->Xsize; RP->Xsize = swap; return new_maze; break; } } return NULL; } /** * Take a layout and make some rooms in it. Works best on onions. * @param maze * layout to alter. * @param RP * map parameters. */ void roomify_layout(char **maze, RMParms *RP) { int tries = RP->Xsize*RP->Ysize/30; int ti; for (ti = 0; ti < tries; ti++) { int dx, dy; /* starting location for looking at creating a door */ int cx, cy; /* results of checking on creating walls. */ dx = RANDOM()%RP->Xsize; dy = RANDOM()%RP->Ysize; cx = can_make_wall(maze, dx, dy, 0, RP); /* horizontal */ cy = can_make_wall(maze, dx, dy, 1, RP); /* vertical */ if (cx == -1) { if (cy != -1) make_wall(maze, dx, dy, 1); continue; } if (cy == -1) { make_wall(maze, dx, dy, 0); continue; } if (cx < cy) make_wall(maze, dx, dy, 0); else make_wall(maze, dx, dy, 1); } } /** * Checks the layout to see if we can stick a horizontal (dir = 0) wall * (or vertical, dir == 1) here which ends up on other walls sensibly. * @param maze * layout. * @param dx * @param dy * coordinates to check * @param dir * direction: * - 0: horizontally. * - 1: vertically. * @param RP * random map parameters. * @return * -1 if wall can't be made, possibly wall length else. */ int can_make_wall(char **maze, int dx, int dy, int dir, RMParms *RP) { int i1; int length = 0; /* dont make walls if we're on the edge. */ if (dx == 0 || dx == (RP->Xsize-1) || dy == 0 || dy == (RP->Ysize-1)) return -1; /* don't make walls if we're ON a wall. */ if (maze[dx][dy] != 0) return -1; if (dir == 0) { /* horizontal */ int y = dy; for (i1 = dx-1; i1 > 0; i1--) { int sindex = surround_flag2(maze, i1, y, RP); if (sindex == 1) break; if (sindex != 0) return -1; /* can't make horiz. wall here */ if (maze[i1][y] != 0) return -1; /* can't make horiz. wall here */ length++; } for (i1 = dx+1; i1 < RP->Xsize-1; i1++) { int sindex = surround_flag2(maze, i1, y, RP); if (sindex == 2) break; if (sindex != 0) return -1; /* can't make horiz. wall here */ if (maze[i1][y] != 0) return -1; /* can't make horiz. wall here */ length++; } return length; } else { /* vertical */ int x = dx; for (i1 = dy-1; i1 > 0; i1--) { int sindex = surround_flag2(maze, x, i1, RP); if (sindex == 4) break; if (sindex != 0) return -1; /* can't make vert. wall here */ if (maze[x][i1] != 0) return -1; /* can't make horiz. wall here */ length++; } for (i1 = dy+1; i1 < RP->Ysize-1; i1++) { int sindex = surround_flag2(maze, x, i1, RP); if (sindex == 8) break; if (sindex != 0) return -1; /* can't make verti. wall here */ if (maze[x][i1] != 0) return -1; /* can't make horiz. wall here */ length++; } return length; } } /** * Cuts the layout horizontally or vertically by a wall with a door. * @param maze * layout. * @param x * @param y * where to put the door. * @param dir * wall direction: * - 0: horizontally. * - 1: vertically. * @return * 0 */ int make_wall(char **maze, int x, int y, int dir) { maze[x][y] = 'D'; /* mark a door */ switch (dir) { case 0: { /* horizontal */ int i1; for (i1 = x-1; maze[i1][y] == 0; i1--) maze[i1][y] = '#'; for (i1 = x+1; maze[i1][y] == 0; i1++) maze[i1][y] = '#'; break; } case 1: { /* vertical */ int i1; for (i1 = y-1; maze[x][i1] == 0; i1--) maze[x][i1] = '#'; for (i1 = y+1; maze[x][i1] == 0; i1++) maze[x][i1] = '#'; break; } } return 0; } /** * Puts doors at appropriate locations in a layout. * @param maze * layout. * @param RP * map parameters. */ void doorify_layout(char **maze, RMParms *RP) { int ndoors = RP->Xsize*RP->Ysize/60; /* reasonable number of doors. */ int *doorlist_x; int *doorlist_y; int doorlocs = 0; /* # of available doorlocations */ int i, j; doorlist_x = malloc(sizeof(int)*RP->Xsize*RP->Ysize); doorlist_y = malloc(sizeof(int)*RP->Xsize*RP->Ysize); /* make a list of possible door locations */ for (i = 1; i < RP->Xsize-1; i++) for (j = 1; j < RP->Ysize-1; j++) { int sindex = surround_flag(maze, i, j, RP); if (sindex == 3 || sindex == 12) { /* these are possible door sindex*/ doorlist_x[doorlocs] = i; doorlist_y[doorlocs] = j; doorlocs++; } } while (ndoors > 0 && doorlocs > 0) { int di; int sindex; di = RANDOM()%doorlocs; i = doorlist_x[di]; j = doorlist_y[di]; sindex = surround_flag(maze, i, j, RP); if (sindex == 3 || sindex == 12) { /* these are possible door sindex*/ maze[i][j] = 'D'; ndoors--; } /* reduce the size of the list */ doorlocs--; doorlist_x[di] = doorlist_x[doorlocs]; doorlist_y[di] = doorlist_y[doorlocs]; } free(doorlist_x); free(doorlist_y); } /** * Creates a suitable message for exit from RP. * @param RP * parameters to convert to message. * @return * new StringBuffer containing the message. */ StringBuffer *write_map_parameters_to_string(RMParms *RP) { StringBuffer *buf; buf = stringbuffer_new(); stringbuffer_append_printf(buf, "xsize %d\nysize %d\n", RP->Xsize, RP->Ysize); if (RP->wallstyle[0]) { stringbuffer_append_printf(buf, "wallstyle %s\n", RP->wallstyle); } if (RP->floorstyle[0]) { stringbuffer_append_printf(buf, "floorstyle %s\n", RP->floorstyle); } if (RP->monsterstyle[0]) { stringbuffer_append_printf(buf, "monsterstyle %s\n", RP->monsterstyle); } if (RP->treasurestyle[0]) { stringbuffer_append_printf(buf, "treasurestyle %s\n", RP->treasurestyle); } if (RP->layoutstyle[0]) { stringbuffer_append_printf(buf, "layoutstyle %s\n", RP->layoutstyle); } if (RP->decorstyle[0]) { stringbuffer_append_printf(buf, "decorstyle %s\n", RP->decorstyle); } if (RP->doorstyle[0]) { stringbuffer_append_printf(buf, "doorstyle %s\n", RP->doorstyle); } if (RP->exitstyle[0]) { stringbuffer_append_printf(buf, "exitstyle %s\n", RP->exitstyle); } if (RP->final_map[0]) { stringbuffer_append_printf(buf, "final_map %s\n", RP->final_map); } if (RP->final_exit_archetype[0]) { stringbuffer_append_printf(buf, "final_exit_archetype %s\n", RP->final_exit_archetype); } if (RP->exit_on_final_map[0]) { stringbuffer_append_printf(buf, "exit_on_final_map %s\n", RP->exit_on_final_map); } if (RP->this_map[0]) { stringbuffer_append_printf(buf, "origin_map %s\n", RP->this_map); } if (RP->expand2x) { stringbuffer_append_printf(buf, "expand2x %d\n", RP->expand2x); } if (RP->layoutoptions1) { stringbuffer_append_printf(buf, "layoutoptions1 %d\n", RP->layoutoptions1); } if (RP->layoutoptions2) { stringbuffer_append_printf(buf, "layoutoptions2 %d\n", RP->layoutoptions2); } if (RP->symmetry) { stringbuffer_append_printf(buf, "symmetry %d\n", RP->symmetry); } if (RP->difficulty && RP->difficulty_given) { stringbuffer_append_printf(buf, "difficulty %d\n", RP->difficulty); } if (RP->difficulty_increase != 1.0) { stringbuffer_append_printf(buf, "difficulty_increase %f\n", RP->difficulty_increase); } stringbuffer_append_printf(buf, "dungeon_level %d\n", RP->dungeon_level); if (RP->dungeon_depth) { stringbuffer_append_printf(buf, "dungeon_depth %d\n", RP->dungeon_depth); } if (RP->dungeon_name[0]) { stringbuffer_append_printf(buf, "dungeon_name %s\n", RP->dungeon_name); } if (RP->decoroptions) { stringbuffer_append_printf(buf, "decoroptions %d\n", RP->decoroptions); } if (RP->orientation) { stringbuffer_append_printf(buf, "orientation %d\n", RP->orientation); } if (RP->origin_x) { stringbuffer_append_printf(buf, "origin_x %d\n", RP->origin_x); } if (RP->origin_y) { stringbuffer_append_printf(buf, "origin_y %d\n", RP->origin_y); } if (RP->random_seed) { /* Add one so that the next map is a bit different */ stringbuffer_append_printf(buf, "random_seed %d\n", RP->random_seed+1); } if (RP->treasureoptions) { stringbuffer_append_printf(buf, "treasureoptions %d\n", RP->treasureoptions); } if (RP->multiple_floors) { stringbuffer_append_printf(buf, "multiple_floors %d\n", RP->multiple_floors); } return buf; } crossfire-1.70.0/random_maps/rogue_layout.c0000644000014500000120000002574611731300530015673 00000000000000/** * @file * Rogue/nethack-like layout generation */ #include #include #include typedef struct { int x; int y; /* coordinates of room centers */ int sx; int sy; /* sizes */ int ax, ay, zx, zy; /* coordinates of extrema of the rectangle */ int rtype; /* circle or rectangular */ } Room; static int roguelike_place_room(Room *Rooms, int xsize, int ysize, int nrooms); static void roguelike_make_rooms(Room *Rooms, char **maze, int options); static void roguelike_link_rooms(Room *Rooms, char **maze, int xsize, int ysize); /** * Checks free spots around a spot. * @param layout * map layout. * @param i * @param j * coordinates to check. * @param Xsize * @param Ysize * size of the layout. * @return * combination of the following values: * - 1 = free space to left, * - 2 = free space to right, * - 4 = free space above * - 8 = free space below * @todo * there is an equivalent function in another layout, merge them together. */ int surround_check(char **layout, int i, int j, int Xsize, int Ysize) { int surround_index = 0; if ((i > 0) && (layout[i-1][j] != 0 && layout[i-1][j] != '.')) surround_index += 1; if ((i < Xsize-1) && (layout[i+1][j] != 0 && layout[i+1][j] != '.')) surround_index += 2; if ((j > 0) && (layout[i][j-1] != 0 && layout[i][j-1] != '.')) surround_index += 4; if ((j < Ysize-1) && (layout[i][j+1] != 0 && layout[i][j+1] != '.')) surround_index += 8; return surround_index; } /** * Actually make the rogue layout. We work by a reduction process: * first we make everything a wall, then we remove areas to make rooms * @param xsize * @param ysize * wanted layout size. * @param options * 2 to have circular rooms, 1 for rectanglar ones, another value for random choice. * @return * generated layout. */ char **roguelike_layout_gen(int xsize, int ysize, int options) { int i, j; Room *Rooms = NULL; Room *walk; int nrooms = 0; int tries = 0; /* allocate that array, write walls everywhere up */ char **maze = (char **)malloc(sizeof(char *)*xsize); for (i = 0; i < xsize; i++) { maze[i] = (char *)malloc(sizeof(char)*ysize); for (j = 0; j < ysize; j++) maze[i][j] = '#'; } /* minimum room size is basically 5x5: if xsize/ysize is less than 3x that then hollow things out, stick in a stairsup and stairs down, and exit */ if (xsize < 11 || ysize < 11) { for (i = 1; i < xsize-1; i++) for (j = 1; j < ysize-1; j++) maze[i][j] = 0; maze[(xsize-1)/2][(ysize-1)/2] = '>'; maze[(xsize-1)/2][(ysize-1)/2+1] = '<'; return maze; } /* decide on the number of rooms */ nrooms = RANDOM()%10+6; Rooms = (Room *)calloc(nrooms+1, sizeof(Room)); /* actually place the rooms */ i = 0; while (tries < 450 && i < nrooms) { /* try to place the room */ if (!roguelike_place_room(Rooms, xsize, ysize, nrooms)) tries++; else i++; } if (i == 0) { /* no can do! */ for (i = 1; i < xsize-1; i++) for (j = 1; j < ysize-1; j++) maze[i][j] = 0; maze[(xsize-1)/2][(ysize-1)/2] = '>'; maze[(xsize-1)/2][(ysize-1)/2+1] = '<'; free(Rooms); return maze; } /* erase the areas occupied by the rooms */ roguelike_make_rooms(Rooms, maze, options); roguelike_link_rooms(Rooms, maze, xsize, ysize); /* put in the stairs */ maze[Rooms->x][Rooms->y] = '<'; /* get the last one */ for (walk = Rooms; walk->x != 0; walk++) ; /* back up one */ walk--; if (walk == Rooms) { /* In this case, there is only a single room. We don't want to * clobber are up exit (above) with a down exit, so put the * other exit one space up/down, depending which is a space * and not a wall. */ if (maze[walk->x][walk->y+1] == '.') maze[walk->x][walk->y+1] = '>'; else maze[walk->x][walk->y-1] = '>'; } else maze[walk->x][walk->y] = '>'; /* convert all the '.' to 0, we're through with the '.' */ for (i = 0; i < xsize; i++) for (j = 0; j < ysize; j++) { if (maze[i][j] == '.') maze[i][j] = 0; if (maze[i][j] == 'D') { /* remove bad door. */ int si = surround_check(maze, i, j, xsize, ysize); if (si != 3 && si != 12) { maze[i][j] = 0; /* back up and recheck any nearby doors */ i = 0; j = 0; } } } free(Rooms); return maze; } /** * Place a room in the layout. * @param Rooms * list of existing rooms, new room will be added to it. * @param xsize * @param ysize * layout size. * @param nrooms * wanted number of room, used to determine size. * @return * 0 if no room could be generated, 1 else. */ static int roguelike_place_room(Room *Rooms, int xsize, int ysize, int nrooms) { int tx, ty; /* trial center locations */ int sx, sy; /* trial sizes */ int ax, ay; /* min coords of rect */ int zx, zy; /* max coords of rect */ int x_basesize; int y_basesize; Room *walk; /* decide on the base x and y sizes */ x_basesize = xsize/isqrt(nrooms); y_basesize = ysize/isqrt(nrooms); tx = RANDOM()%xsize; ty = RANDOM()%ysize; /* generate a distribution of sizes centered about basesize */ sx = (RANDOM()%x_basesize)+(RANDOM()%x_basesize)+(RANDOM()%x_basesize); sy = (RANDOM()%y_basesize)+(RANDOM()%y_basesize)+(RANDOM()%y_basesize); sy = (int)(sy*.5); /* renormalize */ /* find the corners */ ax = tx-sx/2; zx = tx+sx/2+sx%2; ay = ty-sy/2; zy = ty+sy/2+sy%2; /* check to see if it's in the map */ if (zx > xsize-1 || ax < 1) return 0; if (zy > ysize-1 || ay < 1) return 0; /* no small fish */ if (sx < 3 || sy < 3) return 0; /* check overlap with existing rooms */ for (walk = Rooms; walk->x != 0; walk++) { int dx = abs(tx-walk->x); int dy = abs(ty-walk->y); if ((dx < (walk->sx+sx)/2+2) && (dy < (walk->sy+sy)/2+2)) return 0; } /* if we've got here, presumably the room is OK. */ /* get a pointer to the first free room */ for (walk = Rooms; walk->x != 0; walk++) ; walk->x = tx; walk->y = ty; walk->sx = sx; walk->sy = sy; walk->ax = ax; walk->ay = ay; walk->zx = zx; walk->zy = zy; return 1; /* success */ } /** * Write all the rooms into the maze. * @param Rooms * list of rooms to write. * @param maze * where to write to. * @param options * 2 to have circular rooms, 1 for rectanglar ones, another value for random choice. */ static void roguelike_make_rooms(Room *Rooms, char **maze, int options) { int making_circle = 0; int i, j; int R; Room *walk; for (walk = Rooms; walk->x != 0; walk++) { /* first decide what shape to make */ switch (options) { case 1: making_circle = 0; break; case 2: making_circle = 1; break; default: making_circle = ((RANDOM()%3 == 0) ? 1 : 0); break; } if (walk->sx < walk->sy) R = walk->sx/2; else R = walk->sy/2; /* enscribe a rectangle or a circle */ for (i = walk->ax; i < walk->zx; i++) for (j = walk->ay; j < walk->zy; j++) { if (!making_circle || ((int)(0.5+hypot(walk->x-i, walk->y-j))) <= R) maze[i][j] = '.'; } } } /** * Link generated rooms with corridors. * @param Rooms * room list. * @param maze * maze. * @param xsize * @param ysize * maze size. */ static void roguelike_link_rooms(Room *Rooms, char **maze, int xsize, int ysize) { Room *walk; int i, j; /* link each room to the previous room */ if (Rooms[1].x == 0) return; /* only 1 room */ for (walk = Rooms+1; walk->x != 0; walk++) { int x1 = walk->x; int y1 = walk->y; int x2 = (walk-1)->x; int y2 = (walk-1)->y; int in_wall = 0; if (RANDOM()%2) { /* connect in x direction first */ /* horizontal connect */ /* swap (x1,y1) (x2,y2) if necessary */ if (x2 < x1) { int tx = x2, ty = y2; x2 = x1; y2 = y1; x1 = tx; y1 = ty; } j = y1; for (i = x1; i < x2; i++) { if (in_wall == 0 && maze[i][j] == '#') { in_wall = 1; maze[i][j] = 'D'; } else if (in_wall && maze[i][j] == '.') { in_wall = 0; maze[i-1][j] = 'D'; } else if (maze[i][j] != 'D' && maze[i][j] != '.') maze[i][j] = 0; } j = MIN(y1, y2); if (maze[i][j] == '.') in_wall = 0; if (maze[i][j] == 0 || maze[i][j] == '#') in_wall = 1; for (/* j set already */; j < MAX(y1, y2); j++) { if (in_wall == 0 && maze[i][j] == '#') { in_wall = 1; maze[i][j] = 'D'; } else if (in_wall && maze[i][j] == '.') { in_wall = 0; maze[i][j-1] = 'D'; } else if (maze[i][j] != 'D' && maze[i][j] != '.') maze[i][j] = 0; } } else { /* connect in y direction first */ in_wall = 0; /* swap if necessary */ if (y2 < y1) { int tx = x2, ty = y2; x2 = x1; y2 = y1; x1 = tx; y1 = ty; } i = x1; /* vertical connect */ for (j = y1; j < y2; j++) { if (in_wall == 0 && maze[i][j] == '#') { in_wall = 1; maze[i][j] = 'D'; } else if (in_wall && maze[i][j] == '.') { in_wall = 0; maze[i][j-1] = 'D'; } else if (maze[i][j] != 'D' && maze[i][j] != '.') maze[i][j] = 0; } i = MIN(x1, x2); if (maze[i][j] == '.') in_wall = 0; if (maze[i][j] == 0 || maze[i][j] == '#') in_wall = 1; for (/* i set already */; i < MAX(x1, x2); i++) { if (in_wall == 0 && maze[i][j] == '#') { in_wall = 1; maze[i][j] = 'D'; } else if (in_wall && maze[i][j] == '.') { in_wall = 0; maze[i-1][j] = 'D'; } else if (maze[i][j] != 'D' && maze[i][j] != '.') maze[i][j] = 0; } } } } crossfire-1.70.0/random_maps/floor.c0000644000014500000120000000731211731300530014263 00000000000000/* * static char *rcsid_floor_c = * "$Id: floor.c 14925 2011-07-30 21:01:42Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Floor handling. */ #include #include #include /** * Checks if the tile 'propagates' the floor. * @param item * tile to check. * @return * 1 if this tile should propagate, 0 else. */ static int can_propagate(char item) { return (item == '\0' || item == '<' || item == '>') ? 1 : 0; } /** * Put a floor at specified location, and then to adjacent tiles if applicable. * @param map * where to put the floor. * @param layout * layout that was used to generate the map. * @param x * @param y * coordinates. * @param floor_arch * what floor to use. */ static void put_floor(mapstruct *map, char **layout, int x, int y, object *floor_arch) { int dx, dy; object *floor; floor = arch_to_object(floor_arch->arch); object_insert_in_map_at(floor, map, floor, INS_NO_MERGE|INS_NO_WALK_ON, x, y); for (dx = -1; dx < 2; dx++) { for (dy = -1; dy < 2; dy++) { if (GET_MAP_OB(map, x+dx, y+dy) == NULL && can_propagate(layout[x+dx][y+dy])) put_floor(map, layout, x+dx, y+dy, floor_arch); } } } /** * Creates the Crossfire mapstruct object from the layout, and adds the floor. * @param layout * generated layout. * @param floorstyle * floor style. Can be NULL, in which case a random one is chosen. * @param RP * parameters of the random map. * @return * Crossfire map. */ mapstruct *make_map_floor(char **layout, char *floorstyle, RMParms *RP) { char styledirname[256]; mapstruct *style_map = NULL; object *the_floor; mapstruct *newMap = NULL; int x, y; /* allocate the map */ newMap = get_empty_map(RP->Xsize, RP->Ysize); /* get the style map */ snprintf(styledirname, sizeof(styledirname), "%s", "/styles/floorstyles"); style_map = find_style(styledirname, floorstyle, -1); if (style_map == NULL) return newMap; if (RP->multiple_floors) { for (x = 0; x < RP->Xsize; x++) { for (y = 0; y < RP->Ysize; y++) { if (GET_MAP_OB(newMap, x, y) == NULL && layout[x][y] == '\0') put_floor(newMap, layout, x, y, pick_random_object(style_map)); } } } /* fill up the map with the given floor style */ if ((the_floor = pick_random_object(style_map)) != NULL) { object *thisfloor; for (x = 0; x < RP->Xsize; x++) for (y = 0; y < RP->Ysize; y++) { if (GET_MAP_OB(newMap, x, y) != NULL) continue; thisfloor = arch_to_object(the_floor->arch); object_insert_in_map_at(thisfloor, newMap, thisfloor, INS_NO_MERGE|INS_NO_WALK_ON, x, y); } } return newMap; } crossfire-1.70.0/random_maps/Makefile.am0000644000014500000120000000374611731537537015064 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 1998 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mark@pyramid.com pkglibexec_PROGRAMS = random_map random_map_SOURCES = standalone.c noinst_LIBRARIES = librandom_map.a librandom_map_a_SOURCES = random_map.c \ room_gen_onion.c \ room_gen_spiral.c \ maze_gen.c \ reader.l \ floor.c \ wall.c \ monster.c \ door.c \ decor.c \ exit.c \ treasure.c \ special.c \ style.c \ rogue_layout.c \ snake.c \ square_spiral.c \ expand2x.c \ maze_gen.h random_map.h room_gen.h EXTRA_DIST = maze_gen.h random_map.h room_gen.h\ standalone.c rproto.h expand2x.h Notes AM_CPPFLAGS = -I$(top_srcdir)/include LEX_OUTPUT_ROOT = lex.rmap AM_LFLAGS = -Prmap -i random_map_LDADD = ../common/libcross.a librandom_map.a proto: cproto -e -o rproto.h.bak $(CPPFLAGS) -I. $(AM_CPPFLAGS) \ `echo $(librandom_map_a_SOURCES) | $(AWK) -v RS=" " '/.c$$/ { print }'` sed -e "s/#if __STDC__/#ifdef __STDC__/" -e "s/__signed/signed/g" -e "/__inline/d" -e "/YY_BUFFER/d" < rproto.h.bak >rproto.h chmod 644 rproto.h rm -f rproto.h.bak CLEANFILES = reader.c crossfire-1.70.0/random_maps/maze_gen.h0000644000014500000120000000016511731300530014733 00000000000000/*#include */ char **maze_gen(int xsize, int ysize, int option); /* the outside interface routine */ crossfire-1.70.0/random_maps/room_gen_spiral.c0000644000014500000120000001416211731300530016322 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 1994 Mark Wedel Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to mark@pyramid.com */ /** * @file * The spiral room generator: * @todo * Check if MAX_FINE can't be removed. */ #include #include /** * @defgroup SPIRAL_xxx Random spiral map options */ /*@{*/ #define RANDOM_OPTIONS 0 /**< Pick random options below */ #define REGULAR_SPIRAL 1 /**< Regular spiral--distance increases constantly*/ #define FINE_SPIRAL 2 /**< uses the min. separation: most coiling */ #define FIT_SPIRAL 4 /**< scale to a rectangular region, not square */ #define MAX_SPIRAL_OPT 8 /**< this should be 2x the last real option */ /*@}*/ #include #ifndef MIN #define MIN(x, y) (((x) < (y)) ? (x) : (y)) #endif #ifndef MAX #define MAX(x, y) (((x) < (y)) ? (y) : (x)) #endif #define MAX_FINE .454545 extern int surround_check(char **maze, int i, int j, int xsize, int ysize); /** * Generates a spiral layout. * @param xsize * @param ysize * layout size. * @param option * combination of @ref SPIRAL_xxx "SPIRAL_xxx" values. * @return * generated layout. */ char **map_gen_spiral(int xsize, int ysize, int option) { int i, j; float parm = 0; float x = 0, y = 0; int ic, jc; float SizeX, SizeY; float xscale, yscale; /* allocate that array, set it up */ char **maze = (char **)calloc(sizeof(char *), xsize); for (i = 0; i < xsize; i++) { maze[i] = (char *)calloc(sizeof(char), ysize); } /* slightly easier to fill and then cut */ for (i = 0; i < xsize; i++) for (j = 0; j < ysize; j++) maze[i][j] = '#'; ic = xsize/2; jc = ysize/2; SizeX = xsize/2-2; SizeY = ysize/2-2; /* select random options if necessary */ if (option == 0) { option = RANDOM()%MAX_SPIRAL_OPT; } /* the order in which these are evaluated matters*/ /* the following two are mutually exclusive. pick one if they're both set. */ if ((option®ULAR_SPIRAL) && (option&FIT_SPIRAL)) { /* unset REGULAR_SPIRAL half the time */ if (RANDOM()%2 && (option®ULAR_SPIRAL)) option -= REGULAR_SPIRAL; else option -= FIT_SPIRAL; } xscale = yscale = MAX_FINE; /* fine spiral */ /* choose the spiral pitch */ if (!(option&FINE_SPIRAL)) { float pitch = (RANDOM()%5)/10.+10./22.; xscale = yscale = pitch; } if ((option&FIT_SPIRAL) && (xsize != ysize)) { if (xsize > ysize) xscale *= (float)xsize/(float)ysize; else yscale *= (float)ysize/(float)xsize; } if (option®ULAR_SPIRAL) { float scale = MIN(xscale, yscale); xscale = yscale = scale; } /* cut out the spiral */ while ((abs(x) < SizeX) && (abs(y) < SizeY)) { x = parm*cos(parm)*xscale; y = parm*sin(parm)*yscale; maze[(int)(ic+x)][(int)(jc+y)] = '\0'; parm += 0.01; }; maze[(int)(ic+x+0.5)][(int)(jc+y+0.5)] = '<'; /* cut out the center in a 2x2 and place the center and downexit */ maze[ic][jc+1] = '>'; maze[ic][jc] = 'C'; return maze; } /** * Connects disjoint spirals which may result from the symmetrization process. * @param xsize * @param ysize * layout size. * @param sym * one of the @ref SYM_xxx "SYM_xxx" values. * @param layout * layout to alter. */ void connect_spirals(int xsize, int ysize, int sym, char **layout) { int i, j, ic = xsize/2, jc = ysize/2; if (sym == X_SYM) { layout[ic][jc] = 0; /* go left from map center */ for (i = ic-1, j = jc; i > 0 && layout[i][j] == '#'; i--) layout[i][j] = 0; /* go right */ for (i = ic+1, j = jc; i < xsize-1 && layout[i][j] == '#'; i++) layout[i][j] = 0; } if (sym == Y_SYM) { layout[ic][jc] = 0; /* go up */ for (i = ic, j = jc-1; j > 0 && layout[i][j] == '#'; j--) layout[i][j] = 0; /* go down */ for (i = ic, j = jc+1; j < ysize-1 && layout[i][j] == '#'; j++) layout[i][j] = 0; } if (sym == XY_SYM) { /* go left from map center */ layout[ic][jc/2] = 0; layout[ic/2][jc] = 0; layout[ic][jc/2+jc] = 0; layout[ic/2+ic][jc] = 0; for (i = ic-1, j = jc/2; i > 0 && layout[i][j] == '#'; i--) { layout[i][j+jc] = 0; layout[i][j] = 0; } /* go right */ for (i = ic+1, j = jc/2; i < xsize-1 && layout[i][j] == '#'; i++) { layout[i][j+jc] = 0; layout[i][j] = 0; } /* go up */ for (i = ic/2, j = jc-1; j > 0 && layout[i][j] == '#'; j--) { layout[i][j] = 0; layout[i+ic][j] = 0; } /* go down */ for (i = ic/2, j = jc+1; j < ysize-1 && layout[i][j] == '#'; j++) { layout[i][j] = 0; layout[i+ic][j] = 0; } } /* get rid of bad doors. */ for (i = 0; i < xsize; i++) for (j = 0; j < ysize; j++) { if (layout[i][j] == 'D') { /* remove bad door. */ int si = surround_check(layout, i, j, xsize, ysize); if (si != 3 && si != 12) { layout[i][j] = 0; /* back up and recheck any nearby doors */ i = 0; j = 0; } } } } crossfire-1.70.0/random_maps/room_gen.h0000644000014500000120000000020211731300530014743 00000000000000char **room_gen_cooridored(int xsize, int ysize, int option); char **map_gen_onion(int xsize, int ysize, int option, int layers); crossfire-1.70.0/random_maps/wall.c0000644000014500000120000003023011731300530014074 00000000000000/* * static char *rcsid_wall_c = * "$Id: wall.c 14927 2011-07-31 17:28:51Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Deals with wall management in random maps. */ #include #include #include /** * Given a layout and a coordinate, tell me which squares up/down/right/left * are occupied. * @param layout * @param i * @param j * spot to look. * @param RP * map parameters. * @return * combination of: * - 1 = something on left. * - 2 = something on right. * - 4 = something on above. * - 8 = something on below. * @todo * merge with surround_flag2() and friends, check if such a function doesn't exist in other files. */ int surround_flag(char **layout, int i, int j, RMParms *RP) { int surround_index = 0; if ((i > 0) && layout[i-1][j] != 0) surround_index |= 1; if ((i < RP->Xsize-1) && layout[i+1][j] != 0) surround_index |= 2; if ((j > 0) && layout[i][j-1] != 0) surround_index |= 4; if ((j < RP->Ysize-1) && layout[i][j+1] != 0) surround_index |= 8; return surround_index; } /** * Given a layout and a coordinate, tell me which squares up/down/right/left * are occupied by walls. * @param layout * @param i * @param j * spot to look. * @param RP * map parameters. * @return * combination of: * - 1 = wall on left. * - 2 = wall on right. * - 4 = wall on above. * - 8 = wall on below. * @todo * merge with surround_flag() and friends, check if such a function doesn't exist in other files. */ int surround_flag2(char **layout, int i, int j, RMParms *RP) { int surround_index = 0; if ((i > 0) && layout[i-1][j] == '#') surround_index |= 1; if ((i < RP->Xsize-1) && layout[i+1][j] == '#') surround_index |= 2; if ((j > 0) && layout[i][j-1] == '#') surround_index |= 4; if ((j < RP->Ysize-1) && layout[i][j+1] == '#') surround_index |= 8; return surround_index; } /** * Check a map for blocked spots. * Since this is part of the random map code, presumption * is that this is not a tiled map. * What is considered blocking and not is somewhat hard coded. * @param map * @param i * @param j * spot to look. * @param RP * map parameters. * @return * combination of: * - 1 = blocked on left. * - 2 = blocked on right. * - 4 = blocked on above. * - 8 = blocked on below. */ int surround_flag3(mapstruct *map, int i, int j, RMParms *RP) { int surround_index = 0; if ((i > 0) && (GET_MAP_MOVE_BLOCK(map, i-1, j)&~MOVE_BLOCK_DEFAULT)) surround_index |= 1; if ((i < RP->Xsize-1) && (GET_MAP_MOVE_BLOCK(map, i+1, j)&~MOVE_BLOCK_DEFAULT)) surround_index |= 2; if ((j > 0) && (GET_MAP_MOVE_BLOCK(map, i, j-1)&~MOVE_BLOCK_DEFAULT)) surround_index |= 4; if ((j < RP->Ysize-1) && (GET_MAP_MOVE_BLOCK(map, i, j+1)&~MOVE_BLOCK_DEFAULT)) surround_index |= 8; return surround_index; } /** * Check a map for spots with walls. * Since this is part of the random map code, presumption * is that this is not a tiled map. * What is considered blocking and not is somewhat hard coded. * @param map * @param i * @param j * spot to look. * @param RP * map parameters. * @return * combination of: * - 1 = blocked on left. * - 2 = blocked on right. * - 4 = blocked on above. * - 8 = blocked on below. */ int surround_flag4(mapstruct *map, int i, int j, RMParms *RP) { int surround_index = 0; if ((i > 0) && wall_blocked(map, i-1, j)) surround_index |= 1; if ((i < RP->Xsize-1) && wall_blocked(map, i+1, j)) surround_index |= 2; if ((j > 0) && wall_blocked(map, i, j-1)) surround_index |= 4; if ((j < RP->Ysize-1) && wall_blocked(map, i, j+1)) surround_index |= 8; return surround_index; } /** * takes a map and a layout, and puts walls in the map (picked from * w_style) at '#' marks. * @param map * map where walls will be put. * @param layout * layout containing walls and such. * @param w_style * wall style. Must not be NULL, can be "none". * @param RP * map parameters. */ void make_map_walls(mapstruct *map, char **layout, char *w_style, RMParms *RP) { char styledirname[256]; mapstruct *style_map = NULL; object *the_wall; /* get the style map */ if (!strcmp(w_style, "none")) return; snprintf(styledirname, sizeof(styledirname), "%s", "/styles/wallstyles"); style_map = find_style(styledirname, w_style, -1); if (style_map == NULL) return; /* fill up the map with the given floor style */ if ((the_wall = pick_random_object(style_map)) != NULL) { int i, j; char *cp; int joinedwalls = 0; object *thiswall; snprintf(RP->wall_name, sizeof(RP->wall_name), "%s", the_wall->arch->name); if ((cp = strchr(RP->wall_name, '_')) != NULL) { *cp = 0; joinedwalls = 1; } for (i = 0; i < RP->Xsize; i++) for (j = 0; j < RP->Ysize; j++) { if (layout[i][j] == '#') { if (joinedwalls) thiswall = pick_joined_wall(the_wall, layout, i, j, RP); else thiswall = arch_to_object(the_wall->arch); thiswall->move_block = MOVE_ALL; thiswall->move_allow = 0; object_insert_in_map_at(thiswall, map, thiswall, INS_NO_MERGE|INS_NO_WALK_ON, i, j); } } } } /** * Picks the right wall type for this square, to make it look nice, * and have everything nicely joined. It uses the layout. * @param the_wall * wall we want to insert. * @param layout * @param i * @param j * where to insert. * @param RP * map parameters. * @return * correct wall archetype to fit on the square. * @todo * check if there isn't an equivalent function in the building code, merge? */ object *pick_joined_wall(object *the_wall, char **layout, int i, int j, RMParms *RP) { /* 1 = wall to left, 2 = wall to right, 4 = wall above 8 = wall below */ int surround_index = 0; int l; char wall_name[64]; archetype *wall_arch = NULL; strncpy(wall_name, the_wall->arch->name, sizeof(wall_name)); /* conventionally, walls are named like this: wallname_wallcode, where wallcode indicates a joinedness, and wallname is the wall. this code depends on the convention for finding the right wall. */ /* extract the wall name, which is the text up to the leading _ */ for (l = 0; l < 64; l++) { if (wall_name[l] == '_') { wall_name[l] = 0; break; } } surround_index = surround_flag2(layout, i, j, RP); switch (surround_index) { case 0: strcat(wall_name, "_0"); break; case 1: strcat(wall_name, "_1_3"); break; case 2: strcat(wall_name, "_1_4"); break; case 3: strcat(wall_name, "_2_1_2"); break; case 4: strcat(wall_name, "_1_2"); break; case 5: strcat(wall_name, "_2_2_4"); break; case 6: strcat(wall_name, "_2_2_1"); break; case 7: strcat(wall_name, "_3_1"); break; case 8: strcat(wall_name, "_1_1"); break; case 9: strcat(wall_name, "_2_2_3"); break; case 10: strcat(wall_name, "_2_2_2"); break; case 11: strcat(wall_name, "_3_3"); break; case 12: strcat(wall_name, "_2_1_1"); break; case 13: strcat(wall_name, "_3_4"); break; case 14: strcat(wall_name, "_3_2"); break; case 15: strcat(wall_name, "_4"); break; } wall_arch = try_find_archetype(wall_name); if (wall_arch) return arch_to_object(wall_arch); else { return arch_to_object(the_wall->arch); } } /** * this takes a map, and changes an existing wall to match what's blocked * around it, counting only doors and walls as blocked. If insert_flag is * 1, . If not, it * will only return the wall which would belong there, and doesn't * remove anything. It depends on the * global, previously-set variable, "wall_name" * @param the_map * @param i * @param j * where to look. * @param insert_flag * if 1, insert the correct wall into the map, else don't insert. * @param RP * map parameters. * @return * correct wall for spot. * @todo * merge with pick_joined_wall()? */ object *retrofit_joined_wall(mapstruct *the_map, int i, int j, int insert_flag, RMParms *RP) { /* 1 = wall to left, * 2 = wall to right, * 4 = wall above * 8 = wall below */ int surround_index = 0; int l; object *the_wall = NULL; object *new_wall = NULL; archetype *wall_arch = NULL; /* first find the wall */ FOR_MAP_PREPARE(the_map, i, j, tmp) if ((tmp->move_type&MOVE_WALK) && tmp->type != EXIT && tmp->type != TELEPORTER) { the_wall = tmp; break; } FOR_MAP_FINISH(); /* if what we found is a door, don't remove it, set the_wall to NULL to * signal that later. */ if (the_wall && (the_wall->type == DOOR || the_wall->type == LOCKED_DOOR)) { the_wall = NULL; /* if we're not supposed to insert a new wall where there wasn't one, * we've gotta leave. */ if (insert_flag == 0) return NULL; } else if (the_wall == NULL) return NULL; /* canonicalize the wall name */ for (l = 0; l < 64; l++) { if (RP->wall_name[l] == '_') { RP->wall_name[l] = 0; break; } } surround_index = surround_flag4(the_map, i, j, RP); /* This would be a lot cleaner to just us a lookup table, * eg, wall_suffix[surround_index] */ switch (surround_index) { case 0: strcat(RP->wall_name, "_0"); break; case 1: strcat(RP->wall_name, "_1_3"); break; case 2: strcat(RP->wall_name, "_1_4"); break; case 3: strcat(RP->wall_name, "_2_1_2"); break; case 4: strcat(RP->wall_name, "_1_2"); break; case 5: strcat(RP->wall_name, "_2_2_4"); break; case 6: strcat(RP->wall_name, "_2_2_1"); break; case 7: strcat(RP->wall_name, "_3_1"); break; case 8: strcat(RP->wall_name, "_1_1"); break; case 9: strcat(RP->wall_name, "_2_2_3"); break; case 10: strcat(RP->wall_name, "_2_2_2"); break; case 11: strcat(RP->wall_name, "_3_3"); break; case 12: strcat(RP->wall_name, "_2_1_1"); break; case 13: strcat(RP->wall_name, "_3_4"); break; case 14: strcat(RP->wall_name, "_3_2"); break; case 15: strcat(RP->wall_name, "_4"); break; } wall_arch = try_find_archetype(RP->wall_name); if (wall_arch != NULL) { new_wall = arch_to_object(wall_arch); if (the_wall && the_wall->map) { object_remove(the_wall); object_free_drop_inventory(the_wall); } the_wall->move_block = MOVE_ALL; object_insert_in_map_at(new_wall, the_map, new_wall, INS_NO_MERGE|INS_NO_WALK_ON, i, j); } return new_wall; } crossfire-1.70.0/devel/0000755000014500000120000000000011732537047011672 500000000000000crossfire-1.70.0/devel/devel.c0000644000014500000120000000647411731300527013056 00000000000000/* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail to crossfire-devel@real-time.com */ /* * Little program aimed at giving information to plugin about config of the crossfire server. * Simply invoke with the config parameter to get. Only the most common parameters (those * that could be needed by an independent configure script) are available. The rest is available * in config.h andd should be included in any plugin needing it. */ #include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct { const char *name; const char *value; } cf_parameter; const cf_parameter cf_parameter_list[] = { { "CONFDIR", CONFDIR }, { "DATADIR", DATADIR }, { "LIBDIR", LIBDIR }, { "LOCALDIR", LOCALDIR }, { "PLUGIN_SUFFIX", PLUGIN_SUFFIX }, }; const int cf_parameter_list_size = sizeof(cf_parameter_list)/sizeof(cf_parameter); int main(int argc, char **argv) { int i; if (argc == 2) { if (!strcmp(argv[1], "--parameter-list")) { printf("parameter maybe one of:\n"); printf("\tPLUGININSTALLDIR\n"); for (i = 0; i < cf_parameter_list_size; i++) printf("\t%s\n", cf_parameter_list[i].name); return 0; } /*Special case, handle plugin installation dir, which is most likeley why user wants to use crossfire-config in a configure script*/ if (!strcmp(argv[1], "PLUGININSTALLDIR")) { printf("%s/plugins/\n", LIBDIR); return 0; } if (!strcmp(argv[1], "--Dflags")) { for (i = 0; i < cf_parameter_list_size; i++) printf("-D%s=\\\"%s\\\" ", cf_parameter_list[i].name, cf_parameter_list[i].value); /*printf ("-DDATADIR=\\\"%s\\\" -DLIBDIR=\\\"%s\\\" -DLOCALDIR=\\\"%s\\\"\n", cf_parameter_list[0].value, cf_parameter_list[1].value, cf_parameter_list[2].value);*/ printf("\n"); return 0; } for (i = 0; i < cf_parameter_list_size; i++) { if (!strcmp(argv[1], cf_parameter_list[i].name)) { printf("%s\n", cf_parameter_list[i].value); return 0; } } } /* Bad arguments count or invalid ones */ printf("usage: crossfire-config --Dflags"); printf(" (gives complete Dflags line for compiler invocation)\n"); printf("usage: crossfire-config --parameter-list"); printf(" (show the list of available parameters)\n"); printf("usage: crossfire-config "); printf(" (extract a compilation parameter)\n"); return -1; } crossfire-1.70.0/devel/Makefile.in0000644000014500000120000004450511732537021013657 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@scruz.net # Makefile.am for crossfire-config (tchize@mailandnews.com) VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = crossfire-config$(EXEEXT) subdir = devel DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_crossfire_config_OBJECTS = devel.$(OBJEXT) crossfire_config_OBJECTS = $(am_crossfire_config_OBJECTS) crossfire_config_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(crossfire_config_SOURCES) DIST_SOURCES = $(crossfire_config_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ crossfire_config_SOURCES = \ devel.c AM_CPPFLAGS = -I$(top_srcdir)/include -DDATADIR=\"$(pkgdatadir)\" -DCONFDIR=\"$(pkgconfdir)\" \ -DLIBDIR=\"$(pkglibdir)\" -DLOCALDIR=\"$(pkgstatedir)\" \ -DPLUGIN_SUFFIX=\".so\" all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu devel/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu devel/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list crossfire-config$(EXEEXT): $(crossfire_config_OBJECTS) $(crossfire_config_DEPENDENCIES) $(EXTRA_crossfire_config_DEPENDENCIES) @rm -f crossfire-config$(EXEEXT) $(LINK) $(crossfire_config_OBJECTS) $(crossfire_config_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/devel.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS #Perhaps should uncomment to be sure crossfire has been compiled but.... Why? #crossfire_config_LDADD = ../common/libcross.a #../common/libcross.a: # ( cd ../common ; make libcross.a ) # Check if everything is installed as it should #installcheck-local: # $(bindir)/crossfire -o # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/devel/Makefile.am0000644000014500000120000000314611731300527013640 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@scruz.net # Makefile.am for crossfire-config (tchize@mailandnews.com) bin_PROGRAMS = crossfire-config crossfire_config_SOURCES = \ devel.c AM_CPPFLAGS = -I$(top_srcdir)/include -DDATADIR=\"$(pkgdatadir)\" -DCONFDIR=\"$(pkgconfdir)\" \ -DLIBDIR=\"$(pkglibdir)\" -DLOCALDIR=\"$(pkgstatedir)\" \ -DPLUGIN_SUFFIX=\".so\" #Perhaps should uncomment to be sure crossfire has been compiled but.... Why? #crossfire_config_LDADD = ../common/libcross.a #../common/libcross.a: # ( cd ../common ; make libcross.a ) # Check if everything is installed as it should #installcheck-local: # $(bindir)/crossfire -o crossfire-1.70.0/check-fragment.am0000644000014500000120000001023711731300547013703 00000000000000LOG_ROOT=$(top_builddir)/test/logs LOGDIR=$(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates XSLTENGINE= @XSLTENGINE@ BUILT_SOURCES=$(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '

' > $$output_menu; \ echo '$(CHECK_PARENT_NAME)' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo ''$$tst'' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '' >> $$output_menu; \ fi; \ done;\ echo "" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '' > $$runxml;\ echo "$$xml_siteuri" >> $$runxml;\ echo "$$checkFile" >> $$runxml;\ echo "$$xml_check_folder" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '' > $$runxml;\ echo "$$xml_siteuri" >> $$runxml;\ echo "$$xml_check_folder" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '' > $$runxml;\ echo "$$xml_siteuri" >> $$runxml;\ echo "$$xml_check_folder" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; if PROCESS_XSLT CHECK_HTML = logreport template-copy CHECK_TXT= textlog endif check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml noinst_PROGRAMS=$(TESTS) crossfire-1.70.0/INSTALL0000644000014500000120000002662211731300547011544 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. For 'make check' to return expected results, especially on some of the unit tests, various configuration values must be unmodified - if treasure lists are modified, check_item may fail because different treasures can now be generated, etc. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 6. Often, you can also type `make uninstall' to remove the installed files again. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *Note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. crossfire-1.70.0/lib/0000755000014500000120000000000011732537044011336 500000000000000crossfire-1.70.0/lib/exp_table0000644000014500000120000001520511731300544013137 00000000000000# This table contains the experience values for the different levels. # Note the maximum theoretical value for any level is # 9223372036854775808 (2 ^ 63). However, you should put in a cap # a bit below that - while the code tries to be clever and not # do overflows, I'm not 100% confident that it would work if # max was set to that value. # # Note that this table starts at level 1 # # The format of this table isn't very strict - the # code just tries to extract the numbers, so it doesn't # care about multiple commas, etc. Note however that # the comment character (#) is only valid at the # start of the line. # # Note that I have the different tables prefixed with #A, #B, # #C, etc, to make it easier to substitute the values and # get the desired table. Note you should make sure when you # do the sub, you also get rid of the space after the letter # (Eg, s/#A //) # # Added 2003-03-01 - the maximum level is now set in this file - # thus, its just a simple matter of changing the value to whatever # and adding on to the table to allow for whatever maximum level is # desired. I've made the maxlevel for all of these level 115, and # put in a double for each level after 110 to get to that point - # this should allow all players to max all skills if they so desire. # Note that max_level must be set before the exp table is defined, # so that the program knows how much space to allocate. # # Related to this - one of the following tables must be uncommented # for the program to work properly. I uncommented what was the # default table. max_level 115 # Old (classic) exp table: #A 0,1000,2000,4000, 8000, #A 16000,32000,64000,125000,250000, #A # 10 #A 500000,900000,1400000,2000000,2600000, #A 3300000,4100000,4900000,5700000,6600000, #A # 20 #A 7500000,8400000,9300000,10300000,11300000, #A 12300000,13300000,14400000,15500000,16600000, #A # 30 #A 17700000,18800000,19900000,21100000,22300000, #A 23500000,24700000,25900000,27100000,28300000, #A # 40 #A 29500000,30800000,32100000,33400000,34700000, #A 36000000,37300000,38600000,39900000,41200000, #A # 50 #A 42600000,44000000,45400000,46800000,48200000, #A 49600000,51000000,52400000,53800000,55200000, #A # 60 #A 56600000,58000000,59400000,60800000,62200000, #A 63700000,65200000,66700000,68200000,69700000, #A # 70 #A 71200000,72700000,74200000,75700000,77200000, #A 78700000,80200000,81700000,83200000,84700000, #A # 80 #A 86200000,87700000,89300000,90900000,92500000, #A 94100000,95700000,97300000,98900000,100500000, #A # 90 #A 102100000,103700000,105300000,106900000,108500000, #A 110100000,111700000,113300000,114900000,116500000, #A # 100 #A 118100000,119700000,121300000,122900000,124500000, #A 126100000,127700000,129300000,130900000,785400000 #A # 110 #A 1570800000, 3141600000, 6283200000, #A 12566400000, 25132800000 #A #115 (end of table ) #B # this is the old default table (was #B 0,2000,4000, 8000, 16000,32000,64000,125000,250000, 500000, #B # 10 #B 900000,1400000,2000000,2600000, #B 3300000,4100000,4900000,5700000,6600000, 7500000, #B # 20 #B 8400000,9300000,10300000,11300000, #B 12300000,13300000,14400000,15500000,16600000, 17700000, #B # 30 #B 18800000,19900000,21100000,22300000, #B 23500000,24700000,25900000,27100000,28300000, 29500000, #B # 40 #B 30800000,32100000,33400000,34700000, #B 36000000,37300000,38600000,39900000,41200000, 42600000, #B # 50 #B 44000000,45400000,46800000,48200000, #B 49600000,51000000,52400000,53800000,55200000,56600000, #B # 60 #B 58000000,59400000,60800000,62200000, #B 63700000,65200000,66700000,68200000,69700000, #B 71200000, #B # 70 #B 72700000,74200000,75700000,77200000, #B 78700000,80200000,81700000,83200000,84700000, #B 86200000, #B # 80 #B 87700000,89300000,90900000,92500000, #B 94100000,95700000,97300000,98900000,100500000, 102100000, #B # 90 #B 103700000,105300000,106900000,108500000, #B 110100000,111700000,113300000,114900000,116500000, 118100000, #B # 100 #B 119700000,121300000,122900000,124500000, #B 126100000,127700000,129300000,130900000,785400000, #B 1570800000 #B # 110 #B 3141600000, 6283200000, 12566400000, #B 25132800000, 50265600000 #B # 115 and end of table #C #C # New hard exp table. 0,2000,4000, 8000, 16000,32000,64000,125000,250000, 500000, #C # 10 900000,1400000,2000000,2600000, 3300000,4100000,4900000,5700000,6600000, 7500000, #C # 20 8500000, 9500000, 10600000, 11800000, 13000000 14300000, 15600000, 17000000, 18500000, 20000000 #C # 30 21700000, 23400000, 25200000, 27000000, 29000000 31100000, 33300000, 35600000, 38000000, 40500000 #C # 40 43200000, 46000000, 48900000, 52000000, 55200000 58600000, 62100000, 65900000, 69800000, 73900000 #C # 50 78200000, 82700000, 87500000, 92500000, 97800000 103300000, 109100000, 115200000, 121500000, 128200000 #C # 60 135300000, 142700000, 150400000, 158600000, 167100000 176100000, 185600000, 195500000, 205900000, 216800000 #C # 70 228300000, 240300000, 252900000, 266200000, 280200000 294800000, 310200000, 326300000, 343200000, 361000000 #C # 80 379700000, 399300000, 419900000, 441500000, 464200000 488100000, 513100000, 539400000, 567000000, 596000000 #C # 90 626400000, 658300000, 691900000, 727100000, 764100000 802900000, 843700000, 886500000, 931500000, 978700000 #C # 100 1028200000, 1080300000, 1134900000, 1192300000, 1252500000 1315800000, 1382200000, 1451900000, 1525100000, 2100000000 #C # 110 4200000000, 8400000000, 16800000000, 33600000000, 67200000000 #D # New exp for better gain rate. Main effect is for #D # lower levels so it is takes longer to gain a level. #D # after about level 20, this matches table C #0,5000,10000, 20000, 40000,80000,150000,300000,500000, 800000, # 10 #1100000,1500000,1900000,2400000, #3000000,4600000,5300000,6000000, 6800000, 7600000, # 20 #8500000, 9500000, 10600000, 11800000, 13000000 #14300000, 15600000, 17000000, 18500000, 20000000 # 30 #21700000, 23400000, 25200000, 27000000, 29000000 #31100000, 33300000, 35600000, 38000000, 40500000 # 40 #43200000, 46000000, 48900000, 52000000, 55200000 #58600000, 62100000, 65900000, 69800000, 73900000 # 50 #78200000, 82700000, 87500000, 92500000, 97800000 #103300000, 109100000, 115200000, 121500000, 128200000 # 60 #135300000, 142700000, 150400000, 158600000, 167100000 #176100000, 185600000, 195500000, 205900000, 216800000 # 70 #228300000, 240300000, 252900000, 266200000, 280200000 #294800000, 310200000, 326300000, 343200000, 361000000 # 80 #379700000, 399300000, 419900000, 441500000, 464200000 #488100000, 513100000, 539400000, 567000000, 596000000 # 90 #626400000, 658300000, 691900000, 727100000, 764100000 #802900000, 843700000, 886500000, 931500000, 978700000 # 100 #1028200000, 1080300000, 1134900000, 1192300000, 1252500000 #1315800000, 1382200000, 1451900000, 1525100000, 2100000000 # 110 #4200000000, 8400000000, 16800000000, #33600000000, 67200000000 crossfire-1.70.0/lib/image_info0000644000014500000120000000277111731300544013275 00000000000000# "$Id: image_info 1534 2002-02-15 03:06:39Z tanner $"; # # This file describes the various image files installed. # For more information on how all this works and about adding new # image sets, see the doc/Developer/images file. # # The format of each line: # num:extension:long name:fallback:geometry:extension:description # num is the set number. # extension is the extension that image set uses (eg, base, clsc) # long name is just that - a longer (more english) name, eg, classic instead # of clsc. This is really just used by the client for it to map the # image names. Its not really intuitive for users to say -image clsc # fallback is what set to fallback to if the image does not exist in # that set. In the end, all sets must fall back to set 0. # geometry is in width x height form. This is used by the client so it # knows the spacing to use. Images in the set could be of different # sizes (eg, a 4 spaces image would be larger), but this is the normal # spacing that the client should use. # extension is for future use - it is passed to the client. This is mostly # here so that the client can know specific information about certain # image sets. # description is just a longer description that the client can display to the # user. # # NOTE: lines can not be continued with \ - everything must be on one line # for things to work. # Lines that start with # are obviously ignored. 0:base:standard:0:32x32:none:The standard image set. 1:clsc:classic:0:32x32:none:Classic and new styling. crossfire-1.70.0/lib/messages0000644000014500000120000005203711731300544013007 00000000000000# # Message file for books # # Message entries contained in this file will # appear randomly in readable objects like books, scrolls # and such (op->type==BOOK). # # File format: # ------------ # MSG : start of new message. The identifier is optional and free-form, # and must be unique. # If set then players will keep the message as part of their knowledge when read. # Do NOT reuse identifiers if changing messages. # TITLE : message's title, for knowledge management. Mandatory if #  the message has an identifier, else unused. # CHANCE <chance>: optional chance of the message appearing in a book, relative # to the sum of all chances. 0 or no line means this message will never appear. # TEXT: start of the message's body # ENDMSG: marks the end of a message's body and message. # QUEST: optional quest internal code and state this message will activate. # Example: "QUEST TempleOfDoom 0>10" will set the quest 'TempleOfDoom' to state 10 #  if the player didn't yet do it. # # TEXT must be the last item in a MSG block. # # When designing messages please keep in mind: # ------------------------------------------- # 1) Message length shouldn't exceed the maximum # buffer size for books (you'll generate a warning message # if you do this). Check the file include/read.h for the # current message size limit (BOOK_BUF). # 2) Only put newlines where significant. Clients will # automatically wrap the text. # # MSG CHANCE 1 TEXT <undecipherable text> ENDMSG # # MSG G-001 TITLE Fortress of Barad-Dur CHANCE 1 TEXT "In the mountains north-east of the great city we found it at last--the hidden fortress of Barad-Dur. What treasures could lie in it I do not know for our party never gained its way past the entryway. Skulls, pixies, and a horrible creature I hesitate to name decimated my friends and I." ENDMSG # # MSG G-002 TITLE Fortress of Ang CHANCE 1 TEXT In ancient times past the great fortress of Ang was raised on the western shore. Many inhabitants it has had, but the last known was the most unusual. A titan of rare power is said to live in Ang now. There he serves as guardian of an artifact of unusual might. ENDMSG # # MSG G-003 TITLE About the northern country CHANCE 1 TEXT Many have ventured into the northern country. Up beyond the mountains, alone in the wastes lies a vast domain of mines that delve deep into the earth. Know that these tunnels and shafts are quite perilous; for only once in recent times have I heard of an expedition returning from them. ENDMSG # # MSG G-004 TITLE Map of western world CHANCE 1 TEXT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~ ~~~~~~~~~ ^^^^^^^^^^^^^ ~~~~~~~~X========== ^ %%%%%%^%^^^^^ ~~~~~~~ santo = %%%%%%%%%%%%%% ~~~~~~~ dominion = %%%The%%%%%%% ~~~~~~ ^^ = %%%%%%%%%%%%% ~~~~~~ ^^ = %%Great%%%%%% ~~~~~~^ ^ = %%%%%%%%%%%% ~~~~~~X=============================== ~~~~~~ Scorn ^^^ = %%%%%%%%%%%% ~~~~~ ^^^^ = %% %%Forest%%%%% ~~~ ^^^ = %%%%%%%%%%%%%% ~~~ ^^^ = %%%%%%%%%%%%%% ~~~ ^^ === %%%%%%%%%%%%% ~~~ X Brest ~~~~ ~~~~~ ~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ----------Map of Western World-------- ENDMSG # # MSG G-005 TITLE Alchemy attempt CHANCE 1 TEXT ...and then did the Alchemist agree to make me my potion. First he called to his grimm servants who hauld forth a great iron cauldron. Into this black device did he deposit his ingredients and, opening his spell book for reference, then did he cast his spell of alchemy therepon the cauldron. Greatly did the tub shake and move! I thought that the Alchemist had broke his device, but he chuckled at my ignorance. Into the cauldron did he reach an brought forth a filled bottle of golden amber fluid... ENDMSG # # MSG G-006 TITLE Alchemy basics CHANCE 1 TEXT Know that there are 4 principle philosophical ingredients. In order, they are: - philosophical salt - philosophical sulphur - philosophical phosphorus - philosophical oil The great alchemist has often said that all living things are made of these ingredients. Proper combination of these with other base objects can often create potions of power and might. ENDMSG # # # (C)2007 Y.E.J. Chachkoff. All rights reserved. # The author agreed to have his work distributed with the original Crossfire RPG game, any fork excluded. MSG G-007 TITLE Commandeer's story CHANCE 1 TEXT 11 Tromisian 5211EK: We made a strange encounter while we were travelling down the ancient road to Lake Country. Plunderers from Jangk were attacking a caravan near the Iron Doors. We of course helped the merchants, and easily defeated the bandits, some fleeing. But merchants seemed... uneasy, once they recognized our Guard uniforms. We soon understood why: their twelve heavily sealed wagons were filled with Goblins, Orcs, and other creatures with the gift of speaking. They refused to tell us anything, so we decided to defer to the Lord's Justice. I don't know what will happen to them. From some testimonies we could gather, this traffic has been going on for years, for the benefit of the biggest domains of Lake Country. Me and my men will try to learn more about this. ENDMSG # # # (C)2007 Y.E.J. Chachkoff. All rights reserved. # The author agreed to have his work distributed with the original Crossfire RPG game, any fork excluded. MSG G-008 TITLE Port Joseph's Bottle Riots CHANCE 1 TEXT In 5122EK, Bottle Riots, only reprimed with difficulty, in Port Jospeh drove local authorities to totally forbid taverns and other drink-related places, with the sole exception of shops controlled by the Sea Princes themselves. However, Josephians rapidly found a loophole in the decree, noticing it only applied to buildings on or above the ground level. They thus refurbished to taverns caves in individual houses; they are indicated by their green frontage. ENDMSG # # The following extracts are from the Crossfire wiki at http://wiki.metalforge.net/doku.php # and are supposed to be GPL or at least reusable ingame. If not the case, please tell and we'll remove MSG G-009 TITLE Skorn foundation CHANCE 1 TEXT The colony of Skorn was founded in 435EK by Skud the Great, when his expedition reached the shores of the continent. It is said that he first pitched his tent on the site where the inn now stands. ENDMSG MSG G-010 TITLE Scorn's war against Dragons CHANCE 1 TEXT The war against the Dragons rages from 1064 to 1135EK. Scorn is destroyed. Most of its inhabitants flee to the south. After 1115EK, the city is progressively rebuilt on top of the now buried ruins nowadays known as the Old City. ENDMSG MSG G-011 TITLE The Sea Princes CHANCE 1 TEXT The War of the Sea Princes took place in 1177EK. The last imperial ship reaches Scorn. Contacts with Khelens are now broken. Scorn becomes an independent kingdom. ENDMSG MSG G-012 TITLE About Khelens CHANCE 1 TEXT Khelens is the name of both a city and an Empire, that once ruled the world. The cities of Scorn and Navar were initially colonies of the Empire of Khelens. The fate of Khelens is currently unknown. According to the last known historical records, a political crisis shattered the very foundations of the Empire 5000 years ago, creating a civil war that ended by the independence of Scorn and the other colonies from it. Since that time, no imperial ship ever sailed back to Scorn, and the location of Khelens is now forgotten. ENDMSG MSG G-013 TITLE Skud the Great CHANCE 1 TEXT One of the first Builders, Skud the Great created many famous places, like the Scorn’s First Inn or the Newbie Tower. The reasons of the disappearance of Skud are mostly unknown. The Codex Skudensis mentions that it could have been because of the negative influence of the Arch-Demon Neth Aq. It is thought that The Tower of Skud, although left unfinished by its creator, may contain informations about the fate of one of the most famous Builder. ENDMSG MSG G-014 TITLE History of Scorn CHANCE 1 TEXT It is said that Scorn, as we currently know it, was built on an older version of itself, now buried underground. When the colony of Skorn was founded by Skud, the whole west was infested by dragons and wyverns. The imperial armies successfully fought the monsters, pushing them back on the other side of the mountains, and kept a vigilant guard to ensure that the huge monsters wouldn’t sneak in and attack their settlements. But there are always men who think they’re smarter than everybody else. Enteranni the Red was one of those men. Trying to take control of Scorn for himself, he decided to unleash a couple dragons against the city, after which he’d banish them and be seen as a savior. But so blind and thirsty of power he had become that dragons easily tricked him. His plan failed, and the flame of the dragonbreath destroyed Scorn (More details here). When dragon were finally vainquished, Scorn was rebuilt on top of its own ruins. The Old City of Scorn is now a dark, forgotten maze of crypts and halls infested by vermin of all sorts. Rumors say that some treasures from the glorious past of the city still sleep there, waiting to be found. Who knows ? Maybe it is true, after all. ENDMSG MSG G-015 TITLE Navar's location CHANCE 1 TEXT Straddling the corner of the Imperial highway as it turns North near the Eastern border of the known world, and surrounded by dangerous territory, Navar is an unlikely site for one of the world’s grandest cities. Yet there it stands, dominating the skyline for miles around and showing the same bustling activity expected of any thriving market town. ENDMSG MSG G-016 TITLE Darcap's foundation CHANCE 1 TEXT In 2264 EK, the Kingdom of the Masts founded a colony called Darcap in the north of the continent. But before this colony could become autonomous the kingdom was destroyed, in 2287 EK, leaving it totally isolated. The inhabitants endured many hardships, many died of hunger. Some tried to reach, by small boat or on foot, a better land – none of them ever came back. One of the colonists, named Andreas, succeeded in persuading many inhabitants to worship Devourers, whose followers don’t suffer hunger. The other inhabitants argued, logically, that since many did convert they would have enough food, and refused to convert. After his death, Andreas was nicknamed “Andreas the Ravenous†– because he always liked good jokes –, and the church of Devourers was named after him. ENDMSG MSG G-017 TITLE Darcap's rediscovery CHANCE 1 TEXT In 6138 EK, a famous explorer named Herghist Appelnisht set foot in Darcap, the first stranger in four millenia. He stayed 2 years, learning the history and customs of Darcap and teaching the whereabouts of the rest of the world to the inhabitants. He then travelled back to Navar with a delegation in order to establish relations between Darcap and the other towns. ENDMSG MSG G-018 TITLE Julio's story CHANCE 1 TEXT In 6795 EK, a magician named Julio, wishing to take some distance with the agitation of the world, came to live in Darcap. He was expert in the four elements and spent the rest of his life studying the interactions of those, transforming four houses in the center of the town in laboratories. He was at the origin of many incidents and many inhabitants came to hate him. It is only many years after his death, in 6813 EK, that his major contribution to the town was made public. He had advised leaders on the affairs of the world, giving advice, solving many conflicts. A status was made as a token of gratitude and his house, which was once considered for destruction, was restored to display his work. ENDMSG MSG G-019 TITLE The Imperial Highway CHANCE 1 TEXT The proverbial “Yellow Brick Road†(nicknamed because the durable yellow clay used to make the bricks) which strings its way across the Main continent of BigWorld, the Imperial Highway was created during the time of the Empire and is a lasting legacy of a more peaceful time. Travel along the Imperial Highway is still reasonable safe as the road is maintained and there are inns and shops along this road. ENDMSG MSG G-020 TITLE The Sannista CHANCE 1 TEXT Shortly summarized, the Sannista is a legendary flying boat that was powered by the reaction of a fire and a water elemental. It was built by the tenth Commander of Euthville, Farkennis, as a gift for the 18th Birthday of his daughter, Sannista. That’s the boat that was stolen by Fax when he fled from Euthville, and that he used to get to Khelens. Giusitta the Verbous then sailed it back to the Continent, and hid it “somewhere in the mountains of Euthâ€. ENDMSG MSG G-021 TITLE Euthville's foundation CHANCE 1 TEXT If you went there about half a millenia ago, you’d have seen something very different than the field of haunted ruins Euthville has since become. It was initially founded by a handful of industrious, clever dwarves, that had found a mystical way to locate fields of precious Karitta, the famous metal that is as transparent as a pearl of the North Sea, yet as strong as the best irons of Navar. And thus, they found at the location of Euthville a lot of that raw metal, which quickly made the city one of the richest of all. And for a long time, it stayed so. The inhabitants of Euthville weren’t interested by war, work, or anything else too tiresome - they preferred to pay somebody else to do all of this. And with the advanced technical knowledge brought by the dwarves, working was less and less an issue for them. ENDMSG MSG G-022 TITLE Euthville's destruction CHANCE 1 TEXT Finally, the Commander decided that the city couldn’t stand this anymore, and ordered that the Demons had to be attracted faraway from the city. On this fateful day, a whole fanfare left the city, hoping that the demons would follow, attracted by the music. And so, they did. One after another, they climbed out of Earth itself, and walked in the direction of the music, obviously unaware of the hundreds of buildings they were crushing by their giant footsteps, and the thousands of inhabitants that they toasted with their dark fire. Seeing that, even the bravest ones went mad, and ran for their lives, leaving pipes, clavicelles and harpsichords fall on the ground. The rest of the story is easy to understand: Demons, free from the magical music that enslaved them, crushed what remained of the city, in a bloody fest that they will forever keep in their twisted memories. The Commander went mad, of course, and it is said that his madness was so strong that his mind was unable to understand that he was dead. If you search enough in the ruins of Euthville, you’ll probably encounter his ghost, as well as those of the many who perished for having believed that mortals could enslave the hell. Some demons stayed there, obviously enjoying the area and its newborn ashes that smelled fresh blood and carnage. Euthville is now, of course, a dangerous, deserted place, and the richesses that are still sleeping below the ruins of its former palaces are now guarded by powerful entities of the 9th Circle. ENDMSG MSG G-023 TITLE The Enchanted Music CHANCE 1 TEXT Many said that, if the Enchanted Music could be found, it would open the gates of many treasures, but because none of the former Euthvillians survived, and because nobody knows where the Boy went afterwards, those gates are still closed. I’ve heard that the School of Daemonology was precisely founded to rediscover that spell. But who am I to claim this to be true? I’m only a man of the past that tells stories before a fire, and the fire is dying, and so has my tale reached the end. ENDMSG MSG G-024 TITLE Euthville's power hunger CHANCE 1 TEXT Yet they were facing a problem. All their devices, all their machineries, all their tricks to cheat with nature required energy. Lots of energy. They relied first on the strength of horses and donkeys, but it wasn’t enough. Then, they tamed the dangerous Wyverns of Kal-Durandasi, so that the hot lizards would provide them with the full force of their steamy breath. But soon, it wasn’t enough. They also used the hidden power provided by the Faeries of the Tarniska river, building a dam, so that they could put the invisible horses of water that the sylphids are rumored to breed in use. But even so, their hunger for power wasn’t satisfied, and became an increasing nuisance for them. So, the Commander of Euthville (which was, more or less, the equivalent to our King at Scorn), finally decided to send messengers across the whole Continent, calling the world for a challenge. Whoever would be able to fulfill the needs of Euthvillians of energy would become the new Commander, thus the ruler of the richest city ever built since Khelens. ENDMSG MSG G-025 TITLE Euthville's salvation CHANCE 1 TEXT And then came a boy. He wasn’t a wizard, nor pretended to be one. He was young, but the story didn’t kept the record of his name, and some now think it is because he was damned. Who knows? The Boy sat in the middle of the city, playing with his flute, laughing whenever he saw one of the demonstrations of the powerful wizards and engineers, who were failing again and again. After several days, the Commander noticed the Boy, and said: “who are you to laugh, you, who has only a flute ?†“I have only a flute for sure - but there’s more in my simple pipe than in those legions of wizards.†“Really ?†said the Commander, half-laughing, half-curious, “so you think you can solve my challenge ?†The Boy smiled. “Not only I can, but I shall - and my price will be quite acceptable to give you the energy you need.†“And that would be...?†- “A new pipe.†came the reply “That one is becoming old.†“Agreed, you have your chance.†The Boy then started to play an amused melody. It sounded like an invitation to a great feast, the opening of a meeting where everybody was invited. And then came from earth itself sounds of steps, climbing from the depth. The fountain that stood in the middle of the place crumbled, leaving a great hole from which flames emerged. But the fire seemed to dance at the rythm of the music itself. The Boy then said to the Commander: “As long as you keep playing for the Demons there, at least 23 hours each day, you’ll get them to make whatever you need.†And he gave them the score, took a brand new silver flute, and left, and never was seen again at Euthville. ENDMSG MSG G-026 TITLE Euthville's destruction CHANCE 1 TEXT At first, things seemed fine, and the Commander couldn’t believe his luck, as a pipe was a feeble price to pay for such a powerful recipe of prosperity. Who wouldn’t want to tame the Demons themselves? Quickly, though, it appeared obvious that, for enough demons to be there, that music needed to be played rather loudly. And if, at first, it sounded entertaining, joyous, and funny, it quickly grew on the nerves of many. And especially because it was played 23 hours a day. Finally, the Commander decided that the city couldn’t stand this anymore, and ordered that the Demons had to be attracted faraway from the city. On this fateful day, a whole fanfare left the city, hoping that the demons would follow, attracted by the music. ENDMSG # End of extract from the wiki MSG G-027 TITLE Temple of Justice QUEST darcap/TempleJustice 0>10 CHANCE 1 TEXT And so the Temple of Justice was founded, to show Valriel's Glory to the whole world! Oh, it was magnificient, located on the north side of the Continent, west of Darcap. And for years followers of Valriel came as pilgrims, to worship His Altar. But things started to fall over, and slowly the priests started to accumulate wealth instead of giving it back, and using it for their glory instead of Valriel's. So the Temple was slowly abandonned by pilgrims, who sought other Places Of Glory. It probably still exists, but who knows what secrets it bears. ENDMSG MSG G-028 TITLE The Tower of Grukk QUEST navar/grukk 0>10 CHANCE 1 TEXT Grukk was a rich merchant from Navar, who accumulated wealth by being the right person at the right place. Alas, all his influcence couldn't prevent him from being ostracised when Navar decided to banish all undead creatures. For some time he still stayed in his house, but then decided he couldn't bear anymore this situation. So he had a tower built, somewhere on the east shore of the continent, south of Navar, and moved all belongings here. There are rumours he still deals in some goods through intermediaries, but no one has any proof. ENDMSG MSG G-029 TITLE Glowing Crystals CHANCE 1 TEXT Glowing Crystals are the dream of every magician. They enable to store mana energy up to a certain quantity, and recover it at will. Thus a magician cast more spells without needing to rest to recover his energy. Such Crystals are unfortunately pretty rare, so magicians have to figure by themselves how to find some. ENDMSG MSG G-030 TITLE The Dark Forest CHANCE 1 QUEST scorn/DarkForest 0>10 TEXT And thus the Glowing Crystal was stolen from Scorn's City Hall. The thieves fled to the Dark Forest, which is said to be cursed. According to rumors the Crystal was put at the heart of the Dark Temple, to be used for some religious ceremony. No one has yet to claim it. The Forest is a well-known cursed place, located on the road from Scorn to Navar, approximately 50 chains west of Hermes's Inn and 10 chains north of the road. ENDMSG�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/checkarch.pl.in����������������������������������������������������������������0000644�0000145�0000012�00000003657�11731300544�014136� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@PERL@ require "util.pl"; $root = $ARGV[0]; $archetypes = "archetypes"; ### main &info ("examining $archetypes ..."); open (ARCH,"< $archetypes") || &die ("cannot open $archetypes"); &checkarch; close (ARCH); exit 0; sub checkarch { $warnings = 0; $more = 0; line: while(<ARCH>) { chop; ($var,@values) = split; if ($var eq "More") { $more = 1; next line; } if ($var eq "Object") { $arch = $values[0]; $is_alive = 0; $level = 0; $type = 0; $move_apply = 0; $is_not_head = $more; $more = 0; next line; } $more = 0; if ($var eq "end") { if ( ! $is_not_head && $is_alive && $level <= 0) { &warn ("arch $arch is alive, but doesn't have level"); $warnings++; } if ($type == 61 && $level <= 0) { &warn ("arch $arch is a FIRECHEST, but doesn't have level"); $warnings++; } if ($type == 62 && $level <= 0) { &warn ("arch $arch is a FIREWALL, but doesn't have level"); $warnings++; } if ($type == 5 && $level <= 0) { &warn ("arch $arch is a POTION, but doesn't have level"); $warnings++; } if ($move_apply && $type == 0) { &warn ("arch $arch has walk/fly on/off but doesn't have a type"); $warnings++; } next line; } if ($var eq "alive") { $is_alive = $values[0]; next line; } if ($var eq "level") { $level = $values[0]; next line; } if ($var eq "type") { $type = $values[0]; next line; } if ($var eq "move_on" || $var eq "move_off") { $move_apply |= 1; next line; } } &info ("$warnings problems found"); } ���������������������������������������������������������������������������������crossfire-1.70.0/lib/motd���������������������������������������������������������������������������0000644�0000145�0000012�00000000672�11731300544�012141� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ *** Welcome to Crossfire *** After you have created your character, use the arrows to move around, press <a> to apply. The command prompt can be accessed by typing ' (single quote). Useful commands are 'help, 'help keys, 'scroll, 'save, 'quit. Join the crossfire-chat on irc.freenode.net, channel "#crossfire"! Report bugs or brilliant ideas to the crossfire mailing-list. Visit <crossfire.real-time.com> for further information. ����������������������������������������������������������������������crossfire-1.70.0/lib/smooth�������������������������������������������������������������������������0000644�0000145�0000012�00000017252�11732536603�012521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������########################################################## # Do not touch this file. # # It has been generated from the informations present # # in the archetype files. # # To add new entries, simply add # # smoothface xxx yyy # # to an archetype and collect.pl will put below an entry # # xxx yyy # ########################################################## # Data extracted from arch files beach.111 beach_S.111 beige-cyan-c-marble.111 empty_S.111 beige-cyan-c-marble.112 empty_S.111 beige-cyan-c-marble.113 empty_S.111 beige-cyan-c-marble.114 empty_S.111 beige-green-c-marble.111 empty_S.111 beige-green-c-marble.112 empty_S.111 beige-green-c-marble.113 empty_S.111 beige-green-c-marble.114 empty_S.111 beige-pink-c-marble.111 empty_S.111 beige-pink-c-marble.112 empty_S.111 beige-pink-c-marble.113 empty_S.111 beige-pink-c-marble.114 empty_S.111 beige-white-c-marble.111 empty_S.111 beige-white-c-marble.112 empty_S.111 beige-white-c-marble.113 empty_S.111 beige-white-c-marble.114 empty_S.111 beigemarble.111 empty_S.111 blackmarble.111 empty_S.111 blackrock.111 blackrock_S.111 blake_0.111 empty_S.111 blake_1.111 empty_S.111 blake_2.111 empty_S.111 blake_3.111 empty_S.111 blake_4.111 empty_S.111 blake_5.111 empty_S.111 blake_6.111 empty_S.111 blake_7.111 empty_S.111 blake_8.111 empty_S.111 blake_9.111 empty_S.111 blake_A.111 empty_S.111 blake_B.111 empty_S.111 blake_C.111 empty_S.111 blake_D.111 empty_S.111 blake_E.111 empty_S.111 blake_F.111 empty_S.111 blood_sea.111 blood_sea_S.111 blood_sea.112 blood_sea_S.112 blood_sea.113 blood_sea_S.113 blood_sea.114 blood_sea_S.114 bluemarble.111 empty_S.111 bluemarblemedium.111 empty_S.111 brush.111 grass_S.111 cmarsh.111 empty_S.111 cobblesto1.111 empty_S.111 cobblesto2.111 empty_S.111 crater.111 empty_S.111 cyan-beige-c-marble.111 empty_S.111 cyan-beige-c-marble.112 empty_S.111 cyan-beige-c-marble.113 empty_S.111 cyan-beige-c-marble.114 empty_S.111 cyanbrush.111 cyangrass_S.111 cyangrass.111 cyangrass_S.111 cyangrasspond.111 cyangrass_S.111 cyanmarble.111 empty_S.111 darkforest.111 darkforest_S.111 dcross-red.111 empty_S.111 dcross-white.111 empty_S.111 deep_sea.111 deep_sea_S.111 deep_sea.112 deep_sea_S.112 deep_sea.113 deep_sea_S.113 deep_sea.114 deep_sea_S.114 deep_swamp.111 deep_swamp_S.111 deep_swamp.112 deep_swamp_S.112 desert.111 desert_S.111 dirtfloor.111 empty_S.111 drifts.111 empty_S.111 dunes.111 dunes_S.111 earth.111 empty_S.111 evergreens.111 evergreens_S.111 evergreens_2.111 empty_S.111 farmland.111 empty_S.111 fcross-blue.111 empty_S.111 fcross-white.111 empty_S.111 fireball.111 fireball_S.111 fireball.112 fireball_S.112 fireball.113 fireball_S.113 flagstone.111 flagstone_S.111 footpath_0.111 grass_S.111 footpath_1.111 grass_S.111 footpath_2.111 grass_S.111 footpath_3.111 grass_S.111 footpath_4.111 grass_S.111 footpath_5.111 grass_S.111 footpath_6.111 grass_S.111 footpath_7.111 grass_S.111 footpath_8.111 grass_S.111 footpath_9.111 grass_S.111 footpath_A.111 grass_S.111 footpath_B.111 grass_S.111 footpath_C.111 grass_S.111 footpath_D.111 grass_S.111 footpath_E.111 grass_S.111 footpath_F.111 grass_S.111 glacier.111 empty_S.111 grass.111 grass_S.111 grass_br_gr.111 empty_S.111 grassbrown.111 empty_S.111 grassdark.111 grassdark_S.111 grasspond.111 grass_S.111 gray-white-h-marble.111 empty_S.111 gray-white-h-marble.112 empty_S.111 graymarble.111 empty_S.111 green-beige-c-marble.111 empty_S.111 green-beige-c-marble.112 empty_S.111 green-beige-c-marble.113 empty_S.111 green-beige-c-marble.114 empty_S.111 green-white-c-marble.111 empty_S.111 green-white-c-marble.112 empty_S.111 green-white-c-marble.113 empty_S.111 green-white-c-marble.114 empty_S.111 green-white-h-marble.111 empty_S.111 green-white-h-marble.112 empty_S.111 greenmarble.111 empty_S.111 greenmarblelight.111 empty_S.111 greenmarblemedium.111 empty_S.111 hills.111 hills_S.111 hillsrocky.111 hillsrocky_S.111 hole1.111 grass_S.111 ice.111 empty_S.111 ipond.111 empty_S.111 jungle_1.111 jungle_S.111 jungle_2.111 jungle_S.111 largestone.111 empty_S.111 lava.111 lava_S.111 lava.112 lava_S.112 lava.113 lava_S.113 lava.114 lava_S.114 lava.115 lava_S.115 lightgreenmarble.111 empty_S.111 lightmagent-green-p-marble.111 empty_S.111 lightmagent-green-p-marble.112 empty_S.111 lightmagent-green-p-marble.113 empty_S.111 lightmagent-green-p-marble.114 empty_S.111 lightmagent-green-p-marble.121 empty_S.111 lightmagent-green-p-marble.122 empty_S.111 lightmagent-green-p-marble.123 empty_S.111 lightmagent-green-p-marble.124 empty_S.111 lightmagentamarble.111 empty_S.111 magentamarble.111 empty_S.111 magentamarblemedium.111 empty_S.111 marble.111 empty_S.111 marble_blgr.111 empty_S.111 marsh.111 marsh_S.111 mediumston.111 empty_S.111 moun_cave1.111 mountain_S.111 moun_cave2.111 mountain_S.111 mountain1.111 mountain_S.111 mountain2.111 mountain_S.111 mountain4.111 mountain_S.111 mountain5.111 mountain_S.111 oil_sea.111 oil_sea_S.111 oil_sea.112 oil_sea_S.112 oil_sea.113 oil_sea_S.113 oil_sea.114 oil_sea_S.114 pink-beige-c-marble.111 empty_S.111 pink-beige-c-marble.112 empty_S.111 pink-beige-c-marble.113 empty_S.111 pink-beige-c-marble.114 empty_S.111 pinkmarble.111 empty_S.111 pstone_1.111 pstone_1_S.111 pstone_2.111 pstone_1_S.111 pstone_3.111 pstone_1_S.111 pstone_4.111 pstone_4_S.111 quicksilver_sea.111 quicksilver_sea_S.111 quicksilver_sea.112 quicksilver_sea_S.112 quicksilver_sea.113 quicksilver_sea_S.113 quicksilver_sea.114 quicksilver_sea_S.114 redmarble.111 empty_S.111 sea.111 sea_S.111 sea.112 sea_S.112 sea.113 sea_S.113 sea.114 sea_S.114 sea_7.111 empty_S.111 sea_B.111 empty_S.111 sea_D.111 empty_S.111 sea_E.111 empty_S.111 shallow_sea.111 shallow_sea_S.111 shallow_sea.112 shallow_sea_S.112 shallow_sea.113 shallow_sea_S.113 shallow_sea.114 shallow_sea_S.114 slate_b.111 empty_S.111 slate_r.111 empty_S.111 slate_w.111 empty_S.111 smallstone.111 empty_S.111 snow.111 empty_S.111 snow2.111 empty_S.111 snow3.111 empty_S.111 snow4.111 empty_S.111 snow5.111 snow5_S.111 steppe.111 steppe_S.111 stfloor.111 empty_S.111 swamp.111 swamp_S.111 tree_1.111 sgrass_S.111 tree_2.111 sgrass_S.111 treed_hills.111 hills_S.111 wasteland.111 wasteland_S.111 white-beige-c-marble.111 empty_S.111 white-beige-c-marble.112 empty_S.111 white-beige-c-marble.113 empty_S.111 white-beige-c-marble.114 empty_S.111 white-gray-h-marble.111 empty_S.111 white-gray-h-marble.112 empty_S.111 white-gray-x-marble.111 empty_S.111 white-gray-x-marble.112 empty_S.111 white-gray-x-marble.113 empty_S.111 white-gray-x-marble.114 empty_S.111 white-gray-x-marble.115 empty_S.111 white-gray-x-marble.116 empty_S.111 white-gray-x-marble.117 empty_S.111 white-gray-x-marble.118 empty_S.111 white-gray-x-marble.119 empty_S.111 white-green-c-marble.111 empty_S.111 white-green-c-marble.112 empty_S.111 white-green-c-marble.113 empty_S.111 white-green-c-marble.114 empty_S.111 white-green-h-marble.111 empty_S.111 white-green-h-marble.112 empty_S.111 white-green-x-marble.111 empty_S.111 white-green-x-marble.112 empty_S.111 white-green-x-marble.113 empty_S.111 white-green-x-marble.114 empty_S.111 white-green-x-marble.115 empty_S.111 white-green-x-marble.116 empty_S.111 white-green-x-marble.117 empty_S.111 white-green-x-marble.118 empty_S.111 white-green-x-marble.119 empty_S.111 white-pink-c-marble.111 empty_S.111 white-pink-c-marble.112 empty_S.111 white-pink-c-marble.113 empty_S.111 white-pink-c-marble.114 empty_S.111 white-red-c-marble.111 empty_S.111 white-red-c-marble.112 empty_S.111 white-red-c-marble.113 empty_S.111 white-red-c-marble.114 empty_S.111 woodfloor.111 empty_S.111 woodfloor2.111 empty_S.111 woodlarge.111 empty_S.111 woods_1.111 sgrass_S.111 woods_2.111 woods_2_S.111 woods_3.111 sgrass_S.111 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/i18n/��������������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537044�012115� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/i18n/messages.en���������������������������������������������������������������0000644�0000145�0000012�00000000162�11731300542�014155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# English and Default messages # This file can stay mostly empty, all messages are in the source code. LN|English ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/i18n/messages.fr���������������������������������������������������������������0000644�0000145�0000012�00000022154�11731300542�014167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Messages en Français LN|français Your current language is set to: English.|Votre langue actuelle est le français. Available languages:|Langues disponibles: Unknown language.|Langue inconnue. Your current language is set to English.|Votre langue est maintenant le français. Current time is: %02ld:%02ld:%02ld.|Heure actuelle: %02ld:%02ld:%02ld. The first column is the name of the body location.|La première colonne contient le nom de la partie du corps concernée. The second column is how many of those locations your body has.|La seconde, le nombre de telles parties votre corps comporte. The third column is how many slots in that location are available.|La troisième, le nombre de slots que chacune comporte. in your range slot|comme attaque à distance in a human's range slot|comme attaque à distance d'un humain on your arm|à votre bras on a human's arm|au bras d'un humain on your body|sur votre corps on a human's torso|sur le corps d'un humain on your head|sur votre tête on a human's head|sur la tête d'un humain around your neck|autour de votre cou around a humans neck|autour du cou d'un humain in your skill slot|comme compétence in a human's skill slot|comme compétence d'un humain on your finger|à votre doigt on a human's finger|au doigt d'un humain around your shoulders|sur vos épaules around a human's shoulders|sur les épaules d'un humain on your feet|à vos pieds on a human's feet|aux pieds d'un humain on your hands|dans vos mains on a human's hands|dans les mains d'un humain around your wrists|autour de votre poignet around a human's wrist|autour du poignet d'un humain around your waist|autour de votre taille around a human's waist|autour de la taille d'un humain around your legs|à vos jambes around a human's legs|aux jambes d'un humain You are not allowed to wear armor.|Vous ne pouvez pas porter d'armure. You are not allowed to use weapons.|Vous ne pouvez pas porter d'arme. [fixed]%4d used objects: %8d|[fixed]%4d objets utilisés: %8d [fixed]%4d free objects: %8d|[fixed]%4d objets libres: %8d [fixed]%4d active objects: %8d|[fixed]%4d objets actifs: %8d [fixed]%4d players: %8d|[fixed]%4d joueurs: %8d [fixed]%4d maps allocated: %8d|[fixed]%4d cartes allouées: %8d [fixed]%4d maps in memory: %8d|[fixed]%4d cartes en mémoire: %8d [fixed]%4d archetypes: %8d|[fixed]%4d archetypes: %8d [fixed]%4d animations: %8d|[fixed]%4d animations: %8d [fixed]%4d treasurelists %8d|[fixed]%4d treasurelists %8d [fixed]%4ld treasures %8d|[fixed]%4ld trésors %8d [fixed]%4ld artifacts %8d|[fixed]%4ld artéfacts %8d [fixed]%4ld artifacts strngs %8d|[fixed]%4ld chaînes artéfacts: %8d [fixed]%4d artifactlists %8d|[fixed]%4d artifactlists %8d [fixed]Total space allocated:%8d|[fixed]Espace total alloué: %8d [fixed]Total space used: %8d|[fixed]Espace total utilisé: %8d You are in %s. \n %s|Vous êtes dans %s. \n %s players:%d difficulty:%d size:%dx%d start:%dx%d timeout %d|joueurs:%d difficulté:%d taille:%dx%d début:%dx%d timeout %d Heap is corrupted.|Le Tas est corrompu. Heap checks out OK.|Aucune erreur détectée dans le Tas. In the world currently there are:|Pour l'instant, il y a dans le monde entier: %u players in %s|%u joueurs dans %s who failed - out of memory!|who a échoué - mémoire insuffisante ! Total Players (%d) -- WIZ(%d) AFK(%d) BOT(%d)|Total Joueurs (%d) -- WIZ(%d) AFK(%d) BOT(%d) Total Players in %s (%d) -- WIZ(%d) AFK(%d) BOT(%d)|Total Joueurs dans %s (%d) -- WIZ(%d) AFK(%d) BOT(%d) Total Players in party %s (%d) -- WIZ(%d) AFK(%d) BOT(%d)|Total Joueurs dans le groupe %s (%d) -- WIZ(%d) AFK(%d) BOT(%d) You are no longer AFK|Vous êtes à nouveau disponible You are now AFK|Vous êtes marqué comme absent Global debug level is %d.|Niveau global de debogage: %d. 93|Debug est une commande privilégiée. Debug level set to %d.|Niveau de débogage: %d. You will now walk through walls.|Vous pouvez maintenant traverser les murs. You will now be stopped by walls.|Vous serez désormais bloqué par les murs. You can now cast spells anywhere.|Vous pouvez maintenant lancer des sorts n'importe où. You now cannot cast spells in no-magic areas.|Vous ne pouvez plus lancer de sorts dans les zones non-magiques. Set listen to what (presently %d)?|À quel niveau d'écoute faut-il se placer (actuellement: %d)? Verbose level should be positive.|Le niveau de verbosité doit être positif. Your verbose level is now %d.|Niveau de verbosité réglé sur %d. [fixed] Experience: %|[fixed] Expérience: % [fixed] Next Level: %|[fixed] Prochain niveau: % [fixed]\nStat Nat/Real/Max|[fixed]\nStat Nat/Réel/Max [fixed]Str %2d/ %3d/%3d|[fixed]For %2d/ %3d/%3d [fixed]Dex %2d/ %3d/%3d|[fixed]Dex %2d/ %3d/%3d [fixed]Con %2d/ %3d/%3d|[fixed]Con %2d/ %3d/%3d [fixed]Int %2d/ %3d/%3d|[fixed]Int %2d/ %3d/%3d [fixed]Wis %2d/ %3d/%3d|[fixed]Sag %2d/ %3d/%3d [fixed]Pow %2d/ %3d/%3d|[fixed]Pou %2d/ %3d/%3d [fixed]Cha %2d/ %3d/%3d|[fixed]Cha %2d/ %3d/%3d \nAttack Mode: %s|\nMode d'attaque: %s Peaceful|Pacifique [fixed]%s\t%04d %02d %02d %02d %02d %02d|[fixed]%s\t%04d %02d %02d %02d %02d %02d applymode is set to %s|applymode mis sur %s applymode: Unknown options %s, valid options are nochoice, never, always|applymode: %s est une option inconnue, les choix valides sont nochoice, never, always applymode%s set to %s|applymode%s mis sur %s bowmode is set to %s|bowmode est mis sur %s bowmode%s set to %s|bowmode%s mis sur %s petmode is set to %s|petmode est mis sur %s petmode: Unknown options %s, valid options are normal, sad (seek and destroy), defend, arena|petmode: %s est une option inconnue, les choix valides sont normal, sad (trouver et détruire), defend, arena petmode%s set to %s|petmode%s mis sur %s Pets:|Familiers : %d %s - level %d|%d %s - niveau %d [fixed]level %d %s|[fixed]niveau %d %s [fixed]%d/%d HP, %d/%d SP|[fixed]%d/%d HP, %d/%d SP [fixed]Str %d|[fixed]For %d [fixed]Dex %d|[fixed]Dex %d [fixed]Con %d|[fixed]Con %d [fixed]Int %d|[fixed]Int %d [fixed]Wis %d|[fixed]Sag %d [fixed]Cha %d|[fixed]Cha %d [fixed]Pow %d|[fixed]Pou %d [fixed]wc %d damage %d ac %d|[fixed]wc %d dégats %d ac %d You have no pets.|Vous n'avez pas de familier. No such pet.|Pas de familier correspondant. usekeys is set to %s|usekeys mis sur %s usekeys: Unknown option %s, valid options are inventory, keyrings, containers|usekeys: %s est une option inconnue, les choix valides sont inventory, keyrings, containers usekeys%s set to %s|usekeys%s mis sur %s [fixed]%-20s %+5d|[fixed]%-20s %+5d \nNatural skin resistances:|\nRésistances naturelles de peau: Wiz commands:| Commandes DM : Misc help:| Divers : Commands:| Commandes : Wiz commands:| Commandes DM : Communication commands:| Commandes de communication : Commands:| Commandes : Illegal characters in '%s'|Caractère illégal dans '%s' Help about '%s'|Aide sur '%s' No help available on '%s'|Aucune aide disponible sur '%s' Quitting will delete your character.\nAre you sure you want to delete your character (y/n):|Quitter effacera votre personnage.\nÊtes-vous vraiment sûr de vouloir quitter ? (y=oui/n=non): Sounds are turned off.|Les sons sont désactivés. The sounds are enabled.|Les sons sont activés. Password changed cancelled.|Changement du mot de passe annulé. You are not allowed to play.|Vous ne pouvez pas jouer ici. The passwords did not match.|Les mots de passe ne concordent pas. \nWelcome, Brave New Warrior!\n|\nBienvenue, Brave Guerrier !\n You entered the wrong current password.|Vous avez entré un mot de passe incorrect. Please enter your new password, or blank to cancel:|Entrez votre nouveau mot de passe, ou rien pour annuler : Please confirm your new password, or blank to cancel:|Confirmez votre nouveau mot de passe, ou rien pour annuler : The new passwords don't match!|Les nouveaux mots de passe ne correspondent pas ! Password changed.|Mot de passe changé. You cannot change your title.|Vous ne pouvez pas choisir votre titre. Dragons cannot change titles.|Les Dragons ne peuvent changer leur titre. Your title is '%s'.|Votre titre est '%s'. Your title is the default title.|Votre titre est le titre par défaut. Title set to default.|Titre par défaut. Title too long.|Titre trop long. You can not save on unholy ground.|Vous ne pouvez pas sauver sur un sol maudit. You don't deserve to save yet.|Vous n'avez pas encore besoin de sauver. You have been saved.|Sauvegarde effectuée. SAVE FAILED!|SAUVEGARDE IMPOSSIBLE ! You will not attack other players.|Vous n'attaquerez plus les autres joueurs. You will attack other players.|Vous attaquerez les autres joueurs. Your current wimpy level is %d.|Votre niveau de Wimpy est %d. Your new wimpy level is %d.|Votre nouveau niveau de Wimpy est %d. Your pets have been killed.|Vos familiers ont été tués. Killed %d pets.|Tué %d familiers. Couldn't find any suitable pets to kill.|Aucun familier ne correspond. Password change.\nPlease enter your current password, or empty string to cancel.|Modification de mot de passe.\nEntrez votre mot de passe actuel, ou une ligne vide pour annuler. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/crossfire.1��������������������������������������������������������������������0000644�0000145�0000012�00001574573�11732536627�013373� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������IMAGE 937 ./arch/monster/giant/DreadKnight/Bk.x11 ‰PNG  ��� IHDR���@���`���š„Ú���iPLTE������:::333 LLLeeeÿ��(((UUU‰‰‰!!!ÿÿ�ÎÎÎ###�z�ÿÎ�ÿe�---­��TTT�ÿ�Á��&&&‡‡‡�[�™™™¯¯yDDDÄÄÄÉÆ�cccÛVÍ���tRNS�@æØf��îIDATx^í•ÙŠä0 EK’·lµô¾Ïòÿ9÷Æ1Ô4Ý;Í0/u+8Ç’l¨Ý?Ï%—\’&¾Løµg:¥"Àj«`J pJ'¼6u0!` §F·@±ÿ”{h Ÿ® `7¤Ûs5O 'ÚÚ%¹€t…ypŽí8@&9¡”´¡‡ÄòA f°I€¾O"ét•RÚ"ÀÖ <÷¿-"@Ñ„˜ Ñœ O}²Äˆ^€/‡8øAÉ›”¤t.¨s�x;S¦…÷Õm¥§(1B1�oâ)Y ª×0xòu[ ð(CAÃ9äe6¼t]GCý-XÞC�Ãñ;v*ZËKá‡að4»îá弩ÑGºîåH¾BPÌKT8<Fpód•ðñ-Fñª@‘û{x›ø{é{U³ â 9+ ƒ|ß÷X›…`7]— qV «NAèC¸½…B †ɯ ¤_x }îoÙ†š™0ëרŸÃ‹/Ö?2ÜdÚ¹/&9ăÔ ~=¢ ;ì�¿~çÝÁK¸½AäšúÒ 0â [è!@EfÜß;³¯ B*ž2û¡9xïhýZgKèÂ]__cå‹‚ʘ‚v]×9G…d C¥@•|ŽË(L©äƒÎøóÏ×l’ZÞ ¿ßÓ0 O%ïƒ9%¯ûý^apªF_UûCðÃ^•Ï,(Ôò³àû£ _að<o÷ ä-øºA{ fn ~¿f*5:f8&àG¥aß‘§ "ÞÝÍ%@Áì¤Ê@yç½ %Õÿn2Žâ($´\e%c>ïb(· É!Y©­ìÎùRù:±ÒÀ’" ¡vŒw xᛌ’ß,`È·D(x÷囂»±M@þà®í>´ Q¾)ß ÊÕªæÇOfP‹œ¹Tϵ~$jÁ’?W >õî6GÊ9ü_C³ þ .¹ä’?£¢#RdÁé����IEND®B`‚IMAGE 924 ./arch/monster/giant/DreadKnight/Bk.x12 ‰PNG  ��� IHDR���@���`���š„Ú���oPLTE������ 333:::LLL(((!!!UUUeee‰‰‰ÿ��ÿÿ�ÿÎ�ÎÎέ��¯¯yÿe�&&&###,-�™™™�²�TTTÁ��---�‰�‡‡‡ÿ�cccDDD�p�ÄÄÄÉÆ�‚���tRNS�@æØf��ÛIDATx^íÔWoã0`⨻§·kÿÿ7Þ,iBŒXdüp÷àFæÓ.iÄü§¹å–[n™Ì8Ž'€¿VgµZM£Õ™øLµo7f?ši¯õieÔ*+“á³7“f¥™: UO ¦j€£¿â<I°¥Œ&žòû-ŠG@Ì´ŸVÔXÿ.À¾IG*`Ÿ„xÌ ˜ ƒýÇÅÉÜÖ�ü` Éý �› 0g@ß´¾p¥g@ô ";�v©Ï|†(@4€Ö+l ¯MÓP U €A…׿±H-p؃U|¼Î'@É!²¿z;P¸o~=j�à1�½ô¼ºû¦¹Ã À%�˜�+Áý=ðÔÈý@ C׉xÿ(0 H1—¤~ßuà}Á¿4 D �&õ-º.„͆<…>í± x Ó>ŽÀÓóF×à.³(°ÍKÀwÏšàsÛ¹�±@/(ðç™Kø»;GÀ[„øw t„Í ·Ð¾ãRvq­Ùèù®#@+°o÷%B�ìQ þ§¤°Ö©. ˆ±Yc³Áív;6 åÿ—<ëÎ5MãœH…á" OŠˆöS\Hx X�ŒMý A»o¿’€³û^\ì¯×*DÀëcŠbCp¢}Y¯×BÁ‰x%h”‚w k}"7(íGàï;¸S%ó3î@@í3’ëË‚t]ðÞµPàÇCD”^j÷³þÁ¶¢Âºa?Aì;ö!&Ž@BÀ H ûÎZ˜¢ mÁúá�Q, ®pƒœ6ß7… �¨2L©ÜÀÀ|äØ/´–7HÉ�…Ò }ŸÂzî׌0¸ �T €g\¼·•@êÏ÷ê[8Lq€+ö @‹  m+&hÙÏÀL@)�­Ÿ(rÿ@9ðk¾ä{ø·B=P|·ÜrË_¶-"à~¢����IEND®B`‚IMAGE 936 ./arch/monster/giant/DreadKnight/Bk.x13 ‰PNG  ��� IHDR���@���`���š„Ú���lPLTE������333LLLUUUeeeÿÿ�:::((( ‰‰‰ÿ��ÿe�&&&???¯¯yÎÎÎ,-�TTTÿÎ��‰�Á��!!!###‡‡‡---™™™�²��p�cccÉÆ�DDDÄÄÄ•ùÕÍ���tRNS�@æØf��êIDATx^í“×n#9EYÅØYÑÙvÿÿçi‚šUÇÑÃ>L4 ÁÀ=Hª¿ŒþÁ|M¥Mÿ �´éOáð%¸14õ‚Á«BØ&ðòµ#EBÎÏwÐùÛ èbÄÎ]£¢žË·ªm;U(‚+òW&ªÁÒºvÄÀW(Æg;ðmA#?UUÅĬèîÍ¡iHù§ê³â" ©¼÷ò·Ð:ðOÌ´$ð^]T{)W¡wÔÀp8Uß?oó4Q¿C2EÉ÷ä":aÄ9>‘GiÉ&Où†˜I8èÜPfòm}\Ò2ÌÆg×Dhf¾k»K—=(q Cxƒ;7nNÉ#Œûü C8Ÿá˜™�A¯sÎCà8k!04'èä‹»ÈwÈ£¼`BÞ§qõ” AÉyKlEðŠ^_ßICS†ÎÇ3îdˆ^òÎZ2ð5vâ`˜€@zäâTsZAHiìdÂàq…Q/&“^Ùšð'Â+ÕµÖ¢3xä…$$È$1úz½ÂQׂL1*P1]:"ĵÆ[ÐZ0‹%uOÜaŠ•;φ%ŸÐ0(JòÑC�qŽ"` dßþýH†é%/I‰‚@ÉÖ1<Š! s`5"¸Ä¥në[gXò|<͈Cˆ&î’¿åMÑY¾(ÈúJÞØaÁêË E – ±þ0Hðr\øÊC uüøHæ µÖ@Ð÷,†c…|,sH-8ÉD¬b PÈ ­3 oÀ a‚ ÃLj ì!î]×Hp6è58k™¬0å‹ZÕeð¦ gCŒ—VÖG¾<‡LÀ°zù€+Þ’‡à[ è Ù$9õ€àe‹à¾}ƒsS÷‚ yE4"çZîç%Ú" ¨%Œïuö!}1úïÕ‚I¯úc(ÝEõ?6 6ÄÎÎÎ/ü±#Ê×Ò°����IEND®B`‚IMAGE 972 ./arch/monster/giant/DreadKnight/Bk.x14 ‰PNG  ��� IHDR���@���`���š„Ú���oPLTE������333:::LLLÿ��ÿÿ�!!!UUUeee‰‰‰(((ÿe� ÿÎ�&&&ÎÎÎ###­��TTT,-�---Á���‰�ÿ�¯¯y‡‡‡™™™�²�cccDDD�p�ÄÄÄÉÆ�’®›C���tRNS�@æØf�� IDATx^íÖÙrë8 P6¸i÷ºd¿w–ÿÿÆ Ó´Ç¡#Ù3îRå!U}–ó?Î3Ï<óLxˆÜ9ôфŽBˆ&J‚¹‘» ³ˆ×À0}û1æßÄ€i@ä¶�0!Ä»�c�â ÀÀ½?LjgàLh‡r?œVð1ÐÝéW!o� HR¸uUz®€¦ÐrýV¿ ùÁ9 �m œÛ_Dfth¡€D�s+‹%£ðÖu±bn'†qƒy€%ЊðþÖýê((Ry˦žàý(ma¢YœúmƒV²ïþüuÞGi€>èÝS_ö]·F€ò ‚\gýÂ~] M±oz6yþ¶…÷€sî�`×´šb_fïõiûMSמÛÞ{w8DhvmS Dh¸_s€gÅo6LÀívl€bb‰PK#P¿näN‚”†8 Ú÷cõ«Äs•Hyþuù•¨€Fú^€¿_ùέ×Çýº$ÈL¸è°ãe„ÍÁI�çy8JÆ8ƒl^ú®®àαoÝ-Aße*¤'—-÷qkyˆà‹€v4É7ïív»ecÁ:_ÞÂõ·ëÖv]g­�%!ö ‚^"ík, Œ‹�ƒo€Ez™Á$@^ºŸ}R CHÀò «ýÕJœ\Óþ;!Ï€ôiµZ –à„pߎ0¾”/ûÎ.YXÉ¥À1…?ÎÉÊ}>ùþr† üüßÙà9vÉ€ÒçPªÿ,P]{çl~�Q~+—欿*aÕq_ Asì[ŽÀ„¬À`’À€öí0H!‚™T¸¾\‚K‚x‚”*}ÞD'�À,£IsO„üHûÓ�©åh ÂÔ5¾\�Äuíß âà~@`Ž�pA> ¼Tó�í_bÎÙÁ50g‰x¨®T˜TUaSë2L õk�“Ü¿0(ºæî }ÿ­ð`nÏ<óÌ?A%*²Ã­Ž����IEND®B`‚IMAGE 1125 ./arch/monster/giant/DreadKnight/Bk.x15 ‰PNG  ��� IHDR���@���`���š„Ú���rPLTE������ÿ��ÿÿ�ÿe�ÿÎ�‰‰‰¯¯y:::TTTeee333###(((£A�ÎÎÎ LLL¼N�pl+!!!UUU·d�‡‡‡�‰�ÿ�555�²�™™™cccTR6ÄÄÄ�p�---ÉÆ�¿%ˆ���tRNS�@æØf��¡IDATx^íÕWc7 `‘T¹Å½LÝžäÿÿÅR’ïŽqmÙ³ŸÙ‡Áç%Ù÷¿Ë#< ˆ“lðá³S‰djäN ~\‘ïÞŒð‡º»ÏEî¢Ø�áî3”ºmÇ:A«PeD7Qú«›�®UkæùïØ€ÊD÷g'õ(¸�¿ iù êš '€Ú@=Ãéó$ø ÙZRûWkÖ“@NÀ8‚H¨£%ÀYHœ¿Ýn!ì§~`›ƒ³Ð÷ýÖ{Z7)\ÎTarî}OÞú ¥¤ˆ’È}y¾ ~èRµh@=Hbæ.&øòî=µ�A"£+¥Ÿ%ÍÓð×·ßû4ß6@‡Ft.; ý΀*@óýÜŽ±�lLäÀD¨>=ѨæâsfË+€8‰1€£.uÚÆd™ïço Alr0A…ÜGT‡4h¼&å8X ‚”R·Ù¤4R? 0è"À& a»(1 ‚õ]¹×Ðu >åjIb»Å×#’°´÷¤9ö�%õN„îõõøÏq³Á¬V÷è¿\D�"aÌÉ&p¤;@týáååe^ˆÚGÀ° è:ì ¡ßè/úË�Ä�É¿'ç—àsú•¾*æa&ª�Ř˜Å%åÇÅb c¯ÂÂfúN„4,Ñ)%AU¢Nëk ¨ As@pÂå —¾˜´¯Ñ!ìæ? ÌNJœ"'`ýöë{®|¡„ AìÙúao¿v;2ÐSßÏÁå‡$PÔ%}éë7¿Ûí<„…/óÏ‚HÈûfQ@ûIÅÎ{ýàÚXê“\÷H ›�ëÛ&ÀÑÜ «€¦¤„:-Ö´øÙzêÃnB$¤dÀï¨ë,À®>Çv~„Ó8‡°[ç¼»4 ¸…H¿†AÐ7àˆr­¿L �ô5L�Ö5Þ7úõU$J`´ ª°�ÐØ‹â¨uë;¡�-HyOFîChî`ºÈN‚êeýv´4õ-¸*Èägí×|«ïä$Äà«“`ý6‹õ\I œk€(Õá¯?ŸÏ–köÑv°I0Áò X>·�F?¸À, </k¿ [×ÈAÊYâg×�¬m�æýeZoydóÆ”ÑÙ!V³œ g­ög�ºX. 8wBs)j m×îá?> ´/â‘Gù,–'z‘@·t����IEND®B`‚IMAGE 936 ./arch/monster/giant/DreadKnight/Bk.x71 ‰PNG  ��� IHDR���@���`���š„Ú���iPLTE������:::(((333 LLLeeeÿ��ÿÿ�UUU!!!‰‰‰ÿÎ�ÎÎÎ�z�###ÿe�---­��¯¯y&&&Á���[�‡‡‡�ÿ�™™™TTTDDDÄÄÄÉÆ�ccc˜cG!���tRNS�@æØf��íIDATx^í’ÙnãJ E²wIÞu¹Ëÿäv» Œq(óæJ U9lxøë<xð à dü(yU!oz oÊRÚ&ÃÍ9—5¸íG+n(킬ï€LÑ1K)º[Ç‚cËê4ê†r–ƒÑ¸û˜Û„”Œ¼¡‚�BeU�o@ú+¯ú圛Llð+Ⱥ…Œ!«Ø ˆhX ôBT¨DL¹0·À ÒBzÀßy&Ÿº®±g6[ š˜¡¦DTŠúªY}�ü3×�!`,t4À Løó% Ö�Pß9÷V}hæ &v;·û€@—€ü ï Þ>œÛ©æyî` ha÷æüRBÁø>ι�›µ1ˆèë‹èp@†9PJÏ ²sB�œE˜Ç‘Æ”Œ•çÔ|çΣŒqµPmõoR‚/ýé)Æ1j� ½ƒÈ�"Â:ÿéõ+Žc¤Ka$KÀûÖ8#ðªŒBCa¬üà‡(äpðúŸ¢*)ÄhÈ} öZÀþó“ˆx…¶YWônù">è,F`Ä ="|ºåGõ}pãQ©ôš…Ðý�ót:yìG£ 7]0Ão:©î½sΣÁ2Ø ™zóaƒZ`ŒP§ùŸÿ¾×G{Aˆ¤ÔßnkÁ³ 0Euaöðy»Ý²ØK ‹n¨-³~ÃAÀ¶z}½�ÞkÀX ž v�øxñ1ŠÛ† s |þ¯š¼H”‘3Ü&¸­ú<¼­L;ô × þRHdº:Œ¿BðZÐ�YoðÝW‰ é=M“Éî£�&ê,º©7ívZ¹»O6¿ºß€`/ Á¿ö“Mî‹ +TO`ÿû‹k€¦ý}=WÑ%x@óÞÀ¢4Ñu`ºo¢“=@ð¯4Y®ÊDfŸ®¢ ³O×á©ìØ}û ¬gÿàÁƒ_wü ü aðv����IEND®B`‚IMAGE 925 ./arch/monster/giant/DreadKnight/Bk.x72 ‰PNG  ��� IHDR���@���`���š„Ú���oPLTE������ (((333:::LLL‰‰‰UUUeee!!!ÿ��ÿÿ�ÎÎÎ,-�ÿe�ÿÎ�&&&­��###¯¯yÁ���‰�---‡‡‡�²�ÿ�™™™TTTcccDDD�p�ÄÄÄÉÆ�ƹV���tRNS�@æØf��ÜIDATx^í•ÇŽã0DYͤèìÉaÓÿãV“#C°±9>-àÀƒßSuC°Íÿ•{î¹çža˜]3Öòã8 £’üw»]-¯”Ù©eØŽfØSÛBm¨Ð˜- ñŒC•9YS*°™ç3w:È 8€$) l¾¤ùõ?#—Z' ‚ÌnÜŽHaòð††mfü\Àè2¿­<žŒÞ$Á0ü[0 1I€ùK `{õu´ªh�tݹ`«çºÁ؈H"q!0KQhøæL` ¢¼sî™|óˆoâÞÜó»ò °/`Þàù ”·M󸯨áí—[“ol×<ÒP²DÌ+àÁ¹µµM'f �ºO`½†@Äb^ÀÕ!rš†æ%‘¶E«k(&NÞ¹—c hÛ¶Ë,RûŽ|�ñã1ƶ€Í�% °¹Ö?>}~ R‡K¼÷“#Ä'MKÈZŠÔ±ÈÛ(x<ýQA$˜ ‹Xöj`ÿ—£ˆ$‘̱@ |Þj‡PÐr„äVÕâó£òÞZ $çgˆ@¶qioIn6cÇ&ÿÂ� ùŒCqïsÞS ¿‹Ð ϼÒ.D&^ϵ`Jæ?~¿ª"JÌ›Wƒ�(¿Z%ƒ—ðeX€´âAÄ“—Õj%jîÒš¢ ' V"zÈï}ˆQŠø“Á§ Øá5 8)ÄåWÁž3N|É‚*@ïCˆm+¦8’+¸•òÒÛýÌÐõÐ%OŒ€ÿeèJ×Ü1k½T€ÒüÄ+$à"½GßñùM8ñ ˜SªfÉYAg@äT`n0(ä'AƧ!H×ÄÉ\€CSdƒ˜o BþÁ8sP%è· \Hk–x) óVAUô¸ô·5 ´¯Ù"Îj(U€¹dŠy\HsŠy\Š+ýÂ'oàë7PŸïð÷ÜsÏ_ùK!àérc^����IEND®B`‚IMAGE 939 ./arch/monster/giant/DreadKnight/Bk.x73 ‰PNG  ��� IHDR���@���`���š„Ú���lPLTE������:::LLLUUUeeeÿÿ�333(((&&&‰‰‰ÿ��ÿe� ÎÎÎ???¯¯yÿÎ�TTT,-�!!!�²�Á���‰�###‡‡‡---™™™DDD�p�cccÄÄÄÉÆ�1³Êí���tRNS�@æØf��íIDATx^íÓ×®Û0P—[KÚÿÿcfÉbI‘®“§h`øÁÀ-×”úräÈ‘#GÊ{jÿ@ÿ�ð‹@[Mú¿€Ó¨ó×.@O/È’¨ ï m¬wÎqèDÓ3øfuwº[�iêZ­�XÒñL¿nÒÖÃL\Å êTMZ¿8�OÅ‹WTU§êhÔ�b~ñ˜�G xÕxïë%`*<}-NèWäÊñœkuVÞ«E!LØÁUŽÊ,¤ù1A³<CNu¡ôf Qð ƒ, UŒ»cŒa6T¥=ž#�›X\uqÒ×è[!°È2͹©¿¼"BûrÑè??ÛÈ_™·àsV�Ò�ÀZ£ÙÈB¼Æ(/m±u&oN@¬arù6ųãò™ïË#I¿¿¾jò,“Í‚‡¯A `¶ïpæt�@ÍÖ:J9@ïŠoû8s€Ã-ÐŽÒ«H",ÎoMmK¯šS¾hc²*=¾"•ö3€Ì¯5µ-š]×c Itf�²uDê!à])Æ ¢¡f8&)ôÑF¢À†EH‰TÚâÊ{”úßß„�`yÒôÈÜßÀšYG@ú}…À& 9RWò>ÍL �Á}îûžE`ãìD@€:X<ƒ�=³|Ð/M2 0þ\H€œ�3¼ 0 ÖŒB.¬\ ÐOÀgÈýU †9ß"€$ÚN#½ô¹, @m )Yêq�ÅDƒ. pÚ"`„–µ`¦>ÂrŸáµmrnÓ1ˆ�Œý$`$akÝŽ3 ŸÊ·q†<@J»Mý Œd~þvÿ<’ÚJúSຠô? ¨™ïï0ï•nPR;„�æà:Ð>€èv/wÃv�¹ý ìp «Ùܧ9ÙÇì�uwÿöçý#GŽüªÊ#U*G`Á����IEND®B`‚IMAGE 979 ./arch/monster/giant/DreadKnight/Bk.x74 ‰PNG  ��� IHDR���@���`���š„Ú���oPLTE������333:::LLLÿ��ÿÿ�!!!UUUeee‰‰‰((( ÿÎ�&&&---ÎÎÎÿe�TTT###­��Á��,-��‰�ÿ�™™™�²�¯¯y‡‡‡cccDDD�p�ÄÄÄÉÆ�îI���tRNS�@æØf��IDATx^í–Ù²ê8 E½å)#ó‡;t÷ÿcKr‚á’ä$äéV±qñ@±’° æ¯Í#<òHX+ˆkùM0ñVT¢ÄÄ»Q1Ì´·‚@;™´âˆ2È»1ðŠK8 ¢ €©¯³­3,è¢ÄÌÁç!„0.è  OA7NsÜ Š@UÝ‚9(+=LZ�'"RY ÈNÞÈÓ¤ ꨳ@»gôû­È,5Móžø,H›-›aY@ÍWóþ!| ls iŽ!~#�ÑûWøªÚæQŒ . _ÿ4¯µUýãlØp›ñ �èxjš×¨T †¾Šp-Á O}Äë+šòÂB”Çk¨5ÕÀÎ9xϯå.7L&U}¬„ßívÎ{Ï_–U¥†tž™žêéãÑñçgϬGˆ’ ÐD06ã8‰ÔÿüR&ÄPp&®ï!!b‘” µ^ Ï?Ηlp»§'縗ÿDàaàÄ€.fô‡¡å:½ëzØ=KžI˜+C †qÞÙÎÀ6”¥ƒ+|j@éa^îƒ'G)¿SÝפ›mt‚Î ß2y:¬÷;p½Mˆ£¼à€àÖ6Mc-+nOÊp00Ì Ý$õèJ9Ä©ƒ”øÏŠÂ¨ç“ Ê>lp*~¿Wƒ%ød8 ÂðQ�Ó‚;ežöû=‰žæýKAŠ öD²˜ßZwmH×òo²@:à~ª ..×!¾WP£3^[ë9í&oe¢$øü%Ö9_–ôŸC©„f/<íöÂPÍÀÈ× ¶3T03-!… ¨m­Hä³Bd{^ ÒZÅ,� 2¯¯ @—e=Pç\D+ ù ö<fò½@éÜ„1K ÔЕୀ™$™;Ð0¿N€?œoX$(ÞÖ Þ² Kçq@ ε‚E À­ XUH‹%SÄÀÞ(&Ó#GJÙ<n¥šå1g }çj~ù–çþ‘Gù×$í[C>����IEND®B`‚IMAGE 1129 ./arch/monster/giant/DreadKnight/Bk.x75 ‰PNG  ��� IHDR���@���`���š„Ú���rPLTE������ÿ��ÿÿ�ÿe�ÿÎ�‰‰‰¯¯y:::TTTeee333###£A�(((ÎÎÎLLL !!!pl+¼N�UUU·d�555‡‡‡�‰��²�ÄÄÄÿ�™™™cccTR6---ÉÆ��p�Ü‚½ô���tRNS�@æØf��¥IDATx^í–Ù’ã6 E€‹ïKï³&ùÿ_ÌDší.É´ÊÓøVëÁ]>‡�DÑjþø<òÈ#üŸ8–Fî[Íß'"‘[ çóAnäEÎ|s‚„û h€7&`|–ÕÓå ‚:rírý—É  ("'As½ taž¬áÛh>š<+8ÄO|°6¾Ìõþ `¬ Yæ œö> ©Oñ ŠzNA>Î&˜7 àw»Gž‹ 8·ëºnäÙÖæº Ä9r}ß`,Ë#i—̨\ÿ­ÿøÑP”ô}QL® ƒ¨€bËÌ”h‚�Õœ>¾ýÓ?E Ř ‚‹!€lÖ@Y@˜ÁÓR¸Xyý`‚9åÄžžž !bÏÁPN‚øB@-C¯–6¶ć k²ÇetrA0Ä~�o&3xZ/â!Ä,gºï;b\­ÚÁ‘Òœ¯< „t­dõŒA ¡aƒà3ž§ùÃ~OçPH|F^í>r¥Ê/<ÿÀÐýµ\b «Õóßϯ¯-ø˜ïœ¤pÓüËË˾Óz`}í« ÚN`!‚À‹Ìò݆¾ƒ!¢‡¶Må(‘Ât{åõ<XvnL#5MMDñíÁ/”?€Ü-Šp‘¨æe³L (-OÀÁ¯UѰSM±&“FG:½ìiÒå׈¢ýÇ ¤°ÀxáAùŸßß×EÀ^áFR&YÐu£@ùÍæû;z Ö l3ôD g™AêÂ-À»ÍfãÞ×ÅV`-0–ÆóÅ Ø8§ D5¨@xœ‡™â›"°PƒU�°5ƒ&ÌÂͼ­mʯEŒOæ®™p:PGÁÏ_&ˆÑ (M“«/Zn,a½ï¨"‹´ÒÚ}ȇsóxð_&€A¼>”D쇚!¸Òr ŽšV`½6q9,2o à%’ œŠÀ9è`P¥èÛÉÕ=€ ':‡R¯!`†O`Cím™Š -*Ë@ÝàrÙðû –Š€r¦|ƒ „/ž(óEpLTH‚šá‹ôøû• *ªà¸ý"Ø¢åÅ«C|E°}3A m*fßx •9)ÀÓôÄ3€[è*+Eê|›¾:‹RB½‚<Äó­T€j…/ÌñzMÔ@Wó4!Ý–9ÔyªV½•¥þ7¾LàþÜÃ?òÈ#ÿž'¨‹OÌ����IEND®B`‚IMAGE 246 ./arch/monster/dragon/Cwyvern.x31 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE�������Í�ÿÿ�ÿÿÿ€³ÿ9���tRNS�@æØf���•IDATxÚí’Q À C­»ÿ‡£Ëæb‰øg` ÕײµBÖ>ÖuàK,\î=PÖßøò(Å<U Wé=,ÎÄ]M5À]ë¡è¶$ž€äua@8G×öÇ@ðÚ¡+D+÷Í3TžÝ!)- óFçÉ–æ {¢ ŽC¯2Ë¿8Ã@[0ÂŒ3|kNaJ°†^����IEND®B`‚IMAGE 237 ./arch/monster/dragon/Cwyvern.x32 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE�������Í�ÿÿ� ÐÒc���tRNS�@æØf���IDATxÚí“KÀ DÅÞÿÎÝ´2ÄÄ®|‹¦RæÅúi—_}ì#R6ˆc®ó¤·L Oâð ÀwÀê ÀAºF«Ø¨eøŒbÈ&QÝe®HÄÐsOTÔ`GCc’V­ Ð úH‚¢ºŠó¡ƒ¬?:Ú«K­í×Wè+^g˜] ñq.àwkË øk—3¼²µ“Ö‡-����IEND®B`‚IMAGE 245 ./arch/monster/dragon/Cwyvern.x71 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE�������Í�ÿÿ�ÿÿÿ€³ÿ9���tRNS�@æØf���”IDATxÚí’A€ -þÿÏÆ)ݵ,¸±M 3ÒëdC¬~ŒSw5ÿ–’Á—F’P€¸û-§ïnqÏ¿Ê3|Ø ¾BR–ãÍ´x«)BÀ"Î’@ä(aÏØøEú�ÈÓ{¯!qy1˜”¯¤ipÌ4ßÏ!"¼ÿgB7Æcë$O5kàY‘ mcÝJ;‚ídgl“°!tš²����IEND®B`‚IMAGE 236 ./arch/monster/dragon/Cwyvern.x72 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE�������Í�ÿÿ�ÿÿÿ€³ÿ9���tRNS�@æØf���‹IDATxÚí”A €0 “úÿ? ֲѡzëj#™)„jœlHjéó™}ü‰ö–úšÚ*ËžrÕ¦#Éo¡-Ð/VU #K„³€ ÞÒÆ%@r�‚p~ çY ·æ XŒï ÄHóÕÄãŸÊÀºµ^]=™R*7¤õ)8&þœYàŠXˆéš6ÙNvæ½i“åöw#����IEND®B`‚IMAGE 271 ./arch/armour/shield/DShield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���&&&ÿe�™™™Á��ÄÄÄeeeLLL‡‡‡ÎÎÎ333(((¯[.���tRNS�@æØf���“IDATxÚ½ÐÛ Ä EÑ™Öx‰úÿ¿;ÒM[˜˜)=¯{ÄÏËkçܘRª¥€L1Ž| ôÈ aùÕ�úµR  gÍœ˜�º", ‡Bö†M· }Ì"MdO,<Â~e¿i�¾Øu8¡}ç€FV ‚Uº8à ¬€[ÐA_ú*@Ð}Ar?±ws jTR����IEND®B`‚IMAGE 284 ./arch/armour/shield/DShield.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���&&&ÿ��Á��™™™ÿÎ�ÿe�ÄÄÄeee‡‡‡LLLÎÎÎ333(((Eív´���tRNS�@æØf���šIDATxÚ½ÐÁ à EÑ6‰õÿÿo+^ÒBu6Rú¶÷0ˆ?ïºgÆ”RÉ4ôó<[î}reMŒ€|‹2�ú{9€91{”÷)è6/Éo6ðÎÉ9_Ûæ@!\!h .žbà™ãWV„‡€g L�'T eÍâ^¡[€¶àÀ øº!èK�A_º-è¿Ü ÌH]ÇË����IEND®B`‚IMAGE 292 ./arch/armour/shield/DShield.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���&&&ÿ��ÿe�™™™ÿÎ�ÄÄÄeeeÁ��LLL‡‡‡ÎÎÎ333(((6 sÒ���tRNS�@æØf���¢IDATxÚ½ÐÛ Ã „á6ëßÿm«²ÐÑ)rø?6ן÷Œ-cŒ1§DÝ{_sÐ@.X ‡Èz·¥D õD%„vb Â!ª*G˜þ9+8¥,Þw{Úë8÷87Oÿ„:q*í•eP:�ðîàÈ€Z.X€šÕ�‹±l ;À„uÖ7�ú&€ Ný‡û�œå&Ý����IEND®B`‚IMAGE 1779 ./arch/monster/demon/GreatDemon/GreatDemon.x11 ‰PNG  ��� IHDR���À���à���b®™���PLTEet-���ÿ��ÿÿ�ÿÿÿ^wM)���tRNS�@æØf��’IDATxÚíœÑvë*DUÅüÿ7ÏÜŽëBcšˆc¯Õû!±e[Ô6-$"EW’$I’$I’$I’$I’$I’$I’$GÁ…ïÎ|yðë|·@ùz~¿À�,åëxL�”ƒø~à ú~œP[ž(ó݆5äyùIü¬Ú—ë"Ô ºNáyPlþýÝ8 ¥VÐ1yÁ*Ô �„y›ðÑ1¯fSB#ƒf ¼/YeSÈ¥ü8×¥Œ‹§IêåW>r‘͈€YB‡çO/4(¦qð* 'þvAÚÏLÁš-"–2Úˆp¶=›B;m –¢yCó>yVrV`TåµsUt=5§þïùA= å–š8jÐæ²=Z¢€ãùÍ7o+3ŒÁÙümå ·Xå\1�NæGGÁOêÊEœk·_Xj\m¹Ê?WÀ©.øwþ¡ƒF ¿18Õ“²¶j$§8µ4ߨ8ŽÄŒ‚5]xR@Ú4¾IÏ@Ÿy\`æý853 ôxP@ãŠ[Ðö÷SOÏšü„x=1É=A6&Ï  áÕ:&4Nù=-@bB¬}º@_¤Ï]>,À>Yó„ïòOÍÉF�–ßDÏÛ}Å£]€©€ýKÄjÑr^ÀB®æo ž«!§Ê•gˆ»ê¿Ãª7¿o€‚óû¤~bñèï jÐ (»{°ó}"o<ïó-×€¡Edjz›?ËŸ¨lv�Í$ŸþHZ…Î °{B°Íß.ûuQ´€Ú.JmiXØŸ5ƒk  X€ëÚ\L8ßàµ$T o½éæA}ÿœ ˆ±�N€2hFùIß zn3ÞÍ’o]TjàN¢§íÔ{»}5¿m"N�•iûv¤çXÀŸ“õÝqH@%Φ¬Üü~=…íÄV+ e-ÿ¬E˜Üú¶ó w_|…ü�"Ôr�$ÕZæ—ÀŽi/>¾/@læ¿c@:/øèÈØØ{<ÃkÖ#¬l4QByÕ¶/�’& 5ê"ÓæåÏàdÁX . 8½ ø¯ƒ�H`½¸Ík´+9/0ž©¹Œ „ K+5&7öKB‹dpD€äÆqcð¨€òß‚†ÆßHO›iL~k ÃeŒ�©ŸQ 6Þ³{p€=¯m*o G¿8/ÀÎ@x”ÀÑ9™ ñÅäŠøaÝû~{Vc‚Ÿ0­ge¼DË< Àöɺzœüûþ*\?O8mþ‡ØåÿÍ•˜®�´¾I|úò�ÃŒ›ß7XÏO ÄÜÉÏ…üãC¦-ÇÀÍïŸÝÆWþ­úF~Ò0ñ•[À¦°évòëo¤}zC`žƒ\ï€9Ãn~¤hѯìG8h Ök¢¹à ºuäPë}~zJnþñiå�”ß[×Ôz·„î —ÝŒ `"àçŸÜ›¡­·m®iµ·Ððh^MÒÜÎ?˜¡¶›ùk~c@Öaºæ¯Ä \@c°u,7¬ß*PŠ» /s]h›eߨ<Š3chañŽP#ÐÓŒT; i &»1n éå¿E›QÏuIÖP@Ïo ¿> ä$+Ûóq]F`Ï V¿òo È@‹0;ÿÊ-µ0›]µ£66:À”våê€}kˆVÌ«v´òasIž0(¥@ùÕjˆ)Öx ¥Pµ©VƒfÃ×Cƒ• T$à(ܵz[@¬lôŠ][ÄqÜ8ßyw,5ûM=ºN ܾÀ×ü™AüÛ�–îäŒ`T~ ü ü2M PÃÿV~ÑÝì‘uê:77È®"tŠŠ”@ AÓ’¹WI”À?ÉÁr¹ŒÎP¨‘+¬€$ðÓÃT®;xý¿X+@}XÔ‘ùÿëP1ÀàäBœ€(5޼½‡V¶)�'ÿ¬qZ™ â󿾯§òG€ˆÏ/^ý °¶(µ…ò?ââ“Æ ùŸuí:ƒ�)lä×A¦5 Š?Ê€É_8¾ÓSý–Dh~ý¥/ävæ~a?£óÇßY¬æ7-ùÐü¥ÆàsoÊ_ßðáùkÎWÊî„~¢»¬(õY… ë-läO7PH¼¸¾•?I’$I’$I’$I’$I’$I’$I’$I’$¹ÇFçF„DfÀ����IEND®B`‚IMAGE 400 ./arch/armour/mail/Pdragonmail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���DDDwww:::### 000BBB[[[ÿ™™‰‰‰ÿee™��8��î��� �²”#Þ���tRNS�@æØf��IDATxÚ’‹ŽÃ Û†‚1¶÷ÿÿö6ÖåÑÝe"ØŒñ¸ðOŒ˜Lï £#ÙÖIP8 ˜ÙÀ³Ç‡0úˆì�‚sC?Ô4ìæŒLwA¬ÉŽ tyÒ�ìW0�ÁT궃hEæIšÐ§ ¶D·Ü`›©² ¢ðZ±áî@ÑRó€·ÚÄ]›“æÈô*…¾ÐðÅ)_>+^ÚuYäÕÖ‚‰pb* ´âZTJo˜ Ü›jžAæQYÜE@æÂ90€àèAr†‹ëa|RÄå=…À;ÂÞÙôeÀb€Y ´1ÂpÆ.Œ‰€¼aï.;ð!äMýòþžOøý]Èl_žísv‡aéößmÈ����IEND®B`‚IMAGE 401 ./arch/armour/mail/Pdragonmail.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���DDDwww:::###BBB 000[[[ÿ™™‰‰‰ÿee™��8��î��� �C)Œ���tRNS�@æØf��IDATxÚ•’‹ŽÃ ÛŠmŒ÷ÿÿö6¾&Mtí ‚edâòÀ‡13ÿº"ÙæIPxp÷=€f—¡k¬Ç=hit+Á 0ÝCÀ=V$w`º¯Ë•àÁSiÛb ™'i®&x*¶åßL“]-Àh c  hiχ¹`ÔVe «ƒÔL ­ÂBc°Óv~|–¸™Ù²È­* L„S¥–aŤXÅ\àÞUàÙõ÷ 2ˆ­×™ ˆÁ†©�›ÉNB(®áì)â´N!pð{Vz3àÑÁ,Úèá8 }úD�”É}…S^„ü©/Aþßã ßï…ÌöéÁ>eŸøsõ¬ÄŒˆ����IEND®B`‚IMAGE 791 ./arch/construct/town/a_civic.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ���PLTEÿÿÿ���ÿÿÿ�îî�‹‹�ÿÿ¿¿¿@@@_@ª���tRNS�@æØf��ªIDATxÚ혎£0 Dw Iùÿ/¾†1Là8®6¬VZ1¢ÒÆ2óêNÚnúõèÑ£Ÿ�îï•06DzÃþãPìö^ í»»WBJ)vw¯˜"½Ñ`0ÜÝ+!p2þ•Sç{>¦eu&õæ€ý[¸´…D“FŒÀõ-Ôð¶ß®ra -ªÐ“'aÝBæZ�pÌ€‘N�Xý ÇŽ`¥‰€Ü‚Q`qo*V¬°l†Ô�ò'€Þ®Á¬J�;�`5_¥Ì„¹žK *°¸-àbÆR�ØÀ ÜÛý‹@@b�ÀvþTÍ�`�¬î3ÀD <€�\Œ’�Ø  pmp°‹äOB2n¡À»ÿ$�¨G� $'PÌÛ °½¡ÿ}�@Â@= ÿBÿ;�¾à�"\à`Øø—Zí@?NY ´¿#d-ˆhÚßð@¤‚¢ÅÅØ�.Ž%ÀÜŒÃç€Ö ™'»¶8ì x²ûß�°72Ov;�€#�{£�èß.ÚzIÌ…BF{8ÀåÔ¥ �{£€ùh€yùzÁúŠÜ?2Ðl x Š­Ma€[ÂÜVþªÄ ¹!ð€½Q�<ÔsÿÌ•½N¤ a�ý?RôÀ>°7 øÌ?w ÄšÀ¬SkÊ(s@$ }8•,  ÿ„³Ô?âèMŒó¯ s§O—�Üoš^0p釄þö ô'€…xÄè½?*°#ÿSÎ :€ ê¶þý'Ô‘�;�µ)¤P~Ó|iƒÂXÊm!à2^†Zÿ*Q €îé ¨ÔZëzƒÒL0ªë½*½>¿è‡«ô�X§ï�lõõèÑ£G~þ�ù©³äíÌ����IEND®B`‚IMAGE 163 ./arch/armour/helmet/a_helmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿ���¿¿¿ÃQU6���tRNS�@æØf���BIDATxÚí± � àÎÿ7S ±A[½ÚÊVìá{€°šàì#‘„ RwáÌÀk>`yÜ îíÈÔŤx_%4|K����IEND®B`‚IMAGE 185 ./arch/monster/humanoid/Arabic/a_townsman.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V²""ðæŒ���ÿÿÿÿÿ�eÍl���tRNS�@æØf���UIDATx^µÏ± À@ @ƒ'!ü½ Bû¯’Z)>M^å¡BŠI¼`Îúhäø ¼@РÕ*$%r ãÒ9 a;$Æß­ZßdÅÆ<Šz”xˆ¶����IEND®B`‚IMAGE 199 ./arch/monster/humanoid/Arabic/a_townsman2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiðæŒ.‹W���ÿÿÿÿ×�Ú,Òá���tRNS�@æØf���`IDATxÚÕ‘A�!E*ÿòž f6â¥jãxO�jaµDѳIU¾Yù€)ú7F`u_iY�¢ªâ&ÈŠˆH ¬q@¶üÿYY¯[SûzO{7±Ç7k´����IEND®B`‚IMAGE 200 ./arch/monster/humanoid/Arabic/a_townsman3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿÿ.‹W���ÿÿÿ��ÿ�Σ(���tRNS�@æØf���aIDATxÚÕ‘A �! ĬFÿÿäíà^;¼ì+B"¶ïÁɃ÷sÎSÁÅ‚À{áü€ãÇ@ãAéÙ¾*ˆ7ˆ:XéWЖС*zúŽyg4pÿ ´.@ソý1¯*±%D����IEND®B`‚IMAGE 192 ./arch/player/class/Wizardry/alchemist.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�Í����.‹W{6¿���tRNS�@æØf���bIDATxÚÕÑ1À0Aÿÿs°-Ki U oËèš÷E×$þ H0Ï¢C"„™L‰�XÓ>€·m ò ìMx`ÖÀ©}Žíb�Âê(ç=ƒ¹•|7îêg™¼?âß‹����IEND®B`‚IMAGE 192 ./arch/player/class/Wizardry/alchemist.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�Í����.‹W{6¿���tRNS�@æØf���bIDATxÚÕÑ1À0Aÿÿs°-Ki U oËèš÷E×$þ H0Ï¢C"„™L‰�XÓ>€·m ò ìMx`ÖÀ©}Žíb�Âê(ç=ƒ¹•|7îêg™¼?âß‹����IEND®B`‚IMAGE 215 ./arch/player/class/Wizardry/alchemist.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿÿÿ¿¿¿�Í�.‹W���ßÉ)I���tRNS�@æØf���pIDATxÚÕÑA€ CQdÚÞÿÈ–àÂÄt\¸ò»ìK 0þ˜\»Ã©Äq|�’H¼í$¥°SL‹g©]j•vŒ€v`ïŒÇ€ŸC»¼Ïò7+ƒ2¨ Dõÿ¸.š0 À™Ø´`¥°Ã-À½ñ«NËq(EÊ9����IEND®B`‚IMAGE 215 ./arch/player/class/Wizardry/alchemist.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿÿÿ¿¿¿�Í�.‹W���ßÉ)I���tRNS�@æØf���pIDATxÚÕÑA€ CQdÚÞÿÈ–àÂÄt\¸ò»ìK 0þ˜\»Ã©Äq|�’H¼í$¥°SL‹g©]j•vŒ€v`ïŒÇ€ŸC»¼Ïò7+ƒ2¨ Dõÿ¸.š0 À™Ø´`¥°Ã-À½ñ«NËq(EÊ9����IEND®B`‚IMAGE 210 ./arch/player/class/Wizardry/alchemist.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿÿÿ¿¿¿�Í�.‹W���ßÉ)I���tRNS�@æØf���kIDATxÚÕÐ;€0 QÀZÝÿȈOAc§fSúM2ñöÇœæ¹4 kß3°A«9àÆ#…XîÀÓ�êny-�Yb@4À(`Z¶ï†ùQ9Gõ ªÆóï¢Q`óË3‚Ô¥ 5àÛö«N:cY’v'����IEND®B`‚IMAGE 210 ./arch/player/class/Wizardry/alchemist.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿÿÿ¿¿¿�Í�.‹W���ßÉ)I���tRNS�@æØf���kIDATxÚÕÐ;€0 QÀZÝÿȈOAc§fSúM2ñöÇœæ¹4 kß3°A«9àÆ#…XîÀÓ�êny-�Yb@4À(`Z¶ï†ùQ9Gõ ªÆóï¢Q`óË3‚Ô¥ 5àÛö«N:cY’v'����IEND®B`‚IMAGE 201 ./arch/player/class/Wizardry/alchemist.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ�Í����.‹W1Ã8ô���tRNS�@æØf���hIDATxÚÕÁ €P Ã4Ëÿ³ó¡à¥¼Øi¡”nÿ£šñZ“°nÍ5úÃy£Dm# ¨QàŽHÑ!lp%ä\ £‘‡`‘·¬‹,¨4yj<!v”Å«`˜gpˆ¨'Û¿8�÷žu¡+i����IEND®B`‚IMAGE 201 ./arch/player/class/Wizardry/alchemist.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ�Í����.‹W1Ã8ô���tRNS�@æØf���hIDATxÚÕÁ €P Ã4Ëÿ³ó¡à¥¼Øi¡”nÿ£šñZ“°nÍ5úÃy£Dm# ¨QàŽHÑ!lp%ä\ £‘‡`‘·¬‹,¨4yj<!v”Å«`˜gpˆ¨'Û¿8�÷žu¡+i����IEND®B`‚IMAGE 234 ./arch/monster/angel/angel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ@@@���Êöó���tRNS�@æØf���†IDATxÚÍ’A À S³óÿ/—`%B·ž; dÁ6~†zòk/4Ò.ÛB)<®aîÅœä\\Ô$¨U8\!*U¸À�‘™¶0˜$` -!‘Ä[ ÷ÃÐavÁ‡Dœ ¢Î.ØÍVð‚¾ß§0 ü‰–"XF|€8 ÐÆ¯¸ çÓrœ:����IEND®B`‚IMAGE 242 ./arch/monster/angel/angel.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ¿¿¿@@@���ñsÔ˜���tRNS�@æØf���‹IDATxÚÕQ €0 Cã¶äþGÖJ!èìüÕm^løMñàzH¸Ñã³�Qn/Hï=òí8ÙÙ�Ü1¢†áæN“D aÿ!ò¨q^œ^L$eÎ)L É‚fÀ Ñ�gàLQ�+b¥!6Ü!&!@Eî¯ÀР*7ñÚÐj3cÞ����IEND®B`‚IMAGE 234 ./arch/monster/angel/angel.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ@@@���Êöó���tRNS�@æØf���†IDATxÚÍ’A À S³óÿ/—`%B·ž; dÁ6~†zòk/4Ò.ÛB)<®aîÅœä\\Ô$¨U8\!*U¸À�‘™¶0˜$` -!‘Ä[ ÷ÃÐavÁ‡Dœ ¢Î.ØÍVð‚¾ß§0 ü‰–"XF|€8 ÐÆ¯¸ çÓrœ:����IEND®B`‚IMAGE 242 ./arch/monster/angel/angel.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ¿¿¿@@@���ñsÔ˜���tRNS�@æØf���‹IDATxÚÕQ €0 Cã¶äþGÖJ!èìüÕm^løMñàzH¸Ñã³�Qn/Hï=òí8ÙÙ�Ü1¢†áæN“D aÿ!ò¨q^œ^L$eÎ)L É‚fÀ Ñ�gàLQ�+b¥!6Ü!&!@Eî¯ÀР*7ñÚÐj3cÞ����IEND®B`‚IMAGE 234 ./arch/monster/angel/angel.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ@@@���Êöó���tRNS�@æØf���†IDATxÚÍ’A À S³óÿ/—`%B·ž; dÁ6~†zòk/4Ò.ÛB)<®aîÅœä\\Ô$¨U8\!*U¸À�‘™¶0˜$` -!‘Ä[ ÷ÃÐavÁ‡Dœ ¢Î.ØÍVð‚¾ß§0 ü‰–"XF|€8 ÐÆ¯¸ çÓrœ:����IEND®B`‚IMAGE 242 ./arch/monster/angel/angel.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ¿¿¿@@@���ñsÔ˜���tRNS�@æØf���‹IDATxÚÕQ €0 Cã¶äþGÖJ!èìüÕm^løMñàzH¸Ñã³�Qn/Hï=òí8ÙÙ�Ü1¢†áæN“D aÿ!ò¨q^œ^L$eÎ)L É‚fÀ Ñ�gàLQ�+b¥!6Ü!&!@Eî¯ÀР*7ñÚÐj3cÞ����IEND®B`‚IMAGE 234 ./arch/monster/angel/angel.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ@@@���Êöó���tRNS�@æØf���†IDATxÚÍ’A À S³óÿ/—`%B·ž; dÁ6~†zòk/4Ò.ÛB)<®aîÅœä\\Ô$¨U8\!*U¸À�‘™¶0˜$` -!‘Ä[ ÷ÃÐavÁ‡Dœ ¢Î.ØÍVð‚¾ß§0 ü‰–"XF|€8 ÐÆ¯¸ çÓrœ:����IEND®B`‚IMAGE 242 ./arch/monster/angel/angel.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿÿ¿¿¿@@@���ñsÔ˜���tRNS�@æØf���‹IDATxÚÕQ €0 Cã¶äþGÖJ!èìüÕm^løMñàzH¸Ñã³�Qn/Hï=òí8ÙÙ�Ü1¢†áæN“D aÿ!ò¨q^œ^L$eÎ)L É‚fÀ Ñ�gàLQ�+b¥!6Ü!&!@Eî¯ÀР*7ñÚÐj3cÞ����IEND®B`‚IMAGE 311 ./arch/monster/angel/angelknight.x11 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE������¼¼¼ÑÑÑÿñ2ÿÿÿ_çe$���tRNS�@æØf���ÓIDATx^ÝÒÁQÆ0 „Q©}‚`«áJrpÿ­ ‰cÿÃtYÏ›Ù=Yþáé+¼Û À ˜F3¦Ý´V;â‚­ï vÄåíí½#ìÀ pÁÖ=ZzkÙ÷{¢VÏZ·¾*¸Ÿ•Ì jq°GÛ€ÍÛ¹zt'<>nðìî9Á¬àÙ&8Þ�bO¼.P€µé3˜Qú/P좵xu»7LSÜôHoÈ‚)rÃù Ó8ý{°ã Ÿ¡ˆøˆ0ƒ7ÓÈ Àäß'²4Ÿ?ò����IEND®B`‚IMAGE 2788 ./arch/monster/angel/archangel.x11 ‰PNG  ��� IHDR���@���`���š„Ú��¾PLTE���úúüþþüææäööôÞÚÔêêìîîíòòôÎÊÌ–~l¢Št¶¶´ ÖÖÔ*"*&$êêä:2,NB:^NDn^L‚n\¢šŒ^VT nfdzz|~~}**,‚‚„–Š|žžœ¦¦¤²²´:64ºº¼BBDÒÎÈÖÒÏ""$FFDÞÞÝââäNFDRRTÆÆÄ&&$®¦œ’’”ÎÎÎ>>>ÊÊÌ®’|JFDƲ¤NJD664ŽŽŒVVVÂÂÄŠŠŒJJL::4¦Žx^RK––”bRL––œª–„ššœžš”::<ªšŒ>:7²žŒ¦¢¡º¢ŒZZ\^ZYªª¬bZ\^^\.*'¾¶¬ºº´rfT¾º·B><jjlÒÆ¼njirjdrnh..,ÒÒÔvrqzrtÚÖÔÚÚÜ‚rd‚vl2.,æâä~zt~z|†zt224òîô.&$úúôŠ‚|–‚t–’>61††„úöô†‚|""º¦”vnlºªœ~n\º²¬Â²¤š‚rІ„º¶°Ž†€Â¶¨ž†tVRTrrl¾¾¼Î¾´b^TJJD’ŽŒ¢Žzbbd’’ŒÒÒÌvvtzvtš’Œª’|jb\Švdffdjfd‚zl êæä²–„‚z|îêì RNLòò즞”öòô†~x¢¢¤úöüVNL¶¢Œ"®®®–Ž|VJANNTjbdŠ‚t~rlŽ‚|ƶ¦š–”ž–Œ¢–κ¬–‚lšš”ZVTÆÂ¿Ò´†rdÆÆÌ**$ÊÊÄnf\~vtÒÊÄ®šŒ–†t¢žœš†|bVL¢¢œÚÖ̶žŒÚÚÔFBARF<âÚÔª¢œâÞàââÜžŠ|JB<fZTª¦¤nnoúòl¶¦”22,¾¦”–ŽŒZRLf^\ªœ¾®œÂ®œ²²¬F><¶²´‚‚|Ä‹3���tRNS�@æØf��ÔIDATx^µ–ã—+͇{ïB3vƶulÛ¶m½¶mÛ¼¶mÛÖq«ª{%™3ÝófÎ]wçÃLzõïé§ö®T¢ýß+$ë‰ÿ^–@\q\\!Bå ¤+$p’H~…yE@YWš×ÈlÕ>ƒ—¨[¹¿ºT b Èz³£½87^¾{ù”)ï*è6þ�½zˆx¥õuùöA@ÛÕïÈZD¥€±-n`ýc�ÛºòûÑ-Ö6Ó4{`MV™Dëñjß|å\@¯ g¶Ûƒ  ®Uúk,©ôö/`³‰…:  v ‚°£2ð`¯ÂG|óýAÝ .áÈJà¿õ®�¼%gô(S€_ÀdªÖjš U Oò†'„pZ<b¶áÂëýòõ€È jPê"à Õ?è*½ø/M;ÓââÌßLB 03]˜Ý!~»B!Âký» ÅÂ×û,`2iXêÎHuÿEO€}·2´`ŽŠÌòa-ZÈLwƃ‰<¨‹ìåù¼º–)ݾ-;Ä+`Ìý[¹gŽ#üâÆ‰ÆPÕ…AßxÆÂ’R°–×V¼rA �ZÓŸN2]ú5Qß]8º–¾{ê0“Yiíþæ'e˜õQ¿|õ¬Ñq{óu׺IUêÑ:´B�&õûZFåGž¾Ÿ•lK÷ßžÓ‹‘5G}{8ˆˆÝÖ;O¨xQ� €w?v•UÃý�]´0-ÌaŒ�˜øæ×Ô…|÷¡QˆcË=.PD|ƒtû®@êE0<@ý[à+ ™# ¸/ ¿ zoAð�¸#ÎCþ§Ñ5=K# 6(€öy-Ô5¯Û›dlCO€�"þ°5� qÞ¸ÑXr6P�b‰ €ªö>N;?(�Ø3?®UuDåá'w¸8V�ÑÞrú… @¥×Äi0P�þ\·{F  Sgi…á 0VÀÜùolŠzUâÔE×–Ü:F�¯z� óÕ�@cL´w¸»ÉñN¸Làgt"{erPcÊ`öë®ÀïÎ <GG 0ºïI@‹íåK8‚($_fª}[gXøÐI«T€=±åIÆ,È�^UŸ…=·È{‘aïk÷•Àáã×MûK°ŽÊ€1ªïÆõß0/®EóŽäiQàšvknTtöìê�@“¬Ž10ÛÛ„`0´’Řïþï“OíþƒŒ.—€«;À—ÏÄ Ô лÉÀÁʵ€ЄÊÅðµN@´æ Šebì¯à �¾ØŽØ}ñl$ê‘7·ö ¨OGP:öYž€¨íâ:OPÛß z¯4ØyDF¶ÖZÖü¼x!=©cSH»0°„õ"~ñK2йA�6ÇŠh6,Åæ–0P'?)"6ðÄA0í—à HNÛ.h iB�VÊ­zv#2fo`è (} ¾F�ˆnpÀÐéºx uø}@†sv$#OÚE èw¤Gz‘uVZU*�´­uš�4)áY+�:*%à;JìEÂäfæX«tñèj™˜g– èLjê3@OiþµYõ ëo4õª¹ˆµw²RJ|"Êû(LÕj¦áÚ¶ê oú*>Û "å PHºaWN*ž'»ú©˜²Ú6ÔlùìëL:@uJ¥×+Úìƒùùç#Hm=éF›lã8€ÇE¶m¢†¾­.aS;¢S)D`zL§zUT¯f[�ؘZ·ÀN €×Ť` @ž 83IÙbÓd;?™ ƒmÂÀ›£A…‚pn¹wˆÎvü?8´M·m]uQ¨Pˆ,"ãž5Ù†øuÆ01¬GD&)™Cu[ rÏø€®¹“:g �”­ Se“T 5 }P§vÅø�­ÿÌ®è£( iIšL" ÐuÛø@€&÷ÉLµý ~ÌŽØÉd’"•=Ðc‚Ž{€ñ!³"ZuÏSÛ¦F’Ê<Ó#4f/Šs­ŒêR_“d­ë1�!’5|4›&Z95ˆÀ["¶N‘R�Õƒ|•ãdxY€Æ·­}ß86,fg "úÔŠ£áÛ–”g «Ÿ4MeV´VT5ˆaÔnè[”»{ÕÍóµòªqOeù4!‰ÖŠŠªª¾ÄÊK¯¹õïkeV”óô¯^rRbͼ‘ÂUagÝMWkeI=3}]Ž€}Ÿ; Ÿ!�¤·¯yj;)¾½mÙÂ\œ—ç©Lö+ßËÅ ïÓ`Y2L.»ì½ïœ/¾ë†‰�x&묻ÿÛE@já]7|„OÈ`ê?>w©è¿yúfL ð£éŸúM1Af¼´ì§Ü}Ó­N”võ’Úå÷à©éïýºôç®MÄÀYöýQ’€gœË¶M<31ƒ´“U#(]B¶ BÈ{‘t.=J ÄÇáeçC•(ry6ì8©²ó¡xÖ€PñÅ39'œ“r $'¦^H+ƒl.œË¦S¤,‚dGt:-Ù\†—Eà—„J œ’Î:Š[F^,8Wk(eÄÓŽhMèƒ ©œã„ÃÅ.W–Iór Ä‚3¹\š„Æˆ—.ï>'"?–pyú¿w™,£]Hq����IEND®B`‚IMAGE 2795 ./arch/monster/angel/archangel.x12 ‰PNG  ��� IHDR���@���`���š„Ú��ÇPLTE���úúüææäþþüööôÎÊÌÞÚÔêêäêêìîîìòòô–~lÒÒÔÖÖÔÚÚÜÞÞÞNB:^NDn^L‚n\ ¢Štööüúúô¶¶´*"*&$ÊÊÌ""$&&$–Š|––”®¦®®­**,ºº¼ÂÂÄrrt..,:2,::<RRTVVT^VT~~ffdnfd FFDª’|ÎÎÔ..4ââäÎÎÌîîô>>DúöôÆÆÄÖÒÔªª¬nnl224¢šŒªšŒ²žŒ^RLbRL""²²´¶²´Â²¤Æ²¤66<ZZ\¾¾¼¾¾Äb^\:64bbd::4**$jjlnjdBBDÚÖÔFBD‚rdzvtâÞÜ‚vlæâä.*,êæä‚‚„îê䊂„–‚tòò슆„öòôŠŠŒŽŠ„NFDúöüJJLŽŽŒšŽ„&&,žžœ ºªœvvt²®¬FFLZZTŠvdzz|‚zlƶ¤ºº´JFDbZTfZP¼^^\ÊÆÄ–‚l^^dš‚t¾¦”ÒÒÌ–†tž†tVJANNLjfdNNTBB<¦ŽxRRLrjd®’|ª–„šš”îêìššœ²–„664~n\$ ¢¢¤¦¢¤¦¦§ª¦œzrt¶¦”žŠ|†‚„^ZTº¦”úòlzzt^Z\~zt ªœ.*$®œ‚‚|"RF<>64j^Tº¶´Â¶¤Ž‚|NJLRJD¾º¼Îº¬††„jb\¾¼Æ¾¼Î¾´jbd&ŠŠ„ÆÆÌ nf\rfT’Š„RNDjjdB:<>>4>><¢Ž|vjd’’”–’Œ2.,rnlZRLêâÜ22,ææìrrl.&$vrtzrl22<~rl¢žœ¢ž¤ZVT¶žŒ†rdª¢”JB<²¢”º¢Œ624~vtgõ š���tRNS�@æØf��ÒIDATx^µ•ó—,¿Åë$)£iŒmûÚ¶m_Û¶­gÛ¶m[ÄKRY]=S=u{î[owÿÒgfjŸ“³*Òÿ]*ÓÿbS0"ØÎ\%Bøé* ¶U(Xv°?˜€™®Ö/YÝ*“ý»²Äm#u“ BÀdîí®€p¹¦u8rçwGJJ/°«ÏŽJBvªnÀÖ0Æ�Ù–¾K£2.> J½ÍU/–õß«c  ßÌŠë‹#¨`¿�4 ã,meü›éó… 4K·GÝ#7ÖÀ< ãæ”ðkÀáNÑÅÆç€—?w÷o"˜ÉxÜçïœ#¼®#ä†Ü²_ÀðVXó+à8s­Ðqý¦að‡D¶°jAý#6�ñ”ŒÑí4r?Ñ‘ŽÁ\U#,ò\ææŒIª>/pÄ|rª‡)�!†KuTK—çˆ�xö“RÝçM�÷§V=ð<�š ݤXÑ5`½ÜCÌ×¶×=K²Œ Y¾½ Aɉa0Zv|°Ð�¼¸wÏè¡zÀ&«â›á!„K„¸¸¯<à¾öçÝQàe LTáIâyVÞõ Â0‘“ò¶®öj3|€y§ï6ºEÅ4 Ϲ€qÿ.4ñdU½ï‚ÅE}gaõ›Í¼ƒ^Õè€Éþë¾½_˜sÈÎOEØ×H>=&6^èÑ•Àí¥°xbÝOh1§úçp)àÒj€ƒp𨎡KòkP<‘KS§ž©8ñì‚9v@)i ñ(.€}³«Þ¡ß+•Q“‰I„@k†ò�äü ý-d0zÝ€OG¦ �Í?.•S[tâR—îúçÝFÊO€Uöþ«ü9ðH_S“ØœùG¡Ìˆ/ú ÷ûeÛvµhap.³• �~Uüºè¶�ß3…×�ã?½95 F-wÂ�HKç‘KÛ§,tg0~BÌK÷€ÙóŸÂ¸Þ{æ¬%€w+ìfÏœ¸O �-»æÀ!á¸)tüùÀïy‚ì‡;ÅBïêØ;5À/æ70äá¶®ôæÙ¬-/i'ØÔ*†·îÔ¼^‚Kdüö¡€ªh†DûNaÑ:0‹M߬ q{÷œï 8}ž”ȼ§PËOˆðy¸z»dY=TÃÿ ‘·”5÷„±·„ð%Ë®~j® @ˆ 4~êeÉÓ‹lÍ­˜+§ã“~õº¬ÀØô^-WSóýd‰™œÉ=2ù弿8KpŽß‘½ÝUa0a|1xK8÷öÈY8ñŠº¼a èõAq„€…Ÿ}CsÕ7‚‘ž&¸xò¿ àèª#­[Ïòoôf“×_{؈Zª2D~gx; ÜEAaw‘…Û÷V¢2ºÖ»CXA&�ýÌðÞ-ÊZ{SŸæn€Ü¨NQƒë‰«ôÞE ì‰ˆ.˜ðKSÜ)ç:¶¶ª œÄÏ`@^¬�.êâê>=¿õpÌ,<:æÀм ÐB5ÂBaÇOððí&.�@ÛB`¤¦¼;êºqqûêÏ{Xío'Œ±€ BÅk@¨o?Æ^�@Í×ß´^`7‹‘g÷‘Ò�äeïo �¨¹â™ Âc&”À ìûF€_Rç1#qCýÜ, €¾hy à”·8Çz™Ë €@Ó]îùO`-aÎâ5«ÝváhZqHAhQ!�˜ÅZæ�î07ä0’M\0º¢èzóR; Bç!ÀÝ\Ù>É9±‚†(a)ý©�ÀåuÇ¡0ûZY£�1E é , J öf€ ‹dt+M ÎQG4‚ž H£Y>B‘a×­Š,+|Š€h„ÜR+�úd381]À%G= @1H‘éAn HMš‰ê»¿l†`=Íf¨!ÞÒueŽ‚äž@€Ô¶µoVuê0a]›V-M !M£~@Qd•Jñ;ŠßÎö>9'kš†0b3P”Π@ ^iJ0›nF²Œt 1?Qr(,7,ÍÛRÚŒ™¬m²¢„hŒ±v'bV%€í-¬m{cmNVF€Ï`Q¿ãÄ+J ­AÌTáÌ7÷5гÓÙLuåéžÝéû–YREªn4v¦Ú»{6öô×ÒÃÔ‘\{fiò¡Å/J•©síf»=‘NÆ,«°±§§¿ÿL¡ãXzɪ?|DªP¶{Û N;íÙ®³-Ë.ô§ýóšIËj¿qõý-¶œ:sOÚyâFk€Ø·– %,ïç=CO$óvÅ~»=žØýP2/ ц>´dÙLÄ“‰¡<øðÃO¾s&�;žpîÿòbÐNÛ3JðÂ5Ÿ;æeο´ê­þrË-wxëágžùèŒ�÷}`Um¡tªÇøVT>ƒ¡Õoý½ÔO:Ì_yghÙ$ƒ•˜ÀŽ;SÖ&wlUR¥`©üÃ7ÏkXÒBB½A-~¬X2fOBÛŽãpe„8xu;‘vœÊ¨ù„Cª÷±ãI'M{P+L`%é©{~– ‘L'±v«"$&%°b±e$’qƽ2Á¦y-áÛ²b Gp¯è§ 'ó¢‘9t4ê• íIÇI§½)zÅc¶¨&  Ǔɘ¥ú V°ßû?+oùý’ÿÿ =Ü+¸ø†Ùd����IEND®B`‚IMAGE 2859 ./arch/monster/angel/archangel.x13 ‰PNG  ��� IHDR���@���`���š„Ú��»PLTEÁ��>64JB<VJDbRLbVTrfT~n\‚n\~rl†rdŠvd–‚l–‚tš‚t–†tžŠ|¢Ž|¦Žxª’|ª–„²–„ªšŒ²žŒ¶žŒ²¢”º¢Œ¶¦”º¦”¾¦”ºªœÂªœÆ²¤Â¶¤Æ¶¤Îº¬Î¾´úúüþþüææäööôêêìòòôÞÚÔööüÎÊÌêêä224ÒÒÔÖÖÔÞÞÜ NNLîîìîîô¶¶´††„úúôºº¼ZZ\ââä ªª¬‚‚„®®¬RRT²²´VVTZVTºº´ŠŠŒÆÆÄ¾¾¼ÂÂÄbb\ÊÊÌbbd’’”ffdÖÖÜÚÚÜ––”>><ÞÞäââÜnfdææìnnlòò좢¤&&$JJLúöô®¦œþúüvvt664BBDjjl**,žž¤îêä‚~|..,ÎÎÌ..4rrt~~|¢šŒ†~|^RL*&$**$І„.*,–Š|ŽŽŒ‚vlÎÎÔzz|’’Œ  $êæä>>DúòlFFDFFL*"::<BB<ÞÖÌ66<²²¬šš”ššœbZ\ÖÒÔ–Ž”𖔦¢¤ZRLrjl"žžœnnt"" öòô†‚|¶¶¼^ZT¦¦¤¦¦¬""$–’”.&$–Š„&&,rnl¾´²ª¤vrtÒÎÌ®’|FBD:2,¢žœ–~lb^\b^dÚÚÔæâäjjd²¤bZTnf\âÖÌzvt~vtÎÆÄ22,vrl^ND¾¶´:24ÆÂ¼NB:‚zlrrl¢Štnjdº¶´:64¾¶¬VRL¦¢œª¢”NNTÒÒÌ n^Lj^\NFDnbTJJDjfdÖÒÌ‚rdŠŠ„ž†tFB<ÚÖÌ^VT–Ž„ÚÖÜ®œjbd>>4®šŒ_Jõ“���tRNS�@æØf��IDATx^Ì–U—ì¶…û×TI253 333fffÆ033s.33ãÏHIjÝgÆ9YÉýûI«¬½çS©ìéÐÿµÂ>}-ÿI%$<þÆÿ+µ¾¶w¥"·¿Ò‰“Ǽ£to¤Ú÷~ØR/¬/Íøk9Ô‚çŽÜÕ¿©äNÞÕäÕŽô"(áhí]Q‹W7-CÔ ò*Ïø mK¥SÇîðXX¤·º OLhªöøü©úD~ª™"}ú8Šžø}]CW—íu}iÉS ¼„~Á¶uú£TÐÍ®ÿØ!•Jþ€¾ ¸^µ°gTÀf·ŠËþ+—\ÌYŸ¿*F>Pvnp¹H—ªäd4¸‘ /¾¢ü78j9gõð¨ò C¹5‚ €ôZ™°E¨éù]Êß±LÚ»Iµ¹%,.I3TžÂX[ ÕÖtn~ƒjYr’cYpY"†&ÓòÁš!UBWyPŒ¥5Kg~¤Œ52 Å@WÐTKøUûaªoµ¤ƒ{–ÊKj_ÈèÖ$ÆŸ¢„ºÍ¸,±)´u¨.2Áû(`ZZ9¦K –víÙ2>¥`áÚ¿þýùOfÀ{Zh ͤ§7s·ÙE%°øýk;ÑS®õÕ7øÎõÐù[¿SÏ8"LÒ›2€œfî_¨zwOuÔ³¿üay A çàýë?~‰%NÐÁ¨*~I³5¨r/2,DËõãwŸ{H›]h’ùGZ"f!vÓ,’m}˜’ÔÑù€ÀúR·2üái¡ì~�´8~Osu5Ë#ÈË›éĔå0¨ÝFªùäfüÿ£ÂJ�øä_Gdµä‹Œá šøHIÖš(r`±p5C†;�t"ç7òÀëÉ6rŸûã*€#‰wäÈÓI®‘°*�PÀùÖ®ÓT¡;¨dôÇL@u÷éA0:: ¬yžœ«�:luå=S\›–o=.€¼1cô0óxGì(V�Hü aKÕ)Õ«Ædù»ó&&J‹</Fä6å[ @• O¦q¬o½:ôÁ'ÜOgêò‹€M1¹'kiûJ�DÑOÞ˜Jd4ƒnB1Þ¤ìVò‘¥l+�ÙbQÝÚTSȯð4¢Ø0,òd˜Cc�l?d�ÀÒ ô º2‹4+eAf%�Xã¹1Dn@æP2T¡ªQ}æX¤Q.÷·ÃJ�go][3ÒÑS•_½ZmÍ9¡/òÆ<,Ü€×?|*¹®iMqÅïÚƒD¦¶¤ žßÖTØs"•�ðÇÙ!è¼BÓ~¿âèvm® ºNGóÏrôà[­ÔãÄÐjŠ7S� Vb  –ߪ�È?¼‘ áÀ�è&(v̶2tH×MSµaõ€0X¾ùӋ០�ú“Õ–€Ÿ7"°´ÏKèü ÷:`ôü“–üç¡@ƒWp|$è,¼õ‰A«7wL»ú2ô¢þ¦òê”ã³Hz¼6  sôËÊÀŸ§—6Œ ©?C€Ê�ƒãŸ¹ºù­¶ô‚ ÚÏq‘- ä?JM”Bg9yü=ä`«Àe�„ôãFP@¨ÍО8v]tdij}SNKP@Уè)/ ƒ€¸ð­T46ðà¨jx…ÎýÍ�séÙÜP<( Þ%9+1’ö�¤Žÿ:Õ ¯×&< è@0 ´HZð¿O ;*�Ûï%ÚÁòõáí¹4�G˜Â¾}48 9¨¦¹ë‡{ö9à8.�0“±í»jâº^Àd™m:åA¦)Dag<0 <KøàŸƒ›ÙY“É¢ƒÀ͘ÉÌñ`‚PÕæÑ§¹EÛ¡� €#fn&;Àò‚ñºÍÚ%n£`„ ²__JÛ§—ÛM›z�$À!»³&¸ ÅÖž\Ksì7³äq$�Å0Ó¦‹ü>&œ4ªe�)5/É:L Âì4™ýw T]O¡ÐsÿDùÞš}Dà0Ç!¿0M[|y@¸n÷ºd²i 8¢ˆ°³¶ã8 Ê9ˆQÂ÷ÎxJM Zußa¶Í„䟛Y³çwžñ]CðHéi¬{Û6Í�A ‚ÌšÿÓ¯¾íëˆúb%¸/k› P=Ø>þÚkŸÁÝUÜo!fŽîúí{æéîÔ§U˜/}Q)ùë6aüâàÇIð91Ì !„ÎÒ!ʉèxó¸påréièõj*·[ŒXÉíèÜX‘Nâ=¸Pxï‚°÷f›ÝoõýôÍìkÜ¢$¦¾ýúüþã•Õu±,&³ò1_¿z;[}ëóö^Wãñ´êAˆ¦Ë¢˜LVÓ¯]?XÜû À²äôŒ-–ûOH„Ó‰ï>¾ÜO¢‹lg4¼¿iùjuä¹×¡�¹;HucÈå(íÁh?Z§ëk0›³œþ´šp é£“ŸðàÙ“&�tÊ×ç`KÀ6Jpvù¢2›öâ¢!àáèù!á ß—yÀñÓÅlZj—-6™A:º¸S5`Lš$à´…5Eÿ²rÅ%à[߯¸@¶…UoIX©†4ÀŠ»üa‘€` ÌŒI4᫲Õ3ÛàßAÈŒ²`UAìÕPI `‹ÕL¨ T,ÿ @±FUPp•Ù+Õ¦2GÊE¹ÂÝÖ{0X*5ճ̃ò_¿fï7S åNwûq�’gÿˆ¢:ȈrC”@¸íû&DÎrÏ.¬����IEND®B`‚IMAGE 260 ./arch/weapon/axe/axe_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ppp�À`�ÀÀÀ @ � P�ÐÐÐ```€@�`0�@@@���Æ^���tRNS�í¨(Sý���‡IDATxÚ¥ÏÁà Ðu£Ð8õÿÿnUKì%H­oè>Ïrd¡wÈŠÍŒÌ\lçÉÌÅw¶ÄÅò=ºøï{XiÍŒŠ<¾£qF œÇÆ<Ž' ÓÌ?¹Uˆ÷å kOö½pí¿r`±?ð-Ý—Þß8^߯K÷•wyÊ‹ò§¹�‡ .ÿ Å}����IEND®B`‚IMAGE 284 ./arch/weapon/axe/axe_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���ÀÀÀ�À`�€€€@ � P�°°°€@�ÐÐÐ`0�```@@@���%Þ&���tRNS�@æØf���IDATxÚ¥ÐËÅ PÈüÿç6Ð6m ÁÅ9#)Mï)œìŽŠÇ(ÜÙ •›PyY¿Àä¯Ó†HC2 ܾ^S¡÷‡{æB|�ž>à¾|´iÉ82‹Z> Â*ˆ|ÂqxC~ß #¹“{Ë]Ý #y?œnÎ1‰\ž‡YÞ¥ëÒ·\T´r^¸,]W^îGX8µï†V¦Ö����IEND®B`‚IMAGE 357 ./arch/monster/dragon/baby_drag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿÿÿÎÎΙ‰‰‰ªªªÎ™�™e�Î��u��Þ��ª��‰��ÕÝ=v���tRNS�@æØf���ìIDATxÚ½ÁŽÃ CÓmÃd<ïÿ¿w ¥¡íeµ\ðƒYþJÀ7¢`Gß%ø†ÝOÁœà‡ÅRÅ 0eͨLXÞi 0#  >‘¡ÊÀ• ûDQ¥(€óA¡Hu(OdÁÚd"#òR­5m)MÞ Áºj³S9Šg€…bFÐP(eH/€ó[{úP5Zæ„áÛ£,àœ°wpI›×¿†Õ—¨ÒeÚÊQ¢GØ/‡Ï##0|Bö-@lc¬k‹”%Ž„‚Þ Y yâ ð^¸ãu/öC®E¼|Ìý‹~¾ߨìP%����IEND®B`‚IMAGE 357 ./arch/monster/dragon/baby_drag.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿÿÿÎÎΙ‰‰‰ªªªÎ™�™e�Î��u��Þ��ª��‰��ÕÝ=v���tRNS�@æØf���ìIDATxÚ½ÁŽÃ CÓmÃd<ïÿ¿w ¥¡íeµ\ðƒYþJÀ7¢`Gß%ø†ÝOÁœà‡ÅRÅ 0eͨLXÞi 0#  >‘¡ÊÀ• ûDQ¥(€óA¡Hu(OdÁÚd"#òR­5m)MÞ Áºj³S9Šg€…bFÐP(eH/€ó[{úP5Zæ„áÛ£,àœ°wpI›×¿†Õ—¨ÒeÚÊQ¢GØ/‡Ï##0|Bö-@lc¬k‹”%Ž„‚Þ Y yâ ð^¸ãu/öC®E¼|Ìý‹~¾ߨìP%����IEND®B`‚IMAGE 357 ./arch/monster/dragon/baby_drag.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿÿÿÎÎΙ‰‰‰ªªªÎ™�™e�Î��u��Þ��ª��‰��ÕÝ=v���tRNS�@æØf���ìIDATxÚ½ÁŽÃ CÓmÃd<ïÿ¿w ¥¡íeµ\ðƒYþJÀ7¢`Gß%ø†ÝOÁœà‡ÅRÅ 0eͨLXÞi 0#  >‘¡ÊÀ• ûDQ¥(€óA¡Hu(OdÁÚd"#òR­5m)MÞ Áºj³S9Šg€…bFÐP(eH/€ó[{úP5Zæ„áÛ£,àœ°wpI›×¿†Õ—¨ÒeÚÊQ¢GØ/‡Ï##0|Bö-@lc¬k‹”%Ž„‚Þ Y yâ ð^¸ãu/öC®E¼|Ìý‹~¾ߨìP%����IEND®B`‚IMAGE 224 ./arch/player/class/Warrior/barbarian.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ @@@ðæŒ���Í…? R-¼÷)���tRNS�@æØf���yIDATxÚÕÑAÀ DQ„û¹ ˜n×íOX¼E ò¿¦�¹ÖìbÃÂ@æîµHŸª^€ŸðÈÌ£–Ðà€œê Ð9Ú€íø+ÀAU€W§ yÅ<>à 2!u)8ØüÔåø#jðGžÉÀ»|ª oÿœ����IEND®B`‚IMAGE 224 ./arch/player/class/Warrior/barbarian.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ @@@ðæŒ���Í…? R-¼÷)���tRNS�@æØf���yIDATxÚÕÑAÀ DQ„û¹ ˜n×íOX¼E ò¿¦�¹ÖìbÃÂ@æîµHŸª^€ŸðÈÌ£–Ðà€œê Ð9Ú€íø+ÀAU€W§ yÅ<>à 2!u)8ØüÔåø#jðGžÉÀ»|ª oÿœ����IEND®B`‚IMAGE 220 ./arch/player/class/Warrior/barbarian.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ @@@ðæŒ���Í…? R-¼÷)���tRNS�@æØf���uIDATxÚÕÒË 1DÑRcýÿ'MlLAï¦ï&.„<ð±–WX{Á•/¿ @�’Ñ#¦"°»�’Ym`6Ì18€Ãž J‚¸ qÌW@=Å5’ÎJ�Ìø¹iñRfl¨¿`œU‚J€þ¬w57Ü����IEND®B`‚IMAGE 220 ./arch/player/class/Warrior/barbarian.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ @@@ðæŒ���Í…? R-¼÷)���tRNS�@æØf���uIDATxÚÕÒË 1DÑRcýÿ'MlLAï¦ï&.„<ð±–WX{Á•/¿ @�’Ñ#¦"°»�’Ym`6Ì18€Ãž J‚¸ qÌW@=Å5’ÎJ�Ìø¹iñRfl¨¿`œU‚J€þ¬w57Ü����IEND®B`‚IMAGE 248 ./arch/player/class/Warrior/barbarian.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿�‹‹Ú¥ ���@@@ðæŒÍ…? R-w ©y���tRNS�@æØf���ˆIDATxÚÕÏAƒ0 DQ’qæþî`±ñ°n?Ä ùIˆø¯æ=�h6aâ•©+ÚÕ1x9óÌL€lÀÖ‚n®dÜ{…0“ÚN‰„DÓ«ý‰° Â%@á›Uب ãXyP¤ª9 Ú+rƒô?±m|�x^~¨/ÒJlDÞ����IEND®B`‚IMAGE 248 ./arch/player/class/Warrior/barbarian.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿�‹‹Ú¥ ���@@@ðæŒÍ…? R-w ©y���tRNS�@æØf���ˆIDATxÚÕÏAƒ0 DQ’qæþî`±ñ°n?Ä ùIˆø¯æ=�h6aâ•©+ÚÕ1x9óÌL€lÀÖ‚n®dÜ{…0“ÚN‰„DÓ«ý‰° Â%@á›Uب ãXyP¤ª9 Ú+rƒô?±m|�x^~¨/ÒJlDÞ����IEND®B`‚IMAGE 254 ./arch/player/class/Warrior/barbarian.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¿¿¿�‹‹ÒiÚ¥ ���Í…?@@@ðæŒ R-½ˆ¸ï���tRNS�@æØf���‹IDATxÚÕŽËà ɼëÿÿà® Ue•k;"8ÒŒÛ1Ö @÷7¨ ðà ü†\ógÚ`½Ð|IÈݽWŒ]@ù”ØIRüqÅÝ**¸\P„Šò6¨%›'2ð~,lú|€Yø`ç;I önù9¦]á=>?¿Ã Ý[÷îe����IEND®B`‚IMAGE 254 ./arch/player/class/Warrior/barbarian.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¿¿¿�‹‹ÒiÚ¥ ���Í…?@@@ðæŒ R-½ˆ¸ï���tRNS�@æØf���‹IDATxÚÕŽËà ɼëÿÿà® Ue•k;"8ÒŒÛ1Ö @÷7¨ ðà ü†\ógÚ`½Ð|IÈݽWŒ]@ù”ØIRüqÅÝ**¸\P„Šò6¨%›'2ð~,lú|€Yø`ç;I önù9¦]á=>?¿Ã Ý[÷îe����IEND®B`‚IMAGE 361 ./arch/construct/town/barn.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���²""ÿ��ÿÿ�›^¸†É���tRNS�@æØf��IDATxÚíÓK®Ã DQn—Ùÿ–_l 5 –è6ƒäI.üü)OþAðܫێ wê˜Gpcuwð."ÕÑ]´ú(ˆð¢'!ÀøÄ§`KÌÖØ… 1ƒ ùY0’»`‹lM€­ °Eö}f“éçf³ŸéçŸÁó%^ úä€Î¡ýJR�ú Š �é<Aœ‡ˆ |u¶­£´5Ùû›Âµœ}%¾`¼šÍô;>¢œÀ·ÛúýhHR0ÉLpàÔ ¿µ1™`�Dß z€ VjPxP÷~%ð ºQÛQ@aPx”U@a’òä2c ¬„(����IEND®B`‚IMAGE 219 ./arch/construct/barrack/barrack_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿@@@ R-���f¢f“���tRNS�@æØf���wIDATxÚåA Ã0 µÞìÿ¿œ% ’ÀäKéć$~ éhŸšÀ½!’TAGG50V áÅÀ,Ðl¶ØRtaø"TA°²ãKÑÈ«}๠ú¤óý£WõðØ‘ y/ ¢ $2ñgœ ò™ŸS4]����IEND®B`‚IMAGE 243 ./arch/monster/animal/bat_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-.‹W��� ôv±���tRNS�@æØf���•IDATxÚÍ’Ñ Å CmÎÿÿóÝH ÞJ}Þaà0± nëSH8d½ J]òi†ÚDxT7lšjÖYp  Z„3²lñIk¹ðg u¯®Û ŠVrS«ÇqÓÊ\à¤íZ,._4b]ˆ x|iÞj3¼}‹°s¨#f`ž¾ Z¾G}`ü¥_ƒ_HÖ§ø°ÕK2"ç1����IEND®B`‚IMAGE 217 ./arch/monster/insect/bee/bee_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���ÿ×�Ä–:ø���tRNS�@æØf���xIDATxÚÕÛ €0 C—¥ÿÿÍVÑb/äU cËá´lý);r? Õ¤_ö€€÷»9Ì,ÛZ Ö\yí„&�° �’‰h�.…4xorm0P.éDLà ô¯,ßà•©§ŸtB`‚ê’œKFõœ ŒKŽÈ€îƒø>ãØ®o"¡����IEND®B`‚IMAGE 174 ./arch/monster/insect/bee/beehive.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ¥Ë5���tRNS�@æØf���SIDATxÚÕ‘1À ñýÿÑ•%D;¤Î� geÊ%BaÜ›&·Ð aÞ~æ'õ@+µðR ú¦Ýpþ Ô_Êô·v?´ß½®Ü'¬ºgh·m����IEND®B`‚IMAGE 177 ./arch/monster/insect/bee/beehive.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ¥Ë5���tRNS�@æØf���VIDATxÚå‘A À0uþÿè’°T.r*³Y‚ÆÁzaåÖ©­O ¶^šŠeEßä;&P´<fn¸ÿfO~S…9þ½�y©þ+ˆ_ò�8p8°HÃ����IEND®B`‚IMAGE 444 ./arch/monster/beholder/behold_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE������ð(�ªªª€�°�Ι0Ä�™™�ÎÎ�ÎÎκºº™e��U�îîîà �ee�e0�¨¨�```€€�´´�2@���tRNS�@æØf��%IDATx^}ÐYvã0 DQ>pÖ,ÛÝû_j (QÆ > ÷!¹f�\Fdš„±t-ƒ’‰.lz€iÖy^‡ÍÓ²ÎǼúüŒ2|ß_Oø@ï#ü #o à~ó:ðí(;ö›¢x À² á%Vܸ#9Rl@à ìŠÇ× j½,¼DQ ¡l”³Ë\#ˆ[´ü×þä£9�K»w¤£Áåo ‚ H ¨'€ÿÿÈ]0šÌ,hotRâ�Mé¼V¨G T0Pš†p�õ(åH´2–ŸG·}Þ¨ í »‚rÌöÂMöHŒ¢±O· ž)¶VC„T.A­©<‰€PS"ä –RNP�Z�tw?â¢Æï›t¨ OÑû"����IEND®B`‚IMAGE 299 ./arch/monster/beholder/beholder.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���ºººe0�ÞÞÞÎÎ�ÎÎÎîîªÎ™0™e��D��U�™™�ee�àã7���tRNS�@æØf���¬IDATxÚµAƒ0  ”$ñþÿ¹¬ñ¡'î¥]ÉÒŒ­¯ŸøÂ‡"]ÆQaÓrׅřϲO1¾Ìø45�eÀa^‘¸3TbMÂa|Ù̈5Qh/²ïRºzÍP±Wj5Íàݳˆ”SÇ´&¤©žŒj›ÿo4ÞÐÁýæ<ovCÊϼ¥Al‡ÆJ0h”<x™&Üáß{ ÍàyÈøÃ‚{!çÌŒÞÉ mHA¿����IEND®B`‚IMAGE 299 ./arch/monster/beholder/beholder.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���îîîe0�ÎÎ�ÞÞÞÎÎΪªª™e�Ι0�D��U�™™�ee� úĶ���tRNS��v“Í8���«IDATxÚÍ‘Áƒ D«€îÌÿnJâe—¦·N0Ùä½Å1n¿†ü \.ó(ìS¸Ìûftͳ¬Éæ²ò™\ƒ„Bº¼ob†NMÂ:¿�NM–ƒÂuß«”^Ó©x•Ü…\.¯¦šÎ\k>anMÖœ Ðàf£Ó°¹ÂK„ÂáÕ^ ˆ‹Ì›ÚRh!Ÿ(âýM¸"L[bZ Ô ¹àxRÄŸ¬…ø~ÕF {.dôø����IEND®B`‚IMAGE 283 ./arch/monster/beholder/beholder.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���™e�ÎÎÎÞÞÞªªªÎÎ�IH�Ι0�D��U�™™�ee�’Fr5���tRNS�@æØf���¢IDATxÚµ‘ÁÂ0 Cmm¿ÿÿ^ðì’lˆ©Õ³W½ý¼à‚‡853ÍøTšYWŠ1‡Ù§T`3°IÐÔ)·S.K’˜(húT“yâË›c&ÇP3÷$b¼Ü‘Æäޥǩ+f'¤PÐÉÿb¡ƒqõ_¦„u…Â܃ˆjIJ‘’ÛlTm8PÉþ]p±é’³5gÞMÎ÷ºÔ;2ú3‚ øÃØóŽ����IEND®B`‚IMAGE 299 ./arch/monster/beholder/beholder.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���îîîe0�ÎÎ�ÞÞÞÎÎΪªª™e�Ι0�D��U�™™�ee� úĶ���tRNS��v“Í8���«IDATxÚÍ‘Áƒ D«€îÌÿnJâe—¦·N0Ùä½Å1n¿†ü \.ó(ìS¸Ìûftͳ¬Éæ²ò™\ƒ„Bº¼ob†NMÂ:¿�NM–ƒÂuß«”^Ó©x•Ü…\.¯¦šÎ\k>anMÖœ Ðàf£Ó°¹ÂK„ÂáÕ^ ˆ‹Ì›ÚRh!Ÿ(âýM¸"L[bZ Ô ¹àxRÄŸ¬…ø~ÕF {.dôø����IEND®B`‚IMAGE 298 ./arch/monster/beholder/beholder_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���îîºªªªe0�ÞÞÞÿYqÿ�0ÎÎΙe�ÿ���D�Þ��™��'tw���tRNS�D"H±���ªIDATxÚµ‘Íà ƒGV(±ßÿqgšÃ ées…dé³CP_?ùÀ LËÜ7-àdÌ·ìî./Kî ‰ ¹7»ä“îu|imQ"X“ÇNôÒ¶­•Ž`Mì«Ö­É1·–ÖJ……k'P%ÈÄÏ<i€ÁdâñáÀâ¡DõÜ4! Ìñ-ƒŠ'ÍŸê‚ wøw1½ˆò:Ìôà w%œKý�ÜÒ À»\U����IEND®B`‚IMAGE 612 ./arch/monster/giant/Belzebub/belzebub.x11 ‰PNG  ��� IHDR���@���`���š„Ú���!PLTE����������ÿI��™™™²²²ÿ��ÿÿ�ÿÿÿHÒä£���tRNS�@æØf��ñIDATxÚí—QÂ0 ƒë1:îÿÿá‹/©öpM³×9 †Ðç¸É@¢=zôhQ�îñÇ{¼Um�û×x€ôÛ ^è›UçÛl®ÔÕkÁ€U[‚rT ‹¯ ˜€”¥ÂcLSüúÀtƒÇÝþ #S †óñN› ÈöW7³ñZø–30ž$»²xé¯|›ÀAÜþêœÞæbY½wy(…9: ¿^²`7Í€x™h!VÌx]¼,6-c>D ]¼ >´Ö8O�Ê ÄÌÁãχ¨þmàËÿ˜CLbæ ²mð&m4y# {[òæ`¢Ã,¤ÆÐ‚¸"hh3éäR€\‚0� 8A^hSÑ@b¹-H48yÁhÁI@"¿–@¤èO>gpå¿U0è ”|Ρ‹îÆï;v¸ZÖ Ÿ4µ³Ì¥¥CE“ô'–¤},ä¥ÔcÿEƒ±·Ü°Æï¢J3hßÎ(Î úŽ{¨LÀ³x¡°D–½’�ì`¼Fa­š Î<Ì`5ˆÊtn\ç±<ƒVOgŽÈ¡ö]Žž•û á’ ò‹sÇê}�ýׄˆÅ0^uX™IUœZá©k¨”Atð8RÎÁt±ŸRÐÁË´¤8RUšÿ£GþÓ/僊 Æ…²����IEND®B`‚IMAGE 635 ./arch/monster/giant/Belzebub/belzebub.x12 ‰PNG  ��� IHDR���@���`���š„Ú���!PLTE����������ÿI��™™™²²²ÿ��ÿÿ�ÿÿÿHÒä£���tRNS�@æØf��IDATxÚí•Ûnƒ0DH üÿw¯Ù:R°w£ª/Œ)EJÏxvÔåÖ­[…oùÿk€½7�iA5�¡OZtÍó¢eÉ­6ñ² $:-,Õ€þ+ôeVH¹ašGgÀ  Oé�=“¬ Äý«¨&�ëÐû'`%™Cð +0ž-,¼ãꊙ`,±’ _1‘À¹Ö Y]õi˜@ æ·­5u“e·a@âI¯ÚÁ…LÞ ˜ÌBoW|Z½71 ÷ÀoI­Â-tb1è@>ŽŸ_,.cì+& þ<O¶°á.D…ˆ4ÂG;'ý4ŠXˆ±-Ì560úÔƒ×Aœ?¥8ßÜx^Wþ9Ôîu±Ó†®°Äà$H†Øw5kà¥}10 kÐ^Èb?Ì]x?£)ç]º¿eòZÂ;¿ÆiƒØ˜áý‹¼+ð±CÇ?Žæ ZEÚAiÙžøt 5Ýœ.[ž9ÊWz ®$p†C”:@Pø:A¥DêZSëÀ)„W²Ã`¢TÎ@½êgÀÏê–Là©;7¤˜A¹Z]£K1AœJ”Î!ˆîT‘îÀˆê»Òà QüÏÍ$�ñ¶Þý¦ä4SoŽ5/©üp>ü&8ï†á7'¨ÂÐýª2¿[·ný©~�xÕ‘M¿Œ����IEND®B`‚IMAGE 600 ./arch/monster/demon/Big_Demon/big_demon.x31 ‰PNG  ��� IHDR���`���€���‰²„)��� PLTE������ÿ��ÿÿ�ü‘UÅ���tRNS�@æØf��úIDATx^íÕ1ŽÛ0PÊ…Àtá>O!îi@C@¬ãÂìs¦±p½2¯Ü#¢Ìvÿ§Ê�)<¥†C¨ÔœWÌ"t5X+¥«Ð+ÕÔ@8Û�X„®ȱš~2€Rs$àˈFW ðe=OÎ/ªaÐ~Àª@_@ç½2  ŸÀ'¦@àðãyEãHB®hPëπΠ00(©ƒáq* ŸÀQ†±à)Á» ¶·¨ ‡@zäKKˆþW.Ñðð”ÙJ� Upw æP<3PO¸u�<»•2ÀppÊ ÖMn JŽ FßÌ a€wI±4„Ç$$PÊÐ1X=a_ú}àÐN€&XÑØSrPžC;AtQù oŒ{}ì¶¢‘ÁM ÍÔ ÛrhëPŽ®tШ943„:<!™kRÒ¦Þ§muÃúä«pÙ·NÇc[н¦AÀù8@t2!öG·wíq n£DÃ…“†ØP8›ö8 0!Y:V@»ÔíŽÎÊ wwU<[Xµî]ÀÒ£%Ì?‰iH@~¢Ab<dP ‰uêžžx¥œ±¥Èá2CK|¥Þ]ª |X€ÍÝ2(/CóoYžeX—àm ~/€zëàûZýû¼òÊ_z×$­=p‡õ����IEND®B`‚IMAGE 603 ./arch/monster/demon/Big_Demon/big_demon.x71 ‰PNG  ��� IHDR���`���€���‰²„)��� PLTE������ÿ��ÿÿ�ü‘UÅ���tRNS�@æØf��ýIDATx^íÕ1ŽÛ0ÐaAÕ)Lë*Õ9…\¨ç"RR…y A…éµ¹0甡$.åPRHá¯òáóS€�Áÿšg̈MÐ�;ˆØµ�ªyJÀS±çTàeÊ8.Ñ�È&òÈA þ¼¸‚B,¡fl3¨ ç˜ @4ë .À…ª1ƒ)€¼Y¯þ=Ã2 UƒˆF`ròF^é1à8ˆaòŸAÎà: %°×*hP7B¢˜á·¨ŸÁÖ|€æŸ …ŒéÁD|÷U8YZ-Ûx_Š[Ä:ô ú±| ç†áÛ0Ì0ò p>à±7_JxCnHmQ38BÇá¸Â¹„xTHôÆ@Æ65L%@ïèÈM�ëmÖ¸ :¬‘ÀÏ0•0IJ678T{òÕ†gÐâm{ãâÛ­…«@swAÝj\µ èÒlÀdmìz#ie©Ç4ÞJP6šžì1èÕüȈz¸FÏ2³1zŒ'I 黇p^C™½oÑ08x{‰wƒ4|” œ_~ $¡žÁžÚ¥Ë‚‹°�`éžO,hZ ) !jóT1@äûeP¯p `ÉÐþ-œÎðºß6@½B=»¯ðïòÌ3¿�Ý” Û‰‘On����IEND®B`‚IMAGE 873 ./arch/monster/giant/Big_Wiz/big_wiz.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ���-PLTE������ 000===DDDUUUe0eeee R-Îe0ÿ�0ÿ™0ÿÎ�ÿÿÿ¨Gã%���tRNS�@æØf��êIDATxÚíÖjã@ ÐÞ(Ú=9ÎÿÿîIÖ*ñÆîAV[¸¤˜æURKóuåÊ•+ÿYàùÉzf>æ [}ûrBcN?pœ2 �‘ @”˜2�€“ yÁ{ÉÏp¤¼�>bGyà~çû½`‘i�[ö�j).à+Ð@Ñ@“¿13Ž�ªö3Ã3À« @© °e�oy¶Môç �´¶âa(X;£‹v[½‡È€Ô�¿B[Æï:¢¾ÖD¿w•ïèÏ�Eƒ.DÝz’Þ„ÊÔ Ïþô/h�•;Àõ™l˸Ý\Ø]p¡°Ô ^Ÿª ~éªD›ƒLˆþ4pc‹l‰9¼>TnsÌ�LpÀãD(-Y8„Óä�@G sàÖ^�¥Òðío#mÜœðCœ0U-c‚•7ÁâBçT@ZhhCÜlU¾«nc - ȳwâý™ÃC]ên�Ò ‹õ"ÒµR%¼},„e]A ãLî€X4²®‚]t²Ýs `f3°Š"¬ë²¤JûþZ9>ÃÉãñÅB“úa€õ» òÐeAC3xöó*vŒRÀLó€¨×þ•u;« …A3àèßâ”ÞúÅdž@|ì¯&,st€4@…u™"€ ð~Z!~ b€ ³�2€ù%(@ ”�d! ‹”ßöQn€ÒÜ€„�Ä�D\(*8žÙPô›€—P5l€ © E?hž#pÕ l„a ˆ~x\°·B ¢q ú!ýÿI2Kí�Ð œZü§ì8 eT€ü-ྠl™ „àKª##ÀO�ç�)`qap�îû{‚Cøx V/ˆ4 �. ßÅŠö¹6ò~€×Z-ÌÑ÷ïâõP Ð�àÙt”¡€C¼µÇ“ˆSÛ­ÿC Ò€Ào®ý{úô³*žy‡¶Fù%°¯[š‚¯+W®\ù§óNï+a ¦å����IEND®B`‚IMAGE 892 ./arch/monster/giant/Big_Wiz/big_wiz.x12 ‰PNG  ��� IHDR���`���`���ÕF‡ ���3PLTE���DDD R- 000e0eUUU888===Îe0ÿ™0ÿ�0ÿÎ�ß/eee���Î,ûƒ���tRNS�@æØf��÷IDATx^íÕÉ’Û0 Pa!µØ“äÿ¿6€�a¨å LUR¥>øØ¯ôx†ÿ,Ož<yB–¿Y�Bt­÷«e}ú™‰Î;Äl @!º æba^°^¶g¸RàÂA÷yàõ‚×k» i*µš@Cà@µÖQÁüР"ý"ZºÔôåÞž"€Šc€¬7ú«ÄúÇ1€ä»ýÕûÅäl?x¤Ž õfÝ©‡0B„×Ü´^sÿ¸Õ—’é_z\ ·wÀû3@•Ð.Ìíy²¼ x'Dò€(°$QŸÉzŒi2¡%šþ4àB…ÒÞ)ŽŸŠ öÒEßÁ*xðè ïðú< Ât$:Ó#ºM |A *lH€l‚‘ z  È9”6â;5a4cè#ð1dj âÀ Xâ-D ‚9Cübö ¾"K!Ä” ÝÄnŠJEA³VÓј| zn Ló²P„¹QTH÷3Ñ,Á¯/lI‘g€hÃ]��Ô q¡6ŠÄÕ†ûý¥@•€ßï7Î)ܘôÿ3íwñ-ÇŠÚäÏD ˆ~XPú—Z n’¢–ä:Ë¢¹Ðg�lýkLè²áÐ`?áÜ_T˜û´Ð"ØBú;êý¼ÌÈ* B/€'Ò±�upf‹ 3Ö*0ç8 â�Q ÀbBÁðÔ…¼_ Šp!u¡­Ÿf’Ä(²@'Ü(�ëG$‹ b‡ äm úÉúc… ™#7�Ð :’P€¸j·.4Â5ð}%Ÿ�7¸Bð#•[ˆl�Dÿ`$.Ü ýàý´„ðé¢R¬ rš@üQ¿ T }¶@PTðì/¤"·@)¥| ´íú›X= PùP ¹* ß�˜¶‡öÍA4²²føˆ?zˆ+‡1>"GhmÄŸHú¹Æþé<yòäÉo ¸#skj=����IEND®B`‚IMAGE 851 ./arch/monster/giant/Big_Wiz/big_wiz.x13 ‰PNG  ��� IHDR���`���`���ÕF‡ ���6PLTE��� 000DDD R-e0eUUUÎe0888���===ÿ™0ÿ�0ÿÎ�¾^/eee?  .»‘���tRNS�@æØf��ËIDATx^íÖßnÛ0 Åa’’ü'i»÷Ù‰&µŒ.¦l€ÏEÚôâ÷ArStúÏvíÚµk°ýÍ<3£Æ {Þ_z�Ó'ú3@ 2¡D€!€®;$.X—T€ˆ€p ÝQ¸Ýøvs Ña�ë¾H9›€)P ç<CDfô�Rí3Ã6@ë+¨t©*Î#�X÷ÑÏuÖŸç8�8�8uÞ÷8ñ•­ß–gÖ¼h>Ý÷k這£}'`]5²€ûþìyJ)Úgüú@ïÞ€H_ÞïO#úv=çû|�À�¯#òù=|Ñ_ÚÔˆõ} c�#ú JW‚S8`ý0° {b¬šIÃY¿¬ë3)Pâ•}kÝÐþ„]X¹Œ ; Šu]?¨¡„Rg„â‚.@lÞä3¡Ó¨-FB„ïù¯§=åi°àlc²¸à€þ``ŸJ)FX\7ضR°I Æõ9%ÎE'r¿ß‹¼½½Un�øñâvW§fÆÀ´þVã²í<¯ýõìhäØúÂö͸3ô} ⾟T(c|Ê'ôͤ€÷+@M’ãÂò ešPr\�U @"ä3¡H~ß…9°Ôì@@�ü� ð™£4åýº4!ÕñäY…È iß�Ýãúôßwá,�¼ÏµUÞG@:ì’Î ?õ!èöK: xƒ€^8ÿðà·ôt 軤ÄgÀûÜ÷p!ëRæ×û €=ÁMx X�úˆ dø5€téà¨Hx?åS@JDLHë·YÈ3½8¡¡ÅûU 2D'�õé .bd&Ý2½0j;�@$6)$/Óð íEYúºÏ};ý«»víÚµßb‘¯ î¦����IEND®B`‚IMAGE 918 ./arch/monster/giant/Big_Wiz/big_wiz.x14 ‰PNG  ��� IHDR���`���`���ÕF‡ ���BPLTE��� 000DDDe0e R-UUU���(((888Îe0eeeÿ™0&&&###ÿÎ�===ÿ�0‰C J0$¾^/ëŒ���tRNS�@æØf��IDATx^í×ënÛ0„QÏ.IÝí¤—÷ÕrWUŠœ!i ôÁ?sD%pìÛ×ÕÕÕÖ^8ÿR»^µ¯Ö«Û—Ü*¼l_U^tß×\Fþ”â0àý]óK`}º#P ¨õpÒÖcÅ ð€5M¸O²À ȰqÏö)´�L)7å+jæ7oÀ`ÁªØ‡*Ô.¹ÜötзÍŠw!…—°¸î½¿‡pZ·+2;‚Í+saäq.óþE¾@­”Û lPþüÅP°o¿Iõ°/)ãx �Î'}p|Û!|yÛퟚ»}”ìëÄùpœ—²¿OÛß"G@~Wøæ`ûi½Q@ïà0_¸/:qß9åó "ª2ã>óÕ@¸تÞw`J~€p¿g ?à~) <A€íKdYîW�j€? ëp¾àð �÷‹3@î}ÏgÔî0vЋÕß÷'¸U;¡w¡ï›� <Ph°Ïàb„Å#P P/ðà  ‹Í¨Ëç»°X¸µ@Öz, P]Gá;:—ð¾¡ñËØ˜ãë§5¨®ë:t¦ÑŠÇ#_mD;A“§óüˆãÈÏa�ˆ†Àý ¨.H×f›·ý¨:Žóì(Ôîsݲ}‹‚Rh·?«6�ê  Ûq@•@$àÂX-€�÷…�\¨t„Àî Ú£¬­BšùÕa¨Ùw€û1�MÉ ¥@:¬^àþˆñ[9u ªÕ€X‘ÛŽ`OorAu¨¶ý±æ‚á.80Ô�Ü÷)ðx|Hå€�£ ÛCjœC1 Ÿ|J¶' À‡²Tuî É G€ì�8º ÃWPøhrù;¼ R¸ …�÷CÒa(�‚È]¼ý $‘’ÿ˜Á^0yR2#_ÄÇ‚Eà¼ãJ&‡º€D8°}"Å®è;Ú1ÀcaWŠýxûW»ºººúI$¬Q g*����IEND®B`‚IMAGE 880 ./arch/monster/giant/Big_Wiz/big_wiz.x15 ‰PNG  ��� IHDR���`���`���ÕF‡ ���3PLTE��� 000DDD���UUUe0e R-===Îe0eeeÿ™0ÿÎ�¾^/888&&&ÿ�0ûÉ���tRNS�@æØf��ëIDATx^í×ÛnÛ0Ðì./’ì$ýÿ¯íÞL򢄯Y´€¦A?dކ åãÊ™3g΀ebýTî2«Ÿ$³éGŽ Óú‰pÒí'š0eÀ¯_Ä_Ó�’L`:`âß æÅ¢§ý  h¶[^A�2<e¥]¯A¬o¬/js”À&è @nÖ‚…@á[€µ¹æµs‚ÌK1=ä·9·@¾ù ¡ö’ �yù²,z1ˆþ½¯�D¥œì)](ùb·Ök�Lxé¨dãzî�„‡ÐÂqDÛ=?º2J6Ú$ѳèI½<àÏ îž?–>TSû½á•ß\ 5YžÞßñ«qß¿4©÷þ·�”è¹oµ¿üÇÇÏæ}b!þ÷°`'Ø�¯ï Y¤Ù�lïïŠ ¶Ä‚;áv¿‡^³|…{�kÿÄ.üÉ„Ò?‚ Í`ÀcÂR€Jxÿ¢]àÀ '´— ýã&,à$@tçuÅ8À<3�ÉNø(ì€Â@€Û²ä~ aT?¬–l1-³:€ø‹Ô¸^¯J}~~®+À8 ù{Üåzɹ¼2Ž�0¦äý—L”×Õ cú¹ÞúIúIë¢`ÒK¿:åâFöW@Îiˆ� Ô~*ýI…Ëa�m�ír>,�<ô£.pVµñÐ%*� ¦ã�ïຢ¥› _ƒú1ç`a à1!¤Ÿ(ïª86!~uà�)€XS&Pâ*Ø„~àÖŸ3XTàDŽñ�x¿ hBÿ! üy“¡È©p¡­Ð{ ø-´@=%¿…¡Á)Ñ ¹€ HR÷„’f8àB÷O;v޼…h@ÂÐ!ÜU ðþ‰BxHè6Ïn±z` b×À”ˆSÊ›0À k}/<%ÏÚs6RÚe@Ÿ�É ø§laC Ì@/Q[AsÈ ÿk\‘ÿjΜ9sæ7›Ò s"gR����IEND®B`‚IMAGE 369 ./arch/transport/biggalleon.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������@@@ R-¿¿¿Í…?Òiÿÿÿ©×���tRNS�@æØf��IDATxÚíÑj…0f³ûÿ|C".nRÓúà…ƒÌ¨ÇËËÏиwDÃÞ° Øî€šÀÞ!A…�t{cÀDAãÞP3Ññž#A•�˜hØÛVP“nï ¨ŠÔí(R·7 HÝþÛ�E�u!îõ�<úé¤ •ûþM€¨ÏøÎOH`MhÜ6,|3ö=�XÜïöjà¡@º´)…í0 0 ÿ1Âï›< ¤Y ø«_€û“@ f“Ýïáb Úî÷ò ih‚íd@ §î¦»¡ød5šP¯\ö¹Ž§@;c¨7÷; Ïør}!�0áxyù×|�Î=2uRƒ����IEND®B`‚IMAGE 181 ./arch/traps/blades.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���]IDATxÚÝ’AÀ ÿÚ¤ Ô»÷ʉLØÅ¸þ ;OB}8m"F.o“èþ^tÖ7›Ö™Z„ï1 9óDÐ5ÄRým¢TÄÁJL�áD©îûþ;^7­�&ØJT����IEND®B`‚IMAGE 196 ./arch/ground/Lake/blake_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 196 ./arch/ground/Lake/blake_2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 256 ./arch/ground/Lake/blake_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠ-ŠVÿ���1������ÿ–˜ìì���tRNS�@æØf���–IDATxÚ­Ñ1Ä0Ѱ÷¿ñ±‚ØU¦´ž±/ǹ¯CîÜœ� Ÿ»ïÁÓ ,ψl&†dIº j¾a)f yzIHÁS@²0««x �‰–'(õaÛÀ V2X Ï% ²‡-8µÒð{O•„µÿ�Ã눅꫖Ù.‹žŒ·D):­s’ò?E- îðŸ@����IEND®B`‚IMAGE 196 ./arch/ground/Lake/blake_4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 196 ./arch/ground/Lake/blake_5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 264 ./arch/ground/Lake/blake_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠ-ŠVÿ�������ÿŒ5Z°���tRNS�@æØf���¡IDATxÚ•’QÅ ¸ÿ‘_b!Qš7?6îD—¶Ðê†áزÄ59–sJ•‹Ë·´„{‡KÕœ.j¸ ¢B ð¯@r™ÚÇrhÎ_jŒ<ÁÉYYïa¸vx ö‚ÜÑ9ÉíUrX®y"‚¾AðÊÑä»…EŽ¥¹oqR_ß fV $¿'ˇ7‚¡!¯n› åZ. \+²wÍ����IEND®B`‚IMAGE 251 ./arch/ground/Lake/blake_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠ-ŠVÿ���1������ÿ–˜ìì���tRNS�@æØf���‘IDAT(‘u‘;! D9„%ÚÜÁ¤ßOä'àþJÁGÆÑNùdf°'|§j˜*mh¦Js€÷ R’R-P…z>¶@îÖ… sd€»ïäê<¸6ÈšPÁLD!Ú kbO $€{í É€gÓ+@\ža¨ÂÿÇür¹¸‹‰û¦êÁÌ¡ —âš{Ýš²]÷áŽÍg¨i²Ž����IEND®B`‚IMAGE 196 ./arch/ground/Lake/blake_8.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 248 ./arch/ground/Lake/blake_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���‘IDATxÚ’I„@ ‰ ýÿ'CšXÊ2ÒGWÇ>pô\Ÿï˜ gJéôÙ ^¾©o )õxH0�™—Y¤îçw5g…žÿW˜sê��{ ¡a(�á�€+ÒË X`+\¬œÁ¯aéá\ÑóÆöCث٤ÿ¨‚‡-È# WP„e«¬¬ásØNÎÜj¶ �òa����IEND®B`‚IMAGE 196 ./arch/ground/Lake/blake_A.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 240 ./arch/ground/Lake/blake_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠ-ŠVÿ�������ÿŒ5Z°���tRNS�@æØf���‰IDATxÚíÁÃ0CçøÿOn#+¢„rÙy/‡D²cÃçÏ n÷Å…-Ü»IbÒ<•”eÒMzu(þäÑbšáƒ! ØD ³ÿªø= H–;&¼¬8mjžÍWBŸO%LvBBD>¹†8‚0 :¤d€kZÖí«‹¶¿ÌpŸþ 8*6s����IEND®B`‚IMAGE 263 ./arch/ground/Lake/blake_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠ-ŠVÿ���1������ÿ–˜ìì���tRNS�@æØf���IDATxÚ…ÑQà ФÎýo<uêˆê ÈBO؀ňíÃ÷ ö`™�<'°öð¿u„ÿJ’�6L[t@ÙòôÜ�þ…TO…7¸'V3Ÿ�€œ¡ÏB€\$=öÀ5¢¿ftÀ(¼€Y\Ñ»è!`H�YR²b<¨¸¤Š‚A.AUé M“¶š‡ø=¢òTO \ßâû����IEND®B`‚IMAGE 235 ./arch/ground/Lake/blake_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���‡IDATxÚ¥“A€ íÿÿ²@T⎂‰c8uØb ›“Óý£` š ÏPÀî"’ª†¨r³i&Q_ ¨I]`‡ãœñž ¶ÈÙ~ÂHŸ Dº„x¢œê<$ÐtPœC>›Æ|ÔEúxYR[Z_÷Z€ñG¨PÀÃôaòm.…Z ¥[ÝÝowk¡J½¤����IEND®B`‚IMAGE 243 ./arch/ground/Lake/blake_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���ŒIDATxÚå‘AÄ ƒùÿ“µ©P¬f?Ð9pab „Äwp­ ¶nAì( °É#d‡ág{ÁÒ� øs £tðôU:ئu´wÀÆÊç=Ab‹QÏŠx`ÕW¾ºè )´†"iÿáA¬g/À„þŽÉT[ Ïˆ‚TC¦޶”áSѰ•©ø"?'ø7)#´@����IEND®B`‚IMAGE 188 ./arch/ground/Lake/blake_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����ÿ�ŠŠÿ“Ô¶2���kIDATxÚµ“1À0ïÿî’¥I µ7…0Fk-¬�élUZª0 )è�Ž„›"©>ÿãpÝ,à1,¦Ù+Ýplêô»K#!תChÀÈ@„Y¯¦lXßÁòAÒÔ"ɪ èÏäÎÒ�Þ×#A^����IEND®B`‚IMAGE 159 ./arch/spell/Bomb/bomb.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���AIDATxÚÝŒÁ � ÅÌýÿ?‡yRAˆ¨¼l>y-µ*P.é¼hw 4†Ý@oÂÿQúE;àt î['ò#a f‘wMö����IEND®B`‚IMAGE 155 ./arch/spell/Bomb/bomb.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���=IDATxÚÝŒ1 � ÄNïÿ–‚èTŠˆfè’\õ*•5'áýàò;5AÜDÒ}AßY|:x f¢i6æY)ÝÛq����IEND®B`‚IMAGE 154 ./arch/spell/Bomb/bomb.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���<IDATxÚåŒ1 �0Sóÿ?¡¸…€Å¥½Áå.âoâ:‰á> Ñ”&É+t!÷ËúC;àt�ãmP ^d ÔKtY‰����IEND®B`‚IMAGE 150 ./arch/spell/Bomb/bomb.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���8IDATxÚc` -`â@áh@`>�¡ÿŸ‡0øÿÿ‡ð×ÿ0la"p†=nÿÿ?h †ÿÈv?�OŒ{’a“����IEND®B`‚IMAGE 1066 ./arch/monster/dragon/bone_drake/bone_drake.x11 ‰PNG  ��� IHDR���@���@���·ì���<PLTE��� 000@@@```  x€€`€€€   ÀÀ���À��¯­ƒÀÀÀàààÿÿÿÿÿÀ°°°Î��É<�_6���tRNS�@æØf��œIDATx^Ö ŽÛ0 P%óßÞÿ®%‡ôRÑÚ› AQ{žL2 Ð šDS4øX �Ò…ª –Ó"0ÖŸš+‘ž€wá!ž©ӜȰžVÛ½®ž! }ØÏá÷6ë×qI'á=.´ýH´£Þc[ŸDÐö#Zgÿ0\"¦µÀzÍ1ÇÀ&û®$°N)«†£sXÆ|ȤƒS q\½¯�0ϵV ®ê§Ðã¨õý|Ö ‰»O¡4>{ÛWH€Â¸ = ²ŸÏz)Å>*.XBxbõìmFÌ‚Æ!nØ dT«€k8x|,ÐúH‚x„ºw6tuÚ¿cÔà‚´½€`žx v „á <Z@„ï u( ‡±R L«¿º!80� –;l€Zq¿Ao†pb¡@€ 'À0à¾B€ Ãip»Ýï³æv[@ñ¯/ s…g8,,@Q ¬W5DÇü",X½Qÿ( Ek9„eÖ˜€¿¢„ÈÓ¾¤D> H,:Çb)Ï窄 ;âD=*.ÚžUøgg¬Q¤~–e^8ÂÊo2¡°#õ—gÀåòÏ&˜/° ç+0° :Žû‚¯/lÌVð®B!‰ùx ˆ`¾@�_)|�h¸üPŠøë´˜�Âv°oÁÖpü¨E„�hëÙqTý) N¨µR˜+ΰ* ß�4ù?‘ý�T¯p‰|VªÀ®Þû•uîÈ(Øî€À¶mÀ<j}à½ïçã'�ã?»LȾ�‚#¡ªÄ0Pr!Î,4à\9‚ ±" y„j+)д+% û½G‘ʧоaƒÇûE·›—iµg˜�°¿\i÷…·F| &¨5Þ‡XGôóWeöÀ"%„�׸÷©$P´Ï‰5“Cø`<>gÚó€èÇñÙ•}|#'åT-•Ãg½KÑàÀh^)6ž_ا#PŸÏ/1« �>Ã' _–C&H¼5ìg » øëz  øxÛ@/Âq_„õœ ñœ>ÃÆ~Ð¥êù�Ù'Í@L(Õ…€ÛÑ?àW+t�ðÙø @€WÜ’õ¸†× ›} ôÐOöà_[€w˜IÀ¯¿?ŠÈÕ<!“a24Ý rr=_§ÿ!O6Èw´©����IEND®B`‚IMAGE 1066 ./arch/monster/dragon/bone_drake/bone_drake.x12 ‰PNG  ��� IHDR���@���@���·ì���<PLTE��� 000@@@```  x€€`€€€   ÀÀ���À��¯­ƒÀÀÀàààÿÿÿÿÿÀ°°°Î��É<�_6���tRNS�@æØf��œIDATx^Ö ŽÛ0 P%óßÞÿ®%‡ôRÑÚ› AQ{žL2 Ð šDS4øX �Ò…ª –Ó"0ÖŸš+‘ž€wá!ž©ӜȰžVÛ½®ž! }ØÏá÷6ë×qI'á=.´ýH´£Þc[ŸDÐö#Zgÿ0\"¦µÀzÍ1ÇÀ&û®$°N)«†£sXÆ|ȤƒS q\½¯�0ϵV ®ê§Ðã¨õý|Ö ‰»O¡4>{ÛWH€Â¸ = ²ŸÏz)Å>*.XBxbõìmFÌ‚Æ!nØ dT«€k8x|,ÐúH‚x„ºw6tuÚ¿cÔà‚´½€`žx v „á <Z@„ï u( ‡±R L«¿º!80� –;l€Zq¿Ao†pb¡@€ 'À0à¾B€ Ãip»Ýï³æv[@ñ¯/ s…g8,,@Q ¬W5DÇü",X½Qÿ( Ek9„eÖ˜€¿¢„ÈÓ¾¤D> H,:Çb)Ï窄 ;âD=*.ÚžUøgg¬Q¤~–e^8ÂÊo2¡°#õ—gÀåòÏ&˜/° ç+0° :Žû‚¯/lÌVð®B!‰ùx ˆ`¾@�_)|�h¸üPŠøë´˜�Âv°oÁÖpü¨E„�hëÙqTý) N¨µR˜+ΰ* ß�4ù?‘ý�T¯p‰|VªÀ®Þû•uîÈ(Øî€À¶mÀ<j}à½ïçã'�ã?»LȾ�‚#¡ªÄ0Pr!Î,4à\9‚ ±" y„j+)д+% û½G‘ʧоaƒÇûE·›—iµg˜�°¿\i÷…·F| &¨5Þ‡XGôóWeöÀ"%„�׸÷©$P´Ï‰5“Cø`<>gÚó€èÇñÙ•}|#'åT-•Ãg½KÑàÀh^)6ž_ا#PŸÏ/1« �>Ã' _–C&H¼5ìg » øëz  øxÛ@/Âq_„õœ ñœ>ÃÆ~Ð¥êù�Ù'Í@L(Õ…€ÛÑ?àW+t�ðÙø @€WÜ’õ¸†× ›} ôÐOöà_[€w˜IÀ¯¿?ŠÈÕ<!“a24Ý rr=_§ÿ!O6Èw´©����IEND®B`‚IMAGE 202 ./arch/food/booze.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷��„¥R)ÖkÞ¥!���ÿ¥�ÿÖ�ÿÿ�_&À���tRNS�@æØf���]IDATxÚÝÐ1�!DQ™ñþ'^b±ƒµ?v<a<Xì¤�bhÀLö/èù$BÞŸ,¡çBt à{NGAZ¦ °.€™–VGK Vö@þ++ç�¬€ã*ÿÆk}S§äkOÓ����IEND®B`‚IMAGE 187 ./arch/food/boozebottle_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥R)��„���Þ¥!ÿ¥�ÿÖ�ÿÿ�¤µà���tRNS�@æØf���TIDATxÚÝÐ1@!P[,÷?ò' nV·ŸØ1á „ñ`ر¢ëWÀ~ìÜ ®ÏìæÑ½w` R�p�B•©3p;©J4‡´§\¯å(GâGÂÂ����IEND®B`‚IMAGE 203 ./arch/ground/brefjell.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���pIDATxÚÝAÀ èÿÿè)"C¨¢å¼åˆ-ãsCëxhФ”ÆËƒ–× s‚Â0ׂ&Pæwa0Žûûï‚Äý?8%Ä ¼Ãœ:¸rÂõ}¬D„´=1büÈ=±_9'a&RaÖ?]øÍ^̶„O����IEND®B`‚IMAGE 237 ./arch/weapon/sword/bsword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE������À @ªˆ4ÿÿÿðððÀÀÀ€@�òÄM@�ÐÐÐààà€€€   `0� P�€p ©-ÞF���tRNS�@æØf���hIDATx^íÎ9€@DQfq]îZ"¦11ó§¼êBò S¬Ÿàè3˜ù^n˜™*ÙçiˆËl«€D@—ýñ¦m‚1��D8 ÂÞwâµ*ÚR^É„dBÂàÝ.1§™åf����IEND®B`‚IMAGE 225 ./arch/weapon/sword/bsword_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���ÐÐЀp òÄMÿÿÿªˆ4À @ààà   ðððÀÀÀ���èŒú2���tRNS�@æØf���hIDATxÚÅÏ1Ã0 AÚ YÄÿßk%}NE ³Ý9Ì0þ»–FWžÆ~¹©'oMàíËúÝÛsÞJø`yJƒ_£”†~TÉØ—evË´ïÏaû÷÷÷^oö½ÏbïGÇÎcç±óXHþ�H bm!«����IEND®B`‚IMAGE 473 ./arch/monster/misc/c_knight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE��� UUU‰‰‰eeeuuuΙeªªª™e0DDDÎÎΙ™™ºººÿ™�ÿÎ00��Îe�Ι�™e�ÿÿÿÞÞÞÿÿ�e00e0�^%zÑ���tRNS�@æØf��<IDATx^•’Ù®œ0DSÕ‹7˜å®ùÿ/MÓŒ2ž@"¥ü�èÊ òÿ #ÿäëú¹ž@r]# Oxõ[ð/{ÀK)§[ÜØn)¼°Îçk$Çú³å>§†ª$$UyÂÝL„¤ž™#»‘¦ ×EÕM/#v135¸ìY^„RÈÞ,ØXDoÁÓ0ÃÆG³ð™œ—¯/&±~Ï�°V~ð~¿„p¹d¢Á°óoºóWô=Lcù£�×+Ló+$„Ë1“·wèÆ{O#✿!À$òOdÁ$¼sŒ@KÙ >e›€© •Ò @òI@i-”F+8+nÍqaU î Þ&Õ€£ÑSH•´ÎC÷Þ‚8ù*0RÝ`F¤Öéü#y!¡¸;÷<Þw÷'§dÒÅ!Ï!¦Çüu ®­¯Jý����IEND®B`‚IMAGE 461 ./arch/monster/misc/c_knight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEÿÿÿ uuueeeUUU‰‰‰DDDΙeªªªÿÎ0ÎÎκºº™e0™™™™e�ÞÞÞΙ�0��ÿ™�ÿÿ�e00ÿ��e0�›½Ž���tRNS�@æØf��3IDATx^•ÙnÃ0 ³KR‡\½þÿO»rcTN„ùÀ §Bñ§_–ë2l€Í§E óÕW»o (àƒÀö ”w®*Üf¤ñ™\IÎË—¼)¢RGÞ=¢ùLúà:™˜™ðËá„ÂÍ;,S2;¥YA(ˆÎèüZ�nÞáró9"uA½rš àDó³ŠCP¯˜.âýí ó§Þá†Ûí2!bÛ�mp]A˜&:[!o½iF:“+˜õƒµÒܳˆÞHÂ¥K,âyð´`-eU‘ä;HùSûÚ?#4i›Óº¯~Å>Ž‚¬ ÛŸ=,ç¼íy«Y�@˜Unì–¬5‚xÀˆªbo(̬ùßÂ̺�l ƒ ìw<D7Ÿ:¾ÁÏ “ß®å����IEND®B`‚IMAGE 463 ./arch/monster/misc/c_priest.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���TPLTE���DDD000 UUUÿÎ0^^^777e0�dddΙ�™e0ÎΙªªª444555���ΙeÎe�eeeHHHbbbÿÿ™999mmm0��oooþ–Í���tRNS�@æØf��)IDATx^Òénƒ0„Qæ.¶Ù²vïû¿gç:)”HÑwÄE"Ý?fÖ‚=þ�n}~Y„¥”ì·bº v¡hý. ûú”Æ�P9\vÁ8�J0Ý �ç4ãh0 À¼zI¨ÏÓø7óR`(pTý�R PŠ60Ï€Å=j¢·'¸¸ˆ¼ýE×€u( p0{ûˆžU‘œÍ²°¯€Ù Eq:åèŸÛnóņ¸Š“²{Þìa¹t½n�âjïû¯”BµºúÜŒÎá9ÈÌù)0óÚe€QjÁ>¨ý[¹=�vUi¢è9g6çv�4ºÇ„£XSÕî‹V�wñ Êã_¡¥DÉœHÑ ¨+"’õ¶v‚«Â–Uܵ1®A‹[ÃmãïN }f¡l…����IEND®B`‚IMAGE 509 ./arch/monster/misc/c_priest.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEÿÿÿDDD 000777UUUÿÎ0^^^ÿ��Ι�ÿ™�8��e0�Îe�Ìph555ÎΙ™22ÿÎ�444™e0���ªªªÎ™edddÿÿ™999eeeÌŠŠmmm0��oooHHHÿe�bbb8H���tRNS�@æØf��?IDATx^•Ñén¬0„QWw{a›5ûž{ßÿSm4Rê'ßÁF"üqªºýxê9ç ¡Ç7;ź‹‹ †œÛÛ mn�<äû¶m¨Ál  v÷pß¾ Qxoš‰híwf¯@ÎÑà½#©Ý_—”0 C5R�Ý¿nÇ#E2‘ÿ# ÷¾Ç™ârB|àQõ[S”Çþ´×3ç ñX)EµH=§§þÜÍ@ ‡Cñþ!�*Ø£éÆ+TŸ¡8{*‚À+Ð_¾á‰€’Ë»…¤÷ D†Ïœ]@Ãîƒ_à€1q¨¢7[þn…¹L[ÕT»l0Jí"ص·„]ÄL\¬�{)…-q[À¼'Ÿp+`Ø',Á(~©ˆ+ÀÅè¥p"Ñ0w¨‹"R¬Žý輊Ãe5,@X ó®ãìU ÎeÌ����IEND®B`‚IMAGE 460 ./arch/monster/misc/c_priest.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���TPLTE���DDD 000777UUUÿÎ0^^^™e0Ι�ddde0�ΙeÎΙ���444ªªª555Îe�eeeHHHbbbÿÿ™999mmm0��oooš�fd���tRNS�@æØf��&IDATx^ÑÙN†@„Qª—™aùwwßÿ=­Fi!㸠u“Ðý' ËTuý0œz,Fk­)ôé< %¸ –"w àtC€¡Öi: '0€ ö€!€)t†¾^€à^T ^‡þr5C2¹¨x3»Rh€À,P1¡¹€û™¯È` x‘"%ßϪ7€óè#Mž!…4ÕÖDÌÜ]d(ÞC´ûæ2ªîA+vGG1ê)Ïàñ¨Êˆ)ö@Y­Ó4 Ä'°(Œ&@þî-hí Lõ@dBƒC`ì3Ää.¼8óÆ!(Œ¤µ"AîÂJ°À²²€f¦+�_m?;6À\¤±@îÆ�Haß5qDÀi–Oݺ-ˆº}`›õ &a z³¶V³����IEND®B`‚IMAGE 510 ./arch/monster/misc/c_priest.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTE���DDD000 ÿÎ0UUU^^^777ÿ��Ι�8��ÿ™�e0�ÎΙ555ÿÎ�™e0���dddΙe™22444Îe�ÌphªªªÌŠŠmmm0��eee999HHHÿe�bbbÿÿ™oooʉ,³���tRNS�@æØf��@IDATx^•ÑÙŽ¤0DQGfza«}í}fþÿ;º¬B ‘ú žâÈF"ü63ûÿc´jW÷*ì}³ÖÆ8L»P,@Ó®Õ�Ö¶í>0ªM£Óžð·Ý.jxœ{ÐB#ð¡zAýH‚þ«¸3D HIxˆ›öºîE|ŸÀMÜ7› ììvîîR’}šÝ9–§ú]w:c<A²YÎ"ª…œ Œ Ám�äÕEÞn¡RAÃ#À+$' ÝÂp4ÛØCøG"8¸^£±N&Ñ�pk,Æ·a°€R…vãŽÄhø³2Ev°þ»!Ìl@dBƒU ìŸ‹ »ðáÌ« 1’œ3Åæ»°ä¹Ð9�+s¨s€ò´ýìs E$3G¥(›Š©,"cž…gµ%ðfÀ¼° 5LÃ7BÖ ¨�`����IEND®B`‚IMAGE 167 ./arch/misc/cannon_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-¿¿¿Í…?���hvœ¼���tRNS�@æØf���FIDATxÚíI �0ÕæÿoîB#‚W/K #íÓPëá#AÄØ’ÅÂmÇBí_GÄÁiiäî�Ó[dJ€ÌOnv¤n·Jà����IEND®B`‚IMAGE 167 ./arch/misc/cannon_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V R-¿¿¿Í…?���hvœ¼���tRNS�@æØf���FIDATxÚc`ú€ÅÁv�„ˆ“8)¹ ©PBÒÃââllC8ƒ�’ˆ³ ˆol‚0E¨AY #9Ї4��*á{PaÎ����IEND®B`‚IMAGE 231 ./arch/construct/castle/castle.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-¿¿¿���&(ýž���tRNS�@æØf���†IDATxÚÍ‘Á€0CçÚÿÿfH0é8ì¶Ç¥êKÃæ¸ .$þ �J,H`²b'ØìN&_Ü€XDÔ°›¾�M‘ÂB¤Â©K®wÑlø ‚>< µ&¹Ý¡ÎIYÁ…º(n.*‰l>@ˆÂ N…üF#<O#Èw‚q/L|_ Ò����IEND®B`‚IMAGE 488 ./arch/construct/castle/castle_a.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���¿¿¿@@@��€ÿ R-°¹ó\���tRNS�@æØf��~IDATxÚí•Ñ’‚0 E¹É¶þÿoÛb)I‹»>ptÔñ’ÃgÌöð 2‹@Æ,vAƒ“8.@`Ìb€@¯ pæ¶€:Ö?Ð#F8âÍ0„*é 0舃‘y/À&�PÇŽóÓ…€(<J¨ ÚøB€šúó©Î÷ãDó0øB ޏ�O[pL�¾p$ÈRàsA½È!þD�Ö¡ 2¨�ü?‚<NÜm�êÿ¥@çñþœ ò �ìIXmи(@–"èêî€ 4ö.Á Œó$©Æ^„'ÐØØ¿¾íÚ˜ÅËæ;‚Ü úùÕÑfÂd3e0t…³™¬­ƒÿu4ÈAãp10ìFž×,˜¢Í¤ó&°Ì›�'< ¥Ù X)ÐÍ'¿€#�­ t¾¿„¡ÀLÐñ*CÙÝI(äÔ^ñ*$$Ac¿A@Ê9íH‘í± ìÔûHk�ùÖ¾Þ\R>ùk ùÃÃ7ò Ÿ˜¶äÒ¿����IEND®B`‚IMAGE 488 ./arch/construct/castle/castle_a.x12 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���¿¿¿@@@��€ÿ R-°¹ó\���tRNS�@æØf��~IDATxÚí•Ñ’‚0 E¹É¶þÿoÛb)I‹»>ptÔñ’ÃgÌöð 2‹@Æ,vAƒ“8.@`Ìb€@¯ pæ¶€:Ö?Ð#F8âÍ0„*é 0舃‘y/À&�PÇŽóÓ…€(<J¨ ÚøB€šúó©Î÷ãDó0øB ޏ�O[pL�¾p$ÈRàsA½È!þD�Ö¡ 2¨�ü?‚<NÜm�êÿ¥@çñþœ ò �ìIXmи(@–"èêî€ 4ö.Á Œó$©Æ^„'ÐØØ¿¾íÚ˜ÅËæ;‚Ü úùÕÑfÂd3e0t…³™¬­ƒÿu4ÈAãp10ìFž×,˜¢Í¤ó&°Ì›�'< ¥Ù X)ÐÍ'¿€#�­ t¾¿„¡ÀLÐñ*CÙÝI(äÔ^ñ*$$Ac¿A@Ê9íH‘í± ìÔûHk�ùÖ¾Þ\R>ùk ùÃÃ7ò Ÿ˜¶äÒ¿����IEND®B`‚IMAGE 902 ./arch/construct/temple/cathedral.x11 ‰PNG  ��� IHDR���`���€���܈���PLTE������@@@¿¿¿ÿÿÿäTÙ\���tRNS�@æØf��"IDATxÚí˜ÁŽä CyvöÿyÕ¡¢Z”4³Àp‹shT¢mJ§š)/^¼xñâÅØË°“^f½eíQ�Y’…·(`Ń7(€âüÒ)Å/óËù û—ˆ³§2[Ο˜]ç—Ân¶œ?=0›Îïì`ÇùÓÿš€¼É"`îxÀÚkùüðw�^lP êx€ /6LAbÏ´±¤ŽuÏô‹9î,w@!¤žuÏ|´0ÒDa´ÃýÛÁäÍÈ{=7{ ïõ@[=a§2lõ@†Ž<yÀ(¿¾y�>n|Šc_s€>ü­œÅÿ¨?{�²Öƒ( |Ë•«õ Šƒ£øÑ\ù¢8: î9ˆ¥}d‘1xð ÎjNT\Åõ$—mC|Ì Ü=@Ó ŠÃüºy�¶9œ@WqTàž$8HH†ø‹yH²9ìã•OÇsü ¢HÁS’³ËùL È¢õ ùufX�²ƒÀX÷G„ÀR®w]§ƒ…$ñc`˜¿ÉÄšÚMÀ€W&—1¸MªÅñ ¥Ñ€ˆéØv Z\˜hn"ß:˜œhéÁÕ€ Y\˜hÑ@Nœ¦ƒ¹‘ ¤W92Y\ÉAàj�9Ÿù‰–\ ¤@"‹+­"¦c“fÏŽÌ6Ñ€¨Ó1ôÚâÚD B �õS\Å™‰–XÍDˆiÏaƒà,®N4åÈä„|.$¦'ZzðЀåϢ剦þÔâú€€%ì m�ü"ø1eíŽF  @) q6}~Eów4Öúw´>¿C`þŽ)�!�—€LO´~,ÜÑúXÿ_E?±gå·ißâØS&ïh`èòÇž2uGû'Ø3uG#¼ìðÇž¹ *t2{f‚V90æ{rÏpÐD¢#pa\ÀÉø=c¹§ Aæ&@X‹U8iòë>üç¢òçž2Ó�úY�1Ý�}þÜSÆ`v læ/ìØÍ¿_À'ºü¹§Œ£~çÏçËN_‹³å?./^¼xñâÅà/^.%¬ n›����IEND®B`‚IMAGE 553 ./arch/ground/Winter/cforest1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE�!��9��Z��„��­�c9�cÿÿ”J�œc�µµµÆÆÆÖÖÖçççïïïÿÿÿÅ[„Å��´IDATxÚUSšÃ cêÅ«”ñþo{ ìç;kWA!:Ëàd}C?ÉÏÚ Û´á(ks¾÷…‘Óè‹<\s •ϼåQ¾€È ‡uீLÌP¦¥§ PNSÊœž`õ*Q>FóJCL¯;>@`Ä݇pNG|€HÇð3n…X€ro òL8#9ƒékÂnó/prÁ]@bä~þU÷ Ð:¨ÄŠÉ^عZ~“ý5œò{sp©°J{IÅKA’Í5ÝDºº¹;­`‘„S2Ö¦‘k$nSlçŽVÝ&{ä̇^7À¤·‚ÇYAÇë™—‚rhŒêHrÜñ€º¦¸1—ý… ’”K©Ý«1u>¹û°�ãŽ×ÈÅ·¨Ö5´BžkÍ\¥tß.c $}¢ù¯¹`£”®µ¼ŠSU±•x, ¤¢±e%Î!žŽ¾Ö—8D쑬ý賨N²jÔñÚÞÿBÛt_×oBæ²ô³j©ñོpuG-u´�¡pÅ|‡LqÐÖî‚Z|¦\½€%ûÙ����IEND®B`‚IMAGE 530 ./arch/ground/Winter/cforest2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE�!��9��Z��„��­�c9�cÿÿ”J�œc�µµµÆÆÆÖÖÖçççïïïÿÿÿÅ[„Å��IDATx^%Ï1kqðá ­Âá°ØÂØHš(6×[XÉ&¼pYþ™îºe?‚`k©d›ÎêZ!'»… óLäàÝcÜœÓ ïÁ+~B²!³zXºÉÜXû“mÐ…5ÝÖ‹:šî8… ½vU¡ô‹K„I ÇùQáNÝKkJMzw‹D/oÔB,<Òá0‰®ÝŸÐ%¢T¸R]-ž€#™3 v¸þܺ‰[mñíàÑäխ¦ ã Ûsí6/¾~%,Ì:š¦U[B²^WŽ1&“Dqó3$fmGH&ôˆ Íñ×u#\¤àÝGèšÒÔ[F0òÉeïÅ"kOv§žáâ6¨Ýv¿o—¶+tïÌêÞ4oT­벾Ï÷Ë5ÅïÕnºšV—­ÚZvêpàWYU.ÿÕúJËe®Cl§v¾<š–íV]òNÝçÍéó·“mHš¶E3ÿy€X>MNÁXµaœ?MFK¥Ì­ ¨ÎŸ—KXˆXÐðW ‹ï’¢{ŸJ¥  ˜Í†ü\VU8Š����IEND®B`‚IMAGE 534 ./arch/ground/Winter/cforest3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE�!��9��Z��„��­�c9�cÿÿ”J�œc�µµµÆÆÆÖÖÖçççïïïÿÿÿÅ[„Å��¡IDATÁ±jTQà!E ±k±8…»ÁF¶ÙÂFÒìXéaI.Çy‚Ëy IZ ±JäYCÄâvb±á,(Ã<@аk8]Æäû@`暦”’WŽUM#´õúû�m=3«+ÁÚy0庇+¹×«ÔÌ0ÿp>€ZÔup ¾ ¬Nêe/¨«;¯G FîM<ùapðÞãPÁtÄ\Ë6žEI¹ù¹•–·§Í(vNZëE¨­Ì—Ó͈ÈåóôþîþîðL¨^ž.¢H·¾ @åõþæ[ÏŸÒöfzïk“©< ìïy¶\ÄP3¡07ENÂ|²éÇ(·Žêü橤Éß/;I+ßZoúÊÏÝÈ”Y¤n%•£ÜÈZŒb|Ì®™t5ÈrÖœt|§™ùWl¾å:©ºìKì«Ì�ø‹ç³Øý3k^·óg¯Æ»«f#ÏõrÂÞ?À�'Sðƒúq¼Ó‹9 ä°¢cÏf µŠÄü’ ¸©“œë;‰¢np#õÊ|pÀ^ jP‚Zæ;²27ÇìñbrÅLÖV����IEND®B`‚IMAGE 510 ./arch/ground/Winter/cforest4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE�!��1�c9��B��R��s��­�”J�œc�µµµÆÆÆÖÖÖçççÿÿÿÿ�ÿ-ã}M���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��mIDATxÚe“nÅ C_·VLòïÛ•  Ò,¤´`“Ä|˜áàìdDü;_Œš±…"ú‹�²<9BjC‡`Qx !†„"LÁKñS´êwÓLq„P¼v¹‰- B˜šu2Œ.–0ï‘ YƒªqõKGh¢˜ UnÆ[¨1[ w PÝL1…ó®S$ß 45hýY" wŠˆA3ñP£‘EÃAE5]C8Ê)Е„dT£ÊM¢@}˜A¿Š­Ù E’¢tž?ãCgÜÃAp#šž ‘^lÂp Q@áEX?ã&ëÜ„[’i¥çãipßÙ°‹‚XF9 oLD…À:±j Pت¡V‹*Šˆ=n ƒ†?³cªU.›NÀ«LÂȄզ±”¶‡õU‡A%/AkþÙ`¦p§\˜Eû´áç2ÊIè4Åwéõ²îû÷óz¤ÜO °$æQâŒ%ÞÛûÙì‡qQh ¦Æ����IEND®B`‚IMAGE 421 ./arch/ground/Winter/cforest5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ�!��1�c9��B��R��s��­�”J�œc�µµµÆÆÆÖÖÖçççÿÿÿPÜ)���tRNS�@æØf��#IDATxÚ]“Ñ’å D“™7¶öùÿ¿Ý\ʺÙÀSS6žäxY±ᙢĈ¯£§¬ §,A¸±¥ÿܲ†2)i«X¡o D(f�ÄÁq{Ý‚z…Ïè ÐRB=8ç)Œ‘¿+À“AîØC·—·c VA’_ÐGýth³MŠáRbq6(WìH5&¨r†oMŒxÕã\ÅÓ¡Â…î~Ž+ÜDé× .6ÖóŽ.È«‰ ó 7Iæ;†vÏ`‰†Ð6T¸¸ƒ‰ù ñ†Û{¸‹&œ‹T¸XÜΘgvI¸!; Àž´‘õ®îÎÌw}›ìkÑîÎ~`ð9þ®‘¡íø ÿi_×ßƒçŸæ‚ƒFýR¾òâÊ,ÿ�µ‘õ­„����IEND®B`‚IMAGE 427 ./arch/ground/Winter/cforest6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ�!��1�c9��B��R��s��­�”J�œc�µµµÆÆÆÖÖÖçççÿÿÿPÜ)���tRNS�@æØf��)IDATxÚ“ÑnÄ /íÙ¾°àùÿ¿mHš#AºªûÁ²#l“Ǯɬ“?Ÿg p'Èá(èvàiŸ#pݱ6xš®Âåu¬{ààÑ\i>ˆdÿ½gÔŠÄõráâL t’Ž#šïDÁÛÏp-u÷l‚¢ÂƒÃo!—ØbGuâ» ø ÒªU TZj'– )DÃ2‹C¨u¢99Ê�”rƒðNÄêèÕº¾:Iš“Eu±³ÝœÊgO&»L÷éÓË%EöïúJŒù )› ¯¬›8í1’‹¡[š0„†}x=«ŸáÂÄxŽw€?:<‰dV¬Lî˜XRÊ–· ³}Lì ›ýÁø. }þ5éíÃfÀ×ÊÑ`>0NÝýéŠ\™Ó����IEND®B`‚IMAGE 212 ./arch/monster/humanoid/Human/charwoman.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿú€r.‹W�ÿ�²""ÿ��' ¹¾���tRNS�@æØf���jIDATxÚíŽA€ ki»ÿÿ±ZÍÖ»q0\v˜(ŸÀ›°)_ݪÊ÷Ê€™Á¼*ØSÃÒp*œU«@ *D‘(w30 ÄÀ*¤ÑÚm £Mc¡ùuæü""¯ø¹²õôŒ����IEND®B`‚IMAGE 212 ./arch/monster/humanoid/Human/charwoman.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿú€r²"".‹W�ÿ�ÿ��"gö���tRNS�@æØf���jIDATxÚåÏK€ Бþîc©7dê^RóÒ|2A;wOp™y@#Ìœ»Äœ¬ÏrÞˆ´ Š€$*P ô:`"`âî)Æ`JŒ™<!�`ýqõ€4½j Õõü2'µè E=¢����IEND®B`‚IMAGE 211 ./arch/monster/humanoid/Human/charwoman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿú€r.‹W�ÿ�²""ÿ��' ¹¾���tRNS�@æØf���iIDATxÚíŽK À ÓüÞýo\¥RKÒ}é(nfxH_@ëùx ˜afmë S¨j˜iø.°ôJÍsÌ4ŸÔ œ0(=Áó”žP鯅G ’~-`÷2ýb„&wG’&Xî>žŸ'^õôþ’����IEND®B`‚IMAGE 211 ./arch/monster/humanoid/Human/charwoman.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿú€r²"".‹W�ÿ�ÿ��"gö���tRNS�@æØf���iIDATxÚå9À |ìÿì)kúd¸˜ù"�Z¯WAUD"ŒS÷·—wd‘QS¸jHé®0Áõ«Eý 6Å–ìŠ1yy`±}býtî9i¡µ9fuô¾Æ¿¸©„ º=ok����IEND®B`‚IMAGE 193 ./arch/player/class/Religious/cleric.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-¿¿¿ÿ���"‘É���tRNS�@æØf���`IDATxÚÕÑA €0 Àhæÿoö`¥—ÆDÐ=„B†m¡ñàÙ¡h¶æ k�2±ö]žQ�c-€”–`Ü!‚X‹ÑPÄl(B@û�œã˜³,¸«¸ïÌçr�ëzXºþ-o����IEND®B`‚IMAGE 193 ./arch/player/class/Religious/cleric.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-¿¿¿ÿ���"‘É���tRNS�@æØf���`IDATxÚÕÑA €0 Àhæÿoö`¥—ÆDÐ=„B†m¡ñàÙ¡h¶æ k�2±ö]žQ�c-€”–`Ü!‚X‹ÑPÄl(B@û�œã˜³,¸«¸ïÌçr�ëzXºþ-o����IEND®B`‚IMAGE 203 ./arch/player/class/Religious/cleric.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿ÿ���gpî���tRNS�@æØf���gIDATxÚÕÎ9À0DQbóïåHv…YR&S!Í  Ðõ.ˆÁ…Ï5Ñý0ÂT0'º1ð^! »[„<7°‡ä¶!¾!Øæ‚4­Ý‘ÕåÀª¤ÂŠ Ðy ¯å¥;%‹»LÉ����IEND®B`‚IMAGE 203 ./arch/player/class/Religious/cleric.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿ÿ���gpî���tRNS�@æØf���gIDATxÚÕÎ9À0DQbóïåHv…YR&S!Í  Ðõ.ˆÁ…Ï5Ñý0ÂT0'º1ð^! »[„<7°‡ä¶!¾!Øæ‚4­Ý‘ÕåÀª¤ÂŠ Ðy ¯å¥;%‹»LÉ����IEND®B`‚IMAGE 210 ./arch/player/class/Religious/cleric.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ R-ðæŒÿ���r¶ 4���tRNS�@æØf���kIDATxÚÕÎÁ …0 DÑÖ¤÷ÿ?Ycl:Ù<è,aŽ¡ã‹Ô’éþS'Žtf¦A †D,j `E`Ngˆ-Àtßî„r ®Z”JÁP`iP/Yô{Í´{Ö ZèN<Ãÿ�P¯Ê VZo����IEND®B`‚IMAGE 210 ./arch/player/class/Religious/cleric.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ R-ðæŒÿ���r¶ 4���tRNS�@æØf���kIDATxÚÕÎÁ …0 DÑÖ¤÷ÿ?Ycl:Ù<è,aŽ¡ã‹Ô’éþS'Žtf¦A †D,j `E`Ngˆ-Àtßî„r ®Z”JÁP`iP/Yô{Í´{Ö ZèN<Ãÿ�P¯Ê VZo����IEND®B`‚IMAGE 210 ./arch/player/class/Religious/cleric.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ð挠R-ÿ���–MÎ���tRNS�@æØf���kIDATxÚÕÍA€ QÁþ¹ÿ‘Mš.4-eáFÙ4aåøéÊë[‡îs–+ÎcÒ²�’�J�’÷1Œ @à`˜%€çPV|Jz‚…XõØ@þ‹¾7y<o@°U߃˜{@š$ð‰s»ºµ¡´ÍM����IEND®B`‚IMAGE 210 ./arch/player/class/Religious/cleric.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ð挠R-ÿ���–MÎ���tRNS�@æØf���kIDATxÚÕÍA€ QÁþ¹ÿ‘Mš.4-eáFÙ4aåøéÊë[‡îs–+ÎcÒ²�’�J�’÷1Œ @à`˜%€çPV|Jz‚…XõØ@þ‹¾7y<o@°U߃˜{@š$ð‰s»ºµ¡´ÍM����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�eee‰‰‰DDD ��æó)}���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 282 ./arch/armour/cloak/cloak_black.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���---���Ι�ÿ™0™e�###=== ��X¾Ä���tRNS�@æØf���§IDATxÚ­ÓÁ„ EQ ¯}ÿÿÁCµ‰ Üx†¤'…Ç×ÑÛOoI¨úó�næ$‚U•WX�ÕzJk˜­6T‘&f±"!ûÇV@…taf  0ÈO¸@¼! @o|¾µj�³±asÃ0oWø|Až+ûÑ’H�È�ˆ¹ƒ,ØF�  é¼ Šƒ#@¯”A”߈Èpò×Åáîøª?ï¦ i@¯����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_lblue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�e™ÿ™Îÿ0eÎ ��]u·^���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_lgrey.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�™™™ºººuuu ��°XÞè���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_purple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�™�ÎÎeÿe�™ ��ƒÆ³���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�ª��ÿeeu�� ��7k8«���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 246 ./arch/armour/cloak/cloak_trans.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ªªª00����Ι�ÿ™0™e� ��/Ý–���tRNS�@æØf���ŒIDATxÚµÐÑ Ã0…a·&ùßÿ×Ü…L½jD?HˆÝ”n- f‡¢©Þ…�Å  2×z[ æšV´žp–H€9PAÀu¶ðáÀtÔ7À@ÿ° oÕ#ˆ´€hö'Xª-X #æªclbœÁñ7lµƒä/‰A±»òB)aü[¸j����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�ÎÎÎÞÞÞªªª ��NÛÁ_���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 875 ./arch/ground/cmarsh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¢PLTE�Oÿ�`ÿ=¿ÿ1¿™�`™…ÿÿ�Û·�Qÿkÿì�΀�¹‚1ÿ1ÿ€1ÿ‚�wÿ�†�Û\�œÿkÿÃkÿÅkÿÈ�è·�®ÿkÿÿ�ÿ½kÿÀ1º|�rÿ1íÿ1ÿ}�]|�ÿ¢�eÿkÿÁ�®}�ÿL�ÿM4ư�ÿN�è\�ÿÿ�ÿakÿù�Tÿrÿÿ1ÿ¢�äj�ÿK�d°�Ñ‹kÿ½�ÕK�°ÿ�“ÿuÍ'“��„IDATÁb#9@Ý`““5I²,ÉÙÞ|ùÿ_;oUbv²pºã?圛uädDf!a–xtɦr¡x*8’G›ŠÉò Û”DüÖ^¯×—§î¿É|(‰–÷£ßF®g¯Ýò“¢ƒlï~°%–üqŸî¿ï£÷ûãÁ‡ï@Àæ§®[/عÝþŒû¦î‡Z+†ˆÄ8·ÝÒ¯ŽTðìçeGi* qm Äc·t½ø’ûd¥Cí_Iº‰îÀp#‰Sy3øThÅaweµÆ!±�ž2Y8yÀ2ÍÑ^¯óXÿ%+@±4q"…�2çqk=Ôæ½g1‘"Ó)“2!­ëk÷Pß‹©Fy ½Z""˜I> Á‡,á—B‘ÊŒx Ø)îxþô²©æàVl*Ç$Û¹µ±Ön]¿ŠEÀÜÜš“Èd8[;ÿ¨{·¬—weRP«¶­‡•=™nþ«-×¾î]' É”0·×v9DӯɭÌ]·Ô½…±}Y–zÀ�¼#‰²B!�D2Á,s„D� ΢LyR[nÑ4(›6 \N¤§ì@Q¡ß?ÍÏÍØ<|9T6À˜u)IC¼]¯7o»Z_»um¾4eîVìbÉ&CŒ~«‹uûžIûõ<0£r’Ã÷äõ‡-v’+Ù¿¡° P¦ ?<¢[¬³�œ5§r2‘œí|‹½Ö=ȸ×~ˆÄ!‰2|ŠˆÌŒO>Ÿ‡žÂip’™þ1Û¹ôçu±¦ÆáØÒGv‡2EÃ�î®í]ûÖoš‡o[ÞÒŸÄ#­˜.^Ú¹5³kÿ¾åôœ­ØI$ÅñåÅz+f )Në×íÀ&W„j;¢����IEND®B`‚IMAGE 250 ./arch/monster/animal/cobra.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE����Í��ÿ�.‹Wÿ��ÿÿ�ÿÿÿA¤„î���tRNS�@æØf���“IDATxÚí“A€ «…ÿY{šÄtÙ®ÎÍÎfˆÄÏ>YH ÂCïç|ÕM¢ÝžEÅú@¬*jHA»#(è£2«†AAÑøÙ5€l�ß�!Wp‘ ÀE L!Á+¬/¬? lyPÿ-ÆÛÀ•Úë ÖCÆq@xÐg` LT€‘ äqŵ[aNÆÃÓo0/#ñóáåÆ ¼l����IEND®B`‚IMAGE 252 ./arch/monster/animal/cobra.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE����Í��ÿ�.‹Wÿ��ÿÿ�ÿÿÿA¤„î���tRNS�@æØf���•IDATxÚí‘1„ ÿÿeË& ¬‘!@3:ƒnç¬36¿7V6þ4þŽaÑî³Q^ ¼›àG$¾á@=Áp¡R ü?¡ o:áâ ˜/(î[hQ¬ ¼a¬à½Î¯æßÒ§/é|à‡>­Ÿ¼èî} Þ+¯ÈÁœL gS¬]h0/ò€& ^›Ø<¸�Võu&����IEND®B`‚IMAGE 249 ./arch/monster/animal/cobra.x13 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE����Í��ÿ�.‹Wÿ��ÿÿ�äH——���tRNS�@æØf���•IDATxÚí”Á �!DMÛÿÿå%"w°{j.™3<¥CrT“ ¡ÿŠ�ûŠ‰Ù·)µ÷€0¢÷Ñ €=üEQXÓ@ À/„ jR#H<4(!(÷Y;ÿk€U|¶y:û^B`ÍÈŸU#À:7>¯>*ü¤€ HîÚ'òc˜ùFXØÂÛü‘†öÿÇQÒ ø˜€Ö‚š2����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/cold_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿÿC- 8���tRNS�@æØf���~IDATxÚÍQ€0Å&½ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#naŸ?.gV"����IEND®B`‚IMAGE 222 ./arch/monster/dragon/Hatchlings/cold_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿÿC- 8���tRNS�@æØf���€IDATxÚÍ‘Ñà YîÿÿykÝ%›lú\#âND„õ ð @àEÑÎõ×e ¸„ƒVÅ„{Cxݤ§ akp°5`¢;¯cœ“˜qá ¿‘FIh½á|“„Ù˜Aݺ8\mâ×èþ H˜ô™sÅKgAÜ.È¥ÖsòSUn0;¤����IEND®B`‚IMAGE 222 ./arch/monster/dragon/Hatchlings/cold_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿÿC- 8���tRNS�@æØf���€IDATxÚÍQ€0Å&½ÿÍ“aˆþZbl5›ë7�>!hÕD> Ì´r·•€Û#/]¿ÀñáEñ0yhÇÌgõ¾ƒ!æL×5^ _c!îd=Ct<‹´å]·b÷q39mž…e°¿ŸölÕ ðB³À¶›cðáó&ÿÇ \Í?×zYC����IEND®B`‚IMAGE 218 ./arch/monster/dragon/Hatchlings/cold_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿÿC- 8���tRNS�@æØf���|IDATxÚÍ’A€ +ûÿ?Û&P7à•• :SDB\e†¾¨wjy}«cHƒ73Ó‰=L Ý¬³ýñ.ùè«ÁÏ­ ßï·½AÛ, ðL(ksAdÆç{¬R« lË»YÂ~nc8)¤™àçúº¼%O_O帣����IEND®B`‚IMAGE 199 ./arch/talisman/collar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���iIDATxÚÕ’Á À0C5þÿ?d®EzÙâ©æUsPþ&{ôâj”6Œ)•µ~¨y¬3 Ô‘9a—zH£ÀŠ €Qj@¸aKþâH*KÝ_ÿQCÝ}9¸‚öGµó• >‹SÀ3|N¹„'ý‘Ú¹����IEND®B`‚IMAGE 199 ./arch/talisman/collar.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���iIDATxÚÕ’A À0u÷ÿ.T èÚ‚·v¼$qb hƒ‡‡¬gøàÐ[pÌ'jÔ²á4AKÖ§®W‚ ¢+Á�¶®ë<Ä®DA½ó b­ßŽiîç!¡½#×§¹y|/hŸãµ›"÷…W+����IEND®B`‚IMAGE 200 ./arch/talisman/collar.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���jIDATxÚÕ’A€0—åÿ6±¶–j¸ép*L)$ÅßðŦj3¬pÜRxYŸ¨Û' Ú2NXMÝPêÞl =MM"'|1N¹!òèY¿ïS‡ºòœfã?ˆ†g^ï[2T0k º >ƹ'>LÉM����IEND®B`‚IMAGE 1082 ./arch/construct/town/collesium.x11 ‰PNG  ��� IHDR��� ���`���­ù‰«���PLTE������¿¿¿ÿÿÿÿ×�Í…?@@@Ú¥ xa…ì���tRNS�@æØf��ÍIDATxÚíš‹rœ0 E¹Beûÿ_Üè…Ìf€ÚòΤS®O¢4pr$3ۤ˓'Ož<yòäß �”jè+8¦³öY{T€OÒ¡š1 WÏüV'ÞZL"N#´ë³Caò¹ ¸zÀ,¾ÀC9‰˜}.:^}+i!”/èhÒ껩°Î7….!“°h|B7q]¢î˜Â¹�!Ñ9Qn°òÜÌþ&aU òÜ<DÙmCQ ò‘ÅÅ E4m!i« h|3fÐ!wÂh2JG8ÎÈ'&0�+9Ïȼ‡`KHÄPƒLû Nz&aM!@jpïq½ÉØž3Xé0Iobj_†Ï1öÃևГ°Ôãì0î^ "²ž‡È°Øc@™„˜Áóà·.¾ä“p Ÿ“z€D1ƒS�‰wBÕgœ€h�qÏgëžO–‚ä°A�0@¸?\$�¯²Rê7€ŒÓû«�|PHƒ@½"é¶£:akpŒO¾TOìm˼%¢ð±éKƒ£€ŒSÀ ´í’Äß ª‰~>$<¹mw:4ÂæÏ¸@Ä­£í–t³Ý ÑtÖc¬‹Ë nPár¿Ö€Á8,ôï1ï7äl;þ¥¼îè¦@Fv<i®¹˜Á¤Èv…öž[‡¯“ì396¶3#†Ú@ú© |cN<'ö2Ø7œÀ× àx"ô‘lw˜ ‚²ðuŠ@Ô;a]]fÈLC¯¥E ^`_D„‘‡Ì /åÃÒÈ��RÂYپџQ›@M($àLÜÖÛçà¼1@¨{XD ÞÑܪ±g"ó “?ó ¨b¡óæ2€e$­@ã[ ¨ÿÛ„ˆ8Bº¯c€.ðµ üZ+Mþ}ñ ¾Á¼”•?-€^¬x4¨ ±j@ß=öÕŒ®hð8‚¬ˆPF 5Ó_Ó%±Œ­@ZyE,Á† ·îš®‚@Íñ ¯Ì°F;s»zkò.3„¯’(Dm4ÞïÛ_PŸÀJR |–”1Ä ß:kr?Â¥¤@"ö[„nÓY Ø2à’™!˜ÍfºkL`5(|lsŠÄ¦í½5 ÈS�í>n&K>°½³Ö ¬!Ð÷#ÅÞQ›&0�É·æ©1©½µ`™fåKyãþš \æà7ĺ÷ÔRà‚e:àÒ Ìw׈°|*1d{wíV^ý¹íÓí{gmùlì&•Úÿþ”Ÿ<yòÃúá€DË“'OÞò5<J½ä8þ����IEND®B`‚IMAGE 224 ./arch/monster/humanoid/Class/conjurer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿÿ×�¿¿¿ú€r“][���tRNS�@æØf���|IDATxÚÕ‘AÀ Äÿ¹R´‡RÊÙMÌNí@‰ñøc· 02�/c�V}Ž/B@ð"´�˜Xë PÑÛ5ö�dªÛDÀSzŸ~ŽÂ”–õ9 ¦"AŠ$™¯{F1á'2Á}%ñ-ü–@üˆÈÐÔwc¶ç¦×²����IEND®B`‚IMAGE 220 ./arch/monster/humanoid/Class/conjurer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿÿ×�¿¿¿ú€r“][���tRNS�@æØf���xIDATxÚÕ’A �! w¢þÿË[J.[¡ Þ J†$Ÿ üù‹X?À àh6Â_�„P�¤·҅¬!‹2bjBø#òµÏ*&ù*Â=Ã鶞Ж¾/5p–ÐÈ ¢mM¥£$´€BtÿÒæuzwZ»q�����IEND®B`‚IMAGE 208 ./arch/monster/humanoid/Class/conjurer.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ¿¿¿ú€rD ´9���tRNS�@æØf���oIDATxÚÕ‘A 1 ÄVÿÿÍ…„nítKo+>Œˆ}Üà*¾ s!Ìþ@¤I¨çk‚¸KËõYZ@éÂ9Eø”¿„ø.ƒ ”5,ÊAâ‚¡nBYµÙ¹Mȯ?P "Jï¨Þ)£Rqî����IEND®B`‚IMAGE 222 ./arch/monster/humanoid/Human/courier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-ÿ�����ÿÿÿÿ×�¿¿¿ùºâ���tRNS�@æØf���tIDATxÚÕ;À0C¸åþ7n\ ©Ÿ¡Kë)Ê{"Äë‡ÁÎ ƒp�/Ÿ™t\EMÑpS+ ¯ <¹å# ê7$1x òmQÈ ÀÉT‚»®Ì ¨§[zõËZN%Z›n¹×œ¼Ÿ�¦2Èâ°¾• mÁ]—­¸����IEND®B`‚IMAGE 299 ./arch/construct/town/courthouse.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���ÿÿÿ¿¿¿§£l=���tRNS�@æØf���ÊIDATxÚíÐQ !Ñ­ïæt·‘`3Ù„zˆÇ½ÿXªÆDýfðiÝ€u¢ÖÖ” ¯Ä Õ'ð `¼ïw”Í�Åwê7êË&@½ïÔoj_¾ /5f°¨6‹ŸØjÜEÄ Ö ø‰z:Z#�`ÃÁô§›6ÛÈõŠëhºõ!ìØu4ÝÚ ÙçlŸj¯ÓöÒGo‹ô8×÷qÀÏÅÌ�×ñsÝíqïÞî.£ …¦[·����IEND®B`‚IMAGE 189 ./arch/monster/misc/crawl/crawling_chaos.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���eIDATxÚc` 4�q;ô‹l Œ k˜dîeÛf000·m�J\ýT¡w»EË–ú?ïÿK``’æÀÀ𷨤{÷v™4 6c y7ðØ �g?3´Pe ����IEND®B`‚IMAGE 191 ./arch/monster/misc/crawl/crawling_chaos.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���gIDATxÚc` �ØŒqFÈeI```~ü�È­ôc``’9€¡oÆæ¶ @õW¿70°éÞn``Ñÿz€­þÏÆûÿ€ZôŸuÔ–�õžÞ T,âî�ê¸ ‡Ûz�ÜNóØ$ä����IEND®B`‚IMAGE 197 ./arch/monster/misc/crawl/crawling_chaos.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���mIDATxÚc`À ø€¸¹Hä}@¢ç`+�‡“~;ÀÀ(sþ� ÿæö ŒW˘tïÅô¿``¯ÿ“ÀÀ|ÿP±þs ìß ºîÝ L6@.Ç Œ'æáv�¤p0 ����IEND®B`‚IMAGE 157 ./arch/shop/crea_serp_c.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���EIDATxÚc`Àx@„1ˆP 0¢ÁH´$€ˆ� Ñ$\:`„*0<ö@BþcBpÂdž2ˆ`Äc?�Ð C”=2ã����IEND®B`‚IMAGE 184 ./arch/system/creator.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�ÿ����ÿþÈÃ���tRNS�@æØf���ZIDATxÚÝ’1À0ÄÊåÿ ¤ŠtÈs{‹-”�ϳ*3}<<3qIÞ8XG±B1/4ŽˆVnn„e$*Ò($o;àø<ž$ï‚·é ¾¸Éïe"‰H†¿����IEND®B`‚IMAGE 179 ./arch/monster/humanoid/Human/crone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿ÿÿÿ���qX���tRNS�@æØf���RIDATxÚíÑÁ À0 CÑFþûÏ\k�[c©ðMÈóç*ú 8@�I@u`ï5 Ê‚¾ù…r¯ à æ úÄ!�(m@]×*,XŒ�Ç‚üË !®̦|¬����IEND®B`‚IMAGE 562 ./arch/monster/giant/cyclops/cyclops.x31 ‰PNG  ��� IHDR���@���`���š„Ú���PLTE�!�ðæŒ�ÿÿÒi R-.‹Wÿ×�ÿÿÿ¿¿¿���Å�ÉP���tRNS�@æØf��ÂIDATxÚí•Ûnƒ@ ÙrÿÿáúuJ^lW­T‰ !ÊÛl´™þ \L8¡@ÉæCà"Êgó'žF)ç3§§’�AÓ*hÀà«?˜šÏ7š £)°ÚJ{‚à‡ô[�µ˜¡ÛƒçÛ @ómE„{ w èõÐÌü�&TÐ7ÌÓò. )Xô)ˆöBN0/"XäÐQZ…¹„yQb70äœü1yÞ ŒH¶ Ù%J›‹QÍŒ0Üò¤ˆó7å¼ôp)€âÍYòT“PÝ -O¬dc7¨äáK3ùº zÚfÂD´~BM°âù Ô(ë CÏþf.¬‚ Öm•ôfy„ÚŸó*lö2”²`på¡)ð<ÐücÂGðxWÐɇ`Óú ÌÐø=³2µ‘ ,`pˆK $@Ø3]É‘7ÇW�Wä’=ä\êGyÁî^®å(u`CàùJB„˜ ÙA l„œ ¼E‘5¼ßt]Âü Àán#ídË[|]„˘ÀºÕjp»é ì»ð®L œ7e~QîXý6¸óáááù†€ŠÐ ����IEND®B`‚IMAGE 550 ./arch/monster/giant/cyclops/cyclops.x32 ‰PNG  ��� IHDR���@���`���š„Ú���PLTE�!�ðæŒ�ÿÿ R-Òiÿ×�.‹Wÿÿÿ¿¿¿���!R§ç���tRNS�@æØf��¶IDATxÚí•ánÃ0„ëá&¹÷á&en& ðŸNʵŽj«÷0‘·nÝú'©»#²,44Ö÷›Þò@Âoª•�º³¸ë€¯Qƒ†G0üE�ì øYèÞ¢r®ÕŠ(”Å$°ÔJ¬•n4sá»;"o¯Ü? ‹þ,Ú�õÏŸ�‘ÌU !¸I!(! ¸²ED«ÐÖWÿ: ãgý@à˜p�D(f@Ô Ø€ÉŸ(ú 0*ó.:µ5<·Í÷¨Ó¤m{¦®'¢ÎŸYðdÛƒ˜!£óØHe�þõ¤)¨W¥4`ø�e68y& /dˆ?� ÎCÚ Øà€ŸäÁ~¨¼èõ>ŒxÖ�·¡~9ƒý@€7à³¼šé lu#ðÞ·¹h—o –ã4` b�7/³ŽƒG ÿÞ'À.ß8` &ØkÏÀsÖ œ¨Å#¸�x¬Gì!Ë&rðS›#ŠF�@Üó!ØBxûј+Ì@ÓÕCÇ´¢Àˆ�Ý x[ Ÿ"†ÞVRmh~—!oݺõÉúcõ[®B����IEND®B`‚IMAGE 560 ./arch/monster/giant/cyclops/cyclops.x71 ‰PNG  ��� IHDR���@���`���š„Ú���PLTE�!�ðæŒ�ÿÿ R-Òiÿ×�.‹Wÿÿÿ¿¿¿���!R§ç���tRNS�@æØf��ÀIDATxÚí˜Ñnƒ0CM0óÿ?Ü»ÃͪªÞ‹TõI”`Äë`ù!››› çcBÜÉãD.‘ñÅ` Ácä3HŒÎ‘Oƒ,îÀKtàƒºà0ÔQÁ?©ÜTË'uA½DØó,”âÁ¡)ÆŒb<¡–O øð¨ „¼bÐz>öb^ÀwA³—²þ Rf0Áo2Eð/¬Àjù6³ˆ"¼ú´ÖÖæ¬³[HBäÃ:û,h›FÁ0nºd>XxH®·××2ÎW¼Q[ÌŒ¸*¸ ô­HCeoMë+Š4‰ÖÈûê3‡Üµç€ç(²)‚(»z~Û€<`Z0Ê{ð¹XPWÒ¶mž6òæŠ�"üô|EsCMBP7¼)ðÏwŒ10òe¯Ëš #è2’¤ý$pÙ^@Èwœ‚ w‚טÏÀ¾÷}? |ÜA_ÏÇxC ˆüÎCCVÚ.b œÇŽòx‚S£QI™Aïp>¡Ì>*§ Kð9_C÷ø| <}©àgb^B…ëåptšüt9ÊbÌËÓ þ qssów|¹›ñe£����IEND®B`‚IMAGE 543 ./arch/monster/giant/cyclops/cyclops.x72 ‰PNG  ��� IHDR���@���`���š„Ú���PLTE�!�ðæŒ�ÿÿ R-.‹Wÿ×�Òiÿÿÿ¿¿¿���è‰Í¸���tRNS�@æØf��¯IDATxÚí˜ánƒ0 „ÉLIîý_x±cÅ&•3Ò¶œZ¥ÜÇÙ ªÔåÑ£Gÿ^€+á ;‹8™KÊu‚¯ ¿ É!”)$Ê@W6B3øº„<À"èY‚ JJú]y@$ÈúÇ>äÑÀ¤ì.t%í!d§)Òþ@$!ÈPþ€Û€¹ÞïQ‚@/y�T{ 0sÀ,�È �'‰pPÀ�nD¸ ÀÏ€RÈaMN)¢�¹À›_‚þ½BÀñm€’ª‰u}¡ˆJ³‹l"ä¯Òk]åM—f°ÍàrÔvm"{À¶1ŸýN�ô‘« aY>6@ýFéî× ˜óÚ1Ü(î7€Bj`R¤7È–qæ‹@`��(ÀKÀüXò€°ð„'`¨¬¯¼Æ_¡òÒÄ�j…ÉK¯ˆZ«­í�ZVPkÓ¢l½$�ƒ00ÃB÷0µ®Ê�¬ìJ5µ y"ªÝÊ]Mõ€:2 r�3Ä6Œžˆh1… h[D„¹>6–«„Öë1Dƹ>ô!=ú5}\s›çUL����IEND®B`‚IMAGE 200 ./arch/weapon/sword/dagger.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���@ �òÄM�   ªˆ4À @`0�ÀÀÀ���*s¬���tRNS�@æØf���XIDATxÚÕ̱À CAÇAí¿p`� šüöô—7v.YMrÞ\5o}üçÉ€sL˜‰I€õ ÷åD5è3hUúóžxX*î<i]IÂxH°¾Óïí[?7¾^Â����IEND®B`‚IMAGE 193 ./arch/monster/humanoid/Arabic/dancing_girl.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ÿ×�²""ÒiðæŒ���ÕŒ»Ñ���tRNS�@æØf���ZIDATxÚÕ‘K@!y|zÿ# qM»|±73±!ÚƒIÅ3¥ xej£�ÆkÂc† {ÉôOCí‚ÁݱèŒ`�Ù’ïÙôüø‚áë¿¥xÊïõ^îQ‰%-����IEND®B`‚IMAGE 193 ./arch/monster/humanoid/Arabic/dancing_girl.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ÿ×�²""ÒiðæŒ���ÕŒ»Ñ���tRNS�@æØf���ZIDATxÚÕ‘K@!y|zÿ# qM»|±73±!ÚƒIÅ3¥ xej£�ÆkÂc† {ÉôOCí‚ÁݱèŒ`�Ù’ïÙôüø‚áë¿¥xÊïõ^îQ‰%-����IEND®B`‚IMAGE 193 ./arch/monster/humanoid/Arabic/dancing_girl.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ÿ×�²""ÒiðæŒ���ÕŒ»Ñ���tRNS�@æØf���ZIDATxÚÕ‘K@!y|zÿ# qM»|±73±!ÚƒIÅ3¥ xej£�ÆkÂc† {ÉôOCí‚ÁݱèŒ`�Ù’ïÙôüø‚áë¿¥xÊïõ^îQ‰%-����IEND®B`‚IMAGE 142 ./arch/monster/misc/dancingsword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���3IDATxÚí’± ��Ã4ÿ-ø@q̪P·ñÉû-å±ûèÄ7£¼híÇz™ýà�€C‡uú����IEND®B`‚IMAGE 142 ./arch/monster/misc/dancingsword.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���3IDATxÚíÍ¡ �0ÃÀÄû]PîE•þ¨%k�xoÑyáË9Óœçw†|YŽ Yê� ^�ƒ\µ€þ����IEND®B`‚IMAGE 144 ./arch/monster/misc/dancingsword.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���5IDAT8c`ª€‰‰€<#… (•ñ0ÒOXALLø•a�Aóñ+ Æò€�úÓ�™ðêo����IEND®B`‚IMAGE 378 ./arch/monster/humanoid/Elf/dark_elf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���þIDATxÚ}“Ž… DÙ¿€ÒòîÝmkˆâ‡FŒÌË´bLo‘þ®½ÙÊî¡sAðc5üv.€œóö� ª ¢_�—ßÚëÑ {œ„ß(Dô @k Ô€^Žb+*P ¨Ð=¡ØÄhõS1ƒ &àS?tFN,Æ ^ß3x‹¨@§„fê¯YKu@à×5NÁ€3€â倊¸G4ä:‡b~�êÀM€ª8> šBÍŸ�«ô”o€ù8á€Êä‹^-�âc½ì9bVp_fÀ·ˆp^ ¡wBZÈk%­Ä ¤µè°°ÚÿŸa«&„˜"þ�i’Ô£ñ����IEND®B`‚IMAGE 379 ./arch/monster/humanoid/Elf/dark_elf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���ÿIDATxÚ}ÓŽƒ PΔ]æÿ·3JPèn´‰ó:¡1 ÏAø9Ðìã¹!îþ¸ßüZ€yõ¼¼Ea�D^;à¸;`þ¸ózæšÏJö�¸Ðòz¶…©c� ”8AMgânȨjHõìb€’\PÑÏ ù ¨è X6ô3hßg€´”B×ÏÌ) õ¿æÁÕ@Ò 8‰òoEP$æ ¸@¸›DËáF0½Fg>· =�˜CBÀmÊMà´—õlÐW À"*å6=B+ cž a1÷a™°Ì¡}wÿÿDí êsÚLq $l`ßµ����IEND®B`‚IMAGE 378 ./arch/monster/humanoid/Elf/dark_elf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���þIDATxÚ}“Ž… DÙ¿€ÒòîÝmkˆâ‡FŒÌË´bLo‘þ®½ÙÊî¡sAðc5üv.€œóö� ª ¢_�—ßÚëÑ {œ„ß(Dô @k Ô€^Žb+*P ¨Ð=¡ØÄhõS1ƒ &àS?tFN,Æ ^ß3x‹¨@§„fê¯YKu@à×5NÁ€3€â倊¸G4ä:‡b~�êÀM€ª8> šBÍŸ�«ô”o€ù8á€Êä‹^-�âc½ì9bVp_fÀ·ˆp^ ¡wBZÈk%­Ä ¤µè°°ÚÿŸa«&„˜"þ�i’Ô£ñ����IEND®B`‚IMAGE 379 ./arch/monster/humanoid/Elf/dark_elf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���ÿIDATxÚ}ÓŽƒ PΔ]æÿ·3JPèn´‰ó:¡1 ÏAø9Ðìã¹!îþ¸ßüZ€yõ¼¼Ea�D^;à¸;`þ¸ózæšÏJö�¸Ðòz¶…©c� ”8AMgânȨjHõìb€’\PÑÏ ù ¨è X6ô3hßg€´”B×ÏÌ) õ¿æÁÕ@Ò 8‰òoEP$æ ¸@¸›DËáF0½Fg>· =�˜CBÀmÊMà´—õlÐW À"*å6=B+ cž a1÷a™°Ì¡}wÿÿDí êsÚLq $l`ßµ����IEND®B`‚IMAGE 378 ./arch/monster/humanoid/Elf/dark_elf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���þIDATxÚ}“Ž… DÙ¿€ÒòîÝmkˆâ‡FŒÌË´bLo‘þ®½ÙÊî¡sAðc5üv.€œóö� ª ¢_�—ßÚëÑ {œ„ß(Dô @k Ô€^Žb+*P ¨Ð=¡ØÄhõS1ƒ &àS?tFN,Æ ^ß3x‹¨@§„fê¯YKu@à×5NÁ€3€â倊¸G4ä:‡b~�êÀM€ª8> šBÍŸ�«ô”o€ù8á€Êä‹^-�âc½ì9bVp_fÀ·ˆp^ ¡wBZÈk%­Ä ¤µè°°ÚÿŸa«&„˜"þ�i’Ô£ñ����IEND®B`‚IMAGE 379 ./arch/monster/humanoid/Elf/dark_elf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���ÿIDATxÚ}ÓŽƒ PΔ]æÿ·3JPèn´‰ó:¡1 ÏAø9Ðìã¹!îþ¸ßüZ€yõ¼¼Ea�D^;à¸;`þ¸ózæšÏJö�¸Ðòz¶…©c� ”8AMgânȨjHõìb€’\PÑÏ ù ¨è X6ô3hßg€´”B×ÏÌ) õ¿æÁÕ@Ò 8‰òoEP$æ ¸@¸›DËáF0½Fg>· =�˜CBÀmÊMà´—õlÐW À"*å6=B+ cž a1÷a™°Ì¡}wÿÿDí êsÚLq $l`ßµ����IEND®B`‚IMAGE 378 ./arch/monster/humanoid/Elf/dark_elf2.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���þIDATxÚ}“Ž… DÙ¿€ÒòîÝmkˆâ‡FŒÌË´bLo‘þ®½ÙÊî¡sAðc5üv.€œóö� ª ¢_�—ßÚëÑ {œ„ß(Dô @k Ô€^Žb+*P ¨Ð=¡ØÄhõS1ƒ &àS?tFN,Æ ^ß3x‹¨@§„fê¯YKu@à×5NÁ€3€â倊¸G4ä:‡b~�êÀM€ª8> šBÍŸ�«ô”o€ù8á€Êä‹^-�âc½ì9bVp_fÀ·ˆp^ ¡wBZÈk%­Ä ¤µè°°ÚÿŸa«&„˜"þ�i’Ô£ñ����IEND®B`‚IMAGE 379 ./arch/monster/humanoid/Elf/dark_elf2.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���ÿIDATxÚ}ÓŽƒ PΔ]æÿ·3JPèn´‰ó:¡1 ÏAø9Ðìã¹!îþ¸ßüZ€yõ¼¼Ea�D^;à¸;`þ¸ózæšÏJö�¸Ðòz¶…©c� ”8AMgânȨjHõìb€’\PÑÏ ù ¨è X6ô3hßg€´”B×ÏÌ) õ¿æÁÕ@Ò 8‰òoEP$æ ¸@¸›DËáF0½Fg>· =�˜CBÀmÊMà´—õlÐW À"*å6=B+ cž a1÷a™°Ì¡}wÿÿDí êsÚLq $l`ßµ����IEND®B`‚IMAGE 378 ./arch/monster/humanoid/Elf/dark_elf2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���þIDATxÚ}“Ž… DÙ¿€ÒòîÝmkˆâ‡FŒÌË´bLo‘þ®½ÙÊî¡sAðc5üv.€œóö� ª ¢_�—ßÚëÑ {œ„ß(Dô @k Ô€^Žb+*P ¨Ð=¡ØÄhõS1ƒ &àS?tFN,Æ ^ß3x‹¨@§„fê¯YKu@à×5NÁ€3€â倊¸G4ä:‡b~�êÀM€ª8> šBÍŸ�«ô”o€ù8á€Êä‹^-�âc½ì9bVp_fÀ·ˆp^ ¡wBZÈk%­Ä ¤µè°°ÚÿŸa«&„˜"þ�i’Ô£ñ����IEND®B`‚IMAGE 379 ./arch/monster/humanoid/Elf/dark_elf2.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿÿþ‡°1G77ZTT°ssslllŸŸŸ€66 88+++���Å0·���tRNS�@æØf���ÿIDATxÚ}ÓŽƒ PΔ]æÿ·3JPèn´‰ó:¡1 ÏAø9Ðìã¹!îþ¸ßüZ€yõ¼¼Ea�D^;à¸;`þ¸ózæšÏJö�¸Ðòz¶…©c� ”8AMgânȨjHõìb€’\PÑÏ ù ¨è X6ô3hßg€´”B×ÏÌ) õ¿æÁÕ@Ò 8‰òoEP$æ ¸@¸›DËáF0½Fg>· =�˜CBÀmÊMà´—õlÐW À"*å6=B+ cž a1÷a™°Ì¡}wÿÿDí êsÚLq $l`ßµ����IEND®B`‚IMAGE 312 ./arch/construct/Palace/dark_palace.x11 ‰PNG  ��� IHDR���€���`���⤊{��� PLTEÿÿÿ���PPPÃ=‹M���tRNS�@æØf���ÝIDATxÚíÒAÀ DÑÂýÝm«53#’ÌßW¼ —RJ©®š�CV`Øê,,0x‹“Õà_íØ!�þ Ì�þj; ™dY€¼'x?DÀX6€2ßÿL�Èpæ  ( X¦ €°€ �Þ:À½;úËüð²�wñ€æB�À€4�¼€‚�ð(Àί€Î/ @Î/ ˜ýexĸX0Š�8 HÞ@�@J€*�ns�{ɘø p6`W#@Â’6p)¥”RêÙ Âä-F{ÃÂ����IEND®B`‚IMAGE 598 ./arch/ground/Wood/darkforest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE�£��s��\�:ÿ:� ��G�����*��=�V��™�Íq��2��.�1,�j•;1��äIDATxÚU“²ä DPcîÜÿ S[µL¢h:™ÖúÏZ—ï,ujå㑞¡SÍ£i¬Â¾Õ^ñ>wß»6í"íHÁA–¾ºï=¡ÞÂÝͺø¡J‚ä!.]�yÈô¹©¶YUª•Ð9ÓÃó–¸Ù-2Aü7„º+^Wà8D‚–$9�Hˆ{_Õ{Õ5Äe?.lAý!ñª™ÚY¶Ž©ö-Sõq*@àã$óÎ~-B/f/XkÝ;F­½{ßJ[5]ï±s óf?„Pˆ ¦ˆ]Ëôh´¦"+@•'RXòÁzè†LáàÏL~•âM”8�‡µÌy¡–£éð1çÜS�MÒ+I[žM·éäü 5[ †ÙV›fRJsAËaD”öÎ4Ömò•ô¤5S(yäCjn‹ 14 X`B|ר›,Ó(Π à —îá9jç.(£4fõIPzª¿ˆ’¤SKô%‰‹¬®§ôW¼ ¡ ;áÔ•øÁ{Þš–1õÉŒKI§OÙWÔn'ÿßÿƒ›}µcéâ×Üï›/@aFz8_j/#Æ11—ýPLF•«üË}@âZÜú\"4Ü?�F“%Jœ2E´mUó|^Ųõ¯:K¥ÿÿpzR‹°ü,xz†ëË����IEND®B`‚IMAGE 1077 ./arch/construct/hold/darkhold.x11 ‰PNG  ��� IHDR���`��� ���Ä®™¾���PLTE��������ÿ.‹W R-¿¿¿Í…?ÿÿ�ÿÿÿiÃüâ���tRNS�@æØf��ÅIDATxÚíšnÛ0 D}¥Êåÿ¿x鑉aÔ�Û k#6so瓳¤Û±µµµµµµµµµõêû×q|}}ð¥ú˜¿xðùT;ÀðwÀ*�˜ž#œŒ fgKaF4 O—zšN†ÏUO‹m8LN³ø“Gh09_5štEã XÀ@dðœóüpÒ òÁød¤Þ`(@-v8é ü˜ëì�ûdÎß Úƒ*è¶D}øäâ…ô4n7xÅïù·�¾K΋¿7¼  ñg�XМÏk�Ý>²o;¬†:€ž.X  îÝÞ6`€¥�–  €+`%€«àÂ/X  Ò��,€·�àöÆr@˯£Hû·7S/Ù(€ó�€;8@8 íß � ‹Ö(Âø,?@®�JP÷²ð�¥! ˆ0€‘ Ð�ôØÀýÇ�”ŸàÒðôû™rþÀ �ç :^x€aÉêv]eŸ&·Ð€Û­Y ÝB-`îŸ�ÝPÿ�4«З<k˜3�"uÏ%¶PâÕêß¿ØA}Å�˜û+ ½F�D/ ñnïäóóûl Ü'§tìóû¤aØä¼dƒœ�ýñ€MÆ�/þnêÏÅ&ŠîÔÐX1D=À'ã;Á_M›·ˆúøþ#ØÀ%\À®P�ðÉ#xÉò�ìþ"÷o&C€—ìŸßM 8e€î“~Ü~ûçwž >�ˆ¨XÉÑuu{4ìÀ�1àqòå¿2àþ1�G0Yì`“/Öˆ+ D‚îÒ¶€§+ºB@Ó@ÌðBèZ1âÖ@,¸¿7'`àu�%î¼XTi€S¿íB×€¾?Ápå¦PèÀ ¬Þ@@×P5Z XJ¼  D€x‹&ð­m ®˜ m ¨8Ó€Š.÷�‚Š­< j˜8Ñ€ —ˆåÇ~Q‚7h�’2Ÿ.”hÀ…Ë=@C¦ �`�<]˜$�½õ_"a$ @ï�¨>™À�:e=�%ý©pE<�ÔXEzÄH¨T�1Ôø´2գб(Ý€<ve솳^Ä_¼Õ€�`Dl¿õë š@…Iz1š�†%Òò�’§ÁöJÀV�Ž\Åê¯$C߀>Î�ù`×�<ªøÐ/=¬‹M)5¬p?¥‡ltà•Ibæ7ÿHbrkkkkkkkkkëßÑoÈhOî—.ì]����IEND®B`‚IMAGE 227 ./arch/construct/hold/darkhold_s.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V R-@@@���[Ö~ž���tRNS�@æØf���‚IDATx^­Ð± Ä0 CÑY @FÈä�ºãߦ;7²Ý‡åƒ(@:ÞËIý&h@Ü€ XŠÝÀDJ5ÄÞ€„H,+v8‘vìÙ0z„ÇŠ”¸4|ˆl˜`€TC, 5|4ˆíz°´ß6ÀZ &^˜Ï•,`_·RàºaÀ+ùR….Çöi¸­����IEND®B`‚IMAGE 208 ./arch/monster/undead/dave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ���ÿ��¥**Ö ý���tRNS�@æØf���oIDATxÚÕŽA€0±ìÿß,`kâaèÁ‹.”Ìf‹ýK㱓eŒMJŠXQ¹ƒK.#iDÜ—Ä\ùDŽ Õ"^X˜ ϺÔýPŽTÞ¸ûÂï¢[´8ß¹0ßÙñj½0Lˆ7SvŒé8õÐ,Œ´í����IEND®B`‚IMAGE 224 ./arch/monster/undead/dave.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ��€ÿ��¥**^ æ���tRNS�@æØf���IDATxÚÍAà ©=ÿs dO‹é5Zy4$Œ7E}—]<ª2õ‘Ðòêó{jw–dF @ê]¡éý`Ò ¦zõ›Ãðà,`KÖ+ÐsxÝÔg¤dÏ# ’âhXNŠ!ÕM, ß\Ä À7Àk‘û0æ/Ë�©–Î}Ã����IEND®B`‚IMAGE 245 ./arch/monster/undead/dave.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�����€ÿ��¥** 1T���tRNS�@æØf���‘IDATxÚÕ‘AÃ0S/üÿËeq}hÂÞ[âu,͈Hñõ_©Û¹¢²Öò; â£ßŒrÁKϹP Ì?‚ŒXAœP4sö"mÄ/Xbj¨Æ^Jü#’m¡¡óÅÕhl ýÎ5×nÈ÷T°�f¡<”€Ah…$ÆŠ£`ü_Ì-Ä>¦šYØ|LíL†oÃûå 7¾_PsÞ����IEND®B`‚IMAGE 318 ./arch/monster/misc/deathtree.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ!!!c1�œc1Ö¥s÷����O‚]Â���tRNS�@æØf���ÔIDATxÚ}‘ à Cû–PîãÙSª2h±@|ü¢$p¬âØ Ú–ÉÈ a5LÖHLàó�Ô´mXšr{x p/:­åKiÀì\¨­&eh){J†å'·wp~íZ]’"½ÚAy{U&àŠ¢yƒGœ§F�.†ò=› „·eBµîk"½ð÷ð$[õi‰˜uÜÍ?¯¢Cn¶ðgÅHô- ï~=Ã>Cï~ü€äѶý"ú LÐ¥õ‘ šUºýñ7‚N{Žd����IEND®B`‚IMAGE 309 ./arch/monster/misc/deathtree.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿc1�œc1Ö¥s÷����Hð…‹���tRNS�@æØf���ÎIDATx^•ŽAnÅ DaÓµ'&ÝÃïj;'¨}‚JÝ÷ßÿ%)¡»ŽÄÂ1¼ôàï,B¢”½>&*˜d¹x‚MœzƒïiV° M�‹ÐÃ4“SÅÍ`­´x±ÕqqÝ(ÃƒÆ ý|íŸ(ᣑ©ìûn¿s†6M À!‡Y˜zÁ-L�pïUœ!†\OP**«Xi+È¡uîõ{ëJqÕÚhÙxÓ&·¹(·ö¸*E+W4y}™?èà ]d¤/ý�‘y…˜_����IEND®B`‚IMAGE 316 ./arch/monster/misc/deathtree.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿc1�œc1Ö¥s÷����Hð…‹���tRNS�@æØf���ÕIDATx^uÎAjÄ0 Ð1…YëGN÷öô�•” ¤ò ÝOIãBè‰Ï÷íÿ¡?€õ>@Zå…NÀxÙ.È”(ÀÞ;¹ Lâ…ÐäÌ0`Ž«ÒZÓÅqAL5öt¬%îÏe+{߉HˆïkþDnë ·<ÏSsÃ~'npÁÃÀ²ßWp“Ŭ�LÇ«L�0â? $†Ø¤WnqȺCŸ\GHMËîå9ÂÇÉ®:¢•†Ä›Vé²r­ê-\PåõþÛ ÔeŸ} 8û^é†����IEND®B`‚IMAGE 306 ./arch/monster/misc/deathtree.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿc1�œc1Ö¥s÷�Ez®¥���tRNS�@æØf���ÎIDATx^]ÑmÄ ù¡�QÀ®EÇÊDJ<ý·|rÈòõž4‹ûLqëp¬Ùi ¥ƒ2nh Ÿ¬i¼È-ùœNiŸØ_ 54ÆÌ§TÕdŸ²IÚW‰³Æ]Šc†+¤³Ü¼8OiÆñs}s t`Õöë: èà–ÐT›ªÙ{A�¿ëw}ÜÁy¨€ÌjP`üR#Ý~  LãMâ rþ^k¥e‘ìÊÒø’¦Ü¤†°N“X#a˜��,›øwþÚ½6‚ºI²����IEND®B`‚IMAGE 305 ./arch/monster/misc/deathtree.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿc1�œc1Ö¥s÷�Ez®¥���tRNS�@æØf���ÍIDATxÚ…’’à +¹ûÿ/7:·a¦¦œ&Ào°Œó˜âqÔ‘ ð€`QÀæËP øxD·'˜rðÓ]§PøâÀ®Ê,TMbeª­ # F˜;O[€áp¥³/Ä^^Á°ü©‡ R<Ÿ×£ÀëàŽcž @Ùè-Ö Ø† ä¨"Vt&W×™°›t/)gˆû°&'P`¸é ´ÙÙn—ÿd8dèk8gø×à-Aâ$¾'è- hY,û%Ä ë¶ƒ,|ú����IEND®B`‚IMAGE 197 ./arch/ground/deep_sea.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��d��ÿ�ŠŠÿLšÌ-���tIDATÁ11�À…„™ÎÂHIAI/!2^ E` / »Àà ÀhØà��°¸M�@ð)ÃáEÃÒ�È ¨@@e€œyÒò¤*¶˜ˆ È,ÀªÝ|���b( ²Çå‡EN PÿÁõŒíÿÑ����IEND®B`‚IMAGE 200 ./arch/ground/deep_sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��d��ÿ�ŠŠÿLšÌ-���wIDATxÚ½‘1À0Á÷ÿ?W•:$õJ½)@Œ©uXˆBI�b_á<<0{ :Fø·hÕмº®ç°êˆ@çë3ï¼Q†6_iXÇÀ¨#y°i’á†xÂêCZóìÿàeKÛ÷p{÷X?=o0SèúÀU×05[����IEND®B`‚IMAGE 203 ./arch/ground/deep_sea.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��d��ÿ�ŠŠÿLšÌ-���zIDATÁA 1�Àiûà.i¨…s� _Ä  E<ÁÍJá€pf°!�5! tX' ��-¡o€´0"=uôoW^Ô �á³eÝÙÛ,Ú¤î(VåF¨pšÐ ���Ð’+ÛQÔÛ¥º‚,œ€?ÏÐAéâu“����IEND®B`‚IMAGE 197 ./arch/ground/deep_sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��d��ÿ�ŠŠÿÿÿÿ¸ÿÈç���qIDATxÚ½’á €0„õ¾÷ç ˆºIkÔ÷CPávêâ b`ZS{ÈRt@UvB=Q¤÷žT+„yà¶åÍW{þñÅÕ5xÀ*º6RÕJõ_&ÖÐk »A%!~ÂÇFQ8½Èl¼6aø‡6øj¬[Ų����IEND®B`‚IMAGE 1269 ./arch/ground/smooth/deep_sea_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��dÿ�ŠŠ��ÿd i/–ûnµµµRÒC?���tRNS�@æØf��…IDATx^ÄXÁ‘Û0 4íW~L^Væ ˆÝAJH é ‡GIÆ-@c&ã·Z�‹[ ç2ˆ1Ç;Õø¸› ë5öôŸª³ú(œ©ÆOÀÝi#„ùˆ}œzß�]mFYïPn�L‹ùõóú¾º¾%6ú60 ILŒû$ÀV½i€¯ƒ³‚¡uõzßTÀ %x‹bŒœ…„Ìר׬Oq¯ßL:a½ÜŠpnô#Ìë¯@„íÚ·:ejq îEŒù„ûDÔ—K†pÇòŠaþŠÑ€»g€~N:5èÏ@ æ‡+@®>ž<!­Ìû jžC[ÅY ã�¤ÅdÛgx2 `óÞ”×|yã9Ðâ>‚@Øó‰V>~Îïö7õm`þ@¤æó (Ûk~]¦Ìc€ÀQ`˯±ò0q·¿©oo�ÌßùJQÒqÑ6@¯¿æ¢€ l0C‡Ø–Lžy`@Zp„ãB«N ¢oyã¹ ânÿ‹©ÔÚŸiÖg=߀¶£Î6Á/ÐxØA¾Ï;Šý¯ŒŸ˜Ïï*ïP²mÀ¯¼ý)Ã$6@œøæŽ²>%Nyf>ÚôM –x÷�¿åžƒ°OÍoGõíÀŸOËÇqÙÚ¸ {‡à`‚, ÈviLä¼Óé˰å#âY¢o@{ÀôŸ lÀ¸È„xÚ€î‹X�‰D+býþqÊ€]_®€u(LÐ¥ŽEìÇ2C)L:g�]\4±õW1KPð ìòe¼…©ñ,—Ä ’ºýÁ&Å_ÚË®Ï ²å…œ8“ÜÍ*Cüc€ŠaÆÆãÝ¥§‹¬ùñ €úú¯<ÖùŸAÿªª_òÈKèß¶ÕÖüðˆúm ÷„¸/é_`$„Îe_ÓöwX_˜4ß.™8ô@e…¾â àáó”LËØ�É„–OÂ@lÀ1Ó•‹mòwÀš¿™T 4e´¤×Ÿè|ƒQ%Dhù[lõíi|èŸ*·ùœÏ`.WÀš‡ŸFRy² àþl€èO{ ôÃùkİXRÿ@Sÿ0 Ðg€¹!` CÞªÑåA<âÊ©3à0k@è‘0\>½Â¦õŽ#r«Mé—J06xǃÅÏ|ç 8 (7¢L_ß^€;”‹m@1I¨T:¼ÄyÿòÑ ð¿]õ>Øãa7_€Ÿ3@¯8½ºþOûf Ѥ½€Cé^z‚zÿËu­ƒ©«y»!fÒŸ ßÊ× ï+ö=þvÚþ“ùu±e5€7n}qMùÓ Ð%ÄŒüÏ/o|‘÷ ù„[ÿŸÌ×ä‘=Ȁʋ—r\ÿæü»êP]£YŒB!„B!„B/纎qþêF¼ÃcCÐåä¯QZ×W'Ž|…ü ]£Ð$9�ê�k,"޽ùŸÅk” èÿ4€ü ]£�«¥ú„Á×+ù MfS4ðut561qOÛN·ÐÀöÝA ¼Ü����IEND®B`‚IMAGE 1300 ./arch/ground/smooth/deep_sea_S.112 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��dÿ�ŠŠ��ÿr wUö���tRNS�@æØf��°IDATx^ÔYm’â: Œ©w�)yÀž=Àfj�ÜÿP뀓^}$ ) jõ¯Ý’Zi°S†N× …[üLœÆâ¿™ ãúÏëKÁžne¬@`Õ`æIà þuú§ãúRp¸(|e„ÀªAjüEâ¸^ëÓO¬ôyC&wn>Ã<¥'‰ãz­wL?Í<j=}ª™ý¹Ò¨ 2�ï5 ®×zÇôÙàêãéö�]D¿¹˜$ŽëµÅú3§J¥®¾˜×7@`£0%FXôšÍ†Cû è+‹€öP²\,m¹•rå§(k‡PÉÂ�™ß0a$öô™}ð¬ä+öŽ ß!<zµH’Nm7äqÅ�Q_±Èo˜Îž>³ÑO#ôA'm@Ï0ÀÝM�y?Ì—YO  À*BkÙþþödb 3ß+ rû²õ‚JÜr‚Чeäb„T±ßŸ6õ}véß­õ¯¼,®8:\þ&½öÏ�8œæ|ìQøýiSÿâ)îçÏÁøõ¢å‡¶«½P9¿ñv@ÛKß'ÓÒŸ· øùýª3 \Alœ°þ zÃ�•³>ôw À€/2 0y\VO˜›òüÌ’n¼íOÏpB¶ý•ù þˆÞG¼H#D~Ø#žÏ*¼á=²g�´¿/ò×ú?k�ú¿Á€‘¹xž<`ί¢è`úŸŸ3  ­Ç<læ#éˆøæ¡øÒà úèézQŸ¸‡Va¾ó¨œðZÞÐ?» õ¯|€’êŸ&^Ð;ß”¶åWç;~ÔË‹ÂÄ_ _±ß OÞó/ýos)w/ MOv†À€a}ºÓÀz`ñq÷O +öôqãõõÉyþ~é_ëÛ*-ý+G=Y<=#Ðþ^C›‡ã7œwÔò[ÿY#=nï‹vÆE Á èŽÀ» (yMÆ^hZ>x1àŽ;£Ÿ \¨mļ½ N_ÈíašÚìíÖ”$¿xC0ù5€…Ý’^ƒY µ—Ç@à}²ZÊ„â/#wOmÁæ#QñP‹~‚‡’5�¤öKl#æã*ý=vÔ�Õ5ù5€Àª�0(ñÇ 8I†¢ 8É};”÷ck€}[žÖw@F½¹ý?>x2ùÓ<_\ù÷cÇ€ïÌ€.¿a@ù»ž+¥ÇBËŸâ–ùØÐ_™�c^=!xsqI3¯óoį| ØS8à?±ÑÿïÿP}Ö㊺õƒÑ ¨G¾à+8¢OÀ‡ê£ÿ K‚Gƒ¸ù‚s}çÔÿi׌Qˆa ¸ ¸¿ñ ’<!?Èÿ?•2ÈÂ&CÓ ËªPa0(÷²ŽËé¤ú }ûqßÎûŠßÀŽË­“êÛÐ×û:ï H|†áj}… ”ásãj}=Š`ȹZ_]!ÖïSÿøë~ž¢(Š¢(Š¢(Š¢0¼Cœ‹C9ŽØMƒ9ƒk+¡·9Gž%o@4¿wŸk+@Îçkƒ%²®y›òy+Þ†yœåÚÉ HùæÜ€¬k'¬Cw7/é»àÎl ý{Oà;ywó’®�d}¼7Xq²¾û $çó#°â�‘Ûœó= \ÈóB�è����IEND®B`‚IMAGE 1620 ./arch/ground/smooth/deep_sea_S.113 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��d�ŠŠÿ��ÿeh���œœœ œé���tRNS�@æØf��äIDATx^Üš]nÛ@ „Í$@_IÉiû>€ É {ãÊ«]ÍòÇY Jk´|ÊàãpÂ+ÉI¶d®N¬^jœ…ÕpÖºåߘÿó3?íËG ˆÖÅ7­ΚC·üûóQßöå#pb£¯ ~è¶ßæ1ôÿÞ| ±žÑj8+ÎJ·ý.¡o÷ÓÎ|²_ÀiX ƒÕpV'rhù[ Øà7ù²5J7*êd, Yñd[¾ÉcÏI�§ óÛ»�c½ÿ´b¢Lbõ¥ú©Ø¡ã ˜tÀM~ŸÇÛóÁ±�høa‰0ŽV«Cc5œT¸Z@ìgR~ŸÇÛóÁéÐàˆ­ïŸÐñj¿ïÇ!%øÃ¼Íùd>ã#$&ËÍ÷€>¥M£LbueÍA?.‰àò”æ´Þ3!ŸÝy%ÌO°äáDBÃâ0Ì«eÄ#DkÕK™«å…þÔ ”Ç«Î?%WÉç5aj>ô£ÎOÀøšÃÍKþ1ÝÄ¡áÙÕª_dÿ´è(_ôhÏÏæ/Þ¬›×gKäd@ë›3/<kïMuÒ7ô'ºÎXt¯NnÀC†ù™wn>eÞX�²µ3ukñ}½"³NfTožÓ½Ë÷ž{€ù¥AÜ|Ê\]o3�©˜ë{` X ÍQêÖø 𔫠oçÂóÏ®ÞÊ ëo)¯ojI‡ù¥ÿÖšŸ×îæg÷ï+ xñî'‘®ð!úèàÙ˵®ýÓ¬1Ÿ’V~ÌÏý|¹¿I©ùÜú˜5œ”9"ÁÕü?‹çŠOãõzáÁGLJ%¡à*?/ Ør}¹óG 8 oÁ¦z.ýÃyǵ_f­Î_â8àn~j¿ÆÕúI÷/þ—?# å×î¹ã:žNõY¯¾ IÂQO§<_Ö~ÅO™¯Û_4“ö8&"¿ñ4Üw`Ë]ÂèíV¶ÀvZteOºÔÚ,p.ßù?ç:ïK}ý°ÂwtÓ}?ýFÃM†þÀë§xà g¬XAÅW»ÁKAG|‡FZüÄgȈk›ÿ…@°�Ppè$¡3Pšá߯Û/Bo,�Ü,ÀË_¬ý à/_€ü ~,ç,zÓ’Ä᧬qNï¡ý»Œˆý…€ç‘é{éj~ÑàïàlûG‘îý.Ú-àCäcdèKD&‘ãp¬ütÑ17Z.už¡C.!I.òüüü=ält÷Ñí»|›Ço:d;ÿ¡›`'Ðáßÿ:öó;_þ„¿ý è&ýKúv?ÿaƒyàtÝÏ[ýñÿ„ œ’Øà§Õûå³tÌ߯ý°ËïöÍ>¥¡ âÛdª°àª=‚'òþ_¢PóvÌ›%²ˆÂæ¿ãÌ aåÑnªßóù7O@<WüøòN�Øo{þ½îEÿ: "Îpþ‰ß7¬ÈÊØ/ç¯ú×|q§ ´?òñVø6d—ºÿ<ÀU«Ô¿þÞÛD¿åâûÇó‡ö\àJ ý½n™ý‡¿þ|C׿Éý€¼n÷ÿÁßýmà¿tÉóåŽþòçS>%ô~ÀÂÏ‘¢‡Ž‹~–å¾¢êÏçx¤�:Áe�¤ýÀñ&÷¸ìʪû ýíL<ÐÁú£¶ƒØ’ý�9Ê·bÿ&üÿ¢¼ýÕZµjÕªU«V=ùèd`†kvÚ/ ™ùÈz›[vªq;0üý‚ú{œ¼c#nwpêgnú³1c<�À;vÖÅî+ h!O*Äh €>Ɐ|a´ÉÜ [?fÀ�ŒYßÄÓ¾Bp®Ç2°·nvã Ù�Š8n äô!£#˜ô_€æÄãz�¬£6�Ì€ñ};±eÌ]ð‘P:ó-Ï#BGô3§ø¾Ýˆ‘1ï#|ð[¦£åü•GùJoóêÀ÷íć”yá“[A·ÈKóÓý„Éï�`ŸÁ:íˆ7ëž2ï[ªO~�U®"#ŠÙ÷õw¡êõ}z¯����IEND®B`‚IMAGE 1460 ./arch/ground/smooth/deep_sea_S.114 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��dÿ�ŠŠ��ÿÃÃÓe%“þœœœÛç&ó���tRNS�@æØf��DIDATx^Ä™Qnã0 D#c÷ŸTŠîoì^ ZøÅÞÿNÛȲ‡"i) Dãç!íQ$ÁíEfæZċ€–ÞkÝ÷cÀþšþ6€ÎÞ ®qwøŒö/€ð8ñd�q9´ôNxè®ß0Ø*œ”îùûDVÎÎ/ ÝõÛþ4Ö3®4M=¿nHJ_™×bHZKïÁ@êùÝ 럵 eÙò÷ÈcIØ7*­¼³š‚¹çêñü¡pø7üwlúë†Ã›Ðó»àƒ0ªe}—p÷�‡§–Àx�¡akÀþÎv•ÚÖió'ÿj0§zš“8C7Mf 2‘HáÕ$xý™LÉ‹ʉúòŠó|[Y¯FZ¾ê‹ÓŽÊšÉ<Bæ2€K€ãÅæ�.û“ä6~–\×/žÎ1hTöýÁà5ðp¾H_©T3�p�0<­�Pú-/ƒe绾)ïÌQµˆ,ýŠgÝ�ýé�Žúàº~à¨�·kL?298|l +×þ•³»U<k¯?«d5÷@@}µRZ|«¿¤Ëyvç!` âJs&½5Šú·vØúv‡Ì¥« Z¾óUh¨¿šøÅûKÀÖ÷`~ �~ €ÕDi*\¢_ŸžÀ~v˜þ¸)ªHâh� Ä$w>L+C¿~?�Û�WÛá ÀŸ„Ô ©�Òy�ÔêoêƒÛúéá�h(€¸Ì5œ¾µX¡…£ç2ŸŸ €QéÙú…Ÿ�ÓUð–Ï`šï\†%YáU˜~}�C!hQÿzCÓêm oo‚‘ù-!�ŸŸ×tç;¸k‘ÅÎá�Wõ1ÿ¬Á¯43ꃮëï\XÁûK Ïs¾‡o]o˜[Åí1›ü6XD\[P?»ªþÁI.ŠŸ xý—yÇ•¡PÚßI¬·ÏQbÚ9îÇpösðêÆ€l€ êR¸‹ã;ƒäë4à#‰`_?g ²ÙTñf�W•¼åÍ�ÀÑ�8óÚ@¬¼…›ëg]Æ]Ë;à¸ßÑ”·LÍ[ŸÃo‹ Àr(�ü@q6]ž4Sh:ƒÃûúv †Sé?¸Z ~$¬8ôSÃ1Œ’þX�ôX�6aБ�ˆ~ | µð”ö� % Thæë¿ ^ Ç>‡ Ð[-tÀÆIè2–|¿@Û�þê?uYî`|n ÿo~ÿ£Â‹Å½aqáWho†“ÿl0–~ï‡ðã~.ãú»f”Ó0Q»üðé¡ Û„rn áǪ'µ•í$Øù{ŠÆ»™Zª»lñjþþÇü\ šÿ÷ù?¿ø–¨Ì Ó€k@í?õùñ¨ß¿;À±¯ìѰÜoýþ:€%°”`¿9oúQøa¹_*ÿ9ñ $  …°í @â^>¶ü(üpæó³ãïß~Kü’ØišW,9±´žÍAêNýå ˆ˜3Ê�xjÒ�ßOÁçkÒÃ<x©ïÏ’¿W . MDÚByþžö8555555555555ùâ`µ‘)UÅ¿SÊ<.WœÛMqÊžò®Áùâ�ঞ›Ú„ ¤ �qß`çç| Ìû>~öúþürÜgÜ{át\KÆï\’kÜ«§ÛL9²°ƒõN�<±{ æeê‘ óöбr�3[Ü7lÎŽ¾¿0L¼³®<4€æ-àõù9Ýgˆxý]ËÇ}„•%pýÜÏ[¹™×÷zÌúÅ£À^ŽãµnöÑߣúÝð ÿ‰r®ú¥…����IEND®B`‚IMAGE 296 ./arch/ground/deep_swamp.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE-ŠV�ŠŠ�Ì�ïå‹�íí¿¿¿Œâ9���ÎIDATÁ±qAÀÑöׂ2@¶ {Y¨Î?ºó¾—ËÚ éS�–<Æ–Gjî9w<{'Gƒw½âîÒ�:€¤à(k  ¡§en˜@9˜Ò 1ÁÛ™Ê;‹§CRŸ×~Þ¹‚?©æV€mÝx1Ž¢äý.ÓÈó56ú÷‘ Rù|˜Hƒ².îì €  )S1·C:LWv4ÎoÛÓÎäÓ™óʼnÑ� <&Â÷\;‹ó«âߣ¦bÎ×Ü<¦gʤHX�ðÕ›—náäS����IEND®B`‚IMAGE 291 ./arch/ground/deep_swamp.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE-ŠV�ŠŠÿÿÿ�Ì�ïå‹�íí¿¿¿a‰Y���ÆIDATÁ1ªA�Àæ%}e“9鉩|0oçƒu}«ò¾Ç/‡œ¼p] Ï÷#ì,n-ȹgç㉧Áqï=îɹ$… v À÷ëS¸¸9ágÀÊý æÄÂí*ÓÉ{Z3î—IÕºÒÕ ~<’� C¼èŒ^äý]ú4€<¿F³ëº ý—•HÔ=Ðsï �@�’ò·b§#û\1Ö¶v‹ÛÜ,HN3�ˆI¹;eÚŠ5î*;±Ü?)K‘��üÈï°•gXŒ����IEND®B`‚IMAGE 210 ./arch/monster/undead/demilich.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ¥�ÿÿ�ÿ�����… ,^���tRNS�@æØf���qIDATxÚÝA À ›5ÿs3!ÐË*½¶sPq†€^ÿ#‹`9k8{p^Ë\>ÞSŒwÖ| Õ^»�ʃ røg*›ˆ0A¨lgþ«ÕÎ0A# ï¡S~�]>ð~Ì'Xp{ã?Ç wæùc™ÒÏ����IEND®B`‚IMAGE 211 ./arch/monster/undead/demilich.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿ�ÿ¥����½á*²���tRNS�@æØf���rIDATxÚÝÁ€ CGçÿ³Ô±pi‰WíÁÞKÙˆÿåšI~Θ9pk4y%¤0ºÝÎÉãÍeCàF.>ŒÀ»†®î«ôšØc„ÜàÐoMþ0'Äà… �r% nÑ ˆ'Or]Áô#ø)š{#>—œß É¢ó����IEND®B`‚IMAGE 212 ./arch/monster/undead/demilich.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ¥�ÿÿ�ÿ�����… ,^���tRNS�@æØf���sIDATxÚÝ’Á �!óéÿóª/؃&]wçÑ FÐúæH,“&“''w6E¾¾ vAßNP nj@A¯§ P÷¸˜`AÿLX""M Àmf«>ƒ†à�ô5�oဤ† }Ř3}9ú¹XŸãzqúyÓÓá����IEND®B`‚IMAGE 7934 ./arch/monster/demon/Demon_Lord/demon_lord.x11 ‰PNG  ��� IHDR���€������L'Ž•��ñPLTE   (%- $%0%"'--!87C:1!0!#;6! 4#!1%B A $4%';$?# A$!:&*@%&/*)H$G$#N#@'M# C&#V!#G&)<*#cY" J'&0.1P&#qB++J*;.%V&%N)I-T)&O+%^'$;3(a)'q%&X-)^,&G3'c+(†!%e,$…' V36N9-š#)|-#w/'I<8O=%®#"_92…/(h7:‡0*mB-˜9:mH0Ú)3®78ŽC:¦=1qNF¶B.rV:Ç=:¦I/ç60¨GFÇB#µH/ô90¥PCí=:ï>5ÛE.Š^6½O6óB2ÈMEçG3ÎO1öD-ÜM0ðG1ÞO2íM2ðO-ßV.úP2îU.÷U2´gfñ^2ù^6óf/üf+³zAõn+ÆzG§¦§02f2'Ç*0Î(3*$´3.z2*‚,&·61ƒH'€+*1(¦/2´+2øÙuüátÙ2.Æ31á¦UÏ;1{&&ÿ9/µ_-ˆW1¶,.†P,è-.Ü50µp5˜+0Ãp4‘)‡A%ÆF|9(è˜:g8*& ôÍe{=*‘7%g.&Û*.¶=2YA1è@2ìÇf"§f7yWSö00h"!Ø{:®-$ÆI1_"#Ã$!¨7/¬3ù42­,)ÿUCó¥,*&ó868$(å>0:$#Ù<0PFe32g=(üŽQÍA2Þ™SØW2J&!î32*!!Y€22\>*(ØC23ê_0·" O ð)1í˜qqO0N.'^1)P2/h))"<+(ŽWUÕ.1<'Lä„.˜!"H8+ø>9ÞG/2W,)É53£A1= A/(ÙfE™O'ɯ]S���tRNS�@æØf��»IDATx^ìÐ3—¬Q…áóãë³Õ¶m÷ضqm[ÑíÉ:ž &©'Økíôe÷G!„B!„B!RÑc ·Â0z½é«îK† ÞºùÊôO=ý…Ü<p˜‡©{xçá&¸ìºN[šénàß§# 9Á³ªÛ5�`n&ô~Êc¸`Çq÷;vZLˆâyDþ° ´ €­qÉÉÔŒeŸÏ ñz&r|×EÃê�K�Ѽ(åAhZj;þwWb ÂX `  RÕj$Sý²ñ%ª—=ÆŠa´àu¨6ˆæKq%<0è™úFà«Ä@8½|±—ëãåíÖu{¡?ý.®Ì{ Ì¿²™/”kÚOy6Èi Uü+I´½1[˜ñù…Ť¶0ûo-,¦GëCÀ+p•}r"d ά×yþodΰ?¿aX‡,Ñ^Jøg‚¦¢4xN¶ì„� ÍJ¯5-+Ëù;²RPÍÍä{u$14ÿy÷Úà8ŽóLßÅTÀ3OL1žÉbp¹Y%gŒæNQ àîõõŒNFB'e_bEÉzËa�ÍXGDƒÐRœºº™Y`¦·zf«HÔΔPSp-kQ˜æšÅ:»Ýî¡j E—Št 8ª «ÜóºJ÷‚È¿{W‘b›\DX(º ü¨)¼O?ý~<ïÛ³¿ 02ÃMÊ?Ë6'þ?xÀT{¡±tS‡•ú»CÆs¥U¡üÙÿÐŒù÷øô¼öÌä¬e}ÂRC™Š²ò‡/6†ý‹©MõK·ø€eѧžZ8óqzÿ‘d˜ûêµOXš:�!"Ø}‡ùqÊcn züñ*¨+'>ÞpìQ4=K@ã! xË/xùf³bš\SWÇ{?îP°¬?Ò•þÄŠ¦-½\ "æ9^a'[*l©hÇ×­¶ZýØ!XGŽ+DåÏD�†ˆí’/¤¶rÄêrûG°õHB§aô5„sLBd}ꀮ`©’ð€ù>~KI$ãÇbÿ€åÃÂ0P)Zeæ¯ü·¿+ÏÿʯhaÓ½2 ¬p�¨š4%ù×ÿìŸÿ †<ô©_în3ï=ý‹Òš=ÖŠš  Ùôȧ?ýïþ€ÔÿàWïÌ?ÑÍ^¬þöÏ>°ø�LÝS)ÓN>Ù_øÝ/|áórí³Ÿýwçx>·¼Þ–×ë‰;Ê�l­4:Q~g×7‰ç R;½à(€¯ü‚-¥MòTÆÀÉ]EQMòå]ù…ßü¬0…!Rü[ëÃøÀÚÔqLYWþOà �¬'ýýÊ %ƒ»Ÿù´šü­_ÿ÷¿±û·ú‡*¢ÿ~åƒ>ÞJ¬£'« Cî�:jj Ñ²_ièîœø¿ö™_þ…_8Ö÷o~õ´Òû¡È¯œ~Ÿ‚-µ×²þg*׺O`—Q”ed@Qt­ZûOŸÿÌÀ¯ÿfò?ø^îþñß;uZÖ�žé;Ýæy­ÏèïGN*ŠÉUá1OøL»k]ú°ZÔó9Œ>\ŸS®[V¤ª ôv¹û­ã¦žPD€¨  ªd¨¿ÑHšDáUzkþC(üÞü{@”_Ô´„–¤Çº"`~êÍM\Vm'OªºÖP¢©»š¦hÀAüÒ?îÓ‡¨ÚŽÿ©‰A¤3Mã´« rý¨–@Î5SAûí…[WƒJ£a¤—aèésÿ„že®N}âÒÝeôŸ(¡B¨vAÀ”zB—R׃º¬¶O _ý� :d£_!Õ¨(\º´'†ù{ mëJï㺦¦ƒÜêÂ~Ï@BÒPª@u•,£iÜyƒ,·Ï¢h°Ñ‡¡„µ¯|åÝ=Kܺª_V©)2©ÉDâʾõøŠ4�]SÑye]AÓÔ†¡6ED!Êঢ™ˆ¤ž4ˆ¶G¡·zµvUµe ¨T×´¿Äwøè²¦„šJRWxêDB6 ƒlEUñŸ1Ò Ršš&µ¤¬ýéïÏwF°®R©+èJ”‡}ßٗ럪®SCàøû“ 2¨m !†±«Qæ1á—Ÿö˜lSCt’98I<�’áÕWí«¼»Œ¦‚t©‡QùŽð„¸þa’†a:¶Ÿw³q¹V*û6ÃÇ€BÎîˆà0Åø×F“[·ŸÌs\U)å*ú>è�œHæÖjO—}¯æ»-»&UÃ÷]VóË¥W ~¹ü´ ƒa.âœ÷vt'Ї(d2¹ýTÃGzÂT5 DÓ�Sw’‚. ð˜ïy¶Ÿ-Ǿ?døeÛö|;Ÿ/•JOÛO»Õ(39_~¢“hš¦S=3Ùû‡ûðþ> dBjDË:pü’·|»æÇ±çǯ¦W³Û¥’¨Ç©¦WH—|»ìåK«¥²æ&Ÿ™ŒªG;ðŠŽÑ“¬FÁ+oî§Å]k Eïç­RÁì|©l¯–·G·ÓçòùØ^¹T.Çåf>.gGKcùTÙŸ~m:¶ôë‹ µC�Ö~ÂÿhtLÏPªs�Î)óòÙ|³´}mb|ñâÆÎøµf¬?N§ñÿ.¼UÊ.ŽNŒ•lß»Œ§@~ЧrTQCHèûª‚oH<yª‡¹Œ)%BÁÁó³¥ÒêöÅ‹Ïo|륉tÚÛ4œrú¿Œæ[«ùí‹çn/ºÌµsNßo Á¥Ô …íK‰m…¦J8Ͻ%uÊy³ã|~ô­—.¼4±±qñ¥ÛçÆšuc¡ðüX)UÚþæÅ ·oßN•|溙¿{?§„R5!ÕSûÓA½šJ) ƒPçÒ¤Ô¤áRÀýRúÕÑçÑøøÆèÆÄ…±Åt±žjî¼:šß^ÝÞ˜X_LßN•<a»•éI·ñ³p8§@ÛŸýKG±º˜<ªrR:€ñ™«¥séщ‰o¡µ—6¾µ‘_¨/¤R鿸xñÂÆÄØí‰ñÛßÍ"U¶›Ëõþ4ÕW´§¢tUýù}ÊŸe¬ÿ4¤K0$¨†¹pŽñ ’?·8¾ýÂó/Lü·ññ±…86Œ¸9¶¸ñÍ—ðTÒ26šg0—e®ÂOj‚uBãgxôÎ>UÀÃ*Ñ!À/©ê â“Ì® ŽŽ§G7¶·/ž}a,½à ;qjtñÜÚÿÖ(Jª”g‚ù‚Eœÿ½»M½{å:&� ížr`½€u<¡!¸(&b\ºFAljKéÅ‹©Û‹c‰$öŒag¬¹3¶ƒGòÒóÇÓ;;)ÏöL)lAùµ)°æQÆèœRNU“ïo¨<…ë�ÜIôIJª+Ú $…¥ Ö±±Å8UJ¥Ò£ E2h8ÍÑt =ã…çGS‹ÍTÞg›¤o3àÇ/}bþbè€ü› -ÜßTÀB[R£ü¸õA­¿¿Í‚®q“͵gc©fÓ‹T¹é×ëÆPÑ[ØùöØ7Òc£‹éØ“B c<ܺtœè晤f8Eû|ÍÐ1$ 8€rH¢èEá§IÐ P6«ÄŽQNìx…ºx²îvRÍbÜL-xq³ �äš4Ïc@£’“�`pjtÍÕq…*  P–——hè–º Y’;F\÷Ç©†QÇ¿-”Ò¥ÔN³Yh:±fR”›vmß¿µ)è¨R¤ç¹€ÆÃ©ý̓£ð ‡jD4hkPå¤BtMê" 4ÁgÈAúçÉz½Þ_\Üù“ÔŽÃxr�kCl” ÌfRêR“&ˆZÖ–¦‘4÷—…N…”Un07ÐÐ’¨½QÐ"�BZ®ãzr¨¸9\ðÆÆKã^Š1+вÆ<v:`²Dv™ëº5!4÷ç}A5 ÀÔªœî®(€Ý@CI .][[Ó¶$pŠ©bá'É“õf‚ÅØ« =ŠšPÊìV˶�gÒÌ^ý¡S—ïÙgs!«¡Òº%XU.[G5(Ø’¢)„yhß«§šÅ¢±;üÎðiÇ‹‹©ñík1‹¸ŽÎ¢­IX²+óê¤VC"°Ž×3Hï>Óàzf†V}æÌ—)Ö¡£:m=¡A4YKͲWŽÓ͸^,zÈBq¡¹ݾPÊ «íQºÊ)Œ!X DÍv}_0©cuØ×::cÌöovŽÀÆ2ª²²Œì®hC•²á_hŽ.:Å&²€åè6† _rgƒ%*Õ„Ž x•p5@ÛŒyY ÂïÁ~¯e ä6ž »ê‘Óƒ¥é˜À¥¦ Ï7Œb±è {;éz—&ÊEÇp<†Q°eaâÄB§š”Uô¾V3 Ä‘}Ú·><@]Ózöl°6Ú ù˜®*í¥jºÄH•Ð Œwš;£Nqgg±Y6@0ê+x¥q”ÐUHg3öôô4xÜ &}j¿#¡©õ󚛽¼ú\Þ 0ãzä®jm mØñÐ|§hàíe\À„ä};fCk0*Ýj·ò=¸NA‡%ž›Éä€Ê�îí{"d%yuÎÆÎãìk™€¿¯kÝÑ¥ÒÆ@té•Ç|²n N}Ø)x†aJJa¿‡Ö:rôq ¨¦Â‘‘¥É€·”­ýOiÈCwº5ýõ›™\ôî* A•"¥¨øŒ chxssaÁ)Ö‹žã 0d’jô}+ÖϯE³,Z 8¾ÔÅB/‡3HA0Ûšv3á‘c½qOèR�c +ƒ¤a¤RãM¯9–ŽÓ5"ñáŸ4ãtåçã|ª« % ’”’ 3½t#ø©gëM‰^Ð¥"ÃDiìnw&Ò?pR©±¦·ÙÐòuëg:û>~&7“¡…p«§GÜäsÁL†±:w½þˆ®IW’44U]Q뎃ì/ÄßNyÐn×Õ“?kà͇֣Ijt{ó0 *éŸ;Ãéë÷ 9P×KU]SÛC¢Æðf½½¼ àÁn蓽kÉnÇ¡Öã„ B…X¼îÞ?fѵMÇ|´Üž µÍ×\R¢öÛƒ®»Ç¡!œÑUó «o>€Þ:…âLYQ'É£ƒCŽ3ŒQ€²ÄÙ±éëvGtU&AïP¼~¼ŸUCbSî8¾ç9#Ñ >:€ß³Ï,A¨ã6¥y¢§SñêM,cmF™Ô$,_-âT¶ å¦pŒžlߺð(䜚èÔƒY=Šº¢`6Ô5Ãó˱7T@} ¤&%ƒõþ|}2ZÊMRL·í×;g Ò®kê£ …q¹`á‚aHB¤aø¨ï’<NÎ’ԙ輛à UEÛ'¶ƒ$ð¼Ý16ú¦# PàW>S§r¹É«K<ð˜`¢sõÜUÕ¤A AHchHb:ÞÄ0Dî„ñ^|YôÆÒäädÆg¶o³_ìL’.š@ûD#ÆiÜ|³ˆ%¹`Ã�–¬}ãÝÀA=ªÎ½|õª¸(ˆjx=¡ɘ‰$ÁÇØ™ý�¥¡áÀë#¸Á¾N¾ýöe柵E`÷vŒD3cž¹;D†Œv5ÆåJ½~ë–à!ýãùƒ#8:23™Ë ±=Vçk+9@<‡Ù =‡Ô‡qÿ©ÔÎÎB[¤wï–„püà|Šçæ233nÅ­øË©´4$x>ª M, qºPL7‹Þ—ê›»ž—å~µÿÀ�…ÁRær`Û.cwžŸª*Ñ$+å"nÙ+8?Àí/`[ŒmFB*¶mÆOøÍ®>™Ë-EßeU¥óݹ®)kíùh ¡WðÒiœJ믾ûÎéºó4êXÂA#a7ŒF&s#¹(€jG˜Ô ž×têE¿Ç~*åç³^›‚¢MbóÕ›6«BïõÁã3™IüŽF‚•Ž›8¬«ƒ+ʰô0øÑùä .çc;ÆÁå´{´¬]³_üÎÁ�|éÔ_ÊÍquVñWLÄ‘$Æ–Ûcìˆ+­é ó=ì×úB{x”Å,ÂV Öc<7#tÀêœ(4uYBêCCŽç‰rv5°[7|câÖ“^'W¥¬Í‚àÖéƒ;œgB�xlLµ¬J\F{mŠº;ËÜŠ-p^W߬/`J;ÿV>`ì@ÙÀ:µF#éÎZ'ÌÀ#›Þ°pDÙó+À#uã4Aš8§|uûÂ_æóAöÿ~ç@ TsÔä{½™Ô§&’Â+bÐ;†×¶í TeP'Ä úàÎØ çÎÿõ_œw}›€‚cÉÎõ=•tO‚hà¡ïŽÄŽLJéÒ#CPCs<§™ŠÏ-¾ðÂ_ÿÍ7ó6Ë잀cNrzx¯kÄÞÙ5—•Ú­q!®ƒRâ0‰¬ ዸ¾0ž½pþoΟÏûl¹k•l½.Mެ?¼×%Æ#D1¥øåšpüÂB¹.Á�fH!c‹½B*=þü…¿úËó«-¨Þšï–^‘ð‡÷:ÓË„‘ÍæS˜‚b±ãIi‚‚ 8óí<‹…‡™Ýð›Ûoa0Âz· $G‚«›Úˈ>d¸AÅmVê^ªPÁà‚CRP“<¨´ÎfÍ“bytû­ó·óv©]Ö„y¬EÏêÖ^G@ŸeW ÍBì¤ÓyOkk}¼IDàûS”ã8Ζ¶óç/Œúv¤ÝéR•çFž™Ì¥{1 iÌg¬õVº‰fðfB80`YÈÜÏ-kÉ9Ʋy¬œãüâ ç¶Kµ(ì.¦¾ÇsWs?qiÙ‘Ilßwgm¿àaÌ·À}ï9Ìõ' Y­ÚyÏ~Ù/åGÏmo»Ù騻tøF˜ã“QffòtGïµ�$sÙV3Aì”Fí˜ùõ÷ß:t ¤ƒyCÁ/m—ò×VóYÈÑ+Ýp†ç¢é¥L&S­uÞð1õ|?öš±5àÎOêÓ) „4XÝËžÝ9÷Öl‹1ÚM:ìã#ؘ¹Pe™™l‡Ã³(Vi¹«<€R³†@j?LNýD-ʤœL0VÙÎ^kUf]?ÇSó]ˆò\0“› Ä!Ê«A?ø1Ïvg/·²ÙŠïfc´býž»~—¬I s^¶lgWóo]ËW²W#ÑÅ€¢7ƒ]Ñ?uÄêƒÜŸNu¸Í­ŠÊììì×mfWZ~–y¾ó»?yÎÚÒu•á°zmµâ^sÝ »Ð§?ÎMÞn˜­c|[¯Pa·fg¿æÙ5æ3<ë?½Áëó„!£õgo®¶.#€Ë3ìh ä–8Ì„ÿªæ}âÁRù¸`lúfkÕvì²ð+.ƒÔ'†¨CªÏ¹­ÕÙgóÙ›ÙÖå\îËû°5r³Ê{Û{IV|S=Õ ®?}örÖó˜Í¼š/jð33tƒebèÜn­¾zóë~¶âÚ™êòþÃàÈ€P–£Sí±(ï0 :”tçZùUƘÃü÷:èû'"Ö'T0ž™~ùfkÖe~À¿ú•ý—ƒK…œFlC¾þûêƒÈ߀sgW³ÝÏ÷¥Ïì_ÿìî��̽üµ?ÿóÕ–í»nÔhÀå<÷Õù÷”Á‹SH2¯²ê¶*žÍ²žðøÛ‡®¯ycúì³Ï=×r¹Dbª �ŸbHÿßmÌ–ó òKè!¶[ÎÛ³[6còè‰ùr@öÚË7ŸûÚ¬gW\ÚUƒÐÃ3"Ì¥Û˜­¿{¹5 Vñc4ïÎúL(Ê‹*êqÎÝxùµçþj£5°ýn$Aÿ=*L*Þs‚¥‘?Ú Ü·]u§çr ÿRç9žŽÉüê÷Ÿ=ëæb³«zxªœMÊ6èlëÍnÛ>6-ûæ3UµÑQYßUnL÷}7“‰ xzª«‚|¨ñ0ÜôÔ:Yݯ’¯Ìž½QÕOvzp¾GÑäÜôÛßýîR®}gß(Z?v™òôçöŒ[¡TPpø«×¾öýŒÜœêôú‹Tª/½ýöÛK“ÓAUt) GT¥Fg æï†àÛqºœmÝ<ûýL¨= wæ{ûNQ¢ñ 3y#±êÝ ã““ç;3p˜ï—S¨Êž{v:ÃáþóµN…ÁL$¡AÍäÒÒÕÜLp&êzdÖ¿þØ¡º×»ÁV^ÁÏæ¯½v5 ‰û¸~Š£›ôŒ™[»*ç3ïþýñ{(tw÷b€sÛÍç§+Ó—#€ûÎ÷P•G@AÀÌäÕ™*ðpÉ®`Z´¼²»[‰¤˜vÊÍÎN_ž†ªzæf@êTò`.üâ+‡·,ë𛽗þ ?kI©šäI»Ôjá…p&âôî}'”á\“ràÔõÃÖ?ýGŸ¦ú *MÐk¥Ë—37r•@?zŸÆ3!ðh mËê AW@Ì•gÝ™¥ ÇïÝÏnÏgÕê©íCgG’4=dXª3<¹õ�ÇóŸá™ªvécpqMe#7’ëÖÿk×ìYÛÖâ0î%m.m\H<Ô`Z:Üd‘®–PÇl!ÛêÂu¡4 4¤ ùY.EF’ÉÍ¿:‡žAU ¦\aPì®Óš¥&ÄÁPšã¤æBõ&c/“£E/ç7Ÿé÷<zy„.[¯¶YµH•ï ’˜#å-§Ò¿4fõ‘ã"Aee@Áºô{'ów…¼W/?1¥iL¬Œ)mG’29€«z^ÓË:‰2+Áo¾éø™ûq¥d5¡kè?fêw‰ã‹¾H Ù³«[ÿœ0+Á@Á8­ìSï­®«ÉV ò@üt’±×\”gV‚1QGÞÑ&¿W­n¯-³j/`Gñ/Æi1½²»í+êÔ[ð¡G;r^mÙˆ0bOA™¤¶üF¹kC‚•‚±¼n)‡÷¨–²ÃÖÒB‘¤€LÈÓŸ·qǶ!Ê*‚>B° Ó‹²®Ùz–Q›ŒHŽî×K »ÖyŒ•Ð1ž¥ŸTìêö « ˆk*Ë"«µ¬hŸ[¢† 4®,Û}-3z-StÔŽ}s&n×ʳ¹O2ú RîZ«3¾æâx€Pœá6É0iÁ ŽÚÏ ºéŒéØÃ§ S¢£+°I7•²Žf[â9 èùUºI’É´A³ë àˆÑo—Xò}î„? ®‰øÈ=ú¡2‘ò¦éX•µ³°k`ôEEÓEz ¼ûBš�ùBH®W÷B6ðQ„#„?ôû@í(þi2•Ú}ž ×À¼ð+‚ÀßÅ<A”ä¢\xÑ9ƒÛIhmøõSí§sòÆ®\l®4B5ð¯(=l!ð7³úVl¼,Îþ”ë!¯ÃiÐÛj îzÍ'EÙ3Â}1ðHQ²óÁ þwpq¢†> €(ì‘Ñ`\Ç‚„I¤`‹*\ç’iÊ<dLÝ/ôŠ…ã³Ú¨ œ––7äݯGU‚§¥ï½æËFlDæR‹;+¥75Ȉˆoìô ¹)¬ªjŒG&¼Ù0p8‡Ãáp8‡Ãáp8ÎOÝ™z™[w����IEND®B`‚IMAGE 7934 ./arch/monster/demon/Demon_Lord/demon_lord.x12 ‰PNG  ��� IHDR���€������L'Ž•��ñPLTE   (%- $%0%"'--!87C:1!0!#;6! 4#!1%B A $4%';$?# A$!:&*@%&/*)H$G$#N#@'M# C&#V!#G&)<*#cY" J'&0.1P&#qB++J*;.%V&%N)I-T)&O+%^'$;3(a)'q%&X-)^,&G3'c+(†!%e,$…' V36N9-š#)|-#w/'I<8O=%®#"_92…/(h7:‡0*mB-˜9:mH0Ú)3®78ŽC:¦=1qNF¶B.rV:Ç=:¦I/ç60¨GFÇB#µH/ô90¥PCí=:ï>5ÛE.Š^6½O6óB2ÈMEçG3ÎO1öD-ÜM0ðG1ÞO2íM2ðO-ßV.úP2îU.÷U2´gfñ^2ù^6óf/üf+³zAõn+ÆzG§¦§02f2'Ç*0Î(3*$´3.z2*‚,&·61ƒH'€+*1(¦/2´+2øÙuüátÙ2.Æ31á¦UÏ;1{&&ÿ9/µ_-ˆW1¶,.†P,è-.Ü50µp5˜+0Ãp4‘)‡A%ÆF|9(è˜:g8*& ôÍe{=*‘7%g.&Û*.¶=2YA1è@2ìÇf"§f7yWSö00h"!Ø{:®-$ÆI1_"#Ã$!¨7/¬3ù42­,)ÿUCó¥,*&ó868$(å>0:$#Ù<0PFe32g=(üŽQÍA2Þ™SØW2J&!î32*!!Y€22\>*(ØC23ê_0·" O ð)1í˜qqO0N.'^1)P2/h))"<+(ŽWUÕ.1<'Lä„.˜!"H8+ø>9ÞG/2W,)É53£A1= A/(ÙfE™O'ɯ]S���tRNS�@æØf��»IDATx^ìÐ3—¬Q…áóãë³Õ¶m÷ضqm[ÑíÉ:ž &©'Økíôe÷G!„B!„B!RÑc ·Â0z½é«îK† ÞºùÊôO=ý…Ü<p˜‡©{xçá&¸ìºN[šénàß§# 9Á³ªÛ5�`n&ô~Êc¸`Çq÷;vZLˆâyDþ° ´ €­qÉÉÔŒeŸÏ ñz&r|×EÃê�K�Ѽ(åAhZj;þwWb ÂX `  RÕj$Sý²ñ%ª—=ÆŠa´àu¨6ˆæKq%<0è™úFà«Ä@8½|±—ëãåíÖu{¡?ý.®Ì{ Ì¿²™/”kÚOy6Èi Uü+I´½1[˜ñù…Ť¶0ûo-,¦GëCÀ+p•}r"d ά×yþodΰ?¿aX‡,Ñ^Jøg‚¦¢4xN¶ì„� ÍJ¯5-+Ëù;²RPÍÍä{u$14ÿy÷Úà8ŽóLßÅTÀ3OL1žÉbp¹Y%gŒæNQ àîõõŒNFB'e_bEÉzËa�ÍXGDƒÐRœºº™Y`¦·zf«HÔΔPSp-kQ˜æšÅ:»Ýî¡j E—Št 8ª «ÜóºJ÷‚È¿{W‘b›\DX(º ü¨)¼O?ý~<ïÛ³¿ 02ÃMÊ?Ë6'þ?xÀT{¡±tS‡•ú»CÆs¥U¡üÙÿÐŒù÷øô¼öÌä¬e}ÂRC™Š²ò‡/6†ý‹©MõK·ø€eѧžZ8óqzÿ‘d˜ûêµOXš:�!"Ø}‡ùqÊcn züñ*¨+'>ÞpìQ4=K@ã! xË/xùf³bš\SWÇ{?îP°¬?Ò•þÄŠ¦-½\ "æ9^a'[*l©hÇ×­¶ZýØ!XGŽ+DåÏD�†ˆí’/¤¶rÄêrûG°õHB§aô5„sLBd}ꀮ`©’ð€ù>~KI$ãÇbÿ€åÃÂ0P)Zeæ¯ü·¿+ÏÿʯhaÓ½2 ¬p�¨š4%ù×ÿìŸÿ †<ô©_în3ï=ý‹Òš=ÖŠš  Ùôȧ?ýïþ€ÔÿàWïÌ?ÑÍ^¬þöÏ>°ø�LÝS)ÓN>Ù_øÝ/|áórí³Ÿýwçx>·¼Þ–×ë‰;Ê�l­4:Q~g×7‰ç R;½à(€¯ü‚-¥MòTÆÀÉ]EQMòå]ù…ßü¬0…!Rü[ëÃøÀÚÔqLYWþOà �¬'ýýÊ %ƒ»Ÿù´šü­_ÿ÷¿±û·ú‡*¢ÿ~åƒ>ÞJ¬£'« Cî�:jj Ñ²_ièîœø¿ö™_þ…_8Ö÷o~õ´Òû¡È¯œ~Ÿ‚-µ×²þg*׺O`—Q”ed@Qt­ZûOŸÿÌÀ¯ÿfò?ø^îþñß;uZÖ�žé;Ýæy­ÏèïGN*ŠÉUá1OøL»k]ú°ZÔó9Œ>\ŸS®[V¤ª ôv¹û­ã¦žPD€¨  ªd¨¿ÑHšDáUzkþC(üÞü{@”_Ô´„–¤Çº"`~êÍM\Vm'OªºÖP¢©»š¦hÀAüÒ?îÓ‡¨ÚŽÿ©‰A¤3Mã´« rý¨–@Î5SAûí…[WƒJ£a¤—aèésÿ„že®N}âÒÝeôŸ(¡B¨vAÀ”zB—R׃º¬¶O _ý� :d£_!Õ¨(\º´'†ù{ mëJï㺦¦ƒÜêÂ~Ï@BÒPª@u•,£iÜyƒ,·Ï¢h°Ñ‡¡„µ¯|åÝ=Kܺª_V©)2©ÉDâʾõøŠ4�]SÑye]AÓÔ†¡6ED!Êঢ™ˆ¤ž4ˆ¶G¡·zµvUµe ¨T×´¿Äwøè²¦„šJRWxêDB6 ƒlEUñŸ1Ò Ršš&µ¤¬ýéïÏwF°®R©+èJ”‡}ßٗ럪®SCàøû“ 2¨m !†±«Qæ1á—Ÿö˜lSCt’98I<�’áÕWí«¼»Œ¦‚t©‡QùŽð„¸þa’†a:¶Ÿw³q¹V*û6ÃÇ€BÎîˆà0Åø×F“[·ŸÌs\U)å*ú>è�œHæÖjO—}¯æ»-»&UÃ÷]VóË¥W ~¹ü´ ƒa.âœ÷vt'Ї(d2¹ýTÃGzÂT5 DÓ�Sw’‚. ð˜ïy¶Ÿ-Ǿ?døeÛö|;Ÿ/•JOÛO»Õ(39_~¢“hš¦S=3Ùû‡ûðþ> dBjDË:pü’·|»æÇ±çǯ¦W³Û¥’¨Ç©¦WH—|»ìåK«¥²æ&Ÿ™ŒªG;ðŠŽÑ“¬FÁ+oî§Å]k Eïç­RÁì|©l¯–·G·ÓçòùØ^¹T.Çåf>.gGKcùTÙŸ~m:¶ôë‹ µC�Ö~ÂÿhtLÏPªs�Î)óòÙ|³´}mb|ñâÆÎøµf¬?N§ñÿ.¼UÊ.ŽNŒ•lß»Œ§@~ЧrTQCHèûª‚oH<yª‡¹Œ)%BÁÁó³¥ÒêöÅ‹Ïo|륉tÚÛ4œrú¿Œæ[«ùí‹çn/ºÌµsNßo Á¥Ô …íK‰m…¦J8Ͻ%uÊy³ã|~ô­—.¼4±±qñ¥ÛçÆšuc¡ðüX)UÚþæÅ ·oßN•|溙¿{?§„R5!ÕSûÓA½šJ) ƒPçÒ¤Ô¤áRÀýRúÕÑçÑøøÆèÆÄ…±Åt±žjî¼:šß^ÝÞ˜X_LßN•<a»•éI·ñ³p8§@ÛŸýKG±º˜<ªrR:€ñ™«¥séщ‰o¡µ—6¾µ‘_¨/¤R鿸xñÂÆÄØí‰ñÛßÍ"U¶›Ëõþ4ÕW´§¢tUýù}ÊŸe¬ÿ4¤K0$¨†¹pŽñ ’?·8¾ýÂó/Lü·ññ±…86Œ¸9¶¸ñÍ—ðTÒ26šg0—e®ÂOj‚uBãgxôÎ>UÀÃ*Ñ!À/©ê â“Ì® ŽŽ§G7¶·/ž}a,½à ;qjtñÜÚÿÖ(Jª”g‚ù‚Eœÿ½»M½{å:&� ížr`½€u<¡!¸(&b\ºFAljKéÅ‹©Û‹c‰$öŒag¬¹3¶ƒGòÒóÇÓ;;)ÏöL)lAùµ)°æQÆèœRNU“ïo¨<…ë�ÜIôIJª+Ú $…¥ Ö±±Å8UJ¥Ò£ E2h8ÍÑt =ã…çGS‹ÍTÞg›¤o3àÇ/}bþbè€ü› -ÜßTÀB[R£ü¸õA­¿¿Í‚®q“͵gc©fÓ‹T¹é×ëÆPÑ[ØùöØ7Òc£‹éØ“B c<ܺtœè晤f8Eû|ÍÐ1$ 8€rH¢èEá§IÐ P6«ÄŽQNìx…ºx²îvRÍbÜL-xq³ �äš4Ïc@£’“�`pjtÍÕq…*  P–——hè–º Y’;F\÷Ç©†QÇ¿-”Ò¥ÔN³Yh:±fR”›vmß¿µ)è¨R¤ç¹€ÆÃ©ý̓£ð ‡jD4hkPå¤BtMê" 4ÁgÈAúçÉz½Þ_\Üù“ÔŽÃxr�kCl” ÌfRêR“&ˆZÖ–¦‘4÷—…N…”Un07ÐÐ’¨½QÐ"�BZ®ãzr¨¸9\ðÆÆKã^Š1+вÆ<v:`²Dv™ëº5!4÷ç}A5 ÀÔªœî®(€Ý@CI .][[Ó¶$pŠ©bá'É“õf‚ÅØ« =ŠšPÊìV˶�gÒÌ^ý¡S—ïÙgs!«¡Òº%XU.[G5(Ø’¢)„yhß«§šÅ¢±;üÎðiÇ‹‹©ñík1‹¸ŽÎ¢­IX²+óê¤VC"°Ž×3Hï>Óàzf†V}æÌ—)Ö¡£:m=¡A4YKͲWŽÓ͸^,zÈBq¡¹ݾPÊ «íQºÊ)Œ!X DÍv}_0©cuØ×::cÌöovŽÀÆ2ª²²Œì®hC•²á_hŽ.:Å&²€åè6† _rgƒ%*Õ„Ž x•p5@ÛŒyY ÂïÁ~¯e ä6ž »ê‘Óƒ¥é˜À¥¦ Ï7Œb±è {;éz—&ÊEÇp<†Q°eaâÄB§š”Uô¾V3 Ä‘}Ú·><@]Ózöl°6Ú ù˜®*í¥jºÄH•Ð Œwš;£Nqgg±Y6@0ê+x¥q”ÐUHg3öôô4xÜ &}j¿#¡©õ󚛽¼ú\Þ 0ãzä®jm mØñÐ|§hàíe\À„ä};fCk0*Ýj·ò=¸NA‡%ž›Éä€Ê�îí{"d%yuÎÆÎãìk™€¿¯kÝÑ¥ÒÆ@té•Ç|²n N}Ø)x†aJJa¿‡Ö:rôq ¨¦Â‘‘¥É€·”­ýOiÈCwº5ýõ›™\ôî* A•"¥¨øŒ chxssaÁ)Ö‹žã 0d’jô}+ÖϯE³,Z 8¾ÔÅB/‡3HA0Ûšv3á‘c½qOèR�c +ƒ¤a¤RãM¯9–ŽÓ5"ñáŸ4ãtåçã|ª« % ’”’ 3½t#ø©gëM‰^Ð¥"ÃDiìnw&Ò?pR©±¦·ÙÐòuëg:û>~&7“¡…p«§GÜäsÁL†±:w½þˆ®IW’44U]Q뎃ì/ÄßNyÐn×Õ“?kà͇֣Ijt{ó0 *éŸ;Ãéë÷ 9P×KU]SÛC¢Æðf½½¼ àÁn蓽kÉnÇ¡Öã„ B…X¼îÞ?fѵMÇ|´Üž µÍ×\R¢öÛƒ®»Ç¡!œÑUó «o>€Þ:…âLYQ'É£ƒCŽ3ŒQ€²ÄÙ±éëvGtU&AïP¼~¼ŸUCbSî8¾ç9#Ñ >:€ß³Ï,A¨ã6¥y¢§SñêM,cmF™Ô$,_-âT¶ å¦pŒžlߺð(䜚èÔƒY=Šº¢`6Ô5Ãó˱7T@} ¤&%ƒõþ|}2ZÊMRL·í×;g Ò®kê£ …q¹`á‚aHB¤aø¨ï’<NÎ’ԙ輛à UEÛ'¶ƒ$ð¼Ý16ú¦# PàW>S§r¹É«K<ð˜`¢sõÜUÕ¤A AHchHb:ÞÄ0Dî„ñ^|YôÆÒäädÆg¶o³_ìL’.š@ûD#ÆiÜ|³ˆ%¹`Ã�–¬}ãÝÀA=ªÎ½|õª¸(ˆjx=¡ɘ‰$ÁÇØ™ý�¥¡áÀë#¸Á¾N¾ýöe柵E`÷vŒD3cž¹;D†Œv5ÆåJ½~ë–à!ýãùƒ#8:23™Ë ±=Vçk+9@<‡Ù =‡Ô‡qÿ©ÔÎÎB[¤wï–„püà|Šçæ233nÅ­øË©´4$x>ª M, qºPL7‹Þ—ê›»ž—å~µÿÀ�…ÁRær`Û.cwžŸª*Ñ$+å"nÙ+8?Àí/`[ŒmFB*¶mÆOøÍ®>™Ë-EßeU¥óݹ®)kíùh ¡WðÒiœJ믾ûÎéºó4êXÂA#a7ŒF&s#¹(€jG˜Ô ž×têE¿Ç~*åç³^›‚¢MbóÕ›6«BïõÁã3™IüŽF‚•Ž›8¬«ƒ+ʰô0øÑùä .çc;ÆÁå´{´¬]³_üÎÁ�|éÔ_ÊÍquVñWLÄ‘$Æ–Ûcìˆ+­é ó=ì×úB{x”Å,ÂV Öc<7#tÀêœ(4uYBêCCŽç‰rv5°[7|câÖ“^'W¥¬Í‚àÖéƒ;œgB�xlLµ¬J\F{mŠº;ËÜŠ-p^W߬/`J;ÿV>`ì@ÙÀ:µF#éÎZ'ÌÀ#›Þ°pDÙó+À#uã4Aš8§|uûÂ_æóAöÿ~ç@ TsÔä{½™Ô§&’Â+bÐ;†×¶í TeP'Ä úàÎØ çÎÿõ_œw}›€‚cÉÎõ=•tO‚hà¡ïŽÄŽLJéÒ#CPCs<§™ŠÏ-¾ðÂ_ÿÍ7ó6Ë잀cNrzx¯kÄÞÙ5—•Ú­q!®ƒRâ0‰¬ ዸ¾0ž½pþoΟÏûl¹k•l½.Mެ?¼×%Æ#D1¥øåšpüÂB¹.Á�fH!c‹½B*=þü…¿úËó«-¨Þšï–^‘ð‡÷:ÓË„‘ÍæS˜‚b±ãIi‚‚ 8óí<‹…‡™Ýð›Ûoa0Âz· $G‚«›Úˈ>d¸AÅmVê^ªPÁà‚CRP“<¨´ÎfÍ“bytû­ó·óv©]Ö„y¬EÏêÖ^G@ŸeW ÍBì¤ÓyOkk}¼IDàûS”ã8Ζ¶óç/Œúv¤ÝéR•çFž™Ì¥{1 iÌg¬õVº‰fðfB80`YÈÜÏ-kÉ9Ʋy¬œãüâ ç¶Kµ(ì.¦¾ÇsWs?qiÙ‘Ilßwgm¿àaÌ·À}ï9Ìõ' Y­ÚyÏ~Ù/åGÏmo»Ù騻tøF˜ã“QffòtGïµ�$sÙV3Aì”Fí˜ùõ÷ß:t ¤ƒyCÁ/m—ò×VóYÈÑ+Ýp†ç¢é¥L&S­uÞð1õ|?öš±5àÎOêÓ) „4XÝËžÝ9÷Öl‹1ÚM:ìã#ؘ¹Pe™™l‡Ã³(Vi¹«<€R³†@j?LNýD-ʤœL0VÙÎ^kUf]?ÇSó]ˆò\0“› Ä!Ê«A?ø1Ïvg/·²ÙŠïfc´býž»~—¬I s^¶lgWóo]ËW²W#ÑÅ€¢7ƒ]Ñ?uÄêƒÜŸNu¸Í­ŠÊììì×mfWZ~–y¾ó»?yÎÚÒu•á°zmµâ^sÝ »Ð§?ÎMÞn˜­c|[¯Pa·fg¿æÙ5æ3<ë?½Áëó„!£õgo®¶.#€Ë3ìh ä–8Ì„ÿªæ}âÁRù¸`lúfkÕvì²ð+.ƒÔ'†¨CªÏ¹­ÕÙgóÙ›ÙÖå\îËû°5r³Ê{Û{IV|S=Õ ®?}örÖó˜Í¼š/jð33tƒebèÜn­¾zóë~¶âÚ™êòþÃàÈ€P–£Sí±(ï0 :”tçZùUƘÃü÷:èû'"Ö'T0ž™~ùfkÖe~À¿ú•ý—ƒK…œFlC¾þûêƒÈ߀sgW³ÝÏ÷¥Ïì_ÿìî��̽üµ?ÿóÕ–í»nÔhÀå<÷Õù÷”Á‹SH2¯²ê¶*žÍ²žðøÛ‡®¯ycúì³Ï=×r¹Dbª �ŸbHÿßmÌ–ó òKè!¶[ÎÛ³[6còè‰ùr@öÚË7ŸûÚ¬gW\ÚUƒÐÃ3"Ì¥Û˜­¿{¹5 Vñc4ïÎúL(Ê‹*êqÎÝxùµçþj£5°ýn$Aÿ=*L*Þs‚¥‘?Ú Ü·]u§çr ÿRç9žŽÉüê÷Ÿ=ëæb³«zxªœMÊ6èlëÍnÛ>6-ûæ3UµÑQYßUnL÷}7“‰ xzª«‚|¨ñ0ÜôÔ:Yݯ’¯Ìž½QÕOvzp¾GÑäÜôÛßýîR®}gß(Z?v™òôçöŒ[¡TPpø«×¾öýŒÜœêôú‹Tª/½ýöÛK“ÓAUt) GT¥Fg æï†àÛqºœmÝ<ûýL¨= wæ{ûNQ¢ñ 3y#±êÝ ã““ç;3p˜ï—S¨Êž{v:ÃáþóµN…ÁL$¡AÍäÒÒÕÜLp&êzdÖ¿þØ¡º×»ÁV^ÁÏæ¯½v5 ‰û¸~Š£›ôŒ™[»*ç3ïþýñ{(tw÷b€sÛÍç§+Ó—#€ûÎ÷P•G@AÀÌäÕ™*ðpÉ®`Z´¼²»[‰¤˜vÊÍÎN_ž†ªzæf@êTò`.üâ+‡·,ë𛽗þ ?kI©šäI»Ôjá…p&âôî}'”á\“ràÔõÃÖ?ýGŸ¦ú *MÐk¥Ë—37r•@?zŸÆ3!ðh mËê AW@Ì•gÝ™¥ ÇïÝÏnÏgÕê©íCgG’4=dXª3<¹õ�ÇóŸá™ªvécpqMe#7’ëÖÿk×ìYÛÖâ0î%m.m\H<Ô`Z:Üd‘®–PÇl!ÛêÂu¡4 4¤ ùY.EF’ÉÍ¿:‡žAU ¦\aPì®Óš¥&ÄÁPšã¤æBõ&c/“£E/ç7Ÿé÷<zy„.[¯¶YµH•ï ’˜#å-§Ò¿4fõ‘ã"Aee@Áºô{'ów…¼W/?1¥iL¬Œ)mG’29€«z^ÓË:‰2+Áo¾éø™ûq¥d5¡kè?fêw‰ã‹¾H Ù³«[ÿœ0+Á@Á8­ìSï­®«ÉV ò@üt’±×\”gV‚1QGÞÑ&¿W­n¯-³j/`Gñ/Æi1½²»í+êÔ[ð¡G;r^mÙˆ0bOA™¤¶üF¹kC‚•‚±¼n)‡÷¨–²ÃÖÒB‘¤€LÈÓŸ·qǶ!Ê*‚>B° Ó‹²®Ùz–Q›ŒHŽî×K »ÖyŒ•Ð1ž¥ŸTìêö « ˆk*Ë"«µ¬hŸ[¢† 4®,Û}-3z-StÔŽ}s&n×ʳ¹O2ú RîZ«3¾æâx€Pœá6É0iÁ ŽÚÏ ºéŒéØÃ§ S¢£+°I7•²Žf[â9 èùUºI’É´A³ë àˆÑo—Xò}î„? ®‰øÈ=ú¡2‘ò¦éX•µ³°k`ôEEÓEz ¼ûBš�ùBH®W÷B6ðQ„#„?ôû@í(þi2•Ú}ž ×À¼ð+‚ÀßÅ<A”ä¢\xÑ9ƒÛIhmøõSí§sòÆ®\l®4B5ð¯(=l!ð7³úVl¼,Îþ”ë!¯ÃiÐÛj îzÍ'EÙ3Â}1ðHQ²óÁ þwpq¢†> €(ì‘Ñ`\Ç‚„I¤`‹*\ç’iÊ<dLÝ/ôŠ…ã³Ú¨ œ––7äݯGU‚§¥ï½æËFlDæR‹;+¥75Ȉˆoìô ¹)¬ªjŒG&¼Ù0p8‡Ãáp8‡Ãáp8ÎOÝ™z™[w����IEND®B`‚IMAGE 241 ./arch/ground/desert.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE-ŠV�ÿ�Í…?Ù¤�Ì�ïå‹¿¿¿~ ���”IDATÁ±qA °ýdãSÂ’œ»ž5uàúÄ|�â Þ�±;€�À ¸¼��@àüÇ… îà�賃ƒÀíî°SNû”�)vKPø¿ Àó7€ØÀ�‚ô"( A�ìô €Úæ '�¶� NÑìÅd �P€�à Ô¶»Ìg ����IEND®B`‚IMAGE 455 ./arch/monster/demon/devil.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÿÿÿ ÿ��ºººe0�™00uuu™e�ªªª‰��ÎÎÎDDDUUUÿÎ0™™™‰‰‰ÞÞÞe00Ι0Îe0���Î0�Ι�eee`Ç+���tRNS�@æØf��*IDATx^ÑÙjÅ0 Ð;#yÍv÷öÿ¿´r©LóP:$ 0aâËßC7œ…J7ü(a18YÄhÎõ³ELà§Ç:ÙEöêÁç "DPqÞ“ äý® Æ)q¥ë—e1+l õµR±ÕöÕ@q ‹¢Z(‘Sž*Ô´Ø ,àz¨êMÑÏPˆô}ÈGΡ�­?È ÎÀD8P`½uô¸‚¯W{¸ 8Ñ7 ÀžánGÈ}C!ä@àÜàù2aÙw� ¹ƒ " ï¼´ ^4@€5 û¯tÁ-ä4ÌÁh`ªZ0îwôÞ ÇÍ ºõAZ×Ö5€’Ò�)•ÐRʶ±‡ÛV -¾O)Yôw³O'82Àýzü8òë @Q3fû����IEND®B`‚IMAGE 454 ./arch/monster/demon/devil.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE��� ™00ºººªªª™e�ÿ��‰��uuue0�™™™‰‰‰DDDÎÎÎUUUÿš�Ι�Ι0���eeeÞÞÞÎ0�ÿÎ0e00EŽÆ%���tRNS�@æØf��)IDATx^ωNÃ0EQ¿7ã5kWøÿ/e\C‰-ŠW©äjŽ&Žû{cTv‡ÿ�%,ƒt/…HuîEàe'Ü«°¿íöüdqO/� "Þï ùÓ|]W’`‡A ¥ ©@•)æIUo ý„žQxœ—p>‡P<¥Ä˜Ø’¡LhwðŒÑåJÎð¨ó‰u…t+ÎÜ®3é=l>ÓQä&»gO^.õy¬ ; »%0ù• !àé¿CmE(3 «œÐDÖjäŽàVB)ÅH¨ ››PUõ íŽ]°¢À¬Íñ�Djs|Õ¶’)Âr}ÈËÂf¹,n >ç/³ï-ï·-n›÷´cæœm´ßf¿Ÿ=A­-ó‡cëÇ% £ú¥½=����IEND®B`‚IMAGE 643 ./arch/monster/dragon/Dragon/dragon.x31 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf��IDATxÚí•ÑVÄ D›…ÿÿmBâ¶øØÑâRÛ{w «Ç“'Oþ#åY"2³÷ ò“·ò7 r‘w$’îpBŒÔŽ"ÚÀUv¨¯3dAkC¼¶ó e¬ EPV°AlP± ™bâÞ70CpGV±îÆ&�ªÉÍÉÆ"»+06k„Á¬Œ†| ãrT�lÕ %–�T "4ä^£¯ |>jø ’©ÒÕˆ}û oàO‡TÑWÊý£5Póèa7Ÿa /PM�eÓ×¶Pƒ€ø eÓ†C*ZÿMði¸Œð>j8¶¢•|òpTþœãÓp™FoäÁ¨AU* ¸~û|*@®í†û[‡4û†³0vóï+`°> ø$.W ·µ¿ ÁuÕlm[%ü:„"<â+ è×t›Ú]PáÇåÃÕ€3Ë¢‚fäµ+ñ¹8£ƒšgÌr_@GàáímXfQБ4D7 †d:ª?îáã|™7ø‡-ö¤sgÅgRã2M%© LhÀ(Ç-Ö†Ðñ=µg� ´q®ÇžÎ†í³³3’³Ûl’€ÅŸÂuSÎò ?å4­˜‰XÔÌ+ÊHä.Õù®¢”Wˆ¬ƒ}ÅÉ5‰\è‰]ƒe&þþÇzlg">yò$—oàÁ wÏÎ����IEND®B`‚IMAGE 625 ./arch/monster/dragon/Dragon/dragon.x32 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf��IDATxÚí”Ñrƒ E1˜Ûÿÿã"ËÉZ·:€}éŒ×F“ 9§ÐôäÉ“¿Hþφüï ˲ 9Ûå–¼ËJ –ó¼ ÀÇR¢³C%ûœJê©0¶lìUR9uÏ0;dS½k!i­QêÍÞa3cW3Øš4e ‰š`Ü€B…øI«$ŽXËÆWÒ&(#1L8 ì-¼�óS _ ‚Y‡w`ý ÐðÕ M”R,•Èa¢ÇêJeиA6Ú�´ø,ƒXYhccƒ¯-ÛL± ËÒþyslìAp j:˜S+|7h¾óƒ¾úøÀ¹p| =thA££Fëž*õq^À±5™¤îÉÑ®>0üÑÓøý ,�™ Ènïõø&¸a’@o©§E&^Ÿ^0Q\Köë%û hù¢'(/üøAÍI…š#φêBpôãð N·ƒª¥[à t^§«[½!Ý@vÅÁ0Ò€Ö¾§O¤ àí„¡Ýl@ÁFÅ¥@'§2Œ÷®@2Z pƒ‚]=]€º´çÞ-�·…[@· â'ß>ëÏA`÷>’^Ù‰ CS 3ŠˆNiB‘K~!Šó‰ìÒ;09¢×Ñ}Eί@ôõûêFhp$J4»Óâ“'OÆò ?½ÚQÕéË����IEND®B`‚IMAGE 587 ./arch/monster/dragon/Dragon/dragon.x33 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf��áIDATxÚí”Ñr EƒÄÛÿÿã›Íº$>8“kCé9°·;wî|Gò'Ù·aÆi¿×RI×÷Tö.©4¯!£<Ó³ë©ioÑÔ:Ÿ\4Ư¼§¿©Ãõ¶Íp8ªk be†©t%�ækæ* vI.J’/ßþˆñÕ*$•ù®IÀ&êo]ÊS ? Á[’äe:u»_Í ]5ÈVÈ‘P¦Ê7úѨ°1ÌÃe€ÄNì8JlíÖ–4ô¬¸Cd+Ó_ Á0 ï“*_r§ñý»ÊmŽŽwÂò;à Z¯‘wùP:· ©úG†ß{îÑÊÄÂ0U¶ï0"~lý„4½|±bùd çlÞŒù}1ä\Æ->¨ÑsÖHP‰ž].6í=õƒñdÁÑmAB"è¤!Fq 'ÌéüÛh ÂŽ¤ßt:cAn ~…é¯9Žƒo&~ñã!GÖ¿3 kzÉŸã0‹Š‘ÉIþ%wi¼¸q‚Ä©¾ÏQN(䌷A1(Ì&Ó’œ®X5†à×$ùQb ‰ª`ËÀß ;@@oA«±h�â‡w ðT­ Dž´u†HTí¬T@ä<TVñ!6Cõp_ˆÒvçÎkùE«pÁìõj����IEND®B`‚IMAGE 618 ./arch/monster/dragon/Dragon/dragon.x34 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf���IDATxÚí–ÑVƒ0DIÇÿÿcòáÒ=BJzƒDié½LjºsçÎWdú$ûë 9çOòšGÝ¢abì'ÐuGÀ¹:pëPcƒšÑ3¦CZ? —d^0UseIu™tËÌøwÿ±Í˜T,ú‹Ø!»62P„Ù pýŸtÒ€#VpK[R*’Œ;ì-B%Í‚z†·z0K©6?RþÍçJ©¨d#®›‰TÖ©1ƒ4lм×Ì œÃmôbg$ cðâ±™²½ŽÙWÎâ¨1ôˆ¸rGëPÀU¨0ŒÃ·ióƒÔøƒºøÀq¨¢…¡ƒ-j5*š¿0¼Ž@üS�®Òv–ú.”F£øÍ`|nôÈå œ°!cë¡Ç�}£Öç+Ô,]%$.KEM l¾Ñ+-iŠc‰Àãxª !Y<�QîÆ`Xv*X"Ï^?2ˆó‘„ Ðí tü(£#tÛ£À†¾Ä‘Z™äªhHƒ‰½ÝúTABûØtÅFÅ ÃA OÙVä¥AE{¿bß  ¼É;Ò‘áÏæiŽˆÄØ«°³§=dv·cú™ H ƒ©ü7@Œ È ÃdKø. DVéE†H¤Ž®T@ä~ˆuõv"‘ÿæ.é‰wîÜËß碑†fõ����IEND®B`‚IMAGE 639 ./arch/monster/dragon/Dragon/dragon.x71 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf��IDATxÚí”Û’Â DƒÌöþÿ/Î%-  ™rßÒ*E´8g†`¶;wþ;¶”Rþ‡OÃOÙó>q.PÃQÖðÕÇFÔ¢«—3ùÀÉv‘߈¯1~#…§Ø !~‰_ÍR”Wt0Á‡\¸) ´!61 •¾,~‘¯L`¼ƒú‰Oð»hQ+‹/[‚O±ŒŸ.žã°~™âƒß–=Ø7ì|ñ”ßXl}>Ç”¯ m±)ý¡—4¿±ð,IéP¼š�þs„ ` ñX½þÛB¤øm„P¢ü¨>rYòà 6ZýÄk ùfàOÅ3½d!äë<Õ‚ŒÀ«K0¢1¢9ƒP°b’8²¶öC Œ-À¼â$Í@ìßÓ¹&ˆŽ5>µõfŒ‹¹ƒ%ƒ·lfù4LèkœÁÑï%‚ý%ì&¾œÞŒéõñ…®ÎÞ[0�£"æH畞=*z~”6@z¿àH€mð¨Â|Ò×#ß¹Q¶ó9?xÔ7A¼Rx}Ï„ôµ˜ Ó¸ð?Y’O8ñ<ª&£kËìÐXpö…¬?Ý€ÖNùò±Äÿ =“þ<ßУ`ìy>-ÃÆž I>+ㆽ/P}Yü‡â0ùf|žÏs:úêWðúyë«ZÓxžpßé3þ£’hç1›}Us‚Èûîܹ³š?ø o����IEND®B`‚IMAGE 627 ./arch/monster/dragon/Dragon/dragon.x72 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf�� IDATxÚí•nƒ0 DCC¯ÿÿÇ3ŽÍY‰ &B›4q°¤Û»sfÔòèÑ£¿Vý~ýgüeYnÂWŽ‘ÿ–k×|²ÌÀ,h3*˯ÿÝä<åëÚ7mà¤$„µ2Hb)ÖçÁiQr| s–ÐntÔ'é„çùb`@æïÄè—ù(æ`òÔù=+~…5ޱ‡H¿Ì—?Û PK`z¹IŸ0X>Â÷S‚Øñ|¦³G> |?*¬OüR¼|^ æø€òÝö`zýÖ¸Ê×€F·Žj/qëIo¢Éu¾Œ0ˆÊóÝê£IN|u ÌOi š0!_Wj1 |ò‘sˆ|¡owFV!ïx>2z?á¸n£$žíêV>‹<Ýç:}Ppºˆüàã ¢Á"Rñ•¼›Åð‘¢Ãþ¸ãmƒY±_+«ñ}‹â‚ᎊ,Îøšªw„j( Òè¬e£ãkLztœÂqÊ I3`ôN§ô|Ãm|U ç+ ?â‹xf°Í&øÞç¾²—옟{ÓˆïÛê$?øžòËI~$øFSÜÈg_ÍÆç×娫_8-TB�ÇÉÕ4ž.Á‘]Ýv ?Ág¼ƒN¬¯JzZ8|yèçü—8”Y‘84­ñUwðÙ§ƒß-xýýn‘âÁs§ß=‚Èg½_Ró~=Êê&¢§ ù¤����IEND®B`‚IMAGE 600 ./arch/monster/dragon/Dragon/dragon.x73 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf��îIDATxÚí”nà Dë‘Þþÿ‡©­sLšÀ”mšÄ5’nïlƒóXZZúc•_á—Ń/œÿ-¿ü[°)_\ñ÷¼žç7Êzš$èY?gçk°ÊÖë©Xê0‡8q ǯLRº‰éç‚á73VŸÝ¦»o€ˆ�­F0Jìbô„ȧ�^&wà>­ŸáÍkŬ<’à³ü:£ñm‚H,‹þÊ“üv pÏCªByDõú4™ã×™MVcÃMÆ à7•9 P…SÓ&;>“È¢q¸Í¤O@¯ŒFFó€q¾u‚(:Epï>’X~4¾<2P‘|8Q(pç@~ðñEˆ}"  |+Ì«+;!? Ÿ™2Vø'¾Fü¹I—çùoŒ â±K€tÖ—Ñw»¡êˆôt ß©ëHŸ)Ugü:¡‹ß†ÉùÝ»ó¼rýuía“ïÇ,ëb“Éx5ð˜²9 ð²Ñ2ž _b³Åáìc¿ëµx¬þeß#`|7 ©Â/ñ„ŸÕØ)Žÿ(…ðA~:JdÆ _U"|üe}rö°Ïà1/Fdgçßá÷O’—÷ˆÐïN±Aéw3Ÿ}F¿[ñmt~÷Õ`ÝéwØ£@öKºßoiiiT_0»>G Ç����IEND®B`‚IMAGE 627 ./arch/monster/dragon/Dragon/dragon.x74 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE����Í��ÿ�.‹W²""ú€rÿ��ÿÿ�”0B1���tRNS�@æØf�� IDATxÚí•nƒ0 DCC¯ÿÿÇ3ŽÍY‰ &B›4q°¤Û»sfÔòèÑ£¿Vý~ýgüeYnÂWŽ‘ÿ–k×|²ÌÀ,h3*˯ÿÝä<åëÚ7mà¤$„µ2Hb)ÖçÁiQr| s–ÐntÔ'é„çùb`@æïÄè—ù(æ`òÔù=+~…5ޱ‡H¿Ì—?Û PK`z¹IŸ0X>Â÷S‚Øñ|¦³G> |?*¬OüR¼|^ æø€òÝö`zýÖ¸Ê×€F·Žj/qëIo¢Éu¾Œ0ˆÊóÝê£IN|u ÌOi š0!_Wj1 |ò‘sˆ|¡owFV!ïx>2z?á¸n£$žíêV>‹<Ýç:}Ppºˆüàã ¢Á"Rñ•¼›Åð‘¢Ãþ¸ãmƒY±_+«ñ}‹â‚ᎊ,Îøšªw„j( Òè¬e£ãkLztœÂqÊ I3`ôN§ô|Ãm|U ç+ ?â‹xf°Í&øÞç¾²—옟{ÓˆïÛê$?øžòËI~$øFSÜÈg_ÍÆç×娫_8-TB�ÇÉÕ4ž.Á‘]Ýv ?Ág¼ƒN¬¯JzZ8|yèçü—8”Y‘84­ñUwðÙ§ƒß-xýýn‘âÁs§ß=‚Èg½_Ró~=Êê&¢§ ù¤����IEND®B`‚IMAGE 281 ./arch/monster/dragon/Dragonman/dragonman.x31 ‰PNG  ��� IHDR��� ���@���LP…œ��� PLTE��ˆ���ðæŒat¥ä���tRNS�@æØf���¾IDATxÚíÓÑ „0 DÑÞùÿÛ°!¡ÓÝõÙAëqШãM�§Óº^hŽàQ�`+re0 E‰«ˆí�Ÿ‘ëf„ÀfìÛ4“dsñ¾‡ß*ZO›!qZAÔ*`RJ[ å^”†µRÁ Ö÷§y“±Ô“ð PÀZŒ?r€§@4@ó˜*$)`�Éf¾9�gE¸ÿ.cž +P`@œ‡™b¼©¹�al»‚[l����IEND®B`‚IMAGE 292 ./arch/monster/dragon/Dragonman/dragonman.x32 ‰PNG  ��� IHDR��� ���@���LP…œ��� PLTE��ˆ���ðæŒat¥ä���tRNS�@æØf���ÉIDATxÚíÓQ Ã0 ÐH÷?ôQg"¬d컆–­~ILÇ[^˜ujsÖ€@‘Ì €"QÇ•€TwÞú„gdŒÀ7ç/ mØ"\@û '¡–µ à4Mö3EWáå>¿EXŽáÓ¦póJ’- ë—l ëÉF%h^40P‹\l Û0`�â6*ÀÄÚkóUPÛ…Ç»h'é#§õ]0' ‚œàý;¨ }žö €ô€�!Âë&!A%]Îj¼eõk·ît�����IEND®B`‚IMAGE 286 ./arch/monster/dragon/Dragonman/dragonman.x33 ‰PNG  ��� IHDR��� ���@���LP…œ��� PLTE��ˆ���ðæŒat¥ä���tRNS�@æØf���ÃIDATxÚíÒA Ã0CÑèßÿÐ…±Š3ŠWÙe % ƽ¾ÙGcr Ô“È+*Ž%šBƒ1 „¦©ž»p8:âaB §MTE=ÏÛ¬þ¼ §(æ%Ô u>î{t®ðÇ}+fv€ÁÚh,¡à· ŒtÉñÉøÿCJ=ðmÜÀ:|þìG”ÐÌ&ï7e î> îw®ËÀiSâü�¢à�Л@gà 9.iòÐÔ"b…+g¸‚ÜtØÕõÍ6?§S¼®g†����IEND®B`‚IMAGE 286 ./arch/monster/dragon/Dragonman/dragonman.x71 ‰PNG  ��� IHDR��� ���@���LP…œ��� PLTE��˜���ðæŒª9*���tRNS�@æØf���ÃIDATxÚí”K„0é¾ÿ¡PâÐ,\Û»¤*„Ä}gÃôH'åÂ]�‡à'¤à¬@µDPB8[gJˆõÛ!±óêñça»&¤ ç“)óÚ¹ ÆŒ[pææRé÷éã.ð!5? ÉïæcËù±‡xB· Ö„ktkÒ”�ÇoCŒš€UÈ©a]ð¼‚8Eç°éÕí èP¼¹R` —Fãû·ÅÑ(zRœUBBqÙÂ~ +n_þs�Z<¹¯#Eý����IEND®B`‚IMAGE 287 ./arch/monster/dragon/Dragonman/dragonman.x72 ‰PNG  ��� IHDR��� ���@���LP…œ��� PLTE��˜���ðæŒª9*���tRNS�@æØf���ÄIDATxÚí’AÄ03þÿ£WUQQj ‡½Ö·ÖC ëS#.M¶.ÁdƒèÂ%h[ÀTÕþ]üV € ¿ 8�픢w¦)¦a�. *‚JõÙ:†Re ÕþBa )ì)$`GÊÿ%¾ª„»b&XŠMeÂÚ€ø"›\À¶ ôd�v‹üÝ=oÍÇ”HÚ}/c¾m4}'"¥õƒXG€h€Ô|G�÷_�= <À‰<ª¶þ8‰ô>¹~lY·Üš¶����IEND®B`‚IMAGE 288 ./arch/monster/dragon/Dragonman/dragonman.x73 ‰PNG  ��� IHDR��� ���@���LP…œ��� PLTE��˜���ðæŒª9*���tRNS�@æØf���ÅIDATxÚí’AÂ0 ëýÿ£ ÎJ+¸‡8±…JtÆŽìrýƒ©Kêo1×Ê–ÆòVÜ€p™ó-1ïZÓ"ñü ä„iŒþÔÀ¥VVÆ-[Œ“-0¿Ê£Q®å6…Á#Äü2Ðû²©:–ü)è¤<G!\Ôaÿôsw9…ªü-W@È›`A^|LÑR†Ô±É´§}~„»7.Ss0RþPP8 ¥ϧH¹bLF¹Ï‚"Œ ÀH©Xj~»‰°¾ó¨h¼Ì:äí����IEND®B`‚IMAGE 873 ./arch/monster/beholder/dread.x11 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�Q���ee�™e�Ι0™™��U��D�ÎÎ�ªªªîîîe0�IH�ÿÿÿÎÎκººÞÞÞ¶«é+���tRNS�@æØf��áIDATx^Í– nã0 D;¤>v¾íý/»3¢²N+ÇI\,°, ˂ߓâtJ}üãrÿ%_̵¸\£Ý‹{­¾sËâ1z¿bqVŒvÜ律×Êf‹Š¯Ñ­ˆÿL铆¯Ñ_nÓ1Né8™^ãŽW8Bp˜t·ã»S:^­ìzž²Ù•e–ÍŸGdœóìŬXá�Ï#2ÎùLÒ…»a="Û±èâÍó("›± 7 ŠoGdœë‚J˜tu,Ö!"Cl ê 2‘~Ï"TÝÏvîcS5§ä)€q77Zu‰M”ÃûmYÕ!VDÎ鱉Üõ9«*©Iã@‘[#"š#®ØL› n;O¯µˆL¦MÑÝZlç$ƒÕ µ7“³™"BTxÈ›Ê'ù´8 ÈkB¿™¦ˆÈZlĆBt¨Ì¡M÷Y‹Xñ9øZk7Èj¼ÜEd-6`žxûºA˜h ¾GäûœÁ_’êñ@˜ä÷ˆüœò×Äïæ”Ò•¯šyÏ7¶kBü…Pp –‡…äQ°LV­ NMÀ;¿ âM(“RðS邟è8¹Cž‹™ ÁgC¥â¥êÎ¥Z±öç5ç’ ×yCÉ•› m¼ÖŒªÂ«|M •] ò<6y fäÌ•IWò à%‚Ï(@ÖO¥eä³W p×s9#qU)ЯÊÂsÔ(P‚|„ƒ¼ÂPÝ7 Ìâ_š{ÊD 䌓š@~lëLt½=Fðö‹¤iÍ÷‡ç:3§‚£{fÜ>ÜÍ¿jIÞã1p÷ ÿúî›Ù�qï¯ýë¯piZ6|Lä'çÆ±iýô[÷?87®5­¥Æ8ÖšÖRc·04­·ÏCÓzãÜ86¨·ÎcƒÚáÔ{þ±A½íšÖ›þ¦õ¨޵ ¾áôc‡z®ßYBÿËú¯® ¬EË Û����IEND®B`‚IMAGE 908 ./arch/monster/beholder/dread.x12 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�Q����U�ee�Ι0™e�™™�ÎÎ��D�ÎÎΪªªIH�îîîÿÿÿe0�ºººÞÞÞš´e1���tRNS�@æØf��IDATx^Ý–ÛRã0DÓs“ìÿÿìNkJ@¢`“𲵤ªœn15B:ü÷Šø%ß4~NÁÑËá!¯.c„ÑÓªðT^rˆÐTÄK<“µ¤ˆ§ymäךƓݧ?‘¸¿½yZÜ•±üöK¸ž.4¸œVΞíŽÌ9^Ü/Gm9y¾;ÂMõ˜R5ýî˜K†¦Ú2ß?éŽ©Ô ,‚xè0�æî˜KƒÊÐh°„ÅÀþìRK£Ú-:o–- ×o»ã3œ#Ú#MÖ=ñ�y"SwÜ—F9Ré\½…… x}ÜcãœõÜK#%õTpLÞÍï»cÚ8g¥U9�!F‰€¼9æî¨sÖR•FÜ<1P#IÜè`ñÑ7gèÌÒ$ïä€Ö€¯'–Ýq»qVí‹X{iÜø!]Ãù:;è®;ÆÆI ¾-nxWO„Ýq¿qÖµ—†¼/’£n+d“,›O}-ªÞù«S×r(|XñC_Jƒê$ôl™7÷£$¬Úñ~è¶4(þšHƒk9€@¡³p[@E»Á[7Páú7µtrð@[µÑÁ‹_ÛŽ똕[š*Š7…l[ŒÚt<k¢M{×/Ö¬AdÛ‚<íB3á"tÑü-Í ²mqË#‰L.ºaI¾„ñ≘5±¤¥-XØ‘Ãa—74ÀøkH:¨î: ¢RÜÏB X_ P›I7¢iРo= á€²àÜò©á±ÁøŸ,‘¸á@þ€1½,”‚ïÂI Gæd ãHG¸ŽŒ‡wª¾>áˆü€s°ä�ÞÃGÆä@2ù¨¯”Á€œ?pdlÞ©ŒÄàn2ä#cëNå9{ |ÍØ¿SMÕ%ª¬ÉÎj楑?¹ŸèÐ;wª{áý•úŠ(.ïØ¾SM‚ddg{wªÙŸ˜»q:5'áKÆÌ¦Ss •+~ãhx(,0€8ùIÓ©9‹tC÷™ùéÔ|$â\HÛ0° þ@˜46O†={„º+ÂŒU„ÿ=ýÝV"Ò°Ò '����IEND®B`‚IMAGE 893 ./arch/monster/beholder/dread.x13 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�Q���ee�™e��U�Ι0™™�ÎÎ��D�ªªªîîîÎÎÎÿÿÿe0�IH�ºººÞÞÞ¿���tRNS�@æØf��õIDATx^Ý–Ûn1 D;¼i×·´ÿÿ³åˆœ,d[N^ŠN˜|fV ô¯ÿ^?ä›ÄÂãÏ)X};<Ìâ›qGUo«ÂSÒ«o9D|ȇDßë_E žÞlmHËø!vóÍÖÆéOÈлùfkÙ¿}—þûÎÓëÖ.jÑ%.-Š¿‡Wõ|lC]ä²ï—8´¶ªcž–Ò¤Á‡1ØZI±µ/Ç6¶ðˆ x@ b)ä©àÇw#­ûoüIõD‡ft˜Ým$"y÷4hQù¿Ï;ëí¦gœƒléóÝø ØZ¨jòý$0ƒÊàd<Ç– š˜I2àÓ»‡ÈK2hr9«ž/Òð‰—F~OÕØ†푨¦ÂÐysôÖ¦DÜðelçÝÒ‚Ý4 pª—bîêpŒÖâ0¶ãn;O¦®‰‰)€ª\Õ]±Áâ8¼ù÷»åÁ“Wr@kÐIËt}¾:|º›„ª3ÍI—À#ÿij?h(ô8¶YXw(žc76¤[v¢Å'Þ¯RJ¾ üŽOÇ"Å_•º–CñÆl D’cl‘@òÍÎÜT/–pñ„§"[6< øk ®å0ÐgãÍĤܺAžð‚/tð@Û¥ÑA‹ßÛ ƒŽ|øÖDèP¼ ŒKBu¾™4éõyó3Ã:/hn|Ù$?Íaðï¼)ÉäN·ß`]X‰7«÷Î39iK4¡x2àü³tÙ�lPz?ˆˆ‘ï>-àõéêÃO~Ô7ç—õÒ•¼^ñZ*xü‹J,¢ãÚùT]F]µ[c ³p„Y«ÄµG“÷^¤#Tc8l÷ çÃ+õäïØzíá#æ«I‰”±bþ'ŒJA·Cn¾š¼øqˆ±óÅ�øu_»:•gÛ}¾vgôÁv¼vcæk·´3_»¥µ˜éÚ--ÆÌ×.µ3]»Ôr̃µûFÌ|í®ÇÌ×îzÌõ»3_»ë1Sx5f]„ÿ9ý“~ Õ^÷����IEND®B`‚IMAGE 828 ./arch/monster/beholder/dread.x14 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�Q����U�™e�Ι0ee�™™�ÎÎ�ÎÎÎ�D�îîªe0�ÿÿÿÞÞÞººº²ÀÜ’FY���tRNS�@æØf��´IDATx^å–Ûr£0DÝs‘ð-ÉþÿÏn·ˆ„ˆ’Ú§m$Ò:3*j\Ãé«Ö_ò%믒×÷›îõåäÕ¬¾zŒ5y[=¯995¯^ŠPkRµ¾Ä+s~J'yšÏ"þBqzá5ÖÛ{%î÷»3„^ãaií½¸Ëíª�×ÛEOÇ¥µwªqëùê~=gáC¿´zNõÈ<S™‘µ_Z}§‰,Y¸è—ÖS'’UxE¿´ŽÒº§_ZGŽøˆ:q*Ó¨Lði¡µþÑYw…x+âoî7í+¶ìÛ;XDÔ¨m/>®H›+Ã×%ÀÞI4“¨SÕæ�œìQZ\®'Ø;™-ª…D_<ÇZZ ¿è»c–”^Œ¹dÖÖMi‰_õÕ £ÈåÈôæÒBßjë„k¥�ð¶ ÷ÀDÂÅoµq´Q#Ä¥@‘\†èíÞEXï!:›ó¿R¸Òœ¾iuœ".^øÁ#R9Dã´Óâ�–Ä~Ùrèü{mXæƒ7*%„øÿÌo€�y[DX|¦¾9/Ðï¸û#áaäÏoÎú¾»¿ÍÏñ(—,ŠàâÓ.x*?b*™Š0ó‘°áH Q,K¶È% Ì ã|¢„ñ¤“³YÀ(`äø”9H0s£KáÖ„‘ôfá˜Q,H[AˆŸ ð(@h£LP8× }Ðêk}ä€ÐЬ…+ÄQ«—%Þ¢ek?.‘'Ñ]k´Væê|Ó¥q“kc�Ýfš—2X5^Zí’c±´]lð6§§<À Âù·ûp“•ù°ZþM�L ‡Ï ”í>Üdåbù–ÌKÂÁ‡ÛÖR~i{—€?_{h§½:­­ú=tÀ’ú=tÀ’ú=tÀ¢ú=tÌê÷Ð1«ßCǬ~µú=tÐê÷Ð1«ßC‡¬~·ú=´o GÖÿª¿Î¡æ U����IEND®B`‚IMAGE 829 ./arch/monster/beholder/dread.x15 ‰PNG  ��� IHDR���@���@���·ì���3PLTE�������U�ee�™™�™e�Ι0ÎÎ�îîªÎÎÎ�D�ÞÞÞe0�ÿÿÿººº>_9Ó���tRNS�@æØf��¸IDATx^Ý–énã0ƒÃ9$çèñþO»œQu;n§Ø?K£ˆòãÈéôeöKÞÕ~5Ü^.«§‡›ˆ=»9<WÇ5†ScõT‚™RfOñÀ ªB©r‰Ã¼xð—Ö.‘àr4ïg¨œÛëk;‹âü~8@r.GK ëõÜÚùªA1î–­«^)Õ.¨ÆýÒ¢ÃU] Tã~i±™8°aÜ--‚vdΖq¿´¼3À±eÜ/-”0iY{ˆb¬¥¥¾ô{ @Õv×ÒÞ3n MÛÆïJ«:2 è¡€jü®´Ê“Š�@«ñ›ÒÊ’‘u*¥ÝÛ¥•Öù;�À5ˆSµÝµ´ Ý3"8ÀÝäùMÇ4¾––àà™´¦ #w“Ÿš¥Å_¼®B¡¥Ý«8Ù¶òSckªÓ˜ÜÔ(퉲i“Ÿ ‘ƒ»± n,\¿>_”ðLEð2él¿b«Ê¯ªJ|íÕ4î €ßÔe•ÊÍœ-€¢/ÎÖ½‘~»’ï y8J¡»¨kövéÞÌæÞeq%­ü”üCH^ˆprÒîè dŒé-êÚ9™´"˜Â|ëp Ç#LY²€MwÌÖùhÃ1=£øí¸nà§kUΠ—ÏGçGZ¤6 à‡;ŠY⨇óãeH›5 г5ñ‰ñ–lÇú´~÷lÜéòý$V9`É´uxzJ�Iò6F´É'Œ»Gît}ð &üãÉXǶ]W³F|ÈN†£w:SþFE=ïtvy1âáa„½ÐsìNg"v[=7#±w§« 6=¥õÔ«²OžzÓ«§^•u.Š¡žzU¶´ÀÉÕS¯*hóÌÙ0”S¯*øÜˆÛ–¡œzUdט©r<îôm>á~ Û|…«ˆþ—ú�©§²ºÎT����IEND®B`‚IMAGE 884 ./arch/monster/beholder/dread.x16 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�Q����U�ee�™e�Ι0™™��D�ÎÎ�e0�ªªªÎÎÎIH�îîîÞÞÞºººÿÿÿ3›q���tRNS�@æØf��ìIDATx^Í–moã0 ƒCI¶Ó×mÿÿÏ™ºó¶¨—¦ÃǺ¨?è!Ý@<ýcEü’o¿ ·Sh÷rx˜ÅkÇá}·[=œºí^rˆp*â%˜àn”;·ØÍ[*å$‡f{ð~…ÛµåjŽëûn3ØéfpâÖ^øh~¾–r={ƒa×£T÷3å^ Iíf×£¢¹7æW ©ÝìzD §ÒÚ®‡èù`Êk7ºÂ+  ÒÚ®‡&mÁ¨Å¨MºÔ7ƒ:š�Ô×Ú¬ë)÷n!¸”n�óð®˜y×{·€£J2XpÂMüLɵi×/ÇYÎeE2ƒx!§· ®ZZÄÛ;Ò®·ENÆú „Ë6¸æ{í$“®_ªQ:�@8UÃbÔ†!ëz›k©…KÁh­Aù2-<M|©õȺž´>²í‹`²\¾QãVËMÖõ¥ó\Þ…*S9Ädiht½*©ÎApÕŽ´–|¦!á:H`F ó&ÝÜA&IƒöÕ@0é ÚB ZÇ»dB@¬ dóÃ`¼µ€‘XŽq,ÝAü0¨?xÁ~�yõÆñxTƒÐïèwþmö&‡"ÞmnÝ@è¦�G=4÷óùñÕaÝâœBmæÍ—ž;ÔVìÉá@\B«ÆCvþZ…Ix–·"L^èÖê¶OòVÔ–•ɤ­2Èr¾‚PÕÇj#-?÷mDÜÊJסäõ[P»Cl]¬T¥7§� ½Ãd‡ª³EWhX0#ˆDë_ñ¥È@ øK¸hÓŽùÓgº-"Ü—Dä·:ÐB;òÃ@cv‚|í3!¿ÕyP*’Á§ƒèž@¼'lÜêJ7›‘`Ÿ Ù#3«$\ü’ßÓ™•'Èb}ÇYϬ$áâw­c2³’„».Éc\Ϭ$aö‹øyÎãjf% D…+!©HfV’0Ïi‚”̬} S2³ö%$3kGB6³ö'Œ™•ë° ŸÏ¬<áqDŽæ/Jèÿ¨?îUÿ l€!����IEND®B`‚IMAGE 1656 ./arch/ground/new/dunes.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��pPLTE½œc­„RµŒZµ”k½œsµ”cŒkBµ¥{µœk¥„Z­”c¥ŒZ­Œc”{Jµ”Z„k9œ{R„c9½ŒRµœc½œkÆ­{½”cœsB½­„¥„B¥„R¥ŒR”sJ¥„J½¥s­ŒZ”sBµœsµœZÆ­sŒc1{c1ŒsBœ„RŒs9„c1„c)„Z!{Z)„Z){Z1kJ!sJµŒJœk1½¥{½œZµŒR­„J­œs¥Œc„c!½”k­”Z„Z{c9Œk1­”s„sJ”c)”s9Œk9¥Œkµ„J{Z!µŒk„kB„k)œ{BkR”„Zν”{JŒc!­ŒJsZ)Æ”ZkR!sRkZ1sR)”{9ŒsJ{c!kJ”{R­„BœŒcœ„B½œRœsJsZ9½”ZœsR„k1Œc9­ŒR¥”c¥”k„RŒZ!½”R¥{BkR)”k1­œ{½”JsZ!ŒsRœ{Jœ„Z{R!”{)½¥c”k9¥sB­„9sJ!œk)­œkµœ{¥{Rœ„cŒc)sZŒs)Œ{RŒk!„Z1œs1Æ¥{ÆœZsc9½¥„{kB½¥kœs9¥{J{RsR!”{ZÆ”c­„Z”„cµ”R„R)¥s1Æœk¥”ZŒs1{k9{kJ„s9­s9ƵŒÆŒB½„J”s)½”s”k!”c1½ŒJµ¥s„Z­„cÆœccJœs)sZ1¥”J­ŒBœŒ{œŒZ„cŒ{!½ŒZŒ{Z„k!„sRŒZ{R)µŒc­{1¥{9¥Œ9µ¥k­{9kB{Z”kBŒcBœ{1„s!sc)”k)„J”kJµ”JµŒBÆ”Jµ„RÆ­Z�Ê-��ÃIDATx^ “òl[�—¶Ý¶mÛ¶mãÚ¶}ŸmÛ¶õK¯5ÍÈȈº ãctÄ`ôᬯÐB° CÆŒ(D‘‚€A=Ç�"˜Á”‘”}$ÞÆ°Ä€ Å`ìb½ŒW|Ø_ŠYý?‚8ëá ¡ßü¦AAO¹}¬]àþ*o^GáÜîIéʘÚéé^ ;þî§€Ûêg°WæE·L`5¢ý¡µÞöŒIca½` ÜÀËXv•ee»'w}!žì¶‡vWjÇ#ÐæJd[[ØÌ³¬[ø¥ÑœŒì ´þH,wT4„‹>O,·Ø#E¨þôs25”šÞØœ¨¸ç0°Èwyâ5‰:ñ{nJ NêêJÿÞ—î¨mº/@`a*‘‹¬òÂô×÷UO{_0غћ™LwµjçBžo­@·xÓ'pN}zÛª]™ø"™šœŠ_^®wA¥Kÿž(X.½ï IãQåfB«YHve2#›Ö-€’›KßDÐfS# è£k–/ŒŒî¼¹þî@°ÛdÓ¬W¤^Ö‹vG¤ã•WížB'Ó£#™t0–Œé10r 4¶pˆnÔž ÆS½;CçÏ܉×л¹[}DŠìo꫎UŸ8‘Hm´¦ROkPNíý^ãÍw|s4¢h­·Z©×~K(±ÞêMM #`ÆNž·Íœ±ææïtKŽ€¢†·– h_6ÐG»¡ôClú9XÊÁõR§ ö*5°‹&É‘“ (!.LÄòn¦ª­Ä¾V·5í|)Kì{£+vI À�S>Qnãë`ùÚ“z´W Kû㇊½•ŠŽÀ%Úéf]åù¾jœÝS&žÐ+ÑX¬5¨Å‚ѨG¥�ż÷ ?ï>]VÅ×ÙÔúÀå`(w§Ó³rX© Ûœ€øq‰¼¼ÈPl·ïl<i¶‰,—¯}êYî9@a‹ñ ¼¨+˜dÑ}–ƒˆ‘·U«^¨ù¼èà{ÍôºlbQ‰WOñ°ÿƒµlYàË/6þx÷^…rPZÈóD——)·g1ÔÉ×L§Ñà‡ÛŸ»ðX;­t6¤ÓõäŸ úJ$ç³Tå ‹•ñ£Û³’Cjhl¢=N€7nP¬*ˆ â·ªlö™Y›Ã)]4KWÞA`Ž ÊHí%<o�€Ñ]õ›„æ)róVA�F°×Â`7ò»¨cÐïÃØŠÝ£'_q,_ uøšÐQñû˜r ,6¡õÂØ`.ÎB1ÿ"âÈ|~ÿ~����IEND®B`‚IMAGE 233 ./arch/monster/humanoid/Dwarf/dwarf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒ R-ÿÿÿ¿¿¿���i*‹O���tRNS�@æØf���IDATxÚÕAà ݘÿÿ¸»Q/ë¶ROAÚÁ2u/àkþŸÀüIï^£X‹(LÎÂ‚Ž Ì³Ê¹@yì xò7·�Q¨KÀTsì’òc…¾Ð4°¡< ¯d´¢° Š^˜ODPŠ ¨ÏBõC¢Ý ~¼k¸Ž;ñ§§[‚àÓ����IEND®B`‚IMAGE 242 ./arch/monster/humanoid/Dwarf/dwarf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒÿÿÿ¿¿¿Í…?���¹µ ���tRNS�@æØf���ˆIDATxÚÕÑÁƒ0 PHüÿ<»�N“†%Òƒ¥Ëßx쿽OÐŽýZ °mÈÀ"Ñ­_ß`F?Äå” VéE=�@%€r`ê-'@”Æ“&ÄmÞÀbÍw`·?Wp>¤6ÊAgPüb= Á”`Œ0sîì4 /k¾(÷¾õè����IEND®B`‚IMAGE 275 ./arch/player/race/dwarf_p.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��� R-¿¿¿ÿÿÿ������������ R-¿¿¿ðæŒÿÿÿ®,���tRNS����Ôùu“ÊÌ���”IDATxÚåÑ Â0×VÝË™ÿÿ^—M¡ÐKÐ7(¤Ìdƒÿ£ë#}˜²÷F½Ï½†à2Ø1‚‹� ñ/ÑP9?*Xý˸i*ÊåA„\Ãe€I {A6 ¸°VŽ:À0~àê7¦'ŒdC ˜™Lón¨Å<îÀ$y@˜ù×¾ @1a¨m=q˜õ„Å/x¦ ¶6pk����IEND®B`‚IMAGE 262 ./arch/player/race/dwarf_p.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���¿¿¿ÿÿÿ��� R-¿¿¿ðæŒÿÿÿ<€ÿ���tRNS����³“fš���“IDATxÚåÍAƒ0 DѾm¸ÿ…k9,Àu×MŸ„‚4_‰þÏ‘ÔÏ«í8„ÊóuÏ�KLƒM#Ø4 $Šfnòçz 0¼­ì-ƒ[€À`‘c´Ç-ÕžX\ý+c7p©ÉN@Ð"‚syÛµ‰(H®¸Oëx¦Ïg`è{PZÐ_È#éÕ¹´+fá/}�ƒãã¿¥����IEND®B`‚IMAGE 224 ./arch/player/race/dwarf_p.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿðæŒÿÿÿú€r¿¿¿��� R-ï>fA���tRNS�@æØf���vIDATxÚåÏ1à DQÙ°ÝÿÄ‘ÕÉ™I‘¿€b_ö¾Î<Z�-0$ú=â'ÀŒÁyÛÚîÇ‘�±Û)„¥à¾OPˆXÖB[ òØ$©þáZX fX%|^¹•}ðG HÈÛ7xTƒ\ÿÐ…®÷Îc����IEND®B`‚IMAGE 220 ./arch/player/race/dwarf_p.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿðæŒÿÿÿú€r¿¿¿��� R-ï>fA���tRNS�@æØf���rIDATxÚåÏA C1 CAÿÚz¹ÿº Úº©à!Xõy+ˆ Èó¾tÓl’—pÒôy`i‹ck]�ÈÂmXuŸ–\‰¿_è ›tûuo13¬ØÃ‚ À§" )ƒ³£pf,2ª_ç Ètp#0‡¢����IEND®B`‚IMAGE 243 ./arch/player/race/dwarf_p.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿ��ú€rðæŒ R-ÿÿÿ¿¿¿���úsz���tRNS�@æØf���†IDATxÚåŽ11ïâÌÿ_œ” ì2MF²Af´øúCȦóŽ÷çÂÕ6F„€ &!Þ«V3G¨¼„šù)ÀYfdåÕ¬ZîÁ‚å˜=ÁËX Ӓ’°»":_A G%0 ˜€yƒÀ’­€ˆ­€móK€“ NB;¡&-bȸ_ƒŠŽ_O����IEND®B`‚IMAGE 246 ./arch/player/race/dwarf_p.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿ��ú€rðæŒ R-ÿÿÿ¿¿¿���úsz���tRNS�@æØf���‰IDATxÚåŽÁ !µº¾ùÿ/n ,…Õg=t@2Ä”?äÒ?á*D ;„ ,ì’^°ð{Àl,|xþMŸqC4Æ<+J÷¦<$Tج˜´™×M…÷aÅu þD€X¯0÷È‚ƒ0 â(8LŸSþ]©à,¯¸“´ÂÁxWiXüi²°����IEND®B`‚IMAGE 232 ./arch/player/race/dwarf_p.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿú€rÿ��ðæŒ R-ÿÿÿ¿¿¿���6sèi���tRNS�@æØf���{IDATxÚå’1Ã0-‘ÀþÿÅ£Î@é&[ÐÜêæ ]É7Ï$€ŸÌh¢ÏÉg2X¬0ûŠ;gÚù(H/ˆYݱSĪÊS,Haל|GE9’SàJ=5v” A\l¦P‚þ7p?ï'àR/8Ù0\ïò~¦šÁ׿����IEND®B`‚IMAGE 232 ./arch/player/race/dwarf_p.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿú€rÿ��ðæŒ R-ÿÿÿ¿¿¿���6sèi���tRNS�@æØf���{IDATxÚåÎ1Ã0 CQ%vÅÿ‡Q€N‚–�]ÊÁ Ÿ Å_æSÏ`ÄÜ;¼L úìàÕ÷�Q`õD%2³bû]î Nšó|H"ÏvÂTÀ =XÀ Øß ¢ÏNgp�õÒ�¤qñç)ž ¡Ñ5¨%6����IEND®B`‚IMAGE 211 ./arch/monster/humanoid/Dwarf/dwarf_pr.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?ú€rÿ��ÿÿÿ���õGø‚���tRNS�@æØf���lIDATxÚÕŽA€0µ”ùÿ“Õz)ÐÄ“Î=ì„ìñM`Ó÷Î¦Ï L€XàÄúÔðÉ 0ê ƒJ›Z€Z@„·êgí}�™}PÐá†ù%|$ì ó#aÞCkx¬Ìé–?âºþn»¸õ����IEND®B`‚IMAGE 215 ./arch/monster/humanoid/Dwarf/dwarf_pr.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?ú€rÿ��ÿÿÿ���õGø‚���tRNS�@æØf���pIDATxÚÕÐA !ÀDMýÿÉKÜÅÛÑkÒº¿6}k6 SÏxšûÄô@˜Árˆ‚ªn@Ý €Ñ\mÏy¹ U¯FògùÌ oÁ)Õ5èƒ�£Ëà:ö å JñŒÿ)¿Üt ` ����IEND®B`‚IMAGE 226 ./arch/monster/humanoid/Dwarf/dwarf_pr.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?ú€rÿ��ÿÿÿ���õGø‚���tRNS�@æØf���{IDATxÚÕ’Ë €0 kóÿŸlöH“«.b‘&¡8¾€²ß{CÕ+tоÚí’ ™8–¸†eÏ2l �èûG p2à+È}vp,(ÞÇ ÞóÜï’—;Uü”€ïÑÓº`”�sâï~ü)7¢eJ-Z����IEND®B`‚IMAGE 243 ./arch/player/stoned/dwarf_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿLLL£££ßßßeeeÿÿÿ¿¿¿���kÀRH���tRNS�@æØf���†IDATxÚåŽ11ïâÌÿ_œ” ì2MF²Af´øúCȦóŽ÷çÂÕ6F„€ &!Þ«V3G¨¼„šù)ÀYfdåÕ¬ZîÁ‚å˜=ÁËX Ӓ’°»":_A G%0 ˜€yƒÀ’­€ˆ­€móK€“ NB;¡&-bȸ_ƒŠŽ_O����IEND®B`‚IMAGE 205 ./arch/monster/humanoid/Dwarf/dwarf_wiz.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ²""ÿ�����®ìŠf���tRNS�@æØf���lIDATxÚÕQAÀ Ú€ÿ¿yÔÄ›¥×I"˜@lƒÏ/¡BòI¾€Ù'1ÀiØw4Z«è5êrˆÉFÑÖÓx™ MÇ„%TÓh¿¨¯‘+•Š©Ü$rÕ˜@H¶™ª&hs÷•[.ÚœDâ-å����IEND®B`‚IMAGE 201 ./arch/monster/humanoid/Dwarf/dwarf_wiz.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ²""ÿ�����®ìŠf���tRNS�@æØf���hIDATxÚÕA„@•ªÿ¿Y“‰^TúºË™¶Ÿ„ªM]kAè:d0ô™NœotÐ÷Vƒ~ÔÅ÷箢‹^Š ”ä}-/¨ßCìK¦OL{�Íhbiðâ2÷zþ xþ<h®¬����IEND®B`‚IMAGE 212 ./arch/monster/humanoid/Dwarf/dwarf_wiz.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ²""ÿ�����®ìŠf���tRNS�@æØf���sIDATxÚÕ’1À Ckø÷?sAž“ k†D èóI¨x3kx(/Õ¼™ÅÞ# ?”¨•E˜áÚDx·&úÈɉ¡q>2»áÑé̃M@“›Å.^Y·:LÕs"«ún+¬ô3¼ovKHÔù����IEND®B`‚IMAGE 365 ./arch/ground/new/earth.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEyH®yH™e0a<�‡/"ï��IDATx^@±NÂ@�}4g= ÃÝ©XL)…‰‰ƒОÒ:Xœ‹!™Á8BiLaƒè€h:ò LŽ ~áfÀ6~cè™­Â=Z+8åªp¿ßûˆc§>4¾óéõV\»Çýs·šA¤f{üõšb6ð:aÐqxX¡o]aÈ®‚¬œ‘-ymJ1Iuú ÕJØÎÌñPΧ0:ºÌþHŠl€ñ­^³Í^�ijõi¶3Ec“.„k³»‡,ôF9â‹ÊÕcG–‰f!Ò /Mï¬�¦–±L¹ Q’'Â04Ü©¦¼±Ø‘—¥?°.ª%>Ió%þ%šÏÙýþXøMÛ¡-Ûs\¤nx„þ3”HíÞPoå����IEND®B`‚IMAGE 330 ./arch/gods/items/earth_shield/earth_shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���uuu‰‰‰ªªªÎÎÎΙeîîî000™e0e0�eee��°ÜÆ)���tRNS�@æØf���ÔIDATxÚ½“Aà  86aÿÿßn Ä %ê­{ˆw¢¼þŒ<Ö%'µÖ°­U¥d#°EPD@bG–^­�牜ø$¢†[ßÌXÔT"Ü 7 q^ (Áãà‚“µ÷¹u ˆ⯠zæ‚ *c¹3f€ûUK™¶L¦ðP÷k˜c°ÛB3û˨]OµÀ“Éë,ÂÓJŒ³X{twÊý¸Õ&*@Ä(!!6q-¡ßÎïKIÄý~|ëýžÂ_?ÎóÖP¦•¤����IEND®B`‚IMAGE 330 ./arch/gods/items/earth_shield/earth_shield.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���‰‰‰uuuÎÎÎÎÛeªªªîîî000™”0ee�eee��…ú”���tRNS�@æØf���ÔIDATxÚ½“Á„ D˜ÿÿß-`#böf¦é¼ˆyÅÏË…QqQ´µlc‘”ƒØ"ÈI@dC–\4µ"D>‰ˆâ’7U¥…ÂhœBð8Øp²æ6×8±)Û«ðœuN8Ð ’F»³Ìr�æW4ÚÒ4…» ˜_5@ ƒÝIf·ÿH³]Òõäd¢v"x2yîÂ=­ÄØÅš cÝ1ôu‹NÀU�µÈ.Á1-¢ßÎû¥$b~¾åá^OáÀ¿çÝúÁþPy‰@����IEND®B`‚IMAGE 346 ./arch/gods/items/earth_shield/earth_shield.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���™”0‰‰‰uuu®óUªªªÎÎÎee�îîî000|¸'Rw�eee��¿‘#”���tRNS�@æØf���ÞIDATxÚ½“ÑÄ ¯ZÄýÿß=ŠR[soÇCcØIÔÁ~þ\µSˆÄ­5à5&Ê)°¯R&5ƒ!KNœ�„¨_EˆqË3J©8Jsà h(µ*@ 9ÏZ®Îšk_Àpbr‚Ô:Ï{×]vÂ^ <–+0KYÀüÇ ¶8Oá®æ— `Fãm‹Lsµ9d¦Í!å¸ôR6Q~MåÀÎä˜ÅÓ¤ckn�qÇ @) ž€«�¤$—à›˜Ñ_çóQ*b~/ß´y×S8ðëÇùo}^ÞÈEæ����IEND®B`‚IMAGE 342 ./arch/gods/items/earth_shield/earth_shield.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���‰‰‰uuuRw�ªªªÎÎÎ|ÿ'îîî000|Õ'A²�eee��hätì���tRNS�@æØf���ÝIDATxÚ½ÓKà Ðò‹ ÌýÏÛ‰ZI‰º«ÂOq4ן ³Û9DÑÞû–�"%%Øä" ²#·¾hZCˆ|’ˆ^º*RªÔ”ÀQ¸€ÎýJ Šv5;×~ªÜoP¤&6 d{•Àú�FAÊ\ÞÁ*‚U`ùŠÆÀ´´¬À= X¾j@ Ì݈"kµÿH‚µ¼ƒ:âÉłڑ<%9Ïb“¤‹`–a£Ä0Ž[t$=biôˆq;¿/¥Ž:ó–‡{½~ý8ÿ­7(XùÉÜ¿4����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/elec_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿ�Ú¥ ¿Ó>¦���tRNS�@æØf���~IDATxÚÍQ€0Å&½ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#naŸ?.gV"����IEND®B`‚IMAGE 222 ./arch/monster/dragon/Hatchlings/elec_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿ�Ú¥ ¿Ó>¦���tRNS�@æØf���€IDATxÚÍ‘Ñà YîÿÿykÝ%›lú\#âND„õ ð @àEÑÎõ×e ¸„ƒVÅ„{Cxݤ§ akp°5`¢;¯cœ“˜qá ¿‘FIh½á|“„Ù˜Aݺ8\mâ×èþ H˜ô™sÅKgAÜ.È¥ÖsòSUn0;¤����IEND®B`‚IMAGE 222 ./arch/monster/dragon/Hatchlings/elec_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿ�Ú¥ ¿Ó>¦���tRNS�@æØf���€IDATxÚÍQ€0Å&½ÿÍ“aˆþZbl5›ë7�>!hÕD> Ì´r·•€Û#/]¿ÀñáEñ0yhÇÌgõ¾ƒ!æL×5^ _c!îd=Ct<‹´å]·b÷q39mž…e°¿ŸölÕ ðB³À¶›cðáó&ÿÇ \Í?×zYC����IEND®B`‚IMAGE 218 ./arch/monster/dragon/Hatchlings/elec_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿ�Ú¥ ¿Ó>¦���tRNS�@æØf���|IDATxÚÍ’A€ +ûÿ?Û&P7à•• :SDB\e†¾¨wjy}«cHƒ73Ó‰=L Ý¬³ýñ.ùè«ÁÏ­ ßï·½AÛ, ðL(ksAdÆç{¬R« lË»YÂ~nc8)¤™àçúº¼%O_O帣����IEND®B`‚IMAGE 159 ./arch/monster/elemental/elem_air.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿú‰ƒa���tRNS�@æØf���DIDATxÚíÏ1À0ÅP“û:Ò:œ-ú&ŒàwÁŠ ^Õ£- ZãyOD~ð+ؾ>ÁA� 0³�…X|Õò�zÄß Â����IEND®B`‚IMAGE 156 ./arch/monster/elemental/elem_air.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿú‰ƒa���tRNS�@æØf���AIDATxÚíÐ1 � Åд÷?´u“fpÐÁ nÿQäw£œÕ»/ªŽ`í[CÎà” ]@ô3é’=¶wŒàÁêz�w:Èæ•����IEND®B`‚IMAGE 192 ./arch/monster/elemental/elem_earth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒîv�G���tRNS�@æØf���eIDATxÚÍA�!  ÿôˆlÒr•C#0ÆzO$¸÷䀨JàZ7Â.dh€Ü¼0 Ð4@Δ5À%ooly50é ¦žSŸš‰'`F:›n¹¢¡„g2ÏèÌvbJtÛ«����IEND®B`‚IMAGE 193 ./arch/monster/elemental/elem_earth.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒîv�G���tRNS�@æØf���fIDATxÚÍ1À0íûÿ£;  Éj@Ýâ! wÐ}3sØ&Þƒ@ K\‡€ˆ˜lw£*Ùnü–8';:Äÿ Ò™K”–fèl|ýAGÁ›€–4ÔË7ï»À.Ü”ÅTAqìd����IEND®B`‚IMAGE 242 ./arch/monster/elemental/elem_fire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vîv�ÿÿ�ÿ×�ÿ��A”Ó���tRNS�@æØf���‘IDATx^½ŽÁ Ã@yPÂupn 1àÛ鿦Éæò”Ÿ ûg¼J~ƒjùU2üi¤™“OÏ2Ü{ÅÓ!Kð ‰m`p*Xغ D€ëî‡q¦û 8j.è/†t)}wˆà¤AÄÐTƒ%¦[¨DÚ& Æl྇¤º¬C¬‹È Êà½A­¼Úø=pØ$“§‚d����IEND®B`‚IMAGE 259 ./arch/monster/elemental/elem_fire.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿÿ�îv�ÿ×�ÿ��mŸö™���tRNS�@æØf���¢IDATx^­ÍÁuÃ0 ƒa8Aë âb�Zø÷Ÿ©N#Ù 8èð=lß PëY‰‚Ó–RQ/ÐÞ°*ÛÎ ³2†9*º*¦WÀV«ó냋$Ÿ�²óô˜´7ÀCsS¶ÃÉ»b¶u>¤—ݰ»§1?ÿ@b¶*XW%0íŠwÔ‚0Fº`H\¤Ù{Ýà”¸!l#WûRþ�Ý-.m�¬����IEND®B`‚IMAGE 265 ./arch/monster/elemental/elem_water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿ�îî��€ÿju�G���tRNS�@æØf���¢IDATxÚÍA Ä0 ÄÒÄÒÿŸ¼Ô˜e»‰ïL.ãñ–¬1¨tF€­…÷“üÚœ¢˜æS˜ð°Â߆±Æ I#6cÎj¢µI.~kÎQ†•­ÌZß6%XÂÖ7'@T Âö€9@4Wbm34Bâè— ^§L~€Ðq°ÀÕ„ãþ\Ðñ#L'þ0YX<8 B>ã=ù�D_a¿€N����IEND®B`‚IMAGE 252 ./arch/monster/elemental/elem_water.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VðæŒ�ÿÿ��ÿ�îîÿ��€Åb ¸���tRNS�@æØf���•IDATx^­ÏÁ à DQN”RØ0sF²ç÷_B)1äžáöÄìjËÿRV@’`ÜBå†ÈÏëÙØŒÑl º­Í7”ªw4;5³@‹Ì Èn�3¡¶ æ Ÿ54ÎÍà8 Ö„#2é_´ìF_¨—E»$—ynvõå:!ý€Q”"+ˆ Éîu(\®2å!"•¿ä¨ïEa(!þÝ����IEND®B`‚IMAGE 306 ./arch/player/race/elf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€°`÷���tRNS�@æØf���¼IDATxڭѪƒ0 FᤧÿEÛ÷ßÛeà’Á`Äö|TDûr€Ï}N§HW_CÚn�Û ˆG'ëf»ÏFˆ�s_ä' æ!Mi§‹¿ƒ.)¨÷Õv—20XIù Œqruo8LjÎÝ}-žàŒ­�n«ç+öŽ«5É|¼ƒû!†s`–‰è¼�»¯›éï 6° È­�!¢aH…ˆ.¬<Â^ ­qA  ¶Ak-íH\Ï�U‚Ò~8ÿò’Ѥð®����IEND®B`‚IMAGE 304 ./arch/player/race/elf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€°`÷���tRNS�@æØf���ºIDATxÚµ“±à ÁÇ«üÿÿ6vD‡Ö¤êÐËà(w2,)?Üû9+·Þa#W@¼}úŽžT÷¤A ?Í=‰÷ ÜÀìÒDžàâÑi’ ½b¨&‡tAk ¤ÁXž‘]1Öú:Þü1NÔhõÈÿH•™ä’#ˆéÔô×ȃU„ç (Û@xPJ^ÐU ’iP¥Sݬ ‹6݃((¯ÀÌJŠ×›@å߃�ö?æxMDŸ¢}'G����IEND®B`‚IMAGE 317 ./arch/player/race/elf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€ªªªÌÌÌ+[‚ö���tRNS�@æØf���ÁIDATxÚ­ÑÑ Ã DÑŽ£AwéÿÿnǬ…Ò¬¥”îƒAî!sûûüÜÝŸºa ™";ÓîtãPnš¨³8ÌîJ‰`¼ à"Xkm0´Æ¨óèꕹ�$u³ Ð ÑëØu€¯}X£@=07#äyPÌ]|âZ+šØ'gì½3í¶@ßý­9½ z"TcÉÁ™bÕóPTÂ1ë¥,€´ÏkzÂ`�Á¼X2¿§7º› _Îhޏ™ƒÄ³����IEND®B`‚IMAGE 320 ./arch/player/race/elf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€ªªªÌÌÌ+[‚ö���tRNS�@æØf���ÄIDATxÚ­jÆ ›žŠ~aïÿº ‘ŸÁ ƒÅ’4ÞÅëßxçîno\ön w‰ü}Âø)0yppsIµ@,n7é+Èy‚± ¨ h­u“õN%\ŒÆ Þ ÌÂÁ¥^H¶y[ÒS`©‡ÜŒ0(¡ ËFLxÀh–Ýú-\hÑû‘Õ%C`·—Ú¤⟹=; AÉ”¼ØÖË€Ï2Ûá„{ß?_¢àI²ô,Õ Avå$°kmüì¥ûo{UÇ•Z÷W����IEND®B`‚IMAGE 330 ./arch/player/race/elf.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€°`÷���tRNS�@æØf���ÔIDATxÚ­“Ñ 1 ]¶=šôÿÿ×M8ï¡Í Ž Ú·"øú3~ Þkya9ÂUÆÃ9ÝÌ\’£*à‡|ÅÂ4œ`[Àœtº‡)ïH4”A €Ö;{@ó,ÞU`)b¼MŸoÌBÁ2`léõÎø ¼(qL†ï| ÄÀú`NœçK Â4À1ú@ùCÁ=ñô3 žt7å#Aˆt`qÁŽÔ ²,ê@æ * Ã/s(»»E9ñ9g,¼Žq½béÉkëîoù oTä^Äÿr¢����IEND®B`‚IMAGE 325 ./arch/player/race/elf.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€°`÷���tRNS�@æØf���ÏIDATxÚ­“ÑŽ… Cm †)ÿÿ¿[˜û$£O[”œc‰®O>¾cs'È ®KœŠÑóÒ€aóÁªa†ÎJ0Çœ%¬Ù@ù…4÷P¯mh½×‚´ š‹§ÀØîæ÷eƒR°m¾±Ük~ßt]#x æ.ðŒ¡g `N`OñÜ (\À1z’BP äÜkl¡×B‹æPý gõü# —Ó‚o¯¯€ëu…ÞÎ~"KÞ{OÁAÍÉ|røuêx§[ó:€T°ƒ£����IEND®B`‚IMAGE 319 ./arch/player/race/elf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€ªªªÌÌÌ+[‚ö���tRNS�@æØf���ÃIDATxÚ­ÑªÄ DkƈŽÜÿÿÝÔ]¸l ±Í9N × ÀG^æœøÂ K.€œc ÅÀ|‰8HŽ©¹ñ'>-5�ê)éŽZ†»Wàȇ„ÖƒW9#B¼<1 Þ*˜U÷UIB't_¼\Îq2¢j K�°eônfxÄ÷f¬™:ï×HØ# Õƒî\å!>Žh‹&ÂWϸÐÒò�ÜžåBœfgázód‡ù-Ohþ(gþÙ_€À¿êmÛrW}GQ����IEND®B`‚IMAGE 306 ./arch/player/race/elf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ 3��"""�Y�af™�www™fÌ™�Ô­†ÿÿ€ªªªÌÌÌ+[‚ö���tRNS�@æØf���¶IDATxÚ­’Aà ƒØêÿ¿[çTaªJõ@fX°Äõç޼˜_xÑ’ ¨Úœœôpž ÓJÎ/^‹[Í[DbdBëLid¼õ>œï ¦‹w”¤Gçý(ˆ¬– ßßšèÜ °è2ø£ÖÊ#àë#þÁÐ{ºyP½ñî‘ š¼«àOt"¡ñq_Þ¥k¹ 5‚êž#‚VPÆ…ÚŸÁÓ_ 1©(G®Ÿê P»ÒúDú����IEND®B`‚IMAGE 319 ./arch/monster/humanoid/Elf/elf_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ3��"""�Y�af™�™fÌ™�Ô­†ÿÿ€ÌÌÌ {™TÉ���tRNS�@æØf���ÉIDATxÚ­ÑŽ„0 ÁMKrþÿÿ=·Ë®VmŠîá ‡U(Ç¿À3>qç³pǨ+ÔÇаp ®¤úuÝDö'äPJ1:Ͱ j•ÑÄ ¤Œ*în‰w¾x¹Ü·‚8‰nÌ‚>$”Ê1¸LzjᘮT0;•1"ù‡KZ»A"ø-ˆä‹êi&™  Cô'®Üh+ˆØ-´ýã½Îöx¨,ÑŠð.G˜½Û ˜ÚÌ S]÷øÕ¿æo~32ð"Š����IEND®B`‚IMAGE 310 ./arch/monster/humanoid/Elf/elf_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ"""�Y�af™�™fÌ™�Ô­†ÿÿ€ ´b½���tRNS�@æØf���ÆIDATxÚ­ÓÁƒ0 й%Ióÿ?<§ä2ärš‘€Ê!ñùsÀ¼ö‹ÙB2`ípì)PG`E¸G%"#ÙŸ&,†•ÉÝ ¤ *`4•Ì1§ðØì# @Æ5øüØ=<c÷Naþ#î±ì¯ Å]öPK(€Ì\+³Öê%`6-õ—DS  Á, û&V$`w žNÌX¼ƒì9$4P=ûŸÓ}…À ˜Týœó“쾕 røCßó4ÉBÏðÆx����IEND®B`‚IMAGE 314 ./arch/monster/humanoid/Elf/elf_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ3��"""�Y�af™�™fÌ™�Ô­†ÿÿ€ÌÌÌ {™TÉ���tRNS�@æØf���ÄIDATxÚ­‘Ñà Eç•êuþÿÿîbט,Ðía$%È9BÚ>þ�nùcà Ÿœ¹�rôŽK�ó%â Ù‡VäÆS|”Ô�¨g¦;j=Ðͬ!ïŽæ¼"ä„ ñd`x×ùQÁDh¨º¯H&4B÷ÅçÃØ#C¡%.@BðkÑZ+¥à-ÀÏÆêyæ*÷„=â¤ò¦›+LÀÇ`€K‹&ÂÊ)?K 8_ow'\Ÿ#ÜQÊÙ‡ŠX°K°pÔÞUÈ·PìRõÏñZiš!a����IEND®B`‚IMAGE 301 ./arch/monster/humanoid/Elf/elf_guard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ"""awww™fÌ™�Ô­†ÿ@@ªªªÌÌÌ ê[D@���tRNS�@æØf���ºIDATxÚ}ÐÑ„ DQnµóÿ¼6$šÊð™“(Ï@Ù†ëbØZ¿ú9£·võœoA!¸Wo˜‚VU•æªw¢J… ( @Ž~/©™¥‚Ö‡Àìè"!î¾Q+o€Wgöü§ó�ñ<fÜsýAÉ�’â%ýªcðõ“, DX í'™Ñ�mì&S ð”°%YÀ7ØŒÀÌ´v¤=ì�Œ>»Å>?Úõ¼NXH����IEND®B`‚IMAGE 310 ./arch/monster/humanoid/Elf/elf_guard.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ3��"""awww™fÌ™�Ô­†ÿ@@ªªªÌÌÌ )Ës���tRNS�@æØf���ÀIDATxÚÑŽÅ u¤e‘ÿÿß‹¶›n4›{úPËŒ@Zþð² ?ß À¶ƒ[—áfalf *b,q¨kŽªJ÷²1ú)õ  €; n"œ­µ)±x2~*TIÿ=¸_ó¾­:JÜî¥é™#ÁÍ —�¼zG­•[`|¿Œ«Æ˜ó” @uât‰™^ “.„²ãÀ÷Âý®%K­WZBûZ#áDù9¥ü2àµî?ó¶: ÅÌ‚Ï����IEND®B`‚IMAGE 307 ./arch/monster/humanoid/Elf/elf_guard.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ3��"""awww™fÌ™�Ô­†ÿ@@ªªªÌÌÌ )Ës���tRNS�@æØf���½IDATxÚЄ DÑú‹Téýï»l7D£…옘’yTdŽã`-`)(­¬�í<[ñ8ÏbFŒï2@1°óêù3KAôhÈìÔê@. ´¢n®J¤÷ýÙ{ß ¢÷Å5˜ùèÍ& zwjO@5å·?Ö�ñ%«šÕ­'–$w¨ÀØ—� "ÿQW˜ŠÑg`¼À ,™‚íIÀ¶1I‚ê�:\SÚ_ �Üfù7•n[”Á����IEND®B`‚IMAGE 343 ./arch/monster/humanoid/Elf/elf_lass.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ?#c1�„B��„��¥��Æ��ç�ÎŒs祄÷ÆJÿµ”ÿÖ­ÿçc�c�iWØX���tRNS�@æØf���ØIDATxÚ­’QnÄ ™Ml°Üÿ¸Åm·?1©TÕŠ’=Hùç"ê‰Ï(žøÝ'{aôÞmŸíj¾ÍÀmØô•An`ÝpV†“a* &É ÔZUÑõˆ‰°ÐU唳y0PQ¹>ùÀá&"Uå<¯fËpn¼ ‹ËÍnw‚… +ÿE¼ÜGˆO/Áw^ÒA«F 9JÙ‚ÿD$‡P˜_BõôbÍZuxø£°½�ÚV`ôÂ2þ*/aü";~öSÒûÁ[LÞ�6 9ø�;³K‡¥à����IEND®B`‚IMAGE 336 ./arch/monster/humanoid/Elf/elf_lass.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ?#c1�„B��„��¥��Æ��ç�ÎŒs祄÷ÆJÿµ”ÿÖ­ÿçc�c�iWØX���tRNS�@æØf���ÑIDATxÚ­ÒKŠ€0EѾšJ™Ÿû_n¿Â&u!ˆÞCbÀŸÿbv}İé­õ¾ ‘@½–Ür_ôª^Ki­0ïʃ.�óíàpáyAÈžÍnÝÜ™ô –Ìo±)¨ô+ÄmÙ2³“P.R²ìf”Þ™ô&aèaŠÂ‘,eµxÞõ8#}¿‚X 6Ð)ø‚ºÌ⌫¯P1ÕüƒÙ!4î>Ô`õGÖÍ?Go„bÙpµÎ ¨lAk*!V€Se³AnΓN/ܼàñˆ›È|V����IEND®B`‚IMAGE 360 ./arch/armour/mail/elven_robe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÎ4Ι�ÿÎ�Îe(eÿ0Ι0™e��â��U��ª��e��‰�7äi9���tRNS�@æØf���ìIDATxÚµÑÛ®Â0 Dѽ¤v&ÿÿ»gÇ¡Q\‰F*H…Û˜¿¥¤÷#’»¿PÕu]îgY@;Ý+A¸+À<ý‚pÍ •“Ä/é̦>€¤ñlÉÌW�s/zFDßo-è¨Qñ1ƒŠ�º«H!ž€5ëlK¨âÍŒlœ±‚ hfå´msî÷÷ÀºØ—t¸T'AQö½õo€×YÄæ�F_Ýöb6\&€F@²Ã(€9�‘î @ güµBdÀb Â3@ÿä @R`´ž'0z’-ÂzÚÝç`jWq×ßçzÙ¸Uîƒ����IEND®B`‚IMAGE 256 ./arch/armour/boots/elvenboots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��� �� 00����eÎ0� ��e�0™0ªh°`���tRNS�@æØf���“IDATxÚå‘A!CHîâjpfôm6AýäÁsü™âºÝê»K\.U"H')€K¨@Þc»w€Àr•'@&° S¾RŸ{bé—<F pl’ä}Âà[ O0j8%v¾›ï0Ý­î*˜uXíW€�E” C.ˆ@ó¡öÈZ!Q·œ*‡Ò\T)ùjW_����IEND®B`‚IMAGE 241 ./arch/jewel/emerald.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ�™��e��î�0ÿ0ÎÿÎ0Î�Ù$§���tRNS�@æØf���‡IDATxÚåÐAƒ0 CQ$ëþ7†ªÖ·'à¯üH<oLŸŽYÞ µÀ)@߇ Nàï,„ó7ØU€L ÔË"@膨}Ö Z�`@Žhá³IŠ€è´ œïƒP"w-(ežµ{ßzoŠÄ˜¬^›€ÿÈ3ÑùϧH$$ý')d6ÀKº�—°Û1¨Qù����IEND®B`‚IMAGE 241 ./arch/jewel/emerald.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���žbÿ2€ÿ€�e�ÿÿÿdÿdPŽO ���tRNS�@æØf���‡IDATxÚåÐAƒ0 CQä(èþ7†ªÖ·'à¯üH<oLŸŽYÞ µÀ)@߇ Nàï,„ó7ØU€L ÔË"@膨}Ö Z�`@Žhá³IŠ€è´ œïƒP"w-(ežµ{ßzoŠÄ˜¬^›€ÿÈ3ÑùϧH$$ý')d6ÀKº�²Šðk¤Y����IEND®B`‚IMAGE 897 ./arch/monster/misc/Ent/ent.x11 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿÿÿ d$b2f22BBBm2‚„ÂB¦BBþBžb2Ö¦rÎþÎT¾G®���tRNS�@æØf��ÿIDATxÚÅ•ívã C+ì­Vïÿ¶;£ÄqK’þX¦¡€.‚ÁîÇ…º‘këæ?êúèJþiYÞLnžÔ ±O0·ËgO«ÝSAùE8 €YߘHþà–ç@(“[Zƒì“˜¹‘ëÕmB™&ÿÜ€ˆjºL‘«¯“Ò?;`¬À²Œµhl)¥\”ƒÓ€fü,µÕ °àÀˆ»"r ö«µ±F˜B@tUC„óúÖ© B ÖH3ƒêjœ2øP @gå(úxSÜxçÏ:#à-+üz v�´Mýj#è~¶°ï¶J3Û#@a[ŠÏnÀ¹ÚŸ‘KôÌ€ø˜€ÃPk:¬ïœÂƒ®Ê Q“ @p „K�†A=_4¯ËŒÓ!FaÂÉ–»&´é›åZ$_»�ÊùO�#hÿœóØP<ÕðµÌ8ߣ½Ö¼µ[†a '_ý“�¡Ë‹×Hp°rõÜ�/f§DhŸ¬.¦;ž±?ß¿K!æ–z�86Ú}3z…7H�\�·‡Ž·ª�Ö8�äèºþϯÆK€N`M{­jt´2@*}Bî€!½¤µµ.€þ�¸šé€û¤øk‚~S›7ìνŒ¼èV8À¿UÔ @àìNþÊ ¬�÷§1¤I Ißäºõ@|_µLM&t‚6#˜NUȸ8™¢æjP Óé  xÖ‰Xa +Lj½Ï0†xð·Ì»"ÏÁÏý.Üg sÚñœC„䀃Cwê ÕVsÅD'žÆvÄ]{¼hý·„x+ëÌÿ �~h@߯-˜~¨¿è2¿  ™�0¼y‘/ßøïüž?Ïð­M°6é}€› ¯úë^ /úÚ€¯3ÉZ�ò¥J°îÑs}ª=â9¿{� x:·“'¸@<[|˜Ô"LT g € ä�G±7( Á¤�O ©Nîÿ?“eDš˜è����IEND®B`‚IMAGE 906 ./arch/monster/misc/Ent/ent.x12 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿÿÿ cb2f22Bb2‚‚ÂþB¦BBþBžb2Ö¦rÎþΈŠr���tRNS�@æØf��IDATxÚ¥–‹v¤ DSâ*Yaëÿÿv›êÜhÖ1S'ATêöfÎ|\ˆdÎ0i@»ó2?n%ÿ’ó¶ediAâ+î¦ðºèsƒŠpë—Ž�Ч °ü;<ƒ`¦µBöÅÉä·Ñ`ê� &P�QM—YôèyhZÖm#J¶m.“ÞmÛe7{ôé�XÀmû5•2¨2�gèéNBèÏW¥ZçâÅL X²#´çøöÞö†‘Í�¥x6«ù'­;(›^ø”Þ‹½,Å\º< þ럘gˆ€uïeìIL�¶[-ý]+`W¢º]65f%dÕJÂÞ¦šÒÔV×èÐ.Z’y>sþìð3�H)•HUОEïÑœkm)n›�.H¥°/ßÎä~Ï[‹ZŠP`ñ"$ÔÉs�=ŸH^k-±ê€Ë?�Kä`ªkT-#Éä;”j)€äïâa¯‰´u±¹UVÎsù•}¬º�”¤ÇÝíÀlþHú’#”Ôˆ?DWdB3–&R’Ý‘â_( &Ê�À–8Àý×BÛáÈ@’¿×z÷µ(€fƒ@ ÞÞù£’˜ àŒ·t�ðÜò{Tt„!Oë\J5ᮈ�£4™U�ÜðǤ¹º{›¿ ]µ‘©ÔP¹vCê•V4�m0]‰×þ`Cõ[4î%P±�ø~×Ô“’ù]è„ïú^JdQ"šì»’jÀEõº% ’®_Ž#€Ôs s|J©è~b¬ÀðéØgH„äN ïb=ÐÂrjü—;ÆÂŠ�nôñ¥O 3þzËpg©ðX«š©ž?×û€ØÞô€õ=�â@™ø@„Ÿg ÃüS�Íü�ˆƒæ¼ÕûÇOüR�žX¾�¼~Hˆîk¤¸ý�µ‘D›ÍxÝ‘M>2=Ù ìæ�A9<¨~Ä•ðr4{øî�/æ@䑯\€Û#Í£”Bä.¾Š ð@dPžzökì/÷@!VÕÃn����IEND®B`‚IMAGE 926 ./arch/monster/misc/Ent/ent.x13 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿÿÿ2bf2b2Br‚Âb¦B¦BBþBžb2Ö¦rÎþÎ3y«¶���tRNS�@æØf��IDATxÚ¥”‹vã DwSgkÈüÿß.£‡±iÓxç4 ͕؞ŠäºntÝïý#1t޽îï€M>iÅ}èÁò­&9S9µuõˆŸüÃ¥Q ApÀú Áö{´é¿¥›V´†ÕF *¿éœÿ»KÊ Ôh$¨f„g_"sj @%¶­Ö›§°XÎ~Å?|ÞºÕ�ˆM&`öIÐL­Öª_´æÍä‘°·ÖïEcôoAZ@€±¶Iç´d ö“ë€e¹`#‹»Ÿ y÷œ<ü(ßiÅyFm &,ô«UK6ïÀÁ„u%�[ãX[[,Û:[÷cYmæ •@�’ @ü(EGfUh. Ÿåƒ¹?—�0´•¨@øÍs@)e=�š’DIØ‚ FË“Éò”’MìVâ¦Ñ¸Îà´¦CÕ¨ZV~”¿:àe�€Ó9=Š‚¨hÔ-Ô meá}qÝÔ=:?Ò3@IÖRèvËNxUOß%ñ:jú6¨jCxPˆç�RÂÔG5�ýC › Ô„È®ÚiHa �VcfQ�Øh€QiÇ 0¦ZDÈMð¸ è¨ñÔ˜Ö�¥àÔÖŽø¸·®›�”#�PÔØ\8 ’YŒ�{0-jäÏ&,° "§föK±=èЀœTº�4껢ûCŠ­&@¸AˆN;‚ô ø ü1+MwÀ È�Ë_àé €Dd™5åóÝïRˆf‚Q¨?ùÅÚ %0j˜A!æ‰Ää/"Cø¬†ÓUõÀÐÃãOÂKím¡�'ÀŸœskíæ¼¯´ÃŽþ‚ˆ¨¡^ò-xϯWp §ï¿�,ö”–«�ª¿’¯ª�F¸ð‡Ú¯2/�¸ª�×+¿’Zà€b€Âkg0ÞoûOoƒw ôüyƒ·�u¼Q)kòV k*¢¼“ß<�ðûHFæÃî à%»úIÆö…€à Â+�#Šap@Lþªie| ÿ\|/óª7wô"ù?È1E ´o.m����IEND®B`‚IMAGE 644 ./arch/ground/Wood/evergreens.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���1�A��R��Z��o��„��Œ� ��˜��¥��È�F ƒ�nlU Gó=��IDATxÚ5Q ²$!“ðU[ûþ·ÝÐó¶Ç²Æ ±×ß·~ró¼Îkì~öÙQÞÈ›¼f±&õwà?vÌGª+¼+¯>9qüA4¶Q÷<5wW ô/žé 4wO¬ðG>㋯4 ]E½U@3%-sü”ÇbÌʸ 0ÝÄ[QŽV0Yñ†^|åŠá~UÇ×z°þ|wÚ5À¦×Šç²úAÍÕãUUà€¸f"ýÛƒ`8!ËïTÓ1ߘܛ2ÝB¾¨ù‘‡T¯€bÛ]gÍTDEhˆÔÐ_ S=nž–`þ:;]5–éÁÁ½ö0í¬°™¢Ç¤ söd´¤QZ0ØâÔßtÿZ,E—¦@Hrr0”Æ›|^dl}ŽUP½™ ~á,%¶W·x×Õ`Š¿CÓ­ÊíÚϺŸY x0;sï áN\…èÿMr¸1…ÁÀ~»E æ ´<u²73"¢ L¾j`çØ‘ª2£S Xô¶QDˆ³…“Æ%üÕ;ç)ãMˆs˜ÂD^_ðis¦¬eö˜fô*„ºÁýt”º¹êîZ¸Ú˜àš˜rՀؠ™ràŒèƒ 5Dzý¬@ *n@ 2_#ðV‘M‚C @Ħ1óyßi¯ÇêE9G#âÎ8á\I¾3²{ß®gÕ¹g¶s |Wòú_¾–S�����IEND®B`‚IMAGE 489 ./arch/ground/Wood/evergreens_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ$ >@�^�$Ur œ�TR5gre‡Š†��`+¸���tRNS�@æØf��sIDATxÚ…“KrÃ@D=Àð½ÿ}Ó Œ¢(‹ /„ûÑÕ†òçQùù§øApü‘s“ßÍ&þ¸êϘ*èW…©"ñþ"Ò· q^¬›ÕoÂEE8‡%2zETA{š%]ë)‡ZëE; ›Ù·¼U``by^ºTÉÎÛ€Eƈgª?R ÚA@xà"<„¦cŒ1/“+˜Ž 0áËV¼ƒ ³"%ßÒ_B”6_Ÿ8Hd<kbð1\yÖé ½Ãì�T~Ÿ/Øár™™ ž·œ[}²zd-éËP<tîMŸféìšäApoÒ/–ÕÆ Šob[C0“uÆ:¿"œMøžpéª8›¤1�0¼šâ HÔ™Šst13)B(ÏÖs÷ú›)†¼tö$£t¹F<3ƒ¡S?¨vH ‘Ñ„`ÏÐ Úü¹Uó`ý^‹ö}«ˆµÖfºÏ뫹™?÷©ò´àßÿìsºw}jŠ w:r����IEND®B`‚IMAGE 391 ./arch/monster/demon/evil_master.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE�����uUUUÿÎ�™™™ªªªÎ™�‰‰‰ ��¾ÞÞÞe0�ºººÿ��e��ÿ�0,Mv ���tRNS�@æØf��IDATx^}Ž ŽÃ D›Úݽÿiw삈h’1¢À{š4ìAx ^ñ…gŸ”ÿb,÷@{7ÜóŠßê½ðF‚R¸7r}âZkWBåì |[çžqæ¬ÿÆ©ö{8Žqæ,ãpN [ãvn `–X€ÏõÜàm44¸D>ã~ãžùå̶æÎVIUåžçaàe8O9¹±ó�é€Ô¤|q‘ ®$Ò7} ¶é.w«¨KvÒ¥ÌÅ›`û�K«:‡š~®@ФU]` &„,�1T°‰˜…Ôt¥¡TøF§¬ •˜RÀzÝ‚@Áð³|ÊàÙùžp•+þ8Õ &Ïin����IEND®B`‚IMAGE 402 ./arch/monster/demon/evil_master.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE���‰‰‰UUU��uªªª ÿÎ�™™™Î™���¾ÞÞÞººº���e0�‰��ÿ�0ÿe�|á‘���tRNS��v“Í8��IDATx^} rà DÝ•ÄßIÛû¶‹Œ‡ µ½ÊÐ{³ÞÖ`{ Þégœž””~R*÷@Ü#î¹àû—¹vd(ä¡"ȧc¼„³6p798ÎÈÜ ¾s¤ÿ·†ÖÆ3æœý7^Ÿ ÈÑ/,Àñülpˆ8"\"?ã~äøå�‘èÎf‰¨ò çeài8Ï!»±ò V)�¬0üãf‚1’Íêb š‘8†è*S09ÄVV­¼F_†å,%wC‰9˜¼s•—ŠºÀœ<²�ÈŠ UúÂ΂BÚu¥¡T¸£Sf†JLiÃÜ.ù"Ó~\0ôeð¬|Ív•+þôë Orô`����IEND®B`‚IMAGE 391 ./arch/monster/demon/evil_master2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���000UUUÿÎ�™™™DDDªªªÎ™�‰‰‰ ÞÞÞe0�ºººÿ��e��ÿ�0Oï¨���tRNS�@æØf��IDATx^}Ž ŽÃ D›Úݽÿiw삈h’1¢À{š4ìAx ^ñ…gŸÔÿb¬÷@wÜó†ßÚ½ðF‚R¸7J{âzïWBãì |[çžqæ¬ÿÆiö{8Žqæ,ãpN [ãvn `–X€ÏõÜà}4t¸D>ã~ç^øå¶îÎVISå^æaàe8O%¹±ó�É€´¤|q‘®$’7y ¶é.g«hKv’%ÌÅ›`û�K›:‡š~®@ФM]`*&„,�1T°‰˜•Ôt¥¡TøF§® •˜RÀzÝ‚@Áð³|ÊàÙùžp•+þÍ| >÷+Ï����IEND®B`‚IMAGE 395 ./arch/monster/demon/evil_master2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���‰‰‰UUU™™™ºººDDDªªªÞÞÞ000 ÿÎ�Ι����e0�ÿ�0ÿ��e��ÎLç{���tRNS�@æØf��IDATx^}érÄ0ƒ-ðydÛ¾ÿËV0{$Ù8òlô¡Áá,„[á1¸·Ç‚9ÆÏsôÔ±ö¿<5¡ÖD÷×@ïý¸O¸ ëkE­iA= ÂŠ,|Gˆ µ{‚Wã Ç k:,ËYKî¢$ ÀÚSý¬"ë}Ä‚ðΛð«dk#’ŒÊ§Ï¼w„´Ö~XbkÙnû/æ= Ž_E&ÐÌÛœiF€–=tãø«áà#¢p_ ØG`Ò·ETQ¨ù"0¬‘ý QUÀmà0é®QÕ(öÈÌOžè¦È»{‚5øÊ3yñë³Â•®üz9ƒjësÌ����IEND®B`‚IMAGE 398 ./arch/monster/demon/evil_master3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���e�eUUU‰‰‰™0™ªªª ™™™ÿÎ�Ι�ÞÞÞe0�ºººÿ��ÿ�0e��O-O¾±SÓ���tRNS�@æØf��IDATx^} rÄ C‘m~Éî¶½ÿe+»d’’Ì€±Þ(Ò,¤GáÕ_x¶û‚¥÷¯Þ—û  ¾+î}Ã÷‡»ÞhPØCD±'Ÿ@­õ 0Öœ0fcΊ34zÖþo,ós]±®£gíÄ>mø·c§¼a�þ®Ç„0QGBE@ô7_¹~¹À¬Fæÿ€©r/£9½†…ß J böä‡�Ð�k ÁÉ1Dq5‘<Èà›ž�db†±d& Y2mñ&˜>ÀPÓð¡Ž#°ˆESÓ�¨e#Ð}ÚhPUÀÒ±,tWJ„32ËÑÑ&”°O'!pûÊsÅí‰À¬t¥+ÿYŸ˜\–ŒD����IEND®B`‚IMAGE 419 ./arch/monster/demon/evil_master3.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE��� ™™™‰‰‰UUUe�eªªªººº™0™ÞÞÞΙ�ÿÎ�ÿÿ�e0�ÿ]�uuu–��ÿ�0i$6 ���tRNS�@æØf��IDATx^}‹n«0=»ë¾þÿc»Gjz©¯•Šˆg4ˆ²Žòr¼]o¼Æ×^qsOá¼®¯ë:Ùðn&Æ6pÝJðùž± *§›Â‡yšAñ‚™±йÿ)D¹‰îÖõh ÄŸ”ŒÎ8Žc$ ƒ¸ †%F÷!ýÞæN 2 –‚ ÷öS0$±ò¦ŒN„ EÊ"ÔÐ!ôÀ‚ ÌäÞéŽ ñ% Â+ÿxk®Â[›‹Á| rª„…O%‚Ÿ»­m¶ù‹ƒü×X^ѨˆS¥ßœMB£â5- ¹“'è`BbœZ+è =xÎ Òk5•ŒÂ<ÿ%DµÄ)~O×QRÞ1M„‚ÆÊוÝvü�0Šô4]����IEND®B`‚IMAGE 393 ./arch/monster/demon/evil_master4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���ÿ�0ÿ��e0�ªªªÎ™� ÿÎ�™™™ººº‰��ÞÞÞUUUe��‰‰‰g���tRNS�@æØf��IDATxÚ}“ ŽÃ D³-¿›¹ÿm;ö‚HƒˆÀxž'Q¤÷Àñxç7žåü„ æü—sÄÞé“°×ôÅDÛ=šë{ ¥D`˜7ïÍA¦Ÿ½fÎwc6;ÏçÙkæ$NïQ†­~»:ðb+h€ÿëÕÁE¤îàõÎ'îOOîéÚ4i"ÜÃ(º< o—€PœX¾´Ú g‹@±èª ž\EµâÔØ& €J@9Ü—Þ hÕJa,Þ?>ÒÄuˆáW Dê6#(ÒÄFÄг5*€B"XC3†A4••"쑉Ó½¢LèÀì.?&¸¸j~x¹¸ÇæÏ[õ/1OB—&;����IEND®B`‚IMAGE 444 ./arch/monster/demon/evil_master4.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE���‰‰‰UUU ÞÞÞe��ºººÿÎ�™™™‰��ªªª��ÞeÎÿ�eÿΙ�e0����ÿe�ÿ�0©Üjè���tRNS��v“Í8��*IDATx^}’[n„@ IÙóâ½›Üÿ¬é8ÀjK„f\åþ¢;‡î6<Úƒ{ÜîÖÖ~Z[?w@ª‰Ïܾu°ÏB¥Ç±›ŠÑ.9‡R:^|Â85`LlâeD°ØaÄY& Ó‚xÍ™œ+vL7cžƒ “‘Æ<W˜S&‰£ T€ŒDNóÆ%$m ‰$ δ¨-åšÌ+uÄ,UíÏË2…!s7÷‹!LA¢ïGÆ> ‹é‰”Aô`½S8ý\”RŒíX_Ê@÷†RDc~Ä%Û¬œ ÊPçÖ¡Wá­ VÄÃpa^|×·§›‡ ¬ì¼ jz§ÇÝQ¥¤Æ^°Š"Õe¸Í䬯 6UXRÇ1=çKÌÿ> €ÿ5"g~Nw•+þ . ÌÖx€5����IEND®B`‚IMAGE 230 ./arch/player/class/Wizardry/evoker.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�ðæŒ R-²""��ÿ�����€w©(_���tRNS�@æØf���yIDATxÚÕÁ À0CÝì¢ÿÿÅK…ÑËbÏ ˆ‡<Bˆ§q™Eh{ŒÛ‚®;ßSúõgxH€>̈ò… ‘²>AH€GDmÄ"fR ž�&4%J|ºj wég¢òeÇ€¡gh‡DµØ-ÝÏ@wÍ ;N/wΊs#©����IEND®B`‚IMAGE 230 ./arch/player/class/Wizardry/evoker.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�ðæŒ R-²""��ÿ�����€w©(_���tRNS�@æØf���yIDATxÚÕÁ À0CÝì¢ÿÿÅK…ÑËbÏ ˆ‡<Bˆ§q™Eh{ŒÛ‚®;ßSúõgxH€>̈ò… ‘²>AH€GDmÄ"fR ž�&4%J|ºj wég¢òeÇ€¡gh‡DµØ-ÝÏ@wÍ ;N/wΊs#©����IEND®B`‚IMAGE 213 ./arch/player/class/Wizardry/evoker.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-²""��ÿ�����€¾—¹f���tRNS�@æØf���nIDATxÚÕAÀ0à$üÿÉcL;&;Ϫԃ­â‡_žç_•Ç$5Å\™²©bpQpiPŽØ2h4�éƒèÁ{Ú ñŒw#—*dÚ%ö܇.0{r½™’ýBû@Cãí\n9„då¹�ÏA°†C����IEND®B`‚IMAGE 213 ./arch/player/class/Wizardry/evoker.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-²""��ÿ�����€¾—¹f���tRNS�@æØf���nIDATxÚÕAÀ0à$üÿÉcL;&;Ϫԃ­â‡_žç_•Ç$5Å\™²©bpQpiPŽØ2h4�éƒèÁ{Ú ñŒw#—*dÚ%ö܇.0{r½™’ýBû@Cãí\n9„då¹�ÏA°†C����IEND®B`‚IMAGE 232 ./arch/player/class/Wizardry/evoker.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�ðæŒ²"" R-��ÿ�����€¹Xì���tRNS�@æØf���{IDATxÚÕ’A! ú[ˆûÿOéyÈ},@H±BĈßv9ÄÈdõ&so#�7ãäUÄ«ASPñª†Y^óT’Ê ×\˜<(UO'Ì¥›@°Ü„L(™†9Eg`…_ ' FÐ<6…)pÀ û'ã‹<šºÇ52½����IEND®B`‚IMAGE 232 ./arch/player/class/Wizardry/evoker.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�ðæŒ²"" R-��ÿ�����€¹Xì���tRNS�@æØf���{IDATxÚÕ’A! ú[ˆûÿOéyÈ},@H±BĈßv9ÄÈdõ&so#�7ãäUÄ«ASPñª†Y^óT’Ê ×\˜<(UO'Ì¥›@°Ü„L(™†9Eg`…_ ' FÐ<6…)pÀ û'ã‹<šºÇ52½����IEND®B`‚IMAGE 222 ./arch/player/class/Wizardry/evoker.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�ðæŒ²"" R-��ÿ�����€¹Xì���tRNS�@æØf���qIDATxÚÕ1À ÛìüÿÅ EÙjïœ|X!׉6ž1‹{Œ‘ޱîÊãÿñů• ˆäF ÈR˜KABwÝ ØA)ì†4`…ˆþ¨i@Ú<×q3¶`WåvÙPåÈ®¾¢¨Ð£xF@iê¸Hê����IEND®B`‚IMAGE 222 ./arch/player/class/Wizardry/evoker.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�ðæŒ²"" R-��ÿ�����€¹Xì���tRNS�@æØf���qIDATxÚÕ1À ÛìüÿÅ EÙjïœ|X!׉6ž1‹{Œ‘ޱîÊãÿñů• ˆäF ÈR˜KABwÝ ØA)ì†4`…ˆþ¨i@Ú<×q3¶`WåvÙPåÈ®¾¢¨Ð£xF@iê¸Hê����IEND®B`‚IMAGE 1934 ./arch/exit/exit.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��îPLTE�8�#- !9, 62�:#C�8 5 B�6$D�39 #:�/2,7<�:)B�+�1@>9�(77�2$-�?B|D~X§%_˜d¼Xµ2XYJ~�+\1[a¶xÔK„7l�>{ I Pš�7wCo�XE~SšM‘ N“�)URSš'JrØV¦N‡�3n�G“1c gÂU¢ OŽ�.lB| d¶Y”uÌ=u�N¢+c™�%ZqÌFySoÎS“�,c a°0XZª%HJŒ dÁKŽ�&V�3r kÂDƒ^¬�0o&J�O dµ]¢f«FyP‰�-e=}8h�nÔCr E€LHƒRšI”pÔgÇ;u_¬�7p]²*Ue¿ J‡�/o IŽ�bÃ�G.P�'`MŽ�hÏSŠ�L™H lÊ�3g�>… E„P›�<xXpÍxß�3i _·�#G2NY¯=l!mº +J�7qn¿5]DŒ ,K�$Qb·2^ Tž7b[¡�=€+xÄ [¦ H‚ =p�:z)S Cya¯ wÚ?h�(`?t]²�.dU”b¾�Hk¼ C|I–Tœ eÀ Wž"N5f'If¿/`,TX �#VM˜�<v@€� T9m ]´C†P˜T ^^¬�Z³I‡L‘�M“PŽE~:që�4p3bNƒ`­S£?m&YN’�1l�0j\°W¤�?V—rÊ 0V�%N>|D…V«f±?k�/ghÅVª N�$_�EŽR•�W©�$^GŽÐ——³���$tRNS����n��Ì��²�î������²��î��w"�������DŒ$XÖ��+IDATxÚ ßû�  .%+•S(EõW«f �  › ! 7‘+&~)˜á{}�!Á­*@@@f 7Qš¹^b|?3F� �›¥¥žï7±777±¥— #Ã>¨N0·˜;yê � „¥±™qÀRgƒ¸¿44f„*„ƒ²:N0‹¢åI£*�\*±oXg8…Dyrªª«Ë-=žž=8iN0¢ÏMké�@ž¥-8J¬†ÐjÐçWWj'D=-=Ê6¯Nh;Ik£�›*Ä¿gø>¶:<s;;?uu¤¦‘«.7ÆIš¹cK³Û�›Á O1_<5¤H??[P•HÔMq=”Xá¨I²2o� ¸R׆ùE‰?åBBPíPH:O«2²ªjóRFÀ� }®UŽ_vùE‰Þ÷˜[)))•ÑÓ>œX'M-=Ä� ™lÖŠŠvB˜Ò||~^))/ņnJÚ>'Ê –� Zk†_5Ÿv¤©ä¢‚·Ò(··))zŸÍa€1Q¡��"¸ß×Ô5vΤ[´GVwx·‚x^Ì/Ç<aetQ4�­,n_5»»‰ÅY(‹w°“°‚’‹~/¦5aeºQ � #ž,6:¼E»d‹VppÙÙ‡‚^~/Ç:eJOQƒ@—�.4™9D†sÏd|ñpA“ÙÙ‡‡x~•u]y8àˆgËT�o=Tk”1c¬?Y(VAA““Ap‡x½d;c{µ‘t8ÍW�£=q,”CCÓ6;&h’°AA‡pw’GLd;Kµ%'J€j¼�-`q,ŒC>C3ìÕåG’°“w’0bLY+]X>†ôE¨�2-TÜmO1ªK3Õ[bS00NLÝ+IÈ”$Uœ€î¨P�%âºlmD9C6§E[/h//©¾:Ó{Fµ‘$…ÇšY˜�¼¬Š¶ãµ®‘r6§ŸŸŸÔ<ö<]Ž%DÃ2T®âæz¯B´�šE5'ã82lUn§§6an$ŽŽœD-FÜQ8mji‰d˜�&z+_tm82ˆ1n3%ºODDâð”Ø®91…¦u‰&h´�¤i<%9µÊ…«91rœJØ9”1>C$ÚJ§áu‰ÏYYB�Ö$œ³o``ÆF³,,9ºëcÈÚ6Ω©[ÞBh¹&E�2³ËF™™.}ƒ¸­7ˆàlº$æÉ]+zÑäÂ(¯;§�¡ZZ}Z*„Á4*ß,ˆ'Mç+©ÝL½’Sèz]3{� \f–– � 4£«O¶+¾&´(‹Sb&ÉŒ.Û�\# ##¡-Œ3s&•Gb(Bm=@ � —— �¡¡-KišÌòG)»6µ.›&Ò¢™HCy����IEND®B`‚IMAGE 217 ./arch/monster/dragon/fae_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îî��€ +Ψ���tRNS�@æØf���~IDATxÚÍQ À C×ÜÿÐ#-šªßFÁâ{#ó{&�wLGpo._B�i¬¯]`Ò€ Üè<¯»¡’î”p4PÑ +ê7\‘F^øÀŘ¡ 0# Í¢sf˜ »æd[KfÐæ(ªZ•˜`ÍwA|4î¼ÿäCù¾=8����IEND®B`‚IMAGE 213 ./arch/monster/dragon/fae_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îî��€ +Ψ���tRNS�@æØf���zIDATxÚÍAÀ0ÃÀÿô6)eçæTÕi‰‹B àœ$i^†4ñl£a›Öb¿Fäb¤^è_¡„Õ Øj0Q¿ó$»¦˜ñÂΑA. :z/G9 :˜A‚Mò-2¼×ÄטýP‘ ÌÝÂë7AãŒ{UÜ“•ã+Zzð����IEND®B`‚IMAGE 221 ./arch/monster/dragon/fae_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îî��€ +Ψ���tRNS�@æØf���‚IDATxÚÍ‘QÀ CGïè¥lÌ"2í1ô™w#�ìT X*Ÿ|ÌX „÷4,>èÓV€³O%hü@Y3ï*÷sÕ€ñóöCD55îLJµ!‘g»³‡P´øÐô æû’!^,'Ô,Hš¦ TbãkÈót»ÜŸŽÖr����IEND®B`‚IMAGE 215 ./arch/monster/dragon/fae_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îî��€ +Ψ���tRNS�@æØf���|IDATxÚÍ’AÀ ÿ?ºjPÝH¯n‚Ý¢]¦h"µØ­ ÂÛ³WÛ„¦ïBL/*¿�Âi§Ìé~jÿB0GÊDü¿‡‚à=] ŠÁ °Ì¦@ $ÄÏï He|±Å<±Í@샖Jãè0‚"ô^_§“ç+Þh&����IEND®B`‚IMAGE 392 ./arch/monster/humanoid/Human/farmer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��� e0�e00UUUuuu™e�™e0Ι�Ιe‰‰‰™™™ªªªºººÿ�ÿrV|Ú���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���÷IDATxÚ¥ÐËnÅ PfáÑ›öÿÿ¶3±DYÔàÈGÆ"ü¼Ä @Ñ“±ßjÎN¾¡ª÷Ä.¨ŠK`i-ðÍg�ò¯žÑC_®j°„¢ðœŽ1$[p4}=õÎF‡hA°)€Îæ;0ƪ9XÑ j…AžÀ"çJ¿FÐÁ°ñ´IÜE$³”ׯc @/.À&Dö¹aª8yšE™¯( @×úÏv†”Îtž€p:øÜAU®`6Hºå¨L©´‚ÙÀÀ-öÀuÿ�Žy¬€Çqp&{@Îló’ 9ï‚þ1:¼Ä+ø†ã)#{›����IEND®B`‚IMAGE 390 ./arch/monster/humanoid/Human/farmer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��� e0�e00UUUuuu™e�™e0Ι�Ιe‰‰‰™™™ªªªºººÿ�ÿrV|Ú���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���õIDATxÚ¥Ðnƒ0 ÐÜ™–õÿÿvg[C„ªÒŒˆ#üt‰(¯iáXO�*o?ÐTë`k­A}‡¦ZïÀ<áæ™€½ó-À$ðð©Öc$@CT•æ Æ�(]%âû]-€„ÙÆ COÆé† B´&Bp¨�Æy!Ò¸at%lN Dô§ ˆlÒhfñ’ ‘€¦†6pæÀü°; !àBë7ÀTÓ; ”}/ x¬u­ëzŸ@M×@S7œ‚ ¨µ~�SªÎA1>WûðÊ6˲0 o&’úœ€pN�ÉüvlÌë{ð jw)‘"«ÜÞ����IEND®B`‚IMAGE 507 ./arch/ground/farmland.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTE‘¡UÊ¡0Ιe�e�®yH™e0q e0�0e�e��Ö¡q�ª��0�‰�çGÌo��ŒIDATx^5‘1ŠÜ@E;ñ cœnàÅ™C'Ö»;u£lЇp6m¨PHeh¡ÌŒƒi&rhlY‰º‹/8øP%¡ÿê™ñÝÈâïãQüëÆH:Ñv=S­3;{sfRõ•M|oê)›Þ&q…¥Âlâõ–šSÛ—Éi…ÅÞxS&*Ö›†…]ø°žÛ=w”=üž‹­Äñn=³Á·,—…3¶Âl¦Re5dLÉdÃþš [Ð@¡ƒ¦R=fPø›®¹*^Ì[#ºP§7W—3Éç%QÎC [3ew«|Ð?ð¶/•_ÙA ›+Òbx€ò-\_Þ3À †Í»ï ‹ÞÑ«¹ø‚;dhÐ'BŒçÆr|ÚàtPXõvÏ½Òæ —9óÛR·‡ÜØÈ?Y¤EŸ%Âô7 ëÉŸ¯%Bæóž÷-bPn¬}¯sÌhdIü?ñG”„X~*~RVîtýÁbÿ"ÏS€±7±Ã˯‘.øþ`rÃäâ,����IEND®B`‚IMAGE 204 ./arch/monster/humanoid/Human/fatman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿÿðæŒ�Í����¿¿¿xþØ���tRNS�@æØf���hIDATxÚåA À cœüÿË¥Aˆ‡5O…®°fÔ ý2 Z>c¶Ð æî-Çq¼rÄÁÛZ!¶ ÏC'OW õ•À.Hà.@ŽI=d 1É¥¹Ñ|T@q¡°êÈY}jûTmƒ¬ñýÊò����IEND®B`‚IMAGE 220 ./arch/monster/humanoid/Human/fatwoman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿðæŒ²""���ÿÿÿ�Í�Ö8Í���tRNS�@æØf���rIDATxÚÝ‘Q €0 C]mšûߨ è~ÚÿÄd+ƒ—µƒmÔ.-¸Ôr³.!>†µ-LêƒVÃA³�J¼Œ‚;g¢ç(ù]“�gBƪ².@mÒ�Ÿë¬FLç#&×!Od–K€“á<ü·¤«|L†”¾x^‡����IEND®B`‚IMAGE 456 ./arch/monster/demon/fiend.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE²ÀÜÅÅÅ’( G$°°�ÐÐ�ÿÿ�d3²""Ð((ÿ��‚�����ñB›���tRNS�@æØf��OIDATxÚ“áŽÃ ƒo-…$öû?ïÅnw[¥íÏYUñG0tûù¿Èï3‹“_g;pÝçí5ï@JV%®WÎq÷UÞ-U¨âHîù¨zäÎl¸Tyœö+c­Ê$߀Δ©eÛ<†‰Ä«K¾ò‘EÈÅ`à$'B£ÝŒg fñ.F—9&€-Ïp¨+—bâ¹x”Šòc¡uíÁÖ"qT¢£0" MòH¬áûäBÕ·N€H€V£€ê@¤ÅÙ£ôÄLd4@l[¬3Kè|êAŸY 6Š`…*därhPÔ´š—ïÁÀ´o Âþ1€ ogw@@÷íÓ¥3œ¸,™³–�þ’´buÍ~ËŸÙižq¤|£‰³ƒFX—oÙ¾d?¸ÿ/nþl/B«>œ£Ÿaÿ3a½Ü_MöF.:����IEND®B`‚IMAGE 461 ./arch/monster/demon/fiend.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE²ÀÜÅÅÅ’( G$°°�ÐÐ�ÿÿ�²""d3Ð((ÿ��‚�����‡,vG���tRNS�@æØf��TIDATxÚu“rƒ0 C7âÈÒÿï,“umoè(Ö‹ìäÊ×­¤û·–¦nßZ:ßSªœ—Û|r$” îæx÷]~´Ld2ó€øÎüÆC(8]yÍö1ÅRÒ P3^vÌs4þe(í{>é ûc(Д&Ä¢\Äo„:G£ÊšC`Ñ€/Ç 5¦Äò˜Ü�ˆ¥S”•²‹¥ÝCI®%ñLð„t<p•Ä>O-º·À¼�5 ‘j-Ëu2ÐÀRRªçS¼ " zGBÝyÛŒ@–Ó{ö‡Š€÷MnÀD°«Q¯M8¢ùÔú˜;!Ö&t2£[ppù’ÜE³w 0ˆXªP’Ë€ ¿ÐþqÚßy_Éh ý’}KcÊ»¾€Àí·Tþt øø.ÚúíPëÓŸµ&Bºû”ç¨kH÷„þ7�t¬š³!Åk����IEND®B`‚IMAGE 217 ./arch/monster/humanoid/Class/fighter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒú€r¿¿¿ÿ×� R-€ªú1���tRNS�@æØf���rIDATxÚÕQ �!D]7ßýÙö¢Áþ5(óšR®ûT€ª8�rØŠo "ËmwˆH¸ë€Ÿ�èð KÕù°D_Ön_D¾˜y@"l©�0JßK0kéë*ÿ¤xغ tW¨dŸЛŬp����IEND®B`‚IMAGE 211 ./arch/monster/humanoid/Class/fighter.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒú€r¿¿¿ÿ×� R-€ªú1���tRNS�@æØf���lIDATxÚÕ1�!À8Núÿ'«Dà²9X›•§ F€LPUäŠ@ŒdP í( þk¯]hgt´Uõ½nD ˜› N?˜E`ë€$’¸”ÜJCKážÀG ;€Þ¡yøœ^Ô����IEND®B`‚IMAGE 217 ./arch/monster/humanoid/Class/fighter.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒú€r¿¿¿ R-ÿ×�NvUW���tRNS�@æØf���rIDATxÚÕÑA€ DQ,ößÿÈ:Q ©–qÁ°h“y醲\¸0f–öô%­uw”7�®P•  Õz˜qÎ.˜9èR?QP=@}�ÚÄ‘ û]A>p‚4*…ò^3@c9Ðø°–`,ëä�Øà¾•¼«����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/fire_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ��²""©¿ ���tRNS�@æØf���~IDATxÚÍQ€0Å&½ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#naŸ?.gV"����IEND®B`‚IMAGE 222 ./arch/monster/dragon/Hatchlings/fire_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ��²""©¿ ���tRNS�@æØf���€IDATxÚÍ‘Ñà YîÿÿykÝ%›lú\#âND„õ ð @àEÑÎõ×e ¸„ƒVÅ„{Cxݤ§ akp°5`¢;¯cœ“˜qá ¿‘FIh½á|“„Ù˜Aݺ8\mâ×èþ H˜ô™sÅKgAÜ.È¥ÖsòSUn0;¤����IEND®B`‚IMAGE 222 ./arch/monster/dragon/Hatchlings/fire_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ��²""©¿ ���tRNS�@æØf���€IDATxÚÍQ€0Å&½ÿÍ“aˆþZbl5›ë7�>!hÕD> Ì´r·•€Û#/]¿ÀñáEñ0yhÇÌgõ¾ƒ!æL×5^ _c!îd=Ct<‹´å]·b÷q39mž…e°¿ŸölÕ ðB³À¶›cðáó&ÿÇ \Í?×zYC����IEND®B`‚IMAGE 219 ./arch/monster/dragon/Hatchlings/fire_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ��²""©¿ ���tRNS�@æØf���}IDATxÚÍ’A€0µûÿ?‹„‰µ ñØÅ4Õš”xlYØZ-È «µû)øHF0u¼tr€¾Ð?îBË-&,—›S rÜåKcðÔ†#kx* /YyŒÄù^ ©S³ Ó| „yž öp2‘Å ) ù¿Þ. !U½Áþ����IEND®B`‚IMAGE 325 ./arch/spell/Bullet/Fire/fireball.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vê1ô<è&{µË���tRNS�@æØf���çIDATÁ½.Ca��Ðs}±ùî,}1h¸mâLñ�¢JÒG 1 &?Q£¸Ã•˜±‰NÝh$t?‘p˜d}@è+‘Y GˆÒ"#ïÌñ ½zµˆM¬´òVxAcmthãó±kúy'Öë‚a¾]Ý(…¡Êa¾Ó•µ'*o]±½¿~üôSH[—'çµ^!ßÝ\> ë…¼·±õ™4:¯ÏÉUÇûcvWئ6Ü´Áìm™ÝÃØ—쾄$-a@ú@ §,ìQ ס™™«ÿÆæhÉw)^À_)=ƒÉ�ü³åL"¯OÅ����IEND®B`‚IMAGE 329 ./arch/spell/Bullet/Fire/fireball.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VôOÿL�Ä7+G87Œ���tRNS�@æØf���ëIDATÁ¡NÃP�†Ñïþ½¬í‚¨Ø‚Ð&¼�A‘Ð,!AòÏ  HC`ºÁ⦦Hؒɉ ÄäÄw®lw-ç�ÐáPJg´‡,­´©bäºà�Q–Ä×ÊûíáÖ+šËÏ$Ü0ÏÅ„æ54ˆbºÂÉäçÞÄf÷ÔîÝJàªkã”åv|5º€“ªÕ¼›¿\9ɲ‡Ã¦î{1ÛúmpTGÐ…`só‰ý…}7HdÈA¼FržÝiâç3MAf-êPùòw}cm÷„_Ò,�ºÌ��þÈþL̽>—����IEND®B`‚IMAGE 319 ./arch/spell/Bullet/Fire/fireball.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VôŒ ÿ!�›ô~ì0���tRNS�@æØf���áIDATÁÁ*DQ��У[H^÷W3ax>²R2{„²d1Ÿ |À,gav6ÊÕd£f%DöoÊ«Íxá¼CB)™KÊP!”á(ì#–Y7"«ònlcu;¯úMŒ¶çë߉ÑÛÔmúLÔV„^™¨fáî¡Åb•¯ ñ¬Ö|=‚ËÑÖKsÇ»Í犬þwÐ^[ >ù»s5[°43~¼™ßc|ÿóñÑ»`|»Nh´Ll˜†*M0$&¢‚~IT(ó’ où5˽" –¯§AìÖZ<U¦:Z<%±9Ù&�üÒr[0(4–����IEND®B`‚IMAGE 207 ./arch/monster/insect/ant/fly_ant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""�‹‹ÿÿÿ R-���q`[×���tRNS�@æØf���kIDATxÚåAÀ Ãhiþÿå…LÚe4œ§q²±Äøæ°æxN¯€|æL´qfÜ{S@’o à¹âHqlûU*¨¾ç4@Ž†Óˆ¨nŒª˜¡¸è%,#”鸾Z!zx­Àkö^úç.»Îy…§ñ!����IEND®B`‚IMAGE 185 ./arch/monster/insect/ant/fly_ant.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿÿÿ�‹‹ R-���RI8���tRNS�@æØf���UIDATxÚíÍ1�!Ñ0÷¿ò.Ñí né$Øð"ºýâXDlöo|Uû†Çµ)FŠþJ/„ l ê½°ùGò™Wz°j€rPћЭì„ÑÒæ N����IEND®B`‚IMAGE 208 ./arch/monster/insect/ant/fly_ant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""�‹‹ÿÿÿ R-���q`[×���tRNS�@æØf���lIDATxÚåIÀ Éâÿ¹&äV9íµªAÊaG¬¯;8’{xÐÐBáæDºâttxî Êp—{ª!sØÓJ¦¹4’1-LmsHžõEÞQXBhÞ‚ Ñ+A‡ð¹�»Ôyæ;~����IEND®B`‚IMAGE 184 ./arch/monster/insect/ant/fly_ant.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿÿÿ�‹‹ R-���RI8���tRNS�@æØf���TIDATxÚí1�! ÃRˆÿÿåSl…åĆ»Ðã.ˆ_^¶*XØeA£Ó['Ò»ô-=ün_LQã>P]ÀØO·™˜~€ó9ä  GÅ„|Ò‚Y5����IEND®B`‚IMAGE 437 ./arch/construct/fort/fort.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE��������ÿ@@@ R-¿¿¿Í…?ÿ×�ÿÿÿ“7½���tRNS�@æØf��EIDATxÚí–QŽÂ0 w×ÛûŸx‰LjW }Ä_Gª¬¾Á$’ÅÏÅÅsØí1ØT{ ‰j@´Ç`õMzÁÞÀÍ=Ê´�+oºÓË{Ï `Ô 6°W#j[ä @€l+}úã/�™¿ƒ;ëÊ^m%¨ù„ù¼]�D[Ÿ�y‚ËoœÞD Šüµ¼ o;òN(éç`¸yP3’{¾ Ø8´LйҰž°Ë'' R`d$Áfð¹�S EÜÂÇ‚ñJØX:{ÁÔ5>_i¥­e•‹•v°_I”ÒÛJPó7wzAåórw• <JGE)xõÇ?C ȯ=D^ X×áƒèüœ�†Z OðyÁ>¿,Kûìó_èü—:/ 2ì]\ ùU³J6G~����IEND®B`‚IMAGE 222 ./arch/construct/fort/fort_sym.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-¿¿¿���&(ýž���tRNS�@æØf���}IDATxÚÍIÀ0“šÿ¿¹FÅá[†‹%FÎ2nÜU�`%jðØUàì{,ùâ¦�'¢À~Ó ) )8*@•º§°"B<NÄS¡\3¢òQ‹°|” QÀÉ8ƒ † ÷§BÞ.Ãh„9Aö"‚q/gz*÷‡]����IEND®B`‚IMAGE 565 ./arch/monster/troll/Gaelotroll/gaelotroll.x31 ‰PNG  ��� IHDR���@���`���_ëiÛ���PLTE���ÿ���ÿñém¬ñ‚���tRNS��v“Í8��ÓIDATx^íÓÍm1a‚‘ÐÕt¥ üc²E¼Ã>íºØ€fû¡‡Çÿ\?5YÏ e>’ØÙg`¼˜+ÊH#÷@´v݃Vë-˜š&²îA5Ú+Àš+U®@H°×-RSúq˜5DúÁUÂ4hK̸+ç""h£g0gºE9ƒPlÄZÊhj«UÎgœÕÆ-HáÐÔôÓP£˜ˆè:EÒ|ÚˆÄÖ«u‰QC5vÜ‚n°7r¾dƒÆº¯rcŸ)V›÷˜æšo�7Ð(Ÿ +ëØ$ƒFÀ5X,Ž fRVVè¡Cb*š¦1¤†CƒúDSƒÇqQ­ÚýYµM¿Üõþ¤*(¦±Æj ±!ô0K^¹ªµIí€ÃÆÛDc4mÞ'-‰RUQí;(¤«¨_w"ÌX´jå0¦­l¡Ï;·Ñr :Ñ"m¿Y#ZC8­mTטÉ:ÿŸªü‰í˜ã2À®‘jÖ¸ P»ÏbO²ÕôÜt¦®ê àšÙW˜+0]é˜õΧdÁHù´Úq]û±ÅÚñP±ò âú˜¦Ï@;¾®¿%¬o%L´O">­Ü¬RîzÌ &í�Æ`¯~ê7Y›†òBÔÚ����IEND®B`‚IMAGE 568 ./arch/monster/troll/Gaelotroll/gaelotroll.x32 ‰PNG  ��� IHDR���@���`���Ыœ{��� PLTE ���ñémÿ(d���tRNS�@æØf��ÚIDATx^åÓAªÛ@ `¼.$trwñÈ6³2ºDŒWƒNÓû¸3ðÀÌ%,´ Äã¡Õòc$KH®þ‹¨»7hæãØù Àm õ´ƒ&2ßv HX²µ„a”vI1mÐ EÕa Os‘t÷¹Á4pÿs{Q+i4¿n0 @øòJñ"dlý¾&†ÃÒ· ÃlLi>éš5-HrsN„-Ip2PL!X2sàA£xø '8Wq!׸ˆ‡·¤Š%o@=zpZ RÄŽ<çÆˆ#¢™Cî«õ˜YFL(9(܈çøÁ *Vå!,wG†Ó¨åxz­2$I[¹gFoKÅ’Î ˜pab±®«?ògV˜]Ÿiß`!²Ù=§À,<2ÄY£òpsý“ ‡ÊC]€ðë˜ÕÞ æÛ ’’Q¿´/€²©ïÊ‹[xtí –ÄK½Ms+%mË3^ŠG1ï"µ!ì "X V5;àûX7`¬ÕSѺŠÓ `-§ÛVÀÄÅOIÑïý¯°^Âô} ÷KÙÆu:¯%>ná6¬UÇšöP5ò5Y»4í€Lvp0ô] ç™Æ¥,âÚ“sþø UhÍÙ6—����IEND®B`‚IMAGE 560 ./arch/monster/troll/Gaelotroll/gaelotroll.x33 ‰PNG  ��� IHDR���@���`���Ыœ{��� PLTE ñém���ÿX´¬���tRNS�@æØf��ÒIDATx^ÝÓAŠÜ0P£eû!«¡Æ÷Éi´ ™K˜Y52XÛ`ƒë*f ÐØàÚš*¨Ÿ tËÕ“ŒÀ ?ü«$Kª¾êHÂ¥ Ü:¨—§°îì%LæÇÍ•xEŽãä+Qû<8ðõ¼90¶=»HÀ4JÞ=°‚¸<M€ä¹À0ä./tÀ¤‹¤?TÖòÆõ?Š7šuµN†€[['’¬tý΄„­/M†Å(ór.@ÊX~–šld,S*ëÈÊÓdl È£î‘3r·JºC#:c-MjíЃ8àh)Ï´b5»”&¢’X sb…ÛúÉV‰Œ•ßÇûydÑý›KpÞÈ'zƒÏ¼�™ÄAC²Ë%üºÅNX‘aöz=$PËvkÝ(rp½ƒ!—ÓPw°Ôm0¹Á)ÀRš Çæ“¬[,±�'¶Ü¿{L»¶@ý…Æ=<Ó{ðgòZ³FsP\8i þ*h[e˜n«úØh0ÿ{ð\{ Ð>Fˆ¢+ŠøÚª™4«ÆßjúÁ>à´?ÀGG˜¿P!›ÿƒˆ5ÜÔHlL Ð<¡?îªë»äq»9¥”ÞÚsJ±úbã/­b’¢$0è¥����IEND®B`‚IMAGE 562 ./arch/monster/troll/Gaelotroll/gaelotroll.x71 ‰PNG  ��� IHDR���@���`���_ëiÛ���PLTE���ÿ���ÿñém¬ñ‚���tRNS��v“Í8��ÐIDATx^íÕËÍ[1CaaJHÂa<-¤ÿš‚ØAâ‡|7ÿ&2ëÊ®×?:ÿgØW`6éÈŽW`¬×@´ó¹Öös‹‰Qü Œ&Á`›ê§Ñj>P5=œWDŠPzßHj΀ð=Xj6PKlªôT5UÕBé h£ –u�$ jÍ~ Ĉ„Z¢ÑĤh¢fJ&¦©©ò F[Ѫo�°)¢äq I,bÏ÷«¡j_ñ“ÏäfÍýIÄÞòöì5EK<–ØÓéš‚V£/Ç`ÖX¥òü®B§CJ‹Rk5¥6MSÛ‡£Þ–;Ð<.I5cÔhxH�5ÜÑóïPK‰Æë�+¦Q_~ÊF‰ÕZmc÷#ˆ*ªmÑ' QÑHM!/�£&ŒÝôõƒš˜¸Ï€(B~ƒçù–‰²sk(5Ú5µï` ÓÚì5zü(ï•Øî5èñÙO5]Ïo»£#RÍ”FÞ€*kLwŠ=Þ.¶+{Þæ0{¥s8FîÍH ë�r[üño‰¸˜±_©{]Mü*Y×à« å*"F{0^l‚棘¤Ìþ��Ø XåüŸgë™y¸Fá����IEND®B`‚IMAGE 561 ./arch/monster/troll/Gaelotroll/gaelotroll.x72 ‰PNG  ��� IHDR���@���`���Ыœ{��� PLTEà ñémÿ���ʲiù���tRNS�@æØf��ÓIDATx^åÔAªÛ0`ƒ÷ÎUºvB}“ð£yݸHnK{Q°nÆÁjà)ŽôŽÐjù!ëf7ÿÁ.5œ¶·®ZCKøŒsõÈÈWW¾:X½:-¡µ)¢|£ƒ¸ ÄÓP¤nx] ø–l“XÞø³Ðê~¿ ê…eú„uÝaQR6 {êºÌH ÷3C/÷Í1éö ^¦³9ÌN(C´Í)™Ë1IÕiŒÎs†•`612,1™FÂýfˆ8 6~€av„Ar×y ï24=’ª‡'Þ[8mb9¦Å” HŽ34ŠdÕ¸ áhd˜^£¼ŸÌ³L÷§¤¦5…¹X Ë)X—L¹æØ÷Ë0¨Óø¼~V…ôöGeòQñýY ðªÈŸô õ²ù'˜b^RÊ È“ 4·g‡`iÙ׬V·C3Q¼ MÍÕÞ]frFŪ¶â¸·b·!·¾\æ½Ø<¾@ÁM H-¡À‘ è0> pÔ (*;8jeíD€±†àùqìã¯P¼ªã1v?¸„þÚËÊÖC<¼ß àËéáا¿ò¥‚Îá­S®`Xò*쓚x»–Ò½MÍ?wþú¯{Ÿnö����IEND®B`‚IMAGE 557 ./arch/monster/troll/Gaelotroll/gaelotroll.x73 ‰PNG  ��� IHDR���@���`���Ыœ{��� PLTEà ���ÿñém5xáè���tRNS�@æØf��ÏIDATx^ÝÓÏŠÛ0p jß ›@ý4:´{N!2d.½¬ š§ÉÂÊ`­ù°çféFšÍ#ì€.?Ä|úÛ}± ЋïÞÀ¸ú§éj€£a Ëæâæ ^M“Ë[¯ºš)Ëù( ±Œ,l`,´Ex‚,†B@|:4Щ¤r¹Tèõo )Ç N§?³^äWƒœxÍ%û¶;�ér©0²r!J-f^ ò³Ây’¢<Õ`÷‹dm§IXYZŒpŒ’ˈ¶‚Œ ÖTp®1Y8!Ñ^cD1#åvj“bÁ* Ì+V-é„”ÉW Ȥ4p”eâØµúA™°ø6f’íÜÙ¶K‘Ø`%ðl€´�/¿ýáÀ Öý>ý•+N‘\8ƒxûG€€¹ ïõ=ð;cI‘®÷ë'ÄpÿÑÔM °¬Ôîåy.,Aô)³ŽH\Øôe´ÏÛ?ëÛ'pY®GøGd?Xˆ`ßçSFéú|µpíz10>€ý}½ ý;¨§7À8إǽë-t¼wNöGPãéì Üz|†S7Xp\¼Ë¹Á ¸:˜Üxwd–z˜EÍuËVèyÍkûáÜÿ !œº/Uÿ�©Rõ-å { ����IEND®B`‚IMAGE 227 ./arch/monster/misc/gargoyle.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿÿ�ÿÿÿ.‹W¿¿¿���jÚ@Ü���tRNS�@æØf���IDATx^ÅŽ1Ä@Ýø'û“d{’eþÿ•£¸ $ýél õ39!ÔB.;˜2Tk€ðàB˜h…™ß…3¨ÊubÎÜvª5Áv®y#Xû4¹ÎU•Ε9FF'³(‚p'õQ_¬«º)#³^ ùA™`ù…”ÿª“$bY•·½����IEND®B`‚IMAGE 202 ./arch/monster/misc/gargoyle.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿÿ�ÿÿÿ.‹W¿¿¿���jÚ@Ü���tRNS�@æØf���fIDATx^½Î±À CQÑ&l˜ í¿J(­¢Îï~aü8¢ŠL›°„SO–í2šh®~?šïYjrÖ³zqÞ£^Hc(þ¸…pk®…£�TŠ.'  AG@0‚øs_e#‡»o����IEND®B`‚IMAGE 235 ./arch/jewel/gem.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ�™ÎeÎÿ™Îÿ�e™Îÿÿñgs-���tRNS�@æØf���„IDATxÚå‘Û Ã0 Cg]úÿŸ<²ÄR¯}.Ó“‰²å¼þJ¾ëëš0uI˜Ô$<uòõ!\`Ü ±yúÄ8Ãö%–²n´!3p’4s4ŒbÓl:€?³‰¬Úˆ€†»{/Z8àîÇb‡LYñõ÷JÝ,uÚQ¥7%¦gîäV‘����IEND®B`‚IMAGE 235 ./arch/jewel/gem.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEp�)g›¹îÿ­â…îÿîÿÿ$x���tRNS�@æØf���„IDATxÚå‘ÁÃ0 B¦üÿ'OY¡¥^{®ÆÉŠŸ°q^%ßõqM˜¸$Lbž:ùƒø.±Nn)‚’K‹Úˆ<ýbœaûKY7Ú8Iš9F±i6’ÄŸY‡@VmD �ÃÎݽ r÷c±‹C¦¬xŽú{¥î–:í(Ò×öSà9ß����IEND®B`‚IMAGE 342 ./arch/monster/undead/ghast.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿuuuÿ��e��UUU‰‰‰™™™ �Î�ªªªºººÞÞÞ�e��ª�µï†j���tRNS�@æØf���×IDATxÚ•’à „ÝOµNîÞÿqw2—5­˜ "÷ZÛô§Xë$±Ôk¾ ýUóö$bàq—¯€3ŸËÕ',€RÊ €üÜaÔF]î»ÛÈå¿g“£ï­±µ‘ËDóšdö5NÇ:ôJOÔ€Ÿã±ƒ‹,£C¡C‡×q¾(VM®Š÷<}F˜)Ö‘\n^Ε5;1»Nd&±ƒ‹7n‘B�ìÁÂ’c…¾kæ:-Fãn°H»šÅ€‰0!1@”LØ^µn¾yz!x²ù”©þÿ˜½í‘è����IEND®B`‚IMAGE 364 ./arch/monster/undead/ghast.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������ÿ2�¥��UUUuuu‰‰‰™™™ºººªªªÞÞÞ �e��Î��ª�<óŒü���tRNS�@æØf���êIDATxÚ•’‹ŠÄ ½ÇÆŒãtÿÿß^v%¸VHHÕt„¤ü3�ž9É¥1¸Õ±âæâ§Õã—X­™KøùÖ"íj`åºáå׎䂻o„âS´ÞB¸™;82 SUƳ5¶vâ§>E˜¹Û0Ú|˜P¨ ª 8š¦À¯çÄç�4½Ù¸ªp㽃42oV5W£U"•r rŽ•Dô¾ù[Àƒd¬…/¤¢ ñ]EŽƒ}Ëså^ ªNÜw2‚²¢ìÒ5­Šþ(ôÇ1ÍsÇEz‰ÄäeÆ¥päÎç”U–üååüêU©����IEND®B`‚IMAGE 354 ./arch/monster/undead/ghast.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���ÿe�·��UUUuuu‰‰‰™™™ºººªªªÞÞÞ�e� �Î��ª�«¦b���tRNS�@æØf���ãIDATxÚ•‘Š! D½n×&3ÿÿ¹=ËíA,t"*¼gX¾ €Ïœ$>ògµiDxdü8«]2ÂÝ|ü¨$¸µ– +W‡f¹q®ü™áî™�Õ½C„—»�ªæù¸›yÄ¿Tgklí¢‰/¼Œ6¹0Çj®Ä_†5.jÀPþ?!}uðäõ囦1BI¾½k·qÉþâÁj´:Õ’(A•¤pš�xªÀ\�:ÔbÊ‹ˆèŽ+o®µ1Þ;¡‹õµã ƒ½—]„µb/°ö] rlQzaÎgƱ’9{6¡¿çÓÖž����IEND®B`‚IMAGE 202 ./arch/monster/undead/ghost.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��¿¿¿ÿÿÿŒ˜À”���tRNS�@æØf���lIDATxÚÕŽA Ã@ Ä&šÿÿ9SDCp ·ÌÅ^$¯÷àÛÝò¦a:…è“#cj Á¬†j0¼C˜Zšyg>Õiƒ,Þwu>A¾‹¿v,WÊ·äÁ@^®±lhxàå~Ãnü&¯Ê ÍSख‘F����IEND®B`‚IMAGE 211 ./arch/monster/undead/ghost.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÿÿ¿¿¿¶IÙ���tRNS�@æØf���uIDATxÚÕQ …@ cçþw^-a%}ÿvÁ‚³f¢¾40òñ[¥‘÷{®Ò…3Ÿñ—N 84Áüe‚RõÍžqJŸÉ‹Mçäß…‡›æŒŒ»{°‡ždì–°ó¿†,Ü7vÃîàH`3ìdjG0ìÎÑ—æá©äx†3°����IEND®B`‚IMAGE 233 ./arch/monster/undead/ghost_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÿÿ���@™ìž���tRNS�@æØf���‹IDATxÚÕQÀ C'½ÿ'/Jfãü·¸9ÓÈžû¤ÔÉ”ö©Ã/B²T廵\Ö×ßì  4 •/ù�‚Ã؆ˆõ½%*mñí+öX HAy,ò½AöÆ›~†ón ^#!Úq¥µ)Ø&›¢?Ä¿ðÙºN€Â§ e}àºa€7åx^ì\½`����IEND®B`‚IMAGE 625 ./arch/monster/giant/giant.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿb‚bæ­šnVB2þ׸eH¦v^ÊŽrª€~ZJ梂þ¶’BBBþeä7���tRNS�@æØf��ïIDATxÚ•”ÑŽâ0CJiì\§ÿÿ·co¥l›Jk^ιNB¦üùß<“[žÜñ†ç³îHÄs.°V­u#€âð¤ŠS¡ªžD±Z»ä ˆëÞ€ºàC›ˆªeY)qâÎ6F_–FãMÿÚLÍûºdÞï¤O^csÆëÕÍcXà—p Y²�/B| ÌG}Ce#-_F>QïÝœ;ˆÂ°öÁ 京‹Dî¿¶Aà—  - Iì{9RŠ~·Hм5kµ;6@Çøð `³áЇ‡¼Ÿþ#‡öÄnžEÊüÁ|U£<?˜yWºÀéõp´ H8FvsðÜE„ÜM‰ipÓ<‰a!s<öX8Λ†nìP’y b*B¦»•¦‘ 9øGÞÍ8Jsý‰Gxï=Y¾ø¹Á+\ò4´þz±/ÅÁàRÈߠȺzwA{‚ÏÙûß<ü,ìK¸çZ r@ÔÔPžò^n„ðF¨(M…‘�j& y) P60Dšïe>m ,ÔTˆ‚=ÿ՗¶ÅÀþH&ÇÌSãä”Ä<¥©j@4™e#ÑÔ¨¢Ä ?rn(Z¸k€¨šòi0Ÿïn@b2Ÿ€É ?~l~ŠŽÛ<ÆÏ\46¯ÉeÊU×Ë'Åà)QuÚÞ Ô!æË›h����IEND®B`‚IMAGE 638 ./arch/monster/giant/giant.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿbƒbæ­¦v^Â’B2eHÊŽrþ¶’~ZJþ׸梂¢zBBBc.Ö~���tRNS�@æØf��üIDATxÚ•“Ñ’Ú0C‚²–oäüÿßV"ÛiiâÌT<8Ǻ&_ÿ›grË“;Þð|Ö�‰x΄º@uñFxRÅ©PUO¢X­]rˆØP¼k3­ZPêýÄ­÷±,Æ›þ1´mQÖ1–¬÷'écƒ}súúZÍcXà‡p,z½F—xñ!d®Æº.~+iù0òÆç¢Ð­ýÅ $–±Hä^ðkëÄC(�mYhoßË‘RôÃi›æ­Y«Ý±Š88Ô°ÙpEŒÇ£Ô½ŸC(sV¹a_2¤ÌÌ­êõ³\pe ^Fc=m’7ÙõnZ ÏYDÈÙ”{}HÌ�›-«ÇÛÈ„ÞÁì1Ç]m1Fx³¡ð¬ƒCE8¸ã ôæN@®¾÷™‘£úÍc”y„ﶬïÒBøgÞ|5_ê’§a¼ÖÇ€¯ a}…7°_ ã-ìÊü”½±æ.|Û`]ù™áf~øþý8à•¡üsÈ{A¸Þ7B¥€Di*ôL�¨™p€ä¥€@ÙÀDi¾—ù´°PS! ö<՗¶ÅÀn~iTO¶ãä”Ä®®ÇÔ�Õ!šLŒ²AàkjTQb…97-Ü5@TMyŒ4˜Ïw · 1YŸ€É Ïc/Øü§y,?sÑØ¼&‡Y¨ã»Ÿƒ§<FÕi{¿�×vÝ F: ����IEND®B`‚IMAGE 173 ./arch/monster/animal/giant_bat.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���RIDATxÚåA � sÿÿè¢Hið"ÚH‹å©tAÚ4Fþ[°vCÁ™ÑKìiY{(D¶îÍ,3|5=´7 Á Ð 0B*ü– vJmcn����IEND®B`‚IMAGE 173 ./arch/monster/animal/giant_bat.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���RIDATxÚåŒA À0 ÃbýÿÑ+Ÿ9•ƨN©_AÚ¶p3^c5 f`ï`ë? !¦$ûI.ú½@`]“g„-E—,R:Ä~œÆZuaÆÀê����IEND®B`‚IMAGE 166 ./arch/monster/animal/giant_bat.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���KIDATxÚc` p004à`h00,@e¬àhX¢™Vq4­1¸Vi-ZÕ�QKZ‘ת¥YP5š‹À" «˜˜Và°{(�6$Iª$s}����IEND®B`‚IMAGE 184 ./arch/monster/giant/giant_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?�Í�ÿ��.‹WóvdÑ���tRNS�@æØf���WIDATxÚÕQ €0 Åj›ûŸyXüaL÷¾CHç­ê5p€™l�h3`†Š3šÊÎlÀ €~Û"× a èK�¿Â톚7\ÓÅ_6�ëP R ™����IEND®B`‚IMAGE 303 ./arch/armour/girdle/girdle_str.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���Ï€ÿ��Î��œžªè·Ï ‰‘£þ­�J-'d3jqW:5–H$#úb‘���tRNS�@æØf���³IDATxÚÝÉà D'„ÍÛÿÿn! j,H•zéC+3^�ˆ™õíYV”õÁbÚ�´c+µ/à8m‘OD8i‘ÚœOŒÓTØpc2°ôÝÿèj(Wrap=y6|l¦ªvp?tg¸&¸‡s‹€ÔÜ–�Ñ„ ¾D‘šêÖ¾%xHJ)¹¦œjn‘ ý”ë–SÞjŒE0#· ‚}†p΀%×-‚àkv�á£þ^~¼¸Hã����IEND®B`‚IMAGE 294 ./arch/armour/girdle/girdle_str.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿ��Ï€Î��œžªè·Ï ‰‘£þ­�J-'d3jqW:5–H$Øjoè���tRNS�@æØf���ªIDATxÚÝíƒ E¯ ”~½ÿë–…ˆÔ,ÛþíµÂéµâq÷~»?6LìFqk�Ö‰ ë x>=ègæWÝ*óµŸe¼ /.Œ‹ >Ú㋆š"¯Âç9°ïM|ø [ ·y†@àIõh-m)\…1GªÖ\÷vµŠŒ1ÃJD¥æ-×Ò*e\QJ©î%—½¦D DÆHPDœf@Ìø‹ŸÙÞÇWgG,<�­¶\o����IEND®B`‚IMAGE 294 ./arch/armour/girdle/girdle_str.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���Î��Ï€ÿ��œžªè·Ï ‰‘£þ­�J-'jqd3W:5–H$RN‘���tRNS�@æØf���ªIDATxÚÝÁà C½!q’ÿÿÝÑjÓ„ ‡·‡ V㘀?$3Ïí¾„Ç%c0 '¹«{œ ¸ÎÜô›ÙK¹ö›ãÛ’‘nÀ‡Åàyµßÿ‰ÝPSäÆ`SàjøòŠˆ\êó ÃüngV€*E štÃÑIj+åÑ”dÃŒ±÷.Ú¤© E[¦f¯Uirh­Xá•P®bÇ9ƒã#q‹¨(ñ#<Þâ ÿ$]¥DÕæ����IEND®B`‚IMAGE 301 ./arch/armour/girdle/girdle_str.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���Ï€Î��ÿ��œžªè·Ï ‰‘£þ­�J-'d3jqW:5–H$Éæ„Å���tRNS�@æØf���±IDATxÚÝÛà CÝ!äòÿ¿;Ú!ôuÒNµˆqþw¿¶}Ù0±Å­Ø…¯êb×Ü_Ü/¥|tUæóý"hH™2\ Й â<Øj¨!razöŽ¡‰]‹°naó»mœám8{ˆÛønQ€b:ˆ®R0FdUåÄG]UåКs&N”˜ªÒVïhŽ‘JtpŒY•ã› XqÏpÞ3`ƒ2bÅ–€gNü„�Þsß³‘(����IEND®B`‚IMAGE 558 ./arch/ground/Winter/glacier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE!!!Z��<I<sss{{{ÒÒ±±±ÅÅÅÁôôÞÞÞçççïïï÷÷÷ÿÿÿ´(Ì*��¹IDATxÚE“ và D%ª0ÛýoÛ™ÁiÄÓg´€ílþžƒñ¸q s?xõM:ìœb_ÿY´Ö1ì ûD1ð/ÄæCÝiØ“”Ø0(ð �Í)‹º&cïë?Ýͨi_)£’¶–�Ubý$¦71�C p/ìa0«B€ó\ @`LêƒB=ËN¿€ ˜T1¬’ÞI †W~%TærÊH!Ýk³¶.p¨BE¸@kµt�$”$ŠRãC@`Dÿx)¦V{—À`ÿº$JHÁ‹ý ><h“­•Çæ”@«m/ùÏT Wm4‡YíÇ °wö‘3¡à¬£äi^š{kA_z9X”Qû€>ÇX£ÎÞy(Œ»3Ÿ¢æì‰‚ã`Ù¡ÜÂ"”#w‰’bŠ+Äò•èÁö̳Z³ºÐ§FàHcdl‡ÄEÔy™gæÙíuD+š™F¡ÿ˜!û%/B¿‚T�Ãl¡ ùõdk <6njÍ‘8‰ûT^dd±Ç¿€—hQe)]{­_‘x¿™½G]¹¯ÿŸ>V¾güB! õŠ ����IEND®B`‚IMAGE 247 ./arch/armour/gauntlets/gloves.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���D��ÿΙ™e0e0�Ι0 ¥e”���tRNS�@æØf���IDATx^µÎ1à Ð,¹H+u¯¾@ÅŸ-9�Üÿu²Çã“¿ý·g¿C–ÛB/P+Ò¾�2;°A…ø…n #žpÔV8hî8'Œx‚ôY«%´1Ê„B ô² ý%ÒîÅB ½üÕÒ_‡"½!Ûð!vbptÙ:NpƒÒ ¿˜ãÂ|jþ[þ*³õÚR����IEND®B`‚IMAGE 195 ./arch/ground/glue.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÚ¥ ���뇂¬���tRNS�@æØf���hIDATx^˱ Ä0 Fá‡*9¸´s“‡Çð(“¸ ™2 T„tÉ+?ýâqb:jvÿYë!©ÄHæ ²ë·’Š�|Ñž øÈÌm�ªcÕ[¸H5@ú†à§fxTÛñÚüßdãu' ©áÇØ����IEND®B`‚IMAGE 197 ./arch/ground/glue.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���뇂¬���tRNS�@æØf���jIDATxÚÝ‘A�! ËüÿÑ{¨ èêYã(¡ƒÖc ¬â½ «d(±+b‚G 2ƒíâYÊŽÍ {/VBGD;B7+ZŒ%Ø‹Ho3¤]¾œë.PÃ!ÆœõÕÑàN˜‘[µÄ�Ò‹”ì����IEND®B`‚IMAGE 454 ./arch/monster/goblin/gnoll.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��� ™e0ÞÞÞ‰‰‰ªªªÎ™eUUUΙ�uuu™™™Î��ºººe0�‰��ÿ�0eeeÿÎ�0��DDD���™e�úÀw���tRNS�@æØf��/IDATx^•ÒÝnÛ0 @á’ú·´Ýöþ:j 'ñ.Æ+çeþøŸÁàkàÖW×�‰ÞÇ? ‡pLp)îܺêhq~‚ïž/D“}‚~LäsðýÜ�Z3†¯�„×ßÞ!˜å·Î¯DË:9¿€šéè½' sø´TïRä ònûG µvJ)O ¥m3K$ƒT+„ÆP†9à yévÛ|’V²áýA–Ðñ�¿a7šÎ+4Í+†fËð‡ÎÛé¶y7ï_ÍÅêg°ktb;"D_ÂÁ®ÈY)«Ÿ^Ó´¨ª÷8OŸàü15>ŽúHpð,´ˆˆV)ï?S,ÐõxDút‘ {}€úòCD¯Ì¡†XoÊcÐ9³-°ÌÜ`µ¿Oø H¾ìa����IEND®B`‚IMAGE 443 ./arch/monster/goblin/gnoll.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��� ™e0ÞÞÞUUUuuu‰‰‰ªªªÎ™�e0�Î��Ιeººº™™™‰��™e�0��ÿ�0eeeÿÎ�DDD���«4ÚG���tRNS�@æØf��$IDATx^­’YjÄ@ §$õêe¶$÷?jZŒ›¶gœ¿<0WI<Œ/ÿüm:Ic”"øpÄy)Ô?AªP_‚ê‰ñ òxñ{Ìú)ßïB<9Q¤t.Ü̃‰Ôð¾üÄ(ÅXkÅ,p¾4©Fr~3�B,¯#À;‡§á‚s™÷Ô£@tƒ"ó<زøíd¬MÀa'¤4Mf V#¾£°n‚²ÑøA†¡ézZ’þÀb.°?¡k²e¸ABzuXµñ¯Âmða\§ãסó!,.³2>jN‹z÷}bFMÓÖË™º0>¦ŠˆúìÃìÓÑhûýí†HìB9r ]o?4€óÀ–àÆhJºÏ†£[ß=ûLý Qê#¤\����IEND®B`‚IMAGE 464 ./arch/monster/goblin/gnoll_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTE��� e0�™e�™e0��e��DUUUΙ�uuuªªª���ÿÎ�™™™DDD‰‰‰ÎÎÎΙeÞÞÞ™eeÿ�0e00��ªeeeºººmZZÅ���tRNS�@æØf��0IDATx^•Ùnƒ@ݽçÁå;ùÿM&ŠÁðÒ.BªB3œþír~îr,%èyó¥ÐÁ:GÅŽwùàØ÷ Ž V8ö�y Á ¹çŸ‰¥\9hDkØñ1Ržœ+?½ÐŒ6Pþ?¼N²À¼X·`â•u'€É¤›90gR~5‹O]f§ Î ßýR°ëìĸ ’PóL)pÚÚ2yç<zÀÖ$6Þ&x^Åãñ¯�¥Ün$ÿ‚Ù¦:óçÒKÇÍŽ)ê�Òç3 <Ö^Xð-MÍ€åÛ�šé`AòX@©e`¿h3 fïœVóÌ_“éWpèýxÁñ‹\†bp‚®’5ÿ¹6½¿ÃZk&±Àœk¥ñ² o± $Ö3—?M©-ŒÉ ¯����IEND®B`‚IMAGE 228 ./arch/monster/goblin/gnoll_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿÿ��ú€r���ø 1:���tRNS�@æØf���ƒIDATxÚÕ’ € C±rÿ3[-ÛÈêh`ÞÃÏâ8's-+ûfáRÒ«³(Iݨ8~‡Æ!^d¤àéÂÍĵ Œð¿ ´Ê4»× 5/Vî‰x:¸vA¤,þ:§ÊÑ[,,rÁ p$wáãœ)x+bqËö’Îí§=+’éY?ÜBÖ����IEND®B`‚IMAGE 430 ./arch/monster/goblin/gnoll_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE��� ªªª™e0ÞÞÞuuuΙ�ΙeUUU‰‰‰DDDe0�™™™ÿÎ�0��eeeÿ�0ºººÎÎΙe�œÇ¨���tRNS�@æØf��IDATx^•ÒÛn„0 EQ¶;0—¶ÿÿ­µ3¥BT©~2œ…$/ÿ) �½›RR¼™õ<%¶ ÈùÝ”í²ÄûK<ÙxNÄ$ÿþ –;ÚI“çó Õm¸þ )v‚ð`ÈEÀrhm=ð¤A½7R‡Z -¶Z$<Г ˆVb%DŠ2 (JmË›åª �ª‹FØò>ížNbÉ ¸Ý€ðáíäE¸õ\"~é¸ >©Aâ�Lh|’³‰a«0âˆd÷(ÅÅeé� ˜˜�ÅAÎ8P®[U�ðÎËËüØ2þö/°®kÚaóc=@QÎDj%Ó+S«À‘B¶"÷úmNÀê˜øöð ï€ ´¥ý����IEND®B`‚IMAGE 387 ./arch/monster/humanoid/Gnome/gnome.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEGllÊr`��€��� ��€����墂��€À�à¨�àà�  ��À� ����ÀÿÓ¯°°°ÀÀ� x�€@�òÄM   Û<`���tRNS�@æØf���éIDATx^½ÇnÅ Dç6p÷+)ÿÿ§™G,Y!˜ì2‹¡œ£+À¿åvúÂ0üeà0ÖŽRŒµ;ð5ºGÏ ÷èþöRðp'P³‚§–¬\ø´˜+š6wm")ç”W1¸ßí ûêJÅÔ}mrPUSóxÎ av„«–†1?D¸ªÁB!¥ŸÂ wuŒ@–”*¡|.hÄø>M"5‡ËìÓ ã8M‰Aˆðp7M¤ø6ˆ[ÆcÛ°mþöÝxk¶^;« RåˆS(ZØ«aZÏ' !âªFN¡6JÎÍ‘/;wê¨&\����IEND®B`‚IMAGE 387 ./arch/monster/humanoid/Gnome/gnome.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEGllÊr`��€��� ��€����墂��€À�à¨�àà�  ��À� ����ÀÿÓ¯°°°ÀÀ� x�€@�òÄM   Û<`���tRNS�@æØf���éIDATx^½ÇnÅ Dç6p÷+)ÿÿ§™G,Y!˜ì2‹¡œ£+À¿åvúÂ0üeà0ÖŽRŒµ;ð5ºGÏ ÷èþöRðp'P³‚§–¬\ø´˜+š6wm")ç”W1¸ßí ûêJÅÔ}mrPUSóxÎ av„«–†1?D¸ªÁB!¥ŸÂ wuŒ@–”*¡|.hÄø>M"5‡ËìÓ ã8M‰Aˆðp7M¤ø6ˆ[ÆcÛ°mþöÝxk¶^;« RåˆS(ZØ«aZÏ' !âªFN¡6JÎÍ‘/;wê¨&\����IEND®B`‚IMAGE 209 ./arch/player/race/gnome_p.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ R-···3¥dÎ���Qa´ø���tRNS�@æØf���mIDATxÚíA Ã0 uçÿ_NV¾µŠ|È)Ѓa±Rüó`æ’`gè™±*õ‹cH6 üTŒòGH$óêItdCÜ €uƒN` Õ [ sµ´M,\ÔïöІÎtéQXlâ­9Ks™š����IEND®B`‚IMAGE 211 ./arch/player/race/gnome_p.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ R-ÿÿÿ···3¥dÎ���‘Hô+���tRNS�@æØf���lIDATxÚí’Ë À +éÎÿrYû¸$hÁS¡#zÙ!‰âö“�ƹ¤EÙXÌ+­Uá#BÀÞ±PT—œ{ÊF H6ú=¼²�2ˆb·KÀõ38glÔoàÜÛ jnaôŽS¡Ÿó_õ=„£42>M����IEND®B`‚IMAGE 200 ./arch/player/race/gnome_p.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���Îú€r3¥d R-¿¿¿N–•���tRNS�@æØf���aIDATxÚíÏA€0QF ÷?²¡ºÄO\š8«6¼4Åþ^G¥æG%“˜î¸àŒ{Èq\�,›ù‚#`ŸÒZPKpÛ°E&«[¸×¥ÿd=‰=ET˜¨¹3€ÚØ÷:Ùz ¹:6¶����IEND®B`‚IMAGE 200 ./arch/player/race/gnome_p.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���Îú€r R-¿¿¿3¥då=Oþ���tRNS�@æØf���aIDATxÚíÐA À0Q'jîä*]è²ÐÙdá#’Øßû¨ä|UZ Åù pÇ%�§O‹Y`$1wƒØ3ÖîQ¨GÜû±q·nZxåé§ØÔ\ƒJ�8ûdÝò Œ+����IEND®B`‚IMAGE 226 ./arch/player/race/gnome_p.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿ��ú€r3¥d R-ÿÿÿ¿¿¿Î���ÿ/)«���tRNS�@æØf���uIDATxÚíK Ä0 Å<ã|tÿ×~ÐMp²è®PAVRÈ#öñÄÁÏ„ÇÞØúf(øuÀ@”áܬQø–Ú œÑ±¬i¡+êŠ3qŸô_«×>Ô0¢(–j…‚(ÊßÎÀôB!uàØÉýý[{%•ºË8ñš����IEND®B`‚IMAGE 229 ./arch/player/race/gnome_p.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿ��ú€r3¥d R-ÿÿÿ¿¿¿Î���ÿ/)«���tRNS�@æØf���xIDATxÚí’±Ä Å¸ÿÿ÷…ö¶4Ãm•Γ­€"ÆŸ!©„Ý>D@ëÁ&¾'¢ž`ã @A…lF]DÀDÌ2â Ä”|Uµ«g9”«"ÖGÅ(a®â)˜ðäÉ“7´¨½ØQó¾YKï┕´Rtb����IEND®B`‚IMAGE 217 ./arch/player/race/gnome_p.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿú€rÿ��3¥d R-ÿÿÿ¿¿¿Î���3F²¸���tRNS�@æØf���lIDATxÚíË À #‰ºÿÿÅÝhݽ:Á±Ÿ—`Qø™ öÇ `š†¦~–ûô2À €ô ß?'ôÁ%ýèÏ…EjGë,Ä+’çeg¾ qEØÜLîÎ2€ßcVAéÉ1°/r`x¬P{'����IEND®B`‚IMAGE 225 ./arch/player/race/gnome_p.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿú€rÿ��3¥d R-ÿÿÿ¿¿¿Î���3F²¸���tRNS�@æØf���tIDATxÚíÒAÀ DQ,*sÿwÄ.“îš”¥ÿb¢üór�ÔÝÌ*ó9�D½‹Ÿ6´dAÇ\çì1�»ƒ¤ {ßj¡tÖÝçH¶ÀLÙ¯A]bÝO— ø­öïñU `‰¼HNÂÁ׿ ’‡Äê…����IEND®B`‚IMAGE 226 ./arch/player/stoned/gnome_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿLLL£££{{{eeeÿÿÿ¿¿¿§§§���O™ä€���tRNS�@æØf���uIDATxÚíK Ä0 Å<ã|tÿ×~ÐMp²è®PAVRÈ#öñÄÁÏ„ÇÞØúf(øuÀ@”áܬQø–Ú œÑ±¬i¡+êŠ3qŸô_«×>Ô0¢(–j…‚(ÊßÎÀôB!uàØÉýý[{%•ºË8ñš����IEND®B`‚IMAGE 395 ./arch/monster/goblin/goblin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­sssRRR1c�cœ�ÞÞÞBBB½½½c1����ÿÎ�1��cccœÎ�œc1Μ�ŒŒŒœœœœc�ÎÎÎtk”õ���tRNS�@æØf���ôIDATx^Õ“ÉnÄ ]Íîu¶äÿ?5Ï ed3–rM8Ð¥z Áð´Bºê²z÷‘`¾ÁÌø7�oÁ-¥Ãzg} Ø�Àƒ·<œÛ ˜â<ŸàPŒxÀ€ºžˆ-S´'Bêo„6Òc$õ�Ï ±†ª9ôæeJ€ Ìé2R—ê9Œ™™e¡¦Ÿg#`a6¼?„í�ߙ֦ øj½ »{j²ù¬³�C±€©j­Vô–Éèê9¥(�q¨]EW@)Åß?H�9‚s�Çç¬ Ìá€íÕZâ7ýµ Ír4#þ¶¥ç����IEND®B`‚IMAGE 403 ./arch/monster/goblin/goblin.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­RRRssscœ�1c����ÞÞÞÿÎ�BBBœc�c1�1��½½½œÎ�œc1Μ�ŒŒŒÎÎÎcccœœœˆ.¹”���tRNS�@æØf���üIDATx^½ÒINA DÑþ‘s =÷?*v6jjBl±Íç°RòéÿüöþE¤cP¯PMœSXˆW-\s.t–àï ççeñøp¼¯¸±YR€Z_Ò($²§@.;‘.pq7€Â£¥‡^³™={à“™Ð¼(½‰uA.Ê0àÉ{P« *åpG5ñÖ¸c|l¤‰ç¼½o³í¿“‹ö‡0O €Ož4æ™\Ðtx.²YH:ƒ\dN”À8Žz~™# RÔË­BŒPLýbaýžl$a.`!xEˆ¦W õœ\ôÇ¿Ê'UbK$¬����IEND®B`‚IMAGE 395 ./arch/monster/goblin/goblin.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­sssRRR1c�cœ�ÞÞÞBBB½½½c1����ÿÎ�1��cccœÎ�œc1Μ�ŒŒŒœœœœc�ÎÎÎtk”õ���tRNS�@æØf���ôIDATx^Õ“ÉnÄ ]Íîu¶äÿ?5Ï ed3–rM8Ð¥z Áð´Bºê²z÷‘`¾ÁÌø7�oÁ-¥Ãzg} Ø�Àƒ·<œÛ ˜â<ŸàPŒxÀ€ºžˆ-S´'Bêo„6Òc$õ�Ï ±†ª9ôæeJ€ Ìé2R—ê9Œ™™e¡¦Ÿg#`a6¼?„í�ߙ֦ øj½ »{j²ù¬³�C±€©j­Vô–Éèê9¥(�q¨]EW@)Åß?H�9‚s�Çç¬ Ìá€íÕZâ7ýµ Ír4#þ¶¥ç����IEND®B`‚IMAGE 403 ./arch/monster/goblin/goblin.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­RRRssscœ�1c����ÞÞÞÿÎ�BBBœc�c1�1��½½½œÎ�œc1Μ�ŒŒŒÎÎÎcccœœœˆ.¹”���tRNS�@æØf���üIDATx^½ÒINA DÑþ‘s =÷?*v6jjBl±Íç°RòéÿüöþE¤cP¯PMœSXˆW-\s.t–àï ççeñøp¼¯¸±YR€Z_Ò($²§@.;‘.pq7€Â£¥‡^³™={à“™Ð¼(½‰uA.Ê0àÉ{P« *åpG5ñÖ¸c|l¤‰ç¼½o³í¿“‹ö‡0O €Ož4æ™\Ðtx.²YH:ƒ\dN”À8Žz~™# RÔË­BŒPLýbaýžl$a.`!xEˆ¦W õœ\ôÇ¿Ê'UbK$¬����IEND®B`‚IMAGE 395 ./arch/monster/goblin/goblin.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­sssRRR1c�cœ�ÞÞÞBBB½½½c1����ÿÎ�1��cccœÎ�œc1Μ�ŒŒŒœœœœc�ÎÎÎtk”õ���tRNS�@æØf���ôIDATx^Õ“ÉnÄ ]Íîu¶äÿ?5Ï ed3–rM8Ð¥z Áð´Bºê²z÷‘`¾ÁÌø7�oÁ-¥Ãzg} Ø�Àƒ·<œÛ ˜â<ŸàPŒxÀ€ºžˆ-S´'Bêo„6Òc$õ�Ï ±†ª9ôæeJ€ Ìé2R—ê9Œ™™e¡¦Ÿg#`a6¼?„í�ߙ֦ øj½ »{j²ù¬³�C±€©j­Vô–Éèê9¥(�q¨]EW@)Åß?H�9‚s�Çç¬ Ìá€íÕZâ7ýµ Ír4#þ¶¥ç����IEND®B`‚IMAGE 403 ./arch/monster/goblin/goblin.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­RRRssscœ�1c����ÞÞÞÿÎ�BBBœc�c1�1��½½½œÎ�œc1Μ�ŒŒŒÎÎÎcccœœœˆ.¹”���tRNS�@æØf���üIDATx^½ÒINA DÑþ‘s =÷?*v6jjBl±Íç°RòéÿüöþE¤cP¯PMœSXˆW-\s.t–àï ççeñøp¼¯¸±YR€Z_Ò($²§@.;‘.pq7€Â£¥‡^³™={à“™Ð¼(½‰uA.Ê0àÉ{P« *åpG5ñÖ¸c|l¤‰ç¼½o³í¿“‹ö‡0O €Ož4æ™\Ðtx.²YH:ƒ\dN”À8Žz~™# RÔË­BŒPLýbaýžl$a.`!xEˆ¦W õœ\ôÇ¿Ê'UbK$¬����IEND®B`‚IMAGE 395 ./arch/monster/goblin/goblin.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­sssRRR1c�cœ�ÞÞÞBBB½½½c1����ÿÎ�1��cccœÎ�œc1Μ�ŒŒŒœœœœc�ÎÎÎtk”õ���tRNS�@æØf���ôIDATx^Õ“ÉnÄ ]Íîu¶äÿ?5Ï ed3–rM8Ð¥z Áð´Bºê²z÷‘`¾ÁÌø7�oÁ-¥Ãzg} Ø�Àƒ·<œÛ ˜â<ŸàPŒxÀ€ºžˆ-S´'Bêo„6Òc$õ�Ï ±†ª9ôæeJ€ Ìé2R—ê9Œ™™e¡¦Ÿg#`a6¼?„í�ߙ֦ øj½ »{j²ù¬³�C±€©j­Vô–Éèê9¥(�q¨]EW@)Åß?H�9‚s�Çç¬ Ìá€íÕZâ7ýµ Ír4#þ¶¥ç����IEND®B`‚IMAGE 403 ./arch/monster/goblin/goblin.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÆÎ÷!!!­­­RRRssscœ�1c����ÞÞÞÿÎ�BBBœc�c1�1��½½½œÎ�œc1Μ�ŒŒŒÎÎÎcccœœœˆ.¹”���tRNS�@æØf���üIDATx^½ÒINA DÑþ‘s =÷?*v6jjBl±Íç°RòéÿüöþE¤cP¯PMœSXˆW-\s.t–àï ççeñøp¼¯¸±YR€Z_Ò($²§@.;‘.pq7€Â£¥‡^³™={à“™Ð¼(½‰uA.Ê0àÉ{P« *åpG5ñÖ¸c|l¤‰ç¼½o³í¿“‹ö‡0O €Ož4æ™\Ðtx.²YH:ƒ\dN”À8Žz~™# RÔË­BŒPLýbaýžl$a.`!xEˆ¦W õœ\ôÇ¿Ê'UbK$¬����IEND®B`‚IMAGE 447 ./arch/monster/goblin/goblin_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE���eeeÎÎÎ�D�™e�™Î����ÞÞÞÿÎ�Ι�DDD‰‰‰ªªªUUUuuuººº0e�e™� Y–T¶���tRNS�@æØf��1IDATxÚ}Yrƒ@ xÁ0+¯ï×H2¸˜¸¿FRó¤â2\>Ááqüp_×µs$íVøKøJÚðˆ³RŽ €øm´Ü”YƒNÎY£€Úwñµ )1î¡wµ©©_íÚ©‰ñÏV»˜áP«¬Á1Àë00j ¡3XFj©°`J-Ö36# ï•—Áói‡3‰‹\ƒ'ÄU‡„ôx€óìó³@©yÊ0ß¶ïGö›OS¶ý364`ø‘iÊußïãxÇA6Ëç•AèÝ$IÙçÆm†ß ~—‚¾j…×o1ä…ü!]FÛ»[q–h¾åå$ÔeYØÚ³ž„\kÙ…Rk>Âȹ”H{æŒóžWÿ¡Xc7ÄŽÞà(„`Ÿm+ƒ½þ9n&~˜ì7����IEND®B`‚IMAGE 210 ./arch/monster/goblin/goblin_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒú€rÿ������"?���tRNS�@æØf���qIDATxÚÕŽA À ÄÔ™ÿ¿¹b +L=õdDÔvjàEE`ðè gšxCÂÄ?m•wøVï³g€©5½×‚<â†S`iß2(þÝýÈ…>ùYˆ‰Ï` ÁY@ù,å£@ã ú2™¦ ^yÕg����IEND®B`‚IMAGE 406 ./arch/monster/goblin/goblin_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE��� e™�uuuªªª0e�ÞÞÞUUUÿÎ�‰‰‰™Î�DDDººº���Ι�ÎÎÎeee™™™™e�Ô\9���tRNS�@æØf��IDATx^•‘énÄ ;>€œÛãýßµ`%¢m;â‡Ñ7²xûÀoùk…} ÕÇå~‚B$|ô,Š&˜WºØÝEÁ/]ž”yF #÷Ð*ºÁ– J×@#äèU xŒ ÆHÊ‘WhÌÛFvšçGˆ×3MÌä ¥N¨:0ÑòöÂP€k…0äwö]¤ÿXÒÑã Ènã7@Š©<¦i4&Dn J¡ î zcPD�ÜEuQ[ ˆ&©Ä¾ã-IU[WFaQ•¡¼õYX{Cl]×S¨¥ ‚›•S(fþ$�î¥jépåfV@ ˜Ùepr '× Â—£þ+ß[\1+sÊB����IEND®B`‚IMAGE 229 ./arch/jewel/goldcoin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿÎÎ0™0�™™0™e0e0�ÿÎe™e�ÎÎeÿÿeΙ0 !øzò���tRNS�@æØf���oIDATxÚÝ’K€ DE¥zÿû)Ø(Æ•ÑÙ4-/Ó!°üO’59'� ä€™\B6:] 숸ƧßÜøÕA5Н•,×rñ}ü\Œïœ°ÍdæPzåµNìšíäý·´·¿òk:�¹¿ Tx@U=����IEND®B`‚IMAGE 188 ./arch/spell/Golem/golem.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���I@ø›���tRNS�@æØf���aIDATxÚÕŽA À@uþÿè‚s1,ì©ÍAÄ ƒñÏ�¬÷Y2Ùú¹‚pÝ%sD%kY RY xK£Þ¾â{*¾úDœ^OªïqÐÓöG�qð �'á;y�](ˆ1È2����IEND®B`‚IMAGE 187 ./arch/spell/Golem/golem.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���I@ø›���tRNS�@æØf���`IDATxÚÕA €@ ÍüÿÑJ¡T¶¤ zÑ9ä’!´Ç?˜i# G Ü z ‘4a…EHøO€è‡Wñ}ë{‚yÿšá&ü‘Œ}Ä LÓoÊó‚Ÿ€À ÔÂw8c^/ˆª)£����IEND®B`‚IMAGE 283 ./arch/spell/Golem/golem_red.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2ÿ�����±!!@1ü���tRNS�@æØf���ºIDATx^mÐá­Ã àJo‚à,€a�̱@ˆ÷Ÿ©ïTá©þ…>u¯5�Ö; ž¿aøH#X]`¹‰p¥œ•�›Àæ½z²‰$­†ö”©Í Œ0´´8ûp½¦ a‘ŠF— ‡Êà™î~Ò ýÞ�¬B´ÔªLĘºÊ\˜76˜½î2†>ó€Ï!mÀ}8ZÀ¸™¸¾Ð¥½p–� ^‰o]° „ÿ•7@ì*hÚrV����IEND®B`‚IMAGE 277 ./arch/spell/Golem/golem_red.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2ÿ�����±!!@1ü���tRNS�@æØf���´IDATx^•Ð]Ž… †áIÎ ´lÀʬ/àgÿkš)‰§Ä»ùnŒZ~ž|�ÿþÊxåÐàšPò xÎ`cÆZgc3Ï­Ùf5»~sL0Ä×UÏvN˜±¤šÚqEèHÚ0Í\Ñ)íÄ/HZ‡A6u©0Í*w�3š| n~kˆ©´N�íäÎ+ìEWh‚€ù^ì x=ƒ®tßQ¼KÒùŠwI ˜sÀ¬âðWò wŠ*'p‹„ï����IEND®B`‚IMAGE 201 ./arch/misc/gravestone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿���ÿÿÿÊ1^é���tRNS�@æØf���hIDATxÚÝQ€ ÅdÝýϬ,3‹ŒAüÔþÐò8¾ N©UÔ Ô¢eÈ2 õ�'È€:ß7Ð` ôä>FßÌumG F¯dÿøaì*²o»� ªæAøÕ�Îû}Pø€Äñ3NÖÜêˬ—����IEND®B`‚IMAGE 230 ./arch/monster/humanoid/Dwarf/greater_dwarven_guard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒ R-¿¿¿@@@ÿ�����ºç±a���tRNS�@æØf���|IDATxÚÕÏËÃ0DQê4¾ÿÿÇO»œEVɉƒ…ã]Ûú3Àg(ºv�ö€9ñ€#ÎL<<ˆU_",ÈðÉà¿ù`A X¡âÐæcVëBó@‰1=Ð X¡_¨|3ÔDX@V)±ÑI®¨Y» ð?Þ” $V±QHè;����IEND®B`‚IMAGE 239 ./arch/monster/humanoid/Dwarf/greater_dwarven_guard.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒ¿¿¿Í…?@@@ÿ�����‚ÙÎW���tRNS�@æØf���…IDATxÚÕ‘Q €0 Ck­Ëýol&‚¤øã­Ë£0ÿoùwÂÁý8 Òí­÷Æ€dd ³ÇÃP.#Œ °ØwÔ�#Ä%`†Rž é ˆœk £ï ru?Y&S8*‚=^Ø š/.å€ á•V *ÝT!T;¬ßû'Q¬Ð(z"f����IEND®B`‚IMAGE 234 ./arch/monster/acid/greenslime.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�.‹W�Í� &÷_���tRNS�@æØf���ŒIDATxÚÕ‘Q€ Ce»ÿeLÚÚD¿µ& ±¯°Áñ9EéÍÎR�óp™¹‹!§V]•ô*@Gê›Ê]éwÄE€Á¼6ZU’n÷1V ''(%aõ&K¼ƒ>Mü…7åcê<É&|L´3}Nz¹q,{..×EŸDç‰Ñ%›¾"}íé§4†)»vŠ����IEND®B`‚IMAGE 238 ./arch/monster/acid/greenslime.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�.‹W�Í� &÷_���tRNS�@æØf���IDATxÚÕK€0B-½ÿMó‰{eQÛòÒA®/ ^Œ³îG ‘ÁuŸO%h"Õ| ®×‚ q,*@ƒ"e"eˆ”04†há—=”£‰@øÄ(ÓERíÖ¯´²QØ,*çCèfj…¸Ì¡�®ÑiJ“š Ò‹/½kEIÚÉ·|GûOº¼Î¡ 7����IEND®B`‚IMAGE 293 ./arch/monster/undead/grimreaper.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE²ÀÜÿ��PPP���```€€€ppp ßšüó���tRNS�@æØf���»IDATxÚ}ÏÑà DÑŠ°ûÿ\ ™T+ÄÉSî™ýôgö©$À³çéAÆ40>;ÑY÷ÛT]ý×J�Þ­~%Íźt�5€ÑYŠœ mN¼M˜Ný„Ø|fÊ BFˆš†°îš0 i½&` H3Ä%ë��ë z‡“èJVpá*ä¯m@å€B/�–W¤x'.¶ñ¶‚ò!]Œõ" b¢$Œ:hDžÌñýŸ/½À>È:¹H����IEND®B`‚IMAGE 275 ./arch/monster/undead/grimreaper.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE²ÀÜÿ�����PPP€€€ppp``` l~ ���tRNS�@æØf���©IDATxÚÍ“A„0 i“8ÿÿñ:A¢Ò*Þ½b<ˆW'+—LÞùÕ÷U÷ç&ò6@Ãéy–1ç-WÀÖ ö{cT `Š ÏŽïh0£€Ô8ÃÂÝáÁ�9t0áMÐ!$h‹‡$ Á¬Qeú€ËÈðaÂá X’Ρ§ Ïaw÷îL�U6câz|Í11£í5Š`¾€5h� úo^u,�jQòä1ÔÃ����IEND®B`‚IMAGE 274 ./arch/monster/undead/grimreaper.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE²ÀÜPPPÿ�� €€€ppp```���<j ���tRNS�@æØf���¨IDATxÚíÐÁà Ж$öÿÿñR‰XÑîsÛSžèõÏ>äaîa‡yà­Ã‚쥀g aä743¸ûC´åˆ3Îí÷ÈÀV0w–€\D{�ž×HÂ]Å—È´E„@F FsVÝ%²b‚é)³¢ni!à`‚E0dw’1á8 Æ¢MCo»¡°§è›ê\�=¤ÎÛ/Îú§Gìú)[Ê.åó:����IEND®B`‚IMAGE 282 ./arch/monster/undead/grimreaper.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE²ÀÜÿ��PPP€€€ ���ppp```Òƒ0���tRNS�@æØf���°IDATxÚíÑQ„0Ð…ûßXÀ¦4¡Þ`Ñ~è<'Vÿùàv×bÞ|L\Á3„IâZÀ6ͺÈö6,AÏ—H`DÏ—P/¨@ËWÅšQ”xÉðãÕ¦0Rr 9m ¬Žü Àv:ÉYB® Dÿ“‘Æ©! ÈnÀ0Êê-‚y%àIn1Öêï¯À/ ‚ØC_j—‘,PøxÞs´Ê›ÈiyߎȾ|�Ö6:¯(Œ1����IEND®B`‚IMAGE 464 ./arch/ground/Pstone/gstone_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEqqqiii]]]UUU0™�@@@888 8ÂÌ*Ï��pIDATÁ1ŽÛ0иläöPN©`gcõÆ/àbzÉ K V–ÿØûžôê÷噟šP÷ ª³Ý‘ w p’�?J%¯Èvt*�*I¶Rê$ª’_ÙÈíLkvW@j«&Ò©Oüg71›¶4­›œi¥ŠÜCø˜í’MDž{R̼Eæ(½>w<›B±n' Éw Wþ2»(1Í;ÊJäÊESn…¥Ò«$¬$›ˆ›™B%Íí›Â` x²‰t¾„¨O–±W¿+ N{ |ác0}$Ì´/Áz_êKæÉ›”ÃÚ‚äo�yúE1:?ü?ð¨¼b[ð–àoàÆMÏ"§~˜üÒëB” :[‚·å¶Ž±ïEóñBµVÙbP) ²µB£}sQ•©ÁI£sëžo-BªŸ›³ë‡VLÎ,ëU¤s^Â`F8Ù%ªÖ-ê`£È@ޱ×» ƒuQzõ¿ªê¼ªv ?òû£N|ÓÐ����IEND®B`‚IMAGE 232 ./arch/monster/humanoid/Guard/guard_hard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ��€ R-¿¿¿���†I,���tRNS�@æØf���IDATxÚÍÐIÀ CQâÿ#·¡Ë0H]ÕaÁcŠ~¤žuÌðŠ`›n'ÜwÞ^f÷Hç:@U p"&�™ è¹´ ÀýÝl¢]m8œ€@ÔGº€úÍ3à°è$FŒ>Í9 ØÚ¡ÐG€0K�h”Ÿå‚g‹÷ºp����IEND®B`‚IMAGE 185 ./arch/monster/humanoid/Guard/guard_ligh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ R-At���tRNS�@æØf���^IDATxÚÍA �0Ã4ÿô  »”ží& ª³ ÝàCd I€¹Ew‡¤Ù<ˬ§ ð}ßiLx€ oã—I°@ž!þ©„ù=ä…‡~ ù…ê>�€©kz:4rÃÉ¡Å����IEND®B`‚IMAGE 196 ./arch/monster/humanoid/Guard/guard_med.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒbî!���tRNS�@æØf���iIDATxÚÍA �1 ãüÿÑeM©…=U8hi=$<Á‡ÈÐ2’�¹Bñ‘ˆ73ö:‡9Ä’æ¦6 |3ûâä]+ + 3;!�÷h €8Es•�Ÿ˜…—úp¯€Þ×´�….¤1Œñ•����IEND®B`‚IMAGE 388 ./arch/construct/town/guild.x11 ‰PNG  ��� IHDR���@���@���XGlí���PLTEÿÿÿ���²""Òi R-ÿÿ�ŽäŸ���tRNS�@æØf�� IDATx^í“ÁiÄ@CmH–l u`RÁ ì!ý·fƯp9æ!Øx|´Ÿñðçüƒ)0™Þ„JB˜y°73ÔXv„°±‚e*1zÞT “>Ñ žþ(‹ ¨‹è‚LŸè^ÁWI䥚ÀysrX„Þ)©þ†ÑE`è^Až¡à.Hîn0ì™ BèmÌnÑDï¢Ø}´²'!t_µ-ÃI3Áîa0íî·i´ ¸´[¶õâ•Ú1…õÅ3),»™‚†,àŠß…Ê)L)4WBM¡ÄëËmÒk ºN!PkÀsšR�¼Â˯%!˜ôGù)ž…åAp9v¶iú¥@WJ…x,!”‹< ÿ|sýkÝ&wòd����IEND®B`‚IMAGE 246 ./arch/monster/humanoid/Human/guildmaste.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ú€rÿÿÿ��€ R-��ÿÍ…?²""¹FA���tRNS�@æØf���‰IDATxÚÕÎ9„0 CÑàM¹ÿ‰GqA3‘{LAñ6ë“ãîkï¡›¹ïAx•;@1o€Ïã(ç ‚ €] ]ŸˆSyEþä©Ý‘w`VeäýD"9�Ħ®  »&hÀÚƒ[GÖÅG-@§à‡$ °ƒä¢û^pºw|_Ÿ™Ã’¥…«‰����IEND®B`‚IMAGE 245 ./arch/monster/goblin/Kobold/h_kobold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���º��ÿ™0‰��‰‰‰ªªª ���™™�00�ee�Ð<Á���tRNS�@æØf���IDATxÚíŽ1„0 }p!¶ôÿÿž˜4Èt§Äiv­IüóNæÔíø˜ç´<:ƒ_®× ƒä@g À“wBnØd è tÀ‚áT•Æ HM÷<‹Ø?»¤0 Eý^ÈD•7‚P¼L@N'h;%t<è>Ákî;XüÁü�„„ãBã����IEND®B`‚IMAGE 238 ./arch/monster/goblin/Kobold/h_kobold.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���º��ÿÿ�ÿ™0‰��‰‰‰ ªªª™™�00�ee�+¾Åó���tRNS�@æØf���xIDATxÚíŽ1Ã@Àh’6`ÿÿ¿=)K‡ÀÔnµ‹-Düù :ùÓ5Ž>¦Â§×îƒS=û $ŒÝÙ‚ÜØ°÷¦)Úù‚ªZÓ…¨Èý‘W–…ô.P€2l.h&Õ½°Š Âç`ɤœ|HSè'Ñ%×6¾È†ãðd Ço����IEND®B`‚IMAGE 317 ./arch/player/stoned/half_orc_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ���ZZZDDD¢¢¢"""oooUUUwwwªªª(((FFFyyyÍß•¢���tRNS�@æØf���¾IDATxÚÕ’±ƒ0 CIj¹`GýÿÏ­€S‡Š;œ³^“cúCQzòù~Úð1û\ MO#jŸcÐ$¨VèÆs¾¶&Ý™ …¯nOî¾"J`dfð3�w7 ‡”€K8M€ Ù»B´€€Þ™Èú uØZDƒN¶/±Å£¸Œ®^ݵ´"¨ýu„¶…\¸™‘ÂŒW€sç^w€ªW ‡Áe V~,ËpŽ`áÇLÖ?ÿÑü‰¾ 2h}‹����IEND®B`‚IMAGE 325 ./arch/player/race/halfling.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���1��1c�J�cœ�œc1mmmœÎ�ΜΜcÿÎ�­­­ÎÎÎÞÞÞÚÁŒ���tRNS�@æØf���ÃIDATxÚÍ’Ë Ã0 £.ÂÆ±›ÿÿÛ®ì Ùi.=tq0ƒ´„lÿÜñŒ À|8 ´µ w\xÞLX d. AJ) ¨Ê ˜¹*x—J¡F®šÈ™D«ó‚”4Y¨ˆÈ< 3»dßåBF ±a:aïWÀˆï`‰™+HÑ@ç^£›ˆBÎÙŒìUðÁ3ÓZë3Æ0¼£�ZOöÀËOó„¯mОà rÎÆÙhõà —c˜Èqº÷¯?Ê ÛóœKôËs����IEND®B`‚IMAGE 318 ./arch/player/race/halfling.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���1��1c�J�cœ�œc1mmmœÎ�ΜΜcÿÎ�­­­ÎÎÎÞÞÞÚÁŒ���tRNS�@æØf���¼IDATxÚÅ‘ ƒ0 D›¡¥¶óÿÿviNTRç` v ¾×3`ú[ð‰|)Àâg¿¹dž×‚pÓ°Þ7À\᪀ª¤fB›ûkU©­ 3W¥Q%AD"WÍäY²,2 gÍ#¦–¹€,«à@£ŠÌæ úQ€sVøž‘syVp6³ÃD¡”2ŒÂUL‰KïÝa¸Ypƒ°'5^8 ŒˆOgâÿ»ŠÃŽ˜ï7í1Qýa^z½q†µÒU����IEND®B`‚IMAGE 345 ./arch/player/race/halfling.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������!!!�e�c1�œc�ZZZ”w^œœœ­­­Îœ�Μccœ�ÞÞÞÿÎ�@ðÛÎ���tRNS�@æØf���×IDATxÚÝÒËrÄ DѨ…€ðüÿ¿M‹83W6³Š”]÷Xlüñœõ ÷â=éhmO½ëø ´¦Êù öÜà`€�ŠœyžPcTG]O�µFNUí¡+î=ú „ÞƒN‚ù[€_ HÓ9önv-àiMã~Ãê†Õs&hzXàf‘ü X-BdN3µ¾l°ÈzX@`>‘ïØCù¶ ï&扇ógO)•2Ø!n¯EÀ\�:8ÆšXʬ)% çï�àøCÃ×méàÞ:_q;Vg\s����IEND®B`‚IMAGE 344 ./arch/player/race/halfling.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE������!!!�e�c1�œc�ZZZ”w^œœœ­­­Îœ�Μccœ�ÞÞÞÿÎ�ÿ�ÿ(›W°���tRNS�@æØf���ÓIDATxÚÝÒAn€0 DQ<C×$䦽ÿ²m‚ºê¦–@Aÿɰ`ûƒ˜ß:¤Ÿø J這o|¼‚Rø¶èVЯa† œ+�(‚k�ªzµrpôŽ}¯u¯ ÀŸ@o° [€öù½'=6Ha;·$\ݬP§~ohUDŒZ8-H ‘ÖDRâÄÜÀâxœHÃi<bñ¿AšD”è'’ôS\ôœ³ŸÑ!qÆx�wGoÌ<?À5nÖSeú{áž÷ÿú.0_©ú\ƒÐF����IEND®B`‚IMAGE 355 ./arch/player/race/halfling.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���1��1c�J�cœ�œc1mmmœÎ�ΜΜcÿÎ�­­­ÎÎÎÞÞÞÚÁŒ���tRNS�@æØf���áIDATxÚÕ[ŽÃ —m!<–ûß65H‰cŒ’ýM[–ñT©Gü|wô‰§•!òNøÕa¨-„ðQˆ¥Ä‡ð·l(<t¬H!ºÝ©ë‚³XP´‹5BÐYÈÙL1jßEMUç=qóH›s7:üU0CѶ!ø]Šlæ£É ±È…¢“�F؈Ìfá5†,g] BEÆ5q¦ „a­¢Â r)0úqܰ&¾¦ƒwÆò þ±_xJ©µÞe"C ]‡�n Ñë0¡19÷0z~˜œ£öÚ`Þ’†À•!Ïtú_î3àìüX ����IEND®B`‚IMAGE 350 ./arch/player/race/halfling.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���1��1c�J�cœ�œc1mmmœÎ�ΜΜcÿÎ�­­­ÎÎÎÞÞÞÚÁŒ���tRNS�@æØf���ÜIDATxÚÝÐÑnÄ DÑ¥7^³—ÿÿÛŽ…*6­ú܉Dsb)yüóp{¨|oëø ó (+ˆ;à­ùÏ� MלÁ'{ÍISx½¸çi4§ñÄÕ1ØzSpçùDcàÌ’À¡^éKoîÆqä·Ð‡ú¨HîÞ°½Ÿä4v}/KñD(] ˜£“ód`Ð;9B.RX`'ícM¾¢~L`ù« Ö1n¤ñ\+ˆÈ^™ b­µ2ÿi%öºO÷žQ)Ä 3756qKÿœ/'œ¹Ýõ¨r����IEND®B`‚IMAGE 330 ./arch/player/race/halfling.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÞÞÞ���!!!�e�c1�œc�ZZZ”w^œœœ­­­Îœ�Μccœ�ÞÞÞÿÎ�~k���tRNS�@æØf���ÈIDATxÚÝÌÁ’ƒ0 еŒL6qéÿÿmån/Z.=­âû~þc |º.„e^|žÈ&a'øk¶fзÅàÜá¿ o¾,ˆ1N„:œ\n@œ {d"Þ ¿£€EpðmóÝo€{�h 9 ÐïÑ-L@!öÀIw�ÌÈà jE(ÔÇŠºkóüh]bÐY)Fc kRà(P¿ÀÖûº®;ñ—ZÖt]P;Öº^e•k—˜2ÁoåGKptâAÅ����IEND®B`‚IMAGE 329 ./arch/player/race/halfling.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÞÞÞ���!!!�e�c1�œc�ZZZ”w^œœœ­­­Îœ�Μccœ�ÞÞÞÿÎ�ÿ�ÿ&öAó���tRNS�@æØf���ÄIDATxÚÝÒ»nÄ0CÑèŽ8«èáýÓýÿ2#u± »I‚ °š¯ÿ€»>ñ RïO€{aýa‚^B¤@)|öÂÖçFS; û>B Ëo¾MX aRy�¾ B(<Å ka™Lïi;ãÍ€K»`ŠF^ ¹—a”’ë L¼›Ñ‹“`¸ƒèŽìÑK¸ @­.ýTE–Jr8j}½vÁ|ÌB°]ã*)¥FuyÔR¦ª!®²fY[—`kþ(?©w `êî|����IEND®B`‚IMAGE 350 ./arch/player/stoned/halfling_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���yyyIII­­­ÆÆÆœœœmmmÞÞÞ¤¤¤QQQÎÎΨ¨¨nnn½™-Ú���tRNS�@æØf���ÜIDATxÚÝÐÑnÄ DÑecBáºëÿÿÛŽ…*6­ú܉Dsb)yüóp{¨|oÛø ó (+°;cÄÏ� CלÁ'{ÍÉPx½¸çéŒ`ð$ÔÑÙzWˆàùDcàÜ“À¡^©•KïÎqä·P»ú¨H1ð½Ÿä v}-OñD(U x “ódàP+9B.R¸á™ ícM¾¢¾Oàùh« µfÖ;ᤉ\:+03È^™Àl­­1ÿi#ö`ºO÷žbÖ(Ø 37Í6qKÿœ/ùÝÜ‘~����IEND®B`‚IMAGE 162 ./arch/weapon/artifact/harakiri.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���GIDATxÚåб �1 ÃÀûý€{‡ßG­àóVL`´ÀOa !Þ[ D�Ðý>•Cö¥†*ŠùRoÀ W1è<•’K�ÎíM“����IEND®B`‚IMAGE 262 ./arch/armour/boots/high_boots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��� �� Ιe���e0�� �™e000�Bß» ���tRNS�@æØf���™IDATxÚåIƒ0 CC=(÷?1B.]¸æ­(o=™õgÊ]ºÝûw¨(§D4 ¨rê ¨÷ûí˜�ÄU;ÀAÐajù*}üaÏcò\#è#�„�•˜ Ðp-/`Ï •S’–lr7 J`Þ O3Sûä“çô>¯�Šh¾AíL™uñþ8^ÝIɾ%Õ.?¤ :íݲ����IEND®B`‚IMAGE 381 ./arch/ground/hills.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE™�,Â��u��e��¡�…�}�ÉŸF��� IDATxÚ]“An1 YoHþÿÇ]Òw° #9²„àE¢ðS‘‚”ƒ^ȸAš7lA~>'¤Hðò/©>¡(„/¯ñÑ/ØØÜ:åÑ6ú+½¹¼×2… Œë“à,az%Šr©üàô •\i?Ïã¶ŒÓso˜.z[ŽøîY÷ `¼_¾¼çÉØ=ûY··¨FðSVuýN ö“ÀUâÂ'8žý…S<¾qDèl°Øšï ÖO�þß`ýÄ&nogÇۀγ‚sÁN!9«+ïÓ º1¢´þ°¤Iˆ6zúhJ¬?E¿‰ë1ºM&áÄ ¸fÒŠã]ÏÀñöíóæó§pà=“”•h=›_T¯x@êØ2øG´2§+Þ����IEND®B`‚IMAGE 381 ./arch/ground/hillsrocky.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE™�,Â��u��e��¡�…�}�ÉŸF��� IDATxÚ]“An1 YoHþÿÇ]Òw° #9²„àE¢ðS‘‚”ƒ^ȸAš7lA~>'¤Hðò/©>¡(„/¯ñÑ/ØØÜ:åÑ6ú+½¹¼×2… Œë“à,az%Šr©üàô •\i?Ïã¶ŒÓso˜.z[ŽøîY÷ `¼_¾¼çÉØ=ûY··¨FðSVuýN ö“ÀUâÂ'8žý…S<¾qDèl°Øšï ÖO�þß`ýÄ&nogÇۀγ‚sÁN!9«+ïÓ º1¢´þ°¤Iˆ6zúhJ¬?E¿‰ë1ºM&áÄ ¸fÒŠã]ÏÀñöíóæó§pà=“”•h=›_T¯x@êØ2øG´2§+Þ����IEND®B`‚IMAGE 186 ./arch/monster/humanoid/Arabic/holy_priest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ðæŒÿ×�ÿÿÿ���çàœ ���tRNS�@æØf���VIDATxÚÕ‘1 À0 7÷ÿ/ׯd”=tiÑr‡ Øþ—g ³Ã°€Ó/àÃÐd:¾ žæ;èŠÖBY’WpäKÀéÁ{Á°#¨\"œ/ç¦ê¾¼åq…Fåýb����IEND®B`‚IMAGE 208 ./arch/skills/Skill_Tools/holy_symbol.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�²""��ÿÿ×����yb���tRNS�@æØf���lIDATxÚÝ’1À ñýÿË) .C§Ö ‘8Ù"þ(à�tP¢Ng6²€´@M"Ò%¬v·âv!“X ‹ dKbK0×´�IëOï0Ôå+ÌU¨Ù¨âA ·@;:ÿäu¹*Æ–?-����IEND®B`‚IMAGE 208 ./arch/monster/angel/holyghost.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VîÀz¥¥¥ÿÿÿ²$GÑ���tRNS�@æØf���rIDATxÚÝ‘Ñ €0 ›ìÿÿÙzˆ{iö®ƒÐçÀúbä¸Z‹½L[mÞC<mäû�CPÓ~ù rd%À8\¥dh†Dƒ ƒgÞÐ�(À€"zÿw�\ÖmÈÁpŠš9îÍý_.ÊXÿ¹����IEND®B`‚IMAGE 184 ./arch/construct/town/hovels.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿÿÿ���ñÿCÁ���tRNS�@æØf���WIDATxÚí’[ �! }äþg邎z€uį¤i -¿Cš=Ò«2#T#¡}¿€Á‡€�¯Ç÷«ÇÒÙ`à}:$m ¡ÏN¨ß  ŸŽá‘*ÃP—çÏ����IEND®B`‚IMAGE 386 ./arch/construct/town/hovels2.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������²""ÿÿÿéÂGÊ���tRNS�@æØf��!IDATxÚí•ÛÂ0 CIÇÿ3e9Ãñ¬î!TWÝC…O2¶x©©?Tdá¤,i퀥\Âß"kó—[rœðŠÊßúJupÂR€@à;€õ×ÝOÐmÈ5pbž�àï~Y_�Î5¢Ýè «m�®¯ŸâZ0@÷�0ôìþîzû¯:€ßÄ,”€³ÿ�Ù08^ü)ùZùiø ÅçUûÓãwq1x<üÝÏ’~þJW�þ(^"øm”Cdù·e ü¶¨�˜@ªnH"P ‹G9ûm u¡ óÔL.O¢ “Q€~.ÄGÅ�(Žü;d*ñw í÷�„Ú0�~|*Æq€{~ =¦¦~Z/¬+ ͹µ¤ö����IEND®B`‚IMAGE 310 ./arch/player/race/human.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���´IDATxÚ¥ÎÛ Â0DÑÌÚ&4øÿëä &§*ÎCKØ«—òëä]öØ—€´€;W€úÜ Q öÝX�ÝÆvï8ÿÀ>rÌ÷ˆÝT•÷Þpˆ§GïšzëܸÓzŸ@— ÞèÐZCg?ïó :À ÐV  NÀƒ¸ž^Uœ)ót¾@]‚:zuËÔóžß(@ÒX¤�ßøhK€K€-ÚH9P%½°*!Aãÿ!ùµ����IEND®B`‚IMAGE 316 ./arch/player/race/human.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���ºIDATxÚ•ÑÑ „ „áæ2#Ù÷Û•¥ õÄQÄ|,·#'îA àüï€�øÌ�]¬€Óû�)% ˜®ÝIÎyžL�Éu¯ÊŒÒ¯7-WpáªîU C•½÷\÷A›È`p±áÚÏ7>€‚ öÔ‰|Ëø•ÔÓíä¾Ó¸ß@®}Î�òÝ:¶ØèïXô žý,@G tt·RÇ 5'ƒ0vO¾8UÔʇ“¹����IEND®B`‚IMAGE 320 ./arch/player/race/human.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���¾IDATxÚ•‘AŽÃ0�˸KŠkäÿÿ¶ÐVÚ%Tv4c+Jn_"Aï“Ö»Ï>X²>Ýàmà>#èŠÙ¼ˆ<%àÂ89ë`ƒ-Æ”~r„R%©üÓå�ݪ{—;˜ú"8}^±q.Fà³*&ŒÁÞû¢À’óá¯7Àl­e©øï+±ü•DQ„—ð†eP“]Ž˜M¾ Â| Èå®—‘ËÏVêà~ T•:Øü~” òdåÑÍädDä����IEND®B`‚IMAGE 319 ./arch/player/race/human.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���½IDATxÚ•‘Á’!C»a#Åÿÿí¢sESyß¡[±ôõc$sä+GîÞÏÂñí? 9!…“ÑûžƒÈG2løuß7îrC-´ ­µZ sbÓs*þq¹P6‚»€†j¼w0K#C§8`ñ4À;¥@›/Ü)f€ó»«Køš1ÀêW0Èe̘T|îKÊRóG `Õ,…:“±¬ÚXˆY{!ùY°/ŸòÔVÈz‡²1Tyjc�<]ó:ÿ¼‹œ¸‚����IEND®B`‚IMAGE 336 ./arch/player/race/human.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���ÎIDATxÚ¥ŽÁnÄ y“]$ÿÿ·µ‘z(a©ªNfd9ý9{l³¦­÷o8¿Íö;´Í ]r`íÏóT¬à'+_ÊQŠLãd Òð‡otUŠsØÕ˜ýeQdÀO³g`ä ­ý,ƵÒWØXøþS€ä^Šÿç ôNÀ®90#é¾á®rÇìk¼¨zQk%Í# FðÁ y GÀ·Ÿ‚‰1À/vAâA~mrà•µö93.ïžY0¥ƒ]|ˆüÞC—f����IEND®B`‚IMAGE 335 ./arch/player/race/human.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���ÍIDATxÚ­ŽÑ {S…B¹ðÿë‚ñA¨·Ð9rÛ¯1eÉ{–‚{¶%×·”/Böõy±˜¦À5?ŽÃÚ :¹â{„ˆYŒ{Œ6óÌNµDç;3?½%"}ÜÐRÁÏÌÀs†”¨-à> Þ9!4þ˜ÌÄÍZჀ&Сù4 ½p(M <›EòOÞyB…¥RHº«™¸Ž&�E?cä¿„­/1g®¹„n,ø‹p Ÿ„pë½®8¡Þy^Âh 5 |U?�„æÖQ½ô����IEND®B`‚IMAGE 358 ./arch/player/race/human.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���äIDATxÚí–ƒ CIhùÒYÞÿmwBýÖêvsTÆÉeáKÁuíßhf×� —Ìu Üf´öîÓû[×;¿ĨJÎPJž ôžª2æ CÎ1îi�9f�þeã~Bª4>ÞeËDÐ÷³R@ôŒ¢3&ЄÖH‘ôz&”_¡MôŒqBêo+Í; ù@€?„⎾Y¥ÖÕ5n´0oÈ^W2øs4rõªóN@�ë?0üð@êÊW@¸ÆŠs =@­'bêÏÐO¦”¸<Ÿ°µ©âïú±þn>ã`����IEND®B`‚IMAGE 355 ./arch/player/race/human.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªª°{a¨���tRNS�@æØf���áIDATxÚ•‹nÃ0 Mzó+Ñüÿ[ª3†U3\Œ@!<ŸœôÏ@9÷o ³3�Ñ€)g`»ƒj~.16ý$ˆçå¼s–î[óKèÅ(äZa¨z1JG¢© >¿�Ôyv~­UïG �7Œ¬Ã­æL»^ ê°A:PIÓÿµÓ˜˜Ý@ÉF$d¬2*$íÔ.ð‹ÀÑýû­h@Ü @¨v‚°ËH�ý¾é¨~0=‰´ ÄxGÇöqÃ[ ­à @ù8,ó“Ë„m_ ×$ÓŽ ×0ðWÅ3À_ýÂç¤ð ç����IEND®B`‚IMAGE 336 ./arch/player/stoned/human_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���uuuDDDªªªÖÖÖ•••iii ¾¾¾UUUyyyFFFžžžÉ@z���tRNS�@æØf���ÎIDATxÚ­ŽQŽÃ #J`\CrÿÛöYÕ~,Pª•ö%ЉgŒ|ü5®ìyd+˜ßr={Aù"ÛïP6+€ûé ¬ù}ß+¨²âW‡Ž{ïWï>óÂEöЏ^f~Z ¥#}Ì€É`gaà¥@­ä˜M‚+‚¿fwq÷hØ   T4_W‚†¾ Z”‘Wàð¦H@þÉo^QÃkkTÕ™¸J@ÓÏù?ÂA,1gÖ\Â`Lü‹ðHŸ„ô „gN¬8)?yÒh mø®ý- ¤†Äô����IEND®B`‚IMAGE 220 ./arch/construct/house/hut.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿ×� R-Í…?���õ= å���tRNS�@æØf���xIDATxÚÝ‘1!  ñüÿË@Kog—3XH¿àGxœU9…ŒÈœš¢ç +g“^Èjñ*–‡¬Áå«ô_(~Ú.œÙ8VÈä f�Þ÷ý@¤…ûÔ¦ˆá´ƒ;¤°3Áì©¥+ãrNÆæ ‡uÖ¾����IEND®B`‚IMAGE 457 ./arch/spell/Cone/icestorm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ½Î´Ó·åÉãôã±±ØïêèÿÿÿèÕÕÓÆÆÁÃÝñ*¨���tRNS�@æØf��YIDATÁ±ŽÓ@†ÑO–¸O‚èÜ@D—Ph7HY·h×Cêub§‹´‰'Óý$²gîÛr@Š�جYÃÜÀ£Á~W}L¬±Õ[%•Þòñ/P ó1(n™&àC‚Çô“ `eØ.e™ƒ;pïqlr�î[ &[:™ÃãÖì´Y‚|ûËJ—˜Á-º[“M]²Ao`1\ýËùسÏV<véì^ߎ.o,A>ÜNP> “­’É£po\@=*'{uå3õ¨R=ím]Ú"ªw�¯:aËÁ™þÍÝd_ƒl•�‹1XÞT-PŽA¶{¡´X‡‹L�3˜ –?sÙ �ð=C?àÂdJ7~Nøîl÷¬•}‡ë ›^à>È’€xr›^EéN”¾ZólÏCK5%»]6 æ ¸îqŽÂós䔣¸Ž�¨Uõü4Ó›d¾‡&¸����IEND®B`‚IMAGE 416 ./arch/spell/Cone/icestorm.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEþ¿ÊêäÜ×êßíôíêãáÿÿÿåÜÜ¿¿¿ÀÀâ÷Ás���tRNS�@æØf��3IDATÁÁŠÛ0…Ñ!„û8Ó]—Cµ_Àq–†¦#-K›HZ^<Žô?vÏÞ�t7Ù„aàk²&„,ÃXÝè;ÉŒ T#]§Æ¼©èúáþë¸ý�JÑ6ˆ ƒÒÈËjwŸj†qoËòºÑój¥÷sN‹1@_}*JÛ(eP@­¯{Ô@3^«aÊêÐý3øš#y܈ädP#3šF# @ #«¼C€|.>Èèò‰j¤ý²R~p®GxF{+a”5×q—I7�œ¯Ý}f7� ´Á¸Z3�oMÁkuo àYâ£W§âøèÕbY­iÙú ìË&ê§•–Môl"ŽjPXS�ðZ„4@ÁX3ÈÀ~ÈVz- ö�zôÛ 5ŒÕÿª‘…ÿÀÚòþ����IEND®B`‚IMAGE 435 ./arch/spell/Cone/icestorm.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEþ¿Ê×àèÉåÕÚèÚÿÿÿïæãêÚÚ¿¿¿ÕÕåìˆ g���tRNS�@æØf��FIDATÁAjA†Ñ/ÉuŒììe ñ M–†€4ËÛݵ4azz–?2êªcç=�.NL:8\�`4bRÎðS`©‡´êŒ.«Âbœ6Y}ñØáïz¶A:Ôé­Èð¾„[Xªa(­úC—%]¶êÔÀ“;vQuÓXìê@ò¨ñ9&‡Ê„Ììº5A<»ËѰÞÏ ?Ö?o�€Å¤*kÑ0`Iʲ§Åb$�@|è¾ý.2·´Áé•âUcm¬úv×£’:ºêºØ”i2à9 ¹)J,±@º•Y–J/ó6/”ýÐÆwÆ>ö±SeY…UÕìÙ“;») ÏúŠ"8•Ô˜Ë÷!Žåìê¿Ó® v7‰_“F³)ìé«;U÷Õí}êYÙ¹½¸­gàz– °îvÝÛ&°)R€%½ÀA“ÌÍNLÏ����IEND®B`‚IMAGE 215 ./arch/monster/demon/imp.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿ�ÿ�����r³+���tRNS�@æØf���yIDATxÚÝA€@±üÿÏÒ4 gc³uf‹Äç’BVV‰ðR‘PÏVà$}B ® ªLP�`Yl‚¦¬BÓØxcN�©+ˆ¢Ž ê€Fä&Tw é…Ä%h‰ã'+¬¡6ä,Y¹nÂR-ï·œ½¥ÞaÙ¿ò,‹ÃäO²����IEND®B`‚IMAGE 209 ./arch/monster/demon/imp.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿ�ÿ�����r³+���tRNS�@æØf���sIDATxÚÝÐÑ € DÑéÞÿÿçˆbtó5š'eêšoÆm©Špe,Ô:‹Ú+ö@ã 2@£fLõxT7ƒ:?Èc²Œ¼|ä±–Àˆ;€ô|C‰¶s^t}¨“l€µbi`¼mÕ“ßæ ‹÷à«„����IEND®B`‚IMAGE 1133 ./arch/monster/giant/JessyB/jessyb.x11 ‰PNG  ��� IHDR���€���€���¾P‰X��� PLTE������¿¿¿ÿ��·kcÒ���tRNS�@æØf��IDATx^íÕ±Š#9p5¬qúk6æU4°Ã¦=àB‘¨|ã =Ã]xñÝÓô€…"£—°è¨øŸzÌÝZÝ^?ÁTfõ¢ª$\ê7ñŸñµÓÁ°¾Ðpxõá!xúù&êQØŸÿ¿(õ ‡ûû úߢ?§Ç€¹~~ :K<©®è+è6`Ÿì¬UwÖ×:·C}.”_ÕÎêî ÖÅ8Ïù‡æøý:ïý´\ÂÌ?´9¿>}xslA çùG¤ó‹_~rt-Øaf;ž ¹—Ë’@pYõ`$»ù "sª€c(ºíÁÃÆ”G"«k>O6·m<‰/iÌÑšRErsÛÆ·9ÍÆæÂœôR"¹±äÂ(ÎhuðDÎÚ. ÎÖÏ•b!çÜ¥Î2y–¡êbг-¾Qˆd‡AAñ¶ GF†ã'u°Öé¶  ƒ™!è06àY @t£×jWAßd@|%ã9PT pS{Y xär˜Âd€,1àû86}–(!¾©Î[74 d>€„ü®;gkÀ;…\#öxÛ€—‘Þ JÊâTm€zM4�™ñ½6º}s4}Òò¼mÁS;Ìy§çVàÀ4u(H2¢¼”5p–.KBó[¼†Ž}¾Š0¿W@ÓÄΦjwAaÄy6V举�Ń/>\¶`¼8²ý!”šòõte$ß…ƒÐ º€ÞÙ—D­â€ŒÒ«ˆåð@B©çTl·õdÌýòÈ}õ} œ•T aÖÕg½Ö+`‚©€±€0ҹŒ+0 ØÑXò±ÖŽ! -`F9ŸU;jës$)S4Š›u ŒÏç"‚r©àÕaW€ˆgF´TÁ“6,yZ=9”‰ IÊÎ-p&#®`PN³ …ª¢»©;)ׂC†dâ q¯÷½XnÑV`C"µ×jØÝ‚€HK„Õ³î&e›ÿ¨ÿ¾²«mT°»œôLÂìÕPA»O !\3 ÌYµŠÌ’$|€eÈ/Ó (.€\‹°Œü6©ç„  Ñ £¼ëZf "#† vD,aR[@R$ÕÈÓf‰s¡Ì `¤©v¹YÌÉõJEc°,~ÄÄ©R± (›íÿM M×´�lvÿÆ êšö Èw�_Õÿ®Ú#M[Ç/ÿjÌì ¿&kµŽ »_ „;àÒýêù._gû‚ è7`– 8Ì7 ƒlšh@YäÌw”ÛUŸÖW•‘N·@¶Þõíܱ~ F´jÀi•á¹9è.j•¢½½°„ÓkÐtÇUÂd'õ(öÒ?{;¨‡±s_ƒ÷Ï?ã3þ¦YÕµ+RÓ����IEND®B`‚IMAGE 1059 ./arch/monster/giant/JessyB/jessyb.x12 ‰PNG  ��� IHDR���€���€���¾P‰X��� PLTE������¿¿¿ÿ��·kcÒ���tRNS�@æØf��ÅIDATx^íÓAŠÜ8`yáx›EÃ@㫸!![7ä̓£Õ ̾„Wæ]!‡¹Jxe|‰~h%þq¹è¤,; ôÞ¨>ýR=W™4oyKöòú7 ýMCñåà]}Õð’£îš+%à¯o?Àû øç¿µ"Ç`>¬ LÀ¿ß¿®ûæ@ç-øóûZYι¯×ªç- ZÛÚHs‘8mÁßWÐKmÜåžÕÜ~M×צ1b§í-ÿXA¦ýPêc6d=Ï X}6ÆáNŸ>×Y¤ñ}Tê[瑹پ‹u ezj›Þ”Ê<€û>ˆ'RS)Óé�8&OKyåA榠L}cdz�üØEö:;1·¿�}KC&Ç `ÛÃBë ó!ÈÙz˘L&3'£Ì¿~0Y%š2ÂÌÉ(ïÈ=У…€1q4U D1Bã8µm}Z�Q�hË2 {ñ’)Xï¤õ~Ø�ê €§1ºn¢€Õ:�΂]Z‘—D«] ª³{ˆ±Æ†]CÞ˜Œ� ¦ ûº<42¢ « ?6Ð, .�4¯À'sx÷͘bäO€¾ %†,- =¢°ÜHdŽ׆$EË,�…@ lé\Îvžô�TŽžœÃ|ìiî =Cûègà@€heô�€¸LÄ3˜÷`¢ÁªZP›`» 匀øÅæÖ€•@O¦€þîc ‰φ£€Öu. lLààÀ¸�¢ÐvãhyfH$Y@çŽDÑŸÐ÷€¦.ô"{“ûîy?"Š#”iý¸ó¢-Ô“—ºìºXïž. â;Ђ'ž@‘œïñ€¼:Ï `(O$OIE `V¦XõÝ©Ò-Ȭ�PºÄÎjO†í ñÇç$aê‡L·  €^"Î]cÜ`ç+9†©6÷ ˆp°þZ‰ÓdL‘µ‚Á¯ÿ×ÛT PD¢OD#âiYJ€2Ô.àˆaŸð>i ²ªT¢aÿ.ËH¡ƒ#³�†îAY'¢/Æ(y ÝX<ÕÆ€°ÿ5ä°çæºzg )È0Ÿß_)an7U¢Ïàç`î­ßAý³aâÁ¤©nA´ þÅ!¸¹Ceà @“‚¼¿FN2³Ø€˜‚@s  n7YM@ ·kõ®á¹ÙÌý¼…Gc6@“†ÏÛ‹ô–Ås2Öô÷MÒQRR¨ãɼ–œû¯‚llÍë ýd^/¿å-ÿ¥šò,|Þ����IEND®B`‚IMAGE 1059 ./arch/monster/giant/JessyB/jessyb.x13 ‰PNG  ��� IHDR���€���€���¾P‰X��� PLTE������¿¿¿ÿ��·kcÒ���tRNS�@æØf��ÅIDATx^íÓAŠÜ8`yáx›EÃ@㫸!![7ä̓£Õ ̾„Wæ]!‡¹Jxe|‰~h%þq¹è¤,; ôÞ¨>ýR=W™4oyKöòú7 ýMCñåà]}Õð’£îš+%à¯o?Àû øç¿µ"Ç`>¬ LÀ¿ß¿®ûæ@ç-øóûZYι¯×ªç- ZÛÚHs‘8mÁßWÐKmÜåžÕÜ~M×צ1b§í-ÿXA¦ýPêc6d=Ï X}6ÆáNŸ>×Y¤ñ}Tê[瑹پ‹u ezj›Þ”Ê<€û>ˆ'RS)Óé�8&OKyåA榠L}cdz�üØEö:;1·¿�}KC&Ç `ÛÃBë ó!ÈÙz˘L&3'£Ì¿~0Y%š2ÂÌÉ(ïÈ=У…€1q4U D1Bã8µm}Z�Q�hË2 {ñ’)Xï¤õ~Ø�ê €§1ºn¢€Õ:�΂]Z‘—D«] ª³{ˆ±Æ†]CÞ˜Œ� ¦ ûº<42¢ « ?6Ð, .�4¯À'sx÷͘bäO€¾ %†,- =¢°ÜHdŽ׆$EË,�…@ lé\Îvžô�TŽžœÃ|ìiî =Cûègà@€heô�€¸LÄ3˜÷`¢ÁªZP›`» 匀øÅæÖ€•@O¦€þîc ‰φ£€Öu. lLààÀ¸�¢ÐvãhyfH$Y@çŽDÑŸÐ÷€¦.ô"{“ûîy?"Š#”iý¸ó¢-Ô“—ºìºXïž. â;Ђ'ž@‘œïñ€¼:Ï `(O$OIE `V¦XõÝ©Ò-Ȭ�PºÄÎjO†í ñÇç$aê‡L·  €^"Î]cÜ`ç+9†©6÷ ˆp°þZ‰ÓdL‘µ‚Á¯ÿ×ÛT PD¢OD#âiYJ€2Ô.àˆaŸð>i ²ªT¢aÿ.ËH¡ƒ#³�†îAY'¢/Æ(y ÝX<ÕÆ€°ÿ5ä°çæºzg )È0Ÿß_)an7U¢Ïàç`î­ßAý³aâÁ¤©nA´ þÅ!¸¹Ceà @“‚¼¿FN2³Ø€˜‚@s  n7YM@ ·kõ®á¹ÙÌý¼…Gc6@“†ÏÛ‹ô–Ås2Öô÷MÒQRR¨ãɼ–œû¯‚llÍë ýd^/¿å-ÿ¥šò,|Þ����IEND®B`‚IMAGE 436 ./arch/ground/Wood/jungle_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE����„�œ�¥�1ÿ�{J�œc�œc1œsŽ@.��TIDATÁ1ŽÛ0@ÑOsl©$E µD_`(*ý�3EJ_"© ¤p»]öØy~´m<·hǨ•þOƳÈein½Ó¡ÎØc’f;Oz/¸Ýv·”Hm£w®ëbŸVK¾g7W$BŸœ{æHÌy%ÚnÀ CÜ84 ". êÆQ¶3ûT$˜%OZ‘ ~šFvO“õŽDn¸‰[„Ó ˆ9IÃê€@">­¸µ P0¹ƬÔì±ÇkjN­VJ\üÆá2I£ìn܉_oA¹£WÒYìÍTÜ&ÅoOE$*»ç{eÄ´€ZâUùùª¨Åêú®+KW‘ÌÉÁ{¬ë‡à!Öh·ñ r‰o¬q´òx••EôÇ‚'ÆØ¿àó6¹Q«~RòJ§Ó)_ ãÔ\—¿§uèðyskµüIíÖé½ûQõžÆ³ÿLv>HH ����IEND®B`‚IMAGE 436 ./arch/ground/Wood/jungle_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE����„�œ�¥�1ÿ�{J�œc�œc1œsŽ@.��TIDATÁ1ŽÛ0@ÑOsl©$E µD_`(*ý�3EJ_"© ¤p»]öØy~´m<·hǨ•þOƳÈein½Ó¡ÎØc’f;Oz/¸Ýv·”Hm£w®ëbŸVK¾g7W$BŸœ{æHÌy%ÚnÀ CÜ84 ". êÆQ¶3ûT$˜%OZ‘ ~šFvO“õŽDn¸‰[„Ó ˆ9IÃê€@">­¸µ P0¹ƬÔì±ÇkjN­VJ\üÆá2I£ìn܉_oA¹£WÒYìÍTÜ&ÅoOE$*»ç{eÄ´€ZâUùùª¨Åêú®+KW‘ÌÉÁ{¬ë‡à!Öh·ñ r‰o¬q´òx••EôÇ‚'ÆØ¿àó6¹Q«~RòJ§Ó)_ ãÔ\—¿§uèðyskµüIíÖé½ûQõžÆ³ÿLv>HH ����IEND®B`‚IMAGE 179 ./arch/weapon/sword/katana_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���GllÀ @ªˆ4ÀÀÿ000€€€���•ŒË���tRNS�@æØf���IIDATxÚíϱ�! ÃÀüãý7Æ  ,@Š“ OÿÇ.™÷²‡½ïÆ{)ž ÑËÝ?Xq ÖÞvt›=ïóç—À³c0x ~�.Ál€ù ����IEND®B`‚IMAGE 390 ./arch/construct/keep/keep.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���¿¿¿@@@ R-Í…?��ÿÿ×�!Šð9���tRNS�@æØf��IDATxÚí• C-;Üþÿ‹õº¶àQb4f 9YF_êr»té?êBI@z ˜Þ”õ• À•QA€KÓÛb�# uZ2LT Æ0+„|Ÿçy3R)‘ @­�Ó�ú Àæ÷êö`j°°ÿî¶T€ ÿ<�`€ê¬�该lbMt³ ¸4 ö—µtÜ:€W4šÇ¸ó×'°aÀH¨/Ô.Xu3aÿ˜zÎAœ€Ò»Â›I$ØZД8 ðJPM4 ø—%˜è¿ƒ†_J� ˜Ð¯�±4@û»Øn€öK@KpôÃù5�ÈÙÇ ÀÑŸéϨühÿ‡ÚéGõ�pÉÉ3Â9����IEND®B`‚IMAGE 387 ./arch/construct/keep/keep.x12 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���¿¿¿@@@ R-Í…?��ÿÿ×�!Šð9���tRNS�@æØf��IDATxÚí• D½Òéþÿ‹•›Š £YÙ ©w/6w99ùcáG]ˆØ m”å'Ù�¯lôx©m—8 ¼KáHØÑ€ax·Ì€�îÅ0]ßq3ú‡F(p-`Þ<ó¹V‚ À6¾TEÀü¸�pZúƒ|0_£ÜÄPä]4`ˆ RäK dprt¿�¹"$„·qÏãvà»{ö€|ù8Ô{A‚Wo&|~µžû ÝѧÀÅĘ÷xuPM´ äç¹1ÑA^ ÊИà"Z óݬF¯@ç¥ B Öyd‚¼�Ӕǀ`Ÿ˜§ äèüÁ?ùQî‚É4Ñ����IEND®B`‚IMAGE 242 ./arch/construct/keep/keep_sym.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿÿ×�Í…? R-���¿¿¿ 6W���tRNS�@æØf���ˆIDATxÚÍ‘Á Ã0 C³Í~þÿ?ž0„fSÚv©L ‰²KÇÍ Õl`À·Ü¯U8P2?›x=Ô�5v@T‰€4€Ìèt]l§K’*œ.™Òåg&üÚÿc„�(Õl>âògÙ�Û¡w|Ç—ì7–3 Xå€û{�Øó9"8|äï ¸‘ÞÁÀ %P º-����IEND®B`‚IMAGE 188 ./arch/monster/insect/bee/killerbee.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿ×�ÿ¥�KŠþ ���tRNS�@æØf���^IDATWc` ð33€°ÎŸ ™@öÀóþö`þúÃü¯Ab¯Þíÿõn ˆñú{ýº5`)þÃ`)æ¦ö(Úþÿ2®Æ ‹ÀÕ˜Â,å?�e03àd�¦)"'Mmt����IEND®B`‚IMAGE 181 ./arch/monster/insect/bee/killerbee.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿ×�ÿ¥�KŠþ ���tRNS�@æØf���WIDATxÚc` 0!„Á e0œ?eØ�S< Æ ÃàÿÚõ‡ù_ƒ¤øvíÿµë�²\ ƒiX܆ÿ Œ«1è"p5¶0ÿ¸©�_ÅYkøf����IEND®B`‚IMAGE 204 ./arch/monster/humanoid/Guard/knight.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ¿¿¿��€´.���tRNS�@æØf���nIDATx^Í1 €0 …áBû8Ø+y.W¡¹„—¨‚·Zˆúp|ÓÇŸ!î×ü‹À�±Šaéì¤bh¸‚Rd ÕS ×4âö@û¡Ù'â| [ñ>—4ZT�AêÛä î$êþí¾ÓBÐM›õ����IEND®B`‚IMAGE 209 ./arch/monster/humanoid/Guard/knight.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ¿¿¿��€´.���tRNS�@æØf���sIDATx^É1 Ã0 …aր¾RΕ%® z†^ DͨTt*øMÿƒ® ?$v$0 ¼§¸¢ ŒÜ@%»ða·©#ïe äã ›—Vä|z!®—â(ˆUËê05qH+ðM(J€? 1èÛ`AB‹ÊÝ‘è����IEND®B`‚IMAGE 208 ./arch/monster/humanoid/Guard/knight.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ¿¿¿��€´.���tRNS�@æØf���rIDATx^É1 „@ …áÀ´B®²µ…^ÉsÙ(Ø.LÀ3x‰QØÀvc j&ÖúªÿÁ«Ñ´ÅÊŽ¥óKÙQS¦¨r¢jtO_C\ãæ°‚ÚVS)”ÿ¥—²(TÒxf¶b¨Ép-°ÀÞí�ÖÇF‡ž-ÉB����IEND®B`‚IMAGE 209 ./arch/monster/humanoid/Guard/knight.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ¿¿¿��€´.���tRNS�@æØf���sIDATx^É1 Ã0 …aր¾RΕ%® z†^ DͨTt*øMÿƒ® ?$v$0 ¼§¸¢ ŒÜ@%»ða·©#ïe äã ›—Vä|z!®—â(ˆUËê05qH+ðM(J€? 1èÛ`AB‹ÊÝ‘è����IEND®B`‚IMAGE 204 ./arch/monster/humanoid/Guard/knight.115 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ¿¿¿��€´.���tRNS�@æØf���nIDATx^Í1 €0 …áBû8Ø+y.W¡¹„—¨‚·Zˆúp|ÓÇŸ!î×ü‹À�±Šaéì¤bh¸‚Rd ÕS ×4âö@û¡Ù'â| [ñ>—4ZT�AêÛä î$êþí¾ÓBÐM›õ����IEND®B`‚IMAGE 245 ./arch/monster/goblin/kobold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���º��‰��ÞÞÞ‰‰‰ªªª000 ÿÎeΙ0™e�ƒIíí���tRNS�@æØf���IDATxÚíѱÃ0EQšÄ—ûÿÿ[©ÍV“©R—¾’ãŸßF›þU­Z ‡ïj¹ÇPǡխ Œ˜àÈhš¢ pœ“ªœˆŠ¬Á™S¶Ç†Zé (@Ýͤªìnz&xªL ¯÷jõ›~d9ÃKÆ7óþÿO2ôðb����IEND®B`‚IMAGE 251 ./arch/monster/goblin/kobold.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���º��‰��ÞÞÞ‰‰‰ªªª000 ÿÎeΙ0™e�ƒIíí���tRNS�@æØf���…IDATxÚíÎAÂ0 DQÓ6Áãÿûâ´H5.Ø1‹lþ“ûï·ƒ=b*8Þ`ÖÏ—âÀÖ€¶•À»„Հѯ€¯ZUpAèRï]ÌÁ]᜻w´ÜÁôBPn´¸+"cñC¹.q 2º �{7”8õ÷ÙlGx™oí„TšG6Ý����IEND®B`‚IMAGE 189 ./arch/monster/goblin/kobold_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V¿¿¿���…#Å7���tRNS�@æØf���_IDATxÚc`Àüÿ„a÷î?„aµ{ý0ã÷ÿÙÀŒ×ÿ_ï3Þÿ½*õ~õ¨Ô³©ß«Àоÿ½r=Däý¬l˜še jVÎú�Ѿ ¬úÕëÕ³2×åP�F9ª´—C����IEND®B`‚IMAGE 186 ./arch/armour/helmet/kog.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ¾¾¾���vÛ7 ���tRNS�@æØf���\IDATxÚíŽA À þÿÏ6ƒ!‚¡çvQ˜a“öÉŒ'Z8ŒÓƒ™a0Tƒc„ê� ±! R2j…×v Sp˜§¬0xZ ¥0® q_hƒç"äGfã^gPLôÌ ©½����IEND®B`‚IMAGE 358 ./arch/construct/town/l_shop1.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������ R-²""¿¿¿Ú¥ ÿ×�ÿÿÿ á���tRNS�@æØf���ùIDATxÚí”Ѫà t]ÿÿ/L…z÷ØØ¼9¥èËƒÚ¦Íæ!˜@ õU&?q€n8˜lˆ6Ñð¿×Ý06PçÏC0¾V`Wz ÏPs· îà]|‰àîKÄ}þ ß.ð&¸ûkôŸ¨†@€¶PÀ̬ÁÔ¿òjAНQ6­H” T– Ú|†árÎK9ÃhÑŠ¤€ÊxQŠ 4±À4‘€eÍ VÏ žq£ô÷]b£Í¿*×|nçÚ¤oäãÈpn”`pä ý&)}ÀÉ{ >FÒ´` i³y„?°ä϶Êä—����IEND®B`‚IMAGE 370 ./arch/ground/Stone/largestone.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE™™™]]]ªªª000)u„¹��!IDATx^@AKÂP�þ¶G Zá±›Þ3ÃC]‚@‘ ‚Ø¡Ø~‚E)ŸvŒþƒÞ ë 4„ÚC¡.ƒZ^¢­NáÈ åÁž"3¶ÂY\7Ñdèvˤ6„‰já[Ëßã ;—bšDHmùk xs¤öt§½;!Z}ŠóÍœ`À¸:h¹q,¸›²N FgGâÇ©�<UѬù‰‡†ú;_ê žÒ#°7àèä l}k³UUbg§ÈÜœ“=FðþœŸí‡p¬úkï¹ÖGrß½+Þæ)dÖ­L S­~šÜr 5ô$Z¾‰¸i¸’©*m¥‘ðB]¹†‘);³Ø�ü%ØVÌø;šÛ:TK6H›þ¼-i‚GÛ éÁ‡ÔKý)����IEND®B`‚IMAGE 241 ./arch/armour/mail/leather_ar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Ιe™e0e0�00�� �ÊÃB���tRNS�@æØf���IDATxÚÝ€ ¡ƒÿÙÚ‘Sø€5"¤çÊÖ~¤¹ddž4íX@¤ôÓ¬Sû TTù�½÷ÁÚ0‚®î‹¾· µè@Ì”v'_!CFh81¨ü: ‡ä_�€�.�‰Š /ÀJä%WË%ønÀ3±¼QÄnò<*š5&'¶ÚÏô�°”h¨Èý����IEND®B`‚IMAGE 307 ./arch/monster/animal/leech/leech.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`��€�� ��À��ÐÐ�à��àà�ÿÿÿ};…‚���tRNS�@æØf���ÃIDATxÚQÃ0Cë�#÷?ñl¥c¦QmV«~¼‡=þ €žgZ>1� n¬5"ÌGg ½3¤„›µB†;…®‚ wÜÑ7ô—fèŒþO|k�Ä>>¬DèF ì0“Œ ³UP‚ ˜6Gp˜Ø½øIňL¯_  A!ªO ö "[¸¸²Í}cÒØ¨¯ù—0E5¾æ«ó!a¼·—¡¼;1y ƒÆ¤ ʧðn„’Þ_°ðfTŽŸó”*Óð‚øÖ����IEND®B`‚IMAGE 326 ./arch/monster/animal/leech/leech.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������`��€��€€� ��À��ÐÐ�à��àà�ÿÿÿGÊî���tRNS�@æØf���ÓIDATxÚ¥“AŽ! ·vìÿx»-$‚&øGsª¢ÌDš¿û�h(yD å‰tt�Ç/‹ðW'¸W+„ 4¾ @Ú]AC…~ W>† wnf—ÄÍíR�œœ˜Gœˆ>L?Nêz7>e0 aã(ê¤ÄâÇâB^íºÂØ=|ÑÂ6œI¼èŸ$rn£„ã àMcQââ[˜àhIQÇy žPBÂ:Î9þ©�$, ?o®0ÒñÄ2ÆÌYü‰—¡¢¸ìøFÿ€ôË¿!Š®����IEND®B`‚IMAGE 301 ./arch/monster/animal/leech/leech.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE������`��€��€€� ��  �À��ÐÐ�à��àà�ÿÿÿ–¤)†���tRNS�@æØf���·IDATxÚÍ’;v1ÝÌçþ6 †b·‚ ª_ Ióó¿ƒÌÊU…°qÏ, x‡b0`kÁ�^ îÁ¿æK¡‡<xç*Bç]P˜Î"j¬œäU€' ׿ò$©¾ü1BáNa¡q†äœ+¿Ò‚Q ÁÙ8c‹°¡bœŠóUpáþ½›ÞãÝ`Ñ…ÅÀ®·€ù‡ÝJ@§†õ1áJgð,z_Tñ˜o¨^Ñ‚…gPð^›ÃÀºŠ����IEND®B`‚IMAGE 304 ./arch/monster/animal/leech/leech.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`��€�� ��À��ÐÐ�à��àà�ÿÿÿ};…‚���tRNS�@æØf���ÀIDATxÚ‘QÃ0CgÀKîâ5BSÙ,š~øé¡´¯`î¹Æ~cŒ�ž˜˜…“s Óª~"8Þ@†YàÌÀ/ƒÉ°0Ư€E¸àHEޔĕo .‰BP:¡‘†tò¢Ät…zM>I¦ïÈ©SU„ùYSX$ÒÖÌ4G4FíF(Ç‘ØÝ»�™bÈ÷FÄo�iȾ#î9 lõV@!Š `õ9ö¾Cý¯Îù�¢ªÓÒtÒÞ����IEND®B`‚IMAGE 323 ./arch/monster/animal/leech/leech.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������`��€��€€� ��À��ÐÐ�à��àà�ÿÿÿGÊî���tRNS�@æØf���ÐIDATxÚ¥ÒËÃ0DÑŒ1þÿ‡Ë HΣ¡‹’%G׎ä-ÀÖ Ü½°@8:�ÀñOa˜»¶`ˆZ¸÷ŸC_`¢+´‡°ûŒþDÌ)^ ªZ¢)¨)¾‚JH5 xù ágâîÈy€LÔÞÜ3Äî·¤H’Æh:á%Ѝ‘QøI9Œ¹á”8Èa’Ä ¿ˆk?K$)Sû@\¢4œ™`Í+bÆ�âúʀà XàþA¤žW`_;)1c ÷OBSƒ÷'ÈYëž®ËéO‡����IEND®B`‚IMAGE 300 ./arch/monster/animal/leech/leech.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE������`��€��€€� ��  �À��ÐÐ�à��àà�ÿÿÿ–¤)†���tRNS�@æØf���¶IDATxÚÍÒË!ÐF þÿƒ‹ã¬ÊH·Kï‰Ï×™v^ÌÝ<3€‡Î`& M\ÙηyƒOpbæÞU YäW…õ&­¹Žv 'v -¹Ôs¤X„wð †]„ ÍaKÔ%†‘˜ØSÅ0£N¬L%ñ�ÈìX²�v"N fiØb§Ö†dGŠ{õn1ĉë˜_‹¤ØE—…,ä\ñ㻢<çˆoêkþú����IEND®B`‚IMAGE 214 ./arch/monster/humanoid/Dwarf/lesser_dwarven_guard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒ R-¿¿¿@@@���¸Åª���tRNS�@æØf���oIDATxÚÕÏ1€0 AcÈþÿɲ¥4G@¢b‹¸ð(Jâ_Áãþàó®q P°ÇP( $ DX Øþ› À‚(@.PÙ‡Ûg‰Ft™xPo˜yÐ"àPh& -—€XåAçA]Ч˜ã?<–Cy&ă����IEND®B`‚IMAGE 216 ./arch/monster/humanoid/Dwarf/lesser_dwarven_guard.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒ¿¿¿Í…?���)[2Ó���tRNS�@æØf���tIDATxÚÕ‘Q À C»®¹ÿ•\ÊÆˆìOðµ’‡"}À_¾@ 5šG‡tpB”š&Þ´>— ö °ÿ( €¢÷‚ é @aúK*eh77|ðCï ™ðÂI0™`\za”©@î21P…PõÑô6â!é´”£Â����IEND®B`‚IMAGE 268 ./arch/armour/boots/lev_boots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���›p& �� Ι000����ààà� �‘‘‘¿¿¿üdh²���tRNS�@æØf���™IDATxÚå‘A!CuJrÿWÂtÈ Úl‚òÉ{èø3Ù;õu­ýE!œª„ �„¼yï·K,¸{8Ë�È"€B¼RŸ{zèÝF àÐ�Ðû„ð˜"B`ûl�6=ûº�Ì0·/­„Æ:ܸͮMë<_0ˆ(깜mÀÌ›ï4Ž[Ö ±ºåV9ü>AøS\¤����IEND®B`‚IMAGE 397 ./arch/monster/undead/lich.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÿ�ªªª™™™Î™�eÎÿ��Þ�eÿººº‰�� e��ÞÞÞé¶t���tRNS�@æØf��IDATxÚ•“Ñ’„ ÝS”ÄéÿÿÝ#‘Zê„—‹• 2!<°ý7€ÅfÏ(ª?LúÅÆÉ£7`"8/jÑj½àå g)WZPó‹&¹÷_Å=ˆ1CˆÄNw(¢ðàîNv•rßäŒ[¤¦é‘ºS èµ òuè‡WQÍ0‹)]dÿ� Ž,ÕßDBU¨‚  Iw=š£�¦àî7¨.Ýlî+ýëЈmiÞd]é˜Q ÖìÒNZÌÜ�mmL€±£–¶�°(Yc¾‚™ëù�C ˆ�þXpÜÄ ™¿CÿÄ–êiG¨m!2·`Žƒ÷ƒ£&PY?BGÂý)/)!Fx!xvFò/ÿ›GŽÇ�É����IEND®B`‚IMAGE 403 ./arch/monster/undead/lich.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÿ�ªªª™™™Î™�eÎÿ��Þ�eÿººº‰�� ÞÞÞe��K¯¡&���tRNS�@æØf��IDATxÚ“nÃ0DÛ%Ž øþÿww‡½XM¦H›cæžT©¯¿�Ïz´/<êžÔÒJ}Z~ÿØgáî•îYPZjñŽªŠ|aœÙ®?åÁò¨ÐŽf0kXÝI”’z°ƒ)‰RRQ<àÔˆp„—©Hä ëHˆ€¢›GsôáÀì-œsë\]³ÀÛ-¬'eéBØO‡>­?~It9d>»ë�fZŽÁâ"NlˆØr‹»ÎÉH�¬ 7ÀDl† ¸é € p'´º `Ìú>À ÈÂ>-°wÚ!Ãôܱô·Z¦ù3LøË`—Ê"ñ³/ ½3µ~ÿºÖsé"åAð[Yç‚À¡–ò’¿ЩÓÔ¨0ê����IEND®B`‚IMAGE 398 ./arch/monster/undead/lich.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÿ�ªªªÎ™�™™™eÎÿ��Þººº�eÿ‰�� ÞÞÞe��i9R���tRNS�@æØf��IDATxÚ¥“ÑnÃ0 Ó%¶%Ë÷ÿ¿;S1š­è U#00O´úí¿ÜûѾ¸ómvCX-­T»Ih6|°ÃFïþÅY7;ºãÞø3?`GòÖï Z’þ{råÓôtÖ-¤`9c% qéÔ”ZȆ#Ι·|Fôé?&Ñ+¬(†+{iá(À9oåèÅ*NƒÙÎ<êG1³$ –Ó?"ˆ8ðZ­” •mm‰éf@¯"ÒW•1b¶'°©³@툞Ä*­îÔzGÞåç¼ žÈvû ²…ËèÈXíÂ\»“«Ù›˜ýg¤´ï?ÂN½Ÿòbe—ª^zNJ/û-Ûè¿c£Ž����IEND®B`‚IMAGE 234 ./arch/monster/angel/liteangel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ¿¿¿þ‘ \���tRNS�@æØf���‰IDATxÚÍQÀ B«pÿ3/BbšÿLJ[äíµ«Ÿí-ÖÐ="Ñ é#Ïàé…) Y89(’€´AhÈHb*�]ó´$¢T/0®á>íÐzÆ--¿sboE–þò ¸’ÇÀNÚ¢{�Å%ÌÀÀ`½ú 8ê'!SO�p†aölÄŸòGÅÁþ]����IEND®B`‚IMAGE 224 ./arch/monster/angel/liteangel.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ¿¿¿þ‘ \���tRNS�@æØf���IDATxÚÕŽK AëÝÿÌÁψ- Y%µQ¨êFû'èAmKÑLÿñ’C µÛ@ ¥pH0}d&Kf‘ÔrôRl‚ô,G‚²HH©ìÖ#«Ùä[p]’Gô0ðéMzßá>} |5úûÕ›îÂÎèÆ¾Áð]ü/9¦JÑE¥����IEND®B`‚IMAGE 241 ./arch/monster/angel/liteangel.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ¿¿¿þ‘ \���tRNS�@æØf���IDATxÚÕ‘Qƒ0 CiÝûŸyN°ÂZKÙï°Thú!‚ë5Á³Xyðã_gµîw¨Ü•!Ѝ8;”qÛ¹±)ÂŒl!¤° L$¢Ž½Ã  —ÓàBq`-2°«Él„ÁÃ’ Ê!L8ƒ>ap¹4ÔàÑãÅ]H£áÊÕ½Qÿ³ã2þ*# .,����IEND®B`‚IMAGE 235 ./arch/monster/angel/liteangel.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ¿¿¿þ‘ \���tRNS�@æØf���ŠIDATxÚÍŽAÀ Uøÿ›ËV’6a½KšÕtFt\|»CC9 ‚¹m(v3æð@úM¼S#’n0OÂL-ê«àÐ à@I¾OšóX€ÍÉF0÷Kzîk:a–1{ÁOÔ +ó-¬§{ˆâ)Ì\oÞ 6Чá‚Ê8 °Ð&’3Œ;ò�?×Á¦©Åù����IEND®B`‚IMAGE 206 ./arch/monster/chaos/liv_chaos.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÿÀË��ÿÁHÇ ���tRNS�@æØf���sIDATxÚÕ‘1À0ÃýÿÑm ‚!F¬©¥ ÈŽ`ýH¥ˆ§Å0²XLZðqÈ\Q§ª3%sØ€ò'¸ö1*â}Öûñs3@qB®œ”¾µ@îC÷Sdsh}êd'Q ‡)¨A¬™¸K–oArz±9����IEND®B`‚IMAGE 243 ./arch/monster/misc/lokanth/lokanth.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ×�Ú¥ �Í�.‹W���«UÆ���tRNS�@æØf���ŒIDATxÚÕ‘A 0»5ÎÿŸ¼FØS[ï« a°ëï†̉Ì£¯Ì¶y™^%öo,x~ýl¿Îzղܣң¡øÂŒìZ8rÝ) pŃQ ÷âÎØQ[y2=ì÷û~†ï0üDWbþªœ*6”èж&ï{Vž Z×hý·ùî¿>éTo����IEND®B`‚IMAGE 244 ./arch/monster/misc/lokanth/lokanth.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ×�Ú¥ �Í�.‹W���«UÆ���tRNS�@æØf���IDATxÚÕ‘A1 Kã™ÿ?6Bp Û;šC=rådýÛq©gõ�gâ-£¿âUy+þ©~žÝ¯;؇\„!Ãè~•‘ÊE˜ÖFKÀ1„&ZƆ'‡P¸ÜC„j½M!¬ï ÕaŽPzØD[Xñ¼*NÛŽpd·÷Ø]ï–v_¢ûß'ON¸RGˆ����IEND®B`‚IMAGE 240 ./arch/monster/misc/lokanth/lokanth.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ×�Ú¥ �Í�.‹W���«UÆ���tRNS�@æØf���‰IDATxÚÕ‘A1BûÞý<!™Ý¯îÇ…6­ç‹6üg¯¸mm BaôÎÀ"¼‹vñžLêOûÈ"¸¬› PØnÛ ADpµR’ËÍ=%¢‰ˆtKi‡X\3�dâ‡ý³ Ðö¸RÔD`s`]xµ*1À8wÓÂIzÒ‡2/ëkõ�è²>±Òå����IEND®B`‚IMAGE 247 ./arch/monster/misc/lokanth/lokanth.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ×�Ú¥ �Í�.‹W���«UÆ���tRNS�@æØf���IDATxÚÕ‘1D! B]ïþGÞ!Åþb£ý§Ð™ ˜õF�‹ÿ±¯¼mÍྞ:X¬)l~­Á¿†,ÂËšÆ�›M\–#2‡áUâ#“BED$bh³ÈˆÙm=éc<Ÿ]ÀqPöq¥¨hË:¹.¼ƒ°/¡¶8Ð8oûÁŠû>g4ÓüÛð ÷NðÐW����IEND®B`‚IMAGE 214 ./arch/monster/humanoid/lord_e.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ�� R-��€Ú¥ ���ž4äè���tRNS�@æØf���oIDATxÚÕA€ UØùÿ“¥©Gº^u ½ÌdI8¾6(½q¾òÞ€tœÑLÐÍÜ™$>}Ve'¾ §^78Q� …ÁVæUI0•°ç—¨G \[¾J¬T{.°Ô”#!þIJÔÙpeΣýln'ªWô¤d����IEND®B`‚IMAGE 214 ./arch/monster/humanoid/lord_e.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿÿ� R-��€Ú¥ ���¹:÷���tRNS�@æØf���oIDATxÚÕAÀ öQüÿ' ÛrÝZÈÅ&××mo<GÞ0€Ž3_r!‚½µ Ó ÞJ ät¡S¤Â€©-¿i>gÉ­n(r¾B¯w¤ÜÂÌ”êwC>þe#�ËRÖ†¢ãXûÙ¼s¸JdëP����IEND®B`‚IMAGE 256 ./arch/armour/boots/low_boots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��� �� 00����Ι0� �e0�™e04ã~Ý���tRNS�@æØf���“IDATxÚå‘A!CHîâjpfôm6AýäÁsü™âºÝê»K\.U"H')€K¨@Þc»w€Àr•'@&° S¾RŸ{bé—<F pl’ä}Âà[ O0j8%v¾›ï0Ý­î*˜uXíW€�E” C.ˆ@ó¡öÈZ!Q·œ*‡Ò\T)ùjW_����IEND®B`‚IMAGE 565 ./arch/monster/giant/mabu.x11 ‰PNG  ��� IHDR��� ���@���‰ h���!PLTEÿÿÿ���¿¿¿ÿÿÿc2�1���-ŠVþ¿ÊcDÚœúb���tRNS�@æØf��ÂIDATx^uÓ=““@ðð òl\ÌØ›8–ì.NÎ’}8<; [ï¢cÇÂ2füW\mã×Ô²lιíøÁÿex`ö̉€çÀ_cþäø€0ú°`‰P AØø¢ö¾Ñ4DRg<bªŠÄjïš "àär\€üØ S¬…NÏ€=Ma”áz€(¶.%mËr„Ž…á‰¶¸ÊѷܺÄ2U|›åó~„ÒË+«•ÍE…~)wìʬµm.\‚G`#­=þÑVz€¯:MÓd}(_”=ØÔî¾ÛÍn;>mÙý¼çM¹o]ÓwýÌ•Vd¹T›aƒ-SE— ÙÀØ;ÞnµÛ[6§f„§ß4Ô?ŽS,7éN9ÑÌ=¸î—uw‰‡=ë8%­ÛIËÂ'é+¾÷Ó%èXyX’…°¬ƒÖùÁÞ°Ú“×¢b² ¡’äf‚Ø>¼¤k<Ì êWt˜PÅö®±p·Ø`‚¨­ ì*œRcq_‡{¼T¸˜[Ï!6< §ÍÐ)±MF€ì#ÃÂCV~ê ó3¨þV$RŒ`0¶»"ñ›@#œƒÀëÌyL„:Ì.áéÿÁŸž¿È!`Õ;ý;f����IEND®B`‚IMAGE 555 ./arch/monster/giant/mabu.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���!PLTEÿÿÿ���¿¿¿ÿÿÿc2�1�-ŠV��þ¿ÊcD‘dåÜ���tRNS�@æØf��¸IDATxÚ¥”[’ã Eû>$Hö¿à)„Ç1ÔÔLë#8èp’àç Ã~à°­ÿ´­ûï�%د—mØêÓR\\LJ` „$—�ÖëÃÉl¤¬â�Þ!°2¢aˆÑ:ÆÈÀ=–L=(Éf�`L*,×8~òFc¶ ÖQ ûL†Ä*É*Æ ú‡BˆÈ¡@ÊCm<‚�õЈÍp£Õ6_�k%’zväT@~6höhàË¢ßÙ£Š°Hë `ÆNz{ùϾÚ  ÃO…d·é>£ x�¤æ®D­ê–ôÝváŽVõ¨\Ü.š‚:ºâæG¥”7  Y¦X³eèg3\‘« ’ªñØ~0û¹�r4 Kª­üˆ>Ç~º‡‰Yãó<'1±;0WF)U!–{p"v@%âц’býJÍóSÕ @á²{àõ€5+�A—+ÌX t[Ð7§À³bOmòpÄš X¤)ÞWqÐJ¼¾ÅeÓ' |+œ3˜'¾úÉ é €¼=Ð×}~çȯý ˆK=î1Ñy»»º�Ë«¹Ê&ð?ö†§  W:jˆ����IEND®B`‚IMAGE 565 ./arch/monster/giant/mabu.x13 ‰PNG  ��� IHDR��� ���@���‰ h���!PLTEÿÿÿ���¿¿¿ÿÿÿc2�1���-ŠVþ¿ÊcDÚœúb���tRNS�@æØf��ÂIDATx^uÓ=““@ðð òl\ÌØ›8–ì.NÎ’}8<; [ï¢cÇÂ2füW\mã×Ô²lιíøÁÿex`ö̉€çÀ_cþäø€0ú°`‰P AØø¢ö¾Ñ4DRg<bªŠÄjïš "àär\€üØ S¬…NÏ€=Ma”áz€(¶.%mËr„Ž…á‰¶¸ÊѷܺÄ2U|›åó~„ÒË+«•ÍE…~)wìʬµm.\‚G`#­=þÑVz€¯:MÓd}(_”=ØÔî¾ÛÍn;>mÙý¼çM¹o]ÓwýÌ•Vd¹T›aƒ-SE— ÙÀØ;ÞnµÛ[6§f„§ß4Ô?ŽS,7éN9ÑÌ=¸î—uw‰‡=ë8%­ÛIËÂ'é+¾÷Ó%èXyX’…°¬ƒÖùÁÞ°Ú“×¢b² ¡’äf‚Ø>¼¤k<Ì êWt˜PÅö®±p·Ø`‚¨­ ì*œRcq_‡{¼T¸˜[Ï!6< §ÍÐ)±MF€ì#ÃÂCV~ê ó3¨þV$RŒ`0¶»"ñ›@#œƒÀëÌyL„:Ì.áéÿÁŸž¿È!`Õ;ý;f����IEND®B`‚IMAGE 366 ./arch/monster/humanoid/madman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEGll�`ÀÀÀÀ€€€0 �Êràp�ÿÿÿààà€@�À`�墂��� P�ÿÓ¯ÿ¶‘ã¶Ûw���tRNS�@æØf���ìIDATxÚ}’ƒ D™ÊX©åþÿo×£‰q ¼¨,{ïZ“-ýfß÷ô”òñìOÜÊ£QÌ •¥`=RÖ‚/Yòã�ŽãAÀ«áUDÖoРj²2Ä .•Ñ`bä€LykçÖ€)wà<>`&8뜷N(Iœú7€:�yVðûH´{™³tü õ2ï̉÷%€…Ú'älQúÌ›¼V z.Î8·a@BE5âwÞR-8Ûa ©uÛ(p¸…0üÙëgãÞÀõ£`© øÎó ¡ðyà02ü`—qN9G° èBP(»­…àò”óøS¾–³pÆíÂ’����IEND®B`‚IMAGE 366 ./arch/monster/humanoid/madman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEGll�`ÀÀÀÀ€€€0 �Êràp�ÿÿÿààà€@�À`�墂��� P�ÿÓ¯ÿ¶‘ã¶Ûw���tRNS�@æØf���ìIDATxÚ}’ƒ D™ÊX©åþÿo×£‰q ¼¨,{ïZ“-ýfß÷ô”òñìOÜÊ£QÌ •¥`=RÖ‚/Yòã�ŽãAÀ«áUDÖoРj²2Ä .•Ñ`bä€LykçÖ€)wà<>`&8뜷N(Iœú7€:�yVðûH´{™³tü õ2ï̉÷%€…Ú'älQúÌ›¼V z.Î8·a@BE5âwÞR-8Ûa ©uÛ(p¸…0üÙëgãÞÀõ£`© øÎó ¡ðyà02ü`—qN9G° èBP(»­…àò”óøS¾–³pÆíÂ’����IEND®B`‚IMAGE 287 ./arch/monster/humanoid/madman_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V�ÿ�ÿÿ�ÿ��²""Ú¥ ÿÿÿÒiú€rÍ…? R-���ËË1š���tRNS�@æØf���©IDATxÚÕÑAƒ0 DÑMãñ¿ÿ}kRC¥„°nG)š‡ âñWy½ö»sÜ±ï¹ ­Ç@žˆÞ+f–~�­G}Éç+J1?HfAú´¾ò1 ‰É€�ã’ì©$@ôÚ�D»ŒnÉsg.ßrê¾¢UB®« -ËZÚï~.AN(¥`@•ÖµäŠ!;@Ñov;¡l›1(ú)@ Eà§òÞA îx•=+����IEND®B`‚IMAGE 225 ./arch/player/class/Warrior/mage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€r¿¿¿Òi R-Í…?���ÿ×�‰É ���tRNS�@æØf���wIDATxÚÕÑAƒ0 DÑ@ìïû߸L€c¤®Ú‘²òKFŠÇ¯&ÓŽ€c¾ïN ¼U| 8c3ª* ˜uÅÝ^!}ÁÊ̶C<MÔ‚!01� xœoÜ Ó¬‘þÆ ¢у0À¼`—á�›ž  Öø¯|�Î…‘£����IEND®B`‚IMAGE 225 ./arch/player/class/Warrior/mage.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€r¿¿¿Òi R-Í…?���ÿ×�‰É ���tRNS�@æØf���wIDATxÚÕÑAƒ0 DÑ@ìïû߸L€c¤®Ú‘²òKFŠÇ¯&ÓŽ€c¾ïN ¼U| 8c3ª* ˜uÅÝ^!}ÁÊ̶C<MÔ‚!01� xœoÜ Ó¬‘þÆ ¢у0À¼`—á�›ž  Öø¯|�Î…‘£����IEND®B`‚IMAGE 212 ./arch/player/class/Warrior/mage.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ú€r R-Í…?ÿ×����Àƒ~ ���tRNS�@æØf���mIDATxÚÕA€@W ýÿ“MIL¼®:×N p¾K•KH*¿®2ñ.DPêx!† l&¦‰Ä$ !ÃVD“ðBBÁiËÔ„Š´7øŽZŒ6†7£‘à¯Ø…\…œsßqß@<G˜?¿8ã%Ë}UÌk����IEND®B`‚IMAGE 212 ./arch/player/class/Warrior/mage.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ú€r R-Í…?ÿ×����Àƒ~ ���tRNS�@æØf���mIDATxÚÕA€@W ýÿ“MIL¼®:×N p¾K•KH*¿®2ñ.DPêx!† l&¦‰Ä$ !ÃVD“ðBBÁiËÔ„Š´7øŽZŒ6†7£‘à¯Ø…\…œsßqß@<G˜?¿8ã%Ë}UÌk����IEND®B`‚IMAGE 214 ./arch/player/class/Warrior/mage.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ú€r R-Í…?���ÿ×�os»���tRNS�@æØf���oIDATxÚÕб Ã0 �QEòÝÿrÁÚE2dj<é!Œâ¿‚Ãüº`0‰µ‚Ì<�F�$0�¤ ¨ô@Aé~t`×rƒRZ€¥-ÖÚó€U–Ã/K  uƒá”GPÖó ß[Óƒ]ø)ÞÕ£Xkªò����IEND®B`‚IMAGE 214 ./arch/player/class/Warrior/mage.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ú€r R-Í…?���ÿ×�os»���tRNS�@æØf���oIDATxÚÕб Ã0 �QEòÝÿrÁÚE2dj<é!Œâ¿‚Ãüº`0‰µ‚Ì<�F�$0�¤ ¨ô@Aé~t`×rƒRZ€¥-ÖÚó€U–Ã/K  uƒá”GPÖó ß[Óƒ]ø)ÞÕ£Xkªò����IEND®B`‚IMAGE 218 ./arch/player/class/Warrior/mage.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ú€r R-Í…?���ÿ×�os»���tRNS�@æØf���sIDATxÚÕÐ1Ä0CQøÜÿÈñ².¶0rʬZ½1Œ7%âÐ_W à°½¨ ÌÀÄ&ZX¢zH héIffŸ½àSiá_[ÀNwEÔ.…—�¶ +Œª;àˆOH0½1[€\é?ÿ”Jß:m����IEND®B`‚IMAGE 218 ./arch/player/class/Warrior/mage.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ú€r R-Í…?���ÿ×�os»���tRNS�@æØf���sIDATxÚÕÐ1Ä0CQøÜÿÈñ².¶0rʬZ½1Œ7%âÐ_W à°½¨ ÌÀÄ&ZX¢zH héIffŸ½àSiá_[ÀNwEÔ.…—�¶ +Œª;àˆOH0½1[€\é?ÿ”Jß:m����IEND®B`‚IMAGE 289 ./arch/armour/cloak/magic_resist.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���PPP`H�°°°À�ÀÀàà¨ÿÿÿ���þä2ý���tRNS�@æØf���´IDATxÚ…ÒÑÂ0 CQØšÄÿÿج·#/Ót’!ñ˜Àôn¹2n²8$[Ѓ}@ØwÎ �\ø†=Hu_qúûës« 9Š~E禑#b ªçÀ¼u•-HàzÈ?À„ƒ¿ ZD¯0 ¡bÝnl�fÀžêkÐÝ¿Ò.œÚ@qõo ¨_üŸ© Ï^°Ø�TS£2qéÌê2F¨»™ë \b[o;ë����IEND®B`‚IMAGE 345 ./arch/monster/humanoid/Human/man.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªªÿ�ÿ«>¬O���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���ÈIDATxÚ…ÑKƒ0 P[œ\¸ÿm;iè&?Ìiæ 'B®‡i€pV@¤Òô¾Ÿ‡/Äpà P¸ÏoˆìÂÁÀRú!c f*!ªc�‡™q=€ïA’MA„²$P÷À™J  F jvƒ á˜�5-À)º30Á ¨‘äã8r©Ð¬¨Ø!³ŸU�(f@Øgä5({¦�@1¨¯1`ñدA®àµ‹ Þç†18kŽm£hA-nŒ¯YŠn¾¡ /šH^r—����IEND®B`‚IMAGE 356 ./arch/monster/humanoid/Human/man.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªªÿ�ÿ«>¬O���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���ÓIDATxÚµÏKr! Ðnl>Ù¾ÿmÓòÌàÊ"= I¥Ôàõ%+€r9w;�íõòØ H˜]ÿ T(ä0ç w‡*7€)…”à•ú@êÍ' 1h•sR‚¦Ъ3è¬@ôj\;É‚ªûhfTÑ:ÿž'à}îôη�àƒÀHŒ'šRð'PuÚ/ .¨3 †ÒK)ã ”H6å ¼ð'0ï¸Tá‚xà÷€ñyàþŒÜ�Æ9wë äÚ)?Œ¾.R¿?]����IEND®B`‚IMAGE 354 ./arch/monster/humanoid/Human/man.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE �eeDDDUUUuuu0™™0ÎΙe�À‹XÿΙΙ0Ü·’ÿÎ�ªªªÿ�ÿ«>¬O���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���ÑIDATxÚÎŽƒ0 DQÿlCð–ûßvÇ­X©´#!’øY¶í_r¦Ì€Ì@wŸs“˜�Wæ Ï–è³0e5ƒКÅ­52�eYÌmYô'ªhFÔKð�­-J¡“¢^Rðµs½C€¸ß�ñ„f¨?´ø Ð]1D`ø3 3~1Ë€ûèÛ”§EÃuˆ‹Ê!PÃz#öÜ6â 9`?D$9õ¯€�Ãå !þ êoi  ¾'É ÖÊq|e`>”œ$ŸË»Ú.ûåŽË±����IEND®B`‚IMAGE 199 ./arch/system/map.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���lIDATxÚÕ’á �!ƒÕ÷èó¸‘d}÷¯•8¦ìÄà=fFæ+Ç##ñîRh=FÍI¡* P‘ TuTö3„4^!oÉJêÁN‰Nç§S‚Tp†:Ùë�…8ü1uãàµ0»oj In €����IEND®B`‚IMAGE 1087 ./arch/monster/demon/medium_demon/mdemon.x11 ‰PNG  ��� IHDR���@���@���·ì���*PLTE�!����‚��G$ÿ��d3’( ²""Ð((°°�°°°ÐÐ�ÅÅÅÿÿ�ìð±j���tRNS�@æØf��ÃIDATxÚÍ—‹Žã6 EK®'”«ñÿÿnìi²E,P3²÷"-%ùëeêøPÄaðQœ1Aø°Ï#>ب�k2dëé¿ÃlB¯ŽÛ6vØâɤ©(K°®Êº¬û“Iû>#^0½ËsBh@.”f8ÿzp°¥Ö[4FeØ€J0Gaô«h‹0*~ýb�ðЧL�Å}ÐM«)ÿ†ƒßc±½$„uN\ûç¾ÿþÞ¶ÚðŸaDj&ŸÊ„‘Y2Ô\$CSnž"F”£R„TQk¬Æ8Žƒ„ü7 (UÐˬ?nq@öœ$dŽg�ïÝâÖpÛ`®&I³ŸêFTëãv‹ ÁúÜA˜ÁLÅ�PÚB•3²nDÔVqçF‰pÝ€¼¸!Åzøg2€ƒBC–�5ž�T|F"¨ÏÄfv´ÊÉP°a=Äï Dd¡w:WÌ ³"á Xy@ëL«®l•õÃI½2û-4À„êÑrzŸpäJgaé¡Ãú/£6î–�$Ïv€�T„s50J¯¨�õˆA€‡e†hÅbW-€|s|u>F4@Q£!`ðU2L]‹(ÃL”Ÿ‡"v¾�ØvÒÃ>¡§6†jspÌÇnëF¬ôX2óÈá]„õi� -(T2l&ú’P9[R~¿pâÐaá@ŠAõ tøè·�^ǰGBâäò°­:T‹Ï�ß#Ö€çfH¥Ý»U>eMh€®’[¯>;o0Æ£ŠÓDh@ª_@"RÒØk@*BZb\WÅrp̉kÁðídèßH0Àcª!õ1¡É&�°Ê�¿ŒŽ@ OÙ¿mÂ1õª¸[€üStõ€£¹·ä|¤»[&d)©]n!æIÏ� p›µb#~�¤^s”¨17tLUX¥)¤×Û³ÊØEÂ=Æ)ÇPeÀ5 sßïú;`ÈŸkp!qêMÖ!™Åƒ·ZXßUºÏÔy\YC˜¡^d)ýðeBPÐàpœ�²Î"õtÔY$�%•€&`¹�Ë",èrYÑ„øÌ •m >Ùß'í]«Š!ùaDÀP˜uý¾Ñú!l På•ò¥GGëAý—€EéI±] ¹ÐX!° éŸ"îzé¸ôl¿ûÕ„ÂZZÂBœÇ«Ÿ ÖŸvñÎÏ6šQ¹ãÏ„·Ò0sŠoÇÔ°~½aÎ…�Iþ.áZ¹?mÿ�tF2§šä/����IEND®B`‚IMAGE 1097 ./arch/monster/demon/medium_demon/mdemon.x12 ‰PNG  ��� IHDR���@���@���·ì���*PLTE�!����‚��G$ÿ��d3’( ²""Ð((°°�°°°ÐÐ�ÅÅÅÿÿ�ìð±j���tRNS�@æØf��ÍIDATxÚ¥—‹r£:D·µ˜—ðÿ¿»ýˆ,ð†ªõuW%`I}æ!Ë¿N~}$øÐÿO�àSÀí*ì$|ØöjÀœ„5ï^Ó¼'d5:µ, x¥Ò>²¼'ÄW_«qÒ¶íÀ=€Ó›#7håÍß×À�Kóú˜z¯†ˆ¨Ff/âÆ™N„^øý[ 0*ïZëôS7�ׂÝ\-ûýüê݈喀øÒ¸Ä‡êþïkYjá¥æ™ö3 Bè,Öâž›$‚s¨cw˜Ÿ�@G™À¾™Ð¼©Õg½Ç!Bû�YýVüÇZ4—�bï»ìÄO€ÔÞ¢øX*ûÇIì•à ”ûQˆë ˜PžÞHØÁ`/ ¥{.¡Ê�µ¬Ö@%eµ�GÉE”ø_Í<À�Å‹XTÿàÍ7 @Ÿü­ñŽ3G�¯îÉPTŸá7€F?=WìP°êxÌ>ðšBcVUü=M½ô Ø@€ü¼jzÛÔÊtaúéì=þGP‹ª�¢C�&�™Ï}ô@/QꙃOµÓTnUM€c«Š�U)ÀYó"ÀàQ§®›h‚Òlëª=)l:�,[`è—â¬ò¼�4–Ç„ak%£@ó ŸKöö´ž* @m(]‹A^9ÊMcm¼ppøaéHJL ™!‚ü¤÷æènyÔ'€x?†I ŒFá"®¨oó÷Hü¨›aÈEa\ÝO+„(%°€BϘé¥AùK2!�GS ˜o—T0ŒRî h>W…áw”«5òvJ9´¬"¯1ÄOÕ€ÙÌý €] ‡1äø?HÌKEáØ}TRB @jÐf/þt ÇØ2éñ1”[%Å…iX@š8'4âS€zh˜!ç]©÷}ýW@VDñC̹ÙT ô L@µ,IÛ6üÐ5â8pñÀ™è­†ø³ è~Ÿù®~Àçº*9P«Ù<Bà”õôsD)ôäPF×½£:4¦Iû£Ì6·ÊË2¤v ]̳ø€Ó7¦;ƒM›5ý)‚™êËH€+Á5Ø<Y0†¹†WÀ7¡=ýÌ∞§âL€CQ�ò§ÞWBÚa]ƒPкøÿ&@yzýO€*Üÿj€ ö§ À-�¸û¹Ð['`˜ŸM<îe¢ó¨ýˆð®�[©ÿI@ü§*Þ(¸úÓ6þ½M�ì`o» À;~K~æÏº7” 6 ÚßNzõÿ…š4ÍO&+����IEND®B`‚IMAGE 548 ./arch/ground/Stone/mediumston.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE™™™‰‰‰yyyqqqiii]]]UUUªªªHHH@@@ÌSíà��ÁIDATÁ=o›P�Ðû$cÂv_lÞ cUÉ]AV‰¼µrÜv„pÙpÀlÜTþ£¸VºYÊ¿í9pZ}<q´?où}oo«IÄ…ŒZRy]ÀX&m0(•Òá  ,D¼åQšâÚ.ü.w=lXT. Ñ¡™Ê_vâ9:æA?€ÐÌV/£¼û`¤ÁDc¹Lk“©Pi¸Y™•ÎîÑ”m‹à§/>Ùú•ÝmŒOW¿€¤Q×+ò±ïœï8 i5"Z›*Þä zàñ‚<>†t:ñãtÅhû¥M´$ ó<°[µ~ù—©ŠÀ•w”®áç8÷eO°˜Ö;»Âè§üY3è° F÷ö¹vM‚}òAÉ‹êZo˜s.«ÚhEro‹`ëó7ˆK•ÊÖ3;u1wôàÔS—Zn+D¤†¡“!3ÑÄÃg‰$ù3Èô)FµhiÂM 0‚~–b‘¨x_ó®Zþd8rïšO~|UºEžr£DåM4Œp›dF°wJÓI2@›*œuNž)ôI2ø)Õ”‡ªíÌ<_T,ùg\?—ćPõû~iüªþ6ý†A¼å‰����IEND®B`‚IMAGE 206 ./arch/monster/humanoid/Arabic/merchant.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÿÿÚ¥ ðæŒ²""¿¿¿���^Áv%���tRNS�@æØf���gIDATxÚÍAÀ ôþÿ“&86šÄ«p‰ès+dËfåyöľa l&ß9‰ 25B–ø!P àèÂ5t„ÿÃÄì¹·ôBª 8‚…„Ò˜S ÀwL¾î»xšûægH����IEND®B`‚IMAGE 216 ./arch/monster/humanoid/Arabic/merchant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿÿÿÚ¥ ²""¿¿¿���æÑ8n���tRNS�@æØf���qIDATxÚÍ’9À 9,ýÿÉ1ÎÐE¢Hƒ 4»c†£]f¼00¼€Ÿ[°÷æN‹+†G…”ü­�˜VÕЎžR˜sB Ldã'g,#C}KÅE…(Á²B_dÄû]ôsnT’3h{ìõ®<WvxMíã}����IEND®B`‚IMAGE 218 ./arch/monster/humanoid/Arabic/merchant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿÿÿÚ¥ ²""¿¿¿���æÑ8n���tRNS�@æØf���sIDATxÚÍ’1À C‹BîäFÚ²‡.FqÉWÃÓë@ê£bÄ¿+Ìvlã§ÛÉHpHA"såsrô@– ÿ+W@LJÀ&91+¤ˆ‘û)å±dÎ ;]aé«Ç\T›/¦?Cù‚¨õ(Ý, i‡i#ï����IEND®B`‚IMAGE 193 ./arch/armour/mail/mithril_ar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿ¶ÿ�ÿÿ���ÿÿÿáJOã���tRNS�@æØf���cIDATxÚå’Q À CM½ÿuØ©Y,Âü *‘×L“]êÝÂÎÙ\­WÛŸŒ^l­Ûìz˜�%¸Ú\°MQ–C(G½<áä Å’JÖ‹ Øà„W;`³ÎSA4¢O×ëc*„£÷“ í����IEND®B`‚IMAGE 186 ./arch/armour/mail/mithril_ar.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿ¶ÿ�ÿÿ���ÿÿÿáJOã���tRNS�@æØf���\IDATxÚåQ À CM½ÿ7)4Ô=Ø—cbåÅÔŽ¿)–ª<g”V8-îæ*ÎØŽ é1$šEy¶UpHÛã¾ìáæN½æeÑ`|:A/ :ø‡aœœ†¸¾¥ ƒéé†b����IEND®B`‚IMAGE 186 ./arch/armour/mail/mithril_ar.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿ¶ÿ�ÿÿ���ÿÿÿáJOã���tRNS�@æØf���\IDATxÚåA À þÿÏFlº„Q<ôÒÒE!:21åo©#wµÀ­Õ+³Ž'ª¹ƒo°/ŒúšpÅm´¤9ü-ãJ¡ETÁ€ï5ØÁ`OþP„ƒ³‰ö·ÒƒéGó˜����IEND®B`‚IMAGE 212 ./arch/armour/mail/mithril_ar_ele.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�ÿÿ���ÿÿÿÿÿ�äР ���tRNS�@æØf���sIDATxÚÝOÑ €@ jËÿÿæ¼AÆò(¨§’ <ôܶü ¸w$1H˜œ¹®‰2ƒ§ËlгÑdYÄ'5iVO³hF=£Ëí”évçð¦[ŠTÁÜ�]3OÀþ;”ð`‡¸Üáo®ð‡,݆¨?† ÷áG#ßp"����IEND®B`‚IMAGE 198 ./arch/armour/mail/mithril_ar_ele.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�ÿÿ���ÿÿÿÿÿ�äР ���tRNS�@æØf���eIDATxÚåQ À0C«õþgoEØ×£Bhʳ±ŽÓÊ©4Ïé°¼oÅ]x´aT%ç*TYúœÑZlm—ÚÄôðâ•bêµ\Öeè›{H°ÿ0 kÎÔÏêÐU9*Ñí*����IEND®B`‚IMAGE 209 ./arch/armour/mail/mithril_ar_ele.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�ÿÿ���ÿÿÿÿÿ�äР ���tRNS�@æØf���pIDATxÚåQ À0Ckôþg^lÁ::ìcì¥&lÇß@¢ËD�îˆ�áé>Põ‰Úu$Û£dkT è †–@pJ&»<~‘B_°©))‰ž"W ­·HˆÛ„ ðÖ¶NÐO>ÙaÈ–_TßbälA,²Éæ����IEND®B`‚IMAGE 207 ./arch/player/class/Religious/monk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi²""Í…?��� R-Gst…���tRNS�@æØf���hIDATxÚÕÑ1Ã0 AQ¹Ýÿ?9A\¤Ò5nœÔ @Z V å�µLaïí磉Êq¾UàÕ�¦­ÁÂD©wÊ´K½¾@FéÀ&@Ó>5Q:H‰V`t"ÆQ¥L°_ë¿z´LÚÁÄŠß����IEND®B`‚IMAGE 207 ./arch/player/class/Religious/monk.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi²""Í…?��� R-Gst…���tRNS�@æØf���hIDATxÚÕÑ1Ã0 AQ¹Ýÿ?9A\¤Ò5nœÔ @Z V å�µLaïí磉Êq¾UàÕ�¦­ÁÂD©wÊ´K½¾@FéÀ&@Ó>5Q:H‰V`t"ÆQ¥L°_ë¿z´LÚÁÄŠß����IEND®B`‚IMAGE 230 ./arch/player/class/Religious/monk.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��¿¿¿²""ÒiðæŒÍ…? R-���Î*غ���tRNS�@æØf���vIDATxÚÕÏAÃ@CÑIÈ`ÿû_8¢Rw…,ºi½õ“ë}æ8ŽyŸLèûˆ8ψN`#ÉÞt@T_¢™6Îä#R:°edê›þÈm¨ ¬ë•`mÁ,(`Ã0`ÉþÈ 'li›¾/áxø‚wÖßåH“Á@t)í����IEND®B`‚IMAGE 230 ./arch/player/class/Religious/monk.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��¿¿¿²""ÒiðæŒÍ…? R-���Î*غ���tRNS�@æØf���vIDATxÚÕÏAÃ@CÑIÈ`ÿû_8¢Rw…,ºi½õ“ë}æ8ŽyŸLèûˆ8ψN`#ÉÞt@T_¢™6Îä#R:°edê›þÈm¨ ¬ë•`mÁ,(`Ã0`ÉþÈ 'li›¾/áxø‚wÖßåH“Á@t)í����IEND®B`‚IMAGE 231 ./arch/player/class/Religious/monk.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��¿¿¿Òi²""ðæŒÍ…?��� R-[Öîa���tRNS�@æØf���wIDATxÚÕÐ1Ã0 CÑ$RLòþÓ¥åµý€&>xðñƒ‘›}-Îà<'@Ê/dÁªº®*F ši½¿1‚µ$_Ú�Gˆ4H‚€WæhÈ w�¥§}4€Äé«a `äK€m äú€øvüYˆñæú›‚.����IEND®B`‚IMAGE 231 ./arch/player/class/Religious/monk.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��¿¿¿Òi²""ðæŒÍ…?��� R-[Öîa���tRNS�@æØf���wIDATxÚÕÐ1Ã0 CÑ$RLòþÓ¥åµý€&>xðñƒ‘›}-Îà<'@Ê/dÁªº®*F ši½¿1‚µ$_Ú�Gˆ4H‚€WæhÈ w�¥§}4€Äé«a `äK€m äú€øvüYˆñæú›‚.����IEND®B`‚IMAGE 222 ./arch/player/class/Religious/monk.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��¿¿¿²""ÒiðæŒÍ…? R-���Î*غ���tRNS�@æØf���nIDATxÚÕ1„@ –Äãÿ„D¹¦ ¹›Ö#[ÉøAì‘é~1¶Íy ÛaÅsîûœÓK$Q^çøb)4Ý. !¿ðÒ䆨’pÜÄW–çœ Ø p~5ðEЛPR& Ö† @ªxÿÅ ëÂ8Éâ‘g����IEND®B`‚IMAGE 222 ./arch/player/class/Religious/monk.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��¿¿¿²""ÒiðæŒÍ…? R-���Î*غ���tRNS�@æØf���nIDATxÚÕ1„@ –Äãÿ„D¹¦ ¹›Ö#[ÉøAì‘é~1¶Íy ÛaÅsîûœÓK$Q^çøb)4Ý. !¿ðÒ䆨’pÜÄW–çœ Ø p~5ðEЛPR& Ö† @ªxÿÅ ëÂ8Éâ‘g����IEND®B`‚IMAGE 577 ./arch/ground/Mountain/moun_cave1.111 ‰PNG  ��� IHDR��� ���!���øYc���WPLTE�‹sss!!!œœœŒŒŒ))){{{kkkBBB„„„999µµµ111¥¥¥”””­­­ÆÆÆZZZccc½½½ÎÎÎRRRJJJ���ÖÖÖÞÞÞ6°È½��¥IDATx^Gnì0Ù‰9*ÎØÿþçü-k`Ø —v¬ÂkÈ܉-˜ß£ŠýÅóríãç".ŸGµ„å§ .G®…®Ü7ß–Ïž³ú“ÉUÜ÷`áZ q¥äŽÓ•òî]>Î<S[N!z/ø8:‚–pE׳ Ò›Ï]¸÷B!Ä Yˆðæ{í͵^ã¶Y¢Ý~ùÜ7fŽûf™F€OKöå[oQýÄVÂÖ4@¢—gY@˜kc˜xŸ4°ÓgnÎWÞ9væá¶,¦ù§¾5µz/®2CøP´ð…†-q>v1ºZ!œ€.ØgÑ#âöXå¹kÇê‡ê9 Ú •ÝIÝ»ûyभñ{«ü< XýWa±ŸŠàÞÎ#­ƒá- ´å’éâ¸/;"Ý‚UƒB6=ÆüÛ\îBˆx®â Œ"­ŠŒ[°ÎÀÚ`.86(+áÐ�_÷Àƒ'ÐÞÒ jd@Ü ] -&A1“Ìq³icX'/á|Û^pPÑ×—VCR*öëuú;3õÅÍŸùà­À é6+����IEND®B`‚IMAGE 607 ./arch/ground/Mountain/moun_cave2.111 ‰PNG  ��� IHDR��� ���!���øYc���WPLTE�‹ŒŒŒ)))ccc!!!œœœ{{{BBBsss999111„„„¥¥¥RRR”””­­­µµµkkkÆÆÆJJJZZZ½½½ÎÎÎÖÖÖÞÞÞ��� ß��ÃIDATx^Ò·r1EQ´…÷ã–Òÿ§0ä²Ä-è¥÷ #˜¯KÕ™ŸWü¡ëö¸êïïEÚÞ®ŒÂñ;·kä(,·ðöŸ^··6Æê;32ØÁ¦9 ó.Á^ãk·ãqéÐÎ"êö�‘W¡×ÕôFámÀ,/}4ÐÖ’sQ˜ á/½åVmm9'ŠtöÃÞðoµjUÕD'â š?Pð³×VÓ ª‚uñg]€E>»Ú¤àA5×("Üãœùybhµ3+ijª‰™¤K?“CWŸµZŸóœ`³ª/,bdŒÒ1"cÁÏÔ¼KÉæœ©¢#òŠxD4,¥ -§YK)PÂbr_qÙx²ðþ¦j-DÖN¢ÂÅLªY°xU P`_ƒBÈ1Î÷Úêã {8Àý)cqÁ4°Ú6bæ4 à(@‚á(Æü:íh°*c—ó Ö>€Yƒš˜;㥬þ„ÎÜÓT}Ü…ûWž À'˜ˆ™» c¡ø¥„÷ž“zæ3 KéHw\à(æcCÓ‰\_ßO¬úòcítî¤È]bpn½…y€!¢ù~ ˜·%óßûi+BÝÑ™����IEND®B`‚IMAGE 579 ./arch/ground/Mountain/mountain1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE™™™‰‰‰eeeUUUÒÒÒººº@@@888¡� qqqªªª™�…�îîîÆÆÆ�0�8��âââ”Ïp��¿IDATx^U“ Žã0ûÐyøHfþÿÖ%[q+†$VXR�Ëyž×5®“»Ÿ×À ;˜\CP.µù¦GpÑ06íõn$bÌ9ÐqQPî;xøÁgœ�¨�zÿcçó;¹;«ÝƒƒCs¼¼ÀPø®µ~\Ú'x€Ë¥ÊMûša‹< „Ê->É��Ñò �UŒ��qµZîB`‚ûÖp *˜‹j)"; “ Ð-ƒ€‰VìÞ õÖí6çà!q?Dª(’3€>—¨ÿ¸gç_MÁKíPh$튼º(\UK�6;+šoón…«,3YK« ÷YÑVs ÜTm­#UL›Î{ÌlO..’¬êJjP-mΙù{� JôÈ¡9€8_¸ȶ´-³$*= Lÿ€dv¬žß9AÑbÿKdÝí·Ì …å ä�Õº^¯Þ½©¦LGÿ™€™­ßÒé6Ûz�dˆ§eGéŸàžc\#µ0"ï½uJ&€‹ÀzrZ{ÿiÌwÇyÊåKÃø³¤‡Úøô\×_ÏÜÛ|#€ÓÛ“²¤=ß _€ø0Á`ŽŠö¬H˜ÓÛ3����IEND®B`‚IMAGE 221 ./arch/ground/Weather/mountain1_rivlets.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿ€€ÿ��À�ÿÿ„¢»���tRNS�@æØf���IDATx^½Æ!ŽÂ@��ÀÉ–ÂÒà!Õ¨sX <�Áм¢A WW­¸Kš RÁx Ù'`IðŒŸ† ªk4)BÊK£²¤I7ój-ÄLÿ Õ¡ós!3û3Î!K„Þ�x�t�¿rß²(�¸¿'í`#êm“eͳ­­Î§ö{ëT¹O©Ù����IEND®B`‚IMAGE 309 ./arch/ground/Weather/mountain1_snow.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿåßßÀÿÿÿÿÿ—»„���tRNS�@æØf���×IDATÁ¿Jq��à¯~4é8÷  Ny­½B–¦–† (2¡µ%Ÿ ›rôÈ9œš¢?âAAÂ)×÷OºKßÍËR³;SœÜ_ûëÍódйµ(’Æ´˜¸š¾½D½‡GûƒÝ¼zÓøp÷FË­¨ç³²P¯–.fQ¦ ÍÑsìõ©p>œÇ*ÙÔa8‹ƒ¼¯Äy ñoçXuj8šV-JdRl¦ÀJ ¨���ˆrB TÀ;¬É6@]†ÛƒŸ¤-rEá·L$ƒâø™}Oˆµ¨„²����IEND®B`‚IMAGE 587 ./arch/ground/Mountain/mountain2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE¡¡¡yyyqqqiii @@@8880e�HHH™™™eee000‰‰‰}�UUU²²²�e��u�‘‘‘HQP¿��ÇIDATx^UÓÙ®ã P÷ÊŽ—ÜÿÿÖ©†8ÒXyÀÔÕŽÄ‘Òs]ãJñSÕtqÅW<F„PJÝ4tìÄ&²�vkí§…Xoˤ‘¤HŸ¡å<3ÀëGÈ bÐÜ¿b¬|W¤¨{"?§ª"KªÛ=ãOŠÅ£ %€Ž¡Üû·ëX´'xÁ¥Ô)NÚŸ¹Û"_Át’6d�@¢€¸ü€�DUD�øß”¥—³htž %� 91—"YCmÝÇ Ä»'˜›Ë)4†Ä$zu(”3€·J¬ªYÇ8ž(ø°ÜŒšûˆ¼Oð�C™ 9- ÍÜX,„)*”©ŠP­Ü™b¬šÚ*ÌRë=;·4€f-‹GƒN=”hJç:YPUXk-£Â �*™…nÎ �!Û Ke«"“˜|5¬ô¦È]=kž¨Ø³ÿDYÈŽÒ*$o¿`�s¯Ÿ»óÌÑá?‘mYâÑ-²ëÞ’ªÜÅ¿Á Þ1®±*z‰üÔÝ<JÀ î|·ºÿYäûŒ”ŽK+¯Æ¿ *ˆ¯ÔÆÕ{”+ìû´ìÖÞ—±ï¦ÚÎö!öÞ™u±P‘ þöå]ùHé`êýè¿Æ����IEND®B`‚IMAGE 221 ./arch/ground/Weather/mountain2_rivlets.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿ€€ÿ��À�ÿÿ„¢»���tRNS�@æØf���IDATx^½Æ!ŽÂ@��ÀÉ–ÂÒà!Õ¨sX <�Áм¢A WW­¸Kš RÁx Ù'`IðŒŸ† ªk4)BÊK£²¤I7ój-ÄLÿ Õ¡ós!3û3Î!K„Þ�x�t�¿rß²(�¸¿'í`#êm“eͳ­­Î§ö{ëT¹O©Ù����IEND®B`‚IMAGE 309 ./arch/ground/Weather/mountain2_snow.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿåßßÀÿÿÿÿÿ—»„���tRNS�@æØf���×IDATÁ¿Jq��à¯~4é8÷  Ny­½B–¦–† (2¡µ%Ÿ ›rôÈ9œš¢?âAAÂ)×÷OºKßÍËR³;SœÜ_ûëÍódйµ(’Æ´˜¸š¾½D½‡GûƒÝ¼zÓøp÷FË­¨ç³²P¯–.fQ¦ ÍÑsìõ©p>œÇ*ÙÔa8‹ƒ¼¯Äy ñoçXuj8šV-JdRl¦ÀJ ¨���ˆrB TÀ;¬É6@]†ÛƒŸ¤-rEá·L$ƒâø™}Oˆµ¨„²����IEND®B`‚IMAGE 607 ./arch/ground/Mountain/mountain3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE™™™‰‰‰UUUÒÒÒºººÿÖ¡Ö¡qâ®y@@@888 qqqîîîeeeªªªÎ™eÆÆÆ�0�8��âââ·—Ø��ØIDATx^U“‹nì D=6ïG’ÝmÿÿWïØiZÝ!|P$¤ÕÖ^­õÊ vF®›¯H#ÁÎRêË0û‘ÞºDêµ3¡c 52ÉBiB>ŽÄ‘îc„Å݌рÀœàòf*GG£«×€o — 44d(•â.Ê„"G+òñ�Rä×¶—„¾v¯‡b�09‹K§¾¾Åò/ � ¦%ÙEBŽÃàDíU*E³œ•D‚*7?ª² T¬(Ï 1ÇÔCñÓB(Â%RŒ@–”̵Åð$Ò*oÓ˨‘ón‘îÓ 3a]Ð5½Å0�>U:L¶ªìmÅ„ûÑbìŽ&P3Ýû: —.�k¬¤Ó 8!9µØ>M©ÚŒµVòó$(?*ÍT.KÄýÂ@Òmc«žb2Ãàópª^{¦O:©±ÿK$’©Œï¼šn ý�ç `Vöû='†Ù™Ü1‰ä€ªîï<Ý­zë <’.8·^yþà¹Fk¡(ÙãSœcºd5€ýÔÝ:ç×ðúÝ£wiØƯØDf8¨õwÑaû¯Všc=ÁŸœ¼:F¤»I„¯µûÔ„ÿ½ÅóçL®ý_¤TK]õ����IEND®B`‚IMAGE 537 ./arch/ground/Mountain/mountain4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE9��!!!�1�999BBBRRRhœœ„„„ŒŒŒœœœºººÖÖÖçççïïïÿÿÿÔÙI4��¤IDATxÚE“–Ä CÅA(vîÛM`»ë´ÔšoÂôµã{ùË/«ˆà‚éMœ}Œ–ê}–¼:I.Â!ÿ€ó¬% ÷ xÍ¢%ŸÇhA…¿@€ª´D_Z N�–@D*MŠÃ9Xh)‰„$ €ãé£Ü“ÀóWöÙŸqëÒ:#ˆØÏ–)ýXòJîÈ?À ˆT6˜é'Ÿ$0Aìç‰ÊbddFd:¾¨X°DZoXºÔÔ÷Þ'�ä6 dˆBõ �ÚÂÚA%ñ$bCoÀ§Òb…/�Ÿ%w¤ÄvwœðÙ\§ÅÂd Žâì`áÿ˜æÊ1èÐ=X8£¬9§q?�ŽÈ¨>¬€ê¯² 0� ”íØZ ¬ÿ€±Cµ"V­ÿV�¼×Í9áÖ€½ÀqüUAfÊü&è&o*³ÝÛÀòíR…À¤õoEœìÛ–Du)C&€KÀ[ïTÕ±¨Ó£€J 8­ŒþD_7èkÖ¬_J�WVß¶Éz¿™Ûu ¼úÿ¾ì¯“å/Dñ‚æ����IEND®B`‚IMAGE 584 ./arch/ground/Mountain/mountain5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE%.,.:48/ XWD@@@Àÿÿ~‡w£ž‘»Å»ÙØÔåéêó÷ôÿùæÿÿÿºN��ÓIDATxÚ=’ ’ã0Dùz@àÑýo»´äÙ.'ÓÏA¡Þ»jw÷îµvzôš ¹!Šè}t*K,ûa>›æWÜû¤ 3 Ìñ/€”îµÍÕ(\ƒ>ºª~¸°›“0F�Õ·Ïr&7Ëz(wáªê£ ˆŠYè~C~îyz#� fÑǧ`üà¾é{²/ì¦Q8YŸ)Ž€«eW,Oˆ#Ñù÷ êªk�&2 @¬ö'‹ðè@ôïó.»ÐŒ%Ô�Jæ¹_ê…—~q’Ä»cíRåsNÔOüíêLÓCD¤J®?du×^�¬rB“?ô"bÑ){f¨»¸:QáÙZ€v/ ·ÃÚ"ÊD««ºÖB›Ê áÌ®ÊLž×?DiO4”Èî±# +Q" £!Àô[î -ŒÈû‹`QWzµ_Ìç W²™0f œ:Vèì±2]HoÄ�26I¾×IW1 Ç÷Ę瘙9Hjb•AL*]Ä«Þ7-ÏZˆ5  dUôÄZiÄ£ùêpo‘=»ie.‚ŒÐ4ü“˜v7íÎ0±'ÒZlüuÿ“z©çVG\«GãÔ[´GõBßqäð`ý)Î#[|0i¢����IEND®B`‚IMAGE 1643 ./arch/ground/Mountain/mountain_2.x11 ‰PNG  ��� IHDR���@���@���·ì���‡PLTE���)94V!)!1)B!!!!))!)1)))))1111119999BBBJJJRRRRRZZZZccckkkks{sss{{{{{„„„„ŒŒŒŒ”””””””œ”œ¥œœœœœ¥œ¥¥¥¥¥¥¥­­­­µµµ½½½ÆÆÆÎÎÎÖÖÖ8øóƒ��ŸIDATÁ «\Gr�ÐSÕ}gÞ‡ÖaC6±0Ø;°ÿÿ/…Äb[~Ò“fævU眘���?®ÿ���€‘��€Ÿçxý ���€‘��ÀO—°Çå���`$��øÉ öй������üxÒÅï>Ü���€�€ Záþ���L��x’{ïºý)wÝ_¾��@�àguϼÎá|ðO����ƒÝÝg`â|y>~úW��#�üJ‚±«µÎˆ§~­/_�#�~8ÌX;"?Öê™Ýµâéá‡yÞ_¿� �ðƒ‡ ÂÀR~MFôíï�@�þÁ»Ï“ó<`ímòoë:†Ôß^�@�\.Á6ös1ÎÙQÕ/��À÷cŒ‘»|[‹iÌ%;Aõ ��…„½»0ç¤sX"MT¿�0�¾¿Œ#vïî=â1þLºcFœ³o;€ �ŒBÉž¢¹*–Úk]÷±a²f0�?9÷~_½GxØGDFFJŽ~ÚÙ'ÙIH� èÜC wˆL€~Øèyµ �#øe ·jö¡wé zË®½׾ģoìj€àg`�Udd6Ì›®ÞUÓN€ à—Ž*†4�™mÐÛУæš{ ð‹Q…Æ  ì=0ÀÈþ¦ »@ìXdc‹’`Í HÀ®Š*MG�޳@À~zl§dÔ¹»óBƈýÅ Œr›Î½á ~=Œ6i�·]zc`Âr’㢴§Ç>œìrZ&Ôðåº\=À˜w/_!ñ±@ÕE©•�X (sŽ;@ÑxÉÔiñÄ{¶8[ƒ¢¸‚S*Eqt‹MB<á¨� �åÞ�Z"˜þ½Õ&¤·Ïåó ­ÀPF-£†)ûê¾»º%žãÃåÛ'���¬Æ`ˆh0ÂáÙ×|íÓóýíY [sÉ2µësÌNsÁØšù‘²Á³rËr¯çªÀp­55ˆ¹”̬xý¿5oë•g}c’†Î”"ÍEeŽÊ)!à }V±L·/·óO&æ Š€Ù8LxŽ6÷1纱ÇÉ1²Í†±/âHÆ>¤ßó)ºÅ9®Öz?«¬uš ¥ˆ´$Œ»o.yäqìwÇ~Äd\Î[®KÙ2б÷ˆ-º ƒÌ-"ùš}«Òæl³¾,uð"�è4a4öæËdºù[< ã$¶QØ{¶‘Ùmn;Œ uúKòé[A‰¹Ö «î�„F\Ml1’ãx=qœ§éâ빩{uåḚ̀7±EïË6ªÉ}oHßÿýz¹ÝêÙýyª¾-êú¥àZ &Çd-¼A~Œ§QçþÎ{œÝTáÊyVÕ:úÝÞì½1@¼¤úQ#¿<ŽÍÅ0Æx?aæõD”Ì‘÷ äëë¨:ž¿Þ¨*Ufšùì!Ùƒ %°·`LÖƧ?žkæ|ßûˌˮÇ6"cŒÛˆ5óh3¶ €ˆ6HÚñTëû—ûç¤#‰8æ½eg�Ø9h ù}Œ¬ýyÝ?9×&´ÎCi+Ø€M¤œ3€‰yó´Ÿsý×tdÓsãšäÎqÒé ð·ØDîQéûûxñþ©õõñ8‘Ñ"öe?dÆÔç_«·ûãq‘ Lâ)ëv_jxùêèÜ„½óhñæ»óò€·¿Á;€äõ¨Çº­9ê}¾¬yŒÈDàò�>�Éx¯®oOÈ;ÂÆüÌÛ���#=¯?|×úrϼåÑï÷Çýúe=à���Fúü/uî§¹ß÷œ#{~÷x?á����&ºÖ1Õ(GƱÿ�����Lü/­±óù �����€~ã3o������HÀo�������������ðÿá_ÿ\ §¦C����IEND®B`‚IMAGE 251 ./arch/monster/animal/mouse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ™ÿ™DDDD��™e�uuuUUUeee000�� Z›<£���tRNS�@æØf���‹IDATxÚí‘Aƒ0 ÛÆÄ»ÿÿ0+— `“{‘<#)¯?? CÌ}°ô&<‘@$ÉÏ–BÉÃR³,•ÙëäÕ7éw&�é®C ïZ+ú +H»¤ pœüæÙt <¹.Qà-6M« bz5"¬à�,‚&x1ÞÎûkÍ‹¹io¦zͪÊH²vŒµ����IEND®B`‚IMAGE 248 ./arch/monster/animal/mouse.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���™ÿ™DDDD��™e�uuuUUUeee000�� k?kd���tRNS�@æØf���ˆIDATxÚ푱ƒ0 K“¿ÿÿaÎ2RšêÔ[2Üɱä×Ã?#81¡&ª‚wë@’´¬ºÂ¯¾ õ†2C¯fF3þñ‚'@ã > •îࣘG”"i÷1‚"­9à%HPH—A‘W «9ðEbŽ Î…á)tì!¹‰Ó\Ý:ûÜý¤Ç÷Ù�t´BÛ1&_����IEND®B`‚IMAGE 239 ./arch/monster/misc/mudman.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-���Ú¥ ̾|í���tRNS�@æØf���‘IDATxÚc` (0AâWÁ”Cþ; ÁÀ`ɽŽ!ÈÐø{o[Áö¼þkö ƒûæ»÷Ñ@Œ­uó@ .ýý÷~,�2˜ôJïîh�¤]ûõØDÎûå `Óÿz° sù[ˆÈÏëÆë¿@ÿ®…ˆ°¿¯‡è’¯½ÿÌØ—›f<‘dÜÀ@&��t/¬â!ñ����IEND®B`‚IMAGE 234 ./arch/monster/misc/mudman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���Ú¥ ̾|í���tRNS�@æØf���ŒIDATxÚÕ‘Á Ã0 ÄLrÿ §AÄÐ�åCëpÒYëÿð®#PÀÜ·2g¦9ͦÌâ\%Ym�]ØÓ!Dn‡@É÷z@V%ë‰e_¨²| ´Œ";³èÖPì®9%â*^OVQãWÞãaQÌü"ŽD…ã„2&EWrdá`±_¥¸.=¢ëù�ôíck(D����IEND®B`‚IMAGE 182 ./arch/spell/Golem/mystic_fist.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-ðæŒ®*���tRNS�@æØf���[IDATx^­Î±€0P-ÁÆi!M²7 N 7¥æÌ¡áÃËÄØVœÂÞx �ÁȬB6ZŸò¨DQg�fd‡!ÀI!è2³¯w†nð2¾Pž/'`#åuø\����IEND®B`‚IMAGE 181 ./arch/spell/Golem/mystic_fist.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-ðæŒ®*���tRNS�@æØf���ZIDATxÚíÁ �1ÃÎì?tU*ò¨’› þÚÄ÷p�ÿºª Z‡b«Ö© ½`ã­¡ê*ÚÌ!S› 9˜±ºåÞ’¸àÆ… „ÑëJô/8ZÊqäó�Jé¢äV5����IEND®B`‚IMAGE 181 ./arch/spell/Golem/mystic_fist.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-ðæŒ®*���tRNS�@æØf���ZIDATxÚíÁ �1ÃÎì?tU*ò¨’› þÚÄ÷°�ÿºª Z‡b«Ö© ½`ã­¡ê*ÚÌ!S› 9˜±ºåÞ’¸àÆ… „ÑëJô/8ZÊqäò�IH¢Ù»rð����IEND®B`‚IMAGE 371 ./arch/monster/undead/nazgul.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEGllààà��™��-�����`��DÀÀÀ@��·��€��`��```‰�� ªˆ4À @»3¡T���tRNS�@æØf���ëIDATx^}Ì[²„ PòFǽûßì(I¥T¿ÒÇ.)ªRVAt± 8€,Tµ@}ˆõ³Ãþ© °;ØóD�_€à7�¼Yì´°=äZ+‹Ý ô¨Zâ]­¦¸ªcÈâµ7ÔÅøM΢ˢ‰ð¡lM Þ€£ƒm+D jzÿ¯×F $Ö{µˆJ ˆHq Žh�2@`v‘�Ðú�ä Ý˜Oà/&¿lî€x�짦 D_b@(3RØËú~¤Uÿ” ØX¿ püžE$Õ?‹Ô ¹šÓŸ5����IEND®B`‚IMAGE 372 ./arch/monster/undead/nazgul.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEGllààà��™��-�����`��DÀÀÀ@��·��Ý��€��````�� À @ªˆ4ÃMù���tRNS�@æØf���ìIDATx^}Ìk’„ `òÆ×Ìîý/;JS)•Æ_éÏ.)ªRfAt1!8€LT&µ@}ˆu[aÝê¬lkžÈ�à 0|�ÀÁbï …í ×ZYìY GÕzŸjupŠ' :ˆ(Þ{³1@]Ü€ßä\ ºM šï:ÀÒâØ;X–B”¢6 ûþ÷ÿù,Ô@h½W뀨t‘€ˆêˆ Ó \ÀŸ@$�´>�9h7æøË€Éod�»�wÀ< H�öS— D_b@(W¤°— ôýHªþ(°±~àø=‹Hª–- ÃjÌ$ô����IEND®B`‚IMAGE 407 ./arch/monster/humanoid/necro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���À�� � €�€òÄM`�`���@@@À @ –z���tRNS�@æØf��'IDATxÚ•Ðáά0EÑŽ¥ïÿÂws0MÓ|.jìp–ttü_¹çÝuäá~Wžáy‚}«Jò<Ä¢ÿ-ȱÁ\αuu�2å èÍŠqu§Ì>`¶'”ã¢È–䬪 PÞ;¥E|ÀÂè-Ò™lŽpîáYš¡ ä€QNcÍþN$™ú›a?TÒáÙ�16)¶Ç¥�zÍg‡g°�ÀR<ùõ𲩪ÔÀãûž âžµGÕX‡D½ªd‰ÊY?0S@ï*àZN}/Î7 †Jító}ß1n0‚åÛ`(o d‰=€ƒ…’«N _ùyçaàˆŽwY˜v(ظÀû"‚Ê*å§€ÐUÅý|“«6øæ3˼øñ����IEND®B`‚IMAGE 407 ./arch/monster/humanoid/necro.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���À�� � €�€òÄM`�`���@@@À @ –z���tRNS�@æØf��'IDATxÚ•Ðáά0EÑŽ¥ïÿÂws0MÓ|.jìp–ttü_¹çÝuäá~Wžáy‚}«Jò<Ä¢ÿ-ȱÁ\αuu�2å èÍŠqu§Ì>`¶'”ã¢È–䬪 PÞ;¥E|ÀÂè-Ò™lŽpîáYš¡ ä€QNcÍþN$™ú›a?TÒáÙ�16)¶Ç¥�zÍg‡g°�ÀR<ùõ𲩪ÔÀãûž âžµGÕX‡D½ªd‰ÊY?0S@ï*àZN}/Î7 †Jító}ß1n0‚åÛ`(o d‰=€ƒ…’«N _ùyçaàˆŽwY˜v(ظÀû"‚Ê*å§€ÐUÅý|“«6øæ3˼øñ����IEND®B`‚IMAGE 143 ./arch/traps/needle.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ�����¤©ñ���tRNS�@æØf���4IDATxÚc`XÀÕ�c­‚±˜VÁ„´ ,& $˜ÅÙÀÀ´�Ê`à1T Já N¸1Tq�¹@ÞÞt¶ ����IEND®B`‚IMAGE 202 ./arch/monster/animal/Neko/neko.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���oIDATxÚÕ’A À 3ûÿG7†@…ƽôÒ«¢ãO@mF¹¼€ä¯(h›¹ƒ eñ¬£ ”�î ¤¡ˆLŽÓ²=yNo°9 Þ@ /2‰F!#î>£QÎ"h¡Šg ¶ð V>ɸeñÜ[©����IEND®B`‚IMAGE 204 ./arch/monster/animal/Neko/neko.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���qIDATW•Ê1€ Ð’è \ô4¸8389ë�§ÁD™DNiüÿ³k—¾4~Ei#Ø=ÂéÑœ%”ˆ•°ÌŒ¶$iIQùͶ30Ár\¬¸ª”±bä  9ßô… £^péºlâFgð1߯  “?í°����IEND®B`‚IMAGE 203 ./arch/monster/animal/Neko/neko.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���pIDATxÚÕQÀ CË»ÿ¡7É>\ùÞÀľTÔŸP¸'€€ nÑtq&¬Û‡ $¤ûîÑ€€X�ÊKh?0o PK#`Ñi¼û6ð½m�p¡SvÜöÑ_ Ä4 l£(XõI]Î6`;|÷õ����IEND®B`‚IMAGE 199 ./arch/monster/animal/Neko/neko.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���lIDATxÚÕ’Q À C×ÜÿÐkã…ÊûÙÏ UÐ<B¥^'Iò@È‹�1 HqBd‰\à�„MhÂoôSßÈ}F?Ì.˜(¿_j–0}e-Å´€5 3¶ó4@÷<À�Ûøéª~©˜—ZÃÀt³����IEND®B`‚IMAGE 197 ./arch/monster/animal/Neko/neko.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���jIDATxÚÕ‘A À üÿÑŰPh×xðÒ×ÓhLx €ð$€ )[X„€èM|>X8££ÆgÂ8ÎyPÒ“` :‰%€jh€"¸mÞµR�Ìq­�‹ÄÔõV󛮙듺�^ÞS%U=����IEND®B`‚IMAGE 196 ./arch/monster/animal/Neko/neko.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���iIDATxÚÕÐA 1 CQ?ÝÿÐÞt Œ(í¦5(ô±Í? { V ÐIzÄŽ¾!_"|a„˜þLæë¾]NÿFl\ìí 8É*¬Î 7f`s­…yxµÿ°¡¥wÍ0?9vzWæ‰J÷����IEND®B`‚IMAGE 202 ./arch/monster/animal/Neko/neko.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���oIDATxÚÕ‘Q À0CûrÿC¦£ tìkíëøS€Ÿ�WÈ�’²„ƒ<AúHÞJ0·ˆ6‹@Ø“Êrõ`8¸DšYú›°Û'`Ð+ ´Kê,-áþ6X ¬!·�¬O Ò)ò5`æ'ã�€gWóû›����IEND®B`‚IMAGE 198 ./arch/monster/animal/Neko/neko.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���kIDATxÚÕÒK €@ Q«ïh¡DFÒ7pò&ñøS€GÁ§: IoaÐ+Jž„M´lÔ]õ6ò³\¯yOé0Ä´)C^ñ8_€`U„fúܼÞ�Ô¦©ÿµéÆ 3S·����IEND®B`‚IMAGE 188 ./arch/monster/undead/nightmare.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���^IDATxÚÕ‘A À0ýÿŸ»´X0ÓfO=d… Î ‰½r´ú ÊÓ½ó2 ”‘ª2»Ðn pχÎL50j4.\2½”FX3§á¸7°ƒÙÒpc-þÀïÚ)'GBE°Y����IEND®B`‚IMAGE 183 ./arch/monster/undead/nightmare.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����¤©ñ���tRNS�@æØf���\IDATxÚÕÎQ À Ð&÷?ô6F[–LDðÇ"æYŒÃÂ^ãöNž} u ¢¤€Ï%€g7Ñ/® ð©A·2!¬w³~.ì*¸gB 9Ëöjâ¤\až£k€º›����IEND®B`‚IMAGE 183 ./arch/player/class/Thief/ninja.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-¿¿¿���˜¤ÄÆ���tRNS�@æØf���YIDATxÚÕŽA À0 öêÿõÁ0’`ìPÜ‚Tèu"ÀžÙoB {‡ÀEUš®`­…уΛ.àE (°ÒÖ¢û£‘p0…\¼³×ù9ðå§�(·Cx�;*] Ð����IEND®B`‚IMAGE 183 ./arch/player/class/Thief/ninja.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-¿¿¿���˜¤ÄÆ���tRNS�@æØf���YIDATxÚÕŽA À0 öêÿõÁ0’`ìPÜ‚Tèu"ÀžÙoB {‡ÀEUš®`­…уΛ.àE (°ÒÖ¢û£‘p0…\¼³×ù9ðå§�(·Cx�;*] Ð����IEND®B`‚IMAGE 191 ./arch/player/class/Thief/ninja.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿���®Ê���tRNS�@æØf���^IDATxÚÕA À0Ûfþÿæ)‚l]ÏÙƒf„$×q&ÑpÂÇžñjù7X«Ðò@XÜWa“¨*lÅ|)(ÓgzÅ Q ÏÖÙ[î (£òY¨³räpR^+ÝKß´ð����IEND®B`‚IMAGE 191 ./arch/player/class/Thief/ninja.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿���®Ê���tRNS�@æØf���^IDATxÚÕA À0Ûfþÿæ)‚l]ÏÙƒf„$×q&ÑpÂÇžñjù7X«Ðò@XÜWa“¨*lÅ|)(ÓgzÅ Q ÏÖÙ[î (£òY¨³räpR^+ÝKß´ð����IEND®B`‚IMAGE 197 ./arch/player/class/Thief/ninja.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿���Þ‰¹���tRNS�@æØf���aIDATxÚÕA €0 uþÿe[öPXuÁCšfHJ·ÅãÆ>œª"pŸà\ƽ¢Êу ÆÝ�q$´vxTçŠðJã¶(ý'LxTžÕÄufó�X·NNÚÝÌV����IEND®B`‚IMAGE 197 ./arch/player/class/Thief/ninja.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿���Þ‰¹���tRNS�@æØf���aIDATxÚÕA €0 uþÿe[öPXuÁCšfHJ·ÅãÆ>œª"pŸà\ƽ¢Êу ÆÝ�q$´vxTçŠðJã¶(ý'LxTžÕÄufó�X·NNÚÝÌV����IEND®B`‚IMAGE 199 ./arch/player/class/Thief/ninja.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿���Þ‰¹���tRNS�@æØf���cIDATxÚÕË @!{Üóÿ¿|C„áÔ:73*ÙÞ I—NBïVÛrÂØù•ý•+„ÏUf(…9)´X ‡â ÎÑŸÎMLÞ.ý™ŒP²åÞXzAN`®|<?g²}D_º����IEND®B`‚IMAGE 199 ./arch/player/class/Thief/ninja.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-¿¿¿���Þ‰¹���tRNS�@æØf���cIDATxÚÕË @!{Üóÿ¿|C„áÔ:73*ÙÞ I—NBïVÛrÂØù•ý•+„ÏUf(…9)´X ‡â ÎÑŸÎMLÞ.ý™ŒP²åÞXzAN`®|<?g²}D_º����IEND®B`‚IMAGE 183 ./arch/monster/humanoid/Class/ninja_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿K}Dm���tRNS�@æØf���\IDATxÚÕŽA€ ×ùÿ£u5MZÐxb„ÐIK- £>š(Œ+'A¯“÷›í€›€ó“§$€s-ÁÿÈîa˜‹ ¼Ék"H‹y3lþê»àb_—a¶lGvÎ!c����IEND®B`‚IMAGE 183 ./arch/monster/humanoid/Class/ninja_2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿K}Dm���tRNS�@æØf���\IDATxÚÕ‘1À ÄRÿÿÑe@îr$R7nI$[ˆº3À ìq2`¨@ Ÿ LËŸòäŸ!‘³ *(EÁë‡#BSÇMåˆ^ƒ°µ†;}9n³@/ä ìäèÌ]ÜhR����IEND®B`‚IMAGE 184 ./arch/monster/humanoid/Class/ninja_2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿K}Dm���tRNS�@æØf���]IDATxÚÕ1À ÃZÿÿÑ­°h#2“å1ºp) äXo �ŠÖÝT ÌïWüó¡Ðœ ÀpqdÆpE¹dû¦ÚÄ)ïpæ\—mØ�úXÁÃ1z�êôaÇÒè¦����IEND®B`‚IMAGE 254 ./arch/monster/humanoid/Class/northman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ðæŒ¿¿¿�‹‹°0` R-¯÷È8���tRNS�@æØf���”IDATxÚÍ’IÄ ! õÿO7–"™àËœÒ ©Jv¶ö©÷V€Z0à<Q©sÿ J+¼¥èÀœ½€GØñxcÈð.WDBÃIá1Ú"Àˆå‘ïa‚6%Ÿ•¥ƒãÒ{Tx(Þd¸jÁÜBð¾Ž0OÆëS`ˆVõC+ÕJˆPñtúP~”fõì¸(F����IEND®B`‚IMAGE 246 ./arch/monster/humanoid/Class/northman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ�‹‹¿¿¿°0` R-Û¾ÙK���tRNS�@æØf���IDATxÚÍÐAƒ0 DQ7Mÿý žŒ„Œb]1B4O1$Þnc ÌIÈ>ÅÀºÝ>gØrg”ð×óËàv˜¸ŸY#`q*¯=Æ™:A­®kJ¨Z�¨ KÂbÍ)#üwbøµŸ0ÝIðÍX”€A/&¨ï@°6�x˜Å>¨yà¥ï½ïÊ9a6ô]Z����IEND®B`‚IMAGE 394 ./arch/monster/goblin/ogre.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ™™™���eeeDDDºººUUUªªª™0�uuue0�™e�™e0Ιe ÉXk���tRNS�@æØf��IDATxÚ“Û’Â0 CCÛÜcéÿÿvÕP`’’}@Õ:µ= ¸A¼Î¥ØµŽABâ:7³–ˆeë@Z HXMðhx¤¯[�ÞÚ”Òiç.¬…>¢ˆž¥rÌ[3úŒj°Šì©^r“ˆI'Mq*Éz¨ÉÊ©µjÇL*o‚=vÜ#NÅ]^È8{Ž1ç]€ãmmã©mze¼âÜ ”¢}ÍP&D‚Ü8’Uùˆ¨óïµÀ êÿ2p�“ÎîO3MåérnR¿j<­œÉÞ;àcìÓíÛÇq`ðS®K o äG‚1†øz’qøÒYï“ïdP…Ëÿì\ø_d´ {€����IEND®B`‚IMAGE 392 ./arch/monster/goblin/ogre.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���™™™���eeeDDDºººUUUªªª™0�uuu™e�e0�™e0Ιe ×ê¡���tRNS�@æØf��IDATxÚ•“YnÄ0 Cg²yyÿÛ–Š1)OP”%>Û@„¼þ'\õ»8ôœcˆ9ÍzÎâž³A| t ó%¬mß¼;ÞûÞ*cÞ»Q@—2°SŽ!70€$ÀLDŒÕ`…êœhTÐŒ¿€R ­ÚnU€d5þDÍ9£xsC×WZ9&ñX×RR*ë ød–…®e™�ßsm­ÁK…—ûÖqæ¨.àÄ^w�fhʇ™˜äg‡…®q‡4œò¨s“VÎÜÎ7 ØÀǺ!ÂQض ÑÇ<•r\À¡D‚)ÇÁO'ŸRXEÑyòº<4áýŸ”™ëæí}vAC����IEND®B`‚IMAGE 438 ./arch/monster/goblin/ogre_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE��� ™e�™e0Ιeuuuªªªe0�UUUeeeººº™0�DDD���e00ÎÎÎΙ�™ee™™™‰‰‰UGFŠ���tRNS�@æØf��%IDATx^ÓÉŽÄ EQ¿g›!CMÝÿÿ­mP•R}W$g"AB² ‚O²¤»ÛA®@ïàh`-0à€,H†t�\=ßw¸EÇÇiQjážÑò΢çfÎ=A®H;ÝŒÃÜ#¢ UÞŸÃP3×Ð,™ ª±cb³K°…[F+o”NF ¶”sJ[�€ÀÌðÆÖíÐì{ξ"žÐRŠª¢ß à~y€B@È×ëó7¡d›ä©. ÜQ2Å“G˜G0Ö6`°�™�ÌÉ?AÌg@wP„Ì¿ X�ë "·Ê Ю'·“p»€‘38Ï“Ãy 9¥ŠHÀœk­ü€ ³ƒëI½þ8°“/ÁžLÿéƒÉ Ûp&����IEND®B`‚IMAGE 211 ./arch/monster/goblin/ogre_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���ú€r™eÚ2���tRNS�@æØf���uIDATxÚÕAÀ@øÿŸWN†zn'ñÄâù,¶Ü,¹¤Å¨X¸ÊkŽ:dTeùf=+Ø‘;¢Ð¸g¼‘v¡`õ÷‘é²”ë$A,Ô S�†Ð6¼‘ܰ n€¶W„'ÇF,�EŠSÈœ¯ð�ta¢ST²����IEND®B`‚IMAGE 417 ./arch/monster/goblin/ogre_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���ÎÎÎ���‰‰‰eeeDDDe0�UUUººº™e�™™™ªªª™0�uuu™e0Ιe ½2Íè���tRNS�@æØf��IDATxÚ}“ƒ DÉâP(…»ÿÿÙ’,ëœ{1æR­hL !麋ûe.þc 7�·ë¢·vÛƒìd»™J¨µñ—AG­ÍÈAÉ8Œ§@; âz ŽB? ^ëC€™B÷uü €r4@ ¥´F‡ ÕðÙ�H،۔§‚ðˆIÂæ›„„8C A>¬fÎ‰Ï §>HV¯V«â¬ £5N¼ºWæ‹�’ítæþœË÷7gÉËqfj^.L_Õt5è3IˆÌ2ç|?ÎtÄ<¥¢<~CEº ®Y¯[žXù*ô˜#|>Ÿ 9BsßßÂînÑ€Ù¾ïïÊfáM»öïÀ®Ê‡qýgCá//­¦ŠÂøÌ����IEND®B`‚IMAGE 272 ./arch/armour/cloak/oilskin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00�™e����ÿ™0‰��™0�e0� ��^÷v›���tRNS�@æØf���£IDATxÚ­ÏÁÃ0ЮÌÿñL2 )ôR*T?A{½œj‹l ëo„äÐóÄF8ø~Ä6@&÷ý1Z� ‘[ÀA½=!"î|`Œ}�`@ Úä7Ôoœ€é@ôG�XàfÈ \ÐK  x:Áþhµ'ˆ±ˆT+ÐyaØF8ÀxY€Y0Àœ{1$(ÿáž û…ø˜¹ÞÊáè óÒ# W����IEND®B`‚IMAGE 209 ./arch/monster/goblin/ologhi.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿ�¾¾¾���äí}���tRNS�@æØf���sIDATxÚÍQ�Cm{ÿ;¯Æ Dùð£d‚>“fÒs"¹÷¥;àËë&‹6>p Y€Y(ÅyC´€¤“ñÛ èøúÕ3rá�P§-r™±�ç)�¶ûà+Yï0 8€á©!•ÐöŠ  kO¤7õT^<,4Î+����IEND®B`‚IMAGE 202 ./arch/monster/goblin/ologhi.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¾¾¾���2Mÿä���tRNS�@æØf���oIDATxÚÍA�!éüÿÑ% „‹›¨ÑŽMƒ½(`ö—î�!n:àš} z@K Á·Î·í[°ƒ‚6`ˆ [šÑ$@Ð?瀔À¡%žŸý^ f¾–ŒlJ<UAøg"»ñã˜ö–>Õ¶xmÐQ����IEND®B`‚IMAGE 344 ./arch/monster/goblin/orc.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿ�ÿ e�0e0�DDDUUUuuu™e�™e0Îe0Ι�ÿÎ�ªªª’€Ã���tRNS�@æØf���ÜIDATxÚÍ’Ûƒ D»Ü"ùÿßíF¤Œ¢>ô©$’=!àõàIuœÒU3pdhVä' Ù€•ùw5¬Ôr@<W~Ù§òŒ¬€ËPŤëFl|•qÔ@‚–|uÔI�"B™vÞÂ×~»ü~ƒ)@‡]#s&Ãò±Ë­©]M"I.ÀÌRá$i�ã¢ÅH™47¥%fp7zD@¿»^߸WèÀ²D›ŸC\–ÄX/€cB¨uzµ†Ð„Hú¨3Fc €úÉ>ì¸tëÅý:����IEND®B`‚IMAGE 349 ./arch/monster/goblin/orc.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ e�0e0�DDDUUUuuu™e�™e0Îe0Ι�ÿÎ�ªªª���h€0Î���tRNS�@æØf���ÞIDATxÚÍÑë‚ àΊ\$zÿÇm£ûÛG±ýÞþ¯�\¥Ì%pÑžsÖ !§Œtx­€Á€;ûkÀáÈͳ×Þ € §œ½‡f !ÌrP0ŽQ<¡Ï)À‡bñaàoÛëÀz ¼¥Œ 9ú5×ôñHÝò5=¢Êì�¢s¼G× íÑ™Y<xs°é¨Œ³°Ì9ÓóÜv/R ̰õ+}6ÄñÔÓþ´†#ûÞ�­Í „ÐÀ¾‡  ï¡ @¿¼/¨õ~ñô½Xóßõª c[����IEND®B`‚IMAGE 456 ./arch/monster/goblin/orc_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE m�NNNuuu™0�™e�™e0Î0�ÿ��Ι�ÿÎ�™™™®®®ÖÖÖÿ�ÿ¾.È���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��7IDATxÚ…Ž„0„™*ÒíZïýßö õÌ&·“(?ó…äç‹þ�àDxlFŸ¡j$€1Œ) ð«r |�føxÁ^Ÿ€Y=êè¸+f@ Ú''�s�hèÌU´Ú'�ÎÅqÀ ¸ î0ÇoÀYmšMî?�#D‚ Ÿ½¸‹k¼ß\ –1¬SÇî­!t´¬ëÔ)@8Ž£ù¿AiR %P„ºŒ Ò»ˆ $Y=íàlŠ]€t-Úå¸/’vfXÀòÇHD˜%±�}ö]•AÓ« `<ž„"·H@NUžV4$<=óSÈ¥À寢ë%γ‹D/µŠ~žOÛ¶ÕiXìû”2ª5÷ýàôœH';szkà3v,�^m�óRÜõ§|Ñ/f£»WÔ ����IEND®B`‚IMAGE 463 ./arch/monster/goblin/orc_chief.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE m�NNNuuu™0�™e�™e0Î0�ÿ��Ι�ÿÎ�™™™®®®ÖÖÖÿ�ÿ¾.È���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��>IDATxÚ…rà u¶1„˜ôÿ¿íJ*±“¶“›ÁH§E`Ù×]�ùB¾ý (ê¾ýTÉ䫾˜P¯|ÒN@½ã$pS½dÚ».�â<-È~ra€.@Z‹ZS‡%+…ÔÑ @jßðUÔw¬ž� 7–˨u8°c�@XÞÅ Âuîb½�=žq¿ÇúP‘´, íìîü�ˆÆ�û¾/|’tŸ£–yçI�ÓuȬ53Ì€3þ�¥É{£ØÔÊ `­dý$J³€ºY–3ÒÎzï‰Q'PD%‘Êâ1Ëj¡å¯HÀŽÂoû4­„Œ°{|˜ö(ÍŽš öƒ2 ¦^ê™´ã°¸ÂØÆ¶­Ä)[×5 sO'°mã:Imœ—l‚C E”2iåŒøKJ%ðAߞݣê&^.����IEND®B`‚IMAGE 218 ./arch/monster/goblin/orc_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿ R-ÿ�����Ì“ZL���tRNS�@æØf���yIDATxÚÕŽA �! kÒÿ¿yKêAˆÝ»ƒe4‚ÃÁCÀí¹ ZÀˆÌQ³ïV ‹í=4剭k…RDûæSP[Ü‚•Í©5*ô„¼Ús€c†‚ÙÄü Äðx&nØ@Þò ûcú>M„/ð é����IEND®B`‚IMAGE 391 ./arch/monster/goblin/orc_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ e0�LLLÿ€€uuu™e�™e0Ι�Ι0÷øˆÿÎeŽŽŽ­­­ÂLL¼÷´¬���tRNS�@æØf��IDATxÚ­ÒÛŽƒ0 PçºíÿÿÛŽi‘¡}X·jA9¶G-Û¿€§Sž‡ÀC{kõa*Zmü\õ~ßk>âÅ~ž/€ |@[ «EX.IP¼Lõ.ÜÙ(b¿ÓMxl!�Õt_âcO½—C¨Û™¿Y±D¡¦‘ƒQ¯ŠY/{ˆû QoÂ`„€a£¸ƒâÝ÷á0§ßC„èÝ�(˜6¨Nˆý´:ÿÞnÌIÀ|€mv$•õáÊr¾Ì›¯ETvªÖ<LuD'"¨Ë ÌîÇE­ÍçÂÉ'mâ3È"~ZÉ€ª¾×"Ó#…œ³àœ€¸Åu½ÝþVoN )úôE����IEND®B`‚IMAGE 391 ./arch/monster/goblin/orc_leader.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ e0�LLLÿ€€uuu™e�™e0Ι�Ι0÷øˆÿÎeŽŽŽ­­­ÂLL¼÷´¬���tRNS�@æØf��IDATxÚ­ÒË’… P[ ÷šôÿÿí$c¹@WCéûØPèöïÀ[y ¼¼®*Ë’ó* YŠĵåø_…d¾$ÐX.â�ô¼Ýî‚$Zˆo�‰¼Þëa†Ã ¹‚!Ç”{£‡ÈÄ,œN[¥{÷Â<b¯¢Š¹¡»¾Ÿ@¹ Òû~¤€â:÷ƒp‡c»o"Åd� ?VH`Þ³!êPyž7=öà$�¶Ø°NÇ4-ƒ ÕŠp6D¥9õ/Nm4£*פ(²&À²!›y5q‘U^T Ÿ •ÂË–ö�0+×ÿYÍpË[kWrŠÌÇ7ÏÞDz# òË«����IEND®B`‚IMAGE 414 ./arch/construct/Palace/palace.x11 ‰PNG  ��� IHDR���€���`���⤊{���PLTEÿÿÿ���ÿÿÿ¿¿¿UŠü���tRNS�@æØf��=IDATxÚíÖÁ„ P ýÿoÞÝ`t«–F² éi^Š!.‘H$yòK#€½B € ð�JP@o� T�ž±¾6id¯¨€ßã�¤�Ð!àÚ8/`(àÐDHÀþ0€Ý� ª_� P�H{xö燀º� @ÚÑ�é¤ ~$€ Ø.�  pì7�¶~þ_À·_�niø~‚@ý#Ìä“&@bǘëkì; X†ã¡úa¿iGô~V½ß v4À·ß v4àª?+ƒzØLh€k¶ ¸î'eÐúgèýö·8O ð쟙¯ó v€_Ðè  ÏÀ0�:%�³�úæÐ{à Üú'��,�´%‰D"‘È> I²£H˜Å����IEND®B`‚IMAGE 225 ./arch/player/class/Religious/paladin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿@@@ÿ�����²""qÚX���tRNS�@æØf���zIDATxÚÕÏA À0DQg¼ÿ‘«AÚB5‹ìú!dáù[¤ª’âé,çâÀ¯U¼CÀ»œYƒi0ƒª_0 +zÕ†E®¤´lý¦ë H!Eo @œ°-XãÍŠœö"7´;ÌÛï ÄÝ‚èð”ŸutÒÉ „ƒ����IEND®B`‚IMAGE 225 ./arch/player/class/Religious/paladin.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿@@@ÿ�����²""qÚX���tRNS�@æØf���zIDATxÚÕÏA À0DQg¼ÿ‘«AÚB5‹ìú!dáù[¤ª’âé,çâÀ¯U¼CÀ»œYƒi0ƒª_0 +zÕ†E®¤´lý¦ë H!Eo @œ°-XãÍŠœö"7´;ÌÛï ÄÝ‚èð”ŸutÒÉ „ƒ����IEND®B`‚IMAGE 218 ./arch/player/class/Religious/paladin.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿@@@ÿ�����²""qÚX���tRNS�@æØf���sIDATxÚÕÏ1 À0 AÙºÛÿ?9È!å@ºl¥bàPü/gF•³>ƒÌŒïÀO ðž+»F€<†3·@wkf;Á]Ø ë™-€%ê‹Øe@‚h+€z €@¯@T>Mè�Q ¦Hl#Ð<Ç;pü¬ ؘýTd����IEND®B`‚IMAGE 218 ./arch/player/class/Religious/paladin.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿@@@ÿ�����²""qÚX���tRNS�@æØf���sIDATxÚÕÏ1 À0 AÙºÛÿ?9È!å@ºl¥bàPü/gF•³>ƒÌŒïÀO ðž+»F€<†3·@wkf;Á]Ø ë™-€%ê‹Øe@‚h+€z €@¯@T>Mè�Q ¦Hl#Ð<Ç;pü¬ ؘýTd����IEND®B`‚IMAGE 242 ./arch/player/class/Religious/paladin.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��€ÿ��²""¿¿¿@@@���&Ò ���tRNS�@æØf���ˆIDATxÚÕÍ1Ä CQ0–þýo¼Q³[$Pl1€gü0ãUYÎ ¶a `@ö$&Å ¬à›G�kYšº  ,‹©yßñŽœz£ÑæœO_x\ b3!ýB¶Pú÷4€`ìÀrVõx@ž‡ôn�Ð @WDm�§0ª«roAò?�~Å«ò"w­Vún����IEND®B`‚IMAGE 242 ./arch/player/class/Religious/paladin.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��€ÿ��²""¿¿¿@@@���&Ò ���tRNS�@æØf���ˆIDATxÚÕÍ1Ä CQ0–þýo¼Q³[$Pl1€gü0ãUYÎ ¶a `@ö$&Å ¬à›G�kYšº  ,‹©yßñŽœz£ÑæœO_x\ b3!ýB¶Pú÷4€`ìÀrVõx@ž‡ôn�Ð @WDm�§0ª«roAò?�~Å«ò"w­Vún����IEND®B`‚IMAGE 236 ./arch/player/class/Religious/paladin.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��€ÿ��²""¿¿¿@@@���¢���tRNS�@æØf���‚IDATxÚÝÑÁƒ0 Pê$öÿÿñ’±²¤8mJ<9•ºýY‚ïƒÔè|4s $ºK>üJòHPÿGœÀ¬/–¢9ªaœæõ ¨Ù°±Æ¾#AíY<HDÐÐóƒõàS±¸PÃZ`0Smeª¢€X4M݆¯ü©¼�•LøßÍ����IEND®B`‚IMAGE 236 ./arch/player/class/Religious/paladin.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��€ÿ��²""¿¿¿@@@���¢���tRNS�@æØf���‚IDATxÚÝÑÁƒ0 Pê$öÿÿñ’±²¤8mJ<9•ºýY‚ïƒÔè|4s $ºK>üJòHPÿGœÀ¬/–¢9ªaœæõ ¨Ù°±Æ¾#AíY<HDÐÐóƒõàS±¸PÃZ`0Smeª¢€X4M݆¯ü©¼�•LøßÍ����IEND®B`‚IMAGE 322 ./arch/ground/new/palm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ¥�1ÿ�{J�œc�œc1œs���A6T���tRNS�@æØf���ØIDATxÚ•QÃ0CKšÔ÷¿ñȃhHK6ÍEÅÆ†\B`KdiÖÚFà}‰ÚÌ>Äàìg¥UykŒÌKL ,¼ðŽ(/¦•?ÕÑD I:0C ¦€ Þ© ‹6'{Õ…Q®•3Þ€Ìûí7Þ¡Xo¶ìîðÈXiñ‘§çaße<fðS0„¾ì¿&Ñ5B`'A—´Â+òå9"")ÂRüìXÃAyïqðéÒI|gÉ8â,XG }øC¿"tàt)#6ZÃ3ÀÖæ*ÜÁ†ò'^}œ¶TÐIi����IEND®B`‚IMAGE 157 ./arch/monster/animal/panther.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��H���ÿ��Jæ3���tRNS�@æØf���BIDATxÚíŽ9� Ãþÿh`³z $†zkb)µ¦yG‹:Òf8E§Þ|O%{À.Ì£¥€p1¥à &‚ñ´�‰â°æ����IEND®B`‚IMAGE 158 ./arch/monster/animal/panther.132 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��H���ÿ��Jæ3���tRNS�@æØf���CIDATWÍÆ± Â0�ÀsážHxð‘üÙj:J®:þÚÚÇ|fÛ¬¶wpµïduãÕ=äÎŒ79Ëo>T~ кD\ ����IEND®B`‚IMAGE 161 ./arch/monster/animal/panther.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��H���ÿ��Jæ3���tRNS�@æØf���FIDATxÚí± � Ãjþ?– ÕKê)RL€† ©YR8dLÔ ŸwÛ èÉ*äÈ î?Šá…za(I‚Há6»ê�ŽÎ,Ë„����IEND®B`‚IMAGE 159 ./arch/monster/animal/panther.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����¤©ñ���tRNS�@æØf���DIDATxÚíŒA � mÿÿè2„l—<têЀ¢ì¨}>7`PÇ ÎI‡¢†©Ap,†Ü“Þš½S>+P!l†æÈû;t^RZ#ú‰����IEND®B`‚IMAGE 157 ./arch/monster/animal/panther.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����¤©ñ���tRNS�@æØf���BIDATxÚíÌ1 � CÑúïhCƒ‚N¾!Pßwƒf_ºÕç‹ðE’ëü•÷óˆ<Ð$`\h8@âs$ñ¡J����IEND®B`‚IMAGE 160 ./arch/monster/animal/panther.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����¤©ñ���tRNS�@æØf���EIDATxÚíA � ôÿ´L +óêÁœ,-ÁµÏÇ ]ê®r¢Í‘Ý„¤?”‹µ" "»Óã (5†%GS�ÃC mìœA˜³����IEND®B`‚IMAGE 223 ./arch/monster/animal/panthergen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V¿¿¿���|Íb”���tRNS�@æØf���„IDATx^Ï1Â0 PÔ­½”HÍîˆä>±h¦.©äJìözzúþË¿]¼çÇî˜ÆÛ±PwÌkÜ­ý@ô9ñ ñ69“)°aI"ÙÚs„ªxU€ìwPW+ÐѰ):tC2ˆ"+,éª!3{"œ% IËŠ¸PÂ¥Ý_ º:Âêo–����IEND®B`‚IMAGE 183 ./arch/monster/elemental/Para/para_air.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿§?ñ ���tRNS�@æØf���_IDATxÚíQ À0 B÷î邼öc~‰&Õç‡Ap–J”ï¸Eó=ÀPÝ(¾Ç<€Dì±ÙÝ íù0fÍ \ÇÙì8¢ÛƒZ(e‡4 Ö­;yö‹ "~/-º�—pÀ����IEND®B`‚IMAGE 184 ./arch/monster/elemental/Para/para_air.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V¿¿¿§?ñ ���tRNS�@æØf���`IDATÁ±@0€á?ò8l`­£Á�Šç´ Ëh]î4:3Ø e*g¾þ²Lh;¨§\13[/Â鑿Vd,»ÃLê0ùÕ“jï‘Ø*8, 7…‚/qŸ¯e©����IEND®B`‚IMAGE 185 ./arch/monster/elemental/Para/para_air.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V¿¿¿§?ñ ���tRNS�@æØf���aIDATÁ± @@€áÿÜ#:·´n#@ñD«°ŒV.ÑèÌ`¥J˜@||Ëx]³b¡%‡\µk0éÞ`zu°.ér‡T‡"l[Ž3;Ÿˆ Àœµ{ò×¢fq$ ¶¦����IEND®B`‚IMAGE 183 ./arch/monster/elemental/Para/para_air.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V¿¿¿§?ñ ���tRNS�@æØf���_IDATÁÁ @0€áÿµ‰T"H à­`1ŠAˆ:YÂÁv¨XHââЃø>øpì5äpÐ#±Vl"É]zœÌ7žàžV‘ePl…bš5`9<é3)t˜Xx(½øBˆ#{å”����IEND®B`‚IMAGE 168 ./arch/monster/elemental/Para/para_earth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ R-At���tRNS�@æØf���MIDATxÚíŒA À0]ÿÿèv¡d<è)—@3‚;«qù)Y˜<Œ&¥Ú‚äg§¾€â|©¿þ@¼bU=:+¤ýZCãkâ"3qË"ëtQ µ����IEND®B`‚IMAGE 191 ./arch/monster/elemental/Para/para_earth.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ R-At���tRNS�@æØf���dIDATx^½Í± €0 À(ñ”È¡ô4Láš H¹r~J›¨øêô_|ú'Ü„¸V›È� ¾jŸhÂp@¶âè0š(ú‚ÌqH|Jyœþ°ê±K|ó×KI²WKúšk‹%wCw»����IEND®B`‚IMAGE 202 ./arch/monster/elemental/Para/para_earth.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ R-At���tRNS�@æØf���oIDATxÚÕ‘Q €0 C“ÞÿÐ"U“ªø¹À])í°“ª²jÕ©xøê ‡¾²G ™Iê¸?g˜/‚dÒøä È.ë�ÀâCWÛ§¼O>²ƒž0"¾£²õ>R…ÀôP"BõZÁZõ.:�»V(rs«����IEND®B`‚IMAGE 198 ./arch/monster/elemental/Para/para_fire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÿÀËÿ��RÒÀ���tRNS�@æØf���kIDATxÚÕA À ;óÿG¬”sè¡tAv0»9~*í�l G÷_-Q: ¾Œk„5€âð²â…æ0,µH1U§Â˾>GäŒ7�¬Àì²ÞØ"îjÚhI|¯I `iðÎ����IEND®B`‚IMAGE 208 ./arch/monster/elemental/Para/para_fire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÿÀËÿ��RÒÀ���tRNS�@æØf���uIDATxÚÕ‘Q Å _rÿC}‘Fû[„Ý]ý}:ö#9Ÿ²¥ƒ /Þ¸æ4¦°ïk Ö±~j ¸F!müYP6›á&JD!BŒûz)‚M!l,Y%H]�‚+Ã×VК¥ùüŸ _‚Bóh‡ðz.ýßr‹Ås����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.122 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.123 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.124 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.125 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.126 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.127 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.128 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.134 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.135 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.136 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.137 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.138 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.142 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.143 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.144 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.145 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.146 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.147 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.148 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.153 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.154 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.155 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.156 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.157 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.158 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.162 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.163 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.164 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.165 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.166 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.167 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.168 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.174 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.175 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.176 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.177 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.178 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 227 ./arch/monster/elemental/Para/para_ice.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���…IDATxÚí‘Q À Cmzÿ;¯f†"ÿ ¥ ¯Ú_'¡tõ3"qó)AŸµÖ3g]˜ÇÝg-R²F Ý‰†4@=f ž7�¸¡±0²6µ¨�`¾HT…«…ý)ð�4GbÞüiÐÀËqs ‘À#z „ž F/î©ÿÍ.éü=Ô„’_µVs����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.182 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.183 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.184 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.185 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.186 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 223 ./arch/monster/elemental/Para/para_ice.187 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿÿÿ{o¢ª���tRNS�@æØf���IDATxÚÕÐA ! DQýûßy få÷]д—]_J’÷XóZr�O`zqÿ…¸A€>x6bʡɔ°š”x‚jפ>Ð ØARóCtnë]¡I”뼯P æCE©T k86 Feû¹Djõ l0¾-ÈüN†JÖÇòðia����IEND®B`‚IMAGE 234 ./arch/monster/elemental/Para/para_ice.188 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ�ÿÿÿÿÿÿÛ¤Š���tRNS�@æØf���‰IDATxÚí’Ñ Ä0¯;óÿß|( ´œí{áLˆ]ùü5 `Ìï=‰Ü¨Qع-:Z‘r’©ÅãèH49uŒq)\‡¿\ôâQVÿ¡áçPM‡ÇF—û(,õøO@âжÅÜY¤Ü17]ú ¸�' +‘°€‡­ý©^¦/ "&ê ¬����IEND®B`‚IMAGE 212 ./arch/monster/elemental/Para/para_lava.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÿÀËÿ��RÒÀ���tRNS�@æØf���yIDATxÚí‘A€ ÝþÿÑ2…ÔŽd8{0 ²%L{ýrŠ¡³Ïˆ&Á<\=cå‘Ôá~LŽ gˆ·-`Ft�L X¾� é±J«fkp=okºª@„„¶odоð~ý„¸VÕPöAJq³‘òmŒìÏè0†sm©—����IEND®B`‚IMAGE 207 ./arch/monster/elemental/Para/para_lava.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÿÀËÿ��RÒÀ���tRNS�@æØf���tIDATxÚåA À0«ÿtK† %†\ õ²‡ìâõ'Ù>ä¸ ˆ�S9Z# NŒ7 G€[?Ésˆ $Œ²d÷ �Fè·2Ž€ÜEØ(=5€+çö–èëÉhÕ=÷®lš ÀX ¦-(cßtÂÏè`¾uùH����IEND®B`‚IMAGE 212 ./arch/monster/elemental/Para/para_lava.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÿÀËÿ��RÒÀ���tRNS�@æØf���yIDATx^Ì1ƒ0 @Q”‘“ÄདêS Þ¡HÍÄÒ(þ§¬b‡OOò·§[3_X÷åB=Ê™šÃu€gðüyÖŽl-:vs•Ø¥*¥9°0$À»FC¯JÞšÏG‡ñRO@…žlè·ceû˜ô–JaDL·æ33K™žÓö����IEND®B`‚IMAGE 200 ./arch/monster/elemental/Para/para_light.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4Vÿ×�!_3R���tRNS�@æØf���pIDATxÚc`Àؘ€s`<âW�±@0�<@‚Y,A×1ž÷{XÜ$0°¹p``rÿq€É··Íðù–d¥†c m@â<È8ÎQ@†þ�ÙÑ$øÙ°º�’ ä_¤!¨����IEND®B`‚IMAGE 198 ./arch/monster/elemental/Para/para_light.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4Vÿ×�!_3R���tRNS�@æØf���nIDAT[mÁ± ‚@��ÀC|ñÑ–JcmBá&Ohƒ,\E' r[ [àŽ5]B?á4bÛ€X#¶åm‡ë¢8ÿZe5lvs’7s'{¾:ùçž”—÷Aˆ¡îá‹ìªFp‘kþAÃrm����IEND®B`‚IMAGE 198 ./arch/monster/elemental/Para/para_light.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4Vÿ×�!_3R���tRNS�@æØf���nIDAT[mÁ± ‚@��ÀC|ñÑ–JcmBá&Ohƒ,\E' r[ [àŽ5iÁqDPÕÈð%Ô=!”—÷Aþ¹'ÙóÕÉ›¹³ÙÍIYÍÅù׊ÃuQ”·‰Ø"ÖØìá4¢ŸÐ%kþuÚr¬Œ<¿����IEND®B`‚IMAGE 131 ./arch/monster/elemental/Para/para_mud.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���+IDATxÚc` `�$ä?€ˆ@âÿæÿÿ0°ÿÿÿ�B0ÞÁª�ü¤Ê©²����IEND®B`‚IMAGE 131 ./arch/monster/elemental/Para/para_mud.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���+IDATxÚc` `�$ä?€ˆ@âÿæÿÿ0°ÿÿÿ�B0ÞÁª�ü¤Ê©²����IEND®B`‚IMAGE 149 ./arch/monster/elemental/Para/para_mud.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���=IDATxÚc` 0þ aÿDü€`„üq�Îz�“¨©ûÿŸùÿÿ ìÿÿ?€ †w°Ú�=þ¥cGÉ%����IEND®B`‚IMAGE 170 ./arch/monster/elemental/Para/para_mud.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ R-At���tRNS�@æØf���OIDATxÚí’A � ìÿ´RéA…àEð`Ø@HV>¨˜ñØ]¯‰EHîxDÁOÀÖ”ž'p > 7äè€ÞBNÁý �RÜ“ À'����IEND®B`‚IMAGE 178 ./arch/monster/elemental/Para/para_mud.115 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ R-At���tRNS�@æØf���WIDATxÚc` !`ZÁ µ�H¯`ZÕ° ÄX¨Œ•™Y‘(¬¨kÔœ© `Œ (&ÅUÌ ÑÐϵ2 b…ÖÊUK³V@”¬‚èãbZ´€8/��VØ,ø* ¹A����IEND®B`‚IMAGE 153 ./arch/monster/elemental/Para/para_water.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��€›°Ã���tRNS�@æØf���>IDATxÚc`¼€iÕ cÕªU] ÆÊ´Uœ Æ2 Ð ­µ Áµjåª,(–À�a€e@@T7��ž.ˆîýn����IEND®B`‚IMAGE 189 ./arch/monster/elemental/Para/para_water.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��€›°Ã���tRNS�@æØf���bIDATxÚíQ À CMïèQXpK…ý öÐ~˜Ò4ŽŸDœôè›Ð×°èuÉt åõ¨¡ã>†s@œ’ùŽtV™(¼QéÙÍyí¦Êüâ9 V¹oYÓår£ñ[\މˆÖð]o����IEND®B`‚IMAGE 203 ./arch/monster/elemental/Para/para_water.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��€›°Ã���tRNS�@æØf���pIDATxÚÕQAÀ ýÿ£Û5dâY¦¬‚ψÏ6 MXÞk¢xà[â4É,wb‡pÇ[†¢ºäQóÿ‚®)X÷JÆì!khA¹€$†ÎB>¾‘^GÔ¨}5§@>ƒÓù“6ÎûðrY(Ì™À����IEND®B`‚IMAGE 370 ./arch/monster/acid/pet_necro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÿÿeeeUUUDDDººº���™™™ u��ªªªÎ00™0�öß>���tRNS�@æØf���öIDATxÚ…ÑŽÃ DQÚ¤ÿû_w;R…ìHAH~†X¤ž’îSþÅŸ¥ ¬À¶=K(ï÷åù¾ûæ¨+²ïí/¨"—g¨.Á¥˜Ç\‰ Æàu' pVuŒìVk墨O7`1 #�3;„TEý™Ãx൪„kµ wºç,CÕÑŽ¢Wàãò¨àáH€»Ž ¡Ðëàüþ@ŸíêcD"¨œ2Þ‡ˆ†´.�tМB …@;L Í!Z»5 q>�4µA:ÝÊŒ±Õ‹^Û'Ñ”¡Ãq”NNqåiû˜á§ç®tÒ)ÒÃ0'����IEND®B`‚IMAGE 378 ./arch/monster/acid/pet_necro.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÿÿeeeUUUDDDººº���™™™ u��ªªªÎ00™0�öß>���tRNS�@æØf���þIDATxÚÍ v„ C;££¼Oö¿Ý&¾Rº€æ à¹×�_ÿ&”ãxæ‘Ê“ÒüÝZ˜òWضwKh©žµ¤5ß}óV_ê@¸+ûÞŠ×Y?HÃÒ1ñ„KX:~  'ݘTíÀ93»O)B$õ6³_ãw0!D_ë‚ ûIÄ^²â%�׎+N £ #œÆU  H…‚€§ã2*ˆ�=Å¡Ñ/@C`êlâ BЏ¬ÄœI�žñTˆ¡%ê‚SPXî<ª4,) a4f^X·VÈÖ=¸×FR°ˆð2& STW…WºåxƘ–¯¢}‡1sÏ7Z˜J‡™P����IEND®B`‚IMAGE 143 ./arch/weapon/other/pipe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿���…#Å7���tRNS�@æØf���1IDATxÚåÉ¡�0À0 ÿÿ¼qAAlâ4ìù*ŸòÌû”ï¶ÍgðMþ#N{x¾�·ðÛ28����IEND®B`‚IMAGE 215 ./arch/monster/humanoid/Human/pir_lass.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿ��ðæŒÿÀË���É›•N���tRNS�@æØf���sIDATxÚÕAÀ QØÿ¹¸Ôô@ÑÄ›+&âL0Êé}Ã[ëkÞ½–‚ê¹~o?¬ ÔÌà{vÙt8‰³õ¥!(›ôŠ8ç1sá%<”ó!1xUŸœ!=`\µ1q%³zDн°zãu„¼t ÷åzA“©5V����IEND®B`‚IMAGE 209 ./arch/monster/humanoid/Human/pir_lass.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ðæŒÿ��ÿÀË���]éå���tRNS�@æØf���mIDATxÚÕ‘1À Ä áþÿå^à R'Ì‚d“ ”q?øZ}ëƒ( ˜Õ_M*(m‘aíHƒœ@I@ Ë#0ú™þ $®“#©8 †×Eú]q@—çhZ]} äW0«uSîã°ã--ú����IEND®B`‚IMAGE 492 ./arch/monster/humanoid/Class/pirate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTE&N&&<]<2R2¶¶¶’~RU…UFnFN{N@d@â&9&JsJÒ²r*B*uR=aB1bF2.ºžf†††¾¡i¢jCjCɪnVŠV"E"¢¢¢<nN:>*Ʀn&J&€XBhH62"²–b>*>2"ŠŠŠ¶šb‚nF›ƒV2 "¬¬¬.&"2"š‚RbR6ήrÊ™õÉ���tRNS�@æØf���õIDATx^½ÑÇnÅ �Q÷Þ_ï-½—ÿÿ´X–åGX&,™#@\ñ 0&••ÐUŸ•10 E¾wnçwq¿;MâIÛ b{3©¦¹è_°žI×€+Ë2°§ßÌS—e¼ð-›;Ð@ó鲾Ķœ…Ö Æ€Æi¬í7?üY†V£h²ò¼Äó¤o½¼ƒ£ûdï-NRZûÕ«s;ˆ^ó´lœIçˆk@±‰y‰�ê4}”D‡èH·ã ÿxŒ˜Ç­‚¡›A—Œ€¾AÙuàX´Ý È». ½ÜÐQYU1º€â_×*v €…„Ï����IEND®B`‚IMAGE 499 ./arch/monster/humanoid/Class/pirate.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTE^B2Ö¶v9[9=(DlDT‡T4Q4&~VB,@6$â&&K&bF2vQ<MyM3"–~RÂÂÂ*R*&B&"ƒ\CB.?c?:.J.R6*†††R~RŠtJJJJJ2;2&Á¢jjJ6ŽŽŽ &$ªŽ^zzzš‚V®’bZŽZT<,ªªªB."_*$Ý���tRNS�@æØf���üIDATx^­“ÅrÄ0õFdæe¦0ÓÿZ\‰3ë*[Îeû8ÝTÿyPÓãK4[ðCg%V,W^?a7(Ñ”Úû‚5þüj÷;KS¢G Ñ9¸e¨AòB öOM�" ¤µ6VÓ _¼-9ÞRW:›nìü€–gçvd™Þ$Ø·Á\­×F[ðýg€µ‘ cFRK|‚ýèÓìhÌ«7³šV·=ª*c¯é8¦‡žÀ÷£ÄO ‡D]/€hÝ'î7oý€qùá“%pW gp3®½;@úÕŒ]ÁOÁ²( } ¡” €çåƒ�;qI¾Îq ·³T ����IEND®B`‚IMAGE 180 ./arch/monster/misc/pixie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ×�ÿ¥�Òib@˜���tRNS�@æØf���SIDATxÚí‘A €@ c2ÿ³èöÚ”=zBJõM¢<�)„á8S¸„N±ƒAÈ=\´FV„ÒÔLE¨=µ"ÖÚõD¨Ø$Ô1ïßý³à”$dÌ£¶����IEND®B`‚IMAGE 180 ./arch/monster/misc/pixie.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ×�ÿ¥�Òib@˜���tRNS�@æØf���SIDATxÚíÏ1 �1DQ×™ûŸyÕ,Ød¶¤ä‹ÝCÐŽŒ±X$@ƒg�Ÿôx�!’Ð}.øå ¤R‚U½¡OH‚_PD€˜n 0ÖEƒÛ†^"v;ÊØÁÿ����IEND®B`‚IMAGE 202 ./arch/monster/misc/pixie_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vîv�ÿ×�jê •���tRNS�@æØf���oIDATxÚÝÒA À DQîèB ý0ê®J]ˆ“<R*Ž?-èý>[°_…À‚ýRð v`Ðfz'P40­Dö� (ÁBä�ñ L±yöcB â&_FãðÆà#Åøu>="Í¢j����IEND®B`‚IMAGE 311 ./arch/player/race/pl_half_orc.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿÿÿÿ3�����Ìf�Ì™f"""�w�™f3�D��™�ªªªDDDwwwUUU~³˜g���tRNS�@æØf���µIDATxÚÕ‘Aà #y·ôÿ¿í®PÔ¹ôÒUŽfdLrüaŒ¹ãö¸ÊN�s-À¦`¸ÀµîoNR!ŽŠDp xEÒ€FôÉÝ¡±Eï‘â 0�\oˈ8Ð#Ø„|\º¢)$FQL'®×@#ÖèÎV¥2Á1Œuú«„éPÈc[Á4Ÿim¹ñr±æ© B°ì9†}Å5eŒ2M©QNáÍb}ë_æó¾‹l2‚����IEND®B`‚IMAGE 311 ./arch/player/race/pl_half_orc.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿÿÿÿ3�����Ìf�Ì™f"""�w�™f3�D��™�ªªªDDDwwwUUU~³˜g���tRNS�@æØf���µIDATxÚÕŽAÃ0-ŠXl«îÿÛÝäPɱÓSEk'@ùCŒÜåûbøWAì˜bNÁæÀL8a]A"S1½ðUÈ–¤Q\òq­ƒmõµÐ[k©¾bÎk à\½&Š ø{ï b! ZÂÎW;PÌ$ÌyA„&ßÞeÀz”5¦PŠÝ]ì'fºt3 Fµ£ÄóFPe¹ò lŒõÃŽº^ngãÁ¼ü‚7<bÖ¹|Ø����IEND®B`‚IMAGE 307 ./arch/player/race/pl_half_orc.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿÿÿÿ���3��Ì™f"""f3�™f3�w��D��™��ˆ�DDDwwwUUUªªª‡9ƒ���tRNS�@æØf���®IDATxÚÍб1 ÐS‚]t½þÿ×â2§Ç^<ø)•züe""ïöG:w"<ƒ»5“MÐdïa�p·³1öž½ -Úg'+@ ÑŽduåI¬B �-àFõ1»ä¹Þá½�Ù»¦À×ËO|{A‰3£ Š™´”pà½L ÉåpnÀ9Ò•§»c~.\c&KpÍ%x¹+àeŒAwDl>jåøAÞ†û³´KFö����IEND®B`‚IMAGE 314 ./arch/player/race/pl_half_orc.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿÿÿÿ���3��Ì™f"""f3�™f3�w��D��™��ˆ�DDDwwwUUUªªª‡9ƒ���tRNS�@æØf���µIDATxÚÍÑÁ Ã0 Ð"ÏŠ]hšÿÿÚ)´·:½nºÄ ‡CÈö—`oýÇ”7ÕÎUkÆK`™pçªg#ÖöTÙн�´¼qÏ\‚˜ýú àQ &è>Aè(�UĬ_Ŷ‘%¸n·´M‚%HH¤D(j`FÂ=l�nuàšJ€ nêG!pt»w Ðy³ãœã<5>ÏÞ;¯@õ™3Û/òÇíf¯Gv–����IEND®B`‚IMAGE 318 ./arch/player/race/pl_half_orc.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿÿÿÿ3�����Ìf�Ì™f"""�w�™f3�D��™�ªªªDDDwwwUUU~³˜g���tRNS�@æØf���¼IDATxÚÕÒ±ƒ0 Ðèj|¶“ÂÿÿmMP' ,]z ‘uO!´? 2O=^O@îÀ¢º\š€µ4Ã\«Þ³Ià £³�š àŽ0ª³Ø EÌ^SÀiÑK@Ïa™ uŸNGdcônl;añJ MpJŽ!‚œŠk 9ï\})¬ç1Ðá^[­ĺ˜‰\�¨ �õZ¼u6ð+�Ïâ`¬+¾°ìdž¬ëÀÝl£þQ>)Ÿ§¤q����IEND®B`‚IMAGE 321 ./arch/player/race/pl_half_orc.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿÿÿÿ3�����Ìf�Ì™f"""�w�™f3�D��™�ªªªDDDwwwUUU~³˜g���tRNS�@æØf���¿IDATxÚÕ’Áƒ0 C'¯ÄMšÁÿÿí 8à´ÃŒDªøÕ ¯?¤'ï' Ý“Ùt 0= ¬}ô“¨Z!t €:ÍYøÚpG0¾º#°ûŠ(£ÓÏ�ÝÝÈèR.ñ4_Œ1¢­�ôŽ�Ôg¨ƒÖ2ít‚´}ÉÌ-žÅ=( ÍÐAâꮥaí¯#´-ä*ÀÍ f¸;÷¹T½J8 Ìs¢òsžw�K& ? þùæOôú¨K—ÆË����IEND®B`‚IMAGE 304 ./arch/player/race/pl_half_orc.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿÿÿÿ���3��"""Ì™f™f3f3��w��D��ˆ��™�DDDwwwªªªUUUˆcžD���tRNS�@æØf���«IDATxÚÍÒ±! ÐSR;PõàþÿkkÔºUõÂà§ Ž‹¹û¶_yl�(à[Œ³PÀ{·ÝGÃN4oŒÞŸPƒF¢�à > È �dt ä/Àœ¦ r�6]™�EÛЯ×ÂŶú7àfB¯�#Ü U@ ‚°ó^qžj`"9˜ã²f=æ¼.èÄéWV¿àögŽ1.ìÀÊñ˼šw½ÜB˜����IEND®B`‚IMAGE 299 ./arch/player/race/pl_half_orc.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿÿÿÿ���3��"""Ì™f™f3f3��w��D��ˆ��™�DDDwwwªªªUUUˆcžD���tRNS�@æØf���¦IDATxÚÍÒÁ Ã0 ÐbMvRhœÿÿÚ9v™ã㘥 ‡hB¯‹�(û•W¨PSk”h�t” `c%šÚqƒ½ßlªùI ±À|îfàô…ìŒÇጸ@qáâ´tzç^K�Ñ�ˆä½š…¡©Jv³È£»�s!ãyd¿™">¦|èwO÷9¹ïÔG²€Èî-Í1ÆdV®æ tâ´³V<Œ����IEND®B`‚IMAGE 401 ./arch/armour/mail/plate_mail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿîîîÞÞÞ™™™UUUDDDeeeºººÎÎÎuuu‰‰‰ªªª � �¬ÆK_���tRNS�D"H±��IDATxÚ•‘’„ ƒWà(Ôäý_÷Rtqý™Ù»0£múM|ýIä“ýN°ÿ pgh†Kî§„!ÞÛ™°‰ŒfvsÈk«ÄPMs`™./%?š§$Ú™ß�*lZôsCÝ ÂàAD@!©—ËÈÈèÜ€ºìË#¨uD° US(#zD°�á΋Q…RººwEÔRîéÇAÚ·€tÿÅ@‡o§€ ¸)æ0’®ª<¥gKÍÖì½>'=®•Ѱ¢> ¹¦ÆÐüioˆêN°-\‰”;ô^Ú  0Â0v&¸Zä¾ 4j+^€Ä4Õ7€\äìW š'€dK'#5yGk¦þzj³Ãú ¯Þwý…´’ŠöR����IEND®B`‚IMAGE 257 ./arch/jewel/plt_coin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEeÎÎe™™îîîÞÞÞ™ÿÿÿÿÿ0ee µ ÛÏ���tRNSÿÿDÿÿ�yÌm$���’IDATxÚ½“[ Ã0 eW±îãUîPÄÒJ÷'Ž&?ìø’_‘Ñ@ ;3B1lNwˆ,sØX! +sÅmØm•¶Â�) 7 ‘†“Øõ·á6‹úe(þ ðñ|ÀcX™2ÀwC¾à…á¨÷ %™©|þ&3 ä©fÀŠM/¢´U�mÐKþáò>Ó^úQs›����IEND®B`‚IMAGE 183 ./arch/monster/humanoid/Human/postman/postman.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÚ¥ ÿÿ�ðæŒÿÿÿ���„Í?H���tRNS�@æØf���SIDATx^µÏ± À0Ñß0JFðô8âö_%5¿ˆ+S>@èê¿�bÀû(Ö, ¢¤°C  Éœ /ÛÊwpº™MŠò_ $ktm>c"„KK#Â����IEND®B`‚IMAGE 187 ./arch/monster/humanoid/Human/postman/postman.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ðæŒÿÿ�ÿÿÿ���, Ö¯���tRNS�@æØf���WIDATxÚÕ1À0“ÂýÿËUZK™p¦xaða̸R@ Ðx(üÀDÈ(/ü«¸Ÿ’4„|÷èN0)˜'@¾íàæò9\È^°X€lÊmzÞõkfrz”����IEND®B`‚IMAGE 185 ./arch/monster/humanoid/Human/postman/postman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿÿ�ðæŒÿÿÿ���„Í?H���tRNS�@æØf���UIDATxÚÕ9� ½øÿ—•¡©D' ;äÿ @€jl°®�ÓIFÝRNáŸ÷܈"h»„p$`"ÒyíÐØ"Ïäï$Ð ,1þÔ^xUŽÊ‹����IEND®B`‚IMAGE 185 ./arch/monster/humanoid/Human/postman/postman.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ðæŒÿÿ�ÿÿÿ���, Ö¯���tRNS�@æØf���UIDATxÚÕÐ1 À0 CQ¥õ¿ÿ•‹©ÇØ2EdÓC˜è¾�§À žê1€·*°dþ¡¦úK)Q}·`~2bþ†`vÁ ‚|' ÙšÄ,tg>â+k~ß•Ë����IEND®B`‚IMAGE 174 ./arch/monster/humanoid/Human/postman/postman_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��²""���V/€���tRNS�@æØf���PIDATxÚc` 0ÿÿaØm =�fX­ý_�f¼‚3V×ß2BcÐYs ŒT#C$ M×ãÃïÐ?ÿ(ƒÂ0àgฌŸ|ß� ¹)J£WŒ����IEND®B`‚IMAGE 283 ./arch/spell/Potion/potion_aether.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿîîîΙeÞÞÞººº™e0ÿΙe0�DDDÎÎÎeeeªªª™™™‰‰‰uuu 0qy���tRNS�D"H±���˜IDATxÚ¥ÑKà CÑÐ6Þ³ñþwÛ@+e'ªz§>$¦“t½/Ër!$<æ’¥Îëšð`Ï$5ý*›*¥"¼K­É¶9¡ì{ï(˜IÈ&ö2³5ZD´ Ø—1Óƒà˜y{Âàý¼}${°`¬€ì%<À·Ì4¿¥ü¤Þ©8òä1ypdfÓ…½Úe‘±…����IEND®B`‚IMAGE 298 ./arch/spell/Potion/potion_fire2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿîîîΙeºººÞÞÞÿÎΙe0ÿΙe0�ªªªÎÎΉ‰‰eeeDDDÿ™™™™™ÿ��ª��Î��™�� õE®L���tRNS�D"H±���˜IDATxÚå’Á Em¡¥BÞÿ«i.Žˆîuw˜Ãí/àû#z_S¦AØ×”¶:¤x>ª39göFl_ƒzœð‚½^…ã5˜@¡ôNÌÀH÷–¥±`0S/¥t¥5ILÀ¤Nä™à¢Q@ª9ÊŽÔ) öjU ¾ƒZÕ“…7NòS¡ØÀb´Ë #$030Ñ����IEND®B`‚IMAGE 289 ./arch/spell/Potion/potion_freeze.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿîîîuuuΙe™e0ÿΙe0�eeeÞÞÞDDD‰‰‰ÎÎκººªªª™™™ ûÉæ���tRNS�D"H±���žIDATxÚ•“I Ã0­Ä¶–Yúÿ¿µF·€[C |ª‚–>þÀÞ_×…†ÏÛ9ïÛœ³hê�ߣöA}@Ľö¨/¥y­½ãÝk+­©y'LÃJSOEÞƒa‰ƒ: &¾ ÓØÒf4XØ6°$È&,Ø6à×\V•HxòÔ¡ÂNpBüø%/ò$ß9Þ!šñ�_5S¿ÖÕ����IEND®B`‚IMAGE 311 ./arch/spell/Potion/potion_heal2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTEÿÿÿîîî Î0ee�0™�e™™™ÿ™ÎeeeÿÎÎÿ0™DDD‰‰‰ÎÎÎe0�™e0ÿΙªªªÞÞÞuuuΙeºººô§���tRNS�D"H±���¢IDATx^ÕIà ¡gaõ–åÿ_M-ù2CΩk¨!ü!�æ~ßwL4ôµ­ 7A\¶u=Ô¾Åã­“è=·>qü 4·'|E¿àùcÑœ[ƒíS‰¥$bv PžD„`y&J‰µ2¬€/+ÌvpCbã œZÌàÔ2 {奉l ƒ:|u~Š®gTÀ,�ÔNÌâÆ¿d#ð“àbyŸ¡:gáÕa����IEND®B`‚IMAGE 304 ./arch/spell/Potion/potion_ishock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÿÿÿîîî ÿÿ™ÿÿ�™™0ÎÎ�™™™‰‰‰ÿΙe0�ªªªÎÎΙe0ºººuuuΙeeeeDDDÞÞÞ$Ì���tRNS�D"H±���¡IDATxÚµÐIƒ0DѸzð�d¼ÿ]S¤lÜΤ”¼ûOùðá�Œ{­ƒŒ|^ZB極)Ç€âvŒo (år-ì߃éwß�§˜3`p$%Qu3ô»®À]"W߆^·­©Ò:@Íx„U­ ÜÌÙXû߀q$ ¥`•~'pÓý?ƒ‡ØkÔ ô1‘ð­!ë�Äâ¹ î%à‚ìˆt����IEND®B`‚IMAGE 300 ./arch/spell/Potion/potion_mimm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTEÿÿÿîîî�Þ� �Î��ª�0ÿ0‰‰‰e0�™e0™Î0ÎÎÎÿΙ�™�ªªª™™™eeeDDDΙeÞÞÞºººuuu]šoñ���tRNS�D"H±���—IDATx^½ÎÛ ! „aIâž·Ç÷Õj…zc„Rè;Ñðe$Çû¶mAž·y:éÆuž¦ãôA÷ÇàB`J—kbøÿÏXS쫪ìê "Fd°K_P 𓾠*ðžìî5�Ë¢t™eÕ¢Ÿ :÷ÉÚ>Þ#% $f ÕXꊖO~Á-gvz:ø†þ9™����IEND®B`‚IMAGE 307 ./arch/spell/Potion/potion_resist.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÿÿÿîîîÿ™ÿÎeÎ Î�Ι�™™™™ÿΙe0�DDD‰‰‰™e0ÎÎÎeeeºººÎ™eªªªÞÞÞÿÎÎ÷œò���tRNS�D"H±���¤IDATx^¥ÑINÄ@DQ;†,ÏÍpÿ»Òe#V–€¿Í'Å"‡_&éþ>MÓÚÛ67E¢qßæù½eð¦<¢u=–UÃ?ÀÞÚ±d qíJB?AzIBèÞk 2i“D)�Û�ª¨B9w`€ê¡€Oà¢ã.‚8ᓘ7®‚ó«Üc�×™d�îð;�á[•z/ÅO‘üQd2„Â9ôZ´lÒÞÖ����IEND®B`‚IMAGE 295 ./arch/spell/Potion/potion_shock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÿÿÿîîî ÿÿ™ÿÿ�ÎÎ�™™™™™0ÿÿΉ‰‰ÿΙÎÎÎe0�DDD™e0eeeΙeªªªºººÞÞÞótc°���tRNS�D"H±���˜IDATx^¥ÑÉà CQð s‡ÿÿ×­²ŠAUîÖG€Dø3�ý}žçŽ�ü±¯J—}]ŸÎAïWç„€i:¶ áXÜĘýàsµ”ˆ€”Ýj×�ɤìª* ”D$%ÎŒk³qÐR¬žÐ6¾Â†´šRÐVU¬&Êþò[o¨]‹3Nî‹0�-2“>œr<‚o°����IEND®B`‚IMAGE 290 ./arch/spell/Potion/potion_util.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÿÿÿîîî 0e0e™e™Î™�D�™™™‰‰‰ÎÎÎe0�ÿΙªªªeeeDDD™e0uuuÞÞÞΙeººº‚Hws���tRNS�D"H±���“IDATx^½ÐIà CQ[ên<;Ãýï2T±AUò·zEÃßïëº&(·s)ã|.ËV4¨âzON0Mû1e—ؾ‚² 0Ï%ðqt##úöJ€æu7Öz�AÚ;÷@kîΈ>h‘)ЗøÔö HA¶]¼ÃÌä_·]€Ï7i�†š­ß‰Aƒ–ØEð¥*IHj����IEND®B`‚IMAGE 310 ./arch/potion/potioncha.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿîîî Ι0™e�ÿÎ�ÿÿe™™™ÿÿ™eeeDDD‰‰‰ÿΙÎÎΙe0ªªªe0�ÞÞÞuuuΙeºººH»rZ���tRNS�D"H±���¤IDATx^½I1 “ö–Ù‡åÿo%ž’êZ¥–åò%�Æ~]W 4챟– nûy–½¸= Ë2Í‹ûŸƒã}Ü‘ûm³Q©µÙ4Í3ßjk*ÌIQ÷!ò,¢—'"F°K·(Pv.­âƵ…kaÒ®E’+™Üjì ÈQéhö© Uâ @8a‚7²‘qP‚ OJJäs^ı'gOÈ����IEND®B`‚IMAGE 278 ./arch/potion/potioncol.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÿÿÿîîîΙeuuuÞÞÞºººÎÎΙe0ÿΙe0�ªªª™ÎÿDDD‰‰‰eee™™™ÎÿÿeÎÿe™ÿ †Lnû���tRNS�D"H±���‡IDATxÚíŽI! ³ ^úÿ ŒâÆ‘rN]|¨’Õ—?? ö)%tÛ2ËàúÚrÞiôâñ¤`jmGFì_jÇ= „zL`jëE¤hGà{Õ2¼tàzÑ3ÇDOœ0)§¦Nœ™˜˜wF…F“y;?“0æÂ����IEND®B`‚IMAGE 332 ./arch/potion/potioncon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEÿÿÿîîî e™ÿeÎÿDDD™™™�ÎÿÎÿÿ�eÎ�eÿ0™Îeee‰‰‰ÎÎΙe0ÿΙ��Îe0�ÞÞÞΙeªªªºººuuuS- $���tRNS�D"H±���±IDATx^IÃ0ñ€vïÙþÿÓ`9—T!¹’¾v3Ð�èûu]ÑÑð÷e÷í ó²ïß´¸=; „iÝú;À<{?ºZ> Cðãèl_ÂBI97 ¤rø”™–ßR*êY½dXÁ–Q«XAÞ”\6…OÍ͠ ^_-Ôˆû/¸ôøcYdOœÖö>ˆ¢D¤cì àÄ*¾!ƒË€Œ PÃwx¦Fe%öÙÊ����IEND®B`‚IMAGE 317 ./arch/potion/potiondex.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTEÿÿÿîîîÿÎ0ÿ™0ÿe� Îe�™™™ÎÎÎeeeDDDÿÎeÿΙ™e0ÿÿ™e0�‰‰‰ºººÎ™euuuÞÞÞªªª/{UC���tRNS�D"H±���¨IDATx^•“Ù Ä “9½rìõÿ¿ºjžÒÊÖk´ ¸ü‰ªŽ})EZý¹®0Ñ5lÇñqÔâýpÅ#zž1ÐÏ Á=¦—"_Ö5xŒ)é½ÏûºïY,B%7ß`H®ž™‰î“ ™ÌØ: éZl\#8hÈh¢ºñ›Ìß0ºd×ý” 5NÍTÑt~‡þ2/æÉ|g¹hÄk)ºÑH����IEND®B`‚IMAGE 320 ./arch/potion/potionfir.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿîîî ÿeeÿ00Î00ÿ™™DDDÿÎΙ™™eee‰‰‰ÎÎÎe0�ÿΙ™e0ÞÞÞΙeºººuuuªªª³ˆ+���tRNS�D"H±���®IDATx^ŽÇC1í¥¸¼–öÿß;œ"a¤d®3bI? öçy"Ðh÷ëhë#Èûu¯¶Fq{¶­— éï�ûÞZ/O¬|͹¶ÞKïµæZ•dà ž„™ày!Òáyxx BÆb<„N9Jö‚éØ4³?!Öð ž`Ž'8$4þÁxB„äo˜õ}OtzEò�}PUÀ-�è†W|“¢À# Ǽñ¶/g—²T����IEND®B`‚IMAGE 317 ./arch/spell/Potion/potiongen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEÿÿÿîîî �eÿ��Ι™™eÎÎeÎÿ��ÿe™ÿ��ªe0�ÎÎÎDDDªªª™e0ÿΙeee‰‰‰ºººÞÞÞÎÿÿuuuΙebÅn���tRNS�D"H±���¢IDATxÚ­Ïǃ0 DQ,É•fHûÿ?¬M6ŒI›í»‡áÃQ¿×Z©÷Ü?ÖÑAà¦uŠëÅ. ±ïÛ¼kÿ,¿ÿ¸÷ÀäUP§€'(:ý¶Íà…èn1ä2A9DíYD�9hO)1Î:f.¥�Т |B‹X@i즀´qëà/´Xe€,Z' ^ûÎÈ€vñž Ó¹¶wî^����IEND®B`‚IMAGE 296 ./arch/potion/potionhea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿîîºÎ™eÞÞÞuuu™e0ÎÎÎe0�ÿΙªªª‰‰‰ÿÎÎeeeDDD™™™ÿ™™ÿ00Î00ÿee þhï‘���tRNS�D"H±���–IDATxÚÕ9à CÌ&!Ýÿ¬Aö{T|R¸Ê´3HÀãQÕµ!èêx}m¾â!êöÍû£â ï§M€EŒ¹ÄÕ%ŽŸAÍå³ öÚ Å>¹T3.4»”HZA…’yafû&DbPÓyÐLµ†‚ÏîÆ´0N͆À§í€ ĸ>BéBi1€ÉíÂX _ ïcò/Å����IEND®B`‚IMAGE 289 ./arch/potion/potionhero.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿîîºÞÞÞªªªÿΙeeeDDD™™™‰‰‰ÎÎÎΙee0�™e0D�� b³+���tRNS�D"H±���žIDATxÚ¥ÑË Ã0CѤÍöFÖÿÿm“IÉ*2”Þ­fÀÓIï뺄TÀ(’scÄR<8Äû•/8Që¶WM€Vʶ{ yneóBunmaìN­gÏ@¸vt+¢;p gp¬L@ríèÝÀ„HЙ„ðctC®¤qzÀo�Ìo W:{wžü.Æd2™ÙôáØœT‰Zö����IEND®B`‚IMAGE 302 ./arch/potion/potionimp.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿîîî ee™00e™™Î™™™�0™ÎÎÿ‰‰‰ÿΙe0�ªªªÎÎÎDDDeee™e0ºººÎ™eÞÞÞuuu¶È>±���tRNS�D"H±���œIDATx^Õ9! at�{ûøÿ[-—j3 Çî„ ;Qþ�s¿, &ú¼VEš î׺nšV¼:™1ÎcÌFl?=7r]­�2ßkíBÔ±—^{ïÂÜZX€Ìd òLäÖF°Ka# n’ 3ä:\·/ÙJ×ÙíÖ$ÉO‘[ ,�È8aáäE™NäII‰|ÎÕè¿D&*����IEND®B`‚IMAGE 333 ./arch/potion/potionint.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEÿÿÿîîî�î��™0�Î� ™Îe™™™DDD0™e�e�eee�u�ÎÎΉ‰‰e0�ÿΙ™ÿ™™e0ªªªºººÎ™eÞÞÞuuu~ÿC���tRNS�D"H±���²IDATxÚ•‘GÃ0 #RT—KêÿšÉ%€Vç:ƒ5a]N""s¿m›L´ÄÇuxD\¿®ë-â@‹çÝP±,5-Ðÿ¤÷kz ôÎõXkJ2öawûrK Ÿ™Ùƒ õÞ{¢qP²BD­µq@¥”f€¯Æ4ºA5žÔ¬a¨3í»1 lƒ™&7°êÉ ‡õÊ8àóèG} ¼·Ió2žø§ü@#Þ¾Š P|¨Ì ����IEND®B`‚IMAGE 304 ./arch/potion/potioninv.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEÿÿÿîîî ™™�ÎÎ�ÿÿ�™™™ee�ÿΙ‰‰‰e0�ÎÎÎeeeªªªDDD™e0ºººÎ™eÞÞÞEa���tRNS�D"H±���¤IDATxÚ•Ë! ‹À.ûlÿÿcÛ •B¨:'O¢˜ÇŸ�˜ç˲`6žŸWÍ@(¤íªõȱð1^·mˆÀºîç:;âø)äýÄLز“¼ ¡MIEH"DU Z¨Z Æy!Y‚±Ð2ho,€¥ô@›7 Áò‡¾Æ) ¾¨ïhôïö ,k¨z¡‡Ú‡oê 7<^ð¸xÊÃÍÄÃÊ1W����IEND®B`‚IMAGE 315 ./arch/potion/potionmag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE���îîîΙeÞÞÞºººuuu™e0ÿΙe0�ÎÎΪªª™Îÿeee‰‰‰™™™DDD��ÿ�™ÿ�eÿ��Î TVOæ���tRNS�D"H±���©IDATxÚ¥ÏÉà PÒ%d%ÆžÿÿÖ©Ûj•‘8Ícé¿�ˆûœs €ò§¸`˜ÇiZŠT<_ÁB¾oÇŽt,÷Aù¼#0zÁÖaX˶ΤÑ8"k뉈aöUD·,À"½Ve¹6T’zÓÙ¸6„ªó‹sƒ«= ‚ûmb§O n¡Z˜�¨-8cŠoü‘$ø$¹1ú(Ș’_ί����IEND®B`‚IMAGE 271 ./arch/potion/potionpow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEÿÿÿîîî ÿÎÎÿ™™™™™e0�ÿΙÿe™‰‰‰DDDªªª™e0eeeuuuºººÎÎÎΙeÞÞÞå(¡z���tRNS�D"H±���ƒIDATxÚíÉ C!cÏŒË[²ýÿÇf ­È9â¡ l/~@ìK)4ìqd–Aº9ï¶¼xÞ,˜ÖέE#ö¯Û5 ļ&¤$¢µbåÕõÌ}­ªýx‡¹ïˆH¿0óƒñ {ý à`Xž¡œÉG@ðN..Ò!/Ûøwº¶?����IEND®B`‚IMAGE 328 ./arch/potion/potionstr.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿîîîª��Î��ÿ�� ™��™™™ÿ™™‰‰‰DDDÿΙe0�ÎÎΪªª™e0eeeÞÞÞÿÎÎΙeºººH>¼O���tRNS�D"H±���¶IDATx^•ÉÃ0DëaqötûÿomA¹®ú¤œæ àÜþDDÆùº®2ª÷×¹õzˆ´ýܶ£×Â×x¼mB…Ìó}™GG?…~_d$ìÝŒ:ö́ҩ='@U ChšÈàJ€…ÌÕQ0Ô!É%¨UX?ìu83DIá[�ʯ+”Hš_G܈‚×a}¦LàëÄüb ì3üw§�r˜£p…ìÅøÒhD¢‰B$ÄC>2a¤ŠÚÍk����IEND®B`‚IMAGE 308 ./arch/potion/potionwis.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿîîîΙeÞÞÞ™e0ÿΙºººe0�DDDeeeÎÎΪªª‰‰‰™™™uuu Úfâ���tRNS�D"H±���±IDATxÚË! wÛîÇÿÿ·JO`¤v$¸dp¶!¹®ÇÁÕs<^t÷üº.ƒŠñ<Aêîévn ÌHw,†Ü3RºW[dCÈâ<á*¡cJðZ4S=î(‡s¡1­ëSò^Ì ö÷W‚šã6ØâÛå­‡ÚÁ+ÀL°>ƒõE'Z~m0ùn~óÑ0…^´ÆdŒ›ŽÆˆ0¤³ DYðƒ=Ú„…ÔE����IEND®B`‚IMAGE 250 ./arch/jewel/pretty_crystal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�.‹W¿¿¿�Í���€ÿ��ÿÿÿÿ;ÎV���tRNS�@æØf���IDATxÚå …0 C÷]›õþ'6­ÓdŸ1˜}Û÷ÞŸFG3K©Àø­À¾ßÈ ¦VÔ=ÐK~9µ‘³Îð5g+76D2 4ôofáSˆ±Û€%ì ˆµDSÆÜ‚ìH¶¤çJ½ßüŠó çeÔŒ;oq¦¸O,•˜³Ü™Rò–½����IEND®B`‚IMAGE 243 ./arch/jewel/pretty_emerald.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿÿÿÿ¿¿¿���.‹W�ÿ��Í�ùÉh˜���tRNS�@æØf���‰IDATxÚå Ã0 C³Æ‘ïãIv?ÔŒ)Ò¾‡ÜŽß 8Ž¥€Ï>Iö1äTƒ[rfb¶¼áó 'ÔÓﶈ'² § ÿ›*À-®@°f½mÀ&Øbo P ÖX‰K°bOƒt:ußy'xVp·#R‰à “`ŠGc¯þÃ|°Åì½kå5����IEND®B`‚IMAGE 250 ./arch/jewel/pretty_ruby.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�.‹W¿¿¿�Í����Òi²""ÿ��@Ðüh���tRNS�@æØf���IDATxÚå …0 C÷]›õþ'6­ÓdŸ1˜}Û÷ÞŸFG3K©Àø­À¾ßÈ ¦VÔ=ÐK~9µ‘³Îð5g+76D2 4ôofáSˆ±Û€%ì ˆµDSÆÜ‚ìH¶¤çJ½ßüŠó çeÔŒ;oq¦¸O,•˜³Ü™Rò–½����IEND®B`‚IMAGE 234 ./arch/jewel/pretty_sapphire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�.‹W¿¿¿�Í���€ÿ��ÿ•‰/n���tRNS�@æØf���€IDATxÚåA Ä0 ³-ýÿÇ«(°¥`÷°·R…@âäñ¼@÷S£cD,Ä¥ ô¯C ï1pª!ªbÓòÕÙ5›j€_ž]bN5ÐFˆÓF‘U8‰Ÿp”‚ûvp }ÁNÉÞ qkPù_8yê0³­0±£H*æiÜ(Æ/ÌúÇ7¦0¯����IEND®B`‚IMAGE 199 ./arch/player/class/Religious/priest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?�ÿ����?o÷ò���tRNS�@æØf���iIDATxÚÝÏ1€0 CÑßÿÎÔ) Ÿ]F¨ƒiˆF×™ÔKû`Ñ[0Ð!—Áhm"3y@¡gáÆ½ ¨Xð㼂BÄ7hz¸¡¿7À \=Ì¥LÓ;R'>•f&öMRt����IEND®B`‚IMAGE 199 ./arch/player/class/Religious/priest.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?�ÿ����?o÷ò���tRNS�@æØf���iIDATxÚÝÏ1€0 CÑßÿÎÔ) Ÿ]F¨ƒiˆF×™ÔKû`Ñ[0Ð!—Áhm"3y@¡gáÆ½ ¨Xð㼂BÄ7hz¸¡¿7À \=Ì¥LÓ;R'>•f&öMRt����IEND®B`‚IMAGE 206 ./arch/player/class/Religious/priest.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?�ÿ���� ×ù¹���tRNS�@æØf���mIDATxÚÕQÀ B×Áýϼµëü*ø-1Ƥ/¼ÎÉõ¾çyÐAÄ+ú A¿a¤j˜-Ñ ±a�€ø°ÑEuOö@žÖ�m!K¢DúŒ0%j¬Žà€®á 4¢Zþ(¥Êx–sçá50����IEND®B`‚IMAGE 206 ./arch/player/class/Religious/priest.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?�ÿ���� ×ù¹���tRNS�@æØf���mIDATxÚÕQÀ B×Áýϼµëü*ø-1Ƥ/¼ÎÉõ¾çyÐAÄ+ú A¿a¤j˜-Ñ ±a�€ø°ÑEuOö@žÖ�m!K¢DúŒ0%j¬Žà€®á 4¢Zþ(¥Êx–sçá50����IEND®B`‚IMAGE 211 ./arch/player/class/Religious/priest.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ×�Í…?�ÿ����Iho¼���tRNS�@æØf���oIDATxÚÝÑ1€0 CÑ´õ¿ÿ•!¢ˆÉ‰Ä„ðÒ¡¯q¤Æ—²öI€0Æ( ÐO@€0`­iŠ{$ùWC"7ãz.^´„4åÁ)4ç´ЀHà+ö÷ž�„ïH’1`ÏGpK”Ÿ<‰Ÿå�áx€þ@ ����IEND®B`‚IMAGE 211 ./arch/player/class/Religious/priest.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ×�Í…?�ÿ����Iho¼���tRNS�@æØf���oIDATxÚÝÑ1€0 CÑ´õ¿ÿ•!¢ˆÉ‰Ä„ðÒ¡¯q¤Æ—²öI€0Æ( ÐO@€0`­iŠ{$ùWC"7ãz.^´„4åÁ)4ç´ЀHà+ö÷ž�„ïH’1`ÏGpK”Ÿ<‰Ÿå�áx€þ@ ����IEND®B`‚IMAGE 213 ./arch/player/class/Religious/priest.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ðæŒÍ…?�ÿ����v w-���tRNS�@æØf���qIDATxÚÕAÀ à‹ÿÿåhâ2šû¬b•¶ãG\ûD¢@ÅÔCl�Y¨³°°±È)´—À¨YÑ@ÒIp „\ðÌœSXä<„·è¦œþZArÑî¹óÐdðæAاêçaA:Äfü‰î;¥íßmä����IEND®B`‚IMAGE 213 ./arch/player/class/Religious/priest.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ðæŒÍ…?�ÿ����v w-���tRNS�@æØf���qIDATxÚÕAÀ à‹ÿÿåhâ2šû¬b•¶ãG\ûD¢@ÅÔCl�Y¨³°°±È)´—À¨YÑ@ÒIp „\ðÌœSXä<„·è¦œþZArÑî¹óÐdðæAاêçaA:Äfü‰î;¥íßmä����IEND®B`‚IMAGE 215 ./arch/player/class/Religious/priestnew.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V@@@ÿ¥�Í…?ðæŒÿÿÿ���è-°���tRNS�@æØf���pIDATxÚÕÑ1 Ã@ Dѵ5ÿßÿȉp©Ká[<λâ3uö�ü+P’(d¬¸oƒ€åÔä·ð¨�a�ýàL• 8vŽ (ð»ï :_ÓØ@€ÌÀÊÞ`è”s,@p—O®¹Áþ´xW>ÿ3ï‰�ÞU����IEND®B`‚IMAGE 225 ./arch/player/class/Religious/priestnew.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V@@@ÿ¥�Í…?ðæŒÿÿÿ���è-°���tRNS�@æØf���zIDATxÚÕÑ11CÑ 6ÿþGÞˆ´ã4[ ž,…< pfÝŒ‹ûª¿�Ø @c€Z‚ª÷½{Ç$ÐòÞï@¦!L�S @8uÕ¹´˜°¯ wÄø¼âÞ`‘F@Þ@@Ÿÿ`q²ÖCØÏ|(?ü÷œ9����IEND®B`‚IMAGE 222 ./arch/player/class/Religious/priestnew.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V@@@ÿ¥�Í…?ðæŒÿÿÿ���è-°���tRNS�@æØf���wIDATxÚÕÐ11 Áœ%îÿŸÂjC5©Ž0àBÂÖç…æNsI\—À9ÿèD�¢)ˆ *‹s~ÎÝï4hi4Ó°�ªš ðqâªý2¤ŠÀÁ W §X@Ï/ö†. tÅî*—$"x˜<iî‹ixU¾Ýzäÿ`ž����IEND®B`‚IMAGE 221 ./arch/player/class/Religious/priestnew.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V@@@ÿ¥�Í…?ðæŒÿÿÿ���è-°���tRNS�@æØf���vIDATxÚÕÑA 1 CÑf"ýû¹¡K¹ëÄ«2Îç]áN¨€ ëÍ<°€-»ˆçÁ&*@)I>QT9ÚéÀÙ €Œ$û0*[#ð›èˆ8ì èàvt€%Ó*Öâfðû‚ˆwå 6d�ïf•\����IEND®B`‚IMAGE 328 ./arch/monster/humanoid/Human/princess.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ��Æ��ÿ�sç�„ÿ�ççÿÿÿ­ççÆÆ�ÆÿÿÎŒsÿ��ÿµ”ÿÖ­ÿÿ����ÈÕ6���tRNS�@æØf���ÆIDATxÚ•ÏÛ„ EÑñÖr°Àÿÿí´¤ÇHIl‚>쪟wSmæ}.êY³žÙ ù̵Îz“65•""©†=%ú¬ Q„TèÉ(BǾB$�\ä@ÛÖ"<(²·¶-1¼,’#ÀÞ CAÐÏ ¶6d€ôÉf‡­Às@ Úà;€a7à;Àžÿa;@t¾ÙÜøÞáUa¯«@NzöÎÿàÚfüún¿Ú­X7`âóïz]8¾÷Õ|} ¢‘ð¾]����IEND®B`‚IMAGE 331 ./arch/monster/humanoid/Human/princess.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ��Æ��ÿ�sç�„ÿ�ççÿÿÿ­ççÆÆ�ÆÿÿÎŒsÿ��ÿµ”ÿÖ­ÿÿ����ÈÕ6���tRNS�@æØf���ÉIDATxÚ}у PœÚzXàÿÿvÇ:uÔK ê=Q4]R{Rœêy�{ÍO+ä=×úÔ7k¢n¥˜ÙVÃ~Û8×E$&9Åd]^0 €[ÑæW1 ÁÒÚ<…�Æäi²ýö2%‚úÑ ‰¨²pê¢Ûà  �âÀE�p¾¢q0ZÀűÛ{¯zBq¿~úexÏhº ¿ï ΂'Ç:P…~zp‚íÛVý�JÐuú÷L Dmœ7¡N ¸ÇÆZ•����IEND®B`‚IMAGE 327 ./arch/monster/humanoid/Human/princess.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ��Æ��ÿ�sç�„ÿ�ççÿÿÿ­ççÆÆ�ÆÿÿÎŒsÿ��ÿµ”ÿÖ­ÿÿ����ÈÕ6���tRNS�@æØf���ÅIDATxÚ•‘„ õÔ–b)ÿÿí­h ž”œ›Xˆ3Y›8½‹ó±a»E<£†¸G³Ïš†…”T5˜ËC€€iž@"‘ˆ\A žè Ii[?¢êœt“¼|’²+¬9/³+ˆ"qž5z_œú‰`03nÜã$Ç ]œ1pœnοéð»À=¡p4+¶‚éQqß¾óú¨FåmE\ÏwÍ(¸p5Ú_âV�ëZ5ÌÅ)üªÀù“‹¸)›½Ì̈ È©ä„V����IEND®B`‚IMAGE 509 ./arch/construct/town/prison.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���PLTEa�����@@@ R-²""Í…?ÿÿ�ÿÿÿµ$â���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ $ˆ¿ôD��[IDATHÇí•1r„0 �í kjœ8º7ÐSð‚4iï<;² KàK‘òtŒÏ‹¼c…sïÐÐypÇ�R ø(iÀ# ß?´�&$ mø4�"Ò)¢ ‚ü˜œbLÎ�çÉ�!f‡Ç÷ºÆ!„ X×KÀÇ%'¢uË $ýÙaºu<¾î!;œ�åà£�µ�¨Z2Ä~W0!òÞ6�#ĪšÊð€ ˆÍjþ øÉ602Ð8 ýPÉñ¢NÕ*B €t>Y6ÃHu$g�E�d¢.& ÃP€<¡Î�éù|–,y¢^áÈ.“ä ÐpÌ[Í݃|JY; H"\¬€ò:˜ @9þ„P9vÈ}‡Ÿl¦AQšç9§)’¶AQZ– ˆÇ€Ô÷½ØK¡.Ú0õË·ŽÎïo^îs�ä{pÄûã¨âˆ†ŒLo®8����IEND®B`‚IMAGE 211 ./arch/monster/humanoid/Human/prisoner.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���xIDATÁ± Â0�ÀÓwöi@(û€ %cXî ‡ÚM¢è§ä����HH ÄÀ謹0¦X±¬>uþúñüŽùž cëàœ7 \@l pj€Ò@f=j‚­%\ê½ó¶7P²L}Ô L@t����€?a�ó€-|@����IEND®B`‚IMAGE 209 ./arch/monster/humanoid/Human/prisoner.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���vIDATxÚÍAÀ ÃVÿÿÑSñ Ñp&Bê„ ß+¸îÑkOÓ›€B¬`ÚÓt”cç4¨B³“[(¼a¨7 A»òP²¤32À–`˜ Ø’“*0 €ôÖŒáúB9£€´¿B8<ãñ(kbÄ/æ@ýˆ­Mû¶����IEND®B`‚IMAGE 369 ./arch/ground/Pstone/pstone_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEΙe®yH™e0Ö¡qsÿ1�� IDATx^@1KQ�þ­¥ÀÃS—nëh)4Þé‡>ºC„{55¾×k°Zúÿ ßà(u¸$tÜ;¯Á7JK«¸4ø(ÚæC«:Vî;O!nÕXò¼›ƒ¦Å›’á$ˆâýp• îå]î&©õ`¨ò…8ú#(¢Gùœ¢¦?Ö ÃÉšùrmé ©8kK1À”·Òä ·j~u�+“—Tˆ*ü‰Ç‚_«€@|“û/ óá-mkÀÕʇçÃIÛQ§©ZKØ-Mçz¤ЈտÒÈIJEó†×<ž…×Mp•Öd7á0ЧÌ÷¼©™|7ùcŸ1!¯0µ¶¨�hôÛbÍ(N‡·:y93ñÔ±u[NKXt㇔ü¹pU’Í����IEND®B`‚IMAGE 551 ./arch/ground/Pstone/pstone_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE‘‘‘‰‰‰yyyqqqiiieeeΙeÿÖ¡Ö¡qâ®yD2£n��ÄIDATÁÁošP�ð/#F¸9·dÛ¨p³(EnuvIFÀÛÛqÑZ?nÊ+ýÞwKxï¿ÝïËÅï%ÚÇåê ßÙ0·ð°ØÚ8“vF"¬fz(Ý,¸ÄÍB¤þÅU%Œ•3õåAöjí×ü‹÷¹ž£Š,ÍDÏ%HOÞ×®Ù¤z¬Ó RÄ.—vX\gÇà”BÏídg÷Ý<¾HõȨ”êx0ä^fƒá½T§Ohí¾Y33í–b½f<äEóå+%»RÙÓ^8óP«ð<&~§I6…z„³7 ”@®¸&šÐjÔñ4}ù•ˆˆÀ’¯ä-e„<2dN0†jŸ&‡ ŽØ¾e` ÊKÁYpÖ«Êê Žî_!7¢PÜ=pˆ X(ª6Sî°VÁÎÀOàÄ“™ÙbÓïƒÖ˜¡gŠM%w3SW¿ ¿Q濾×;É$ñƒ–ÞÃbœÑÔ‡÷Lë“Îç6©(€Ç)î£Éó„OÖkùGÂç¯"ÍK¡"s›Â‰wnÒÇ&îO븦ˆE&‚ ’†G…¾˜©lÂmÒ@œ7ÂQÌøÝ©îâœÛg_äÇ|ÒþT"ºþs¹õ â³����IEND®B`‚IMAGE 551 ./arch/ground/Pstone/pstone_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEqqqiii]]]UUUΙe®yH™e0Ö¡qHHH@@@Ô©¸¨��ÄIDATÁ=oÚP�ЫÚb£´U;:þõFŒ‰ñˆyOŽ7ð»/7Þ*EU× |l¡(Rº!Ëõ¿í9pšÿ8±½?ù ë^çÏ6Ï´Ý «™X�k·ñ–q9Wµ¿te céL}}Ô™¼ø…É¿ã]/,S Ñ¡èûµÊÚá�EýdÍœ÷Ú»Õlï­kÈ0lí,_DÊWµxd‰”9˜é¦A0‚ƒŠúÍ­ƒ7c&ÜV].ÈǾ+¿.á,uÞJ{š)g ÙoÆdñÑÏé²“ï° FžTŒ…D:¼¢!œÖ/ÿ"•˜ú‰‚y)G†î ÆPíêèè Ú·Œa»ì°ñÖƒâ\™ÁÞý©ôUuóW 9“U•6ÒÒÛü œXº±²N]³—:�3,u­ô6ADêaå—ágÊÜšxu§‘€4:¸qPšúðбý0ÀÞ&™xð>å]29ü‰pm>µ¿4|û¢ê¸U2±žkXãÖRo_ÆY”à°+ÃH¡AšÁ¨¢ÐW3ÙL0J½ÍU9‘¿;Õ]œƒs{ðU¿ï'é_©ú·Õm›y "¹Ô����IEND®B`‚IMAGE 549 ./arch/ground/Pstone/pstone_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE]]]UUUyH®yH™e0@@@888000 a<�Lp$z��ÂIDATÁKsšP�à3„2.íÃv«÷nÈ®sÄG–^.†%A dg”îbfbºt@(ËN;ãïí÷Áq÷çÈáôxºã²Œ+¼ì®!ïEØ¡,ݽ>�‹´‹W¹³“m´JU #•l#±ž:G¶Éßóy¯¬*S⢑‰Ÿvj8mÂéö#¨–9èEX6ëý4·à‘¿™…^p(d$[}¢ò*¥Ü'ºŽÀÊî-´ÛW6g =ž ¬½Nky>/ûÆù¼‚“A­Â­'“C©U<¡ÁË(Ð(œF½Ã$ÆJ2ÙVn#nð4ŒíiÛÞÿ.d…`Š[Ìv޲JZ¢G;o‹elW>°õª¡.ߨ'×ô¦é_).²Q¼Pɘ,]¿Sé­â™Å_!Ée&:ÃkäÅ›Ç~°çÌWÌ*"ÂÖ‘S~A/m‘×Ï‚Pð-²Ç„ä¨ÃmÖcÝ2êCTU ï[žW›Å[Acó¶þ'àÛ'ÙvÄÀµT•qmaL³´ðã©“{N¦udcEƒÆ) I +CËHîU·!¿p Œ'™("þ‘¸Ïy�ÉÓ"’ý´ßø¿”ì_×ÿñ†Åœ¤•����IEND®B`‚IMAGE 256 ./arch/monster/humanoid/pyro_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿ R-ÿ¥�ÿ��Ú¥ ���ÿÿ�ßkã£���tRNS�@æØf���–IDATxÚÍÏÑ „0 DQ·™dþÿ˜BÁX_öÅ‘‚pXïmhxê3ÞªQÃÆTe‘]·\‰ÞG‚ˆ˜ŸéÝÝÔµ jÏ úOODêÃlu‰; 5ø`nö-ð™°×éà @ÆyÐ~c0  UW tÁºA¾«oDÕ»¨¬3{à€Õ»ÉúµÁ ™ ����IEND®B`‚IMAGE 207 ./arch/monster/humanoid/pyromaniac.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ÿÿÿ¿¿¿ÿ����� Ý���tRNS�@æØf���kIDATxÚÝŽK€0iaîeS41–ÏÆñ5e3“òË�%rìIñÉKƒÁâªêŸ|3èõÈ ú†÷ ¤+ øŒGšÙs$yiÌh@0vîFYÁ–Ð ‡+3ÞÒÎ;CŠœ+ò±¨¾¯ËÛ¡B����IEND®B`‚IMAGE 204 ./arch/monster/humanoid/pyromaniac.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ÿÿÿ¿¿¿ÿ����� Ý���tRNS�@æØf���hIDATxÚÝŽ1€0 C“ûÿ—QJÜ…áªYîdÙ~@¢ #Š+ƒƒäî>?—PÇ‚}¤ G�Á�æí##"ÁÈïÂ-/Ñ hÆÂËPTdƒ5ÞV*® Ûŵa" VŠ},' K¬·Q����IEND®B`‚IMAGE 208 ./arch/monster/humanoid/pyromaniac.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ÿÿÿ¿¿¿ÿ����� Ý���tRNS�@æØf���lIDATxÚÝŽ1À Ó$þÿ— Zã.]ªB w²°`=Â(]ì|hv#�"¢.Èw°x€Äã"ç‚—õ]™Sø =^Î@ÅÝW!'ZÐ<Ð(¯ {.Úˤ™òã­Êœê.!����IEND®B`‚IMAGE 201 ./arch/monster/humanoid/pyromaniac.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ×�ÿÿÿ¿¿¿ÿ����� Ý���tRNS�@æØf���eIDATxÚÝŒ1€0 ÄBÿÿË(U$DZ° u²{ñK�gZö'ø‚€9çzØ / :h@0(Æ]™%FÑ^ƒ/‹¡Hqõ«°4² …4Îû"ž‹ö¾ƒheù±–e§“l����IEND®B`‚IMAGE 217 ./arch/player/race/quetzalcoatl.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿM(­���tRNS�@æØf���~IDATxÚÍQ À C×ÜÿÐ#-šªßFÁâ{#ó{&�wLGpo._B�i¬¯]`Ò€ Üè<¯»¡’î”p4PÑ +ê7\‘F^øÀŘ¡ 0# Í¢sf˜ »æd[KfÐæ(ªZ•˜`ÍwA|4î¼ÿäCù¾=8����IEND®B`‚IMAGE 213 ./arch/player/race/quetzalcoatl.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îîÿ«h¦e���tRNS�@æØf���zIDATxÚÍAÀ0ÃÀÿô6)eçæTÕi‰‹B àœ$i^†4ñl£a›Öb¿Fäb¤^è_¡„Õ Øj0Q¿ó$»¦˜ñÂΑA. :z/G9 :˜A‚Mò-2¼×ÄטýP‘ ÌÝÂë7AãŒ{UÜ“•ã+Zzð����IEND®B`‚IMAGE 221 ./arch/player/race/quetzalcoatl.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îîÿ«h¦e���tRNS�@æØf���‚IDATxÚÍ‘QÀ CGïè¥lÌ"2í1ô™w#�ìT X*Ÿ|ÌX „÷4,>èÓV€³O%hü@Y3ï*÷sÕ€ñóöCD55îLJµ!‘g»³‡P´øÐô æû’!^,'Ô,Hš¦ TbãkÈót»ÜŸŽÖr����IEND®B`‚IMAGE 215 ./arch/player/race/quetzalcoatl.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îîÿ«h¦e���tRNS�@æØf���|IDATxÚÍ’AÀ ÿ?ºjPÝH¯n‚Ý¢]¦h"µØ­ ÂÛ³WÛ„¦ïBL/*¿�Âi§Ìé~jÿB0GÊDü¿‡‚à=] ŠÁ °Ì¦@ $ÄÏï He|±Å<±Í@샖Jãè0‚"ô^_§“ç+Þh&����IEND®B`‚IMAGE 384 ./arch/monster/demon/raas.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEGll�À��à�€��  ����� ��`��€�hIC_���tRNS�@æØf��IDATxÚuÏ ’Â0 ÐPj[÷?1’Ígvh!zÕ4c¤ÛÞ‘GèóOˆ¸®ø«E{Íëu]À) $Þ’³C© êíÁ€,ÅZ]wYé§¾[Aç‘ö¹Ÿ±I–þê²O=*µbŠGµ§¢Âl€ß\¬Ë°A·.HšÞœ�0(‚>>|ªAË„5 Â ©/kCPèáÙ`Š�­å„z ÐÓà >rî Ò Ðây æu7`\á}JÍ\ ½ çPb›Aom 40HÓ»I¡ ,²††`¤A�áyÀ­å[ jU¨`ÃÀÛ>±c_ÞÏ�‘GxüÓó‹>Üj|í Ž����IEND®B`‚IMAGE 386 ./arch/monster/demon/raas.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEGll�À��à�€��  ����� ��`��€�hIC_���tRNS�@æØf��IDATx^MÌ=rƒP `h}_"×HÊLfüPIRIci™çŸl¡Ñ|³³TÓ—"ô?×/.ûúr½p‘79.g ¼¼ ¿çaðpÿy‚ Ãð3©àEC5*u¥³0X¼BkIRsT+!¦¦.u„°P”ÚêÅÚ©?¡õ9ÂH±�"ÛF¿�e†&à•…ÌM‚ºízŒ$l0Q:Ù-*0ÌÄ[_Hbñ8±Ýî0‡ecñt@º÷s6|­àH”Øáë¨ù÷eOT=MeÇ1ÿyO„òT,!O¸1Wh['êĘÙcjšæk‚pú¶ôÖ<`zÀšBì’0Y%PnYƒ1Õp渟D4S‡ª) šÆ����IEND®B`‚IMAGE 2482 ./arch/monster/angel/retributioner.x11 ‰PNG  ��� IHDR���@���`���š„Ú��ëPLTE����>  ' + µ·³!# ) / 7 9= G"NOM^`]egdjlilnkprortquwt}|„†ƒ‰‹ˆ‘Ž˜š—ž ¡£ ¥§¤¦«®©«¨ 2 œ¡£’”‘\^[  "IKH-  5 cdbgif��%, :wyv#"%0 ~ƒ€#$"†ˆ…ŒŽ‹%'$�•—”K$›š-/,ž£¦z|ySUR¬®«¬±´¯±®²´±Z\Y·¹¶¹»¸ÉÄÃþÿ�=><È¥€><@¨Ÿÿ·¼¿È§ˆ²·ºC#TRV›tN¢§ª;(*'  …YM^ce,02Ì«Œ020¬‹h¸²±Ñ°‘³Œj 0Õ´”@A?¸—s»½ºÛ¹™ÀÂ¿ÄÆÃâÁ§ãÞŽäá—åä ÿí�æç©ÿô�D ¾–t›q:¸˜y­ª¯574üûWÿþH¦…b«„b°«ª8:74 "e.³‘m�( TON �œn\·™€Úº ty{+-+Ö±W\^#ÒÔÑã݇ÿç�Á¡‚œvV½ªT[`bý÷�‚[+% øú‹ c¤ƒZÐ¥|¥™užtVQP6:=êêÀñ]=)"�‰a*Ϋ†(@DFDEC³±µµŒd…hK­ŽpOMPÒ³™‘–˜”hD”k4;%$“mG¾¼ÀàÂ!—œžÂ½»ù•pOÍÊ_ÛÀž×ÀªoE0,+OTV߯©ÉËÈÌÊÎÐËÉèɵÔÑÖ� ÜÜ}§¥qØÚÖÝÚß 315©¤£,$éã§ñó�üñ2$êç°öðV¥|O9=?®­fçéæïð—…ƒ‡þÿ!Ä¥Œýÿ1üÿ= ͤýÿsŒé"1���tRNS�@æØf��uIDATx^í—C°lˆû¯ZhÛ¶{Ó¶mÛ¶qmÛÆ³mÛ¶m_­ÞgŸ¸gЊ;{±¿QÖ ¿Ê̪UKV«¬²Ê*`¼žT„B}%)]$ž>ûŽ_!Äèñ¹qñwçΞQ0‰ˆ„@ ÉŸþÞùW„ú8 ËÃýëïçÎ3ÜÕ@äºû ÒF¿?Ë CÁOË×}ÿ.¯“is Öí)%Ež¬½Ý•"ÈEHËÐ]òu_\÷—#e8/»V ÿä4Û äâ«eGøÓu?w:Á¸åfÑÀ&�ÂUV*ÉÍ‹,–~·àŸÿ½J ˜ÃPö@Ô•VH¿§— × "K™˜'•ˆÒÎ\°vA4”ÐÙN+ÙÒd•ò$Ò/*s—ÁÚïWŠ  7Œ,‡÷>àŸ€Ä õöŠî 䛡ñ�wàŠ`ÃÁ¯>üÑ-[â/€} "—'ŸTX¸£òö£áë�9¸áÈ‘#Ÿ|Œ±…ÄøÝ/‚§ÐÇq3ò}½ëå‰Anïþ[Ÿ{C*ïØÚÿ‘xì1.Pð>¿?œÏÏMFƒ¾Nèt�¢“3r¹<tÔ>Fˆ>;0 uù¸Â`¤/èi(›-³"ÿn«H|N§ÏïóŽ÷`™ÞÊîŸÇQö–— }P¶WjÄlÕø‰1ÊöD<‚,;¿D�Žä“ Ë¡�Ááèh:¾uÔ§ü|b*>šö9Ëšîÿ ã ŒxëukžÄ£ét:>5¯ëŒÊçãlUuÿ³ü)8Füç½kN66¤Ó£“7N³ŽÇãëãéÑ%ëŽ?[Ôׄ7?~ôI”no”O(‰èelµàñ ¨Xª«R¢ÀšÖÜ{üèÀár»&80œT�ÃèN8¼šüòÛ{÷=xæ0'HÏ*V;g|þy;A>Áþ[o8ôÈÉ_Ž {LÆ»Æ=³euÇŽà2‰€Ýïl»)Ÿ€ÜvÆ5ßú^PåôûXiß7Òß/®¹¹:Ãí\Ê#н붇?~FcÉn¯šøÙ¯uÜRÅ1|ªÏ)—Ç:£¹ä¥ëí=¹Dl¿¼ø"Ç"ô§"‰Ät8“»â rò+‡e¸ûå/ýhqñÅK¸þn�U§¢îéÉá¹X0÷×cAQDV ûÔõxþ™?_ºp¡éå÷@†Yy o:ø@8ÉäŒOÝØåí‹–yðùg>÷›wC†Ò޽M£ Í æ¤¿ïò�RP Þ|áC ”j¾ÞXDsâÄžöHî!b}†t"J‚ ø”[žÐ,̇ÇÛón¼‡—×Âá§ÑiÍ7ÚÛÛ§s ð·õ�®I“�åÿéÙ€¼gb<qj¹ øìµ¹ 0lT̞΄æ±p,açråcã'^»o–‡@mÔdNáØé7:7Ÿ\ݹòáXI¢Û6a×.˜¨ÍbÉttÜ•ÉDÚÚH.qvbS«Ír§EXè5µèàúvÂÙéjpƪÿMÍFO-fó�v=è%Á�fçå¯×5è®Èÿ¦.«T‚‰¶¾O'U€Jk™À0x"bwºçËP”Àl¡wª³4[¨^�`g\±ðM²¼`Y#°ÆS*H0Mi™Ä;µid…´”RýÀAŠÖò`fìsµU)I1=ëÛR­¯à$õÔ,X™²¬PÝJiku#Têòf¨µTjGV¨¦—Y :4«Õj4ñ”šz”&°]¦¬…¤$(W3ßR‚�PQÛ&Ê®A ŸT#™4SÏ£xôzj³I…À×�åìPµªâ@µÞ24´I*IªÝY’Àlf©¡£àU”Ú’%øêV¨t|sGG½¼Ða¶)’Å v f³mˆ–£¹¹C¨¯‡¶Z°ÐEñ‚r}‹~›Í<€šf^[?€Sµn+ú* ô¦M6•©Q|E«®g3h*%�Å šÊSjªQ@­æµŠðål¦—k…¢j>e®U0Ar'ŸT�åæj}J_´`…€xdY”byÿ¿÷¼\ÍÂæý»TÁØž=›'® êÖr?(I@Æ~þ§oî~ôª`·}mI5Œ½íÚ*Ç mXñ=ñÂî'6—6Arß}�^;P¶–ý_³Ê*«üYbCŒñý«C����IEND®B`‚IMAGE 194 ./arch/talisman/ring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEGllàààÿÿÿ   ÀÀÀ@@@```€€€���ý¢e.���tRNS�@æØf���UIDATxÚíÊ1 À0 CÑ$ŽeÝÿÄ…zp ò^hÿ$Ðïl­¹·µ÷ž ,ôo¤ˆ ¹ZP[wÏwP "pƒ§à ¨� P2óW¢²º¿× TFë����IEND®B`‚IMAGE 178 ./arch/talisman/ring.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���ÿÿÿüü™òÄMÀ @€p øà`hTªˆ4æy���tRNS�@æØf���EIDAT(Ïc`þ@1Í…ŸpAâ3ƒÎ`d "�&‘ÜËDx²@hG+²�;X �É^°�ŠË€ƒ,ì�…Y*Úê¯Ä����IEND®B`‚IMAGE 188 ./arch/talisman/ring.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEGllàà¨``0€€`ÀÀ  x���¥*zó���tRNS�@æØf���UIDATxÚíÍ1À0CÑ�÷?rÝT"•jöyC”qü“™hgf³Ã°fj‚ùìà ø(®¯]î¹pÏÁ]Ô.ŠdY¯úãmH{>>.§½2‚€~����IEND®B`‚IMAGE 188 ./arch/talisman/ring.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEGllÀ`�@ �`0� P�€@����oTE���tRNS�@æØf���UIDATxÚíÍ1À0CÑ�÷?rÝT"•jöyC”qü“™hgf³Ã°fj‚ùìà ø(®¯]î¹pÏÁ]Ô.ŠdY¯úãmH{>>.§½2‚€~����IEND®B`‚IMAGE 184 ./arch/talisman/ring.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ   ààà@@@ÿÿÿ```ÀÀÀ€€€”ÞÈe���tRNS�@æØf���NIDAT(‘c`þ@É% …ï¤ä–æ‚ÄgqRw/@P/+/G(/¡¡d0i†$`�$˜Å¬†@B8�ÉšD@% 4¸�Q² ˆ“,=æ����IEND®B`‚IMAGE 218 ./arch/talisman/ring.116 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTEGll P�`0�àp�ÿÀ�À`�€@�€`� x�à¨�À����‘Ž’���tRNS�@æØf���dIDAT(Sc`vÀÙÅ…âìi…Äg±ŒŒœºtB`æd©¬¶Ö¨¥@¢¬ !° LV –� &$mê»wï.ÏÞ�ØÝ®½{SÅîÝmÝ „PÁ½ à|¨��õú#9(' c����IEND®B`‚IMAGE 180 ./arch/talisman/ring.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���YIDATxÚåŽ1 À@ ÃjýÿÑ“’ž©S«ÉAÉõK€³—ÄÑÃ6šï ½ í?½@¨þ$ŒSòÓ˜”/˜|Ùi Œï to€˜€ –«°úkÜ6OŒ²����IEND®B`‚IMAGE 383 ./arch/construct/town/rl_house1.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������ R-²""¿¿¿ÿÿ�ÿÿÿ‹Ñvæ���tRNS�@æØf��IDATxÚí“Qƒ0 CûhàþGžT dMó‹•øÕ8P^½$í˜wCm笽“Ù+M3êíˆç‡ŠÎ0 ™�Kv€å`–ë�Ë%À,×–K€Y®l:ü¾¤žÉ'`ÛÕèßÏ�¤ŸSÐÍàœ�ßnÒ©îp b�èt�=�vøA@¸ì ðSˆ\1€eø!‘€Ùz÷ùôùŒ%@2kžC# ÐãÂI�m$œ˜gu%Vhþ§U,JÀº„Û×í @Ûj÷ ×Vàp\CÊ}�Èï…äGÐü˲ À?  DüP#€ í¨„¾~5ˆ4 à (1©rÍ=$î*¯^=èIsš‘Ç/����IEND®B`‚IMAGE 435 ./arch/construct/town/rl_house2.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE�������Í��ÿ� R-²""¿¿¿ÿÿ�ÿÿÿýcD»���tRNS�@æØf��FIDATxÚí•ÑŽƒ0 Ù(ÿÿÅ¥¶Ì’*·¾DêƒÑF;16j—‡‡ �½²A*p"¿ApèÓã‚ÜOä}œmüiÀÞT°ß[{ 37AœË:úy!oU˜UA.8wD” Øg+(†mˆHA5Át‘êÁx‚Á ‚+݃\0<�M~ô=Àº®0A5Áà˜çÈä‚Á)|ˆ|uÁX>Iœ¾†cS($š8öœ±zÅg¦`¹j+#=ˆ³:1…BæÞƒ8¿vzàN+¨í`ÿ#“G ›§¼•¸à‹L@ àß·`I”P�pÕ‚zï#ó/àZ!èàÉ3ê«ô€ÎìÌ÷]þ/À‘ãy-ÀI? (ó…&9‚D€ò%ˆz¼γƒ?è¼A�Ã-¾~Ábz.¯ìœ7����IEND®B`‚IMAGE 650 ./arch/construct/town/rl_house3.x11 ‰PNG  ��� IHDR���@���@���·ì���0PLTE���@@@²""�Š�hà�¥� R-�Í�Í…?�ÿ�¿¿¿ÿ×�ÿÿ�ÿÿÿ���Vo˜���tRNS�@æØf��IDATxÚíVÑnã0 ë-ó¢­ùÿ{¢  ËÁ€½•e§©e’UœÜ^xá/À‹¨|¬>UŸþÁ”£NP¯®8M@è¢~1m5ÚRÿ‘eFÀ°\¿f@Ô bváÑÅ Òï±`@ëVÖkÈzýÊvÖ ô)< Å Xy@P ~_4àtý¼R1€3˜cí­{ŽîÇçµY Á#<¨e%¸à@˜ù1‚Æ9$wc2ðÌ^vŃNҞث±ãŠ"*ÊdvüV`<@'<t>H'?¼[x Ç(I‡¿tÑ™%˜Œ¡¥Ûu@! ÇÁøد{œý8ˆÈZ{ ‚s* Æ&Vk’AÛÛ¶·{3ao~²åmºö@ |¶ðLZÓ)H¹¯U ¶à`Î¥IXz@~~Öh²Ú`|TƒOÈ­¹}µÍ‘ùÚ”�ˆÕ…„¶ á0G A£ùs ÛþÖws ¼;µÜªÔx›JØ[(Ø£ö»Sh¹U‘DWT‚¹„ÃE všRô‘¢æO%ÌÐã&Íx›J˜€FG¼MLa«à픎dË®xÁ:o§43R'Ù²›&àùa@sÈö§‡DñŠx®•H_)Ô ò% 'ƒøYHõ–œ,Iàü¤K/¼ðø7bWm(»ˆ����IEND®B`‚IMAGE 356 ./arch/armour/mail/robe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÎ4Ι�Îe(ÿÎ�ÿ™™Î™0™e�ÿeeu��ÿ��ª��Þ��%å—���tRNS�@æØf���èIDATxÚµÐÛÂ0 P`—6©óÿ¿‹Ýò5H¼`iCšÏ2šÇŸ+õsp÷gfÕ{w¿Ûâv …;&ÈÓŸ€ˆnD»½©Î,÷�Ö·3㸖@€5z=Ú°‡;f•zA U �_…‰û‚øÏŒ9y>Š ‚0k·ë˜¹?^/ ­‹û.í3 í8B¿ÞGŸÍ…±îWwL‘ /.(˜�œ�Q!ÀHÔ@Ð⣦)^�õ H Þèü ”Ø¡|êgªE˜©ß@jw‘êŸò…»ÅWÉ����IEND®B`‚IMAGE 408 ./arch/armour/mail/robe_midnight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTE�����K���� ~�� ��++i0 � ~EBfP�O¡¡¼D,l/-G22n0��NN\ÌÌÛ¡¤Ï ÜÜÞôô÷222+2“7GM���tRNS�@æØf���øIDATx^µ‘InÄ0 §›ÔfÏžýÿM‹æ KÇà‹«LAôéŸ`ÀÅ{˜Ù6 BÕZÍJâÁ3à©DC@±Ep n˜Šˆ/…ûó0�@œm];¿˜y/Áa@x˜)@(ùã„Û§ù#Ä9#n`¶òîtˆ­$Î8O.6””¸螊oÊÆÅ{)NuIû.ý‹é~g=¨Õ‡‚rqFlôR CÑ=òMúˆ·<¿LkÈç ¬~ïà"Øs¬ÕVACǬœ׿¦Úµ ÿ,ÎpçŒiàŽ;Óàãñòœ-Âïî\zîKp¥×ü¯2Fp 0����IEND®B`‚IMAGE 459 ./arch/armour/mail/robe_midnight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���xPLTE�����K���� ~��0 � �� ~ž›�++iP�0��D,lª¢�O��!22nTT†ÜÝí ííðfff¤¤¹NT¥¡¡¼mr´ÆÆÖNN‚ÿÿÿììñ S((,??w�Z��::W!$sNN\eXH¤���tRNS�@æØf��IDATx^µ‘×v…0 ³+¹À­é½·ÿÿìurò�öcæ‘d#Nþ <€™Í #T)Å,e®|2”ÈcPÌØ‹€9‰xS¸_¬�ˆ³­iÿxaÎ\xÈ›ù¦¸ 3%¿žðu«@~ ñ4Áðn0§{§CÌ)³@7s1#åÌA@÷œ|V¶üQܤäT—µ/`kÑÿ"o6l£¥ø¢ \œÝâh:ùª mÄÙ}ÿcjÅt³…•ëgpì§X«‚ІYØv¿…uÔ]Àô68Ã@ܽ¢h—ìWŸáƒÞ"üûÜC¯À}hŽô˜ˆÄr9»y‹����IEND®B`‚IMAGE 438 ./arch/armour/mail/robe_midnight.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���fPLTE�����K���� ~��ââ� ��0 � ~P�++iD,l0��Ož›�NN‚ÌÌÛ��22n]RR222?¡¡¼cO„ÜÜæP S``ŽÜÝíôô÷NT¥Nˆ‘œ���tRNS�@æØf���þIDATx^µ‘GrÄ0 w`´Ñ9‡ÿÒ#¬ËŠ<ºê&X„vÿ¾ À̦NªÖjV27¾˜g%òhŠ)‚�Ꚁ¹ˆ8)ÜÏ›�®w¯ÚùÀœÙxÈkDx 6ÂÃLBÉo'Ü|*ßB<͈˜ ‚ùàtˆ©dö8w.&”œ9èž‹OÊÚÅ})NuYû‹þy¿ç8Ö Vo Êűѥšâº9Ê'ž×§þcRÂéeÕ¯7pæX«‚³ ° ëHÇ$€ù~p‡+€x¿E7p‡�y¹°Ü}‡z‹ð×Gw½÷¡ 8Òc~�•Õ~èš%����IEND®B`‚IMAGE 330 ./arch/armour/shield/round_shiel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���uuu‰‰‰ªªªÎÎÎΙeîîî000™e0e0�eee��°ÜÆ)���tRNS�@æØf���ÔIDATxÚ½“Aà  86aÿÿßn Ä %ê­{ˆw¢¼þŒ<Ö%'µÖ°­U¥d#°EPD@bG–^­�牜ø$¢†[ßÌXÔT"Ü 7 q^ (Áãà‚“µ÷¹u ˆ⯠zæ‚ *c¹3f€ûUK™¶L¦ðP÷k˜c°ÛB3û˨]OµÀ“Éë,ÂÓJŒ³X{twÊý¸Õ&*@Ä(!!6q-¡ßÎïKIÄý~|ëýžÂ_?ÎóÖP¦•¤����IEND®B`‚IMAGE 261 ./arch/jewel/ruby.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿÿeeÿÎÎÿ™™™��ÿ���00Î�����ÎÿÿÂ9®Í���tRNS�@æØf���’IDATxÚåÑ 1cucÒÿÿàzr°xú\ºO™ 8þl›ë¹‰9ÜÀîùK‚[xFƒ€KXûDp\‰R“ð\~g ×osòÃ@ÉûswÖ“»Âq–v.ù;M£’{ ( ª·Àb(k…aó,¦ZÌ­z‹\=”En…Ï9‹ýhÌùE¿ºIVc2¼ì����IEND®B`‚IMAGE 258 ./arch/jewel/ruby.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��»��ÿ‘‘ÿ��ÿÿÿÿÿÌÌ����DDÜa7Â���tRNS�@æØf���’IDATxÚåA 1£ö$ñÿ^GÇÀž—íS *Ž?›sg.*àg~ip OàPAb Ë› ª€áÎh” ËåwªqÿS%oBH~>׳žÜ& ½ä¹äW3JžM`B0ç#°ÊZaˆ€Ç¼‹©�ä£s«Á"We‘ÛEá³Fz±¯{QƯîf_<ÊÅ¥����IEND®B`‚IMAGE 314 ./arch/monster/acid/rustmonste.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEa�tUUUºººDDDªªª™™™ Ιee0�™e�eee‹Üb¡���tRNS�@æØf���ÄIDATxÚ­ÑYƒ0ÐP’À˜ûß·6SÉ¢!å§fˆ¥ü=ýL”ÞÚ'u(ýX–[ÀL¯K]k Xž`]Y½ê“ëç¯ià<÷€�m{Op}i‡f'B%PÎ+ØOemØ4Ô_?c–êAC3؃d –ʉB°È$¡=ŠÅ.cÅZKùHEdÅA‚ˆ;™ê¯�ÀO s’¤$7À·âto¡pÿ™ˆ$)‹z ÇÒÂfˆÑ€]?å €êp/pV$����IEND®B`‚IMAGE 318 ./arch/monster/acid/rustmonste.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE�eeeUUUºººDDDªªª™™™ Ιee0�™e����¥Q¤���tRNS�@æØf���ÅIDATxÚÅ’Ûƒ Dñ¡¤ÿÿ½ÝmÐL(êcW.2çÄ1ý)ò(\jY²Li³È²®¿©Zòš÷,2pÒó öxäÉ#³çÃø^ÐpCŒ>{EÛ8€8GÞyFô- } ƒ¹hÅ æ F‡äBA‹Bm€ÌWj 7,õpú§uƒŠ[À¸‚@ã,TÕ´4”8êh› ‚Å ãÃIo®¡˜ e"x)ÌÎÝ`8€ó§43…#ô fÜá"i–€Ÿó™fCí) C����IEND®B`‚IMAGE 314 ./arch/monster/acid/rustmonste.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���eeeUUUºººDDDªªª™™™ Ιee0�™e�X¨ìb���tRNS�@æØf���ÄIDATxÚ­ƒ0  £”âÿÿwŽÃm…¡Is!H¹kQþŸvÇÛ ¯Sk°\ ó<µÝœÎ¯K«FP9°,ÇT.fÄ–2Æß£ûçV”übDTÁú°r!$.Á_ƒÖê’„Âj!CÊŸ)Õ"¨mÖë!°RÏ®$×± =y¢7ƒ¿ <✧á¼{Lü&�bo÷üGK^…¯¾<â}ÇÜHI+ú™ä¸HÉ Í_ò"õÚÛ����IEND®B`‚IMAGE 314 ./arch/monster/acid/rustmonste.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE������eeeUUUºººDDDªªª™™™ Ιee0�™e�#â���tRNS�@æØf���ÁIDATxÚ½’Ñ‚0 E§È(ìþÿ÷zÛJ»„F⋦ç0Œ¡ý¹órãûSN,ËS†S4"}íK‡£Íu‡u_¡Mµ}€j´²Àô¥6LWd0¾‚ë g„K@ t€W- ž*wlÝ#{D›~(Y|"ú#ƒ¡˜4h÷â£u†‘ž`Øa.4}`ŠAÜʳ Ü[à> ÷‡£á·�À5 ö1µ"È‚KÜXç\ Ÿ ù<^I'}ÎgB–´dþÎnü_óúH����IEND®B`‚IMAGE 231 ./arch/construct/town/s_house1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�Ú¥  R-¿¿¿²""ÿÿÿ���šl���tRNS�@æØf���}IDATxÚÍ’Á €0 ¼ÿÆDª*¾jD?w#qY(èm—ÀC ¯´oG µçÁ#)Øãh0Á¾\h `±…¡¯§ M&‹ßêL¡qU©³8„U°'&§ 1ÖP ŇwA%d(ì‚pþð‡åü“ Ý¿Ùè4����IEND®B`‚IMAGE 537 ./arch/ground/Mountain/s_mountain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE9��!!!�1�999BBBRRRhœœ„„„ŒŒŒœœœºººÖÖÖçççïïïÿÿÿÔÙI4��¤IDATxÚE“–Ä CÅA(vîÛM`»ë´ÔšoÂôµã{ùË/«ˆà‚éMœ}Œ–ê}–¼:I.Â!ÿ€ó¬% ÷ xÍ¢%ŸÇhA…¿@€ª´D_Z N�–@D*MŠÃ9Xh)‰„$ €ãé£Ü“ÀóWöÙŸqëÒ:#ˆØÏ–)ýXòJîÈ?À ˆT6˜é'Ÿ$0Aìç‰ÊbddFd:¾¨X°DZoXºÔÔ÷Þ'�ä6 dˆBõ �ÚÂÚA%ñ$bCoÀ§Òb…/�Ÿ%w¤ÄvwœðÙ\§ÅÂd Žâì`áÿ˜æÊ1èÐ=X8£¬9§q?�ŽÈ¨>¬€ê¯² 0� ”íØZ ¬ÿ€±Cµ"V­ÿV�¼×Í9áÖ€½ÀqüUAfÊü&è&o*³ÝÛÀòíR…À¤õoEœìÛ–Du)C&€KÀ[ïTÕ±¨Ó£€J 8­ŒþD_7èkÖ¬_J�WVß¶Éz¿™Ûu ¼úÿ¾ì¯“å/Dñ‚æ����IEND®B`‚IMAGE 217 ./arch/construct/town/s_shop1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥  R-���ÿÿÿÿ×�¿¿¿µÉ¹'���tRNS�@æØf���rIDATxÚÍ’Q € Ë-ïä6⎩¾¨>fXÚÖB Ž"•hÿHB`ÿ?Ï30Ð4°} ´'°?A7`ÈO¼d‚t€L|<¾”r›Z%{öFöYÐxfA à ³~).EËì~Û@����IEND®B`‚IMAGE 199 ./arch/construct/town/s_shop2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥  R-���ÿÿÿÿ×�¿¿¿µÉ¹'���tRNS�@æØf���`IDATxÚÕÎ1€0 A'‹ýÿ'#]ƒ8Ó$¢€mod9>-Ç=xåÀ.8`¬�Àc\»ý°xl=é -¢@ Àö*æœ$á€ÐÞ‰ê{<‚Tš}W´âWžSb„t5Á����IEND®B`‚IMAGE 195 ./arch/food/s_weasel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��ÿÒi���WHà���tRNS�@æØf���eIDATxÚÕ‘ÁÀ B)üÿ?o&%١岓Oà£*®S}¶RböË^A¯¶Ž³ JÓyÓ7ßý"…]:šÛÏ!Ð|ûœ ®ßîX.ˆ’æ/*ªÈo}*ûJ|A ªù?�¸Yn>7M����IEND®B`‚IMAGE 184 ./arch/weapon/sword/sabre.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÀÀÀ`��ªˆ4@��ÐÐЀ€€���;/���tRNS�@æØf���KIDATxÚíÍ1 À0P[¿‰÷?q³uóC!¡®O[sWã,ç}Ùq\jöZISJ’R(\“–|ÚŽÿÇïG;ÆG cùÎ<~iè·Å����IEND®B`‚IMAGE 291 ./arch/misc/Container/sack.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEGllÀ @@ �àp�`0�òÄM€@���� P�À`�(Æg���tRNS�@æØf���³IDATxÚ•ÑAƒ0 DQBH<¾ÿ…; 1®¦RG*›÷1‹ÿ­Vÿ­¤“ÍLµÓxú#¦âõž ˜,f ŠØ!W¨¥´9Hw º Z)€ÒwGWØÈ€ÐpÿðRÔJs9¬¶Â×¢bpíïçðfq`.#ß6fЯÓDàƒ#Xóv *×$†= t8ãHŒŒQ“Ó3I¼<gÛÂsïüôh;[æT����IEND®B`‚IMAGE 232 ./arch/monster/humanoid/Human/sage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ðæŒÿ��ÿÿÿ�‹‹���¿¿¿;ËsX���tRNS�@æØf���~IDATxÚÕA€ QèòÿKi=ÙèÙ Ãe3´ý2À;?ÏÏÂàca€æŒ&’³ùT qnÁWˆ#8Áý¶U@ÿ!½ÐáöÔŠ~Ü\Žžß*7Ò°åD"ð¤ÁcU¡¥ÁvaRw„! V7Â` o0"íW¹�l ð[·À����IEND®B`‚IMAGE 232 ./arch/monster/humanoid/Human/sage.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ðæŒÿ��ÿÿÿ�‹‹���¿¿¿;ËsX���tRNS�@æØf���~IDATxÚÕA€ QèòÿKi=ÙèÙ Ãe3´ý2À;?ÏÏÂàca€æŒ&’³ùT qnÁWˆ#8Áý¶U@ÿ!½ÐáöÔŠ~Ü\Žžß*7Ò°åD"ð¤ÁcU¡¥ÁvaRw„! V7Â` o0"íW¹�l ð[·À����IEND®B`‚IMAGE 232 ./arch/monster/humanoid/Human/sage.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ðæŒÿ��ÿÿÿ�‹‹���¿¿¿;ËsX���tRNS�@æØf���~IDATxÚÕA€ QèòÿKi=ÙèÙ Ãe3´ý2À;?ÏÏÂàca€æŒ&’³ùT qnÁWˆ#8Áý¶U@ÿ!½ÐáöÔŠ~Ü\Žžß*7Ò°åD"ð¤ÁcU¡¥ÁvaRw„! V7Â` o0"íW¹�l ð[·À����IEND®B`‚IMAGE 232 ./arch/monster/humanoid/Human/sage.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ðæŒÿ��ÿÿÿ�‹‹���¿¿¿;ËsX���tRNS�@æØf���~IDATxÚÕA€ QèòÿKi=ÙèÙ Ãe3´ý2À;?ÏÏÂàca€æŒ&’³ùT qnÁWˆ#8Áý¶U@ÿ!½ÐáöÔŠ~Ü\Žžß*7Ò°åD"ð¤ÁcU¡¥ÁvaRw„! V7Â` o0"íW¹�l ð[·À����IEND®B`‚IMAGE 208 ./arch/monster/humanoid/Human/sailor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¥**��ÿÒiðæŒ���O£<‚���tRNS�@æØf���lIDATxÚÕÐAÃ0DQ;™wÿ+7н,xÛŽXüoÿÐò뉚?u%ú%G=M¨yV(÷g¾¥¡8@æŒâ±¬âZÖÓmðu‚û‰î«ïÎXü(8FmlD-äE`·Š«×Æî¿”A^>—…����IEND®B`‚IMAGE 146 ./arch/armour/boots/sandals.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ R-At���tRNS�@æØf���7IDATxÚc` ÀÔ�ep­€1VA„p­Ì�«XÅ´l„±@k„ÅQ½rYª&†U4q&�‰N Wô����IEND®B`‚IMAGE 172 ./arch/monster/misc/sandy.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���TIDATÁ± ƒ0�À=Ä…‘hÒ1F*ä„!^ †(„Qr��è( Zì#¦ ãL�X  ÎÀ³$Çü>7ÛÕø¾«¾f¥ƒ–��þ,š /¦~����IEND®B`‚IMAGE 144 ./arch/monster/misc/sandy.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���8IDATÁA� �°Éñð‰ ˆB4¢»��7aÁ`�Ä#��}! ÐÀ`À,d�Àç­+2wó@����IEND®B`‚IMAGE 153 ./arch/monster/misc/sandy.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���AIDATÁÁ€0�°È¡ÇÓnÐGa4FqT���$ hœ‡«õ"1�lœÚHÀ DS Á�z �Àwö®¬¹ê����IEND®B`‚IMAGE 164 ./arch/monster/misc/sandy.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���LIDATÁ± € �ÀÓ !VÒRQ0„%ƒX8ÊÇÉÅQ¼��@‚�#³¼Î­²�£t$Àö¤`VôŒ»Mö+˜ ��üS£åÌP ����IEND®B`‚IMAGE 173 ./arch/monster/misc/sandy.115 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���UIDATÁ± EP�Ðóå¥ZC!jDTw … 6¸õŸÊ*6q��� $L ¿çĶ ¿©€S;¢�êIŽËŒk†mPu‘tH(��àÍ’ ï§Ò‚R����IEND®B`‚IMAGE 241 ./arch/jewel/sapphire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿeÎÿ�eÿ�����ÎÎÿÿ��ÿ±è£���tRNS�@æØf���‡IDATxÚíÎ1Â0DÑÌì~çþ7fAbcZ ~ãbžVÞ~.¾í^ š–Ë Ð÷\9§€j d³­^�/Ô'(Ïü{æpV©‰À2™óÝH¨™O»ÂÞÉq¯ÂV€÷Aq²#8zVã¤[Ð ŸÉÜA½½ìɾ\˜DT#¹ûíß³Lœ›ž‘����IEND®B`‚IMAGE 241 ./arch/jewel/sapphire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��� …ÿîÿÿ…îÿâ ÿ���a5s���tRNS�@æØf���‡IDATxÚíÎ1Â0DÑŒg³ÿþ7fAbcZ ~ãbžVÞ~.¾íZ š—Y2 Ð÷X+¦€j ,±­^�/Ô'(Ïü{âpr©‰@ó]ظ‰O»FÚ‰q¯Rr‚öIq–29{rㄜ[ÒKYÜA½½èYº\˜DV#¹ûíß³²Þú9Ÿ­´����IEND®B`‚IMAGE 155 ./arch/weapon/other/saw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¥**���¿¿¿¢ºðÌ���tRNS�@æØf���=IDATxÚå̱ � Ã@Ç¿ÿÎl Di/2ÏŸñÐÇË>^ô³€Ú=‰å` Ú@¨ ÊLwPþÝ,{MÇù«����IEND®B`‚IMAGE 195 ./arch/monster/animal/scorpi_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ��þO6Ð���tRNS�@æØf���hIDATxÚÕ’QÀ C×ÞÿÐËQB|ãÛF‰úŠFô¹R¶£TtpheÛ‚ìâ=`–Ê4ö#Ic1>„$æ²¾x¤M¿Xê—7ÌQ+ý‚ÑÀà2‰ß(ñæu5_•®QσJd¼N/êÔ’õË®8����IEND®B`‚IMAGE 219 ./arch/monster/animal/scorpion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���º��UUU� �-DX���tRNS�@æØf���}IDATxÚÅ‘AÄ Äºöÿÿ¼ "m*¤qÂBËu:°Á¸TPqÁ*ôýh‹káR;a‚v†inÝý¬ÐòƒzAµ›l´g*÷^ hå�FP«òp ¥ëÏ¢W!¶ò¥ë¹£šw"ïø˜èêËWÈoùK¾îÓ-I÷T����IEND®B`‚IMAGE 213 ./arch/monster/animal/scorpion.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���º��UUU� �-DX���tRNS�@æØf���wIDATxÚí’Í À ƒ;ûþ$…¬<í²Tübÿ0~jP¹ãIaó˜lK‹8e ±5dßX‚o…MXŽûD)Ò‚?Ù 5)®ÝÁ·W³A©a±ï5fáfx¯"¢‡�¯A,[È)•û¡ Y>,¯Ÿèü0¹VÓ����IEND®B`‚IMAGE 196 ./arch/ground/sea.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 200 ./arch/ground/sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���wIDATxÚ½‘1À09óÿ?W•:$õJ½)@Œ©uXˆBI�b_á<<0{ :Fø·hÕмº®ç°êˆ@çë3ï¼Q†6_iXÇÀ¨#y°i’á†xÂêCZóìÿàeKÛ÷p{÷X?=o0SèúÀ>V�ž«­Ø•����IEND®B`‚IMAGE 204 ./arch/ground/sea.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���{IDATÁË Â@�ÀÙO$ ÈÅ>^ ï°X€E,ˆýxlÂ,Åì@MH� :l“�� %¡o€”°Dzê¬è·®¼¨ @�ÂfÉ:e�«2©ͦ}À*\'”���”äÂ~õw®¾Ç Û'�àÌÎq¶bâo����IEND®B`‚IMAGE 194 ./arch/ground/sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��ÿ�ŠŠ��ÿ¿¯Ÿ@���qIDATxÚ½’á €0„ýÎ÷ç ˆºIkÔ÷CPávêâ b`ZS{ÈRt@UvB=Q¤÷žT+„yà¶åÍW{þñÅÕ5xÀ*º6RÕJõ_&ÖÐk »A%!~ÂÇFQ8½Èl¼6aø‡6/t� ÇžPŽ����IEND®B`‚IMAGE 247 ./arch/ground/sea_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠ-ŠVÿ���1������ÿ–˜ìì���tRNS�@æØf���IDATx^}‘A 1EçB¶½ƒvß’‡½Æ,JNûÓ…œÀô-òEÿñMÎ#ñ,Aâc<¯ÂLü¬BŠF ú¬)|!ñž$‘JáµDWC…2Ñ„V'j•;aðN¡ÔBü]kh‘™¡€J™¸;®ûö1ÙÅú©î"÷0ª »oÍ=®Ý–²W÷ÉŽÍg¨8ÑÓÎ����IEND®B`‚IMAGE 240 ./arch/ground/sea_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠ-ŠVÿ�������ÿŒ5Z°���tRNS�@æØf���‰IDATxÚíÁÃ0CçøÿOn#+¢„rÙy/‡D²cÃçÏ n÷Å…-Ü»IbÒ<•”eÒMzu(þäÑbšáƒ! ØD ³ÿªø= H–;&¼¬8mjžÍWBŸO%LvBBD>¹†8‚0 :¤d€kZÖí«‹¶¿ÌpŸþ 8*6s����IEND®B`‚IMAGE 235 ./arch/ground/sea_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���‡IDATxÚ¥“A€ íÿÿ²@T⎂‰c8uØb ›“Óý£` š ÏPÀî"’ª†¨r³i&Q_ ¨I]`‡ãœñž ¶ÈÙ~ÂHŸ Dº„x¢œê<$ÐtPœC>›Æ|ÔEúxYR[Z_÷Z€ñG¨PÀÃôaòm.…Z ¥[ÝÝowk¡J½¤����IEND®B`‚IMAGE 243 ./arch/ground/sea_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���ŒIDATxÚå‘AÄ ƒùÿ“µ©P¬f?Ð9pab „Äwp­ ¶nAì( °É#d‡ág{ÁÒ� øs £tðôU:ئu´wÀÆÊç=Ab‹QÏŠx`ÕW¾ºè )´†"iÿáA¬g/À„þŽÉT[ Ïˆ‚TC¦޶”áSѰ•©ø"?'ø7)#´@����IEND®B`‚IMAGE 242 ./arch/ground/sea_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�����ÿ�ŠŠ��ÿÅHO[���tRNS�@æØf���‘IDATxÚ•“AÄ †ÿ¿y÷ K‚H­}IJ:h‘q\¡É±@.£ô¹IJZÑžÚБ?S€ ¼:…G- æ~ã‹Û¾=Ï‹;Õ€^0T‚:Áò[€õd ÄBÑi ¡ ¢5@™Fò¿ÈEÛ!×ļL¦à*”ãG_Y¼ÁvõÀ#ÞÜO7|�Î!XŒµ˜„����IEND®B`‚IMAGE 1269 ./arch/ground/smooth/sea_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��ÿ�ŠŠ��ÿ ƒ/–û†µµµs欣���tRNS�@æØf��…IDATx^ÄXÁ‘Û0 4íW~L^Væ ˆÝAJH é ‡GIÆ-@c&ã·Z�‹[ ç2ˆ1Ç;Õø¸› ë5öôŸª³ú(œ©ÆOÀÝi#„ùˆ}œzß�]mFYïPn�L‹ùõóú¾º¾%6ú60 ILŒû$ÀV½i€¯ƒ³‚¡uõzßTÀ %x‹bŒœ…„Ìר׬Oq¯ßL:a½ÜŠpnô#Ìë¯@„íÚ·:ejq îEŒù„ûDÔ—K†pÇòŠaþŠÑ€»g€~N:5èÏ@ æ‡+@®>ž<!­Ìû jžC[ÅY ã�¤ÅdÛgx2 `óÞ”×|yã9Ðâ>‚@Øó‰V>~Îïö7õm`þ@¤æó (Ûk~]¦Ìc€ÀQ`˯±ò0q·¿©oo�ÌßùJQÒqÑ6@¯¿æ¢€ l0C‡Ø–Lžy`@Zp„ãB«N ¢oyã¹ ânÿ‹©ÔÚŸiÖg=߀¶£Î6Á/ÐxØA¾Ï;Šý¯ŒŸ˜Ïï*ïP²mÀ¯¼ý)Ã$6@œøæŽ²>%Nyf>ÚôM –x÷�¿åžƒ°OÍoGõíÀŸOËÇqÙÚ¸ {‡à`‚, ÈviLä¼Óé˰å#âY¢o@{ÀôŸ lÀ¸È„xÚ€î‹X�‰D+býþqÊ€]_®€u(LÐ¥ŽEìÇ2C)L:g�]\4±õW1KPð ìòe¼…©ñ,—Ä ’ºýÁ&Å_ÚË®Ï ²å…œ8“ÜÍ*Cüc€ŠaÆÆãÝ¥§‹¬ùñ €úú¯<ÖùŸAÿªª_òÈKèß¶ÕÖüðˆúm ÷„¸/é_`$„Îe_ÓöwX_˜4ß.™8ô@e…¾â àáó”LËØ�É„–OÂ@lÀ1Ó•‹mòwÀš¿™T 4e´¤×Ÿè|ƒQ%Dhù[lõíi|èŸ*·ùœÏ`.WÀš‡ŸFRy² àþl€èO{ ôÃùkİXRÿ@Sÿ0 Ðg€¹!` CÞªÑåA<âÊ©3à0k@è‘0\>½Â¦õŽ#r«Mé—J06xǃÅÏ|ç 8 (7¢L_ß^€;”‹m@1I¨T:¼ÄyÿòÑ ð¿]õ>Øãa7_€Ÿ3@¯8½ºþOûf Ѥ½€Cé^z‚zÿËu­ƒ©«y»!fÒŸ ßÊ× ï+ö=þvÚþ“ùu±e5€7n}qMùÓ Ð%ÄŒüÏ/o|‘÷ ù„[ÿŸÌ×ä‘=Ȁʋ—r\ÿæü»êP]£YŒB!„B!„B/纎qþêF¼ÃcCÐåä¯QZ×W'Ž|…ü ]£Ð$9�ê�k,"޽ùŸÅk” èÿ4€ü ]£�«¥ú„Á×+ù MfS4ðut561qOÛN·ÐÀöÝA ¼Ü����IEND®B`‚IMAGE 1300 ./arch/ground/smooth/sea_S.112 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��ÿ�ŠŠ��ÿŠêß6¡���tRNS�@æØf��°IDATx^ÔYm’â: Œ©w�)yÀž=Àfj�ÜÿP뀓^}$ ) jõ¯Ý’Zi°S†N× …[üLœÆâ¿™ ãúÏëKÁžne¬@`Õ`æIà þuú§ãúRp¸(|e„ÀªAjüEâ¸^ëÓO¬ôyC&wn>Ã<¥'‰ãz­wL?Í<j=}ª™ý¹Ò¨ 2�ï5 ®×zÇôÙàêãéö�]D¿¹˜$ŽëµÅú3§J¥®¾˜×7@`£0%FXôšÍ†Cû è+‹€öP²\,m¹•rå§(k‡PÉÂ�™ß0a$öô™}ð¬ä+öŽ ß!<zµH’Nm7äqÅ�Q_±Èo˜Îž>³ÑO#ôA'm@Ï0ÀÝM�y?Ì—YO  À*BkÙþþödb 3ß+ rû²õ‚JÜr‚Чeäb„T±ßŸ6õ}véß­õ¯¼,®8:\þ&½öÏ�8œæ|ìQøýiSÿâ)îçÏÁøõ¢å‡¶«½P9¿ñv@ÛKß'ÓÒŸ· øùýª3 \Alœ°þ zÃ�•³>ôw À€/2 0y\VO˜›òüÌ’n¼íOÏpB¶ý•ù þˆÞG¼H#D~Ø#žÏ*¼á=²g�´¿/ò×ú?k�ú¿Á€‘¹xž<`ί¢è`úŸŸ3  ­Ç<læ#éˆøæ¡øÒà úèézQŸ¸‡Va¾ó¨œðZÞÐ?» õ¯|€’êŸ&^Ð;ß”¶åWç;~ÔË‹ÂÄ_ _±ß OÞó/ýos)w/ MOv†À€a}ºÓÀz`ñq÷O +öôqãõõÉyþ~é_ëÛ*-ý+G=Y<=#Ðþ^C›‡ã7œwÔò[ÿY#=nï‹vÆE Á èŽÀ» (yMÆ^hZ>x1àŽ;£Ÿ \¨mļ½ N_ÈíašÚìíÖ”$¿xC0ù5€…Ý’^ƒY µ—Ç@à}²ZÊ„â/#wOmÁæ#QñP‹~‚‡’5�¤öKl#æã*ý=vÔ�Õ5ù5€Àª�0(ñÇ 8I†¢ 8É};”÷ck€}[žÖw@F½¹ý?>x2ùÓ<_\ù÷cÇ€ïÌ€.¿a@ù»ž+¥ÇBËŸâ–ùØÐ_™�c^=!xsqI3¯óoį| ØS8à?±ÑÿïÿP}Ö㊺õƒÑ ¨G¾à+8¢OÀ‡ê£ÿ K‚Gƒ¸ù‚s}çÔÿi׌Qˆa ¸ ¸¿ñ ’<!?Èÿ?•2ÈÂ&CÓ ËªPa0(÷²ŽËé¤ú }ûqßÎûŠßÀŽË­“êÛÐ×û:ï H|†áj}… ”ásãj}=Š`ȹZ_]!ÖïSÿøë~ž¢(Š¢(Š¢(Š¢0¼Cœ‹C9ŽØMƒ9ƒk+¡·9Gž%o@4¿wŸk+@Îçkƒ%²®y›òy+Þ†yœåÚÉ HùæÜ€¬k'¬Cw7/é»àÎl ý{Oà;ywó’®�d}¼7Xq²¾û $çó#°â�‘Ûœó= \ÈóB�è����IEND®B`‚IMAGE 1620 ./arch/ground/smooth/sea_S.113 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ���ŠŠÿ��ÿ€‚���œœœÛO���tRNS�@æØf��äIDATx^Üš]nÛ@ „Í$@_IÉiû>€ É {ãÊ«]ÍòÇY Jk´|ÊàãpÂ+ÉI¶d®N¬^jœ…ÕpÖºåߘÿó3?íËG ˆÖÅ7­ΚC·üûóQßöå#pb£¯ ~è¶ßæ1ôÿÞ| ±žÑj8+ÎJ·ý.¡o÷ÓÎ|²_ÀiX ƒÕpV'rhù[ Øà7ù²5J7*êd, Yñd[¾ÉcÏI�§ óÛ»�c½ÿ´b¢Lbõ¥ú©Ø¡ã ˜tÀM~ŸÇÛóÁ±�høa‰0ŽV«Cc5œT¸Z@ìgR~ŸÇÛóÁéÐàˆ­ïŸÐñj¿ïÇ!%øÃ¼Íùd>ã#$&ËÍ÷€>¥M£LbueÍA?.‰àò”æ´Þ3!ŸÝy%ÌO°äáDBÃâ0Ì«eÄ#DkÕK™«å…þÔ ”Ç«Î?%WÉç5aj>ô£ÎOÀøšÃÍKþ1ÝÄ¡áÙÕª_dÿ´è(_ôhÏÏæ/Þ¬›×gKäd@ë›3/<kïMuÒ7ô'ºÎXt¯NnÀC†ù™wn>eÞX�²µ3ukñ}½"³NfTožÓ½Ë÷ž{€ù¥AÜ|Ê\]o3�©˜ë{` X ÍQêÖø 𔫠oçÂóÏ®ÞÊ ëo)¯ojI‡ù¥ÿÖšŸ×îæg÷ï+ xñî'‘®ð!úèàÙ˵®ýÓ¬1Ÿ’V~ÌÏý|¹¿I©ùÜú˜5œ”9"ÁÕü?‹çŠOãõzáÁGLJ%¡à*?/ Ør}¹óG 8 oÁ¦z.ýÃyǵ_f­Î_â8àn~j¿ÆÕúI÷/þ—?# å×î¹ã:žNõY¯¾ IÂQO§<_Ö~ÅO™¯Û_4“ö8&"¿ñ4Üw`Ë]ÂèíV¶ÀvZteOºÔÚ,p.ßù?ç:ïK}ý°ÂwtÓ}?ýFÃM†þÀë§xà g¬XAÅW»ÁKAG|‡FZüÄgȈk›ÿ…@°�Ppè$¡3Pšá߯Û/Bo,�Ü,ÀË_¬ý à/_€ü ~,ç,zÓ’Ä᧬qNï¡ý»Œˆý…€ç‘é{éj~ÑàïàlûG‘îý.Ú-àCäcdèKD&‘ãp¬ütÑ17Z.už¡C.!I.òüüü=ält÷Ñí»|›Ço:d;ÿ¡›`'Ðáßÿ:öó;_þ„¿ý è&ýKúv?ÿaƒyàtÝÏ[ýñÿ„ œ’Øà§Õûå³tÌ߯ý°ËïöÍ>¥¡ âÛdª°àª=‚'òþ_¢PóvÌ›%²ˆÂæ¿ãÌ aåÑnªßóù7O@<WüøòN�Øo{þ½îEÿ: "Îpþ‰ß7¬ÈÊØ/ç¯ú×|q§ ´?òñVø6d—ºÿ<ÀU«Ô¿þÞÛD¿åâûÇó‡ö\àJ ý½n™ý‡¿þ|C׿Éý€¼n÷ÿÁßýmà¿tÉóåŽþòçS>%ô~ÀÂÏ‘¢‡Ž‹~–å¾¢êÏçx¤�:Áe�¤ýÀñ&÷¸ìʪû ýíL<ÐÁú£¶ƒØ’ý�9Ê·bÿ&üÿ¢¼ýÕZµjÕªU«V=ùèd`†kvÚ/ ™ùÈz›[vªq;0üý‚ú{œ¼c#nwpêgnú³1c<�À;vÖÅî+ h!O*Äh €>Ɐ|a´ÉÜ [?fÀ�ŒYßÄÓ¾Bp®Ç2°·nvã Ù�Š8n äô!£#˜ô_€æÄãz�¬£6�Ì€ñ};±eÌ]ð‘P:ó-Ï#BGô3§ø¾Ýˆ‘1ï#|ð[¦£åü•GùJoóêÀ÷íć”yá“[A·ÈKóÓý„Éï�`ŸÁ:íˆ7ëž2ï[ªO~�U®"#ŠÙ÷õw¡êõ}z¯����IEND®B`‚IMAGE 1460 ./arch/ground/smooth/sea_S.114 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ��ÿ�ŠŠ��ÿÃÃØ€%“þœœœ¬]ï���tRNS�@æØf��DIDATx^Ä™Qnã0 D#c÷ŸTŠîoì^ ZøÅÞÿNÛȲ‡"i) Dãç!íQ$ÁíEfæZċ€–ÞkÝ÷cÀþšþ6€ÎÞ ®qwøŒö/€ð8ñd�q9´ôNxè®ß0Ø*œ”îùûDVÎÎ/ ÝõÛþ4Ö3®4M=¿nHJ_™×bHZKïÁ@êùÝ 럵 eÙò÷ÈcIØ7*­¼³š‚¹çêñü¡pø7üwlúë†Ã›Ðó»àƒ0ªe}—p÷�‡§–Àx�¡akÀþÎv•ÚÖió'ÿj0§zš“8C7Mf 2‘HáÕ$xý™LÉ‹ʉúòŠó|[Y¯FZ¾ê‹ÓŽÊšÉ<Bæ2€K€ãÅæ�.û“ä6~–\×/žÎ1hTöýÁà5ðp¾H_©T3�p�0<­�Pú-/ƒe绾)ïÌQµˆ,ýŠgÝ�ýé�Žúàº~à¨�·kL?298|l +×þ•³»U<k¯?«d5÷@@}µRZ|«¿¤Ëyvç!` âJs&½5Šú·vØúv‡Ì¥« Z¾óUh¨¿šøÅûKÀÖ÷`~ �~ €ÕDi*\¢_ŸžÀ~v˜þ¸)ªHâh� Ä$w>L+C¿~?�Û�WÛá ÀŸ„Ô ©�Òy�ÔêoêƒÛúéá�h(€¸Ì5œ¾µX¡…£ç2ŸŸ €QéÙú…Ÿ�ÓUð–Ï`šï\†%YáU˜~}�C!hQÿzCÓêm oo‚‘ù-!�ŸŸ×tç;¸k‘ÅÎá�Wõ1ÿ¬Á¯43ꃮëï\XÁûK Ïs¾‡o]o˜[Åí1›ü6XD\[P?»ªþÁI.ŠŸ xý—yÇ•¡PÚßI¬·ÏQbÚ9îÇpösðêÆ€l€ êR¸‹ã;ƒäë4à#‰`_?g ²ÙTñf�W•¼åÍ�ÀÑ�8óÚ@¬¼…›ëg]Æ]Ë;à¸ßÑ”·LÍ[ŸÃo‹ Àr(�ü@q6]ž4Sh:ƒÃûúv †Sé?¸Z ~$¬8ôSÃ1Œ’þX�ôX�6aБ�ˆ~ | µð”ö� % Thæë¿ ^ Ç>‡ Ð[-tÀÆIè2–|¿@Û�þê?uYî`|n ÿo~ÿ£Â‹Å½aqáWho†“ÿl0–~ï‡ðã~.ãú»f”Ó0Q»üðé¡ Û„rn áǪ'µ•í$Øù{ŠÆ»™Zª»lñjþþÇü\ šÿ÷ù?¿ø–¨Ì Ó€k@í?õùñ¨ß¿;À±¯ìѰÜoýþ:€%°”`¿9oúQøa¹_*ÿ9ñ $  …°í @â^>¶ü(üpæó³ãïß~Kü’ØišW,9±´žÍAêNýå ˆ˜3Ê�xjÒ�ßOÁçkÒÃ<x©ïÏ’¿W . MDÚByþžö8555555555555ùâ`µ‘)UÅ¿SÊ<.WœÛMqÊžò®Áùâ�ঞ›Ú„ ¤ �qß`çç| Ìû>~öúþürÜgÜ{át\KÆï\’kÜ«§ÛL9²°ƒõN�<±{ æeê‘ óöбr�3[Ü7lÎŽ¾¿0L¼³®<4€æ-àõù9Ýgˆxý]ËÇ}„•%pýÜÏ[¹™×÷zÌúÅ£À^ŽãµnöÑߣúÝð ÿ‰r®ú¥…����IEND®B`‚IMAGE 275 ./arch/armour/cloak/serp_cloak.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�0™0eÎ0�e� ��¨fŽ���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 204 ./arch/monster/misc/serpmen/serp_man.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""¿¿¿.‹W�Í����ÉK���tRNS�@æØf���hIDATxÚå‘A À0[Ýùÿ—Û„xÒÆ^K…ÈŒØã¯ × {AjØašöfrgÉ¥ [ÔÌÀ žaÜWÁgN(ÚãáL!ÁÅp©Bz Ñ­IÙF…ü—&ë7G#|±.w†Ož¢����IEND®B`‚IMAGE 207 ./arch/monster/misc/serpmen/serp_man.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""¿¿¿.‹W�Í����ÉK���tRNS�@æØf���kIDATxÚå1€0crûÿ/ ±‘ÂÊ‘Éb÷® ýv€š¥ðŽÃ6®k>И ¢›<mèÛÎÝ`‚}Ϋ!â© 7ÈŽMpái²û8ׂδœÚ[AëS·±JƒV _œw—K8ŠÐ´����IEND®B`‚IMAGE 202 ./arch/monster/misc/serpmen/serp_man.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""¿¿¿�Í�.‹W���6ý½���tRNS�@æØf���fIDATxÚåÐA €0CQuòïe YJœµZG*=þXƧx’¶Š¸„ýúß3HLÌpÁ@@ÃÁ…JI,ž <íÙñ)"ŸbdA6JK^}PÙ=,ó”|/7†XWõOÅ[����IEND®B`‚IMAGE 204 ./arch/monster/misc/serpmen/serp_man.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""¿¿¿�Í�.‹W���6ý½���tRNS�@æØf���hIDATxÚåÌA€@CQé¿ÿ•­cH\�&°é£Ûÿèsi½ ÄKS¹€øŸÞZ8È LƒB8áÖ@Z²Hp®D)^!F§ ^,TæËt¹O9§}-ß›©PPÍ)‚����IEND®B`‚IMAGE 204 ./arch/monster/misc/serpmen/serp_priest.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""¿¿¿�Í�ÿÿÿ���Šþ���tRNS�@æØf���eIDATxÚå‘A€0Õ²óÿ'›Ü*p6îu& ¥Ç?ô|‹^€IWè±$º~Y`4 ôÎX(ßBr…Í�7D {ài颺prQ~’y%؈P'xBލ*l§êHøÅÜÛa_K‚†����IEND®B`‚IMAGE 203 ./arch/monster/misc/serpmen/serp_priest.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""@@@�Í�ÿÿÿ¿¿¿���åà���tRNS�@æØf���dIDATxÚåŽ1€0  ïÿOF.êF¼0!<d¹“ñË�™Ïc’ °;xù„¤¤`Aae$àŒ4ì'Å#_wñŠ_B¹fç”Ê ¶Ál˜÷‚ª:Î=¡ê¸#ó%i|+ÐEa’¢[����IEND®B`‚IMAGE 172 ./arch/monster/giant/serpent/serpent.x31 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE���.‹Wÿ��±ó���tRNS�@æØf���QIDATxÚí9 � ÿ´ÅÂ"Ñ"’N2̬Ž.Àõ×÷(<ßøÆìŽáW€_ePÈ>Êí‚X@»¼hò¶HšEg¹p^„ð+ þR�u››ý����IEND®B`‚IMAGE 174 ./arch/monster/giant/serpent/serpent.x32 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE���.‹Wÿ��±ó���tRNS�@æØf���SIDATxÚí‘A � Óÿ?ºƒ‘,]Ì¥Kì"Á)‡/06oÆåB@V¸-ðíi}‹{FŽG•tØ”ù8@W0àê L†º¼Ïþ~þ¨…ø– ë~�{d¸¹Q����IEND®B`‚IMAGE 174 ./arch/monster/giant/serpent/serpent.x71 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE���.‹Wÿ��±ó���tRNS�@æØf���SIDATxÚí’Á �=ÿÿÑJLí ûnÚ9 5Ó*­(2Èõ%KŸ¸¾¬ñ­f™8($^|àpf%p((è\}±áÝú{_p¿É~.Šâgûö�×®©!����IEND®B`‚IMAGE 174 ./arch/monster/giant/serpent/serpent.x72 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE���.‹Wÿ��±ó���tRNS�@æØf���SIDAT(‘c` ÀÏ€&‚¦�CÀ1‰”dt`h€pXXC@pÃD]@â0ÛBD€zDaÚYDA\$;XCÀÉ Œîð!�:û ªÿ«¥°����IEND®B`‚IMAGE 200 ./arch/monster/misc/serpmen/serpman_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿ¿¿¿ R-���¼æ���tRNS�@æØf���dIDATxÚíA€0…²ÿÿ² ݘXÔ³‰½Í(ÛÏ;¸Õ>QÒtÀGá¸öG�C÷΂CX£ùYh[ Ðf!Âb)hs%_œ‚*PqÏVy´#iù5AÚÇ{K|xÒ4=½ºŠ����IEND®B`‚IMAGE 210 ./arch/ground/shallow_sea.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ²ÿx¦ýe���IDATÁ±Q1ÀWÏ•@.FEP¡S<Øëg \%(!¿@ÃnÀƒ€oê'ÚÄ=xá-�È'dó¹€0x?[n~˜d› P‹@g0‚NÔªKf]tgîca¬�u6‚Ý‘qø€ü5 �£9§PÇøú›Z*€þJTªÎ —£‘����IEND®B`‚IMAGE 214 ./arch/ground/shallow_sea.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ²ÿx¦ýe���…IDATÁ±mÃ0�ÀŸG#x€ Ã\dIa#ˆŽ6Ù3€b‘X¾ ¸½ˆcÁ #ÿ¡‚�ä¤C­ �ዳ–œ. v­èE @Ð<§Pú|,¹~/–è+v†¿=ð2'¤O?@�BŸŽ%Fóü-->¹M=u𕞪¢ˆÓÔé����IEND®B`‚IMAGE 216 ./arch/ground/shallow_sea.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ²ÿx¦ýe���‡IDATÁ±MÅ@ÀW¥#*ANèç'|Y¾9qÎA¢BJØ6°˜ 7”€ÑBƒàÄ î{�“ÙÈ*žX³œÕy³ØÉú[Ž"^M�3�ò+l³Ç%×¼@vsc\ápw<Î2‚÷ ™ D@˜ÍÜ>Õxøyü(úx _ �ÿõ­e ùŠ����IEND®B`‚IMAGE 210 ./arch/ground/shallow_sea.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ÿ�ŠŠ²ÿx¦ýe���IDATÁ±mÃ0À7‡GÐ )< »Ï(©Aºˆ] ˆ#°|`@@MáágÅôÆ€�äl 佨‰�„½éãÊÙ~«gÞËI#P“�*�š fÝr7ȵ¿P_;ÐAÈ1¬}@8ü ¦ö/ß}¨©b>)ªˆcÁ����IEND®B`‚IMAGE 1269 ./arch/ground/smooth/shallow_sea_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ²ÿ�ŠŠ��ÿ² ´/–û((µµµµ®û9���tRNS�@æØf��…IDATx^ÄXÁ‘Û0 4íW~L^Væ ˆÝAJH é ‡GIÆ-@c&ã·Z�‹[ ç2ˆ1Ç;Õø¸› ë5öôŸª³ú(œ©ÆOÀÝi#„ùˆ}œzß�]mFYïPn�L‹ùõóú¾º¾%6ú60 ILŒû$ÀV½i€¯ƒ³‚¡uõzßTÀ %x‹bŒœ…„Ìר׬Oq¯ßL:a½ÜŠpnô#Ìë¯@„íÚ·:ejq îEŒù„ûDÔ—K†pÇòŠaþŠÑ€»g€~N:5èÏ@ æ‡+@®>ž<!­Ìû jžC[ÅY ã�¤ÅdÛgx2 `óÞ”×|yã9Ðâ>‚@Øó‰V>~Îïö7õm`þ@¤æó (Ûk~]¦Ìc€ÀQ`˯±ò0q·¿©oo�ÌßùJQÒqÑ6@¯¿æ¢€ l0C‡Ø–Lžy`@Zp„ãB«N ¢oyã¹ ânÿ‹©ÔÚŸiÖg=߀¶£Î6Á/ÐxØA¾Ï;Šý¯ŒŸ˜Ïï*ïP²mÀ¯¼ý)Ã$6@œøæŽ²>%Nyf>ÚôM –x÷�¿åžƒ°OÍoGõíÀŸOËÇqÙÚ¸ {‡à`‚, ÈviLä¼Óé˰å#âY¢o@{ÀôŸ lÀ¸È„xÚ€î‹X�‰D+býþqÊ€]_®€u(LÐ¥ŽEìÇ2C)L:g�]\4±õW1KPð ìòe¼…©ñ,—Ä ’ºýÁ&Å_ÚË®Ï ²å…œ8“ÜÍ*Cüc€ŠaÆÆãÝ¥§‹¬ùñ €úú¯<ÖùŸAÿªª_òÈKèß¶ÕÖüðˆúm ÷„¸/é_`$„Îe_ÓöwX_˜4ß.™8ô@e…¾â àáó”LËØ�É„–OÂ@lÀ1Ó•‹mòwÀš¿™T 4e´¤×Ÿè|ƒQ%Dhù[lõíi|èŸ*·ùœÏ`.WÀš‡ŸFRy² àþl€èO{ ôÃùkİXRÿ@Sÿ0 Ðg€¹!` CÞªÑåA<âÊ©3à0k@è‘0\>½Â¦õŽ#r«Mé—J06xǃÅÏ|ç 8 (7¢L_ß^€;”‹m@1I¨T:¼ÄyÿòÑ ð¿]õ>Øãa7_€Ÿ3@¯8½ºþOûf Ѥ½€Cé^z‚zÿËu­ƒ©«y»!fÒŸ ßÊ× ï+ö=þvÚþ“ùu±e5€7n}qMùÓ Ð%ÄŒüÏ/o|‘÷ ù„[ÿŸÌ×ä‘=Ȁʋ—r\ÿæü»êP]£YŒB!„B!„B/纎qþêF¼ÃcCÐåä¯QZ×W'Ž|…ü ]£Ð$9�ê�k,"޽ùŸÅk” èÿ4€ü ]£�«¥ú„Á×+ù MfS4ðut561qOÛN·ÐÀöÝA ¼Ü����IEND®B`‚IMAGE 1300 ./arch/ground/smooth/shallow_sea_S.112 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ²ÿ�ŠŠ��ÿ11¶QÄ`*���tRNS�@æØf��°IDATx^ÔYm’â: Œ©w�)yÀž=Àfj�ÜÿP뀓^}$ ) jõ¯Ý’Zi°S†N× …[üLœÆâ¿™ ãúÏëKÁžne¬@`Õ`æIà þuú§ãúRp¸(|e„ÀªAjüEâ¸^ëÓO¬ôyC&wn>Ã<¥'‰ãz­wL?Í<j=}ª™ý¹Ò¨ 2�ï5 ®×zÇôÙàêãéö�]D¿¹˜$ŽëµÅú3§J¥®¾˜×7@`£0%FXôšÍ†Cû è+‹€öP²\,m¹•rå§(k‡PÉÂ�™ß0a$öô™}ð¬ä+öŽ ß!<zµH’Nm7äqÅ�Q_±Èo˜Îž>³ÑO#ôA'm@Ï0ÀÝM�y?Ì—YO  À*BkÙþþödb 3ß+ rû²õ‚JÜr‚Чeäb„T±ßŸ6õ}véß­õ¯¼,®8:\þ&½öÏ�8œæ|ìQøýiSÿâ)îçÏÁøõ¢å‡¶«½P9¿ñv@ÛKß'ÓÒŸ· øùýª3 \Alœ°þ zÃ�•³>ôw À€/2 0y\VO˜›òüÌ’n¼íOÏpB¶ý•ù þˆÞG¼H#D~Ø#žÏ*¼á=²g�´¿/ò×ú?k�ú¿Á€‘¹xž<`ί¢è`úŸŸ3  ­Ç<læ#éˆøæ¡øÒà úèézQŸ¸‡Va¾ó¨œðZÞÐ?» õ¯|€’êŸ&^Ð;ß”¶åWç;~ÔË‹ÂÄ_ _±ß OÞó/ýos)w/ MOv†À€a}ºÓÀz`ñq÷O +öôqãõõÉyþ~é_ëÛ*-ý+G=Y<=#Ðþ^C›‡ã7œwÔò[ÿY#=nï‹vÆE Á èŽÀ» (yMÆ^hZ>x1àŽ;£Ÿ \¨mļ½ N_ÈíašÚìíÖ”$¿xC0ù5€…Ý’^ƒY µ—Ç@à}²ZÊ„â/#wOmÁæ#QñP‹~‚‡’5�¤öKl#æã*ý=vÔ�Õ5ù5€Àª�0(ñÇ 8I†¢ 8É};”÷ck€}[žÖw@F½¹ý?>x2ùÓ<_\ù÷cÇ€ïÌ€.¿a@ù»ž+¥ÇBËŸâ–ùØÐ_™�c^=!xsqI3¯óoį| ØS8à?±ÑÿïÿP}Ö㊺õƒÑ ¨G¾à+8¢OÀ‡ê£ÿ K‚Gƒ¸ù‚s}çÔÿi׌Qˆa ¸ ¸¿ñ ’<!?Èÿ?•2ÈÂ&CÓ ËªPa0(÷²ŽËé¤ú }ûqßÎûŠßÀŽË­“êÛÐ×û:ï H|†áj}… ”ásãj}=Š`ȹZ_]!ÖïSÿøë~ž¢(Š¢(Š¢(Š¢0¼Cœ‹C9ŽØMƒ9ƒk+¡·9Gž%o@4¿wŸk+@Îçkƒ%²®y›òy+Þ†yœåÚÉ HùæÜ€¬k'¬Cw7/é»àÎl ý{Oà;ywó’®�d}¼7Xq²¾û $çó#°â�‘Ûœó= \ÈóB�è����IEND®B`‚IMAGE 1620 ./arch/ground/smooth/shallow_sea_S.113 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ²�ŠŠÿ��ÿ²³���œœœa²Y���tRNS�@æØf��äIDATx^Üš]nÛ@ „Í$@_IÉiû>€ É {ãÊ«]ÍòÇY Jk´|ÊàãpÂ+ÉI¶d®N¬^jœ…ÕpÖºåߘÿó3?íËG ˆÖÅ7­ΚC·üûóQßöå#pb£¯ ~è¶ßæ1ôÿÞ| ±žÑj8+ÎJ·ý.¡o÷ÓÎ|²_ÀiX ƒÕpV'rhù[ Øà7ù²5J7*êd, Yñd[¾ÉcÏI�§ óÛ»�c½ÿ´b¢Lbõ¥ú©Ø¡ã ˜tÀM~ŸÇÛóÁ±�høa‰0ŽV«Cc5œT¸Z@ìgR~ŸÇÛóÁéÐàˆ­ïŸÐñj¿ïÇ!%øÃ¼Íùd>ã#$&ËÍ÷€>¥M£LbueÍA?.‰àò”æ´Þ3!ŸÝy%ÌO°äáDBÃâ0Ì«eÄ#DkÕK™«å…þÔ ”Ç«Î?%WÉç5aj>ô£ÎOÀøšÃÍKþ1ÝÄ¡áÙÕª_dÿ´è(_ôhÏÏæ/Þ¬›×gKäd@ë›3/<kïMuÒ7ô'ºÎXt¯NnÀC†ù™wn>eÞX�²µ3ukñ}½"³NfTožÓ½Ë÷ž{€ù¥AÜ|Ê\]o3�©˜ë{` X ÍQêÖø 𔫠oçÂóÏ®ÞÊ ëo)¯ojI‡ù¥ÿÖšŸ×îæg÷ï+ xñî'‘®ð!úèàÙ˵®ýÓ¬1Ÿ’V~ÌÏý|¹¿I©ùÜú˜5œ”9"ÁÕü?‹çŠOãõzáÁGLJ%¡à*?/ Ør}¹óG 8 oÁ¦z.ýÃyǵ_f­Î_â8àn~j¿ÆÕúI÷/þ—?# å×î¹ã:žNõY¯¾ IÂQO§<_Ö~ÅO™¯Û_4“ö8&"¿ñ4Üw`Ë]ÂèíV¶ÀvZteOºÔÚ,p.ßù?ç:ïK}ý°ÂwtÓ}?ýFÃM†þÀë§xà g¬XAÅW»ÁKAG|‡FZüÄgȈk›ÿ…@°�Ppè$¡3Pšá߯Û/Bo,�Ü,ÀË_¬ý à/_€ü ~,ç,zÓ’Ä᧬qNï¡ý»Œˆý…€ç‘é{éj~ÑàïàlûG‘îý.Ú-àCäcdèKD&‘ãp¬ütÑ17Z.už¡C.!I.òüüü=ält÷Ñí»|›Ço:d;ÿ¡›`'Ðáßÿ:öó;_þ„¿ý è&ýKúv?ÿaƒyàtÝÏ[ýñÿ„ œ’Øà§Õûå³tÌ߯ý°ËïöÍ>¥¡ âÛdª°àª=‚'òþ_¢PóvÌ›%²ˆÂæ¿ãÌ aåÑnªßóù7O@<WüøòN�Øo{þ½îEÿ: "Îpþ‰ß7¬ÈÊØ/ç¯ú×|q§ ´?òñVø6d—ºÿ<ÀU«Ô¿þÞÛD¿åâûÇó‡ö\àJ ý½n™ý‡¿þ|C׿Éý€¼n÷ÿÁßýmà¿tÉóåŽþòçS>%ô~ÀÂÏ‘¢‡Ž‹~–å¾¢êÏçx¤�:Áe�¤ýÀñ&÷¸ìʪû ýíL<ÐÁú£¶ƒØ’ý�9Ê·bÿ&üÿ¢¼ýÕZµjÕªU«V=ùèd`†kvÚ/ ™ùÈz›[vªq;0üý‚ú{œ¼c#nwpêgnú³1c<�À;vÖÅî+ h!O*Äh €>Ɐ|a´ÉÜ [?fÀ�ŒYßÄÓ¾Bp®Ç2°·nvã Ù�Š8n äô!£#˜ô_€æÄãz�¬£6�Ì€ñ};±eÌ]ð‘P:ó-Ï#BGô3§ø¾Ýˆ‘1ï#|ð[¦£åü•GùJoóêÀ÷íć”yá“[A·ÈKóÓý„Éï�`ŸÁ:íˆ7ëž2ï[ªO~�U®"#ŠÙ÷õw¡êõ}z¯����IEND®B`‚IMAGE 1460 ./arch/ground/smooth/shallow_sea_S.114 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿ²ÿ�ŠŠ��ÿÇÇá²%“þœœœÊ¸TÊ���tRNS�@æØf��DIDATx^Ä™Qnã0 D#c÷ŸTŠîoì^ ZøÅÞÿNÛȲ‡"i) Dãç!íQ$ÁíEfæZċ€–ÞkÝ÷cÀþšþ6€ÎÞ ®qwøŒö/€ð8ñd�q9´ôNxè®ß0Ø*œ”îùûDVÎÎ/ ÝõÛþ4Ö3®4M=¿nHJ_™×bHZKïÁ@êùÝ 럵 eÙò÷ÈcIØ7*­¼³š‚¹çêñü¡pø7üwlúë†Ã›Ðó»àƒ0ªe}—p÷�‡§–Àx�¡akÀþÎv•ÚÖió'ÿj0§zš“8C7Mf 2‘HáÕ$xý™LÉ‹ʉúòŠó|[Y¯FZ¾ê‹ÓŽÊšÉ<Bæ2€K€ãÅæ�.û“ä6~–\×/žÎ1hTöýÁà5ðp¾H_©T3�p�0<­�Pú-/ƒe绾)ïÌQµˆ,ýŠgÝ�ýé�Žúàº~à¨�·kL?298|l +×þ•³»U<k¯?«d5÷@@}µRZ|«¿¤Ëyvç!` âJs&½5Šú·vØúv‡Ì¥« Z¾óUh¨¿šøÅûKÀÖ÷`~ �~ €ÕDi*\¢_ŸžÀ~v˜þ¸)ªHâh� Ä$w>L+C¿~?�Û�WÛá ÀŸ„Ô ©�Òy�ÔêoêƒÛúéá�h(€¸Ì5œ¾µX¡…£ç2ŸŸ €QéÙú…Ÿ�ÓUð–Ï`šï\†%YáU˜~}�C!hQÿzCÓêm oo‚‘ù-!�ŸŸ×tç;¸k‘ÅÎá�Wõ1ÿ¬Á¯43ꃮëï\XÁûK Ïs¾‡o]o˜[Åí1›ü6XD\[P?»ªþÁI.ŠŸ xý—yÇ•¡PÚßI¬·ÏQbÚ9îÇpösðêÆ€l€ êR¸‹ã;ƒäë4à#‰`_?g ²ÙTñf�W•¼åÍ�ÀÑ�8óÚ@¬¼…›ëg]Æ]Ë;à¸ßÑ”·LÍ[ŸÃo‹ Àr(�ü@q6]ž4Sh:ƒÃûúv †Sé?¸Z ~$¬8ôSÃ1Œ’þX�ôX�6aБ�ˆ~ | µð”ö� % Thæë¿ ^ Ç>‡ Ð[-tÀÆIè2–|¿@Û�þê?uYî`|n ÿo~ÿ£Â‹Å½aqáWho†“ÿl0–~ï‡ðã~.ãú»f”Ó0Q»üðé¡ Û„rn áǪ'µ•í$Øù{ŠÆ»™Zª»lñjþþÇü\ šÿ÷ù?¿ø–¨Ì Ó€k@í?õùñ¨ß¿;À±¯ìѰÜoýþ:€%°”`¿9oúQøa¹_*ÿ9ñ $  …°í @â^>¶ü(üpæó³ãïß~Kü’ØišW,9±´žÍAêNýå ˆ˜3Ê�xjÒ�ßOÁçkÒÃ<x©ïÏ’¿W . MDÚByþžö8555555555555ùâ`µ‘)UÅ¿SÊ<.WœÛMqÊžò®Áùâ�ঞ›Ú„ ¤ �qß`çç| Ìû>~öúþürÜgÜ{át\KÆï\’kÜ«§ÛL9²°ƒõN�<±{ æeê‘ óöбr�3[Ü7lÎŽ¾¿0L¼³®<4€æ-àõù9Ýgˆxý]ËÇ}„•%pýÜÏ[¹™×÷zÌúÅ£À^ŽãµnöÑߣúÝð ÿ‰r®ú¥…����IEND®B`‚IMAGE 255 ./arch/monster/animal/farmyard/sheep.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿÿÿÿ�™ÌÌÌ���Ùê$���tRNS�@æØf���žIDATxÚ½‘Q Å ]fïæÇª”°¯c –blÇŸpx‹1Â¾ç ‰[3WÁáëˆ+µG–_®jîÌ|Jˆ$@‹v‚%«@Œú)gJÖÚ„s[›í¤‚ĉŸf]z�q¬æÞup‘h‰:DXx_pÕ* € 6Úq="ù]�Tg¢ÿhcÓ…f|!¸¡ v{û’ˆ‡S����IEND®B`‚IMAGE 260 ./arch/monster/animal/farmyard/sheep.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿÿÿÿ�™ÌÌÌ���Ùê$���tRNS�@æØf���£IDATxÚ½Qà C‰ìûŸyáuc-ýªæ@ÔÈ/2’§îl…¬ñô#¤Ž°ÒP õ€M»ÝÏhµýšò-ÀrÑ;â’øÿÆWlr®2ÄÕM"¢½d 0¸kd.�、Q€Ï¦ŸœÛå%8Ø�åŠñþM2�Øt¬) _' /‰)* Œ I-@EÙTOS{p"Gõ/½�˜-y?…”����IEND®B`‚IMAGE 311 ./arch/armour/shield/shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE���Ι�ÎÎÎîîª‰‰‰�0î�eÿººº00Î��‰0™ÿ��º0,™uuuÿÎ�UUUÿÿ���œwä���tRNS�@æØf���¬IDATxÚÅÓ˃0 DQ^áßÿÿØZº€8l*u”ݼ‰ü!<õP+ ÑB 2-@Ÿ 4óÌcw€×   `Û𨪀¢»P\�`ÝÑ¿¼tÛ{ƒ áÓžÀä¼¢çó2!W2`ÀˆäVÂpœ9–A Xi¯ó�(.VÔJ3½¤�"€1 M É�âƒäá r8�â ÀÓÇùqÞS°ìŠÉ����IEND®B`‚IMAGE 203 ./arch/monster/humanoid/siegfried.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-ÿÿÿ.‹W�‹‹���}�{‰���tRNS�@æØf���gIDATxÚÕ’A€ +2ÿÿ²]<xbâQ·éB²“†&Ôÿx9p¼�|BZò®˜�S‚È"?ˆï—‘܉à$’<bÑ™°}C™ª [WZlrùuàÀM<Gdà·t28brèÙ����IEND®B`‚IMAGE 196 ./arch/monster/humanoid/siegfried.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-ÿÿÿ.‹W�‹‹���}�{‰���tRNS�@æØf���`IDATxÚÕ1À Ä(Åÿÿråwm/JˆtÖ‰Œÿ h_5p½E°À>û–#€•�"qˆñçù ý&F�7*|Å,3&‘€MþÁ&¬q$Àv£�×Tåã üý|K ."úÍ­����IEND®B`‚IMAGE 220 ./arch/jewel/silvercoin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE‰‰‰UUUîîîÞÞÞe0�ÿÿÿ /ùÕ���tRNSÿÿDÿÿ�yÌm$���pIDATxÚÝ“Q €0 CãÔÞÿȳƒòPý_~ÆØ#$-Óý£ý€XêÐùHa�ïc % «©:¢w KãðÎ"–C�4L©œ�hØ88xÃO‡uc„ ƒ‚°uغ °(X<�#6ü8lò±û¤‘^����IEND®B`‚IMAGE 345 ./arch/monster/undead/Skeletal_mage/skeletalmage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���Ιee0�ªªªzÿeh�0µ�™™™ººº™e0 ÞÞÞ?B¶���tRNS�@æØf���àIDATxÚ¥’nÅ EßölQ<ÿÿ½ãjÃÒµ6Ù†QTN¯}ýÞ€çx¯oHz�†fŸíƒÛ* ˆ; F3&ÛXç [�îžÀ_˜¶¨½ëOY�D˜ŽÜ-à• êüR?Ÿ�РÍCA0µG|Ûq*“í÷ [ ‰$º© ’L(FT8ÕAßïżìH¢' [)ûÆ …2H`:�.@¨›FÇ®wAN:D_ߦ‚O€ÎÃZÁP>â9Tù¢üGØ•žûtgÀ‡Ñ£}{š°‚-y­TÜ/Ñ–.à,·J����IEND®B`‚IMAGE 338 ./arch/monster/undead/Skeletal_mage/skeletalmage.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���Ιee0�ªªªzÿe0µ�™™™h�ººº™e0 ÞÞÞË4Ç���tRNS�@æØf���ÙIDATxÚ¥Ñj…0 …a·iMsþ÷Þ¢÷N‡-Œµ”Dò‘†ºü}óºâ‹‰D g|ö�{ì°xáÝ8lg:Ãr¼“Ì|�ì,Œ;�6•Öº¶Ý`ßpRp%Öµêî3°¦H×!„‚8@¾êU$ÏŽàë·Õ=ÂßgGûÞ8EMG®JÒ²G^ßÁëÝ¡äà%/<øYø MBj ·@>“h–@4¡ÎôŠÿÍ‚ä¯r"‘y„;ÈZñéfw‚wuÊrø¦o–ûCUCõY����IEND®B`‚IMAGE 351 ./arch/monster/undead/Skeletal_mage/skeletalmage.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���Ιee0�ªªª™™™zÿeh�0µ�ººº™e0 ÞÞÞkU‹���tRNS�@æØf���æIDATxÚ¥‘ŽÄ E»3Z-¼ûŸw~ ™­kìf2Âóƒíö¹S.R;{ò‡do:4².  ˆÇñs!*u?ÃÞB o)Z­J£C×*d^@ÞQÙ¬6!—^ªSs(Ìldê€gzVíz…©µl#m”È«Ýéî襌-ÞœjÚáfà„¤"ž€m“ æ,€SA^bGa&BAÞDÝV AÆK…Å+¢·ö Ä‡*,` H×¾™Á‘Ê=°Ýx�~;ƒö¿-¾�èô¨Ì¿ÛpÇ,ÝX®õë9„Z¡dÁ¡N/Ô#±YòK����IEND®B`‚IMAGE 266 ./arch/monster/undead/skeleton.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ªªª™™™ººº ÞÞÞÓÊ—���tRNS�@æØf���£IDATxÚ¥’ ! ­ÉÎÿŸÜÞöH‹Ô@1 +É7ÞèëŠmýL€Œ¤‚`ràa™M£ñ(!ûW�qÉ~H¡`Ó¥;X™ †;XËl]®H“r>/RTýÎW‡›,â³Ådû2Qs@P¹5˜~¨ýçÝ[ODûG PxíëÔzðj¯8óbC$™oYJ„(u,é“Ö*?Äoï+����IEND®B`‚IMAGE 269 ./arch/monster/undead/skeleton.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ªªª™™™ººº ÞÞÞÓÊ—���tRNS�@æØf���¦IDATxÚ¥’!ƒ7¡ßû?ò͸˜Émõ‡@¬Ñ×S�=/{ÓòS0h¸9Àæ<÷PÀÝùåÌ‘q¡j‘%$£j¥È]sgW^d2XéU‘$¾;8)â°ïi‚´à&΋ðmUéêp-o@Ó!! š³kh”�õ‚X ŸµbõGüçÁ&yÿŽ„û •@ˆŠC‚¥ˆE�OÕ¨]·����IEND®B`‚IMAGE 370 ./arch/monster/undead/skeleton_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE��� ÞÞÞººº™™™‰‰‰uuuªªªUUUÎÎÎeeeΙ�™e�Þ��e��ÿÎ�ñ�b���tRNS�@æØf���íIDATx^¥‹Š…0 ;IúPïëÿ¿vÏV.•¢Â²'•f8ÓŸÜ1ðhpná­¹KÈE7ÎàýŠ×»@9­ š¬}à6 t<š›¥c03ÑÁ[›5Ü ì¹w܃ΈN„Zr)u[*óå.þ–=œ0QÁ›Øš—¥$ûØà ¿|•Q@ºÃ£ócʦ¿!�fij@ ÈÇÉO>³!^!ºñôoÃVMÅ=“x@šÂ¢T“ 6áñ'*Np6JpÒEvx#ˆuáÎÈôï2ô†DâÂ0Ü1ÛׄzpÍa+“‚FzßGüž¡çýV*F����IEND®B`‚IMAGE 323 ./arch/monster/undead/skeleton_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE��� ™™™ªªªºººÎ™�Þ��ÞÞÞÿÎ�ÿÿÿ!Ü‹���tRNS�@æØf���ÐIDATxÚ­’Ûv„0 w”˜ýÿ.¹ì)$uŸª“˜M„cxý¿˜5Á¨9p•¿"µÜ}-€7@ÞñæÔªg—AI€.µù9 ‰WNÌ„ k!üC`»í•М‡0¡ó"ã@;qpå#C[Â<�Aé¹3a|Qøø'Á<†Ñ/·O?F‹¢,o¡ó”~Í¢ó‘O¤í€”üV=¹ð% ý °ædvõ^¥ú™í.tÙÍϤڔû¨Ù ’㨠-Ö40·§6¡‘´ø¹¾÷¼j+k(����IEND®B`‚IMAGE 500 ./arch/monster/undead/skree/skree.x31 ‰PNG  ��� IHDR���@���@���·ì���!PLTE���ÿ×�ðæŒ²""���@@@ÿ¥�D¬éè���tRNS�@æØf��IDATxÚíÖÑ’ƒ0PC1—íÿð.Ë�uÒ˜h^e|hb8!EgÜžxbXͬ¬å«°Ôò/nDJÜ@ � 7D$ ?ó„&5À•" µ~0 TA1Ûü#Pë5Eð T gçz �Ž „—6y†°<°¿ö9ùø#Èþ2AÆ‚àÿRh¿%„q ¹¿å«°ûpè<‘.ŒÈ/…¨!0HD< ¬Cœ•�¤�M+ö;„ ÐRp ^. È�P´² ¶¬Â¢¸�¡âù*@'º@Ò°ýcÎ ø ð ÊÉ¢ã#:]HÀWÏ~4Šˆúm„‚œµcÔd’à�€‹€àÐÜrh…vÑPaP!ªn„iÒ ­wb'Ѓ—1'°à¬0çyÀfð_̖ЖÌ<òol€‡ zõÿÆ<ª-5 „�ê´Aïq�5 mH°\ð­RfŽé¾àºñ•ÊÛOÜŠ_Ê®`鑎����IEND®B`‚IMAGE 489 ./arch/monster/undead/skree/skree.x32 ‰PNG  ��� IHDR���@���@���·ì���!PLTE���ÿ¥�ÿ×�²""���@@@ðæŒ£ªA���tRNS�@æØf��vIDATxÚíÓÑnƒ@ DQ².\wÿÿƒ‹Õ‘aµEqá5“<¤91–O>yžö§€Ã³¾„ÀæðÁ¹ ˜q[ÀÀ�¿!pŽ+ßu"J P|Ûþ¨›3�ªËmûŸ@sÎÀqKm6\B­z i)Ñ/ ?pôׯՒ� _|Š‚FÈÿW^¯ßjÀüD®«�*@ö[3#§ñ0-Þ]ô¹�àp I« œùn¨¸cZe̳h—@ ¸5õCà,~ €F0òœn;4D\J�y²§ÖZâr (Ǧ“¹§âÈ1t›²CÓ:u(8gÀ€aQ@¨ÒN€Q˜w]˜H�g*ôÒJ�³ÐÁ ÷`ì¡_}œL™ó)ôþf 0:Ôk4ÊÀBïô=u¡ïŸˆr @ÀÒ(…+8]k`ÃÂJ@ïÐ%ãÔƒº¹p–›Âr7Ñýä“[ù›|ªß<Ô����IEND®B`‚IMAGE 472 ./arch/monster/undead/skree/skree.x33 ‰PNG  ��� IHDR���@���@���·ì���PLTE��ÿ×�ÿ¥�²""���@@@ì‘Ü/���tRNS�@æØf��hIDATxÚíÓÑ’ƒ …aBñÏæý_x;ÉÔ”]GPn=Ó Ë4­åÉ“QXWVKóÚV€Ep0[°Ê‚�Ü:{ПyT;àj ´µC€Y )Юu@õ/ЮUéæ@ÁH@˜?Ãn}<s@ûlæ@„mS|¿ð›À|…ÜÐ7ÂÿÈ€¶×+,&}¾VóÛæ€N¦1¯1µ= ¨_u`@Þ¿æ»…ÉÞÆ�ª±è} Œ€P«Ä• |F�DŒ\Ãg\8½ dËÅ >ãœ5p£ÿ‘}VÝN€ì¬|¯O'äˆ ¥ŒÄ+3@ÿp+ô·yÈåü2ôˆÀ@ô�ý:×€,Ѓ’ׇ¡;+�EŠˆø…"tAy'ªŒ0ûˆ¡œ†8Ü'„ @_ØÑpžÔËÞ 1».ÜböÉ“{ùécsp?>����IEND®B`‚IMAGE 501 ./arch/monster/undead/skree/skree.x71 ‰PNG  ��� IHDR���@���@���·ì���!PLTE���ÿ¥�ÿ×�ðæŒ²""���@@@Dر¼���tRNS�@æØf��‚IDATxÚí”QnÄ [¼$ãÞÿÀKmwK¬øÝ§E„CùxçŰË+[8ªlò;ÐsG€^ü†�ý‰{<EØààeüKSy¥|/°ûUþVpžÊrý =y‘?Ïg* ¸¥á…Œ–©À þ´XâÇzœZZÚøÇ¡¤€<¬ðúùyhB€ æ¼ZŽ‹wƒð Ìùá8Ðá"¥„ÁÓ  @¥ÅUª*sߘ(ÉsëixЇÇÉ-Qý2ž±…‚*ãÁc¼Š(εñÚ+¡ |8>N)(”+èìÏ&"^±¯CÜŸ2L<lÅs(+Z�ò$ðMXkÒ¹ Öó¯ ’ïs>×ãüD�Üòj·sŸ‚~žãò=£‘Co­ 'ê¡¶^¡Vç×Á[Ó &¼÷×ërI ®>ïŸF‚ ¾ ~µ& r·k'¾‚/® í§t×óÖº`5ä‡üFÌòÎ;ÿó XS$O£¬O����IEND®B`‚IMAGE 495 ./arch/monster/undead/skree/skree.x72 ‰PNG  ��� IHDR���@���@���·ì���!PLTE���ðæŒÿ¥�ÿ×�²""���@@@ÎF‰���tRNS�@æØf��|IDATxÚí–Ñnà Eãâ…ëýÿ¢ÜŒ%˜ñš«H­ªœcFêöäI0Xå K8̰Ɨ`…Ï+Xá°U¬ñHŠÞ�(€iüÛ\à™)ß ÌÂü)ÈÙ®ïÇ2&ùœO‚ØHàâ%ÐÆzã§%(P¿†øj`[ª`ÿÚÝ�À/‚| Vo ùZøõ*< ì!Ö�(Ø÷~#â¾uª)5CDà°øä?•‚)žLªks¸ààµÝ œ¿gýí]“G¨0ÃHÀ½rÙ§0©Áù+Á'€‡Ò^†²Ú/ "’RcŒª¥îNPË·=æ:ÔØè Ñß@[Ûbâþã…Ä÷J?0ø;w¸‰:v÷tü@@¾€‚`Ò aÀPÀyt<ÿ愬$äᦈ€ù¾÷Â+ÕÏ�Í#¼åÙþ-¨’³@6‰ñ Ï¢ d£�QÁépµ0ÒíM8•!/€È´ -ÌgwË“'¿óTð¦OG����IEND®B`‚IMAGE 474 ./arch/monster/undead/skree/skree.x73 ‰PNG  ��� IHDR���@���@���·ì���PLTE��ÿ×�ÿ¥�²""���@@@A]lË���tRNS�@æØf��jIDATxÚí“ÛŽƒ0 ±Ó0îÿÿðVÅ…+Ù¼rTq‘˜‰ÔË;a–7¦pê”�¬š1ÇO°æxæxŠ0U?0Œ?-‘±åϳn?µƒë׃�«ƒ‚z˜Ñ)Þ beL`!@À{pϛߩî^WâåJzxèŠaþ‹j?ÿ5ô@£ÕÁøv ÌëÚ±”ÝÐ'ð®÷@»ú]Æð±hŒà!Ÿ!çUˆé)ÞE 8ïÛV÷3Ìèðæq~31‚'ÝçÝÆ.ðØð´pÞmPâ[Ù|¹Àq¶ç$ä;Ôq|ç›æ³=OzŽ‚ÆGÈA€µ—DpØ"(ÇË8¾ä‚œ? ¬¯…«7p.rA|¤G JèØ þBh¨Êo.ÚÔiú ª|OŠ.¹ Å[ÐoŸ¤ñ£¶‚Tr5ì‚ñ´ÆPåÿ¼_'S|XîÜ9åµlb ‰����IEND®B`‚IMAGE 214 ./arch/monster/undead/skull.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿÿ�����¿¿¿ÊTv‡���tRNS�@æØf���uIDATxÚÕ’AÀ ­Ëÿß\1AC9ôÔ®Q3!„8þ<a[ÙO¥$†îˆ-(ÈoËKajšBaÊQ”B#‹ò¦g€‘‹’TÚdÝXŒ`)ÀØ‚á œS˜®`ȱ\PóãÐ�i¸üóW¯å Ó§Eä›����IEND®B`‚IMAGE 204 ./arch/monster/undead/skull.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����¿¿¿F½#h���tRNS�@æØf���nIDATxÚÕ‘AÀ …þÿϺÊa´—žÜ‰M·Åߜ𳓓7†®@hÄ-Àw‚™ d¡`&”å¿ Ÿùy‡µ„‘÷¯B!¾ºh lV 0$ÔH?¤Ÿ„:%9 ¡Þψãr¶¿,lCýVÌ����IEND®B`‚IMAGE 206 ./arch/monster/undead/skull_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ÿÿÿ°‚ =���tRNS�@æØf���pIDATxÚÕ’A À uüÿŸ[ÊÒ&KñÖÎA;j Ž¿ÁEJ׉–ÎaÝ!å.zÁrËÀC(MÖÐC]<ÄrQ…9%¨Øò†Ò$[£¶4¹@Ã’€ÇXÎåýmY°‘>.×:ZJJ‚ßâ�D!ç‹Ýïe����IEND®B`‚IMAGE 189 ./arch/monster/humanoid/Arabic/slave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿÿÿðæŒ���)¸@���tRNS�@æØf���\IDATxÚÕ1�! à ñÿß|1· °€ÅQ•²„›‡ÞKb4aa†0´:Ð8Pz¶í)˜Êã�¦üwG›ÄKr·§-÷.Ÿ 9 8UFÈAI8Ï{|ŠšÆ8N����IEND®B`‚IMAGE 305 ./arch/monster/acid/slime.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ�e��U�ÎÿΙÿe™ÿ™�î��™��u��Î��hV’���tRNS�@æØf���¾IDATxÚÝу0E7-¥ÜÿÿàáLÕ¤Ë^w#óË|ý#À?°ÔP¬ß7`±0ËÀm-uŽs¡Þ‡ÞM:‡[a† º^L§‹XÛs 8×ó|éÝÜsPãªúê ´ñ/ø ÆU°òìÝÇs÷~âð¹û™~lBz‡~LtnBx£µVFãR¿¿—”¸‚>ߦ*à°<tÏ,5™Pp0Y¼ü]>“ w6žÐ_Y¸dé Êø�•°ù‹ýÀš����IEND®B`‚IMAGE 317 ./arch/monster/acid/slime.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE����U�ÎÿΙÿe™ÿ™�î�����™��u��Î�SK@���tRNS�@æØf���ÊIDATxÚÕŽA!7«.2ÿp¡\«’\3åé<þ/À7abQ÷ «¹Ý (ogQ…[kØqh8Îmwt+À¾š9µR (žÂš¢ëûÞµEðUèc(9 ᦕ³/_`!¶Éü2ÀäþãÎArï“gÈÙÃ{Aðn™ãB#¸ÌÙZ{ug$ X[‚™¸äõx¸†BÄùŽÂ]�ÊIn¹Š—®Ëx8l™_õ‘±[^K)\)cå»ÂyŸBþcž¤‡k­×����IEND®B`‚IMAGE 305 ./arch/monster/acid/slime.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ�e��U�ÎÿΙÿe™ÿ™�î��™��u��Î��hV’���tRNS�@æØf���¾IDATxÚÝу0E7-¥ÜÿÿàáLÕ¤Ë^w#óË|ý#À?°ÔP¬ß7`±0ËÀm-uŽs¡Þ‡ÞM:‡[a† º^L§‹XÛs 8×ó|éÝÜsPãªúê ´ñ/ø ÆU°òìÝÇs÷~âð¹û™~lBz‡~LtnBx£µVFãR¿¿—”¸‚>ߦ*à°<tÏ,5™Pp0Y¼ü]>“ w6žÐ_Y¸dé Êø�•°ù‹ýÀš����IEND®B`‚IMAGE 235 ./arch/monster/acid/slimecrawler/slimecrawler.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@h(`€@€` À `ðÀ€ÿÿÿÿÿÿ4g���tRNS�@æØf���~IDATxÚíÁ !Cgÿÿ;“i ÖÃ^÷©ˆäÐ×ÃÀC®£ ò¿D¦À&OÆ ¨Ì·¨ò™#˜ê1'>ãd´Ôðl�XqÝaœÕš³û|»‡;úàfç`8Ow´¿„Ÿ7Ù`)(vŸ_…éWlÀÅ2öÞ/£gT^š����IEND®B`‚IMAGE 256 ./arch/monster/acid/slimecrawler/slimecrawler.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@h(`€@€` À `ðÀ€ÿÿÿÿÿÿ4g���tRNS�@æØf���“IDATxÚí’˃0 »~þÿwãâˆJ$¸ôÐu¸„Ù Rxýó«ˆÀ °'`ÎÁN ØTM–„«P!t¬ú"T˜Ò±è >ÀUŸD)HX€ùî«Ô G‰,ç~ ú+„q4€Ù¯)Å�ûfy¼ÿ¬r Wë3Áý¹Ú¡}þ<©€ƒspù4ç™,nfO´ú о@*ù(Ê����IEND®B`‚IMAGE 260 ./arch/monster/acid/slimecrawler/slimecrawler.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@h(`€@€` À `ðÀ€ÿÿÿÿÿÿ4g���tRNS�@æØf���—IDATxÚíÏÁà Ð:qÂÿÿqC …v"•¶ëÂC¬gØþóÕ�?àŽ—�ù&¤ÜÌ3TÒ‘jnÌ�!Õ±D‚Pb D€4Ç Ðƒ#°D•Œñ IJ*æ4•vÈp¬ÜÐJÄ-˜(µ *!ºÓ¾œ@ë2ûµîØö”ñö‹Ö6JOe'r¡é ÌìwCñËn����IEND®B`‚IMAGE 217 ./arch/monster/giant/slug/slug.x31 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������.‹Wú€rÿ��ÿÿÿÑM¾¬���tRNS�@æØf���uIDATxÚíÐA À DQÒûŸ¹Â`6ÍÐM¡þ®,¼§ŸÆõΡœLM&Ú˜‡ç ´&g_˜‡¾W Ÿ´=ûÄâÐð¢5qË+À½þ~—àÁ2ydÉð«Èð|M¾×Dåò½ˆH}âýHy|®G wcœ>Þ vSë=����IEND®B`‚IMAGE 215 ./arch/monster/giant/slug/slug.x32 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������.‹Wú€rÿÿÿ)y4á���tRNS�@æØf���vIDATxÚí“Ñ € »ÿÿç6Š¢Ö× G}ðpVEl‹ÿ}Ì0Ðû÷â žBÆQ…q_ìš|ȹƒVJ=edáüÏ@]?ð/—/„õE<È÷@øý}D\tZ ÃèȈìÍèæY€É/¼ø:kƒ+<< ����IEND®B`‚IMAGE 219 ./arch/monster/giant/slug/slug.x71 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������.‹Wú€rÿ��ÿÿÿÑM¾¬���tRNS�@æØf���wIDATxÚíŽA€ wŠÿ³ÁäâÂIã4áÔªŸÏq =€í ‚±iDgS VrJãy¢*£— —ó§�-1ê7¤9qÂN!:a*àf¢&�«rPñ ©ë1Ä-‘º“è& 4·¾h àB« Ÿwpƒ‡R¸f����IEND®B`‚IMAGE 217 ./arch/monster/giant/slug/slug.x72 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������.‹Wú€rÿÿÿ)y4á���tRNS�@æØf���xIDATxÚíÓA €0 DÑþÌýï,µFAÒf¥ø´ˆÂ iÁöûðU*À *ð»‚Z¿ì’yIpNk—ª@+ÂëHnk�Az ³÷©üÝè9tLU`z‚Kχ™ Z× ëñ™ ÐFl» MĪòsÿ^aû;B¡B����IEND®B`‚IMAGE 307 ./arch/armour/shield/small_shie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���uuuîîîeee���ÎÎÎ0��ººº™™™��‰‰‰UUUDDD000 cÅÑ���tRNS�@æØf���±IDATxÚåÒAn1 CÑ43¶%‹äÜÿ¶a‘E(¹@Cx÷߯†o߸ë¹Ïy­{ï亠¤ú%ï{¹SeÑûˆ’û�4Y ”ÜÉ ‹ëµ¯Ð�åÊD ,^@É«Åd&;HÆ}ýT Òî@�#b)¡ƒ-ô‹é®j€Z½3µÉJOÊô)?w˜Ly)ˆî ˜!$Ý Þ‰Ä™ÏÞDy�ø×ûwqtn½ý¨·_ä [ÿ„D5����IEND®B`‚IMAGE 376 ./arch/ground/Stone/smallstone.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE®yH™e�000a<�=‡¾j��'IDATx^@1KQ�þ4D¸Û—C‹7qaþ…p*\â¸÷Ž,®§ˆVq;:’Z"|«ÐðP´é¢Žòv§Ô¦RAÛÌn¸Lç|×á„ÔuKq~A3™!Kv Ói÷2œ­âuP‹¢EµCý´Bá7¨Í’×?P£-&Ú(sOî .rG«EÜ"öÝ#Ý£é‚ô¡áüål8¹q(5¾}Ä´ÛÆvJ¨ðÍx…ÚÊ&Ô9[¦|kõÍà_¿è­|²wb5áßY}oPµ J‰§Ô}²Šì‹»6YŸè<3nuÛ>B2=“I…¸$›gñdZ4š! ÇìMͨ€+ùÖÜ\@ЪKõ| γ}`ÊÅÄ›üøM)`Qrñ¸gÀ½RRø¶´|Ì}Tã}����IEND®B`‚IMAGE 439 ./arch/monster/troll/smalltroll.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÿÿÿ ™e�0e��ª�e0��‰�Ιee™�uuu�™��u�ÿÎ����™™™DDDUUUªªªºººÿ�0™�0�D�î Ò���tRNS�@æØf�� IDATx^ÒIv„0PKUå¡ÇáþGMÙtÚ¤ãô"^ðxè#± Âçû$�˜üe°Øâ�¶t½†Ù²4Òó,»h+c�n÷r¿ v@zY ‹ã@:Ht<�kCJIÉŸ›ÌÙóŠ”ô Rú¸òúpPt/*`²*xÔcí(ÅÙ7¨–"¢$U‹o)©ÆW“*6QßnWïé %E ƒÜ:ZOÿRˆçª-á+0ï?„ b”6óþ‹ˆ"4@®ëJ6½%·‘ÈðN2^¹Ä,¿\Q ± *¶j#f4`3†€j3p6åh¦Ü¨ÎC0?ýL§'8M@N—3·s¾L|O=Ÿ¦–îï÷y@àâ %&uñ£§����IEND®B`‚IMAGE 432 ./arch/monster/troll/smalltroll.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTEÿÿÿ �ª�™e�0e��‰����e0�Ιee™��™�uuu�u�ÿÎ��D�ªªªºººÿ�0™�0™™™UUUDDDýre2���tRNS�@æØf��IDATxÚÏÉr„0 Pº-yaýÿ?5x˜Ò—ËýŠnMJ©«AwL*’«@À�@0�œ�La2€0á„0MFÎ&À«uKÀêÛ½¿ß€“ ûž½²½ÂCˆüøÍ’½}BŒQɃp€RŠõŽ”•T@Š@—+¯‹C¿Dêƒ >ôá3l”ó݇…b%©ÚÛ.¥½±‚¨ŠMø×ëÙüY£õ4P|Æ6G늒R¢_\ÈÖÐ öKÎbÑZ9Ï3™Ž m/ÌRÖ%™ÝGj/¹È Hvöfkà=ØÌ°‚0  ¨a �AÙÚ{ߨèš`ØAø/_;x @Ž—'·</#­õã¸÷õþÞ×܃/% ÝT'Sà����IEND®B`‚IMAGE 247 ./arch/shop/smith.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ��@@@���ú€r²""��ÿ��€à¬à±���tRNS�@æØf���ŠIDATxÚÕ’A Ä0 ³méÿ/^•€Y¨ísW¤&e&Ê%ë3wŸ |æ ®+tœd´œâ­!‡j5\ßgøÓ`_§ÐÖž‚Ne’gœÐ„˜Â‚»¯lpï„Û1ý<+3ñRÌû[a™³ÀI�4Kaï}䙵7:³JQðš|÷|oÔä����IEND®B`‚IMAGE 185 ./arch/player/class/Wizardry/sorcerer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¾¾¾Ú¥ ���a³á’���tRNS�@æØf���[IDATxÚÕA �! Móÿ?oeQéjÈi–L”¶ë`ÇVàŸ¡ó˜}œ”ˆ`¡7 ÜÈŽ1(ŸÀq— áµæ¥}`žõ¹rÜñ1 *‡.§‰S¸ŒsšÉ8¡íj����IEND®B`‚IMAGE 185 ./arch/player/class/Wizardry/sorcerer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¾¾¾Ú¥ ���a³á’���tRNS�@æØf���[IDATxÚÕA �! Móÿ?oeQéjÈi–L”¶ë`ÇVàŸ¡ó˜}œ”ˆ`¡7 ÜÈŽ1(ŸÀq— áµæ¥}`žõ¹rÜñ1 *‡.§‰S¸ŒsšÉ8¡íj����IEND®B`‚IMAGE 192 ./arch/player/class/Wizardry/sorcerer.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ¾¾¾���PE}?���tRNS�@æØf���_IDATxÚÕÑA À0 ÁØÒÿß\C]HÎÑuȺn|ç € �¡:Jô+óÔ“ß²¶åÚ�ðt`@÷]tt€Ë‚g0ç©þÊóÛ e'�)ºüOäÌîWíçôU 7m����IEND®B`‚IMAGE 192 ./arch/player/class/Wizardry/sorcerer.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ¾¾¾���PE}?���tRNS�@æØf���_IDATxÚÕÑA À0 ÁØÒÿß\C]HÎÑuȺn|ç € �¡:Jô+óÔ“ß²¶åÚ�ðt`@÷]tt€Ë‚g0ç©þÊóÛ e'�)ºüOäÌîWíçôU 7m����IEND®B`‚IMAGE 205 ./arch/player/class/Wizardry/sorcerer.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ¾¾¾���PE}?���tRNS�@æØf���lIDATxÚÕŽA�!úÿ7/b\À«s0†ŽzCŒî½È ¬%Sƒ mEû�ͽƒSÆŸ°rÆ þ‚ m—Ë“áã^ +!öôKbb/ãF„v'Tìk!hš lf…À ;\yˆ÷F”\{¥[����IEND®B`‚IMAGE 205 ./arch/player/class/Wizardry/sorcerer.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ¾¾¾���PE}?���tRNS�@æØf���lIDATxÚÕŽA�!úÿ7/b\À«s0†ŽzCŒî½È ¬%Sƒ mEû�ͽƒSÆŸ°rÆ þ‚ m—Ë“áã^ +!öôKbb/ãF„v'Tìk!hš lf…À ;\yˆ÷F”\{¥[����IEND®B`‚IMAGE 196 ./arch/player/class/Wizardry/sorcerer.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ¾¾¾���PE}?���tRNS�@æØf���cIDATxÚÕA�!•öÿo^ 1l6,=x²ñ6cÇáŠÀìîC ªh…1û gXÇ fŽwÌóŦ�Ó½ð÷ „!rÎzÃЂWFhBpaG5Pq²y@f©\”"•3q£b7����IEND®B`‚IMAGE 196 ./arch/player/class/Wizardry/sorcerer.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ¾¾¾���PE}?���tRNS�@æØf���cIDATxÚÕA�!•öÿo^ 1l6,=x²ñ6cÇáŠÀìîC ªh…1û gXÇ fŽwÌóŦ�Ó½ð÷ „!rÎzÃЂWFhBpaG5Pq²y@f©\”"•3q£b7����IEND®B`‚IMAGE 192 ./arch/monster/undead/spectre.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����¤©ñ���tRNS�@æØf���eIDATxÚÕÛÀ C+ÿÿÑÛB*` MöfkÚã ÷É^±ës|vòH¼`a™Ï û¼cMÀ&8ŽK|…•³ D®ˆ=|qΉD.ˆØþy‡zeä€lu‚‰¼%¬Zå  ‰*\¥ W{PxŒP����IEND®B`‚IMAGE 189 ./arch/armour/boots/speedboots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ¥���� R-+Óÿ���tRNS�@æØf���\IDATxÚíÍÉ �1CQ0î¿æ‰XnX)`ÂõY{'7÷›£2Ú]g"â8r¶:Éh÷Õ³Ð`LF :cb�Öjåt=¦³2›Ç'³ªõâÜdÚEFòdì—÷umñï8Î����IEND®B`‚IMAGE 187 ./arch/armour/boots/speedboots.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ¥���� R-+Óÿ���tRNS�@æØf���ZIDATxÚíÍA€PCÁOÛûŸYaG5q«Ý>2œï<ä¸ïð ÉHÁ2””B3k/a˜‡±jÁ@}µæêþ€ª®f¶dfÚ‡{‘fúÊø<Ìùä.j^íÚ«Œ€����IEND®B`‚IMAGE 185 ./arch/armour/boots/speedboots.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ¥���� R-+Óÿ���tRNS�@æØf���XIDATxÚíÍ1€@ÁcØÿ¿YK¸ŒÕÈH7ªYÿ^<äð13‰À2)) ˜˜ú%ã�e3at+ º‚!_½Œ¤b¦H›™òq/Îm¦»a|nf}r\Vê®}_����IEND®B`‚IMAGE 234 ./arch/monster/misc/sphinx.x31 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE��h���ðæŒbÔó���tRNS�@æØf���IDATxÚ푱 Ä0 Å,ýÿGÁrm†wnª¢ˆ¦^bXÔ\Œ �ŽŠí˜Ð" c´#*¾¸ Œì< ŽñZC­È <ZȉkZiÀS¤fr24ÈPàé¼=ˆ_ÁÖ|Ùô§gÐEõÖ³"Áñè[nÕP@L¡R¨—ðWĶGu8����IEND®B`‚IMAGE 233 ./arch/monster/misc/sphinx.x71 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE��h���ðæŒbÔó���tRNS�@æØf���ŽIDATxÚíA Ä0 Ä<úÿ£·Yc(MÂNÝÃ^ªK ቗5<Ѩ@Ð="mÝ�yº€,Dƒ´Å£�×€ «0] ÄM”Œ68¤N/9`ãã M@†0‰ö Z€þèO@bUÀ ÀÙɇúû!PjÝòÅZ0GÅý�€˜¿´µm6~¸(^Î|�ñÂÄô­À����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.122 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.123 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.124 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.134 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.142 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.143 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.144 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.153 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.154 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.162 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.163 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.164 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.174 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.182 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 214 ./arch/monster/insect/spider/spider.183 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���xIDATxÚå’A€0qçÿ6Å&›I¯&â­3,EoGc�}䳨Ûáá’€=ÃÝ h §ã±À†‡_vÔ*ý ª€ 1·^ø ‘Pâº(ûó¤pq%çUð€(`£òÉ=ŒÓoÕ NûYÝ-Z­·ÐÜÐ����IEND®B`‚IMAGE 213 ./arch/monster/insect/spider/spider.184 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ðæŒ���à‚›���tRNS�@æØf���wIDATxÚåP[ À Óæþw&¡+ÕßÁB‘Õ<Èߎð�:~ îoZþ9HÉâ º|! p³Ñ 4·Ì'(ñØ£Ïà•¡ÅìšMÉPt ‚¤¥Ät…ú”2ÏÇ\ò¿Ÿ[«Ž""ß)|i®�þø.Ê’èpÅÊ����IEND®B`‚IMAGE 197 ./arch/monster/insect/spider/spider_web.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���mIDATxÚc`À™Xš88Ò Xv½d``jâ``”?¢ÀÀ´HËËkPbz&«‘*ðšÊÀÀ©ªÒÀÀÿëÿ ,ƪ”eÙTÖÖ 1å”�‹ÕCwˆmX��kœ0œþ½{����IEND®B`‚IMAGE 197 ./arch/monster/insect/spider/spider_web.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���mIDATxÚc`À™Xš88Ò Xv½d``jâ``”?¢ÀÀ´HËËkPbz&«‘*ðšÊÀÀ©ªÒÀÀÿëÿ ,ƪ”eÙTÖÖ 1å”�‹ÕCwˆmX��kœ0œþ½{����IEND®B`‚IMAGE 186 ./arch/connect/Spinner/spinner.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���_IDATx^•Ï1 À0ÐÏŸ$§N=¦ô$SOÙh‹Ž¥JàŒü Ÿi‰“ØŒ ˆq€P!L$0IlúbXÂýrŸuS5õªútçžÕÓ™ÙöÎý‹ï¸|Ùê $����IEND®B`‚IMAGE 195 ./arch/connect/Spinner/spinner.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���hIDATx^•Ï; 0 P¡Éø¦SŽ)r’ŒiNÙ(-¤c«éáÿfÍ72¨ƒhH#7˽!£ÚF$a=ú Åi¬çš®,¤¾gîÖ½SA #6BF4(ˆpÔ]÷‹ŸòBÀ&;ÿï÷����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDAT•ÁÁ ÂP 0+§èOqBLùÔIz,’– ÀæOçákuÅmoO—Ò–ËÒ&è´3U³ª bkxŒF¬¼d½Ï4Î}E#£[kLUe0UfÐ-ôH)·]žnË_çá7>øª“¸™”����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDATÁ± Ä0 0B•à)WóIRú=å“������îÖTÀ7(cCk ––`¾.ƒéjƒÔÛ±§bå4R¿«‘³¢qíшwiŒWSò º¥‚nÔ˜ŸyÀ²Ü����øçØÚA2r����IEND®B`‚IMAGE 197 ./arch/connect/Spinner/spinner.115 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���jIDATx^•Ï1 Ã@ DÑa*¡SWKN9¸ 9Å’jSf¥5Æeò«‡ªþí3T¡ u"„=aˆô ØôDôrŸ ¼£YÁw-w-ô­^بD@jq‚}˜¾ƒ–ά]›¯/~ë ’·j„-a����IEND®B`‚IMAGE 198 ./arch/connect/Spinner/spinner.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���kIDATxÚÕ’A À0 Ã6ýÿÑ;„bZavÝrr‘!¦Îõ»a¦ã]-Ë@¢ß vá|^”aYG '[8ËvÄŒ\ ÷Âet$† Éu„ôG¡êJ ÐÊR‚‚Ô·ùU]¿É·«þÚ<&>Ü ����IEND®B`‚IMAGE 197 ./arch/connect/Spinner/spinner.117 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���jIDATx^•ϱ Ã0 ÐC“ÐWT¥è˜¯™L¾²²]B KrÜð6ð4G_0HLtˆˆTQ½‚ ‘…¥°©t°OÄÚ†…w.ÈöƒšÅD2|à†dÁA‚ÿG¯{°ýÜ|~q/_jÜ|Á����IEND®B`‚IMAGE 200 ./arch/connect/Spinner/spinner.118 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���mIDATÁ± BAÀa£åªXŒ¾Vù0«8ŒŽ_¥3������î,pÔUº K ZF0fl\fÖàÎ4òªwq4â¹5â{4²VíF¦³Ìظ̴iAK JªÀ– p����Àä¨"åtZ����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.119 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDATÁ±mA0b£ÅU1p$u9±ªøððUš�����ð^à8×~`Æìˆb5ŠH<ˆô¯m½gºèü®E}‹z=Ó»h¶sñ×à#¬¬be£3à© N§À{����ÿfÿn.;Ý$����IEND®B`‚IMAGE 198 ./arch/connect/Spinner/spinner.11A ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���kIDATÁ± Ä0 0B•à)Tæ3å!e¦pidÊ'�����|XVÀÑT›‚.#è2‚‘ÔÆ˜\ƒc’Ƴ×ÒÈz·Fü¶FÜo©'w#Ýã`vÁ­Û M Ú” Œì8`¥|����ð‡Ïn«{íz����IEND®B`‚IMAGE 197 ./arch/connect/Spinner/spinner.11B ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���jIDATÁ± 1 0B•à)„¯™òI\:ž2$�����€{€å Øæ…SÐ-‚.©`Jz0¾ö žÒ¸Vk䬭‘ú]øä4â›:HÕhÌ[m0é2Xº­%(ã{¼`M¸����ðÛ8V˜¯Ã����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.11C ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDAT•ÁÁ ÂP 0+§èOqBLùÔIz,’– ÀæOçákÙâ¶ËÓ¥"åÒ#tKSeSUÄÖñs_ÑÈzŸiÄÊë@<F#¶Ö˜Ue0SeÐi –6AiËmoO·Õ_çá7‡ª®GÍ����IEND®B`‚IMAGE 194 ./arch/connect/Spinner/spinner.11D ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���gIDATx^•ϱ 1ÑÑUX¹Ì¯­Ä¡ÏUž qº7Ñ � þílºäqcáY± 1„\…b‚$ æ ¢ñCºáó=»AZûÎÜ­{gLáBXØ@"FAIµ‚ÙÈï¯úü`&J¨ä^����IEND®B`‚IMAGE 181 ./arch/monster/insect/ant/spit_ant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""��� R-3 â¼���tRNS�@æØf���TIDATxÚíÐÑ @Pìüÿ7V¼L›’'Æ^¥9©+½Ûv&�„�-!ÈËÊ HR!à)þ ÁãªÆÆ¯È¾7®ð¡|tV«…Mã[€~®¤AžtJàÎ"����IEND®B`‚IMAGE 179 ./arch/monster/insect/ant/spit_ant.132 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ÿ�²""��� R-3 â¼���tRNS�@æØf���RIDATx^ÕÎÁ €0 CÑHÎ( Réï?P©-ލ¶Oïdû3zIİ€Ã Š¡4 ‡| Ž*XOÞH9µñ‡¤° j+T'кºYN—E ykI7����IEND®B`‚IMAGE 186 ./arch/monster/insect/ant/spit_ant.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""��� R-3 â¼���tRNS�@æØf���YIDATxÚíÑ À Emúÿß¼‹FÅл‡ÑËèfžCò»èwáÅ1ã‚!¢7„‹¹2{ Ñõ •]¸|gF4V¡˜D|¥ä(_UÀè<'Õœ'"ìÈ F°pªW†^����IEND®B`‚IMAGE 179 ./arch/monster/insect/ant/spit_ant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""��� R-3 â¼���tRNS�@æØf���RIDATxÚí1 À0 ÄœFÿsA¼\=:µç#H8õåì™>æ-À(�ÉèW`9”]�‘sXˆF Rµ¯S³½Ì­NæíÜr©×¸äÏ+9=4sþަw����IEND®B`‚IMAGE 181 ./arch/monster/insect/ant/spit_ant.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""��� R-3 â¼���tRNS�@æØf���TIDATxÚíA À cwÿÿæ²m¢½Õ5‘à íÇÁ‚Âv’S ½¶©0à2$ +ç£v:ìè‡ÃàwöÀtTaP+ãK¡9YPûæ|^DZv픯¤����IEND®B`‚IMAGE 182 ./arch/monster/insect/ant/spit_ant.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""��� R-3 â¼���tRNS�@æØf���UIDATxÚíŽA À S³ÿsaL‚ ^JW4šEûnüLð Aª©4àϪŒk`™NWl)Wc†˜Ž ó¾¦qFjÀ°2>œ”C)å#®äH¹qªBµ‹����IEND®B`‚IMAGE 168 ./arch/monster/misc/stalker.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ��€]Êë¬���tRNS�@æØf���MIDATxÚc` >`\6-�ÌÐ`pà3 ˜A… ,Â4mZª.0iO›6UЉAÂÊ\æ€f™Ä` ¹ièîàà€9hÙ~�rÖ ƒ˜ V����IEND®B`‚IMAGE 165 ./arch/monster/misc/stalker.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ��€]Êë¬���tRNS�@æØf���JIDATxÚíÐA À0DÑùÿþ‡.dg‘Bâ*Ð'¢®Ìo¢¬NCëñfsWRÒú@sIJwPpU¦~¿RrÌ2:˜ ÁÌ`nô�ç�nVmÎ6����IEND®B`‚IMAGE 185 ./arch/monster/misc/stalkergen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ��€]Êë¬���tRNS�@æØf���^IDATxÚÕÑ €0 s÷ÿí@˜J¥à|Ñ£„°Ž…,ã¡\צàÙ“ 6ê¡emyP@t¨’§ÔMÄnò6Äf“ìóŸ¬a1÷E$ë8¥ I‹¤ó=6š9�²„Ë¥<����IEND®B`‚IMAGE 381 ./arch/ground/steppe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE™�,Â��u��e��¡�…�}�ÉŸF��� IDATxÚ]“An1 YoHþÿÇ]Òw° #9²„àE¢ðS‘‚”ƒ^ȸAš7lA~>'¤Hðò/©>¡(„/¯ñÑ/ØØÜ:åÑ6ú+½¹¼×2… Œë“à,az%Šr©üàô •\i?Ïã¶ŒÓso˜.z[ŽøîY÷ `¼_¾¼çÉØ=ûY··¨FðSVuýN ö“ÀUâÂ'8žý…S<¾qDèl°Øšï ÖO�þß`ýÄ&nogÇۀγ‚sÁN!9«+ïÓ º1¢´þ°¤Iˆ6zúhJ¬?E¿‰ë1ºM&áÄ ¸fÒŠã]ÏÀñöíóæó§pà=“”•h=›_T¯x@êØ2øG´2§+Þ����IEND®B`‚IMAGE 354 ./arch/floor/stfloor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���iii]]]UUUHHH@@@UgzM�� IDATxÚSÑÅ ²ÀÿÿåKh[÷iµQÆ ÔŸ11ôƘs´ì©—ˆÔˆiŒ„žÐLâ�iC_° hnÞxˆ’$¤ïÃ�.õ!­©I9ˆô(MÔ`˜j $±6¸ñ0=3» £½FgŸÆÑŽÀ·*•=`Ü„¤×wP9“pð¸q*Än‡«Ü®ÚÎ`T[èåÛûs´ #adÂä*�¹<Ôåd#¢¥ŽÜÖ„mû®í"ÏèSoÚgœë.:„ˆ+}·6ö•Èð)ÿ¢Éîx‚ž¼¿Ñ„ \Õ!­)vçN8ÀÀq &Ô Hõ!tîD*þg¾]¾����IEND®B`‚IMAGE 534 ./arch/shop/store_alch.x11 ‰PNG  ��� IHDR���@���@���·ì���-PLTE���²""Í…?�����€ÿ@@@ R-²""¿¿¿Í…?ÿ×�ÿÿ�ÿÿÿÿ’���tRNS���úvÄÞ��•IDATxÚí–moƒ0 „îÛ‡æÿÿÜÉ®Á Â6ë¾M\²ZÝ“Ë -åÖ¿Õ’¶@¸¢%´´!È�\#D€–7¨/€x> ³ßc`ŒA ‡àùÐ�Ѩ wÀP8ÏÏ€U¸K "„Z¿�Ôߢ�X-Îý ˜GSÍF�ÌCÍ… ‹7ÝFëð—À�ï%0¿ ®Š–À�õ˜�¿H€º`Ý�s®òg�Ô�vÅpCË8O#Ä0'è|ëy=ÊÓPâ'Âñt”0PÏŽ-â<”L@îí­]À®+¿P@ÞK ž…–Ê€p!B HåD=Ê9à‰'ÀŒÇƒ¯‡\Û;àvÿsEïlP“VÂ/á¿Y`]¡CN~ …UÞ³$!>†(ÀfÐÁþ*�œøàP¢¤€Ý¤ÿ±SÔ_«šˆL%JPÿV € �óo¦»ÿêO0�q·2¨¦_â7Ó¹ò×|-=•[·Îõì4™ü8¾”����IEND®B`‚IMAGE 508 ./arch/shop/store_armo.x11 ‰PNG  ��� IHDR���@���@���·ì���!PLTE��������€@@@ R-²""¿¿¿Í…?ÿÿ�ÿÿÿô•ý���tRNS�@æØf��‰IDATxÚí•ᎄ „¯‹‚ëû?ðM MCÃl¹lîŸj³8Ã*ñçÑ£•dGŸ5ièI�½K8 ú°»Žƒú1Dýg'”ãh­-ýcˆ.ä(¸i½Š1Äü�è,z׊Pr�\Yʽ\Aâ~�@À,P¥+@‚ÐJ»e!"þ¨:I]tb�Q@Í%K¿¦9MáGÄ‹<€( Lež)|‘@ý0Gp€x§€3&?$f�ñî€9|Ÿ@ò§€� €&5O@�rv@þ"RÀ*¾ÚÎy‚Sa~8[“ùíH�!�üŠÙÜ‹ñ)À©16÷â"©îlÆȺúù^¨©`ü@&Pa/å2¼Ñ ðB½pÁµWãʳßZïÞ˜òèäv˜ŸpÁ¸Ñ@æçÆDi€ B¹ÀL(ôC:—`~ݹ¼„_T€«UͧEé€ZÜo&^?ˆº—dˆT¡ì>=ÿ@ý]÷OKªxô(ê„K!#òÆT����IEND®B`‚IMAGE 450 ./arch/shop/store_weap.x11 ‰PNG  ��� IHDR���@���@���·ì���!PLTE������@@@ R-²""¿¿¿Ú¥ ÿ×�ÿÿ�ÿÿÿá«���tRNS�@æØf��OIDATxÚí“ínà E¹ã+Ùû?ð»Ôj„í ´¹€`Œsâ &=y2 ¾‰/¨aƒËo˜›Í÷Õ TPv è$pÉœyö_`ò$`C3“¯øJvü¨Àî9ó€ÕNÎ2cÊP£î Pã<D?߬U < V®@}§¼û\Ðv*PÁâ¨`ýg�tÄݬWÐE??¬ ÇÖ·¸YX°v*X,@¿…µ+AaAKÀé8â Í'NÔãôª¼¤™ÇøË/0 x¥M&“O¯7PJ®FšLA*è/†ªˆ÷=>¿p…`ð�dQ9ÇÇf\�ÐZƒ\&CU7ðtð}¶Yðuá8¶�ç8[(3Á/e&€UþµYÚwã,T@|ôIþ/Ñî›r”ÆŽ(¤qù„[œÍôäÉ=ç’ ëúá»����IEND®B`‚IMAGE 527 ./arch/construct/hold/stronghold.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ���PLTE������¿¿¿ÿÿ�ÿÿÿ¼EÁ[���tRNS�@æØf��«IDATxÚ혊Ã0 C÷¬ýÿ7 ©Ùmëœêر¨´d [QÔ’Ë¿ø¼€0yce¯ÄV'<^ bƒ„Ï«ë”SóxuáFyF­‹W`wÎVùügôö‰IpðL­Oëôü$Ïy…�¡W yî;ZÀN 2×ðh¾A ÀI ²}°"¡!„“ð|˜c@³ È00_€ˆY¯ØP ø€ \"߀ˆ7󘙑|bâw¦þUÌ02ø(鬿.d�'dñw> BµÂÎ;-° T $ïŒÀ~8HÞÙ[Ymá†w*ä. A€±MNçÁÐ %Ïx‹F $Ï0öÉãÃûd‘<G@…oŸLïß›¨r ðêÏxç]ÆA.Ð/ƒÆ3²ÿõÊÁÀ:©à.®€™€/ ÄÑ ñ>ñ¨%h ß¿þrVcÀ¸í %Þ”ÀÝèÍ dÛè×Ð׸`GNìºô«>/­‘3y5`+ÃçÕ�†y ŸŽp§ -‚NF±����IEND®B`‚IMAGE 226 ./arch/construct/hold/stronghsym.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V R-���@@@/K!«���tRNS�@æØf���IDATx^­ÐA Ã� CÑJC™AK Þƒòç´ù’@}|R,+ÇsyÑ?€?TÀ ðÚ@ws�ÜVUQØ]á’wEUÉ¥ É�ˆ”Ì ·*` ÐÀç†� a¸öÒ�NÐ1P�Þ;²Ë=à€j…µè÷i/Î+p^x$_ÈÓu¦€����IEND®B`‚IMAGE 419 ./arch/ground/swamp.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE$$¡¡q�u�(0Öee0000}�ú”³"��IIDATÁAŽÜ0 @&0ï‘ÑÚ»ò?–BsÎ’£ö=ÀŒÿÿ„TY_Ñqô;ðΆ¤ÅÄA“øWK?ƒ´Ø±H¨D½“""‘·ÅcæË|øX…¸ŸáÃ%ó¿ŽYUxÕDéA!‰i«Pë*ÐD²}¬–‹u¢„`­ÅP«’_‚öMToy½Ì0‘Õ¥à°Î”LW¡"¸ÿ˜R¨vJp0MŠ^¬©ØQ>ëÔ*´dÔ­ôÈ_¤©!·ÐüãqÚ*¬.›¡^†t€ê2oëÈQR¦Øc º¡¥*E6¿Ä#l×FQï2¹@ëéš´7QW]Ü­Ê8ƒœ¡=LûØ@cø‘WÚŠáÃý”ÖXu¦C²ß/iþl¹É˜‹mÌùmfCê Á¾û\@DÞAÖ¯Ç>ßÑAÜo"‰ãùÎ�lô_%'����IEND®B`‚IMAGE 227 ./arch/player/class/Warrior/swashbuckl.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rÿ R-��ÿ���“£ê���tRNS�@æØf���|IDATxÚÍA À MæÿO.6¥Á½”BÔ•‚Êïˆ0Z¯qk B¨ù²„à)”o(„¼ªêNàÊB�w?•�žAzŸ TÝo}LP@„àãTb!~[3C6ÁÍÙñȇB0à…ÇrÀn„Y–š[¶šÛTÿ”¤Ç” B����IEND®B`‚IMAGE 227 ./arch/player/class/Warrior/swashbuckl.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rÿ R-��ÿ���“£ê���tRNS�@æØf���|IDATxÚÍA À MæÿO.6¥Á½”BÔ•‚Êïˆ0Z¯qk B¨ù²„à)”o(„¼ªêNàÊB�w?•�žAzŸ TÝo}LP@„àãTb!~[3C6ÁÍÙñȇB0à…ÇrÀn„Y–š[¶šÛTÿ”¤Ç” B����IEND®B`‚IMAGE 228 ./arch/player/class/Warrior/swashbuckl.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿú€r R-��ÿ���”ÃÅÓ���tRNS�@æØf���}IDATxÚÍÑ Ä ·1™ÿÿ䣚C®rЗ.š3¬z_@b‡¾B«øy´@˜¡RȰâí?ÌB€ˆè—W8Èu0‹˜ wAHôÎ}ábÌÞÐMkª‚»“îµR`D«<¹v» ÷ù(ùJƒÁõª|�,¬Öá†Q����IEND®B`‚IMAGE 228 ./arch/player/class/Warrior/swashbuckl.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿú€r R-��ÿ���”ÃÅÓ���tRNS�@æØf���}IDATxÚÍÑ Ä ·1™ÿÿ䣚C®rЗ.š3¬z_@b‡¾B«øy´@˜¡RȰâí?ÌB€ˆè—W8Èu0‹˜ wAHôÎ}ábÌÞÐMkª‚»“îµR`D«<¹v» ÷ù(ùJƒÁõª|�,¬Öá†Q����IEND®B`‚IMAGE 221 ./arch/player/class/Warrior/swashbuckl.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ÿú€r R-��ÿ���^ss‚���tRNS�@æØf���vIDATxÚÍm €0„×´ûÿ?¹ÈŠRûÁŽÍ ÏáËÚzÆ­pï�rNÚ ˆêœWEJèJèN1F£Cî{8DàÌn0ªXYs‘o÷.hðF<á.îPU&ñÓðú?È,~0øS¨J¨Î$ázf1×kº”nï¬FÓV����IEND®B`‚IMAGE 221 ./arch/player/class/Warrior/swashbuckl.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ÿú€r R-��ÿ���^ss‚���tRNS�@æØf���vIDATxÚÍm €0„×´ûÿ?¹ÈŠRûÁŽÍ ÏáËÚzÆ­pï�rNÚ ˆêœWEJèJèN1F£Cî{8DàÌn0ªXYs‘o÷.hðF<á.îPU&ñÓðú?È,~0øS¨J¨Î$ázf1×kº”nï¬FÓV����IEND®B`‚IMAGE 219 ./arch/player/class/Warrior/swashbuckl.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿú€r R-��ÿ���ÕV���tRNS�@æØf���wIDATxÚÍAÀ [pþÿ墴¶—K/nIf‚zìb!™YPÎá€E ¬ ŒQûÁò éÉ絆"iÜ‘B¤×Ê€áFnä3 SŠùm¸û@`ZH¾xrˆL¬…!œ¬?„yèÕ÷Ùîo·æþm·Ê+=GDÆ—����IEND®B`‚IMAGE 219 ./arch/player/class/Warrior/swashbuckl.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿú€r R-��ÿ���ÕV���tRNS�@æØf���wIDATxÚÍAÀ [pþÿ墴¶—K/nIf‚zìb!™YPÎá€E ¬ ŒQûÁò éÉ絆"iÜ‘B¤×Ê€áFnä3 SŠùm¸û@`ZH¾xrˆL¬…!œ¬?„yèÕ÷Ùîo·æþm·Ê+=GDÆ—����IEND®B`‚IMAGE 219 ./arch/weapon/sword/sword_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���ªˆ4Gll`0�@ �€@�òÄMÀ @ÀÀÀ   ððð���-•ì���tRNS�@æØf���eIDATxÚíÍ1Â@ CQ±;ÙÿûÂìP’O“2jŸ-Å2ƘÑ̉ó~ðÏq?àö‹½âN¹‡*õ@©¯ õ@íæ«B=lÝæÙž¯îVÎOêã$ë„_ÿýøÎœôGöÝ)÷°ö%àþEjð_µ—`����IEND®B`‚IMAGE 364 ./arch/construct/town/t_house1.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������@@@ R-²""¿¿¿ÿÿ�ÿÿÿM=Œ���tRNS�@æØf���ÿIDATxÚí“á à „½¹Ä¼ÿPléÄœÓõŸWZ)x6M;;!�»™€Ð‹P}„:Ä�pèû«‡.Þ׺%J Ð59 Ø$<c�Œ}…0o�Åe@'1�ÌN"TÇÏ �è´VÀìߨ5`�ê; 0r« ü_\5Hñg¤ «4 `fðG�G¿�Ö_‘�Å7vV€Q�Àc½•�`€À„'` #‰�«g`總²jÌ_K4Æž«_€£ÿöÔ~æô ö=mhú€ß�°3­€yjŸò�KΪ߯;;a>ô� úº‰[����IEND®B`‚IMAGE 391 ./arch/construct/town/t_house2.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���ÿÿÿ¿¿¿�‹‹�îî�ÿÿÚ¥ ÿ×�¢ÐL���tRNS�@æØf��IDATxÚí–A Ã0 ½N­öÿ/.B&KìÄ’k=dD!—–ôЦ‡‡saÈ.Àâ€mxñŒb§ˆÞ0€w[ /õ¼@uÙ ï/ÀÆ,ÐWÜ�]ŠÙn�›*,”—@ Gr½É�¿EÉV°› =‘C! ]ÌWÜ`@]úÇ‚hý¢> ƒØ,@Û|[À‚8õYà‚Þ?.0Dº‚ XÀ­Ï }+„?¿ ñYˆ.}™ ÈâYZ@¿/øú]!‹ ðñAº1�ûõ½ü(H7bþìƒ4 DH �4OÔ;P}“û¨&¢ª%×ç=Ðwú.~ ¬ù `` hô`ùOvzxøW¾&¤å–$¹����IEND®B`‚IMAGE 527 ./arch/construct/temple/temple1.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ����‹‹ÿÿÿ�îî@@@�ÿÿ¿¿¿²""ˆEä£���tRNS�@æØf��ŸIDATxÚí”ÁŽÂ0 ýì&”ÿÿáuÜš«‰ö²+ñzBa†A‘Jßý“¼ èÆ¬†³ŒEãØÝy–óVD÷n�³ˆ!å¹lÎwCÛq6T´ï” �ûJR€ árÇg˜H…ÒAP¸ðCŸÂ"s&<³ñfI‚€ã73dnòf0G"h|EçÝ`¼&tAä_†©ÀxtÞ ì™ 0$ðìüT`¼ N>挂Ès^@ƒ œ_\, dàÝ KåcÁš@8H.0`WtC1ÞÎüh{ñb³³L DÙ¤¯_Ù zA˜%‚ó½w¹ó,»…6¹tÙ-Ⱦ×Û�;NULÀá·y?4x@¿Ëñþ’�B`.p—eC@8*ü.Ãý%ä*ØÛ}ÓÏ;’�ò€Š›%ärµ4�PÐ<"3 Ψ@½$:ÙAp>üæ}°û�úl=@äiSñ‹‚Æ?þ Ù<@y>�çÅhyïZŸñ¶uÞÿD Òwßýùý�Ì5¡kô›����IEND®B`‚IMAGE 239 ./arch/misc/ten_kilo.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEçÆ÷ccc„„„ŒŒŒ”””œœœ¥¥¥­­­µµµÆÆÆÎÎÎÖÖÖÞÞÞ���³ç ���tRNS�@æØf���sIDATxÚÍÒK€ �Q-øAœû_×J”U)£NªoÑ4 GÉ™§}à Ü%ü9œ�šSaÖÓ Ú8–§až@®�ìyã*±AÒÖež>T€ P�ëB dÒI|@ì\àì°Õ%ÿyj ¸÷-Kû#Ï ×X˜M����IEND®B`‚IMAGE 152 ./arch/monster/misc/tentacle/tentacle.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������j~ ~$¾¾¾ÿÿÿ¶¯á���tRNS�@æØf���1IDAT(Sc`ô‚‚¨|ÆÐDTÑDTa¨|b”ÑTQ„\\ÐD˜p��¯rLOä *����IEND®B`‚IMAGE 172 ./arch/monster/misc/tentacle/tentacle.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������j~ ~$¾¾¾ÿÿÿÿÿÿ5ÖÖ���tRNS�@æØf���BIDATxÚíAÀ ÃjÒñÿ'³¬ÕÁ _m%qÙ4~âùçL`N mᦵ·ú@P™ß Œ—T ª ¿X.Õ�åy¯™����IEND®B`‚IMAGE 196 ./arch/monster/misc/tentacle/tentacle.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������j~ ~$¾¾¾ÿÿÿÿÿÿ5ÖÖ���tRNS�@æØf���ZIDATxÚÕÎA À DQÒäþGnH7T(Hg'ÿ¿=Ýq÷ÌÝÍ"¢ˆì�D,V}þ$Yž‡z „8pâ èîœ=ðx%P+p5QÙ* Ò›dììÎ’õƒÆ÷����IEND®B`‚IMAGE 148 ./arch/monster/misc/tentacle/tentacle2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������€€�¾¾¾àà�ÿÿÿú³Rõ���tRNS�@æØf���0IDAT(Sc`ô‚‚¨|Fã@Tá@T¦¨|bT0Q„\\ÐD˜p��[N¦g ¡����IEND®B`‚IMAGE 179 ./arch/monster/misc/tentacle/tentacle2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������€€���¾¾¾àà�ð��ÿÿÿÿÿÿ•Ù���tRNS�@æØf���FIDATxÚíŽÁ �! Ãj Üþ_Y Šà…¿q¢ØãPäZ>îâDs¬4tAËû$ï«/„‘Hh‡٠ǶøY ç»~����IEND®B`‚IMAGE 217 ./arch/monster/misc/tentacle/tentacle2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������€€���¾¾¾àà�ð��ÿÿÿÿÿÿ•Ù���tRNS�@æØf���lIDATxÚÕŽA À0»šMþÿãj ƒFJ.íaðúå0·á$Ç@ÎEZk¦¤>Sqí‚ç“Ȁ˷aa½†®ÆGµ ý¨à¼´¸¨V©íe‚@†!þ„Gc›cæ•©Ø®7»–]àXf����IEND®B`‚IMAGE 345 ./arch/player/class/Thief/thief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ!!!1��111c�1c1�BBBZAAœc�Îc�µÿÎΜc­­­ÞÞÞ!¼>j���tRNS�@æØf���×IDATxÚ•“n„0 ÏSëÚþÿ·õµ¨$é;Ä6"·³Ì¥\Ž‹Xæ^bQᘗÀ×ÔÈŒX J$ˆWB’sÁD”ðͬ@ �f‚,€Ñ…Á� !^çŠcŸç%P‚>aAg‹¾2ä¤Ô DAÃ78GpÞ0ÈX€›á4+p*s ± N˜üg`²×ÿ%r¿ an]Ä™ð'ÄÞÚq´]{í¨[«p-ÑÙžÞ4nô‰kÜ~×­òSn°ÚsQêÆz{ZX·ø@Cž£€¥k����IEND®B`‚IMAGE 357 ./arch/player/class/Thief/thief.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ!!!1��111c�1c1�BBBZAAœc�Îc�µÿÎΜc­­­ÞÞÞ!¼>j���tRNS�@æØf���ãIDATxÚµ“Ñnƒ0C±wU%íþÿogCUiªîa–"AιNx`ùS¼Ã’êÚ€i² ¼â©œðô¥|$à@ª(‘6øÍ#¯bS¼dæ^´0Šyç 2¤TŒ6ñÅã/ðÎð¹€ü²@@w2­çEÞ1q“(Øúcž b À‹3_Â]!*êì„Êp¨ò: á ÒžI@FÈ­{ª¦’Pò)ð(M™ bÍBÉaSë£õÞÇïŠæÑZi¯8þ07/?u³cÐ×»º®ë‰áí^ßÌ«ŸòŸòIl°sç'����IEND®B`‚IMAGE 378 ./arch/player/class/Thief/thief.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ!!!1��111c�1c1�BBBZAAœc�Îc�µÿÎ뽑­­­ÞÞÞ/ç°¾���tRNS�@æØf���øIDATxÚ•“AŽÃ0 —¬;•½ûÿß®×°"Ê‹aÍ€:éç«@¹Ã¥»6TÁ-½ìºâ]ÂEBèõF€„~- °k%“A&nF+$+ÿeâ‘â»Ï!?¸*œ1$Åù—— !;ƒ‡›ùÍĽ{æÎ$,̽+ôÆ3x{“«ÂVÔ«âŲPŠïa|r3ý9ÃYP¸‹/# ¢†`@®È <PÂñ3d®X°!È0žsç¬ÈK0x›‚~ùÛ`tº· 06nÍ$µi¸;¼Öãh°Eˆˆù¬€Rë†ñqrŽÏG§GjÅýuJ¸7TöEþM/Å»Á–'����IEND®B`‚IMAGE 382 ./arch/player/class/Thief/thief.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ!!!1��111c�1c1�BBBZAAœc�Îc�µÿÎ뽑­­­ÞÞÞ/ç°¾���tRNS�@æØf���üIDATxÚ­“ÑjÄ0#Ý&¶oíæÿÿ¶+·æLz1NO‹g(í_²â)%ÜÜóžO[4 x[ f-/Hh÷“1g·h‰d(㑼LL^¼ü‹3W…³Ä+_\OT¼…ÁJžœi2NÆ’>ómpòkÍîTÀˆøãä£zå$h= G¦ñ”¨ ! 4 ´Q ì?‚]ëaïìÚ`4ö7•.€]= aÿdüÌœo*4ÍݼA6é“ááàq¨õe '€nW ÌGÅhÉY\b\:.3GŽnàæ¯‡ÎOæŸðhÐÁ$����IEND®B`‚IMAGE 388 ./arch/player/class/Thief/thief.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿBBBZAA!!!Îc�œœœë½‘J�­­­½½½ÎÎÎÞÞÞÿÎ�1��R��ç%ã ���tRNS�@æØf��IDATxÚ•ÓánÂ0 àÙ¾3êõýßvg‡U„Äê¾FV¥|ý3¼íÕÌ–÷>Crî ´¶¸ÜAo$Âþ%èÞu±®€YžðìÝ@`Xìp‡šÃ]¡zØÀÌÝÌô$@Àt y3µg€ Š ¼-…<‰-r=\á(ô(�ÏÞ ·,µÆ:;`Ø^ˆ†ÊO´dE }Âkæ–0ÌKŒžA¯Õ0 Ñ0š±5É¡i «@1(´ªdd:`�@8]' Žö}§ ˆ@ý:ì 9#<#x¨0@Ý IÀ‘שV |«Ì·ŽE5%Î9¾ð]~ž_sôèR”¡A����IEND®B`‚IMAGE 374 ./arch/player/class/Thief/thief.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿBBBZAA!!!Îc�œœœë½‘J�­­­½½½ÎÎÎÞÞÞÿÎ�1��R��ç%ã ���tRNS�@æØf���ôIDATxÚ•ÓÁnÃ0 Ј¢m­—ÿÿÛRuÀ­] < ø"ù’í˘ò±‡»‹¬{Ef&Ø@) AçìEd¶ƒ?'Øc‡ú5Pæ~©>œê³;üq#<ï‚7:K&‚w]7‰BÕo‚Ô~]%H €U  ¸V 0Ñ‹¸«Ò%O1F. ÿk‰™È¯Õ§Ë8’Œ# 3¡HÂ}êK¹€¼ Cï“@´)0˃œ À´C„Ù_� ÌMg`�¼�iÇqÔ™SX%Ôƒ‡bf u¦4°u¡ôý‰Yèuõ-úöå:mé÷y�㼃,>CÃ����IEND®B`‚IMAGE 378 ./arch/player/class/Thief/thief.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ!!!1��111c�1c1�BBBZAAœc�Îc�µÿÎ뽑­­­ÞÞÞ/ç°¾���tRNS�@æØf���øIDATxÚ•ÓÁŽƒ0ÐÚ5:ÉöÿÿvljP¡¤úBÀo.yü8·½J)7r’\ƒ×ëV u�÷`ikÐÚiòÓ“ËBìÁß&²&YDé,8±FQ†Gñ&«Q %›otL ¥àê¶µ°†úÖ`c´fµ‰Ã}Üó|ÖxºÔ—°qÆYÁÒ‰Á.è}&K9h€iõSâÜ[¬TæL@"Èfàu@øí�¨Þ08ذmÀ�‚¨¡@u)qž9# €Z#ü·DÎøòÌ €H²m± £¯Xœn–ü~wáþ6û5ÿ†ðo ±¾ü����IEND®B`‚IMAGE 377 ./arch/player/class/Thief/thief.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ!!!1��111c�1c1�BBBZAAœc�Îc�µÿÎ뽑­­­ÞÞÞ/ç°¾���tRNS�@æØf���÷IDATxÚ¥ÓÁrƒ0 Ðh£ ƒLûÿÛ]<ŵéÐédÁѾ¾ðøoL¹í="ì¸v¶íVØ^6tqûN0Üø | ÷@)ð@<fq Ö�Âá>ŠO J€6× gl Ö@jÁ(€U¥.H A ¦ÊÜõCA�tÁì`›�fÑMË³æ³ ‚9†v›D¸È,ÌÙ3ˆè`ê_+w‰ß€ÄÊþúÓ„µ‘¹ÌÀ¡�ì�˜6ht‚—þ)?ú„€zPX6ag_¡¥ŽoPÓGéÆ,X8Oµfò¶]˜Ž@O[ ™ÙAS¥k¼”4e­×Šó8 »|¢ïç Å·Zq¡����IEND®B`‚IMAGE 1700 ./arch/monster/giant/Titan/titan.x31 ‰PNG  ��� IHDR���`���`���ÕF‡ ���HPLTE���c2���-ŠV��cD�1�±!!¿¿¿ÿ��ŸQ,¯/_ùqÿÿÿÒiÍ…?ïå‹þ¿ÊÙ¤þ¤�íu��c��ŠŠ�;/���tRNS�@æØf�� IDATx^µ—’⺄owKþIø›ÙÝsÞÿMïHåP [ á4„ÙM(}–Ú²Íÿ ”T)IqãýªU’ð_$vI8ý•°ƒ® @Öèx?@¡NÇ $ë6Š�IxÙ" ;­C­5ÕÞ¡ÐK€*‰§ÓéûÂå‚þõØ^# ÷ÏþÙÚñóx9ôÎ-@°ˆê¯jTçtœÎ§éx>}ç²ÀSÀ'’n=¨½M­­WÝ/ž.ñû“ hMÐJÛ«ø‚ô_�0âý`fÞÐÉÍý�Ô4€ÀÇÇ|y’ ¡ì§Ï ió‰ýÔ‰ùããrlÏ´Òµ•íÓ˜&jó¸wuª/—Òσ×é'ô{ÀµÓàùãø„çC0ðÈùH µÖ­gøŠÿÕŒ?&T'yIñBlã_uÁq>>—ƒîÄEÒ_�Ðü•ÄGƒ¤Tk¼Q×кÍ; sk| Pƒ6&4h#ð óårœIÔG€6M�´zAqoßHòÛÝáÈУ*ab›îÔ8mâ;hÄÖ¡‘@xà|sñ°ÉÀ`p’Ä ’,^<JÄP‡!ÞLE(·Œ§~ � ÒðO°õ- 1ƒÇËš#ƒó:‹jˆ‡u} #qlMúÖƒP]6)Œ nÅÌ�%™$ ÂÁTûÒC€z?¥:+ÓÕs][Àd ÖfpKøCkÇ ô D {·gÂù÷Y‹@2mŽ+ÿE#aùÊÐ.Ç¿f qÕô�å×ù,¬—'x"ÀhqÍ ´G«R �Ô©:.vrúS¤Z®9�\Æì €—­5èa‰j?õ~Š‹Ê Z•TÊù××+Æ•9Ï `ñ´…פ¿NÓŠ/D˜šš @%#TؘÎq-ÁŸX©1 @î`5ÙÉ‘² ªpfP‡e"äpwxÐÉ¢JZ:yj’ZÓŸ¹üJëÆ&Q ™C°MU–ˆV†˜s9&}Yð{éÝQ?7¦ˆ§Î]ZR•liÊ©AhM¥Ìå¦zá"‹Íá)i:0ÒêQýiRC *° ˆáõóÇõ‰÷j“„¦IÒïéÁÐX‚à ýI½3•[S€zþ½x°fdq~”Aï§ø Âa’¤&h쑦™½ ‚”BP a' =ˆä ¦)ò8—ìƒ=J1â§ÙÆhúõëÏnÀÒ×:4AJÊ~’0�K›Eld'‡v¦6â©MMÚ{�íp5ùŒ\èZšü�Ú<!þàã€@ÝXzãcÒˆ½€Ö¸h{l¬ I;SØpÝ nÃÃIî¶yZ%0CX¢‹^"�ûgêÈÀaà0ÀèFívy:\7ãb¨’`No˜©™Ã!¶J€` „‡HmšÉˆoNøßa°ày�öV)Æ_€¡2äüð/Xw¤øqÿÂa n`0½� 6ÎlCpKJtó~eч^™(À ˜&ì—9ÞŠÌ€ù¿J+Ë;�…ÙZi¤tF‡ï_RYÿt€®q…yz‹†$0£×¨Ð~‚Ña_&M¦º!¼�¢®3€Èb™Eu½ *¥Å¬ °ëom±s7@éªÿ“ ¬ïÀ Þ;ªö¬÷N­w0eàBv˜ã\OI1Uó™ï 3¨p]¶â€ø¦ 'µi>G¥i¿ìª ¹8yÈî“v›œòbÔ –$Æ7,Ù" pâî&ap’¶@f›Ý@šÀ2¨9cîF*#XÜû7‹@ÊÈlÿjZÓƒ{ÌàØïÁXþ·�ú¸¿SNâãHÀß�(„ÃpŸ|ñf¿Dñm BÒßÑh åHË ù“Ž Ž·LS÷¬e9!io£qÌ÷ÍZ#Œ¬ûާt³~˜ÃsÉwœ) }´šÖT&בì×x‰’ƒ%n3¸"HÀø¢"hTÔ xÅaN¼Ø•F�’¦50dY¿úbGkYÒhÛ2ËaLJyyMIÚ�ª$9S¬/šQR“D•êó§‹ÿÒ9³©KC����IEND®B`‚IMAGE 1734 ./arch/monster/giant/Titan/titan.x32 ‰PNG  ��� IHDR���`���`���ÕF‡ ���EPLTE���c2�����-ŠV¿¿¿�1�±!!cDŸQ,¯/_ÿ��ÿÿÿÒiÍ…?ùqÙ¤ïå‹þ¿Êþ¤�íu��c�ÖŒTí���tRNS�@æØf��/IDATx^Íš‹nó¸„ÿ^$ù’[ÿ=ïÿ¨¤â&v“v[§ÀN°~"G ¤ž ‘ùó+*%bã·�"ôˆ?ÿA‚�17Âñ ñCNÅ ’E~ N:ÍE~sžgùàþæoµžÞNÇÑ/'}>M‡y:fÇK\ÝzP¼NÕDZzÙ>û©«+ÀJ+ö [�œÜ¢w�B+�èó[Áêö^@j8íÍè°¶d"ŠSg¸‹lŸï¤ÀÁƒ7ž·–¿„�ò˜â‘¸v4>Ù¨pÑ=7`/b½EPä&’ø6@Pñ€ ù¨BßÔ©B6¯:Uy ¨ñÛ6ÈT‡i«aœ„7ØHŠ|7ƒ‘8®>¬2P(Œ$¾›Á@ÒI`0¦zCYY�Jê¿ìlHF¦š"^ yfЬKD5à‹"ÅB¤�"µÖÔê$Q|¹0T§è5*òÙòÝ‹Ï.õxꀩæò}îò^=(‡²Ú¤SH~pŸîÃñ8àšÉ‚ÙÉ™ôJòPEpø{X5*@Ñö @ ßæy&é' ‘ÝÃ\Ä·–&í|8¤+¨„5…ÁˆgA¯á‹Ü<P8³‰½)҃󹉔v¸ïMÐfH”‰<³¸áÃÍØìîùA!}¨Èµ·v8œÏ‡Èƒ! ynò€w€ÃÄC†Æ*¨¨ŽÉmÓ“ Bâa‚áÈôÁ!× ‰Ðáì+õئ¨µBBè¹¾» 0R3Ð2ç0 Þ s„©Z%û¦¸œÓÔd+›4>jK‚zºÞXLf ¥)¤05Lí(.Ã?ç�,ÔezñP/—Ó€âβ�P†4O^-€dÇ$mhX– c­êA¹býÇcXÇ ß…‰] â½B‚i’ 5M¾ÍFìBä‚¡XصþÇË%·žÐjåVòX“*¡Ö=¸U©ÀÀ´-‹‚ˆdý/µB6€ÌÀÝÉ÷¿ap€r8Ÿÿù{ënÙ´© iÖG Æ®Šz9ÖúÑù:EÜ™]s*$T2´6¬f 0„Â†Ž§ãõÙ 5�K È ‰Á‹ 1F Í,.—aŒý(ƒDäu19]žDäÐÚ¡­�)vAiÐô…¬$*B|“kµþž“ŸPÒe(øäK¯$!÷ $(­ Q¢‡*és0Lù|,“i\Å®±eúzäE Bãó“;`!dÔiª2¡~ 22‘§“KF_cf 5Mþ 5>^|ÄóÙ;MðÙy½VH €t¡| @?àCÏ Ë6}8²_ÐòÅ|ʛƺÐ>wáë"ÞSpšd‡w€©VhAA.ÌžiØ!Là  ƒ&jè g' NÓ2VOµ¡W„ )4ÏßEÊ o¨`$•]FEpÈòg/¡ëT¡  ,°¸.ï“D•¦©Â`MaIÐ,¡Ä^@öÿjziÙ` 2aÂ~„€l¼Z`¬ç)ìȲX ’á5gjª—×�4,Ð>@§°xä+�FXÆÔ�Hº AU°ˆ¼¤DýMjù#`Dv_€†%Zâ, (ý£¦­ ‘�’ ª¥9/�€(÷@ÈfÌ©¼� E [+WTèÜ tUÿ— ÜßAÜEöÌÝ)÷'˜ô© »Ìu‚Äæ+GÉgº€Ì DÀû²5„/Ê€Ðuó7Ò`ŠB“ýÐ¥€«¾£äh€Ad·É)mFYaÙw_в…4@‰ÍMöþGÛ ññpi �/È äŽÙ¬TŒ`SSP_Ю –¶&´ÌìÝ´¤[Ì ØïÒN>�èrŸ”4Äe $ /�4BaØf ºx³ß¢=Ø-¤ò€–+mÀ€‘´x�µhP¼Ä’Û@²ì"%Dd÷6…‚ö Á#Ë^“¯Ã¬ú‡)q?Hºç<€ ²2†°ÛLIÈOã÷@0å&ƒw h„ÐÀågYƒ»Ð4éÄÏgwhÛA·WÝ °P˜ƒAË, cRÚ{Òú÷ËC¥ˆ²«ìø‡|?MñøßOÿ}B9U¡ªd����IEND®B`‚IMAGE 1733 ./arch/monster/giant/Titan/titan.x33 ‰PNG  ��� IHDR���`���`���ÕF‡ ���EPLTE���c2���-ŠV���1�cD±!!¿¿¿ÿ��¯/_ŸQ,ÒiùqÍ…?Ù¤þ¿Êÿÿÿþ¤�ïå‹íu��c�z\:7���tRNS�@æØf��.IDATx^Í™ sâ0„·{zØ<“½ÿÿS‘Ä^°Ã.`RuMLR†ÌGOä¸òëžä"PB¿Þ¯pÿ1€4±ÈOzñrê1�2 l9üL�…¥hù)€ ”ó z?�åTJΧӔK9¾àd9Õº¿å\ˆw„ºÌ€%WîsFùæÅç ‚,´€ÿŸd W�yZŒéùT¸<¿ p…ôúÊâEB«÷l!\‰ZÀ" °zËÀt*àž(dùf„yhRÒo^õ·{6­¬q‹ƒ¥ _Õ'ý)@d �²Ü‘’|ÎA­€Ü<P+î� F<ç ³.•§;€>ÂTIΜnÞs Pò9 »Ì.@eÓ\%„ôÍòPОuJæ0P†ƒ´[Ö7”x2ƒó*I»ƒ;(,ú àÐH9w É«ƒye …€çB.$¤²–R05éøqC€0‚y¶E^(RŠÈé÷ñø‘n÷©Nʳ!Gñ€x8èàøËq €Â�ª<;¦RNåÃå~ïv9`wlö3©`2¾à€pœ#�°)2Ȉ$E%Ñ,PÊ“·3JñN˜*‚pDà"�( Õ@<ã 4ʹ0 CRú IG  µ—PÝ €9Š·Q­ Çãîw¸J$ý‰1Q6å2$z”æ”RßA$LÛó£�HØÒ*9 DrÍRkã :@Hh"“.:Ê¥r•Ý,’,sú@hÁ€âáQêL²´¤Ç÷œ}÷±“Ö ãîã’ÁÇø¼c1šƒr€S¦*­íé Ì#ƒë¨Åc„Œ:Eý(AŠ "q 2H $H¤?á J—ö428Fµ†•]êtõ) 4y"ƒ�Ä1¦4BÎa Ï~ ]7=}p9G”#ßký9†?ýYh‘Â׆Iƒ¥GW[€W¡ûò&„$è¤ËC€šGýA¨P­@­ZœìÃ$òƒiôgLSÍB„Œ5`ä â�ç(}Ò é�ù�L0‚ <’t®d逾“®å²Š Pç|eÿå•ÿÓ”±"8nÛ|Õô°Ï`É-æ¡ZgsÀÀ€¤Ü8È%óœ`¹\']`€àÝ,)”J|„Ò@ö‡Ã @p"Ѳ_¶IêÌ¡œ“)â08 -Ü@R9}î?÷ûfC$þü$.Oe @½Z¨5ƒ„"*“0H�Ô¯¶%Ñ¢ùðùùyÈYJ�ì;€ Ç0õÁH›@…ºÖ3ïâdM»éð¹ïü|85ÀÊÃÜ AÁv&À–òR€`ìö-š¦ÖïE®ñùÔd)Š6  VDBüe©¤;вßMyMÔZ³Øç: Dé„ ,|ß&‚+@Î-¬,Œë–‘ÙÊ«_jëû‚5d´h?7w”Ø{�ذˆIÿqo6�v*ûÈàž´¥êHFƒd–Bú \�iŒé=a8H$Mœ$úRÐÅRø¶Ç1¦ÿ�'$á¿„MÃñ€8D Ž¿9Ëø:÷9FÿÅ­Rtl @Ò@kÁë� ü«™´¹p“7�ÄE`PÒ@{„ 7D@ÒþÓ |=…”Rಠ¥Š @HzƒL„Í�Fÿ:’Â&o¯Ùf�š‚_Û– ¾É±¸@긻tªlÏ€E$oV7'"ÛCYRÊ­¯>I$±y ±8Éq©Ö­�ë‹ H5�xƒo³ø¤¢“©¶�R¡QhBζï¦Þ2X†  Ãö Æö¿ÐÆù2RaËi‘@ö@" Š¥±k6Û3 ’­ %’Æ78�U¡`Z}ÇB3¦« TÞ’Ée!¹N‘"²yLû¼¯÷"(¡¤o 9Ê 7û‡ q>H¶åz�# å&B;öTÈ«õ{!¨qáà‚”/!T¶¾/!Y£/&lÍ�Wÿ.ë]ctÚ‹ ’X·Y ÊFI/ïIΫDdð8iìòC_wM¢½ì†ü_‡+=Éöc"9����IEND®B`‚IMAGE 1690 ./arch/monster/giant/Titan/titan.x71 ‰PNG  ��� IHDR���`���`���ÕF‡ ���HPLTE���c2�����-ŠV�1�±!!ÿ��¿¿¿cDŸQ,ÿÿÿ¯/_Ù¤ïå‹ùqÒiÍ…?þ¿Êíu�þ¤��c��ŠŠd)î7���tRNS�@æØf���IDATx^µ˜‹NìHC±]Õ$ó„»ûÿºSŽ 3a“¹QÐ ùÈåîÐð¶O$’HRxû+" ƒó´Eè{ ““©Šü �TÈ+ˆªD>í/À†IªAbè)ûDT9gnÑ«4I•Ï8ÏxšjÒuÀé&q`ªaQ‡­齿óùýœsnž¨ 2p«ãé|>L¥œ§*)=ÓAUê ¹*ù– לseh•ý§Ù á°öáZëü0Î× õ ¯ãétPÃ_©øP¥ >~ÎúŸO§ó^§ZÀk+ïuªš ëX?)�ùt½žFª²Š_0A•|øñçsF& "õÐ�ŸLµ;þÖÿ|>]‰nºQlªÆó¨KüU�âp›Ïy| º^®W]¯×Q~ãÏ6ÿ[¿¶‹´(‘¿(çËÍ܈ʕYbº‰‰¿$ ‡˜Èp¼�ÌÀ·ËS’êæo�IòGB)™�WW)Û�R\ãã|H &Ø=E¹Ü)«äm€$7 0£kpøC‚ƒïîí„À¥Ç7|ƒ _:Ç– Tx|U©Jy#™³ä2ɨ”øuv掸¾�ÒdÂ?7‡B[ ˜o:(dB -ÝÀÚåÔ¬:…”¾àzÍY]05ˆ€ààƒdÂF‚Åz¯}3¢|>]˜38L&ÅñÜæz¸èxù3lP“TkÜéû:ŸÆ z3„º]á¾ô oô¥æt¹\ŽÊ¡*YçØ,9ç–?Í!à6ÍO‡·HìÂ…‰>Z‚nžâ)Iÿ{%ƒ€6‡‘¶,_¦Ëñã8 - ¦ZkÜ•ÚJ°½)¤>-õÝgã"Ç•‹šo„wçÆ2ÝgCÉZˆ: ”o[¬Uè å$ f ½tI>ÃÇ0Y¤ôΘQ‚~˜ XWˆ ûx<~0Ïô,4ég„aƒB7¸ !6�þÈj“êâÛ•ÔCƒ«l$3 KÎ, Jj:þê”-i}:ÄeŽQr|1t¯‚]ª1þ|$ ƒdÉí€þ#Á‘ã%pî9çð:` DÁN�ÈDœ,¾ T{;D1^Èr"AmÖu™ÐþéÏåxd+àsÕ&éEÄ>à @µÔtÈ{M™ s ˆš: æ`7 ÆSòçÁb‰ók�­ä¤²,£1îM€Ä&�èYúú Ž{â úÝ»ËB¤ g£Oí@‚aÅ(å E¹ä�I·´ @ä2ªëP2÷`rÀ; %«kÜ_˜[V’òB8”²;€k59äRæM¼{&µº¿©g8(üßvŠ2—¶DAKÙïiI æî„’ɽ�“àqÍö 171|Û«ArƒÁ�°§ÂÛ ä‚䢅H@ôJ|?€„ €Ú"‚“æ<Ù �Px;l=ßRûn‚ôŠ� ‚ Þý–}ဿà0ƒK34*iµ¿@& ZóP_¸¯è€TUJ€þ³ɘ˜^á_E˜ãËyž’]äN@ªµÊ’`’øueºj7�µ‚„´XðE� “Áàl4"ñ@‚’ H|ýú0¨Vì7ùzך¤”T}/�uyA¯ëüüßï^€‡!0woXÇîwQ728\²58>¶ý€~òƒÄõç ï@2غ‚Ð 8$a? %À;°Ãà²ýÈ\ï»±ÁÑì_E’s㤡ýX÷Fd°×$P…Çn^“ÀûyζºqÉ^ÀáIJÜè†;K&  x(Áª Ù^€ô/,IJ÷ûÃvv�‡Â':Àz#þLƒ6æÁW^t9æ›|Ò? †°�LÒ]Áúõ,‚44‡®´H8$(=¹þMIÔîÚí¸éÙ\rÁn¤6Àg{†« lzhˆI]O& ‘‰´oósQZþšm8.šÑ¬����IEND®B`‚IMAGE 1727 ./arch/monster/giant/Titan/titan.x72 ‰PNG  ��� IHDR���`���`���ÕF‡ ���EPLTE���c2���-ŠV�1���¿¿¿±!!ÿ��cDŸQ,ÿÿÿùqÍ…?¯/_Òiþ¿Êïå‹Ù¤þ¤�íu��ŠŠ&οÐ���tRNS�@æØf��(IDATx^͘‰nÛÊDsª—.’¼åýÿ§>³A"å8‰)·Ê€ ÷AuÍŒZüqLf ì]èÇ·È,M @ñMõ Ín ³o�¨ o25â;�€Z lÑwt¨Á ; `ó»°oðÜúéô|ê½Íï—¾!ãùtºÌÃpšéÉmÈ­Ÿzë½·» ¾É®Šít]þ¿ Ø—iдØ@é@Ïmnh÷öQ@iÛhšEÛ�»H h Ÿ““ y°ü>Ö@é4Ñ„îÿ¢â ÎOç3çw¡ÇÔ7v%6…=à»bï2{�„} uÝÔõ¯ ‘ »Wºlwõ¡ÿ#ÀÈS÷€¡_†½¦Ë¿„ë# }‚‰ËÍMjïIö—§‡ðÜ8M o¸@ä’Ë)•ƒn½w³Lñ) äJ×€xZxý‰Ò˜Z.´iq ë§s·6·šmìÓú /Æ�(Ú¼¨�½Wob:/Ïx›ŸÛg�@¹Þ{Õ"äKý"¤ 2X$°?!äèÊÑÁ^ŸÞ¦Ñ¬÷©¹ÁÜhóÊ ÒåÜ´z“}²DǬéj7ÇÓ»¦ÐÐ)aª;TfjÏmëÝïB0sÀå©@ZIOãÛÏaB³ŒYæóÀem†-›ße`¥(…Y<½þ|ÆâÄØ+ƒœ[ku§ õ­EÕŸg˜Î²ŠËµ­pŠò4FAuU€¬-2A9X”ÆØ?ti@ÊS$€ [ÔmË”0šfWËt‘ª?ç——{ÂÂHräP9ÙøsiÏ`±Þ)5«Ðz9(yC}:¿œºv�@rÆž+p¼=½>Y¯¨‡Úˆ1e›ƒmVÀMýrz9MWB.ª0.9`›³iœF$Sï¦>Q2S¥©Ë®ç©åC/‹‡B˜"T[”RÂ7‡fQh°>ôÅ%9©ÍÀíÀf¦Þ+‡ER*åÂ%Ò6€Þ´öÐBØkÐývz÷pî]”äJ—‚„Êw•ÙÛëûN©¯  µÛ_†þc¯òp:àr)G\”°ëŽã4Žf¶: µ™óB¨sOàô€*ÚJ÷⸺qµ$“m€çÍAÊÁNtP�r‘¬ÚÏ"•Áød6¼K[‹`nÀŠé�¶pS±¯]2{?Š^­›*èr@¯¶ï�.ÕkŽŠüÝñWl;Ù´Zh‹n¶Ù^¶Öôç1¸ 0Ãe#¬'>û›ý 6 ½RÞ9ì÷ÿªÎËéb1È/Õ«¾ÙP·¶2¦AŸø×ù|Ö§€•ÔÕ73ÚÜ ^ù|0µ?®âÃé®mË´lÀç 8Ú¶”Mu´Î× ©MÓ0€ãÊ5 …rôއƪ¡ë¨ƒD._�!¥|LõA¿�Š€” Â]^†~Y7Ù c�PºÆ8�.X,ô ˜ú ;Ž”£Ë))£«<\ê·Ó!%r¼úŽ�\òp-†Ãõ-H¥ 6©¬¤å½¾DSåêku�dUþ˜´N2.˜@®ºó ÛI©ò@$(ë2ü8ÀLÛ’f# ¯‹|�À!]Žì‡]Íz„òë–@.ùC�®t ¥ `àc¥ð€Ù6 ƒ@["� !9@ÀR ‹GÔo˜ÒÈV* HÐámfÑZ#%`Và ºq Öd&Ø lìA€\ŠŒ)å(¢é!€‘£BàW`G)ZÓq@šä‰ßîÚ"h~ „€Û8…2¬t�r¥€¸;r=â¸vä)—CÞ=Ïó<H\rùìö}Æ”ð£�A*o"(Èè8@.²Ø•ròx¤ÂÛg“£ë+ÁoIY;žA®õew-Jåc€ºÏæ1”#äGÙ8ÇC¸< ìÎÙñ™™H¥T!Ü… Gð?!3ögÑȘâXr!äÊíŸ9qp6µ¸Ré‹¿©eÅ%f_¬(…Ë¥v Ëšë«!¨éUq Eñå‘=`¤$¥vé3–Åt¾ê�ÉÁ‘£} %B_8%Yé~ƒ €/:°4 ³ü­³°ÈØÓÿÙ58"ÀõÂ����IEND®B`‚IMAGE 1728 ./arch/monster/giant/Titan/titan.x73 ‰PNG  ��� IHDR���`���`���ÕF‡ ���HPLTE���c2�����-ŠV¿¿¿cD±!!�1�ÿ��ŸQ,¯/_ÒiÙ¤ùqþ¿ÊÿÿÿÍ…?þ¤�ïå‹íu��c��ŠŠG¯»���tRNS�@æØf��&IDATx^͘‹n«@DoU?æ~çîþÿŸ®§¡�InŽ´…Ʊ’¨ª‹3þsLÒD´×öP~ !§„~à àäW lÅéå7,D¤;]ä×�ðÛÍE~ůî9_®—\Ý¯Ž—@¿ÕZ¯—çrgyE¨ë ¼æì—çâÜXd¥üÿ +� éØ�ä§€ÐrüæŽõïB3ÀÅnXÿÏBPœzk6ÿrлûàÃà„–mæû%Ë*¼‡2.YŠ“:ø0€$—€Ò®Rä5€BÂäe` Œ½ ø Pk†¬®Z÷Õ ö •¹®”Y÷vˆPûÌÁÀ‘ë•w@’Ø8Hèšœ€o¹ÓQÅ]†49ƒ€ÿ(ÔRbh¯@a(ë;õƒB¿Ý®7g!w;P®c†žA¯r/Øé@@Ô÷ûdxœÒì@x#Ýî²×Ð’†çû�çó9õ ºˆÇRøNÑ SYÏòáavà¥ö;� E¤×¢=ÿžOç$)i8ÂðæîmíΠDÀ€‘h8I¥-䏿9`3àWp§!ŒY�ù)Ìs�ˆ;o€ïq�¦˜¤¿IÒ97NÆìÀ¤õHÁý’4Ò�åq>ý}Ô˜iB¢0ˆíäB# 6’<Ò’ä A{‘œ‚‘Òë j ±’2JdPkjÁL�¨ UvÌ�"dB&�h@ª´†S¤¼RÅ÷g@ip‘îé™Áéq™ê?ßå¤;Cñsø®¡Á@©32µ †è“HJIjvºß:àÖ;fÀ@NC6g �¤gÐë²üûh¤‚äÀœÁYj]dàApß“ 0êÏP9Çä,TI‘A'dGFLë{WÒð@4 ò8ÊY¾;0Ög…r*±å Ì»Eø·ê‹¹ìOHºj­’k̳<·('cIZ!ˇ糌'"£;è·Q0¾×!À` %F|è·i9O÷gp8f¬ëÃÈ@*p\&E>PEåÉÀ¦ø ÈÀ ‰C^�D@le¬ìòíÈ,gHÎôI7˃B Ç @€Zv ¹®¤€¼6€�È÷û…#¡d«/ �¨ÉP¦V(L ùÝŽZ³¬�í™Ìø|qɧ!ßßÞ.#’ÈõîŠð�@aIk1wÑ¡5àŠ äVüížó@ÂiZº-ˆîÁ4ÞC“Q‘k¡ÍÆà—[ @¹¼]Ncn' -Û³“ vúí–kžêg¬¸ŒãÕ€û½Ï� I>>«Mƒ%S2aäP7§3AÎÃý&ì-Êøb…P c¥?Ó@r=u»O#çËÛõ6gmÿê¬  õò ªH­ÑŸ­ƒáé@'ÀSÿ8'¨¡—g ¦•Ú@A>0//~Mðç+%’h²¢N‹žh‹¢›9ˆ»Èÿ0–¨†ëÔ�h#~(O€ƒÏõuƒD@…’ A€i2ØW�QÀDÚú`$æ å”)‹'}0ó %^�0¨Q8 Á%-iÏà8@Ð~cJ�À>Ú ¾�@g)€ETAjìÝåõŒ!JEI@ä  ¸;µê�ÖÐÎÃ�¸Cd70;´I #¡3 /°hBY • ºã8@0¥‘Xî°,…nGðyƒ^”ÂüÝïQ� ƒ¢a6øàáIŽB ƒ‘º›Âô8@iÀt —åïû7G ºˆ ”ú4Ž` HÈ lPõxT#)ël4^á€0(iòÑ7’Ç3Ð^²i‘B_〄Ûl^ãÀHh"õ£lÚË ¶‡Îpv¼EÒŸ‰€a2y@þ„%-ë½(1)x,ƒi¦S'–ƒ 0Ž8ö+Ôš[Ô’à’ТI‰ (É•RÚá§dŠYê*‹M„B‚åG�£²‰!@±9†E5þÔ#0b]CÀ?CÐv@ ÉÀüШHQù|‹-kúÿ�§®<*¤]˜ô����IEND®B`‚IMAGE 223 ./arch/construct/tower/tower_tob.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-@@@¿¿¿���ï ’'���tRNS�@æØf���{IDATxÚÍA À ÕÄÿ¹[¦ØCÁ›{œa,m7οíðsX¼0Dᆑr– ‹×8…=·J˜u°)¸Ï ¢‘3qÝ®BÊ558¢à¤Íß%%° ~.ü_�xïÝ’„ xĽ ð/8<Sàí¾=Ül6@é����IEND®B`‚IMAGE 442 ./arch/ground/Wood/tree_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE����1��B��c��„��­�1ÿ�”J�ÖZ÷œ‡mRl��WIDATxÚm“‹nÃ0 åY~ýÿïHÙ(:Œu”È<IƒÆø(ïÍë)îÎ9±ò‹òqæ 4fŒÌÖÈ Œ%{ŒIH2ÓT ÛVfqŠqG$m¨¼êi®¬íO$‰ö,uŒòTeP} B0>«^ž8aF¸èaÀítd€§š’)¯uÞ܈Sk´å£èi„¨® ´×Z‚E‹˜Áyš;�Ç=TÚiÙÛ>íìÖŽWõ¹@wQƒØK 7�Sä/ê÷ÆÙëlúˆˆëOM.¾(<Uã1B_])îB®ä*` §׎HÀýN&(ò}­¿£Ü¥e+.-à°œ:@ÞœØ'Sx#î*ÀN•{Å{|vQ¿£¢¸7a…ñTøü³–™¿@N�¼^¾øÌw¨\þ;h†þ<y„S)(÷w°õˆ üT#’𠛣� É ����IEND®B`‚IMAGE 464 ./arch/ground/Wood/tree_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTE����!��1��B��R��c��„��­�¥�1œ�1ÿ�c9�”J�œc�¨®w��aIDATÁ±jQ�…á³²™K†RäÒøv¹`ºvƒÛ {d@¸Hr~‹,ø[˜>Ý´>‚] «L“‡ñû@ 8�ˆ083`þ–¦øÅxûh°ý�Öbû= %Æ Òº~'@Àä´y{,·„½X0i©§ƒ“­‰…o×*Ø–ÃA]—íÀƒ Âṕ/×C7;XÏ$Öݻ͂‹ Æ>§×îÜ„‹5õ}=ÈH}Æ_›aUu²fʾ¿«UòbDS×¥Ôõ0tÒÊØ6'éphVwwòi=ôAë3åÇz«Ë£ALšÛ¼¿_Õãʼn@¨g U×»ÒH$òYO_ëÏË…DèÍU?~ØìVõQá¦y|{YuP‡LÉ÷«õÇõn¥²¹5I¿Õ!@¨˜ñßYQí2Û ·¼œÿy-Ö˜`ðùß×b(,ˆœ&-L ŽHp`ÁNìÿ®»¹&Sƒû´����IEND®B`‚IMAGE 362 ./arch/ground/Wood/tree_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ�1��B��c��„��­�1ÿ�”J�ÖZ÷œ���Vg¼b���tRNS�@æØf���÷IDATxÚµ‘ Â0 C ý¥¹ÿ±B5¡ „„ź¦ï%LÛíûDh‰#î=Ö—÷Ž[ëX* Výâ+µ¦Çõ"€dJ¥§%®¼#ämý×¥¿³K"çH„±ûÉèQ“Âm¡‰"AA™»¶&àˆÌ ž\ŠJjilE¯¢¨—85Í3Ë·À-m} <ªÙU&LÃMJm2‚'V‹ù´éfS¿œ³„¢&ƒáƒn4 9b ßÄÇtÌ¡ñú^¨iˆÓc÷K Q'®•0ÑChŒ|Àü,Ì¿ âŸòñ³ .!Ž\÷g„T†{ ]ßAheñ÷ìјi jÆŸiý����IEND®B`‚IMAGE 424 ./arch/ground/Wood/tree_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE����1��B��c��„��­�1ÿ�”J�ÖZ÷œÀ��ÿ��ÿÿÿÿÿÿÿÿÿÿ�ÿ¼R™Ú���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��IDATxÚµ’[nÃ0 ÅPoôþ·í,éÖH#@.FÔIÁrùú  (%Byàô^Pë/\ùµ[ë„ ¡Lñd§jMNñ ÀIy îØ­]@øá»V²½5+€ô¢§«W”ç=ë5^œ°@´„дÖÐæˆD°Víì[{›sòD<"OÅ«pe:¤kâ ÛÝLGÌe´áé'àÛÈkÌe’,!êQhǪÛ\¶¦ÙŠ'ûœ€G‘AÌ!F¶M-õsâ̱æÄßnq_y¹°"Â…§j)£Rܲ’ß(…@ro>¹ (guàOò{`ý3€ÿÀäPn€<Á@ì<~$#S^R¡<î!½”€Ç;]#¾_"û&ãˆq����IEND®B`‚IMAGE 363 ./arch/ground/Wood/tree_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ�!��1��B��R��c��„��­�¥�1œ�1ÿ�c9�”J�œc����ÕÕ>-���tRNS�@æØf���ìIDATxÚ•“QnÄ ›¬4û·¶ó±©Ö"Hh†')_s1?€¸xÄÁo uxˆ®Go&ºXS‚»„KÜhÞ¤÷sdÂËLð–۫ˬÚoôLPgb7—ɰÙ�Šg@°åö'ÛäÃí2`¨ñ€±Vs@rdHÐa1Ð<…›3®ãó„Õegâ^Ž+˜:Ü!oÄ}7]ÏpcÚv´Ãt°Í ìÉv¨òc›º¤ºd×fe\ÞîÍ3ŬŒ‚7çªou{ý¯ð'q¶0æ*~ÆJDXkáL¡jmTãŸÖ/eTzFûoÁ����IEND®B`‚IMAGE 317 ./arch/ground/Wood/tree_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ�1�!!!c1�œc1ΜcÖ¥sç­{���c¼U‘���tRNS�@æØf���ÍIDATxÚ¥’QÃ0C;/Œåþž!Ñ%ˆŸYi¥ÖO€i¯S¸ZÞ´ × `TQù˜¡(-J�< .Ùx¿@m½u¢…óðéŸ2ÄŽAe9eÃ<ì dF rj!1èg°]«Î#÷´J,Û‘@<A~ÄРٚ¥…8}•Pù¸<1J9å‚·Ÿ Ä[œRÆD*¾UNš2ãk‡_ê�N`´€bb¶@×kè;pˆ& ¥-òk߀d�˜³ø%HÈî�BŒ—¼����IEND®B`‚IMAGE 610 ./arch/ground/Wood/treed_hills.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE”œŒ¥�Œ��c�!B�B�!��œ��„�k{k�{�µ�ZR!k�)Å�­Z��s�ÿ�ÿÖÛ ��äIDATx^U’Yrã0 ‰uá&9÷?ì�”2IðašÕMWá=7wïëâ~ä%¢¾DM �W ×1àù„ðš®3¶±Œw �‡^}"Ézù†Eˆ ¢øB±O˜aÏÉGð1t‰ ÑÃûĉ9u@wH…héË N¤´ZÔ›p(›„rJŠEÑŠ÷®s&'3â!D’ï‰è[`D™´QHÌzX{ßÂ{¡÷eHD&Vk¨Èâû^÷­"’�*&E£m¢iÂÕîÅÌW+Îg#!1€ÞÓ0½j€—MFIí«"ê­OîІ2‘œÕpoÜ %ði&Æ >ŸÛÌ9áÍmˆc¬ušˆhNHáH=ùP=ͬÀ'Î7¾Jwt}šðhp "ý„Ë"ËN3†î ² !¢Ÿp{\ÿ›e½Â^o¸ú§™æi¨f¸¼n–œßÍŒ1XÖúNŸùW34Z8BD>®Y#¯ßÍxýÂðÊ4±B`\›iI!y¸ò³pÑ-_½=ØS÷Δë Íñ�X‚{ÉlˆF"[LÈÚËpx¯ L“nãîÍÇ€Fí�•šÕ•Uµ›°§à£¦ÖÔ€¨Û‡(cQút/!g‰,Öey¸Gä?d©öîÿ�x}ÛéˆÍ����IEND®B`‚IMAGE 479 ./arch/construct/Treehouse/treefort.x11 ‰PNG  ��� IHDR���@��� ���•C޶���!PLTE�������1��B��c��„��­�1ÿ�”J�ÖZ÷œ]”uÇ���tRNS�@æØf��lIDATxÚµ”‹nÃ0 K5‰ÿÿÁ#i¥†fYŠ Ww–ÕèãïxÁ‡(ÌVһŷ­pYið›í\ØY×áiÅ5ŸÉȲÊó‚{¼0âŒlÏzƒSPW‹ºÇbÁïy“'ÍŠ¶—\‚'2Y;¸ÛœõwÜÂ:X,|²C‘ ͆9XÇäÔ“[XFüª—Õ WµÁ%· ZÄxËÚÊ–QV\r *ù¡p×i†±JÉ]$ïÔ&§ AÒ½@?"ïÁ‘÷è:—°HB‹Z±À¼8‚B«T:z|¡ö*À‹lßy« &¹âÂ.€îø!¤“»Ã8ßð—ç%u<‚–#gµj@â 3ó`’¦8w˜Ê>o’B2‘‚æ;ÿ_y;"d¾s<NôÙàG|Úà?'0?mübˆ×D§üNƒûÜ>æ¾€ÁmþdÐØžx>/¹”Éß&ëgØÌùk„”=2����IEND®B`‚IMAGE 522 ./arch/construct/Treehouse/treefort2.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���'PLTE�������1��B��c��„��­�1ÿ�“jA”J�ÖZ÷œÿÿ@&ª"¼���tRNS�@æØf��‘IDATxÚí”nà Ck%Gøÿï}Gµd ´˜[Q¿s¢4ñëï|ÁÒ®Ô»n¶ßïÊ¥�¸{0²C¥§õÐ å"Î<ýJɧDû¹óUS*ÇÁŠÛ¼<qÂÑ6D¢œL9£ ^ÍHà!y)óÊ ,ˆ–üVdŸU‚°�</õ¸ ÚŠQsÏ~QÜ]9%£ БTrjHWKè9‘Šœd!.f :J"®D¢Y2¸ÈADó­�pžID¸!&Âø5À´Ü}…Àt†fðˆ¯I$(ƒv¦Ÿ™ ÝdDÂ,èSÀ,ö áï"À0ÖÀ.ÀýÈœ ­ãôç€ã.œ”6«WܨupÔÒþïnm?�½?ú¡—òè`ÓãoýPæ~�ÌðéÌýÀyê»2™~ï“àý ”öCD4Ä~é„RDÌO†šÛò6ý°yêÆ»ùZÀ˜�°ð÷ `#að³éÙÛ~0¹»~�Žcò'ݘ/*JV����IEND®B`‚IMAGE 435 ./arch/construct/Treehouse/treefort3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE����1��B��c��„��­�1ÿ�”J�ÖZ÷œ“jAÿÿ@ÿÿÿÿÿÿÿÿÿÿ�ÿ þ���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��"IDATxÚ…ÐÑŽƒ0 DQ{ $ÀÃþÿßî\;­…VU­*@ædаß/ÓÀ,û�ÌŽÃ4ûÑ®AÆû~hÙ$xbm@\³måX@IMl¸\d~hÈ5h™ª°Ê8•ž„)l'ÃÁ :�ÕH`îöÕ -2½y� ˆšü‘gi€-Àžßõ¸E#Ž"îÈ—ÒÝîUC‡Øñ-|šŸÓí—ªž"pÆ0Í­MPãt‰9\9C.ëS‹p~Ní^—#ˆ dÉ@ ýT1X¬íòS ×j$4C¯«ž[(ž<gCõÒÑà,`sÿ@4øÒÐùç†.ÖA4è<A4è7 ¤à ~46§é¸òUЀ¼Ç. 7oðcY ]£lo����IEND®B`‚IMAGE 376 ./arch/construct/Treehouse/treehouse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ�1��B��c��„��­�1ÿ�”J�ÖZ÷œÿÿ@���š�ç8���tRNS�@æØf��IDATxÚ Ã D›Ù]þÿw/:¤aì ÒäÞ]¥ÇïŠÈ#¶v­!]urOûºªŽSS½1ØCç98Î g¨œpyÄݯ¾ߺå+©éIPÄÊãÁ@ÌŽ8EÒ�ÌÛ5´Â³¢›ƒŒ   wÉ_Q2K­`g6þ¯ðu¬¸\iª¡#�ØØY¬uëͬ›±Êž ¼Aº‰h.&"Œ W¾5Í£iÁ"}ä‘^b!×Ýã ɳÄ(Bò@¬ž‚Èü±ä7yû†>c üÙ°üÕ°/ðlø ÀO�s—D¼¾Âc´ŠËŽ`þjúO­êΔ à ½ä³����IEND®B`‚IMAGE 1396 ./arch/monster/troll/Troll/troll.x11 ‰PNG  ��� IHDR���@���@���·ì���cPLTE���:  0#S‡SJ®F *¯nru Q=?™›&š ´ Ë š£–Û¦NÊ|uv2Sš<qj¢RtdX'{l„éÚDt Ó¤–Ö&ÒÌÐy���tRNS�@æØf��¿IDATx^½—çŽÜ¸„}sTÞÿ)/žëÕìhìî]`)é€úX§DýøÒ¿ÓS-üo CMðOŒ#>TBèØþ ·õ¥b$ªµÔ–Û· ¡+!”F@J] …ß%HÓKW».ÕÆÂ÷ÂçÒ=U¡”§ 8-ÓYÿ])¥6ñóîŠ@N4ÆLÓWo MÕÚ„Ädm#:èáj¼ž¾X€Z‘ºŠLDÏš‘J'C àÌé‹PÑ>·GínÓã�Â×Zå~7w:ÉFSÂÇãaÖõv{<¨µ¾Ö€ÃÝgÎÇGß²Z2c?‡§G¦³ÙèïÞí™à�ó¼Î‘ç9ˆþv©€œMgÖvõ¶µÀo�„Ãà÷ÉŸ"¯sŠëVé[ ÃèÍtê éuÞÖ¤+U¿# £rlQˆH4®­…PÚ- œè»"²3t™~¼wÀm®+HÄ„ë,À>Ð=;/xœÞnGâÖ½Ç$ÖºFaÞfk­>Ka0FO¿ 0“Ÿ”"’ņþÎÐ÷Adô”œO³ï&ÿ#hç‚ÔdáÞ[ì{–`Óêzº«ŽƒÒd|®^Þ]tžš¸Hß'¤”7‘\×ù,I®q¢DB©fç”O˜°¿@è{¶ë§-çõç¢fD8�ÜÝÿœJ(Rk)ˆªœ—bB›ö]d]9®ó6ïмZYJý+ ïÞ$lzn€®±3íòˬmkZöònyË]·ˆ€BwX›@÷QÅFÂP–eÙH©¬œòaÑv‘ì·•"ÈnwYóºÎ™eží§É4NqŒ]ØÂ¶0R4Þ)£úQ�‰µlœ4î[«bÞ¶y™g8„szjƪ1µ*Íäœ3cžÅF È~$@Yö%ˆ&ä¿m,2!…Zʼ||Ó¬Û½7ê¹íʦ­›‚Š„²Û/{“ЖC %îòA&òN9cúìDûñ€9ÝNÎ�ÆH)a ¿*£)Nzp“ñÊ)ÿY‚RCØÃ"‡}â4MÎ(?:•ãbÿpˆE– ôŸ ø{@)Nûo�äáz½×AGé·�¬söòid4Y`hê†HÄù÷XÈ>êµ÷y4Æ{w½+µ«?s@<åLVÎÅ}œBüqpÿG�Ü´rýÝ弞†Á;kÿ ê‡Ó:P*ge2s¬_°@,«Å»aœsN¹)|ùDiõDÊÝ&gÚE„¸g}Ó¯Ø?˜œÙíh”7H˜Äº<Ý^´ 'í¥œ-:×t–º%=½ ˆ»c0Áû]¦Zk!œ¦K5•" IM–m-µˆ àk�žb‚1!ÙÐ�ÛBòb†b1HiКø)à†˜ ¾ñ‹!!”ÐÅ_©°5¼qb§¹Hàƒ u¥”7�XËŒŸ^ÔrŒ,•"ßúOªrt¬»Ò~ÇA)Ž5Mñ’ßpÀµ–O¦/¢—õ´í;Б—kGk_¤t¹Ø%»\ûñ‚¯TAò<ö—LÄËåÒ_v~Á?§Kß�ÀG€}.óå�ΗgûÉnâ„)¥B°ö)ïwLüù=cd›^I­Ex!®ÿˆ‘JMqöÕ����IEND®B`‚IMAGE 1477 ./arch/monster/troll/Troll/troll.x12 ‰PNG  ��� IHDR���@���@���·ì���PLTE���*:0?  t Q=J#S  #S0¯n:u ?JQ=r‡S™›&®F *š dX'j¢<qv2Ë Rtš£–Sš´ Ê|uÛ¦N{l„Ó¤–Ö&t éÚD›eˆï��� tRNS�����������‘¦ÿ��èIDATx^­Ö"¹�`&ì¥JΩs"ýÿxžÝ;Í5šöéësÙm[þ�Œð5€ðDþ:y±ý—,…¿=¶SLáò`P/æõ`âæ½k¾� h=ðKýp€iKþìpd`X–²`*Î?ðº†&÷pÓ÷P´.U@`3,ºðOŽ«—Ë@¢šOÃ2 –ŠáÏu b{ÞeøHÒ¥Ô*ôJÝO¸¸ÿÀ¥,¥|Ï*Šî�P+½…O�‡š¦0†œ«PàÀþ$0Ÿ?¨n‘àã­t-àÞBŠ>ØÏ…¤–óù|9/Ã¥?ŸQ)ÔÚÜVIýç:`]� žÏçÔ¶—Ëù 5´Îw€M¼sð)¢{‰¡‹ŒÓ¬TôÞ²œÄ÷nߪyngÇó¬Éî× B`ϲͭ·jl‹VxÀ È¥¹·³qíXáÑv޶ӥ߫ƶóØjMCYˆî—`j¾4öÀ �Èb[CëR/RÄæÞ±fÝ\óÈÛ´ÊvR8ÎK«È¡Áv&Ť;¾'œÖàþÝX²­+píÞ£¡œUÛ:b眳½3 ¡ÿQƒïC� .ëéÄjš4ш¦+1Ò¿ÓɈêv;õßu¾/AM¤OSÆiʺÓÙtziui!W SWÜ ðÝÆ¢ËÀ8ñ€ª&š&ƒ`âH—vŽB¥”ÖzÈ7�@•™Ê2X Þ Áé¨ô4âÜŽ®clÇŽre˜æ9ßœþ¤à iÑ¥ †*ˆ'mœÁlš†¨mÙµó8m¬·qîæY퀡‚íÊP?�Kª/ßÍ6×°Ôh›Ìc†¦"& ¸¨¨ £Öºt#X€ƒ¯;›;Š~lÁ)jrC uMirþííu@€Xêhìbðâ“ouµü¡ÍªPÆf¬7Íæ÷o·À@AÑZw pÉKHaZ‰”B`K#ûþФ¿ÿþRÃ-�(º!ÄêåÔ‹HZãLÙe…LʪÃÛ_¯¯¯ooøb)o˜þ³4Þ§°n)Ñh;kLÚà«¥œ`/‚— )MQ‚rD™œ§+ܽëí&}òA‚uøòXo×÷½¤àW Ñuùá”÷�rƒêz½n×Í:‹æo*�ÈŠUÍ®„ÎNÅw„݉e­õ>®)‰lãZïÎñáB©‹ 2RôÞËõBÔ/�¦w)l[I!ˆ¸fÛ$¸_�²%/Û:×ôÄÛ~Û¼äü4�¦õ A.½HŠ1¤(JD,> °?3Hj²¤ !yaHéŸlo½dˆ1ãšDê ›h/öIÀ5Â*%T"!øTCYby® =@)d¼5/ðh ÆöÏÜ;£Š6�ziBbX–¥�öýsC ŒšJYвŒ"˜—úÕ“Ï´.zp €ð¢+0v@O?ǹfø$-{·h8<¸”N1~š¡”ò<�µâB7ä2üP›Ó®¹©`ÁçRʲ۾v(Cá§^–²o޽;F|:ƦQû!8w<< s<æÎìL×]'·>s&€2q^§£s; ¡ë´Ìæ8U@íæà ñx<Ndž8?‚ò¾³ŒÇóñ!óGúÔ Ù75lÐóÄ$ÌI©ø=3:Îæåð¿ÆËÛo¼½¼ÿý “ŠDkw~Ï����IEND®B`‚IMAGE 1385 ./arch/monster/troll/Troll/troll.x13 ‰PNG  ��� IHDR���@���@���·ì���lPLTE���  ?  #S0*š :u ?JQ=r‡S™›&®F ¯ndX'v2j¢´ Ë Rtš£–Sš<qÊ|uÛ¦Nt Ó¤–{l„éÚDÖ&€Å”���tRNS����³“fš��¨IDATx^½”‡²ÛF Eåm{co*þÿÌržó,É–L;31Ã{x{úÿ£úC�`„Ÿè-šÞЯS(®}$ V°2fà€í’r<?�P)F€¾W=î©fy °i Á7ð¨7£*ád‡Þ¨×V`Úrøêñ�»úaPÀÐ×äu;ñ¶ÆFÚ§†]d”ª.LZ¿)ÓÊù�¬T_Åû{¨(Ðô°n±¸–ï< U¦Q,ƒH%(8½Lpö߬÷Ç"ÀþѦÚ7¨bë>ïÐ}€òµF?œë7jÆØ×Â¥T€ýÌ´X•¹ëΕ�5Œ‘7ƒ”BtwƒèÀS\ã4¿{{[¶–Üz| :=ÏÝìyž ¹_ŽòV‚÷ðT˜“.8=vÊh|Û¥„ö€çn¶¾!¼puÛø°®›ÇnŸfÕ½·€PÎÍ€v5ŒQõMšØÂÛl—sû‘° �Žsßiòh±›I3™…_lÕ—æ£Õ²Mëe»h®hIDw'æq÷Ê‚]7ß|�B#�-b¦ ëi2D#ÚE¥ôºpY£ß>“.¡Dm«Ì\&Ái³±‹é;£øuâÞÜ·—›âK�ÔU¬hš,‚M#Qê»^¯Sëö„T?8.%‹§«6Óš¥};¦Ô¼"�îpîRˆ±J c½E±MCÔuìë\Ì ¾@ ƒ"à’ë+,³“ŽcR#<¦aXä…¾W¤ád”QË ¦Xb0‹“…R;ðšiª“ŸŽ0(Bp‹Yh\R %äÐhZªhèD+lÆ}C5ÿXEĨh!`8ϡħ•Hkv4²uV#5ó˜hAýì@ @¬iw¼ä¶”’×4“xÑȤ>1ie3£z|&€e”aú–KiBÈqÝr¦Ñ-Î}ŒfÕ“äP£Êá{J,9O©Dí‰äsÙʼ̳<ò&pOl}ë¶ÒæKtïgó¬ŸG9ÃÒ·m[r k‰É?þýrBþa™nO�dD}»Ý¶ÛæÐ¡ý¼ÜÆG�€hÖU]XðW€u}¸Å9BZs.e×úëý/�éÞm}ŽÛKÉ!äKxøáË÷L…²­sŽ5·K8°]�ˆåÜ–²ïÄícõo�8|e(¹‘’s*Å7ÛV¢?¬w­ E %Á5ÇR‚k·-‘ã�ßÖ9£.5RÌ ê;< Ø(E!„c…!çs< àÖ[­Œ€ØÆ’ �‚Æ&¹óQ ‚†”ê•f,MÈhIJjNdŒ2ƒwÀ’Z¡7¬kù(fE‡CÌ }ß+À¶u‡-ôjù÷è@ék=D¨ñ°ƒ*Pô‘|ù XŒšŸÅúH‚ÏÔqð½Ùóã”êï†ßJ©ßpmšâ‡žôÃo�ƦÑw«)<°öz•ÅÞ­Ç ÅGåÚ¦y®÷‡¶þš¯ÛëTšï,y½ÂÁ&à|݃ï ~¹M~•#z‘]>5hùÐÐmZ¯x¨ ‹"ˆO÷"îÔkç? ÁÝ×|ýcÀ‰-ZkÏÅ�hMYÔ¾w.����IEND®B`‚IMAGE 191 ./arch/traps/tspikes.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿@@@���þSÖ���tRNS�@æØf���^IDATxÚÝÎA À0DQ5ÿþgî¢X¡f !›’Y˜…‰vl†Z°F>Z,€·B€&jôú}ÏÈZEÖAý!ùˆLx€àS`÷ŠÐÀÉ 26Õd¿Ê°ŠH³<î����IEND®B`‚IMAGE 237 ./arch/monster/misc/Unicorn/unicorn.x31 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE��xÿÿÿ¿¿¿ZÀ¸z���tRNS�@æØf���’IDATx^µÍ± ! †Q»pŸHg¤l8?xŸ4—yã&œé“¯@ð„lúiÜvà^ìØ€ýe_¸¨ž¨ô-n2±Þ7­TÜ/?‰.`ÌZfëÇÛ«�ièD4hC[3LºTZé `J0(Ã;À<Ð ò4R­ Z€$`3êJ©~°íkUše®ô·>(m È‘ð3Í����IEND®B`‚IMAGE 234 ./arch/monster/misc/Unicorn/unicorn.x32 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE��xÿÿÿ¿¿¿ZÀ¸z���tRNS�@æØf���IDATx^­Ì1 Ä0 DÑQá~+Cn£½ƒàû¤É}RÈJŸ)_›“Vý 2O,2¨^,bØë #8€:'#ØN@z Ѐ:8>êP¦¢Œ d_ :~$i!u’¤.ØxÖ$.âm'=C§¢%ÐA5Í0]¼d ÁsAB<ýƒ(æ Ì‘îü‹¼¦xN ^ÜkÁ 5[pk����IEND®B`‚IMAGE 238 ./arch/monster/misc/Unicorn/unicorn.x33 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE��xÿÿÿ¿¿¿ZÀ¸z���tRNS�@æØf���“IDATx^­Í1 Ã0 ЯAÝ ‰!·q†ìø|�ß§K ¹m´®ì9ÓûB­‘S7çRR_Ìó»Æ<3°„Âj=&ÈAò º”¡ü¼®UI¦Üh}n/Õú AËö4:˜ 7¿"¬Üwº’{VÖRbƒI èꩉ¢;*¨$ܘ&#":ªX–����IEND®B`‚IMAGE 237 ./arch/monster/misc/Unicorn/unicorn.x71 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE��@¿¿¿ÿÿÿûÌÚ���tRNS�@æØf���’IDATx^µÎ1Â0 …a+ø$UNr «â(“'Ë}§Ä]ê„þ!Ã'+zô³vY`ãVá»É‡{ÀóŒö§³FÅo èB‡éõÇÀhñÈ�´ØC:¢‘;p¶{îРœã$`8Mô/èë…¡p�’P܉_:ìWb– *ËV);ïÝg(¢ªô¿>syAMˆýÊ<����IEND®B`‚IMAGE 237 ./arch/monster/misc/Unicorn/unicorn.x72 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE��@¿¿¿ÿÿÿûÌÚ���tRNS�@æØf���’IDAT­Á± 1EÁ§`+A®Ìº*VDˆ #GÖò«ä8rfàO¼–`qÎ#‚Å»ž™“Ôê ®1*Ü™¤-à|ãÐÔ*&I‰ç‰ƒ6‰gë|˜v×–Á‡¥v£2¥ÞnL¦]°¸´µÎRHm%-Õ’¥{øH–tLÉR<XÜ:º_·àË…âÁ,üêÉß¼�«]@KV÷����IEND®B`‚IMAGE 239 ./arch/monster/misc/Unicorn/unicorn.x73 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTE��@¿¿¿ÿÿÿûÌÚ���tRNS�@æØf���”IDATx^­Í1à …á'¶r’ˆSu¤9…•©â “•ÑwÊÊ)V×¼ñÓ/7mÁ&bÌI<š8íÕ»Ö¼é}ÁÚZF¨Ï$WAdž f|ê®ã IÝŽƒ£HÖð¤Á k´{ÀAÕ ‚=Vœ¬}–Â6ÑTHþ’ ´j‚MêrA4À A<À üt¸EQܵ/Þ‰Dâ^#Â����IEND®B`‚IMAGE 1676 ./arch/construct/town/university.x11 ‰PNG  ��� IHDR��� ���€���»½’)���'PLTEÿÿÿ����‹‹�îîÿÿÿ¿¿¿ R-Í…?�Í�ÿÿ�.‹W�ÿ�6Ì���tRNS�@æØf��IDATxÚíš’œ8 D¯ÏøÆóÿß{ny…l°™ŠÇ­+zv IIÑKËÖáŸ[·nݺuëÖ­[UÀ„éÁLSGòEE�Ló2ÏÉ×Á„y^–ŽÜ‹ŠL˜æyîȽª&æv¸U‘)%OsGî%E˜:u¤^VnêH½®œ[t$^U§óY‘ÿ¯§ë¾_¸�ËÙÐÍ÷ë™|:ŸëçS@©éÊg} Èäøh«JÈŒc)®NÇG#B¦U?á=Ÿ_2YŸm1"À#¼ý[_/‡¶ïù€ðõÂ) ¢Ñgúâ¡øb"Ÿ÷ï·HÀö¿Äû| ˆ};“þ’ÏÓB$|í /Yïzá6n DTf` „€Ì;0ÒÃï�Ég€e ©ÂAòy<4ð¡-Ü�@9XñÄ$D‘Pô«9Èlm±ï¤�g€¥{kˆ‰ˆXÁ‡¨·ÈûÀºL×wšr@•âi—Eãä—À{-ÚðÏ’bw{°. _@ˆxôP¢Hh|Ö%:©Ä‹”ÊçÐôo|‹Aï`–]Ewü Ë¶2¿EòH@ü‹xPÀ²KIOSÚžÑb,?€®Öb·JZí…¦§´‰€•»WüÈxØòo|‹‰1ÐÕZüb ˆ‡�îTI(‚«·˜p¹êÜB%y( לbz¨R@`sxœÔb•«·X.ƒº ùÅH«ìàÎk±^=ê-–ÙuëBlž×bñí¥ã¯ >w^‹C2‡øq6Åj`T~p'·h´˜Ê.Ôõ®¯¡€Ÿ§Ø‹ª#\Mº Øl±/Z\]õä±kÐ}l±MÀ ZÜžâÍTùÎmññSùÃBm„qù³¬¶8¬-æyu„3[vC¡€¶¸’½bÎo±Â~†ª´˜†–"à-¦ x*ì†Ä$ûqö„xÑ×_–×AÓº§€×Ü‹±ä×jmq’Ø&´ºÏÉwÉi¯-¦VÛ\¶×|Ž¿Õa©¨-.m Q$ Éw~‹Õ@»þ*_rðårÛl?N/˜b,;Á‹ Ï¶1Ay`îî6„s¦X¡€ ŸNqf[ ›oY;@æq`H€ ÏøI˜ ÒûlÓY!š¹n†žüåØÛ w-õœlæ`¾‚к™"á½^c§Ø�ñ4@Ê~&ɶ1‹õH>½Ê"!F:X7|6$ù6¦­GóLlóÀË y ê¹6X,¶1m=Â5¯\(5P„¤i•�m3[p™$ɃkJfù¯%G>Ì×#œE?„a€aõÅE¥3íú„ežƪuT¾QF È¿zbeÔ¹™èJ¤ƒ¦|=¢Œ4¾PŠt¦—#ýúè¬;òwN±ê²LГ¬ÇJ¤Î;£€Z¤ P_ŽL€«XVªÊÇDR¶7‘6ÂæàZ¤P_Ž@Þþm‹U¥.’~¦ "Å6ÒFØ�µHàúr¤=Å'‰Îªº²v£<ØFÚ 4@-Òç sÙb{XufÝiQ<4Ä'ŠH  é\_ŽÌGõù}“ª[Àg†ˆM¤h€k‘NùÉoÿN�ùwǪ{ ›H@mеH×;IÎoÿÈÂ<·¸Œ”ƒ…ƒ}o`"ñ9™¸ÍíŸB®ão¥* ¾@Ø(|¡¼ý«*dtI†ˆ2Òg2@òu¼@¸,ÿtå|n"kr_�òé·‘mµú‚#ÔÀzayr’o‹€}Z‘{Á}h|¥êUû"» ¤Ð6PŸAü9’E5¡ªÏª†HáÐ@¶(@5r¨Ž ´oJ›¨g»ÈÁRÇÚÂW*Ø™FŽaÓŸŒ0á²³]äÕÚ`ñYäÅšlò`gÛÈ« ,Ë"ÉΑ㠬¨zï— ;ÛE޾ SÍܼ¬EôEvR@=µZµ7’EF ¹þ òÖ­[·nݺuëÖ­[·júäyš†¤����IEND®B`‚IMAGE 230 ./arch/monster/goblin/Kobold/unusual_kobold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���º��ÞÞÞ‰‰‰‰��ªªª UUU000DDD°JÕW���tRNS�@æØf���sIDATxÚíŽ9Ã@ Ääc-‘ÿ°l“ÂÚÊEŠÐ4C ~göýpf+CÇb‚L0Z4Á•;;®Lû ªêsq!*‚>õYrn' é“ �eØ,h&Õ¾WÐ a‚k¡Ê¤\õ!¡ßD§Ì4^äZÀ͘/T����IEND®B`‚IMAGE 238 ./arch/monster/goblin/Kobold/unusual_kobold.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���º��ÿÿ�‰‰‰ÿ™0‰��ªªª UUU00�DDD:á(P���tRNS�@æØf���xIDATxÚí»A Äî±ûÿÿ¡m(.[QP0E¬$Û??çìùåœma¿Ôk_(¨;øæ«B=yâJpÔÑ+ $!¹mŒ1w¼ r>NL¼7(@4¶WI¬®0 q´bÿ§Ä"®øfš?ø™{Ç“1/:T$J)Ñ����IEND®B`‚IMAGE 367 ./arch/monster/undead/vampire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ 000UUUDDDÿÿ�™e0uuuΙ�Ιe™e�ÞÞÞÿΙªªªÞ��ÿÎ�íÁ† ���tRNS�@æØf���êIDATx^•“ÉnÃ0CûfÑæ$íÿm 994(c(󚋾þ'�®ók‚;Ð/ź¾Yúêvýw ˆ_«÷îU ᬷŽG} éÀsç51¹�@@MΩz"3Ð J žWDê0ì4îúJ™¢‚»�ßynba§y'ðý7Äf½"Ò0ÈP¹�O¹vƒTJýÙ°}µƒZp4ꤜ8Sq (o8mæ'Àqs¶†a´6§ÎüæÏÒ¾,Þ��0³x +^ ’1†Ùk¾§/Éó²§~EßÔj+ˆÿ����IEND®B`‚IMAGE 366 ./arch/monster/undead/vampire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ 000UUUDDD™e0Ι�Ιeÿÿ�uuu™e�ÿΙÞÞÞªªªÞ��ÿÎ�ÎôòÐ���tRNS�@æØf���éIDATx^•“Ûnƒ03{± $iÿÿk{´IZVH]„|ÌŒŽýÂíÀ5¿6¸ãRX¬Ká‹¥·‡P ÷1h$|­1†Cv-„³<ý)¤SOï á .@ÏéÁƒ–gfq­A+Äûˆè2C†½M»„±R¡© ¸Kð28ñ,caNgàõ5$D¹Þ uɈ^ÈP¹O¥VÐTƒ¦DýÝP¹»ƒZp²R'Lœ)Ü âÎ6ó,pǜۆalÛœÚó[˜ßH»YÚý�l†™Ås·æÙ÷Ý쳞è{”ùÄ×ü�“Š 2C†R����IEND®B`‚IMAGE 186 ./arch/monster/undead/vampiregen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ²"" R-—žrò���tRNS�@æØf���\IDATxÚÕ‘A À@ WýÿŸ‹¥“–î©+ääD Y'J²Oy`IÕï��·¼h·n˜„À=@Óz„÷n;#ª0ŸÒŸl£г LE30Z?ÓêŸÞÅ¿f����IEND®B`‚IMAGE 177 ./arch/monster/humanoid/Arabic/veiled_woman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ðæŒ.‹W�ÿ����}T ���tRNS�@æØf���MIDATxÚݱ À0 Ãâ†üÿå"È.žZ ^HÖúcì¸N…§°ã9‚Q ŠFÑ´K•ªBOîN`· S,œŠÌ—'‘ßó½¼Ö- ½Ëí����IEND®B`‚IMAGE 177 ./arch/monster/humanoid/Arabic/veiled_woman2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿÒi¿¿¿ÿÿÿ���;j£}���tRNS�@æØf���MIDATxÚݱ À0 Ãâ†üÿå"È.žZ ^HÖúcì¸N…§°ã9‚Q ŠFÑ´K•ªBOîN`· S,œŠÌ—'‘ßó½¼Ö- ½Ëí����IEND®B`‚IMAGE 174 ./arch/monster/humanoid/Arabic/veiled_woman3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ��ÿ����°0`å<§Â���tRNS�@æØf���MIDATxÚÝŽ1À Äìÿ¿¹ ÇЉZQ–³’{þr͆`ªütTrE’òIÈ^ ôû£Ž%/bÞ0IùÚwñ~pÛA„1����IEND®B`‚IMAGE 226 ./arch/player/race/viking.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ¿¿¿Í…?²"" R-���„žF���tRNS�@æØf���xIDATxÚÕŒ1B1 ÅZ>‰ïcR“…<$ƒ­·~ŠÛçcÀhzoÅ+ˆXÐÓE? {ïɃ´y±ëDçEŸ,8\J±°‰fÁè¹q‚t£€u²rÉP¸ßÂ]˜™æ@ÉPç‹ åyZ-ï÷o<�ïí7³����IEND®B`‚IMAGE 226 ./arch/player/race/viking.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ¿¿¿Í…?²"" R-���„žF���tRNS�@æØf���xIDATxÚÕŒ1B1 ÅZ>‰ïcR“…<$ƒ­·~ŠÛçcÀhzoÅ+ˆXÐÓE? {ïɃ´y±ëDçEŸ,8\J±°‰fÁè¹q‚t£€u²rÉP¸ßÂ]˜™æ@ÉPç‹ åyZ-ï÷o<�ïí7³����IEND®B`‚IMAGE 222 ./arch/player/race/viking.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿Ú¥ Í…?ú€r²"" R-���§ƒéÚ���tRNS�@æØf���qIDATxÚÕŽA1 Ć6$þÿ‹)í©Ã"í©[£ê׸­û:HmHòc@&Þw¼ý>f Y>ðc ¬o€ > jVn`>‹‰·ÐP(]ðA{è/€ 4òœyq_p1à$@\ ªªèßx�ÀPîN­í�����IEND®B`‚IMAGE 222 ./arch/player/race/viking.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿Ú¥ Í…?ú€r²"" R-���§ƒéÚ���tRNS�@æØf���qIDATxÚÕŽA1 Ć6$þÿ‹)í©Ã"í©[£ê׸­û:HmHòc@&Þw¼ý>f Y>ðc ¬o€ > jVn`>‹‰·ÐP(]ðA{è/€ 4òœyq_p1à$@\ ªªèßx�ÀPîN­í�����IEND®B`‚IMAGE 237 ./arch/player/race/viking.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ú€rÍ…?²"" R-¿¿¿���wwkø���tRNS�@æØf���€IDATxÚÕ1Ã0 Ã'–ðÿ—UÒMæÒ¥…}Ò@„bÝ+dz@í½ÁB³n#×›4ÁÔÑÞV0§cL#ÀÁ®BqêÒæ0Pœ™Ý+¨~źmÅó=eŒ\ƒÀ6"M.¸®¬Ü xA!V@ƒ/„5¶±ø¬?âi)“âb����IEND®B`‚IMAGE 237 ./arch/player/race/viking.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ú€rÍ…?²"" R-¿¿¿���wwkø���tRNS�@æØf���€IDATxÚÕ1Ã0 Ã'–ðÿ—UÒMæÒ¥…}Ò@„bÝ+dz@í½ÁB³n#×›4ÁÔÑÞV0§cL#ÀÁ®BqêÒæ0Pœ™Ý+¨~źmÅó=eŒ\ƒÀ6"M.¸®¬Ü xA!V@ƒ/„5¶±ø¬?âi)“âb����IEND®B`‚IMAGE 224 ./arch/player/race/viking.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?Ú¥ ú€r²""¿¿¿ R-���„Ÿ]ÿ���tRNS�@æØf���sIDATxÚÕÌAà DQµçßÿÄqKL*eÓ|$6~ûË<ß&ý„ì(Ø‚%lj1z´RØYÐ{/4Àöi¹ZÅ“»+ÚÈü[±s¡Æ-A™$2«ãîþÉn�Æ#ó«Ï+{WªŽÈ”']/����IEND®B`‚IMAGE 224 ./arch/player/race/viking.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?Ú¥ ú€r²""¿¿¿ R-���„Ÿ]ÿ���tRNS�@æØf���sIDATxÚÕÌAà DQµçßÿÄqKL*eÓ|$6~ûË<ß&ý„ì(Ø‚%lj1z´RØYÐ{/4Àöi¹ZÅ“»+ÚÈü[±s¡Æ-A™$2«ãîþÉn�Æ#ó«Ï+{WªŽÈ”']/����IEND®B`‚IMAGE 195 ./arch/monster/insect/ant/war_ant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ� R-Òi���²""±Ý«;���tRNS�@æØf���_IDATxÚíÝ @!ƒ;6ßÿ•ÏôF04¨ÛÖá[ö3ž’p—�°¡ª=ÿ"1­]0bÈÚIgî"b:†ÒB$–¢×#ìPVyaо*9kþ#( ÛQ¢š)O'ú|0§óD]����IEND®B`‚IMAGE 192 ./arch/monster/insect/ant/war_ant.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ� R-Òi���²""±Ý«;���tRNS�@æØf���\IDATxÚíŽA €0 cìþÿËNZÐÃb@¼v {™cü+Æèœ¤èÐñ:%De/´HL2^ˆSdbæpþz*†­Âtyn~oàVÕV˜_QtÅl¾s˜à¬LÑ‚����IEND®B`‚IMAGE 193 ./arch/monster/insect/ant/war_ant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ� R-Òi���²""±Ý«;���tRNS�@æØf���]IDATxÚí1 À0 ]Eúÿ—+<$ƒ±¡tH4øŽÇÍþç$'AªÃ¥=•ôCZ>é…qy"±¸aÜ€c ÕE·n¿ÄœöO«ãÇéø¦ì„sÇ_n¾ç ¡Ãù����IEND®B`‚IMAGE 195 ./arch/monster/insect/ant/war_ant.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ� R-Òi���²""±Ý«;���tRNS�@æØf���_IDATxÚí1À ]šûÿ—Ü!ÀP©KU…áNŽþ¬ùb+µN?På9þ•¦œÖú(Šy ^ê´t$RøD˜N~6˜r-ùF¸a1 ßT á… ¯çž›±×Seº����IEND®B`‚IMAGE 199 ./arch/player/class/Warrior/warrior.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���fIDATx^µÍÁ …0 ƒa2Â›à‰ œ õþ3Ñ^ªÐÿñ“£àÃlf±ÿžÀ%«‚m¦á¹ÿ›dJ6ŽReјæãFÆåklÑ,”¤Pkd^!ÛŠ{ˆöÔÑø¬Âxu‚ã¤����IEND®B`‚IMAGE 199 ./arch/player/class/Warrior/warrior.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���fIDATx^µÍÁ …0 ƒa2Â›à‰ œ õþ3Ñ^ªÐÿñ“£àÃlf±ÿžÀ%«‚m¦á¹ÿ›dJ6ŽReјæãFÆåklÑ,”¤Pkd^!ÛŠ{ˆöÔÑø¬Âxu‚ã¤����IEND®B`‚IMAGE 203 ./arch/player/class/Warrior/warrior.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���jIDATxÚÕÐ1 À0 CQ9þ÷?sI=š*:EC èa°uX˜Q‡UD�ú÷¦°Jø ÈlòìÇ +Eð 2�¨WF ô ‹¨-ì Y#lHØ»Ü îŠ=ð¢‹ÿ@8@Ë�:-\¶~/1,����IEND®B`‚IMAGE 203 ./arch/player/class/Warrior/warrior.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���jIDATxÚÕÐ1 À0 CQ9þ÷?sI=š*:EC èa°uX˜Q‡UD�ú÷¦°Jø ÈlòìÇ +Eð 2�¨WF ô ‹¨-ì Y#lHØ»Ü îŠ=ð¢‹ÿ@8@Ë�:-\¶~/1,����IEND®B`‚IMAGE 204 ./arch/player/class/Warrior/warrior.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���kIDATxÚÕA À µ™ÿ¿¹,‹í!&‡B®( …ç¢4sNº &©¡®ÈÐÀ4"Pv¢â—’ a ZÁ)ü bUÿð lPñ5btÜF# ÝqŸŸ~ :x/gåO9…N·+H����IEND®B`‚IMAGE 204 ./arch/player/class/Warrior/warrior.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���kIDATxÚÕA À µ™ÿ¿¹,‹í!&‡B®( …ç¢4sNº &©¡®ÈÐÀ4"Pv¢â—’ a ZÁ)ü bUÿð lPñ5btÜF# ÝqŸŸ~ :x/gåO9…N·+H����IEND®B`‚IMAGE 209 ./arch/player/class/Warrior/warrior.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���pIDATxÚÕÐA 1DQÓy÷?ó0Ò aZ³ëZ¦¾…&Þ#g`­%Nq4¿@8ˆ9°&6xŒÀÞÛõÕ‘n.'PÃ4 õ=îˆè¹#úC$!:É=Ű~–Õè·5ê@Œ@½k� x‘>C,v>|X����IEND®B`‚IMAGE 209 ./arch/player/class/Warrior/warrior.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ¿¿¿²""���gÅÙŽ���tRNS�@æØf���pIDATxÚÕÐA 1DQÓy÷?ó0Ò aZ³ëZ¦¾…&Þ#g`­%Nq4¿@8ˆ9°&6xŒÀÞÛõÕ‘n.'PÃ4 õ=îˆè¹#úC$!:É=Ű~–Õè·5ê@Œ@½k� x‘>C,v>|X����IEND®B`‚IMAGE 603 ./arch/ground/wasteland.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE®®yÊÊÊ�@@@H�888™™™ªªªee0¡¡qÿÿÿÆÆÆ00�yyHe00��8�� ®yy¡¡¡HHHΙeyDDv�·��ËIDATx^=“ ޤ0 DýÏèî™ÙÝûŸt]$Œ%‘zqGP)Å3%5Üù~,¾–W^ª95 ù$O�»*{(€1¡%áÄì 4•¦jª½Oh ¹3EÝŽ_`|§–.ÌN^@ÄGM¨÷*fµ÷ÞÒcYSŠáþ~›h §m�ÛaÄŽC½u)íiñÎN©²Ëg &äM$BðÙ@`¶N"œ)kü‘ �š_v>€@Ç$ýóQ…ƒŒÞ«Ž äfœÂyXÇ×ÕŠú�AÌÛ ¶Ñ�ô’€»“‡¼�×Pœ³SïÀÎÄQAèЧ{Í €â…ÊvëKwûÙæ¨‘ÀßH d…Í& 8õßh‚èîA¾­C”ÐÿcAï¸MÙqÔª÷°5á^×äµ0ýH]W5�4aGÂ&å·ƒ™ÞMRkÞ†n‹ÝÄm0LæÀ ¾ú½à0»:Ì'Ê11­&/z=„™ÔûÎ)bUôd ÀZS¹®½ É&J¸û©GZ¨™g'e ytföÔN…›ô6ÝçpòÖ_RJp™ F8{&1ßÍŸ4béÐ g–Ñœ¡óBEb/”¬DYh„g]Ê×ùbxõŠØ����IEND®B`‚IMAGE 291 ./arch/food/water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿîîîΙeÞÞÞ™e0uuue0�ÿΙººº™™™ÎÎΪªªeee‰‰‰DDD rIsI���tRNS�D"H±��� IDATxÚ½’AÃ0ë&MlØÿÿ¶X>äQÛCç:£–üø’÷þ<OÞhŽç~Œz„MöãÀ¨ƒ(¶^.4S·ð¿øC0>^¬½È¸+(­ÉPugî»´M:Ü‹‚èªj̼=¼™Î,p,<Hƒ Ó,Ð0º´¦ÁÒ:±âÊ¥-ÈŸ©LVße€Ì'HL¸H‹‹r¤IP'’Ì×¼!µh0tÕ����IEND®B`‚IMAGE 451 ./arch/armour/mail/wdsm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE���™™™Î™�ÿÿ™uuuÎe(‰‰‰âââÆÆÆDDDïÿþ�ÿÿeeeÞÞÞ™��îîîààà000ÎÎÎêêꪪªºººÿÿÿ � �&P‡ö���tRNS�@æØf��&IDATxÚ•“‰Žƒ0 D»=9K.Çóÿ_ºch ¡HÝ„bÏ<qú“€/6Žòô@³Jo2sƒ'$j¬¡÷6-BL€5KMoË=r¤`²"#Ò] .“qpLYÍÞ:@Zv@ÌŽ€c ö­x_�ßzdQÄ Wö@ôyñE"·’…Ì> ù¨6(R}ÀܲŠ´y¨ælg?¯æ®wÉJyÕkoq£æVßM»%²³cnf%Ú¯á¹ë•À^Ú1*›tGÀóy;_.çÛÓtT:î<~4hÒá€éÎT`:Èi A¬ú$&$\'IW®SÀ> ’B@PçIlîi8 \±FŒ+Àú�&:¯WÀ� Œ•1z[+Â~ÿÔÕSÅ•÷U¿Ï]*YÛ)ä����IEND®B`‚IMAGE 448 ./arch/armour/mail/wdsm.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE���™™™Î™�ÿÿ™uuuÎe(‰‰‰âââÆÆÆDDDïÿþ�ÿÿeeeÞÞÞ™��îîîààà000ÎÎÎêêꪪªºººÿÿÿ � �&P‡ö���tRNS�@æØf��#IDATxÚ‘ ’ƒ0 ³99ƒ/Yóÿ—îØ`Ud¨R»eC¸üà#TFMÏä”>‡p“'¦€Ü}ìæ!)H Kí7Ñ3HIE„']…鮲ÊlÝ@Zv†‚á*Ø·bmlkG ÷�Y9ÞÆ™‹x%³­/B°PmP¢úB¢åˆAhóR±üzÍ´<%+åTÔ~QúFÝ}7íæÉ¤tf¸‹ö]9€*…:ÚqzUŽ„÷ûq½Ý®wÊ‘°Ë¡ðäõ§NƒGRž\•\¬;^Óèœä _‚›pŸ$ÜyŸ\-@(ÔIPÙâÀ©,\XñŽJ1®ë/˜H–¿€5v�7îÀèȶV„}ýÖ"ú°+vžËå*Yo0zó����IEND®B`‚IMAGE 445 ./arch/armour/mail/wdsm.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE���� � ºººêêꪪªàààÿÿÿ000ÎÎÎîîî™��ÞÞÞÆÆÆDDD�ÿÿïÿþeeeuuuÿÿ™Îe(‰‰‰âââΙ�™™™Ò}~î���tRNS�@æØf�� IDATxÚ•“‰Ž„ D§º¹½çÜÿÿÒ-0hP“Ù-Bè®z€Æxû“€/6,®rû@Eµ/¢¹Ã –ªÆÚ$¶U0Ð, 7kMoϼ¡• Cw<h8OÆÁ1eU¼í�ÙÆ;Ž)ØBÂàAÏ�½zLð«¯jx•®¤¦6X@d@•ÈÙ­W,²@†·LÞ‹ÔYÜú”¬„»ü´Åƒd·ùn2ï»gæ§o\¢©L¢ZÕ¦uÎW@×=?ÇçÙe].ÇD±²\Èz1ÕR]ä‘#õ1j©pb‚Å=©½sMÇ\ ($ª(E›[à®ÜXqÅèÑo�ë�$:’Å6 � öÑGz{«ÊþøÖÍÓÄ÷U¿ôO ^ñvÚž����IEND®B`‚IMAGE 358 ./arch/monster/undead/wight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿªªª™™™™e�e0�ºººe�00™0ÎeeΙe�e�ÞÞÞ ��ºšz���tRNS�@æØf���çIDATxÚ•’íƒ0E·UúÜ÷Ü]Ú:·6YIƒpNP«Ûr÷‡Ÿå7àXÄé8pÀWüH*ÏD¾Ll7! m'@¥aûfö‹;cÚü£7ûŒ‘çòKore8s)elŸ½‹ÑF¯i/ZJ×Y]9‹è 0Ëë„€ë1Á¢üx]ú*†wè´ÜDá~;´£Ðø>-ú4 ¤ä,' 6_³ÖŠœ+|#Ô\·B È;!sï "츂–¸ƒ¯Gpÿ/œ\Bh²0æoÁ¤L‹ù ·‘o†å`œ9ÖMq¯#Ÿø —–,­}L’����IEND®B`‚IMAGE 370 ./arch/monster/undead/wight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ™™™ªªªe0�™e�ºººe�00™0Îee�e�ΙeÞÞÞ ��º7²���tRNS�@æØf���óIDATxÚ•‘‹ŽÃ Û‡‡íýÿÏíšÞ‰^ Hg ™hFk%y|•»?|<΀ci§óÄ _ñ3©‰|%$˜Øm‚³CÚ,¸»'¨4LœPLº3»áÒZ#%ÚÚ@öËßõ¾³‡ÁrÎýxdA?tÜ£5kÎU»Ñw ãˆT€B0 úÇ`™ÕŠH0¸y]ÔØPi¹‰Â§ïЊLèxŠ€’’såâwCÍß,¥àº |#”«l…¸vÂų3ˆ°ã X 4žà ¾Žàù¿0¸„Ðda5xÄp,ò`œÓ‹"aõ¥8›÷˜¿�\Y~����IEND®B`‚IMAGE 370 ./arch/monster/undead/wight.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ™™™ªªªe0�™e�ºººe�00™0Îee�e�ΙeÞÞÞ ��º7²���tRNS�@æØf���óIDATxÚ•‘ Ž„0 CY ´ÍÇ÷?î¸Ñަb'HëÉOŽ ÛªØ"b«�58p'ð@œ»Øy êÇù�(’@°¾P±LgÅÂÝ‘¾¸Yîÿ ¨Ú\@BUåMX9SoÂ?¾±‚³µ–í”겚¾Ö¬ cú¾Ÿ«o&E�˜ {úËõæã3cpùí§Căޘ;¾~#ú Ã0#¶¿b$ 2Ƴþ›€±£ôûu¡÷Ž(~õGàÊ¥OózN�ú%�°âÙ[ ØÿV_tR^S 1±"Ÿ€ç¼ž °–IÝ`ñ=çÇ~%kåÁg����IEND®B`‚IMAGE 370 ./arch/monster/undead/wight.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ™™™ªªªe0�™e�ºººe�00™0Îee�e�ΙeÞÞÞ ��º7²���tRNS�@æØf���óIDATxÚ•‘‹ŽÃ Û‡‡íýÿÏíšÞ‰^ Hg ™hFk%y|•»?|<΀ci§óÄ _ñ3©‰|%$˜Øm‚³CÚ,¸»'¨4LœPLº3»áÒZ#%ÚÚ@öËßõ¾³‡ÁrÎýxdA?tÜ£5kÎU»Ñw ãˆT€B0 úÇ`™ÕŠH0¸y]ÔØPi¹‰Â§ïЊLèxŠ€’’såâwCÍß,¥àº |#”«l…¸vÂų3ˆ°ã X 4žà ¾Žàù¿0¸„Ðda5xÄp,ò`œÓ‹"aõ¥8›÷˜¿�\Y~����IEND®B`‚IMAGE 191 ./arch/player/class/Wizardry/wizard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V²""���ÿ�� ���tRNS�@æØf���aIDATxÚÕ1À ‰óÿ?7©ÀõÔÑ0îŧÏ?a}&�é6Â=ég…ãhk‡ ý{ÚPðpô´µ'ýP:í}°ô.à7„Æ«`a\Æ3‚l ����IEND®B`‚IMAGE 189 ./arch/player/class/Wizardry/wizard.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V²""���ÿ�� ���tRNS�@æØf���_IDATxÚÕ1À0cóÿ?ײ{è”[ï„€u!|q¾D„ (pÅ ô+’f�€n_Ý d) ¾ ùl+æ%Í«· ŸdP?tápô•”=”‡u~8½¸âíì����IEND®B`‚IMAGE 218 ./arch/player/class/Wizardry/wizard.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒú€r²""ÿ�����ÕÉöq���tRNS�@æØf���vIDATxÚÕ‘ÁÀ BÕÂÿÿòÐ&˲u\<‰±y‘VÛ¢d}Ht@ïˆ-@á"(?�ò×Fh-„µ-7!Ž7¡“å$ÀÑ?@A$‚?‡È.GAÕ@ÎY5¹JÊþE�ÈAh/Øî§6À$‚ÆŸÛ.ƒµ£t “R:ö����IEND®B`‚IMAGE 206 ./arch/player/class/Wizardry/wizard.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vú€rðæŒ²""ÿ�����zrë���tRNS�@æØf���jIDATxÚÕ1À ÀPÉÿ¿\ z×Aèàd‡ää>pÊ ëPNá7(=ø�…ÔªùHvZ]´ cz ± �³á;»Þ#’`B ZöJ=!e-y„W*ïIDB~Cù:ƒ¬àƒÜÅ ûY¹#Z����IEND®B`‚IMAGE 191 ./arch/player/class/Wizardry/wizard_blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€�����ÿ\g���tRNS�@æØf���aIDATxÚÕ1À ‰óÿ?7©ÀõÔÑ0îŧÏ?a}&�é6Â=ég…ãhk‡ ý{ÚPðpô´µ'ýP:í}°ô.à7„Æ«`a\Æ3‚l ����IEND®B`‚IMAGE 189 ./arch/player/class/Wizardry/wizard_blue.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€�����ÿ\g���tRNS�@æØf���_IDATxÚÕ1À0cóÿ?ײ{è”[ï„€u!|q¾D„ (pÅ ô+’f�€n_Ý d) ¾ ùl+æ%Í«· ŸdP?tápô•”=”‡u~8½¸âíì����IEND®B`‚IMAGE 218 ./arch/player/class/Wizardry/wizard_blue.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ��€��ÿ���cjÖ���tRNS�@æØf���vIDATxÚÕ‘ÁÀ BÕÂÿÿòÐ&˲u\<‰±y‘VÛ¢d}Ht@ïˆ-@á"(?�ò×Fh-„µ-7!Ž7¡“å$ÀÑ?@A$‚?‡È.GAÕ@ÎY5¹JÊþE�ÈAh/Øî§6À$‚ÆŸÛ.ƒµ£t “R:ö����IEND®B`‚IMAGE 206 ./arch/player/class/Wizardry/wizard_blue.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿðæŒ��€��ÿ���JwYŸ���tRNS�@æØf���jIDATxÚÕ1À ÀPÉÿ¿\ z×Aèàd‡ää>pÊ ëPNá7(=ø�…ÔªùHvZ]´ cz ± �³á;»Þ#’`B ZöJ=!e-y„W*ïIDB~Cù:ƒ¬àƒÜÅ ûY¹#Z����IEND®B`‚IMAGE 191 ./arch/player/class/Wizardry/wizard_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W����Í�%74ã���tRNS�@æØf���aIDATxÚÕ1À ‰óÿ?7©ÀõÔÑ0îŧÏ?a}&�é6Â=ég…ãhk‡ ý{ÚPðpô´µ'ýP:í}°ô.à7„Æ«`a\Æ3‚l ����IEND®B`‚IMAGE 189 ./arch/player/class/Wizardry/wizard_green.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W����Í�%74ã���tRNS�@æØf���_IDATxÚÕ1À0cóÿ?ײ{è”[ï„€u!|q¾D„ (pÅ ô+’f�€n_Ý d) ¾ ùl+æ%Í«· ŸdP?tápô•”=”‡u~8½¸âíì����IEND®B`‚IMAGE 218 ./arch/player/class/Wizardry/wizard_green.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ�ÿ�.‹W�Í����6§63���tRNS�@æØf���vIDATxÚÕ‘ÁÀ BÕÂÿÿòÐ&˲u\<‰±y‘VÛ¢d}Ht@ïˆ-@á"(?�ò×Fh-„µ-7!Ž7¡“å$ÀÑ?@A$‚?‡È.GAÕ@ÎY5¹JÊþE�ÈAh/Øî§6À$‚ÆŸÛ.ƒµ£t “R:ö����IEND®B`‚IMAGE 206 ./arch/player/class/Wizardry/wizard_green.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ðæŒ.‹W�Í����áG¾1���tRNS�@æØf���jIDATxÚÕ1À ÀPÉÿ¿\ z×Aèàd‡ää>pÊ ëPNá7(=ø�…ÔªùHvZ]´ cz ± �³á;»Þ#’`B ZöJ=!e-y„W*ïIDB~Cù:ƒ¬àƒÜÅ ûY¹#Z����IEND®B`‚IMAGE 191 ./arch/player/class/Wizardry/wizard_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V@@@���ÿÿÿJÉå���tRNS�@æØf���aIDATxÚÕ1À ‰óÿ?7©ÀõÔÑ0îŧÏ?a}&�é6Â=ég…ãhk‡ ý{ÚPðpô´µ'ýP:í}°ô.à7„Æ«`a\Æ3‚l ����IEND®B`‚IMAGE 189 ./arch/player/class/Wizardry/wizard_white.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V@@@���ÿÿÿJÉå���tRNS�@æØf���_IDATxÚÕ1À0cóÿ?ײ{è”[ï„€u!|q¾D„ (pÅ ô+’f�€n_Ý d) ¾ ùl+æ%Í«· ŸdP?tápô•”=”‡u~8½¸âíì����IEND®B`‚IMAGE 217 ./arch/player/class/Wizardry/wizard_white.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ðæŒÿÿÿ���õO¸Ÿ���tRNS�@æØf���uIDATxÚÕ‘AÀ vÿÿå¢$MÓÒ½xr^f" ãÀ0#92T‚;bKD€'€üň\Ka“–Dã›)æÁÓ JA+$ŸCT—Ö•`žš³krù(¡¡¼`O¸ŸZÓ >·T >2ŽÊu“ü×XÒ����IEND®B`‚IMAGE 206 ./arch/player/class/Wizardry/wizard_white.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¿¿¿ðæŒÿÿÿ���õO¸Ÿ���tRNS�@æØf���jIDATxÚÕ1À ÀPÉÿ¿\ z×Aèàd‡ää>pÊ ëPNá7(=ø�…ÔªùHvZ]´ cz ± �³á;»Þ#’`B ZöJ=!e-y„W*ïIDB~Cù:ƒ¬àƒÜÅ ûY¹#Z����IEND®B`‚IMAGE 191 ./arch/player/class/Wizardry/wizard_yellow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���ÿ×�%«ö‚���tRNS�@æØf���aIDATxÚÕ1À ‰óÿ?7©ÀõÔÑ0îŧÏ?a}&�é6Â=ég…ãhk‡ ý{ÚPðpô´µ'ýP:í}°ô.à7„Æ«`a\Æ3‚l ����IEND®B`‚IMAGE 189 ./arch/player/class/Wizardry/wizard_yellow.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���ÿ×�%«ö‚���tRNS�@æØf���_IDATxÚÕ1À0cóÿ?ײ{è”[ï„€u!|q¾D„ (pÅ ô+’f�€n_Ý d) ¾ ùl+æ%Í«· ŸdP?tápô•”=”‡u~8½¸âíì����IEND®B`‚IMAGE 217 ./arch/player/class/Wizardry/wizard_yellow.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ðæŒÚ¥ ÿ×����=©���tRNS�@æØf���uIDATxÚÕ‘AÀ vÿÿå¢$MÓÒ½xr^f" ãÀ0#92T‚;bKD€'€üň\Ka“–Dã›)æÁÓ JA+$ŸCT—Ö•`žš³krù(¡¡¼`O¸ŸZÓ >·T >2ŽÊu“ü×XÒ����IEND®B`‚IMAGE 206 ./arch/player/class/Wizardry/wizard_yellow.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ðæŒÚ¥ ÿ×����=©���tRNS�@æØf���jIDATxÚÕ1À ÀPÉÿ¿\ z×Aèàd‡ää>pÊ ëPNá7(=ø�…ÔªùHvZ]´ cz ± �³á;»Þ#’`B ZöJ=!e-y„W*ïIDB~Cù:ƒ¬àƒÜÅ ûY¹#Z����IEND®B`‚IMAGE 330 ./arch/monster/humanoid/Human/woman.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE�� ÎÎ� ÿΙΙe���ÿ™ÿÎeÎÿÎΙe0ÿÎ�uuuªªªÿÿ�j¿bh���tRNS�@æØf���ËIDATxÚ•‘ Â0 DÛË­:÷ÿŸë‡ &o¥Þ[–¬íßàfGïý(á#Ö±ÀR`¼L3öÂÀSÐST€0MaËCÀï›ml•Ñ0&ˆ1PüRøœ®L­ ÷ ƒ¼LÇÏÍà0Q ®¶Áµ+©°  “xf\Å£E ºoÜ ^sbÁ}mpúÔ* º®Kà.•Á³@lyÑ@`]‹ʹ3áãL¸h`0’É3÷=¿*îO€}/ à}xåbzãïˆp����IEND®B`‚IMAGE 340 ./arch/monster/humanoid/Human/woman.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿÿÿ�ÎÎ� ÿΙÞÞÞΙe���ÿ™ÿÎeÎÿÎΙe0ÿÎ�uuuªªª§îÑ���tRNS�@æØf���ÒIDATxÚ•’Qà CëÖnÝýo;“nêÇ’M3ùÅ„Šå_ñ‡ßlÒŠo>°®%Áu£™ˆ­ dÁD”‡@~Œ`DÊ;FÀ‚²M YCý·Ø½3±8'Ãá>¼ÆIÉó}83À¨I„†6ÑØŒÃ%Þ‚&5*@A#U.¤Ï쩼G‡l±œ >¦�¢…‘ù.ÿŒÈÅ�¼àQ¿WFÔGJ¶>ä ï&%d~ÔNp‡äÄTþ$ƒ‹Ì‡–T$c9Ž‹(ÁKO>Ÿ[A¬����IEND®B`‚IMAGE 326 ./arch/monster/humanoid/Human/woman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÞÞÞÿÿ�ÎÎ� ÿΙΙe���ÿ™ÿÎeÎÿÎΙe0ÿÎ�uuuªªªàÒ¼���tRNS�@æØf���ÇIDATxÚ…‘ à Dg/טmÝÿî.•1X;$ïa¢Þ~ÃÛ2d#—¸m­V¸mmS¤‚Ð0Ê#®šÙÙ¨4Œ¸̘wA)Œ¬_b·3ŽQÝAtÇ•›«zôPz\…4Ñï¤øôw3„TÂfBæ!aW•pÉ  )�Û%L Ç”ñ/ãx ޼eàÒ@â®ÅZ8•Vü¾"Q–¢ õbc Îx¦Úg·CedIc>&Ž?™óãÀwWüçÏNyºëµ þ����IEND®B`‚IMAGE 613 ./arch/ground/Wood/woods_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE(�R��k��{��”��¥��½��î� s�¹�…� o H6ŽGrm�Ïs�×4i��ðIDATxÚ5“b1©:«þÿÛ rŒU0,h—ÄÒòßZÆ×ë]ŸCZ»‘G‡ŠySßÑ~ørä[‘£gï÷ÒŒh'.ìdGîTòéžµæf&+ÃN4ÔâC>2�™Ç°ÑéÖ95R*ÏËé,«>“¼WAX“,S3%jj�¬”„ó$E�bÎWuN5õ°è .‰'üU•³×>K°õª«ѾœbÌ‘s F£[/X‘´ÄèÕ{fWžUÑýžuN¡‘;ˆC(�yÃŒ²{/=êM4"Y‚l|¼Ký&yÿân–è6ø£É¦.Y-”<�ƒuŒ1¡VÒô±Ž¡sôÎEzéU¾hKº8"…ÈÚûlyDºÊ‰;i´,$)‚B(ãì‚“n‘EkÔ âµµº?O\!)‹aF‹t•ÄBº÷+µS%êá—3èÄc‹öÇJjúgî¢ü*&Rÿ{�T#ůY ¤k–‚©4HÌ-jzŽ0%Š(&-&ÚPä ä½j‘©Ÿr`|'iª +Ñea£þ÷û6÷»ÎªŸ0óTþXH©è“Yð÷ìEþš°qÁ8Qî/€f”T;©ØdP¸æó BÜÕ;�Œ§Z¨þH+Cq¹=ªT¬žþïžµàðûº„Ú/Áñ£21Ö����IEND®B`‚IMAGE 613 ./arch/ground/Wood/woods_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���E��^��w��”��¥��»��æ� )� a� Š� ¸�_�MF¡IÁŠnûS��ðIDATxÚUR ®ä ‹ÀZèýo»SiçUU?Ä8Žõö^ÝðýŽ^w}×Ãúù#í,ïxk¡’�ïؘ0ÿ¢£?q`O Ó£íÖœ—dÔZÇÆnîOt«…è$ÂKÁ}^íº¢ùÕP-N= “ÅLÕµ[½ÛœÝÚ¹h>G‰ªG‹«@sº�Åj×Ä`³qªI›¢˜ ‹±MínÒl€p§48õŽ …cz6 3AÞ÷ƒû^ô€ZT!H&2aÀZÏ^ûIÔÊ–Z"écK¨¾Ÿge&k OÉ’p€i 4²:hó†6 H.—›ØÚ'0IŒ&ObŒéàGÖY%sLƒL0u…†o­h¢¯UÉÀEq¦eî ɉI­úÊo2'nôŽsË÷7Ò›© <^sµ3×› 9£Âúk.¢ýO¦—†H :—̽éúûM¦Y—‘àº÷^kß�ò7ë¸�kŸ++õ“L?‚/ æó›Œ¿§¬üníû“ 5fA6Ÿ'z • e/ #^€Â@€€„MÌáHÞ ZœCwÊPOõ0¬ößÑ¥-Žœr aé™`?�…P3JBÀÈð\)V(,•½="Ø‹t÷Gpìµ—w{| r­\5”�bybŠ/¼ÿ�u“¾f·����IEND®B`‚IMAGE 470 ./arch/ground/Wood/woods_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿ�ÿ/2 ^�.]�‡�"… ¦Ë�T�¸^�Œq=ž¡›�$�Æ ‰���tRNS�@æØf��]IDATxÚ•‘rà ƒƒÍOýþϻϤÝu»u ÀBÀñ1öP¡û·æÍÝéôG~&_«{õšS=b¾ºM‡wx—ZíáÈ«›7¹ÂBZv©pøœ»_&¼5•*¡ož¢-¦]Šª¤ 5Êl;‚DH½ôQDRíÕX–3ió„©¹‚pDÍÕ8ÈŒNsAÈè|£D(¼]GD”– ”1FïóÈ™ÂÕlûˆ+ÇF6¶R¯Ø:K”[ €•ü5O®¤6³fºŠ#¡Ïü¡mÇvZÀ#ˆÑ$," ¾]¤ŽÔÔÆ+!8ó®X;H/ ².‚‹¤Ã%€÷û¨‘”­Ì>·€’ì×D£yM¥ ˆ½År”ªƒGCze`_JÁý å‹Å½�¼v~ÐPÜäT-‰HÓ2ŸOñ6¾-ÿÌÁðãcüèïŠU°B‡ÌV%Κêñ_|tß ¡Zú!����IEND®B`‚IMAGE 459 ./arch/ground/Wood/woods_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿ�ÿ$ C�#E�b�j Ž ²_Q ¬[izi–›Ž��%/÷]���tRNS�@æØf��RIDATxÚ}QÑ’­0“(vùÿï½¥ÖêÙ½sâC`HŽÚ¯PèW>Í¿+zs"VaGð8~>øpò¢Û€·ñì‘€“yÏj>Pϱ!¤‘²øúšs¨6ßFpÌdõ;×Ì.­ÁÈÌ¡�‰ÑO²庣ÑDf?¤Ù 5#]ç€H'™È:C€ÐóŒó`Y#΄'-!ei þç U]&û< µ¨‘C‘²(Æd–S}þ;ºyœÖ˜¹é5s'³Ê60Ík6ÝŒx'ÓÉK0E× ™É,Ejó¶ì›ÞuYÉÜ€;sˆ$í¥�É·¹O2oÅ2W>’™P†¹§bà#™ ŠˆÛ}Õw27Fs!þ&ó`Ðòßdìdè­XÃÑ º’H‡×ÕÌÜɸ'C‚ùWÐYHmH}mØ7Ì‘žxm¨3åUFU}—@¨Dqÿ¹Ùèì ˜±Ãw·����IEND®B`‚IMAGE 153 ./arch/monster/insect/ant/work_ant.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…?��� R-á!½���tRNS�@æØf���;IDATWc` `j€±` ~æ?`†þáóÿÁŒîë÷! …ëw>@´qt@s(4Aµ+44Àp£h �·' ÐÜôaÆ����IEND®B`‚IMAGE 154 ./arch/monster/insect/ant/work_ant.132 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…?��� R-á!½���tRNS�@æØf���<IDATxÚc` X�cpÀÌþƒÚ>ÿ?�b0}ýap™~·(jR‚ÐL í 0]\�· -SQµ����IEND®B`‚IMAGE 154 ./arch/monster/insect/ant/work_ant.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…?��� R-á!½���tRNS�@æØf���<IDATxÚc` X�¥™À$ÿ0ÃþχÆß¯?@ æ³_A”rt(@ MFCÔ(ƒÖ���â8܉,����IEND®B`‚IMAGE 153 ./arch/monster/insect/ant/work_ant.172 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…?��� R-á!½���tRNS�@æØf���;IDATxÚc` `j€28À¤ý†`ÆÿχA߯?�3øÍ¯k@”*)@55q(@ aâ€hç€1h �Ö µB h&����IEND®B`‚IMAGE 642 ./arch/monster/dragon/WDragon/worthless_dragon.x31 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE�����€��ÿ�Í��ÿ��ÿÿ.‹Wÿÿ�š×QØ���tRNS�@æØf��IDATxÚí•ÛVà DÃÐâÿÿ±97§À¢Í‘>f 1ÙÛIP;wî|#틬ZëÌÞ7Ô¿<…¿a¨ò A¤;œ%Ùˆ)" \¥C|­©!£šMq¬çÊh!Š 0¬ SÕIÊn4djTåçð¾ €s:²Šu‡0š�($7'k(‹ì®ÀhجµR0ò5”ËilP�P°Uƒ–x8 ‚Z+ y…×è+T>1üT ’)µ« òã^ À¿ 8ˆ¢¯P ÷Ô@É Co>Ã^ &€°iÈÀ‹…-ÄPA|°iHÃ!ƒ ëàß > #¼Îao´OCŽÂ¯s |>Æè6MŒ”W*e«�èàSr}¶®oÒô2ÍÂØAﮀÂF ø0à‹¸|c¸$(ý]®«fkl \*á×!!@àa@ÿîðA‚nS»£«�*ì$촎¸Ò,*HFž]‰÷ À¬`Bž PËua€‡[´Ø´Ì¢ #iˆ2n Ét"ÜÃÇ1*x˜7ø/[ìIçΊ÷,¤Æe~L%© LhÀ(Ç%Ö†Ðñ=µg� ´q-cÏ@WÃöÙy3’«Ël’€ÅŸÂuS®ò ßå2­˜‰XÔÌ+ÚHä.•õ®¢µGˆ¬ƒ}ÅɘD¾ȉ]ƒf&¾þc=¶3ïܹ“Ë/k*ˆN; p����IEND®B`‚IMAGE 618 ./arch/monster/dragon/WDragon/worthless_dragon.x32 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE�����€��ÿ�Í��ÿ��ÿÿ.‹Wÿÿ�š×QØ���tRNS�@æØf���IDATxÚí–ÑVƒ0D“I‹ÿÿdžeÃ¥{„&”>xƒDié½LjºsçοÈôMö¿3”R¾a(kžu‹†‰±ŸD@×çbèT<Á­C fhFÏl˜ iý0\RxÁTu,•%ÕadÒq,3ãßýGÄ6cR¶`è/Bb‡âÚtÊ@:/Àõ7~ÒIŽXÁ-mI)KB0îp°·”4 êi>êÁ,U¤ÚüHå§œ(¥¬\Œ¸n&R^§Æ Ò°Aó^3ƒJ ·Aг‘0ŒÁ³ÇfÊö:_9‹£ÆÐ#à6Ê­CŸU¡Â0ߦÍRão êâÇ¡Lˆ>†:´¨QÔ(kþÂð>ñG¸>JÛYê»|Pvâ7ƒñ¹Ñ#—/4r†ŒA¬‡ôFX_k¬P³t•¸,e5°ùF¯´¤)Ž%㥂„dñ�D¹ƒq`Ù©`‰<{ýÈ ÎG*@·ƒ`Ðñ£Œ>:XŒÐmúGbhe’«¢! X$övëS BìüakÐo X4<e[’·tHíýŠ}ƒR0ð&ìPHGfl„?›§8"c¯ÂΞöAØÝŽé1A Sù7@Œ È ÃdKø. DVéE†H¤Ž®T@ä~ˆuõq"‘ÿæ.é‰wîÜË/ÈÑ é)����IEND®B`‚IMAGE 599 ./arch/monster/dragon/WDragon/worthless_dragon.x33 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE�����€��ÿ�Í��ÿ��ÿÿ.‹Wÿÿ�š×QØ���tRNS�@æØf��íIDATxÚí–ÑVƒ0DËPâÿÿ± »{®IZHz£ƒ0wgª[·n}†Òzß„Bbü\Bº€°fUóPñ^$åáÜäHÛºUSWHË. Õ¹q0˜ñÛâ‡r¹œ£aU fÜÉÚ&CªZ€™×Ì‘,’�LBÖ(ß¾‘ùkï”ï‡0Áv¥ÿ6¥=™ðµødõ6QÿÍ×Nf ² YÚTüÍÝeoãæ2ƒ•$¶YV»Y»õ(ó0‘Q¬MnŽ}6„IóZkñ—œéþ±W9‹¥ãÄQ~E8wǭŨÅ("‚4Ô<�pÆ×G/GƒIMü0CâƒÁêg!¤áòEÅŠ+8Cûa¨=M3¾m“âb4ߢž#ì6êr�¡â‹\ôv „H £Š qN[ÝI�11½‰PÔuþ4…ø5&î‘¡¹ÿ˜@ä.ˆp·‚oÓC‚ÄýÈ-!D_[©&FP‚ìÞÈS� ~Îvªô*…¿lá‰kƒÚ«4Ü#àÉ#cOð/'�#�¨CMBRz¦Ôïò×;”KãôÌ2„xâÏæœH�€YM°aÞXöýîS±ô~#àH‚K…#¯üu‘]z%A8GW"pd=¤«Ö¡wäƒîŠ ã­[·æô ?Õ ØKˆšj����IEND®B`‚IMAGE 641 ./arch/monster/dragon/WDragon/worthless_dragon.x71 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE�����€��ÿ�Í��ÿ��ÿÿ.‹Wÿÿ�š×QØ���tRNS�@æØf��IDATxÚí•írë D­¥å¾ÿ_[YÀ¡MûÏ›–tæIÆîñäÉ“EêŸóï–RÊßðiø.¯üŸ8Ð0ɾÚzµhÇêG‹™|áæøŒ Úÿ$™ÇÞbOü¿š¥(¯èb‚I>¸( œK 1 •>?¿É×�&pÞ¼~âü®ZÔÊâË‘àS`,ã§‹gàx¡€õ7K¦øà—R.¨ ÅÞ‹OÊ¿‹Ï)•¾ý1|Ž(_Úb(ý¡—4ÿdÍY’Ò5 xœdø× Àâ-°zý;l„Èð¯BŠò£úÈDZÕê'^ûKHÈ7CÀ�|*ž$ëoÈ» Þ3�­K0¢1¢¹Ó oðäóƤ†÷æ.Þ q’î@Ä÷sOk|+îáàð¦ƒ-ƒ—ìÎòm˜Ð×"XÁÑÏÁÇë%ì&¾,¯ÆAª­}¡kàEò-�ƒQ“@¼€Õ£¢ãG©áèÐ ˆyÊ<ªðŸô}ÁÈwn”í|îçšEÄ+…'Ñg&¤ïuÀÜð±~“¥øÌp¢Û[”®é1\ãGÈ?Xº­ ò5ø‘->x3ôLúó|C‚±äù´ ƒ] I>+ãÀÞ—¿ÏŸ–F_?)ñé€÷ÙÝW¯¿o}õ«Ö4žgœ;}Æÿ: ºM¦ýgx÷UÍ‘÷=yòd7ÿAWˆ ‘ „����IEND®B`‚IMAGE 627 ./arch/monster/dragon/WDragon/worthless_dragon.x72 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE�����€��ÿ�Í��ÿ��ÿÿ.‹Wÿÿ�š×QØ���tRNS�@æØf�� IDATxÚí•nƒ0 DÃѦÿÿÇ3Ææ¬D¤&B›4q°dë»sj´òèÑ£¿Vý~ýgüu]oÂWŽ‘ÿ–ëÐ|²ÌÀ,hÓ+˯ÿ½ËyÊ×µoÚÀIIKdÄR¬+΃Ó¢äø*@æ,a¿mÐQŸ¤žç‹™¿£_棘ƒÉSo@ægô¬`øÖ8Æî ý2_>¶  –Àôr“>a°~„ï§±ãùLg|@ù~T2XŸø¥xù})˜ã�ÊwØÀôú{à*_�vºuÔþïý/éM4¹Î—Qy~£[}4É ¯„ù)-A&äëJ-zO>r‘/ôínÑhÑ*ä=ÏGFï'œ—Àm”¤À³]ÜÊg‘§û\§ N‘||A4XD*¾’³>²@tØÿw¼m0+Žka5¾Ïb10 .Qá¨X�éÁbÄ×T­#T]‘Î@£”†¯1éÑ@8?10@é I3`ôFà Z¾a‹Ç6¾*ÐóñE <³Øfüïs_ÙKvÎϽiÄÇwm5Ⱦe€ü2ÈßhŠëùì«ÙøüwÙ÷êÎ*!€c‹äjO—ÆàÌ®n;†Ÿà3ÞI'ÖW%=-œ¾<ôsþKʬHìšÖøª;øìÓÎï¼þô~·Hñà¹ÓïAä³Ö/©y¿GeõÁ… ”øÿÿ����IEND®B`‚IMAGE 600 ./arch/monster/dragon/WDragon/worthless_dragon.x73 ‰PNG  ��� IHDR���`���@���Òê‚<���PLTE�����€��ÿ�Í��ÿ��ÿÿ.‹Wÿÿ�š×QØ���tRNS�@æØf��îIDATxÚí”nà D›óÊþÿ‡©­sLšÀÄ6MÊ5’nïlƒó¸uëÖ«ü ¿Üü7øÂùßòËÏñ±�›òÅÏëy~ ¬§I‚žõs¦q¾«l½žŠÕ©sˆÇpüjÀ(¥û—8‘~.~3iõÙ`º+áðˆÐjs Ä.FOø¨| àerîƒÐŠð>ÐøØ¼VÌÁÊ# >˯3ß&ˆÄò°è¯ 1Éo7� ÷<¤*”GT¯_A“9~iÑdå16lÐdÌ�~S™ƒÑ�uP85m²ã3‰,‡ÛLðôÊhd4¿ç['ø¢S÷î#€åGsàË#ɇ…wä_„Ø'’�ȷ¼º¹òó‘ð™)c…âkÄŸ›tynÿÆÈ »Hg=q}·ª>HO§ðºŽôøé‘PåqƯºøm˜œßѽ;Ï[ ×_×6ù~̲.6™üˆW¹!,›£�/-ã¹ð%6[ÀÁ>ñ»^‹Çêà_Fñ=Æw’J!üOØñYâøRä§£DfŒÀðU%ÂÇ_Ö'gû óiDvvnñ~ÿ$p¹FÌ€~+Å¥ßb>ûŒ~Kñmt~ëê°îô[#ö(ý’ÖûݺukT_D6 ØЯ}����IEND®B`‚IMAGE 382 ./arch/monster/undead/wraith.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEGll€€€   pppðððÐÐÐ000```���PPP@@@Þ‡½˜���tRNS�@æØf��IDATxÚµÏÑn„0CÑ@Èd6öÿo푪…ÂV}©�éhÿ0z¿åÌ\‹ó:²ö,”ÕW»,ž@öÞ%�zwÀ� çɰ–½ŽÈã8Þ최#",–ENZ¸Û×÷GïcFdF¨{ß?ïW±4 w ÷ˆpu�1´˜1gÐ]a�¢ãH`…)ê”­-‡@ ºA ·=Ó´A]À¢qz^)u@çx%X5öÜë0‚Kà"–C½¼1F`ƒÇF³ nðé!A¶ ° o-|µh§ñ ° ¡ê HP"è~Õ¸ñÖUNˆW­=N/ ï!_÷¡ÿ´û~ä/-ú ä*����IEND®B`‚IMAGE 419 ./arch/monster/undead/wraith.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEGll000ÐÐÐÐÐÐ```@@@000PPPððð   €€€ppp���ÿ��©çô#���tRNS����³“fš��IDATx^µÎÑRÃ0CQ§HÚµ“þÿkÑ:“’RÊðÂ}óè̬Û?¤ê·™dïz9÷+g_âl={ï³»€÷ â$d¡p]W‹ˆÓOaÁý)FŒˆ Œ¹œI$>ÆÇ:OðêsóΛ’óE6æ�`á,˜*¡LºýÿXב@ð^`µG£»)ì,î WˆbŒpHdâD�WFlè‘<N$sîá8\¸Ì3JÔ¶‘E› !Õ®¼G$»Á.t¹\4WlÜæ1…údàÔ=¸ýÒ´H1ïQ©éƒÅ4ê:,¤v�ç—ÅR¶@C±íÔò|âÖg`! ÈûÏ ÉDïòþ$ê-p›µó7‹äöØ‹ýï =÷mþIt깇é����IEND®B`‚IMAGE 392 ./arch/monster/undead/wraith.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEGllÿ��e��€€€   pppðððÐÐÐ000```���PPP@@@Ìêì���tRNS�@æØf�� IDATxÚµÏÑŠÃ0 DQ·‰#Yõèÿ?·3‚¥§Ë¾ì<$…{ˆëöKí·sæ×<¯¨Ý föY˯]�w zï@j;<í‰ı˜¬EøÃ½Žˆëº>·aÒZ sw‰)#%Ôåëÿ{ï6Ü"ÜÙµŸËëÓf““P§PwwU�áfà|øžê C� µ+€Ó'A°K$mupa� ê%ÔÎÑv‰–C#ÐJ±<W@+‘UýŒ³KäXÅT¨O€ w 7sÐx4Á*tgèt§ÈlV‘z 4×S¢-ËÀA„ª H OõhÉ–GneùÕÚíð’Ðnóº½ÿì}ÊofQŽÿ½3����IEND®B`‚IMAGE 375 ./arch/player/race/wraithp.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿPPP```@@@ÐÐÐppp000ððð€€€���@jÓ§���tRNS�@æØf��IDATxÚ­’ÁŽ„0 C›Äm`æÿÿwSMY‰î\Ö‡ å=\Ñþ3Vù‹»GÄ^±PÜ7ŠùÊݰǃaý#À7f Fn¿ Æ£©ä]ëQ /AŽzJeƒÖ£S‚_¸cŒÕ¥é#ÐA\Ó%DšøT4R‡„â%"ֶij¾gº#š—èÚÙ@Cœâ"€F äS@«æÖÎÚB…˜‚'@~ø�w! ïÀ‰Sï_sq ~}§ã8À8æ<ì#4Cå…ˆŸÂ|в†|u üA°Ð²ålý4²£$ñ§d° Wañ†¿™Z,þÏ_ù"|7ö—ìù¼D™OÏ7¿����IEND®B`‚IMAGE 376 ./arch/player/race/wraithp.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿPPP```@@@ÐÐÐppp000ððð€€€���@jÓ§���tRNS�@æØf��IDATxÚ­YnÄ0 CEY^2sÿû–T-♟È¿gZ°ýg |âî­µ½‚–qß(ð;Øðx2p}‰#Ì/ýœ¾äí@Žsz`y *#»È;9W ÁOÌ€ºØP«gëœ1F¬:ŸH^аzKpr -²>ÒbÔ“!!Ð=š‘P‘3/A\Õ›~Bwƒ L»Ìò× Õj]¾š’7‚V<ïG¹Ÿà÷´Ö ÆÉˆ—�C(/ÍVœ¸¾óÅC,ûK°Š¸ÆìÓæƒ`fIÅÜ\™ ëÉ7&ˆù;ÓÃl‹ÅßÁ÷V¸óUønØC>òÝŒ gëöŒ����IEND®B`‚IMAGE 388 ./arch/player/race/wraithp.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿPPP```ppp@@@   6|.ðððÐÐÐcÿ[���000€€€Ï—[���tRNS�@æØf��IDATxÚ­ÛŽƒ0 sâšÆmèÿnÇzÓ†§… 1#C(ÿ‰’3_«™ÍÙàR'‰ê€‚dâ=ƒI!¨îøeYìè°f•À¯íê¦]+öé9ÖÆ+–[»…™îb…6¯n€ÅGDëVlGÁÓ ¸÷¶,‘Á¬¾FôZ«N‘ô=ˆÞY­…q!~ #àˆ±ºÛ¥E„ûo°�#²ðOO`øâ‘nmàÞñï š\Ãmè;1'¬¶ÆhÔKúWPä° ¬*z{±eòðà¤.e ¯�üV‚ ¼Ë ÇÀüo0ØÞðüxPà…Ÿ =„þÛß“pª¹ç: bìó�æÅy�§þ TG ŸÚk̬����IEND®B`‚IMAGE 396 ./arch/player/race/wraithp.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿPPP```ppp@@@ÐÐР  6|.ðððcÿ[000€€€���-ic���tRNS�@æØf�� IDATxÚ­ŽÑnB1 C›†¸ªráÿ?wv(S™Vö2Kp•ž#'í?cÊ'Þ»»ŸóÊ­ëTö÷‡„†a»0‚|Œá/ÁÈ7·„ˆáÆ‘qòÕ ©V pçXlQ'0Ó[rsÏâ½s’ä:U”<MÜ’³¸:æÔ*QñÕ�¸3'ôEW–P\Ft\~›�"Þd"¡¦šÊHòµÂ“NÓ³û%KÜl2#Z<Ykì0&›x 4žÅ—_˜ÁÐ(®+=CQA‰½€¥-A ˸æ„ú—о’C—„žßq!6òöìBÓ†MØcú…ÜÈ1»ñ¯üQAÐ:añGðÿ ìù,ümœ·œùëQ Šä &N����IEND®B`‚IMAGE 401 ./arch/player/race/wraithp.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ```PPPpppÐÐÐ@@@   6|.ðððcÿ[000€€€���ººÐ���tRNS�@æØf��IDATxÚµÎÁn„@ ÐI‡Í»ÿÿ¹µ¨,”ª—ú€„üOû‡˜ò[íî½ÛmÝ'¯|‹£e;3‡°S/a¶Ÿç™"âðRPøúk|Db_^ÑûñÌç\>qnݱáú#i>€D—ða2zæ9 àl$Î쌄z‰táÈ càD�ÈÉ#ô¾NHŒêƒñÌ:AqfêwÑFà»0&*¥¢é„wuªZ,¾Ô˜…õc=°+PÙ€V‰x…bÍN f´ ³¶E»h4ÐW¢]R@M@¹ £€©¿ììÅÑû° ¼+?ñ¦¸!ïÏÜôíšSý¨` óÈÆ¸����IEND®B`‚IMAGE 392 ./arch/player/race/wraithp.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ```PPPppp@@@   ðððÐÐÐ000€€€���¥„z���tRNS�@æØf��IDATxÚµ‘Q®ƒ0 c›Màþç}»n«Tú÷öÇ 3²cÑþ!¦üÂîa86¯ÜÄäQ±G.÷†…÷Þi�÷/5P‚7·oTqO ½Fx¸¯&DJó92SFð9›Öýp^ëýÙû˜™œ¦½ŒÏòj=F04xÏ|s¶�à9KˆÓ'˜�ªcs`Ï@Μ3­:ÅÁø`XI§¿¹„2Ävw©†ͦ¨”Ep®¥ +š»ï5Ì`î%,#ªêwD\3pÇÄ…£KX†±@Ó“†éVÂ2LEBK´K¡%p‹iÁ« CÛ$ËBK¨Jf‡]¹È×y*í>$8ãÑ8uPžøÊoáyÄŸ 4½‚â����IEND®B`‚IMAGE 371 ./arch/player/race/wraithp.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ```PPPÐÐÐ@@@ppp000ððð€€€���&¨¹ò���tRNS�@æØf���ýIDATxÚµÏÁŽ„0 и©Û2óÿÿ»qˆ€Ûú€*ùá‚ýC ¼Õ­5w<Öî-s/àGðÚó,pˆ8é<@ÇšçýêoÕïA þ¦‡Ø—# \�yÔ‚–³ÑCesz´1ÂW½ L?­ Ì%6)ž@ïK“jݽƒêsAQOkKMÔ‚&HêÚÍLw™&$¢·6¢)Ë—kc_¨‰rcãFv'¿�茬µH;(Q4¿‚*0ü�b ìŸIÀ ('0mÒ:É)aPB%û8‚Ã{‚`öœèØ¿™{¿ÊM}Í{ÿªªÿ�N eZa*½����IEND®B`‚IMAGE 371 ./arch/player/race/wraithp.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ```PPPÐÐÐ@@@ppp000ððð€€€���&¨¹ò���tRNS�@æØf���ýIDATxÚµÒÁŽ1 Ð8©ÛùÿÿÝ8RÉH¨»§õAõkû‡@ù­v÷믴xZDçs>Ztχ@ 4@&È$Œu,àQû ô×]µRp¢7OŸsz(B�ÊÓ=—©ìŸu_Ùu èLB”þ~îô^`O(Nª sÆ�cCöæÓÉ$ÉüÒ®x~@Ö­—™v™�¬™„+W\)ÖØõ¬/¾È!� (Ì\×¥GO0-Üo*ˆ/ A#Ç{Ø@Aƒe‹6´HÐi¡’c@ $PÌpøãX€“Ç­œÄ}SõIT3Îâîü Î+ºþëèÊî³����IEND®B`‚IMAGE 160 ./arch/weapon/other/wrench.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿���…#Å7���tRNS�@æØf���BIDATxÚå’± � �€þÿ³ñ˜¬íÐ}:<Êïh‚Ý š`ÓBÉh«Mp*w6ÒË3ÏöêòÂ�ðPü����IEND®B`‚IMAGE 280 ./arch/wall/wwall/wwall_w_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€    R-Áq8d3¿¿¿‚B'���àààb¶²—���tRNS�@æØf���¥IDATxÚ½Ó1à Q%!tÿ ;¢°+ç{_Aåë“ÖºªZÛû·£ßƒ–@ï3»9ƒ™ÚU­:+îL¬N ˆÔÕÄgw‚N¶�1Ù]Vߢ”!È †!O‘²k�9�}µ•ùp¼kjW�Îsœ”^åÈ�±» 9 �9‹è.äC, B>Äìj&G@ÄM|þqÞßÏž£4‰j����IEND®B`‚IMAGE 302 ./arch/wall/wwall/wwall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€    R-Áq8d3¿¿¿‚B'���àààb¶²—���tRNS�@æØf���»IDATxÚ½Òí ƒ0 …álµiÚû¿à‰ÉY:d¿¶ ˆ}ŸúÊf~L]“1¦ªÚÈ9Áxæå° §;€€þæ|˜Ù¼1S;ºõ•ƒÕÅë'Ð `µYM:"ÅtæÙz� Df<Â{ŠÖp0Hq6Ì�ÑyîÆ¨ îà=…yæBÌÛµ vÈ/ƒ¨ äxSö.[¦ `¦È¾„¹ æ*¼/aÞ„æMød²ŠëO”ùeä÷ó˜[¥Ýu‡����IEND®B`‚IMAGE 326 ./arch/wall/wwall/wwall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€ R-   ¿¿¿Áq8d3‚B'���ààà{`0G���tRNS�@æØf���ÓIDATxÚ½’Aà ]bÀæÿî&ÞÚ‰8ôÔŽ„2ƒQ¤Èðç[éÝçœÖAë'ä¶Ðv~zu<ï¨Ó«w"î/3óDõZ‰˜M;†@_‰Ø@€5në"ÓdÁCÞ ÷¥mƒAÚ¼­Ò¸"|Mµié X¨b j ô,3x:˜ jF£Î ¼^“Cka@¨=÷(ÆÃ òÃ5Š[P^΂~HiÎfQAéXÐ/)MÏ¢j’ý꽈` õ^Äd²;üÅ¿ ¿ç ½#]Îæ>—����IEND®B`‚IMAGE 335 ./arch/wall/wwall/wwall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€ R-   ¿¿¿Áq8d3‚B'���ààà{`0G���tRNS�@æØf���ÜIDATxÚ½’Û®!E‹þÿŸ]¹µ“4}:݉ÉÀZâ˜H?ˆÝrïÓœ&":‘ÕÊgJ8ÆHà ß7Á³ƒÙfÅ¥ªV¹À™»&UÑÇÒµ=èÐŶ+¤ Ö*Á¸QÚà€iŸë ¡ `nŒ9/ÃÀ¹q e�Û\‚ó4xÛè݈„Ð3Fàšó™ì˜kK Þ ü&ô€Sû]8 Ü öc^§°3yxì|Ñ öv%4îÁ«ø¦ÄÉÓh¡1xÁ7.¥ „7/Ãß‘Òþ‰—Hö%ôÿùd6ÚT\”)����IEND®B`‚IMAGE 347 ./arch/wall/wwall/wwall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜ€€€G$ R-¿¿¿   d3Áq8‚B'���ààà?ìn���tRNS�@æØf���èIDATxÚ½ÓÛŽƒ0 EÑ”`ûØÿÿÁ3¾*¥}«E%”½€ ÑõƒÑ·ù,뾕™qÿÏëÖ·~û ¡~‚N T/�Mœ»[ £Ù‰ÔjÄ—ÐGg,ón6"{gHê ºD6[Ù[¨Ö Ä"7AêL¶ç�ÑGPtp¯  ±ï¼' "T½Sw˜[€Ý 6 Duª¾ÔŠP_O Ž~]�g£ìâ °%š=@‰?lË!|ÕVdô»^Øc 96ÁÍt[G¦ü•IÀ+s›8Òxg`™Âäp}‰K¿Ìþ»׳b =u$����IEND®B`‚IMAGE 397 ./arch/wall/wwall/wwall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜ€€€¿¿¿G$ R-d3Áq8   ‚B'���ààà‡þ.���tRNS�@æØf��IDATxÚ½’Û’Å MÿÿƒwbiÎÙª}ÛyЄn)riÿ8òj÷ªê7"‚°¸…o#äCxá0 ØÅÝ£rr³*¹«÷ác"²1¸kÍ…q äÄêm‚¦!û|HbK0kð!Ä�-9öˆÝ¿Ïħ°0…)§° Œß¥¬¥°Œˆx&p!N¼„ ¸x6(î*×¼$y6ØÂâÃò=¨T{x_‚açÇ"϶„Â6œB„­ ¬øh‰§°«Éå-¯\a™Iãš|B ®9Q¥„Ä“#ð JÞ|6â ǯ2¶ õ˜ÖÕ®zY×ÉÑCšÍ®Üëv Ž"Ó•ë8óú£G®g­<fœ)òw~�´«çJ:¼����IEND®B`‚IMAGE 370 ./arch/wall/wwall/wwall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜ€€€G$¿¿¿ R-d3   Áq8‚B'ààà���í¯Á���tRNS�@æØf���ÿIDATxÚ½I–„0 CMºÿ+2©"@^/[+áÿ!&òÁ’’ZÑ{÷zÔZB©cú6ÊQ/aw®¥(î¾ÛaÎÜ»7s‹xíXbDÜ(t·ÍODt— g³·ÐÝm Š—‘8B’s‡Ä«0Ú›"ò‚B§°ãB¬&ß ƒ;Å_?°’7™+>èW0<¸"¹QPHi¸q(.AóÒq’ë�(yHPtƒ&�®¦˜s_T�'ä!ÄªŠ Øuú¼ÀÝ9VÞݹ¤’ ˆiÇÜB[3Øœ´ìÁýÚÈ™´q¬‘3z>åe°dE°}�:ì€ìN®����IEND®B`‚IMAGE 244 ./arch/monster/dragon/wyvern.x31 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTE����Í�.‹Wÿÿ�T¼~1���tRNS�@æØf���–IDATxÚí’Q€ CeÞÿ΃X–þh"ÆÁkVܱµBVֽіX8Ü{ ”8XâË£óT^¥3ô°8w%5À]Ë Øt]ô+`µºbÀ0@)ƒý1HøRÑ¡ ’Vž šg8dIxv‡djáŸ@1sÂèx¶iÞü­7ÁqèVT>øÅ:Nºgt1Ó‚o­ÑOŽD÷P ����IEND®B`‚IMAGE 240 ./arch/monster/dragon/wyvern.x32 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE����Í�.‹Wÿÿ�ÿÿÿ©=Û,���tRNS�@æØf���IDATxÚí“A€ ¡þÿÏ^È‚ÛÚmHôÄŒÔîˆ íð+†Ë.feƒ9ÖºNzËÒp%Ÿ`='P'Ò5z‹ÍZ6Ç(Fl’4È]ÖŠT =÷DÅìlhJ�(‰j]À†ŒXÐg’ÕU\*Ú€~z51b´S~ÜR_ñ8Óìj˜k>[[ãO;|à ýG ±Ç<Ÿ����IEND®B`‚IMAGE 245 ./arch/monster/dragon/wyvern.x71 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE����Í�.‹Wÿÿ�ÿÿÿ©=Û,���tRNS�@æØf���”IDATxÚí’A€ ÿÿgc‚-ݵ,¸±M 3ÒëdCjûTNÛÕü[J_IBâî¯9}w›ˆ{þ TžáÃVð’²7ÒZ`­æ‹8Ki£P„A<£ñ%Šô§)¶^câòb0)_‰ipÌ4ßÏ!"¼ý§B7Æcë$O5kàY‘ mcÝJ;‚ídgd[Dhy×����IEND®B`‚IMAGE 236 ./arch/monster/dragon/wyvern.x72 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE����Í�.‹Wÿÿ�ÿÿÿ©=Û,���tRNS�@æØf���‹IDATxÚí”A €0 Óøÿ? Ö²©C ôæj#™)„jü9ÔÒç3ûøí-;ô5µU–=å «MG’ÏB[ _l¥RÍ£ðg¼¥K€ä�áüγ@oÍ °ßˆ‘fÕÄãŸÊÀºµ^]=™R*7¤õ)8&þœYàŠXˆéš6ÙþœÌ J #›„����IEND®B`‚IMAGE 190 ./arch/monster/insect/xan/xan.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ÿÿÿ���®ZÏ���tRNS�@æØf���`IDATxÚí‘I À0 cÏÿÿ\ã@|‘½–*ÛAƒdÈú¨ 6Úê+“¬£\Ž'(³…*7ÀøAÈ ¢—O�šð@œŒXÂÍ¸Ø 3ãÌBj‚dÁ¼ö«†½÷ŒMüz§Ÿ¸³¤øˆ����IEND®B`‚IMAGE 181 ./arch/monster/insect/xan/xan.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?ÿÿÿ���3T„���tRNS�@æØf���TIDATxÚå‘1 À0 UûþÿæC,£ î Ñ}a¢è¯÷Aà 'D=Á`d6 øx£°fV°œN(ÞTœ´‚ð eìÜ–éÓt]^WÃ.ÖJÌ����IEND®B`‚IMAGE 207 ./arch/monster/insect/xan/xan_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?ÿ×����*8û���tRNS�@æØf���qIDATxÚí‘Q À0C½ÿg2ªíö7,RÌCƒ=~½.5ÝúbÒDW¾kxd_`}�DÛB·L$}:ÂÈpó @ËЀ2a,¿2ø€ p,9– ˆh’Wz­È § ‘1ãfý7X¼òñ—€ù¹ÈK����IEND®B`‚IMAGE 380 ./arch/road/yellow/yellow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���â®®y‰e�Ι¡}•q±[52��"IDATxÚRQ®Ä BF¸ÿ‘Ÿ8Ú׿­» ›ÀÀàçáäÄàXŒuæ‚\±xb䦅´Ëy ÍBUåcÒ ËÆâªÀ�dU<[’âÒ/ŒiRŒ˜‘hp•×o¡M9$lÇJf•À"-"™‡Ÿ§§—}S¸Žî}žé½ñ:¢žTÜÓ“ÁvVl¾>x˜=³Äí`Öuà 1[öÖáâU/À!t-êžNþCGP07 ÒB+pO vð([E´`Ôtb Xö—.nèõ.àÔÏØïaâÁ7t½ ¤žOv~´§¨³‘8ï2œ*JgI›€œé¯6KÔYR‡ø´Þš6Îìâ&bþï‚FÜ1Ý©—qfûÓ=€ÿ�À(±(ˆÞ����IEND®B`‚IMAGE 326 ./arch/monster/undead/zombie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿªªª™™™™e�e0�ºººee�0™0™™�Ιe�e�ÞÞÞ  †RL���tRNS�@æØf���ÊIDATxÚ¥’ŠÄ0D{—¦IÔ÷ÿ¿{š²\ aÙ+:i…Ÿ 8Èìržœlý³hý)ì V-K(•ÊÈ�´Ò43Ò+uŒwÀëvn=wS(JôÖÚ¬ÇîƒùTiÚšè==ýÁÜ à�÷øL³b"D‚Ÿœ‹VCâ âÔaU×cœÇ-ThBŒo„ î Ùß ø½w®«“ýê)W\^ᙯ8ÔNü2k+¯/�j�£nc Ì õ¶XS(Ê-F¬¢/v¦?§) ðëå ����IEND®B`‚IMAGE 336 ./arch/monster/undead/zombie.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ™™™ªªªe0�ºººee�™e�0™0™™��e�ΙeÞÞÞ N§\[���tRNS�@æØf���ÔIDATxÚ¥’íªÃ Dm¢Ñý8ïÿº7k(¥¢B¹›ù1'ã ¦_$vñužœ,óó²|\¬ .<ûÓàÉg@&£ ~0k°¬ô�ÕYîΞnaª<ù@âñGá×Á'Ç0Âk­}ô8¾WDé_“jµŠÞýC®t �ÆÝ"̸ÑàÓõ³#q‚ˆÌ/HBL¨’"N„Ýk0Øä­5Jiì€VÚˆ‚² Q²^¢Ø5$X‰}Ö€qÏ?�r�š„£Š»c· Q†ññЀàýÏð!Þé Y ¼!¥£����IEND®B`‚IMAGE 338 ./arch/monster/undead/zombie.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ™™™ªªªe0�ºººee�™e�0™0™™��e�ΙeÞÞÞ N§\[���tRNS�@æØf���ÖIDATxÚ¥‹jÄ0 ÓÄOIóÿ¿[ÉÇQ|µ ¥$Av¼ŽrýI\ÀÉxžrB(wÒò,óg$X2Êo€Û„�„DZ�&Â�‘¤«„ëý3ƒå×½Dt¹w.^zÿ“™¸o¡ÖŠÎ¥H¯UkWÄè3‚Þ}–E½ d±{=îèXZ.Ó+]Á‹õ²OÀý�…ƒßr¦µÆh¹ Ž“Ï xÛúá9€ˆ/Fm…âõ€$¤ aˆbæC°kEù™¡'cÎöYßš ¼ûz����IEND®B`‚IMAGE 190 ./arch/monster/undead/zombie_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?¿¿¿ R-���®}n���tRNS�@æØf���]IDATxÚÕ1À ìÿ¿¹'èät`ⱜž[ñ¤ñcâÞƒcÀ,ÏI`°î¿è‹£€!b xíɾìì‹‘*yd_P¹\}9܇bƒ§g+÷åIôÿþ>^йè“gÖ����IEND®B`‚�������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/formulae�����������������������������������������������������������������������0000644�0000145�0000012�00000156050�11731300544�013012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Herein lie the formulae for alchemical products. # # The code is designed so that any fancy combination # of objects may be combined to comprise a formula. Because # the code only requests that the 'names' (see def below) # of cauldron ingredients match those listed in the formula # you can use *anything* found in the game as a possible # ingredient. Legal names include both obj->name and a # title field, if it exists. Therefore, it *is* legal to use # an artifact like "cloak of protection" as an ingredient. # # Definitions of fields: # # "Object" This is the title of the formula. In # conjunction with a value in "arch" these # are used to lookup artifacts from the # artifacts file (ie. <arch> of <title>). # If you want to just create the arch w/o # making it an artifact, designate the # object field as "NONE". # # "chance" is how likely a formula is to appear in # an alchemical grimore. Chance of 0 indicates # the formula never appears. # # "arch" indicates the possible archetype that may # be used to generate the item. # # "ingred" is a comma delimited list of ingredients # that are needed to create the item. Each # alchemical formula *should* be unique! but # note that this is not required. Values of # ingredients must be the object names. Prepend # an integer value to denote the number of that # ingredient ("1" is not needed for single # ingredients). Note that the ordering of the # ingredients is *not* important. # # "yield" is the theoretical possible maximum # of # items the recipe can generate. # It is fundamentally useful for balancing # reward/effort for these recipes. One intention # is to enforce conservation of mass by means # of this #. # # "trans" defaults to '0' and is not explicitly needed. # If you define it to any value (ie '1') then # one of the ingredients will be used as the base # arch for the product. Obviously, the ingredient # so used *must* have the same archetype as the # product so don't be a fool and leave out a # common archetype ingredient!! See bolt of Dragon # slaying for an example of a transmution formula. # # "keycode" A string, such as "fire". In order for the alchemist # to execute this recipe, he must have a FORCE with a # slaying field matching the keycode # # "skill" A string, such as "alchemy". This is the name of the skill # that is used to create this formula. Must be set if this is # an alchemy recipe, in which case it must match one of the # following: # smithery, bowyer, jeweler, alchemy, thaumaturgy, literacy, # woodsman # # "cauldron" A string, which must be the valid archetype name for an # archetype. In the example of a true alchemy formula, this # would be a cauldron. A smithery formula might use something # like a forge. You can create formulae that are only usable # with a specific facilities. This field is required unless the # formula describes an item transformation. # # "exp" A required integer. This is the amount of experience a user # gets by using this formula. You should factor difficulty in # when setting exp. The game does not do this for you. # # "diff" A required integer. This is the percentage difficulty out of # 100 of how hard this formula is. This is the only factor used in # determining success or failure of the creation. # # "failure_arch" An optional string, which must be the valid archetype name for an # archetype. Instead of a random effect, this item will be generated in case # of alchemy failure. # # "failure_message" An optional string. If set, a failure in alchemy will # display this message instead of a server-decided message. Only used if # failure_arch is set too. # # "min_level" An optional integer. If set, this is the minimum required level # needed to attempt the formulae. # # "combination" An optional integer. If set (and non-zero), the formula will never # appear in the randomly generated books. # # "tool" An optional comma delimited list of archetypes names. If set, the formula # explains what items can be transformed into when a 'tool' is used. # 'arch' then lists all generated products, and 'ingred' what is transformed. # # # IMPORTANT NOTE ----> # It is not enough to construct ad-hoc lists of # ingredients to make a formula. Playbalance will # be adversely effected if you make a formula for # a powerfull artifact (potion of stat raising, for # example) that is common, and/or easy to assemble # the ingredients, and/or has few ingredients. Thus, # here are some general guidelines for making formulae: # # 1) no fewer than 2 ingredients # 2) at least one ingredient needs to be found # in the dungeon, or is rarely appearing in shop. # 3) more ingredients for more powerfull stuff. # 4) more 'expensive' ingredients for more powerfull # stuff. 'expensive' here means its harder to get, # more costly to buy, rarer to find. # 5) Run crossfire with the -m9 switch to check your formula - # It does some sanity checking and price checking # # # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # F O R M U L A E B E G I N # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # # -------------- # Basic formulae - these formulae make some of the most often used # ingredients. # -------------- # # true lead Object NONE arch true_lead yield 2 chance 5 diff 20 exp 100000 skill alchemy cauldron cauldron ingred lead,pile of philosophical salt,bottle of philosophical oil,pile of philosophical sulphur,pile of philosophical phosphorus # # fixed mercury Object NONE arch fix_mercury yield 2 chance 5 diff 20 exp 100000 skill alchemy cauldron cauldron ingred mercury,pile of philosophical salt,bottle of philosophical oil,pile of philosophical sulphur,pile of philosophical phosphorus # # mercury Object NONE arch mercury chance 10 diff 5 exp 1000 skill alchemy cauldron cauldron ingred 3 pile of cinnabar # # philosophical salt Object NONE arch phil_salt chance 10 diff 5 exp 1000 yield 7 skill alchemy cauldron cauldron ingred 7 pile of salt # # philosophical sulphur Object NONE arch phil_sulphur chance 10 diff 5 exp 1000 yield 7 skill alchemy cauldron cauldron ingred 7 pile of sulphur # # philosophical phosphorus Object NONE arch phil_phosphorus chance 10 diff 5 exp 1000 yield 7 skill alchemy cauldron cauldron ingred 7 pile of phosphorus # # philosophical oil Object NONE arch phil_oil chance 9 diff 5 exp 1000 yield 7 skill alchemy cauldron cauldron ingred 7 bottle of mineral oil # # water of the wise Object the wise arch water chance 30 diff 8 exp 1000 yield 7 skill alchemy cauldron cauldron ingred 7 water # # water of diamond Object diamond arch water chance 30 diff 10 exp 5000 yield 1 skill alchemy cauldron cauldron ingred water of the wise,3 diamond # # water of ruby Object ruby arch water diff 10 exp 5000 chance 35 skill alchemy cauldron cauldron ingred 3 ruby,water of the wise # # water of sapphire Object sapphire arch water diff 10 exp 5000 chance 40 skill alchemy cauldron cauldron ingred 3 sapphire,water of the wise # # water of emerald Object emerald arch water chance 40 diff 10 exp 5000 skill alchemy cauldron cauldron ingred 3 emerald,water of the wise # # water of pearl Object pearl arch water chance 40 diff 10 exp 5000 skill alchemy cauldron cauldron ingred 3 pearl,water of the wise # # # -------------- # Potions -- incl. balms, figurines, and dusts # -------------- # # -- Balms of protection. Since balm is rubbed on, I made only # protections vs. things that 'physically' must touch you. # Other protections are in potion. # # -- balms of protection -- # # -- fire prot. Object asbestos arch balm_generic chance 25 diff 15 exp 8000 skill alchemy cauldron cauldron ingred 3 red dragon scale,water of the wise # # -- cold prot. #1 Object warmth arch balm_generic chance 25 diff 16 exp 9000 skill alchemy cauldron cauldron ingred vampire's heart,water of the wise,icecube # # -- cold prot. #2 Object warmth arch balm_generic chance 25 diff 14 exp 6000 skill alchemy cauldron cauldron ingred vampire's heart,water of the wise,water of pearl # # -- elect prot. Object insulation arch balm_generic chance 25 diff 14 exp 7000 skill alchemy cauldron cauldron ingred beholdereye,water of the wise,2 key # # -- phys. prot. Object aethereality arch balm_generic chance 28 diff 17 exp 8000 skill alchemy cauldron cauldron ingred 3 ghost's ectoplasm,water of emerald # # -- misc. balms -- # # -- word of recall Object return home arch balm_generic chance 2 diff 12 exp 6000 yield 3 skill alchemy cauldron cauldron ingred 3 xan's wing,3 pixie's wings,3 water of sapphire # # -- invisible Object transparency arch balm_generic chance 8 diff 14 exp 7000 skill alchemy cauldron cauldron ingred ghost's ectoplasm,water of emerald,3 onion # # -- invisible to undead Object invisible to undead arch balm_generic chance 15 diff 10 exp 5000 skill alchemy cauldron cauldron ingred zombie's corpse,graveyard dirt # # -- minor heal Object first aid arch balm_generic chance 27 diff 9 exp 4000 skill alchemy cauldron cauldron ingred water of the wise,mandrake root # # -- levitation Object flying arch balm_generic chance 20 diff 13 exp 7000 skill alchemy cauldron cauldron ingred 2 giant bat's wing,water of the wise # # -- serpent to snake (you rub it on your staff!) Object the serpent arch balm_generic chance 12 diff 12 exp 6000 skill alchemy cauldron cauldron ingred snake's skin,bottle of philosophical oil # # Figurines -- these devices should only summon 'golems'; never any # other effects. # # -- summon golem Object clay arch figurine_generic chance 8 diff 8 exp 3000 skill alchemy cauldron cauldron ingred 3 graveyard dirt,water of the wise # # -- summon air elem Object whirlwind arch figurine_generic chance 7 diff 20 exp 20000 yield 4 skill alchemy cauldron cauldron ingred air para-elemental's residue,7 pile of gypsum,bottle of philosophical oil # # -- summon earth elem Object stone arch figurine_generic chance 5 diff 20 exp 20000 yield 4 skill alchemy cauldron cauldron ingred earth para-elemental's residue,7 pile of pyrite,bottle of philosophical oil # # -- summon water elem Object a great wave arch figurine_generic chance 4 diff 20 exp 20000 yield 4 skill alchemy cauldron cauldron ingred water para-elemental's residue,7 water,bottle of philosophical oil # # -- summon fire elem Object a flame arch figurine_generic chance 3 diff 20 exp 20000 yield 4 skill alchemy cauldron cauldron ingred fire para-elemental's residue,7 pile of sulphur,bottle of philosophical oil # # -- mystic fist Object a clenched hand arch figurine_generic chance 1 yield 7 diff 14 exp 10000 skill alchemy cauldron cauldron ingred figurine of clay,hill giant's hand,bottle of philosophical oil # # Dusts -- these either allow 360 deg 'attacks' or effect some kind of # detection. # # -- dusts w/ 360 effect -- # # -- paralyze Object stasis arch dust_generic chance 15 diff 10 exp 5000 skill alchemy cauldron cauldron ingred mountain stone,goblin's liver # # -- mass confusion Object madness arch dust_generic chance 15 diff 12 exp 6000 yield 2 skill alchemy cauldron cauldron ingred madman's corpse,2 water of the wise # # -- burning hands Object ignition arch dust_generic chance 19 yield 4 diff 15 exp 8000 skill alchemy cauldron cauldron ingred water of diamond,pile of salt,pile of phosphorus,pile of sulphur # # -- hellfire Object conflagration arch dust_generic chance 5 yield 4 diff 20 exp 20000 skill alchemy cauldron cauldron ingred water of diamond,pile of philosophical salt,pile of philosophical phosphorus,pile of philosophical sulphur # # -- counterspell Object countermagic arch dust_generic chance 23 diff 15 exp 9000 yield 4 skill alchemy cauldron cauldron ingred 2 lead,pile of philosophical phosphorus # # -- slow Object lethargy arch dust_generic chance 23 diff 15 exp 9000 yield 6 skill alchemy cauldron cauldron ingred water of pearl,slug's slime,river stone # # -- icestorm #1 Object frost arch dust_generic chance 18 diff 12 exp 10000 yield 4 skill alchemy cauldron cauldron ingred icecube,icecube,icecube,water of diamond # # -- icestorm #2 Object frost arch dust_generic chance 18 diff 14 exp 8000 yield 3 skill alchemy cauldron cauldron ingred water of pearl,water of diamond,pile of gypsum # # -- shockwave Object concussion arch dust_generic chance 8 diff 10 exp 5000 yield 2 skill alchemy cauldron cauldron ingred dust of conflagration,dust of ignition # # -- fear Object fright arch dust_generic chance 16 diff 12 exp 6000 yield 2 skill alchemy cauldron cauldron ingred orc's heart,water of the wise # # -- turn undead Object repelling undead arch dust_generic chance 11 diff 9 exp 4500 yield 6 skill alchemy cauldron cauldron ingred pile of salt,graveyard dirt # # -- face of death -- this is potent stuff!! # unfortuneately its currently buggy :< #Object Necrocritis #arch dust_generic #chance 0 #ingred 3 graveyard dirt,vampire's heart,zombie corpse,lich dust # # -- dusts of detection -- # # -- magic mapping Object clairvoyance arch dust_generic chance 14 diff 7 exp 4000 yield 6 skill alchemy cauldron cauldron ingred 2 beholdereye,water of sapphire # # -- show invisible Object revealing arch dust_generic chance 3 diff 9 exp 4500 yield 5 skill alchemy cauldron cauldron ingred 3 pile of gypsum,Dread's eye,water of emerald # # -- detect magic Object show enchantment arch dust_generic chance 38 diff 5 exp 2000 yield 5 skill alchemy cauldron cauldron ingred pixie dust,pile of pyrite # # -- dark vision Object night vision arch dust_generic chance 17 diff 15 exp 9000 yield 10 skill alchemy cauldron cauldron ingred beholdereye,3 carrots,water of the wise # # -- xray Object piercing vision arch dust_generic chance 11 yield 10 diff 9 exp 4500 skill alchemy cauldron cauldron ingred water of sapphire,7 carrots # # -- faery fire Object clinging glow arch dust_generic chance 21 diff 14 exp 8000 yield 10 skill alchemy cauldron cauldron ingred pile of pyrite,3 pixie dust,water of the wise # # -- fog, ok, ok. Not a detection spell. Not 360. But where else # to put it? And after all the work I put in this game, # can't I name an artifact after a favorite character? :) # -- b.t. Object Biren's mist arch dust_generic chance 6 diff 15 exp 7000 yield 3 skill alchemy cauldron cauldron ingred water of the wise,icecube,booze # # biren's mist #2 Object Biren's mist arch dust_generic chance 6 yield 6 diff 14 exp 7500 skill alchemy cauldron cauldron ingred water of the wise,water of pearl,booze # # -- command undead Object the Dead arch dust_generic chance 14 diff 14 exp 7000 yield 5 skill alchemy cauldron cauldron ingred skull's tongue,zombie's corpse,graveyard dirt # # -- light Object brightness arch dust_generic chance 24 diff 12 exp 6000 yield 6 skill alchemy cauldron cauldron ingred torch,water of ruby,pile of sulphur # # -- darkness Object impenatrability arch dust_generic chance 15 diff 18 exp 12000 yield 3 skill alchemy cauldron cauldron ingred burnt out torch,lead,dust of Biren's mist # # -- mana blast Object consuming wrath arch dust_generic chance 16 diff 18 exp 12000 yield 5 skill alchemy cauldron cauldron ingred water of diamond,pile of phosphorus,lead,pile of sulphur # # -- medium mana ball Object encompassing rage arch dust_generic chance 4 diff 20 exp 20000 yield 5 skill alchemy cauldron cauldron ingred water of diamond,pile of philosophical phosphorus,lead,pile of philosophical sulphur # # # -- medium snowstowm Object blizzards arch dust_generic chance 5 yield 5 diff 15 exp 10000 skill alchemy cauldron cauldron ingred water of sapphire,dust of frost,bottle of philosophical oil # # Potions -- these give 'non-contact' protections, have # attack effects on the 'drinker' (or one it is # thrown at ;), give immunities, give cures and # have the more powerfull misc. effects. # # -- stat enchancing potion. (temporary, allowing players to make # permantent stat raising items is a playbalance no no I think). # # -- strength spell Object strength arch potion_generic chance 18 diff 16 exp 12000 skill alchemy cauldron cauldron ingred 3 water of the wise,ogre's arm,pile of philosophical salt # # -- dex spell Object agility arch potion_generic chance 18 diff 16 exp 12000 yield 7 skill alchemy cauldron cauldron ingred 3 water of the wise,pixie dust,pile of philosophical salt # # -- con spell Object fortitude arch potion_generic chance 17 diff 16 exp 12000 yield 7 skill alchemy cauldron cauldron ingred 3 water of the wise,small troll's liver,pile of philosophical salt # # -- cha spell (gets rid of wrinkles, better as balm! :) Object beauty arch balm_generic chance 5 diff 16 exp 12000 yield 7 skill alchemy cauldron cauldron ingred woman's head,3 mint sprig,water of the wise # # -- heroism Object NONE arch potion_heroism chance 11 diff 16 exp 12000 yield 8 skill alchemy cauldron cauldron ingred ogre's heart,3 water of the wise,pile of philosophical salt,pirate's heart # # -- immunity potion, these are separate archs each already -- # Note the 0 chance--these formulae are quest items. # # -- fire immune # (quest: peterm/FireTemple) Object NONE arch potion_cold chance 0 diff 50 exp 500000 yield 10 skill alchemy cauldron cauldron ingred fire para-elemental's residue,3 balm of asbestos,dragon's steak,7 water of ruby keycode fire alchemist # # -- cold immune Object NONE arch potion_fire chance 1 diff 50 exp 500000 yield 10 skill alchemy cauldron cauldron ingred ice para-elemental's residue,3 balm of warmth,chinese dragon's steak,7 water of sapphire # # -- renamed potion of invulnerability to potion of shielding Object NONE arch potion_shielding chance 0 diff 50 exp 500000 yield 4 skill alchemy cauldron cauldron ingred spectre's ectoplasm,demon's head,7 water of ruby,3 balm of aethereality # # -- magic immunity (very powerful) Object magic resistance arch potion_generic chance 0 diff 50 exp 500000 yield 14 skill alchemy cauldron cauldron ingred block of true lead,demon's heart,7 water of diamond,3 potion of resist magic # # -- electric immunity (very powerful) Object shock resistance arch potion_generic chance 0 diff 50 exp 500000 yield 14 skill alchemy cauldron cauldron ingred lightning para-elemental's residue,block of fixed mercury,titan's head,7 water of ruby # # -- prot from magic Object resist magic arch potion_generic chance 25 diff 20 exp 20000 yield 2 skill alchemy cauldron cauldron ingred water of ruby,beholder's tongue,mandrake root # # -- prot from confusion Object resist confusion arch potion_generic chance 22 diff 20 exp 20000 skill alchemy cauldron cauldron ingred madman's head,beholdereye,water of ruby # # -- prot from draining Object resist draining arch potion_generic chance 21 diff 15 exp 12000 yield 10 skill alchemy cauldron cauldron ingred wight's corpse,water of ruby,graveyard dirt # # -- prot from paralysis Object resist paralysis arch potion_generic chance 24 diff 14 exp 11000 yield 10 skill alchemy cauldron cauldron ingred mercury,water of ruby,cunning gnome's corpse # # -- prot from slow Object resist slow arch potion_generic chance 24 diff 14 exp 11000 yield 10 skill alchemy cauldron cauldron ingred water of ruby,2 xan's wing # # -- prot from poison Object resist poison arch potion_generic chance 20 diff 15 exp 12000 yield 10 skill alchemy cauldron cauldron ingred scorpion's stinger,water of ruby,clover # # -- curative potion # # -- cure blindness Object cure vision arch potion_generic chance 15 diff 12 exp 9000 yield 5 skill alchemy cauldron cauldron ingred man's eye,carrots,balm of first aid # # -- cure poison Object cure poison arch potion_generic chance 16 diff 12 exp 9000 yield 5 skill alchemy cauldron cauldron ingred snake's skin,apple,balm of first aid # # -- cure confusion Object cure madness arch potion_generic chance 17 diff 12 exp 9000 yield 9 skill alchemy cauldron cauldron ingred madman's head,apple,balm of first aid # # -- potion casting other magic, dedicated archs first, then potion_gen # # -- sp regen. Recipe #1 Object NONE arch potion_magic chance 0 diff 20 exp 20000 yield 5 skill alchemy cauldron cauldron ingred 3 potion of mystic power,block of fixed mercury,water of diamond # # -- sp regen. Recipe #2 Object NONE arch potion_magic chance 0 diff 20 exp 25000 yield 4 skill alchemy cauldron cauldron ingred potion of mystic power,mushroom of Magic,water of diamond # # -- restoration Object NONE arch potion_restoration chance 7 diff 10 exp 10000 yield 5 skill alchemy cauldron cauldron ingred unicorn horn,3 booze # # -- healing recipe #1 Object NONE arch potion_heal chance 4 diff 13 exp 13000 yield 4 skill alchemy cauldron cauldron ingred supreme potion of life,mushroom of Healing,red rose # # -- healing recipe #2 Object NONE arch potion_heal chance 2 diff 13 exp 13000 yield 5 skill alchemy cauldron cauldron ingred unicorn horn,balm of first aid,red rose # # -- regeneration Object recuperation arch potion_generic chance 9 diff 13 exp 13000 yield 7 skill alchemy cauldron cauldron ingred troll's liver,water of the wise,3 booze # # -- haste Object speed arch potion_generic chance 1 diff 20 exp 20000 yield 4 skill alchemy cauldron cauldron ingred pixie's wings,xan's wing,water of diamond # # -- transfer Object mystic power arch potion_generic chance 8 diff 12 exp 12000 yield 6 skill alchemy cauldron cauldron ingred 3 water of diamond,sage's head,clover # # -- perceive self Object self knowledge arch potion_generic chance 20 diff 10 exp 10000 yield 3 skill alchemy cauldron cauldron ingred sage's head,water of the wise # # -- probe Object testing monsters arch potion_generic chance 20 diff 10 exp 10000 yield 3 skill alchemy cauldron cauldron ingred magnifying glass,tissue paper,7 water # # -- cure disease Object cure disease arch potion_generic chance 20 diff 5 exp 5000 yield 5 skill alchemy cauldron cauldron ingred booze,balm of first aid,red rose # # -- attack potion. Drinker/target is effected adversely # # -- sm. lightning Object electric shock arch potion_generic chance 4 diff 10 exp 10000 yield 3 skill alchemy cauldron cauldron ingred lightning para-elemental's residue,water of diamond # # -- firebolt Object fire arch potion_generic chance 4 diff 10 exp 10000 yield 3 skill alchemy cauldron cauldron ingred fire para-elemental's residue,water of ruby # # -- frostbolt Object freezing arch potion_generic chance 4 diff 10 exp 10000 yield 3 skill alchemy cauldron cauldron ingred ice para-elemental's residue,water of sapphire # # -- sunspear Object sunfire arch potion_generic chance 4 diff 10 exp 10000 yield 3 skill alchemy cauldron cauldron ingred lava para-elemental's residue,water of diamond # # -- comet Object black fire arch potion_generic chance 2 diff 10 exp 10000 yield 5 skill alchemy cauldron cauldron ingred potion of fire,potion of sunfire,water of diamond # # -- meteor storm, very powerful. Object fiery destruction arch potion_generic chance 0 diff 50 exp 50000 yield 6 skill alchemy cauldron cauldron ingred potion of black fire,water of diamond,water of ruby,water of sapphire,water of emerald # # -- s. fireball Object firestorm arch potion_generic chance 12 diff 18 exp 18000 yield 7 skill alchemy cauldron cauldron ingred dust of ignition,3 booze,bottle of philosophical oil # # -- m. fireball Object great firestorm arch potion_generic chance 4 diff 18 exp 18000 yield 7 skill alchemy cauldron cauldron ingred dust of conflagration,3 booze,bottle of philosophical oil # # -- poison cloud Object noxious fumes arch potion_generic chance 15 diff 18 exp 18000 yield 7 skill alchemy cauldron cauldron ingred 3 xan's wing,water of emerald # # -- color spray. very powerful, probably should be a quest item Object Rainbow Wave arch potion_generic chance 0 diff 50 exp 100000 yield 6 skill alchemy cauldron cauldron ingred wyvern of chaos's steak,7 water of diamond,potion of electric shock,skull's tongue # # -- ball lightning Object lasting shock arch potion_generic chance 3 diff 28 exp 40000 yield 3 skill alchemy cauldron cauldron ingred 3 water of diamond,3 potion of electric shock,electric dragon's steak # # ------------------- # Missile weapons # ------------------- # Object Slay Dragon arch arrow chance 3 trans 1 diff 5 exp 5000 yield 20 skill bowyer cauldron workbench ingred 20 arrow,dragon's claw # Object Slay Dragon arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,dragon's claw # # Object Assassinating Dragons arch bolt chance 0 diff 30 exp 50000 yield 20 trans 1 skill bowyer cauldron workbench ingred 20 bolt,dragon's heart,water of emerald,scorpion's stinger # # Object Assassinating Dragons arch arrow chance 0 diff 30 exp 50000 yield 20 trans 1 skill bowyer cauldron workbench ingred 20 arrow,dragon's heart,water of emerald,scorpion's stinger # Object Assassinating Trolls arch bolt chance 0 diff 30 exp 50000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,troll's heart,scorpion's stinger # # Object Assassinating Trolls arch arrow chance 0 diff 30 exp 50000 yield 20 trans 1 skill bowyer cauldron workbench ingred 20 arrow,troll's heart,scorpion's stinger # # Object Blessedness arch bolt chance 0 diff 30 exp 50000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,unicorn horn,2 water of sapphire # # Object Blessedness arch arrow chance 0 diff 30 exp 50000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 arrow,unicorn horn,2 water of sapphire # # Object Magic arch arrow chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 arrow,potion of mystic power # # Object Magic arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,potion of mystic power # # Object Fire arch arrow chance 4 trans 1 diff 5 exp 5000 yield 20 skill bowyer cauldron workbench ingred 20 arrow,wyvern's steak # # Object Fire arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,wyvern's steak # # Object Frost arch arrow chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 arrow,ghost's ectoplasm # # Object Frost arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,ghost's ectoplasm # # Object Lightning arch arrow chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 arrow,skull's tooth # # Object Lightning arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,skull's tooth # # Object Paralysis arch arrow chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 arrow,beholdereye # # Object Paralysis arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,beholdereye # # Object Poison arch arrow chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 arrow,scorpion's stinger # # Object Poison arch bolt chance 4 diff 5 exp 5000 trans 1 yield 20 skill bowyer cauldron workbench ingred 20 bolt,scorpion's stinger # # ------------------- # Cloaks # ------------------- # Object minor protection arch cloak chance 5 diff 5 exp 5000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,balm of aethereality # Object intermediate protection arch cloak chance 4 diff 10 exp 15000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,ghost's ectoplasm,balm of aethereality # Object greater protection arch cloak chance 2 diff 20 exp 30000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,spectre's ectoplasm,potion of aethereality # Object Insulation arch cloak chance 3 diff 10 exp 10000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,3 electric dragon's steak,balm of insulation # Object Warmth arch cloak diff 10 exp 10000 chance 3 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,3 chinese dragon's steak,balm of insulation # Object Asbestos arch cloak chance 3 diff 10 exp 10000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,3 dragon's steak,balm of insulation # Object Acid Proofing arch cloak chance 3 diff 25 exp 50000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,gaelotroll's corpse,block of true lead # Object Lythander arch cloak chance 1 diff 25 exp 50000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,Dread's eye,holy symbol,2 potion of power # Object Gaea arch cloak chance 1 yield 1 diff 26 trans 1 exp 55000 skill woodsman cauldron tanbench ingred cloak,balm of asbestos,balm of insulation,balm of warmth,holy symbol # Object the Magi arch cloak chance 1 diff 26 exp 80000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,potion of wisdom,2 potion of power # Object Unholy Protection arch cloak chance 3 diff 25 exp 50000 trans 1 yield 1 skill woodsman cauldron tanbench ingred cloak,ring of Doom,amulet of Unholiness,lich dust,vampire's heart # # ------------------- # Boots # ------------------- # Object granite arch high_boots,high_boots_b,high_boots_w chance 5 diff 5 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred jack boots,3 lead # Object granite arch low_boots chance 5 diff 5 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred pair of shoes,3 lead # Object mobility arch low_boots chance 3 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred pair of shoes,beholdereye,3 lead # Object mobility arch elvenboots chance 1 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred elven boots,Dread's eye,block of true lead # Object mobility arch levitationboots chance 1 diff 20 exp 50000 trans 1 yield 1 skill smithery cauldron forge ingred levitation boots,Dread's eye,block of true lead # Object clawing arch low_boots chance 5 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred pair of shoes,goblin's head,lead # Object clawing arch high_boots,high_boots_b,high_boots_w chance 5 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred jack boots,goblin's head,lead # Object steel arch high_boots,high_boots_b,high_boots_w chance 5 diff 15 exp 25000 trans 1 yield 1 skill smithery cauldron forge ingred jack boots,3 mithril crystal # Object steel arch low_boots chance 5 diff 15 exp 25000 trans 1 yield 1 skill smithery cauldron forge ingred pair of shoes,3 mithril crystal # # ------------------- # Armour # ------------------- # Object Gorokh arch scale_mail,b_scale_mail chance 3 diff 12 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred scale mail,potion of magic resistance,demon's head # Object Gorokh arch plate_mail,b_plate_mail chance 3 diff 12 exp 25000 trans 1 yield 1 skill smithery cauldron forge ingred plate mail,potion of magic resistance,demon's head # Object Gnarg arch scale_mail,b_scale_mail chance 4 diff 15 exp 30000 trans 1 yield 1 skill smithery cauldron forge ingred scale mail,potion of resist poison,troll's heart # Object Gnarg arch plate_mail,b_plate_mail chance 4 diff 18 exp 40000 trans 1 yield 1 skill smithery cauldron forge ingred plate mail,potion of resist poison,troll's heart # Object Protection arch scale_mail,b_scale_mail chance 6 diff 25 exp 80000 trans 1 yield 1 skill smithery cauldron forge ingred scale mail,amulet of Shielding,lead # Object Protection arch plate_mail,b_plate_mail chance 6 diff 30 exp 100000 trans 1 yield 1 skill smithery cauldron forge ingred plate mail,amulet of Shielding,3 lead # Object Berwean arch plate_mail,b_plate_mail chance 4 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred plate mail,3 pixie's wings,3 xan's wing # Object Berwean arch mithril_chainmail chance 2 diff 20 exp 40000 trans 1 yield 1 skill smithery cauldron forge ingred mithril chainmail,3 pixie's wings,3 xan's wing,potion of speed # Object Blazing Fires arch dragon_mail chance 1 diff 30 exp 100000 trans 1 yield 1 skill smithery cauldron forge ingred dragon mail,3 dragon's steak,dragon's eye,dragon scale,fire para-elemental's residue # Object Blazing Fires arch scale_mail,b_scale_mail chance 2 diff 25 exp 80000 trans 1 yield 1 skill smithery cauldron forge ingred scale mail,wyvern's steak,dragon scale,fire para-elemental's residue # Object Gaea arch leather_armour chance 3 diff 15 exp 30000 trans 1 yield 1 skill smithery cauldron forge ingred armour,potion of resist draining,potion of recuperation # Object Gaea arch ring_mail chance 3 diff 12 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred hauberk,potion of resist draining,potion of recuperation # Object Protection arch chain_mail chance 5 diff 20 exp 40000 trans 1 yield 1 skill smithery cauldron forge ingred chain mail,balm of aethereality,lead # Object Protection arch ring_mail2 chance 5 diff 20 exp 40000 trans 1 yield 1 skill smithery cauldron forge ingred ring mail,balm of aethereality,lead # Object Power arch plate_mail,b_plate_mail chance 2 diff 40 exp 150000 trans 1 yield 1 skill smithery cauldron forge ingred plate mail,3 dragon's steak,balm of aethereality,potion of strength # Object Displacement arch robe,robe2 diff 20 exp 50000 chance 4 trans 1 yield 1 skill smithery cauldron forge ingred robe,balm of transparency,3 mercury # Object metal weave arch robe,robe2 diff 10 exp 20000 chance 4 trans 1 yield 1 skill smithery cauldron forge ingred robe,lead,balm of aethereality # Object NONE arch elven_robe diff 40 exp 150000 chance 2 yield 1 skill smithery cauldron forge ingred robe,potion of dexterity,3 potion of resist confusion,clover,unicorn horn # # ------------------ # Helmets # ------------------ # Object Xebinon arch helmet,a_helmet,b_helmet chance 2 diff 5 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred helmet,magic power potion,bottle of philosophical oil # Object Dark Vision arch helmet,a_helmet,b_helmet chance 3 diff 5 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred helmet,3 dust of night vision,bottle of philosophical oil # Object Might arch full_helmet,b_full_helmet chance 3 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred full helmet,potion of strength,ogre's corpse,bottle of philosophical oil # Object Valriel arch full_helmet,b_full_helmet chance 4 diff 10 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred full helmet,3 balm of beauty,bottle of philosophical oil # Object Argoth arch full_helmet,b_full_helmet chance 2 diff 12 exp 25000 trans 1 yield 1 skill smithery cauldron forge ingred full helmet,3 dragon's steak,mithril crystal,bottle of philosophical oil # Object Lythander arch helmet,a_helmet,b_helmet chance 5 diff 6 exp 12000 trans 1 yield 1 skill smithery cauldron forge ingred helmet,clover,bottle of philosophical oil # Object Sorig arch crown,crown_dark,crown_gray,crown_r,crown_white chance 3 diff 20 exp 40000 trans 1 yield 1 skill smithery cauldron forge ingred crown,lightning para-elemental's residue,balm of insulation,bottle of philosophical oil # # ------------------ # Shields # ------------------ # Object Deflection arch high_shield chance 5 diff 5 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred high shield,balm of aethereality,3 lead # Object Mostrai arch small_shield,b_small_shield chance 3 diff 7 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred small shield,balm of asbestos,mithril crystal # Object Mostrai arch high_shield chance 3 diff 7 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred high shield,balm of asbestos,mithril crystal # Object Gnarg arch spiked_shield chance 3 diff 7 exp 5000 trans 1 yield 1 skill smithery cauldron forge ingred spiked shield,pixie dust,booze # # ------------------ # Gauntlets / Gloves # ------------------ # Object Havok arch gloves,gloves_b,gloves_w chance 4 diff 5 exp 12000 trans 1 yield 1 skill woodsman cauldron tanbench ingred gloves,ogre's corpse,bottle of philosophical oil # Object marksmanship arch gloves,gloves_b,gloves_w chance 5 trans 1 yield 1 diff 8 exp 16000 skill woodsman cauldron tanbench ingred gloves,5 arrow of Accuracy,bottle of mineral oil # Object Sorig arch gloves,gloves_b,gloves_w chance 3 trans 1 yield 1 diff 13 exp 20000 skill woodsman cauldron tanbench ingred gloves,hill giant's hand,lightning para-elemental's residue,bottle of philosophical oil # Object the Titans arch gauntlets,b_gauntlets chance 3 diff 14 exp 22000 trans 1 yield 1 skill smithery cauldron forge ingred gauntlets,hill giant's heart,bottle of philosophical oil # Object bladed steel arch gloves,gloves_b,gloves_w chance 5 diff 10 exp 20000 trans 1 yield 1 skill woodsman cauldron tanbench ingred gloves,hill giant's hand,bottle of mineral oil # Object Sorig arch gauntlets,b_gauntlets chance 1 diff 35 exp 120000 trans 1 yield 1 skill smithery cauldron forge ingred gauntlets,hill giant's hand,lightning para-elemental's residue,bottle of philosophical oil,electric dragon's steak # # ------------------ # Bows / Crossbows # ------------------ # Object Auriga arch bow chance 1 trans 1 yield 1 diff 15 exp 15000 skill bowyer cauldron workbench ingred bow,3 potion of strength,hill giant's corpse,troll's heart # Object Thunder arch bow chance 3 diff 16 exp 16000 trans 1 yield 1 skill bowyer cauldron workbench ingred bow,titan's head,dust of stasis # Object Thunder arch crossbow chance 3 diff 16 exp 16500 trans 1 yield 1 skill bowyer cauldron workbench ingred crossbow,titan's head,dust of stasis # Object Lythander arch longbow chance 5 diff 10 exp 10000 trans 1 yield 1 skill bowyer cauldron workbench ingred long bow,4 clover,troll's liver # Object Ruggilli arch crossbow chance 4 diff 12 exp 11000 trans 1 yield 1 skill bowyer cauldron workbench ingred crossbow,3 potion of fire,dragon's wing # Object Sorig arch huntersbow chance 5 diff 12 exp 11500 trans 1 yield 1 skill bowyer cauldron workbench ingred hunter's bow,potion of lasting shock,lightning para-elemental's residue # Object Accuracy arch bow chance 10 diff 3 exp 4000 trans 1 yield 1 skill bowyer cauldron workbench ingred bow,3 mushroom of Quickness,mercury # Object Valriel arch compositebow chance 9 diff 5 exp 6000 trans 1 yield 1 skill bowyer cauldron workbench ingred composite bow,demon's head,3 dust of frost # Object Gorokh arch longbow chance 2 diff 20 exp 18000 trans 1 yield 1 skill bowyer cauldron workbench ingred long bow,3 dust of conflagration,gaelotroll's liver,ogre's heart # Object Mostrai arch crossbow diff 18 chance 3 diff 18 exp 17500 trans 1 yield 1 skill bowyer cauldron workbench ingred crossbow,3 dust of consuming wrath,hill giant's heart,3 mithril crystal # # ------------------ # Weapons # ------------------ # Object Madness arch dagger,b_dagger chance 5 diff 5 exp 8000 trans 1 yield 1 skill smithery cauldron forge ingred dagger,madman's head,bottle of mineral oil # Object Poisoning arch dagger,b_dagger chance 5 diff 5 exp 5000 trans 1 yield 1 skill smithery cauldron forge ingred dagger,xan's wing,bottle of mineral oil # Object Poisoning arch falchion chance 3 diff 6 exp 6000 trans 1 yield 1 skill smithery cauldron forge ingred falchion,3 xan's wing,bottle of philosophical oil # Object Fear arch morningstar chance 5 diff 8 exp 10000 trans 1 yield 1 skill smithery cauldron forge ingred morningstar,wyvern's steak,bottle of philosophical oil # Object Fear arch club chance 5 diff 4 exp 5000 trans 1 yield 1 skill smithery cauldron forge ingred club,wyvern's steak,bottle of philosophical oil # Object Fear arch big_club chance 5 diff 5 exp 6000 trans 1 yield 1 skill smithery cauldron forge ingred large club,wyvern's steak,bottle of philosophical oil # Object Gnarg arch sword,b_sword_1,b_sword_2,sword_2 chance 5 diff 8 exp 8000 trans 1 yield 1 skill smithery cauldron forge ingred long sword,3 xan's wing,bottle of philosophical oil # Object Gnarg arch stonehammer chance 5 diff 8 exp 8000 trans 1 yield 1 skill smithery cauldron forge ingred stonehammer,3 xan's wing,bottle of philosophical oil # Object Kragi arch sword_4 chance 10 trans 1 yield 1 diff 10 exp 10000 skill smithery cauldron forge ingred sword,potion of health,bottle of philosophical oil # Object Kragi arch hammer chance 10 diff 11 exp 12000 trans 1 yield 1 skill smithery cauldron forge ingred hammer,potion of health,bottle of philosophical oil # Object Slay Ogre arch sword_4 chance 6 diff 7 exp 8000 trans 1 yield 1 skill smithery cauldron forge ingred sword,ogre's heart,bottle of philosophical oil # Object Slay Ogre arch axe_5 chance 6 diff 6 exp 7000 trans 1 yield 1 skill smithery cauldron forge ingred vicious axe,ogre's heart,bottle of philosophical oil # Object Valriel arch morningstar chance 3 diff 12 exp 15000 trans 1 yield 1 skill smithery cauldron forge ingred morningstar,demon's head,bottle of philosophical oil # Object Valriel arch katana_1 diff 13 exp 16000 chance 3 trans 1 yield 1 skill smithery cauldron forge ingred katana,demon's head,bottle of philosophical oil # Object Gorokh arch broadsword,b_bsword_1,b_bsword_2,broadsword_2 chance 3 diff 15 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred broadsword,light angel's head,bottle of philosophical oil # Object Gorokh arch poleaxe chance 3 diff 16 exp 21000 trans 1 yield 1 skill smithery cauldron forge ingred poleaxe,light angel's head,bottle of philosophical oil # Object the Devourers arch mace,mace_2 diff 20 exp 32000 chance 3 trans 1 yield 1 skill smithery cauldron forge ingred mace,ice para-elemental's residue,bottle of philosophical oil # Object the Devourers arch nunchacu_1,nunchacu_2 chance 3 diff 25 exp 43000 trans 1 yield 1 skill smithery cauldron forge ingred nunchacu,ice para-elemental's residue,bottle of mineral oil # Object Slay Troll arch sword,b_sword_1,b_sword_2,sword_2 chance 5 diff 10 exp 13000 trans 1 yield 1 skill smithery cauldron forge ingred long sword,small troll's heart,bottle of philosophical oil # Object Slay Troll arch b_ssword_1,b_ssword_2,shortsword,shortsword_2 chance 5 diff 10 exp 13000 trans 1 yield 1 skill smithery cauldron forge ingred shortsword,small troll's heart,bottle of philosophical oil # Object Slay Undead arch axe,axe_2,axe_3,axe_4,b_axe1,dhaxe2,shaxe1 chance 5 yield 1 diff 6 trans 1 exp 8000 skill smithery cauldron forge ingred axe,zombie's corpse,bottle of philosophical oil # Object Slay Undead arch shortsword_2,b_ssword_1,b_ssword_2,shortsword chance 5 diff 5 exp 7000 trans 1 yield 1 skill smithery cauldron forge ingred shortsword,zombie's corpse,bottle of philosophical oil # # this ones just an upgrade - robbing it of possible god enchantments Object Slay Undead arch skullcleaver chance 5 diff 30 exp 50000 trans 1 yield 1 skill smithery cauldron forge ingred Skullcleaver,vampire's heart,bottle of philosophical oil # Object Slay Beholder arch lspear chance 5 diff 15 exp 15000 trans 1 yield 1 skill smithery cauldron forge ingred long spear,3 beholdereye,bottle of philosophical oil # Object Slay Beholder arch taifu_1 chance 5 diff 18 exp 23000 trans 1 yield 1 skill smithery cauldron forge ingred Taifu,3 beholdereye,bottle of philosophical oil # Object Slay Dragon arch mace,mace_2 diff 20 exp 40000 chance 5 trans 1 yield 1 skill smithery cauldron forge ingred mace,3 dragon's steak,bottle of philosophical oil # # frostbrand and firebrand have only fire/cold attacks - so will do no damage # to the wrong kind of dragon. Again we rob potential god enchantments Object Slay Dragon arch firebrand chance 5 diff 30 exp 90000 trans 1 yield 1 skill smithery cauldron forge ingred Firebrand,3 chinese dragon's steak,chinese dragon's heart,bottle of philosophical oil # Object Slay Dragon arch frostbrand chance 5 diff 30 exp 90000 trans 1 yield 1 skill smithery cauldron forge ingred Frostbrand,3 dragon's steak,dragon's heart,bottle of philosophical oil # Object Glamdri arch sabre diff 10 exp 12000 chance 2 trans 1 yield 1 skill smithery cauldron forge ingred sabre,potion of resist magic,beholdereye,bottle of philosophical oil # Object Glamdri arch light_sword,b_lsword chance 2 diff 11 exp 13000 trans 1 yield 1 skill smithery cauldron forge ingred light sword,potion of resist magic,beholdereye,bottle of philosophical oil # Object Sorig arch scimitar,b_scimitar chance 3 diff 14 exp 15000 trans 1 yield 1 skill smithery cauldron forge ingred scimitar,lightning para-elemental's residue,bottle of philosophical oil # Object Sorig arch poleaxe chance 3 diff 16 exp 20000 trans 1 yield 1 skill smithery cauldron forge ingred poleaxe,lightning para-elemental's residue,bottle of philosophical oil # Object Ruggilli arch large_morningstar chance 3 diff 14 exp 17000 trans 1 yield 1 skill smithery cauldron forge ingred large morningstar,wyvern's steak,bottle of philosophical oil # Object Ruggilli arch trident chance 3 diff 15 exp 18000 trans 1 yield 1 skill smithery cauldron forge ingred trident,wyvern's steak,bottle of philosophical oil # Object Paralysis arch dagger,b_dagger chance 6 diff 8 exp 8000 trans 1 yield 1 skill smithery cauldron forge ingred dagger,dust of stasis,bottle of mineral oil # # ------------------- # Amulets # ------------------- # Object Shielding arch amulet chance 5 yield 1 diff 5 exp 8000 skill jeweler cauldron jeweler_bench ingred amulet,potion of aethereality,3 ruby of great value # Object Sustenance arch amulet chance 5 diff 6 exp 9000 yield 1 skill jeweler cauldron jeweler_bench ingred amulet,vampire's heart,3 diamond of great value # Object Empowerment arch amulet chance 3 diff 7 exp 10000 yield 1 skill jeweler cauldron jeweler_bench ingred amulet,3 magic power potion,3 sapphire of great value # Object Aethereality arch amulet chance 3 diff 20 exp 40000 yield 1 skill jeweler cauldron jeweler_bench ingred amulet of lifesaving,3 potion of aethereality,3 ruby of exceptional beauty # Object the Magi arch amulet chance 1 yield 1 diff 35 exp 150000 skill jeweler cauldron jeweler_bench ingred amulet of Empowerment,3 potion of intelligence,3 potion of power,3 potion of magic resistance,3 diamond of flawless beauty # Object Deflection arch amulet chance 1 yield 1 diff 35 exp 150000 skill jeweler cauldron jeweler_bench ingred amulet of Aethereality,block of true lead,amulet of lifesaving,3 emerald of flawless beauty # Object Free Action arch amulet chance 2 diff 35 exp 150000 yield 1 skill jeweler cauldron jeweler_bench ingred amulet of lifesaving,ring of free action,3 potion of resist paralysis,3 sapphire of exceptional beauty # Object Holiness arch amulet chance 3 diff 20 exp 40000 yield 1 skill jeweler cauldron jeweler_bench ingred amulet,2 potion of wisdom,holy symbol,30 pearl # # ------------------- # Rings # ------------------- # Object Thieves arch ring chance 3 yield 1 diff 15 exp 25000 skill jeweler cauldron jeweler_bench ingred ring,3 potion of dexterity,potion of speed,3 emerald of exceptional beauty # Object Combat arch ring chance 5 diff 20 exp 50000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of Fighting,potion of constitution,3 sapphire of exceptional beauty # Object Strife arch ring chance 3 diff 25 exp 75000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of Combat,potion of dexterity,potion of constitution,potion of strength,3 ruby of flawless beauty # Object Ice arch ring chance 5 yield 1 diff 15 exp 25000 skill jeweler cauldron jeweler_bench ingred ring,3 potion of cold resistance,chinese dragon's steak,3 sapphire of great value # Object Fire arch ring chance 5 diff 15 exp 25000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,3 potion of fire resistance,dragon's steak,3 ruby of great value # Object Storm arch ring chance 5 diff 15 exp 25000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,3 potion of shock resistance,electric dragon's steak,3 emerald of great value # Object Acid arch ring diff 16 exp 27000 chance 5 yield 1 skill jeweler cauldron jeweler_bench ingred ring,3 balm of aethereality,gaelotroll's liver,7 pearl # Object Magic arch ring chance 5 diff 15 exp 25000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,potion of magic resistance,potion of power,3 diamond of great value # Object Ancient Magic arch ring chance 4 diff 20 exp 35000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of Magic,potion of intelligence,lich dust,3 diamond of exceptional beauty # Object High Magic arch ring chance 2 diff 25 exp 45000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of Ancient Magic,potion of intelligence,potion of power,spectre's ectoplasm,3 diamond of flawless beauty # Object Mithrandir arch ring chance 1 diff 25 exp 40000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of High Magic,3 potion of fire resistance,dragon's heart,3 ruby of flawless beauty # Object Beguilement arch ring chance 10 diff 15 exp 25000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,potion of charisma,3 diamond of great value # Object the Dark Priest arch ring chance 3 diff 15 exp 25000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,potion of wisdom,vampire's heart,3 ruby of great value # Object the Demon Priest arch ring chance 1 diff 35 exp 70000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of the Dark Priest,potion of power,3 potion of fire resistance,3 ruby of flawless beauty # Object the Healer arch ring chance 5 diff 20 exp 35000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,potion of wisdom,holy symbol,3 emerald of great value # Object the Paladin arch ring chance 5 diff 20 exp 35000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,potion of wisdom,holy symbol,3 sapphire of great value # Object the Prelate arch ring chance 3 diff 30 exp 75000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of the Healer,potion of wisdom,holy symbol of Turning,3 emerald of exceptional beauty # Object the Crusade arch ring chance 2 diff 30 exp 75000 yield 1 skill jeweler cauldron jeweler_bench ingred strange ring,potion of power,holy symbol of Great Virtue,3 emerald of exceptional beauty # Object Benevolence arch ring chance 1 diff 30 exp 75000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,3 potion of magic resistance,potion of wisdom,holy symbol of Probity,3 emerald of flawless beauty # Object Halvor arch ring chance 4 diff 10 exp 15000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,cunning gnome's corpse,3 sapphire of great value # Object Free Action arch ring chance 2 diff 15 exp 25000 yield 1 skill jeweler cauldron jeweler_bench ingred ring of Halvor,potion of resist confusion,3 sapphire of exceptional beauty # Object Life arch ring chance 4 diff 14 exp 23000 yield 1 skill jeweler cauldron jeweler_bench ingred strange ring,3 potion of recuperation,3 diamond of great value # Object Yordan arch ring chance 8 diff 10 exp 15000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,3 potion of agility,3 diamond # Object Occidental Mages arch ring chance 7 diff 5 exp 8000 yield 1 skill jeweler cauldron jeweler_bench ingred ring,potion of Rainbow Wave,3 sapphire # # ------------------- # Horns # ------------------- # Object NONE arch horn_base chance 30 diff 5 exp 4000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred quarterstaff,amethyst # Object Plenty arch horn2 chance 15 diff 20 exp 20000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred horn base,3 mushroom of Gourmet,3 waybread of Aelingas # Object Fire arch horn2 chance 10 diff 20 exp 20000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred horn base,3 dust of ignition # Object Frost arch horn2 chance 10 diff 20 exp 20000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred horn base,3 dust of frost # Object Eorlingas arch horn2 chance 5 diff 20 exp 20000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred horn base,3 dust of ignition,potion of mystic power # # ------------------- # Talismans # ------------------- # Object Fire arch talisman_pyromancy chance 5 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred talisman of pyromancy,ring of Fire,dragon's heart # Object Frost arch talisman_evocation chance 5 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred talisman of evocation,ring of Ice,chinese dragon's heart # Object Elements arch talisman_pyromancy chance 2 diff 35 exp 75000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred talisman of Fire,talisman of Frost,3 electric dragon's steak,3 diamond of flawless beauty # Object Unified Mind arch talisman_sorcery chance 10 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred talisman of sorcery,potion of intelligence,helmet of Xebinon # Object Creation arch talisman_evocation chance 3 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred talisman of evocation,3 figurine of a clenched hand,3 balm of traveling # # ------------------- # Holy Symbols # ------------------- # Object Probity arch holy_symbol chance 7 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred holy symbol,balm of asbestos,balm of warmth,balm of insulation # Object Turning arch holy_symbol chance 10 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred holy symbol,7 dust of repelling undead,bottle of philosophical oil # Object Calling arch holy_symbol chance 10 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred holy symbol,figurine of stone,figurine of a great wave,figurine of a flame # Object The Dark Path arch holy_symbol chance 5 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred holy symbol,10 arrow of Assassinating dragons,vampire's heart # Object Great Virtue arch holy_symbol chance 2 diff 25 exp 35000 yield 1 skill thaumaturgy cauldron thaumaturg_desk ingred holy symbol,figurine of a clenched hand,3 healing potion,3 dust of clairvoyance,2 potion of wisdom # # ------------------- # Food # ------------------- # Object Gourmet arch mushroom_1 chance 40 diff 5 exp 2000 yield 7 skill woodsman cauldron stove ingred 7 mushroom,water of the wise failure_arch ashes failure_message Oops, you totally burn the mushrooms! # Object Magic arch mushroom_2 chance 20 diff 8 exp 4000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,potion of mystic power # Object Healing arch mushroom_3 chance 20 diff 8 exp 4000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,balm of first aid # Object Stamina arch food chance 30 diff 5 exp 2000 yield 7 skill woodsman cauldron stove ingred 7 food,potion of recuperation # Object Aelingas arch waybread chance 30 diff 10 exp 6000 yield 7 skill woodsman cauldron stove ingred 7 waybread,potion of heroism # Object Strength arch mushroom_2 chance 30 diff 10 exp 7000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,potion of strength # Object Quickness arch mushroom_3 chance 30 diff 12 exp 8000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,potion of agility # Object Heat Resistance arch mushroom_1 chance 20 diff 8 exp 7000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,balm of asbestos # Object Frost Resistance arch mushroom_2 chance 20 diff 8 exp 7000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,balm of warmth # Object Bravery arch mushroom_3 chance 30 diff 8 exp 7000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,dust of fright # Object Magic Resistance arch mushroom_3 chance 20 diff 8 exp 7000 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,potion of resist magic # Object Life arch mushroom_3 diff 8 exp 7000 chance 30 yield 7 skill woodsman cauldron stove ingred 7 mushroom of Gourmet,potion of resist draining # # Misc items that don't fit anywhere else Object NONE arch dice diff 5 chance 10 exp 1000 yield 2 skill jeweler cauldron jeweler_bench ingred 6 diamond,rock # # Item combinations Object NONE arch apple_half yield 2 ingred apple chance 0 combination 1 tool slicingknife,b_slicingknife Object NONE arch apple_fourth yield 2 ingred apple halve chance 0 combination 1 tool slicingknife,b_slicingknife Object NONE arch apple_eighth yield 2 ingred apple fourth chance 0 combination 1 tool slicingknife,b_slicingknife ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/��������������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537044�012266� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/use.en��������������������������������������������������������������������0000644�0000145�0000012�00000000216�11731300544�013315� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: use <item1> with <item2> Will try to use both items together. Result depends on the items themselves. The order is important. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/maps.fr�������������������������������������������������������������������0000644�0000145�0000012�00000001066�11731300544�013472� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Maps - Vérifie si une ou plusieurs cartes sont actuellement en cours d'utilisation. Usage: maps <nom> Où nom est le nom de la carte que l'on veut examiner (ou une partie de ce nom). La signification des champs affichés en retour est la suivante: Current time is = l'heure courante du serveur. Path = le chemin de fichier de la carte. Pl = joueurs. PlM = joueurs sur la carte. IM = en mémoire. TO = Délai avant que la carte ne soit transférée sur le disque. Dif = Difficulté. Reset = Temps réel du serveur pour lequel la carte sera remise à zéro. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/party_rejoin.en�����������������������������������������������������������0000644�0000145�0000012�00000000562�11731300544�015232� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������party_rejoin [mode] Controls whether to rejoin or not party at login. Valid modes are: no: don't rejoin party if_exists: if the party exists when you login, and has the same password as when you logged off, you'll join it always: if the party doesn't exist, create it with last password; else behaves like if_exists. With no argument, displays the mode. ����������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/motd.en�������������������������������������������������������������������0000644�0000145�0000012�00000000053�11731300544�013463� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������motd displays the Message Of The Day file. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/maps.en�������������������������������������������������������������������0000644�0000145�0000012�00000000610�11731300544�013457� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Use the maps command to check on whether or not a map or several maps are in use. Example: 'maps brest The headers shown are: Current time is = current real time on the server Path = the map file path on the server. Pl = players. PlM = players on map. IM = in memory. TO = timeout until the map is saved to disk. Dif = map difficulty. Reset = real time on server when the map will reset. ������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/sort_inventory.en���������������������������������������������������������0000644�0000145�0000012�00000001274�11731300544�015632� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������If sort_inventory is set, items will be inserted into your inventory in order by type than alphabetical. This, all scrolls will be grouped together, but in alphabetical order. Same for all weapons. This only applies to new items you pick up - items that you are already holding will not be sorted. If sort_inventory is not set (default), items will be inserted via type, subtype and magic. This, all axes will be grouped together in magic order, all daggers by magic order, etc. Unfortunately, for scrolls and rings, new ones just get inserted last. If you have a lot of stuff that is not in alphabetical order but you would like it to be, the best method is to drop all of it and then pick it up. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/mark.en�������������������������������������������������������������������0000644�0000145�0000012�00000000702�11731300544�013453� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������mark is used to mark items for items that apply other items. Examples of these are flint & steel marked for apply torches, a weapon marked for improve weapon scrolls. mark without options shows your currently marked item. usage is as follows: mark sword +3 mark three torches mark sword mark will look for best match first, and then look for matches based on shortened name, object name, archetype name. It prints the match it finds. ��������������������������������������������������������������crossfire-1.70.0/lib/help/brace.fr������������������������������������������������������������������0000644�0000145�0000012�00000000574�11731300544�013611� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Brace permet d'immobiliser volontairement votre personnage sur une case donnée. Lorsque vous êtes en mode "brace", vous perdez votre bonus de dextérité et recevez une pénalité supplémentaire de 2 sur votre classe d'armure. Vous ne recevrez que 20% des points d'expérience habituels pour tuer des monstres; enfin, vous subissez une pénalité de 4 sur votre classe d'arme.������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/peaceful.en���������������������������������������������������������������0000644�0000145�0000012�00000001650�11731300544�014310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The 'peaceful' command will switch you between peaceful and hostile attack modes. When peaceful is on you will not automatically attack other player when bumping into them and will do reduced damage against other players if you do attack them (friendly fire). Having peaceful mode on only lowers damage against other players, it has no effect on damage done to monsters or other NPCs, so it is generally advisable to remain in peaceful mode unless you are looking for trouble. It is still entirely possible to kill other players when in peaceful mode so you should still be careful when interacting with other players. Hostile mode (peaceful off) will enable melee combat when bumping into other players and does normal damage for other attacks as well. Damage done by area effect attacks like cone spells, explosive detonations, fireballs, poisons, cloud or swarm attacks, runes or disease are not modified by peaceful/hostile mode. ����������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/apply.en������������������������������������������������������������������0000644�0000145�0000012�00000001265�11731300544�013653� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Apply applies an object. If no options are given, it applies an object you are standing on. If a name follows the command, an object of that name is affected. The name does not have to be complete as long as the text uniquely matches the first part of an item name. Apply options: -a: Always apply an object and never unapply it when already applied. -u: Always unapply an object and never apply it when already unapplied. -b: Apply an item on the ground or in the active container, but not one in the characters main inventory. As -a and -u do not toggle the applied status of an item, they are useful for making keybinds that work even when the current state of the object is unknown. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/empty.en������������������������������������������������������������������0000644�0000145�0000012�00000000312�11731300544�013654� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Empty will put all contents of specified container either on the ground or in your opened container. Syntax: empty item item should be a container. If "all" is specified, all containers are emptied. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/mark.fr�������������������������������������������������������������������0000644�0000145�0000012�00000001212�11731300544�013455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Mark - Marquer un objet pour l'utiliser avec d'autres. Mark est utilisé lors de l'emploi d'objets qui demandent de désigner un autre objet pour fonctionner. Un bon exemple est celui du briquet et des torches, ou d'une arme à améliorer à l'aide de parchemins magiques. Usage: mark <nom> Le paramètre nom est le nom d'un objet de votre inventaire. La commande recherche la meilleure correspondance de nom, d'abord selon le nom abrégé, puis sur le nom de l'objet, et enfin sur le nom d'archetype. Elle affiche le nom de l'objet marqué en retour. Si aucun nom n'est spécifié, mark affiche l'objet marqué pour l'instant (si il existe).��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/brace.en������������������������������������������������������������������0000644�0000145�0000012�00000000704�11731300544�013577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Brace: When you enter the 'brace' command to brace your character, your character will no longer move. It can still attack adjoining spaces. Bracing can be useful to hold a location. When you are braced, you lose your dex bonus and incur a 2 point ac penalty beyond that (if you have a negative dex bonus, you may in fact come out ahead. You also only get 20% of the normal experience for killing creatures, and incurs a 4 point wc (to hit) penalty. ������������������������������������������������������������crossfire-1.70.0/lib/help/apply.fr������������������������������������������������������������������0000644�0000145�0000012�00000000552�11731300544�013656� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Apply applique un objet. Si aucune option n'est donnée, cette commande applique l'objet sur lequel votre personnage se trouve. Si le nom d'un objet est donné, il applique ou désapplique celui-ci. Options supplémentaires: -a: toujours appliquer l'objet; -u: toujours désappliquer l'objet; -b: appliquer un objet au sol ou dans le conteneur actif. ������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/empty.fr������������������������������������������������������������������0000644�0000145�0000012�00000000403�11731300544�013662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Empty - Place l'intégralité du contenu du conteneur spécifié sur le sol ou dans le conteneur ouvert. Usage: empty <nom> Où nom est le nom du conteneur à vider. Si "all" est spécifié comme nom, tous les conteneurs que vous portez seront vidés. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/bowmode.fr����������������������������������������������������������������0000644�0000145�0000012�00000000733�11731300544�014166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Bowmode contrôle la manière dont votre personnage lancera flèches et carreaux. Options: normal: mode par défaut threewide: lance trois projectiles en parallèle spreadshot: lance trois projectiles en évantail fire<firection>: verrouille la direction vers laquelle les projectiles seront lancés. Les directions possibles sont: north, ne, east, se, south, sw, west, nw bestarrow: choisit le projectile le plus probablement le meilleur de votre inventaire à chaque tir �������������������������������������crossfire-1.70.0/lib/help/quit.en�������������������������������������������������������������������0000644�0000145�0000012�00000000331�11731300544�013501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������If you want to quit without deleting your character, you must use a 'Bed to Reality'. Find a bed (probably in a building close to where you entered the game), get on top of it, and Apply it using shift-A (capital A). �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/whereabouts.en������������������������������������������������������������0000644�0000145�0000012�00000000142�11731300544�015047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The whereabouts command gives a summary about the regions in which players are currently staying. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/take.en�������������������������������������������������������������������0000644�0000145�0000012�00000001162�11731300544�013446� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The take commands take object(s) on the space the player is standing on, and inserts them into the players inventory. If no parameter is given, take will get the top object that can be taken and put it in the players inventory. If no object can be taken, that will be stated. A parameter can be given to take. In this case, all object that have names that match the parameter will be picked up. Thus, if there is a 'sword of WOE', and 'sword +1' and a 'sword -3' on the ground, 'take sword' will pick all of them up. By default, take is bound to the comma key, with no parameters. To change this, look at the bind command. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/bowmode.en����������������������������������������������������������������0000644�0000145�0000012�00000000702�11731300544�014155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Bowmode controls how you will fire arrows and bolts. The options are: normal: As you would expect. threewide: Fires three arrows in parallel. spreadshot: Fires three arrows which spread out over distance. fire<direction>: Locks in the direction the missiles will fire, specify by compas position: firenorth, firene, fireeast, firese, firesouth, firesw, firewest, firenw bestarrow: Selects and fires the probable best arrow for from your inventory. ��������������������������������������������������������������crossfire-1.70.0/lib/help/range.en������������������������������������������������������������������0000644�0000145�0000012�00000000326�11731300544�013617� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Your range weapon can be one of several weapons, a spell you cast, a bow-and-arrow, a rod, or a wand, to name a few. Your range weapon is fired when you press SHIFT-direction, and will be fired in that direction. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/unarmed_skill.en����������������������������������������������������������0000644�0000145�0000012�00000001510�11731300544�015350� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The unarmed_skill command determines what skill you will use in unarmed combat. If unarmed_skill is not set, a default skill will be used. That default will be karate, clawing, flame touch, punching, and wraith feed. For dragons, clawing will be tried first, then the rest in that same order. The unarmed skill can always be overridden by explicitly using ready_skill for the desired skill. For example, you have set the unarmed_skill to flame touch. However, you are fighting a flame resistant creature, you can use karate by doing a 'ready_skill karate'. You will continue to use karate until you change it again or use some other skill (equip a weapon, cast a spell, etc) This value is saved and is persistent across logins. It is a property of the character, so different characters can be set with different unarmed_skill values. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/quest.fr������������������������������������������������������������������0000644�0000145�0000012�00000000347�11731300544�013674� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Quest liste les quêtes en cours de votre personnage. Les sous-commands suivantes sont disponibles : list : affiche toutes les quêtes en cours ou terminées info <numéro> : affiche les détails de la quête spécifiée �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/melee.en������������������������������������������������������������������0000644�0000145�0000012�00000000416�11731300544�013612� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ You fight to kill monsters. You can either use magic or weapons. To use weapons, simply wield a weapon (and armour!) and move into the monster you want to attack. To use magic or bows, read 'help spells and 'help range and 'help cast and 'help invoke ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/melee.fr������������������������������������������������������������������0000644�0000145�0000012�00000000723�11731300544�013620� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Melee - Comment combattre Le combat est l'une des principales activités de Crossfire. Vous combattez pour tuer des monstres; pour ce faire, vous disposez d'armes et de pouvoirs magiques. Pour utiliser une arme, équipez-la simplement et déplacez-vous dans la direction du monstre à attaquer. N'oubliez pas votre armure ! Pour utiliser des arcs, ou apprendre à employer la magie, consultez les articles "spells", "range", "cast" et "invoke" de l'aide en ligne. ���������������������������������������������crossfire-1.70.0/lib/help/quest.en������������������������������������������������������������������0000644�0000145�0000012�00000000274�11731300544�013666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Quest displays quest-related information. Available sub-commands: list: displays quests you started or completed info: displays information about the specified (by number) quest ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/killpets.fr���������������������������������������������������������������0000644�0000145�0000012�00000000610�11731300544�014353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Killpets - Éliminer tous vos familiers. Usage: killpets <nom> Tue tous vos familiers dont le nom correspond à celui donné. Tout l'équipement qu'ils pouvaient posséder tombera sur le sol, et vous n'obtiendrez aucun point d'expérience pour leur disparition. Par contre, la commande les élimine instantanément. Si aucun nom n'est spécifié, tous vos familiers seront éliminés. ������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/spells.en�����������������������������������������������������������������0000644�0000145�0000012�00000000344�11731300544�014025� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������To cast a spell, you must first learn it. To learn spells, you need a high Wis, and a spellbook. Apply the spellbook to learn a spell. To cast a spell, you can either use the cast or invoke commands. See "cast" and "invoke". ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/statistics.en�������������������������������������������������������������0000644�0000145�0000012�00000000721�11731300544�014714� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������statistics shows various useful information about your character. None of the information it shows is stuff that is not contained in the documentation. As of now, it shows how much experience you need for your next level. It also shows natural, real, and maximum statistic values. Your natural stat is the stat without any items/spells applied. Real is what the current value is (same as in the stat window.) Maximum is the maximum value for your natural stat. �����������������������������������������������crossfire-1.70.0/lib/help/rules.en������������������������������������������������������������������0000644�0000145�0000012�00000000063�11731300544�013653� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������rules displays the rules in effect on this server. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/killpets.en���������������������������������������������������������������0000644�0000145�0000012�00000000714�11731300544�014353� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The killpets command is a quick and convenient way to get rid of all your pets when they are no longer useful or are getting in the way. Any equipment they had will be left behind, but you will get no experience for their death. However, it kills them instantaneously. If a name is specified then only pets with that name will be killed, e.g. killpets bat will kill bats but not bees. If a number is specified, the pet corresponding to that number is killed. ����������������������������������������������������crossfire-1.70.0/lib/help/mouse.en������������������������������������������������������������������0000644�0000145�0000012�00000000444�11731300544�013654� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The mouse isn't a great way to move your character. It'll work, but you'll be handicapped unless you use the keyboard for this. However, the mouse has the following inventory uses: Middle button on item: apply or equip Right button: drop or pickup item on ground Left button: info on item ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/sound.en������������������������������������������������������������������0000644�0000145�0000012�00000000026�11731300544�013650� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Toggles sound on/off. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/shout.en������������������������������������������������������������������0000644�0000145�0000012�00000000107�11731300544�013662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Usage: shout <something> Sends a message to all players on the server. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/news.en�������������������������������������������������������������������0000644�0000145�0000012�00000000040�11731300544�013470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������rules displays the server news. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/fire.en�������������������������������������������������������������������0000644�0000145�0000012�00000000452�11731300544�013450� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������fire (or fire <direction number>) starts to fire until fire_stop; to fire only once you can use <direction command> f. For example: "fire 1" starts to fire northeast until "fire_stop". "northeast f" fires once to northeast. Use "stay f" to target on yourself. You can turn off fire with fire_stop. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/drop.en�������������������������������������������������������������������0000644�0000145�0000012�00000001416�11731300544�013470� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Drop usage: drop [number] name name is the name of the item(s) to drop. It may match multiple items. The name is matched against the start of the objects in your inventory. The name matching is case insensitive. There are a few special name values: all: matches any item. unpaid: matches unpaid items cursed: drops items known to be cursed or damned. unlocked: drops items not locked in your inventory number is optional. This acts as the number of the object to drop. The objects number must be at least the number for it to be dropped. For example, if you do 'drop 10 scroll', only groupings of 10 or more scrolls will be dropped. A collection of 5 scrolls will not be dropped. See also 'dropall' and mouse button control within client for dropping objects. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/save.en�������������������������������������������������������������������0000644�0000145�0000012�00000000520�11731300544�013455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������No parameters. Updates players status to disk. This can be useful for making backup copies if you fear the server is about to crash. WARNING--if you want to leave the game without destroying your player, you must find a 'Bed to Reality' and hit A on the bed to apply it. Doing 'save and then quitting will still delete your character. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/drop.fr�������������������������������������������������������������������0000644�0000145�0000012�00000001355�11731300544�013477� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Drop permet de déposer un ou plusieurs objets de votre inventaire sur le sol ou dans un conteneur ouvert. Usage: drop <nombre> nom nom: nom de ou des objet(s) à déposer. la vérification de nom est insensible à la casse et se fait en partant du début de votre inventaire. Il existe quelques valeurs particulières pour le champ nom: all: n'importe quel objet unpaid: n'importe quel objet non payé cursed: n'importe quel objet maudit ou damné unlocked: n'importe quel objet non verrouillé nombre: paramètre optionnel indiquant la quantité d'objets à déposer. Si une quantité inférieure à celle demandée est disponible, les objets ne seront pas déposés. Voir aussi: dropall, comment utiliser la souris pour déposer des objets. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/traps.en������������������������������������������������������������������0000644�0000145�0000012�00000000465�11731300544�013660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������I recommend the following keybindings 'bind search s 'bind disarm d Then you can use the 's' and 'd' keys for searching for and disarming traps. Traps appear at random in doors and in chests. Search those before you open them up. Search by going near where you suspect a trap, and type 's' �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/invoke.en�����������������������������������������������������������������0000644�0000145�0000012�00000000671�11731300544�014021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The invoke command is used to cast a spell immediately, or when it is necessary to give a parameter to the spell. Invoke will not set the range weapon. Examples: 'invoke restoration 'invoke magic rune of large fireball 'invoke reincarnation of Iamdead 'invoke create food of waybread It is very helpful to bind healing spells to keys like this: 'bind invoke medium healing c the c key now casts medium healing instantly �����������������������������������������������������������������������crossfire-1.70.0/lib/help/skills.en�����������������������������������������������������������������0000644�0000145�0000012�00000000616�11731300544�014026� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Use the skills command to learn your experience and level of your skills. The values shown are: The name of the skill. You use this name for commands like use_skill or ready_skill. The skill level. The current experience. The experience needed to level up. The permanent experience ratio relative to current experience. You'll never fall below permanent experience even if you die over and over. ������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/move.en�������������������������������������������������������������������0000644�0000145�0000012�00000000537�11731300544�013475� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������These are the basic movement keys: yku h l bjn Running is done by holding control and move. Running is recommended. Firing the range weapon (help range) is done by holding shift and move. 'help mouse for help on what the mouse buttons do. 'help melee for advice on how to fight 'help traps for help with finding and disarming traps �����������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/chat.en�������������������������������������������������������������������0000644�0000145�0000012�00000000107�11731300544�013437� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Usage: chat <something> Sends a message to all players on the server. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/mode.fr�������������������������������������������������������������������0000644�0000145�0000012�00000000440�11731300544�013451� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Mode - Groupe de commandes Applymode: ajuste la manière dont les objets sont utilisés. Bowmode: Ajuste la manière dont les arcs fonctionnent. Peaceful: Définit le comportement de votre personnage face aux autres joueurs. Petmode: Ajuste la manière dont se comportent vos familiers. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/usekeys.en����������������������������������������������������������������0000644�0000145�0000012�00000000766�11731300544�014223� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The usekeys option determines the behaviour of using keys. Values are: inventory: Only keys in the top level inventory are used (default) keyrings: Only keys in active keyrings are used. containers: Only keys in active containers are used. Note that keyrings are just a specialized container, so the containers will also find keys in keyrings. Only active containers are used - keys will not jump out of closed containers, but hints will be given if you have keys in such containers. ����������crossfire-1.70.0/lib/help/showpets.en���������������������������������������������������������������0000644�0000145�0000012�00000000233�11731300544�014374� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Usage: showpets <number> Shows a numbered list of the pets owned by the player. If a number is specified, instead shows a detailed printout about that pet ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/mode.en�������������������������������������������������������������������0000644�0000145�0000012�00000000303�11731300544�013442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The mode commands are as follows: Applymode, adjusts how items are applied Bowmode, adjusts the way bows work Peaceful, sets how you react to other players Petmode, adjusts how your pets behave �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/golem.en������������������������������������������������������������������0000644�0000145�0000012�00000001223�11731300544�013623� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Golems are creatures that the player has some control over. Note that many summoned creatures are considered golems, even if they are not called golems. If you have a golem in control your spell type will be listed as golem, with the creature name in parentheses. To control your golem, just press the fire key in the direction you want your golem to move. Your golem will then start moving in that direction, and keep moving in that direction until you change its direction. Note that once you leave the map that the golem is on, the golem will disappear. Also, once you select another spell to cast, or change your range type, your golem will disappear. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/knowledge.en��������������������������������������������������������������0000644�0000145�0000012�00000000757�11731300544�014512� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Displays known relevant information. Without any parameter, displays this help text. With "knowledge list", you can see all you know. Additionnal parameter can restrict the displayed items, using an invalid one shows the available types. With "knowledge show <number>", displays details about the specified item. With "knowledge search <text>", displays things having <text> in summary or detail. With "knowledge attempt <number>", attempts to do alchemy or equivalent based on that recipe.�����������������crossfire-1.70.0/lib/help/title.en������������������������������������������������������������������0000644�0000145�0000012�00000000311�11731300544�013636� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������TITLE help: title [new title] title clear title default title sets your title. If no new title is specified your current title is printed. 'clear' or 'default' resets the title to its default value. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/knowledge.fr��������������������������������������������������������������0000644�0000145�0000012�00000001165�11731300544�014511� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Affiche la liste des éléments importants connus par le personnage. Sans argument, affiche cette aide. Sous la forme "knowledge list", affiche tous les éléments connus, avec leur numéro. Un paramètre supplémentaire permet de restreindre l'affichage à un certain type. Utiliser un type invalide liste les types valides. Sous la forme "knowledge show <numéro>", affiche les détails de l'élément spécifié. Sous la forme "knowledge search <texte>", affiche les éléments ayant <texte> dans leur résumé ou détail. Sous la forme "knowledge attempt <numéro>", tente de faire de l'alchimie à partir de la formule.�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/keys.en�������������������������������������������������������������������0000644�0000145�0000012�00000000537�11731300544�013502� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������These are the basic movement keys: yku h l bjn Running is done by holding control and move. Running is recommended. Firing the range weapon (help range) is done by holding shift and move. 'help mouse for help on what the mouse buttons do. 'help melee for advice on how to fight 'help traps for help with finding and disarming traps �����������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/party.en������������������������������������������������������������������0000644�0000145�0000012�00000001046�11731300544�013662� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������party join partyname Puts you in a party, prompts you for a password if there is one. party form partyname Forms a party and puts you as leader, 32 character max. At the moment, being party leader does nothing. May be used in the future. party list Lists currently formed parties and their 'leader'. party passwd <password> Changes the password for the party you are in, 8 character max. party who Lists the members of the party you are in. party say <message> Sends message to party members. party leave Takes you out of current party. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/rename.en�����������������������������������������������������������������0000644�0000145�0000012�00000000421�11731300544�013766� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Changes the custom name of an item. Syntax: rename <item name> to <new name> (Note: <> are mandatory) If '<item name>' is omitted, defaults to marked item. If 'to <new name>' is omitted, clears the custom name. Note: maximum allowed name length is 127 characters. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/pickup.en�����������������������������������������������������������������0000644�0000145�0000012�00000002327�11731300544�014021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������'pickup' changes how you pick up items when you step on them. To pickup an item manually, use the ',' key. Mode 0: Don't pick up items. Mode 1: Pick up one item Mode 2: Pickup up one item and stop Mode 3: Stop before picking up items Mode 4: Pick up all items Mode 5: Pick up all items and stop Mode 6: Pick up all magical items Mode 7: Pick up all coins and gems Modes above 7: Pickup items with a value density greater than the pickup mode. Value density is value in gold/weight in kilograms. The value in gold is what the item is worth if you sold it in the shop. Gold coins have a value density of 66, Density 10 will pickup silver, gold, rings, wands, books, and scrolls. Artifacts are also picked up. You can also use the syntax 'pickup +<type>' to just add the specified type to what you pickup. Valid types are: - debug - inhibit - stop - food - drink - valuables - bow - arrow - helmet - shield - armour - boots - gloves - cloak - key - missile - allweapon - magical - potion - spellbook - skillscroll - readables - magicdevice - notcursed - jewels - flesh Three options are possible for the first character: + will make you pick the item type, - will make you stop picking the item type and ! will toggle the pick mode. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/applymode.en��������������������������������������������������������������0000644�0000145�0000012�00000002427�11731300544�014521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Applymode controls what happens when you are equipping something that would require something else to be unequipped. The options are: nochoice: In this case, if there is no choice for the item(s) being removed in order to equip your new item. An example of this is a wand - there can only be one other item needed to be unequipped for the new item to be equipped. Note that in the case of two handed objects, like bows, it can result in two (or more) items being unequipped to equip your new item. never: In this case, it will never unequip something for you. It will instead tell you want you need to unequip - this can be a list of many objects. always: This will unequip whatever is needed to equip your new item. An example of how the above works: If your character currently has two rings, and tries to equip a third, the nochoice mode will print the two rings you currently have equipped. The always mode will unequip one of the rings in your inventory. The ring unequipped is fairly indeterminate - it depends on how the server has ordered your inventory (which is not the same as the order your window displays). If your character is currently wearing a suit of armor, and you try to equip another suit, both nochoice and always will cause the new suit to get equipped. See also: apply �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/dropall.en����������������������������������������������������������������0000644�0000145�0000012�00000001114�11731300544�014154� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������DROPALL help: dropall [type] dropall drops all items in your inventory to the ground, excepting locked items. The type parameter will also control what is dropped: 'empty' (e.g., nothing specified): drops all objects except food, money, keys, and containers. weapons: drops weapons, bows, and arrows. armor (armour): drops armor, shield, and helmets. misc: drops horns, books, girdles, amulets, rings, cloaks, boots, gloves, bracers, scrolls, wands, rods, and potions. food: drops food and drink. flesh: drops all flesh. See also 'drop' and mouse button control for dropping objects. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/dropall.fr����������������������������������������������������������������0000644�0000145�0000012�00000001333�11731300544�014164� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Dropall dépose sur le sol l'entièreté du contenu de votre inventaire, à l'exception des objets verrouillés. Usage: dropall <type> Le type peut prendre l'une des valeurs suivantes: weapons: dépose armes, arcs et projectiles armor (ou armour): dépose armures, boucliers et casques misc: dépose cornes, livres, ceintures, amulettes, anneaux, capes, bottes, gants, bracelets, parchemins, bâtons, baguettes et potions food: dépose nourriture et boissons flesh: dépose les parties de corps Si le type n'est pas spécifié, tous les objets à l'exception de la nourriture, de l'argent, des clefs et des conteneurs seront déposés. Voir aussi: drop, comment utiliser la souris pour déposer un objet. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/petmode.en����������������������������������������������������������������0000644�0000145�0000012�00000000472�11731300544�014162� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Petmode controls how your pets (charmed monsters) will behave. The options are: Normal: As you would expect. SAD (Search and Destroy): Pets will roam and seek out things to attack. Defend: Pets will try to stay close and defend you. Arena: As normal, except that pets will attack other players in the arena. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/applymode.fr��������������������������������������������������������������0000644�0000145�0000012�00000002461�11731300544�014524� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Applymode contrôle ce qui se passe lorsque vous équipez votre personnage d'un objet qui demande qu'autre-chose soit enlevé. Options: nochoice: Dans ce cas, la substitution est effectuée seulement si il n'y a pas de choix possible sur l'objet à enlever. Exemple typique: les baguettes, puisque vous ne pouvez en porter qu'une à la fois. Notez que dans le cas d'objets qui demandent les deux mains pour être utilisés (comme un arc par exemple), plusieurs objets peuvent malgré tout se retrouver enlevés pour vous permettre d'utiliser celui-ci. never: Dans ce cas, rien n'est enlevé automatiquement. Il vous sera plutôt demandé confirmation. always: Enlève tout ce qui est nécessaire pour vous équiper du nouvel objet. Exemple: Si votre personnage porte deux anneaux, et tente d'en mettre un troisième, le mode nochoice affichera les deux anneaux dont il est déjà équipé. Le mode always ôtera automatiquement l'un de ces deux anneaux (celui qui sera enlevé est déterminé en fonction de l'agencement interne au serveur de vos objets d'inventaire, et est difficile à prédéterminer). Si votre personnage porte une armure et que vous tentez de lui en faire revêtir une autre, nochoice et always feront tous deux en sorte que le nouvel équipement remplace automatiquement l'ancien. Voir aussi: apply���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/cast.en�������������������������������������������������������������������0000644�0000145�0000012�00000000542�11731300544�013455� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������You use the cast command to set your range-weapon to the spell you want. Example: 'cast burning hands sets your RANGE weapon to 'spell: burning hands' If you don't know the spell, shows which spells you do know. It is helpful to bind strings like 'cast burning hands' to keys. see 'help bind' 'help range for more information on range weapons. ��������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/bind.en�������������������������������������������������������������������0000644�0000145�0000012�00000001356�11731300544�013443� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: bind [-nfreg] <command> Flags (default -nrf): -n: used in normal-mode -f: used in fire-mode -r: used in run-mode -e: leave command in line edit -g: global key (not recommended) Multiple commands can be bound to the same key be separating them with semicolons. Special bind's: bind commandkey - sets commandkey bind firekey1 - sets first firekey bind firekey2 - sets second firekey bind runkey1 - sets first runkey bind runkey2 - sets second runkey Examples: bind -f cast paralyzed (F3) will typically mean that Shift-F3 is used to select that spell (Shift being the fire key) bind use_skill sense curse; use_skill sense magic (S) will bind those two commands to the S key. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/fire_stop.en��������������������������������������������������������������0000644�0000145�0000012�00000000040�11731300544�014506� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Turn off auto-fire. See "fire". ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/listen.fr�����������������������������������������������������������������0000644�0000145�0000012�00000000412�11731300544�014022� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Listen - Définit le niveau des messages que vous entendrez sur le canal de chat. Usage: listen <niveau> Où niveau est un nombre indiquant le niveau de messages souhaité. Consultez votre administrateur pour savoir à quel usage est réservé chaque niveau. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/unbind.en�����������������������������������������������������������������0000644�0000145�0000012�00000000323�11731300544�013777� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: unbind [-g] [#] unbind reset Without -g command uses user's binding, with -g global binding. Without number it displays current bindings, with # it unbinds it. 'reset' resets default bindings. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/listen.en�����������������������������������������������������������������0000644�0000145�0000012�00000000062�11731300544�014016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Listen, sets the level of messages you will hear. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/wimpy.en������������������������������������������������������������������0000644�0000145�0000012�00000000404�11731300544�013665� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������wimpy is the % of hitpoints left When your hitpoits drop below this level you will blindly auto-run away. wimpy without an argument shows the current setting; if followed with a number it sets the level. example wimpy 10 Your new wimpy level is 10. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/cast.fr�������������������������������������������������������������������0000644�0000145�0000012�00000000653�11731300544�013465� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Cast prépare un sortilège à être lancé Usage: cast <sort> Où <sort> est le nom du sortilège à préparer. Si aucun sort n'est spécifié, ou si votre personnage ne connaît pas le sort demandé, cast affichera la liste des sorts à votre disposition. La commande cast est typiquement reliée à des touches de raccourci, pour facilement sélectionner vos sorts les plus couramment utilisés. Voir aussi: range, bind�������������������������������������������������������������������������������������crossfire-1.70.0/lib/help/bind.fr�������������������������������������������������������������������0000644�0000145�0000012�00000002100�11731300544�013434� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Bind permet de relier une touche à une action ou suite d'actions. Syntaxe: bind [-nfreg] <commande> Paramètres: -n: Commande en mode normal -f: Commande en mode "tir" -r: Commande en mode "course" -e: Laisse la commande dans la ligne d'édition (utile pour say/tell/chat, par exemple) -g: Raccourci global (non recommandé) Plusieurs commandes peuvent être reliées à une seule touche en séparant chacune par un point-virgule. Raccourcis spéciaux: bind commandkey: définit la touche pour entrer en mode de commandes bind firekey1: définit la première touche de tir bind firekey2: définit la seconde touche de tir bind runkey1: définit la première touche de course bind runkey2: définit la seconde touche de course Exemples: bind -f cast fireball (F3) Signifie que Shift+F3 permettra de sélectionner le sort de boule de feu, Shift étant la touche de tir par défaut. bind use_skill sense curse; use_skill sense magic (S) Signifie que la touche S déclenchera l'usage successif de ces deux compétences. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/rules��������������������������������������������������������������������������0000644�0000145�0000012�00000000633�11731300544�012325� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This is the rules file. # It should contains the rules # in effect on your server. # The content of this file will # be sent to connecting players [b]Welcome to crossfire[/b] [i]Rule #0[/i] The owner of this server has not defined a rules file. Please read the content of [color=green]motd[/color] or go to the [color=green]website[/color] of this server to know what is and what is [b]not[/b] allowed here. �����������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/adm/���������������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537043�012076� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/adm/collect_images.pl����������������������������������������������������������0000755�0000145�0000012�00000011737�11731300544�015332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # # this script goes through and collects the various image sets into crossfire-x.png # files, where x is the numbers from the image_info file. This # collects all the images at once, whether or not they have # been changed or not. # This script collects all the images. If given a -archive option, it # does some additional work - checksumming the images, making a bmaps.client # file, and then tarring that data up. This data can then be used on the # client as a fast way to 'bootstrap' the clients images. use FileHandle; die("No arch directory - will not rebuild $mode image file") if (! -e "arch"); $archive = 0; $src_path = "."; $TMPDIR="/tmp"; # What we will call the collection of images. $ARCHNAME="crossfire-images"; $DESTDIR="$TMPDIR/$ARCHNAME"; # Maximum expected file $MAXFILESIZE=100000; if ($ARGV[0] eq "-src") { $src_path = $ARGV[1]; print "Using $ARGV[1] as source directory\n"; die("$src_path doesn't exist.") if (! -d $src_path); shift; shift; } if ($ARGV[0] eq "-archive") { $archive =1; print "Will generate appropriate files for image archive\n"; die("$DESTDIR already exists - remove if you really want to remake the images") if (-d $DESTDIR); die("$0: unable to mkdir $DESTDIR: $1\n") if (!mkdir($DESTDIR, 0755)); } open(IMAGEINFO,"$src_path/image_info") || die("Can't open image_info file: $!\n"); binmode(IMAGEINFO); while (<IMAGEINFO>) { # Ignore lines that start with comments or just empty lines next if /^#/; next if /^\s*$/; ($setnum, $ext, @rest) = split /:/; # We don't actually need that data in this script, but may as well do sanity # checking. if ($#rest != 4) { print STDERR "image_info: line is corrupt:\n$_"; } if ($extension[$setnum]) { print STDERR "Warning: set $setnum is duplicated in image_info file\n"; } $extension[$setnum] = $ext; } close(IMAGEINFO); for ($count=0; $count<=$#extension; $count++) { $ESRV[$count] = new FileHandle; $fh = $ESRV[$count]; open($fh, ">crossfire.$count") || die("Can't open crossfire.$count for write: $!\n"); binmode( $fh ); } open(BMAPS,"bmaps.paths") || die("Can't open bmaps.paths: $!\n"); binmode(BMAPS); $_ = <BMAPS>; while(<BMAPS>) { chop; # we need to insert the extension for the images between the name # and the number (.171 or whatever) extension, so split on that. die("Unknown line: '$_'\n") unless /^\\(\d{5})\s+(\S+)\.(\w\w\w)$/o; $num = $1; $file = $2; $file1 = $3; print "$num $file\n" if ($num % 500) == 0 ; # This probably isn't the most efficient way to do this if a # large number of images are added, as we try to open each # instance. # OTOH, we are doing one directory # at a time, so we should be hitting the DNLC at a very high # rate. for ($count=0; $count<=$#extension; $count++) { $filename = "$file.$extension[$count].$file1.png"; $fh = $ESRV[$count]; $length = -s "$filename"; if (open(FILE,"$filename")) { binmode( FILE ); print $fh "IMAGE $length $file.$file1\n"; print "Error reading file $filename" if (!read(FILE, $buf, $length)); $position = tell $fh; print $fh $buf; close(FILE); if ($archive) { # Now figure out the checksum # Same as what is used for the client/server - code basically # taken write form that. $sum = 0; for ($i=0; $i<$length; $i++) { if ($sum & 01) { $sum = ($sum >> 1) | 0x80000000; } else { $sum >>= 1; } $sum += ord(substr $buf, $i, 1); $sum &= 0xffffffff; } # Do some name translation to figure out our output file name. @comps = split /\//, $file; $destfile = $comps[$#comps]; push @csums, "$destfile.$file1 $sum crossfire.$extension[$count]\@$position:$length\n"; } # if archive } elsif ($count==0) { # set 0 should have all the sets print "Error: Image $filename not found for set 0!\n"; } } } for ($count=0; $count<=$#extension; $count++) { close($ESRV[$count]); } close(BMAPS); if ($archive) { open(OUT,">$DESTDIR/bmaps.client") || die("Can not open $DESTDIR/bmaps.client\n"); binmode(OUT); print OUT sort @csums; close(OUT); open(OUT,">$DESTDIR/README") || die("Can not open $DESTDIR/README\n"); print OUT "These image files for the client should be located in\n"; print OUT "\$prefix/share/crossfire-client. \$prefix is the location given in the -prefix\n"; print OUT "option when configure is run to build the client. The default is /usr/local.\n"; print OUT "In that case these files should be put in /usr/local/share/crossfire-client\n"; print OUT "The client will print a messgae if it is unable to find the image information\n"; print OUT "with the location is looked for them.\n"; close(OUT); for ($count=0; $count<=$#extension; $count++) { system("cp crossfire.$count $DESTDIR/crossfire.$extension[$count]"); } system("cd $DESTDIR; tar cf $TMPDIR/$ARCHNAME.tar ."); system("mv $TMPDIR/$ARCHNAME.tar ../"); system("rm -rf $TMPDIR/$ARCHNAME"); } ���������������������������������crossfire-1.70.0/lib/adm/mapslitter.pl��������������������������������������������������������������0000644�0000145�0000012�00000014571�11731300544�014540� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # This script will write (to stdout) all the needed exits to connect maps # in a tiled fashion. The variables at the start will need to be set # for things to work. # Set these as appropriate to the maps it should connect to. If one is left # blank, then exits for that direction will not be created. $MAPNAME=$ARGV[0]; $XM=$ARGV[1]; $YM=$ARGV[2]; $WIDTH=$ARGV[3]; $HEIGHT=$ARGV[4]; #$SPLITMAP=$ARGV[5]; if ($MAPNAME eq "") { die "Usage: connect.pl <basename> <x maps> <y maps> <width> <height>"; } if ($WIDTH==0) { $WIDTH=42; } if ($HEIGHT==0) { $HEIGHT=34; } # DELTA What the overlap is - it should always be 5 for smooth transitions $DELTA=5; $xc=1; $yc=1; print STDOUT "Creating connection maps.\n"; while ($xc<=$XM) { $yc=1; while ($yc<=$YM) { $NORTH=""; $NORTHWEST=""; $WEST=""; $SOUTHWEST=""; $SOUTH=""; $SOUTHEAST=""; $EAST=""; $NORTHEAST=""; if ($yc>1){ $NORTH=$MAPNAME."_".$xc."_".($yc-1); } if ($yc>1 || $xc>1) { $NORTHWEST=$MAPNAME."_".($xc-1)."_".($yc-1); } if ($xc>1) { $WEST=$MAPNAME."_".($xc-1)."_".$yc; } if ($xc>1 || $yc<$YM) { $SOUTHWEST=$MAPNAME."_".($xc-1)."_".($yc+1); } if ($yc<$YM) { $SOUTH=$MAPNAME."_".$xc."_".($yc+1); } if ($yc<$YM || $xc<$XM) { $SOUTHEAST=$MAPNAME."_".($xc+1)."_".($yc+1); } if ($xc<$XM) { $EAST=$MAPNAME."_".($xc+1)."_".$yc; } if ($xc<$XM || $yc>1) { $NORTHEAST=$MAPNAME."_".($xc+1)."_".($yc-1); } $THISMAP=$MAPNAME."_".$xc."_".$yc; open (MAP, ">$THISMAP") or die "unable to open mapfile."; print MAP "arch map\n"; print MAP "name $MAPNAME\n"; print MAP "msg\n"; print MAP "Creator: splitmap.pl\n"; print MAP "Email: azzie\@tellutec.se\n"; print MAP "Date: Wed Oct 27 10:59:23 1993\n"; print MAP "endmsg\n"; print MAP "hp ".($DELTA+1)."\n"; print MAP "sp $DELTA\n"; print MAP "x $WIDTH\n"; print MAP "y $HEIGHT\n"; print MAP "end\n"; print $MAPNAME."_".$xc."_".$yc."\n"; # print "XC=".$xc."\n"; # print "YC=".$yc."\n"; #$NORTHWEST=""; #$WEST=""; #$SOUTHWEST=""; #$SOUTH="world_a3"; #$SOUTHEAST="world_b3"; #$EAST="world_b2"; #$NORTHEAST="world_b1"; # End of configurable options. # Quick reminder - hp is the destination x, sp is the destination y # Lets do the corners first if ($NORTHWEST ne "") { print MAP "arch exit\n"; print MAP "slaying $NORTHWEST\n"; print MAP "x ".($DELTA-1)."\n"; print MAP "y ".($DELTA-1)."\n"; print MAP "hp ".($WIDTH-$DELTA-1)."\n"; print MAP "sp ".($HEIGHT-$DELTA-1)."\n"; print MAP "end\n"; } if ($SOUTHWEST ne "") { print MAP "arch exit\n"; print MAP "slaying $SOUTHWEST\n"; print MAP "x ".($DELTA-1)."\n"; print MAP "y ".($HEIGHT-$DELTA)."\n"; print MAP "hp ".($WIDTH-$DELTA-1)."\n"; print MAP "sp ".($DELTA)."\n"; print MAP "end\n"; } if ($SOUTHEAST ne "") { print MAP "arch exit\n"; print MAP "slaying $SOUTHEAST\n"; print MAP "x ".($WIDTH-$DELTA)."\n"; print MAP "y ".($HEIGHT-$DELTA)."\n"; print MAP "hp ".($DELTA)."\n"; print MAP "sp ".($DELTA)."\n"; print MAP "end\n"; } if ($NORTHEAST ne "") { print MAP "arch exit\n"; print MAP "slaying $NORTHEAST\n"; print MAP "x ".($WIDTH-$DELTA)."\n"; print MAP "y ".($DELTA-1)."\n"; print MAP "hp ".($DELTA)."\n"; print MAP "sp ".($HEIGHT-$DELTA-1)."\n"; print MAP "end\n"; } # Now lets do the edges. if ($NORTH ne "") { $x=$DELTA; while ($x < ($WIDTH-$DELTA)) { print MAP "arch exit\n"; print MAP "slaying $NORTH\n"; print MAP "x ".$x."\n"; print MAP "y ".($DELTA-1)."\n"; print MAP "hp ".$x."\n"; print MAP "sp ".($HEIGHT-$DELTA-1)."\n"; print MAP "end\n"; $x=$x+1; } } if ($SOUTH ne "") { $x=$DELTA; while ($x < ($WIDTH-$DELTA)) { print MAP "arch exit\n"; print MAP "slaying $SOUTH\n"; print MAP "x ".$x."\n"; print MAP "y ".($HEIGHT-$DELTA)."\n"; print MAP "hp ".$x."\n"; print MAP "sp ".($DELTA)."\n"; print MAP "end\n"; $x=$x+1; } } if ($WEST ne "") { $y=$DELTA; while ($y < ($HEIGHT-$DELTA)) { print MAP "arch exit\n"; print MAP "slaying $WEST\n"; print MAP "x ".($DELTA-1)."\n"; print MAP "y ".$y."\n"; print MAP "hp ".($WIDTH-$DELTA-1)."\n"; print MAP "sp ".$y."\n"; print MAP "end\n"; $y=$y+1; } } if ($EAST ne "") { $y=$DELTA; while ($y < ($HEIGHT-$DELTA)) { print MAP "arch exit\n"; print MAP "slaying $EAST\n"; print MAP "x ".($WIDTH-$DELTA)."\n"; print MAP "y ".$y."\n"; print MAP "hp ".($DELTA)."\n"; print MAP "sp ".$y."\n"; print MAP "end\n"; $y=$y+1; } } close MAP; $yc=$yc+1; } $xc=$xc+1; } # Second pass. Connected maps opened and primary map superimposed. print STDOUT "Done with connecting, now superimposing split map.\n"; $xc=1; $yc=1; while ($xc<=$XM) { $yc=1; while ($yc<=$YM) { $NEWMAP=$MAPNAME."_".$xc."_".$yc.".new"; $THISMAP=$MAPNAME."_".$xc."_".$yc; open (MAP, ">>$THISMAP") or die "unable to open new mapfile."; # open (CONMAP, "$THISMAP") or die "unable to open connected mapfile."; open (IMPMAP, "$MAPNAME") or die "unable to open superimposed mapfile."; $currentline=<IMPMAP>; print STDOUT "Now superimposing on map ".$THISMAP."\n"; # Discard header $headscan=1; while ($headscan) { if ($currentline=~/end\n/) { $headscan=0; } $currentline=<IMPMAP>; } # Read rest of file while ($currentline) { # print STDOUT $currentline; # Scan for and buffer archs within bounds. while ($currentline ne "end\n" && $currentline) { if ($currentline=~/x /) { ($florp, $px) = split //,$currentline,2; $currentline="x ".($px-(($xc-1)*$WIDTH)+(($xc-1)*$DELTA*2))."\n"; } if ($currentline=~/y /) { ($florp, $py)=split //,$currentline,2; $currentline="y ".($py-(($yc-1)*$HEIGHT)+(($yc-1)*$DELTA*2))."\n"; } if ($currentline ne "x 0\n" && $currentline ne "y 0\n"){ $buf=$buf.$currentline; } $currentline=<IMPMAP>; } $buf=$buf.$currentline; # print STDOUT $px.$py; if ($px >= (($xc-1)*$WIDTH)-(($xc-1)*$DELTA*2) && $px < ($xc*$WIDTH)-(($xc-1)*$DELTA*2) && $py >= (($yc-1)*$HEIGHT)-(($yc-1)*$DELTA*2) && $py < ($yc*$HEIGHT)-(($yc-1)*$DELTA*2)) { # print STDOUT "In map: ".$THISMAP."\n"; print MAP $buf; # print STDOUT "."; } # else { # print STDOUT "-"; # } $px=0; $py=0; $buf=""; $currentline=<IMPMAP>; } close MAP; close CONMAP; close IMPMAP; $yc=$yc+1; # print STDOUT "\n"; } $xc=$xc+1; } ���������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/adm/map_expand.pl��������������������������������������������������������������0000644�0000145�0000012�00000005311�11731300544�014460� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /usr/bin/perl # this script takes a map (in new format, eg those that support # tiling and only save the head for multipart objects) and # expands it by some factor. Note that editing of the destination # file will certainly be necessary, but this may be useful instead # of having to re-do a scaled map by hand. $default_X_size = 16; $default_Y_size = 16; $expand = 2; $help = 0; $input_map = $ARGV[$#ARGV]; # argv loop foreach $i (0 .. $#ARGV) { if($ARGV[$i] =~ "-h") { $help = 1; } if($ARGV[$i] =~ "-e") { $expand = $ARGV[++$i]; } } # various help/runtime messages if(!$expand||!$input_map) { print "USAGE: $0 -e factor <input map> > <output map> \n" ; exit 0; } if($help) { print "\n$0 options:\n" ; print "-e\t Factor by which to expand map x,y dimensions.\n"; print "-h\t This help message. \n"; exit 0; } #Read in input map open(FILE, $input_map) || die "FATAL: file $input_map not found!\n"; # process the map object special. This is easier than trying # to handle the special values it has while (<FILE>) { if (/^width (\d+)$/) { printf "width %d\n", $1 * $expand; } elsif (/^height (\d+)$/) { printf "height %d\n", $1 * $expand; } elsif (/^enter_x (\d+)$/) { printf "enter_x %d\n", $1 * $expand; } elsif (/^enter_y (\d+)$/) { printf "enter_y %d\n", $1 * $expand; } else { print $_; } last if (/^end$/); } @mapdata=<FILE>; close(FILE); # convert map data into objects while ($i<=$#mapdata) { local(@datum) = split (' ',$mapdata[$i]); if($datum[0] eq "arch") { $name[$objnum] = $datum[1]; } elsif($datum[0] eq "end") { $objnum++; } elsif($datum[0] eq "x") { $x[$objnum] = $datum[1]; } elsif($datum[0] eq "y") { $y[$objnum] = $datum[1]; } else { push(@otherline,$mapdata[$i]); $olines_in_obj[$objnum]++; } $i++; } #Expand the map objects 1 to $objnum for ($j=0; $j<$objnum; $j++) { &expand_obj("$j $expand $bufline"); $bufline += $olines_in_obj[$j]; } # SUBROUTINES sub expand_obj { local($data) = @_; local(@temp) = split(' ',$data); local($obj) = $temp[0]; local($factor) = $temp[1]; local($end_buf) = $temp[2] + $olines_in_obj[$obj]; local($start_x) = $x[$obj] * $factor; local($start_y) = $y[$obj] * $factor; local($end_x) = $start_x + $factor; local($end_y) = $start_y + $factor; while($start_x<$end_x) { while($start_y<$end_y) { local($start_buf) = $temp[2]; if($name[$obj]) { printf("arch %s\n",$name[$obj]); } else { return; } printf("x %d\n",$start_x); printf("y %d\n",$start_y); while ($start_buf<$end_buf) { print "$otherline[$start_buf]"; $start_buf++; } print"end\n"; $start_y++; } $start_x++; $start_y = $y[$obj] * $factor; } } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/adm/map_info�������������������������������������������������������������������0000644�0000145�0000012�00000023004�11731300544�013521� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # # This program is meant to use check crossfire (version 0.90.?) maps. # Program wanderers through mapfiles and reports all objects that # can't be found in the archetypes, all exit that doesn't lead to # anywhere and all corrupted mapfiles. # # By: Tero Haatanen <Tero.Haatanen@lut.fi> # # Usage: wanderer.pl directory # Set if you want to get warnings about spikes, gates, buttons, et al that # are not connected. This can be annoying at times, since many maps use # these objects for decorations. $CONNECTED = 0; $LIB = "/export/home/crossfire/cf-installroot/share/crossfire"; $ARCH = "$LIB/archetypes"; $BMAPS = "$LIB/bmaps"; $ANIM = "$LIB/animations"; $MAPS = "$LIB/maps"; # Set VERBOSE=1 if you want more output $VERBOSE=0; $SHOW_UNUSED = 0; if (! $ARGV[0]) { print "Using $MAPS are starting map directory.\n"; $STARTING = $MAPS; } else { $STARTING = $ARGV[0]; } # read filenames to @maps chdir ($STARTING); while ($area = shift) { &maplist ($area); } $* = 1; # use multiline matches &faces; &animations; # read archetypes &archetypes; %ex = &collect ('^type 66$'); # type 66 == exit %tele = &collect ('^type 41$'); # type 41 == teleport %conn = &collect ('^type (17|18|26|27|29|30|31|32|91|92|93|94)$'); delete $conn{"spikes_moving"}; delete $conn{"magic_ear"}; %players = &collect ('^type 1$'); # type 1 == player # # In theory, I don't think any of these should show up in maps. # For now, I mostly ignore them so I can more easily check out the # editor directory and verify everything is in place. %abilities = &collect('^type (2|10|11|12|19|25|43|44|49|50|52|88|97|110|114|121|141|151)$'); # check exits from archetypes foreach $a (keys (%ex), keys (%tele)) { if ($arches {$a} =~ /^food -?\d+$/) { print "Warning: Archetype $a has food field.\n"; } } # some general info print "=" x 70, "\n"; print "Number of mapfiles = " , @maps + 0, "\n"; print "Number of archetypes = " , values(%arches)+0, ":\n"; print " - Exits (" , values(%ex)+0, ")\n"; print " - Teleports (" , values(%tele)+0, ")\n"; print " - Connected objects (", values(%conn)+0, ")\n"; print " - Players (" , values(%players)+0, ")\n"; print "=" x 70, "\n"; # check maps while ($file = shift (@maps)) { &readmap; } # summary of missing archetypes if (%missing) { print "=" x 70, "\n"; print "Missing archetypes: ", join (", ", sort keys (%missing)), "\n"; } # if you don't want list of used objects, uncomment next line # and you can comment also last line check_obj # (This isn't very useful, but maybe tells something) #exit; #&print_usage(); if ($SHOW_UNUSED) { print " Unused object\n"; foreach $a (sort(keys %arches)) { print "$a\n" if (!$objects{$a} && !$players{$a} && !$abilities{$a}) } } exit; sub print_usage() { print "=" x 70, "\nArchetype count\n"; $total = 0; foreach $a (sort by (keys (%objects))) { printf ("%-24s%d\n", $a, $objects{$a}); $total += $objects{$a}; } print '-' x 30, "\nTotal objects $total\n"; } # return table containing all objects in the map sub readmap { my ($m); my($last); my($parent); $last = ""; $parent = ""; $/ = "\nend\n"; if (! open (IN, $file)) { print "Can't open map file $file\n"; return; } $_ = <IN>; if (! /^arch map$/) { # print "Error: file $file isn't mapfile.\n"; return; } if ($VERBOSE) { print "Testing $file, "; print /^name (.+)$/ ? $1 : "No mapname"; print ", size [", /^x (\d+)$/ ? $1 : 16; print ",", /^y (\d+)/ ? $1 : 16, "]"; if (! /^msg$/) { print ", No message\n"; } elsif (/(\w+@\S+)/) { print ", $1\n"; } else { print ", Unknown\n"; } $printmap=0; } else { $name= /^name (.+)$/ ? $1 : "No mapname"; $x= /^x (\d+)$/ ? $1 : 16; $y= /^y (\d+)/ ? $1 : 16; $mapname="Map $file, $name, size [$x, $y]\n" ; $printmap=1; } while (<IN>) { if (($m = (@_ = /^arch \S+\s*$/g)) > 1) { $parent = /^arch (\S+)\s*$/; # object has inventory my ($inv) = $_; while (<IN>) { if (/((.|\n)*end\n)(arch (.|\n)*\nend\n)/) { &check_obj ("$inv$1"); &check_obj ($3); last; } elsif (/^arch (.|\n)*\nend$/) { &check_obj ($_); } elsif (/^end$/) { &check_obj ("$inv$_"); } else { # if ($printmap) { print "$mapname"; $printmap=0;} # This doesn't work right - it gets confused when objects are within # another object # print " Error: Corrupted map file $file.\nSegment:\n$_\nLine: $.\n"; } } $parent=""; } elsif (/^More$/ || $m == 1) { &check_obj ($_); } else { # if ($printmap) { print "$mapname"; $printmap=0;} # print " Error: Corrupted map file $file.\nSegment:\n$_\nLine: $.\n"; } } close (IN); } sub check_obj { $_ = shift @_; local ($x) = (/^x (\d+)$/)?$1:0; local ($y) = (/^y (\d+)$/)?$1:0; local($arch) = /^arch (\S+)\s*$/; if (! $arches{$1} && $last ne $1) { $last = $1; if ($printmap) { print "$mapname"; $printmap=0;} print " Error: Object $last is not defined in archetypes file ($x,$y), arch=$arch\n"; $missing{$last}++; } elsif ($ex{$1}) { &examine_exit ($_); } elsif ($tele{$1}) { if (/^food -?\d+$/) { if ($printmap) { print "$mapname"; $printmap=0;} print " Error: Teleport $1 has food field.\n"; } else { &examine_exit ($_); } } elsif ($conn{$1} && ! /^connected -?\d+$/) { $last = $1; if ($CONNECTED) { if ($printmap) { print "$mapname"; $printmap=0;} print " Warning: Object $last has not been connected, $x,$y\n" } } elsif ($players{$1} && $last ne $1 && ! /^type / ) { $last = $1; if ($printmap) { print "$mapname"; $printmap=0;} print " Error: Player $last found in the map.\n"; } elsif ($1 eq "scroll" && ! /^msg$/) { $last = $1; # print " Warning: scroll without message ($x, $y:$parent), should be random_scroll?\n"; } elsif ($1 eq "potion" && $last ne $1) { $last = $1; # print " Warning: potion found, should be random_potion or random_food?\n"; } elsif ($1 eq "ring" || $1 eq "amulet") { $last = $1; # print " Warning: ring/amulet found ($x,$y:$parent), should be random_talisman?\n"; } $objects{$1}++; if (/^animation (\S+)$/) { if (! $anim{$1}) { if ($printmap) { print "$mapname"; $printmap=0;} print "Error: Object $arch is using an unknown animation $1\n" } } if (/^face (\S+)$/) { if (! $faces{$1}) { if ($printmap) { print "$mapname"; $printmap=0;} print "Error: Object $arch is using an unknown face $1\n" } } } sub by { $_ = $objects{$b} <=> $objects{$a}; $_ ? $_ : $a cmp $b; } sub obj_name { $_ = shift(@_); local ($name) = /^name (.+)$/; # object's name local ($arch) = /^arch (\S+)$/; if (!defined ($name) && $arches{$arch} =~ /^name (.+)$/) { $name = $1; # archetype's name } return defined ($name) ? $name : $arch; # archetype or name } sub examine_exit { $_ = shift(@_); local ($x) = (/^hp (\d+)$/)?$1:0; local ($y) = (/^sp (\d+)$/)?$1:0; local ($x1) = (/^x (\d+)$/)?$1:0; local ($y1) = (/^y (\d+)$/)?$1:0; local ($to) = /^slaying (\S+)$/; if (/^food (-?\d+)$/) { # old style exits, doesn't work with crossfire 0.90-1 if ($printmap) { print "$mapname"; $printmap=0;} print " Error: ", &obj_name($_), " ($x1,$y1) -> ", "Old style level [$1] ($x,$y)\n"; } elsif (! defined ($to)) { # print " Closed: ", &obj_name($_), " ($x1,$y1)\n"; } else { # These are currently used be crossfire if ($to eq "/!") { # this is a random exit - if we # have a final map, make sure it # exists local ($finalmap) = /^final_map (\S+)$/; if ($finalmap ne "") { if ($finalmap =~ m!^/!) { $cdir = "$MAPS"; } else { ($cdir) = $file =~ m!(.*/)!; } if (! -f "$cdir$finalmap") { if ($printmap) { print "$mapname"; $printmap=0;} print " Missing: ", &obj_name($_), " ($x1,$y1) -> $finalmap ($x,$y)\n"; } } return; } if ($to =~ m!^/!) { $cdir = "$MAPS"; } else { ($cdir) = $file =~ m!(.*/)!; } if (! -f "$cdir$to") { if ($printmap) { print "$mapname"; $printmap=0;} print " Missing: ", &obj_name($_), " ($x1,$y1) -> $to ($x,$y)\n"; } else { # print " OK: ", &obj_name($_), " ($x1,$y1) -> $to ($x,$y)\n"; } } } # @maps contains all filenames sub maplist { local ($dir, $file, @dirs) = shift; opendir (DIR , $dir) || die "Can't open directory : $dir\n"; while ($file = readdir (DIR)) { next if ($file eq "." || $file eq ".." || $file eq ".svn" || $file eq "unlinked" || $file eq "editor"); $file = "$dir/$file"; next if (-l $file); push (@dirs, $file) if (-d $file); push (@maps, $file) if (-f $file); } closedir (DIR); # recurcive handle sub-dirs too while ($_ = shift @dirs) { &maplist ($_); } } # collect all objects matching with reg.expr. sub collect { local ($expr,$a, %col) = shift; foreach $a (keys %arches) { $_ = $arches{$a}; if (/$expr/) { $col{$a}++; } } return %col; } # collect all archetypes into associative array %arches sub archetypes { open (IN, $ARCH) || die "Can't open archetype file $ARCH.\n"; $/ = "\nend\n"; while (<IN>) { while (/^Object (\S+)\s*$/g) { $arches{$1} = $_; } } close (IN); } sub faces { open(IN, $BMAPS) || die ("Can't open faces file $BMAPS\n"); while (<IN>) { chomp; ($num, $name) = split; $faces{$name} = $name; } close(IN); } sub animations { open(IN, $ANIM) || die ("Can't open animations file $ANIM\n"); while (<IN>) { if (/^anim (\S+)\s*$/) { $anim{$1} = $1; } } close(IN); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/adm/archsearch.pl��������������������������������������������������������������0000644�0000145�0000012�00000002742�11731300544�014454� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # # Usage: archsearch.pl file # # This script searches a file (either archetypes or maps) for certain # desired values. It is better than grep in that it keeps track of the # the archetype it occurs in and does smarter searches (ie, certain # bitmask values you can search for specific bit sets, which is not # easy to do with grep) # # Originally written to find all the creatures that use ghosthit. # Modified to find all object types that are being set invisible # in pupland # die("Usage: archsearch.pl file\n") if ($#ARGV < 0); for ($file=0; $file<=$#ARGV; $file++) { # print "Proccessing $ARGV[$file]\n"; if (!open(INFILE, "<$ARGV[$file]")) { print "Can not open $ARGV[$file] - skipping\n"; next; } while (<INFILE>) { if (/^Object (\S+)/ || /^arch (\S+)/) { $obname = $1; $invisible=0; $type=-1; $x = -1; $y = -1; $title=""; } $object .= $_; $type = $1 if (/^type (\S+)/); $title = $1 if (/^title (\S+)/); $invisible = $1 if (/^invisible (\S+)/); $x = $1 if (/^x (\S+)/); $y = $1 if (/^y (\S+)/); if (/^end$/ ) { if ($obname =~ /^altar/ && $title ne "") { print "$ARGV[$file]\n$object"; } # print "Object $obname (type $type) @ $x, $y is invisible\n"; $object=""; } # This is what we are searching for. value will be put in $1 # Note that multile searches are certainly possible. # elsif (/^attacktype (\S+)/) { # if ($1 & 0x200) { # print "Found match, object $obname, line $.\n"; # } # } } # While loop } ������������������������������crossfire-1.70.0/lib/bmaps��������������������������������������������������������������������������0000644�0000145�0000012�00000353766�11732536576�012340� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is generated by collect.pl, do not edit 00000 bug.111 00001 Bk.x11 00002 Bk.x12 00003 Bk.x13 00004 Bk.x14 00005 Bk.x15 00006 Bk.x71 00007 Bk.x72 00008 Bk.x73 00009 Bk.x74 00010 Bk.x75 00011 CSword.111 00012 CSword.112 00013 CSword.113 00014 CSword.114 00015 CSword.115 00016 CSword.116 00017 CSword.117 00018 CSword.118 00019 CSword.119 00020 CSword.11A 00021 CSword.11B 00022 CSword.11C 00023 Cwyvern.x31 00024 Cwyvern.x32 00025 Cwyvern.x71 00026 Cwyvern.x72 00027 DShield.111 00028 DShield.112 00029 DShield.113 00030 GreatDemon.x11 00031 Nimground3_purple.111 00032 Nimground3_purple.112 00033 Nimground3_purple.113 00034 Nimground3_purple.114 00035 Pdragonmail.111 00036 Pdragonmail.112 00037 a_bridge1.111 00038 a_bridge2.111 00039 a_civic.x11 00040 a_civic2.x11 00041 a_guard_h.111 00042 a_guard_l.111 00043 a_guard_m.111 00044 a_helmet.111 00045 a_priest.111 00046 a_townsman.111 00047 a_townsman2.111 00048 a_townsman3.111 00049 acid_pool.111 00050 acid_pool.112 00051 acidsphere.111 00052 acidsphere.112 00053 acidsphere.113 00054 acidsphere.114 00055 acidspit.111 00056 acidspit.121 00057 acidspit.131 00058 acidspit.141 00059 acidspit.151 00060 acidspit.161 00061 acidspit.171 00062 acidspit.181 00063 afloor.131 00064 afloor.171 00065 afloor_blue.131 00066 afloor_blue.171 00067 afloor_magenta.131 00068 afloor_magenta.171 00069 ahole.131 00070 ahole.171 00071 ahole_blue.131 00072 ahole_blue.171 00073 ahole_magenta.131 00074 ahole_magenta.171 00075 alchemist.111 00076 alchemist.112 00077 alchemist.131 00078 alchemist.132 00079 alchemist.151 00080 alchemist.152 00081 alchemist.171 00082 alchemist.172 00083 altar.111 00084 altar.112 00085 altardevo.111 00086 altargaea.111 00087 altargnarg.111 00088 altargoro.111 00089 altargoro.112 00090 altargoro.113 00091 altarixalovh.111 00092 altarlyth.111 00093 altarmostr.111 00094 altarnone.111 00095 altarrugg.111 00096 altarrugg.112 00097 altarrugg.113 00098 altarrugg.114 00099 altarrugg.115 00100 altarrugg.116 00101 altarsori.111 00102 altarsori.112 00103 altarsori.113 00104 altarsori.114 00105 altarsori.115 00106 altarsori.116 00107 altarvalk.111 00108 altarvalr.111 00109 altarvalr.112 00110 altarvalr.113 00111 altarvalr_intervention.111 00112 altarvalr_intervention.112 00113 altarvalr_intervention.113 00114 altarvalr_intervention.114 00115 altarvalr_intervention.115 00116 amber_coin.111 00117 amberium_converter.111 00118 ambolt.111 00119 amethyst.111 00120 amethyst.112 00121 amethyst_exceptional.111 00122 amethyst_flawless.111 00123 amulet.111 00124 amulet_aethereality.111 00125 amulet_calling_death.111 00126 amulet_dark.111 00127 amulet_darkmagenta.111 00128 amulet_darkred.111 00129 amulet_deflection.111 00130 amulet_destruction.111 00131 amulet_empowerement.111 00132 amulet_free_action.111 00133 amulet_gray.111 00134 amulet_holiness.111 00135 amulet_lif.111 00136 amulet_magenta.111 00137 amulet_magi.111 00138 amulet_power.111 00139 amulet_red.111 00140 amulet_shielded_mind.111 00141 amulet_shielding.111 00142 amulet_sorrow.111 00143 amulet_sustenance.111 00144 amulet_unholiness.111 00145 amulet_white.111 00146 anchor.111 00147 angel.111 00148 angel.112 00149 angel.131 00150 angel.132 00151 angel.151 00152 angel.152 00153 angel.171 00154 angel.172 00155 angel_sword.111 00156 angel_sword.112 00157 angel_sword.131 00158 angel_sword.132 00159 angel_sword.151 00160 angel_sword.152 00161 angel_sword.171 00162 angel_sword.172 00163 angelknight.x11 00164 angry_floor.111 00165 ant.111 00166 ant.112 00167 ant_egg.111 00168 ant_gen.111 00169 ant_larvae.111 00170 ant_larvae.112 00171 ape.131 00172 ape.132 00173 ape.171 00174 ape.172 00175 apple.111 00176 apple_eighth.111 00177 apple_fourth.111 00178 apple_half.111 00179 archangel.x11 00180 archangel.x12 00181 archangel.x13 00182 archgold.111 00183 archgreen.111 00184 archon.111 00185 archon.222 00186 archon.333 00187 archon.444 00188 archtree.111 00189 archwood.111 00190 arm.111 00191 armless_cook.111 00192 armless_cook.131 00193 armless_cook.151 00194 armless_cook.171 00195 armourtroll2.111 00196 armourtroll2.112 00197 armourtroll3.111 00198 armourtroll4.111 00199 arrow.101 00200 arrow.111 00201 arrow.121 00202 arrow.131 00203 arrow.141 00204 arrow.151 00205 arrow.161 00206 arrow.171 00207 arrow.181 00208 arrow_fire.101 00209 arrow_fire.111 00210 arrow_fire.121 00211 arrow_fire.131 00212 arrow_fire.141 00213 arrow_fire.151 00214 arrow_fire.161 00215 arrow_fire.171 00216 arrow_fire.181 00217 arrow_frost.101 00218 arrow_frost.111 00219 arrow_frost.121 00220 arrow_frost.131 00221 arrow_frost.141 00222 arrow_frost.151 00223 arrow_frost.161 00224 arrow_frost.171 00225 arrow_frost.181 00226 arrow_lightning.101 00227 arrow_lightning.111 00228 arrow_lightning.121 00229 arrow_lightning.131 00230 arrow_lightning.141 00231 arrow_lightning.151 00232 arrow_lightning.161 00233 arrow_lightning.171 00234 arrow_lightning.181 00235 arrow_paralysis.101 00236 arrow_paralysis.111 00237 arrow_paralysis.121 00238 arrow_paralysis.131 00239 arrow_paralysis.141 00240 arrow_paralysis.151 00241 arrow_paralysis.161 00242 arrow_paralysis.171 00243 arrow_paralysis.181 00244 arrow_poison.101 00245 arrow_poison.111 00246 arrow_poison.121 00247 arrow_poison.131 00248 arrow_poison.141 00249 arrow_poison.151 00250 arrow_poison.161 00251 arrow_poison.171 00252 arrow_poison.181 00253 ashes.111 00254 asteroid.111 00255 asteroid.112 00256 asteroid.121 00257 asteroid.131 00258 asteroid.141 00259 asteroid.151 00260 asteroid.161 00261 asteroid.171 00262 asteroid.181 00263 attache.111 00264 avatar.131 00265 avatar.132 00266 avatar.171 00267 avatar.172 00268 awall_0.111 00269 awall_1.111 00270 awall_1_short.111 00271 awall_2.111 00272 awall_2_short.111 00273 awall_3.111 00274 awall_4.111 00275 awall_4_short.111 00276 awall_5.111 00277 awall_55.111 00278 awall_6.111 00279 awall_7.111 00280 awall_8.111 00281 awall_8_short.111 00282 awall_9.111 00283 awall_A.111 00284 awall_AA.111 00285 awall_B.111 00286 awall_C.111 00287 awall_D.111 00288 awall_E.111 00289 awall_F.111 00290 awall_w_0.111 00291 awall_w_0.112 00292 awall_w_0.113 00293 awall_w_0.114 00294 awall_w_0.115 00295 awall_w_0.116 00296 awall_w_0.117 00297 awall_w_1.111 00298 awall_w_1.112 00299 awall_w_1.113 00300 awall_w_1.114 00301 awall_w_1.115 00302 awall_w_1.116 00303 awall_w_1.117 00304 awall_w_1.118 00305 awall_w_1.119 00306 awall_w_1.11A 00307 awindow_0.111 00308 awindow_1.111 00309 axe_1.111 00310 axe_2.111 00311 axe_3.111 00312 axe_3_golden.111 00313 axe_4.111 00314 axe_5.111 00315 b_axe1.111 00316 b_bsword_1.111 00317 b_bsword_2.111 00318 b_dagger.111 00319 b_fullhelmet.111 00320 b_gauntlet_s.111 00321 b_helmet.111 00322 b_hornhelmet.111 00323 b_lsword.111 00324 b_plate_mail.111 00325 b_scale_mail.111 00326 b_scimitar.111 00327 b_shield.111 00328 b_sicklesword.111 00329 b_slicingknife.111 00330 b_small_shie.111 00331 b_ssword_1.111 00332 b_ssword_2.111 00333 b_sword_1.111 00334 b_sword_2.111 00335 baby_drag.111 00336 baby_drag.112 00337 baby_drag.113 00338 bag.111 00339 bag_popcorn.111 00340 bagpipe.111 00341 bagpipe.112 00342 bagpipe.113 00343 bagpipe.114 00344 bagpipe.115 00345 bagpipe.116 00346 bagpipe.117 00347 bagpipe.118 00348 bagpipe.119 00349 bagpipe.11A 00350 ball_lightning.111 00351 ball_lightning.222 00352 ball_lightning.333 00353 ball_lightning.444 00354 balm_gen.111 00355 banishment.111 00356 banishment.112 00357 banishment.113 00358 bank.x11 00359 bank_west.x11 00360 bankcard.111 00361 banshee.111 00362 banshee.112 00363 barbarian.111 00364 barbarian.112 00365 barbarian.131 00366 barbarian.132 00367 barbarian.151 00368 barbarian.152 00369 barbarian.171 00370 barbarian.172 00371 barn.x11 00372 barn2.x11 00373 barn2_northwest.x11 00374 barn_west.x11 00375 barrack_l.x11 00376 barrack_l.x12 00377 barrack_s.111 00378 barrack_u.x11 00379 barrack_u.x12 00380 barrel.111 00381 baslic.x31 00382 baslic.x32 00383 baslic.x71 00384 baslic.x72 00385 bat.111 00386 bat.112 00387 bat.113 00388 bat_gen.111 00389 bat_wing.111 00390 battle_axe.111 00391 beach.111 00392 beach_S.111 00393 bear.x31 00394 bear.x32 00395 bear.x71 00396 bear.x72 00397 bed_1.111 00398 bed_save.111 00399 bee.111 00400 bee.112 00401 bee_gen.111 00402 beehive.111 00403 beehive.112 00404 beggar.111 00405 behemoth.x31 00406 behemoth.x32 00407 behemoth.x33 00408 behemoth.x71 00409 behemoth.x72 00410 behemoth.x73 00411 behold_eye.111 00412 behold_gen.111 00413 beholder.111 00414 beholder.112 00415 beholder.113 00416 beholder.114 00417 beholder_leader.111 00418 beige-cyan-c-marble.111 00419 beige-cyan-c-marble.112 00420 beige-cyan-c-marble.113 00421 beige-cyan-c-marble.114 00422 beige-green-c-marble.111 00423 beige-green-c-marble.112 00424 beige-green-c-marble.113 00425 beige-green-c-marble.114 00426 beige-pink-c-marble.111 00427 beige-pink-c-marble.112 00428 beige-pink-c-marble.113 00429 beige-pink-c-marble.114 00430 beige-white-c-marble.111 00431 beige-white-c-marble.112 00432 beige-white-c-marble.113 00433 beige-white-c-marble.114 00434 beigemarble.111 00435 belzebub.x11 00436 belzebub.x12 00437 bench_0.111 00438 bench_1.111 00439 bench_2.111 00440 bench_3.111 00441 bench_4.111 00442 bench_5.111 00443 bench_6.111 00444 bench_7.111 00445 bench_8.111 00446 bench_9.111 00447 bench_A.111 00448 bench_B.111 00449 bench_C.111 00450 bench_D.111 00451 bench_E.111 00452 bench_F.111 00453 bforest.111 00454 big_club.111 00455 big_demon.x31 00456 big_demon.x71 00457 big_eye.111 00458 big_slave.111 00459 big_wiz.x11 00460 big_wiz.x12 00461 big_wiz.x13 00462 big_wiz.x14 00463 big_wiz.x15 00464 bigblue_wiz.x11 00465 bigblue_wiz.x12 00466 bigblue_wiz.x13 00467 bigblue_wiz.x14 00468 bigblue_wiz.x15 00469 biggalleon.x11 00470 biggalleon.x71 00471 bighorn_he.111 00472 bird.111 00473 bird.112 00474 bird.131 00475 bird.132 00476 bird.151 00477 bird.152 00478 bird.171 00479 bird.172 00480 bird_gen.111 00481 black_dragon2.151 00482 black_dragon2.152 00483 black_dragon2.171 00484 black_dragon2.172 00485 blackfirebullet.111 00486 blackfirebullet.121 00487 blackfirebullet.131 00488 blackfirebullet.141 00489 blackfirebullet.151 00490 blackfirebullet.161 00491 blackfirebullet.171 00492 blackfirebullet.181 00493 blackmarble.111 00494 blackrock.111 00495 blackrock_S.111 00496 blackroot.111 00497 blades.111 00498 blake_0.111 00499 blake_1.111 00500 blake_1.112 00501 blake_1.113 00502 blake_1.114 00503 blake_2.111 00504 blake_2.112 00505 blake_2.113 00506 blake_2.114 00507 blake_3.111 00508 blake_3.112 00509 blake_3.113 00510 blake_3.114 00511 blake_4.111 00512 blake_4.112 00513 blake_4.113 00514 blake_4.114 00515 blake_5.111 00516 blake_5.112 00517 blake_5.113 00518 blake_5.114 00519 blake_6.111 00520 blake_6.112 00521 blake_6.113 00522 blake_6.114 00523 blake_7.111 00524 blake_7.112 00525 blake_7.113 00526 blake_7.114 00527 blake_8.111 00528 blake_8.112 00529 blake_8.113 00530 blake_8.114 00531 blake_9.111 00532 blake_9.112 00533 blake_9.113 00534 blake_9.114 00535 blake_A.111 00536 blake_A.112 00537 blake_A.113 00538 blake_A.114 00539 blake_B.111 00540 blake_B.112 00541 blake_B.113 00542 blake_B.114 00543 blake_C.111 00544 blake_C.112 00545 blake_C.113 00546 blake_C.114 00547 blake_D.111 00548 blake_D.112 00549 blake_D.113 00550 blake_D.114 00551 blake_E.111 00552 blake_E.112 00553 blake_E.113 00554 blake_E.114 00555 blake_F.111 00556 blake_F.112 00557 blake_F.113 00558 blake_F.114 00559 blank.111 00560 blob.111 00561 blob.112 00562 blob.113 00563 blocked.111 00564 blocked_blue.111 00565 blocked_cyan.111 00566 blocked_darkblue.111 00567 blocked_darkmagenta.111 00568 blocked_gray.111 00569 blocked_green.111 00570 blocked_lightgray.111 00571 blocked_lime.111 00572 blocked_magenta.111 00573 blocked_maroon.111 00574 blocked_olive.111 00575 blocked_red.111 00576 blocked_teal.111 00577 blocked_white.111 00578 blocked_yellow.111 00579 blood.111 00580 blood_sea.111 00581 blood_sea.112 00582 blood_sea.113 00583 blood_sea.114 00584 blood_sea_S.111 00585 blood_sea_S.112 00586 blood_sea_S.113 00587 blood_sea_S.114 00588 bloodwell.111 00589 blue_crystal.111 00590 blue_dragon2.151 00591 blue_dragon2.152 00592 blue_dragon2.171 00593 blue_dragon2.172 00594 bluedragonmail.111 00595 bluemarble.111 00596 bluemarblemedium.111 00597 bluesphere.111 00598 bluesphere.112 00599 bluesphere.113 00600 bluesphere.114 00601 bolt.101 00602 bolt.111 00603 bolt.121 00604 bolt.131 00605 bolt.141 00606 bolt.151 00607 bolt.161 00608 bolt.171 00609 bolt.181 00610 bolt_silk.111 00611 bomb.111 00612 bomb.112 00613 bomb.113 00614 bomb.114 00615 bone_drake.x11 00616 bone_drake.x12 00617 bone_head.111 00618 bone_head.112 00619 bone_head.113 00620 bonecrush.111 00621 bones1.111 00622 bones2.111 00623 bones3.111 00624 bones4.111 00625 bones5.111 00626 book_clasp.111 00627 book_read.111 00628 book_red.111 00629 bookshelf.111 00630 bookshelf2.111 00631 bookshelf_bottom.111 00632 bookshelf_left.111 00633 bookshelf_right.111 00634 booze.111 00635 boozebottle_empty.111 00636 boulder.111 00637 bouquet.111 00638 bow.111 00639 bpudding.111 00640 bpudding.112 00641 bpudding_g.111 00642 bpudding_g.112 00643 bpudding_g.113 00644 bpudding_g.114 00645 bpudding_g.115 00646 bpudding_g.116 00647 bpudding_g.117 00648 bpudding_g.118 00649 bpudding_g.119 00650 bpudding_s.111 00651 bpudding_s.112 00652 bpudding_s.113 00653 bpudding_s.114 00654 bracers_ac.111 00655 bracersdex.111 00656 brain.111 00657 branch_125.111 00658 branch_125.211 00659 branch_135.111 00660 branch_137.111 00661 branch_145.111 00662 branch_145.211 00663 branch_156.111 00664 branch_156.211 00665 branch_157.111 00666 branch_158.111 00667 branch_158.211 00668 branch_237.111 00669 branch_237.211 00670 branch_347.111 00671 branch_347.211 00672 branch_357.111 00673 branch_367.111 00674 branch_367.211 00675 branch_378.111 00676 branch_378.211 00677 brazier.111 00678 brazier.112 00679 brazier.113 00680 brazier.114 00681 brdaxe_1.111 00682 brdaxe_1.112 00683 brdaxe_1.113 00684 brdaxe_1.114 00685 breeder_ant.x11 00686 breeder_ant.x12 00687 brefjell.111 00688 bridge_15.111 00689 bridge_37.111 00690 bridge_m0.111 00691 bridge_m1.111 00692 bronzebar.111 00693 broo.111 00694 broo.112 00695 broo.113 00696 brush.111 00697 bsword_1.111 00698 bsword_2.111 00699 building10_east.x11 00700 building1_east.111 00701 building2_east.x11 00702 building3_east.x11 00703 building4_east.x11 00704 building5_east.x11 00705 building6_east.x11 00706 building7_east.x11 00707 building8_east.x11 00708 building9_east.x11 00709 bul_wall_0.111 00710 bul_wall_1.111 00711 bul_wall_2.111 00712 bul_wall_3.111 00713 bul_wall_4.111 00714 bul_wall_5.111 00715 bul_wall_6.111 00716 bul_wall_7.111 00717 bul_wall_8.111 00718 bullet.111 00719 bullet.112 00720 bullet.121 00721 bullet.131 00722 bullet.141 00723 bullet.151 00724 bullet.161 00725 bullet.171 00726 bullet.181 00727 bungalow.111 00728 burning_barn.x11 00729 burning_cathedral.x11 00730 burning_church.x11 00731 burning_collesium.x11 00732 burning_courthouse.x11 00733 burning_fort.x11 00734 burning_fort_sym.111 00735 burning_fountain.111 00736 burning_fountain.112 00737 burning_fountain.113 00738 burning_guild.x11 00739 burning_house_1.111 00740 burning_house_larg.x11 00741 burning_house_long.x11 00742 burning_house_up.x11 00743 burning_housesmall.111 00744 burning_l_shop1.x11 00745 burning_market1.111 00746 burning_market2.111 00747 burning_market3.111 00748 burning_shrine.111 00749 burning_smalltemple.111 00750 burning_store_alch.x11 00751 burning_store_armo.x11 00752 burning_store_gene.x11 00753 burning_store_magi.x11 00754 burning_store_weap.x11 00755 burning_stronghold.x11 00756 burning_t_house2.x11 00757 burning_temple1.x11 00758 burningtail.111 00759 burningtail.112 00760 burningtail.113 00761 burningwall_0.111 00762 burningwall_0.112 00763 burningwall_1.111 00764 burningwall_1.112 00765 burningwall_2.111 00766 burningwall_2.112 00767 burningwall_3.111 00768 burningwall_3.112 00769 burningwall_4.111 00770 burningwall_4.112 00771 burningwall_5.111 00772 burningwall_5.112 00773 burningwall_6.111 00774 burningwall_6.112 00775 burningwall_7.111 00776 burningwall_7.112 00777 burningwall_8.111 00778 burningwall_8.112 00779 burningwall_9.111 00780 burningwall_9.112 00781 burningwall_A.111 00782 burningwall_A.112 00783 burningwall_B.111 00784 burningwall_B.112 00785 burningwall_C.111 00786 burningwall_C.112 00787 burningwall_D.111 00788 burningwall_D.112 00789 burningwall_E.111 00790 burningwall_E.112 00791 burningwall_F.111 00792 burningwall_F.112 00793 burnout.111 00794 burnout.112 00795 burnout.113 00796 burnout.114 00797 burnout.115 00798 burnout.116 00799 burnout.117 00800 burnout.118 00801 burnout.119 00802 burnout.11A 00803 burnout.11B 00804 burnout.11C 00805 burnout.11D 00806 burnout.11E 00807 burnout.11F 00808 burnout.11G 00809 burnout.11H 00810 burnout.11J 00811 burnout.11K 00812 burnout.11L 00813 burnout.11M 00814 burnout.11N 00815 burnout.11O 00816 burnout.11P 00817 burnout.11Q 00818 burnout.11R 00819 butterflysword_1.111 00820 butterflysword_2.111 00821 button_big.111 00822 button_big.112 00823 button_sma.111 00824 button_sma.112 00825 bwall_0.111 00826 bwall_1.111 00827 bwall_2.111 00828 bwall_3.111 00829 bwall_4.111 00830 bwall_5.111 00831 bwall_6.111 00832 bwall_7.111 00833 bwall_8.111 00834 bwall_9.111 00835 bwall_A.111 00836 bwall_B.111 00837 bwall_C.111 00838 bwall_D.111 00839 bwall_E.111 00840 bwall_F.111 00841 bwall_hole_5.111 00842 bwall_hole_A.111 00843 bwall_w_0.111 00844 bwall_w_0.112 00845 bwall_w_0.113 00846 bwall_w_0.114 00847 bwall_w_0.115 00848 bwall_w_0.116 00849 bwall_w_0.117 00850 bwall_w_1.111 00851 bwall_w_1.112 00852 bwall_w_1.113 00853 bwall_w_1.114 00854 bwall_w_1.115 00855 bwall_w_1.116 00856 bwall_w_1.117 00857 byakie.x11 00858 byakie.x12 00859 c_knight.111 00860 c_knight.112 00861 c_priest.131 00862 c_priest.132 00863 c_priest.171 00864 c_priest.172 00865 cabbage.111 00866 cake.111 00867 calm_floor.111 00868 campfire.111 00869 campfire.112 00870 campfire.113 00871 campfire.114 00872 campfire_out.111 00873 cancellation.111 00874 cancellation.112 00875 cancellation.113 00876 cannon_0.111 00877 cannon_1.111 00878 cannon_2.111 00879 cannon_3.111 00880 cannon_4.111 00881 cannon_5.111 00882 cannon_6.111 00883 cannon_7.111 00884 cannon_8.111 00885 capitalhold_east.x11 00886 capitalhold_west.x11 00887 caramel.111 00888 card.111 00889 card_crown.111 00890 card_cup.111 00891 card_dragon.111 00892 card_ring.111 00893 card_skull.111 00894 card_sword.111 00895 carrot.111 00896 carton_box_1.111 00897 carton_box_1_open.111 00898 castle.111 00899 castle_a.x11 00900 castle_a.x12 00901 castle_a_east.x11 00902 castle_a_northwest.x11 00903 castle_a_northwest.x12 00904 castle_a_western.x11 00905 castle_a_western.x12 00906 castle_west.111 00907 cathedral.x11 00908 cauldron.111 00909 cauldron_open.111 00910 cause.111 00911 cause.112 00912 cave1.111 00913 cave10.111 00914 cave11.111 00915 cave12.111 00916 cave13.111 00917 cave14.111 00918 cave15.111 00919 cave16.111 00920 cave17.111 00921 cave18.111 00922 cave19.111 00923 cave2.111 00924 cave20.111 00925 cave21.111 00926 cave22.111 00927 cave23.111 00928 cave24.111 00929 cave25.111 00930 cave3.111 00931 cave4.111 00932 cave5.111 00933 cave6.111 00934 cave7.111 00935 cave8.111 00936 cave9.111 00937 cave_0.111 00938 cave_1.111 00939 cave_10.111 00940 cave_11.111 00941 cave_12.111 00942 cave_13.111 00943 cave_14.111 00944 cave_15.111 00945 cave_16.111 00946 cave_17.111 00947 cave_18.111 00948 cave_19.111 00949 cave_2.111 00950 cave_20.111 00951 cave_21.111 00952 cave_22.111 00953 cave_23.111 00954 cave_24.111 00955 cave_3.111 00956 cave_4.111 00957 cave_5.111 00958 cave_6.111 00959 cave_7.111 00960 cave_8.111 00961 cave_9.111 00962 cave_stair_up_2.111 00963 centipede.111 00964 centipede.112 00965 centipede.113 00966 centipede.114 00967 centipede.121 00968 centipede.122 00969 centipede.123 00970 centipede.124 00971 centipede.131 00972 centipede.132 00973 centipede.133 00974 centipede.134 00975 centipede.141 00976 centipede.142 00977 centipede.143 00978 centipede.144 00979 centipede.151 00980 centipede.152 00981 centipede.153 00982 centipede.154 00983 centipede.161 00984 centipede.162 00985 centipede.163 00986 centipede.164 00987 centipede.171 00988 centipede.172 00989 centipede.173 00990 centipede.174 00991 centipede.181 00992 centipede.182 00993 centipede.183 00994 centipede.184 00995 centipede_r.111 00996 centipede_r.112 00997 centipede_r.113 00998 cforest1.111 00999 cforest2.111 01000 cforest3.111 01001 cforest4.111 01002 cforest5.111 01003 cforest6.111 01004 ch_bish.111 01005 ch_bish_w.111 01006 ch_burger.111 01007 ch_king.111 01008 ch_king_w.111 01009 ch_knight.111 01010 ch_knight_w.111 01011 ch_pawn.111 01012 ch_pawn_w.111 01013 ch_queen.111 01014 ch_queen_w.111 01015 ch_rook.111 01016 ch_rook_w.111 01017 chainmail.111 01018 chair.111 01019 chair_1.101 01020 chair_1.111 01021 chair_1.121 01022 chair_1.131 01023 chair_2.101 01024 chair_2.111 01025 chair_2.121 01026 chair_2.131 01027 chair_3.101 01028 chair_3.111 01029 chair_bc_2.101 01030 chair_bc_2.111 01031 chair_bc_2.121 01032 chair_bc_2.131 01033 chair_cw_1.101 01034 chair_cw_1.111 01035 chair_cw_1.121 01036 chair_cw_1.131 01037 chair_gv_1.101 01038 chair_gv_1.111 01039 chair_gv_1.121 01040 chair_gv_1.131 01041 chair_wv_1.101 01042 chair_wv_1.111 01043 chair_wv_1.121 01044 chair_wv_1.131 01045 chalice.111 01046 chalice.112 01047 chalice.113 01048 chalice.114 01049 chalice_bro.111 01050 chalice_bro.112 01051 chalice_bro.113 01052 chalice_bro.114 01053 chalice_cop.111 01054 chalice_cop.112 01055 chalice_cop.113 01056 chalice_cop.114 01057 chalice_iro.111 01058 chalice_iro.112 01059 chalice_iro.113 01060 chalice_iro.114 01061 chalice_plat.111 01062 chalice_plat.112 01063 chalice_plat.113 01064 chalice_plat.114 01065 chalice_sil.111 01066 chalice_sil.112 01067 chalice_sil.113 01068 chalice_sil.114 01069 chalice_tin.111 01070 chalice_tin.112 01071 chalice_tin.113 01072 chalice_tin.114 01073 chandelier_1.x11 01074 chandelier_2.111 01075 chandelier_2.112 01076 chandelier_2.113 01077 chandelier_2.114 01078 chandelier_2_copper.111 01079 chandelier_2_copper.112 01080 chandelier_2_copper.113 01081 chandelier_2_copper.114 01082 chaos_dragon.x31 01083 chaos_dragon.x32 01084 chaos_dragon.x33 01085 chaos_dragon.x34 01086 chaos_dragon.x71 01087 chaos_dragon.x72 01088 chaos_dragon.x73 01089 chaos_dragon.x74 01090 charm_aura.111 01091 charm_aura.112 01092 charm_aura.113 01093 charm_floor.111 01094 charwoman.131 01095 charwoman.132 01096 charwoman.171 01097 charwoman.172 01098 check_floor.111 01099 check_inv.111 01100 checkbook.111 01101 chemney_1.111 01102 chemney_2.111 01103 cherub.111 01104 chess_club.111 01105 chest_1.111 01106 chest_green_1.111 01107 chest_jade_1.111 01108 chest_valriel_1.111 01109 chest_valriel_1.112 01110 chest_valriel_1.113 01111 chest_valriel_1.114 01112 chest_white_1.111 01113 chicken.131 01114 chicken.132 01115 chicken.171 01116 chicken.172 01117 child.111 01118 child2.111 01119 chinese_dr.x31 01120 chinese_dr.x32 01121 chinese_dr.x33 01122 chinese_dr.x71 01123 chinese_dr.x72 01124 chinese_dr.x73 01125 chinese_dr_spellcasting.x31 01126 chinese_dr_spellcasting.x32 01127 chinese_dr_spellcasting.x71 01128 chinese_dr_spellcasting.x72 01129 chocolate.111 01130 chole_1.111 01131 chole_2.111 01132 church.x11 01133 church_fant.x11 01134 cinna.111 01135 city-tower.x11 01136 city-tower_west.x11 01137 city_tower_east.x11 01138 city_tower_fant.x11 01139 city_tower_northwest.x11 01140 cityport_0.111 01141 cityport_1.111 01142 claypipe.111 01143 cleric.111 01144 cleric.112 01145 cleric.131 01146 cleric.132 01147 cleric.151 01148 cleric.152 01149 cleric.171 01150 cleric.172 01151 cloak.111 01152 cloak_black.111 01153 cloak_lblue.111 01154 cloak_lgrey.111 01155 cloak_purple.111 01156 cloak_red.111 01157 cloak_trans.112 01158 cloak_white.111 01159 clock.111 01160 clock.112 01161 clock_ag.111 01162 clock_ag.112 01163 clock_cw.111 01164 clock_cw.112 01165 clock_grand.111 01166 clock_grand.112 01167 close_attache.111 01168 close_bag.111 01169 close_dbox.111 01170 close_desk.111 01171 close_desk_cw.111 01172 close_dresser.111 01173 close_dresser2.111 01174 close_dresser2_cw.111 01175 close_dresser_cw.111 01176 close_keys.111 01177 close_pouc.111 01178 close_present_box_1.111 01179 close_present_box_2.111 01180 close_present_box_3.111 01181 close_present_box_4.111 01182 close_present_box_5.111 01183 close_present_box_6.111 01184 close_quiv.111 01185 close_rsack.111 01186 close_sack.111 01187 close_sarcophagus.111 01188 close_schest.111 01189 close_wizdesk.111 01190 closechest.111 01191 closemail.111 01192 cloud_1_1.x11 01193 cloud_1_2.x11 01194 cloud_1_3.x11 01195 cloud_2_1.x11 01196 cloud_2_2.x11 01197 cloud_2_3.x11 01198 cloud_3_1.x11 01199 cloud_3_2.x11 01200 cloud_3_3.x11 01201 cloud_4_1.x11 01202 cloud_4_2.x11 01203 cloud_4_3.x11 01204 cloud_5_1.x11 01205 cloud_5_2.x11 01206 cloud_5_3.x11 01207 clover.111 01208 clown.111 01209 club.111 01210 cmarsh.111 01211 cobblesto1.111 01212 cobblesto2.111 01213 cobblesto3.111 01214 cobra.x11 01215 cobra.x12 01216 cobra.x13 01217 coffee.111 01218 coffee_empty.111 01219 coffin.111 01220 cold_drag.131 01221 cold_drag.132 01222 cold_drag.171 01223 cold_drag.172 01224 coldmagma.111 01225 coldmagma.112 01226 collar.111 01227 collar.112 01228 collar.113 01229 collesium.x11 01230 compositebow.111 01231 confusion.111 01232 confusion.112 01233 confusion.113 01234 confusion.114 01235 conjurer.111 01236 conjurer.112 01237 conjurer.113 01238 conv.111 01239 copperbar.111 01240 corpse.111 01241 corpse1.111 01242 counterspell.111 01243 courier.111 01244 courierblue.111 01245 couriergreen.111 01246 couriermagenta.111 01247 courierorange.111 01248 courierpurple.111 01249 courierturquoise.111 01250 courieryellow.111 01251 courthouse.x11 01252 cplate.111 01253 crater.111 01254 crawling_chaos.111 01255 crawling_chaos.112 01256 crawling_chaos.113 01257 crea_serp_c.111 01258 creator.111 01259 crone.111 01260 crossbow.111 01261 crossroad.111 01262 crown.111 01263 crown2.111 01264 crown_dark.111 01265 crown_gray.111 01266 crown_r.111 01267 crown_white.111 01268 crystalball.111 01269 cudgel.111 01270 cwall_0.111 01271 cwall_1.111 01272 cwall_2.111 01273 cwall_3.111 01274 cwall_4.111 01275 cwall_5.111 01276 cwall_6.111 01277 cwall_7.111 01278 cwall_8.111 01279 cwall_9.111 01280 cwall_A.111 01281 cwall_B.111 01282 cwall_C.111 01283 cwall_D.111 01284 cwall_E.111 01285 cwall_F.111 01286 cwall_beigemarble.111 01287 cwall_bluemarblemedium.111 01288 cwall_cyanmarble.111 01289 cwall_cyanmarbledark.111 01290 cwall_graymarble.111 01291 cwall_greenmarble.111 01292 cwall_greenmarblemedium.111 01293 cwall_magentamarble.111 01294 cwall_marble.111 01295 cwall_mural_1.111 01296 cwall_mural_1.112 01297 cwall_mural_1.113 01298 cwall_mural_1.114 01299 cwall_mural_end_1.111 01300 cwall_mural_end_1.112 01301 cwall_pinkmarble.111 01302 cwall_w_0.111 01303 cwall_w_0.112 01304 cwall_w_0.113 01305 cwall_w_0.114 01306 cwall_w_0.115 01307 cwall_w_0.116 01308 cwall_w_0.117 01309 cwall_w_0.118 01310 cwall_w_0.119 01311 cwall_w_0.11A 01312 cwall_w_1.111 01313 cwall_w_1.112 01314 cwall_w_1.113 01315 cwall_w_1.114 01316 cwall_w_1.115 01317 cwall_w_1.116 01318 cwall_w_1.117 01319 cwall_w_1.118 01320 cwall_w_1.119 01321 cwallsec.111 01322 cwallsec.112 01323 cwallsec.113 01324 cwallsec.114 01325 cwallsec.115 01326 cwallsec.116 01327 cwallsec.117 01328 cwallsec.118 01329 cwallsec_mural_1.111 01330 cwallsec_mural_1.112 01331 cwallsec_mural_1.113 01332 cwallsec_mural_1.114 01333 cwallsec_mural_1.115 01334 cwallsec_mural_1.116 01335 cwallsec_mural_1.117 01336 cwallsec_mural_1.118 01337 cyan-beige-c-marble.111 01338 cyan-beige-c-marble.112 01339 cyan-beige-c-marble.113 01340 cyan-beige-c-marble.114 01341 cyanbrush.111 01342 cyangrass.111 01343 cyangrass_S.111 01344 cyangrasspond.111 01345 cyanmarble.111 01346 cyclops.x31 01347 cyclops.x32 01348 cyclops.x71 01349 cyclops.x72 01350 d_statue.111 01351 dagger.111 01352 dagger_f.111 01353 dagger_f.112 01354 dagger_f.113 01355 dagger_f.114 01356 dagger_r.111 01357 dancing_girl.111 01358 dancing_girl.112 01359 dancing_girl.113 01360 dancingsword.111 01361 dancingsword.112 01362 dancingsword.113 01363 dark1.111 01364 dark2.111 01365 dark3.111 01366 dark_elf.111 01367 dark_elf.112 01368 dark_elf.131 01369 dark_elf.132 01370 dark_elf.171 01371 dark_elf.172 01372 dark_elf2.131 01373 dark_elf2.132 01374 dark_elf2.171 01375 dark_elf2.172 01376 dark_palace.x11 01377 darkblade.111 01378 darkblade.112 01379 darkblade.113 01380 darkblade.114 01381 darkblade.115 01382 darkblade.116 01383 darkblade.117 01384 darkforest.111 01385 darkforest_S.111 01386 darkhold.x11 01387 darkhold_s.111 01388 dave.111 01389 dave.112 01390 dave.113 01391 dbridge1.111 01392 dbridge2.111 01393 dcross-red.111 01394 dcross-white.111 01395 dead_neko.111 01396 deathbring.111 01397 deathshead.111 01398 deathshead.112 01399 deathshead.113 01400 deathshead.114 01401 deathtree.111 01402 deathtree.112 01403 deathtree.113 01404 deathtree.114 01405 deathtree.115 01406 deep_sea.111 01407 deep_sea.112 01408 deep_sea.113 01409 deep_sea.114 01410 deep_sea_S.111 01411 deep_sea_S.112 01412 deep_sea_S.113 01413 deep_sea_S.114 01414 deep_swamp.111 01415 deep_swamp.112 01416 deep_swamp_S.111 01417 deep_swamp_S.112 01418 default_smoothed.001 01419 default_smoothed.010 01420 default_smoothed.011 01421 default_smoothed.100 01422 default_smoothed.101 01423 default_smoothed.110 01424 default_smoothed.111 01425 defender.111 01426 demilich.111 01427 demilich.112 01428 demilich.113 01429 demon_head.111 01430 demon_lord.x11 01431 demon_lord.x12 01432 demonbane.111 01433 demonbane.112 01434 demonbane.113 01435 demonbane.114 01436 demonbane.115 01437 demonbane.116 01438 demonbane.117 01439 demonbane.118 01440 demonbane.119 01441 depositbox.111 01442 desert.111 01443 desert_S.111 01444 desk.111 01445 desk_cw.111 01446 destruction.111 01447 destruction.112 01448 destruction.113 01449 destruction.114 01450 det_magic.111 01451 det_magic.112 01452 det_magic.113 01453 devil.111 01454 devil.112 01455 devil_gen.111 01456 dhaxe_1.111 01457 dhaxe_2.111 01458 diamond_converter.111 01459 diamond_exceptional.111 01460 diamond_flawless.111 01461 dice.111 01462 dice.112 01463 dice.113 01464 diploma.111 01465 director.111 01466 director.112 01467 director.113 01468 director.121 01469 director.122 01470 director.123 01471 director.124 01472 director.125 01473 director.131 01474 director.132 01475 director.133 01476 director.141 01477 director.142 01478 director.143 01479 director.144 01480 director.145 01481 director.151 01482 director.152 01483 director.153 01484 director.161 01485 director.162 01486 director.163 01487 director.164 01488 director.165 01489 director.171 01490 director.172 01491 director.173 01492 director.181 01493 director.182 01494 director.183 01495 director.184 01496 director.185 01497 dirt.111 01498 dirtfloor.111 01499 dirtroad_0.111 01500 dirtroad_05.111 01501 dirtroad_05.211 01502 dirtroad_05.311 01503 dirtroad_0A.111 01504 dirtroad_0A.211 01505 dirtroad_0A.311 01506 dirtroad_1.111 01507 dirtroad_14.111 01508 dirtroad_18.111 01509 dirtroad_2.111 01510 dirtroad_21.111 01511 dirtroad_28.111 01512 dirtroad_3.111 01513 dirtroad_4.111 01514 dirtroad_41.111 01515 dirtroad_42.111 01516 dirtroad_5.111 01517 dirtroad_6.111 01518 dirtroad_7.111 01519 dirtroad_8.111 01520 dirtroad_82.111 01521 dirtroad_84.111 01522 dirtroad_9.111 01523 dirtroad_A.111 01524 dirtroad_B.111 01525 dirtroad_C.111 01526 dirtroad_D.111 01527 dirtroad_E.111 01528 dirtroad_F.111 01529 djinn.x31 01530 djinn.x32 01531 djinn.x71 01532 djinn.x72 01533 djinn_magenta.x11 01534 djinn_magenta.x12 01535 djinn_magenta.x21 01536 djinn_magenta.x22 01537 djinn_magenta_big.x11 01538 djinn_magenta_big.x12 01539 djinn_magenta_big.x21 01540 djinn_magenta_big.x22 01541 dlevel_0.111 01542 dlevel_1.111 01543 dlevel_2.111 01544 dlevel_3.111 01545 dlevel_4.111 01546 dlevel_5.111 01547 dlevel_6.111 01548 dlevel_7.111 01549 dlevel_7sw.111 01550 dlevel_8.111 01551 dlevel_9.111 01552 dlevel_A.111 01553 dlevel_B.111 01554 dlevel_Bse.111 01555 dlevel_Bsw.111 01556 dlevel_C.111 01557 dlevel_D.111 01558 dlevel_Dse.111 01559 dlevel_E.111 01560 dlevel_se.111 01561 dlevel_seB.111 01562 dlevel_seD.111 01563 dlevel_sese.111 01564 dlevel_sw.111 01565 dlevel_sw7.111 01566 dlevel_swB.111 01567 dlevel_swsw.111 01568 dog.131 01569 dog.132 01570 dog.133 01571 dog.171 01572 dog.172 01573 dog.173 01574 doll.111 01575 door_0.111 01576 door_1.111 01577 door_2.111 01578 door_3.111 01579 door_4.111 01580 door_5.111 01581 door_6.111 01582 door_7.111 01583 door_8.111 01584 door_9.111 01585 door_A.111 01586 door_B.111 01587 door_C.111 01588 door_D.111 01589 door_E.111 01590 door_F.111 01591 drag_steak.111 01592 dragon.x31 01593 dragon.x32 01594 dragon.x33 01595 dragon.x34 01596 dragon.x71 01597 dragon.x72 01598 dragon.x73 01599 dragon.x74 01600 dragon_ac.x31 01601 dragon_ac.x32 01602 dragon_ac.x33 01603 dragon_ac.x34 01604 dragon_ac.x71 01605 dragon_ac.x72 01606 dragon_ac.x73 01607 dragon_ac.x74 01608 dragon_blue_scale.111 01609 dragon_claw.111 01610 dragon_eye.111 01611 dragon_green_scale.111 01612 dragon_orange_scale.111 01613 dragon_sca.111 01614 dragon_shi.111 01615 dragon_spellcasting.x31 01616 dragon_spellcasting.x32 01617 dragon_spellcasting.x33 01618 dragon_spellcasting.x71 01619 dragon_spellcasting.x72 01620 dragon_spellcasting.x73 01621 dragon_stoned.111 01622 dragon_wing.111 01623 dragoncave.111 01624 dragonmail.111 01625 dragonman.x31 01626 dragonman.x32 01627 dragonman.x33 01628 dragonman.x71 01629 dragonman.x72 01630 dragonman.x73 01631 dragonslay.111 01632 drain_magic.111 01633 drake.111 01634 drake.112 01635 drake.113 01636 drake.211 01637 drake.212 01638 drake.213 01639 dread.x11 01640 dread.x12 01641 dread.x13 01642 dread.x14 01643 dread.x15 01644 dread.x16 01645 dress1.111 01646 dress2.111 01647 dress3.111 01648 dresser.111 01649 dresser2.111 01650 dresser2_cw.111 01651 dresser_cw.111 01652 drifts.111 01653 drifts2.111 01654 dun_0.111 01655 dun_1.111 01656 dun_10.111 01657 dun_11.111 01658 dun_12.111 01659 dun_13.111 01660 dun_14.111 01661 dun_15.111 01662 dun_16.111 01663 dun_17.111 01664 dun_18.111 01665 dun_19.111 01666 dun_2.111 01667 dun_20.111 01668 dun_21.111 01669 dun_22.111 01670 dun_23.111 01671 dun_24.111 01672 dun_25.111 01673 dun_3.111 01674 dun_4.111 01675 dun_5.111 01676 dun_6.111 01677 dun_7.111 01678 dun_8.111 01679 dun_9.111 01680 dun_A.111 01681 dun_B.111 01682 dun_C.111 01683 dun_D.111 01684 dun_E.111 01685 dun_F.111 01686 dunes.111 01687 dunes_S.111 01688 dung_floor.111 01689 duplicator.111 01690 dust_effect.111 01691 dust_effect.112 01692 dust_effect.113 01693 dust_gen.111 01694 dwall_0.111 01695 dwall_1.111 01696 dwall_1_short.111 01697 dwall_2.111 01698 dwall_2_short.111 01699 dwall_3.111 01700 dwall_4.111 01701 dwall_4_short.111 01702 dwall_5.111 01703 dwall_55.111 01704 dwall_6.111 01705 dwall_7.111 01706 dwall_8.111 01707 dwall_8_short.111 01708 dwall_9.111 01709 dwall_A.111 01710 dwall_AA.111 01711 dwall_B.111 01712 dwall_C.111 01713 dwall_D.111 01714 dwall_E.111 01715 dwall_F.111 01716 dwarf.111 01717 dwarf.112 01718 dwarf_p.111 01719 dwarf_p.112 01720 dwarf_p.131 01721 dwarf_p.132 01722 dwarf_p.151 01723 dwarf_p.152 01724 dwarf_p.171 01725 dwarf_p.172 01726 dwarf_pr.111 01727 dwarf_pr.112 01728 dwarf_pr.113 01729 dwarf_stoned.111 01730 dwarf_wiz.111 01731 dwarf_wiz.112 01732 dwarf_wiz.113 01733 dwindow_0.111 01734 dwindow_1.111 01735 dwindow_2.111 01736 dwindow_3.111 01737 dwolf.131 01738 dwolf.132 01739 dwolf.171 01740 dwolf.172 01741 earth.111 01742 earth_shield.111 01743 earth_shield.112 01744 earth_shield.113 01745 earth_shield.114 01746 earthwall.111 01747 earthwall.112 01748 earthwall.113 01749 ectoplasm.111 01750 elec_dr.x11 01751 elec_dr.x12 01752 elec_dr_spellcasting.x11 01753 elec_dr_spellcasting.x12 01754 elec_dr_spellcasting.x13 01755 elec_drag.131 01756 elec_drag.132 01757 elec_drag.171 01758 elec_drag.172 01759 elem_air.111 01760 elem_air.112 01761 elem_dust.111 01762 elem_dust.112 01763 elem_earth.111 01764 elem_earth.112 01765 elem_fire.111 01766 elem_fire.112 01767 elem_fire_black.111 01768 elem_fire_black.112 01769 elem_water.111 01770 elem_water.112 01771 elf.111 01772 elf.112 01773 elf.131 01774 elf.132 01775 elf.151 01776 elf.152 01777 elf.171 01778 elf.172 01779 elf_1.111 01780 elf_1.112 01781 elf_1.113 01782 elf_guard.111 01783 elf_guard.112 01784 elf_guard.113 01785 elf_lad.111 01786 elf_lad.112 01787 elf_lass.111 01788 elf_lass.112 01789 elf_stoned.111 01790 elven_bow.111 01791 elven_robe.111 01792 elvenboots.111 01793 emerald.111 01794 emerald.112 01795 emerald_exceptional.111 01796 emerald_flawless.111 01797 empty.111 01798 empty_S.111 01799 ench_armour.111 01800 enchantment.111 01801 enchantment.112 01802 enchantment.113 01803 enchantment.114 01804 enchantment.115 01805 ent.x11 01806 ent.x12 01807 ent.x13 01808 event_apply.111 01809 event_death.111 01810 event_drop.111 01811 event_pickup.111 01812 event_say.111 01813 event_time.111 01814 event_timer.111 01815 evergreens.111 01816 evergreens_2.111 01817 evergreens_S.111 01818 evil_ice.111 01819 evil_ice.112 01820 evil_ice.113 01821 evil_ice.114 01822 evil_master.111 01823 evil_master.112 01824 evil_master2.111 01825 evil_master2.112 01826 evil_master3.111 01827 evil_master3.112 01828 evil_master4.111 01829 evil_master4.112 01830 evilclown.111 01831 evoker.111 01832 evoker.112 01833 evoker.131 01834 evoker.132 01835 evoker.151 01836 evoker.152 01837 evoker.171 01838 evoker.172 01839 evoker_book.111 01840 ewall_0.111 01841 ewall_1.111 01842 ewall_2.111 01843 ewall_3.111 01844 ewall_4.111 01845 ewall_5.111 01846 ewall_6.111 01847 ewall_7.111 01848 ewall_8.111 01849 ewall_9.111 01850 ewall_A.111 01851 ewall_B.111 01852 ewall_C.111 01853 ewall_D.111 01854 ewall_E.111 01855 ewall_F.111 01856 ewall_redpost.111 01857 ewindow_0.111 01858 ewindow_1.111 01859 excalibur.111 01860 exit.111 01861 exit.112 01862 exit.113 01863 exit.114 01864 exit.115 01865 exit.116 01866 exit.117 01867 exit.118 01868 explosion.111 01869 explosion.112 01870 explosion.113 01871 explosion2.111 01872 explosion2.112 01873 explosion2.113 01874 eye.111 01875 eyeglasses.111 01876 eyes.111 01877 eyeshield.111 01878 face_of_death.111 01879 fae_drag.131 01880 fae_drag.132 01881 fae_drag.171 01882 fae_drag.172 01883 falchion.111 01884 falling_rocks.111 01885 falls.111 01886 falls2.111 01887 falls3.111 01888 falls4.111 01889 farmer.111 01890 farmer.112 01891 farmhouse.x11 01892 farmland.111 01893 fatman.111 01894 fatwoman.111 01895 fcross-blue.111 01896 fcross-white.111 01897 fear.111 01898 fear.112 01899 fear.113 01900 fenx.110 01901 fenx.111 01902 fenx.112 01903 fenx.130 01904 fenx.131 01905 fenx.132 01906 fenx.150 01907 fenx.151 01908 fenx.152 01909 fenx.170 01910 fenx.171 01911 fenx.172 01912 fenx_bow.111 01913 fenx_bow.112 01914 fenx_bow.113 01915 fenx_bow.131 01916 fenx_bow.132 01917 fenx_bow.133 01918 fenx_bow.151 01919 fenx_bow.152 01920 fenx_bow.153 01921 fenx_bow.171 01922 fenx_bow.172 01923 fenx_bow.173 01924 fenx_class_warrior.110 01925 fenx_class_warrior.111 01926 fenx_class_warrior.112 01927 fenx_class_warrior.130 01928 fenx_class_warrior.131 01929 fenx_class_warrior.132 01930 fenx_class_warrior.150 01931 fenx_class_warrior.151 01932 fenx_class_warrior.152 01933 fenx_class_warrior.170 01934 fenx_class_warrior.171 01935 fenx_class_warrior.172 01936 fenx_double_sword.111 01937 fenx_double_sword.112 01938 fenx_double_sword.131 01939 fenx_double_sword.132 01940 fenx_double_sword.151 01941 fenx_double_sword.152 01942 fenx_double_sword.171 01943 fenx_double_sword.172 01944 fenx_karate.110 01945 fenx_karate.111 01946 fenx_karate.130 01947 fenx_karate.131 01948 fenx_karate.150 01949 fenx_karate.151 01950 fenx_karate.170 01951 fenx_karate.171 01952 fenx_praying.110 01953 fenx_praying.111 01954 fenx_praying.130 01955 fenx_praying.131 01956 fenx_praying.150 01957 fenx_praying.151 01958 fenx_praying.170 01959 fenx_praying.171 01960 fenx_punching.110 01961 fenx_punching.111 01962 fenx_punching.112 01963 fenx_punching.130 01964 fenx_punching.131 01965 fenx_punching.132 01966 fenx_punching.150 01967 fenx_punching.151 01968 fenx_punching.152 01969 fenx_punching.170 01970 fenx_punching.171 01971 fenx_punching.172 01972 fenx_read_scroll.111 01973 fenx_read_scroll.112 01974 fenx_read_scroll.113 01975 fenx_read_scroll.131 01976 fenx_read_scroll.132 01977 fenx_read_scroll.133 01978 fenx_read_scroll.151 01979 fenx_read_scroll.152 01980 fenx_read_scroll.153 01981 fenx_read_scroll.171 01982 fenx_read_scroll.172 01983 fenx_read_scroll.173 01984 fenx_singing.110 01985 fenx_singing.111 01986 fenx_singing.112 01987 fenx_singing.130 01988 fenx_singing.131 01989 fenx_singing.132 01990 fenx_singing.150 01991 fenx_singing.151 01992 fenx_singing.152 01993 fenx_singing.170 01994 fenx_singing.171 01995 fenx_singing.172 01996 fenx_spellcasting.111 01997 fenx_spellcasting.112 01998 fenx_spellcasting.131 01999 fenx_spellcasting.132 02000 fenx_spellcasting.151 02001 fenx_spellcasting.152 02002 fenx_spellcasting.171 02003 fenx_spellcasting.172 02004 fenx_sword.111 02005 fenx_sword.112 02006 fenx_sword.131 02007 fenx_sword.132 02008 fenx_sword.151 02009 fenx_sword.152 02010 fenx_sword.171 02011 fenx_sword.172 02012 fernsdense.111 02013 fernssparse.111 02014 fiend.111 02015 fiend.112 02016 fighter.111 02017 fighter.112 02018 fighter.113 02019 figurine_clay.111 02020 figurine_flame.111 02021 figurine_gen.111 02022 figurine_great_wave.111 02023 figurine_stone.111 02024 figurine_whirlwind.111 02025 finger.111 02026 fire_drag.131 02027 fire_drag.132 02028 fire_drag.171 02029 fire_drag.172 02030 fire_troll.x11 02031 fire_troll.x12 02032 fire_troll.x13 02033 fireball.111 02034 fireball.112 02035 fireball.113 02036 fireball_S.111 02037 fireball_S.112 02038 fireball_S.113 02039 firebolt.111 02040 firebolt.121 02041 firebolt.131 02042 firebolt.141 02043 firebolt.151 02044 firebolt.161 02045 firebolt.171 02046 firebolt.181 02047 fireborn.111 02048 fireborn.222 02049 fireborn.333 02050 fireborn.444 02051 firebrand.111 02052 firebrand.112 02053 firebrand.113 02054 firebullet.111 02055 firebullet.121 02056 firebullet.131 02057 firebullet.141 02058 firebullet.151 02059 firebullet.161 02060 firebullet.171 02061 firebullet.181 02062 firechest.111 02063 fireholes.111 02064 fireplace.111 02065 fireplace.112 02066 fireplace.113 02067 firepot.111 02068 firepot.112 02069 firepot.113 02070 firepot.114 02071 firestar.111 02072 firestar.112 02073 firestar.113 02074 firewall_1.111 02075 firewall_2.111 02076 firewall_3.111 02077 firewall_4.111 02078 firewall_5.111 02079 firewall_6.111 02080 firewall_7.111 02081 firewall_8.111 02082 fish_1.111 02083 fish_2.111 02084 fish_3.111 02085 fish_4.111 02086 fish_5.111 02087 fish_6.111 02088 fishboat.x11 02089 fishfood.111 02090 fishing_pole.111 02091 fishing_pole2.111 02092 fix_mercury.111 02093 fix_mercury.112 02094 flagstone.111 02095 flagstone_0.111 02096 flagstone_1.111 02097 flagstone_2.111 02098 flagstone_3.111 02099 flagstone_4.111 02100 flagstone_5.111 02101 flagstone_6.111 02102 flagstone_7.111 02103 flagstone_8.111 02104 flagstone_9.111 02105 flagstone_A.111 02106 flagstone_B.111 02107 flagstone_C.111 02108 flagstone_D.111 02109 flagstone_E.111 02110 flagstone_F.111 02111 flagstone_S.111 02112 flagstone_win1.111 02113 flamingtower.x11 02114 flamingtower.x12 02115 flamingtower.x13 02116 flamingtower.x14 02117 flint_and_steel.111 02118 flowers.111 02119 fly_ant.131 02120 fly_ant.132 02121 fly_ant.171 02122 fly_ant.172 02123 fog.111 02124 fog.112 02125 fog_2.111 02126 food.111 02127 foot.111 02128 footbridge_0.111 02129 footbridge_1.111 02130 footbridge_2.111 02131 footbridge_3.111 02132 footbridge_4.111 02133 footbridge_5.111 02134 footbridge_6.111 02135 footbridge_7.111 02136 footbridge_8.111 02137 footbridge_9.111 02138 footbridge_A.111 02139 footbridge_B.111 02140 footbridge_C.111 02141 footbridge_D.111 02142 footbridge_E.111 02143 footbridge_F.111 02144 footpath_0.111 02145 footpath_1.111 02146 footpath_2.111 02147 footpath_3.111 02148 footpath_4.111 02149 footpath_5.111 02150 footpath_6.111 02151 footpath_7.111 02152 footpath_8.111 02153 footpath_9.111 02154 footpath_A.111 02155 footpath_B.111 02156 footpath_C.111 02157 footpath_D.111 02158 footpath_E.111 02159 footpath_F.111 02160 ford_ns.111 02161 ford_we.111 02162 forestsparse.111 02163 forge.111 02164 forge.112 02165 forge.113 02166 fort.x11 02167 fort_sym.111 02168 fountain.111 02169 fountain.112 02170 fountain.113 02171 fried_egg.111 02172 frost_hammer.111 02173 frost_hammer.112 02174 frost_hammer.113 02175 frost_hammer.114 02176 frostbolt.111 02177 frostbolt.121 02178 frostbolt.131 02179 frostbolt.141 02180 frostbolt.151 02181 frostbolt.161 02182 frostbolt.171 02183 frostbolt.181 02184 frostbrand.111 02185 frostshield.111 02186 frypan_closed.111 02187 frypan_opened.111 02188 fullhelmet.111 02189 fungus.111 02190 fungus.112 02191 fungus.113 02192 fungus.114 02193 fungus.115 02194 furious_floor.111 02195 g_worm.x31 02196 g_worm.x32 02197 g_worm.x71 02198 g_worm.x72 02199 gaelotroll.x31 02200 gaelotroll.x32 02201 gaelotroll.x33 02202 gaelotroll.x71 02203 gaelotroll.x72 02204 gaelotroll.x73 02205 gale.111 02206 galleon.111 02207 gard_gate.111 02208 gard_gate.112 02209 gard_gate.113 02210 gard_gate.114 02211 gardengnome.111 02212 gardengnome.112 02213 gargoyle.111 02214 gargoyle.112 02215 gate_1.111 02216 gate_1.112 02217 gate_1.113 02218 gate_1.114 02219 gate_1.115 02220 gate_1.116 02221 gate_1.117 02222 gate_2.111 02223 gate_2.112 02224 gate_2.113 02225 gate_2.114 02226 gate_2.115 02227 gauntlet_s.111 02228 gem.111 02229 gem.112 02230 gen_mushroom.111 02231 generic_rune.111 02232 ghast.111 02233 ghast.112 02234 ghast.113 02235 ghost.111 02236 ghost.112 02237 ghost_gen.111 02238 giant.x11 02239 giant.x12 02240 giant_bat.111 02241 giant_bat.112 02242 giant_bat.113 02243 giant_chief.x11 02244 giant_chief.x12 02245 giant_gen.111 02246 giant_leader.x11 02247 giant_leader.x12 02248 giantrat.x31 02249 giantrat.x32 02250 giantrat.x33 02251 giantrat.x71 02252 giantrat.x72 02253 giantrat.x73 02254 gir_strcon.111 02255 gir_strcon.112 02256 girdle_con.111 02257 girdle_con.112 02258 girdle_dam.111 02259 girdle_dam.112 02260 girdle_str.111 02261 girdle_str.112 02262 girdle_str.113 02263 girdle_str.114 02264 glacier.111 02265 gloves.111 02266 gloves_b.111 02267 gloves_w.111 02268 glovesofsun.111 02269 glovesofsun.112 02270 glovesofsun.113 02271 glue.111 02272 glue.112 02273 glyph.111 02274 gnoll.111 02275 gnoll.112 02276 gnoll_chief.111 02277 gnoll_gen.111 02278 gnoll_leader.111 02279 gnome.111 02280 gnome.112 02281 gnome2.111 02282 gnome2.112 02283 gnome_p.111 02284 gnome_p.112 02285 gnome_p.131 02286 gnome_p.132 02287 gnome_p.151 02288 gnome_p.152 02289 gnome_p.171 02290 gnome_p.172 02291 gnome_stoned.111 02292 goblin.111 02293 goblin.112 02294 goblin.131 02295 goblin.132 02296 goblin.151 02297 goblin.152 02298 goblin.171 02299 goblin.172 02300 goblin_chief.111 02301 goblin_gen.111 02302 goblin_head.111 02303 goblin_leader.111 02304 god_finger.111 02305 god_finger.112 02306 god_grace_limit.111 02307 god_power.111 02308 god_power.112 02309 god_power.113 02310 god_power.114 02311 gol.x11 02312 gol.x12 02313 gold_converter.111 02314 goldbar.111 02315 goldblock.111 02316 goldcoin.111 02317 goldflagstone.111 02318 goldfloor.111 02319 goldfloor2.111 02320 goldgrass.111 02321 goldround.111 02322 golem.111 02323 golem.112 02324 golem_red.111 02325 golem_red.112 02326 goose.131 02327 goose.132 02328 goose.171 02329 goose.172 02330 gps.111 02331 gram.111 02332 gram.112 02333 gram.113 02334 gram.114 02335 grand_piano_black.x11 02336 grand_piano_white.x11 02337 graphite.111 02338 grass.111 02339 grass_S.111 02340 grass_br_gr.111 02341 grassbrown.111 02342 grassdark.111 02343 grassdark_S.111 02344 grassmedium.111 02345 grasspond.111 02346 grate_1.111 02347 grate_1.112 02348 grate_1.113 02349 grate_1.114 02350 grate_1.115 02351 grate_1.116 02352 grate_1.117 02353 grate_1.118 02354 grate_2.111 02355 grate_2.112 02356 grate_2.113 02357 grate_2.114 02358 grate_2.115 02359 grate_2.116 02360 grate_2.117 02361 grate_2.118 02362 gratedoor1.111 02363 gratedoor2.111 02364 gravestone.111 02365 gravestone2.111 02366 gray-white-h-marble.111 02367 gray-white-h-marble.112 02368 graymarble.111 02369 greater_dwarven_guard.111 02370 greater_dwarven_guard.112 02371 green-beige-c-marble.111 02372 green-beige-c-marble.112 02373 green-beige-c-marble.113 02374 green-beige-c-marble.114 02375 green-white-c-marble.111 02376 green-white-c-marble.112 02377 green-white-c-marble.113 02378 green-white-c-marble.114 02379 green-white-h-marble.111 02380 green-white-h-marble.112 02381 green_dragon2.151 02382 green_dragon2.152 02383 green_dragon2.171 02384 green_dragon2.172 02385 green_dragon3.151 02386 green_dragon3.152 02387 green_dragon3.171 02388 green_dragon3.172 02389 greendragonmail.111 02390 greenmarble.111 02391 greenmarblelight.111 02392 greenmarblemedium.111 02393 greenslime.111 02394 greenslime.112 02395 grey_drag.131 02396 grey_drag.132 02397 grey_drag.171 02398 grey_drag.172 02399 grimreaper.111 02400 grimreaper.112 02401 grimreaper.113 02402 grimreaper.114 02403 gryphon.x31 02404 gryphon.x32 02405 gryphon.x33 02406 gryphon.x34 02407 gryphon.x71 02408 gryphon.x72 02409 gryphon.x73 02410 gryphon.x74 02411 gstone_4.111 02412 gu_horn.111 02413 gu_horn.112 02414 gu_horn.113 02415 gu_horn.114 02416 gu_horn.115 02417 guard_hard.111 02418 guard_ho_1.111 02419 guard_ho_2.111 02420 guard_ho_4.111 02421 guard_ho_8.111 02422 guard_ligh.111 02423 guard_med.111 02424 guild.x11 02425 guild_fant.x11 02426 guild_northwest.x11 02427 guild_west.x11 02428 guildmaste.111 02429 gwall_0.111 02430 gwall_1.111 02431 gwall_2.111 02432 gwall_3.111 02433 gwall_4.111 02434 gwall_5.111 02435 gwall_6.111 02436 gwall_7.111 02437 gwall_8.111 02438 gwall_9.111 02439 gwall_A.111 02440 gwall_B.111 02441 gwall_C.111 02442 gwall_D.111 02443 gwall_E.111 02444 gwall_F.111 02445 gwall_xa.111 02446 gwall_xb.111 02447 gwall_xc.111 02448 gwall_xd.111 02449 gypsum.111 02450 h_kobold.111 02451 h_kobold.112 02452 haggis.111 02453 half_orc_stoned.111 02454 halfling.111 02455 halfling.112 02456 halfling.131 02457 halfling.132 02458 halfling.151 02459 halfling.152 02460 halfling.171 02461 halfling.172 02462 halfling2.151 02463 halfling2.152 02464 halfling3.151 02465 halfling3.152 02466 halfling_stoned.111 02467 hammer_1.111 02468 hammer_2.101 02469 hammer_2.111 02470 hammer_2.121 02471 hammer_2.131 02472 hammer_2.141 02473 hammer_2.151 02474 hammer_2.161 02475 hammer_2.171 02476 hammer_2.181 02477 hand.111 02478 handcrossbow.111 02479 handcrossbow_bone.111 02480 handle.111 02481 handle.112 02482 hands.111 02483 hangingfirepot.111 02484 hangingfirepot.112 02485 hangingfirepot.113 02486 hangingfirepot.114 02487 harakiri.111 02488 harpsichord1.x11 02489 harpsichord2.x11 02490 harpsichord3.x11 02491 harpsichord4.x11 02492 head.111 02493 healing.111 02494 healing.112 02495 healing.113 02496 healing.114 02497 healing.115 02498 heart.111 02499 hedge.111 02500 hedge.112 02501 hedge.113 02502 hedge_0.111 02503 hedge_1.111 02504 hedge_2.111 02505 hedge_3.111 02506 hedge_4.111 02507 hedge_5.111 02508 hedge_6.111 02509 hedge_7.111 02510 hedge_8.111 02511 hedge_9.111 02512 hedge_A.111 02513 hedge_B.111 02514 hedge_C.111 02515 hedge_D.111 02516 hedge_E.111 02517 hedge_F.111 02518 hellhound.131 02519 hellhound.132 02520 hellhound.133 02521 hellhound.171 02522 hellhound.172 02523 hellhound.173 02524 helmet.111 02525 helmet2.111 02526 helmet3.111 02527 helmet_bri.111 02528 helmetxray.111 02529 helmetxray.112 02530 hide_black.111 02531 hide_brown.111 02532 hide_grey.111 02533 hide_white.111 02534 high_boots.111 02535 high_boots_b.111 02536 high_boots_w.111 02537 highangel.111 02538 highangel.112 02539 highangel.113 02540 highangel.114 02541 highangel.115 02542 highangel.116 02543 highangel.117 02544 highangel.118 02545 highshield.111 02546 hills.111 02547 hills_S.111 02548 hillsrocky.111 02549 hillsrocky_S.111 02550 hole.111 02551 hole.112 02552 hole.113 02553 hole.114 02554 hole.115 02555 hole.116 02556 hole.117 02557 hole.118 02558 hole.119 02559 hole.11A 02560 hole1.111 02561 hole_white-any-c-marble.111 02562 hole_white-any-c-marble.112 02563 hole_white-any-c-marble.113 02564 hole_white-any-c-marble.114 02565 holy_effect.111 02566 holy_effect.112 02567 holy_effect.113 02568 holy_orb.111 02569 holy_priest.111 02570 holy_priest.211 02571 holy_priest.311 02572 holy_symbol.111 02573 holy_symbol_calling.111 02574 holy_symbol_dark_path.111 02575 holy_symbol_great_virtue.111 02576 holy_symbol_probity.111 02577 holy_symbol_turning.111 02578 holy_word.111 02579 holy_word.112 02580 holy_word.113 02581 holy_wrath.111 02582 holy_wrath.112 02583 holy_wrath.113 02584 holyave.111 02585 holyave.112 02586 holyave.113 02587 holyave.114 02588 holyave.115 02589 holyave.116 02590 holyave.117 02591 holyave.118 02592 holyave.119 02593 holyave.11A 02594 holyave.11B 02595 holyave.11C 02596 holyghost.111 02597 holyshield.111 02598 hooksword.111 02599 horn.111 02600 horn2.111 02601 horn3.111 02602 horn_base.111 02603 hornhelmet.111 02604 horse.131 02605 horse.171 02606 house1_east.111 02607 house2_east.111 02608 house_1.111 02609 house_1_green.111 02610 house_2.111 02611 house_3.111 02612 house_larg.x11 02613 house_larg_west.x11 02614 house_long.x11 02615 house_up.x11 02616 housesmall.111 02617 hovels.111 02618 hovels2.x11 02619 hpbar_diseased_1.111 02620 hpbar_diseased_10.111 02621 hpbar_diseased_11.111 02622 hpbar_diseased_12.111 02623 hpbar_diseased_13.111 02624 hpbar_diseased_14.111 02625 hpbar_diseased_15.111 02626 hpbar_diseased_16.111 02627 hpbar_diseased_17.111 02628 hpbar_diseased_18.111 02629 hpbar_diseased_19.111 02630 hpbar_diseased_2.111 02631 hpbar_diseased_20.111 02632 hpbar_diseased_21.111 02633 hpbar_diseased_22.111 02634 hpbar_diseased_23.111 02635 hpbar_diseased_24.111 02636 hpbar_diseased_25.111 02637 hpbar_diseased_26.111 02638 hpbar_diseased_27.111 02639 hpbar_diseased_28.111 02640 hpbar_diseased_29.111 02641 hpbar_diseased_3.111 02642 hpbar_diseased_30.111 02643 hpbar_diseased_4.111 02644 hpbar_diseased_5.111 02645 hpbar_diseased_6.111 02646 hpbar_diseased_7.111 02647 hpbar_diseased_8.111 02648 hpbar_diseased_9.111 02649 hpbar_poisoned_1.111 02650 hpbar_poisoned_10.111 02651 hpbar_poisoned_11.111 02652 hpbar_poisoned_12.111 02653 hpbar_poisoned_13.111 02654 hpbar_poisoned_14.111 02655 hpbar_poisoned_15.111 02656 hpbar_poisoned_16.111 02657 hpbar_poisoned_17.111 02658 hpbar_poisoned_18.111 02659 hpbar_poisoned_19.111 02660 hpbar_poisoned_2.111 02661 hpbar_poisoned_20.111 02662 hpbar_poisoned_21.111 02663 hpbar_poisoned_22.111 02664 hpbar_poisoned_23.111 02665 hpbar_poisoned_24.111 02666 hpbar_poisoned_25.111 02667 hpbar_poisoned_26.111 02668 hpbar_poisoned_27.111 02669 hpbar_poisoned_28.111 02670 hpbar_poisoned_29.111 02671 hpbar_poisoned_3.111 02672 hpbar_poisoned_30.111 02673 hpbar_poisoned_4.111 02674 hpbar_poisoned_5.111 02675 hpbar_poisoned_6.111 02676 hpbar_poisoned_7.111 02677 hpbar_poisoned_8.111 02678 hpbar_poisoned_9.111 02679 hpbar_poisoned_diseased_1.111 02680 hpbar_poisoned_diseased_10.111 02681 hpbar_poisoned_diseased_11.111 02682 hpbar_poisoned_diseased_12.111 02683 hpbar_poisoned_diseased_13.111 02684 hpbar_poisoned_diseased_14.111 02685 hpbar_poisoned_diseased_15.111 02686 hpbar_poisoned_diseased_16.111 02687 hpbar_poisoned_diseased_17.111 02688 hpbar_poisoned_diseased_18.111 02689 hpbar_poisoned_diseased_19.111 02690 hpbar_poisoned_diseased_2.111 02691 hpbar_poisoned_diseased_20.111 02692 hpbar_poisoned_diseased_21.111 02693 hpbar_poisoned_diseased_22.111 02694 hpbar_poisoned_diseased_23.111 02695 hpbar_poisoned_diseased_24.111 02696 hpbar_poisoned_diseased_25.111 02697 hpbar_poisoned_diseased_26.111 02698 hpbar_poisoned_diseased_27.111 02699 hpbar_poisoned_diseased_28.111 02700 hpbar_poisoned_diseased_29.111 02701 hpbar_poisoned_diseased_3.111 02702 hpbar_poisoned_diseased_30.111 02703 hpbar_poisoned_diseased_4.111 02704 hpbar_poisoned_diseased_5.111 02705 hpbar_poisoned_diseased_6.111 02706 hpbar_poisoned_diseased_7.111 02707 hpbar_poisoned_diseased_8.111 02708 hpbar_poisoned_diseased_9.111 02709 hpbar_standard_1.111 02710 hpbar_standard_10.111 02711 hpbar_standard_11.111 02712 hpbar_standard_12.111 02713 hpbar_standard_13.111 02714 hpbar_standard_14.111 02715 hpbar_standard_15.111 02716 hpbar_standard_16.111 02717 hpbar_standard_17.111 02718 hpbar_standard_18.111 02719 hpbar_standard_19.111 02720 hpbar_standard_2.111 02721 hpbar_standard_20.111 02722 hpbar_standard_21.111 02723 hpbar_standard_22.111 02724 hpbar_standard_23.111 02725 hpbar_standard_24.111 02726 hpbar_standard_25.111 02727 hpbar_standard_26.111 02728 hpbar_standard_27.111 02729 hpbar_standard_28.111 02730 hpbar_standard_29.111 02731 hpbar_standard_3.111 02732 hpbar_standard_30.111 02733 hpbar_standard_4.111 02734 hpbar_standard_5.111 02735 hpbar_standard_6.111 02736 hpbar_standard_7.111 02737 hpbar_standard_8.111 02738 hpbar_standard_9.111 02739 human.111 02740 human.112 02741 human.131 02742 human.132 02743 human.151 02744 human.152 02745 human.171 02746 human.172 02747 human_stoned.111 02748 huntersbow.111 02749 hut.111 02750 hut_hori.x11 02751 hut_vert.x11 02752 ice.111 02753 ice2.111 02754 ice_warrior.x11 02755 icecube.111 02756 icestorm.111 02757 icestorm.112 02758 icestorm.113 02759 icor.111 02760 icor.112 02761 icor.113 02762 icor.114 02763 icor.115 02764 icor.116 02765 icor.117 02766 icor.118 02767 icor.119 02768 icor.11A 02769 icor.11B 02770 icor.11C 02771 idaten.111 02772 idaten.112 02773 ihole.111 02774 imp.131 02775 imp.171 02776 imperial.111 02777 improve_cha.111 02778 improve_con.111 02779 improve_damage.111 02780 improve_dex.111 02781 improve_enchantment.111 02782 improve_int.111 02783 improve_pow.111 02784 improve_str.111 02785 improve_weight.111 02786 improve_wis.111 02787 infernaldevice_1.111 02788 inn.x11 02789 inn_fant.x11 02790 insect_sting.111 02791 insect_wing.111 02792 intermediate_window_1.111 02793 intermediate_window_2.111 02794 inv-curse.111 02795 inv-damn.111 02796 inv-equip.111 02797 inv-lock.111 02798 inv-magic.111 02799 inv-unpaid.111 02800 ipond.111 02801 iron_gate1.111 02802 iron_gate1.112 02803 iron_gate1.113 02804 iron_gate1.114 02805 iron_gate1.115 02806 iron_gate1.116 02807 iron_gate1.117 02808 iron_gate1.118 02809 iron_gate2.111 02810 iron_gate2.112 02811 iron_gate2.113 02812 iron_gate2.114 02813 iron_gate2.115 02814 iron_gate2.116 02815 ironbar.111 02816 istone.111 02817 ixalovh.x11 02818 ixalovh.x12 02819 ixalovh.x13 02820 jade_coin.111 02821 jade_converter.111 02822 jade_converter2.111 02823 jadedragon_figurine.111 02824 jcity_0.111 02825 jcity_1.111 02826 jcity_2.111 02827 jcity_3.111 02828 jcity_4.111 02829 jcity_5.111 02830 jcity_6.111 02831 jcity_7.111 02832 jcity_8.111 02833 jcity_9.111 02834 jcity_A.111 02835 jcity_B.111 02836 jcity_C.111 02837 jcity_D.111 02838 jcity_E.111 02839 jcity_F.111 02840 jessyb.x11 02841 jessyb.x12 02842 jessyb.x13 02843 jeweler_bench.111 02844 jungle_1.111 02845 jungle_2.111 02846 jungle_S.111 02847 k_dagger.111 02848 kama_1.111 02849 kama_2.111 02850 katana_1.111 02851 keep.x11 02852 keep.x12 02853 keep_sym.111 02854 key1.111 02855 key2.111 02856 key_blue.111 02857 key_brown.111 02858 key_darkgray.111 02859 key_darkgreen.111 02860 key_gray.111 02861 key_green.111 02862 key_magenta.111 02863 key_red.111 02864 key_ring.111 02865 key_white.111 02866 killerbee.111 02867 killerbee.112 02868 knight.111 02869 knight.112 02870 knight.113 02871 knight.114 02872 knight.115 02873 knowledge_generic.111 02874 knowledge_gods.111 02875 knowledge_messages.111 02876 knowledge_monsters.111 02877 knowledge_recipes.111 02878 kobold.111 02879 kobold.112 02880 kobold_gen.111 02881 kog.111 02882 l_shop1.x11 02883 ladder2_do.111 02884 ladder2_up.111 02885 ladder_down.111 02886 ladder_up.111 02887 lamia.x31 02888 lamia.x32 02889 lamia.x71 02890 lamia.x72 02891 lampost.111 02892 lantern.111 02893 lantern2.111 02894 lantern2_off.111 02895 lantern_off.111 02896 lapron.111 02897 large_hdoor.111 02898 large_vdoor.111 02899 largestone.111 02900 lava.111 02901 lava.112 02902 lava.113 02903 lava.114 02904 lava.115 02905 lava_S.111 02906 lava_S.112 02907 lava_S.113 02908 lava_S.114 02909 lava_S.115 02910 lava_blake_0.111 02911 lava_blake_1.111 02912 lava_blake_2.111 02913 lava_blake_3.111 02914 lava_blake_4.111 02915 lava_blake_5.111 02916 lava_blake_6.111 02917 lava_blake_7.111 02918 lava_blake_8.111 02919 lava_blake_9.111 02920 lava_blake_A.111 02921 lava_blake_B.111 02922 lava_blake_C.111 02923 lava_blake_D.111 02924 lava_blake_E.111 02925 lava_blake_F.111 02926 lava_branch_125.111 02927 lava_branch_125.211 02928 lava_branch_135.111 02929 lava_branch_137.111 02930 lava_branch_145.111 02931 lava_branch_145.211 02932 lava_branch_156.111 02933 lava_branch_156.211 02934 lava_branch_157.111 02935 lava_branch_158.111 02936 lava_branch_158.211 02937 lava_branch_237.111 02938 lava_branch_237.211 02939 lava_branch_347.111 02940 lava_branch_347.211 02941 lava_branch_357.111 02942 lava_branch_367.111 02943 lava_branch_367.211 02944 lava_branch_378.111 02945 lava_branch_378.211 02946 lava_bridge_15.111 02947 lava_bridge_37.111 02948 lava_ford_ns.111 02949 lava_ford_we.111 02950 lava_river_14.111 02951 lava_river_15.111 02952 lava_river_16.111 02953 lava_river_25.111 02954 lava_river_26.111 02955 lava_river_26.211 02956 lava_river_26.311 02957 lava_river_27.111 02958 lava_river_36.111 02959 lava_river_37.111 02960 lava_river_38.111 02961 lava_river_47.111 02962 lava_river_48.111 02963 lava_river_48.211 02964 lava_river_48.311 02965 lava_river_58.111 02966 lava_s.111 02967 lava_s.112 02968 lava_s.113 02969 lava_sea.111 02970 lava_sea.112 02971 lava_sea.113 02972 lava_sea.114 02973 lava_well.111 02974 lbull_wall.101 02975 lbull_wall.111 02976 lbull_wall.121 02977 lbull_wall.131 02978 lbull_wall.141 02979 lbull_wall.151 02980 lbull_wall.161 02981 lbull_wall.171 02982 lbull_wall.181 02983 lbullet.111 02984 lbullet.121 02985 lbullet.131 02986 lbullet.141 02987 lbullet.151 02988 lbullet.161 02989 lbullet.171 02990 lbullet.181 02991 ldoor1.111 02992 ldoor2.111 02993 ldoor_blue1.111 02994 ldoor_blue2.111 02995 ldoor_brown1.111 02996 ldoor_brown2.111 02997 ldoor_white1.111 02998 ldoor_white2.111 02999 lead.111 03000 leadbar.111 03001 leather_ar.111 03002 leech.131 03003 leech.132 03004 leech.133 03005 leech.171 03006 leech.172 03007 leech.173 03008 leg.111 03009 leg_mutton.111 03010 lesser_dwarven_guard.111 03011 lesser_dwarven_guard.112 03012 letter.111 03013 lev_boots.111 03014 lever.111 03015 lever.112 03016 lich.111 03017 lich.112 03018 lich.113 03019 light_bulb_1.111 03020 light_bulb_2.111 03021 light_bulb_3.111 03022 light_bulb_4.111 03023 light_wall.101 03024 light_wall.111 03025 light_wall.121 03026 light_wall.131 03027 light_wall.141 03028 light_wall.151 03029 light_wall.161 03030 light_wall.171 03031 light_wall.181 03032 lightgreenmarble.111 03033 lighthouse.x11 03034 lighthouse_northwest.x11 03035 lighthouse_west.x11 03036 lightmagent-green-p-marble.111 03037 lightmagent-green-p-marble.112 03038 lightmagent-green-p-marble.113 03039 lightmagent-green-p-marble.114 03040 lightmagent-green-p-marble.121 03041 lightmagent-green-p-marble.122 03042 lightmagent-green-p-marble.123 03043 lightmagent-green-p-marble.124 03044 lightmagentamarble.111 03045 lightning.111 03046 lightning.121 03047 lightning.131 03048 lightning.141 03049 lightning.151 03050 lightning.161 03051 lightning.171 03052 lightning.181 03053 lightning_bow.111 03054 liteangel.111 03055 liteangel.112 03056 liteangel.113 03057 liteangel.114 03058 liv_chaos.111 03059 liv_chaos.222 03060 liv_chaos.333 03061 liv_chaos.444 03062 liver.111 03063 lmornstar.111 03064 loaf.111 03065 lockpicks.111 03066 lokanth.131 03067 lokanth.132 03068 lokanth.171 03069 lokanth.172 03070 longbow.111 03071 longship.x11 03072 longtable_0.111 03073 longtable_1.111 03074 longtable_2.111 03075 longtable_3.111 03076 longtable_4.111 03077 longtable_5.111 03078 longtable_6.111 03079 longtable_7.111 03080 longtable_8.111 03081 longtable_9.111 03082 longtable_A.111 03083 longtable_B.111 03084 longtable_C.111 03085 longtable_D.111 03086 longtable_E.111 03087 longtable_F.111 03088 loose_magic.111 03089 loose_magic.112 03090 loose_magic.113 03091 loose_magic.114 03092 lord_e.111 03093 lord_e.112 03094 low_boots.111 03095 lspear.111 03096 lstone.111 03097 lsword.111 03098 luggage.111 03099 luggage.112 03100 luggage.113 03101 luggage.114 03102 luggage.115 03103 luggage.116 03104 luggage.117 03105 luggage.118 03106 lyth_temple.111 03107 mabu.x11 03108 mabu.x12 03109 mabu.x13 03110 mace_1.111 03111 mace_2.111 03112 machine.x11 03113 madman.111 03114 madman.112 03115 madman_gen.111 03116 mage.111 03117 mage.112 03118 mage.131 03119 mage.132 03120 mage.151 03121 mage.152 03122 mage.171 03123 mage.172 03124 magentamarble.111 03125 magentamarblemedium.111 03126 magi_staff.111 03127 magi_staff.112 03128 magi_staff.113 03129 magic_bow.111 03130 magic_bow.112 03131 magic_bow.113 03132 magic_bow.114 03133 magic_ear.111 03134 magic_miss.111 03135 magic_miss.121 03136 magic_miss.131 03137 magic_miss.141 03138 magic_miss.151 03139 magic_miss.161 03140 magic_miss.171 03141 magic_miss.181 03142 magic_portal.111 03143 magic_portal.112 03144 magic_portal.113 03145 magic_portal.114 03146 magic_portal.115 03147 magic_portal.116 03148 magic_portal.117 03149 magic_portal.118 03150 magic_portal.119 03151 magic_portal.11A 03152 magic_portal.11B 03153 magic_portal.11C 03154 magic_portal.11D 03155 magic_portal.11E 03156 magic_portal.11F 03157 magic_portal.11G 03158 magic_portal.11H 03159 magic_portal.11I 03160 magic_portal.11J 03161 magic_portal.11K 03162 magic_portal.11L 03163 magic_portal.11M 03164 magic_resist.111 03165 magicmouth.111 03166 magma.111 03167 magma.112 03168 magma.113 03169 magma.114 03170 magnifier.111 03171 mailbox.111 03172 man.131 03173 man.151 03174 man.171 03175 man2.131 03176 man2.151 03177 man2.171 03178 manaball.111 03179 manaball.112 03180 manaball.113 03181 manaball.114 03182 manablast.111 03183 manablast.112 03184 manablast.113 03185 manablast.114 03186 manabolt.111 03187 manabolt.121 03188 manabolt.131 03189 manabolt.141 03190 manabolt.151 03191 manabolt.161 03192 manabolt.171 03193 manabolt.181 03194 manabullet.111 03195 manabullet.121 03196 manabullet.131 03197 manabullet.141 03198 manabullet.151 03199 manabullet.161 03200 manabullet.171 03201 manabullet.181 03202 manhole.111 03203 manhole.112 03204 manhole.113 03205 manhole.114 03206 map.111 03207 marble.111 03208 marble_blgr.111 03209 market1.111 03210 market1_east.111 03211 market2.111 03212 market2_east.111 03213 market3.111 03214 market3_east.111 03215 marsh.111 03216 marsh_S.111 03217 masamune.111 03218 masamune.112 03219 masamune.113 03220 masamune.114 03221 mastif.131 03222 mastif.132 03223 mastif.133 03224 mastif.171 03225 mastif.172 03226 mastif.173 03227 mat.111 03228 mbaltar_none.111 03229 mbbed_save.111 03230 mbblackmarble.111 03231 mbbook.111 03232 mbbrazier.111 03233 mbbutton.111 03234 mbdwall_0.111 03235 mbewall_0.111 03236 mbfireplace.111 03237 mbfirepot.111 03238 mbfountain.111 03239 mbgreenmarble.111 03240 mbhammer.111 03241 mbiron_gate1.111 03242 mbiron_gate2.111 03243 mbiron_gate_inv1.111 03244 mbiron_gate_inv2.111 03245 mblever.111 03246 mblightmagentamarble.111 03247 mbmarble.111 03248 mbpedestal.111 03249 mbpinkmarble.111 03250 mbredcwall_0.111 03251 mbsign.111 03252 mbstove.111 03253 mbswall_0.111 03254 mbwall.111 03255 mbwestcwall_0.111 03256 mbwindow.111 03257 mbwoodfloor.111 03258 mbwoodfloor2.111 03259 mdemon.x11 03260 mdemon.x12 03261 mdoor.111 03262 mdoor.112 03263 mdoor.113 03264 mdoor.114 03265 mediumston.111 03266 merchant.111 03267 merchant.131 03268 merchant.171 03269 mercury.111 03270 mesangel.111 03271 mesangel.112 03272 mesangel.113 03273 mesangel.114 03274 metalrobe.111 03275 meteor.111 03276 min_oil.111 03277 mine_0.111 03278 mine_1.111 03279 mine_2.111 03280 mine_3.111 03281 mine_4.111 03282 mine_5.111 03283 mine_6.111 03284 mine_7.111 03285 mine_8.111 03286 mine_9.111 03287 mine_A.111 03288 mine_B.111 03289 mine_C.111 03290 mine_D.111 03291 mine_E.111 03292 mine_F.111 03293 mine_ne.111 03294 mine_nw.111 03295 mine_se.111 03296 mine_sw.111 03297 minedoor_4.x11 03298 minedoor_4.x12 03299 minedoor_4.x13 03300 minedoor_4.x14 03301 minedoor_4.x15 03302 minedoor_4.x16 03303 minedoor_4.x17 03304 minedoor_4.x18 03305 minedoor_4.x19 03306 minedoor_8.x11 03307 minedoor_8.x12 03308 minedoor_8.x13 03309 minedoor_8.x14 03310 minedoor_8.x15 03311 minedoor_8.x16 03312 minedoor_8.x17 03313 minedoor_8.x18 03314 minedoor_8.x19 03315 minihouse.111 03316 mint.111 03317 mithril.111 03318 mithril.112 03319 mithril.113 03320 mithril.114 03321 mithril_ar.111 03322 mithril_ar.112 03323 mithril_ar.113 03324 mithril_ar_ele.111 03325 mithril_ar_ele.112 03326 mithril_ar_ele.113 03327 mjoellnir.111 03328 moat_0.111 03329 moat_1.111 03330 moat_2.111 03331 moat_3.111 03332 moat_4.111 03333 moat_5.111 03334 moat_6.111 03335 moat_7.111 03336 moat_8.111 03337 moat_9.111 03338 moat_A.111 03339 moat_B.111 03340 moat_C.111 03341 moat_D.111 03342 moat_E.111 03343 moat_F.111 03344 monk.111 03345 monk.112 03346 monk.131 03347 monk.132 03348 monk.151 03349 monk.152 03350 monk.171 03351 monk.172 03352 monument.111 03353 mornstar.111 03354 mos_temple.111 03355 moun_cave1.111 03356 moun_cave2.111 03357 mountain1.111 03358 mountain1_rivlets.111 03359 mountain1_snow.111 03360 mountain2.111 03361 mountain2_rivlets.111 03362 mountain2_snow.111 03363 mountain3.111 03364 mountain4.111 03365 mountain5.111 03366 mountain_2.x11 03367 mountain_S.111 03368 mountain_dwarf.111 03369 mountain_dwarf.112 03370 mountain_dwarf.131 03371 mountain_dwarf.132 03372 mountain_dwarf.151 03373 mountain_dwarf.152 03374 mountain_dwarf.171 03375 mountain_dwarf.172 03376 mountain_foilage.111 03377 mournblade.111 03378 mouse.111 03379 mouse.112 03380 mouse_gen.111 03381 mudman.111 03382 mudman.112 03383 mushman1.111 03384 mushman1.112 03385 mushman1.131 03386 mushman1.132 03387 mushman1.151 03388 mushman1.152 03389 mushman1.171 03390 mushman1.172 03391 mushroom_1.111 03392 mushroom_2.111 03393 mushroom_3.111 03394 mystic_fist.111 03395 mystic_fist.112 03396 mystic_fist.113 03397 naz_report.111 03398 nazgul.111 03399 nazgul.112 03400 necro.111 03401 necro.112 03402 necromancer_book.111 03403 needle.111 03404 negaball.111 03405 negaball.222 03406 negaball.333 03407 negaball.444 03408 negabolt.111 03409 negabolt.121 03410 negabolt.131 03411 negabolt.141 03412 negabolt.151 03413 negabolt.161 03414 negabolt.171 03415 negabolt.181 03416 neko.111 03417 neko.112 03418 neko.113 03419 neko.114 03420 neko.115 03421 neko.116 03422 neko.117 03423 neko.118 03424 neko_kago.111 03425 nightmare.111 03426 nightmare.112 03427 nineringsword.111 03428 ninja.111 03429 ninja.112 03430 ninja.131 03431 ninja.132 03432 ninja.151 03433 ninja.152 03434 ninja.171 03435 ninja.172 03436 ninja_2.111 03437 ninja_2.112 03438 ninja_2.113 03439 no_magic.111 03440 no_spells.111 03441 northman.111 03442 northman.112 03443 note.111 03444 nugget_huge.111 03445 nugget_lar.111 03446 nugget_sma.111 03447 nun.131 03448 nun.151 03449 nun.171 03450 nunchacu_1.111 03451 nunchacu_2.111 03452 oakdoor.111 03453 oakdoor_1.111 03454 oakdoor_2.111 03455 odoor_1.111 03456 odoor_2.111 03457 odoor_2_fant_blue-green.111 03458 odoor_2_fant_blue-yellow.111 03459 odoor_2_fant_brown.111 03460 odoor_2_fant_red-white.111 03461 odoor_2_fant_red-yellow.111 03462 odoorm2.111 03463 odoorm2.112 03464 odoorm2.113 03465 odoorm2.114 03466 odoorm2bg.111 03467 odoorm2bg.112 03468 odoorm2bg.113 03469 odoorm2bg.114 03470 odoorm2rw.111 03471 odoorm2rw.112 03472 odoorm2rw.113 03473 odoorm2rw.114 03474 odoorn2.111 03475 odoorn2.112 03476 odoorn2.113 03477 odoorn2.114 03478 ogre.111 03479 ogre.112 03480 ogre_chief.111 03481 ogre_gen.111 03482 ogre_leader.111 03483 ogre_r.111 03484 ogre_r.112 03485 oil_sea.111 03486 oil_sea.112 03487 oil_sea.113 03488 oil_sea.114 03489 oil_sea_S.111 03490 oil_sea_S.112 03491 oil_sea_S.113 03492 oil_sea_S.114 03493 oilskin.111 03494 ologhi.111 03495 ologhi.112 03496 onion.111 03497 orange.111 03498 orc.111 03499 orc.112 03500 orc_chief.111 03501 orc_chief.112 03502 orc_gen.111 03503 orc_leader.111 03504 orc_leader.112 03505 orcchop.111 03506 ore_b.111 03507 ore_g.111 03508 ore_r.111 03509 ore_y.111 03510 oresmall_b.111 03511 oresmall_g.111 03512 oresmall_r.111 03513 oresmall_y.111 03514 out_tower.x11 03515 package.111 03516 pagoda_tower_east.x11 03517 palace.x11 03518 paladin.111 03519 paladin.112 03520 paladin.131 03521 paladin.132 03522 paladin.151 03523 paladin.152 03524 paladin.171 03525 paladin.172 03526 palm.111 03527 palms.111 03528 panther.131 03529 panther.132 03530 panther.133 03531 panther.171 03532 panther.172 03533 panther.173 03534 panthergen.111 03535 para_air.111 03536 para_air.112 03537 para_air.113 03538 para_air.114 03539 para_earth.111 03540 para_earth.112 03541 para_earth.113 03542 para_fire.111 03543 para_fire.112 03544 para_ice.111 03545 para_ice.112 03546 para_ice.113 03547 para_ice.114 03548 para_ice.115 03549 para_ice.116 03550 para_ice.117 03551 para_ice.118 03552 para_ice.121 03553 para_ice.122 03554 para_ice.123 03555 para_ice.124 03556 para_ice.125 03557 para_ice.126 03558 para_ice.127 03559 para_ice.128 03560 para_ice.131 03561 para_ice.132 03562 para_ice.133 03563 para_ice.134 03564 para_ice.135 03565 para_ice.136 03566 para_ice.137 03567 para_ice.138 03568 para_ice.141 03569 para_ice.142 03570 para_ice.143 03571 para_ice.144 03572 para_ice.145 03573 para_ice.146 03574 para_ice.147 03575 para_ice.148 03576 para_ice.151 03577 para_ice.152 03578 para_ice.153 03579 para_ice.154 03580 para_ice.155 03581 para_ice.156 03582 para_ice.157 03583 para_ice.158 03584 para_ice.161 03585 para_ice.162 03586 para_ice.163 03587 para_ice.164 03588 para_ice.165 03589 para_ice.166 03590 para_ice.167 03591 para_ice.168 03592 para_ice.171 03593 para_ice.172 03594 para_ice.173 03595 para_ice.174 03596 para_ice.175 03597 para_ice.176 03598 para_ice.177 03599 para_ice.178 03600 para_ice.181 03601 para_ice.182 03602 para_ice.183 03603 para_ice.184 03604 para_ice.185 03605 para_ice.186 03606 para_ice.187 03607 para_ice.188 03608 para_lava.111 03609 para_lava.112 03610 para_lava.113 03611 para_light.111 03612 para_light.112 03613 para_light.113 03614 para_mud.111 03615 para_mud.112 03616 para_mud.113 03617 para_mud.114 03618 para_mud.115 03619 para_water.111 03620 para_water.112 03621 para_water.113 03622 paralyse.111 03623 paralyse.112 03624 paralyse.113 03625 paved_0.111 03626 paved_1.111 03627 paved_2.111 03628 paved_3.111 03629 paved_4.111 03630 paved_5.111 03631 paved_6.111 03632 paved_7.111 03633 paved_8.111 03634 paved_9.111 03635 paved_A.111 03636 paved_B.111 03637 paved_C.111 03638 paved_D.111 03639 paved_E.111 03640 paved_F.111 03641 pear.111 03642 pearl.111 03643 pearl.112 03644 pearl_converter.111 03645 pedestal.111 03646 pedestal.112 03647 penta.111 03648 pentagram.x11 03649 pet_necro.111 03650 pet_necro.112 03651 phil_phos.111 03652 phil_phos.112 03653 phil_phos.113 03654 phil_salt.111 03655 phil_salt.112 03656 phil_salt.113 03657 phil_sulphur.111 03658 phil_sulphur.112 03659 phil_sulphur.113 03660 phole_1.111 03661 phole_2.111 03662 phole_3.111 03663 phosphor.111 03664 pier_0.111 03665 pier_1.111 03666 pier_2.111 03667 pier_3.111 03668 pier_4.111 03669 pier_5.111 03670 pier_6.111 03671 pier_7.111 03672 pier_8.111 03673 pier_9.111 03674 pier_A.111 03675 pier_B.111 03676 pier_C.111 03677 pier_D.111 03678 pier_E.111 03679 pier_F.111 03680 pillars.111 03681 pink-beige-c-marble.111 03682 pink-beige-c-marble.112 03683 pink-beige-c-marble.113 03684 pink-beige-c-marble.114 03685 pinkmarble.111 03686 pipe.111 03687 pipeweed.111 03688 pir_lass.111 03689 pir_lass.112 03690 pirate.111 03691 pirate.112 03692 pirate_hat.111 03693 pix_dust.111 03694 pix_wing.111 03695 pixie.111 03696 pixie.112 03697 pixie_gen.111 03698 pl_dragon_bl.111 03699 pl_dragon_bl.112 03700 pl_dragon_bl.131 03701 pl_dragon_bl.132 03702 pl_dragon_bl.151 03703 pl_dragon_bl.152 03704 pl_dragon_bl.171 03705 pl_dragon_bl.172 03706 pl_dragon_bl_spellcasting.111 03707 pl_dragon_bl_spellcasting.112 03708 pl_dragon_bl_spellcasting.113 03709 pl_dragon_bl_spellcasting.131 03710 pl_dragon_bl_spellcasting.132 03711 pl_dragon_bl_spellcasting.133 03712 pl_dragon_bl_spellcasting.151 03713 pl_dragon_bl_spellcasting.152 03714 pl_dragon_bl_spellcasting.153 03715 pl_dragon_bl_spellcasting.171 03716 pl_dragon_bl_spellcasting.172 03717 pl_dragon_bl_spellcasting.173 03718 pl_dragon_blue.111 03719 pl_dragon_blue.112 03720 pl_dragon_blue.131 03721 pl_dragon_blue.132 03722 pl_dragon_blue.151 03723 pl_dragon_blue.152 03724 pl_dragon_blue.171 03725 pl_dragon_blue.172 03726 pl_dragon_blue_spellcasting.111 03727 pl_dragon_blue_spellcasting.112 03728 pl_dragon_blue_spellcasting.113 03729 pl_dragon_blue_spellcasting.131 03730 pl_dragon_blue_spellcasting.132 03731 pl_dragon_blue_spellcasting.133 03732 pl_dragon_blue_spellcasting.151 03733 pl_dragon_blue_spellcasting.152 03734 pl_dragon_blue_spellcasting.153 03735 pl_dragon_blue_spellcasting.171 03736 pl_dragon_blue_spellcasting.172 03737 pl_dragon_blue_spellcasting.173 03738 pl_dragon_g.111 03739 pl_dragon_g.112 03740 pl_dragon_g.131 03741 pl_dragon_g.132 03742 pl_dragon_g.151 03743 pl_dragon_g.152 03744 pl_dragon_g.171 03745 pl_dragon_g.172 03746 pl_dragon_g_spellcasting.111 03747 pl_dragon_g_spellcasting.112 03748 pl_dragon_g_spellcasting.113 03749 pl_dragon_g_spellcasting.131 03750 pl_dragon_g_spellcasting.132 03751 pl_dragon_g_spellcasting.133 03752 pl_dragon_g_spellcasting.151 03753 pl_dragon_g_spellcasting.152 03754 pl_dragon_g_spellcasting.153 03755 pl_dragon_g_spellcasting.171 03756 pl_dragon_g_spellcasting.172 03757 pl_dragon_g_spellcasting.173 03758 pl_dragon_r.111 03759 pl_dragon_r.112 03760 pl_dragon_r.131 03761 pl_dragon_r.132 03762 pl_dragon_r.151 03763 pl_dragon_r.152 03764 pl_dragon_r.171 03765 pl_dragon_r.172 03766 pl_dragon_r_spellcasting.111 03767 pl_dragon_r_spellcasting.112 03768 pl_dragon_r_spellcasting.113 03769 pl_dragon_r_spellcasting.131 03770 pl_dragon_r_spellcasting.132 03771 pl_dragon_r_spellcasting.133 03772 pl_dragon_r_spellcasting.151 03773 pl_dragon_r_spellcasting.152 03774 pl_dragon_r_spellcasting.153 03775 pl_dragon_r_spellcasting.171 03776 pl_dragon_r_spellcasting.172 03777 pl_dragon_r_spellcasting.173 03778 pl_half_orc.111 03779 pl_half_orc.112 03780 pl_half_orc.131 03781 pl_half_orc.132 03782 pl_half_orc.151 03783 pl_half_orc.152 03784 pl_half_orc.171 03785 pl_half_orc.172 03786 platbar.111 03787 platblock.111 03788 plate.111 03789 plate_mail.111 03790 platinum_converter.111 03791 platinum_converter2.111 03792 platround.111 03793 platter1_bro.111 03794 platter1_cop.111 03795 platter1_gol.111 03796 platter1_iro.111 03797 platter1_plat.111 03798 platter1_sil.111 03799 platter1_tin.111 03800 plt_coin.111 03801 pmarrow.111 03802 pmarrow.112 03803 pmarrow.113 03804 pmarrow.114 03805 pmarrow.115 03806 pmarrow.121 03807 pmarrow.122 03808 pmarrow.123 03809 pmarrow.124 03810 pmarrow.125 03811 pmarrow.131 03812 pmarrow.132 03813 pmarrow.133 03814 pmarrow.134 03815 pmarrow.135 03816 pmarrow.141 03817 pmarrow.142 03818 pmarrow.143 03819 pmarrow.144 03820 pmarrow.145 03821 pmarrow.151 03822 pmarrow.152 03823 pmarrow.153 03824 pmarrow.154 03825 pmarrow.155 03826 pmarrow.161 03827 pmarrow.162 03828 pmarrow.163 03829 pmarrow.164 03830 pmarrow.165 03831 pmarrow.171 03832 pmarrow.172 03833 pmarrow.173 03834 pmarrow.174 03835 pmarrow.175 03836 pmarrow.181 03837 pmarrow.182 03838 pmarrow.183 03839 pmarrow.184 03840 pmarrow.185 03841 poisonbullet.111 03842 poisonbullet.121 03843 poisonbullet.131 03844 poisonbullet.141 03845 poisonbullet.151 03846 poisonbullet.161 03847 poisonbullet.171 03848 poisonbullet.181 03849 poisoncloud.111 03850 poisoncloud.112 03851 poisoncloud.113 03852 polarbear.x31 03853 polarbear.x32 03854 polarbear.x71 03855 polarbear.x72 03856 poleaxe.111 03857 polymorph.111 03858 polymorph.112 03859 polymorph.113 03860 polymorph.114 03861 postman.131 03862 postman.132 03863 postman.171 03864 postman.172 03865 postman_gen.111 03866 potato.111 03867 potion_aether.111 03868 potion_empty.111 03869 potion_fire2.111 03870 potion_freeze.111 03871 potion_heal2.111 03872 potion_ishock.111 03873 potion_mimm.111 03874 potion_resist.111 03875 potion_shock.111 03876 potion_util.111 03877 potioncha.111 03878 potioncol.111 03879 potioncon.111 03880 potiondex.111 03881 potionfir.111 03882 potiongen.111 03883 potionhea.111 03884 potionhero.111 03885 potionimp.111 03886 potionint.111 03887 potioninv.111 03888 potionmag.111 03889 potionpow.111 03890 potionstr.111 03891 potionwis.111 03892 pouch.111 03893 power_crystal.111 03894 power_crystal.112 03895 power_crystal.113 03896 power_crystal.114 03897 prayer_book.111 03898 prepare_weapon.111 03899 present_box_1.111 03900 present_box_2.111 03901 present_box_3.111 03902 present_box_4.111 03903 present_box_5.111 03904 present_box_6.111 03905 pretty_amethyst.111 03906 pretty_crystal.111 03907 pretty_emerald.111 03908 pretty_ruby.111 03909 pretty_sapphire.111 03910 priest.111 03911 priest.112 03912 priest.131 03913 priest.132 03914 priest.151 03915 priest.152 03916 priest.171 03917 priest.172 03918 priestnew.111 03919 priestnew.131 03920 priestnew.151 03921 priestnew.171 03922 princess.111 03923 princess.112 03924 princess.113 03925 prison.x11 03926 prison_fant.x11 03927 prisoner.111 03928 prisoner.112 03929 protection.111 03930 protection.112 03931 protection.113 03932 protection.114 03933 protection.115 03934 protection.116 03935 protection.117 03936 pstone_1.111 03937 pstone_1_S.111 03938 pstone_2.111 03939 pstone_3.111 03940 pstone_4.111 03941 pstone_4_S.111 03942 pstone_5.111 03943 pup.131 03944 pup.132 03945 pup.133 03946 pup.171 03947 pup.172 03948 pup.173 03949 purple_worm.x31 03950 purple_worm.x71 03951 pyrite.111 03952 pyro_book.111 03953 pyro_gen.111 03954 pyromaniac.111 03955 pyromaniac.112 03956 pyromaniac.113 03957 pyromaniac.114 03958 quaathu.x11 03959 quaathu.x12 03960 quarters.111 03961 quarto.111 03962 quest_darcap_elemental.111 03963 quest_darcap_temple_justice.111 03964 quest_generic.111 03965 quest_lake_country_undead_catacomb.111 03966 quest_scorn_CoffeeGoose.111 03967 quest_scorn_aristocracy.111 03968 quest_scorn_gates.111 03969 quest_scorn_hero.111 03970 quest_scorn_kelthior.111 03971 quetzalcoatl.131 03972 quetzalcoatl.132 03973 quetzalcoatl.171 03974 quetzalcoatl.172 03975 quicksilver_sea.111 03976 quicksilver_sea.112 03977 quicksilver_sea.113 03978 quicksilver_sea.114 03979 quicksilver_sea_S.111 03980 quicksilver_sea_S.112 03981 quicksilver_sea_S.113 03982 quicksilver_sea_S.114 03983 quiver.111 03984 r_foot.111 03985 r_house1.111 03986 r_house2.111 03987 r_sack.111 03988 raas.131 03989 raas.171 03990 rain.111 03991 rain.112 03992 rain.113 03993 rain.114 03994 rain1.111 03995 rain2.111 03996 rain3.111 03997 rain4.111 03998 rain5.111 03999 randomArti.111 04000 randomBow.111 04001 randomFood.111 04002 randomGem.111 04003 randomMin.111 04004 randomPlt.111 04005 randomPoti.111 04006 randomRead.111 04007 randomScro.111 04008 randomShie.111 04009 randomSpel.111 04010 randomTali.111 04011 randomTrea.111 04012 randomWeal.111 04013 randomWeap.111 04014 random_tree_green.111 04015 rapier.111 04016 red_dragon2.151 04017 red_dragon2.152 04018 red_dragon2.171 04019 red_dragon2.172 04020 redcityport_0.111 04021 redcityport_1.111 04022 redcwall_0.111 04023 redcwall_1.111 04024 redcwall_2.111 04025 redcwall_3.111 04026 redcwall_4.111 04027 redcwall_5.111 04028 redcwall_6.111 04029 redcwall_7.111 04030 redcwall_8.111 04031 redcwall_9.111 04032 redcwall_A.111 04033 redcwall_B.111 04034 redcwall_C.111 04035 redcwall_D.111 04036 redcwall_E.111 04037 redcwall_F.111 04038 redcwall_w_0.111 04039 redcwall_w_0.112 04040 redcwall_w_0.113 04041 redcwall_w_0.114 04042 redcwall_w_0.115 04043 redcwall_w_0.116 04044 redcwall_w_0.117 04045 redcwall_w_0.118 04046 redcwall_w_0.119 04047 redcwall_w_0.11A 04048 redcwall_w_1.111 04049 redcwall_w_1.112 04050 redcwall_w_1.113 04051 redcwall_w_1.114 04052 redcwall_w_1.115 04053 redcwall_w_1.116 04054 redcwall_w_1.117 04055 redcwall_w_1.118 04056 redcwall_w_1.119 04057 redcwindow_0.111 04058 redcwindow_1.111 04059 redguard_ho_1.111 04060 redguard_ho_2.111 04061 redguard_ho_4.111 04062 redguard_ho_8.111 04063 redmarble.111 04064 reflector.111 04065 reflector.112 04066 reflector.113 04067 reflexbow.111 04068 reflexbow_bone.111 04069 residue.111 04070 retributioner.x11 04071 ring.110 04072 ring.111 04073 ring.112 04074 ring.113 04075 ring.114 04076 ring.115 04077 ring.116 04078 ring.117 04079 ring_acid.111 04080 ring_acid.112 04081 ring_combat.117 04082 ring_doom.111 04083 ring_doom.112 04084 ring_drain.111 04085 ring_drain.112 04086 ring_drain.113 04087 ring_drain.114 04088 ring_fighting.117 04089 ring_fire.111 04090 ring_fire.112 04091 ring_green.111 04092 ring_ice.111 04093 ring_ice.112 04094 ring_mail.111 04095 ring_mail2.111 04096 ring_saint.111 04097 ring_saint.112 04098 ring_strife.117 04099 ring_war.117 04100 ring_woe.111 04101 ring_woe.112 04102 river_14.111 04103 river_15.111 04104 river_16.111 04105 river_25.111 04106 river_26.111 04107 river_26.211 04108 river_26.311 04109 river_27.111 04110 river_36.111 04111 river_37.111 04112 river_38.111 04113 river_47.111 04114 river_48.111 04115 river_48.211 04116 river_48.311 04117 river_58.111 04118 rl_house1.x11 04119 rl_house2.x11 04120 rl_house3.x11 04121 rl_house_west.x11 04122 roast_bird.111 04123 robe.111 04124 robe2.111 04125 robe_midnight.111 04126 robe_midnight.112 04127 robe_midnight.113 04128 rock.111 04129 rock2.111 04130 rod_heavy.111 04131 rod_heavy.112 04132 rod_heavy.113 04133 rod_light.111 04134 rod_light.112 04135 rod_light.113 04136 roof_1.111 04137 roof_1blue.111 04138 roof_1green.111 04139 roof_1red.111 04140 roof_2.111 04141 roof_2blue.111 04142 roof_2green.111 04143 roof_2red.111 04144 root.111 04145 rose_black.111 04146 rose_pink.111 04147 rose_red.111 04148 rose_wh.111 04149 rose_yel.111 04150 rough_0.111 04151 rough_1.111 04152 rough_2.111 04153 rough_3.111 04154 rough_4.111 04155 rough_5.111 04156 rough_6.111 04157 rough_7.111 04158 rough_8.111 04159 rough_9.111 04160 rough_A.111 04161 rough_B.111 04162 rough_C.111 04163 rough_D.111 04164 rough_E.111 04165 rough_F.111 04166 round_shiel.111 04167 rowboat.x11 04168 rstone_3.111 04169 rstone_4.111 04170 rubble1.111 04171 ruby.111 04172 ruby.112 04173 ruby_converter.111 04174 ruby_exceptional.111 04175 ruby_flawless.111 04176 ruggilli.x11 04177 ruggilli.x12 04178 ruggilli.x13 04179 ruined_tower.x11 04180 ruins.111 04181 rune_antimagic.111 04182 rune_blast.111 04183 rune_blightning.111 04184 rune_bomb.111 04185 rune_confusion.111 04186 rune_death.111 04187 rune_fire.111 04188 rune_fireball.111 04189 rune_frost.111 04190 rune_heal.111 04191 rune_lightning.111 04192 rune_mark.111 04193 rune_paralysis.111 04194 rune_paralysis.112 04195 rune_pcloud.111 04196 rune_shock.111 04197 rune_sp_res.111 04198 rune_sum_earth.111 04199 rune_sum_fire.111 04200 rune_sum_water.111 04201 rune_summon.111 04202 rune_summon_air.111 04203 rune_transfer.111 04204 rustmonste.131 04205 rustmonste.132 04206 rustmonste.171 04207 rustmonste.172 04208 s_barn.x11 04209 s_barrack_u.x11 04210 s_barrack_u.x12 04211 s_bridge1.111 04212 s_bridge1a.111 04213 s_bridge1b.111 04214 s_bridge2.111 04215 s_bridge2a.111 04216 s_bridge2b.111 04217 s_bungalow.111 04218 s_castle.x11 04219 s_church.x11 04220 s_citytower.x11 04221 s_guild.x11 04222 s_house1.111 04223 s_inn.x11 04224 s_lighthouse.x11 04225 s_mastif.131 04226 s_mastif.132 04227 s_mastif.133 04228 s_mastif.171 04229 s_mastif.172 04230 s_mastif.173 04231 s_moun_cave.111 04232 s_mountain.111 04233 s_ship.x11 04234 s_shop1.111 04235 s_shop2.111 04236 s_tower1.x11 04237 s_tower2.x11 04238 s_tower2_top.x11 04239 s_tree_5.x11 04240 s_tree_5_christmas.x11 04241 s_weasel.111 04242 s_wyvern.x31 04243 s_wyvern.x32 04244 s_wyvern.x71 04245 s_wyvern.x72 04246 sabre.111 04247 sack.111 04248 sage.111 04249 sage.131 04250 sage.151 04251 sage.171 04252 sai_1.111 04253 sai_2.111 04254 sailor.111 04255 salt.111 04256 sandals.111 04257 sandy.111 04258 sandy.112 04259 sandy.113 04260 sandy.114 04261 sandy.115 04262 sapphire.111 04263 sapphire.112 04264 sapphire_exceptional.111 04265 sapphire_flawless.111 04266 sarcophagus.111 04267 saw.111 04268 scale_mail.111 04269 schest.111 04270 scimitar.111 04271 scorpi_gen.111 04272 scorpion.111 04273 scorpion.112 04274 scroll.111 04275 scroll_2.111 04276 scroll_alchemy.111 04277 scroll_bargaining.111 04278 scroll_bowyer.111 04279 scroll_climbing.111 04280 scroll_disarm_traps.111 04281 scroll_evocation.111 04282 scroll_find_traps.111 04283 scroll_hiding.111 04284 scroll_jewelry.111 04285 scroll_jumping.111 04286 scroll_karate.111 04287 scroll_literacy.111 04288 scroll_missile_weapon.111 04289 scroll_one_handed_weapon.111 04290 scroll_oratory.111 04291 scroll_praying.111 04292 scroll_punching.111 04293 scroll_pyromancy.111 04294 scroll_sense_curse.111 04295 scroll_sense_magic.111 04296 scroll_set_traps.111 04297 scroll_singing.111 04298 scroll_smithing.111 04299 scroll_sorcery.111 04300 scroll_stealing.111 04301 scroll_summoning.111 04302 scroll_thaumaturgy.111 04303 scroll_throwing.111 04304 scroll_two_handed_weapon.111 04305 scroll_use_magic_item.111 04306 scroll_woodsman.111 04307 scrollr.111 04308 scythe_1.111 04309 sdoor.111 04310 sdoor.112 04311 sdoor.113 04312 sdoor.114 04313 sea.111 04314 sea.112 04315 sea.113 04316 sea.114 04317 sea_7.111 04318 sea_B.111 04319 sea_D.111 04320 sea_E.111 04321 sea_F.111 04322 sea_S.111 04323 sea_S.112 04324 sea_S.113 04325 sea_S.114 04326 sea_ne.111 04327 sea_nw.111 04328 sea_se.111 04329 sea_sw.111 04330 serp_cloak.111 04331 serp_man.131 04332 serp_man.132 04333 serp_man.171 04334 serp_man.172 04335 serp_priest.131 04336 serp_priest.171 04337 serp_sword.111 04338 serpent.x31 04339 serpent.x32 04340 serpent.x71 04341 serpent.x72 04342 serpent_skin.111 04343 serpentman.111 04344 serpentman.112 04345 serpentman.131 04346 serpentman.132 04347 serpentman.151 04348 serpentman.152 04349 serpentman.171 04350 serpentman.172 04351 serpman_gen.111 04352 sewer_access.111 04353 sewer_access.112 04354 sewerfloor.111 04355 sflail_1.111 04356 sgrass.111 04357 sgrass_S.111 04358 shadow.111 04359 shadow.112 04360 shadow_dragon.x31 04361 shadow_dragon.x61 04362 shadowtiger.x31 04363 shadowtiger.x32 04364 shadowtiger.x33 04365 shadowtiger.x34 04366 shadowtiger.x71 04367 shadowtiger.x72 04368 shadowtiger.x73 04369 shadowtiger.x74 04370 shallow_sea.111 04371 shallow_sea.112 04372 shallow_sea.113 04373 shallow_sea.114 04374 shallow_sea_S.111 04375 shallow_sea_S.112 04376 shallow_sea_S.113 04377 shallow_sea_S.114 04378 shaxe_1.111 04379 sheep.131 04380 sheep.171 04381 sheepskin.111 04382 shell.111 04383 shell.112 04384 shell.121 04385 shell.131 04386 shell.141 04387 shell.151 04388 shell.161 04389 shell.171 04390 shell.181 04391 shellhorn1.111 04392 shellhorn2.111 04393 shield.111 04394 shield2.111 04395 shining_finger.111 04396 shining_finger.112 04397 shipswheel.111 04398 shootingstar.111 04399 shop_alchemy.111 04400 shop_amule.111 04401 shop_armou.111 04402 shop_books.111 04403 shop_building.111 04404 shop_empty.111 04405 shop_food.111 04406 shop_gems.111 04407 shop_gener.111 04408 shop_mat.111 04409 shop_mineral.111 04410 shop_potio.111 04411 shop_ring.111 04412 shop_scrol.111 04413 shop_speci.111 04414 shop_throw.111 04415 shop_wands.111 04416 shop_weapo.111 04417 shovel_1.111 04418 shovel_1.112 04419 shovel_1.113 04420 shovel_1.114 04421 shovel_1.115 04422 shrine.111 04423 shrine_east.x11 04424 shrine_east_r.x11 04425 sickle_1.111 04426 sicklesword.111 04427 siegfried.111 04428 siegfried.112 04429 sign.111 04430 sign_e.111 04431 sign_w.111 04432 silver_converter.111 04433 silverbar.111 04434 silverblock.111 04435 silvercoin.111 04436 silverround.111 04437 skeletalmage.111 04438 skeletalmage.112 04439 skeletalmage.113 04440 skeleton.111 04441 skeleton.112 04442 skeleton_chief.111 04443 skeleton_leader.111 04444 skin.111 04445 skree.x31 04446 skree.x32 04447 skree.x33 04448 skree.x71 04449 skree.x72 04450 skree.x73 04451 skree_claw.111 04452 skull.111 04453 skull.112 04454 skull_gen.111 04455 skullcleav.111 04456 skullcleav.112 04457 skullcleav.113 04458 skullcleav.114 04459 sky.111 04460 sky.x11 04461 slate_b.111 04462 slate_r.111 04463 slate_w.111 04464 slave.111 04465 sleep_floor.111 04466 slevel_0.111 04467 slevel_1.111 04468 slevel_2.111 04469 slevel_3.111 04470 slevel_4.111 04471 slevel_5.111 04472 slevel_6.111 04473 slevel_7.111 04474 slevel_8.111 04475 slevel_9.111 04476 slevel_A.111 04477 slevel_B.111 04478 slevel_C.111 04479 slevel_D.111 04480 slevel_E.111 04481 slevel_F.111 04482 slicingknife.111 04483 slime.111 04484 slime.112 04485 slime.113 04486 slimecrawler.111 04487 slimecrawler.112 04488 slimecrawler.113 04489 slotmachine1.111 04490 slotmachine1.112 04491 slotmachine2.111 04492 slotmachine2.112 04493 slotmachine3.111 04494 slotmachine3.112 04495 slow.111 04496 slow.112 04497 slow.113 04498 slug.x31 04499 slug.x32 04500 slug.x71 04501 slug.x72 04502 slug_slime.111 04503 slum1.x11 04504 slum2.x11 04505 slum3.x11 04506 small_shie.111 04507 smallicecube.111 04508 smallpark.111 04509 smallstone.111 04510 smallt_green.111 04511 smallt_green.112 04512 smalltemple.111 04513 smalltemple2.111 04514 smalltroll.111 04515 smalltroll.112 04516 smith.111 04517 snake.111 04518 snake.112 04519 snake.113 04520 snow.111 04521 snow2.111 04522 snow3.111 04523 snow4.111 04524 snow5.111 04525 snow5_S.111 04526 snow_c.111 04527 snow_c.112 04528 snow_c.113 04529 snow_c.114 04530 snowball.111 04531 snowball.121 04532 snowball.131 04533 snowball.141 04534 snowball.151 04535 snowball.161 04536 snowball.171 04537 snowball.181 04538 snowroad.111 04539 snowroad2.111 04540 sorcerer.111 04541 sorcerer.112 04542 sorcerer.131 04543 sorcerer.132 04544 sorcerer.151 04545 sorcerer.152 04546 sorcerer.171 04547 sorcerer.172 04548 sorcerer_book.111 04549 spalm.111 04550 spalms1.111 04551 spalms2.111 04552 sparkshower.111 04553 sparkshower.112 04554 sparkshower.113 04555 spear.101 04556 spear.111 04557 spear.121 04558 spear.131 04559 spear.141 04560 spear.151 04561 spear.161 04562 spear.171 04563 spear.181 04564 spear_ixalovh.111 04565 spear_ixalovh.112 04566 spear_ixalovh.113 04567 spectre.111 04568 speedball.111 04569 speedball.112 04570 speedboots.111 04571 speedboots.112 04572 speedboots.113 04573 speedbwall.111 04574 speedbwall.112 04575 spell_aggravation.111 04576 spell_alchemy.111 04577 spell_animate_weapon.111 04578 spell_antimagic_rune.111 04579 spell_armour.111 04580 spell_asteroid.111 04581 spell_ball_lightning.111 04582 spell_banishment.111 04583 spell_bless.111 04584 spell_build_bullet_wall.111 04585 spell_build_director.111 04586 spell_build_fireball_wall.111 04587 spell_build_lightning_wall.111 04588 spell_bullet_storm.111 04589 spell_bullet_swarm.111 04590 spell_burning_hands.111 04591 spell_call_holy_servant.111 04592 spell_cancellation.111 04593 spell_cause_anthrax.111 04594 spell_cause_black_death.111 04595 spell_cause_cold.111 04596 spell_cause_critical_wounds.111 04597 spell_cause_flu.111 04598 spell_cause_heavy_wounds.111 04599 spell_cause_leprosy.111 04600 spell_cause_light_wounds.111 04601 spell_cause_many_wounds.111 04602 spell_cause_medium_wounds.111 04603 spell_cause_rabies.111 04604 spell_cause_red_death.111 04605 spell_cause_smallpox.111 04606 spell_cause_typhoid.111 04607 spell_cause_white_death.111 04608 spell_charging.111 04609 spell_charisma.111 04610 spell_charm_monsters.111 04611 spell_color_spray.111 04612 spell_comet.111 04613 spell_command_undead.111 04614 spell_conflict.111 04615 spell_confusion.111 04616 spell_consecrate.111 04617 spell_constitution.111 04618 spell_counterspell.111 04619 spell_counterwall.111 04620 spell_create_bomb.111 04621 spell_create_earth_wall.111 04622 spell_create_fire_wall.111 04623 spell_create_food.111 04624 spell_create_frost_wall.111 04625 spell_create_missile.111 04626 spell_create_pool_of_chaos.111 04627 spell_cure_blindness.111 04628 spell_cure_confusion.111 04629 spell_cure_disease.111 04630 spell_cure_poison.111 04631 spell_curse.111 04632 spell_dancing_sword.111 04633 spell_dark_vision.111 04634 spell_darkness.111 04635 spell_daylight.111 04636 spell_defense.111 04637 spell_destruction.111 04638 spell_detect_curse.111 04639 spell_detect_evil.111 04640 spell_detect_magic.111 04641 spell_detect_monster.111 04642 spell_dexterity.111 04643 spell_dimension_door.111 04644 spell_disarm.111 04645 spell_divine_shock.111 04646 spell_dragonbreath.111 04647 spell_earth_to_dust.111 04648 spell_evocation.111 04649 spell_face_of_death.111 04650 spell_faery_fire.111 04651 spell_fear.111 04652 spell_finger_of_death.111 04653 spell_firebolt.111 04654 spell_firetrap.111 04655 spell_flaming_aura.111 04656 spell_forked_lightning.111 04657 spell_frostbolt.111 04658 spell_glyph.111 04659 spell_haste.111 04660 spell_heal.111 04661 spell_hellfire.111 04662 spell_heroism.111 04663 spell_holy_orb.111 04664 spell_holy_possession.111 04665 spell_holy_word.111 04666 spell_holy_wrath.111 04667 spell_icestorm.111 04668 spell_identify.111 04669 spell_improved_invisibility.111 04670 spell_insect_plague.111 04671 spell_invisible.111 04672 spell_invisible_to_undead.111 04673 spell_iron_skin.111 04674 spell_large_fireball.111 04675 spell_large_icestorm.111 04676 spell_large_lightning.111 04677 spell_large_manaball.111 04678 spell_large_snowstorm.111 04679 spell_large_speedball.111 04680 spell_lesser_golem.111 04681 spell_levitate.111 04682 spell_lg_magic_bullet.111 04683 spell_light.111 04684 spell_magic_bullet.111 04685 spell_magic_drain.111 04686 spell_magic_mapping.111 04687 spell_magic_missile.111 04688 spell_magic_rune.111 04689 spell_major_healing.111 04690 spell_mana_blast.111 04691 spell_manabolt.111 04692 spell_marking_rune.111 04693 spell_mass_confusion.111 04694 spell_medium_fireball.111 04695 spell_medium_healing.111 04696 spell_medium_manaball.111 04697 spell_medium_snowstorm.111 04698 spell_meteor_swarm.111 04699 spell_minor_healing.111 04700 spell_missile_swarm.111 04701 spell_mystic_fist.111 04702 spell_necromancy.111 04703 spell_nightfall.111 04704 spell_pacify.111 04705 spell_paralyze.111 04706 spell_peace.111 04707 spell_pentagram.111 04708 spell_perceive_self.111 04709 spell_poison_cloud.111 04710 spell_poison_fog.111 04711 spell_polymorph.111 04712 spell_praying.111 04713 spell_probe.111 04714 spell_protection_from_attack.111 04715 spell_protection_from_cancellation.111 04716 spell_protection_from_cold.111 04717 spell_protection_from_confusion.111 04718 spell_protection_from_depletion.111 04719 spell_protection_from_draining.111 04720 spell_protection_from_electricity.111 04721 spell_protection_from_fire.111 04722 spell_protection_from_magic.111 04723 spell_protection_from_paralysis.111 04724 spell_protection_from_poison.111 04725 spell_protection_from_slow.111 04726 spell_pyromancy.111 04727 spell_rage.111 04728 spell_raise_dead.111 04729 spell_regenerate_spellpoints.111 04730 spell_regeneration.111 04731 spell_reincarnation.111 04732 spell_remove_curse.111 04733 spell_remove_damnation.111 04734 spell_restoration.111 04735 spell_resurrection.111 04736 spell_retributive_strike.111 04737 spell_rune_of_blasting.111 04738 spell_rune_of_death.111 04739 spell_rune_of_fire.111 04740 spell_rune_of_frost.111 04741 spell_rune_of_magic_drain.111 04742 spell_rune_of_shocking.111 04743 spell_rune_of_transference.111 04744 spell_sanctuary.111 04745 spell_shockwave.111 04746 spell_show_invisible.111 04747 spell_sigil.111 04748 spell_slow.111 04749 spell_sm_bullet.111 04750 spell_sm_lightning.111 04751 spell_small_fireball.111 04752 spell_small_manaball.111 04753 spell_small_snowstorm.111 04754 spell_small_speedball.111 04755 spell_sorcery.111 04756 spell_spark_shower.111 04757 spell_spiderweb.111 04758 spell_staff_to_snake.111 04759 spell_steambolt.111 04760 spell_strength.111 04761 spell_summon_air_elemental.111 04762 spell_summon_avatar.111 04763 spell_summon_cult_monsters.111 04764 spell_summon_devil.111 04765 spell_summon_earth_elemental.111 04766 spell_summon_fire_elemental.111 04767 spell_summon_fog.111 04768 spell_summon_golem.111 04769 spell_summon_pet_monster.111 04770 spell_summon_water_elemental.111 04771 spell_summoner.111 04772 spell_sunspear.111 04773 spell_town_portal.111 04774 spell_transference.111 04775 spell_turn_undead.111 04776 spell_vitriol.111 04777 spell_vitriol_splash.111 04778 spell_wall_of_thorns.111 04779 spell_wave.111 04780 spell_windstorm.111 04781 spell_wonder.111 04782 spell_word_of_recall.111 04783 spell_wrathful_eye.111 04784 spell_xray.111 04785 sphinx.x31 04786 sphinx.x71 04787 spider.111 04788 spider.112 04789 spider.113 04790 spider.114 04791 spider.121 04792 spider.122 04793 spider.123 04794 spider.124 04795 spider.131 04796 spider.132 04797 spider.133 04798 spider.134 04799 spider.141 04800 spider.142 04801 spider.143 04802 spider.144 04803 spider.151 04804 spider.152 04805 spider.153 04806 spider.154 04807 spider.161 04808 spider.162 04809 spider.163 04810 spider.164 04811 spider.171 04812 spider.172 04813 spider.173 04814 spider.174 04815 spider.181 04816 spider.182 04817 spider.183 04818 spider.184 04819 spider_web.111 04820 spider_web.112 04821 spike.110 04822 spike.111 04823 spike.112 04824 spike.113 04825 spike.114 04826 spike.115 04827 spike.116 04828 spike.117 04829 spike.118 04830 spike.119 04831 spike.120 04832 spike.121 04833 spike.122 04834 spiked_pit.111 04835 spiked_shield.111 04836 spikes.110 04837 spikes.111 04838 spikes.112 04839 spikes.113 04840 spikes.114 04841 spikes.115 04842 spikes.116 04843 spikes.117 04844 spikes.118 04845 spikes.119 04846 spinner.111 04847 spinner.112 04848 spinner.113 04849 spinner.114 04850 spinner.115 04851 spinner.116 04852 spinner.117 04853 spinner.118 04854 spinner.119 04855 spinner.11A 04856 spinner.11B 04857 spinner.11C 04858 spinner.11D 04859 spinningwheel.111 04860 spit_ant.131 04861 spit_ant.132 04862 spit_ant.133 04863 spit_ant.171 04864 spit_ant.172 04865 spit_ant.173 04866 splint.111 04867 spock.111 04868 spock.112 04869 ssword_1.111 04870 ssword_2.111 04871 staff.111 04872 staff.112 04873 staff.113 04874 staff.114 04875 staff.115 04876 stair2_do.111 04877 stair2_up.111 04878 stair3_do.111 04879 stair3_gstone_do.111 04880 stair3_gstone_up.111 04881 stair3_up.111 04882 stair3_ystone_do.111 04883 stair3_ystone_up.111 04884 stair_down.111 04885 stair_down_1.111 04886 stair_down_2.111 04887 stair_down_3.111 04888 stair_down_4.111 04889 stair_up.111 04890 stair_up_1.111 04891 stair_up_2.111 04892 stair_up_3.111 04893 stair_up_4.111 04894 stake.111 04895 stalker.111 04896 stalker.112 04897 stalkergen.111 04898 statue.111 04899 statue2.111 04900 statue2_bronze.111 04901 statue2_gold.111 04902 statue_bronze.111 04903 statue_gargoyle.111 04904 statue_gold.111 04905 statue_knight.111 04906 statue_ruined.x11 04907 steam.111 04908 steam.112 04909 steelbar.111 04910 steppe.111 04911 steppe_S.111 04912 steppelight.111 04913 stfloor.111 04914 sting.111 04915 sting.112 04916 sting.113 04917 sting.114 04918 stipple.111 04919 stipple.112 04920 stolking_1.111 04921 stolking_2.111 04922 stoneaxe.111 04923 stoneblock.111 04924 stoneblock.112 04925 stoneblock.113 04926 stoneblock.114 04927 stoneblock.115 04928 stonebridge_0.111 04929 stonebridge_1.111 04930 stonebridge_2.111 04931 stonebridge_3.111 04932 stonebridge_4.111 04933 stonebridge_5.111 04934 stonebridge_6.111 04935 stonebridge_7.111 04936 stonebridge_8.111 04937 stonebridge_9.111 04938 stonebridge_A.111 04939 stonebridge_B.111 04940 stonebridge_C.111 04941 stonebridge_D.111 04942 stonebridge_E.111 04943 stonebridge_F.111 04944 stonehamme.111 04945 store_alch.x11 04946 store_armo.x11 04947 store_armo_east.x11 04948 store_armo_fant.x11 04949 store_bow.x11 04950 store_gems.x11 04951 store_gene.x11 04952 store_gene_fant.x11 04953 store_gene_west.x11 04954 store_magi.x11 04955 store_magi_east.x11 04956 store_magi_fant.x11 04957 store_magi_northwest.x11 04958 store_magi_west.x11 04959 store_weap.x11 04960 store_weap_east.x11 04961 store_weap_fant.x11 04962 stormbring.111 04963 stove.111 04964 stove.112 04965 stove.113 04966 strangefloor.111 04967 stronghold.x11 04968 stronghold_east.x11 04969 stronghold_fant.x11 04970 stronghold_fant_symmetrical.x11 04971 stronghold_northwest.x11 04972 stronghold_west.x11 04973 stronghsym.111 04974 stwall_0.111 04975 stwall_1.111 04976 stwall_2.111 04977 stwall_3.111 04978 stwall_4.111 04979 stwall_5.111 04980 stwall_6.111 04981 stwall_7.111 04982 stwall_8.111 04983 stwall_9.111 04984 stwall_A.111 04985 stwall_B.111 04986 stwall_C.111 04987 stwall_D.111 04988 stwall_E.111 04989 stwall_F.111 04990 stwall_door_0.111 04991 stwall_door_1.111 04992 stwallsec.111 04993 stwallsec.112 04994 stwallsec.113 04995 stwallsec.114 04996 stwallsec.115 04997 stwallsec.116 04998 stwallsec.117 04999 stwallsec.118 05000 stwindow_0.111 05001 stwindow_1.111 05002 stylus.111 05003 sulphur.111 05004 summoner_book.111 05005 sunspear.111 05006 sunspear.112 05007 sunspear.113 05008 swall_0.111 05009 swall_1.111 05010 swall_1_half.111 05011 swall_2.111 05012 swall_2_half.111 05013 swall_3.111 05014 swall_4.111 05015 swall_4_half.111 05016 swall_5.111 05017 swall_55.111 05018 swall_6.111 05019 swall_7.111 05020 swall_8.111 05021 swall_8_half.111 05022 swall_9.111 05023 swall_A.111 05024 swall_AA.111 05025 swall_B.111 05026 swall_C.111 05027 swall_D.111 05028 swall_E.111 05029 swall_F.111 05030 swamp.111 05031 swamp_S.111 05032 swashbuckl.111 05033 swashbuckl.112 05034 swashbuckl.131 05035 swashbuckl.132 05036 swashbuckl.151 05037 swashbuckl.152 05038 swashbuckl.171 05039 swashbuckl.172 05040 sword_1.111 05041 sword_2.111 05042 sword_3.111 05043 sword_4.111 05044 t_dagger.101 05045 t_dagger.111 05046 t_dagger.121 05047 t_dagger.131 05048 t_dagger.141 05049 t_dagger.151 05050 t_dagger.161 05051 t_dagger.171 05052 t_dagger.181 05053 t_house1.x11 05054 t_house2.x11 05055 t_house2_fant.x11 05056 t_rock.111 05057 t_star1.111 05058 table_1.111 05059 table_1x2.111 05060 table_2.111 05061 table_2x1.111 05062 table_2x2.111 05063 table_3.111 05064 table_4.111 05065 table_burl_3.111 05066 table_cw_3.111 05067 taifu_1.111 05068 talisman.111 05069 talisman_evocation.111 05070 talisman_pyromancy.111 05071 talisman_sorcery.111 05072 talisman_summoning.111 05073 tanbench.111 05074 tavern.111 05075 tear.111 05076 tear.112 05077 tear.113 05078 tear.114 05079 teleporter.111 05080 teleporter.112 05081 teleporter.113 05082 temple1.x11 05083 temple2.x11 05084 temple_ruin.x11 05085 ten_kilo.111 05086 tentacle.111 05087 tentacle.112 05088 tentacle.113 05089 tentacle2.111 05090 tentacle2.112 05091 tentacle2.113 05092 tentaclehook.111 05093 thaumaturg_desk.111 05094 thewheel_short.111 05095 thewheel_short.112 05096 thewheel_short.113 05097 thewheel_short.114 05098 thewheel_short.115 05099 thewheel_tall.x11 05100 thewheel_tall.x12 05101 thewheel_tall.x13 05102 thewheel_tall.x14 05103 thewheel_tall.x15 05104 thief.111 05105 thief.112 05106 thief.131 05107 thief.132 05108 thief.151 05109 thief.152 05110 thief.171 05111 thief.172 05112 thorns.111 05113 thunder_bolt.101 05114 thunder_bolt.111 05115 thunder_bolt.121 05116 thunder_bolt.131 05117 thunder_bolt.141 05118 thunder_bolt.151 05119 thunder_bolt.161 05120 thunder_bolt.171 05121 thunder_bolt.181 05122 tile.111 05123 tile_tan.111 05124 tile_white.111 05125 timberwall_0.111 05126 timberwall_1.111 05127 timberwall_2.111 05128 timberwall_3.111 05129 timberwall_4.111 05130 timberwall_5.111 05131 timberwall_6.111 05132 timberwall_7.111 05133 timberwall_8.111 05134 timberwall_9.111 05135 timberwall_A.111 05136 timberwall_B.111 05137 timberwall_C.111 05138 timberwall_D.111 05139 timberwall_E.111 05140 timberwall_F.111 05141 tinbar.111 05142 tissu.111 05143 titan.x31 05144 titan.x32 05145 titan.x33 05146 titan.x71 05147 titan.x72 05148 titan.x73 05149 tomato.111 05150 tomato_big.111 05151 tome.111 05152 tongue.111 05153 tooth.111 05154 tooth_charm.111 05155 torc.111 05156 torch_cyan.111 05157 torch_cyan.112 05158 torch_indigo.111 05159 torch_indigo.112 05160 torch_lit1.111 05161 torch_lit2.111 05162 torch_unlit.111 05163 torch_vermilion.111 05164 torch_vermilion.112 05165 tower_a.x11 05166 tower_tob.111 05167 tower_tob_fant.111 05168 tower_tob_northwest.111 05169 town_1.111 05170 town_2.111 05171 town_2.211 05172 town_3.111 05173 town_3.211 05174 town_4.111 05175 town_4.211 05176 town_4.311 05177 town_4.411 05178 town_5.111 05179 town_5.211 05180 town_5.311 05181 town_5.411 05182 town_5.511 05183 town_5.611 05184 town_6.111 05185 town_6.211 05186 town_6.311 05187 town_6.411 05188 town_6.511 05189 town_6.611 05190 town_7.111 05191 town_7.211 05192 town_7.311 05193 town_7.411 05194 town_7.511 05195 town_7.611 05196 town_7.711 05197 town_7.811 05198 town_7.911 05199 trap.111 05200 trapdoor_1.111 05201 trapdoor_2.111 05202 trapdoor_3.111 05203 trapdoor_4.111 05204 tree_1.111 05205 tree_2.111 05206 tree_3.111 05207 tree_4.111 05208 tree_5.111 05209 tree_5_christmas.x11 05210 tree_6.111 05211 treed_hills.111 05212 treefort.x11 05213 treefort2.x11 05214 treefort3.111 05215 treehouse.111 05216 trident.101 05217 trident.111 05218 trident.121 05219 trident.131 05220 trident.141 05221 trident.151 05222 trident.161 05223 trident.171 05224 trident.181 05225 troll.x11 05226 troll.x12 05227 troll.x13 05228 troll_p.111 05229 troll_p.112 05230 troll_p.131 05231 troll_p.132 05232 troll_p.151 05233 troll_p.152 05234 troll_p.171 05235 troll_p.172 05236 troll_stoned.111 05237 true_lead.111 05238 tspikes.111 05239 tunic.111 05240 turban.111 05241 turningboat.x11 05242 turningboat.x21 05243 turningboat.x31 05244 turningboat.x41 05245 turningboat.x51 05246 turningboat.x61 05247 turningboat.x71 05248 turningboat.x81 05249 turnundead.111 05250 turnundead.112 05251 turnundead.113 05252 u_horn.111 05253 u_horn.112 05254 u_horn.113 05255 u_horn.114 05256 u_horn.115 05257 uf6.111 05258 uf6pile.111 05259 uk_sd.111 05260 uk_sd.112 05261 uk_sd.113 05262 uk_sd.114 05263 uk_sd.115 05264 uk_sd.116 05265 uk_sd.117 05266 unholy_ground.111 05267 unicorn.x31 05268 unicorn.x32 05269 unicorn.x33 05270 unicorn.x71 05271 unicorn.x72 05272 unicorn.x73 05273 university.x11 05274 unluck.111 05275 unusual_kobold.111 05276 unusual_kobold.112 05277 uranium.111 05278 uraniumbar.111 05279 uw_shield.111 05280 uw_sword.111 05281 uw_sword.112 05282 uw_sword.113 05283 uw_sword.114 05284 uw_sword.115 05285 v_pool.111 05286 v_pool.112 05287 v_splash.111 05288 v_splash.112 05289 vampire.111 05290 vampire.112 05291 vampiregen.111 05292 veiled_woman.111 05293 veiled_woman2.111 05294 veiled_woman3.111 05295 vial_blue.111 05296 vial_cyan.111 05297 vial_empty.111 05298 vial_green.111 05299 vial_magenta.111 05300 vial_red.111 05301 vial_water.111 05302 vial_yellow.111 05303 viking.111 05304 viking.112 05305 viking.131 05306 viking.132 05307 viking.151 05308 viking.152 05309 viking.171 05310 viking.172 05311 village_0.111 05312 violin.111 05313 violin.112 05314 violin.113 05315 violin.114 05316 violin.115 05317 violin.116 05318 violin.117 05319 violin.118 05320 violin.119 05321 violin.11A 05322 violin.11B 05323 violin.11C 05324 violin.11D 05325 violin.x11 05326 vlongsword.111 05327 volcano_hi.x11 05328 volcano_lo.x11 05329 w_glass.111 05330 w_glass_empty.111 05331 wagon.111 05332 wall_0.111 05333 wall_1.111 05334 wall_1_ruin.111 05335 wall_1_short.111 05336 wall_2.111 05337 wall_2_ruin.111 05338 wall_2_short.111 05339 wall_3.111 05340 wall_4.111 05341 wall_4_ruin.111 05342 wall_4_short.111 05343 wall_5.111 05344 wall_55.111 05345 wall_6.111 05346 wall_7.111 05347 wall_8.111 05348 wall_8_ruin.111 05349 wall_8_short.111 05350 wall_9.111 05351 wall_A.111 05352 wall_AA.111 05353 wall_B.111 05354 wall_C.111 05355 wall_D.111 05356 wall_E.111 05357 wall_F.111 05358 wall_door_0.111 05359 wall_door_1.111 05360 wall_large_door.111 05361 wallart_0.111 05362 wallart_1.111 05363 wallart_2.111 05364 wallart_3.111 05365 wallart_4.111 05366 wallart_5.111 05367 wallart_6.111 05368 wallclock.111 05369 wand.111 05370 wand.112 05371 wand.113 05372 war_ant.131 05373 war_ant.132 05374 war_ant.171 05375 war_ant.172 05376 warrior.111 05377 warrior.112 05378 warrior.131 05379 warrior.132 05380 warrior.151 05381 warrior.152 05382 warrior.171 05383 warrior.172 05384 warrior_blue.111 05385 warrior_blue.131 05386 warrior_blue.151 05387 warrior_blue.171 05388 warrior_green.111 05389 warrior_green.131 05390 warrior_green.151 05391 warrior_green.171 05392 warrior_grey.111 05393 warrior_grey.131 05394 warrior_grey.151 05395 warrior_grey.171 05396 warrior_lblue.111 05397 warrior_lblue.131 05398 warrior_lblue.151 05399 warrior_lblue.171 05400 warrior_red.111 05401 warrior_red.131 05402 warrior_red.151 05403 warrior_red.171 05404 wasteland.111 05405 wasteland_S.111 05406 water.111 05407 water_diamond.111 05408 water_emerald.111 05409 water_pearl.111 05410 water_ruby.111 05411 water_sapphire.111 05412 water_wise.111 05413 wave.111 05414 wave.112 05415 wave.113 05416 waybread.111 05417 wbottle_empty.111 05418 wdoor.111 05419 wdoor.112 05420 wdoor.113 05421 wdoor.114 05422 wds.111 05423 wdsm.111 05424 wdsm.112 05425 wdsm.113 05426 well.111 05427 westcityport_0.111 05428 westcityport_1.111 05429 westcwall_0.111 05430 westcwall_1.111 05431 westcwall_2.111 05432 westcwall_3.111 05433 westcwall_4.111 05434 westcwall_5.111 05435 westcwall_6.111 05436 westcwall_7.111 05437 westcwall_8.111 05438 westcwall_9.111 05439 westcwall_A.111 05440 westcwall_B.111 05441 westcwall_C.111 05442 westcwall_D.111 05443 westcwall_E.111 05444 westcwall_F.111 05445 westcwall_w_0.111 05446 westcwall_w_0.112 05447 westcwall_w_0.113 05448 westcwall_w_0.114 05449 westcwall_w_0.115 05450 westcwall_w_0.116 05451 westcwall_w_0.117 05452 westcwall_w_0.118 05453 westcwall_w_0.119 05454 westcwall_w_0.11A 05455 westcwall_w_1.111 05456 westcwall_w_1.112 05457 westcwall_w_1.113 05458 westcwall_w_1.114 05459 westcwall_w_1.115 05460 westcwall_w_1.116 05461 westcwall_w_1.117 05462 westcwall_w_1.118 05463 westcwall_w_1.119 05464 westcwallsec.111 05465 westcwallsec.112 05466 westcwallsec.113 05467 westcwallsec.114 05468 westcwallsec.115 05469 westcwallsec.116 05470 westcwallsec.117 05471 westcwallsec.118 05472 westcwindow_0.111 05473 westcwindow_1.111 05474 westguard_ho_1.111 05475 westguard_ho_2.111 05476 westguard_ho_4.111 05477 westguard_ho_8.111 05478 wheelbarrow.111 05479 whim.111 05480 whim.112 05481 whim.121 05482 whim.122 05483 whim.131 05484 whim.132 05485 whim.141 05486 whim.142 05487 whim.151 05488 whim.152 05489 whim.161 05490 whim.162 05491 whim.171 05492 whim.172 05493 whim.181 05494 whim.182 05495 white-beige-c-marble.111 05496 white-beige-c-marble.112 05497 white-beige-c-marble.113 05498 white-beige-c-marble.114 05499 white-gray-h-marble.111 05500 white-gray-h-marble.112 05501 white-gray-x-marble.111 05502 white-gray-x-marble.112 05503 white-gray-x-marble.113 05504 white-gray-x-marble.114 05505 white-gray-x-marble.115 05506 white-gray-x-marble.116 05507 white-gray-x-marble.117 05508 white-gray-x-marble.118 05509 white-gray-x-marble.119 05510 white-green-c-marble.111 05511 white-green-c-marble.112 05512 white-green-c-marble.113 05513 white-green-c-marble.114 05514 white-green-h-marble.111 05515 white-green-h-marble.112 05516 white-green-x-marble.111 05517 white-green-x-marble.112 05518 white-green-x-marble.113 05519 white-green-x-marble.114 05520 white-green-x-marble.115 05521 white-green-x-marble.116 05522 white-green-x-marble.117 05523 white-green-x-marble.118 05524 white-green-x-marble.119 05525 white-pink-c-marble.111 05526 white-pink-c-marble.112 05527 white-pink-c-marble.113 05528 white-pink-c-marble.114 05529 white-red-c-marble.111 05530 white-red-c-marble.112 05531 white-red-c-marble.113 05532 white-red-c-marble.114 05533 white_wall_0.111 05534 white_wall_1.111 05535 white_wall_2.111 05536 white_wall_3.111 05537 white_wall_4.111 05538 white_wall_5.111 05539 white_wall_6.111 05540 white_wall_7.111 05541 white_wall_8.111 05542 white_wall_9.111 05543 white_wall_A.111 05544 white_wall_B.111 05545 white_wall_C.111 05546 white_wall_D.111 05547 white_wall_E.111 05548 white_wall_F.111 05549 white_wall_bottom.111 05550 white_wall_left.111 05551 white_wall_right.111 05552 white_window_0.111 05553 white_window_1.111 05554 wig.111 05555 wight.111 05556 wight.112 05557 wight.113 05558 wight.114 05559 window_0.111 05560 window_1.111 05561 window_2.111 05562 window_3.111 05563 window_4.111 05564 window_arcade_1.111 05565 windstorm.111 05566 windstorm.112 05567 windstorm.113 05568 wine.111 05569 winebottle_empty.111 05570 wingedhalo.111 05571 witch_air.111 05572 witch_air.112 05573 witch_chaos.111 05574 witch_chaos.112 05575 witch_earth.111 05576 witch_earth.112 05577 witch_fire.111 05578 witch_fire.112 05579 witch_water.111 05580 witch_water.112 05581 wiz_hat.111 05582 wiz_hat.112 05583 wiz_hat.113 05584 wizard.111 05585 wizard.131 05586 wizard.151 05587 wizard.171 05588 wizard_blue.111 05589 wizard_blue.131 05590 wizard_blue.151 05591 wizard_blue.171 05592 wizard_green.111 05593 wizard_green.131 05594 wizard_green.151 05595 wizard_green.171 05596 wizard_purple.111 05597 wizard_purple.131 05598 wizard_purple.151 05599 wizard_purple.171 05600 wizard_tower.x11 05601 wizard_tower.x12 05602 wizard_tower.x13 05603 wizard_white.111 05604 wizard_white.131 05605 wizard_white.151 05606 wizard_white.171 05607 wizard_yellow.111 05608 wizard_yellow.131 05609 wizard_yellow.151 05610 wizard_yellow.171 05611 wizardmask.111 05612 wizardmask.131 05613 wizardmask.151 05614 wizardmask.171 05615 wizdesk.111 05616 wolf.131 05617 wolf.132 05618 wolf.171 05619 wolf.172 05620 woman.131 05621 woman.151 05622 woman.171 05623 woman2.111 05624 woman2.112 05625 woman2.113 05626 woman3.111 05627 woman3.112 05628 woman3.113 05629 womangreenpink.131 05630 womangreenpink.151 05631 womangreenpink.171 05632 wooddoor_1.111 05633 wooddoor_2.111 05634 woodfloor.111 05635 woodfloor2.111 05636 woodhouse.111 05637 woodlarge.111 05638 woods_1.111 05639 woods_2.111 05640 woods_2_S.111 05641 woods_3.111 05642 woods_4.111 05643 woods_5.111 05644 woodwall_0.111 05645 woodwall_1.111 05646 woodwall_2.111 05647 woodwall_3.111 05648 woodwall_4.111 05649 woodwall_5.111 05650 woodwall_6.111 05651 woodwall_7.111 05652 woodwall_8.111 05653 woodwall_9.111 05654 woodwall_A.111 05655 woodwall_B.111 05656 woodwall_C.111 05657 woodwall_D.111 05658 woodwall_E.111 05659 woodwall_F.111 05660 woodwindow_0.111 05661 woodwindow_1.111 05662 work_ant.131 05663 work_ant.132 05664 work_ant.171 05665 work_ant.172 05666 workbench.111 05667 worthless_dragon.x31 05668 worthless_dragon.x32 05669 worthless_dragon.x33 05670 worthless_dragon.x71 05671 worthless_dragon.x72 05672 worthless_dragon.x73 05673 wplate.111 05674 wraith.111 05675 wraith.112 05676 wraith.113 05677 wraith_player_feeding.111 05678 wraith_player_feeding.112 05679 wraith_player_feeding.113 05680 wraith_player_feeding.131 05681 wraith_player_feeding.132 05682 wraith_player_feeding.133 05683 wraith_player_feeding.151 05684 wraith_player_feeding.152 05685 wraith_player_feeding.153 05686 wraith_player_feeding.171 05687 wraith_player_feeding.172 05688 wraith_player_feeding.173 05689 wraithp.111 05690 wraithp.112 05691 wraithp.131 05692 wraithp.132 05693 wraithp.151 05694 wraithp.152 05695 wraithp.171 05696 wraithp.172 05697 wrench.111 05698 wwall_0.111 05699 wwall_1.111 05700 wwall_2.111 05701 wwall_3.111 05702 wwall_4.111 05703 wwall_5.111 05704 wwall_6.111 05705 wwall_7.111 05706 wwall_8.111 05707 wwall_9.111 05708 wwall_A.111 05709 wwall_B.111 05710 wwall_C.111 05711 wwall_D.111 05712 wwall_E.111 05713 wwall_F.111 05714 wwall_left.111 05715 wwall_right.111 05716 wwall_w_0.111 05717 wwall_w_0.112 05718 wwall_w_0.113 05719 wwall_w_0.114 05720 wwall_w_0.115 05721 wwall_w_0.116 05722 wwall_w_0.117 05723 wwall_w_1.111 05724 wwall_w_1.112 05725 wwall_w_1.113 05726 wwall_w_1.114 05727 wwall_w_1.115 05728 wwall_w_1.116 05729 wwall_w_1.117 05730 wwindow_0.111 05731 wwindow_1.111 05732 wyvern.x31 05733 wyvern.x32 05734 wyvern.x71 05735 wyvern.x72 05736 xan.111 05737 xan.112 05738 xan_gen.111 05739 yellow_0.111 05740 yellow_1.111 05741 yellow_2.111 05742 yellow_3.111 05743 yellow_4.111 05744 yellow_5.111 05745 yellow_6.111 05746 yellow_7.111 05747 yellow_8.111 05748 yellow_9.111 05749 yellow_A.111 05750 yellow_B.111 05751 yellow_C.111 05752 yellow_D.111 05753 yellow_E.111 05754 yellow_F.111 05755 yellow_ne.111 05756 yellow_nw.111 05757 yellow_se.111 05758 yellow_sw.111 05759 ytree_1.111 05760 ytree_2.111 05761 zincbar.111 05762 zombie.111 05763 zombie.112 05764 zombie.113 05765 zombie_gen.111 05766 zoo.x11 ����������crossfire-1.70.0/lib/materials����������������������������������������������������������������������0000644�0000145�0000012�00000023432�11731300544�013156� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# materialtypes file. # name the name of the material. Paper, wood, iron, silver. # description OPTIONAL: what appears in the item name. "wooden" # material the material type this corresponds to. see materials.h # saves savingthrows for each of the 25 attacktypes # mods modifications to resistances for the 25 atttypes. # anything left unspecified in this file will default to zero. # # NOTE # In the very least, name and material MUST exist. # # NOTE AGAIN # Do not edit the basic types. Add any new types after these. # name paper material 1 saves 15,10,17,9,5,7,13,0,20,15,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name iron material 2 saves 2,12,3,12,2,10,7,0,20,15,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 chance 100 name glass material 4 saves 14,11,8,3,10,5,1,0,20,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name leather material 8 saves 5,10,10, 3, 3,10,10, 0,20,15, 0,0,0,0,0,12,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name pine material 16 saves 10,11,13, 2, 2,10, 9, 0,20,15, 0,0,0,0,0,12,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name organics description organic material 32 saves 3,12,9,11,3,10,9,0,20,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name granite material 64 saves 2,5,2,2,2,2,1,0,20,15,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name cloth description cotton material 128 saves 14,11,13,4,4,5,10,0,20,15,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name adamant material 256 saves 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name liquid material 512 saves 0,8,9,6,17,0,15,0,20,15,12,0,0,0,0,11,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name tin material 1024 saves 6,12,6,14,2,10,1,0,20,15,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name bone material 2048 saves 10,9,4,5,3,10,10,0,20,15,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 name ice material 4096 saves 14,11,16,5,0,5,6,0,20,15,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 # # NEW NON BASIC TYPES START HERE # Those are unused from 2011/06/29 on, left in case someone feels like using that. # # BEGIN iron name gold description golden material 2 saves 9,10,10,4,2,10,0,0,20,15,0,0,0,0,0,10,0,0,0,0,0,0,0,0 mods -1,0,-1,0,0,0,8 chance 5 diff 2 magic 0 damage -1 wc 0 ac 0 weight 130 value 175 # name silver material 2 saves 8,12, 9, 4, 2,10, 1, 0,20,15, 0,0,0,0,0,10 mods 0, 0, 0, 0, 0, 0, 2 chance 4 diff 3 magic 1 damage -1 wc 0 ac 0 weight 120 value 150 # name copper material 2 saves 11,13,12, 2, 2,10, 8, 0,20,15, 0,0,0,0,0,10 mods -1, 0, -1, -1, 0, 0, -3 chance 20 diff 0 magic 0 damage -1 wc 0 ac 0 weight 110 value 75 # name platinum material 2 saves 7,10, 7, 5, 2,10, 2, 0,20,15, 0,0,0,0,0, 5 mods 0, 0, 0, 0, 0, 0, 0 chance 5 diff 4 magic 1 damage 0 wc 0 ac 0 weight 90 value 200 # name lead material 2 saves 15, 5,14,14, 6,10, 6, 0,20,15, 0,0,0,0,0, 2 mods -3, 0, -5, 4, 1, 0, 5 chance 1 diff 0 magic 0 damage -2 wc -2 ac -1 weight 400 value 10 # name steel material 2 saves 1,13, 2,10, 2,10, 5, 0,20,15, 0,0,0,0,0,10 mods 1, 0, 3, 0, 0, 0, 1 chance 10 diff 2 magic 0 damage 1 wc 0 ac 0 weight 80 value 110 # name bronze material 2 saves 9,13,10, 2, 2,10, 8, 0,20,15, 0,0,0,0,0,10 mods 0, 0, 1, 0, 0, 0, 0 chance 40 diff 0 magic 0 damage 0 wc 0 ac 0 weight 110 value 80 # name mithril material 2 saves 1, 1, 2, 3, 2, 2, 2, 0,10, 7, 0,0,0,0,0, 5 mods 2, 0, 5, 1, 1, 0, 2 chance 3 diff 8 magic 2 damage 1 wc 1 ac 1 weight 50 value 250 # BEGIN cloth name silk material 128 saves 17,9,13,5,4,5,11,0,19,15,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0 mods 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 chance 10 diff 3 magic 0 damage 0 wc 0 ac 0 weight 90 value 130 # name velvet material 128 saves 17,9,13,4,6,5,11,0,19,15,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0 mods 0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 chance 10 diff 3 magic 0 damage 0 wc 0 ac 0 weight 110 value 140 # name burlap material 128 saves 10,10,12,3,3,7,11,0,19,15 mods 1,0,0,1,1 chance 8 diff 4 magic 0 damage 0 wc 0 ac 0 weight 140 value 70 # name wool material 128 saves 16,15,18,3,3,3,16,0,20,15 mods -1,0,-1,0,2 chance 8 diff 4 magic 0 damage 0 wc 0 ac 0 weight 110 value 115 # name kashmir material 128 saves 18,18,18,10,10,10,18,0,20,15 mods -1,0,0,0,1 chance 5 diff 2 magic 0 damage 0 wc 0 ac -1 weight 70 value 180 # name astolare material 128 saves 10,10,10, 4, 4, 4,7, 0,20,15 mods 0,2,0,1,1,1,0,2 chance 1 diff 10 magic 2 damage 0 wc 0 ac 0 weight 90 value 200 # name asbestos material 128 saves 14,11,1,4,4,5,15,0,20,15 mods 0,0,4,0,0,0,-4 chance 1 diff 10 magic 0 damage 0 wc 0 ac 0 weight 110 value 50 # name rubber material 128 saves 14,11,18,1,4,5,15,0,20,15 mods 1,0,-4,4,0,0,-1 chance 1 diff 10 magic 0 damage 0 wc 0 ac 0 weight 80 value 150 # # BEGIN wood name oak material 16 saves 9,10,14, 2, 2,10, 8, 0,20,15, 0,0,0,0,0,12 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 chance 10 diff 1 magic 0 damage 1 wc 0 ac 0 sp -1 weight 110 value 110 # name birch material 16 saves 11,11,13, 2, 2,10, 9, 0,20,15, 0,0,0,0,0,12 mods 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 chance 10 diff 2 magic 0 damage 0 wc 0 ac 0 sp 1 weight 90 value 110 # name spruce material 16 saves 14,11,13, 2, 2,10, 13, 0,20,15 mods -1,0,0,0,0,0,-1 chance 10 diff 2 magic 0 damage 0 wc 0 ac 0 sp 0 weight 80 value 80 # name balsa material 16 saves 18,11,13, 2, 2,10,12, 0,20,15 mods -2,0,-1,2 chance 2 diff 0 magic 0 damage -1 wc -1 ac -1 sp -10 weight 10 value 30 # name yew material 16 saves 10,11,13, 2, 2,10, 9, 0,20,15 mods -2,0,0 chance 5 diff 5 magic 1 damage 2 wc 0 ac 0 sp 10 weight 130 value 150 # name bamboo material 16 saves 10,11,13, 2, 2,10, 9, 0,20,15 mods 2,0,-1 chance 3 diff 5 magic 0 damage 0 wc 2 ac 0 sp 1 weight 70 value 130 # name ironwood material 16 saves 7,11,10,2, 2,10, 9, 0,20,15 mods 3,0,1 chance 3 diff 10 magic 0 damage 2 wc 0 ac 1 sp -4 weight 180 value 115 # name wyrmwood material 16 saves 10,8,12, 2, 2,10, 7, 0,20,15 mods 2,2,-2,0,0,2,0,2 chance 2 diff 15 magic 1 wc 1 ac 1 sp 1 weight 80 value 200 # # BEGIN stone name marble material 64 saves 2, 5, 2, 2, 2, 2, 1, 0,20,15, 0,0,0,0,0, 5 mods 0,0,0 chance 40 diff 0 damage 2 wc -1 ac 0 weight 180 value 80 # name obsidian material 64 saves 4, 6, 4, 4, 4, 4, 4, 0,20,15, 0,0,0,0,0, 7 mods -1,0,-1 chance 10 diff 3 damage 1 wc 1 ac 0 weight 90 value 130 # name limestone material 64 saves 8, 5, 2, 2, 2, 2, 17, 0,20,15 mods -1,0,0,0,0,0,-5 chance 8 diff 3 damage 0 wc 0 ac 0 weight 80 value 70 # name runestone material 64 saves 3, 0, 3, 4, 4, 4, 4, 0,20,15 mods 2,3,0,0 chance 1 diff 15 damage 1 wc -1 ac 0 weight 60 value 250 # # BEGIN bone # name ivory material 2048 saves 10, 10, 5, 5, 3,10,10, 0,20,15 mods 0,0,0,0 chance 30 diff 3 weight 80 value 120 # name dragonscale material 2048 saves 4,4,0,5,15,1,1,0,15,15 mods 1,1,5,0,-5 chance 2 diff 15 magic 2 ac 1 weight 110 value 200 # # BEGIN adamant # # note that by making the chance 100, I override adamant above to never appear. name argonite material 256 saves 3, 3, 4, 3, 2, 2, 2, 0,12,10, 0,0,0,0,0, 8 mods 0, 0, 0, 1, -1, 0, 0 chance 100 diff 0 magic 0 damage 0 wc 0 ac 0 weight 110 value 90 # name sanguinite material 256 saves 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 mods -1,-1,-1,-1,0,-1,0,0,0,10 chance 2 diff 0 magic 0 damage -1 wc 0 ac 0 weight 115 value 60 # name abyssium material 256 saves 5,5,5,5,5,5,2,5,5,5,5,5,5,5,5,5,5 mods -3,-3,5,0,-5,5,-2,-10,5 chance 1 diff 15 magic 0 damage 0 wc 0 ac 0 weight 200 value 40 # name astrium material 256 saves 3, 3, 3, 3, 2, 2, 2, 0,12,10, 0,0,0,0,0, 7 mods 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 2, 0, 2 chance 20 diff 5 magic 0 damage 0 wc 0 ac 0 weight 100 value 100 # name celestium material 256 saves 3, 2, 3, 3, 2, 2, 2, 0,12,10, 0,0,0,0,0, 1 mods 0, 4, 0, 0, 0, 2, 0, 3, 0, 0, 0, 3, 3, 0, 4 chance 10 diff 10 magic 1 damage 0 wc 0 ac 0 weight 110 value 150 # name damascus material 256 saves 2, 2, 2, 2, 2, 2, 2, 0,6,6, 0,0,0,0,0, 2 mods 2, 0, 1, 1, 1, 0, 2 chance 5 diff 12 magic 2 damage 0 wc 0 ac 1 weight 150 value 200 # name adamantium material 256 saves 1,1,1,1,1,1,1,0,2,2,0,0,0,0,0,1 mods 3, 0, 5, 1, 1, 0, 2, 5 chance 2 diff 15 magic 3 damage 1 wc 0 ac 2 weight 175 value 300 # name magmasium material 256 saves 3,3,0,0,10,3,3,3,3,3,3,3,3,3,3 mods 0,0,5,0,-5,0,2 chance 1 diff 15 magic 3 damage 0 wc 0 ac 0 weight 140 value 320 # name electrum material 256 saves 3,3,10,0,3,3,3,3,3,3,3,3,3,3,3 mods 0,0,-5,5,0,0,2 chance 1 diff 15 magic 3 damage 0 wc 0 ac 0 weight 140 value 320 # name glacium material 256 saves 3,3,10,3,0,3,3,3,3,3,3,3,3,3,3 mods 0,0,-5,0,5,0,0,2 chance 1 diff 15 magic 3 damage 0 wc 0 ac 0 weight 140 value 320 # # BEGIN leather # name snakeskin material 8 saves 5,11,11, 4, 3,10,9, 0,20,15 mods 0,0,1,0,-1 chance 30 diff 3 ac 1 weight 90 value 110 # name humanskin material 8 saves 10,15,15,15,15,15,15,0,20,15 mods -1,-1,-1,-1,-1,0,-1 chance 1 diff 15 magic 2 ac -1 weight 80 value 40 # name bearskin material 8 saves 4,10,11, 3, 2,10,10, 0,20,15 mods 0,0,0,0,1 chance 15 diff 5 weight 110 value 110 # name dragonhide material 8 saves 4,6,4,5,10,10,6,0,20,15 mods 1,1,3,0,-3 chance 2 diff 15 ac 1 magic 2 weight 70 value 250 # name wolfhide material 8 saves 4,10,11, 3, 2,10,10, 0,20,15 mods 0,0,0,0,1 chance 15 diff 4 weight 115 value 80 # name deerskin material 8 saves saves 8,10,11, 3, 2,10,10, 0,20,15 mods -1,0,0,0,0 chance 10 diff 10 ac 2 sp 1 wc 1 weight 80 value 140 # # BEGIN specialty metals. # these are one offs, like mercury, etc. # name mercury material 1024 saves 5, 3, 9, 6,17, 0,10, 0,20,15 mods 0,0,0 chance 0 diff 0 weight 100 value 100 # ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/animations���������������������������������������������������������������������0000644�0000145�0000012�00000236050�11732536604�013352� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������anim CSword CSword.113 CSword.114 CSword.115 CSword.116 CSword.117 CSword.118 CSword.119 CSword.116 CSword.11A CSword.11B CSword.11C CSword.111 CSword.112 mina anim Cwyvern Cwyvern.x31 Cwyvern.x32 Cwyvern.x71 Cwyvern.x72 facings 2 mina anim DK facings 2 Bk.x11 Bk.x12 Bk.x13 Bk.x14 Bk.x71 Bk.x72 Bk.x73 Bk.x74 mina anim DShield DShield.111 DShield.112 mina anim DShieldm DShield.111 DShield.112 DShield.111 DShield.112 DShield.111 DShield.113 mina anim DShieldms DShield.111 DShield.112 DShield.111 DShield.113 mina anim DShields DShield.111 DShield.112 DShield.111 DShield.112 DShield.111 DShield.113 mina anim EDK facings 2 Bk.x11 Bk.x12 Bk.x13 Bk.x14 Bk.x11 Bk.x12 Bk.x13 Bk.x14 Bk.x11 Bk.x12 Bk.x13 Bk.x14 Bk.x11 Bk.x12 Bk.x15 Bk.x14 Bk.x71 Bk.x72 Bk.x73 Bk.x74 Bk.x71 Bk.x72 Bk.x73 Bk.x74 Bk.x71 Bk.x72 Bk.x73 Bk.x74 Bk.x71 Bk.x72 Bk.x75 Bk.x74 mina anim Ixalovh witch_water.111 witch_water.112 mina anim Nimground3_purple Nimground3_purple.111 Nimground3_purple.112 Nimground3_purple.113 Nimground3_purple.114 Nimground3_purple.111 Nimground3_purple.111 Nimground3_purple.111 mina anim Pdragon_mail Pdragonmail.111 Pdragonmail.112 mina anim acid_pool acid_pool.111 acid_pool.112 mina anim acid_sphere acidsphere.111 acidsphere.112 acidsphere.113 acidsphere.114 acidsphere.113 acidsphere.112 mina anim acid_spit acidspit.111 acidspit.111 acidspit.121 acidspit.131 acidspit.141 acidspit.151 acidspit.161 acidspit.171 acidspit.181 mina anim air_elemental elem_air.111 elem_air.112 mina anim air_witch witch_air.111 witch_air.112 mina anim alchemist_class facings 4 alchemist.111 alchemist.112 alchemist.131 alchemist.132 alchemist.151 alchemist.152 alchemist.171 alchemist.172 mina anim alchemy_diamond_converter lava.111 lava.112 lava.113 lava.114 lava.115 polymorph.111 lava.114 polymorph.112 polymorph.113 polymorph.114 gem.111 mina anim alchemy_pearl_converter lava.111 lava.112 lava.113 lava.114 lava.115 polymorph.111 lava.114 polymorph.112 polymorph.113 polymorph.114 pearl.111 mina anim alchemy_ruby_converter lava.111 lava.112 lava.113 lava.114 lava.115 polymorph.111 lava.114 polymorph.112 polymorph.113 polymorph.114 ruby.111 mina anim altar altar.111 altar.112 mina anim altar_gorokh altargoro.111 altargoro.112 altargoro.111 altargoro.113 mina anim altar_ruggilli altarrugg.111 altarrugg.112 altarrugg.113 altarrugg.114 altarrugg.115 altarrugg.116 mina anim altar_sorig altarsori.111 altarsori.112 altarsori.113 altarsori.114 altarsori.115 altarsori.116 mina anim altar_trigger altar.111 altar.112 mina anim altar_valriel altarvalr.111 altarvalr.112 altarvalr.111 altarvalr.113 mina anim altar_valriel_intervention altarvalr_intervention.111 altarvalr_intervention.112 altarvalr_intervention.113 altarvalr_intervention.114 altarvalr_intervention.115 mina anim amethyst amethyst.111 amethyst.112 mina anim amulet amulet.111 amulet_dark.111 amulet_darkmagenta.111 amulet_darkred.111 amulet_magenta.111 amulet_red.111 mina anim angel facings 4 angel.111 angel.112 angel.131 angel.132 angel.151 angel.152 angel.171 angel.172 mina anim angel_sword facings 4 angel.111 angel_sword.111 angel_sword.112 angel_sword.111 angel.131 angel_sword.131 angel_sword.132 angel_sword.131 angel.151 angel_sword.151 angel_sword.152 angel_sword.151 angel.171 angel_sword.171 angel_sword.172 angel_sword.171 mina anim ant ant.111 ant.112 mina anim ant_larvae ant_larvae.111 ant_larvae.112 mina anim ape facings 2 ape.131 ape.132 ape.171 ape.172 mina anim archangel archangel.x11 archangel.x12 archangel.x13 mina anim archon archon.111 archon.222 archon.333 archon.444 mina anim armless_cook facings 4 armless_cook.111 armless_cook.131 armless_cook.151 armless_cook.171 mina anim armour_troll2 armourtroll2.111 armourtroll2.112 mina anim arrow arrow.101 arrow.111 arrow.121 arrow.131 arrow.141 arrow.151 arrow.161 arrow.171 arrow.181 mina anim arrow_fire arrow_fire.101 arrow_fire.111 arrow_fire.121 arrow_fire.131 arrow_fire.141 arrow_fire.151 arrow_fire.161 arrow_fire.171 arrow_fire.181 mina anim arrow_frost arrow_frost.101 arrow_frost.111 arrow_frost.121 arrow_frost.131 arrow_frost.141 arrow_frost.151 arrow_frost.161 arrow_frost.171 arrow_frost.181 mina anim arrow_lightning arrow_lightning.101 arrow_lightning.111 arrow_lightning.121 arrow_lightning.131 arrow_lightning.141 arrow_lightning.151 arrow_lightning.161 arrow_lightning.171 arrow_lightning.181 mina anim arrow_paralysis arrow_paralysis.101 arrow_paralysis.111 arrow_paralysis.121 arrow_paralysis.131 arrow_paralysis.141 arrow_paralysis.151 arrow_paralysis.161 arrow_paralysis.171 arrow_paralysis.181 mina anim arrow_poison arrow_poison.101 arrow_poison.111 arrow_poison.121 arrow_poison.131 arrow_poison.141 arrow_poison.151 arrow_poison.161 arrow_poison.171 arrow_poison.181 mina anim asteroid asteroid.112 asteroid.111 asteroid.121 asteroid.131 asteroid.141 asteroid.151 asteroid.161 asteroid.171 asteroid.181 mina anim avatar facings 2 avatar.131 avatar.132 avatar.171 avatar.172 mina anim baby_dragon baby_drag.111 baby_drag.112 baby_drag.113 mina anim bagpipe bagpipe.111 bagpipe.112 bagpipe.113 bagpipe.114 bagpipe.115 bagpipe.116 bagpipe.117 bagpipe.118 bagpipe.119 bagpipe.11A mina anim ball_lightning ball_lightning.111 ball_lightning.222 ball_lightning.333 ball_lightning.444 mina anim banishment banishment.111 banishment.112 banishment.113 mina anim banshee banshee.111 banshee.112 mina anim barbarian facings 4 barbarian.111 barbarian.131 barbarian.151 barbarian.171 mina anim barbarian_class facings 4 barbarian.111 barbarian.112 barbarian.131 barbarian.132 barbarian.151 barbarian.152 barbarian.171 barbarian.172 mina anim barrack_l barrack_l.x11 barrack_l.x12 mina anim barrack_u barrack_u.x11 barrack_u.x12 mina anim baslic facings 2 baslic.x31 baslic.x32 baslic.x71 baslic.x72 mina anim bat bat.111 bat.112 bat.113 mina anim bear bear.x31 bear.x32 bear.x71 bear.x72 facings 2 mina anim bee bee.111 bee.112 mina anim beehive beehive.111 beehive.112 mina anim behemoth facings 2 behemoth.x31 behemoth.x32 behemoth.x33 behemoth.x32 behemoth.x71 behemoth.x72 behemoth.x73 behemoth.x72 mina anim beholder beholder.111 beholder.112 beholder.113 beholder.114 mina anim beholder_leader_arc beholder_leader.111 beholder_leader.111 beholder_leader.111 beholder_leader.111 mina anim belzebub belzebub.x11 belzebub.x11 belzebub.x12 belzebub.x12 belzebub.x11 belzebub.x11 mina anim big_demon facings 2 big_demon.x31 big_demon.x71 mina anim big_dragon facings 2 dragon.x71 dragon.x72 dragon.x73 dragon.x74 dragon.x31 dragon.x32 dragon.x33 dragon.x34 mina anim big_dragon_ancient facings 2 dragon_ac.x71 dragon_ac.x72 dragon_ac.x73 dragon_ac.x74 dragon_ac.x31 dragon_ac.x32 dragon_ac.x33 dragon_ac.x34 mina anim big_dragon_spellcasting dragon_spellcasting.x71 dragon_spellcasting.x72 dragon_spellcasting.x73 dragon_spellcasting.x31 dragon_spellcasting.x32 dragon_spellcasting.x33 facings 2 mina anim big_elec elec_dr.x11 elec_dr.x12 elec_dr.x11 elec_dr.x12 elec_dr.x11 elec_dr.x12 mina anim big_elec_spellcasting elec_dr_spellcasting.x11 elec_dr_spellcasting.x12 elec_dr_spellcasting.x13 facings 1 mina anim big_wiz big_wiz.x11 big_wiz.x12 big_wiz.x13 big_wiz.x14 big_wiz.x15 big_wiz.x15 big_wiz.x14 big_wiz.x13 big_wiz.x12 mina anim bigblue_wiz bigblue_wiz.x11 bigblue_wiz.x12 bigblue_wiz.x13 bigblue_wiz.x14 bigblue_wiz.x15 bigblue_wiz.x15 bigblue_wiz.x14 bigblue_wiz.x13 bigblue_wiz.x12 mina anim bird facings 4 bird.111 bird.112 bird.131 bird.132 bird.151 bird.152 bird.171 bird.172 mina anim black_dragon1 facings 2 pl_dragon_bl.151 pl_dragon_bl.152 pl_dragon_bl.171 pl_dragon_bl.172 mina anim black_dragon2 facings 2 black_dragon2.151 black_dragon2.152 black_dragon2.171 black_dragon2.172 mina anim black_pudding bpudding.111 bpudding.112 mina anim black_pudding_grow bpudding_g.111 bpudding_g.112 bpudding_g.113 bpudding_g.114 bpudding_g.115 bpudding_g.116 bpudding_g.117 bpudding_g.118 bpudding_g.119 mina anim black_pudding_split bpudding_s.111 bpudding_s.112 bpudding_s.113 bpudding_s.114 mina anim blob blob.111 blob.112 blob.113 blob.112 mina anim block_door_closed stoneblock.115 stoneblock.114 stoneblock.113 stoneblock.112 stoneblock.111 earthwall.111 mina anim block_door_open stoneblock.115 stoneblock.114 stoneblock.113 stoneblock.112 stoneblock.111 earthwall.111 mina anim blood_sea blood_sea.111 blood_sea.112 blood_sea.113 blood_sea.114 blood_sea.113 blood_sea.112 mina anim blue_dragon1 pl_dragon_blue.151 pl_dragon_blue.152 pl_dragon_blue.171 pl_dragon_blue.172 facings 2 mina anim blue_dragon2 facings 2 blue_dragon2.151 blue_dragon2.152 blue_dragon2.171 blue_dragon2.172 mina anim bluesphere bluesphere.111 bluesphere.112 bluesphere.113 bluesphere.114 mina anim bolt bolt.101 bolt.111 bolt.121 bolt.131 bolt.141 bolt.151 bolt.161 bolt.171 bolt.181 mina anim bomb bomb.111 bomb.111 bomb.112 bomb.112 bomb.113 bomb.113 bomb.114 bomb.114 bomb.114 mina anim bone_drake bone_drake.x11 bone_drake.x12 mina anim bone_head bone_head.111 bone_head.112 bone_head.113 bone_head.112 mina anim brazier brazier.111 brazier.112 brazier.113 brazier.114 mina anim brdaxe1 brdaxe_1.111 brdaxe_1.114 brdaxe_1.111 brdaxe_1.111 brdaxe_1.112 brdaxe_1.112 brdaxe_1.113 brdaxe_1.113 brdaxe_1.114 mina anim breeder_ant breeder_ant.x11 breeder_ant.x11 breeder_ant.x12 mina anim broo broo.111 broo.112 broo.113 broo.112 mina anim bullet bullet.112 bullet.111 bullet.121 bullet.131 bullet.141 bullet.151 bullet.161 bullet.171 bullet.181 mina anim bullet_mania bullet.111 bullet.121 bullet.131 bullet.141 bullet.151 bullet.161 bullet.171 bullet.181 mina anim burning_fountain burning_fountain.111 burning_fountain.112 burning_fountain.113 mina anim burningtail burningtail.111 burningtail.112 burningtail.113 mina anim burningwall_0 burningwall_0.111 burningwall_0.112 mina anim burningwall_1_1 burningwall_4.111 burningwall_4.112 mina anim burningwall_1_2 burningwall_1.111 burningwall_1.112 mina anim burningwall_1_3 burningwall_8.111 burningwall_8.112 mina anim burningwall_1_4 burningwall_2.111 burningwall_2.112 mina anim burningwall_2_1_1 burningwall_5.111 burningwall_5.112 mina anim burningwall_2_1_2 burningwall_A.111 burningwall_A.112 mina anim burningwall_2_2_1 burningwall_3.111 burningwall_3.112 mina anim burningwall_2_2_2 burningwall_6.111 burningwall_6.112 mina anim burningwall_2_2_3 burningwall_C.111 burningwall_C.112 mina anim burningwall_2_2_4 burningwall_9.111 burningwall_9.112 mina anim burningwall_3_1 burningwall_B.111 burningwall_B.112 mina anim burningwall_3_2 burningwall_7.111 burningwall_7.112 mina anim burningwall_3_3 burningwall_E.111 burningwall_E.112 mina anim burningwall_3_4 burningwall_D.111 burningwall_D.112 mina anim burningwall_4 burningwall_F.111 burningwall_F.112 mina anim burnout burnout.111 burnout.111 burnout.112 burnout.112 burnout.111 burnout.111 burnout.113 burnout.113 burnout.111 burnout.111 burnout.112 burnout.112 burnout.111 burnout.111 burnout.113 burnout.113 burnout.111 burnout.111 burnout.114 burnout.115 burnout.116 burnout.117 burnout.118 burnout.119 burnout.11A burnout.11B burnout.11C burnout.11D burnout.11E burnout.11F burnout.11G burnout.11H burnout.11J burnout.11K burnout.11L burnout.11M burnout.11N burnout.11O burnout.11P burnout.11Q burnout.11R mina anim button_handle handle.111 handle.112 mina anim button_lever lever.111 lever.112 mina anim button_plate button_big.111 button_big.112 mina anim button_small button_sma.111 button_sma.112 mina anim button_trigger button_sma.111 button_sma.112 mina anim byakie byakie.x11 byakie.x12 mina anim c_knight c_knight.111 c_knight.112 mina anim c_man facings 4 man.151 man.131 man.151 man.171 mina anim c_minor_priest facings 2 c_priest.131 c_priest.132 c_priest.171 c_priest.172 mina anim c_priest facings 2 c_priest.131 c_priest.132 c_priest.171 c_priest.172 mina anim c_sage facings 4 sage.111 sage.131 sage.151 sage.171 mina anim c_woman facings 4 woman.151 woman.131 woman.151 woman.171 mina anim campfire campfire.111 campfire.112 campfire.113 campfire.114 mina anim cancellation cancellation.111 cancellation.112 cancellation.113 mina anim castle_a castle_a.x11 castle_a.x12 mina anim castle_a_northwest castle_a_northwest.x11 castle_a_northwest.x12 mina anim castle_a_western castle_a_western.x11 castle_a_western.x12 mina anim cause_wounds cause.111 cause.112 cause.111 mina anim centipede facings 8 centipede.111 centipede.112 centipede.113 centipede.114 centipede.121 centipede.122 centipede.123 centipede.124 centipede.131 centipede.132 centipede.133 centipede.134 centipede.141 centipede.142 centipede.143 centipede.144 centipede.151 centipede.152 centipede.153 centipede.154 centipede.161 centipede.162 centipede.163 centipede.164 centipede.171 centipede.172 centipede.173 centipede.174 centipede.181 centipede.182 centipede.183 centipede.184 mina anim centipede_r centipede_r.111 centipede_r.112 centipede_r.113 mina anim chalice chalice.111 chalice.111 chalice.111 chalice.112 chalice.113 chalice.114 mina anim chalice_bro chalice_bro.111 chalice_bro.111 chalice_bro.111 chalice_bro.112 chalice_bro.113 chalice_bro.114 mina anim chalice_cop chalice_cop.111 chalice_cop.111 chalice_cop.111 chalice_cop.112 chalice_cop.113 chalice_cop.114 mina anim chalice_iro chalice_iro.111 chalice_iro.111 chalice_iro.111 chalice_iro.112 chalice_iro.113 chalice_iro.114 mina anim chalice_plat chalice_plat.111 chalice_plat.111 chalice_plat.111 chalice_plat.112 chalice_plat.113 chalice_plat.114 mina anim chalice_sil chalice_sil.111 chalice_sil.111 chalice_sil.111 chalice_sil.112 chalice_sil.113 chalice_sil.114 mina anim chalice_tin chalice_tin.111 chalice_tin.111 chalice_tin.111 chalice_tin.112 chalice_tin.113 chalice_tin.114 mina anim chandelier_2 chandelier_2.111 chandelier_2.112 chandelier_2.113 chandelier_2.114 mina anim chandelier_2_copper chandelier_2_copper.111 chandelier_2_copper.112 chandelier_2_copper.113 chandelier_2_copper.114 mina anim chaos explosion.111 burnout.11O fireball.111 ball_lightning.111 icestorm.111 confusion.111 acid_pool.111 poisoncloud.111 slow.111 paralyse.111 fear.111 mina anim chaos_ball explosion.111 burnout.11O fireball.111 ball_lightning.111 icestorm.111 confusion.111 acid_pool.111 poisoncloud.111 slow.111 paralyse.111 fear.111 mina anim chaos_dragon facings 2 chaos_dragon.x71 chaos_dragon.x72 chaos_dragon.x73 chaos_dragon.x74 chaos_dragon.x31 chaos_dragon.x32 chaos_dragon.x33 chaos_dragon.x34 mina anim charm_aura charm_aura.111 charm_aura.112 charm_aura.113 mina anim charwoman facings 2 charwoman.131 charwoman.132 charwoman.171 charwoman.172 mina anim chest_valriel_2 chest_valriel_1.111 chest_valriel_1.112 chest_valriel_1.113 chest_valriel_1.114 mina anim chicken facings 2 chicken.131 chicken.132 chicken.171 chicken.172 mina anim chinese_dragon facings 2 chinese_dr.x71 chinese_dr.x72 chinese_dr.x73 chinese_dr.x72 chinese_dr.x31 chinese_dr.x32 chinese_dr.x33 chinese_dr.x32 mina anim chinese_dragon_spellcasting chinese_dr_spellcasting.x71 chinese_dr_spellcasting.x72 chinese_dr_spellcasting.x71 chinese_dr_spellcasting.x72 chinese_dr_spellcasting.x31 chinese_dr_spellcasting.x32 chinese_dr_spellcasting.x31 chinese_dr_spellcasting.x32 facings 2 mina anim cleric facings 4 cleric.111 cleric.131 cleric.151 cleric.171 mina anim cleric_class facings 4 cleric.111 cleric.112 cleric.131 cleric.132 cleric.151 cleric.152 cleric.171 cleric.172 mina anim clock clock.111 clock.112 mina anim clock_ag clock_ag.111 clock_ag.112 mina anim clock_cw clock_cw.111 clock_cw.112 mina anim clock_grand clock_grand.111 clock_grand.112 mina anim close_chest_valriel_2 chest_valriel_1.111 chest_valriel_1.112 chest_valriel_1.113 chest_valriel_1.114 mina anim cobra cobra.x11 cobra.x12 cobra.x13 cobra.x12 mina anim cold_dragon facings 2 cold_drag.171 cold_drag.172 cold_drag.131 cold_drag.132 mina anim coldmagma coldmagma.111 coldmagma.111 coldmagma.111 coldmagma.112 coldmagma.111 coldmagma.111 coldmagma.112 coldmagma.112 coldmagma.112 coldmagma.111 coldmagma.112 coldmagma.112 mina anim collar collar.111 collar.112 collar.113 collar.112 mina anim color_spray explosion.111 burnout.11O fireball.111 ball_lightning.111 icestorm.111 confusion.111 acid_pool.111 poisoncloud.111 slow.111 paralyse.111 fear.111 mina anim confusion confusion.111 confusion.112 confusion.113 confusion.114 mina anim conjurer conjurer.111 conjurer.112 conjurer.113 conjurer.112 mina anim conjurer2 conjurer.111 conjurer.112 conjurer.113 conjurer.112 mina anim crawling_chaos crawling_chaos.111 crawling_chaos.112 crawling_chaos.113 mina anim cwall_closed_1 cwallsec.111 cwallsec.112 cwallsec.113 cwallsec.114 cwallsec.115 cwallsec.116 cwallsec.117 cwallsec.118 mina anim cwall_open_1 cwallsec.111 cwallsec.112 cwallsec.113 cwallsec.114 cwallsec.115 cwallsec.116 cwallsec.117 cwallsec.118 mina anim cwallmural1_closed_1 cwallsec_mural_1.111 cwallsec_mural_1.112 cwallsec_mural_1.113 cwallsec_mural_1.114 cwallsec_mural_1.115 cwallsec_mural_1.116 cwallsec_mural_1.117 cwallsec_mural_1.118 mina anim cwallmural1_open_1 cwallsec_mural_1.111 cwallsec_mural_1.112 cwallsec_mural_1.113 cwallsec_mural_1.114 cwallsec_mural_1.115 cwallsec_mural_1.116 cwallsec_mural_1.117 cwallsec_mural_1.118 mina anim cyclops facings 2 cyclops.x71 cyclops.x72 cyclops.x31 cyclops.x32 mina anim dagger_f dagger_f.111 dagger_f.112 dagger_f.113 dagger_f.114 mina anim dancing_girl dancing_girl.111 dancing_girl.112 dancing_girl.113 mina anim dancingsword dancingsword.111 dancingsword.112 dancingsword.111 dancingsword.113 mina anim dark_elf dark_elf.111 dark_elf.112 mina anim dark_elf2 facings 2 dark_elf2.131 dark_elf2.132 dark_elf2.171 dark_elf2.172 mina anim darkblade darkblade.111 darkblade.112 darkblade.113 darkblade.114 darkblade.115 darkblade.116 darkblade.117 darkblade.116 darkblade.115 darkblade.114 darkblade.113 darkblade.112 darkblade.111 mina anim darkness blocked.111 blocked.111 blocked.111 mina anim dave dave.111 dave.112 dave.113 mina anim deathshead deathshead.111 deathshead.112 deathshead.113 deathshead.114 mina anim deathtree deathtree.111 deathtree.112 deathtree.113 deathtree.114 deathtree.115 mina anim deep_sea deep_sea.111 deep_sea.112 deep_sea.113 deep_sea.114 deep_sea.113 deep_sea.112 mina anim deep_swamp deep_swamp.111 deep_swamp.112 mina anim demilich demilich.111 demilich.112 demilich.111 demilich.113 demilich.111 mina anim demon_lord demon_lord.x11 demon_lord.x12 mina anim demonbane demonbane.111 demonbane.112 demonbane.113 demonbane.114 demonbane.115 demonbane.116 demonbane.117 demonbane.118 demonbane.119 mina anim destruction destruction.111 destruction.112 destruction.113 destruction.114 mina anim detect_magic det_magic.111 det_magic.112 det_magic.113 mina anim detect_monster det_magic.111 det_magic.112 det_magic.113 mina anim detector pedestal.112 pedestal.111 mina anim devil devil.111 devil.112 mina anim dice dice.111 dice.112 dice.113 mina anim dim_torch torch_lit1.111 torch_lit2.111 mina anim dire_wolf dwolf.171 dwolf.171 dwolf.172 dwolf.131 dwolf.131 dwolf.132 facings 2 mina anim dire_wolf_sire dwolf.171 dwolf.171 dwolf.172 dwolf.131 dwolf.131 dwolf.132 facings 2 mina anim director_1 director.111 director.112 director.113 mina anim director_2 director.121 director.122 director.123 director.124 director.125 mina anim director_3 director.131 director.132 director.133 mina anim director_4 director.141 director.142 director.143 director.144 director.145 mina anim director_5 director.151 director.152 director.153 mina anim director_6 director.161 director.162 director.163 director.164 director.165 mina anim director_7 director.171 director.172 director.173 mina anim director_8 director.181 director.182 director.183 director.184 director.185 mina anim director_turn director.111 director.112 director.113 director.121 director.123 director.125 director.131 director.132 director.133 director.141 director.143 director.145 director.151 director.152 director.153 director.161 director.163 director.165 director.171 director.172 director.173 director.181 director.183 director.185 mina anim disgusting_puddle icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.115 icor.116 icor.117 icor.118 icor.119 icor.11A icor.11B icor.11C mina anim divine_shock ball_lightning.111 ball_lightning.222 ball_lightning.333 ball_lightning.444 mina anim djinn facings 2 djinn.x31 djinn.x32 djinn.x71 djinn.x72 mina anim djinn_magenta facings 2 djinn_magenta.x11 djinn_magenta.x12 djinn_magenta.x21 djinn_magenta.x22 mina anim djinn_magenta_big facings 2 djinn_magenta_big.x11 djinn_magenta_big.x12 djinn_magenta_big.x21 djinn_magenta_big.x22 mina anim dog facings 2 dog.131 dog.132 dog.133 dog.132 dog.171 dog.172 dog.173 dog.172 mina anim dragonman facings 2 dragonman.x31 dragonman.x32 dragonman.x33 dragonman.x32 dragonman.x71 dragonman.x72 dragonman.x73 dragonman.x72 mina anim drake facings 2 drake.111 drake.112 drake.113 drake.112 drake.211 drake.212 drake.213 drake.212 mina anim dread dread.x11 dread.x12 dread.x13 dread.x14 dread.x15 dread.x16 mina anim dust_effect dust_effect.111 dust_effect.112 dust_effect.113 mina anim dwarf dwarf.111 dwarf.112 mina anim dwarf_player facings 4 dwarf_p.111 dwarf_p.112 dwarf_p.131 dwarf_p.132 dwarf_p.151 dwarf_p.152 dwarf_p.171 dwarf_p.172 mina anim dwarf_priest dwarf_pr.111 dwarf_pr.112 dwarf_pr.113 mina anim dwarf_wiz dwarf_wiz.111 dwarf_wiz.112 dwarf_wiz.113 mina anim earth_elemental elem_earth.111 elem_earth.112 mina anim earth_witch witch_earth.111 witch_earth.112 mina anim earthwall earthwall.111 earthwall.112 earthwall.113 blank.111 mina anim editcursor wizard.111 wizard.131 wizard.151 wizard.171 wizardmask.111 wizardmask.131 wizardmask.151 wizardmask.171 mina anim elec_dragon facings 2 elec_drag.171 elec_drag.172 elec_drag.131 elec_drag.132 mina anim elem_dust elem_dust.111 elem_dust.112 mina anim elem_fire_black elem_fire_black.111 elem_fire_black.112 mina anim elf facings 4 elf.111 elf.131 elf.151 elf.171 mina anim elf_1 elf_1.111 elf_1.112 elf_1.113 elf_1.112 mina anim elf_guard elf_guard.111 elf_guard.112 elf_guard.113 mina anim elf_lass elf_lass.111 elf_lass.112 mina anim elf_man elf_lad.111 elf_lad.112 mina anim elf_player facings 4 elf.111 elf.112 elf.131 elf.132 elf.151 elf.152 elf.171 elf.172 mina anim emerald emerald.111 emerald.112 mina anim enchantment enchantment.111 enchantment.112 enchantment.113 enchantment.114 enchantment.115 mina anim ent ent.x11 ent.x11 ent.x11 ent.x12 ent.x12 ent.x13 ent.x13 ent.x12 mina anim evil_ice evil_ice.111 evil_ice.112 evil_ice.113 evil_ice.114 mina anim evil_master1 evil_master.111 evil_master.112 mina anim evil_master2 evil_master2.111 evil_master2.112 mina anim evil_master3 evil_master3.111 evil_master3.112 mina anim evil_master4 facings 2 evil_master4.111 evil_master4.112 mina anim evoker_class evoker.111 evoker.112 evoker.131 evoker.132 evoker.151 evoker.152 evoker.171 evoker.172 facings 4 mina anim exit exit.111 exit.113 exit.115 exit.117 mina anim explosion explosion.111 explosion.112 explosion.113 mina anim explosion2 explosion2.111 explosion2.112 explosion2.113 mina anim faerie_dragon facings 2 fae_drag.171 fae_drag.172 fae_drag.131 fae_drag.132 mina anim farmer farmer.111 farmer.112 mina anim fear fear.111 fear.112 fear.113 mina anim fenx_player facings 4 fenx.111 fenx.112 fenx.131 fenx.132 fenx.151 fenx.152 fenx.171 fenx.172 mina anim fenx_player_bow facings 4 fenx_bow.111 fenx_bow.112 fenx_bow.113 fenx_bow.131 fenx_bow.132 fenx_bow.133 fenx_bow.151 fenx_bow.152 fenx_bow.153 fenx_bow.171 fenx_bow.172 fenx_bow.173 mina anim fenx_player_class_warrior facings 4 fenx_class_warrior.111 fenx_class_warrior.112 fenx_class_warrior.131 fenx_class_warrior.132 fenx_class_warrior.151 fenx_class_warrior.152 fenx_class_warrior.171 fenx_class_warrior.172 mina anim fenx_player_double_sword facings 4 fenx_double_sword.111 fenx_double_sword.112 fenx_double_sword.111 fenx_double_sword.131 fenx_double_sword.132 fenx_double_sword.131 fenx_double_sword.151 fenx_double_sword.152 fenx_double_sword.151 fenx_double_sword.171 fenx_double_sword.172 fenx_double_sword.171 mina anim fenx_player_karate facings 4 fenx_karate.110 fenx_karate.111 fenx_karate.110 fenx_karate.130 fenx_karate.131 fenx_karate.130 fenx_karate.150 fenx_karate.151 fenx_karate.150 fenx_karate.170 fenx_karate.171 fenx_karate.170 mina anim fenx_player_praying facings 4 fenx_praying.110 fenx_praying.111 fenx_praying.110 fenx_praying.130 fenx_praying.131 fenx_praying.130 fenx_praying.150 fenx_praying.151 fenx_praying.150 fenx_praying.170 fenx_praying.171 fenx_praying.170 mina anim fenx_player_punching facings 4 fenx_punching.110 fenx_punching.111 fenx_punching.112 fenx_punching.130 fenx_punching.131 fenx_punching.132 fenx_punching.150 fenx_punching.151 fenx_punching.152 fenx_punching.170 fenx_punching.171 fenx_punching.172 mina anim fenx_player_read_scroll facings 4 fenx_read_scroll.111 fenx_read_scroll.112 fenx_read_scroll.113 fenx_read_scroll.131 fenx_read_scroll.132 fenx_read_scroll.133 fenx_read_scroll.151 fenx_read_scroll.152 fenx_read_scroll.153 fenx_read_scroll.171 fenx_read_scroll.172 fenx_read_scroll.173 mina anim fenx_player_singing facings 4 fenx_singing.110 fenx_singing.111 fenx_singing.112 fenx_singing.130 fenx_singing.131 fenx_singing.132 fenx_singing.150 fenx_singing.151 fenx_singing.152 fenx_singing.170 fenx_singing.171 fenx_singing.172 mina anim fenx_player_spellcasting facings 4 fenx_spellcasting.111 fenx_spellcasting.112 fenx_spellcasting.111 fenx_spellcasting.131 fenx_spellcasting.132 fenx_spellcasting.131 fenx_spellcasting.151 fenx_spellcasting.152 fenx_spellcasting.151 fenx_spellcasting.171 fenx_spellcasting.172 fenx_spellcasting.171 mina anim fenx_player_sword facings 4 fenx_sword.111 fenx_sword.112 fenx_sword.111 fenx_sword.131 fenx_sword.132 fenx_sword.131 fenx_sword.151 fenx_sword.152 fenx_sword.151 fenx_sword.171 fenx_sword.172 fenx_sword.171 mina anim fiend fiend.111 fiend.112 mina anim fighter fighter.111 fighter.112 fighter.113 fighter.112 mina anim fire_dragon facings 2 fire_drag.171 fire_drag.172 fire_drag.131 fire_drag.132 mina anim fire_elemental elem_fire.111 elem_fire.112 mina anim fire_permanent burnout.111 burnout.112 burnout.113 burnout.114 burnout.115 burnout.116 burnout.117 burnout.118 burnout.119 mina anim fire_witch witch_fire.111 witch_fire.112 mina anim fireball fireball.111 fireball.112 fireball.113 mina anim firebolt firebolt.111 firebolt.111 firebolt.121 firebolt.131 firebolt.141 firebolt.151 firebolt.161 firebolt.171 firebolt.181 mina anim fireborn fireborn.111 fireborn.222 fireborn.333 fireborn.444 mina anim fireborn_player fireborn.111 fireborn.222 fireborn.333 fireborn.444 mina anim firebrand firebrand.111 firebrand.112 firebrand.113 mina anim firebreath fireball.111 fireball.112 fireball.113 mina anim firebullet firebullet.111 firebullet.111 firebullet.121 firebullet.131 firebullet.141 firebullet.151 firebullet.161 firebullet.171 firebullet.181 mina anim fireplace fireplace.111 fireplace.112 fireplace.113 mina anim firepot firepot.111 firepot.112 firepot.113 firepot.114 mina anim firestar firestar.111 firestar.112 firestar.111 firestar.112 firestar.111 firestar.112 firestar.113 mina anim flaming_tower flamingtower.x11 flamingtower.x12 flamingtower.x13 flamingtower.x11 flamingtower.x14 flamingtower.x13 flamingtower.x12 flamingtower.x14 flamingtower.x11 flamingtower.x13 flamingtower.x14 flamingtower.x12 mina anim fly_ant facings 2 fly_ant.131 fly_ant.132 fly_ant.171 fly_ant.172 mina anim fog fog.111 fog.112 fog.111 fog.111 fog.112 fog.111 fog.111 fog.112 fog.111 mina anim fog_wall fog.111 fog.112 fog.111 mina anim fogexit fog.111 empty.111 fog.111 fog.112 fog.111 fog.112 fog.111 empty.111 empty.111 mina anim forge forge.111 forge.112 forge.113 mina anim forked_lightning lightning.111 lightning.111 lightning.121 lightning.131 lightning.141 lightning.151 lightning.161 lightning.171 lightning.181 mina anim fountain fountain.111 fountain.112 fountain.113 mina anim frost_hammer frost_hammer.111 frost_hammer.112 frost_hammer.113 frost_hammer.114 mina anim frostbolt frostbolt.111 frostbolt.111 frostbolt.121 frostbolt.131 frostbolt.141 frostbolt.151 frostbolt.161 frostbolt.171 frostbolt.181 mina anim fungus fungus.111 fungus.112 fungus.113 fungus.114 fungus.115 mina anim g_worm facings 2 g_worm.x31 g_worm.x32 g_worm.x71 g_worm.x72 mina anim gaelotroll facings 2 gaelotroll.x31 gaelotroll.x32 gaelotroll.x33 gaelotroll.x32 gaelotroll.x31 gaelotroll.x32 gaelotroll.x33 gaelotroll.x32 gaelotroll.x71 gaelotroll.x72 gaelotroll.x73 gaelotroll.x72 gaelotroll.x71 gaelotroll.x72 gaelotroll.x73 gaelotroll.x72 mina anim gardengnome gardengnome.111 gardengnome.112 mina anim gargolye gargoyle.111 gargoyle.112 gargoyle.111 gargoyle.112 gargoyle.111 mina anim gateTrg1 gate_1.111 gate_1.112 gate_1.113 gate_1.114 gate_1.115 gate_1.116 gate_1.117 mina anim gateTrg2 gate_2.111 gate_2.112 gate_2.113 gate_2.113 gate_2.114 gate_2.114 gate_2.115 gate_2.115 mina anim gate_closed_1 gate_1.111 gate_1.112 gate_1.113 gate_1.114 gate_1.115 gate_1.116 gate_1.117 mina anim gate_closed_2 gate_2.111 gate_2.112 gate_2.113 gate_2.113 gate_2.114 gate_2.114 gate_2.115 gate_2.115 mina anim gate_open_1 gate_1.111 gate_1.112 gate_1.113 gate_1.114 gate_1.115 gate_1.116 gate_1.117 mina anim gate_open_2 gate_2.111 gate_2.112 gate_2.113 gate_2.113 gate_2.114 gate_2.114 gate_2.115 gate_2.115 mina anim gem gem.111 gem.112 mina anim generic_rune generic_rune.111 generic_rune.111 mina anim ggate_closed gard_gate.114 gard_gate.113 gard_gate.112 gard_gate.111 mina anim ggate_open gard_gate.114 gard_gate.113 gard_gate.112 gard_gate.111 mina anim ghast ghast.111 ghast.112 ghast.113 mina anim ghost ghost.111 ghost.112 mina anim giant giant.x11 giant.x12 mina anim giant_bat giant_bat.111 giant_bat.112 giant_bat.113 mina anim giant_chief giant_chief.x11 giant_chief.x12 mina anim giant_leader giant_leader.x11 giant_leader.x12 mina anim giantrat facings 2 giantrat.x31 giantrat.x32 giantrat.x33 giantrat.x32 giantrat.x31 giantrat.x71 giantrat.x72 giantrat.x73 giantrat.x72 giantrat.x71 mina anim girdle_con girdle_con.111 girdle_con.112 mina anim girdle_dam girdle_dam.111 girdle_dam.112 mina anim girdle_str girdle_str.111 girdle_str.112 girdle_str.113 girdle_str.114 mina anim girdle_strcon gir_strcon.111 gir_strcon.112 mina anim glovesofsun glovesofsun.111 glovesofsun.112 glovesofsun.113 mina anim glue glue.111 glue.112 mina anim gnoll gnoll.111 gnoll.112 mina anim gnoll_chief_arc gnoll_chief.111 gnoll_chief.111 mina anim gnoll_leader_arc gnoll_leader.111 gnoll_leader.111 mina anim gnome gnome.111 gnome.112 mina anim gnome2 gnome2.111 gnome2.112 mina anim gnome_player facings 4 gnome_p.111 gnome_p.112 gnome_p.131 gnome_p.132 gnome_p.151 gnome_p.152 gnome_p.171 gnome_p.172 mina anim goblin facings 4 goblin.111 goblin.112 goblin.131 goblin.132 goblin.151 goblin.152 goblin.171 goblin.172 mina anim goblin_chief_arc goblin_chief.111 goblin_chief.111 mina anim goblin_leader_arc goblin_leader.111 goblin_leader.111 mina anim god_finger god_finger.111 god_finger.112 mina anim god_power god_power.111 god_power.112 god_power.113 god_power.114 god_power.113 god_power.114 mina anim goldflagstone goldflagstone.111 flagstone.111 mina anim goldfloor goldfloor.111 woodfloor.111 mina anim goldfloor2 goldfloor2.111 woodfloor2.111 mina anim goldgrass goldgrass.111 grass.111 mina anim golem golem.111 golem.112 mina anim golem_necro gol.x11 gol.x12 mina anim golem_red golem_red.111 golem_red.112 mina anim goose facings 2 goose.171 goose.172 goose.131 goose.132 mina anim gr_hellhound facings 2 hellhound.131 hellhound.132 hellhound.133 hellhound.132 hellhound.171 hellhound.172 hellhound.173 hellhound.172 mina anim gram gram.111 gram.112 gram.113 gram.114 mina anim grate_closed_1 grate_1.111 grate_1.112 grate_1.113 grate_1.114 grate_1.115 grate_1.116 grate_1.117 grate_1.118 mina anim grate_closed_2 grate_2.111 grate_2.112 grate_2.113 grate_2.114 grate_2.115 grate_2.116 grate_2.117 grate_2.118 mina anim grate_open_1 grate_1.111 grate_1.112 grate_1.113 grate_1.114 grate_1.115 grate_1.116 grate_1.117 grate_1.118 mina anim grate_open_2 grate_2.111 grate_2.112 grate_2.113 grate_2.114 grate_2.115 grate_2.116 grate_2.117 grate_2.118 mina anim greater_dwarven_guard greater_dwarven_guard.111 greater_dwarven_guard.112 mina anim green_dragon1 facings 2 pl_dragon_g.151 pl_dragon_g.152 pl_dragon_g.171 pl_dragon_g.172 mina anim green_dragon2 facings 2 green_dragon2.151 green_dragon2.152 green_dragon2.171 green_dragon2.172 mina anim green_slime greenslime.111 greenslime.112 mina anim grey_dragon facings 2 grey_drag.171 grey_drag.172 grey_drag.131 grey_drag.132 mina anim grimreaper grimreaper.111 grimreaper.112 grimreaper.113 grimreaper.114 mina anim gryphon facings 2 gryphon.x31 gryphon.x32 gryphon.x33 gryphon.x34 gryphon.x33 gryphon.x32 gryphon.x71 gryphon.x72 gryphon.x73 gryphon.x74 gryphon.x73 gryphon.x72 mina anim gu_horn gu_horn.111 gu_horn.112 gu_horn.113 gu_horn.114 gu_horn.115 mina anim h_kobold h_kobold.111 h_kobold.112 mina anim halfling halfling.151 halfling.152 mina anim halfling2 halfling2.151 halfling2.152 mina anim halfling3 halfling3.151 halfling3.152 mina anim halfling_p facings 4 halfling.151 halfling.131 halfling.111 halfling.171 mina anim halfling_player facings 4 halfling.111 halfling.112 halfling.131 halfling.132 halfling.151 halfling.152 halfling.171 halfling.172 mina anim hammer_2 hammer_2.101 hammer_2.111 hammer_2.121 hammer_2.131 hammer_2.141 hammer_2.151 hammer_2.161 hammer_2.171 hammer_2.181 mina anim hangingfirepot hangingfirepot.111 hangingfirepot.112 hangingfirepot.113 hangingfirepot.114 mina anim healing healing.111 healing.112 healing.113 healing.114 healing.115 mina anim hedge hedge.111 hedge.112 hedge.113 blank.111 mina anim hellhound facings 2 hellhound.131 hellhound.132 hellhound.133 hellhound.132 hellhound.171 hellhound.172 hellhound.173 hellhound.172 mina anim helmetxray helmetxray.111 helmetxray.112 mina anim highangel highangel.111 highangel.112 highangel.113 highangel.114 highangel.115 highangel.116 highangel.117 highangel.118 mina anim holy_avenger holyave.111 holyave.112 holyave.113 holyave.114 holyave.115 holyave.116 holyave.117 holyave.118 holyave.119 holyave.11A holyave.11B holyave.11C mina anim holy_effect holy_effect.111 holy_effect.112 holy_effect.113 mina anim holy_priest holy_priest.111 holy_priest.211 mina anim holy_servant golem.111 golem.112 mina anim holy_word holy_word.111 holy_word.112 holy_word.113 mina anim holy_wrath holy_wrath.111 holy_wrath.112 holy_wrath.113 mina anim horse facings 1 horse.171 horse.131 mina anim human facings 4 human.111 human.131 human.151 human.171 mina anim human_player facings 4 human.111 human.112 human.131 human.132 human.151 human.152 human.171 human.172 mina anim icestorm icestorm.111 icestorm.112 icestorm.113 mina anim icor icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.111 icor.112 icor.113 icor.114 icor.115 icor.116 icor.117 icor.118 icor.119 icor.11A icor.11B icor.11C mina anim idaten idaten.111 idaten.112 mina anim igateTrg1 iron_gate1.111 iron_gate1.112 iron_gate1.113 iron_gate1.114 iron_gate1.115 iron_gate1.116 iron_gate1.117 iron_gate1.118 mina anim igateTrg2 iron_gate2.111 iron_gate2.112 iron_gate2.113 iron_gate2.114 iron_gate2.115 iron_gate2.116 mina anim igate_closed_1 iron_gate1.111 iron_gate1.112 iron_gate1.113 iron_gate1.114 iron_gate1.115 iron_gate1.116 iron_gate1.117 iron_gate1.118 mina anim igate_closed_2 iron_gate2.111 iron_gate2.112 iron_gate2.113 iron_gate2.114 iron_gate2.115 iron_gate2.116 mina anim igate_open_1 iron_gate1.111 iron_gate1.112 iron_gate1.113 iron_gate1.114 iron_gate1.115 iron_gate1.116 iron_gate1.117 iron_gate1.118 mina anim igate_open_2 iron_gate2.111 iron_gate2.112 iron_gate2.113 iron_gate2.114 iron_gate2.115 iron_gate2.116 mina anim imp facings 2 imp.171 imp.131 mina anim insect_plague ant.111 ant.112 ant.111 ant.112 mina anim jessyb jessyb.x11 jessyb.x12 jessyb.x13 jessyb.x12 mina anim keep keep.x11 keep.x12 mina anim killer_bee killerbee.111 killerbee.112 mina anim knight knight.111 knight.112 knight.113 knight.114 knight.115 mina anim kobold kobold.111 kobold.112 mina anim lamestar firestar.111 firestar.112 firestar.111 firestar.112 firestar.111 firestar.112 firestar.113 mina anim lamia facings 2 lamia.x31 lamia.x32 lamia.x71 lamia.x72 mina anim lava lava.111 lava.112 lava.113 lava.114 lava.115 mina anim lava_s lava_s.113 lava_s.112 lava_s.111 mina anim lava_sea lava_sea.111 lava_sea.112 lava_sea.113 lava_sea.114 mina anim lava_sea1 lava_sea.111 lava_sea.112 lava_sea.113 lava_sea.114 mina anim lbullet lbullet.111 lbullet.111 lbullet.121 lbullet.131 lbullet.141 lbullet.151 lbullet.161 lbullet.171 lbullet.181 mina anim lbulletwall lbull_wall.111 lbull_wall.121 lbull_wall.131 lbull_wall.141 lbull_wall.151 lbull_wall.161 lbull_wall.171 lbull_wall.181 mina anim leech facings 2 leech.131 leech.132 leech.133 leech.132 leech.171 leech.172 leech.173 leech.172 mina anim lesser_dwarven_guard lesser_dwarven_guard.111 lesser_dwarven_guard.112 mina anim lg_speedball speedball.111 speedball.112 mina anim lich lich.111 lich.112 lich.113 mina anim light sunspear.111 sunspear.112 sunspear.113 sunspear.111 sunspear.112 sunspear.113 sunspear.111 sunspear.112 sunspear.113 sunspear.111 sunspear.112 sunspear.113 mina anim lightning lightning.111 lightning.111 lightning.121 lightning.131 lightning.141 lightning.151 lightning.161 lightning.171 lightning.181 mina anim lightningwall_t light_wall.111 light_wall.121 light_wall.131 light_wall.141 light_wall.151 light_wall.161 light_wall.171 light_wall.181 mina anim liteangel liteangel.111 liteangel.112 liteangel.113 liteangel.114 mina anim living_chaos liv_chaos.111 liv_chaos.444 liv_chaos.222 liv_chaos.333 mina anim lokanth facings 2 lokanth.131 lokanth.132 lokanth.171 lokanth.172 mina anim loose_magic loose_magic.111 loose_magic.112 loose_magic.113 loose_magic.114 mina anim lord_e lord_e.111 lord_e.112 mina anim luggage luggage.111 luggage.112 luggage.113 luggage.114 luggage.115 luggage.116 luggage.117 luggage.118 mina anim mabu mabu.x11 mabu.x12 mabu.x13 mabu.x12 mina anim madman madman.111 madman.112 mina anim mage facings 4 mage.111 mage.131 mage.151 mage.171 mina anim mage_class facings 4 mage.111 mage.112 mage.131 mage.132 mage.151 mage.152 mage.171 mage.172 mina anim magi_staff magi_staff.111 magi_staff.112 magi_staff.113 magi_staff.112 mina anim magic_bow magic_bow.111 magic_bow.112 magic_bow.113 magic_bow.114 mina anim magic_missile magic_miss.131 magic_miss.131 magic_miss.151 magic_miss.141 magic_miss.161 magic_miss.111 magic_miss.171 magic_miss.121 magic_miss.181 mina anim magic_portal magic_portal.11K magic_portal.11J magic_portal.11I magic_portal.11H magic_portal.11G magic_portal.11F magic_portal.11E magic_portal.11B magic_portal.11A magic_portal.119 magic_portal.118 magic_portal.117 magic_portal.116 magic_portal.115 magic_portal.113 magic_portal.114 magic_portal.111 magic_portal.112 magic_portal.111 magic_portal.112 magic_portal.111 magic_portal.112 magic_portal.111 magic_portal.112 magic_portal.111 magic_portal.112 magic_portal.111 magic_portal.112 magic_portal.111 magic_portal.112 magic_portal.113 magic_portal.114 magic_portal.113 magic_portal.114 magic_portal.113 magic_portal.114 magic_portal.113 magic_portal.114 magic_portal.115 magic_portal.116 magic_portal.115 magic_portal.116 magic_portal.117 magic_portal.118 magic_portal.119 magic_portal.11A magic_portal.11B magic_portal.11C magic_portal.11D magic_portal.11C magic_portal.11D magic_portal.11E magic_portal.11F magic_portal.11G magic_portal.11H magic_portal.11I magic_portal.11J magic_portal.11K magic_portal.11L magic_portal.11M mina anim magma magma.111 magma.111 magma.111 magma.111 magma.111 magma.112 magma.112 magma.112 magma.112 magma.113 magma.113 magma.113 magma.113 magma.113 magma.114 magma.114 magma.114 magma.114 magma.114 magma.114 mina anim major_chaos explosion.111 burnout.11O fireball.111 ball_lightning.111 icestorm.111 confusion.111 acid_pool.111 poisoncloud.111 slow.111 paralyse.111 fear.111 mina anim man facings 4 man.151 man.131 man.151 man.171 mina anim man2 facings 4 man2.151 man2.131 man2.151 man2.171 mina anim manaball manaball.111 manaball.112 manaball.113 manaball.114 mina anim manablast manablast.111 manablast.112 manablast.113 manablast.114 mina anim manabolt facings 8 manabolt.111 manabolt.121 manabolt.131 manabolt.141 manabolt.151 manabolt.161 manabolt.171 manabolt.181 mina anim manabullet manabullet.111 manabullet.111 manabullet.121 manabullet.131 manabullet.141 manabullet.151 manabullet.161 manabullet.171 manabullet.181 mina anim manhole manhole.111 manhole.112 manhole.113 manhole.114 mina anim masamune masamune.113 masamune.112 masamune.111 masamune.114 masamune.114 mina anim mastif facings 2 mastif.131 mastif.132 mastif.133 mastif.132 mastif.171 mastif.172 mastif.173 mastif.172 mina anim mdemon facings 1 mdemon.x11 mdemon.x12 mina anim mdoor_closed_1 wdoor.111 wdoor.112 wdoor.113 wdoor.114 mina anim mdoor_closed_2 sdoor.111 sdoor.112 sdoor.113 sdoor.114 mina anim mdoor_open_1 wdoor.111 wdoor.112 wdoor.113 wdoor.114 mina anim mdoor_open_2 sdoor.111 sdoor.112 sdoor.113 sdoor.114 mina anim merchant facings 4 merchant.111 merchant.171 merchant.111 merchant.131 mina anim mercury fix_mercury.111 fix_mercury.112 mina anim mesangel mesangel.111 mesangel.112 mesangel.113 mesangel.114 mina anim meteor burnout.111 burnout.112 burnout.113 burnout.114 burnout.115 burnout.116 burnout.117 burnout.118 burnout.119 mina anim mine_secret_1_1 minedoor_4.x19 minedoor_4.x18 minedoor_4.x17 minedoor_4.x16 minedoor_4.x15 minedoor_4.x14 minedoor_4.x13 minedoor_4.x12 minedoor_4.x11 mina anim mine_secret_1_2 minedoor_4.x19 minedoor_4.x18 minedoor_4.x17 minedoor_4.x16 minedoor_4.x15 minedoor_4.x14 minedoor_4.x13 minedoor_4.x12 minedoor_4.x11 mina anim mine_secret_2_1 minedoor_8.x19 minedoor_8.x18 minedoor_8.x17 minedoor_8.x16 minedoor_8.x15 minedoor_8.x14 minedoor_8.x13 minedoor_8.x12 minedoor_8.x11 mina anim mine_secret_2_2 minedoor_8.x19 minedoor_8.x18 minedoor_8.x17 minedoor_8.x16 minedoor_8.x15 minedoor_8.x14 minedoor_8.x13 minedoor_8.x12 minedoor_8.x11 mina anim mithril mithril.111 mithril.112 mithril.113 mithril.114 mina anim mithril_ar_ele mithril_ar_ele.111 mithril_ar_ele.111 mithril_ar_ele.112 mithril_ar_ele.112 mithril_ar_ele.113 mithril_ar_ele.113 mina anim mithril_chainmail mithril_ar.111 mithril_ar.112 mithril_ar.113 mina anim monk_class facings 4 monk.111 monk.112 monk.131 monk.132 monk.151 monk.152 monk.171 monk.172 mina anim mountain_dwarf_class facings 4 mountain_dwarf.111 mountain_dwarf.112 mountain_dwarf.131 mountain_dwarf.132 mountain_dwarf.151 mountain_dwarf.152 mountain_dwarf.171 mountain_dwarf.172 mina anim mouse mouse.111 mouse.112 mina anim mover_1 director.111 director.112 director.113 mina anim mover_2 director.121 director.122 director.123 director.124 director.125 mina anim mover_3 director.131 director.132 director.133 mina anim mover_4 director.141 director.142 director.143 director.144 director.145 mina anim mover_5 director.151 director.152 director.153 mina anim mover_6 director.161 director.162 director.163 director.164 director.165 mina anim mover_7 director.171 director.172 director.173 mina anim mover_8 director.181 director.182 director.183 director.184 director.185 mina anim mover_turn director.111 director.112 director.113 director.121 director.123 director.125 director.131 director.132 director.133 director.141 director.143 director.145 director.151 director.152 director.153 director.161 director.163 director.165 director.171 director.172 director.173 director.181 director.183 director.185 mina anim mudman mudman.111 mudman.112 mina anim mushman1 facings 4 mushman1.111 mushman1.112 mushman1.131 mushman1.132 mushman1.151 mushman1.152 mushman1.171 mushman1.172 mina anim mystic_fist mystic_fist.111 mystic_fist.112 mystic_fist.113 mina anim nazgul nazgul.111 nazgul.112 mina anim necromancer necro.111 necro.112 mina anim negaball negaball.111 negaball.222 negaball.333 negaball.444 mina anim negabolt negabolt.111 negabolt.111 negabolt.121 negabolt.131 negabolt.141 negabolt.151 negabolt.161 negabolt.171 negabolt.181 mina anim neko facings 2 neko.111 neko.112 neko.113 neko.114 neko.115 neko.116 neko.117 neko.118 mina anim nightmare nightmare.111 nightmare.112 mina anim ninja facings 4 ninja.111 ninja.131 ninja.151 ninja.171 mina anim ninja2 ninja_2.111 ninja_2.112 ninja_2.113 ninja_2.112 mina anim ninja_class facings 4 ninja.111 ninja.112 ninja.131 ninja.132 ninja.151 ninja.152 ninja.171 ninja.172 mina anim northman northman.111 northman.111 northman.112 northman.112 mina anim northman_player facings 4 viking.111 viking.112 viking.131 viking.132 viking.151 viking.152 viking.171 viking.172 mina anim nun facings 4 nun.151 nun.131 nun.151 nun.171 mina anim odoorm2_closed_1 odoorm2.114 odoorm2.113 odoorm2.112 odoorm2.111 mina anim odoorm2_open_1 odoorm2.114 odoorm2.113 odoorm2.112 odoorm2.111 mina anim odoorm2bg_closed_1 odoorm2bg.114 odoorm2bg.113 odoorm2bg.112 odoorm2bg.111 mina anim odoorm2bg_open_1 odoorm2bg.114 odoorm2bg.113 odoorm2bg.112 odoorm2bg.111 mina anim odoorm2rw_closed_1 odoorm2rw.114 odoorm2rw.113 odoorm2rw.112 odoorm2rw.111 mina anim odoorm2rw_open_1 odoorm2rw.114 odoorm2rw.113 odoorm2rw.112 odoorm2rw.111 mina anim odoorn2_closed_1 odoorn2.114 odoorn2.113 odoorn2.112 odoorn2.111 mina anim odoorn2_open_1 odoorn2.114 odoorn2.113 odoorn2.112 odoorn2.111 mina anim ogre ogre.111 ogre.112 mina anim ogre_chief_arc ogre_chief.111 ogre_chief.111 mina anim ogre_leader_arc ogre_leader.111 ogre_leader.111 mina anim ogre_r ogre_r.111 ogre_r.112 mina anim oil_sea oil_sea.111 oil_sea.112 oil_sea.113 oil_sea.114 oil_sea.113 oil_sea.112 mina anim oil_sea_ultra_viscous oil_sea.111 oil_sea.112 oil_sea.113 oil_sea.114 oil_sea.113 oil_sea.112 mina anim ologhi ologhi.111 ologhi.112 mina anim orc orc.111 orc.112 mina anim orc_chief_arc orc_chief.111 orc_chief.112 mina anim orc_leader_arc orc_leader.111 orc_leader.112 mina anim paladin_class facings 4 paladin.111 paladin.112 paladin.131 paladin.132 paladin.151 paladin.152 paladin.171 paladin.172 mina anim panther facings 2 panther.131 panther.132 panther.133 panther.171 panther.172 panther.173 mina anim para_air para_air.111 para_air.112 para_air.113 para_air.114 mina anim para_earth para_earth.111 para_earth.112 para_earth.113 para_earth.112 mina anim para_fire para_fire.111 para_fire.112 mina anim para_ice facings 8 para_ice.111 para_ice.112 para_ice.113 para_ice.114 para_ice.115 para_ice.116 para_ice.117 para_ice.118 para_ice.121 para_ice.122 para_ice.123 para_ice.124 para_ice.125 para_ice.126 para_ice.127 para_ice.128 para_ice.131 para_ice.132 para_ice.133 para_ice.134 para_ice.135 para_ice.136 para_ice.137 para_ice.138 para_ice.141 para_ice.142 para_ice.143 para_ice.144 para_ice.145 para_ice.146 para_ice.147 para_ice.148 para_ice.151 para_ice.152 para_ice.153 para_ice.154 para_ice.155 para_ice.156 para_ice.157 para_ice.158 para_ice.161 para_ice.162 para_ice.163 para_ice.164 para_ice.165 para_ice.166 para_ice.167 para_ice.168 para_ice.171 para_ice.172 para_ice.173 para_ice.174 para_ice.175 para_ice.176 para_ice.177 para_ice.178 para_ice.181 para_ice.182 para_ice.183 para_ice.184 para_ice.185 para_ice.186 para_ice.187 para_ice.188 mina anim para_lava para_lava.111 para_lava.112 para_lava.113 para_lava.112 mina anim para_lightning para_light.111 para_light.112 para_light.113 mina anim para_mud para_mud.111 para_mud.112 para_mud.113 para_mud.114 para_mud.115 para_mud.114 para_mud.113 para_mud.112 mina anim para_water para_water.111 para_water.112 para_water.113 mina anim paralyze paralyse.111 paralyse.112 paralyse.113 mina anim pearl pearl.111 pearl.112 mina anim pedestal pedestal.112 pedestal.111 mina anim pedestal_trigger pedestal.112 pedestal.111 mina anim perm_magic_portal magic_portal.111 magic_portal.112 mina anim permanent_lava lava.111 lava.112 lava.113 lava.114 lava.115 mina anim pet_necro pet_necro.111 pet_necro.112 mina anim phil_phosphorus phil_phos.111 phil_phos.112 phil_phos.113 mina anim phil_salt phil_salt.111 phil_salt.112 phil_salt.113 mina anim phil_sulphur phil_sulphur.111 phil_sulphur.112 phil_sulphur.113 mina anim pirate pirate.111 pirate.112 mina anim pirate_lass pir_lass.111 pir_lass.112 mina anim pit_closed hole.111 hole.112 hole.113 hole.114 hole.115 hole.116 hole.117 hole.118 hole.119 hole.11A mina anim pit_open hole.111 hole.112 hole.113 hole.114 hole.115 hole.116 hole.117 hole.118 hole.119 hole.11A mina anim pit_white-pink-c-marble_111_closed hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 white-pink-c-marble.111 mina anim pit_white-pink-c-marble_111_open hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 white-pink-c-marble.111 mina anim pit_white-pink-c-marble_112_closed hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 white-pink-c-marble.112 mina anim pit_white-pink-c-marble_112_open hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 white-pink-c-marble.112 mina anim pit_white-pink-c-marble_113_closed hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 white-pink-c-marble.113 mina anim pit_white-pink-c-marble_113_open hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 white-pink-c-marble.113 mina anim pit_white-pink-c-marble_114_closed hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 white-pink-c-marble.114 mina anim pit_white-pink-c-marble_114_open hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 white-pink-c-marble.114 mina anim pit_white-red-c-marble_111_closed hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 white-red-c-marble.111 mina anim pit_white-red-c-marble_111_open hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 hole_white-any-c-marble.111 white-red-c-marble.111 mina anim pit_white-red-c-marble_112_closed hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 white-red-c-marble.112 mina anim pit_white-red-c-marble_112_open hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 hole_white-any-c-marble.112 white-red-c-marble.112 mina anim pit_white-red-c-marble_113_closed hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 white-red-c-marble.113 mina anim pit_white-red-c-marble_113_open hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 hole_white-any-c-marble.113 white-red-c-marble.113 mina anim pit_white-red-c-marble_114_closed hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 white-red-c-marble.114 mina anim pit_white-red-c-marble_114_open hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 hole_white-any-c-marble.114 white-red-c-marble.114 mina anim pixie pixie.111 pixie.112 pixie.111 pixie.112 pixie.111 blank.111 blank.111 mina anim pl_dragon_bl pl_dragon_bl.111 pl_dragon_bl.112 pl_dragon_bl.131 pl_dragon_bl.132 pl_dragon_bl.151 pl_dragon_bl.152 pl_dragon_bl.171 pl_dragon_bl.172 facings 4 mina anim pl_dragon_bl_spellcasting facings 4 pl_dragon_bl_spellcasting.111 pl_dragon_bl_spellcasting.112 pl_dragon_bl_spellcasting.113 pl_dragon_bl_spellcasting.131 pl_dragon_bl_spellcasting.132 pl_dragon_bl_spellcasting.133 pl_dragon_bl_spellcasting.151 pl_dragon_bl_spellcasting.152 pl_dragon_bl_spellcasting.153 pl_dragon_bl_spellcasting.171 pl_dragon_bl_spellcasting.172 pl_dragon_bl_spellcasting.173 mina anim pl_dragon_blue pl_dragon_blue.111 pl_dragon_blue.112 pl_dragon_blue.131 pl_dragon_blue.132 pl_dragon_blue.151 pl_dragon_blue.152 pl_dragon_blue.171 pl_dragon_blue.172 facings 4 mina anim pl_dragon_blue_spellcasting facings 4 pl_dragon_blue_spellcasting.111 pl_dragon_blue_spellcasting.112 pl_dragon_blue_spellcasting.113 pl_dragon_blue_spellcasting.131 pl_dragon_blue_spellcasting.132 pl_dragon_blue_spellcasting.133 pl_dragon_blue_spellcasting.151 pl_dragon_blue_spellcasting.152 pl_dragon_blue_spellcasting.153 pl_dragon_blue_spellcasting.171 pl_dragon_blue_spellcasting.172 pl_dragon_blue_spellcasting.173 mina anim pl_dragon_g pl_dragon_g.111 pl_dragon_g.112 pl_dragon_g.131 pl_dragon_g.132 pl_dragon_g.151 pl_dragon_g.152 pl_dragon_g.171 pl_dragon_g.172 facings 4 mina anim pl_dragon_g_spellcasting pl_dragon_g_spellcasting.111 pl_dragon_g_spellcasting.112 pl_dragon_g_spellcasting.113 pl_dragon_g_spellcasting.131 pl_dragon_g_spellcasting.132 pl_dragon_g_spellcasting.133 pl_dragon_g_spellcasting.151 pl_dragon_g_spellcasting.152 pl_dragon_g_spellcasting.153 pl_dragon_g_spellcasting.171 pl_dragon_g_spellcasting.172 pl_dragon_g_spellcasting.173 facings 4 mina anim pl_dragon_r facings 4 pl_dragon_r.111 pl_dragon_r.112 pl_dragon_r.131 pl_dragon_r.132 pl_dragon_r.151 pl_dragon_r.152 pl_dragon_r.171 pl_dragon_r.172 mina anim pl_dragon_r_spellcasting facings 4 pl_dragon_r_spellcasting.111 pl_dragon_r_spellcasting.112 pl_dragon_r_spellcasting.113 pl_dragon_r_spellcasting.131 pl_dragon_r_spellcasting.132 pl_dragon_r_spellcasting.133 pl_dragon_r_spellcasting.151 pl_dragon_r_spellcasting.152 pl_dragon_r_spellcasting.153 pl_dragon_r_spellcasting.171 pl_dragon_r_spellcasting.172 pl_dragon_r_spellcasting.173 mina anim pl_half_orc facings 4 pl_half_orc.111 pl_half_orc.112 pl_half_orc.131 pl_half_orc.132 pl_half_orc.151 pl_half_orc.152 pl_half_orc.171 pl_half_orc.172 mina anim player_changer teleporter.111 teleporter.112 teleporter.113 mina anim poison_fog poisoncloud.111 poisoncloud.112 poisoncloud.113 mina anim poison_fog_sign poisoncloud.111 poisoncloud.112 poisoncloud.113 mina anim poisonbullet poisonbullet.111 poisonbullet.111 poisonbullet.121 poisonbullet.131 poisonbullet.141 poisonbullet.151 poisonbullet.161 poisonbullet.171 poisonbullet.181 mina anim poisoncloud poisoncloud.111 poisoncloud.112 poisoncloud.113 mina anim polarbear polarbear.x31 polarbear.x32 polarbear.x71 polarbear.x72 facings 2 mina anim polymorph polymorph.111 polymorph.112 polymorph.113 polymorph.114 mina anim postman facings 2 postman.131 postman.132 postman.171 postman.172 mina anim power_crystal power_crystal.111 power_crystal.112 power_crystal.113 power_crystal.114 mina anim priest facings 4 priest.111 priest.131 priest.151 priest.171 mina anim priest_class facings 4 priest.111 priest.112 priest.131 priest.132 priest.151 priest.152 priest.171 priest.172 mina anim princess princess.111 princess.112 princess.113 princess.112 mina anim prisoner prisoner.111 prisoner.111 prisoner.111 prisoner.111 prisoner.112 prisoner.112 mina anim protection protection.111 protection.112 protection.113 protection.114 protection.115 protection.116 protection.117 mina anim pup facings 2 pup.131 pup.132 pup.133 pup.132 pup.131 pup.171 pup.172 pup.173 pup.172 pup.171 mina anim purple_worm facings 2 purple_worm.x31 purple_worm.x71 mina anim pyromaniac pyromaniac.111 pyromaniac.112 pyromaniac.113 pyromaniac.114 mina anim quaathu quaathu.x11 quaathu.x12 mina anim quetzalcoatl_player facings 2 quetzalcoatl.131 quetzalcoatl.132 quetzalcoatl.171 quetzalcoatl.172 mina anim quicksilver_sea quicksilver_sea.111 quicksilver_sea.112 quicksilver_sea.113 quicksilver_sea.114 quicksilver_sea.113 quicksilver_sea.112 mina anim raas facings 2 raas.171 raas.131 mina anim rain rain.111 rain.112 rain.113 rain.114 mina anim red_dragon1 facings 2 pl_dragon_r.151 pl_dragon_r.152 pl_dragon_r.171 pl_dragon_r.172 mina anim red_dragon2 facings 2 red_dragon2.151 red_dragon2.152 red_dragon2.171 red_dragon2.172 mina anim redweak_wall_3 redcwall_w_0.111 redcwall_w_0.112 redcwall_w_0.113 redcwall_w_0.114 redcwall_w_0.115 redcwall_w_0.116 redcwall_w_0.117 redcwall_w_0.118 redcwall_w_0.119 redcwall_w_0.11A mina anim redweak_wall_4 redcwall_w_1.111 redcwall_w_1.112 redcwall_w_1.113 redcwall_w_1.114 redcwall_w_1.115 redcwall_w_1.116 redcwall_w_1.117 redcwall_w_1.118 redcwall_w_1.119 mina anim reflector reflector.111 reflector.112 reflector.113 reflector.112 mina anim ring ring.111 ring.112 ring.113 ring.114 ring.115 ring.116 mina anim ring_acid ring_acid.111 ring_acid.112 ring_acid.111 mina anim ring_doom ring_doom.111 ring_doom.112 ring_doom.111 mina anim ring_fire ring_fire.111 ring_fire.112 ring_fire.111 mina anim ring_ice ring_ice.111 ring_ice.112 ring_ice.111 mina anim ring_nodrain ring_drain.111 ring_drain.112 ring_drain.113 ring_drain.114 mina anim ring_saint ring_saint.111 ring_saint.112 ring_saint.111 mina anim ring_woe ring_woe.111 ring_woe.112 ring_woe.111 mina anim robe_midnight robe_midnight.111 robe_midnight.112 robe_midnight.113 mina anim rod_heavy rod_heavy.111 rod_heavy.112 rod_heavy.113 mina anim rod_light rod_light.111 rod_light.112 rod_light.113 mina anim ruby ruby.111 ruby.112 mina anim rune_antimagic rune_antimagic.111 rune_antimagic.111 mina anim rune_ball_lightning rune_blightning.111 rune_blightning.111 mina anim rune_blast rune_blast.111 explosion.111 mina anim rune_burning_hands rune_fire.111 fireball.111 mina anim rune_confusion rune_confusion.111 confusion.111 mina anim rune_create_bomb rune_bomb.111 rune_bomb.111 mina anim rune_death rune_death.111 rune_death.111 mina anim rune_dragonbreath rune_fire.111 fireball.111 mina anim rune_drain_magic drain_magic.111 drain_magic.111 mina anim rune_fire rune_fire.111 fireball.111 mina anim rune_frost rune_frost.111 icestorm.111 mina anim rune_heal rune_heal.111 rune_heal.111 mina anim rune_icestorm rune_frost.111 icestorm.111 mina anim rune_large_fireball rune_fireball.111 rune_fireball.111 mina anim rune_large_icestorm rune_frost.111 icestorm.111 mina anim rune_medium_fireball rune_fireball.111 rune_fireball.111 mina anim rune_paralysis rune_paralysis.111 rune_paralysis.112 mina anim rune_poison_cloud rune_pcloud.111 poisoncloud.111 mina anim rune_regenerate_spellpoints rune_sp_res.111 rune_sp_res.111 mina anim rune_restoration rune_heal.111 rune_heal.111 mina anim rune_shock rune_shock.111 rune_shock.111 mina anim rune_small_lightning rune_lightning.111 rune_lightning.111 mina anim rune_summon_air_elemental rune_summon_air.111 rune_summon_air.111 mina anim rune_summon_devil rune_summon.111 rune_summon.111 mina anim rune_summon_earth_elemental rune_sum_earth.111 rune_sum_earth.111 mina anim rune_summon_fire_elemental rune_sum_fire.111 rune_sum_fire.111 mina anim rune_summon_water_elemental rune_sum_water.111 rune_sum_water.111 mina anim rune_transferrence rune_transfer.111 rune_transfer.111 mina anim rustmonster facings 2 rustmonste.131 rustmonste.132 rustmonste.171 rustmonste.172 mina anim s_barrack_up s_barrack_u.x11 s_barrack_u.x12 mina anim s_barrack_up_2 s_barrack_u.x11 s_barrack_u.x12 mina anim s_mastif facings 2 s_mastif.131 s_mastif.132 s_mastif.133 s_mastif.132 s_mastif.171 s_mastif.172 s_mastif.173 s_mastif.172 mina anim s_wyvern facings 2 s_wyvern.x31 s_wyvern.x32 s_wyvern.x71 s_wyvern.x72 mina anim sage facings 4 sage.111 sage.131 sage.151 sage.171 mina anim sandy sandy.112 sandy.113 sandy.114 sandy.115 sandy.114 sandy.113 sandy.112 mina anim sapphire sapphire.111 sapphire.112 mina anim scorpion scorpion.111 scorpion.112 mina anim sea sea.111 sea.112 sea.113 sea.114 sea.113 sea.112 mina anim serp_man facings 2 serp_man.131 serp_man.132 serp_man.171 serp_man.172 mina anim serp_priest facings 2 serp_priest.131 serp_priest.171 mina anim serpent facings 2 serpent.x31 serpent.x32 serpent.x71 serpent.x72 mina anim serpentman_player facings 4 serpentman.111 serpentman.112 serpentman.131 serpentman.132 serpentman.151 serpentman.152 serpentman.171 serpentman.172 mina anim shadow shadow.111 shadow.112 mina anim shadow_dragon facings 2 shadow_dragon.x31 shadow_dragon.x61 mina anim shadowpup facings 2 panther.131 panther.132 blank.111 panther.133 blank.111 panther.171 panther.172 blank.111 panther.173 blank.111 mina anim shadowtiger facings 2 shadowtiger.x31 shadowtiger.x32 shadowtiger.x33 shadowtiger.x34 shadowtiger.x32 blank.111 blank.111 blank.111 blank.111 blank.111 shadowtiger.x31 blank.111 blank.111 blank.111 shadowtiger.x71 shadowtiger.x72 shadowtiger.x73 shadowtiger.x74 shadowtiger.x72 blank.111 blank.111 blank.111 blank.111 blank.111 shadowtiger.x71 blank.111 blank.111 blank.111 mina anim shallow_sea shallow_sea.111 shallow_sea.112 shallow_sea.113 shallow_sea.114 shallow_sea.113 shallow_sea.112 mina anim sheep facings 1 sheep.131 sheep.171 mina anim shell shell.112 shell.111 shell.121 shell.131 shell.141 shell.151 shell.161 shell.171 shell.181 mina anim shield_gaea earth_shield.111 earth_shield.112 earth_shield.113 earth_shield.114 earth_shield.113 earth_shield.112 mina anim shining_finger shining_finger.111 shining_finger.112 mina anim shockwave explosion.111 explosion.112 explosion.113 mina anim shovel_1 shovel_1.111 shovel_1.112 shovel_1.113 shovel_1.114 shovel_1.115 mina anim siegfried siegfried.111 siegfried.112 mina anim skeletalmage skeletalmage.111 skeletalmage.112 skeletalmage.113 skeletalmage.112 mina anim skeleton skeleton.111 skeleton.112 mina anim skeleton_chief_arc skeleton_chief.111 skeleton_chief.111 mina anim skeleton_leader_arc skeleton_leader.111 skeleton_leader.111 mina anim skree facings 2 skree.x31 skree.x32 skree.x33 skree.x71 skree.x72 skree.x73 mina anim skull skull.111 skull.112 mina anim skullcleaver skullcleav.111 skullcleav.112 skullcleav.113 skullcleav.114 mina anim slime slime.111 slime.112 slime.113 mina anim slimecrawler slimecrawler.111 slimecrawler.112 slimecrawler.113 slimecrawler.112 mina anim slotmachine1 slotmachine1.111 slotmachine1.112 mina anim slotmachine2 slotmachine2.111 slotmachine2.112 mina anim slotmachine3 slotmachine3.111 slotmachine3.112 mina anim slow slow.111 slow.112 slow.113 mina anim slug facings 2 slug.x31 slug.x32 slug.x71 slug.x72 mina anim small_troll smalltroll.111 smalltroll.112 mina anim smallt_green smallt_green.111 smallt_green.112 mina anim smover_1 pmarrow.111 pmarrow.112 pmarrow.113 mina anim smover_2 pmarrow.121 pmarrow.122 pmarrow.123 pmarrow.124 pmarrow.125 mina anim smover_3 pmarrow.131 pmarrow.132 pmarrow.133 mina anim smover_4 pmarrow.141 pmarrow.142 pmarrow.143 pmarrow.144 pmarrow.145 mina anim smover_5 pmarrow.151 pmarrow.152 pmarrow.153 mina anim smover_6 pmarrow.161 pmarrow.162 pmarrow.163 pmarrow.164 pmarrow.165 mina anim smover_7 pmarrow.171 pmarrow.172 pmarrow.173 mina anim smover_8 pmarrow.181 pmarrow.182 pmarrow.183 pmarrow.184 pmarrow.185 mina anim smover_turn pmarrow.111 pmarrow.112 pmarrow.113 pmarrow.121 pmarrow.123 pmarrow.125 pmarrow.131 pmarrow.132 pmarrow.133 pmarrow.141 pmarrow.143 pmarrow.145 pmarrow.151 pmarrow.152 pmarrow.153 pmarrow.161 pmarrow.163 pmarrow.165 pmarrow.171 pmarrow.172 pmarrow.173 pmarrow.181 pmarrow.183 pmarrow.185 mina anim snake snake.111 snake.112 snake.113 mina anim snake_golem snake.111 snake.112 mina anim snow_c snow_c.111 snow_c.112 snow_c.113 snow_c.114 mina anim snowball snowball.111 snowball.111 snowball.121 snowball.131 snowball.141 snowball.151 snowball.161 snowball.171 snowball.181 mina anim snowstorm icestorm.111 icestorm.112 icestorm.113 mina anim sorcerer_class sorcerer.111 sorcerer.112 sorcerer.131 sorcerer.132 sorcerer.151 sorcerer.152 sorcerer.171 sorcerer.172 facings 4 mina anim sparkshower sparkshower.111 sparkshower.112 sparkshower.113 mina anim spear spear.101 spear.111 spear.121 spear.131 spear.141 spear.151 spear.161 spear.171 spear.181 mina anim spear_ixalovh spear_ixalovh.111 spear_ixalovh.112 spear_ixalovh.113 mina anim speedball speedball.111 speedball.112 mina anim speedballwall speedbwall.111 speedbwall.112 mina anim speedboots speedboots.111 speedboots.112 speedboots.113 speedboots.112 mina anim sphinx facings 2 sphinx.x31 sphinx.x71 mina anim spider facings 8 spider.111 spider.112 spider.113 spider.114 spider.121 spider.122 spider.123 spider.124 spider.131 spider.132 spider.133 spider.134 spider.141 spider.142 spider.143 spider.144 spider.151 spider.152 spider.153 spider.154 spider.161 spider.162 spider.163 spider.164 spider.171 spider.172 spider.173 spider.174 spider.181 spider.182 spider.183 spider.184 mina anim spider_gen spider_web.111 spider_web.112 mina anim spider_web spider_web.111 spider_web.112 mina anim spike_closed spike.122 spike.121 spike.119 spike.118 spike.117 spike.116 spike.115 spike.114 spike.113 spike.112 spike.111 mina anim spike_hidden spike.110 spike.119 spike.118 spike.117 spike.116 spike.115 spike.114 spike.113 spike.112 spike.111 mina anim spike_moving spike.122 spike.121 spike.120 spike.119 spike.118 spike.117 spike.116 spike.115 spike.114 spike.113 spike.112 spike.111 mina anim spike_open spike.122 spike.121 spike.119 spike.118 spike.117 spike.116 spike.115 spike.114 spike.113 spike.112 spike.111 mina anim spikes_closed spikes.119 spikes.118 spikes.117 spikes.116 spikes.115 spikes.114 spikes.113 spikes.112 spikes.111 mina anim spikes_hidden spikes.110 spikes.118 spikes.117 spikes.116 spikes.115 spikes.114 spikes.113 spikes.112 spikes.111 mina anim spikes_moving spikes.119 spikes.118 spikes.117 spikes.116 spikes.115 spikes.114 spikes.113 spikes.112 spikes.111 mina anim spikes_open spikes.119 spikes.118 spikes.117 spikes.116 spikes.115 spikes.114 spikes.113 spikes.112 spikes.111 mina anim spinner_-135 spinner.111 spinner.113 spinner.115 spinner.117 spinner.119 spinner.11B spinner.11D mina anim spinner_-45 spinner.111 spinner.112 spinner.113 spinner.114 spinner.115 spinner.116 spinner.117 spinner.118 spinner.119 spinner.11A spinner.11B spinner.11C spinner.11D mina anim spinner_-90 spinner.111 spinner.112 spinner.113 spinner.114 spinner.115 spinner.116 spinner.117 spinner.118 spinner.119 spinner.11A spinner.11B spinner.11C spinner.11D mina anim spinner_135 spinner.11D spinner.11B spinner.119 spinner.117 spinner.115 spinner.113 spinner.111 mina anim spinner_180 spinner.111 spinner.114 spinner.117 spinner.11A spinner.11D mina anim spinner_45 spinner.11D spinner.11C spinner.11B spinner.11A spinner.119 spinner.118 spinner.117 spinner.116 spinner.115 spinner.114 spinner.113 spinner.112 spinner.111 mina anim spinner_90 spinner.11D spinner.11C spinner.11B spinner.11A spinner.119 spinner.118 spinner.117 spinner.116 spinner.115 spinner.114 spinner.113 spinner.112 spinner.111 mina anim spit_ant facings 2 spit_ant.131 spit_ant.132 spit_ant.131 spit_ant.132 spit_ant.133 spit_ant.132 spit_ant.171 spit_ant.172 spit_ant.171 spit_ant.172 spit_ant.173 spit_ant.172 mina anim spock spock.111 spock.112 mina anim staff staff.111 staff.111 staff.111 staff.111 staff.112 staff.113 staff.114 staff.115 staff.114 staff.113 staff.112 staff.111 mina anim stalker stalker.112 stalker.111 stalker.112 blank.111 stalker.112 stalker.111 stalker.112 blank.111 blank.111 blank.111 mina anim steambolt steam.111 steam.112 steam.111 steam.112 mina anim sting sting.111 sting.112 sting.113 sting.114 sting.113 sting.112 mina anim stove stove.111 stove.112 stove.113 mina anim stwall_closed_1 stwallsec.111 stwallsec.112 stwallsec.113 stwallsec.114 stwallsec.115 stwallsec.116 stwallsec.117 stwallsec.118 mina anim stwall_open_1 stwallsec.111 stwallsec.112 stwallsec.113 stwallsec.114 stwallsec.115 stwallsec.116 stwallsec.117 stwallsec.118 mina anim sunspear sunspear.111 sunspear.112 sunspear.113 mina anim swashbuckler facings 4 swashbuckl.111 swashbuckl.151 swashbuckl.171 swashbuckl.131 mina anim swashbuckler_class facings 4 swashbuckl.111 swashbuckl.112 swashbuckl.131 swashbuckl.132 swashbuckl.152 swashbuckl.151 swashbuckl.171 swashbuckl.172 mina anim t_dagger t_dagger.101 t_dagger.111 t_dagger.121 t_dagger.131 t_dagger.141 t_dagger.151 t_dagger.161 t_dagger.171 t_dagger.181 mina anim tear_gaea tear.111 tear.112 tear.113 tear.114 mina anim teleporter teleporter.111 teleporter.112 teleporter.113 mina anim temp_fog fog.111 fog.112 fog.111 fog.111 fog.112 fog.111 fog.111 fog.112 fog.111 mina anim tentacle blank.111 blank.111 blank.111 tentacle.111 tentacle.112 tentacle.113 tentacle.112 tentacle.111 mina anim tentacle2 tentacle2.111 tentacle2.112 tentacle2.113 tentacle2.112 tentacle2.111 blank.111 blank.111 blank.111 mina anim thewheel_short_ccwise-back thewheel_short.111 thewheel_short.111 thewheel_short.111 thewheel_short.111 thewheel_short.111 thewheel_short.112 thewheel_short.113 thewheel_short.114 thewheel_short.115 thewheel_short.115 thewheel_short.115 thewheel_short.114 thewheel_short.113 thewheel_short.113 thewheel_short.112 thewheel_short.111 thewheel_short.111 thewheel_short.111 mina anim thewheel_tall_2_ccwise-back thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x12 thewheel_tall.x13 thewheel_tall.x14 thewheel_tall.x15 thewheel_tall.x15 thewheel_tall.x15 thewheel_tall.x14 thewheel_tall.x13 thewheel_tall.x13 thewheel_tall.x12 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 mina anim thewheel_tall_ccwise-back thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x12 thewheel_tall.x13 thewheel_tall.x14 thewheel_tall.x15 thewheel_tall.x15 thewheel_tall.x15 thewheel_tall.x14 thewheel_tall.x13 thewheel_tall.x13 thewheel_tall.x12 thewheel_tall.x11 thewheel_tall.x11 thewheel_tall.x11 mina anim thief facings 4 thief.111 thief.131 thief.151 thief.171 mina anim thief_1 facings 4 thief.111 thief.131 thief.151 thief.171 mina anim thief_class facings 4 thief.111 thief.112 thief.131 thief.132 thief.151 thief.152 thief.171 thief.172 mina anim thundar_bolt thunder_bolt.101 thunder_bolt.111 thunder_bolt.121 thunder_bolt.131 thunder_bolt.141 thunder_bolt.151 thunder_bolt.161 thunder_bolt.171 thunder_bolt.181 mina anim titan facings 2 titan.x71 titan.x72 titan.x73 titan.x73 titan.x72 titan.x71 titan.x31 titan.x32 titan.x33 titan.x33 titan.x32 titan.x31 mina anim torch_1 torch_lit1.111 torch_lit2.111 mina anim torch_cyan torch_cyan.111 torch_cyan.112 mina anim torch_indigo torch_indigo.111 torch_indigo.112 mina anim torch_vermilion torch_vermilion.111 torch_vermilion.112 mina anim town_portal magic_portal.111 magic_portal.112 mina anim town_portal_open magic_portal.11M magic_portal.11L magic_portal.11K magic_portal.11J magic_portal.11I magic_portal.11H magic_portal.11G magic_portal.11F magic_portal.11E magic_portal.11D magic_portal.11C magic_portal.11B magic_portal.11A magic_portal.119 magic_portal.118 magic_portal.117 magic_portal.116 magic_portal.115 magic_portal.114 magic_portal.113 magic_portal.112 magic_portal.111 mina anim trap trap.111 trap.111 mina anim trap_blades blades.111 blades.111 mina anim trap_diseased_needle needle.111 needle.111 mina anim trap_needle needle.111 needle.111 mina anim trap_rocks falling_rocks.111 falling_rocks.111 mina anim trap_spike_pit spiked_pit.111 spiked_pit.111 mina anim trap_spikes2 tspikes.111 tspikes.111 mina anim trapdoor_1 trapdoor_1.111 hole.111 mina anim trapdoor_2 trapdoor_2.111 hole.111 mina anim trapdoor_3 trapdoor_3.111 hole.111 mina anim trapdoor_4 trapdoor_4.111 hole.111 mina anim trident trident.101 trident.111 trident.121 trident.131 trident.141 trident.151 trident.161 trident.171 trident.181 mina anim trigger handle.111 handle.112 mina anim troll troll.x11 troll.x12 troll.x13 troll.x12 mina anim troll_player facings 4 troll_p.111 troll_p.112 troll_p.131 troll_p.132 troll_p.151 troll_p.152 troll_p.171 troll_p.172 mina anim turn_undead turnundead.111 turnundead.112 turnundead.113 mina anim turningboat facings 8 turningboat.x11 turningboat.x21 turningboat.x31 turningboat.x41 turningboat.x51 turningboat.x61 turningboat.x71 turningboat.x81 mina anim u_horn u_horn.111 u_horn.112 u_horn.113 u_horn.114 u_horn.115 mina anim uk_sd uk_sd.111 uk_sd.112 uk_sd.113 uk_sd.114 uk_sd.115 uk_sd.116 uk_sd.117 mina anim unicorn facings 2 unicorn.x31 unicorn.x32 unicorn.x33 unicorn.x71 unicorn.x72 unicorn.x73 mina anim unusual_kobold unusual_kobold.111 unusual_kobold.112 mina anim uw_sword uw_sword.111 uw_sword.112 uw_sword.113 uw_sword.114 uw_sword.115 mina anim vampire vampire.111 vampire.111 vampire.112 vampire.112 vampire.112 vampire.112 mina anim viking facings 4 viking.111 viking.131 viking.151 viking.171 mina anim violin violin.111 violin.112 violin.113 violin.114 violin.115 violin.116 violin.117 violin.119 violin.11A violin.11B violin.11C violin.11D mina anim vitriol_pool v_pool.111 v_pool.112 mina anim vitriol_splash v_splash.111 v_splash.112 mina anim wand wand.112 wand.113 mina anim war_ant facings 2 war_ant.131 war_ant.132 war_ant.171 war_ant.172 mina anim warlock_class facings 4 mage.111 mage.112 mage.131 mage.132 mage.151 mage.152 mage.171 mage.172 mina anim warrior facings 4 warrior.111 warrior.131 warrior.151 warrior.171 mina anim warrior_1 warrior.111 warrior.131 warrior.151 warrior.171 facings 4 mina anim warrior_blue facings 4 warrior_blue.111 warrior_blue.131 warrior_blue.151 warrior_blue.171 mina anim warrior_class facings 4 warrior.111 warrior.112 warrior.131 warrior.132 warrior.151 warrior.152 warrior.171 warrior.172 mina anim warrior_green facings 4 warrior_green.111 warrior_green.131 warrior_green.151 warrior_green.171 mina anim warrior_grey facings 4 warrior_grey.111 warrior_grey.131 warrior_grey.151 warrior_grey.171 mina anim warrior_lblue facings 4 warrior_lblue.111 warrior_lblue.131 warrior_lblue.151 warrior_lblue.171 mina anim warrior_red facings 4 warrior_red.111 warrior_red.131 warrior_red.151 warrior_red.171 mina anim water_elemental elem_water.111 elem_water.112 mina anim water_witch witch_water.111 witch_water.112 mina anim wave wave.111 wave.112 wave.113 mina anim wdsm wdsm.111 wdsm.112 wdsm.113 mina anim weak_wall_1 awall_w_0.111 awall_w_0.112 awall_w_0.113 awall_w_0.114 awall_w_0.115 awall_w_0.116 awall_w_0.117 mina anim weak_wall_2 awall_w_1.111 awall_w_1.112 awall_w_1.113 awall_w_1.114 awall_w_1.115 awall_w_1.116 awall_w_1.117 awall_w_1.118 awall_w_1.119 awall_w_1.11A mina anim weak_wall_3 cwall_w_0.111 cwall_w_0.112 cwall_w_0.113 cwall_w_0.114 cwall_w_0.115 cwall_w_0.116 cwall_w_0.117 cwall_w_0.118 cwall_w_0.119 cwall_w_0.11A mina anim weak_wall_4 cwall_w_1.111 cwall_w_1.112 cwall_w_1.113 cwall_w_1.114 cwall_w_1.115 cwall_w_1.116 cwall_w_1.117 cwall_w_1.118 cwall_w_1.119 mina anim weak_wall_5 bwall_w_0.111 bwall_w_0.112 bwall_w_0.113 bwall_w_0.114 bwall_w_0.115 bwall_w_0.116 bwall_w_0.117 mina anim weak_wall_6 bwall_w_1.111 bwall_w_1.112 bwall_w_1.113 bwall_w_1.114 bwall_w_1.115 bwall_w_1.116 bwall_w_1.117 mina anim westcwall_closed_1 westcwallsec.111 westcwallsec.112 westcwallsec.113 westcwallsec.114 westcwallsec.115 westcwallsec.116 westcwallsec.117 westcwallsec.118 mina anim westcwall_open_1 westcwallsec.111 westcwallsec.112 westcwallsec.113 westcwallsec.114 westcwallsec.115 westcwallsec.116 westcwallsec.117 westcwallsec.118 mina anim westweak_wall_3 westcwall_w_0.111 westcwall_w_0.112 westcwall_w_0.113 westcwall_w_0.114 westcwall_w_0.115 westcwall_w_0.116 westcwall_w_0.117 westcwall_w_0.118 westcwall_w_0.119 westcwall_w_0.11A mina anim westweak_wall_4 westcwall_w_1.111 westcwall_w_1.112 westcwall_w_1.113 westcwall_w_1.114 westcwall_w_1.115 westcwall_w_1.116 westcwall_w_1.117 westcwall_w_1.118 westcwall_w_1.119 mina anim whim facings 8 whim.111 whim.112 whim.121 whim.122 whim.131 whim.132 whim.141 whim.142 whim.151 whim.152 whim.161 whim.162 whim.171 whim.172 whim.181 whim.182 mina anim whirlwind_exit elem_air.111 elem_air.112 empty.111 elem_air.111 elem_air.112 empty.111 empty.111 mina anim wight wight.111 wight.112 wight.113 wight.114 mina anim windstorm windstorm.111 windstorm.112 windstorm.113 mina anim witch_chaos facings 4 witch_air.111 witch_air.112 witch_chaos.112 witch_chaos.111 witch_earth.111 witch_earth.112 witch_chaos.112 witch_chaos.111 witch_water.111 witch_water.112 witch_chaos.112 witch_chaos.111 witch_fire.111 witch_fire.112 witch_chaos.112 witch_chaos.111 mina anim wiz_hat wiz_hat.111 wiz_hat.112 wiz_hat.113 mina anim wizard facings 4 wizard.111 wizard.131 wizard.151 wizard.171 mina anim wizard_blue facings 4 wizard_blue.111 wizard_blue.131 wizard_blue.151 wizard_blue.171 mina anim wizard_class facings 4 wizard.111 wizard.131 wizard.151 wizard.171 mina anim wizard_green facings 4 wizard_green.111 wizard_green.131 wizard_green.151 wizard_green.171 mina anim wizard_tower wizard_tower.x11 wizard_tower.x12 wizard_tower.x13 mina anim wizard_white facings 4 wizard_white.111 wizard_white.131 wizard_white.151 wizard_white.171 mina anim wizard_yellow facings 4 wizard_yellow.111 wizard_yellow.131 wizard_yellow.151 wizard_yellow.171 mina anim wolf wolf.171 wolf.171 wolf.172 wolf.131 wolf.131 wolf.132 facings 2 mina anim woman facings 4 woman.151 woman.131 woman.151 woman.171 mina anim woman2 woman2.111 woman2.112 woman2.113 woman2.112 mina anim woman3 facings 3 woman3.111 woman3.112 woman3.113 mina anim work_ant facings 2 work_ant.131 work_ant.132 work_ant.171 work_ant.172 mina anim worthless_dragon facings 2 worthless_dragon.x71 worthless_dragon.x72 worthless_dragon.x73 worthless_dragon.x72 worthless_dragon.x31 worthless_dragon.x32 worthless_dragon.x33 worthless_dragon.x32 mina anim wraith wraith.111 wraith.112 wraith.113 mina anim wraith_player facings 4 wraithp.111 wraithp.112 wraithp.131 wraithp.132 wraithp.151 wraithp.152 wraithp.171 wraithp.172 mina anim wraith_player_feeding facings 4 wraith_player_feeding.111 wraith_player_feeding.112 wraith_player_feeding.113 wraith_player_feeding.131 wraith_player_feeding.132 wraith_player_feeding.133 wraith_player_feeding.151 wraith_player_feeding.152 wraith_player_feeding.153 wraith_player_feeding.171 wraith_player_feeding.172 wraith_player_feeding.173 mina anim wrathful_eye sunspear.111 sunspear.112 sunspear.113 mina anim wwall_weak_1 wwall_w_0.111 wwall_w_0.112 wwall_w_0.113 wwall_w_0.114 wwall_w_0.115 wwall_w_0.116 wwall_w_0.117 mina anim wwall_weak_2 wwall_w_1.111 wwall_w_1.112 wwall_w_1.113 wwall_w_1.114 wwall_w_1.115 wwall_w_1.116 wwall_w_1.117 mina anim wyvern facings 2 wyvern.x31 wyvern.x32 wyvern.x71 wyvern.x72 mina anim xan xan.111 xan.112 mina anim zombie zombie.111 zombie.112 zombie.113 zombie.112 mina ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/def_help�����������������������������������������������������������������������0000644�0000145�0000012�00000000224�11731300544�012735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������How to use help: 'help topics (list of help topics) 'help commands (list of valid commands) 'help <command> (help on a topic or command) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/races��������������������������������������������������������������������������0000644�0000145�0000012�00000007324�11731300544�012274� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # the races file # # To start a new race category w/ 'RACE' identifier # list the name of the archetypes singly on lines below # # Each arch entered will have thei op->race reset to # the value listed for the last occuring 'RACE'. Also, # if the arch is a creature, it is added to a linked # list of monsters that all have the same race. # Any type of archetype may be listed, but monsters # should be ordered by inherent level value/exp # # Prepending a '!' will prevent an item from having its # op->race field reset to RACE. # # Prepending a '@' will prevent a creature from having its # arch listed on the summoning list. # # You can have an entry with both '@' and '!' (ie "@!<name>") # but that is the same as not listing the arch! # # RACE undead generate_ghost generate_zombie generate_skeleton generate_skull generate_vampire ghost zombie skeleton grimreaper wight wraith ghast nightmare spectre vampire skull lich demilich dave nazgul RACE demon generate_devil imp devil raas big_demon demon_lord Greater_Demon belzebub jessyb bone_head evil_master1 evil_master2 evil_master3 evil_master4 RACE angel angel liteangel mesangel ArchAngel RACE goblin generate_kobold generate_goblin generate_orc generate_gnoll kobold goblin orc gnoll ologhi h_kobold unusual_kobold RACE troll small_troll troll gaelotroll RACE faerie generate_pixie generate_stalker pixie elf_1 sandy stalker dark_elf unicorn faerie_dragon deathtree ent lamia RACE animal generate_bat generate_mouse generate_panther generate_scorpion mouse bat dog panther giant_bat scorpion wolf bear rustmonster shadowpup polarbear dire_wolf behemoth shadowtiger giantrat pet_necro neko RACE bird generate_bird chicken goose bird RACE reptile generate_serp_man snake serpent serp_man cobra serp_priest fire_serpent RACE slime blob slime fungus acid_sphere green_slime black_pudding RACE unnatural generate_beholder beholder sphinx baslic dread golem_necro RACE dragon generate_dragon @pl_dragon dragon baby_dragon chinese_dragon big_elec big_dragon dragonman Cwyvern big_dragon_worthless RACE water_elemental !para_mud para_water para_ice water_elemental water_witch RACE fire_elemental para_fire para_lava fire_elemental fire_witch RACE air_elemental para_air para_lightning air_elemental air_witch RACE earth_elemental para_mud para_earth earth_elemental earth_witch RACE giant generate_ogre generate_giant ogre giant titan DK big_wiz cyclops EDK mabu RACE human generate_madman charwoman prisoner crone guildmaster sage woman man c_sage c_woman c_man princess fighter thief_1 ninja_1 ninja2 conjurer2 warrior_1 pirate northman pirate_lass madman conjurer guard light_guard pyromaniac medium_guard knight lord_e necromancer siegfried RACE chess chess_pawn chess_rook chess_knight chess_bishop chess_queen chess_king RACE chaos living_chaos chaos_witch RACE dwarf gnome dwarf @dwarf_player dwarf_priest dwarf_wiz lesser_dwarven_guard greater_dwarven_guard RACE insect generate_ant generate_bee spider_gen generate_xan beehive ant bee centipede killer_bee spider xan # this is the summoning list for the god ruggilli RACE consuming_fire_creatures !para_fire !fire_serpent !fire_elemental !fire_witch !dragon !baby_dragon !big_dragon # this is the summoning list for the goddess Ixalovh RACE chaotic_water_creatures !para_water !water_elemental !lokanth !tentacle !water_witch !tentacle2 !chinese_dragon ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/util.pl������������������������������������������������������������������������0000644�0000145�0000012�00000002757�11731300544�012573� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������###################################################################### # subs ###################################################################### ### sub capitalize { local($str) = $_[0]; local($head) = ord(substr($str,0,1)); local($tail) = substr($str,1); $head = $head - 32 if $head >= 97 && $head ne '_'; return sprintf("%c%s",$head,$tail); } ### sub uncapitalize { local($str) = $_[0]; local($head) = ord(substr($str,0,1)); local($tail) = substr($str,1); $head = $head + 32 if $head <= 97 && $head ne '_'; return sprintf("%c%s",$head,$tail); } ### user debug message sub msg { print STDERR $0.": ".$_[0]."\n" if $debug; } ### sub die { $prog = &basename($0); print STDERR $prog.": ".$_[0]."\n"; exit(1); } ### sub warn { $prog = &basename($0); print STDERR $prog.": ".$_[0]."\n" if ! $nowarn; } ### sub info { $prog = &basename($0); print STDERR $prog.": ".$_[0]."\n"; } ### basename of file sub basename { local($name) = shift; local($ext) = shift; if($name =~ /.*\/.*/) { $name =~ s/.*\/(.*)$ext$/$1/; } else { $name =~ s/(.*)$ext$/$1/; } return $name; } ### sub dirname { local($name) = shift; $name =~ s/(^.*)\/.*$/$1/; return $name; } ### make uniq to array sub uniq { local(@list) = sort(@_); local($item,$prev); local(@uniq); foreach $item (@list) { push(@uniq,$item) if($item ne $prev); $prev = $item; } return @uniq; } 1; ### end of util.pl ### �����������������crossfire-1.70.0/lib/bmaps.paths��������������������������������������������������������������������0000644�0000145�0000012�00000744361�11732536576�013451� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is generated by collect.pl, do not edit \00000 ./arch/system/bug.111 \00001 ./arch/monster/giant/DreadKnight/Bk.x11 \00002 ./arch/monster/giant/DreadKnight/Bk.x12 \00003 ./arch/monster/giant/DreadKnight/Bk.x13 \00004 ./arch/monster/giant/DreadKnight/Bk.x14 \00005 ./arch/monster/giant/DreadKnight/Bk.x15 \00006 ./arch/monster/giant/DreadKnight/Bk.x71 \00007 ./arch/monster/giant/DreadKnight/Bk.x72 \00008 ./arch/monster/giant/DreadKnight/Bk.x73 \00009 ./arch/monster/giant/DreadKnight/Bk.x74 \00010 ./arch/monster/giant/DreadKnight/Bk.x75 \00011 ./arch/weapon/artifact/ChaosSword/CSword.111 \00012 ./arch/weapon/artifact/ChaosSword/CSword.112 \00013 ./arch/weapon/artifact/ChaosSword/CSword.113 \00014 ./arch/weapon/artifact/ChaosSword/CSword.114 \00015 ./arch/weapon/artifact/ChaosSword/CSword.115 \00016 ./arch/weapon/artifact/ChaosSword/CSword.116 \00017 ./arch/weapon/artifact/ChaosSword/CSword.117 \00018 ./arch/weapon/artifact/ChaosSword/CSword.118 \00019 ./arch/weapon/artifact/ChaosSword/CSword.119 \00020 ./arch/weapon/artifact/ChaosSword/CSword.11A \00021 ./arch/weapon/artifact/ChaosSword/CSword.11B \00022 ./arch/weapon/artifact/ChaosSword/CSword.11C \00023 ./arch/monster/dragon/Cwyvern.x31 \00024 ./arch/monster/dragon/Cwyvern.x32 \00025 ./arch/monster/dragon/Cwyvern.x71 \00026 ./arch/monster/dragon/Cwyvern.x72 \00027 ./arch/armour/shield/DShield.111 \00028 ./arch/armour/shield/DShield.112 \00029 ./arch/armour/shield/DShield.113 \00030 ./arch/monster/demon/GreatDemon/GreatDemon.x11 \00031 ./arch/ground/nimground/Nimground3_purple.111 \00032 ./arch/ground/nimground/Nimground3_purple.112 \00033 ./arch/ground/nimground/Nimground3_purple.113 \00034 ./arch/ground/nimground/Nimground3_purple.114 \00035 ./arch/armour/mail/Pdragonmail.111 \00036 ./arch/armour/mail/Pdragonmail.112 \00037 ./arch/road/a_bridge/a_bridge1.111 \00038 ./arch/road/a_bridge/a_bridge2.111 \00039 ./arch/construct/town/a_civic.x11 \00040 ./arch/construct/town/a_civic2.x11 \00041 ./arch/monster/humanoid/Arabic/a_guard_h.111 \00042 ./arch/monster/humanoid/Arabic/a_guard_l.111 \00043 ./arch/monster/humanoid/Arabic/a_guard_m.111 \00044 ./arch/armour/helmet/a_helmet.111 \00045 ./arch/monster/humanoid/Arabic/a_priest.111 \00046 ./arch/monster/humanoid/Arabic/a_townsman.111 \00047 ./arch/monster/humanoid/Arabic/a_townsman2.111 \00048 ./arch/monster/humanoid/Arabic/a_townsman3.111 \00049 ./arch/monster/acid/acid_pool.111 \00050 ./arch/monster/acid/acid_pool.112 \00051 ./arch/monster/acid/acidsphere.111 \00052 ./arch/monster/acid/acidsphere.112 \00053 ./arch/monster/acid/acidsphere.113 \00054 ./arch/monster/acid/acidsphere.114 \00055 ./arch/misc/acidspit.111 \00056 ./arch/misc/acidspit.121 \00057 ./arch/misc/acidspit.131 \00058 ./arch/misc/acidspit.141 \00059 ./arch/misc/acidspit.151 \00060 ./arch/misc/acidspit.161 \00061 ./arch/misc/acidspit.171 \00062 ./arch/misc/acidspit.181 \00063 ./arch/floor/Afloor/afloor.131 \00064 ./arch/floor/Afloor/afloor.171 \00065 ./arch/floor/Afloor/afloor_blue.131 \00066 ./arch/floor/Afloor/afloor_blue.171 \00067 ./arch/floor/Afloor/afloor_magenta.131 \00068 ./arch/floor/Afloor/afloor_magenta.171 \00069 ./arch/floor/Afloor/ahole.131 \00070 ./arch/floor/Afloor/ahole.171 \00071 ./arch/floor/Afloor/ahole_blue.131 \00072 ./arch/floor/Afloor/ahole_blue.171 \00073 ./arch/floor/Afloor/ahole_magenta.131 \00074 ./arch/floor/Afloor/ahole_magenta.171 \00075 ./arch/player/class/Wizardry/alchemist.111 \00076 ./arch/player/class/Wizardry/alchemist.112 \00077 ./arch/player/class/Wizardry/alchemist.131 \00078 ./arch/player/class/Wizardry/alchemist.132 \00079 ./arch/player/class/Wizardry/alchemist.151 \00080 ./arch/player/class/Wizardry/alchemist.152 \00081 ./arch/player/class/Wizardry/alchemist.171 \00082 ./arch/player/class/Wizardry/alchemist.172 \00083 ./arch/connect/altar.111 \00084 ./arch/connect/altar.112 \00085 ./arch/gods/altars/altardevo.111 \00086 ./arch/gods/altars/altargaea.111 \00087 ./arch/gods/altars/altargnarg.111 \00088 ./arch/gods/altars/altargoro.111 \00089 ./arch/gods/altars/altargoro.112 \00090 ./arch/gods/altars/altargoro.113 \00091 ./arch/gods/altars/altarixalovh.111 \00092 ./arch/gods/altars/altarlyth.111 \00093 ./arch/gods/altars/altarmostr.111 \00094 ./arch/gods/altars/altarnone.111 \00095 ./arch/gods/altars/altarrugg.111 \00096 ./arch/gods/altars/altarrugg.112 \00097 ./arch/gods/altars/altarrugg.113 \00098 ./arch/gods/altars/altarrugg.114 \00099 ./arch/gods/altars/altarrugg.115 \00100 ./arch/gods/altars/altarrugg.116 \00101 ./arch/gods/altars/altarsori.111 \00102 ./arch/gods/altars/altarsori.112 \00103 ./arch/gods/altars/altarsori.113 \00104 ./arch/gods/altars/altarsori.114 \00105 ./arch/gods/altars/altarsori.115 \00106 ./arch/gods/altars/altarsori.116 \00107 ./arch/gods/altars/altarvalk.111 \00108 ./arch/gods/altars/altarvalr.111 \00109 ./arch/gods/altars/altarvalr.112 \00110 ./arch/gods/altars/altarvalr.113 \00111 ./arch/gods/altars/altarvalr_intervention.111 \00112 ./arch/gods/altars/altarvalr_intervention.112 \00113 ./arch/gods/altars/altarvalr_intervention.113 \00114 ./arch/gods/altars/altarvalr_intervention.114 \00115 ./arch/gods/altars/altarvalr_intervention.115 \00116 ./arch/jewel/amber_coin.111 \00117 ./arch/shop/amberium_converter.111 \00118 ./arch/shop/ambolt.111 \00119 ./arch/jewel/amethyst.111 \00120 ./arch/jewel/amethyst.112 \00121 ./arch/jewel/amethyst_exceptional.111 \00122 ./arch/jewel/amethyst_flawless.111 \00123 ./arch/talisman/amulet.111 \00124 ./arch/talisman/amulet_aethereality.111 \00125 ./arch/talisman/amulet_calling_death.111 \00126 ./arch/talisman/amulet_dark.111 \00127 ./arch/talisman/amulet_darkmagenta.111 \00128 ./arch/talisman/amulet_darkred.111 \00129 ./arch/talisman/amulet_deflection.111 \00130 ./arch/talisman/amulet_destruction.111 \00131 ./arch/talisman/amulet_empowerement.111 \00132 ./arch/talisman/amulet_free_action.111 \00133 ./arch/talisman/amulet_gray.111 \00134 ./arch/talisman/amulet_holiness.111 \00135 ./arch/talisman/amulet_lif.111 \00136 ./arch/talisman/amulet_magenta.111 \00137 ./arch/talisman/amulet_magi.111 \00138 ./arch/talisman/amulet_power.111 \00139 ./arch/talisman/amulet_red.111 \00140 ./arch/talisman/amulet_shielded_mind.111 \00141 ./arch/talisman/amulet_shielding.111 \00142 ./arch/talisman/amulet_sorrow.111 \00143 ./arch/talisman/amulet_sustenance.111 \00144 ./arch/talisman/amulet_unholiness.111 \00145 ./arch/talisman/amulet_white.111 \00146 ./arch/misc/anchor.111 \00147 ./arch/monster/angel/angel.111 \00148 ./arch/monster/angel/angel.112 \00149 ./arch/monster/angel/angel.131 \00150 ./arch/monster/angel/angel.132 \00151 ./arch/monster/angel/angel.151 \00152 ./arch/monster/angel/angel.152 \00153 ./arch/monster/angel/angel.171 \00154 ./arch/monster/angel/angel.172 \00155 ./arch/monster/angel/angel_sword.111 \00156 ./arch/monster/angel/angel_sword.112 \00157 ./arch/monster/angel/angel_sword.131 \00158 ./arch/monster/angel/angel_sword.132 \00159 ./arch/monster/angel/angel_sword.151 \00160 ./arch/monster/angel/angel_sword.152 \00161 ./arch/monster/angel/angel_sword.171 \00162 ./arch/monster/angel/angel_sword.172 \00163 ./arch/monster/angel/angelknight.x11 \00164 ./arch/system/mood_floors/angry_floor.111 \00165 ./arch/monster/insect/ant/ant.111 \00166 ./arch/monster/insect/ant/ant.112 \00167 ./arch/monster/insect/ant/ant_egg.111 \00168 ./arch/monster/insect/ant/ant_gen.111 \00169 ./arch/monster/insect/ant/ant_larvae.111 \00170 ./arch/monster/insect/ant/ant_larvae.112 \00171 ./arch/monster/animal/ape.131 \00172 ./arch/monster/animal/ape.132 \00173 ./arch/monster/animal/ape.171 \00174 ./arch/monster/animal/ape.172 \00175 ./arch/food/apple.111 \00176 ./arch/food/apple_eighth.111 \00177 ./arch/food/apple_fourth.111 \00178 ./arch/food/apple_half.111 \00179 ./arch/monster/angel/archangel.x11 \00180 ./arch/monster/angel/archangel.x12 \00181 ./arch/monster/angel/archangel.x13 \00182 ./arch/exit/archgold.111 \00183 ./arch/exit/archgreen.111 \00184 ./arch/monster/chaos/archon.111 \00185 ./arch/monster/chaos/archon.222 \00186 ./arch/monster/chaos/archon.333 \00187 ./arch/monster/chaos/archon.444 \00188 ./arch/exit/archtree.111 \00189 ./arch/exit/archwood.111 \00190 ./arch/flesh/human/arm.111 \00191 ./arch/monster/humanoid/Human/armless_cook.111 \00192 ./arch/monster/humanoid/Human/armless_cook.131 \00193 ./arch/monster/humanoid/Human/armless_cook.151 \00194 ./arch/monster/humanoid/Human/armless_cook.171 \00195 ./arch/monster/troll/armourtroll2.111 \00196 ./arch/monster/troll/armourtroll2.112 \00197 ./arch/monster/troll/armourtroll3.111 \00198 ./arch/monster/troll/armourtroll4.111 \00199 ./arch/weapon/bow/arrow.101 \00200 ./arch/weapon/bow/arrow.111 \00201 ./arch/weapon/bow/arrow.121 \00202 ./arch/weapon/bow/arrow.131 \00203 ./arch/weapon/bow/arrow.141 \00204 ./arch/weapon/bow/arrow.151 \00205 ./arch/weapon/bow/arrow.161 \00206 ./arch/weapon/bow/arrow.171 \00207 ./arch/weapon/bow/arrow.181 \00208 ./arch/weapon/bow/arrow_fire.101 \00209 ./arch/weapon/bow/arrow_fire.111 \00210 ./arch/weapon/bow/arrow_fire.121 \00211 ./arch/weapon/bow/arrow_fire.131 \00212 ./arch/weapon/bow/arrow_fire.141 \00213 ./arch/weapon/bow/arrow_fire.151 \00214 ./arch/weapon/bow/arrow_fire.161 \00215 ./arch/weapon/bow/arrow_fire.171 \00216 ./arch/weapon/bow/arrow_fire.181 \00217 ./arch/weapon/bow/arrow_frost.101 \00218 ./arch/weapon/bow/arrow_frost.111 \00219 ./arch/weapon/bow/arrow_frost.121 \00220 ./arch/weapon/bow/arrow_frost.131 \00221 ./arch/weapon/bow/arrow_frost.141 \00222 ./arch/weapon/bow/arrow_frost.151 \00223 ./arch/weapon/bow/arrow_frost.161 \00224 ./arch/weapon/bow/arrow_frost.171 \00225 ./arch/weapon/bow/arrow_frost.181 \00226 ./arch/weapon/bow/arrow_lightning.101 \00227 ./arch/weapon/bow/arrow_lightning.111 \00228 ./arch/weapon/bow/arrow_lightning.121 \00229 ./arch/weapon/bow/arrow_lightning.131 \00230 ./arch/weapon/bow/arrow_lightning.141 \00231 ./arch/weapon/bow/arrow_lightning.151 \00232 ./arch/weapon/bow/arrow_lightning.161 \00233 ./arch/weapon/bow/arrow_lightning.171 \00234 ./arch/weapon/bow/arrow_lightning.181 \00235 ./arch/weapon/bow/arrow_paralysis.101 \00236 ./arch/weapon/bow/arrow_paralysis.111 \00237 ./arch/weapon/bow/arrow_paralysis.121 \00238 ./arch/weapon/bow/arrow_paralysis.131 \00239 ./arch/weapon/bow/arrow_paralysis.141 \00240 ./arch/weapon/bow/arrow_paralysis.151 \00241 ./arch/weapon/bow/arrow_paralysis.161 \00242 ./arch/weapon/bow/arrow_paralysis.171 \00243 ./arch/weapon/bow/arrow_paralysis.181 \00244 ./arch/weapon/bow/arrow_poison.101 \00245 ./arch/weapon/bow/arrow_poison.111 \00246 ./arch/weapon/bow/arrow_poison.121 \00247 ./arch/weapon/bow/arrow_poison.131 \00248 ./arch/weapon/bow/arrow_poison.141 \00249 ./arch/weapon/bow/arrow_poison.151 \00250 ./arch/weapon/bow/arrow_poison.161 \00251 ./arch/weapon/bow/arrow_poison.171 \00252 ./arch/weapon/bow/arrow_poison.181 \00253 ./arch/inorganic/ashes.111 \00254 ./arch/spell/Bullet/asteroid.111 \00255 ./arch/spell/Bullet/asteroid.112 \00256 ./arch/spell/Bullet/asteroid.121 \00257 ./arch/spell/Bullet/asteroid.131 \00258 ./arch/spell/Bullet/asteroid.141 \00259 ./arch/spell/Bullet/asteroid.151 \00260 ./arch/spell/Bullet/asteroid.161 \00261 ./arch/spell/Bullet/asteroid.171 \00262 ./arch/spell/Bullet/asteroid.181 \00263 ./arch/misc/Container/attache.111 \00264 ./arch/spell/Golem/avatar.131 \00265 ./arch/spell/Golem/avatar.132 \00266 ./arch/spell/Golem/avatar.171 \00267 ./arch/spell/Golem/avatar.172 \00268 ./arch/wall/awall/awall_0.111 \00269 ./arch/wall/awall/awall_1.111 \00270 ./arch/wall/awall/awall_1_short.111 \00271 ./arch/wall/awall/awall_2.111 \00272 ./arch/wall/awall/awall_2_short.111 \00273 ./arch/wall/awall/awall_3.111 \00274 ./arch/wall/awall/awall_4.111 \00275 ./arch/wall/awall/awall_4_short.111 \00276 ./arch/wall/awall/awall_5.111 \00277 ./arch/wall/awall/awall_55.111 \00278 ./arch/wall/awall/awall_6.111 \00279 ./arch/wall/awall/awall_7.111 \00280 ./arch/wall/awall/awall_8.111 \00281 ./arch/wall/awall/awall_8_short.111 \00282 ./arch/wall/awall/awall_9.111 \00283 ./arch/wall/awall/awall_A.111 \00284 ./arch/wall/awall/awall_AA.111 \00285 ./arch/wall/awall/awall_B.111 \00286 ./arch/wall/awall/awall_C.111 \00287 ./arch/wall/awall/awall_D.111 \00288 ./arch/wall/awall/awall_E.111 \00289 ./arch/wall/awall/awall_F.111 \00290 ./arch/wall/awall/awall_w_0.111 \00291 ./arch/wall/awall/awall_w_0.112 \00292 ./arch/wall/awall/awall_w_0.113 \00293 ./arch/wall/awall/awall_w_0.114 \00294 ./arch/wall/awall/awall_w_0.115 \00295 ./arch/wall/awall/awall_w_0.116 \00296 ./arch/wall/awall/awall_w_0.117 \00297 ./arch/wall/awall/awall_w_1.111 \00298 ./arch/wall/awall/awall_w_1.112 \00299 ./arch/wall/awall/awall_w_1.113 \00300 ./arch/wall/awall/awall_w_1.114 \00301 ./arch/wall/awall/awall_w_1.115 \00302 ./arch/wall/awall/awall_w_1.116 \00303 ./arch/wall/awall/awall_w_1.117 \00304 ./arch/wall/awall/awall_w_1.118 \00305 ./arch/wall/awall/awall_w_1.119 \00306 ./arch/wall/awall/awall_w_1.11A \00307 ./arch/wall/awall/awindow_0.111 \00308 ./arch/wall/awall/awindow_1.111 \00309 ./arch/weapon/axe/axe_1.111 \00310 ./arch/weapon/axe/axe_2.111 \00311 ./arch/weapon/axe/axe_3.111 \00312 ./arch/weapon/axe/axe_3_golden.111 \00313 ./arch/weapon/axe/axe_4.111 \00314 ./arch/weapon/axe/axe_5.111 \00315 ./arch/weapon/axe/b_axe1.111 \00316 ./arch/weapon/sword/b_bsword_1.111 \00317 ./arch/weapon/sword/b_bsword_2.111 \00318 ./arch/weapon/sword/b_dagger.111 \00319 ./arch/armour/helmet/b_fullhelmet.111 \00320 ./arch/armour/gauntlets/b_gauntlet_s.111 \00321 ./arch/armour/helmet/b_helmet.111 \00322 ./arch/armour/helmet/b_hornhelmet.111 \00323 ./arch/weapon/sword/b_lsword.111 \00324 ./arch/armour/mail/b_plate_mail.111 \00325 ./arch/armour/mail/b_scale_mail.111 \00326 ./arch/weapon/sword/b_scimitar.111 \00327 ./arch/armour/shield/b_shield.111 \00328 ./arch/weapon/sword/b_sicklesword.111 \00329 ./arch/misc/b_slicingknife.111 \00330 ./arch/armour/shield/b_small_shie.111 \00331 ./arch/weapon/sword/b_ssword_1.111 \00332 ./arch/weapon/sword/b_ssword_2.111 \00333 ./arch/weapon/sword/b_sword_1.111 \00334 ./arch/weapon/sword/b_sword_2.111 \00335 ./arch/monster/dragon/baby_drag.111 \00336 ./arch/monster/dragon/baby_drag.112 \00337 ./arch/monster/dragon/baby_drag.113 \00338 ./arch/misc/Container/bag.111 \00339 ./arch/food/bag_popcorn.111 \00340 ./arch/misc/Bagpipe/bagpipe.111 \00341 ./arch/misc/Bagpipe/bagpipe.112 \00342 ./arch/misc/Bagpipe/bagpipe.113 \00343 ./arch/misc/Bagpipe/bagpipe.114 \00344 ./arch/misc/Bagpipe/bagpipe.115 \00345 ./arch/misc/Bagpipe/bagpipe.116 \00346 ./arch/misc/Bagpipe/bagpipe.117 \00347 ./arch/misc/Bagpipe/bagpipe.118 \00348 ./arch/misc/Bagpipe/bagpipe.119 \00349 ./arch/misc/Bagpipe/bagpipe.11A \00350 ./arch/spell/MovingBall/ball_lightning.111 \00351 ./arch/spell/MovingBall/ball_lightning.222 \00352 ./arch/spell/MovingBall/ball_lightning.333 \00353 ./arch/spell/MovingBall/ball_lightning.444 \00354 ./arch/spell/Potion/balm_gen.111 \00355 ./arch/spell/Cone/banishment.111 \00356 ./arch/spell/Cone/banishment.112 \00357 ./arch/spell/Cone/banishment.113 \00358 ./arch/shop/bank.x11 \00359 ./arch/shop/bank_west.x11 \00360 ./arch/readable/bankcard.111 \00361 ./arch/monster/undead/banshee.111 \00362 ./arch/monster/undead/banshee.112 \00363 ./arch/player/class/Warrior/barbarian.111 \00364 ./arch/player/class/Warrior/barbarian.112 \00365 ./arch/player/class/Warrior/barbarian.131 \00366 ./arch/player/class/Warrior/barbarian.132 \00367 ./arch/player/class/Warrior/barbarian.151 \00368 ./arch/player/class/Warrior/barbarian.152 \00369 ./arch/player/class/Warrior/barbarian.171 \00370 ./arch/player/class/Warrior/barbarian.172 \00371 ./arch/construct/town/barn.x11 \00372 ./arch/construct/town/barn2.x11 \00373 ./arch/construct/town/barn2_northwest.x11 \00374 ./arch/construct/town/barn_west.x11 \00375 ./arch/construct/barrack/barrack_l.x11 \00376 ./arch/construct/barrack/barrack_l.x12 \00377 ./arch/construct/barrack/barrack_s.111 \00378 ./arch/construct/barrack/barrack_u.x11 \00379 ./arch/construct/barrack/barrack_u.x12 \00380 ./arch/indoor/barrel.111 \00381 ./arch/monster/misc/Baslic/baslic.x31 \00382 ./arch/monster/misc/Baslic/baslic.x32 \00383 ./arch/monster/misc/Baslic/baslic.x71 \00384 ./arch/monster/misc/Baslic/baslic.x72 \00385 ./arch/monster/animal/bat.111 \00386 ./arch/monster/animal/bat.112 \00387 ./arch/monster/animal/bat.113 \00388 ./arch/monster/animal/bat_gen.111 \00389 ./arch/flesh/misc/bat_wing.111 \00390 ./arch/weapon/axe/battle_axe.111 \00391 ./arch/ground/beach.111 \00392 ./arch/ground/smooth/beach_S.111 \00393 ./arch/monster/animal/Bear/bear.x31 \00394 ./arch/monster/animal/Bear/bear.x32 \00395 ./arch/monster/animal/Bear/bear.x71 \00396 ./arch/monster/animal/Bear/bear.x72 \00397 ./arch/indoor/bed_1.111 \00398 ./arch/indoor/bed_save.111 \00399 ./arch/monster/insect/bee/bee.111 \00400 ./arch/monster/insect/bee/bee.112 \00401 ./arch/monster/insect/bee/bee_gen.111 \00402 ./arch/monster/insect/bee/beehive.111 \00403 ./arch/monster/insect/bee/beehive.112 \00404 ./arch/monster/humanoid/Arabic/beggar.111 \00405 ./arch/monster/animal/Behemoth/behemoth.x31 \00406 ./arch/monster/animal/Behemoth/behemoth.x32 \00407 ./arch/monster/animal/Behemoth/behemoth.x33 \00408 ./arch/monster/animal/Behemoth/behemoth.x71 \00409 ./arch/monster/animal/Behemoth/behemoth.x72 \00410 ./arch/monster/animal/Behemoth/behemoth.x73 \00411 ./arch/flesh/misc/behold_eye.111 \00412 ./arch/monster/beholder/behold_gen.111 \00413 ./arch/monster/beholder/beholder.111 \00414 ./arch/monster/beholder/beholder.112 \00415 ./arch/monster/beholder/beholder.113 \00416 ./arch/monster/beholder/beholder.114 \00417 ./arch/monster/beholder/beholder_leader.111 \00418 ./arch/floor/inlayed/beige-cyan-c-marble.111 \00419 ./arch/floor/inlayed/beige-cyan-c-marble.112 \00420 ./arch/floor/inlayed/beige-cyan-c-marble.113 \00421 ./arch/floor/inlayed/beige-cyan-c-marble.114 \00422 ./arch/floor/inlayed/beige-green-c-marble.111 \00423 ./arch/floor/inlayed/beige-green-c-marble.112 \00424 ./arch/floor/inlayed/beige-green-c-marble.113 \00425 ./arch/floor/inlayed/beige-green-c-marble.114 \00426 ./arch/floor/inlayed/beige-pink-c-marble.111 \00427 ./arch/floor/inlayed/beige-pink-c-marble.112 \00428 ./arch/floor/inlayed/beige-pink-c-marble.113 \00429 ./arch/floor/inlayed/beige-pink-c-marble.114 \00430 ./arch/floor/inlayed/beige-white-c-marble.111 \00431 ./arch/floor/inlayed/beige-white-c-marble.112 \00432 ./arch/floor/inlayed/beige-white-c-marble.113 \00433 ./arch/floor/inlayed/beige-white-c-marble.114 \00434 ./arch/floor/beigemarble.111 \00435 ./arch/monster/giant/Belzebub/belzebub.x11 \00436 ./arch/monster/giant/Belzebub/belzebub.x12 \00437 ./arch/wall/bench/bench_0.111 \00438 ./arch/wall/bench/bench_1.111 \00439 ./arch/wall/bench/bench_2.111 \00440 ./arch/wall/bench/bench_3.111 \00441 ./arch/wall/bench/bench_4.111 \00442 ./arch/wall/bench/bench_5.111 \00443 ./arch/wall/bench/bench_6.111 \00444 ./arch/wall/bench/bench_7.111 \00445 ./arch/wall/bench/bench_8.111 \00446 ./arch/wall/bench/bench_9.111 \00447 ./arch/wall/bench/bench_A.111 \00448 ./arch/wall/bench/bench_B.111 \00449 ./arch/wall/bench/bench_C.111 \00450 ./arch/wall/bench/bench_D.111 \00451 ./arch/wall/bench/bench_E.111 \00452 ./arch/wall/bench/bench_F.111 \00453 ./arch/ground/Wood/bforest.111 \00454 ./arch/weapon/club/big_club.111 \00455 ./arch/monster/demon/Big_Demon/big_demon.x31 \00456 ./arch/monster/demon/Big_Demon/big_demon.x71 \00457 ./arch/flesh/generic/big_eye.111 \00458 ./arch/monster/humanoid/Arabic/big_slave.111 \00459 ./arch/monster/giant/Big_Wiz/big_wiz.x11 \00460 ./arch/monster/giant/Big_Wiz/big_wiz.x12 \00461 ./arch/monster/giant/Big_Wiz/big_wiz.x13 \00462 ./arch/monster/giant/Big_Wiz/big_wiz.x14 \00463 ./arch/monster/giant/Big_Wiz/big_wiz.x15 \00464 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x11 \00465 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x12 \00466 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x13 \00467 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x14 \00468 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x15 \00469 ./arch/transport/biggalleon.x11 \00470 ./arch/transport/biggalleon.x71 \00471 ./arch/armour/helmet/bighorn_he.111 \00472 ./arch/monster/animal/bird.111 \00473 ./arch/monster/animal/bird.112 \00474 ./arch/monster/animal/bird.131 \00475 ./arch/monster/animal/bird.132 \00476 ./arch/monster/animal/bird.151 \00477 ./arch/monster/animal/bird.152 \00478 ./arch/monster/animal/bird.171 \00479 ./arch/monster/animal/bird.172 \00480 ./arch/monster/animal/bird_gen.111 \00481 ./arch/monster/humanoid/Dragon/black_dragon2.151 \00482 ./arch/monster/humanoid/Dragon/black_dragon2.152 \00483 ./arch/monster/humanoid/Dragon/black_dragon2.171 \00484 ./arch/monster/humanoid/Dragon/black_dragon2.172 \00485 ./arch/misc/blackfirebullet.111 \00486 ./arch/misc/blackfirebullet.121 \00487 ./arch/misc/blackfirebullet.131 \00488 ./arch/misc/blackfirebullet.141 \00489 ./arch/misc/blackfirebullet.151 \00490 ./arch/misc/blackfirebullet.161 \00491 ./arch/misc/blackfirebullet.171 \00492 ./arch/misc/blackfirebullet.181 \00493 ./arch/floor/blackmarble.111 \00494 ./arch/ground/blackrock.111 \00495 ./arch/ground/smooth/blackrock_S.111 \00496 ./arch/food/blackroot.111 \00497 ./arch/traps/blades.111 \00498 ./arch/ground/Lake/blake_0.111 \00499 ./arch/ground/Lake/blake_1.111 \00500 ./arch/ground/Lake/blake_1.112 \00501 ./arch/ground/Lake/blake_1.113 \00502 ./arch/ground/Lake/blake_1.114 \00503 ./arch/ground/Lake/blake_2.111 \00504 ./arch/ground/Lake/blake_2.112 \00505 ./arch/ground/Lake/blake_2.113 \00506 ./arch/ground/Lake/blake_2.114 \00507 ./arch/ground/Lake/blake_3.111 \00508 ./arch/ground/Lake/blake_3.112 \00509 ./arch/ground/Lake/blake_3.113 \00510 ./arch/ground/Lake/blake_3.114 \00511 ./arch/ground/Lake/blake_4.111 \00512 ./arch/ground/Lake/blake_4.112 \00513 ./arch/ground/Lake/blake_4.113 \00514 ./arch/ground/Lake/blake_4.114 \00515 ./arch/ground/Lake/blake_5.111 \00516 ./arch/ground/Lake/blake_5.112 \00517 ./arch/ground/Lake/blake_5.113 \00518 ./arch/ground/Lake/blake_5.114 \00519 ./arch/ground/Lake/blake_6.111 \00520 ./arch/ground/Lake/blake_6.112 \00521 ./arch/ground/Lake/blake_6.113 \00522 ./arch/ground/Lake/blake_6.114 \00523 ./arch/ground/Lake/blake_7.111 \00524 ./arch/ground/Lake/blake_7.112 \00525 ./arch/ground/Lake/blake_7.113 \00526 ./arch/ground/Lake/blake_7.114 \00527 ./arch/ground/Lake/blake_8.111 \00528 ./arch/ground/Lake/blake_8.112 \00529 ./arch/ground/Lake/blake_8.113 \00530 ./arch/ground/Lake/blake_8.114 \00531 ./arch/ground/Lake/blake_9.111 \00532 ./arch/ground/Lake/blake_9.112 \00533 ./arch/ground/Lake/blake_9.113 \00534 ./arch/ground/Lake/blake_9.114 \00535 ./arch/ground/Lake/blake_A.111 \00536 ./arch/ground/Lake/blake_A.112 \00537 ./arch/ground/Lake/blake_A.113 \00538 ./arch/ground/Lake/blake_A.114 \00539 ./arch/ground/Lake/blake_B.111 \00540 ./arch/ground/Lake/blake_B.112 \00541 ./arch/ground/Lake/blake_B.113 \00542 ./arch/ground/Lake/blake_B.114 \00543 ./arch/ground/Lake/blake_C.111 \00544 ./arch/ground/Lake/blake_C.112 \00545 ./arch/ground/Lake/blake_C.113 \00546 ./arch/ground/Lake/blake_C.114 \00547 ./arch/ground/Lake/blake_D.111 \00548 ./arch/ground/Lake/blake_D.112 \00549 ./arch/ground/Lake/blake_D.113 \00550 ./arch/ground/Lake/blake_D.114 \00551 ./arch/ground/Lake/blake_E.111 \00552 ./arch/ground/Lake/blake_E.112 \00553 ./arch/ground/Lake/blake_E.113 \00554 ./arch/ground/Lake/blake_E.114 \00555 ./arch/ground/Lake/blake_F.111 \00556 ./arch/ground/Lake/blake_F.112 \00557 ./arch/ground/Lake/blake_F.113 \00558 ./arch/ground/Lake/blake_F.114 \00559 ./arch/system/blank.111 \00560 ./arch/monster/misc/blob.111 \00561 ./arch/monster/misc/blob.112 \00562 ./arch/monster/misc/blob.113 \00563 ./arch/system/blocked.111 \00564 ./arch/system/blocked_blue.111 \00565 ./arch/system/blocked_cyan.111 \00566 ./arch/system/blocked_darkblue.111 \00567 ./arch/system/blocked_darkmagenta.111 \00568 ./arch/system/blocked_gray.111 \00569 ./arch/system/blocked_green.111 \00570 ./arch/system/blocked_lightgray.111 \00571 ./arch/system/blocked_lime.111 \00572 ./arch/system/blocked_magenta.111 \00573 ./arch/system/blocked_maroon.111 \00574 ./arch/system/blocked_olive.111 \00575 ./arch/system/blocked_red.111 \00576 ./arch/system/blocked_teal.111 \00577 ./arch/system/blocked_white.111 \00578 ./arch/system/blocked_yellow.111 \00579 ./arch/misc/blood.111 \00580 ./arch/ground/blood_sea.111 \00581 ./arch/ground/blood_sea.112 \00582 ./arch/ground/blood_sea.113 \00583 ./arch/ground/blood_sea.114 \00584 ./arch/ground/smooth/blood_sea_S.111 \00585 ./arch/ground/smooth/blood_sea_S.112 \00586 ./arch/ground/smooth/blood_sea_S.113 \00587 ./arch/ground/smooth/blood_sea_S.114 \00588 ./arch/exit/bloodwell.111 \00589 ./arch/jewel/blue_crystal.111 \00590 ./arch/monster/humanoid/Dragon/blue_dragon2.151 \00591 ./arch/monster/humanoid/Dragon/blue_dragon2.152 \00592 ./arch/monster/humanoid/Dragon/blue_dragon2.171 \00593 ./arch/monster/humanoid/Dragon/blue_dragon2.172 \00594 ./arch/armour/mail/bluedragonmail.111 \00595 ./arch/floor/bluemarble.111 \00596 ./arch/floor/bluemarblemedium.111 \00597 ./arch/monster/acid/bluesphere.111 \00598 ./arch/monster/acid/bluesphere.112 \00599 ./arch/monster/acid/bluesphere.113 \00600 ./arch/monster/acid/bluesphere.114 \00601 ./arch/weapon/bow/bolt.101 \00602 ./arch/weapon/bow/bolt.111 \00603 ./arch/weapon/bow/bolt.121 \00604 ./arch/weapon/bow/bolt.131 \00605 ./arch/weapon/bow/bolt.141 \00606 ./arch/weapon/bow/bolt.151 \00607 ./arch/weapon/bow/bolt.161 \00608 ./arch/weapon/bow/bolt.171 \00609 ./arch/weapon/bow/bolt.181 \00610 ./arch/misc/item/bolt_silk.111 \00611 ./arch/spell/Bomb/bomb.111 \00612 ./arch/spell/Bomb/bomb.112 \00613 ./arch/spell/Bomb/bomb.113 \00614 ./arch/spell/Bomb/bomb.114 \00615 ./arch/monster/dragon/bone_drake/bone_drake.x11 \00616 ./arch/monster/dragon/bone_drake/bone_drake.x12 \00617 ./arch/monster/demon/bone_head.111 \00618 ./arch/monster/demon/bone_head.112 \00619 ./arch/monster/demon/bone_head.113 \00620 ./arch/weapon/artifact/bonecrush.111 \00621 ./arch/misc/bones1.111 \00622 ./arch/misc/bones2.111 \00623 ./arch/misc/bones3.111 \00624 ./arch/misc/bones4.111 \00625 ./arch/misc/bones5.111 \00626 ./arch/readable/book_clasp.111 \00627 ./arch/readable/book_read.111 \00628 ./arch/readable/guide/book_red.111 \00629 ./arch/misc/Container/bookshelf.111 \00630 ./arch/misc/Container/bookshelf2.111 \00631 ./arch/misc/Container/bookshelf_bottom.111 \00632 ./arch/misc/Container/bookshelf_left.111 \00633 ./arch/misc/Container/bookshelf_right.111 \00634 ./arch/food/booze.111 \00635 ./arch/food/boozebottle_empty.111 \00636 ./arch/misc/boulder.111 \00637 ./arch/misc/bouquet.111 \00638 ./arch/weapon/bow/bow.111 \00639 ./arch/monster/acid/bpudding.111 \00640 ./arch/monster/acid/bpudding.112 \00641 ./arch/monster/acid/bpudding_g.111 \00642 ./arch/monster/acid/bpudding_g.112 \00643 ./arch/monster/acid/bpudding_g.113 \00644 ./arch/monster/acid/bpudding_g.114 \00645 ./arch/monster/acid/bpudding_g.115 \00646 ./arch/monster/acid/bpudding_g.116 \00647 ./arch/monster/acid/bpudding_g.117 \00648 ./arch/monster/acid/bpudding_g.118 \00649 ./arch/monster/acid/bpudding_g.119 \00650 ./arch/monster/acid/bpudding_s.111 \00651 ./arch/monster/acid/bpudding_s.112 \00652 ./arch/monster/acid/bpudding_s.113 \00653 ./arch/monster/acid/bpudding_s.114 \00654 ./arch/armour/bracers/bracers_ac.111 \00655 ./arch/armour/bracers/bracersdex.111 \00656 ./arch/flesh/generic/brain.111 \00657 ./arch/river/branch_125.111 \00658 ./arch/river/branch_125.211 \00659 ./arch/river/branch_135.111 \00660 ./arch/river/branch_137.111 \00661 ./arch/river/branch_145.111 \00662 ./arch/river/branch_145.211 \00663 ./arch/river/branch_156.111 \00664 ./arch/river/branch_156.211 \00665 ./arch/river/branch_157.111 \00666 ./arch/river/branch_158.111 \00667 ./arch/river/branch_158.211 \00668 ./arch/river/branch_237.111 \00669 ./arch/river/branch_237.211 \00670 ./arch/river/branch_347.111 \00671 ./arch/river/branch_347.211 \00672 ./arch/river/branch_357.111 \00673 ./arch/river/branch_367.111 \00674 ./arch/river/branch_367.211 \00675 ./arch/river/branch_378.111 \00676 ./arch/river/branch_378.211 \00677 ./arch/misc/brazier.111 \00678 ./arch/misc/brazier.112 \00679 ./arch/misc/brazier.113 \00680 ./arch/misc/brazier.114 \00681 ./arch/weapon/axe/brdaxe_1.111 \00682 ./arch/weapon/axe/brdaxe_1.112 \00683 ./arch/weapon/axe/brdaxe_1.113 \00684 ./arch/weapon/axe/brdaxe_1.114 \00685 ./arch/monster/insect/ant/breeder_ant.x11 \00686 ./arch/monster/insect/ant/breeder_ant.x12 \00687 ./arch/ground/brefjell.111 \00688 ./arch/river/bridge_15.111 \00689 ./arch/river/bridge_37.111 \00690 ./arch/road/bridgemoat/bridge_m0.111 \00691 ./arch/road/bridgemoat/bridge_m1.111 \00692 ./arch/jewel/bronzebar.111 \00693 ./arch/monster/misc/broo.111 \00694 ./arch/monster/misc/broo.112 \00695 ./arch/monster/misc/broo.113 \00696 ./arch/ground/Wood/brush.111 \00697 ./arch/weapon/sword/bsword_1.111 \00698 ./arch/weapon/sword/bsword_2.111 \00699 ./arch/construct/town/building10_east.x11 \00700 ./arch/construct/town/building1_east.111 \00701 ./arch/construct/town/building2_east.x11 \00702 ./arch/construct/town/building3_east.x11 \00703 ./arch/construct/town/building4_east.x11 \00704 ./arch/construct/town/building5_east.x11 \00705 ./arch/construct/town/building6_east.x11 \00706 ./arch/construct/town/building7_east.x11 \00707 ./arch/construct/town/building8_east.x11 \00708 ./arch/construct/town/building9_east.x11 \00709 ./arch/wall/bulletwall/bul_wall_0.111 \00710 ./arch/wall/bulletwall/bul_wall_1.111 \00711 ./arch/wall/bulletwall/bul_wall_2.111 \00712 ./arch/wall/bulletwall/bul_wall_3.111 \00713 ./arch/wall/bulletwall/bul_wall_4.111 \00714 ./arch/wall/bulletwall/bul_wall_5.111 \00715 ./arch/wall/bulletwall/bul_wall_6.111 \00716 ./arch/wall/bulletwall/bul_wall_7.111 \00717 ./arch/wall/bulletwall/bul_wall_8.111 \00718 ./arch/spell/Bullet/bullet.111 \00719 ./arch/spell/Bullet/bullet.112 \00720 ./arch/spell/Bullet/bullet.121 \00721 ./arch/spell/Bullet/bullet.131 \00722 ./arch/spell/Bullet/bullet.141 \00723 ./arch/spell/Bullet/bullet.151 \00724 ./arch/spell/Bullet/bullet.161 \00725 ./arch/spell/Bullet/bullet.171 \00726 ./arch/spell/Bullet/bullet.181 \00727 ./arch/construct/bungalow.111 \00728 ./arch/planes/fire/burning_barn.x11 \00729 ./arch/planes/fire/burning_cathedral.x11 \00730 ./arch/planes/fire/burning_church.x11 \00731 ./arch/planes/fire/burning_collesium.x11 \00732 ./arch/planes/fire/burning_courthouse.x11 \00733 ./arch/planes/fire/burning_fort.x11 \00734 ./arch/planes/fire/burning_fort_sym.111 \00735 ./arch/planes/fire/burning_fountain.111 \00736 ./arch/planes/fire/burning_fountain.112 \00737 ./arch/planes/fire/burning_fountain.113 \00738 ./arch/planes/fire/burning_guild.x11 \00739 ./arch/planes/fire/burning_house_1.111 \00740 ./arch/planes/fire/burning_house_larg.x11 \00741 ./arch/planes/fire/burning_house_long.x11 \00742 ./arch/planes/fire/burning_house_up.x11 \00743 ./arch/planes/fire/burning_housesmall.111 \00744 ./arch/planes/fire/burning_l_shop1.x11 \00745 ./arch/planes/fire/burning_market1.111 \00746 ./arch/planes/fire/burning_market2.111 \00747 ./arch/planes/fire/burning_market3.111 \00748 ./arch/planes/fire/burning_shrine.111 \00749 ./arch/planes/fire/burning_smalltemple.111 \00750 ./arch/planes/fire/burning_store_alch.x11 \00751 ./arch/planes/fire/burning_store_armo.x11 \00752 ./arch/planes/fire/burning_store_gene.x11 \00753 ./arch/planes/fire/burning_store_magi.x11 \00754 ./arch/planes/fire/burning_store_weap.x11 \00755 ./arch/planes/fire/burning_stronghold.x11 \00756 ./arch/planes/fire/burning_t_house2.x11 \00757 ./arch/planes/fire/burning_temple1.x11 \00758 ./arch/gods/items/burning_tail/burningtail.111 \00759 ./arch/gods/items/burning_tail/burningtail.112 \00760 ./arch/gods/items/burning_tail/burningtail.113 \00761 ./arch/planes/fire/burningwall/burningwall_0.111 \00762 ./arch/planes/fire/burningwall/burningwall_0.112 \00763 ./arch/planes/fire/burningwall/burningwall_1.111 \00764 ./arch/planes/fire/burningwall/burningwall_1.112 \00765 ./arch/planes/fire/burningwall/burningwall_2.111 \00766 ./arch/planes/fire/burningwall/burningwall_2.112 \00767 ./arch/planes/fire/burningwall/burningwall_3.111 \00768 ./arch/planes/fire/burningwall/burningwall_3.112 \00769 ./arch/planes/fire/burningwall/burningwall_4.111 \00770 ./arch/planes/fire/burningwall/burningwall_4.112 \00771 ./arch/planes/fire/burningwall/burningwall_5.111 \00772 ./arch/planes/fire/burningwall/burningwall_5.112 \00773 ./arch/planes/fire/burningwall/burningwall_6.111 \00774 ./arch/planes/fire/burningwall/burningwall_6.112 \00775 ./arch/planes/fire/burningwall/burningwall_7.111 \00776 ./arch/planes/fire/burningwall/burningwall_7.112 \00777 ./arch/planes/fire/burningwall/burningwall_8.111 \00778 ./arch/planes/fire/burningwall/burningwall_8.112 \00779 ./arch/planes/fire/burningwall/burningwall_9.111 \00780 ./arch/planes/fire/burningwall/burningwall_9.112 \00781 ./arch/planes/fire/burningwall/burningwall_A.111 \00782 ./arch/planes/fire/burningwall/burningwall_A.112 \00783 ./arch/planes/fire/burningwall/burningwall_B.111 \00784 ./arch/planes/fire/burningwall/burningwall_B.112 \00785 ./arch/planes/fire/burningwall/burningwall_C.111 \00786 ./arch/planes/fire/burningwall/burningwall_C.112 \00787 ./arch/planes/fire/burningwall/burningwall_D.111 \00788 ./arch/planes/fire/burningwall/burningwall_D.112 \00789 ./arch/planes/fire/burningwall/burningwall_E.111 \00790 ./arch/planes/fire/burningwall/burningwall_E.112 \00791 ./arch/planes/fire/burningwall/burningwall_F.111 \00792 ./arch/planes/fire/burningwall/burningwall_F.112 \00793 ./arch/spell/Burnout/burnout.111 \00794 ./arch/spell/Burnout/burnout.112 \00795 ./arch/spell/Burnout/burnout.113 \00796 ./arch/spell/Burnout/burnout.114 \00797 ./arch/spell/Burnout/burnout.115 \00798 ./arch/spell/Burnout/burnout.116 \00799 ./arch/spell/Burnout/burnout.117 \00800 ./arch/spell/Burnout/burnout.118 \00801 ./arch/spell/Burnout/burnout.119 \00802 ./arch/spell/Burnout/burnout.11A \00803 ./arch/spell/Burnout/burnout.11B \00804 ./arch/spell/Burnout/burnout.11C \00805 ./arch/spell/Burnout/burnout.11D \00806 ./arch/spell/Burnout/burnout.11E \00807 ./arch/spell/Burnout/burnout.11F \00808 ./arch/spell/Burnout/burnout.11G \00809 ./arch/spell/Burnout/burnout.11H \00810 ./arch/spell/Burnout/burnout.11J \00811 ./arch/spell/Burnout/burnout.11K \00812 ./arch/spell/Burnout/burnout.11L \00813 ./arch/spell/Burnout/burnout.11M \00814 ./arch/spell/Burnout/burnout.11N \00815 ./arch/spell/Burnout/burnout.11O \00816 ./arch/spell/Burnout/burnout.11P \00817 ./arch/spell/Burnout/burnout.11Q \00818 ./arch/spell/Burnout/burnout.11R \00819 ./arch/weapon/sword/butterflysword_1.111 \00820 ./arch/weapon/sword/butterflysword_2.111 \00821 ./arch/connect/button_big.111 \00822 ./arch/connect/button_big.112 \00823 ./arch/connect/button_sma.111 \00824 ./arch/connect/button_sma.112 \00825 ./arch/wall/bwall/bwall_0.111 \00826 ./arch/wall/bwall/bwall_1.111 \00827 ./arch/wall/bwall/bwall_2.111 \00828 ./arch/wall/bwall/bwall_3.111 \00829 ./arch/wall/bwall/bwall_4.111 \00830 ./arch/wall/bwall/bwall_5.111 \00831 ./arch/wall/bwall/bwall_6.111 \00832 ./arch/wall/bwall/bwall_7.111 \00833 ./arch/wall/bwall/bwall_8.111 \00834 ./arch/wall/bwall/bwall_9.111 \00835 ./arch/wall/bwall/bwall_A.111 \00836 ./arch/wall/bwall/bwall_B.111 \00837 ./arch/wall/bwall/bwall_C.111 \00838 ./arch/wall/bwall/bwall_D.111 \00839 ./arch/wall/bwall/bwall_E.111 \00840 ./arch/wall/bwall/bwall_F.111 \00841 ./arch/wall/bwall/bwall_hole_5.111 \00842 ./arch/wall/bwall/bwall_hole_A.111 \00843 ./arch/wall/bwall/bwall_w_0.111 \00844 ./arch/wall/bwall/bwall_w_0.112 \00845 ./arch/wall/bwall/bwall_w_0.113 \00846 ./arch/wall/bwall/bwall_w_0.114 \00847 ./arch/wall/bwall/bwall_w_0.115 \00848 ./arch/wall/bwall/bwall_w_0.116 \00849 ./arch/wall/bwall/bwall_w_0.117 \00850 ./arch/wall/bwall/bwall_w_1.111 \00851 ./arch/wall/bwall/bwall_w_1.112 \00852 ./arch/wall/bwall/bwall_w_1.113 \00853 ./arch/wall/bwall/bwall_w_1.114 \00854 ./arch/wall/bwall/bwall_w_1.115 \00855 ./arch/wall/bwall/bwall_w_1.116 \00856 ./arch/wall/bwall/bwall_w_1.117 \00857 ./arch/monster/giant/byakie/byakie.x11 \00858 ./arch/monster/giant/byakie/byakie.x12 \00859 ./arch/monster/misc/c_knight.111 \00860 ./arch/monster/misc/c_knight.112 \00861 ./arch/monster/misc/c_priest.131 \00862 ./arch/monster/misc/c_priest.132 \00863 ./arch/monster/misc/c_priest.171 \00864 ./arch/monster/misc/c_priest.172 \00865 ./arch/food/cabbage.111 \00866 ./arch/food/cake.111 \00867 ./arch/system/mood_floors/calm_floor.111 \00868 ./arch/misc/Camp/campfire.111 \00869 ./arch/misc/Camp/campfire.112 \00870 ./arch/misc/Camp/campfire.113 \00871 ./arch/misc/Camp/campfire.114 \00872 ./arch/misc/Camp/campfire_out.111 \00873 ./arch/spell/Bolt/cancellation.111 \00874 ./arch/spell/Bolt/cancellation.112 \00875 ./arch/spell/Bolt/cancellation.113 \00876 ./arch/misc/cannon_0.111 \00877 ./arch/misc/cannon_1.111 \00878 ./arch/misc/cannon_2.111 \00879 ./arch/misc/cannon_3.111 \00880 ./arch/misc/cannon_4.111 \00881 ./arch/misc/cannon_5.111 \00882 ./arch/misc/cannon_6.111 \00883 ./arch/misc/cannon_7.111 \00884 ./arch/misc/cannon_8.111 \00885 ./arch/construct/keep/capitalhold_east.x11 \00886 ./arch/construct/keep/capitalhold_west.x11 \00887 ./arch/food/caramel.111 \00888 ./arch/readable/card.111 \00889 ./arch/readable/card_crown.111 \00890 ./arch/readable/card_cup.111 \00891 ./arch/readable/card_dragon.111 \00892 ./arch/readable/card_ring.111 \00893 ./arch/readable/card_skull.111 \00894 ./arch/readable/card_sword.111 \00895 ./arch/food/carrot.111 \00896 ./arch/misc/Container/carton_box_1.111 \00897 ./arch/misc/Container/carton_box_1_open.111 \00898 ./arch/construct/castle/castle.111 \00899 ./arch/construct/castle/castle_a.x11 \00900 ./arch/construct/castle/castle_a.x12 \00901 ./arch/construct/castle/castle_a_east.x11 \00902 ./arch/construct/castle/castle_a_northwest.x11 \00903 ./arch/construct/castle/castle_a_northwest.x12 \00904 ./arch/construct/castle/castle_a_western.x11 \00905 ./arch/construct/castle/castle_a_western.x12 \00906 ./arch/construct/castle/castle_west.111 \00907 ./arch/construct/temple/cathedral.x11 \00908 ./arch/misc/Container/cauldron.111 \00909 ./arch/misc/Container/cauldron_open.111 \00910 ./arch/spell/Bullet/cause.111 \00911 ./arch/spell/Bullet/cause.112 \00912 ./arch/wall/cave/cave1.111 \00913 ./arch/wall/cave/cave10.111 \00914 ./arch/wall/cave/cave11.111 \00915 ./arch/wall/cave/cave12.111 \00916 ./arch/wall/cave/cave13.111 \00917 ./arch/wall/cave/cave14.111 \00918 ./arch/wall/cave/cave15.111 \00919 ./arch/wall/cave/cave16.111 \00920 ./arch/wall/cave/cave17.111 \00921 ./arch/wall/cave/cave18.111 \00922 ./arch/wall/cave/cave19.111 \00923 ./arch/wall/cave/cave2.111 \00924 ./arch/wall/cave/cave20.111 \00925 ./arch/wall/cave/cave21.111 \00926 ./arch/wall/cave/cave22.111 \00927 ./arch/wall/cave/cave23.111 \00928 ./arch/wall/cave/cave24.111 \00929 ./arch/wall/cave/cave25.111 \00930 ./arch/wall/cave/cave3.111 \00931 ./arch/wall/cave/cave4.111 \00932 ./arch/wall/cave/cave5.111 \00933 ./arch/wall/cave/cave6.111 \00934 ./arch/wall/cave/cave7.111 \00935 ./arch/wall/cave/cave8.111 \00936 ./arch/wall/cave/cave9.111 \00937 ./arch/wall/cave/cave_0.111 \00938 ./arch/wall/cave/cave_1.111 \00939 ./arch/wall/cave/cave_10.111 \00940 ./arch/wall/cave/cave_11.111 \00941 ./arch/wall/cave/cave_12.111 \00942 ./arch/wall/cave/cave_13.111 \00943 ./arch/wall/cave/cave_14.111 \00944 ./arch/wall/cave/cave_15.111 \00945 ./arch/wall/cave/cave_16.111 \00946 ./arch/wall/cave/cave_17.111 \00947 ./arch/wall/cave/cave_18.111 \00948 ./arch/wall/cave/cave_19.111 \00949 ./arch/wall/cave/cave_2.111 \00950 ./arch/wall/cave/cave_20.111 \00951 ./arch/wall/cave/cave_21.111 \00952 ./arch/wall/cave/cave_22.111 \00953 ./arch/wall/cave/cave_23.111 \00954 ./arch/wall/cave/cave_24.111 \00955 ./arch/wall/cave/cave_3.111 \00956 ./arch/wall/cave/cave_4.111 \00957 ./arch/wall/cave/cave_5.111 \00958 ./arch/wall/cave/cave_6.111 \00959 ./arch/wall/cave/cave_7.111 \00960 ./arch/wall/cave/cave_8.111 \00961 ./arch/wall/cave/cave_9.111 \00962 ./arch/exit/Up_down/cave_stair_up_2.111 \00963 ./arch/monster/insect/centipede/centipede.111 \00964 ./arch/monster/insect/centipede/centipede.112 \00965 ./arch/monster/insect/centipede/centipede.113 \00966 ./arch/monster/insect/centipede/centipede.114 \00967 ./arch/monster/insect/centipede/centipede.121 \00968 ./arch/monster/insect/centipede/centipede.122 \00969 ./arch/monster/insect/centipede/centipede.123 \00970 ./arch/monster/insect/centipede/centipede.124 \00971 ./arch/monster/insect/centipede/centipede.131 \00972 ./arch/monster/insect/centipede/centipede.132 \00973 ./arch/monster/insect/centipede/centipede.133 \00974 ./arch/monster/insect/centipede/centipede.134 \00975 ./arch/monster/insect/centipede/centipede.141 \00976 ./arch/monster/insect/centipede/centipede.142 \00977 ./arch/monster/insect/centipede/centipede.143 \00978 ./arch/monster/insect/centipede/centipede.144 \00979 ./arch/monster/insect/centipede/centipede.151 \00980 ./arch/monster/insect/centipede/centipede.152 \00981 ./arch/monster/insect/centipede/centipede.153 \00982 ./arch/monster/insect/centipede/centipede.154 \00983 ./arch/monster/insect/centipede/centipede.161 \00984 ./arch/monster/insect/centipede/centipede.162 \00985 ./arch/monster/insect/centipede/centipede.163 \00986 ./arch/monster/insect/centipede/centipede.164 \00987 ./arch/monster/insect/centipede/centipede.171 \00988 ./arch/monster/insect/centipede/centipede.172 \00989 ./arch/monster/insect/centipede/centipede.173 \00990 ./arch/monster/insect/centipede/centipede.174 \00991 ./arch/monster/insect/centipede/centipede.181 \00992 ./arch/monster/insect/centipede/centipede.182 \00993 ./arch/monster/insect/centipede/centipede.183 \00994 ./arch/monster/insect/centipede/centipede.184 \00995 ./arch/monster/insect/centipede/centipede_r.111 \00996 ./arch/monster/insect/centipede/centipede_r.112 \00997 ./arch/monster/insect/centipede/centipede_r.113 \00998 ./arch/ground/Winter/cforest1.111 \00999 ./arch/ground/Winter/cforest2.111 \01000 ./arch/ground/Winter/cforest3.111 \01001 ./arch/ground/Winter/cforest4.111 \01002 ./arch/ground/Winter/cforest5.111 \01003 ./arch/ground/Winter/cforest6.111 \01004 ./arch/monster/misc/Chess/ch_bish.111 \01005 ./arch/monster/misc/Chess/ch_bish_w.111 \01006 ./arch/food/ch_burger.111 \01007 ./arch/monster/misc/Chess/ch_king.111 \01008 ./arch/monster/misc/Chess/ch_king_w.111 \01009 ./arch/monster/misc/Chess/ch_knight.111 \01010 ./arch/monster/misc/Chess/ch_knight_w.111 \01011 ./arch/monster/misc/Chess/ch_pawn.111 \01012 ./arch/monster/misc/Chess/ch_pawn_w.111 \01013 ./arch/monster/misc/Chess/ch_queen.111 \01014 ./arch/monster/misc/Chess/ch_queen_w.111 \01015 ./arch/monster/misc/Chess/ch_rook.111 \01016 ./arch/monster/misc/Chess/ch_rook_w.111 \01017 ./arch/armour/mail/chainmail.111 \01018 ./arch/indoor/chair.111 \01019 ./arch/indoor/chair_1.101 \01020 ./arch/indoor/chair_1.111 \01021 ./arch/indoor/chair_1.121 \01022 ./arch/indoor/chair_1.131 \01023 ./arch/indoor/chair_2.101 \01024 ./arch/indoor/chair_2.111 \01025 ./arch/indoor/chair_2.121 \01026 ./arch/indoor/chair_2.131 \01027 ./arch/indoor/chair_3.101 \01028 ./arch/indoor/chair_3.111 \01029 ./arch/indoor/chair_bc_2.101 \01030 ./arch/indoor/chair_bc_2.111 \01031 ./arch/indoor/chair_bc_2.121 \01032 ./arch/indoor/chair_bc_2.131 \01033 ./arch/indoor/chair_cw_1.101 \01034 ./arch/indoor/chair_cw_1.111 \01035 ./arch/indoor/chair_cw_1.121 \01036 ./arch/indoor/chair_cw_1.131 \01037 ./arch/indoor/chair_gv_1.101 \01038 ./arch/indoor/chair_gv_1.111 \01039 ./arch/indoor/chair_gv_1.121 \01040 ./arch/indoor/chair_gv_1.131 \01041 ./arch/indoor/chair_wv_1.101 \01042 ./arch/indoor/chair_wv_1.111 \01043 ./arch/indoor/chair_wv_1.121 \01044 ./arch/indoor/chair_wv_1.131 \01045 ./arch/misc/chalice.111 \01046 ./arch/misc/chalice.112 \01047 ./arch/misc/chalice.113 \01048 ./arch/misc/chalice.114 \01049 ./arch/misc/chalice_bro.111 \01050 ./arch/misc/chalice_bro.112 \01051 ./arch/misc/chalice_bro.113 \01052 ./arch/misc/chalice_bro.114 \01053 ./arch/misc/chalice_cop.111 \01054 ./arch/misc/chalice_cop.112 \01055 ./arch/misc/chalice_cop.113 \01056 ./arch/misc/chalice_cop.114 \01057 ./arch/misc/chalice_iro.111 \01058 ./arch/misc/chalice_iro.112 \01059 ./arch/misc/chalice_iro.113 \01060 ./arch/misc/chalice_iro.114 \01061 ./arch/misc/chalice_plat.111 \01062 ./arch/misc/chalice_plat.112 \01063 ./arch/misc/chalice_plat.113 \01064 ./arch/misc/chalice_plat.114 \01065 ./arch/misc/chalice_sil.111 \01066 ./arch/misc/chalice_sil.112 \01067 ./arch/misc/chalice_sil.113 \01068 ./arch/misc/chalice_sil.114 \01069 ./arch/misc/chalice_tin.111 \01070 ./arch/misc/chalice_tin.112 \01071 ./arch/misc/chalice_tin.113 \01072 ./arch/misc/chalice_tin.114 \01073 ./arch/misc/chandelier_1.x11 \01074 ./arch/misc/chandelier_2.111 \01075 ./arch/misc/chandelier_2.112 \01076 ./arch/misc/chandelier_2.113 \01077 ./arch/misc/chandelier_2.114 \01078 ./arch/misc/chandelier_2_copper.111 \01079 ./arch/misc/chandelier_2_copper.112 \01080 ./arch/misc/chandelier_2_copper.113 \01081 ./arch/misc/chandelier_2_copper.114 \01082 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x31 \01083 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x32 \01084 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x33 \01085 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x34 \01086 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x71 \01087 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x72 \01088 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x73 \01089 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x74 \01090 ./arch/spell/MoodChange/charm_aura.111 \01091 ./arch/spell/MoodChange/charm_aura.112 \01092 ./arch/spell/MoodChange/charm_aura.113 \01093 ./arch/system/mood_floors/charm_floor.111 \01094 ./arch/monster/humanoid/Human/charwoman.131 \01095 ./arch/monster/humanoid/Human/charwoman.132 \01096 ./arch/monster/humanoid/Human/charwoman.171 \01097 ./arch/monster/humanoid/Human/charwoman.172 \01098 ./arch/system/mood_floors/check_floor.111 \01099 ./arch/connect/check_inv.111 \01100 ./arch/readable/checkbook.111 \01101 ./arch/construct/roof/chemney_1.111 \01102 ./arch/construct/roof/chemney_2.111 \01103 ./arch/monster/angel/cherub.111 \01104 ./arch/construct/house/chess_club.111 \01105 ./arch/misc/Container/chest_1.111 \01106 ./arch/misc/Container/chest_green_1.111 \01107 ./arch/misc/Container/chest_jade_1.111 \01108 ./arch/misc/Container/chest_valriel_1.111 \01109 ./arch/misc/Container/chest_valriel_1.112 \01110 ./arch/misc/Container/chest_valriel_1.113 \01111 ./arch/misc/Container/chest_valriel_1.114 \01112 ./arch/misc/Container/chest_white_1.111 \01113 ./arch/monster/animal/farmyard/chicken.131 \01114 ./arch/monster/animal/farmyard/chicken.132 \01115 ./arch/monster/animal/farmyard/chicken.171 \01116 ./arch/monster/animal/farmyard/chicken.172 \01117 ./arch/monster/humanoid/Human/child.111 \01118 ./arch/monster/humanoid/Human/child2.111 \01119 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x31 \01120 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x32 \01121 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x33 \01122 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x71 \01123 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x72 \01124 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x73 \01125 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x31 \01126 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x32 \01127 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x71 \01128 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x72 \01129 ./arch/food/chocolate.111 \01130 ./arch/exit/chole_1.111 \01131 ./arch/exit/chole_2.111 \01132 ./arch/construct/town/church.x11 \01133 ./arch/construct/town/church_fant.x11 \01134 ./arch/inorganic/cinna.111 \01135 ./arch/construct/tower/city-tower.x11 \01136 ./arch/construct/tower/city-tower_west.x11 \01137 ./arch/construct/tower/city_tower_east.x11 \01138 ./arch/construct/tower/city_tower_fant.x11 \01139 ./arch/construct/tower/city_tower_northwest.x11 \01140 ./arch/wall/cwall/cityport_0.111 \01141 ./arch/wall/cwall/cityport_1.111 \01142 ./arch/misc/claypipe.111 \01143 ./arch/player/class/Religious/cleric.111 \01144 ./arch/player/class/Religious/cleric.112 \01145 ./arch/player/class/Religious/cleric.131 \01146 ./arch/player/class/Religious/cleric.132 \01147 ./arch/player/class/Religious/cleric.151 \01148 ./arch/player/class/Religious/cleric.152 \01149 ./arch/player/class/Religious/cleric.171 \01150 ./arch/player/class/Religious/cleric.172 \01151 ./arch/armour/cloak/cloak.111 \01152 ./arch/armour/cloak/cloak_black.111 \01153 ./arch/armour/cloak/cloak_lblue.111 \01154 ./arch/armour/cloak/cloak_lgrey.111 \01155 ./arch/armour/cloak/cloak_purple.111 \01156 ./arch/armour/cloak/cloak_red.111 \01157 ./arch/armour/cloak/cloak_trans.112 \01158 ./arch/armour/cloak/cloak_white.111 \01159 ./arch/indoor/clock.111 \01160 ./arch/indoor/clock.112 \01161 ./arch/indoor/clock_ag.111 \01162 ./arch/indoor/clock_ag.112 \01163 ./arch/indoor/clock_cw.111 \01164 ./arch/indoor/clock_cw.112 \01165 ./arch/indoor/clock_grand.111 \01166 ./arch/indoor/clock_grand.112 \01167 ./arch/misc/Container/close_attache.111 \01168 ./arch/misc/Container/close_bag.111 \01169 ./arch/misc/Container/close_dbox.111 \01170 ./arch/misc/Container/close_desk.111 \01171 ./arch/misc/Container/close_desk_cw.111 \01172 ./arch/misc/Container/close_dresser.111 \01173 ./arch/misc/Container/close_dresser2.111 \01174 ./arch/misc/Container/close_dresser2_cw.111 \01175 ./arch/misc/Container/close_dresser_cw.111 \01176 ./arch/misc/Container/close_keys.111 \01177 ./arch/misc/Container/close_pouc.111 \01178 ./arch/misc/Container/close_present_box_1.111 \01179 ./arch/misc/Container/close_present_box_2.111 \01180 ./arch/misc/Container/close_present_box_3.111 \01181 ./arch/misc/Container/close_present_box_4.111 \01182 ./arch/misc/Container/close_present_box_5.111 \01183 ./arch/misc/Container/close_present_box_6.111 \01184 ./arch/misc/Container/close_quiv.111 \01185 ./arch/misc/Container/close_rsack.111 \01186 ./arch/misc/Container/close_sack.111 \01187 ./arch/misc/Container/close_sarcophagus.111 \01188 ./arch/misc/Container/close_schest.111 \01189 ./arch/misc/Container/close_wizdesk.111 \01190 ./arch/misc/Container/closechest.111 \01191 ./arch/misc/Container/closemail.111 \01192 ./arch/ground/sky/cloud_1_1.x11 \01193 ./arch/ground/sky/cloud_1_2.x11 \01194 ./arch/ground/sky/cloud_1_3.x11 \01195 ./arch/ground/sky/cloud_2_1.x11 \01196 ./arch/ground/sky/cloud_2_2.x11 \01197 ./arch/ground/sky/cloud_2_3.x11 \01198 ./arch/ground/sky/cloud_3_1.x11 \01199 ./arch/ground/sky/cloud_3_2.x11 \01200 ./arch/ground/sky/cloud_3_3.x11 \01201 ./arch/ground/sky/cloud_4_1.x11 \01202 ./arch/ground/sky/cloud_4_2.x11 \01203 ./arch/ground/sky/cloud_4_3.x11 \01204 ./arch/ground/sky/cloud_5_1.x11 \01205 ./arch/ground/sky/cloud_5_2.x11 \01206 ./arch/ground/sky/cloud_5_3.x11 \01207 ./arch/food/clover.111 \01208 ./arch/monster/humanoid/Human/clown.111 \01209 ./arch/weapon/club/club.111 \01210 ./arch/ground/cmarsh.111 \01211 ./arch/floor/cobblesto1.111 \01212 ./arch/floor/cobblesto2.111 \01213 ./arch/floor/cobblesto3.111 \01214 ./arch/monster/animal/cobra.x11 \01215 ./arch/monster/animal/cobra.x12 \01216 ./arch/monster/animal/cobra.x13 \01217 ./arch/food/coffee.111 \01218 ./arch/food/coffee_empty.111 \01219 ./arch/misc/coffin.111 \01220 ./arch/monster/dragon/Hatchlings/cold_drag.131 \01221 ./arch/monster/dragon/Hatchlings/cold_drag.132 \01222 ./arch/monster/dragon/Hatchlings/cold_drag.171 \01223 ./arch/monster/dragon/Hatchlings/cold_drag.172 \01224 ./arch/planes/fire/coldmagma.111 \01225 ./arch/planes/fire/coldmagma.112 \01226 ./arch/talisman/collar.111 \01227 ./arch/talisman/collar.112 \01228 ./arch/talisman/collar.113 \01229 ./arch/construct/town/collesium.x11 \01230 ./arch/weapon/bow/compositebow.111 \01231 ./arch/spell/Cone/confusion.111 \01232 ./arch/spell/Cone/confusion.112 \01233 ./arch/spell/Cone/confusion.113 \01234 ./arch/spell/Cone/confusion.114 \01235 ./arch/monster/humanoid/Class/conjurer.111 \01236 ./arch/monster/humanoid/Class/conjurer.112 \01237 ./arch/monster/humanoid/Class/conjurer.113 \01238 ./arch/shop/conv.111 \01239 ./arch/jewel/copperbar.111 \01240 ./arch/flesh/human/corpse.111 \01241 ./arch/flesh/human/corpse1.111 \01242 ./arch/spell/Cone/counterspell.111 \01243 ./arch/monster/humanoid/Human/courier.111 \01244 ./arch/monster/humanoid/Human/courierblue.111 \01245 ./arch/monster/humanoid/Human/couriergreen.111 \01246 ./arch/monster/humanoid/Human/couriermagenta.111 \01247 ./arch/monster/humanoid/Human/courierorange.111 \01248 ./arch/monster/humanoid/Human/courierpurple.111 \01249 ./arch/monster/humanoid/Human/courierturquoise.111 \01250 ./arch/monster/humanoid/Human/courieryellow.111 \01251 ./arch/construct/town/courthouse.x11 \01252 ./arch/misc/cplate.111 \01253 ./arch/ground/Stone/crater.111 \01254 ./arch/monster/misc/crawl/crawling_chaos.111 \01255 ./arch/monster/misc/crawl/crawling_chaos.112 \01256 ./arch/monster/misc/crawl/crawling_chaos.113 \01257 ./arch/shop/crea_serp_c.111 \01258 ./arch/system/creator.111 \01259 ./arch/monster/humanoid/Human/crone.111 \01260 ./arch/weapon/bow/crossbow.111 \01261 ./arch/readable/crossroad.111 \01262 ./arch/armour/helmet/crown.111 \01263 ./arch/armour/helmet/crown2.111 \01264 ./arch/armour/helmet/crown_dark.111 \01265 ./arch/armour/helmet/crown_gray.111 \01266 ./arch/armour/helmet/crown_r.111 \01267 ./arch/armour/helmet/crown_white.111 \01268 ./arch/misc/crystalball.111 \01269 ./arch/weapon/club/cudgel.111 \01270 ./arch/wall/cwall/cwall_0.111 \01271 ./arch/wall/cwall/cwall_1.111 \01272 ./arch/wall/cwall/cwall_2.111 \01273 ./arch/wall/cwall/cwall_3.111 \01274 ./arch/wall/cwall/cwall_4.111 \01275 ./arch/wall/cwall/cwall_5.111 \01276 ./arch/wall/cwall/cwall_6.111 \01277 ./arch/wall/cwall/cwall_7.111 \01278 ./arch/wall/cwall/cwall_8.111 \01279 ./arch/wall/cwall/cwall_9.111 \01280 ./arch/wall/cwall/cwall_A.111 \01281 ./arch/wall/cwall/cwall_B.111 \01282 ./arch/wall/cwall/cwall_C.111 \01283 ./arch/wall/cwall/cwall_D.111 \01284 ./arch/wall/cwall/cwall_E.111 \01285 ./arch/wall/cwall/cwall_F.111 \01286 ./arch/wall/cwall/cwall_beigemarble.111 \01287 ./arch/wall/cwall/cwall_bluemarblemedium.111 \01288 ./arch/wall/cwall/cwall_cyanmarble.111 \01289 ./arch/wall/cwall/cwall_cyanmarbledark.111 \01290 ./arch/wall/cwall/cwall_graymarble.111 \01291 ./arch/wall/cwall/cwall_greenmarble.111 \01292 ./arch/wall/cwall/cwall_greenmarblemedium.111 \01293 ./arch/wall/cwall/cwall_magentamarble.111 \01294 ./arch/wall/cwall/cwall_marble.111 \01295 ./arch/wall/cwall/cwall_mural_1.111 \01296 ./arch/wall/cwall/cwall_mural_1.112 \01297 ./arch/wall/cwall/cwall_mural_1.113 \01298 ./arch/wall/cwall/cwall_mural_1.114 \01299 ./arch/wall/cwall/cwall_mural_end_1.111 \01300 ./arch/wall/cwall/cwall_mural_end_1.112 \01301 ./arch/wall/cwall/cwall_pinkmarble.111 \01302 ./arch/wall/cwall/cwall_w_0.111 \01303 ./arch/wall/cwall/cwall_w_0.112 \01304 ./arch/wall/cwall/cwall_w_0.113 \01305 ./arch/wall/cwall/cwall_w_0.114 \01306 ./arch/wall/cwall/cwall_w_0.115 \01307 ./arch/wall/cwall/cwall_w_0.116 \01308 ./arch/wall/cwall/cwall_w_0.117 \01309 ./arch/wall/cwall/cwall_w_0.118 \01310 ./arch/wall/cwall/cwall_w_0.119 \01311 ./arch/wall/cwall/cwall_w_0.11A \01312 ./arch/wall/cwall/cwall_w_1.111 \01313 ./arch/wall/cwall/cwall_w_1.112 \01314 ./arch/wall/cwall/cwall_w_1.113 \01315 ./arch/wall/cwall/cwall_w_1.114 \01316 ./arch/wall/cwall/cwall_w_1.115 \01317 ./arch/wall/cwall/cwall_w_1.116 \01318 ./arch/wall/cwall/cwall_w_1.117 \01319 ./arch/wall/cwall/cwall_w_1.118 \01320 ./arch/wall/cwall/cwall_w_1.119 \01321 ./arch/connect/cwallsec.111 \01322 ./arch/connect/cwallsec.112 \01323 ./arch/connect/cwallsec.113 \01324 ./arch/connect/cwallsec.114 \01325 ./arch/connect/cwallsec.115 \01326 ./arch/connect/cwallsec.116 \01327 ./arch/connect/cwallsec.117 \01328 ./arch/connect/cwallsec.118 \01329 ./arch/connect/cwallsec_mural_1.111 \01330 ./arch/connect/cwallsec_mural_1.112 \01331 ./arch/connect/cwallsec_mural_1.113 \01332 ./arch/connect/cwallsec_mural_1.114 \01333 ./arch/connect/cwallsec_mural_1.115 \01334 ./arch/connect/cwallsec_mural_1.116 \01335 ./arch/connect/cwallsec_mural_1.117 \01336 ./arch/connect/cwallsec_mural_1.118 \01337 ./arch/floor/inlayed/cyan-beige-c-marble.111 \01338 ./arch/floor/inlayed/cyan-beige-c-marble.112 \01339 ./arch/floor/inlayed/cyan-beige-c-marble.113 \01340 ./arch/floor/inlayed/cyan-beige-c-marble.114 \01341 ./arch/ground/Wood/cyanbrush.111 \01342 ./arch/ground/cyangrass.111 \01343 ./arch/ground/smooth/cyangrass_S.111 \01344 ./arch/ground/cyangrasspond.111 \01345 ./arch/floor/cyanmarble.111 \01346 ./arch/monster/giant/cyclops/cyclops.x31 \01347 ./arch/monster/giant/cyclops/cyclops.x32 \01348 ./arch/monster/giant/cyclops/cyclops.x71 \01349 ./arch/monster/giant/cyclops/cyclops.x72 \01350 ./arch/misc/d_statue.111 \01351 ./arch/weapon/sword/dagger.111 \01352 ./arch/weapon/artifact/Fdagger/dagger_f.111 \01353 ./arch/weapon/artifact/Fdagger/dagger_f.112 \01354 ./arch/weapon/artifact/Fdagger/dagger_f.113 \01355 ./arch/weapon/artifact/Fdagger/dagger_f.114 \01356 ./arch/weapon/sword/dagger_r.111 \01357 ./arch/monster/humanoid/Arabic/dancing_girl.111 \01358 ./arch/monster/humanoid/Arabic/dancing_girl.112 \01359 ./arch/monster/humanoid/Arabic/dancing_girl.113 \01360 ./arch/monster/misc/dancingsword.111 \01361 ./arch/monster/misc/dancingsword.112 \01362 ./arch/monster/misc/dancingsword.113 \01363 ./arch/system/dark1.111 \01364 ./arch/system/dark2.111 \01365 ./arch/system/dark3.111 \01366 ./arch/monster/humanoid/Elf/dark_elf.111 \01367 ./arch/monster/humanoid/Elf/dark_elf.112 \01368 ./arch/monster/humanoid/Elf/dark_elf.131 \01369 ./arch/monster/humanoid/Elf/dark_elf.132 \01370 ./arch/monster/humanoid/Elf/dark_elf.171 \01371 ./arch/monster/humanoid/Elf/dark_elf.172 \01372 ./arch/monster/humanoid/Elf/dark_elf2.131 \01373 ./arch/monster/humanoid/Elf/dark_elf2.132 \01374 ./arch/monster/humanoid/Elf/dark_elf2.171 \01375 ./arch/monster/humanoid/Elf/dark_elf2.172 \01376 ./arch/construct/Palace/dark_palace.x11 \01377 ./arch/weapon/artifact/Darkblade/darkblade.111 \01378 ./arch/weapon/artifact/Darkblade/darkblade.112 \01379 ./arch/weapon/artifact/Darkblade/darkblade.113 \01380 ./arch/weapon/artifact/Darkblade/darkblade.114 \01381 ./arch/weapon/artifact/Darkblade/darkblade.115 \01382 ./arch/weapon/artifact/Darkblade/darkblade.116 \01383 ./arch/weapon/artifact/Darkblade/darkblade.117 \01384 ./arch/ground/Wood/darkforest.111 \01385 ./arch/ground/smooth/darkforest_S.111 \01386 ./arch/construct/hold/darkhold.x11 \01387 ./arch/construct/hold/darkhold_s.111 \01388 ./arch/monster/undead/dave.111 \01389 ./arch/monster/undead/dave.112 \01390 ./arch/monster/undead/dave.113 \01391 ./arch/road/drawbridge/dbridge1.111 \01392 ./arch/road/drawbridge/dbridge2.111 \01393 ./arch/floor/dcross-red.111 \01394 ./arch/floor/dcross-white.111 \01395 ./arch/flesh/misc/dead_neko.111 \01396 ./arch/weapon/artifact/deathbring.111 \01397 ./arch/monster/undead/deathshead.111 \01398 ./arch/monster/undead/deathshead.112 \01399 ./arch/monster/undead/deathshead.113 \01400 ./arch/monster/undead/deathshead.114 \01401 ./arch/monster/misc/deathtree.111 \01402 ./arch/monster/misc/deathtree.112 \01403 ./arch/monster/misc/deathtree.113 \01404 ./arch/monster/misc/deathtree.114 \01405 ./arch/monster/misc/deathtree.115 \01406 ./arch/ground/deep_sea.111 \01407 ./arch/ground/deep_sea.112 \01408 ./arch/ground/deep_sea.113 \01409 ./arch/ground/deep_sea.114 \01410 ./arch/ground/smooth/deep_sea_S.111 \01411 ./arch/ground/smooth/deep_sea_S.112 \01412 ./arch/ground/smooth/deep_sea_S.113 \01413 ./arch/ground/smooth/deep_sea_S.114 \01414 ./arch/ground/deep_swamp.111 \01415 ./arch/ground/deep_swamp.112 \01416 ./arch/ground/smooth/deep_swamp_S.111 \01417 ./arch/ground/smooth/deep_swamp_S.112 \01418 ./arch/ground/smooth/default_smoothed.001 \01419 ./arch/ground/smooth/default_smoothed.010 \01420 ./arch/ground/smooth/default_smoothed.011 \01421 ./arch/ground/smooth/default_smoothed.100 \01422 ./arch/ground/smooth/default_smoothed.101 \01423 ./arch/ground/smooth/default_smoothed.110 \01424 ./arch/ground/smooth/default_smoothed.111 \01425 ./arch/weapon/artifact/defender.111 \01426 ./arch/monster/undead/demilich.111 \01427 ./arch/monster/undead/demilich.112 \01428 ./arch/monster/undead/demilich.113 \01429 ./arch/flesh/demon/demon_head.111 \01430 ./arch/monster/demon/Demon_Lord/demon_lord.x11 \01431 ./arch/monster/demon/Demon_Lord/demon_lord.x12 \01432 ./arch/weapon/artifact/Demonbane/demonbane.111 \01433 ./arch/weapon/artifact/Demonbane/demonbane.112 \01434 ./arch/weapon/artifact/Demonbane/demonbane.113 \01435 ./arch/weapon/artifact/Demonbane/demonbane.114 \01436 ./arch/weapon/artifact/Demonbane/demonbane.115 \01437 ./arch/weapon/artifact/Demonbane/demonbane.116 \01438 ./arch/weapon/artifact/Demonbane/demonbane.117 \01439 ./arch/weapon/artifact/Demonbane/demonbane.118 \01440 ./arch/weapon/artifact/Demonbane/demonbane.119 \01441 ./arch/misc/Container/depositbox.111 \01442 ./arch/ground/desert.111 \01443 ./arch/ground/smooth/desert_S.111 \01444 ./arch/misc/Container/desk.111 \01445 ./arch/misc/Container/desk_cw.111 \01446 ./arch/spell/Misc/destruction.111 \01447 ./arch/spell/Misc/destruction.112 \01448 ./arch/spell/Misc/destruction.113 \01449 ./arch/spell/Misc/destruction.114 \01450 ./arch/spell/Detect/det_magic.111 \01451 ./arch/spell/Detect/det_magic.112 \01452 ./arch/spell/Detect/det_magic.113 \01453 ./arch/monster/demon/devil.111 \01454 ./arch/monster/demon/devil.112 \01455 ./arch/monster/demon/devil_gen.111 \01456 ./arch/weapon/axe/dhaxe_1.111 \01457 ./arch/weapon/axe/dhaxe_2.111 \01458 ./arch/shop/diamond_converter.111 \01459 ./arch/jewel/diamond_exceptional.111 \01460 ./arch/jewel/diamond_flawless.111 \01461 ./arch/misc/dice.111 \01462 ./arch/misc/dice.112 \01463 ./arch/misc/dice.113 \01464 ./arch/readable/diploma.111 \01465 ./arch/connect/Director/director.111 \01466 ./arch/connect/Director/director.112 \01467 ./arch/connect/Director/director.113 \01468 ./arch/connect/Director/director.121 \01469 ./arch/connect/Director/director.122 \01470 ./arch/connect/Director/director.123 \01471 ./arch/connect/Director/director.124 \01472 ./arch/connect/Director/director.125 \01473 ./arch/connect/Director/director.131 \01474 ./arch/connect/Director/director.132 \01475 ./arch/connect/Director/director.133 \01476 ./arch/connect/Director/director.141 \01477 ./arch/connect/Director/director.142 \01478 ./arch/connect/Director/director.143 \01479 ./arch/connect/Director/director.144 \01480 ./arch/connect/Director/director.145 \01481 ./arch/connect/Director/director.151 \01482 ./arch/connect/Director/director.152 \01483 ./arch/connect/Director/director.153 \01484 ./arch/connect/Director/director.161 \01485 ./arch/connect/Director/director.162 \01486 ./arch/connect/Director/director.163 \01487 ./arch/connect/Director/director.164 \01488 ./arch/connect/Director/director.165 \01489 ./arch/connect/Director/director.171 \01490 ./arch/connect/Director/director.172 \01491 ./arch/connect/Director/director.173 \01492 ./arch/connect/Director/director.181 \01493 ./arch/connect/Director/director.182 \01494 ./arch/connect/Director/director.183 \01495 ./arch/connect/Director/director.184 \01496 ./arch/connect/Director/director.185 \01497 ./arch/inorganic/dirt.111 \01498 ./arch/floor/dirtfloor.111 \01499 ./arch/road/dirtroad/dirtroad_0.111 \01500 ./arch/road/dirtroad/dirtroad_05.111 \01501 ./arch/road/dirtroad/dirtroad_05.211 \01502 ./arch/road/dirtroad/dirtroad_05.311 \01503 ./arch/road/dirtroad/dirtroad_0A.111 \01504 ./arch/road/dirtroad/dirtroad_0A.211 \01505 ./arch/road/dirtroad/dirtroad_0A.311 \01506 ./arch/road/dirtroad/dirtroad_1.111 \01507 ./arch/road/dirtroad/dirtroad_14.111 \01508 ./arch/road/dirtroad/dirtroad_18.111 \01509 ./arch/road/dirtroad/dirtroad_2.111 \01510 ./arch/road/dirtroad/dirtroad_21.111 \01511 ./arch/road/dirtroad/dirtroad_28.111 \01512 ./arch/road/dirtroad/dirtroad_3.111 \01513 ./arch/road/dirtroad/dirtroad_4.111 \01514 ./arch/road/dirtroad/dirtroad_41.111 \01515 ./arch/road/dirtroad/dirtroad_42.111 \01516 ./arch/road/dirtroad/dirtroad_5.111 \01517 ./arch/road/dirtroad/dirtroad_6.111 \01518 ./arch/road/dirtroad/dirtroad_7.111 \01519 ./arch/road/dirtroad/dirtroad_8.111 \01520 ./arch/road/dirtroad/dirtroad_82.111 \01521 ./arch/road/dirtroad/dirtroad_84.111 \01522 ./arch/road/dirtroad/dirtroad_9.111 \01523 ./arch/road/dirtroad/dirtroad_A.111 \01524 ./arch/road/dirtroad/dirtroad_B.111 \01525 ./arch/road/dirtroad/dirtroad_C.111 \01526 ./arch/road/dirtroad/dirtroad_D.111 \01527 ./arch/road/dirtroad/dirtroad_E.111 \01528 ./arch/road/dirtroad/dirtroad_F.111 \01529 ./arch/monster/giant/djinn/djinn.x31 \01530 ./arch/monster/giant/djinn/djinn.x32 \01531 ./arch/monster/giant/djinn/djinn.x71 \01532 ./arch/monster/giant/djinn/djinn.x72 \01533 ./arch/monster/giant/djinn/djinn_magenta.x11 \01534 ./arch/monster/giant/djinn/djinn_magenta.x12 \01535 ./arch/monster/giant/djinn/djinn_magenta.x21 \01536 ./arch/monster/giant/djinn/djinn_magenta.x22 \01537 ./arch/monster/giant/djinn/djinn_magenta_big.x11 \01538 ./arch/monster/giant/djinn/djinn_magenta_big.x12 \01539 ./arch/monster/giant/djinn/djinn_magenta_big.x21 \01540 ./arch/monster/giant/djinn/djinn_magenta_big.x22 \01541 ./arch/wall/slevel/dlevel_0.111 \01542 ./arch/wall/slevel/dlevel_1.111 \01543 ./arch/wall/slevel/dlevel_2.111 \01544 ./arch/wall/slevel/dlevel_3.111 \01545 ./arch/wall/slevel/dlevel_4.111 \01546 ./arch/wall/slevel/dlevel_5.111 \01547 ./arch/wall/slevel/dlevel_6.111 \01548 ./arch/wall/slevel/dlevel_7.111 \01549 ./arch/wall/slevel/dlevel_7sw.111 \01550 ./arch/wall/slevel/dlevel_8.111 \01551 ./arch/wall/slevel/dlevel_9.111 \01552 ./arch/wall/slevel/dlevel_A.111 \01553 ./arch/wall/slevel/dlevel_B.111 \01554 ./arch/wall/slevel/dlevel_Bse.111 \01555 ./arch/wall/slevel/dlevel_Bsw.111 \01556 ./arch/wall/slevel/dlevel_C.111 \01557 ./arch/wall/slevel/dlevel_D.111 \01558 ./arch/wall/slevel/dlevel_Dse.111 \01559 ./arch/wall/slevel/dlevel_E.111 \01560 ./arch/wall/slevel/dlevel_se.111 \01561 ./arch/wall/slevel/dlevel_seB.111 \01562 ./arch/wall/slevel/dlevel_seD.111 \01563 ./arch/wall/slevel/dlevel_sese.111 \01564 ./arch/wall/slevel/dlevel_sw.111 \01565 ./arch/wall/slevel/dlevel_sw7.111 \01566 ./arch/wall/slevel/dlevel_swB.111 \01567 ./arch/wall/slevel/dlevel_swsw.111 \01568 ./arch/monster/animal/Dog/dog.131 \01569 ./arch/monster/animal/Dog/dog.132 \01570 ./arch/monster/animal/Dog/dog.133 \01571 ./arch/monster/animal/Dog/dog.171 \01572 ./arch/monster/animal/Dog/dog.172 \01573 ./arch/monster/animal/Dog/dog.173 \01574 ./arch/misc/doll.111 \01575 ./arch/door/Door/door_0.111 \01576 ./arch/door/Door/door_1.111 \01577 ./arch/door/Door/door_2.111 \01578 ./arch/door/Door/door_3.111 \01579 ./arch/door/Door/door_4.111 \01580 ./arch/door/Door/door_5.111 \01581 ./arch/door/Door/door_6.111 \01582 ./arch/door/Door/door_7.111 \01583 ./arch/door/Door/door_8.111 \01584 ./arch/door/Door/door_9.111 \01585 ./arch/door/Door/door_A.111 \01586 ./arch/door/Door/door_B.111 \01587 ./arch/door/Door/door_C.111 \01588 ./arch/door/Door/door_D.111 \01589 ./arch/door/Door/door_E.111 \01590 ./arch/door/Door/door_F.111 \01591 ./arch/food/drag_steak.111 \01592 ./arch/monster/dragon/Dragon/dragon.x31 \01593 ./arch/monster/dragon/Dragon/dragon.x32 \01594 ./arch/monster/dragon/Dragon/dragon.x33 \01595 ./arch/monster/dragon/Dragon/dragon.x34 \01596 ./arch/monster/dragon/Dragon/dragon.x71 \01597 ./arch/monster/dragon/Dragon/dragon.x72 \01598 ./arch/monster/dragon/Dragon/dragon.x73 \01599 ./arch/monster/dragon/Dragon/dragon.x74 \01600 ./arch/monster/dragon/Dragon/dragon_ac.x31 \01601 ./arch/monster/dragon/Dragon/dragon_ac.x32 \01602 ./arch/monster/dragon/Dragon/dragon_ac.x33 \01603 ./arch/monster/dragon/Dragon/dragon_ac.x34 \01604 ./arch/monster/dragon/Dragon/dragon_ac.x71 \01605 ./arch/monster/dragon/Dragon/dragon_ac.x72 \01606 ./arch/monster/dragon/Dragon/dragon_ac.x73 \01607 ./arch/monster/dragon/Dragon/dragon_ac.x74 \01608 ./arch/flesh/dragon/dragon_blue_scale.111 \01609 ./arch/flesh/dragon/dragon_claw.111 \01610 ./arch/flesh/dragon/dragon_eye.111 \01611 ./arch/flesh/dragon/dragon_green_scale.111 \01612 ./arch/flesh/dragon/dragon_orange_scale.111 \01613 ./arch/flesh/dragon/dragon_sca.111 \01614 ./arch/armour/shield/dragon_shi.111 \01615 ./arch/monster/dragon/Dragon/dragon_spellcasting.x31 \01616 ./arch/monster/dragon/Dragon/dragon_spellcasting.x32 \01617 ./arch/monster/dragon/Dragon/dragon_spellcasting.x33 \01618 ./arch/monster/dragon/Dragon/dragon_spellcasting.x71 \01619 ./arch/monster/dragon/Dragon/dragon_spellcasting.x72 \01620 ./arch/monster/dragon/Dragon/dragon_spellcasting.x73 \01621 ./arch/player/stoned/dragon_stoned.111 \01622 ./arch/flesh/dragon/dragon_wing.111 \01623 ./arch/monster/dragon/dragoncave.111 \01624 ./arch/armour/mail/dragonmail.111 \01625 ./arch/monster/dragon/Dragonman/dragonman.x31 \01626 ./arch/monster/dragon/Dragonman/dragonman.x32 \01627 ./arch/monster/dragon/Dragonman/dragonman.x33 \01628 ./arch/monster/dragon/Dragonman/dragonman.x71 \01629 ./arch/monster/dragon/Dragonman/dragonman.x72 \01630 ./arch/monster/dragon/Dragonman/dragonman.x73 \01631 ./arch/weapon/artifact/dragonslay.111 \01632 ./arch/spell/Rune/drain_magic.111 \01633 ./arch/monster/dragon/drake/drake.111 \01634 ./arch/monster/dragon/drake/drake.112 \01635 ./arch/monster/dragon/drake/drake.113 \01636 ./arch/monster/dragon/drake/drake.211 \01637 ./arch/monster/dragon/drake/drake.212 \01638 ./arch/monster/dragon/drake/drake.213 \01639 ./arch/monster/beholder/dread.x11 \01640 ./arch/monster/beholder/dread.x12 \01641 ./arch/monster/beholder/dread.x13 \01642 ./arch/monster/beholder/dread.x14 \01643 ./arch/monster/beholder/dread.x15 \01644 ./arch/monster/beholder/dread.x16 \01645 ./arch/armour/mail/dress1.111 \01646 ./arch/armour/mail/dress2.111 \01647 ./arch/armour/mail/dress3.111 \01648 ./arch/misc/Container/dresser.111 \01649 ./arch/misc/Container/dresser2.111 \01650 ./arch/misc/Container/dresser2_cw.111 \01651 ./arch/misc/Container/dresser_cw.111 \01652 ./arch/ground/Winter/drifts.111 \01653 ./arch/ground/Winter/drifts2.111 \01654 ./arch/wall/dun/dun_0.111 \01655 ./arch/wall/dun/dun_1.111 \01656 ./arch/wall/dun/dun_10.111 \01657 ./arch/wall/dun/dun_11.111 \01658 ./arch/wall/dun/dun_12.111 \01659 ./arch/wall/dun/dun_13.111 \01660 ./arch/wall/dun/dun_14.111 \01661 ./arch/wall/dun/dun_15.111 \01662 ./arch/wall/dun/dun_16.111 \01663 ./arch/wall/dun/dun_17.111 \01664 ./arch/wall/dun/dun_18.111 \01665 ./arch/wall/dun/dun_19.111 \01666 ./arch/wall/dun/dun_2.111 \01667 ./arch/wall/dun/dun_20.111 \01668 ./arch/wall/dun/dun_21.111 \01669 ./arch/wall/dun/dun_22.111 \01670 ./arch/wall/dun/dun_23.111 \01671 ./arch/wall/dun/dun_24.111 \01672 ./arch/wall/dun/dun_25.111 \01673 ./arch/wall/dun/dun_3.111 \01674 ./arch/wall/dun/dun_4.111 \01675 ./arch/wall/dun/dun_5.111 \01676 ./arch/wall/dun/dun_6.111 \01677 ./arch/wall/dun/dun_7.111 \01678 ./arch/wall/dun/dun_8.111 \01679 ./arch/wall/dun/dun_9.111 \01680 ./arch/wall/dun/dun_A.111 \01681 ./arch/wall/dun/dun_B.111 \01682 ./arch/wall/dun/dun_C.111 \01683 ./arch/wall/dun/dun_D.111 \01684 ./arch/wall/dun/dun_E.111 \01685 ./arch/wall/dun/dun_F.111 \01686 ./arch/ground/new/dunes.111 \01687 ./arch/ground/smooth/dunes_S.111 \01688 ./arch/floor/dung_floor.111 \01689 ./arch/system/duplicator.111 \01690 ./arch/inorganic/dust_effect.111 \01691 ./arch/inorganic/dust_effect.112 \01692 ./arch/inorganic/dust_effect.113 \01693 ./arch/spell/Potion/dust_gen.111 \01694 ./arch/wall/dwall/dwall_0.111 \01695 ./arch/wall/dwall/dwall_1.111 \01696 ./arch/wall/dwall/dwall_1_short.111 \01697 ./arch/wall/dwall/dwall_2.111 \01698 ./arch/wall/dwall/dwall_2_short.111 \01699 ./arch/wall/dwall/dwall_3.111 \01700 ./arch/wall/dwall/dwall_4.111 \01701 ./arch/wall/dwall/dwall_4_short.111 \01702 ./arch/wall/dwall/dwall_5.111 \01703 ./arch/wall/dwall/dwall_55.111 \01704 ./arch/wall/dwall/dwall_6.111 \01705 ./arch/wall/dwall/dwall_7.111 \01706 ./arch/wall/dwall/dwall_8.111 \01707 ./arch/wall/dwall/dwall_8_short.111 \01708 ./arch/wall/dwall/dwall_9.111 \01709 ./arch/wall/dwall/dwall_A.111 \01710 ./arch/wall/dwall/dwall_AA.111 \01711 ./arch/wall/dwall/dwall_B.111 \01712 ./arch/wall/dwall/dwall_C.111 \01713 ./arch/wall/dwall/dwall_D.111 \01714 ./arch/wall/dwall/dwall_E.111 \01715 ./arch/wall/dwall/dwall_F.111 \01716 ./arch/monster/humanoid/Dwarf/dwarf.111 \01717 ./arch/monster/humanoid/Dwarf/dwarf.112 \01718 ./arch/player/race/dwarf_p.111 \01719 ./arch/player/race/dwarf_p.112 \01720 ./arch/player/race/dwarf_p.131 \01721 ./arch/player/race/dwarf_p.132 \01722 ./arch/player/race/dwarf_p.151 \01723 ./arch/player/race/dwarf_p.152 \01724 ./arch/player/race/dwarf_p.171 \01725 ./arch/player/race/dwarf_p.172 \01726 ./arch/monster/humanoid/Dwarf/dwarf_pr.111 \01727 ./arch/monster/humanoid/Dwarf/dwarf_pr.112 \01728 ./arch/monster/humanoid/Dwarf/dwarf_pr.113 \01729 ./arch/player/stoned/dwarf_stoned.111 \01730 ./arch/monster/humanoid/Dwarf/dwarf_wiz.111 \01731 ./arch/monster/humanoid/Dwarf/dwarf_wiz.112 \01732 ./arch/monster/humanoid/Dwarf/dwarf_wiz.113 \01733 ./arch/wall/dwall/dwindow_0.111 \01734 ./arch/wall/dwall/dwindow_1.111 \01735 ./arch/wall/dwall/dwindow_2.111 \01736 ./arch/wall/dwall/dwindow_3.111 \01737 ./arch/monster/animal/Wolf/dwolf.131 \01738 ./arch/monster/animal/Wolf/dwolf.132 \01739 ./arch/monster/animal/Wolf/dwolf.171 \01740 ./arch/monster/animal/Wolf/dwolf.172 \01741 ./arch/ground/new/earth.111 \01742 ./arch/gods/items/earth_shield/earth_shield.111 \01743 ./arch/gods/items/earth_shield/earth_shield.112 \01744 ./arch/gods/items/earth_shield/earth_shield.113 \01745 ./arch/gods/items/earth_shield/earth_shield.114 \01746 ./arch/wall/bwall/earthwall.111 \01747 ./arch/wall/bwall/earthwall.112 \01748 ./arch/wall/bwall/earthwall.113 \01749 ./arch/flesh/misc/ectoplasm.111 \01750 ./arch/monster/dragon/Electric/elec_dr.x11 \01751 ./arch/monster/dragon/Electric/elec_dr.x12 \01752 ./arch/monster/dragon/Electric/elec_dr_spellcasting.x11 \01753 ./arch/monster/dragon/Electric/elec_dr_spellcasting.x12 \01754 ./arch/monster/dragon/Electric/elec_dr_spellcasting.x13 \01755 ./arch/monster/dragon/Hatchlings/elec_drag.131 \01756 ./arch/monster/dragon/Hatchlings/elec_drag.132 \01757 ./arch/monster/dragon/Hatchlings/elec_drag.171 \01758 ./arch/monster/dragon/Hatchlings/elec_drag.172 \01759 ./arch/monster/elemental/elem_air.111 \01760 ./arch/monster/elemental/elem_air.112 \01761 ./arch/monster/elemental/elem_dust.111 \01762 ./arch/monster/elemental/elem_dust.112 \01763 ./arch/monster/elemental/elem_earth.111 \01764 ./arch/monster/elemental/elem_earth.112 \01765 ./arch/monster/elemental/elem_fire.111 \01766 ./arch/monster/elemental/elem_fire.112 \01767 ./arch/monster/elemental/elem_fire_black.111 \01768 ./arch/monster/elemental/elem_fire_black.112 \01769 ./arch/monster/elemental/elem_water.111 \01770 ./arch/monster/elemental/elem_water.112 \01771 ./arch/player/race/elf.111 \01772 ./arch/player/race/elf.112 \01773 ./arch/player/race/elf.131 \01774 ./arch/player/race/elf.132 \01775 ./arch/player/race/elf.151 \01776 ./arch/player/race/elf.152 \01777 ./arch/player/race/elf.171 \01778 ./arch/player/race/elf.172 \01779 ./arch/monster/humanoid/Elf/elf_1.111 \01780 ./arch/monster/humanoid/Elf/elf_1.112 \01781 ./arch/monster/humanoid/Elf/elf_1.113 \01782 ./arch/monster/humanoid/Elf/elf_guard.111 \01783 ./arch/monster/humanoid/Elf/elf_guard.112 \01784 ./arch/monster/humanoid/Elf/elf_guard.113 \01785 ./arch/monster/humanoid/Elf/elf_lad.111 \01786 ./arch/monster/humanoid/Elf/elf_lad.112 \01787 ./arch/monster/humanoid/Elf/elf_lass.111 \01788 ./arch/monster/humanoid/Elf/elf_lass.112 \01789 ./arch/player/stoned/elf_stoned.111 \01790 ./arch/weapon/bow/elven_bow.111 \01791 ./arch/armour/mail/elven_robe.111 \01792 ./arch/armour/boots/elvenboots.111 \01793 ./arch/jewel/emerald.111 \01794 ./arch/jewel/emerald.112 \01795 ./arch/jewel/emerald_exceptional.111 \01796 ./arch/jewel/emerald_flawless.111 \01797 ./arch/system/empty.111 \01798 ./arch/ground/smooth/empty_S.111 \01799 ./arch/spell/Scroll/ench_armour.111 \01800 ./arch/spell/Misc/enchantment.111 \01801 ./arch/spell/Misc/enchantment.112 \01802 ./arch/spell/Misc/enchantment.113 \01803 ./arch/spell/Misc/enchantment.114 \01804 ./arch/spell/Misc/enchantment.115 \01805 ./arch/monster/misc/Ent/ent.x11 \01806 ./arch/monster/misc/Ent/ent.x12 \01807 ./arch/monster/misc/Ent/ent.x13 \01808 ./arch/system/event_apply.111 \01809 ./arch/system/event_death.111 \01810 ./arch/system/event_drop.111 \01811 ./arch/system/event_pickup.111 \01812 ./arch/system/event_say.111 \01813 ./arch/system/event_time.111 \01814 ./arch/system/event_timer.111 \01815 ./arch/ground/Wood/evergreens.111 \01816 ./arch/ground/Wood/evergreens_2.111 \01817 ./arch/ground/smooth/evergreens_S.111 \01818 ./arch/ground/Winter/evil_ice.111 \01819 ./arch/ground/Winter/evil_ice.112 \01820 ./arch/ground/Winter/evil_ice.113 \01821 ./arch/ground/Winter/evil_ice.114 \01822 ./arch/monster/demon/evil_master.111 \01823 ./arch/monster/demon/evil_master.112 \01824 ./arch/monster/demon/evil_master2.111 \01825 ./arch/monster/demon/evil_master2.112 \01826 ./arch/monster/demon/evil_master3.111 \01827 ./arch/monster/demon/evil_master3.112 \01828 ./arch/monster/demon/evil_master4.111 \01829 ./arch/monster/demon/evil_master4.112 \01830 ./arch/monster/humanoid/Human/evilclown.111 \01831 ./arch/player/class/Wizardry/evoker.111 \01832 ./arch/player/class/Wizardry/evoker.112 \01833 ./arch/player/class/Wizardry/evoker.131 \01834 ./arch/player/class/Wizardry/evoker.132 \01835 ./arch/player/class/Wizardry/evoker.151 \01836 ./arch/player/class/Wizardry/evoker.152 \01837 ./arch/player/class/Wizardry/evoker.171 \01838 ./arch/player/class/Wizardry/evoker.172 \01839 ./arch/spell/SpellBook/evoker_book.111 \01840 ./arch/wall/ewall/ewall_0.111 \01841 ./arch/wall/ewall/ewall_1.111 \01842 ./arch/wall/ewall/ewall_2.111 \01843 ./arch/wall/ewall/ewall_3.111 \01844 ./arch/wall/ewall/ewall_4.111 \01845 ./arch/wall/ewall/ewall_5.111 \01846 ./arch/wall/ewall/ewall_6.111 \01847 ./arch/wall/ewall/ewall_7.111 \01848 ./arch/wall/ewall/ewall_8.111 \01849 ./arch/wall/ewall/ewall_9.111 \01850 ./arch/wall/ewall/ewall_A.111 \01851 ./arch/wall/ewall/ewall_B.111 \01852 ./arch/wall/ewall/ewall_C.111 \01853 ./arch/wall/ewall/ewall_D.111 \01854 ./arch/wall/ewall/ewall_E.111 \01855 ./arch/wall/ewall/ewall_F.111 \01856 ./arch/wall/ewall/ewall_redpost.111 \01857 ./arch/wall/ewall/ewindow_0.111 \01858 ./arch/wall/ewall/ewindow_1.111 \01859 ./arch/weapon/artifact/excalibur.111 \01860 ./arch/exit/exit.111 \01861 ./arch/exit/exit.112 \01862 ./arch/exit/exit.113 \01863 ./arch/exit/exit.114 \01864 ./arch/exit/exit.115 \01865 ./arch/exit/exit.116 \01866 ./arch/exit/exit.117 \01867 ./arch/exit/exit.118 \01868 ./arch/spell/Bomb/explosion.111 \01869 ./arch/spell/Bomb/explosion.112 \01870 ./arch/spell/Bomb/explosion.113 \01871 ./arch/spell/Bullet/Shell/explosion2.111 \01872 ./arch/spell/Bullet/Shell/explosion2.112 \01873 ./arch/spell/Bullet/Shell/explosion2.113 \01874 ./arch/flesh/generic/eye.111 \01875 ./arch/armour/helmet/eyeglasses.111 \01876 ./arch/flesh/generic/eyes.111 \01877 ./arch/armour/shield/eyeshield.111 \01878 ./arch/spell/Cone/face_of_death.111 \01879 ./arch/monster/dragon/fae_drag.131 \01880 ./arch/monster/dragon/fae_drag.132 \01881 ./arch/monster/dragon/fae_drag.171 \01882 ./arch/monster/dragon/fae_drag.172 \01883 ./arch/weapon/sword/falchion.111 \01884 ./arch/traps/falling_rocks.111 \01885 ./arch/ground/falls.111 \01886 ./arch/ground/falls2.111 \01887 ./arch/ground/falls3.111 \01888 ./arch/ground/falls4.111 \01889 ./arch/monster/humanoid/Human/farmer.111 \01890 ./arch/monster/humanoid/Human/farmer.112 \01891 ./arch/construct/house/farmhouse.x11 \01892 ./arch/ground/farmland.111 \01893 ./arch/monster/humanoid/Human/fatman.111 \01894 ./arch/monster/humanoid/Human/fatwoman.111 \01895 ./arch/floor/fcross-blue.111 \01896 ./arch/floor/fcross-white.111 \01897 ./arch/spell/Cone/fear.111 \01898 ./arch/spell/Cone/fear.112 \01899 ./arch/spell/Cone/fear.113 \01900 ./arch/player/race/fenx.110 \01901 ./arch/player/race/fenx.111 \01902 ./arch/player/race/fenx.112 \01903 ./arch/player/race/fenx.130 \01904 ./arch/player/race/fenx.131 \01905 ./arch/player/race/fenx.132 \01906 ./arch/player/race/fenx.150 \01907 ./arch/player/race/fenx.151 \01908 ./arch/player/race/fenx.152 \01909 ./arch/player/race/fenx.170 \01910 ./arch/player/race/fenx.171 \01911 ./arch/player/race/fenx.172 \01912 ./arch/player/race/fenx_bow.111 \01913 ./arch/player/race/fenx_bow.112 \01914 ./arch/player/race/fenx_bow.113 \01915 ./arch/player/race/fenx_bow.131 \01916 ./arch/player/race/fenx_bow.132 \01917 ./arch/player/race/fenx_bow.133 \01918 ./arch/player/race/fenx_bow.151 \01919 ./arch/player/race/fenx_bow.152 \01920 ./arch/player/race/fenx_bow.153 \01921 ./arch/player/race/fenx_bow.171 \01922 ./arch/player/race/fenx_bow.172 \01923 ./arch/player/race/fenx_bow.173 \01924 ./arch/player/race/fenx_class_warrior.110 \01925 ./arch/player/race/fenx_class_warrior.111 \01926 ./arch/player/race/fenx_class_warrior.112 \01927 ./arch/player/race/fenx_class_warrior.130 \01928 ./arch/player/race/fenx_class_warrior.131 \01929 ./arch/player/race/fenx_class_warrior.132 \01930 ./arch/player/race/fenx_class_warrior.150 \01931 ./arch/player/race/fenx_class_warrior.151 \01932 ./arch/player/race/fenx_class_warrior.152 \01933 ./arch/player/race/fenx_class_warrior.170 \01934 ./arch/player/race/fenx_class_warrior.171 \01935 ./arch/player/race/fenx_class_warrior.172 \01936 ./arch/player/race/fenx_double_sword.111 \01937 ./arch/player/race/fenx_double_sword.112 \01938 ./arch/player/race/fenx_double_sword.131 \01939 ./arch/player/race/fenx_double_sword.132 \01940 ./arch/player/race/fenx_double_sword.151 \01941 ./arch/player/race/fenx_double_sword.152 \01942 ./arch/player/race/fenx_double_sword.171 \01943 ./arch/player/race/fenx_double_sword.172 \01944 ./arch/player/race/fenx_karate.110 \01945 ./arch/player/race/fenx_karate.111 \01946 ./arch/player/race/fenx_karate.130 \01947 ./arch/player/race/fenx_karate.131 \01948 ./arch/player/race/fenx_karate.150 \01949 ./arch/player/race/fenx_karate.151 \01950 ./arch/player/race/fenx_karate.170 \01951 ./arch/player/race/fenx_karate.171 \01952 ./arch/player/race/fenx_praying.110 \01953 ./arch/player/race/fenx_praying.111 \01954 ./arch/player/race/fenx_praying.130 \01955 ./arch/player/race/fenx_praying.131 \01956 ./arch/player/race/fenx_praying.150 \01957 ./arch/player/race/fenx_praying.151 \01958 ./arch/player/race/fenx_praying.170 \01959 ./arch/player/race/fenx_praying.171 \01960 ./arch/player/race/fenx_punching.110 \01961 ./arch/player/race/fenx_punching.111 \01962 ./arch/player/race/fenx_punching.112 \01963 ./arch/player/race/fenx_punching.130 \01964 ./arch/player/race/fenx_punching.131 \01965 ./arch/player/race/fenx_punching.132 \01966 ./arch/player/race/fenx_punching.150 \01967 ./arch/player/race/fenx_punching.151 \01968 ./arch/player/race/fenx_punching.152 \01969 ./arch/player/race/fenx_punching.170 \01970 ./arch/player/race/fenx_punching.171 \01971 ./arch/player/race/fenx_punching.172 \01972 ./arch/player/race/fenx_read_scroll.111 \01973 ./arch/player/race/fenx_read_scroll.112 \01974 ./arch/player/race/fenx_read_scroll.113 \01975 ./arch/player/race/fenx_read_scroll.131 \01976 ./arch/player/race/fenx_read_scroll.132 \01977 ./arch/player/race/fenx_read_scroll.133 \01978 ./arch/player/race/fenx_read_scroll.151 \01979 ./arch/player/race/fenx_read_scroll.152 \01980 ./arch/player/race/fenx_read_scroll.153 \01981 ./arch/player/race/fenx_read_scroll.171 \01982 ./arch/player/race/fenx_read_scroll.172 \01983 ./arch/player/race/fenx_read_scroll.173 \01984 ./arch/player/race/fenx_singing.110 \01985 ./arch/player/race/fenx_singing.111 \01986 ./arch/player/race/fenx_singing.112 \01987 ./arch/player/race/fenx_singing.130 \01988 ./arch/player/race/fenx_singing.131 \01989 ./arch/player/race/fenx_singing.132 \01990 ./arch/player/race/fenx_singing.150 \01991 ./arch/player/race/fenx_singing.151 \01992 ./arch/player/race/fenx_singing.152 \01993 ./arch/player/race/fenx_singing.170 \01994 ./arch/player/race/fenx_singing.171 \01995 ./arch/player/race/fenx_singing.172 \01996 ./arch/player/race/fenx_spellcasting.111 \01997 ./arch/player/race/fenx_spellcasting.112 \01998 ./arch/player/race/fenx_spellcasting.131 \01999 ./arch/player/race/fenx_spellcasting.132 \02000 ./arch/player/race/fenx_spellcasting.151 \02001 ./arch/player/race/fenx_spellcasting.152 \02002 ./arch/player/race/fenx_spellcasting.171 \02003 ./arch/player/race/fenx_spellcasting.172 \02004 ./arch/player/race/fenx_sword.111 \02005 ./arch/player/race/fenx_sword.112 \02006 ./arch/player/race/fenx_sword.131 \02007 ./arch/player/race/fenx_sword.132 \02008 ./arch/player/race/fenx_sword.151 \02009 ./arch/player/race/fenx_sword.152 \02010 ./arch/player/race/fenx_sword.171 \02011 ./arch/player/race/fenx_sword.172 \02012 ./arch/ground/new/fernsdense.111 \02013 ./arch/ground/new/fernssparse.111 \02014 ./arch/monster/demon/fiend.111 \02015 ./arch/monster/demon/fiend.112 \02016 ./arch/monster/humanoid/Class/fighter.111 \02017 ./arch/monster/humanoid/Class/fighter.112 \02018 ./arch/monster/humanoid/Class/fighter.113 \02019 ./arch/spell/Potion/figurine_clay.111 \02020 ./arch/spell/Potion/figurine_flame.111 \02021 ./arch/spell/Potion/figurine_gen.111 \02022 ./arch/spell/Potion/figurine_great_wave.111 \02023 ./arch/spell/Potion/figurine_stone.111 \02024 ./arch/spell/Potion/figurine_whirlwind.111 \02025 ./arch/flesh/human/finger.111 \02026 ./arch/monster/dragon/Hatchlings/fire_drag.131 \02027 ./arch/monster/dragon/Hatchlings/fire_drag.132 \02028 ./arch/monster/dragon/Hatchlings/fire_drag.171 \02029 ./arch/monster/dragon/Hatchlings/fire_drag.172 \02030 ./arch/monster/troll/Troll/fire_troll.x11 \02031 ./arch/monster/troll/Troll/fire_troll.x12 \02032 ./arch/monster/troll/Troll/fire_troll.x13 \02033 ./arch/spell/Bullet/Fire/fireball.111 \02034 ./arch/spell/Bullet/Fire/fireball.112 \02035 ./arch/spell/Bullet/Fire/fireball.113 \02036 ./arch/spell/Bullet/Fire/fireball_S.111 \02037 ./arch/spell/Bullet/Fire/fireball_S.112 \02038 ./arch/spell/Bullet/Fire/fireball_S.113 \02039 ./arch/spell/Bolt/firebolt.111 \02040 ./arch/spell/Bolt/firebolt.121 \02041 ./arch/spell/Bolt/firebolt.131 \02042 ./arch/spell/Bolt/firebolt.141 \02043 ./arch/spell/Bolt/firebolt.151 \02044 ./arch/spell/Bolt/firebolt.161 \02045 ./arch/spell/Bolt/firebolt.171 \02046 ./arch/spell/Bolt/firebolt.181 \02047 ./arch/player/race/fireborn.111 \02048 ./arch/player/race/fireborn.222 \02049 ./arch/player/race/fireborn.333 \02050 ./arch/player/race/fireborn.444 \02051 ./arch/weapon/artifact/firebrand.111 \02052 ./arch/weapon/artifact/firebrand.112 \02053 ./arch/weapon/artifact/firebrand.113 \02054 ./arch/spell/Bullet/Fire/firebullet.111 \02055 ./arch/spell/Bullet/Fire/firebullet.121 \02056 ./arch/spell/Bullet/Fire/firebullet.131 \02057 ./arch/spell/Bullet/Fire/firebullet.141 \02058 ./arch/spell/Bullet/Fire/firebullet.151 \02059 ./arch/spell/Bullet/Fire/firebullet.161 \02060 ./arch/spell/Bullet/Fire/firebullet.171 \02061 ./arch/spell/Bullet/Fire/firebullet.181 \02062 ./arch/monster/misc/firechest.111 \02063 ./arch/floor/fireholes.111 \02064 ./arch/misc/fireplace.111 \02065 ./arch/misc/fireplace.112 \02066 ./arch/misc/fireplace.113 \02067 ./arch/misc/firepot.111 \02068 ./arch/misc/firepot.112 \02069 ./arch/misc/firepot.113 \02070 ./arch/misc/firepot.114 \02071 ./arch/weapon/artifact/Firestar/firestar.111 \02072 ./arch/weapon/artifact/Firestar/firestar.112 \02073 ./arch/weapon/artifact/Firestar/firestar.113 \02074 ./arch/wall/firewall/firewall_1.111 \02075 ./arch/wall/firewall/firewall_2.111 \02076 ./arch/wall/firewall/firewall_3.111 \02077 ./arch/wall/firewall/firewall_4.111 \02078 ./arch/wall/firewall/firewall_5.111 \02079 ./arch/wall/firewall/firewall_6.111 \02080 ./arch/wall/firewall/firewall_7.111 \02081 ./arch/wall/firewall/firewall_8.111 \02082 ./arch/food/fish_1.111 \02083 ./arch/food/fish_2.111 \02084 ./arch/food/fish_3.111 \02085 ./arch/food/fish_4.111 \02086 ./arch/food/fish_5.111 \02087 ./arch/food/fish_6.111 \02088 ./arch/transport/fishboat.x11 \02089 ./arch/food/fishfood.111 \02090 ./arch/skills/Skill_Tools/fishing_pole.111 \02091 ./arch/skills/Skill_Tools/fishing_pole2.111 \02092 ./arch/inorganic/fix_mercury.111 \02093 ./arch/inorganic/fix_mercury.112 \02094 ./arch/floor/flagstone.111 \02095 ./arch/wall/flagstone/flagstone_0.111 \02096 ./arch/wall/flagstone/flagstone_1.111 \02097 ./arch/wall/flagstone/flagstone_2.111 \02098 ./arch/wall/flagstone/flagstone_3.111 \02099 ./arch/wall/flagstone/flagstone_4.111 \02100 ./arch/wall/flagstone/flagstone_5.111 \02101 ./arch/wall/flagstone/flagstone_6.111 \02102 ./arch/wall/flagstone/flagstone_7.111 \02103 ./arch/wall/flagstone/flagstone_8.111 \02104 ./arch/wall/flagstone/flagstone_9.111 \02105 ./arch/wall/flagstone/flagstone_A.111 \02106 ./arch/wall/flagstone/flagstone_B.111 \02107 ./arch/wall/flagstone/flagstone_C.111 \02108 ./arch/wall/flagstone/flagstone_D.111 \02109 ./arch/wall/flagstone/flagstone_E.111 \02110 ./arch/wall/flagstone/flagstone_F.111 \02111 ./arch/floor/smooth/flagstone_S.111 \02112 ./arch/wall/flagstone/flagstone_win1.111 \02113 ./arch/planes/fire/flamingtower.x11 \02114 ./arch/planes/fire/flamingtower.x12 \02115 ./arch/planes/fire/flamingtower.x13 \02116 ./arch/planes/fire/flamingtower.x14 \02117 ./arch/light/flint_and_steel.111 \02118 ./arch/spell/Cone/flowers.111 \02119 ./arch/monster/insect/ant/fly_ant.131 \02120 ./arch/monster/insect/ant/fly_ant.132 \02121 ./arch/monster/insect/ant/fly_ant.171 \02122 ./arch/monster/insect/ant/fly_ant.172 \02123 ./arch/ground/fog.111 \02124 ./arch/ground/fog.112 \02125 ./arch/ground/fog_2.111 \02126 ./arch/food/food.111 \02127 ./arch/flesh/human/foot.111 \02128 ./arch/road/footbridge/footbridge_0.111 \02129 ./arch/road/footbridge/footbridge_1.111 \02130 ./arch/road/footbridge/footbridge_2.111 \02131 ./arch/road/footbridge/footbridge_3.111 \02132 ./arch/road/footbridge/footbridge_4.111 \02133 ./arch/road/footbridge/footbridge_5.111 \02134 ./arch/road/footbridge/footbridge_6.111 \02135 ./arch/road/footbridge/footbridge_7.111 \02136 ./arch/road/footbridge/footbridge_8.111 \02137 ./arch/road/footbridge/footbridge_9.111 \02138 ./arch/road/footbridge/footbridge_A.111 \02139 ./arch/road/footbridge/footbridge_B.111 \02140 ./arch/road/footbridge/footbridge_C.111 \02141 ./arch/road/footbridge/footbridge_D.111 \02142 ./arch/road/footbridge/footbridge_E.111 \02143 ./arch/road/footbridge/footbridge_F.111 \02144 ./arch/road/footpath/footpath_0.111 \02145 ./arch/road/footpath/footpath_1.111 \02146 ./arch/road/footpath/footpath_2.111 \02147 ./arch/road/footpath/footpath_3.111 \02148 ./arch/road/footpath/footpath_4.111 \02149 ./arch/road/footpath/footpath_5.111 \02150 ./arch/road/footpath/footpath_6.111 \02151 ./arch/road/footpath/footpath_7.111 \02152 ./arch/road/footpath/footpath_8.111 \02153 ./arch/road/footpath/footpath_9.111 \02154 ./arch/road/footpath/footpath_A.111 \02155 ./arch/road/footpath/footpath_B.111 \02156 ./arch/road/footpath/footpath_C.111 \02157 ./arch/road/footpath/footpath_D.111 \02158 ./arch/road/footpath/footpath_E.111 \02159 ./arch/road/footpath/footpath_F.111 \02160 ./arch/river/ford_ns.111 \02161 ./arch/river/ford_we.111 \02162 ./arch/ground/new/forestsparse.111 \02163 ./arch/misc/Container/forge.111 \02164 ./arch/misc/Container/forge.112 \02165 ./arch/misc/Container/forge.113 \02166 ./arch/construct/fort/fort.x11 \02167 ./arch/construct/fort/fort_sym.111 \02168 ./arch/construct/fountain/fountain.111 \02169 ./arch/construct/fountain/fountain.112 \02170 ./arch/construct/fountain/fountain.113 \02171 ./arch/food/fried_egg.111 \02172 ./arch/weapon/artifact/Fhammer/frost_hammer.111 \02173 ./arch/weapon/artifact/Fhammer/frost_hammer.112 \02174 ./arch/weapon/artifact/Fhammer/frost_hammer.113 \02175 ./arch/weapon/artifact/Fhammer/frost_hammer.114 \02176 ./arch/spell/Bolt/frostbolt.111 \02177 ./arch/spell/Bolt/frostbolt.121 \02178 ./arch/spell/Bolt/frostbolt.131 \02179 ./arch/spell/Bolt/frostbolt.141 \02180 ./arch/spell/Bolt/frostbolt.151 \02181 ./arch/spell/Bolt/frostbolt.161 \02182 ./arch/spell/Bolt/frostbolt.171 \02183 ./arch/spell/Bolt/frostbolt.181 \02184 ./arch/weapon/artifact/frostbrand.111 \02185 ./arch/armour/shield/frostshield.111 \02186 ./arch/misc/Container/frypan_closed.111 \02187 ./arch/misc/Container/frypan_opened.111 \02188 ./arch/armour/helmet/fullhelmet.111 \02189 ./arch/monster/animal/fungus.111 \02190 ./arch/monster/animal/fungus.112 \02191 ./arch/monster/animal/fungus.113 \02192 ./arch/monster/animal/fungus.114 \02193 ./arch/monster/animal/fungus.115 \02194 ./arch/system/mood_floors/furious_floor.111 \02195 ./arch/monster/animal/giant_worm/g_worm.x31 \02196 ./arch/monster/animal/giant_worm/g_worm.x32 \02197 ./arch/monster/animal/giant_worm/g_worm.x71 \02198 ./arch/monster/animal/giant_worm/g_worm.x72 \02199 ./arch/monster/troll/Gaelotroll/gaelotroll.x31 \02200 ./arch/monster/troll/Gaelotroll/gaelotroll.x32 \02201 ./arch/monster/troll/Gaelotroll/gaelotroll.x33 \02202 ./arch/monster/troll/Gaelotroll/gaelotroll.x71 \02203 ./arch/monster/troll/Gaelotroll/gaelotroll.x72 \02204 ./arch/monster/troll/Gaelotroll/gaelotroll.x73 \02205 ./arch/armour/mail/gale.111 \02206 ./arch/transport/galleon.111 \02207 ./arch/connect/Garden_gate/gard_gate.111 \02208 ./arch/connect/Garden_gate/gard_gate.112 \02209 ./arch/connect/Garden_gate/gard_gate.113 \02210 ./arch/connect/Garden_gate/gard_gate.114 \02211 ./arch/monster/humanoid/Gnome/gardengnome.111 \02212 ./arch/monster/humanoid/Gnome/gardengnome.112 \02213 ./arch/monster/misc/gargoyle.111 \02214 ./arch/monster/misc/gargoyle.112 \02215 ./arch/connect/Gates/gate_1.111 \02216 ./arch/connect/Gates/gate_1.112 \02217 ./arch/connect/Gates/gate_1.113 \02218 ./arch/connect/Gates/gate_1.114 \02219 ./arch/connect/Gates/gate_1.115 \02220 ./arch/connect/Gates/gate_1.116 \02221 ./arch/connect/Gates/gate_1.117 \02222 ./arch/connect/Gates/gate_2.111 \02223 ./arch/connect/Gates/gate_2.112 \02224 ./arch/connect/Gates/gate_2.113 \02225 ./arch/connect/Gates/gate_2.114 \02226 ./arch/connect/Gates/gate_2.115 \02227 ./arch/armour/gauntlets/gauntlet_s.111 \02228 ./arch/jewel/gem.111 \02229 ./arch/jewel/gem.112 \02230 ./arch/food/gen_mushroom.111 \02231 ./arch/spell/Rune/generic_rune.111 \02232 ./arch/monster/undead/ghast.111 \02233 ./arch/monster/undead/ghast.112 \02234 ./arch/monster/undead/ghast.113 \02235 ./arch/monster/undead/ghost.111 \02236 ./arch/monster/undead/ghost.112 \02237 ./arch/monster/undead/ghost_gen.111 \02238 ./arch/monster/giant/giant.x11 \02239 ./arch/monster/giant/giant.x12 \02240 ./arch/monster/animal/giant_bat.111 \02241 ./arch/monster/animal/giant_bat.112 \02242 ./arch/monster/animal/giant_bat.113 \02243 ./arch/monster/giant/giant_chief.x11 \02244 ./arch/monster/giant/giant_chief.x12 \02245 ./arch/monster/giant/giant_gen.111 \02246 ./arch/monster/giant/giant_leader.x11 \02247 ./arch/monster/giant/giant_leader.x12 \02248 ./arch/monster/animal/Giant_rat/giantrat.x31 \02249 ./arch/monster/animal/Giant_rat/giantrat.x32 \02250 ./arch/monster/animal/Giant_rat/giantrat.x33 \02251 ./arch/monster/animal/Giant_rat/giantrat.x71 \02252 ./arch/monster/animal/Giant_rat/giantrat.x72 \02253 ./arch/monster/animal/Giant_rat/giantrat.x73 \02254 ./arch/armour/girdle/gir_strcon.111 \02255 ./arch/armour/girdle/gir_strcon.112 \02256 ./arch/armour/girdle/girdle_con.111 \02257 ./arch/armour/girdle/girdle_con.112 \02258 ./arch/armour/girdle/girdle_dam.111 \02259 ./arch/armour/girdle/girdle_dam.112 \02260 ./arch/armour/girdle/girdle_str.111 \02261 ./arch/armour/girdle/girdle_str.112 \02262 ./arch/armour/girdle/girdle_str.113 \02263 ./arch/armour/girdle/girdle_str.114 \02264 ./arch/ground/Winter/glacier.111 \02265 ./arch/armour/gauntlets/gloves.111 \02266 ./arch/armour/gauntlets/gloves_b.111 \02267 ./arch/armour/gauntlets/gloves_w.111 \02268 ./arch/gods/items/glovesofsun/glovesofsun.111 \02269 ./arch/gods/items/glovesofsun/glovesofsun.112 \02270 ./arch/gods/items/glovesofsun/glovesofsun.113 \02271 ./arch/ground/glue.111 \02272 ./arch/ground/glue.112 \02273 ./arch/spell/Rune/glyph.111 \02274 ./arch/monster/goblin/gnoll.111 \02275 ./arch/monster/goblin/gnoll.112 \02276 ./arch/monster/goblin/gnoll_chief.111 \02277 ./arch/monster/goblin/gnoll_gen.111 \02278 ./arch/monster/goblin/gnoll_leader.111 \02279 ./arch/monster/humanoid/Gnome/gnome.111 \02280 ./arch/monster/humanoid/Gnome/gnome.112 \02281 ./arch/monster/humanoid/Gnome/gnome2.111 \02282 ./arch/monster/humanoid/Gnome/gnome2.112 \02283 ./arch/player/race/gnome_p.111 \02284 ./arch/player/race/gnome_p.112 \02285 ./arch/player/race/gnome_p.131 \02286 ./arch/player/race/gnome_p.132 \02287 ./arch/player/race/gnome_p.151 \02288 ./arch/player/race/gnome_p.152 \02289 ./arch/player/race/gnome_p.171 \02290 ./arch/player/race/gnome_p.172 \02291 ./arch/player/stoned/gnome_stoned.111 \02292 ./arch/monster/goblin/goblin.111 \02293 ./arch/monster/goblin/goblin.112 \02294 ./arch/monster/goblin/goblin.131 \02295 ./arch/monster/goblin/goblin.132 \02296 ./arch/monster/goblin/goblin.151 \02297 ./arch/monster/goblin/goblin.152 \02298 ./arch/monster/goblin/goblin.171 \02299 ./arch/monster/goblin/goblin.172 \02300 ./arch/monster/goblin/goblin_chief.111 \02301 ./arch/monster/goblin/goblin_gen.111 \02302 ./arch/flesh/goblin/goblin_head.111 \02303 ./arch/monster/goblin/goblin_leader.111 \02304 ./arch/armour/gauntlets/god_finger.111 \02305 ./arch/armour/gauntlets/god_finger.112 \02306 ./arch/gods/randomitems/god_grace_limit.111 \02307 ./arch/spell/Smite/god_power.111 \02308 ./arch/spell/Smite/god_power.112 \02309 ./arch/spell/Smite/god_power.113 \02310 ./arch/spell/Smite/god_power.114 \02311 ./arch/monster/misc/Ngolem/gol.x11 \02312 ./arch/monster/misc/Ngolem/gol.x12 \02313 ./arch/shop/gold_converter.111 \02314 ./arch/jewel/goldbar.111 \02315 ./arch/jewel/goldblock.111 \02316 ./arch/jewel/goldcoin.111 \02317 ./arch/floor/goldflagstone.111 \02318 ./arch/floor/goldfloor.111 \02319 ./arch/floor/goldfloor2.111 \02320 ./arch/ground/goldgrass.111 \02321 ./arch/jewel/goldround.111 \02322 ./arch/spell/Golem/golem.111 \02323 ./arch/spell/Golem/golem.112 \02324 ./arch/spell/Golem/golem_red.111 \02325 ./arch/spell/Golem/golem_red.112 \02326 ./arch/monster/animal/farmyard/goose.131 \02327 ./arch/monster/animal/farmyard/goose.132 \02328 ./arch/monster/animal/farmyard/goose.171 \02329 ./arch/monster/animal/farmyard/goose.172 \02330 ./arch/misc/gps.111 \02331 ./arch/weapon/artifact/Gram/gram.111 \02332 ./arch/weapon/artifact/Gram/gram.112 \02333 ./arch/weapon/artifact/Gram/gram.113 \02334 ./arch/weapon/artifact/Gram/gram.114 \02335 ./arch/misc/grand_piano_black.x11 \02336 ./arch/misc/grand_piano_white.x11 \02337 ./arch/inorganic/graphite.111 \02338 ./arch/ground/grass.111 \02339 ./arch/ground/smooth/grass_S.111 \02340 ./arch/ground/new/grass_br_gr.111 \02341 ./arch/ground/new/grassbrown.111 \02342 ./arch/ground/new/grassdark.111 \02343 ./arch/ground/smooth/grassdark_S.111 \02344 ./arch/ground/new/grassmedium.111 \02345 ./arch/ground/grasspond.111 \02346 ./arch/connect/Gates/grate_1.111 \02347 ./arch/connect/Gates/grate_1.112 \02348 ./arch/connect/Gates/grate_1.113 \02349 ./arch/connect/Gates/grate_1.114 \02350 ./arch/connect/Gates/grate_1.115 \02351 ./arch/connect/Gates/grate_1.116 \02352 ./arch/connect/Gates/grate_1.117 \02353 ./arch/connect/Gates/grate_1.118 \02354 ./arch/connect/Gates/grate_2.111 \02355 ./arch/connect/Gates/grate_2.112 \02356 ./arch/connect/Gates/grate_2.113 \02357 ./arch/connect/Gates/grate_2.114 \02358 ./arch/connect/Gates/grate_2.115 \02359 ./arch/connect/Gates/grate_2.116 \02360 ./arch/connect/Gates/grate_2.117 \02361 ./arch/connect/Gates/grate_2.118 \02362 ./arch/connect/Gates/gratedoor1.111 \02363 ./arch/connect/Gates/gratedoor2.111 \02364 ./arch/misc/gravestone.111 \02365 ./arch/misc/gravestone2.111 \02366 ./arch/floor/inlayed/gray-white-h-marble.111 \02367 ./arch/floor/inlayed/gray-white-h-marble.112 \02368 ./arch/floor/graymarble.111 \02369 ./arch/monster/humanoid/Dwarf/greater_dwarven_guard.111 \02370 ./arch/monster/humanoid/Dwarf/greater_dwarven_guard.112 \02371 ./arch/floor/inlayed/green-beige-c-marble.111 \02372 ./arch/floor/inlayed/green-beige-c-marble.112 \02373 ./arch/floor/inlayed/green-beige-c-marble.113 \02374 ./arch/floor/inlayed/green-beige-c-marble.114 \02375 ./arch/floor/inlayed/green-white-c-marble.111 \02376 ./arch/floor/inlayed/green-white-c-marble.112 \02377 ./arch/floor/inlayed/green-white-c-marble.113 \02378 ./arch/floor/inlayed/green-white-c-marble.114 \02379 ./arch/floor/inlayed/green-white-h-marble.111 \02380 ./arch/floor/inlayed/green-white-h-marble.112 \02381 ./arch/monster/humanoid/Dragon/green_dragon2.151 \02382 ./arch/monster/humanoid/Dragon/green_dragon2.152 \02383 ./arch/monster/humanoid/Dragon/green_dragon2.171 \02384 ./arch/monster/humanoid/Dragon/green_dragon2.172 \02385 ./arch/monster/humanoid/Dragon/green_dragon3.151 \02386 ./arch/monster/humanoid/Dragon/green_dragon3.152 \02387 ./arch/monster/humanoid/Dragon/green_dragon3.171 \02388 ./arch/monster/humanoid/Dragon/green_dragon3.172 \02389 ./arch/armour/mail/greendragonmail.111 \02390 ./arch/floor/greenmarble.111 \02391 ./arch/floor/greenmarblelight.111 \02392 ./arch/floor/greenmarblemedium.111 \02393 ./arch/monster/acid/greenslime.111 \02394 ./arch/monster/acid/greenslime.112 \02395 ./arch/monster/dragon/Hatchlings/grey_drag.131 \02396 ./arch/monster/dragon/Hatchlings/grey_drag.132 \02397 ./arch/monster/dragon/Hatchlings/grey_drag.171 \02398 ./arch/monster/dragon/Hatchlings/grey_drag.172 \02399 ./arch/monster/undead/grimreaper.111 \02400 ./arch/monster/undead/grimreaper.112 \02401 ./arch/monster/undead/grimreaper.113 \02402 ./arch/monster/undead/grimreaper.114 \02403 ./arch/monster/animal/gryphon/gryphon.x31 \02404 ./arch/monster/animal/gryphon/gryphon.x32 \02405 ./arch/monster/animal/gryphon/gryphon.x33 \02406 ./arch/monster/animal/gryphon/gryphon.x34 \02407 ./arch/monster/animal/gryphon/gryphon.x71 \02408 ./arch/monster/animal/gryphon/gryphon.x72 \02409 ./arch/monster/animal/gryphon/gryphon.x73 \02410 ./arch/monster/animal/gryphon/gryphon.x74 \02411 ./arch/ground/Pstone/gstone_4.111 \02412 ./arch/spell/Wand/gu_horn.111 \02413 ./arch/spell/Wand/gu_horn.112 \02414 ./arch/spell/Wand/gu_horn.113 \02415 ./arch/spell/Wand/gu_horn.114 \02416 ./arch/spell/Wand/gu_horn.115 \02417 ./arch/monster/humanoid/Guard/guard_hard.111 \02418 ./arch/wall/cwall/guard_ho_1.111 \02419 ./arch/wall/cwall/guard_ho_2.111 \02420 ./arch/wall/cwall/guard_ho_4.111 \02421 ./arch/wall/cwall/guard_ho_8.111 \02422 ./arch/monster/humanoid/Guard/guard_ligh.111 \02423 ./arch/monster/humanoid/Guard/guard_med.111 \02424 ./arch/construct/town/guild.x11 \02425 ./arch/construct/town/guild_fant.x11 \02426 ./arch/construct/town/guild_northwest.x11 \02427 ./arch/construct/town/guild_west.x11 \02428 ./arch/monster/humanoid/Human/guildmaste.111 \02429 ./arch/wall/gwall/gwall_0.111 \02430 ./arch/wall/gwall/gwall_1.111 \02431 ./arch/wall/gwall/gwall_2.111 \02432 ./arch/wall/gwall/gwall_3.111 \02433 ./arch/wall/gwall/gwall_4.111 \02434 ./arch/wall/gwall/gwall_5.111 \02435 ./arch/wall/gwall/gwall_6.111 \02436 ./arch/wall/gwall/gwall_7.111 \02437 ./arch/wall/gwall/gwall_8.111 \02438 ./arch/wall/gwall/gwall_9.111 \02439 ./arch/wall/gwall/gwall_A.111 \02440 ./arch/wall/gwall/gwall_B.111 \02441 ./arch/wall/gwall/gwall_C.111 \02442 ./arch/wall/gwall/gwall_D.111 \02443 ./arch/wall/gwall/gwall_E.111 \02444 ./arch/wall/gwall/gwall_F.111 \02445 ./arch/wall/gwall/gwall_xa.111 \02446 ./arch/wall/gwall/gwall_xb.111 \02447 ./arch/wall/gwall/gwall_xc.111 \02448 ./arch/wall/gwall/gwall_xd.111 \02449 ./arch/inorganic/gypsum.111 \02450 ./arch/monster/goblin/Kobold/h_kobold.111 \02451 ./arch/monster/goblin/Kobold/h_kobold.112 \02452 ./arch/food/haggis.111 \02453 ./arch/player/stoned/half_orc_stoned.111 \02454 ./arch/player/race/halfling.111 \02455 ./arch/player/race/halfling.112 \02456 ./arch/player/race/halfling.131 \02457 ./arch/player/race/halfling.132 \02458 ./arch/player/race/halfling.151 \02459 ./arch/player/race/halfling.152 \02460 ./arch/player/race/halfling.171 \02461 ./arch/player/race/halfling.172 \02462 ./arch/monster/humanoid/Halfling/halfling2.151 \02463 ./arch/monster/humanoid/Halfling/halfling2.152 \02464 ./arch/monster/humanoid/Halfling/halfling3.151 \02465 ./arch/monster/humanoid/Halfling/halfling3.152 \02466 ./arch/player/stoned/halfling_stoned.111 \02467 ./arch/weapon/hammer/hammer_1.111 \02468 ./arch/weapon/hammer/hammer_2.101 \02469 ./arch/weapon/hammer/hammer_2.111 \02470 ./arch/weapon/hammer/hammer_2.121 \02471 ./arch/weapon/hammer/hammer_2.131 \02472 ./arch/weapon/hammer/hammer_2.141 \02473 ./arch/weapon/hammer/hammer_2.151 \02474 ./arch/weapon/hammer/hammer_2.161 \02475 ./arch/weapon/hammer/hammer_2.171 \02476 ./arch/weapon/hammer/hammer_2.181 \02477 ./arch/flesh/human/hand.111 \02478 ./arch/weapon/bow/handcrossbow.111 \02479 ./arch/weapon/bow/handcrossbow_bone.111 \02480 ./arch/connect/handle.111 \02481 ./arch/connect/handle.112 \02482 ./arch/flesh/human/hands.111 \02483 ./arch/misc/hangingfirepot.111 \02484 ./arch/misc/hangingfirepot.112 \02485 ./arch/misc/hangingfirepot.113 \02486 ./arch/misc/hangingfirepot.114 \02487 ./arch/weapon/artifact/harakiri.111 \02488 ./arch/indoor/harpsichord1.x11 \02489 ./arch/indoor/harpsichord2.x11 \02490 ./arch/indoor/harpsichord3.x11 \02491 ./arch/indoor/harpsichord4.x11 \02492 ./arch/flesh/human/head.111 \02493 ./arch/spell/Healing/healing.111 \02494 ./arch/spell/Healing/healing.112 \02495 ./arch/spell/Healing/healing.113 \02496 ./arch/spell/Healing/healing.114 \02497 ./arch/spell/Healing/healing.115 \02498 ./arch/flesh/generic/heart.111 \02499 ./arch/wall/bwall/hedge.111 \02500 ./arch/wall/bwall/hedge.112 \02501 ./arch/wall/bwall/hedge.113 \02502 ./arch/wall/hedge/hedge_0.111 \02503 ./arch/wall/hedge/hedge_1.111 \02504 ./arch/wall/hedge/hedge_2.111 \02505 ./arch/wall/hedge/hedge_3.111 \02506 ./arch/wall/hedge/hedge_4.111 \02507 ./arch/wall/hedge/hedge_5.111 \02508 ./arch/wall/hedge/hedge_6.111 \02509 ./arch/wall/hedge/hedge_7.111 \02510 ./arch/wall/hedge/hedge_8.111 \02511 ./arch/wall/hedge/hedge_9.111 \02512 ./arch/wall/hedge/hedge_A.111 \02513 ./arch/wall/hedge/hedge_B.111 \02514 ./arch/wall/hedge/hedge_C.111 \02515 ./arch/wall/hedge/hedge_D.111 \02516 ./arch/wall/hedge/hedge_E.111 \02517 ./arch/wall/hedge/hedge_F.111 \02518 ./arch/monster/demon/hellhound.131 \02519 ./arch/monster/demon/hellhound.132 \02520 ./arch/monster/demon/hellhound.133 \02521 ./arch/monster/demon/hellhound.171 \02522 ./arch/monster/demon/hellhound.172 \02523 ./arch/monster/demon/hellhound.173 \02524 ./arch/armour/helmet/helmet.111 \02525 ./arch/armour/helmet/helmet2.111 \02526 ./arch/armour/helmet/helmet3.111 \02527 ./arch/armour/helmet/helmet_bri.111 \02528 ./arch/armour/helmet/helmetxray.111 \02529 ./arch/armour/helmet/helmetxray.112 \02530 ./arch/flesh/generic/hide_black.111 \02531 ./arch/flesh/generic/hide_brown.111 \02532 ./arch/flesh/generic/hide_grey.111 \02533 ./arch/flesh/generic/hide_white.111 \02534 ./arch/armour/boots/high_boots.111 \02535 ./arch/armour/boots/high_boots_b.111 \02536 ./arch/armour/boots/high_boots_w.111 \02537 ./arch/monster/angel/highangel.111 \02538 ./arch/monster/angel/highangel.112 \02539 ./arch/monster/angel/highangel.113 \02540 ./arch/monster/angel/highangel.114 \02541 ./arch/monster/angel/highangel.115 \02542 ./arch/monster/angel/highangel.116 \02543 ./arch/monster/angel/highangel.117 \02544 ./arch/monster/angel/highangel.118 \02545 ./arch/armour/shield/highshield.111 \02546 ./arch/ground/hills.111 \02547 ./arch/ground/smooth/hills_S.111 \02548 ./arch/ground/hillsrocky.111 \02549 ./arch/ground/smooth/hillsrocky_S.111 \02550 ./arch/connect/Hole/hole.111 \02551 ./arch/connect/Hole/hole.112 \02552 ./arch/connect/Hole/hole.113 \02553 ./arch/connect/Hole/hole.114 \02554 ./arch/connect/Hole/hole.115 \02555 ./arch/connect/Hole/hole.116 \02556 ./arch/connect/Hole/hole.117 \02557 ./arch/connect/Hole/hole.118 \02558 ./arch/connect/Hole/hole.119 \02559 ./arch/connect/Hole/hole.11A \02560 ./arch/exit/hole1.111 \02561 ./arch/connect/Hole/hole_white-any-c-marble.111 \02562 ./arch/connect/Hole/hole_white-any-c-marble.112 \02563 ./arch/connect/Hole/hole_white-any-c-marble.113 \02564 ./arch/connect/Hole/hole_white-any-c-marble.114 \02565 ./arch/spell/Bullet/holy_effect.111 \02566 ./arch/spell/Bullet/holy_effect.112 \02567 ./arch/spell/Bullet/holy_effect.113 \02568 ./arch/spell/Bullet/holy_orb.111 \02569 ./arch/monster/humanoid/Arabic/holy_priest.111 \02570 ./arch/monster/humanoid/Arabic/holy_priest.211 \02571 ./arch/monster/humanoid/Arabic/holy_priest.311 \02572 ./arch/skills/Skill_Tools/holy_symbol.111 \02573 ./arch/skills/Skill_Tools/holy_symbol_calling.111 \02574 ./arch/skills/Skill_Tools/holy_symbol_dark_path.111 \02575 ./arch/skills/Skill_Tools/holy_symbol_great_virtue.111 \02576 ./arch/skills/Skill_Tools/holy_symbol_probity.111 \02577 ./arch/skills/Skill_Tools/holy_symbol_turning.111 \02578 ./arch/spell/Cone/holy_word.111 \02579 ./arch/spell/Cone/holy_word.112 \02580 ./arch/spell/Cone/holy_word.113 \02581 ./arch/spell/Smite/holy_wrath.111 \02582 ./arch/spell/Smite/holy_wrath.112 \02583 ./arch/spell/Smite/holy_wrath.113 \02584 ./arch/weapon/artifact/HolyAvenger/holyave.111 \02585 ./arch/weapon/artifact/HolyAvenger/holyave.112 \02586 ./arch/weapon/artifact/HolyAvenger/holyave.113 \02587 ./arch/weapon/artifact/HolyAvenger/holyave.114 \02588 ./arch/weapon/artifact/HolyAvenger/holyave.115 \02589 ./arch/weapon/artifact/HolyAvenger/holyave.116 \02590 ./arch/weapon/artifact/HolyAvenger/holyave.117 \02591 ./arch/weapon/artifact/HolyAvenger/holyave.118 \02592 ./arch/weapon/artifact/HolyAvenger/holyave.119 \02593 ./arch/weapon/artifact/HolyAvenger/holyave.11A \02594 ./arch/weapon/artifact/HolyAvenger/holyave.11B \02595 ./arch/weapon/artifact/HolyAvenger/holyave.11C \02596 ./arch/monster/angel/holyghost.111 \02597 ./arch/armour/shield/holyshield.111 \02598 ./arch/weapon/sword/hooksword.111 \02599 ./arch/spell/Wand/horn.111 \02600 ./arch/spell/Wand/horn2.111 \02601 ./arch/spell/Wand/horn3.111 \02602 ./arch/spell/Wand/horn_base.111 \02603 ./arch/armour/helmet/hornhelmet.111 \02604 ./arch/monster/animal/farmyard/horse.131 \02605 ./arch/monster/animal/farmyard/horse.171 \02606 ./arch/construct/house/house1_east.111 \02607 ./arch/construct/house/house2_east.111 \02608 ./arch/construct/house/house_1.111 \02609 ./arch/construct/house/house_1_green.111 \02610 ./arch/construct/house/house_2.111 \02611 ./arch/construct/house/house_3.111 \02612 ./arch/construct/house/house_larg.x11 \02613 ./arch/construct/house/house_larg_west.x11 \02614 ./arch/construct/house/house_long.x11 \02615 ./arch/construct/house/house_up.x11 \02616 ./arch/construct/house/housesmall.111 \02617 ./arch/construct/town/hovels.111 \02618 ./arch/construct/town/hovels2.x11 \02619 ./arch/system/hp_bars/hpbar_diseased_1.111 \02620 ./arch/system/hp_bars/hpbar_diseased_10.111 \02621 ./arch/system/hp_bars/hpbar_diseased_11.111 \02622 ./arch/system/hp_bars/hpbar_diseased_12.111 \02623 ./arch/system/hp_bars/hpbar_diseased_13.111 \02624 ./arch/system/hp_bars/hpbar_diseased_14.111 \02625 ./arch/system/hp_bars/hpbar_diseased_15.111 \02626 ./arch/system/hp_bars/hpbar_diseased_16.111 \02627 ./arch/system/hp_bars/hpbar_diseased_17.111 \02628 ./arch/system/hp_bars/hpbar_diseased_18.111 \02629 ./arch/system/hp_bars/hpbar_diseased_19.111 \02630 ./arch/system/hp_bars/hpbar_diseased_2.111 \02631 ./arch/system/hp_bars/hpbar_diseased_20.111 \02632 ./arch/system/hp_bars/hpbar_diseased_21.111 \02633 ./arch/system/hp_bars/hpbar_diseased_22.111 \02634 ./arch/system/hp_bars/hpbar_diseased_23.111 \02635 ./arch/system/hp_bars/hpbar_diseased_24.111 \02636 ./arch/system/hp_bars/hpbar_diseased_25.111 \02637 ./arch/system/hp_bars/hpbar_diseased_26.111 \02638 ./arch/system/hp_bars/hpbar_diseased_27.111 \02639 ./arch/system/hp_bars/hpbar_diseased_28.111 \02640 ./arch/system/hp_bars/hpbar_diseased_29.111 \02641 ./arch/system/hp_bars/hpbar_diseased_3.111 \02642 ./arch/system/hp_bars/hpbar_diseased_30.111 \02643 ./arch/system/hp_bars/hpbar_diseased_4.111 \02644 ./arch/system/hp_bars/hpbar_diseased_5.111 \02645 ./arch/system/hp_bars/hpbar_diseased_6.111 \02646 ./arch/system/hp_bars/hpbar_diseased_7.111 \02647 ./arch/system/hp_bars/hpbar_diseased_8.111 \02648 ./arch/system/hp_bars/hpbar_diseased_9.111 \02649 ./arch/system/hp_bars/hpbar_poisoned_1.111 \02650 ./arch/system/hp_bars/hpbar_poisoned_10.111 \02651 ./arch/system/hp_bars/hpbar_poisoned_11.111 \02652 ./arch/system/hp_bars/hpbar_poisoned_12.111 \02653 ./arch/system/hp_bars/hpbar_poisoned_13.111 \02654 ./arch/system/hp_bars/hpbar_poisoned_14.111 \02655 ./arch/system/hp_bars/hpbar_poisoned_15.111 \02656 ./arch/system/hp_bars/hpbar_poisoned_16.111 \02657 ./arch/system/hp_bars/hpbar_poisoned_17.111 \02658 ./arch/system/hp_bars/hpbar_poisoned_18.111 \02659 ./arch/system/hp_bars/hpbar_poisoned_19.111 \02660 ./arch/system/hp_bars/hpbar_poisoned_2.111 \02661 ./arch/system/hp_bars/hpbar_poisoned_20.111 \02662 ./arch/system/hp_bars/hpbar_poisoned_21.111 \02663 ./arch/system/hp_bars/hpbar_poisoned_22.111 \02664 ./arch/system/hp_bars/hpbar_poisoned_23.111 \02665 ./arch/system/hp_bars/hpbar_poisoned_24.111 \02666 ./arch/system/hp_bars/hpbar_poisoned_25.111 \02667 ./arch/system/hp_bars/hpbar_poisoned_26.111 \02668 ./arch/system/hp_bars/hpbar_poisoned_27.111 \02669 ./arch/system/hp_bars/hpbar_poisoned_28.111 \02670 ./arch/system/hp_bars/hpbar_poisoned_29.111 \02671 ./arch/system/hp_bars/hpbar_poisoned_3.111 \02672 ./arch/system/hp_bars/hpbar_poisoned_30.111 \02673 ./arch/system/hp_bars/hpbar_poisoned_4.111 \02674 ./arch/system/hp_bars/hpbar_poisoned_5.111 \02675 ./arch/system/hp_bars/hpbar_poisoned_6.111 \02676 ./arch/system/hp_bars/hpbar_poisoned_7.111 \02677 ./arch/system/hp_bars/hpbar_poisoned_8.111 \02678 ./arch/system/hp_bars/hpbar_poisoned_9.111 \02679 ./arch/system/hp_bars/hpbar_poisoned_diseased_1.111 \02680 ./arch/system/hp_bars/hpbar_poisoned_diseased_10.111 \02681 ./arch/system/hp_bars/hpbar_poisoned_diseased_11.111 \02682 ./arch/system/hp_bars/hpbar_poisoned_diseased_12.111 \02683 ./arch/system/hp_bars/hpbar_poisoned_diseased_13.111 \02684 ./arch/system/hp_bars/hpbar_poisoned_diseased_14.111 \02685 ./arch/system/hp_bars/hpbar_poisoned_diseased_15.111 \02686 ./arch/system/hp_bars/hpbar_poisoned_diseased_16.111 \02687 ./arch/system/hp_bars/hpbar_poisoned_diseased_17.111 \02688 ./arch/system/hp_bars/hpbar_poisoned_diseased_18.111 \02689 ./arch/system/hp_bars/hpbar_poisoned_diseased_19.111 \02690 ./arch/system/hp_bars/hpbar_poisoned_diseased_2.111 \02691 ./arch/system/hp_bars/hpbar_poisoned_diseased_20.111 \02692 ./arch/system/hp_bars/hpbar_poisoned_diseased_21.111 \02693 ./arch/system/hp_bars/hpbar_poisoned_diseased_22.111 \02694 ./arch/system/hp_bars/hpbar_poisoned_diseased_23.111 \02695 ./arch/system/hp_bars/hpbar_poisoned_diseased_24.111 \02696 ./arch/system/hp_bars/hpbar_poisoned_diseased_25.111 \02697 ./arch/system/hp_bars/hpbar_poisoned_diseased_26.111 \02698 ./arch/system/hp_bars/hpbar_poisoned_diseased_27.111 \02699 ./arch/system/hp_bars/hpbar_poisoned_diseased_28.111 \02700 ./arch/system/hp_bars/hpbar_poisoned_diseased_29.111 \02701 ./arch/system/hp_bars/hpbar_poisoned_diseased_3.111 \02702 ./arch/system/hp_bars/hpbar_poisoned_diseased_30.111 \02703 ./arch/system/hp_bars/hpbar_poisoned_diseased_4.111 \02704 ./arch/system/hp_bars/hpbar_poisoned_diseased_5.111 \02705 ./arch/system/hp_bars/hpbar_poisoned_diseased_6.111 \02706 ./arch/system/hp_bars/hpbar_poisoned_diseased_7.111 \02707 ./arch/system/hp_bars/hpbar_poisoned_diseased_8.111 \02708 ./arch/system/hp_bars/hpbar_poisoned_diseased_9.111 \02709 ./arch/system/hp_bars/hpbar_standard_1.111 \02710 ./arch/system/hp_bars/hpbar_standard_10.111 \02711 ./arch/system/hp_bars/hpbar_standard_11.111 \02712 ./arch/system/hp_bars/hpbar_standard_12.111 \02713 ./arch/system/hp_bars/hpbar_standard_13.111 \02714 ./arch/system/hp_bars/hpbar_standard_14.111 \02715 ./arch/system/hp_bars/hpbar_standard_15.111 \02716 ./arch/system/hp_bars/hpbar_standard_16.111 \02717 ./arch/system/hp_bars/hpbar_standard_17.111 \02718 ./arch/system/hp_bars/hpbar_standard_18.111 \02719 ./arch/system/hp_bars/hpbar_standard_19.111 \02720 ./arch/system/hp_bars/hpbar_standard_2.111 \02721 ./arch/system/hp_bars/hpbar_standard_20.111 \02722 ./arch/system/hp_bars/hpbar_standard_21.111 \02723 ./arch/system/hp_bars/hpbar_standard_22.111 \02724 ./arch/system/hp_bars/hpbar_standard_23.111 \02725 ./arch/system/hp_bars/hpbar_standard_24.111 \02726 ./arch/system/hp_bars/hpbar_standard_25.111 \02727 ./arch/system/hp_bars/hpbar_standard_26.111 \02728 ./arch/system/hp_bars/hpbar_standard_27.111 \02729 ./arch/system/hp_bars/hpbar_standard_28.111 \02730 ./arch/system/hp_bars/hpbar_standard_29.111 \02731 ./arch/system/hp_bars/hpbar_standard_3.111 \02732 ./arch/system/hp_bars/hpbar_standard_30.111 \02733 ./arch/system/hp_bars/hpbar_standard_4.111 \02734 ./arch/system/hp_bars/hpbar_standard_5.111 \02735 ./arch/system/hp_bars/hpbar_standard_6.111 \02736 ./arch/system/hp_bars/hpbar_standard_7.111 \02737 ./arch/system/hp_bars/hpbar_standard_8.111 \02738 ./arch/system/hp_bars/hpbar_standard_9.111 \02739 ./arch/player/race/human.111 \02740 ./arch/player/race/human.112 \02741 ./arch/player/race/human.131 \02742 ./arch/player/race/human.132 \02743 ./arch/player/race/human.151 \02744 ./arch/player/race/human.152 \02745 ./arch/player/race/human.171 \02746 ./arch/player/race/human.172 \02747 ./arch/player/stoned/human_stoned.111 \02748 ./arch/weapon/bow/huntersbow.111 \02749 ./arch/construct/house/hut.111 \02750 ./arch/construct/house/hut_hori.x11 \02751 ./arch/construct/house/hut_vert.x11 \02752 ./arch/ground/Winter/ice.111 \02753 ./arch/ground/Winter/ice2.111 \02754 ./arch/monster/elemental/ice_warrior.x11 \02755 ./arch/misc/icecube.111 \02756 ./arch/spell/Cone/icestorm.111 \02757 ./arch/spell/Cone/icestorm.112 \02758 ./arch/spell/Cone/icestorm.113 \02759 ./arch/flesh/demon/icor.111 \02760 ./arch/flesh/demon/icor.112 \02761 ./arch/flesh/demon/icor.113 \02762 ./arch/flesh/demon/icor.114 \02763 ./arch/flesh/demon/icor.115 \02764 ./arch/flesh/demon/icor.116 \02765 ./arch/flesh/demon/icor.117 \02766 ./arch/flesh/demon/icor.118 \02767 ./arch/flesh/demon/icor.119 \02768 ./arch/flesh/demon/icor.11A \02769 ./arch/flesh/demon/icor.11B \02770 ./arch/flesh/demon/icor.11C \02771 ./arch/armour/boots/idaten.111 \02772 ./arch/armour/boots/idaten.112 \02773 ./arch/ground/Winter/ihole.111 \02774 ./arch/monster/demon/imp.131 \02775 ./arch/monster/demon/imp.171 \02776 ./arch/readable/imperial.111 \02777 ./arch/spell/Scroll/improve_cha.111 \02778 ./arch/spell/Scroll/improve_con.111 \02779 ./arch/spell/Scroll/improve_damage.111 \02780 ./arch/spell/Scroll/improve_dex.111 \02781 ./arch/spell/Scroll/improve_enchantment.111 \02782 ./arch/spell/Scroll/improve_int.111 \02783 ./arch/spell/Scroll/improve_pow.111 \02784 ./arch/spell/Scroll/improve_str.111 \02785 ./arch/spell/Scroll/improve_weight.111 \02786 ./arch/spell/Scroll/improve_wis.111 \02787 ./arch/misc/infernaldevice_1.111 \02788 ./arch/construct/house/inn.x11 \02789 ./arch/construct/house/inn_fant.x11 \02790 ./arch/flesh/misc/insect_sting.111 \02791 ./arch/flesh/misc/insect_wing.111 \02792 ./arch/construct/window/intermediate_window_1.111 \02793 ./arch/construct/window/intermediate_window_2.111 \02794 ./arch/system/inv-curse.111 \02795 ./arch/system/inv-damn.111 \02796 ./arch/system/inv-equip.111 \02797 ./arch/system/inv-lock.111 \02798 ./arch/system/inv-magic.111 \02799 ./arch/system/inv-unpaid.111 \02800 ./arch/ground/Winter/ipond.111 \02801 ./arch/connect/Gates/iron_gate1.111 \02802 ./arch/connect/Gates/iron_gate1.112 \02803 ./arch/connect/Gates/iron_gate1.113 \02804 ./arch/connect/Gates/iron_gate1.114 \02805 ./arch/connect/Gates/iron_gate1.115 \02806 ./arch/connect/Gates/iron_gate1.116 \02807 ./arch/connect/Gates/iron_gate1.117 \02808 ./arch/connect/Gates/iron_gate1.118 \02809 ./arch/connect/Gates/iron_gate2.111 \02810 ./arch/connect/Gates/iron_gate2.112 \02811 ./arch/connect/Gates/iron_gate2.113 \02812 ./arch/connect/Gates/iron_gate2.114 \02813 ./arch/connect/Gates/iron_gate2.115 \02814 ./arch/connect/Gates/iron_gate2.116 \02815 ./arch/jewel/ironbar.111 \02816 ./arch/ground/Winter/istone.111 \02817 ./arch/gods/elemental/ixalovh.x11 \02818 ./arch/gods/elemental/ixalovh.x12 \02819 ./arch/gods/elemental/ixalovh.x13 \02820 ./arch/jewel/jade_coin.111 \02821 ./arch/shop/jade_converter.111 \02822 ./arch/shop/jade_converter2.111 \02823 ./arch/spell/Wand/jadedragon_figurine.111 \02824 ./arch/wall/jcity/jcity_0.111 \02825 ./arch/wall/jcity/jcity_1.111 \02826 ./arch/wall/jcity/jcity_2.111 \02827 ./arch/wall/jcity/jcity_3.111 \02828 ./arch/wall/jcity/jcity_4.111 \02829 ./arch/wall/jcity/jcity_5.111 \02830 ./arch/wall/jcity/jcity_6.111 \02831 ./arch/wall/jcity/jcity_7.111 \02832 ./arch/wall/jcity/jcity_8.111 \02833 ./arch/wall/jcity/jcity_9.111 \02834 ./arch/wall/jcity/jcity_A.111 \02835 ./arch/wall/jcity/jcity_B.111 \02836 ./arch/wall/jcity/jcity_C.111 \02837 ./arch/wall/jcity/jcity_D.111 \02838 ./arch/wall/jcity/jcity_E.111 \02839 ./arch/wall/jcity/jcity_F.111 \02840 ./arch/monster/giant/JessyB/jessyb.x11 \02841 ./arch/monster/giant/JessyB/jessyb.x12 \02842 ./arch/monster/giant/JessyB/jessyb.x13 \02843 ./arch/misc/Container/jeweler_bench.111 \02844 ./arch/ground/Wood/jungle_1.111 \02845 ./arch/ground/Wood/jungle_2.111 \02846 ./arch/ground/smooth/jungle_S.111 \02847 ./arch/weapon/artifact/Kdagger/k_dagger.111 \02848 ./arch/weapon/misc/kama_1.111 \02849 ./arch/weapon/misc/kama_2.111 \02850 ./arch/weapon/sword/katana_1.111 \02851 ./arch/construct/keep/keep.x11 \02852 ./arch/construct/keep/keep.x12 \02853 ./arch/construct/keep/keep_sym.111 \02854 ./arch/door/key1.111 \02855 ./arch/door/Locked/key2.111 \02856 ./arch/door/Locked/key_blue.111 \02857 ./arch/door/Locked/key_brown.111 \02858 ./arch/door/Locked/key_darkgray.111 \02859 ./arch/door/Locked/key_darkgreen.111 \02860 ./arch/door/Locked/key_gray.111 \02861 ./arch/door/Locked/key_green.111 \02862 ./arch/door/Locked/key_magenta.111 \02863 ./arch/door/Locked/key_red.111 \02864 ./arch/misc/Container/key_ring.111 \02865 ./arch/door/Locked/key_white.111 \02866 ./arch/monster/insect/bee/killerbee.111 \02867 ./arch/monster/insect/bee/killerbee.112 \02868 ./arch/monster/humanoid/Guard/knight.111 \02869 ./arch/monster/humanoid/Guard/knight.112 \02870 ./arch/monster/humanoid/Guard/knight.113 \02871 ./arch/monster/humanoid/Guard/knight.114 \02872 ./arch/monster/humanoid/Guard/knight.115 \02873 ./arch/system/knowledge/knowledge_generic.111 \02874 ./arch/system/knowledge/knowledge_gods.111 \02875 ./arch/system/knowledge/knowledge_messages.111 \02876 ./arch/system/knowledge/knowledge_monsters.111 \02877 ./arch/system/knowledge/knowledge_recipes.111 \02878 ./arch/monster/goblin/kobold.111 \02879 ./arch/monster/goblin/kobold.112 \02880 ./arch/monster/goblin/kobold_gen.111 \02881 ./arch/armour/helmet/kog.111 \02882 ./arch/construct/town/l_shop1.x11 \02883 ./arch/exit/Ladder/ladder2_do.111 \02884 ./arch/exit/Ladder/ladder2_up.111 \02885 ./arch/exit/Ladder/ladder_down.111 \02886 ./arch/exit/Ladder/ladder_up.111 \02887 ./arch/monster/misc/lamia/lamia.x31 \02888 ./arch/monster/misc/lamia/lamia.x32 \02889 ./arch/monster/misc/lamia/lamia.x71 \02890 ./arch/monster/misc/lamia/lamia.x72 \02891 ./arch/misc/lampost.111 \02892 ./arch/light/lantern.111 \02893 ./arch/light/lantern2.111 \02894 ./arch/light/lantern2_off.111 \02895 ./arch/light/lantern_off.111 \02896 ./arch/armour/mail/lapron.111 \02897 ./arch/door/large_hdoor.111 \02898 ./arch/door/large_vdoor.111 \02899 ./arch/ground/Stone/largestone.111 \02900 ./arch/ground/lava.111 \02901 ./arch/ground/lava.112 \02902 ./arch/ground/lava.113 \02903 ./arch/ground/lava.114 \02904 ./arch/ground/lava.115 \02905 ./arch/ground/smooth/lava_S.111 \02906 ./arch/ground/smooth/lava_S.112 \02907 ./arch/ground/smooth/lava_S.113 \02908 ./arch/ground/smooth/lava_S.114 \02909 ./arch/ground/smooth/lava_S.115 \02910 ./arch/planes/fire/lava/lava_blake_0.111 \02911 ./arch/planes/fire/lava/lava_blake_1.111 \02912 ./arch/planes/fire/lava/lava_blake_2.111 \02913 ./arch/planes/fire/lava/lava_blake_3.111 \02914 ./arch/planes/fire/lava/lava_blake_4.111 \02915 ./arch/planes/fire/lava/lava_blake_5.111 \02916 ./arch/planes/fire/lava/lava_blake_6.111 \02917 ./arch/planes/fire/lava/lava_blake_7.111 \02918 ./arch/planes/fire/lava/lava_blake_8.111 \02919 ./arch/planes/fire/lava/lava_blake_9.111 \02920 ./arch/planes/fire/lava/lava_blake_A.111 \02921 ./arch/planes/fire/lava/lava_blake_B.111 \02922 ./arch/planes/fire/lava/lava_blake_C.111 \02923 ./arch/planes/fire/lava/lava_blake_D.111 \02924 ./arch/planes/fire/lava/lava_blake_E.111 \02925 ./arch/planes/fire/lava/lava_blake_F.111 \02926 ./arch/planes/fire/lava/lava_branch_125.111 \02927 ./arch/planes/fire/lava/lava_branch_125.211 \02928 ./arch/planes/fire/lava/lava_branch_135.111 \02929 ./arch/planes/fire/lava/lava_branch_137.111 \02930 ./arch/planes/fire/lava/lava_branch_145.111 \02931 ./arch/planes/fire/lava/lava_branch_145.211 \02932 ./arch/planes/fire/lava/lava_branch_156.111 \02933 ./arch/planes/fire/lava/lava_branch_156.211 \02934 ./arch/planes/fire/lava/lava_branch_157.111 \02935 ./arch/planes/fire/lava/lava_branch_158.111 \02936 ./arch/planes/fire/lava/lava_branch_158.211 \02937 ./arch/planes/fire/lava/lava_branch_237.111 \02938 ./arch/planes/fire/lava/lava_branch_237.211 \02939 ./arch/planes/fire/lava/lava_branch_347.111 \02940 ./arch/planes/fire/lava/lava_branch_347.211 \02941 ./arch/planes/fire/lava/lava_branch_357.111 \02942 ./arch/planes/fire/lava/lava_branch_367.111 \02943 ./arch/planes/fire/lava/lava_branch_367.211 \02944 ./arch/planes/fire/lava/lava_branch_378.111 \02945 ./arch/planes/fire/lava/lava_branch_378.211 \02946 ./arch/planes/fire/lava/lava_bridge_15.111 \02947 ./arch/planes/fire/lava/lava_bridge_37.111 \02948 ./arch/planes/fire/lava/lava_ford_ns.111 \02949 ./arch/planes/fire/lava/lava_ford_we.111 \02950 ./arch/planes/fire/lava/lava_river_14.111 \02951 ./arch/planes/fire/lava/lava_river_15.111 \02952 ./arch/planes/fire/lava/lava_river_16.111 \02953 ./arch/planes/fire/lava/lava_river_25.111 \02954 ./arch/planes/fire/lava/lava_river_26.111 \02955 ./arch/planes/fire/lava/lava_river_26.211 \02956 ./arch/planes/fire/lava/lava_river_26.311 \02957 ./arch/planes/fire/lava/lava_river_27.111 \02958 ./arch/planes/fire/lava/lava_river_36.111 \02959 ./arch/planes/fire/lava/lava_river_37.111 \02960 ./arch/planes/fire/lava/lava_river_38.111 \02961 ./arch/planes/fire/lava/lava_river_47.111 \02962 ./arch/planes/fire/lava/lava_river_48.111 \02963 ./arch/planes/fire/lava/lava_river_48.211 \02964 ./arch/planes/fire/lava/lava_river_48.311 \02965 ./arch/planes/fire/lava/lava_river_58.111 \02966 ./arch/weapon/artifact/Lslasher/lava_s.111 \02967 ./arch/weapon/artifact/Lslasher/lava_s.112 \02968 ./arch/weapon/artifact/Lslasher/lava_s.113 \02969 ./arch/planes/fire/lava/lava_sea.111 \02970 ./arch/planes/fire/lava/lava_sea.112 \02971 ./arch/planes/fire/lava/lava_sea.113 \02972 ./arch/planes/fire/lava/lava_sea.114 \02973 ./arch/planes/fire/lava_well.111 \02974 ./arch/wall/lbulletwall/lbull_wall.101 \02975 ./arch/wall/lbulletwall/lbull_wall.111 \02976 ./arch/wall/lbulletwall/lbull_wall.121 \02977 ./arch/wall/lbulletwall/lbull_wall.131 \02978 ./arch/wall/lbulletwall/lbull_wall.141 \02979 ./arch/wall/lbulletwall/lbull_wall.151 \02980 ./arch/wall/lbulletwall/lbull_wall.161 \02981 ./arch/wall/lbulletwall/lbull_wall.171 \02982 ./arch/wall/lbulletwall/lbull_wall.181 \02983 ./arch/spell/Bullet/lbullet.111 \02984 ./arch/spell/Bullet/lbullet.121 \02985 ./arch/spell/Bullet/lbullet.131 \02986 ./arch/spell/Bullet/lbullet.141 \02987 ./arch/spell/Bullet/lbullet.151 \02988 ./arch/spell/Bullet/lbullet.161 \02989 ./arch/spell/Bullet/lbullet.171 \02990 ./arch/spell/Bullet/lbullet.181 \02991 ./arch/door/Locked/ldoor1.111 \02992 ./arch/door/Locked/ldoor2.111 \02993 ./arch/door/Locked/ldoor_blue1.111 \02994 ./arch/door/Locked/ldoor_blue2.111 \02995 ./arch/door/Locked/ldoor_brown1.111 \02996 ./arch/door/Locked/ldoor_brown2.111 \02997 ./arch/door/Locked/ldoor_white1.111 \02998 ./arch/door/Locked/ldoor_white2.111 \02999 ./arch/inorganic/lead.111 \03000 ./arch/jewel/leadbar.111 \03001 ./arch/armour/mail/leather_ar.111 \03002 ./arch/monster/animal/leech/leech.131 \03003 ./arch/monster/animal/leech/leech.132 \03004 ./arch/monster/animal/leech/leech.133 \03005 ./arch/monster/animal/leech/leech.171 \03006 ./arch/monster/animal/leech/leech.172 \03007 ./arch/monster/animal/leech/leech.173 \03008 ./arch/flesh/human/leg.111 \03009 ./arch/food/leg_mutton.111 \03010 ./arch/monster/humanoid/Dwarf/lesser_dwarven_guard.111 \03011 ./arch/monster/humanoid/Dwarf/lesser_dwarven_guard.112 \03012 ./arch/readable/letter.111 \03013 ./arch/armour/boots/lev_boots.111 \03014 ./arch/connect/lever.111 \03015 ./arch/connect/lever.112 \03016 ./arch/monster/undead/lich.111 \03017 ./arch/monster/undead/lich.112 \03018 ./arch/monster/undead/lich.113 \03019 ./arch/light/light_bulb_1.111 \03020 ./arch/light/light_bulb_2.111 \03021 ./arch/light/light_bulb_3.111 \03022 ./arch/light/light_bulb_4.111 \03023 ./arch/wall/lightningwall/light_wall.101 \03024 ./arch/wall/lightningwall/light_wall.111 \03025 ./arch/wall/lightningwall/light_wall.121 \03026 ./arch/wall/lightningwall/light_wall.131 \03027 ./arch/wall/lightningwall/light_wall.141 \03028 ./arch/wall/lightningwall/light_wall.151 \03029 ./arch/wall/lightningwall/light_wall.161 \03030 ./arch/wall/lightningwall/light_wall.171 \03031 ./arch/wall/lightningwall/light_wall.181 \03032 ./arch/floor/lightgreenmarble.111 \03033 ./arch/construct/tower/lighthouse.x11 \03034 ./arch/construct/tower/lighthouse_northwest.x11 \03035 ./arch/construct/tower/lighthouse_west.x11 \03036 ./arch/floor/inlayed/lightmagent-green-p-marble.111 \03037 ./arch/floor/inlayed/lightmagent-green-p-marble.112 \03038 ./arch/floor/inlayed/lightmagent-green-p-marble.113 \03039 ./arch/floor/inlayed/lightmagent-green-p-marble.114 \03040 ./arch/floor/inlayed/lightmagent-green-p-marble.121 \03041 ./arch/floor/inlayed/lightmagent-green-p-marble.122 \03042 ./arch/floor/inlayed/lightmagent-green-p-marble.123 \03043 ./arch/floor/inlayed/lightmagent-green-p-marble.124 \03044 ./arch/floor/lightmagentamarble.111 \03045 ./arch/spell/Bolt/lightning.111 \03046 ./arch/spell/Bolt/lightning.121 \03047 ./arch/spell/Bolt/lightning.131 \03048 ./arch/spell/Bolt/lightning.141 \03049 ./arch/spell/Bolt/lightning.151 \03050 ./arch/spell/Bolt/lightning.161 \03051 ./arch/spell/Bolt/lightning.171 \03052 ./arch/spell/Bolt/lightning.181 \03053 ./arch/weapon/bow/lightning_bow.111 \03054 ./arch/monster/angel/liteangel.111 \03055 ./arch/monster/angel/liteangel.112 \03056 ./arch/monster/angel/liteangel.113 \03057 ./arch/monster/angel/liteangel.114 \03058 ./arch/monster/chaos/liv_chaos.111 \03059 ./arch/monster/chaos/liv_chaos.222 \03060 ./arch/monster/chaos/liv_chaos.333 \03061 ./arch/monster/chaos/liv_chaos.444 \03062 ./arch/flesh/generic/liver.111 \03063 ./arch/weapon/chained/lmornstar.111 \03064 ./arch/food/loaf.111 \03065 ./arch/skills/Skill_Tools/lockpicks.111 \03066 ./arch/monster/misc/lokanth/lokanth.131 \03067 ./arch/monster/misc/lokanth/lokanth.132 \03068 ./arch/monster/misc/lokanth/lokanth.171 \03069 ./arch/monster/misc/lokanth/lokanth.172 \03070 ./arch/weapon/bow/longbow.111 \03071 ./arch/transport/longship.x11 \03072 ./arch/wall/longtable/longtable_0.111 \03073 ./arch/wall/longtable/longtable_1.111 \03074 ./arch/wall/longtable/longtable_2.111 \03075 ./arch/wall/longtable/longtable_3.111 \03076 ./arch/wall/longtable/longtable_4.111 \03077 ./arch/wall/longtable/longtable_5.111 \03078 ./arch/wall/longtable/longtable_6.111 \03079 ./arch/wall/longtable/longtable_7.111 \03080 ./arch/wall/longtable/longtable_8.111 \03081 ./arch/wall/longtable/longtable_9.111 \03082 ./arch/wall/longtable/longtable_A.111 \03083 ./arch/wall/longtable/longtable_B.111 \03084 ./arch/wall/longtable/longtable_C.111 \03085 ./arch/wall/longtable/longtable_D.111 \03086 ./arch/wall/longtable/longtable_E.111 \03087 ./arch/wall/longtable/longtable_F.111 \03088 ./arch/spell/Bullet/loose_magic.111 \03089 ./arch/spell/Bullet/loose_magic.112 \03090 ./arch/spell/Bullet/loose_magic.113 \03091 ./arch/spell/Bullet/loose_magic.114 \03092 ./arch/monster/humanoid/lord_e.111 \03093 ./arch/monster/humanoid/lord_e.112 \03094 ./arch/armour/boots/low_boots.111 \03095 ./arch/weapon/misc/lspear.111 \03096 ./arch/inorganic/lstone.111 \03097 ./arch/weapon/sword/lsword.111 \03098 ./arch/misc/Container/luggage.111 \03099 ./arch/misc/Container/luggage.112 \03100 ./arch/misc/Container/luggage.113 \03101 ./arch/misc/Container/luggage.114 \03102 ./arch/misc/Container/luggage.115 \03103 ./arch/misc/Container/luggage.116 \03104 ./arch/misc/Container/luggage.117 \03105 ./arch/misc/Container/luggage.118 \03106 ./arch/construct/temple/lyth_temple.111 \03107 ./arch/monster/giant/mabu.x11 \03108 ./arch/monster/giant/mabu.x12 \03109 ./arch/monster/giant/mabu.x13 \03110 ./arch/weapon/mace/mace_1.111 \03111 ./arch/weapon/mace/mace_2.111 \03112 ./arch/misc/machine.x11 \03113 ./arch/monster/humanoid/madman.111 \03114 ./arch/monster/humanoid/madman.112 \03115 ./arch/monster/humanoid/madman_gen.111 \03116 ./arch/player/class/Warrior/mage.111 \03117 ./arch/player/class/Warrior/mage.112 \03118 ./arch/player/class/Warrior/mage.131 \03119 ./arch/player/class/Warrior/mage.132 \03120 ./arch/player/class/Warrior/mage.151 \03121 ./arch/player/class/Warrior/mage.152 \03122 ./arch/player/class/Warrior/mage.171 \03123 ./arch/player/class/Warrior/mage.172 \03124 ./arch/floor/magentamarble.111 \03125 ./arch/floor/magentamarblemedium.111 \03126 ./arch/weapon/artifact/magi_staff.111 \03127 ./arch/weapon/artifact/magi_staff.112 \03128 ./arch/weapon/artifact/magi_staff.113 \03129 ./arch/weapon/bow/magic_bow.111 \03130 ./arch/weapon/bow/magic_bow.112 \03131 ./arch/weapon/bow/magic_bow.113 \03132 ./arch/weapon/bow/magic_bow.114 \03133 ./arch/connect/magic_ear.111 \03134 ./arch/spell/MagicMissile/magic_miss.111 \03135 ./arch/spell/MagicMissile/magic_miss.121 \03136 ./arch/spell/MagicMissile/magic_miss.131 \03137 ./arch/spell/MagicMissile/magic_miss.141 \03138 ./arch/spell/MagicMissile/magic_miss.151 \03139 ./arch/spell/MagicMissile/magic_miss.161 \03140 ./arch/spell/MagicMissile/magic_miss.171 \03141 ./arch/spell/MagicMissile/magic_miss.181 \03142 ./arch/exit/magic_portal/magic_portal.111 \03143 ./arch/exit/magic_portal/magic_portal.112 \03144 ./arch/exit/magic_portal/magic_portal.113 \03145 ./arch/exit/magic_portal/magic_portal.114 \03146 ./arch/exit/magic_portal/magic_portal.115 \03147 ./arch/exit/magic_portal/magic_portal.116 \03148 ./arch/exit/magic_portal/magic_portal.117 \03149 ./arch/exit/magic_portal/magic_portal.118 \03150 ./arch/exit/magic_portal/magic_portal.119 \03151 ./arch/exit/magic_portal/magic_portal.11A \03152 ./arch/exit/magic_portal/magic_portal.11B \03153 ./arch/exit/magic_portal/magic_portal.11C \03154 ./arch/exit/magic_portal/magic_portal.11D \03155 ./arch/exit/magic_portal/magic_portal.11E \03156 ./arch/exit/magic_portal/magic_portal.11F \03157 ./arch/exit/magic_portal/magic_portal.11G \03158 ./arch/exit/magic_portal/magic_portal.11H \03159 ./arch/exit/magic_portal/magic_portal.11I \03160 ./arch/exit/magic_portal/magic_portal.11J \03161 ./arch/exit/magic_portal/magic_portal.11K \03162 ./arch/exit/magic_portal/magic_portal.11L \03163 ./arch/exit/magic_portal/magic_portal.11M \03164 ./arch/armour/cloak/magic_resist.111 \03165 ./arch/connect/magicmouth.111 \03166 ./arch/planes/fire/magma.111 \03167 ./arch/planes/fire/magma.112 \03168 ./arch/planes/fire/magma.113 \03169 ./arch/planes/fire/magma.114 \03170 ./arch/misc/magnifier.111 \03171 ./arch/misc/Container/mailbox.111 \03172 ./arch/monster/humanoid/Human/man.131 \03173 ./arch/monster/humanoid/Human/man.151 \03174 ./arch/monster/humanoid/Human/man.171 \03175 ./arch/monster/humanoid/Human/man2.131 \03176 ./arch/monster/humanoid/Human/man2.151 \03177 ./arch/monster/humanoid/Human/man2.171 \03178 ./arch/spell/Bullet/manaball.111 \03179 ./arch/spell/Bullet/manaball.112 \03180 ./arch/spell/Bullet/manaball.113 \03181 ./arch/spell/Bullet/manaball.114 \03182 ./arch/spell/Cone/manablast.111 \03183 ./arch/spell/Cone/manablast.112 \03184 ./arch/spell/Cone/manablast.113 \03185 ./arch/spell/Cone/manablast.114 \03186 ./arch/spell/Bolt/manabolt.111 \03187 ./arch/spell/Bolt/manabolt.121 \03188 ./arch/spell/Bolt/manabolt.131 \03189 ./arch/spell/Bolt/manabolt.141 \03190 ./arch/spell/Bolt/manabolt.151 \03191 ./arch/spell/Bolt/manabolt.161 \03192 ./arch/spell/Bolt/manabolt.171 \03193 ./arch/spell/Bolt/manabolt.181 \03194 ./arch/spell/Bullet/manabullet.111 \03195 ./arch/spell/Bullet/manabullet.121 \03196 ./arch/spell/Bullet/manabullet.131 \03197 ./arch/spell/Bullet/manabullet.141 \03198 ./arch/spell/Bullet/manabullet.151 \03199 ./arch/spell/Bullet/manabullet.161 \03200 ./arch/spell/Bullet/manabullet.171 \03201 ./arch/spell/Bullet/manabullet.181 \03202 ./arch/connect/Hole/manhole.111 \03203 ./arch/connect/Hole/manhole.112 \03204 ./arch/connect/Hole/manhole.113 \03205 ./arch/connect/Hole/manhole.114 \03206 ./arch/system/map.111 \03207 ./arch/floor/marble.111 \03208 ./arch/floor/marble_blgr.111 \03209 ./arch/construct/town/market1.111 \03210 ./arch/construct/town/market1_east.111 \03211 ./arch/construct/town/market2.111 \03212 ./arch/construct/town/market2_east.111 \03213 ./arch/construct/town/market3.111 \03214 ./arch/construct/town/market3_east.111 \03215 ./arch/ground/marsh.111 \03216 ./arch/ground/smooth/marsh_S.111 \03217 ./arch/weapon/artifact/Masamune/masamune.111 \03218 ./arch/weapon/artifact/Masamune/masamune.112 \03219 ./arch/weapon/artifact/Masamune/masamune.113 \03220 ./arch/weapon/artifact/Masamune/masamune.114 \03221 ./arch/monster/animal/Dog/mastif.131 \03222 ./arch/monster/animal/Dog/mastif.132 \03223 ./arch/monster/animal/Dog/mastif.133 \03224 ./arch/monster/animal/Dog/mastif.171 \03225 ./arch/monster/animal/Dog/mastif.172 \03226 ./arch/monster/animal/Dog/mastif.173 \03227 ./arch/indoor/mat.111 \03228 ./arch/mapbuilding/mbaltar_none.111 \03229 ./arch/mapbuilding/mbbed_save.111 \03230 ./arch/mapbuilding/mbblackmarble.111 \03231 ./arch/mapbuilding/mbbook.111 \03232 ./arch/mapbuilding/mbbrazier.111 \03233 ./arch/mapbuilding/mbbutton.111 \03234 ./arch/mapbuilding/mbdwall_0.111 \03235 ./arch/mapbuilding/mbewall_0.111 \03236 ./arch/mapbuilding/mbfireplace.111 \03237 ./arch/mapbuilding/mbfirepot.111 \03238 ./arch/mapbuilding/mbfountain.111 \03239 ./arch/mapbuilding/mbgreenmarble.111 \03240 ./arch/mapbuilding/mbhammer.111 \03241 ./arch/mapbuilding/mbiron_gate1.111 \03242 ./arch/mapbuilding/mbiron_gate2.111 \03243 ./arch/mapbuilding/mbiron_gate_inv1.111 \03244 ./arch/mapbuilding/mbiron_gate_inv2.111 \03245 ./arch/mapbuilding/mblever.111 \03246 ./arch/mapbuilding/mblightmagentamarble.111 \03247 ./arch/mapbuilding/mbmarble.111 \03248 ./arch/mapbuilding/mbpedestal.111 \03249 ./arch/mapbuilding/mbpinkmarble.111 \03250 ./arch/mapbuilding/mbredcwall_0.111 \03251 ./arch/mapbuilding/mbsign.111 \03252 ./arch/mapbuilding/mbstove.111 \03253 ./arch/mapbuilding/mbswall_0.111 \03254 ./arch/mapbuilding/mbwall.111 \03255 ./arch/mapbuilding/mbwestcwall_0.111 \03256 ./arch/mapbuilding/mbwindow.111 \03257 ./arch/mapbuilding/mbwoodfloor.111 \03258 ./arch/mapbuilding/mbwoodfloor2.111 \03259 ./arch/monster/demon/medium_demon/mdemon.x11 \03260 ./arch/monster/demon/medium_demon/mdemon.x12 \03261 ./arch/connect/Doors/mdoor.111 \03262 ./arch/connect/Doors/mdoor.112 \03263 ./arch/connect/Doors/mdoor.113 \03264 ./arch/connect/Doors/mdoor.114 \03265 ./arch/ground/Stone/mediumston.111 \03266 ./arch/monster/humanoid/Arabic/merchant.111 \03267 ./arch/monster/humanoid/Arabic/merchant.131 \03268 ./arch/monster/humanoid/Arabic/merchant.171 \03269 ./arch/inorganic/mercury.111 \03270 ./arch/monster/angel/mesangel.111 \03271 ./arch/monster/angel/mesangel.112 \03272 ./arch/monster/angel/mesangel.113 \03273 ./arch/monster/angel/mesangel.114 \03274 ./arch/armour/mail/metalrobe.111 \03275 ./arch/spell/Bullet/meteor.111 \03276 ./arch/inorganic/min_oil.111 \03277 ./arch/wall/mine/mine_0.111 \03278 ./arch/wall/mine/mine_1.111 \03279 ./arch/wall/mine/mine_2.111 \03280 ./arch/wall/mine/mine_3.111 \03281 ./arch/wall/mine/mine_4.111 \03282 ./arch/wall/mine/mine_5.111 \03283 ./arch/wall/mine/mine_6.111 \03284 ./arch/wall/mine/mine_7.111 \03285 ./arch/wall/mine/mine_8.111 \03286 ./arch/wall/mine/mine_9.111 \03287 ./arch/wall/mine/mine_A.111 \03288 ./arch/wall/mine/mine_B.111 \03289 ./arch/wall/mine/mine_C.111 \03290 ./arch/wall/mine/mine_D.111 \03291 ./arch/wall/mine/mine_E.111 \03292 ./arch/wall/mine/mine_F.111 \03293 ./arch/wall/mine/mine_ne.111 \03294 ./arch/wall/mine/mine_nw.111 \03295 ./arch/wall/mine/mine_se.111 \03296 ./arch/wall/mine/mine_sw.111 \03297 ./arch/wall/mine/minedoor_4.x11 \03298 ./arch/wall/mine/minedoor_4.x12 \03299 ./arch/wall/mine/minedoor_4.x13 \03300 ./arch/wall/mine/minedoor_4.x14 \03301 ./arch/wall/mine/minedoor_4.x15 \03302 ./arch/wall/mine/minedoor_4.x16 \03303 ./arch/wall/mine/minedoor_4.x17 \03304 ./arch/wall/mine/minedoor_4.x18 \03305 ./arch/wall/mine/minedoor_4.x19 \03306 ./arch/wall/mine/minedoor_8.x11 \03307 ./arch/wall/mine/minedoor_8.x12 \03308 ./arch/wall/mine/minedoor_8.x13 \03309 ./arch/wall/mine/minedoor_8.x14 \03310 ./arch/wall/mine/minedoor_8.x15 \03311 ./arch/wall/mine/minedoor_8.x16 \03312 ./arch/wall/mine/minedoor_8.x17 \03313 ./arch/wall/mine/minedoor_8.x18 \03314 ./arch/wall/mine/minedoor_8.x19 \03315 ./arch/construct/house/minihouse.111 \03316 ./arch/food/mint.111 \03317 ./arch/jewel/mithril.111 \03318 ./arch/jewel/mithril.112 \03319 ./arch/jewel/mithril.113 \03320 ./arch/jewel/mithril.114 \03321 ./arch/armour/mail/mithril_ar.111 \03322 ./arch/armour/mail/mithril_ar.112 \03323 ./arch/armour/mail/mithril_ar.113 \03324 ./arch/armour/mail/mithril_ar_ele.111 \03325 ./arch/armour/mail/mithril_ar_ele.112 \03326 ./arch/armour/mail/mithril_ar_ele.113 \03327 ./arch/weapon/artifact/mjoellnir.111 \03328 ./arch/wall/moat/moat_0.111 \03329 ./arch/wall/moat/moat_1.111 \03330 ./arch/wall/moat/moat_2.111 \03331 ./arch/wall/moat/moat_3.111 \03332 ./arch/wall/moat/moat_4.111 \03333 ./arch/wall/moat/moat_5.111 \03334 ./arch/wall/moat/moat_6.111 \03335 ./arch/wall/moat/moat_7.111 \03336 ./arch/wall/moat/moat_8.111 \03337 ./arch/wall/moat/moat_9.111 \03338 ./arch/wall/moat/moat_A.111 \03339 ./arch/wall/moat/moat_B.111 \03340 ./arch/wall/moat/moat_C.111 \03341 ./arch/wall/moat/moat_D.111 \03342 ./arch/wall/moat/moat_E.111 \03343 ./arch/wall/moat/moat_F.111 \03344 ./arch/player/class/Religious/monk.111 \03345 ./arch/player/class/Religious/monk.112 \03346 ./arch/player/class/Religious/monk.131 \03347 ./arch/player/class/Religious/monk.132 \03348 ./arch/player/class/Religious/monk.151 \03349 ./arch/player/class/Religious/monk.152 \03350 ./arch/player/class/Religious/monk.171 \03351 ./arch/player/class/Religious/monk.172 \03352 ./arch/readable/monument.111 \03353 ./arch/weapon/chained/mornstar.111 \03354 ./arch/construct/temple/mos_temple.111 \03355 ./arch/ground/Mountain/moun_cave1.111 \03356 ./arch/ground/Mountain/moun_cave2.111 \03357 ./arch/ground/Mountain/mountain1.111 \03358 ./arch/ground/Weather/mountain1_rivlets.111 \03359 ./arch/ground/Weather/mountain1_snow.111 \03360 ./arch/ground/Mountain/mountain2.111 \03361 ./arch/ground/Weather/mountain2_rivlets.111 \03362 ./arch/ground/Weather/mountain2_snow.111 \03363 ./arch/ground/Mountain/mountain3.111 \03364 ./arch/ground/Mountain/mountain4.111 \03365 ./arch/ground/Mountain/mountain5.111 \03366 ./arch/ground/Mountain/mountain_2.x11 \03367 ./arch/ground/smooth/mountain_S.111 \03368 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.111 \03369 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.112 \03370 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.131 \03371 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.132 \03372 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.151 \03373 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.152 \03374 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.171 \03375 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.172 \03376 ./arch/ground/Weather/mountain_foilage.111 \03377 ./arch/weapon/artifact/mournblade.111 \03378 ./arch/monster/animal/mouse.111 \03379 ./arch/monster/animal/mouse.112 \03380 ./arch/monster/animal/mouse_gen.111 \03381 ./arch/monster/misc/mudman.111 \03382 ./arch/monster/misc/mudman.112 \03383 ./arch/monster/animal/mushman1.111 \03384 ./arch/monster/animal/mushman1.112 \03385 ./arch/monster/animal/mushman1.131 \03386 ./arch/monster/animal/mushman1.132 \03387 ./arch/monster/animal/mushman1.151 \03388 ./arch/monster/animal/mushman1.152 \03389 ./arch/monster/animal/mushman1.171 \03390 ./arch/monster/animal/mushman1.172 \03391 ./arch/food/mushroom_1.111 \03392 ./arch/food/mushroom_2.111 \03393 ./arch/food/mushroom_3.111 \03394 ./arch/spell/Golem/mystic_fist.111 \03395 ./arch/spell/Golem/mystic_fist.112 \03396 ./arch/spell/Golem/mystic_fist.113 \03397 ./arch/misc/naz_report.111 \03398 ./arch/monster/undead/nazgul.111 \03399 ./arch/monster/undead/nazgul.112 \03400 ./arch/monster/humanoid/necro.111 \03401 ./arch/monster/humanoid/necro.112 \03402 ./arch/spell/SpellBook/necromancer_book.111 \03403 ./arch/traps/needle.111 \03404 ./arch/spell/MovingBall/negaball.111 \03405 ./arch/spell/MovingBall/negaball.222 \03406 ./arch/spell/MovingBall/negaball.333 \03407 ./arch/spell/MovingBall/negaball.444 \03408 ./arch/spell/Bolt/negabolt.111 \03409 ./arch/spell/Bolt/negabolt.121 \03410 ./arch/spell/Bolt/negabolt.131 \03411 ./arch/spell/Bolt/negabolt.141 \03412 ./arch/spell/Bolt/negabolt.151 \03413 ./arch/spell/Bolt/negabolt.161 \03414 ./arch/spell/Bolt/negabolt.171 \03415 ./arch/spell/Bolt/negabolt.181 \03416 ./arch/monster/animal/Neko/neko.111 \03417 ./arch/monster/animal/Neko/neko.112 \03418 ./arch/monster/animal/Neko/neko.113 \03419 ./arch/monster/animal/Neko/neko.114 \03420 ./arch/monster/animal/Neko/neko.115 \03421 ./arch/monster/animal/Neko/neko.116 \03422 ./arch/monster/animal/Neko/neko.117 \03423 ./arch/monster/animal/Neko/neko.118 \03424 ./arch/misc/neko_kago.111 \03425 ./arch/monster/undead/nightmare.111 \03426 ./arch/monster/undead/nightmare.112 \03427 ./arch/weapon/sword/nineringsword.111 \03428 ./arch/player/class/Thief/ninja.111 \03429 ./arch/player/class/Thief/ninja.112 \03430 ./arch/player/class/Thief/ninja.131 \03431 ./arch/player/class/Thief/ninja.132 \03432 ./arch/player/class/Thief/ninja.151 \03433 ./arch/player/class/Thief/ninja.152 \03434 ./arch/player/class/Thief/ninja.171 \03435 ./arch/player/class/Thief/ninja.172 \03436 ./arch/monster/humanoid/Class/ninja_2.111 \03437 ./arch/monster/humanoid/Class/ninja_2.112 \03438 ./arch/monster/humanoid/Class/ninja_2.113 \03439 ./arch/floor/no_magic.111 \03440 ./arch/floor/no_spells.111 \03441 ./arch/monster/humanoid/Class/northman.111 \03442 ./arch/monster/humanoid/Class/northman.112 \03443 ./arch/readable/note.111 \03444 ./arch/jewel/nugget_huge.111 \03445 ./arch/jewel/nugget_lar.111 \03446 ./arch/jewel/nugget_sma.111 \03447 ./arch/monster/humanoid/Human/nun.131 \03448 ./arch/monster/humanoid/Human/nun.151 \03449 ./arch/monster/humanoid/Human/nun.171 \03450 ./arch/weapon/chained/nunchacu_1.111 \03451 ./arch/weapon/chained/nunchacu_2.111 \03452 ./arch/exit/oakdoor.111 \03453 ./arch/exit/oakdoor_1.111 \03454 ./arch/exit/oakdoor_2.111 \03455 ./arch/door/odoor_1.111 \03456 ./arch/door/odoor_2.111 \03457 ./arch/door/odoor_2_fant_blue-green.111 \03458 ./arch/door/odoor_2_fant_blue-yellow.111 \03459 ./arch/door/odoor_2_fant_brown.111 \03460 ./arch/door/odoor_2_fant_red-white.111 \03461 ./arch/door/odoor_2_fant_red-yellow.111 \03462 ./arch/connect/Doors/odoorm2.111 \03463 ./arch/connect/Doors/odoorm2.112 \03464 ./arch/connect/Doors/odoorm2.113 \03465 ./arch/connect/Doors/odoorm2.114 \03466 ./arch/connect/Doors/odoorm2bg.111 \03467 ./arch/connect/Doors/odoorm2bg.112 \03468 ./arch/connect/Doors/odoorm2bg.113 \03469 ./arch/connect/Doors/odoorm2bg.114 \03470 ./arch/connect/Doors/odoorm2rw.111 \03471 ./arch/connect/Doors/odoorm2rw.112 \03472 ./arch/connect/Doors/odoorm2rw.113 \03473 ./arch/connect/Doors/odoorm2rw.114 \03474 ./arch/connect/Doors/odoorn2.111 \03475 ./arch/connect/Doors/odoorn2.112 \03476 ./arch/connect/Doors/odoorn2.113 \03477 ./arch/connect/Doors/odoorn2.114 \03478 ./arch/monster/goblin/ogre.111 \03479 ./arch/monster/goblin/ogre.112 \03480 ./arch/monster/goblin/ogre_chief.111 \03481 ./arch/monster/goblin/ogre_gen.111 \03482 ./arch/monster/goblin/ogre_leader.111 \03483 ./arch/monster/goblin/ogre_r.111 \03484 ./arch/monster/goblin/ogre_r.112 \03485 ./arch/ground/oil_sea.111 \03486 ./arch/ground/oil_sea.112 \03487 ./arch/ground/oil_sea.113 \03488 ./arch/ground/oil_sea.114 \03489 ./arch/ground/smooth/oil_sea_S.111 \03490 ./arch/ground/smooth/oil_sea_S.112 \03491 ./arch/ground/smooth/oil_sea_S.113 \03492 ./arch/ground/smooth/oil_sea_S.114 \03493 ./arch/armour/cloak/oilskin.111 \03494 ./arch/monster/goblin/ologhi.111 \03495 ./arch/monster/goblin/ologhi.112 \03496 ./arch/food/onion.111 \03497 ./arch/food/orange.111 \03498 ./arch/monster/goblin/orc.111 \03499 ./arch/monster/goblin/orc.112 \03500 ./arch/monster/goblin/orc_chief.111 \03501 ./arch/monster/goblin/orc_chief.112 \03502 ./arch/monster/goblin/orc_gen.111 \03503 ./arch/monster/goblin/orc_leader.111 \03504 ./arch/monster/goblin/orc_leader.112 \03505 ./arch/food/orcchop.111 \03506 ./arch/jewel/ore_b.111 \03507 ./arch/jewel/ore_g.111 \03508 ./arch/jewel/ore_r.111 \03509 ./arch/jewel/ore_y.111 \03510 ./arch/jewel/oresmall_b.111 \03511 ./arch/jewel/oresmall_g.111 \03512 ./arch/jewel/oresmall_r.111 \03513 ./arch/jewel/oresmall_y.111 \03514 ./arch/construct/tower/out_tower.x11 \03515 ./arch/misc/Container/package.111 \03516 ./arch/construct/tower/pagoda_tower_east.x11 \03517 ./arch/construct/Palace/palace.x11 \03518 ./arch/player/class/Religious/paladin.111 \03519 ./arch/player/class/Religious/paladin.112 \03520 ./arch/player/class/Religious/paladin.131 \03521 ./arch/player/class/Religious/paladin.132 \03522 ./arch/player/class/Religious/paladin.151 \03523 ./arch/player/class/Religious/paladin.152 \03524 ./arch/player/class/Religious/paladin.171 \03525 ./arch/player/class/Religious/paladin.172 \03526 ./arch/ground/new/palm.111 \03527 ./arch/ground/new/palms.111 \03528 ./arch/monster/animal/panther.131 \03529 ./arch/monster/animal/panther.132 \03530 ./arch/monster/animal/panther.133 \03531 ./arch/monster/animal/panther.171 \03532 ./arch/monster/animal/panther.172 \03533 ./arch/monster/animal/panther.173 \03534 ./arch/monster/animal/panthergen.111 \03535 ./arch/monster/elemental/Para/para_air.111 \03536 ./arch/monster/elemental/Para/para_air.112 \03537 ./arch/monster/elemental/Para/para_air.113 \03538 ./arch/monster/elemental/Para/para_air.114 \03539 ./arch/monster/elemental/Para/para_earth.111 \03540 ./arch/monster/elemental/Para/para_earth.112 \03541 ./arch/monster/elemental/Para/para_earth.113 \03542 ./arch/monster/elemental/Para/para_fire.111 \03543 ./arch/monster/elemental/Para/para_fire.112 \03544 ./arch/monster/elemental/Para/para_ice.111 \03545 ./arch/monster/elemental/Para/para_ice.112 \03546 ./arch/monster/elemental/Para/para_ice.113 \03547 ./arch/monster/elemental/Para/para_ice.114 \03548 ./arch/monster/elemental/Para/para_ice.115 \03549 ./arch/monster/elemental/Para/para_ice.116 \03550 ./arch/monster/elemental/Para/para_ice.117 \03551 ./arch/monster/elemental/Para/para_ice.118 \03552 ./arch/monster/elemental/Para/para_ice.121 \03553 ./arch/monster/elemental/Para/para_ice.122 \03554 ./arch/monster/elemental/Para/para_ice.123 \03555 ./arch/monster/elemental/Para/para_ice.124 \03556 ./arch/monster/elemental/Para/para_ice.125 \03557 ./arch/monster/elemental/Para/para_ice.126 \03558 ./arch/monster/elemental/Para/para_ice.127 \03559 ./arch/monster/elemental/Para/para_ice.128 \03560 ./arch/monster/elemental/Para/para_ice.131 \03561 ./arch/monster/elemental/Para/para_ice.132 \03562 ./arch/monster/elemental/Para/para_ice.133 \03563 ./arch/monster/elemental/Para/para_ice.134 \03564 ./arch/monster/elemental/Para/para_ice.135 \03565 ./arch/monster/elemental/Para/para_ice.136 \03566 ./arch/monster/elemental/Para/para_ice.137 \03567 ./arch/monster/elemental/Para/para_ice.138 \03568 ./arch/monster/elemental/Para/para_ice.141 \03569 ./arch/monster/elemental/Para/para_ice.142 \03570 ./arch/monster/elemental/Para/para_ice.143 \03571 ./arch/monster/elemental/Para/para_ice.144 \03572 ./arch/monster/elemental/Para/para_ice.145 \03573 ./arch/monster/elemental/Para/para_ice.146 \03574 ./arch/monster/elemental/Para/para_ice.147 \03575 ./arch/monster/elemental/Para/para_ice.148 \03576 ./arch/monster/elemental/Para/para_ice.151 \03577 ./arch/monster/elemental/Para/para_ice.152 \03578 ./arch/monster/elemental/Para/para_ice.153 \03579 ./arch/monster/elemental/Para/para_ice.154 \03580 ./arch/monster/elemental/Para/para_ice.155 \03581 ./arch/monster/elemental/Para/para_ice.156 \03582 ./arch/monster/elemental/Para/para_ice.157 \03583 ./arch/monster/elemental/Para/para_ice.158 \03584 ./arch/monster/elemental/Para/para_ice.161 \03585 ./arch/monster/elemental/Para/para_ice.162 \03586 ./arch/monster/elemental/Para/para_ice.163 \03587 ./arch/monster/elemental/Para/para_ice.164 \03588 ./arch/monster/elemental/Para/para_ice.165 \03589 ./arch/monster/elemental/Para/para_ice.166 \03590 ./arch/monster/elemental/Para/para_ice.167 \03591 ./arch/monster/elemental/Para/para_ice.168 \03592 ./arch/monster/elemental/Para/para_ice.171 \03593 ./arch/monster/elemental/Para/para_ice.172 \03594 ./arch/monster/elemental/Para/para_ice.173 \03595 ./arch/monster/elemental/Para/para_ice.174 \03596 ./arch/monster/elemental/Para/para_ice.175 \03597 ./arch/monster/elemental/Para/para_ice.176 \03598 ./arch/monster/elemental/Para/para_ice.177 \03599 ./arch/monster/elemental/Para/para_ice.178 \03600 ./arch/monster/elemental/Para/para_ice.181 \03601 ./arch/monster/elemental/Para/para_ice.182 \03602 ./arch/monster/elemental/Para/para_ice.183 \03603 ./arch/monster/elemental/Para/para_ice.184 \03604 ./arch/monster/elemental/Para/para_ice.185 \03605 ./arch/monster/elemental/Para/para_ice.186 \03606 ./arch/monster/elemental/Para/para_ice.187 \03607 ./arch/monster/elemental/Para/para_ice.188 \03608 ./arch/monster/elemental/Para/para_lava.111 \03609 ./arch/monster/elemental/Para/para_lava.112 \03610 ./arch/monster/elemental/Para/para_lava.113 \03611 ./arch/monster/elemental/Para/para_light.111 \03612 ./arch/monster/elemental/Para/para_light.112 \03613 ./arch/monster/elemental/Para/para_light.113 \03614 ./arch/monster/elemental/Para/para_mud.111 \03615 ./arch/monster/elemental/Para/para_mud.112 \03616 ./arch/monster/elemental/Para/para_mud.113 \03617 ./arch/monster/elemental/Para/para_mud.114 \03618 ./arch/monster/elemental/Para/para_mud.115 \03619 ./arch/monster/elemental/Para/para_water.111 \03620 ./arch/monster/elemental/Para/para_water.112 \03621 ./arch/monster/elemental/Para/para_water.113 \03622 ./arch/spell/Cone/paralyse.111 \03623 ./arch/spell/Cone/paralyse.112 \03624 ./arch/spell/Cone/paralyse.113 \03625 ./arch/road/paved/paved_0.111 \03626 ./arch/road/paved/paved_1.111 \03627 ./arch/road/paved/paved_2.111 \03628 ./arch/road/paved/paved_3.111 \03629 ./arch/road/paved/paved_4.111 \03630 ./arch/road/paved/paved_5.111 \03631 ./arch/road/paved/paved_6.111 \03632 ./arch/road/paved/paved_7.111 \03633 ./arch/road/paved/paved_8.111 \03634 ./arch/road/paved/paved_9.111 \03635 ./arch/road/paved/paved_A.111 \03636 ./arch/road/paved/paved_B.111 \03637 ./arch/road/paved/paved_C.111 \03638 ./arch/road/paved/paved_D.111 \03639 ./arch/road/paved/paved_E.111 \03640 ./arch/road/paved/paved_F.111 \03641 ./arch/food/pear.111 \03642 ./arch/jewel/pearl.111 \03643 ./arch/jewel/pearl.112 \03644 ./arch/shop/pearl_converter.111 \03645 ./arch/connect/pedestal.111 \03646 ./arch/connect/pedestal.112 \03647 ./arch/misc/penta.111 \03648 ./arch/exit/Pentagram/pentagram.x11 \03649 ./arch/monster/acid/pet_necro.111 \03650 ./arch/monster/acid/pet_necro.112 \03651 ./arch/inorganic/phil_phos.111 \03652 ./arch/inorganic/phil_phos.112 \03653 ./arch/inorganic/phil_phos.113 \03654 ./arch/inorganic/phil_salt.111 \03655 ./arch/inorganic/phil_salt.112 \03656 ./arch/inorganic/phil_salt.113 \03657 ./arch/inorganic/phil_sulphur.111 \03658 ./arch/inorganic/phil_sulphur.112 \03659 ./arch/inorganic/phil_sulphur.113 \03660 ./arch/ground/Pstone/phole_1.111 \03661 ./arch/ground/Pstone/phole_2.111 \03662 ./arch/ground/Pstone/phole_3.111 \03663 ./arch/inorganic/phosphor.111 \03664 ./arch/wall/pier/pier_0.111 \03665 ./arch/wall/pier/pier_1.111 \03666 ./arch/wall/pier/pier_2.111 \03667 ./arch/wall/pier/pier_3.111 \03668 ./arch/wall/pier/pier_4.111 \03669 ./arch/wall/pier/pier_5.111 \03670 ./arch/wall/pier/pier_6.111 \03671 ./arch/wall/pier/pier_7.111 \03672 ./arch/wall/pier/pier_8.111 \03673 ./arch/wall/pier/pier_9.111 \03674 ./arch/wall/pier/pier_A.111 \03675 ./arch/wall/pier/pier_B.111 \03676 ./arch/wall/pier/pier_C.111 \03677 ./arch/wall/pier/pier_D.111 \03678 ./arch/wall/pier/pier_E.111 \03679 ./arch/wall/pier/pier_F.111 \03680 ./arch/misc/pillars.111 \03681 ./arch/floor/inlayed/pink-beige-c-marble.111 \03682 ./arch/floor/inlayed/pink-beige-c-marble.112 \03683 ./arch/floor/inlayed/pink-beige-c-marble.113 \03684 ./arch/floor/inlayed/pink-beige-c-marble.114 \03685 ./arch/floor/pinkmarble.111 \03686 ./arch/weapon/other/pipe.111 \03687 ./arch/food/pipeweed.111 \03688 ./arch/monster/humanoid/Human/pir_lass.111 \03689 ./arch/monster/humanoid/Human/pir_lass.112 \03690 ./arch/monster/humanoid/Class/pirate.111 \03691 ./arch/monster/humanoid/Class/pirate.112 \03692 ./arch/misc/social/pirate_hat.111 \03693 ./arch/flesh/misc/pix_dust.111 \03694 ./arch/flesh/misc/pix_wing.111 \03695 ./arch/monster/misc/pixie.111 \03696 ./arch/monster/misc/pixie.112 \03697 ./arch/monster/misc/pixie_gen.111 \03698 ./arch/player/race/pl_dragon_bl.111 \03699 ./arch/player/race/pl_dragon_bl.112 \03700 ./arch/player/race/pl_dragon_bl.131 \03701 ./arch/player/race/pl_dragon_bl.132 \03702 ./arch/player/race/pl_dragon_bl.151 \03703 ./arch/player/race/pl_dragon_bl.152 \03704 ./arch/player/race/pl_dragon_bl.171 \03705 ./arch/player/race/pl_dragon_bl.172 \03706 ./arch/player/race/pl_dragon_bl_spellcasting.111 \03707 ./arch/player/race/pl_dragon_bl_spellcasting.112 \03708 ./arch/player/race/pl_dragon_bl_spellcasting.113 \03709 ./arch/player/race/pl_dragon_bl_spellcasting.131 \03710 ./arch/player/race/pl_dragon_bl_spellcasting.132 \03711 ./arch/player/race/pl_dragon_bl_spellcasting.133 \03712 ./arch/player/race/pl_dragon_bl_spellcasting.151 \03713 ./arch/player/race/pl_dragon_bl_spellcasting.152 \03714 ./arch/player/race/pl_dragon_bl_spellcasting.153 \03715 ./arch/player/race/pl_dragon_bl_spellcasting.171 \03716 ./arch/player/race/pl_dragon_bl_spellcasting.172 \03717 ./arch/player/race/pl_dragon_bl_spellcasting.173 \03718 ./arch/player/race/pl_dragon_blue.111 \03719 ./arch/player/race/pl_dragon_blue.112 \03720 ./arch/player/race/pl_dragon_blue.131 \03721 ./arch/player/race/pl_dragon_blue.132 \03722 ./arch/player/race/pl_dragon_blue.151 \03723 ./arch/player/race/pl_dragon_blue.152 \03724 ./arch/player/race/pl_dragon_blue.171 \03725 ./arch/player/race/pl_dragon_blue.172 \03726 ./arch/player/race/pl_dragon_blue_spellcasting.111 \03727 ./arch/player/race/pl_dragon_blue_spellcasting.112 \03728 ./arch/player/race/pl_dragon_blue_spellcasting.113 \03729 ./arch/player/race/pl_dragon_blue_spellcasting.131 \03730 ./arch/player/race/pl_dragon_blue_spellcasting.132 \03731 ./arch/player/race/pl_dragon_blue_spellcasting.133 \03732 ./arch/player/race/pl_dragon_blue_spellcasting.151 \03733 ./arch/player/race/pl_dragon_blue_spellcasting.152 \03734 ./arch/player/race/pl_dragon_blue_spellcasting.153 \03735 ./arch/player/race/pl_dragon_blue_spellcasting.171 \03736 ./arch/player/race/pl_dragon_blue_spellcasting.172 \03737 ./arch/player/race/pl_dragon_blue_spellcasting.173 \03738 ./arch/player/race/pl_dragon_g.111 \03739 ./arch/player/race/pl_dragon_g.112 \03740 ./arch/player/race/pl_dragon_g.131 \03741 ./arch/player/race/pl_dragon_g.132 \03742 ./arch/player/race/pl_dragon_g.151 \03743 ./arch/player/race/pl_dragon_g.152 \03744 ./arch/player/race/pl_dragon_g.171 \03745 ./arch/player/race/pl_dragon_g.172 \03746 ./arch/player/race/pl_dragon_g_spellcasting.111 \03747 ./arch/player/race/pl_dragon_g_spellcasting.112 \03748 ./arch/player/race/pl_dragon_g_spellcasting.113 \03749 ./arch/player/race/pl_dragon_g_spellcasting.131 \03750 ./arch/player/race/pl_dragon_g_spellcasting.132 \03751 ./arch/player/race/pl_dragon_g_spellcasting.133 \03752 ./arch/player/race/pl_dragon_g_spellcasting.151 \03753 ./arch/player/race/pl_dragon_g_spellcasting.152 \03754 ./arch/player/race/pl_dragon_g_spellcasting.153 \03755 ./arch/player/race/pl_dragon_g_spellcasting.171 \03756 ./arch/player/race/pl_dragon_g_spellcasting.172 \03757 ./arch/player/race/pl_dragon_g_spellcasting.173 \03758 ./arch/player/race/pl_dragon_r.111 \03759 ./arch/player/race/pl_dragon_r.112 \03760 ./arch/player/race/pl_dragon_r.131 \03761 ./arch/player/race/pl_dragon_r.132 \03762 ./arch/player/race/pl_dragon_r.151 \03763 ./arch/player/race/pl_dragon_r.152 \03764 ./arch/player/race/pl_dragon_r.171 \03765 ./arch/player/race/pl_dragon_r.172 \03766 ./arch/player/race/pl_dragon_r_spellcasting.111 \03767 ./arch/player/race/pl_dragon_r_spellcasting.112 \03768 ./arch/player/race/pl_dragon_r_spellcasting.113 \03769 ./arch/player/race/pl_dragon_r_spellcasting.131 \03770 ./arch/player/race/pl_dragon_r_spellcasting.132 \03771 ./arch/player/race/pl_dragon_r_spellcasting.133 \03772 ./arch/player/race/pl_dragon_r_spellcasting.151 \03773 ./arch/player/race/pl_dragon_r_spellcasting.152 \03774 ./arch/player/race/pl_dragon_r_spellcasting.153 \03775 ./arch/player/race/pl_dragon_r_spellcasting.171 \03776 ./arch/player/race/pl_dragon_r_spellcasting.172 \03777 ./arch/player/race/pl_dragon_r_spellcasting.173 \03778 ./arch/player/race/pl_half_orc.111 \03779 ./arch/player/race/pl_half_orc.112 \03780 ./arch/player/race/pl_half_orc.131 \03781 ./arch/player/race/pl_half_orc.132 \03782 ./arch/player/race/pl_half_orc.151 \03783 ./arch/player/race/pl_half_orc.152 \03784 ./arch/player/race/pl_half_orc.171 \03785 ./arch/player/race/pl_half_orc.172 \03786 ./arch/jewel/platbar.111 \03787 ./arch/jewel/platblock.111 \03788 ./arch/misc/plate.111 \03789 ./arch/armour/mail/plate_mail.111 \03790 ./arch/shop/platinum_converter.111 \03791 ./arch/shop/platinum_converter2.111 \03792 ./arch/jewel/platround.111 \03793 ./arch/misc/platter1_bro.111 \03794 ./arch/misc/platter1_cop.111 \03795 ./arch/misc/platter1_gol.111 \03796 ./arch/misc/platter1_iro.111 \03797 ./arch/misc/platter1_plat.111 \03798 ./arch/misc/platter1_sil.111 \03799 ./arch/misc/platter1_tin.111 \03800 ./arch/jewel/plt_coin.111 \03801 ./arch/spell/MagicWall/smover/pmarrow.111 \03802 ./arch/spell/MagicWall/smover/pmarrow.112 \03803 ./arch/spell/MagicWall/smover/pmarrow.113 \03804 ./arch/spell/MagicWall/smover/pmarrow.114 \03805 ./arch/spell/MagicWall/smover/pmarrow.115 \03806 ./arch/spell/MagicWall/smover/pmarrow.121 \03807 ./arch/spell/MagicWall/smover/pmarrow.122 \03808 ./arch/spell/MagicWall/smover/pmarrow.123 \03809 ./arch/spell/MagicWall/smover/pmarrow.124 \03810 ./arch/spell/MagicWall/smover/pmarrow.125 \03811 ./arch/spell/MagicWall/smover/pmarrow.131 \03812 ./arch/spell/MagicWall/smover/pmarrow.132 \03813 ./arch/spell/MagicWall/smover/pmarrow.133 \03814 ./arch/spell/MagicWall/smover/pmarrow.134 \03815 ./arch/spell/MagicWall/smover/pmarrow.135 \03816 ./arch/spell/MagicWall/smover/pmarrow.141 \03817 ./arch/spell/MagicWall/smover/pmarrow.142 \03818 ./arch/spell/MagicWall/smover/pmarrow.143 \03819 ./arch/spell/MagicWall/smover/pmarrow.144 \03820 ./arch/spell/MagicWall/smover/pmarrow.145 \03821 ./arch/spell/MagicWall/smover/pmarrow.151 \03822 ./arch/spell/MagicWall/smover/pmarrow.152 \03823 ./arch/spell/MagicWall/smover/pmarrow.153 \03824 ./arch/spell/MagicWall/smover/pmarrow.154 \03825 ./arch/spell/MagicWall/smover/pmarrow.155 \03826 ./arch/spell/MagicWall/smover/pmarrow.161 \03827 ./arch/spell/MagicWall/smover/pmarrow.162 \03828 ./arch/spell/MagicWall/smover/pmarrow.163 \03829 ./arch/spell/MagicWall/smover/pmarrow.164 \03830 ./arch/spell/MagicWall/smover/pmarrow.165 \03831 ./arch/spell/MagicWall/smover/pmarrow.171 \03832 ./arch/spell/MagicWall/smover/pmarrow.172 \03833 ./arch/spell/MagicWall/smover/pmarrow.173 \03834 ./arch/spell/MagicWall/smover/pmarrow.174 \03835 ./arch/spell/MagicWall/smover/pmarrow.175 \03836 ./arch/spell/MagicWall/smover/pmarrow.181 \03837 ./arch/spell/MagicWall/smover/pmarrow.182 \03838 ./arch/spell/MagicWall/smover/pmarrow.183 \03839 ./arch/spell/MagicWall/smover/pmarrow.184 \03840 ./arch/spell/MagicWall/smover/pmarrow.185 \03841 ./arch/spell/Bullet/poisonbullet.111 \03842 ./arch/spell/Bullet/poisonbullet.121 \03843 ./arch/spell/Bullet/poisonbullet.131 \03844 ./arch/spell/Bullet/poisonbullet.141 \03845 ./arch/spell/Bullet/poisonbullet.151 \03846 ./arch/spell/Bullet/poisonbullet.161 \03847 ./arch/spell/Bullet/poisonbullet.171 \03848 ./arch/spell/Bullet/poisonbullet.181 \03849 ./arch/spell/Bullet/poisoncloud.111 \03850 ./arch/spell/Bullet/poisoncloud.112 \03851 ./arch/spell/Bullet/poisoncloud.113 \03852 ./arch/monster/animal/Bear/polarbear.x31 \03853 ./arch/monster/animal/Bear/polarbear.x32 \03854 ./arch/monster/animal/Bear/polarbear.x71 \03855 ./arch/monster/animal/Bear/polarbear.x72 \03856 ./arch/weapon/misc/poleaxe.111 \03857 ./arch/spell/Misc/polymorph.111 \03858 ./arch/spell/Misc/polymorph.112 \03859 ./arch/spell/Misc/polymorph.113 \03860 ./arch/spell/Misc/polymorph.114 \03861 ./arch/monster/humanoid/Human/postman/postman.131 \03862 ./arch/monster/humanoid/Human/postman/postman.132 \03863 ./arch/monster/humanoid/Human/postman/postman.171 \03864 ./arch/monster/humanoid/Human/postman/postman.172 \03865 ./arch/monster/humanoid/Human/postman/postman_gen.111 \03866 ./arch/food/potato.111 \03867 ./arch/spell/Potion/potion_aether.111 \03868 ./arch/potion/potion_empty.111 \03869 ./arch/spell/Potion/potion_fire2.111 \03870 ./arch/spell/Potion/potion_freeze.111 \03871 ./arch/spell/Potion/potion_heal2.111 \03872 ./arch/spell/Potion/potion_ishock.111 \03873 ./arch/spell/Potion/potion_mimm.111 \03874 ./arch/spell/Potion/potion_resist.111 \03875 ./arch/spell/Potion/potion_shock.111 \03876 ./arch/spell/Potion/potion_util.111 \03877 ./arch/potion/potioncha.111 \03878 ./arch/potion/potioncol.111 \03879 ./arch/potion/potioncon.111 \03880 ./arch/potion/potiondex.111 \03881 ./arch/potion/potionfir.111 \03882 ./arch/spell/Potion/potiongen.111 \03883 ./arch/potion/potionhea.111 \03884 ./arch/potion/potionhero.111 \03885 ./arch/potion/potionimp.111 \03886 ./arch/potion/potionint.111 \03887 ./arch/potion/potioninv.111 \03888 ./arch/potion/potionmag.111 \03889 ./arch/potion/potionpow.111 \03890 ./arch/potion/potionstr.111 \03891 ./arch/potion/potionwis.111 \03892 ./arch/misc/Container/pouch.111 \03893 ./arch/spell/power_crystal.111 \03894 ./arch/spell/power_crystal.112 \03895 ./arch/spell/power_crystal.113 \03896 ./arch/spell/power_crystal.114 \03897 ./arch/spell/SpellBook/prayer_book.111 \03898 ./arch/spell/Scroll/prepare_weapon.111 \03899 ./arch/misc/Container/present_box_1.111 \03900 ./arch/misc/Container/present_box_2.111 \03901 ./arch/misc/Container/present_box_3.111 \03902 ./arch/misc/Container/present_box_4.111 \03903 ./arch/misc/Container/present_box_5.111 \03904 ./arch/misc/Container/present_box_6.111 \03905 ./arch/jewel/pretty_amethyst.111 \03906 ./arch/jewel/pretty_crystal.111 \03907 ./arch/jewel/pretty_emerald.111 \03908 ./arch/jewel/pretty_ruby.111 \03909 ./arch/jewel/pretty_sapphire.111 \03910 ./arch/player/class/Religious/priest.111 \03911 ./arch/player/class/Religious/priest.112 \03912 ./arch/player/class/Religious/priest.131 \03913 ./arch/player/class/Religious/priest.132 \03914 ./arch/player/class/Religious/priest.151 \03915 ./arch/player/class/Religious/priest.152 \03916 ./arch/player/class/Religious/priest.171 \03917 ./arch/player/class/Religious/priest.172 \03918 ./arch/player/class/Religious/priestnew.111 \03919 ./arch/player/class/Religious/priestnew.131 \03920 ./arch/player/class/Religious/priestnew.151 \03921 ./arch/player/class/Religious/priestnew.171 \03922 ./arch/monster/humanoid/Human/princess.111 \03923 ./arch/monster/humanoid/Human/princess.112 \03924 ./arch/monster/humanoid/Human/princess.113 \03925 ./arch/construct/town/prison.x11 \03926 ./arch/construct/town/prison_fant.x11 \03927 ./arch/monster/humanoid/Human/prisoner.111 \03928 ./arch/monster/humanoid/Human/prisoner.112 \03929 ./arch/spell/Change_Ability/protection.111 \03930 ./arch/spell/Change_Ability/protection.112 \03931 ./arch/spell/Change_Ability/protection.113 \03932 ./arch/spell/Change_Ability/protection.114 \03933 ./arch/spell/Change_Ability/protection.115 \03934 ./arch/spell/Change_Ability/protection.116 \03935 ./arch/spell/Change_Ability/protection.117 \03936 ./arch/ground/Pstone/pstone_1.111 \03937 ./arch/ground/smooth/pstone_1_S.111 \03938 ./arch/ground/Pstone/pstone_2.111 \03939 ./arch/ground/Pstone/pstone_3.111 \03940 ./arch/ground/Pstone/pstone_4.111 \03941 ./arch/ground/smooth/pstone_4_S.111 \03942 ./arch/ground/Pstone/pstone_5.111 \03943 ./arch/monster/animal/Dog/pup.131 \03944 ./arch/monster/animal/Dog/pup.132 \03945 ./arch/monster/animal/Dog/pup.133 \03946 ./arch/monster/animal/Dog/pup.171 \03947 ./arch/monster/animal/Dog/pup.172 \03948 ./arch/monster/animal/Dog/pup.173 \03949 ./arch/monster/animal/giant_worm/purple_worm.x31 \03950 ./arch/monster/animal/giant_worm/purple_worm.x71 \03951 ./arch/inorganic/pyrite.111 \03952 ./arch/spell/SpellBook/pyro_book.111 \03953 ./arch/monster/humanoid/pyro_gen.111 \03954 ./arch/monster/humanoid/pyromaniac.111 \03955 ./arch/monster/humanoid/pyromaniac.112 \03956 ./arch/monster/humanoid/pyromaniac.113 \03957 ./arch/monster/humanoid/pyromaniac.114 \03958 ./arch/monster/misc/quaathu/quaathu.x11 \03959 ./arch/monster/misc/quaathu/quaathu.x12 \03960 ./arch/weapon/club/quarters.111 \03961 ./arch/readable/quarto.111 \03962 ./arch/system/quests/quest_darcap_elemental.111 \03963 ./arch/system/quests/quest_darcap_temple_justice.111 \03964 ./arch/system/quests/quest_generic.111 \03965 ./arch/system/quests/quest_lake_country_undead_catacomb.111 \03966 ./arch/system/quests/quest_scorn_CoffeeGoose.111 \03967 ./arch/system/quests/quest_scorn_aristocracy.111 \03968 ./arch/system/quests/quest_scorn_gates.111 \03969 ./arch/system/quests/quest_scorn_hero.111 \03970 ./arch/system/quests/quest_scorn_kelthior.111 \03971 ./arch/player/race/quetzalcoatl.131 \03972 ./arch/player/race/quetzalcoatl.132 \03973 ./arch/player/race/quetzalcoatl.171 \03974 ./arch/player/race/quetzalcoatl.172 \03975 ./arch/ground/quicksilver_sea.111 \03976 ./arch/ground/quicksilver_sea.112 \03977 ./arch/ground/quicksilver_sea.113 \03978 ./arch/ground/quicksilver_sea.114 \03979 ./arch/ground/smooth/quicksilver_sea_S.111 \03980 ./arch/ground/smooth/quicksilver_sea_S.112 \03981 ./arch/ground/smooth/quicksilver_sea_S.113 \03982 ./arch/ground/smooth/quicksilver_sea_S.114 \03983 ./arch/misc/Container/quiver.111 \03984 ./arch/misc/r_foot.111 \03985 ./arch/construct/town/r_house1.111 \03986 ./arch/construct/town/r_house2.111 \03987 ./arch/misc/Container/r_sack.111 \03988 ./arch/monster/demon/raas.131 \03989 ./arch/monster/demon/raas.171 \03990 ./arch/ground/Weather/rain.111 \03991 ./arch/ground/Weather/rain.112 \03992 ./arch/ground/Weather/rain.113 \03993 ./arch/ground/Weather/rain.114 \03994 ./arch/ground/Weather/rain1.111 \03995 ./arch/ground/Weather/rain2.111 \03996 ./arch/ground/Weather/rain3.111 \03997 ./arch/ground/Weather/rain4.111 \03998 ./arch/ground/Weather/rain5.111 \03999 ./arch/random/randomArti.111 \04000 ./arch/random/randomBow.111 \04001 ./arch/random/randomFood.111 \04002 ./arch/random/randomGem.111 \04003 ./arch/random/randomMin.111 \04004 ./arch/random/randomPlt.111 \04005 ./arch/random/randomPoti.111 \04006 ./arch/random/randomRead.111 \04007 ./arch/random/randomScro.111 \04008 ./arch/random/randomShie.111 \04009 ./arch/random/randomSpel.111 \04010 ./arch/random/randomTali.111 \04011 ./arch/random/randomTrea.111 \04012 ./arch/random/randomWeal.111 \04013 ./arch/random/randomWeap.111 \04014 ./arch/random/random_tree_green.111 \04015 ./arch/weapon/sword/rapier.111 \04016 ./arch/monster/humanoid/Dragon/red_dragon2.151 \04017 ./arch/monster/humanoid/Dragon/red_dragon2.152 \04018 ./arch/monster/humanoid/Dragon/red_dragon2.171 \04019 ./arch/monster/humanoid/Dragon/red_dragon2.172 \04020 ./arch/wall/cwall-red/redcityport_0.111 \04021 ./arch/wall/cwall-red/redcityport_1.111 \04022 ./arch/wall/cwall-red/redcwall_0.111 \04023 ./arch/wall/cwall-red/redcwall_1.111 \04024 ./arch/wall/cwall-red/redcwall_2.111 \04025 ./arch/wall/cwall-red/redcwall_3.111 \04026 ./arch/wall/cwall-red/redcwall_4.111 \04027 ./arch/wall/cwall-red/redcwall_5.111 \04028 ./arch/wall/cwall-red/redcwall_6.111 \04029 ./arch/wall/cwall-red/redcwall_7.111 \04030 ./arch/wall/cwall-red/redcwall_8.111 \04031 ./arch/wall/cwall-red/redcwall_9.111 \04032 ./arch/wall/cwall-red/redcwall_A.111 \04033 ./arch/wall/cwall-red/redcwall_B.111 \04034 ./arch/wall/cwall-red/redcwall_C.111 \04035 ./arch/wall/cwall-red/redcwall_D.111 \04036 ./arch/wall/cwall-red/redcwall_E.111 \04037 ./arch/wall/cwall-red/redcwall_F.111 \04038 ./arch/wall/cwall-red/redcwall_w_0.111 \04039 ./arch/wall/cwall-red/redcwall_w_0.112 \04040 ./arch/wall/cwall-red/redcwall_w_0.113 \04041 ./arch/wall/cwall-red/redcwall_w_0.114 \04042 ./arch/wall/cwall-red/redcwall_w_0.115 \04043 ./arch/wall/cwall-red/redcwall_w_0.116 \04044 ./arch/wall/cwall-red/redcwall_w_0.117 \04045 ./arch/wall/cwall-red/redcwall_w_0.118 \04046 ./arch/wall/cwall-red/redcwall_w_0.119 \04047 ./arch/wall/cwall-red/redcwall_w_0.11A \04048 ./arch/wall/cwall-red/redcwall_w_1.111 \04049 ./arch/wall/cwall-red/redcwall_w_1.112 \04050 ./arch/wall/cwall-red/redcwall_w_1.113 \04051 ./arch/wall/cwall-red/redcwall_w_1.114 \04052 ./arch/wall/cwall-red/redcwall_w_1.115 \04053 ./arch/wall/cwall-red/redcwall_w_1.116 \04054 ./arch/wall/cwall-red/redcwall_w_1.117 \04055 ./arch/wall/cwall-red/redcwall_w_1.118 \04056 ./arch/wall/cwall-red/redcwall_w_1.119 \04057 ./arch/wall/cwall-red/redcwindow_0.111 \04058 ./arch/wall/cwall-red/redcwindow_1.111 \04059 ./arch/wall/cwall-red/redguard_ho_1.111 \04060 ./arch/wall/cwall-red/redguard_ho_2.111 \04061 ./arch/wall/cwall-red/redguard_ho_4.111 \04062 ./arch/wall/cwall-red/redguard_ho_8.111 \04063 ./arch/floor/redmarble.111 \04064 ./arch/armour/shield/reflector.111 \04065 ./arch/armour/shield/reflector.112 \04066 ./arch/armour/shield/reflector.113 \04067 ./arch/weapon/bow/reflexbow.111 \04068 ./arch/weapon/bow/reflexbow_bone.111 \04069 ./arch/flesh/misc/residue.111 \04070 ./arch/monster/angel/retributioner.x11 \04071 ./arch/talisman/ring.110 \04072 ./arch/talisman/ring.111 \04073 ./arch/talisman/ring.112 \04074 ./arch/talisman/ring.113 \04075 ./arch/talisman/ring.114 \04076 ./arch/talisman/ring.115 \04077 ./arch/talisman/ring.116 \04078 ./arch/talisman/ring.117 \04079 ./arch/talisman/ring_acid.111 \04080 ./arch/talisman/ring_acid.112 \04081 ./arch/talisman/ring_combat.117 \04082 ./arch/talisman/ring_doom.111 \04083 ./arch/talisman/ring_doom.112 \04084 ./arch/talisman/ring_drain.111 \04085 ./arch/talisman/ring_drain.112 \04086 ./arch/talisman/ring_drain.113 \04087 ./arch/talisman/ring_drain.114 \04088 ./arch/talisman/ring_fighting.117 \04089 ./arch/talisman/ring_fire.111 \04090 ./arch/talisman/ring_fire.112 \04091 ./arch/talisman/ring_green.111 \04092 ./arch/talisman/ring_ice.111 \04093 ./arch/talisman/ring_ice.112 \04094 ./arch/armour/mail/ring_mail.111 \04095 ./arch/armour/mail/ring_mail2.111 \04096 ./arch/talisman/ring_saint.111 \04097 ./arch/talisman/ring_saint.112 \04098 ./arch/talisman/ring_strife.117 \04099 ./arch/talisman/ring_war.117 \04100 ./arch/talisman/ring_woe.111 \04101 ./arch/talisman/ring_woe.112 \04102 ./arch/river/river_14.111 \04103 ./arch/river/river_15.111 \04104 ./arch/river/river_16.111 \04105 ./arch/river/river_25.111 \04106 ./arch/river/river_26.111 \04107 ./arch/river/river_26.211 \04108 ./arch/river/river_26.311 \04109 ./arch/river/river_27.111 \04110 ./arch/river/river_36.111 \04111 ./arch/river/river_37.111 \04112 ./arch/river/river_38.111 \04113 ./arch/river/river_47.111 \04114 ./arch/river/river_48.111 \04115 ./arch/river/river_48.211 \04116 ./arch/river/river_48.311 \04117 ./arch/river/river_58.111 \04118 ./arch/construct/town/rl_house1.x11 \04119 ./arch/construct/town/rl_house2.x11 \04120 ./arch/construct/town/rl_house3.x11 \04121 ./arch/construct/town/rl_house_west.x11 \04122 ./arch/food/roast_bird.111 \04123 ./arch/armour/mail/robe.111 \04124 ./arch/armour/mail/robe2.111 \04125 ./arch/armour/mail/robe_midnight.111 \04126 ./arch/armour/mail/robe_midnight.112 \04127 ./arch/armour/mail/robe_midnight.113 \04128 ./arch/misc/rock.111 \04129 ./arch/inorganic/rock2.111 \04130 ./arch/spell/Wand/rod_heavy.111 \04131 ./arch/spell/Wand/rod_heavy.112 \04132 ./arch/spell/Wand/rod_heavy.113 \04133 ./arch/spell/Wand/rod_light.111 \04134 ./arch/spell/Wand/rod_light.112 \04135 ./arch/spell/Wand/rod_light.113 \04136 ./arch/construct/roof/roof_1.111 \04137 ./arch/construct/roof/roof_1blue.111 \04138 ./arch/construct/roof/roof_1green.111 \04139 ./arch/construct/roof/roof_1red.111 \04140 ./arch/construct/roof/roof_2.111 \04141 ./arch/construct/roof/roof_2blue.111 \04142 ./arch/construct/roof/roof_2green.111 \04143 ./arch/construct/roof/roof_2red.111 \04144 ./arch/food/root.111 \04145 ./arch/food/rose_black.111 \04146 ./arch/food/rose_pink.111 \04147 ./arch/food/rose_red.111 \04148 ./arch/food/rose_wh.111 \04149 ./arch/food/rose_yel.111 \04150 ./arch/wall/rough/rough_0.111 \04151 ./arch/wall/rough/rough_1.111 \04152 ./arch/wall/rough/rough_2.111 \04153 ./arch/wall/rough/rough_3.111 \04154 ./arch/wall/rough/rough_4.111 \04155 ./arch/wall/rough/rough_5.111 \04156 ./arch/wall/rough/rough_6.111 \04157 ./arch/wall/rough/rough_7.111 \04158 ./arch/wall/rough/rough_8.111 \04159 ./arch/wall/rough/rough_9.111 \04160 ./arch/wall/rough/rough_A.111 \04161 ./arch/wall/rough/rough_B.111 \04162 ./arch/wall/rough/rough_C.111 \04163 ./arch/wall/rough/rough_D.111 \04164 ./arch/wall/rough/rough_E.111 \04165 ./arch/wall/rough/rough_F.111 \04166 ./arch/armour/shield/round_shiel.111 \04167 ./arch/transport/rowboat.x11 \04168 ./arch/ground/Pstone/rstone_3.111 \04169 ./arch/ground/Pstone/rstone_4.111 \04170 ./arch/misc/rubble1.111 \04171 ./arch/jewel/ruby.111 \04172 ./arch/jewel/ruby.112 \04173 ./arch/shop/ruby_converter.111 \04174 ./arch/jewel/ruby_exceptional.111 \04175 ./arch/jewel/ruby_flawless.111 \04176 ./arch/gods/elemental/ruggilli.x11 \04177 ./arch/gods/elemental/ruggilli.x12 \04178 ./arch/gods/elemental/ruggilli.x13 \04179 ./arch/construct/tower/ruined_tower.x11 \04180 ./arch/exit/ruins.111 \04181 ./arch/spell/Rune/rune_antimagic.111 \04182 ./arch/spell/Rune/rune_blast.111 \04183 ./arch/spell/Rune/rune_blightning.111 \04184 ./arch/spell/Rune/rune_bomb.111 \04185 ./arch/spell/Rune/rune_confusion.111 \04186 ./arch/spell/Rune/rune_death.111 \04187 ./arch/spell/Rune/rune_fire.111 \04188 ./arch/spell/Rune/rune_fireball.111 \04189 ./arch/spell/Rune/rune_frost.111 \04190 ./arch/spell/Rune/rune_heal.111 \04191 ./arch/spell/Rune/rune_lightning.111 \04192 ./arch/spell/Misc/rune_mark.111 \04193 ./arch/spell/Rune/rune_paralysis.111 \04194 ./arch/spell/Rune/rune_paralysis.112 \04195 ./arch/spell/Rune/rune_pcloud.111 \04196 ./arch/spell/Rune/rune_shock.111 \04197 ./arch/spell/Rune/rune_sp_res.111 \04198 ./arch/spell/Rune/rune_sum_earth.111 \04199 ./arch/spell/Rune/rune_sum_fire.111 \04200 ./arch/spell/Rune/rune_sum_water.111 \04201 ./arch/spell/Rune/rune_summon.111 \04202 ./arch/spell/Rune/rune_summon_air.111 \04203 ./arch/spell/Rune/rune_transfer.111 \04204 ./arch/monster/acid/rustmonste.131 \04205 ./arch/monster/acid/rustmonste.132 \04206 ./arch/monster/acid/rustmonste.171 \04207 ./arch/monster/acid/rustmonste.172 \04208 ./arch/construct/Snow/s_barn.x11 \04209 ./arch/construct/Snow/s_barrack_u.x11 \04210 ./arch/construct/Snow/s_barrack_u.x12 \04211 ./arch/road/s_bridge/s_bridge1.111 \04212 ./arch/road/s_bridge/s_bridge1a.111 \04213 ./arch/road/s_bridge/s_bridge1b.111 \04214 ./arch/road/s_bridge/s_bridge2.111 \04215 ./arch/road/s_bridge/s_bridge2a.111 \04216 ./arch/road/s_bridge/s_bridge2b.111 \04217 ./arch/construct/Snow/s_bungalow.111 \04218 ./arch/construct/Snow/s_castle.x11 \04219 ./arch/construct/Snow/s_church.x11 \04220 ./arch/construct/Snow/s_citytower.x11 \04221 ./arch/construct/Snow/s_guild.x11 \04222 ./arch/construct/town/s_house1.111 \04223 ./arch/construct/Snow/s_inn.x11 \04224 ./arch/construct/Snow/s_lighthouse.x11 \04225 ./arch/monster/elemental/Shadow/s_mastif.131 \04226 ./arch/monster/elemental/Shadow/s_mastif.132 \04227 ./arch/monster/elemental/Shadow/s_mastif.133 \04228 ./arch/monster/elemental/Shadow/s_mastif.171 \04229 ./arch/monster/elemental/Shadow/s_mastif.172 \04230 ./arch/monster/elemental/Shadow/s_mastif.173 \04231 ./arch/ground/Mountain/s_moun_cave.111 \04232 ./arch/ground/Mountain/s_mountain.111 \04233 ./arch/transport/s_ship.x11 \04234 ./arch/construct/town/s_shop1.111 \04235 ./arch/construct/town/s_shop2.111 \04236 ./arch/construct/tower/s_tower1.x11 \04237 ./arch/construct/tower/s_tower2.x11 \04238 ./arch/construct/tower/s_tower2_top.x11 \04239 ./arch/ground/Winter/s_tree_5.x11 \04240 ./arch/ground/Winter/s_tree_5_christmas.x11 \04241 ./arch/food/s_weasel.111 \04242 ./arch/monster/elemental/Shadow/s_wyvern.x31 \04243 ./arch/monster/elemental/Shadow/s_wyvern.x32 \04244 ./arch/monster/elemental/Shadow/s_wyvern.x71 \04245 ./arch/monster/elemental/Shadow/s_wyvern.x72 \04246 ./arch/weapon/sword/sabre.111 \04247 ./arch/misc/Container/sack.111 \04248 ./arch/monster/humanoid/Human/sage.111 \04249 ./arch/monster/humanoid/Human/sage.131 \04250 ./arch/monster/humanoid/Human/sage.151 \04251 ./arch/monster/humanoid/Human/sage.171 \04252 ./arch/weapon/misc/sai_1.111 \04253 ./arch/weapon/misc/sai_2.111 \04254 ./arch/monster/humanoid/Human/sailor.111 \04255 ./arch/inorganic/salt.111 \04256 ./arch/armour/boots/sandals.111 \04257 ./arch/monster/misc/sandy.111 \04258 ./arch/monster/misc/sandy.112 \04259 ./arch/monster/misc/sandy.113 \04260 ./arch/monster/misc/sandy.114 \04261 ./arch/monster/misc/sandy.115 \04262 ./arch/jewel/sapphire.111 \04263 ./arch/jewel/sapphire.112 \04264 ./arch/jewel/sapphire_exceptional.111 \04265 ./arch/jewel/sapphire_flawless.111 \04266 ./arch/misc/Container/sarcophagus.111 \04267 ./arch/weapon/other/saw.111 \04268 ./arch/armour/mail/scale_mail.111 \04269 ./arch/misc/Container/schest.111 \04270 ./arch/weapon/sword/scimitar.111 \04271 ./arch/monster/animal/scorpi_gen.111 \04272 ./arch/monster/animal/scorpion.111 \04273 ./arch/monster/animal/scorpion.112 \04274 ./arch/spell/Scroll/scroll.111 \04275 ./arch/readable/scroll_2.111 \04276 ./arch/skills/Skill_Scrolls/scroll_alchemy.111 \04277 ./arch/skills/Skill_Scrolls/scroll_bargaining.111 \04278 ./arch/skills/Skill_Scrolls/scroll_bowyer.111 \04279 ./arch/skills/Skill_Scrolls/scroll_climbing.111 \04280 ./arch/skills/Skill_Scrolls/scroll_disarm_traps.111 \04281 ./arch/skills/Skill_Scrolls/scroll_evocation.111 \04282 ./arch/skills/Skill_Scrolls/scroll_find_traps.111 \04283 ./arch/skills/Skill_Scrolls/scroll_hiding.111 \04284 ./arch/skills/Skill_Scrolls/scroll_jewelry.111 \04285 ./arch/skills/Skill_Scrolls/scroll_jumping.111 \04286 ./arch/skills/Skill_Scrolls/scroll_karate.111 \04287 ./arch/skills/Skill_Scrolls/scroll_literacy.111 \04288 ./arch/skills/Skill_Scrolls/scroll_missile_weapon.111 \04289 ./arch/skills/Skill_Scrolls/scroll_one_handed_weapon.111 \04290 ./arch/skills/Skill_Scrolls/scroll_oratory.111 \04291 ./arch/skills/Skill_Scrolls/scroll_praying.111 \04292 ./arch/skills/Skill_Scrolls/scroll_punching.111 \04293 ./arch/skills/Skill_Scrolls/scroll_pyromancy.111 \04294 ./arch/skills/Skill_Scrolls/scroll_sense_curse.111 \04295 ./arch/skills/Skill_Scrolls/scroll_sense_magic.111 \04296 ./arch/skills/Skill_Scrolls/scroll_set_traps.111 \04297 ./arch/skills/Skill_Scrolls/scroll_singing.111 \04298 ./arch/skills/Skill_Scrolls/scroll_smithing.111 \04299 ./arch/skills/Skill_Scrolls/scroll_sorcery.111 \04300 ./arch/skills/Skill_Scrolls/scroll_stealing.111 \04301 ./arch/skills/Skill_Scrolls/scroll_summoning.111 \04302 ./arch/skills/Skill_Scrolls/scroll_thaumaturgy.111 \04303 ./arch/skills/Skill_Scrolls/scroll_throwing.111 \04304 ./arch/skills/Skill_Scrolls/scroll_two_handed_weapon.111 \04305 ./arch/skills/Skill_Scrolls/scroll_use_magic_item.111 \04306 ./arch/skills/Skill_Scrolls/scroll_woodsman.111 \04307 ./arch/readable/scrollr.111 \04308 ./arch/weapon/misc/scythe_1.111 \04309 ./arch/connect/Doors/sdoor.111 \04310 ./arch/connect/Doors/sdoor.112 \04311 ./arch/connect/Doors/sdoor.113 \04312 ./arch/connect/Doors/sdoor.114 \04313 ./arch/ground/sea.111 \04314 ./arch/ground/sea.112 \04315 ./arch/ground/sea.113 \04316 ./arch/ground/sea.114 \04317 ./arch/ground/sea_7.111 \04318 ./arch/ground/sea_B.111 \04319 ./arch/ground/sea_D.111 \04320 ./arch/ground/sea_E.111 \04321 ./arch/ground/sea_F.111 \04322 ./arch/ground/smooth/sea_S.111 \04323 ./arch/ground/smooth/sea_S.112 \04324 ./arch/ground/smooth/sea_S.113 \04325 ./arch/ground/smooth/sea_S.114 \04326 ./arch/ground/sea_ne.111 \04327 ./arch/ground/sea_nw.111 \04328 ./arch/ground/sea_se.111 \04329 ./arch/ground/sea_sw.111 \04330 ./arch/armour/cloak/serp_cloak.111 \04331 ./arch/monster/misc/serpmen/serp_man.131 \04332 ./arch/monster/misc/serpmen/serp_man.132 \04333 ./arch/monster/misc/serpmen/serp_man.171 \04334 ./arch/monster/misc/serpmen/serp_man.172 \04335 ./arch/monster/misc/serpmen/serp_priest.131 \04336 ./arch/monster/misc/serpmen/serp_priest.171 \04337 ./arch/weapon/sword/serp_sword.111 \04338 ./arch/monster/giant/serpent/serpent.x31 \04339 ./arch/monster/giant/serpent/serpent.x32 \04340 ./arch/monster/giant/serpent/serpent.x71 \04341 ./arch/monster/giant/serpent/serpent.x72 \04342 ./arch/flesh/misc/serpent_skin.111 \04343 ./arch/player/race/serpentman.111 \04344 ./arch/player/race/serpentman.112 \04345 ./arch/player/race/serpentman.131 \04346 ./arch/player/race/serpentman.132 \04347 ./arch/player/race/serpentman.151 \04348 ./arch/player/race/serpentman.152 \04349 ./arch/player/race/serpentman.171 \04350 ./arch/player/race/serpentman.172 \04351 ./arch/monster/misc/serpmen/serpman_gen.111 \04352 ./arch/exit/sewer_access.111 \04353 ./arch/exit/sewer_access.112 \04354 ./arch/floor/sewerfloor.111 \04355 ./arch/weapon/chained/sflail_1.111 \04356 ./arch/ground/smooth/sgrass.111 \04357 ./arch/ground/smooth/sgrass_S.111 \04358 ./arch/monster/elemental/Shadow/shadow.111 \04359 ./arch/monster/elemental/Shadow/shadow.112 \04360 ./arch/monster/dragon/Shadow_Dra/shadow_dragon.x31 \04361 ./arch/monster/dragon/Shadow_Dra/shadow_dragon.x61 \04362 ./arch/monster/animal/shadowtiger/shadowtiger.x31 \04363 ./arch/monster/animal/shadowtiger/shadowtiger.x32 \04364 ./arch/monster/animal/shadowtiger/shadowtiger.x33 \04365 ./arch/monster/animal/shadowtiger/shadowtiger.x34 \04366 ./arch/monster/animal/shadowtiger/shadowtiger.x71 \04367 ./arch/monster/animal/shadowtiger/shadowtiger.x72 \04368 ./arch/monster/animal/shadowtiger/shadowtiger.x73 \04369 ./arch/monster/animal/shadowtiger/shadowtiger.x74 \04370 ./arch/ground/shallow_sea.111 \04371 ./arch/ground/shallow_sea.112 \04372 ./arch/ground/shallow_sea.113 \04373 ./arch/ground/shallow_sea.114 \04374 ./arch/ground/smooth/shallow_sea_S.111 \04375 ./arch/ground/smooth/shallow_sea_S.112 \04376 ./arch/ground/smooth/shallow_sea_S.113 \04377 ./arch/ground/smooth/shallow_sea_S.114 \04378 ./arch/weapon/axe/shaxe_1.111 \04379 ./arch/monster/animal/farmyard/sheep.131 \04380 ./arch/monster/animal/farmyard/sheep.171 \04381 ./arch/flesh/misc/sheepskin.111 \04382 ./arch/spell/Bullet/Shell/shell.111 \04383 ./arch/spell/Bullet/Shell/shell.112 \04384 ./arch/spell/Bullet/Shell/shell.121 \04385 ./arch/spell/Bullet/Shell/shell.131 \04386 ./arch/spell/Bullet/Shell/shell.141 \04387 ./arch/spell/Bullet/Shell/shell.151 \04388 ./arch/spell/Bullet/Shell/shell.161 \04389 ./arch/spell/Bullet/Shell/shell.171 \04390 ./arch/spell/Bullet/Shell/shell.181 \04391 ./arch/spell/Wand/shellhorn1.111 \04392 ./arch/spell/Wand/shellhorn2.111 \04393 ./arch/armour/shield/shield.111 \04394 ./arch/armour/shield/shield2.111 \04395 ./arch/armour/gauntlets/shining_finger.111 \04396 ./arch/armour/gauntlets/shining_finger.112 \04397 ./arch/misc/shipswheel.111 \04398 ./arch/weapon/chained/shootingstar.111 \04399 ./arch/shop/Floors/shop_alchemy.111 \04400 ./arch/shop/Floors/shop_amule.111 \04401 ./arch/shop/Floors/shop_armou.111 \04402 ./arch/shop/Floors/shop_books.111 \04403 ./arch/mapbuilding/shop_building.111 \04404 ./arch/shop/Floors/shop_empty.111 \04405 ./arch/shop/Floors/shop_food.111 \04406 ./arch/shop/Floors/shop_gems.111 \04407 ./arch/shop/Floors/shop_gener.111 \04408 ./arch/shop/Floors/shop_mat.111 \04409 ./arch/shop/Floors/shop_mineral.111 \04410 ./arch/shop/Floors/shop_potio.111 \04411 ./arch/shop/Floors/shop_ring.111 \04412 ./arch/shop/Floors/shop_scrol.111 \04413 ./arch/shop/Floors/shop_speci.111 \04414 ./arch/shop/Floors/shop_throw.111 \04415 ./arch/shop/Floors/shop_wands.111 \04416 ./arch/shop/Floors/shop_weapo.111 \04417 ./arch/weapon/misc/shovel_1.111 \04418 ./arch/weapon/misc/shovel_1.112 \04419 ./arch/weapon/misc/shovel_1.113 \04420 ./arch/weapon/misc/shovel_1.114 \04421 ./arch/weapon/misc/shovel_1.115 \04422 ./arch/construct/temple/shrine.111 \04423 ./arch/construct/temple/shrine_east.x11 \04424 ./arch/construct/temple/shrine_east_r.x11 \04425 ./arch/weapon/misc/sickle_1.111 \04426 ./arch/weapon/sword/sicklesword.111 \04427 ./arch/monster/humanoid/siegfried.111 \04428 ./arch/monster/humanoid/siegfried.112 \04429 ./arch/readable/sign.111 \04430 ./arch/readable/sign_e.111 \04431 ./arch/readable/sign_w.111 \04432 ./arch/shop/silver_converter.111 \04433 ./arch/jewel/silverbar.111 \04434 ./arch/jewel/silverblock.111 \04435 ./arch/jewel/silvercoin.111 \04436 ./arch/jewel/silverround.111 \04437 ./arch/monster/undead/Skeletal_mage/skeletalmage.111 \04438 ./arch/monster/undead/Skeletal_mage/skeletalmage.112 \04439 ./arch/monster/undead/Skeletal_mage/skeletalmage.113 \04440 ./arch/monster/undead/skeleton.111 \04441 ./arch/monster/undead/skeleton.112 \04442 ./arch/monster/undead/skeleton_chief.111 \04443 ./arch/monster/undead/skeleton_leader.111 \04444 ./arch/flesh/human/skin.111 \04445 ./arch/monster/undead/skree/skree.x31 \04446 ./arch/monster/undead/skree/skree.x32 \04447 ./arch/monster/undead/skree/skree.x33 \04448 ./arch/monster/undead/skree/skree.x71 \04449 ./arch/monster/undead/skree/skree.x72 \04450 ./arch/monster/undead/skree/skree.x73 \04451 ./arch/monster/undead/skree/skree_claw.111 \04452 ./arch/monster/undead/skull.111 \04453 ./arch/monster/undead/skull.112 \04454 ./arch/monster/undead/skull_gen.111 \04455 ./arch/weapon/artifact/skullcleav.111 \04456 ./arch/weapon/artifact/skullcleav.112 \04457 ./arch/weapon/artifact/skullcleav.113 \04458 ./arch/weapon/artifact/skullcleav.114 \04459 ./arch/misc/sky/sky.111 \04460 ./arch/ground/sky/sky.x11 \04461 ./arch/floor/slate_b.111 \04462 ./arch/floor/slate_r.111 \04463 ./arch/floor/slate_w.111 \04464 ./arch/monster/humanoid/Arabic/slave.111 \04465 ./arch/system/mood_floors/sleep_floor.111 \04466 ./arch/wall/slevel/slevel_0.111 \04467 ./arch/wall/slevel/slevel_1.111 \04468 ./arch/wall/slevel/slevel_2.111 \04469 ./arch/wall/slevel/slevel_3.111 \04470 ./arch/wall/slevel/slevel_4.111 \04471 ./arch/wall/slevel/slevel_5.111 \04472 ./arch/wall/slevel/slevel_6.111 \04473 ./arch/wall/slevel/slevel_7.111 \04474 ./arch/wall/slevel/slevel_8.111 \04475 ./arch/wall/slevel/slevel_9.111 \04476 ./arch/wall/slevel/slevel_A.111 \04477 ./arch/wall/slevel/slevel_B.111 \04478 ./arch/wall/slevel/slevel_C.111 \04479 ./arch/wall/slevel/slevel_D.111 \04480 ./arch/wall/slevel/slevel_E.111 \04481 ./arch/wall/slevel/slevel_F.111 \04482 ./arch/misc/slicingknife.111 \04483 ./arch/monster/acid/slime.111 \04484 ./arch/monster/acid/slime.112 \04485 ./arch/monster/acid/slime.113 \04486 ./arch/monster/acid/slimecrawler/slimecrawler.111 \04487 ./arch/monster/acid/slimecrawler/slimecrawler.112 \04488 ./arch/monster/acid/slimecrawler/slimecrawler.113 \04489 ./arch/connect/Casino/slotmachine1.111 \04490 ./arch/connect/Casino/slotmachine1.112 \04491 ./arch/connect/Casino/slotmachine2.111 \04492 ./arch/connect/Casino/slotmachine2.112 \04493 ./arch/connect/Casino/slotmachine3.111 \04494 ./arch/connect/Casino/slotmachine3.112 \04495 ./arch/spell/Cone/slow.111 \04496 ./arch/spell/Cone/slow.112 \04497 ./arch/spell/Cone/slow.113 \04498 ./arch/monster/giant/slug/slug.x31 \04499 ./arch/monster/giant/slug/slug.x32 \04500 ./arch/monster/giant/slug/slug.x71 \04501 ./arch/monster/giant/slug/slug.x72 \04502 ./arch/monster/giant/slug/slug_slime.111 \04503 ./arch/construct/town/slum1.x11 \04504 ./arch/construct/town/slum2.x11 \04505 ./arch/construct/town/slum3.x11 \04506 ./arch/armour/shield/small_shie.111 \04507 ./arch/misc/smallicecube.111 \04508 ./arch/exit/smallpark.111 \04509 ./arch/ground/Stone/smallstone.111 \04510 ./arch/monster/troll/smallt_green.111 \04511 ./arch/monster/troll/smallt_green.112 \04512 ./arch/construct/house/smalltemple.111 \04513 ./arch/construct/house/smalltemple2.111 \04514 ./arch/monster/troll/smalltroll.111 \04515 ./arch/monster/troll/smalltroll.112 \04516 ./arch/shop/smith.111 \04517 ./arch/monster/animal/snake.111 \04518 ./arch/monster/animal/snake.112 \04519 ./arch/monster/animal/snake.113 \04520 ./arch/ground/Winter/snow.111 \04521 ./arch/ground/Winter/snow2.111 \04522 ./arch/ground/Winter/snow3.111 \04523 ./arch/ground/Winter/snow4.111 \04524 ./arch/ground/Winter/snow5.111 \04525 ./arch/ground/smooth/snow5_S.111 \04526 ./arch/ground/Weather/snow_c.111 \04527 ./arch/ground/Weather/snow_c.112 \04528 ./arch/ground/Weather/snow_c.113 \04529 ./arch/ground/Weather/snow_c.114 \04530 ./arch/spell/Bullet/snowball.111 \04531 ./arch/spell/Bullet/snowball.121 \04532 ./arch/spell/Bullet/snowball.131 \04533 ./arch/spell/Bullet/snowball.141 \04534 ./arch/spell/Bullet/snowball.151 \04535 ./arch/spell/Bullet/snowball.161 \04536 ./arch/spell/Bullet/snowball.171 \04537 ./arch/spell/Bullet/snowball.181 \04538 ./arch/ground/Winter/snowroad.111 \04539 ./arch/ground/Winter/snowroad2.111 \04540 ./arch/player/class/Wizardry/sorcerer.111 \04541 ./arch/player/class/Wizardry/sorcerer.112 \04542 ./arch/player/class/Wizardry/sorcerer.131 \04543 ./arch/player/class/Wizardry/sorcerer.132 \04544 ./arch/player/class/Wizardry/sorcerer.151 \04545 ./arch/player/class/Wizardry/sorcerer.152 \04546 ./arch/player/class/Wizardry/sorcerer.171 \04547 ./arch/player/class/Wizardry/sorcerer.172 \04548 ./arch/spell/SpellBook/sorcerer_book.111 \04549 ./arch/ground/Winter/spalm.111 \04550 ./arch/ground/Winter/spalms1.111 \04551 ./arch/ground/Winter/spalms2.111 \04552 ./arch/spell/Cone/sparkshower.111 \04553 ./arch/spell/Cone/sparkshower.112 \04554 ./arch/spell/Cone/sparkshower.113 \04555 ./arch/weapon/misc/spear.101 \04556 ./arch/weapon/misc/spear.111 \04557 ./arch/weapon/misc/spear.121 \04558 ./arch/weapon/misc/spear.131 \04559 ./arch/weapon/misc/spear.141 \04560 ./arch/weapon/misc/spear.151 \04561 ./arch/weapon/misc/spear.161 \04562 ./arch/weapon/misc/spear.171 \04563 ./arch/weapon/misc/spear.181 \04564 ./arch/gods/items/spear_ixalovh.111 \04565 ./arch/gods/items/spear_ixalovh.112 \04566 ./arch/gods/items/spear_ixalovh.113 \04567 ./arch/monster/undead/spectre.111 \04568 ./arch/spell/SummonMonster/speedball.111 \04569 ./arch/spell/SummonMonster/speedball.112 \04570 ./arch/armour/boots/speedboots.111 \04571 ./arch/armour/boots/speedboots.112 \04572 ./arch/armour/boots/speedboots.113 \04573 ./arch/wall/speedbwall/speedbwall.111 \04574 ./arch/wall/speedbwall/speedbwall.112 \04575 ./arch/spell/MoodChange/spell_aggravation.111 \04576 ./arch/spell/Misc/spell_alchemy.111 \04577 ./arch/spell/AnimateWeapon/spell_animate_weapon.111 \04578 ./arch/spell/Rune/spell_antimagic_rune.111 \04579 ./arch/spell/Change_Ability/spell_armour.111 \04580 ./arch/spell/Bullet/spell_asteroid.111 \04581 ./arch/spell/MovingBall/spell_ball_lightning.111 \04582 ./arch/spell/Cone/spell_banishment.111 \04583 ./arch/spell/BlessCurse/spell_bless.111 \04584 ./arch/spell/MagicWall/spell_build_bullet_wall.111 \04585 ./arch/spell/MagicWall/spell_build_director.111 \04586 ./arch/spell/MagicWall/spell_build_fireball_wall.111 \04587 ./arch/spell/MagicWall/spell_build_lightning_wall.111 \04588 ./arch/spell/Swarm/spell_bullet_storm.111 \04589 ./arch/spell/Swarm/spell_bullet_swarm.111 \04590 ./arch/spell/Cone/spell_burning_hands.111 \04591 ./arch/spell/Golem/spell_call_holy_servant.111 \04592 ./arch/spell/Bolt/spell_cancellation.111 \04593 ./arch/spell/Disease/spell_cause_anthrax.111 \04594 ./arch/spell/Disease/spell_cause_black_death.111 \04595 ./arch/spell/Disease/spell_cause_cold.111 \04596 ./arch/spell/Bullet/spell_cause_critical_wounds.111 \04597 ./arch/spell/Disease/spell_cause_flu.111 \04598 ./arch/spell/Bullet/spell_cause_heavy_wounds.111 \04599 ./arch/spell/Disease/spell_cause_leprosy.111 \04600 ./arch/spell/Bullet/spell_cause_light_wounds.111 \04601 ./arch/spell/Swarm/spell_cause_many_wounds.111 \04602 ./arch/spell/Bullet/spell_cause_medium_wounds.111 \04603 ./arch/spell/Disease/spell_cause_rabies.111 \04604 ./arch/spell/Disease/spell_cause_red_death.111 \04605 ./arch/spell/Disease/spell_cause_smallpox.111 \04606 ./arch/spell/Disease/spell_cause_typhoid.111 \04607 ./arch/spell/Disease/spell_cause_white_death.111 \04608 ./arch/spell/Misc/spell_charging.111 \04609 ./arch/spell/Change_Ability/spell_charisma.111 \04610 ./arch/spell/MoodChange/spell_charm_monsters.111 \04611 ./arch/spell/Cone/spell_color_spray.111 \04612 ./arch/spell/Bullet/spell_comet.111 \04613 ./arch/spell/MoodChange/spell_command_undead.111 \04614 ./arch/spell/MoodChange/spell_conflict.111 \04615 ./arch/spell/Change_Ability/spell_confusion.111 \04616 ./arch/spell/Misc/spell_consecrate.111 \04617 ./arch/spell/Change_Ability/spell_constitution.111 \04618 ./arch/spell/Cone/spell_counterspell.111 \04619 ./arch/spell/MagicWall/spell_counterwall.111 \04620 ./arch/spell/Bomb/spell_create_bomb.111 \04621 ./arch/spell/MagicWall/spell_create_earth_wall.111 \04622 ./arch/spell/MagicWall/spell_create_fire_wall.111 \04623 ./arch/spell/Misc/spell_create_food.111 \04624 ./arch/spell/MagicWall/spell_create_frost_wall.111 \04625 ./arch/spell/Misc/spell_create_missile.111 \04626 ./arch/spell/MagicWall/spell_create_pool_of_chaos.111 \04627 ./arch/spell/Healing/spell_cure_blindness.111 \04628 ./arch/spell/Healing/spell_cure_confusion.111 \04629 ./arch/spell/Healing/spell_cure_disease.111 \04630 ./arch/spell/Healing/spell_cure_poison.111 \04631 ./arch/spell/BlessCurse/spell_curse.111 \04632 ./arch/spell/Golem/spell_dancing_sword.111 \04633 ./arch/spell/Change_Ability/spell_dark_vision.111 \04634 ./arch/spell/MagicWall/spell_darkness.111 \04635 ./arch/spell/Misc/spell_daylight.111 \04636 ./arch/spell/Change_Ability/spell_defense.111 \04637 ./arch/spell/Misc/spell_destruction.111 \04638 ./arch/spell/Detect/spell_detect_curse.111 \04639 ./arch/spell/Detect/spell_detect_evil.111 \04640 ./arch/spell/Detect/spell_detect_magic.111 \04641 ./arch/spell/Detect/spell_detect_monster.111 \04642 ./arch/spell/Change_Ability/spell_dexterity.111 \04643 ./arch/spell/Misc/spell_dimension_door.111 \04644 ./arch/spell/Misc/spell_disarm.111 \04645 ./arch/spell/MovingBall/spell_divine_shock.111 \04646 ./arch/spell/Cone/spell_dragonbreath.111 \04647 ./arch/spell/Misc/spell_earth_to_dust.111 \04648 ./arch/spell/spell_evocation.111 \04649 ./arch/spell/Cone/spell_face_of_death.111 \04650 ./arch/spell/Misc/spell_faery_fire.111 \04651 ./arch/spell/Cone/spell_fear.111 \04652 ./arch/spell/Smite/spell_finger_of_death.111 \04653 ./arch/spell/Bolt/spell_firebolt.111 \04654 ./arch/spell/Rune/spell_firetrap.111 \04655 ./arch/spell/Aura/spell_flaming_aura.111 \04656 ./arch/spell/Bolt/spell_forked_lightning.111 \04657 ./arch/spell/Bolt/spell_frostbolt.111 \04658 ./arch/spell/Rune/spell_glyph.111 \04659 ./arch/spell/Change_Ability/spell_haste.111 \04660 ./arch/spell/Healing/spell_heal.111 \04661 ./arch/spell/Bullet/spell_hellfire.111 \04662 ./arch/spell/Change_Ability/spell_heroism.111 \04663 ./arch/spell/Bullet/spell_holy_orb.111 \04664 ./arch/spell/BlessCurse/spell_holy_possession.111 \04665 ./arch/spell/Cone/spell_holy_word.111 \04666 ./arch/spell/Smite/spell_holy_wrath.111 \04667 ./arch/spell/Cone/spell_icestorm.111 \04668 ./arch/spell/Misc/spell_identify.111 \04669 ./arch/spell/Misc/spell_improved_invisibility.111 \04670 ./arch/spell/Smite/spell_insect_plague.111 \04671 ./arch/spell/Misc/spell_invisible.111 \04672 ./arch/spell/Misc/spell_invisible_to_undead.111 \04673 ./arch/spell/Change_Ability/spell_iron_skin.111 \04674 ./arch/spell/Bullet/spell_large_fireball.111 \04675 ./arch/spell/Cone/spell_large_icestorm.111 \04676 ./arch/spell/Bolt/spell_large_lightning.111 \04677 ./arch/spell/Bullet/spell_large_manaball.111 \04678 ./arch/spell/Bullet/spell_large_snowstorm.111 \04679 ./arch/spell/SummonMonster/spell_large_speedball.111 \04680 ./arch/spell/Golem/spell_lesser_golem.111 \04681 ./arch/spell/Change_Ability/spell_levitate.111 \04682 ./arch/spell/Bullet/spell_lg_magic_bullet.111 \04683 ./arch/spell/Misc/spell_light.111 \04684 ./arch/spell/Bullet/spell_magic_bullet.111 \04685 ./arch/spell/Misc/spell_magic_drain.111 \04686 ./arch/spell/Misc/spell_magic_mapping.111 \04687 ./arch/spell/MagicMissile/spell_magic_missile.111 \04688 ./arch/spell/Rune/spell_magic_rune.111 \04689 ./arch/spell/Healing/spell_major_healing.111 \04690 ./arch/spell/Cone/spell_mana_blast.111 \04691 ./arch/spell/Bolt/spell_manabolt.111 \04692 ./arch/spell/Misc/spell_marking_rune.111 \04693 ./arch/spell/Cone/spell_mass_confusion.111 \04694 ./arch/spell/Bullet/spell_medium_fireball.111 \04695 ./arch/spell/Healing/spell_medium_healing.111 \04696 ./arch/spell/Bullet/spell_medium_manaball.111 \04697 ./arch/spell/Bullet/spell_medium_snowstorm.111 \04698 ./arch/spell/Swarm/spell_meteor_swarm.111 \04699 ./arch/spell/Healing/spell_minor_healing.111 \04700 ./arch/spell/Swarm/spell_missile_swarm.111 \04701 ./arch/spell/Golem/spell_mystic_fist.111 \04702 ./arch/spell/spell_necromancy.111 \04703 ./arch/spell/Misc/spell_nightfall.111 \04704 ./arch/spell/MoodChange/spell_pacify.111 \04705 ./arch/spell/Cone/spell_paralyze.111 \04706 ./arch/spell/Cone/spell_peace.111 \04707 ./arch/spell/Rune/spell_pentagram.111 \04708 ./arch/spell/Misc/spell_perceive_self.111 \04709 ./arch/spell/Bullet/spell_poison_cloud.111 \04710 ./arch/spell/MovingBall/spell_poison_fog.111 \04711 ./arch/spell/Misc/spell_polymorph.111 \04712 ./arch/spell/spell_praying.111 \04713 ./arch/spell/Misc/spell_probe.111 \04714 ./arch/spell/Change_Ability/spell_protection_from_attack.111 \04715 ./arch/spell/Change_Ability/spell_protection_from_cancellation.111 \04716 ./arch/spell/Change_Ability/spell_protection_from_cold.111 \04717 ./arch/spell/Change_Ability/spell_protection_from_confusion.111 \04718 ./arch/spell/Change_Ability/spell_protection_from_depletion.111 \04719 ./arch/spell/Change_Ability/spell_protection_from_draining.111 \04720 ./arch/spell/Change_Ability/spell_protection_from_electricity.111 \04721 ./arch/spell/Change_Ability/spell_protection_from_fire.111 \04722 ./arch/spell/Change_Ability/spell_protection_from_magic.111 \04723 ./arch/spell/Change_Ability/spell_protection_from_paralysis.111 \04724 ./arch/spell/Change_Ability/spell_protection_from_poison.111 \04725 ./arch/spell/Change_Ability/spell_protection_from_slow.111 \04726 ./arch/spell/spell_pyromancy.111 \04727 ./arch/spell/Change_Ability/spell_rage.111 \04728 ./arch/spell/RaiseDead/spell_raise_dead.111 \04729 ./arch/spell/Healing/spell_regenerate_spellpoints.111 \04730 ./arch/spell/Change_Ability/spell_regeneration.111 \04731 ./arch/spell/RaiseDead/spell_reincarnation.111 \04732 ./arch/spell/Misc/spell_remove_curse.111 \04733 ./arch/spell/Misc/spell_remove_damnation.111 \04734 ./arch/spell/Healing/spell_restoration.111 \04735 ./arch/spell/RaiseDead/spell_resurrection.111 \04736 ./arch/spell/Smite/spell_retributive_strike.111 \04737 ./arch/spell/Rune/spell_rune_of_blasting.111 \04738 ./arch/spell/Rune/spell_rune_of_death.111 \04739 ./arch/spell/Rune/spell_rune_of_fire.111 \04740 ./arch/spell/Rune/spell_rune_of_frost.111 \04741 ./arch/spell/Rune/spell_rune_of_magic_drain.111 \04742 ./arch/spell/Rune/spell_rune_of_shocking.111 \04743 ./arch/spell/Rune/spell_rune_of_transference.111 \04744 ./arch/spell/Aura/spell_sanctuary.111 \04745 ./arch/spell/Cone/spell_shockwave.111 \04746 ./arch/spell/Detect/spell_show_invisible.111 \04747 ./arch/spell/Rune/spell_sigil.111 \04748 ./arch/spell/Cone/spell_slow.111 \04749 ./arch/spell/Bullet/spell_sm_bullet.111 \04750 ./arch/spell/Bolt/spell_sm_lightning.111 \04751 ./arch/spell/Bullet/spell_small_fireball.111 \04752 ./arch/spell/Bullet/spell_small_manaball.111 \04753 ./arch/spell/Bullet/spell_small_snowstorm.111 \04754 ./arch/spell/SummonMonster/spell_small_speedball.111 \04755 ./arch/spell/spell_sorcery.111 \04756 ./arch/spell/Cone/spell_spark_shower.111 \04757 ./arch/spell/Cone/spell_spiderweb.111 \04758 ./arch/spell/AnimateWeapon/spell_staff_to_snake.111 \04759 ./arch/spell/Bolt/spell_steambolt.111 \04760 ./arch/spell/Change_Ability/spell_strength.111 \04761 ./arch/spell/Golem/spell_summon_air_elemental.111 \04762 ./arch/spell/Golem/spell_summon_avatar.111 \04763 ./arch/spell/SummonMonster/spell_summon_cult_monsters.111 \04764 ./arch/spell/Golem/spell_summon_devil.111 \04765 ./arch/spell/Golem/spell_summon_earth_elemental.111 \04766 ./arch/spell/Golem/spell_summon_fire_elemental.111 \04767 ./arch/spell/SummonMonster/spell_summon_fog.111 \04768 ./arch/spell/Golem/spell_summon_golem.111 \04769 ./arch/spell/SummonMonster/spell_summon_pet_monster.111 \04770 ./arch/spell/Golem/spell_summon_water_elemental.111 \04771 ./arch/spell/spell_summoner.111 \04772 ./arch/spell/Bolt/spell_sunspear.111 \04773 ./arch/spell/TownPortal/spell_town_portal.111 \04774 ./arch/spell/Misc/spell_transference.111 \04775 ./arch/spell/Cone/spell_turn_undead.111 \04776 ./arch/spell/Bullet/spell_vitriol.111 \04777 ./arch/spell/Cone/spell_vitriol_splash.111 \04778 ./arch/spell/MagicWall/spell_wall_of_thorns.111 \04779 ./arch/spell/Cone/spell_wave.111 \04780 ./arch/spell/Cone/spell_windstorm.111 \04781 ./arch/spell/Cone/spell_wonder.111 \04782 ./arch/spell/Misc/spell_word_of_recall.111 \04783 ./arch/spell/Cone/spell_wrathful_eye.111 \04784 ./arch/spell/Change_Ability/spell_xray.111 \04785 ./arch/monster/misc/sphinx.x31 \04786 ./arch/monster/misc/sphinx.x71 \04787 ./arch/monster/insect/spider/spider.111 \04788 ./arch/monster/insect/spider/spider.112 \04789 ./arch/monster/insect/spider/spider.113 \04790 ./arch/monster/insect/spider/spider.114 \04791 ./arch/monster/insect/spider/spider.121 \04792 ./arch/monster/insect/spider/spider.122 \04793 ./arch/monster/insect/spider/spider.123 \04794 ./arch/monster/insect/spider/spider.124 \04795 ./arch/monster/insect/spider/spider.131 \04796 ./arch/monster/insect/spider/spider.132 \04797 ./arch/monster/insect/spider/spider.133 \04798 ./arch/monster/insect/spider/spider.134 \04799 ./arch/monster/insect/spider/spider.141 \04800 ./arch/monster/insect/spider/spider.142 \04801 ./arch/monster/insect/spider/spider.143 \04802 ./arch/monster/insect/spider/spider.144 \04803 ./arch/monster/insect/spider/spider.151 \04804 ./arch/monster/insect/spider/spider.152 \04805 ./arch/monster/insect/spider/spider.153 \04806 ./arch/monster/insect/spider/spider.154 \04807 ./arch/monster/insect/spider/spider.161 \04808 ./arch/monster/insect/spider/spider.162 \04809 ./arch/monster/insect/spider/spider.163 \04810 ./arch/monster/insect/spider/spider.164 \04811 ./arch/monster/insect/spider/spider.171 \04812 ./arch/monster/insect/spider/spider.172 \04813 ./arch/monster/insect/spider/spider.173 \04814 ./arch/monster/insect/spider/spider.174 \04815 ./arch/monster/insect/spider/spider.181 \04816 ./arch/monster/insect/spider/spider.182 \04817 ./arch/monster/insect/spider/spider.183 \04818 ./arch/monster/insect/spider/spider.184 \04819 ./arch/monster/insect/spider/spider_web.111 \04820 ./arch/monster/insect/spider/spider_web.112 \04821 ./arch/connect/Gates/spike.110 \04822 ./arch/connect/Gates/spike.111 \04823 ./arch/connect/Gates/spike.112 \04824 ./arch/connect/Gates/spike.113 \04825 ./arch/connect/Gates/spike.114 \04826 ./arch/connect/Gates/spike.115 \04827 ./arch/connect/Gates/spike.116 \04828 ./arch/connect/Gates/spike.117 \04829 ./arch/connect/Gates/spike.118 \04830 ./arch/connect/Gates/spike.119 \04831 ./arch/connect/Gates/spike.120 \04832 ./arch/connect/Gates/spike.121 \04833 ./arch/connect/Gates/spike.122 \04834 ./arch/traps/spiked_pit.111 \04835 ./arch/armour/shield/spiked_shield.111 \04836 ./arch/connect/Gates/spikes.110 \04837 ./arch/connect/Gates/spikes.111 \04838 ./arch/connect/Gates/spikes.112 \04839 ./arch/connect/Gates/spikes.113 \04840 ./arch/connect/Gates/spikes.114 \04841 ./arch/connect/Gates/spikes.115 \04842 ./arch/connect/Gates/spikes.116 \04843 ./arch/connect/Gates/spikes.117 \04844 ./arch/connect/Gates/spikes.118 \04845 ./arch/connect/Gates/spikes.119 \04846 ./arch/connect/Spinner/spinner.111 \04847 ./arch/connect/Spinner/spinner.112 \04848 ./arch/connect/Spinner/spinner.113 \04849 ./arch/connect/Spinner/spinner.114 \04850 ./arch/connect/Spinner/spinner.115 \04851 ./arch/connect/Spinner/spinner.116 \04852 ./arch/connect/Spinner/spinner.117 \04853 ./arch/connect/Spinner/spinner.118 \04854 ./arch/connect/Spinner/spinner.119 \04855 ./arch/connect/Spinner/spinner.11A \04856 ./arch/connect/Spinner/spinner.11B \04857 ./arch/connect/Spinner/spinner.11C \04858 ./arch/connect/Spinner/spinner.11D \04859 ./arch/misc/spinningwheel.111 \04860 ./arch/monster/insect/ant/spit_ant.131 \04861 ./arch/monster/insect/ant/spit_ant.132 \04862 ./arch/monster/insect/ant/spit_ant.133 \04863 ./arch/monster/insect/ant/spit_ant.171 \04864 ./arch/monster/insect/ant/spit_ant.172 \04865 ./arch/monster/insect/ant/spit_ant.173 \04866 ./arch/spell/Bomb/splint.111 \04867 ./arch/monster/humanoid/Elf/spock.111 \04868 ./arch/monster/humanoid/Elf/spock.112 \04869 ./arch/weapon/sword/ssword_1.111 \04870 ./arch/weapon/sword/ssword_2.111 \04871 ./arch/spell/Wand/staff.111 \04872 ./arch/spell/Wand/staff.112 \04873 ./arch/spell/Wand/staff.113 \04874 ./arch/spell/Wand/staff.114 \04875 ./arch/spell/Wand/staff.115 \04876 ./arch/exit/Up_down/stair2_do.111 \04877 ./arch/exit/Up_down/stair2_up.111 \04878 ./arch/exit/Up_down/stair3_do.111 \04879 ./arch/exit/Up_down/stair3_gstone_do.111 \04880 ./arch/exit/Up_down/stair3_gstone_up.111 \04881 ./arch/exit/Up_down/stair3_up.111 \04882 ./arch/exit/Up_down/stair3_ystone_do.111 \04883 ./arch/exit/Up_down/stair3_ystone_up.111 \04884 ./arch/exit/Up_down/stair_down.111 \04885 ./arch/exit/Up_down/stair_down_1.111 \04886 ./arch/exit/Up_down/stair_down_2.111 \04887 ./arch/exit/Up_down/stair_down_3.111 \04888 ./arch/exit/Up_down/stair_down_4.111 \04889 ./arch/exit/Up_down/stair_up.111 \04890 ./arch/exit/Up_down/stair_up_1.111 \04891 ./arch/exit/Up_down/stair_up_2.111 \04892 ./arch/exit/Up_down/stair_up_3.111 \04893 ./arch/exit/Up_down/stair_up_4.111 \04894 ./arch/weapon/misc/stake.111 \04895 ./arch/monster/misc/stalker.111 \04896 ./arch/monster/misc/stalker.112 \04897 ./arch/monster/misc/stalkergen.111 \04898 ./arch/misc/statue.111 \04899 ./arch/misc/statue2.111 \04900 ./arch/misc/statue2_bronze.111 \04901 ./arch/misc/statue2_gold.111 \04902 ./arch/misc/statue_bronze.111 \04903 ./arch/misc/statue_gargoyle.111 \04904 ./arch/misc/statue_gold.111 \04905 ./arch/misc/statue_knight.111 \04906 ./arch/misc/statue_ruined.x11 \04907 ./arch/spell/Bolt/steam.111 \04908 ./arch/spell/Bolt/steam.112 \04909 ./arch/jewel/steelbar.111 \04910 ./arch/ground/steppe.111 \04911 ./arch/ground/smooth/steppe_S.111 \04912 ./arch/ground/steppelight.111 \04913 ./arch/floor/stfloor.111 \04914 ./arch/weapon/artifact/Sting/sting.111 \04915 ./arch/weapon/artifact/Sting/sting.112 \04916 ./arch/weapon/artifact/Sting/sting.113 \04917 ./arch/weapon/artifact/Sting/sting.114 \04918 ./arch/system/stipple.111 \04919 ./arch/system/stipple.112 \04920 ./arch/indoor/stolking_1.111 \04921 ./arch/indoor/stolking_2.111 \04922 ./arch/weapon/axe/stoneaxe.111 \04923 ./arch/wall/bwall/stoneblock.111 \04924 ./arch/wall/bwall/stoneblock.112 \04925 ./arch/wall/bwall/stoneblock.113 \04926 ./arch/wall/bwall/stoneblock.114 \04927 ./arch/wall/bwall/stoneblock.115 \04928 ./arch/road/stonebridge/stonebridge_0.111 \04929 ./arch/road/stonebridge/stonebridge_1.111 \04930 ./arch/road/stonebridge/stonebridge_2.111 \04931 ./arch/road/stonebridge/stonebridge_3.111 \04932 ./arch/road/stonebridge/stonebridge_4.111 \04933 ./arch/road/stonebridge/stonebridge_5.111 \04934 ./arch/road/stonebridge/stonebridge_6.111 \04935 ./arch/road/stonebridge/stonebridge_7.111 \04936 ./arch/road/stonebridge/stonebridge_8.111 \04937 ./arch/road/stonebridge/stonebridge_9.111 \04938 ./arch/road/stonebridge/stonebridge_A.111 \04939 ./arch/road/stonebridge/stonebridge_B.111 \04940 ./arch/road/stonebridge/stonebridge_C.111 \04941 ./arch/road/stonebridge/stonebridge_D.111 \04942 ./arch/road/stonebridge/stonebridge_E.111 \04943 ./arch/road/stonebridge/stonebridge_F.111 \04944 ./arch/weapon/hammer/stonehamme.111 \04945 ./arch/shop/store_alch.x11 \04946 ./arch/shop/store_armo.x11 \04947 ./arch/shop/store_armo_east.x11 \04948 ./arch/shop/store_armo_fant.x11 \04949 ./arch/shop/store_bow.x11 \04950 ./arch/shop/store_gems.x11 \04951 ./arch/shop/store_gene.x11 \04952 ./arch/shop/store_gene_fant.x11 \04953 ./arch/shop/store_gene_west.x11 \04954 ./arch/shop/store_magi.x11 \04955 ./arch/shop/store_magi_east.x11 \04956 ./arch/shop/store_magi_fant.x11 \04957 ./arch/shop/store_magi_northwest.x11 \04958 ./arch/shop/store_magi_west.x11 \04959 ./arch/shop/store_weap.x11 \04960 ./arch/shop/store_weap_east.x11 \04961 ./arch/shop/store_weap_fant.x11 \04962 ./arch/weapon/artifact/stormbring.111 \04963 ./arch/misc/Container/stove.111 \04964 ./arch/misc/Container/stove.112 \04965 ./arch/misc/Container/stove.113 \04966 ./arch/floor/strangefloor.111 \04967 ./arch/construct/hold/stronghold.x11 \04968 ./arch/construct/hold/stronghold_east.x11 \04969 ./arch/construct/hold/stronghold_fant.x11 \04970 ./arch/construct/hold/stronghold_fant_symmetrical.x11 \04971 ./arch/construct/hold/stronghold_northwest.x11 \04972 ./arch/construct/hold/stronghold_west.x11 \04973 ./arch/construct/hold/stronghsym.111 \04974 ./arch/wall/stwall/stwall_0.111 \04975 ./arch/wall/stwall/stwall_1.111 \04976 ./arch/wall/stwall/stwall_2.111 \04977 ./arch/wall/stwall/stwall_3.111 \04978 ./arch/wall/stwall/stwall_4.111 \04979 ./arch/wall/stwall/stwall_5.111 \04980 ./arch/wall/stwall/stwall_6.111 \04981 ./arch/wall/stwall/stwall_7.111 \04982 ./arch/wall/stwall/stwall_8.111 \04983 ./arch/wall/stwall/stwall_9.111 \04984 ./arch/wall/stwall/stwall_A.111 \04985 ./arch/wall/stwall/stwall_B.111 \04986 ./arch/wall/stwall/stwall_C.111 \04987 ./arch/wall/stwall/stwall_D.111 \04988 ./arch/wall/stwall/stwall_E.111 \04989 ./arch/wall/stwall/stwall_F.111 \04990 ./arch/wall/stwall/stwall_door_0.111 \04991 ./arch/wall/stwall/stwall_door_1.111 \04992 ./arch/connect/stwallsec.111 \04993 ./arch/connect/stwallsec.112 \04994 ./arch/connect/stwallsec.113 \04995 ./arch/connect/stwallsec.114 \04996 ./arch/connect/stwallsec.115 \04997 ./arch/connect/stwallsec.116 \04998 ./arch/connect/stwallsec.117 \04999 ./arch/connect/stwallsec.118 \05000 ./arch/wall/stwall/stwindow_0.111 \05001 ./arch/wall/stwall/stwindow_1.111 \05002 ./arch/skills/Skill_Tools/stylus.111 \05003 ./arch/inorganic/sulphur.111 \05004 ./arch/spell/SpellBook/summoner_book.111 \05005 ./arch/spell/Bolt/sunspear.111 \05006 ./arch/spell/Bolt/sunspear.112 \05007 ./arch/spell/Bolt/sunspear.113 \05008 ./arch/wall/swall/swall_0.111 \05009 ./arch/wall/swall/swall_1.111 \05010 ./arch/wall/swall/swall_1_half.111 \05011 ./arch/wall/swall/swall_2.111 \05012 ./arch/wall/swall/swall_2_half.111 \05013 ./arch/wall/swall/swall_3.111 \05014 ./arch/wall/swall/swall_4.111 \05015 ./arch/wall/swall/swall_4_half.111 \05016 ./arch/wall/swall/swall_5.111 \05017 ./arch/wall/swall/swall_55.111 \05018 ./arch/wall/swall/swall_6.111 \05019 ./arch/wall/swall/swall_7.111 \05020 ./arch/wall/swall/swall_8.111 \05021 ./arch/wall/swall/swall_8_half.111 \05022 ./arch/wall/swall/swall_9.111 \05023 ./arch/wall/swall/swall_A.111 \05024 ./arch/wall/swall/swall_AA.111 \05025 ./arch/wall/swall/swall_B.111 \05026 ./arch/wall/swall/swall_C.111 \05027 ./arch/wall/swall/swall_D.111 \05028 ./arch/wall/swall/swall_E.111 \05029 ./arch/wall/swall/swall_F.111 \05030 ./arch/ground/swamp.111 \05031 ./arch/ground/smooth/swamp_S.111 \05032 ./arch/player/class/Warrior/swashbuckl.111 \05033 ./arch/player/class/Warrior/swashbuckl.112 \05034 ./arch/player/class/Warrior/swashbuckl.131 \05035 ./arch/player/class/Warrior/swashbuckl.132 \05036 ./arch/player/class/Warrior/swashbuckl.151 \05037 ./arch/player/class/Warrior/swashbuckl.152 \05038 ./arch/player/class/Warrior/swashbuckl.171 \05039 ./arch/player/class/Warrior/swashbuckl.172 \05040 ./arch/weapon/sword/sword_1.111 \05041 ./arch/weapon/sword/sword_2.111 \05042 ./arch/weapon/sword/sword_3.111 \05043 ./arch/weapon/sword/sword_4.111 \05044 ./arch/weapon/sword/t_dagger.101 \05045 ./arch/weapon/sword/t_dagger.111 \05046 ./arch/weapon/sword/t_dagger.121 \05047 ./arch/weapon/sword/t_dagger.131 \05048 ./arch/weapon/sword/t_dagger.141 \05049 ./arch/weapon/sword/t_dagger.151 \05050 ./arch/weapon/sword/t_dagger.161 \05051 ./arch/weapon/sword/t_dagger.171 \05052 ./arch/weapon/sword/t_dagger.181 \05053 ./arch/construct/town/t_house1.x11 \05054 ./arch/construct/town/t_house2.x11 \05055 ./arch/construct/town/t_house2_fant.x11 \05056 ./arch/misc/t_rock.111 \05057 ./arch/weapon/misc/t_star1.111 \05058 ./arch/indoor/table_1.111 \05059 ./arch/indoor/table_1x2.111 \05060 ./arch/indoor/table_2.111 \05061 ./arch/indoor/table_2x1.111 \05062 ./arch/indoor/table_2x2.111 \05063 ./arch/indoor/table_3.111 \05064 ./arch/indoor/table_4.111 \05065 ./arch/indoor/table_burl_3.111 \05066 ./arch/indoor/table_cw_3.111 \05067 ./arch/weapon/misc/taifu_1.111 \05068 ./arch/skills/Skill_Tools/talisman.111 \05069 ./arch/skills/Skill_Tools/talisman_evocation.111 \05070 ./arch/skills/Skill_Tools/talisman_pyromancy.111 \05071 ./arch/skills/Skill_Tools/talisman_sorcery.111 \05072 ./arch/skills/Skill_Tools/talisman_summoning.111 \05073 ./arch/misc/Container/tanbench.111 \05074 ./arch/construct/house/tavern.111 \05075 ./arch/gods/items/tear.111 \05076 ./arch/gods/items/tear.112 \05077 ./arch/gods/items/tear.113 \05078 ./arch/gods/items/tear.114 \05079 ./arch/exit/teleporter.111 \05080 ./arch/exit/teleporter.112 \05081 ./arch/exit/teleporter.113 \05082 ./arch/construct/temple/temple1.x11 \05083 ./arch/construct/temple/temple2.x11 \05084 ./arch/construct/temple/temple_ruin.x11 \05085 ./arch/misc/ten_kilo.111 \05086 ./arch/monster/misc/tentacle/tentacle.111 \05087 ./arch/monster/misc/tentacle/tentacle.112 \05088 ./arch/monster/misc/tentacle/tentacle.113 \05089 ./arch/monster/misc/tentacle/tentacle2.111 \05090 ./arch/monster/misc/tentacle/tentacle2.112 \05091 ./arch/monster/misc/tentacle/tentacle2.113 \05092 ./arch/monster/misc/tentacle/tentaclehook.111 \05093 ./arch/misc/Container/thaumaturg_desk.111 \05094 ./arch/misc/thewheel/thewheel_short.111 \05095 ./arch/misc/thewheel/thewheel_short.112 \05096 ./arch/misc/thewheel/thewheel_short.113 \05097 ./arch/misc/thewheel/thewheel_short.114 \05098 ./arch/misc/thewheel/thewheel_short.115 \05099 ./arch/misc/thewheel/thewheel_tall.x11 \05100 ./arch/misc/thewheel/thewheel_tall.x12 \05101 ./arch/misc/thewheel/thewheel_tall.x13 \05102 ./arch/misc/thewheel/thewheel_tall.x14 \05103 ./arch/misc/thewheel/thewheel_tall.x15 \05104 ./arch/player/class/Thief/thief.111 \05105 ./arch/player/class/Thief/thief.112 \05106 ./arch/player/class/Thief/thief.131 \05107 ./arch/player/class/Thief/thief.132 \05108 ./arch/player/class/Thief/thief.151 \05109 ./arch/player/class/Thief/thief.152 \05110 ./arch/player/class/Thief/thief.171 \05111 ./arch/player/class/Thief/thief.172 \05112 ./arch/ground/thorns.111 \05113 ./arch/weapon/bow/thunder_bolt.101 \05114 ./arch/weapon/bow/thunder_bolt.111 \05115 ./arch/weapon/bow/thunder_bolt.121 \05116 ./arch/weapon/bow/thunder_bolt.131 \05117 ./arch/weapon/bow/thunder_bolt.141 \05118 ./arch/weapon/bow/thunder_bolt.151 \05119 ./arch/weapon/bow/thunder_bolt.161 \05120 ./arch/weapon/bow/thunder_bolt.171 \05121 ./arch/weapon/bow/thunder_bolt.181 \05122 ./arch/floor/tile.111 \05123 ./arch/floor/tile_tan.111 \05124 ./arch/floor/tile_white.111 \05125 ./arch/wall/timberwall/timberwall_0.111 \05126 ./arch/wall/timberwall/timberwall_1.111 \05127 ./arch/wall/timberwall/timberwall_2.111 \05128 ./arch/wall/timberwall/timberwall_3.111 \05129 ./arch/wall/timberwall/timberwall_4.111 \05130 ./arch/wall/timberwall/timberwall_5.111 \05131 ./arch/wall/timberwall/timberwall_6.111 \05132 ./arch/wall/timberwall/timberwall_7.111 \05133 ./arch/wall/timberwall/timberwall_8.111 \05134 ./arch/wall/timberwall/timberwall_9.111 \05135 ./arch/wall/timberwall/timberwall_A.111 \05136 ./arch/wall/timberwall/timberwall_B.111 \05137 ./arch/wall/timberwall/timberwall_C.111 \05138 ./arch/wall/timberwall/timberwall_D.111 \05139 ./arch/wall/timberwall/timberwall_E.111 \05140 ./arch/wall/timberwall/timberwall_F.111 \05141 ./arch/jewel/tinbar.111 \05142 ./arch/misc/tissu.111 \05143 ./arch/monster/giant/Titan/titan.x31 \05144 ./arch/monster/giant/Titan/titan.x32 \05145 ./arch/monster/giant/Titan/titan.x33 \05146 ./arch/monster/giant/Titan/titan.x71 \05147 ./arch/monster/giant/Titan/titan.x72 \05148 ./arch/monster/giant/Titan/titan.x73 \05149 ./arch/food/tomato.111 \05150 ./arch/food/tomato_big.111 \05151 ./arch/readable/tome.111 \05152 ./arch/flesh/generic/tongue.111 \05153 ./arch/flesh/human/tooth.111 \05154 ./arch/talisman/tooth_charm.111 \05155 ./arch/gods/items/torc.111 \05156 ./arch/misc/torch_cyan.111 \05157 ./arch/misc/torch_cyan.112 \05158 ./arch/misc/torch_indigo.111 \05159 ./arch/misc/torch_indigo.112 \05160 ./arch/light/torch_lit1.111 \05161 ./arch/light/torch_lit2.111 \05162 ./arch/light/torch_unlit.111 \05163 ./arch/misc/torch_vermilion.111 \05164 ./arch/misc/torch_vermilion.112 \05165 ./arch/construct/tower/tower_a.x11 \05166 ./arch/construct/tower/tower_tob.111 \05167 ./arch/construct/tower/tower_tob_fant.111 \05168 ./arch/construct/tower/tower_tob_northwest.111 \05169 ./arch/exit/Town/town_1.111 \05170 ./arch/exit/Town/town_2.111 \05171 ./arch/exit/Town/town_2.211 \05172 ./arch/exit/Town/town_3.111 \05173 ./arch/exit/Town/town_3.211 \05174 ./arch/exit/Town/town_4.111 \05175 ./arch/exit/Town/town_4.211 \05176 ./arch/exit/Town/town_4.311 \05177 ./arch/exit/Town/town_4.411 \05178 ./arch/exit/Town/town_5.111 \05179 ./arch/exit/Town/town_5.211 \05180 ./arch/exit/Town/town_5.311 \05181 ./arch/exit/Town/town_5.411 \05182 ./arch/exit/Town/town_5.511 \05183 ./arch/exit/Town/town_5.611 \05184 ./arch/exit/Town/town_6.111 \05185 ./arch/exit/Town/town_6.211 \05186 ./arch/exit/Town/town_6.311 \05187 ./arch/exit/Town/town_6.411 \05188 ./arch/exit/Town/town_6.511 \05189 ./arch/exit/Town/town_6.611 \05190 ./arch/exit/Town/town_7.111 \05191 ./arch/exit/Town/town_7.211 \05192 ./arch/exit/Town/town_7.311 \05193 ./arch/exit/Town/town_7.411 \05194 ./arch/exit/Town/town_7.511 \05195 ./arch/exit/Town/town_7.611 \05196 ./arch/exit/Town/town_7.711 \05197 ./arch/exit/Town/town_7.811 \05198 ./arch/exit/Town/town_7.911 \05199 ./arch/traps/trap.111 \05200 ./arch/connect/Hole/trapdoor_1.111 \05201 ./arch/connect/Hole/trapdoor_2.111 \05202 ./arch/connect/Hole/trapdoor_3.111 \05203 ./arch/connect/Hole/trapdoor_4.111 \05204 ./arch/ground/Wood/tree_1.111 \05205 ./arch/ground/Wood/tree_2.111 \05206 ./arch/ground/Wood/tree_3.111 \05207 ./arch/ground/Wood/tree_4.111 \05208 ./arch/ground/Wood/tree_5.111 \05209 ./arch/ground/Winter/tree_5_christmas.x11 \05210 ./arch/ground/Wood/tree_6.111 \05211 ./arch/ground/Wood/treed_hills.111 \05212 ./arch/construct/Treehouse/treefort.x11 \05213 ./arch/construct/Treehouse/treefort2.x11 \05214 ./arch/construct/Treehouse/treefort3.111 \05215 ./arch/construct/Treehouse/treehouse.111 \05216 ./arch/weapon/misc/trident.101 \05217 ./arch/weapon/misc/trident.111 \05218 ./arch/weapon/misc/trident.121 \05219 ./arch/weapon/misc/trident.131 \05220 ./arch/weapon/misc/trident.141 \05221 ./arch/weapon/misc/trident.151 \05222 ./arch/weapon/misc/trident.161 \05223 ./arch/weapon/misc/trident.171 \05224 ./arch/weapon/misc/trident.181 \05225 ./arch/monster/troll/Troll/troll.x11 \05226 ./arch/monster/troll/Troll/troll.x12 \05227 ./arch/monster/troll/Troll/troll.x13 \05228 ./arch/player/race/troll_p.111 \05229 ./arch/player/race/troll_p.112 \05230 ./arch/player/race/troll_p.131 \05231 ./arch/player/race/troll_p.132 \05232 ./arch/player/race/troll_p.151 \05233 ./arch/player/race/troll_p.152 \05234 ./arch/player/race/troll_p.171 \05235 ./arch/player/race/troll_p.172 \05236 ./arch/player/stoned/troll_stoned.111 \05237 ./arch/inorganic/true_lead.111 \05238 ./arch/traps/tspikes.111 \05239 ./arch/armour/mail/tunic.111 \05240 ./arch/armour/helmet/turban.111 \05241 ./arch/transport/turningboat.x11 \05242 ./arch/transport/turningboat.x21 \05243 ./arch/transport/turningboat.x31 \05244 ./arch/transport/turningboat.x41 \05245 ./arch/transport/turningboat.x51 \05246 ./arch/transport/turningboat.x61 \05247 ./arch/transport/turningboat.x71 \05248 ./arch/transport/turningboat.x81 \05249 ./arch/spell/Cone/turnundead.111 \05250 ./arch/spell/Cone/turnundead.112 \05251 ./arch/spell/Cone/turnundead.113 \05252 ./arch/flesh/misc/u_horn.111 \05253 ./arch/flesh/misc/u_horn.112 \05254 ./arch/flesh/misc/u_horn.113 \05255 ./arch/flesh/misc/u_horn.114 \05256 ./arch/flesh/misc/u_horn.115 \05257 ./arch/food/uf6.111 \05258 ./arch/inorganic/uf6pile.111 \05259 ./arch/weapon/artifact/Usword/uk_sd.111 \05260 ./arch/weapon/artifact/Usword/uk_sd.112 \05261 ./arch/weapon/artifact/Usword/uk_sd.113 \05262 ./arch/weapon/artifact/Usword/uk_sd.114 \05263 ./arch/weapon/artifact/Usword/uk_sd.115 \05264 ./arch/weapon/artifact/Usword/uk_sd.116 \05265 ./arch/weapon/artifact/Usword/uk_sd.117 \05266 ./arch/floor/unholy_ground.111 \05267 ./arch/monster/misc/Unicorn/unicorn.x31 \05268 ./arch/monster/misc/Unicorn/unicorn.x32 \05269 ./arch/monster/misc/Unicorn/unicorn.x33 \05270 ./arch/monster/misc/Unicorn/unicorn.x71 \05271 ./arch/monster/misc/Unicorn/unicorn.x72 \05272 ./arch/monster/misc/Unicorn/unicorn.x73 \05273 ./arch/construct/town/university.x11 \05274 ./arch/misc/unluck.111 \05275 ./arch/monster/goblin/Kobold/unusual_kobold.111 \05276 ./arch/monster/goblin/Kobold/unusual_kobold.112 \05277 ./arch/inorganic/uranium.111 \05278 ./arch/jewel/uraniumbar.111 \05279 ./arch/armour/shield/uw_shield.111 \05280 ./arch/weapon/artifact/UW_Sword/uw_sword.111 \05281 ./arch/weapon/artifact/UW_Sword/uw_sword.112 \05282 ./arch/weapon/artifact/UW_Sword/uw_sword.113 \05283 ./arch/weapon/artifact/UW_Sword/uw_sword.114 \05284 ./arch/weapon/artifact/UW_Sword/uw_sword.115 \05285 ./arch/spell/Bullet/v_pool.111 \05286 ./arch/spell/Bullet/v_pool.112 \05287 ./arch/spell/Bullet/v_splash.111 \05288 ./arch/spell/Bullet/v_splash.112 \05289 ./arch/monster/undead/vampire.111 \05290 ./arch/monster/undead/vampire.112 \05291 ./arch/monster/undead/vampiregen.111 \05292 ./arch/monster/humanoid/Arabic/veiled_woman.111 \05293 ./arch/monster/humanoid/Arabic/veiled_woman2.111 \05294 ./arch/monster/humanoid/Arabic/veiled_woman3.111 \05295 ./arch/potion/vial_blue.111 \05296 ./arch/potion/vial_cyan.111 \05297 ./arch/potion/vial_empty.111 \05298 ./arch/potion/vial_green.111 \05299 ./arch/potion/vial_magenta.111 \05300 ./arch/potion/vial_red.111 \05301 ./arch/potion/vial_water.111 \05302 ./arch/potion/vial_yellow.111 \05303 ./arch/player/race/viking.111 \05304 ./arch/player/race/viking.112 \05305 ./arch/player/race/viking.131 \05306 ./arch/player/race/viking.132 \05307 ./arch/player/race/viking.151 \05308 ./arch/player/race/viking.152 \05309 ./arch/player/race/viking.171 \05310 ./arch/player/race/viking.172 \05311 ./arch/wall/jcity/village_0.111 \05312 ./arch/misc/violin.111 \05313 ./arch/misc/violin.112 \05314 ./arch/misc/violin.113 \05315 ./arch/misc/violin.114 \05316 ./arch/misc/violin.115 \05317 ./arch/misc/violin.116 \05318 ./arch/misc/violin.117 \05319 ./arch/misc/violin.118 \05320 ./arch/misc/violin.119 \05321 ./arch/misc/violin.11A \05322 ./arch/misc/violin.11B \05323 ./arch/misc/violin.11C \05324 ./arch/misc/violin.11D \05325 ./arch/misc/violin.x11 \05326 ./arch/weapon/sword/vlongsword.111 \05327 ./arch/exit/volcano_hi.x11 \05328 ./arch/exit/volcano_lo.x11 \05329 ./arch/food/w_glass.111 \05330 ./arch/food/w_glass_empty.111 \05331 ./arch/transport/wagon.111 \05332 ./arch/wall/wall/wall_0.111 \05333 ./arch/wall/wall/wall_1.111 \05334 ./arch/wall/wall/wall_1_ruin.111 \05335 ./arch/wall/wall/wall_1_short.111 \05336 ./arch/wall/wall/wall_2.111 \05337 ./arch/wall/wall/wall_2_ruin.111 \05338 ./arch/wall/wall/wall_2_short.111 \05339 ./arch/wall/wall/wall_3.111 \05340 ./arch/wall/wall/wall_4.111 \05341 ./arch/wall/wall/wall_4_ruin.111 \05342 ./arch/wall/wall/wall_4_short.111 \05343 ./arch/wall/wall/wall_5.111 \05344 ./arch/wall/wall/wall_55.111 \05345 ./arch/wall/wall/wall_6.111 \05346 ./arch/wall/wall/wall_7.111 \05347 ./arch/wall/wall/wall_8.111 \05348 ./arch/wall/wall/wall_8_ruin.111 \05349 ./arch/wall/wall/wall_8_short.111 \05350 ./arch/wall/wall/wall_9.111 \05351 ./arch/wall/wall/wall_A.111 \05352 ./arch/wall/wall/wall_AA.111 \05353 ./arch/wall/wall/wall_B.111 \05354 ./arch/wall/wall/wall_C.111 \05355 ./arch/wall/wall/wall_D.111 \05356 ./arch/wall/wall/wall_E.111 \05357 ./arch/wall/wall/wall_F.111 \05358 ./arch/wall/wall/wall_door_0.111 \05359 ./arch/wall/wall/wall_door_1.111 \05360 ./arch/wall/wall/wall_large_door.111 \05361 ./arch/indoor/wall/wallart_0.111 \05362 ./arch/indoor/wall/wallart_1.111 \05363 ./arch/indoor/wall/wallart_2.111 \05364 ./arch/indoor/wall/wallart_3.111 \05365 ./arch/indoor/wall/wallart_4.111 \05366 ./arch/indoor/wall/wallart_5.111 \05367 ./arch/indoor/wall/wallart_6.111 \05368 ./arch/indoor/wall/wallclock.111 \05369 ./arch/spell/Wand/wand.111 \05370 ./arch/spell/Wand/wand.112 \05371 ./arch/spell/Wand/wand.113 \05372 ./arch/monster/insect/ant/war_ant.131 \05373 ./arch/monster/insect/ant/war_ant.132 \05374 ./arch/monster/insect/ant/war_ant.171 \05375 ./arch/monster/insect/ant/war_ant.172 \05376 ./arch/player/class/Warrior/warrior.111 \05377 ./arch/player/class/Warrior/warrior.112 \05378 ./arch/player/class/Warrior/warrior.131 \05379 ./arch/player/class/Warrior/warrior.132 \05380 ./arch/player/class/Warrior/warrior.151 \05381 ./arch/player/class/Warrior/warrior.152 \05382 ./arch/player/class/Warrior/warrior.171 \05383 ./arch/player/class/Warrior/warrior.172 \05384 ./arch/monster/humanoid/Class/Warrior/warrior_blue.111 \05385 ./arch/monster/humanoid/Class/Warrior/warrior_blue.131 \05386 ./arch/monster/humanoid/Class/Warrior/warrior_blue.151 \05387 ./arch/monster/humanoid/Class/Warrior/warrior_blue.171 \05388 ./arch/monster/humanoid/Class/Warrior/warrior_green.111 \05389 ./arch/monster/humanoid/Class/Warrior/warrior_green.131 \05390 ./arch/monster/humanoid/Class/Warrior/warrior_green.151 \05391 ./arch/monster/humanoid/Class/Warrior/warrior_green.171 \05392 ./arch/monster/humanoid/Class/Warrior/warrior_grey.111 \05393 ./arch/monster/humanoid/Class/Warrior/warrior_grey.131 \05394 ./arch/monster/humanoid/Class/Warrior/warrior_grey.151 \05395 ./arch/monster/humanoid/Class/Warrior/warrior_grey.171 \05396 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.111 \05397 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.131 \05398 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.151 \05399 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.171 \05400 ./arch/monster/humanoid/Class/Warrior/warrior_red.111 \05401 ./arch/monster/humanoid/Class/Warrior/warrior_red.131 \05402 ./arch/monster/humanoid/Class/Warrior/warrior_red.151 \05403 ./arch/monster/humanoid/Class/Warrior/warrior_red.171 \05404 ./arch/ground/wasteland.111 \05405 ./arch/ground/smooth/wasteland_S.111 \05406 ./arch/food/water.111 \05407 ./arch/food/water_diamond.111 \05408 ./arch/food/water_emerald.111 \05409 ./arch/food/water_pearl.111 \05410 ./arch/food/water_ruby.111 \05411 ./arch/food/water_sapphire.111 \05412 ./arch/food/water_wise.111 \05413 ./arch/spell/Cone/wave.111 \05414 ./arch/spell/Cone/wave.112 \05415 ./arch/spell/Cone/wave.113 \05416 ./arch/food/waybread.111 \05417 ./arch/potion/wbottle_empty.111 \05418 ./arch/connect/Doors/wdoor.111 \05419 ./arch/connect/Doors/wdoor.112 \05420 ./arch/connect/Doors/wdoor.113 \05421 ./arch/connect/Doors/wdoor.114 \05422 ./arch/armour/shield/wds.111 \05423 ./arch/armour/mail/wdsm.111 \05424 ./arch/armour/mail/wdsm.112 \05425 ./arch/armour/mail/wdsm.113 \05426 ./arch/exit/well.111 \05427 ./arch/wall/cwall-west/westcityport_0.111 \05428 ./arch/wall/cwall-west/westcityport_1.111 \05429 ./arch/wall/cwall-west/westcwall_0.111 \05430 ./arch/wall/cwall-west/westcwall_1.111 \05431 ./arch/wall/cwall-west/westcwall_2.111 \05432 ./arch/wall/cwall-west/westcwall_3.111 \05433 ./arch/wall/cwall-west/westcwall_4.111 \05434 ./arch/wall/cwall-west/westcwall_5.111 \05435 ./arch/wall/cwall-west/westcwall_6.111 \05436 ./arch/wall/cwall-west/westcwall_7.111 \05437 ./arch/wall/cwall-west/westcwall_8.111 \05438 ./arch/wall/cwall-west/westcwall_9.111 \05439 ./arch/wall/cwall-west/westcwall_A.111 \05440 ./arch/wall/cwall-west/westcwall_B.111 \05441 ./arch/wall/cwall-west/westcwall_C.111 \05442 ./arch/wall/cwall-west/westcwall_D.111 \05443 ./arch/wall/cwall-west/westcwall_E.111 \05444 ./arch/wall/cwall-west/westcwall_F.111 \05445 ./arch/wall/cwall-west/westcwall_w_0.111 \05446 ./arch/wall/cwall-west/westcwall_w_0.112 \05447 ./arch/wall/cwall-west/westcwall_w_0.113 \05448 ./arch/wall/cwall-west/westcwall_w_0.114 \05449 ./arch/wall/cwall-west/westcwall_w_0.115 \05450 ./arch/wall/cwall-west/westcwall_w_0.116 \05451 ./arch/wall/cwall-west/westcwall_w_0.117 \05452 ./arch/wall/cwall-west/westcwall_w_0.118 \05453 ./arch/wall/cwall-west/westcwall_w_0.119 \05454 ./arch/wall/cwall-west/westcwall_w_0.11A \05455 ./arch/wall/cwall-west/westcwall_w_1.111 \05456 ./arch/wall/cwall-west/westcwall_w_1.112 \05457 ./arch/wall/cwall-west/westcwall_w_1.113 \05458 ./arch/wall/cwall-west/westcwall_w_1.114 \05459 ./arch/wall/cwall-west/westcwall_w_1.115 \05460 ./arch/wall/cwall-west/westcwall_w_1.116 \05461 ./arch/wall/cwall-west/westcwall_w_1.117 \05462 ./arch/wall/cwall-west/westcwall_w_1.118 \05463 ./arch/wall/cwall-west/westcwall_w_1.119 \05464 ./arch/connect/westcwallsec.111 \05465 ./arch/connect/westcwallsec.112 \05466 ./arch/connect/westcwallsec.113 \05467 ./arch/connect/westcwallsec.114 \05468 ./arch/connect/westcwallsec.115 \05469 ./arch/connect/westcwallsec.116 \05470 ./arch/connect/westcwallsec.117 \05471 ./arch/connect/westcwallsec.118 \05472 ./arch/wall/cwall-west/westcwindow_0.111 \05473 ./arch/wall/cwall-west/westcwindow_1.111 \05474 ./arch/wall/cwall-west/westguard_ho_1.111 \05475 ./arch/wall/cwall-west/westguard_ho_2.111 \05476 ./arch/wall/cwall-west/westguard_ho_4.111 \05477 ./arch/wall/cwall-west/westguard_ho_8.111 \05478 ./arch/misc/wheelbarrow.111 \05479 ./arch/monster/angel/whim.111 \05480 ./arch/monster/angel/whim.112 \05481 ./arch/monster/angel/whim.121 \05482 ./arch/monster/angel/whim.122 \05483 ./arch/monster/angel/whim.131 \05484 ./arch/monster/angel/whim.132 \05485 ./arch/monster/angel/whim.141 \05486 ./arch/monster/angel/whim.142 \05487 ./arch/monster/angel/whim.151 \05488 ./arch/monster/angel/whim.152 \05489 ./arch/monster/angel/whim.161 \05490 ./arch/monster/angel/whim.162 \05491 ./arch/monster/angel/whim.171 \05492 ./arch/monster/angel/whim.172 \05493 ./arch/monster/angel/whim.181 \05494 ./arch/monster/angel/whim.182 \05495 ./arch/floor/inlayed/white-beige-c-marble.111 \05496 ./arch/floor/inlayed/white-beige-c-marble.112 \05497 ./arch/floor/inlayed/white-beige-c-marble.113 \05498 ./arch/floor/inlayed/white-beige-c-marble.114 \05499 ./arch/floor/inlayed/white-gray-h-marble.111 \05500 ./arch/floor/inlayed/white-gray-h-marble.112 \05501 ./arch/floor/inlayed/white-gray-x-marble.111 \05502 ./arch/floor/inlayed/white-gray-x-marble.112 \05503 ./arch/floor/inlayed/white-gray-x-marble.113 \05504 ./arch/floor/inlayed/white-gray-x-marble.114 \05505 ./arch/floor/inlayed/white-gray-x-marble.115 \05506 ./arch/floor/inlayed/white-gray-x-marble.116 \05507 ./arch/floor/inlayed/white-gray-x-marble.117 \05508 ./arch/floor/inlayed/white-gray-x-marble.118 \05509 ./arch/floor/inlayed/white-gray-x-marble.119 \05510 ./arch/floor/inlayed/white-green-c-marble.111 \05511 ./arch/floor/inlayed/white-green-c-marble.112 \05512 ./arch/floor/inlayed/white-green-c-marble.113 \05513 ./arch/floor/inlayed/white-green-c-marble.114 \05514 ./arch/floor/inlayed/white-green-h-marble.111 \05515 ./arch/floor/inlayed/white-green-h-marble.112 \05516 ./arch/floor/inlayed/white-green-x-marble.111 \05517 ./arch/floor/inlayed/white-green-x-marble.112 \05518 ./arch/floor/inlayed/white-green-x-marble.113 \05519 ./arch/floor/inlayed/white-green-x-marble.114 \05520 ./arch/floor/inlayed/white-green-x-marble.115 \05521 ./arch/floor/inlayed/white-green-x-marble.116 \05522 ./arch/floor/inlayed/white-green-x-marble.117 \05523 ./arch/floor/inlayed/white-green-x-marble.118 \05524 ./arch/floor/inlayed/white-green-x-marble.119 \05525 ./arch/floor/inlayed/white-pink-c-marble.111 \05526 ./arch/floor/inlayed/white-pink-c-marble.112 \05527 ./arch/floor/inlayed/white-pink-c-marble.113 \05528 ./arch/floor/inlayed/white-pink-c-marble.114 \05529 ./arch/floor/inlayed/white-red-c-marble.111 \05530 ./arch/floor/inlayed/white-red-c-marble.112 \05531 ./arch/floor/inlayed/white-red-c-marble.113 \05532 ./arch/floor/inlayed/white-red-c-marble.114 \05533 ./arch/wall/white/white_wall_0.111 \05534 ./arch/wall/white/white_wall_1.111 \05535 ./arch/wall/white/white_wall_2.111 \05536 ./arch/wall/white/white_wall_3.111 \05537 ./arch/wall/white/white_wall_4.111 \05538 ./arch/wall/white/white_wall_5.111 \05539 ./arch/wall/white/white_wall_6.111 \05540 ./arch/wall/white/white_wall_7.111 \05541 ./arch/wall/white/white_wall_8.111 \05542 ./arch/wall/white/white_wall_9.111 \05543 ./arch/wall/white/white_wall_A.111 \05544 ./arch/wall/white/white_wall_B.111 \05545 ./arch/wall/white/white_wall_C.111 \05546 ./arch/wall/white/white_wall_D.111 \05547 ./arch/wall/white/white_wall_E.111 \05548 ./arch/wall/white/white_wall_F.111 \05549 ./arch/wall/white/white_wall_bottom.111 \05550 ./arch/wall/white/white_wall_left.111 \05551 ./arch/wall/white/white_wall_right.111 \05552 ./arch/wall/white/white_window_0.111 \05553 ./arch/wall/white/white_window_1.111 \05554 ./arch/armour/helmet/wig.111 \05555 ./arch/monster/undead/wight.111 \05556 ./arch/monster/undead/wight.112 \05557 ./arch/monster/undead/wight.113 \05558 ./arch/monster/undead/wight.114 \05559 ./arch/wall/wall/window_0.111 \05560 ./arch/wall/wall/window_1.111 \05561 ./arch/construct/window/window_2.111 \05562 ./arch/construct/window/window_3.111 \05563 ./arch/construct/window/window_4.111 \05564 ./arch/construct/window/window_arcade_1.111 \05565 ./arch/spell/Cone/windstorm.111 \05566 ./arch/spell/Cone/windstorm.112 \05567 ./arch/spell/Cone/windstorm.113 \05568 ./arch/food/wine.111 \05569 ./arch/food/winebottle_empty.111 \05570 ./arch/monster/angel/wingedhalo.111 \05571 ./arch/monster/elemental/witch_air.111 \05572 ./arch/monster/elemental/witch_air.112 \05573 ./arch/monster/chaos/witch_chaos.111 \05574 ./arch/monster/chaos/witch_chaos.112 \05575 ./arch/monster/elemental/witch_earth.111 \05576 ./arch/monster/elemental/witch_earth.112 \05577 ./arch/monster/elemental/witch_fire.111 \05578 ./arch/monster/elemental/witch_fire.112 \05579 ./arch/monster/elemental/witch_water.111 \05580 ./arch/monster/elemental/witch_water.112 \05581 ./arch/armour/helmet/wiz_hat.111 \05582 ./arch/armour/helmet/wiz_hat.112 \05583 ./arch/armour/helmet/wiz_hat.113 \05584 ./arch/player/class/Wizardry/wizard.111 \05585 ./arch/player/class/Wizardry/wizard.131 \05586 ./arch/player/class/Wizardry/wizard.151 \05587 ./arch/player/class/Wizardry/wizard.171 \05588 ./arch/player/class/Wizardry/wizard_blue.111 \05589 ./arch/player/class/Wizardry/wizard_blue.131 \05590 ./arch/player/class/Wizardry/wizard_blue.151 \05591 ./arch/player/class/Wizardry/wizard_blue.171 \05592 ./arch/player/class/Wizardry/wizard_green.111 \05593 ./arch/player/class/Wizardry/wizard_green.131 \05594 ./arch/player/class/Wizardry/wizard_green.151 \05595 ./arch/player/class/Wizardry/wizard_green.171 \05596 ./arch/player/class/Wizardry/wizard_purple.111 \05597 ./arch/player/class/Wizardry/wizard_purple.131 \05598 ./arch/player/class/Wizardry/wizard_purple.151 \05599 ./arch/player/class/Wizardry/wizard_purple.171 \05600 ./arch/construct/tower/wizard_tower.x11 \05601 ./arch/construct/tower/wizard_tower.x12 \05602 ./arch/construct/tower/wizard_tower.x13 \05603 ./arch/player/class/Wizardry/wizard_white.111 \05604 ./arch/player/class/Wizardry/wizard_white.131 \05605 ./arch/player/class/Wizardry/wizard_white.151 \05606 ./arch/player/class/Wizardry/wizard_white.171 \05607 ./arch/player/class/Wizardry/wizard_yellow.111 \05608 ./arch/player/class/Wizardry/wizard_yellow.131 \05609 ./arch/player/class/Wizardry/wizard_yellow.151 \05610 ./arch/player/class/Wizardry/wizard_yellow.171 \05611 ./arch/system/wizardmask.111 \05612 ./arch/system/wizardmask.131 \05613 ./arch/system/wizardmask.151 \05614 ./arch/system/wizardmask.171 \05615 ./arch/misc/Container/wizdesk.111 \05616 ./arch/monster/animal/Wolf/wolf.131 \05617 ./arch/monster/animal/Wolf/wolf.132 \05618 ./arch/monster/animal/Wolf/wolf.171 \05619 ./arch/monster/animal/Wolf/wolf.172 \05620 ./arch/monster/humanoid/Human/woman.131 \05621 ./arch/monster/humanoid/Human/woman.151 \05622 ./arch/monster/humanoid/Human/woman.171 \05623 ./arch/monster/humanoid/Human/woman2.111 \05624 ./arch/monster/humanoid/Human/woman2.112 \05625 ./arch/monster/humanoid/Human/woman2.113 \05626 ./arch/monster/humanoid/Human/woman3.111 \05627 ./arch/monster/humanoid/Human/woman3.112 \05628 ./arch/monster/humanoid/Human/woman3.113 \05629 ./arch/monster/humanoid/Human/womangreenpink.131 \05630 ./arch/monster/humanoid/Human/womangreenpink.151 \05631 ./arch/monster/humanoid/Human/womangreenpink.171 \05632 ./arch/door/wooddoor_1.111 \05633 ./arch/door/wooddoor_2.111 \05634 ./arch/floor/woodfloor.111 \05635 ./arch/floor/woodfloor2.111 \05636 ./arch/construct/house/woodhouse.111 \05637 ./arch/floor/woodlarge.111 \05638 ./arch/ground/Wood/woods_1.111 \05639 ./arch/ground/Wood/woods_2.111 \05640 ./arch/ground/smooth/woods_2_S.111 \05641 ./arch/ground/Wood/woods_3.111 \05642 ./arch/ground/Wood/woods_4.111 \05643 ./arch/ground/Wood/woods_5.111 \05644 ./arch/wall/woodwall/woodwall_0.111 \05645 ./arch/wall/woodwall/woodwall_1.111 \05646 ./arch/wall/woodwall/woodwall_2.111 \05647 ./arch/wall/woodwall/woodwall_3.111 \05648 ./arch/wall/woodwall/woodwall_4.111 \05649 ./arch/wall/woodwall/woodwall_5.111 \05650 ./arch/wall/woodwall/woodwall_6.111 \05651 ./arch/wall/woodwall/woodwall_7.111 \05652 ./arch/wall/woodwall/woodwall_8.111 \05653 ./arch/wall/woodwall/woodwall_9.111 \05654 ./arch/wall/woodwall/woodwall_A.111 \05655 ./arch/wall/woodwall/woodwall_B.111 \05656 ./arch/wall/woodwall/woodwall_C.111 \05657 ./arch/wall/woodwall/woodwall_D.111 \05658 ./arch/wall/woodwall/woodwall_E.111 \05659 ./arch/wall/woodwall/woodwall_F.111 \05660 ./arch/wall/woodwall/woodwindow_0.111 \05661 ./arch/wall/woodwall/woodwindow_1.111 \05662 ./arch/monster/insect/ant/work_ant.131 \05663 ./arch/monster/insect/ant/work_ant.132 \05664 ./arch/monster/insect/ant/work_ant.171 \05665 ./arch/monster/insect/ant/work_ant.172 \05666 ./arch/misc/Container/workbench.111 \05667 ./arch/monster/dragon/WDragon/worthless_dragon.x31 \05668 ./arch/monster/dragon/WDragon/worthless_dragon.x32 \05669 ./arch/monster/dragon/WDragon/worthless_dragon.x33 \05670 ./arch/monster/dragon/WDragon/worthless_dragon.x71 \05671 ./arch/monster/dragon/WDragon/worthless_dragon.x72 \05672 ./arch/monster/dragon/WDragon/worthless_dragon.x73 \05673 ./arch/misc/wplate.111 \05674 ./arch/monster/undead/wraith.111 \05675 ./arch/monster/undead/wraith.112 \05676 ./arch/monster/undead/wraith.113 \05677 ./arch/player/race/wraith_player_feeding.111 \05678 ./arch/player/race/wraith_player_feeding.112 \05679 ./arch/player/race/wraith_player_feeding.113 \05680 ./arch/player/race/wraith_player_feeding.131 \05681 ./arch/player/race/wraith_player_feeding.132 \05682 ./arch/player/race/wraith_player_feeding.133 \05683 ./arch/player/race/wraith_player_feeding.151 \05684 ./arch/player/race/wraith_player_feeding.152 \05685 ./arch/player/race/wraith_player_feeding.153 \05686 ./arch/player/race/wraith_player_feeding.171 \05687 ./arch/player/race/wraith_player_feeding.172 \05688 ./arch/player/race/wraith_player_feeding.173 \05689 ./arch/player/race/wraithp.111 \05690 ./arch/player/race/wraithp.112 \05691 ./arch/player/race/wraithp.131 \05692 ./arch/player/race/wraithp.132 \05693 ./arch/player/race/wraithp.151 \05694 ./arch/player/race/wraithp.152 \05695 ./arch/player/race/wraithp.171 \05696 ./arch/player/race/wraithp.172 \05697 ./arch/weapon/other/wrench.111 \05698 ./arch/wall/wwall/wwall_0.111 \05699 ./arch/wall/wwall/wwall_1.111 \05700 ./arch/wall/wwall/wwall_2.111 \05701 ./arch/wall/wwall/wwall_3.111 \05702 ./arch/wall/wwall/wwall_4.111 \05703 ./arch/wall/wwall/wwall_5.111 \05704 ./arch/wall/wwall/wwall_6.111 \05705 ./arch/wall/wwall/wwall_7.111 \05706 ./arch/wall/wwall/wwall_8.111 \05707 ./arch/wall/wwall/wwall_9.111 \05708 ./arch/wall/wwall/wwall_A.111 \05709 ./arch/wall/wwall/wwall_B.111 \05710 ./arch/wall/wwall/wwall_C.111 \05711 ./arch/wall/wwall/wwall_D.111 \05712 ./arch/wall/wwall/wwall_E.111 \05713 ./arch/wall/wwall/wwall_F.111 \05714 ./arch/wall/wwall/wwall_left.111 \05715 ./arch/wall/wwall/wwall_right.111 \05716 ./arch/wall/wwall/wwall_w_0.111 \05717 ./arch/wall/wwall/wwall_w_0.112 \05718 ./arch/wall/wwall/wwall_w_0.113 \05719 ./arch/wall/wwall/wwall_w_0.114 \05720 ./arch/wall/wwall/wwall_w_0.115 \05721 ./arch/wall/wwall/wwall_w_0.116 \05722 ./arch/wall/wwall/wwall_w_0.117 \05723 ./arch/wall/wwall/wwall_w_1.111 \05724 ./arch/wall/wwall/wwall_w_1.112 \05725 ./arch/wall/wwall/wwall_w_1.113 \05726 ./arch/wall/wwall/wwall_w_1.114 \05727 ./arch/wall/wwall/wwall_w_1.115 \05728 ./arch/wall/wwall/wwall_w_1.116 \05729 ./arch/wall/wwall/wwall_w_1.117 \05730 ./arch/wall/wwall/wwindow_0.111 \05731 ./arch/wall/wwall/wwindow_1.111 \05732 ./arch/monster/dragon/wyvern.x31 \05733 ./arch/monster/dragon/wyvern.x32 \05734 ./arch/monster/dragon/wyvern.x71 \05735 ./arch/monster/dragon/wyvern.x72 \05736 ./arch/monster/insect/xan/xan.111 \05737 ./arch/monster/insect/xan/xan.112 \05738 ./arch/monster/insect/xan/xan_gen.111 \05739 ./arch/road/yellow/yellow_0.111 \05740 ./arch/road/yellow/yellow_1.111 \05741 ./arch/road/yellow/yellow_2.111 \05742 ./arch/road/yellow/yellow_3.111 \05743 ./arch/road/yellow/yellow_4.111 \05744 ./arch/road/yellow/yellow_5.111 \05745 ./arch/road/yellow/yellow_6.111 \05746 ./arch/road/yellow/yellow_7.111 \05747 ./arch/road/yellow/yellow_8.111 \05748 ./arch/road/yellow/yellow_9.111 \05749 ./arch/road/yellow/yellow_A.111 \05750 ./arch/road/yellow/yellow_B.111 \05751 ./arch/road/yellow/yellow_C.111 \05752 ./arch/road/yellow/yellow_D.111 \05753 ./arch/road/yellow/yellow_E.111 \05754 ./arch/road/yellow/yellow_F.111 \05755 ./arch/road/yellow/yellow_ne.111 \05756 ./arch/road/yellow/yellow_nw.111 \05757 ./arch/road/yellow/yellow_se.111 \05758 ./arch/road/yellow/yellow_sw.111 \05759 ./arch/ground/Wood/ytree_1.111 \05760 ./arch/ground/Wood/ytree_2.111 \05761 ./arch/jewel/zincbar.111 \05762 ./arch/monster/undead/zombie.111 \05763 ./arch/monster/undead/zombie.112 \05764 ./arch/monster/undead/zombie.113 \05765 ./arch/monster/undead/zombie_gen.111 \05766 ./arch/construct/town/zoo.x11 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/forbid�������������������������������������������������������������������������0000644�0000145�0000012�00000000412�11731300544�012433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This file lets you limit playing time. Example: # #Mon 8-12 #Mon 13-16 #Tue 8-16 #Wed 8-16 #Thu 8-16 #Fri 8-12 #msg #Playing is forbidden during working hours. # # This should be extended to include connection limits at various times instead # of play/nonplay. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/checkarch.pl�������������������������������������������������������������������0000644�0000145�0000012�00000003666�11732537036�013542� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl require "util.pl"; $root = $ARGV[0]; $archetypes = "archetypes"; ### main &info ("examining $archetypes ..."); open (ARCH,"< $archetypes") || &die ("cannot open $archetypes"); &checkarch; close (ARCH); exit 0; sub checkarch { $warnings = 0; $more = 0; line: while(<ARCH>) { chop; ($var,@values) = split; if ($var eq "More") { $more = 1; next line; } if ($var eq "Object") { $arch = $values[0]; $is_alive = 0; $level = 0; $type = 0; $move_apply = 0; $is_not_head = $more; $more = 0; next line; } $more = 0; if ($var eq "end") { if ( ! $is_not_head && $is_alive && $level <= 0) { &warn ("arch $arch is alive, but doesn't have level"); $warnings++; } if ($type == 61 && $level <= 0) { &warn ("arch $arch is a FIRECHEST, but doesn't have level"); $warnings++; } if ($type == 62 && $level <= 0) { &warn ("arch $arch is a FIREWALL, but doesn't have level"); $warnings++; } if ($type == 5 && $level <= 0) { &warn ("arch $arch is a POTION, but doesn't have level"); $warnings++; } if ($move_apply && $type == 0) { &warn ("arch $arch has walk/fly on/off but doesn't have a type"); $warnings++; } next line; } if ($var eq "alive") { $is_alive = $values[0]; next line; } if ($var eq "level") { $level = $values[0]; next line; } if ($var eq "type") { $type = $values[0]; next line; } if ($var eq "move_on" || $var eq "move_off") { $move_apply |= 1; next line; } } &info ("$warnings problems found"); } ��������������������������������������������������������������������������crossfire-1.70.0/lib/Makefile.am��������������������������������������������������������������������0000644�0000145�0000012�00000015207�11731300544�013307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 2001 Mark Wedel & Crossfire Development Team # Copyright (C) 1992 Frank Tore Johansen # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The authors can be reached via e-mail to crossfire-devel@real-time.com pkgstatedir = @pkgstatedir@ pkgconfdir = @pkgconfdir@ dist_noinst_SCRIPTS = collect.pl util.pl checkarch.pl dist_pkgdata_DATA = artifacts def_help formulae messages races smooth\ animations archetypes bmaps bmaps.paths crossfire.0 \ crossfire.1 faces attackmess image_info materials CONF_FILES = settings metaserver2 motd dm_file forbid ban_file exp_table news rules stat_bonus VAR_FILES = highscore banish_file bookarch temp.maps clockdata EXTRA_DIST = README .collect-stamp $(CONF_FILES) treasures.bld helpdir=$(pkgdatadir)/help dist_help_DATA = help/apply.en help/applymode.en \ help/bind.en help/bowmode.en help/brace.en \ help/cast.en help/chat.en help/drop.en help/dropall.en \ help/empty.en \ help/fire.en help/fire_stop.en \ help/golem.en help/invoke.en \ help/keys.en help/killpets.en \ help/listen.en help/maps.en \ help/mark.en help/melee.en help/mode.en \ help/motd.en help/mouse.en help/move.en \ help/news.en \ help/party.en help/party_rejoin.en help/peaceful.en \ help/petmode.en help/pickup.en \ help/quit.en help/range.en help/rename.en \ help/rules.en \ help/save.en help/shout.en help/showpets.en \ help/skills.en \ help/sort_inventory.en help/sound.en help/spells.en \ help/statistics.en help/take.en help/traps.en \ help/title.en help/unarmed_skill.en \ help/unbind.en help/use.en help/usekeys.en \ help/whereabouts.en \ help/wimpy.en \ help/apply.fr \ help/bowmode.fr \ help/dropall.fr \ help/killpets.fr \ help/knowledge.fr help/knowledge.en \ help/mark.fr \ help/applymode.fr \ help/brace.fr \ help/drop.fr \ help/listen.fr \ help/melee.fr \ help/bind.fr \ help/cast.fr \ help/empty.fr \ help/maps.fr \ help/mode.fr \ help/quest.fr help/quest.en wizhelpdir=$(pkgdatadir)/wizhelp dist_wizhelp_DATA = wizhelp/abil wizhelp/addexp \ wizhelp/banish \ wizhelp/create wizhelp/debug \ wizhelp/dump wizhelp/dumpallarchtypes \ wizhelp/dumpallmaps wizhelp/dumpallobjects \ wizhelp/dumpbelow wizhelp/dumpfriendlyobjects \ wizhelp/forget_spell wizhelp/free \ wizhelp/goto wizhelp/hide wizhelp/insert_into \ wizhelp/invisible \ wizhelp/kick wizhelp/learn_special_prayer \ wizhelp/learn_spell wizhelp/mon_aggr \ wizhelp/nodm \ wizhelp/nowiz wizhelp/overlay_save \ wizhelp/patch wizhelp/plugin \ wizhelp/pluglist wizhelp/plugout \ wizhelp/purge_quest_state \ wizhelp/purge_quests \ wizhelp/possess \ wizhelp/printlos wizhelp/remove \ wizhelp/reset wizhelp/set_god \ wizhelp/shutdown wizhelp/server_speed \ wizhelp/spellreset wizhelp/ssdumptable wizhelp/stats \ wizhelp/style_info wizhelp/summon \ wizhelp/teleport wizhelp/time \ wizhelp/toggle_shout \ wizhelp/who wizhelp/wizcast wizhelp/wizhelp \ wizhelp/wizpass admdir=$(pkgdatadir)/adm dist_adm_SCRIPTS = \ adm/map_info adm/map_expand.pl adm/mapslitter.pl adm/archsearch.pl \ adm/collect_images.pl i18ndir=$(pkgdatadir)/i18n dist_i18n_DATA = i18n/messages.en \ i18n/messages.fr MAINTAINERCLEANFILES = archetypes bmaps faces .collect-stamp \ animations smooth treasures.bld bmaps.paths crossfire.0 crossfire.1 PERL = @PERL@ crossfire.0: bmaps.paths $(PERL) $(srcdir)/adm/collect_images.pl -src $(srcdir) -png .collect-stamp: touch .collect-stamp collect: $(PERL) -I$(srcdir) collect.pl $(builddir)/arch $(PERL) $(srcdir)/adm/collect_images.pl -src $(srcdir) -png archonly: $(PERL) -I$(srcdir) collect.pl $(builddir)/arch ARCHONLY archetypes: .collect-stamp $(MAKE) collect faces: .collect-stamp $(MAKE) collect animations: .collect-stamp $(MAKE) collect bmaps.paths bmaps: .collect-stamp $(MAKE) collect smooth: .collect-stamp $(MAKE) collect install-data-local: archetypes crossfire.0 faces animations smooth collect.pl util.pl @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgconfdir) for i in $(CONF_FILES); do \ if [ ! -f $(DESTDIR)$(pkgconfdir)/$$i ]; then \ echo "Installing $$i"; \ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(pkgconfdir); \ fi \ done $(mkinstalldirs) $(DESTDIR)$(pkgstatedir) for i in $(VAR_FILES) ; do \ touch $(DESTDIR)$(pkgstatedir)/$$i ; \ done @for i in account datafiles players unique-items template-maps maps; do \ if [ ! -d $(DESTDIR)$(pkgstatedir)/$$i ]; then \ echo "Creating directory $(pkgstatedir)/$$i"; \ $(mkinstalldirs) $(DESTDIR)$(pkgstatedir)/$$i; \ fi; \ done # Special case above because the name we install to is different # than the name of the file if [ ! -d $(DESTDIR)$(pkgdatadir)/$$i ]; then \ echo "Creating directory $(pkgdatadir)/$$i"; \ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/$$i; \ fi; \ $(INSTALL_DATA) $(builddir)/treasures.bld $(DESTDIR)$(pkgdatadir)/treasures # Uninstall unchanged config/var files so make distcheck is happy # but leave changed file, so no configuration/game state is lost uninstall-local: -for i in $(CONF_FILES); do \ if test ! -f $(DESTDIR)$(pkgconfdir)/$$i ; then \ continue ; \ fi ; \ if diff -q $(srcdir)/$$i $(DESTDIR)$(pkgconfdir)/$$i ; then \ rm -f $(DESTDIR)$(pkgconfdir)/$$i ; \ fi ; \ done -for i in $(VAR_FILES) ; do \ if test ! -f $(DESTDIR)$(pkgstatedir)/$$i ; then \ continue ;\ fi ; \ if test `wc -c $(DESTDIR)$(pkgstatedir)/$$i|$(AWK) '{ print $$1 }'` -eq "0" ; then \ rm -f $(DESTDIR)$(pkgstatedir)/$$i ; \ fi ; \ done # This block makes the archive of the arch directory. archive:: $(AMTAR) -cvh --exclude=dev --exclude=.svn -f $(PACKAGE)-$(VERSION)-arch.tar arch $(GZIP) -cv9 $(PACKAGE)-$(VERSION)-arch.tar > ../$(PACKAGE)-$(VERSION)-arch.tar.gz $(BZIP) -cv --repetitive-best $(PACKAGE)-$(VERSION)-arch.tar > ../$(PACKAGE)-$(VERSION)-arch.tar.bz2 $(RM) $(PACKAGE)-$(VERSION)-arch.tar libArch: tar cvf A`perl puredate.pl`.tar arch treasures gzip A`perl puredate.pl`.tar �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/metaserver2��������������������������������������������������������������������0000644�0000145�0000012�00000006456�11731300544�013443� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������############################################################################## # metaserver2 values - the new metaserver logic # The only thing contained in this file is information related to metaserver2 # notification. If you do not want to advertise your server to the world # through the metaserver, you do not need to change anything in this file # # If you do choose to use the metaservers, all information here must # be accurate - if you falsify information (claiming your server is something # it is not), you may get blacklisted from the metaservers, and getting # yourself back on may be difficult. # # This file is broken into 2 sections: Information about the # metaservers themselves (noted with metaserver2 in the start # of the variable names) and information describing the server - # those names are not prefixed. # # set notification to on to send updated to metaservers metaserver2_notification off # metaserver2_servers list the metaservers - there can be # multiple lines to list multiple servers metaserver2_server http://crossfire.real-time.com/metaserver2/meta_update.php #metaserver2_server some other URL # Use localhostname to set your local host name. Many # systems want to advertise themselves differently than can be locally # resolved. Note: The hostname you put here must resolve to the # IP address that the update to the metaservers will come from, OR # the ip address must resolve to this hostname. In other words, # either a forward lookup or reverse lookup must point to this # host. You must put something here, even if it is just your ip # address. localhostname put.your.hostname.here # Generally, you will not need to use this - it will use the port number # that the server is using. However, if you are doing port redirection # at the firewall level, you may need to change this. The port number # the server will use is defined in include/config.h #portnumber 13327 # Two comments for the metaserver. The html comment will # be used on the web pages. The text comment will be used by # the client. Note that the client doesn't have as much space # to display the information, so you should generally put shorter # comments there. There is not any requirement that the # comments be the same. If you do use html in your comments, make # sure that it is all correct - no dangling markups, etc, as # that would likely result in messed up output on the web page, # and may warrant blacklisting. html_comment <b>Put an html comment here.</b> text_comment Put a comment here. # The codebase fields are used to note if your server is using # non standard set of maps, archetypes, or server. This is free # form text, but should be kept short. archbase Standard mapbase Standard codebase Standard # Flags are single character representations of aspects of the # server - useful if there is limited screen real estate to display # metaserver information. Only non standard behavior options are listed - # there isn't much point to list that a server is free, since most all servers # are free. So it is interesting to note is a server is pay for play. # List of defined flags so far: # # $ - pay to play (some form of payment necessary to play on server) # D - permanent death is set on server # K - killing of other players allowed (player killing) # # These will likely be extended in the future. #flags ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/news���������������������������������������������������������������������������0000644�0000145�0000012�00000000624�11731300544�012147� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This is the news file # it contain news send to players # when they connect. Because they # are sent in the order they are read # from this file, most recent/important # news should be put at bottom of file # each news has a title on a line # starting with % %server update This server support news and rules files. Server manager, please update those files located in the crossfire config directory. ������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/�����������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537044�013020� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/dump�������������������������������������������������������������������0000644�0000145�0000012�00000000435�11731300543�013621� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: dump <tag> Using dump, you can see the attributes of any item in the game. To find the object number of an item you wish to view, click on it. If this item is in your inventory, or you are standing over, click on yourself and the item tags will be displayed. See also: patch �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/purge_quest_state������������������������������������������������������0000644�0000145�0000012�00000000311�11731300543�016410� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This command purges the quest state for the players from the server. It does not remove said state from the disk. It is useful to change, via .quest file editing, the status of a quest for a player. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/dumpallobjects���������������������������������������������������������0000644�0000145�0000012�00000000120�11731300543�015653� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: dumpallobjects This prints out a list of all active objects to stderr. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/nodm�������������������������������������������������������������������0000644�0000145�0000012�00000000127�11731300543�013607� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: nodm or nowiz Both of these commands will return you to normal player status. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/reset������������������������������������������������������������������0000644�0000145�0000012�00000001170�11731300543�013773� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: reset <mapname> or reset full-reset <mapname> All other characters must be off of the map at the time of reset. This will NOT reset any unique items, such as players apartments, in the case of unique items being on a map, it will cause them to be saved before the map is reset. Using 'reset .' will reset the map that the player is currently on. 'full-reset' enables to totally reset a map with unique squares. To totally reset a player's unique map, you must not be in it and use the full path. Trying to use 'reset full-reset .' on such a unique map will give you the full path required to totally reset the map. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/dumpallarchtypes�������������������������������������������������������0000644�0000145�0000012�00000000116�11731300543�016231� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: dumpallarchtypes This prints out a list of all archetypes to stderr. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/debug������������������������������������������������������������������0000644�0000145�0000012�00000000300�11731300543�013731� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: debug <level> Without arguments, debug will simply print the current level of debugging. Valid debugging levels are 0-3 (llevError = 0, llevInfo = 1, llevDebug = 2, llevMonster = 3). ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/free�������������������������������������������������������������������0000644�0000145�0000012�00000000357�11731300543�013600� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: free <tag> Free should ONLY be used after remove. Freeing an object that has not been removed will cause the game to crash. For most objects, simply removing them is sufficient and they will eventually be freed. See also: remove ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/hide�������������������������������������������������������������������0000644�0000145�0000012�00000000535�11731300543�013566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������hide: This hides the DM from being seen by other players. This is done by making the player perpetually invisible. It also results in the player not showing up in the who command, maps command, or being reported as a player on the metaserver. Note that the DM can still do things that makes his presence known, e.g., shout, other DM actions, etc. �������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/goto�������������������������������������������������������������������0000644�0000145�0000012�00000000154�11731300543�013622� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: goto <mapname> Using this command will instantly move you to the start point of the map specified. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/abil�������������������������������������������������������������������0000644�0000145�0000012�00000000267�11731300543�013566� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: abil <player> <attribute> <value> abil will permanently change the ability scores of players. Attribute is one of str, dex, con, int, wis, pow, cha. Value may not exceed 30. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/set_god����������������������������������������������������������������0000644�0000145�0000012�00000000133�11731300543�014273� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: set_god <player> <diety> This will change a players deity to the deity specified. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/teleport���������������������������������������������������������������0000755�0000145�0000012�00000000136�11731300543�014513� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: teleport <player> Teleport will bring you immediately next to the player's location. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/style_info�������������������������������������������������������������0000644�0000145�0000012�00000000125�11731300543�015023� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: style_info This will print out information regarding current styles in use. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/overlay_save�����������������������������������������������������������0000644�0000145�0000012�00000000460�11731300543�015351� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: overlay_save This will save everything on the current map that was not originally part of it as an overlay. The overlay will then be loaded anytime the map itself is loaded. Be careful with this as EVERYTHING on the map will be saved in an overlay, such as spawned monsters and dropped objects. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/kick�������������������������������������������������������������������0000644�0000145�0000012�00000000247�11731300543�013576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: kick <player> This command will kick a player off the server. If used without an argument, it will kick all players off the server with the exception of you. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/learn_spell������������������������������������������������������������0000644�0000145�0000012�00000000431�11731300543�015150� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: learn_spell <spell name> This will allow you to permanently learn a spell. <spell name> may be a partial spell name. It is similar to learn_special_prayer except that you will retain knowledge of this spell regardless of changing deities. See also: learn_special_prayer ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/banish�����������������������������������������������������������������0000644�0000145�0000012�00000000754�11731300543�014124� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: banish <player> 'Kicks' the named player and adds their current IP address to the banish file. This will prevent the named player from logging into the server (from their current IP). This is an in-game version of the ban function meant for short term relief of persistent goons and for DMs who do not have shell access. It is probably a good idea to clear out the banish file (var/crossfire/banish_file) on a regular basis and delete or move any entries to the ban_file if desired. ��������������������crossfire-1.70.0/lib/wizhelp/plugin�����������������������������������������������������������������0000644�0000145�0000012�00000000400�11731300543�014142� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: plugin <plugin name> This will load a new plugin into memory. Using this with no arguments, or invalid arguments will cause a server crash. Plugin name should be as it appears in your plugin directory. Double check the names before using plugins. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/dumpfriendlyobjects����������������������������������������������������0000644�0000145�0000012�00000000136�11731300543�016726� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: dumpfriendlyobjects This prints out a list of all active friendly objects to stderr. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/insert_into������������������������������������������������������������0000644�0000145�0000012�00000000146�11731300543�015210� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: insert_into <item> <item> This will insert the 2nd item in the first. 2nd can't be a player. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/mon_aggr���������������������������������������������������������������0000644�0000145�0000012�00000000215�11731300543�014441� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: mon_aggr Toggles the aggression of the monster you are currently possessing. Not recommended to be flipped on yourself as a player. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/addexp�����������������������������������������������������������������0000644�0000145�0000012�00000000431�11731300543�014115� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: addexp player quantity [skill] Adds experience to player. Quantity can be negative to subtract. Permanent experience is updated too, but will never fall below (player's experience * permanent experience ratio). If skill is specified, update that skill's experience too. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/printlos���������������������������������������������������������������0000644�0000145�0000012�00000000074�11731300543�014525� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: printlos This is used for line of sight debugging. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/toggle_shout�����������������������������������������������������������0000644�0000145�0000012�00000000223�11731300543�015352� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: toggle_shout <player> Will toggle the no_shout bit for the named player. This will prevent or enable the player to use the shout command. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/server_speed�����������������������������������������������������������0000644�0000145�0000012�00000000227�11731300543�015341� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: server_speed [newspeed] Without arguments, this prints current server speed. If given an argument, it will set server speed to the new speed. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/pluglist���������������������������������������������������������������0000644�0000145�0000012�00000000067�11731300543�014520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: pluglist This shows currently loaded plugins. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/possess����������������������������������������������������������������0000644�0000145�0000012�00000000326�11731300543�014352� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: possess (nr) Take over the body of a given monster. It is not suggested you try to possess another player, as bad things will undoubtably happen. Allows DM to control the monster directly with his client. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/nowiz������������������������������������������������������������������0000644�0000145�0000012�00000000127�11731300543�014020� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: nodm or nowiz Both of these commands will return you to normal player status. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/wizhelp����������������������������������������������������������������0000644�0000145�0000012�00000001412�11731300543�014332� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������The following commands are available to you: dmhelp <command name> abil <player> <attribute> <value> addexp <player> <how much> create <number> <bonus> <archetype> debug <level> dump <tag> dumpallarchtypes dumpbelow dumpallmaps dumpallobjects dumpfriendlyobjects dumpmap forget_spell <spell name> free <tag> goto <map> invisible kick <player> learn_special_prayer <spell name> learn_spell <spell name> nodm nowiz overlay_save patch <tag> <variable> <value> plugin <plugin name> pluglist plugout <plugin to remove> printlos reset <map> remove <tag> set_god <player> <god> shutdown speed <new speed> spellreset ssdumptable stats <player> style_info summon <player> time wizcast [<on_off>] wizpass who General notes for DMs: Case sensitivity is important in player and map names. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/spellreset�������������������������������������������������������������0000644�0000145�0000012�00000000105�11731300543�015030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: spellreset This causes the spell table to be reinitialized. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/summon�����������������������������������������������������������������0000644�0000145�0000012�00000000267�11731300543�014175� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: summon <player> Summoning a player will bring them immediately to your location. There is no 'reverse' summoning, except to go to a map yourself and summon the player again. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/learn_special_prayer���������������������������������������������������0000644�0000145�0000012�00000000225�11731300543�017034� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: learn_special_prayer <prayer name> This will allow you to permanently learn a spell as a special prayer of your god. See also: learn_spell ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/wizpass����������������������������������������������������������������0000644�0000145�0000012�00000000124�11731300543�014347� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: wizpass This will toggle on and off your ability to walk thru walls as DM. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/shutdown���������������������������������������������������������������0000644�0000145�0000012�00000000104�11731300543�014520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: shutdown This will cause the server to shut down entirely. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/forget_spell�����������������������������������������������������������0000644�0000145�0000012�00000000141�11731300543�015333� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: forget_spell <spell name> This will cause you to permanently lose knowledge of a spell. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/ssdumptable������������������������������������������������������������0000644�0000145�0000012�00000000113�11731300543�015170� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: ssdumptable This will print out the current hash table to stderr. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/time�������������������������������������������������������������������0000644�0000145�0000012�00000000136�11731300543�013610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: time This will give additional information about server performance when used as dm. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/wizcast����������������������������������������������������������������0000644�0000145�0000012�00000000235�11731300543�014336� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: wizcast [<on_off>] This will enable/disable your ability to cast spells and prayers anywhere as DM. Without argument it toggles between on and off. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/create�����������������������������������������������������������������0000644�0000145�0000012�00000001320�11731300543�014111� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: create <number> <bonus> <archetype> <variable1> <value1> <variable2> <value2> ... Creating items is rather dangerous and tends to crash the server when creating some items. The number and bonus attributes may be left off, or the bonus itself may be left off any time. If a bonus is desired, number must be specified as well. Archetype must be specified in all cases. Variable and values may be left off at any time, but specifying a variable requires a value also be specified. Multipart values such as for an item name must be quoted. Example: create 5 +1 sword name "Spiffy Sword" face chicken.171 This would create 5 +1 longswords named 'Spiffy Sword' that look like chickens. See also: patch, dump ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/dumpbelow��������������������������������������������������������������0000644�0000145�0000012�00000000155�11731300543�014651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: dumpbelow dumpbelow will dump the attributes of the top item you are standing over. See also: dump �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/dumpallmaps������������������������������������������������������������0000644�0000145�0000012�00000000124�11731300543�015166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: dumpallmaps This prints out map information for all active maps to stderr. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/invisible��������������������������������������������������������������0000644�0000145�0000012�00000000071�11731300543�014634� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: invisible Makes you invisible for a short time. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/who��������������������������������������������������������������������0000644�0000145�0000012�00000000122�11731300543�013442� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: who When used as DM, this will also print out the object tag of players. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/purge_quests�����������������������������������������������������������0000644�0000145�0000012�00000000275�11731300543�015404� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This command purges the quests definitions from the server memory. It does not remove anything from the disk. This is used to avoid restarting the server when a quest definition changes. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/remove�����������������������������������������������������������������0000644�0000145�0000012�00000000171�11731300543�014146� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: remove <tag> Remove will, surprisingly enough, remove the object specified by the tag supplied. See also: free �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/patch������������������������������������������������������������������0000644�0000145�0000012�00000000370�11731300543�013751� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: patch <tag> <variable> <value> Using the patch command, you can radically modify the properties of objects in the game. Simply specify the object to modify and the new values of its variables (or completely new variables). See also: dump ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/stats������������������������������������������������������������������0000644�0000145�0000012�00000000103�11731300543�014002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax stats <player> This displays the named players statistics. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/wizhelp/plugout����������������������������������������������������������������0000644�0000145�0000012�00000000115�11731300543�014346� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Syntax: plugout <plugin name> This will remove a loaded plugin from memory. ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/stat_bonus���������������������������������������������������������������������0000644�0000145�0000012�00000021524�11731300544�013356� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file sets the bonus for the various attributes, removing # the hard coded values from the server. # # The default provided here match the old values as closely as possible, # but there may be minor differences due to the way the calculations # are done. # # Because the parsing is not super intelligent, format is as follows: # table name to fill in # opening brace # stat values - they are comma separated, but any non digit will # act as a seperator when the values are read in. # closing brace # # Repeat for all stats. If the server has an issue reading them, # it will generate an error, and should abort. # # The names are also more consistent in this file - basically, # stat name_type of bonus_bonus # In the old living.c file, there was a mix - con_bonus (really hp), # sp_bonus, etc. The idea of putting in the stat name is to try and # provide more information on what does what so when wants to make adjustments, # one has a better idea what is being adjusted. # # Note that all stats must be fully filled in, eg, you can not fill in only # the first 20 entries of a stat if the maximum in 30 - all 30 must be # filled in. All stats use the same max_stat value. # # Note also that the loader does not do anything to make sure the # stat bonus make any real sense, eg, a bonus for a higher stat could be # lower (worse) than if the stat was one less. The loader can not # really check for these, because it does not have any good idea to # know what is good or bad - for some stats, low numbers are better, # for others, high numbers are better # max_stat must be declared before any of the stat bonuses. max_stat 30 # How many extra HP a character gets per level (first 10). Old # living.c file was for every 2 levels, which is why these bonuses # are roughly half the old ones. con_hp_bonus { -3, -2.5, -2, -1.5, -1, -0.5, -0.5, 0, 0, 0, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 6, 7, 8, 9, 10, 11, 12.5, 15, 20, 25 } # SP (mana) bonus. Bonus the character gets is 2/3 pow, 1/3 int. # Note that in old file, the formula used to be (2*pow + int) / 12 - # effectively diving old results by 4 (eg, table had 30 for a 26 stat, # which effectively meant a 7.5 bonus) - that logic is removed, # so these bonuses are real bonuses for each level, presuming both # stats were same value - if pow gets bonus of 6, int bonus of 2, # that would be (2*6 + 4)/ 3, or 5. # Note that for first level, character get double this bonus - this # is hard coded into the server. pow_int_sp_bonus { -2.5, -2.5, -2.25, -2, -1.75, -1.5, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, .75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 3, 3.75, 5, 6.25, 7.5, 10, 12.5, 17.5, 25 } # This is exactly like pow_int_sp_bonus above, # but is 2/3 wis, 1/3 power. In fact, table is exactly # the same, and like sp bonus, character gets double value at # first level. wis_pow_grace_bonus { -2.5, -2.5, -2.25, -2, -1.75, -1.5, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, .75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 3, 3.75, 5, 6.25, 7.5, 10, 12.5, 17.5, 25 } # There are lots of factors into shop pricing, cha # being one of them. Old system was a float, # and the relevant formula was (bonus-1)/(bonus+1) # Values below are converted with that formula # and muliplied by 100 to make them integers. # Note that due to rounding, some minor adjustments # over the literal translated values have been made # to make the changes smoother. # # If one really wants to know shop prices: # adjustment is .4 + .5*((bonus below)/100) # # Cost to buy is 1*(1+adjustment), cost to sell is (1-adjusment) # Thus, if the value below is 20, character pays 50% above # and gets 50% of value (.4 + .5*(20/100) = .5 # # That .4 mentioned above could get all the way down to .1 # with maximum bargaining skill. # # Best way to think of it: Bonus below are percentage discount/ # premium for buying/selling on the charisma side of things. # If there was no bargaining in the game and only cha was used, # the values below would be the total percent values, eg, a value # of 50 means if you bought an item of value 100, you would pay # 150, and get 50 if sold. # # Note: These values should probably really be re-done - # I believe the formula that original values were based on changed # at some point - it is also interesting to note that this is # probably one of the few attributes where the effective # bonus one gets at higher levels is lower (eg, difference # in price for 26 to 20 is not as big a savings as 41 to 33). # With revised shop code, max bonus should probably be much closer # to zero (still would be 10% price difference even with max # bargaining) cha_shop_bonus { 81, 81, 80, 78, 75, 71, 67, 63, 60, 55, 50, 49, 47, 46, 44, 43, 41, 39, 37, 35, 33, 32, 31, 30, 28, 27, 26, 24, 23, 21, 20 } # dex_bonus is used for several things for players - # AC, bonus to hit with bows, bonus to damage with # bows, and bonus to hit with thrown weapons. # As such, name just remains dex bonus for now, but # arguably, all of these different bonuses should probably # get broken out to other tables. dex_bonus { -4, -3, -2, -2, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7 } # How much faster the character moves or attacks. # These are the usual tick counts. # Note - I made some adjustments to smooth these out - # I don't see a good reason to go from .15 to .20, repeat # 4 times, then jump to 0.25. With this change, at # some points, the bonus is slightly higher (.02) than # before, at other points, slightly lower. # dex_speed_bonus { -0.1, -0.09, -0.08, -0.07, -0.06, -0.05, -0.025, 0.00, 0.00, 0.00, 0.00, 0.025, 0.05, 0.07, 0.09, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.24, 0.25 } # # damage bonus from strength # str_damage_bonus { -2, -2, -2, -1, -1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 9, 10 } # bonus to hit from strength. # renamed from thaco_bonus, since thaco (really thac0) is an acronym # for 'to hit AC 0' - in old AD&D, it was a literal number. This bonus # here is to hit any ac. # str_hit_bonus { -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5 } # This determines how much the character can carry - # note that characters start to get penalties to movement before # reaching maximum. # str_weight_limit { 200000, 250000, 300000, 350000, 400000, 500000, 600000, 700000, 800000, 900000, 1000000, 1100000, 1200000, 1300000, 1400000, 1500000, 1650000, 1800000, 1950000, 2100000, 2250000, 2400000, 2550000, 2700000, 2850000, 3000000, 3250000, 3500000, 3750000, 4000000, 4500000 } # # Chance to learn a spell from a spellbook. Note that # overall level also increases these odds by a minor amount # (level/5). int or wis is used depending on the type of spell. # int_wis_learn_spell { 0, 0, 0, 1, 2, 4, 8, 12, 16, 25, 36, 45, 55, 65, 70, 75, 80, 85, 90, 95, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 } # # Chance for a cleric to fail casting a spell. # The chance is random(0,99) < ((spell_level * chance) / char_level) # Thus, if chance is 0, character never fails. If chance is 10, # then if the character is same level as spell, 10% chance of # of failure - if character is double level of the spell, 5% chance # of failure. # wis_cleric_chance { 100, 100, 100, 100, 90, 80, 70, 60, 50, 40, 35, 30, 25, 20, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 } # Bonus for turning (scarring) undead with various prayers. # The bonus effectively increase the character level. # To scare a creature, the characters turn level has to be # higher than the creatures level, so this bonus can be # pretty important. Note if the creature being turned is not # an enemy of the characters god, turn bonus has to greater than # twice the creatures level wis_turn_bonus { -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 15 } # fear bonus increases the duration for fear # spells (it does not affect other fear attacks, # like those from weapons.) # Note: The comment in living.c, that these are bonuses # to fear resistance for players, seems incorrect/no longer # valid - the only place where get_fear_bonus() is called # is from cast_cone() # # These bonuses are as they were in the living.c # file - the only rationale I can think of for low stats # giving the bonus is idea of really ugly characters # being more fearsome - however, this goes against # the idea of higher stat is better. # cha_fear_bonus { 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/dm_file������������������������������������������������������������������������0000644�0000145�0000012�00000001233�11731300544�012567� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This file contains authorization for dm access. There are 3 fields, like # this: name:password:host # Any field can be ignored if a * is used instead of a normal value - this # is the extent of the wildcarding. # # Lines that start with # are obviously ignored. This file is read each time # someone attempts to become dm, so it can be changed after the server is # running and results will apply to the present server that is running. # # Example entries: # master:topsecret:* (name must be master, password is topsecret, allow any # host # *:notelling:* (only matches password) # # It is pretty easy - you should be able to figure it out with few problems ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/faces��������������������������������������������������������������������������0000644�0000145�0000012�00000547422�11732536603�012300� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is generated by collect.pl, do not edit face Bk.x11 magicmap black end face CSword.111 magicmap black end face CSword.112 magicmap black end face CSword.113 magicmap black end face CSword.114 magicmap black end face CSword.115 magicmap black end face CSword.116 magicmap black end face CSword.117 magicmap black end face CSword.118 magicmap black end face CSword.119 magicmap black end face CSword.11A magicmap black end face CSword.11B magicmap black end face CSword.11C magicmap black end face Cwyvern.x71 magicmap black end face DShield.111 magicmap black end face DShield.112 magicmap black end face DShield.113 magicmap black end face GreatDemon.x11 magicmap red end face Nimground3_purple.111 magicmap black is_floor 1 end face Nimground3_purple.112 magicmap black is_floor 1 end face Nimground3_purple.113 magicmap black is_floor 1 end face Nimground3_purple.114 magicmap black is_floor 1 end face Pdragonmail.111 magicmap black end face Pdragonmail.112 magicmap black end face a_bridge1.111 magicmap grey end face a_bridge2.111 magicmap grey end face a_civic.x11 visibility 100 end face a_guard_h.111 magicmap blue end face a_guard_m.111 magicmap grey end face acid_pool.111 visibility 100 magicmap green is_floor 1 end face acid_pool.112 magicmap green end face acidsphere.111 magicmap green end face acidsphere.112 magicmap green end face acidsphere.113 magicmap green end face acidsphere.114 magicmap green end face afloor.131 magicmap black is_floor 1 end face afloor.171 magicmap black is_floor 1 end face afloor_blue.131 magicmap black is_floor 1 end face afloor_blue.171 magicmap black is_floor 1 end face afloor_magenta.131 magicmap black is_floor 1 end face afloor_magenta.171 magicmap black is_floor 1 end face ahole.131 visibility 100 magicmap black end face ahole.171 visibility 100 magicmap black end face ahole_blue.131 visibility 100 magicmap black end face ahole_blue.171 visibility 100 magicmap black end face ahole_magenta.131 visibility 100 magicmap black end face ahole_magenta.171 visibility 100 magicmap black end face altar.111 visibility 50 magicmap grey end face altar.112 visibility 50 magicmap grey end face altardevo.111 visibility 50 magicmap grey end face altargaea.111 visibility 50 magicmap grey end face altargnarg.111 visibility 50 magicmap grey end face altargoro.111 visibility 50 magicmap grey end face altargoro.112 visibility 50 magicmap grey end face altargoro.113 visibility 50 magicmap grey end face altarixalovh.111 visibility 50 magicmap grey end face altarlyth.111 visibility 50 magicmap grey end face altarmostr.111 visibility 50 magicmap grey end face altarnone.111 visibility 50 magicmap grey end face altarrugg.111 visibility 50 magicmap grey end face altarrugg.112 visibility 50 magicmap grey end face altarrugg.113 visibility 50 magicmap grey end face altarrugg.114 visibility 50 magicmap grey end face altarrugg.115 visibility 50 magicmap grey end face altarrugg.116 visibility 50 magicmap grey end face altarsori.111 visibility 50 magicmap grey end face altarsori.112 visibility 50 magicmap grey end face altarsori.113 visibility 50 magicmap grey end face altarsori.114 visibility 50 magicmap grey end face altarsori.115 visibility 50 magicmap grey end face altarsori.116 visibility 50 magicmap grey end face altarvalk.111 visibility 50 magicmap grey end face altarvalr.111 visibility 50 magicmap grey end face altarvalr.112 visibility 50 magicmap grey end face altarvalr.113 visibility 50 magicmap grey end face amber_coin.111 magicmap orange end face ambolt.111 visibility 100 magicmap black end face amethyst.111 magicmap green end face amethyst.112 magicmap green end face amethyst_exceptional.111 magicmap green end face amethyst_flawless.111 magicmap green end face amulet.111 magicmap orange end face amulet_aethereality.111 magicmap yellow end face amulet_calling_death.111 magicmap yellow end face amulet_dark.111 magicmap orange end face amulet_darkmagenta.111 magicmap orange end face amulet_darkred.111 magicmap orange end face amulet_deflection.111 magicmap yellow end face amulet_destruction.111 magicmap yellow end face amulet_empowerement.111 magicmap yellow end face amulet_free_action.111 magicmap yellow end face amulet_gray.111 magicmap grey end face amulet_holiness.111 magicmap yellow end face amulet_lif.111 magicmap yellow end face amulet_magenta.111 magicmap orange end face amulet_magi.111 magicmap yellow end face amulet_power.111 magicmap yellow end face amulet_red.111 magicmap orange end face amulet_shielded_mind.111 magicmap yellow end face amulet_shielding.111 magicmap yellow end face amulet_sorrow.111 magicmap yellow end face amulet_sustenance.111 magicmap yellow end face amulet_unholiness.111 magicmap yellow end face amulet_white.111 magicmap grey end face anchor.111 magicmap brown end face angel.111 magicmap black end face angelknight.x11 magicmap black end face angry_floor.111 magicmap red end face ant.111 magicmap brown end face ant.112 magicmap brown end face ant_egg.111 magicmap dark_orange end face ant_gen.111 magicmap brown end face ant_larvae.111 magicmap green end face ant_larvae.112 magicmap green end face ape.131 magicmap brown end face ape.132 magicmap brown end face ape.171 magicmap brown end face ape.172 magicmap brown end face apple.111 magicmap red end face apple_eighth.111 magicmap red end face apple_fourth.111 magicmap red end face apple_half.111 magicmap red end face archangel.x11 magicmap white end face archgold.111 visibility 100 magicmap brown end face archgreen.111 visibility 100 magicmap green end face archon.111 magicmap red end face archon.222 magicmap red end face archon.333 magicmap red end face archon.444 magicmap red end face archtree.111 visibility 100 magicmap brown end face archwood.111 visibility 100 magicmap brown end face arm.111 magicmap khaki end face armless_cook.111 magicmap black end face armless_cook.131 magicmap black end face armless_cook.151 magicmap black end face armless_cook.171 magicmap black end face armourtroll2.111 magicmap brown end face armourtroll2.112 magicmap brown end face armourtroll3.111 magicmap brown end face armourtroll4.111 magicmap brown end face arrow.101 magicmap red end face arrow.111 magicmap red end face arrow.121 magicmap red end face arrow.131 magicmap red end face arrow.141 magicmap red end face arrow.151 magicmap red end face arrow.161 magicmap red end face arrow.171 magicmap red end face arrow.181 magicmap red end face arrow_fire.101 magicmap red end face arrow_fire.111 magicmap red end face arrow_fire.121 magicmap red end face arrow_fire.131 magicmap red end face arrow_fire.141 magicmap red end face arrow_fire.151 magicmap red end face arrow_fire.161 magicmap red end face arrow_fire.171 magicmap red end face arrow_fire.181 magicmap red end face arrow_frost.101 magicmap red end face arrow_frost.111 magicmap red end face arrow_frost.121 magicmap red end face arrow_frost.131 magicmap red end face arrow_frost.141 magicmap red end face arrow_frost.151 magicmap red end face arrow_frost.161 magicmap red end face arrow_frost.171 magicmap red end face arrow_frost.181 magicmap red end face arrow_lightning.101 magicmap red end face arrow_lightning.111 magicmap red end face arrow_lightning.121 magicmap red end face arrow_lightning.131 magicmap red end face arrow_lightning.141 magicmap red end face arrow_lightning.151 magicmap red end face arrow_lightning.161 magicmap red end face arrow_lightning.171 magicmap red end face arrow_lightning.181 magicmap red end face arrow_paralysis.101 magicmap grey end face arrow_paralysis.111 magicmap grey end face arrow_paralysis.121 magicmap grey end face arrow_paralysis.131 magicmap grey end face arrow_paralysis.141 magicmap grey end face arrow_paralysis.151 magicmap grey end face arrow_paralysis.161 magicmap grey end face arrow_paralysis.171 magicmap grey end face arrow_paralysis.181 magicmap grey end face arrow_poison.101 magicmap red end face arrow_poison.111 magicmap red end face arrow_poison.121 magicmap red end face arrow_poison.131 magicmap red end face arrow_poison.141 magicmap red end face arrow_poison.151 magicmap red end face arrow_poison.161 magicmap red end face arrow_poison.171 magicmap red end face arrow_poison.181 magicmap red end face ashes.111 magicmap black end face asteroid.111 magicmap grey end face asteroid.112 magicmap grey end face asteroid.121 magicmap grey end face asteroid.131 magicmap grey end face asteroid.141 magicmap grey end face asteroid.151 magicmap grey end face asteroid.161 magicmap grey end face asteroid.171 magicmap grey end face asteroid.181 magicmap grey end face avatar.131 magicmap grey end face awall_0.111 visibility 100 magicmap grey end face awall_1.111 visibility 100 magicmap grey end face awall_2.111 visibility 100 magicmap grey end face awall_3.111 visibility 100 magicmap grey end face awall_4.111 visibility 100 magicmap grey end face awall_5.111 visibility 100 magicmap grey end face awall_6.111 visibility 100 magicmap grey end face awall_7.111 visibility 100 magicmap grey end face awall_8.111 visibility 100 magicmap grey end face awall_9.111 visibility 100 magicmap grey end face awall_A.111 visibility 100 magicmap grey end face awall_B.111 visibility 100 magicmap grey end face awall_C.111 visibility 100 magicmap grey end face awall_D.111 visibility 100 magicmap grey end face awall_E.111 visibility 100 magicmap grey end face awall_F.111 visibility 100 magicmap grey end face awall_w_0.111 visibility 100 magicmap black end face awall_w_0.112 visibility 100 magicmap black end face awall_w_0.113 visibility 100 magicmap black end face awall_w_0.114 visibility 100 magicmap black end face awall_w_0.115 visibility 100 magicmap black end face awall_w_0.116 visibility 100 magicmap black end face awall_w_0.117 visibility 100 magicmap black end face awall_w_1.111 visibility 100 magicmap black end face awall_w_1.112 visibility 100 magicmap black end face awall_w_1.113 visibility 100 magicmap black end face awall_w_1.114 visibility 100 magicmap black end face awall_w_1.115 visibility 100 magicmap black end face awall_w_1.116 visibility 100 magicmap black end face awall_w_1.117 visibility 100 magicmap black end face awall_w_1.118 visibility 100 magicmap black end face awall_w_1.119 visibility 100 magicmap black end face awall_w_1.11A visibility 100 magicmap black end face awindow_0.111 visibility 100 magicmap brown end face awindow_1.111 visibility 100 magicmap brown end face axe_1.111 magicmap brown end face axe_2.111 magicmap white end face axe_3.111 magicmap white end face axe_4.111 magicmap white end face axe_5.111 magicmap black end face b_axe1.111 magicmap white end face b_bsword_1.111 magicmap white end face b_bsword_2.111 magicmap white end face b_dagger.111 magicmap grey end face b_fullhelmet.111 magicmap grey end face b_gauntlet_s.111 magicmap grey end face b_helmet.111 magicmap black end face b_hornhelmet.111 magicmap grey end face b_lsword.111 magicmap grey end face b_plate_mail.111 magicmap blue end face b_scale_mail.111 magicmap black end face b_scimitar.111 magicmap grey end face b_shield.111 magicmap grey end face b_sicklesword.111 magicmap white end face b_slicingknife.111 magicmap white end face b_small_shie.111 magicmap brown end face b_ssword_1.111 magicmap white end face b_ssword_2.111 magicmap white end face b_sword_1.111 magicmap blue end face b_sword_2.111 magicmap white end face baby_drag.111 magicmap red end face baby_drag.112 magicmap red end face baby_drag.113 magicmap red end face bag.111 magicmap khaki end face bag_popcorn.111 magicmap red end face bagpipe.111 magicmap orange end face bagpipe.112 magicmap orange end face bagpipe.113 magicmap orange end face bagpipe.114 magicmap orange end face bagpipe.115 magicmap orange end face bagpipe.116 magicmap orange end face bagpipe.117 magicmap orange end face bagpipe.118 magicmap orange end face bagpipe.119 magicmap orange end face bagpipe.11A magicmap orange end face ball_lightning.111 visibility 100 magicmap yellow is_floor 1 end face ball_lightning.222 magicmap yellow end face ball_lightning.333 magicmap yellow end face ball_lightning.444 magicmap yellow end face balm_gen.111 magicmap light_blue end face banishment.111 magicmap black end face banishment.112 magicmap black end face banishment.113 magicmap black end face bank.x11 visibility 100 magicmap white end face bank_west.x11 visibility 100 magicmap white end face banshee.111 magicmap black end face banshee.112 magicmap black end face barbarian.111 magicmap grey end face barbarian.131 magicmap grey end face barbarian.151 magicmap grey end face barbarian.171 magicmap grey end face barn.x11 visibility 100 magicmap brown end face barn2.x11 visibility 100 magicmap brown end face barn2_northwest.x11 visibility 100 magicmap brown end face barn_west.x11 visibility 100 magicmap brown end face barrack_l.x11 visibility 100 magicmap brown end face barrack_s.111 visibility 100 magicmap brown end face barrack_u.x11 visibility 100 magicmap brown end face barrel.111 magicmap brown end face baslic.x31 magicmap black end face bat.111 magicmap black end face bat.112 magicmap black end face bat.113 magicmap black end face bat_gen.111 magicmap black end face bat_wing.111 magicmap black end face beach.111 is_floor 1 end face bear.x31 magicmap brown end face bed_1.111 magicmap brown end face bed_save.111 magicmap brown end face bee.111 magicmap dark_orange end face bee.112 magicmap dark_orange end face bee_gen.111 magicmap brown end face beehive.111 magicmap light_blue end face beehive.112 magicmap light_blue end face behemoth.x31 magicmap black end face behold_eye.111 magicmap white end face behold_gen.111 magicmap red end face beholder.111 magicmap green end face beholder.112 magicmap green end face beholder.113 magicmap green end face beholder.114 magicmap green end face beholder_leader.111 magicmap green end face beige-cyan-c-marble.111 magicmap grey is_floor 1 end face beige-cyan-c-marble.112 magicmap grey is_floor 1 end face beige-cyan-c-marble.113 magicmap grey is_floor 1 end face beige-cyan-c-marble.114 magicmap grey is_floor 1 end face beige-green-c-marble.111 magicmap grey is_floor 1 end face beige-green-c-marble.112 magicmap grey is_floor 1 end face beige-green-c-marble.113 magicmap grey is_floor 1 end face beige-green-c-marble.114 magicmap grey is_floor 1 end face beige-pink-c-marble.111 magicmap grey is_floor 1 end face beige-pink-c-marble.112 magicmap grey is_floor 1 end face beige-pink-c-marble.113 magicmap grey is_floor 1 end face beige-pink-c-marble.114 magicmap grey is_floor 1 end face beige-white-c-marble.111 magicmap grey is_floor 1 end face beige-white-c-marble.112 magicmap grey is_floor 1 end face beige-white-c-marble.113 magicmap grey is_floor 1 end face beige-white-c-marble.114 magicmap grey is_floor 1 end face beigemarble.111 magicmap grey is_floor 1 end face belzebub.x11 magicmap khaki end face bench_0.111 visibility 100 magicmap brown end face bench_1.111 visibility 100 magicmap brown end face bench_2.111 visibility 100 magicmap brown end face bench_3.111 visibility 100 magicmap brown end face bench_4.111 visibility 100 magicmap brown end face bench_5.111 visibility 100 magicmap brown end face bench_6.111 visibility 100 magicmap brown end face bench_7.111 visibility 100 magicmap brown end face bench_8.111 visibility 100 magicmap brown end face bench_9.111 visibility 100 magicmap brown end face bench_A.111 visibility 100 magicmap brown end face bench_B.111 visibility 100 magicmap brown end face bench_C.111 visibility 100 magicmap brown end face bench_D.111 visibility 100 magicmap brown end face bench_E.111 visibility 100 magicmap brown end face bench_F.111 visibility 100 magicmap brown end face bforest.111 magicmap green end face big_club.111 magicmap brown end face big_demon.x71 magicmap red end face big_eye.111 magicmap white end face big_wiz.x11 magicmap brown end face bigblue_wiz.x11 magicmap brown end face biggalleon.x11 visibility 100 magicmap white end face bighorn_he.111 magicmap grey end face bird.111 magicmap brown end face bird.112 magicmap brown end face bird.131 magicmap brown end face bird.132 magicmap brown end face bird.151 magicmap brown end face bird.152 magicmap brown end face bird.171 magicmap brown end face bird.172 magicmap brown end face bird_gen.111 magicmap red end face black_dragon2.151 magicmap black end face blackmarble.111 magicmap grey is_floor 1 end face blackrock.111 magicmap black is_floor 1 end face blackroot.111 magicmap black end face blades.111 magicmap black end face blake_0.111 visibility 100 magicmap light_blue end face blake_1.111 visibility 100 magicmap light_blue end face blake_2.111 visibility 100 magicmap light_blue end face blake_3.111 visibility 100 magicmap light_blue end face blake_4.111 visibility 100 magicmap light_blue end face blake_5.111 visibility 100 magicmap light_blue end face blake_6.111 visibility 100 magicmap light_blue end face blake_7.111 visibility 100 magicmap light_blue end face blake_8.111 visibility 100 magicmap light_blue end face blake_9.111 visibility 100 magicmap light_blue end face blake_A.111 visibility 100 magicmap light_blue end face blake_B.111 visibility 100 magicmap light_blue end face blake_C.111 visibility 100 magicmap light_blue end face blake_D.111 visibility 100 magicmap light_blue end face blake_E.111 visibility 100 magicmap light_blue end face blake_F.111 magicmap light_blue is_floor 1 end face blob.111 magicmap black end face blob.112 magicmap black end face blob.113 magicmap black end face blocked.111 magicmap black end face blood.111 magicmap red end face blood_sea.111 magicmap red is_floor 1 end face blood_sea.112 magicmap red is_floor 1 end face blood_sea.113 magicmap red is_floor 1 end face blood_sea.114 magicmap red is_floor 1 end face blue_dragon2.151 magicmap black end face blue_dragon2.152 magicmap black end face blue_dragon2.171 magicmap black end face blue_dragon2.172 magicmap black end face bluedragonmail.111 magicmap black end face bluemarble.111 magicmap grey is_floor 1 end face bluemarblemedium.111 magicmap grey is_floor 1 end face bluesphere.111 magicmap blue end face bluesphere.112 magicmap blue end face bluesphere.113 magicmap blue end face bluesphere.114 magicmap blue end face bolt.101 magicmap brown end face bolt.111 magicmap brown end face bolt.121 magicmap brown end face bolt.131 magicmap brown end face bolt.141 magicmap brown end face bolt.151 magicmap brown end face bolt.161 magicmap brown end face bolt.171 magicmap brown end face bolt.181 magicmap brown end face bolt_silk.111 magicmap blue end face bomb.111 magicmap black end face bomb.112 magicmap black end face bomb.113 magicmap black end face bomb.114 magicmap black end face bone_drake.x11 magicmap black end face bone_head.111 magicmap grey end face bone_head.112 magicmap grey end face bone_head.113 magicmap grey end face bonecrush.111 magicmap brown end face bones1.111 magicmap white end face bones2.111 magicmap white end face bones3.111 magicmap white end face bones4.111 magicmap white end face bones5.111 magicmap white end face book_clasp.111 magicmap green end face book_red.111 magicmap green end face bookshelf.111 magicmap khaki end face bookshelf2.111 magicmap khaki end face bookshelf_bottom.111 magicmap khaki end face bookshelf_left.111 magicmap khaki end face bookshelf_right.111 magicmap khaki end face booze.111 magicmap orange end face boozebottle_empty.111 magicmap brown end face boulder.111 magicmap grey end face bouquet.111 magicmap blue end face bow.111 magicmap brown end face bpudding.111 magicmap black end face bpudding.112 magicmap black end face bpudding_g.111 magicmap black end face bpudding_g.112 magicmap black end face bpudding_g.113 magicmap black end face bpudding_g.114 magicmap black end face bpudding_g.115 magicmap black end face bpudding_g.116 magicmap black end face bpudding_g.117 magicmap black end face bpudding_g.118 magicmap black end face bpudding_g.119 magicmap black end face bpudding_s.111 magicmap black end face bpudding_s.112 magicmap black end face bpudding_s.113 magicmap black end face bpudding_s.114 magicmap black end face bracers_ac.111 magicmap grey end face bracersdex.111 magicmap grey end face brain.111 magicmap black end face branch_125.111 visibility 100 magicmap blue end face branch_125.211 visibility 100 magicmap blue end face branch_135.111 visibility 100 magicmap blue end face branch_137.111 visibility 100 magicmap blue end face branch_145.111 visibility 100 magicmap blue end face branch_145.211 visibility 100 magicmap blue end face branch_156.111 visibility 100 magicmap blue end face branch_156.211 visibility 100 magicmap blue end face branch_157.111 visibility 100 magicmap blue end face branch_158.111 visibility 100 magicmap blue end face branch_158.211 visibility 100 magicmap blue end face branch_237.111 visibility 100 magicmap blue end face branch_237.211 visibility 100 magicmap blue end face branch_347.111 visibility 100 magicmap blue end face branch_347.211 visibility 100 magicmap blue end face branch_357.111 visibility 100 magicmap blue end face branch_367.111 visibility 100 magicmap blue end face branch_367.211 visibility 100 magicmap blue end face branch_378.111 visibility 100 magicmap blue end face branch_378.211 visibility 100 magicmap blue end face brazier.111 magicmap yellow end face brazier.112 magicmap yellow end face brazier.113 magicmap yellow end face brazier.114 magicmap yellow end face brdaxe_1.111 magicmap white end face brdaxe_1.112 magicmap white end face brdaxe_1.113 magicmap white end face brdaxe_1.114 magicmap white end face breeder_ant.x11 magicmap dark_orange end face brefjell.111 visibility 100 magicmap white end face bridge_15.111 visibility 100 magicmap blue end face bridge_37.111 visibility 100 magicmap blue end face bridge_m0.111 visibility 100 magicmap dark_orange end face bridge_m1.111 visibility 100 magicmap dark_orange end face bronzebar.111 magicmap orange end face brush.111 magicmap green is_floor 1 end face bsword_1.111 magicmap white end face bsword_2.111 magicmap white end face building10_east.x11 visibility 100 magicmap brown end face building1_east.111 visibility 100 magicmap brown end face building2_east.x11 visibility 100 magicmap brown end face building3_east.x11 visibility 100 magicmap brown end face building4_east.x11 visibility 100 magicmap brown end face building5_east.x11 visibility 100 magicmap brown end face building6_east.x11 visibility 100 magicmap brown end face building7_east.x11 visibility 100 magicmap brown end face building8_east.x11 visibility 100 magicmap brown end face building9_east.x11 visibility 100 magicmap brown end face bul_wall_0.111 visibility 100 magicmap yellow end face bul_wall_1.111 visibility 100 magicmap yellow end face bul_wall_2.111 visibility 100 magicmap yellow end face bul_wall_3.111 visibility 100 magicmap yellow end face bul_wall_4.111 visibility 100 magicmap yellow end face bul_wall_5.111 visibility 100 magicmap yellow end face bul_wall_6.111 visibility 100 magicmap yellow end face bul_wall_7.111 visibility 100 magicmap yellow end face bul_wall_8.111 visibility 100 magicmap yellow end face bullet.111 magicmap black end face bullet.112 magicmap black end face bullet.121 magicmap black end face bullet.131 magicmap black end face bullet.141 magicmap black end face bullet.151 magicmap black end face bullet.161 magicmap black end face bullet.171 magicmap black end face bullet.181 magicmap black end face bungalow.111 visibility 100 magicmap brown end face burning_barn.x11 visibility 100 magicmap brown end face burning_cathedral.x11 visibility 100 magicmap grey end face burning_church.x11 visibility 100 magicmap white end face burning_collesium.x11 visibility 100 end face burning_courthouse.x11 visibility 100 magicmap white end face burning_fort.x11 visibility 100 magicmap grey end face burning_fort_sym.111 visibility 100 magicmap grey end face burning_fountain.111 magicmap grey end face burning_fountain.112 magicmap grey end face burning_fountain.113 magicmap grey end face burning_guild.x11 visibility 100 magicmap brown end face burning_house_1.111 visibility 100 magicmap brown end face burning_house_larg.x11 visibility 100 magicmap grey end face burning_house_long.x11 visibility 100 magicmap brown end face burning_house_up.x11 visibility 100 magicmap brown end face burning_housesmall.111 visibility 100 magicmap brown end face burning_l_shop1.x11 visibility 100 magicmap black end face burning_market1.111 visibility 100 end face burning_market2.111 visibility 100 end face burning_market3.111 visibility 100 end face burning_shrine.111 visibility 100 end face burning_smalltemple.111 visibility 100 magicmap brown end face burning_store_alch.x11 visibility 100 magicmap red end face burning_store_armo.x11 visibility 100 magicmap brown end face burning_store_gene.x11 visibility 100 magicmap grey end face burning_store_magi.x11 visibility 100 magicmap blue end face burning_store_weap.x11 visibility 100 magicmap yellow end face burning_stronghold.x11 visibility 100 magicmap grey end face burning_t_house2.x11 visibility 100 end face burning_temple1.x11 visibility 100 end face burningtail.111 magicmap red end face burningtail.112 magicmap red end face burningtail.113 magicmap red end face burningwall_0.111 visibility 100 magicmap brown end face burningwall_0.112 visibility 100 magicmap brown end face burningwall_1.111 visibility 100 magicmap brown end face burningwall_1.112 visibility 100 magicmap brown end face burningwall_2.111 visibility 100 magicmap brown end face burningwall_2.112 visibility 100 magicmap brown end face burningwall_3.111 visibility 100 magicmap brown end face burningwall_3.112 visibility 100 magicmap brown end face burningwall_4.111 visibility 100 magicmap brown end face burningwall_4.112 visibility 100 magicmap brown end face burningwall_5.111 visibility 100 magicmap brown end face burningwall_5.112 visibility 100 magicmap brown end face burningwall_6.111 visibility 100 magicmap brown end face burningwall_6.112 visibility 100 magicmap brown end face burningwall_7.111 visibility 100 magicmap brown end face burningwall_7.112 visibility 100 magicmap brown end face burningwall_8.111 visibility 100 magicmap brown end face burningwall_8.112 visibility 100 magicmap brown end face burningwall_9.111 visibility 100 magicmap brown end face burningwall_9.112 visibility 100 magicmap brown end face burningwall_A.111 visibility 100 magicmap brown end face burningwall_A.112 visibility 100 magicmap brown end face burningwall_B.111 visibility 100 magicmap brown end face burningwall_B.112 visibility 100 magicmap brown end face burningwall_C.111 visibility 100 magicmap brown end face burningwall_C.112 visibility 100 magicmap brown end face burningwall_D.111 visibility 100 magicmap brown end face burningwall_D.112 visibility 100 magicmap brown end face burningwall_E.111 visibility 100 magicmap brown end face burningwall_E.112 visibility 100 magicmap brown end face burningwall_F.111 visibility 100 magicmap brown end face burningwall_F.112 visibility 100 magicmap brown end face burnout.111 magicmap red end face burnout.112 magicmap red end face burnout.113 magicmap red end face burnout.114 magicmap red end face burnout.115 magicmap red end face burnout.116 magicmap red end face burnout.117 magicmap red end face burnout.118 magicmap red end face burnout.119 magicmap red end face burnout.11O visibility 100 is_floor 1 end face butterflysword_1.111 magicmap white end face butterflysword_2.111 magicmap white end face button_big.111 visibility 50 magicmap grey end face button_big.112 visibility 50 magicmap grey end face button_sma.111 visibility 50 magicmap grey end face button_sma.112 visibility 50 magicmap grey end face bwall_0.111 visibility 100 magicmap yellow end face bwall_1.111 visibility 100 magicmap yellow end face bwall_2.111 visibility 100 magicmap yellow end face bwall_3.111 visibility 100 magicmap yellow end face bwall_4.111 visibility 100 magicmap yellow end face bwall_5.111 visibility 100 magicmap yellow end face bwall_6.111 visibility 100 magicmap yellow end face bwall_7.111 visibility 100 magicmap yellow end face bwall_8.111 visibility 100 magicmap yellow end face bwall_9.111 visibility 100 magicmap yellow end face bwall_A.111 visibility 100 magicmap yellow end face bwall_B.111 visibility 100 magicmap yellow end face bwall_C.111 visibility 100 magicmap yellow end face bwall_D.111 visibility 100 magicmap yellow end face bwall_E.111 visibility 100 magicmap yellow end face bwall_F.111 visibility 100 magicmap yellow end face bwall_hole_5.111 visibility 100 magicmap yellow end face bwall_hole_A.111 visibility 100 magicmap yellow end face bwall_w_0.111 visibility 100 magicmap grey end face bwall_w_0.112 visibility 100 magicmap grey end face bwall_w_0.113 visibility 100 magicmap grey end face bwall_w_0.114 visibility 100 magicmap grey end face bwall_w_0.115 visibility 100 magicmap grey end face bwall_w_0.116 visibility 100 magicmap grey end face bwall_w_0.117 visibility 100 magicmap grey end face bwall_w_1.111 visibility 100 magicmap grey end face bwall_w_1.112 visibility 100 magicmap grey end face bwall_w_1.113 visibility 100 magicmap grey end face bwall_w_1.114 visibility 100 magicmap grey end face bwall_w_1.115 visibility 100 magicmap grey end face bwall_w_1.116 visibility 100 magicmap grey end face bwall_w_1.117 visibility 100 magicmap grey end face c_priest.131 magicmap red end face c_priest.132 magicmap red end face c_priest.171 magicmap red end face c_priest.172 magicmap red end face cabbage.111 magicmap green end face cake.111 magicmap yellow end face calm_floor.111 magicmap blue end face campfire.111 magicmap yellow end face campfire_out.111 magicmap black end face cancellation.111 magicmap red end face cancellation.112 magicmap red end face cancellation.113 magicmap red end face cannon_0.111 magicmap brown end face cannon_1.111 magicmap brown end face cannon_2.111 magicmap brown end face cannon_3.111 magicmap brown end face cannon_4.111 magicmap brown end face cannon_5.111 magicmap brown end face cannon_6.111 magicmap brown end face cannon_7.111 magicmap brown end face cannon_8.111 magicmap brown end face capitalhold_east.x11 visibility 100 magicmap grey end face capitalhold_west.x11 visibility 100 magicmap grey end face caramel.111 magicmap yellow end face carrot.111 magicmap orange end face carton_box_1_open.111 magicmap khaki end face castle.111 visibility 100 magicmap grey end face castle_a.x11 visibility 100 magicmap grey end face castle_a.x12 visibility 100 magicmap grey end face castle_a_east.x11 visibility 100 magicmap grey end face castle_a_northwest.x11 visibility 100 magicmap grey end face castle_a_northwest.x12 visibility 100 magicmap grey end face castle_a_western.x11 visibility 100 magicmap grey end face castle_a_western.x12 visibility 100 magicmap grey end face castle_west.111 visibility 100 magicmap grey end face cathedral.x11 visibility 100 magicmap grey end face cauldron.111 magicmap black end face cauldron_open.111 magicmap black end face cave1.111 visibility 100 magicmap grey end face cave10.111 visibility 100 magicmap grey end face cave11.111 visibility 100 magicmap grey end face cave12.111 visibility 100 magicmap grey end face cave13.111 visibility 100 magicmap grey end face cave14.111 visibility 100 magicmap grey end face cave15.111 visibility 100 magicmap grey end face cave16.111 visibility 100 magicmap grey end face cave17.111 visibility 100 magicmap grey end face cave18.111 visibility 100 magicmap grey end face cave19.111 visibility 100 magicmap grey end face cave2.111 visibility 100 magicmap grey end face cave20.111 visibility 100 magicmap grey end face cave21.111 visibility 100 magicmap grey end face cave22.111 visibility 100 magicmap grey end face cave23.111 visibility 100 magicmap grey end face cave24.111 visibility 100 magicmap grey end face cave25.111 visibility 100 magicmap grey end face cave3.111 visibility 100 magicmap grey end face cave4.111 visibility 100 magicmap grey end face cave5.111 visibility 100 magicmap grey end face cave6.111 visibility 100 magicmap grey end face cave7.111 visibility 100 magicmap grey end face cave8.111 visibility 100 magicmap grey end face cave9.111 visibility 100 magicmap grey end face cave_0.111 visibility 100 magicmap grey end face cave_1.111 visibility 100 magicmap grey end face cave_10.111 visibility 100 magicmap grey end face cave_11.111 visibility 100 magicmap grey end face cave_12.111 visibility 100 magicmap grey end face cave_13.111 visibility 100 magicmap grey end face cave_14.111 visibility 100 magicmap grey end face cave_15.111 visibility 100 magicmap grey end face cave_16.111 visibility 100 magicmap grey end face cave_17.111 visibility 100 magicmap grey end face cave_18.111 visibility 100 magicmap grey end face cave_19.111 visibility 100 magicmap grey end face cave_2.111 visibility 100 magicmap grey end face cave_20.111 visibility 100 magicmap grey end face cave_21.111 visibility 100 magicmap grey end face cave_22.111 visibility 100 magicmap grey end face cave_23.111 visibility 100 magicmap grey end face cave_24.111 visibility 100 magicmap grey end face cave_3.111 visibility 100 magicmap grey end face cave_4.111 visibility 100 magicmap grey end face cave_5.111 visibility 100 magicmap grey end face cave_6.111 visibility 100 magicmap grey end face cave_7.111 visibility 100 magicmap grey end face cave_8.111 visibility 100 magicmap grey end face cave_9.111 visibility 100 magicmap grey end face cave_stair_up_2.111 visibility 100 magicmap grey end face centipede.111 magicmap green end face centipede.112 magicmap green end face centipede.113 magicmap green end face centipede.114 magicmap green end face centipede.121 magicmap green end face centipede.122 magicmap green end face centipede.123 magicmap green end face centipede.124 magicmap green end face centipede.131 magicmap green end face centipede.132 magicmap green end face centipede.133 magicmap green end face centipede.134 magicmap green end face centipede.141 magicmap green end face centipede.142 magicmap green end face centipede.143 magicmap green end face centipede.144 magicmap green end face centipede.151 magicmap green end face centipede.152 magicmap green end face centipede.153 magicmap green end face centipede.154 magicmap green end face centipede.161 magicmap green end face centipede.162 magicmap green end face centipede.163 magicmap green end face centipede.164 magicmap green end face centipede.171 magicmap green end face centipede.172 magicmap green end face centipede.173 magicmap green end face centipede.174 magicmap green end face centipede.181 magicmap green end face centipede.182 magicmap green end face centipede.183 magicmap green end face centipede.184 magicmap green end face centipede_r.111 magicmap red end face centipede_r.112 magicmap red end face centipede_r.113 magicmap red end face cforest1.111 magicmap green is_floor 1 end face cforest2.111 magicmap green is_floor 1 end face cforest3.111 magicmap green is_floor 1 end face cforest4.111 magicmap green end face cforest5.111 magicmap green end face cforest6.111 magicmap green end face ch_bish.111 magicmap black end face ch_burger.111 magicmap dark_orange end face ch_king.111 magicmap black end face ch_knight.111 magicmap black end face ch_pawn.111 magicmap black end face ch_pawn_w.111 magicmap black end face ch_queen.111 magicmap black end face ch_rook.111 magicmap black end face chainmail.111 magicmap black end face chair.111 magicmap black end face chair_1.101 magicmap brown end face chair_1.111 magicmap brown end face chair_1.121 magicmap brown end face chair_1.131 magicmap brown end face chair_2.101 magicmap brown end face chair_2.111 magicmap brown end face chair_2.121 magicmap brown end face chair_2.131 magicmap brown end face chair_3.101 magicmap brown end face chair_3.111 magicmap brown end face chair_bc_2.101 magicmap brown end face chair_bc_2.111 magicmap brown end face chair_bc_2.121 magicmap brown end face chair_bc_2.131 magicmap brown end face chair_cw_1.101 magicmap brown end face chair_cw_1.111 magicmap brown end face chair_cw_1.121 magicmap brown end face chair_cw_1.131 magicmap brown end face chair_gv_1.101 magicmap brown end face chair_gv_1.111 magicmap brown end face chair_gv_1.121 magicmap brown end face chair_gv_1.131 magicmap brown end face chair_wv_1.101 magicmap brown end face chair_wv_1.111 magicmap brown end face chair_wv_1.121 magicmap brown end face chair_wv_1.131 magicmap brown end face chalice.111 magicmap yellow end face chalice.112 magicmap yellow end face chalice.113 magicmap yellow end face chalice.114 magicmap yellow end face chalice_bro.111 magicmap yellow end face chalice_bro.112 magicmap yellow end face chalice_bro.113 magicmap yellow end face chalice_bro.114 magicmap yellow end face chalice_cop.111 magicmap yellow end face chalice_cop.112 magicmap yellow end face chalice_cop.113 magicmap yellow end face chalice_cop.114 magicmap yellow end face chalice_iro.111 magicmap yellow end face chalice_iro.112 magicmap yellow end face chalice_iro.113 magicmap yellow end face chalice_iro.114 magicmap yellow end face chalice_plat.111 magicmap yellow end face chalice_plat.112 magicmap yellow end face chalice_plat.113 magicmap yellow end face chalice_plat.114 magicmap yellow end face chalice_sil.111 magicmap yellow end face chalice_sil.112 magicmap yellow end face chalice_sil.113 magicmap yellow end face chalice_sil.114 magicmap yellow end face chalice_tin.111 magicmap yellow end face chalice_tin.112 magicmap yellow end face chalice_tin.113 magicmap yellow end face chalice_tin.114 magicmap yellow end face chandelier_1.x11 magicmap yellow end face chandelier_2.111 magicmap yellow end face chandelier_2.112 magicmap yellow end face chandelier_2.113 magicmap yellow end face chandelier_2.114 magicmap yellow end face chandelier_2_copper.111 magicmap yellow end face chandelier_2_copper.112 magicmap yellow end face chandelier_2_copper.113 magicmap yellow end face chandelier_2_copper.114 magicmap yellow end face chaos_dragon.x71 magicmap red end face charm_aura.111 magicmap red end face charm_aura.112 magicmap red end face charm_aura.113 magicmap red end face charm_floor.111 magicmap green end face charwoman.131 magicmap black end face charwoman.132 magicmap black end face charwoman.171 magicmap black end face charwoman.172 magicmap black end face check_floor.111 magicmap blue end face check_inv.111 magicmap black end face checkbook.111 magicmap brown end face chess_club.111 visibility 100 magicmap black end face chest_1.111 magicmap khaki end face chest_green_1.111 magicmap khaki end face chest_valriel_1.111 magicmap white end face chest_valriel_1.112 magicmap white end face chest_valriel_1.113 magicmap white end face chest_valriel_1.114 magicmap white end face chest_white_1.111 magicmap white end face chicken.131 magicmap brown end face chicken.132 magicmap brown end face chicken.171 magicmap brown end face chicken.172 magicmap brown end face chinese_dr.x71 magicmap green end face chocolate.111 magicmap brown end face chole_1.111 visibility 100 magicmap black end face chole_2.111 visibility 100 magicmap brown end face church.x11 visibility 100 magicmap white end face church_fant.x11 visibility 100 magicmap white end face cinna.111 magicmap red end face city-tower.x11 visibility 100 magicmap grey end face city-tower_west.x11 visibility 100 magicmap grey end face city_tower_east.x11 visibility 100 magicmap grey end face city_tower_fant.x11 visibility 100 magicmap grey end face city_tower_northwest.x11 visibility 100 magicmap grey end face cityport_0.111 magicmap grey end face cityport_1.111 magicmap grey end face cleric.111 magicmap blue end face cleric.112 magicmap blue end face cleric.131 magicmap blue end face cleric.132 magicmap blue end face cleric.151 magicmap blue end face cleric.152 magicmap blue end face cleric.171 magicmap blue end face cleric.172 magicmap blue end face cloak.111 magicmap black end face clock.111 magicmap brown end face clock.112 magicmap brown end face clock_ag.111 magicmap brown end face clock_ag.112 magicmap brown end face clock_cw.111 magicmap brown end face clock_cw.112 magicmap brown end face clock_grand.111 magicmap brown end face clock_grand.112 magicmap brown end face close_bag.111 magicmap khaki end face close_dbox.111 magicmap brown end face close_desk.111 magicmap brown end face close_desk_cw.111 magicmap brown end face close_dresser.111 magicmap brown end face close_dresser2.111 magicmap brown end face close_dresser2_cw.111 magicmap brown end face close_dresser_cw.111 magicmap brown end face close_keys.111 magicmap black end face close_pouc.111 magicmap orange end face close_present_box_1.111 magicmap khaki end face close_present_box_2.111 magicmap khaki end face close_present_box_3.111 magicmap khaki end face close_present_box_4.111 magicmap khaki end face close_present_box_5.111 magicmap khaki end face close_present_box_6.111 magicmap khaki end face close_quiv.111 magicmap orange end face close_rsack.111 magicmap brown end face close_sack.111 magicmap brown end face close_schest.111 magicmap khaki end face close_wizdesk.111 magicmap brown end face closechest.111 magicmap khaki end face cloud_1_1.x11 is_floor 1 end face cloud_1_2.x11 is_floor 1 end face cloud_1_3.x11 is_floor 1 end face cloud_2_1.x11 is_floor 1 end face cloud_2_2.x11 is_floor 1 end face cloud_2_3.x11 is_floor 1 end face cloud_3_1.x11 is_floor 1 end face cloud_3_2.x11 is_floor 1 end face cloud_3_3.x11 is_floor 1 end face cloud_4_1.x11 is_floor 1 end face cloud_4_2.x11 is_floor 1 end face cloud_4_3.x11 is_floor 1 end face cloud_5_1.x11 is_floor 1 end face cloud_5_2.x11 is_floor 1 end face cloud_5_3.x11 is_floor 1 end face clover.111 magicmap green end face club.111 magicmap khaki end face cmarsh.111 magicmap green is_floor 1 end face cobblesto1.111 magicmap grey is_floor 1 end face cobblesto2.111 magicmap yellow is_floor 1 end face cobra.x12 magicmap green end face coffee.111 magicmap white end face coffee_empty.111 magicmap brown end face coffin.111 magicmap brown end face cold_drag.131 magicmap red end face cold_drag.132 magicmap red end face cold_drag.171 magicmap red end face cold_drag.172 magicmap red end face coldmagma.111 magicmap black is_floor 1 end face coldmagma.112 magicmap black is_floor 1 end face collar.111 magicmap red end face collar.112 magicmap red end face collar.113 magicmap red end face collesium.x11 visibility 100 end face compositebow.111 magicmap brown end face confusion.111 visibility 100 magicmap black is_floor 1 end face confusion.112 magicmap black end face confusion.113 magicmap black end face confusion.114 magicmap black end face conjurer.111 magicmap white end face conjurer.112 magicmap white end face conjurer.113 magicmap white end face conv.111 visibility 100 magicmap light_blue end face copperbar.111 magicmap orange end face corpse.111 magicmap white end face corpse1.111 magicmap blue end face counterspell.111 magicmap light_blue end face courthouse.x11 visibility 100 magicmap white end face cplate.111 magicmap dark_orange end face crater.111 magicmap orange is_floor 1 end face crea_serp_c.111 visibility 100 magicmap black end face creator.111 magicmap blue end face crossbow.111 magicmap brown end face crossroad.111 visibility 100 magicmap white end face crown.111 magicmap orange end face crown_dark.111 magicmap orange end face crown_gray.111 magicmap orange end face crown_r.111 magicmap orange end face crown_white.111 magicmap orange end face cudgel.111 magicmap blue end face cwall_0.111 visibility 100 magicmap grey end face cwall_1.111 visibility 100 magicmap grey end face cwall_2.111 visibility 100 magicmap grey end face cwall_3.111 visibility 100 magicmap grey end face cwall_4.111 visibility 100 magicmap grey end face cwall_5.111 visibility 100 magicmap grey end face cwall_6.111 visibility 100 magicmap grey end face cwall_7.111 visibility 100 magicmap grey end face cwall_8.111 visibility 100 magicmap grey end face cwall_9.111 visibility 100 magicmap grey end face cwall_A.111 visibility 100 magicmap grey end face cwall_B.111 visibility 100 magicmap grey end face cwall_C.111 visibility 100 magicmap grey end face cwall_D.111 visibility 100 magicmap grey end face cwall_E.111 visibility 100 magicmap grey end face cwall_F.111 visibility 100 magicmap grey end face cwall_beigemarble.111 visibility 100 magicmap grey end face cwall_bluemarblemedium.111 visibility 100 magicmap grey end face cwall_cyanmarble.111 visibility 100 magicmap grey end face cwall_cyanmarbledark.111 visibility 100 magicmap grey end face cwall_graymarble.111 visibility 100 magicmap grey end face cwall_greenmarble.111 visibility 100 magicmap grey end face cwall_greenmarblemedium.111 visibility 100 magicmap grey end face cwall_magentamarble.111 visibility 100 magicmap grey end face cwall_marble.111 visibility 100 magicmap grey end face cwall_mural_1.111 visibility 100 magicmap grey end face cwall_mural_1.112 visibility 100 magicmap grey end face cwall_mural_1.113 visibility 100 magicmap grey end face cwall_mural_1.114 visibility 100 magicmap grey end face cwall_mural_end_1.111 visibility 100 magicmap grey end face cwall_mural_end_1.112 visibility 100 magicmap grey end face cwall_pinkmarble.111 visibility 100 magicmap grey end face cwall_w_0.111 visibility 100 magicmap grey end face cwall_w_0.112 visibility 100 magicmap grey end face cwall_w_0.113 visibility 100 magicmap grey end face cwall_w_0.114 visibility 100 magicmap grey end face cwall_w_0.115 visibility 100 magicmap grey end face cwall_w_0.116 visibility 100 magicmap grey end face cwall_w_0.117 visibility 100 magicmap grey end face cwall_w_0.118 visibility 100 magicmap grey end face cwall_w_0.119 visibility 100 magicmap grey end face cwall_w_0.11A visibility 100 magicmap grey end face cwall_w_1.111 visibility 100 magicmap grey end face cwall_w_1.112 visibility 100 magicmap grey end face cwall_w_1.113 visibility 100 magicmap grey end face cwall_w_1.114 visibility 100 magicmap grey end face cwall_w_1.115 visibility 100 magicmap grey end face cwall_w_1.116 visibility 100 magicmap grey end face cwall_w_1.117 visibility 100 magicmap grey end face cwall_w_1.118 visibility 100 magicmap grey end face cwall_w_1.119 visibility 100 magicmap grey end face cwallsec.111 visibility 50 magicmap black end face cwallsec.112 visibility 50 magicmap black end face cwallsec.113 visibility 50 magicmap black end face cwallsec.114 visibility 50 magicmap black end face cwallsec.115 visibility 50 magicmap black end face cwallsec.116 visibility 50 magicmap black end face cwallsec.117 visibility 50 magicmap black end face cwallsec.118 visibility 50 magicmap black end face cwallsec_mural_1.111 visibility 50 magicmap black end face cwallsec_mural_1.112 visibility 50 magicmap black end face cwallsec_mural_1.113 visibility 50 magicmap black end face cwallsec_mural_1.114 visibility 50 magicmap black end face cwallsec_mural_1.115 visibility 50 magicmap black end face cwallsec_mural_1.116 visibility 50 magicmap black end face cwallsec_mural_1.117 visibility 50 magicmap black end face cwallsec_mural_1.118 visibility 50 magicmap black end face cyan-beige-c-marble.111 magicmap grey is_floor 1 end face cyan-beige-c-marble.112 magicmap grey is_floor 1 end face cyan-beige-c-marble.113 magicmap grey is_floor 1 end face cyan-beige-c-marble.114 magicmap grey is_floor 1 end face cyanbrush.111 magicmap green is_floor 1 end face cyangrass.111 magicmap green is_floor 1 end face cyangrasspond.111 magicmap green is_floor 1 end face cyanmarble.111 magicmap grey is_floor 1 end face cyclops.x31 magicmap khaki end face d_statue.111 magicmap black end face dagger.111 magicmap grey end face dagger_f.111 magicmap grey end face dagger_f.112 magicmap grey end face dagger_f.113 magicmap grey end face dagger_f.114 magicmap grey end face dagger_r.111 magicmap red end face dancingsword.111 magicmap grey end face dancingsword.112 magicmap grey end face dancingsword.113 magicmap grey end face dark_elf.111 magicmap black end face dark_elf.112 magicmap black end face dark_elf2.131 magicmap black end face dark_elf2.132 magicmap black end face dark_elf2.171 magicmap black end face dark_elf2.172 magicmap black end face dark_palace.x11 visibility 100 magicmap white end face darkblade.111 magicmap black end face darkblade.112 magicmap black end face darkblade.113 magicmap black end face darkblade.114 magicmap black end face darkblade.115 magicmap black end face darkblade.116 magicmap black end face darkblade.117 magicmap black end face darkforest.111 visibility 100 magicmap green is_floor 1 end face darkhold.x11 visibility 100 magicmap grey end face darkhold_s.111 visibility 100 magicmap grey end face dave.111 magicmap red end face dave.112 magicmap red end face dave.113 magicmap red end face dbridge1.111 visibility 100 magicmap dark_orange end face dbridge2.111 visibility 100 magicmap dark_orange end face dcross-red.111 magicmap yellow is_floor 1 end face dcross-white.111 magicmap yellow is_floor 1 end face deathbring.111 magicmap black end face deathshead.111 magicmap grey end face deathshead.112 magicmap grey end face deathshead.113 magicmap grey end face deathshead.114 magicmap grey end face deathtree.111 magicmap black end face deathtree.112 magicmap black end face deathtree.113 magicmap black end face deathtree.114 magicmap black end face deathtree.115 magicmap black end face deep_sea.111 magicmap blue is_floor 1 end face deep_swamp.111 magicmap green is_floor 1 end face deep_swamp.112 magicmap green is_floor 1 end face defender.111 magicmap grey end face demilich.111 magicmap black end face demilich.112 magicmap black end face demilich.113 magicmap black end face demon_head.111 magicmap red end face demon_lord.x11 magicmap red end face demonbane.111 magicmap black end face demonbane.112 magicmap black end face demonbane.113 magicmap black end face demonbane.114 magicmap black end face demonbane.115 magicmap black end face demonbane.116 magicmap black end face demonbane.117 magicmap black end face demonbane.118 magicmap black end face demonbane.119 magicmap black end face depositbox.111 magicmap brown end face desert.111 magicmap green is_floor 1 end face desk.111 magicmap brown end face desk_cw.111 magicmap brown end face destruction.111 visibility 255 magicmap black end face destruction.112 visibility 255 magicmap black end face destruction.113 visibility 255 magicmap black end face destruction.114 visibility 255 magicmap black end face det_magic.111 visibility 255 magicmap blue end face det_magic.112 visibility 255 magicmap blue end face det_magic.113 visibility 255 magicmap blue end face devil.111 magicmap red end face devil.112 magicmap red end face devil_gen.111 magicmap red end face dhaxe_1.111 magicmap white end face dhaxe_2.111 magicmap white end face diamond_exceptional.111 visibility 100 magicmap green end face diamond_flawless.111 visibility 100 magicmap green end face dice.111 magicmap blue end face dice.112 magicmap blue end face dice.113 magicmap blue end face director.111 visibility 50 magicmap blue end face director.112 visibility 50 magicmap blue end face director.113 visibility 50 magicmap blue end face director.121 visibility 50 magicmap blue end face director.122 visibility 50 magicmap blue end face director.123 visibility 50 magicmap blue end face director.124 visibility 50 magicmap blue end face director.125 visibility 50 magicmap blue end face director.131 visibility 50 magicmap blue end face director.132 visibility 50 magicmap blue end face director.133 visibility 50 magicmap blue end face director.141 visibility 50 magicmap blue end face director.142 visibility 50 magicmap blue end face director.143 visibility 50 magicmap blue end face director.144 visibility 50 magicmap blue end face director.145 visibility 50 magicmap blue end face director.151 visibility 50 magicmap blue end face director.152 visibility 50 magicmap blue end face director.153 visibility 50 magicmap blue end face director.161 visibility 50 magicmap blue end face director.162 visibility 50 magicmap blue end face director.163 visibility 50 magicmap blue end face director.164 visibility 50 magicmap blue end face director.165 visibility 50 magicmap blue end face director.171 visibility 50 magicmap blue end face director.172 visibility 50 magicmap blue end face director.173 visibility 50 magicmap blue end face director.181 visibility 50 magicmap blue end face director.182 visibility 50 magicmap blue end face director.183 visibility 50 magicmap blue end face director.184 visibility 50 magicmap blue end face director.185 visibility 50 magicmap blue end face dirt.111 magicmap brown end face dirtfloor.111 magicmap dark_orange is_floor 1 end face dirtroad_0.111 visibility 100 magicmap grey end face dirtroad_1.111 visibility 100 magicmap grey end face dirtroad_2.111 visibility 100 magicmap grey end face dirtroad_3.111 visibility 100 magicmap grey end face dirtroad_4.111 visibility 100 magicmap grey end face dirtroad_5.111 visibility 100 magicmap grey end face dirtroad_6.111 visibility 100 magicmap grey end face dirtroad_7.111 visibility 100 magicmap grey end face dirtroad_8.111 visibility 100 magicmap grey end face dirtroad_9.111 visibility 100 magicmap grey end face dirtroad_A.111 visibility 100 magicmap grey end face dirtroad_B.111 visibility 100 magicmap grey end face dirtroad_C.111 visibility 100 magicmap grey end face dirtroad_D.111 visibility 100 magicmap grey end face dirtroad_E.111 visibility 100 magicmap grey end face dirtroad_F.111 visibility 100 magicmap grey end face dlevel_0.111 visibility 100 magicmap grey end face dlevel_1.111 visibility 100 magicmap grey end face dlevel_2.111 visibility 100 magicmap grey end face dlevel_3.111 visibility 100 magicmap grey end face dlevel_4.111 visibility 100 magicmap grey end face dlevel_5.111 visibility 100 magicmap grey end face dlevel_6.111 visibility 100 magicmap grey end face dlevel_7.111 visibility 100 magicmap grey end face dlevel_7sw.111 visibility 100 magicmap grey end face dlevel_8.111 visibility 100 magicmap grey end face dlevel_9.111 visibility 100 magicmap grey end face dlevel_A.111 visibility 100 magicmap grey end face dlevel_B.111 visibility 100 magicmap grey end face dlevel_Bse.111 visibility 100 magicmap grey end face dlevel_Bsw.111 visibility 100 magicmap grey end face dlevel_C.111 visibility 100 magicmap grey end face dlevel_D.111 visibility 100 magicmap grey end face dlevel_Dse.111 visibility 100 magicmap grey end face dlevel_E.111 visibility 100 magicmap grey end face dlevel_se.111 visibility 100 magicmap grey end face dlevel_seB.111 visibility 100 magicmap grey end face dlevel_seD.111 visibility 100 magicmap grey end face dlevel_sese.111 visibility 100 magicmap grey end face dlevel_sw.111 visibility 100 magicmap grey end face dlevel_sw7.111 visibility 100 magicmap grey end face dlevel_swB.111 visibility 100 magicmap grey end face dlevel_swsw.111 visibility 100 magicmap grey end face dog.131 magicmap brown end face dog.132 magicmap brown end face dog.133 magicmap brown end face dog.171 magicmap brown end face dog.172 magicmap brown end face dog.173 magicmap brown end face door_0.111 magicmap dark_orange end face door_1.111 magicmap dark_orange end face door_2.111 magicmap dark_orange end face door_3.111 magicmap dark_orange end face door_4.111 magicmap dark_orange end face door_5.111 magicmap dark_orange end face door_6.111 magicmap dark_orange end face door_7.111 magicmap dark_orange end face door_8.111 magicmap dark_orange end face door_9.111 magicmap dark_orange end face door_A.111 magicmap dark_orange end face door_B.111 magicmap dark_orange end face door_C.111 magicmap dark_orange end face door_D.111 magicmap dark_orange end face door_E.111 magicmap dark_orange end face door_F.111 magicmap dark_orange end face drag_steak.111 magicmap brown end face dragon.x71 magicmap red end face dragon_ac.x71 magicmap red end face dragon_blue_scale.111 magicmap blue end face dragon_claw.111 magicmap green end face dragon_eye.111 magicmap white end face dragon_green_scale.111 magicmap green end face dragon_orange_scale.111 magicmap orange end face dragon_sca.111 magicmap dark_orange end face dragon_shi.111 magicmap dark_orange end face dragon_wing.111 magicmap green end face dragoncave.111 magicmap red end face dragonmail.111 magicmap black end face dragonman.x31 magicmap black end face dragonslay.111 magicmap white end face drain_magic.111 magicmap grey end face drake.111 magicmap red end face drake.112 magicmap red end face drake.113 magicmap red end face drake.211 magicmap red end face drake.212 magicmap red end face drake.213 magicmap red end face dread.x11 magicmap blue end face dress1.111 magicmap blue end face dress2.111 magicmap blue end face dress3.111 magicmap orange end face drifts.111 magicmap white is_floor 1 end face dun_0.111 visibility 100 magicmap black end face dun_1.111 visibility 100 magicmap black end face dun_10.111 visibility 100 magicmap black end face dun_11.111 visibility 100 magicmap black end face dun_12.111 visibility 100 magicmap black end face dun_13.111 visibility 100 magicmap black end face dun_14.111 visibility 100 magicmap black end face dun_15.111 visibility 100 magicmap black end face dun_16.111 visibility 100 magicmap black end face dun_17.111 visibility 100 magicmap black end face dun_18.111 visibility 100 magicmap black end face dun_19.111 visibility 100 magicmap black end face dun_2.111 visibility 100 magicmap black end face dun_20.111 visibility 100 magicmap black end face dun_21.111 visibility 100 magicmap black end face dun_22.111 visibility 100 magicmap black end face dun_23.111 visibility 100 magicmap black end face dun_24.111 visibility 100 magicmap black end face dun_25.111 visibility 100 magicmap black end face dun_3.111 visibility 100 magicmap black end face dun_4.111 visibility 100 magicmap black end face dun_5.111 visibility 100 magicmap black end face dun_8.111 visibility 100 magicmap black end face dun_A.111 visibility 100 magicmap black end face dun_C.111 visibility 100 magicmap black end face dunes.111 magicmap green is_floor 1 end face dung_floor.111 magicmap grey is_floor 1 end face duplicator.111 magicmap blue end face dust_effect.111 magicmap brown end face dust_effect.112 magicmap brown end face dust_effect.113 magicmap brown end face dust_gen.111 magicmap grey end face dwall_0.111 visibility 100 magicmap grey end face dwall_1.111 visibility 100 magicmap grey end face dwall_2.111 visibility 100 magicmap grey end face dwall_3.111 visibility 100 magicmap grey end face dwall_4.111 visibility 100 magicmap grey end face dwall_5.111 visibility 100 magicmap grey end face dwall_6.111 visibility 100 magicmap grey end face dwall_7.111 visibility 100 magicmap grey end face dwall_8.111 visibility 100 magicmap grey end face dwall_9.111 visibility 100 magicmap grey end face dwall_A.111 visibility 100 magicmap grey end face dwall_B.111 visibility 100 magicmap grey end face dwall_C.111 visibility 100 magicmap grey end face dwall_D.111 visibility 100 magicmap grey end face dwall_E.111 visibility 100 magicmap grey end face dwall_F.111 visibility 100 magicmap grey end face dwarf.111 magicmap grey end face dwarf_p.111 magicmap grey end face dwarf_p.112 magicmap grey end face dwarf_p.131 magicmap grey end face dwarf_p.132 magicmap grey end face dwarf_p.151 magicmap grey end face dwarf_p.152 magicmap grey end face dwarf_p.171 magicmap grey end face dwarf_p.172 magicmap grey end face dwarf_pr.111 magicmap black end face dwarf_pr.112 magicmap black end face dwarf_pr.113 magicmap black end face dwarf_wiz.111 magicmap red end face dwarf_wiz.112 magicmap red end face dwarf_wiz.113 magicmap red end face dwindow_0.111 visibility 100 magicmap brown end face dwindow_1.111 visibility 100 magicmap brown end face dwindow_2.111 visibility 100 magicmap brown end face dwindow_3.111 visibility 100 magicmap brown end face dwolf.131 magicmap grey end face dwolf.132 magicmap grey end face dwolf.171 magicmap grey end face dwolf.172 magicmap grey end face earth.111 magicmap green is_floor 1 end face earthwall.111 visibility 100 magicmap grey end face earthwall.112 magicmap grey end face earthwall.113 magicmap grey end face ectoplasm.111 magicmap grey end face elec_dr.x11 magicmap blue end face elec_drag.131 magicmap yellow end face elec_drag.132 magicmap yellow end face elec_drag.171 magicmap yellow end face elec_drag.172 magicmap yellow end face elem_air.111 magicmap light_blue end face elem_air.112 magicmap light_blue end face elem_dust.111 magicmap brown end face elem_dust.112 magicmap brown end face elem_earth.111 magicmap dark_orange end face elem_earth.112 magicmap dark_orange end face elem_fire.111 magicmap red end face elem_fire.112 magicmap red end face elem_fire_black.111 magicmap black end face elem_fire_black.112 magicmap black end face elem_water.111 magicmap blue end face elem_water.112 magicmap blue end face elf.111 magicmap black end face elf.112 magicmap black end face elf.131 magicmap black end face elf.132 magicmap black end face elf.151 magicmap black end face elf.152 magicmap black end face elf.171 magicmap black end face elf.172 magicmap black end face elf_1.111 magicmap black end face elf_1.112 magicmap black end face elf_1.113 magicmap black end face elf_guard.111 magicmap green end face elf_guard.112 magicmap green end face elf_guard.113 magicmap green end face elf_lad.111 magicmap black end face elf_lass.111 magicmap black end face elf_lass.112 magicmap black end face elven_bow.111 magicmap brown end face elven_robe.111 magicmap green end face elvenboots.111 magicmap green end face emerald.111 magicmap green end face emerald.112 magicmap green end face emerald_exceptional.111 magicmap green end face emerald_flawless.111 magicmap green end face ench_armour.111 magicmap white end face enchantment.111 visibility 255 magicmap blue end face enchantment.112 visibility 255 magicmap blue end face enchantment.113 visibility 255 magicmap blue end face enchantment.114 visibility 255 magicmap blue end face enchantment.115 visibility 255 magicmap blue end face ent.x11 magicmap brown end face evergreens.111 magicmap green is_floor 1 end face evergreens_2.111 magicmap green end face evil_ice.111 magicmap blue is_floor 1 end face evil_master.111 magicmap white end face evil_master.112 magicmap white end face evil_master2.111 magicmap grey end face evil_master2.112 magicmap grey end face evil_master3.111 magicmap red end face evil_master3.112 magicmap red end face evil_master4.111 magicmap grey end face evil_master4.112 magicmap grey end face evoker_book.111 magicmap brown end face ewall_0.111 visibility 100 magicmap brown end face ewall_1.111 visibility 100 magicmap brown end face ewall_2.111 visibility 100 magicmap brown end face ewall_3.111 visibility 100 magicmap brown end face ewall_4.111 visibility 100 magicmap brown end face ewall_5.111 visibility 100 magicmap brown end face ewall_6.111 visibility 100 magicmap brown end face ewall_7.111 visibility 100 magicmap brown end face ewall_8.111 visibility 100 magicmap brown end face ewall_9.111 visibility 100 magicmap brown end face ewall_A.111 visibility 100 magicmap brown end face ewall_B.111 visibility 100 magicmap brown end face ewall_C.111 visibility 100 magicmap brown end face ewall_D.111 visibility 100 magicmap brown end face ewall_E.111 visibility 100 magicmap brown end face ewall_F.111 visibility 100 magicmap brown end face ewall_redpost.111 visibility 100 magicmap red end face ewindow_0.111 visibility 100 magicmap brown end face ewindow_1.111 visibility 100 magicmap brown end face excalibur.111 magicmap white end face exit.111 visibility 100 magicmap blue end face exit.113 visibility 100 magicmap blue end face exit.115 visibility 100 magicmap blue end face exit.117 visibility 100 magicmap blue end face explosion.111 visibility 100 magicmap white is_floor 1 end face explosion.112 magicmap white end face explosion.113 magicmap white end face explosion2.111 magicmap white end face explosion2.112 magicmap white end face explosion2.113 magicmap white end face eye.111 magicmap white end face eyeglasses.111 magicmap black end face eyes.111 magicmap white end face eyeshield.111 magicmap white end face face_of_death.111 magicmap black end face fae_drag.131 magicmap blue end face fae_drag.132 magicmap blue end face fae_drag.171 magicmap blue end face fae_drag.172 magicmap blue end face falchion.111 magicmap white end face falling_rocks.111 magicmap black end face falls.111 visibility 100 magicmap blue end face falls2.111 visibility 100 magicmap blue end face falls3.111 visibility 100 magicmap blue end face falls4.111 visibility 100 magicmap blue end face farmer.111 magicmap black end face farmer.112 magicmap black end face farmhouse.x11 visibility 100 magicmap brown end face farmland.111 magicmap green is_floor 1 end face fcross-blue.111 magicmap yellow is_floor 1 end face fcross-white.111 magicmap yellow is_floor 1 end face fear.111 visibility 100 magicmap white is_floor 1 end face fear.112 magicmap white end face fear.113 magicmap white end face fenx.111 magicmap black end face fenx.112 magicmap black end face fenx.131 magicmap black end face fenx.132 magicmap black end face fenx.150 magicmap black end face fenx.151 magicmap black end face fenx.152 magicmap black end face fenx.171 magicmap black end face fenx.172 magicmap black end face fernsdense.111 magicmap green end face fernssparse.111 magicmap green end face fiend.111 magicmap red end face fiend.112 magicmap red end face fighter.111 magicmap grey end face figurine_gen.111 magicmap green end face finger.111 magicmap khaki end face fire_drag.131 magicmap red end face fire_drag.132 magicmap red end face fire_drag.171 magicmap red end face fire_drag.172 magicmap red end face fireball.111 visibility 100 magicmap red is_floor 1 end face fireball.112 magicmap red end face fireball.113 magicmap red end face firebolt.111 magicmap red end face firebolt.121 magicmap red end face firebolt.131 magicmap red end face firebolt.141 magicmap red end face firebolt.151 magicmap red end face firebolt.161 magicmap red end face firebolt.171 magicmap red end face firebolt.181 magicmap red end face fireborn.111 magicmap red end face fireborn.222 magicmap red end face fireborn.333 magicmap red end face fireborn.444 magicmap red end face firebrand.111 magicmap red end face firebrand.112 magicmap red end face firebrand.113 magicmap red end face firebullet.111 magicmap red end face firebullet.121 magicmap red end face firebullet.131 magicmap red end face firebullet.141 magicmap red end face firebullet.151 magicmap red end face firebullet.161 magicmap red end face firebullet.171 magicmap red end face firebullet.181 magicmap red end face firechest.111 magicmap black end face fireholes.111 visibility 50 magicmap black end face fireplace.111 magicmap black end face fireplace.112 magicmap black end face fireplace.113 magicmap black end face firepot.111 magicmap red end face firepot.112 magicmap red end face firepot.113 magicmap red end face firepot.114 magicmap red end face firestar.111 magicmap yellow end face firestar.112 magicmap yellow end face firestar.113 magicmap yellow end face firewall_1.111 visibility 100 magicmap grey end face firewall_2.111 visibility 100 magicmap grey end face firewall_3.111 visibility 100 magicmap grey end face firewall_4.111 visibility 100 magicmap grey end face firewall_5.111 visibility 100 magicmap grey end face firewall_6.111 visibility 100 magicmap grey end face firewall_7.111 visibility 100 magicmap grey end face firewall_8.111 visibility 100 magicmap grey end face fish_1.111 magicmap green end face fish_2.111 magicmap green end face fish_3.111 magicmap green end face fish_4.111 magicmap green end face fish_5.111 magicmap green end face fish_6.111 magicmap green end face fishboat.x11 visibility 100 magicmap brown end face fishfood.111 magicmap green end face fishing_pole.111 magicmap brown end face fix_mercury.111 magicmap grey end face fix_mercury.112 magicmap grey end face flagstone.111 magicmap grey is_floor 1 end face flagstone_0.111 visibility 100 magicmap grey end face flagstone_1.111 visibility 100 magicmap grey end face flagstone_2.111 visibility 100 magicmap grey end face flagstone_3.111 visibility 100 magicmap grey end face flagstone_4.111 visibility 100 magicmap grey end face flagstone_5.111 visibility 100 magicmap grey end face flagstone_6.111 visibility 100 magicmap grey end face flagstone_7.111 visibility 100 magicmap grey end face flagstone_8.111 visibility 100 magicmap grey end face flagstone_9.111 visibility 100 magicmap grey end face flagstone_A.111 visibility 100 magicmap grey end face flagstone_B.111 visibility 100 magicmap grey end face flagstone_C.111 visibility 100 magicmap grey end face flagstone_D.111 visibility 100 magicmap grey end face flagstone_E.111 visibility 100 magicmap grey end face flagstone_F.111 visibility 100 magicmap grey end face flagstone_win1.111 visibility 100 magicmap grey end face flamingtower.x11 visibility 100 magicmap grey end face flint_and_steel.111 magicmap grey end face flowers.111 visibility 100 magicmap green end face fog.111 visibility 100 magicmap grey end face fog.112 visibility 100 magicmap white end face fog_2.111 magicmap grey end face food.111 magicmap dark_orange end face foot.111 magicmap khaki end face footbridge_0.111 visibility 100 magicmap grey end face footbridge_1.111 visibility 100 magicmap grey end face footbridge_2.111 visibility 100 magicmap grey end face footbridge_3.111 visibility 100 magicmap grey end face footbridge_4.111 visibility 100 magicmap grey end face footbridge_5.111 visibility 100 magicmap grey end face footbridge_6.111 visibility 100 magicmap grey end face footbridge_7.111 visibility 100 magicmap grey end face footbridge_8.111 visibility 100 magicmap grey end face footbridge_9.111 visibility 100 magicmap grey end face footbridge_A.111 visibility 100 magicmap grey end face footbridge_B.111 visibility 100 magicmap grey end face footbridge_C.111 visibility 100 magicmap grey end face footbridge_D.111 visibility 100 magicmap grey end face footbridge_E.111 visibility 100 magicmap grey end face footbridge_F.111 visibility 100 magicmap grey end face footpath_0.111 visibility 100 magicmap grey is_floor 1 end face footpath_1.111 visibility 100 magicmap grey is_floor 1 end face footpath_2.111 visibility 100 magicmap grey is_floor 1 end face footpath_3.111 visibility 100 magicmap grey is_floor 1 end face footpath_4.111 visibility 100 magicmap grey is_floor 1 end face footpath_5.111 visibility 100 magicmap grey is_floor 1 end face footpath_6.111 visibility 100 magicmap grey is_floor 1 end face footpath_7.111 visibility 100 magicmap grey is_floor 1 end face footpath_8.111 visibility 100 magicmap grey is_floor 1 end face footpath_9.111 visibility 100 magicmap grey is_floor 1 end face footpath_A.111 visibility 100 magicmap grey is_floor 1 end face footpath_B.111 visibility 100 magicmap grey is_floor 1 end face footpath_C.111 visibility 100 magicmap grey is_floor 1 end face footpath_D.111 visibility 100 magicmap grey is_floor 1 end face footpath_E.111 visibility 100 magicmap grey is_floor 1 end face footpath_F.111 visibility 100 magicmap grey is_floor 1 end face ford_ns.111 visibility 100 magicmap blue end face ford_we.111 visibility 100 magicmap blue end face forestsparse.111 magicmap green end face forge.111 magicmap black end face forge.112 magicmap black end face forge.113 magicmap black end face fort.x11 visibility 100 magicmap grey end face fort_sym.111 visibility 100 magicmap grey end face fountain.111 magicmap grey end face fountain.112 magicmap grey end face fountain.113 magicmap grey end face frost_hammer.111 magicmap khaki end face frost_hammer.112 magicmap khaki end face frost_hammer.113 magicmap khaki end face frost_hammer.114 magicmap khaki end face frostbolt.111 magicmap light_blue end face frostbolt.121 magicmap light_blue end face frostbolt.131 magicmap light_blue end face frostbolt.141 magicmap light_blue end face frostbolt.151 magicmap light_blue end face frostbolt.161 magicmap light_blue end face frostbolt.171 magicmap light_blue end face frostbolt.181 magicmap light_blue end face frostbrand.111 magicmap white end face frostshield.111 magicmap blue end face frypan_closed.111 magicmap brown end face frypan_opened.111 magicmap brown end face fullhelmet.111 magicmap grey end face fungus.111 magicmap light_blue end face fungus.112 magicmap light_blue end face fungus.113 magicmap light_blue end face fungus.114 magicmap light_blue end face fungus.115 magicmap light_blue end face g_worm.x31 magicmap green end face gaelotroll.x31 magicmap blue end face gale.111 magicmap brown end face galleon.111 visibility 100 magicmap brown end face gard_gate.111 visibility 100 magicmap black end face gard_gate.112 visibility 100 magicmap black end face gard_gate.113 visibility 100 magicmap black end face gard_gate.114 visibility 100 magicmap black end face gardengnome.111 magicmap blue end face gardengnome.112 magicmap blue end face gargoyle.111 magicmap grey end face gargoyle.112 magicmap grey end face gate_1.111 visibility 50 magicmap black end face gate_1.112 visibility 50 magicmap black end face gate_1.113 visibility 50 magicmap black end face gate_1.114 visibility 50 magicmap black end face gate_1.115 visibility 50 magicmap black end face gate_1.116 visibility 50 magicmap black end face gate_1.117 visibility 50 magicmap black end face gate_2.111 visibility 50 magicmap black end face gate_2.112 visibility 50 magicmap black end face gate_2.113 visibility 50 magicmap black end face gate_2.114 visibility 50 magicmap black end face gate_2.115 visibility 50 magicmap black end face gauntlet_s.111 magicmap grey end face gem.111 visibility 100 magicmap green end face gem.112 magicmap green end face gen_mushroom.111 magicmap black end face generic_rune.111 magicmap black end face ghast.111 magicmap black end face ghast.112 magicmap black end face ghast.113 magicmap black end face ghost.111 magicmap white end face ghost.112 magicmap white end face ghost_gen.111 magicmap red end face giant.x11 magicmap brown end face giant_bat.111 magicmap black end face giant_bat.112 magicmap black end face giant_bat.113 magicmap black end face giant_chief.x11 magicmap brown end face giant_gen.111 magicmap red end face giant_leader.x11 magicmap brown end face giantrat.x31 magicmap black end face gir_strcon.111 magicmap orange end face gir_strcon.112 magicmap orange end face girdle_con.111 magicmap blue end face girdle_con.112 magicmap blue end face girdle_dam.111 magicmap black end face girdle_dam.112 magicmap black end face girdle_str.111 magicmap red end face girdle_str.112 magicmap red end face girdle_str.113 magicmap red end face girdle_str.114 magicmap red end face glacier.111 magicmap white is_floor 1 end face gloves.111 magicmap brown end face gloves_b.111 magicmap black end face gloves_w.111 magicmap white end face glue.111 visibility 50 magicmap khaki end face glue.112 visibility 50 magicmap khaki end face gnoll.111 magicmap brown end face gnoll.112 magicmap brown end face gnoll_chief.111 magicmap brown end face gnoll_gen.111 magicmap red end face gnoll_leader.111 magicmap brown end face gnome.111 magicmap green end face gnome.112 magicmap green end face gnome2.111 magicmap green end face gnome2.112 magicmap green end face goblin.111 magicmap green end face goblin.112 magicmap green end face goblin.131 magicmap green end face goblin.132 magicmap green end face goblin.151 magicmap green end face goblin.152 magicmap green end face goblin.171 magicmap green end face goblin.172 magicmap green end face goblin_chief.111 magicmap green end face goblin_gen.111 magicmap red end face goblin_head.111 magicmap green end face goblin_leader.111 magicmap green end face god_finger.111 magicmap orange end face gol.x11 magicmap grey end face goldbar.111 magicmap orange end face goldblock.111 magicmap orange end face goldcoin.111 magicmap yellow end face goldflagstone.111 magicmap grey is_floor 1 end face goldfloor.111 magicmap dark_orange is_floor 1 end face goldfloor2.111 magicmap dark_orange is_floor 1 end face goldgrass.111 magicmap green is_floor 1 end face goldround.111 magicmap orange end face golem.111 magicmap brown end face golem.112 magicmap brown end face golem_red.111 magicmap red end face golem_red.112 magicmap red end face goose.131 magicmap brown end face gram.111 magicmap black end face gram.112 magicmap black end face gram.113 magicmap black end face gram.114 magicmap black end face grand_piano_black.x11 visibility 50 end face grand_piano_white.x11 visibility 50 end face graphite.111 magicmap black end face grass.111 magicmap green is_floor 1 end face grass_br_gr.111 magicmap green is_floor 1 end face grassbrown.111 magicmap brown is_floor 1 end face grassdark.111 magicmap green is_floor 1 end face grassmedium.111 magicmap green is_floor 1 end face grasspond.111 magicmap green is_floor 1 end face grate_1.111 visibility 50 magicmap black end face grate_1.112 visibility 50 magicmap black end face grate_1.113 visibility 50 magicmap black end face grate_1.114 visibility 50 magicmap black end face grate_1.115 visibility 50 magicmap black end face grate_1.116 visibility 50 magicmap black end face grate_1.117 visibility 50 magicmap black end face grate_1.118 visibility 50 magicmap black end face grate_2.111 visibility 50 magicmap black end face grate_2.112 visibility 50 magicmap black end face grate_2.113 visibility 50 magicmap black end face grate_2.114 visibility 50 magicmap black end face grate_2.115 visibility 50 magicmap black end face grate_2.116 visibility 50 magicmap black end face grate_2.117 visibility 50 magicmap black end face grate_2.118 visibility 50 magicmap black end face gratedoor1.111 magicmap black end face gratedoor2.111 magicmap black end face gravestone.111 magicmap white end face gravestone2.111 magicmap white end face gray-white-h-marble.111 magicmap grey is_floor 1 end face gray-white-h-marble.112 magicmap grey is_floor 1 end face graymarble.111 magicmap grey is_floor 1 end face greater_dwarven_guard.111 magicmap red end face greater_dwarven_guard.112 magicmap red end face green-beige-c-marble.111 magicmap grey is_floor 1 end face green-beige-c-marble.112 magicmap grey is_floor 1 end face green-beige-c-marble.113 magicmap grey is_floor 1 end face green-beige-c-marble.114 magicmap grey is_floor 1 end face green-white-c-marble.111 magicmap grey is_floor 1 end face green-white-c-marble.112 magicmap grey is_floor 1 end face green-white-c-marble.113 magicmap grey is_floor 1 end face green-white-c-marble.114 magicmap grey is_floor 1 end face green-white-h-marble.111 magicmap grey is_floor 1 end face green-white-h-marble.112 magicmap grey is_floor 1 end face green_dragon2.151 magicmap black end face green_dragon2.152 magicmap black end face green_dragon2.171 magicmap black end face green_dragon2.172 magicmap black end face greendragonmail.111 magicmap black end face greenmarble.111 magicmap grey is_floor 1 end face greenmarblelight.111 magicmap grey is_floor 1 end face greenmarblemedium.111 magicmap grey is_floor 1 end face greenslime.111 magicmap green end face greenslime.112 magicmap green end face grey_drag.131 magicmap grey end face grey_drag.132 magicmap grey end face grey_drag.171 magicmap grey end face grey_drag.172 magicmap grey end face grimreaper.111 magicmap black end face grimreaper.112 magicmap black end face grimreaper.113 magicmap black end face grimreaper.114 magicmap black end face gryphon.x31 magicmap brown end face gstone_4.111 magicmap green is_floor 1 end face gu_horn.111 magicmap orange end face gu_horn.112 magicmap orange end face gu_horn.113 magicmap orange end face gu_horn.114 magicmap orange end face gu_horn.115 magicmap orange end face guard_hard.111 magicmap blue end face guard_ho_1.111 magicmap grey end face guard_ho_2.111 magicmap grey end face guard_ho_4.111 magicmap grey end face guard_ho_8.111 magicmap grey end face guard_ligh.111 magicmap brown end face guard_med.111 magicmap grey end face guild.x11 visibility 100 magicmap brown end face guild_fant.x11 visibility 100 magicmap brown end face guild_northwest.x11 visibility 100 magicmap brown end face guild_west.x11 visibility 100 magicmap brown end face guildmaste.111 magicmap brown end face gwall_0.111 visibility 100 magicmap dark_orange end face gwall_1.111 visibility 100 magicmap dark_orange end face gwall_2.111 visibility 100 magicmap dark_orange end face gwall_3.111 visibility 100 magicmap dark_orange end face gwall_4.111 visibility 100 magicmap dark_orange end face gwall_5.111 visibility 100 magicmap dark_orange end face gwall_6.111 visibility 100 magicmap dark_orange end face gwall_7.111 visibility 100 magicmap dark_orange end face gwall_8.111 visibility 100 magicmap dark_orange end face gwall_9.111 visibility 100 magicmap dark_orange end face gwall_A.111 visibility 100 magicmap dark_orange end face gwall_B.111 visibility 100 magicmap dark_orange end face gwall_C.111 visibility 100 magicmap dark_orange end face gwall_D.111 visibility 100 magicmap dark_orange end face gwall_E.111 visibility 100 magicmap dark_orange end face gwall_F.111 visibility 100 magicmap dark_orange end face gwall_xa.111 visibility 100 magicmap dark_orange end face gwall_xb.111 visibility 100 magicmap dark_orange end face gwall_xc.111 visibility 100 magicmap dark_orange end face gwall_xd.111 visibility 100 magicmap dark_orange end face gypsum.111 magicmap blue end face h_kobold.111 magicmap green end face h_kobold.112 magicmap green end face haggis.111 magicmap orange end face halfling.111 magicmap blue end face halfling.112 magicmap blue end face halfling.131 magicmap blue end face halfling.132 magicmap blue end face halfling.151 magicmap blue end face halfling.152 magicmap blue end face halfling.171 magicmap blue end face halfling.172 magicmap blue end face halfling2.151 magicmap black end face halfling3.151 magicmap black end face halfling3.152 magicmap black end face hammer_1.111 magicmap brown end face hammer_2.101 magicmap grey end face hammer_2.111 magicmap grey end face hammer_2.121 magicmap grey end face hammer_2.131 magicmap grey end face hammer_2.141 magicmap grey end face hammer_2.151 magicmap grey end face hammer_2.161 magicmap grey end face hammer_2.171 magicmap grey end face hammer_2.181 magicmap grey end face hand.111 magicmap khaki end face handcrossbow.111 magicmap brown end face handcrossbow_bone.111 magicmap brown end face handle.111 visibility 50 magicmap black end face handle.112 visibility 50 magicmap black end face hands.111 magicmap khaki end face hangingfirepot.111 magicmap red end face hangingfirepot.112 magicmap red end face hangingfirepot.113 magicmap red end face hangingfirepot.114 magicmap red end face harakiri.111 magicmap grey end face harpsichord1.x11 visibility 50 end face harpsichord2.x11 visibility 50 end face harpsichord3.x11 visibility 50 end face harpsichord4.x11 visibility 50 end face head.111 magicmap khaki end face healing.111 visibility 255 magicmap blue end face healing.112 visibility 255 magicmap blue end face healing.113 visibility 255 magicmap blue end face healing.114 visibility 255 magicmap blue end face healing.115 visibility 255 magicmap blue end face heart.111 magicmap red end face hedge.111 magicmap green end face hedge.112 magicmap green end face hedge.113 magicmap green end face hedge_0.111 visibility 100 magicmap black end face hedge_1.111 visibility 100 magicmap black end face hedge_2.111 visibility 100 magicmap black end face hedge_3.111 visibility 100 magicmap black end face hedge_4.111 visibility 100 magicmap black end face hedge_5.111 visibility 100 magicmap black end face hedge_6.111 visibility 100 magicmap black end face hedge_7.111 visibility 100 magicmap black end face hedge_8.111 visibility 100 magicmap black end face hedge_9.111 visibility 100 magicmap black end face hedge_A.111 visibility 100 magicmap black end face hedge_B.111 visibility 100 magicmap black end face hedge_C.111 visibility 100 magicmap black end face hedge_D.111 visibility 100 magicmap black end face hedge_E.111 visibility 100 magicmap black end face hedge_F.111 visibility 100 magicmap black end face hellhound.131 magicmap brown end face hellhound.132 magicmap brown end face hellhound.133 magicmap brown end face hellhound.171 magicmap brown end face hellhound.172 magicmap brown end face hellhound.173 magicmap brown end face helmet.111 magicmap black end face helmet_bri.111 magicmap grey end face helmetxray.111 magicmap grey end face helmetxray.112 magicmap grey end face hide_black.111 magicmap black end face hide_brown.111 magicmap brown end face hide_grey.111 magicmap grey end face hide_white.111 magicmap white end face high_boots.111 magicmap black end face high_boots_b.111 magicmap black end face high_boots_w.111 magicmap white end face highangel.118 magicmap white end face highshield.111 magicmap grey end face hills.111 magicmap khaki is_floor 1 end face hillsrocky.111 magicmap brown is_floor 1 end face hole.111 visibility 50 magicmap black end face hole.112 visibility 50 magicmap black end face hole.113 visibility 50 magicmap black end face hole.114 visibility 50 magicmap black end face hole.115 visibility 50 magicmap black end face hole.116 visibility 50 magicmap black end face hole.117 visibility 50 magicmap black end face hole.118 visibility 50 magicmap black end face hole.119 visibility 50 magicmap black end face hole.11A visibility 50 magicmap black end face hole1.111 magicmap green is_floor 1 end face hole_white-any-c-marble.111 visibility 50 magicmap black is_floor 1 end face hole_white-any-c-marble.112 visibility 50 magicmap black is_floor 1 end face hole_white-any-c-marble.113 visibility 50 magicmap black is_floor 1 end face hole_white-any-c-marble.114 visibility 50 magicmap black is_floor 1 end face holy_effect.111 magicmap black end face holy_effect.112 magicmap black end face holy_effect.113 magicmap black end face holy_orb.111 magicmap yellow end face holy_symbol.111 magicmap brown end face holy_symbol_calling.111 magicmap brown end face holy_symbol_dark_path.111 magicmap brown end face holy_symbol_probity.111 magicmap brown end face holy_symbol_turning.111 magicmap brown end face holy_word.111 magicmap black end face holy_word.112 magicmap black end face holy_word.113 magicmap black end face holyave.111 magicmap black end face holyave.112 magicmap black end face holyave.113 magicmap black end face holyave.114 magicmap black end face holyave.115 magicmap black end face holyave.116 magicmap black end face holyave.117 magicmap black end face holyave.118 magicmap black end face holyave.119 magicmap black end face holyave.11A magicmap black end face holyave.11B magicmap black end face holyave.11C magicmap black end face holyshield.111 magicmap grey end face hooksword.111 magicmap grey end face horn.111 magicmap orange end face horn2.111 magicmap orange end face horn3.111 magicmap orange end face horn_base.111 magicmap orange end face hornhelmet.111 magicmap grey end face horse.131 magicmap brown end face horse.171 magicmap brown end face house1_east.111 visibility 100 end face house2_east.111 visibility 100 end face house_1.111 visibility 100 magicmap brown end face house_1_green.111 visibility 100 magicmap brown end face house_2.111 visibility 100 magicmap brown end face house_larg.x11 visibility 100 magicmap grey end face house_larg_west.x11 visibility 100 magicmap grey end face house_long.x11 visibility 100 magicmap brown end face house_up.x11 visibility 100 magicmap brown end face housesmall.111 visibility 100 magicmap brown end face hovels.111 visibility 100 end face hovels2.x11 visibility 100 end face human.111 magicmap black end face human.112 magicmap black end face human.131 magicmap black end face human.132 magicmap black end face human.151 magicmap black end face human.152 magicmap black end face human.171 magicmap black end face human.172 magicmap black end face huntersbow.111 magicmap brown end face hut.111 visibility 100 magicmap black end face hut_hori.x11 visibility 100 magicmap black end face hut_vert.x11 visibility 100 magicmap black end face ice.111 magicmap white end face ice2.111 magicmap white is_floor 1 end face icecube.111 magicmap white end face icestorm.111 visibility 100 magicmap light_blue is_floor 1 end face icestorm.112 magicmap light_blue end face icestorm.113 visibility 100 magicmap light_blue end face icor.111 magicmap green end face icor.112 magicmap green end face icor.113 magicmap green end face icor.114 magicmap green end face icor.115 magicmap green end face icor.116 magicmap green end face icor.117 magicmap green end face icor.118 magicmap green end face icor.119 magicmap green end face icor.11A magicmap green end face icor.11B magicmap green end face icor.11C magicmap green end face idaten.111 magicmap black end face ihole.111 visibility 100 magicmap grey end face improve_cha.111 magicmap white end face improve_con.111 magicmap white end face improve_damage.111 magicmap white end face improve_dex.111 magicmap white end face improve_enchantment.111 magicmap white end face improve_int.111 magicmap white end face improve_pow.111 magicmap white end face improve_str.111 magicmap white end face improve_weight.111 magicmap white end face improve_wis.111 magicmap white end face inn.x11 visibility 100 magicmap red end face inn_fant.x11 visibility 100 magicmap red end face insect_sting.111 magicmap black end face insect_wing.111 magicmap blue end face ipond.111 magicmap blue is_floor 1 end face iron_gate1.111 visibility 50 magicmap black end face iron_gate1.112 visibility 50 magicmap black end face iron_gate1.113 visibility 50 magicmap black end face iron_gate1.114 visibility 50 magicmap black end face iron_gate1.115 visibility 50 magicmap black end face iron_gate1.116 visibility 50 magicmap black end face iron_gate1.117 visibility 50 magicmap black end face iron_gate1.118 visibility 50 magicmap black end face iron_gate2.111 visibility 50 magicmap black end face iron_gate2.112 visibility 50 magicmap black end face iron_gate2.113 visibility 50 magicmap black end face iron_gate2.114 visibility 50 magicmap black end face iron_gate2.115 visibility 50 magicmap black end face iron_gate2.116 visibility 50 magicmap black end face ironbar.111 magicmap grey end face istone.111 magicmap white is_floor 1 end face jade_coin.111 magicmap green end face jcity_0.111 visibility 100 magicmap grey end face jcity_1.111 visibility 100 magicmap grey end face jcity_2.111 visibility 100 magicmap grey end face jcity_3.111 visibility 100 magicmap grey end face jcity_4.111 visibility 100 magicmap grey end face jcity_5.111 visibility 100 magicmap grey end face jcity_6.111 visibility 100 magicmap grey end face jcity_7.111 visibility 100 magicmap grey end face jcity_8.111 visibility 100 magicmap grey end face jcity_9.111 visibility 100 magicmap grey end face jcity_A.111 visibility 100 magicmap grey end face jcity_B.111 visibility 100 magicmap grey end face jcity_C.111 visibility 100 magicmap grey end face jcity_D.111 visibility 100 magicmap grey end face jcity_E.111 visibility 100 magicmap grey end face jcity_F.111 visibility 100 magicmap grey end face jessyb.x11 magicmap red end face jeweler_bench.111 magicmap black end face jungle_1.111 magicmap green is_floor 1 end face jungle_2.111 magicmap green is_floor 1 end face k_dagger.111 magicmap grey end face kama_1.111 magicmap brown end face kama_2.111 magicmap brown end face katana_1.111 magicmap grey end face keep.x11 visibility 100 magicmap grey end face keep.x12 visibility 100 magicmap grey end face keep_sym.111 visibility 100 magicmap grey end face key1.111 magicmap orange end face key2.111 magicmap dark_orange end face key_blue.111 magicmap blue end face key_brown.111 magicmap brown end face key_darkgray.111 magicmap grey end face key_darkgreen.111 magicmap green end face key_gray.111 magicmap grey end face key_green.111 magicmap green end face key_magenta.111 magicmap orange end face key_red.111 magicmap red end face key_ring.111 magicmap black end face key_white.111 magicmap white end face killerbee.111 magicmap orange end face killerbee.112 magicmap orange end face knight.111 magicmap blue end face knight.112 magicmap blue end face knight.113 magicmap blue end face knight.114 magicmap blue end face knight.115 magicmap blue end face kobold.111 magicmap brown end face kobold.112 magicmap brown end face kobold_gen.111 magicmap red end face kog.111 magicmap black end face l_shop1.x11 visibility 100 magicmap black end face ladder2_do.111 visibility 100 magicmap black end face ladder2_up.111 visibility 100 magicmap black end face ladder_down.111 visibility 100 magicmap black end face ladder_up.111 visibility 100 magicmap black end face lamia.x31 magicmap green end face lampost.111 magicmap yellow end face lantern.111 magicmap orange end face lantern2.111 magicmap orange end face lantern2_off.111 magicmap brown end face lantern_off.111 magicmap brown end face lapron.111 magicmap brown end face large_hdoor.111 magicmap brown end face large_vdoor.111 magicmap brown end face largestone.111 magicmap orange is_floor 1 end face lava.111 visibility 100 magicmap yellow is_floor 1 end face lava.112 visibility 100 magicmap yellow is_floor 1 end face lava.113 visibility 100 magicmap yellow is_floor 1 end face lava.114 visibility 100 magicmap yellow is_floor 1 end face lava.115 visibility 100 magicmap yellow is_floor 1 end face lava_blake_0.111 visibility 100 magicmap red end face lava_blake_1.111 visibility 100 magicmap red end face lava_blake_2.111 visibility 100 magicmap red end face lava_blake_3.111 visibility 100 magicmap red end face lava_blake_4.111 visibility 100 magicmap red end face lava_blake_5.111 visibility 100 magicmap red end face lava_blake_6.111 visibility 100 magicmap red end face lava_blake_7.111 visibility 100 magicmap red end face lava_blake_8.111 visibility 100 magicmap red end face lava_blake_9.111 visibility 100 magicmap red end face lava_blake_A.111 visibility 100 magicmap red end face lava_blake_B.111 visibility 100 magicmap red end face lava_blake_C.111 visibility 100 magicmap red end face lava_blake_D.111 visibility 100 magicmap red end face lava_blake_E.111 visibility 100 magicmap red end face lava_blake_F.111 magicmap red is_floor 1 end face lava_branch_125.111 visibility 100 magicmap blue end face lava_branch_125.211 visibility 100 magicmap blue end face lava_branch_135.111 visibility 100 magicmap blue end face lava_branch_137.111 visibility 100 magicmap blue end face lava_branch_145.111 visibility 100 magicmap blue end face lava_branch_145.211 visibility 100 magicmap blue end face lava_branch_156.111 visibility 100 magicmap blue end face lava_branch_156.211 visibility 100 magicmap blue end face lava_branch_157.111 visibility 100 magicmap blue end face lava_branch_158.111 visibility 100 magicmap blue end face lava_branch_158.211 visibility 100 magicmap blue end face lava_branch_237.111 visibility 100 magicmap blue end face lava_branch_237.211 visibility 100 magicmap blue end face lava_branch_347.111 visibility 100 magicmap blue end face lava_branch_347.211 visibility 100 magicmap blue end face lava_branch_357.111 visibility 100 magicmap blue end face lava_branch_367.111 visibility 100 magicmap blue end face lava_branch_367.211 visibility 100 magicmap blue end face lava_branch_378.111 visibility 100 magicmap blue end face lava_branch_378.211 visibility 100 magicmap blue end face lava_bridge_15.111 visibility 100 magicmap blue end face lava_bridge_37.111 visibility 100 magicmap blue end face lava_ford_ns.111 visibility 100 magicmap blue end face lava_ford_we.111 visibility 100 magicmap blue end face lava_river_14.111 visibility 100 magicmap blue end face lava_river_15.111 visibility 100 magicmap blue end face lava_river_16.111 visibility 100 magicmap blue end face lava_river_25.111 visibility 100 magicmap blue end face lava_river_26.111 visibility 100 magicmap blue end face lava_river_26.211 visibility 100 magicmap blue end face lava_river_26.311 visibility 100 magicmap blue end face lava_river_27.111 visibility 100 magicmap blue end face lava_river_36.111 visibility 100 magicmap blue end face lava_river_37.111 visibility 100 magicmap blue end face lava_river_38.111 visibility 100 magicmap blue end face lava_river_47.111 visibility 100 magicmap blue end face lava_river_48.111 visibility 100 magicmap blue end face lava_river_48.211 visibility 100 magicmap blue end face lava_river_48.311 visibility 100 magicmap blue end face lava_river_58.111 visibility 100 magicmap blue end face lava_sea.111 magicmap light_blue is_floor 1 end face lava_sea.112 magicmap light_blue is_floor 1 end face lava_sea.113 magicmap light_blue is_floor 1 end face lava_sea.114 magicmap light_blue is_floor 1 end face lava_well.111 visibility 100 magicmap grey end face lbull_wall.101 visibility 100 magicmap yellow end face lbull_wall.111 visibility 100 magicmap yellow end face lbull_wall.121 visibility 100 magicmap yellow end face lbull_wall.131 visibility 100 magicmap yellow end face lbull_wall.141 visibility 100 magicmap yellow end face lbull_wall.151 visibility 100 magicmap yellow end face lbull_wall.161 visibility 100 magicmap yellow end face lbull_wall.171 visibility 100 magicmap yellow end face lbull_wall.181 visibility 100 magicmap yellow end face lbullet.111 magicmap black end face lbullet.121 magicmap black end face lbullet.131 magicmap black end face lbullet.141 magicmap black end face lbullet.151 magicmap black end face lbullet.161 magicmap black end face lbullet.171 magicmap black end face lbullet.181 magicmap black end face ldoor1.111 magicmap dark_orange end face ldoor2.111 magicmap dark_orange end face ldoor_blue1.111 magicmap blue end face ldoor_blue2.111 magicmap blue end face ldoor_brown1.111 magicmap brown end face ldoor_brown2.111 magicmap brown end face ldoor_white1.111 magicmap white end face ldoor_white2.111 magicmap white end face lead.111 magicmap grey end face leadbar.111 magicmap grey end face leather_ar.111 magicmap brown end face leg.111 magicmap khaki end face lesser_dwarven_guard.111 magicmap black end face lesser_dwarven_guard.112 magicmap black end face letter.111 magicmap khaki end face lev_boots.111 magicmap white end face lever.111 visibility 50 magicmap black end face lever.112 visibility 50 magicmap black end face lich.111 magicmap blue end face lich.112 magicmap blue end face lich.113 magicmap blue end face light_bulb_1.111 magicmap yellow end face light_bulb_2.111 magicmap yellow end face light_bulb_3.111 magicmap yellow end face light_bulb_4.111 magicmap yellow end face light_wall.101 visibility 100 magicmap yellow end face light_wall.111 visibility 100 magicmap yellow end face light_wall.121 visibility 100 magicmap yellow end face light_wall.131 visibility 100 magicmap yellow end face light_wall.141 visibility 100 magicmap yellow end face light_wall.151 visibility 100 magicmap yellow end face light_wall.161 visibility 100 magicmap yellow end face light_wall.171 visibility 100 magicmap yellow end face light_wall.181 visibility 100 magicmap yellow end face lightgreenmarble.111 magicmap grey is_floor 1 end face lighthouse.x11 visibility 100 magicmap grey end face lighthouse_northwest.x11 visibility 100 magicmap grey end face lighthouse_west.x11 visibility 100 magicmap grey end face lightmagent-green-p-marble.111 magicmap grey is_floor 1 end face lightmagent-green-p-marble.112 magicmap grey is_floor 1 end face lightmagent-green-p-marble.113 magicmap grey is_floor 1 end face lightmagent-green-p-marble.114 magicmap grey is_floor 1 end face lightmagent-green-p-marble.121 magicmap grey is_floor 1 end face lightmagent-green-p-marble.122 magicmap grey is_floor 1 end face lightmagent-green-p-marble.123 magicmap grey is_floor 1 end face lightmagent-green-p-marble.124 magicmap grey is_floor 1 end face lightmagentamarble.111 magicmap grey is_floor 1 end face lightning.111 magicmap dark_orange end face lightning.121 magicmap dark_orange end face lightning.131 magicmap dark_orange end face lightning.141 magicmap dark_orange end face lightning.151 magicmap dark_orange end face lightning.161 magicmap dark_orange end face lightning.171 magicmap dark_orange end face lightning.181 magicmap dark_orange end face lightning_bow.111 magicmap brown end face liteangel.111 magicmap white end face liteangel.112 magicmap white end face liteangel.113 magicmap white end face liteangel.114 magicmap white end face liv_chaos.111 magicmap blue end face liv_chaos.222 magicmap blue end face liv_chaos.333 magicmap blue end face liv_chaos.444 magicmap blue end face liver.111 magicmap black end face lmornstar.111 magicmap black end face loaf.111 magicmap brown end face lockpicks.111 magicmap grey end face lokanth.131 magicmap green end face lokanth.132 magicmap green end face lokanth.171 magicmap green end face lokanth.172 magicmap green end face longbow.111 magicmap brown end face longship.x11 visibility 100 magicmap brown end face longtable_0.111 visibility 100 magicmap brown end face longtable_1.111 visibility 100 magicmap brown end face longtable_2.111 visibility 100 magicmap brown end face longtable_3.111 visibility 100 magicmap brown end face longtable_4.111 visibility 100 magicmap brown end face longtable_5.111 visibility 100 magicmap brown end face longtable_6.111 visibility 100 magicmap brown end face longtable_7.111 visibility 100 magicmap brown end face longtable_8.111 visibility 100 magicmap brown end face longtable_9.111 visibility 100 magicmap brown end face longtable_A.111 visibility 100 magicmap brown end face longtable_B.111 visibility 100 magicmap brown end face longtable_C.111 visibility 100 magicmap brown end face longtable_D.111 visibility 100 magicmap brown end face longtable_E.111 visibility 100 magicmap brown end face longtable_F.111 visibility 100 magicmap brown end face lord_e.111 magicmap grey end face lord_e.112 magicmap grey end face low_boots.111 magicmap brown end face lstone.111 magicmap green end face lsword.111 magicmap grey end face luggage.111 magicmap brown end face luggage.112 magicmap brown end face luggage.113 magicmap brown end face luggage.114 magicmap brown end face luggage.115 magicmap brown end face luggage.116 magicmap brown end face luggage.117 magicmap brown end face luggage.118 magicmap brown end face lyth_temple.111 visibility 100 magicmap green end face mabu.x11 magicmap brown end face mabu.x12 magicmap brown end face mabu.x13 magicmap brown end face mace_1.111 magicmap grey end face mace_2.111 magicmap grey end face madman.111 magicmap brown end face madman.112 magicmap brown end face madman_gen.111 magicmap brown end face mage.111 magicmap black end face mage.112 magicmap black end face mage.131 magicmap black end face mage.132 magicmap black end face mage.151 magicmap black end face mage.152 magicmap black end face mage.171 magicmap black end face mage.172 magicmap black end face magentamarble.111 magicmap grey is_floor 1 end face magentamarblemedium.111 magicmap grey is_floor 1 end face magi_staff.111 magicmap black end face magi_staff.112 magicmap black end face magi_staff.113 magicmap black end face magic_bow.111 magicmap black end face magic_bow.112 magicmap black end face magic_bow.113 magicmap black end face magic_bow.114 magicmap black end face magic_ear.111 magicmap white end face magic_miss.111 magicmap blue end face magic_miss.121 magicmap blue end face magic_miss.131 magicmap blue end face magic_miss.141 magicmap blue end face magic_miss.151 magicmap blue end face magic_miss.161 magicmap blue end face magic_miss.171 magicmap blue end face magic_miss.181 magicmap blue end face magic_resist.111 magicmap black end face magicmouth.111 magicmap white end face magma.111 magicmap black is_floor 1 end face magma.112 magicmap black is_floor 1 end face magma.113 magicmap black is_floor 1 end face magma.114 magicmap black is_floor 1 end face magnifier.111 magicmap black end face man.131 magicmap black end face man.151 magicmap black end face man.171 magicmap black end face man2.131 magicmap black end face man2.151 magicmap black end face man2.171 magicmap black end face manabolt.111 magicmap light_blue end face manabolt.121 magicmap light_blue end face manabolt.131 magicmap light_blue end face manabolt.141 magicmap light_blue end face manabolt.151 magicmap light_blue end face manabolt.161 magicmap light_blue end face manabolt.171 magicmap light_blue end face manabolt.181 magicmap light_blue end face manhole.111 visibility 50 magicmap black end face manhole.112 visibility 50 magicmap black end face manhole.113 visibility 50 magicmap black end face manhole.114 visibility 50 magicmap black end face map.111 magicmap khaki end face marble.111 magicmap grey is_floor 1 end face marble_blgr.111 magicmap grey is_floor 1 end face market1.111 visibility 100 end face market1_east.111 visibility 100 end face market2.111 visibility 100 end face market2_east.111 visibility 100 end face market3.111 visibility 100 end face market3_east.111 visibility 100 end face marsh.111 magicmap green is_floor 1 end face masamune.111 magicmap grey end face masamune.112 magicmap grey end face masamune.113 magicmap grey end face masamune.114 magicmap grey end face mastif.131 magicmap brown end face mastif.132 magicmap brown end face mastif.133 magicmap brown end face mastif.171 magicmap brown end face mastif.172 magicmap brown end face mastif.173 magicmap brown end face mat.111 magicmap brown end face mdemon.x11 magicmap red end face mediumston.111 magicmap orange is_floor 1 end face mercury.111 magicmap grey end face meteor.111 magicmap grey end face min_oil.111 magicmap brown end face mine_0.111 visibility 100 magicmap grey end face mine_1.111 visibility 100 magicmap grey end face mine_2.111 visibility 100 magicmap grey end face mine_3.111 visibility 100 magicmap grey end face mine_4.111 visibility 100 magicmap grey end face mine_5.111 visibility 100 magicmap grey end face mine_8.111 visibility 100 magicmap grey end face mine_A.111 visibility 100 magicmap grey end face mine_C.111 visibility 100 magicmap grey end face mine_ne.111 visibility 100 magicmap grey end face mine_nw.111 visibility 100 magicmap grey end face mine_se.111 visibility 100 magicmap grey end face mine_sw.111 visibility 100 magicmap grey end face minedoor_4.x11 visibility 100 magicmap grey end face minedoor_4.x12 visibility 100 magicmap grey end face minedoor_4.x13 visibility 100 magicmap grey end face minedoor_4.x14 visibility 100 magicmap grey end face minedoor_4.x15 visibility 100 magicmap grey end face minedoor_4.x16 visibility 100 magicmap grey end face minedoor_4.x17 visibility 100 magicmap grey end face minedoor_4.x18 visibility 100 magicmap grey end face minedoor_4.x19 visibility 100 magicmap grey end face minedoor_8.x11 visibility 100 magicmap grey end face minedoor_8.x12 visibility 100 magicmap grey end face minedoor_8.x13 visibility 100 magicmap grey end face minedoor_8.x14 visibility 100 magicmap grey end face minedoor_8.x15 visibility 100 magicmap grey end face minedoor_8.x16 visibility 100 magicmap grey end face minedoor_8.x17 visibility 100 magicmap grey end face minedoor_8.x18 visibility 100 magicmap grey end face minedoor_8.x19 visibility 100 magicmap grey end face minihouse.111 visibility 100 magicmap white end face mint.111 magicmap green end face mithril.111 magicmap grey end face mithril.112 magicmap grey end face mithril.113 magicmap grey end face mithril.114 magicmap grey end face mithril_ar.111 magicmap grey end face mithril_ar.112 magicmap grey end face mithril_ar.113 magicmap grey end face mjoellnir.111 magicmap khaki end face moat_0.111 visibility 100 magicmap dark_orange end face moat_1.111 visibility 100 magicmap dark_orange end face moat_2.111 visibility 100 magicmap dark_orange end face moat_3.111 visibility 100 magicmap dark_orange end face moat_4.111 visibility 100 magicmap dark_orange end face moat_5.111 visibility 100 magicmap dark_orange end face moat_6.111 visibility 100 magicmap dark_orange end face moat_7.111 visibility 100 magicmap dark_orange end face moat_8.111 visibility 100 magicmap dark_orange end face moat_9.111 visibility 100 magicmap dark_orange end face moat_A.111 visibility 100 magicmap dark_orange end face moat_B.111 visibility 100 magicmap dark_orange end face moat_C.111 visibility 100 magicmap dark_orange end face moat_D.111 visibility 100 magicmap dark_orange end face moat_E.111 visibility 100 magicmap dark_orange end face moat_F.111 visibility 100 magicmap dark_orange end face monument.111 visibility 40 magicmap white end face mornstar.111 magicmap brown end face mos_temple.111 visibility 100 magicmap yellow end face moun_cave1.111 visibility 50 magicmap grey is_floor 1 end face moun_cave2.111 visibility 50 magicmap grey is_floor 1 end face mountain1.111 magicmap grey is_floor 1 end face mountain1_rivlets.111 magicmap blue end face mountain1_snow.111 magicmap white end face mountain2.111 magicmap white is_floor 1 end face mountain2_rivlets.111 magicmap blue end face mountain2_snow.111 magicmap white end face mountain3.111 visibility 100 magicmap grey end face mountain4.111 magicmap white is_floor 1 end face mountain5.111 magicmap white is_floor 1 end face mountain_2.x11 magicmap grey is_floor 1 end face mountain_foilage.111 magicmap green end face mournblade.111 magicmap grey end face mouse.111 magicmap brown end face mouse.112 magicmap brown end face mouse_gen.111 magicmap brown end face mudman.111 magicmap brown end face mudman.112 magicmap brown end face mushroom_1.111 magicmap white end face mushroom_2.111 magicmap brown end face mushroom_3.111 magicmap blue end face mystic_fist.111 magicmap brown end face mystic_fist.112 magicmap brown end face mystic_fist.113 magicmap brown end face naz_report.111 magicmap white end face nazgul.111 magicmap blue end face nazgul.112 magicmap blue end face necro.111 magicmap grey end face necro.112 magicmap grey end face needle.111 magicmap black end face negaball.111 magicmap black end face negaball.222 magicmap black end face negaball.333 magicmap black end face negaball.444 magicmap black end face negabolt.111 magicmap dark_orange end face negabolt.121 magicmap dark_orange end face negabolt.131 magicmap dark_orange end face negabolt.141 magicmap dark_orange end face negabolt.151 magicmap dark_orange end face negabolt.161 magicmap dark_orange end face negabolt.171 magicmap dark_orange end face negabolt.181 magicmap dark_orange end face neko.111 magicmap brown end face neko.112 magicmap brown end face neko.113 magicmap brown end face neko.114 magicmap brown end face neko.115 magicmap brown end face neko.116 magicmap brown end face neko.117 magicmap brown end face neko.118 magicmap brown end face nightmare.111 magicmap black end face nightmare.112 magicmap black end face nineringsword.111 magicmap white end face ninja.111 magicmap black end face ninja.131 magicmap black end face ninja.151 magicmap black end face ninja.171 magicmap black end face ninja_2.111 magicmap grey end face ninja_2.112 magicmap grey end face ninja_2.113 magicmap grey end face no_magic.111 magicmap red end face no_spells.111 magicmap red end face northman.111 magicmap brown end face northman.112 magicmap brown end face note.111 magicmap white end face nugget_huge.111 magicmap orange end face nugget_lar.111 magicmap orange end face nugget_sma.111 magicmap orange end face nun.131 magicmap khaki end face nun.151 magicmap khaki end face nun.171 magicmap khaki end face nunchacu_1.111 magicmap brown end face nunchacu_2.111 magicmap brown end face oakdoor.111 visibility 100 magicmap brown end face oakdoor_1.111 visibility 100 magicmap brown end face oakdoor_2.111 visibility 100 magicmap brown end face odoor_1.111 magicmap orange end face odoor_2.111 magicmap orange end face odoor_2_fant_blue-green.111 magicmap orange end face odoor_2_fant_blue-yellow.111 magicmap orange end face odoor_2_fant_brown.111 magicmap orange end face odoor_2_fant_red-white.111 magicmap orange end face odoor_2_fant_red-yellow.111 magicmap orange end face odoorm2.111 visibility 50 magicmap brown end face odoorm2.112 visibility 50 magicmap brown end face odoorm2.113 visibility 50 magicmap brown end face odoorm2.114 visibility 50 magicmap brown end face odoorm2bg.111 visibility 50 magicmap brown end face odoorm2bg.112 visibility 50 magicmap brown end face odoorm2bg.113 visibility 50 magicmap brown end face odoorm2bg.114 visibility 50 magicmap brown end face odoorm2rw.111 visibility 50 magicmap brown end face odoorm2rw.112 visibility 50 magicmap brown end face odoorm2rw.113 visibility 50 magicmap brown end face odoorm2rw.114 visibility 50 magicmap brown end face odoorn2.111 visibility 50 magicmap brown end face odoorn2.112 visibility 50 magicmap brown end face odoorn2.113 visibility 50 magicmap brown end face odoorn2.114 visibility 50 magicmap brown end face ogre.111 magicmap brown end face ogre.112 magicmap brown end face ogre_chief.111 magicmap brown end face ogre_gen.111 magicmap red end face ogre_leader.111 magicmap brown end face ogre_r.111 magicmap red end face ogre_r.112 magicmap red end face oil_sea.111 magicmap black is_floor 1 end face oil_sea.112 magicmap black is_floor 1 end face oil_sea.113 magicmap black is_floor 1 end face oil_sea.114 magicmap black is_floor 1 end face oilskin.111 magicmap grey end face ologhi.111 magicmap brown end face ologhi.112 magicmap brown end face onion.111 magicmap red end face orange.111 magicmap orange end face orc.111 magicmap black end face orc.112 magicmap black end face orc_chief.111 magicmap black end face orc_gen.111 magicmap red end face orc_leader.111 magicmap black end face orc_leader.112 magicmap black end face orcchop.111 magicmap red end face ore_b.111 magicmap grey end face ore_g.111 magicmap green end face ore_r.111 magicmap grey end face ore_y.111 magicmap orange end face oresmall_b.111 magicmap grey end face oresmall_g.111 magicmap green end face oresmall_r.111 magicmap grey end face oresmall_y.111 magicmap orange end face out_tower.x11 visibility 100 magicmap grey end face package.111 magicmap khaki end face pagoda_tower_east.x11 visibility 100 magicmap brown end face palace.x11 visibility 100 magicmap white end face palm.111 visibility 100 magicmap brown end face palms.111 magicmap green end face panther.131 magicmap black end face panther.132 magicmap black end face panther.133 magicmap black end face panther.171 magicmap black end face panther.172 magicmap black end face panther.173 magicmap black end face panthergen.111 magicmap black end face para_air.111 magicmap white end face para_air.112 magicmap white end face para_air.113 magicmap white end face para_air.114 magicmap white end face para_earth.111 magicmap brown end face para_earth.112 magicmap brown end face para_earth.113 magicmap brown end face para_fire.111 magicmap red end face para_fire.112 magicmap red end face para_ice.111 magicmap white end face para_ice.112 magicmap white end face para_ice.113 magicmap white end face para_ice.114 magicmap white end face para_ice.115 magicmap white end face para_ice.116 magicmap white end face para_ice.117 magicmap white end face para_ice.118 magicmap white end face para_ice.121 magicmap white end face para_ice.122 magicmap white end face para_ice.123 magicmap white end face para_ice.124 magicmap white end face para_ice.125 magicmap white end face para_ice.126 magicmap white end face para_ice.127 magicmap white end face para_ice.128 magicmap white end face para_ice.131 magicmap white end face para_ice.132 magicmap white end face para_ice.133 magicmap white end face para_ice.134 magicmap white end face para_ice.135 magicmap white end face para_ice.136 magicmap white end face para_ice.137 magicmap white end face para_ice.138 magicmap white end face para_ice.141 magicmap white end face para_ice.142 magicmap white end face para_ice.143 magicmap white end face para_ice.144 magicmap white end face para_ice.145 magicmap white end face para_ice.146 magicmap white end face para_ice.147 magicmap white end face para_ice.148 magicmap white end face para_ice.151 magicmap white end face para_ice.152 magicmap white end face para_ice.153 magicmap white end face para_ice.154 magicmap white end face para_ice.155 magicmap white end face para_ice.156 magicmap white end face para_ice.157 magicmap white end face para_ice.158 magicmap white end face para_ice.161 magicmap white end face para_ice.162 magicmap white end face para_ice.163 magicmap white end face para_ice.164 magicmap white end face para_ice.165 magicmap white end face para_ice.166 magicmap white end face para_ice.167 magicmap white end face para_ice.168 magicmap white end face para_ice.171 magicmap white end face para_ice.172 magicmap white end face para_ice.173 magicmap white end face para_ice.174 magicmap white end face para_ice.175 magicmap white end face para_ice.176 magicmap white end face para_ice.177 magicmap white end face para_ice.178 magicmap white end face para_ice.181 magicmap white end face para_ice.182 magicmap white end face para_ice.183 magicmap white end face para_ice.184 magicmap white end face para_ice.185 magicmap white end face para_ice.186 magicmap white end face para_ice.187 magicmap white end face para_ice.188 magicmap white end face para_lava.111 magicmap red end face para_lava.112 magicmap red end face para_lava.113 magicmap red end face para_light.111 magicmap yellow end face para_light.112 magicmap yellow end face para_light.113 magicmap yellow end face para_mud.111 magicmap brown end face para_mud.112 magicmap brown end face para_mud.113 magicmap brown end face para_mud.114 magicmap brown end face para_mud.115 magicmap brown end face para_water.111 magicmap blue end face para_water.112 magicmap blue end face para_water.113 magicmap blue end face paralyse.111 visibility 100 magicmap dark_orange is_floor 1 end face paralyse.112 magicmap dark_orange end face paralyse.113 magicmap dark_orange end face paved_0.111 visibility 100 magicmap grey end face paved_1.111 visibility 100 magicmap grey end face paved_2.111 visibility 100 magicmap grey end face paved_3.111 visibility 100 magicmap grey end face paved_4.111 visibility 100 magicmap grey end face paved_5.111 visibility 100 magicmap grey end face paved_6.111 visibility 100 magicmap grey end face paved_7.111 visibility 100 magicmap grey end face paved_8.111 visibility 100 magicmap grey end face paved_9.111 visibility 100 magicmap grey end face paved_A.111 visibility 100 magicmap grey end face paved_B.111 visibility 100 magicmap grey end face paved_C.111 visibility 100 magicmap grey end face paved_D.111 visibility 100 magicmap grey end face paved_E.111 visibility 100 magicmap grey end face paved_F.111 visibility 100 magicmap grey end face pear.111 magicmap green end face pearl.111 visibility 100 magicmap white end face pearl.112 magicmap white end face pedestal.111 visibility 50 magicmap grey end face pedestal.112 visibility 50 magicmap grey end face penta.111 magicmap black end face pentagram.x11 visibility 50 magicmap black end face pet_necro.111 magicmap grey end face pet_necro.112 magicmap grey end face phil_phos.111 magicmap grey end face phil_phos.112 magicmap grey end face phil_phos.113 magicmap grey end face phil_salt.111 magicmap white end face phil_salt.112 magicmap white end face phil_salt.113 magicmap white end face phil_sulphur.111 magicmap yellow end face phil_sulphur.112 magicmap yellow end face phil_sulphur.113 magicmap yellow end face phole_1.111 visibility 100 magicmap brown end face phole_2.111 visibility 100 magicmap brown end face phole_3.111 visibility 100 magicmap brown end face phosphor.111 magicmap grey end face pier_0.111 visibility 100 magicmap brown end face pier_1.111 visibility 100 magicmap brown end face pier_2.111 visibility 100 magicmap brown end face pier_3.111 visibility 100 magicmap brown end face pier_4.111 visibility 100 magicmap brown end face pier_5.111 visibility 100 magicmap brown end face pier_6.111 visibility 100 magicmap brown end face pier_7.111 visibility 100 magicmap brown end face pier_8.111 visibility 100 magicmap brown end face pier_9.111 visibility 100 magicmap brown end face pier_A.111 visibility 100 magicmap brown end face pier_B.111 visibility 100 magicmap brown end face pier_C.111 visibility 100 magicmap brown end face pier_D.111 visibility 100 magicmap brown end face pier_E.111 visibility 100 magicmap brown end face pier_F.111 visibility 100 magicmap brown end face pillars.111 visibility 100 magicmap grey end face pink-beige-c-marble.111 magicmap grey is_floor 1 end face pink-beige-c-marble.112 magicmap grey is_floor 1 end face pink-beige-c-marble.113 magicmap grey is_floor 1 end face pink-beige-c-marble.114 magicmap grey is_floor 1 end face pinkmarble.111 magicmap grey is_floor 1 end face pipe.111 magicmap grey end face pipeweed.111 magicmap green end face pir_lass.111 magicmap black end face pir_lass.112 magicmap black end face pirate.111 magicmap black end face pirate_hat.111 magicmap black end face pix_dust.111 magicmap green end face pix_wing.111 magicmap orange end face pixie.111 magicmap orange end face pixie.112 magicmap orange end face pixie_gen.111 magicmap dark_orange end face pl_dragon_bl.151 magicmap black end face pl_dragon_bl.152 magicmap black end face pl_dragon_bl.171 magicmap black end face pl_dragon_bl.172 magicmap black end face pl_dragon_g.151 magicmap black end face pl_dragon_g.152 magicmap black end face pl_dragon_g.171 magicmap black end face pl_dragon_g.172 magicmap black end face pl_dragon_r.151 magicmap red end face pl_dragon_r.152 magicmap red end face pl_dragon_r.171 magicmap red end face pl_dragon_r.172 magicmap red end face pl_half_orc.111 magicmap brown end face pl_half_orc.112 magicmap brown end face pl_half_orc.131 magicmap brown end face pl_half_orc.132 magicmap brown end face pl_half_orc.151 magicmap brown end face pl_half_orc.152 magicmap brown end face pl_half_orc.171 magicmap brown end face pl_half_orc.172 magicmap brown end face platbar.111 magicmap grey end face platblock.111 magicmap grey end face plate.111 magicmap dark_orange end face plate_mail.111 magicmap blue end face platround.111 magicmap grey end face platter1_bro.111 magicmap yellow end face platter1_cop.111 magicmap yellow end face platter1_gol.111 magicmap yellow end face platter1_iro.111 magicmap yellow end face platter1_plat.111 magicmap yellow end face platter1_sil.111 magicmap yellow end face platter1_tin.111 magicmap yellow end face plt_coin.111 magicmap grey end face pmarrow.111 visibility 50 magicmap blue end face pmarrow.112 visibility 50 magicmap blue end face pmarrow.113 visibility 50 magicmap blue end face pmarrow.121 visibility 50 magicmap blue end face pmarrow.122 visibility 50 magicmap blue end face pmarrow.123 visibility 50 magicmap blue end face pmarrow.124 visibility 50 magicmap blue end face pmarrow.125 visibility 50 magicmap blue end face pmarrow.131 visibility 50 magicmap blue end face pmarrow.132 visibility 50 magicmap blue end face pmarrow.133 visibility 50 magicmap blue end face pmarrow.141 visibility 50 magicmap blue end face pmarrow.142 visibility 50 magicmap blue end face pmarrow.143 visibility 50 magicmap blue end face pmarrow.144 visibility 50 magicmap blue end face pmarrow.145 visibility 50 magicmap blue end face pmarrow.151 visibility 50 magicmap blue end face pmarrow.152 visibility 50 magicmap blue end face pmarrow.153 visibility 50 magicmap blue end face pmarrow.161 visibility 50 magicmap blue end face pmarrow.162 visibility 50 magicmap blue end face pmarrow.163 visibility 50 magicmap blue end face pmarrow.164 visibility 50 magicmap blue end face pmarrow.165 visibility 50 magicmap blue end face pmarrow.171 visibility 50 magicmap blue end face pmarrow.172 visibility 50 magicmap blue end face pmarrow.173 visibility 50 magicmap blue end face pmarrow.181 visibility 50 magicmap blue end face pmarrow.182 visibility 50 magicmap blue end face pmarrow.183 visibility 50 magicmap blue end face pmarrow.184 visibility 50 magicmap blue end face pmarrow.185 visibility 50 magicmap blue end face poisonbullet.111 magicmap blue end face poisonbullet.121 magicmap blue end face poisonbullet.131 magicmap blue end face poisonbullet.141 magicmap blue end face poisonbullet.151 magicmap blue end face poisonbullet.161 magicmap blue end face poisonbullet.171 magicmap blue end face poisonbullet.181 magicmap blue end face poisoncloud.111 visibility 100 magicmap green is_floor 1 end face poisoncloud.112 magicmap green end face poisoncloud.113 magicmap green end face polarbear.x31 magicmap white end face poleaxe.111 magicmap grey end face polymorph.111 visibility 100 magicmap red end face polymorph.112 visibility 100 magicmap red end face polymorph.113 visibility 100 magicmap red end face polymorph.114 visibility 100 magicmap red end face postman_gen.111 magicmap red end face potato.111 magicmap brown end face potion_aether.111 magicmap orange end face potion_empty.111 magicmap brown end face potion_heal2.111 magicmap light_blue end face potioncha.111 magicmap dark_orange end face potioncol.111 magicmap white end face potioncon.111 magicmap light_blue end face potiondex.111 magicmap orange end face potionfir.111 magicmap red end face potiongen.111 magicmap light_blue end face potionhea.111 magicmap red end face potionhero.111 magicmap brown end face potionimp.111 magicmap light_blue end face potionint.111 magicmap green end face potioninv.111 magicmap orange end face potionmag.111 magicmap light_blue end face potionpow.111 magicmap red end face potionstr.111 magicmap red end face potionwis.111 magicmap grey end face pouch.111 magicmap orange end face power_crystal.111 magicmap white end face prepare_weapon.111 magicmap white end face pretty_crystal.111 magicmap white end face pretty_emerald.111 magicmap green end face pretty_ruby.111 magicmap red end face pretty_sapphire.111 magicmap blue end face priest.111 magicmap green end face priest.131 magicmap green end face priest.151 magicmap green end face priest.171 magicmap green end face princess.111 magicmap black end face princess.112 magicmap black end face princess.113 magicmap black end face prison.x11 visibility 100 magicmap grey end face prison_fant.x11 visibility 100 magicmap grey end face prisoner.111 magicmap khaki end face protection.111 visibility 255 magicmap blue end face protection.112 visibility 255 magicmap blue end face protection.113 visibility 255 magicmap blue end face protection.114 visibility 255 magicmap blue end face protection.115 visibility 255 magicmap blue end face protection.116 visibility 255 magicmap blue end face protection.117 visibility 255 magicmap blue end face pstone_1.111 magicmap brown is_floor 1 end face pstone_2.111 magicmap brown is_floor 1 end face pstone_3.111 magicmap brown is_floor 1 end face pstone_4.111 magicmap brown is_floor 1 end face pstone_5.111 magicmap brown is_floor 1 end face pup.131 magicmap brown end face pup.132 magicmap brown end face pup.133 magicmap brown end face pup.171 magicmap brown end face pup.172 magicmap brown end face pup.173 magicmap brown end face pyrite.111 magicmap grey end face pyro_book.111 magicmap brown end face pyro_gen.111 magicmap yellow end face pyromaniac.111 magicmap black end face pyromaniac.112 magicmap black end face pyromaniac.113 magicmap black end face pyromaniac.114 magicmap black end face quarters.111 magicmap khaki end face quarto.111 magicmap brown end face quetzalcoatl.131 magicmap light_blue end face quetzalcoatl.132 magicmap light_blue end face quetzalcoatl.171 magicmap light_blue end face quetzalcoatl.172 magicmap light_blue end face quicksilver_sea.111 magicmap black is_floor 1 end face quicksilver_sea.112 magicmap black is_floor 1 end face quicksilver_sea.113 magicmap black is_floor 1 end face quicksilver_sea.114 magicmap black is_floor 1 end face quiver.111 magicmap orange end face r_sack.111 magicmap brown end face raas.131 magicmap black end face raas.171 magicmap black end face rain1.111 magicmap blue end face rain2.111 magicmap blue end face rain3.111 magicmap blue end face rain4.111 magicmap blue end face rain5.111 magicmap blue end face randomArti.111 magicmap orange end face randomBow.111 magicmap orange end face randomFood.111 magicmap orange end face randomGem.111 magicmap orange end face randomMin.111 magicmap orange end face randomPlt.111 magicmap orange end face randomPoti.111 magicmap orange end face randomRead.111 magicmap orange end face randomScro.111 magicmap orange end face randomShie.111 magicmap orange end face randomSpel.111 magicmap orange end face randomTali.111 magicmap orange end face randomTrea.111 magicmap orange end face randomWeal.111 magicmap orange end face randomWeap.111 magicmap orange end face random_tree_green.111 magicmap orange end face rapier.111 magicmap white end face red_dragon2.151 magicmap red end face red_dragon2.152 magicmap red end face red_dragon2.171 magicmap red end face red_dragon2.172 magicmap red end face redcityport_0.111 magicmap grey end face redcityport_1.111 magicmap grey end face redcwall_0.111 visibility 100 magicmap grey end face redcwall_1.111 visibility 100 magicmap grey end face redcwall_2.111 visibility 100 magicmap grey end face redcwall_3.111 visibility 100 magicmap grey end face redcwall_4.111 visibility 100 magicmap grey end face redcwall_5.111 visibility 100 magicmap grey end face redcwall_6.111 visibility 100 magicmap grey end face redcwall_7.111 visibility 100 magicmap grey end face redcwall_8.111 visibility 100 magicmap grey end face redcwall_9.111 visibility 100 magicmap grey end face redcwall_A.111 visibility 100 magicmap grey end face redcwall_B.111 visibility 100 magicmap grey end face redcwall_C.111 visibility 100 magicmap grey end face redcwall_D.111 visibility 100 magicmap grey end face redcwall_E.111 visibility 100 magicmap grey end face redcwall_F.111 visibility 100 magicmap grey end face redcwall_w_0.111 visibility 100 magicmap grey end face redcwall_w_0.112 visibility 100 magicmap grey end face redcwall_w_0.113 visibility 100 magicmap grey end face redcwall_w_0.114 visibility 100 magicmap grey end face redcwall_w_0.115 visibility 100 magicmap grey end face redcwall_w_0.116 visibility 100 magicmap grey end face redcwall_w_0.117 visibility 100 magicmap grey end face redcwall_w_0.118 visibility 100 magicmap grey end face redcwall_w_0.119 visibility 100 magicmap grey end face redcwall_w_0.11A visibility 100 magicmap grey end face redcwall_w_1.111 visibility 100 magicmap grey end face redcwall_w_1.112 visibility 100 magicmap grey end face redcwall_w_1.113 visibility 100 magicmap grey end face redcwall_w_1.114 visibility 100 magicmap grey end face redcwall_w_1.115 visibility 100 magicmap grey end face redcwall_w_1.116 visibility 100 magicmap grey end face redcwall_w_1.117 visibility 100 magicmap grey end face redcwall_w_1.118 visibility 100 magicmap grey end face redcwall_w_1.119 visibility 100 magicmap grey end face redcwindow_0.111 visibility 100 magicmap brown end face redcwindow_1.111 visibility 100 magicmap brown end face redguard_ho_1.111 magicmap grey end face redguard_ho_2.111 magicmap grey end face redguard_ho_4.111 magicmap grey end face redguard_ho_8.111 magicmap grey end face redmarble.111 magicmap grey is_floor 1 end face reflector.111 magicmap black end face reflector.112 magicmap black end face reflector.113 magicmap black end face reflexbow.111 magicmap brown end face reflexbow_bone.111 magicmap brown end face residue.111 magicmap grey end face retributioner.x11 magicmap black end face ring.110 magicmap orange end face ring.111 magicmap orange end face ring.112 magicmap orange end face ring.113 magicmap orange end face ring.114 magicmap orange end face ring.115 magicmap orange end face ring.116 magicmap orange end face ring.117 magicmap white end face ring_combat.117 magicmap white end face ring_drain.111 magicmap black end face ring_drain.112 magicmap black end face ring_drain.113 magicmap black end face ring_drain.114 magicmap black end face ring_fighting.117 magicmap white end face ring_mail.111 magicmap blue end face ring_mail2.111 magicmap black end face ring_strife.117 magicmap white end face ring_war.117 magicmap white end face river_14.111 visibility 100 magicmap blue end face river_15.111 visibility 100 magicmap blue end face river_16.111 visibility 100 magicmap blue end face river_25.111 visibility 100 magicmap blue end face river_26.111 visibility 100 magicmap blue end face river_26.211 visibility 100 magicmap blue end face river_26.311 visibility 100 magicmap blue end face river_27.111 visibility 100 magicmap blue end face river_36.111 visibility 100 magicmap blue end face river_37.111 visibility 100 magicmap blue end face river_38.111 visibility 100 magicmap blue end face river_47.111 visibility 100 magicmap blue end face river_48.111 visibility 100 magicmap blue end face river_48.211 visibility 100 magicmap blue end face river_48.311 visibility 100 magicmap blue end face river_58.111 visibility 100 magicmap blue end face rl_house1.x11 visibility 100 end face rl_house2.x11 visibility 100 end face rl_house3.x11 visibility 100 end face rl_house_west.x11 visibility 100 end face roast_bird.111 magicmap orange end face robe.111 magicmap brown end face robe2.111 magicmap green end face robe_midnight.111 magicmap black end face robe_midnight.112 magicmap black end face robe_midnight.113 magicmap black end face rock.111 magicmap grey end face rock2.111 magicmap grey end face rod_heavy.111 magicmap black end face rod_heavy.112 magicmap black end face rod_heavy.113 magicmap black end face rod_light.111 magicmap black end face rod_light.112 magicmap black end face rod_light.113 magicmap black end face root.111 magicmap orange end face rose_black.111 magicmap black end face rose_pink.111 magicmap red end face rose_red.111 magicmap red end face rose_wh.111 magicmap white end face rose_yel.111 magicmap yellow end face rough_0.111 visibility 100 magicmap grey end face rough_1.111 visibility 100 magicmap grey end face rough_2.111 visibility 100 magicmap grey end face rough_3.111 visibility 100 magicmap grey end face rough_4.111 visibility 100 magicmap grey end face rough_5.111 visibility 100 magicmap grey end face rough_6.111 visibility 100 magicmap grey end face rough_7.111 visibility 100 magicmap grey end face rough_8.111 visibility 100 magicmap grey end face rough_9.111 visibility 100 magicmap grey end face rough_A.111 visibility 100 magicmap grey end face rough_B.111 visibility 100 magicmap grey end face rough_C.111 visibility 100 magicmap grey end face rough_D.111 visibility 100 magicmap grey end face rough_E.111 visibility 100 magicmap grey end face rough_F.111 visibility 100 magicmap grey end face round_shiel.111 magicmap orange end face rowboat.x11 visibility 100 magicmap brown end face rstone_3.111 magicmap red is_floor 1 end face rstone_4.111 magicmap red is_floor 1 end face rubble1.111 visibility 100 magicmap grey end face ruby.111 visibility 100 magicmap red end face ruby.112 magicmap red end face ruby_exceptional.111 visibility 100 magicmap red end face ruby_flawless.111 visibility 100 magicmap red end face ruined_tower.x11 visibility 100 magicmap grey end face ruins.111 visibility 100 magicmap brown end face rune_antimagic.111 magicmap grey end face rune_blast.111 magicmap orange end face rune_blightning.111 magicmap yellow end face rune_bomb.111 magicmap orange end face rune_confusion.111 magicmap black end face rune_death.111 magicmap black end face rune_fire.111 magicmap red end face rune_fireball.111 magicmap red end face rune_frost.111 magicmap light_blue end face rune_heal.111 magicmap green end face rune_lightning.111 magicmap yellow end face rune_mark.111 magicmap black end face rune_paralysis.111 magicmap yellow end face rune_paralysis.112 magicmap yellow end face rune_pcloud.111 magicmap green end face rune_shock.111 magicmap yellow end face rune_sp_res.111 magicmap green end face rune_sum_earth.111 magicmap brown end face rune_sum_fire.111 magicmap red end face rune_sum_water.111 magicmap blue end face rune_summon.111 magicmap black end face rune_summon_air.111 magicmap white end face rune_transfer.111 magicmap light_blue end face rustmonste.131 magicmap brown end face rustmonste.132 magicmap brown end face rustmonste.171 magicmap brown end face rustmonste.172 magicmap brown end face s_barn.x11 visibility 100 magicmap grey end face s_barrack_u.x11 visibility 100 magicmap brown end face s_barrack_u.x12 visibility 100 magicmap brown end face s_bridge1.111 magicmap grey end face s_bridge1a.111 magicmap grey end face s_bridge1b.111 magicmap grey end face s_bridge2.111 magicmap grey end face s_bridge2a.111 magicmap grey end face s_bridge2b.111 magicmap grey end face s_bungalow.111 visibility 100 magicmap brown end face s_castle.x11 visibility 100 magicmap grey end face s_church.x11 visibility 100 magicmap white end face s_citytower.x11 visibility 100 magicmap brown end face s_guild.x11 visibility 100 magicmap brown end face s_house1.111 visibility 100 end face s_inn.x11 visibility 100 magicmap red end face s_lighthouse.x11 visibility 100 magicmap grey end face s_mastif.131 magicmap black end face s_mastif.132 magicmap black end face s_mastif.133 magicmap black end face s_mastif.171 magicmap black end face s_mastif.172 magicmap black end face s_mastif.173 magicmap black end face s_moun_cave.111 visibility 50 magicmap grey is_floor 1 end face s_mountain.111 magicmap grey is_floor 1 end face s_ship.x11 visibility 100 magicmap grey end face s_shop1.111 visibility 100 magicmap black end face s_shop2.111 visibility 100 magicmap black end face s_tower1.x11 visibility 100 end face s_tower2.x11 visibility 100 end face s_tree_5.x11 visibility 100 magicmap brown end face s_tree_5_christmas.x11 visibility 100 magicmap brown end face s_weasel.111 magicmap red end face s_wyvern.x71 magicmap black end face sabre.111 magicmap white end face sack.111 magicmap brown end face sage.151 magicmap grey end face sai_1.111 magicmap black end face sai_2.111 magicmap black end face salt.111 magicmap white end face sandals.111 magicmap brown end face sandy.111 magicmap brown end face sandy.112 magicmap brown end face sandy.113 magicmap brown end face sandy.114 magicmap brown end face sandy.115 magicmap brown end face sapphire.111 magicmap blue end face sapphire.112 magicmap blue end face sapphire_exceptional.111 magicmap blue end face sapphire_flawless.111 magicmap blue end face sarcophagus.111 magicmap khaki end face saw.111 magicmap grey end face scale_mail.111 magicmap black end face scimitar.111 magicmap grey end face scorpi_gen.111 magicmap red end face scorpion.111 magicmap black end face scorpion.112 magicmap black end face scroll.111 magicmap white end face scroll_2.111 magicmap white end face scrollr.111 magicmap white end face sdoor.111 visibility 50 magicmap grey end face sdoor.112 visibility 50 magicmap grey end face sdoor.113 visibility 50 magicmap grey end face sdoor.114 visibility 50 magicmap grey end face sea.111 magicmap light_blue is_floor 1 end face sea_7.111 visibility 100 magicmap light_blue end face sea_B.111 visibility 100 magicmap light_blue end face sea_D.111 visibility 100 magicmap light_blue end face sea_E.111 visibility 100 magicmap light_blue end face sea_F.111 visibility 100 magicmap light_blue end face sea_ne.111 magicmap light_blue end face sea_nw.111 magicmap light_blue end face sea_se.111 magicmap light_blue end face sea_sw.111 magicmap light_blue end face serp_cloak.111 magicmap green end face serp_man.131 magicmap green end face serp_man.132 magicmap green end face serp_man.171 magicmap green end face serp_man.172 magicmap green end face serp_priest.131 magicmap white end face serp_priest.171 magicmap white end face serp_sword.111 magicmap grey end face serpent.x31 magicmap green end face serpent_skin.111 magicmap green end face serpentman.111 magicmap green end face serpentman.112 magicmap green end face serpentman.131 magicmap green end face serpentman.132 magicmap green end face serpentman.151 magicmap green end face serpentman.152 magicmap green end face serpentman.171 magicmap green end face serpentman.172 magicmap green end face serpman_gen.111 magicmap brown end face sewer_access.111 visibility 100 magicmap brown end face sewer_access.112 visibility 100 magicmap brown end face sewerfloor.111 magicmap white is_floor 1 end face sflail_1.111 magicmap black end face shadow.111 magicmap black end face shadow.112 magicmap black end face shadow_dragon.x31 magicmap red end face shadowtiger.x31 magicmap black end face shallow_sea.111 magicmap light_blue is_floor 1 end face shallow_sea.112 magicmap light_blue is_floor 1 end face shallow_sea.113 magicmap light_blue is_floor 1 end face shallow_sea.114 magicmap light_blue is_floor 1 end face shaxe_1.111 magicmap white end face sheep.131 magicmap white end face sheep.171 magicmap white end face sheepskin.111 magicmap white end face shell.111 magicmap black end face shell.112 magicmap black end face shell.121 magicmap black end face shell.131 magicmap black end face shell.141 magicmap black end face shell.151 magicmap black end face shell.161 magicmap black end face shell.171 magicmap black end face shell.181 magicmap black end face shellhorn1.111 magicmap blue end face shellhorn2.111 magicmap orange end face shield.111 magicmap grey end face shining_finger.111 magicmap black end face shipswheel.111 magicmap brown end face shootingstar.111 magicmap black end face shop_alchemy.111 magicmap grey is_floor 1 end face shop_amule.111 magicmap grey is_floor 1 end face shop_armou.111 magicmap grey is_floor 1 end face shop_books.111 magicmap grey is_floor 1 end face shop_building.111 is_floor 1 end face shop_empty.111 magicmap grey is_floor 1 end face shop_food.111 magicmap grey is_floor 1 end face shop_gems.111 magicmap grey is_floor 1 end face shop_gener.111 magicmap grey is_floor 1 end face shop_mat.111 visibility 100 magicmap brown end face shop_mineral.111 magicmap grey is_floor 1 end face shop_potio.111 magicmap grey is_floor 1 end face shop_ring.111 magicmap grey is_floor 1 end face shop_scrol.111 magicmap grey is_floor 1 end face shop_speci.111 magicmap grey is_floor 1 end face shop_throw.111 magicmap grey is_floor 1 end face shop_wands.111 magicmap grey is_floor 1 end face shop_weapo.111 magicmap grey is_floor 1 end face shovel_1.111 magicmap black end face shovel_1.112 magicmap black end face shovel_1.113 magicmap black end face shovel_1.114 magicmap black end face shovel_1.115 magicmap black end face shrine.111 visibility 100 end face shrine_east.x11 visibility 100 magicmap grey end face shrine_east_r.x11 visibility 100 magicmap grey end face sickle_1.111 magicmap white end face sicklesword.111 magicmap white end face sign.111 visibility 40 magicmap white end face sign_e.111 visibility 100 magicmap white end face sign_w.111 visibility 100 magicmap white end face silverbar.111 magicmap grey end face silverblock.111 magicmap grey end face silvercoin.111 magicmap grey end face silverround.111 magicmap grey end face skeletalmage.111 magicmap white end face skeletalmage.112 magicmap white end face skeletalmage.113 magicmap white end face skeleton.111 magicmap white end face skeleton.112 magicmap white end face skeleton_chief.111 magicmap white end face skeleton_leader.111 magicmap white end face skin.111 magicmap khaki end face skree.x31 magicmap black end face skree_claw.111 magicmap black end face skull.111 magicmap grey end face skull.112 magicmap grey end face skull_gen.111 magicmap white end face skullcleav.111 magicmap black end face skullcleav.112 magicmap black end face skullcleav.113 magicmap black end face skullcleav.114 magicmap black end face sky.111 magicmap blue is_floor 1 end face sky.x11 is_floor 1 end face slate_b.111 magicmap grey is_floor 1 end face slate_r.111 magicmap grey is_floor 1 end face slate_w.111 magicmap grey is_floor 1 end face sleep_floor.111 magicmap orange end face slevel_0.111 visibility 100 magicmap grey end face slevel_1.111 visibility 100 magicmap grey end face slevel_2.111 visibility 100 magicmap grey end face slevel_3.111 visibility 100 magicmap grey end face slevel_4.111 visibility 100 magicmap grey end face slevel_5.111 visibility 100 magicmap grey end face slevel_6.111 visibility 100 magicmap grey end face slevel_7.111 visibility 100 magicmap grey end face slevel_8.111 visibility 100 magicmap grey end face slevel_9.111 visibility 100 magicmap grey end face slevel_A.111 visibility 100 magicmap grey end face slevel_B.111 visibility 100 magicmap grey end face slevel_C.111 visibility 100 magicmap grey end face slevel_D.111 visibility 100 magicmap grey end face slevel_E.111 visibility 100 magicmap grey end face slevel_F.111 visibility 100 magicmap grey end face slicingknife.111 magicmap white end face slime.111 magicmap green end face slime.112 magicmap green end face slime.113 magicmap green end face slotmachine1.111 visibility 50 end face slotmachine1.112 visibility 50 end face slotmachine2.111 visibility 50 end face slotmachine2.112 visibility 50 end face slotmachine3.111 visibility 50 end face slotmachine3.112 visibility 50 end face slow.111 visibility 100 magicmap white is_floor 1 end face slow.112 magicmap white end face slow.113 magicmap white end face slug.x31 magicmap grey end face slug_slime.111 magicmap grey end face slum1.x11 visibility 100 end face slum2.x11 visibility 100 end face slum3.x11 visibility 100 end face small_shie.111 magicmap brown end face smallicecube.111 magicmap white end face smallpark.111 visibility 100 magicmap brown end face smallstone.111 magicmap khaki is_floor 1 end face smallt_green.111 magicmap green end face smallt_green.112 magicmap green end face smalltemple.111 visibility 100 magicmap brown end face smalltemple2.111 visibility 100 magicmap brown end face smalltroll.111 magicmap brown end face smalltroll.112 magicmap brown end face smith.111 magicmap blue end face snake.111 magicmap green end face snake.112 magicmap green end face snake.113 magicmap green end face snow.111 magicmap white is_floor 1 end face snow2.111 magicmap white is_floor 1 end face snow3.111 magicmap white is_floor 1 end face snow4.111 magicmap white end face snow5.111 magicmap white end face snowball.111 magicmap white end face snowball.121 magicmap white end face snowball.131 magicmap white end face snowball.141 magicmap white end face snowball.151 magicmap white end face snowball.161 magicmap white end face snowball.171 magicmap white end face snowball.181 magicmap white end face snowroad.111 magicmap white is_floor 1 end face snowroad2.111 magicmap white is_floor 1 end face sorcerer_book.111 magicmap brown end face spalm.111 visibility 100 magicmap brown end face spalms1.111 magicmap green end face spalms2.111 magicmap green end face sparkshower.111 magicmap red end face spear.101 magicmap brown end face spear.111 magicmap brown end face spear.121 magicmap brown end face spear.131 magicmap brown end face spear.141 magicmap brown end face spear.151 magicmap brown end face spear.161 magicmap brown end face spear.171 magicmap brown end face spear.181 magicmap brown end face spear_ixalovh.111 magicmap red end face spear_ixalovh.112 magicmap red end face spear_ixalovh.113 magicmap red end face spectre.111 magicmap black end face speedball.111 magicmap red end face speedball.112 magicmap red end face speedboots.111 magicmap brown end face speedbwall.111 visibility 100 magicmap yellow end face speedbwall.112 visibility 100 magicmap yellow end face sphinx.x31 magicmap black end face spider.111 magicmap black end face spider.112 magicmap black end face spider.113 magicmap black end face spider.114 magicmap black end face spider.121 magicmap black end face spider.122 magicmap black end face spider.123 magicmap black end face spider.124 magicmap black end face spider.131 magicmap black end face spider.132 magicmap black end face spider.133 magicmap black end face spider.134 magicmap black end face spider.141 magicmap black end face spider.142 magicmap black end face spider.143 magicmap black end face spider.144 magicmap black end face spider.151 magicmap black end face spider.152 magicmap black end face spider.153 magicmap black end face spider.154 magicmap black end face spider.161 magicmap black end face spider.162 magicmap black end face spider.163 magicmap black end face spider.164 magicmap black end face spider.171 magicmap black end face spider.172 magicmap black end face spider.173 magicmap black end face spider.174 magicmap black end face spider.181 magicmap black end face spider.182 magicmap black end face spider.183 magicmap black end face spider.184 magicmap black end face spider_web.111 visibility 50 magicmap black end face spider_web.112 magicmap black end face spike.110 visibility 50 magicmap black end face spike.111 visibility 50 magicmap black end face spike.112 visibility 50 magicmap black end face spike.113 visibility 50 magicmap black end face spike.114 visibility 50 magicmap black end face spike.115 visibility 50 magicmap black end face spike.116 visibility 50 magicmap black end face spike.117 visibility 50 magicmap black end face spike.118 visibility 50 magicmap black end face spike.119 visibility 50 magicmap black end face spike.120 visibility 50 magicmap black end face spike.121 visibility 50 magicmap black end face spike.122 visibility 50 magicmap black end face spiked_pit.111 magicmap black end face spiked_shield.111 magicmap orange end face spikes.110 visibility 50 magicmap black end face spikes.111 visibility 50 magicmap black end face spikes.112 visibility 50 magicmap black end face spikes.113 visibility 50 magicmap black end face spikes.114 visibility 50 magicmap black end face spikes.115 visibility 50 magicmap black end face spikes.116 visibility 50 magicmap black end face spikes.117 visibility 50 magicmap black end face spikes.118 visibility 50 magicmap black end face spikes.119 visibility 50 magicmap black end face spinner.111 visibility 50 magicmap black end face spinner.112 visibility 50 magicmap black end face spinner.113 visibility 50 magicmap black end face spinner.114 visibility 50 magicmap black end face spinner.115 visibility 50 magicmap black end face spinner.116 visibility 50 magicmap black end face spinner.117 visibility 50 magicmap black end face spinner.118 visibility 50 magicmap black end face spinner.119 visibility 50 magicmap black end face spinner.11A visibility 50 magicmap black end face spinner.11B visibility 50 magicmap black end face spinner.11C visibility 50 magicmap black end face spinner.11D visibility 50 magicmap black end face spit_ant.131 magicmap green end face spit_ant.132 magicmap green end face spit_ant.133 magicmap green end face spit_ant.171 magicmap green end face spit_ant.172 magicmap green end face spit_ant.173 magicmap green end face splint.111 magicmap yellow end face ssword_1.111 magicmap white end face ssword_2.111 magicmap white end face staff.111 magicmap brown end face staff.112 magicmap brown end face staff.113 magicmap brown end face staff.114 magicmap brown end face staff.115 magicmap brown end face stair2_do.111 visibility 100 magicmap brown end face stair2_up.111 visibility 100 magicmap brown end face stair3_do.111 visibility 100 magicmap brown end face stair3_gstone_do.111 visibility 100 magicmap brown end face stair3_gstone_up.111 visibility 100 magicmap brown end face stair3_up.111 visibility 100 magicmap brown end face stair3_ystone_do.111 visibility 100 magicmap brown end face stair3_ystone_up.111 visibility 100 magicmap brown end face stair_down.111 visibility 100 magicmap black end face stair_down_1.111 visibility 100 magicmap black end face stair_down_2.111 visibility 100 magicmap black end face stair_down_3.111 visibility 100 magicmap black end face stair_down_4.111 visibility 100 magicmap black end face stair_up.111 visibility 100 magicmap grey end face stair_up_1.111 visibility 100 magicmap grey end face stair_up_2.111 visibility 100 magicmap grey end face stair_up_3.111 visibility 100 magicmap grey end face stair_up_4.111 visibility 100 magicmap grey end face stake.111 magicmap khaki end face stalker.111 magicmap blue end face stalker.112 magicmap blue end face stalkergen.111 magicmap blue end face statue.111 magicmap black end face statue2.111 magicmap black end face statue_ruined.x11 visibility 100 magicmap grey end face steam.111 magicmap red end face steam.112 magicmap red end face steelbar.111 magicmap grey end face steppe.111 magicmap khaki is_floor 1 end face steppelight.111 magicmap khaki is_floor 1 end face stfloor.111 magicmap grey is_floor 1 end face sting.111 magicmap grey end face sting.112 magicmap grey end face sting.113 magicmap grey end face sting.114 magicmap grey end face stolking_1.111 magicmap brown end face stolking_2.111 magicmap brown end face stoneaxe.111 magicmap khaki end face stoneblock.111 visibility 100 magicmap grey end face stoneblock.112 visibility 100 magicmap grey end face stoneblock.113 visibility 100 magicmap grey end face stoneblock.114 visibility 100 magicmap grey end face stoneblock.115 visibility 100 magicmap grey end face stonebridge_0.111 visibility 100 magicmap grey end face stonebridge_1.111 visibility 100 magicmap grey end face stonebridge_2.111 visibility 100 magicmap grey end face stonebridge_3.111 visibility 100 magicmap grey end face stonebridge_4.111 visibility 100 magicmap grey end face stonebridge_5.111 visibility 100 magicmap grey end face stonebridge_6.111 visibility 100 magicmap grey end face stonebridge_7.111 visibility 100 magicmap grey end face stonebridge_8.111 visibility 100 magicmap grey end face stonebridge_9.111 visibility 100 magicmap grey end face stonebridge_A.111 visibility 100 magicmap grey end face stonebridge_B.111 visibility 100 magicmap grey end face stonebridge_C.111 visibility 100 magicmap grey end face stonebridge_D.111 visibility 100 magicmap grey end face stonebridge_E.111 visibility 100 magicmap grey end face stonebridge_F.111 visibility 100 magicmap grey end face stonehamme.111 magicmap brown end face store_alch.x11 visibility 100 magicmap red end face store_armo.x11 visibility 100 magicmap brown end face store_armo_east.x11 visibility 100 magicmap brown end face store_armo_fant.x11 visibility 100 magicmap brown end face store_gene.x11 visibility 100 magicmap grey end face store_gene_fant.x11 visibility 100 magicmap grey end face store_gene_west.x11 visibility 100 magicmap grey end face store_magi.x11 visibility 100 magicmap blue end face store_magi_east.x11 visibility 100 magicmap blue end face store_magi_fant.x11 visibility 100 magicmap blue end face store_magi_northwest.x11 visibility 100 magicmap blue end face store_magi_west.x11 visibility 100 magicmap blue end face store_weap.x11 visibility 100 magicmap dark_orange end face store_weap_east.x11 visibility 100 magicmap dark_orange end face store_weap_fant.x11 visibility 100 magicmap dark_orange end face stormbring.111 magicmap black end face stove.111 magicmap black end face stove.112 magicmap black end face stove.113 magicmap black end face strangefloor.111 magicmap white is_floor 1 end face stronghold.x11 visibility 100 magicmap grey end face stronghold_east.x11 visibility 100 magicmap grey end face stronghold_fant.x11 visibility 100 magicmap grey end face stronghold_fant_symmetrical.x11 visibility 100 magicmap grey end face stronghold_northwest.x11 visibility 100 magicmap grey end face stronghold_west.x11 visibility 100 magicmap grey end face stronghsym.111 visibility 100 magicmap grey end face stwall_0.111 visibility 100 magicmap grey end face stwall_1.111 visibility 100 magicmap grey end face stwall_2.111 visibility 100 magicmap grey end face stwall_3.111 visibility 100 magicmap grey end face stwall_4.111 visibility 100 magicmap grey end face stwall_5.111 visibility 100 magicmap grey end face stwall_6.111 visibility 100 magicmap grey end face stwall_7.111 visibility 100 magicmap grey end face stwall_8.111 visibility 100 magicmap grey end face stwall_9.111 visibility 100 magicmap grey end face stwall_A.111 visibility 100 magicmap grey end face stwall_B.111 visibility 100 magicmap grey end face stwall_C.111 visibility 100 magicmap grey end face stwall_D.111 visibility 100 magicmap grey end face stwall_E.111 visibility 100 magicmap grey end face stwall_F.111 visibility 100 magicmap grey end face stwall_door_0.111 visibility 100 magicmap grey end face stwall_door_1.111 visibility 100 magicmap grey end face stwallsec.111 visibility 50 magicmap black end face stwallsec.112 visibility 50 magicmap black end face stwallsec.113 visibility 50 magicmap black end face stwallsec.114 visibility 50 magicmap black end face stwallsec.115 visibility 50 magicmap black end face stwallsec.116 visibility 50 magicmap black end face stwallsec.117 visibility 50 magicmap black end face stwallsec.118 visibility 50 magicmap black end face stwindow_0.111 visibility 100 magicmap brown end face stwindow_1.111 visibility 100 magicmap brown end face stylus.111 magicmap brown end face sulphur.111 magicmap yellow end face summoner_book.111 magicmap brown end face sunspear.111 magicmap yellow end face swall_0.111 visibility 100 magicmap black end face swall_1.111 visibility 100 magicmap black end face swall_1_half.111 visibility 100 magicmap black end face swall_2.111 visibility 100 magicmap black end face swall_2_half.111 visibility 100 magicmap black end face swall_3.111 visibility 100 magicmap black end face swall_4.111 visibility 100 magicmap black end face swall_4_half.111 visibility 100 magicmap black end face swall_5.111 visibility 100 magicmap black end face swall_6.111 visibility 100 magicmap black end face swall_7.111 visibility 100 magicmap black end face swall_8.111 visibility 100 magicmap black end face swall_8_half.111 visibility 100 magicmap black end face swall_9.111 visibility 100 magicmap black end face swall_A.111 visibility 100 magicmap black end face swall_B.111 visibility 100 magicmap black end face swall_C.111 visibility 100 magicmap black end face swall_D.111 visibility 100 magicmap black end face swall_E.111 visibility 100 magicmap black end face swall_F.111 visibility 100 magicmap black end face swamp.111 magicmap brown is_floor 1 end face swashbuckl.111 magicmap blue end face swashbuckl.131 magicmap blue end face swashbuckl.151 magicmap blue end face swashbuckl.171 magicmap blue end face sword_1.111 magicmap blue end face sword_2.111 magicmap white end face sword_3.111 magicmap white end face sword_4.111 magicmap white end face t_dagger.101 magicmap grey end face t_dagger.111 magicmap grey end face t_dagger.121 magicmap grey end face t_dagger.131 magicmap grey end face t_dagger.141 magicmap grey end face t_dagger.151 magicmap grey end face t_dagger.161 magicmap grey end face t_dagger.171 magicmap grey end face t_dagger.181 magicmap grey end face t_house1.x11 visibility 100 end face t_house2.x11 visibility 100 end face t_house2_fant.x11 visibility 100 end face t_rock.111 magicmap black end face t_star1.111 magicmap grey end face table_1.111 magicmap brown end face table_1x2.111 magicmap brown end face table_2.111 magicmap brown end face table_2x1.111 magicmap brown end face table_2x2.111 magicmap brown end face table_3.111 magicmap brown end face table_4.111 magicmap brown end face table_burl_3.111 magicmap brown end face table_cw_3.111 magicmap brown end face taifu_1.111 magicmap black end face talisman.111 magicmap grey end face talisman_evocation.111 magicmap grey end face talisman_pyromancy.111 magicmap grey end face talisman_sorcery.111 magicmap grey end face tanbench.111 magicmap black end face tavern.111 visibility 100 magicmap white end face tear.111 magicmap blue end face tear.112 magicmap blue end face tear.113 magicmap blue end face tear.114 magicmap blue end face teleporter.111 visibility 100 magicmap red end face teleporter.112 visibility 100 magicmap red end face teleporter.113 visibility 100 magicmap red end face temple1.x11 visibility 100 end face temple_ruin.x11 visibility 100 end face thaumaturg_desk.111 magicmap black end face thewheel_short.111 magicmap brown end face thewheel_short.112 magicmap brown end face thewheel_short.113 magicmap brown end face thewheel_short.114 magicmap brown end face thewheel_short.115 magicmap brown end face thewheel_tall.x11 magicmap brown end face thewheel_tall.x12 magicmap brown end face thewheel_tall.x13 magicmap brown end face thewheel_tall.x14 magicmap brown end face thewheel_tall.x15 magicmap brown end face thief.111 magicmap black end face thief.131 magicmap black end face thief.151 magicmap black end face thief.171 magicmap black end face thorns.111 magicmap brown end face thunder_bolt.101 magicmap brown end face thunder_bolt.111 magicmap brown end face thunder_bolt.121 magicmap brown end face thunder_bolt.131 magicmap brown end face thunder_bolt.141 magicmap brown end face thunder_bolt.151 magicmap brown end face thunder_bolt.161 magicmap brown end face thunder_bolt.171 magicmap brown end face thunder_bolt.181 magicmap brown end face tile.111 magicmap grey is_floor 1 end face tile_tan.111 magicmap grey is_floor 1 end face tile_white.111 magicmap grey is_floor 1 end face timberwall_0.111 visibility 100 magicmap brown end face timberwall_1.111 visibility 100 magicmap brown end face timberwall_2.111 visibility 100 magicmap brown end face timberwall_3.111 visibility 100 magicmap brown end face timberwall_4.111 visibility 100 magicmap brown end face timberwall_5.111 visibility 100 magicmap brown end face timberwall_6.111 visibility 100 magicmap brown end face timberwall_7.111 visibility 100 magicmap brown end face timberwall_8.111 visibility 100 magicmap brown end face timberwall_9.111 visibility 100 magicmap brown end face timberwall_A.111 visibility 100 magicmap brown end face timberwall_B.111 visibility 100 magicmap brown end face timberwall_C.111 visibility 100 magicmap brown end face timberwall_D.111 visibility 100 magicmap brown end face timberwall_E.111 visibility 100 magicmap brown end face timberwall_F.111 visibility 100 magicmap brown end face tinbar.111 magicmap grey end face titan.x71 magicmap grey end face tomato.111 magicmap red end face tomato_big.111 magicmap red end face tome.111 magicmap brown end face tongue.111 magicmap red end face tooth.111 magicmap white end face tooth_charm.111 magicmap white end face torc.111 magicmap yellow end face torch_cyan.111 magicmap light_blue end face torch_cyan.112 magicmap light_blue end face torch_indigo.111 magicmap blue end face torch_indigo.112 magicmap blue end face torch_lit1.111 magicmap orange end face torch_lit2.111 magicmap orange end face torch_unlit.111 magicmap brown end face torch_vermilion.111 magicmap red end face torch_vermilion.112 magicmap red end face tower_a.x11 visibility 100 magicmap grey end face tower_tob.111 visibility 100 magicmap grey end face tower_tob_fant.111 visibility 100 magicmap grey end face tower_tob_northwest.111 visibility 100 magicmap grey end face trap.111 magicmap black end face trapdoor_1.111 visibility 50 magicmap black end face trapdoor_2.111 visibility 50 magicmap black end face trapdoor_3.111 visibility 50 magicmap black end face trapdoor_4.111 visibility 50 magicmap black end face tree_1.111 magicmap green is_floor 1 end face tree_2.111 magicmap green is_floor 1 end face tree_3.111 visibility 100 magicmap brown end face tree_4.111 visibility 100 magicmap brown end face tree_5.111 visibility 100 magicmap brown end face tree_5_christmas.x11 visibility 100 magicmap brown end face tree_6.111 visibility 100 magicmap brown end face treed_hills.111 magicmap green is_floor 1 end face treefort.x11 visibility 100 magicmap grey end face treefort2.x11 visibility 100 magicmap grey end face treefort3.111 visibility 100 magicmap grey end face treehouse.111 visibility 100 magicmap brown end face trident.101 magicmap green end face trident.111 magicmap green end face trident.121 magicmap green end face trident.131 magicmap green end face trident.141 magicmap green end face trident.151 magicmap green end face trident.161 magicmap green end face trident.171 magicmap green end face trident.181 magicmap green end face troll.x11 magicmap green end face troll_p.111 magicmap blue end face troll_p.112 magicmap blue end face troll_p.131 magicmap blue end face troll_p.132 magicmap blue end face troll_p.151 magicmap blue end face troll_p.152 magicmap blue end face troll_p.171 magicmap blue end face troll_p.172 magicmap blue end face true_lead.111 magicmap grey end face tspikes.111 magicmap black end face turningboat.x11 visibility 100 magicmap brown end face turnundead.111 magicmap black end face turnundead.112 magicmap black end face turnundead.113 magicmap black end face u_horn.111 magicmap black end face u_horn.112 magicmap black end face u_horn.113 magicmap black end face u_horn.114 magicmap black end face u_horn.115 magicmap black end face uf6.111 magicmap blue end face uf6pile.111 magicmap white end face uk_sd.111 magicmap grey end face uk_sd.112 magicmap grey end face uk_sd.113 magicmap grey end face uk_sd.114 magicmap grey end face uk_sd.115 magicmap grey end face uk_sd.116 magicmap grey end face uk_sd.117 magicmap grey end face unholy_ground.111 magicmap white end face unicorn.x31 magicmap white end face university.x11 visibility 100 end face unusual_kobold.111 magicmap brown end face unusual_kobold.112 magicmap brown end face uranium.111 magicmap black end face uraniumbar.111 magicmap grey end face uw_shield.111 magicmap black end face uw_sword.111 magicmap white end face uw_sword.112 magicmap white end face uw_sword.113 magicmap white end face uw_sword.114 magicmap white end face uw_sword.115 magicmap white end face vampire.111 magicmap blue end face vampire.112 magicmap blue end face vampiregen.111 magicmap brown end face veiled_woman.111 magicmap green end face veiled_woman3.111 magicmap green end face vial_blue.111 magicmap blue end face vial_cyan.111 magicmap blue end face vial_empty.111 magicmap brown end face vial_green.111 magicmap blue end face vial_magenta.111 magicmap blue end face vial_red.111 magicmap blue end face vial_water.111 magicmap blue end face vial_yellow.111 magicmap blue end face viking.111 magicmap black end face viking.112 magicmap black end face viking.131 magicmap black end face viking.132 magicmap black end face viking.151 magicmap black end face viking.152 magicmap black end face viking.171 magicmap black end face viking.172 magicmap black end face vlongsword.111 magicmap white end face volcano_hi.x11 visibility 100 magicmap brown end face volcano_lo.x11 visibility 100 magicmap brown end face w_glass.111 magicmap red end face w_glass_empty.111 magicmap brown end face wagon.111 visibility 100 magicmap brown end face wall_0.111 visibility 100 magicmap brown end face wall_1.111 visibility 100 magicmap brown end face wall_1_ruin.111 visibility 100 magicmap brown end face wall_1_short.111 visibility 100 magicmap brown end face wall_2.111 visibility 100 magicmap brown end face wall_2_ruin.111 visibility 100 magicmap brown end face wall_2_short.111 visibility 100 magicmap brown end face wall_3.111 visibility 100 magicmap brown end face wall_4.111 visibility 100 magicmap brown end face wall_4_ruin.111 visibility 100 magicmap brown end face wall_4_short.111 visibility 100 magicmap brown end face wall_5.111 visibility 100 magicmap brown end face wall_55.111 visibility 100 magicmap brown end face wall_6.111 visibility 100 magicmap brown end face wall_7.111 visibility 100 magicmap brown end face wall_8.111 visibility 100 magicmap brown end face wall_8_ruin.111 visibility 100 magicmap brown end face wall_8_short.111 visibility 100 magicmap brown end face wall_9.111 visibility 100 magicmap brown end face wall_A.111 visibility 100 magicmap brown end face wall_AA.111 visibility 100 magicmap brown end face wall_B.111 visibility 100 magicmap brown end face wall_C.111 visibility 100 magicmap brown end face wall_D.111 visibility 100 magicmap brown end face wall_E.111 visibility 100 magicmap brown end face wall_F.111 visibility 100 magicmap brown end face wall_door_0.111 visibility 100 magicmap brown end face wall_door_1.111 visibility 100 magicmap brown end face wall_large_door.111 magicmap brown end face wallclock.111 magicmap brown end face wand.111 magicmap brown end face war_ant.131 magicmap red end face war_ant.132 magicmap red end face war_ant.171 magicmap red end face war_ant.172 magicmap red end face warrior.111 magicmap grey end face warrior.131 magicmap grey end face warrior.151 magicmap grey end face warrior.171 magicmap grey end face warrior_blue.111 magicmap blue end face warrior_blue.131 magicmap blue end face warrior_blue.151 magicmap blue end face warrior_blue.171 magicmap blue end face warrior_green.111 magicmap green end face warrior_green.131 magicmap green end face warrior_green.151 magicmap green end face warrior_green.171 magicmap green end face warrior_grey.111 magicmap grey end face warrior_grey.131 magicmap grey end face warrior_grey.151 magicmap grey end face warrior_grey.171 magicmap grey end face warrior_lblue.111 magicmap light_blue end face warrior_lblue.131 magicmap light_blue end face warrior_lblue.151 magicmap light_blue end face warrior_lblue.171 magicmap light_blue end face warrior_red.111 magicmap red end face warrior_red.131 magicmap red end face warrior_red.151 magicmap red end face warrior_red.171 magicmap red end face wasteland.111 magicmap blue is_floor 1 end face water.111 magicmap blue end face water_diamond.111 magicmap blue end face water_emerald.111 magicmap blue end face water_pearl.111 magicmap blue end face water_ruby.111 magicmap blue end face water_sapphire.111 magicmap blue end face water_wise.111 magicmap blue end face waybread.111 magicmap yellow end face wbottle_empty.111 magicmap brown end face wdoor.111 visibility 50 magicmap brown end face wdoor.112 visibility 50 magicmap brown end face wdoor.113 visibility 50 magicmap brown end face wdoor.114 visibility 50 magicmap brown end face wdsm.111 magicmap black end face wdsm.112 magicmap black end face wdsm.113 magicmap black end face well.111 visibility 100 magicmap grey end face westcityport_0.111 magicmap grey end face westcityport_1.111 magicmap grey end face westcwall_0.111 visibility 100 magicmap grey end face westcwall_1.111 visibility 100 magicmap grey end face westcwall_2.111 visibility 100 magicmap grey end face westcwall_3.111 visibility 100 magicmap grey end face westcwall_4.111 visibility 100 magicmap grey end face westcwall_5.111 visibility 100 magicmap grey end face westcwall_6.111 visibility 100 magicmap grey end face westcwall_7.111 visibility 100 magicmap grey end face westcwall_8.111 visibility 100 magicmap grey end face westcwall_9.111 visibility 100 magicmap grey end face westcwall_A.111 visibility 100 magicmap grey end face westcwall_B.111 visibility 100 magicmap grey end face westcwall_C.111 visibility 100 magicmap grey end face westcwall_D.111 visibility 100 magicmap grey end face westcwall_E.111 visibility 100 magicmap grey end face westcwall_F.111 visibility 100 magicmap grey end face westcwall_w_0.111 visibility 100 magicmap grey end face westcwall_w_0.112 visibility 100 magicmap grey end face westcwall_w_0.113 visibility 100 magicmap grey end face westcwall_w_0.114 visibility 100 magicmap grey end face westcwall_w_0.115 visibility 100 magicmap grey end face westcwall_w_0.116 visibility 100 magicmap grey end face westcwall_w_0.117 visibility 100 magicmap grey end face westcwall_w_0.118 visibility 100 magicmap grey end face westcwall_w_0.119 visibility 100 magicmap grey end face westcwall_w_0.11A visibility 100 magicmap grey end face westcwall_w_1.111 visibility 100 magicmap grey end face westcwall_w_1.112 visibility 100 magicmap grey end face westcwall_w_1.113 visibility 100 magicmap grey end face westcwall_w_1.114 visibility 100 magicmap grey end face westcwall_w_1.115 visibility 100 magicmap grey end face westcwall_w_1.116 visibility 100 magicmap grey end face westcwall_w_1.117 visibility 100 magicmap grey end face westcwall_w_1.118 visibility 100 magicmap grey end face westcwall_w_1.119 visibility 100 magicmap grey end face westcwallsec.111 visibility 50 magicmap black end face westcwallsec.112 visibility 50 magicmap black end face westcwallsec.113 visibility 50 magicmap black end face westcwallsec.114 visibility 50 magicmap black end face westcwallsec.115 visibility 50 magicmap black end face westcwallsec.116 visibility 50 magicmap black end face westcwallsec.117 visibility 50 magicmap black end face westcwallsec.118 visibility 50 magicmap black end face westcwindow_0.111 visibility 100 magicmap brown end face westcwindow_1.111 visibility 100 magicmap brown end face westguard_ho_1.111 magicmap grey end face westguard_ho_2.111 magicmap grey end face westguard_ho_4.111 magicmap grey end face westguard_ho_8.111 magicmap grey end face wheelbarrow.111 magicmap brown end face white-beige-c-marble.111 magicmap grey is_floor 1 end face white-beige-c-marble.112 magicmap grey is_floor 1 end face white-beige-c-marble.113 magicmap grey is_floor 1 end face white-beige-c-marble.114 magicmap grey is_floor 1 end face white-gray-h-marble.111 magicmap grey is_floor 1 end face white-gray-h-marble.112 magicmap grey is_floor 1 end face white-gray-x-marble.111 magicmap grey is_floor 1 end face white-gray-x-marble.112 magicmap grey is_floor 1 end face white-gray-x-marble.113 magicmap grey is_floor 1 end face white-gray-x-marble.114 magicmap grey is_floor 1 end face white-gray-x-marble.115 magicmap grey is_floor 1 end face white-gray-x-marble.116 magicmap grey is_floor 1 end face white-gray-x-marble.117 magicmap grey is_floor 1 end face white-gray-x-marble.118 magicmap grey is_floor 1 end face white-gray-x-marble.119 magicmap grey is_floor 1 end face white-green-c-marble.111 magicmap grey is_floor 1 end face white-green-c-marble.112 magicmap grey is_floor 1 end face white-green-c-marble.113 magicmap grey is_floor 1 end face white-green-c-marble.114 magicmap grey is_floor 1 end face white-green-h-marble.111 magicmap grey is_floor 1 end face white-green-h-marble.112 magicmap grey is_floor 1 end face white-green-x-marble.111 magicmap grey is_floor 1 end face white-green-x-marble.112 magicmap grey is_floor 1 end face white-green-x-marble.113 magicmap grey is_floor 1 end face white-green-x-marble.114 magicmap grey is_floor 1 end face white-green-x-marble.115 magicmap grey is_floor 1 end face white-green-x-marble.116 magicmap grey is_floor 1 end face white-green-x-marble.117 magicmap grey is_floor 1 end face white-green-x-marble.118 magicmap grey is_floor 1 end face white-green-x-marble.119 magicmap grey is_floor 1 end face white-pink-c-marble.111 visibility 50 magicmap black is_floor 1 end face white-pink-c-marble.112 visibility 50 magicmap black is_floor 1 end face white-pink-c-marble.113 visibility 50 magicmap black is_floor 1 end face white-pink-c-marble.114 visibility 50 magicmap black is_floor 1 end face white-red-c-marble.111 visibility 50 magicmap black is_floor 1 end face white-red-c-marble.112 visibility 50 magicmap black is_floor 1 end face white-red-c-marble.113 visibility 50 magicmap black is_floor 1 end face white-red-c-marble.114 visibility 50 magicmap black is_floor 1 end face white_wall_0.111 visibility 100 magicmap brown end face white_wall_1.111 visibility 100 magicmap brown end face white_wall_2.111 visibility 100 magicmap brown end face white_wall_3.111 visibility 100 magicmap brown end face white_wall_4.111 visibility 100 magicmap brown end face white_wall_5.111 visibility 100 magicmap brown end face white_wall_6.111 visibility 100 magicmap brown end face white_wall_7.111 visibility 100 magicmap brown end face white_wall_8.111 visibility 100 magicmap brown end face white_wall_9.111 visibility 100 magicmap brown end face white_wall_A.111 visibility 100 magicmap brown end face white_wall_B.111 visibility 100 magicmap brown end face white_wall_C.111 visibility 100 magicmap brown end face white_wall_D.111 visibility 100 magicmap brown end face white_wall_E.111 visibility 100 magicmap brown end face white_wall_F.111 visibility 100 magicmap brown end face white_wall_bottom.111 visibility 100 magicmap brown end face white_wall_left.111 visibility 100 magicmap brown end face white_wall_right.111 visibility 100 magicmap brown end face white_window_0.111 visibility 100 magicmap brown end face white_window_1.111 visibility 100 magicmap brown end face wight.111 magicmap green end face wight.112 magicmap green end face wight.113 magicmap green end face wight.114 magicmap green end face window_0.111 visibility 100 magicmap brown end face window_1.111 visibility 100 magicmap brown end face wine.111 magicmap red end face winebottle_empty.111 magicmap brown end face witch_air.111 magicmap light_blue end face witch_air.112 magicmap light_blue end face witch_chaos.111 magicmap blue end face witch_earth.111 magicmap dark_orange end face witch_earth.112 magicmap dark_orange end face witch_fire.111 magicmap red end face witch_fire.112 magicmap red end face witch_water.111 magicmap blue end face witch_water.112 magicmap blue end face wiz_hat.111 magicmap black end face wiz_hat.112 magicmap black end face wiz_hat.113 magicmap black end face wizard.111 magicmap black end face wizard.131 magicmap black end face wizard.151 magicmap black end face wizard.171 magicmap black end face wizard_blue.111 magicmap blue end face wizard_blue.131 magicmap blue end face wizard_blue.151 magicmap blue end face wizard_blue.171 magicmap blue end face wizard_green.111 magicmap green end face wizard_green.131 magicmap green end face wizard_green.151 magicmap green end face wizard_green.171 magicmap green end face wizard_tower.x11 visibility 100 magicmap grey end face wizard_tower.x12 visibility 100 magicmap grey end face wizard_tower.x13 visibility 100 magicmap grey end face wizard_white.111 magicmap white end face wizard_white.131 magicmap white end face wizard_white.151 magicmap white end face wizard_white.171 magicmap white end face wizard_yellow.111 magicmap yellow end face wizard_yellow.131 magicmap yellow end face wizard_yellow.151 magicmap yellow end face wizard_yellow.171 magicmap yellow end face wizardmask.111 magicmap black end face wizardmask.131 magicmap black end face wizardmask.151 magicmap black end face wizardmask.171 magicmap black end face wizdesk.111 magicmap brown end face wolf.131 magicmap grey end face wolf.132 magicmap grey end face wolf.171 magicmap grey end face wolf.172 magicmap grey end face woman.131 magicmap khaki end face woman.151 magicmap khaki end face woman.171 magicmap khaki end face woman2.113 magicmap khaki end face woman3.111 magicmap khaki end face woman3.112 magicmap khaki end face woman3.113 magicmap khaki end face wooddoor_1.111 magicmap brown end face wooddoor_2.111 magicmap brown end face woodfloor.111 magicmap dark_orange is_floor 1 end face woodfloor2.111 magicmap dark_orange is_floor 1 end face woodhouse.111 visibility 100 magicmap brown end face woodlarge.111 magicmap yellow is_floor 1 end face woods_1.111 magicmap green is_floor 1 end face woods_2.111 magicmap green is_floor 1 end face woods_3.111 visibility 100 magicmap green is_floor 1 end face woods_4.111 magicmap green end face woods_5.111 visibility 100 magicmap green end face woodwall_0.111 visibility 100 magicmap brown end face woodwall_1.111 visibility 100 magicmap brown end face woodwall_2.111 visibility 100 magicmap brown end face woodwall_3.111 visibility 100 magicmap brown end face woodwall_4.111 visibility 100 magicmap brown end face woodwall_5.111 visibility 100 magicmap brown end face woodwall_6.111 visibility 100 magicmap brown end face woodwall_7.111 visibility 100 magicmap brown end face woodwall_8.111 visibility 100 magicmap brown end face woodwall_9.111 visibility 100 magicmap brown end face woodwall_A.111 visibility 100 magicmap brown end face woodwall_B.111 visibility 100 magicmap brown end face woodwall_C.111 visibility 100 magicmap brown end face woodwall_D.111 visibility 100 magicmap brown end face woodwall_E.111 visibility 100 magicmap brown end face woodwall_F.111 visibility 100 magicmap brown end face woodwindow_0.111 visibility 100 magicmap brown end face woodwindow_1.111 visibility 100 magicmap brown end face workbench.111 magicmap black end face worthless_dragon.x71 magicmap blue end face wplate.111 magicmap dark_orange end face wraith.111 magicmap black end face wraithp.111 magicmap black end face wraithp.112 magicmap black end face wraithp.131 magicmap black end face wraithp.132 magicmap black end face wraithp.151 magicmap black end face wraithp.152 magicmap black end face wraithp.171 magicmap black end face wraithp.172 magicmap black end face wrench.111 magicmap grey end face wwall_0.111 visibility 100 magicmap brown end face wwall_1.111 visibility 100 magicmap brown end face wwall_2.111 visibility 100 magicmap brown end face wwall_3.111 visibility 100 magicmap brown end face wwall_4.111 visibility 100 magicmap brown end face wwall_5.111 visibility 100 magicmap brown end face wwall_6.111 visibility 100 magicmap brown end face wwall_7.111 visibility 100 magicmap brown end face wwall_8.111 visibility 100 magicmap brown end face wwall_9.111 visibility 100 magicmap brown end face wwall_A.111 visibility 100 magicmap brown end face wwall_B.111 visibility 100 magicmap brown end face wwall_C.111 visibility 100 magicmap brown end face wwall_D.111 visibility 100 magicmap brown end face wwall_E.111 visibility 100 magicmap brown end face wwall_F.111 visibility 100 magicmap brown end face wwall_left.111 visibility 100 magicmap brown end face wwall_right.111 visibility 100 magicmap brown end face wwall_w_0.111 visibility 100 magicmap brown end face wwall_w_0.112 visibility 100 magicmap brown end face wwall_w_0.113 visibility 100 magicmap brown end face wwall_w_0.114 visibility 100 magicmap brown end face wwall_w_0.115 visibility 100 magicmap brown end face wwall_w_0.116 visibility 100 magicmap brown end face wwall_w_0.117 visibility 100 magicmap brown end face wwall_w_1.111 visibility 100 magicmap brown end face wwall_w_1.112 visibility 100 magicmap brown end face wwall_w_1.113 visibility 100 magicmap brown end face wwall_w_1.114 visibility 100 magicmap brown end face wwall_w_1.115 visibility 100 magicmap brown end face wwall_w_1.116 visibility 100 magicmap brown end face wwall_w_1.117 visibility 100 magicmap brown end face wwindow_0.111 visibility 100 magicmap brown end face wwindow_1.111 visibility 100 magicmap brown end face wyvern.x71 magicmap green end face xan.111 magicmap brown end face xan.112 magicmap brown end face xan_gen.111 magicmap orange end face yellow_0.111 visibility 100 magicmap grey is_floor 1 end face yellow_1.111 visibility 100 magicmap grey end face yellow_2.111 visibility 100 magicmap grey end face yellow_3.111 visibility 100 magicmap grey end face yellow_4.111 visibility 100 magicmap grey end face yellow_5.111 visibility 100 magicmap grey end face yellow_6.111 visibility 100 magicmap grey end face yellow_7.111 visibility 100 magicmap grey end face yellow_8.111 visibility 100 magicmap grey end face yellow_9.111 visibility 100 magicmap grey end face yellow_A.111 visibility 100 magicmap grey end face yellow_B.111 visibility 100 magicmap grey end face yellow_C.111 visibility 100 magicmap grey end face yellow_D.111 visibility 100 magicmap grey end face yellow_E.111 visibility 100 magicmap grey end face yellow_F.111 visibility 100 magicmap grey end face yellow_ne.111 visibility 100 magicmap grey end face yellow_nw.111 visibility 100 magicmap grey end face yellow_se.111 visibility 100 magicmap grey end face yellow_sw.111 visibility 100 magicmap grey end face ytree_1.111 visibility 100 magicmap brown end face ytree_2.111 visibility 100 magicmap black end face zincbar.111 magicmap grey end face zombie.111 magicmap grey end face zombie.112 magicmap grey end face zombie.113 magicmap grey end face zombie_gen.111 magicmap brown end face zoo.x11 visibility 100 end ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/Makefile.in��������������������������������������������������������������������0000644�0000145�0000012�00000057663�11732537021�013337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 2001 Mark Wedel & Crossfire Development Team # Copyright (C) 1992 Frank Tore Johansen # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The authors can be reached via e-mail to crossfire-devel@real-time.com VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = lib DIST_COMMON = README $(dist_adm_SCRIPTS) $(dist_help_DATA) \ $(dist_i18n_DATA) $(dist_noinst_SCRIPTS) $(dist_pkgdata_DATA) \ $(dist_wizhelp_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/checkarch.pl.in \ $(srcdir)/collect.pl.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = checkarch.pl collect.pl CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(admdir)" "$(DESTDIR)$(helpdir)" \ "$(DESTDIR)$(i18ndir)" "$(DESTDIR)$(pkgdatadir)" \ "$(DESTDIR)$(wizhelpdir)" SCRIPTS = $(dist_adm_SCRIPTS) $(dist_noinst_SCRIPTS) SOURCES = DIST_SOURCES = DATA = $(dist_help_DATA) $(dist_i18n_DATA) $(dist_pkgdata_DATA) \ $(dist_wizhelp_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_noinst_SCRIPTS = collect.pl util.pl checkarch.pl dist_pkgdata_DATA = artifacts def_help formulae messages races smooth\ animations archetypes bmaps bmaps.paths crossfire.0 \ crossfire.1 faces attackmess image_info materials CONF_FILES = settings metaserver2 motd dm_file forbid ban_file exp_table news rules stat_bonus VAR_FILES = highscore banish_file bookarch temp.maps clockdata EXTRA_DIST = README .collect-stamp $(CONF_FILES) treasures.bld helpdir = $(pkgdatadir)/help dist_help_DATA = help/apply.en help/applymode.en \ help/bind.en help/bowmode.en help/brace.en \ help/cast.en help/chat.en help/drop.en help/dropall.en \ help/empty.en \ help/fire.en help/fire_stop.en \ help/golem.en help/invoke.en \ help/keys.en help/killpets.en \ help/listen.en help/maps.en \ help/mark.en help/melee.en help/mode.en \ help/motd.en help/mouse.en help/move.en \ help/news.en \ help/party.en help/party_rejoin.en help/peaceful.en \ help/petmode.en help/pickup.en \ help/quit.en help/range.en help/rename.en \ help/rules.en \ help/save.en help/shout.en help/showpets.en \ help/skills.en \ help/sort_inventory.en help/sound.en help/spells.en \ help/statistics.en help/take.en help/traps.en \ help/title.en help/unarmed_skill.en \ help/unbind.en help/use.en help/usekeys.en \ help/whereabouts.en \ help/wimpy.en \ help/apply.fr \ help/bowmode.fr \ help/dropall.fr \ help/killpets.fr \ help/knowledge.fr help/knowledge.en \ help/mark.fr \ help/applymode.fr \ help/brace.fr \ help/drop.fr \ help/listen.fr \ help/melee.fr \ help/bind.fr \ help/cast.fr \ help/empty.fr \ help/maps.fr \ help/mode.fr \ help/quest.fr help/quest.en wizhelpdir = $(pkgdatadir)/wizhelp dist_wizhelp_DATA = wizhelp/abil wizhelp/addexp \ wizhelp/banish \ wizhelp/create wizhelp/debug \ wizhelp/dump wizhelp/dumpallarchtypes \ wizhelp/dumpallmaps wizhelp/dumpallobjects \ wizhelp/dumpbelow wizhelp/dumpfriendlyobjects \ wizhelp/forget_spell wizhelp/free \ wizhelp/goto wizhelp/hide wizhelp/insert_into \ wizhelp/invisible \ wizhelp/kick wizhelp/learn_special_prayer \ wizhelp/learn_spell wizhelp/mon_aggr \ wizhelp/nodm \ wizhelp/nowiz wizhelp/overlay_save \ wizhelp/patch wizhelp/plugin \ wizhelp/pluglist wizhelp/plugout \ wizhelp/purge_quest_state \ wizhelp/purge_quests \ wizhelp/possess \ wizhelp/printlos wizhelp/remove \ wizhelp/reset wizhelp/set_god \ wizhelp/shutdown wizhelp/server_speed \ wizhelp/spellreset wizhelp/ssdumptable wizhelp/stats \ wizhelp/style_info wizhelp/summon \ wizhelp/teleport wizhelp/time \ wizhelp/toggle_shout \ wizhelp/who wizhelp/wizcast wizhelp/wizhelp \ wizhelp/wizpass admdir = $(pkgdatadir)/adm dist_adm_SCRIPTS = \ adm/map_info adm/map_expand.pl adm/mapslitter.pl adm/archsearch.pl \ adm/collect_images.pl i18ndir = $(pkgdatadir)/i18n dist_i18n_DATA = i18n/messages.en \ i18n/messages.fr MAINTAINERCLEANFILES = archetypes bmaps faces .collect-stamp \ animations smooth treasures.bld bmaps.paths crossfire.0 crossfire.1 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): checkarch.pl: $(top_builddir)/config.status $(srcdir)/checkarch.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ collect.pl: $(top_builddir)/config.status $(srcdir)/collect.pl.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-dist_admSCRIPTS: $(dist_adm_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(admdir)" || $(MKDIR_P) "$(DESTDIR)$(admdir)" @list='$(dist_adm_SCRIPTS)'; test -n "$(admdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(admdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(admdir)$$dir" || exit $$?; \ } \ ; done uninstall-dist_admSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(dist_adm_SCRIPTS)'; test -n "$(admdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(admdir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_helpDATA: $(dist_help_DATA) @$(NORMAL_INSTALL) test -z "$(helpdir)" || $(MKDIR_P) "$(DESTDIR)$(helpdir)" @list='$(dist_help_DATA)'; test -n "$(helpdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(helpdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(helpdir)" || exit $$?; \ done uninstall-dist_helpDATA: @$(NORMAL_UNINSTALL) @list='$(dist_help_DATA)'; test -n "$(helpdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(helpdir)'; $(am__uninstall_files_from_dir) install-dist_i18nDATA: $(dist_i18n_DATA) @$(NORMAL_INSTALL) test -z "$(i18ndir)" || $(MKDIR_P) "$(DESTDIR)$(i18ndir)" @list='$(dist_i18n_DATA)'; test -n "$(i18ndir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(i18ndir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(i18ndir)" || exit $$?; \ done uninstall-dist_i18nDATA: @$(NORMAL_UNINSTALL) @list='$(dist_i18n_DATA)'; test -n "$(i18ndir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(i18ndir)'; $(am__uninstall_files_from_dir) install-dist_pkgdataDATA: $(dist_pkgdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ done uninstall-dist_pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) install-dist_wizhelpDATA: $(dist_wizhelp_DATA) @$(NORMAL_INSTALL) test -z "$(wizhelpdir)" || $(MKDIR_P) "$(DESTDIR)$(wizhelpdir)" @list='$(dist_wizhelp_DATA)'; test -n "$(wizhelpdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(wizhelpdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(wizhelpdir)" || exit $$?; \ done uninstall-dist_wizhelpDATA: @$(NORMAL_UNINSTALL) @list='$(dist_wizhelp_DATA)'; test -n "$(wizhelpdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(wizhelpdir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(admdir)" "$(DESTDIR)$(helpdir)" "$(DESTDIR)$(i18ndir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(wizhelpdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dist_admSCRIPTS \ install-dist_helpDATA install-dist_i18nDATA \ install-dist_pkgdataDATA install-dist_wizhelpDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_admSCRIPTS uninstall-dist_helpDATA \ uninstall-dist_i18nDATA uninstall-dist_pkgdataDATA \ uninstall-dist_wizhelpDATA uninstall-local .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-local \ install-dist_admSCRIPTS install-dist_helpDATA \ install-dist_i18nDATA install-dist_pkgdataDATA \ install-dist_wizhelpDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-dist_admSCRIPTS uninstall-dist_helpDATA \ uninstall-dist_i18nDATA uninstall-dist_pkgdataDATA \ uninstall-dist_wizhelpDATA uninstall-local crossfire.0: bmaps.paths $(PERL) $(srcdir)/adm/collect_images.pl -src $(srcdir) -png .collect-stamp: touch .collect-stamp collect: $(PERL) -I$(srcdir) collect.pl $(builddir)/arch $(PERL) $(srcdir)/adm/collect_images.pl -src $(srcdir) -png archonly: $(PERL) -I$(srcdir) collect.pl $(builddir)/arch ARCHONLY archetypes: .collect-stamp $(MAKE) collect faces: .collect-stamp $(MAKE) collect animations: .collect-stamp $(MAKE) collect bmaps.paths bmaps: .collect-stamp $(MAKE) collect smooth: .collect-stamp $(MAKE) collect install-data-local: archetypes crossfire.0 faces animations smooth collect.pl util.pl @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgconfdir) for i in $(CONF_FILES); do \ if [ ! -f $(DESTDIR)$(pkgconfdir)/$$i ]; then \ echo "Installing $$i"; \ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(pkgconfdir); \ fi \ done $(mkinstalldirs) $(DESTDIR)$(pkgstatedir) for i in $(VAR_FILES) ; do \ touch $(DESTDIR)$(pkgstatedir)/$$i ; \ done @for i in account datafiles players unique-items template-maps maps; do \ if [ ! -d $(DESTDIR)$(pkgstatedir)/$$i ]; then \ echo "Creating directory $(pkgstatedir)/$$i"; \ $(mkinstalldirs) $(DESTDIR)$(pkgstatedir)/$$i; \ fi; \ done # Special case above because the name we install to is different # than the name of the file if [ ! -d $(DESTDIR)$(pkgdatadir)/$$i ]; then \ echo "Creating directory $(pkgdatadir)/$$i"; \ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/$$i; \ fi; \ $(INSTALL_DATA) $(builddir)/treasures.bld $(DESTDIR)$(pkgdatadir)/treasures # Uninstall unchanged config/var files so make distcheck is happy # but leave changed file, so no configuration/game state is lost uninstall-local: -for i in $(CONF_FILES); do \ if test ! -f $(DESTDIR)$(pkgconfdir)/$$i ; then \ continue ; \ fi ; \ if diff -q $(srcdir)/$$i $(DESTDIR)$(pkgconfdir)/$$i ; then \ rm -f $(DESTDIR)$(pkgconfdir)/$$i ; \ fi ; \ done -for i in $(VAR_FILES) ; do \ if test ! -f $(DESTDIR)$(pkgstatedir)/$$i ; then \ continue ;\ fi ; \ if test `wc -c $(DESTDIR)$(pkgstatedir)/$$i|$(AWK) '{ print $$1 }'` -eq "0" ; then \ rm -f $(DESTDIR)$(pkgstatedir)/$$i ; \ fi ; \ done # This block makes the archive of the arch directory. archive:: $(AMTAR) -cvh --exclude=dev --exclude=.svn -f $(PACKAGE)-$(VERSION)-arch.tar arch $(GZIP) -cv9 $(PACKAGE)-$(VERSION)-arch.tar > ../$(PACKAGE)-$(VERSION)-arch.tar.gz $(BZIP) -cv --repetitive-best $(PACKAGE)-$(VERSION)-arch.tar > ../$(PACKAGE)-$(VERSION)-arch.tar.bz2 $(RM) $(PACKAGE)-$(VERSION)-arch.tar libArch: tar cvf A`perl puredate.pl`.tar arch treasures gzip A`perl puredate.pl`.tar # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������crossfire-1.70.0/lib/ban_file�����������������������������������������������������������������������0000644�0000145�0000012�00000003264�11731300544�012735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# BANFILE # A file which contains users or sites which are banned from playing. # wildcards can be used in the file. Valid entries are put on seperate lines. # For a ban to result, both the user and ip must be true. # Note: Crossfire does not do a ip -> dns name, so matches for the # second part must be by ip. # # Syntax is "user@ip.address". Note that when actually putting in lines, the # double quotes should be ignored. user can be "*" to match any user. The # line may be prefixed by '~' to allow an entry. The lines are matched in the # given order; the first match is used. # # The ip address portion is done as a substring and not wildcard # match. Some examples, and results: # # "mark@tavern.us" - won't work - tavern.us would not match - must be ip # address. # "*@10.1.31.1" - users from 10.1.31.1 will not be able to play. # "*@10.1.31.*" - will not work - * is not a wildcard for host matches. # "*@10.1.31." - will do above - every ip that has 10.1.31. will be banned. # "*@10.1.31" - will ban above, but would also ban things like # "129.10.1.31". # "mark@10.1.31.1" - user mark from 10.1.31.1 will not be able to play. # "mark@" - user mark will not be able to play. # "mark@*" - user mark will not be able to play - * matches any host # name. # "~mark@1.2.3.4" - accept user mark from 1.2.3.4, regardless if a following # line would forbid it. For example, together with a # following line "mark@*" would allow mark to play only if # he connects from 1.2.3.4. # # Ip address can be determined by looking at the logs, or with the who command. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/README�������������������������������������������������������������������������0000644�0000145�0000012�00000006230�11731300544�012127� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Generated files: ---------------- The "collect.pl" file is a script to generate the other files in this section. To run it, one inserts a symlink to the arch directory in the current directory, and then runs "make collect". These files are moved into $PREFIX/share/crossfire by default. The "archetypes" file contains lots of generalized objects which makes it easier for the program to use similar items over and over again. The "smooth" file contains data for the tile smoothing feature. The "animations" file contains named animations. The "bmaps" file contains as list of which face name is associated with which face number. The "bmaps.paths" file contains as list of which image path is associated with which face number. The "crossfire.0" and "crossfire.1" files contain all of the image files from the archetypes. The "faces" file contains a list of what magicmap colors are associated with which image faces. The "treasures.bld" file contains all kinds of randomized treasure. This file is created the "treasures" file in addition to the archetypes. Non-generated game data files: ------------------------------ These files are moved into $PREFIX/share/crossfire by default. The "treasures" file contains all kinds of randomized treasure, to be used when an archetype is generated from the "archetypes" file. The "artifacts" file defines artifacts, which are modified versions of normal objects, which randomly appear. The "image_info" file defines different tilesets. The "messages" file contains messages to be inserted in random books. The "formulae" file contains "alchemy formulae" for alchemy and other crafting skills. The "races" file contains a list of defined races (archetypes don't have to use those races though), it also serves as a summoning list file. The "attackmess" file contains messages for players to recieve when they hit something or are hit by something. The "materials" file defines named materials. The "def_help" file contains the help message to display to players when they type the "help" command with no parameter. The "help" directory contains entries for the "help" command. The "wizhelp" directory contains entries for the "help" command for dm commands. The directory "adm", if it is here, contains administrive scripts and their log-files. Settings files: --------------- These files are moved into $PREFIX/etc/crossfire by default. The "motd" file contains any messages to the players as they connect. In the motd you can also use mediaTags, as defined in ../doc/mediaTags. The "news" is intended for server news, and it is also displayed to players as they commect. mediaTags can be used as in the motd. The "rules" is intended for server rules, and it is also displayed to players as they commect. mediaTags can be used as in the motd. The "forbid" file, us for settings times that playing on the server is disallowed. The "ban_file" file contains a list of users or sites that are banned from the server. The "dm_file" file contains a list of which users/passwords/hosts are allowed dm access. The "exp_table" file contains the table of how much experience is required for each level. The "settings" file contains settings for the server ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/archetypes���������������������������������������������������������������������0000644�0000145�0000012�00003600213�11732536576�013366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Object elvenboots editor_folder armour/boots name elven boots name_pl elven boots client_type 290 nrof 1 face elvenboots.111 value 30000 weight 500 type 99 exp 3 material 8 stealth 1 item_power 3 body_foot -2 end Object high_boots editor_folder armour/boots name jack boots name_pl jack boots client_type 291 face high_boots.111 value 60 weight 6500 ac 1 nrof 1 resist_physical 4 type 99 material 8 body_foot -2 gen_sp_armour 4 end Object high_boots_b editor_folder armour/boots name jack boots name_pl jack boots client_type 291 face high_boots_b.111 value 1700 weight 6500 ac 1 nrof 1 Cha 1 resist_death 1 resist_physical 4 type 99 material 8 materialname black leather body_foot -2 gen_sp_armour 4 end Object high_boots_b_d editor_folder armour/boots name jack boots name_pl jack boots client_type 291 face high_boots_b.111 title of death value 30000 weight 13000 ac 1 nrof 1 Cha 1 resist_death 25 resist_physical 25 type 99 material 2 materialname black steel body_foot -2 gen_sp_armour 4 end Object high_boots_w editor_folder armour/boots name jack boots name_pl jack boots client_type 291 face high_boots_w.111 value 2000 weight 6500 ac 1 nrof 1 Cha 1 resist_blind 1 resist_physical 4 type 99 material 8 materialname white leather body_foot -2 gen_sp_armour 4 end Object high_boots_w_l editor_folder armour/boots name jack boots name_pl jack boots client_type 291 face high_boots_w.111 title of light value 40000 weight 13000 ac 1 nrof 1 Cha 1 resist_blind 25 resist_physical 25 type 99 material 2 materialname white steel body_foot -2 gen_sp_armour 4 end Object idaten editor_folder armour/boots name Idaten boots name_pl Idaten boots client_type 290 nrof 1 face idaten.111 animation idaten anim_speed 3 client_anim_random 1 exp 20 value 50000 weight 5000 type 99 material 8 resist_physical 3 body_foot -2 item_power 25 end Object levitationboots editor_folder armour/boots name levitation boots name_pl levitation boots client_type 290 nrof 1 face lev_boots.111 value 35000 weight 2500 type 99 material 8 resist_physical 3 move_type fly_low body_foot -2 item_power 1 map_layer item end Object low_boots editor_folder armour/boots name pair of shoes name_pl pairs of shoes client_type 291 face low_boots.111 value 25 weight 2000 nrof 1 ac 1 resist_physical 1 type 99 material 8 body_foot -2 gen_sp_armour 1 end Object sandals editor_folder armour/boots name sandals name_pl sandals client_type 291 face sandals.111 value 5 weight 500 resist_physical 1 nrof 1 type 99 material 8 body_foot -2 gen_sp_armour 1 end Object speedboots editor_folder armour/boots name speed boots name_pl speed boots client_type 290 nrof 1 exp 6 face speedboots.111 animation speedboots anim_speed 5 client_anim_random 1 value 50000 weight 5000 type 99 material 8 resist_physical 3 body_foot -2 item_power 6 end Object bracers_ac editor_folder armour/bracers nrof 1 name bracers name_pl bracers client_type 311 type 104 face bracers_ac.111 ac 1 value 1000 material 2 weight 3000 body_wrist -2 end Object bracers_dex editor_folder armour/bracers nrof 1 name bracers name_pl bracers client_type 311 title of dexterity face bracersdex.111 type 104 Dex 2 value 65000 weight 3000 body_wrist -2 item_power 2 end Object cloak editor_folder armour/cloak name cloak name_pl cloaks client_type 281 type 87 face cloak.111 ac 0 weight 5000 value 40 material 136 nrof 1 body_shoulder -1 end Object magic_resist editor_folder armour/cloak name Cloak of Magic Resistance name_pl Cloaks of Magic Resistance client_type 280 nrof 1 type 87 face magic_resist.111 ac 0 weight 5000 value 220000 startequip 1 no_steal 1 material 128 materialname astolare resist_magic 95 body_shoulder -1 item_power 4 end Object oilskin editor_folder armour/cloak name oilskin cloak name_pl oilskin cloaks client_type 280 type 87 face oilskin.111 Dex -1 ac 1 resist_physical 3 weight 1000 value 120000 material 8 nrof 1 resist_acid 70 magic -4 damned 1 body_shoulder -1 end Object serp_cloak editor_folder armour/cloak name serpent cloak name_pl serpent cloaks client_type 280 type 87 face serp_cloak.111 ac 1 weight 700 resist_poison 30 value 900 material 8 materialname snakeskin nrof 1 body_shoulder -1 item_power 2 end Object b_gauntlets editor_folder armour/gauntlets name gauntlets client_type 305 face b_gauntlet_s.111 type 100 resist_physical 2 value 6 nrof 1 material 2 materialname bronze weight 1800 body_hand -2 end Object gauntlets editor_folder armour/gauntlets name gauntlets client_type 305 face gauntlet_s.111 type 100 resist_physical 3 value 25 nrof 1 material 2 weight 1800 body_hand -2 end Object gauntlets_dex editor_folder armour/gauntlets nrof 1 name gauntlets client_type 305 title of dexterity face gauntlet_s.111 type 100 Dex 2 resist_physical 3 value 65000 material 2 weight 1800 body_hand -2 item_power 1 end Object gauntlets_str editor_folder armour/gauntlets nrof 1 name gauntlets name_pl gauntlets client_type 305 title of strength face gauntlet_s.111 type 100 Str 1 resist_physical 3 value 65000 material 2 weight 2000 body_hand -2 item_power 0 end Object gloves editor_folder armour/gauntlets name gloves client_type 301 face gloves.111 type 100 resist_physical 1 nrof 1 value 4 material 8 weight 100 body_hand -2 end Object gloves_b editor_folder armour/gauntlets name gloves client_type 301 face gloves_b.111 type 100 resist_physical 1 nrof 1 value 64 material 8 materialname black leather weight 100 body_hand -2 end Object gloves_w editor_folder armour/gauntlets name gloves client_type 301 face gloves_w.111 type 100 resist_physical 1 Cha 1 resist_blind 2 nrof 1 value 6000 material 8 materialname white leather weight 100 body_hand -2 end Object gloves_w_l editor_folder armour/gauntlets name gloves client_type 301 face gloves_w.111 type 100 resist_physical 20 Cha 1 resist_blind 20 title of light nrof 1 value 42000 material 2 materialname white steel weight 200 body_hand -2 end Object god_finger editor_folder armour/gauntlets nrof 1 name God Finger name_pl God Fingers client_type 300 type 100 face god_finger.111 animation god_finger anim_speed 10 client_anim_random 1 Str 2 Dex -1 resist_physical 3 dam +3 make_invisible 1 value 120000 material 2 weight 1800 body_hand -2 item_power 2 end Object shining_finger editor_folder armour/gauntlets nrof 1 name Shining Finger name_pl Shining Fingers client_type 300 type 100 face shining_finger.111 animation shining_finger anim_speed 10 client_anim_random 1 Str 2 resist_physical 3 dam +3 value 120000 material 2 weight 1800 body_hand -2 item_power 1 end Object girdle_strcon editor_folder armour/girdle nrof 1 type 113 name girdle name_pl girdles client_type 321 title of fighting face gir_strcon.111 animation girdle_strcon anim_speed 10 client_anim_random 1 Str 1 Con 1 weight 2500 value 75000 material 8 body_waist -1 item_power 1 end Object girdle_con editor_folder armour/girdle nrof 1 type 113 name girdle name_pl girdles client_type 321 title of constitution face girdle_con.111 animation girdle_con anim_speed 10 client_anim_random 1 Con 2 weight 2500 value 85000 material 8 body_waist -1 item_power 1 end Object girdle_dam editor_folder armour/girdle nrof 1 type 113 name girdle name_pl girdles client_type 321 title of damage face girdle_dam.111 animation girdle_dam anim_speed 10 client_anim_random 1 dam 10 weight 2500 value 70000 material 8 body_waist -1 item_power 1 end Object girdle_str editor_folder armour/girdle nrof 1 type 113 name girdle name_pl girdles client_type 321 title of strength face girdle_str.111 animation girdle_str anim_speed 10 client_anim_random 1 Str 2 weight 2500 value 80000 material 8 body_waist -1 item_power 1 end Object a_helmet editor_folder armour/helmet name helmet name_pl helmets client_type 271 nrof 1 type 34 face a_helmet.111 weight 5000 ac 1 resist_physical 5 value 14 material 2 body_head -1 gen_sp_armour 5 end Object b_full_helmet editor_folder armour/helmet nrof 1 name full helmet name_pl full helmets client_type 271 type 34 face b_fullhelmet.111 ac 1 resist_physical 5 weight 12000 value 4 material 2 materialname bronze body_head -1 gen_sp_armour 10 end Object b_helmet editor_folder armour/helmet name helmet name_pl helmets client_type 271 nrof 1 type 34 face b_helmet.111 weight 5000 ac 1 resist_physical 3 value 4 material 2 materialname bronze body_head -1 gen_sp_armour 5 end Object b_horned_helmet editor_folder armour/helmet nrof 1 name horned helmet name_pl horned helmets client_type 271 type 34 face b_hornhelmet.111 ac 1 resist_physical 1 weight 6000 value 3 material 18 materialname bronze body_head -1 gen_sp_armour 2 end Object bighorned_helmet editor_folder armour/helmet nrof 1 name horned helmet name_pl horned helmets client_type 271 type 34 face bighorn_he.111 ac 1 resist_physical 5 weight 10000 value 22 material 18 body_head -1 gen_sp_armour 3 end Object crown editor_folder armour/helmet name crown nrof 1 face crown.111 type 34 material 2 resist_physical 3 weight 12300 value 1700 name_pl crowns client_type 271 body_head -1 end Object crown_r editor_folder armour/helmet name crown nrof 1 face crown_r.111 type 34 material 2 resist_physical 3 weight 12300 value 1700 name_pl crowns client_type 271 body_head -1 end Object crown_gray editor_folder armour/helmet name crown nrof 1 face crown_gray.111 type 34 material 2 resist_physical 3 weight 12300 value 1700 name_pl crowns client_type 271 body_head -1 end Object crown_white editor_folder armour/helmet name crown nrof 1 face crown_white.111 type 34 material 2 resist_physical 3 weight 12300 value 1700 name_pl crowns client_type 271 body_head -1 end Object crown_dark editor_folder armour/helmet name crown nrof 1 face crown_dark.111 type 34 material 2 resist_physical 3 weight 12300 value 1700 name_pl crowns client_type 271 body_head -1 end Object eyeglasses editor_folder armour/helmet nrof 1 name eye glasses client_type 275 type 34 face eyeglasses.111 weight 120 value 1000 Dex 2 Cha -2 material 4 materialname glass body_head -1 end Object full_helmet editor_folder armour/helmet nrof 1 name full helmet name_pl full helmets client_type 271 type 34 face fullhelmet.111 ac 1 resist_physical 10 weight 12000 value 16 material 2 body_head -1 gen_sp_armour 10 end Object helmet editor_folder armour/helmet name helmet name_pl helmets client_type 271 nrof 1 type 34 face helmet.111 weight 5000 ac 1 resist_physical 5 value 14 material 2 body_head -1 gen_sp_armour 5 end Object helmet_of_brilliance editor_folder armour/helmet name helmet name_pl helmets client_type 270 nrof 1 title of brilliance face helmet_bri.111 type 34 weight 7000 ac 2 resist_physical 5 value 95000 Int 2 Pow 2 sp 1 body_head -1 item_power 5 end Object helmet_of_xrays editor_folder armour/helmet name helmet name_pl helmets client_type 270 nrof 1 title of xray vision face helmetxray.111 animation helmetxray anim_speed 20 client_anim_random 1 type 34 weight 6000 ac 2 resist_physical 5 value 70000 material 2 xrays 1 body_head -1 item_power 3 end Object horned_helmet editor_folder armour/helmet nrof 1 name horned helmet name_pl horned helmets client_type 271 type 34 face hornhelmet.111 ac 1 resist_physical 2 weight 6000 value 12 material 18 body_head -1 gen_sp_armour 2 end Object kog editor_folder armour/helmet name Kabuto of Geisya name_pl Kabutos of Geisya client_type 270 nrof 1 type 34 face kog.111 Wis 1 Cha 2 Int 1 weight 2000 ac 3 resist_physical 10 value 100000 material 2 body_head -1 gen_sp_armour 5 item_power 4 end Object turban editor_folder armour/helmet name turban name_pl turbans client_type 272 nrof 1 type 34 face turban.111 weight 500 resist_physical 1 value 8 material 128 body_head -1 gen_sp_armour 1 end Object wig editor_folder armour/helmet name wig name_pl wigs client_type 273 nrof 1 type 34 face wig.111 weight 500 Cha 1 value 140 material 32 body_head -1 end Object wiz_hat editor_folder armour/helmet name Wizard Hat name_pl Wizard Hats client_type 270 nrof 1 type 34 face wiz_hat.111 animation wiz_hat anim_speed 10 client_anim_random 1 last_sp 12 ac 1 Int 2 sp 4 resist_fire 15 resist_cold 15 resist_drain 30 resist_slow 30 resist_paralyze 30 weight 1000 value 50000 material 128 body_head -1 item_power 10 end Object Pdragon_mail editor_folder armour/mail name Power Dragon Mail name_pl Power Dragon Mails client_type 251 nrof 1 type 16 face Pdragonmail.111 animation Pdragon_mail anim_speed 5 client_anim_random 1 last_sp 13 ac 8 material 256 resist_physical 60 weight 40000 value 990000 exp 1 resist_fire 50 resist_electricity 30 magic 4 identified 1 body_torso -1 gen_sp_armour 9 item_power 12 end Object b_plate_mail editor_folder armour/mail nrof 1 name plate mail name_pl plate mails client_type 252 type 16 face b_plate_mail.111 last_sp 7 material 2 materialname bronze ac 5 resist_physical 20 weight 100000 value 25 body_torso -1 gen_sp_armour 30 end Object b_scale_mail editor_folder armour/mail nrof 1 name scale mail name_pl scale mails client_type 253 type 16 face b_scale_mail.111 last_sp 9 material 8 materialname bronze ac 3 resist_physical 10 weight 20000 value 8 body_torso -1 gen_sp_armour 10 end Object chain_mail editor_folder armour/mail nrof 1 name chain mail name_pl chain mails client_type 253 type 16 face chainmail.111 last_sp 10 material 2 ac 4 resist_physical 30 weight 60000 value 75 body_torso -1 gen_sp_armour 15 end Object dragon_mail editor_folder armour/mail name red dragon mail name_pl red dragon mails client_type 251 nrof 1 type 16 face dragonmail.111 last_sp 13 ac 6 resist_physical 50 material 2048 materialname dragonscale weight 60000 value 50000 resist_fire 40 magic 3 identified 1 body_torso -1 gen_sp_armour 9 item_power 5 end Object blue_dragon_mail editor_folder armour/mail name blue dragon mail name_pl blue dragon mails client_type 251 nrof 1 type 16 face bluedragonmail.111 last_sp 13 ac 6 resist_physical 50 material 2048 materialname dragonscale weight 60000 value 50000 resist_electricity 40 magic 3 identified 1 body_torso -1 gen_sp_armour 9 item_power 5 end Object green_dragon_mail editor_folder armour/mail name green dragon mail name_pl green dragon mails client_type 251 nrof 1 type 16 face greendragonmail.111 last_sp 13 ac 6 resist_physical 50 material 2048 materialname dragonscale weight 60000 value 50000 resist_cold 40 magic 3 identified 1 body_torso -1 gen_sp_armour 9 item_power 5 end Object dress1 editor_folder armour/mail name dress name_pl dresses client_type 255 nrof 1 type 16 face dress1.111 resist_physical 1 last_sp 5 Cha 2 ac 1 weight 10000 value 10000 material 128 body_torso -1 end Object dress2 editor_folder armour/mail name dress name_pl dresses client_type 255 nrof 1 type 16 face dress2.111 last_sp 8 ac 1 Cha 1 weight 5000 value 3000 material 128 body_torso -1 end Object dress3 editor_folder armour/mail name dress name_pl dresses client_type 255 nrof 1 type 16 face dress3.111 last_sp 8 Cha 1 weight 4500 value 1000 material 128 body_torso -1 end Object elven_robe editor_folder armour/mail name Elven Robe name_pl Elven Robes client_type 256 nrof 1 type 16 face elven_robe.111 last_sp 12 ac 3 stealth 1 resist_confusion 60 Dex 4 magic 1 food 4 weight 5000 value 3000 material 128 body_torso -1 item_power 13 end Object gale editor_folder armour/mail name Gale Armour name_pl Gale Armours client_type 250 nrof 1 face gale.111 Dex 2 ac 4 resist_physical 40 speed 2.000000 type 16 resist_electricity 30 material 8 value 220000 weight 10000 last_sp 50 body_torso -1 item_power 4 end Object lapron editor_folder armour/mail name apron name_pl aprons client_type 257 type 16 face lapron.111 last_sp 11 ac 1 resist_physical 5 weight 20000 nrof 1 value 10 material 8 body_torso -1 end Object leather_armour editor_folder armour/mail nrof 1 name armour name_pl armours client_type 254 type 16 face leather_ar.111 last_sp 13 ac 2 resist_physical 10 weight 20000 value 40 material 8 body_torso -1 gen_sp_armour 8 end Object mithril_chainmail editor_folder armour/mail nrof 1 name mithril chainmail name_pl mithril chainmails client_type 250 type 16 material 2 materialname mithril face mithril_ar.111 animation mithril_chainmail anim_speed 10 client_anim_random 1 ac 6 resist_physical 35 last_sp 18 weight 15000 value 8000 body_torso -1 gen_sp_armour 5 item_power 1 end Object mithril_ar_ele editor_folder armour/mail nrof 1 name mithril chainmail of lightning name_pl mithril chainmails of lightning client_type 250 type 16 material 2 materialname mithril face mithril_ar_ele.111 animation mithril_ar_ele anim_speed 3 client_anim_random 1 ac 6 resist_physical 40 resist_electricity 30 Cha 1 Str 1 exp 1 magic 3 last_sp 27 weight 15000 value 4000 body_torso -1 gen_sp_armour 2 item_power 9 end Object plate_mail editor_folder armour/mail nrof 1 name plate mail name_pl plate mails client_type 252 type 16 face plate_mail.111 last_sp 7 material 2 ac 5 resist_physical 40 weight 100000 value 100 body_torso -1 gen_sp_armour 30 end Object ring_mail editor_folder armour/mail nrof 1 name hauberk name_pl hauberks client_type 253 type 16 face ring_mail.111 last_sp 10 material 2 ac 4 resist_physical 25 weight 50000 value 60 body_torso -1 gen_sp_armour 15 end Object ring_mail2 editor_folder armour/mail nrof 1 name ring mail name_pl ring mails client_type 253 type 16 face ring_mail2.111 last_sp 11 material 2 ac 4 resist_physical 20 weight 40000 value 85 body_torso -1 gen_sp_armour 15 end Object robe editor_folder armour/mail name robe name_pl robes client_type 256 nrof 1 type 16 face robe.111 last_sp 12 ac 1 weight 10000 value 30 material 128 body_torso -1 end Object robe2 editor_folder armour/mail name robe name_pl robes client_type 256 type 16 face robe2.111 last_sp 12 ac 1 nrof 1 weight 10000 value 9 material 128 body_torso -1 end Object robe_midnight editor_folder armour/mail name Midnight Robe name_pl Midnight Robes client_type 250 nrof 1 type 16 face robe_midnight.111 animation robe_midnight anim_speed 10 client_anim_random 1 ac 5 Dex 1 Int 2 Pow 2 resist_magic 30 resist_fire 20 resist_cold 20 resist_drain 20 resist_slow 20 resist_paralyze 20 resist_acid 75 resist_ghosthit -100 reflect_spell 1 magic 5 weight 5000 value 100000 material 128 body_torso -1 item_power 25 end Object scale_mail editor_folder armour/mail nrof 1 name scale mail name_pl scale mails client_type 253 type 16 face scale_mail.111 last_sp 9 material 8 ac 3 resist_physical 20 weight 20000 value 30 body_torso -1 gen_sp_armour 10 end Object tunic editor_folder armour/mail name shirt name_pl shirts client_type 256 type 16 face tunic.111 last_sp 20 weight 1000 nrof 1 value 3 material 128 body_torso -1 end Object wdsm editor_folder armour/mail name White Dragon Scale Mail name_pl White Dragon Scale Mails client_type 251 nrof 1 type 16 face wdsm.111 animation wdsm anim_speed 10 client_anim_random 1 last_sp 13 cursed 1 startequip 1 no_steal 1 ac 5 resist_physical 45 weight 5000 value 220000 resist_cold 30 resist_fire 95 magic -3 body_torso -1 gen_sp_armour 9 item_power 5 end Object DShield editor_folder armour/shield name Demonspawn Shield name_pl Demonspawn Shields client_type 260 nrof 1 type 33 material 256 materialname abyssium face DShield.111 animation DShield anim_speed 5 client_anim_random 1 msg There is an evil spirit in the shield. endmsg Cha -3 resist_fire 30 resist_drain 100 resist_ghosthit 70 ac 3 resist_physical 10 weight 25000 value 50000 body_arm -1 item_power 5 end Object DShieldm editor_folder armour/shield name Demonspawn Shield name_pl Demonspawn Shields client_type 260 nrof 1 type 33 material 256 materialname abyssium face DShield.111 animation DShieldm anim_speed 5 client_anim_random 1 msg There is a strong evil spirit in the shield trying to dominate you. endmsg Cha -3 resist_fire 30 resist_drain 100 resist_ghosthit 75 reflect_missile 1 ac 4 resist_physical 10 weight 25000 value 100000 body_arm -1 item_power 7 end Object DShieldms editor_folder armour/shield name Demonspawn Shield name_pl Demonspawn Shields client_type 260 nrof 1 type 33 material 256 materialname abyssium face DShield.111 animation DShieldms anim_speed 4 client_anim_random 1 Cha -5 msg There is a powerful evil spirit in the shield dominating your mind. You are struggling to retain control of yourself. endmsg resist_fire 30 resist_drain 100 resist_ghosthit 80 reflect_missile 1 reflect_spell 1 ac 7 resist_physical 15 weight 25000 value 300000 body_arm -1 item_power 10 end Object DShields editor_folder armour/shield name Demonspawn Shield name_pl Demonspawn Shields client_type 260 nrof 1 type 33 material 256 materialname abyssium face DShield.111 animation DShields anim_speed 5 client_anim_random 1 msg There is a strong evil spirit in the shield trying to dominate you. endmsg Cha -3 resist_fire 30 resist_drain 100 resist_ghosthit 75 ac 4 reflect_spell 1 resist_physical 10 weight 25000 value 100000 body_arm -1 item_power 8 end Object b_shield editor_folder armour/shield name shield name_pl shields client_type 261 nrof 1 material 2 materialname bronze type 33 face b_shield.111 ac 1 resist_physical 3 weight 15000 value 6 body_arm -1 end Object b_small_shield editor_folder armour/shield nrof 1 name small shield name_pl small shields client_type 261 type 33 face b_small_shie.111 ac 1 weight 11000 value 4 material 2 materialname bronze body_arm -1 end Object dragon_shield editor_folder armour/shield name dragon shield name_pl dragon shields client_type 260 nrof 1 material 2048 materialname dragonscale face dragon_shi.111 type 33 ac 1 resist_physical 8 magic 2 resist_fire 30 weight 5000 value 28000 identified 1 body_arm -1 item_power 2 end Object eyeshield editor_folder armour/shield name eyeshield name_pl eyeshields client_type 260 nrof 1 material 32 materialname organics type 33 face eyeshield.111 ac 3 resist_physical 3 resist_magic 30 weight 15000 value 30000 identified 1 body_arm -1 item_power 2 end Object frostshield editor_folder armour/shield nrof 1 name Frost Shield name_pl Frost Shields client_type 261 type 33 face frostshield.111 dam 1 ac -1 resist_fire 10 resist_physical 3 resist_cold 15 weight 2000 value 100 material 18 end Object high_shield editor_folder armour/shield nrof 1 name high shield name_pl high shields client_type 261 type 33 face highshield.111 ac 1 resist_physical 8 weight 20000 value 24 material 2 body_arm -1 end Object holy_shield editor_folder armour/shield name holy shield name_pl holy shields client_type 260 nrof 1 face holyshield.111 material 2 type 33 weight 20000 value 35000 ac 4 resist_physical 10 resist_drain 100 resist_ghosthit 50 body_arm -1 item_power 6 end Object reflector editor_folder armour/shield name polished shield name_pl polished shields client_type 260 nrof 1 type 33 material 256 face reflector.111 animation reflector anim_speed 4 client_anim_random 1 ac 3 resist_physical 5 reflect_spell 1 weight 18000 value 100000 body_arm -1 item_power 2 end Object round_shield editor_folder armour/shield nrof 1 name shield name_pl shields client_type 261 type 33 face round_shiel.111 ac 1 resist_physical 7 weight 15000 value 21 material 18 body_arm -1 end Object shield editor_folder armour/shield name shield name_pl shields client_type 261 nrof 1 material 2 type 33 face shield.111 ac 1 resist_physical 5 weight 15000 value 22 body_arm -1 end Object small_shield editor_folder armour/shield nrof 1 name small shield name_pl small shields client_type 261 type 33 face small_shie.111 ac 1 weight 10000 value 20 material 2 body_arm -1 end Object spiked_shield editor_folder armour/shield nrof 1 name spiked shield name_pl spiked shields client_type 261 type 33 face spiked_shield.111 dam 3 ac 1 resist_physical 3 weight 2000 value 21 material 18 body_arm -1 end Object uw_shield editor_folder armour/shield name Belzebub's shield name_pl Belzebub's shields client_type 260 nrof 1 material 256 materialname abyssium face uw_shield.111 type 33 weight 25000 value 80000 ac 4 resist_physical 15 resist_deplete 100 body_arm -1 item_power 5 end Object wds editor_folder armour/shield name White Dragon Shield name_pl White Dragon Shields client_type 260 nrof 1 face wds.111 ac 2 resist_physical 8 type 33 resist_fire 30 resist_cold 30 value 45000 weight 6000 magic 2 identified 1 body_arm -1 item_power 4 end Object slotmachine1 editor_folder connect/Casino name slotmachine slaying goldcoin food 1 type 31 exp 30 face slotmachine1.111 animation slotmachine1 is_animated 0 no_pick 1 move_on walk client_type 25041 end Object slotmachine2 editor_folder connect/Casino name slotmachine slaying goldcoin food 1 type 31 exp 30 face slotmachine2.111 animation slotmachine2 is_animated 0 no_pick 1 move_on walk client_type 25041 end Object slotmachine3 editor_folder connect/Casino name slotmachine slaying goldcoin food 1 type 31 exp 30 face slotmachine3.111 animation slotmachine3 is_animated 0 no_pick 1 move_on walk client_type 25041 end Object director_turn editor_folder connect/Director name director face director.181 animation director_turn speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 8 maxsp 1 move_on walk fly_low end Object director_1 editor_folder connect/Director name director face director.111 animation director_1 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 1 move_on walk fly_low end Object director_2 editor_folder connect/Director name director face director.121 animation director_2 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 2 move_on walk fly_low end Object director_3 editor_folder connect/Director name director face director.131 animation director_3 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 3 move_on walk fly_low end Object director_4 editor_folder connect/Director name director face director.141 animation director_4 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 4 move_on walk fly_low end Object director_5 editor_folder connect/Director name director face director.151 animation director_5 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 5 move_on walk fly_low end Object director_6 editor_folder connect/Director name director face director.161 animation director_6 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 6 move_on walk fly_low end Object director_7 editor_folder connect/Director name director face director.171 animation director_7 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 7 move_on walk fly_low end Object director_8 editor_folder connect/Director name director face director.181 animation director_8 speed 0.2 type 112 activate_on_push 1 activate_on_release 1 no_pick 1 sp 8 move_on walk fly_low end Object mdoor_closed_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face wdoor.114 animation mdoor_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 3 maxsp 0 dam 6 end Object mdoor_closed_2 editor_folder connect/Doors name stone door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face sdoor.114 animation mdoor_closed_2 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 3 maxsp 0 dam 6 end Object mdoor_open_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face wdoor.111 animation mdoor_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object mdoor_open_2 editor_folder connect/Doors name stone door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face sdoor.111 animation mdoor_open_2 is_animated 0 wc 0 dam 6 maxsp 1 end Object odoorm2_closed_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face odoorm2.111 animation odoorm2_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 3 maxsp 0 dam 6 end Object odoorm2_open_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face odoorm2.114 animation odoorm2_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object odoorm2bg_closed_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face odoorm2bg.111 animation odoorm2bg_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 3 maxsp 0 dam 6 end Object odoorm2bg_open_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face odoorm2bg.114 animation odoorm2bg_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object odoorm2rw_closed_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face odoorm2rw.111 animation odoorm2rw_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 3 maxsp 0 dam 6 end Object odoorm2rw_open_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face odoorm2rw.114 animation odoorm2rw_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object odoorn2_closed_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face odoorn2.111 animation odoorn2_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 3 maxsp 0 dam 6 end Object odoorn2_open_1 editor_folder connect/Doors name wood door type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face odoorn2.114 animation odoorn2_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object ggate_open editor_folder connect/Garden_gate name garden gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face gard_gate.114 animation ggate_open is_animated 0 hp 0 dam 0 maxsp 1 ac 1 wc 0 end Object ggate_closed editor_folder connect/Garden_gate name garden gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face gard_gate.111 animation ggate_closed is_animated 0 hp 0 dam 0 maxsp 0 ac 1 wc 3 move_block all end Object gate_open_1 editor_folder connect/Gates name gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face gate_1.111 animation gate_open_1 is_animated 0 wc 0 dam 1 maxsp 1 end Object gate_closed_1 editor_folder connect/Gates name gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face gate_1.117 animation gate_closed_1 is_animated 0 move_block all blocksview 1 wc 6 maxsp 0 dam 1 end Object gate_open_2 editor_folder connect/Gates name gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face gate_2.111 animation gate_open_2 is_animated 0 hp 0 dam 1 maxsp 1 end Object gate_closed_2 editor_folder connect/Gates name gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face gate_2.115 animation gate_closed_2 is_animated 0 move_block all blocksview 1 wc 7 dam 1 maxsp 0 end Object gateTrg1 editor_folder connect/Gates name gate type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face gate_1.117 animation gateTrg1 is_animated 0 move_block all blocksview 1 wc 6 maxsp 0 dam 1 maxhp 20 hp 20 speed 0.35 value 1 end Object gateTrg2 editor_folder connect/Gates name gate type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face gate_2.115 animation gateTrg2 is_animated 0 move_block all blocksview 1 wc 7 dam 1 maxsp 0 maxhp 20 hp 20 speed 0.35 value 1 end Object grate_open_1 editor_folder connect/Gates name grate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face grate_1.111 animation grate_open_1 is_animated 0 wc 0 dam 5 maxsp 1 ac 1 end Object grate_closed_1 editor_folder connect/Gates name grate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face grate_1.118 animation grate_closed_1 is_animated 0 move_block all wc 7 maxsp 0 dam 5 ac 1 end Object grate_open_2 editor_folder connect/Gates name iron gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face grate_2.111 animation grate_open_2 is_animated 0 hp 0 dam 5 maxsp 1 ac 1 end Object grate_closed_2 editor_folder connect/Gates name grate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face grate_2.118 animation grate_closed_2 is_animated 0 move_block all wc 7 ac 1 dam 5 maxsp 0 end Object gratedoor_1 editor_folder connect/Gates face gratedoor1.111 blocksview 1 no_pick 1 move_block all end Object gratedoor_2 editor_folder connect/Gates face gratedoor2.111 blocksview 1 no_pick 1 move_block all end Object igateTrg1 editor_folder connect/Gates name iron gate type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face iron_gate1.118 animation igateTrg1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 7 maxsp 0 dam 6 maxhp 20 hp 20 speed 0.35 value 1 end Object igateTrg2 editor_folder connect/Gates name iron gate type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face iron_gate2.116 animation igateTrg2 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 5 dam 6 maxsp 0 maxhp 20 hp 20 speed 0.35 value 1 end Object igate_closed_1 editor_folder connect/Gates name iron gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face iron_gate1.118 animation igate_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 7 maxsp 0 dam 6 end Object igate_closed_2 editor_folder connect/Gates name iron gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face iron_gate2.116 animation igate_closed_2 is_animated 0 move_block all damned 1 no_magic 1 blocksview 1 wc 5 dam 6 maxsp 0 end Object igate_open_1 editor_folder connect/Gates name iron gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face iron_gate1.111 animation igate_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object igate_open_2 editor_folder connect/Gates name iron gate type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face iron_gate2.111 animation igate_open_2 is_animated 0 hp 0 dam 6 maxsp 1 end Object spike_moving editor_folder connect/Gates name spike type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spike.114 speed -2 animation spike_moving is_animated 0 move_block all wc 6 maxsp 0 dam 256 ac 1 end Object spike_open editor_folder connect/Gates name spike type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spike.122 animation spike_open is_animated 0 wc 0 dam 256 maxsp 1 ac 1 end Object spike_closed editor_folder connect/Gates name spike type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spike.111 animation spike_closed is_animated 0 move_block all wc 8 maxsp 0 dam 256 ac 1 end Object spike_hidden editor_folder connect/Gates name spike type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spike.110 animation spike_hidden is_animated 0 wc 0 dam 256 maxsp 1 ac 1 end Object spikes_moving editor_folder connect/Gates name spikes type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spikes.113 speed -1 animation spikes_moving is_animated 0 move_block all wc 6 maxsp 0 dam 8 ac 1 end Object spikes_open editor_folder connect/Gates name spikes type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spikes.119 animation spikes_open is_animated 0 wc 0 dam 8 maxsp 1 ac 1 end Object spikes_closed editor_folder connect/Gates name spikes type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spikes.111 animation spikes_closed is_animated 0 move_block all wc 8 maxsp 0 dam 8 ac 1 end Object spikes_hidden editor_folder connect/Gates name spikes type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face spikes.110 animation spikes_hidden is_animated 0 wc 0 dam 8 maxsp 1 ac 1 end Object manhole_closed_1 editor_folder connect/Hole name manhole type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face manhole.114 animation manhole is_animated 0 wc 4 end More Object manhole_closed_1a editor_folder connect/Hole face manhole.114 animation manhole x 1 end More Object manhole_closed_1b editor_folder connect/Hole face manhole.114 animation manhole y 1 end More Object manhole_closed_1c editor_folder connect/Hole face manhole.114 animation manhole x 1 y 1 end Object manhole_open_1 editor_folder connect/Hole name manhole type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face manhole.111 animation manhole is_animated 0 move_on walk wc 0 maxsp 1 end More Object manhole_open_1a editor_folder connect/Hole face manhole.111 animation manhole maxsp 1 x 1 end More Object manhole_open_1b editor_folder connect/Hole face manhole.111 animation manhole maxsp 1 y 1 end More Object manhole_open_1c editor_folder connect/Hole face manhole.111 maxsp 1 animation manhole x 1 y 1 end Object pit_closed editor_folder connect/Hole name pit type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole.11A animation pit_closed is_animated 0 wc 10 maxsp 0 end Object pit_open editor_folder connect/Hole name pit type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole.111 animation pit_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-pink-c-marble_111_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-pink-c-marble.111 animation pit_white-pink-c-marble_111_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-pink-c-marble_111_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.111 animation pit_white-pink-c-marble_111_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-pink-c-marble_112_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-pink-c-marble.112 animation pit_white-pink-c-marble_112_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-pink-c-marble_112_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.112 animation pit_white-pink-c-marble_112_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-pink-c-marble_113_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-pink-c-marble.113 animation pit_white-pink-c-marble_113_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-pink-c-marble_113_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.113 animation pit_white-pink-c-marble_113_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-pink-c-marble_114_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-pink-c-marble.114 animation pit_white-pink-c-marble_114_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-pink-c-marble_114_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.114 animation pit_white-pink-c-marble_114_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-red-c-marble_111_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-red-c-marble.111 animation pit_white-red-c-marble_111_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-red-c-marble_111_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.111 animation pit_white-red-c-marble_111_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-red-c-marble_112_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-red-c-marble.112 animation pit_white-red-c-marble_112_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-red-c-marble_112_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.112 animation pit_white-red-c-marble_112_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-red-c-marble_113_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-red-c-marble.113 animation pit_white-red-c-marble_113_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-red-c-marble_113_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.113 animation pit_white-red-c-marble_113_open is_animated 0 move_on walk wc 0 maxsp 1 end Object pit_white-red-c-marble_114_closed editor_folder connect/Hole name marble is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face white-red-c-marble.114 animation pit_white-red-c-marble_114_closed is_animated 0 wc 10 maxsp 0 end Object pit_white-red-c-marble_114_open editor_folder connect/Hole name pit is_floor 1 type 94 activate_on_push 1 activate_on_release 1 no_pick 1 face hole_white-any-c-marble.114 animation pit_white-red-c-marble_114_open is_animated 0 move_on walk wc 0 maxsp 1 end Object trapdoor_1 editor_folder connect/Hole name trapdoor type 95 face trapdoor_1.111 animation trapdoor_1 move_on walk no_pick 1 weight 100000 end Object trapdoor_2 editor_folder connect/Hole name trapdoor type 95 face trapdoor_2.111 animation trapdoor_2 move_on walk no_pick 1 weight 999999 end Object trapdoor_3 editor_folder connect/Hole name trapdoor type 95 face trapdoor_3.111 animation trapdoor_3 move_on walk no_pick 1 weight 1 end Object trapdoor_4 editor_folder connect/Hole name trapdoor type 95 face trapdoor_4.111 animation trapdoor_4 move_on walk no_pick 1 weight 120000 end Object spinner_-135 editor_folder connect/Spinner name spinner face spinner.11B anim_speed 1 client_anim_random 1 type 90 no_pick 1 sp 3 move_on walk fly_low animation spinner_-135 end Object spinner_-90 editor_folder connect/Spinner name spinner face spinner.11B anim_speed 1 client_anim_random 1 type 90 no_pick 1 sp 2 move_on walk fly_low animation spinner_-90 end Object spinner_-45 editor_folder connect/Spinner name spinner face spinner.11B anim_speed 2 client_anim_random 1 type 90 no_pick 1 sp 1 move_on walk fly_low animation spinner_-45 end Object spinner_45 editor_folder connect/Spinner name spinner face spinner.111 anim_speed 2 client_anim_random 1 type 90 no_pick 1 sp -1 move_on walk fly_low animation spinner_45 end Object spinner_90 editor_folder connect/Spinner name spinner face spinner.111 anim_speed 1 client_anim_random 1 type 90 no_pick 1 sp -2 move_on walk fly_low animation spinner_90 end Object spinner_135 editor_folder connect/Spinner name spinner face spinner.111 anim_speed 1 client_anim_random 1 type 90 no_pick 1 sp -3 move_on walk fly_low animation spinner_135 end Object spinner_180 editor_folder connect/Spinner name spinner face spinner.11B anim_speed 1 client_anim_random 1 type 90 no_pick 1 sp 4 move_on walk fly_low animation spinner_180 end Object altar editor_folder connect slaying food type 18 activate_on_push 1 activate_on_release 1 face altar.111 food 10 animation altar no_pick 1 move_on walk end Object button_plate editor_folder connect name large button type 92 face button_big.111 activate_on_push 1 activate_on_release 1 animation button_plate is_animated 0 no_pick 1 weight 1000000 move_on walk move_off walk end Object button_small editor_folder connect name small button type 92 activate_on_push 1 activate_on_release 1 face button_sma.111 animation button_small is_animated 0 no_pick 1 weight 1 move_on walk move_off walk end Object check_inv editor_folder connect name check_inv invisible 1 type 64 face check_inv.111 no_pick 1 move_on walk move_off walk last_sp 1 end Object cwall_closed_1 editor_folder connect name wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face cwallsec.118 animation cwall_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 7 maxsp 0 dam 6 end Object cwall_open_1 editor_folder connect name wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face cwallsec.111 animation cwall_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object cwallmural1_closed_1 editor_folder connect name wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face cwallsec_mural_1.118 animation cwallmural1_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 7 maxsp 0 dam 6 end Object cwallmural1_open_1 editor_folder connect name wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face cwallsec_mural_1.111 animation cwallmural1_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object detector editor_folder connect name detector slaying player type 51 face pedestal.112 animation detector speed 0.5 no_pick 1 sp 1 end Object button_handle editor_folder connect name handle type 93 activate_on_push 1 activate_on_release 1 face handle.111 no_pick 1 animation button_handle client_type 25042 end Object button_lever editor_folder connect name lever type 93 activate_on_push 1 activate_on_release 1 face lever.111 no_pick 1 animation button_lever client_type 25042 end Object magic_ear editor_folder connect type 29 face magic_ear.111 msg @match sesame Click. endmsg no_pick 1 invisible 1 end Object magic_mouth editor_folder connect face magicmouth.111 type 98 subtype 54 activate_on_push 1 activate_on_release 1 move_on walk fly_low no_pick 1 invisible 1 end Object mover_turn editor_folder connect name mover face director.181 animation mover_turn invisible 1 speed 0.2 type 40 move_type walk no_pick 1 maxsp 1 move_on walk fly_low end Object mover_1 editor_folder connect name mover face director.111 animation mover_1 speed -0.2 invisible 1 type 40 move_type walk no_pick 1 sp 1 move_on walk fly_low end Object mover_2 editor_folder connect name mover face director.121 animation mover_2 invisible 1 speed -0.2 type 40 move_type walk no_pick 1 sp 2 move_on walk fly_low end Object mover_3 editor_folder connect name mover face director.131 animation mover_3 invisible 1 speed -0.2 type 40 move_type walk no_pick 1 sp 3 move_on walk fly_low end Object mover_4 editor_folder connect name mover face director.141 invisible 1 animation mover_4 speed -0.2 type 40 move_type walk no_pick 1 sp 4 move_on walk fly_low end Object mover_5 editor_folder connect name mover invisible 1 face director.151 animation mover_5 speed -0.2 type 40 move_type walk no_pick 1 sp 5 move_on walk fly_low end Object mover_6 editor_folder connect name mover invisible 1 face director.161 animation mover_6 speed -0.2 type 40 move_type walk no_pick 1 sp 6 move_on walk fly_low end Object mover_7 editor_folder connect name mover invisible 1 face director.171 animation mover_7 speed -0.2 type 40 move_type walk no_pick 1 sp 7 move_on walk fly_low end Object mover_8 editor_folder connect name mover invisible 1 face director.181 animation mover_8 speed -0.2 type 40 move_type walk no_pick 1 sp 8 move_on walk fly_low end Object pedestal editor_folder connect name pedestal slaying player type 17 activate_on_push 1 activate_on_release 1 face pedestal.112 animation pedestal no_pick 1 move_on walk move_off walk end Object stwall_closed_1 editor_folder connect name stone wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face stwallsec.118 animation stwall_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 7 maxsp 0 dam 6 end Object stwall_open_1 editor_folder connect name stone wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face stwallsec.111 animation stwall_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object altar_trigger editor_folder connect name altar slaying food food 5 type 31 exp 30 face altar.111 animation altar_trigger is_animated 0 no_pick 1 move_on walk end Object button_trigger editor_folder connect name button type 30 face button_sma.111 animation button_trigger is_animated 0 exp 30 no_pick 1 move_on walk move_off walk weight 1 end Object trigger editor_folder connect name trigger type 27 face handle.111 no_pick 1 animation trigger is_animated 0 exp 30 client_type 25042 end Object pedestal_trigger editor_folder connect name pedestal slaying player type 32 face pedestal.112 animation pedestal_trigger is_animated 0 exp 30 no_pick 1 move_on walk move_off walk end Object westcwall_closed_1 editor_folder connect name wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face westcwallsec.118 animation westcwall_closed_1 is_animated 0 move_block all no_magic 1 damned 1 blocksview 1 wc 7 maxsp 0 dam 6 end Object westcwall_open_1 editor_folder connect name wall type 91 activate_on_push 1 activate_on_release 1 no_pick 1 damned 1 no_magic 1 face westcwallsec.111 animation westcwall_open_1 is_animated 0 wc 0 dam 6 maxsp 1 end Object dark_palace editor_folder construct/Palace type 66 face dark_palace.x11 no_pick 1 client_type 25012 end More Object dark_palace_2 editor_folder construct/Palace type 66 face dark_palace.x11 x 1 no_pick 1 end More Object dark_palace_3 editor_folder construct/Palace type 66 face dark_palace.x11 x 2 no_pick 1 end More Object dark_palace_4 editor_folder construct/Palace type 66 face dark_palace.x11 x 3 no_pick 1 end More Object dark_palace_5 editor_folder construct/Palace type 66 face dark_palace.x11 y 1 no_pick 1 end More Object dark_palace_6 editor_folder construct/Palace type 66 face dark_palace.x11 x 1 y 1 no_pick 1 end More Object dark_palace_7 editor_folder construct/Palace type 66 face dark_palace.x11 x 2 y 1 no_pick 1 end More Object dark_palace_8 editor_folder construct/Palace type 66 face dark_palace.x11 x 3 y 1 no_pick 1 end More Object dark_palace_9 editor_folder construct/Palace type 66 face dark_palace.x11 y 2 no_pick 1 end More Object dark_palace_10 editor_folder construct/Palace type 66 face dark_palace.x11 x 1 y 2 no_pick 1 end More Object dark_palace_11 editor_folder construct/Palace type 66 face dark_palace.x11 x 2 y 2 no_pick 1 end More Object dark_palace_12 editor_folder construct/Palace type 66 face dark_palace.x11 x 3 y 2 no_pick 1 end Object palace editor_folder construct/Palace type 66 face palace.x11 no_pick 1 client_type 25012 end More Object palace_2 editor_folder construct/Palace type 66 face palace.x11 x 1 no_pick 1 end More Object palace_3 editor_folder construct/Palace type 66 face palace.x11 x 2 no_pick 1 end More Object palace_4 editor_folder construct/Palace type 66 face palace.x11 x 3 no_pick 1 end More Object palace_5 editor_folder construct/Palace type 66 face palace.x11 y 1 no_pick 1 end More Object palace_6 editor_folder construct/Palace type 66 face palace.x11 x 1 y 1 no_pick 1 end More Object palace_7 editor_folder construct/Palace type 66 face palace.x11 x 2 y 1 no_pick 1 end More Object palace_8 editor_folder construct/Palace type 66 face palace.x11 x 3 y 1 no_pick 1 end More Object palace_9 editor_folder construct/Palace type 66 face palace.x11 y 2 no_pick 1 end More Object palace_10 editor_folder construct/Palace type 66 face palace.x11 x 1 y 2 no_pick 1 end More Object palace_11 editor_folder construct/Palace type 66 face palace.x11 x 2 y 2 no_pick 1 end More Object palace_12 editor_folder construct/Palace type 66 face palace.x11 x 3 y 2 no_pick 1 end Object s_barn editor_folder construct/Snow type 66 face s_barn.x11 speed -0.1 no_pick 1 end More Object s_barn_2 editor_folder construct/Snow type 66 face s_barn.x11 speed -0.1 no_pick 1 x 1 end More Object s_barn_3 editor_folder construct/Snow type 66 face s_barn.x11 speed -0.1 no_pick 1 y 1 end More Object s_barn_4 editor_folder construct/Snow type 66 face s_barn.x11 speed -0.1 no_pick 1 x 1 y 1 end Object s_barrack_up editor_folder construct/Snow name s_barrack type 66 face s_barrack_u.x11 animation s_barrack_up anim_speed 1 client_anim_random 10 no_pick 1 end More Object s_barrack_up_2 editor_folder construct/Snow name s_barrack type 66 face s_barrack_u.x11 animation s_barrack_up_2 anim_speed 1 client_anim_random 10 y 1 no_pick 1 end Object s_bungalow editor_folder construct/Snow type 66 face s_bungalow.111 no_pick 1 end Object s_castle editor_folder construct/Snow name castle type 66 face s_castle.x11 no_pick 1 end More Object s_castle_b editor_folder construct/Snow name castle type 66 face s_castle.x11 x 1 no_pick 1 end More Object s_castle_c editor_folder construct/Snow name castle type 66 face s_castle.x11 y 1 no_pick 1 end More Object s_castle_d editor_folder construct/Snow name castle type 66 face s_castle.x11 x 1 y 1 no_pick 1 end Object s_church editor_folder construct/Snow type 66 face s_church.x11 no_pick 1 end More Object s_church_2 editor_folder construct/Snow name church type 66 face s_church.x11 x 1 no_pick 1 end More Object s_church_3 editor_folder construct/Snow name church type 66 face s_church.x11 y 1 no_pick 1 end More Object s_church_4 editor_folder construct/Snow name church type 66 face s_church.x11 x 1 y 1 no_pick 1 end Object s_citytower editor_folder construct/Snow name tower type 66 face s_citytower.x11 speed -0.1 no_pick 1 end More Object s_citytower_2 editor_folder construct/Snow name s_citytower type 66 face s_citytower.x11 speed -0.1 y 1 no_pick 1 end Object s_guild editor_folder construct/Snow face s_guild.x11 type 66 no_pick 1 move_block all end More Object s_guild_2 editor_folder construct/Snow name guild face s_guild.x11 type 66 no_pick 1 move_block all x 1 end More Object s_guild_3 editor_folder construct/Snow name guild face s_guild.x11 type 66 no_pick 1 y 1 end More Object s_guild_4 editor_folder construct/Snow name guild face s_guild.x11 type 66 no_pick 1 x 1 y 1 end Object s_inn editor_folder construct/Snow name snowed inn face s_inn.x11 type 66 no_pick 1 end More Object s_inn_2 editor_folder construct/Snow name snowed inn face s_inn.x11 type 66 x 1 no_pick 1 end Object s_lighthouse editor_folder construct/Snow name Lighthouse face s_lighthouse.x11 type 66 no_pick 1 glow_radius 4 client_type 25012 end More Object s_lighthouse_2 editor_folder construct/Snow face s_lighthouse.x11 y 1 end Object treefort editor_folder construct/Treehouse name treefort type 66 face treefort.x11 no_pick 1 client_type 25012 end More Object treefort_1 editor_folder construct/Treehouse name treefort type 66 face treefort.x11 no_pick 1 x 1 end Object treefort2 editor_folder construct/Treehouse name treefort type 66 face treefort2.x11 no_pick 1 client_type 25012 end More Object treefort2_1 editor_folder construct/Treehouse name treefort type 66 face treefort2.x11 no_pick 1 y 1 end Object treefort3 editor_folder construct/Treehouse name treefort type 66 face treefort3.111 no_pick 1 client_type 25012 end Object treehouse editor_folder construct/Treehouse name treehouse type 66 face treehouse.111 no_pick 1 client_type 25012 end Object barrack_long editor_folder construct/barrack name barrack type 66 face barrack_l.x11 animation barrack_l anim_speed 10 client_anim_random 1 no_pick 1 client_type 25012 end More Object barrack_long_2 editor_folder construct/barrack name barrack type 66 face barrack_l.x11 animation barrack_l anim_speed 10 client_anim_random 1 x 1 no_pick 1 end Object barrack_small editor_folder construct/barrack name small barrack type 66 face barrack_s.111 no_pick 1 client_type 25012 end Object barrack_up editor_folder construct/barrack name barrack type 66 face barrack_u.x11 animation barrack_u anim_speed 10 client_anim_random 1 no_pick 1 client_type 25012 end More Object barrack_up_2 editor_folder construct/barrack name barrack type 66 face barrack_u.x11 animation barrack_u anim_speed 10 client_anim_random 1 y 1 no_pick 1 end Object bungalow editor_folder construct type 66 face bungalow.111 no_pick 1 client_type 25012 end Object castle editor_folder construct/castle type 66 face castle.111 no_pick 1 client_type 25012 end Object castle_a editor_folder construct/castle name castle type 66 face castle_a.x11 anim_speed 3 client_anim_random 1 animation castle_a no_pick 1 client_type 25012 end More Object castle_b editor_folder construct/castle name castle type 66 face castle_a.x11 animation castle_a x 1 no_pick 1 end More Object castle_c editor_folder construct/castle name castle type 66 face castle_a.x11 animation castle_a y 1 no_pick 1 end More Object castle_d editor_folder construct/castle name castle type 66 face castle_a.x11 animation castle_a x 1 y 1 no_pick 1 end Object castle_a_east editor_folder construct/castle name kyassuru type 66 face castle_a_east.x11 no_pick 1 client_type 25012 end More Object castle_b_east editor_folder construct/castle name kyassuru type 66 face castle_a_east.x11 x 1 no_pick 1 end More Object castle_c_east editor_folder construct/castle name kyassuru type 66 face castle_a_east.x11 y 1 no_pick 1 end More Object castle_d_east editor_folder construct/castle name kyassuru type 66 face castle_a_east.x11 x 1 y 1 no_pick 1 end Object castle_a_northwest editor_folder construct/castle name castle type 66 face castle_a_northwest.x11 anim_speed 3 client_anim_random 1 animation castle_a_northwest no_pick 1 client_type 25012 end More Object castle_b_northwest editor_folder construct/castle name castle type 66 face castle_a_northwest.x11 animation castle_a_northwest x 1 no_pick 1 end More Object castle_c_northwest editor_folder construct/castle name castle type 66 face castle_a_northwest.x11 animation castle_a_northwest y 1 no_pick 1 end More Object castle_d_northwest editor_folder construct/castle name castle type 66 face castle_a_northwest.x11 animation castle_a_northwest x 1 y 1 no_pick 1 end Object castle_a_western editor_folder construct/castle name castle type 66 face castle_a_western.x11 anim_speed 3 client_anim_random 1 animation castle_a_western no_pick 1 client_type 25012 end More Object castle_b_western editor_folder construct/castle name castle type 66 face castle_a_western.x11 animation castle_a_western x 1 no_pick 1 end More Object castle_c_western editor_folder construct/castle name castle type 66 face castle_a_western.x11 animation castle_a_western y 1 no_pick 1 end More Object castle_d_western editor_folder construct/castle name castle type 66 face castle_a_western.x11 animation castle_a_western x 1 y 1 no_pick 1 end Object castle_west editor_folder construct/castle name castle type 66 face castle_west.111 no_pick 1 client_type 25012 end Object fort editor_folder construct/fort name fortress type 66 face fort.x11 no_pick 1 client_type 25012 end More Object fort_2 editor_folder construct/fort name fortress type 66 face fort.x11 x 1 no_pick 1 end More Object fort_3 editor_folder construct/fort name fortress type 66 face fort.x11 y 1 no_pick 1 end More Object fort_4 editor_folder construct/fort name fortress type 66 face fort.x11 x 1 y 1 no_pick 1 end Object fort_sym editor_folder construct/fort name fortress type 66 face fort_sym.111 no_pick 1 client_type 25012 end Object fountain editor_folder construct/fountain name fountain face fountain.111 type 67 animation fountain move_on walk no_pick 1 anim_speed 2 client_anim_random 1 end Object darkhold editor_folder construct/hold name darkhold type 66 face darkhold.x11 no_pick 1 move_block all client_type 25012 end More Object darkhold_2 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 1 no_pick 1 move_block all end More Object darkhold_3 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 2 no_pick 1 move_block all end More Object darkhold_4 editor_folder construct/hold name darkhold type 66 face darkhold.x11 y 1 no_pick 1 move_block all end More Object darkhold_5 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 1 y 1 no_pick 1 move_block all end More Object darkhold_6 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 2 y 1 no_pick 1 move_block all end More Object darkhold_7 editor_folder construct/hold name darkhold type 66 face darkhold.x11 y 2 no_pick 1 move_block all end More Object darkhold_8 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 1 y 2 no_pick 1 move_block all end More Object darkhold_9 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 2 y 2 no_pick 1 move_block all end More Object darkhold_10 editor_folder construct/hold name darkhold type 66 face darkhold.x11 y 3 no_pick 1 move_block all end More Object darkhold_11 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 1 y 3 no_pick 1 move_block all end More Object darkhold_12 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 2 y 3 no_pick 1 move_block all end More Object darkhold_13 editor_folder construct/hold name darkhold type 66 face darkhold.x11 y 4 no_pick 1 move_block all end More Object darkhold_14 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 1 y 4 no_pick 1 end More Object darkhold_15 editor_folder construct/hold name darkhold type 66 face darkhold.x11 x 2 y 4 no_pick 1 move_block all end Object darkhold_sym editor_folder construct/hold name darkhold type 66 face darkhold_s.111 no_pick 1 client_type 25012 end Object stronghold editor_folder construct/hold type 66 face stronghold.x11 no_pick 1 move_block all client_type 25012 end More Object stronghold_2 editor_folder construct/hold name stronghold type 66 face stronghold.x11 x 1 no_pick 1 move_block all end More Object stronghold_3 editor_folder construct/hold name stronghold type 66 face stronghold.x11 x 2 no_pick 1 move_block all end More Object stronghold_4 editor_folder construct/hold name stronghold type 66 face stronghold.x11 y 1 no_pick 1 move_block all end More Object stronghold_5 editor_folder construct/hold name stronghold type 66 face stronghold.x11 x 1 y 1 no_pick 1 move_block all end More Object stronghold_6 editor_folder construct/hold name stronghold type 66 face stronghold.x11 x 2 y 1 no_pick 1 move_block all end More Object stronghold_7 editor_folder construct/hold name stronghold type 66 face stronghold.x11 y 2 no_pick 1 move_block all end More Object stronghold_8 editor_folder construct/hold name stronghold type 66 face stronghold.x11 x 1 y 2 no_pick 1 end More Object stronghold_9 editor_folder construct/hold name stronghold type 66 face stronghold.x11 x 2 y 2 no_pick 1 move_block all end Object stronghold_east editor_folder construct/hold type 66 face stronghold_east.x11 name honrui no_pick 1 move_block all client_type 25012 end More Object stronghold_2_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 x 1 no_pick 1 move_block all end More Object stronghold_3_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 x 2 no_pick 1 move_block all end More Object stronghold_4_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 y 1 no_pick 1 move_block all end More Object stronghold_5_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 x 1 y 1 no_pick 1 move_block all end More Object stronghold_6_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 x 2 y 1 no_pick 1 move_block all end More Object stronghold_7_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 y 2 no_pick 1 move_block all end More Object stronghold_8_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 x 1 y 2 no_pick 1 end More Object stronghold_9_east editor_folder construct/hold name honrui type 66 face stronghold_east.x11 x 2 y 2 no_pick 1 move_block all end Object stronghold_fant editor_folder construct/hold type 66 face stronghold_fant.x11 no_pick 1 move_block all end More Object stronghold_2_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 x 1 no_pick 1 move_block all end More Object stronghold_3_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 x 2 no_pick 1 move_block all end More Object stronghold_4_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 y 1 no_pick 1 move_block all end More Object stronghold_5_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 x 1 y 1 no_pick 1 move_block all end More Object stronghold_6_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 x 2 y 1 no_pick 1 move_block all end More Object stronghold_7_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 y 2 no_pick 1 move_block all end More Object stronghold_8_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 x 1 y 2 no_pick 1 end More Object stronghold_9_fant editor_folder construct/hold name stronghold type 66 face stronghold_fant.x11 x 2 y 2 no_pick 1 move_block all end Object stronghold_fant_symmetrical editor_folder construct/hold type 66 face stronghold_fant_symmetrical.x11 no_pick 1 move_block all client_type 25012 end More Object stronghold_2_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 x 1 no_pick 1 move_block all end More Object stronghold_3_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 x 2 no_pick 1 move_block all end More Object stronghold_4_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 y 1 no_pick 1 move_block all end More Object stronghold_5_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 x 1 y 1 no_pick 1 move_block all end More Object stronghold_6_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 x 2 y 1 no_pick 1 move_block all end More Object stronghold_7_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 y 2 no_pick 1 move_block all end More Object stronghold_8_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 x 1 y 2 no_pick 1 end More Object stronghold_9_fant_symmetrical editor_folder construct/hold name stronghold type 66 face stronghold_fant_symmetrical.x11 x 2 y 2 no_pick 1 move_block all end Object stronghold_northwest editor_folder construct/hold type 66 face stronghold_northwest.x11 no_pick 1 move_block all end More Object stronghold_2_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 x 1 no_pick 1 move_block all end More Object stronghold_3_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 x 2 no_pick 1 move_block all end More Object stronghold_4_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 y 1 no_pick 1 move_block all end More Object stronghold_5_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 x 1 y 1 no_pick 1 move_block all end More Object stronghold_6_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 x 2 y 1 no_pick 1 move_block all end More Object stronghold_7_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 y 2 no_pick 1 move_block all end More Object stronghold_8_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 x 1 y 2 no_pick 1 end More Object stronghold_9_northwest editor_folder construct/hold name stronghold type 66 face stronghold_northwest.x11 x 2 y 2 no_pick 1 move_block all end Object stronghold_west editor_folder construct/hold type 66 face stronghold_west.x11 no_pick 1 move_block all client_type 25012 end More Object stronghold_2_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 x 1 no_pick 1 move_block all end More Object stronghold_3_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 x 2 no_pick 1 move_block all end More Object stronghold_4_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 y 1 no_pick 1 move_block all end More Object stronghold_5_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 x 1 y 1 no_pick 1 move_block all end More Object stronghold_6_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 x 2 y 1 no_pick 1 move_block all end More Object stronghold_7_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 y 2 no_pick 1 move_block all end More Object stronghold_8_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 x 1 y 2 no_pick 1 end More Object stronghold_9_west editor_folder construct/hold name stronghold type 66 face stronghold_west.x11 x 2 y 2 no_pick 1 move_block all end Object stronghold_sym editor_folder construct/hold name stronghold type 66 face stronghsym.111 no_pick 1 client_type 25012 end Object chess_club editor_folder construct/house name chess club type 66 blocksview 1 face chess_club.111 no_pick 1 client_type 25012 end Object farmhouse editor_folder construct/house name farmhouse type 66 blocksview 1 face farmhouse.x11 no_pick 1 client_type 25012 end More Object farmhouse_2 editor_folder construct/house name farmhouse type 66 blocksview 1 face farmhouse.x11 x 1 no_pick 1 end Object house1_east editor_folder construct/house name sumai face house1_east.111 type 66 no_pick 1 blocksview 1 client_type 25012 end Object house2_east editor_folder construct/house name sumai face house2_east.111 type 66 no_pick 1 blocksview 1 client_type 25012 end Object house_1 editor_folder construct/house name house type 66 blocksview 1 face house_1.111 no_pick 1 client_type 25012 end Object house_1_green editor_folder construct/house name house type 66 blocksview 1 face house_1_green.111 no_pick 1 client_type 25012 end Object house_2 editor_folder construct/house name house type 66 blocksview 1 face house_2.111 no_pick 1 client_type 25012 end Object house_largish editor_folder construct/house name house type 66 blocksview 1 face house_larg.x11 no_pick 1 client_type 25012 end More Object house_largish_2 editor_folder construct/house name house type 66 blocksview 1 face house_larg.x11 no_pick 1 x 1 end Object house_larg_west editor_folder construct/house name house type 66 face house_larg_west.x11 no_pick 1 client_type 25012 end More Object house_larg_west_2 editor_folder construct/house name house type 66 face house_larg_west.x11 no_pick 1 x 1 end Object house_long editor_folder construct/house name house type 66 blocksview 1 face house_long.x11 no_pick 1 client_type 25012 end More Object house_long_2 editor_folder construct/house name house type 66 blocksview 1 face house_long.x11 x 1 no_pick 1 end Object house_up editor_folder construct/house name house type 66 blocksview 1 face house_up.x11 no_pick 1 client_type 25012 end More Object house_up_2 editor_folder construct/house name house type 66 blocksview 1 face house_up.x11 y 1 no_pick 1 end Object house_small editor_folder construct/house name small house type 66 blocksview 1 face housesmall.111 no_pick 1 client_type 25012 end Object hut editor_folder construct/house type 66 blocksview 1 face hut.111 no_pick 1 client_type 25012 end Object hut_hori editor_folder construct/house type 66 name hut face hut_hori.x11 no_pick 1 end More Object hut_hori_2 editor_folder construct/house type 66 name hut face hut_hori.x11 no_pick 1 x 1 end Object hut_vert editor_folder construct/house type 66 name hut face hut_vert.x11 no_pick 1 end More Object hut_vert_2 editor_folder construct/house type 66 name hut face hut_vert.x11 no_pick 1 y 1 end Object inn editor_folder construct/house name inn face inn.x11 type 66 blocksview 1 no_pick 1 client_type 25012 end More Object inn_2 editor_folder construct/house name inn face inn.x11 type 66 blocksview 1 x 1 no_pick 1 end Object inn_fant editor_folder construct/house name inn face inn_fant.x11 type 66 blocksview 1 no_pick 1 client_type 25012 end More Object inn_fant_2 editor_folder construct/house name inn face inn_fant.x11 type 66 blocksview 1 x 1 no_pick 1 end Object minihouse editor_folder construct/house name small house type 66 blocksview 1 face minihouse.111 no_pick 1 client_type 25012 end Object small_temple editor_folder construct/house name small temple type 66 blocksview 1 face smalltemple.111 no_pick 1 client_type 25012 end Object small_temple2 editor_folder construct/house name small temple type 66 blocksview 1 face smalltemple2.111 no_pick 1 client_type 25012 end Object tavern editor_folder construct/house name tavern face tavern.111 type 66 blocksview 1 no_pick 1 client_type 25012 end Object woodhouse editor_folder construct/house type 66 blocksview 1 face woodhouse.111 no_pick 1 client_type 25012 end Object capitalhold_east editor_folder construct/keep type 66 face capitalhold_east.x11 name keiraku honrui no_pick 1 move_block all client_type 25012 end More Object capitalhold_2_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 x 1 no_pick 1 move_block all end More Object capitalhold_3_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 x 2 no_pick 1 move_block all end More Object capitalhold_4_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 y 1 no_pick 1 move_block all end More Object capitalhold_5_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 x 1 y 1 no_pick 1 move_block all end More Object capitalhold_6_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 x 2 y 1 no_pick 1 move_block all end More Object capitalhold_7_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 y 2 no_pick 1 move_block all end More Object capitalhold_8_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 x 1 y 2 no_pick 1 end More Object capitalhold_9_east editor_folder construct/keep name keiraku honrui type 66 face capitalhold_east.x11 x 2 y 2 no_pick 1 move_block all end Object capitalhold_west editor_folder construct/keep type 66 face capitalhold_west.x11 name capitalhold no_pick 1 move_block all client_type 25012 end More Object capitalhold_2_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 1 no_pick 1 move_block all end More Object capitalhold_3_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 2 no_pick 1 move_block all end More Object capitalhold_4_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 y 1 no_pick 1 move_block all end More Object capitalhold_5_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 1 y 1 no_pick 1 move_block all end More Object capitalhold_6_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 2 y 1 no_pick 1 move_block all end More Object capitalhold_7_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 y 2 no_pick 1 move_block all end More Object capitalhold_8_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 1 y 2 no_pick 1 end More Object capitalhold_9_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 2 y 2 no_pick 1 end More Object capitalhold_10_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 3 no_pick 1 move_block all end More Object capitalhold_11_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 3 y 1 no_pick 1 move_block all end More Object capitalhold_12_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 3 y 2 no_pick 1 end More Object capitalhold_13_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 4 no_pick 1 move_block all end More Object capitalhold_14_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 4 y 1 no_pick 1 move_block all end More Object capitalhold_15_west editor_folder construct/keep name capitalhold type 66 face capitalhold_west.x11 x 4 y 2 no_pick 1 move_block all end Object keep editor_folder construct/keep type 66 face keep.x11 animation keep anim_speed 10 client_anim_random 1 no_pick 1 client_type 25012 end More Object keep_2 editor_folder construct/keep type 66 face keep.x11 animation keep anim_speed 10 client_anim_random 1 no_pick 1 x 1 end More Object keep_3 editor_folder construct/keep type 66 face keep.x11 animation keep anim_speed 10 client_anim_random 1 no_pick 1 y 1 end More Object keep_4 editor_folder construct/keep type 66 face keep.x11 animation keep anim_speed 10 client_anim_random 1 no_pick 1 x 1 y 1 end Object keep_sym editor_folder construct/keep name keep face keep_sym.111 no_pick 1 type 66 client_type 25012 end Object chemney_1 editor_folder construct/roof name chemney face chemney_1.111 map_layer fly no_pick 1 end Object chemney_2 editor_folder construct/roof name chemney face chemney_2.111 map_layer fly no_pick 1 end Object roof_1 editor_folder construct/roof name grey roof face roof_1.111 move_block all -fly_high no_pick 1 end Object roof_2 editor_folder construct/roof name grey roof face roof_2.111 move_block all -fly_high no_pick 1 end Object roof_1red editor_folder construct/roof name red roof face roof_1red.111 move_block all -fly_high no_pick 1 end Object roof_2red editor_folder construct/roof name red roof face roof_2red.111 move_block all -fly_high no_pick 1 end Object roof_1blue editor_folder construct/roof name blue roof face roof_1blue.111 move_block all -fly_high no_pick 1 end Object roof_2blue editor_folder construct/roof name blue roof face roof_2blue.111 move_block all -fly_high no_pick 1 end Object roof_1green editor_folder construct/roof name green roof face roof_1green.111 move_block all -fly_high no_pick 1 end Object roof_2green editor_folder construct/roof name green roof face roof_2green.111 move_block all -fly_high no_pick 1 end Object cathedral editor_folder construct/temple name cathedral type 66 face cathedral.x11 no_pick 1 move_block all client_type 25012 end More Object cathedral_2 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 1 no_pick 1 move_block all end More Object cathedral_3 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 2 no_pick 1 move_block all end More Object cathedral_4 editor_folder construct/temple name cathedral type 66 face cathedral.x11 y 1 no_pick 1 move_block all end More Object cathedral_5 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 1 y 1 no_pick 1 move_block all end More Object cathedral_6 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 2 y 1 no_pick 1 move_block all end More Object cathedral_7 editor_folder construct/temple name cathedral type 66 face cathedral.x11 y 2 no_pick 1 move_block all end More Object cathedral_8 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 1 y 2 no_pick 1 move_block all end More Object cathedral_9 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 2 y 2 no_pick 1 move_block all end More Object cathedral_10 editor_folder construct/temple name cathedral type 66 face cathedral.x11 y 3 no_pick 1 move_block all end More Object cathedral_11 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 1 y 3 no_pick 1 end More Object cathedral_12 editor_folder construct/temple name cathedral type 66 face cathedral.x11 x 2 y 3 no_pick 1 move_block all end Object lyth_temple editor_folder construct/temple name Temple of Lythander type 66 blocksview 1 face lyth_temple.111 no_pick 1 end Object mos_temple editor_folder construct/temple name Temple of Mostrai type 66 blocksview 1 face mos_temple.111 no_pick 1 end Object shrine editor_folder construct/temple name shrine face shrine.111 type 66 no_pick 1 client_type 25012 end Object shrine_east editor_folder construct/temple name ichidou type 66 face shrine_east.x11 no_pick 1 client_type 25012 end More Object shrine_east_2 editor_folder construct/temple name ichidou type 66 face shrine_east.x11 no_pick 1 y 1 end Object shrine_east_r editor_folder construct/temple name ichidou type 66 face shrine_east_r.x11 no_pick 1 client_type 25012 end More Object shrine_east_r_2 editor_folder construct/temple name ichidou type 66 face shrine_east_r.x11 no_pick 1 y 1 end Object temple1 editor_folder construct/temple name temple face temple1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object temple1_2 editor_folder construct/temple name temple face temple1.x11 type 66 no_pick 1 move_block all x 1 end More Object temple1_3 editor_folder construct/temple name temple face temple1.x11 type 66 no_pick 1 y 1 end More Object temple1_4 editor_folder construct/temple name temple face temple1.x11 type 66 no_pick 1 x 1 y 1 end Object temple_ruin editor_folder construct/temple name ruined temple face temple_ruin.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object temple_ruin2 editor_folder construct/temple name ruined temple face temple_ruin.x11 type 66 no_pick 1 move_block all x 1 end More Object temple_ruin3 editor_folder construct/temple name ruined temple face temple_ruin.x11 type 66 no_pick 1 y 1 end More Object temple_ruin4 editor_folder construct/temple name ruined temple face temple_ruin.x11 type 66 no_pick 1 x 1 y 1 end Object city_tower editor_folder construct/tower name tower type 66 face city-tower.x11 no_pick 1 client_type 25012 end More Object city_tower_2 editor_folder construct/tower name tower type 66 face city-tower.x11 no_pick 1 y 1 end Object city_tower_east editor_folder construct/tower name tou type 66 face city_tower_east.x11 no_pick 1 client_type 25012 end More Object city_tower_east_2 editor_folder construct/tower name tou type 66 face city_tower_east.x11 no_pick 1 y 1 end Object city_tower_fant editor_folder construct/tower name tower type 66 face city_tower_fant.x11 no_pick 1 client_type 25012 end More Object city_tower_fant_2 editor_folder construct/tower name tower type 66 face city_tower_fant.x11 no_pick 1 y 1 end Object city_tower_northwest editor_folder construct/tower name tower type 66 face city_tower_northwest.x11 no_pick 1 end More Object city_tower_northwest_2 editor_folder construct/tower name tower type 66 face city_tower_northwest.x11 no_pick 1 y 1 end Object city_tower_west editor_folder construct/tower name tower type 66 face city-tower_west.x11 no_pick 1 client_type 25012 end More Object city_tower_west_2 editor_folder construct/tower name tower type 66 face city-tower_west.x11 no_pick 1 y 1 end Object lighthouse editor_folder construct/tower name Lighthouse face lighthouse.x11 type 66 no_pick 1 glow_radius 4 client_type 25012 end More Object lighthouse_2 editor_folder construct/tower face lighthouse.x11 y 1 end Object lighthouse_northwest editor_folder construct/tower name Lighthouse face lighthouse_northwest.x11 type 66 no_pick 1 glow_radius 4 client_type 25012 end More Object lighthouse_northwest_2 editor_folder construct/tower face lighthouse_northwest.x11 y 1 end Object lighthouse_west editor_folder construct/tower name Lighthouse face lighthouse_west.x11 type 66 no_pick 1 glow_radius 4 client_type 25012 end More Object lighthouse_west_2 editor_folder construct/tower face lighthouse_west.x11 y 1 end Object outpost_tower editor_folder construct/tower name outpost tower type 66 face out_tower.x11 no_pick 1 client_type 25012 end More Object outpost_tower_2 editor_folder construct/tower name outpost tower type 66 face out_tower.x11 no_pick 1 x 1 end More Object outpost_tower_3 editor_folder construct/tower name outpost tower type 66 face out_tower.x11 no_pick 1 y 1 end More Object outpost_tower_4 editor_folder construct/tower name outpost tower type 66 face out_tower.x11 no_pick 1 x 1 y 1 end Object pagoda_tower_east editor_folder construct/tower face pagoda_tower_east.x11 name tou type 66 no_pick 1 client_type 25012 end More Object pagoda_tower_2_east editor_folder construct/tower name tou face pagoda_tower_east.x11 type 66 no_pick 1 x 1 end More Object pagoda_tower_3_east editor_folder construct/tower name tou face pagoda_tower_east.x11 type 66 no_pick 1 y 1 end More Object pagoda_tower_4_east editor_folder construct/tower name tou face pagoda_tower_east.x11 type 66 no_pick 1 x 1 y 1 end More Object pagoda_tower_5_east editor_folder construct/tower name tou face pagoda_tower_east.x11 type 66 no_pick 1 y 2 end More Object pagoda_tower_6_east editor_folder construct/tower name tou face pagoda_tower_east.x11 type 66 no_pick 1 x 1 y 2 end Object ruined_tower editor_folder construct/tower name ruined tower type 66 face ruined_tower.x11 no_pick 1 client_type 25012 end More Object ruined_tower_2 editor_folder construct/tower name ruined_tower type 66 face ruined_tower.x11 no_pick 1 y 1 end Object s_tower1 editor_folder construct/tower name spiral tower face s_tower1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object s_tower1_2 editor_folder construct/tower name spiral tower face s_tower1.x11 type 66 no_pick 1 y 1 end Object s_tower2 editor_folder construct/tower name spiral tower face s_tower2.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object s_tower2_2 editor_folder construct/tower name spiral tower face s_tower2.x11 type 66 no_pick 1 y 1 end Object s_tower2_top editor_folder construct/tower name spiral tower face s_tower2_top.x11 type 66 no_pick 1 move_block all client_type 25012 end Object tower_a editor_folder construct/tower name tower type 66 face tower_a.x11 no_pick 1 client_type 25012 end More Object tower_b editor_folder construct/tower name tower type 66 face tower_a.x11 y 1 no_pick 1 end Object tower_tob editor_folder construct/tower name tower type 66 face tower_tob.111 no_pick 1 client_type 25012 end Object tower_tob_fant editor_folder construct/tower name tower type 66 face tower_tob_fant.111 no_pick 1 client_type 25012 end Object tower_tob_northwest editor_folder construct/tower name tower type 66 face tower_tob_northwest.111 no_pick 1 end Object wizard_tower editor_folder construct/tower name tower type 66 face wizard_tower.x11 animation wizard_tower anim_speed 3 client_anim_random 1 no_pick 1 client_type 25012 end More Object wizard_tower2 editor_folder construct/tower name tower type 66 face wizard_tower.x11 animation wizard_tower anim_speed 3 client_anim_random 1 y 1 no_pick 1 end Object a_civic editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object a_civic_2 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 move_block all x 1 end More Object a_civic_3 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 x 2 end More Object a_civic_4 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 y 1 end More Object a_civic_5 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 x 1 y 1 end More Object a_civic_6 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 x 2 y 1 end More Object a_civic_7 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 y 2 end More Object a_civic_8 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 x 1 y 2 end More Object a_civic_9 editor_folder construct/town name civic building face a_civic.x11 type 66 no_pick 1 x 2 y 2 end Object barn editor_folder construct/town type 66 face barn.x11 no_pick 1 client_type 25012 end More Object barn_2 editor_folder construct/town name barn type 66 face barn.x11 no_pick 1 x 1 end More Object barn_3 editor_folder construct/town name barn type 66 face barn.x11 no_pick 1 y 1 end More Object barn_4 editor_folder construct/town name barn type 66 face barn.x11 no_pick 1 x 1 y 1 end Object barn2 editor_folder construct/town type 66 face barn2.x11 no_pick 1 client_type 25012 end More Object barn2_2 editor_folder construct/town name barn type 66 face barn2.x11 no_pick 1 x 1 end More Object barn2_3 editor_folder construct/town name barn type 66 face barn2.x11 no_pick 1 y 1 end More Object barn2_4 editor_folder construct/town name barn type 66 face barn2.x11 no_pick 1 x 1 y 1 end Object barn2_northwest editor_folder construct/town name barn type 66 face barn2_northwest.x11 no_pick 1 client_type 25012 end More Object barn2_northwest_2 editor_folder construct/town name barn type 66 face barn2_northwest.x11 no_pick 1 x 1 end More Object barn2_northwest_3 editor_folder construct/town name barn type 66 face barn2_northwest.x11 no_pick 1 y 1 end More Object barn2_northwest_4 editor_folder construct/town name barn type 66 face barn2_northwest.x11 no_pick 1 x 1 y 1 end Object barn_west editor_folder construct/town name barn type 66 face barn_west.x11 no_pick 1 client_type 25012 end More Object barn_west_2 editor_folder construct/town name barn type 66 face barn_west.x11 no_pick 1 x 1 end More Object barn_west_3 editor_folder construct/town name barn type 66 face barn_west.x11 no_pick 1 y 1 end More Object barn_west_4 editor_folder construct/town name barn type 66 face barn_west.x11 no_pick 1 x 1 y 1 end Object building10_east editor_folder construct/town face building10_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building10_2_east editor_folder construct/town name tatemono face building10_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building10_3_east editor_folder construct/town name tatemono face building10_east.x11 type 66 no_pick 1 y 1 end More Object building10_4_east editor_folder construct/town name tatemono face building10_east.x11 type 66 no_pick 1 x 1 y 1 end Object building1_east editor_folder construct/town face building1_east.111 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building1_2_east editor_folder construct/town name tatemono face building1_east.111 type 66 no_pick 1 move_block all x 1 end More Object building1_3_east editor_folder construct/town name tatemono face building1_east.111 type 66 no_pick 1 y 1 end More Object building1_4_east editor_folder construct/town name tatemono face building1_east.111 type 66 no_pick 1 x 1 y 1 end Object building2_east editor_folder construct/town face building2_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building2_2_east editor_folder construct/town name tatemono face building2_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building2_3_east editor_folder construct/town name tatemono face building2_east.x11 type 66 no_pick 1 y 1 end More Object building2_4_east editor_folder construct/town name tatemono face building2_east.x11 type 66 no_pick 1 x 1 y 1 end Object building3_east editor_folder construct/town face building3_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building3_2_east editor_folder construct/town name tatemono face building3_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building3_3_east editor_folder construct/town name tatemono face building3_east.x11 type 66 no_pick 1 y 1 end More Object building3_4_east editor_folder construct/town name tatemono face building3_east.x11 type 66 no_pick 1 x 1 y 1 end Object building4_east editor_folder construct/town face building4_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building4_2_east editor_folder construct/town name tatemono face building4_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building4_3_east editor_folder construct/town name tatemono face building4_east.x11 type 66 no_pick 1 y 1 end More Object building4_4_east editor_folder construct/town name tatemono face building4_east.x11 type 66 no_pick 1 x 1 y 1 end Object building5_east editor_folder construct/town face building5_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building5_2_east editor_folder construct/town name tatemono face building5_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building5_3_east editor_folder construct/town name tatemono face building5_east.x11 type 66 no_pick 1 y 1 end More Object building5_4_east editor_folder construct/town name tatemono face building5_east.x11 type 66 no_pick 1 x 1 y 1 end Object building6_east editor_folder construct/town face building6_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building6_2_east editor_folder construct/town name tatemono face building6_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building6_3_east editor_folder construct/town name tatemono face building6_east.x11 type 66 no_pick 1 y 1 end More Object building6_4_east editor_folder construct/town name tatemono face building6_east.x11 type 66 no_pick 1 x 1 y 1 end Object building7_east editor_folder construct/town face building7_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building7_2_east editor_folder construct/town name tatemono face building7_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building7_3_east editor_folder construct/town name tatemono face building7_east.x11 type 66 no_pick 1 y 1 end More Object building7_4_east editor_folder construct/town name tatemono face building7_east.x11 type 66 no_pick 1 x 1 y 1 end Object building8_east editor_folder construct/town face building8_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building8_2_east editor_folder construct/town name tatemono face building8_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building8_3_east editor_folder construct/town name tatemono face building8_east.x11 type 66 no_pick 1 y 1 end More Object building8_4_east editor_folder construct/town name tatemono face building8_east.x11 type 66 no_pick 1 x 1 y 1 end Object building9_east editor_folder construct/town face building9_east.x11 name tatemono type 66 no_pick 1 move_block all client_type 25012 end More Object building9_2_east editor_folder construct/town name tatemono face building9_east.x11 type 66 no_pick 1 move_block all x 1 end More Object building9_3_east editor_folder construct/town name tatemono face building9_east.x11 type 66 no_pick 1 y 1 end More Object building9_4_east editor_folder construct/town name tatemono face building9_east.x11 type 66 no_pick 1 x 1 y 1 end Object church editor_folder construct/town type 66 face church.x11 no_pick 1 client_type 25012 end More Object church_2 editor_folder construct/town name church type 66 face church.x11 x 1 no_pick 1 end More Object church_3 editor_folder construct/town name church type 66 face church.x11 y 1 no_pick 1 end More Object church_4 editor_folder construct/town name church type 66 face church.x11 x 1 y 1 no_pick 1 end Object church_fant editor_folder construct/town name church type 66 face church_fant.x11 no_pick 1 client_type 25012 end More Object church_2_fant editor_folder construct/town name church type 66 face church_fant.x11 x 1 no_pick 1 end More Object church_3_fant editor_folder construct/town name church type 66 face church_fant.x11 y 1 no_pick 1 end More Object church_4_fant editor_folder construct/town name church type 66 face church_fant.x11 x 1 y 1 no_pick 1 end Object collesium editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 client_type 25012 end More Object collesium_2 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 1 end More Object collesium_3 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 2 end More Object collesium_4 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 3 end More Object collesium_5 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 4 end More Object collesium_6 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 y 1 end More Object collesium_7 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 1 y 1 end More Object collesium_8 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 2 y 1 end More Object collesium_9 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 3 y 1 end More Object collesium_10 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 4 y 1 end More Object collesium_11 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 y 2 end More Object collesium_12 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 1 y 2 end More Object collesium_13 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 2 y 2 end More Object collesium_14 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 3 y 2 end More Object collesium_15 editor_folder construct/town name collesium face collesium.x11 type 66 no_pick 1 x 4 y 2 end Object courthouse editor_folder construct/town face courthouse.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object courthouse_2 editor_folder construct/town name courthouse face courthouse.x11 type 66 no_pick 1 move_block all x 1 end More Object courthouse_3 editor_folder construct/town name courthouse face courthouse.x11 type 66 no_pick 1 y 1 end More Object courthouse_4 editor_folder construct/town name courthouse face courthouse.x11 type 66 no_pick 1 x 1 y 1 end Object guild editor_folder construct/town face guild.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object guild_2 editor_folder construct/town name guild face guild.x11 type 66 no_pick 1 move_block all x 1 end More Object guild_3 editor_folder construct/town name guild face guild.x11 type 66 no_pick 1 y 1 end More Object guild_4 editor_folder construct/town name guild face guild.x11 type 66 no_pick 1 x 1 y 1 end Object guild_fant editor_folder construct/town face guild_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object guild_2_fant editor_folder construct/town name guild face guild_fant.x11 type 66 no_pick 1 move_block all x 1 end More Object guild_3_fant editor_folder construct/town name guild face guild_fant.x11 type 66 no_pick 1 y 1 end More Object guild_4_fant editor_folder construct/town name guild face guild_fant.x11 type 66 no_pick 1 x 1 y 1 end Object guild_northwest editor_folder construct/town face guild_northwest.x11 type 66 no_pick 1 move_block all end More Object guild_2_northwest editor_folder construct/town name guild face guild_northwest.x11 type 66 no_pick 1 move_block all x 1 end More Object guild_3_northwest editor_folder construct/town name guild face guild_northwest.x11 type 66 no_pick 1 y 1 end More Object guild_4_northwest editor_folder construct/town name guild face guild_northwest.x11 type 66 no_pick 1 x 1 y 1 end Object guild_west editor_folder construct/town face guild_west.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object guild_2_west editor_folder construct/town name guild face guild_west.x11 type 66 no_pick 1 move_block all x 1 end More Object guild_3_west editor_folder construct/town name guild face guild_west.x11 type 66 no_pick 1 y 1 end More Object guild_4_west editor_folder construct/town name guild face guild_west.x11 type 66 no_pick 1 x 1 y 1 end Object hovels editor_folder construct/town name houses face hovels.111 type 66 no_pick 1 client_type 25012 end Object hovels2 editor_folder construct/town name hovels face hovels2.x11 type 66 no_pick 1 client_type 25012 end More Object hovels2_2 editor_folder construct/town name hovels face hovels2.x11 type 66 no_pick 1 x 1 end More Object hovels2_3 editor_folder construct/town name hovels face hovels2.x11 type 66 no_pick 1 y 1 end More Object hovels2_4 editor_folder construct/town name hovels face hovels2.x11 type 66 no_pick 1 x 1 y 1 end Object l_shop1 editor_folder construct/town name shop face l_shop1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object l_shop1_2 editor_folder construct/town name shop face l_shop1.x11 type 66 no_pick 1 move_block all x 1 end More Object l_shop1_3 editor_folder construct/town name shop face l_shop1.x11 type 66 no_pick 1 y 1 end More Object l_shop1_4 editor_folder construct/town name shop face l_shop1.x11 type 66 no_pick 1 x 1 y 1 end Object market1 editor_folder construct/town name market face market1.111 type 66 no_pick 1 client_type 25012 end Object market1_east editor_folder construct/town name shijou face market1_east.111 type 66 no_pick 1 blocksview 1 client_type 25012 end Object market2 editor_folder construct/town name market face market2.111 type 66 no_pick 1 client_type 25012 end Object market2_east editor_folder construct/town name shijou face market2_east.111 type 66 no_pick 1 blocksview 1 client_type 25012 end Object market3 editor_folder construct/town name market face market3.111 type 66 no_pick 1 client_type 25012 end Object market3_east editor_folder construct/town name shijou face market3_east.111 type 66 no_pick 1 blocksview 1 client_type 25012 end Object prison editor_folder construct/town face prison.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object prison_2 editor_folder construct/town name prison face prison.x11 type 66 no_pick 1 move_block all x 1 end More Object prison_3 editor_folder construct/town name prison face prison.x11 type 66 no_pick 1 y 1 end More Object prison_4 editor_folder construct/town name prison face prison.x11 type 66 no_pick 1 x 1 y 1 end Object prison_fant editor_folder construct/town name prison face prison_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object prison_2_fant editor_folder construct/town name prison face prison_fant.x11 type 66 no_pick 1 move_block all x 1 end More Object prison_3_fant editor_folder construct/town name prison face prison_fant.x11 type 66 no_pick 1 y 1 end More Object prison_4_fant editor_folder construct/town name prison face prison_fant.x11 type 66 no_pick 1 x 1 y 1 end Object r_house1 editor_folder construct/town name apartments face r_house1.111 type 66 no_pick 1 client_type 25012 end Object r_house2 editor_folder construct/town name apartments face r_house2.111 type 66 no_pick 1 client_type 25012 end Object rl_house1 editor_folder construct/town name apartments face rl_house1.x11 type 66 no_pick 1 client_type 25012 end More Object rl_house1_2 editor_folder construct/town name apartments face rl_house1.x11 type 66 no_pick 1 x 1 end More Object rl_house1_3 editor_folder construct/town name apartments face rl_house1.x11 type 66 no_pick 1 y 1 end More Object rl_house1_4 editor_folder construct/town name apartments face rl_house1.x11 type 66 no_pick 1 x 1 y 1 end Object rl_house2 editor_folder construct/town name apartments face rl_house2.x11 type 66 no_pick 1 client_type 25012 end More Object rl_house2_2 editor_folder construct/town name apartments face rl_house2.x11 type 66 no_pick 1 x 1 end More Object rl_house2_3 editor_folder construct/town name apartments face rl_house2.x11 type 66 no_pick 1 y 1 end More Object rl_house2_4 editor_folder construct/town name apartments face rl_house2.x11 type 66 no_pick 1 x 1 y 1 end Object rl_house3 editor_folder construct/town name apartments face rl_house3.x11 type 66 no_pick 1 client_type 25012 end More Object rl_house3_2 editor_folder construct/town name apartments face rl_house3.x11 type 66 no_pick 1 x 1 end More Object rl_house3_3 editor_folder construct/town name apartments face rl_house3.x11 type 66 no_pick 1 y 1 end More Object rl_house3_4 editor_folder construct/town name apartments face rl_house3.x11 type 66 no_pick 1 x 1 y 1 end Object rl_house_west editor_folder construct/town name apartments face rl_house_west.x11 type 66 no_pick 1 client_type 25012 end More Object rl_house_west_2 editor_folder construct/town name apartments face rl_house_west.x11 type 66 no_pick 1 x 1 end More Object rl_house_west_3 editor_folder construct/town name apartments face rl_house_west.x11 type 66 no_pick 1 y 1 end More Object rl_house_west_4 editor_folder construct/town name apartments face rl_house_west.x11 type 66 no_pick 1 x 1 y 1 end Object s_house1 editor_folder construct/town name house face s_house1.111 type 66 no_pick 1 client_type 25012 end Object s_shop1 editor_folder construct/town name small shop face s_shop1.111 type 66 no_pick 1 client_type 25012 end Object s_shop2 editor_folder construct/town name small shop face s_shop2.111 type 66 no_pick 1 client_type 25012 end Object slum1 editor_folder construct/town name slum face slum1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object slum1_2 editor_folder construct/town name slum face slum1.x11 type 66 no_pick 1 y 1 end Object slum2 editor_folder construct/town name slum face slum2.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object slum2_2 editor_folder construct/town name slum face slum2.x11 type 66 no_pick 1 y 1 end Object slum3 editor_folder construct/town name slum face slum3.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object slum3_2 editor_folder construct/town name slum face slum3.x11 type 66 no_pick 1 y 1 end Object t_house1 editor_folder construct/town name town house face t_house1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object t_house1_2 editor_folder construct/town name town house face t_house1.x11 type 66 no_pick 1 move_block all x 1 end More Object t_house1_3 editor_folder construct/town name town house face t_house1.x11 type 66 no_pick 1 y 1 end More Object t_house1_4 editor_folder construct/town name town house face t_house1.x11 type 66 no_pick 1 x 1 y 1 end Object t_house2 editor_folder construct/town name town house face t_house2.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object t_house2_2 editor_folder construct/town name town house face t_house2.x11 type 66 no_pick 1 move_block all x 1 end More Object t_house2_3 editor_folder construct/town name town house face t_house2.x11 type 66 no_pick 1 y 1 end More Object t_house2_4 editor_folder construct/town name town house face t_house2.x11 type 66 no_pick 1 x 1 y 1 end Object t_house2_fant editor_folder construct/town name town house face t_house2_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object t_house2_2_fant editor_folder construct/town name town house face t_house2_fant.x11 type 66 no_pick 1 move_block all x 1 end More Object t_house2_3_fant editor_folder construct/town name town house face t_house2_fant.x11 type 66 no_pick 1 y 1 end More Object t_house2_4_fant editor_folder construct/town name town house face t_house2_fant.x11 type 66 no_pick 1 x 1 y 1 end Object university editor_folder construct/town name university face university.x11 type 66 no_pick 1 client_type 25012 end More Object university_2 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 1 end More Object university_3 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 2 end More Object university_4 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 3 end More Object university_5 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 4 end More Object university_6 editor_folder construct/town name university face university.x11 type 66 no_pick 1 y 1 end More Object university_7 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 1 y 1 end More Object university_8 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 2 y 1 end More Object university_9 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 3 y 1 end More Object university_10 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 4 y 1 end More Object university_11 editor_folder construct/town name university face university.x11 type 66 no_pick 1 y 2 end More Object university_12 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 1 y 2 end More Object university_13 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 2 y 2 end More Object university_14 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 3 y 2 end More Object university_15 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 4 y 2 end More Object university_16 editor_folder construct/town name university face university.x11 type 66 no_pick 1 y 3 end More Object university_17 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 1 y 3 end More Object university_18 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 2 y 3 end More Object university_19 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 3 y 3 end More Object university_20 editor_folder construct/town name university face university.x11 type 66 no_pick 1 x 4 y 3 end Object zoo_1 editor_folder construct/town name zoo type 66 face zoo.x11 no_pick 1 client_type 25012 end More Object zoo_2 editor_folder construct/town name zoo face zoo.x11 type 66 no_pick 1 x 1 end More Object zoo_3 editor_folder construct/town name zoo type 66 face zoo.x11 no_pick 1 y 1 end More Object zoo_4 editor_folder construct/town name zoo type 66 face zoo.x11 no_pick 1 x 1 y 1 end Object intermediate_window_11 editor_folder construct/window name intermediate_window face intermediate_window_1.111 end More Object intermediate_window_12 editor_folder construct/window name intermediate_window face intermediate_window_1.111 x 1 end Object intermediate_window_21 editor_folder construct/window name intermediate_window face intermediate_window_2.111 end Object window_31 editor_folder construct/window name window face window_3.111 move_block all end More Object window_32 editor_folder construct/window name window face window_3.111 y 1 move_block all end More Object window_33 editor_folder construct/window name window face window_3.111 y 2 move_block all end Object window_21 editor_folder construct/window name window face window_2.111 move_block all end More Object window_22 editor_folder construct/window name window face window_2.111 y 1 move_block all end More Object window_23 editor_folder construct/window name window face window_2.111 y 2 move_block all end More Object window_24 editor_folder construct/window name window face window_2.111 x 1 move_block all end More Object window_25 editor_folder construct/window name window face window_2.111 x 1 y 1 move_block all end More Object window_26 editor_folder construct/window name window face window_2.111 x 1 y 2 move_block all end Object window_41 editor_folder construct/window name window face window_4.111 move_block all end More Object window_42 editor_folder construct/window name window face window_4.111 y 1 move_block all end More Object window_43 editor_folder construct/window name window face window_4.111 y 2 move_block all end More Object window_44 editor_folder construct/window name window face window_4.111 x 1 move_block all end More Object window_45 editor_folder construct/window name window face window_4.111 x 1 y 1 move_block all end More Object window_46 editor_folder construct/window name window face window_4.111 x 1 y 2 move_block all end Object window_arcade_11 editor_folder construct/window name window face window_arcade_1.111 move_block all end More Object window_arcade_12 editor_folder construct/window name window face window_arcade_1.111 y 1 move_block all end More Object window_arcade_13 editor_folder construct/window name window face window_arcade_1.111 y 2 move_block all end More Object window_arcade_14 editor_folder construct/window name window face window_arcade_1.111 y 3 end More Object window_arcade_15 editor_folder construct/window name window face window_arcade_1.111 x 1 move_block all end More Object window_arcade_16 editor_folder construct/window name window face window_arcade_1.111 x 1 y 1 move_block all end More Object window_arcade_17 editor_folder construct/window name window face window_arcade_1.111 x 1 y 2 move_block all end More Object window_arcade_18 editor_folder construct/window name window face window_arcade_1.111 x 1 y 3 end Object anthrax editor_folder disease name anthrax type 158 attacktype 1048576 invisible 1 wc 5 magic 1 Str -3 Con -4 Dex -3 maxhp 100 dam -5 maxgrace 23 food -1 speed 0.05 last_sp 50 maxsp 0 ac 0 last_eat 0 exp 1000 hp 1 sp 1 msg You feel feverish. Your muscles spasm oddly.... Breathing is difficult. endmsg race animal level 12 end Object arthritis editor_folder disease name arthritis type 158 invisible 1 attacktype 1048576 wc 5 magic 0 Str -1 Dex -2 maxhp 1 maxgrace -1 food -1 speed 0.001 last_sp 0 maxsp 0 ac 1 last_eat 0 exp 10000 msg Your joints are swollen. You feel weak and less dextrous. endmsg race * level 7 end Object atheletes_foot editor_folder disease name athelete's foot type 158 invisible 1 attacktype 1 wc 1 magic 1 Dex -1 maxhp 1 speed 0.005 maxgrace 10 last_sp 0 maxsp 0 ac 0 last_eat 0 exp 100 msg Your feet itch. They burn. endmsg race * level 5 end Object disease_cold editor_folder disease name cold type 158 invisible 1 attacktype 1048576 wc 20 magic 3 Con -1 Cha -1 maxhp 10 dam 1 maxgrace 6 last_grace 1 food -1 speed 0.05 last_sp 50 maxsp 0 ac 0 last_eat 0 exp 100 hp 1 sp 1 msg You develop a sniffle. endmsg race * level 2 end Object creeping_frost editor_folder disease name creeping frost title You freeze type 158 face fireball.111 no_pick 1 no_drop 1 attacktype 16 wc 3 magic 0 maxhp 0 dam -10 maxgrace 10 food -1 speed 0.1 last_sp 50 maxsp 0 ac 0 last_eat 0 last_heal 1 exp 10000 hp 1 sp 1 msg Frost creeps over your body! endmsg race * level 10 end Object creeping_frost_immunity editor_folder disease name creeping frost type 98 level 127 invisible 1 no_pick 1 no_drop 1 end Object diarrhea editor_folder disease name the runs type 158 invisible 1 attacktype 1 other_arch disgusting_puddle wc 0 magic 0 maxhp 1 dam 0 maxgrace 10 speed 0.001 last_sp 0 maxsp 0 last_eat 0 exp 100 msg You can't control your sphincter. You have a messy accident. Yuck! endmsg race * level 5 end Object disgusting_puddle editor_folder disease name stinking puddle of diarrhea type 72 face icor.111 animation disgusting_puddle is_used_up 1 speed 0.005 food 1 weight 20 nrof 1 end Object trap_diseased_needle editor_folder disease name diseased needle type 154 face needle.111 randomitems needle_diseases speed 1 hp 1 msg You are pricked by a needle! endmsg animation trap_diseased_needle level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 10 Cha 20 end Object ebola editor_folder disease name Red Death type 158 invisible 1 attacktype 1048576 wc 30 magic -1 Str -3 last_grace 5 Con -4 Dex -2 Wis -2 Int -4 Cha -7 maxhp 5 dam -10 maxgrace 15 food -1 speed 0.05 last_sp 50 maxsp 0 ac 0 last_eat 0 exp 10000 hp 1 sp 1 msg Blood leaks out of your eyes and your pores! endmsg race * level 10 end Object egg_disease editor_folder disease name egg disease type 158 invisible 1 attacktype 1 other_arch chicken_egg wc 0 magic 0 maxhp 1 dam 0 maxgrace 5 speed 0.001 last_sp 0 maxsp 0 last_eat 0 exp 100 msg Buck, buck, buck, buck! You lay an EGG!! You feel ridiculous. endmsg race * level 5 end Object flaming_fart editor_folder disease name flaming farts type 158 invisible 1 attacktype 1 other_arch burnout wc 0 magic 0 maxhp 1 dam 0 maxgrace 10 speed 0.001 last_sp 0 maxsp 0 last_eat 0 exp 100 msg You blow a great fart. It ignites. My God, the REEK! endmsg race * level 5 end Object flu editor_folder disease name flu type 158 invisible 1 attacktype 1048576 wc 20 last_grace 1 magic 3 Str -1 Con -1 Dex -1 Wis -1 Int -1 Cha -1 maxhp 10 dam 2 maxgrace 6 food -1 speed 0.05 last_sp 50 maxsp 0 ac 0 last_eat 0 exp 100 hp 1 sp 1 msg You have aches and fever, and you feel nauseous. endmsg race * level 2 end Object immolation editor_folder disease name immolation other_arch burnout title You set fire to type 158 face fireball.111 no_pick 1 startequip 1 invisible 1 no_drop 1 attacktype 4 wc 3 magic 0 maxhp 0 dam -10 maxgrace 11 food -1 speed 0.1 last_sp 50 maxsp 0 ac 0 last_eat 0 last_heal 1 exp 10000 hp 1 sp 1 msg You burn! endmsg race *,undead level 10 last_grace 10 end Object immolation_immunity editor_folder disease name immolation startequip 1 type 98 level 127 invisible 1 no_pick 1 no_drop 1 end Object immunity editor_folder disease title immunity face bone_head.111 type 98 invisible 1 no_pick 1 no_drop 1 end Object incontinence editor_folder disease name lack of bladder control type 158 invisible 1 attacktype 1 other_arch reeking_urine wc 0 magic 0 maxhp 1 dam 0 maxgrace 20 speed 0.001 last_sp 0 maxsp 0 last_eat 0 exp 100 msg You can't control your bladder. You have a messy accident. Yuck! endmsg race * level 5 end Object reeking_urine editor_folder disease name reeking puddle of urine type 72 face residue.111 is_used_up 1 speed 0.0002 food 1 weight 20 nrof 1 end Object insanity editor_folder disease name insanity type 158 invisible 1 attacktype 32 wc 10 magic 0 Wis -1 Int -1 maxhp 1 dam 1 maxgrace -1 food -1 speed 0.001 last_sp 0 maxsp 0 ac 3 last_eat 0 exp 10000 msg You start gibbering incoherently. You forget where you are and what you were doing. endmsg race * level 15 end Object leprosy editor_folder disease name leprosy type 158 invisible 1 attacktype 1048576 other_arch leprous_skin wc 10 magic 0 Str -1 Con -1 Dex -1 Cha -2 maxhp 1 dam 1 maxgrace -1 food -1 speed 0.005 last_sp 0 maxsp 0 ac 5 last_eat 0 exp 1000 hp 1 sp 1 msg Splotches are spreading around your body. You feel disgusted with yourself. A piece of skin flakes off and falls to the ground. endmsg race * level 5 end Object leprous_skin editor_folder disease name leprous flake of skin face skin.111 type 72 food 5 weight 7 nrof 1 end Object bubonic_plague editor_folder disease name Black Death type 158 attacktype 1048576 invisible 1 wc 10 magic -1 last_grace 1 Str -3 Con -4 Dex -3 Cha -4 maxhp 7 dam -11 maxgrace 10 food -1 speed 0.05 last_sp 50 maxsp 0 ac 0 last_eat 0 exp 10000 hp 1 sp 1 msg You have aches and fever, and you feel nauseous. endmsg race human,goblin,giant,troll,animal,insect level 15 end Object pneumonic_plague editor_folder disease name pneumonic plague type 158 attacktype 1048576 invisible 1 wc 20 last_grace 1 magic 4 Str -3 Con -4 Dex -3 Cha -4 maxhp 7 dam -11 maxgrace 15 food -1 speed 0.05 last_sp 50 maxsp 0 ac 0 last_eat 0 exp 10000 hp 1 sp 1 msg You cough up some nasty green phlegm. endmsg race * level 15 end Object rabies editor_folder disease name rabies type 158 invisible 1 attacktype 1048608 other_arch puddle_of_saliva wc 10 magic 1 Str -2 Dex -2 Cha -10 maxhp 3 dam 2 maxgrace -1 food -1 speed 0.01 last_sp 50 maxsp 2 ac 2 last_eat 0 exp 5000 hp 1 sp 1 msg You notice everyone is looking at you with evil intent. You must kill them! You begin to salivate. endmsg race * level 12 end Object puddle_of_saliva editor_folder disease name puddle of froth and saliva face residue.111 is_used_up 1 speed 0.0002 type 72 food 2 weight 2 nrof 1 end Object scurvy editor_folder disease name scurvy type 158 invisible 1 attacktype 1 other_arch tooth wc 0 Con -1 magic 0 maxhp 1 dam 0 maxgrace 15 speed 0.001 last_sp 0 maxsp 0 last_eat 0 exp 100 msg You spit out a tooth. Better increase that dietary vitamin C! endmsg race * level 5 end Object smallpox editor_folder disease name smallpox type 158 invisible 1 attacktype 1048576 wc 20 last_grace 1 magic -3 Str -1 Con -4 Dex -1 maxhp 5 dam -10 maxgrace 12 food -1 speed 0.08 last_sp 0 maxsp 0 ac 0 last_eat 0 exp 10000 hp 1 sp 1 msg You have a nasty rash all over you. Are those pustules? endmsg race goblin,human,troll,giant,dwarf level 20 end Object symptom editor_folder disease face bone_head.111 type 159 invisible 1 speed 0.001 end Object tapeworms editor_folder disease name tapeworms type 158 invisible 1 attacktype 1 wc 1 magic 1 maxhp 1 maxgrace -1 food -1 speed 0.001 last_sp 0 maxsp 0 ac 0 last_eat 1 exp 100 msg You feel more hungry than usual. You also feel an urge to refer to yourself in the plural. endmsg race * level 5 end Object tooth_decay editor_folder disease name tooth decay type 158 other_arch tooth invisible 1 attacktype 1 wc 1 magic 1 Cha -1 maxhp 1 maxgrace 24 speed 0.005 last_sp 0 maxsp 0 ac 0 last_eat 0 exp 100 msg A tooth wiggles loose and falls to the ground. You should brush more. Have I mentioned that your breath is disgusting, too? endmsg race * level 5 end Object typhoid editor_folder disease name typhoid type 158 attacktype 1048576 invisible 1 wc 25 last_grace 1 magic -1 Str -3 Con -4 Dex -3 maxhp 5 dam -7 maxgrace 16 food -1 speed 0.05 last_sp 30 maxsp 0 ac 0 last_eat 0 exp 1000 hp 1 sp 1 msg You feel feverish. Your muscles spasm oddly.... Breathing is difficult. endmsg race human,goblin,giant,troll level 12 end Object warts editor_folder disease name warts type 158 invisible 1 attacktype 1 wc 1 magic 1 Cha -1 maxhp 1 maxgrace 50 speed 0.001 last_sp 0 maxsp 0 ac 0 last_eat 0 exp 100 msg You have warts. They are ugly and annoying. endmsg race * level 5 end Object door_0 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_0.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_1_1 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_1.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_1_3 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_2.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2_2_1 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_3.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_1_2 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_4.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2_1_1 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_5.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2_2_2 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_6.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_3_2 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_7.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_1_4 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_8.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2_2_4 editor_folder door/Door name door randomitems door move_block all blocksview 1 face door_9.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2_1_2 editor_folder door/Door randomitems door name door move_block all blocksview 1 face door_A.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_3_1 editor_folder door/Door randomitems door name door move_block all blocksview 1 face door_B.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2_2_3 editor_folder door/Door randomitems door name door move_block all blocksview 1 face door_C.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_3_4 editor_folder door/Door randomitems door name door move_block all blocksview 1 face door_D.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_3_3 editor_folder door/Door randomitems door name door move_block all blocksview 1 face door_E.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_4 editor_folder door/Door randomitems door name door move_block all blocksview 1 face door_F.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object key2 editor_folder door/Locked name strange key race keys slaying set_individual_value face key2.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object blue_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_blue.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object brown_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_brown.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object darkgray_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_darkgray.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object darkgreen_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_darkgreen.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object gray_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_gray.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object green_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_green.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object magenta_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_magenta.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object red_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_red.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object white_key editor_folder door/Locked name strange key race keys slaying set_individual_value face key_white.111 type 21 value 100 weight 100 name_pl strange keys client_type 810 end Object locked_door1 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor1.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_door2 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor2.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_blue_door1 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor_blue1.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_blue_door2 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor_blue2.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_brown_door1 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor_brown1.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_brown_door2 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor_brown2.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_white_door1 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor_white1.111 type 20 no_pick 1 no_magic 1 damned 1 end Object locked_white_door2 editor_folder door/Locked slaying set_individual_value name locked door msg You need the special key to open this door. endmsg move_block all face ldoor_white2.111 type 20 no_pick 1 no_magic 1 damned 1 end Object key editor_folder door race keys face key1.111 nrof 1 type 24 material 2 value 10 weight 10 name_pl keys client_type 801 end Object large_hdoor1 editor_folder door name large door move_block 0 face large_hdoor.111 type 23 material 2 no_pick 1 end More Object large_hdoor2 editor_folder door name large door move_block 0 face large_hdoor.111 type 23 material 2 no_pick 1 x 1 end More Object large_hdoor3 editor_folder door name large door move_block 0 face large_hdoor.111 type 23 material 2 no_pick 1 x 2 end Object large_vdoor1 editor_folder door name large door move_block 0 face large_vdoor.111 type 23 material 2 no_pick 1 end More Object large_vdoor2 editor_folder door name large door move_block 0 face large_vdoor.111 type 23 material 2 no_pick 1 y 1 end More Object large_vdoor3 editor_folder door name large door move_block 0 face large_vdoor.111 type 23 material 2 no_pick 1 y 2 end Object door_1 editor_folder door name door randomitems door move_block all blocksview 1 face odoor_1.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_2 editor_folder door name door randomitems door move_block all blocksview 1 face odoor_2.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object odoor_2_fant_blue-green editor_folder door name door randomitems door move_block all blocksview 1 face odoor_2_fant_blue-green.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object odoor_2_fant_blue-yellow editor_folder door name door randomitems door move_block all blocksview 1 face odoor_2_fant_blue-yellow.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object odoor_2_fant_brown editor_folder door name door randomitems door move_block all blocksview 1 face odoor_2_fant_brown.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object odoor_2_fant_red-white editor_folder door name door randomitems door move_block all blocksview 1 face odoor_2_fant_red-white.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object odoor_2_fant_red-yellow editor_folder door name door randomitems door move_block all blocksview 1 face odoor_2_fant_red-yellow.111 hp 400 exp 1 ac 20 type 23 material 16 no_pick 1 alive 1 level 1 end Object door_look_1 editor_folder door name door randomitems door move_block all face wooddoor_1.111 hp 400 exp 1 ac 20 type 23 material 2 no_pick 1 alive 1 level 1 end Object door_look_2 editor_folder door name door randomitems door move_block all face wooddoor_2.111 hp 400 exp 1 ac 20 type 23 material 2 no_pick 1 alive 1 level 1 end Object ladder_bi_down editor_folder exit/Ladder name ladder going down face ladder2_do.111 type 66 no_pick 1 client_type 25012 end Object ladder_bi_up editor_folder exit/Ladder name ladder going up face ladder2_up.111 type 66 no_pick 1 client_type 25012 end Object ladder_down editor_folder exit/Ladder name ladder going down face ladder_down.111 type 66 no_pick 1 client_type 25012 end Object ladder_up editor_folder exit/Ladder name ladder going up face ladder_up.111 type 66 no_pick 1 client_type 25012 end Object pentagram_111 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 end More Object pentagram_112 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 x 1 end More Object pentagram_113 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 x 2 end More Object pentagram_121 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 y 1 end More Object pentagram_122 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 y 1 x 1 end More Object pentagram_123 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 y 1 x 2 end More Object pentagram_131 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 y 2 end More Object pentagram_132 editor_folder exit/Pentagram name pentagram face pentagram.x11 x 1 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 y 2 end More Object pentagram_133 editor_folder exit/Pentagram name pentagram face pentagram.x11 speed 0 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 x 2 y 2 end Object town_1 editor_folder exit/Town name village type 66 face jcity_0.111 no_pick 1 client_type 25012 end Object town_2 editor_folder exit/Town name small town type 66 face jcity_2.111 no_pick 1 client_type 25012 end More Object town_2.2 editor_folder exit/Town name small town type 66 face jcity_8.111 x 1 no_pick 1 end Object town_3 editor_folder exit/Town name small town type 66 face jcity_4.111 no_pick 1 client_type 25012 end More Object town_3.2 editor_folder exit/Town name small town type 66 face jcity_1.111 y 1 no_pick 1 end Object town_4 editor_folder exit/Town name medium town type 66 face jcity_6.111 no_pick 1 client_type 25012 end More Object town_4.2 editor_folder exit/Town name medium town type 66 face jcity_C.111 x 1 no_pick 1 end More Object town_4.3 editor_folder exit/Town name medium town type 66 face jcity_3.111 y 1 no_pick 1 end More Object town_4.4 editor_folder exit/Town name medium town type 66 face jcity_9.111 x 1 y 1 no_pick 1 end Object town_5 editor_folder exit/Town name city type 66 face jcity_6.111 no_pick 1 client_type 25012 end More Object town_5.2 editor_folder exit/Town name city type 66 face jcity_E.111 x 1 no_pick 1 end More Object town_5.3 editor_folder exit/Town name city type 66 face jcity_C.111 x 2 no_pick 1 end More Object town_5.4 editor_folder exit/Town name city type 66 face jcity_3.111 y 1 no_pick 1 end More Object town_5.5 editor_folder exit/Town name city type 66 face jcity_B.111 x 1 y 1 no_pick 1 end More Object town_5.6 editor_folder exit/Town name city type 66 face jcity_9.111 x 2 y 1 no_pick 1 end Object town_6 editor_folder exit/Town name city type 66 face jcity_6.111 no_pick 1 client_type 25012 end More Object town_6.2 editor_folder exit/Town name city type 66 face jcity_C.111 x 1 no_pick 1 end More Object town_6.3 editor_folder exit/Town name city type 66 face jcity_7.111 y 1 no_pick 1 end More Object town_6.4 editor_folder exit/Town name city type 66 face jcity_D.111 x 1 y 1 no_pick 1 end More Object town_6.5 editor_folder exit/Town name city type 66 face jcity_3.111 y 2 no_pick 1 end More Object town_6.6 editor_folder exit/Town name city type 66 face jcity_9.111 x 1 y 2 no_pick 1 end Object town_7 editor_folder exit/Town name large city type 66 face jcity_6.111 no_pick 1 client_type 25012 end More Object town_7.2 editor_folder exit/Town name large city type 66 face jcity_E.111 x 1 no_pick 1 end More Object town_7.3 editor_folder exit/Town name large city type 66 face jcity_C.111 x 2 no_pick 1 end More Object town_7.4 editor_folder exit/Town name large city type 66 face jcity_7.111 y 1 no_pick 1 end More Object town_7.5 editor_folder exit/Town name large city type 66 face jcity_F.111 x 1 y 1 no_pick 1 end More Object town_7.6 editor_folder exit/Town name large city type 66 face jcity_D.111 x 2 y 1 no_pick 1 end More Object town_7.7 editor_folder exit/Town name large city type 66 face jcity_3.111 y 2 no_pick 1 end More Object town_7.8 editor_folder exit/Town name large city type 66 face jcity_B.111 x 1 y 2 no_pick 1 end More Object town_7.9 editor_folder exit/Town name large city type 66 face jcity_9.111 x 2 y 2 no_pick 1 end Object cave_stair_up_2 editor_folder exit/Up_down name stairs going up face cave_stair_up_2.111 type 66 no_pick 1 client_type 25012 end Object stair2_down editor_folder exit/Up_down name stairs going down face stair2_do.111 type 66 no_pick 1 client_type 25012 end Object stair2_up editor_folder exit/Up_down name stairs going up face stair2_up.111 type 66 no_pick 1 client_type 25012 end Object stair_3_down editor_folder exit/Up_down name stairs going down face stair3_do.111 type 66 no_pick 1 client_type 25012 end Object stair3_gstone_do editor_folder exit/Up_down name stairs going down face stair3_gstone_do.111 type 66 no_pick 1 client_type 25012 end Object stair3_gstone_up editor_folder exit/Up_down name stairs going up face stair3_gstone_up.111 type 66 no_pick 1 client_type 25012 end Object stair_3_up editor_folder exit/Up_down name stairs going up face stair3_up.111 type 66 no_pick 1 client_type 25012 end Object stair3_ystone_do editor_folder exit/Up_down name stairs going down face stair3_ystone_do.111 type 66 no_pick 1 client_type 25012 end Object stair3_ystone_up editor_folder exit/Up_down name stairs going up face stair3_ystone_up.111 type 66 no_pick 1 client_type 25012 end Object stair_down editor_folder exit/Up_down name stairs going down face stair_down.111 type 66 no_pick 1 client_type 25012 end Object stair_down_1 editor_folder exit/Up_down name stairs going down face stair_down_1.111 type 66 no_pick 1 client_type 25012 end Object stair_down_2 editor_folder exit/Up_down name stairs going down face stair_down_2.111 type 66 no_pick 1 client_type 25012 end Object stair_down_3 editor_folder exit/Up_down name stairs going down face stair_down_3.111 type 66 no_pick 1 client_type 25012 end Object stair_down_4 editor_folder exit/Up_down name stairs going down face stair_down_4.111 type 66 no_pick 1 client_type 25012 end Object stair_up editor_folder exit/Up_down name stairs going up face stair_up.111 type 66 no_pick 1 client_type 25012 end Object stair_up_1 editor_folder exit/Up_down name stairs going up face stair_up_1.111 type 66 no_pick 1 client_type 25012 end Object stair_up_2 editor_folder exit/Up_down name stairs going up face stair_up_2.111 type 66 no_pick 1 client_type 25012 end Object stair_up_3 editor_folder exit/Up_down name stairs going up face stair_up_3.111 type 66 no_pick 1 client_type 25012 end Object stair_up_4 editor_folder exit/Up_down name stairs going up face stair_up_4.111 type 66 no_pick 1 client_type 25012 end Object archway editor_folder exit name archway face archwood.111 type 66 no_pick 1 client_type 25012 end Object archway_green editor_folder exit name green archway face archgreen.111 type 66 no_pick 1 client_type 25012 end Object archway_gold editor_folder exit name golden archway face archgold.111 type 66 no_pick 1 client_type 25012 end Object archway_tree editor_folder exit name archway made of tree face archtree.111 type 66 no_pick 1 client_type 25012 end Object bloodwell editor_folder exit type 66 face bloodwell.111 no_pick 1 editable 2 client_type 25012 end Object chole_1 editor_folder exit name hole in the ground face chole_1.111 type 66 no_pick 1 client_type 25012 end Object chole_2 editor_folder exit name hole in the ground face chole_2.111 type 66 no_pick 1 client_type 25012 end Object dforest_exit editor_folder exit type 66 face darkforest.111 no_pick 1 is_floor 1 move_on walk smoothlevel 136 client_type 25012 end Object exit editor_folder exit face exit.111 anim_speed 2 client_anim_random 1 type 66 no_pick 1 animation exit move_on walk fly_low client_type 25012 end Object fogexit editor_folder exit name mysterious fog face fog.111 anim_speed 5 client_anim_random 1 type 66 no_pick 1 animation fogexit move_on walk fly_low client_type 25012 end Object hole editor_folder exit face hole1.111 type 66 no_pick 1 is_floor 1 smoothlevel 10 client_type 25012 end Object invis_exit editor_folder exit face exit.113 type 66 invisible 1 no_pick 1 move_on walk fly_low client_type 25012 end Object look_door_exit_1 editor_folder exit name door face wooddoor_1.111 type 66 no_pick 1 client_type 25012 end Object look_door_exit_2 editor_folder exit name door face wooddoor_2.111 type 66 no_pick 1 client_type 25012 end Object perm_magic_portal editor_folder exit/magic_portal name magic portal face magic_portal.111 slaying /city/city hp 15 sp 19 anim_speed 3 client_anim_random 1 type 66 no_pick 1 animation perm_magic_portal client_type 25011 end Object magic_portal editor_folder exit/magic_portal face magic_portal.11L slaying /city/city hp 15 sp 19 speed 0.3 type 66 no_pick 1 animation magic_portal is_used_up 1 food 59 changing 1 client_type 25011 end Object town_portal_open editor_folder exit/magic_portal editor_folder exit/magic_portal name town portal face magic_portal.11M animation town_portal_open speed 1 food 22 is_used_up 1 no_pick 1 end Object oakdoor editor_folder exit face oakdoor.111 type 66 no_pick 1 client_type 25012 end Object oakdoor_1 editor_folder exit name oakdoor face oakdoor_1.111 type 66 no_pick 1 client_type 25012 end Object oakdoor_2 editor_folder exit name oakdoor face oakdoor_2.111 type 66 no_pick 1 client_type 25012 end Object ruins editor_folder exit type 66 face ruins.111 no_pick 1 client_type 25012 end Object sewer_access editor_folder exit name sewer face sewer_access.111 type 66 no_pick 1 msg You open the sewer access grid and jump down. My god, you are stinking! endmsg client_type 25012 end Object sewer_access2 editor_folder exit name sewer face sewer_access.112 type 66 no_pick 1 msg You open the sewer access grid and jump down. My god, you are stinking! endmsg client_type 25012 end Object smallpark editor_folder exit name small park face smallpark.111 type 66 no_pick 1 client_type 25012 end Object teleporter editor_folder exit face teleporter.111 speed 0.1 type 41 activate_on_push 1 activate_on_release 1 no_pick 1 animation teleporter end Object volcano_high editor_folder exit name high volcano type 66 face volcano_hi.x11 no_pick 1 move_slow walk move_slow_penalty 20 blocksview 1 client_type 25012 end More Object volcano_high_2 editor_folder exit name high volcano face volcano_hi.x11 no_pick 1 x 1 move_slow walk move_slow_penalty 20 blocksview 1 type 66 end More Object volcano_high_3 editor_folder exit name high volcano face volcano_hi.x11 no_pick 1 y 1 move_slow walk move_slow_penalty 20 blocksview 1 type 66 end More Object volcano_high_4 editor_folder exit name high volcano face volcano_hi.x11 no_pick 1 x 1 y 1 move_slow walk move_slow_penalty 20 blocksview 1 type 66 end Object volcano_low editor_folder exit name volcano type 66 face volcano_lo.x11 no_pick 1 move_slow walk move_slow_penalty 15 blocksview 1 client_type 25012 end More Object volcano_low_2 editor_folder exit name volcano face volcano_lo.x11 type 66 no_pick 1 x 1 move_slow walk move_slow_penalty 15 blocksview 1 end Object well editor_folder exit type 66 face well.111 no_pick 1 client_type 25012 end Object whirlwind_exit editor_folder exit name whirl wind face stalkergen.111 anim_speed 5 client_anim_random 1 type 66 no_pick 1 animation whirlwind_exit move_on walk fly_low client_type 25012 end Object demon_head editor_folder flesh/demon name head face demon_head.111 material 32 type 72 nrof 1 weight 25 value 400 name_pl heads client_type 625 end Object icor editor_folder flesh/demon nrof 1 face icor.111 animation icor is_used_up 1 material 32 food 40 type 72 weight 45 speed 0.03 hp -100 value 400 name_pl icors client_type 627 end Object dragonclaw editor_folder flesh/dragon name dragon's claw nrof 1 face dragon_claw.111 material 32 weight 1 value 55 name_pl dragon's claws client_type 626 end Object dragon_eye editor_folder flesh/dragon name eye nrof 1 face dragon_eye.111 material 32 type 72 weight 2 value 30 name_pl eyes client_type 625 end Object dragon_scale editor_folder flesh/dragon name red dragon scale nrof 1 type 73 face dragon_sca.111 weight 25000 name_pl red dragon scales client_type 627 end Object blue_dragon_scale editor_folder flesh/dragon name blue dragon scale nrof 1 type 73 face dragon_blue_scale.111 weight 25000 name_pl blue dragon scales client_type 627 end Object green_dragon_scale editor_folder flesh/dragon name green dragon scale nrof 1 type 73 face dragon_green_scale.111 weight 25000 name_pl green dragon scales client_type 627 end Object orange_dragon_scale editor_folder flesh/dragon name orange dragon scale nrof 1 type 73 face dragon_orange_scale.111 weight 25000 name_pl orange dragon scales client_type 627 end Object dragon_wing editor_folder flesh/dragon name wing nrof 1 face dragon_wing.111 material 32 type 72 weight 25 value 100 name_pl wings client_type 626 end Object big_eye editor_folder flesh/generic name eye nrof 1 face big_eye.111 material 32 type 72 food 35 weight 1 value 15 name_pl eyes client_type 625 end Object brain editor_folder flesh/generic name brain face brain.111 material 32 type 72 weight 4 value 220 nrof 1 name_pl brains client_type 627 end Object eye editor_folder flesh/generic nrof 1 face eye.111 material 32 type 72 food 1 weight 1 value 15 name_pl eyes client_type 625 end Object eyes editor_folder flesh/generic nrof 1 face eyes.111 material 32 type 72 food 1 weight 1 value 30 end Object heart editor_folder flesh/generic name heart nrof 1 face heart.111 material 32 type 72 weight 4 value 200 name_pl hearts client_type 627 end Object hide_black editor_folder flesh/generic name hide nrof 1 face hide_black.111 material 32 type 72 weight 20 value 300 end Object hide_brown editor_folder flesh/generic name hide nrof 1 face hide_brown.111 material 32 type 72 weight 20 value 300 end Object hide_grey editor_folder flesh/generic name hide nrof 1 face hide_grey.111 material 32 type 72 weight 20 value 300 end Object hide_white editor_folder flesh/generic name hide nrof 1 face hide_white.111 material 32 type 72 weight 20 value 300 end Object liver editor_folder flesh/generic name liver face liver.111 material 32 type 72 weight 4 value 120 nrof 1 name_pl livers client_type 627 end Object tongue editor_folder flesh/generic nrof 1 face tongue.111 material 32 type 72 food 2 weight 1 value 20 name_pl tongues client_type 625 end Object goblin_head editor_folder flesh/goblin nrof 1 name head face goblin_head.111 material 32 type 72 food 30 weight 25 value 15 name_pl heads client_type 625 end Object arm editor_folder flesh/human nrof 1 face arm.111 material 32 type 72 food 150 weight 8 value 10 name_pl arms client_type 626 end Object corpse editor_folder flesh/human face corpse.111 nrof 1 material 32 weight 75000 name_pl corpses client_type 622 end Object corpse1 editor_folder flesh/human face corpse1.111 nrof 1 type 7 material 32 weight 75000 name corpse name_pl corpses client_type 622 end Object corpse_pl editor_folder flesh/human face corpse1.111 nrof 1 type 157 material 32 weight 75000 resist_physical 100 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_cancellation 100 resist_deplete 100 resist_death 100 name_pl corpse_pls client_type 622 end Object finger editor_folder flesh/human nrof 1 face finger.111 material 32 type 72 food 1 weight 2 value 2 name_pl fingers client_type 626 end Object fl_corpse editor_folder flesh/human name corpse face corpse.111 material 32 type 72 weight 100 nrof 1 value 50 food 600 name_pl corpses client_type 622 end Object foot editor_folder flesh/human nrof 1 face foot.111 material 32 type 72 food 50 weight 5 value 10 name_pl feet client_type 626 end Object hand editor_folder flesh/human nrof 1 face hand.111 material 32 type 72 food 2 weight 3 value 10 name_pl hands client_type 626 end Object hands editor_folder flesh/human nrof 1 face hands.111 material 32 type 72 food 2 weight 6 value 20 name_pl hands client_type 626 end Object head editor_folder flesh/human nrof 1 face head.111 material 32 type 72 food 50 weight 15 value 15 name_pl heads client_type 625 end Object leg editor_folder flesh/human nrof 1 face leg.111 material 32 type 72 food 450 weight 15 value 10 name_pl legs client_type 626 end Object skin editor_folder flesh/human nrof 1 face skin.111 material 32 type 72 food 1 weight 7 value 5 name_pl skins client_type 627 end Object tooth editor_folder flesh/human nrof 1 face tooth.111 material 64 type 72 weight 1 value 10 name_pl teeth client_type 625 end Object bat_wing editor_folder flesh/misc name wing nrof 1 face bat_wing.111 material 32 type 72 weight 15 value 50 name_pl wings client_type 626 end Object beholdereye editor_folder flesh/misc name beholdereye nrof 1 face behold_eye.111 material 32 weight 2500 name_pl beholdereyes client_type 625 end Object dead_neko editor_folder flesh/misc name corpse face dead_neko.111 food 10 nrof 1 type 6 material 32 value 1 weight 650 identified 1 name_pl corpses client_type 622 end Object ectoplasm editor_folder flesh/misc nrof 1 name ectoplasm face ectoplasm.111 type 72 material 64 weight 20 value 200 food 0 identified 1 name_pl ectoplasms client_type 627 end Object insect_stinger editor_folder flesh/misc nrof 1 name stinger face insect_sting.111 type 72 material 32 weight 10 value 20 name_pl stingers client_type 627 end Object insect_wing editor_folder flesh/misc nrof 1 name wing face insect_wing.111 type 72 material 32 weight 10 value 20 name_pl wings client_type 627 end Object lich_dust editor_folder flesh/misc nrof 1 name lich dust face pix_dust.111 material 4 weight 100 value 800 identified 1 name_pl lich dusts client_type 628 end Object pix_dust editor_folder flesh/misc nrof 1 name pixie dust face pix_dust.111 material 4 weight 100 value 200 identified 1 name_pl pixie dusts client_type 628 end Object pix_wing editor_folder flesh/misc nrof 1 name wings face pix_wing.111 type 72 material 32 weight 10 value 50 name_pl wings client_type 627 end Object residue editor_folder flesh/misc nrof 1 name residue face residue.111 type 72 material 64 weight 50 value 200 food 0 identified 1 name_pl residues client_type 627 end Object serp_skin editor_folder flesh/misc name skin nrof 1 face serpent_skin.111 type 72 weight 1000 name_pl skins client_type 627 end Object sheepskin editor_folder flesh/misc name sheepskin nrof 1 face sheepskin.111 material 32 type 72 weight 30 value 100 end Object u_horn editor_folder flesh/misc name unicorn horn material 32 dam 9 last_sp 9 face u_horn.111 weight 10000 value 500 magic 3 animation u_horn anim_speed 2 client_anim_random 1 type 15 nrof 1 name_pl unicorn horns client_type 627 item_power 2 skill one handed weapons body_arm -1 end Object afloor_right editor_folder floor/Afloor name a floor face afloor.131 no_pick 1 is_floor 1 end Object afloor_left editor_folder floor/Afloor name a floor face afloor.171 no_pick 1 is_floor 1 end Object ahole_right editor_folder floor/Afloor face ahole.131 type 66 no_pick 1 client_type 25012 end Object ahole_left editor_folder floor/Afloor face ahole.171 type 66 no_pick 1 client_type 25012 end Object afloor_blue_right editor_folder floor/Afloor name a floor face afloor_blue.131 no_pick 1 is_floor 1 end Object afloor_blue_left editor_folder floor/Afloor name a floor face afloor_blue.171 no_pick 1 is_floor 1 end Object ahole_blue_right editor_folder floor/Afloor face ahole_blue.131 type 66 no_pick 1 client_type 25012 end Object ahole_blue_left editor_folder floor/Afloor face ahole_blue.171 type 66 no_pick 1 client_type 25012 end Object afloor_magenta_right editor_folder floor/Afloor name a floor face afloor_magenta.131 no_pick 1 is_floor 1 end Object afloor_magenta_left editor_folder floor/Afloor name a floor face afloor_magenta.171 no_pick 1 is_floor 1 end Object ahole_magenta_right editor_folder floor/Afloor face ahole_magenta.131 type 66 no_pick 1 end Object ahole_magenta_left editor_folder floor/Afloor face ahole_magenta.171 type 66 no_pick 1 end Object beigemarble editor_folder floor face beigemarble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object blackmarble editor_folder floor face blackmarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object bluemarble editor_folder floor name bluemarble face bluemarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object bluemarblemedium editor_folder floor name bluemarble face bluemarblemedium.111 no_pick 1 is_floor 1 smoothlevel 30 end Object cloudfloor editor_folder floor name cloud face fog.111 no_pick 1 smoothlevel 1 end Object thickcloudfloor editor_folder floor name thick cloud face fog_2.111 no_pick 1 end Object cobblestones editor_folder floor face cobblesto2.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object cobblestones2 editor_folder floor name cobblestones face cobblesto1.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object cyanmarble editor_folder floor face cyanmarble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object dcross-red editor_folder floor face dcross-red.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object dcross-white editor_folder floor face dcross-white.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object dirtfloor editor_folder floor name dirt floor face dirtfloor.111 no_pick 1 is_floor 1 smoothlevel 16 end Object dungeon_floor editor_folder floor name stones face dung_floor.111 no_pick 1 is_floor 1 end Object fcross-blue editor_folder floor face fcross-blue.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object fcross-white editor_folder floor face fcross-white.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object fireholes_moving editor_folder floor name holes face fireholes.111 no_pick 1 speed -0.02 end Object flagstone editor_folder floor face flagstone.111 no_pick 1 is_floor 1 smoothlevel 29 end Object goldflagstone editor_folder floor name drop 10 gold coins slaying goldcoin msg Click! endmsg type 18 activate_on_push 1 activate_on_release 1 face goldflagstone.111 food 10 animation goldflagstone no_pick 1 move_on walk is_floor 1 end Object goldfloor editor_folder floor name drop 10 gold coins slaying goldcoin msg Click! endmsg type 18 activate_on_push 1 activate_on_release 1 face goldfloor.111 food 10 animation goldfloor no_pick 1 move_on walk is_floor 1 end Object goldfloor2 editor_folder floor name drop 10 gold coins slaying goldcoin msg Click! endmsg type 18 activate_on_push 1 activate_on_release 1 face goldfloor2.111 food 10 animation goldfloor2 no_pick 1 move_on walk is_floor 1 end Object graymarble editor_folder floor face graymarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object greenmarble editor_folder floor face greenmarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object greenmarblelight editor_folder floor name greenmarble face greenmarblelight.111 no_pick 1 is_floor 1 smoothlevel 30 end Object greenmarblemedium editor_folder floor name greenmarble face greenmarblemedium.111 no_pick 1 is_floor 1 smoothlevel 30 end Object beige-cyan-c-marble_111 editor_folder floor/inlayed face beige-cyan-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-cyan-c-marble_112 editor_folder floor/inlayed face beige-cyan-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-cyan-c-marble_113 editor_folder floor/inlayed face beige-cyan-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-cyan-c-marble_114 editor_folder floor/inlayed face beige-cyan-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-green-c-marble_111 editor_folder floor/inlayed face beige-green-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-green-c-marble_112 editor_folder floor/inlayed face beige-green-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-green-c-marble_113 editor_folder floor/inlayed face beige-green-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-green-c-marble_114 editor_folder floor/inlayed face beige-green-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-pink-c-marble_111 editor_folder floor/inlayed face beige-pink-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-pink-c-marble_112 editor_folder floor/inlayed face beige-pink-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-pink-c-marble_113 editor_folder floor/inlayed face beige-pink-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-pink-c-marble_114 editor_folder floor/inlayed face beige-pink-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-white-c-marble_111 editor_folder floor/inlayed face beige-white-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-white-c-marble_112 editor_folder floor/inlayed face beige-white-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-white-c-marble_113 editor_folder floor/inlayed face beige-white-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object beige-white-c-marble_114 editor_folder floor/inlayed face beige-white-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object cyan-beige-c-marble_111 editor_folder floor/inlayed face cyan-beige-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object cyan-beige-c-marble_112 editor_folder floor/inlayed face cyan-beige-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object cyan-beige-c-marble_113 editor_folder floor/inlayed face cyan-beige-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object cyan-beige-c-marble_114 editor_folder floor/inlayed face cyan-beige-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object gray-white-h-marble_111 editor_folder floor/inlayed face gray-white-h-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object gray-white-h-marble_112 editor_folder floor/inlayed face gray-white-h-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-beige-c-marble_111 editor_folder floor/inlayed face green-beige-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-beige-c-marble_112 editor_folder floor/inlayed face green-beige-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-beige-c-marble_113 editor_folder floor/inlayed face green-beige-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-beige-c-marble_114 editor_folder floor/inlayed face green-beige-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-white-c-marble_111 editor_folder floor/inlayed face green-white-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-white-c-marble_112 editor_folder floor/inlayed face green-white-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-white-c-marble_113 editor_folder floor/inlayed face green-white-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-white-c-marble_114 editor_folder floor/inlayed face green-white-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-white-h-marble_111 editor_folder floor/inlayed face green-white-h-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object green-white-h-marble_112 editor_folder floor/inlayed face green-white-h-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_111 editor_folder floor/inlayed face lightmagent-green-p-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_112 editor_folder floor/inlayed face lightmagent-green-p-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_113 editor_folder floor/inlayed face lightmagent-green-p-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_114 editor_folder floor/inlayed face lightmagent-green-p-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_121 editor_folder floor/inlayed face lightmagent-green-p-marble.121 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_122 editor_folder floor/inlayed face lightmagent-green-p-marble.122 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_123 editor_folder floor/inlayed face lightmagent-green-p-marble.123 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagent-green-p-marble_124 editor_folder floor/inlayed face lightmagent-green-p-marble.124 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object pink-beige-c-marble_111 editor_folder floor/inlayed face pink-beige-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object pink-beige-c-marble_112 editor_folder floor/inlayed face pink-beige-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object pink-beige-c-marble_113 editor_folder floor/inlayed face pink-beige-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object pink-beige-c-marble_114 editor_folder floor/inlayed face pink-beige-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-beige-c-marble_111 editor_folder floor/inlayed face white-beige-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-beige-c-marble_112 editor_folder floor/inlayed face white-beige-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-beige-c-marble_113 editor_folder floor/inlayed face white-beige-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-beige-c-marble_114 editor_folder floor/inlayed face white-beige-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-h-marble_111 editor_folder floor/inlayed face white-gray-h-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-h-marble_112 editor_folder floor/inlayed face white-gray-h-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_111 editor_folder floor/inlayed face white-gray-x-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_112 editor_folder floor/inlayed face white-gray-x-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_113 editor_folder floor/inlayed face white-gray-x-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_114 editor_folder floor/inlayed face white-gray-x-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_115 editor_folder floor/inlayed face white-gray-x-marble.115 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_116 editor_folder floor/inlayed face white-gray-x-marble.116 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_117 editor_folder floor/inlayed face white-gray-x-marble.117 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_118 editor_folder floor/inlayed face white-gray-x-marble.118 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-gray-x-marble_119 editor_folder floor/inlayed face white-gray-x-marble.119 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-c-marble_111 editor_folder floor/inlayed face white-green-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-c-marble_112 editor_folder floor/inlayed face white-green-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-c-marble_113 editor_folder floor/inlayed face white-green-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-c-marble_114 editor_folder floor/inlayed face white-green-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-h-marble_111 editor_folder floor/inlayed face white-green-h-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-h-marble_112 editor_folder floor/inlayed face white-green-h-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_111 editor_folder floor/inlayed face white-green-x-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_112 editor_folder floor/inlayed face white-green-x-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_113 editor_folder floor/inlayed face white-green-x-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_114 editor_folder floor/inlayed face white-green-x-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_115 editor_folder floor/inlayed face white-green-x-marble.115 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_116 editor_folder floor/inlayed face white-green-x-marble.116 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_117 editor_folder floor/inlayed face white-green-x-marble.117 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_118 editor_folder floor/inlayed face white-green-x-marble.118 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-green-x-marble_119 editor_folder floor/inlayed face white-green-x-marble.119 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-pink-c-marble_111 editor_folder floor/inlayed face white-pink-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-pink-c-marble_112 editor_folder floor/inlayed face white-pink-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-pink-c-marble_113 editor_folder floor/inlayed face white-pink-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-pink-c-marble_114 editor_folder floor/inlayed face white-pink-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-red-c-marble_111 editor_folder floor/inlayed face white-red-c-marble.111 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-red-c-marble_112 editor_folder floor/inlayed face white-red-c-marble.112 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-red-c-marble_113 editor_folder floor/inlayed face white-red-c-marble.113 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object white-red-c-marble_114 editor_folder floor/inlayed face white-red-c-marble.114 name marble no_pick 1 is_floor 1 smoothlevel 30 end Object lightgreenmarble editor_folder floor face lightgreenmarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object lightmagentamarble editor_folder floor face lightmagentamarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object magentamarble editor_folder floor face magentamarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object magentamarblemedium editor_folder floor name magentamarble face magentamarblemedium.111 no_pick 1 is_floor 1 smoothlevel 30 end Object marble editor_folder floor face marble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object marble_blgr editor_folder floor face marble_blgr.111 no_pick 1 is_floor 1 smoothlevel 30 end Object magic_banned editor_folder floor name no_magic face no_magic.111 no_pick 1 no_magic 1 invisible 1 end #for backward compatibility, this arch is named "dungeon magic" #It forbids both magic and cleric spells. Object dungeon_magic editor_folder floor name no_spells face no_spells.111 damned 1 no_pick 1 no_magic 1 invisible 1 end Object pinkmarble editor_folder floor face pinkmarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object redmarble editor_folder floor face redmarble.111 no_pick 1 is_floor 1 smoothlevel 30 end Object sewerfloor editor_folder floor name Sewer Floor face sewerfloor.111 no_pick 1 is_floor 1 end Object blackslate editor_folder floor face slate_b.111 no_pick 1 is_floor 1 smoothlevel 30 end Object whiteslate editor_folder floor face slate_w.111 no_pick 1 is_floor 1 smoothlevel 30 end Object redslate editor_folder floor face slate_r.111 no_pick 1 is_floor 1 smoothlevel 30 end Object stonefloor2 editor_folder floor face stfloor.111 no_pick 1 is_floor 1 smoothlevel 30 end Object strangefloor editor_folder floor name Strange Floor face strangefloor.111 no_pick 1 is_floor 1 end Object tile_floor editor_folder floor face tile.111 no_pick 1 is_floor 1 end Object tile_shop editor_folder floor name tiles face shop_empty.111 no_pick 1 is_floor 1 end Object tile_tan_floor editor_folder floor face tile_tan.111 no_pick 1 is_floor 1 end Object tile_white_floor editor_folder floor face tile_white.111 no_pick 1 is_floor 1 end Object unholy_ground editor_folder floor name unholy ground face unholy_ground.111 no_pick 1 damned 1 invisible 1 end Object woodfloor editor_folder floor name wood floor face woodfloor.111 no_pick 1 is_floor 1 smoothlevel 30 end Object woodfloor2 editor_folder floor name wood floor face woodfloor2.111 no_pick 1 is_floor 1 smoothlevel 30 end Object woodlarge editor_folder floor name wood floor face woodlarge.111 no_pick 1 is_floor 1 smoothlevel 30 move_block boat swim end Object apple editor_folder food face apple.111 food 25 nrof 1 type 6 material 32 value 2 weight 100 identified 1 name_pl apples client_type 601 end Object apple_half editor_folder food face apple_half.111 name apple halve name_pl apple halves food 12 nrof 1 type 6 material 32 value 1 weight 50 identified 1 client_type 601 end Object apple_fourth editor_folder food face apple_fourth.111 name apple fourth name_pl apple fourths food 6 nrof 1 type 6 material 32 value 1 weight 25 identified 1 client_type 601 end Object apple_eighth editor_folder food face apple_eighth.111 name apple eighth name_pl apple eighths food 3 nrof 1 type 6 material 32 value 1 weight 12 identified 1 client_type 601 end Object bag_popcorn editor_folder food name bag of popcorn face bag_popcorn.111 food 50 nrof 1 type 6 material 32 value 6 weight 250 identified 1 name_pl bags of popcorn client_type 601 end Object blackroot editor_folder food name blackroot face blackroot.111 food 15 nrof 1 type 6 material 32 value 300 weight 300 identified 1 name_pl blackroot client_type 601 end Object booze editor_folder food face booze.111 on_use_yield boozebottle_empty food 100 nrof 1 type 54 material 32 value 5 weight 6500 identified 1 name_pl boozes client_type 611 slaying vial_poison:poison end Object cabbage editor_folder food face cabbage.111 food 80 nrof 1 type 6 material 32 value 4 weight 1500 identified 1 name_pl cabbages client_type 601 end Object cake editor_folder food face cake.111 food 125 nrof 1 type 6 material 32 value 8 weight 3000 identified 1 name_pl cakes client_type 601 end Object caramel editor_folder food face caramel.111 food 5 nrof 1 type 6 material 32 value 2 weight 30 identified 1 name_pl cakes client_type 601 end Object carrot editor_folder food name carrots face carrot.111 food 20 nrof 1 type 6 material 32 value 1 weight 100 identified 1 name_pl carrots client_type 601 end Object cheeseburger editor_folder food face ch_burger.111 food 350 nrof 1 type 6 material 32 value 10 weight 6500 identified 1 client_type 601 end Object chicken_egg editor_folder food name egg type 72 face ant_egg.111 food 10 weight 20 nrof 1 end Object chocolate editor_folder food face chocolate.111 food 50 nrof 1 type 6 material 32 value 10 weight 100 identified 1 name_pl chocolates client_type 601 end Object clover editor_folder food face clover.111 food 5 nrof 1 type 6 material 32 value 5 weight 100 name_pl clovers client_type 601 end Object coffee editor_folder food name cup of coffee on_use_yield coffee_empty face coffee.111 food 10 nrof 1 type 7 material 32 value 1 weight 100 identified 1 name_pl cups of coffee client_type 601 end Object dragon_steak editor_folder food name steak face drag_steak.111 food 400 nrof 1 type 72 material 32 value 10 weight 5 identified 1 name_pl steaks client_type 624 end Object fish_1 editor_folder food name fish face fish_1.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvestable 1 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object fish_2 editor_folder food name fish face fish_2.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvestable 1 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object fish_3 editor_folder food name fish face fish_3.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvestable 1 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object fish_4 editor_folder food name fish face fish_4.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvestable 1 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object fish_5 editor_folder food name fish face fish_5.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvestable 1 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object fish_6 editor_folder food name fish face fish_6.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvestable 1 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object fishfood editor_folder food name fish face fishfood.111 food 100 nrof 1 type 6 material 32 value 4 weight 3500 identified 1 name_pl fishes client_type 601 harvest_race fish harvest_exp 100 harvest_level 1 harvest_tool pole end Object food editor_folder food face food.111 food 200 nrof 1 type 6 material 32 value 10 weight 6500 identified 1 name_pl foods client_type 601 end Object fried_egg editor_folder food name fried egg type 72 face fried_egg.111 food 20 weight 50 nrof 1 end Object gen_mushroom editor_folder food face gen_mushroom.111 name mouldy patch randomitems random_mushroom no_pick 1 alive 1 exp 1 level 1 ac 25 hp 1 maxhp 1 speed -1.0 invisible 1 is_used_up 1 end Object haggis editor_folder food name haggis face haggis.111 food 500 nrof 1 type 6 material 32 value 80 weight 8000 identified 1 name_pl haggises client_type 601 end Object leg_mutton editor_folder food face food.111 food 150 nrof 1 type 6 material 32 value 50 weight 1500 identified 1 name_pl legs of mutton client_type 601 end Object loaf editor_folder food name bread face loaf.111 food 100 nrof 1 type 6 material 32 value 5 weight 3000 identified 1 name_pl breads client_type 601 end Object mandrake_root editor_folder food name mandrake root face root.111 food 15 nrof 1 type 6 material 32 value 300 weight 300 identified 1 name_pl mandrake roots client_type 601 end Object mint editor_folder food name mint sprig face mint.111 food 5 nrof 1 type 6 material 32 value 5 weight 100 name_pl mint sprigs client_type 601 end Object mushroom_1 editor_folder food name mushroom face mushroom_1.111 food 50 nrof 1 type 6 material 32 value 5 weight 100 name_pl mushrooms client_type 601 end Object mushroom_2 editor_folder food name mushroom face mushroom_2.111 nrof 1 type 6 material 32 value 6 food 55 weight 100 name_pl mushrooms client_type 601 end Object mushroom_3 editor_folder food name mushroom face mushroom_3.111 food 60 nrof 1 type 6 material 32 value 7 weight 50 name_pl mushrooms client_type 601 end Object onion editor_folder food name onion face onion.111 food 50 nrof 1 type 6 material 32 value 2 weight 100 identified 1 name_pl onions client_type 601 end Object orange editor_folder food name orange face orange.111 food 25 nrof 1 type 6 material 32 value 2 weight 100 identified 1 name_pl oranges client_type 601 end Object orcchop editor_folder food name orc chop face orcchop.111 food 10 nrof 1 type 6 material 32 value 1 weight 650 identified 1 name_pl orc chops client_type 624 end Object pear editor_folder food face pear.111 food 25 nrof 1 type 6 material 32 value 2 weight 100 identified 1 name_pl pears client_type 601 end Object pipeweed editor_folder food name pipeweed face pipeweed.111 food 5 nrof 1 type 6 material 32 value 300 weight 32 name_pl pipeweed client_type 601 end Object poison editor_folder food name booze face booze.111 on_use_yield boozebottle_empty nrof 1 type 7 material 32 weight 6500 identified 0 name_pl boozes client_type 611 cursed 1 known_cursed 0 title of poison end Object wine_poison editor_folder food name bottle of wine face wine.111 on_use_yield winebottle_empty food 75 nrof 1 type 7 material 36 value 10 weight 1000 identified 0 name_pl bottles of wine client_type 611 cursed 1 known_cursed 0 title of poison end Object w_glass_poison editor_folder food name glass of wine face w_glass.111 food 10 nrof 1 type 7 material 36 value 2 weight 1000 identified 0 name_pl glasses of wine client_type 611 cursed 1 known_cursed 0 title of poison end Object water_poison editor_folder food face water.111 on_use_yield wbottle_empty food 5 nrof 1 type 7 material 32 value 5 weight 1500 name water name_pl waters client_type 611 identified 0 cursed 1 known_cursed 0 title of poison end Object potato editor_folder food name potatoes face potato.111 food 200 nrof 1 type 6 material 32 value 7 weight 4000 identified 1 name_pl potatoes client_type 601 end Object roast_bird editor_folder food name roast bird face roast_bird.111 food 450 nrof 1 type 6 material 32 value 40 weight 7500 identified 1 name_pl roast birds client_type 601 end Object rose_pink editor_folder food name pink rose face rose_pink.111 food 5 nrof 1 type 6 material 32 value 60 weight 2 name_pl pink roses client_type 601 end Object rose_red editor_folder food name red rose face rose_red.111 food 5 nrof 1 type 6 material 32 value 80 weight 2 name_pl red roses client_type 601 end Object rose_white editor_folder food name white rose face rose_wh.111 food 5 nrof 1 type 6 material 32 value 45 weight 2 name_pl white roses client_type 601 end Object rose_yellow editor_folder food name yellow rose face rose_yel.111 food 5 nrof 1 type 6 material 32 value 45 weight 2 name_pl yellow roses client_type 601 end Object rose_black editor_folder food name black rose face rose_black.111 food 5 nrof 1 type 6 material 32 value 160 weight 2 name_pl black roses client_type 601 end Object s_weasel editor_folder food name sizzling weasel on a stick face s_weasel.111 food 30 nrof 1 type 6 material 32 value 5 weight 10 identified 1 name_pl sizzling weasels on a stick client_type 601 end Object tomato editor_folder food name tomato face tomato.111 food 50 nrof 1 type 6 material 32 value 7 weight 1000 identified 1 name_pl tomatoes client_type 601 end Object tomato_big editor_folder food name very large tomato face tomato_big.111 food 200 nrof 1 type 6 material 32 value 14 weight 1000 identified 1 name_pl very large tomatoes client_type 601 end Object uf6 editor_folder food face uf6.111 on_use_yield wbottle_empty food 1 nrof 1 type 54 material 32 value 155 weight 11500 name uranium hexafluoride gas name_pl uranium hexafluoride gas client_type 611 end Object w_glass editor_folder food name glass of wine face w_glass.111 on_use_yield w_glass_empty food 10 nrof 1 type 54 material 36 value 2 weight 1000 identified 1 name_pl glasses of wine client_type 611 slaying vial_poison:w_glass_poison end Object water editor_folder food face water.111 on_use_yield wbottle_empty food 5 nrof 1 type 54 material 32 value 5 weight 1500 name_pl waters client_type 611 on_use_with_vial_poison remove $1 remove $2 add water_poison end Object waybread editor_folder food face waybread.111 food 500 nrof 1 type 6 material 32 value 30 weight 1000 identified 1 name_pl waybreads client_type 601 end Object wine editor_folder food name bottle of wine face wine.111 on_use_yield winebottle_empty food 75 nrof 1 type 54 material 36 value 10 weight 1000 identified 1 name_pl bottles of wine client_type 611 slaying vial_poison:wine_poison end Object altar_devourers editor_folder gods/altars name Altar of Devourers type 56 level 100 other_arch Devourers face altardevo.111 no_pick 1 resist_physical 100 end Object altar_gaea editor_folder gods/altars name Altar of Gaea other_arch Gaea type 56 level 100 face altargaea.111 no_pick 1 end Object altar_gnarg editor_folder gods/altars name Altar of Gnarg other_arch Gnarg type 56 face altargnarg.111 no_pick 1 level 100 end Object altar_gorokh editor_folder gods/altars name Altar of Gorokh other_arch Gorokh type 56 face altargoro.111 no_pick 1 level 100 anim_speed 0.5 animation altar_gorokh speed 0.5 end Object altar_ixalovh editor_folder gods/altars name Altar of Ixalovh other_arch Ixalovh type 56 face altarixalovh.111 no_pick 1 level 100 end Object altar_lythander editor_folder gods/altars name Altar of Lythander other_arch Lythander type 56 level 100 face altarlyth.111 no_pick 1 end Object altar_mostrai editor_folder gods/altars name Altar of Mostrai other_arch Mostrai type 56 level 100 face altarmostr.111 no_pick 1 end Object altar_none editor_folder gods/altars name altar type 56 face altarnone.111 no_pick 1 end Object altar_ruggilli editor_folder gods/altars name Altar of Ruggilli other_arch Ruggilli type 56 level 100 face altarrugg.111 no_pick 1 client_anim_random 1 anim_speed 2 animation altar_ruggilli end Object altar_sorig editor_folder gods/altars name Altar of Sorig other_arch Sorig type 56 level 100 face altarsori.111 no_pick 1 client_anim_random 1 anim_speed 2 animation altar_sorig end Object altar_valkyrie editor_folder gods/altars name Altar of Valkyrie other_arch Valkyrie type 56 face altarvalk.111 no_pick 1 level 100 arch altar_valkyrie_pray_event end end Object altar_valkyrie_pray_event editor_folder gods/altars title Python slaying /python/gods/altar_valkyrie.py type 116 subtype 1 end Object altar_valriel editor_folder gods/altars name Altar of Valriel other_arch Valriel type 56 level 100 face altarvalr.111 no_pick 1 resist_physical 100 anim_speed 0.5 animation altar_valriel anim_suffix intervention speed 0.5 end Object Gnarg editor_folder gods/demihumans title Lythander type 50 face smalltroll.111 slaying faerie,dwarf race goblin,giant,troll animation small_troll is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 1024 path_attuned 131088 path_repelled 65537 resist_poison 100 resist_magic -20 hp 500 maxhp 500 ac -5 wc -3 dam 50 level 15 speed 0.25 can_use_shield 1 can_use_weapon 1 can_use_armour 1 can_cast_spell 1 msg Father of goblins, Lord Troll, Master of poisons, Patron of assassins endmsg exp 1 weight 500000 randomitems Gnarg end Object gnarg_avatar editor_folder gods/demihumans face smalltroll.111 slaying faerie,dwarf race goblin,giant,troll animation small_troll is_animated 1 monster 1 move_type walk alive 1 Str 20 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 1025 path_attuned 131088 path_repelled 65792 resist_poison 100 resist_magic -10 resist_physical 40 hp 500 maxhp 500 ac 5 wc 3 dam 30 level 19 speed 0.25 can_use_shield 1 can_use_weapon 1 can_use_armour 1 can_cast_spell 1 exp 1 weight 500000 end Object gnarg_avatar_info editor_folder gods/demihumans type 8 invisible 1 name avatar other_arch gnarg_avatar end Object gnarg_general_info editor_folder gods/demihumans type 8 invisible 1 name message msg You are filled with a desire to slay all faeries and dwarfs. endmsg end Object gnarg_holy_servant_info editor_folder gods/demihumans type 8 invisible 1 name holy servant other_arch small_troll end Object Lythander editor_folder gods/demihumans title Gnarg type 50 face elf_1.111 race faerie slaying goblin,troll animation elf_1 is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 2080 resist_confusion 100 resist_acid -15 resist_poison -30 path_attuned 65552 path_denied 512 ac -7 wc -1 dam 40 hp 350 maxhp 350 level 15 speed 0.25 luck 2 stealth 1 last_sp 1 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 msg Elven god of luck, Huntsman of Goblins, Trollslayer, the Trickster endmsg exp 1 weight 500000 randomitems Lythander end Object lythander_avatar editor_folder gods/demihumans face elf_1.111 race faerie slaying goblin,troll animation elf_1 is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 33 resist_confusion 100 path_attuned 65536 path_repelled 131088 resist_physical 50 ac 3 wc 4 dam 40 hp 350 maxhp 350 level 19 speed 0.25 luck 2 stealth 1 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 exp 1 weight 500000 end Object lythander_avatar_info editor_folder gods/demihumans type 8 invisible 1 name avatar other_arch lythander_avatar end Object lythander_general_info editor_folder gods/demihumans type 8 invisible 1 name message msg You are filled with a desire to slay all goblins and trolls. endmsg end Object lythander_holy_servant_info editor_folder gods/demihumans type 8 invisible 1 name holy servant other_arch unicorn end Object Mostrai editor_folder gods/demihumans title Gnarg type 50 face dwarf.111 race dwarf slaying goblin,giant animation dwarf is_animated 1 monster 1 move_type walk alive 1 attacktype 256 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 path_attuned 18432 path_repelled 64 resist_fire 20 resist_slow -50 resist_confusion -10 ac -10 wc -6 dam 50 hp 350 maxhp 350 level 15 speed 0.20 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 msg Dwarven deity of metal smithing and warcraft, Giant basher, Delver of secrets endmsg exp 1 weight 100000 randomitems Mostrai end Object mostrai_avatar editor_folder gods/demihumans face dwarf.111 race dwarf slaying goblin,giant animation dwarf is_animated 1 monster 1 move_type walk alive 1 attacktype 256 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 path_attuned 18432 path_repelled 64 resist_fire 60 resist_physical 75 ac 1 wc 9 dam 50 hp 350 maxhp 350 level 19 speed 0.20 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 exp 1 weight 100000 end Object mostrai_avatar_info editor_folder gods/demihumans type 8 invisible 1 name avatar other_arch mostrai_avatar end Object mostrai_general_info editor_folder gods/demihumans type 8 invisible 1 name message msg You are filled with a desire to slay all goblins and giants. endmsg end Object mostrai_holy_servant_info editor_folder gods/demihumans type 8 invisible 1 name holy servant other_arch dwarf end Object Valkyrie editor_folder gods/demihumans #title Byd type 50 slaying unnatural,angel,demon,undead face knight.111 animation knight race human,troll monster 1 move_type walk alive 1 attacktype 257 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 path_denied 1048575 path_attuned 0 resist_magic 100 wc 6 dam 20 hp 350 last_sp -5 level 15 speed 0.20 can_cast_spell 0 can_use_weapon 1 can_use_armour 1 can_use_shield 1 msg the Brave, the Just, Deathbringer endmsg exp 1 weight 100000 randomitems Valkyrie end Object valkyrie_general_info editor_folder gods/demihumans type 8 invisible 1 name message msg You are filled with a desire to fight - but with honor, not with filthy magics. endmsg end Object Gaea editor_folder gods/elemental title Devourers face panther.131 race animal,bird,slime,insect,reptile,water_elemental,earth_elemental,air_elemental,fire_elemental slaying undead,unnatural animation panther is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 type 50 attacktype 16384 path_attuned 65 path_denied 393216 resist_drain 100 resist_deplete 100 resist_death 100 resist_fear -100 ac -5 wc -1 dam 50 hp 500 last_heal 2 last_grace 3 maxhp 500 level 15 speed 0.18 can_cast_spell 1 can_use_armour 1 can_use_shield 1 msg Goddess of peace, Guardian of life, Mother of nature endmsg exp 1 weight 500000 randomitems Gaea end Object gaea_avatar editor_folder gods/elemental face panther.131 race animal,bird,slime,insect,reptile,water_elemental,earth_elemental,air_elemental,fire_elemental slaying undead,unnatural animation panther is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 1 path_attuned 526784 path_denied 393216 path_repelled 30 resist_drain 100 resist_deplete 100 resist_death 100 resist_fear -100 resist_physical 50 ac 5 wc 5 dam 40 hp 500 last_heal 2 last_grace 3 maxhp 500 level 19 speed 0.18 can_cast_spell 1 can_use_armour 1 can_use_shield 1 exp 1 weight 500000 end Object gaea_avatar_info editor_folder gods/elemental type 8 invisible 1 name avatar other_arch gaea_avatar end Object gaea_general_info editor_folder gods/elemental type 8 invisible 1 name message msg You are filled with a desire to slay all undead and unnatural creatures. endmsg end Object gaea_holy_servant_info editor_folder gods/elemental type 8 invisible 1 name holy servant other_arch para_earth end Object Ixalovh editor_folder gods/elemental title Ruggilli race chaotic_water_creatures slaying consuming_fire_creatures face witch_water.111 animation Ixalovh is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 type 50 attacktype 17 path_attuned 16388 path_repelled 514 path_denied 65536 resist_fire -30 resist_physical 20 resist_magic 20 resist_cold 80 ac -5 wc -3 dam 60 hp 400 maxhp 400 level 15 speed 0.50 can_use_armour 1 can_use_shield 1 can_use_weapon 1 can_cast_spell 1 msg Chaos Goddess of many tentacles, Sea Serpent, Ocean Wave endmsg exp 1 weight 500000 randomitems Ixalovh end Object ixalovh_avatar editor_folder gods/elemental race chaotic_water_creatures face elem_water.111 animation water_elemental is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 attacktype 17 path_attuned 131074 path_repelled 10500 path_denied 82945 resist_fire -100 resist_cold 100 resist_magic 30 resist_physical 40 ac 5 wc 11 dam 40 hp 400 maxhp 400 level 19 speed 0.50 can_use_weapon 1 can_cast_spell 1 reflect_missile 1 last_heal 1 last_eat 1 exp 1 weight 500000 end Object ixalovh_avatar_info editor_folder gods/elemental type 8 invisible 1 name avatar other_arch ixalovh_avatar end Object ixalovh_general_info editor_folder gods/elemental type 8 invisible 1 name message msg Your blood chills and you can feel the waves of the world. endmsg end Object ixalovh_holy_servant_info editor_folder gods/elemental type 8 invisible 1 name holy servant other_arch water_witch end Object Ruggilli editor_folder gods/elemental title Ixalovh race consuming_fire_creatures slaying chaotic_water_creatures face elem_fire.111 animation fire_elemental is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 type 50 attacktype 5 path_attuned 131074 path_repelled 2308 path_denied 65536 resist_fire 100 resist_physical 30 resist_magic 30 resist_cold -30 ac -5 wc -3 dam 60 hp 400 maxhp 400 level 15 speed 0.50 can_use_weapon 1 can_cast_spell 1 reflect_missile 1 last_heal 1 last_eat -1 msg Chaos God of slaughter and terror, Consuming worm, Greedy gut endmsg exp 1 weight 500000 randomitems Ruggilli end Object ruggilli_avatar editor_folder gods/elemental race consuming_fire_creatures face elem_fire.111 animation fire_elemental is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 attacktype 5 path_attuned 131074 path_repelled 10500 path_denied 82945 resist_fire 100 resist_cold -100 resist_magic 30 resist_physical 40 ac 5 wc 11 dam 40 hp 400 maxhp 400 level 19 speed 0.50 can_use_weapon 1 can_cast_spell 1 reflect_missile 1 last_heal 1 last_eat 1 exp 1 weight 500000 end Object ruggilli_avatar_info editor_folder gods/elemental type 8 invisible 1 name avatar other_arch ruggilli_avatar end Object ruggilli_general_info editor_folder gods/elemental type 8 invisible 1 name message msg You feel a bond with all things which are made of fire. endmsg end Object ruggilli_holy_servant_info editor_folder gods/elemental type 8 invisible 1 name holy servant other_arch dragon end Object Sorig editor_folder gods/elemental type 50 face para_light.111 race air_elemental animation para_lightning is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 attacktype 8 resist_electricity 100 path_attuned 131096 path_repelled 256 path_denied 65537 ac -5 wc -1 dam 40 hp 300 maxhp 300 level 15 speed 0.40 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 msg Lord of Storms, King of Thunder and Lightning, Sky Lord endmsg exp 1 weight 1 randomitems Sorig end Object sorig_avatar editor_folder gods/elemental face para_light.111 race para_air,air_elemental,para_lightning animation para_lightning is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 attacktype 8 resist_electricity 100 resist_physical 40 path_attuned 131096 path_repelled 256 path_denied 66561 ac 5 wc 5 dam 40 hp 300 maxhp 300 level 19 speed 0.40 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 exp 1 weight 1 end Object sorig_avatar_info editor_folder gods/elemental type 8 invisible 1 name avatar other_arch sorig_avatar end Object sorig_general_info editor_folder gods/elemental type 8 invisible 1 name message msg You feel a bond with all things which are made of air and lightning. endmsg end Object sorig_holy_servant_info editor_folder gods/elemental type 8 invisible 1 name holy servant other_arch para_lightning end Object bow_lythander editor_folder gods/items name Lythander's Elven Bow name_pl Lythander's Elven Bows client_type 150 race arrows face elven_bow.111 msg You look at this wonderful bow with pride. It is only granted to the best of Lythander's disciples. endmsg luck 1 sp 70 dam 30 wc 3 nrof 1 startequip 1 attacktype 1 type 14 weight 8000 magic 5 body_arm -2 skill missile weapons end Object bracers_gnarg editor_folder gods/items nrof 1 name bracers title of strength of Wargs face bracersdex.111 msg An exceptional pair of bracers. Not only do they provide the wearer with protection from cold, they also increase the wearer's damage and strength, and help heal the body from damage. A mighty gift from Gnarg sent to aid you in annihilating His enemies. endmsg type 104 Str 2 resist_physical 30 resist_cold 20 Dam 15 hp 1 value 65000 weight 9000 startequip 1 name_pl bracers client_type 310 body_wrist -2 end Object burningtail editor_folder gods/items/burning_tail name Burning Tail of many lashings of Ruggilli nrof 1 last_sp 8 type 15 face burningtail.111 weapontype 6 animation burningtail anim_speed 10 client_anim_random 1 material 256 dam 40 weight 10000 value 75000 magic 15 resist_cold 25 resist_fire 15 attacktype 4101 startequip 1 name_pl Burning Tails of many lashings of Ruggilli client_type 100 body_arm -1 item_power 25 glow_radius 3 skill one handed weapons end Object shield_gaea editor_folder gods/items/earth_shield name Gaea's Shield of Earth face earth_shield.111 animation shield_gaea msg This shield is highly enchanted by the forces of life and nature. It is a personal gift from Gaea, to protect her beloved children. endmsg is_animated 1 ac 4 anim_speed 5 client_anim_random 1 nrof 1 startequip 1 type 33 resist_physical 15 resist_fire 30 resist_cold 30 resist_electricity 30 resist_ghosthit -20 weight 20000 name_pl Gaea's Shields of Earth client_type 260 body_arm -1 end Object glovesofsun editor_folder gods/items/glovesofsun name Gloves of the Sun name_pl Gloves of the Sun client_type 300 msg This pair of gloves will aid any of Gaea's most faithful in seeing her will protected. endmsg nrof 1 type 100 face glovesofsun.111 animation glovesofsun anim_speed 4 client_anim_random 1 material 8 weight 900 value 20000 attacktype 5 ac 1 dam 2 Dex 2 wc 2 magic 1 startequip 1 body_hand -2 end Object helmet_gnarg editor_folder gods/items name Gnarg's Orc Helmet name_pl Gnarg's Orc Helmets client_type 270 face bighorn_he.111 msg This helmet good protection. From mighty Gnarg it is. endmsg Dex 1 ac 3 nrof 1 startequip 1 type 34 resist_physical 20 resist_poison 30 weight 7000 gen_sp_armour 1 body_head -1 end Object horn_siren editor_folder gods/items name horn title of the Sirens face shellhorn1.111 randomitems horn_siren msg Putting this shell to your ear, you hear a strange and haunting melody. endmsg type 3 level 40 value 590 weight 1500 material 2 hp 20 maxhp 20 speed 0.2 name_pl horns startequip 1 client_type 721 body_range -1 end Object horn_waves editor_folder gods/items name horn title of Ocean Waves face shellhorn2.111 randomitems horn_waves msg Putting this shell to your ear, you hear the crashing sound of ocean waves. endmsg type 3 level 30 value 590 weight 1000 material 2 hp 24 maxhp 24 speed 0.1 name_pl horns client_type 721 startequip 1 body_range -1 end Object mail_mostrai editor_folder gods/items name Thorin's Plate Mail name_pl Thorin's Plate Mails client_type 250 face plate_mail.111 msg This shining plate mail is Mostrai's gift to the bravest of his warriors. It is highly enchanted, increasing the strength of the wearer and protecting against fire. endmsg ac 3 Str 1 nrof 1 startequip 1 type 16 resist_physical 50 resist_fire 30 weight 50000 magic 2 gen_sp_armour 9 last_sp 13 body_torso -1 item_power 4 end Object mithril_ar_ele_sorig editor_folder gods/items nrof 1 name mithril chainmail of lightning of Sorig type 16 face mithril_ar_ele.111 animation mithril_ar_ele anim_speed 3 client_anim_random 1 ac 6 resist_physical 40 resist_electricity 40 msg Sorig has granted you this fine mail. It grants great protection from electricity and physical attacks without reducing your mobility. Be warned that what Sorig gives, Sorig can take away. endmsg startequip 1 Dex 1 Str 1 exp 1 magic 5 gen_sp_armour 2 last_sp 27 weight 15000 value 4000 name_pl mithril chainmails of lightning of Sorig client_type 250 body_torso -1 item_power 10 end Object pipe_lythander editor_folder gods/items name Lythander's pipe name_pl Lythander's pipes face claypipe.111 randomitems pipe_lythander msg This pipe is the finest you have ever seen. Imagine the smoke rings you could blow with it... endmsg type 3 luck 1 material 256 hp 60 level 35 maxhp 60 speed 0.1 value 58 weight 40 client_type 721 body_range -1 startequip 1 end Object spear_ixalovh editor_folder gods/items name Ixalovh's spear nrof 1 last_sp 9 type 15 face spear_ixalovh.111 weapontype 5 animation spear_ixalovh anim_speed 10 client_anim_random 1 Pow 1 sp 1 material 256 dam 35 weight 26500 value 75000 magic 12 resist_magic 10 resist_fire 15 attacktype 17 startequip 1 name_pl Ixalovh's spears client_type 136 can_impale 1 glow_radius 2 body_arm -2 item_power 20 skill two handed weapons end Object tear_gaea editor_folder gods/items name Gaea's tear face tear.111 animation tear_gaea nrof 1 level 10 anim_speed 4 client_anim_random 1 type 5 weight 10 name_pl Gaea's tears client_type 650 arch spell_heal end end Object valkyrie_amulet_lifesave editor_folder gods/items name Valkyrie's Torc name_pl Valkyrie's Torcs title of Lifesaving face torc.111 type 39 material 12 weight 600 value 20000 lifesave 1 nrof 1 client_type 381 body_neck -1 item_power 3 startequip 1 inv_locked 1 end Object god_cure_blindness editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying cure blindness end Object god_cure_confusion editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying cure confusion end Object god_cure_disease editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying cure disease end Object god_cure_poison editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying cure poison end Object god_enchant_weapon_high editor_folder gods/randomitems name enchant weapon face blank.111 invisible 1 type 8 level 4 end Object god_enchant_weapon_low editor_folder gods/randomitems name enchant weapon face blank.111 invisible 1 type 8 level 10 end Object god_enchant_weapon_medium editor_folder gods/randomitems name enchant weapon face blank.111 invisible 1 type 8 level 6 end Object god_grace_limit_high editor_folder gods/randomitems name grace limit face god_grace_limit.111 invisible 1 type 8 grace 600 end Object god_grace_limit_insane editor_folder gods/randomitems name grace limit face god_grace_limit.111 invisible 1 type 8 grace 1000 end Object god_grace_limit_low editor_folder gods/randomitems name grace limit face god_grace_limit.111 invisible 1 type 8 grace 100 end Object god_grace_limit_medium editor_folder gods/randomitems name grace limit face god_grace_limit.111 invisible 1 type 8 grace 300 end Object god_grace_limit_wimpy editor_folder gods/randomitems name grace limit face god_grace_limit.111 invisible 1 type 8 grace 35 end Object god_heal editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying heal end Object god_major_healing editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying major healing end Object god_medium_healing editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying medium healing end Object god_minor_healing editor_folder gods/randomitems type 8 invisible 1 name heal spell slaying minor healing end Object god_remove_curse editor_folder gods/randomitems type 8 invisible 1 name remove curse end Object god_remove_damnation editor_folder gods/randomitems type 8 invisible 1 name remove damnation end Object god_remove_depletion editor_folder gods/randomitems type 8 invisible 1 name heal depletion end Object god_restore_grace editor_folder gods/randomitems type 8 invisible 1 name restore grace end Object god_restore_hitpoints editor_folder gods/randomitems type 8 invisible 1 name restore hitpoints end Object god_restore_spellpoints_high editor_folder gods/randomitems type 8 invisible 1 name restore spellpoints maxsp 150 end Object god_restore_spellpoints_low editor_folder gods/randomitems type 8 invisible 1 name restore spellpoints maxsp 80 end Object god_restore_spellpoints_medium editor_folder gods/randomitems type 8 invisible 1 name restore spellpoints maxsp 100 end Object god_restore_spellpoints_very_high editor_folder gods/randomitems type 8 invisible 1 name restore spellpoints maxsp 200 end Object god_spellbook_protection_from_fire editor_folder gods/randomitems name prayerbook slaying protection from fire face quarto.111 type 85 skill literacy material 1 value 0 weight 5000 identified 1 startequip 1 nrof 1 end Object Devourers editor_folder gods/supernatural type 50 title Gaea face grimreaper.112 race undead animation grimreaper is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 16973824 path_attuned 393216 path_denied 65536 path_repelled 524547 resist_drain 100 resist_fear 100 resist_deplete 100 resist_death 100 resist_ghosthit 50 resist_poison 100 resist_cold 15 resist_fire -5 ac -12 wc -1 hp 350 maxhp 350 dam 50 last_eat 60 last_heal -1 level 15 speed 0.35 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 undead 1 can_see_in_dark 1 msg Soul Eaters, Harbingers of Death, Nameless Lords of the Tomb endmsg exp 1 weight 1 randomitems Devourers end Object devourers_avatar editor_folder gods/supernatural face grimreaper.112 race undead animation grimreaper is_animated 1 monster 1 move_type walk alive 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 attacktype 196752 path_attuned 262144 path_denied 590082 path_repelled 129 resist_death 100 resist_deplete 100 resist_fear 100 resist_drain 100 resist_fire -50 resist_cold 50 resist_physical 20 ac 1 wc 10 hp 350 maxhp 350 dam 40 last_eat -3 last_heal -1 level 19 speed 0.35 can_cast_spell 1 can_use_weapon 1 can_use_armour 1 can_use_shield 1 undead 1 can_see_in_dark 1 exp 1 weight 1 end Object devourers_avatar_info editor_folder gods/supernatural type 8 invisible 1 name avatar other_arch devourers_avatar end Object devourers_general_info editor_folder gods/supernatural type 8 invisible 1 name message msg You feel a bond with all things which are undead. endmsg end Object devourers_holy_servant_info editor_folder gods/supernatural type 8 invisible 1 name holy servant other_arch wight end Object Gorokh editor_folder gods/supernatural title Valriel type 50 face devil.111 slaying angel race demon animation devil is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 attacktype 16384 path_attuned 131072 path_repelled 257 resist_magic 30 resist_cold -5 resist_fear 100 ac -5 wc -3 dam 50 hp 350 maxhp 350 level 15 speed 0.25 luck -1 last_heal -2 last_sp -1 can_cast_spell 1 can_use_armour 1 can_use_weapon 1 can_use_shield 1 msg Demon King, Duke of Hell, Temptor and Tormentor endmsg exp 1 weight 400000 randomitems Gorokh end Object gorokh_avatar editor_folder gods/supernatural face devil.111 slaying angel race demon animation devil is_animated 1 Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 monster 1 move_type walk alive 1 attacktype 16385 path_attuned 393216 path_denied 1025 resist_physical 50 resist_fear 100 resist_magic 20 ac 5 wc 3 dam 40 hp 350 maxhp 350 level 19 speed 0.25 can_cast_spell 1 can_use_armour 1 can_use_weapon 1 can_use_shield 1 exp 1 weight 400000 end Object gorokh_avatar_info editor_folder gods/supernatural type 8 invisible 1 name avatar other_arch gorokh_avatar end Object gorokh_general_info editor_folder gods/supernatural type 8 invisible 1 name message msg You are filled with a desire to slay all angels. endmsg end Object gorokh_holy_servant_info editor_folder gods/supernatural type 8 invisible 1 name holy servant other_arch devil end Object Valriel editor_folder gods/supernatural title Gorokh face highangel.115 slaying demon race angel animation highangel Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 is_animated 1 type 50 monster 1 move_type walk alive 1 attacktype 4194304 path_attuned 1025 path_denied 393216 resist_confusion 20 resist_blind 100 resist_fear 100 ac -7 wc -1 hp 350 maxhp 350 dam 50 level 15 speed 0.25 can_cast_spell 1 can_use_armour 1 can_use_weapon 1 can_use_shield 1 msg Lord of Angels, Duke of the Heavens, Healer and Protector endmsg exp 1 weight 100000 randomitems Valriel end Object valriel_avatar editor_folder gods/supernatural face highangel.115 slaying demon race angel animation highangel Str 30 Con 30 Dex 30 Int 30 Wis 30 Pow 30 is_animated 1 monster 1 move_type walk alive 1 attacktype 4194305 path_attuned 1025 path_denied 393216 resist_confusion 20 resist_blind 100 resist_fear 100 resist_physical 50 ac 3 wc 7 hp 350 maxhp 350 dam 40 level 19 speed 0.25 can_cast_spell 1 can_use_armour 1 can_use_weapon 1 can_use_shield 1 exp 1 weight 100000 end Object valriel_avatar_info editor_folder gods/supernatural type 8 invisible 1 name avatar other_arch valriel_avatar end Object valriel_general_info editor_folder gods/supernatural type 8 invisible 1 name message msg You are filled with a desire to slay all demons. endmsg end Object valriel_holy_servant_info editor_folder gods/supernatural type 8 invisible 1 name holy servant other_arch angel end Object valriel_player_glow editor_folder gods/supernatural name Valriel's light face highangel.115 glow_radius 9 type 98 startequip 1 invisible 1 end Object lake editor_folder ground/Lake face blake_0.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_n editor_folder ground/Lake face blake_1.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_e editor_folder ground/Lake face blake_2.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_ne editor_folder ground/Lake face blake_3.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_s editor_folder ground/Lake face blake_4.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_sn editor_folder ground/Lake face blake_5.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_se editor_folder ground/Lake face blake_6.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_nes editor_folder ground/Lake face blake_7.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_w editor_folder ground/Lake face blake_8.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_nw editor_folder ground/Lake face blake_9.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_ew editor_folder ground/Lake face blake_A.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_new editor_folder ground/Lake face blake_B.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_sw editor_folder ground/Lake face blake_C.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_nse editor_folder ground/Lake face blake_D.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_sew editor_folder ground/Lake face blake_E.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_center editor_folder ground/Lake face blake_F.111 move_block all no_pick 1 is_water 1 is_floor 1 smoothlevel 255 end Object biglake_0 editor_folder ground/Lake face blake_0.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_3_3 editor_folder ground/Lake face blake_1.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_3_4 editor_folder ground/Lake face blake_2.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_2_2_3 editor_folder ground/Lake face blake_3.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_3_1 editor_folder ground/Lake face blake_4.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_2_1_2 editor_folder ground/Lake face blake_5.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_2_2_4 editor_folder ground/Lake face blake_6.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_1_3 editor_folder ground/Lake face blake_7.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_3_2 editor_folder ground/Lake face blake_8.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_2_2_2 editor_folder ground/Lake face blake_9.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_2_1_1 editor_folder ground/Lake face blake_A.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_1_1 editor_folder ground/Lake face blake_B.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_2_2_1 editor_folder ground/Lake face blake_C.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_1_4 editor_folder ground/Lake face blake_D.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_1_2 editor_folder ground/Lake face blake_E.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object biglake_4 editor_folder ground/Lake face blake_F.111 move_block all no_pick 1 is_water 1 is_floor 1 smoothlevel 255 end Object mountain_cave editor_folder ground/Mountain name cave type 66 face moun_cave1.111 no_pick 1 is_floor 1 smoothlevel 100 client_type 25012 end Object mountain_cave2 editor_folder ground/Mountain name cave type 66 face moun_cave2.111 no_pick 1 is_floor 1 smoothlevel 100 client_type 25012 end Object mountain editor_folder ground/Mountain name mountains face mountain1.111 type 67 race /terrain/mountain move_on walk no_pick 1 blocksview 1 is_hilly 1 move_slow walk move_slow_penalty 5 smoothlevel 100 is_floor 1 end Object mountain2 editor_folder ground/Mountain name high mountains face mountain2.111 type 67 race /terrain/mountain move_on walk no_pick 1 is_hilly 1 move_slow walk move_slow_penalty 10 blocksview 1 smoothlevel 100 is_floor 1 end Object mountain3 editor_folder ground/Mountain name mountains face mountain3.111 type 67 race /terrain/mountain move_on walk no_pick 1 blocksview 1 is_hilly 1 move_slow walk move_slow_penalty 5 end Object mountain4 editor_folder ground/Mountain name high mountains face mountain4.111 type 67 race /terrain/mountain no_pick 1 move_block all blocksview 1 smoothlevel 100 is_floor 1 end Object mountain5 editor_folder ground/Mountain name very high mountains face mountain5.111 type 67 race /terrain/mountain no_pick 1 move_block all blocksview 1 smoothlevel 102 is_floor 1 end Object mountain_2 editor_folder ground/Mountain name high mountain face mountain_2.x11 no_pick 1 move_slow walk move_slow_penalty 20 is_hilly 1 blocksview 1 is_floor 1 end More Object mountain_2_2 editor_folder ground/Mountain name high mountain face mountain_2.x11 no_pick 1 x 1 move_slow walk move_slow_penalty 20 is_hilly 1 blocksview 1 is_floor 1 end More Object mountain_2_3 editor_folder ground/Mountain name high mountain face mountain_2.x11 no_pick 1 y 1 move_slow walk move_slow_penalty 20 is_hilly 1 blocksview 1 is_floor 1 end More Object mountain_2_4 editor_folder ground/Mountain name high mountain face mountain_2.x11 no_pick 1 x 1 y 1 move_slow walk move_slow_penalty 20 is_hilly 1 blocksview 1 is_floor 1 end Object s_mountain_cave editor_folder ground/Mountain name snow cave type 66 face s_moun_cave.111 no_pick 1 is_floor 1 client_type 25012 end Object s_mountain editor_folder ground/Mountain name mountains face s_mountain.111 type 67 race /terrain/mountain move_on walk no_pick 1 blocksview 1 is_hilly 1 move_slow walk move_slow_penalty 8 is_floor 1 end Object gstone_4 editor_folder ground/Pstone name mossy rocks face gstone_4.111 no_pick 1 is_floor 1 move_slow walk move_slow_penalty 1 is_hilly 1 end Object phole_1 editor_folder ground/Pstone name hole in the sand type 66 face phole_1.111 no_pick 1 client_type 25012 end Object phole_2 editor_folder ground/Pstone name hole in the stones type 66 face phole_2.111 no_pick 1 client_type 25012 end Object phole_3 editor_folder ground/Pstone name hole in the stones type 66 face phole_3.111 no_pick 1 move_on walk client_type 25012 end Object pstone_1 editor_folder ground/Pstone name sand face pstone_1.111 no_pick 1 is_floor 1 smoothlevel 18 move_block boat swim end Object pstone_2 editor_folder ground/Pstone name stones and sand face pstone_2.111 no_pick 1 is_floor 1 smoothlevel 18 end Object pstone_3 editor_folder ground/Pstone name stones face pstone_3.111 no_pick 1 is_floor 1 smoothlevel 18 end Object pstone_4 editor_folder ground/Pstone name big stones face pstone_4.111 no_pick 1 is_floor 1 move_slow walk move_slow_penalty 1 is_hilly 1 smoothlevel 37 end Object pstone_5 editor_folder ground/Pstone name crater face pstone_5.111 no_pick 1 is_floor 1 move_slow walk move_slow_penalty 2 is_hilly 1 end Object crater editor_folder ground/Stone face crater.111 no_pick 1 move_slow walk move_slow_penalty 3 is_hilly 1 is_floor 1 smoothlevel 12 end Object large_stones editor_folder ground/Stone name stones face largestone.111 no_pick 1 move_slow walk move_slow_penalty 2 is_hilly 1 is_floor 1 smoothlevel 15 end Object medium_stones editor_folder ground/Stone name stones face mediumston.111 no_pick 1 move_slow walk move_slow_penalty 1 is_hilly 1 is_floor 1 smoothlevel 14 end Object small_stones editor_folder ground/Stone name stones face smallstone.111 no_pick 1 is_floor 1 smoothlevel 13 end Object mountain1_rivlets editor_folder ground/Weather name rivlets face mountain1_rivlets.111 no_pick 1 is_water 1 end Object mountain1_snow editor_folder ground/Weather name snow face mountain1_snow.111 no_pick 1 is_water 1 end Object mountain2_rivlets editor_folder ground/Weather name rivlets face mountain2_rivlets.111 no_pick 1 is_water 1 end Object mountain2_snow editor_folder ground/Weather name snow face mountain2_snow.111 no_pick 1 is_water 1 end Object mountain_foilage editor_folder ground/Weather name foilage face mountain_foilage.111 no_pick 1 is_water 1 end Object rain editor_folder ground/Weather name rain face rain.111 animation rain material 512 no_pick 1 is_water 1 map_layer fly anim_speed 1 client_anim_random 1 end Object rain1 editor_folder ground/Weather name puddle face rain1.111 no_pick 1 is_water 1 end Object rain2 editor_folder ground/Weather name rain face rain.111 animation rain material 512 no_pick 1 is_water 1 map_layer fly anim_speed 1 client_anim_random 1 end Object rain3 editor_folder ground/Weather name big puddle face rain3.111 no_pick 1 is_water 1 end Object rain4 editor_folder ground/Weather name big puddle face rain4.111 no_pick 1 is_water 1 end Object rain5 editor_folder ground/Weather name puddle face rain2.111 no_pick 1 is_water 1 end Object snow_c editor_folder ground/Weather name snow face snow_c.111 animation snow_c materialname ice no_pick 1 is_water 1 map_layer fly anim_speed 3 client_anim_random 1 end Object cforest1 editor_folder ground/Winter face cforest1.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 is_floor 1 end Object cforest2 editor_folder ground/Winter face cforest2.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 is_floor 1 end Object cforest3 editor_folder ground/Winter face cforest3.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 is_floor 1 end Object cforest4 editor_folder ground/Winter face cforest4.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 end Object cforest5 editor_folder ground/Winter face cforest5.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 end Object cforest6 editor_folder ground/Winter face cforest6.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 end Object christmas_tree5 editor_folder ground/Winter name christmas tree face tree_5_christmas.x11 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 glow_radius 2 end Object christmas_s_tree5 editor_folder ground/Winter name snow covered christmas tree face s_tree_5_christmas.x11 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 glow_radius 2 end Object drifts editor_folder ground/Winter face drifts.111 type 67 race /terrain/hills move_on walk is_hilly 1 no_pick 1 move_slow walk move_slow_penalty 3 is_floor 1 smoothlevel 24 end Object evil_ice editor_folder ground/Winter type 102 subtype 7 level 1 move_on walk wc -30 lifesave 1 name strange looking ice face evil_ice.111 animation evil_ice speed 0.2 no_pick 1 attacktype 16 hp 1 dam 10 is_floor 1 end Object glacier editor_folder ground/Winter name glacier face glacier.111 type 67 race /terrain/mountain move_on walk is_hilly 1 no_pick 1 move_slow walk move_slow_penalty 15 is_floor 1 dam 2 attacktype 16 smoothlevel 23 end Object ice editor_folder ground/Winter name ice face ice.111 move_slow walk move_slow_penalty 8 no_pick 1 smoothlevel 22 end Object ice2 editor_folder ground/Winter name Ice face ice2.111 no_pick 1 is_floor 1 smoothlevel 4 end Object ihole editor_folder ground/Winter name hole in the snow type 66 face ihole.111 no_pick 1 client_type 25012 end Object ipond editor_folder ground/Winter name small pond type 67 race /terrain/plains move_on walk face ipond.111 no_pick 1 is_floor 1 smoothlevel 21 end Object istone editor_folder ground/Winter name ice_stone face istone.111 no_pick 1 is_floor 1 smoothlevel 3 end Object s_tree5 editor_folder ground/Winter name snow covered tree face s_tree_5.x11 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object snow editor_folder ground/Winter name snow face snow.111 no_pick 1 is_floor 1 smoothlevel 21 end Object snow2 editor_folder ground/Winter name snow face snow2.111 no_pick 1 is_floor 1 smoothlevel 25 end Object snow3 editor_folder ground/Winter name snow face snow3.111 no_pick 1 is_floor 1 smoothlevel 26 end Object snow4 editor_folder ground/Winter name snow face snow4.111 no_pick 1 smoothlevel 31 end Object snow5 editor_folder ground/Winter name light snow face snow5.111 no_pick 1 smoothlevel 100 end Object snowroad editor_folder ground/Winter name road face snowroad.111 no_pick 1 is_floor 1 smoothlevel 3 end Object snowroad2 editor_folder ground/Winter name road face snowroad2.111 no_pick 1 is_floor 1 smoothlevel 3 end Object spalm editor_folder ground/Winter name snow covered palm face spalm.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object spalms1 editor_folder ground/Winter name snow covered palms face spalms1.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 end Object spalms2 editor_folder ground/Winter name snow covered palms face spalms2.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 end Object brush editor_folder ground/Wood face brush.111 type 67 move_on walk race /terrain/plains no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 is_floor 1 smoothlevel 40 move_block boat swim end Object cyanbrush editor_folder ground/Wood face cyanbrush.111 type 67 move_on walk race /terrain/plains no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 is_floor 1 smoothlevel 45 move_block boat swim end Object darkforest editor_folder ground/Wood face darkforest.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 5 is_wooded 1 blocksview 1 is_floor 1 smoothlevel 136 move_block boat swim end Object evergreens editor_folder ground/Wood face evergreens.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 is_floor 1 smoothlevel 135 move_block boat swim end Object evergreens2 editor_folder ground/Wood name evergreens face evergreens_2.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 smoothlevel 125 move_block boat swim end Object jungle_1 editor_folder ground/Wood name jungle face jungle_1.111 type 67 race /terrain/jungle move_on walk no_pick 1 blocksview 1 move_slow walk move_slow_penalty 5 smoothlevel 129 is_wooded 1 is_floor 1 move_block boat swim end Object jungle_2 editor_folder ground/Wood name jungle face jungle_2.111 type 67 race /terrain/jungle move_on walk no_pick 1 move_slow walk move_slow_penalty 5 is_wooded 1 blocksview 1 smoothlevel 128 is_floor 1 move_block boat swim end Object tree editor_folder ground/Wood face tree_1.111 move_slow walk move_slow_penalty 1 is_wooded 1 no_pick 1 is_floor 1 smoothlevel 125 end Object evergreen editor_folder ground/Wood face tree_2.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 smoothlevel 125 end Object tree3 editor_folder ground/Wood name tree face tree_3.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object tree4 editor_folder ground/Wood name tree face tree_4.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object tree5 editor_folder ground/Wood name tree face tree_5.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object tree6 editor_folder ground/Wood name tree face tree_6.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object treed_hills editor_folder ground/Wood face treed_hills.111 type 67 race /terrain/hills move_on walk is_hilly 1 no_pick 1 is_wooded 1 move_slow walk move_slow_penalty 5 is_floor 1 smoothlevel 130 move_block boat swim end Object woods editor_folder ground/Wood face woods_1.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 smoothlevel 127 move_block boat swim end Object woods_2 editor_folder ground/Wood name woods face woods_2.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 smoothlevel 127 move_block boat swim end Object woods_3 editor_folder ground/Wood name woods face woods_3.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 smoothlevel 127 move_block boat swim end Object woods4 editor_folder ground/Wood name woods4 face woods_4.111 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 12 move_block boat swim end Object woods5 editor_folder ground/Wood name woods face woods_5.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 move_block boat swim end Object ytree editor_folder ground/Wood name tree face ytree_1.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object ytree_2 editor_folder ground/Wood name tree face ytree_2.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object battleground editor_folder ground name battleground face pstone_1.111 type 58 no_pick 1 is_floor 1 end Object beach editor_folder ground face beach.111 type 67 race /terrain/desert move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 0 is_floor 1 smoothlevel 10 move_block boat swim end Object blackrock editor_folder ground name blackrock face blackrock.111 no_pick 1 is_floor 1 smoothlevel 50 end Object blood_sea editor_folder ground face blood_sea.111 animation blood_sea name sea of blood name_pl sea of blood smoothlevel 29 anim_speed 5 client_anim_sync 1 move_block all no_pick 1 is_water 1 is_floor 1 end Object brefjell editor_folder ground face brefjell.111 blocksview 1 no_pick 1 move_block all end Object chaos editor_folder ground type 102 subtype 7 move_on walk level 1 wc -30 lifesave 1 name chaos face ball_lightning.111 animation chaos speed 1 no_pick 1 attacktype 262144 dam 2 is_floor 1 end Object major_chaos editor_folder ground type 102 subtype 7 move_on walk level 1 wc -30 lifesave 1 name chaos face ball_lightning.111 animation major_chaos speed 1 no_pick 1 attacktype 262144 dam 10 is_floor 1 end Object chaos_ball editor_folder ground name chaos type 102 subtype 7 level 1 move_on walk fly_low wc -30 lifesave 1 face ball_lightning.111 animation chaos_ball is_used_up 1 random_movement 1 speed 1 attacktype 262144 move_type fly_low no_pick 1 dam 5 end Object cmarsh editor_folder ground name cold marsh face cmarsh.111 type 67 race /terrain/swamp move_on walk no_pick 1 is_water 1 move_slow walk move_slow_penalty 20 is_wooded 0 is_floor 1 smoothlevel 8 end Object cyangrass editor_folder ground face cyangrass.111 type 67 race /terrain/plains move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 45 end Object cyangrass_only editor_folder ground name cyangrass face cyangrass.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 45 end Object cyangrasspond editor_folder ground name small pond type 67 race /terrain/plains move_on walk face cyangrasspond.111 no_pick 1 is_water 1 is_floor 1 smoothlevel 45 end Object deep_sea editor_folder ground face deep_sea.111 animation deep_sea smoothlevel 17 anim_speed 5 client_anim_sync 1 no_pick 1 is_water 1 is_floor 1 move_block all -boat end Object deep_swamp editor_folder ground name swamp type 138 face deep_swamp.111 speed -0.07 animation deep_swamp no_pick 1 is_water 1 move_on walk move_slow walk move_slow_penalty 5 is_wooded 1 smoothlevel 8 is_floor 1 end Object desert editor_folder ground face desert.111 type 67 race /terrain/desert move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 smoothlevel 37 move_block boat swim end Object falls editor_folder ground face falls.111 is_water 1 no_pick 1 end Object falls_2 editor_folder ground face falls2.111 is_water 1 no_pick 1 end Object falls_3 editor_folder ground face falls3.111 is_water 1 no_pick 1 end Object falls_4 editor_folder ground face falls4.111 is_water 1 no_pick 1 end Object farmland editor_folder ground face farmland.111 type 67 move_on walk is_floor 1 no_pick 1 is_wooded 1 move_slow walk move_slow_penalty 1 smoothlevel 35 move_block boat swim end Object flowers_permanent editor_folder ground name flower name_pl flowers material 32 face flowers.111 weight 20 nrof 1 end Object fog editor_folder ground face fog.111 other_arch fog animation fog type 67 move_type fly_low no_pick 1 is_used_up 1 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_cancellation 100 resist_deplete 100 resist_death 100 material 1 changing 1 generator 1 speed 0.001 blocksview 1 end Object fog_wall editor_folder ground name fog face fog.111 animation fog_wall type 102 subtype 7 move_type fly_low no_pick 1 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_cancellation 100 resist_deplete 100 resist_death 100 material 1 changing 1 speed 0.001 blocksview 1 end Object glue editor_folder ground face glue.111 anim_speed 15 client_anim_random 1 animation glue no_pick 1 move_slow walk move_slow_penalty 4 material 32 end Object goldgrass editor_folder ground name drop 10 gold coins slaying goldcoin msg Click! endmsg type 18 activate_on_push 1 activate_on_release 1 face goldgrass.111 food 10 animation goldgrass no_pick 1 move_on walk is_floor 1 end Object grass editor_folder ground face grass.111 type 67 race /terrain/plains move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 40 move_block boat swim end Object grass_only editor_folder ground name grass face grass.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 40 move_block boat swim end Object grasspond editor_folder ground name small pond type 67 race /terrain/plains move_on walk face grasspond.111 no_pick 1 is_water 1 is_floor 1 smoothlevel 40 move_block boat swim end Object hills editor_folder ground face hills.111 type 67 race /terrain/hills move_on walk is_hilly 1 no_pick 1 move_slow walk move_slow_penalty 3 is_floor 1 smoothlevel 59 move_block boat swim end Object hills_rocky editor_folder ground name hills face hillsrocky.111 type 67 race /terrain/hills move_on walk is_hilly 1 no_pick 1 move_slow walk move_slow_penalty 2 is_floor 1 smoothlevel 60 move_block boat swim end Object lava editor_folder ground type 102 subtype 7 level 1 move_on walk wc -30 name lava face lava.111 animation lava smoothlevel 28 speed 0.2 no_pick 1 attacktype 4 duration 60 dam 3 is_floor 1 move_block boat swim end Object permanent_lava editor_folder ground type 102 subtype 7 level 1 move_on walk wc -30 lifesave 1 name lava face lava.111 animation permanent_lava speed 0.2 no_pick 1 smoothlevel 28 attacktype 4 hp 1 dam 3 is_floor 1 move_block boat swim end Object marsh editor_folder ground face marsh.111 type 67 race /terrain/swamp move_on walk no_pick 1 is_water 1 move_slow walk move_slow_penalty 15 is_wooded 1 smoothlevel 9 is_floor 1 move_block boat swim end Object dunes editor_folder ground/new face dunes.111 type 67 race /terrain/desert move_on walk no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 36 is_floor 1 end Object earth editor_folder ground/new name earth face earth.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 11 end Object fernsdense editor_folder ground/new face fernsdense.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 3 is_wooded 1 end Object fernssparse editor_folder ground/new face fernssparse.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 end Object forestsparse editor_folder ground/new face forestsparse.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 end Object grass_br_gr editor_folder ground/new name dying grass face grass_br_gr.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 38 end Object grassbrown editor_folder ground/new name brown grass face grassbrown.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 37 end Object grassdark editor_folder ground/new name dark grass face grassdark.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 39 end Object grassmedium editor_folder ground/new name medium grass face grassmedium.111 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 smoothlevel 41 end Object palm editor_folder ground/new name palm face palm.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 end Object palms editor_folder ground/new face palms.111 type 67 race /terrain/forest move_on walk no_pick 1 move_slow walk move_slow_penalty 2 is_wooded 1 end Object Nimground3_purple editor_folder ground/nimground name purple flesh face Nimground3_purple.111 animation Nimground3_purple no_pick 1 is_floor 1 speed 0.3 end Object oil_sea editor_folder ground face oil_sea.111 animation oil_sea name oil ocean name_pl oil ocean smoothlevel 16 anim_speed 10 client_anim_sync 1 move_block all no_pick 1 is_water 1 is_floor 1 end Object oil_sea_ultra_viscous editor_folder ground #So thick you can almost walk on it (To be used where one needs walk-on-able/nonblocking oil) #(ex: some random maps). For most applications you should use the regular oil_sea #which will be swimmable as water is (but much slower swimming of course) face oil_sea.111 animation oil_sea_ultra_viscous name ultra viscous oil name_pl ultra viscous oil smoothlevel 16 anim_speed 10 client_anim_sync 1 no_pick 1 is_water 1 is_floor 1 end Object quicksilver_sea editor_folder ground face quicksilver_sea.111 animation quicksilver_sea name quicksilver sea name_pl quicksilver sea smoothlevel 16 anim_speed 3 client_anim_sync 1 move_block all no_pick 1 is_water 1 is_floor 1 end Object sea editor_folder ground face sea.111 animation sea move_block all -boat no_pick 1 is_water 1 is_floor 1 smoothlevel 20 client_anim_sync 1 anim_speed 5 end Object sea1 editor_folder ground name sea face sea.111 animation sea no_pick 1 is_water 1 is_floor 1 smoothlevel 20 client_anim_sync 1 anim_speed 5 end Object sea_nw editor_folder ground name sea face sea_nw.111 speed 0.2 move_block all no_pick 1 is_water 1 smoothlevel 20 end Object sea_ne editor_folder ground name sea face sea_ne.111 speed 0.2 move_block all no_pick 1 is_water 1 smoothlevel 20 end Object sea_sw editor_folder ground name sea face sea_sw.111 speed 0.2 move_block all no_pick 1 is_water 1 smoothlevel 20 end Object sea_se editor_folder ground name sea face sea_se.111 speed 0.2 no_pick 1 move_block all is_water 1 smoothlevel 20 end Object sea_nes editor_folder ground name sea face sea_7.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object sea_new editor_folder ground name sea face sea_B.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object sea_nse editor_folder ground name sea face sea_D.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object sea_sew editor_folder ground name sea face sea_E.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object sea_nsew editor_folder ground name sea face sea_F.111 move_block all no_pick 1 is_water 1 smoothlevel 255 end Object shallow_sea editor_folder ground face shallow_sea.111 animation shallow_sea smoothlevel 19 anim_speed 5 client_anim_sync 1 no_pick 1 is_water 1 is_floor 1 move_block all randomitems fish end Object cloud_1_1_1 editor_folder ground/sky name cloud face cloud_1_1.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_1_2_1 editor_folder ground/sky name cloud face cloud_1_2.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_1_3_1 editor_folder ground/sky name cloud face cloud_1_3.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_2_1_1 editor_folder ground/sky name cloud face cloud_2_1.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_2_2_1 editor_folder ground/sky name cloud face cloud_2_2.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_2_3_1 editor_folder ground/sky name cloud face cloud_2_3.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_3_1_1 editor_folder ground/sky name cloud face cloud_3_1.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_3_2_1 editor_folder ground/sky name cloud face cloud_3_2.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_3_3_1 editor_folder ground/sky name cloud face cloud_3_3.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_4_1_1 editor_folder ground/sky name cloud face cloud_4_1.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_4_2_1 editor_folder ground/sky name cloud face cloud_4_2.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_4_3_1 editor_folder ground/sky name cloud face cloud_4_3.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_5_1_1 editor_folder ground/sky name cloud face cloud_5_1.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_5_2_1 editor_folder ground/sky name cloud face cloud_5_2.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object cloud_5_3_1 editor_folder ground/sky name cloud face cloud_5_3.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object empty_sky editor_folder ground/sky name sky face sky.x11 type 67 move_on walk is_floor 1 no_pick 1 move_slow walk end Object spider_web editor_folder ground name spider web face spider_web.111 anim_speed 20 client_anim_sync 1 animation spider_web no_pick 1 move_slow walk move_slow_penalty 7 material 128 end Object steppe editor_folder ground face steppe.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 smoothlevel 27 move_block boat swim end Object steppelight editor_folder ground name steppe face steppelight.111 no_pick 1 move_slow walk move_slow_penalty 1 is_wooded 1 is_floor 1 move_block boat swim end Object swamp editor_folder ground face swamp.111 type 67 race /terrain/swamp move_on walk no_pick 1 is_water 1 move_slow walk move_slow_penalty 3 is_wooded 1 smoothlevel 9 is_floor 1 move_block boat swim end Object temp_fog editor_folder ground name fog face fog.111 animation temp_fog type 67 move_type fly_low no_pick 1 is_used_up 1 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_cancellation 100 resist_deplete 100 resist_death 100 material 1 changing 1 speed 0.001 blocksview 1 end Object temp_fog_moving editor_folder ground name fog face fog.111 animation temp_fog type 67 move_type fly_low no_pick 1 is_used_up 1 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_cancellation 100 resist_deplete 100 resist_death 100 material 1 changing 1 blocksview 1 weight 1000 value 1 speed 0.5 arch event_destroy name GenerateFog title Python slaying /python/Moving_Fog.py end end Object temp_summon_fog editor_folder ground name fog face fog.111 animation temp_fog type 67 move_type fly_low no_pick 1 is_used_up 1 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_cancellation 100 resist_deplete 100 resist_death 100 material 1 changing 1 blocksview 1 weight 100000 value 1 speed 0.5 arch event_destroy name GenerateFog title Python slaying /python/Moving_Fog.py end end Object thorns editor_folder ground type 102 subtype 7 level 1 wc -1 food 1 name thorns face thorns.111 no_pick 1 move_on walk is_wooded 1 move_slow walk move_slow_penalty 3 attacktype 1 speed 0.2 dam 3 move_block boat swim end Object active_volcano editor_folder ground name volcano other_arch spell_create_lava face volcano_lo.x11 type 62 activate_on_push 1 activate_on_release 1 level 1 no_pick 1 move_slow walk move_slow_penalty 15 is_hilly 1 speed -0.02 move_block boat swim end More Object active_volcano_2 editor_folder ground name volcano other_arch spell_create_lava face volcano_lo.x11 type 62 activate_on_push 1 activate_on_release 1 level 1 x 1 no_pick 1 move_slow walk move_slow_penalty 15 is_hilly 1 move_block boat swim end Object wasteland editor_folder ground face wasteland.111 blocksview 1 no_pick 1 move_block all is_floor 1 smoothlevel 51 end Object barrel editor_folder indoor face barrel.111 material 16 weight 100000 move_block all can_roll 1 move_type 1 name_pl barrels client_type 8002 end Object bed_1 editor_folder indoor name bed face bed_1.111 weight 200000 value 35 material 16 name_pl beds client_type 8002 end Object bed_save editor_folder indoor name bed to reality type 106 face bed_save.111 weight 200000 value 40 no_pick 1 no_magic 1 damned 1 client_type 25091 end Object chair editor_folder indoor face chair.111 weight 40000 value 20 material 16 name_pl chairs client_type 8002 end Object chair_1.1 editor_folder indoor name chair weight 45000 face chair_1.101 value 25 material 16 name_pl chairs client_type 8002 end Object chair_1.2 editor_folder indoor name chair weight 45000 face chair_1.111 value 25 material 16 name_pl chairs client_type 8002 end Object chair_1.3 editor_folder indoor name chair weight 45000 face chair_1.121 value 25 material 16 name_pl chairs client_type 8002 end Object chair_1.4 editor_folder indoor name chair weight 45000 face chair_1.131 value 25 material 16 name_pl chairs client_type 8002 end Object chair_2.1 editor_folder indoor name chair weight 50000 face chair_2.101 value 25 material 16 name_pl chairs client_type 8002 end Object chair_2.2 editor_folder indoor name chair weight 50000 face chair_2.111 value 25 material 16 name_pl chairs client_type 8002 end Object chair_2.3 editor_folder indoor name chair weight 50000 face chair_2.121 value 25 material 16 name_pl chairs client_type 8002 end Object chair_2.4 editor_folder indoor name chair weight 50000 face chair_2.131 value 25 material 16 name_pl chairs client_type 8002 end Object chair_3.1 editor_folder indoor name chair weight 60000 face chair_3.101 value 25 material 16 name_pl chairs client_type 8002 end Object chair_3.2 editor_folder indoor name chair weight 60000 face chair_3.111 value 25 material 16 name_pl chairs client_type 8002 end Object chair_bc_2.1 editor_folder indoor name chair weight 50000 face chair_bc_2.101 value 1600 material 16 materialname satin covered wood name_pl chairs client_type 8002 end Object chair_bc_2.2 editor_folder indoor name chair weight 50000 face chair_bc_2.111 value 1600 material 16 materialname satin covered wood name_pl chairs client_type 8002 end Object chair_bc_2.3 editor_folder indoor name chair weight 50000 face chair_bc_2.121 value 1600 material 16 materialname satin covered wood name_pl chairs client_type 8002 end Object chair_bc_2.4 editor_folder indoor name chair weight 50000 face chair_bc_2.131 value 1600 material 16 materialname satin covered wood name_pl chairs client_type 8002 end Object chair_cw_1.1 editor_folder indoor name chair weight 45000 face chair_cw_1.101 value 150 material 16 materialname cherry name_pl chairs client_type 8002 end Object chair_cw_1.2 editor_folder indoor name chair weight 45000 face chair_cw_1.111 value 150 material 16 materialname cherry name_pl chairs client_type 8002 end Object chair_cw_1.3 editor_folder indoor name chair weight 45000 face chair_cw_1.121 value 150 material 16 materialname cherry name_pl chairs client_type 8002 end Object chair_cw_1.4 editor_folder indoor name chair weight 45000 face chair_cw_1.131 value 150 material 16 materialname cherry name_pl chairs client_type 8002 end Object chair_gv_1.1 editor_folder indoor name chair weight 45000 face chair_gv_1.101 value 45000 material 2 materialname gold name_pl chairs client_type 8002 end Object chair_gv_1.2 editor_folder indoor name chair weight 45000 face chair_gv_1.111 value 45000 material 2 materialname gold name_pl chairs client_type 8002 end Object chair_gv_1.3 editor_folder indoor name chair weight 45000 face chair_gv_1.121 value 45000 material 2 materialname gold name_pl chairs client_type 8002 end Object chair_gv_1.4 editor_folder indoor name chair weight 45000 face chair_gv_1.131 value 45000 material 2 materialname gold name_pl chairs client_type 8002 end Object chair_wv_1.1 editor_folder indoor name chair weight 45000 face chair_wv_1.101 value 25000 material 16 materialname velvet covered wood name_pl chairs client_type 8002 end Object chair_wv_1.2 editor_folder indoor name chair weight 45000 face chair_wv_1.111 value 25000 material 16 materialname velvet covered wood name_pl chairs client_type 8002 end Object chair_wv_1.3 editor_folder indoor name chair weight 45000 face chair_wv_1.121 value 25000 material 16 materialname velvet covered wood name_pl chairs client_type 8002 end Object chair_wv_1.4 editor_folder indoor name chair weight 45000 face chair_wv_1.131 value 25000 material 16 materialname velvet covered wood name_pl chairs client_type 8002 end Object clock editor_folder indoor type 9 nrof 1 face clock.111 animation clock anim_speed 20 client_anim_random 1 weight 80000 value 100 material 20 name_pl clocks client_type 8001 end Object clock_ag editor_folder indoor name ancient gnomish clock type 9 nrof 1 face clock_ag.111 animation clock_ag anim_speed 20 client_anim_random 1 weight 320000 value 52890 material 20 materialname ancient wood name_pl ancient gnomish clocks client_type 8001 end Object clock_cw editor_folder indoor name clock type 9 nrof 1 face clock_cw.111 animation clock_cw anim_speed 20 client_anim_random 1 weight 80000 value 1400 material 20 materialname cherry name_pl clocks client_type 8001 end Object clock_grand editor_folder indoor name clock type 9 nrof 1 face clock_grand.111 animation clock_grand anim_speed 20 client_anim_random 1 weight 80000 value 500 material 20 name_pl clocks client_type 8001 end Object harpsichord1 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 exp 30 face harpsichord1.x11 no_pick 1 move_on walk end More Object harpsichord1_2 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 exp 30 face harpsichord1.x11 no_pick 1 move_on walk end More Object harpsichord1_3 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 y 1 exp 30 face harpsichord1.x11 no_pick 1 move_on walk end More Object harpsichord1_4 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 y 1 exp 30 face harpsichord1.x11 no_pick 1 move_on walk end Object harpsichord2 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 exp 30 face harpsichord2.x11 no_pick 1 move_on walk end More Object harpsichord2_2 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 exp 30 face harpsichord2.x11 no_pick 1 move_on walk end More Object harpsichord2_3 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 y 1 exp 30 face harpsichord2.x11 no_pick 1 move_on walk end More Object harpsichord2_4 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 y 1 exp 30 face harpsichord2.x11 no_pick 1 move_on walk end Object harpsichord3 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 exp 30 face harpsichord3.x11 no_pick 1 move_on walk end More Object harpsichord3_2 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 exp 30 face harpsichord3.x11 no_pick 1 move_on walk end More Object harpsichord3_3 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 y 1 exp 30 face harpsichord3.x11 no_pick 1 move_on walk end More Object harpsichord3_4 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 y 1 exp 30 face harpsichord3.x11 no_pick 1 move_on walk end Object harpsichord4 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 exp 30 face harpsichord4.x11 no_pick 1 move_on walk end More Object harpsichord4_2 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 exp 30 face harpsichord4.x11 no_pick 1 move_on walk end More Object harpsichord4_3 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 y 1 exp 30 face harpsichord4.x11 no_pick 1 move_on walk end More Object harpsichord4_4 editor_folder indoor name harpsichord slaying goldcoin food 1 type 31 x 1 y 1 exp 30 face harpsichord4.x11 no_pick 1 move_on walk end Object mat editor_folder indoor face mat.111 weight 150 value 10 material 128 nrof 1 name_pl mats end Object stol_king_1 editor_folder indoor face stolking_1.111 name throne no_pick 1 material 144 name_pl thrones client_type 8002 end Object stol_king_2 editor_folder indoor face stolking_2.111 name throne no_pick 1 material 144 name_pl thrones client_type 8002 end Object table editor_folder indoor face table_1.111 weight 80000 value 30 material 16 name_pl tables client_type 8002 end Object table_1x2 editor_folder indoor name large table face table_1x2.111 no_pick 1 weight 150000 value 55 material 16 name_pl tables client_type 8002 end More Object table_1x2_2 editor_folder indoor name large table face table_1x2.111 no_pick 1 weight 150000 value 55 material 16 name_pl tables client_type 8002 y 1 end Object table_2 editor_folder indoor name table face table_2.111 weight 80000 value 30 material 16 name_pl tables client_type 8002 end Object table_2x1 editor_folder indoor name long table face table_2x1.111 no_pick 1 weight 150000 value 55 material 16 name_pl tables client_type 8002 end More Object table_2x1_2 editor_folder indoor name long table face table_2x1.111 no_pick 1 weight 150000 value 55 material 16 name_pl tables client_type 8002 x 1 end Object table_2x2 editor_folder indoor name big table face table_2x2.111 no_pick 1 weight 300000 value 100 material 16 name_pl tables client_type 8002 end More Object table_2x2_2 editor_folder indoor name big table face table_2x2.111 no_pick 1 weight 300000 value 100 material 16 name_pl tables client_type 8002 x 1 end More Object table_2x2_3 editor_folder indoor name big table face table_2x2.111 no_pick 1 weight 300000 value 100 material 16 name_pl tables client_type 8002 y 1 end More Object table_2x2_4 editor_folder indoor name big table face table_2x2.111 no_pick 1 weight 300000 value 100 material 16 name_pl tables client_type 8002 x 1 y 1 end Object table_3 editor_folder indoor name table face table_3.111 weight 80000 value 30 material 16 name_pl tables client_type 8002 end Object table_4 editor_folder indoor name table face table_4.111 weight 80000 value 30 material 16 name_pl tables client_type 8002 end Object table_burl_3 editor_folder indoor name table face table_burl_3.111 weight 80000 value 12000 material 16 materialname burlwood name_pl tables client_type 8002 end Object table_cw_3 editor_folder indoor name table face table_cw_3.111 weight 80000 value 420 material 16 materialname cherry name_pl tables client_type 8002 end Object wallclock editor_folder indoor/wall name clock type 9 nrof 1 face wallclock.111 speed -0.05 weight 80000 value 100 material 20 name_pl clocks client_type 8001 end Object ashes editor_folder inorganic face ashes.111 nrof 1 weight 100 client_type 642 type 73 identified 1 end Object dust_effect editor_folder inorganic name cloud of dust type 79 level 1 face dust_effect.111 animation dust_effect anim_speed 1 client_anim_random 1 attacktype 4194304 wc -3 dam 1 move_type fly_low no_pick 1 name_pl clouds of dust client_type 641 end Object gravedirt editor_folder inorganic nrof 1 name graveyard dirt face dirt.111 type 73 material 64 weight 100 value 1 identified 1 name_pl graveyard dirts client_type 641 end Object lead editor_folder inorganic face lead.111 material 2 value 100 resist_magic 30 type 73 resist_acid 100 materialname lead weight 5000 nrof 1 name_pl leads client_type 642 end Object mercury editor_folder inorganic face mercury.111 value 210 resist_electricity 100 resist_acid 100 type 73 nrof 1 weight 3000 material 512 materialname mercury identified 1 name_pl mercuries client_type 642 end Object fix_mercury editor_folder inorganic name block title of fixed mercury face fix_mercury.111 animation mercury anim_speed 2 client_anim_random 1 material 512 materialname mercury value 400 resist_electricity 100 resist_acid 100 type 73 nrof 1 weight 8000 name_pl blocks client_type 642 end Object min_oil editor_folder inorganic name bottle title of mineral oil face min_oil.111 nrof 1 material 4 type 73 value 40 resist_fire -100 weight 2500 name_pl bottles client_type 641 end Object salt editor_folder inorganic name pile title of salt face salt.111 nrof 1 material 64 materialname salt type 73 value 10 weight 500 name_pl piles client_type 641 end Object sulphur editor_folder inorganic name pile title of sulphur face sulphur.111 nrof 1 material 64 materialname sulphur type 73 value 15 resist_fire -100 resist_acid 100 weight 500 name_pl piles client_type 641 end Object graphite editor_folder inorganic name pile title of graphite face graphite.111 nrof 1 material 64 materialname graphite type 73 value 1 resist_fire -100 resist_electricity -100 resist_acid 100 weight 500 name_pl piles client_type 641 end Object phosphorus editor_folder inorganic name pile title of phosphorus face phosphor.111 nrof 1 material 64 materialname phosphorus type 73 value 45 resist_fire -100 resist_electricity -100 resist_acid 100 weight 1000 name_pl piles client_type 641 end Object cinnabar editor_folder inorganic name pile title of cinnabar face cinna.111 nrof 1 material 64 materialname cinnabar type 73 value 70 weight 3000 name_pl piles client_type 641 end Object pyrite editor_folder inorganic name pile title of pyrite face pyrite.111 nrof 1 material 66 materialname pyrite type 73 value 8 weight 2000 name_pl piles client_type 641 end Object gypsum editor_folder inorganic name pile title of gypsum face gypsum.111 nrof 1 material 64 materialname gypsum type 73 value 9 resist_acid 100 weight 1500 name_pl piles client_type 641 end Object phil_oil editor_folder inorganic name bottle title of philosophical oil face min_oil.111 nrof 1 material 4 type 73 value 280 resist_fire -100 weight 500 name_pl bottles client_type 642 end Object phil_sulphur editor_folder inorganic name pile title of philosophical sulphur face phil_sulphur.111 nrof 1 animation phil_sulphur material 64 type 73 anim_speed 3 client_anim_random 1 value 110 resist_fire -100 resist_acid 100 weight 500 name_pl piles client_type 642 end Object phil_phosphorus editor_folder inorganic name pile title of philosophical phosphorus face phil_phos.111 nrof 1 animation phil_phosphorus material 64 anim_speed 2 client_anim_random 1 type 73 value 350 resist_fire -100 resist_electricity -100 resist_acid 100 weight 1000 name_pl piles client_type 642 end Object phil_salt editor_folder inorganic name pile title of philosophical salt face phil_salt.111 nrof 1 animation phil_salt material 64 type 73 anim_speed 3 client_anim_random 1 value 80 weight 500 name_pl piles client_type 642 end Object rock2 editor_folder inorganic name rock face rock2.111 material 64 value 100 type 73 weight 220 nrof 1 name_pl rocks client_type 641 end Object river_stone editor_folder inorganic name river stone face lstone.111 material 64 value 1 resist_acid 100 type 73 weight 800 nrof 1 name_pl river stones client_type 641 end Object mountain_stone editor_folder inorganic name mountain stone face lstone.111 material 64 value 1 resist_acid 100 type 73 weight 800 nrof 1 name_pl mountain stones client_type 641 end Object field_stone editor_folder inorganic name stone face lstone.111 material 64 value 1 resist_acid 100 type 73 weight 800 nrof 1 name_pl stones client_type 641 end Object true_lead editor_folder inorganic name block title of true lead face true_lead.111 material 2 value 530 resist_fire 100 resist_acid 100 materialname lead type 73 nrof 1 weight 5000 name_pl blocks client_type 642 end Object uf6pile editor_folder inorganic name pile title of uranium hexafluoride face uf6pile.111 nrof 1 material 64 materialname uranium hexafluoride type 73 value 77 weight 5000 name_pl piles client_type 641 end Object duf6pile editor_folder inorganic name pile title of depleted uranium hexafluoride face uf6pile.111 nrof 1 material 64 materialname uranium hexafluoride type 73 value 5 weight 5000 name_pl piles client_type 641 end Object euf6pile editor_folder inorganic name pile title of enriched uranium hexafluoride face uf6pile.111 nrof 1 material 64 materialname uranium hexafluoride type 73 value 200 weight 5000 name_pl piles client_type 641 end Object uraniumpile editor_folder inorganic name pile title of uranium face uranium.111 nrof 1 material 2 materialname uranium type 73 value 25 weight 5000 name_pl piles client_type 641 end Object enricheduraniumpile editor_folder inorganic name pile title of enriched uranium face uranium.111 nrof 1 material 2 materialname enriched uranium type 73 glow_radius 1 value 4000 weight 5000 name_pl piles client_type 641 end Object depleteduraniumpile editor_folder inorganic name pile title of depleted uranium face uranium.111 nrof 1 material 2 materialname depleted uranium type 73 value 10 weight 5000 name_pl piles client_type 641 end Object uraniumoxide editor_folder inorganic name pile title of uraniumoxide face sulphur.111 nrof 1 material 64 materialname uraniumoxide type 73 value 2 weight 5000 name_pl piles client_type 641 end Object vial_poison editor_folder inorganic nrof 1 type 7 face vial_yellow.111 material 4 materialname glass weight 100 value 1000 name vial name_pl vials title poison client_type 649 slaying taint food 5 msg A poison of some sort. Maybe it could be used to taint someone's food. endmsg end Object ambercoin editor_folder jewel name amberium coin race gold and jewels face amber_coin.111 nrof 1 type 36 material 2 materialname amberium value 500000 weight 23 name_pl amberium coins client_type 2001 end Object amethyst editor_folder jewel name amethyst race gold and jewels type 60 face amethyst.111 animation amethyst nrof 1 anim_speed 10 client_anim_random 1 value 126 weight 50 material 64 identified 1 name_pl amethysts client_type 2011 end Object bronzebar editor_folder jewel name bronze bar race gold and jewels face bronzebar.111 nrof 1 type 73 material 2 materialname bronze value 675 weight 10000 identified 1 name_pl bronze bars client_type 2005 end Object copperbar editor_folder jewel name copper bar race gold and jewels face copperbar.111 nrof 1 type 73 material 2 materialname copper value 500 weight 10000 identified 1 name_pl copper bars client_type 2005 end Object copperore editor_folder jewel name ore name_pl ores title of copper race gold and jewels face ore_g.111 nrof 1 type 73 material 64 materialname rock value 100 weight 20000 identified 0 client_type 2005 end Object copperore1kg editor_folder jewel name ore name_pl ores title of copper race gold and jewels face oresmall_g.111 nrof 1 type 73 material 64 materialname rock value 5 weight 1000 identified 0 client_type 2005 end Object emerald editor_folder jewel face emerald.111 race gold and jewels type 60 animation emerald nrof 1 anim_speed 10 client_anim_random 1 value 160 weight 50 identified 1 name_pl emeralds client_type 2011 end Object gem editor_folder jewel name diamond race gold and jewels type 60 face gem.111 animation gem nrof 1 anim_speed 10 client_anim_random 1 value 400 weight 50 material 64 identified 1 name_pl diamonds client_type 2011 end Object goldbar editor_folder jewel name gold bar race gold and jewels face goldbar.111 nrof 1 type 60 material 2 materialname gold value 10000 weight 10000 identified 1 name_pl gold bars client_type 2005 end Object goldblock editor_folder jewel name gold block race gold and jewels face goldblock.111 nrof 1 type 60 material 2 materialname gold value 1000000 weight 1000000 identified 1 name_pl gold blocks client_type 2005 end Object goldcoin editor_folder jewel name gold coin race gold and jewels face goldcoin.111 nrof 1 type 36 material 2 materialname gold value 10 weight 10 name_pl gold coins client_type 2001 end Object goldore editor_folder jewel name ore name_pl ores title of gold race gold and jewels face ore_y.111 nrof 1 type 73 material 64 materialname rock value 2000 weight 20000 identified 0 client_type 2005 end Object goldore1kg editor_folder jewel name ore name_pl ores title of gold race gold and jewels face oresmall_y.111 nrof 1 type 73 material 64 materialname rock value 100 weight 1000 identified 0 client_type 2005 end Object goldround editor_folder jewel name gold round name_pl gold rounds race gold and jewels face goldround.111 nrof 1 type 60 material 2 materialname gold value 1000 weight 1000 identified 1 client_type 2005 end Object ironbar editor_folder jewel name iron bar race gold and jewels face ironbar.111 nrof 1 type 73 material 2 materialname iron value 100 weight 10000 identified 1 name_pl iron bars client_type 2005 end Object ironore editor_folder jewel name ore name_pl ores title of iron race gold and jewels face ore_r.111 nrof 1 type 73 material 64 materialname rock value 20 weight 20000 identified 0 client_type 2005 end Object ironore1kg editor_folder jewel name ore name_pl ores title of iron race gold and jewels face oresmall_r.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object jadecoin editor_folder jewel name jade coin race gold and jewels face jade_coin.111 nrof 1 type 36 material 2 materialname jade value 5000 weight 10 name_pl jade coins client_type 2001 end Object leadbar editor_folder jewel name lead bar race gold and jewels face leadbar.111 nrof 1 type 73 material 2 materialname lead value 100 weight 10000 identified 1 name_pl lead bars client_type 2005 end Object leadore editor_folder jewel name ore name_pl ores title of lead race gold and jewels face ore_b.111 nrof 1 type 73 material 64 materialname rock value 20 weight 20000 identified 0 client_type 2005 end Object leadore1kg editor_folder jewel name ore name_pl ores title of lead race gold and jewels face oresmall_b.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object mithril editor_folder jewel name mithril crystal race gold and jewels type 73 face mithril.111 animation mithril nrof 1 anim_speed 5 client_anim_random 1 value 800 weight 50 material 2 materialname mithril identified 1 name_pl mithril crystals client_type 2011 end Object hugenugget editor_folder jewel name huge gold nugget race gold and jewels face nugget_huge.111 nrof 1 material 2 materialname gold type 73 value 700000000 weight 700000000 name_pl huge gold nuggets client_type 2005 end Object largenugget editor_folder jewel name large gold nugget race gold and jewels face nugget_lar.111 nrof 1 type 60 material 2 materialname gold value 400 weight 400 name_pl large gold nuggets client_type 2005 end Object smallnugget editor_folder jewel name small gold nugget race gold and jewels face nugget_sma.111 nrof 1 type 60 material 2 materialname gold value 40 weight 40 name_pl small gold nuggets client_type 2005 end Object pearl editor_folder jewel face pearl.111 race gold and jewels type 60 animation pearl nrof 1 anim_speed 10 client_anim_random 1 value 50 weight 50 material 64 identified 1 name_pl pearls client_type 2011 end Object platbar editor_folder jewel name platinum bar race gold and jewels face platbar.111 nrof 1 type 60 material 2 materialname platinum value 50000 weight 10000 identified 1 name_pl platinum bars client_type 2005 end Object platblock editor_folder jewel name platinum block name_pl platinum blocks race gold and jewels face platblock.111 nrof 1 type 60 material 2 materialname platinum value 5000000 weight 1000000 identified 1 client_type 2005 end Object platore editor_folder jewel name ore name_pl ores title of platinum race gold and jewels face ore_b.111 nrof 1 type 73 material 64 materialname rock value 10000 weight 20000 identified 0 client_type 2005 end Object platore1kg editor_folder jewel name ore name_pl ores title of platinum race gold and jewels face oresmall_b.111 nrof 1 type 73 material 64 materialname rock value 500 weight 1000 identified 0 client_type 2005 end Object platround editor_folder jewel name platinum round name_pl platinum rounds race gold and jewels face platround.111 nrof 1 type 60 material 2 materialname platinum value 5000 weight 1000 identified 1 client_type 2005 end Object platinacoin editor_folder jewel name platinum coin race gold and jewels face plt_coin.111 nrof 1 type 36 material 2 materialname platinum value 50 weight 10 name_pl platinum coins client_type 2001 end Object ruby editor_folder jewel face ruby.111 race gold and jewels type 60 animation ruby nrof 1 anim_speed 10 client_anim_random 1 value 200 weight 50 identified 1 name_pl rubies client_type 2011 end Object sapphire editor_folder jewel face sapphire.111 race gold and jewels type 60 animation sapphire nrof 1 anim_speed 10 client_anim_random 1 value 185 weight 50 identified 1 name_pl sapphires client_type 2011 end Object silverbar editor_folder jewel name silver bar race gold and jewels face silverbar.111 nrof 1 type 60 material 2 materialname silver value 1000 weight 10000 identified 1 name_pl silver bars client_type 2005 end Object silverblock editor_folder jewel name silver block name_pl silver blocks race gold and jewels face silverblock.111 nrof 1 type 60 material 2 materialname silver value 100000 weight 1000000 identified 1 client_type 2005 end Object silvercoin editor_folder jewel name silver coin race gold and jewels face silvercoin.111 nrof 1 type 36 material 2 materialname silver value 1 weight 28 name_pl silver coins client_type 2001 end Object silverore editor_folder jewel name ore name_pl ores title of silver race gold and jewels face ore_b.111 nrof 1 type 73 material 64 materialname rock value 200 weight 20000 identified 0 client_type 2005 end Object silverore1kg editor_folder jewel name ore name_pl ores title of silver race gold and jewels face oresmall_b.111 nrof 1 type 73 material 64 materialname rock value 10 weight 1000 identified 0 client_type 2005 end Object silverround editor_folder jewel name silver round name_pl silver rounds race gold and jewels face silverround.111 nrof 1 type 60 material 2 materialname silver value 100 weight 1000 identified 1 client_type 2005 end Object steelbar editor_folder jewel name steel bar race gold and jewels face steelbar.111 nrof 1 type 73 material 0 #Durable material materialname steel value 150 weight 10000 identified 1 name_pl steel bars client_type 2005 end Object tinbar editor_folder jewel name tin bar race gold and jewels face tinbar.111 nrof 1 type 73 material 2 materialname tin value 50 weight 10000 identified 1 name_pl tin bars client_type 2005 end Object tinore editor_folder jewel name ore name_pl ores title of tin race gold and jewels face ore_b.111 nrof 1 type 73 material 64 materialname rock value 10 weight 20000 identified 0 client_type 2005 end Object tinore1kg editor_folder jewel name ore name_pl ores title of tin race gold and jewels face oresmall_b.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object uraniumbar editor_folder jewel name uranium bar race gold and jewels face uraniumbar.111 nrof 1 type 73 material 2 materialname uranium value 50 weight 10000 identified 1 name_pl uranium bars client_type 2005 end #Above composition ^^ #99.5% U238 #0.5% U235 #(Note in the real world usually 0.7% U235). Object enricheduraniumbar editor_folder jewel name enriched uranium bar race gold and jewels face uraniumbar.111 attacktype 4 dam 5 speed 0.100000 nrof 1 type 73 material 2 materialname enriched uranium glow_radius 1 value 400000 weight 10000 identified 1 name_pl enriched uranium bars client_type 2005 end #Above composition ^^ #99.9% U235 Object depleteduraniumbar editor_folder jewel name depleted uranium bar race gold and jewels face uraniumbar.111 nrof 1 type 73 material 2 materialname depleted uranium value 20 weight 10000 identified 1 name_pl depleted uranium bars client_type 2005 end #Above composition ^^ #99.9% U238 Object uraniumore editor_folder jewel name ore name_pl ores title of uranium race gold and jewels face ore_y.111 nrof 1 type 73 material 64 materialname rock value 10 weight 20000 identified 0 client_type 2005 end Object uraniumore1kg editor_folder jewel name ore name_pl ores title of uranium race gold and jewels face oresmall_y.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object worthlessore_b editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face ore_b.111 nrof 1 type 73 material 64 materialname rock value 1 weight 20000 identified 0 client_type 2005 end Object worthlessore_g editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face ore_g.111 nrof 1 type 73 material 64 materialname rock value 1 weight 20000 identified 0 client_type 2005 end Object worthlessore_r editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face ore_r.111 nrof 1 type 73 material 64 materialname rock value 1 weight 20000 identified 0 client_type 2005 end Object worthlessore_y editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face ore_y.111 nrof 1 type 73 material 64 materialname rock value 1 weight 20000 identified 0 client_type 2005 end Object worthlessoresmall_b editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face oresmall_b.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object worthlessoresmall_g editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face oresmall_g.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object worthlessoresmall_r editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face oresmall_r.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object worthlessoresmall_y editor_folder jewel name ore name_pl ores title of nothing race gold and jewels face oresmall_y.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object zincbar editor_folder jewel name zinc bar race gold and jewels face zincbar.111 nrof 1 type 73 material 2 materialname zinc value 50 weight 10000 identified 1 name_pl zinc bars client_type 2005 end Object zincore editor_folder jewel name ore name_pl ores title of zinc race gold and jewels face ore_b.111 nrof 1 type 73 material 64 materialname rock value 10 weight 20000 identified 0 client_type 2005 end Object zincore1kg editor_folder jewel name ore name_pl ores title of zinc race gold and jewels face oresmall_b.111 nrof 1 type 73 material 64 materialname rock value 1 weight 1000 identified 0 client_type 2005 end Object flint_and_steel editor_folder light face flint_and_steel.111 name flint and steel type 75 last_eat 1 food 500 weight 300 value 2000 material 66 name_pl flints and steels client_type 1101 nrof 1 end Object lantern_unlit editor_folder light name lantern face lantern_off.111 other_arch lantern_1 material 2 value 5000 weight 1500 food 10000 type 82 nrof 1 glow_radius 0 is_lightable 1 name_pl lanterns client_type 1102 end Object lantern_1 editor_folder light name lantern face lantern.111 other_arch lantern_unlit material 2 food 10000 changing 1 value 0 type 82 weight 1500 speed 0.01 glow_radius 5 is_lightable 1 name_pl lanterns client_type 1102 end Object lantern2_unlit editor_folder light name bright lantern face lantern2_off.111 other_arch lantern2_1 material 2 value 15000 weight 2500 food 10000 type 82 nrof 1 glow_radius 0 is_lightable 1 name_pl lanterns client_type 1102 end Object lantern2_1 editor_folder light name bright lantern face lantern2.111 other_arch lantern2_unlit material 2 food 10000 changing 1 value 0 type 82 weight 2500 speed 0.02 glow_radius 8 is_lightable 1 name_pl lanterns client_type 1102 end Object light1 editor_folder light name light face light_bulb_1.111 glow_radius 1 invisible 1 end Object light2 editor_folder light name light face light_bulb_2.111 glow_radius 2 invisible 1 end Object light3 editor_folder light name light face light_bulb_3.111 glow_radius 3 invisible 1 end Object light4 editor_folder light name light face light_bulb_4.111 glow_radius 4 invisible 1 end Object torch_unlit editor_folder light name torch face torch_unlit.111 other_arch torch_1 material 144 value 15 weight 500 food 1 changing 1 nrof 1 glow_radius 0 is_lightable 1 name_pl torches client_type 1102 end Object torch_1 editor_folder light name torch face torch_lit1.111 other_arch dim_torch animation torch_1 material 144 food 500 changing 1 value 0 weight 500 speed 0.15 client_anim_random 1 glow_radius 3 name_pl torches client_type 1102 end Object dim_torch editor_folder light name torch face torch_lit2.111 other_arch burnt_torch animation dim_torch material 144 food 60 changing 1 value 0 weight 500 speed 0.15 client_anim_random 1 glow_radius 2 is_lightable 1 name_pl torches client_type 1102 end Object burnt_torch editor_folder light name burnt out torch face torch_unlit.111 material 144 nrof 1 value 0 weight 500 name_pl burnt out torches client_type 1102 end Object building_builder editor_folder mapbuilding nrof 1 name generic builder weight 1500 value 150 type 160 subtype 1 face mbstove.111 end Object building_destroyer editor_folder mapbuilding name generic destroyer nrof 1 weight 1500 value 150 type 160 subtype 2 face mbhammer.111 end Object shop_building editor_folder mapbuilding name tiles is_floor 1 face shop_building.111 no_pick 1 no_magic 1 damned 1 type 68 auto_apply 1 randomitems shop_building end Object shop_building_fant editor_folder mapbuilding name tiles is_floor 1 face shop_building.111 no_pick 1 no_magic 1 damned 1 type 68 auto_apply 1 randomitems shop_building_fant end Object shop_building_west editor_folder mapbuilding name tiles is_floor 1 face shop_building.111 no_pick 1 no_magic 1 damned 1 type 68 auto_apply 1 randomitems shop_building_west end Object shop_building_east editor_folder mapbuilding name tiles is_floor 1 face shop_building.111 no_pick 1 no_magic 1 damned 1 type 68 auto_apply 1 randomitems shop_building_east end Object shop_building_pupland editor_folder mapbuilding name tiles is_floor 1 face shop_building.111 no_pick 1 no_magic 1 damned 1 type 68 auto_apply 1 randomitems shop_building_pupland end Object building_woodfloor editor_folder mapbuilding name Wood floor material nrof 1 weight 1500 value 1500 type 161 subtype 1 face mbwoodfloor.111 slaying woodfloor end Object building_woodfloor2 editor_folder mapbuilding name Dark Wood floor material nrof 1 weight 1500 value 1500 type 161 subtype 1 face mbwoodfloor2.111 slaying woodfloor2 end Object building_wall editor_folder mapbuilding name Wall material nrof 1 weight 1500 value 1500 type 161 subtype 2 face mbwall.111 slaying wall_0 end Object building_wall2 editor_folder mapbuilding name DWall material nrof 1 weight 1700 value 1750 type 161 subtype 2 face mbdwall_0.111 slaying dwall_0 end Object building_wall3 editor_folder mapbuilding name WestCWall material nrof 1 weight 1700 value 1650 type 161 subtype 2 face mbwestcwall_0.111 slaying westcwall_0 end Object building_wall4 editor_folder mapbuilding name Red CWall material nrof 1 weight 1700 value 1900 type 161 subtype 2 face mbredcwall_0.111 slaying redcwall_0 end Object building_wall5 editor_folder mapbuilding name EastWall material nrof 1 weight 1000 value 1600 type 161 subtype 2 face mbewall_0.111 slaying ewall_0 end Object building_swall editor_folder mapbuilding name Fence material nrof 1 weight 1200 value 1200 type 161 subtype 2 face mbswall_0.111 slaying swall_0 end Object building_vertical_gate editor_folder mapbuilding name Vertical gate material nrof 1 weight 150 value 1500 type 161 subtype 3 slaying igate_closed_1 face mbiron_gate1.111 end Object building_horizontal_gate editor_folder mapbuilding name Horizontal gate material nrof 1 weight 150 value 1500 type 161 subtype 3 slaying igate_closed_2 face mbiron_gate2.111 end Object building_pedestal editor_folder mapbuilding name Pedestal material nrof 1 weight 150 value 1500 type 161 subtype 3 slaying pedestal face mbpedestal.111 Str 1 end Object building_lever editor_folder mapbuilding name Lever material nrof 1 weight 150 value 1500 type 161 subtype 3 slaying button_lever face mblever.111 end Object building_button editor_folder mapbuilding name Button material nrof 1 weight 100 value 2000 type 161 subtype 3 slaying button_small face mbbutton.111 end Object building_vertical_gate_inv editor_folder mapbuilding name Vertical inverted gate material nrof 1 weight 150 value 3000 type 161 subtype 3 slaying igate_open_1 face mbiron_gate_inv1.111 end Object building_horizontal_gate_inv editor_folder mapbuilding name Horizontal inverted gate material nrof 1 weight 150 value 3000 type 161 subtype 3 slaying igate_open_2 face mbiron_gate_inv2.111 end Object building_window editor_folder mapbuilding name Window material nrof 1 weight 200 value 2000 type 161 subtype 4 face mbwindow.111 slaying dwall_win1 end Object building_marble editor_folder mapbuilding name White Marble floor material nrof 1 weight 1500 value 40540 type 161 subtype 1 face mbmarble.111 slaying marble end Object building_blackmarble editor_folder mapbuilding name Black Marble floor material nrof 1 weight 1500 value 40540 type 161 subtype 1 face mbblackmarble.111 slaying blackmarble end Object building_pinkmarble editor_folder mapbuilding name Pink Marble floor material nrof 1 weight 1500 value 50000 type 161 subtype 1 face mbpinkmarble.111 slaying pinkmarble end Object building_greenmarble editor_folder mapbuilding name Green Marble floor material nrof 1 weight 1500 value 50000 type 161 subtype 1 face mbgreenmarble.111 slaying greenmarble end Object building_lightmagentamarble editor_folder mapbuilding name Light Magenta Marble floor material nrof 1 weight 1500 value 50000 type 161 subtype 1 face mblightmagentamarble.111 slaying lightmagentamarble end Object building_firepot editor_folder mapbuilding name Firepot material nrof 1 weight 1500 value 7500 type 161 subtype 3 face mbfirepot.111 slaying firepot end Object building_brazier editor_folder mapbuilding name Brazier material nrof 1 weight 1500 value 9500 type 161 subtype 3 face mbbrazier.111 slaying brazier end Object building_fireplace editor_folder mapbuilding name Fireplace material nrof 1 weight 2500 value 10000 type 161 subtype 3 face mbfireplace.111 slaying fireplace end Object building_fountain editor_folder mapbuilding name Fountain material nrof 1 weight 25000 value 50500 type 161 subtype 3 face mbfountain.111 slaying fountain end Object building_sign editor_folder mapbuilding name Sign material nrof 1 weight 1500 value 25000 type 161 subtype 3 face mbsign.111 slaying sign end Object building_bed_save editor_folder mapbuilding name Bed of reality material nrof 1 weight 50000 value 100000 type 161 subtype 3 face mbbed_save.111 slaying bed_save end Object building_altar editor_folder mapbuilding name Altar material nrof 1 weight 25000 value 900000 type 161 subtype 3 level 30 face mbaltar_none.111 slaying altar_none end Object building_earbook editor_folder mapbuilding name Listening book material nrof 1 weight 1000 value 70000 type 161 subtype 3 face mbbook.111 slaying magic_ear end Object building_mouthbook editor_folder mapbuilding name Talking book material nrof 1 weight 1000 value 45000 type 161 subtype 3 face mbbook.111 slaying magic_mouth end Object bagpipe editor_folder misc/Bagpipe name small bagpipe name_pl small bagpipes client_type 8006 nrof 1 type 24 face bagpipe.111 animation bagpipe anim_speed 3 client_anim_random 1 weight 3000 value 1000 end Object campfire editor_folder misc/Camp face campfire.111 animation campfire type 102 subtype 7 level 1 move_on walk lifesave 1 wc -30 dam 3 attacktype 4 speed -0.2 glow_radius 2 no_pick 1 end Object campfire_talking editor_folder misc/Camp name talking campfire randomitems campfire_talking face campfire.111 animation campfire type 73 glow_radius 2 no_pick 1 anim_speed 3 client_anim_random 1 is_animated 1 end Object campfire_say editor_folder misc/Camp type 116 subtype 6 title Python slaying /python/items/campfire_say.py end Object campfire_timer editor_folder misc/Camp type 116 subtype 12 title Python slaying /python/items/campfire_timer.py end Object campfire_out editor_folder misc/Camp name old campfire face campfire_out.111 no_pick 1 end Object attache editor_folder misc/Container name attache case other_arch close_attache race scrolls face attache.111 type 122 material 128 value 150 weight 900 container 14000 Str 10 identified 1 end Object close_attache editor_folder misc/Container name close the attache case face close_attache.111 type 121 no_drop 1 no_pick 1 identified 1 end Object bag editor_folder misc/Container name bag other_arch close_bag face bag.111 type 122 material 128 weight 10 container 80000 Str 10 value 50 identified 1 name_pl bags client_type 51 end Object close_bag editor_folder misc/Container name close the bag face close_bag.111 type 121 no_pick 1 no_drop 1 identified 1 end Object bookshelf editor_folder misc/Container name bookshelf other_arch close_shelf face bookshelf.111 type 122 material 18 value 50 container 150000 weight 80000 identified 1 name_pl bookshelves client_type 51 end Object close_shelf editor_folder misc/Container name in the shelf face bookshelf.111 type 121 no_pick 1 no_drop 1 identified 1 end Object bookshelf_left editor_folder misc/Container name bookshelf other_arch bookshelf_left_close face bookshelf_left.111 type 122 material 18 value 50 container 150000 weight 80000 identified 1 name_pl bookshelves client_type 51 end Object bookshelf_left_close editor_folder misc/Container name in the shelf face bookshelf_left.111 type 121 no_pick 1 no_drop 1 identified 1 end Object bookshelf_bottom editor_folder misc/Container name bookshelf other_arch bookshelf_bottom_close face bookshelf_bottom.111 type 122 material 18 value 50 container 150000 weight 80000 identified 1 name_pl bookshelves client_type 51 end Object bookshelf_bottom_close editor_folder misc/Container name in the shelf face bookshelf_bottom.111 type 121 no_pick 1 no_drop 1 identified 1 end Object bookshelf_right editor_folder misc/Container name bookshelf other_arch bookshelf_right_close face bookshelf_right.111 type 122 material 18 value 50 container 150000 weight 80000 identified 1 name_pl bookshelves client_type 51 end Object bookshelf_right_close editor_folder misc/Container name in the shelf face bookshelf_right.111 type 121 no_pick 1 no_drop 1 identified 1 end Object bookshelf2 editor_folder misc/Container name bookshelf other_arch close_shelf2 face bookshelf2.111 type 122 material 18 value 50 container 150000 weight 80000 identified 1 name_pl bookshelves client_type 51 end Object close_shelf2 editor_folder misc/Container name in the shelf face bookshelf2.111 type 121 no_pick 1 no_drop 1 identified 1 end Object carton_box_1 editor_folder misc/Container name box other_arch close_carton_box_1 face carton_box_1.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_carton_box_1 editor_folder misc/Container name close the box face carton_box_1_open.111 type 121 no_pick 1 no_drop 1 identified 1 end Object cauldron editor_folder misc/Container other_arch cauldron_open face cauldron.111 type 122 material 2 weight 80000 container 800000 is_cauldron 1 Str 0 value 18000 name_pl cauldrons client_type 51 end Object bad_cauldron editor_folder misc/Container name cracked cauldron other_arch cauldron_open face cauldron.111 type 122 material 2 weight 20000 container 800000 Str -80 value 5000 name_pl cracked cauldrons client_type 51 end Object cauldron_open editor_folder misc/Container name close the cauldron face cauldron_open.111 type 121 no_pick 1 no_drop 1 end Object chest editor_folder misc/Container face chest_1.111 nrof 0 type 4 hp 1 material 18 value 50 weight 50000 identified 1 randomitems chest name_pl chests client_type 51 end Object chest_green editor_folder misc/Container name chest face chest_green_1.111 nrof 0 type 4 hp 1 material 18 value 50 weight 50000 identified 1 randomitems chest name_pl chests client_type 51 end Object chest_2 editor_folder misc/Container name chest other_arch close_chest face chest_1.111 type 122 material 18 value 50 container 150000 weight 40000 identified 1 name_pl chests client_type 51 end Object close_chest editor_folder misc/Container name close the chest face closechest.111 type 121 no_pick 1 no_drop 1 identified 1 end Object chest_white_2 editor_folder misc/Container name chest other_arch close_chest_white_2 face chest_white_1.111 type 122 material 18 value 50 container 150000 weight 40000 identified 1 name_pl chests client_type 51 end Object close_chest_white_2 editor_folder misc/Container name close the chest face chest_white_1.111 type 121 no_pick 1 no_drop 1 identified 1 end #This chest is for errac's heaven area. Don't use elsewhare please. --MikeeUSA-- Object chest_valriel_2 editor_folder misc/Container name chest other_arch close_chest_valriel_2 face chest_valriel_1.111 animation chest_valriel_2 speed 0.3 type 122 material 18 value 50 container 150000 weight 40000 identified 1 name_pl chests client_type 51 end Object close_chest_valriel_2 editor_folder misc/Container name close the chest face chest_valriel_1.111 animation close_chest_valriel_2 speed 0.3 type 121 no_pick 1 no_drop 1 identified 1 end Object depositbox editor_folder misc/Container name deposit box other_arch close_dbox race gold and jewels face depositbox.111 type 122 material 66 container 150000 no_pick 1 identified 1 end Object close_dbox editor_folder misc/Container name close the deposit box face close_dbox.111 type 121 no_drop 1 no_pick 1 identified 1 end Object desk editor_folder misc/Container name desk other_arch close_desk face desk.111 type 122 material 18 weight 120000 container 80000 Str 10 value 150 identified 1 name_pl desks client_type 51 end Object close_desk editor_folder misc/Container name close the desk face close_desk.111 type 121 no_pick 1 no_drop 1 identified 1 end Object wizdesk editor_folder misc/Container name desk other_arch close_wizdesk face wizdesk.111 type 122 material 18 weight 120000 container 80000 Str 10 value 190 identified 1 name_pl desks client_type 51 end Object close_wizdesk editor_folder misc/Container name close the desk face close_wizdesk.111 type 121 no_pick 1 no_drop 1 identified 1 end Object desk_cw editor_folder misc/Container name desk other_arch close_desk_cw face desk_cw.111 type 122 material 18 materialname cherry weight 120000 container 80000 Str 10 value 2100 identified 1 name_pl desks client_type 51 end Object close_desk_cw editor_folder misc/Container name close the desk face close_desk_cw.111 type 121 no_pick 1 no_drop 1 identified 1 end Object dresser editor_folder misc/Container name dresser other_arch close_dresser face dresser.111 type 122 material 18 value 150 container 150000 weight 160000 identified 1 name_pl dressers client_type 51 end Object close_dresser editor_folder misc/Container name in the dresser face close_dresser.111 type 121 no_pick 1 no_drop 1 identified 1 end Object dresser2 editor_folder misc/Container name dresser other_arch close_dresser2 face dresser2.111 type 122 material 18 value 150 container 150000 weight 160000 identified 1 name_pl dressers client_type 51 end Object close_dresser2 editor_folder misc/Container name in the dresser face close_dresser2.111 type 121 no_pick 1 no_drop 1 identified 1 end Object dresser_cw editor_folder misc/Container name dresser other_arch close_dresser_cw face dresser_cw.111 type 122 material 18 materialname cherry value 2400 container 150000 weight 160000 identified 1 name_pl dressers client_type 51 end Object close_dresser_cw editor_folder misc/Container name in the dresser face close_dresser_cw.111 type 121 no_pick 1 no_drop 1 identified 1 end Object dresser2_cw editor_folder misc/Container name dresser other_arch close_dresser2_cw face dresser2_cw.111 type 122 material 18 materialname cherry value 2400 container 150000 weight 160000 identified 1 name_pl dressers client_type 51 end Object close_dresser2_cw editor_folder misc/Container name in the dresser face close_dresser2_cw.111 type 121 no_pick 1 no_drop 1 identified 1 end Object forge editor_folder misc/Container face forge.111 animation forge anim_speed 5 client_anim_random 1 glow_radius 1 no_pick 1 type 122 material 66 weight 80000 container 800000 is_cauldron 1 Str 0 value 18000 name_pl forges client_type 51 end Object frypan_closed editor_folder misc/Container name frypan other_arch frypan_opened face frypan_closed.111 type 122 material 66 container 150000 identified 1 end Object frypan_opened editor_folder misc/Container name frypan face frypan_opened.111 type 121 no_drop 1 identified 1 end Object jeweler_bench editor_folder misc/Container face jeweler_bench.111 name jeweler's workbench no_pick 1 type 122 material 16 weight 80000 container 800000 is_cauldron 1 Str 0 value 18000 name_pl jeweler's workbenches client_type 51 end Object key_ring editor_folder misc/Container name key ring other_arch close_key_ring race keys face key_ring.111 type 122 material 128 value 20 weight 100 container 50000 Str 10 identified 1 name_pl key rings client_type 60 end Object close_key_ring editor_folder misc/Container name close the key ring face close_keys.111 type 121 no_drop 1 no_pick 1 identified 1 end Object luggage editor_folder misc/Container name The Luggage face luggage.111 animation luggage anim_speed 2 client_anim_random 1 type 122 material 2 value 100000 weight 20000 container 500000 Str 50 identified 1 name_pl The Luggages client_type 51 end Object mailbox editor_folder misc/Container name mailbox other_arch close_mail face mailbox.111 type 122 material 18 value 50 container 1500 weight 4000 identified 1 no_pick 1 end Object close_mail editor_folder misc/Container name close the mailbox face closemail.111 type 121 no_pick 1 no_drop 1 identified 1 end Object NPCGift editor_folder misc/Container name NPC_Gift_Box face present_box_1.111 type 122 material 1 value 0 container 50000 weight 1000 identified 1 no_drop 1 client_type 51 end Object package editor_folder misc/Container name package other_arch close_package face package.111 type 122 material 1 value 70 container 50000 weight 20 identified 1 name_pl packages client_type 51 end Object close_package editor_folder misc/Container name close the package face package.111 type 121 no_pick 1 no_drop 1 identified 1 end Object pouch editor_folder misc/Container name pouch other_arch close_pouch race gold and jewels face pouch.111 type 122 material 128 value 40 weight 100 container 150000 Str 10 identified 1 name_pl pouchs client_type 55 end Object close_pouch editor_folder misc/Container name close the pouch face close_pouc.111 type 121 no_drop 1 no_pick 1 identified 1 end Object present_box_1 editor_folder misc/Container name box other_arch close_present_box_1 face present_box_1.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_present_box_1 editor_folder misc/Container name close the box face close_present_box_1.111 type 121 no_pick 1 no_drop 1 identified 1 end Object present_box_2 editor_folder misc/Container name box other_arch close_present_box_2 face present_box_2.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_present_box_2 editor_folder misc/Container name close the box face close_present_box_2.111 type 121 no_pick 1 no_drop 1 identified 1 end Object present_box_3 editor_folder misc/Container name box other_arch close_present_box_3 face present_box_3.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_present_box_3 editor_folder misc/Container name close the box face close_present_box_3.111 type 121 no_pick 1 no_drop 1 identified 1 end Object present_box_4 editor_folder misc/Container name box other_arch close_present_box_4 face present_box_4.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_present_box_4 editor_folder misc/Container name close the box face close_present_box_4.111 type 121 no_pick 1 no_drop 1 identified 1 end Object present_box_5 editor_folder misc/Container name box other_arch close_present_box_5 face present_box_5.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_present_box_5 editor_folder misc/Container name close the box face close_present_box_5.111 type 121 no_pick 1 no_drop 1 identified 1 end Object present_box_6 editor_folder misc/Container name box other_arch close_present_box_6 face present_box_6.111 type 122 material 1 value 70 container 50000 weight 1000 identified 1 name_pl boxes client_type 51 end Object close_present_box_6 editor_folder misc/Container name close the box face close_present_box_6.111 type 121 no_pick 1 no_drop 1 identified 1 end Object quiver editor_folder misc/Container name quiver title of arrows race arrows food 13 other_arch close_quiver face quiver.111 type 122 material 128 value 50 weight 100 container 150000 Str 10 identified 1 name_pl quivers client_type 60 end Object close_quiver editor_folder misc/Container name close the quiver face close_quiv.111 type 121 no_drop 1 no_pick 1 identified 1 end Object quiver_throwing editor_folder misc/Container name quiver title of throwing items race throwing other_arch close_quiver_throwing face quiver.111 type 122 material 128 value 50 weight 100 container 150000 Str 10 identified 1 name_pl quivers client_type 60 end Object close_quiver_throwing editor_folder misc/Container name close the quiver face close_quiv.111 type 121 no_drop 1 no_pick 1 identified 1 end Object r_sack editor_folder misc/Container name rucksack other_arch close_rsack face r_sack.111 type 122 material 128 value 150 weight 100 container 550000 Str 15 identified 1 name_pl rucksacks client_type 51 end Object close_rsack editor_folder misc/Container name close the rucksack face close_rsack.111 type 121 no_drop 1 no_pick 1 identified 1 end Object sack editor_folder misc/Container name sack other_arch close_sack face sack.111 type 122 material 128 value 50 weight 100 container 150000 Str 10 identified 1 name_pl sacks client_type 51 end Object close_sack editor_folder misc/Container name close the sack face close_sack.111 type 121 no_drop 1 no_pick 1 identified 1 end Object sarcophagus_container editor_folder misc/Container name sarcophagus face sarcophagus.111 nrof 0 type 4 hp 1 material 0 materialname stone value 50 weight 800000 no_pick 1 identified 1 name_pl sarcophaguses client_type 51 end Object sarcophagus_container2 editor_folder misc/Container name sarcophagus other_arch close_sarcophagus_container face close_sarcophagus.111 type 122 material 0 materialname stone value 50 container 150000 weight 800000 no_pick 1 identified 1 name_pl sarcophaguses client_type 51 end Object close_sarcophagus_container editor_folder misc/Container name close the sarcophagus face sarcophagus.111 type 121 no_pick 1 no_drop 1 identified 1 end Object schest_2 editor_folder misc/Container name chest other_arch close_schest face schest.111 type 122 material 0 value 200 container 175000 weight 55000 identified 1 name_pl chests client_type 51 end Object close_schest editor_folder misc/Container name close the chest face close_schest.111 type 121 no_pick 1 no_drop 1 identified 1 end Object scrollcase editor_folder misc/Container name scroll case other_arch close_scrollcase race scrolls face r_sack.111 type 122 material 128 value 50 weight 500 container 7000 Str 10 identified 1 end Object close_scrollcase editor_folder misc/Container name close the scroll case face close_rsack.111 type 121 no_drop 1 no_pick 1 identified 1 end Object stove editor_folder misc/Container face stove.111 animation stove anim_speed 5 client_anim_random 1 glow_radius 1 no_pick 1 type 122 material 66 weight 80000 container 800000 is_cauldron 1 Str 0 value 18000 name_pl stoves client_type 51 end Object tanbench editor_folder misc/Container name tanning bench face tanbench.111 no_pick 1 type 122 material 16 weight 35000 container 350000 is_cauldron 1 Str 0 value 18000 name_pl tanning benches client_type 51 end Object thaumaturg_desk editor_folder misc/Container face thaumaturg_desk.111 name thaumaturgist's desk no_pick 1 type 122 material 16 weight 80000 container 800000 is_cauldron 1 Str 0 value 18000 name_pl thaumaturgist's desks client_type 51 end Object workbench editor_folder misc/Container name workbench face workbench.111 no_pick 1 type 122 material 16 weight 80000 container 800000 is_cauldron 1 Str 0 value 18000 name_pl workbenches client_type 51 end Object acid_spit editor_folder misc race spit_acid type 13 name acid spit face acidspit.111 nrof 1 animation acid_spit is_animated 0 is_turnable 1 no_drop 1 attacktype 65 wc -10 dam 5 food 100 end Object anchor_1 editor_folder misc can_roll 1 client_type 8002 face anchor.111 material 18 move_block walk swim boat name anchor name_pl anchors no_pick 1 weight 500000 end More Object anchor_2 editor_folder misc face anchor.111 x 1 end Object blood editor_folder misc name puddle of blood name_pl puddles of blood nrof 1 face blood.111 material 32 type 79 weight 1 value 0 client_type 627 end Object bones1 editor_folder misc name bones face bones1.111 type 15 dam 20 last_sp 19 weight 7000 value 0 material 16 nrof 1 name_pl bones client_type 8002 skill one handed weapons body_arm -1 end Object bones2 editor_folder misc name bones face bones2.111 type 15 dam 20 last_sp 19 weight 2000 value 0 material 16 nrof 1 name_pl bones client_type 8002 skill one handed weapons body_arm -1 end Object bones3 editor_folder misc name bones face bones3.111 type 15 dam 20 last_sp 19 weight 1000 value 0 material 16 nrof 1 name_pl bones client_type 8002 skill one handed weapons body_arm -1 end Object bones4 editor_folder misc name bones face bones4.111 type 15 dam 20 last_sp 19 weight 7000 value 0 material 16 nrof 1 name_pl bones client_type 8002 skill one handed weapons body_arm -1 end Object bones5 editor_folder misc name bones face bones5.111 type 15 dam 20 last_sp 19 weight 11000 value 0 material 16 nrof 1 name_pl bones client_type 8002 skill one handed weapons body_arm -1 end Object boulder editor_folder misc face boulder.111 weight 1000000 move_block all can_roll 1 no_pick 1 move_type 1 end Object bouquet editor_folder misc face bouquet.111 name bouquet nrof 1 is_animated 1 weight 100 client_type 2030 end Object brazier editor_folder misc face brazier.111 animation brazier anim_speed 5 client_anim_random 1 glow_radius 3 no_pick 1 move_block all end Object cannon editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_0.111 speed -0.4 move_block all blocksview 1 no_pick 1 end Object cannon_1 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_1.111 sp 1 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_2 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_2.111 sp 2 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_3 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_3.111 sp 3 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_4 editor_folder misc other_arch spell_shell name cannon type 62 level 1 activate_on_push 1 activate_on_release 1 face cannon_4.111 sp 4 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_5 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_5.111 sp 5 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_6 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_6.111 sp 6 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_7 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_7.111 sp 7 speed -0.1 move_block all blocksview 1 no_pick 1 end Object cannon_8 editor_folder misc other_arch spell_shell name cannon type 62 activate_on_push 1 activate_on_release 1 level 1 face cannon_8.111 sp 8 speed -0.1 move_block all blocksview 1 no_pick 1 end Object chalice editor_folder misc face chalice.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 value 2500 anim_speed 5 client_anim_random 1 animation chalice name_pl chalices client_type 2030 end Object chalice_sil editor_folder misc face chalice_sil.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 materialname silver value 1200 anim_speed 5 client_anim_random 1 animation chalice_sil name chalice name_pl chalices client_type 2030 end Object chalice_cop editor_folder misc face chalice_cop.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 materialname copper value 500 anim_speed 5 client_anim_random 1 animation chalice_cop name chalice name_pl chalices client_type 2030 end Object chalice_bro editor_folder misc face chalice_bro.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 materialname bronze value 700 anim_speed 5 client_anim_random 1 animation chalice_bro name chalice name_pl chalices client_type 2030 end Object chalice_iro editor_folder misc face chalice_iro.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 materialname iron value 200 anim_speed 5 client_anim_random 1 animation chalice_iro name chalice name_pl chalices client_type 2030 end Object chalice_tin editor_folder misc face chalice_tin.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 materialname tin value 50 anim_speed 5 client_anim_random 1 animation chalice_tin name chalice name_pl chalices client_type 2030 end Object chalice_plat editor_folder misc face chalice_plat.111 type 60 nrof 1 weight 23700 is_animated 1 material 2 materialname platinum value 5000 anim_speed 5 client_anim_random 1 animation chalice_plat name chalice name_pl chalices client_type 2030 end Object chandelier_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 end More Object chandelier_2_1 editor_folder misc name grand chandelier face chandelier_1.x11 no_pick 1 x 1 end More Object chandelier_3_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 2 end More Object chandelier_4_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 3 end More Object chandelier_5_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 y 1 end More Object chandelier_6_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 1 y 1 end More Object chandelier_7_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 2 y 1 end More Object chandelier_8_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 3 y 1 end More Object chandelier_9_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 y 2 end More Object chandelier_10_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 1 y 2 end More Object chandelier_11_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 2 y 2 end More Object chandelier_12_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 3 y 2 end More Object chandelier_13_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 y 3 end More Object chandelier_14_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 1 y 3 end More Object chandelier_15_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 2 y 3 end More Object chandelier_16_1 editor_folder misc name grand chandelier face chandelier_1.x11 glow_radius 5 no_pick 1 x 3 y 3 end Object chandelier_2 editor_folder misc name chandelier face chandelier_2.111 animation chandelier_2 anim_speed 3 client_anim_random 1 glow_radius 4 no_pick 1 end Object chandelier_2_copper editor_folder misc name chandelier face chandelier_2_copper.111 animation chandelier_2_copper anim_speed 3 client_anim_random 1 glow_radius 4 no_pick 1 end Object claypipe editor_folder misc nrof 1 face claypipe.111 speed 0.1 level 1 value 50 weight 50 material 4 skill one handed weapons body_arm -1 end Object smoking_pipe editor_folder misc nrof 1 face claypipe.111 name smoking pipe name_pl smoking pipes weight 50 value 500 arch event_apply title Python slaying /python/items/smoking_pipe.py end end Object coffin editor_folder misc face coffin.111 type 15 dam 10 last_sp 19 weight 80000 value 30 material 16 nrof 1 skill two handed weapons body_arm -2 end Object cplate editor_folder misc face cplate.111 nrof 1 material 32 value 10 weight 6500 identified 1 name chicken name_pl chickens client_type 601 end Object crystalball editor_folder misc name glass sphere nrof 1 face crystalball.111 material 4 weight 10000 value 10000 name_pl glass spheres client_type 2030 end Object d_statue editor_folder misc face d_statue.111 type 98 subtype 45 no_pick 1 move_block all end Object dice editor_folder misc face dice.111 animation dice anim_speed 5 client_anim_random 1 name dice nrof 1 is_animated 1 weight 100 client_type 2030 end Object fireplace editor_folder misc face fireplace.111 animation fireplace anim_speed 5 client_anim_random 1 glow_radius 2 no_pick 1 move_block all material 66 end Object firepot editor_folder misc face firepot.111 animation firepot anim_speed 3 client_anim_random 1 no_pick 1 move_block all glow_radius 3 material 2 end Object firepot_bright editor_folder misc face firepot.111 animation firepot anim_speed 3 client_anim_random 1 no_pick 1 move_block all glow_radius 7 material 2 end Object gps editor_folder misc name ground positioning system face gps.111 type 9 weight 6500 identified 1 randomitems gps end Object gps_event editor_folder misc type 116 subtype 1 title Python slaying /python/items/positioning_system.py end Object grand_piano_black editor_folder misc name grand piano slaying goldcoin food 1 type 31 exp 30 face grand_piano_black.x11 no_pick 1 move_on walk end More Object grand_piano_2_black editor_folder misc name grand piano slaying goldcoin food 1 type 31 x 1 exp 30 face grand_piano_black.x11 no_pick 1 move_on walk end More Object grand_piano_3_black editor_folder misc name grand piano slaying goldcoin food 1 type 31 y 1 exp 30 face grand_piano_black.x11 no_pick 1 move_on walk end More Object grand_piano_4_black editor_folder misc name grand piano slaying goldcoin food 1 type 31 x 1 y 1 exp 30 face grand_piano_black.x11 no_pick 1 move_on walk end Object grand_piano_white editor_folder misc name grand piano slaying goldcoin food 1 type 31 exp 30 face grand_piano_white.x11 no_pick 1 move_on walk end More Object grand_piano_2_white editor_folder misc name grand piano slaying goldcoin food 1 type 31 x 1 exp 30 face grand_piano_white.x11 no_pick 1 move_on walk end More Object grand_piano_3_white editor_folder misc name grand piano slaying goldcoin food 1 type 31 y 1 exp 30 face grand_piano_white.x11 no_pick 1 move_on walk end More Object grand_piano_4_white editor_folder misc name grand piano slaying goldcoin food 1 type 31 x 1 y 1 exp 30 face grand_piano_white.x11 no_pick 1 move_on walk end Object gravestone editor_folder misc face gravestone.111 type 98 subtype 48 material 64 weight 200000 value 40 nrof 1 name_pl gravestones client_type 8011 end Object gravestone2 editor_folder misc name gravestone face gravestone2.111 type 98 subtype 49 material 64 weight 200000 value 40 nrof 1 name_pl gravestones client_type 8011 end Object hangingfirepot editor_folder misc name hanging firepot face hangingfirepot.111 animation hangingfirepot anim_speed 3 client_anim_random 1 glow_radius 3 no_pick 1 end Object icecube editor_folder misc move_slow walk move_slow_penalty 1 face icecube.111 material 68 weight 15000 resist_cold 100 name_pl icecubes client_type 8020 end Object bolt_silk editor_folder misc/item name bolt of silk nrof 1 face bolt_silk.111 weight 5000 value 3000 material 128 end Object lamppost editor_folder misc face lampost.111 no_pick 1 glow_radius 4 end Object Machine.1 editor_folder misc name Machine title of the Empire face machine.x11 move_block 0 blocksview 0 identified 1 no_pick 1 end More Object Machine.2 editor_folder misc face machine.x11 move_block all x 1 end More Object Machine.3 editor_folder misc face machine.x11 move_block 0 blocksview 0 x 2 end More Object Machine.4 editor_folder misc face machine.x11 move_block all blocksview 0 y 1 end More Object Machine.5 editor_folder misc face machine.x11 move_block all blocksview 1 x 1 y 1 end More Object Machine.6 editor_folder misc face machine.x11 move_block all blocksview 1 x 2 y 1 end More Object Machine.7 editor_folder misc face machine.x11 move_block all blocksview 1 y 2 end More Object Machine.8 editor_folder misc face machine.x11 move_block all blocksview 0 x 1 y 2 end More Object Machine.9 editor_folder misc face machine.x11 move_block all blocksview 1 x 2 y 2 end More Object Machine.A editor_folder misc face machine.x11 move_block 0 blocksview 0 y 3 end More Object Machine.B editor_folder misc face machine.x11 move_block all blocksview 0 x 1 y 3 end More Object Machine.C editor_folder misc face machine.x11 move_block 0 blocksview 0 x 2 y 3 end Object magnifier editor_folder misc name magnifying glass slaying ant nrof 1 last_sp 2 type 15 face magnifier.111 material 4 materialname glass Dex 1 dam 1 weight 2000 value 500 name_pl magnifying glasses client_type 145 skill one handed weapons body_arm -1 end Object naz_report editor_folder misc name Nazgul Report msg A Nazgul is somewhat like a grimreaper. However, while grimreapers are vulnerable to magic, Nazgul seem to be immune to magic. Nazgul have a drain attack. Nazgul cannot be attacked physically, except in a Special Case: * this scroll is broken, * * so I cannot continue to read * endmsg face naz_report.111 nrof 1 type 8 subtype 34 material 1 value 20000 weight 300 name_pl Nazgul Reports client_type 1042 skill literacy end Object pentagram editor_folder misc name pentagram face penta.111 no_pick 1 end Object pillars editor_folder misc face pillars.111 no_pick 1 name_pl pillars client_type 8013 end Object plate editor_folder misc face plate.111 nrof 1 material 32 value 10 weight 6500 identified 1 name plate name_pl plate client_type 601 end Object platter1_gol editor_folder misc face platter1_gol.111 type 60 nrof 1 weight 40000 material 2 materialname gold value 80000 name platter name_pl platters client_type 2030 end Object platter1_sil editor_folder misc face platter1_sil.111 type 60 nrof 1 weight 40000 material 2 materialname silver value 8000 name platter name_pl platters client_type 2030 end Object platter1_plat editor_folder misc face platter1_plat.111 type 60 nrof 1 weight 40000 material 2 materialname platinum value 400000 name platter name_pl platters client_type 2030 end Object platter1_bro editor_folder misc face platter1_bro.111 type 60 nrof 1 weight 40000 material 2 materialname bronze value 5400 name platter name_pl platters client_type 2030 end Object platter1_cop editor_folder misc face platter1_cop.111 type 60 nrof 1 weight 40000 material 2 materialname copper value 4000 name platter name_pl platters client_type 2030 end Object platter1_iro editor_folder misc face platter1_iro.111 type 60 nrof 1 weight 40000 material 2 materialname iron value 800 name platter name_pl platters client_type 2030 end Object platter1_tin editor_folder misc face platter1_tin.111 type 60 nrof 1 weight 40000 material 2 materialname tin value 400 name platter name_pl platters client_type 2030 end Object rock editor_folder misc face rock.111 material 64 weight 1500000 move_block all can_roll 1 no_pick 1 move_type 1 end Object rubble editor_folder misc name rubble face rubble1.111 no_pick 1 move_slow walk move_slow_penalty 8 material 64 end Object shipswheel editor_folder misc client_type 8002 face shipswheel.111 material 18 move_block walk swim boat name ships wheel name_pl ships wheels no_pick 1 weight 100000 end Object sky editor_folder misc/sky name sky face sky.111 move_block all no_pick 1 is_floor 1 end Object b_slicingknife editor_folder misc nrof 1 type 15 body_arm -1 face b_slicingknife.111 material 2 materialname bronze skill one handed weapon weight 1000 value 7 name slicing knife name_pl slicing knives client_type 101 #slaying cut attacktype 1 weapontype 1 dam 1 last_sp 8 end Object slicingknife editor_folder misc nrof 1 type 15 body_arm -1 face slicingknife.111 material 2 skill one handed weapon weight 1000 value 14 name slicing knife name_pl slicing knives client_type 101 #slaying cut attacktype 1 weapontype 1 dam 1 last_sp 8 end Object smallicecube editor_folder misc name small icecube move_slow walk move_slow_penalty 1 face smallicecube.111 material 68 weight 1500 resist_cold 100 name_pl small icecubes client_type 8020 end Object pirate_hat editor_folder misc/social name pirate hat name_pl pirate hats client_type 271 nrof 1 type 34 face pirate_hat.111 weight 1000 ac 1 Cha -5 resist_poison 15 resist_fear 50 value 140 material 128 body_head -1 gen_sp_armour 1 end Object statue editor_folder misc face statue.111 type 98 subtype 45 no_pick 1 move_block all end Object statue2 editor_folder misc face statue2.111 type 98 subtype 46 no_pick 1 move_block all end Object statue_ruined editor_folder misc type 98 subtype 45 no_pick 1 move_block all face statue_ruined.x11 end More Object statue_ruined2 editor_folder misc face statue_ruined.x11 type 98 subtype 45 no_pick 1 move_block all x 1 end More Object statue_ruined_3 editor_folder misc face statue_ruined.x11 type 98 subtype 45 no_pick 1 move_block all y 1 end More Object statue_ruined_4 editor_folder misc face statue_ruined.x11 type 98 subtype 45 no_pick 1 move_block all x 1 y 1 end Object t_boulder editor_folder misc race rock name boulder face boulder.111 nrof 1 weight 300000 value 1 material 64 name_pl boulders client_type 8012 is_thrown 1 end Object t_lboulder editor_folder misc race rock name large boulder face boulder.111 nrof 1 weight 600000 value 11 material 64 name_pl large boulders client_type 8012 is_thrown 1 end Object t_lrock editor_folder misc race rock name large rock face t_rock.111 nrof 1 weight 50000 value 1 material 64 name_pl large rocks client_type 8012 is_thrown 1 end Object t_rock editor_folder misc race rock name rock face t_rock.111 nrof 1 weight 500 value 1 material 64 name_pl rocks client_type 8012 is_thrown 1 end Object ten_kilo editor_folder misc nrof 1 name 10 kilo face ten_kilo.111 weight 10000 name_pl 10 kilos client_type 8003 end Object thewheel_short_static editor_folder misc/thewheel face thewheel_short.111 name the wheel no_pick 1 move_block all end Object thewheel_tall_static editor_folder misc/thewheel face thewheel_tall.x11 name the wheel no_pick 1 move_block all end More Object thewheel_tall_2_static editor_folder misc/thewheel y 1 face thewheel_tall.x11 name the wheel no_pick 1 end Object thewheel_short_ccwise-back editor_folder misc/thewheel face thewheel_short.111 name the wheel is_animated 1 no_pick 1 move_block all anim_speed 10 client_anim_random 1 animation thewheel_short_ccwise-back end Object thewheel_tall_ccwise-back editor_folder misc/thewheel face thewheel_tall.x11 name the wheel is_animated 1 no_pick 1 move_block all anim_speed 10 client_anim_random 1 animation thewheel_tall_ccwise-back end More Object thewheel_tall_2_ccwise-back editor_folder misc/thewheel y 1 face thewheel_tall.x11 name the wheel is_animated 1 no_pick 1 anim_speed 10 client_anim_random 1 animation thewheel_tall_2_ccwise-back end Object torch_cyan editor_folder misc name torch of cyan light nrof 1 face torch_cyan.111 animation torch_cyan material 144 value 0 weight 3000 anim_speed 10 client_anim_random 1 name_pl torches of cyan light client_type 1103 end Object torch_indigo editor_folder misc name torch of indigo light nrof 1 face torch_indigo.111 animation torch_indigo material 144 value 0 weight 3000 anim_speed 10 client_anim_random 1 name_pl torches of indigo light client_type 1103 end Object torch_vermilion editor_folder misc name torch of vermilion light nrof 1 face torch_vermilion.111 animation torch_vermilion material 144 value 0 weight 3000 anim_speed 10 client_anim_random 1 name_pl torches of vermilion light client_type 1103 end Object violin editor_folder misc name violin name_pl violins nrof 1 face violin.x11 animation violin speed -0.3 type 3 level 1 value 20000 weight 1800 client_type 721 body_range -1 skill use magic item end Object wheelbarrow editor_folder misc face wheelbarrow.111 material 16 weight 100000 move_block all can_roll 1 move_type 1 name_pl wheelbarrows client_type 8002 end Object wplate editor_folder misc face wplate.111 nrof 1 material 32 value 10 weight 6500 identified 1 name wine name_pl wines client_type 601 end Object acid_pool editor_folder monster/acid race slime name acid pool generator 1 alive 1 level 1 no_pick 1 face acid_pool.111 animation acid_pool other_arch acid_sphere hp 100 maxhp 100 ac 8 exp 100 can_see_in_dark 1 resist_blind 100 speed 0.01 anim_speed 10 weight 750000 generator_limit 5 end Object acid_sphere editor_folder monster/acid race slime name acid sphere face acidsphere.111 animation acid_sphere monster 1 move_type walk sleep 1 Wis 5 alive 1 ac 5 wc 1 dam 50 weight 1 level 4 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_weaponmagic 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_blind 100 attacktype 64 hitback 1 hp 1 maxhp 1 speed 0.01 anim_speed 1 exp 100 one_hit 1 end Object black_pudding editor_folder monster/acid race slime other_arch black_pudding_split name black pudding face bpudding.111 animation black_pudding splitting 1 food 1 monster 1 move_type walk sleep 1 Wis 15 alive 1 ac 5 wc 8 dam 15 hp 100 maxhp 100 Con 1 can_see_in_dark 1 speed -0.2 exp 1200 weight 20000 level 7 attacktype 64 resist_fire -100 resist_blind 100 hitback 1 end Object black_pudding_grow editor_folder monster/acid name black pudding other_arch black_pudding face bpudding_g.111 animation black_pudding_grow changing 1 food 1 monster 1 move_type walk alive 1 ac 5 wc 8 dam 10 hp 100 maxhp 100 Con 1 speed 0.2 exp 600 weight 20000 level 7 attacktype 64 resist_fire -100 hitback 1 end Object black_pudding_split editor_folder monster/acid name black pudding other_arch black_pudding_grow face bpudding_s.111 animation black_pudding_split changing 1 food 2 monster 1 move_type walk alive 1 ac 5 wc 8 dam 10 hp 100 maxhp 100 Con 1 speed 0.2 exp 600 weight 20000 level 7 attacktype 64 resist_fire -100 hitback 1 end Object green_slime editor_folder monster/acid race slime name green slime face greenslime.111 animation green_slime monster 1 move_type walk sleep 1 Wis 5 alive 1 ac 7 wc 11 dam 20 can_see_in_dark 1 resist_blind 100 speed -0.2 exp 175 weight 5000 level 5 attacktype 64 hitback 1 hp 40 maxhp 40 end Object pet_necro editor_folder monster/acid race animal name pet of Necromancer face pet_necro.111 animation pet_necro Con 1 Wis 15 hp 100 maxhp 100 exp 300 dam 20 wc -100 ac -5 speed -1.000000 level 80 attacktype 1 resist_fire -100 weight 30000 alive 1 monster 1 move_type walk hitback 1 sleep 1 end Object rustmonster editor_folder monster/acid race animal name rustmonster face rustmonste.131 animation rustmonster monster 1 move_type walk sleep 1 Wis 15 alive 1 ac 5 wc 10 dam 1 hp 65 maxhp 65 Con 1 speed -0.5 exp 100 weight 30000 level 5 attacktype 64 resist_fire -100 hitback 1 end Object slime editor_folder monster/acid race slime other_arch slime face slime.111 animation slime monster 1 move_type walk sleep 1 Wis 5 no_pick 1 can_see_in_dark 1 resist_blind 100 generator 1 maxsp 10 alive 1 exp 2 ac 10 wc 18 dam 4 hp 5 maxhp 5 level 1 speed 0.06 weight 20000 end Object slimecrawler editor_folder monster/acid/slimecrawler name slime crawler race slime is_animated 1 face slimecrawler.112 animation slimecrawler anim_speed 6 monster 1 move_type walk sleep 1 alive 1 see_invisible 1 can_see_in_dark 1 exp 500 level 6 ac 6 wc 9 dam 16 attacktype 81 hp 70 maxhp 70 Con 1 Wis 5 speed -0.1 attack_movement 5 hitback 1 weight 150000 pick_up 6 resist_cold 50 resist_physical 40 resist_acid 90 resist_blind 80 end Object angel editor_folder monster/angel randomitems angel race angel name angel face angel.111 animation angel is_animated 1 monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 8000 ac 3 wc 4 dam 20 Pow 16 maxsp 40 hp 150 maxhp 150 Int 20 Con 3 level 12 resist_magic 100 resist_blind 80 speed 0.2 weight 75000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attack_movement 4 attacktype 1048577 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object angel_knight editor_folder monster/angel name Angel Knight race angel face angelknight.x11 monster 1 move_type walk fly_low level 8 hp 100 maxhp 100 ac 4 wc 13 dam 20 speed 0.3 Wis 12 see_invisible 1 no_pick 1 alive 1 exp 2200 resist_magic 50 resist_holyword 40 resist_blind 90 weight 75000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attacktype 1048577 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 randomitems all_spell_skills end More Object angel_knight_2 editor_folder monster/angel name Angel Knight face angelknight.x11 monster 1 move_type walk fly_low alive 1 no_pick 1 y 1 weight 75000 end Object ArchAngel editor_folder monster/angel randomitems archangel name Arch Angel race angel face archangel.x11 animation archangel monster 1 move_type walk fly_low sleep 1 see_invisible 1 no_pick 1 alive 1 reflect_spell 1 level 50 Str 29 Int 25 Pow 60 exp 500000 ac -5 wc -40 dam 60 speed 0.300000 attacktype 20745 sp 100 maxsp 200 hp 16000 maxhp 16000 Con 40 resist_magic 100 resist_electricity 100 resist_confusion 100 resist_drain 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_fear 100 resist_physical 75 resist_fire 75 resist_cold 75 resist_blind 100 resist_holyword 30 resist_godpower 80 weight 150000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object ArchAngel_2 editor_folder monster/angel name Arch Angel face archangel.x11 animation archangel monster 1 move_type walk fly_low alive 1 no_pick 1 x 1 weight 75000 end More Object ArchAngel_3 editor_folder monster/angel name Arch Angel face archangel.x11 animation archangel monster 1 move_type walk fly_low alive 1 no_pick 1 y 1 weight 75000 end More Object ArchAngel_4 editor_folder monster/angel name Arch Angel face archangel.x11 animation archangel monster 1 move_type walk fly_low alive 1 no_pick 1 y 1 x 1 weight 75000 end More Object ArchAngel_5 editor_folder monster/angel name Arch Angel face archangel.x11 animation archangel monster 1 move_type walk fly_low alive 1 no_pick 1 y 2 x 0 weight 75000 end More Object ArchAngel_6 editor_folder monster/angel name Arch Angel face archangel.x11 animation archangel monster 1 move_type walk fly_low alive 1 no_pick 1 y 2 x 1 weight 75000 end Object cherub editor_folder monster/angel race angel name cherub face cherub.111 monster 1 move_type walk fly_low see_invisible 1 can_see_in_dark 1 no_pick 1 alive 1 exp 35 ac 6 wc 16 dam 5 hp 25 maxhp 25 Wis 8 level 3 resist_magic 50 speed 0.3 weight 25000 run_away 18 attacktype 1 end Object HighAngel editor_folder monster/angel randomitems high_angel name High Angel race angel face highangel.118 animation highangel monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 reflect_spell 1 Str 29 Int 25 Pow 60 exp 200000 ac -2 wc -20 dam 20 sp 100 maxsp 200 hp 2500 maxhp 2500 Con 40 level 25 resist_magic 100 resist_electricity 100 resist_confusion 100 resist_drain 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_fear 100 resist_physical 50 resist_fire 50 resist_cold 50 resist_holyword 80 resist_blind 80 attacktype 20745 speed 0.400000 weight 150000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attack_movement 4 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object holyghost editor_folder monster/angel race angel face holyghost.111 name holy ghost monster 1 move_type walk fly_low sleep 1 see_invisible 1 can_see_in_dark 1 no_pick 1 alive 1 exp 225 ac 6 wc 12 dam 15 hp 60 maxhp 60 Wis 10 level 5 resist_magic 50 resist_blind 50 speed 0.2 weight 25000 attacktype 512 end Object liteangel editor_folder monster/angel name light angel randomitems liteangel race angel face liteangel.112 animation liteangel monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 unaggressive 0 Str 18 exp 20000 ac -2 wc -10 dam 15 Pow 40 Int 20 maxsp 200 hp 500 maxhp 500 Con 16 level 20 resist_physical 30 resist_fire 30 resist_cold 30 speed 0.25 weight 150000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attack_movement 4 attacktype 1048577 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object mesangel editor_folder monster/angel name messenger randomitems mesangel race angel face mesangel.112 animation mesangel monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 unaggressive 0 Str 20 exp 80000 ac -2 wc -10 dam 15 Pow 32 Int 23 maxsp 500 hp 500 maxhp 500 Con 12 level 21 resist_physical 30 resist_fire 30 resist_cold 30 attacktype 5 speed -0.50 weight 150000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attack_movement 4 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object destroying_angel editor_folder monster/angel name Retributioner race angel face retributioner.x11 randomitems angel monster 1 move_type walk fly_low level 27 hp 4000 maxhp 4000 ac -2 wc -30 dam 50 speed 0.3 attacktype 1048577 Con 10 Pow 32 maxsp 60 sp 60 Wis 12 exp 150000 see_invisible 1 no_pick 1 alive 1 resist_magic 80 resist_holyword 80 resist_blind 100 weight 75000 run_away 18 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object destroying_angel_2 editor_folder monster/angel name Retributioner face retributioner.x11 monster 1 move_type walk fly_low alive 1 no_pick 1 x 1 weight 75000 end More Object destroying_angel_3 editor_folder monster/angel name Retributioner face retributioner.x11 monster 1 move_type walk fly_low alive 1 no_pick 1 y 1 weight 75000 end More Object destroying_angel_4 editor_folder monster/angel name Retributioner face retributioner.x11 monster 1 move_type walk fly_low alive 1 no_pick 1 y 1 x 1 weight 75000 end More Object destroying_angel_5 editor_folder monster/angel name Retributioner face retributioner.x11 monster 1 move_type walk fly_low alive 1 no_pick 1 y 2 x 0 weight 75000 end More Object destroying_angel_6 editor_folder monster/angel name Retributioner face retributioner.x11 monster 1 move_type walk fly_low alive 1 no_pick 1 y 2 x 1 weight 75000 end Object whim editor_folder monster/angel race angel name whim face whim.111 animation whim is_animated 1 monster 1 move_type walk fly_low see_invisible 1 can_see_in_dark 1 no_pick 1 alive 1 exp 7 ac 10 wc 15 dam 2 hp 10 maxhp 10 Wis 8 level 1 resist_magic 100 speed 0.2 weight 75000 run_away 18 attacktype 1 end Object bear editor_folder monster/animal/Bear race animal name bear randomitems bear monster 1 move_type walk sleep 1 Wis 10 face bear.x31 animation bear exp 1500 ac 6 wc 9 dam 20 hp 150 maxhp 150 attacktype 1 attack_movement 4 Con 2 Str 30 Int 5 level 8 alive 1 no_pick 1 speed -0.085 weight 300000 run_away 6 end More Object bear_2 editor_folder monster/animal/Bear name bear face bear.x31 animation bear monster 1 move_type walk alive 1 no_pick 1 y 1 end Object polarbear editor_folder monster/animal/Bear race animal name polar bear randomitems polarbear monster 1 move_type walk sleep 1 Wis 10 face polarbear.x31 animation polarbear resist_cold 50 exp 3000 attacktype 1 attack_movement 4 ac 4 wc 8 dam 20 hp 175 Con 4 Str 30 Int 13 maxhp 175 level 9 alive 1 no_pick 1 speed -0.085 weight 600000 run_away 6 end More Object polarbear_2 editor_folder monster/animal/Bear name polar bear face polarbear.x31 animation polarbear monster 1 move_type walk alive 1 no_pick 1 y 1 end Object behemoth editor_folder monster/animal/Behemoth face behemoth.x31 animation behemoth race animal randomitems behemoth attacktype 1025 monster 1 move_type walk sleep 1 Wis 20 resist_fear 100 resist_poison 90 resist_magic 30 exp 20000 ac -3 wc -10 dam 16 hp 800 maxhp 800 Con 2 level 20 alive 1 speed -0.5 weight 1800000 end More Object behemoth_2 editor_folder monster/animal/Behemoth face behemoth.x31 animation behemoth x 1 alive 1 end More Object behemoth_3 editor_folder monster/animal/Behemoth face behemoth.x31 animation behemoth y 1 alive 1 end More Object behemoth_4 editor_folder monster/animal/Behemoth face behemoth.x31 animation behemoth x 1 y 1 alive 1 end Object dog editor_folder monster/animal/Dog face dog.131 race animal animation dog monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 25 maxhp 25 Con 2 speed -0.2 exp 35 ac 6 dam 5 wc 15 level 3 weight 30000 run_away 15 attack_movement 3 end Object mastif editor_folder monster/animal/Dog name mastif face mastif.131 race animal animation mastif monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 120 maxhp 120 Con 2 speed -0.2 exp 1800 ac 3 dam 9 wc 9 level 8 can_see_in_dark 1 weight 60000 run_away 5 attack_movement 3 end Object pup editor_folder monster/animal/Dog face pup.131 race animal animation pup monster 1 move_type walk sleep 1 Wis 10 alive 1 hp 10 maxhp 10 Con 1 speed -0.2 exp 10 ac 7 dam 2 wc 15 level 1 weight 5000 run_away 60 attack_movement 3 end Object awful_rat editor_folder monster/animal/Giant_rat name awful rat Con 50 hp 6000 maxhp 6000 exp 900000 dam 95 wc -100 ac -60 speed -0.99 level 120 resist_physical 95 resist_magic 95 resist_fire 95 resist_electricity 95 resist_cold 95 resist_confusion 95 resist_acid 95 resist_drain 95 resist_weaponmagic 75 resist_ghosthit 95 resist_poison 100 resist_slow 95 resist_paralyze -50 resist_turn_undead 95 resist_deplete 95 resist_death 95 resist_chaos 95 resist_godpower 95 resist_holyword 95 resist_blind 95 see_invisible 1 reflect_missile 1 run_away 10 can_cast_spell 0 can_see_in_dark 1 face giantrat.x31 animation giantrat race animal randomitems giantrat attack_movement 3 monster 1 move_type walk sleep 1 Wis 10 resist_fear 100 Str 30 Dex 30 alive 1 weight 2400000 attacktype 1 end More Object awful_rat_2 editor_folder monster/animal/Giant_rat face giantrat.x31 animation giantrat x 1 alive 1 end More Object awful_rat_3 editor_folder monster/animal/Giant_rat face giantrat.x31 animation giantrat y 1 alive 1 end More Object awful_rat_4 editor_folder monster/animal/Giant_rat face giantrat.x31 animation giantrat x 1 y 1 alive 1 end Object giantrat editor_folder monster/animal/Giant_rat name giant rat face giantrat.x31 animation giantrat race animal randomitems giantrat speed -0.4 attack_movement 3 monster 1 move_type walk sleep 1 Wis 10 resist_fear 100 resist_poison 75 exp 30000 ac -3 wc -10 dam 60 hp 4000 maxhp 4000 Con 20 Str 30 Dex 30 level 25 alive 1 weight 2400000 can_cast_spell 1 attacktype 1 end More Object giantrat_2 editor_folder monster/animal/Giant_rat face giantrat.x31 animation giantrat x 1 alive 1 end More Object giantrat_3 editor_folder monster/animal/Giant_rat face giantrat.x31 animation giantrat y 1 alive 1 end More Object giantrat_4 editor_folder monster/animal/Giant_rat face giantrat.x31 animation giantrat x 1 y 1 alive 1 end Object neko editor_folder monster/animal/Neko race animal name neko chan face neko.111 animation neko monster 1 move_type walk sleep 1 Wis 8 no_pick 1 alive 1 exp 2 ac 12 wc 15 dam 2 hp 2 maxhp 2 level 1 speed 0.3 weight 30000 run_away 90 randomitems neko end Object dire_wolf editor_folder monster/animal/Wolf name dire wolf face dwolf.171 race animal randomitems dwolf animation dire_wolf monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 250 maxhp 250 Con 4 speed 0.2 exp 8000 no_pick 1 can_see_in_dark 1 ac 6 wc 8 dam 30 attacktype 17 resist_cold 50 resist_fire -25 resist_physical 40 level 11 can_cast_spell 1 sp 30 maxsp 30 Pow 5 weight 80000 run_away 7 attack_movement 3 end Object dire_wolf_sire editor_folder monster/animal/Wolf name dire wolf sire face dwolf.171 race animal randomitems dwolf_sire animation dire_wolf_sire monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 400 maxhp 400 Con 4 speed 0.2 exp 18000 no_pick 1 can_see_in_dark 1 ac 4 dam 45 attacktype 17 resist_cold 60 resist_fire -5 wc 5 level 18 can_cast_spell 1 sp 45 maxsp 45 Pow 7 weight 160000 run_away 4 attack_movement 3 end Object wolf editor_folder monster/animal/Wolf face wolf.171 race animal randomitems wolf animation wolf monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 100 maxhp 100 can_see_in_dark 1 attacktype 1 Con 2 speed -0.2 exp 1400 ac 4 dam 15 wc 12 level 7 weight 55000 run_away 15 attack_movement 3 end Object ape editor_folder monster/animal name ape randomitems ape race animal face ape.171 animation ape monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 1400 level 7 ac 4 wc 11 hp 100 maxhp 100 Con 2 Wis 6 Str 24 Dex 25 Int 8 dam 14 speed -0.2 resist_electricity 30 resist_physical 20 weight 90000 run_away 35 end Object bat editor_folder monster/animal face bat.111 race animal animation bat monster 1 move_type walk fly_low sleep 1 Wis 15 no_pick 1 alive 1 see_invisible 1 speed 0.2 hp 5 maxhp 5 run_away 80 exp 6 wc 16 dam 3 ac 7 level 1 weight 20 resist_physical 30 end Object generate_bat editor_folder monster/animal name bat generator other_arch bat race animal face bat_gen.111 generator 1 no_pick 1 alive 1 level 1 exp 20 speed 0.015 hp 100 resist_physical 30 generator_limit 5 end Object bird editor_folder monster/animal face bird.111 race bird animation bird monster 1 move_type walk fly_low sleep 1 Wis 8 no_pick 1 alive 1 ac 5 level 1 hp 10 maxhp 10 run_away 80 wc 15 dam 1 speed -0.3 exp 8 weight 1500 attack_movement 3 end Object generate_bird editor_folder monster/animal name nest race bird other_arch bird generator 1 face bird_gen.111 hp 30 maxhp 30 exp 200 ac 5 speed 0.01 alive 1 level 1 maxsp 1 weight 1000 generator_limit 5 end Object cobra editor_folder monster/animal name giant cobra face cobra.x12 animation cobra race reptile speed -0.2 anim_speed 3 monster 1 move_type walk sleep 1 Wis 10 alive 1 no_pick 1 exp 225 ac 4 wc 12 dam 15 attacktype 1025 hp 40 maxhp 40 level 5 weight 20000 end More Object cobra_2 editor_folder monster/animal name giant cobra face cobra.x12 animation cobra alive 1 no_pick 1 y 1 end Object chicken editor_folder monster/animal/farmyard race bird face chicken.131 animation chicken monster 1 move_type walk Wis 1 alive 1 level 1 ac 9 hp 10 maxhp 10 run_away 80 wc 15 dam 0 speed -0.2 exp 7 weight 1500 attack_movement 2 end Object goose editor_folder monster/animal/farmyard race bird face goose.131 animation goose monster 1 move_type walk Wis 1 alive 1 level 2 ac 9 hp 12 maxhp 12 run_away 80 wc 15 dam 3 speed -0.2 exp 20 weight 8500 attack_movement 2 end Object horse editor_folder monster/animal/farmyard race animal name horse monster 1 move_type walk friendly 1 Wis 13 face horse.171 animation horse exp 1000 wc 9 no_pick 1 alive 1 level 8 ac 13 hp 125 maxhp 125 run_away 35 Con 2 Str 16 Int 6 dam 12 speed -0.07 pick_up 1 can_see_in_dark 1 attacktype 1 attack_movement 56 resist_physical 25 resist_slow 50 resist_fear -10 weight 50000 end More Object horse_2 editor_folder monster/animal/farmyard name horse face horse.171 animation horse alive 1 no_pick 1 x 1 end Object sheep editor_folder monster/animal/farmyard race sheep face sheep.131 animation sheep monster 1 move_type walk Wis 5 alive 1 level 1 ac 9 hp 15 maxhp 15 randomitems sheep run_away 80 wc 15 dam 1 attacktype 18 speed 0.2 exp 6 weight 60000 resist_cold 10 attack_movement 2 end Object fungus editor_folder monster/animal other_arch fungus name violent fungi race slime face fungus.111 speed -0.08 generator 1 sp 129 maxsp 20 no_pick 1 animation fungus monster 1 move_type walk sleep 1 Wis 5 alive 1 exp 15 ac 8 wc 14 dam 3 attacktype 1024 hp 20 maxhp 20 level 2 weight 10000 end Object giant_bat editor_folder monster/animal name giant bat race animal face giant_bat.111 randomitems giant_bat animation giant_bat monster 1 move_type walk fly_low sleep 1 Wis 15 no_pick 1 alive 1 ac 4 level 5 hp 40 maxhp 40 see_invisible 1 wc 13 dam 10 speed 0.3 exp 225 weight 5000 attack_movement 3 end Object event_attack_purple_worm editor_folder monster/animal/giant_worm title Python slaying /python/misc/swallow_whole.py type 116 subtype 2 end Object g_worm editor_folder monster/animal/giant_worm name Giant Worm face g_worm.x31 animation g_worm race animal monster 1 move_type walk sleep 1 Str 40 Pow 30 Wis 20 Dex 15 Con 30 Int 10 resist_physical 85 resist_magic 30 resist_acid 100 resist_fire 30 resist_electricity 50 resist_poison 100 resist_paralyze 100 resist_death 100 resist_blind 100 exp 100000 ac -7 wc -10 dam 50 attacktype 3137 hp 4000 maxhp 4000 sp 80 maxsp 80 randomitems giant_worm level 35 alive 1 speed -0.05 weight 1800000 can_cast_spell 1 can_see_in_dark 1 see_invisible 1 end More Object g_worm_2 editor_folder monster/animal/giant_worm name Giant Worm face g_worm.x31 animation g_worm x 1 alive 1 end More Object g_worm_3 editor_folder monster/animal/giant_worm name Giant Worm face g_worm.x31 animation g_worm y 1 alive 1 end More Object g_worm_4 editor_folder monster/animal/giant_worm name Giant Worm face g_worm.x31 animation g_worm x 1 y 1 alive 1 end Object purple_worm editor_folder monster/animal/giant_worm name Purple Worm face purple_worm.x31 animation purple_worm race animal monster 1 sleep 1 Str 40 Pow 30 Wis 20 Dex 15 Con 30 Int 10 resist_physical 85 resist_magic 30 resist_acid 100 resist_fire 30 resist_electricity 50 resist_poison 100 resist_paralyze 100 resist_death 100 resist_blind 100 exp 100000 ac -7 wc -100 dam 50 attacktype 3137 hp 9000 maxhp 9000 sp 80 maxsp 80 randomitems purple_worm level 116 alive 1 speed -0.05 weight 1800000 can_cast_spell 1 can_see_in_dark 1 see_invisible 1 end More Object purple_worm_2 editor_folder monster/animal/giant_worm name Purple Worm face purple_worm.x31 animation purple_worm x 1 alive 1 end More Object purple_worm_3 editor_folder monster/animal/giant_worm name Purple Worm face purple_worm.x31 animation purple_worm y 1 alive 1 end More Object purple_worm_4 editor_folder monster/animal/giant_worm name Purple Worm face purple_worm.x31 animation purple_worm x 1 y 1 alive 1 end Object gryphon editor_folder monster/animal/gryphon race animal name Dark Gryphon randomitems gryphon monster 1 move_type walk sleep 1 Wis 15 face gryphon.x31 animation gryphon level 29 attacktype 128 Dex 30 Str 80 Con 28 Pow 48 sp 100 maxsp 100 hp 3500 maxhp 3500 resist_holyword 60 resist_godpower 60 resist_magic 100 resist_poison 100 resist_paralyze 100 resist_fear 100 ac -7 wc -20 dam 19 exp 350000 see_invisible 0 alive 1 no_pick 1 speed 0.5 anim_speed 0.4 weight 400000 can_use_scroll 1 can_use_range 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attack_movement 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object gryphon2 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 x 1 end More Object gryphon3 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon alive 1 anim_speed 1.0 x 2 end More Object gryphon4 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 y 1 end More Object gryphon5 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 x 1 y 1 end More Object gryphon6 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 x 2 y 1 end More Object gryphon7 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 y 2 end More Object gryphon8 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 x 1 y 2 end More Object gryphon9 editor_folder monster/animal/gryphon name Dark Gryphon face gryphon.x31 animation gryphon monster 1 move_type walk alive 1 anim_speed 1.0 x 2 y 2 end Object leech editor_folder monster/animal/leech name giant leech race animal face leech.171 animation leech anim_speed 4 randomitems leech monster 1 move_type walk sleep 1 no_pick 1 alive 1 can_see_in_dark 1 exp 7000 level 20 ac 4 wc 0 dam 30 attacktype 16844928 hp 350 maxhp 350 Con 2 Wis 5 speed -0.2 attack_movement 5 run_away 0 weight 500000 resist_physical 20 resist_cold 30 resist_electricity -20 resist_acid -70 resist_drain 70 resist_poison 50 end Object mouse editor_folder monster/animal other_arch mouse face mouse.111 race animal animation mouse monster 1 move_type walk no_pick 1 generator 1 maxsp 100 alive 1 exp 1 ac 7 wc 20 dam 2 hp 4 maxhp 4 level 1 speed -0.11 weight 80 attack_movement 2 end Object generate_mouse editor_folder monster/animal race animal other_arch mouse name mouse hole generator 1 face mouse_gen.111 alive 1 level 1 speed 0.006 hp 30 maxhp 30 ac 3 exp 50 maxsp 1 generator_limit 5 end Object mushman1 editor_folder monster/animal other_arch mushman1 name Mushroom Man race slime face mushman1.111 speed -0.08 generator 1 sp 129 maxsp 20 no_pick 1 animation mushman1 monster 1 move_type walk sleep 1 Wis 5 alive 1 exp 15 ac 8 wc 14 dam 3 attacktype 1024 hp 20 maxhp 20 level 2 weight 10000 end Object panther editor_folder monster/animal face panther.131 race animal animation panther monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 50 maxhp 50 Con 3 can_see_in_dark 1 speed -0.3 exp 200 ac 4 dam 10 wc 13 level 5 weight 60000 run_away 15 attack_movement 3 end Object generate_panther editor_folder monster/animal race animal name panther cave other_arch panther face panthergen.111 generator 1 alive 1 level 1 hp 100 speed 0.004 exp 50 weight 900000 generator_limit 5 end Object generate_scorpion editor_folder monster/animal race animal other_arch scorpion name scorpion generator generator 1 face scorpi_gen.111 alive 1 level 1 speed 0.002 hp 50 maxhp 50 ac 3 exp 50 maxsp 1 weight 10000 generator_limit 5 end Object scorpion editor_folder monster/animal face scorpion.111 race animal randomitems scorpion animation scorpion monster 1 move_type walk sleep 1 Wis 8 no_pick 1 alive 1 ac 6 hp 30 maxhp 30 Con 2 wc 14 level 3 dam 10 attacktype 1025 resist_fire 100 resist_electricity 50 resist_cold -100 resist_confusion -100 speed 0.1 exp 40 weight 500 end Object shadowpup editor_folder monster/animal/shadowtiger name shadowtiger pup face panther.131 race animal animation shadowpup monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 75 maxhp 75 Con 2 speed -0.3 exp 700 ac 8 dam 10 wc 11 level 6 weight 200000 run_away 15 attack_movement 3 end Object shadowtiger editor_folder monster/animal/shadowtiger name Shadow Tiger race animal face shadowtiger.x31 animation shadowtiger exp 100000 monster 1 move_type walk fly_low alive 1 no_pick 1 see_invisible 1 Con 30 maxhp 2000 hp 2000 ac -6 wc -20 dam 33 level 20 resist_physical 100 resist_magic 100 resist_confusion 100 resist_drain 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_electricity 50 resist_weaponmagic 50 attacktype 71041 speed -0.3 weight 2000000 run_away 2 attack_movement 3 end More Object shadowtiger_2 editor_folder monster/animal/shadowtiger name Shadow Tiger face shadowtiger.x31 animation shadowtiger x 1 alive 1 end More Object shadowtiger_3 editor_folder monster/animal/shadowtiger name Shadow Tiger face shadowtiger.x31 animation shadowtiger y 1 alive 1 end More Object shadowtiger_4 editor_folder monster/animal/shadowtiger name Shadow Tiger face shadowtiger.x31 animation shadowtiger x 1 y 1 alive 1 end Object snake editor_folder monster/animal randomitems snake race reptile other_arch snake face snake.111 speed -0.1 generator 1 sp 134 maxsp 60 no_pick 1 animation snake monster 1 move_type walk sleep 1 Wis 8 alive 1 exp 25 ac 7 wc 18 dam 8 hp 15 maxhp 15 level 2 weight 1000 end Object generate_beholder editor_folder monster/beholder race unnatural other_arch beholder name beholder hive generator 1 face behold_gen.111 hp 100 maxhp 100 exp 180 ac 13 speed -0.001 resist_magic 100 alive 1 level 1 maxsp 1 weight 90000 generator_limit 5 end Object beholder editor_folder monster/beholder randomitems beholder race unnatural face beholder.111 animation beholder monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 2000 ac 5 wc 7 dam 10 Con 1 Pow 2 can_cast_spell 1 maxsp 15 hp 80 maxhp 80 level 8 resist_magic 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind -75 speed -0.15 weight 1000 run_away 15 attack_movement 1 end Object beholder_leader_arc editor_folder monster/beholder name strange beholder randomitems beholder race unnatural face beholder_leader.111 animation beholder_leader_arc monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 5000 ac 2 wc 10 dam 20 Con 1 Pow 2 can_cast_spell 1 sp 15 maxsp 15 hp 120 maxhp 120 level 10 resist_magic 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_physical 40 resist_blind -60 speed -0.20 weight 1000 run_away 15 attack_movement 1 end Object dread editor_folder monster/beholder name Dread race unnatural randomitems dread face dread.x11 animation dread exp 50000 monster 1 move_type walk fly_low sleep 1 Wis 20 alive 1 no_pick 1 see_invisible 1 Con 5 Pow 14 maxsp 30 can_cast_spell 1 hp 1500 maxhp 1500 ac -5 wc -20 dam 25 level 60 resist_magic 90 resist_fire 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind -50 speed -0.30 weight 30000 run_away 2 attack_movement 1 end More Object dread_2 editor_folder monster/beholder name Dread face dread.x11 animation dread x 1 alive 1 no_pick 1 move_type walk fly_low end More Object dread_3 editor_folder monster/beholder name Dread face dread.x11 animation dread y 1 alive 1 no_pick 1 move_type walk fly_low end More Object dread_4 editor_folder monster/beholder name Dread face dread.x11 animation dread x 1 y 1 alive 1 no_pick 1 move_type walk fly_low end Object archon editor_folder monster/chaos name Archon randomitems liv_chaos race chaos face archon.111 animation archon is_animated 1 move_type walk fly_low level 30 hp 1500 maxhp 1500 Int 50 Pow 50 sp 300 maxsp 300 ac -15 wc -30 dam 80 alive 1 weight 30000 exp 100000 speed -0.6 attacktype 262180 Con 3 Wis 15 can_cast_spell 1 resist_ghosthit 100 resist_poison 100 resist_fear 100 resist_death 100 resist_chaos 100 resist_physical 50 resist_magic 50 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion -100 resist_drain -100 monster 1 end Object living_chaos editor_folder monster/chaos name living chaos randomitems liv_chaos race chaos face liv_chaos.111 animation living_chaos is_animated 1 move_type walk fly_low level 40 hp 250 maxhp 250 Int 3 Pow 3 sp 1 maxsp 50 ac -7 wc -5 dam 20 alive 1 weight 30000 exp 50000 speed -0.6 attacktype 262144 Con 3 Wis 15 can_cast_spell 1 resist_ghosthit 100 resist_poison 100 resist_fear 100 resist_death 100 resist_chaos 100 resist_physical 50 resist_magic 50 resist_fire 50 resist_electricity 50 resist_cold 50 resist_confusion -100 resist_drain -100 resist_weaponmagic -100 monster 1 end Object chaos_witch editor_folder monster/chaos name chaos witch race chaos face witch_chaos.111 animation witch_chaos randomitems witch_chaos monster 1 move_type walk fly_low alive 1 resist_ghosthit 100 resist_poison 100 resist_fear 100 resist_death 100 resist_chaos 100 resist_physical 50 resist_magic 50 resist_fire 50 resist_electricity 50 resist_cold 50 resist_confusion -100 resist_drain -100 resist_weaponmagic -100 attacktype 262144 attack_movement 3 ac -4 wc -7 dam 30 hp 1200 maxhp 1200 level 20 speed -0.4 exp 10000 weight 900 can_cast_spell 1 can_use_skill 1 sp 50 maxsp 100 Pow 10 Wis 10 Con 10 end Object Balrog editor_folder monster/demon name Balrog randomitems Balrog race demon face jessyb.x11 animation jessyb attacktype 1029 resist_magic 80 resist_physical 80 resist_godpower 80 resist_holyword 80 resist_fire 100 resist_confusion 100 resist_fear 100 resist_paralyze 100 resist_poison 100 resist_blind 100 monster 1 move_type walk sleep 1 Wis 20 Con 40 no_pick 1 see_invisible 1 attack_movement 5 alive 1 exp 400000 ac -10 wc -30 dam 60 Str 90 Int 30 Dex 40 Pow 40 maxsp 90 hp 4000 maxhp 4000 level 30 speed 0.4 weight 500000 pick_up 24 will_apply 14 run_away 10 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object Balrog_2 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 weight 300000 end More Object Balrog_3 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 weight 300000 end More Object Balrog_4 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 weight 300000 end More Object Balrog_5 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end More Object Balrog_6 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 y 1 weight 300000 end More Object Balrog_7 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 y 1 weight 300000 end More Object Balrog_8 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 y 1 weight 300000 end More Object Balrog_9 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 y 2 weight 300000 end More Object Balrog_10 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 y 2 weight 300000 end More Object Balrog_11 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 y 2 weight 300000 end More Object Balrog_12 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 y 2 weight 300000 end More Object Balrog_13 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 y 3 weight 300000 end More Object Balrog_14 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 y 3 weight 300000 end More Object Balrog_15 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 y 3 weight 300000 end More Object Balrog_16 editor_folder monster/demon name Balrog face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 y 3 weight 300000 end Object big_demon editor_folder monster/demon/Big_Demon name big demon randomitems imp race demon face big_demon.x71 animation big_demon resist_magic 50 resist_godpower 50 resist_holyword 50 resist_blind 100 resist_fire 100 resist_confusion 100 resist_poison 100 attacktype 1029 can_see_in_dark 1 see_invisible 1 exp 20000 ac -1 wc -3 dam 30 Str 40 Pow 10 Dex 15 Con 10 hp 1000 sp 30 maxsp 50 maxhp 1000 level 20 speed 0.3 weight 300000 monster 1 move_type walk Wis 13 alive 1 will_apply 12 run_away 3 attack_movement 5 can_use_weapon 1 can_use_skill 1 can_cast_spell 1 body_skill 1 body_arm 2 end More Object big_demon_2 editor_folder monster/demon/Big_Demon name big demon face big_demon.x31 animation big_demon monster 1 move_type walk alive 1 x 1 weight 300000 end More Object big_demon_3 editor_folder monster/demon/Big_Demon name big demon face big_demon.x31 animation big_demon monster 1 move_type walk alive 1 x 2 weight 300000 end More Object big_demon_4 editor_folder monster/demon/Big_Demon name big demon face big_demon.x31 animation big_demon monster 1 move_type walk alive 1 y 1 weight 300000 end More Object big_demon_5 editor_folder monster/demon/Big_Demon name big demon face big_demon.x31 animation big_demon monster 1 move_type walk alive 1 x 1 y 1 weight 300000 end More Object big_demon_6 editor_folder monster/demon/Big_Demon name big demon face big_demon.x31 animation big_demon monster 1 move_type walk alive 1 x 2 y 1 weight 300000 end More Object big_demon_7 editor_folder monster/demon/Big_Demon name big demon face big_demon.x31 animation big_demon monster 1 move_type walk alive 1 y 2 weight 300000 end More Object big_demon_8 editor_folder monster/demon/Big_Demon name big demon face big_demon.x71 animation big_demon monster 1 move_type walk alive 1 x 1 y 2 weight 300000 end More Object big_demon_9 editor_folder monster/demon/Big_Demon name big demon face big_demon.x71 animation big_demon monster 1 move_type walk alive 1 x 2 y 2 weight 300000 end More Object big_demon_A editor_folder monster/demon/Big_Demon name big demon face big_demon.x71 animation big_demon monster 1 move_type walk alive 1 y 3 weight 300000 end More Object big_demon_B editor_folder monster/demon/Big_Demon name big demon face big_demon.x71 animation big_demon monster 1 move_type walk alive 1 x 1 y 3 weight 300000 end More Object big_demon_C editor_folder monster/demon/Big_Demon name big demon face big_demon.x71 animation big_demon monster 1 move_type walk alive 1 x 2 y 3 weight 300000 end Object demon_lord editor_folder monster/demon/Demon_Lord name Demon Lord randomitems demonlord race demon face demon_lord.x11 animation demon_lord Con 8 Pow 35 can_cast_spell 1 sp 80 maxsp 80 hp 3000 maxhp 3000 exp 300000 ac -5 dam 40 wc -30 weight 8000000 attacktype 5 resist_physical 75 resist_fire 100 resist_cold 80 resist_fear 100 resist_paralyze 100 resist_holyword 90 resist_godpower 90 resist_magic 80 resist_blind 100 level 69 speed -0.2 alive 1 monster 1 move_type walk sleep 1 Wis 20 see_invisible 1 will_apply 12 run_away 2 end More Object demon_lord_1 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y -3 alive 1 end More Object demon_lord_2 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y -3 alive 1 end More Object demon_lord_3 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y -3 alive 1 end More Object demon_lord_4 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y -3 alive 1 end More Object demon_lord_5 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y -2 alive 1 end More Object demon_lord_6 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y -2 alive 1 end More Object demon_lord_7 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y -2 alive 1 end More Object demon_lord_8 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y -2 alive 1 end More Object demon_lord_9 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y -1 alive 1 end More Object demon_lord_10 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y -1 alive 1 end More Object demon_lord_11 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y -1 alive 1 end More Object demon_lord_12 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y -1 alive 1 end More Object demon_lord_13 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 alive 1 end More Object demon_lord_15 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 alive 1 end More Object demon_lord_16 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 alive 1 end More Object demon_lord_17 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y 1 alive 1 end More Object demon_lord_18 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y 1 alive 1 end More Object demon_lord_19 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y 1 alive 1 end More Object demon_lord_20 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y 1 alive 1 end More Object demon_lord_21 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y 2 alive 1 end More Object demon_lord_22 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y 2 alive 1 end More Object demon_lord_23 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y 2 alive 1 end More Object demon_lord_24 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y 2 alive 1 end More Object demon_lord_25 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y 3 alive 1 end More Object demon_lord_26 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y 3 alive 1 end More Object demon_lord_27 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y 3 alive 1 end More Object demon_lord_28 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y 3 alive 1 end More Object demon_lord_29 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x -1 y 4 alive 1 end More Object demon_lord_30 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord y 4 alive 1 end More Object demon_lord_31 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 1 y 4 alive 1 end More Object demon_lord_32 editor_folder monster/demon/Demon_Lord name Demon Lord face demon_lord.x11 animation demon_lord x 2 y 4 alive 1 end Object Greater_Demon editor_folder monster/demon/GreatDemon name Greater Demon randomitems Balrog race demon face GreatDemon.x11 Con 80 Pow 80 can_see_in_dark 1 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 sp 150 maxsp 150 hp 8000 maxhp 8000 exp 550000 ac -6 dam 80 wc -50 weight 8000000 attacktype 1029 attack_movement 5 resist_physical 90 resist_fire 100 resist_confusion 100 resist_fear 100 resist_paralyze 100 resist_poison 100 resist_magic 80 resist_blind 100 resist_godpower 90 resist_holyword 90 level 40 speed 0.3 alive 1 monster 1 move_type walk sleep 1 Wis 20 see_invisible 1 will_apply 14 run_away 2 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object Greater_Demon_1 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 0 alive 1 end More Object Greater_Demon_2 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 0 alive 1 end More Object Greater_Demon_3 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 0 alive 1 end More Object Greater_Demon_4 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 0 alive 1 end More Object Greater_Demon_5 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 0 alive 1 end More Object Greater_Demon_6 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 0 y 1 alive 1 end More Object Greater_Demon_7 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 1 alive 1 end More Object Greater_Demon_8 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 1 alive 1 end More Object Greater_Demon_9 editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 1 alive 1 end More Object Greater_Demon_A editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 1 alive 1 end More Object Greater_Demon_B editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 1 alive 1 end More Object Greater_Demon_C editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 0 y 2 alive 1 end More Object Greater_Demon_D editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 2 alive 1 end More Object Greater_Demon_E editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 2 alive 1 end More Object Greater_Demon_F editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 2 alive 1 end More Object Greater_Demon_G editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 2 alive 1 end More Object Greater_Demon_H editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 2 alive 1 end More Object Greater_Demon_I editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 0 y 3 alive 1 end More Object Greater_Demon_J editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 3 alive 1 end More Object Greater_Demon_K editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 3 alive 1 end More Object Greater_Demon_L editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 3 alive 1 end More Object Greater_Demon_M editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 3 alive 1 end More Object Greater_Demon_N editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 3 alive 1 end More Object Greater_Demon_O editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 0 y 4 alive 1 end More Object Greater_Demon_P editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 4 alive 1 end More Object Greater_Demon_Q editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 4 alive 1 end More Object Greater_Demon_R editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 4 alive 1 end More Object Greater_Demon_S editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 4 alive 1 end More Object Greater_Demon_T editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 4 alive 1 end More Object Greater_Demon_U editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 0 y 5 alive 1 end More Object Greater_Demon_V editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 5 alive 1 end More Object Greater_Demon_W editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 5 alive 1 end More Object Greater_Demon_X editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 5 alive 1 end More Object Greater_Demon_Y editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 5 alive 1 end More Object Greater_Demon_Z editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 5 alive 1 end More Object Greater_Demon_a editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 0 y 6 alive 1 end More Object Greater_Demon_b editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 1 y 6 alive 1 end More Object Greater_Demon_c editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 2 y 6 alive 1 end More Object Greater_Demon_d editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 3 y 6 alive 1 end More Object Greater_Demon_e editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 4 y 6 alive 1 end More Object Greater_Demon_f editor_folder monster/demon/GreatDemon name Greater Demon face GreatDemon.x11 x 5 y 6 alive 1 end Object bone_head editor_folder monster/demon name Evil Master, Bonehead randomitems beholder race demon face bone_head.111 animation bone_head monster 1 move_type walk fly_low friendly 1 Wis 20 no_pick 1 alive 1 sleep 1 undead 1 exp 3500 level 100 attacktype 17 resist_magic 100 resist_cold 100 resist_poison 100 resist_paralyze 100 resist_fear 100 ac -1 Pow 16 maxsp 50 hp 25000 Con 50 maxhp 25000 wc -5 dam 15 speed 0.2 weight 1500 run_away 15 can_cast_spell 1 can_see_in_dark 1 attack_movement 1 end Object devil editor_folder monster/demon name demon race demon randomitems devil face devil.111 animation devil monster 1 move_type walk sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 2500 ac 4 resist_physical 30 wc 8 dam 12 Pow 4 Int 15 sp 30 maxsp 30 hp 165 Con 4 maxhp 165 level 9 resist_fire 100 resist_blind 30 resist_cold -100 resist_confusion -100 speed 0.11 weight 180000 run_away 15 will_apply 14 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object generate_devil editor_folder monster/demon race demon other_arch devil name demon gate generator 1 face devil_gen.111 hp 400 maxhp 400 exp 180 ac 7 speed 0.01 resist_fire 100 resist_cold -100 resist_confusion -100 alive 1 level 1 maxsp 1 weight 300000 generator_limit 5 end Object evil_master1 editor_folder monster/demon race demon name Evil Master face evil_master.111 animation evil_master1 Con 100 Wis 50 Pow 50 Int 30 hp 30000 maxhp 30000 sp 1000 maxsp 1000 exp 1000000 dam 50 wc -50 ac -25 resist_physical 100 resist_cold 100 resist_electricity 60 resist_fire 30 resist_magic 30 resist_acid 30 resist_weaponmagic 60 resist_paralyze 100 resist_fear 30 resist_turn_undead 100 resist_death 100 resist_blind 100 resist_holyword 95 resist_godpower 100 speed 0.850000 level 117 attacktype 66332 pick_up 24 will_apply 15 alive 1 no_pick 1 monster 1 move_type walk see_invisible 1 unaggressive 1 can_cast_spell 1 can_use_scroll 1 can_use_bow 1 can_use_range 1 can_use_skill 1 can_use_ring 1 sleep 1 body_finger 2 body_range 1 randomitems all_spell_skills end Object evil_master2 editor_folder monster/demon name Evil Master race demon face evil_master2.111 animation evil_master2 Con 100 Wis 40 Pow 30 Int 30 hp 20000 maxhp 20000 sp 1000 maxsp 1000 exp 400000 dam 80 wc -60 ac -25 attacktype 5242880 resist_physical 100 resist_magic 30 resist_fire 80 resist_weaponmagic 50 resist_blind 100 speed 0.700000 attack_movement 3 level 100 weight 75000 run_away 3 pick_up 24 will_apply 15 alive 1 no_pick 1 is_animated 1 monster 1 move_type walk fly_low see_invisible 1 unaggressive 1 can_cast_spell 1 can_use_scroll 1 can_use_bow 1 can_use_ring 1 sleep 1 can_use_skill 1 can_use_range 1 body_finger 2 body_skill 1 body_arm 2 body_range 1 randomitems all_spell_skills end Object evil_master3 editor_folder monster/demon name Evil Master race demon face evil_master3.111 animation evil_master3 Con 100 Wis 40 Pow 40 Int 30 hp 31000 maxhp 31000 sp 1000 maxsp 1000 exp 1000000 dam 30 wc -80 ac -25 resist_physical 100 resist_fire 100 resist_electricity 50 resist_cold 100 resist_confusion 30 resist_acid 30 resist_drain 100 resist_weaponmagic 95 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind 100 resist_godpower 100 resist_holyword 30 speed 0.500000 level 120 attacktype 1049089 carrying 100 weight 180000 run_away 3 pick_up 24 will_apply 15 alive 1 no_pick 1 is_animated 1 monster 1 move_type walk undead 1 see_invisible 1 unaggressive 1 can_cast_spell 1 can_use_bow 1 can_see_in_dark 1 sleep 1 can_use_skill 1 can_use_range 1 body_finger 2 body_skill 1 body_arm 2 body_range 1 end Object evil_master4 editor_folder monster/demon name Evil Master race demon face evil_master4.111 animation evil_master4 Str 30 Con 80 Wis 25 Pow 25 Int 25 hp 20000 maxhp 20000 sp 250 maxsp 250 exp 200000 dam 100 wc -50 ac -27 resist_physical 100 resist_magic 20 speed 0.500000 attack_movement 5 level 100 attacktype 1 resist_fire -100 weight 200000 run_away 15 will_apply 15 alive 1 no_pick 1 is_animated 1 monster 1 move_type walk unaggressive 1 end Object fiend editor_folder monster/demon name Fiend race demon randomitems fiend face fiend.111 animation fiend monster 1 move_type walk Wis 15 see_invisible 1 no_pick 1 alive 1 exp 15000 ac 3 resist_physical 30 wc 6 dam 22 Pow 8 Int 15 sp 40 maxsp 40 hp 265 maxhp 265 Con 5 level 15 resist_magic 50 resist_fire 100 resist_cold -50 resist_blind 50 speed 0.2 weight 180000 run_away 15 will_apply 14 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object hellhound editor_folder monster/demon name hellhound face hellhound.131 randomitems hellhound race demon animation hellhound monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 800 maxhp 800 Con 6 speed -0.2 exp 5000 ac -4 dam 9 wc -20 level 20 attacktype 1029 can_cast_spell 1 sp 25 maxsp 40 Pow 5 can_see_in_dark 1 resist_physical 30 resist_fire 100 resist_cold -10 resist_magic 20 weight 40000 run_away 5 attack_movement 5 end Object gr_hellhound editor_folder monster/demon name greater hellhound randomitems gr_hellhound race demon face hellhound.131 animation gr_hellhound Con 40 Pow 60 can_cast_spell 1 can_see_in_dark 1 can_use_skill 1 sp 150 maxsp 150 hp 6000 maxhp 6000 exp 300000 ac -5 dam 70 wc -30 weight 130000 attacktype 1029 attack_movement 5 resist_physical 90 resist_fire 100 resist_confusion 100 resist_fear 100 resist_paralyze 100 resist_poison 100 resist_magic 80 resist_blind 100 resist_godpower 60 resist_holyword 60 level 40 speed -0.2 alive 1 monster 1 move_type walk sleep 1 Wis 20 see_invisible 1 run_away 2 end Object imp editor_folder monster/demon name imp randomitems imp face imp.171 animation imp race demon monster 1 move_type walk fly_low can_see_in_dark 1 can_cast_spell 1 see_invisible 1 Wis 3 no_pick 1 alive 1 exp 10 ac 4 resist_physical 20 wc 18 dam 2 Int 0 sp 0 maxsp 5 hp 10 maxhp 10 Con 1 Str 24 Pow 1 level 1 resist_magic 30 resist_fire 100 speed 0.25 weight 200000 run_away 15 attacktype 5 attack_movement 5 end Object medium_demon editor_folder monster/demon/medium_demon name demon race demon randomitems devil face mdemon.x11 animation mdemon resist_magic 50 resist_godpower 50 resist_holyword 50 resist_fire 100 resist_confusion 100 resist_poison 100 resist_blind 75 attacktype 5 can_see_in_dark 1 see_invisible 1 exp 10000 ac -1 wc -3 dam 30 Str 40 Pow 10 Dex 15 Con 10 sp 30 maxsp 50 hp 2000 maxhp 2000 level 20 speed 0.3 weight 300000 monster 1 move_type walk Wis 13 alive 1 will_apply 12 run_away 3 attack_movement 5 can_use_weapon 1 can_use_skill 1 can_cast_spell 1 body_skill 1 body_arm 2 end More Object medium_demon_2 editor_folder monster/demon/medium_demon name demon face mdemon.x11 animation mdemon monster 1 move_type walk alive 1 x 1 weight 300000 end More Object medium_demon_3 editor_folder monster/demon/medium_demon name demon face mdemon.x11 animation mdemon monster 1 move_type walk alive 1 y 1 weight 300000 end More Object medium_demon_4 editor_folder monster/demon/medium_demon name demon face mdemon.x11 animation mdemon monster 1 move_type walk alive 1 y 1 x 1 weight 300000 end Object raas editor_folder monster/demon name raas randomitems raas msg @match * Rrrgghhg kill you endmsg face raas.131 animation raas race demon monster 1 move_type walk Wis 10 no_pick 1 alive 1 exp 4000 ac 4 resist_physical 20 wc 10 dam 25 Int 0 maxsp 5 hp 100 Con 14 Str 24 maxhp 165 level 9 resist_fire -100 resist_blind 30 speed 0.20 weight 200000 run_away 15 attacktype 1 attack_movement 5 end Object big_chaos_dragon editor_folder monster/dragon/Chaos_Dra name dragon of chaos race dragon randomitems chaosdragon monster 1 move_type walk sleep 1 Wis 30 face chaos_dragon.x71 animation chaos_dragon level 68 Con 68 Pow 86 can_cast_spell 1 sp 1800 maxsp 1800 hp 32000 maxhp 32000 resist_physical 100 resist_fire 100 resist_electricity 50 resist_cold 100 resist_paralyze 100 resist_blind 100 attacktype 29 ac -6 wc -20 dam 30 exp 450000 see_invisible 1 alive 1 no_pick 1 speed -0.4 weight 400000 run_away 3 end More Object big_chaos_dragon.2 editor_folder monster/dragon/Chaos_Dra name dragon of chaos face chaos_dragon.x71 animation chaos_dragon monster 1 move_type walk alive 1 x 1 weight 4000000 end More Object big_chaos_dragon.3 editor_folder monster/dragon/Chaos_Dra name dragon of chaos face chaos_dragon.x71 animation chaos_dragon monster 1 move_type walk alive 1 x 2 weight 4000000 end More Object big_chaos_dragon.4 editor_folder monster/dragon/Chaos_Dra name dragon of chaos face chaos_dragon.x71 animation chaos_dragon monster 1 move_type walk alive 1 y 1 weight 4000000 end More Object big_chaos_dragon.5 editor_folder monster/dragon/Chaos_Dra name dragon of chaos face chaos_dragon.x71 animation chaos_dragon monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object big_chaos_dragon.6 editor_folder monster/dragon/Chaos_Dra name dragon of chaos face chaos_dragon.x71 animation chaos_dragon monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end Object ancient_chinese_dragon editor_folder monster/dragon/Chinese_Dra name Ancient dragon hp 4000 maxhp 4000 maxsp 60 exp 100000 dam 30 ac -6 speed -0.300000 level 20 randomitems chinese race dragon face chinese_dr.x71 animation chinese_dragon monster 1 move_type walk sleep 1 Wis 20 Con 4 Pow 32 can_cast_spell 1 resist_cold 100 resist_fear 100 resist_blind 100 resist_fire -100 resist_magic 30 wc -15 see_invisible 1 alive 1 no_pick 1 weight 200000 run_away 4 end More Object ancient_chinese_dragon_2 editor_folder monster/dragon/Chinese_Dra name Ancient dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 end More Object ancient_chinese_dragon_3 editor_folder monster/dragon/Chinese_Dra name Ancient dragon face chinese_dr.x71 animation chinese_dragon alive 1 y 1 end More Object ancient_chinese_dragon_4 editor_folder monster/dragon/Chinese_Dra name Ancient dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 y 1 end Object chinese_dragon editor_folder monster/dragon/Chinese_Dra name chinese dragon randomitems chinese race dragon face chinese_dr.x71 animation chinese_dragon monster 1 move_type walk sleep 1 Wis 20 level 25 Con 4 Pow 32 can_cast_spell 1 maxsp 40 hp 1000 maxhp 1000 resist_cold 100 resist_fear 100 resist_blind 100 resist_fire -100 resist_magic 30 ac -4 wc -15 dam 15 exp 40000 see_invisible 1 alive 1 no_pick 1 speed -0.2 weight 200000 run_away 4 end More Object chinese_dragon_2 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 end More Object chinese_dragon_3 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 y 1 end More Object chinese_dragon_4 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 y 1 end Object eternal_chinese_dragon editor_folder monster/dragon/Chinese_Dra name_pl Eternal dragons name Eternal dragon Wis 29 hp 32000 maxhp 32000 maxsp 400 exp 900000 dam 100 ac -6 speed -0.300000 level 110 resist_magic 100 randomitems eternal_chinese_dragon race dragon face chinese_dr.x71 animation chinese_dragon monster 1 move_type walk sleep 1 Con 4 Pow 32 can_cast_spell 1 resist_cold 100 resist_fear 100 resist_blind 100 resist_fire -100 wc -15 see_invisible 1 alive 1 no_pick 1 weight 200000 run_away 4 end More Object eternal_chinese_dragon_2 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 end More Object eternal_chinese_dragon_3 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 y 1 end More Object eternal_chinese_dragon_4 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 y 1 end Object legendary_chinese_dragon editor_folder monster/dragon/Chinese_Dra name_pl Legendary dragons name Legendary dragon Wis 24 hp 12000 maxhp 12000 maxsp 300 exp 300000 dam 70 ac -6 speed -0.300000 level 90 resist_magic 60 carrying 75000 randomitems legendary_chinese_dragon race dragon face chinese_dr.x71 animation chinese_dragon monster 1 move_type walk sleep 1 Con 4 Pow 32 can_cast_spell 1 resist_cold 100 resist_fear 100 resist_blind 100 resist_fire -100 wc -15 see_invisible 1 alive 1 no_pick 1 weight 200000 run_away 4 end More Object legendary_chinese_dragon_2 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 end More Object legendary_chinese_dragon_3 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 y 1 end More Object legendary_chinese_dragon_4 editor_folder monster/dragon/Chinese_Dra name chinese dragon face chinese_dr.x71 animation chinese_dragon alive 1 x 1 y 1 end Object Cwyvern editor_folder monster/dragon name wyvern of chaos randomitems Cwyvern race dragon monster 1 move_type walk sleep 1 Wis 30 Con 48 Pow 76 face Cwyvern.x71 animation Cwyvern level 30 can_cast_spell 1 maxsp 300 hp 3000 maxhp 3000 resist_physical 100 resist_fire 100 resist_cold 100 resist_paralyze 100 resist_blind 100 resist_electricity 50 attacktype 29 ac -5 wc -20 dam 30 exp 200000 see_invisible 1 alive 1 no_pick 1 speed -0.400000 weight 150000 run_away 6 end More Object Cwyvern_2 editor_folder monster/dragon name wyvern of chaos face Cwyvern.x71 animation Cwyvern monster 1 move_type walk x 1 alive 1 no_pick 1 weight 800000 end Object big_dragon editor_folder monster/dragon/Dragon name dragon race dragon randomitems dragon monster 1 move_type walk sleep 1 Wis 20 face dragon.x71 animation big_dragon level 29 Con 11 Pow 26 can_cast_spell 1 sp 60 maxsp 60 hp 3500 maxhp 3500 resist_fire 100 resist_fear 100 resist_magic 50 resist_blind 100 resist_cold -100 resist_confusion -100 ac -6 wc -20 dam 25 exp 90000 see_invisible 1 alive 1 no_pick 1 speed -0.4 weight 400000 run_away 3 end More Object big_dragon_2 editor_folder monster/dragon/Dragon name dragon face dragon.x71 animation big_dragon monster 1 move_type walk alive 1 x 1 weight 4000000 end More Object big_dragon_3 editor_folder monster/dragon/Dragon name dragon face dragon.x71 animation big_dragon monster 1 move_type walk alive 1 x 2 weight 4000000 end More Object big_dragon_4 editor_folder monster/dragon/Dragon name dragon face dragon.x71 animation big_dragon monster 1 move_type walk alive 1 y 1 weight 4000000 end More Object big_dragon_5 editor_folder monster/dragon/Dragon name dragon face dragon.x71 animation big_dragon monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object big_dragon_6 editor_folder monster/dragon/Dragon name dragon face dragon.x71 animation big_dragon monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end Object big_dragon_ancient editor_folder monster/dragon/Dragon name ancient red dragon race dragon randomitems dragon monster 1 move_type walk sleep 1 Wis 20 face dragon_ac.x71 animation big_dragon_ancient level 26 Con 11 Pow 26 Int 5 can_cast_spell 1 sp 60 maxsp 80 hp 7500 maxhp 7500 resist_physical 40 resist_fire 100 resist_acid 30 resist_fear 100 resist_magic 50 resist_blind 100 resist_cold -50 resist_confusion -100 resist_paralyze 80 ac -8 wc -25 dam 40 attacktype 5 exp 200000 see_invisible 1 alive 1 no_pick 1 speed -0.5 weight 400000 run_away 3 end More Object big_dragon_ancient2 editor_folder monster/dragon/Dragon name dragon face dragon_ac.x71 animation big_dragon_ancient monster 1 move_type walk alive 1 x 1 weight 4000000 end More Object big_dragon_ancient3 editor_folder monster/dragon/Dragon name dragon face dragon_ac.x71 animation big_dragon_ancient monster 1 move_type walk alive 1 x 2 weight 4000000 end More Object big_dragon_ancient4 editor_folder monster/dragon/Dragon name dragon face dragon_ac.x71 animation big_dragon_ancient monster 1 move_type walk alive 1 y 1 weight 4000000 end More Object big_dragon_ancient5 editor_folder monster/dragon/Dragon name dragon face dragon_ac.x71 animation big_dragon_ancient monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object big_dragon_ancient6 editor_folder monster/dragon/Dragon name dragon face dragon_ac.x71 animation big_dragon_ancient monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end Object dragonman editor_folder monster/dragon/Dragonman name dragonman race dragon randomitems dragon monster 1 move_type walk sleep 1 Wis 20 face dragonman.x31 animation dragonman level 39 Con 11 Pow 13 can_cast_spell 1 sp 80 maxsp 80 hp 3500 maxhp 3500 resist_fire 100 resist_electricity 100 resist_acid 100 resist_drain 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_fear 100 resist_physical 30 resist_cold -30 resist_confusion 30 resist_blind 100 ac -5 wc -10 dam 10 exp 160000 see_invisible 1 alive 1 no_pick 1 speed -0.4 weight 150000 run_away 3 end More Object dragonman_2 editor_folder monster/dragon/Dragonman name dragon man face dragonman.x31 animation dragonman monster 1 move_type walk alive 1 y 1 weight 4000000 end Object big_elec editor_folder monster/dragon/Electric name electric dragon race dragon randomitems big_elec monster 1 move_type walk sleep 1 Wis 20 face elec_dr.x11 animation big_elec level 27 Con 11 Pow 32 can_cast_spell 1 sp 70 maxsp 100 hp 3500 maxhp 3500 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_fear 100 resist_blind 100 resist_fire -100 ac -6 wc -20 dam 25 exp 70000 see_invisible 1 alive 1 no_pick 1 speed -0.4 weight 200000 run_away 3 end More Object big_elec_2 editor_folder monster/dragon/Electric name electric dragon face elec_dr.x11 animation big_elec monster 1 move_type walk alive 1 x 1 weight 4000000 end More Object big_elec_3 editor_folder monster/dragon/Electric name electric dragon face elec_dr.x11 animation big_elec monster 1 move_type walk alive 1 y 1 weight 4000000 end More Object big_elec_4 editor_folder monster/dragon/Electric name electric dragon face elec_dr.x11 animation big_elec monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object big_elec_5 editor_folder monster/dragon/Electric name electric dragon face elec_dr.x11 animation big_elec monster 1 move_type walk alive 1 y 2 weight 4000000 end More Object big_elec_6 editor_folder monster/dragon/Electric name electric dragon face elec_dr.x11 animation big_elec monster 1 move_type walk alive 1 x 1 y 2 weight 4000000 end Object cold_dragon editor_folder monster/dragon/Hatchlings race dragon name cold dragon hatchling randomitems cold_dragon face cold_drag.171 animation cold_dragon level 7 monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 1000 ac 5 wc 7 dam 15 Con 3 Pow 2 can_cast_spell 1 sp 40 maxsp 40 hp 80 maxhp 80 resist_cold 100 resist_blind 50 resist_magic 30 speed -0.07 weight 70000 run_away 20 attack_movement 1 end Object elec_dragon editor_folder monster/dragon/Hatchlings race dragon name electric dragon hatchling randomitems spark face elec_drag.171 animation elec_dragon level 8 monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 1800 ac 5 wc 10 dam 15 Con 3 Pow 2 can_cast_spell 1 sp 40 maxsp 40 hp 90 maxhp 90 resist_electricity 100 resist_blind 50 resist_magic 30 speed -0.15 weight 70000 run_away 20 attack_movement 1 end Object fire_dragon editor_folder monster/dragon/Hatchlings race dragon name dragon hatchling randomitems wyvern face fire_drag.171 animation fire_dragon level 8 monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 2000 ac 5 wc 10 dam 15 Con 3 Pow 3 can_cast_spell 1 sp 40 maxsp 40 hp 100 maxhp 100 resist_fire 100 resist_blind 50 resist_magic 30 speed -0.15 weight 70000 run_away 20 attack_movement 1 end Object shadow_dragon editor_folder monster/dragon/Shadow_Dra name shadow dragon race dragon randomitems shadow_dragon monster 1 move_type walk sleep 1 Wis 20 face shadow_dragon.x31 animation shadow_dragon level 35 Con 11 Pow 26 can_cast_spell 1 sp 800 maxsp 800 hp 5500 maxhp 5500 resist_fire 100 resist_fear 100 resist_magic 60 resist_blind 100 resist_cold -20 resist_confusion -50 ac -7 wc -22 dam 30 exp 150000 see_invisible 1 alive 1 no_pick 1 speed -0.4 weight 400000 run_away 3 end More Object shadow_dragon_2 editor_folder monster/dragon/Shadow_Dra name shadow dragon face shadow_dragon.x31 animation shadow_dragon monster 1 move_type walk alive 1 x 1 weight 4000000 end More Object shadow_dragon_3 editor_folder monster/dragon/Shadow_Dra name shadow dragon face shadow_dragon.x31 animation shadow_dragon monster 1 move_type walk alive 1 x 2 weight 4000000 end More Object shadow_dragon_4 editor_folder monster/dragon/Shadow_Dra name shadow dragon face shadow_dragon.x31 animation shadow_dragon monster 1 move_type walk alive 1 y 1 weight 4000000 end More Object shadow_dragon_5 editor_folder monster/dragon/Shadow_Dra name shadow dragon face shadow_dragon.x31 animation shadow_dragon monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object shadow_dragon_6 editor_folder monster/dragon/Shadow_Dra name shadow dragon face shadow_dragon.x31 animation shadow_dragon monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end Object big_dragon_worthless editor_folder monster/dragon/WDragon name worthless dragon race dragon randomitems dragon monster 1 move_type walk sleep 1 Wis 20 face worthless_dragon.x71 animation worthless_dragon level 29 Con 11 Pow 26 can_cast_spell 1 sp 60 maxsp 60 hp 3500 maxhp 3500 resist_fire 100 resist_fear 100 resist_magic 30 resist_cold -100 resist_confusion -100 ac -6 wc -20 dam 25 exp 1 see_invisible 1 alive 1 no_pick 1 speed -0.4 weight 400000 run_away 3 end More Object big_worthless_dragon_2 editor_folder monster/dragon/WDragon name worthless_dragon face worthless_dragon.x71 animation worthless_dragon monster 1 move_type walk alive 1 x 1 weight 4000000 end More Object big_worthless_dragon_3 editor_folder monster/dragon/WDragon name worthless_dragon face worthless_dragon.x71 animation worthless_dragon monster 1 move_type walk alive 1 x 2 weight 4000000 end More Object big_worthless_dragon_4 editor_folder monster/dragon/WDragon name worthless_dragon face worthless_dragon.x71 animation worthless_dragon monster 1 move_type walk alive 1 y 1 weight 4000000 end More Object big_worthless_dragon_5 editor_folder monster/dragon/WDragon name worthless_dragon face worthless_dragon.x71 animation worthless_dragon monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object big_worthless_dragon_6 editor_folder monster/dragon/WDragon name worthless_dragon face worthless_dragon.x71 animation worthless_dragon monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end Object baby_dragon editor_folder monster/dragon name baby dragon race dragon randomitems dragon monster 1 move_type walk sleep 1 Wis 20 face baby_drag.111 animation baby_dragon level 25 Con 8 Pow 8 can_cast_spell 1 maxsp 40 hp 550 maxhp 550 resist_fire 100 resist_fear 100 resist_blind 50 resist_magic 30 resist_cold -100 ac -4 wc -10 dam 10 exp 55000 see_invisible 1 alive 1 no_pick 1 speed -0.3 weight 225000 run_away 3 end Object bone_drake editor_folder monster/dragon/bone_drake name bone drake randomitems chinese race dragon face bone_drake.x11 animation bone_drake monster 1 move_type walk sleep 1 level 50 Con 6 maxsp 40 hp 8000 maxhp 8000 resist_cold 70 resist_fear 100 resist_fire 70 resist_electricity 70 resist_blind 100 ac -10 wc -60 dam 40 exp 100000 alive 1 no_pick 1 speed -0.2 weight 200000 run_away 4 end More Object bone_drake_2 editor_folder monster/dragon/bone_drake name bone drake face bone_drake.x11 animation bone_drake alive 1 x 1 end More Object bone_drake_3 editor_folder monster/dragon/bone_drake name bone drake face bone_drake.x11 animation bone_drake alive 1 y 1 end More Object bone_drake_4 editor_folder monster/dragon/bone_drake name bone drake face bone_drake.x11 animation bone_drake alive 1 x 1 y 1 end Object generate_dragon editor_folder monster/dragon race dragon other_arch dragon name dragon cave generator 1 face dragoncave.111 speed 0.0008 level 10 hp 300 maxhp 300 ac 3 exp 1000 resist_fire 100 no_pick 1 alive 1 maxsp 1 weight 1000000 generator_limit 5 end Object drake editor_folder monster/dragon/drake race dragon name drake randomitems drake face drake.111 animation drake level 10 monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 6000 ac 5 wc 14 dam 20 Str 15 Con 5 can_cast_spell 0 hp 200 maxhp 200 resist_magic 85 resist_blind 30 attacktype 1025 speed 0.42 weight 70000 end Object faerie_dragon editor_folder monster/dragon race faerie name faerie dragon randomitems wyvern face fae_drag.171 animation faerie_dragon level 8 monster 1 move_type walk fly_low sleep 1 unaggressive 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 1000 ac 5 wc 7 dam 10 Con 1 Pow 6 can_cast_spell 1 sp 20 maxsp 40 hp 40 maxhp 40 resist_magic 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind 60 speed -0.07 weight 70000 run_away 20 attack_movement 1 end Object dragon editor_folder monster/dragon name wyvern randomitems wyvern race dragon monster 1 move_type walk sleep 1 Wis 20 face wyvern.x71 animation wyvern level 10 Con 2 Pow 2 can_cast_spell 1 maxsp 10 hp 200 maxhp 200 resist_fire 100 resist_fear 100 resist_blind 50 resist_cold -100 resist_confusion -100 attacktype 1 ac 5 wc 8 dam 25 exp 5000 see_invisible 1 alive 1 no_pick 1 speed -0.15 weight 150000 run_away 6 end More Object dragon_2 editor_folder monster/dragon name wyvern face wyvern.x71 animation wyvern monster 1 move_type walk x 1 alive 1 no_pick 1 weight 150000 end Object para_air editor_folder monster/elemental/Para race air_elemental name air para-elemental randomitems para_elemental face para_air.111 animation para_air monster 1 move_type walk fly_low alive 1 resist_electricity 100 attacktype 8 ac 6 wc 10 dam 10 hp 50 maxhp 50 speed -0.5 exp 1100 weight 200 level 7 end Object para_earth editor_folder monster/elemental/Para race earth_elemental name earth para-elemental face para_earth.111 randomitems para_elemental animation para_earth monster 1 move_type walk alive 1 ac 5 wc 9 dam 20 hp 100 maxhp 100 speed -0.15 exp 1500 weight 100000 level 7 resist_cold 100 attacktype 16 end Object para_fire editor_folder monster/elemental/Para race fire_elemental name fire para-elemental face para_fire.111 randomitems para_elemental animation para_fire monster 1 move_type walk fly_low alive 1 resist_fire 100 attacktype 4 resist_confusion -100 ac 5 wc 16 dam 20 hp 75 maxhp 75 level 7 speed -0.35 exp 1200 weight 200 end Object para_ice editor_folder monster/elemental/Para race water_elemental name ice para-elemental face para_ice.111 randomitems para_elemental animation para_ice monster 1 move_type walk alive 1 ac 8 wc 9 dam 30 hp 60 maxhp 60 speed -0.2 exp 1100 weight 50000 level 7 resist_cold 100 resist_confusion 100 attacktype 16 resist_fire -100 end Object para_lava editor_folder monster/elemental/Para race fire_elemental name lava para-elemental face para_lava.111 randomitems para_elemental animation para_lava monster 1 move_type walk fly_low alive 1 resist_fire 100 attacktype 4 resist_cold -100 ac 5 wc 16 dam 20 hp 75 maxhp 75 level 7 speed -0.35 exp 1200 weight 50000 end Object para_lightning editor_folder monster/elemental/Para race air_elemental name lightning para-elemental face para_light.111 randomitems para_elemental animation para_lightning monster 1 move_type walk fly_low alive 1 ac 5 wc 9 dam 10 hp 60 maxhp 60 speed -0.4 exp 1100 weight 200 level 7 resist_fire 100 resist_electricity 100 attacktype 8 end Object para_mud editor_folder monster/elemental/Para race earth_elemental name mud para-elemental face para_mud.111 randomitems para_elemental animation para_mud monster 1 move_type walk alive 1 ac 7 wc 9 dam 30 hp 75 maxhp 75 speed -0.15 exp 1200 weight 100000 level 7 resist_cold 100 attacktype 1 resist_fire -100 end Object para_water editor_folder monster/elemental/Para race water_elemental name water para-elemental face para_water.111 randomitems para_elemental animation para_water monster 1 move_type walk alive 1 ac 6 wc 10 dam 30 hp 60 maxhp 60 speed -0.2 exp 1400 weight 50000 level 7 resist_confusion 100 attacktype 1 resist_cold -100 end Object s_mastif editor_folder monster/elemental/Shadow name shadow mastif face s_mastif.131 race shadow animation s_mastif monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 600 maxhp 600 Con 20 speed -0.4 exp 20000 ac -10 dam 13 wc -15 level 25 can_see_in_dark 1 resist_physical 50 resist_magic 25 resist_fire 50 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_poison 100 resist_fear 100 resist_deplete 100 resist_blind 100 attacktype 32912 weight 1000 run_away 5 attack_movement 3 end Object s_wyvern editor_folder monster/elemental/Shadow name shadow wyvern face s_wyvern.x71 animation s_wyvern race shadow randomitems s_wyvern monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 1500 maxhp 1500 Con 25 speed -0.3 exp 50000 ac -12 dam 33 wc -17 level 40 can_see_in_dark 1 resist_physical 50 resist_magic 25 resist_fire 50 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_poison 100 resist_fear 100 resist_deplete 100 resist_blind 100 attacktype 32912 can_cast_spell 1 can_use_skill 1 sp 30 maxsp 50 Pow 5 weight 1000 run_away 5 attack_movement 3 end More Object s_wyvern_2 editor_folder monster/elemental/Shadow name shadow wyvern face s_wyvern.x71 animation s_wyvern monster 1 move_type walk x 1 alive 1 no_pick 1 weight 1000 end Object shadow editor_folder monster/elemental/Shadow name shadow face shadow.111 race shadow randomitems shadow animation shadow monster 1 move_type walk sleep 1 Wis 20 alive 1 hp 900 maxhp 900 Con 20 speed -0.4 exp 30000 ac -10 dam 13 wc -15 level 30 can_see_in_dark 1 resist_physical 50 resist_magic 25 resist_fire 50 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_poison 100 resist_fear 100 resist_deplete 100 resist_blind 100 attacktype 32912 weight 1000 can_cast_spell 1 can_use_skill 1 sp 20 maxsp 30 Pow 5 run_away 5 attack_movement 3 end Object air_elemental editor_folder monster/elemental race air_elemental name air elemental face elem_air.111 animation air_elemental monster 1 move_type walk fly_low alive 1 resist_electricity 100 resist_blind 100 attacktype 8 resist_physical -100 ac 4 wc 10 dam 10 hp 140 maxhp 140 speed -0.3 exp 3500 weight 200 level 9 end Object elem_dust editor_folder monster/elemental animation elem_dust name dust devil race air_elemental face elem_dust.111 monster 1 move_type walk fly_low alive 1 resist_electricity 100 resist_blind 100 attacktype 8 resist_physical -100 ac 4 wc 10 dam 10 hp 500 maxhp 500 speed -0.3 exp 4500 weight 200 level 11 end Object earth_elemental editor_folder monster/elemental name earth elemental race earth_elemental face elem_earth.111 animation earth_elemental monster 1 move_type walk alive 1 ac 6 wc 10 dam 50 hp 280 maxhp 280 speed -0.08 exp 4000 weight 100000 level 9 resist_physical 70 resist_cold 50 resist_blind 100 attacktype 1 resist_fire -60 end Object greater_earth_elemental editor_folder monster/elemental name greater earth elemental hp 500 maxhp 500 exp 6000 race earth_elemental face elem_earth.111 animation earth_elemental monster 1 move_type walk alive 1 ac 6 wc 10 dam 50 speed -0.08 weight 100000 level 10 resist_physical 70 resist_cold 50 resist_blind 100 attacktype 1 resist_fire -60 end Object fire_elemental editor_folder monster/elemental name fire elemental race fire_elemental face elem_fire.111 animation fire_elemental monster 1 move_type walk fly_low alive 1 resist_fire 100 attacktype 4 resist_confusion -100 resist_blind 100 glow_radius 1 ac 4 wc 13 dam 20 hp 175 maxhp 175 level 9 speed -0.25 exp 3000 weight 200 end Object elem_fire_black editor_folder monster/elemental animation elem_fire_black name black fire hp 1000 maxhp 1000 exp 5000 race fire_elemental face elem_fire_black.111 monster 1 move_type walk fly_low alive 1 resist_fire 100 attacktype 4 resist_confusion -100 resist_blind 100 glow_radius 1 ac 4 wc 13 dam 20 level 10 speed -0.25 weight 200 end Object water_elemental editor_folder monster/elemental name water elemental race water_elemental face elem_water.111 animation water_elemental monster 1 move_type walk alive 1 ac 4 wc 8 dam 40 hp 140 maxhp 140 speed -0.1 exp 3000 weight 50000 level 9 resist_confusion 100 resist_blind 100 attacktype 17 resist_cold 50 resist_fire -50 end Object fireborn editor_folder monster/elemental name fireborn race fireborn randomitems fireborn face fireborn.111 animation fireborn is_animated 1 hp 50 maxhp 50 level 1 ac 0 wc 21 dam 0 can_use_shield 0 can_use_armour 0 can_use_weapon 0 alive 1 weight 30000 food 999 speed 1 attacktype 5 Str 3 Dex 14 Con 6 Cha 6 Int 13 Pow 16 resist_fire 100 resist_poison 100 resist_cold -100 resist_drain -100 resist_ghosthit -100 body_range 1 body_neck 1 body_skill 1 body_finger 2 end Object ice_warrior editor_folder monster/elemental name ice warrior race elemental face ice_warrior.x11 randomitems ice_warrior monster 1 move_type walk level 35 hp 6000 maxhp 6000 ac -2 wc -34 dam 65 speed 0.4 attacktype 2065 can_see_in_dark 1 will_apply 4 Con 10 Pow 32 maxsp 40 sp 40 Wis 12 exp 180000 see_invisible 1 no_pick 1 alive 1 resist_magic 80 resist_blind 100 resist_fire -20 resist_cold 100 resist_paralyze 90 resist_fear 100 weight 75000 run_away 18 pick_up 24 can_use_skill 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object ice_warrior_2 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 x 1 weight 75000 end More Object ice_warrior_3 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 y 1 weight 75000 end More Object ice_warrior_4 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 y 1 x 1 weight 75000 end More Object ice_warrior_5 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 y 2 x 0 weight 75000 end More Object ice_warrior_6 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 y 2 x 1 weight 75000 end More Object ice_warrior_7 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 y 3 x 0 weight 75000 end More Object ice_warrior_8 editor_folder monster/elemental name ice warrior face ice_warrior.x11 monster 1 move_type walk alive 1 no_pick 1 y 3 x 1 weight 75000 end Object golem_red editor_folder monster/elemental animation golem_red hp 750 maxhp 750 exp 6000 name lava man type 46 face golem_red.111 monster 1 alive 1 ac 5 wc 12 dam 8 attacktype 1 level 8 speed 0.1 weight 200000 end Object tsunami editor_folder monster/elemental name tsunami hp 400 maxhp 400 exp 5000 race water_elemental face elem_water.111 animation water_elemental monster 1 move_type walk alive 1 ac 4 wc 8 dam 40 speed -0.1 weight 50000 level 11 resist_confusion 100 resist_blind 100 attacktype 17 resist_cold 50 resist_fire -50 end Object air_witch editor_folder monster/elemental name air witch race air_elemental face witch_air.111 randomitems witch_air animation air_witch monster 1 move_type walk fly_low alive 1 resist_magic 25 resist_poison 100 resist_physical 100 resist_electricity 50 resist_cold -75 attacktype 9 attack_movement 1 ac 1 wc 10 dam 15 hp 200 maxhp 200 level 15 speed -0.6 exp 15000 weight 50 can_cast_spell 1 can_use_skill 1 sp 50 maxsp 70 Pow 5 Wis 10 Con 2 end Object earth_witch editor_folder monster/elemental name earth witch race earth_elemental face witch_earth.111 randomitems witch_earth animation earth_witch monster 1 move_type walk alive 1 resist_magic 25 resist_poison 100 resist_physical 50 resist_cold 50 resist_fire -20 attacktype 1 attack_movement 3 ac 2 wc 10 dam 40 hp 350 maxhp 350 level 15 speed -0.17 exp 15000 weight 5200 can_cast_spell 1 can_use_skill 1 sp 30 maxsp 50 Pow 5 Wis 10 Con 2 end Object fire_witch editor_folder monster/elemental name fire witch race fire_elemental face witch_fire.111 randomitems witch_fire animation fire_witch monster 1 move_type walk fly_low alive 1 resist_magic 25 resist_poison 100 resist_physical 100 resist_fire 100 attacktype 4 attack_movement 4 resist_cold -100 glow_radius 2 ac 4 wc 12 dam 25 hp 300 maxhp 300 level 14 speed -0.4 exp 14000 weight 20 can_cast_spell 1 can_use_skill 1 sp 50 maxsp 70 Pow 5 Wis 10 Con 2 end Object water_witch editor_folder monster/elemental name water witch race water_elemental face witch_water.111 randomitems witch_water animation water_witch monster 1 move_type walk alive 1 resist_magic 25 resist_poison 100 resist_physical 90 resist_cold 100 resist_fire -100 attacktype 17 attack_movement 3 ac 3 wc 8 dam 30 hp 250 maxhp 250 level 14 speed -0.2 exp 12000 weight 1200 can_cast_spell 1 can_use_skill 1 sp 40 maxsp 60 Pow 5 Wis 10 Con 2 end Object belzebub editor_folder monster/giant/Belzebub race demon name Belzebub randomitems belzebub monster 1 move_type walk sleep 1 Wis 25 face belzebub.x11 animation belzebub resist_magic 100 resist_electricity 30 resist_poison 30 resist_blind 100 exp 300000 ac -7 wc -20 dam 40 resist_physical 35 Str 80 Dex 30 Int 25 Pow 40 sp 200 maxsp 200 hp 5000 maxhp 5000 Con 50 level 30 alive 1 no_pick 1 speed -0.5 weight 1000000 run_away 1 see_invisible 1 will_apply 12 unaggressive 1 pick_up 1 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object belzebub_2 editor_folder monster/giant/Belzebub name Belzebub face belzebub.x11 animation belzebub no_pick 1 alive 1 weight 100000 x 1 end More Object belzebub_3 editor_folder monster/giant/Belzebub name Belzebub face belzebub.x11 animation belzebub no_pick 1 alive 1 weight 100000 y 1 end More Object belzebub_4 editor_folder monster/giant/Belzebub name Belzebub face belzebub.x11 animation belzebub no_pick 1 alive 1 weight 100000 y 1 x 1 end More Object belzebub_5 editor_folder monster/giant/Belzebub name Belzebub face belzebub.x11 animation belzebub no_pick 1 alive 1 weight 100000 y 2 end More Object belzebub_6 editor_folder monster/giant/Belzebub name Belzebub face belzebub.x11 animation belzebub no_pick 1 alive 1 weight 100000 y 2 x 1 end Object big_wiz editor_folder monster/giant/Big_Wiz race giant name wizard randomitems big_wizard monster 1 move_type walk sleep 1 Wis 15 face big_wiz.x11 animation big_wiz level 49 attacktype 128 Con 28 Pow 48 sp 100 maxsp 100 hp 3500 maxhp 3500 resist_holyword 60 resist_godpower 60 resist_magic 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind 75 ac -7 wc -20 dam 19 exp 100000 see_invisible 1 alive 1 no_pick 1 speed 1.0 weight 400000 run_away 3 pick_up 1 can_use_scroll 1 can_use_range 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 will_apply 12 attack_movement 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object big_wiz2 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 x 1 y 0 weight 4000000 end More Object big_wiz3 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 x 2 y 0 weight 4000000 end More Object big_wiz4 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 y 1 x 0 weight 4000000 end More Object big_wiz5 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object big_wiz6 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end More Object big_wiz7 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 y 2 x 0 weight 4000000 end More Object big_wiz8 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 x 1 y 2 weight 4000000 end More Object big_wiz9 editor_folder monster/giant/Big_Wiz name wizard face big_wiz.x11 animation big_wiz monster 1 move_type walk alive 1 x 2 y 2 weight 4000000 end Object bigblue_wiz editor_folder monster/giant/Big_Wiz race giant name sorcerer randomitems big_wizard monster 1 move_type walk sleep 1 Wis 16 face bigblue_wiz.x11 animation bigblue_wiz level 22 attacktype 128 Con 29 Pow 50 sp 140 maxsp 140 hp 4000 maxhp 4000 resist_holyword 70 resist_godpower 70 resist_magic 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind 80 ac -7 wc -20 dam 22 exp 120000 see_invisible 1 alive 1 no_pick 1 speed 1.1 weight 400000 run_away 3 can_use_scroll 1 can_use_range 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 attack_movement 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object bigblue_wiz2 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 x 1 y 0 weight 4000000 end More Object bigblue_wiz3 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 x 2 y 0 weight 4000000 end More Object bigblue_wiz4 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 y 1 x 0 weight 4000000 end More Object bigblue_wiz5 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 x 1 y 1 weight 4000000 end More Object bigblue_wiz6 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 x 2 y 1 weight 4000000 end More Object bigblue_wiz7 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 y 2 x 0 weight 4000000 end More Object bigblue_wiz8 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 x 1 y 2 weight 4000000 end More Object bigblue_wiz9 editor_folder monster/giant/Big_Wiz name sorcerer face bigblue_wiz.x11 animation bigblue_wiz monster 1 move_type walk alive 1 x 2 y 2 weight 4000000 end Object DK editor_folder monster/giant/DreadKnight race giant name Dread Knight randomitems DK face Bk.x11 animation DK exp 200000 hp 4500 speed 0.32 maxhp 4500 maxsp 200 sp 100 level 30 Str 45 Dex 20 Con 25 Pow 81 Int 20 Wis 30 monster 1 move_type walk sleep 1 alive 1 no_pick 1 run_away 1 see_invisible 1 pick_up 11 weight 300000 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 will_apply 12 resist_physical 50 resist_magic 100 resist_electricity 50 resist_cold 50 resist_confusion 100 resist_drain 100 resist_paralyze 100 resist_fear 100 ac -7 wc -35 dam 30 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object DK3 editor_folder monster/giant/DreadKnight name Dread Knight face Bk.x11 animation DK alive 1 no_pick 1 y 1 end More Object DK5 editor_folder monster/giant/DreadKnight name Dread Knight face Bk.x11 animation DK alive 1 no_pick 1 y 2 end More Object DK2 editor_folder monster/giant/DreadKnight name Dread Knight face Bk.x11 animation DK alive 1 no_pick 1 x 1 end More Object DK4 editor_folder monster/giant/DreadKnight name Dread Knight face Bk.x11 animation DK alive 1 no_pick 1 x 1 y 1 end More Object DK6 editor_folder monster/giant/DreadKnight name Dread Knight face Bk.x11 animation DK alive 1 no_pick 1 x 1 y 2 end Object EDK editor_folder monster/giant/DreadKnight race giant name Elite Dread Knight randomitems EDK face Bk.x11 animation EDK exp 500000 hp 6000 speed 0.40 maxhp 6000 maxsp 200 sp 100 level 50 Str 65 Dex 24 Con 38 Int 28 Pow 115 Wis 30 monster 1 move_type walk sleep 1 alive 1 no_pick 1 run_away 1 see_invisible 1 pick_up 11 weight 300000 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 will_apply 12 resist_physical 70 resist_magic 100 resist_fire 50 resist_cold 50 resist_electricity 90 resist_confusion 100 resist_drain 100 resist_paralyze 100 resist_fear 100 attacktype 5 ac -7 wc -35 dam 45 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object EDK3 editor_folder monster/giant/DreadKnight name Elite Dread Knight face Bk.x11 animation EDK alive 1 no_pick 1 y 1 end More Object EDK5 editor_folder monster/giant/DreadKnight name Elite Dread Knight face Bk.x11 animation EDK alive 1 no_pick 1 y 2 end More Object EDK2 editor_folder monster/giant/DreadKnight name Elite Dread Knight face Bk.x11 animation EDK alive 1 no_pick 1 x 1 end More Object EDK4 editor_folder monster/giant/DreadKnight name Elite Dread Knight face Bk.x11 animation EDK alive 1 no_pick 1 x 1 y 1 end More Object EDK6 editor_folder monster/giant/DreadKnight name Elite Dread Knight face Bk.x11 animation EDK alive 1 no_pick 1 x 1 y 2 end Object jessyb editor_folder monster/giant/JessyB race demon name Jessy randomitems big_wizard face jessyb.x11 animation jessyb attacktype 65023 resist_physical 95 resist_magic 80 resist_fire 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_blind 100 resist_electricity -100 resist_fear -100 monster 1 move_type walk sleep 1 Wis 20 Con 90 no_pick 1 see_invisible 1 alive 1 exp 2000000 ac -10 wc -30 dam 40 Str 90 Int 30 Dex 40 Pow 100 maxsp 200 hp 8000 maxhp 8000 level 30 speed 0.9 weight 500000 pick_up 24 will_apply 2 run_away 10 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 attack_movement 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object jessyb_2 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 weight 300000 end More Object jessyb_3 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 weight 300000 end More Object jessyb_4 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 weight 300000 end More Object jessyb_5 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end More Object jessyb_6 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 y 1 weight 300000 end More Object jessyb_7 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 y 1 weight 300000 end More Object jessyb_8 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 y 1 weight 300000 end More Object jessyb_9 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 y 2 weight 300000 end More Object jessyb_10 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 y 2 weight 300000 end More Object jessyb_11 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 y 2 weight 300000 end More Object jessyb_12 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 y 2 weight 300000 end More Object jessyb_13 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 y 3 weight 300000 end More Object jessyb_14 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 1 y 3 weight 300000 end More Object jessyb_15 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 2 y 3 weight 300000 end More Object jessyb_16 editor_folder monster/giant/JessyB name Jessy face jessyb.x11 animation jessyb monster 1 move_type walk alive 1 no_pick 1 x 3 y 3 weight 300000 end Object titan editor_folder monster/giant/Titan race giant randomitems titan monster 1 move_type walk sleep 1 Wis 20 face titan.x71 animation titan resist_electricity 100 resist_fear 100 resist_magic 50 exp 100000 ac -2 wc -20 dam 20 Str 60 Int 15 Dex 25 Pow 15 Con 6 maxsp 30 hp 4000 maxhp 4000 level 80 alive 1 no_pick 1 speed -0.33 weight 1500000 run_away 1 see_invisible 1 will_apply 2 pick_up 24 can_use_scroll 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end More Object titan_2 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 x -1 end More Object titan_3 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 x -1 y -1 end More Object titan_4 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 y -1 end More Object titan_5 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 x 1 y -1 end More Object titan_6 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 x 1 end More Object titan_7 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 x 1 y 1 end More Object titan_8 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 y 1 end More Object titan_9 editor_folder monster/giant/Titan name titan face titan.x71 animation titan no_pick 1 alive 1 x -1 y 1 invisible 1 end Object byakie editor_folder monster/giant/byakie randomitems byakie face byakie.x11 animation byakie race chaos monster 1 move_type walk sleep 1 Wis 21 level 25 Con 20 Str 100 sp 20 maxsp 20 Int 1 Pow 1 resist_physical 100 resist_magic 100 resist_poison 100 resist_fear 100 resist_chaos 100 resist_fire 50 resist_electricity 50 resist_cold 50 resist_acid 50 resist_drain 50 resist_slow 50 resist_paralyze 50 resist_confusion -100 see_invisible 1 exp 250000 ac -5 wc -15 dam 30 hp 4000 maxhp 4000 alive 1 no_pick 1 speed -0.35 can_cast_spell 1 will_apply 12 weight 30000000 run_away 2 end More Object byakie_2 editor_folder monster/giant/byakie name byakie face byakie.x11 animation byakie monster 1 move_type walk alive 1 no_pick 1 x 1 weight 30000000 end More Object byakie_3 editor_folder monster/giant/byakie name byakie face byakie.x11 animation byakie monster 1 move_type walk alive 1 no_pick 1 y 1 weight 30000000 end More Object byakie_4 editor_folder monster/giant/byakie name byakie face byakie.x11 animation byakie monster 1 move_type walk alive 1 no_pick 1 x 1 y 1 weight 30000000 end Object cyclops editor_folder monster/giant/cyclops randomitems cyclops face cyclops.x31 animation cyclops race giant monster 1 move_type walk sleep 1 Wis 11 level 25 Con 56 Str 80 Int 13 Dex 30 resist_physical 50 resist_poison 100 resist_chaos 100 resist_magic 50 resist_fire 50 resist_electricity 50 resist_cold 50 resist_acid 50 resist_drain 50 resist_slow 50 resist_paralyze 50 resist_godpower 75 resist_holyword 85 resist_confusion -100 resist_blind -100 see_invisible 1 exp 250000 ac -5 wc -15 dam 50 hp 8000 maxhp 8000 alive 1 no_pick 1 speed -0.35 weight 30000000 run_away 5 pick_up 1 can_use_weapon 1 can_use_bow 1 can_use_range 1 can_use_skill 1 will_apply 12 body_skill 1 body_arm 2 body_range 1 end More Object cyclops_2 editor_folder monster/giant/cyclops name cyclops face cyclops.x31 animation cyclops monster 1 move_type walk alive 1 no_pick 1 x 1 end More Object cyclops_3 editor_folder monster/giant/cyclops name cyclops face cyclops.x31 animation cyclops monster 1 move_type walk alive 1 no_pick 1 y 1 end More Object cyclops_4 editor_folder monster/giant/cyclops name cyclops face cyclops.x31 animation cyclops monster 1 move_type walk alive 1 no_pick 1 x 1 y 1 end More Object cyclops_5 editor_folder monster/giant/cyclops name cyclops face cyclops.x31 animation cyclops monster 1 move_type walk alive 1 no_pick 1 y 2 end More Object cyclops_6 editor_folder monster/giant/cyclops name cyclops face cyclops.x31 animation cyclops monster 1 move_type walk alive 1 no_pick 1 x 1 y 2 end Object djinn editor_folder monster/giant/djinn race faerie name Major djinn randomitems djinn face djinn.x31 animation djinn monster 1 move_type walk sleep 1 Wis 25 level 40 Con 10 Int 30 Pow 30 can_cast_spell 1 maxsp 300 sp 300 resist_drain 50 resist_chaos 50 resist_physical 100 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_acid 100 resist_ghosthit 100 resist_poison 100 resist_fear 100 attack_movement 7 attacktype 15 see_invisible 1 exp 300000 ac -10 wc -15 dam 30 hp 5000 maxhp 5000 alive 1 no_pick 1 speed -0.50 weight 300000 run_away 5 pick_up 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_range 1 can_use_ring 1 can_use_scroll 1 will_apply 12 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object djinn_2 editor_folder monster/giant/djinn name Major djinn face djinn.x31 animation djinn monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object djinn_magenta editor_folder monster/giant/djinn race faerie name djinn randomitems djinn_magenta face djinn_magenta.x11 animation djinn_magenta monster 1 move_type walk sleep 1 Wis 25 level 100 Con 50 Int 50 Pow 50 can_cast_spell 1 maxsp 2200 sp 2200 resist_drain 50 resist_chaos 50 resist_physical 100 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_acid 100 resist_ghosthit 100 resist_poison 100 resist_fear 100 attack_movement 7 attacktype 15 see_invisible 1 exp 800000 ac -10 wc -15 dam 30 hp 20000 maxhp 20000 alive 1 no_pick 1 speed -0.50 weight 300000 run_away 5 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_range 1 can_use_ring 1 can_use_scroll 1 will_apply 12 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object djinn_magenta_2 editor_folder monster/giant/djinn name djinn face djinn_magenta.x11 animation djinn_magenta monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object djinn_magenta_big editor_folder monster/giant/djinn race faerie name djinn randomitems djinn_magenta face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk sleep 1 Wis 50 level 116 Con 70 Int 70 Pow 70 can_cast_spell 1 maxsp 3300 sp 3300 resist_drain 70 resist_chaos 70 resist_physical 100 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_acid 100 resist_ghosthit 100 resist_poison 100 resist_fear 100 attack_movement 7 attacktype 15 see_invisible 1 exp 800000 ac -25 wc -45 dam 90 hp 31000 maxhp 31000 alive 1 no_pick 1 speed -0.50 weight 900000 run_away 5 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_range 1 can_use_ring 1 can_use_scroll 1 will_apply 12 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object djinn_magenta_big_2 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 y 1 weight 900000 end More Object djinn_magenta_big_3 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 y 2 weight 900000 end More Object djinn_magenta_big_4 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 y 3 weight 900000 end More Object djinn_magenta_big_5 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 y 4 weight 900000 end More Object djinn_magenta_big_6 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 y 5 weight 900000 end More Object djinn_magenta_big_7 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 1 weight 900000 end More Object djinn_magenta_big_8 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 1 y 1 weight 900000 end More Object djinn_magenta_big_9 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 1 y 2 weight 900000 end More Object djinn_magenta_big_10 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 1 y 3 weight 900000 end More Object djinn_magenta_big_12 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 1 y 4 weight 900000 end More Object djinn_magenta_big_13 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 1 y 5 weight 900000 end More Object djinn_magenta_big_14 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 2 weight 900000 end More Object djinn_magenta_big_15 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 2 y 1 weight 900000 end More Object djinn_magenta_big_16 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 2 y 2 weight 900000 end More Object djinn_magenta_big_17 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 2 y 3 weight 900000 end More Object djinn_magenta_big_18 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 2 y 4 weight 900000 end More Object djinn_magenta_big_19 editor_folder monster/giant/djinn name djinn face djinn_magenta_big.x11 animation djinn_magenta_big monster 1 move_type walk alive 1 no_pick 1 x 2 y 5 weight 900000 end Object minor_djinn editor_folder monster/giant/djinn race faerie name minor djinn randomitems minor_djinn face djinn.x31 animation djinn monster 1 move_type walk sleep 1 Wis 15 level 40 Con 10 Int 10 Pow 10 can_cast_spell 1 maxsp 100 sp 100 resist_confusion 100 resist_acid 100 resist_ghosthit 100 resist_poison 100 resist_fear 100 resist_drain -100 resist_weaponmagic -100 resist_chaos -100 resist_physical 50 resist_magic 50 resist_fire 50 resist_electricity 50 resist_cold 50 attack_movement 7 see_invisible 1 exp 70000 ac -7 wc -5 dam 15 hp 2500 maxhp 2500 alive 1 no_pick 1 speed -0.35 weight 300000 run_away 5 attacktype 3 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_range 1 can_use_ring 1 can_use_scroll 1 will_apply 12 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object minor_djinn_2 editor_folder monster/giant/djinn name minor djinn face djinn.x31 animation djinn monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object giant editor_folder monster/giant race giant name hill giant randomitems giant monster 1 move_type walk sleep 1 Wis 10 face giant.x11 animation giant resist_physical 30 resist_electricity 50 resist_blind -30 exp 4000 ac 6 wc 8 dam 20 hp 200 maxhp 200 Con 4 Str 30 Int 13 level 10 alive 1 no_pick 1 speed -0.15 weight 300000 run_away 6 pick_up 1 can_use_weapon 1 can_use_skill 1 will_apply 12 body_skill 1 body_arm 2 end More Object giant_2 editor_folder monster/giant name hill giant face giant.x11 animation giant monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object giant_chief editor_folder monster/giant race giant name giant chief randomitems giant monster 1 move_type walk sleep 1 Wis 12 face giant_chief.x11 animation giant_chief resist_physical 30 resist_electricity 60 resist_blind -25 exp 5800 ac 2 wc 3 dam 60 hp 520 maxhp 520 Con 4 Str 36 Int 13 level 14 alive 1 no_pick 1 speed -0.15 weight 300000 run_away 6 pick_up 1 can_use_weapon 1 can_use_skill 1 will_apply 12 body_skill 1 body_arm 2 end More Object giant_chief_2 editor_folder monster/giant name giant chief face giant_chief.x11 animation giant_chief monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object generate_giant editor_folder monster/giant race giant other_arch giant name bean stalk generator 1 face giant_gen.111 speed 0.003 hp 100 maxhp 100 exp 200 level 10 alive 1 no_pick 1 maxsp 1 weight 30000 generator_limit 5 end Object giant_leader editor_folder monster/giant race giant name giant champion randomitems giant monster 1 move_type walk sleep 1 Wis 10 face giant_leader.x11 animation giant_leader resist_physical 30 resist_electricity 50 resist_blind -30 exp 4800 ac 3 wc 4 dam 40 hp 360 maxhp 360 Con 4 Str 33 Int 13 level 12 alive 1 no_pick 1 speed -0.15 weight 300000 run_away 6 pick_up 1 can_use_weapon 1 can_use_skill 1 will_apply 12 body_skill 1 body_arm 2 end More Object giant_leader_2 editor_folder monster/giant name giant champion face giant_leader.x11 animation giant_leader monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object mabu editor_folder monster/giant race giant name mabu suke randomitems giant monster 1 move_type walk sleep 1 Wis 10 face mabu.x11 animation mabu resist_electricity 50 exp 4000 ac 6 wc 8 dam 20 hp 200 Con 4 Str 30 Int 13 maxhp 200 level 10 alive 1 no_pick 1 speed -0.15 weight 300000 run_away 6 pick_up 1 can_use_weapon 1 can_use_skill 1 will_apply 12 body_skill 1 body_arm 2 end More Object mabu_2 editor_folder monster/giant name mabu suke face mabu.x11 animation mabu monster 1 move_type walk alive 1 no_pick 1 y 1 weight 300000 end Object fire_serpent editor_folder monster/giant/serpent race reptile name fire serpent randomitems fire_serpent face serpent.x31 monster 1 move_type walk Wis 15 animation serpent level 9 Con 4 resist_cold -100 resist_fire 30 attacktype 5 exp 2500 ac 5 wc 8 dam 15 hp 120 maxhp 120 Pow 2 sp 5 maxsp 5 alive 1 no_pick 1 speed -0.20 can_cast_spell 1 weight 90000 end More Object fire_serpent_2 editor_folder monster/giant/serpent name fire serpent face serpent.x31 animation serpent monster 1 move_type walk alive 1 no_pick 1 x 1 weight 900000 end Object serpent editor_folder monster/giant/serpent name serpent race reptile randomitems serpent face serpent.x31 animation serpent monster 1 move_type walk Wis 15 level 6 Con 4 resist_cold -100 resist_poison 100 exp 500 ac 4 wc 14 dam 9 hp 100 maxhp 100 alive 1 no_pick 1 speed -0.15 weight 90000 end More Object serpent_2 editor_folder monster/giant/serpent name serpent face serpent.x31 animation serpent monster 1 move_type walk alive 1 no_pick 1 x 1 weight 900000 end Object slug editor_folder monster/giant/slug race insect name slug face slug.x31 animation slug randomitems slug monster 1 move_type walk sleep 1 Wis 15 level 12 Con 10 resist_acid 100 resist_fear 100 resist_blind 100 resist_fire -100 resist_electricity 50 attacktype 65 exp 8000 ac 6 wc 8 dam 40 hp 250 maxhp 250 alive 1 no_pick 1 speed -0.12 weight 300000 run_away 5 end More Object slug_2 editor_folder monster/giant/slug name slug face slug.x31 animation slug monster 1 move_type walk alive 1 no_pick 1 x 1 weight 300000 end Object slug_slime editor_folder monster/giant/slug nrof 1 name slug's slime face slug_slime.111 material 32 weight 6000 value 200 food 0 name_pl slug's slimes client_type 627 end Object h_kobold editor_folder monster/goblin/Kobold name hyper kobold race goblin face h_kobold.111 animation h_kobold Str 30 Dex 30 Con 30 Wis 50 hp 2000 maxhp 2000 exp 50000 dam 70 wc -30 ac -15 speed 1.200000 attack_movement 3 level 50 resist_cold -100 carrying 6000 weight 30000 alive 1 no_pick 1 monster 1 move_type walk sleep 1 end Object unusual_kobold editor_folder monster/goblin/Kobold name unusual kobold face unusual_kobold.111 race goblin animation unusual_kobold monster 1 move_type walk sleep 1 Str 30 Dex 30 Con 100 Wis 50 no_pick 1 alive 1 hp 10000 maxhp 10000 exp 30000 dam 70 wc -20 ac -15 resist_physical 100 speed .4 level 30 resist_cold -100 carrying 6000 weight 30000 is_animated 1 end Object gnoll editor_folder monster/goblin randomitems gnoll race goblin face gnoll.111 animation gnoll monster 1 move_type walk sleep 1 Wis 8 Int 8 Dex 12 Str 15 no_pick 1 alive 1 exp 15 ac 7 wc 15 dam 4 hp 20 maxhp 20 level 2 speed -0.1 weight 45000 run_away 30 can_use_skill 1 body_skill 1 end Object gnoll_chief_arc editor_folder monster/goblin name gnoll chief randomitems gnoll race goblin face gnoll_chief.111 animation gnoll_chief_arc monster 1 move_type walk sleep 1 Wis 8 Int 8 Dex 12 Str 15 no_pick 1 alive 1 exp 60 ac 5 wc 13 dam 8 hp 40 maxhp 40 level 4 resist_physical 30 speed -0.1 weight 45000 run_away 30 can_use_skill 1 body_skill 1 end Object generate_gnoll editor_folder monster/goblin race goblin other_arch gnoll name generator generator 1 face gnoll_gen.111 hp 40 maxhp 40 exp 80 ac 9 speed 0.004 alive 1 level 1 maxsp 1 weight 1000000 generator_limit 5 end Object gnoll_leader_arc editor_folder monster/goblin name gnoll champion randomitems gnoll race goblin face gnoll_leader.111 animation gnoll_leader_arc monster 1 move_type walk sleep 1 Wis 8 Int 8 Dex 12 Str 15 no_pick 1 alive 1 exp 25 ac 6 wc 14 dam 5 hp 30 maxhp 30 level 3 speed 0.1 weight 45000 run_away 30 can_use_skill 1 body_skill 1 end Object goblin editor_folder monster/goblin randomitems goblin race goblin face goblin.151 animation goblin monster 1 move_type walk sleep 1 Wis 10 no_pick 1 alive 1 exp 10 ac 8 wc 17 dam 3 hp 20 maxhp 20 level 2 speed -0.1 weight 50000 run_away 10 will_apply 2 pick_up 24 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object goblin_chief_arc editor_folder monster/goblin name goblin chief randomitems goblin race goblin face goblin_chief.111 animation goblin_chief_arc monster 1 move_type walk sleep 1 Wis 10 no_pick 1 alive 1 exp 50 ac 6 wc 15 dam 10 hp 40 maxhp 40 level 4 resist_physical 30 speed 0.1 weight 50000 run_away 10 will_apply 2 pick_up 24 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_goblin editor_folder monster/goblin race goblin other_arch goblin name generator generator 1 face goblin_gen.111 hp 30 maxhp 30 ac 8 exp 100 alive 1 level 1 no_pick 1 speed 0.02 maxsp 1 weight 1000000 generator_limit 5 end Object goblin_leader_arc editor_folder monster/goblin name goblin champion randomitems goblin race goblin face goblin_leader.111 animation goblin_leader_arc monster 1 move_type walk sleep 1 Wis 10 no_pick 1 alive 1 exp 25 ac 7 wc 16 dam 8 hp 25 maxhp 25 level 3 speed 0.1 weight 50000 run_away 10 will_apply 2 pick_up 24 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object kobold editor_folder monster/goblin face kobold.111 race goblin animation kobold monster 1 move_type walk sleep 1 Wis 8 no_pick 1 alive 1 exp 2 ac 9 wc 21 dam 2 hp 10 maxhp 10 level 1 speed 0.2 weight 30000 run_away 90 end Object generate_kobold editor_folder monster/goblin race goblin other_arch kobold name generator generator 1 face kobold_gen.111 hp 20 maxhp 20 exp 30 ac 10 speed 0.02 alive 1 level 1 maxsp 1 weight 1000000 generator_limit 5 end Object ogre editor_folder monster/goblin name ogre randomitems ogre race giant face ogre.111 animation ogre monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 60 level 4 ac 8 can_see_in_dark 1 hp 50 maxhp 50 Con 2 Wis 10 Str 22 Dex 20 Int 8 wc 12 dam 12 speed -0.08 resist_electricity 30 weight 140000 run_away 30 can_use_scroll 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object ogre_chief_arc editor_folder monster/goblin name ogre chief randomitems ogre race giant face ogre_chief.111 animation ogre_chief_arc monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 1500 level 8 ac 5 wc 8 can_see_in_dark 1 hp 150 maxhp 150 Con 2 Wis 10 Str 22 Dex 20 Int 8 dam 30 speed 0.08 resist_electricity 30 resist_physical 30 weight 140000 run_away 30 can_use_scroll 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_ogre editor_folder monster/goblin race giant other_arch ogre name generator generator 1 face ogre_gen.111 hp 60 maxhp 60 exp 300 ac 7 speed 0.002 alive 1 level 1 maxsp 1 weight 1000000 generator_limit 5 end Object ogre_leader_arc editor_folder monster/goblin name ogre champion randomitems ogre race giant face ogre_leader.111 animation ogre_leader_arc monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 500 level 6 ac 6 wc 8 can_see_in_dark 1 hp 75 maxhp 75 Con 2 Wis 10 Str 22 Dex 20 Int 8 dam 22 speed 0.08 resist_electricity 50 weight 140000 run_away 30 can_use_scroll 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object ologhi editor_folder monster/goblin name Olog-hi race goblin face ologhi.111 animation ologhi monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 1000 level 20 ac -50 can_see_in_dark 1 Str 30 Dex 20 Con 10 Wis 4 Int 8 hp 5000 maxhp 5000 wc -100 dam 100 speed -0.25 attack_movement 5 resist_physical 100 resist_magic -100 resist_electricity -100 carrying 20000 weight 140000 randomitems throw_stnd is_animated 1 end Object orc editor_folder monster/goblin randomitems orc race goblin face orc.111 animation orc monster 1 move_type walk sleep 1 Wis 8 no_pick 1 alive 1 exp 5 ac 8 wc 17 dam 1 hp 20 maxhp 20 level 1 speed -0.15 weight 23000 run_away 25 will_apply 2 pick_up 24 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object orc_chief_arc editor_folder monster/goblin name orc chief randomitems orc race goblin face orc_chief.111 animation orc_chief_arc monster 1 move_type walk sleep 1 Wis 8 no_pick 1 alive 1 exp 30 ac 6 wc 15 dam 4 hp 40 maxhp 40 level 3 resist_physical 30 speed -0.15 weight 23000 run_away 25 will_apply 2 pick_up 24 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_orc editor_folder monster/goblin race goblin other_arch orc name generator generator 1 face orc_gen.111 hp 30 maxhp 30 exp 60 ac 9 speed 0.006 alive 1 level 1 maxsp 1 weight 1000000 generator_limit 5 end Object orc_leader_arc editor_folder monster/goblin name orc champion randomitems orc race goblin face orc_leader.111 animation orc_leader_arc monster 1 move_type walk sleep 1 Wis 8 no_pick 1 alive 1 exp 10 ac 7 wc 16 dam 2 hp 25 maxhp 25 level 2 speed -0.15 weight 23000 run_away 25 will_apply 2 pick_up 24 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object a_guard_h editor_folder monster/humanoid/Arabic race human name High guard randomitems guard_h face a_guard_h.111 speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 15 see_invisible 1 no_pick 1 no_magic 1 resist_magic 100 reflect_missile 1 reflect_spell 1 hp 250 maxhp 250 Int 13 Dex 12 Con 15 Pow 3 sp 25 maxsp 25 ac 0 resist_physical 75 exp 1200 wc 1 dam 15 level 10 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 end Object a_guard_l editor_folder monster/humanoid/Arabic race human name light guard randomitems guard_l face a_guard_l.111 speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 5 see_invisible 1 no_pick 1 resist_magic 30 sp 10 maxsp 10 Int 1 Pow 1 hp 80 maxhp 80 Con 15 ac 3 resist_physical 30 exp 150 wc 5 dam 10 level 4 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 end Object a_guard_m editor_folder monster/humanoid/Arabic race human name Medium guard randomitems guard_m face a_guard_m.111 speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 10 see_invisible 1 no_pick 1 resist_magic 30 reflect_missile 1 hp 120 maxhp 120 sp 20 maxsp 20 Int 2 Pow 2 Con 15 ac 1 resist_physical 65 exp 250 wc 1 dam 15 level 6 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 end Object a_priest editor_folder monster/humanoid/Arabic race human name priest randomitems a_priest face a_priest.111 Wis 5 monster 1 move_type walk unaggressive 1 sp 10 maxsp 10 Int 3 Pow 3 hp 50 maxhp 50 Con 10 no_pick 1 exp 500 resist_magic 30 speed 0.16 ac 5 wc 9 dam 8 alive 1 level 7 weight 100000 attack_movement 7 can_use_scroll 1 can_use_range 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object a_townsman editor_folder monster/humanoid/Arabic race human name Townsman randomitems standard face a_townsman.111 alive 1 monster 1 move_type walk no_pick 1 hp 15 maxhp 15 ac 10 exp 10 wc 18 Str 15 Con 5 Dex 12 Int 12 dam 5 level 1 speed 0.12 weight 100000 unaggressive 1 can_use_skill 1 can_use_range 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object a_townsman2 editor_folder monster/humanoid/Arabic race human name Townsman randomitems standard face a_townsman2.111 alive 1 monster 1 move_type walk no_pick 1 hp 15 maxhp 15 ac 10 exp 10 wc 18 Str 15 Con 5 Dex 12 Int 12 dam 5 level 1 speed 0.12 weight 100000 unaggressive 1 can_use_skill 1 can_use_range 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object a_townsman3 editor_folder monster/humanoid/Arabic race human name Townsman randomitems standard face a_townsman3.111 alive 1 monster 1 move_type walk no_pick 1 hp 15 maxhp 15 ac 10 exp 10 wc 18 Str 15 Con 5 Dex 12 Int 12 dam 5 level 1 speed 0.12 weight 100000 unaggressive 1 can_use_skill 1 can_use_range 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object beggar editor_folder monster/humanoid/Arabic race human name beggar face beggar.111 randomitems beggar sp 4 maxsp 4 monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 9 wc 20 dam 1 hp 4 maxhp 4 Str 8 Dex 10 Int 11 Con 1 exp 05 speed 0.05 weight 50000 level 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object big_slave editor_folder monster/humanoid/Arabic race human randomitems slave name big slave face big_slave.111 alive 1 level 1 monster 1 move_type walk hp 30 maxhp 30 Str 20 Con 5 ac 8 exp 20 wc 15 speed 0.16 dam 8 weight 150000 unaggressive 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 end Object dancing_girl editor_folder monster/humanoid/Arabic race human name Dancing girl face dancing_girl.111 animation dancing_girl alive 1 monster 1 move_type walk no_pick 1 hp 10 maxhp 10 ac 6 exp 10 wc 18 Str 15 Con 5 dam 5 level 1 random_movement 1 speed 0.5 weight 100000 unaggressive 1 can_use_range 1 can_use_weapon 1 can_use_bow 1 body_arm 2 body_range 1 randomitems dancing_girl end Object holy_priest editor_folder monster/humanoid/Arabic race human name Holy man randomitems holy_priest face holy_priest.111 animation holy_priest speed 0.16 alive 1 monster 1 move_type walk see_invisible 1 no_pick 1 resist_fire 30 resist_electricity 30 resist_cold 30 resist_confusion 30 resist_acid 30 resist_poison 30 resist_chaos 30 resist_physical 100 resist_magic 100 resist_drain 100 resist_fear 100 resist_deplete 100 resist_death 100 sp 100 maxsp 100 Int 30 Pow 30 Wis 10 Str 25 hp 500 maxhp 500 Con 40 ac -3 exp 5000 wc 19 dam 18 level 17 weight 100000 attack_movement 7 unaggressive 1 can_use_scroll 1 can_use_ring 1 can_use_range 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object merchant editor_folder monster/humanoid/Arabic race human name Merchant randomitems merchant face merchant.111 animation merchant is_animated 0 sp 10 maxsp 10 Str 13 Int 14 Dex 13 Con 2 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 6 wc 14 dam 4 hp 10 maxhp 10 exp 20 speed 0.20 weight 50000 level 3 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object slave editor_folder monster/humanoid/Arabic race human name slave randomitems slave face slave.111 speed 0.10 alive 1 level 1 monster 1 move_type walk no_pick 1 hp 10 maxhp 10 Con 5 ac 10 exp 10 wc 20 Str 15 dam 5 weight 150000 unaggressive 1 can_use_bow 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 end Object veiled_woman editor_folder monster/humanoid/Arabic race human name Veiled woman face veiled_woman.111 alive 1 monster 1 move_type walk no_pick 1 hp 15 maxhp 15 ac 10 exp 10 wc 15 Str 12 Con 5 Int 12 Dex 13 dam 5 level 1 speed -0.15 weight 100000 unaggressive 1 can_use_range 1 can_use_skill 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object veiled_woman2 editor_folder monster/humanoid/Arabic race human name Veiled woman face veiled_woman2.111 alive 1 monster 1 move_type walk no_pick 1 hp 15 maxhp 15 ac 10 exp 10 wc 15 Str 12 Con 5 Int 12 Dex 12 dam 5 level 1 speed -0.15 weight 100000 unaggressive 1 can_use_skill 1 can_use_range 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object veiled_woman3 editor_folder monster/humanoid/Arabic race human name Veiled woman face veiled_woman3.111 alive 1 monster 1 move_type walk no_pick 1 hp 15 maxhp 15 ac 10 exp 10 wc 15 Str 12 Con 5 Int 12 Dex 12 dam 5 level 1 speed -0.15 weight 100000 unaggressive 1 can_use_skill 1 can_use_range 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object warrior_1 editor_folder monster/humanoid/Class/Warrior name warrior race human randomitems warrior_1 face warrior.171 animation warrior_1 sp 5 maxsp 5 Pow 1 Int 12 Str 18 Dex 13 Cha 18 monster 1 move_type walk unaggressive 1 alive 1 ac 1 wc 9 dam 8 hp 50 maxhp 50 exp 40 speed 0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_armour 1 can_use_shield 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object conjurer editor_folder monster/humanoid/Class randomitems conjurer name conjurer race human face conjurer.111 animation conjurer Pow 5 Int 20 Dex 10 Str 10 sp 40 maxsp 40 monster 1 move_type walk alive 1 ac 9 wc 15 dam 4 hp 40 maxhp 40 exp 25 speed -0.15 weight 50000 level 3 can_use_skill 1 can_use_scroll 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object conjurer2 editor_folder monster/humanoid/Class race human randomitems conjurer2 name conjurer face conjurer.111 animation conjurer2 Pow 5 Int 20 Str 10 Dex 10 sp 40 maxsp 40 monster 1 move_type walk alive 1 ac 9 wc 15 dam 4 hp 40 maxhp 40 exp 25 speed -0.15 weight 50000 level 3 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object fighter editor_folder monster/humanoid/Class name fighter race human randomitems fighter face fighter.111 animation fighter maxsp 5 sp 5 Str 15 Dex 15 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 1 wc 9 dam 8 hp 50 maxhp 50 exp 40 speed 0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object ninja_1 editor_folder monster/humanoid/Class name ninja race human randomitems npc_ninja face ninja.171 animation ninja monster 1 move_type walk maxsp 7 sp 7 Pow 1 Int 20 Dex 20 Str 15 unaggressive 1 alive 1 ac 0 wc 12 dam 5 hp 30 maxhp 30 exp 30 speed 0.25 weight 50000 level 1 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object ninja2 editor_folder monster/humanoid/Class race human name ninja randomitems npc_ninja face ninja_2.111 animation ninja2 sp 7 maxsp 7 Int 20 Str 20 Dex 15 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 0 wc 12 dam 5 hp 30 maxhp 30 exp 30 speed 0.25 weight 50000 level 1 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object northman editor_folder monster/humanoid/Class name viking race human randomitems viking face northman.111 animation northman maxsp 5 sp 5 Pow 1 Int 10 Str 18 Dex 14 monster 1 move_type walk alive 1 ac 9 wc 12 dam 8 hp 50 maxhp 50 exp 65 speed -0.15 weight 50000 level 4 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object pirate editor_folder monster/humanoid/Class randomitems pirate race human face pirate.111 animation pirate monster 1 move_type walk sleep 1 Int 13 Dex 20 Str 12 Wis 10 no_pick 1 alive 1 exp 30 level 3 ac 7 hp 25 maxhp 25 Con 2 wc 10 dam 6 speed -0.12 weight 75000 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object thief_1 editor_folder monster/humanoid/Class race human randomitems thief_1 face thief.151 animation thief_1 monster 1 move_type walk alive 1 Str 10 Dex 25 Int 13 dam 4 ac 5 wc 14 hp 25 maxhp 25 exp 35 speed 0.28 weight 52000 level 3 will_apply 8 pick_up 26 can_use_ring 1 can_use_skill 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 end Object black_dragon1 editor_folder monster/humanoid/Dragon name black dragon race dragon randomitems dragon_player_items face pl_dragon_bl.151 animation black_dragon1 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object black_dragon2 editor_folder monster/humanoid/Dragon name black dragon race dragon randomitems dragon_player_items face black_dragon2.151 animation black_dragon2 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object blue_dragon1 editor_folder monster/humanoid/Dragon name blue dragon race dragon randomitems dragon_player_items face pl_dragon_blue.151 animation blue_dragon1 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object blue_dragon2 editor_folder monster/humanoid/Dragon name blue dragon race dragon randomitems dragon_player_items face blue_dragon2.151 animation blue_dragon2 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object green_dragon1 editor_folder monster/humanoid/Dragon name green dragon race dragon randomitems dragon_player_items face pl_dragon_g.151 animation green_dragon1 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object green_dragon2 editor_folder monster/humanoid/Dragon name green dragon race dragon randomitems dragon_player_items face green_dragon2.151 animation green_dragon2 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object red_dragon1 editor_folder monster/humanoid/Dragon name red dragon race dragon randomitems dragon_player_items face pl_dragon_r.151 animation red_dragon1 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object red_dragon2 editor_folder monster/humanoid/Dragon name red dragon race dragon randomitems dragon_player_items face red_dragon2.151 animation red_dragon2 monster 1 move_type walk unaggressive 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed -0.3 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 end Object dwarf editor_folder monster/humanoid/Dwarf race dwarf name dwarf randomitems dwarf face dwarf.111 animation dwarf maxsp 9 sp 9 Pow 21 Int 15 Str 20 Dex 10 monster 1 move_type walk unaggressive 1 alive 1 ac 1 wc 8 dam 9 hp 70 maxhp 70 exp 100 speed 0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_skill 1 can_use_scroll 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object dwarf_priest editor_folder monster/humanoid/Dwarf race dwarf randomitems prayer_book name dwarf priest animation dwarf_priest msg @match * I'm too busy to answer your queries. endmsg face dwarf_pr.111 Pow 9 sp 40 maxsp 40 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 5 hp 28 maxhp 28 exp 5 speed 0.06 weight 50000 level 15 can_cast_spell 1 end Object dwarf_wiz editor_folder monster/humanoid/Dwarf race dwarf randomitems random_books name dwarf wizard animation dwarf_wiz msg @match * I'm too busy to answer your queries. endmsg face dwarf_wiz.111 Pow 18 sp 50 maxsp 50 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 5 hp 38 maxhp 38 exp 10 speed 0.06 weight 50000 level 15 can_cast_spell 1 end Object greater_dwarven_guard editor_folder monster/humanoid/Dwarf race dwarf name greater dwarven guard randomitems gdwar_guard face greater_dwarven_guard.111 animation greater_dwarven_guard maxsp 9 sp 9 Int 9 Pow 43 Str 30 Dex 14 monster 1 move_type walk attack_movement 4 alive 1 ac -5 wc 20 dam 12 hp 600 maxhp 600 exp 20000 speed 0.30 weight 50000 level 20 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object lesser_dwarven_guard editor_folder monster/humanoid/Dwarf race dwarf name lesser dwarven guard randomitems ldwar_guard face lesser_dwarven_guard.111 animation lesser_dwarven_guard maxsp 9 sp 9 Pow 28 Str 25 Dex 12 Int 9 monster 1 move_type walk attack_movement 4 alive 1 ac 1 wc 5 dam 20 hp 300 maxhp 300 exp 15000 speed 0.20 weight 50000 level 15 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object dark_elf editor_folder monster/humanoid/Elf race faerie name dark elf randomitems dark_elf face dark_elf.111 animation dark_elf monster 1 move_type walk sleep 1 Wis 20 no_pick 1 alive 1 exp 75 ac 6 wc 15 dam 4 Pow 1 Int 15 Str 13 Dex 25 maxsp 20 can_cast_spell 1 hp 40 maxhp 40 level 4 speed 0.5 weight 50000 pick_up 24 will_apply 2 run_away 30 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 attack_movement 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object dark_elf2 editor_folder monster/humanoid/Elf race faerie name dark elf captain randomitems dark_elf face dark_elf2.131 animation dark_elf2 monster 1 move_type walk sleep 1 Wis 25 no_pick 1 alive 1 exp 75 ac 8 wc 16 dam 6 Pow 2 Int 15 Str 13 Dex 25 maxsp 40 can_cast_spell 1 hp 40 maxhp 40 level 4 speed 0.5 weight 50000 pick_up 24 will_apply 2 run_away 30 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 attack_movement 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object elf editor_folder monster/humanoid/Elf race elf name elf randomitems elf face elf.171 animation elf is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 8 Dex 14 Con 8 Wis 7 Cha 12 Int 11 Pow 11 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object elf_1 editor_folder monster/humanoid/Elf race faerie name elf randomitems elf_1 face elf_1.111 animation elf_1 monster 1 move_type walk alive 1 Pow 4 Str 17 Con 2 Int 15 Dex 19 maxsp 7 sp 7 unaggressive 1 ac 0 wc 12 dam 5 hp 30 maxhp 30 exp 30 speed 0.25 weight 50000 level 1 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object elf_guard editor_folder monster/humanoid/Elf race faerie name elf guard face elf_guard.111 animation elf_guard speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 5 see_invisible 1 no_pick 1 resist_magic 30 sp 10 maxsp 10 Pow 1 hp 80 maxhp 80 Con 15 ac 3 resist_physical 30 exp 150 wc 5 dam 10 level 4 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 end Object elf_lass editor_folder monster/humanoid/Elf race faerie name elf lass randomitems elf_1 face elf_lass.111 animation elf_lass monster 1 move_type walk alive 1 Pow 4 Str 17 Con 2 Int 15 Dex 19 maxsp 7 sp 7 unaggressive 1 ac 0 wc 12 dam 5 hp 30 maxhp 30 exp 30 speed 0.25 weight 50000 level 1 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object elf_man editor_folder monster/humanoid/Elf race faerie name elf man randomitems elf_1 face elf_lad.111 animation elf_man monster 1 move_type walk alive 1 Pow 4 Str 17 Con 2 Int 15 Dex 19 maxsp 7 sp 7 unaggressive 1 ac 0 wc 12 dam 5 hp 30 maxhp 30 exp 30 speed 0.25 weight 50000 level 1 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object gardengnome editor_folder monster/humanoid/Gnome race gnome name gnome randomitems gnome alive 1 monster 1 move_type walk no_pick 1 face gardengnome.111 animation gardengnome ac 1 reflect_spell 1 wc 5 dam 25 level 25 Str 15 Int 20 Dex 20 Con 30 Pow 3 can_cast_spell 1 Wis 20 attacktype 4098 will_apply 15 hp 400 maxhp 400 sp 400 maxsp 400 resist_fire 100 resist_cold 100 resist_confusion 100 resist_turn_undead 100 weight 50000 speed 0.4 random_movement 1 pick_up 3 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 run_away 99 exp 2000 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object gnome editor_folder monster/humanoid/Gnome race gnome name cunning gnome randomitems gnome alive 1 monster 1 move_type walk no_pick 1 face gnome.111 animation gnome ac 5 reflect_spell 1 wc 10 dam 4 level 6 Str 10 Int 15 Dex 13 Con 8 Pow 1 can_cast_spell 1 Wis 20 attacktype 3 will_apply 15 hp 75 maxhp 75 sp 300 maxsp 300 resist_fire 100 resist_cold 100 resist_confusion 100 resist_turn_undead 100 weight 50000 speed 0.4 random_movement 1 pick_up 3 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 run_away 99 exp 1000 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object gnome2 editor_folder monster/humanoid/Gnome race gnome name gnome randomitems gnome alive 1 monster 1 move_type walk no_pick 1 face gnome2.111 animation gnome2 ac 5 reflect_spell 1 wc 10 dam 4 level 6 Str 10 Int 15 Dex 13 Con 8 Pow 1 can_cast_spell 1 Wis 20 attacktype 3 will_apply 15 hp 75 maxhp 75 sp 300 maxsp 300 resist_fire 100 resist_cold 100 resist_confusion 100 resist_turn_undead 100 weight 50000 speed 0.4 random_movement 1 pick_up 3 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 run_away 99 exp 1000 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object guard editor_folder monster/humanoid/Guard race human name castle guard face guard_hard.111 speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 15 see_invisible 1 no_pick 1 resist_magic 100 reflect_missile 1 reflect_spell 1 hp 250 maxhp 250 Con 15 sp 25 maxsp 25 Pow 3 ac 0 resist_physical 75 exp 1200 wc 1 dam 15 level 10 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 end Object light_guard editor_folder monster/humanoid/Guard race human name castle guard face guard_ligh.111 speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 5 see_invisible 1 no_pick 1 resist_magic 30 sp 10 maxsp 10 Pow 1 hp 80 maxhp 80 Con 15 ac 3 resist_physical 30 exp 150 wc 5 dam 10 level 4 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 end Object medium_guard editor_folder monster/humanoid/Guard race human name castle guard face guard_med.111 speed 0.06 alive 1 monster 1 move_type walk sleep 1 Wis 10 see_invisible 1 no_pick 1 resist_magic 30 reflect_missile 1 hp 120 maxhp 120 sp 20 maxsp 20 Pow 2 Con 15 ac 1 resist_physical 65 exp 250 wc 1 dam 15 level 6 weight 150000 stand_still 1 unaggressive 1 Str 25 can_cast_spell 1 end Object knight editor_folder monster/humanoid/Guard race human name Royal Guard face knight.111 speed 0.1 animation knight alive 1 monster 1 move_type walk sleep 1 Wis 15 see_invisible 1 no_pick 1 resist_magic 100 unaggressive 1 reflect_missile 1 reflect_spell 1 hp 250 maxhp 250 Con 15 sp 25 maxsp 25 Pow 3 ac 0 resist_physical 75 exp 1500 wc 4 dam 15 level 10 weight 150000 Str 25 can_cast_spell 1 end Object halfling_p editor_folder monster/humanoid/Halfling name halfling randomitems halfling face halfling.111 animation halfling_p is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 40000 food 500 speed 0.5 attacktype 1 Str 6 Dex 13 Con 14 Wis 7 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object halfling editor_folder monster/humanoid/Halfling race halfling name halfling randomitems halfling face halfling.151 animation halfling sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed 0.15 weight 30000 level 3 will_apply 2 pick_up 24 can_use_range 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object halfling2 editor_folder monster/humanoid/Halfling race halfling name halfling randomitems halfling face halfling2.151 animation halfling2 sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed 0.15 weight 30000 level 3 will_apply 2 pick_up 24 can_use_range 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object halfling3 editor_folder monster/humanoid/Halfling race halfling name halfling randomitems halfling face halfling3.151 animation halfling3 sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed 0.15 weight 30000 level 3 will_apply 2 pick_up 24 can_use_range 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object armless_cook editor_folder monster/humanoid/Human race human name armless cook randomitems man face armless_cook.151 animation armless_cook sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed -0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_skill 1 can_cast_spell 1 can_use_armour 1 can_use_scroll 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_waist 1 body_range 1 end Object barbarian editor_folder monster/humanoid/Human race barbarian name barbarian randomitems barbarian face barbarian.171 animation barbarian is_animated 0 level 1 hp 50 maxhp 50 ac 10 wc 21 dam 1 alive 1 weight 71000 food 500 speed 0.5 attacktype 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 Str 14 Dex 11 Con 14 Wis 9 Cha 8 Int 4 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object c_man editor_folder monster/humanoid/Human name city dweller race human randomitems jail face man.151 animation c_man sp 10 maxsp 10 Str 10 Int 10 Dex 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed 0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_cast_spell 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object c_sage editor_folder monster/humanoid/Human randomitems jail name sage race human msg @match * I'm too busy to answer your queries. endmsg face sage.151 animation c_sage Pow 5 Int 25 Dex 5 Str 5 sp 40 maxsp 40 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 25 dam 1 hp 18 maxhp 18 exp 0 speed 0.06 weight 50000 level 15 can_cast_spell 1 can_use_skill 1 body_skill 1 end Object c_woman editor_folder monster/humanoid/Human name city dweller randomitems jail face woman.151 animation c_woman race human sp 10 maxsp 10 Pow 1 Str 10 Dex 10 Int 10 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 1 hp 18 maxhp 18 exp 20 speed 0.15 weight 50000 level 2 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object charwoman editor_folder monster/humanoid/Human name cleaning woman race human face charwoman.171 animation charwoman monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 10 wc 25 dam 1 hp 8 maxhp 8 Pow 1 sp 1 maxsp 1 exp 0 speed 0.15 weight 50000 level 1 run_away 90 end Object child editor_folder monster/humanoid/Human name child race human randomitems child face child.111 monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 7 wc 25 dam 1 hp 10 maxhp 10 Str 8 Con 1 Dex 13 Int 8 exp 10 speed 0.3 weight 50000 level 1 can_use_skill 1 can_use_range 1 can_use_ring 1 body_skill 1 body_finger 2 body_range 1 end Object child2 editor_folder monster/humanoid/Human name child race human randomitems child face child2.111 monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 7 wc 25 dam 1 hp 10 maxhp 10 Str 8 Con 1 Dex 13 Int 8 exp 10 speed 0.3 weight 50000 level 1 can_use_skill 1 can_use_range 1 can_use_ring 1 body_skill 1 body_finger 2 body_range 1 end Object child_thief editor_folder monster/humanoid/Human name young rogue race human randomitems c_thief face child.111 monster 1 move_type walk alive 1 ac 7 wc 20 dam 2 hp 15 maxhp 15 Str 8 Int 12 Dex 16 Con 2 exp 8 speed 0.4 weight 50000 level 1 can_use_skill 1 can_use_range 1 can_use_ring 1 can_use_scroll 1 body_skill 1 body_finger 2 body_range 1 end Object cleric editor_folder monster/humanoid/Human race cleric name cleric randomitems cleric face cleric.171 animation cleric is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 10 Dex 9 Con 9 Wis 12 Cha 11 Int 8 Pow 11 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object clown editor_folder monster/humanoid/Human race human name clown randomitems courier face clown.111 monster 1 move_type walk unaggressive 1 alive 1 ac 3 wc 8 dam 5 hp 100 maxhp 100 exp 60 Str 12 Con 3 Dex 15 Int 12 speed 0.20 weight 50000 resist_physical 20 resist_magic 100 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_fear 100 resist_holyword 100 resist_weaponmagic 100 reflect_spell 1 reflect_missile 1 level 10 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 can_cast_spell 1 can_use_skill 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object courier editor_folder monster/humanoid/Human race human name courier randomitems courier face courier.111 monster 1 move_type walk unaggressive 1 alive 1 ac 3 wc 8 dam 5 hp 30 maxhp 30 exp 60 Str 12 Con 3 Dex 15 Int 12 speed 0.20 weight 50000 resist_physical 20 level 5 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object crone editor_folder monster/humanoid/Human race human face crone.111 sp 40 maxsp 40 Int 2 Pow 2 monster 1 move_type walk unaggressive 1 alive 1 level 1 ac 9 wc 18 dam 1 hp 8 maxhp 8 exp 5 speed 0.05 weight 50000 can_use_skill 1 can_cast_spell 1 can_use_range 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems all_spell_skills end Object evilclown editor_folder monster/humanoid/Human race human name evil clown randomitems evilclown face evilclown.111 monster 1 move_type walk alive 1 ac -50 wc -50 dam 200 hp 3300 maxhp 3300 sp 1000 maxsp 1000 exp 10000 Str 20 Con 30 Pow 50 Dex 15 Int 12 speed 0.5 weight 50000 resist_physical 75 resist_magic 100 resist_fire 100 resist_electricity 100 resist_confusion 100 resist_fear 100 resist_holyword 100 resist_weaponmagic 100 reflect_spell 1 reflect_missile 1 level 115 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 can_cast_spell 1 can_use_skill 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object farmer editor_folder monster/humanoid/Human race human name farmer randomitems farmer face farmer.111 animation farmer sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed 0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_range 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object fatman editor_folder monster/humanoid/Human race human name large man face fatman.111 monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 8 wc 14 dam 2 hp 10 maxhp 10 exp 15 speed 0.05 Str 15 Con 3 Dex 8 Int 12 weight 50000 level 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object fatwoman editor_folder monster/humanoid/Human race human name large woman face fatwoman.111 monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 8 wc 14 dam 2 hp 10 maxhp 10 Str 14 Con 3 Int 13 Dex 9 exp 15 speed 0.05 weight 50000 level 1 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object guildmaster editor_folder monster/humanoid/Human race human randomitems random_read name guildmaster msg @match * I'm too busy to help you. endmsg face guildmaste.111 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 25 dam 1 sp 20 maxsp 20 Pow 5 hp 50 maxhp 50 exp 0 speed 0.06 weight 50000 level 10 can_cast_spell 1 pick_up 1 end Object human editor_folder monster/humanoid/Human name human race human randomitems human face human.171 animation human is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 10 Dex 10 Con 10 Wis 10 Cha 10 Int 10 Pow 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object mage editor_folder monster/humanoid/Human name mage race mage randomitems mage face mage.171 animation mage is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 10 Dex 11 Con 9 Wis 10 Cha 7 Int 11 Pow 12 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object man editor_folder monster/humanoid/Human race human name man randomitems man face man.151 animation man sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed -0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_range 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object man2 editor_folder monster/humanoid/Human race human name man randomitems man face man2.151 animation man2 sp 10 maxsp 10 Str 12 Dex 10 Int 10 Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 10 dam 2 hp 18 maxhp 18 exp 25 speed -0.15 weight 50000 level 3 will_apply 2 pick_up 24 can_use_range 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object ninja editor_folder monster/humanoid/Human race ninja name ninja randomitems ninja face ninja.171 animation ninja is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 12 Dex 12 Con 10 Wis 9 Cha 9 Int 8 Pow 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object nun editor_folder monster/humanoid/Human race human name woman randomitems priest_class_items face nun.151 animation nun sp 15 maxsp 15 Pow 15 Int 12 Str 10 Dex 10 Wis 16 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 1 hp 28 maxhp 28 exp 200 speed -0.10 weight 50000 level 3 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object pirate_lass editor_folder monster/humanoid/Human race human name pirate lass randomitems pirate face pir_lass.111 animation pirate_lass maxsp 9 sp 9 Int 15 Str 13 Dex 15 Pow 9 monster 1 move_type walk alive 1 ac 6 wc 10 dam 8 hp 50 maxhp 50 exp 90 speed 0.15 weight 50000 level 4 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object postman editor_folder monster/humanoid/Human/postman randomitems postman face postman.131 race human animation postman monster 1 move_type walk alive 1 ac 6 wc 12 dam 5 hp 25 maxhp 25 exp 35 speed -0.20 resist_slow -100 weight 50000 level 3 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_postman editor_folder monster/humanoid/Human/postman race human other_arch postman name mail box generator 1 face postman_gen.111 hp 80 maxhp 80 exp 80 ac 13 speed -0.08 alive 1 level 1 sp 1 maxsp 1 weight 90000 generator_limit 5 end Object priest editor_folder monster/humanoid/Human name priest race priest randomitems priest face priest.171 animation priest is_animated 0 level 1 ac 10 wc 21 dam 1 hp 50 maxhp 50 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 13 Dex 12 Con 12 Wis 13 Pow 12 Cha 12 Int 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object princess editor_folder monster/humanoid/Human name princess randomitems princess race human face princess.111 animation princess maxsp 9 sp 9 Pow 9 monster 1 move_type walk unaggressive 1 alive 1 ac 5 wc 8 dam 9 hp 30 maxhp 30 exp 20 speed 0.15 weight 50000 level 2 will_apply 2 pick_up 24 can_use_scroll 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object prisoner editor_folder monster/humanoid/Human face prisoner.111 race human animation prisoner Pow 1 monster 1 move_type walk unaggressive 1 alive 1 ac 8 wc 1 dam 2 hp 10 maxhp 10 exp 1 level 3 end Object sage editor_folder monster/humanoid/Human race human randomitems sage name sage msg @match * I'm too busy to answer your queries. endmsg face sage.151 animation sage Pow 5 Dex 5 Int 20 Str 5 sp 40 maxsp 40 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 25 dam 1 hp 18 maxhp 18 exp 0 speed 0.06 weight 50000 level 15 can_cast_spell 1 can_use_skill 1 body_skill 1 end Object sailor editor_folder monster/humanoid/Human race human name sailor randomitems pirate face sailor.111 monster 1 move_type walk unaggressive 1 random_movement 1 alive 1 ac 7 wc 8 dam 3 Str 14 Dex 16 Con 1 Int 11 hp 18 maxhp 18 exp 30 speed 0.15 weight 50000 level 4 can_use_skill 1 can_use_range 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object swashbuckler editor_folder monster/humanoid/Human name swashbuckler race swashbuckler randomitems swashbuckler face swashbuckl.171 animation swashbuckler is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 11 Dex 13 Con 11 Wis 8 Cha 11 Int 6 Pow 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object thief editor_folder monster/humanoid/Human race thief name thief randomitems thief face thief.171 animation thief is_animated 0 level 1 ac 10 wc 21 dam 1 hp 50 maxhp 50 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 10 Dex 14 Con 8 Wis 10 Cha 7 Int 11 Pow 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object viking editor_folder monster/humanoid/Human name viking race viking randomitems viking face viking.171 animation viking is_animated 0 level 1 ac 10 wc 21 dam 1 hp 50 maxhp 50 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 11 Dex 11 Con 12 Wis 9 Cha 9 Int 8 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object warrior editor_folder monster/humanoid/Human race warrior name warrior randomitems warrior face warrior.171 animation warrior is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 13 Dex 9 Con 12 Wis 10 Cha 9 Int 7 Pow 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object wizard editor_folder monster/humanoid/Human name wizard race wizard randomitems wizard face wizard.171 animation wizard is_animated 0 hp 50 maxhp 50 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 7 Dex 10 Con 7 Wis 10 Int 13 Pow 13 Cha 10 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 end Object woman editor_folder monster/humanoid/Human race human name woman randomitems man face woman.151 animation woman sp 10 maxsp 10 Pow 1 Int 12 Str 10 Dex 10 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 1 hp 18 maxhp 18 exp 20 speed -0.15 weight 50000 level 2 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object woman2 editor_folder monster/humanoid/Human race human name woman randomitems man face woman2.113 animation woman2 sp 10 maxsp 10 Pow 1 Int 12 Str 10 Dex 10 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 1 hp 18 maxhp 18 exp 20 speed -0.15 weight 50000 level 2 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object woman3 editor_folder monster/humanoid/Human race human name woman randomitems man face woman3.111 animation woman3 sp 10 maxsp 10 Pow 1 Int 12 Str 10 Dex 10 monster 1 move_type walk unaggressive 1 alive 1 ac 10 wc 15 dam 1 hp 18 maxhp 18 exp 20 speed -0.15 weight 50000 level 2 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_range 1 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object lord_e editor_folder monster/humanoid name Lord Eureca (commanded by Ghothwolte) face lord_e.111 race human animation lord_e Str 30 Dex 30 Con 1 Wis 1 Pow 1 Int 1 hp 10000 maxhp 10000 sp 400 maxsp 400 exp 10000 dam 60 wc -50 ac -25 resist_physical 50 speed 0.95 speed_left -2.000000 level 30 resist_fire 100 resist_electricity 100 resist_cold 100 attacktype 30 resist_confusion -100 resist_slow -100 resist_paralyze -100 carrying 90000 weight 50000 pick_up 24 will_apply 2 alive 1 monster 1 move_type walk undead 1 can_use_scroll 1 can_use_bow 1 can_use_ring 1 can_use_skill 1 body_finger 2 body_skill 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object madman editor_folder monster/humanoid randomitems madman face madman.111 race human animation madman monster 1 move_type walk sleep 1 Str 15 Int 3 Wis 10 Con 2 no_pick 1 alive 1 exp 30 level 3 ac 7 hp 25 maxhp 25 wc 10 dam 6 speed 0.12 weight 75000 will_apply 2 pick_up 24 can_use_scroll 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_madman editor_folder monster/humanoid race human name madman hut other_arch madman face madman_gen.111 generator 1 hp 50 maxhp 50 ac 2 exp 100 alive 1 level 1 no_pick 1 speed 0.01 maxsp 1 weight 1000000 generator_limit 5 end Object necromancer editor_folder monster/humanoid name Necromancer face necro.111 race human Str 5 Dex 5 Wis 1 Pow 5 Int 20 animation necromancer hp 1800 maxhp 3600 sp 40 maxsp 40 dam 1 wc 25 ac 10 speed 1.000000 level 15 carrying 6000 weight 50000 randomitems sage run_away 100 alive 1 monster 1 move_type walk see_invisible 1 scared 1 unaggressive 1 can_cast_spell 1 sleep 1 can_use_skill 1 body_skill 1 end Object pyro_gen editor_folder monster/humanoid race human name a bottleful of bombers other_arch pyromaniac generator 1 face pyro_gen.111 hp 1 exp 1 ac 10 speed 0.001 weight -1 alive 1 level 1 sp 130 maxsp 1 generator_limit 5 end Object pyromaniac editor_folder monster/humanoid race human name wild pyromaniac randomitems pyromaniac alive 1 monster 1 move_type walk no_pick 1 face pyromaniac.111 animation pyromaniac ac 6 wc 10 dam 8 level 6 Con 2 Pow 3 Int 5 Str 15 Dex 15 Wis 20 can_cast_spell 1 can_use_skill 1 hp 75 maxhp 75 sp 300 maxsp 1 resist_magic 100 weight 50000 speed 0.2 random_movement 1 pick_up 0 run_away 99 exp 500 body_skill 1 end Object siegfried editor_folder monster/humanoid race human name Siegfried face siegfried.111 animation siegfried Str 18 Dex 13 Pow 1 Cha 18 Int 12 hp 5000 maxhp 5000 sp 5 maxsp 5 exp 40 dam 8 wc 9 ac 1 speed 0.150000 level 30 weight 50000 randomitems warrior_1 pick_up 24 will_apply 2 alive 1 monster 1 move_type walk can_cast_spell 1 can_use_scroll 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 can_use_skill 1 can_use_range 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_skill 1 body_arm 2 body_range 1 end Object ant editor_folder monster/insect/ant face ant.111 race insect animation ant monster 1 move_type walk no_pick 1 alive 1 can_see_in_dark 1 exp 5 level 1 ac 10 hp 15 maxhp 15 wc 18 dam 1 speed 0.1 weight 1000 end Object ant_egg editor_folder monster/insect/ant face ant_egg.111 race insect other_arch ant_larvae monster 1 move_type walk no_pick 1 alive 1 exp 1 level 1 ac 20 hp 1 wc 15 maxhp 1 resist_acid 30 resist_poison 30 resist_cold -100 speed 0.001 generator 1 is_used_up 1 weight 5000 end Object generate_ant editor_folder monster/insect/ant race insect other_arch ant name ant hill face ant_gen.111 generator 1 hp 120 maxhp 120 ac 20 exp 35 alive 1 level 1 no_pick 1 speed 0.03 maxsp 1 weight 100000 generator_limit 5 end Object ant_larvae editor_folder monster/insect/ant face ant_larvae.111 race insect other_arch war_ant animation ant_larvae monster 1 move_type walk no_pick 1 alive 1 exp 1 level 1 ac 12 hp 10 maxhp 10 wc 15 dam 1 resist_physical 10 resist_cold -100 resist_acid 30 resist_poison 30 speed 0.05 generator 1 is_used_up 1 weight 5000 end Object breeder_ant editor_folder monster/insect/ant face breeder_ant.x11 animation breeder_ant name Queen Ant race insect other_arch ant_egg monster 1 move_type walk no_pick 1 alive 1 Con 20 exp 4000 level 10 ac 6 hp 200 maxhp 200 wc 9 dam 30 resist_physical 30 resist_cold -100 resist_poison 100 resist_acid 30 attacktype 1025 attack_movement 7 generator 1 speed -0.1 weight 300000 end More Object breeder_ant_2 editor_folder monster/insect/ant face breeder_ant.x11 animation breeder_ant name Queen Ant monster 1 move_type walk move_block all no_pick 1 alive 1 x 1 weight 300000 end Object fly_ant editor_folder monster/insect/ant face fly_ant.131 race insect animation fly_ant monster 1 move_type walk fly_low sleep 1 Wis 6 alive 1 no_pick 1 ac 15 hp 25 maxhp 25 wc 10 level 3 dam 4 speed -0.3 exp 30 weight 7 end Object guard_ant editor_folder monster/insect/ant face war_ant.131 race insect name Guardian Ant animation war_ant Wis 5 Con 10 monster 1 move_type walk sleep 1 alive 1 no_pick 1 exp 250 level 10 ac -2 hp 100 maxhp 100 wc -5 dam 25 resist_physical 50 resist_poison 100 resist_acid 30 resist_cold -100 speed -0.2 stand_still 1 unaggressive 1 weight 15000 end Object spit_ant editor_folder monster/insect/ant randomitems spit_ant face spit_ant.131 race insect name Spitting Ant animation spit_ant monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 4000 level 10 Con 15 Wis 10 ac 5 wc 5 hp 150 maxhp 150 resist_physical 45 attacktype 1025 attack_movement 7 run_away 50 resist_acid 100 resist_poison 100 resist_cold -100 can_use_bow 1 dam 15 speed -0.18 weight 15000 body_arm 2 end Object war_ant editor_folder monster/insect/ant face war_ant.131 name Warrior Ant race insect animation war_ant monster 1 move_type walk sleep 1 no_pick 1 alive 1 exp 1500 level 8 Con 10 Wis 10 hp 100 maxhp 100 resist_physical 45 attacktype 1025 resist_poison 100 resist_acid 30 resist_cold -100 ac 5 wc 10 dam 15 speed -0.2 weight 15000 end Object work_ant editor_folder monster/insect/ant face work_ant.131 name Worker Ant race insect animation work_ant monster 1 move_type walk no_pick 1 Con 10 alive 1 exp 30 level 3 ac 8 hp 35 maxhp 35 resist_physical 20 resist_acid 30 resist_poison 30 resist_cold -100 wc 9 dam 5 speed 0.1 weight 5000 end Object bee editor_folder monster/insect/bee race insect face bee.111 animation bee monster 1 move_type walk fly_low sleep 1 Wis 10 no_pick 1 alive 1 can_see_in_dark 1 speed 0.2 exp 5 wc 15 dam 1 ac 4 level 1 weight 20 resist_physical 30 end Object generate_bee editor_folder monster/insect/bee name bee tree race insect other_arch bee generator 1 face bee_gen.111 hp 20 maxhp 20 ac 4 exp 20 alive 1 level 1 no_pick 1 speed 0.02 maxsp 1 weight 10000 generator_limit 5 end Object beehive editor_folder monster/insect/bee race insect other_arch killer_bee name beehive face beehive.111 generator 1 sp 136 maxsp 1 speed -0.1 weight -1 animation beehive alive 1 level 1 exp 50 ac 12 hp 30 maxhp 30 generator_limit 5 end Object killer_bee editor_folder monster/insect/bee name killer bee race insect face killerbee.111 speed -0.25 weight -1 no_pick 1 animation killer_bee monster 1 move_type walk fly_low sleep 1 can_see_in_dark 1 Wis 10 alive 1 exp 90 ac 10 wc 13 dam 10 hp 35 maxhp 35 Con 1 run_away 75 level 4 end Object centipede editor_folder monster/insect/centipede name large centipede race insect other_arch centipede face centipede.111 speed -0.1 generator 1 sp 135 maxsp 60 no_pick 1 animation centipede monster 1 move_type walk sleep 1 Wis 5 can_see_in_dark 1 alive 1 exp 35 ac 10 wc 8 dam 6 hp 25 maxhp 25 Con 1 level 3 weight 5000 end Object centipede_r editor_folder monster/insect/centipede name giant centipede race insect other_arch centipede_r face centipede_r.111 speed -0.1 generator 1 sp 135 maxsp 60 no_pick 1 animation centipede_r monster 1 move_type walk sleep 1 Wis 5 can_see_in_dark 1 alive 1 exp 65 ac 10 wc 11 dam 10 hp 50 maxhp 50 Con 1 level 4 weight 5000 end Object spider editor_folder monster/insect/spider face spider.111 race insect animation spider monster 1 move_type walk sleep 1 can_see_in_dark 1 Wis 8 no_pick 1 alive 1 exp 40 ac 8 wc 17 dam 5 hp 25 maxhp 25 level 3 speed 0.4 end Object spider_gen editor_folder monster/insect/spider race insect name spider web other_arch spider generator 1 face spider_web.111 animation spider_gen hp 20 exp 80 ac 10 speed 0.01 weight -1 alive 1 level 1 sp 130 maxsp 1 generator_limit 5 end Object xan editor_folder monster/insect/xan name xan race insect randomitems xan face xan.111 animation xan monster 1 move_type walk fly_low sleep 1 can_see_in_dark 1 Wis 6 alive 1 is_turnable 1 no_pick 1 ac 15 hp 25 maxhp 25 wc 1 level 3 dam 1 attacktype 1025 speed 0.5 exp 35 weight 7 end Object generate_xan editor_folder monster/insect/xan race insect other_arch xan name Mosquito eggs generator 1 alive 1 level 1 no_pick 1 face xan_gen.111 hp 30 maxhp 30 ac 6 exp 40 speed 0.1 weight 750000 generator_limit 5 end Object baslic editor_folder monster/misc/Baslic name basilisk randomitems chinese race unnatural face baslic.x31 animation baslic monster 1 move_type walk sleep 1 Wis 20 level 29 Str 10 Con 5 Pow 5 maxsp 20 hp 1200 maxhp 1200 resist_physical 40 resist_cold 100 resist_fear 100 resist_fire -100 resist_magic 50 resist_blind 100 ac -4 wc -15 dam 10 attacktype 4194305 exp 40000 see_invisible 1 alive 1 no_pick 1 speed -0.2 weight 2000000 run_away 4 end More Object baslic_2 editor_folder monster/misc/Baslic name baslic face baslic.x31 animation baslic alive 1 x 1 end More Object baslic_3 editor_folder monster/misc/Baslic name baslic face baslic.x31 animation baslic alive 1 x 2 end More Object baslic_4 editor_folder monster/misc/Baslic name baslic face baslic.x31 animation baslic alive 1 y 1 end More Object baslic_5 editor_folder monster/misc/Baslic name baslic face baslic.x31 animation baslic alive 1 y 1 x 1 end More Object baslic_6 editor_folder monster/misc/Baslic name baslic face baslic.x31 animation baslic alive 1 y 1 x 2 end Object chess_knight editor_folder monster/misc/Chess race chess name knight randomitems chess face ch_knight.111 sp 10 maxsp 10 Pow 10 monster 1 move_type walk alive 1 ac 7 wc 12 dam 6 hp 35 maxhp 35 exp 80 speed 0.35 weight 50000 level 4 will_apply 2 pick_up 24 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object chess_queen editor_folder monster/misc/Chess race chess name queen randomitems chess face ch_queen.111 sp 15 maxsp 15 Pow 15 monster 1 move_type walk alive 1 ac 5 wc 10 dam 5 hp 65 maxhp 65 exp 500 speed 0.45 weight 50000 level 6 will_apply 2 pick_up 24 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object chess_bishop editor_folder monster/misc/Chess race chess name bishop randomitems chess face ch_bish.111 sp 10 maxsp 10 Pow 10 monster 1 move_type walk alive 1 ac 7 wc 10 dam 5 hp 35 maxhp 35 exp 65 speed 0.25 weight 50000 level 4 will_apply 2 pick_up 24 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object chess_figure editor_folder monster/misc/Chess face ch_pawn_w.111 nrof 1 material 16 weight 500 end Object chess_king editor_folder monster/misc/Chess race chess name king randomitems chess face ch_king.111 sp 10 maxsp 10 Pow 10 monster 1 move_type walk alive 1 ac 5 wc 10 dam 4 hp 40 maxhp 40 exp 70 speed 0.25 weight 50000 level 4 will_apply 2 pick_up 24 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object chess_pawn editor_folder monster/misc/Chess race chess name pawn randomitems chess face ch_pawn.111 sp 10 maxsp 10 Pow 1 monster 1 move_type walk alive 1 ac 5 wc 17 dam 4 hp 10 maxhp 10 exp 20 speed 0.25 weight 50000 level 2 will_apply 2 pick_up 24 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object chess_rook editor_folder monster/misc/Chess race chess name rook randomitems chess face ch_rook.111 sp 10 maxsp 10 Pow 8 monster 1 move_type walk alive 1 ac 6 wc 11 dam 9 hp 50 maxhp 50 exp 150 speed 0.25 weight 50000 level 5 will_apply 2 pick_up 24 can_cast_spell 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object ent editor_folder monster/misc/Ent randomitems giant race faerie face ent.x11 animation ent msg @match * Hey! Careful of my roots, stranger. endmsg unaggressive 1 resist_fire -50 resist_cold 50 resist_electricity 50 exp 16000 ac -1 wc -1 dam 25 can_see_in_dark 1 hp 1500 Con 10 maxhp 1500 alive 1 speed -0.3 weight 3000000 monster 1 move_type walk sleep 1 Wis 15 level 12 run_away 3 can_use_weapon 1 body_arm 2 end More Object ent_2 editor_folder monster/misc/Ent name ent face ent.x11 animation ent monster 1 move_type walk alive 1 x 1 weight 3000000 end More Object ent_3 editor_folder monster/misc/Ent name ent face ent.x11 animation ent monster 1 move_type walk alive 1 y 1 weight 3000000 end More Object ent_4 editor_folder monster/misc/Ent name ent face ent.x11 animation ent monster 1 move_type walk alive 1 x 1 y 1 weight 3000000 end Object golem_necro editor_folder monster/misc/Ngolem race unnatural name golem of Necromancer face gol.x11 animation golem_necro speed -0.4 Str 60 Dex 25 Con 20 Wis 20 Pow 15 Int 15 hp 10000 maxhp 10000 maxsp 30 exp 100000 dam 50 wc -20 ac -20 level 50 resist_electricity 100 resist_fear 100 resist_magic 50 weight 1500000 randomitems titan run_away 1 pick_up 24 will_apply 2 alive 1 no_pick 1 monster 1 move_type walk see_invisible 1 can_cast_spell 1 can_use_scroll 1 can_use_bow 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 sleep 1 can_use_range 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object golem_necro_2 editor_folder monster/misc/Ngolem name golem of Necromancer face gol.x11 animation golem_necro monster 1 move_type walk alive 1 x 1 end More Object golem_necro_3 editor_folder monster/misc/Ngolem name golem of Necromancer face gol.x11 animation golem_necro monster 1 move_type walk alive 1 y 1 end More Object golem_necro_4 editor_folder monster/misc/Ngolem name golem of Necromancer face gol.x11 animation golem_necro monster 1 move_type walk alive 1 x 1 y 1 end More Object golem_necro_5 editor_folder monster/misc/Ngolem name golem of Necromancer face gol.x11 animation golem_necro monster 1 move_type walk alive 1 y 2 end More Object golem_necro_6 editor_folder monster/misc/Ngolem name golem of Necromancer face gol.x11 animation golem_necro monster 1 move_type walk alive 1 x 1 y 2 end Object unicorn editor_folder monster/misc/Unicorn name unicorn randomitems unicorn race faerie monster 1 move_type walk sleep 1 Wis 18 face unicorn.x31 animation unicorn level 6 Con 8 Pow 15 can_cast_spell 1 maxsp 50 sp 50 hp 200 maxhp 200 resist_magic 100 resist_acid 100 resist_poison 100 resist_paralyze 100 resist_fear 100 attacktype 1 unaggressive 1 ac 4 wc 4 dam 20 exp 2000 see_invisible 1 alive 1 no_pick 1 speed -0.07 weight 800000 run_away 5 end More Object unicorn_2 editor_folder monster/misc/Unicorn name unicorn face unicorn.x31 animation unicorn monster 1 move_type walk x 1 alive 1 no_pick 1 weight 800000 end Object blob editor_folder monster/misc race slime face blob.111 animation blob monster 1 move_type walk sleep 1 Wis 5 no_pick 1 alive 1 exp 1 ac 4 wc 1 dam 0 hp 40 maxhp 40 level 1 speed 1.0 weight 50000 run_away 100 pick_up 64 attacktype 1 end Object broo editor_folder monster/misc face broo.111 randomitems broo animation broo monster 1 move_type walk no_pick 1 alive 1 exp 1400 level 7 ac 4 hp 100 maxhp 100 Con 15 Str 15 Int 10 Dex 12 wc 10 dam 10 speed -0.21 attacktype 1025 resist_poison 100 resist_fear 100 resist_chaos 100 resist_confusion -100 weight 75000 can_use_skill 1 can_use_scroll 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object c_knight editor_folder monster/misc name Chaos Knight randomitems c_knight face c_knight.111 animation c_knight monster 1 move_type walk Wis 10 no_pick 1 alive 1 exp 4000 level 10 ac 4 hp 200 maxhp 200 Str 25 Con 10 Dex 20 Int 17 wc 5 dam 12 resist_physical 30 speed 0.15 attacktype 1025 resist_magic 50 resist_fear 100 resist_chaos 100 weight 75000 can_use_skill 1 can_use_scroll 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object c_minor_priest editor_folder monster/misc name Minor Chaos Priest randomitems c_m_priest face c_priest.131 animation c_minor_priest monster 1 move_type walk Wis 10 Str 10 Int 20 Dex 10 Pow 5 maxsp 40 sp 40 no_pick 1 alive 1 exp 1500 level 8 ac 5 hp 100 maxhp 100 Con 10 wc 10 dam 15 speed 0.15 resist_magic 50 resist_confusion -100 resist_weaponmagic -100 resist_godpower -100 resist_chaos 100 weight 75000 attack_movement 7 can_use_skill 1 can_cast_spell 1 can_use_scroll 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object c_priest editor_folder monster/misc name Chaos Priest randomitems c_priest face c_priest.131 animation c_priest monster 1 move_type walk Wis 10 Int 23 Pow 25 Dex 13 Str 13 maxsp 200 sp 200 no_pick 1 alive 1 exp 8000 level 12 ac 5 hp 250 maxhp 250 Con 10 wc 8 dam 16 speed 0.25 resist_physical 30 resist_magic 30 resist_confusion -100 resist_weaponmagic -100 resist_godpower -100 resist_fear 100 resist_chaos 100 weight 75000 attacktype 1025 attack_movement 7 can_cast_spell 1 can_use_skill 1 can_use_scroll 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object crawling_chaos editor_folder monster/misc/crawl name crawling chaos face crawling_chaos.111 animation crawling_chaos alive 1 exp 4500 ac 3 level 10 hp 200 maxhp 200 Con 15 Wis 5 wc 14 dam 20 speed -0.25 attacktype 1089 resist_poison 100 resist_fear 100 resist_chaos 100 resist_blind 100 resist_electricity -100 resist_confusion -100 weight 750000 monster 1 move_type walk no_pick 1 end Object dancingsword editor_folder monster/misc name dancing sword face dancingsword.111 animation dancingsword monster 1 move_type walk fly_low Str 15 Dex 20 Con 1 Int 3 Wis 3 Pow 0 Cha 0 see_invisible 1 no_pick 1 weight 15000 alive 1 exp 6000 level 10 ac 2 hp 100 maxhp 100 wc 5 dam 20 speed -0.3 resist_physical 25 attacktype 256 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_drain 100 resist_ghosthit 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_death 100 resist_blind 100 resist_fire 30 end Object deathtree editor_folder monster/misc name tree race faerie stand_still 1 face deathtree.111 animation deathtree speed -0.4 alive 1 monster 1 move_type walk no_pick 1 resist_magic 100 hp 300 maxhp 300 Con 3 exp 10000 wc 0 ac 10 dam 15 level 13 weight 1000000 end Object firechest editor_folder monster/misc other_arch spell_small_fireball type 62 face firechest.111 speed -0.02 hp 250 maxhp 250 ac 3 weight 30 alive 1 level 1 no_pick 1 resist_fire 100 sp 0 end Object gargolye editor_folder monster/misc randomitems gargoyle face gargoyle.111 animation gargolye monster 1 move_type walk fly_low Str 30 Wis 15 Con 10 see_invisible 1 no_pick 1 weight 100000 alive 1 exp 4000 level 10 ac 3 hp 200 maxhp 200 wc 9 dam 20 speed -0.1 resist_physical 50 resist_magic 100 resist_acid 100 resist_poison 100 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 end Object lamia editor_folder monster/misc/lamia randomitems lamia face lamia.x31 animation lamia race faerie monster 1 move_type walk sleep 1 level 30 Con 36 Int 30 Wis 25 Dex 30 Str 28 Pow 19 can_cast_spell 1 maxsp 50 sp 50 resist_physical 50 resist_magic 50 resist_acid 100 resist_poison 100 resist_fear 100 resist_chaos 100 attacktype 65 see_invisible 1 exp 100000 ac -10 wc -10 dam 20 hp 3000 maxhp 3000 alive 1 no_pick 1 speed -0.30 weight 100000 run_away 5 can_use_skill 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_bow 1 can_use_range 1 can_use_ring 1 can_use_scroll 1 body_skill 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end More Object lamia_2 editor_folder monster/misc/lamia face lamia.x31 animation lamia monster 1 move_type walk alive 1 no_pick 1 x 1 weight 100000 end Object lokanth editor_folder monster/misc/lokanth randomitems lokanth face lokanth.131 race chaos animation lokanth monster 1 move_type walk Wis 10 Int 12 Con 5 Dex 13 Str 20 maxsp 50 sp 50 no_pick 1 alive 1 exp 9000 level 12 ac 3 hp 250 maxhp 250 wc 9 dam 20 speed -0.2 resist_physical 50 resist_magic 50 resist_confusion -100 resist_weaponmagic -100 resist_godpower -100 resist_fear 100 resist_chaos 100 resist_acid 100 resist_poison 100 weight 85000 attacktype 1025 can_cast_spell 1 can_use_skill 1 body_skill 1 end Object mudman editor_folder monster/misc name Mudman race earth_elemental face mudman.111 animation mudman monster 1 move_type walk Str 12 Dex 15 Con 20 Pow 20 Wis 15 no_pick 1 alive 1 exp 50000 ac -2 wc -10 dam 20 hp 1000 maxhp 1000 sp 150 maxsp 150 attacktype 7169 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_cold 50 resist_acid 50 level 29 speed 0.1 weight 100000 run_away 10 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_cast_spell 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 randomitems skill_use_magic_item end Object pixie editor_folder monster/misc race faerie randomitems pixie face pixie.111 animation pixie monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 weight 10000 alive 1 exp 25 level 2 ac 6 hp 20 maxhp 20 sp 2 maxsp 2 Pow 1 wc 15 dam 1 speed -0.2 run_away 15 can_cast_spell 1 can_use_range 1 pick_up 1 attack_movement 3 body_range 1 end Object generate_pixie editor_folder monster/misc race faerie other_arch pixie name pixie generator face pixie_gen.111 generator 1 hp 60 maxhp 60 ac 10 exp 20 alive 1 level 1 no_pick 1 speed -0.003 maxsp 1 weight 1000 generator_limit 5 end Object quaathu editor_folder monster/misc/quaathu name Quaathu randomitems big_wizard race starspawn face quaathu.x11 animation quaathu Str 30 Int 100 Dex 30 Con 30 Pow 30 Wis 30 see_invisible 1 can_see_in_dark 1 can_cast_spell 1 sp 1000 maxsp 1000 hp 15000 maxhp 15000 exp 1000000 ac -25 dam 100 wc -40 weight 10000000 attacktype 147457 resist_physical 75 resist_magic 75 resist_fire 75 resist_electricity 75 resist_cold 75 resist_confusion 100 resist_acid 75 resist_drain 100 resist_weaponmagic 70 resist_ghosthit 70 resist_poison 70 resist_slow 100 resist_paralyze 100 resist_fear 100 resist_depletion 100 resist_death 100 resist_chaos 70 resist_blind 100 resist_holyword 100 resist_godpower 70 level 80 speed -0.5 alive 1 monster 1 move_type walk sleep 1 will_apply 12 run_away 5 no_pick 1 end More Object quaathu_1 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 1 y 0 alive 1 end More Object quaathu_2 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 2 y 0 alive 1 end More Object quaathu_3 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 3 y 0 alive 1 end More Object quaathu_4 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 4 y 0 alive 1 end More Object quaathu_5 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 5 y 0 alive 1 end More Object quaathu_6 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 6 y 0 alive 1 end More Object quaathu_7 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 0 y 1 alive 1 end More Object quaathu_8 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 1 y 1 alive 1 end More Object quaathu_9 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 2 y 1 alive 1 end More Object quaathu_10 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 3 y 1 alive 1 end More Object quaathu_11 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 4 y 1 alive 1 end More Object quaathu_12 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 5 y 1 alive 1 end More Object quaathu_13 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 6 y 1 alive 1 end More Object quaathu_14 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 0 y 2 alive 1 end More Object quaathu_15 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 1 y 2 alive 1 end More Object quaathu_16 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 2 y 2 alive 1 end More Object quaathu_17 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 3 y 2 alive 1 end More Object quaathu_18 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 4 y 2 alive 1 end More Object quaathu_19 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 5 y 2 alive 1 end More Object quaathu_20 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 6 y 2 alive 1 end More Object quaathu_21 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 0 y 3 alive 1 end More Object quaathu_22 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 1 y 3 alive 1 end More Object quaathu_23 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 2 y 3 alive 1 end More Object quaathu_24 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 3 y 3 alive 1 end More Object quaathu_25 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 4 y 3 alive 1 end More Object quaathu_26 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 5 y 3 alive 1 end More Object quaathu_27 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 6 y 3 alive 1 end More Object quaathu_28 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 0 y 4 alive 1 end More Object quaathu_29 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 1 y 4 alive 1 end More Object quaathu_30 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 2 y 4 alive 1 end More Object quaathu_31 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 3 y 4 alive 1 end More Object quaathu_32 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 4 y 4 alive 1 end More Object quaathu_33 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 5 y 4 alive 1 end More Object quaathu_34 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 6 y 4 alive 1 end More Object quaathu_35 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 0 y 5 alive 1 end More Object quaathu_36 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 1 y 5 alive 1 end More Object quaathu_37 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 2 y 5 alive 1 end More Object quaathu_38 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 3 y 5 alive 1 end More Object quaathu_39 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 4 y 5 alive 1 end More Object quaathu_40 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 5 y 5 alive 1 end More Object quaathu_41 editor_folder monster/misc/quaathu name Quaathu face quaathu.x11 animation quaathu x 6 y 5 alive 1 end Object sandy editor_folder monster/misc name sandy race faerie face sandy.111 animation sandy monster 1 move_type walk alive 1 ac 5 wc 8 dam 50 hp 150 maxhp 150 speed -0.08 exp 2500 weight 100000 level 8 resist_cold 100 attacktype 16 resist_fire -100 end Object serp_man editor_folder monster/misc/serpmen race reptile name Serpentman face serp_man.131 randomitems serp_man animation serp_man monster 1 move_type walk no_pick 1 alive 1 exp 125 level 5 ac 4 hp 50 maxhp 50 Con 3 Str 13 Dex 20 Int 12 wc 10 dam 9 speed -0.15 resist_cold -100 resist_fire 30 resist_electricity 30 resist_acid 30 resist_poison 30 resist_chaos 30 weight 75000 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object serp_priest editor_folder monster/misc/serpmen race reptile name Serpentman Priest face serp_priest.131 randomitems serp_priest animation serp_priest monster 1 move_type walk no_pick 1 alive 1 exp 4000 level 10 ac 2 hp 100 maxhp 100 Con 5 Int 25 Pow 24 Str 12 Dex 20 sp 50 maxsp 50 wc 5 dam 16 speed 0.15 see_invisible 1 attacktype 1025 resist_physical 30 resist_magic 30 resist_fire 30 resist_cold -100 resist_electricity 100 resist_acid 100 resist_poison 100 resist_chaos 100 weight 75000 can_cast_spell 1 can_use_skill 1 can_use_bow 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 body_skill 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_serp_man editor_folder monster/misc/serpmen race reptile other_arch serp_man name serpent man generator generator 1 face serpman_gen.111 hp 100 maxhp 100 exp 250 ac 10 speed -0.05 resist_magic 100 alive 1 level 1 sp 1 maxsp 1 weight 90000 generator_limit 5 end Object sphinx editor_folder monster/misc name sphinx face sphinx.x31 animation sphinx randomitems sphinx race unnatural monster 1 move_type walk sleep 1 Wis 20 msg @match * I don't know any riddles right now....GO AWAY!!!! endmsg level 8 Con 8 Pow 2 unaggressive 1 can_cast_spell 1 maxsp 10 hp 300 maxhp 300 resist_fire 100 resist_fear 100 attacktype 1 ac 2 wc 2 dam 25 exp 4001 see_invisible 1 alive 1 no_pick 1 speed -0.07 weight 8000000 run_away 6 end More Object sphinx_2 editor_folder monster/misc name sphinx face sphinx.x31 animation sphinx monster 1 move_type walk x 1 alive 1 no_pick 1 end Object stalker editor_folder monster/misc race faerie face stalker.111 animation stalker monster 1 move_type walk fly_low sleep 1 Wis 15 see_invisible 1 no_pick 1 alive 1 exp 1500 level 8 ac 4 hp 75 Con 1 maxhp 75 wc 10 dam 5 speed -0.4 resist_electricity 50 run_away 25 attack_movement 3 end Object generate_stalker editor_folder monster/misc race faerie name stalker generator other_arch stalker face stalkergen.111 generator 1 hp 150 maxhp 150 ac 1 exp 400 alive 1 no_pick 1 speed -0.002 maxsp 1 move_type fly_low level 5 generator_limit 5 end Object tentacle editor_folder monster/misc/tentacle name leathery tentacle race animal face tentacle.113 animation tentacle anim_speed 6 randomitems tentacle monster 1 move_type walk sleep 1 alive 1 see_invisible 1 can_see_in_dark 1 exp 4000 level 10 ac 4 wc 10 dam 20 attacktype 17 hp 120 maxhp 120 Con 3 Wis 3 speed -0.2 attack_movement 5 run_away 20 weight 300000 pick_up 64 resist_cold 40 resist_poison 100 resist_physical 25 resist_acid 30 resist_blind 90 end Object tentacle2 editor_folder monster/misc/tentacle name spotted tentacle race animal face tentacle2.113 animation tentacle2 anim_speed 5 randomitems tentacle monster 1 move_type walk sleep 1 alive 1 see_invisible 1 can_see_in_dark 1 exp 16000 level 16 ac 1 wc 7 dam 25 attacktype 1093 hp 250 maxhp 250 Con 4 Wis 3 speed -0.25 attack_movement 5 weight 300000 pick_up 64 resist_fire 20 resist_cold 5 resist_electricity -10 resist_poison 100 resist_physical 20 resist_acid 90 resist_blind 90 end Object tentacle_hook editor_folder monster/misc/tentacle name tentacle's hook name_pl tentacle's hooks face tentaclehook.111 type 79 material 32 weight 2 value 5 end Object gaelotroll editor_folder monster/troll/Gaelotroll randomitems giant race troll face gaelotroll.x31 animation gaelotroll resist_fire -100 resist_physical 50 resist_fear 50 attacktype 65 can_see_in_dark 1 exp 70000 ac -7 wc -50 dam 25 hp 3000 Str 55 Dex 25 Int 10 Con 20 maxhp 3000 level 50 speed -0.2 weight 3000000 monster 1 move_type walk sleep 1 Wis 13 alive 1 run_away 3 pick_up 1 can_use_weapon 1 can_use_skill 1 body_skill 1 will_apply 12 body_arm 2 end More Object gaelotroll_2 editor_folder monster/troll/Gaelotroll name troll face gaelotroll.x31 animation gaelotroll monster 1 move_type walk alive 1 x 1 end More Object gaelotroll_3 editor_folder monster/troll/Gaelotroll name troll face gaelotroll.x31 animation gaelotroll monster 1 move_type walk alive 1 y 1 end More Object gaelotroll_4 editor_folder monster/troll/Gaelotroll name troll face gaelotroll.x31 animation gaelotroll monster 1 move_type walk alive 1 x 1 y 1 end More Object gaelotroll_5 editor_folder monster/troll/Gaelotroll name troll face gaelotroll.x31 animation gaelotroll monster 1 move_type walk alive 1 y 2 end More Object gaelotroll_6 editor_folder monster/troll/Gaelotroll name troll face gaelotroll.x31 animation gaelotroll monster 1 move_type walk alive 1 x 1 y 2 end Object troll editor_folder monster/troll/Troll randomitems giant race troll face troll.x11 animation troll resist_fire -100 resist_fear 50 can_see_in_dark 1 exp 10000 ac 2 wc 9 dam 15 hp 250 maxhp 250 Str 40 Int 8 Dex 15 Con 10 Wis 13 level 12 speed -0.3 weight 500000 monster 1 move_type walk sleep 1 alive 1 run_away 3 pick_up 1 can_use_weapon 1 can_use_skill 1 body_skill 1 will_apply 12 body_arm 2 end More Object troll_2 editor_folder monster/troll/Troll name troll face troll.x11 animation troll monster 1 move_type walk alive 1 x 1 end More Object troll_3 editor_folder monster/troll/Troll name troll face troll.x11 animation troll monster 1 move_type walk alive 1 y 1 end More Object troll_4 editor_folder monster/troll/Troll name troll face troll.x11 animation troll monster 1 move_type walk alive 1 x 1 y 1 end Object armour_troll2 editor_folder monster/troll randomitems troll race troll name small armoured troll face armourtroll2.111 animation armour_troll2 monster 1 move_type walk sleep 1 Wis 10 Int 5 Str 20 Dex 18 no_pick 1 alive 1 resist_fire -100 can_see_in_dark 1 exp 1500 ac 3 wc 7 dam 12 hp 150 Con 5 maxhp 150 level 8 speed 0.12 weight 100000 run_away 5 will_apply 12 pick_up 8 can_use_ring 1 can_use_weapon 1 can_use_skill 1 body_finger 2 body_skill 1 body_arm 2 end Object armour_troll3 editor_folder monster/troll randomitems troll race troll name small armoured troll face armourtroll3.111 monster 1 move_type walk sleep 1 Wis 10 Int 5 Str 21 Dex 18 no_pick 1 alive 1 resist_fire -100 can_see_in_dark 1 exp 1500 ac 3 wc 7 dam 14 hp 150 Con 5 maxhp 150 level 8 speed 0.12 weight 100000 run_away 5 will_apply 12 pick_up 8 can_use_ring 1 can_use_weapon 1 can_use_skill 1 body_finger 2 body_skill 1 body_arm 2 end Object armour_troll4 editor_folder monster/troll randomitems troll race troll name small armoured troll face armourtroll4.111 monster 1 move_type walk sleep 1 Wis 10 Int 5 Str 22 Dex 18 no_pick 1 alive 1 resist_fire -100 can_see_in_dark 1 exp 2000 ac 3 wc 7 dam 16 hp 150 Con 5 maxhp 150 level 8 speed 0.12 weight 100000 run_away 5 will_apply 12 pick_up 8 can_use_ring 1 can_use_weapon 1 can_use_skill 1 body_finger 2 body_skill 1 body_arm 2 end Object small_troll editor_folder monster/troll randomitems troll race troll name small troll face smalltroll.111 animation small_troll monster 1 move_type walk sleep 1 Wis 10 Int 5 Str 20 Dex 18 no_pick 1 alive 1 resist_fire -100 can_see_in_dark 1 exp 1200 ac 6 wc 6 dam 15 hp 90 Con 5 maxhp 90 level 7 speed 0.2 weight 100000 run_away 5 will_apply 12 pick_up 8 can_use_ring 1 can_use_weapon 1 can_use_skill 1 body_finger 2 body_skill 1 body_arm 2 end Object skeletalmage editor_folder monster/undead/Skeletal_mage randomitems skeletalmage name Skeletal Mage race undead face skeletalmage.111 animation skeletalmage monster 1 move_type walk sleep 1 Wis 14 Pow 5 undead 1 no_pick 1 alive 1 ac 4 wc 10 dam 10 sp 20 maxsp 20 hp 80 maxhp 80 Str 15 Int 3 Con 2 can_cast_spell 1 level 7 speed 0.2 exp 1000 weight 14000 attacktype 17 resist_fire -20 resist_cold 85 resist_fear 100 resist_paralyze 50 resist_poison 100 resist_magic 10 resist_blind 70 will_apply 2 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_ring 1 can_see_in_dark 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 1 body_wrist 1 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object banshee editor_folder monster/undead race undead name Banshee randomitems banshee face banshee.111 animation banshee monster 1 move_type walk sleep 1 alive 1 Wis 17 Pow 35 undead 1 dam 15 hp 350 maxhp 350 level 15 resist_physical 50 resist_magic 50 resist_blind 90 wc 5 ac 3 no_pick 1 invisible 1 see_invisible 1 maxsp 60 will_apply 2 pick_up 24 can_cast_spell 1 speed -0.25 attacktype 17 exp 15000 body_finger 2 body_range 1 end Object dave editor_folder monster/undead name Dave race undead face dave.111 animation dave Str 100 Dex 100 Con 100 Wis 100 Pow 100 Int 100 hp 30000 maxhp 30000 maxsp 40 exp 100000 dam 200 wc -100 ac -25 speed 0.150000 level 50 resist_physical 50 resist_magic 50 attacktype 4225 randomitems lich pick_up 24 will_apply 2 alive 1 no_pick 1 monster 1 move_type walk see_invisible 1 undead 1 can_cast_spell 1 can_use_scroll 1 can_use_ring 1 sleep 1 body_finger 2 body_range 1 end Object deathshead editor_folder monster/undead name Death's Head randomitems deathshead race undead face deathshead.111 animation deathshead monster 1 move_type walk fly_low sleep 1 Wis 40 Pow 100 Con 100 no_pick 1 alive 1 undead 1 exp 400000 level 130 attacktype 17 resist_godpower 80 resist_weaponmagic 80 resist_physical 75 resist_chaos 100 resist_magic 100 resist_cold 100 resist_poison 100 resist_electricity 90 resist_fire 100 resist_acid 90 resist_paralyze 100 resist_fear 100 resist_blind 100 resist_confusion 100 resist_ghosthit 100 resist_deplete 100 resist_death 100 resist_drain 100 resist_slow 100 resist_cancellation 65 resist_counterspell 65 ac -25 wc -70 maxsp 10000 sp 10000 hp 22000 maxhp 22000 dam 400 speed 0.5 weight 1500 can_cast_spell 1 can_see_in_dark 1 attack_movement 1 glow_radius -5 end Object demilich editor_folder monster/undead name demilich race undead randomitems demilich face demilich.111 animation demilich attacktype 65552 speed 0.25 anim_speed 5 alive 1 monster 1 move_type walk unaggressive 1 random_movement 1 can_cast_spell 1 Str 10 Wis 20 Pow 80 see_invisible 1 no_pick 1 resist_physical 50 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_fear 100 resist_blind 100 sp 100 maxsp 100 hp 1000 maxhp 1000 wc -3 ac -15 exp 90000 dam 20 level 31 weight 150000 undead 1 end Object ghast editor_folder monster/undead randomitems standard race undead face ghast.111 animation ghast monster 1 move_type walk sleep 1 Wis 14 undead 1 no_pick 1 alive 1 ac 2 wc 10 dam 20 hp 100 maxhp 100 Con 5 level 8 speed 0.15 exp 1500 weight 5000 attacktype 4095 resist_fire 50 resist_cold 50 resist_fear 100 resist_blind 60 will_apply 2 pick_up 24 can_see_in_dark 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_ring 1 one_hit 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 end Object ghost editor_folder monster/undead race undead face ghost.111 randomitems ghost animation ghost monster 1 move_type walk fly_low sleep 1 Wis 10 no_pick 1 alive 1 exp 50 level 3 ac 10 hp 25 maxhp 25 wc 15 dam 14 speed 0.14 attacktype 528 weight 500 resist_cold 50 resist_fear 100 resist_blind 30 undead 1 can_see_in_dark 1 one_hit 1 end Object generate_ghost editor_folder monster/undead race undead other_arch ghost name ghost generator generator 1 face ghost_gen.111 speed 0.01 exp 70 alive 1 level 1 no_pick 1 ac 5 maxsp 1 weight 25000 resist_cold 50 undead 1 generator_limit 5 end Object grimreaper editor_folder monster/undead race undead randomitems ring face grimreaper.111 animation grimreaper hp 50 maxhp 50 Con 1 exp 800 dam 10 wc 9 ac 7 speed 0.3 level 6 type 28 resist_physical 100 resist_drain 100 resist_fear 100 resist_magic -100 resist_cold 50 resist_blind 70 attacktype 128 alive 1 monster 1 move_type walk fly_low sleep 1 Wis 15 undead 1 weight 50000 no_pick 1 run_away 15 can_see_in_dark 1 end Object lich editor_folder monster/undead name Lich race undead randomitems lich face lich.111 animation lich monster 1 move_type walk sleep 1 Wis 17 Pow 43 undead 1 hp 1000 maxhp 1000 level 25 resist_physical 50 resist_magic 50 resist_blind 90 dam 20 see_invisible 1 wc -3 ac -1 no_pick 1 alive 1 maxsp 40 will_apply 2 pick_up 24 can_use_scroll 1 can_cast_spell 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_ring 1 speed 0.15 attacktype 4225 exp 40000 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 body_range 1 end Object nazgul editor_folder monster/undead race undead randomitems ring face nazgul.111 animation nazgul hp 200 maxhp 200 Con 10 exp 12000 dam 10 wc 8 ac 4 speed 0.8 attack_movement 5 level 13 type 28 resist_physical 100 resist_drain 100 resist_fear 100 resist_magic 50 resist_cold 50 resist_blind 90 attacktype 160 carrying 100 alive 1 monster 1 move_type walk fly_low reflect_spell 1 sleep 1 Wis 15 undead 1 weight 50000 no_pick 1 can_see_in_dark 1 end Object nightmare editor_folder monster/undead race undead name nightmare face nightmare.111 animation nightmare hp 50 maxhp 50 Con 1 exp 70 dam 10 wc 14 ac 10 speed 0.3 level 4 resist_physical 100 resist_drain 100 resist_fear 100 resist_magic -100 resist_turn_undead -100 resist_confusion 50 resist_blind 100 attacktype 66048 alive 1 monster 1 move_type walk fly_low sleep 1 Wis 15 undead 1 weight 5000 no_pick 1 run_away 15 can_see_in_dark 1 one_hit 1 end Object generate_skeleton editor_folder monster/undead other_arch skeleton race undead name tombstone generator 1 alive 1 level 1 face gravestone.111 hp 75 maxhp 75 ac 3 exp 50 no_pick 1 maxsp 1 speed 0.006 weight 750000 resist_cold 50 undead 1 map_layer living generator_limit 5 end Object skeleton editor_folder monster/undead randomitems skeleton race undead face skeleton.111 animation skeleton monster 1 move_type walk sleep 1 Wis 14 undead 1 no_pick 1 alive 1 ac 7 wc 17 dam 6 hp 45 maxhp 45 Con 2 level 3 speed -0.2 exp 35 weight 15000 attacktype 17 resist_fire -100 resist_cold 30 resist_fear 100 will_apply 2 pick_up 24 can_see_in_dark 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_ring 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 end Object skeleton_chief_arc editor_folder monster/undead name skeleton captain randomitems skeleton race undead face skeleton_chief.111 animation skeleton_chief_arc monster 1 move_type walk sleep 1 Wis 14 undead 1 no_pick 1 alive 1 ac 4 wc 10 dam 15 hp 80 maxhp 80 Con 2 level 8 speed 0.2 exp 1500 weight 15000 attacktype 17 resist_fire -50 resist_cold 30 resist_fear 100 resist_physical 60 will_apply 2 pick_up 24 can_see_in_dark 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_ring 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 end Object skeleton_leader_arc editor_folder monster/undead name skeleton bezerk randomitems skeleton race undead face skeleton_leader.111 animation skeleton_leader_arc monster 1 move_type walk sleep 1 Wis 14 undead 1 no_pick 1 alive 1 ac 5 wc 12 dam 10 hp 60 maxhp 60 Con 2 level 5 speed 0.2 exp 175 weight 15000 attacktype 17 resist_fire -100 resist_cold 30 resist_fear 100 resist_physical 20 will_apply 2 pick_up 24 can_see_in_dark 1 can_use_weapon 1 can_use_shield 1 can_use_armour 1 can_use_ring 1 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_finger 2 body_arm 2 end Object skree editor_folder monster/undead/skree face skree.x31 race undead randomitems skree animation skree attacktype 1025 monster 1 move_type walk sleep 1 Wis 20 resist_fear 100 resist_magic 90 resist_fire 90 resist_cold 100 resist_electricity 90 resist_godpower 80 resist_holyword 70 resist_blind 100 exp 300000 ac -7 wc -30 dam 30 hp 1500 maxhp 2000 sp 60 maxsp 60 Con 20 Str 30 Pow 80 level 35 alive 1 can_cast_spell 1 speed -0.5 weight 1000000 undead 1 end More Object skree_2 editor_folder monster/undead/skree face skree.x31 animation skree x 1 alive 1 end More Object skree_3 editor_folder monster/undead/skree face skree.x31 animation skree y 1 alive 1 end More Object skree_4 editor_folder monster/undead/skree face skree.x31 animation skree x 1 y 1 alive 1 end Object skreeclaw editor_folder monster/undead/skree name Skree's claw name_pl Skree's claws client_type 626 nrof 1 face skree_claw.111 material 32 weight 1 value 55 end Object skreeeye editor_folder monster/undead/skree name Skree's eye name_pl Skree's eyes client_type 625 nrof 1 face pretty_ruby.111 material 32 weight 50 value 5500 end Object skull editor_folder monster/undead randomitems skull race undead face skull.111 animation skull monster 1 move_type walk fly_low sleep 1 Wis 20 no_pick 1 alive 1 undead 1 exp 15000 level 15 attacktype 17 resist_magic 100 resist_cold 100 resist_poison 100 resist_paralyze 100 resist_fear 100 resist_blind 80 ac 1 Pow 16 maxsp 50 hp 250 Con 2 maxhp 250 wc 5 dam 15 speed 0.15 weight 1500 run_away 15 can_cast_spell 1 can_see_in_dark 1 attack_movement 1 end Object generate_skull editor_folder monster/undead other_arch skull race undead name skull generator face skull_gen.111 generator 1 hp 500 maxhp 500 ac 7 exp 1000 alive 1 level 1 no_pick 1 speed 0.0002 maxsp 1 weight 2000 undead 1 generator_limit 5 end Object skull_tooth editor_folder monster/undead name Skull's tooth name_pl Skull's teeth client_type 625 nrof 1 face tooth.111 material 64 type 72 weight 550 value 10 end Object spectre editor_folder monster/undead race undead name Spectre randomitems spectre face spectre.111 monster 1 move_type walk sleep 1 alive 1 Wis 17 Pow 35 undead 1 dam 15 hp 500 maxhp 500 level 40 resist_physical 50 resist_magic 50 resist_blind 90 wc 5 ac -2 no_pick 1 invisible 1 see_invisible 1 maxsp 60 will_apply 2 pick_up 24 can_use_scroll 1 can_cast_spell 1 can_use_ring 1 speed 0.12 attacktype 17 exp 100000 body_finger 2 body_range 1 end Object vampire editor_folder monster/undead randomitems vampire race undead face vampire.111 animation vampire sp 40 maxsp 40 Pow 32 hp 150 Con 13 maxhp 150 exp 6000 dam 15 wc 6 ac 3 resist_physical 100 resist_cold 100 resist_blind 70 speed -0.4 level 11 weight 70000 alive 1 monster 1 move_type walk sleep 1 Wis 15 no_pick 1 run_away 3 will_apply 7 pick_up 64 can_see_in_dark 1 can_use_range 1 can_use_ring 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_use_scroll 1 can_cast_spell 1 undead 1 body_finger 2 body_torso 1 body_head 1 body_shoulder 1 body_foot 2 body_wrist 2 body_hand 2 body_waist 1 body_arm 2 body_range 1 end Object generate_vampire editor_folder monster/undead race undead name sarcophagus other_arch vampire generator 1 alive 1 level 1 face vampiregen.111 hp 400 maxhp 400 exp 200 ac 0 resist_cold 100 speed 0.001 sp 127 maxsp 1 weight 2000000 undead 1 generator_limit 5 end Object wight editor_folder monster/undead race undead face wight.111 randomitems wight animation wight monster 1 move_type walk sleep 1 Wis 10 undead 1 no_pick 1 alive 1 ac 6 wc 13 dam 5 hp 65 maxhp 65 level 3 speed .10 exp 35 weight 15000 attacktype 16385 can_see_in_dark 1 resist_electricity 50 resist_cold 100 resist_fear 100 end Object wraith editor_folder monster/undead race undead randomitems ring face wraith.111 animation wraith monster 1 move_type walk sleep 1 Wis 10 no_pick 1 alive 1 exp 1500 level 8 ac 2 hp 75 maxhp 75 Con 2 wc 9 dam 30 speed 0.16 attacktype 528 weight 700 resist_cold 50 resist_fire -100 resist_fear 100 resist_blind 60 undead 1 can_see_in_dark 1 one_hit 1 end Object zombie editor_folder monster/undead race undead face zombie.111 randomitems zombie animation zombie monster 1 move_type walk sleep 1 Wis 10 undead 1 no_pick 1 alive 1 ac 9 wc 8 dam 5 hp 35 maxhp 35 level 3 speed -0.1 exp 30 weight 15000 attacktype 1 resist_cold 50 resist_fear 100 can_see_in_dark 1 end Object generate_zombie editor_folder monster/undead race undead other_arch zombie randomitems generate_zombie name grave generator 1 alive 1 level 1 face zombie_gen.111 hp 100 maxhp 100 ac 6 exp 50 no_pick 1 maxsp 1 speed 0.01 weight 750000 resist_cold 30 undead 1 generator_limit 5 end Object burning_barn editor_folder planes/fire type 66 face burning_barn.x11 no_pick 1 client_type 25012 end More Object burning_barn_2 editor_folder planes/fire name burning barn type 66 face burning_barn.x11 no_pick 1 x 1 end More Object burning_barn_3 editor_folder planes/fire name burning barn type 66 face burning_barn.x11 no_pick 1 y 1 end More Object burning_barn_4 editor_folder planes/fire name burning barn type 66 face burning_barn.x11 no_pick 1 x 1 y 1 end Object burning_cathedral editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 no_pick 1 move_block all client_type 25012 end More Object burning_cathedral_2 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 1 no_pick 1 move_block all end More Object burning_cathedral_3 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 2 no_pick 1 move_block all end More Object burning_cathedral_4 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 y 1 no_pick 1 move_block all end More Object burning_cathedral_5 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 1 y 1 no_pick 1 move_block all end More Object burning_cathedral_6 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 2 y 1 no_pick 1 move_block all end More Object burning_cathedral_7 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 y 2 no_pick 1 move_block all end More Object burning_cathedral_8 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 1 y 2 no_pick 1 move_block all end More Object burning_cathedral_9 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 2 y 2 no_pick 1 move_block all end More Object burning_cathedral_10 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 y 3 no_pick 1 move_block all end More Object burning_cathedral_11 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 1 y 3 no_pick 1 move_block all end More Object burning_cathedral_12 editor_folder planes/fire name burning cathedral type 66 face burning_cathedral.x11 x 2 y 3 no_pick 1 move_block all end Object burning_church editor_folder planes/fire name burning church type 66 face burning_church.x11 no_pick 1 client_type 25012 end More Object burning_church_2 editor_folder planes/fire name burning church type 66 face burning_church.x11 x 1 no_pick 1 end More Object burning_church_3 editor_folder planes/fire name burning church type 66 face burning_church.x11 y 1 no_pick 1 end More Object burning_church_4 editor_folder planes/fire name burning church type 66 face burning_church.x11 x 1 y 1 no_pick 1 end Object burning_collesium editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 client_type 25012 end More Object burning_collesium_2 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 1 end More Object burning_collesium_3 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 2 end More Object burning_collesium_4 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 3 end More Object burning_collesium_5 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 4 end More Object burning_collesium_6 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 y 1 end More Object burning_collesium_7 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 1 y 1 end More Object burning_collesium_8 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 2 y 1 end More Object burning_collesium_9 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 3 y 1 end More Object burning_collesium_10 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 4 y 1 end More Object burning_collesium_11 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 y 2 end More Object burning_collesium_12 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 1 y 2 end More Object burning_collesium_13 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 2 y 2 end More Object burning_collesium_14 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 3 y 2 end More Object burning_collesium_15 editor_folder planes/fire name burning collesium face burning_collesium.x11 type 66 no_pick 1 x 4 y 2 end Object burning_courthouse editor_folder planes/fire face burning_courthouse.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_courthouse_2 editor_folder planes/fire name burning courthouse face burning_courthouse.x11 type 66 no_pick 1 move_block all x 1 end More Object burning_courthouse_3 editor_folder planes/fire name burning courthouse face burning_courthouse.x11 type 66 no_pick 1 y 1 end More Object burning_courthouse_4 editor_folder planes/fire name burning courthouse face burning_courthouse.x11 type 66 no_pick 1 x 1 y 1 end Object burning_fort editor_folder planes/fire name burning fortress type 66 face burning_fort.x11 no_pick 1 client_type 25012 end More Object burning_fort_2 editor_folder planes/fire name burning fortress type 66 face burning_fort.x11 x 1 no_pick 1 end More Object burning_fort_3 editor_folder planes/fire name burning fortress type 66 face burning_fort.x11 y 1 no_pick 1 end More Object burning_fort_4 editor_folder planes/fire name burning fortress type 66 face burning_fort.x11 x 1 y 1 no_pick 1 end Object burning_fort_sym editor_folder planes/fire name burning fortress type 66 face burning_fort_sym.111 no_pick 1 client_type 25012 end Object burning_fountain editor_folder planes/fire name burning fountain face burning_fountain.111 type 67 animation burning_fountain move_on walk anim_speed 2 client_anim_random 1 no_pick 1 end Object burning_guild editor_folder planes/fire name burning guild face burning_guild.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_guild_2 editor_folder planes/fire name burning guild face burning_guild.x11 type 66 no_pick 1 move_block all x 1 end More Object burning_guild_3 editor_folder planes/fire name burning guild face burning_guild.x11 type 66 no_pick 1 y 1 end More Object burning_guild_4 editor_folder planes/fire name burning guild face burning_guild.x11 type 66 no_pick 1 x 1 y 1 end Object burning_house_1 editor_folder planes/fire name burning house type 66 face burning_house_1.111 no_pick 1 client_type 25012 end Object burning_house_largish editor_folder planes/fire name burning house type 66 face burning_house_larg.x11 no_pick 1 client_type 25012 end More Object burning_house_largish_2 editor_folder planes/fire name burning house type 66 face burning_house_larg.x11 no_pick 1 x 1 end Object burning_house_long editor_folder planes/fire name burning house type 66 face burning_house_long.x11 no_pick 1 client_type 25012 end More Object burning_house_long_2 editor_folder planes/fire name burning house type 66 face burning_house_long.x11 x 1 no_pick 1 end Object burning_house_up editor_folder planes/fire name burning house type 66 face burning_house_up.x11 no_pick 1 client_type 25012 end More Object burning_house_up_2 editor_folder planes/fire name burning house type 66 face burning_house_up.x11 y 1 no_pick 1 end Object burning_house_small editor_folder planes/fire name burning small house type 66 face burning_housesmall.111 no_pick 1 client_type 25012 end Object burning_l_shop1 editor_folder planes/fire name burning shop face burning_l_shop1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_l_shop1_2 editor_folder planes/fire name burning shop face burning_l_shop1.x11 type 66 no_pick 1 move_block all x 1 end More Object burning_l_shop1_3 editor_folder planes/fire name burning shop face burning_l_shop1.x11 type 66 no_pick 1 y 1 end More Object burning_l_shop1_4 editor_folder planes/fire name burning shop face burning_l_shop1.x11 type 66 no_pick 1 x 1 y 1 end Object burning_market1 editor_folder planes/fire name burning market face burning_market1.111 type 66 no_pick 1 client_type 25012 end Object burning_market2 editor_folder planes/fire name burning market face burning_market2.111 type 66 no_pick 1 client_type 25012 end Object burning_market3 editor_folder planes/fire name burning market face burning_market3.111 type 66 no_pick 1 client_type 25012 end Object burning_shrine editor_folder planes/fire name burning shrine face burning_shrine.111 type 66 no_pick 1 client_type 25012 end Object burning_small_temple editor_folder planes/fire name burning small temple type 66 face burning_smalltemple.111 no_pick 1 client_type 25012 end Object burning_store_alchemy editor_folder planes/fire name burning shop face burning_store_alch.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_store_alchemy_2 editor_folder planes/fire name burning shop face burning_store_alch.x11 type 66 x 1 no_pick 1 move_block all end More Object burning_store_alchemy_3 editor_folder planes/fire name burning shop face burning_store_alch.x11 type 66 y 1 no_pick 1 end More Object burning_store_alchemy_4 editor_folder planes/fire name burning shop face burning_store_alch.x11 type 66 x 1 y 1 no_pick 1 end Object burning_store_armour editor_folder planes/fire name burning shop face burning_store_armo.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_store_armour_2 editor_folder planes/fire name burning shop face burning_store_armo.x11 type 66 x 1 no_pick 1 move_block all end More Object burning_store_armour_3 editor_folder planes/fire name burning shop face burning_store_armo.x11 type 66 y 1 no_pick 1 end More Object burning_store_armour_4 editor_folder planes/fire name burning shop face burning_store_armo.x11 type 66 x 1 y 1 no_pick 1 end Object burning_store_general editor_folder planes/fire name burning shop face burning_store_gene.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_store_general_2 editor_folder planes/fire name burning shop face burning_store_gene.x11 type 66 x 1 no_pick 1 move_block all end More Object burning_store_general_3 editor_folder planes/fire name burning shop face burning_store_gene.x11 type 66 y 1 no_pick 1 end More Object burning_store_general_4 editor_folder planes/fire name burning shop face burning_store_gene.x11 type 66 x 1 y 1 no_pick 1 end Object burning_store_magic editor_folder planes/fire name burning shop face burning_store_magi.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_store_magic_2 editor_folder planes/fire name burning shop face burning_store_magi.x11 type 66 x 1 no_pick 1 move_block all end More Object burning_store_magic_3 editor_folder planes/fire name burning shop face burning_store_magi.x11 type 66 y 1 no_pick 1 end More Object burning_store_magic_4 editor_folder planes/fire name burning shop face burning_store_magi.x11 type 66 x 1 y 1 no_pick 1 end Object burning_store_weapons editor_folder planes/fire name burning shop face burning_store_weap.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_store_weapons_2 editor_folder planes/fire name burning shop face burning_store_weap.x11 type 66 x 1 no_pick 1 move_block all end More Object burning_store_weapons_3 editor_folder planes/fire name burning shop face burning_store_weap.x11 type 66 y 1 no_pick 1 end More Object burning_store_weapons_4 editor_folder planes/fire name burning shop face burning_store_weap.x11 type 66 x 1 y 1 no_pick 1 end Object burning_stronghold editor_folder planes/fire type 66 face burning_stronghold.x11 no_pick 1 move_block all client_type 25012 end More Object burning_stronghold_2 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 x 1 no_pick 1 move_block all end More Object burning_stronghold_3 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 x 2 no_pick 1 move_block all end More Object burning_stronghold_4 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 y 1 no_pick 1 move_block all end More Object burning_stronghold_5 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 x 1 y 1 no_pick 1 move_block all end More Object burning_stronghold_6 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 x 2 y 1 no_pick 1 move_block all end More Object burning_stronghold_7 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 y 2 no_pick 1 move_block all end More Object burning_stronghold_8 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 x 1 y 2 no_pick 1 end More Object burning_stronghold_9 editor_folder planes/fire name burning stronghold type 66 face burning_stronghold.x11 x 2 y 2 no_pick 1 move_block all end Object burning_t_house2 editor_folder planes/fire name burning town house face burning_t_house2.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_t_house2_2 editor_folder planes/fire name burning town house face burning_t_house2.x11 type 66 no_pick 1 move_block all x 1 end More Object burning_t_house2_3 editor_folder planes/fire name burning town house face burning_t_house2.x11 type 66 no_pick 1 y 1 end More Object burning_t_house2_4 editor_folder planes/fire name burning town house face burning_t_house2.x11 type 66 no_pick 1 x 1 y 1 end Object burning_temple1 editor_folder planes/fire name burning temple face burning_temple1.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object burning_temple1_2 editor_folder planes/fire name temple face burning_temple1.x11 type 66 no_pick 1 move_block all x 1 end More Object burning_temple1_3 editor_folder planes/fire name temple face burning_temple1.x11 type 66 no_pick 1 y 1 end More Object burning_temple1_4 editor_folder planes/fire name temple face burning_temple1.x11 type 66 no_pick 1 x 1 y 1 end Object burningwall_0 editor_folder planes/fire/burningwall name burning wall face burningwall_0.111 animation burningwall_0 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_1_2 editor_folder planes/fire/burningwall name burning wall face burningwall_1.111 animation burningwall_1_2 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_1_4 editor_folder planes/fire/burningwall name burning wall face burningwall_2.111 animation burningwall_1_4 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_2_2_1 editor_folder planes/fire/burningwall name burning wall face burningwall_3.111 animation burningwall_2_2_1 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_1_1 editor_folder planes/fire/burningwall name burning wall face burningwall_4.111 animation burningwall_1_1 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_2_1_1 editor_folder planes/fire/burningwall name burning wall face burningwall_5.111 animation burningwall_2_1_1 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_2_2_2 editor_folder planes/fire/burningwall name burning wall face burningwall_6.111 animation burningwall_2_2_2 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_3_2 editor_folder planes/fire/burningwall name burning wall face burningwall_7.111 animation burningwall_3_2 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_1_3 editor_folder planes/fire/burningwall name burning wall face burningwall_8.111 animation burningwall_1_3 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_2_2_4 editor_folder planes/fire/burningwall name burning wall face burningwall_9.111 animation burningwall_2_2_4 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_2_1_2 editor_folder planes/fire/burningwall name burning wall face burningwall_A.111 animation burningwall_2_1_2 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_3_1 editor_folder planes/fire/burningwall name burning wall face burningwall_B.111 animation burningwall_3_1 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_2_2_3 editor_folder planes/fire/burningwall name burning wall face burningwall_C.111 animation burningwall_2_2_3 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_3_4 editor_folder planes/fire/burningwall name burning wall face burningwall_D.111 animation burningwall_3_4 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_3_3 editor_folder planes/fire/burningwall name burning wall face burningwall_E.111 animation burningwall_3_3 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object burningwall_4 editor_folder planes/fire/burningwall name burning wall face burningwall_F.111 animation burningwall_4 is_animated 1 anim_speed 5 client_anim_random 1 move_block all no_pick 1 blocksview 1 end Object coldmagma editor_folder planes/fire face coldmagma.111 name cold magma animation coldmagma type 102 subtype 7 level 30000 move_on walk is_floor 1 is_animated 1 speed 0.15 no_pick 1 attacktype 4 dam 75 wc -30 lifesave 1 generator 1 other_arch fire_elemental maxsp 5000 generator_limit 5 end Object flaming_tower editor_folder planes/fire name fire tower type 66 face flamingtower.x11 animation flaming_tower is_animated 1 anim_speed 2 client_anim_random 1 no_pick 1 client_type 25012 end More Object flaming_tower_2 editor_folder planes/fire name fire tower type 66 face flamingtower.x11 animation flaming_tower is_animated 1 anim_speed 2 client_anim_random 1 no_pick 1 y 1 end Object lava_lake editor_folder planes/fire/lava face lava_blake_0.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_n editor_folder planes/fire/lava face lava_blake_1.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_e editor_folder planes/fire/lava face lava_blake_2.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_ne editor_folder planes/fire/lava face lava_blake_3.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_s editor_folder planes/fire/lava face lava_blake_4.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_sn editor_folder planes/fire/lava face lava_blake_5.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_se editor_folder planes/fire/lava face lava_blake_6.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_nes editor_folder planes/fire/lava face lava_blake_7.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_w editor_folder planes/fire/lava face lava_blake_8.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_nw editor_folder planes/fire/lava face lava_blake_9.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_ew editor_folder planes/fire/lava face lava_blake_A.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_new editor_folder planes/fire/lava face lava_blake_B.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_sw editor_folder planes/fire/lava face lava_blake_C.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_nse editor_folder planes/fire/lava face lava_blake_D.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_sew editor_folder planes/fire/lava face lava_blake_E.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_center editor_folder planes/fire/lava face lava_blake_F.111 move_block all no_pick 1 is_water 1 is_floor 1 end Object lava_rcrook_ns-ne editor_folder planes/fire/lava face lava_branch_125.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_ns-ne editor_folder planes/fire/lava face lava_branch_125.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_ns-e editor_folder planes/fire/lava face lava_branch_135.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_we-n editor_folder planes/fire/lava face lava_branch_137.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_ns-se editor_folder planes/fire/lava face lava_branch_145.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_ns-se editor_folder planes/fire/lava face lava_branch_145.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_ns-sw editor_folder planes/fire/lava face lava_branch_156.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_ns-sw editor_folder planes/fire/lava face lava_branch_156.211 name lava_river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_ns-w editor_folder planes/fire/lava face lava_branch_157.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_ns-nw editor_folder planes/fire/lava face lava_branch_158.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_ns-nw editor_folder planes/fire/lava face lava_branch_158.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_we-ne editor_folder planes/fire/lava face lava_branch_237.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_we-ne editor_folder planes/fire/lava face lava_branch_237.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_we-se editor_folder planes/fire/lava face lava_branch_347.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_we-se editor_folder planes/fire/lava face lava_branch_347.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_we-s editor_folder planes/fire/lava face lava_branch_357.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_we-sw editor_folder planes/fire/lava face lava_branch_367.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_we-sw editor_folder planes/fire/lava face lava_branch_367.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rcrook_we-nw editor_folder planes/fire/lava face lava_branch_378.111 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_rjunct_we-nw editor_folder planes/fire/lava face lava_branch_378.211 name lava river junction move_block all no_pick 1 is_water 1 end Object lava_bridge_ns editor_folder planes/fire/lava face lava_bridge_15.111 name lava bridge no_pick 1 is_water 1 end Object lava_bridge_we editor_folder planes/fire/lava face lava_bridge_37.111 name lava bridge no_pick 1 is_water 1 end Object lava_ford_ns editor_folder planes/fire/lava face lava_ford_ns.111 name lava ford no_pick 1 is_water 1 end Object lava_ford_we editor_folder planes/fire/lava face lava_ford_we.111 name lava ford no_pick 1 is_water 1 end Object lava_biglake_0 editor_folder planes/fire/lava face lava_blake_0.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_3_3 editor_folder planes/fire/lava face lava_blake_1.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_3_4 editor_folder planes/fire/lava face lava_blake_2.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_2_2_3 editor_folder planes/fire/lava face lava_blake_3.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_3_1 editor_folder planes/fire/lava face lava_blake_4.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_2_1_2 editor_folder planes/fire/lava face lava_blake_5.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_2_2_4 editor_folder planes/fire/lava face lava_blake_6.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_1_3 editor_folder planes/fire/lava face lava_blake_7.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_3_2 editor_folder planes/fire/lava face lava_blake_8.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_2_2_2 editor_folder planes/fire/lava face lava_blake_9.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_2_1_1 editor_folder planes/fire/lava face lava_blake_A.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_1_1 editor_folder planes/fire/lava face lava_blake_B.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_2_2_1 editor_folder planes/fire/lava face lava_blake_C.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_1_4 editor_folder planes/fire/lava face lava_blake_D.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_1_2 editor_folder planes/fire/lava face lava_blake_E.111 move_block all no_pick 1 is_water 1 end Object lava_biglake_4 editor_folder planes/fire/lava face lava_blake_F.111 move_block all no_pick 1 is_water 1 is_floor 1 end Object lava_river_se-n editor_folder planes/fire/lava face lava_river_14.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_n-s editor_folder planes/fire/lava face lava_river_15.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_sw-n editor_folder planes/fire/lava face lava_river_16.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_ne-s editor_folder planes/fire/lava face lava_river_25.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_sw-ne editor_folder planes/fire/lava face lava_river_26.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_sw-ne_l editor_folder planes/fire/lava face lava_river_26.211 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_sw-ne_u editor_folder planes/fire/lava face lava_river_26.311 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_ne-w editor_folder planes/fire/lava face lava_river_27.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_sw-e editor_folder planes/fire/lava face lava_river_36.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_w-e editor_folder planes/fire/lava face lava_river_37.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_nw-e editor_folder planes/fire/lava face lava_river_38.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_se-w editor_folder planes/fire/lava face lava_river_47.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_nw-se editor_folder planes/fire/lava face lava_river_48.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_nw-se_l editor_folder planes/fire/lava face lava_river_48.211 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_nw-se_u editor_folder planes/fire/lava face lava_river_48.311 name lava river move_block all no_pick 1 is_water 1 end Object lava_river_nw-s editor_folder planes/fire/lava face lava_river_58.111 name lava river move_block all no_pick 1 is_water 1 end Object lava_sea editor_folder planes/fire/lava face lava_sea.111 name lava animation lava_sea anim_speed 5 client_anim_random 1 move_block all no_pick 1 is_water 1 is_floor 1 end Object lava_sea1 editor_folder planes/fire/lava name lava face lava_sea.111 animation lava_sea1 anim_speed 5 client_anim_random 1 no_pick 1 is_water 1 is_floor 1 end Object lava_well editor_folder planes/fire type 66 face lava_well.111 no_pick 1 client_type 25012 end Object magma editor_folder planes/fire face magma.111 animation magma move_on walk is_floor 1 is_animated 1 speed 0.15 no_pick 1 attacktype 4 dam 75 wc -30 lifesave 1 type 102 subtype 7 level 30000 generator 1 other_arch fire_elemental maxsp 5000 generator_limit 5 end Object guild_force editor_folder player name GUILD_FORCE invisible 1 applied 1 type 114 face blank.111 no_drop 1 speed 0 end Object no_class_face_change editor_folder player name NOCLASSFACECHANGE invisible 1 applied 1 type 114 face blank.111 no_drop 1 speed 0 end Object rank_force editor_folder player name RANK_FORCE invisible 1 applied 1 type 114 face blank.111 no_drop 1 speed 0 end #Object cleric_class #race cleric #anim_suffix class_cleric #name cleric #randomitems cleric_class_items #face cleric.151 #animation cleric_class #is_animated 1 #anim_speed -1 #type 37 #level 1 #ac 10 #wc 21 #dam 1 #can_use_shield 1 #can_use_armour 1 #can_use_weapon 1 #alive 1 #weight 70000 #food 500 #speed 0.5 #attacktype 1 #Str 0 #Dex -1 #Con -1 #Wis 2 #Cha 1 #Int -2 #Pow 1 #end Object monk_class editor_folder player/class/Religious name monk anim_suffix class_monk randomitems monk_class_items face monk.151 animation monk_class is_animated 1 anim_speed -1 type 37 can_use_weapon 1 Str 2 Dex 2 Con 1 Wis 1 Int -1 msg In the Monastery, they believed in mental discipline and peace through physical training, meditation, and, to a lesser extent, religious devotion. Your mental equilibrium requires you to forego the use of weapons, but your physical training in karate means you're not helpless. Your inner peace grants you the ability to regenerate faster and to sense metaphysical auras. endmsg end Object monk_no_use_weapon editor_folder player/class/Religious name no weapon force invisible 1 type 114 face blank.111 neutral 1 no_drop 1 end Object paladin_class editor_folder player/class/Religious name paladin anim_suffix class_paladin randomitems paladin_class_items face paladin.171 type 37 animation paladin_class is_animated 1 anim_speed -1 Str 0 Dex -1 Con 0 Int -2 Wis 2 Pow 1 Cha 1 msg You are a militant priest, with an emphasis on 'priest'. You've been taught archery and the use of weapons, but great care has been taken that you're doctrinally correct. Now you've been sent out in the world to convert the unrighteous and destroy the enemies of the faith. Your churchmembers have been charged a pretty penny to equip you for the job! All other areas of your education have been neglected. Perhaps aware of your deficiency, your superiors have given you some measure of protection from magic. endmsg end Object paladin_holy_symbol editor_folder player/class/Religious name Paladin's holy symbol face holy_symbol.111 type 74 skill praying material 20 nrof 1 value 1500 weight 5000 resist_magic 30 body_skill -1 client_type 451 end Object priest_class editor_folder player/class/Religious anim_suffix class_priest name priest randomitems priest_class_items face priestnew.171 type 37 animation priest_class is_animated 1 anim_speed -1 Str -2 Dex -2 Con -1 Int 0 Wis 3 Pow 2 Cha 2 msg As a priest, you've learned an intense devotion to your god, and you've learned how to channel the energies your god vouchsafes to his devotees. You've been taught the use of weapons, but only cursorily, and your physical training has been lacking in general. Since you're in tune with the holy powers, you can tell when a god has marked an object as accursed. endmsg end Object ninja_class editor_folder player/class/Thief name ninja anim_suffix class_ninja randomitems ninja_class_items face ninja.151 animation ninja_class is_animated 1 anim_speed -1 type 37 Str 1 Dex 2 Con 1 Int 0 Wis -2 Pow -2 Cha -1 msg As a member of the secret society of the Ninja, you've been taught archery, the use of weapons, and also the art of combat without weapons. Your style of combat, leans very much toward the sneak attack, so you've been taught how to be inconspicuous and to appear in places you're not expected. You have had no introduction to either religious devotion or magic. endmsg end Object thief_class editor_folder player/class/Thief name thief anim_suffix class_thief randomitems thief_class_items face thief.171 animation thief_class is_animated 1 anim_speed -1 type 37 Str 0 Dex 3 Con -2 Int 1 Wis -1 Pow -1 Cha -3 msg Trained to be a thief from a young age, you've learned to steal and you're familiar with the value a fence will give you on your "finds". You've had some weaponry training, including archery; this being advisable to someone who is likely to have acrimonious disagreements about the ownership of valuable objects. You've had no time for either religious devotion or the study of magecraft, but your quick wits have been enough to keep you alive so far. endmsg end #Object mountain_dwarf_class #name mountain dwarf #anim_suffix class_mountain_dwarf #randomitems barbarian_class_items #face mountain_dwarf.151 #animation mountain_dwarf_class #is_animated 1 #anim_speed -1 #type 37 #Str 4 #Dex 1 #Con 4 #Int -6 #Wis -1 #Pow -1 #Cha -4 #end Object barbarian_class editor_folder player/class/Warrior name barbarian anim_suffix class_barbarian randomitems barbarian_class_items face barbarian.151 animation barbarian_class is_animated 1 anim_speed -1 type 37 Str 3 Dex 2 Con 3 Int -6 Wis -1 Pow -1 Cha -2 msg Growing up in the howling wilderness, you've had no chance to pursue anything remotely intellectual, let alone learn your letters! It's amazing you ever thought of leaving your hovel and going somewhere else, you're so ignorant. But now you have. You find that you're a lot tougher and stronger than these cityfolk, and you know how to get around in rough terrain. You've learned archery in order to fill your cookpot, and weaponry is second nature to anyone who's had to fight with the local orc-tribe over food once a month. You're deeply afraid of magic, and it'll be a while before you get over that and develop any facility with it. You've no deep problem with the idea of gods, but you don't know much about them. endmsg end Object mage_class editor_folder player/class/Warrior name mage anim_suffix class_mage randomitems warlock_class_items face mage.151 animation mage_class is_animated 1 anim_speed -1 type 37 Str 1 Dex -1 Con 1 Int 0 Wis -2 Pow 1 end Object swashbuckler_class editor_folder player/class/Warrior name swashbuckler randomitems swashbuckler_class_items anim_suffix class_swashbuckler face swashbuckl.151 animation swashbuckler_class is_animated 1 anim_speed -1 type 37 Str 1 Dex 2 Con 1 Int -1 Wis -2 Pow -1 Cha 1 msg Shipboard most of your life, you've learned good balance and agility, and you've also become strong and hardy. Because of occasional oarswork, you and your shipmates have an admirable command of rhythm, and you can sing well. You've learned to make the most of your time in port: after passing out drunk in a bar and waking to find yourself short your pay, you've found ways to acquire new capital, or at the very least, talk someone into helping you out of your fix. On numerous occasions, you've taken up arms and bow in defense of your ship, so you're facile with weapons, but you've had no chance to learn magic or the ways of gods. endmsg end Object warlock_class editor_folder player/class/Warrior name warlock randomitems warlock_class_items face mage.151 anim_suffix class_warlock animation warlock_class is_animated 1 anim_speed -1 type 37 Str 1 Dex -1 Con 1 Int 0 Wis -2 Pow 1 msg You've divided your time between learning magic and learning weapons, but have totally disregarded religious devotion. You're physically stronger and hardier because of your training, and you know the use of weapons and bows. However, you're just a bit clumsy in both weaponry and magic because you've had to divide your time between them. endmsg end Object warrior_class editor_folder player/class/Warrior name warrior randomitems warrior_class_items anim_suffix class_warrior face warrior.151 animation warrior_class is_animated 1 anim_speed -1 type 37 Str 2 Dex 1 Con 1 Int -2 Wis -1 Pow -1 msg As a Warrior you've been trained in the art of combat with weapons and in archery. Because of your training, you're stronger, more agile, and hardier than you would be otherwise. Your education, however, has not included studies in the magical arts or religious devotion, and, in general, lacks breadth. endmsg end Object alchemist_class editor_folder player/class/Wizardry name alchemist anim_suffix class_alchemist randomitems alchemist_class_items face alchemist.151 animation alchemist_class is_animated 1 anim_speed -1 type 37 Str -3 Dex 0 Con -1 Int 3 Wis 0 Pow 1 msg Your specialty is magical devices and concoctions, but you've also had some training in weaponry, so that you could fend off townsfolk angered by the vile reeks that frequently emanate from your workshop. Searching for the ultimate recipe and trying to recover lost knowledge has sharpened your wits considerably. Your focus, however, has left little time for physical training, and your sedentary lifestyle has weakened you. Your dependence on magical devices extends to the use of a talisman to channel mana. The talisman has become attuned to detonation and transmutation because of the way you have used it. endmsg end Object talisman_alchemist editor_folder player/class/Wizardry name Alchemist's talisman face talisman.111 type 74 weight 1000 value 3000 nrof 1 material 12 path_attuned 16896 client_type 451 body_skill -1 skill sorcery end Object devotee_class editor_folder player/class/Wizardry name devotee anim_suffix class_devotee randomitems devotee_class_items face wizard_white.171 animation wizard_white is_animated 0 type 37 Str -2 Dex 0 Con -2 Int 0 Wis 2 Pow 2 Cha 1 msg Devotee The axis of your existence is your devotion to your god, but you've also been busy in other areas. Your sensitivity to godly powers has also caused your natural magical ability to bloom, and your religious order has encouraged your study. Your religious superiors have forced you to learn weaponry against your choice, but you will find that they were wise to do so. You haven't trained as assiduously as you should have, so you are soft and weak. endmsg end Object evoker_class editor_folder player/class/Wizardry name evoker anim_suffix class_evoker randomitems evoker_class_items face evoker.151 animation evoker_class is_animated 1 anim_speed -1 type 37 Str -2 Dex 0 Con -1 Int 0 Wis 0 Pow 3 msg Your specialty is the use of attack spells in combat. You practice these spells daily, and your capacity to cast them has increased hugely. You've had some training in weaponry to help defend yourself, but you tend to leave most of the fighting to others, so your physical training has been somewhat lacking. You've never learned to use magic innately, but instead rely on a magic talisman to channel mana for you. The attack spells have imprinted themselves somewhat on your talisman, making it good for those and less useful for anything else. You have not been trained in religious devotion: however, you come from a religious family and will have no particular difficulty taking up the service of a god. endmsg end Object talisman_evoker editor_folder player/class/Wizardry name Evoker's talisman face talisman.111 type 74 weight 1000 value 3000 nrof 1 material 12 path_attuned 14 path_repelled 50240 client_type 451 body_skill -1 skill evocation end Object sorcerer_class editor_folder player/class/Wizardry name sorcerer anim_suffix class_sorcerer randomitems sorcerer_class_items face sorcerer.171 animation sorcerer_class is_animated 1 anim_speed -1 type 37 Str -3 Dex 2 Con -3 Int 3 Wis -2 Pow 3 msg Your study of magic has been obsessive. Your frequent practice has greatly enhanced your powers, and your intellect has been sharpened enormously by your quest for ever better ways to channel energies. Barbarians used to push you around on the street until you blasted one's leg off with a lightning bolt. You reflected later on the stupidity of this, because you could by no means have blasted his friends, too. Fortunately, they ran off. You resolved to learn how to take out a whole group of barbarians before losing your temper again. On the other hand, you have totally neglected to learn to use weaponry, so you're soft and weak. Your study of magical devices allows you to notice when an object has a magical aura, and you are often able to fathom the purpose of magical devices. endmsg end Object sorcerer_hat editor_folder player/class/Wizardry name Sorcerer's hat nrof 1 type 34 face wiz_hat.111 animation wiz_hat speed 0.1 last_sp 12 ac 1 sp 1 weight 1000 material 128 body_head -1 client_type 270 end Object summoner_class editor_folder player/class/Wizardry name summoner anim_suffix class_summoner randomitems summoner_class_items face wizard_yellow.171 animation wizard_yellow is_animated 0 type 37 Str -1 Dex 0 Con -1 Int 1 Wis 0 Pow 1 msg You've had more of an emphasis on physical training than most spellcasters, at the expense of less practice with spellcasting. You've never learned to use magic innately, but instead rely on a magic talisman to channel mana for you. Your work has leaned heavily toward the art of summoning creatures to help you in a fight, and your talisman has become attuned to that. That attunement, however, makes it harder for you to reject unwanted creatures. You've also had a reasonable education in religious devotion. endmsg end Object talisman_summoner editor_folder player/class/Wizardry name Summoner's talisman face talisman.111 type 74 weight 1000 value 3000 nrof 1 material 12 path_attuned 64 path_repelled 65536 client_type 451 body_skill -1 skill summoning end Object wizard_class editor_folder player/class/Wizardry race human anim_suffix class_wizard name wizard randomitems wizard_class_items face wizard.171 animation wizard_class is_animated 0 type 37 Str -3 Dex 0 Con -3 Wis 0 Int 3 Pow 3 Cha 0 msg You're the generalist of the spellcasters. You've emphasized the use of magic and studied all its areas equally. You've learned something about the gods and religious devotion as well. To a much lesser extent, you've studied weaponry, but you've not had much physical training: you're mostly sedentary, and so you're not nearly so strong and healthy as you could be. endmsg end Object dragon_ability_xrays editor_folder player/dragon_ability name xrays msg Your senses are stimulated. You gain the ability of X-ray vision! endmsg type 114 invisible 1 xrays 1 no_drop 1 end Object direct_attune_fire editor_folder player/dragon_ability name attune fire type 114 invisible 1 path_attuned 2 no_drop 1 end Object direct_attune_cold editor_folder player/dragon_ability name attune cold type 114 invisible 1 path_attuned 4 no_drop 1 end Object direct_attune_elec editor_folder player/dragon_ability name attune electricity type 114 invisible 1 path_attuned 8 no_drop 1 end Object fire_clawing editor_folder player/dragon_ability name fire claws title clawing msg Your claws are enveloped in a hot blazing fire! endmsg type 74 subtype 31 invisible 1 attacktype 4 no_drop 1 skill clawing animation pl_dragon_r end Object ice_clawing editor_folder player/dragon_ability name ice claws title clawing msg Your claws are covered with shards of ice! endmsg type 74 subtype 31 invisible 1 attacktype 16 no_drop 1 skill clawing animation pl_dragon_bl end Object electric_clawing editor_folder player/dragon_ability name electric claws title clawing msg Your claws emit sparks of electricity! endmsg type 74 subtype 31 skill clawing invisible 1 attacktype 8 no_drop 1 animation pl_dragon_blue end Object poison_clawing editor_folder player/dragon_ability name poison claws title clawing msg Your claws are now poisoned! endmsg type 74 subtype 31 skill clawing invisible 1 attacktype 1024 no_drop 1 animation pl_dragon_g end Object spelldirect_ball_lightning editor_folder player/dragon_ability anim_suffix spellcasting name ball lightning name_pl ball lightning face spell_evocation.111 type 101 subtype 35 level 9 value 90 sp 10 casting_time 30 skill evocation path_attuned 8 other_arch ball_lightning dam 8 dam_modifier 3 duration 40 duration_modifier 1 maxsp 15 attacktype 10 no_drop 1 invisible 1 end Object spelldirect_dragonbreath editor_folder player/dragon_ability anim_suffix spellcasting name dragonbreath name_pl dragonbreath face spell_pyromancy.111 level 12 sp 13 casting_time 30 path_attuned 2 other_arch firebreath dam 4 dam_modifier 3 range 7 duration 2 range_modifier 5 maxsp 11 type 101 subtype 7 value 120 attacktype 4 no_drop 1 invisible 1 skill pyromancy end Object spelldirect_large_icestorm editor_folder player/dragon_ability anim_suffix spellcasting name large icestorm name_pl large icestorm face spell_evocation.111 level 12 sp 13 casting_time 40 path_attuned 4 other_arch icestorm dam 4 dam_modifier 3 range 14 duration 2 range_modifier 5 maxsp 11 type 101 subtype 7 value 120 attacktype 18 no_drop 1 invisible 1 skill evocation end Object spelldirect_poison_cloud editor_folder player/dragon_ability anim_suffix spellcasting name poison cloud name_pl poison cloud face spell_sorcery.111 level 2 sp 5 casting_time 10 path_attuned 16 other_arch poisonbullet dam 0 dam_modifier 3 range 4 duration 4 maxsp 8 type 101 subtype 5 value 20 attacktype 1026 no_drop 1 invisible 1 skill sorcery food 5 end Object dwarf_player editor_folder player/race name dwarf race dwarf randomitems dwarf_player_items face dwarf_p.151 msg Skills: Smithery Resistances: None Attunements: None Special: See in dark Description: The Dwarves are the hardy scions of Mostrai. The traditional profession of the dwarf is smithery, and you'll be hard-pressed to find a dwarf who is not competent at it. Whether their great strength and hardiness leads them to become smiths and miners, or whether their profession leads to their strength and hardiness is unknown. Their thick musculature makes them slow of body, and seemingly, some of their muscle has crept into their brain. Perhaps their repetitive tasks dull their minds, perhaps they're simply born dumb. Dwarves can see in the dark, but they're slightly impious and tend to be a bit poor at controlling magic. Despite this, there are indeed dwarven clerics and mages. They're just not quite as good as human clerics or mages. endmsg animation dwarf_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_see_in_dark 1 alive 1 weight 80000 food 999 speed 1 attacktype 1 Str 3 Dex -2 Con 4 Int -2 Wis -1 Pow -2 Cha -1 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object elf_player editor_folder player/race race faerie name elf randomitems elf_player_items face elf.151 msg Skills: Bowyer, Woodsman, Missile Weapons Resistances: None Attunements: None Special: Slow HP regeneration, fast SP regeneration, low food consumption, start with bow & arrows, See in dark Description: An Elf is a child of Faerie, a scion of Lythander. Being of Faerie, they heal more slowly than other races, but mana flows into them more quickly. They also need far less food than other races. Every elf is taught the use of a bow, but their long lives allow them to take up any trade. They are weaker and less hardy than humans, but quicker of body and mind, and generally make more powerful spellcasters. However, they have a notoriously offhanded attitude toward their religious devotions and make poor priests. As a race, Elves possess a preternatural beauty and eyes that see in the dark. endmsg animation elf_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_see_in_dark 1 alive 1 weight 70000 food 500 speed 1 attacktype 1 Str -2 Dex 3 Con -2 Int 2 Wis -3 Pow 2 Cha 4 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object elf_player_force editor_folder player/race name elf_force invisible 1 can_see_in_dark 1 sp 1 hp -1 food 2 type 114 face blank.111 applied 1 no_drop 1 speed 0 end Object fenx_player editor_folder player/race name fenx race fenx randomitems fenx_player_items face fenx.150 msg Skills: Woodsman, Missile Weapons, Jumping, Singing Resistances: None Attunements: None Special: Slow HP regeneration, fast SP regeneration, low food consumption, start with bow & arrows, See in dark Description: Fenxes, also called Fendrakhis by other speaking races, are humanoids that have some fox-like attributes. A little smaller than humans, they are agile and clever, but usually share little affinity with magical forces. Once an important race of Bigworld, they were forced to hide into the Great Forest after they lost an important war against Humans, a long time ago. endmsg animation fenx_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 65000 food 999 speed 1 attacktype 1 Str -2 Dex 4 Con 0 Wis -2 Cha 2 Int 2 Pow -4 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object fenx_player_force editor_folder player/race name fenx_force invisible 1 can_see_in_dark 0 sp 1 hp -1 food 2 type 114 face blank.111 applied 1 no_drop 1 speed 0 end Object fireborn_player editor_folder player/race name fireborn race fire_elemental randomitems fireborn_player_items face fireborn.111 msg Skills: Levivation, Flame Touch, Praying, Pyromancy Resistances: Cold -30, Ghosthit -50, Immunity to Poison and Fire Attunements: Attune Fire Special: Can not use weapons & armor, can wear 4 rings, glowing aura, fast SP regeneration Description: Legends say that fireborn are sparks struck off the anvil of creation, with life and spirit, and eventually mind. Those who research magic think that they are relatives of some kind to will o' the wisps. An observer seeing one for the first time would see a strangely intelligent vortex of flame somehow carrying items without burning them. Their insubstantial nature makes them both very weak and very quick. Their minds are agile, and they are able to commune well with the gods. However, their area of excellence is magic. They spellcast more powerfully than any other race, and mana flows into them readily. They can even cast cold spells with devastating effectiveness. They all know a basic fire spell. They have the ability to levitate at will, and they can touch to burn. As they gain more power, they are increasingly difficult to hit with weapons. However, they cannot use weapons or armour, and thereby miss out on many benefits (including powerful magical enchantments) those items may bring. Fire does not harm them, nor poison. Cold, spiritual drain, and physical drain present great peril to them. By their fiery nature, they glow like a bonfire. This removes the need for them to carry a torch into dark dungeons, but at the same time can attract unfriendly monsters. endmsg animation fireborn_player is_animated 1 type 1 level 1 ac 0 wc 21 dam 0 can_use_shield 0 can_use_armour 0 can_use_weapon 0 path_attuned 2 alive 1 weight 30000 food 999 speed 1 attacktype 5 Str -5 Dex 4 Con 0 Int 2 Wis 2 Cha -2 Pow 7 resist_fire 100 resist_poison 100 resist_cold -30 resist_ghosthit -50 body_range 1 body_neck 2 body_skill 1 body_finger 4 glow_radius 4 maxhp 30 maxsp 30 maxgrace 30 end Object fireborn_player_force editor_folder player/race name Fireborn_Force invisible 1 sp 2 applied 1 type 114 face blank.111 no_drop 1 speed 0 end Object gnome_player editor_folder player/race name gnome race dwarf randomitems gnome_player_items face gnome_p.151 msg Skills: Praying Resistances: None Attunements: None Special: See in dark, Lucky Description: Gnomes and dwarves look so much alike that some speculate that they are the same race, but with very different cultures. No one has been able to talk a Dwarf and a Gnome into attempting interbreeding, however, which would settle the issue. Dwarves and gnomes have a disgust for one another and both find the thought of intimacy with the other repulsive. Despite that, they coexist peacefully enough: perhaps because their interests and needs never conflict. Gnomes do not have nearly the strength or hardiness of dwarves, and they are even more clumsy. They are quite spiritual, and make very good priests, and many are very strong magicians. They can see in the dark, and their familiarity with the gods seems to bring a general blessing of good luck on all Gnomekind. endmsg animation gnome_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_see_in_dark 1 alive 1 weight 50000 food 999 speed 1 luck 1 attacktype 1 Str -1 Dex -3 Con -2 Int 0 Wis 3 Pow 3 Cha 0 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object halfling_player editor_folder player/race name halfling race halfling randomitems halfling_player_items face halfling.151 msg Skills: Stealing, Hiding Resistances: Drain +30 Attunements: None Special: Lucky Description: Halflings are another sub-race of humankind, like the Northman. They are much smaller and shorter than humans, so they are weaker, but they are far quicker and hardier. They're quite unreligious, but many take up magic. Their small size lets them hide more effectively, and for some reason chance seems to favor them with good luck. They are also surprisingly resistant to loss of lifeforce. endmsg animation halfling_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 40000 food 999 speed 1 luck 1 attacktype 1 resist_drain 30 Str -4 Dex 3 Con 4 Wis -3 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object human_player editor_folder player/race name human race human randomitems human_player_items face human.151 msg Skills: Starts with random skill scroll Resistances: None Attunements: None Special: None Description: Humans are the generalists of the races. They are fit for any trade, and usually pick up a skill from their parents in addition to what they've learned as apprentices in their craft. endmsg animation human_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 alive 1 weight 70000 food 999 speed 1 attacktype 1 Str 0 Dex 0 Con 0 Wis 0 Cha 0 Int 0 Pow 0 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object northman_player editor_folder player/race name northman race human randomitems northman_player_items face viking.151 msg Skills: None Resistances: Cold +30 Attunements: Repelled Fire Special: Starts with horned helmet. Description: Northmen are simply humans who have been shaped by their harsh environment. They are stronger, quicker, and hardier than most humans, but also stupid and impious. Most races also consider them a bit unattractive. They have some resistance to cold, but the few of them who take up magic find it difficult to master fire spells. endmsg animation northman_player resist_cold 30 is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 path_repelled 2 alive 1 weight 70000 food 500 speed 0.5 attacktype 1 Str 1 Dex 1 Con 2 Int -2 Wis -1 Pow -1 Cha -1 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object pl_dragon editor_folder player/race name fire hatchling race dragon randomitems dragon_player_items face pl_dragon_r.151 msg Skills: Clawing, Levitate, Woodsman, Pyromancy Resistances: None Attunements: None Special: Can not use weapons or most armor. Natural armor improves over time Description: Dragons are completely different than any other race. Their vast size and bizarre body prevents them both from wearing armour and wielding weapons -- tools that they disdain in any case. Instead, they are gifted with the ability to evolve and grow stronger by eating the flesh of their defeated foes. Over the years, their dragonhide hardens and it can provide better protection than the best armour. Instead of wielding weapons, they use their sharp and lethal claws in combat. Moreover, dragons have a natural talent for magic. Dragons are very interested in the lore of the elements and usually choose to specialize. While focusing their metabolism on a certain element, they can gain various new abilities -- including new spells, enhanced claws and more. Eventually, a dragon is able to evolve from the hatchling stage into a grown-up terrifying ancient dragon. endmsg animation pl_dragon_r is_animated 1 anim_speed -1 type 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed 1 attacktype 1 can_use_shield 0 can_use_armour 0 can_use_weapon 0 Str 5 Dex 0 Con 6 Wis -8 Int -3 Pow 5 body_range 1 body_arm 0 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 maxhp 30 maxsp 30 maxgrace 30 race_choice_1 dragon_ability_force_fire dragon_ability_force_cold dragon_ability_force_electricity dragon_ability_force_poison race_choice_description_1 Choose a dragon focus end Object dragon_skin_force editor_folder player/race name dragon skin invisible 1 type 114 face blank.111 applied 1 no_drop 1 end Object dragon_ability_force editor_folder player/race name dragon ability title fire hatchling invisible 1 type 114 exp 2 face blank.111 neutral 1 no_drop 1 end Object dragon_ability_force_fire editor_folder player/race name Fire hatchling focus title fire hatchling invisible 1 type 10 exp 2 neutral 1 no_drop 1 face pl_dragon_r.151 animation pl_dragon_r is_animated 1 anim_speed -1 auto_apply 1 end Object dragon_ability_force_electricity editor_folder player/race name Electricity hatchling focus title electricity hatchling invisible 1 type 10 exp 3 neutral 1 no_drop 1 face pl_dragon_blue.151 animation pl_dragon_blue is_animated 1 anim_speed -1 auto_apply 1 end Object dragon_ability_force_cold editor_folder player/race name Cold hatchling focus title cold hatchling invisible 1 type 10 exp 4 neutral 1 no_drop 1 face pl_dragon_bl.151 animation pl_dragon_bl is_animated 1 anim_speed -1 auto_apply 1 end Object dragon_ability_force_poison editor_folder player/race name Poison hatchling focus title poison hatchling invisible 1 type 10 exp 10 neutral 1 no_drop 1 face pl_dragon_g.151 animation pl_dragon_g is_animated 1 anim_speed -1 auto_apply 1 end Object pl_half_orc editor_folder player/race name half orc race goblin randomitems half_orc_player_items face pl_half_orc.151 msg Skills: Stealing Resistances: Poison +30 Attunements: Repelled Turning Special: See in Dark Description: Half-Orcs are usually the product of rape, slavery, or some such unpleasantness. They look it too: Half-Orcs are rather ugly. On average, they're stronger, a bit quicker, and hardier than humans, but also stupid, impious, and unmagical. They're resistant to poison and can see in the dark, and every half-orc seems to know how to steal. endmsg animation pl_half_orc is_animated 1 anim_speed -1 no_pick 1 alive 1 level 1 wc 21 ac 10 dam 1 type 1 speed 1 weight 70000 resist_poison 30 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_see_in_dark 1 path_repelled 65536 Str 2 Dex 1 Con 2 Int -2 Wis -2 Pow -1 Cha -3 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object quetzalcoatl_player editor_folder player/race name quetzalcoatl race reptile randomitems quetzalcoatl_player_items face quetzalcoatl.131 msg Skills: Levitation, Clawing Resistances: Cold -30, Immunity to Fire Attunements: Attuned Fire Special: Can not use shields, armor, boots and helmets, starts with burning hands and fireball Description: Quetzalcoatls are a strange mix of snake, bird, human, and a dash of the divine. They are able to manipulate objects with their claws. They are amazingly strong, very quick, and amazingly hardy, but quite stupid and impious (despite the dash of divinity). However, they are strongly magical in nature and usually have a vast reservoir of mana with which to cast any spell they're not too stupid to learn. Often, they're only able to grasp one basic fire spell. Their strongly draconic nature makes them immune to fire and helps them with fire spells, but they are vulnerable to cold. They can grasp weapons, but their bizarre body shape prevents them from using armour, helmets, and other items of apparel intended for bipedal creatures with two arms, two legs, and a head. Their inability to use armour comes back to haunt them when they compare themselves with other races: highly enchanted armour is usually more beneficial than dragonhide! The wings come in handy: they can use them to levitate, and their hide gets thicker as they gain power, compensating them somewhat for not being able to use armour. endmsg animation quetzalcoatl_player is_animated 0 type 1 level 1 ac 5 wc 21 dam 10 alive 1 weight 70000 food 999 speed 1 attacktype 1 path_attuned 2 resist_fire 100 resist_cold -30 can_use_shield 0 can_use_armour 0 can_use_weapon 1 Str 6 Dex 3 Con 6 Wis -8 Int -8 Pow 6 body_range 1 body_arm 2 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_wrist 2 body_waist 1 maxhp 30 maxsp 30 maxgrace 30 end Object serpentman_player editor_folder player/race name serpentman race reptile randomitems serpentman_player_items face serpentman.131 msg Skills: Clawing, Jumping Resistances: Cold -50, Fire +30, Electricity +30, Acid +30, Poison +30, Physical +5 Attunements: None Special: Can not wear boots and helmets, can wear extra ring and bracers. Description: The Serpentman adventurer is a rare breed. Few Serpentmen ever leave the swamps, as they are not well adjusted for human society. Their heads and feet are not shaped properly to use boots or helmets made for humanoid folk, but their unusual build has given rise to a cultural habit of wearing pieces of bracelet- and ring-like jewelry on their tails. They possess a tough hide and strong legs which enable them to leap further than most folks. Their nasty claws can also double as weapons. They are only partially warm-blooded, and are as a result somewhat susceptible to cold. endmsg animation serpentman_player is_animated 0 type 1 level 1 ac 5 wc 21 dam 8 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_see_in_dark 1 alive 1 weight 70000 food 999 speed 1 attacktype 1 resist_cold -50 resist_fire 30 resist_electricity 30 resist_acid 30 resist_poison 30 resist_physical 5 Str 2 Dex 2 Con 4 Wis -2 Int -2 Cha -4 body_range 1 body_arm 2 body_torso 1 body_hand 2 body_neck 1 body_shoulder 1 body_skill 1 body_wrist 4 body_finger 3 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object troll_player editor_folder player/race name troll race troll randomitems troll_player_items face troll_p.151 msg Skills: None Resistances: Fire -30, Cold +30 Attunements: Repelled fire Special: Fast HP regeneration, slow SP regeneration Description: Trolls are usually nasty creatures: scions of Gnarg. They have amazing strength and hardiness, but they're a bit clumsy, very stupid, impious, and bad at handling and obtaining magic. They heal with amazing rapidity and can see in the dark. Because of the above attributes, they're great in any fight. Well, they're great until someone waves torches at them: fire presents great peril to trolls. Most trolls are destroyed on sight by civilized people: but a few have proved deserving of tolerance and are permitted to enter cities. endmsg animation troll_player is_animated 1 anim_speed -1 type 1 level 1 ac 10 wc 21 dam 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 can_see_in_dark 1 alive 1 weight 90000 food 999 speed 1 attacktype 1 Str 5 Dex -1 Con 5 Int -5 Wis -2 Pow -2 Cha -4 resist_fire -30 resist_cold 30 path_repelled 2 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object troll_player_force editor_folder player/race name troll_force applied 1 invisible 1 sp -2 hp 3 type 114 face blank.111 no_drop 1 speed 0 end Object wraith_player editor_folder player/race name Wraith race undead randomitems wraith_player_items face wraithp.151 msg Skills: Wraith Feed Resistances: Fire -25, Cold +30, Immune to Poison, Ghosthit, and Draining Attunements: Denied fire spells, Attune cold spells Special: Undead (immune to disease), can see in dark Description: A Wraith is the spirit of a person who has made an evil bargain in order to persist after natural death, or has been forced involuntarily into its current undead state. This transformation frees them of the limits of a natural lifespan, and grants them immunity to diseases, poison, and loss of lifeforce. Wraiths also need feel little fear of cold, and they can see well in the dark. A Wraith's corporeal form has terrible vulnerabilities: fire and most godpower are dangerous to Wraiths. Their tenuous form makes them quick and somewhat hard to hit, but also weaker and less hardy. Wraiths have a strong affinity to magic, especially cold spells, and are very strong spellcasters. However, they cannot use fire spells for fear of self-destruction. Wraith also do not heal naturally, or gain sustenance from food. Instead they have to feed off the living. endmsg animation wraith_player is_animated 1 anim_speed -1 type 1 level 1 undead 1 ac 6 wc 21 dam 1 alive 1 weight 30000 food 999 can_see_in_dark 1 can_use_shield 1 can_use_armour 1 can_use_weapon 1 attacktype 17 resist_fire -25 resist_drain 100 resist_ghosthit 100 resist_poison 100 resist_cold 30 path_attuned 4 path_denied 2 Str -3 Dex 4 Con -3 Int 2 Wis -3 Pow 3 Cha -4 body_range 1 body_arm 2 body_torso 1 body_head 1 body_neck 1 body_skill 1 body_finger 2 body_shoulder 1 body_foot 2 body_hand 2 body_wrist 2 body_waist 1 body_leg 2 maxhp 30 maxsp 30 maxgrace 30 end Object wraith_player_force editor_folder player/race name Wraith_Force invisible 1 food 60 applied 1 can_see_in_dark 1 type 114 face blank.111 no_drop 1 speed 0 end Object coffee_empty editor_folder potion name empty cup name_pl empty cups nrof 1 last_sp 10 type 15 face coffee_empty.111 material 4 dam 1 weight 50 value 1 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object w_glass_empty editor_folder potion name empty glass name_pl empty glasses nrof 1 last_sp 10 type 15 face w_glass_empty.111 material 4 dam 1 weight 500 value 1 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object boozebottle_empty editor_folder potion name empty bottle name_pl empty bottles nrof 1 last_sp 10 type 15 face boozebottle_empty.111 material 4 dam 1 weight 1000 value 3 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object winebottle_empty editor_folder potion name empty bottle name_pl empty bottles nrof 1 last_sp 10 type 15 face winebottle_empty.111 material 4 dam 1 weight 600 value 3 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object wbottle_empty editor_folder potion name empty bottle name_pl empty bottles nrof 1 last_sp 10 type 15 face wbottle_empty.111 material 4 dam 1 weight 700 value 3 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object potion_empty editor_folder potion name empty bottle name_pl empty bottles nrof 1 last_sp 10 type 15 face potion_empty.111 material 4 dam 1 weight 700 value 3 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object vial_empty editor_folder potion name empty vial name_pl empty vials nrof 1 last_sp 10 type 15 face vial_empty.111 material 4 dam 1 weight 70 value 3 attacktype 1 weapontype 8 client_type 611 body_arm -1 skill one handed weapons end Object potioncha editor_folder potion nrof 1 name potion of charisma face potioncha.111 type 5 level 1 material 4 weight 1500 value 12500 Cha 1 name_pl potions of charisma on_use_yield potion_empty client_type 651 end Object potion_cold editor_folder potion name potion of cold resistance nrof 1 face potioncol.111 type 5 level 1 material 4 weight 1800 value 5800 resist_cold 90 name_pl potions of cold resistance on_use_yield potion_empty client_type 651 end Object potion_cold2 editor_folder potion name potion of frost resistance nrof 1 face potioncol.111 type 5 level 1 material 4 weight 1800 value 28000 resist_cold 95 name_pl potions of frost resistance on_use_yield potion_empty client_type 651 end Object potioncon editor_folder potion nrof 1 name potion of constitution face potioncon.111 type 5 level 1 material 4 weight 1500 value 14500 Con 1 name_pl potions of constitution on_use_yield potion_empty client_type 651 end Object potiondex editor_folder potion nrof 1 name potion of dexterity face potiondex.111 type 5 level 1 material 4 weight 1500 value 14000 Dex 1 name_pl potions of dexterity on_use_yield potion_empty client_type 651 end Object potion_fire editor_folder potion name potion of fire resistance nrof 1 face potionfir.111 type 5 level 1 material 4 weight 1800 value 5200 resist_fire 90 name_pl potions of fire resistance on_use_yield potion_empty client_type 651 end Object potion_fire2 editor_folder potion name potion of lava resistance nrof 1 face potionfir.111 type 5 level 1 material 4 weight 1800 value 28000 resist_fire 95 name_pl potions of lava resistance on_use_yield potion_empty client_type 651 end Object potion_heal editor_folder potion name healing potion nrof 1 face potionhea.111 type 5 level 1 material 4 weight 1800 value 5200 name_pl healing potions on_use_yield potion_empty client_type 651 arch spell_heal end end Object potion_heroism editor_folder potion name potion of heroism nrof 1 face potionhero.111 type 5 level 1 material 4 weight 1000 value 500 name_pl potions of heroism on_use_yield potion_empty client_type 651 arch spell_heroism end end Object potion_improve editor_folder potion name improvement potion nrof 1 face potionimp.111 type 5 level 1 material 4 weight 1800 value 5200 attacktype 1048576 name_pl improvement potions on_use_yield potion_empty client_type 651 end Object potionint editor_folder potion nrof 1 name potion of intelligence face potionint.111 type 5 level 1 material 4 weight 1500 value 13000 Int 1 name_pl potions of intelligence on_use_yield potion_empty client_type 651 end Object potion_shielding editor_folder potion name potion of shielding nrof 1 face potioninv.111 type 5 level 1 material 4 weight 2000 value 10000 resist_physical 90 name_pl potions of shielding on_use_yield potion_empty client_type 651 end Object potion_aethereality editor_folder potion name potion of aethereality nrof 1 face potion_aether.111 type 5 level 1 material 4 weight 2000 value 28000 resist_physical 95 name_pl potions of aethereality on_use_yield potion_empty client_type 651 end Object potion_magic editor_folder potion name magic power potion nrof 1 face potionmag.111 type 5 level 1 material 4 weight 1800 value 5200 name_pl magic power potions on_use_yield potion_empty client_type 651 arch spell_regenerate_spellpoints end end Object potionpow editor_folder potion nrof 1 name potion of power face potionpow.111 type 5 level 1 material 4 weight 1500 value 13500 Pow 1 name_pl potions of power on_use_yield potion_empty client_type 651 end Object potion_restoration editor_folder potion name supreme potion of life face potion_heal2.111 value 20000 type 5 level 130 attacktype 65536 nrof 1 weight 1500 name_pl supreme potions of life on_use_yield potion_empty client_type 651 end Object minor_potion_restoration editor_folder potion name minor potion of life face potion_heal2.111 value 500 type 5 level 5 attacktype 65536 nrof 1 weight 1500 name_pl minor potions of life on_use_yield potion_empty client_type 651 end Object medium_potion_restoration editor_folder potion name medium potion of life face potion_heal2.111 value 3000 type 5 level 30 attacktype 65536 nrof 1 weight 1500 name_pl medium potions of life on_use_yield potion_empty client_type 651 end Object major_potion_restoration editor_folder potion name major potion of life face potion_heal2.111 value 10000 type 5 level 50 attacktype 65536 nrof 1 weight 1500 name_pl major potions of life on_use_yield potion_empty client_type 651 end Object potionstr editor_folder potion nrof 1 name potion of strength face potionstr.111 type 5 level 1 material 4 weight 1500 value 15000 Str 1 name_pl potions of strength on_use_yield potion_empty client_type 651 end Object potionwis editor_folder potion nrof 1 name potion of wisdom face potionwis.111 type 5 level 1 material 4 weight 1500 value 12000 Wis 1 name_pl potions of wisdom on_use_yield potion_empty client_type 651 end Object vial_water editor_folder potion face vial_water.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object vial_blue editor_folder potion face vial_blue.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object vial_cyan editor_folder potion face vial_cyan.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object vial_green editor_folder potion face vial_green.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object vial_magenta editor_folder potion face vial_magenta.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object vial_red editor_folder potion face vial_red.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object vial_yellow editor_folder potion face vial_yellow.111 name vial name_pl vials food 5 nrof 1 type 54 material 32 value 4 weight 150 on_use_yield vial_empty client_type 611 end Object random_artifact editor_folder random face randomArti.111 type 4 hp 1 randomitems random_artifact auto_apply 1 end Object random_bow editor_folder random face randomBow.111 type 4 hp 1 randomitems missile_weapons auto_apply 1 end Object random_food editor_folder random face randomFood.111 type 4 hp 1 randomitems random_food auto_apply 1 end Object random_gem editor_folder random face randomGem.111 type 4 hp 1 randomitems random_gem auto_apply 1 end Object random_mineral editor_folder random face randomMin.111 type 4 hp 1 randomitems random_inorganic auto_apply 1 end Object random_plant editor_folder random face randomPlt.111 type 4 hp 1 randomitems random_plant auto_apply 1 end Object random_potion editor_folder random face randomPoti.111 type 4 hp 1 randomitems random_potion auto_apply 1 end Object random_reading editor_folder random face randomRead.111 type 4 hp 1 randomitems random_read auto_apply 1 end Object random_scroll editor_folder random face randomScro.111 type 4 hp 1 randomitems random_scroll auto_apply 1 end Object random_shield editor_folder random face randomShie.111 type 4 hp 1 randomitems random_armour auto_apply 1 end Object random_spells editor_folder random face randomSpel.111 type 4 hp 1 randomitems random_spells auto_apply 1 end Object random_talisman editor_folder random face randomTali.111 type 4 hp 1 randomitems random_talisman auto_apply 1 end Object random_treasure editor_folder random face randomTrea.111 type 4 hp 1 randomitems chest_items auto_apply 1 end Object random_wealth editor_folder random face randomWeal.111 type 4 hp 1 randomitems random_wealth auto_apply 1 end Object random_weapon editor_folder random face randomWeap.111 type 4 hp 1 randomitems random_weapon auto_apply 1 end Object random_tree_green editor_folder random face random_tree_green.111 type 4 hp 1 randomitems random_tree_green auto_apply 1 end Object bankcard editor_folder readable name bank card face bankcard.111 nrof 1 type 8 subtype 12 material 1 skill literacy value 8 weight 2 name_pl bank cards client_type 1041 end Object book_clasp editor_folder readable name book nrof 1 face book_clasp.111 type 8 subtype 1 skill literacy material 1 value 65 weight 4000 name_pl books client_type 1041 end Object book_read editor_folder readable name book nrof 1 face book_read.111 type 8 subtype 3 skill literacy material 1 value 13 weight 3000 name_pl books client_type 1041 end Object card editor_folder readable face card.111 nrof 1 type 8 subtype 12 material 1 skill literacy value 8 weight 2 name_pl cards client_type 1041 end Object checkbook editor_folder readable name cheque book nrof 1 face checkbook.111 type 8 subtype 5 skill literacy material 1 value 10 weight 1000 name_pl cheque books client_type 1041 end Object cross_sign editor_folder readable name sign face crossroad.111 type 98 subtype 41 activate_on_push 1 activate_on_release 1 no_pick 1 client_type 25021 end Object diploma editor_folder readable face diploma.111 nrof 1 type 8 subtype 15 skill literacy material 1 value 8000 weight 500 name_pl diplomas client_type 1041 end Object book_red editor_folder readable/guide name red book name_pl red books nrof 1 face book_red.111 type 8 subtype 1 skill literacy material 1 weight 4000 value 65 end Object guide_alchemy editor_folder readable/guide name guide to Alchemy msg o To practice the art of alchemy, you will first need to learn some recipes. These can be found in some of the old books that are sold in magic shops. o To earn a little money, you should kill some orcs/goblins and cast the spell "alchemy" over the loot, turning it into small gold nuggets. o When you know some recipes, you must try to collect the listed ingredients. Some can be bought in alchemy-shops, others must be collected in dungeons. To identify unknown minerals or potions type "use_skill alchemy". o Once you got all ingredients to complete a recipe, you must put them into your cauldron. The amount of ingredients must also be correct. Put the cauldron on the floor, close it and use the skill "alchemy" upon it. If you are lucky, you will get what you longed for. o Use alchemy to earn money as well as for creating potions/balms for combat. endmsg nrof 1 face book_red.111 type 8 subtype 2 skill literacy material 1 weight 4000 end Object guide_melee editor_folder readable/guide name guide to Close Combat msg o To become a mighty warrior, you need basically three things: A good weapon, good armour and physical toughness. Then you can kill your foes simply by running into them. o Physical toughness means you will need high Str (for good attacking power) and Con (for many hitpoints) stats. Look for "potions of Strength/Constitution". Try to get items that speed up your health-regeneration too. o Weapons will be very important for you. Note that every weapon has certain "attacktypes". Most monsters are vulner- able to one or two attacktypes. Search for artifact weapons and experiment with different weapons on different monsters. o You should know that there are ways to enchant ordinary weapons. However, it tends to be very costly. o It can be helpful to advance at least a very little bit in divine magic. Spells for healing, curing and protections can save your life more than once. o Use resist. potions to level up quickly. o Feeling strong already? Hah - You're a greenhorn unless you can at least kill a titan with one hit! endmsg nrof 1 face book_red.111 type 8 skill literacy material 1 weight 4000 end Object guide_priest editor_folder readable/guide name guide to Faith msg o If you plan to utilize divine powers you must first choose a cult. Enter a temple of the cult you want to join. Step onto the altar and pray (type "use_skill praying"). The divine spirit will touch your soul, attuning your mortal being to your god. o Next you must learn prayers. Prayer books can be bought in magic shops. Some prayers will have different effects for every cult. Try to find "holy word" and "bless". o Casting divine spells (= prayers) will drain grace. When it runs low, pray to renew your faith. If your maximum grace is too low you should try to increase your Wisdom stat. o You can change cults anytime, but beware: Your former deity will become very angry and punish you! You might lose wisdom levels. o Return to the temple of your cult regularly. Step onto the altar and pray. This will please your deity... And rest assured, the gods do know how to reward a worthy disciple! o Never lose your faith! Rumors tell about divine spells of incredible power, and of old, wise priests that have almost reached immortality... endmsg nrof 1 face book_red.111 type 8 subtype 2 skill literacy material 1 weight 4000 end Object guide_summon editor_folder readable/guide name guide to the Art of Summoning msg o There are two classes of summoning spells: Golem-type spells, which summon a creature that will move straight forward attempting to kill any monster blocking the way; and Petmonster-type spells, which summon masses of little helpers, that fight in your cause. o Use golem-like spells to take down strong enemies. For example: "summon golem", "summon xxx elemental", "staff to snake", "summon avatar". o Use petmonsters to clear out large maps with creatures of decent level (compared to yours). For example: "summon pet monster", "summon cult monster", "call holy servant". o As you raise your skill-level, most summoning spells will increase in power. o It is probably stupid to use *nothing* except summoning spells. But there are situations where a summoner survives while another wizard would have died. Once you have seen the first Balrog fall to your avatar, there will be no doubt about your power. endmsg nrof 1 face book_red.111 type 8 subtype 2 skill literacy material 1 weight 4000 end Object guide_wizard editor_folder readable/guide name guide to Wizardry msg o There are four separate magic skills: evocation, pyromancy, sorcery, and summoning. Each skill allows a different set of spells to be learned and used. o To advance in the powerful art of magic you must first learn some spells. Spellbooks can be bought in magic stores. o Spellcasting will drain your mana. If you run low drink a "magic power potion" if you can afford it. Extremely helpful are items that speed up your mana-regeneration. Don't expect to find them easily though! o Try to increase your Pow stat. by wearing rings and drinking "potions of power". This will boost your max. amount of mana. o All spells are classified in certain spell-paths. Most of them divide up into one of the elemental paths: fire, cold and electricity. Search for items granting attunement to these spell-paths. This will reduce the mana-cost for affected spells. Sometimes it can have other positive effects as well. o Most monsters are vulnerable to certain elemental (and other) attacks. Try to figure out what spells work best for each type of monster. This will increase your efficiency. o Your magic attacks might soon become very powerful. But don't forget to seize your full capabilities: use spells for protection, concealing, summoning... be inventive! endmsg nrof 1 face book_red.111 type 8 subtype 2 skill literacy material 1 weight 4000 end Object imperial editor_folder readable name Imperial Bank Note face imperial.111 race gold and jewels nrof 1 type 36 skill literacy material 1 value 10000 weight 5 name_pl imperials msg One Imperial note "Nunc Est Dispendum" eton lairepmI enO endmsg level 1 client_type 1041 end Object imperial10 editor_folder readable name Ten Imperial Bank Note face imperial.111 race gold and jewels nrof 1 type 36 skill literacy material 1 value 100000 weight 5 name_pl 10 Imperial Bank Notes msg One Imperial note "Nunc Est Dispendum" eton lairepmI enO endmsg level 1 client_type 1041 end Object imperial100 editor_folder readable name One Hundred Imperial Bank Note face imperial.111 race gold and jewels nrof 1 type 36 skill literacy material 1 value 1000000 weight 5 name_pl 100 Imperial Bank Notes msg One Imperial note "Nunc Est Dispendum" eton lairepmI enO endmsg level 1 client_type 1041 end Object letter editor_folder readable face letter.111 nrof 1 type 8 subtype 27 skill literacy material 1 value 20 weight 200 name_pl letters client_type 1041 end Object menu editor_folder readable name Shop Inventory face sign.111 type 150 no_pick 1 client_type 25021 end Object monument editor_folder readable face monument.111 type 98 subtype 42 activate_on_push 1 activate_on_release 1 no_pick 1 client_type 25021 end Object note editor_folder readable face note.111 race scrolls nrof 1 type 8 subtype 24 skill literacy material 1 value 8 weight 75 name_pl notes client_type 1041 end Object quarto editor_folder readable name thin book nrof 1 face quarto.111 type 8 subtype 5 skill literacy material 1 value 80 weight 1000 name_pl thin books client_type 1041 end Object scroll editor_folder readable name scroll race scrolls face scrollr.111 nrof 1 type 8 subtype 35 skill literacy material 1 value 30 weight 300 name_pl scrolls client_type 1041 end Object scroll_2 editor_folder readable name scroll face scroll_2.111 race scrolls nrof 1 type 8 subtype 33 skill literacy material 1 value 34 weight 350 name_pl scrolls client_type 1041 end Object sign editor_folder readable face sign.111 type 98 subtype 38 activate_on_push 1 activate_on_release 1 no_pick 1 client_type 25021 end Object sign_e editor_folder readable name sign face sign_e.111 type 98 subtype 40 activate_on_push 1 activate_on_release 1 no_pick 1 client_type 25021 end Object sign_w editor_folder readable name sign face sign_w.111 type 98 subtype 39 activate_on_push 1 activate_on_release 1 no_pick 1 client_type 25021 end Object tome editor_folder readable name tome nrof 1 face tome.111 type 8 subtype 4 skill literacy material 1 value 80 weight 8000 name_pl tomes client_type 1041 end Object river_crook_ns-ne editor_folder river face branch_125.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_ns-ne editor_folder river face branch_125.211 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_ns-e editor_folder river face branch_135.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_we-n editor_folder river face branch_137.111 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_ns-se editor_folder river face branch_145.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_ns-se editor_folder river face branch_145.211 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_ns-sw editor_folder river face branch_156.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_ns-sw editor_folder river face branch_156.211 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_ns-w editor_folder river face branch_157.111 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_ns-nw editor_folder river face branch_158.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_ns-nw editor_folder river face branch_158.211 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_we-ne editor_folder river face branch_237.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_we-ne editor_folder river face branch_237.211 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_we-se editor_folder river face branch_347.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_we-se editor_folder river face branch_347.211 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_we-s editor_folder river face branch_357.111 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_we-sw editor_folder river face branch_367.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_we-sw editor_folder river face branch_367.211 name river junction move_block all no_pick 1 is_water 1 end Object river_crook_we-nw editor_folder river face branch_378.111 name river junction move_block all no_pick 1 is_water 1 end Object river_junct_we-nw editor_folder river face branch_378.211 name river junction move_block all no_pick 1 is_water 1 end Object river_bridge_ns editor_folder river face bridge_15.111 name bridge no_pick 1 is_water 1 end Object river_bridge_we editor_folder river face bridge_37.111 name bridge no_pick 1 is_water 1 end Object river_ford_ns editor_folder river face ford_ns.111 name ford no_pick 1 is_water 1 end Object river_ford_we editor_folder river face ford_we.111 name ford no_pick 1 is_water 1 end Object river_se-n editor_folder river face river_14.111 name river move_block all no_pick 1 is_water 1 end Object river_n-s editor_folder river face river_15.111 name river move_block all no_pick 1 is_water 1 end Object river_sw-n editor_folder river face river_16.111 name river move_block all no_pick 1 is_water 1 end Object river_ne-s editor_folder river face river_25.111 name river move_block all no_pick 1 is_water 1 end Object river_sw-ne editor_folder river face river_26.111 name river move_block all no_pick 1 is_water 1 end Object river_sw-ne_l editor_folder river face river_26.211 name river move_block all no_pick 1 is_water 1 end Object river_sw-ne_u editor_folder river face river_26.311 name river move_block all no_pick 1 is_water 1 end Object river_ne-w editor_folder river face river_27.111 name river move_block all no_pick 1 is_water 1 end Object river_sw-e editor_folder river face river_36.111 name river move_block all no_pick 1 is_water 1 end Object river_w-e editor_folder river face river_37.111 name river move_block all no_pick 1 is_water 1 end Object river_nw-e editor_folder river face river_38.111 name river move_block all no_pick 1 is_water 1 end Object river_se-w editor_folder river face river_47.111 name river move_block all no_pick 1 is_water 1 end Object river_nw-se editor_folder river face river_48.111 name river move_block all no_pick 1 is_water 1 end Object river_nw-se_l editor_folder river face river_48.211 name river move_block all no_pick 1 is_water 1 end Object river_nw-se_u editor_folder river face river_48.311 name river move_block all no_pick 1 is_water 1 end Object river_nw-s editor_folder river face river_58.111 name river move_block all no_pick 1 is_water 1 end Object a_bridge1 editor_folder road/a_bridge name bridge face a_bridge1.111 type 67 move_on walk no_pick 1 end Object a_bridge2 editor_folder road/a_bridge name bridge face a_bridge2.111 type 67 move_on walk no_pick 1 end Object bridge_2 editor_folder road/bridgemoat name bridge face bridge_m0.111 no_pick 1 end Object bridge_1 editor_folder road/bridgemoat name bridge face bridge_m1.111 no_pick 1 end Object dirtroad_0 editor_folder road/dirtroad name dirtroad face dirtroad_0.111 no_pick 1 end Object dirtroad_1_2 editor_folder road/dirtroad name dirtroad face dirtroad_1.111 no_pick 1 end Object dirtroad_1_4 editor_folder road/dirtroad name dirtroad face dirtroad_2.111 no_pick 1 end Object dirtroad_2_2_1 editor_folder road/dirtroad name dirtroad face dirtroad_3.111 no_pick 1 end Object dirtroad_1_1 editor_folder road/dirtroad name dirtroad face dirtroad_4.111 no_pick 1 end Object dirtroad_2_1_1 editor_folder road/dirtroad name dirtroad face dirtroad_5.111 no_pick 1 end Object dirtroad_2_2_2 editor_folder road/dirtroad name dirtroad face dirtroad_6.111 no_pick 1 end Object dirtroad_3_2 editor_folder road/dirtroad name dirtroad face dirtroad_7.111 no_pick 1 end Object dirtroad_1_3 editor_folder road/dirtroad name dirtroad face dirtroad_8.111 no_pick 1 end Object dirtroad_2_2_4 editor_folder road/dirtroad name dirtroad face dirtroad_9.111 no_pick 1 end Object dirtroad_2_1_2 editor_folder road/dirtroad name dirtroad face dirtroad_A.111 no_pick 1 end Object dirtroad_3_1 editor_folder road/dirtroad name dirtroad face dirtroad_B.111 no_pick 1 end Object dirtroad_2_2_3 editor_folder road/dirtroad name dirtroad face dirtroad_C.111 no_pick 1 end Object dirtroad_3_4 editor_folder road/dirtroad name dirtroad face dirtroad_D.111 no_pick 1 end Object dirtroad_3_3 editor_folder road/dirtroad name dirtroad face dirtroad_E.111 no_pick 1 end Object dirtroad_4 editor_folder road/dirtroad name dirtroad face dirtroad_F.111 no_pick 1 end Object dirtroad_2_051 editor_folder road/dirtroad name dirtroad face dirtroad_05.111 no_pick 1 end Object dirtroad_2_052 editor_folder road/dirtroad name dirtroad face dirtroad_05.211 no_pick 1 end Object dirtroad_2_053 editor_folder road/dirtroad name dirtroad face dirtroad_05.311 no_pick 1 end Object dirtroad_2_0A1 editor_folder road/dirtroad name dirtroad face dirtroad_0A.111 no_pick 1 end Object dirtroad_2_0A2 editor_folder road/dirtroad name dirtroad face dirtroad_0A.211 no_pick 1 end Object dirtroad_2_0A3 editor_folder road/dirtroad name dirtroad face dirtroad_0A.311 no_pick 1 end Object dirtroad_2_141 editor_folder road/dirtroad name dirtroad face dirtroad_14.111 no_pick 1 end Object dirtroad_2_181 editor_folder road/dirtroad name dirtroad face dirtroad_18.111 no_pick 1 end Object dirtroad_2_211 editor_folder road/dirtroad name dirtroad face dirtroad_21.111 no_pick 1 end Object dirtroad_2_281 editor_folder road/dirtroad name dirtroad face dirtroad_28.111 no_pick 1 end Object dirtroad_2_411 editor_folder road/dirtroad name dirtroad face dirtroad_41.111 no_pick 1 end Object dirtroad_2_421 editor_folder road/dirtroad name dirtroad face dirtroad_42.111 no_pick 1 end Object dirtroad_2_821 editor_folder road/dirtroad name dirtroad face dirtroad_82.111 no_pick 1 end Object dirtroad_2_841 editor_folder road/dirtroad name dirtroad face dirtroad_84.111 no_pick 1 end Object drawbridge_1 editor_folder road/drawbridge name drawbridge face dbridge1.111 no_pick 1 end Object drawbridge_2 editor_folder road/drawbridge name drawbridge face dbridge2.111 no_pick 1 end Object footbridge_0 editor_folder road/footbridge name footbridge face footbridge_0.111 no_pick 1 end Object footbridge_1_2 editor_folder road/footbridge name footbridge face footbridge_1.111 no_pick 1 end Object footbridge_1_4 editor_folder road/footbridge name footbridge face footbridge_2.111 no_pick 1 end Object footbridge_2_2_1 editor_folder road/footbridge name footbridge face footbridge_3.111 no_pick 1 end Object footbridge_1_1 editor_folder road/footbridge name footbridge face footbridge_4.111 no_pick 1 end Object footbridge_2_1_1 editor_folder road/footbridge name footbridge face footbridge_5.111 no_pick 1 end Object footbridge_2_2_2 editor_folder road/footbridge name footbridge face footbridge_6.111 no_pick 1 end Object footbridge_3_2 editor_folder road/footbridge name footbridge face footbridge_7.111 no_pick 1 end Object footbridge_1_3 editor_folder road/footbridge name footbridge face footbridge_8.111 no_pick 1 end Object footbridge_2_2_4 editor_folder road/footbridge name footbridge face footbridge_9.111 no_pick 1 end Object footbridge_2_1_2 editor_folder road/footbridge name footbridge face footbridge_A.111 no_pick 1 end Object footbridge_3_1 editor_folder road/footbridge name footbridge face footbridge_B.111 no_pick 1 end Object footbridge_2_2_3 editor_folder road/footbridge name footbridge face footbridge_C.111 no_pick 1 end Object footbridge_3_4 editor_folder road/footbridge name footbridge face footbridge_D.111 no_pick 1 end Object footbridge_3_3 editor_folder road/footbridge name footbridge face footbridge_E.111 no_pick 1 end Object footbridge_4 editor_folder road/footbridge name footbridge face footbridge_F.111 no_pick 1 end Object footpath_0 editor_folder road/footpath name footpath face footpath_0.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_1_2 editor_folder road/footpath name footpath face footpath_1.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_1_4 editor_folder road/footpath name footpath face footpath_2.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_2_2_1 editor_folder road/footpath name footpath face footpath_3.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_1_1 editor_folder road/footpath name footpath face footpath_4.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_2_1_1 editor_folder road/footpath name footpath face footpath_5.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_2_2_2 editor_folder road/footpath name footpath face footpath_6.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_3_2 editor_folder road/footpath name footpath face footpath_7.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_1_3 editor_folder road/footpath name footpath face footpath_8.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_2_2_4 editor_folder road/footpath name footpath face footpath_9.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_2_1_2 editor_folder road/footpath name footpath face footpath_A.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_3_1 editor_folder road/footpath name footpath face footpath_B.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_2_2_3 editor_folder road/footpath name footpath face footpath_C.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_3_4 editor_folder road/footpath name footpath face footpath_D.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_3_3 editor_folder road/footpath name footpath face footpath_E.111 no_pick 1 is_floor 1 smoothlevel 40 end Object footpath_4 editor_folder road/footpath name footpath face footpath_F.111 no_pick 1 is_floor 1 smoothlevel 40 end Object paved_0 editor_folder road/paved name paved road face paved_0.111 no_pick 1 end Object paved_1_2 editor_folder road/paved name paved road face paved_1.111 no_pick 1 end Object paved_1_4 editor_folder road/paved name paved road face paved_2.111 no_pick 1 end Object paved_2_2_1 editor_folder road/paved name paved road face paved_3.111 no_pick 1 end Object paved_1_1 editor_folder road/paved name paved road face paved_4.111 no_pick 1 end Object paved_2_1_1 editor_folder road/paved name paved road face paved_5.111 no_pick 1 end Object paved_2_2_2 editor_folder road/paved name paved road face paved_6.111 no_pick 1 end Object paved_3_2 editor_folder road/paved name paved road face paved_7.111 no_pick 1 end Object paved_1_3 editor_folder road/paved name paved road face paved_8.111 no_pick 1 end Object paved_2_2_4 editor_folder road/paved name paved road face paved_9.111 no_pick 1 end Object paved_2_1_2 editor_folder road/paved name paved road face paved_A.111 no_pick 1 end Object paved_3_1 editor_folder road/paved name paved road face paved_B.111 no_pick 1 end Object paved_2_2_3 editor_folder road/paved name paved road face paved_C.111 no_pick 1 end Object paved_3_4 editor_folder road/paved name paved road face paved_D.111 no_pick 1 end Object paved_3_3 editor_folder road/paved name paved road face paved_E.111 no_pick 1 end Object paved_4 editor_folder road/paved name paved road face paved_F.111 no_pick 1 end Object s_bridge1 editor_folder road/s_bridge name bridge face s_bridge1.111 type 67 move_on walk no_pick 1 end Object s_bridge1a editor_folder road/s_bridge name bridge face s_bridge1a.111 type 67 move_on walk no_pick 1 end Object s_bridge1b editor_folder road/s_bridge name bridge face s_bridge1b.111 type 67 move_on walk no_pick 1 end Object s_bridge2 editor_folder road/s_bridge name bridge face s_bridge2.111 type 67 move_on walk no_pick 1 end Object s_bridge2a editor_folder road/s_bridge name bridge face s_bridge2a.111 type 67 move_on walk no_pick 1 end Object s_bridge2b editor_folder road/s_bridge name bridge face s_bridge2b.111 type 67 move_on walk no_pick 1 end Object stonebridge_0 editor_folder road/stonebridge name stonebridge face stonebridge_0.111 no_pick 1 end Object stonebridge_1_2 editor_folder road/stonebridge name stonebridge face stonebridge_1.111 no_pick 1 end Object stonebridge_1_4 editor_folder road/stonebridge name stonebridge face stonebridge_2.111 no_pick 1 end Object stonebridge_2_2_1 editor_folder road/stonebridge name stonebridge face stonebridge_3.111 no_pick 1 end Object stonebridge_1_1 editor_folder road/stonebridge name stonebridge face stonebridge_4.111 no_pick 1 end Object stonebridge_2_1_1 editor_folder road/stonebridge name stonebridge face stonebridge_5.111 no_pick 1 end Object stonebridge_2_2_2 editor_folder road/stonebridge name stonebridge face stonebridge_6.111 no_pick 1 end Object stonebridge_3_2 editor_folder road/stonebridge name stonebridge face stonebridge_7.111 no_pick 1 end Object stonebridge_1_3 editor_folder road/stonebridge name stonebridge face stonebridge_8.111 no_pick 1 end Object stonebridge_2_2_4 editor_folder road/stonebridge name stonebridge face stonebridge_9.111 no_pick 1 end Object stonebridge_2_1_2 editor_folder road/stonebridge name stonebridge face stonebridge_A.111 no_pick 1 end Object stonebridge_3_1 editor_folder road/stonebridge name stonebridge face stonebridge_B.111 no_pick 1 end Object stonebridge_2_2_3 editor_folder road/stonebridge name stonebridge face stonebridge_C.111 no_pick 1 end Object stonebridge_3_4 editor_folder road/stonebridge name stonebridge face stonebridge_D.111 no_pick 1 end Object stonebridge_3_3 editor_folder road/stonebridge name stonebridge face stonebridge_E.111 no_pick 1 end Object stonebridge_4 editor_folder road/stonebridge name stonebridge face stonebridge_F.111 no_pick 1 end Object yellow_0 editor_folder road/yellow is_floor 1 name brick road face yellow_0.111 no_pick 1 end Object yellow_1_2 editor_folder road/yellow name brick road face yellow_1.111 no_pick 1 end Object yellow_1_4 editor_folder road/yellow name brick road face yellow_2.111 no_pick 1 end Object yellow_2_2_1 editor_folder road/yellow name brick road face yellow_3.111 no_pick 1 end Object yellow_1_1 editor_folder road/yellow name brick road face yellow_4.111 no_pick 1 end Object yellow_2_1_1 editor_folder road/yellow name brick road face yellow_5.111 no_pick 1 end Object yellow_2_2_2 editor_folder road/yellow name brick road face yellow_6.111 no_pick 1 end Object yellow_3_2 editor_folder road/yellow name brick road face yellow_7.111 no_pick 1 end Object yellow_1_3 editor_folder road/yellow name brick road face yellow_8.111 no_pick 1 end Object yellow_2_2_4 editor_folder road/yellow name brick road face yellow_9.111 no_pick 1 end Object yellow_2_1_2 editor_folder road/yellow name brick road face yellow_A.111 no_pick 1 end Object yellow_3_1 editor_folder road/yellow name brick road face yellow_B.111 no_pick 1 end Object yellow_2_2_3 editor_folder road/yellow name brick road face yellow_C.111 no_pick 1 end Object yellow_3_4 editor_folder road/yellow name brick road face yellow_D.111 no_pick 1 end Object yellow_3_3 editor_folder road/yellow name brick road face yellow_E.111 no_pick 1 end Object yellow_4 editor_folder road/yellow name brick road face yellow_F.111 no_pick 1 end Object yellow_ne editor_folder road/yellow name brick road face yellow_ne.111 no_pick 1 end Object yellow_se editor_folder road/yellow name brick road face yellow_se.111 no_pick 1 end Object yellow_sw editor_folder road/yellow name brick road face yellow_sw.111 no_pick 1 end Object yellow_nw editor_folder road/yellow name brick road face yellow_nw.111 no_pick 1 end Object shop_alchemy editor_folder shop/Floors name tiles is_floor 1 face shop_alchemy.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_alchemy damned 1 end Object shop_amulets editor_folder shop/Floors name tiles is_floor 1 face shop_amule.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_amulet damned 1 end Object shop_armour editor_folder shop/Floors name tiles is_floor 1 face shop_armou.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_armour damned 1 end Object shop_books editor_folder shop/Floors name tiles is_floor 1 face shop_books.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_books damned 1 end Object shop_empty editor_folder shop/Floors name tiles is_floor 1 face shop_empty.111 no_pick 1 type 68 no_magic 1 damned 1 end Object shop_floor editor_folder shop/Floors name tiles is_floor 1 face shop_empty.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_shop damned 1 end Object shop_food editor_folder shop/Floors name tiles is_floor 1 face shop_food.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_food damned 1 end Object shop_gems editor_folder shop/Floors name tiles is_floor 1 face shop_gems.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_gems exp 100000 damned 1 end Object shop_general editor_folder shop/Floors name tiles is_floor 1 face shop_gener.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_general damned 1 end Object shop_light editor_folder shop/Floors name tiles is_floor 1 face shop_gener.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_light damned 1 end Object shop_mat editor_folder shop/Floors name doormat face shop_mat.111 no_pick 1 type 69 move_on walk fly_low damned 1 end Object shop_minerals editor_folder shop/Floors name tiles is_floor 1 face shop_mineral.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_minerals damned 1 end Object shop_potions editor_folder shop/Floors name tiles is_floor 1 face shop_potio.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_potions damned 1 end Object shop_ring editor_folder shop/Floors name tiles is_floor 1 face shop_ring.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shop_rings damned 1 end Object shop_scrolls editor_folder shop/Floors name tiles is_floor 1 face shop_scrol.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_scroll damned 1 end Object shop_special editor_folder shop/Floors name tiles is_floor 1 face shop_speci.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_special damned 1 end Object shop_throw editor_folder shop/Floors name tiles is_floor 1 face shop_throw.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shoparchery damned 1 end Object shop_wands editor_folder shop/Floors name tiles is_floor 1 face shop_wands.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_wands damned 1 end Object shop_weapon editor_folder shop/Floors name tiles is_floor 1 face shop_weapo.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems random_weapon damned 1 end Object shop_weapon_east editor_folder shop/Floors name tiles is_floor 1 face shop_weapo.111 no_pick 1 no_magic 1 type 68 auto_apply 1 randomitems shopweapoeast damned 1 end Object alchemy_diamond_converter editor_folder shop name alchemy bath: create diamond other_arch gem slaying goldcoin food 40 type 103 no_pick 1 face lava.111 animation alchemy_diamond_converter anim_speed 2 client_anim_random 1 move_on walk end Object alchemy_ruby_converter editor_folder shop name alchemy bath: create ruby other_arch ruby slaying goldcoin food 20 type 103 no_pick 1 face lava.111 animation alchemy_ruby_converter anim_speed 2 client_anim_random 1 move_on walk end Object alchemy_pearl_converter editor_folder shop name alchemy bath: create pearl other_arch pearl slaying goldcoin food 5 type 103 no_pick 1 face lava.111 animation alchemy_pearl_converter anim_speed 2 client_anim_random 1 move_on walk end Object bank editor_folder shop face bank.x11 type 66 no_pick 1 move_block all end More Object bank_2 editor_folder shop name bank face bank.x11 type 66 no_pick 1 move_block all x 1 end More Object bank_3 editor_folder shop name bank face bank.x11 type 66 no_pick 1 y 1 end More Object bank_4 editor_folder shop name bank face bank.x11 type 66 no_pick 1 x 1 y 1 end Object bank_west editor_folder shop name bank face bank_west.x11 type 66 no_pick 1 move_block all end More Object bank_west_2 editor_folder shop name bank face bank_west.x11 type 66 no_pick 1 move_block all x 1 end More Object bank_west_3 editor_folder shop name bank face bank_west.x11 type 66 no_pick 1 y 1 end More Object bank_west_4 editor_folder shop name bank face bank_west.x11 type 66 no_pick 1 x 1 y 1 end Object diamond_converter editor_folder shop name drop gold to buy diamonds, 40 for 1 other_arch gem slaying goldcoin food 40 type 103 no_pick 1 face diamond_converter.111 move_on walk end Object pearl_converter editor_folder shop name drop gold to buy pearls, 5 for 1 other_arch pearl slaying goldcoin type 103 food 5 no_pick 1 face pearl_converter.111 move_on walk end Object ruby_converter editor_folder shop name drop gold to buy rubies, 20 for 1 other_arch ruby slaying goldcoin food 20 type 103 no_pick 1 face ruby_converter.111 move_on walk end Object silver_converter editor_folder shop name convert silver into gold, 10 for 1 other_arch goldcoin slaying silvercoin food 10 type 103 no_pick 1 face silver_converter.111 move_on walk end Object gold_converter editor_folder shop name convert gold into platinum, 5 for 1 other_arch platinacoin slaying goldcoin food 5 type 103 no_pick 1 face gold_converter.111 move_on walk end Object platinum_converter editor_folder shop name convert platinum into gold, 1 for 5 other_arch goldcoin slaying platinacoin food 1 sp 5 type 103 no_pick 1 face platinum_converter.111 move_on walk end Object platinum_converter2 editor_folder shop name convert platinum into jade, 100 for 1 other_arch jadecoin slaying platinacoin food 100 type 103 no_pick 1 face platinum_converter2.111 move_on walk end Object jade_converter editor_folder shop name convert jade into amberium, 100 for 1 other_arch ambercoin slaying jadecoin food 100 type 103 no_pick 1 face jade_converter.111 move_on walk end Object jade_converter2 editor_folder shop name convert jade into platinum, 1 for 100 other_arch platinacoin slaying jadecoin food 1 sp 100 type 103 no_pick 1 face jade_converter2.111 move_on walk end Object amberium_converter editor_folder shop name convert amberium into jade, 1 for 100 other_arch jadecoin slaying ambercoin food 100 sp 1 type 103 no_pick 1 face amberium_converter.111 move_on walk end Object create_Pdragon_mail editor_folder shop name Power Dragonmail: sixty dragon scales face ambolt.111 type 103 other_arch Pdragon_mail slaying dragon_scale food 60 no_pick 1 move_on walk end Object create_dragon_mail editor_folder shop name dragon mail: five dragon scales face ambolt.111 type 103 other_arch dragon_mail slaying dragon_scale food 5 no_pick 1 move_on walk end Object create_blue_dragon_mail editor_folder shop name blue dragon mail: five blue dragon scales face ambolt.111 type 103 other_arch blue_dragon_mail slaying blue_dragon_scale food 5 no_pick 1 move_on walk end Object create_green_dragon_mail editor_folder shop name green dragon mail: five green dragon scales face ambolt.111 type 103 other_arch green_dragon_mail slaying green_dragon_scale food 5 no_pick 1 move_on walk end Object create_dragon_shield editor_folder shop name dragon shields: one dragon scale face ambolt.111 type 103 other_arch dragon_shield slaying dragon_scale food 1 no_pick 1 move_on walk end Object create_eyeshield editor_folder shop name eyeshield: one beholdereye face ambolt.111 type 103 other_arch eyeshield slaying beholdereye food 1 no_pick 1 move_on walk end Object create_mithril_ar_ele editor_folder shop name mithril chainmail: 500 mithril crystals face ambolt.111 type 103 other_arch mithril_ar_ele slaying mithril food 500 no_pick 1 move_on walk end Object create_serpent_cloak editor_folder shop name Serpent cloak: three serpent skins face crea_serp_c.111 type 103 other_arch serp_cloak slaying serp_skin food 3 no_pick 1 move_on walk end Object food_table editor_folder shop name serving food (7 g.c. @) other_arch food slaying goldcoin food 7 type 103 no_pick 1 face table_2.111 move_on walk end Object dragon_steak_table editor_folder shop name serving dragon steak (15 g.c. @) other_arch dragon_steak slaying goldcoin food 15 type 103 no_pick 1 face table_2.111 move_on walk end Object waybread_table editor_folder shop name serving waybread (25 g.c. @) other_arch waybread slaying goldcoin food 25 type 103 no_pick 1 face table_2.111 move_on walk end Object booze_table editor_folder shop name serving booze (3 g.c @) other_arch booze slaying goldcoin food 3 type 103 no_pick 1 face table_2.111 move_on walk end Object identify_table editor_folder shop name Drop 20 gold to identify an item. slaying money food 200 type 139 no_pick 1 face conv.111 move_on walk end Object smith editor_folder shop face smith.111 move_block all end Object store_alchemy editor_folder shop name shop face store_alch.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_alchemy_2 editor_folder shop name shop face store_alch.x11 type 66 x 1 no_pick 1 move_block all end More Object store_alchemy_3 editor_folder shop name shop face store_alch.x11 type 66 y 1 no_pick 1 end More Object store_alchemy_4 editor_folder shop name shop face store_alch.x11 type 66 x 1 y 1 no_pick 1 end Object store_armour editor_folder shop name shop face store_armo.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_armour_2 editor_folder shop name shop face store_armo.x11 type 66 x 1 no_pick 1 move_block all end More Object store_armour_3 editor_folder shop name shop face store_armo.x11 type 66 y 1 no_pick 1 end More Object store_armour_4 editor_folder shop name shop face store_armo.x11 type 66 x 1 y 1 no_pick 1 end Object store_armour_east editor_folder shop name mise face store_armo_east.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_armour_2_east editor_folder shop name mise face store_armo_east.x11 type 66 x 1 no_pick 1 move_block all end More Object store_armour_3_east editor_folder shop name mise face store_armo_east.x11 type 66 y 1 no_pick 1 end More Object store_armour_4_east editor_folder shop name mise face store_armo_east.x11 type 66 x 1 y 1 no_pick 1 end Object store_armour_fant editor_folder shop name shop face store_armo_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_armour_2_fant editor_folder shop name shop face store_armo_fant.x11 type 66 x 1 no_pick 1 move_block all end More Object store_armour_3_fant editor_folder shop name shop face store_armo_fant.x11 type 66 y 1 no_pick 1 end More Object store_armour_4_fant editor_folder shop name shop face store_armo_fant.x11 type 66 x 1 y 1 no_pick 1 end Object store_bows editor_folder shop name shop face store_bow.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_bows_2 editor_folder shop name shop face store_bow.x11 type 66 x 1 no_pick 1 move_block all end More Object store_bows_3 editor_folder shop name shop face store_bow.x11 type 66 y 1 no_pick 1 end More Object store_bows_4 editor_folder shop name shop face store_bow.x11 type 66 x 1 y 1 no_pick 1 end Object store_gems editor_folder shop name shop face store_gems.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_gems_2 editor_folder shop name shop face store_gems.x11 type 66 x 1 no_pick 1 move_block all end More Object store_gems_3 editor_folder shop name shop face store_gems.x11 type 66 y 1 no_pick 1 end More Object store_gems_4 editor_folder shop name shop face store_gems.x11 type 66 x 1 y 1 no_pick 1 end Object store_general editor_folder shop name shop face store_gene.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_general_2 editor_folder shop name shop face store_gene.x11 type 66 x 1 no_pick 1 move_block all end More Object store_general_3 editor_folder shop name shop face store_gene.x11 type 66 y 1 no_pick 1 end More Object store_general_4 editor_folder shop name shop face store_gene.x11 type 66 x 1 y 1 no_pick 1 end Object store_general_fant editor_folder shop name shop face store_gene_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_general_2_fant editor_folder shop name shop face store_gene_fant.x11 type 66 x 1 no_pick 1 move_block all end More Object store_general_3_fant editor_folder shop name shop face store_gene_fant.x11 type 66 y 1 no_pick 1 end More Object store_general_4_fant editor_folder shop name shop face store_gene_fant.x11 type 66 x 1 y 1 no_pick 1 end Object store_general_west editor_folder shop name shop face store_gene_west.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_general_2_west editor_folder shop name shop face store_gene_west.x11 type 66 x 1 no_pick 1 move_block all end More Object store_general_3_west editor_folder shop name shop face store_gene_west.x11 type 66 y 1 no_pick 1 end More Object store_general_4_west editor_folder shop name shop face store_gene_west.x11 type 66 x 1 y 1 no_pick 1 end Object store_magic editor_folder shop name shop face store_magi.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_magic_2 editor_folder shop name shop face store_magi.x11 type 66 x 1 no_pick 1 move_block all end More Object store_magic_3 editor_folder shop name shop face store_magi.x11 type 66 y 1 no_pick 1 end More Object store_magic_4 editor_folder shop name shop face store_magi.x11 type 66 x 1 y 1 no_pick 1 end Object store_magic_east editor_folder shop name mise face store_magi_east.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_magic_2_east editor_folder shop name mise face store_magi_east.x11 type 66 x 1 no_pick 1 move_block all end More Object store_magic_3_east editor_folder shop name mise face store_magi_east.x11 type 66 y 1 no_pick 1 end More Object store_magic_4_east editor_folder shop name mise face store_magi_east.x11 type 66 x 1 y 1 no_pick 1 end Object store_magic_fant editor_folder shop name shop face store_magi_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_magic_2_fant editor_folder shop name shop face store_magi_fant.x11 type 66 x 1 no_pick 1 move_block all end More Object store_magic_3_fant editor_folder shop name shop face store_magi_fant.x11 type 66 y 1 no_pick 1 end More Object store_magic_4_fant editor_folder shop name shop face store_magi_fant.x11 type 66 x 1 y 1 no_pick 1 end Object store_magic_northwest editor_folder shop name shop face store_magi_northwest.x11 type 66 no_pick 1 move_block all end More Object store_magic_2_northwest editor_folder shop name shop face store_magi_northwest.x11 type 66 x 1 no_pick 1 move_block all end More Object store_magic_3_northwest editor_folder shop name shop face store_magi_northwest.x11 type 66 y 1 no_pick 1 end More Object store_magic_4_northwest editor_folder shop name shop face store_magi_northwest.x11 type 66 x 1 y 1 no_pick 1 end Object store_magic_west editor_folder shop name shop face store_magi_west.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_magic_2_west editor_folder shop name shop face store_magi_west.x11 type 66 x 1 no_pick 1 move_block all end More Object store_magic_3_west editor_folder shop name shop face store_magi_west.x11 type 66 y 1 no_pick 1 end More Object store_magic_4_west editor_folder shop name shop face store_magi_west.x11 type 66 x 1 y 1 no_pick 1 end Object store_weapons editor_folder shop name shop face store_weap.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_weapons_2 editor_folder shop name shop face store_weap.x11 type 66 x 1 no_pick 1 move_block all end More Object store_weapons_3 editor_folder shop name shop face store_weap.x11 type 66 y 1 no_pick 1 end More Object store_weapons_4 editor_folder shop name shop face store_weap.x11 type 66 x 1 y 1 no_pick 1 end Object store_weapons_east editor_folder shop name mise face store_weap_east.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_weapons_2_east editor_folder shop name mise face store_weap_east.x11 type 66 x 1 no_pick 1 move_block all end More Object store_weapons_3_east editor_folder shop name mise face store_weap_east.x11 type 66 y 1 no_pick 1 end More Object store_weapons_4_east editor_folder shop name mise face store_weap_east.x11 type 66 x 1 y 1 no_pick 1 end Object store_weapons_fant editor_folder shop name shop face store_weap_fant.x11 type 66 no_pick 1 move_block all client_type 25012 end More Object store_weapons_2_fant editor_folder shop name shop face store_weap_fant.x11 type 66 x 1 no_pick 1 move_block all end More Object store_weapons_3_fant editor_folder shop name shop face store_weap_fant.x11 type 66 y 1 no_pick 1 end More Object store_weapons_4_fant editor_folder shop name shop face store_weap_fant.x11 type 66 x 1 y 1 no_pick 1 end Object scroll_alchemy editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of alchemistry skill alchemy identified_face scroll_alchemy.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 6 identified_name_pl scrolls of alchemistry client_type 1021 end Object scroll_bargaining editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of bargaining identified_name_pl scrolls of bargaining skill bargaining identified_face scroll_bargaining.111 race scrolls nrof 1 type 130 material 1 value 19500 weight 200 sp 9 client_type 1021 end Object scroll_bowyer editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of bowyery skill bowyer identified_face scroll_bowyer.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 4 identified_name_pl scrolls of bowyery client_type 1021 end Object scroll_climbing editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of climbing identified_name_pl scrolls of climbing skill climbing identified_face scroll_climbing.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 20 client_type 1021 end Object scroll_disarm_traps editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of disarming traps identified_name_pl scrolls of disarming traps skill disarm traps identified_face scroll_disarm_traps.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 15 client_type 1021 end Object scroll_evocation editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of evocation identified_name_pl scrolls of evocation skill evocation identified_face scroll_evocation.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 26 client_type 1021 end Object scroll_find_traps editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of finding traps identified_name_pl scrolls of finding traps skill find traps identified_face scroll_find_traps.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 15 client_type 1021 end Object scroll_hiding editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of hiding identified_name_pl scrolls of hiding skill hiding identified_face scroll_hiding.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 2 client_type 1021 end Object scroll_jewelry editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of jeweler identified_name_pl scroll of jewelers skill jeweler identified_face scroll_jewelry.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 5 client_type 1021 end Object scroll_jumping editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of jumping identified_name_pl scrolls of jumping skill jumping identified_face scroll_jumping.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 10 client_type 1021 end Object scroll_karate editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of karate skill karate identified_face scroll_karate.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 19 identified_name_pl scrolls of karate client_type 1021 end Object scroll_literacy editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of literacy skill literacy identified_face scroll_literacy.111 race scrolls nrof 1 type 130 material 1 value 1500 weight 200 sp 8 identified_name_pl scrolls of literacy client_type 1021 end Object scroll_missile_weap editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of missile weapons skill missile weapons identified_face scroll_missile_weapon.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 24 identified_name_pl scrolls of missile weapons client_type 1021 end Object scroll_one_handed_weapons editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of one handed weapons identified_name_pl scrolls of one handed weapons skill one handed weapons identified_face scroll_one_handed_weapon.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 23 client_type 1021 end Object scroll_oratory editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of oratory skill oratory identified_face scroll_oratory.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 12 identified_name_pl scrolls of oratory client_type 1021 end Object scroll_praying editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of praying identified_name_pl scrolls of praying skill praying identified_face scroll_praying.111 race scrolls nrof 1 type 130 material 1 value 2500 weight 200 sp 30 client_type 1021 end Object scroll_punching editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of punching skill punching identified_face scroll_punching.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 17 identified_name_pl scrolls of punching client_type 1021 end Object scroll_pyromancy editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of pyromancy identified_name_pl scrolls of pyromancy skill pyromancy identified_face scroll_pyromancy.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 26 client_type 1021 end Object scroll_sense_curse editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of sense curse skill sense curse identified_face scroll_sense_curse.111 race scrolls nrof 1 type 130 material 1 value 6500 weight 200 sp 14 identified_name_pl scrolls of sense curse client_type 1021 end Object scroll_sense_mag editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of sense magic skill sense magic identified_face scroll_sense_magic.111 race scrolls nrof 1 type 130 material 1 value 6500 weight 200 sp 11 identified_name_pl scrolls of sense magic client_type 1021 end Object scroll_set_traps editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of snares skill set traps identified_face scroll_set_traps.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 28 identified_name_pl scrolls of snares client_type 1021 end Object scroll_singing editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of singing skill singing identified_face scroll_singing.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 13 identified_name_pl scrolls of singing client_type 1021 end Object scroll_smithing editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of smithing skill smithery identified_face scroll_smithing.111 race scrolls nrof 1 type 130 material 1 value 19500 weight 200 sp 3 identified_name_pl scrolls of smithing client_type 1021 end Object scroll_sorcery editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of sorcery identified_name_pl scrolls of sorcery skill sorcery identified_face scroll_sorcery.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 26 client_type 1021 end Object scroll_stealing editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of stealing skill stealing identified_face scroll_stealing.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 0 identified_name_pl scrolls of stealing client_type 1021 end Object scroll_summoning editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of summoning identified_name_pl scrolls of summoning skill summoning identified_face scroll_summoning.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 26 client_type 1021 end Object scroll_thaumaturgy editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of thaumaturgy skill thaumaturgy identified_face scroll_thaumaturgy.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 7 identified_name_pl scrolls of thaumaturgy client_type 1021 end Object scroll_throwing editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of throwing identified_name_pl scrolls of throwing skill throwing identified_face scroll_throwing.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 26 client_type 1021 end Object scroll_two_handed_weapons editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of two handed weapons identified_name_pl scrolls of two handed weapons skill two handed weapons identified_face scroll_two_handed_weapon.111 race scrolls nrof 1 type 130 material 1 value 5500 weight 200 sp 23 client_type 1021 end Object scroll_use_magic_item editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of use magic item identified_name_pl scrolls of use magic item skill use magic item identified_face scroll_use_magic_item.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 26 client_type 1021 end Object scroll_woodsman editor_folder skills/Skill_Scrolls name scroll name_pl scrolls face scroll.111 identified_name scroll of wood lore skill woodsman identified_face scroll_woodsman.111 race scrolls nrof 1 type 130 material 1 value 3500 weight 200 sp 21 identified_name_pl scrolls of wood lore client_type 1021 end Object fishing_pole editor_folder skills/Skill_Tools name fishing pole face fishing_pole.111 type 74 skill fishing material 20 nrof 1 value 1500 weight 5000 name_pl fishing poles client_type 451 body_skill -1 harvest_race fish harvest_tool pole harvest_speed -2 end Object fishing_pole2 editor_folder skills/Skill_Tools name fishing pole face fishing_pole2.111 type 74 skill fishing material 20 nrof 1 value 1500 weight 5000 name_pl fishing poles client_type 451 body_skill -1 harvest_race fish harvest_tool pole harvest_speed -2 end Object holy_symbol editor_folder skills/Skill_Tools name holy symbol face holy_symbol.111 type 74 skill praying material 20 nrof 1 value 1500 weight 5000 name_pl holy symbols client_type 451 body_skill -1 end Object lockpicks editor_folder skills/Skill_Tools name lockpicks name_pl lockpicks face lockpicks.111 type 74 weight 300 value 1000 nrof 1 material 2 skill lockpicking client_type 451 body_skill -1 end Object stylus editor_folder skills/Skill_Tools name writing pen name_pl writing pens face stylus.111 type 74 weight 100 value 5000 material 32 skill inscription client_type 451 body_skill -1 end Object talisman editor_folder skills/Skill_Tools name talisman face talisman.111 type 39 weight 1000 value 300 nrof 1 material 12 name_pl talismans client_type 451 body_neck -1 end Object talisman_sorcery editor_folder skills/Skill_Tools name talisman title of sorcery face talisman_sorcery.111 type 74 weight 1000 value 3000 nrof 1 material 12 skill sorcery name_pl talismans client_type 451 body_skill -1 end Object talisman_summoning editor_folder skills/Skill_Tools name talisman title of summoning face talisman_summoning.111 type 74 weight 1000 value 3000 nrof 1 material 12 skill summoning name_pl talismans client_type 451 body_skill -1 end Object talisman_evocation editor_folder skills/Skill_Tools name talisman title of evocation face talisman_evocation.111 type 74 weight 1000 value 3000 nrof 1 material 12 skill evocation name_pl talismans client_type 451 body_skill -1 end Object talisman_pyromancy editor_folder skills/Skill_Tools name talisman title of pyromancy face talisman_pyromancy.111 type 74 weight 1000 value 3000 nrof 1 material 12 skill pyromancy name_pl talismans client_type 451 body_skill -1 end Object skill_air_magic editor_folder skills name air magic skill air magic type 43 invisible 1 no_drop 1 subtype 40 body_skill -1 exp 0 level 100 end Object skill_alchemy editor_folder skills name alchemy skill alchemy type 43 invisible 1 no_drop 1 subtype 6 body_skill -1 exp 250 level 250 end Object skill_bargaining editor_folder skills name bargaining skill bargaining type 43 invisible 1 no_drop 1 subtype 9 body_skill -1 exp 50 level 100 end Object skill_bowyer editor_folder skills name bowyer skill bowyer type 43 invisible 1 no_drop 1 subtype 4 body_skill -1 exp 100 level 150 end Object skill_clawing editor_folder skills name clawing skill clawing type 43 invisible 1 dam 2 last_sp 3 no_drop 1 subtype 31 body_skill -1 exp 0 level 100 wc_increase_rate 4 wc 1 end Object skill_climbing editor_folder skills name climbing skill climbing type 43 invisible 1 no_drop 1 subtype 20 body_skill -1 exp 100 level 100 end Object skill_remove_trap editor_folder skills name disarm traps skill disarm traps type 43 invisible 1 no_drop 1 subtype 27 body_skill -1 exp 50 level 350 end Object skill_earth_magic editor_folder skills name earth magic skill earth magic type 43 invisible 1 no_drop 1 subtype 41 body_skill -1 exp 0 level 100 end Object skill_evocation editor_folder skills name evocation face spell_evocation.111 skill evocation type 43 invisible 1 no_drop 1 subtype 35 body_skill -1 exp 0 level 100 end Object skill_find_traps editor_folder skills name find traps skill find traps type 43 invisible 1 no_drop 1 subtype 15 body_skill -1 exp 100 level 150 end Object skill_fire_magic editor_folder skills name fire magic skill fire magic type 43 invisible 1 no_drop 1 subtype 43 body_skill -1 exp 0 level 100 end Object skill_fishing editor_folder skills name fishing skill fishing slaying fish type 43 invisible 1 no_drop 1 subtype 39 body_skill -1 exp 100 level 100 end Object skill_flame_touch editor_folder skills name flame touch skill flame touch type 43 invisible 1 dam 2 damage_physical 1 last_sp 4 attacktype 4 no_drop 1 subtype 18 body_skill -1 exp 0 level 100 wc_increase_rate 4 wc 1 end Object skill_hide editor_folder skills name hiding skill hiding type 43 invisible 1 no_drop 1 subtype 2 body_skill -1 exp 1 level 100 end Object skill_inscription editor_folder skills name inscription skill inscription type 43 invisible 1 no_drop 1 subtype 22 body_skill -1 exp 50 level 250 end Object skill_jeweler editor_folder skills name jeweler skill jeweler type 43 invisible 1 no_drop 1 subtype 5 body_skill -1 exp 100 level 300 end Object skill_jumping editor_folder skills name jumping skill jumping type 43 invisible 1 no_drop 1 dam 5 attacktype 1 wc_increase_rate 4 wc 1 last_sp 1 subtype 10 body_skill -1 exp 5 level 250 end Object skill_karate editor_folder skills name karate anim_suffix karate skill karate type 43 invisible 1 last_sp 2 dam 4 no_drop 1 subtype 19 body_skill -1 exp 0 level 100 attacktype 1 wc_increase_rate 4 wc 1 end Object skill_levitate editor_folder skills name levitation skill levitation type 43 invisible 1 last_sp 2 move_type fly_low no_drop 1 subtype 32 body_skill -1 exp 50 level 100 end Object skill_literacy editor_folder skills name literacy skill literacy type 43 invisible 1 no_drop 1 subtype 8 body_skill -1 exp 150 level 350 end Object skill_lockpick editor_folder skills name lockpicking skill lockpicking type 43 invisible 1 no_drop 1 subtype 1 body_skill -1 exp 100 level 200 end Object skill_meditation editor_folder skills name meditation skill meditation type 43 invisible 1 no_drop 1 subtype 16 body_skill -1 exp 10 level 100 end Object skill_missile_weapon editor_folder skills name missile weapons skill missile weapons type 43 invisible 1 no_drop 1 subtype 24 body_skill -1 exp 0 level 100 wc_increase_rate 5 end Object skill_one_handed_weapon editor_folder skills name one handed weapons skill one handed weapons type 43 invisible 1 no_drop 1 subtype 23 body_skill -1 exp 0 level 100 dam 1 wc_increase_rate 5 end Object skill_oratory editor_folder skills name oratory skill oratory type 43 invisible 1 no_drop 1 subtype 12 body_skill -1 exp 10 level 250 end Object skill_praying editor_folder skills name praying face spell_praying.111 skill praying type 43 invisible 1 no_drop 1 subtype 30 body_skill -1 exp 0 level 100 anim_suffix praying end Object skill_punching editor_folder skills name punching anim_suffix punching skill punching type 43 invisible 1 no_drop 1 subtype 17 body_skill -1 exp 0 level 100 attacktype 1 wc_increase_rate 4 wc 1 end Object skill_pyromancy editor_folder skills name pyromancy face spell_pyromancy.111 skill pyromancy type 43 invisible 1 no_drop 1 subtype 34 body_skill -1 exp 0 level 100 end Object skill_sense_curse editor_folder skills name sense curse skill sense curse type 43 invisible 1 no_drop 1 subtype 14 body_skill -1 exp 5 level 100 end Object skill_sense_magic editor_folder skills name sense magic skill sense magic type 43 invisible 1 no_drop 1 subtype 11 body_skill -1 exp 5 level 100 end Object skill_set_trap editor_folder skills name set traps skill set traps type 43 invisible 1 no_drop 1 subtype 28 body_skill -1 exp 100 level 100 end Object skill_singing editor_folder skills name singing skill singing type 43 invisible 1 no_drop 1 subtype 13 body_skill -1 exp 10 level 150 anim_suffix singing end Object skill_smithery editor_folder skills name smithery skill smithery type 43 invisible 1 no_drop 1 subtype 3 body_skill -1 exp 25 level 250 end Object skill_sorcery editor_folder skills name sorcery face spell_sorcery.111 skill sorcery type 43 invisible 1 no_drop 1 subtype 36 body_skill -1 exp 0 level 100 end Object skill_stealing editor_folder skills name stealing skill stealing type 43 invisible 1 no_drop 1 subtype 7 body_skill -1 exp 20 level 70 end Object skill_summoning editor_folder skills name summoning face spell_summoner.111 skill summoning type 43 invisible 1 no_drop 1 subtype 33 body_skill -1 exp 0 level 100 end Object skill_thaumaturgy editor_folder skills name thaumaturgy skill thaumaturgy type 43 invisible 1 no_drop 1 subtype 29 body_skill -1 exp 150 level 200 end Object skill_throwing editor_folder skills name throwing skill throwing type 43 invisible 1 no_drop 1 subtype 25 body_skill -1 exp 0 level 100 wc_increase_rate 4 wc 1 end Object skill_two_handed_weapon editor_folder skills name two handed weapons skill two handed weapons type 43 invisible 1 no_drop 1 subtype 37 body_skill -1 exp 0 level 100 wc_increase_rate 5 end Object skill_use_magic_item editor_folder skills name use magic item skill use magic item type 43 invisible 1 no_drop 1 subtype 26 body_skill -1 exp 0 level 100 end Object skill_water_magic editor_folder skills name water magic skill water magic type 43 invisible 1 no_drop 1 subtype 42 body_skill -1 exp 0 level 100 end Object skill_woodsman editor_folder skills name woodsman skill woodsman type 43 invisible 1 no_drop 1 subtype 21 body_skill -1 exp 25 level 100 end Object skill_wraith_feed editor_folder skills name wraith feed anim_suffix feeding skill wraith feed type 43 invisible 1 dam 2 attacktype 16781312 no_drop 1 subtype 38 body_skill -1 exp 0 level 100 wc_increase_rate 4 wc 1 end Object abil_ball_lightning editor_folder spell/Ability anim_suffix spellcasting name ball lightning ability name_pl ball lightning ability face spell_ball_lightning.111 type 101 subtype 35 level 9 value 90 sp 10 casting_time 3 skill evocation path_attuned 8 other_arch ball_lightning dam 8 dam_modifier 3 duration 40 duration_modifier 1 maxsp 15 attacktype 8 no_drop 1 invisible 1 end Object abil_burning_hands editor_folder spell/Ability anim_suffix spellcasting name burning hands ability name_pl burning hands ability face spell_burning_hands.111 level 1 sp 5 casting_time 5 path_attuned 2 other_arch firebreath dam 4 dam_modifier 4 range 5 duration 2 range_modifier 4 maxsp 9 type 101 subtype 7 value 10 attacktype 4 no_drop 1 invisible 1 skill pyromancy end Object abil_fear editor_folder spell/Ability anim_suffix spellcasting name fear ability name_pl fear ability face spell_fear.111 level 4 sp 6 casting_time 5 path_attuned 1024 other_arch fear dam 5 dam_modifier 0 range 4 duration 2 range_modifier 3 maxsp 12 type 101 subtype 7 value 40 attacktype 16384 no_drop 1 invisible 1 skill sorcery end Object abil_create_fire_wall editor_folder spell/Ability anim_suffix spellcasting name create fire wall ability name_pl create fire wall ability face spell_create_fire_wall.111 level 6 sp 5 casting_time 4 path_attuned 2048 other_arch firebreath skill pyromancy type 101 subtype 15 value 60 no_drop 1 invisible 1 duration 260 duration_modifier 1 dam 4 dam_modifier 3 maxsp 8 attacktype 4 range 2 move_block all end Object abil_create_frost_wall editor_folder spell/Ability anim_suffix spellcasting name create frost wall ability name_pl create frost wall ability face spell_create_frost_wall.111 level 8 sp 8 casting_time 3 path_attuned 2048 other_arch icestorm skill evocation type 101 subtype 15 value 80 no_drop 1 invisible 1 duration 240 duration_modifier 1 dam 2 dam_modifier 3 maxsp 8 attacktype 16 range 2 move_block all end Object abil_frostbolt editor_folder spell/Ability anim_suffix spellcasting name frostbolt ability name_pl frostbolts ability face spell_frostbolt.111 level 3 sp 12 casting_time 3 path_attuned 4 other_arch frostbolt dam 12 dam_modifier 4 duration 11 maxsp 48 skill evocation type 101 subtype 4 value 30 attacktype 16 range 12 no_drop 1 invisible 1 end Object abil_icestorm editor_folder spell/Ability anim_suffix spellcasting name icestorm ability name_pl icestorm ability face spell_icestorm.111 level 1 sp 5 casting_time 3 path_attuned 4 other_arch icestorm dam 4 dam_modifier 3 range 6 duration 2 range_modifier 5 maxsp 9 type 101 subtype 7 value 10 attacktype 16 no_drop 1 invisible 1 skill evocation end Object abil_large_icestorm editor_folder spell/Ability anim_suffix spellcasting name large icestorm ability name_pl large icestorm ability face spell_large_icestorm.111 level 12 sp 13 casting_time 4 path_attuned 4 other_arch icestorm dam 4 dam_modifier 3 range 14 duration 2 range_modifier 5 maxsp 11 type 101 subtype 7 value 120 attacktype 16 no_drop 1 invisible 1 skill evocation end Object abil_medium_fireball editor_folder spell/Ability anim_suffix spellcasting name medium fireball ability name_pl medium fireball ability face spell_medium_fireball.111 level 3 sp 10 casting_time 10 path_attuned 2 other_arch firebullet dam 8 dam_modifier 3 range 6 duration 4 maxsp 24 type 101 subtype 5 value 30 attacktype 4 no_drop 1 invisible 1 skill pyromancy food 4 end Object abil_poison_cloud editor_folder spell/Ability anim_suffix spellcasting name poison cloud ability name_pl poison cloud ability face spell_poison_cloud.111 level 2 sp 5 casting_time 10 path_attuned 16 other_arch poisonbullet dam 0 dam_modifier 3 range 4 duration 4 maxsp 8 type 101 subtype 5 value 20 attacktype 1024 no_drop 1 invisible 1 skill sorcery food 5 end Object abil_slow editor_folder spell/Ability anim_suffix spellcasting name slow ability name_pl slow ability face spell_slow.111 level 1 sp 5 casting_time 10 path_attuned 1024 other_arch slow dam 5 dam_modifier 0 range 5 duration 2 range_modifier 4 maxsp 20 type 101 subtype 7 value 10 attacktype 2048 no_drop 1 invisible 1 skill sorcery end Object ability_dragonbreath editor_folder spell/Ability anim_suffix spellcasting name dragonbreath ability name_pl dragonbreath ability face spell_dragonbreath.111 level 12 sp 13 casting_time 5 path_attuned 2 other_arch firebreath dam 4 dam_modifier 3 range 7 duration 2 range_modifier 5 maxsp 11 type 101 subtype 7 value 120 attacktype 4 no_drop 1 invisible 1 skill pyromancy end Object snake_golem editor_folder spell/AnimateWeapon name snake type 102 subtype 12 face snake.111 animation snake_golem is_animated 1 monster 1 alive 1 ac 5 wc 12 dam 3 hp 30 maxhp 30 level 3 speed 0.15 resist_poison 100 attacktype 1025 exp 35 weight 200000 move_type fly_low end Object spell_animate_weapon editor_folder spell/AnimateWeapon anim_suffix spellcasting name animate weapon name_pl animate weapon type 101 subtype 41 face spell_animate_weapon.111 level 7 value 70 sp 25 casting_time 10 skill sorcery path_attuned 4096 other_arch dancingsword dam 2 dam_modifier 1 duration 20 duration_modifier 1 range_modifier 20 maxsp 20 no_drop 1 invisible 1 msg Mark a weapon in the caster's inventory, then cast this spell to bring it to life. The weapon then flies about under the caster's direction. The weapon is controlled with the fire and direction keys. endmsg end Object spell_staff_to_snake editor_folder spell/AnimateWeapon anim_suffix spellcasting name staff to snake name_pl staff to snake type 101 subtype 41 face spell_staff_to_snake.111 level 6 value 20 grace 8 casting_time 5 skill praying path_attuned 2048 other_arch snake_golem dam 10 dam_modifier 1 duration 100 duration_modifier 1 range_modifier 20 maxgrace 18 no_drop 1 invisible 1 race quarterstaff msg Converts a staff into a snake which you can control with the Fire and direction keys. A quarterstaff in inventory is marked before casting the spell. endmsg end Object flaming_aura editor_folder spell/Aura name Flaming Aura other_arch flaming_aura_mark invisible 1 face burnout.111 type 102 subtype 46 dam 1 attacktype 4 no_drop 1 speed 1 no_pick 1 end Object flaming_aura_mark editor_folder spell/Aura name Flaming Aura face fireball.111 type 98 speed 1 move_type fly_low no_pick 1 food 2 is_used_up 1 end Object sanctuary editor_folder spell/Aura name sanctuary other_arch sanctuary_mark invisible 1 face burnout.111 attacktype 524288 type 102 subtype 46 dam 1 no_drop 1 speed 1 no_pick 1 end Object sanctuary_mark editor_folder spell/Aura name sanctuary face counterspell.111 type 98 speed 1 move_type fly_low no_pick 1 food 2 is_used_up 1 end Object spell_flaming_aura editor_folder spell/Aura anim_suffix spellcasting name flaming aura name_pl flaming aura type 101 subtype 46 face spell_flaming_aura.111 level 1 value 10 grace 5 casting_time 10 skill praying path_attuned 2 other_arch flaming_aura duration 100 duration_modifier 4 dam 6 dam_modifier 25 maxgrace 20 attacktype 4 no_drop 1 invisible 1 msg Surrounds the caster with an aura of fire that burns everything in the vicinity. The spell is granted by Gorokh and Ruggilli. endmsg end Object spell_sanctuary editor_folder spell/Aura anim_suffix spellcasting name sanctuary name_pl sanctuary type 101 subtype 46 face spell_sanctuary.111 level 14 value 70 grace 30 casting_time 10 skill praying path_attuned 1 other_arch sanctuary duration 100 duration_modifier 4 maxgrace 20 attacktype 524288 no_drop 1 invisible 1 msg Surrounds the caster with a shield that may block incoming spells. endmsg end Object spell_bless editor_folder spell/BlessCurse anim_suffix spellcasting name bless name_pl bless face spell_bless.111 level 4 grace 8 casting_time 5 path_attuned 128 skill praying type 101 subtype 25 race holy_blessing value 20 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 30 resist_godpower 35 ac 1 wc 1 msg This spell grants the character a blessing from the god they worship. It affects resistances and stats, but the specific effect varies depending on the god the character worships. Some protection from godpower is granted. endmsg end Object spell_bless_item editor_folder spell/BlessCurse anim_suffix spellcasting name bless item name_pl bless item face spell_praying.111 level 50 grace 250 casting_time 75 path_attuned 256 skill praying type 101 subtype 49 value 150 no_drop 1 invisible 1 blessed 1 maxgrace 30 msg Your god, moved by the piety you show, blesses one of your item, which will now have some special properties. endmsg end Object spell_curse editor_folder spell/BlessCurse anim_suffix spellcasting name curse name_pl curse face spell_curse.111 level 4 grace 8 casting_time 5 path_attuned 128 skill praying type 101 subtype 26 value 20 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 30 resist_godpower 35 ac -1 wc -1 range 30 msg The caster's god afflicts the recipient with a curse that may negatively affect AC and WC. endmsg end Object spell_curse_item editor_folder spell/BlessCurse anim_suffix spellcasting name curse item name_pl curse item face spell_praying.111 level 50 grace 200 casting_time 75 path_attuned 256 skill praying type 101 subtype 49 value 150 no_drop 1 invisible 1 cursed 1 maxgrace 30 msg This spell concentrates, with some help of your god, your hate against something to curse the item, and leave you only your love for your god. endmsg end Object spell_holy_possession editor_folder spell/BlessCurse anim_suffix spellcasting name holy possession name_pl holy possession face spell_holy_possession.111 level 18 grace 30 casting_time 10 path_attuned 128 skill praying type 101 subtype 25 race holy_blessing value 90 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 30 resist_godpower 95 attacktype 1 wc 2 ac 2 last_grace 1 msg Blesses the caster with holy power of his god, both to attack enemies, and and to gain protection from attacks. The benefits vary by god, but all give signficant protection against godpower. endmsg end Object cancellation editor_folder spell/Bolt type 102 subtype 4 face cancellation.111 animation cancellation is_animated 1 is_turnable 0 no_pick 1 move_on walk fly_low speed 1 attacktype 32768 wc 0 dam 0 move_type fly_low end Object firebolt editor_folder spell/Bolt type 102 subtype 4 face firebolt.111 animation firebolt is_animated 0 is_turnable 1 move_type fly_low speed 1 glow_radius 1 no_pick 1 weight 500 end Object forked_lightning editor_folder spell/Bolt name lightning type 102 subtype 4 face lightning.111 animation forked_lightning is_animated 0 is_turnable 1 move_type fly_low speed 1 glow_radius 2 no_pick 1 weight 500 reflecting 1 end Object frostbolt editor_folder spell/Bolt type 102 subtype 4 face frostbolt.111 animation frostbolt move_type fly_low is_animated 0 is_turnable 1 speed 1 no_pick 1 weight 500 end Object lightning editor_folder spell/Bolt name lightning type 102 subtype 4 face lightning.111 animation lightning is_animated 0 is_turnable 1 move_type fly_low speed 1 glow_radius 2 no_pick 1 reflecting 1 weight 500 end Object manabolt editor_folder spell/Bolt type 102 subtype 4 face manabolt.111 animation manabolt move_type fly_low is_turnable 1 is_animated 0 speed 1 no_pick 1 weight 500 end Object negabolt editor_folder spell/Bolt name negative energy bolt type 102 subtype 4 face negabolt.111 animation negabolt is_animated 0 is_turnable 1 move_type fly_low speed 1 glow_radius 2 no_pick 1 reflecting 1 weight 500 end Object spell_cancellation editor_folder spell/Bolt anim_suffix spellcasting name cancellation name_pl cancellation face spell_cancellation.111 level 20 sp 30 casting_time 10 path_attuned 128 other_arch cancellation skill evocation type 101 subtype 4 value 100 attacktype 32770 range 12 no_drop 1 invisible 1 duration 8 msg Releases a bolt of energy that removes magic, curse, and damnation from locations and items. It also removes enchantment, so care must be taken not to remove desirable attributes from good magic items. The spell is useful for improving items that have negative magic bonuses. endmsg end Object spell_firebolt editor_folder spell/Bolt anim_suffix spellcasting name firebolt name_pl firebolt face spell_firebolt.111 level 4 sp 9 casting_time 10 path_attuned 2 other_arch firebolt dam 10 dam_modifier 3 maxsp 30 skill pyromancy type 101 subtype 4 value 20 attacktype 6 range 12 duration 9 no_drop 1 invisible 1 msg Propels a damaging bolt of fire in the direction that the spell is cast. endmsg end Object spell_forked_lightning editor_folder spell/Bolt anim_suffix spellcasting name forked lightning name_pl forked lightnings face spell_forked_lightning.111 level 8 grace 15 maxgrace 24 casting_time 10 path_attuned 8 other_arch forked_lightning dam 10 dam_modifier 3 duration 16 skill praying type 101 subtype 4 value 50 Dex 30 Con 50 attacktype 10 range 24 no_drop 1 invisible 1 msg Fires a lightning bolt that forks into multiple smaller bolts that can cover a somewhat cone-shaped area. It reflects off of walls, so can fill a small dungeon with a devastating effect, and is granted by Sorig. endmsg end Object spell_frostbolt editor_folder spell/Bolt anim_suffix spellcasting name frostbolt name_pl frostbolts face spell_frostbolt.111 level 6 sp 12 casting_time 10 path_attuned 4 other_arch frostbolt dam 12 dam_modifier 4 duration 11 maxsp 48 skill evocation type 101 subtype 4 value 30 attacktype 18 range 12 no_drop 1 invisible 1 msg Fires a directed bolt of frost that does cold damage. endmsg end Object spell_large_lightning editor_folder spell/Bolt anim_suffix spellcasting name large lightning name_pl large lightnings face spell_large_lightning.111 level 8 sp 13 casting_time 7 path_attuned 8 other_arch lightning dam 8 dam_modifier 3 duration 16 maxsp 24 skill pyromancy type 101 subtype 4 value 40 attacktype 10 range 24 no_drop 1 invisible 1 msg Creates a large bolt of lightning with extended range that does more electrical damage than its smaller counterpart. The bolt can reflect off walls and return to hit the caster. endmsg end Object spell_manabolt editor_folder spell/Bolt anim_suffix spellcasting name mana bolt name_pl mana bolts face spell_manabolt.111 level 6 sp 18 maxsp 30 casting_time 9 path_attuned 32768 other_arch manabolt dam 10 dam_modifier 3 duration 9 skill evocation type 101 subtype 4 value 30 attacktype 2 range 12 no_drop 1 invisible 1 msg Fires a bolt of magical energy that few creatures have resistance to. endmsg end Object spell_negabolt editor_folder spell/Bolt anim_suffix spellcasting name negative energy bolt name_pl negative energy bolts face spell_evocation.111 level 8 sp 13 casting_time 6 path_attuned 8 other_arch negabolt dam 8 dam_modifier 3 duration 16 maxsp 24 skill evocation type 101 subtype 4 value 40 attacktype 144 range 24 no_drop 1 invisible 1 msg Fires a negative energy bolt that hits creatures and drains them of experience and also hits them with a cold attack. endmsg end Object spell_sm_lightning editor_folder spell/Bolt anim_suffix spellcasting name small lightning name_pl small lightnings face spell_sm_lightning.111 level 1 sp 6 casting_time 5 path_attuned 8 other_arch lightning dam 8 dam_modifier 3 duration 8 maxsp 24 skill pyromancy type 101 subtype 4 value 10 attacktype 10 range 12 no_drop 1 invisible 1 msg A bolt spell that inflicts electrical damage on creatures in its path. It can reflect off of walls (and can return to strike the caster). endmsg end Object spell_steambolt editor_folder spell/Bolt anim_suffix spellcasting name steambolt name_pl steambolts face spell_steambolt.111 level 10 sp 10 maxsp 40 casting_time 10 path_attuned 2 other_arch steambolt dam 12 dam_modifier 2 duration 8 duration_modifier 5 skill sorcery type 101 subtype 4 value 50 attacktype 3 range 12 no_drop 1 invisible 1 msg Fires a bolt of hot steam that does both magical and physical damage. A fog of steam that blocks line-of-sight remains a short time after the spell is cast. endmsg end Object spell_sunspear editor_folder spell/Bolt anim_suffix spellcasting name sunspear name_pl sunspears face spell_sunspear.111 level 12 grace 8 dam 8 dam_modifier 3 duration 8 duration_modifier 9 casting_time 8 maxgrace 30 other_arch sunspear skill praying path_attuned 524288 type 101 subtype 4 value 60 slaying undead,troll attacktype 4194308 range 6 no_drop 1 invisible 1 msg Fires a bolt of blinding heat that may blind creatures in its path. The spear also damages creatures with fire. The spell is granted by Valriel. endmsg end Object steambolt editor_folder spell/Bolt type 102 subtype 4 other_arch temp_fog_moving face steam.111 animation steambolt move_type fly_low generator 1 speed 1 no_pick 1 weight 500 end Object sunspear editor_folder spell/Bolt name light type 102 subtype 4 face sunspear.111 animation sunspear speed 1 glow_radius 2 reflecting 1 move_type fly_low no_pick 1 end Object bomb editor_folder spell/Bomb type 102 subtype 8 other_arch explosion face bomb.111 animation bomb speed 0.2 weight 4000 end Object explosion editor_folder spell/Bomb type 102 subtype 6 face explosion.111 animation explosion wc -30 speed 0.2 speed_left -0.21 move_type fly_low no_pick 1 weight 500 end Object spell_create_bomb editor_folder spell/Bomb anim_suffix spellcasting name create bomb name_pl create bomb face spell_create_bomb.111 level 12 sp 10 casting_time 5 path_attuned 512 other_arch bomb dam 12 dam_modifier 6 duration 8 range 5 maxsp 72 skill pyromancy type 101 subtype 8 value 60 attacktype 1 no_drop 1 invisible 1 msg Creates a bomb in the direction the spell is fired. The bomb detonates after a few seconds, firing shrapnel and encompassing the area in an explosion. Creatures are wounded if they are in the explosion or if they are hit by the flying shrapnel. endmsg weight 750 end Object splint editor_folder spell/Bomb type 102 subtype 5 face splint.111 speed 0.5 attacktype 1 no_pick 1 move_on walk fly_low wc 8 dam 3 move_type fly_low weight 500 end Object fireball editor_folder spell/Bullet/Fire type 102 subtype 6 face fireball.111 animation fireball smoothlevel 200 wc -30 speed 0.2 speed_left -0.21 glow_radius 1 move_type fly_low no_pick 1 attacktype 4 weight 500 end Object firebullet editor_folder spell/Bullet/Fire other_arch fireball type 102 subtype 5 face firebullet.111 animation firebullet is_animated 0 is_turnable 1 move_on walk fly_low speed 1 glow_radius 1 move_type fly_low no_pick 1 end Object explosion2 editor_folder spell/Bullet/Shell type 102 subtype 6 face explosion.111 animation explosion2 wc -30 speed 0.2 speed_left -0.21 move_type fly_low no_pick 1 end Object shell editor_folder spell/Bullet/Shell other_arch explosion2 type 102 subtype 5 face shell.111 animation shell is_animated 0 is_turnable 1 move_on walk fly_low speed 1 move_type fly_low no_pick 1 attacktype 4 end Object asteroid editor_folder spell/Bullet other_arch snowstorm type 102 subtype 5 face asteroid.112 animation asteroid is_animated 0 is_turnable 1 move_on walk fly_low move_type fly_low speed 1 no_pick 1 end Object bullet editor_folder spell/Bullet type 102 subtype 5 face bullet.112 animation bullet is_animated 0 is_turnable 1 no_pick 1 move_on walk fly_low speed 1 attacktype 2 wc -10 dam 6 move_type fly_low end Object bullet_mania editor_folder spell/Bullet type 102 face bullet.112 animation bullet_mania is_animated 0 is_turnable 0 no_pick 1 move_on walk fly_low speed 10 attacktype 32770 wc -30 dam 50 move_type fly_low reflecting 0 end Object cause_wounds editor_folder spell/Bullet name cause wounds type 102 subtype 5 face cause.111 animation cause_wounds is_animated 1 is_turnable 0 no_pick 1 move_on walk fly_low speed 1 wc -30 move_type fly_low end Object holy_effect editor_folder spell/Bullet type 102 subtype 6 name holy power slaying undead,demon face holy_effect.111 animation holy_effect wc -30 speed 0.2 speed_left -0.21 move_type fly_low no_pick 1 attacktype 2097152 end Object holy_orb editor_folder spell/Bullet other_arch holy_effect name holy orb slaying undead,demon type 102 subtype 5 face holy_orb.111 is_animated 0 move_on walk fly_low speed 1 move_type fly_low no_pick 1 attacktype 2097152 end Object lbullet editor_folder spell/Bullet name large bullet type 102 subtype 5 face lbullet.111 animation lbullet is_animated 0 is_turnable 1 move_on walk fly_low no_pick 1 speed 1 attacktype 2 wc -10 dam 25 move_type fly_low end Object loose_magic editor_folder spell/Bullet name uncontrolled mana type 102 subtype 6 face loose_magic.111 animation loose_magic speed 1 range 3 duration 3 move_type fly_low wc -30 no_pick 1 attacktype 2 end Object manaball editor_folder spell/Bullet type 102 subtype 6 face manaball.111 animation manaball hp 4 wc -50 speed 0.2 speed_left -0.21 move_type fly_low no_pick 1 end Object manabullet editor_folder spell/Bullet other_arch manaball type 102 subtype 5 face snowball.111 animation manabullet is_animated 0 is_turnable 1 move_on walk fly_low glow_radius 3 speed 1 move_type fly_low no_pick 1 end Object meteor editor_folder spell/Bullet other_arch fireball face meteor.111 type 102 subtype 5 is_animated 0 move_on walk fly_low move_type fly_low speed 1 no_pick 1 end Object fire_trail editor_folder spell/Bullet name burningtrail face burnout.111 animation meteor speed 1 food 9 is_used_up 1 no_pick 1 end Object poisonbullet editor_folder spell/Bullet other_arch poisoncloud type 102 subtype 5 face poisonbullet.111 animation poisonbullet is_animated 0 is_turnable 1 move_on walk fly_low no_pick 1 speed 1 wc -10 move_type fly_low end Object poisoncloud editor_folder spell/Bullet other_arch poisoning name poison cloud type 102 subtype 6 face poisoncloud.111 animation poisoncloud speed 0.2 hp 10 dam 1 attacktype 1026 move_type fly_low no_pick 1 end Object snowball editor_folder spell/Bullet other_arch snowstorm type 102 subtype 5 face snowball.111 animation snowball is_animated 0 is_turnable 1 move_on walk fly_low glow_radius 2 speed 1 move_type fly_low no_pick 1 weight 1000 end Object snowstorm editor_folder spell/Bullet type 102 subtype 6 face icestorm.111 animation snowstorm wc -30 speed 0.2 speed_left -0.21 glow_radius 1 move_type fly_low no_pick 1 attacktype 16 weight 750 end Object spell_asteroid editor_folder spell/Bullet anim_suffix spellcasting name asteroid name_pl asteroid face spell_asteroid.111 level 16 value 80 sp 15 casting_time 10 path_attuned 16 other_arch asteroid dam 75 dam_modifier 1 range 12 duration 10 duration_modifier 4 maxsp 18 type 101 subtype 5 attacktype 256 no_drop 1 invisible 1 skill evocation food 10 msg Fires an asteroid bullet that delivers a weaponmagic attack. endmsg end Object spell_magic_bullet editor_folder spell/Bullet anim_suffix spellcasting name magic bullet name_pl magic bullet face spell_magic_bullet.111 level 1 sp 1 casting_time 2 path_attuned 16 other_arch bullet dam 10 dam_modifier 1 maxsp 6 skill sorcery type 101 subtype 5 value 10 attacktype 2 no_drop 1 invisible 1 msg Fires a magical bullet that travels in one direction until striking something. endmsg end Object spell_cause_critical_wounds editor_folder spell/Bullet anim_suffix spellcasting name cause critical wounds name_pl cause critical wounds face spell_cause_critical_wounds.111 level 14 grace 25 casting_time 5 path_attuned 131072 other_arch cause_wounds dam 100 dam_modifier 1 maxgrace 100 skill praying type 101 subtype 5 value 70 attacktype 1048576 no_drop 1 invisible 1 msg Fires a bullet that inflicts damage on any creature it strikes. This spell is granted by Sorig. endmsg end Object spell_cause_heavy_wounds editor_folder spell/Bullet anim_suffix spellcasting name cause heavy wounds name_pl cause heavy wounds face spell_cause_heavy_wounds.111 level 10 grace 16 casting_time 5 path_attuned 131072 other_arch cause_wounds dam 50 dam_modifier 1 maxgrace 50 skill praying type 101 subtype 5 value 50 attacktype 1048576 no_drop 1 invisible 1 msg Fires a bullet that damages creatures in its path. endmsg end Object spell_cause_light_wounds editor_folder spell/Bullet anim_suffix spellcasting name cause light wounds name_pl cause light wounds face spell_cause_light_wounds.111 level 1 grace 4 casting_time 5 path_attuned 131072 other_arch cause_wounds dam 6 dam_modifier 1 maxgrace 6 skill praying type 101 subtype 5 value 10 attacktype 1048576 no_drop 1 invisible 1 msg Fires a bullet which does light damage to a creature in its path. endmsg end Object spell_cause_medium_wounds editor_folder spell/Bullet anim_suffix spellcasting name cause medium wounds name_pl cause medium wounds face spell_cause_medium_wounds.111 level 6 grace 8 casting_time 5 path_attuned 131072 other_arch cause_wounds dam 24 dam_modifier 1 maxgrace 24 skill praying type 101 subtype 5 value 30 attacktype 1048576 no_drop 1 invisible 1 msg Fires a bullet which does medium damage to a creature in its path. endmsg end Object spell_comet editor_folder spell/Bullet anim_suffix spellcasting name comet name_pl comet face spell_comet.111 level 16 value 80 sp 15 casting_time 10 path_attuned 16 other_arch meteor dam 75 dam_modifier 1 range 12 duration 10 duration_modifier 4 maxsp 18 type 101 subtype 5 attacktype 256 no_drop 1 invisible 1 skill pyromancy food 10 msg Fires a comet that delivers damage in three forms: physical, fire-based, and weaponmagic. endmsg end Object spell_hellfire editor_folder spell/Bullet anim_suffix spellcasting name hellfire name_pl hellfire face spell_hellfire.111 level 16 sp 13 casting_time 8 path_attuned 2 other_arch firebullet dam 8 dam_modifier 4 range 6 duration 4 maxsp 24 type 101 subtype 5 value 80 attacktype 4 no_drop 1 invisible 1 skill pyromancy food 10 msg This spell is similar to a magical fireball. It fires a small bullet of fire, that then explodes into a large area of fire. Hellfire is non-magical, and can damage magic-immune creatures. endmsg end Object spell_holy_orb editor_folder spell/Bullet anim_suffix spellcasting name holy orb name_pl holy orb face spell_holy_orb.111 level 14 grace 10 casting_time 5 path_attuned 65536 other_arch holy_orb dam 30 dam_modifier 2 duration 4 maxgrace 25 skill praying type 101 subtype 5 value 70 attacktype 2097152 no_drop 1 invisible 1 range 3 duration_modifier 19 food 18 maxhp 7 msg Fires a ball which explodes on contact like a fireball, casting Holy Word on the area. The damage type depends on the caster's god. It harms the god's enemy races and undead creatures. endmsg end Object spell_large_fireball editor_folder spell/Bullet anim_suffix spellcasting name large fireball name_pl large fireball face spell_large_fireball.111 level 10 sp 16 casting_time 8 path_attuned 2 other_arch firebullet dam 8 dam_modifier 4 range 8 duration 4 maxsp 32 type 101 subtype 5 value 50 attacktype 6 no_drop 1 invisible 1 skill pyromancy food 4 msg Fires a bullet that explodes into a large fire storm when it hits something. Items caught in the blaze may be destroyed. endmsg end Object spell_large_manaball editor_folder spell/Bullet anim_suffix spellcasting name large manaball name_pl large manaball face spell_large_manaball.111 level 12 sp 32 casting_time 9 path_attuned 32768 other_arch manabullet dam 8 dam_modifier 4 range 8 duration 4 maxsp 32 type 101 subtype 5 value 60 attacktype 2 no_drop 1 invisible 1 skill evocation food 15 msg Fires a ball of magical energy that explodes in a large burst of magical energy when it hits something. Few creatures can resist magical attacks. endmsg end Object spell_large_snowstorm editor_folder spell/Bullet anim_suffix spellcasting name large snowstorm name_pl large snowstorm face spell_large_snowstorm.111 level 10 sp 16 casting_time 6 path_attuned 4 other_arch snowball dam 8 dam_modifier 4 range 8 duration 4 maxsp 32 type 101 subtype 5 value 50 attacktype 18 no_drop 1 invisible 1 skill evocation food 8 msg Fires a snowball that explodes into a large flurry of ice and cold when it hits something. It delivers cold damage, and items caught in the explosion are encased in blocks of ice. endmsg end Object spell_lg_magic_bullet editor_folder spell/Bullet anim_suffix spellcasting name large bullet name_pl large bullet face spell_lg_magic_bullet.111 level 8 sp 3 casting_time 6 path_attuned 16 other_arch lbullet dam 25 dam_modifier 1 maxsp 25 skill evocation type 101 subtype 5 value 40 attacktype 2 no_drop 1 invisible 1 msg Fires a magical bullet that travels in one direction until striking something. endmsg end Object spell_medium_fireball editor_folder spell/Bullet anim_suffix spellcasting name medium fireball name_pl medium fireball face spell_medium_fireball.111 level 6 sp 10 casting_time 10 path_attuned 2 other_arch firebullet dam 8 dam_modifier 3 range 6 duration 4 maxsp 24 type 101 subtype 5 value 30 attacktype 6 no_drop 1 invisible 1 skill pyromancy food 4 msg Fires a bullet that explodes into a mid-sized fire storm when it hits something. Items caught in the blaze may be destroyed. endmsg end Object spell_medium_manaball editor_folder spell/Bullet anim_suffix spellcasting name medium manaball name_pl medium manaball face spell_medium_manaball.111 level 8 sp 6 casting_time 18 path_attuned 32768 other_arch manabullet dam 8 dam_modifier 3 range 6 duration 4 maxsp 24 type 101 subtype 5 value 40 attacktype 2 no_drop 1 invisible 1 skill evocation food 15 msg Fires a ball of magical energy that explodes in a mid-size burst of magical energy when it hits something. Few creatures can resist magical attacks. endmsg end Object spell_medium_snowstorm editor_folder spell/Bullet anim_suffix spellcasting name medium snowstorm name_pl medium snowstorm face spell_medium_snowstorm.111 level 6 sp 10 casting_time 5 path_attuned 4 other_arch snowball dam 8 dam_modifier 3 range 6 duration 4 maxsp 24 type 101 subtype 5 value 30 attacktype 18 no_drop 1 invisible 1 skill evocation food 7 msg Fires a snowball that explodes into a mid-size flurry of ice and cold when it hits something. It delivers cold damage, and items caught in the explosion are encased in blocks of ice. endmsg end Object spell_poison_cloud editor_folder spell/Bullet anim_suffix spellcasting name poison cloud name_pl poison cloud face spell_poison_cloud.111 level 4 sp 5 casting_time 10 path_attuned 16 other_arch poisonbullet dam 0 dam_modifier 3 range 4 duration 4 maxsp 8 type 101 subtype 5 value 20 attacktype 1026 no_drop 1 invisible 1 skill sorcery food 5 msg Fires a bullet that explodes on contact into a poisonous cloud. Affected creatures may be slowed, weakened, or killed. endmsg end Object spell_shell editor_folder spell/Bullet anim_suffix spellcasting name cannon shell name_pl cannon shell level 1 sp 10 casting_time 15 path_attuned 2 other_arch shell dam 7 dam_modifier 0 skill pyromancy range 8 duration 4 maxsp 0 type 101 subtype 5 value 10 attacktype 1 no_drop 1 invisible 1 food 4 end Object spell_small_bullet editor_folder spell/Bullet anim_suffix spellcasting name small bullet name_pl small bullet face spell_sm_bullet.111 level 1 sp 1 casting_time 2 path_attuned 16 other_arch bullet dam 10 dam_modifier 1 maxsp 6 skill evocation type 101 subtype 5 value 10 attacktype 2 no_drop 1 invisible 1 msg Fires a magical bullet that travels in one direction until striking something. endmsg end Object spell_small_fireball editor_folder spell/Bullet anim_suffix spellcasting name small fireball name_pl small fireball face spell_small_fireball.111 level 1 sp 6 casting_time 5 path_attuned 2 other_arch firebullet dam 8 dam_modifier 3 range 4 duration 4 maxsp 24 type 101 subtype 5 value 10 attacktype 6 no_drop 1 invisible 1 skill pyromancy food 4 msg Fires a bullet that explodes into a small fire storm when it hits something. Items caught in the blaze may be destroyed. endmsg end Object spell_small_manaball editor_folder spell/Bullet anim_suffix spellcasting name small manaball name_pl small manaball face spell_small_manaball.111 level 4 sp 12 casting_time 9 path_attuned 32768 other_arch manabullet dam 8 dam_modifier 3 range 4 duration 4 maxsp 24 type 101 subtype 5 value 20 attacktype 2 no_drop 1 invisible 1 skill evocation food 15 msg Fires a ball of magical energy that explodes in a small burst of magical energy when it hits something. Few creatures can resist magical attacks. endmsg end Object spell_small_snowstorm editor_folder spell/Bullet anim_suffix spellcasting name small snowstorm name_pl small snowstorm face spell_small_snowstorm.111 level 1 sp 6 casting_time 5 path_attuned 4 other_arch snowball dam 8 dam_modifier 6 range 4 duration 6 maxsp 24 type 101 subtype 5 value 10 attacktype 18 no_drop 1 invisible 1 skill evocation weight 500 food 4 msg Fires a snowball that explodes into a small flurry of ice and cold when it hits something. It delivers cold damage, and items caught in the explosion are encased in blocks of ice. endmsg end Object spell_vitriol editor_folder spell/Bullet anim_suffix spellcasting name vitriol name_pl vitriol face spell_vitriol.111 level 10 grace 15 casting_time 10 path_attuned 512 other_arch vitriol dam 100 dam_modifier 25 duration 4 duration_modifier 4 maxgrace 6 skill praying type 101 subtype 5 value 50 attacktype 64 no_drop 1 invisible 1 range 10 food 20 msg Fires a ball of acid that explodes on contact and does acid damage to creatures that are hit. The spell is granted by Gorokh. endmsg end Object vitriol editor_folder spell/Bullet name vitriol other_arch vitriol_splash type 102 subtype 5 face v_splash.111 animation vitriol_splash is_turnable 0 move_on walk fly_low glow_radius 2 speed 1 move_type fly_low no_pick 1 attacktype 64 end Object vitriol_splash editor_folder spell/Bullet name vitriol splash other_arch vitriol_pool type 102 subtype 7 face v_splash.111 animation vitriol_splash is_turnable 1 move_on walk fly_low glow_radius 2 speed 1 wc -30 move_type fly_low no_pick 1 end Object vitriol_pool editor_folder spell/Bullet type 102 subtype 7 level 1 move_on walk wc -30 stand_still 1 name vitriol pool face v_pool.111 animation vitriol_pool speed 0.2 no_pick 1 attacktype 64 duration 30 dam 15 end Object burnout editor_folder spell/Burnout name burning item face burnout.114 animation burnout speed 1 food 41 is_used_up 1 no_pick 1 end Object protection editor_folder spell/Change_Ability name protection face protection.111 animation protection speed 1 is_used_up 1 no_pick 1 see_anywhere 1 food 7 end Object spell_armour editor_folder spell/Change_Ability anim_suffix spellcasting name armour name_pl armour face spell_armour.111 level 1 sp 8 casting_time 10 path_attuned 33 skill evocation type 101 subtype 24 value 10 no_drop 1 invisible 1 duration_modifier 4 duration 500 dam_modifier 5 resist_physical 20 ac 2 maxsp 24 msg Armour creates fields of force around the player, reducing the amount of damage the character takes from physical attacks. It does not provide any additional protection to non-physical attacks. endmsg end Object spell_charisma editor_folder spell/Change_Ability anim_suffix spellcasting name charisma name_pl charisma face spell_charisma.111 level 6 sp 12 casting_time 20 path_attuned 32 skill sorcery type 101 subtype 24 value 30 no_drop 1 invisible 1 duration_modifier 4 duration 500 Cha 1 msg May increase the caster's Charisma stat temporarily. The magnitude of the effect depends on the caster's current Charisma stat and sorcery skill level. endmsg end Object spell_confusion editor_folder spell/Change_Ability anim_suffix spellcasting name confusion name_pl confusion face spell_confusion.111 level 2 sp 10 casting_time 10 path_attuned 1024 other_arch confusion skill sorcery type 101 subtype 24 value 20 no_drop 1 invisible 1 duration_modifier 4 duration 500 attacktype 32 msg The movement and attack directions of creatures affected this spell become random. When a confused character casts a spell, there is a chance that a completely different spell will result. endmsg end Object spell_constitution editor_folder spell/Change_Ability anim_suffix spellcasting name constitution name_pl constitution face spell_constitution.111 level 4 sp 15 casting_time 20 path_attuned 32 skill sorcery type 101 subtype 24 value 40 no_drop 1 invisible 1 duration_modifier 4 duration 500 Con 1 msg May increase the caster's Constitution stat temporarily. The magnitude of the increase depends on the caster's current Constitution stat and sorcery skill level. endmsg end Object spell_dark_vision editor_folder spell/Change_Ability anim_suffix spellcasting name dark vision name_pl dark vision face spell_dark_vision.111 level 5 sp 10 casting_time 12 path_attuned 8192 skill sorcery type 101 subtype 24 value 50 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxsp 30 can_see_in_dark 1 msg Allows the caster to see in the dark, without a light source. endmsg end Object spell_defense editor_folder spell/Change_Ability anim_suffix spellcasting name defense name_pl defense face spell_defense.111 level 40 grace 75 casting_time 30 path_attuned 1 skill praying type 101 subtype 24 value 250 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 50 resist_physical 30 resist_magic 30 resist_fire 30 resist_electricity 30 resist_cold 30 resist_confusion 30 resist_acid 30 resist_drain 30 resist_ghosthit 30 resist_poison 30 resist_slow 30 resist_paralyze 30 resist_turn_undead 30 resist_fear 30 resist_deplete 30 resist_death 30 resist_blind 30 msg Granted by Lythander to enable a worshipper to request resistance to various damaging attack types. endmsg end Object spell_dexterity editor_folder spell/Change_Ability anim_suffix spellcasting name dexterity name_pl dexterity face spell_dexterity.111 level 3 sp 12 casting_time 20 path_attuned 32 skill sorcery type 101 subtype 24 value 30 no_drop 1 invisible 1 duration_modifier 4 duration 500 Dex 1 msg May increase the caster's Dexterity stat temporarily. The magnitude of increase depends on the caster's Dexterity stat and sorcery skill level. endmsg end Object spell_haste editor_folder spell/Change_Ability anim_suffix spellcasting name haste name_pl haste face spell_haste.111 level 12 sp 50 casting_time 10 path_attuned 32 skill ?? type 101 subtype 24 value 120 no_drop 1 invisible 1 duration_modifier 4 duration 500 exp 3 end Object spell_heroism editor_folder spell/Change_Ability anim_suffix spellcasting name heroism name_pl heroism face spell_heroism.111 level 10 sp 50 casting_time 10 path_attuned 32 skill ??? type 101 subtype 24 value 100 no_drop 1 invisible 1 duration_modifier 4 duration 500 Con 1 Str 1 Dex 1 end Object spell_invulnerability editor_folder spell/Change_Ability anim_suffix spellcasting name invulnerability name_pl invulnerability level 80 grace 225 casting_time 30 path_attuned 16384 skill praying type 101 subtype 24 value 250 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 50 resist_physical 100 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_ghosthit 100 resist_poison 100 resist_slow 100 resist_paralyze 100 resist_turn_undead 100 resist_fear 100 resist_deplete 100 resist_death 100 resist_blind 100 msg A powerful spell that grants complete protection from all forms of attack. endmsg end Object spell_iron_skin editor_folder spell/Change_Ability anim_suffix spellcasting name iron skin name_pl iron skin face spell_iron_skin.111 level 1 grace 8 casting_time 10 path_attuned 33 skill praying type 101 subtype 24 value 10 no_drop 1 invisible 1 duration_modifier 4 duration 500 dam_modifier 5 resist_physical 20 ac 2 maxgrace 24 msg Iron skin toughens the skin of the recipient, making them harder to hit and reducing the amount of damage they take from physical attacks. It does not provide any additional protection to non-physical attacks. Gaea grants this prayer. endmsg end Object spell_levitate editor_folder spell/Change_Ability anim_suffix spellcasting name levitate name_pl levitate face spell_levitate.111 level 6 sp 10 casting_time 10 path_attuned 16384 skill sorcery type 101 subtype 24 value 60 no_drop 1 invisible 1 duration_modifier 4 duration 500 move_type fly_low msg Causes the caster to float or fly low over the ground so as to prevent falling into holes or traps. It is not possible to pick things up off the ground while levitating. endmsg end Object spell_protection_from_attack editor_folder spell/Change_Ability anim_suffix spellcasting name protection from attack name_pl protection from attack face spell_protection_from_attack.111 level 16 grace 50 casting_time 15 path_attuned 1 skill praying type 101 subtype 24 value 130 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_physical 40 dam_modifier 3 msg Protection from attack creates a powerful force that protects the recipient from physical damage. The spell stacks with armor the character is wearing, but in that case, the effect is diminished. endmsg end Object spell_protection_from_cancellation editor_folder spell/Change_Ability anim_suffix spellcasting name protection from cancellation name_pl protection from cancellation face spell_protection_from_cancellation.111 level 12 grace 30 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 110 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_cancellation 40 dam_modifier 3 msg Improves the caster's protection against attacks that remove magical (+/-) bonuses from items. endmsg end Object spell_protection_from_cold editor_folder spell/Change_Ability anim_suffix spellcasting name protection from cold name_pl protection from cold face spell_protection_from_cold.111 level 2 grace 15 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 30 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_cold 30 dam_modifier 3 msg Improves the caster's protection against cold-based attacks. endmsg end Object spell_protection_from_confusion editor_folder spell/Change_Ability anim_suffix spellcasting name protection from confusion name_pl protection from confusion face spell_protection_from_confusion.111 level 4 grace 20 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 70 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_confusion 50 dam_modifier 4 msg Improves the caster's protection against confusion attacks. endmsg end Object spell_protection_from_depletion editor_folder spell/Change_Ability anim_suffix spellcasting name protection from depletion name_pl protection from depletion face spell_protection_from_depletion.111 level 6 grace 20 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 70 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_deplete 40 dam_modifier 3 msg Improves the caster's protection against stat depletion attacks. endmsg end Object spell_protection_from_draining editor_folder spell/Change_Ability anim_suffix spellcasting name protection from draining name_pl protection from draining face spell_protection_from_draining.111 level 8 grace 25 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 90 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_drain 35 dam_modifier 3 msg Protection from draining reduces the experience loss when the character is hit with a draining attack. The character will still lose some experience, but not as much. endmsg end Object spell_protection_from_electricity editor_folder spell/Change_Ability anim_suffix spellcasting name protection from electricity name_pl protection from electricity face spell_protection_from_electricity.111 level 3 grace 15 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 40 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_electricity 30 dam_modifier 3 msg Improves the caster's protection against electrical attacks. endmsg end Object spell_protection_from_fire editor_folder spell/Change_Ability anim_suffix spellcasting name protection from fire name_pl protection from fire face spell_protection_from_fire.111 level 2 grace 20 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 50 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_fire 30 dam_modifier 3 msg Improves the caster's protection against fire-based attacks. endmsg end Object spell_protection_from_magic editor_folder spell/Change_Ability anim_suffix spellcasting name protection from magic name_pl protection from magic face spell_protection_from_magic.111 level 10 grace 30 casting_time 12 path_attuned 1 skill praying type 101 subtype 24 value 100 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_magic 30 dam_modifier 3 msg Protection from magic reduces damage from magical attacks or spells. There are a few spells that do not hit with a magical attack, so it does not offer protection from them. endmsg end Object spell_protection_from_paralysis editor_folder spell/Change_Ability anim_suffix spellcasting name protection from paralysis name_pl protection from paralysis face spell_protection_from_paralysis.111 level 6 grace 20 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 80 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_paralyze 50 dam_modifier 4 msg Improves the caster's protection against paralyzing attacks. endmsg end Object spell_protection_from_poison editor_folder spell/Change_Ability anim_suffix spellcasting name protection from poison name_pl protection from poison face spell_protection_from_poison.111 level 2 grace 20 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 60 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_poison 50 dam_modifier 4 msg Improves the caster's protection against poisoning attacks. endmsg end Object spell_protection_from_slow editor_folder spell/Change_Ability anim_suffix spellcasting name protection from slow name_pl protection from slow face spell_protection_from_slow.111 level 4 grace 20 casting_time 10 path_attuned 1 skill praying type 101 subtype 24 value 70 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxgrace 40 resist_slow 50 dam_modifier 4 msg Improves the caster's protection against slow spells. endmsg end Object spell_rage editor_folder spell/Change_Ability anim_suffix spellcasting name rage name_pl rage face spell_rage.111 level 1 grace 5 casting_time 10 path_attuned 131072 skill praying type 101 subtype 24 value 10 no_drop 1 invisible 1 duration_modifier 4 duration 500 dam_modifier 5 hp 1 resist_physical 20 ac 2 wc 2 exp 3 Con 1 Str 1 Dex 1 maxgrace 4 msg Fill the caster with the godly rage, temporarily enhancing strength, speed, endurance, and regeneration. Resistance to physical attack is improved. The spell is granted by Gorokh and Ruggilli. endmsg end Object spell_regeneration editor_folder spell/Change_Ability anim_suffix spellcasting name regeneration name_pl regeneration face spell_regeneration.111 level 14 grace 15 casting_time 10 path_attuned 128 skill praying type 101 subtype 24 value 70 no_drop 1 invisible 1 duration_modifier 6 duration 500 dam_modifier 5 hp 1 maxgrace 20 msg Increases the rate of healing. endmsg end Object spell_strength editor_folder spell/Change_Ability anim_suffix spellcasting name strength name_pl strength face spell_strength.111 level 2 sp 10 casting_time 20 path_attuned 32 skill sorcery type 101 subtype 24 value 20 no_drop 1 invisible 1 duration_modifier 4 duration 500 Str 1 msg Increases the caster’s Strength stat temporarily. The magnitude of the effect depends on the caster’s current Strength stat and sorcery skill level. endmsg end Object spell_xray editor_folder spell/Change_Ability anim_suffix spellcasting name xray name_pl xray face spell_xray.111 level 10 sp 20 casting_time 20 path_attuned 8192 skill sorcery type 101 subtype 24 value 100 no_drop 1 invisible 1 duration_modifier 4 duration 500 maxsp 36 xrays 1 msg Temporarily grants the caster an ability to see through walls and other objects that block line-of-sight. The range of vision is limited one tile on the other side of a wall that is one tile thick. endmsg end Object banishment editor_folder spell/Cone name banishment slaying undead type 102 subtype 7 move_on walk fly_low face banishment.111 animation banishment speed 1 wc -40 move_type fly_low no_pick 1 weight 500 end Object color_spray editor_folder spell/Cone name color spray type 102 subtype 7 move_on walk fly_low face confusion.111 animation color_spray wc -30 speed 1 move_type fly_low no_pick 1 weight 500 end Object confusion editor_folder spell/Cone name madness type 102 subtype 7 level 1 move_on walk fly_low face confusion.111 animation confusion speed 1 wc -30 move_type fly_low no_pick 1 end Object counterspell editor_folder spell/Cone name counterspell type 102 subtype 7 move_on walk fly_low face counterspell.111 wc -30 speed 1 move_type fly_low no_pick 1 end Object face_of_death editor_folder spell/Cone name deathstrike type 102 subtype 7 move_on walk fly_low face face_of_death.111 wc -30 speed 1 move_type fly_low no_pick 1 end Object fear editor_folder spell/Cone type 102 subtype 7 move_on walk fly_low face fear.111 animation fear speed 1 wc -30 move_type fly_low no_pick 1 end Object firebreath editor_folder spell/Cone name fire type 102 subtype 7 move_on walk fly_low face fireball.111 animation firebreath smoothlevel 200 speed 1 wc -30 move_type fly_low glow_radius 1 no_pick 1 weight 500 end Object flowers editor_folder spell/Cone name flower name_pl flowers client_type 8015 type 102 subtype 7 face flowers.111 material 32 speed 0.5 move_type fly_low nrof 1 weight 500 end Object holy_word editor_folder spell/Cone name fear type 102 subtype 7 move_on walk fly_low slaying undead,demon face holy_word.111 animation holy_word speed 1 wc -30 move_type fly_low no_pick 1 end Object icestorm editor_folder spell/Cone name icestorm type 102 subtype 7 level 1 move_on walk fly_low face icestorm.111 animation icestorm speed 1 wc -30 move_type fly_low no_pick 1 weight 500 end Object manablast editor_folder spell/Cone name mana blast type 102 subtype 7 move_on walk fly_low face manablast.111 animation manablast speed 1 wc -50 move_type fly_low no_pick 1 weight 500 end Object paralyze editor_folder spell/Cone name stars type 102 subtype 7 move_on walk fly_low face paralyse.111 animation paralyze speed 1 wc -30 move_type fly_low no_pick 1 end Object peace editor_folder spell/Cone name peace other_arch peacemaker face highangel.118 move_on walk fly_low wc -90 move_type fly_low type 102 subtype 7 speed 1 no_pick 1 end Object peacemaker editor_folder spell/Cone name peacemaker face fireball.111 invisible 1 type 59 speed 1 move_type fly_low no_pick 1 food 2 is_used_up 1 end Object shockwave editor_folder spell/Cone name shockwave type 102 subtype 7 move_on walk fly_low face explosion.111 animation shockwave wc -30 speed 1.0 move_type fly_low weight 4000 no_pick 1 end Object slow editor_folder spell/Cone type 102 subtype 7 move_on walk fly_low face slow.111 animation slow wc -30 speed 1 move_type fly_low no_pick 1 end Object sparkshower editor_folder spell/Cone name Shower of Sparks type 102 subtype 7 level 1 move_on walk fly_low face sparkshower.111 animation sparkshower anim_speed 1.0 speed 0.075 wc -30 dam 1 move_type fly_low glow_radius 4 no_pick 1 attacktype 14 weight 100 end Object spell_banishment editor_folder spell/Cone anim_suffix spellcasting name banishment name_pl banishment face spell_banishment.111 level 10 grace 10 casting_time 10 path_attuned 65536 other_arch banishment dam 50 dam_modifier 0 range 4 duration 2 range_modifier 9 maxgrace 24 type 101 subtype 7 value 50 attacktype 2228224 no_drop 1 invisible 1 skill praying msg Banishment is a cone spell that may cause weaker enemies of your god to immediately disappear or die. It is a more powerful version of Holy Word. endmsg end Object spell_burning_hands editor_folder spell/Cone anim_suffix spellcasting name burning hands name_pl burning hands face spell_burning_hands.111 level 1 sp 5 casting_time 5 path_attuned 2 other_arch firebreath dam 4 dam_modifier 4 range 5 duration 2 range_modifier 4 maxsp 20 type 101 subtype 7 value 10 attacktype 6 no_drop 1 invisible 1 skill pyromancy msg Casts cone of fire in front of the caster. The spell gains strength as the character gains in level, so it remains a valuable spell even at high levels. endmsg end Object spell_color_spray editor_folder spell/Cone anim_suffix spellcasting name color spray name_pl color spray face spell_color_spray.111 level 26 sp 35 casting_time 2 path_attuned 16384 other_arch color_spray dam 25 dam_modifier 3 range 10 duration 2 range_modifier 5 maxsp 24 type 101 subtype 7 value 130 attacktype 262144 no_drop 1 invisible 1 skill sorcery msg Color spray fires a cone of energy. The energy hits with many different attacktypes, so creatures that are highly resistant to some will still take damage from some of the other attacktypes of the spray. This spell does not do as much damage compared to a spell that hits with only one attacktype, but is useful if it is not known what attacktype a creature can be damaged with, or if the room is full of varying creatures, with different protections. endmsg end Object spell_counterspell editor_folder spell/Cone anim_suffix spellcasting name counterspell name_pl counterspell face spell_counterspell.111 level 6 sp 10 casting_time 2 path_attuned 128 other_arch counterspell dam 0 dam_modifier 0 range 6 duration 2 range_modifier 3 maxsp 24 type 101 subtype 7 value 30 attacktype 524288 no_drop 1 invisible 1 skill summoning msg Counterspell fires a cone of energy that absorbs other spell energy. This can be used to counter incoming spells so that they do not hit the character. It does not affect spells of a higher level than the caster's level. endmsg end Object spell_dragonbreath editor_folder spell/Cone anim_suffix spellcasting name dragonbreath name_pl dragonbreath face spell_dragonbreath.111 level 24 sp 13 casting_time 5 path_attuned 2 other_arch firebreath dam 25 dam_modifier 3 range 7 duration 2 range_modifier 5 maxsp 24 type 101 subtype 7 value 120 attacktype 4 no_drop 1 invisible 1 skill pyromancy msg Dragonbreath is a cone effect that fires sheets of non-magical fire. The fire is not magical, so it can harm creatures with immunity to magic but which are vulnerable to fire. endmsg end Object spell_face_of_death editor_folder spell/Cone anim_suffix spellcasting name face of death name_pl face of death face spell_face_of_death.111 level 34 grace 80 casting_time 10 path_attuned 262144 other_arch face_of_death dam 0 dam_modifier 0 range 4 duration 2 range_modifier 12 maxgrace 24 type 101 subtype 7 value 220 attacktype 131072 no_drop 1 invisible 1 skill praying msg Face of death fires a cone of death. Creatures caught within this area of death either die outright (regardless of how many hit points they have) or are completely unharmed. The spell does not harm equipment whether worn by creatures or laying on the floor. It is granted by the Devourers. endmsg end Object spell_fear editor_folder spell/Cone anim_suffix spellcasting name fear name_pl fear face spell_fear.111 level 4 sp 6 casting_time 5 path_attuned 1024 other_arch fear dam 5 dam_modifier 0 range 4 duration 2 range_modifier 3 maxsp 24 type 101 subtype 7 value 40 attacktype 16386 no_drop 1 invisible 1 skill sorcery msg Fires a cone of fear, possibly causing enemies within the cone to flee. endmsg end Object spell_holy_word editor_folder spell/Cone anim_suffix spellcasting name holy word name_pl holy word face spell_holy_word.111 level 1 grace 4 casting_time 1 path_attuned 65536 other_arch holy_word dam 2 dam_modifier 4 range 2 duration 1 range_modifier 4 maxgrace 24 type 101 subtype 7 value 10 attacktype 2097152 no_drop 1 invisible 1 skill praying msg A cone spell that does damage to the enemies of the caster's god and to undeads, but has no effect on other creatures. endmsg end Object spell_icestorm editor_folder spell/Cone anim_suffix spellcasting name icestorm name_pl icestorm face spell_icestorm.111 level 1 sp 5 casting_time 8 path_attuned 4 other_arch icestorm dam 4 dam_modifier 3 range 3 duration 2 range_modifier 5 maxsp 24 type 101 subtype 7 value 10 attacktype 18 no_drop 1 invisible 1 skill evocation msg Fires a cone of ice that damages creatures caught inside it. The spell increases in power with the caster's evocation level. A side-effect of the storm is that items tend to become encased in blocks of ice. endmsg end Object spell_large_icestorm editor_folder spell/Cone anim_suffix spellcasting name large icestorm name_pl large icestorm face spell_large_icestorm.111 level 24 sp 13 casting_time 9 path_attuned 4 other_arch icestorm dam 4 dam_modifier 3 range 14 duration 2 range_modifier 5 maxsp 24 type 101 subtype 7 value 120 attacktype 18 no_drop 1 invisible 1 skill evocation msg Fires a cone of ice that damages creatures caught inside it. The spell increases in power with the caster's evocation level. A side-effect of the storm is that items tend to become encased in blocks of ice. endmsg end Object spell_mana_blast editor_folder spell/Cone anim_suffix spellcasting name mana blast name_pl mana blast face spell_mana_blast.111 level 4 sp 10 casting_time 7 path_attuned 32768 other_arch manablast dam 4 dam_modifier 4 range 5 duration 2 range_modifier 4 maxsp 24 type 101 subtype 7 value 20 attacktype 2 no_drop 1 invisible 1 skill evocation msg Mana blast fires a cone of magical energy. The energy is pure magic, to which few creatures have resistance. endmsg end Object spell_mass_confusion editor_folder spell/Cone anim_suffix spellcasting name mass confusion name_pl mass confusion face spell_mass_confusion.111 level 7 sp 20 casting_time 10 path_attuned 1024 other_arch confusion dam 0 dam_modifier 0 range 8 duration 2 range_modifier 5 maxsp 25 type 101 subtype 7 value 70 attacktype 34 no_drop 1 invisible 1 skill sorcery msg A confusion spell that propogates from the caster in a cone shape. Confused opponents have a hard time coordinating movements and attacks. endmsg end Object spell_paralyze editor_folder spell/Cone anim_suffix spellcasting name paralyze name_pl paralyze face spell_paralyze.111 level 2 sp 5 casting_time 10 path_attuned 1024 other_arch paralyze dam 25 dam_modifier 3 range 5 duration 2 range_modifier 3 maxsp 24 type 101 subtype 7 value 20 attacktype 4098 no_drop 1 invisible 1 skill sorcery msg Fires a cone-shaped spell that may paralyze creatures it hits. Attacking a paralyzed target does not break the spell. endmsg end Object spell_peace editor_folder spell/Cone anim_suffix spellcasting name peace name_pl peace face spell_peace.111 level 40 grace 80 casting_time 10 path_attuned 1 other_arch peace dam 0 dam_modifier 0 range 4 duration 2 range_modifier 9 maxgrace 36 type 101 subtype 7 value 200 attacktype 0 no_drop 1 invisible 1 skill praying msg Fires a cone of peacemakers that convert aggressive monsters into unaggressive creatures that run away from battle and assume random movement. They are no longer considered to be monsters, so things like mood floors cannot make them aggressive again. This spell is granted by Gaea. endmsg end Object spell_shockwave editor_folder spell/Cone anim_suffix spellcasting name shockwave name_pl shockwave face spell_shockwave.111 level 28 sp 26 casting_time 9 path_attuned 512 other_arch shockwave dam 10 dam_modifier 3 range 18 duration 2 range_modifier 5 maxsp 25 type 101 subtype 7 value 140 attacktype 3 no_drop 1 invisible 1 skill evocation msg Fires a cone of force that attacks creatures in its path with both magical and physical damage. endmsg end Object spell_slow editor_folder spell/Cone anim_suffix spellcasting name slow name_pl slow face spell_slow.111 level 1 sp 5 casting_time 10 path_attuned 1024 other_arch slow dam 5 dam_modifier 0 range 5 duration 2 range_modifier 4 maxsp 20 type 101 subtype 7 value 10 attacktype 2050 no_drop 1 invisible 1 skill sorcery msg Fires a cone-shaped force that slows down the creatures it hits. endmsg end Object spell_spark_shower editor_folder spell/Cone anim_suffix spellcasting name spark shower name_pl spark shower face spell_spark_shower.111 level 1 sp 5 casting_time 6 path_attuned 8 other_arch sparkshower dam 2 dam_modifier 5 range 6 duration 2 range_modifier 5 maxsp 24 type 101 subtype 7 value 10 attacktype 10 no_drop 1 invisible 1 skill sorcery msg Fires cone shaped attack that is made up of magical and electrical energy. endmsg end Object spell_spiderweb editor_folder spell/Cone anim_suffix spellcasting name spiderweb name_pl spiderweb face spell_spiderweb.111 level 8 grace 10 casting_time 10 path_attuned 2048 other_arch spiderweb_cone dam 0 dam_modifier 0 range 10 duration 2 range_modifier 5 maxgrace 50 type 101 subtype 7 value 40 attacktype 0 no_drop 1 invisible 1 skill praying msg Fires a cone of cobwebs that can nearly immobilize any creatures caught in it. Gaea grants this to her worshippers. endmsg end Object spell_turn_undead editor_folder spell/Cone anim_suffix spellcasting name turn undead name_pl turn undead face spell_turn_undead.111 level 1 grace 2 casting_time 5 path_attuned 65536 other_arch turn_undead dam 0 dam_modifier 0 range 3 duration 1 range_modifier 4 maxgrace 24 type 101 subtype 7 value 10 attacktype 8192 no_drop 1 invisible 1 skill praying msg A cone spell that can inflict fear in the undead. endmsg end Object spell_vitriol_splash editor_folder spell/Cone anim_suffix spellcasting name vitriol splash name_pl vitriol splash face spell_vitriol_splash.111 level 10 grace 15 casting_time 10 path_attuned 512 other_arch vitriol_splash dam 40 dam_modifier 4 range 5 duration 2 range_modifier 40 maxgrace 20 type 101 subtype 7 value 50 attacktype 64 no_drop 1 invisible 1 skill praying msg Fires a cone of acid that splashes on contact and does acid damage to affected creatures. endmsg end Object spell_wave editor_folder spell/Cone anim_suffix spellcasting name wave name_pl wave face spell_wave.111 level 6 grace 8 casting_time 10 path_attuned 4 other_arch wave dam 0 dam_modifier 3 range 20 duration 3 range_modifier 4 maxgrace 24 type 101 subtype 7 value 30 attacktype 1 no_drop 1 invisible 1 skill praying msg An Ixalovh-granted spell that produces a cone of rushing water that can flow around corners doing physical damage to creatures in its path. The wave also pushes creatures or items in its path. endmsg end Object spell_windstorm editor_folder spell/Cone anim_suffix spellcasting name windstorm name_pl windstorm face spell_windstorm.111 level 6 grace 3 casting_time 10 path_attuned 8 other_arch windstorm dam 0 dam_modifier 4 range 20 duration 3 range_modifier 4 maxgrace 24 type 101 subtype 7 value 30 attacktype 1 no_drop 1 invisible 1 skill praying msg Generates a cone-shaped windstorm that does minor physical damage and can push creatures and objects in its path. Sorig followers are granted this spell. endmsg end Object spell_wonder editor_folder spell/Cone anim_suffix spellcasting name wonder name_pl wonder face spell_wonder.111 level 3 sp 10 casting_time 0 path_attuned 16384 other_arch flowers dam 0 dam_modifier 0 range 6 duration 3 range_modifier 0 maxsp 0 type 101 subtype 9 value 30 attacktype 4096 no_drop 1 invisible 1 skill sorcery randomitems wonder_spells msg Casts a randomly selected spell, or, about 1/3 of the time, creates harmless flowers. Low-level spells appear more frequently than high-level ones. endmsg end Object spell_wrathful_eye editor_folder spell/Cone anim_suffix spellcasting name wrathful eye name_pl wrathful eye face spell_wrathful_eye.111 level 10 grace 30 casting_time 8 path_attuned 32 other_arch wrathful_eye dam 20 dam_modifier 3 range 5 duration 2 range_modifier 5 maxgrace 24 type 101 subtype 7 value 50 attacktype 4194304 no_drop 1 invisible 1 skill praying msg Summons an image of Valriel's Eye that may blind creatures in the cone-shaped area in front of it. The spell is granted to Valriel. endmsg end Object spiderweb_cone editor_folder spell/Cone name spider web other_arch spider_web2 face spider_web.111 move_on walk fly_low wc -90 move_type fly_low type 102 subtype 7 speed 1 no_pick 1 end Object spider_web2 editor_folder spell/Cone name spider web face spider_web.111 animation spider_web no_pick 1 move_slow walk move_slow_penalty 7 material 128 anim_speed 10 client_anim_random 1 end Object turn_undead editor_folder spell/Cone name fear type 102 subtype 7 move_on walk fly_low face turnundead.111 animation turn_undead speed 1 wc -30 move_type fly_low no_pick 1 end Object wave editor_folder spell/Cone name wave type 102 subtype 7 move_on walk fly_low face wave.111 animation wave wc -30 speed 1.0 move_type fly_low weight 50000 no_pick 1 end Object windstorm editor_folder spell/Cone name windstorm type 102 subtype 7 move_on walk fly_low face windstorm.111 animation windstorm weight 1000 wc -30 speed 1.0 move_type fly_low no_pick 1 end Object wrathful_eye editor_folder spell/Cone name wrathful eye type 102 subtype 7 move_on walk fly_low face sunspear.111 animation wrathful_eye wc -30 speed 1.0 move_type fly_low no_pick 1 glow_radius 2 end Object detect_magic editor_folder spell/Detect name magic glow face det_magic.111 animation detect_magic speed 1 is_used_up 1 no_pick 1 see_anywhere 1 food 3 end Object detect_monster editor_folder spell/Detect name magic glow face det_magic.111 animation detect_monster speed 0.2 is_used_up 1 no_pick 1 see_anywhere 1 food 3 end Object spell_detect_curse editor_folder spell/Detect anim_suffix spellcasting name detect curse name_pl detect curse face spell_detect_curse.111 level 10 grace 10 casting_time 20 skill praying path_attuned 8192 type 101 subtype 33 value 50 no_drop 1 invisible 1 range 12 range_modifier 5 other_arch detect_magic known_cursed 1 msg Detects cursed or damned objects in the caster's inventory. endmsg end Object spell_detect_evil editor_folder spell/Detect anim_suffix spellcasting name detect evil name_pl detect evil face spell_detect_evil.111 level 6 grace 3 casting_time 15 skill praying path_attuned 8192 type 101 subtype 33 value 30 no_drop 1 invisible 1 range 12 range_modifier 5 other_arch detect_monster race GOD msg Detects enemies in the area that have an evil alignment. endmsg end Object spell_detect_magic editor_folder spell/Detect anim_suffix spellcasting name detect magic name_pl detect magic face spell_detect_magic.111 level 1 sp 1 casting_time 13 path_attuned 8192 skill sorcery type 101 subtype 33 value 10 no_drop 1 invisible 1 range 12 range_modifier 5 other_arch detect_magic known_magical 1 msg Reveals items in the caster's inventory, or in the vicinity, that are imbued with magical power. endmsg end Object spell_detect_monster editor_folder spell/Detect anim_suffix spellcasting name detect monster name_pl detect monster face spell_detect_monster.111 level 4 sp 2 casting_time 15 skill evocation path_attuned 8192 type 101 subtype 33 value 20 no_drop 1 invisible 1 range 12 range_modifier 5 other_arch detect_monster monster 1 msg Reveal unseen or hidden monsters in the vicinity without having to open doors or get them in direct line-of-sight. endmsg end Object spell_show_invisible editor_folder spell/Detect anim_suffix spellcasting name show invisible name_pl show invisible face spell_show_invisible.111 level 14 grace 10 casting_time 20 skill praying path_attuned 8192 type 101 subtype 33 value 50 no_drop 1 invisible 1 range 12 range_modifier 5 other_arch detect_magic make_invisible 1 msg Useful for revealing monsters or objects that are invisible. endmsg end Object spell_cause_anthrax editor_folder spell/Disease anim_suffix spellcasting name cause anthrax name_pl cause anthrax face spell_cause_anthrax.111 type 101 subtype 45 level 24 value 120 grace 50 casting_time 10 skill praying path_attuned 131072 other_arch anthrax range 5 range_modifier 10 dam_modifier 1 duration_modifier 10 maxgrace 20 no_drop 1 invisible 1 msg Causes an outbreak of anthrax that is deadly to animals, but not usually harmful to other creatures. endmsg end Object spell_cause_black_death editor_folder spell/Disease anim_suffix spellcasting name cause black death name_pl cause black death type 101 subtype 45 face spell_cause_black_death.111 level 30 value 150 grace 120 casting_time 10 skill praying path_attuned 131072 other_arch bubonic_plague range 5 range_modifier 10 dam_modifier 3 duration_modifier 10 maxgrace 20 no_drop 1 invisible 1 msg Unleashes a very deadly and contagious plague. This spell is granted by the Devourers god. endmsg end Object spell_cause_cold editor_folder spell/Disease anim_suffix spellcasting name cause cold name_pl cause cold type 101 subtype 45 face spell_cause_cold.111 level 2 value 20 grace 10 casting_time 10 skill praying path_attuned 131072 other_arch disease_cold range 5 range_modifier 10 dam_modifier 3 duration_modifier 5 maxgrace 20 no_drop 1 invisible 1 msg Causes a disease to spread that is is highly contagious but only somewhat debilitating. It is rarely fatal unless it is complicated by other infections. Players and monsters affected move more slowly, and become weaker until the disease runs its course or is cured. endmsg end Object spell_cause_flu editor_folder spell/Disease anim_suffix spellcasting name cause flu name_pl cause flu face spell_cause_flu.111 type 101 subtype 45 level 4 value 20 grace 10 casting_time 10 skill praying path_attuned 131072 other_arch flu range 5 range_modifier 10 dam_modifier 3 duration_modifier 5 maxgrace 20 no_drop 1 invisible 1 msg Unleashes an outbreak of the flu. It is rarely deadly, except to weak monsters, but it is very debilitating. endmsg end Object spell_cause_leprosy editor_folder spell/Disease anim_suffix spellcasting name cause leprosy name_pl cause leprosy face spell_cause_leprosy.111 type 101 subtype 45 level 10 value 50 grace 20 casting_time 10 skill praying path_attuned 131072 other_arch leprosy range 5 range_modifier 10 dam_modifier 1 duration_modifier 1 maxgrace 20 no_drop 1 invisible 1 msg Infects a target with leprosy. This disease is not very contagious, but can be spread by touching. The damage caused increases with the length of the infection. When used with patience, it can fell great adversaries. endmsg end Object spell_cause_rabies editor_folder spell/Disease anim_suffix spellcasting name cause rabies name_pl cause rabies face spell_cause_rabies.111 type 101 subtype 45 level 24 value 120 grace 120 casting_time 10 skill praying path_attuned 131072 other_arch rabies range 5 range_modifier 10 dam_modifier 1 duration_modifier 1 maxgrace 18 no_drop 1 invisible 1 msg Causes the disease of rabies. The spell is granted by Gnarg. endmsg end Object spell_cause_red_death editor_folder spell/Disease anim_suffix spellcasting name cause red death name_pl cause red death face spell_cause_red_death.111 type 101 subtype 45 level 24 value 120 grace 100 casting_time 10 skill praying path_attuned 131072 other_arch ebola range 5 range_modifier 10 dam_modifier 1 duration_modifier 1 maxgrace 12 no_drop 1 invisible 1 msg Unleashes a very deadly and contagious plague. This spell is granted by the Devourers. endmsg end Object spell_cause_smallpox editor_folder spell/Disease anim_suffix spellcasting name cause smallpox name_pl cause smallpox face spell_cause_smallpox.111 type 101 subtype 45 level 20 value 100 grace 85 casting_time 10 skill praying path_attuned 131072 other_arch smallpox range 5 range_modifier 10 dam_modifier 1 duration_modifier 4 maxgrace 20 no_drop 1 invisible 1 msg Unleashes an outbreak of smallpox. This disease is highly contagious and often fatal to weaker monsters, but its deadliness is restricted to humanoids. This spell is granted by Gnarg. endmsg end Object spell_cause_typhoid editor_folder spell/Disease anim_suffix spellcasting name cause typhoid name_pl cause typhoid face spell_cause_typhoid.111 type 101 subtype 45 level 16 value 80 grace 60 casting_time 10 skill praying path_attuned 131072 other_arch typhoid range 5 range_modifier 10 dam_modifier 1 duration_modifier 10 maxgrace 24 no_drop 1 invisible 1 msg Infects a target with typhoid. Typhoid is deadly to human, goblin, giant, and troll races but is harmless to other creatures. endmsg end Object spell_cause_white_death editor_folder spell/Disease anim_suffix spellcasting name cause white death name_pl cause white death face spell_cause_white_death.111 type 101 subtype 45 level 85 value 500 grace 350 casting_time 10 skill praying path_attuned 131072 other_arch pneumonic_plague range 5 range_modifier 10 dam_modifier 1 duration_modifier 5 maxgrace 24 no_drop 1 invisible 1 msg Causes an outbreak of the most contagious and deadly disease of all. endmsg end Object avatar editor_folder spell/Golem type 46 name Avatar face avatar.131 animation avatar is_animated 1 monster 1 alive 1 resist_physical 45 ac -10 wc -1 dam 50 hp 500 maxhp 500 level 23 speed 0.25 resist_magic 100 exp 1000 weight 200000 move_type walk end Object golem editor_folder spell/Golem type 46 face golem.111 animation golem monster 1 alive 1 ac 5 wc 12 dam 8 attacktype 1 hp 50 maxhp 50 level 4 speed 0.1 exp 65 weight 200000 move_type walk end Object holy_servant editor_folder spell/Golem name Servant type 46 face golem.111 animation holy_servant is_animated 1 monster 1 resist_physical 25 alive 1 ac 4 wc 10 dam 5 hp 50 maxhp 50 level 4 speed 0.15 resist_magic 100 exp 75 weight 200000 end Object mystic_fist editor_folder spell/Golem name Mystic Fist type 102 subtype 12 face mystic_fist.111 animation mystic_fist monster 1 alive 1 ac 5 wc 12 dam 8 hp 50 maxhp 50 level 5 speed 0.5 exp 250 weight 20 move_type fly_low end Object spell_call_holy_servant editor_folder spell/Golem anim_suffix spellcasting name call holy servant name_pl call holy servant face spell_call_holy_servant.111 level 12 grace 30 casting_time 5 path_attuned 64 race holy servant dam 0 dam_modifier 8 duration 120 duration_modifier 8 range_modifier 15 maxgrace 20 type 101 subtype 12 value 60 no_drop 1 invisible 1 skill praying wc_increase_rate 4 msg Calls a strong fighter from the caster's god, whom you control with the Fire and direction keys, the same way that golems are controlled. The character receives all experience from the holy servant's kills. endmsg end Object spell_dancing_sword editor_folder spell/Golem anim_suffix spellcasting name dancing sword name_pl dancing sword face spell_dancing_sword.111 type 101 subtype 12 level 12 value 110 sp 25 casting_time 10 skill summoning path_attuned 2048 other_arch dancingsword dam 50 dam_modifier 2 duration 75 duration_modifier 1 range_modifier 20 maxsp 20 attacktype 1 no_drop 1 invisible 1 wc_increase_rate 4 msg Summon a magical sword that battles on behalf of the caster. The sword may be controlled with the Fire and direction keys. endmsg end Object spell_summon_golem editor_folder spell/Golem anim_suffix spellcasting name summon golem name_pl summon golem face spell_summon_golem.111 level 2 sp 5 casting_time 10 path_attuned 64 other_arch golem dam 40 dam_modifier 2 duration 75 duration_modifier 5 range_modifier 20 maxsp 20 type 101 subtype 12 value 20 attacktype 1 no_drop 1 invisible 1 skill summoning wc_increase_rate 2 msg Golem summons a magical creature that does the caster's wishes. The caster can have it attack other creatures, bash down doors, detonate runes, etc. The golem has a finite lifetime, and this life is shortened any time it takes damage. This golem is a bit more powerful than the lesser golem. endmsg end Object spell_lesser_summon_golem editor_folder spell/Golem anim_suffix spellcasting name summon lesser golem name_pl summon lesser golem face spell_lesser_golem.111 level 1 sp 3 casting_time 10 path_attuned 64 other_arch golem dam 20 duration 75 duration_modifier 2 range_modifier 10 maxsp 15 type 101 subtype 12 value 10 attacktype 1 no_drop 1 invisible 1 skill summoning wc_increase_rate 2 msg Lesser golem summons a magical creature that does the caster's wishes. The caster can have it attack other creatures, bash down doors, detonate runes, etc. The golem has a finite lifetime, and this life is shortened any time it takes damage. endmsg end Object spell_mystic_fist editor_folder spell/Golem anim_suffix spellcasting name mystic fist name_pl mystic fist face spell_mystic_fist.111 level 10 sp 10 casting_time 15 path_attuned 64 other_arch mystic_fist dam 40 dam_modifier 5 duration 50 duration_modifier 10 range_modifier 30 maxsp 20 type 101 subtype 12 value 50 attacktype 8 no_drop 1 invisible 1 skill summoning wc_increase_rate 4 msg Creates a magical fist that delivers an electrical damage and is controlled with the Fire and direction keys. endmsg end Object spell_summon_air_elemental editor_folder spell/Golem anim_suffix spellcasting name summon air elemental name_pl summon air elemental face spell_summon_air_elemental.111 level 12 sp 20 casting_time 12 path_attuned 64 other_arch air_elemental dam 40 dam_modifier 5 duration 160 duration_modifier 10 range_modifier 30 maxsp 20 type 101 subtype 12 value 60 attacktype 8 no_drop 1 invisible 1 skill summoning wc_increase_rate 4 msg Summon an air elemental that is controlled with the Fire and direction keys and it's attacks consist of electrical energy. endmsg end Object spell_summon_avatar editor_folder spell/Golem anim_suffix spellcasting name summon avatar name_pl summon avatar face spell_summon_avatar.111 level 20 grace 60 casting_time 15 path_attuned 64 race avatar dam 0 dam_modifier 5 duration 380 duration_modifier 5 range_modifier 15 maxgrace 30 type 101 subtype 12 value 100 no_drop 1 invisible 1 skill praying wc_increase_rate 4 msg Summons the strongest fighter of one's god. Control the avatar with the Fire and direction keys. This is the most powerful summoning spell. endmsg end Object spell_summon_devil editor_folder spell/Golem anim_suffix spellcasting name summon devil name_pl summon devil face spell_summon_devil.111 level 6 sp 20 casting_time 13 path_attuned 64 other_arch devil dam 10 dam_modifier 10 duration 160 duration_modifier 10 range_modifier 20 maxsp 20 type 101 subtype 12 value 60 attacktype 8 no_drop 1 invisible 1 skill summoning wc_increase_rate 4 msg Calls a devil from the infernal regions of the underworld. The devil is controlled with the Fire and direction keys, and attacks with electrical energy. endmsg end Object spell_summon_earth_elemental editor_folder spell/Golem anim_suffix spellcasting name summon earth elemental name_pl summon earth elemental face spell_summon_earth_elemental.111 level 8 sp 15 casting_time 11 path_attuned 64 other_arch earth_elemental dam 60 dam_modifier 5 duration 280 duration_modifier 10 range_modifier 30 maxsp 20 type 101 subtype 12 value 40 attacktype 1 no_drop 1 invisible 1 skill summoning wc_increase_rate 4 msg Creates an elemental from surrounding rock that is controlled with the Fire and direction keys. An earth elemental is very durable and strong, doing physical damage, but moves quite slowly. endmsg end Object spell_summon_fire_elemental editor_folder spell/Golem anim_suffix spellcasting name summon fire elemental name_pl summon fire elemental face spell_summon_fire_elemental.111 level 14 sp 25 casting_time 12 path_attuned 64 other_arch fire_elemental dam 20 dam_modifier 10 duration 200 duration_modifier 10 range_modifier 30 maxsp 20 type 101 subtype 12 value 70 attacktype 4 no_drop 1 invisible 1 skill summoning wc_increase_rate 4 msg Summons a creature from the elemental plane of fire controlled with the Fire and direction keys. They are impervious to fire-based damage, and deliver fire- based attacks. endmsg end Object spell_summon_water_elemental editor_folder spell/Golem anim_suffix spellcasting name summon water elemental name_pl summon water elemental face spell_summon_water_elemental.111 level 10 sp 15 casting_time 11 path_attuned 64 other_arch water_elemental dam 50 dam_modifier 5 duration 140 duration_modifier 10 range_modifier 30 maxsp 20 type 101 subtype 12 value 50 attacktype 17 no_drop 1 invisible 1 skill summoning wc_increase_rate 4 msg Summons a creature from the elemental plane of water that is controlled with the Fire and direction keys. This elemental attacks deliver cold and physical damage. endmsg end Object healing editor_folder spell/Healing name healing face healing.111 animation healing speed 1 is_used_up 1 no_pick 1 see_anywhere 1 food 5 type 102 subtype 21 end Object spell_cure_blindness editor_folder spell/Healing anim_suffix spellcasting name cure blindness name_pl cure blindness face spell_cure_blindness.111 level 18 grace 30 casting_time 10 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 90 no_drop 1 invisible 1 attacktype 4194304 msg Allows a blinded character to see again. endmsg end Object spell_cure_confusion editor_folder spell/Healing anim_suffix spellcasting name cure confusion name_pl cure confusion face spell_cure_confusion.111 level 14 grace 8 casting_time 15 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 70 no_drop 1 invisible 1 attacktype 32 msg Returns a confused character to their normal senses by removing the inability to reliably control movement and spell casting. endmsg end Object spell_cure_disease editor_folder spell/Healing anim_suffix spellcasting name cure disease name_pl cure disease face spell_cure_disease.111 level 10 grace 30 casting_time 10 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 50 no_drop 1 invisible 1 attacktype 33554432 msg Cures a character of a disease. The caster may cure others by firing the spell at the afflicted character. endmsg end Object spell_cure_poison editor_folder spell/Healing anim_suffix spellcasting name cure poison name_pl cure poison face spell_cure_poison.111 level 8 grace 7 casting_time 10 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 40 no_drop 1 invisible 1 attacktype 1024 msg Cleanses damaging poisons from the body. The caster can cure others by firing the spell toward an afflicted character. endmsg end Object spell_heal editor_folder spell/Healing anim_suffix spellcasting name heal name_pl heal face spell_heal.111 level 30 grace 50 casting_time 12 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 100 no_drop 1 invisible 1 hp 0 dam 9999 msg Mends all wounds of the caster or a target. It does not cure conditions like such as disease or poison. endmsg end Object spell_major_healing editor_folder spell/Healing anim_suffix spellcasting name major healing name_pl major healing face spell_major_healing.111 level 16 grace 10 casting_time 9 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 80 no_drop 1 invisible 1 hp 5 dam 4 msg A spell that may regenerate a large amount of hit points for the caster or to another character. endmsg end Object spell_medium_healing editor_folder spell/Healing anim_suffix spellcasting name medium healing name_pl medium healing face spell_medium_healing.111 level 8 grace 7 casting_time 6 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 40 no_drop 1 invisible 1 hp 3 dam 2 msg A spell that may regenerate a moderate amount of hit points for the caster or to another character. endmsg end Object spell_minor_healing editor_folder spell/Healing anim_suffix spellcasting name minor healing name_pl minor healing face spell_minor_healing.111 level 1 grace 4 casting_time 3 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 10 no_drop 1 invisible 1 hp 1 dam 1 msg A spell that may regenerate a small amount of hit points for the caster or to another character. endmsg end Object spell_regenerate_spellpoints editor_folder spell/Healing anim_suffix spellcasting name regenerate spellpoints name_pl regenerate spellpoints face spell_regenerate_spellpoints.111 level 99 sp 0 casting_time 0 path_attuned 256 other_arch healing skill ??? type 101 subtype 21 value 990 no_drop 1 invisible 1 last_sp 9999 end Object spell_restoration editor_folder spell/Healing anim_suffix spellcasting name restoration name_pl restoration face spell_restoration.111 level 32 grace 80 casting_time 15 path_attuned 256 other_arch healing skill praying type 101 subtype 21 value 130 no_drop 1 invisible 1 attacktype 37749792 food 999 dam 9999 msg Restoration heals all damage, confusion, poison, and disease, and also provides a full stomach of food to the recipient. It does not take care of death. endmsg end Object magic_missile editor_folder spell/MagicMissile name magic missile name_pl magic missile type 102 subtype 11 face magic_miss.131 animation magic_missile is_animated 0 is_turnable 1 move_on walk fly_low move_type fly_low no_pick 1 speed 1 wc 2 end Object spell_magic_missile editor_folder spell/MagicMissile anim_suffix spellcasting name magic missile name_pl magic missile face spell_magic_missile.111 level 1 sp 1 casting_time 3 path_attuned 16 other_arch magic_missile dam 9 dam_modifier 1 maxsp 20 skill sorcery type 101 subtype 11 value 10 attacktype 2 no_drop 1 invisible 1 range 25 msg Fires a target-tracking magical bolt that can turn to seek out enemies. The bolt does not always track well and may run into walls or even return and strike the caster. endmsg end Object smover_turn editor_folder spell/MagicWall/smover name force face pmarrow.181 animation smover_turn attacktype 1 lifesave 1 hp 10 invisible 0 speed 0.2 type 40 move_type walk no_pick 1 maxsp 1 move_on walk -fly_low end Object smover_1 editor_folder spell/MagicWall/smover name force face pmarrow.111 animation smover_1 attacktype 1 lifesave 1 hp 10 speed -0.4 invisible 0 type 40 move_type walk no_pick 1 sp 1 move_on walk -fly_low end Object smover_2 editor_folder spell/MagicWall/smover name force face pmarrow.121 animation smover_2 attacktype 1 lifesave 1 hp 10 invisible 0 speed -0.4 type 40 move_type walk no_pick 1 sp 2 move_on walk -fly_low end Object smover_3 editor_folder spell/MagicWall/smover name force face pmarrow.131 animation smover_3 attacktype 1 lifesave 1 hp 10 invisible 0 speed -0.4 type 40 move_type walk no_pick 1 sp 3 move_on walk -fly_low end Object smover_4 editor_folder spell/MagicWall/smover name force face pmarrow.141 attacktype 1 lifesave 1 hp 10 invisible 0 animation smover_4 speed -0.4 type 40 move_type walk no_pick 1 sp 4 move_on walk -fly_low end Object smover_5 editor_folder spell/MagicWall/smover name force attacktype 1 lifesave 1 hp 10 invisible 0 face pmarrow.151 animation smover_5 speed -0.4 type 40 move_type walk no_pick 1 sp 5 move_on walk -fly_low end Object smover_6 editor_folder spell/MagicWall/smover name force attacktype 1 lifesave 1 hp 10 invisible 0 face pmarrow.161 animation smover_6 speed -0.4 type 40 move_type walk no_pick 1 sp 6 move_on walk -fly_low end Object smover_7 editor_folder spell/MagicWall/smover name force attacktype 1 lifesave 1 hp 10 invisible 0 face pmarrow.171 animation smover_7 speed -0.4 type 40 move_type walk no_pick 1 sp 7 move_on walk -fly_low end Object smover_8 editor_folder spell/MagicWall/smover name force attacktype 1 lifesave 1 hp 10 invisible 0 face pmarrow.181 animation smover_8 speed -0.4 type 40 move_type walk no_pick 1 sp 8 move_on walk -fly_low end Object spell_build_bullet_wall editor_folder spell/MagicWall anim_suffix spellcasting name build bullet wall name_pl build bullet wall face spell_build_bullet_wall.111 type 101 subtype 15 level 24 value 120 sp 35 casting_time 15 skill evocation path_attuned 2048 no_drop 1 invisible 1 race lbulletwall_%d duration 100 duration_modifier 1 dam 80 dam_modifier 1 range 0 maxsp 20 is_used_up 1 move_block all tear_down 1 msg Build bullet wall creates a wall that fires magic bullets, as per the magic bullet spell. The bullet wall itself can be torn down, and will eventually expire on its own. endmsg end Object spell_build_director editor_folder spell/MagicWall anim_suffix spellcasting name build director name_pl build director face spell_build_director.111 type 101 subtype 15 level 20 value 100 sp 30 casting_time 13 skill summoning path_attuned 2048 no_drop 1 invisible 1 race director_%d duration 200 duration_modifier 1 dam 80 dam_modifier 1 range 0 maxsp 20 is_used_up 1 msg Build director creates a director facing the direction of the caster. Directors can be used to change the course of certain spells - most notably bullets and bolts. Thus, it can be used to be able to fire a spell around a corner, or direct a spell back at the caster. endmsg move_block all end Object spell_build_fireball_wall editor_folder spell/MagicWall anim_suffix spellcasting name build fireball wall name_pl build fireball wall face spell_build_fireball_wall.111 type 101 subtype 15 level 32 value 160 sp 45 casting_time 15 skill pyromancy path_attuned 2048 no_drop 1 invisible 1 race firewall_%d duration 100 duration_modifier 1 dam 80 dam_modifier 1 range 0 maxsp 20 is_used_up 1 tear_down 1 move_block all msg Build fireball wall creates a wall that fires fireballs. These fireballs behave just like normal fireballs. The wall can be torn down by creatures, and will eventually expire of its own accord. endmsg end Object spell_build_lightning_wall editor_folder spell/MagicWall anim_suffix spellcasting name build lightning wall name_pl build lightning wall face spell_build_lightning_wall.111 type 101 subtype 15 level 28 value 140 sp 40 casting_time 14 skill pyromancy path_attuned 2048 no_drop 1 invisible 1 race lightningwall_%d duration 100 duration_modifier 1 dam 80 dam_modifier 1 range 0 maxsp 20 is_used_up 1 tear_down 1 move_block all msg Build lightning wall creates a wall that fires lightning bolts. The wall fires in the direction the spell is cast. The wall can be torn down by creatures, and will eventually expire of its own accord. endmsg end Object spell_counterwall editor_folder spell/MagicWall anim_suffix spellcasting name counterwall name_pl counterwall face spell_counterwall.111 level 16 sp 8 attacktype 524288 casting_time 14 path_attuned 256 other_arch counterspell skill summoning type 101 subtype 15 value 80 no_drop 1 invisible 1 duration 100 duration_modifier 1 maxsp 20 range 2 range_modifier 15 msg Counterwall creates a wall that fires counterspells. Counterspells are cone spells that prevent spells from passing through the affected area. Counterwalls can be useful to constantly neutralize spell effects. The counterwall itself has a finite duration. endmsg move_block all end Object spell_create_earth_wall editor_folder spell/MagicWall anim_suffix spellcasting name create earth wall name_pl create earth wall face spell_create_earth_wall.111 level 8 sp 6 casting_time 12 path_attuned 2048 other_arch earthwall skill summoning type 101 subtype 15 value 40 no_drop 1 invisible 1 duration 3000 duration_modifier 1 range 2 range_modifier 10 move_block all msg Create a wall of earth in front of the caster. Earthwalls block most creature's movement and line of sight. Unlike other wall spells, earthwalls cast no spells and do no damage, and do not disappear after a specified time. They remain standing until destroyed. endmsg end Object spell_create_fire_wall editor_folder spell/MagicWall anim_suffix spellcasting name create fire wall name_pl create fire wall face spell_create_fire_wall.111 level 12 sp 5 casting_time 10 path_attuned 2048 other_arch firebreath skill pyromancy type 101 subtype 15 value 60 no_drop 1 invisible 1 duration 260 duration_modifier 1 dam 4 dam_modifier 3 maxsp 20 attacktype 6 range 2 range_modifier 10 move_block all msg Create a line of fire in front of the caster. Creatures crossing the line take fire damage. Casting the spell multiple times on the same area increases the damage the wall delivers. endmsg end Object spell_create_frost_wall editor_folder spell/MagicWall anim_suffix spellcasting name create frost wall name_pl create frost wall face spell_create_frost_wall.111 level 16 sp 8 casting_time 10 path_attuned 2048 other_arch icestorm skill evocation type 101 subtype 15 value 80 no_drop 1 invisible 1 duration 240 duration_modifier 1 dam 2 dam_modifier 3 maxsp 20 attacktype 18 range 2 range_modifier 12 move_block all msg Creates a wall of frost in front of the caster. Creatures that cross the wall take cold damage. If the spell is cast multiple times on the same spot, the damage the wall delivers increases. endmsg end Object spell_create_lava editor_folder spell/MagicWall anim_suffix spellcasting name create lava name_pl create lava level 8 sp 8 casting_time 30 path_attuned 256 other_arch lava skill ???? type 101 subtype 15 value 80 no_drop 1 invisible 1 duration 100 duration_modifier 1 maxsp 20 range 0 move_block all end Object spell_create_pool_of_chaos editor_folder spell/MagicWall anim_suffix spellcasting name create pool of chaos name_pl create pool of chaos face spell_create_pool_of_chaos.111 level 20 sp 10 casting_time 15 path_attuned 2048 other_arch color_spray skill evocation type 101 subtype 15 value 100 no_drop 1 invisible 1 duration 240 duration_modifier 1 dam 4 dam_modifier 3 maxsp 20 attacktype 262144 range 2 range_modifier 20 move_block all msg Create a wall of chaotic energy in front of the caster. Creatures that cross the wall are hit with a variety of attacks. The effect does not block line-of-sight, and if cast multiple times in the same place, the damage delivered by the wall increases. endmsg end Object spell_darkness editor_folder spell/MagicWall anim_suffix spellcasting name darkness name_pl darkness face spell_darkness.111 level 10 grace 15 casting_time 5 path_attuned 524288 other_arch darkness skill praying type 101 subtype 15 value 50 no_drop 1 invisible 1 duration 50 duration_modifier 2 maxgrace 30 range 2 range_modifier 13 move_block all msg Places a wall of darkness in front of the caster. The wall can be crossed, but creatures cannot see through it. endmsg end Object spell_repelwall editor_folder spell/MagicWall anim_suffix spellcasting name create repulsion wall name_pl create repulsion wall face spell_sorcery.111 level 15 sp 30 attacktype 1 casting_time 20 path_attuned 2048 race smover_%d skill sorcery type 101 subtype 15 value 80 no_drop 1 invisible 1 duration_modifier 5 duration 60 is_used_up 1 maxsp 20 range 1 range_modifier 60 move_block all msg Creates a wall that repels all creatures except those that can fly. endmsg end Object spell_wall_of_thorns editor_folder spell/MagicWall anim_suffix spellcasting name wall of thorns name_pl wall of thorns face spell_wall_of_thorns.111 level 12 grace 20 casting_time 5 path_attuned 2048 other_arch thorns skill praying type 101 subtype 15 value 60 no_drop 1 invisible 1 duration 300 duration_modifier 1 dam 4 dam_modifier 3 maxgrace 50 attacktype 1 range 2 range_modifier 14 move_block all msg Creates a wall of thorns on the ground that slows and damages creatures that attempt to cross through it. Both Gaea and Mostrai grant this spell. endmsg end Object darkness editor_folder spell/Misc face blocked.111 animation darkness is_used_up 1 speed 0.03 blocksview 1 move_type fly_low no_pick 1 end Object destruction editor_folder spell/Misc name destruction face destruction.111 animation destruction speed 1 is_used_up 1 no_pick 1 see_anywhere 1 food 4 end Object enchantment editor_folder spell/Misc name enchantment face enchantment.111 animation enchantment speed 1 is_used_up 1 no_pick 1 see_anywhere 1 food 5 end Object light editor_folder spell/Misc face sunspear.111 animation light is_used_up 1 invisible 1 speed 0.03 glow_radius 1 move_type fly_low no_pick 1 end Object polymorph editor_folder spell/Misc face polymorph.111 animation polymorph speed 1 move_type fly_low no_pick 1 is_used_up 1 food 4 end Object rune_mark editor_folder spell/Misc name Rune of Marking hp 1 type 98 face rune_mark.111 level 0 is_animated 0 no_pick 1 move_on walk end Object spell_alchemy editor_folder spell/Misc anim_suffix spellcasting name alchemy name_pl alchemy face spell_alchemy.111 level 6 sp 5 casting_time 25 path_attuned 16384 skill summoning type 101 subtype 30 value 30 no_drop 1 invisible 1 duration 100 duration_modifier 5 dam_modifier 1 msg The alchemy spell converts valuable items into gold nuggets. If the item is not valuable enough to be converted to a nugget, it is destroyed and vanishes. endmsg end Object spell_consecrate editor_folder spell/Misc anim_suffix spellcasting name consecrate name_pl consecrate face spell_consecrate.111 type 101 subtype 40 level 8 value 40 grace 35 casting_time 25 skill praying path_attuned 128 no_drop 1 invisible 1 msg Consecrate is used to convert an altar into an altar of the god the caster worships. endmsg end Object spell_create_food editor_folder spell/Misc anim_suffix spellcasting name create food name_pl create food face spell_create_food.111 level 12 sp 10 casting_time 20 path_attuned 2048 skill summoning type 101 subtype 22 value 60 no_drop 1 invisible 1 food 100 duration_modifier 1 maxsp 20 msg Creates a food item for the caster. It is possible to specify what to make with a command like: cast create food F, where F is the name of the food. endmsg end Object spell_create_missile editor_folder spell/Misc anim_suffix spellcasting name create missile name_pl create missile face spell_create_missile.111 type 101 subtype 39 level 1 value 10 sp 5 casting_time 20 skill summoning path_attuned 2048 no_drop 1 invisible 1 dam_modifier 6 duration 5 duration_modifier 2 maxsp 15 msg Creates arrows for use with a bow or crossbow. To create crossbow bolts, wield a crossbow when casting the spell. At high levels in summoning, it is possible to create arrows (or bolts) with a specific magical bonus by using a command like: cast create missile N where N is +0, +1, +2, +3 or +4. endmsg end Object spell_daylight editor_folder spell/Misc anim_suffix spellcasting name daylight name_pl daylight face spell_daylight.111 type 101 subtype 43 level 36 value 180 grace 120 casting_time 15 skill praying path_attuned 524288 no_drop 1 invisible 1 dam -1 msg Lights up the area. The spell is granted by Gaea and Valriel. endmsg end Object spell_destruction editor_folder spell/Misc anim_suffix spellcasting name destruction name_pl destruction face spell_destruction.111 level 30 sp 30 casting_time 10 path_attuned 512 other_arch destruction skill sorcery type 101 subtype 16 value 180 no_drop 1 invisible 1 range 4 range_modifier 12 dam 60 dam_modifier 1 maxsp 20 attacktype 2 msg Destruction damages all creatures around the player. Unlike most spells, this one works through walls and doors so the caster need not see targets to attack them. The damage delivered is entirely magical in nature, and increases as sorcery skill level, Intelligence, Wisdom, and Power stats increase. endmsg end Object spell_dimension_door editor_folder spell/Misc anim_suffix spellcasting name dimension door name_pl dimension door face spell_dimension_door.111 level 10 value 100 sp 25 casting_time 10 path_attuned 4096 range 25 range_modifier 5 maxsp 25 skill sorcery type 101 subtype 13 no_drop 1 invisible 1 msg A short-range teleportation spell that transports the character in the direction the spell is cast. Zones where magic is blocked defeat this spell, but it is possible to pass through areas that seem impassable to other movement types. The spell also fails if it would cause the caster to land in the same space as a monster. Normally the spell will transport the character the maximum possible distance, but if the player specifies a count, the spell tries to transport the character the specified number of spaces. endmsg end Object spell_disarm editor_folder spell/Misc anim_suffix spellcasting name disarm name_pl disarm face spell_disarm.111 type 101 subtype 38 level 4 value 40 sp 7 casting_time 10 skill sorcery path_attuned 128 no_drop 1 invisible 1 msg Attempts a disarm of a trap without risk of triggering it. The chance of success ranges from about 1/2 to about 1/20 and is dependent on the caster level, trap level, and somewhat upon the caster's dexterity stat. It may also be used to remove marking runes. endmsg end Object spell_earth_to_dust editor_folder spell/Misc anim_suffix spellcasting name earth to dust name_pl earth to dust face spell_earth_to_dust.111 level 4 sp 5 casting_time 15 path_attuned 16384 other_arch destruction skill summoning type 101 subtype 23 value 20 no_drop 1 invisible 1 maxsp 20 range 2 range_modifier 3 msg Earth to dust causes damage to or destroys earth and other weak walls in the vicinity of the caster. It does not damage other objects or monsters. endmsg end Object spell_faery_fire editor_folder spell/Misc anim_suffix spellcasting name faery fire name_pl faery fire face spell_faery_fire.111 type 101 subtype 44 level 8 value 40 sp 10 casting_time 15 skill pyromancy path_attuned 524288 other_arch detect_magic no_drop 1 invisible 1 range 5 range_modifier 6 duration 5 duration_modifier 5 maxsp 20 msg Causes creatures near the caster to glow and may have other effects. It is the only pyromancy spell in the path of Light. endmsg end Object spell_identify editor_folder spell/Misc anim_suffix spellcasting name identify name_pl identify face spell_identify.111 level 8 sp 60 casting_time 20 path_attuned 8192 skill sorcery other_arch enchantment type 101 subtype 32 value 80 no_drop 1 invisible 1 dam 3 dam_modifier 5 msg Identifies the characteristics of a small number of unidentified objects in in inventory or on the floor where the character is standing. The number of objects identified increases as caster's sorcery level increases. endmsg end Object spell_improved_invisibility editor_folder spell/Misc anim_suffix spellcasting name improved invisibility name_pl improved invisibility face spell_improved_invisibility.111 level 8 sp 25 casting_time 10 path_attuned 524288 other_arch enchantment skill sorcery type 101 subtype 19 value 80 no_drop 1 invisible 1 duration 200 duration_modifier 1 maxsp 20 make_invisible 1 msg Makes the caster invisible. Unlike the normal invisibility spell, the caster remains invisible even when attacking or casting other spells. endmsg end Object spell_invisible editor_folder spell/Misc anim_suffix spellcasting name invisible name_pl invisible face spell_invisible.111 level 6 sp 15 casting_time 5 path_attuned 524288 other_arch enchantment skill sorcery type 101 subtype 19 value 60 no_drop 1 invisible 1 duration 300 duration_modifier 1 maxsp 20 msg Makes the caster invisible. Attacking other creatures or using spells causes the invisibility to dissipate more quickly. endmsg end Object spell_invisible_to_undead editor_folder spell/Misc anim_suffix spellcasting name invisible to undead name_pl invisible to undead face spell_invisible_to_undead.111 level 12 grace 25 casting_time 5 path_attuned 524288 other_arch enchantment skill praying type 101 subtype 19 value 60 no_drop 1 invisible 1 duration 300 duration_modifier 1 maxgrace 20 race undead msg An invisibility spell that hides the caster from undead creatures. endmsg end Object spell_light editor_folder spell/Misc anim_suffix spellcasting name light name_pl light face spell_light.111 type 101 subtype 42 level 1 value 10 grace 4 casting_time 5 skill praying path_attuned 524288 other_arch light attacktype 4194306 dam 2 dam_modifier 20 duration 1000 duration_modifier 1 range_modifier 10 range 2 maxgrace 20 no_drop 1 invisible 1 msg Lights up the environment surrounding the caster. endmsg end Object spell_magic_drain editor_folder spell/Misc anim_suffix spellcasting name magic drain name_pl magic drain face spell_magic_drain.111 type 101 subtype 37 level 12 value 120 sp 20 casting_time 1 skill sorcery path_attuned 32768 no_drop 1 invisible 1 dam -75 dam_modifier 1 maxsp 20 msg Drains mana points from the target and gives them to the caster. endmsg end Object spell_magic_mapping editor_folder spell/Misc anim_suffix spellcasting name magic mapping name_pl magic mapping face spell_magic_mapping.111 level 5 sp 15 casting_time 1 path_attuned 8192 other_arch enchantment skill sorcery type 101 subtype 14 value 50 no_drop 1 invisible 1 msg Shows an overhead map of the caster’s location. The map is color-coded and can give some indication of creatures present on the map. endmsg end Object spell_marking_rune editor_folder spell/Misc anim_suffix spellcasting name marking rune name_pl marking rune face spell_marking_rune.111 type 101 subtype 3 level 1 value 10 sp 2 casting_time 10 skill sorcery path_attuned 64 no_drop 1 invisible 1 other_arch rune_mark msg Creates a harmless sign on the floor that contains a message of the caster's choosing. It is readable by applying as one would any other readable item. endmsg end Object spell_nightfall editor_folder spell/Misc anim_suffix spellcasting name nightfall name_pl nightfall face spell_nightfall.111 type 101 subtype 43 level 32 value 160 grace 120 casting_time 15 skill praying path_attuned 524288 no_drop 1 invisible 1 dam 1 msg Brings about a general darkness in the area. The Devourers and Gaea grant this spell. endmsg end Object spell_perceive_self editor_folder spell/Misc anim_suffix spellcasting name perceive self name_pl perceive self face spell_perceive_self.111 level 4 grace 5 casting_time 1 path_attuned 8192 skill praying type 101 subtype 17 value 20 no_drop 1 invisible 1 msg Displays information about the caster including: God worshipped; attributes, bonuses; attacks; paths attuned, denied, and repelled; protections; stat depletions, special characteristics. Much of the information is able to be found other ways, but the spell is still useful at times. endmsg end Object spell_polymorph editor_folder spell/Misc face spell_polymorph.111 anim_suffix spellcasting name polymorph name_pl polymorph level 6 sp 20 casting_time 30 path_attuned 16384 skill sorcery type 101 subtype 29 value 60 no_drop 1 invisible 1 range 5 range_modifier 5 other_arch polymorph msg Converts a living object into another monster of some sort, or transforms an object to another type of object. endmsg end Object spell_probe editor_folder spell/Misc anim_suffix spellcasting name probe name_pl probe face spell_probe.111 level 1 sp 3 casting_time 2 path_attuned 8192 skill sorcery type 101 subtype 20 value 10 no_drop 1 invisible 1 range 25 range_modifier 5 msg Gives the caster general information about a nearby enemy. Reports the overall condition of a target and the chance of defeating it. endmsg end Object spell_charging editor_folder spell/Misc anim_suffix spellcasting name charging name_pl charging face spell_charging.111 level 10 sp 200 casting_time 75 path_attuned 32768 skill ??? type 101 subtype 28 value 100 no_drop 1 invisible 1 dam 40 dam_modifier 5 msg Used to add charges to rods or wands that are in the caster's possession. Mark the item to be charged before casting. The item may explode instead of accepting additional charges. endmsg end Object spell_remove_curse editor_folder spell/Misc anim_suffix spellcasting name remove curse name_pl remove curse face spell_remove_curse.111 level 16 grace 80 casting_time 20 path_attuned 256 skill praying type 101 subtype 31 value 80 no_drop 1 invisible 1 cursed 1 maxgrace 30 msg Eliminates the cursed status of objects the character currently is wearing to allow the items to be unequipped. It does not alter the cursed status for objects that are not equipped. endmsg end Object spell_remove_damnation editor_folder spell/Misc anim_suffix spellcasting name remove damnation name_pl remove damnation face spell_remove_damnation.111 level 30 grace 150 casting_time 25 path_attuned 256 skill praying type 101 subtype 31 value 150 no_drop 1 invisible 1 damned 1 maxgrace 30 msg Eliminates the damned status of objects the character currently is wearing to allow the items to be unequipped. It does not alter the damned status for objects that are not equipped. endmsg end Object spell_transference editor_folder spell/Misc anim_suffix spellcasting name transference name_pl transference face spell_transference.111 type 101 subtype 37 level 5 value 50 sp 10 casting_time 20 skill sorcery path_attuned 32768 no_drop 1 invisible 1 dam 8 dam_modifier 2 maxsp 20 msg Transfers spell points to other players by firing this spell at them. If used on a normal creature, the magical energy may cause the creature to explode in a ball of fire. endmsg end Object spell_word_of_recall editor_folder spell/Misc anim_suffix spellcasting name word of recall name_pl word of recall face spell_word_of_recall.111 level 20 grace 40 casting_time 15 path_attuned 4096 skill praying type 101 subtype 18 value 100 duration 40 duration_modifier 5 maxgrace 20 no_drop 1 invisible 1 msg Word of recall transports the caster back to the most recently used Bed to Reality, but there is a delay between the time the spell is cast and the time the caster is transported home. endmsg end Object charm_aura editor_folder spell/MoodChange name charm aura face charm_aura.111 animation charm_aura speed 1 is_used_up 1 no_pick 1 see_anywhere 1 food 3 end Object spell_aggravation editor_folder spell/MoodChange face spell_aggravation.111 anim_suffix spellcasting name aggravation name_pl aggravation level 1 sp 1 casting_time 1 path_attuned 1024 skill ???? type 101 subtype 34 value 10 no_drop 1 invisible 1 range 25 undead 1 monster 1 msg Aggravation is used to change the mood of unagressive creatures so that they attack the caster. endmsg end Object spell_charm_monsters editor_folder spell/MoodChange anim_suffix spellcasting name charm monsters name_pl charm monsters face spell_charm_monsters.111 level 15 sp 20 casting_time 10 path_attuned 1024 skill summoning type 101 subtype 34 value 50 no_drop 1 invisible 1 range 3 range_modifier 15 maxsp 27 no_attack 1 other_arch charm_aura msg Attempts to convert nearby monsters into pets that fight for the caster. endmsg end Object spell_command_undead editor_folder spell/MoodChange anim_suffix spellcasting name command undead name_pl command undead face spell_command_undead.111 level 10 grace 12 casting_time 10 path_attuned 1024 skill praying type 101 subtype 34 value 50 no_drop 1 invisible 1 range 1 range_modifier 15 maxgrace 25 no_attack 1 other_arch detect_magic race undead undead 1 msg Turns nearby undead creatures into pets. May affect any or all of the creatures standing next to the caster. endmsg end Object spell_conflict editor_folder spell/MoodChange anim_suffix spellcasting name conflict name_pl conflict face spell_conflict.111 level 20 grace 50 casting_time 10 path_attuned 1024 skill praying type 101 subtype 34 value 100 no_drop 1 invisible 1 range 5 range_modifier 10 maxgrace 20 berserk 1 other_arch detect_magic msg Confuses and distracts nearby monsters, causing them to go berserk, attacking both friend and foe. This spell is granted by Lythander. endmsg end Object spell_pacify editor_folder spell/MoodChange anim_suffix spellcasting name pacify name_pl pacify face spell_pacify.111 level 8 grace 10 casting_time 2 path_attuned 1024 skill praying type 101 subtype 34 value 40 no_drop 1 invisible 1 range 1 range_modifier 5 maxgrace 25 unaggressive 1 other_arch detect_magic msg A mood-change spell that makes a target become unaggressive. endmsg end Object spell_siren_call editor_folder spell/MoodChange anim_suffix spellcasting name siren call name_pl siren call face spell_praying.111 level 14 grace 20 casting_time 10 path_attuned 1024 skill praying type 101 subtype 34 value 50 no_drop 1 invisible 1 range 3 range_modifier 15 maxgrace 27 no_attack 1 other_arch charm_aura msg A charm spell granted by Ixalovh. Experience is granted if the charm succeeds and for any enemies killed by the charmed creature. endmsg end Object ball_lightning editor_folder spell/MovingBall type 102 subtype 35 face ball_lightning.111 animation ball_lightning is_used_up 1 is_animated 1 glow_radius 2 move_on walk fly_low move_type fly_low no_pick 1 speed 1 wc -30 end Object divine_shock editor_folder spell/MovingBall name divine shock type 102 subtype 35 face ball_lightning.111 animation divine_shock is_used_up 1 is_animated 1 glow_radius 2 move_on walk fly_low move_type fly_low no_pick 1 speed 1 wc -30 end Object negaball editor_folder spell/MovingBall name negative energy ball type 102 subtype 35 face negaball.111 animation negaball is_used_up 1 is_animated 1 glow_radius 1 move_on walk fly_low move_type fly_low no_pick 1 speed 1 wc -30 end Object poison_fog editor_folder spell/MovingBall name poison fog other_arch poison_fog_sign type 102 subtype 35 face poisoncloud.111 animation poison_fog is_used_up 1 is_animated 1 move_on walk move_type fly_low no_pick 1 speed 0.2 wc -30 end Object poison_fog_sign editor_folder spell/MovingBall name poison fog face poisoncloud.111 animation poison_fog_sign type 98 speed 1 move_type fly_low no_pick 1 food 30 blocksview 1 is_used_up 1 end Object spell_ball_lightning editor_folder spell/MovingBall anim_suffix spellcasting name ball lightning name_pl ball lightning face spell_ball_lightning.111 type 101 subtype 35 level 18 value 90 sp 10 casting_time 10 skill evocation path_attuned 8 other_arch ball_lightning dam 8 dam_modifier 3 duration 40 duration_modifier 1 maxsp 20 attacktype 10 no_drop 1 invisible 1 msg Ball lightning creates a ball of electrical energy. This ball heads in the direction it is cast, and if it encounters a monster, it sticks to the monster, dancing around and shocking them continuously. The spell has a limited duration. endmsg end Object spell_divine_shock editor_folder spell/MovingBall anim_suffix spellcasting name divine shock name_pl divine shock face spell_divine_shock.111 type 101 subtype 35 level 10 value 10 grace 3 casting_time 10 skill praying path_attuned 131072 path_repelled 8 other_arch divine_shock dam 4 dam_modifier 3 duration 35 duration_modifier 2 maxgrace 10 attacktype 1048584 no_drop 1 invisible 1 msg A ball lightning spell granted by Sorig. endmsg end Object spell_negaball editor_folder spell/MovingBall anim_suffix spellcasting name negative energy ball name_pl negative energy balls face spell_evocation.111 type 101 subtype 35 level 18 value 90 sp 10 casting_time 11 skill evocation path_attuned 8 other_arch negaball dam 8 dam_modifier 3 duration 40 duration_modifier 1 maxsp 20 attacktype 144 no_drop 1 invisible 1 msg Creates a ball of negative energy that heads in the direction it is cast, and if it encounters a monster, sticks to it and does drain and cold damage attached. endmsg end Object spell_poison_fog editor_folder spell/MovingBall anim_suffix spellcasting name poison fog name_pl poison fog face spell_poison_fog.111 type 101 subtype 35 level 10 value 50 grace 15 casting_time 10 skill praying path_attuned 131072 other_arch poison_fog dam 10 dam_modifier 5 duration 5 duration_modifier 4 maxgrace 20 attacktype 1024 no_drop 1 invisible 1 msg Creates a moving ball of poisonous vapor that pursues and poisons the caster's enemies. The spell is granted by Gnarg. endmsg end Object balm_generic editor_folder spell/Potion nrof 1 name balm face balm_gen.111 type 5 subtype 4 level 1 material 4 weight 1500 value 250 name_pl balms client_type 652 skill use magic item end Object dust_generic editor_folder spell/Potion nrof 1 name dust face dust_gen.111 type 5 subtype 2 level 1 material 4 weight 100 value 230 name_pl dusts client_type 652 skill throwing end Object figurine_generic editor_folder spell/Potion nrof 1 name figurine face figurine_gen.111 type 5 subtype 3 level 1 material 4 weight 1500 value 400 name_pl figurines client_type 653 skill use magic item end Object potion_generic editor_folder spell/Potion nrof 1 name potion face potiongen.111 type 5 subtype 2 level 1 material 4 weight 1500 value 280 name_pl potions client_type 651 skill use magic item end Object spell_raise_dead editor_folder spell/RaiseDead anim_suffix spellcasting name raise dead name_pl raise dead face spell_raise_dead.111 type 101 subtype 1 level 10 value 100 grace 150 casting_time 25 path_attuned 256 skill praying no_drop 1 invisible 1 Con 2 exp 5 randomitems raise_dead_failure msg Casting this spell on the corpse of a slain character will bring the character back to life with 1 hit point, at the cost of some loss of experience points and Constitution. Gaea grants this spell. This spell is only useful on permanent death servers. endmsg end Object spell_reincarnation editor_folder spell/RaiseDead anim_suffix spellcasting name reincarnation name_pl reincarnation face spell_reincarnation.111 type 101 subtype 1 level 25 value 250 grace 350 casting_time 30 path_attuned 256 skill praying no_drop 1 invisible 1 exp 20 #randomitems reincarnation_failure race reincarnation_races msg Brings a slain character back to life, as with the resurrection spell, but without requiring a corpse, and usually as a different race, with all the benefits and penalties associated with it. Gaea grants this spell, and it is only useful on permanent death servers. endmsg end Object spell_resurrection editor_folder spell/RaiseDead anim_suffix spellcasting name resurrection name_pl resurrection face spell_resurrection.111 type 101 subtype 1 level 20 value 200 grace 250 casting_time 50 path_attuned 256 skill praying no_drop 1 invisible 1 Con 1 exp 10 randomitems resurrection_failure msg Casting this spell on the corpse of a slain character will bring the character back to life with full health, at the cost of some loss of experience points and constitution, though the loss is less than that of the raise dead spell. Gaea grants this spell. This spell is only useful on permanent death servers. endmsg end Object rune_drain_magic editor_folder spell/Rune name Rune of Magic Draining type 154 speed 1 hp 1 face drain_magic.111 msg You feel depleted of psychic energy! endmsg animation rune_drain_magic level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 other_arch spell_magic_drain end Object generic_rune editor_folder spell/Rune name Magical Rune hp 1 speed 1 type 154 face generic_rune.111 animation generic_rune level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 2 Cha 20 end Object rune_antimagic editor_folder spell/Rune name Rune of Nullification type 154 face rune_antimagic.111 animation rune_antimagic level 0 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 32770 no_magic 1 dam 1 Cha 20 end Object rune_blast editor_folder spell/Rune name Rune of Blasting type 154 face rune_blast.111 speed 1 hp 1 msg You detonate a Rune of Blasting! endmsg animation rune_blast level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 3 dam 90 Cha 20 end Object rune_ball_lightning editor_folder spell/Rune name Rune of Ball Lightning type 154 face rune_blightning.111 other_arch spell_ball_lightning hp 1 speed 1 msg You detonate a Rune of Ball Lightning endmsg animation rune_ball_lightning level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 10 dam 1 Cha 20 end Object rune_create_bomb editor_folder spell/Rune name Rune of Create Bomb type 154 face rune_bomb.111 other_arch spell_create_bomb speed 1 hp 1 msg RUN! The timer's ticking! endmsg animation rune_create_bomb level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 90 Cha 20 end Object rune_confusion editor_folder spell/Rune name Rune of Confusion other_arch spell_mass_confusion type 154 face rune_confusion.111 hp 2 msg You detonate a Rune of Mass Confusion! endmsg animation rune_confusion speed 1 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_death editor_folder spell/Rune name Rune of Death speed 1 type 154 face rune_death.111 hp 1 msg You detonate a Rune of Death! endmsg animation rune_death level 15 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 131072 dam 400 Cha 20 end Object rune_fire editor_folder spell/Rune name Rune of Fire type 154 face rune_fire.111 hp 1 msg You detonate a Rune of Fire! endmsg animation rune_fire speed 1 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 6 dam 30 Cha 20 end Object rune_burning_hands editor_folder spell/Rune name Rune of Burning Hands type 154 face rune_fire.111 hp 1 other_arch spell_burning_hands msg You detonate a Rune of Burning Hands! endmsg animation rune_burning_hands speed 1 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_dragonbreath editor_folder spell/Rune name Rune of Dragon's Breath type 154 face rune_fire.111 hp 1 other_arch spell_dragonbreath msg You detonate a Rune of Dragon's Breath! endmsg animation rune_dragonbreath speed 1 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_medium_fireball editor_folder spell/Rune name Rune of Fireball type 154 speed 1 hp 1 other_arch spell_medium_fireball face rune_fireball.111 msg You set off a fireball! endmsg animation rune_medium_fireball level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 6 dam 90 Cha 20 end Object rune_large_fireball editor_folder spell/Rune name Rune of Fireball type 154 speed 1 hp 1 other_arch spell_large_fireball face rune_fireball.111 msg You set off a large fireball! endmsg animation rune_large_fireball level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 6 dam 90 Cha 20 end Object rune_frost editor_folder spell/Rune name Rune of Frost type 154 face rune_frost.111 hp 1 speed 1 msg You detonate a Rune of Frost! endmsg animation rune_frost level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 18 dam 35 Cha 20 end Object rune_icestorm editor_folder spell/Rune name Rune of Icestorm type 154 face rune_frost.111 hp 1 other_arch spell_icestorm speed 1 msg You detonate a Rune of Icestorm endmsg animation rune_icestorm level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_large_icestorm editor_folder spell/Rune name Rune of Large Icestorm type 154 face rune_frost.111 hp 1 other_arch spell_large_icestorm speed 1 msg You detonate a Rune of Large Icestorm! endmsg animation rune_large_icestorm level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_heal editor_folder spell/Rune name Rune of Heal speed 1 type 154 face rune_heal.111 other_arch spell_heal hp 1 msg You set off a Rune of Heal endmsg animation rune_heal level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 1 end Object rune_small_lightning editor_folder spell/Rune name Rune of Lightning type 154 speed 1 hp 2 other_arch spell_sm_lightning face rune_lightning.111 msg You set off a bolt of lightning! endmsg animation rune_small_lightning level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 10 dam 90 Cha 20 end Object rune_paralysis editor_folder spell/Rune name Rune of Paralysis other_arch spell_paralyze type 154 face rune_paralysis.111 hp 4 msg You detonate a Rune of Paralysis! endmsg animation rune_paralysis speed 1 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_poison_cloud editor_folder spell/Rune name Rune of Poison Cloud other_arch spell_poison_cloud type 154 face rune_pcloud.111 hp 1 msg You detonate a Rune of Poison Cloud! endmsg animation rune_poison_cloud speed 1 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 20 end Object rune_restoration editor_folder spell/Rune name Rune of Restoration speed 1 type 154 face rune_heal.111 other_arch spell_restoration hp 1 msg You set off a Rune of Restoration endmsg animation rune_restoration level 1 is_animated 0 invisible 1 no_pick 1 move_on walk Cha 1 end Object rune_shock editor_folder spell/Rune name Rune of Shocking type 154 face rune_shock.111 hp 1 speed 1 msg You detonate a Rune of Shocking endmsg animation rune_shock level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 10 dam 40 Cha 20 end Object rune_regenerate_spellpoints editor_folder spell/Rune name Rune of Magic Power type 154 speed 1 other_arch spell_regenerate_spellpoints hp 1 face rune_sp_res.111 msg You feel powerful! endmsg animation rune_regenerate_spellpoints level 1 is_animated 0 invisible 1 no_pick 1 move_on walk end Object rune_summon_air_elemental editor_folder spell/Rune name Rune of Summoning type 154 speed 1 hp 1 other_arch spell_summon_air_elemental face rune_summon_air.111 msg A portal opens up, and screaming hordes pour through! endmsg animation rune_summon_air_elemental level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 2 dam 90 Cha 20 maxhp 5 end Object rune_summon_devil editor_folder spell/Rune name Rune of Summoning type 154 speed 1 hp 1 other_arch spell_summon_devil face rune_summon.111 msg A portal opens up, and screaming hordes pour through! endmsg animation rune_summon_devil level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 2 dam 90 Cha 20 maxhp 5 end Object rune_summon_earth_elemental editor_folder spell/Rune name Rune of Summoning type 154 speed 1 hp 1 other_arch spell_summon_earth_elemental face rune_sum_earth.111 msg A portal opens up, and screaming hordes pour through! endmsg animation rune_summon_earth_elemental level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 2 dam 90 Cha 20 maxhp 5 end Object rune_summon_fire_elemental editor_folder spell/Rune name Rune of Summoning type 154 speed 1 hp 1 other_arch spell_summon_fire_elemental face rune_sum_fire.111 msg A portal opens up, and screaming hordes pour through! endmsg animation rune_summon_fire_elemental level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 2 dam 90 Cha 20 maxhp 5 end Object rune_summon_water_elemental editor_folder spell/Rune name Rune of Summoning type 154 speed 1 hp 1 other_arch spell_summon_water_elemental face rune_sum_water.111 msg A portal opens up, and screaming hordes pour through! endmsg animation rune_summon_water_elemental level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 2 dam 90 Cha 20 maxhp 5 end Object rune_transferrence editor_folder spell/Rune name Rune of Transferrence type 154 speed 1 hp 1 face rune_transfer.111 msg The Rune transfers power to you! endmsg animation rune_transferrence level 1 is_animated 0 invisible 1 no_pick 1 move_on walk other_arch spell_transference end Object runedet editor_folder spell/Rune name trap type 98 face cancellation.111 speed 1 move_type fly_low is_used_up 1 no_pick 1 food 10 end Object spell_antimagic_rune editor_folder spell/Rune anim_suffix spellcasting name antimagic rune name_pl antimagic rune face spell_antimagic_rune.111 type 101 subtype 2 no_drop 1 invisible 1 level 7 value 70 sp 5 casting_time 20 skill sorcery path_attuned 128 other_arch rune_antimagic msg Place a rune that removes magical attributes. The rune has the same effect as that of the cancellation spell. endmsg end Object spell_firetrap editor_folder spell/Rune anim_suffix spellcasting name firetrap name_pl firetrap type 101 subtype 2 no_drop 1 invisible 1 level 12 value 120 sp 5 casting_time 15 skill pyromancy path_attuned 2048 face spell_firetrap.111 msg Firetrap is a special rune that may be used to encapsulate another spell that is not necessarily fire based. When casting the spell, the caster specifies the spell that should be encapsulated in the firetrap. When the firetrap is triggered, the specified spell is cast on the target. endmsg end Object spell_glyph editor_folder spell/Rune anim_suffix spellcasting name glyph name_pl glyph face spell_glyph.111 type 101 subtype 2 no_drop 1 invisible 1 level 12 value 120 grace 5 casting_time 15 skill praying path_attuned 2048 msg Creates a special rune that may be used to encapsulate another spell. When casting the spell, the caster specifies a praying spell to encapsulate in the glyph. When the glyph is triggered, the specified spell is cast on the target. An example of how to create a glyph is: cast glyph summon cult monsters endmsg end Object spell_magic_rune editor_folder spell/Rune anim_suffix spellcasting name magic rune name_pl magic rune face spell_magic_rune.111 type 101 subtype 2 no_drop 1 invisible 1 level 12 value 120 sp 5 casting_time 15 skill sorcery path_attuned 2048 msg Creates a special rune that may be used to encapsulate another spell. When casting the spell, the caster specifies the spell that should be encapsulated in the firetrap. When the sigil is triggered, the specified spell is cast on the target. endmsg end Object spell_pentagram editor_folder spell/Rune anim_suffix spellcasting name pentagram name_pl pentagram type 101 subtype 2 no_drop 1 invisible 1 level 12 value 120 sp 5 casting_time 15 skill summoning path_attuned 2048 face spell_pentagram.111 msg Creates a special rune that may be used to encapsulate another spell. When casting the spell, the caster specifies a summoning spell to encapsulate in the pentagram. When the pentagram is triggered, the specified spell is cast on the target. An example of use is: cast pentagram summon fire elemental endmsg end Object spell_rune_of_blasting editor_folder spell/Rune anim_suffix spellcasting name rune of blasting name_pl rune of blasting face spell_rune_of_blasting.111 type 101 subtype 2 no_drop 1 invisible 1 level 10 value 100 sp 18 casting_time 15 skill pyromancy path_attuned 512 other_arch rune_blast msg Creates a rune that, when triggered, hits the creature with physical and magical damage. endmsg end Object spell_rune_of_death editor_folder spell/Rune anim_suffix spellcasting name rune of death name_pl rune of death face spell_rune_of_death.111 type 101 subtype 2 no_drop 1 invisible 1 level 17 value 170 sp 20 casting_time 15 skill sorcery path_attuned 262144 other_arch rune_death msg Creates a rune that, when triggered, hits the target with death magic that either results in the death of the creature, with no respect to its hit points, or, does no harm at all. endmsg end Object spell_rune_of_fire editor_folder spell/Rune anim_suffix spellcasting name rune of fire name_pl rune of fire face spell_rune_of_fire.111 type 101 subtype 2 no_drop 1 invisible 1 level 4 value 40 sp 10 casting_time 10 skill pyromancy path_attuned 2 other_arch rune_fire msg Creates a rune trap that delivers fire damage when it is triggered. endmsg end Object spell_rune_of_frost editor_folder spell/Rune anim_suffix spellcasting name rune of frost name_pl rune of frost face spell_rune_of_frost.111 type 101 subtype 2 no_drop 1 invisible 1 level 4 value 40 sp 10 casting_time 10 skill evocation path_attuned 4 other_arch rune_frost msg Creates a rune trap that delivers cold damage when it is triggered. endmsg end Object spell_rune_of_magic_drain editor_folder spell/Rune anim_suffix spellcasting name rune of magic drain name_pl rune of magic drain face spell_rune_of_magic_drain.111 type 101 subtype 2 no_drop 1 invisible 1 level 14 value 140 sp 30 casting_time 15 skill evocation path_attuned 32768 other_arch rune_drain_magic msg Creates a rune that, when triggered, drains the spell points of the target and therefore reduces the targets capacity to cast spells for a time. endmsg end Object spell_rune_of_shocking editor_folder spell/Rune anim_suffix spellcasting name rune of shocking name_pl rune of shocking face spell_rune_of_shocking.111 type 101 subtype 2 no_drop 1 invisible 1 level 8 value 80 sp 14 casting_time 10 skill pyromancy path_attuned 8 other_arch rune_shock msg Creates a rune trap that delivers electrical damage when it is triggered. endmsg end Object spell_rune_of_transference editor_folder spell/Rune anim_suffix spellcasting name rune of transference name_pl rune of transference face spell_rune_of_transference.111 type 101 subtype 2 other_arch rune_transferrence no_drop 1 invisible 1 level 6 value 60 sp 12 casting_time 15 skill sorcery path_attuned 32768 maxsp 24 msg Creates a rune that when triggered causes the recipient to gain spell points. Numerous runes could be set up in advance of a battle to allow quick access to more spell points than could be generated naturally during the fight. endmsg end Object spell_sigil editor_folder spell/Rune anim_suffix spellcasting name sigil name_pl sigil type 101 subtype 2 no_drop 1 invisible 1 level 12 value 120 sp 5 casting_time 15 skill evocation path_attuned 2048 face spell_sigil.111 msg Creates a special rune that may be used to encapsulate another spell. When casting the spell, the caster specifies the spell that should be encapsulated in the firetrap. When the sigil is triggered, the specified spell is cast on the target. endmsg end Object ench_armour editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Enchant Armour race scrolls identified_face ench_armour.111 nrof 1 type 123 material 1 value 9500 weight 200 sp 1 identified_name_pl Enchant Armours client_type 1011 end Object improve_cha editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Charisma Bonus identified_face improve_cha.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 9 slaying potioncha identified_name_pl Improve Charisma Bonus client_type 1016 end Object improve_con editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Constitution Bonus identified_face improve_con.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 7 slaying potioncon identified_name_pl Improve Constitution Bonus client_type 1016 end Object improve_damage editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Weapon Damage identified_face improve_damage.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 2 slaying ruby identified_name_pl Improve Weapon Damage client_type 1016 end Object improve_dex editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Dexterity Bonus identified_face improve_dex.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 6 slaying potiondex identified_name_pl Improve Dexterity Bonus client_type 1016 end Object improve_enchantment editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Enchant Weapon identified_face improve_enchantment.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 4 identified_name_pl Enchant Weapons client_type 1016 end Object improve_int editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Intelligence Bonus identified_face improve_int.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 10 slaying potionint identified_name_pl Improve Intelligence Bonus client_type 1016 end Object improve_pow editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Power Bonus identified_face improve_pow.111 race scrolls nrof 1 type 124 material 1 value 12000 weight 200 sp 11 slaying potionpow identified_name_pl Improve Power Bonus client_type 1016 end Object improve_str editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Strength Bonus identified_face improve_str.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 5 slaying potionstr identified_name_pl Improve Strength Bonus client_type 1016 end Object improve_weight editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Lower Weapon Weight identified_face improve_weight.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 3 slaying pearl identified_name_pl Lower Weapon Weights client_type 1016 end Object improve_wis editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Improve Wisdom Bonus identified_face improve_wis.111 race scrolls nrof 1 type 124 material 1 value 10000 weight 200 sp 8 slaying potionwis identified_name_pl Improve Wisdom Bonus client_type 1016 end Object prepare_weapon editor_folder spell/Scroll name scroll name_pl scrolls face scroll.111 identified_name Prepare Weapon identified_face prepare_weapon.111 nrof 1 type 124 material 1 value 10000 weight 200 sp 1 slaying gem identified_name_pl Prepare Weapons client_type 1016 end Object scroll_new editor_folder spell/Scroll name scroll anim_suffix read_scroll race scrolls face scroll.111 nrof 1 type 111 material 1 weight 200 value 1 name_pl scrolls client_type 661 skill use magic item randomitems scroll end Object god_power editor_folder spell/Smite name godly retribution type 102 subtype 6 face god_power.111 animation god_power speed 1 range 4 duration 4 move_type fly_low wc -30 no_pick 1 attacktype 1048576 end Object holy_wrath editor_folder spell/Smite type 102 subtype 6 name holy wrath slaying undead,demon face holy_wrath.111 animation holy_wrath wc -40 speed 0.2 speed_left -0.21 move_type fly_low no_pick 1 move_on walk fly_low end Object insect_plague editor_folder spell/Smite name crawling insects type 102 subtype 6 face ant.111 animation insect_plague speed 0.12 move_type fly_low wc -30 no_pick 1 end Object spell_finger_of_death editor_folder spell/Smite anim_suffix spellcasting name finger of death name_pl finger of death face spell_finger_of_death.111 type 101 subtype 10 level 28 value 140 grace 50 casting_time 5 skill praying path_attuned 262144 other_arch face_of_death dam 24 dam_modifier 4 range 0 duration 1 maxgrace 35 attacktype 131072 no_drop 1 invisible 1 msg A spell granted by the Devourers that can to kill a target outright without respect to hit points. endmsg end Object spell_holy_wrath editor_folder spell/Smite anim_suffix spellcasting name holy wrath name_pl holy wrath face spell_holy_wrath.111 type 101 subtype 10 level 24 grace 40 casting_time 5 path_attuned 65536 other_arch holy_wrath dam 15 dam_modifier 2 range 6 duration 2 range_modifier 7 maxgrace 20 skill praying value 120 attacktype 2097152 no_drop 1 invisible 1 msg A more powerful version of the holy word spell that does damage to the enemies of the caster's god and to undeads. It has no effect on other creatures. endmsg end Object spell_insect_plague editor_folder spell/Smite anim_suffix spellcasting name insect plague name_pl insect plague face spell_insect_plague.111 type 101 subtype 10 level 18 grace 45 casting_time 5 path_attuned 64 other_arch insect_plague dam 20 dam_modifier 3 range 8 duration 2 range_modifier 12 maxgrace 35 skill praying value 100 attacktype 3 no_drop 1 invisible 1 msg Summons insect pets that attack on behalf of the caster. This spell is granted by Gaea and Ixalovh. endmsg end Object spell_retributive_strike editor_folder spell/Smite anim_suffix spellcasting name retributive strike name_pl retributive strike face spell_retributive_strike.111 type 101 subtype 10 level 36 grace 100 casting_time 8 path_attuned 131072 other_arch god_power dam 55 dam_modifier 1 range 8 duration 2 range_modifier 12 maxgrace 75 skill praying value 180 attacktype 1048576 no_drop 1 invisible 1 msg Damages the targeted creature with power directly from the god. Creatires rarely have protection from godly magic. This spell is granted by Ruggilli. endmsg end Object evoker_book editor_folder spell/SpellBook name spellbook name_pl spellbooks face evoker_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems evocation_book end Object evoker_book_l1 editor_folder spell/SpellBook name spellbook name_pl spellbooks face evoker_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems evocation_l1 end Object cleric_book editor_folder spell/SpellBook name prayerbook name_pl prayerbooks face prayer_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1002 randomitems prayer_book end Object cleric_book_l1 editor_folder spell/SpellBook name prayerbook name_pl prayerbooks face prayer_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1002 randomitems praying_l1 end Object pyro_book editor_folder spell/SpellBook name flametome name_pl flametomes face pyro_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems pyromancy_book end Object pyro_book_l1 editor_folder spell/SpellBook name flametome name_pl flametomes face pyro_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems pyromancy_l1 end Object sorcerer_book editor_folder spell/SpellBook name grimoire name_pl grimoires face sorcerer_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems sorcery_book end Object sorcerer_book_l1 editor_folder spell/SpellBook name grimoire name_pl grimoires face sorcerer_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems sorcery_l1 end Object summoner_book editor_folder spell/SpellBook name codex name_pl codexes face summoner_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems summoner_book end Object summoner_book_l1 editor_folder spell/SpellBook name codex name_pl codexes face summoner_book.111 type 85 skill literacy material 1 value 20 weight 5000 nrof 1 client_type 1001 randomitems summoning_l1 end Object lg_speedball editor_folder spell/SummonMonster face speedball.111 animation lg_speedball exp 2 is_used_up 1 food 20 ac 30 wc -20 dam 30 attacktype 2 level 1 speed 1 monster 1 see_invisible 1 no_pick 1 move_type fly_low weight 1000 only_attack 1 one_hit 1 end Object speedball editor_folder spell/SummonMonster face speedball.111 animation speedball exp 2 is_used_up 1 food 20 ac 30 wc -20 dam 8 attacktype 2 level 1 speed 1 monster 1 see_invisible 1 no_pick 1 move_type fly_low weight 1000 only_attack 1 one_hit 1 end Object spell_large_speedball editor_folder spell/SummonMonster anim_suffix spellcasting name large speedball name_pl large speedball face spell_large_speedball.111 type 101 subtype 27 level 6 sp 6 casting_time 10 path_attuned 16 other_arch lg_speedball skill evocation value 60 no_drop 1 invisible 1 monster 1 msg Creates a large bundle of magical energy that hunts down enemies to hit. The target is damaged and slowed when hit, then the speedball dissipates. endmsg end Object spell_magehound editor_folder spell/SummonMonster anim_suffix spellcasting name magehound name_pl magehounds face spell_summoner.111 type 101 subtype 27 level 6 sp 12 casting_time 10 path_attuned 64 skill summoning value 20 no_drop 1 invisible 1 attack_movement 16 randomitems mage_hound msg Creates a dog-like pet that attacks foes on behalf of the caster. The type of dog summoned depends on the level of the caster: - 5 dog; - 7 wolf; - 12 mastif; - 15 dire wolf; - 20 hellhound; - 30 dire wolf sire; - 45 shadow mastif; - 60 greater hellhound. endmsg end Object spell_small_speedball editor_folder spell/SummonMonster anim_suffix spellcasting name small speedball name_pl small speedball face spell_small_speedball.111 type 101 subtype 27 level 3 sp 3 casting_time 5 path_attuned 16 other_arch speedball skill evocation value 30 no_drop 1 invisible 1 monster 1 msg Creates a small bundle of magical energy that hunts down enemies to hit. The target is damaged and slowed when hit, then the speedball dissipates. endmsg end Object spell_summon_cult_monsters editor_folder spell/SummonMonster anim_suffix spellcasting name summon cult monsters name_pl summon cult monsters face spell_summon_cult_monsters.111 type 101 subtype 27 level 6 grace 12 casting_time 10 path_attuned 64 skill praying value 30 no_drop 1 invisible 1 attack_movement 16 race GODCULTMON maxgrace 20 msg Summons pet monsters from your god. The pets move around on their own and attack the caster's enemies. endmsg end Object spell_summon_fog editor_folder spell/SummonMonster anim_suffix spellcasting name summon fog name_pl summon fog face spell_summon_fog.111 type 101 subtype 27 level 4 sp 5 casting_time 10 path_attuned 2048 skill summoning value 20 no_drop 1 invisible 1 other_arch temp_summon_fog dam 2 dam_modifier 10 monster 1 msg Create fog that moves randomly about in the vicinity of the caster. It has no harmful effects, but can block visibility. endmsg end Object spell_summon_pet_monster editor_folder spell/SummonMonster anim_suffix spellcasting name summon pet monster name_pl summon pet monster face spell_summon_pet_monster.111 type 101 subtype 27 level 4 sp 5 casting_time 10 path_attuned 64 skill summoning value 20 no_drop 1 invisible 1 attack_movement 16 randomitems mage_pet_monster msg Creates a number of pets that attack enemies of the caster. They move and attack on their own, so may bash doors, run away, or get lost. The type of monster varies by the caster's summoning skill level: - 1 bat; - 3 bird; - 4 bee; - 5 spider; - 6 killer bee; - 7 pixie; - 8 skeleton; - 9 stalker; - 11 devil; - 13 beholder; - 15 dark elf; - 17 skull; - 20 angel; - 25 vampire. A specific pet may be summoned as follows: cast summon pet monster killer_bee endmsg end Object spell_bullet_storm editor_folder spell/Swarm anim_suffix spellcasting name bullet storm name_pl bullet storm face spell_bullet_storm.111 skill evocation type 101 subtype 36 level 20 value 100 sp 8 casting_time 5 path_attuned 16 other_arch spell_lg_magic_bullet duration 3 duration_modifier 4 maxsp 20 no_drop 1 invisible 1 msg This spell fires many large bullets in the direction the caster is facing. The bullets can damage the character that casts the storm. The number and damage of the bullets depends on the level of the caster. endmsg end Object spell_bullet_swarm editor_folder spell/Swarm anim_suffix spellcasting name bullet swarm name_pl bullet swarm face spell_bullet_swarm.111 skill evocation type 101 subtype 36 level 14 value 70 sp 6 casting_time 5 path_attuned 16 other_arch spell_small_bullet duration 3 duration_modifier 4 maxsp 20 no_drop 1 invisible 1 msg This spell fires many magic bullets in the direction the caster is facing. The caster should beware: the bullets will do damage to the caster. The number and damage of the bullets depends on the level of the caster. endmsg end Object spell_cause_many_wounds editor_folder spell/Swarm anim_suffix spellcasting name cause many wounds name_pl cause many wounds face spell_cause_many_wounds.111 skill praying type 101 subtype 36 level 24 value 120 grace 30 casting_time 5 path_attuned 131072 other_arch spell_cause_light_wounds duration 3 duration_modifier 4 maxsp 20 no_drop 1 invisible 1 msg Creates many missiles which strike as a swarm of Cause Light Wounds bullets. This spell is granted to worshippers of Sorig and the Devourers. endmsg end Object spell_frost_nova editor_folder spell/Swarm anim_suffix spellcasting name frost nova name_pl frost nova face spell_evocation.111 skill evocation type 101 subtype 36 level 24 value 120 sp 30 casting_time 12 path_attuned 16 other_arch spell_asteroid duration 3 duration_modifier 4 maxsp 20 no_drop 1 invisible 1 msg Fires a swarm of asteroid bullets that deliver a weaponmagic attack. endmsg weight 1250 end Object spell_meteor_swarm editor_folder spell/Swarm anim_suffix spellcasting name meteor swarm name_pl meteor swarm face spell_meteor_swarm.111 skill pyromancy type 101 subtype 36 level 24 value 120 sp 30 casting_time 12 path_attuned 16 other_arch spell_comet duration 3 duration_modifier 4 maxsp 20 no_drop 1 invisible 1 msg Meteor swarm fires several comet spells that cut a swath of physical, fire, and weaponmagic damage. endmsg weight 1250 end Object spell_missile_swarm editor_folder spell/Swarm anim_suffix spellcasting name missile swarm name_pl missile swarm face spell_missile_swarm.111 skill sorcery type 101 subtype 36 level 14 value 70 sp 6 casting_time 3 path_attuned 16 other_arch spell_magic_missile duration 3 duration_modifier 4 maxsp 20 no_drop 1 invisible 1 msg Fires a swarm of target-tracking magical bolts that can turn to seek out enemies. The bolts do not always track well and may run into walls or even return and strike the caster. endmsg end Object swarm_spell editor_folder spell/Swarm invisible 1 face burnout.111 type 102 subtype 36 speed 1 move_type fly_low no_pick 1 end Object spell_town_portal editor_folder spell/TownPortal anim_suffix spellcasting name town portal name_pl town portal face spell_town_portal.111 type 101 subtype 47 level 15 value 150 sp 50 casting_time 10 skill sorcery path_attuned 4096 no_drop 1 invisible 1 other_arch town_portal race town_portal_active slaying town_portal_magic msg Creates a magical portal from one point to another. It must be invoked twice: the first use marks one end of the portal, and the second marks the other. Once both ends of the portal exist, the caster may use it to quickly travel between the points. For example, create one end or the portal in a town and the other in a dungeon, then use the portal to quickly travel back and forth to carry off the plunder. endmsg end Object town_portal editor_folder spell/TownPortal name Town portal destination type 114 face blank.111 invisible 1 no_drop 1 hp 0 slaying Town portal destination end Object town_portal_active editor_folder spell/TownPortal name Existing town portal type 114 face blank.111 invisible 1 no_drop 1 hp 0 slaying Existing town portal end Object town_portal_magic editor_folder spell/TownPortal name magic portal face magic_portal.111 hp 15 sp 19 type 66 no_pick 1 animation town_portal exp 1 client_type 25011 end Object gu_horn editor_folder spell/Wand name Golden Unicorn Horn nrof 1 face gu_horn.114 maxhp 130 hp 100 other_arch spell_restoration level 1 value 10000000 animation gu_horn speed 0.005 type 3 material 2 weight 5000 msg A beautiful unicorn horn shining with golden light. You feel a sense of peace when you hold it. This is one of the most powerful healing artifact in the realm. It is rumored to have been created by a god of healing. Hanuk imprisoned the god by trickery and acquired the artifact. endmsg name_pl Golden Unicorn Horns client_type 721 body_range -1 skill use magic item end Object horn editor_folder spell/Wand nrof 1 face horn.111 speed 0.1 type 3 level 1 value 5800 weight 4500 material 2 name_pl horns client_type 721 body_range -1 skill use magic item end Object horn2 editor_folder spell/Wand name horn nrof 1 face horn2.111 speed 0.1 type 3 level 1 value 5900 weight 4000 material 2 name_pl horns client_type 721 body_range -1 skill use magic item end Object horn3 editor_folder spell/Wand name horn nrof 1 face horn3.111 speed 0.1 type 3 level 1 value 5900 weight 4000 material 2 name_pl horns client_type 721 body_range -1 skill use magic item end Object horn_base editor_folder spell/Wand name horn base nrof 1 face horn_base.111 value 100 weight 3000 material 2 name_pl horn bases client_type 8002 end Object rod_heavy editor_folder spell/Wand name heavy rod face rod_heavy.111 animation rod_heavy speed 0.05 type 3 value 700 weight 7000 material 70 hp 6 maxhp 6 name_pl heavy rods client_type 701 body_range -1 randomitems rod_spell skill use magic item end Object rod_light editor_folder spell/Wand name rod face rod_light.111 animation rod_light speed 0.04 type 3 value 350 weight 3500 material 70 hp 3 maxhp 3 name_pl rods client_type 702 body_range -1 randomitems rod_spell skill use magic item end Object shellhorn1 editor_folder spell/Wand name shell horn nrof 1 face shellhorn1.111 speed 0.1 type 3 level 1 value 5900 weight 4000 material 2 name_pl shell horns client_type 721 body_range -1 skill use magic item end Object shellhorn2 editor_folder spell/Wand name shell horn nrof 1 face shellhorn2.111 speed 0.1 type 3 level 1 value 5900 weight 4000 material 2 name_pl shell horns client_type 721 body_range -1 skill use magic item end Object staff editor_folder spell/Wand face staff.111 animation staff anim_speed 10 client_anim_random 1 type 109 value 50 weight 2500 material 16 name_pl staves client_type 712 body_range -1 randomitems staff skill use magic item end Object wand editor_folder spell/Wand face wand.111 animation wand anim_speed 10 client_anim_random 1 type 109 value 50 weight 2300 material 16 name_pl wands client_type 711 body_range -1 randomitems wand skill use magic item end Object blindness editor_folder spell type 49 face blank.111 name blindness invisible 1 speed 0.05 is_blind 1 no_drop 1 end Object exploding_fireball editor_folder spell type 102 subtype 5 range 1 other_arch fireball dam_modifier 10 maxhp 10 hp 15 speed 1.0 weight 1000 speed_left 1.0 end Object fire_permanent editor_folder spell name fire face burnout.111 animation fire_permanent anim_speed 1 client_anim_random 1 no_pick 1 end Object force editor_folder spell name force type 114 face blank.111 invisible 1 no_drop 1 speed 0.002 speed_left -1 end Object force_effect editor_folder spell type 115 face blank.111 invisible 1 no_drop 1 end Object power_crystal editor_folder spell name Glowing Crystal maxsp 1000 face power_crystal.111 animation power_crystal type 156 weight 3 value 10000000 material 64 is_animated 1 name_pl Glowing Crystals client_type 41 end Object ability_spit_acid editor_folder system/ability race spit_acid type 14 name spits acid nrof 1 no_drop 1 dam 0 sp 20 wc 1 no_strength 1 skill missile weapons end Object ability_stone_throw editor_folder system/ability race rock type 14 name rock thrower nrof 1 no_drop 1 dam 10 sp 40 wc 1 no_strength 0 invisible 1 skill missile weapons end Object blocked editor_folder system face blocked.111 blocksview 1 no_pick 1 move_block all end Object check_floor editor_folder system name check inv trigger face check_floor.111 no_pick 1 last_sp 1 type 64 move_on walk fly_low invisible 1 end Object creator editor_folder system name creator other_arch fire_trail face creator.111 hp 1 invisible 1 type 42 activate_on_push 1 activate_on_release 1 no_pick 1 end Object depletion editor_folder system face blank.111 invisible 1 no_drop 1 end Object duplicator editor_folder system name duplicator face duplicator.111 hp 1 invisible 1 type 83 activate_on_push 1 activate_on_release 1 no_pick 1 end Object editcursor editor_folder system face wizard.151 animation editcursor end Object editor_archetype editor_folder system end Object empty_archetype editor_folder system end Object event_apply editor_folder system face event_apply.111 type 116 subtype 1 invisible 1 no_drop 1 end Object event_attack editor_folder system type 116 subtype 2 invisible 1 no_drop 1 end Object event_close editor_folder system type 116 subtype 11 invisible 1 no_drop 1 end Object event_death editor_folder system face event_death.111 type 116 subtype 3 invisible 1 no_drop 1 end Object event_destroy editor_folder system type 116 subtype 13 invisible 1 no_drop 1 end Object event_drop editor_folder system face event_drop.111 type 116 subtype 4 invisible 1 no_drop 1 end Object event_pickup editor_folder system face event_pickup.111 type 116 subtype 5 invisible 1 no_drop 1 end Object event_say editor_folder system face event_say.111 type 116 subtype 6 invisible 1 no_drop 1 end Object event_selling editor_folder system type 116 subtype 32 invisible 1 no_drop 1 end Object event_stop editor_folder system type 116 subtype 7 invisible 1 no_drop 1 end Object event_throw editor_folder system type 116 subtype 9 invisible 1 no_drop 1 end Object event_time editor_folder system face event_time.111 type 116 subtype 8 invisible 1 no_drop 1 end Object event_timer editor_folder system face event_timer.111 type 116 subtype 12 invisible 1 no_drop 1 end Object event_trigger editor_folder system type 116 subtype 10 invisible 1 no_drop 1 end Object event_user editor_folder system type 116 subtype 31 invisible 1 no_drop 1 end Object hpbar_diseased_1 editor_folder system/hp_bars face hpbar_diseased_1.111 end Object hpbar_diseased_2 editor_folder system/hp_bars face hpbar_diseased_2.111 end Object hpbar_diseased_3 editor_folder system/hp_bars face hpbar_diseased_3.111 end Object hpbar_diseased_4 editor_folder system/hp_bars face hpbar_diseased_4.111 end Object hpbar_diseased_5 editor_folder system/hp_bars face hpbar_diseased_5.111 end Object hpbar_diseased_6 editor_folder system/hp_bars face hpbar_diseased_6.111 end Object hpbar_diseased_7 editor_folder system/hp_bars face hpbar_diseased_7.111 end Object hpbar_diseased_8 editor_folder system/hp_bars face hpbar_diseased_8.111 end Object hpbar_diseased_9 editor_folder system/hp_bars face hpbar_diseased_9.111 end Object hpbar_diseased_10 editor_folder system/hp_bars face hpbar_diseased_10.111 end Object hpbar_diseased_11 editor_folder system/hp_bars face hpbar_diseased_11.111 end Object hpbar_diseased_12 editor_folder system/hp_bars face hpbar_diseased_12.111 end Object hpbar_diseased_13 editor_folder system/hp_bars face hpbar_diseased_13.111 end Object hpbar_diseased_14 editor_folder system/hp_bars face hpbar_diseased_14.111 end Object hpbar_diseased_15 editor_folder system/hp_bars face hpbar_diseased_15.111 end Object hpbar_diseased_16 editor_folder system/hp_bars face hpbar_diseased_16.111 end Object hpbar_diseased_17 editor_folder system/hp_bars face hpbar_diseased_17.111 end Object hpbar_diseased_18 editor_folder system/hp_bars face hpbar_diseased_18.111 end Object hpbar_diseased_19 editor_folder system/hp_bars face hpbar_diseased_19.111 end Object hpbar_diseased_20 editor_folder system/hp_bars face hpbar_diseased_20.111 end Object hpbar_diseased_21 editor_folder system/hp_bars face hpbar_diseased_21.111 end Object hpbar_diseased_22 editor_folder system/hp_bars face hpbar_diseased_22.111 end Object hpbar_diseased_23 editor_folder system/hp_bars face hpbar_diseased_23.111 end Object hpbar_diseased_24 editor_folder system/hp_bars face hpbar_diseased_24.111 end Object hpbar_diseased_25 editor_folder system/hp_bars face hpbar_diseased_25.111 end Object hpbar_diseased_26 editor_folder system/hp_bars face hpbar_diseased_26.111 end Object hpbar_diseased_27 editor_folder system/hp_bars face hpbar_diseased_27.111 end Object hpbar_diseased_28 editor_folder system/hp_bars face hpbar_diseased_28.111 end Object hpbar_diseased_29 editor_folder system/hp_bars face hpbar_diseased_29.111 end Object hpbar_diseased_30 editor_folder system/hp_bars face hpbar_diseased_30.111 end Object hpbar_poisoned_1 editor_folder system/hp_bars face hpbar_poisoned_1.111 end Object hpbar_poisoned_2 editor_folder system/hp_bars face hpbar_poisoned_2.111 end Object hpbar_poisoned_3 editor_folder system/hp_bars face hpbar_poisoned_3.111 end Object hpbar_poisoned_4 editor_folder system/hp_bars face hpbar_poisoned_4.111 end Object hpbar_poisoned_5 editor_folder system/hp_bars face hpbar_poisoned_5.111 end Object hpbar_poisoned_6 editor_folder system/hp_bars face hpbar_poisoned_6.111 end Object hpbar_poisoned_7 editor_folder system/hp_bars face hpbar_poisoned_7.111 end Object hpbar_poisoned_8 editor_folder system/hp_bars face hpbar_poisoned_8.111 end Object hpbar_poisoned_9 editor_folder system/hp_bars face hpbar_poisoned_9.111 end Object hpbar_poisoned_10 editor_folder system/hp_bars face hpbar_poisoned_10.111 end Object hpbar_poisoned_11 editor_folder system/hp_bars face hpbar_poisoned_11.111 end Object hpbar_poisoned_12 editor_folder system/hp_bars face hpbar_poisoned_12.111 end Object hpbar_poisoned_13 editor_folder system/hp_bars face hpbar_poisoned_13.111 end Object hpbar_poisoned_14 editor_folder system/hp_bars face hpbar_poisoned_14.111 end Object hpbar_poisoned_15 editor_folder system/hp_bars face hpbar_poisoned_15.111 end Object hpbar_poisoned_16 editor_folder system/hp_bars face hpbar_poisoned_16.111 end Object hpbar_poisoned_17 editor_folder system/hp_bars face hpbar_poisoned_17.111 end Object hpbar_poisoned_18 editor_folder system/hp_bars face hpbar_poisoned_18.111 end Object hpbar_poisoned_19 editor_folder system/hp_bars face hpbar_poisoned_19.111 end Object hpbar_poisoned_20 editor_folder system/hp_bars face hpbar_poisoned_20.111 end Object hpbar_poisoned_21 editor_folder system/hp_bars face hpbar_poisoned_21.111 end Object hpbar_poisoned_22 editor_folder system/hp_bars face hpbar_poisoned_22.111 end Object hpbar_poisoned_23 editor_folder system/hp_bars face hpbar_poisoned_23.111 end Object hpbar_poisoned_24 editor_folder system/hp_bars face hpbar_poisoned_24.111 end Object hpbar_poisoned_25 editor_folder system/hp_bars face hpbar_poisoned_25.111 end Object hpbar_poisoned_26 editor_folder system/hp_bars face hpbar_poisoned_26.111 end Object hpbar_poisoned_27 editor_folder system/hp_bars face hpbar_poisoned_27.111 end Object hpbar_poisoned_28 editor_folder system/hp_bars face hpbar_poisoned_28.111 end Object hpbar_poisoned_29 editor_folder system/hp_bars face hpbar_poisoned_29.111 end Object hpbar_poisoned_30 editor_folder system/hp_bars face hpbar_poisoned_30.111 end Object hpbar_poisoned_diseased_1 editor_folder system/hp_bars face hpbar_poisoned_diseased_1.111 end Object hpbar_poisoned_diseased_2 editor_folder system/hp_bars face hpbar_poisoned_diseased_2.111 end Object hpbar_poisoned_diseased_3 editor_folder system/hp_bars face hpbar_poisoned_diseased_3.111 end Object hpbar_poisoned_diseased_4 editor_folder system/hp_bars face hpbar_poisoned_diseased_4.111 end Object hpbar_poisoned_diseased_5 editor_folder system/hp_bars face hpbar_poisoned_diseased_5.111 end Object hpbar_poisoned_diseased_6 editor_folder system/hp_bars face hpbar_poisoned_diseased_6.111 end Object hpbar_poisoned_diseased_7 editor_folder system/hp_bars face hpbar_poisoned_diseased_7.111 end Object hpbar_poisoned_diseased_8 editor_folder system/hp_bars face hpbar_poisoned_diseased_8.111 end Object hpbar_poisoned_diseased_9 editor_folder system/hp_bars face hpbar_poisoned_diseased_9.111 end Object hpbar_poisoned_diseased_10 editor_folder system/hp_bars face hpbar_poisoned_diseased_10.111 end Object hpbar_poisoned_diseased_11 editor_folder system/hp_bars face hpbar_poisoned_diseased_11.111 end Object hpbar_poisoned_diseased_12 editor_folder system/hp_bars face hpbar_poisoned_diseased_12.111 end Object hpbar_poisoned_diseased_13 editor_folder system/hp_bars face hpbar_poisoned_diseased_13.111 end Object hpbar_poisoned_diseased_14 editor_folder system/hp_bars face hpbar_poisoned_diseased_14.111 end Object hpbar_poisoned_diseased_15 editor_folder system/hp_bars face hpbar_poisoned_diseased_15.111 end Object hpbar_poisoned_diseased_16 editor_folder system/hp_bars face hpbar_poisoned_diseased_16.111 end Object hpbar_poisoned_diseased_17 editor_folder system/hp_bars face hpbar_poisoned_diseased_17.111 end Object hpbar_poisoned_diseased_18 editor_folder system/hp_bars face hpbar_poisoned_diseased_18.111 end Object hpbar_poisoned_diseased_19 editor_folder system/hp_bars face hpbar_poisoned_diseased_19.111 end Object hpbar_poisoned_diseased_20 editor_folder system/hp_bars face hpbar_poisoned_diseased_20.111 end Object hpbar_poisoned_diseased_21 editor_folder system/hp_bars face hpbar_poisoned_diseased_21.111 end Object hpbar_poisoned_diseased_22 editor_folder system/hp_bars face hpbar_poisoned_diseased_22.111 end Object hpbar_poisoned_diseased_23 editor_folder system/hp_bars face hpbar_poisoned_diseased_23.111 end Object hpbar_poisoned_diseased_24 editor_folder system/hp_bars face hpbar_poisoned_diseased_24.111 end Object hpbar_poisoned_diseased_25 editor_folder system/hp_bars face hpbar_poisoned_diseased_25.111 end Object hpbar_poisoned_diseased_26 editor_folder system/hp_bars face hpbar_poisoned_diseased_26.111 end Object hpbar_poisoned_diseased_27 editor_folder system/hp_bars face hpbar_poisoned_diseased_27.111 end Object hpbar_poisoned_diseased_28 editor_folder system/hp_bars face hpbar_poisoned_diseased_28.111 end Object hpbar_poisoned_diseased_29 editor_folder system/hp_bars face hpbar_poisoned_diseased_29.111 end Object hpbar_poisoned_diseased_30 editor_folder system/hp_bars face hpbar_poisoned_diseased_30.111 end Object hpbar_standard_1 editor_folder system/hp_bars face hpbar_standard_1.111 end Object hpbar_standard_2 editor_folder system/hp_bars face hpbar_standard_2.111 end Object hpbar_standard_3 editor_folder system/hp_bars face hpbar_standard_3.111 end Object hpbar_standard_4 editor_folder system/hp_bars face hpbar_standard_4.111 end Object hpbar_standard_5 editor_folder system/hp_bars face hpbar_standard_5.111 end Object hpbar_standard_6 editor_folder system/hp_bars face hpbar_standard_6.111 end Object hpbar_standard_7 editor_folder system/hp_bars face hpbar_standard_7.111 end Object hpbar_standard_8 editor_folder system/hp_bars face hpbar_standard_8.111 end Object hpbar_standard_9 editor_folder system/hp_bars face hpbar_standard_9.111 end Object hpbar_standard_10 editor_folder system/hp_bars face hpbar_standard_10.111 end Object hpbar_standard_11 editor_folder system/hp_bars face hpbar_standard_11.111 end Object hpbar_standard_12 editor_folder system/hp_bars face hpbar_standard_12.111 end Object hpbar_standard_13 editor_folder system/hp_bars face hpbar_standard_13.111 end Object hpbar_standard_14 editor_folder system/hp_bars face hpbar_standard_14.111 end Object hpbar_standard_15 editor_folder system/hp_bars face hpbar_standard_15.111 end Object hpbar_standard_16 editor_folder system/hp_bars face hpbar_standard_16.111 end Object hpbar_standard_17 editor_folder system/hp_bars face hpbar_standard_17.111 end Object hpbar_standard_18 editor_folder system/hp_bars face hpbar_standard_18.111 end Object hpbar_standard_19 editor_folder system/hp_bars face hpbar_standard_19.111 end Object hpbar_standard_20 editor_folder system/hp_bars face hpbar_standard_20.111 end Object hpbar_standard_21 editor_folder system/hp_bars face hpbar_standard_21.111 end Object hpbar_standard_22 editor_folder system/hp_bars face hpbar_standard_22.111 end Object hpbar_standard_23 editor_folder system/hp_bars face hpbar_standard_23.111 end Object hpbar_standard_24 editor_folder system/hp_bars face hpbar_standard_24.111 end Object hpbar_standard_25 editor_folder system/hp_bars face hpbar_standard_25.111 end Object hpbar_standard_26 editor_folder system/hp_bars face hpbar_standard_26.111 end Object hpbar_standard_27 editor_folder system/hp_bars face hpbar_standard_27.111 end Object hpbar_standard_28 editor_folder system/hp_bars face hpbar_standard_28.111 end Object hpbar_standard_29 editor_folder system/hp_bars face hpbar_standard_29.111 end Object hpbar_standard_30 editor_folder system/hp_bars face hpbar_standard_30.111 end Object luck editor_folder system face blank.111 invisible 1 no_drop 1 end Object map editor_folder system type 22 subtype 1 slaying /HallOfSelection race /start/HallsOfSelection face map.111 x 16 y 16 hp 1 sp 1 value 300 weight 7200 end Object map_nexus editor_folder system type 22 subtype 2 slaying /start/Nexus face map.111 hp 12 sp 12 end Object map_scorn editor_folder system name Scorn type 22 subtype 3 slaying /world/world_105_115 hp 5 sp 37 face map.111 msg Scorn is the best place for new players to start when they have already completed the beginners tutorial. Players starting in Scorn have a lot of ready options for adventuring. This does however mean that many others may be adventuring in the same areas. endmsg end Object map_beginners_house editor_folder system name Beginners House type 22 subtype 3 slaying /start/newbieshouse face map.111 unique 1 hp 9 sp 4 msg The beginners house is a good choice for first time players. It will teach you some of the mechanics of the game. If you have played before, you may choose to skip the beginners house and start your adventures in some other location right away. endmsg end Object map_navar_city editor_folder system name Navar City type 22 subtype 3 slaying /world/world_121_116 hp 47 sp 46 face map.111 msg Navar is a good place for more experienced players to start. Adventurers starting in Navar might have to do a bit more exploring, but then it is more likely you will find things. [b]WARNING[/b]: Navar is not a "Newbie Friendly" place. True novices should start either in beginners house or Scorn. endmsg end Object marker editor_folder system name marker face creator.111 food 32700 slaying put your code here speed 0.5 invisible 1 no_pick 1 type 55 end Object angry_floor editor_folder system/mood_floors face angry_floor.111 no_pick 1 invisible 1 last_sp 1 type 65 activate_on_push 1 activate_on_release 1 speed 1 end Object calm_floor editor_folder system/mood_floors face calm_floor.111 no_pick 1 last_sp 2 type 65 activate_on_push 1 activate_on_release 1 speed 1 invisible 1 end Object charm_floor editor_folder system/mood_floors face charm_floor.111 no_pick 1 invisible 1 last_sp 4 type 65 activate_on_push 1 activate_on_release 1 end Object furious_floor editor_folder system/mood_floors face furious_floor.111 no_pick 1 invisible 1 last_sp 0 type 65 activate_on_push 1 activate_on_release 1 speed 1 end Object sleep_floor editor_folder system/mood_floors face sleep_floor.111 no_pick 1 last_sp 3 speed 1 type 65 activate_on_push 1 activate_on_release 1 invisible 1 end Object player_changer editor_folder system face teleporter.111 speed 0.1 type 57 no_pick 1 animation player_changer end Object poisoning editor_folder system type 105 name poison face blank.111 food 25 dam 1 invisible 1 speed 0.05 is_used_up 1 no_drop 1 end Object npc_dialog editor_folder system/quests face event_say.111 type 116 subtype 6 invisible 1 no_drop 1 slaying /python/dialog/npc_dialog.py title Python end Object quest_advance_apply editor_folder system/quests face event_apply.111 title Python slaying /python/quests/QuestAdvance.py type 116 subtype 1 invisible 1 no_drop 1 end Object quest_advance_death editor_folder system/quests face event_death.111 title Python slaying /python/quests/QuestAdvance.py type 116 subtype 3 invisible 1 no_drop 1 end Object quest_advance_pickup editor_folder system/quests face event_pickup.111 title Python slaying /python/quests/QuestAdvance.py type 116 subtype 5 invisible 1 no_drop 1 end Object quest_advance_trigger editor_folder system/quests type 116 title Python slaying /python/quests/QuestAdvance.py subtype 10 invisible 1 no_drop 1 end Object quest_apply_if editor_folder system/quests face event_apply.111 title Python slaying /python/quests/QuestApplyIf.py type 116 subtype 1 invisible 1 no_drop 1 end Object quest_conditional_drop editor_folder system/quests face event_death.111 title Python slaying /python/quests/QuestConditionalDrop.py type 116 subtype 3 invisible 1 no_drop 1 end Object quest_prevent_drop editor_folder system/quests face event_drop.111 title Python slaying /python/quests/QuestEssentialUntil.py type 116 subtype 4 invisible 1 no_drop 1 end Object slowness editor_folder system face blank.111 invisible 1 exp -1 speed 0.05 no_drop 1 food 5 is_used_up 1 end Object trigger_marker editor_folder system name triggered marker face creator.111 food 32700 slaying put your code here speed 1 invisible 1 activate_on_push 1 activate_on_release 1 no_pick 1 type 52 end Object amulet editor_folder talisman face amulet.111 type 39 material 12 weight 500 value 250 nrof 1 name_pl amulets client_type 381 body_neck -1 animation amulet is_animated 0 end Object amulet_white editor_folder talisman face amulet_white.111 type 39 material 12 materialname platinum and glass weight 500 value 1250 nrof 1 name amulet name_pl amulets client_type 381 body_neck -1 end Object amulet_gray editor_folder talisman face amulet_gray.111 type 39 material 12 materialname silver and glass weight 500 value 25 nrof 1 name amulet name_pl amulets client_type 381 body_neck -1 end Object amulet_lifesave editor_folder talisman name amulet of lifesaving name_pl amulets of lifesaving face amulet_lif.111 type 39 material 12 weight 600 value 20000 lifesave 1 nrof 1 client_type 381 body_neck -1 item_power 3 end Object collar editor_folder talisman name neko chan's collar nrof 1 face collar.111 animation collar anim_speed 3 client_anim_random 1 type 39 material 12 weight 500 value 1000 name_pl neko chan's collars client_type 381 body_neck -1 end Object ring editor_folder talisman name ring animation ring is_animated 0 face ring.110 value 500 weight 20 type 70 material 2 nrof 1 name_pl rings client_type 391 body_finger -1 end Object ring_nodrain editor_folder talisman name strange ring name_pl strange rings face ring_drain.111 animation ring_nodrain value 10000 weight 40 type 70 material 2 resist_drain 100 nrof 1 anim_speed 10 client_anim_random 1 client_type 390 body_finger -1 item_power 4 end Object tooth_charm editor_folder talisman face tooth_charm.111 type 39 material 12 weight 300 resist_confusion 15 resist_paralyze 50 resist_slow 30 resist_fear 50 startequip 1 nrof 1 msg This wonderful charm will absorb many magics which would otherwise affect your movement. endmsg name tooth charm name_pl tooth charms client_type 381 body_neck -1 item_power 6 end Object big_galleon editor_folder transport name big galleon type 66 face biggalleon.x11 no_pick 1 move_allow walk move_block boat client_type 25012 end More Object big_galleon_2 editor_folder transport name big galleon type 66 face biggalleon.x11 x 1 no_pick 1 move_allow walk move_block boat end More Object big_galleon_3 editor_folder transport name big galleon type 66 face biggalleon.x11 y 1 no_pick 1 move_allow walk move_block boat end More Object big_galleon_4 editor_folder transport name big galleon type 66 face biggalleon.x11 x 1 y 1 no_pick 1 move_allow walk move_block boat end Object dragon_exit editor_folder transport name dragon face dragon.x71 animation big_dragon type 66 anim_speed 2 client_anim_random 1 no_pick 1 client_type 25012 end More Object dragon_exit_2 editor_folder transport name dragon face dragon.x71 animation big_dragon no_pick 1 type 66 x 1 weight 4000000 end More Object dragon_exit_3 editor_folder transport name dragon face dragon.x71 animation big_dragon no_pick 1 type 66 x 2 weight 4000000 end More Object dragon_exit_4 editor_folder transport name dragon face dragon.x71 animation big_dragon no_pick 1 type 66 y 1 weight 4000000 end More Object dragon_exit_5 editor_folder transport name dragon face dragon.x71 animation big_dragon no_pick 1 type 66 x 1 y 1 weight 4000000 end More Object dragon_exit_6 editor_folder transport name dragon face dragon.x71 animation big_dragon no_pick 1 type 66 x 2 y 1 weight 4000000 end Object fishboat editor_folder transport name fishing boat type 66 face fishboat.x11 no_pick 1 move_allow walk move_block boat client_type 25012 end More Object fishboat_2 editor_folder transport name fishing boat type 66 face fishboat.x11 x 1 no_pick 1 move_allow walk move_block boat end Object galleon editor_folder transport face galleon.111 type 66 no_pick 1 move_allow walk move_block boat client_type 25012 end Object longship editor_folder transport name longship type 66 face longship.x11 no_pick 1 move_allow walk move_block boat client_type 25012 end More Object longship_2 editor_folder transport name longship type 66 face longship.x11 x 1 no_pick 1 move_allow walk move_block boat end Object rowboat editor_folder transport type 66 face rowboat.x11 no_pick 1 move_allow walk move_block boat client_type 25012 end More Object rowboat_2 editor_folder transport name rowboat type 66 face rowboat.x11 x 1 no_pick 1 move_allow walk move_block boat end Object s_ship editor_folder transport name Ship type 66 face s_ship.x11 no_pick 1 move_allow walk move_block boat client_type 25012 end More Object s_ship2 editor_folder transport name big galleon type 66 face s_ship.x11 x 1 no_pick 1 move_allow walk move_block boat end More Object s_ship3 editor_folder transport name big galleon type 66 face s_ship.x11 y 1 no_pick 1 move_allow walk move_block boat end More Object s_ship4 editor_folder transport name big galleon type 66 face s_ship.x11 x 1 y 1 no_pick 1 move_allow walk move_block boat end Object turningboat editor_folder transport type 2 face turningboat.x11 animation turningboat no_pick 1 move_allow walk move_block boat client_type 25012 speed 0.5 container 10000000 move_type boat passenger_limit 4 turnable_transport 1 end More Object turningboat_2 editor_folder transport name turningboat type 2 face turningboat.x11 animation turningboat x 1 no_pick 1 move_allow walk move_block boat end More Object turningboat_3 editor_folder transport name turningboat type 2 face turningboat.x11 animation turningboat y 1 no_pick 1 move_allow walk move_block boat end More Object turningboat_4 editor_folder transport name turningboat type 2 face turningboat.x11 animation turningboat x 1 y 1 no_pick 1 move_allow walk move_block boat end Object wagon editor_folder transport type 66 face wagon.111 no_pick 1 client_type 25012 end Object trap_blades editor_folder traps name Blades trap type 155 face blades.111 speed 1 hp 1 msg You set off a Blades trap! endmsg animation trap_blades level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 90 Cha 20 end Object trap_rocks editor_folder traps name falling rocks trap type 155 face falling_rocks.111 speed 1 hp 1 msg You set off a falling rocks trap! endmsg animation trap_rocks level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 50 Cha 20 end Object trap_needle editor_folder traps name poison needle type 155 face needle.111 speed 1 hp 1 msg You are pricked by a poison needle! endmsg animation trap_needle level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1025 dam 10 Cha 20 end Object trap_spike_pit editor_folder traps name spiked pit type 155 face spiked_pit.111 speed 1 hp 1 msg You are stabbed by spikes! endmsg animation trap_spike_pit level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 40 Cha 15 end Object trap_spikes2 editor_folder traps name spikes type 155 face tspikes.111 speed 1 hp 1 msg You are stabbed by spikes! endmsg animation trap_spikes2 level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 20 Cha 20 end Object trap editor_folder traps name trap type 155 face trap.111 speed 1 hp 1 msg You set off a trap! endmsg animation trap level 1 is_animated 0 invisible 1 no_pick 1 move_on walk attacktype 1 dam 90 Cha 20 end Object awall_0 editor_folder wall/awall name wall face awall_0.111 blocksview 1 no_pick 1 move_block all end Object awall_1_2 editor_folder wall/awall name wall face awall_1.111 blocksview 1 no_pick 1 move_block all end Object awall_1_4 editor_folder wall/awall name wall face awall_2.111 blocksview 1 no_pick 1 move_block all end Object awall_2_2_1 editor_folder wall/awall name wall face awall_3.111 blocksview 1 no_pick 1 move_block all end Object awall_1_1 editor_folder wall/awall name wall face awall_4.111 blocksview 1 no_pick 1 move_block all end Object awall_2_1_1 editor_folder wall/awall name wall face awall_5.111 blocksview 1 no_pick 1 move_block all end Object awall_2_2_2 editor_folder wall/awall name wall face awall_6.111 blocksview 1 no_pick 1 move_block all end Object awall_3_2 editor_folder wall/awall name wall face awall_7.111 blocksview 1 no_pick 1 move_block all end Object awall_1_3 editor_folder wall/awall name wall face awall_8.111 blocksview 1 no_pick 1 move_block all end Object awall_2_2_4 editor_folder wall/awall name wall face awall_9.111 blocksview 1 no_pick 1 move_block all end Object awall_2_1_2 editor_folder wall/awall name wall face awall_A.111 blocksview 1 no_pick 1 move_block all end Object awall_3_1 editor_folder wall/awall name wall face awall_B.111 blocksview 1 no_pick 1 move_block all end Object awall_2_2_3 editor_folder wall/awall name wall face awall_C.111 blocksview 1 no_pick 1 move_block all end Object awall_3_4 editor_folder wall/awall name wall face awall_D.111 blocksview 1 no_pick 1 move_block all end Object awall_3_3 editor_folder wall/awall name wall face awall_E.111 blocksview 1 no_pick 1 move_block all end Object awall_4 editor_folder wall/awall name wall face awall_F.111 blocksview 1 no_pick 1 move_block all end Object weak_wall_1 editor_folder wall/awall race wall name wall face awall_w_0.111 animation weak_wall_1 is_animated 0 tear_down 1 hp 80 maxhp 80 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object weak_wall_2 editor_folder wall/awall race wall name wall face awall_w_1.111 animation weak_wall_2 is_animated 0 tear_down 1 hp 80 maxhp 80 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object awall_win1 editor_folder wall/awall name window face awindow_0.111 move_block all no_pick 1 end Object awall_win2 editor_folder wall/awall name window face awindow_1.111 move_block all no_pick 1 end Object bench_0 editor_folder wall/bench name bench face bench_0.111 no_pick 1 end Object bench_1_2 editor_folder wall/bench name bench face bench_1.111 no_pick 1 end Object bench_1_4 editor_folder wall/bench name bench face bench_2.111 no_pick 1 end Object bench_2_2_1 editor_folder wall/bench name bench face bench_3.111 no_pick 1 end Object bench_1_1 editor_folder wall/bench name bench face bench_4.111 no_pick 1 end Object bench_2_1_1 editor_folder wall/bench name bench face bench_5.111 no_pick 1 end Object bench_2_2_2 editor_folder wall/bench name bench face bench_6.111 no_pick 1 end Object bench_3_2 editor_folder wall/bench name bench face bench_7.111 no_pick 1 end Object bench_1_3 editor_folder wall/bench name bench face bench_8.111 no_pick 1 end Object bench_2_2_4 editor_folder wall/bench name bench face bench_9.111 no_pick 1 end Object bench_2_1_2 editor_folder wall/bench name bench face bench_A.111 no_pick 1 end Object bench_3_1 editor_folder wall/bench name bench face bench_B.111 no_pick 1 end Object bench_2_2_3 editor_folder wall/bench name bench face bench_C.111 no_pick 1 end Object bench_3_4 editor_folder wall/bench name bench face bench_D.111 no_pick 1 end Object bench_3_3 editor_folder wall/bench name bench face bench_E.111 no_pick 1 end Object bench_4 editor_folder wall/bench name bench face bench_F.111 no_pick 1 end Object bulletwall editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_0.111 speed -0.4 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_1 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_1.111 sp 1 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_2 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_2.111 sp 2 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_3 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_3.111 sp 3 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_4 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_4.111 sp 4 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_5 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_5.111 sp 5 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_6 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_6.111 sp 6 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_7 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_7.111 sp 7 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bulletwall_8 editor_folder wall/bulletwall name bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face bul_wall_8.111 sp 8 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_magic_bullet end end Object bwall_0 editor_folder wall/bwall name wall face bwall_0.111 blocksview 1 no_pick 1 move_block all end Object bwall_1_2 editor_folder wall/bwall name wall face bwall_1.111 blocksview 1 no_pick 1 move_block all end Object bwall_1_4 editor_folder wall/bwall name wall face bwall_2.111 blocksview 1 no_pick 1 move_block all end Object bwall_2_2_1 editor_folder wall/bwall name wall face bwall_3.111 blocksview 1 no_pick 1 move_block all end Object bwall_1_1 editor_folder wall/bwall name wall face bwall_4.111 blocksview 1 no_pick 1 move_block all end Object bwall_2_1_1 editor_folder wall/bwall name wall face bwall_5.111 blocksview 1 no_pick 1 move_block all end Object bwall_2_2_2 editor_folder wall/bwall name wall face bwall_6.111 blocksview 1 no_pick 1 move_block all end Object bwall_3_2 editor_folder wall/bwall name wall face bwall_7.111 blocksview 1 no_pick 1 move_block all end Object bwall_1_3 editor_folder wall/bwall name wall face bwall_8.111 blocksview 1 no_pick 1 move_block all end Object bwall_2_2_4 editor_folder wall/bwall name wall face bwall_9.111 blocksview 1 no_pick 1 move_block all end Object bwall_2_1_2 editor_folder wall/bwall name wall face bwall_A.111 blocksview 1 no_pick 1 move_block all end Object bwall_3_1 editor_folder wall/bwall name wall face bwall_B.111 blocksview 1 no_pick 1 move_block all end Object bwall_2_2_3 editor_folder wall/bwall name wall face bwall_C.111 blocksview 1 no_pick 1 move_block all end Object bwall_3_4 editor_folder wall/bwall name wall face bwall_D.111 blocksview 1 no_pick 1 move_block all end Object bwall_3_3 editor_folder wall/bwall name wall face bwall_E.111 blocksview 1 no_pick 1 move_block all end Object bwall_4 editor_folder wall/bwall name wall face bwall_F.111 blocksview 1 no_pick 1 move_block all end Object bwall_hole_2_1_1 editor_folder wall/bwall name hole in wall face bwall_hole_5.111 blocksview 1 no_pick 1 move_block all end Object bwall_hole_2_1_2 editor_folder wall/bwall name hole in wall face bwall_hole_A.111 blocksview 1 no_pick 1 move_block all end Object weak_wall_5 editor_folder wall/bwall name wall race wall face bwall_w_0.111 animation weak_wall_5 is_animated 0 tear_down 1 hp 150 maxhp 150 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object weak_wall_6 editor_folder wall/bwall name wall race wall face bwall_w_1.111 animation weak_wall_6 is_animated 0 tear_down 1 hp 150 maxhp 150 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 map_layer living end Object earthwall editor_folder wall/bwall race wall face earthwall.111 animation earthwall is_animated 0 tear_down 1 hp 24 maxhp 24 ac 30 type 45 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 no_pick 1 move_block all blocksview 1 alive 1 level 1 map_layer living end Object false_wall editor_folder wall/bwall name false wall face earthwall.111 no_pick 1 blocksview 1 end Object hedge editor_folder wall/bwall face hedge.111 animation hedge is_animated 0 tear_down 1 hp 24 maxhp 24 ac 20 type 45 resist_magic 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 resist_fire 30 no_pick 1 blocksview 1 alive 1 level 1 end Object block_door_closed editor_folder wall/bwall name stone block type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face earthwall.111 animation block_door_closed is_animated 0 move_block all blocksview 1 wc 5 maxsp 0 dam 5 end Object block_door_open editor_folder wall/bwall name stone block type 91 activate_on_push 1 activate_on_release 1 no_pick 1 face stoneblock.115 animation block_door_open is_animated 0 wc 0 dam 5 maxsp 1 end Object cave1 editor_folder wall/cave name wall face cave1.111 blocksview 1 no_pick 1 move_block all end Object cave10 editor_folder wall/cave name wall face cave10.111 blocksview 1 no_pick 1 move_block all end Object cave11 editor_folder wall/cave name wall face cave11.111 blocksview 1 no_pick 1 move_block all end Object cave12 editor_folder wall/cave name wall face cave12.111 blocksview 1 no_pick 1 move_block all end Object cave13 editor_folder wall/cave name wall face cave13.111 blocksview 1 no_pick 1 move_block all end Object cave14 editor_folder wall/cave name wall face cave14.111 blocksview 1 no_pick 1 move_block all end Object cave15 editor_folder wall/cave name wall face cave15.111 blocksview 1 no_pick 1 move_block all end Object cave16 editor_folder wall/cave name wall face cave16.111 blocksview 1 no_pick 1 move_block all end Object cave17 editor_folder wall/cave name wall face cave17.111 blocksview 1 no_pick 1 move_block all end Object cave18 editor_folder wall/cave name wall face cave18.111 blocksview 1 no_pick 1 move_block all end Object cave19 editor_folder wall/cave name wall face cave19.111 blocksview 1 no_pick 1 move_block all end Object cave2 editor_folder wall/cave name wall face cave2.111 blocksview 1 no_pick 1 move_block all end Object cave20 editor_folder wall/cave name wall face cave20.111 blocksview 1 no_pick 1 move_block all end Object cave21 editor_folder wall/cave name wall face cave21.111 blocksview 1 no_pick 1 move_block all end Object cave22 editor_folder wall/cave name wall face cave22.111 move_block all no_pick 1 blocksview 1 end Object cave23 editor_folder wall/cave name wall face cave23.111 move_block all no_pick 1 blocksview 1 end Object cave24 editor_folder wall/cave name wall face cave24.111 move_block all no_pick 1 blocksview 1 end Object cave25 editor_folder wall/cave name wall face cave25.111 move_block all no_pick 1 blocksview 1 end Object cave3 editor_folder wall/cave name wall face cave3.111 blocksview 1 no_pick 1 move_block all end Object cave4 editor_folder wall/cave name wall face cave4.111 blocksview 1 no_pick 1 move_block all end Object cave5 editor_folder wall/cave name wall face cave5.111 blocksview 1 no_pick 1 move_block all end Object cave6 editor_folder wall/cave name wall face cave6.111 blocksview 1 no_pick 1 move_block all end Object cave7 editor_folder wall/cave name wall face cave7.111 blocksview 1 no_pick 1 move_block all end Object cave8 editor_folder wall/cave name wall face cave8.111 blocksview 1 no_pick 1 move_block all end Object cave9 editor_folder wall/cave name wall face cave9.111 blocksview 1 no_pick 1 move_block all end Object cave_0 editor_folder wall/cave name wall face cave_0.111 blocksview 1 no_pick 1 move_block all end Object cave_1 editor_folder wall/cave name wall face cave_1.111 blocksview 1 no_pick 1 move_block all end Object cave_10 editor_folder wall/cave name wall face cave_10.111 blocksview 1 no_pick 1 move_block all end Object cave_11 editor_folder wall/cave name wall face cave_11.111 blocksview 1 no_pick 1 move_block all end Object cave_12 editor_folder wall/cave name wall face cave_12.111 blocksview 1 no_pick 1 move_block all end Object cave_13 editor_folder wall/cave name wall face cave_13.111 blocksview 1 no_pick 1 move_block all end Object cave_14 editor_folder wall/cave name wall face cave_14.111 blocksview 1 no_pick 1 move_block all end Object cave_15 editor_folder wall/cave name wall face cave_15.111 blocksview 1 no_pick 1 move_block all end Object cave_16 editor_folder wall/cave name wall face cave_16.111 blocksview 1 no_pick 1 move_block all end Object cave_17 editor_folder wall/cave name wall face cave_17.111 blocksview 1 no_pick 1 move_block all end Object cave_18 editor_folder wall/cave name wall face cave_18.111 blocksview 1 no_pick 1 move_block all end Object cave_19 editor_folder wall/cave name wall face cave_19.111 blocksview 1 no_pick 1 move_block all end Object cave_2 editor_folder wall/cave name wall face cave_2.111 blocksview 1 no_pick 1 move_block all end Object cave_20 editor_folder wall/cave name wall face cave_20.111 blocksview 1 no_pick 1 move_block all end Object cave_21 editor_folder wall/cave name wall face cave_21.111 blocksview 1 no_pick 1 move_block all end Object cave_22 editor_folder wall/cave name wall face cave_22.111 blocksview 1 no_pick 1 move_block all end Object cave_23 editor_folder wall/cave name wall face cave_23.111 blocksview 1 no_pick 1 move_block all end Object cave_24 editor_folder wall/cave name wall face cave_24.111 blocksview 1 no_pick 1 move_block all end Object cave_3 editor_folder wall/cave name wall face cave_3.111 blocksview 1 no_pick 1 move_block all end Object cave_4 editor_folder wall/cave name wall face cave_4.111 blocksview 1 no_pick 1 move_block all end Object cave_5 editor_folder wall/cave name wall face cave_5.111 blocksview 1 no_pick 1 move_block all end Object cave_6 editor_folder wall/cave name wall face cave_6.111 blocksview 1 no_pick 1 move_block all end Object cave_7 editor_folder wall/cave name wall face cave_7.111 blocksview 1 no_pick 1 move_block all end Object cave_8 editor_folder wall/cave name wall face cave_8.111 blocksview 1 no_pick 1 move_block all end Object cave_9 editor_folder wall/cave name wall face cave_9.111 blocksview 1 no_pick 1 move_block all end Object cloudwall editor_folder wall name cloud face fog.112 blocksview 1 no_pick 1 move_block all end Object cityport_b editor_folder wall/cwall name cityport face cityport_0.111 no_pick 1 blocksview 1 end Object cityport_a editor_folder wall/cwall name cityport face cityport_1.111 no_pick 1 blocksview 1 end Object cwall_0 editor_folder wall/cwall name wall face cwall_0.111 blocksview 1 no_pick 1 move_block all end Object cwall_1_2 editor_folder wall/cwall name wall face cwall_1.111 blocksview 1 no_pick 1 move_block all end Object cwall_1_4 editor_folder wall/cwall name wall face cwall_2.111 blocksview 1 no_pick 1 move_block all end Object cwall_2_2_1 editor_folder wall/cwall name wall face cwall_3.111 blocksview 1 no_pick 1 move_block all end Object cwall_1_1 editor_folder wall/cwall name wall face cwall_4.111 blocksview 1 no_pick 1 move_block all end Object cwall_2_1_1 editor_folder wall/cwall name wall face cwall_5.111 blocksview 1 no_pick 1 move_block all end Object cwall_2_2_2 editor_folder wall/cwall name wall face cwall_6.111 blocksview 1 no_pick 1 move_block all end Object cwall_3_2 editor_folder wall/cwall name wall face cwall_7.111 blocksview 1 no_pick 1 move_block all end Object cwall_1_3 editor_folder wall/cwall name wall face cwall_8.111 blocksview 1 no_pick 1 move_block all end Object cwall_2_2_4 editor_folder wall/cwall name wall face cwall_9.111 blocksview 1 no_pick 1 move_block all end Object cwall_2_1_2 editor_folder wall/cwall name wall face cwall_A.111 blocksview 1 no_pick 1 move_block all end Object cwall_3_1 editor_folder wall/cwall name wall face cwall_B.111 blocksview 1 no_pick 1 move_block all end Object cwall_2_2_3 editor_folder wall/cwall name wall face cwall_C.111 blocksview 1 no_pick 1 move_block all end Object cwall_3_4 editor_folder wall/cwall name wall face cwall_D.111 blocksview 1 no_pick 1 move_block all end Object cwall_3_3 editor_folder wall/cwall name wall face cwall_E.111 blocksview 1 no_pick 1 move_block all end Object cwall_4 editor_folder wall/cwall name wall face cwall_F.111 blocksview 1 no_pick 1 move_block all end Object cwall_marble editor_folder wall/cwall name marble wall column face cwall_marble.111 blocksview 1 no_pick 1 move_block all end Object cwall_beigemarble editor_folder wall/cwall name marble wall column face cwall_beigemarble.111 blocksview 1 no_pick 1 move_block all end Object cwall_bluemarblemedium editor_folder wall/cwall name marble wall column face cwall_bluemarblemedium.111 blocksview 1 no_pick 1 move_block all end Object cwall_cyanmarble editor_folder wall/cwall name marble wall column face cwall_cyanmarble.111 blocksview 1 no_pick 1 move_block all end Object cwall_cyanmarbledark editor_folder wall/cwall name marble wall column face cwall_cyanmarbledark.111 blocksview 1 no_pick 1 move_block all end Object cwall_graymarble editor_folder wall/cwall name marble wall column face cwall_graymarble.111 blocksview 1 no_pick 1 move_block all end Object cwall_greenmarble editor_folder wall/cwall name marble wall column face cwall_greenmarble.111 blocksview 1 no_pick 1 move_block all end Object cwall_greenmarblemedium editor_folder wall/cwall name marble wall column face cwall_greenmarblemedium.111 blocksview 1 no_pick 1 move_block all end Object cwall_magentamarble editor_folder wall/cwall name marble wall column face cwall_magentamarble.111 blocksview 1 no_pick 1 move_block all end Object cwall_pinkmarble editor_folder wall/cwall name marble wall column face cwall_pinkmarble.111 blocksview 1 no_pick 1 move_block all end Object cwall_mural_1_1 editor_folder wall/cwall name wall face cwall_mural_1.111 blocksview 1 no_pick 1 move_block all end Object cwall_mural_1_2 editor_folder wall/cwall name wall face cwall_mural_1.112 blocksview 1 no_pick 1 move_block all end Object cwall_mural_1_3 editor_folder wall/cwall name wall face cwall_mural_1.113 blocksview 1 no_pick 1 move_block all end Object cwall_mural_1_4 editor_folder wall/cwall name wall face cwall_mural_1.114 blocksview 1 no_pick 1 move_block all end Object cwall_mural_end_1_1 editor_folder wall/cwall name wall face cwall_mural_end_1.111 blocksview 1 no_pick 1 move_block all end Object cwall_mural_end_1_2 editor_folder wall/cwall name wall face cwall_mural_end_1.112 blocksview 1 no_pick 1 move_block all end Object weak_wall_3 editor_folder wall/cwall name wall race wall face cwall_w_0.111 animation weak_wall_3 is_animated 0 tear_down 1 hp 100 maxhp 100 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object weak_wall_4 editor_folder wall/cwall name wall race wall face cwall_w_1.111 animation weak_wall_4 is_animated 0 tear_down 1 hp 100 maxhp 100 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object guard_house_4 editor_folder wall/cwall name Guard House face guard_ho_1.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object guard_house_2 editor_folder wall/cwall name Guard House face guard_ho_2.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object guard_house_3 editor_folder wall/cwall name Guard House face guard_ho_4.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object guard_house_1 editor_folder wall/cwall name Guard House face guard_ho_8.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object redcityport_b editor_folder wall/cwall-red name cityport face redcityport_0.111 no_pick 1 blocksview 1 end Object redcityport_a editor_folder wall/cwall-red name cityport face redcityport_1.111 no_pick 1 blocksview 1 end Object redcwall_0 editor_folder wall/cwall-red name wall face redcwall_0.111 blocksview 1 no_pick 1 move_block all end Object redcwall_1_2 editor_folder wall/cwall-red name wall face redcwall_1.111 blocksview 1 no_pick 1 move_block all end Object redcwall_1_4 editor_folder wall/cwall-red name wall face redcwall_2.111 blocksview 1 no_pick 1 move_block all end Object redcwall_2_2_1 editor_folder wall/cwall-red name wall face redcwall_3.111 blocksview 1 no_pick 1 move_block all end Object redcwall_1_1 editor_folder wall/cwall-red name wall face redcwall_4.111 blocksview 1 no_pick 1 move_block all end Object redcwall_2_1_1 editor_folder wall/cwall-red name wall face redcwall_5.111 blocksview 1 no_pick 1 move_block all end Object redcwall_2_2_2 editor_folder wall/cwall-red name wall face redcwall_6.111 blocksview 1 no_pick 1 move_block all end Object redcwall_3_2 editor_folder wall/cwall-red name wall face redcwall_7.111 blocksview 1 no_pick 1 move_block all end Object redcwall_1_3 editor_folder wall/cwall-red name wall face redcwall_8.111 blocksview 1 no_pick 1 move_block all end Object redcwall_2_2_4 editor_folder wall/cwall-red name wall face redcwall_9.111 blocksview 1 no_pick 1 move_block all end Object redcwall_2_1_2 editor_folder wall/cwall-red name wall face redcwall_A.111 blocksview 1 no_pick 1 move_block all end Object redcwall_3_1 editor_folder wall/cwall-red name wall face redcwall_B.111 blocksview 1 no_pick 1 move_block all end Object redcwall_2_2_3 editor_folder wall/cwall-red name wall face redcwall_C.111 blocksview 1 no_pick 1 move_block all end Object redcwall_3_4 editor_folder wall/cwall-red name wall face redcwall_D.111 blocksview 1 no_pick 1 move_block all end Object redcwall_3_3 editor_folder wall/cwall-red name wall face redcwall_E.111 blocksview 1 no_pick 1 move_block all end Object redcwall_4 editor_folder wall/cwall-red name wall face redcwall_F.111 blocksview 1 no_pick 1 move_block all end Object redweak_wall_3 editor_folder wall/cwall-red name wall race wall face redcwall_w_0.111 animation redweak_wall_3 is_animated 0 tear_down 1 hp 100 maxhp 100 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object redweak_wall_4 editor_folder wall/cwall-red name wall race wall face redcwall_w_1.111 animation redweak_wall_4 is_animated 0 tear_down 1 hp 100 maxhp 100 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object redcwall_win1 editor_folder wall/cwall-red name window face redcwindow_0.111 move_block all no_pick 1 end Object redcwall_win2 editor_folder wall/cwall-red name window face redcwindow_1.111 move_block all no_pick 1 end Object redguard_house_4 editor_folder wall/cwall-red name Guard House face redguard_ho_1.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 end Object redguard_house_2 editor_folder wall/cwall-red name Guard House face redguard_ho_2.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 end Object redguard_house_3 editor_folder wall/cwall-red name Guard House face redguard_ho_4.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 end Object redguard_house_1 editor_folder wall/cwall-red name Guard House face redguard_ho_8.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 end Object westcityport_b editor_folder wall/cwall-west name cityport face westcityport_0.111 no_pick 1 blocksview 1 end Object westcityport_a editor_folder wall/cwall-west name cityport face westcityport_1.111 no_pick 1 blocksview 1 end Object westcwall_0 editor_folder wall/cwall-west name wall face westcwall_0.111 blocksview 1 no_pick 1 move_block all end Object westcwall_1_2 editor_folder wall/cwall-west name wall face westcwall_1.111 blocksview 1 no_pick 1 move_block all end Object westcwall_1_4 editor_folder wall/cwall-west name wall face westcwall_2.111 blocksview 1 no_pick 1 move_block all end Object westcwall_2_2_1 editor_folder wall/cwall-west name wall face westcwall_3.111 blocksview 1 no_pick 1 move_block all end Object westcwall_1_1 editor_folder wall/cwall-west name wall face westcwall_4.111 blocksview 1 no_pick 1 move_block all end Object westcwall_2_1_1 editor_folder wall/cwall-west name wall face westcwall_5.111 blocksview 1 no_pick 1 move_block all end Object westcwall_2_2_2 editor_folder wall/cwall-west name wall face westcwall_6.111 blocksview 1 no_pick 1 move_block all end Object westcwall_3_2 editor_folder wall/cwall-west name wall face westcwall_7.111 blocksview 1 no_pick 1 move_block all end Object westcwall_1_3 editor_folder wall/cwall-west name wall face westcwall_8.111 blocksview 1 no_pick 1 move_block all end Object westcwall_2_2_4 editor_folder wall/cwall-west name wall face westcwall_9.111 blocksview 1 no_pick 1 move_block all end Object westcwall_2_1_2 editor_folder wall/cwall-west name wall face westcwall_A.111 blocksview 1 no_pick 1 move_block all end Object westcwall_3_1 editor_folder wall/cwall-west name wall face westcwall_B.111 blocksview 1 no_pick 1 move_block all end Object westcwall_2_2_3 editor_folder wall/cwall-west name wall face westcwall_C.111 blocksview 1 no_pick 1 move_block all end Object westcwall_3_4 editor_folder wall/cwall-west name wall face westcwall_D.111 blocksview 1 no_pick 1 move_block all end Object westcwall_3_3 editor_folder wall/cwall-west name wall face westcwall_E.111 blocksview 1 no_pick 1 move_block all end Object westcwall_4 editor_folder wall/cwall-west name wall face westcwall_F.111 blocksview 1 no_pick 1 move_block all end Object westweak_wall_3 editor_folder wall/cwall-west name wall race wall face westcwall_w_0.111 animation westweak_wall_3 is_animated 0 tear_down 1 hp 100 maxhp 100 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 no_pick 1 blocksview 1 alive 1 level 1 move_block all end Object westweak_wall_4 editor_folder wall/cwall-west name wall race wall face westcwall_w_1.111 animation westweak_wall_4 is_animated 0 tear_down 1 hp 100 maxhp 100 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 no_pick 1 blocksview 1 alive 1 level 1 move_block all end Object westcwall_win1 editor_folder wall/cwall-west name window face westcwindow_0.111 move_block all no_pick 1 end Object westcwall_win2 editor_folder wall/cwall-west name window face westcwindow_1.111 move_block all no_pick 1 end Object westguard_house_4 editor_folder wall/cwall-west name Guard House face westguard_ho_1.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object westguard_house_2 editor_folder wall/cwall-west name Guard House face westguard_ho_2.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object westguard_house_3 editor_folder wall/cwall-west name Guard House face westguard_ho_4.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object westguard_house_1 editor_folder wall/cwall-west name Guard House face westguard_ho_8.111 no_pick 1 move_on walk fly_low type 66 blocksview 1 client_type 25012 end Object dun_0 editor_folder wall/dun face dun_0.111 blocksview 1 no_pick 1 move_block all end Object dun_1_2 editor_folder wall/dun face dun_1.111 blocksview 1 no_pick 1 move_block all end Object dun_1_4 editor_folder wall/dun face dun_2.111 blocksview 1 no_pick 1 move_block all end Object dun_2_2_1 editor_folder wall/dun face dun_3.111 blocksview 1 no_pick 1 move_block all end Object dun_1_1 editor_folder wall/dun face dun_4.111 blocksview 1 no_pick 1 move_block all end Object dun_2_1_1 editor_folder wall/dun face dun_5.111 blocksview 1 no_pick 1 move_block all end Object dun_2_2_2 editor_folder wall/dun face dun_4.111 blocksview 1 no_pick 1 move_block all end Object dun_3_2 editor_folder wall/dun face dun_5.111 blocksview 1 no_pick 1 move_block all end Object dun_2_2_4 editor_folder wall/dun face dun_8.111 blocksview 1 no_pick 1 move_block all end Object dun_1_3 editor_folder wall/dun face dun_8.111 blocksview 1 no_pick 1 move_block all end Object dun_2_1_2 editor_folder wall/dun face dun_A.111 blocksview 1 no_pick 1 move_block all end Object dun_3_1 editor_folder wall/dun face dun_A.111 blocksview 1 no_pick 1 move_block all end Object dun_2_2_3 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun_3_4 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun_3_3 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun_4 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun0 editor_folder wall/dun face dun_0.111 blocksview 1 no_pick 1 move_block all end Object dun5 editor_folder wall/dun face dun_1.111 blocksview 1 no_pick 1 move_block all end Object dun6 editor_folder wall/dun face dun_2.111 blocksview 1 no_pick 1 move_block all end Object dun4 editor_folder wall/dun face dun_3.111 blocksview 1 no_pick 1 move_block all end Object dun8 editor_folder wall/dun face dun_4.111 blocksview 1 no_pick 1 move_block all end Object dun3 editor_folder wall/dun face dun_5.111 blocksview 1 no_pick 1 move_block all end Object dun10 editor_folder wall/dun face dun_4.111 blocksview 1 no_pick 1 move_block all end Object dun11 editor_folder wall/dun face dun_5.111 blocksview 1 no_pick 1 move_block all end Object dun7 editor_folder wall/dun face dun_8.111 blocksview 1 no_pick 1 move_block all end Object dun12 editor_folder wall/dun face dun_8.111 blocksview 1 no_pick 1 move_block all end Object dun2 editor_folder wall/dun face dun_A.111 blocksview 1 no_pick 1 move_block all end Object dun13 editor_folder wall/dun face dun_A.111 blocksview 1 no_pick 1 move_block all end Object dun9 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun14 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun16 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun17 editor_folder wall/dun face dun_C.111 blocksview 1 no_pick 1 move_block all end Object dun18 editor_folder wall/dun face dun_10.111 blocksview 1 no_pick 1 move_block all end Object dun19 editor_folder wall/dun face dun_11.111 blocksview 1 no_pick 1 move_block all end Object dun20 editor_folder wall/dun face dun_12.111 blocksview 1 no_pick 1 move_block all end Object dun21 editor_folder wall/dun face dun_13.111 blocksview 1 no_pick 1 move_block all end Object dun22 editor_folder wall/dun face dun_14.111 blocksview 1 no_pick 1 move_block all end Object dun23 editor_folder wall/dun face dun_15.111 blocksview 1 no_pick 1 move_block all end Object dun24 editor_folder wall/dun face dun_16.111 blocksview 1 no_pick 1 move_block all end Object dun25 editor_folder wall/dun face dun_17.111 blocksview 1 no_pick 1 move_block all end Object dun26 editor_folder wall/dun face dun_18.111 blocksview 1 no_pick 1 move_block all end Object dun27 editor_folder wall/dun face dun_19.111 blocksview 1 no_pick 1 move_block all end Object dun28 editor_folder wall/dun face dun_20.111 blocksview 1 no_pick 1 move_block all end Object dun29 editor_folder wall/dun face dun_21.111 blocksview 1 no_pick 1 move_block all end Object dun30 editor_folder wall/dun face dun_22.111 blocksview 1 no_pick 1 move_block all end Object dun31 editor_folder wall/dun face dun_23.111 blocksview 1 no_pick 1 move_block all end Object dun32 editor_folder wall/dun face dun_24.111 blocksview 1 no_pick 1 move_block all end Object dun33 editor_folder wall/dun face dun_25.111 blocksview 1 no_pick 1 move_block all end Object dwall_0 editor_folder wall/dwall name wall face dwall_0.111 blocksview 1 no_pick 1 move_block all end Object dwall_1_2 editor_folder wall/dwall name wall face dwall_1.111 blocksview 1 no_pick 1 move_block all end Object dwall_1_4 editor_folder wall/dwall name wall face dwall_2.111 blocksview 1 no_pick 1 move_block all end Object dwall_2_2_1 editor_folder wall/dwall name wall face dwall_3.111 blocksview 1 no_pick 1 move_block all end Object dwall_1_1 editor_folder wall/dwall name wall face dwall_4.111 blocksview 1 no_pick 1 move_block all end Object dwall_2_1_1 editor_folder wall/dwall name wall face dwall_5.111 blocksview 1 no_pick 1 move_block all end Object dwall_2_2_2 editor_folder wall/dwall name wall face dwall_6.111 blocksview 1 no_pick 1 move_block all end Object dwall_3_2 editor_folder wall/dwall name wall face dwall_7.111 blocksview 1 no_pick 1 move_block all end Object dwall_1_3 editor_folder wall/dwall name wall face dwall_8.111 blocksview 1 no_pick 1 move_block all end Object dwall_2_2_4 editor_folder wall/dwall name wall face dwall_9.111 blocksview 1 no_pick 1 move_block all end Object dwall_2_1_2 editor_folder wall/dwall name wall face dwall_A.111 blocksview 1 no_pick 1 move_block all end Object dwall_3_1 editor_folder wall/dwall name wall face dwall_B.111 blocksview 1 no_pick 1 move_block all end Object dwall_2_2_3 editor_folder wall/dwall name wall face dwall_C.111 blocksview 1 no_pick 1 move_block all end Object dwall_3_4 editor_folder wall/dwall name wall face dwall_D.111 blocksview 1 no_pick 1 move_block all end Object dwall_3_3 editor_folder wall/dwall name wall face dwall_E.111 blocksview 1 no_pick 1 move_block all end Object dwall_4 editor_folder wall/dwall name wall face dwall_F.111 blocksview 1 no_pick 1 move_block all end Object dwall_win1 editor_folder wall/dwall name window face dwindow_0.111 move_block all no_pick 1 end Object dwall_win2 editor_folder wall/dwall name window face dwindow_1.111 move_block all no_pick 1 end Object dwall_win3 editor_folder wall/dwall name window face dwindow_2.111 move_block all no_pick 1 end Object dwall_win4 editor_folder wall/dwall name window face dwindow_3.111 move_block all no_pick 1 end Object ewall_0 editor_folder wall/ewall name wall face ewall_0.111 move_block all no_pick 1 blocksview 1 end Object ewall_1_2 editor_folder wall/ewall name wall face ewall_1.111 move_block all no_pick 1 blocksview 1 end Object ewall_1_4 editor_folder wall/ewall name wall face ewall_2.111 move_block all no_pick 1 blocksview 1 end Object ewall_2_2_1 editor_folder wall/ewall name wall face ewall_3.111 move_block all no_pick 1 blocksview 1 end Object ewall_1_1 editor_folder wall/ewall name wall face ewall_4.111 move_block all no_pick 1 blocksview 1 end Object ewall_2_1_1 editor_folder wall/ewall name wall face ewall_5.111 move_block all no_pick 1 blocksview 1 end Object ewall_2_2_2 editor_folder wall/ewall name wall face ewall_6.111 move_block all no_pick 1 blocksview 1 end Object ewall_3_2 editor_folder wall/ewall name wall face ewall_7.111 move_block all no_pick 1 blocksview 1 end Object ewall_1_3 editor_folder wall/ewall name wall face ewall_8.111 move_block all no_pick 1 blocksview 1 end Object ewall_2_2_4 editor_folder wall/ewall name wall face ewall_9.111 move_block all no_pick 1 blocksview 1 end Object ewall_2_1_2 editor_folder wall/ewall name wall face ewall_A.111 move_block all no_pick 1 blocksview 1 end Object ewall_3_1 editor_folder wall/ewall name wall face ewall_B.111 move_block all no_pick 1 blocksview 1 end Object ewall_2_2_3 editor_folder wall/ewall name wall face ewall_C.111 move_block all no_pick 1 blocksview 1 end Object ewall_3_4 editor_folder wall/ewall name wall face ewall_D.111 move_block all no_pick 1 blocksview 1 end Object ewall_3_3 editor_folder wall/ewall name wall face ewall_E.111 move_block all no_pick 1 blocksview 1 end Object ewall_4 editor_folder wall/ewall name wall face ewall_F.111 move_block all no_pick 1 blocksview 1 end Object ewall_redpost editor_folder wall/ewall name wall face ewall_redpost.111 move_block all no_pick 1 blocksview 1 end Object ewall_win1 editor_folder wall/ewall name window face ewindow_0.111 move_block all no_pick 1 end Object ewall_win2 editor_folder wall/ewall name window face ewindow_1.111 move_block all no_pick 1 end Object firewall editor_folder wall/firewall alive 1 level 1 type 62 activate_on_push 1 activate_on_release 1 face earthwall.111 speed -0.02 hp 250 maxhp 250 ac 3 exp 50 resist_fire 100 blocksview 1 arch spell_small_fireball end end Object firewall_1 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_1.111 sp 1 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_2 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_2.111 sp 2 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_3 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_3.111 sp 3 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_4 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_4.111 sp 4 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_5 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_5.111 sp 5 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_6 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_6.111 sp 6 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_7 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_7.111 sp 7 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object firewall_8 editor_folder wall/firewall name firewall type 62 activate_on_push 1 activate_on_release 1 level 1 face firewall_8.111 sp 8 speed -0.02 no_pick 1 move_block all blocksview 1 arch spell_small_fireball end end Object flagstone_0 editor_folder wall/flagstone name wall face flagstone_0.111 blocksview 1 no_pick 1 move_block all end Object flagstone_1_2 editor_folder wall/flagstone name wall face flagstone_1.111 blocksview 1 no_pick 1 move_block all end Object flagstone_1_4 editor_folder wall/flagstone name wall face flagstone_2.111 blocksview 1 no_pick 1 move_block all end Object flagstone_2_2_1 editor_folder wall/flagstone name wall face flagstone_3.111 blocksview 1 no_pick 1 move_block all end Object flagstone_1_1 editor_folder wall/flagstone name wall face flagstone_4.111 blocksview 1 no_pick 1 move_block all end Object flagstone_2_1_1 editor_folder wall/flagstone name wall face flagstone_5.111 blocksview 1 no_pick 1 move_block all end Object flagstone_2_2_2 editor_folder wall/flagstone name wall face flagstone_6.111 blocksview 1 no_pick 1 move_block all end Object flagstone_3_2 editor_folder wall/flagstone name wall face flagstone_7.111 blocksview 1 no_pick 1 move_block all end Object flagstone_1_3 editor_folder wall/flagstone name wall face flagstone_8.111 blocksview 1 no_pick 1 move_block all end Object flagstone_2_2_4 editor_folder wall/flagstone name wall face flagstone_9.111 blocksview 1 no_pick 1 move_block all end Object flagstone_2_1_2 editor_folder wall/flagstone name wall face flagstone_A.111 blocksview 1 no_pick 1 move_block all end Object flagstone_3_1 editor_folder wall/flagstone name wall face flagstone_B.111 blocksview 1 no_pick 1 move_block all end Object flagstone_2_2_3 editor_folder wall/flagstone name wall face flagstone_C.111 blocksview 1 no_pick 1 move_block all end Object flagstone_3_4 editor_folder wall/flagstone name wall face flagstone_D.111 blocksview 1 no_pick 1 move_block all end Object flagstone_3_3 editor_folder wall/flagstone name wall face flagstone_E.111 blocksview 1 no_pick 1 move_block all end Object flagstone_4 editor_folder wall/flagstone name wall face flagstone_F.111 blocksview 1 no_pick 1 move_block all end Object flagstone_win1 editor_folder wall/flagstone name wall face flagstone_win1.111 blocksview 1 no_pick 1 move_block all end Object gwall_0 editor_folder wall/gwall name wall face gwall_0.111 no_pick 1 move_block all blocksview 1 end Object gwall_1_2 editor_folder wall/gwall name wall face gwall_1.111 no_pick 1 move_block all blocksview 1 end Object gwall_1_4 editor_folder wall/gwall name wall face gwall_2.111 no_pick 1 move_block all blocksview 1 end Object gwall_2_2_1 editor_folder wall/gwall name wall face gwall_3.111 no_pick 1 move_block all blocksview 1 end Object gwall_1_1 editor_folder wall/gwall name wall face gwall_4.111 no_pick 1 move_block all blocksview 1 end Object gwall_2_1_1 editor_folder wall/gwall name wall face gwall_5.111 no_pick 1 move_block all blocksview 1 end Object gwall_2_2_2 editor_folder wall/gwall name wall face gwall_6.111 no_pick 1 move_block all blocksview 1 end Object gwall_3_2 editor_folder wall/gwall name wall face gwall_7.111 no_pick 1 move_block all blocksview 1 end Object gwall_1_3 editor_folder wall/gwall name wall face gwall_8.111 no_pick 1 move_block all blocksview 1 end Object gwall_2_2_4 editor_folder wall/gwall name wall face gwall_9.111 no_pick 1 move_block all blocksview 1 end Object gwall_2_1_2 editor_folder wall/gwall name wall face gwall_A.111 no_pick 1 move_block all blocksview 1 end Object gwall_3_1 editor_folder wall/gwall name wall face gwall_B.111 no_pick 1 move_block all blocksview 1 end Object gwall_2_2_3 editor_folder wall/gwall name wall face gwall_C.111 no_pick 1 move_block all blocksview 1 end Object gwall_3_4 editor_folder wall/gwall name wall face gwall_D.111 no_pick 1 move_block all blocksview 1 end Object gwall_3_3 editor_folder wall/gwall name wall face gwall_E.111 no_pick 1 move_block all blocksview 1 end Object gwall_4 editor_folder wall/gwall name wall face gwall_F.111 no_pick 1 move_block all blocksview 1 end Object gwall_a editor_folder wall/gwall name wall face gwall_xa.111 blocksview 1 no_pick 1 move_block all end Object gwall_b editor_folder wall/gwall name wall face gwall_xb.111 blocksview 1 no_pick 1 move_block all end Object gwall_c editor_folder wall/gwall name wall face gwall_xc.111 blocksview 1 no_pick 1 move_block all end Object gwall_d editor_folder wall/gwall name wall face gwall_xd.111 blocksview 1 no_pick 1 move_block all end Object hedge_0 editor_folder wall/hedge name hedge face hedge_0.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_1_2 editor_folder wall/hedge name hedge face hedge_1.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_1_4 editor_folder wall/hedge name hedge face hedge_2.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_2_2_1 editor_folder wall/hedge name hedge face hedge_3.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_1_1 editor_folder wall/hedge name hedge face hedge_4.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_2_1_1 editor_folder wall/hedge name hedge face hedge_5.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_2_2_2 editor_folder wall/hedge name hedge face hedge_6.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_3_2 editor_folder wall/hedge name hedge face hedge_7.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_1_3 editor_folder wall/hedge name hedge face hedge_8.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_2_2_4 editor_folder wall/hedge name hedge face hedge_9.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_2_1_2 editor_folder wall/hedge name hedge face hedge_A.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_3_1 editor_folder wall/hedge name hedge face hedge_B.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_2_2_3 editor_folder wall/hedge name hedge face hedge_C.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_3_4 editor_folder wall/hedge name hedge face hedge_D.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_3_3 editor_folder wall/hedge name hedge face hedge_E.111 blocksview 1 no_pick 1 is_wooded 1 end Object hedge_4 editor_folder wall/hedge name hedge face hedge_F.111 blocksview 1 no_pick 1 is_wooded 1 end Object jcity_0 editor_folder wall/jcity name wall face jcity_0.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_1_2 editor_folder wall/jcity name wall face jcity_1.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_1_4 editor_folder wall/jcity name wall face jcity_2.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_2_2_1 editor_folder wall/jcity name wall face jcity_3.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_1_1 editor_folder wall/jcity name wall face jcity_4.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_2_1_1 editor_folder wall/jcity name wall face jcity_5.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_2_2_2 editor_folder wall/jcity name wall face jcity_6.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_3_2 editor_folder wall/jcity name wall face jcity_7.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_1_3 editor_folder wall/jcity name wall face jcity_8.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_2_2_4 editor_folder wall/jcity name wall face jcity_9.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_2_1_2 editor_folder wall/jcity name wall face jcity_A.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_3_1 editor_folder wall/jcity name wall face jcity_B.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_2_2_3 editor_folder wall/jcity name wall face jcity_C.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_3_4 editor_folder wall/jcity name wall face jcity_D.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_3_3 editor_folder wall/jcity name wall face jcity_E.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object jcity_4 editor_folder wall/jcity name wall face jcity_F.111 blocksview 1 no_pick 1 type 66 client_type 25012 end Object lbulletwall editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.101 animation lbulletwall is_animated 0 speed -0.16 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_1 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.111 sp 1 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_2 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.121 sp 2 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_3 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.131 sp 3 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_4 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.141 sp 4 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_5 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.151 sp 5 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_6 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.161 sp 6 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_7 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.171 sp 7 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lbulletwall_8 editor_folder wall/lbulletwall name large bulletwall type 62 activate_on_push 1 activate_on_release 1 level 1 face lbull_wall.181 sp 8 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_lg_magic_bullet end end Object lightningwall editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.101 speed -0.1 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_t editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.111 animation lightningwall_t sp 1 maxsp 1 is_animated 0 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_1 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.111 sp 1 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_2 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.121 sp 2 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_3 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.131 sp 3 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_4 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.141 sp 4 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_5 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.151 sp 5 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_6 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.161 sp 6 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_7 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.171 sp 7 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object lightningwall_8 editor_folder wall/lightningwall name lightningwall type 62 activate_on_push 1 activate_on_release 1 level 1 face light_wall.181 sp 8 speed -0.04 no_pick 1 move_block all blocksview 1 arch spell_sm_lightning end end Object longtable_0 editor_folder wall/longtable name longtable face longtable_0.111 no_pick 1 end Object longtable_1_2 editor_folder wall/longtable name longtable face longtable_1.111 no_pick 1 end Object longtable_1_4 editor_folder wall/longtable name longtable face longtable_2.111 no_pick 1 end Object longtable_2_2_1 editor_folder wall/longtable name longtable face longtable_3.111 no_pick 1 end Object longtable_1_1 editor_folder wall/longtable name longtable face longtable_4.111 no_pick 1 end Object longtable_2_1_1 editor_folder wall/longtable name longtable face longtable_5.111 no_pick 1 end Object longtable_2_2_2 editor_folder wall/longtable name longtable face longtable_6.111 no_pick 1 end Object longtable_3_2 editor_folder wall/longtable name longtable face longtable_7.111 no_pick 1 end Object longtable_1_3 editor_folder wall/longtable name longtable face longtable_8.111 no_pick 1 end Object longtable_2_2_4 editor_folder wall/longtable name longtable face longtable_9.111 no_pick 1 end Object longtable_2_1_2 editor_folder wall/longtable name longtable face longtable_A.111 no_pick 1 end Object longtable_3_1 editor_folder wall/longtable name longtable face longtable_B.111 no_pick 1 end Object longtable_2_2_3 editor_folder wall/longtable name longtable face longtable_C.111 no_pick 1 end Object longtable_3_4 editor_folder wall/longtable name longtable face longtable_D.111 no_pick 1 end Object longtable_3_3 editor_folder wall/longtable name longtable face longtable_E.111 no_pick 1 end Object longtable_4 editor_folder wall/longtable name longtable face longtable_F.111 no_pick 1 end Object mine0 editor_folder wall/mine face mine_0.111 blocksview 1 no_pick 1 move_block all end Object mine5 editor_folder wall/mine face mine_1.111 blocksview 1 no_pick 1 move_block all end Object mine6 editor_folder wall/mine face mine_2.111 blocksview 1 no_pick 1 move_block all end Object mine4 editor_folder wall/mine face mine_3.111 blocksview 1 no_pick 1 move_block all end Object mine8 editor_folder wall/mine face mine_4.111 blocksview 1 no_pick 1 move_block all end Object mine3 editor_folder wall/mine face mine_5.111 blocksview 1 no_pick 1 move_block all end Object mine10 editor_folder wall/mine face mine_4.111 blocksview 1 no_pick 1 move_block all end Object mine11 editor_folder wall/mine face mine_5.111 blocksview 1 no_pick 1 move_block all end Object mine7 editor_folder wall/mine face mine_8.111 blocksview 1 no_pick 1 move_block all end Object mine12 editor_folder wall/mine face mine_8.111 blocksview 1 no_pick 1 move_block all end Object mine2 editor_folder wall/mine face mine_A.111 blocksview 1 no_pick 1 move_block all end Object mine13 editor_folder wall/mine face mine_A.111 blocksview 1 no_pick 1 move_block all end Object mine9 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine14 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine16 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine17 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine_nw editor_folder wall/mine face mine_nw.111 blocksview 1 no_pick 1 move_block all end Object mine_ne editor_folder wall/mine face mine_ne.111 blocksview 1 no_pick 1 move_block all end Object mine_se editor_folder wall/mine face mine_se.111 blocksview 1 no_pick 1 move_block all end Object mine_sw editor_folder wall/mine face mine_sw.111 blocksview 1 no_pick 1 move_block all end Object mine_0 editor_folder wall/mine face mine_0.111 blocksview 1 no_pick 1 move_block all end Object mine_1_2 editor_folder wall/mine face mine_1.111 blocksview 1 no_pick 1 move_block all end Object mine_1_4 editor_folder wall/mine face mine_2.111 blocksview 1 no_pick 1 move_block all end Object mine_2_2_1 editor_folder wall/mine face mine_3.111 blocksview 1 no_pick 1 move_block all end Object mine_1_1 editor_folder wall/mine face mine_4.111 blocksview 1 no_pick 1 move_block all end Object mine_2_1_1 editor_folder wall/mine face mine_5.111 blocksview 1 no_pick 1 move_block all end Object mine_2_2_2 editor_folder wall/mine face mine_4.111 blocksview 1 no_pick 1 move_block all end Object mine_3_2 editor_folder wall/mine face mine_5.111 blocksview 1 no_pick 1 move_block all end Object mine_1_3 editor_folder wall/mine face mine_8.111 blocksview 1 no_pick 1 move_block all end Object mine_2_2_4 editor_folder wall/mine face mine_8.111 blocksview 1 no_pick 1 move_block all end Object mine_2_1_2 editor_folder wall/mine face mine_A.111 blocksview 1 no_pick 1 move_block all end Object mine_3_1 editor_folder wall/mine face mine_A.111 blocksview 1 no_pick 1 move_block all end Object mine_2_2_3 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine_3_4 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine_3_3 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine_4 editor_folder wall/mine face mine_C.111 blocksview 1 no_pick 1 move_block all end Object mine_secret_1_1 editor_folder wall/mine name secret door type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face minedoor_4.x11 animation mine_secret_1_1 is_animated 0 move_block all blocksview 1 wc 8 maxsp 0 speed 0.35 dam 10 value 1 maxhp 50 hp 50 end More Object mine_secret_1_2 editor_folder wall/mine name secret door x 1 type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face minedoor_4.x11 animation mine_secret_1_2 is_animated 0 move_block all blocksview 1 wc 8 value 1 maxsp 0 speed 0.35 dam 10 maxhp 50 hp 50 end Object mine_secret_2_1 editor_folder wall/mine name secret door type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face minedoor_8.x11 animation mine_secret_2_1 is_animated 0 move_block all blocksview 1 wc 8 maxsp 0 speed 0.35 dam 10 value 1 maxhp 50 hp 50 end More Object mine_secret_2_2 editor_folder wall/mine name secret door y 1 type 26 activate_on_push 1 activate_on_release 1 no_pick 1 face minedoor_8.x11 animation mine_secret_2_2 is_animated 0 move_block all blocksview 1 wc 8 value 1 maxsp 0 speed 0.35 dam 10 maxhp 50 hp 50 end Object moat_0 editor_folder wall/moat name moat face moat_0.111 no_pick 1 move_block all end Object moat_1_2 editor_folder wall/moat name moat face moat_1.111 no_pick 1 move_block all end Object moat_1_4 editor_folder wall/moat name moat face moat_2.111 no_pick 1 move_block all end Object moat_2_2_1 editor_folder wall/moat name moat face moat_3.111 no_pick 1 move_block all end Object moat_1_1 editor_folder wall/moat name moat face moat_4.111 no_pick 1 move_block all end Object moat_2_1_1 editor_folder wall/moat name moat face moat_5.111 no_pick 1 move_block all end Object moat_2_2_2 editor_folder wall/moat name moat face moat_6.111 no_pick 1 move_block all end Object moat_3_2 editor_folder wall/moat name moat face moat_7.111 no_pick 1 move_block all end Object moat_1_3 editor_folder wall/moat name moat face moat_8.111 no_pick 1 move_block all end Object moat_2_2_4 editor_folder wall/moat name moat face moat_9.111 no_pick 1 move_block all end Object moat_2_1_2 editor_folder wall/moat name moat face moat_A.111 no_pick 1 move_block all end Object moat_3_1 editor_folder wall/moat name moat face moat_B.111 no_pick 1 move_block all end Object moat_2_2_3 editor_folder wall/moat name moat face moat_C.111 no_pick 1 move_block all end Object moat_3_4 editor_folder wall/moat name moat face moat_D.111 no_pick 1 move_block all end Object moat_3_3 editor_folder wall/moat name moat face moat_E.111 no_pick 1 move_block all end Object moat_4 editor_folder wall/moat name moat face moat_F.111 no_pick 1 move_block all end Object pier_0 editor_folder wall/pier name pier move_allow walk move_block boat face pier_0.111 no_pick 1 end Object pier_1_2 editor_folder wall/pier name pier move_allow walk move_block boat face pier_1.111 no_pick 1 end Object pier_1_4 editor_folder wall/pier name pier move_allow walk move_block boat face pier_2.111 no_pick 1 end Object pier_2_2_1 editor_folder wall/pier name pier move_allow walk move_block boat face pier_3.111 no_pick 1 end Object pier_1_1 editor_folder wall/pier name pier move_allow walk move_block boat face pier_4.111 no_pick 1 end Object pier_2_1_1 editor_folder wall/pier name pier move_allow walk move_block boat face pier_5.111 no_pick 1 end Object pier_2_2_2 editor_folder wall/pier name pier move_allow walk move_block boat face pier_6.111 no_pick 1 end Object pier_3_2 editor_folder wall/pier name pier move_allow walk move_block boat face pier_7.111 no_pick 1 end Object pier_1_3 editor_folder wall/pier name pier move_allow walk move_block boat face pier_8.111 no_pick 1 end Object pier_2_2_4 editor_folder wall/pier name pier move_allow walk move_block boat face pier_9.111 no_pick 1 end Object pier_2_1_2 editor_folder wall/pier name pier move_allow walk move_block boat face pier_A.111 no_pick 1 end Object pier_3_1 editor_folder wall/pier name pier move_allow walk move_block boat face pier_B.111 no_pick 1 end Object pier_2_2_3 editor_folder wall/pier name pier move_allow walk move_block boat face pier_C.111 no_pick 1 end Object pier_3_4 editor_folder wall/pier name pier move_allow walk move_block boat face pier_D.111 no_pick 1 end Object pier_3_3 editor_folder wall/pier name pier move_allow walk move_block boat face pier_E.111 no_pick 1 end Object pier_4 editor_folder wall/pier name pier move_allow walk move_block boat face pier_F.111 no_pick 1 end Object rough_wall_0 editor_folder wall/rough name wall face rough_0.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_1_2 editor_folder wall/rough name wall face rough_1.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_1_4 editor_folder wall/rough name wall face rough_2.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_2_2_1 editor_folder wall/rough name wall face rough_3.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_1_1 editor_folder wall/rough name wall face rough_4.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_2_1_1 editor_folder wall/rough name wall face rough_5.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_2_2_2 editor_folder wall/rough name wall face rough_6.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_3_2 editor_folder wall/rough name wall face rough_7.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_1_3 editor_folder wall/rough name wall face rough_8.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_2_2_4 editor_folder wall/rough name wall face rough_9.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_2_1_2 editor_folder wall/rough name wall face rough_A.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_3_1 editor_folder wall/rough name wall face rough_B.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_2_2_3 editor_folder wall/rough name wall face rough_C.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_3_4 editor_folder wall/rough name wall face rough_D.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_3_3 editor_folder wall/rough name wall face rough_E.111 move_block all no_pick 1 blocksview 1 end Object rough_wall_4 editor_folder wall/rough name wall face rough_F.111 move_block all no_pick 1 blocksview 1 end Object roughwall_0 editor_folder wall/rough name wall face rough_0.111 move_block all no_pick 1 blocksview 1 end Object roughwall_1_2 editor_folder wall/rough name wall face rough_1.111 move_block all no_pick 1 blocksview 1 end Object roughwall_1_4 editor_folder wall/rough name wall face rough_2.111 move_block all no_pick 1 blocksview 1 end Object roughwall_2_2_1 editor_folder wall/rough name wall face rough_3.111 move_block all no_pick 1 blocksview 1 end Object roughwall_1_1 editor_folder wall/rough name wall face rough_4.111 move_block all no_pick 1 blocksview 1 end Object roughwall_2_1_1 editor_folder wall/rough name wall face rough_5.111 move_block all no_pick 1 blocksview 1 end Object roughwall_2_2_2 editor_folder wall/rough name wall face rough_6.111 move_block all no_pick 1 blocksview 1 end Object roughwall_3_2 editor_folder wall/rough name wall face rough_7.111 move_block all no_pick 1 blocksview 1 end Object roughwall_1_3 editor_folder wall/rough name wall face rough_8.111 move_block all no_pick 1 blocksview 1 end Object roughwall_2_2_4 editor_folder wall/rough name wall face rough_9.111 move_block all no_pick 1 blocksview 1 end Object roughwall_2_1_2 editor_folder wall/rough name wall face rough_A.111 move_block all no_pick 1 blocksview 1 end Object roughwall_3_1 editor_folder wall/rough name wall face rough_B.111 move_block all no_pick 1 blocksview 1 end Object roughwall_2_2_3 editor_folder wall/rough name wall face rough_C.111 move_block all no_pick 1 blocksview 1 end Object roughwall_3_4 editor_folder wall/rough name wall face rough_D.111 move_block all no_pick 1 blocksview 1 end Object roughwall_3_3 editor_folder wall/rough name wall face rough_E.111 move_block all no_pick 1 blocksview 1 end Object roughwall_4 editor_folder wall/rough name wall face rough_F.111 move_block all no_pick 1 blocksview 1 end Object dlevel_0 editor_folder wall/slevel name depression face dlevel_0.111 no_pick 1 end Object dlevel_1_2 editor_folder wall/slevel name depression face dlevel_1.111 no_pick 1 end Object dlevel_1_4 editor_folder wall/slevel name depression face dlevel_2.111 no_pick 1 end Object dlevel_2_2_1 editor_folder wall/slevel name depression face dlevel_3.111 no_pick 1 end Object dlevel_1_1 editor_folder wall/slevel name depression face dlevel_4.111 no_pick 1 end Object dlevel_2_1_1 editor_folder wall/slevel name depression face dlevel_5.111 no_pick 1 end Object dlevel_2_2_2 editor_folder wall/slevel name depression face dlevel_6.111 no_pick 1 end Object dlevel_3_2 editor_folder wall/slevel name depression face dlevel_7.111 no_pick 1 end Object dlevel_1_3 editor_folder wall/slevel name depression face dlevel_8.111 no_pick 1 end Object dlevel_2_2_4 editor_folder wall/slevel name depression face dlevel_9.111 no_pick 1 end Object dlevel_2_1_2 editor_folder wall/slevel name depression face dlevel_A.111 no_pick 1 end Object dlevel_3_1 editor_folder wall/slevel name depression face dlevel_B.111 no_pick 1 end Object dlevel_2_2_3 editor_folder wall/slevel name depression face dlevel_C.111 no_pick 1 end Object dlevel_3_4 editor_folder wall/slevel name depression face dlevel_D.111 no_pick 1 end Object dlevel_3_3 editor_folder wall/slevel name depression face dlevel_E.111 no_pick 1 end Object dlevel_4 editor_folder wall/slevel name depression face slevel_F.111 no_pick 1 end Object dlevel_Bse editor_folder wall/slevel name depression face dlevel_Bse.111 no_pick 1 end Object dlevel_Dse editor_folder wall/slevel name depression face dlevel_Dse.111 no_pick 1 end Object dlevel_se editor_folder wall/slevel name depression face dlevel_se.111 no_pick 1 end Object dlevel_seB editor_folder wall/slevel name depression face dlevel_seB.111 no_pick 1 end Object dlevel_seD editor_folder wall/slevel name depression face dlevel_seD.111 no_pick 1 end Object dlevel_sese editor_folder wall/slevel name depression face dlevel_sese.111 no_pick 1 end Object dlevel_7sw editor_folder wall/slevel name depression face dlevel_7sw.111 no_pick 1 end Object dlevel_Bsw editor_folder wall/slevel name depression face dlevel_Bsw.111 no_pick 1 end Object dlevel_sw editor_folder wall/slevel name depression face dlevel_sw.111 no_pick 1 end Object dlevel_sw7 editor_folder wall/slevel name depression face dlevel_sw7.111 no_pick 1 end Object dlevel_swB editor_folder wall/slevel name depression face dlevel_swB.111 no_pick 1 end Object dlevel_swsw editor_folder wall/slevel name depression face dlevel_swsw.111 no_pick 1 end Object slevel_0 editor_folder wall/slevel name elevation face slevel_0.111 no_pick 1 end Object slevel_1_2 editor_folder wall/slevel name elevation face slevel_1.111 no_pick 1 end Object slevel_1_4 editor_folder wall/slevel name elevation face slevel_2.111 no_pick 1 end Object slevel_2_2_1 editor_folder wall/slevel name elevation face slevel_3.111 no_pick 1 end Object slevel_1_1 editor_folder wall/slevel name elevation face slevel_4.111 no_pick 1 end Object slevel_2_1_1 editor_folder wall/slevel name elevation face slevel_5.111 no_pick 1 end Object slevel_2_2_2 editor_folder wall/slevel name elevation face slevel_6.111 no_pick 1 end Object slevel_3_2 editor_folder wall/slevel name elevation face slevel_7.111 no_pick 1 end Object slevel_1_3 editor_folder wall/slevel name elevation face slevel_8.111 no_pick 1 end Object slevel_2_2_4 editor_folder wall/slevel name elevation face slevel_9.111 no_pick 1 end Object slevel_2_1_2 editor_folder wall/slevel name elevation face slevel_A.111 no_pick 1 end Object slevel_3_1 editor_folder wall/slevel name elevation face slevel_B.111 no_pick 1 end Object slevel_2_2_3 editor_folder wall/slevel name elevation face slevel_C.111 no_pick 1 end Object slevel_3_4 editor_folder wall/slevel name elevation face slevel_D.111 no_pick 1 end Object slevel_3_3 editor_folder wall/slevel name elevation face slevel_E.111 no_pick 1 end Object slevel_4 editor_folder wall/slevel name elevation face slevel_F.111 no_pick 1 end Object snowstorm_0 editor_folder wall level 10 type 62 activate_on_push 1 activate_on_release 1 face icestorm.113 speed -0.02 ac 3 exp 50 resist_cold 100 blocksview 0 invisible 1 sp 0 arch spell_icestorm end end Object speedballwall editor_folder wall/speedbwall other_arch spell_small_speedball name speedball wall type 62 activate_on_push 1 activate_on_release 1 level 1 face speedbwall.111 animation speedballwall dam 56 speed -0.03 no_pick 1 move_block all blocksview 1 end Object stwall_0 editor_folder wall/stwall name wall face stwall_0.111 blocksview 1 no_pick 1 move_block all end Object stwall_1_2 editor_folder wall/stwall name wall face stwall_1.111 blocksview 1 no_pick 1 move_block all end Object stwall_1_4 editor_folder wall/stwall name wall face stwall_2.111 blocksview 1 no_pick 1 move_block all end Object stwall_door_1_4 editor_folder wall/stwall name doorway face stwall_door_1.111 no_pick 1 end Object stwall_2_2_1 editor_folder wall/stwall name wall face stwall_3.111 blocksview 1 no_pick 1 move_block all end Object stwall_1_1 editor_folder wall/stwall name wall face stwall_4.111 blocksview 1 no_pick 1 move_block all end Object stwall_2_1_1 editor_folder wall/stwall name wall face stwall_5.111 blocksview 1 no_pick 1 move_block all end Object stwall_door_2_1_1 editor_folder wall/stwall name doorway face stwall_door_0.111 no_pick 1 end Object stwall_2_2_2 editor_folder wall/stwall name wall face stwall_6.111 blocksview 1 no_pick 1 move_block all end Object stwall_3_2 editor_folder wall/stwall name wall face stwall_7.111 blocksview 1 no_pick 1 move_block all end Object stwall_1_3 editor_folder wall/stwall name wall face stwall_8.111 blocksview 1 no_pick 1 move_block all end Object stwall_2_2_4 editor_folder wall/stwall name wall face stwall_9.111 blocksview 1 no_pick 1 move_block all end Object stwall_2_1_2 editor_folder wall/stwall name wall face stwall_A.111 blocksview 1 no_pick 1 move_block all end Object stwall_3_1 editor_folder wall/stwall name wall face stwall_B.111 blocksview 1 no_pick 1 move_block all end Object stwall_2_2_3 editor_folder wall/stwall name wall face stwall_C.111 blocksview 1 no_pick 1 move_block all end Object stwall_3_4 editor_folder wall/stwall name wall face stwall_D.111 blocksview 1 no_pick 1 move_block all end Object stwall_3_3 editor_folder wall/stwall name wall face stwall_E.111 blocksview 1 no_pick 1 move_block all end Object stwall_4 editor_folder wall/stwall name wall face stwall_F.111 blocksview 1 no_pick 1 move_block all end Object stwindow_win1 editor_folder wall/stwall name window face stwindow_0.111 move_block all no_pick 1 end Object stwindow_win2 editor_folder wall/stwall name window face stwindow_1.111 move_block all no_pick 1 end Object swall_0 editor_folder wall/swall name fence face swall_0.111 no_pick 1 move_block all end Object swall_1_2 editor_folder wall/swall name fence face swall_1.111 no_pick 1 move_block all end Object swall_1_2_half editor_folder wall/swall name fence face swall_1_half.111 no_pick 1 move_block all end Object swall_1_4 editor_folder wall/swall name fence face swall_2.111 no_pick 1 move_block all end Object swall_1_4_half editor_folder wall/swall name fence face swall_2_half.111 no_pick 1 move_block all end Object swall_2_2_1 editor_folder wall/swall name fence face swall_3.111 no_pick 1 move_block all end Object swall_1_1 editor_folder wall/swall name fence face swall_4.111 no_pick 1 move_block all end Object swall_1_1_half editor_folder wall/swall name fence face swall_4_half.111 no_pick 1 move_block all end Object swall_2_1_1 editor_folder wall/swall name fence face swall_5.111 no_pick 1 move_block all end Object swall_2_2_2 editor_folder wall/swall name fence face swall_6.111 no_pick 1 move_block all end Object swall_3_2 editor_folder wall/swall name fence face swall_7.111 no_pick 1 move_block all end Object swall_1_3 editor_folder wall/swall name fence face swall_8.111 no_pick 1 move_block all end Object swall_1_3_half editor_folder wall/swall name fence face swall_8_half.111 no_pick 1 move_block all end Object swall_2_2_4 editor_folder wall/swall name fence face swall_9.111 no_pick 1 move_block all end Object swall_2_1_2 editor_folder wall/swall name fence face swall_A.111 no_pick 1 move_block all end Object swall_3_1 editor_folder wall/swall name fence face swall_B.111 no_pick 1 move_block all end Object swall_2_2_3 editor_folder wall/swall name fence face swall_C.111 no_pick 1 move_block all end Object swall_3_4 editor_folder wall/swall name fence face swall_D.111 no_pick 1 move_block all end Object swall_3_3 editor_folder wall/swall name fence face swall_E.111 no_pick 1 move_block all end Object swall_4 editor_folder wall/swall name fence face swall_F.111 no_pick 1 move_block all end Object timberwall_0 editor_folder wall/timberwall name wall face timberwall_0.111 move_block all no_pick 1 blocksview 1 end Object timberwall_1_2 editor_folder wall/timberwall name wall face timberwall_1.111 move_block all no_pick 1 blocksview 1 end Object timberwall_1_4 editor_folder wall/timberwall name wall face timberwall_2.111 move_block all no_pick 1 blocksview 1 end Object timberwall_2_2_1 editor_folder wall/timberwall name wall face timberwall_3.111 move_block all no_pick 1 blocksview 1 end Object timberwall_1_1 editor_folder wall/timberwall name wall face timberwall_4.111 move_block all no_pick 1 blocksview 1 end Object timberwall_2_1_1 editor_folder wall/timberwall name wall face timberwall_5.111 move_block all no_pick 1 blocksview 1 end Object timberwall_2_2_2 editor_folder wall/timberwall name wall face timberwall_6.111 move_block all no_pick 1 blocksview 1 end Object timberwall_3_2 editor_folder wall/timberwall name wall face timberwall_7.111 move_block all no_pick 1 blocksview 1 end Object timberwall_1_3 editor_folder wall/timberwall name wall face timberwall_8.111 move_block all no_pick 1 blocksview 1 end Object timberwall_2_2_4 editor_folder wall/timberwall name wall face timberwall_9.111 move_block all no_pick 1 blocksview 1 end Object timberwall_2_1_2 editor_folder wall/timberwall name wall face timberwall_A.111 move_block all no_pick 1 blocksview 1 end Object timberwall_3_1 editor_folder wall/timberwall name wall face timberwall_B.111 move_block all no_pick 1 blocksview 1 end Object timberwall_2_2_3 editor_folder wall/timberwall name wall face timberwall_C.111 move_block all no_pick 1 blocksview 1 end Object timberwall_3_4 editor_folder wall/timberwall name wall face timberwall_D.111 move_block all no_pick 1 blocksview 1 end Object timberwall_3_3 editor_folder wall/timberwall name wall face timberwall_E.111 move_block all no_pick 1 blocksview 1 end Object timberwall_4 editor_folder wall/timberwall name wall face timberwall_F.111 move_block all no_pick 1 blocksview 1 end Object wall_0 editor_folder wall/wall name wall face wall_0.111 blocksview 1 no_pick 1 move_block all end Object wall_1_2 editor_folder wall/wall name wall face wall_1.111 blocksview 1 no_pick 1 move_block all end Object wall_1_4 editor_folder wall/wall name wall face wall_2.111 blocksview 1 no_pick 1 move_block all end Object wall_door_1_4 editor_folder wall/wall name doorway face wall_door_1.111 no_pick 1 end Object wall_2_2_1 editor_folder wall/wall name wall face wall_3.111 blocksview 1 no_pick 1 move_block all end Object wall_1_1 editor_folder wall/wall name wall face wall_4.111 blocksview 1 no_pick 1 move_block all end Object wall_2_1_1 editor_folder wall/wall name wall face wall_5.111 blocksview 1 no_pick 1 move_block all end Object wall_door_2_1_1 editor_folder wall/wall name doorway face wall_door_0.111 no_pick 1 end Object wall_2_2_2 editor_folder wall/wall name wall face wall_6.111 blocksview 1 no_pick 1 move_block all end Object wall_3_2 editor_folder wall/wall name wall face wall_7.111 blocksview 1 no_pick 1 move_block all end Object wall_1_3 editor_folder wall/wall name wall face wall_8.111 blocksview 1 no_pick 1 move_block all end Object wall_2_2_4 editor_folder wall/wall name wall face wall_9.111 blocksview 1 no_pick 1 move_block all end Object wall_2_1_2 editor_folder wall/wall name wall face wall_A.111 blocksview 1 no_pick 1 move_block all end Object wall_middle editor_folder wall/wall name wall middle face wall_AA.111 blocksview 1 no_pick 1 move_block all end Object wall_3_1 editor_folder wall/wall name wall face wall_B.111 blocksview 1 no_pick 1 move_block all end Object wall_2_2_3 editor_folder wall/wall name wall face wall_C.111 blocksview 1 no_pick 1 move_block all end Object wall_3_4 editor_folder wall/wall name wall face wall_D.111 blocksview 1 no_pick 1 move_block all end Object wall_3_3 editor_folder wall/wall name wall face wall_E.111 blocksview 1 no_pick 1 move_block all end Object wall_4 editor_folder wall/wall name wall face wall_F.111 blocksview 1 no_pick 1 move_block all end Object wall_1_2_ruin editor_folder wall/wall name crumbled wall face wall_1_ruin.111 blocksview 1 no_pick 1 move_block all end Object wall_1_4_ruin editor_folder wall/wall name crumbled wall face wall_2_ruin.111 blocksview 1 no_pick 1 move_block all end Object wall_1_1_ruin editor_folder wall/wall name crumbled wall face wall_4_ruin.111 blocksview 1 no_pick 1 move_block all end Object wall_1_3_ruin editor_folder wall/wall name crumbled wall face wall_8_ruin.111 blocksview 1 no_pick 1 move_block all end Object wall_1_short editor_folder wall/wall name short wall 1 face wall_1_short.111 blocksview 1 no_pick 1 move_block all end Object wall_2_short editor_folder wall/wall name short wall 2 face wall_2_short.111 blocksview 1 no_pick 1 move_block all end Object wall_4_short editor_folder wall/wall name short wall 4 face wall_4_short.111 blocksview 1 no_pick 1 move_block all end Object wall_55 editor_folder wall/wall name short wall 55 face wall_55.111 blocksview 1 no_pick 1 move_block all end Object wall_8_short editor_folder wall/wall name short wall 8 face wall_8_short.111 blocksview 1 no_pick 1 move_block all end Object wall_large_door1 editor_folder wall/wall name large door move_block 0 face wall_large_door.111 type 23 material 2 no_pick 1 end More Object wall_large_door2 editor_folder wall/wall name large door move_block 0 face wall_large_door.111 type 23 material 2 no_pick 1 x 1 end Object window_win1 editor_folder wall/wall name window face window_0.111 move_block all no_pick 1 end Object window_win2 editor_folder wall/wall name window face window_1.111 move_block all no_pick 1 end Object white_wall_0 editor_folder wall/white name wall face white_wall_0.111 move_block all no_pick 1 blocksview 1 end Object white_wall_1_2 editor_folder wall/white name wall face white_wall_1.111 move_block all no_pick 1 blocksview 1 end Object white_wall_1_4 editor_folder wall/white name wall face white_wall_2.111 move_block all no_pick 1 blocksview 1 end Object white_wall_2_2_1 editor_folder wall/white name wall face white_wall_3.111 move_block all no_pick 1 blocksview 1 end Object white_wall_1_1 editor_folder wall/white name wall face white_wall_4.111 move_block all no_pick 1 blocksview 1 end Object white_wall_2_1_1 editor_folder wall/white name wall face white_wall_5.111 move_block all no_pick 1 blocksview 1 end Object white_wall_2_2_2 editor_folder wall/white name wall face white_wall_6.111 move_block all no_pick 1 blocksview 1 end Object white_wall_3_2 editor_folder wall/white name wall face white_wall_7.111 move_block all no_pick 1 blocksview 1 end Object white_wall_1_3 editor_folder wall/white name wall face white_wall_8.111 move_block all no_pick 1 blocksview 1 end Object white_wall_2_2_4 editor_folder wall/white name wall face white_wall_9.111 move_block all no_pick 1 blocksview 1 end Object white_wall_2_1_2 editor_folder wall/white name wall face white_wall_A.111 move_block all no_pick 1 blocksview 1 end Object white_wall_3_1 editor_folder wall/white name wall face white_wall_B.111 move_block all no_pick 1 blocksview 1 end Object white_wall_2_2_3 editor_folder wall/white name wall face white_wall_C.111 move_block all no_pick 1 blocksview 1 end Object white_wall_3_4 editor_folder wall/white name wall face white_wall_D.111 move_block all no_pick 1 blocksview 1 end Object white_wall_3_3 editor_folder wall/white name wall face white_wall_E.111 move_block all no_pick 1 blocksview 1 end Object white_wall_4 editor_folder wall/white name wall face white_wall_F.111 move_block all no_pick 1 blocksview 1 end Object white_wall_left editor_folder wall/white name wall face white_wall_left.111 no_pick 1 end Object white_wall_right editor_folder wall/white name wall face white_wall_right.111 no_pick 1 end Object white_wall_bottom editor_folder wall/white name wall face white_wall_bottom.111 no_pick 1 end Object white_wall_win1 editor_folder wall/white name window face white_window_0.111 move_block all no_pick 1 end Object white_wall_win2 editor_folder wall/white name window face white_window_1.111 move_block all no_pick 1 end Object woodwall_0 editor_folder wall/woodwall name wall face woodwall_0.111 move_block all no_pick 1 blocksview 1 end Object woodwall_1_2 editor_folder wall/woodwall name wall face woodwall_1.111 move_block all no_pick 1 blocksview 1 end Object woodwall_1_4 editor_folder wall/woodwall name wall face woodwall_2.111 move_block all no_pick 1 blocksview 1 end Object woodwall_2_2_1 editor_folder wall/woodwall name wall face woodwall_3.111 move_block all no_pick 1 blocksview 1 end Object woodwall_1_1 editor_folder wall/woodwall name wall face woodwall_4.111 move_block all no_pick 1 blocksview 1 end Object woodwall_2_1_1 editor_folder wall/woodwall name wall face woodwall_5.111 move_block all no_pick 1 blocksview 1 end Object woodwall_2_2_2 editor_folder wall/woodwall name wall face woodwall_6.111 move_block all no_pick 1 blocksview 1 end Object woodwall_3_2 editor_folder wall/woodwall name wall face woodwall_7.111 move_block all no_pick 1 blocksview 1 end Object woodwall_1_3 editor_folder wall/woodwall name wall face woodwall_8.111 move_block all no_pick 1 blocksview 1 end Object woodwall_2_2_4 editor_folder wall/woodwall name wall face woodwall_9.111 move_block all no_pick 1 blocksview 1 end Object woodwall_2_1_2 editor_folder wall/woodwall name wall face woodwall_A.111 move_block all no_pick 1 blocksview 1 end Object woodwall_3_1 editor_folder wall/woodwall name wall face woodwall_B.111 move_block all no_pick 1 blocksview 1 end Object woodwall_2_2_3 editor_folder wall/woodwall name wall face woodwall_C.111 move_block all no_pick 1 blocksview 1 end Object woodwall_3_4 editor_folder wall/woodwall name wall face woodwall_D.111 move_block all no_pick 1 blocksview 1 end Object woodwall_3_3 editor_folder wall/woodwall name wall face woodwall_E.111 move_block all no_pick 1 blocksview 1 end Object woodwall_4 editor_folder wall/woodwall name wall face woodwall_F.111 move_block all no_pick 1 blocksview 1 end Object woodwall_win1 editor_folder wall/woodwall name window face woodwindow_0.111 move_block all no_pick 1 end Object woodwall_win2 editor_folder wall/woodwall name window face woodwindow_1.111 move_block all no_pick 1 end Object wwall_0 editor_folder wall/wwall name wall face wwall_0.111 move_block all no_pick 1 blocksview 1 end Object wwall_1_2 editor_folder wall/wwall name wall face wwall_1.111 move_block all no_pick 1 blocksview 1 end Object wwall_1_4 editor_folder wall/wwall name wall face wwall_2.111 move_block all no_pick 1 blocksview 1 end Object wwall_2_2_1 editor_folder wall/wwall name wall face wwall_3.111 move_block all no_pick 1 blocksview 1 end Object wwall_1_1 editor_folder wall/wwall name wall face wwall_4.111 move_block all no_pick 1 blocksview 1 end Object wwall_2_1_1 editor_folder wall/wwall name wall face wwall_5.111 move_block all no_pick 1 blocksview 1 end Object wwall_2_2_2 editor_folder wall/wwall name wall face wwall_6.111 move_block all no_pick 1 blocksview 1 end Object wwall_3_2 editor_folder wall/wwall name wall face wwall_7.111 move_block all no_pick 1 blocksview 1 end Object wwall_1_3 editor_folder wall/wwall name wall face wwall_8.111 move_block all no_pick 1 blocksview 1 end Object wwall_2_2_4 editor_folder wall/wwall name wall face wwall_9.111 move_block all no_pick 1 blocksview 1 end Object wwall_2_1_2 editor_folder wall/wwall name wall face wwall_A.111 move_block all no_pick 1 blocksview 1 end Object wwall_3_1 editor_folder wall/wwall name wall face wwall_B.111 move_block all no_pick 1 blocksview 1 end Object wwall_2_2_3 editor_folder wall/wwall name wall face wwall_C.111 move_block all no_pick 1 blocksview 1 end Object wwall_3_4 editor_folder wall/wwall name wall face wwall_D.111 move_block all no_pick 1 blocksview 1 end Object wwall_3_3 editor_folder wall/wwall name wall face wwall_E.111 move_block all no_pick 1 blocksview 1 end Object wwall_4 editor_folder wall/wwall name wall face wwall_F.111 move_block all no_pick 1 blocksview 1 end Object wwall_left editor_folder wall/wwall name wall face wwall_left.111 no_pick 1 end Object wwall_right editor_folder wall/wwall name wall face wwall_right.111 no_pick 1 end Object wwall_weak_1 editor_folder wall/wwall name wall face wwall_w_0.111 animation wwall_weak_1 is_animated 0 tear_down 1 hp 200 maxhp 200 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object wwall_weak_2 editor_folder wall/wwall name wall face wwall_w_1.111 animation wwall_weak_2 is_animated 0 tear_down 1 hp 200 maxhp 200 ac 30 resist_magic 100 resist_fire 100 resist_electricity 100 resist_cold 100 resist_confusion 100 resist_acid 100 resist_drain 100 move_block all no_pick 1 blocksview 1 alive 1 level 1 end Object wwall_win1 editor_folder wall/wwall name window face wwindow_0.111 move_block all no_pick 1 end Object wwall_win2 editor_folder wall/wwall name window face wwindow_1.111 move_block all no_pick 1 end Object CSword editor_folder weapon/artifact/ChaosSword name Chaos Sword anim_suffix sword nrof 1 last_sp 3 type 15 face CSword.113 animation CSword anim_speed 3 client_anim_random 1 material 2 weight 20000 Str 1 Con 1 Dex 1 Wis 1 Int 1 Cha 1 hp -5 sp -4 luck -3 xrays 1 dam 100 magic 10 resist_acid 75 resist_magic 30 resist_fire 30 resist_electricity 30 resist_cold 30 resist_confusion -50 attacktype 262145 weapontype 1 path_denied 2304 value 1000000 name_pl Chaos Swords client_type 100 body_arm -1 item_power 15 skill one handed weapons end Object darkblade editor_folder weapon/artifact/Darkblade name Darkblade anim_suffix sword nrof 1 type 15 face darkblade.111 animation darkblade anim_speed 5 client_anim_random 1 Cha -1 Con 2 hp 1 attacktype 256 weapontype 1 resist_poison 30 resist_drain 100 weight 20000 last_sp 7 dam 10 magic 4 value 143000 name_pl Darkblades client_type 100 body_arm -1 skill one handed weapons item_power 15 end Object demonbane editor_folder weapon/artifact/Demonbane name Demonbane name_pl Demonbanes anim_suffix double_sword nrof 1 last_sp 9 type 15 face demonbane.111 animation demonbane anim_speed 5 client_anim_random 1 material 2 dam 11 magic 3 weight 32000 value 90000 slaying demon resist_fire 30 attacktype 1 weapontype 1 client_type 100 body_arm -2 skill two handed weapons item_power 7 end Object dagger_f editor_folder weapon/artifact/Fdagger name dagger of fortune name_pl daggers of fortune face dagger_f.111 animation dagger_f anim_speed 5 client_anim_random 1 Cha 4 dam 2 luck 3 nrof 1 type 15 attacktype 1 weapontype 2 material 256 materialname glacium value 50000 weight 2000 last_sp 5 client_type 100 body_arm -1 skill one handed weapons item_power 5 end Object frost_hammer editor_folder weapon/artifact/Fhammer name Frost Hammer nrof 1 last_sp 8 type 15 weapontype 7 face frost_hammer.111 animation frost_hammer anim_speed 2 client_anim_random 1 material 256 materialname glacium dam 10 value 90000 weight 30000 magic 3 resist_cold 30 attacktype 18 Pow 3 name_pl Frost Hammers client_type 100 body_arm -2 skill two handed weapons item_power 10 end Object lamestar editor_folder weapon/artifact/Firestar name Firestar anim_suffix double_sword nrof 1 animation lamestar weapontype 7 anim_speed 5 client_anim_random 1 type 15 last_sp 9 face firestar.111 material 2 magic 3 dam 23 attacktype 5 value 400000 weight 40000 name_pl Firestars client_type 100 body_arm -2 skill two handed weapons end Object firestar editor_folder weapon/artifact/Firestar name Firestar anim_suffix double_sword nrof 1 title named Fearless animation firestar weapontype 7 anim_speed 3 client_anim_random 1 type 15 last_sp 9 face firestar.111 material 2 magic 6 dam 35 attacktype 261 resist_fire 30 resist_drain 100 resist_fear 100 value 400000 weight 40000 name_pl Firestars client_type 100 body_arm -2 skill two handed weapons item_power 25 end Object gram editor_folder weapon/artifact/Gram name Gram anim_suffix double_sword nrof 1 last_sp 15 type 15 face gram.111 animation gram anim_speed 10 client_anim_random 1 material 2 dam 18 exp 1 magic 3 weight 30000 value 80000 attacktype 33 weapontype 1 resist_ghosthit 30 resist_fear 30 luck 1 name_pl Grams client_type 100 body_arm -2 skill two handed weapons item_power 10 end Object holy_avenger editor_folder weapon/artifact/HolyAvenger name Holy Avenger anim_suffix double_sword nrof 1 face holyave.111 animation holy_avenger anim_speed 5 client_anim_random 1 last_sp 9 dam 15 type 15 magic 5 Str 1 Wis 2 Cha 2 attacktype 4194560 weapontype 1 resist_magic 30 resist_drain 100 weight 25000 value 220000 name_pl Holy Avengers client_type 100 body_arm -2 skill two handed weapons item_power 25 end Object k_dagger editor_folder weapon/artifact/Kdagger name Kobold Dagger nrof 1 slaying troll face k_dagger.111 dam 6 speed 0.100000 type 15 attacktype 1 weapontype 2 material 2 value 60000 weight 6000 magic 3 last_sp 2 name_pl Kobold Daggers client_type 100 body_arm -1 skill one handed weapons item_power 4 end Object lava_s editor_folder weapon/artifact/Lslasher name Lava Slasher anim_suffix double_sword nrof 1 face lava_s.111 animation lava_s Str 2 Con 2 dam 30 anim_speed 4 client_anim_random 1 type 15 resist_cold 75 attacktype 5 weapontype 1 material 256 materialname magmasium value 220000 weight 25000 magic 3 last_sp 9 name_pl Lava Slashers client_type 100 body_arm -2 skill two handed weapons item_power 15 end Object masamune editor_folder weapon/artifact/Masamune name Katana of Masamune nrof 1 type 15 face masamune.111 animation masamune anim_speed 5 client_anim_random 1 slaying undead last_sp 3 Str 2 Dex 2 Con 2 Wis 1 dam 25 resist_drain 100 resist_ghosthit 100 resist_deplete 30 weight 9000 value 220000 attacktype 257 weapontype 4 material 2 magic 3 name_pl Katanas of Masamune client_type 100 body_arm -1 skill one handed weapons item_power 40 end Object sting editor_folder weapon/artifact/Sting name Sting nrof 1 last_sp 6 type 15 face sting.111 animation sting anim_speed 10 client_anim_random 1 material 2 dam 5 magic 3 weight 6000 value 42000 slaying troll attacktype 1 weapontype 2 name_pl Stings client_type 100 body_arm -1 skill one handed weapons item_power 4 end Object uw_sword editor_folder weapon/artifact/UW_Sword name Belzebub's sword anim_suffix double_sword nrof 1 last_sp 7 dam 17 slaying angel Con 2 Int 1 material 256 materialname abyssium sp 1 type 15 face uw_sword.111 resist_confusion 100 resist_drain 100 resist_magic 30 magic 5 weight 30000 attacktype 65 weapontype 1 value 175000 anim_speed 10 client_anim_random 1 animation uw_sword name_pl Belzebub's swords client_type 100 body_arm -2 skill two handed weapons item_power 40 end Object uk_sd editor_folder weapon/artifact/Usword name Unknown Sword anim_suffix double_sword nrof 1 last_sp 6 type 15 face uk_sd.111 animation uk_sd anim_speed 2 client_anim_random 1 material 2 Str 2 Dex 2 dam 40 weight 111000 value 1000000 attacktype 1 weapontype 1 name_pl Unknown Swords client_type 100 body_arm -2 skill two handed weapons end Object bonecrusher editor_folder weapon/artifact name Bonecrusher nrof 1 slaying skeleton face bonecrush.111 type 15 last_sp 15 weight 150000 value 70000 magic 3 dam 50 material 64 attacktype 1 weapontype 7 name_pl Bonecrushers client_type 100 body_arm -2 skill two handed weapons item_power 4 end Object deathbringer editor_folder weapon/artifact name Deathbringer anim_suffix double_sword nrof 1 last_sp 9 type 15 face deathbring.111 material 2 dam 15 weight 30000 value 55000 magic 3 attacktype 65537 weapontype 1 name_pl Deathbringers client_type 100 body_arm -2 skill two handed weapons end Object defender editor_folder weapon/artifact name Defender anim_suffix double_sword nrof 1 last_sp 8 ac -1 type 15 face defender.111 material 2 dam 8 weight 20000 resist_drain 50 resist_physical 50 magic 3 value 150000 attacktype 1 weapontype 1 name_pl Defenders client_type 100 body_arm -1 skill one handed weapons item_power 5 end Object dragonslayer editor_folder weapon/artifact name Dragonslayer anim_suffix double_sword nrof 1 last_sp 9 type 15 face dragonslay.111 material 2 dam 11 weight 35000 value 85000 magic 3 slaying dragon resist_fire 30 attacktype 1 weapontype 1 name_pl Dragonslayers client_type 100 body_arm -2 skill two handed weapons item_power 7 end Object excalibur editor_folder weapon/artifact name Excalibur anim_suffix double_sword nrof 1 last_sp 7 Str 1 Cha 2 type 15 face excalibur.111 material 2 dam 12 magic 5 weight 25000 value 220000 resist_magic 30 resist_drain 100 attacktype 256 weapontype 1 name_pl Excaliburs client_type 100 body_arm -2 skill two handed weapons item_power 15 end Object firebrand editor_folder weapon/artifact name Firebrand anim_suffix double_sword nrof 1 last_sp 8 type 15 face firebrand.111 animation firebrand anim_speed 4 client_anim_random 1 material 2 dam 9 weight 22000 value 75000 magic 3 resist_cold 30 attacktype 4 weapontype 1 name_pl Firebrands client_type 100 body_arm -2 skill two handed weapons item_power 5 end Object frostbrand editor_folder weapon/artifact name Frostbrand anim_suffix double_sword nrof 1 last_sp 8 type 15 face frostbrand.111 material 2 dam 9 weight 22000 value 85000 magic 3 resist_fire 30 attacktype 16 weapontype 1 name_pl Frostbrands client_type 100 body_arm -2 skill two handed weapons item_power 5 end Object harakiri editor_folder weapon/artifact name Harakiri sword anim_suffix double_sword nrof 1 last_sp 6 type 15 face harakiri.111 material 2 Str 1 Dex 1 dam 30 weight 5000 value 1000000 attacktype 1 weapontype 1 name_pl Harakiri swords client_type 100 body_arm -1 skill one handed weapons end Object magi_staff editor_folder weapon/artifact name Staff of the Magi nrof 1 type 15 face magi_staff.111 animation magi_staff anim_speed 5 client_anim_random 1 material 16 weapontype 8 resist_magic 30 Int 1 Pow 1 sp 2 attacktype 257 dam 20 wc 5 magic 5 weight 4500 value 500000 name_pl Staves of the Magi client_type 100 body_arm -2 skill two handed weapons item_power 15 end Object mjoellnir editor_folder weapon/artifact name Mjoellnir nrof 1 last_sp 8 type 15 face mjoellnir.111 material 2 weapontype 7 dam 10 weight 30000 value 75000 magic 3 resist_electricity 30 attacktype 8 Str 1 name_pl Mjoellnirs client_type 100 body_arm -2 skill two handed weapons item_power 6 end Object mournblade editor_folder weapon/artifact name Mournblade anim_suffix double_sword nrof 1 last_sp 8 Str 1 sp 1 type 15 face mournblade.111 material 2 dam 9 weight 25000 value 170000 magic 4 resist_magic 30 resist_drain 100 attacktype 384 weapontype 1 name_pl Mournblades client_type 100 body_arm -2 skill two handed weapons item_power 15 end Object skullcleaver editor_folder weapon/artifact name Skullcleaver nrof 1 slaying skull face skullcleav.111 animation skullcleaver anim_speed 10 client_anim_random 1 last_sp 11 type 15 weight 32000 magic 3 dam 20 material 18 value 80000 attacktype 1 weapontype 3 name_pl Skullcleavers client_type 100 body_arm -2 skill two handed weapons item_power 4 end Object stormbringer editor_folder weapon/artifact name Stormbringer anim_suffix double_sword nrof 1 last_sp 8 Str 1 hp 1 type 15 face stormbring.111 material 2 dam 9 weight 25000 value 180000 magic 4 resist_magic 30 resist_electricity 30 resist_drain 100 attacktype 136 weapontype 1 name_pl Stormbringers client_type 100 body_arm -2 skill two handed weapons item_power 20 end Object axe editor_folder weapon/axe nrof 1 last_sp 10 type 15 face axe_1.111 material 18 dam 7 weight 9000 value 20 attacktype 1 weapontype 3 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object axe_2 editor_folder weapon/axe nrof 1 name axe race throwing last_sp 10 type 15 face axe_2.111 material 18 dam 6 weight 6000 value 20 attacktype 1 weapontype 3 is_thrown 1 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object axe_3 editor_folder weapon/axe nrof 1 name axe face axe_3.111 last_sp 10 type 15 material 18 dam 8 weight 12000 value 23 attacktype 1 weapontype 3 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object axe_4 editor_folder weapon/axe nrof 1 name axe face axe_4.111 last_sp 10 type 15 material 18 dam 7 weight 10000 value 19 attacktype 1 weapontype 3 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object axe_5 editor_folder weapon/axe name vicious axe nrof 1 last_sp 12 type 15 face axe_5.111 material 18 dam 13 weight 12000 value 80 attacktype 1 weapontype 3 name_pl vicious axes client_type 106 body_arm -1 skill one handed weapons end Object b_axe1 editor_folder weapon/axe nrof 1 name axe race throwing last_sp 10 type 15 face b_axe1.111 material 18 materialname bronze dam 3 weight 6000 value 5 attacktype 1 weapontype 3 is_thrown 1 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object battle_axe editor_folder weapon/axe name Battle Axe face battle_axe.111 type 15 dam 21 speed 0.001 nrof 1 attacktype 1 weapontype 3 material 18 value 30000 weight 10000 last_sp 8 name_pl Battle Axes client_type 106 body_arm -2 skill two handed weapons end Object brdaxe1 editor_folder weapon/axe nrof 1 name bearded axe race throwing last_sp 9 type 15 face brdaxe_1.111 animation brdaxe1 material 18 dam 6 weight 4000 value 25 attacktype 1 weapontype 3 is_animated 0 is_thrown 1 is_turnable 1 name_pl bearded axes client_type 106 body_arm -1 skill one handed weapons end Object dhaxe1 editor_folder weapon/axe nrof 1 name war axe face dhaxe_1.111 last_sp 9 type 15 material 18 dam 11 weight 10000 value 600 attacktype 1 weapontype 3 name_pl war axes client_type 106 body_arm -1 skill one handed weapons end Object dhaxe2 editor_folder weapon/axe nrof 1 name axe face dhaxe_2.111 last_sp 10 type 15 material 18 dam 10 weight 9660 value 520 can_impale 1 attacktype 1 weapontype 3 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object shaxe1 editor_folder weapon/axe nrof 1 name axe face shaxe_1.111 last_sp 7 type 15 material 18 dam 9 weight 8500 value 515 can_impale 1 attacktype 1 weapontype 3 name_pl axes client_type 106 body_arm -1 skill one handed weapons end Object stoneaxe editor_folder weapon/axe nrof 1 last_sp 11 type 15 face stoneaxe.111 material 80 dam 6 weapontype 7 weight 8500 value 12 attacktype 1 name_pl stoneaxes client_type 106 body_arm -1 skill one handed weapons end Object arrow editor_folder weapon/bow race arrows type 13 face arrow.101 animation arrow is_animated 0 is_turnable 1 nrof 1 weight 25 value 1 material 16 food 20 dam 2 wc 1 attacktype 1 name_pl arrows client_type 159 end Object bolt editor_folder weapon/bow race crossbow bolts type 13 face bolt.101 animation bolt is_animated 0 is_turnable 1 nrof 1 weight 50 value 2 material 2 food 10 dam 3 wc 2 attacktype 1 name_pl bolts client_type 165 end Object bow editor_folder weapon/bow race arrows type 14 nrof 1 material 16 face bow.111 dam 7 weight 12000 value 40 sp 50 no_strength 0 attacktype 1 name_pl bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object compositebow editor_folder weapon/bow name composite bow race arrows type 14 nrof 1 material 16 face compositebow.111 dam 14 weight 3000 value 60 sp 35 no_strength 0 attacktype 1 name_pl composite bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object crossbow editor_folder weapon/bow race crossbow bolts type 14 nrof 1 material 16 face crossbow.111 dam 7 weight 25000 sp 40 wc 1 value 40 no_strength 1 attacktype 1 name_pl crossbows client_type 161 body_arm -2 skill missile weapons end Object elven_bow editor_folder weapon/bow name elven bow race arrows type 14 nrof 1 material 16 face elven_bow.111 magic 3 dam 15 weight 15000 sp 70 wc 1 value 17000 no_strength 0 attacktype 1 name_pl elven bows client_type 150 body_arm -2 skill missile weapons anim_suffix bow end Object handcrossbow editor_folder weapon/bow race crossbow bolts name crossbow pistol type 14 nrof 1 material 16 face handcrossbow.111 dam 5 weight 1500 sp 30 wc 1 value 52800 no_strength 1 attacktype 1 name_pl crossbow pistols client_type 161 body_arm -1 skill missile weapons end Object handcrossbow_ivory editor_folder weapon/bow race crossbow bolts name crossbow pistol type 14 nrof 1 material 16 face handcrossbow_bone.111 dam 5 weight 1500 sp 30 wc 1 value 130050 no_strength 1 attacktype 1 name_pl crossbow pistols client_type 161 body_arm -1 skill missile weapons end Object huntersbow editor_folder weapon/bow name hunter's bow race arrows type 14 nrof 1 material 16 face huntersbow.111 dam 10 weight 2000 value 40 sp 20 no_strength 0 attacktype 1 name_pl hunter's bows client_type 150 body_arm -2 skill missile weapons anim_suffix bow end Object lightning_bow editor_folder weapon/bow name lightning bow race crossbow bolts face lightning_bow.111 sp 40 dam 14 wc -2 nrof 1 type 14 attacktype 9 material 16 value 45000 weight 25000 magic 3 no_strength 1 name_pl lightning bows client_type 150 body_arm -2 skill missile weapons end Object longbow editor_folder weapon/bow name long bow race arrows type 14 nrof 1 material 16 face longbow.111 dam 20 weight 8000 value 200 sp 40 no_strength 0 attacktype 1 name_pl long bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object magic_bow editor_folder weapon/bow name Energy Bow race arrows type 14 nrof 1 animation magic_bow anim_speed 10 client_anim_random 1 material 16 face magic_bow.111 magic 7 dam 30 weight 9000 sp 80 wc 3 value 1700000 no_strength 0 attacktype 1 name_pl Energy Bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object reflexbow editor_folder weapon/bow name reflex bow race arrows type 14 nrof 1 material 16 face reflexbow.111 dam 23 weight 6000 value 25000 sp 47 no_strength 0 attacktype 1 name_pl reflex bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object reflexbow_ivory editor_folder weapon/bow name reflex bow race arrows type 14 nrof 1 material 16 materialname ivory face reflexbow_bone.111 dam 23 weight 6000 value 65000 sp 47 no_strength 0 attacktype 1 name_pl reflex bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object reflexbow_bone editor_folder weapon/bow name reflex bow race arrows type 14 nrof 1 material 0 materialname bone face reflexbow_bone.111 dam 32 weight 8000 value 10000 sp 42 no_strength 0 attacktype 1 name_pl reflex bows client_type 151 body_arm -2 skill missile weapons anim_suffix bow end Object thundar_bolt editor_folder weapon/bow name thundar bolt race crossbow bolts face thunder_bolt.101 animation thundar_bolt is_animated 0 food 10 dam 100 wc -10 nrof 50 type 13 attacktype 9 material 2 value 20000 weight 1000 is_turnable 1 name_pl thundar bolts client_type 165 end Object large_morningstar editor_folder weapon/chained nrof 1 name large morningstar last_sp 12 type 15 face lmornstar.111 weapontype 7 material 18 dam 13 weight 25000 value 44 attacktype 1 name_pl large morningstars client_type 141 body_arm -2 skill two handed weapons end Object morningstar editor_folder weapon/chained nrof 1 last_sp 11 type 15 weapontype 7 face mornstar.111 material 18 dam 10 weight 17000 value 35 attacktype 1 name_pl morningstars client_type 141 body_arm -1 skill one handed weapons end Object nunchacu_1 editor_folder weapon/chained name nunchacu nrof 1 last_sp 4 type 15 face nunchacu_1.111 weapontype 8 material 18 dam 1 weight 5000 value 20 attacktype 1 name_pl nunchacus client_type 141 body_arm -2 skill two handed weapons end Object nunchacu_2 editor_folder weapon/chained name nunchacu nrof 1 last_sp 4 type 15 face nunchacu_2.111 weapontype 8 material 18 dam 2 weight 5500 value 25 attacktype 1 name_pl nunchacus client_type 141 body_arm -2 skill two handed weapons end Object sflail1 editor_folder weapon/chained nrof 1 name spiked flail last_sp 15 type 15 face sflail_1.111 weapontype 7 material 18 dam 16 weight 28000 value 288 attacktype 1 name_pl spiked flails client_type 141 body_arm -2 skill two handed weapons end Object shootingstar editor_folder weapon/chained name shootingstar nrof 1 last_sp 6 type 15 face shootingstar.111 weapontype 7 material 2 dam 40 weight 20000 value 30000 attacktype 1 name_pl shootingstars client_type 141 body_arm -2 skill two handed weapons end Object big_club editor_folder weapon/club nrof 1 name large club last_sp 17 type 15 face big_club.111 material 16 weapontype 8 dam 20 weight 40000 value 20 attacktype 1 name_pl large clubs client_type 121 body_arm -2 skill two handed weapons end Object club editor_folder weapon/club nrof 1 last_sp 9 type 15 face club.111 material 16 dam 6 weapontype 8 weight 9000 value 10 attacktype 1 name_pl clubs client_type 121 body_arm -1 skill one handed weapons end Object cudgel editor_folder weapon/club nrof 1 name cudgel last_sp 25 type 15 face cudgel.111 material 2 materialname bronze weapontype 8 dam 40 weight 85000 value 654 attacktype 1 name_pl cudgels client_type 121 body_arm -2 skill two handed weapons end Object quarterstaff editor_folder weapon/club nrof 1 last_sp 8 type 15 face quarters.111 material 16 dam 5 weapontype 8 weight 9000 value 20 attacktype 1 name_pl quarterstaffs client_type 121 body_arm -2 skill two handed weapons end Object hammer editor_folder weapon/hammer nrof 1 last_sp 9 type 15 face hammer_1.111 material 18 dam 7 weapontype 7 weight 17500 value 25 attacktype 1 name_pl hammers client_type 126 body_arm -1 skill one handed weapons end Object hammer_2 editor_folder weapon/hammer nrof 1 name throwing hammer race throwing last_sp 9 weapontype 7 type 15 face hammer_2.121 animation hammer_2 is_animated 0 is_turnable 1 is_thrown 1 material 80 dam 6 weight 15500 value 23 attacktype 1 name_pl throwing hammers client_type 126 body_arm -1 skill one handed weapons end Object stonehammer editor_folder weapon/hammer nrof 1 name stonehammer last_sp 10 type 15 face stonehamme.111 weapontype 7 material 80 dam 6 weight 15000 value 13 attacktype 1 name_pl stonehammers client_type 126 body_arm -1 skill one handed weapons end Object mace editor_folder weapon/mace nrof 1 last_sp 9 type 15 face mace_1.111 material 2 weapontype 7 dam 7 weight 16000 value 35 attacktype 1 name_pl maces client_type 129 body_arm -1 skill one handed weapons end Object mace_2 editor_folder weapon/mace nrof 1 name mace last_sp 9 type 15 face mace_2.111 material 18 weapontype 7 dam 8 weight 17500 value 42 attacktype 1 name_pl maces client_type 129 body_arm -1 skill one handed weapons end Object kama1 editor_folder weapon/misc nrof 1 last_sp 5 type 15 face kama_1.111 material 18 dam 6 weight 7000 value 47 attacktype 1 weapontype 3 name kama name_pl kamas client_type 106 body_arm -1 skill one handed weapons end Object kama2 editor_folder weapon/misc nrof 1 last_sp 5 type 15 face kama_2.111 material 18 dam 6 weight 7000 value 47 attacktype 1 weapontype 3 name kama name_pl kamas client_type 106 body_arm -1 skill one handed weapons end Object lspear editor_folder weapon/misc nrof 1 name long spear last_sp 9 type 15 face lspear.111 material 18 dam 12 weight 26500 value 50 can_impale 1 attacktype 1 weapontype 5 name_pl long spears client_type 136 body_arm -2 skill two handed weapons end Object poleaxe editor_folder weapon/misc nrof 1 last_sp 12 type 15 face poleaxe.111 material 18 dam 18 weight 35500 value 200 can_impale 1 can_cut 1 can_dam_armour 1 can_knockback 1 attacktype 1 name_pl poleaxes client_type 136 body_arm -2 skill two handed weapons end Object sai1 editor_folder weapon/misc name sai nrof 1 last_sp 5 type 15 face sai_1.111 material 18 dam 2 ac 1 resist_physical 2 weight 2000 value 80 attacktype 1 weapontype 5 name_pl sais client_type 145 body_arm -1 skill one handed weapons end Object sai2 editor_folder weapon/misc name sai nrof 1 last_sp 5 type 15 face sai_2.111 material 18 dam 2 ac 1 resist_physical 2 weight 2000 value 80 attacktype 1 weapontype 5 name_pl sais client_type 145 body_arm -1 skill one handed weapons end Object scythe1 editor_folder weapon/misc nrof 1 name scythe last_sp 13 type 15 face scythe_1.111 material 18 dam 14 weight 29500 value 485 attacktype 1 weapontype 1 name_pl scythes client_type 136 body_arm -2 skill two handed weapons end Object shovel_1 editor_folder weapon/misc name shovel nrof 1 slaying wall last_sp 15 type 15 face shovel_1.111 material 2 dam 10 weight 30000 value 5 animation shovel_1 attacktype 1 name_pl shovels client_type 145 body_arm -2 skill two handed weapons anim_speed 5 client_anim_random 1 end Object sickle1 editor_folder weapon/misc nrof 1 last_sp 4 type 15 face sickle_1.111 material 2 dam 7 weight 8000 value 52 attacktype 1 weapontype 1 name sickle name_pl sickles client_type 101 body_arm -1 skill one handed weapons end Object spear editor_folder weapon/misc name spear race throwing nrof 1 last_sp 9 type 15 face spear.121 animation spear is_animated 0 is_turnable 1 is_thrown 1 material 2 dam 7 weight 8500 value 25 attacktype 1 weapontype 5 name_pl spears client_type 136 body_arm -2 skill two handed weapons end Object stake editor_folder weapon/misc slaying vampire nrof 1 last_sp 11 type 15 face stake.111 material 16 dam 8 weight 2000 value 20 attacktype 1 weapontype 5 name_pl stakes client_type 145 body_arm -1 skill one handed weapons end Object t_star1 editor_folder weapon/misc nrof 1 name throwing star race throwing last_sp 2 type 15 face t_star1.111 is_thrown 1 material 2 dam 3 weight 325 value 45 attacktype 1 weapontype 2 name_pl throwing stars client_type 101 body_arm -1 skill one handed weapons end Object taifu_1 editor_folder weapon/misc name taifu nrof 1 last_sp 6 type 15 face taifu_1.111 material 18 dam 2 ac 1 weight 5000 value 20 attacktype 1 weapontype 5 name_pl taifus client_type 145 body_arm -1 skill one handed weapons end Object trident editor_folder weapon/misc name trident race throwing type 15 nrof 1 last_sp 8 face trident.121 animation trident is_animated 0 is_turnable 1 is_thrown 1 material 2 dam 11 weight 23000 value 68 attacktype 1 weapontype 5 name_pl tridents client_type 136 body_arm -2 skill two handed weapons end Object pipe editor_folder weapon/other nrof 1 name pipe last_sp 8 type 15 face pipe.111 material 2 weapontype 8 dam 5 weight 6500 value 10 can_knockback 1 can_parry 1 attacktype 1 name_pl pipes client_type 145 body_arm -1 skill one handed weapons end Object saw editor_folder weapon/other nrof 1 name saw last_sp 7 slaying deathtree type 15 face saw.111 material 18 dam 4 weight 6500 value 35 attacktype 1 name_pl saws client_type 145 body_arm -1 skill one handed weapons end Object wrench editor_folder weapon/other nrof 1 name wrench last_sp 6 type 15 face wrench.111 material 2 weapontype 8 dam 3 weight 3500 value 10 can_parry 1 can_knockback 1 attacktype 1 name_pl wrenches client_type 145 body_arm -1 skill one handed weapons end Object b_bsword_1 editor_folder weapon/sword anim_suffix sword nrof 1 last_sp 8 type 15 face b_bsword_1.111 material 2 materialname bronze dam 4 weight 20000 value 11 attacktype 1 weapontype 1 name broadsword name_pl broadswords client_type 101 body_arm -1 skill one handed weapons end Object b_bsword_2 editor_folder weapon/sword anim_suffix sword nrof 1 name broadsword last_sp 8 type 15 face b_bsword_2.111 material 2 materialname bronze dam 4 weight 21500 value 11 attacktype 1 weapontype 1 name_pl broadswords client_type 101 body_arm -1 skill one handed weapons end Object b_dagger editor_folder weapon/sword nrof 1 last_sp 5 type 15 face b_dagger.111 material 2 materialname bronze dam 1 weight 2000 value 10 attacktype 1 weapontype 2 name dagger name_pl daggers client_type 101 body_arm -1 skill one handed weapons end Object b_lsword editor_folder weapon/sword anim_suffix sword nrof 1 name light sword last_sp 8 type 15 face b_lsword.111 material 2 materialname bronze dam 3 weight 11500 value 11 attacktype 1 weapontype 1 name_pl light swords client_type 101 body_arm -1 skill one handed weapons end Object b_scimitar editor_folder weapon/sword nrof 1 last_sp 8 type 15 face b_scimitar.111 material 2 materialname bronze dam 4 weight 15000 value 10 can_impale 1 can_cut 1 can_parry 1 attacktype 1 weapontype 1 name scimitar name_pl scimitars client_type 101 body_arm -1 skill one handed weapons end Object b_sicklesword editor_folder weapon/sword anim_suffix sword nrof 1 last_sp 4 type 15 face b_sicklesword.111 material 2 materialname bronze dam 4 weight 8600 value 330 attacktype 1 weapontype 1 name sickle sword name_pl sickle swords client_type 101 body_arm -1 skill one handed weapons end Object b_ssword_1 editor_folder weapon/sword anim_suffix sword nrof 1 last_sp 6 type 15 face b_ssword_1.111 material 2 materialname bronze dam 2 weight 10000 value 7 attacktype 1 weapontype 1 name shortsword name_pl shortswords client_type 101 body_arm -1 skill one handed weapons end Object b_ssword_2 editor_folder weapon/sword anim_suffix sword name shortsword nrof 1 last_sp 6 face b_ssword_2.111 material 2 materialname bronze dam 2 weight 8000 value 8 type 15 attacktype 1 weapontype 5 name_pl shortswords client_type 101 body_arm -1 skill one handed weapons end Object b_sword_1 editor_folder weapon/sword anim_suffix sword nrof 1 name long sword last_sp 8 type 15 face b_sword_1.111 material 2 materialname bronze dam 4 weight 15000 value 11 attacktype 1 weapontype 1 name_pl long swords client_type 101 body_arm -1 skill one handed weapons end Object b_sword_2 editor_folder weapon/sword anim_suffix sword nrof 1 name long sword last_sp 8 type 15 face b_sword_2.111 material 2 materialname bronze dam 4 weight 14500 value 11 attacktype 1 weapontype 1 name_pl long swords client_type 101 body_arm -1 skill one handed weapons end Object broadsword editor_folder weapon/sword anim_suffix sword nrof 1 last_sp 8 type 15 face bsword_1.111 material 2 dam 9 weight 20000 value 50 attacktype 1 weapontype 1 name_pl broadswords client_type 101 body_arm -1 skill one handed weapons end Object broadsword_2 editor_folder weapon/sword anim_suffix sword nrof 1 name broadsword last_sp 8 type 15 face bsword_2.111 material 2 dam 9 weight 21500 value 48 attacktype 1 weapontype 1 name_pl broadswords client_type 101 body_arm -1 skill one handed weapons end Object butterflysword_1 editor_folder weapon/sword name butterflysword name_pl butterflyswords nrof 1 last_sp 5 face butterflysword_1.111 material 2 dam 4 weight 10000 value 45 type 15 attacktype 1 weapontype 5 client_type 101 body_arm -1 skill one handed weapons end Object butterflysword_2 editor_folder weapon/sword name butterflysword name_pl butterflyswords nrof 1 last_sp 5 face butterflysword_2.111 material 2 dam 4 weight 10000 value 45 type 15 attacktype 1 weapontype 5 client_type 101 body_arm -1 skill one handed weapons end Object dagger editor_folder weapon/sword nrof 1 last_sp 5 type 15 face dagger.111 material 2 dam 2 weight 2000 value 20 attacktype 1 weapontype 2 name_pl daggers client_type 101 body_arm -1 skill one handed weapons end Object falchion editor_folder weapon/sword nrof 1 last_sp 8 type 15 face falchion.111 material 2 dam 7 weight 13000 value 42 attacktype 1 weapontype 1 name_pl falchions client_type 101 body_arm -1 skill one handed weapons end Object hooksword editor_folder weapon/sword name hooksword nrof 1 last_sp 7 type 15 face hooksword.111 material 2 dam 6 ac 2 weight 13000 value 50 attacktype 1 weapontype 4 name_pl hookswords client_type 101 body_arm -1 skill one handed weapons end Object katana_1 editor_folder weapon/sword name katana nrof 1 last_sp 6 type 15 face katana_1.111 material 2 dam 7 weight 11000 value 80 attacktype 1 weapontype 4 name_pl katanas client_type 101 body_arm -1 skill one handed weapons end Object light_sword editor_folder weapon/sword nrof 1 name light sword last_sp 8 type 15 face lsword.111 material 2 dam 6 weight 11500 value 44 attacktype 1 weapontype 1 name_pl light swords client_type 101 body_arm -1 skill one handed weapons end Object nineringsword editor_folder weapon/sword nrof 1 last_sp 8 type 15 face nineringsword.111 material 2 dam 9 weight 16000 value 65 attacktype 1 weapontype 1 name nine ring sword name_pl nine ring swords client_type 101 body_arm -1 skill one handed weapons end Object rapier editor_folder weapon/sword nrof 1 last_sp 8 type 15 face rapier.111 material 2 dam 7 weight 10000 value 38 attacktype 1 weapontype 2 name_pl rapiers client_type 101 body_arm -1 skill one handed weapons end Object sabre editor_folder weapon/sword nrof 1 last_sp 8 type 15 face sabre.111 material 2 dam 7 weight 13500 value 38 attacktype 1 weapontype 4 name_pl sabres client_type 101 body_arm -1 skill one handed weapons end Object scimitar editor_folder weapon/sword nrof 1 last_sp 8 type 15 face scimitar.111 material 2 dam 8 weight 15000 value 42 can_impale 1 can_cut 1 can_parry 1 attacktype 1 weapontype 1 name_pl scimitars client_type 101 body_arm -1 skill one handed weapons end Object serp_sword editor_folder weapon/sword nrof 1 name Serpentman sword last_sp 8 type 15 face serp_sword.111 material 32 dam 6 can_cut 1 weight 3000 value 25 attacktype 1 weapontype 1 name_pl Serpentman swords client_type 101 body_arm -1 skill one handed weapons end Object sicklesword editor_folder weapon/sword nrof 1 last_sp 4 type 15 face sicklesword.111 material 2 dam 8 weight 8600 value 440 attacktype 1 weapontype 1 name sickle sword name_pl sickle swords client_type 101 body_arm -1 skill one handed weapons end Object shortsword editor_folder weapon/sword nrof 1 last_sp 6 type 15 face ssword_1.111 material 2 dam 4 weight 10000 value 30 attacktype 1 weapontype 1 name_pl shortswords client_type 101 body_arm -1 skill one handed weapons end Object shortsword_2 editor_folder weapon/sword name shortsword nrof 1 last_sp 6 face ssword_2.111 material 2 dam 4 weight 8000 value 35 type 15 attacktype 1 weapontype 5 name_pl shortswords client_type 101 body_arm -1 skill one handed weapons end Object sword editor_folder weapon/sword anim_suffix sword nrof 1 name long sword last_sp 8 type 15 face sword_1.111 material 2 dam 8 weight 15000 value 45 attacktype 1 weapontype 1 name_pl long swords client_type 101 body_arm -1 skill one handed weapons end Object sword_2 editor_folder weapon/sword anim_suffix sword nrof 1 name long sword last_sp 8 type 15 face sword_2.111 material 2 dam 8 weight 14500 value 45 attacktype 1 weapontype 1 name_pl long swords client_type 101 body_arm -1 skill one handed weapons end Object sword_3 editor_folder weapon/sword nrof 1 name two handed sword name_pl two handed swords anim_suffix double_sword last_sp 8 type 15 face sword_3.111 material 2 dam 14 weight 25000 value 53 attacktype 1 weapontype 1 client_type 101 body_arm -2 skill two handed weapons end Object sword_4 editor_folder weapon/sword anim_suffix sword nrof 1 name sword last_sp 8 type 15 face sword_4.111 material 2 dam 8 weight 15500 value 55 attacktype 1 weapontype 1 name_pl swords client_type 101 body_arm -1 skill one handed weapons end Object t_dagger editor_folder weapon/sword nrof 1 name throwing dagger race throwing last_sp 4 type 15 face t_dagger.131 animation t_dagger is_animated 0 is_turnable 1 is_thrown 1 material 2 dam 1 weight 1500 value 15 attacktype 1 weapontype 2 name_pl throwing daggers client_type 101 body_arm -1 skill one handed weapons end Object vlongsword editor_folder weapon/sword nrof 1 name two handed sword name_pl two handed swords anim_suffix double_sword last_sp 8 type 15 face vlongsword.111 material 2 dam 18 weight 28000 value 500 attacktype 1 weapontype 1 client_type 101 body_arm -2 skill two handed weapons end �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/treasures.bld������������������������������������������������������������������0000644�0000145�0000012�00000337665�11732536604�014003� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # Do not modify this file - any changes will get overwritten. # instead, modify the .trs file in the arch directory. # treasure fish arch fish_1 chance 10 more arch fish_2 chance 10 more arch fish_3 chance 10 more arch fish_4 chance 10 more arch fish_5 chance 10 more arch fish_6 chance 10 end ############################################################# # Gnarg - Father of goblins, Lord Troll, Master of poisons, # Patron of assassins, The Unclean one treasure Gnarg arch gnarg_avatar_info more arch gnarg_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_remove_damnation chance 30 more arch god_remove_depletion chance 50 more arch gnarg_general_info chance 10 more arch god_enchant_weapon_high chance 50 more arch god_grace_limit_low more arch helmet_gnarg chance 5 more arch spell_poison_fog more arch god_grace_limit_medium more arch spell_cause_smallpox more arch bracers_gnarg chance 2 more arch god_grace_limit_high more arch spell_cause_rabies end ############################################################# # Lythander - Elven god of luck, Huntsman of Goblins, Trollslayer, # the Trickster treasure Lythander arch lythander_avatar_info more arch lythander_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_poison more arch god_remove_damnation chance 50 more arch god_remove_depletion chance 50 more arch lythander_general_info chance 10 more arch god_enchant_weapon_medium chance 50 more arch god_grace_limit_low more arch pipe_lythander chance 3 more arch god_grace_limit_medium more arch bow_lythander chance 5 more arch spell_conflict more arch spell_defense end ############################################################# # Mostrai - Dwarven deity of metal smithing and warcraft, # Giant basher, Delver of secrets treasure Mostrai arch mostrai_avatar_info more arch mostrai_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_cure_poison more arch god_remove_damnation chance 40 more arch god_remove_depletion chance 50 more arch mostrai_general_info chance 10 more arch god_enchant_weapon_high chance 50 more arch god_grace_limit_low more arch mail_mostrai chance 3 more arch god_grace_limit_medium more arch spell_wall_of_thorns end ############################################################# # Valkyrie - goddess of warriors treasure Valkyrie arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_remove_curse chance 50 more arch god_remove_damnation chance 30 more arch god_remove_depletion chance 50 more arch valkyrie_general_info chance 10 more arch god_enchant_weapon_high chance 10 more arch god_grace_limit_wimpy more arch god_grace_limit_low more arch god_grace_limit_medium more arch valkyrie_amulet_lifesave chance 10 end treasure altar_valkyrie arch altar_valkyrie_pray_event end ############################################################# # Gaea - Goddess of peace, Guardian of life, Mother of nature # treasure Gaea arch gaea_avatar_info more arch gaea_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_cure_poison more arch god_remove_curse chance 50 more arch god_remove_damnation chance 50 more arch god_remove_depletion chance 50 more arch gaea_general_info chance 10 more arch god_grace_limit_low more arch spell_spiderweb chance 20 more arch spell_wall_of_thorns more arch spell_insect_plague more arch spell_iron_skin more arch god_grace_limit_medium more arch spell_raise_dead more arch spell_remove_damnation more arch spell_nightfall more arch spell_sanctuary more arch spell_daylight more arch spell_resurrection more arch spell_peace more arch glovesofsun chance 10 more arch god_grace_limit_high more arch spell_reincarnation more list gaea_treasure chance 30 more arch shield_gaea chance 5 end treasure gaea_treasure list random_plant chance 50 no arch tear_gaea end end ############################################################# # Ixalovh - Chaos Goddess of frozen tentacles, Sea Serpent, # Ocean Waves treasure Ixalovh arch ixalovh_avatar_info more arch ixalovh_holy_servant_info more arch god_restore_grace more arch god_restore_spellpoints_high more arch god_heal more arch god_cure_poison more arch god_remove_depletion chance 50 more arch god_remove_curse chance 20 more arch ixalovh_general_info chance 10 more arch god_enchant_weapon_high chance 40 more arch god_grace_limit_low more arch spell_wave more arch spell_insect_plague more arch god_grace_limit_medium more arch spell_siren_call more arch god_grace_limit_high more arch spear_ixalovh chance 2 end ############################################################# # Ruggilli - Chaos God of slaughter and terror, Consuming worm, # Greedy gut treasure Ruggilli arch ruggilli_avatar_info more arch ruggilli_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch immolation more arch immolation_immunity more arch god_cure_poison more arch god_remove_depletion chance 50 more arch god_remove_curse chance 10 more arch ruggilli_general_info chance 10 more arch god_enchant_weapon_medium chance 50 more arch god_grace_limit_medium more arch spell_flaming_aura more arch spell_rage more arch god_grace_limit_high more arch spell_retributive_strike more arch burningtail chance 2 end ############################################################# # Sorig - Lord of Storms, King of Thunder and Lightning, Sky Lord # treasure Sorig arch sorig_avatar_info more arch sorig_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_cure_poison more arch god_remove_depletion chance 50 more arch god_remove_curse chance 20 more arch sorig_general_info chance 10 more arch god_enchant_weapon_medium chance 50 more arch god_grace_limit_low more arch spell_divine_shock chance 20 more arch spell_forked_lightning chance 20 more arch god_grace_limit_medium more arch spell_cause_critical_wounds more arch spell_windstorm more arch spell_cause_many_wounds more arch god_grace_limit_high more arch mithril_ar_ele_sorig chance 2 end treasureone horn_siren arch spell_siren_call chance 1 end treasureone horn_waves arch spell_wave chance 1 end treasureone pipe_lythander arch spell_mass_confusion chance 1 end ############################################################# # Devourers - Soul Eaters, Harbingers of Death, Nameless Lords # of the Tomb treasure Devourers arch devourers_avatar_info more arch devourers_holy_servant_info more arch god_restore_grace more arch god_cure_confusion more arch god_cure_poison more arch devourers_general_info chance 10 more arch god_enchant_weapon_medium chance 50 more arch god_grace_limit_medium more arch spell_nightfall more arch spell_finger_of_death more arch spell_face_of_death more arch spell_cause_many_wounds more arch spell_cause_red_death more arch god_grace_limit_high more arch spell_cause_black_death chance 10 end ############################################################# # Gorokh - Demon King, Duke of Hell, Temptor and Tormentor # treasure Gorokh arch gorokh_avatar_info more arch gorokh_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_cure_poison more arch god_remove_curse chance 10 more arch god_remove_depletion chance 40 more arch gorokh_general_info chance 10 more arch god_enchant_weapon_medium chance 50 more arch spell_flaming_aura more arch god_grace_limit_medium more arch spell_rage more arch spell_vitriol end ######################################################### # Valriel - Lord of Angels, Duke of the Heavens, Healer and Protector # treasure Valriel arch valriel_avatar_info more arch valriel_holy_servant_info more arch god_restore_grace more arch god_restore_hitpoints more arch god_cure_confusion more arch god_cure_poison more arch valriel_player_glow more arch god_remove_curse chance 10 more arch god_remove_damnation chance 60 more arch god_remove_depletion chance 50 more arch valriel_general_info chance 10 more arch god_enchant_weapon_low chance 30 more arch god_grace_limit_medium more arch spell_sunspear more arch spell_daylight more arch spell_wrathful_eye end # # Map building stuff # treasureone building_material arch building_woodfloor chance 50 more arch building_woodfloor2 chance 5 more arch building_wall chance 25 more arch building_vertical_gate chance 10 more arch building_horizontal_gate chance 10 more arch building_pedestal chance 8 more arch building_lever chance 8 more arch building_button chance 3 more list building_marbles chance 5 more list building_objects chance 5 more arch building_window chance 2 more arch building_vertical_gate_inv chance 1 more arch building_horizontal_gate_inv chance 1 more list building_talking_objects chance 1 end treasureone shop_building arch building_builder chance 2 more arch building_destroyer chance 2 more list building_material chance 78 more list building_material_stonewall_norm chance 20 end treasureone shop_building_fant arch building_builder chance 2 more arch building_destroyer chance 2 more list building_material chance 78 more list building_material_stonewall_fant chance 20 end treasureone shop_building_west arch building_builder chance 2 more arch building_destroyer chance 2 more list building_material chance 78 more list building_material_stonewall_west chance 20 end treasureone shop_building_east arch building_builder chance 2 more arch building_destroyer chance 2 more list building_material chance 78 more list building_material_stonewall_east chance 20 end treasureone shop_building_pupland arch building_builder chance 2 more arch building_destroyer chance 2 more list building_material chance 78 more list building_material_stonewall_pupland chance 20 end ##For areas like scorn area, sells DWall and fences treasureone building_material_stonewall_norm arch building_wall2 chance 80 more arch building_swall chance 20 end ##For brest area, sells Red Cwall rather then DWall # Added dark wood floor here too rather than create a whole new list for # dark floors in Brest (Gene Alexander) treasureone building_material_stonewall_fant arch building_wall4 chance 50 more arch building_woodfloor2 chance 40 more arch building_swall chance 10 end ##For navar area, sells West Cwall rather then DWall treasureone building_material_stonewall_west arch building_wall3 chance 80 more arch building_swall chance 20 end ##For areas like azumauindo area, sells DWall and EastWall (japanese paper wall) treasureone building_material_stonewall_east arch building_wall2 chance 50 more arch building_wall5 chance 50 end ## Dark wood floor is more likely in pupland (Gene Alexander) treasureone building_material_stonewall_pupland arch building_wall2 chance 40 more arch building_woodfloor2 chance 50 more arch building_swall chance 10 end treasureone building_marbles arch building_marble chance 8 more arch building_blackmarble chance 8 more arch building_pinkmarble chance 1 more arch building_greenmarble chance 1 more arch building_lightmagentamarble chance 1 end treasureone building_objects arch building_firepot chance 10 more arch building_brazier chance 8 more arch building_fireplace chance 6 more arch building_sign chance 4 more arch building_fountain chance 3 more arch building_bed_save chance 1 more arch building_altar chance 1 end treasureone building_talking_objects arch building_earbook chance 1 more arch building_mouthbook chance 2 end treasure campfire_talking arch campfire_say more arch campfire_timer end treasure chest list chest_items chance 80 no list traps more list chest_items more list chest_items more list chest_items chance 50 end end treasureone chest_items arch goldcoin chance 5 nrof 1 more arch silvercoin chance 5 nrof 9 more list random_weapon chance 30 more list random_armour chance 30 more list random_food chance 10 more list random_special chance 5 magic 6 more list random_wealth chance 5 magic 5 more list random_wealth chance 5 magic 10 more list random_potion chance 5 magic 5 more list containers chance 3 more list random_scroll chance 5 end treasure gps arch gps_event end treasure angel list all_spell_skills more list rich_old end treasure archangel list all_spell_skills more list rich_old more arch spell_wrathful_eye nrof 3 more arch spell_paralyze end treasure high_angel list rich more list all_spell_skills end treasure liteangel list rich more list all_spell_skills end treasure mesangel list rich more list all_spell_skills end treasure bear list bear_parts chance 40 end treasureone bear_parts arch hide_brown chance 50 more arch liver chance 15 more arch heart chance 10 end treasure polarbear list polarbear_parts chance 40 end treasureone polarbear_parts arch hide_white chance 25 more arch liver chance 15 more arch heart chance 10 end treasure behemoth list behemoth_parts chance 30 end treasureone behemoth_parts arch heart chance 5 more arch hide_black chance 10 end treasure giantrat list giantrat_parts chance 30 end treasureone giantrat_parts arch liver chance 20 more arch heart chance 10 more arch hide_brown chance 10 end treasure neko list neko_parts chance 99 end treasureone neko_parts arch dead_neko chance 99 end treasure dwolf arch hide_white chance 25 more arch liver chance 15 more arch heart chance 10 more arch abil_frostbolt end treasure dwolf_sire arch hide_white chance 20 more arch liver chance 12 more arch heart chance 10 more arch abil_large_icestorm more arch abil_frostbolt more arch abil_fear end treasure wolf list wolf_parts chance 40 end treasureone wolf_parts arch hide_grey chance 50 more arch liver chance 15 more arch heart chance 15 end treasure ape list ape_parts chance 30 end treasureone ape_parts arch liver chance 30 more arch heart chance 20 more arch tooth chance 10 more arch hand chance 10 more arch hide_brown chance 10 more arch brain chance 5 end treasureone sheep arch sheepskin chance 5 more arch liver chance 5 more arch heart chance 5 more arch haggis chance 2 more arch leg_mutton chance 15 end treasure giant_bat arch bat_wing chance 10 end treasure giant_worm arch spell_magic_bullet more arch spell_vitriol more arch abil_slow more arch eye chance 30 no arch residue chance 10 end more arch gem chance 60 nrof 7 end treasure purple_worm arch spell_magic_bullet more arch spell_vitriol more arch abil_slow more arch event_attack_purple_worm more arch gem chance 60 nrof 7 end treasure gryphon arch skill_use_magic_item more arch spell_paralyze more arch abil_fear more arch abil_poison_cloud more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm more arch abil_icestorm more arch spell_burning_hands more arch spell_medium_fireball more arch spell_magic_missile more arch spell_magic_bullet more arch abil_slow more list random_books more list random_books more list random_books more arch wand more arch wand more arch wand more arch wand more arch staff more arch rod_light more arch rod_light more arch rod_heavy more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch ring chance 90 more arch ring chance 50 more arch cloak end treasure leech arch blood chance 40 no arch potion_restoration chance 5 end end treasure scorpion arch insect_stinger chance 10 end treasure snake arch serp_skin chance 3 end treasure beholder list beholder_parts chance 20 more arch spell_paralyze chance 50 more arch abil_fear chance 75 more arch abil_poison_cloud chance 50 more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm chance 25 more arch abil_icestorm chance 25 more arch spell_burning_hands more arch spell_medium_fireball more arch spell_magic_missile more arch spell_magic_bullet more arch spell_small_speedball more arch spell_mass_confusion more arch abil_slow more arch gem nrof 1 chance 10 end treasureone beholder_parts arch beholdereye chance 70 more # arch tentacle # nrof 2 # chance 10 # more arch tongue chance 10 more arch brain chance 3 end treasure dread arch big_eye chance 85 more arch spell_paralyze more arch abil_fear more arch abil_poison_cloud more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm more arch abil_icestorm more arch spell_burning_hands more arch spell_medium_fireball more arch spell_magic_missile more arch spell_magic_bullet more arch spell_small_speedball more arch spell_mass_confusion more arch abil_slow more arch spell_cancellation # more # arch beholdereye end treasure liv_chaos arch spell_create_pool_of_chaos end treasure witch_chaos arch spell_color_spray more arch abil_ball_lightning nrof 3 more arch spell_create_pool_of_chaos more arch spell_summon_water_elemental more arch spell_summon_air_elemental more arch spell_summon_earth_elemental more arch spell_summon_fire_elemental end treasure Balrog list all_spell_skills more arch spell_paralyze more arch abil_fear more arch abil_burning_hands more arch abil_medium_fireball more arch spell_summon_fire_elemental more arch ring chance 90 more arch ring chance 50 more arch cloak more arch mithril_chainmail more arch firebrand end treasure demonlord arch spell_hellfire more arch abil_burning_hands more arch abil_fear more arch spell_sm_lightning more arch spell_large_lightning more arch spell_magic_missile more arch spell_paralyze end treasureone demon_parts arch icor chance 70 more arch heart chance 15 more arch demon_head chance 15 end treasure devil list all_spell_skills more list rich_old more list demon_parts chance 40 end treasure fiend list all_spell_skills more list rich_old more list demon_parts chance 40 more arch abil_burning_hands more arch abil_medium_fireball end treasure hellhound arch hide_black chance 25 more arch liver chance 15 more arch heart chance 15 more arch skill_clawing more arch abil_burning_hands more arch spell_hellfire more arch abil_fear end treasure gr_hellhound arch hide_black chance 25 more arch liver chance 15 more arch heart chance 15 more arch skill_clawing more arch spell_cause_medium_wounds more arch abil_burning_hands more arch spell_hellfire more arch abil_fear end treasure imp arch abil_burning_hands more arch abil_medium_fireball end treasure raas arch icor chance 20 end treasure chaosdragon list big_dragon_parts chance 80 more arch abil_fear more arch ability_dragonbreath nrof 5 more arch abil_icestorm more arch abil_large_icestorm more arch spell_sm_lightning more arch spell_large_lightning more arch abil_poison_cloud more arch spell_create_pool_of_chaos more arch gem nrof 40 more arch gem nrof 15 chance 60 more arch ring chance 30 more arch wand more arch wand chance 50 more arch staff chance 50 more arch rod_light chance 20 more arch rod_heavy chance 5 more arch ring more arch ring chance 50 more arch gem chance 50 nrof 20 more arch ruby nrof 6 more arch sapphire nrof 9 more arch emerald nrof 12 more arch pearl nrof 40 more arch platinacoin nrof 20 more arch goldcoin nrof 400 more arch silvercoin nrof 4000 more arch scroll_new more arch scroll_new chance 50 more arch sword_2 magic 5 chance 20 more arch cloak chance 30 more arch ring chance 30 end treasure chinese arch dragon_steak nrof 3 chance 45 more arch green_dragon_scale chance 40 nrof 2 more arch dragonclaw chance 15 nrof 12 more arch dragon_wing chance 15 nrof 2 more arch dragon_eye chance 15 more arch heart chance 5 more arch brain chance 1 more arch abil_icestorm nrof 3 more arch abil_large_icestorm nrof 3 more arch abil_fear more arch abil_poison_cloud more arch gem chance 10 nrof 1 no arch ruby nrof 1 chance 30 no arch sapphire nrof 3 chance 30 no arch emerald nrof 4 chance 50 end end end more arch platinacoin nrof 2 chance 10 no arch goldcoin nrof 7 chance 50 no arch silvercoin nrof 30 end end end treasure eternal_chinese_dragon arch green_dragon_scale more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_talisman more list random_talisman more list random_talisman more list random_gem more list random_gem more list random_gem more list random_gem more list random_gem more list random_gem more list random_gem more list random_gem more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_scroll more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_gem more list random_gem more list chinese end treasure legendary_chinese_dragon list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_wealth more list random_gem more list random_gem more arch green_dragon_scale more list chinese end treasure Cwyvern list dragon_parts chance 70 more arch abil_fear more arch ability_dragonbreath nrof 5 more arch abil_icestorm more arch abil_large_icestorm more arch spell_sm_lightning more arch spell_large_lightning more arch abil_poison_cloud more arch spell_create_pool_of_chaos more arch gem nrof 40 more arch gem nrof 15 chance 60 more arch ring chance 30 more arch ring chance 30 end treasure big_elec arch abil_fear more arch spell_sm_lightning nrof 3 more arch spell_large_lightning nrof 3 more arch dragon_steak nrof 2 chance 90 more arch blue_dragon_scale more arch wand more arch staff chance 50 more arch wand chance 50 more arch ring more arch ring chance 50 more arch gem chance 80 nrof 2 more arch ruby nrof 3 more arch sapphire nrof 3 more arch emerald nrof 4 more arch pearl nrof 6 more arch platinacoin nrof 5 more arch goldcoin nrof 30 more arch silvercoin nrof 500 more arch scroll_new more arch scroll_new chance 50 more arch scroll_new chance 50 more arch sword_2 chance 10 magic 3 end treasure cold_dragon arch abil_icestorm nrof 2 more arch abil_large_icestorm nrof 2 end treasure shadow_dragon arch dragon_steak nrof 3 chance 45 more arch dragonclaw chance 15 nrof 20 more arch dragon_wing chance 20 nrof 2 more arch dragon_eye chance 20 more arch heart chance 15 more arch brain chance 4 more arch abil_slow nrof 3 more arch spell_nightfall nrof 1 more arch spell_negabolt nrof 2 more arch abil_fear more arch abil_poison_cloud nrof 2 more arch gem chance 30 nrof 1 no arch ruby nrof 3 chance 30 no arch sapphire nrof 3 chance 30 no arch emerald nrof 3 chance 30 end end end more arch platinacoin nrof 12 chance 15 no arch goldcoin nrof 7 chance 50 no arch silvercoin nrof 80 end end end treasure dragon list big_dragon_parts chance 80 more # arch dragon_steak # nrof 3 # chance 90 # more arch ability_dragonbreath nrof 5 more arch abil_fear more # arch dragon_scale # more arch wand more arch wand chance 50 more arch staff chance 50 more arch rod_light chance 20 more arch rod_heavy chance 5 more arch ring more arch ring chance 50 more arch gem chance 50 nrof 2 more arch ruby nrof 2 more arch sapphire nrof 3 more arch emerald nrof 4 more arch pearl nrof 10 more arch platinacoin nrof 5 more arch goldcoin nrof 100 more arch silvercoin nrof 1000 more arch scroll_new more arch scroll_new chance 50 more arch sword_2 magic 5 chance 20 more arch cloak chance 30 end # Big dragon body parts treasureone big_dragon_parts arch dragon_steak nrof 3 chance 90 more arch dragon_scale chance 80 nrof 2 more arch dragonclaw chance 30 nrof 12 more arch dragon_wing chance 30 nrof 2 more arch dragon_eye chance 30 more arch heart chance 10 more arch brain chance 1 end # more appropriate for wyvern/baby dragon treasureone dragon_parts arch dragon_steak chance 30 more arch dragonclaw chance 10 more arch dragon_wing chance 25 more arch dragon_scale chance 5 more arch brain chance 1 end treasure drake arch dragonclaw chance 10 more arch dragon_wing chance 30 end treasure wyvern list dragon_parts chance 80 more arch abil_burning_hands nrof 3 more arch abil_medium_fireball nrof 3 more arch abil_fear # more # arch dragon_steak # chance 90 end treasure para_elemental arch residue chance 20 end treasure s_wyvern arch spell_negabolt more arch spell_cancellation end treasure shadow arch spell_negaball more arch spell_cancellation end treasure ice_warrior arch full_helmet more arch frostbrand more arch sapphire more arch shield nrof 50 chance 20 end treasure witch_air arch spell_sm_lightning more arch spell_large_lightning more arch abil_poison_cloud more arch spell_windstorm more arch spell_summon_air_elemental end treasure witch_earth arch skill_throwing more arch ability_stone_throw more arch rock2 chance 50 nrof 20 no arch gem nrof 2 end more arch abil_fear more arch spell_wall_of_thorns more arch spell_summon_earth_elemental end treasure witch_fire arch abil_burning_hands more arch abil_medium_fireball more arch abil_create_fire_wall more arch spell_summon_fire_elemental end treasure witch_water arch abil_icestorm more arch abil_large_icestorm more arch spell_summon_fog more arch abil_slow more arch abil_create_frost_wall more arch spell_summon_water_elemental end treasure belzebub list all_spell_skills more arch spell_summon_pet_monster more arch ring_mail magic 4 more arch uw_shield more arch uw_sword more arch ring more arch gem chance 50 nrof 3 more arch cloak chance 50 end treasure big_wizard list all_spell_skills more arch spell_paralyze more arch abil_fear more arch abil_poison_cloud more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm more arch abil_icestorm more arch spell_burning_hands more arch spell_medium_fireball more arch spell_magic_missile more arch spell_magic_bullet more arch abil_slow more list random_books more list random_books more list random_books more arch wand more arch wand more arch wand more arch wand more arch staff more arch rod_light more arch rod_light more arch rod_heavy more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch scroll_new more arch ring chance 90 more arch ring chance 50 more arch cloak end treasure DK list all_spell_skills more arch spell_paralyze more arch spell_small_speedball more arch plate_mail more arch bighorned_helmet more arch ring more arch ring more arch gem nrof 20 chance 80 more arch mace chance 10 no arch mace_2 chance 12 no arch lamestar chance 40 end end more arch high_shield chance 50 no arch DShield chance 50 no arch DShieldm chance 25 no arch DShields chance 40 end end end end treasure EDK list all_spell_skills more arch abil_burning_hands more arch abil_medium_fireball more arch spell_paralyze more arch abil_fear more arch plate_mail more arch bighorned_helmet more arch ring more list random_books more arch ring more arch gem nrof 30 chance 80 more arch gem nrof 20 chance 80 more arch firestar chance 10 no arch lamestar chance 50 end more arch DShieldms chance 7 no arch DShield chance 60 no arch DShieldm chance 50 no arch DShields end end end end treasure titan list all_spell_skills more arch head more arch spell_paralyze more arch abil_fear nrof 2 more arch spell_sm_lightning nrof 2 more arch spell_large_lightning nrof 2 more arch abil_slow more arch bow more arch arrow nrof 100 more arch high_shield more arch bonecrusher more arch plate_mail more arch full_helmet more arch cloak chance 50 end treasure byakie arch abil_fear end treasure cyclops arch skill_use_magic_item more arch big_club more arch ability_stone_throw more arch t_lboulder nrof 20 more arch platinacoin nrof 40 end treasure djinn list all_spell_skills more arch spell_paralyze more arch spell_major_healing more arch abil_fear more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm more arch abil_icestorm more arch abil_icestorm more arch abil_large_icestorm more arch abil_burning_hands more arch spell_hellfire more arch spell_summon_fire_elemental more arch spell_summon_water_elemental more arch spell_summon_earth_elemental more arch spell_summon_air_elemental more arch abil_slow more arch rod_heavy end treasure djinn_magenta list all_spell_skills more arch spell_paralyze more arch spell_major_healing more arch abil_fear more arch spell_sm_lightning more arch spell_large_lightning more arch abil_frostbolt more arch abil_large_icestorm more arch abil_icestorm more arch abil_large_icestorm more arch abil_burning_hands more arch spell_hellfire more arch spell_comet more arch spell_steambolt more arch spell_firebolt more arch spell_large_fireball more arch spell_summon_fire_elemental more arch spell_summon_water_elemental more arch spell_summon_earth_elemental more arch spell_summon_air_elemental more arch abil_slow more arch turban more arch rod_heavy end treasure minor_djinn list all_spell_skills more arch spell_paralyze more arch abil_fear more arch spell_major_healing more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm chance 50 no arch abil_burning_hands more arch abil_medium_fireball end more arch spell_summon_fire_elemental chance 50 no arch spell_summon_water_elemental end more arch spell_summon_earth_elemental chance 50 no arch spell_summon_air_elemental end more arch abil_slow end treasure giant list giant_old more arch skill_throwing more arch t_boulder nrof 8 more list giant_parts chance 10 end treasureone giant_parts arch fl_corpse chance 15 more arch head chance 20 more arch foot chance 8 more arch hand chance 8 more arch heart chance 5 more arch liver chance 8 more arch brain chance 3 end treasure giant_old arch big_club more arch goldcoin chance 6 nrof 80 end treasure fire_serpent arch abil_burning_hands chance 50 more arch abil_medium_fireball chance 50 end treasure serpent arch poisoning chance 50 more arch serp_skin chance 20 end treasure slug arch slug_slime chance 10 end treasure gnoll list giant_parts chance 30 more arch skill_throwing chance 30 more list poor_old end treasure goblin arch skill_use_magic_item more list goblin_parts chance 10 more list poor_old end treasureone goblin_parts arch fl_corpse chance 30 more arch goblin_head chance 30 more arch foot chance 10 more arch hand chance 10 more arch liver chance 10 more arch heart chance 10 end treasure ogre arch skill_use_magic_item more list giant_parts chance 30 more arch arm chance 10 more arch skill_throwing more list throw_weapons chance 15 more list poor_old end treasure orc arch skill_use_magic_item more list goblin_parts chance 20 no arch orcchop chance 25 end more arch cloak chance 3 more # arch orcchop # chance 25 # more arch bow chance 10 yes arch arrow nrof 6 end more arch b_ssword_2 magic 1 chance 5 no arch b_ssword_1 chance 10 no arch b_dagger chance 15 no arch stoneaxe chance 20 no arch club chance 25 end end end end more arch b_small_shield chance 10 more arch silvercoin nrof 80 chance 15 end treasure guard_h arch chain_mail more arch poleaxe end treasure guard_l arch scale_mail more arch spear end treasure guard_m arch chain_mail more arch lspear end treasure a_priest list all_spell_skills more list human_parts chance 20 more arch spell_paralyze more arch spell_cause_medium_wounds more arch spell_summon_pet_monster more arch spell_magic_missile more arch robe more arch sandals end treasure beggar arch skill_use_magic_item more list slave end treasure dancing_girl arch skill_use_magic_item end treasure holy_priest list all_spell_skills more list human_parts more arch spell_paralyze more arch spell_cause_heavy_wounds more arch spell_summon_pet_monster more arch spell_magic_missile more arch robe more arch sandals end treasure merchant arch skill_use_magic_item more list throw_stnd end treasure slave list human_parts chance 20 more arch turban more arch sandals end treasure warrior_1 list all_spell_skills more arch skill_oratory more list throw_stnd end treasure conjurer list all_spell_skills more arch skill_literacy more arch spell_summon_fire_elemental more arch spell_summon_air_elemental more arch spell_summon_water_elemental more arch spell_summon_earth_elemental more arch cloak chance 60 more list rich end treasure conjurer2 list all_spell_skills more list poor end treasure fighter list all_spell_skills more list throw_stnd end treasure npc_ninja list all_spell_skills more arch skill_jumping more list poor more arch skill_hide chance 50 no arch skill_karate end end # note: punching and throwing aren't good # combination to give to NPC's. They wind # throwing away their melee weapons! treasure pirate arch skill_use_magic_item more arch skill_stealing chance 50 more arch skill_throwing chance 75 no arch skill_punching end more arch heart chance 5 more list standard end treasure dwarf list fighter_skills more arch hammer more arch shield more arch chain_mail more arch helmet more arch skill_smithery end treasure gdwar_guard list all_spell_skills more arch axe_5 more arch bighorned_helmet more arch plate_mail more arch crossbow more arch bolt nrof 30 more arch mithril nrof 3 end treasure ldwar_guard list all_spell_skills more arch axe_5 more arch bighorned_helmet more arch plate_mail more arch crossbow more arch bolt nrof 20 more arch mithril nrof 1 end treasure dark_elf arch skill_use_magic_item more arch skill_literacy chance 50 no arch skill_bowyer end more list throw_rich end treasure elf_1 list all_spell_skills more list throw_stnd end treasure gnome list all_spell_skills more list throw_stnd end treasure halfling list fighter_skills more arch leather_armour more arch dagger more arch skill_stealing more arch skill_hide end treasure child arch skill_use_magic_item more arch chocolate chance 5 end treasure c_thief arch skill_use_magic_item more arch dagger more arch skill_stealing more arch goldcoin nrof 50 chance 20 end treasure cleric list fighter_skills more arch morningstar more arch ring_mail more arch holy_symbol more arch skill_oratory more arch cleric_book_l1 more arch b_small_shield end treasure courier list standard more arch skill_use_magic_item end treasure evilclown list human_parts chance 50 more arch spell_ball_lightning more arch spell_large_lightning more arch spell_paralyze more arch spell_sunspear more arch abil_slow more arch emerald nrof 20 chance 50 more arch amethyst nrof 20 chance 50 end treasure farmer list throw_stnd more list all_spell_skills end treasure jail list all_spell_skills more arch knight more arch knight more arch knight end treasure man list all_spell_skills more list throw_stnd end treasure postman arch skill_use_magic_item more list human_parts chance 20 more arch letter nrof 10 chance 20 more arch r_sack chance 1 end treasure princess list all_spell_skills more list throw_stnd end treasure sage list random_books more arch skill_literacy more arch skill_alchemy chance 50 no arch skill_jeweler end more list human_parts end treasure wizard list wizard_skills more arch skill_sorcery more arch robe more arch sorcerer_book_l1 more arch sorcerer_book_l1 more arch b_dagger end treasure madman list all_spell_skills more list throw_stnd end treasure pyromaniac arch spell_create_bomb end treasure spit_ant arch ability_spit_acid more arch acid_spit nrof 30 end treasure xan arch insect_wing chance 10 end treasure chess list all_spell_skills more list throw_stnd end treasure unicorn arch u_horn end treasure broo arch skill_use_magic_item more list goblin_parts chance 40 more arch skill_one_handed_weapon more arch skill_two_handed_weapon more arch club chance 40 magic 1 no arch spear chance 30 magic 2 no arch lspear chance 20 magic 3 no arch poleaxe chance 10 magic 4 end end end more arch scale_mail chance 10 magic 1 no arch plate_mail chance 5 magic 3 no arch leather_armour chance 40 magic 1 end end more arch small_shield magic 2 chance 50 no arch high_shield magic 1 chance 10 end more arch helmet magic 1 chance 30 more arch bow chance 30 magic 1 yes arch arrow nrof 30 magic 3 end more arch silvercoin nrof 30 chance 60 no arch goldcoin nrof 10 chance 30 no arch platinacoin nrof 10 chance 10 end end more arch scroll_new chance 10 nrof 3 no arch wand chance 20 no arch ring chance 10 end end end treasure c_knight arch skill_use_magic_item more list human_parts more arch sword_2 magic 3 chance 30 no arch sword_2 magic 1 end more arch plate_mail more arch ring chance 30 more arch bow magic 1 chance 30 yes arch arrow nrof 20 end more arch wand chance 20 end treasure c_m_priest list all_spell_skills more list human_parts more arch staff magic 1 more list random_books chance 50 more list random_books chance 50 more arch staff chance 30 more arch spell_paralyze chance 50 no arch spell_summon_pet_monster end more arch abil_poison_cloud chance 50 more arch spell_paralyze chance 20 no arch abil_fear end more arch spell_magic_missile chance 20 no arch spell_cause_medium_wounds end more arch spell_create_pool_of_chaos chance 20 end # treasure c_priest list all_spell_skills more list human_parts more arch staff magic 3 more arch cleric_book chance 50 more arch cleric_book more arch staff chance 80 more arch rod_light chance 30 no arch rod_heavy chance 30 end more arch spell_paralyze more arch spell_summon_pet_monster more arch abil_poison_cloud more arch spell_paralyze more arch abil_fear more arch abil_burning_hands more arch spell_hellfire chance 20 no arch spell_cause_heavy_wounds end more arch spell_create_pool_of_chaos chance 80 end treasure gargoyle list melee_weapons chance 30 more arch gem chance 50 nrof 1 end treasure lamia list all_spell_skills more arch spell_paralyze more arch abil_fear more arch ability_spit_acid more arch acid_spit nrof 30 more arch acid_spit nrof 30 more arch acid_spit nrof 30 more arch acid_spit nrof 30 more arch acid_spit nrof 30 more arch acid_spit nrof 30 more arch acid_spit nrof 30 more arch ring chance 50 more arch wand chance 50 more arch staff chance 30 more arch wand chance 50 more arch rod_heavy chance 5 no arch rod_light chance 20 end more arch goldcoin nrof 100 more arch big_club end treasure lokanth list standard more arch skill_clawing end treasure pixie list all_spell_skills more arch wand chance 4 more arch pix_dust chance 15 no arch pix_wing chance 20 end end treasure serp_man arch skill_use_magic_item more arch serp_sword magic 2 chance 15 no arch serp_sword end more arch bow magic 1 chance 30 yes arch arrow nrof 20 end more arch wand chance 5 more arch goldcoin nrof 10 chance 50 end treasure serp_priest list all_spell_skills more arch dagger magic 3 more list random_books chance 50 more list random_books more arch staff chance 80 more arch rod_light chance 30 more arch abil_burning_hands chance 20 more arch abil_medium_fireball chance 20 more arch spell_paralyze chance 80 more arch abil_fear more arch spell_sm_lightning more arch spell_large_lightning more arch spell_create_pool_of_chaos chance 20 more arch spell_magic_missile chance 20 end treasure sphinx list standard_old more arch head end treasureone tentacle_victims arch bones1 nrof 1 more arch bones2 nrof 1 more arch bones3 nrof 1 more arch bones4 nrof 1 more arch bones5 nrof 1 end # treasure tentacle list tentacle_victims chance 5 more list random_wealth chance 3 more arch tentacle_hook chance 20 end treasure troll list giant_old more arch skill_throwing chance 40 yes arch t_boulder nrof 5 end more list troll_parts end treasureone troll_parts arch head chance 80 more arch heart chance 5 more arch liver chance 15 more arch brain chance 3 end treasure skeletalmage arch skill_use_magic_item more list standard_old more arch abil_fear more arch abil_frostbolt chance 67 end treasure banshee arch spell_paralyze more arch abil_fear more arch spell_paralyze more arch skill_clawing more arch spell_cause_medium_wounds more arch ring chance 50 more arch amulet chance 15 more arch gem chance 30 nrof 2 more arch sapphire chance 25 nrof 3 more arch emerald chance 50 nrof 4 end treasure deathshead list skull_parts chance 50 more arch spell_paralyze more arch abil_fear more arch spell_cause_black_death more arch spell_cause_red_death chance 50 more arch spell_face_of_death more arch spell_meteor_swarm more arch spell_hellfire more arch spell_burning_hands more arch spell_large_fireball more arch spell_mass_confusion more arch spell_negabolt more arch spell_negaball more arch abil_slow more arch gem nrof 20 chance 50 more arch gem nrof 40 chance 20 end treasure demilich arch insanity more arch spell_paralyze more arch abil_fear more arch abil_poison_cloud more arch abil_large_icestorm more arch abil_icestorm more arch spell_mass_confusion more arch gem nrof 1 end treasure ghost arch ectoplasm chance 5 end treasure lich_old arch spell_paralyze more arch abil_fear more arch spell_summon_pet_monster more arch spell_magic_bullet more arch abil_large_icestorm more arch abil_icestorm more arch sword_2 chance 90 magic 5 more arch cloak more arch shield magic 4 chance 70 no arch small_shield magic 5 chance 40 end more arch full_helmet magic 3 chance 50 no arch helmet magic 3 chance 50 end more arch goldcoin chance 90 nrof 100 more arch wand chance 80 more arch staff chance 20 more list random_books more list random_books chance 70 more arch ring more arch ring chance 50 more arch scroll_new chance 90 more arch scroll_new chance 90 more arch gem chance 70 nrof 3 end # treasure lich list all_spell_skills more arch lich_dust more arch leprosy more list lich_old end treasure skeleton list standard_old end treasure skree arch abil_fear more arch spell_paralyze more arch abil_slow more list skree_bits end treasure skree_bits arch skreeclaw chance 40 nrof 2 more arch skreeeye chance 10 nrof 1 end treasureone skull_parts arch tooth chance 95 more arch tongue chance 5 end treasure skull list skull_parts chance 20 more arch spell_paralyze chance 50 more arch abil_fear chance 75 more arch abil_poison_cloud chance 50 more arch spell_sm_lightning more arch spell_large_lightning more arch abil_large_icestorm chance 25 more arch abil_icestorm chance 25 more arch spell_burning_hands more arch spell_medium_fireball more arch spell_magic_missile more arch spell_magic_bullet more arch spell_small_speedball more arch spell_mass_confusion more arch abil_slow more arch gem nrof 1 chance 10 end treasure spectre list all_spell_skills more arch ectoplasm more arch arthritis more list lich_old end treasure vampire list all_spell_skills more arch abil_fear nrof 3 more arch abil_slow more arch spell_paralyze more arch heart chance 50 more arch cloak more list random_books more list random_books chance 50 more arch ring chance 70 more arch ring chance 50 end treasure wight arch fl_corpse chance 50 end treasure zombie arch fl_corpse chance 20 end treasure generate_zombie arch gravedirt end treasure cleric_class_items list fighter_skills more arch morningstar more arch ring_mail more arch holy_symbol more arch skill_oratory more arch cleric_book_l1 more arch b_small_shield end treasure monk_class_items list basic_skills more arch skill_missile_weapon more arch skill_meditation more arch skill_karate more arch skill_sense_magic more arch robe more arch r_sack more arch sandals more arch skill_praying more arch skill_sense_curse more arch monk_no_use_weapon end treasure paladin_class_items list fighter_skills more arch guide_melee more arch b_bsword_1 more arch b_plate_mail more arch b_shield more arch b_full_helmet more arch cleric_book_l1 more arch paladin_holy_symbol more arch skill_oratory more arch sack end treasure priest_class_items list basic_skills more arch skill_praying more arch skill_one_handed_weapon more arch skill_two_handed_weapon more arch guide_priest more arch robe more arch quarterstaff more arch cleric_book_l1 more arch cleric_book_l1 more arch skill_sense_curse more arch amulet end treasure ninja_class_items list fighter_skills more arch skill_jumping more arch skill_hide more arch guide_melee more arch nunchacu_1 more arch leather_armour more arch bag more arch cloak more arch skill_karate end treasure thief_class_items list fighter_skills more arch cloak more arch shortsword more arch skill_bargaining more arch skill_stealing more arch lockpicks more arch sack more arch leather_armour end treasure thief list fighter_skills more arch cloak more arch dagger more arch skill_stealing more arch lockpicks more arch leather_armour more arch sack end treasure barbarian_class_items arch skill_one_handed_weapon more arch skill_two_handed_weapon more arch skill_missile_weapon more arch skill_throwing more arch skill_find_traps more arch skill_remove_trap more arch skill_use_magic_item more arch guide_melee more arch leather_armour more arch mace more arch skill_climbing more arch skill_woodsman more arch b_horned_helmet more arch sack more arch round_shield more arch high_boots end treasure swashbuckler_class_items list fighter_skills more arch b_lsword more arch skill_stealing more arch skill_singing more arch b_dagger more arch amulet more arch sack end treasure swashbuckler list fighter_skills more arch light_sword more arch skill_stealing more arch skill_singing more arch dagger more arch amulet more arch sack end treasure warlock_class_items list fighter_skills more arch talisman_evocation more arch b_lsword more arch leather_armour more arch evoker_book_l1 more arch evoker_book_l1 end treasure warrior_class_items list fighter_skills more arch guide_melee more arch b_sword_2 more arch chain_mail more arch b_shield more arch sack end treasure alchemist_class_items list basic_skills more arch skill_one_handed_weapon more arch talisman_alchemist more arch skill_alchemy more arch skill_thaumaturgy more arch spell_alchemy more arch guide_alchemy more arch cauldron more arch robe more arch evoker_book_l1 more arch sorcerer_book_l1 more arch b_dagger end treasure devotee_class_items list wizard_skills more arch skill_evocation more arch guide_priest more arch robe more arch cleric_book_l1 more arch evoker_book_l1 more arch evoker_book_l1 more arch b_dagger end treasure evoker_class_items list basic_skills more arch skill_one_handed_weapon more arch talisman_evoker more arch robe more arch evoker_book_l1 more arch evoker_book_l1 more arch b_ssword_1 more arch staff end treasure sorcerer_class_items list basic_skills more arch skill_sorcery more arch guide_wizard more arch sorcerer_book_l1 more arch sorcerer_book_l1 more arch sorcerer_book_l1 more arch skill_sense_magic more arch skill_thaumaturgy more arch sorcerer_hat more arch robe end treasure summoner_class_items list basic_skills more arch skill_one_handed_weapon more arch skill_praying more arch guide_summon more arch talisman_summoner more arch robe more arch summoner_book_l1 more arch summoner_book_l1 more arch b_ssword_1 end treasure wizard_class_items list wizard_skills more arch skill_sorcery more arch robe more arch sorcerer_book_l1 more arch sorcerer_book_l1 more arch b_dagger end #treasure wizard_class_items # list wizard_skills # more # arch skill_sorcery # more # arch guide_wizard # more # arch robe # more # arch sorcerer_book_l1 # more # arch sorcerer_book_l1 # more # arch sorcerer_book_l1 # more # arch b_dagger # end # This is a list of the first level spells for each magic # skill - needed to give new characters spellbooks they can use. # treasureone evocation_l1 arch spell_icestorm chance 5 more arch spell_small_snowstorm chance 5 more arch spell_small_bullet chance 5 end # treasureone praying_l1 arch spell_cause_light_wounds chance 5 more arch spell_holy_word chance 5 more arch spell_light chance 2 more arch spell_minor_healing chance 5 more arch spell_turn_undead chance 3 end # treasureone sorcery_l1 arch spell_detect_magic chance 2 more arch spell_magic_bullet chance 5 more arch spell_magic_missile chance 5 more arch spell_slow chance 2 more arch spell_spark_shower chance 5 end # treasureone pyromancy_l1 arch spell_burning_hands chance 5 more arch spell_small_fireball chance 5 more arch spell_sm_lightning chance 5 end # treasureone summoning_l1 arch spell_lesser_summon_golem end ############################################################## # ability-treasure for dragon players ############################################################## treasure dragon_ability_fire arch direct_attune_fire more arch fire_clawing more arch spell_dragonbreath end treasure dragon_ability_cold arch direct_attune_cold more arch ice_clawing more arch spell_large_icestorm end treasure dragon_ability_elec arch direct_attune_elec more arch electric_clawing more arch spell_ball_lightning more arch dragon_ability_xrays end treasure dragon_ability_poison arch spell_poison_cloud more arch poison_clawing end ############################################################## treasure dwarf_player_items arch skill_smithery end treasure elf_player_items arch elf_player_force more arch bow magic 2 more arch arrow magic 3 nrof 100 more arch quiver more arch skill_bowyer more arch skill_woodsman more arch skill_missile_weapon end treasure fenx_player_items arch fenx_player_force more arch bow more arch arrow nrof 100 more arch quiver more arch skill_woodsman more arch skill_missile_weapon more arch no_class_face_change more arch skill_jumping more arch skill_singing end treasure fireborn_player_items arch skill_levitate more arch fireborn_player_force more arch skill_flame_touch more arch skill_pyromancy more arch skill_praying more arch no_class_face_change more arch ring magic 5 more arch power_crystal more arch amulet magic 3 more arch pyro_book_l1 more arch cleric_book_l1 end treasure fireborn arch skill_levitate more arch skill_missile_weapon more list basic_skills more arch skill_flame_touch more arch skill_pyromancy more arch skill_praying more arch ring magic 5 more arch power_crystal more arch amulet magic 3 more arch cleric_book_l1 more arch pyro_book_l1 more arch pyro_book_l1 more arch pyro_book_l1 end treasure gnome_player_items arch skill_praying end treasure halfling_player_items arch skill_stealing more arch skill_hide end treasure human_player_items list random_knowledge end treasure northman_player_items arch bighorned_helmet end treasure dragon_player_items arch dragon_skin_force more arch dragon_ability_force more arch skill_levitate more arch skill_clawing more arch skill_woodsman more arch abil_burning_hands more arch abil_medium_fireball more arch no_class_face_change more arch skill_pyromancy end treasure half_orc_player_items arch skill_stealing end treasure quetzalcoatl_player_items arch skill_levitate more arch skill_clawing more arch abil_burning_hands more arch abil_medium_fireball more arch no_class_face_change more arch skill_pyromancy end treasure serpentman_player_items arch no_class_face_change more arch skill_clawing more arch skill_jumping end treasure troll_player_items arch troll_player_force more arch no_class_face_change end treasure viking list fighter_skills more arch leather_armour more arch sword more arch skill_bargaining more arch b_small_shield more arch bighorned_helmet end treasure wraith_player_items arch wraith_player_force more arch skill_wraith_feed more arch no_class_face_change end treasureone random_food arch food chance 35 more arch booze chance 14 more arch poison chance 13 more arch water chance 8 more arch apple chance 3 more arch wine chance 3 more arch coffee chance 1 more arch chocolate chance 3 more arch carrot chance 1 more arch fishfood chance 4 more arch mandrake_root chance 1 more arch cabbage chance 2 more arch potato chance 3 more arch loaf chance 8 more arch roast_bird chance 3 more arch mint chance 1 more arch clover chance 1 more arch onion chance 1 more arch orange chance 1 more arch cake chance 8 more arch waybread chance 4 end treasureone random_tree_green arch tree3 chance 1 more arch tree4 chance 1 more arch tree5 chance 1 end treasureone shop_alchemy list random_minerals chance 30 more arch water chance 10 more list shop_potions chance 20 more list containers chance 2 more list random_amulet chance 3 more list random_food chance 1 more list random_plant chance 15 more list random_alchemy chance 25 end treasureone shop_gems arch gem chance 5 nrof 1 more arch gem chance 5 nrof 2 more arch gem chance 5 nrof 4 more arch pearl chance 5 nrof 6 more arch pearl chance 5 nrof 12 more arch pearl chance 5 nrof 24 more arch ruby chance 5 nrof 2 more arch ruby chance 5 nrof 4 more arch ruby chance 5 nrof 8 more arch sapphire chance 5 nrof 3 more arch sapphire chance 5 nrof 5 more arch sapphire chance 5 nrof 9 more arch emerald chance 5 nrof 3 more arch emerald chance 5 nrof 6 more arch emerald chance 5 nrof 10 more arch amethyst chance 1 nrof 8 more arch amethyst chance 1 nrof 3 end treasureone shop_general list containers chance 70 more arch key chance 30 end treasureone shop_light arch flint_and_steel chance 40 more arch torch_unlit chance 40 more arch lantern_unlit chance 15 more arch lantern2_unlit chance 5 end treasureone shop_minerals list random_minerals chance 80 more list random_stone chance 20 end treasureone shop_potions arch potion_generic chance 20 more arch dust_generic chance 15 more arch balm_generic chance 10 more arch figurine_generic chance 3 more arch potion_heal chance 5 more arch potion_magic chance 5 more arch potion_fire chance 5 more arch potion_fire2 chance 1 more arch potion_cold chance 5 more arch potion_cold2 chance 1 more arch potion_shielding chance 5 more arch potion_aethereality chance 1 more arch potion_improve chance 5 more arch potion_restoration chance 10 more arch potion_heroism chance 10 more arch vial_poison chance 1 more list random_magical chance 10 end treasure shop_rings arch ring end treasureone shoparchery list missile_weapons chance 99 more list shoparcheryonly chance 1 end # treasureone shoparcheryonly arch reflexbow magic 3 chance 25 more arch reflexbow_ivory magic 3 chance 5 more arch reflexbow_bone magic 3 chance 2 more arch handcrossbow magic 3 chance 18 more arch handcrossbow_ivory magic 3 chance 2 more arch arrow magic 3 chance 50 nrof 30 end treasureone shopweapoeast list random_weapon chance 60 more list shopweapoeastweaps chance 40 end # treasureone shopweapoeastweaps arch kama1 magic 3 chance 5 more arch kama2 magic 3 chance 5 more arch sai1 magic 3 chance 5 more arch sai2 magic 3 chance 5 more arch butterflysword_1 magic 3 chance 5 more arch butterflysword_2 magic 3 chance 5 more arch nunchacu_1 magic 3 chance 10 more arch nunchacu_2 magic 3 chance 10 more arch taifu_1 magic 3 chance 10 more arch t_star1 magic 3 chance 10 more arch hooksword magic 3 chance 10 more arch nineringsword magic 3 chance 10 more arch katana_1 magic 3 chance 10 end treasureone talisman arch talisman_sorcery chance 1 more arch talisman_summoning chance 1 more arch talisman_evocation chance 1 more arch talisman_pyromancy chance 1 end treasure raise_dead_failure arch devil nrof 5 more arch skull nrof 3 end # treasure resurrection_failure arch skull nrof 5 more arch lich nrof 3 end # treasure reincarnation_failure arch lich nrof 5 more arch demilich nrof 3 more arch spectre nrof 1 end # # this basically taken from the code. Not sure if this # is still really accurate. #treasureone reincarnation_races # arch barbarian # chance 1 # more # arch cleric # chance 1 # more # arch elf # chance 1 # more # arch human # chance 1 # more # arch mage # chance 1 # more # arch ninja # chance 1 # more # arch priest # chance 1 # more # arch swashbuckler # chance 1 # more # arch thief # chance 1 # more # arch viking # chance 1 # more # arch warrior # chance 1 # more # arch wizard # chance 1 #end treasureone scroll arch spell_create_bomb chance 1 nrof 1 more arch spell_summon_golem chance 1 nrof 1 more arch spell_summon_fire_elemental chance 1 nrof 1 more arch spell_summon_earth_elemental chance 1 nrof 1 more arch spell_summon_water_elemental chance 1 nrof 1 more arch spell_summon_air_elemental chance 1 nrof 1 more arch spell_magic_mapping chance 3 nrof 2 more arch spell_destruction chance 4 nrof 3 more arch spell_invisible nrof 3 chance 2 more arch spell_improved_invisibility nrof 1 chance 1 more arch spell_armour chance 2 nrof 3 more arch spell_strength nrof 3 chance 2 more arch spell_dexterity nrof 3 chance 2 more arch spell_constitution nrof 3 chance 2 more arch spell_levitate nrof 3 chance 1 more arch spell_confusion nrof 3 chance 2 more arch spell_dark_vision nrof 3 chance 2 more arch spell_xray nrof 3 chance 1 more arch spell_summon_pet_monster nrof 3 chance 1 more arch spell_charging nrof 3 chance 1 more arch spell_alchemy nrof 3 chance 2 more arch spell_identify nrof 9 chance 10 more arch spell_detect_magic nrof 9 chance 10 more arch spell_detect_monster nrof 3 chance 6 more arch spell_ball_lightning nrof 3 chance 1 more arch spell_faery_fire nrof 3 chance 2 ################################################### # cleric spells more arch spell_perceive_self chance 2 nrof 2 more arch spell_word_of_recall chance 2 nrof 1 more arch spell_invisible_to_undead chance 2 nrof 2 more arch spell_cure_confusion chance 4 nrof 1 more arch spell_cure_blindness chance 1 nrof 1 more arch spell_cure_disease chance 5 nrof 3 more arch spell_restoration chance 1 nrof 1 more arch spell_protection_from_cold nrof 3 chance 1 more arch spell_protection_from_electricity nrof 3 chance 1 more arch spell_protection_from_fire nrof 3 chance 1 more arch spell_protection_from_poison nrof 3 chance 1 more arch spell_protection_from_slow nrof 3 chance 1 more arch spell_protection_from_paralysis nrof 3 chance 1 more arch spell_protection_from_draining nrof 3 chance 1 more arch spell_protection_from_magic nrof 3 chance 1 more arch spell_protection_from_attack nrof 3 chance 1 more arch spell_protection_from_confusion nrof 3 chance 1 more arch spell_protection_from_cancellation nrof 3 chance 1 more arch spell_protection_from_depletion nrof 3 chance 1 more arch spell_remove_curse nrof 2 chance 4 more arch spell_remove_damnation nrof 1 chance 1 more arch spell_detect_evil nrof 3 chance 5 more arch spell_detect_curse nrof 5 chance 3 more arch spell_show_invisible nrof 3 chance 1 more arch spell_cause_flu nrof 3 chance 2 more arch spell_cause_leprosy nrof 3 chance 1 more arch spell_cause_anthrax nrof 3 chance 1 more arch spell_cause_typhoid nrof 3 chance 1 more arch spell_cause_cold nrof 3 chance 2 end treasureone evoker_book_low arch spell_armour chance 5 more arch spell_icestorm chance 4 more arch spell_small_snowstorm chance 8 more arch spell_small_bullet chance 8 more arch spell_detect_monster chance 8 more arch spell_mana_blast chance 2 more arch spell_small_manaball chance 3 more arch spell_frostbolt chance 3 more arch spell_manabolt chance 2 more arch spell_medium_snowstorm chance 6 more arch spell_lg_magic_bullet chance 4 more arch spell_rune_of_frost chance 3 more arch spell_medium_manaball chance 2 more arch spell_large_snowstorm chance 2 end treasureone evoker_book_medium arch spell_bullet_swarm chance 1 more arch spell_large_manaball chance 1 more arch spell_create_frost_wall chance 2 more arch spell_bullet_storm chance 1 more arch spell_cancellation chance 1 more arch spell_create_pool_of_chaos chance 1 end treasureone evoker_book_high arch spell_build_bullet_wall chance 1 more arch spell_large_icestorm chance 1 more arch spell_sigil chance 1 end treasureone evocation_book list evoker_book_low chance 20 nrof 1 more list evoker_book_medium chance 20 magic 6 nrof 1 more list evoker_book_high chance 20 magic 11 nrof 1 end # These are arranged in level, then alphabetical order # treasureone prayer_book_low arch spell_cause_light_wounds chance 4 more arch spell_holy_word chance 4 more arch spell_light chance 3 more arch spell_minor_healing chance 5 more arch spell_turn_undead chance 4 more arch spell_bless chance 3 more arch spell_cause_cold chance 5 more arch spell_cause_flu chance 5 more arch spell_curse chance 3 more arch spell_staff_to_snake chance 1 more arch spell_cause_medium_wounds chance 3 more arch spell_detect_evil chance 5 more arch spell_protection_from_cold chance 3 more arch spell_summon_cult_monsters chance 2 more arch spell_consecrate chance 1 more arch spell_cure_poison chance 5 more arch spell_medium_healing chance 5 more arch spell_pacify chance 3 more arch spell_protection_from_electricity chance 3 more arch spell_banishment chance 1 more arch spell_cause_heavy_wounds chance 2 more arch spell_cause_leprosy chance 5 more arch spell_command_undead chance 3 more arch spell_cure_disease chance 4 more arch spell_darkness chance 1 more arch spell_detect_curse chance 3 more arch spell_protection_from_fire chance 2 end # treasureone prayer_book_medium arch spell_call_holy_servant chance 3 more arch spell_protection_from_poison chance 2 more arch spell_cure_confusion chance 2 more arch spell_holy_orb chance 3 more arch spell_protection_from_confusion chance 2 more arch spell_protection_from_depletion chance 2 more arch spell_protection_from_slow chance 2 more arch spell_regeneration chance 1 more arch spell_show_invisible chance 1 more arch spell_cause_typhoid chance 1 more arch spell_major_healing chance 3 more arch spell_protection_from_paralysis chance 2 more arch spell_remove_curse chance 1 more arch spell_cure_blindness chance 2 more arch spell_holy_possession chance 3 more arch spell_protection_from_draining chance 2 more arch spell_heal chance 1 more arch spell_protection_from_magic chance 1 more # arch spell_raise_dead # chance 1 # more arch spell_summon_avatar chance 1 more arch spell_word_of_recall chance 1 end # treasureone prayer_book_high arch spell_protection_from_cancellation chance 2 more arch spell_cause_anthrax chance 1 more arch spell_glyph chance 1 more arch spell_holy_wrath chance 1 more arch spell_protection_from_attack chance 1 more arch spell_restoration chance 1 # more # arch spell_resurrection # chance 1 # more # arch spell_reincarnation # chance 1 end # treasureone prayer_book list prayer_book_low chance 20 nrof 1 more list prayer_book_medium chance 30 magic 6 nrof 1 more list prayer_book_high chance 40 magic 11 nrof 1 end treasureone pyro_book_low arch spell_burning_hands chance 8 more arch spell_small_fireball chance 8 more arch spell_sm_lightning chance 8 more arch spell_firebolt chance 4 more arch spell_medium_fireball chance 6 more arch spell_faery_fire chance 2 more arch spell_large_lightning chance 3 more arch spell_rune_of_fire chance 5 more arch spell_large_fireball chance 2 end treasureone pyro_book_medium arch spell_create_bomb chance 3 more arch spell_create_fire_wall chance 3 more arch spell_rune_of_shocking chance 3 more arch spell_rune_of_blasting chance 2 end treasureone pyro_book_high arch spell_firetrap chance 1 more arch spell_build_fireball_wall chance 1 more arch spell_build_lightning_wall chance 1 end treasureone pyromancy_book list pyro_book_low chance 20 nrof 1 more list pyro_book_medium chance 30 magic 6 nrof 1 more list pyro_book_high chance 40 magic 11 nrof 1 end treasureone sorcery_book_low arch spell_detect_magic chance 10 more arch spell_magic_bullet chance 10 more arch spell_magic_missile chance 8 more arch spell_marking_rune chance 5 more arch spell_probe chance 6 more arch spell_slow chance 7 more arch spell_confusion chance 7 more arch spell_paralyze chance 8 more arch spell_poison_cloud chance 6 more arch spell_strength chance 6 more arch spell_charisma chance 4 more arch spell_dexterity chance 4 more arch spell_constitution chance 4 more arch spell_disarm chance 1 more arch spell_fear chance 5 more arch spell_dark_vision chance 2 more arch spell_magic_mapping chance 5 more arch spell_steambolt chance 1 more arch spell_transference chance 1 end treasureone sorcery_book_medium arch spell_invisible chance 4 more arch spell_levitate chance 2 more arch spell_rune_of_transference chance 1 more arch spell_animate_weapon chance 4 more arch spell_antimagic_rune chance 1 more arch spell_mass_confusion chance 3 more arch spell_missile_swarm chance 1 more arch spell_identify chance 5 more arch spell_improved_invisibility chance 1 more arch spell_dimension_door chance 1 more arch spell_xray chance 1 end treasureone sorcery_book_high arch spell_magic_drain chance 1 more arch spell_magic_rune chance 1 more arch spell_rune_of_death chance 1 more arch spell_destruction chance 1 more arch spell_town_portal chance 1 end treasureone sorcery_book list sorcery_book_low chance 20 nrof 1 more list sorcery_book_medium chance 30 magic 6 nrof 1 more list sorcery_book_high chance 40 magic 11 nrof 1 end treasureone summoner_book_low arch spell_create_missile chance 1 more arch spell_lesser_summon_golem chance 4 more arch spell_earth_to_dust chance 2 more arch spell_summon_fog chance 2 more arch spell_summon_golem chance 8 more arch spell_summon_pet_monster chance 7 more arch spell_alchemy chance 5 more arch spell_create_earth_wall chance 6 more arch spell_summon_earth_elemental chance 3 more arch spell_counterspell chance 1 more arch spell_charm_monsters chance 1 more arch spell_summon_water_elemental chance 4 more arch spell_mystic_fist chance 1 end treasureone summoner_book_medium arch spell_create_food chance 4 more arch spell_counterwall chance 1 more arch spell_summon_air_elemental chance 5 more arch spell_summon_fire_elemental chance 2 more arch spell_build_director chance 1 end treasureone summoner_book_high arch spell_dancing_sword chance 1 more arch spell_pentagram chance 1 end treasureone summoner_book list summoner_book_low chance 20 nrof 1 more list summoner_book_medium chance 30 magic 6 nrof 1 more list summoner_book_high chance 40 magic 11 nrof 1 end ############################################################## # # Mage Hound # treasure mage_hound arch dog nrof 1 magic 5 more arch wolf nrof 1 magic 7 more arch mastif nrof 1 magic 12 more arch dire_wolf nrof 1 magic 15 more arch hellhound nrof 1 magic 20 more arch dire_wolf_sire nrof 1 magic 30 more arch s_mastif nrof 1 magic 45 more arch gr_hellhound nrof 1 magic 60 end ############################################################## # # Pet Monsters - # treasure mage_pet_monster arch bat nrof 2 magic 1 more arch bird nrof 1 magic 3 more arch bee nrof 3 magic 4 more arch spider nrof 1 magic 5 more arch killer_bee nrof 2 magic 6 more arch pixie nrof 1 magic 7 more arch skeleton nrof 2 magic 8 more arch stalker nrof 1 magic 9 more arch devil nrof 2 magic 11 more arch beholder nrof 2 magic 13 more arch dark_elf nrof 3 magic 15 more arch skull nrof 1 magic 17 more arch angel nrof 2 magic 20 more arch vampire nrof 1 magic 25 end # This could be really customized a lot further instead # of using the default staff/wand lists. Set this # balance simply because there are a lot more mage type spells # then priest ones. treasureone rod_spell list wand chance 7 more list staff chance 3 end treasureone staff arch spell_sunspear nrof 35 chance 10 more arch spell_turn_undead nrof 40 chance 10 more arch spell_banishment nrof 3 chance 5 more arch spell_darkness nrof 10 chance 10 more arch spell_perceive_self nrof 20 chance 5 more arch spell_word_of_recall nrof 3 chance 5 more arch spell_minor_healing nrof 40 chance 5 more arch spell_medium_healing nrof 12 chance 5 more arch spell_heal nrof 5 chance 5 more arch spell_show_invisible nrof 8 chance 4 more arch spell_cause_flu nrof 5 chance 2 more arch spell_cause_cold nrof 5 chance 2 end treasureone wand arch spell_firebolt nrof 35 chance 10 more arch spell_frostbolt nrof 30 chance 10 more arch spell_sm_lightning nrof 40 chance 10 more arch spell_large_lightning nrof 20 chance 10 more arch spell_steambolt nrof 10 chance 10 more arch spell_magic_bullet nrof 99 chance 15 more arch spell_lg_magic_bullet nrof 33 chance 10 more arch spell_small_fireball nrof 40 chance 15 more arch spell_medium_fireball nrof 20 chance 10 more arch spell_large_fireball nrof 10 chance 6 more arch spell_small_snowstorm nrof 40 chance 15 more arch spell_medium_snowstorm nrof 20 chance 10 more arch spell_large_snowstorm nrof 10 chance 5 more arch spell_poison_cloud nrof 30 chance 10 more arch spell_icestorm nrof 15 chance 15 more arch spell_create_bomb nrof 5 chance 5 more arch spell_fear nrof 25 chance 8 more arch spell_slow nrof 30 chance 10 more arch spell_counterspell nrof 20 chance 8 more arch spell_wonder nrof 20 chance 4 more arch spell_burning_hands nrof 20 chance 10 more arch spell_mass_confusion nrof 15 chance 5 more arch spell_magic_missile nrof 75 chance 10 more arch spell_summon_golem nrof 10 chance 10 more arch spell_summon_fire_elemental nrof 4 chance 5 more arch spell_summon_fire_elemental nrof 10 chance 5 more arch spell_summon_water_elemental nrof 8 chance 5 more arch spell_summon_air_elemental nrof 6 chance 5 more arch spell_dimension_door nrof 8 chance 10 more arch spell_magic_mapping nrof 20 chance 10 more arch spell_create_earth_wall nrof 12 chance 8 more arch spell_create_pool_of_chaos nrof 10 chance 6 more arch spell_counterwall nrof 30 chance 10 more arch spell_probe nrof 40 chance 10 more arch spell_summon_pet_monster nrof 15 chance 10 more arch spell_summon_fog nrof 10 chance 8 more arch spell_cancellation nrof 10 chance 3 more arch spell_detect_magic nrof 50 chance 5 more arch spell_ball_lightning nrof 30 chance 1 # Polymorph is disabled by default. # more # arch spell_polymorph # nrof 20 # chance 2 end # end of wand # this is really used for wonder - need a source of # all spells it should cast - currently, just take all # that show up in books. This should probably be reworked # to be more selective, so wonder could at least be considered # somewhat useful - maybe toss in some spell that are quest items # even to make things interesting. treasureone wonder_spells list evocation_book chance 5 more list sorcery_book chance 5 more list pyromancy_book chance 5 more list summoner_book chance 5 end treasureone traps list physical_traps chance 50 more list magical_traps chance 50 end treasureone physical_traps arch trap_diseased_needle chance 70 more arch trap_blades chance 33 more arch trap_needle chance 33 more arch trap_spikes2 chance 33 end treasureone magical_traps arch rune_medium_fireball chance 8 more arch rune_burning_hands chance 8 more arch rune_poison_cloud chance 8 more arch rune_create_bomb chance 8 more arch rune_paralysis chance 8 more arch rune_shock chance 8 more arch rune_confusion chance 8 more arch rune_icestorm chance 8 more arch rune_drain_magic chance 8 more arch rune_blast chance 8 more arch rune_fire chance 8 more arch rune_frost chance 8 more list nastier_magical_traps magic 6 chance 20 end treasureone nastier_magical_traps arch rune_summon_air_elemental chance 10 more arch rune_dragonbreath chance 10 more arch rune_large_icestorm chance 10 more arch rune_large_fireball chance 10 more arch rune_ball_lightning chance 10 more arch rune_summon_devil chance 10 more arch rune_summon_earth_elemental chance 10 more arch rune_summon_fire_elemental chance 10 more arch rune_summon_water_elemental chance 10 more arch rune_death chance 10 end # # This file contains various treasures, with generation rules. # # $Id: treasures.trs 16712 2012-01-18 17:20:11Z meflin2 $ # # As of version 0.91.1, what this file was extended to handle list # re-linking and generation of only 1 item on that list. This does away # with the treasure lists from being embedded in the program. # # See the file doc/crossfire.doc for information on the format of this # file # # #NOTE: GOD treasure lists have been moved out to the arches # # # This is basically given to monsters that might get spellbooks or use # wands/rods/etc. This is mostly necessary so that if they become # the pets of players, the player will get exp awarded to the correct # skill. treasure skill_use_magic_item arch skill_use_magic_item end # treasure all_spell_skills arch skill_use_magic_item more arch skill_evocation more arch skill_praying more arch skill_pyromancy more arch skill_sorcery more arch skill_summoning end # ############################################################## # # BODY PARTS - # # human/man-sized body parts treasureone human_parts arch fl_corpse chance 60 more arch arm nrof 2 chance 15 more arch leg nrof 2 chance 15 more arch head chance 15 more arch eye nrof 2 chance 1 more arch tongue chance 1 more arch foot nrof 2 chance 10 more arch hand nrof 2 chance 10 more arch finger nrof 5 chance 3 more arch skin chance 1 more arch brain chance 1 end # treasure door list traps chance 30 end # # skill scrolls # better scrolls are harder to find # ordered by skill names treasureone random_knowledge arch scroll_alchemy chance 10 more arch scroll_bargaining chance 5 more arch scroll_bowyer chance 10 more # clawing is not something you can learn arch scroll_climbing chance 10 more arch scroll_disarm_traps chance 10 more arch scroll_evocation chance 5 more arch scroll_find_traps chance 10 more # flame touch is not something you can learn arch scroll_hiding chance 9 more # the inscription skill is only available as a pen arch stylus chance 10 more arch scroll_jewelry chance 10 more arch scroll_jumping chance 10 more arch scroll_karate chance 8 more # levitation is not something to be learned arch scroll_literacy chance 15 more # not knowledge per se, but is a random skill arch lockpicks chance 8 more # meditation can not be learned arch scroll_missile_weap chance 15 more arch scroll_one_handed_weapons chance 10 more arch scroll_oratory chance 5 more arch scroll_praying chance 15 more arch scroll_punching chance 5 more arch scroll_pyromancy chance 5 more arch scroll_sense_curse chance 5 more arch scroll_sense_mag chance 5 more # set traps is disabled arch scroll_singing chance 5 more arch scroll_smithing chance 5 more arch scroll_sorcery chance 5 more arch scroll_stealing chance 9 more arch scroll_summoning chance 5 more arch scroll_thaumaturgy chance 9 more # throwing is a native ability, but give slight chance for unclassed players arch scroll_throwing chance 1 more arch scroll_two_handed_weapons chance 10 more # use magic is a native ability, but give slight chance for unclassed players arch scroll_use_magic_item chance 1 more arch scroll_woodsman chance 10 end # traps! --peterm treasureone needle_diseases arch warts chance 20 more arch atheletes_foot chance 5 more arch tooth_decay chance 5 more arch tapeworms chance 20 more arch egg_disease chance 20 more arch diarrhea chance 20 more arch incontinence chance 20 more arch scurvy chance 20 more arch flaming_fart chance 20 end treasureone random_shop list random_weapon chance 15 more list random_armour chance 15 more list random_food chance 15 more list random_special chance 5 end treasureone random_weapon list missile_weapons chance 5 more list melee_weapons chance 10 end treasureone random_armour arch b_full_helmet magic 4 chance 5 more arch b_helmet magic 4 chance 5 more arch b_horned_helmet magic 4 chance 5 more arch b_gauntlets magic 4 chance 5 more arch b_plate_mail magic 4 chance 5 more arch b_scale_mail magic 4 chance 5 more arch b_shield magic 4 chance 5 more arch b_small_shield magic 4 chance 5 more # arch ring_mail magic 4 chance 5 more arch ring_mail magic 4 chance 5 more arch plate_mail magic 4 chance 5 more arch robe magic 4 chance 5 more arch leather_armour magic 4 chance 5 more arch scale_mail magic 4 chance 5 more arch ring_mail2 magic 3 chance 5 more arch chain_mail magic 3 chance 5 more arch full_helmet magic 2 chance 5 more arch spiked_shield magic 1 chance 1 more arch horned_helmet magic 1 chance 5 more arch helmet magic 2 chance 5 more arch bighorned_helmet magic 1 chance 5 more arch shield magic 2 chance 5 more arch small_shield magic 1 chance 5 more arch high_shield magic 2 chance 5 more arch round_shield magic 1 chance 5 more arch low_boots magic 1 chance 5 more arch gauntlets magic 2 chance 1 more arch high_boots magic 3 chance 3 more arch high_boots_b magic 3 chance 1 more arch high_boots_w magic 3 chance 1 more arch tunic magic 3 chance 1 more arch gloves magic 2 chance 2 more arch gloves_b magic 2 chance 1 more arch gloves_w magic 2 chance 1 more arch lapron magic 1 chance 1 more arch cloak chance 10 end treasure random_mushroom arch mushroom_1 chance 50 no arch mushroom_2 chance 50 no arch mushroom_3 chance 50 no arch mandrake_root chance 10 end end end end # this is used for shop_special treasureone random_special arch scroll_new nrof 3 chance 5 more arch scroll_new nrof 2 chance 5 more arch scroll_new chance 10 more arch torch_unlit nrof 8 chance 3 more arch torch_unlit nrof 3 chance 7 more arch flint_and_steel chance 5 more arch amulet chance 10 more arch wand chance 15 more arch staff chance 5 more arch holy_symbol chance 3 more arch ring chance 5 more list random_books chance 5 more arch emerald chance 5 nrof 8 more arch sapphire chance 5 nrof 5 more arch gem chance 5 nrof 1 more arch ruby chance 5 nrof 3 more arch pearl chance 5 nrof 16 more list special_uncommon magic 10 chance 5 more list special_uncommon magic 8 chance 5 more list special_uncommon magic 5 chance 5 more arch potion_heroism chance 5 end treasureone random_coin arch goldcoin chance 5 nrof 5 more arch goldcoin chance 5 nrof 10 more arch goldcoin chance 5 nrof 15 more arch goldcoin chance 5 nrof 20 more arch goldcoin chance 5 nrof 25 more arch silvercoin chance 5 nrof 25 more arch silvercoin chance 5 nrof 50 more arch silvercoin chance 5 nrof 75 more arch silvercoin chance 5 nrof 100 more arch silvercoin chance 5 nrof 150 more arch platinacoin chance 5 nrof 10 more arch platinacoin chance 5 nrof 2 more arch platinacoin chance 5 nrof 4 more arch platinacoin chance 5 nrof 6 end treasureone random_wealth arch goldcoin chance 5 nrof 5 more arch goldcoin chance 5 nrof 10 more arch goldcoin chance 5 nrof 15 more arch goldcoin chance 5 nrof 20 more arch goldcoin chance 5 nrof 25 more arch silvercoin chance 5 nrof 25 more arch silvercoin chance 5 nrof 50 more arch silvercoin chance 5 nrof 75 more arch silvercoin chance 5 nrof 100 more arch silvercoin chance 5 nrof 150 more arch platinacoin chance 5 nrof 1 more arch platinacoin chance 5 nrof 2 more arch platinacoin chance 5 nrof 4 more arch platinacoin chance 5 nrof 6 more arch gem chance 5 nrof 1 more arch gem chance 5 nrof 1 more arch pearl chance 5 nrof 2 more arch pearl chance 5 nrof 4 more arch ruby chance 5 nrof 1 more arch ruby chance 5 nrof 2 more arch sapphire chance 5 nrof 1 more arch sapphire chance 5 nrof 3 more arch emerald chance 5 nrof 2 more arch emerald chance 5 nrof 5 end treasureone random_gem arch gem chance 5 nrof 1 more arch gem chance 5 nrof 2 more arch pearl chance 5 nrof 4 more arch pearl chance 5 nrof 6 more arch ruby chance 5 nrof 2 more arch ruby chance 5 nrof 4 more arch sapphire chance 5 nrof 2 more arch sapphire chance 5 nrof 4 more arch emerald chance 5 nrof 10 more arch emerald chance 5 nrof 4 end treasureone starting_wealth arch goldcoin nrof 120 chance 5 more arch silvercoin nrof 1000 chance 5 more arch platinacoin nrof 40 chance 5 end treasureone random_plant arch rose_pink nrof 5 chance 8 more arch rose_yellow nrof 5 chance 12 more arch rose_white nrof 4 chance 10 more arch rose_red nrof 3 chance 8 more arch flowers_permanent chance 15 nrof 5 more arch clover nrof 2 chance 5 more arch mint chance 5 more arch mandrake_root chance 3 more list random_mushroom chance 10 magic 15 end treasureone random_alchemy arch cauldron chance 18 more arch cauldron chance 3 magic 5 more list random_books chance 10 more arch scroll_alchemy chance 2 more arch min_oil chance 12 nrof 5 more list shop_gems chance 3 magic 5 more arch phil_sulphur chance 4 nrof 3 more arch phil_salt chance 5 nrof 4 more arch phil_phosphorus chance 3 nrof 2 more arch phil_oil chance 5 nrof 3 more arch water chance 3 nrof 3 more list random_plant chance 10 magic 5 more arch mercury chance 8 more arch lead chance 8 more arch true_lead chance 2 more arch fix_mercury chance 1 end treasureone random_potion # list NONE # chance 30 # more arch potionstr chance 5 more arch potionint chance 5 more arch potioncha chance 5 more arch potionwis chance 5 more arch potioncon chance 5 more arch potiondex chance 5 more arch potionpow chance 5 more list shop_potions magic 2 chance 5 more list shop_potions magic 6 chance 5 more list shop_potions magic 12 chance 5 more list random_potion magic 8 chance 5 more list random_potion magic 10 chance 10 more list random_potion magic 12 chance 5 more list random_potion magic 14 nrof 1 chance 5 more list special_uncommon magic 14 nrof 1 chance 5 more list special_uncommon magic 13 nrof 1 chance 5 more list special_uncommon magic 12 chance 5 more list special_uncommon magic 10 chance 5 more list special_uncommon magic 7 chance 5 more list uncommon_items magic 3 chance 5 end treasureone special_uncommon list NONE chance 5 more arch bracers_ac magic 4 chance 10 more arch mithril_chainmail magic 4 chance 1 more arch lockpicks chance 10 more list rare_artifacts magic 14 chance 5 more list uncommon_artifacts magic 13 chance 5 more list uncommon_artifacts magic 7 chance 5 more arch potion_fire chance 5 more arch potion_cold chance 5 more arch potion_heal chance 5 more arch potion_magic chance 5 more arch potion_restoration chance 5 more arch rod_light chance 5 more list uncommon_items magic 2 chance 5 more list uncommon_items magic 4 chance 5 more list uncommon_items magic 6 chance 5 more list uncommon_items magic 8 chance 5 more arch ring_nodrain chance 5 end treasureone containers arch sack chance 25 more arch bag chance 25 more arch pouch chance 20 more arch key_ring chance 20 more arch quiver chance 10 more arch quiver_throwing chance 5 more arch scrollcase chance 5 end treasureone missile_weapons arch bow magic 3 chance 10 more arch arrow magic 3 chance 35 nrof 30 more arch crossbow chance 10 magic 3 more arch bolt chance 35 magic 3 nrof 25 more arch huntersbow magic 3 chance 1 more arch longbow magic 3 chance 1 more arch compositebow magic 3 chance 1 more arch quiver chance 10 end treasureone throw_weapons arch t_dagger magic 2 nrof 8 chance 30 more arch spear magic 2 nrof 4 chance 35 more arch axe_2 magic 2 nrof 5 chance 15 more arch hammer_2 magic 2 nrof 4 chance 15 more arch t_star1 magic 4 nrof 12 chance 5 more arch trident magic 3 nrof 3 chance 5 more arch quiver_throwing chance 5 end # melee_weapons combines old list 11 and list 12 together. List 26 # is obsolete now treasureone melee_weapons arch b_dagger magic 4 chance 5 more arch b_bsword_1 magic 4 chance 5 more arch b_bsword_2 magic 4 chance 5 more arch b_lsword magic 4 chance 5 more arch b_scimitar magic 4 chance 5 more arch b_ssword_1 magic 4 chance 5 more arch b_ssword_2 magic 4 chance 5 more arch b_sword_1 magic 4 chance 5 more arch b_axe1 magic 4 chance 5 more # arch dagger magic 4 chance 5 more arch shortsword_2 magic 4 chance 5 more arch t_dagger magic 4 chance 5 more arch shortsword magic 4 chance 5 more arch light_sword magic 4 chance 5 more arch falchion magic 4 chance 5 more arch sabre magic 4 chance 5 more arch scimitar magic 4 chance 5 more arch spear magic 4 chance 5 more arch lspear magic 4 chance 5 more arch poleaxe magic 4 chance 2 more arch magnifier magic 4 chance 1 more arch sword magic 4 chance 5 more arch sword_2 magic 4 chance 5 more arch sword_3 magic 4 chance 5 more arch sword_4 magic 4 chance 5 more arch broadsword magic 4 chance 5 more arch broadsword_2 magic 4 chance 5 more arch club magic 3 chance 5 more arch mace magic 4 chance 5 more arch mace_2 magic 4 chance 5 more arch hammer magic 4 chance 5 more arch hammer_2 magic 4 chance 5 more arch stonehammer magic 3 chance 5 more arch axe magic 4 chance 5 more arch axe_2 magic 4 chance 5 more arch axe_3 magic 4 chance 5 more arch axe_4 magic 4 chance 5 more arch stoneaxe magic 3 chance 5 more arch morningstar magic 4 chance 5 more arch large_morningstar magic 4 chance 5 more list uncommon_weapons chance 10 more list rare_weapons chance 1 end treasureone rare_weapons arch brdaxe1 magic 4 chance 5 more arch sflail1 magic 4 chance 2 more arch dhaxe1 magic 4 chance 2 more arch shaxe1 magic 4 chance 2 more arch dhaxe2 magic 6 chance 1 more arch sai1 magic 4 chance 1 more arch sai2 magic 4 chance 1 more arch kama1 magic 4 chance 1 more arch kama2 magic 4 chance 1 more arch vlongsword magic 4 chance 2 end treasureone uncommon_weapons arch katana_1 magic 4 chance 5 more arch nunchacu_1 magic 3 chance 5 more arch nunchacu_2 magic 3 chance 5 more arch taifu_1 magic 3 chance 5 more arch shovel_1 magic 2 chance 5 more arch stake magic 2 chance 5 more arch scythe1 magic 4 chance 2 more arch sickle1 magic 4 chance 2 more arch t_star1 magic 4 chance 3 more arch trident magic 3 chance 5 end # uncommon artifacts treasureone uncommon_artifacts arch potion_shielding chance 5 more arch mjoellnir chance 5 more arch bonecrusher chance 5 more arch firebrand chance 5 more arch frostbrand chance 5 more arch deathbringer chance 5 more arch dragonslayer chance 5 more arch skullcleaver chance 5 more arch demonbane chance 5 more arch sting chance 5 more arch levitationboots chance 5 more arch reflector chance 5 more arch holy_shield chance 5 more arch girdle_dam chance 5 more arch dragon_mail chance 5 more arch dragon_shield chance 5 more arch helmet_of_xrays chance 5 more arch amulet_lifesave chance 5 more arch elvenboots chance 5 end treasureone random_magical arch amulet chance 10 more arch ring chance 10 more list random_books chance 10 more arch wand chance 10 more arch staff chance 5 more arch rod_light chance 5 more arch scroll_new nrof 9 chance 30 more arch minor_potion_restoration chance 15 more arch medium_potion_restoration chance 10 more arch major_potion_restoration chance 5 more arch potion_restoration chance 5 more arch gem nrof 1 chance 5 more arch pearl chance 5 nrof 8 more arch ruby chance 5 nrof 2 more arch sapphire chance 5 nrof 3 more arch emerald chance 5 nrof 5 more list special_uncommon magic 9 chance 5 end # list 15 - rare artifacts treasureone rare_artifacts list NONE chance 20 more arch elven_bow chance 5 more arch helmet_of_brilliance chance 5 more arch holy_avenger chance 5 more arch darkblade chance 5 more arch excalibur chance 5 more arch stormbringer chance 5 more arch mournblade chance 5 more arch defender chance 5 more arch speedboots chance 5 more arch girdle_str chance 5 more arch girdle_con chance 5 more arch girdle_strcon chance 5 more arch gauntlets_str chance 5 more arch gauntlets_dex chance 5 more arch bracers_dex chance 5 more arch gram chance 5 end # list 16. Make the improve weapon scrolls possibly, but just give # them a very low chance. In the old method, they were supposed to # appear in shops, but never did, due to how the code worked out. treasureone random_scroll arch scroll_new chance 10 nrof 5 more arch scroll_new chance 20 nrof 4 more arch scroll_new chance 30 nrof 3 more arch scroll_new chance 40 nrof 2 more arch scroll_new chance 60 more arch prepare_weapon chance 1 more arch improve_cha chance 1 more arch improve_con chance 1 more arch improve_damage chance 1 more arch improve_dex chance 1 more arch improve_enchantment chance 1 more arch improve_int chance 1 more arch improve_pow chance 1 more arch improve_str chance 1 more arch improve_weight chance 1 more arch improve_wis chance 1 more list random_knowledge chance 7 more arch ench_armour chance 3 more list random_read chance 5 end treasure random_amulet arch amulet chance 98 no list talisman end end treasureone random_wands arch wand chance 95 more arch staff chance 30 more arch rod_light chance 5 more arch rod_heavy chance 1 end # for shop treasureone random_books arch cleric_book chance 20 more arch evoker_book chance 15 more arch pyro_book chance 15 more arch sorcerer_book chance 15 more arch summoner_book chance 15 more list random_read chance 5 end # treasureone random_read arch tome chance 45 more arch book_clasp chance 65 more arch scroll chance 65 more arch scroll_2 chance 35 end treasureone random_stone arch mountain_stone chance 15 nrof 3 more arch river_stone chance 20 nrof 6 more arch field_stone chance 25 nrof 6 more arch largenugget chance 5 nrof 3 more arch smallnugget chance 15 nrof 5 end treasureone random_inorganic list random_minerals chance 35 more list random_stone chance 40 more arch rock2 chance 25 end treasureone random_minerals arch largenugget chance 2 nrof 3 more arch smallnugget chance 5 nrof 5 more arch gypsum chance 10 nrof 3 more arch pyrite chance 10 nrof 3 more arch cinnabar chance 8 nrof 2 more arch salt chance 15 nrof 5 more arch phosphorus chance 10 nrof 4 more arch sulphur chance 10 nrof 4 end treasureone random_spells arch scroll_new chance 15 nrof 3 more arch wand chance 10 more arch staff chance 5 more list random_books chance 5 end treasureone random_talisman arch ring chance 40 more arch amulet chance 30 more list talisman chance 5 more list special_uncommon chance 5 end treasureone random_artifact list uncommon_artifacts chance 10 more list rare_artifacts chance 5 end treasureone uncommon_items arch horn chance 5 more arch horn2 chance 5 more arch crown magic 3 chance 15 more arch rod_light chance 35 more arch rod_heavy chance 10 more arch lockpicks chance 5 more list NONE chance 25 end treasure poor_old arch bow chance 5 yes arch arrow nrof 6 end more arch b_ssword_2 magic 1 chance 5 no arch b_ssword_1 chance 10 no arch b_dagger chance 15 no arch stoneaxe chance 20 no arch club chance 25 end end end end more arch b_small_shield chance 4 more arch silvercoin nrof 80 chance 20 end treasure rich list rich_old more list human_parts chance 20 end treasure standard arch skill_use_magic_item more list standard_old more # non-humaniods are unlikely to have torches! arch torch_unlit nrof 3 chance 1 more list human_parts chance 20 end treasure poor list poor_old more list human_parts chance 20 end # I switched the names to '_old' -- these lists # are just the way standard/rich were before we # started adding bodyparts to the treasure mix. # -b.t. treasure standard_old arch bow magic 1 chance 10 yes arch arrow nrof 10 end no arch crossbow magic 2 chance 5 yes arch bolt nrof 10 end end more arch club magic 1 chance 50 no arch b_dagger magic 2 chance 40 no arch quarterstaff magic 2 chance 30 no arch b_ssword_2 magic 2 chance 20 no arch b_sword_1 magic 2 chance 10 end end end end more arch b_small_shield magic 2 chance 5 no arch b_shield magic 2 chance 5 no arch small_shield magic 2 chance 4 no arch shield magic 2 chance 2 no arch high_shield magic 2 chance 1 end end end end more arch b_helmet magic 1 chance 5 no arch b_horned_helmet magic 1 chance 5 no arch b_full_helmet magic 1 chance 2 no arch bighorned_helmet magic 1 chance 1 end end end more arch goldcoin chance 8 nrof 2 more arch silvercoin chance 10 nrof 5 more arch wand chance 2 more arch staff chance 1 more arch ring chance 2 more arch scroll_new chance 2 end treasure rich_old arch bow magic 4 chance 50 yes arch arrow nrof 50 end no arch crossbow magic 4 chance 40 yes arch bolt nrof 40 end end more arch club chance 20 no arch dagger magic 4 chance 20 no arch quarterstaff magic 4 chance 30 no arch shortsword magic 4 chance 40 no arch sword_4 magic 4 chance 60 end end end end more arch shield magic 2 chance 50 no arch small_shield magic 2 chance 40 end more arch full_helmet magic 1 chance 30 no arch helmet magic 1 chance 30 end more arch goldcoin chance 10 nrof 10 more arch wand chance 10 more arch staff chance 2 more arch rod_light chance 2 no arch rod_heavy chance 1 end more list random_books chance 10 more arch ring chance 10 more arch scroll_new chance 15 more arch cloak chance 10 end treasure rod arch rod_light chance 2 no arch rod_heavy chance 1 end end treasure ring arch ring chance 2 end treasure thief_1 arch skill_stealing more arch skill_hide more list poor end treasure throw_stnd arch skill_throwing more list throw_weapons chance 15 more list standard end treasure throw_rich arch skill_throwing more list throw_weapons chance 35 more list rich end ############################################################################## # start of starting equipment for players. # # All players will start with these skills # -- only skills critical to being able to # play should go here. -b.t. treasure basic_skills arch skill_throwing more arch skill_find_traps more arch skill_remove_trap more arch skill_use_magic_item more arch skill_literacy more arch skill_punching end # basic set for fighter players treasure fighter_skills arch skill_one_handed_weapon more arch skill_two_handed_weapon more arch skill_missile_weapon more list basic_skills end # basic set for talisman spellcasting players treasure mage_skills arch talisman_sorcery end # basic set for multi-spellcasting players # Note that removed the spell skill form here, # since many things should start with this package, # but spell might be different. treasure wizard_skills arch skill_one_handed_weapon more arch skill_praying more list basic_skills end treasure prayer_skills arch skill_praying end # treasure monk list basic_skills more arch skill_missile_weapon more arch skill_meditation more arch skill_karate more arch skill_sense_magic more arch robe more arch r_sack more arch sandals end treasure elf list fighter_skills more list mage_skills more arch bow magic 2 more arch skill_bowyer more arch skill_woodsman more arch cloak more arch arrow nrof 50 end treasure human list fighter_skills more arch leather_armour more arch axe more arch helmet more list random_knowledge more arch sack more arch cloak end treasure ninja list fighter_skills more arch skill_jumping more arch skill_hide more arch nunchacu_1 more arch leather_armour more arch bag more arch cloak end treasure warrior list fighter_skills more arch sword more arch skill_oratory more arch high_shield more arch plate_mail more arch sack end treasure barbarian list fighter_skills more arch leather_armour more arch mace more arch skill_climbing more arch skill_woodsman more arch horned_helmet more arch sack end treasure priest list wizard_skills more arch skill_evocation more arch robe more arch quarterstaff more arch cleric_book_l1 more arch cleric_book_l1 more arch amulet end treasure mage list fighter_skills more list mage_skills more arch robe more arch quarterstaff more arch sorcerer_book_l1 more arch evoker_book_l1 end treasure avatar arch spell_summon_pet_monster more arch cloak chance 50 more arch ring_mail magic 4 more arch uw_shield more arch uw_sword more arch ring more arch gem chance 50 nrof 3 end #treasure suprise # arch firechest # chance 30 # no # arch ghost # chance 20 # no # arch gauntlets_str # chance 2 # no # arch elvenboots # chance 2 # no # arch black_pudding # chance 10 # end # end # end # end # end treasure spark arch spell_sm_lightning nrof 6 more arch spell_large_lightning nrof 6 end treasure queen_ant arch gem end # ���������������������������������������������������������������������������crossfire-1.70.0/lib/collect.pl���������������������������������������������������������������������0000644�0000145�0000012�00000032602�11732537036�013244� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl require "util.pl"; if ($#ARGV >= 0) { if ($ARGV[0] =~ m/^--?[hH](elp)?$/) { die ("\nUSAGE: perl collect.pl ARCHDIR\n". "\nWhere ARCHDIR is the directory where you stored the ". "raw archetypes.\n". "This script will then create these files:\n". "archetypes,bmaps,bmaps.paths,faces,treasures.bld,animations.\n" ) } } # archonly is used to only build the archetypes. I find this # very handy if I know I've only changed .arc files - I don't want # to rebuild the other files, because now cvs tries to do diffs # on them as well as commit them, even if there are no changes. $archonly = 0; if ($#ARGV >= 1) { if ($ARGV[1] eq "ARCHONLY") { $archonly = 1; } else {print "Ignoring unknown option: $ARGV[1]\n"; } } $root = $ARGV[0]; $archetypes = "archetypes"; $bmaps = "bmaps"; $faces = "faces"; $treasures = "treasures.bld"; $animations = "animations"; $paths = $bmaps."."."paths"; $faceExt = "\\.[a-zA-Z0-9][A-Z0-9][A-Z0-9]"; $smooths = "smooth"; ### main &info("looking ..."); &traverse($root); $attacktype{ 'physical' } = ( 1 << 0 ); $attacktype{ 'magic' } = ( 1 << 1 ); $attacktype{ 'fire' } = ( 1 << 2 ); $attacktype{ 'electricity' } = ( 1 << 3 ); $attacktype{ 'cold' } = ( 1 << 4 ); $attacktype{ 'confusion' } = ( 1 << 5 ); $attacktype{ 'acid' } = ( 1 << 6 ); $attacktype{ 'drain' } = ( 1 << 7 ); $attacktype{ 'weaponmagic' } = ( 1 << 8 ); $attacktype{ 'ghosthit' } = ( 1 << 9 ); $attacktype{ 'poison' } = ( 1 << 10 ); $attacktype{ 'slow' } = ( 1 << 11 ); $attacktype{ 'paralyze' } = ( 1 << 12 ); $attacktype{ 'turnundead' } = ( 1 << 13 ); $attacktype{ 'fear' } = ( 1 << 14 ); $attacktype{ 'cancellation' } = ( 1 << 15 ); $attacktype{ 'deplete' } = ( 1 << 16 ); $attacktype{ 'death' } = ( 1 << 17 ); $attacktype{ 'chaos' } = ( 1 << 18 ); $attacktype{ 'counterspell' } = ( 1 << 19 ); $attacktype{ 'godpower' } = ( 1 << 20 ); $attacktype{ 'holyword' } = ( 1 << 21 ); $attacktype{ 'blind' } = ( 1 << 22 ); $attacktype{ 'internal' } = ( 1 << 23 ); $attacktype{ 'lifestealing' } = ( 1 << 24 ); $attacktype{ 'disease' } = ( 1 << 25 ); &info("writing ...$archetypes"); open(ARCH,">".$archetypes) || &die("cannot open ".$archetypes); binmode(ARCH); &archsOut($root); close(ARCH); if (!$archonly) { &info("$bmaps"); open(BMAPS,">".$bmaps) || &die("cannot open ".$bmaps); binmode(BMAPS); &bmapsOut; close(BMAPS); open(BMAPS,">".$paths) || &die("cannot open ".$paths); binmode(BMAPS); &pathsOut; close(BMAPS); &info("$faces"); open(FACES,">".$faces) || &die("cannot open ".$faces); binmode(FACES); &facesOut; close(FACES); &info("$smooths"); open(SMOOTHS,">".$smooths) || &die("cannot open ".$smooths); binmode(SMOOTHS); &smoothOut; close(SMOOTHS); &info("$treasures"); # We still support the old consolidated treasure information # so copy it over. open(TREASURES,">".$treasures) || &die("cannot open ".$treasures); binmode(TREASURES); print TREASURES "# # Do not modify this file - any changes will get overwritten. # instead, modify the .trs file in the arch directory. # "; &treasuresOut; close(TREASURES); &info("$animations"); open(ANIM,">".$animations) || &die("cannot open ".$animations); binmode(ANIM); &animOut; close(ANIM); } &stats; exit 0; sub traverse { local($dir) = shift; local($file,$name); local( $tfile); opendir(THISDIR, $dir) || die "couldn't open $dir"; local(@allfiles) = readdir(THISDIR); closedir(THISDIR); foreach $tfile (sort @allfiles) { next if $tfile =~ /^\./; next if $tfile =~ /~$/; $file = $dir."/".$tfile; $name = &basename($file,""); # DIR if( -d $file && $name ne "dev" && $name ne "trashbin" && $name ne ".svn" ) { &traverse($file); } elsif ( -d $file && ( $name eq "dev" || $name eq "trashbin" ) ) { # Empty directive to prevent warnings below } elsif( $file =~ /.*\.arc$/) { # ARCHETYPE $archsNum++; push(@archs,$file);n } elsif( $name =~ /(\S+)\.base($faceExt)\.png$/) { # FACE $facesNum++; $im_name = "$1$2"; &warn("duplicate face $im_name in ".$dir." and $faces{$im_name}") if $faces{$im_name}; $faces{$im_name} = $dir."/".$im_name; } elsif ( $file =~ /.*\.face$/) { # Face information file $facesFileNum++; push(@face_files, $file); } elsif ( $file =~ /.*\.trs$/) { # Treasure information file push(@treasure_files, $file); } elsif ( $file =~ /\.png$/ || $file =~ /\.xpm$/ || $file =~ /\.xcf/ || $file =~ /\.doc$/ || $file =~ /\.txt$/ || $file =~ /$faceExt$/) { # we cover many files we probably shouldn't, but oh well. # we just don't want complaints about all of these. } # ignore a couple of the more common 'junk' files that are not # really junk. elsif (($name ne "README") && ($name ne "CHANGES") && ($name ne "TODO") && ($name ne ".svn")) { $trashNum++; print "Warning: $file might be a junk file\n"; } } } sub storeFaceInfo { local($lface,@values) = @_; if ($values[0] ne "") { # blank.111 is a special case - # since no foreground pixels will actually be drawn, foreground colors is # not relevant. Several monsters use blank.111 as part of their # animation to make them appear invisible, but have some other # foreground color set. # Same applies to empty also. if ($fg{$lface} && $fg{$lface} ne $values[0] && $lface ne "blank.111" && $lface ne "empty.111") { &warn($arch." duplicate fg color ".$fg{$lface}."/".$values[0]." face ".$lface); } else { $fg{$lface} = $values[0]; } } if ($values[1] ne "" && $lface ne "blank.111" && $lface ne "empty.111") { # blank.111 is a special case - see above explanation # Its visibility is always 0. if ($visibility{$lface} && $visibility{$lface} ne $values[1]) { &warn($arch." duplicate visibilty ".$visibility{$lface}."/".$values[1]." face ".$lface); } else { $visibility{$lface} = $values[1]; } } if ($values[2] ne "" && lface ne "blank.111" && $lface ne "empty.111") { if ($magicmap{$lface} && $magicmap{$lface} ne $values[2]) { &warn($arch." duplicate magicmap color ".$magicmap{$lface}."/".$values[2]." face ".$lface); } else { $magicmap{$lface} = $values[2]; } } if ($values[3] ne "") { if ($floor{$lface} && $floor{$lface} ne $values[3]) { &warn($arch." duplicate floor information ".$floor{$lface}."/".$values[3]." face ".$lface); } else { $floor{$lface} = $values[3]; } } } sub archsOut { local($dir) = shift; foreach $arch (@archs) { # Assume the filename $arch begins with $dir. Assign all path name # components after $dir to $pathto. if($arch =~ /^\Q$dir\E\/(.*)\/[^\/]*[.]arc$/) { $pathto = $1; } else { &warn("cannot determine editor_folder from arch '$arch'"); $pathto = ""; } open(ARC,$arch) || &die("cannot open ".$arch); line: while(<ARC>) { chop; ($var,@values) = split; if ($var eq "#") { #developper comment, switch to next line $commentNum++; next line; } if ($var eq "Object") { $lface[0] = ""; $#lface = 0; $lfg = ""; $lvis = ""; $mm = ""; $floor = ""; $moveon = 0; $nopick = 0; $arch = join "_", @values; $print_editor_folder = 1; } else { $print_editor_folder = 0; } if ($var eq "end") { if ($#lface !=0) { $#lface--; foreach $face (@lface) { &storeFaceInfo($face, $lfg, $lvis,$mm,$floor); } } if ($moveon && !$nopick) { &warn("File $arch has an object with move_on set which can be picked up\n"); } } # Process the color/face info now if ($var eq "color_fg") { $lfg = $values[0]; next line; } if ($var eq "visibility") { $lvis = $values[0]; next line; } if ($var eq "magicmap") { $mm = $values[0]; next line; } if ($var eq "attacktype") { $at = 0; foreach $t ( @values ) { if ( $t =~ /^\d+$/ ) { $at |= $t; } else { if ( defined( $attacktype{ $t } ) ) { $at |= $attacktype{ $t }; } else { &warn($arch . " has invalid attacktype " . $t); } } } $_ = $var . ' ' . $at; } if ($var eq "is_floor") { $floor = $values[0]; # is_floor is also needed for archs, so let it pass # through } elsif ($var eq "no_pick") { $nopick = $values[0]; } elsif ($var eq "move_on") { $moveon = 1; } elsif ($var eq "face") { $lface[$#lface++] = $values[0] } elsif ($var eq "anim") { if ($anim{"_$arch"}) { &warn("_$arch is a duplicate animation name"); $anim{"_$arch"}=""; } while (<ARC>) { chomp; $var = $_; last if ($var =~ "mina\s*"); if ($var =~ /facings \S+$/) { } elsif (! $faces{$var}) { &warn($arch." is missing face ".$var); } else { $lface[$#lface++] = $var; } $anim{"_$arch"} .= "$var\n"; } print ARCH "animation _$arch\n"; next line; # don't want the mina } if ($var eq "face" && ! $faces{$values[0]}) { &warn($arch." is missing face ".$values[0]) } if ($var eq "smoothface") { if ($smoothing{$values[0]} && ($smoothing{$values[0]} ne $values[1])) { &warn($arch." duplicate smoothface for ".$values[0].": ".$smoothing{$values[0]}." and ".$values[1]); } elsif ( ($values[0] eq "") || ($values[1] eq "")) { &warn ($arch." incomplete smoothface entry found: ".$values[0]." ".$values[1]); } else { $smoothing{$values[0]}=$values[1] } next line; #smoothface must be excluded from archetype file } print ARCH $_,"\n"; if ($print_editor_folder) { print ARCH "editor_folder $pathto\n" if $pathto ne ""; } } close(ARC); } } sub pline { local($face) = shift; print BMAPS sprintf("%05d",$idx++)," ",$face,"\n"; } sub opline { local($face) = shift; print BMAPS sprintf("\\%05d",$idx++),"\t",$face,"\n"; } sub pheader { print BMAPS "# This file is generated by $0, do not edit\n"; } sub bmapsOut { &pheader; $idx = 0; &pline("bug.111"); foreach $face (sort(keys %faces)) { &pline($face) if $face !~ /bug\.111/; } } sub pathsOut { &pheader; $idx = 0; &opline($root."/system/bug.111"); foreach $face (sort(keys %faces)) { &opline($faces{$face}) if $faces{$face} !~ /bug\.111/; } } sub treasuresOut { foreach $treasure (@treasure_files) { open(TREAS, $treasure) || &die("cannot open ".$treasure); while(<TREAS>) { if (! /^\s*$/) { print TREASURES $_; } } close(FACE); } } sub facesOut { foreach $face (@face_files) { open(FACE, $face) || &die("cannot open ".$face); while(<FACE>) { chop; local ($var, @values) = split; if ($var eq "face") { $lface = $values[0]; $lfg = ""; $lvis = ""; $mm = ""; $floor = ""; } elsif ($var eq "color_fg") { $lfg = $values[0]; } elsif ($var eq "visibility") { $lvis = $values[0]; } elsif ($var eq "magicmap") { $mm = $values[0]; } elsif ($var eq "is_floor") { $floor = $values[0]; } elsif ($var eq "end") { &storeFaceInfo($lface, $lfg, $lvis, $mm, $floor); } elsif ($var eq "animation") { $animation=$values[0]; if ($anim{$1}) { &warn("$animation is a duplicate animation name"); $anim{$animation}=""; } while (<FACE>) { chomp; $var = $_; last if ($var =~ /^mina\s*$/); if ($var !~ /^facings/ ) { if (! $faces{$var}) { &warn($arch." is missing face ".$var); } else { $lface[$#lface++] = $var; } } $anim{$animation} .= "$var\n"; } next; # don't want the mina } } close(FACE); } print FACES "# This file is generated by $0, do not edit\n"; foreach $face (sort(keys %faces)) { if ($fg{$face} ne "" || $bg{$face} ne "" || $visibility{$face} ne "" || $magicmap{$face} ne "" || $floor{$face} ne "") { print FACES "face ".$face."\n"; print FACES "color_fg ".$fg{$face}."\n" if $fg{$face} ne ""; print FACES "visibility ".$visibility{$face}."\n" if $visibility{$face} ne ""; print FACES "magicmap ".$magicmap{$face}."\n" if $magicmap{$face} ne ""; print FACES "is_floor ".$floor{$face}."\n" if $floor{$face} ne ""; print FACES "end\n"; } } } sub animOut { foreach $anim (sort keys %anim) { print ANIM "anim $anim\n$anim{$anim}mina\n"; $animationsNum++; } } sub smoothOut { local ($sm); print SMOOTHS "##########################################################\n"; print SMOOTHS "# Do not touch this file. #\n"; print SMOOTHS "# It has been generated from the informations present #\n"; print SMOOTHS "# in the archetype files. #\n"; print SMOOTHS "# To add new entries, simply add #\n"; print SMOOTHS "# smoothface xxx yyy #\n"; print SMOOTHS "# to an archetype and collect.pl will put below an entry #\n"; print SMOOTHS "# xxx yyy #\n"; print SMOOTHS "##########################################################\n\n"; print SMOOTHS "\n# Data extracted from arch files\n"; foreach $sm (sort (keys %smoothing)) { print SMOOTHS "$sm $smoothing{$sm}\n"; $smoothNum++; } } ### print out statical information sub stats { &info(Archs.":\t".$archsNum); &info(Images.":\t".$facesNum); &info(Faces.":\t".$facesFileNum); &info(Animations.":\t".$animationsNum); &info(Treasures.":\t".($#treasure_files+1)); &info(Trash.":\t".$trashNum); &info(Smooths.":\t".$smoothNum); &info("Comment lines:\t".$commentNum); } ������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/settings�����������������������������������������������������������������������0000644�0000145�0000012�00000032753�11731300544�013043� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# This file is used various system settings. It removes the need for # some config.h files. Format is: # variable<space>value which can have spaces # # Lines starting with # are comments. # # Some fields may be numeric, other string. The program will skip over # spaces after the setting. # # metaserver values. # metaserver1 support has been removed. Update metaserver2 # file instead # Character creation values. # The min, max, and points values are used for new (in client) # creation method - this determines those values as one would expect. # Note - the order here is relevant as the server has built in defaults # it will use, and it ensures that all the values are reasonable - thus # if one increase the points value to 140 before increasing the max value, # it will generate an error. # # the roll_stat_points is used for the legacy system where stats are rolled # up. # The reason for that difference is with the new client method, the player # can choose their stat points, so even with 84 points, they could generate # a character with 3 18 stats (it would mean the remaining stats average # 7.5) - with the roll method, it is very unlikely to generate such # characters, so if the same number of stat points were given, while # the characters total stats would be higher, the character itself # would likely be worse. # starting_stat_min 3 starting_stat_max 18 starting_stat_points 84 roll_stat_points 105 # values for the new big worldmap, and weather. Only use if you are using the # new bigmap. # worldmapstartx 100 worldmapstarty 100 worldmaptilesx 30 worldmaptilesy 30 worldmaptilesizex 50 worldmaptilesizey 50 # If this is set, when there is no player, the ingame clock will tick really fast. # If not set, it will not move and wait for a player to join. fastclock 0 # item_power_factor is the relation of how the players equipped item_power # total relates to there overall level. If 1.0, then sum of the characters # equipped item's item_power can not be greater than their overall level. # if 2.0, then that sum can not exceed twice the character overall level. # by setting this to a high enough value, you can effectively disable # the item_power code. item_power_factor 1.0 # Sets the output format for the who command. This is what a player will see # about all the other players on the server when they type 'who' The string # has escapes that are filled with the relevant values for each character. # Currently the following escapes are supported: # # %N Name of character # %t title of character # %c count of the player (for dumping/patching) # %n newline # %h [Hostile] if character is hostile, nothing otherwise # %d [WIZ] if character is a dm, nothing otherwise # %a [AFK] if character is afk, nothing otherwise # %b [BOT] if character is a bot, nothing otherwise # %l the level of the character # %m the map path the character is currently on # %M the map name of the map the character is currently on # %r the short region name (as shown by mapinfo) # %R the formal region title.(as shown by whereami) # %i player's ip address # %% a literal % # %_ a literal underscore # # an underscore that is not escaped gives a space (or you can use a real space # if you prefer) # who_wiz_format is the same but for those with dm powers who_format %N %t%h%d%a%b%n<%m> who_wiz_format %N %t%h%d%a%b%nLevel %l <%m>(@%i)(%c) # See notes for most of these in include/config.h # dm_mail your_email@addr.here # Makes death non permanent. If enabled and you die, you lose a bunch of # exp, a random stat, and go back to starting town. # If not defined, if you die, you are dead. If an a multiplayer server, # resurrection may be possible # # This option changes the game significantly one way or the other - it makes # adventuring right at the edge of death something more reasonable to do # (death still hurts here). On the other hand, it certainly makes the # game a bit safer and easier. # not_permadeth true # define resurrection if you want to let players bring other players # back to life via some spells. If resurrection is undefined, then a # death is permanent. NOTE: resurrection (either defined or undefined) # has no meaning if not_permadeth is true. resurrection false # set the following if you wish to allow players to set their title # and to save it on the disk. There really isn't much reason not # allow players to set this. set_title true # Enables the 'search-item command; a method to find equipment # in shops. Like set_title, probably no reason to ever disable this. search_items true # SPELL_ENCUMBRANCE -- If you're carrying a weapon or wearing heavy armour, # you have a chance of fumbling your spellcasting with this on. More # armors/weapons, higher chance of failure. If this is false, then # you can basically always cast a spell, no matter what you are wearing. spell_encumbrance true # spell_failure_effects only has meaning if spell_encumbrance is true. # What it does, is that when the player fails a spell, various effects # will happen (player is paralyzed, confused, wonder spell is cast, etc.) # I disabled it because I think it would make life much too hazardous # for low level casters. They either need to wear light armor (which # means that they will get pounded on by monsters), or will get # confused/paralyzed/other effects often. High level casters would # be mostly unaffected, since they would be casting spells that are # below their level. # Note- it seems that you still get some failure effects even with this # not defined - most notably when reading scrolls and fail to read # them properly. # spell_failure_effects false # casting times for spells, if you have this defined then it takes a # specific amount of time for a spell to go off. You may attack or # be hit during this time, and this will cause you to lose the spell. # I commented this out on my copy - I don't like the 'double clutch' # needed to cast it (first direction key starts casting, the # next actually puts the spell into effect.) It could perhaps # be changed so that the initial direction is where it goes, and it # is cast automatically in that direction (so only 1 key is needed.) # But this could be undesirable as various things move while you cast it. # this also slows down the rate you can cast spells considerably. casting_time false # Name of the motd file - really no reason to change this. motd motd # Calling this real_Wiz is probably not really good. Something like # mud_wiz might be a better name. # # Basically, if real_wiz is set then the WIZ/WAS_WIZ flags for objects # are not set - instead, wizard created/manipulated objects appear as # normal objects. This makes the wizard a little more mudlike, since # manipulated items will be usable by normal players. real_wiz true # Set this if you want the temporary maps to be saved and reused across # crossfire runs. This can be especially useful for single player # servers, but even holds use for multiplayer servers - you can # restart a public server, and not have all the maps reset # The file temp_maps is updated each time a temp map is updated. # Note that the file used to store this information is stored in # the LIB directory. Running multiple crossfires with the same LIB # directory will cause serious problems, simply because in order for # this to really work, the filename must be constant so the next run # knows where to find the information. recycle_tmp_maps false # spellpoint_level_depend -- Causes the spellpoint cost # of spells to vary with their power. Spells that become very # powerful at high level cost more. The damage/time of # characters increases though. spellpoint_level_depend true # Set this to false if you don't want characters to loose a random stat when # they die - instead, they just get depleted. # Setting it to true keeps the old behaviour. This can be # changed at run time via -stat_loss_on_death or +stat_loss_on_death. stat_loss_on_death false # This makes repeated stat loss at lower levels more merciful. Basically, # the more stats you have lost, the less likely that # you will lose more. Additionally, lower level characters are shown # a lot more mercy (there are caps on how much of a stat you can lose too). # On the nasty side, if you are higher level, you can lose multiple stats # _at_once_ and are shown less mercy when you die. But when you're higher # level, it is much easier to buy back your stats with potions. # Turn this on if you want death-based stat loss to be more merciful # at low levels and more cruel at high levels. # Only works when stats are depleted rather than lost. This option has # no effect if you are using genuine stat loss. balanced_stat_loss false # This defines how much of a player's experience should be 'permanent' and # not able to be lost on death. A high value makes multiple frequent deaths # less devastating, and also ensures that any character will make some # gradual progress even if they die all of the time. This value is the minimum # amount of a player's exp that can ever be 'permanent' so setting this to 0 # would allow all exp to be lost, and setting it to 100 would stop exp loss # entirely (the same effect would be achieved by setting the two # death_penalty settings below to 0). permanent_experience_percentage 50 # When a player dies, they lose a proportion of their experience, which is # defined by the following two values. They will lose either # death_penalty_percentage% of their experience, or no more than # death_penalty_levels levels, or half of their non-permenent experience, # whichever is the least of these. Note that this is calculated per-skill, # so which method is used could vary for different skills. death_penalty_percentage 20 death_penalty_levels 3 # This is the penalty to luck that is given to a player who kills another # player (PK's). The value here is deducted from their luck value, so set this # high to discourage PK-ing and zero (or negative) to encourage it. # Range is limited to -100 to 100, since this is the value range that the luck # stat can be within. pk_luck_penalty 1 # This handles maximum experience one can get for pking another player. # If pk_max_experience is 0 or positive, experience will never exceed that value. # If negative, all experience can be gained. # pk_max_experience_percent represents the percentage of victim's experience that will be # given to the killer. It can be greater than 100. # Note that experience given will never exceed experience the victim # can lose considering permanent experience. pk_max_experience 5000000 pk_max_experience_percent 10 # This allows reduced damage against other players when in # peaceful mode. The value is the percent of damage done # compared to normal. This does not change damage done # by not targeted things like walls, explosions, cone spells, disease, poison... set_friendly_fire 5 # This deals with armor enchantment. # # armor_max_enchant: maximum enchantments an armor will take. # default: 5 # # armor_weight_reduction (in percent) and armor_weight_linear control how weight is reduced: # * when armor_weight_linear is TRUE, armor weight is # 'base weight - armor enchantment * armor_weight_reduction' # * when armor_weight_linear is FALSE, armor weight is reduced by armor_weight_reduction % # per enchantment. # # example: # * with 10 and TRUE, if armor base weight is 100, it'll become: # 100 -> 90 -> 80 -> 70 -> 60 -> ... # * with 10 and FALSE, it'll be: # 100 -> 90 -> 81 -> 73 -> 66 -> ... # # Note that the code will enforce a minimum weight of 1, else players can't pick up armor. # # default values: 10 and TRUE. # # armor_speed_improvement and armor_speed_linear do the same for speed increase. # default values: 10 and TRUE #armor_max_enchant 5 #armor_weight_reduction 10 #armor_weight_linear TRUE #armor_speed_improvement 10 #armor_speed_linear TRUE # disable stealing from other players, if you wish to enable stealing from other players # then replace the below with: no_player_stealing FALSE no_player_stealing TRUE # disable creation of town portals inside of unique maps (apartments). To enable, replace # the below with: create_home_portals TRUE create_home_portals FALSE # If personalized blessings are activated, the weapon can bite the wielder # if he/she is not the one who initially blessed it. # Chances of being hurt depend on the experience amount ("willpower") the # object has, compared to the experience amount of the wielder. personalized_blessings TRUE # If set to TRUE, players can inscribe scrolls of spells they can't cast (denied path, ...) allow_denied_spells_writing FALSE # If set to TRUE or ON, converters will work even if the price of generated item is higher # than the price of converted items allow_broken_converters TRUE # If set, log will comport a timestamp, in the specified format. log_timestamp TRUE log_timestamp_format %y/%m/%d %H:%M:%S # port is the port the server listens to. If using metaserver2, you can pretty # much change this to anything and clients will figure it out. If using # metaserver1, changing from default (13327) may cause problems as the port # number isn't publicized. Unless there is a specific reason (firewall/nat, # running multiple servers on same host), probably best not to change # this port 13327 # When generating random maps, can a special map break the map's layout to be inserted? # TRUE by default for historical purposes special_break_map TRUE # If set to TRUE, then the plugin version won't be checked at load time. # When set to FALSE, versions must match else a plugin is not loaded. # This is mostly intended for development purposes, to not have to 'make install' # all the time. ignore_plugin_compatibility FALSE ���������������������crossfire-1.70.0/lib/attackmess���������������������������������������������������������������������0000644�0000145�0000012�00000035700�11731300544�013335� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# $Id: attackmess 12130 2009-08-02 13:30:29Z kbulgrien $ # arrows TYPE:0 3=hit 3= 3= grazes 6=hit 6= 6= pricks 11=hit 11= 11= pierces 17=hit 17= 17= punctures 29=hit 29= 29= deeply punctures 45=hit 45= 45= stabs 65=hit 65= 65= deeply stabs 90=hit 90= 90= penetrates 130=hit 130= 130= perforates 160=hit 160= 160= drills into 200=hit 200= 200= drives deeply into 9999=hit 9999= 9999= goes straight through #drain TYPE:1 3=draw life from 3= 3= drew life from 6=drain 6= 6= drains 9=feed upon the life force of 9= 9= feeds upon the life force from 14=feel the life force of 14= course through your veins 14= pulls vital life force away from 19=suck the life out of 19= 19= sucks the life out of 26=tug mercilessly at 26='s soul 26= tugs mercilessly at the soul of 36=send dark waves of energy into 36= 36= sends dark waves of energy into 46=hear a wail of despair as 46= shudders briefly 46= causes wails of despair come from deep within 75=hear the laughter of dark gods as 75= vibrates with pain 75= vibrations of pain and ethereal laughter haunt 100=bite deeply into 100='s soul 100='s dark power bites deeply into 130=violently tear 130='s life force from the body 130= tears the life force away from 170=watch dark rippling waves cover 170= with screams of agony 170= sends dark waves of power into 210=laugh hideously as 210= begs for mercy at your feet 210= inflicts unbelievable pain upon 9999=witness the soul of 9999= shimmering out of the body violently 9999= cackles as the soul begins to depart from #electric TYPE:2 3=zap 3= 3= zaps 7=shock 7= 7= shocks 10=jolt 10= 10= jolts 13=electrify 13= 13= electrifies 16=cause sparks to jump off 16='s body 16= causes sparks to dance around 21=electrocute 21= 21= electrocutes 29=cackle with glee as 29= convulses with pain 29= causes convulsions of pain to wrack 50=send shimmering shockwaves of power into 50= 50= sends shimmering shockwaves of power into 80=cause bolts of energy to crackle across 80='s body 80= causes bolts of energy to crackle around 130=send 130= into violent seizures 130= causes violent seizures in 170=watch 170= writhe in pain as electric bolts crackle violently 170='s power causes violent spasms in 200=are horrified by the sight of 200= frothing madly at your feet 200= causes uncontrollable muscle spasms in 9999=feel a violent shockwave crackling with power as 9999= shudders with blinding arcs 9999= sends horrible crackling power into #cold TYPE:3 3=nip 3= 3= nips 8=chill 8= 8= chills 12=cause 12= to shiver 12= causes shivers in 17=cause 17= to shiver violently 17= causes violent shivers in 28=coat 28= in frost 28= sends a blast of frost at 60=cover 60= in a sheet of ice 60= sends a blast of ice at 90=freeze 90= 90= freezes 130=the intense cold causes 130= to shiver violently with pain 130= cold power causes violent shakes in 180=tear into 180= with a blast of arctic wind 180= sends a blast of arctic wind at 9999=nearly freeze 9999= solid 9999= nearly froze #fire TYPE:4 3=singe 3= 3= singes 6=burn 6= 6= burns 9=ignite 9= 9= ignites 12=scorch 12= 12= scorches 16=torch 16= 16= torches 20=set 20= on fire 20= sets fire to 27=roast 27= 27= roasts 40=melt 40= 40= melts 70=set 70= ablaze 70= horribly burns 100=fry 100= 100= fries 130=fry 130= to a crisp 130= viciously fries 160=incinerate 160= 160= incinerates 200=cause 200= to burst into raging flames 200= causes flames to engulf 250=burn 250= to ashes 250= send blistering heatwaves into 9999=nearly vaporize 9999= 9999= nearly vaporizes #basic hit TYPE:5 3=grazed 3= 3= grazes 6=hit 6= 6= hits 9=hit 9= hard 9= skillfully hits 12=hit 12= very hard 12= deftly hits 16=hit 16= extremely hard 16= violently hits 20=crush 20= very hard 20= crushes 27=smash 27= with a bonecrunching sound 27= smashes 40=shred 40= to pieces 40= shreds 70=beat 70= to a pulp 70= beats 130=grind 130= to dust 130= grinds 250=atomize 250= 250= atomizes 9999=annihilate 9999= 9999= annihilates #karate! TYPE:6 3=graze 3= with your chop 3= grazes 6=hit 6= with your chop 6= hits 10=firmly strike 10= with your chop 10= firmly strikes 20=chop 20= upside the head 20= plants a chop to 40=kick 40= 40= kicks 60=spinkick 60= 60= spinkicks 90=acrobaticly kick 90= in the head 90= head kicks 120=launch a fury of flying fists at 120= 120= launches a fury of flying fists at 150=touch a pressure point on 150= sending him into spasms 150= touches a pressure point on 180=dropkick 180= 180= dropkicks 220=spin and deliver a heel kick to the back of 220='s head 220= heel kicks 9999=unleash a fury of brutal attacks against 9999= knocking him to the floor 9999= unleashes a fury of brutal attacks against #claws TYPE:7 3=graze 3= 3= grazes 6= claw 6= 6= claws 10=slash 10= 10= slashes 18= tear 18= 18= tears 27=rip into 27= 27= rips into 38=shred 38= 38= shreds 60=leave gushing wounds in 60= 60= leaves gushing wounds in 90=rake 90= with your razor sharp talons 90= rakes 120=slice deeply into the body of 120= 120= slices deeply into the body of 150=tear gaping holes in 150= 150= tears gaping holes in 200=severs the flesh from 200='s bone 200= severs flesh from bone in 250= gut 250= 250= guts 9999= eviscerate 9999= 9999= eviscerates #punching TYPE:8 3=smack 3= 3= smacks 9=punch 9= 9= punches 15=punches 15= hard 15= skillfully punches 25=punches 25= very hard 25= deftly punches 35=violently beat 35= 35= violently beats 60=pulverize 60= 60= pulverizes 90=hammer 90= 90= hammers 120=beat 120= to a pulp 120= powerfully beats 150=beat the tar out of 150= 150= beats the tar out of 9999=nearly shatter the skull of 9999= 9999= pummels #slash TYPE:9 3=cut 3= 3= cuts 6=cut 6= hard 6= skillfully cuts 9=cut 9= very hard 9= viciously cuts 12=slash 12= 12= slashes 20=slash 20= hard 20= skillfully slashes 30=slash 30= very hard 30= viciously slashes 45=slash 45= with a powerful sweep 45= powerfully slashes 60=lay open 60= with a vicious swipe 60= lays open 80=deeply gash 80= 80= deeply gashes 100= tear open 100= with a cruel slash 100= tears open 130=open up deep wounds 130= with a brutal swipe 130= opens up deep wounds in 160=mince 160= 160= minces 190=lacerate 190= with a gruesome hack 190= lacerates 230=tears a gaping wound into 230= with a horrendous sweep 230= tears a gaping wound into 9999=nearly bisects 9999= with a terrifying slash 9999= nearly bisects #pierce TYPE:10 3=prick 3= 3= pricks 6=jab 6= 6= jabs 9=jab 9= hard 9= skillfully jabs 15=jab 15= very hard 15= viciously jabs 21=pierce 21= 21= pierces 34=pierce 34= hard 34= skillfully pierces 48=pierce 48= very hard 48= viciously pierces 65=drive your blade deeply into 65= 65= drives his blade deeply into 80=swiftly strike 80= with a penetrating jab 80= brutally pierces 115=deftly jab 115= with a perfectly aimed attack 115= deftly jabs 150=unleash a flurry of quick pierces into the 150='s gut 150= unleashes a flurry of pierces into 200=thrust your blade deep into the heart of 200= 200= thrusts deeply into the heart of 250=devastate 250= with a lightning fast jab 250= devastates 9999=strike hard and fast against 9999= leaving a gaping hole 9999= strikes hard and fast against #cleave TYPE:11 3=hack at 3= 3= hacks at 6=hack hard at 6= 6= hacks hard at 9=hack very hard at 9= 9= hacks very hard at 12=cleave 12= 12= cleaves 15=cleave 15= hard 15= skillfully cleaves 18=cleave 18= very hard 18= viciously cleaves 21=carve into 21= 21= carves into 25=carve deeply into 25= 25= carves deeply into 30=rend flesh from the body of 30= 30= rends flesh from the body of 40=tear into 40= 40= tears into 55=tear deeply into 55= 55= tears deeply into 70=rip a deep gash in 70= 70= rips a deep gash in 90=sever bone and flesh from the body of 90= 90= severs bone and flesh from the body of 120=swing down hard at 120=, who spews forth an arc of blood 120= swings down hard at 150=are enshrouded in a mist of 150='s blood as your violent blow finds a home 150= is enshrouded in a mist of blood from 180=cross into 180= with a cruel gut-splitting cleave 180= crosses into 210=see a look of despair in the eyes of 210= as you tear him limb from limb 210= tears limbs and bone from 250=splattered with the blood of 250= as sinews of muscle give way to steel 250= is splattered with the blood of 9999=swing down hard on 9999= nearly splitting him end to end 9999= swings down hard on #slice TYPE:12 3=slit open 3= 3= slits open 6=slice 6= 6= slices 9=slice 9= hard 9= skillfully slices 12=slice 12= very hard 12= viciously slices 20=brutally slice 20= 20= brutally slices 30=cut down 30= 30= cuts down 45=severs flesh 45= with a cruel slice 45= cruelly slices 60=carve deeply into 60= 60= carves deeply into 80=perform a wide arcing slice gashing open 80= 80= performs a wide arcing slice gashing open 120=slice open 120= with an overhead sweep 120= slices down 150=dissect 150= with a series of deep slices 150= dissects 180=split 180= wide open 180= splits 240=brutally slices 240= with a cruel flurry of blows 240= brutally slices 9999=unleash a blizzard of steel on 9999= filling the air with a mist of blood 9999= unleashes a blizzard of steel on #stab TYPE:13 3=stab 3= 3= stabs 6=stab 6= hard 6= viciously stab 9=stab 9= very hard 9= violently stabs 12=thrust into 12= 12= thrusts into 18=thrust hard into 18= 18= thrusts hard into 25=thrust very hard into 25= 25= thrusts very hard into 35=drive your weapon hard into 35= 35= drives his weapon hard into 50=violently stabs 50= leaving a deep wound 50= brutally stabs 80=bore a deep hole in 80= 80= bores a deep hole in 115=draw back and ram your weapon into the upper body of 115= 115= draws back and rams his weapon into 150=scream a brutal war cry at 150= as you violently stab him 150= screams and repeatedly stabs 200=throw all your weight into a cruel thrust against 200= 200= throws all his weight into a cruel thrust against 9999=are covered in a rain of blood as your weapon homes in on 9999= 9999= is covered in a rain of blood from #whip TYPE:14 3=lash 3= 3= lashes 6=lash 6= hard 6= viciously lash 9=lash 9= very hard 9= brutally lashes 12=whip 12= 12= whips 20=whip 20= hard 20= viciously whips 30=whip 30= very hard 30= brutally whips 45=flog 45= 45= flogs 60=flog 60= hard 60= viciously flogs 75=flog 75= very hard 75= brutally flogs 90=thrash 90= 90= thrashes 120=leave deep welts and bruises on 120= 120= cruelly thrashes 150=cruelly whip 150= as he screams in agony 150= causes screams of agony to emanate from 180=tear open gaping wounds in 180= 180= tears open gaping wounds in 9999=wrap your whip around 9999= and nearly strangle him 9999= nearly strangles #crush TYPE:15 3=bruise 3= 3= bruises 6=crush 6= 6= crushes 9=skilfully crush 9= 9= skilfully crushes 12=violently crush 12= 12= violently crushes 18=brutally crush 18= 18= brutally crushes 25=smash 25= 25= smashes 35=splatter 35= 35= splatters 45=rupture 45= 45= ruptures 60=swing overhead and deliver a bone fracturing blow to 60= 60= swings overhead and delivers a bone fracturing blow to 80=beat 80= to a bloody pulp 80= pulps 100=deliver an organ-rupturing blow to 100= 100= delvivers an organ-rupturing blow to 120=swing violently at 120= shattering bone like glass 120= shatters the bones of 140=hear the sound of 140='s spine shattering 140= shatters the spine of 160=paint the walls with 160='s cerebral fluid as you crush his skull 160= paints the walls with bits of 180=cave in 180='s face with your crushing blow 180= caves in the face of 210=smash 210='s bones to a bloody paste 210= smashes the bones and flesh of 240=create a greusome and bloody mess from 240= 240= creates a bloody mess from 270=fly into a violent rampage against 270= throwing bone splinters and innards everywhere 270= flies into a violent rampage against 9999=pop 9999='s head like a ripe melon 9999= immolates #bludgeon TYPE:16 3=raise a nasty welt on 3='s body 3= raises a nasty welt on 6=smack 6= 6= smacks 9=bash 9= 9= bashes 12=whack 12= 12= whacks 15=bludgeon 15= 15= bludgeons 20=strike 20= hard 20= strikes hard 25=strike 25= very hard 25= strikes very hard 35=viciously strike 35= 35= viciously strikes 45=create an oozing wound on 45='s body 45= creates an oozing wound on 60=land a rupturing blow on 60= 60= lands a rupturing blow on 75=watch 75= stagger back from your blow 75= hammers 100=knock 100= into next week 100= brutally hammers 140=send 140= flying 140= viciously hammers 180=buckle 180= at the knees 180= buckles the knees of 210=pound 210= nearly into unconciousness 210= brutally pounds 250=beat 250= into a mind altering state 250= lands a mind altering blow against 310=strike 310= with a heart-stopping blow 310= strikes a heart-stopping blow against 9999=ruthlessly pummel 9999= causing a fountain of blood to erupt from every orifice 9999= causes more damage than the developer could fathom to #door TYPE:17 3=knock on the 3= 3= knocks on the 6=beat on the 6= 6= beats on the 9=pound on the 9= 9= pounds on the 15=kick at the 15=, wearing at the hinges 15= pounds on the 20=pummel the 20= 20= pummels the 40=pound hard on the 40= leaving large dents 40= pounds hard on the 80=body slam the door 80= making the door groan 80= crashes at the 150=wipe out the 150= 150= wipes out the 200=demolish bits of the 200=, indeed how is it still standing? 200= demolishes the 9999=command the 9999= to open with all the force at your command 9999=charges head first at the #suffering (poison and diseases) TYPE:18 3=cause the 3= to cough 3= itches 6=irritate the 6='s throat and eyes 6= brings a sweat to 10=force the 10= to take some deep breaths 10= gives a painful rash to the 15=force the 15= to convulse and throw up 15= makes angry sores on 30=make the 30= cough up blood and bile 30= makes blood burst from the sores on the 50=cause violent convulsions in the 50= 50= forces screaming agony from the 80=pauses the heart of the 80= for a moment causing mind numbing pain 80= makes foam burst from the mouth and nose of the 100=produce massive blisters on the 100=, which screams out howls of pain 100= makes blood leak from the eyes and ears of the 150=destroy vast areas of flesh on the 150=, which nearly causes you to vomit in disgust 150= makes blood burst from the eyes of the 180=force the 180= to tear desperately at its own flesh in pain 180= rots body parts off of the 200=ravage the nervous system of the 200=, death is surely only moments away 200= digests the muscle tissue of the 250=cause the 250= to howl in great agony, you are surprised it can survive such poison 250= causes a gruesome blood curdling howl of despair to come from the 9999=are covered in rotting pus from the 9999='s bursting blisters, you cackle with hideous glee 9999= causes blood to flow swiftly from bursting flesh of the TYPE:19 3=feed upon 3= 3= feeds upon 6=steal some of 6='s life 6=steals some life from 10=pull life from 10= 10= pulls life from 15=rapidly age 15= 15= rapidly ages 20=draw life from 20= 20= draws life from 25=draw soul from 25= 25= draws soul from 30=are filled with the essense of 30= 30= is filled with the essense of 50=bathe in the essense of 50= 50= bathes in the essense of 80=pull a stream of life from 80= 80= pulls a stream of life from 100=tug at the soul of 100= 100= tugs at the soul of 130=deal an antonian blow to 130= 130= deals an antonian blow to 165=suck 165= lifeless 165= sucks lifeless 9999=take 9999='s soul 9999= take soul from ����������������������������������������������������������������crossfire-1.70.0/lib/.collect-stamp�����������������������������������������������������������������0000644�0000145�0000012�00000000000�11731540243�014006� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/collect.pl.in������������������������������������������������������������������0000644�0000145�0000012�00000032573�11731300544�013647� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!@PERL@ require "util.pl"; if ($#ARGV >= 0) { if ($ARGV[0] =~ m/^--?[hH](elp)?$/) { die ("\nUSAGE: perl collect.pl ARCHDIR\n". "\nWhere ARCHDIR is the directory where you stored the ". "raw archetypes.\n". "This script will then create these files:\n". "archetypes,bmaps,bmaps.paths,faces,treasures.bld,animations.\n" ) } } # archonly is used to only build the archetypes. I find this # very handy if I know I've only changed .arc files - I don't want # to rebuild the other files, because now cvs tries to do diffs # on them as well as commit them, even if there are no changes. $archonly = 0; if ($#ARGV >= 1) { if ($ARGV[1] eq "ARCHONLY") { $archonly = 1; } else {print "Ignoring unknown option: $ARGV[1]\n"; } } $root = $ARGV[0]; $archetypes = "archetypes"; $bmaps = "bmaps"; $faces = "faces"; $treasures = "treasures.bld"; $animations = "animations"; $paths = $bmaps."."."paths"; $faceExt = "\\.[a-zA-Z0-9][A-Z0-9][A-Z0-9]"; $smooths = "smooth"; ### main &info("looking ..."); &traverse($root); $attacktype{ 'physical' } = ( 1 << 0 ); $attacktype{ 'magic' } = ( 1 << 1 ); $attacktype{ 'fire' } = ( 1 << 2 ); $attacktype{ 'electricity' } = ( 1 << 3 ); $attacktype{ 'cold' } = ( 1 << 4 ); $attacktype{ 'confusion' } = ( 1 << 5 ); $attacktype{ 'acid' } = ( 1 << 6 ); $attacktype{ 'drain' } = ( 1 << 7 ); $attacktype{ 'weaponmagic' } = ( 1 << 8 ); $attacktype{ 'ghosthit' } = ( 1 << 9 ); $attacktype{ 'poison' } = ( 1 << 10 ); $attacktype{ 'slow' } = ( 1 << 11 ); $attacktype{ 'paralyze' } = ( 1 << 12 ); $attacktype{ 'turnundead' } = ( 1 << 13 ); $attacktype{ 'fear' } = ( 1 << 14 ); $attacktype{ 'cancellation' } = ( 1 << 15 ); $attacktype{ 'deplete' } = ( 1 << 16 ); $attacktype{ 'death' } = ( 1 << 17 ); $attacktype{ 'chaos' } = ( 1 << 18 ); $attacktype{ 'counterspell' } = ( 1 << 19 ); $attacktype{ 'godpower' } = ( 1 << 20 ); $attacktype{ 'holyword' } = ( 1 << 21 ); $attacktype{ 'blind' } = ( 1 << 22 ); $attacktype{ 'internal' } = ( 1 << 23 ); $attacktype{ 'lifestealing' } = ( 1 << 24 ); $attacktype{ 'disease' } = ( 1 << 25 ); &info("writing ...$archetypes"); open(ARCH,">".$archetypes) || &die("cannot open ".$archetypes); binmode(ARCH); &archsOut($root); close(ARCH); if (!$archonly) { &info("$bmaps"); open(BMAPS,">".$bmaps) || &die("cannot open ".$bmaps); binmode(BMAPS); &bmapsOut; close(BMAPS); open(BMAPS,">".$paths) || &die("cannot open ".$paths); binmode(BMAPS); &pathsOut; close(BMAPS); &info("$faces"); open(FACES,">".$faces) || &die("cannot open ".$faces); binmode(FACES); &facesOut; close(FACES); &info("$smooths"); open(SMOOTHS,">".$smooths) || &die("cannot open ".$smooths); binmode(SMOOTHS); &smoothOut; close(SMOOTHS); &info("$treasures"); # We still support the old consolidated treasure information # so copy it over. open(TREASURES,">".$treasures) || &die("cannot open ".$treasures); binmode(TREASURES); print TREASURES "# # Do not modify this file - any changes will get overwritten. # instead, modify the .trs file in the arch directory. # "; &treasuresOut; close(TREASURES); &info("$animations"); open(ANIM,">".$animations) || &die("cannot open ".$animations); binmode(ANIM); &animOut; close(ANIM); } &stats; exit 0; sub traverse { local($dir) = shift; local($file,$name); local( $tfile); opendir(THISDIR, $dir) || die "couldn't open $dir"; local(@allfiles) = readdir(THISDIR); closedir(THISDIR); foreach $tfile (sort @allfiles) { next if $tfile =~ /^\./; next if $tfile =~ /~$/; $file = $dir."/".$tfile; $name = &basename($file,""); # DIR if( -d $file && $name ne "dev" && $name ne "trashbin" && $name ne ".svn" ) { &traverse($file); } elsif ( -d $file && ( $name eq "dev" || $name eq "trashbin" ) ) { # Empty directive to prevent warnings below } elsif( $file =~ /.*\.arc$/) { # ARCHETYPE $archsNum++; push(@archs,$file);n } elsif( $name =~ /(\S+)\.base($faceExt)\.png$/) { # FACE $facesNum++; $im_name = "$1$2"; &warn("duplicate face $im_name in ".$dir." and $faces{$im_name}") if $faces{$im_name}; $faces{$im_name} = $dir."/".$im_name; } elsif ( $file =~ /.*\.face$/) { # Face information file $facesFileNum++; push(@face_files, $file); } elsif ( $file =~ /.*\.trs$/) { # Treasure information file push(@treasure_files, $file); } elsif ( $file =~ /\.png$/ || $file =~ /\.xpm$/ || $file =~ /\.xcf/ || $file =~ /\.doc$/ || $file =~ /\.txt$/ || $file =~ /$faceExt$/) { # we cover many files we probably shouldn't, but oh well. # we just don't want complaints about all of these. } # ignore a couple of the more common 'junk' files that are not # really junk. elsif (($name ne "README") && ($name ne "CHANGES") && ($name ne "TODO") && ($name ne ".svn")) { $trashNum++; print "Warning: $file might be a junk file\n"; } } } sub storeFaceInfo { local($lface,@values) = @_; if ($values[0] ne "") { # blank.111 is a special case - # since no foreground pixels will actually be drawn, foreground colors is # not relevant. Several monsters use blank.111 as part of their # animation to make them appear invisible, but have some other # foreground color set. # Same applies to empty also. if ($fg{$lface} && $fg{$lface} ne $values[0] && $lface ne "blank.111" && $lface ne "empty.111") { &warn($arch." duplicate fg color ".$fg{$lface}."/".$values[0]." face ".$lface); } else { $fg{$lface} = $values[0]; } } if ($values[1] ne "" && $lface ne "blank.111" && $lface ne "empty.111") { # blank.111 is a special case - see above explanation # Its visibility is always 0. if ($visibility{$lface} && $visibility{$lface} ne $values[1]) { &warn($arch." duplicate visibilty ".$visibility{$lface}."/".$values[1]." face ".$lface); } else { $visibility{$lface} = $values[1]; } } if ($values[2] ne "" && lface ne "blank.111" && $lface ne "empty.111") { if ($magicmap{$lface} && $magicmap{$lface} ne $values[2]) { &warn($arch." duplicate magicmap color ".$magicmap{$lface}."/".$values[2]." face ".$lface); } else { $magicmap{$lface} = $values[2]; } } if ($values[3] ne "") { if ($floor{$lface} && $floor{$lface} ne $values[3]) { &warn($arch." duplicate floor information ".$floor{$lface}."/".$values[3]." face ".$lface); } else { $floor{$lface} = $values[3]; } } } sub archsOut { local($dir) = shift; foreach $arch (@archs) { # Assume the filename $arch begins with $dir. Assign all path name # components after $dir to $pathto. if($arch =~ /^\Q$dir\E\/(.*)\/[^\/]*[.]arc$/) { $pathto = $1; } else { &warn("cannot determine editor_folder from arch '$arch'"); $pathto = ""; } open(ARC,$arch) || &die("cannot open ".$arch); line: while(<ARC>) { chop; ($var,@values) = split; if ($var eq "#") { #developper comment, switch to next line $commentNum++; next line; } if ($var eq "Object") { $lface[0] = ""; $#lface = 0; $lfg = ""; $lvis = ""; $mm = ""; $floor = ""; $moveon = 0; $nopick = 0; $arch = join "_", @values; $print_editor_folder = 1; } else { $print_editor_folder = 0; } if ($var eq "end") { if ($#lface !=0) { $#lface--; foreach $face (@lface) { &storeFaceInfo($face, $lfg, $lvis,$mm,$floor); } } if ($moveon && !$nopick) { &warn("File $arch has an object with move_on set which can be picked up\n"); } } # Process the color/face info now if ($var eq "color_fg") { $lfg = $values[0]; next line; } if ($var eq "visibility") { $lvis = $values[0]; next line; } if ($var eq "magicmap") { $mm = $values[0]; next line; } if ($var eq "attacktype") { $at = 0; foreach $t ( @values ) { if ( $t =~ /^\d+$/ ) { $at |= $t; } else { if ( defined( $attacktype{ $t } ) ) { $at |= $attacktype{ $t }; } else { &warn($arch . " has invalid attacktype " . $t); } } } $_ = $var . ' ' . $at; } if ($var eq "is_floor") { $floor = $values[0]; # is_floor is also needed for archs, so let it pass # through } elsif ($var eq "no_pick") { $nopick = $values[0]; } elsif ($var eq "move_on") { $moveon = 1; } elsif ($var eq "face") { $lface[$#lface++] = $values[0] } elsif ($var eq "anim") { if ($anim{"_$arch"}) { &warn("_$arch is a duplicate animation name"); $anim{"_$arch"}=""; } while (<ARC>) { chomp; $var = $_; last if ($var =~ "mina\s*"); if ($var =~ /facings \S+$/) { } elsif (! $faces{$var}) { &warn($arch." is missing face ".$var); } else { $lface[$#lface++] = $var; } $anim{"_$arch"} .= "$var\n"; } print ARCH "animation _$arch\n"; next line; # don't want the mina } if ($var eq "face" && ! $faces{$values[0]}) { &warn($arch." is missing face ".$values[0]) } if ($var eq "smoothface") { if ($smoothing{$values[0]} && ($smoothing{$values[0]} ne $values[1])) { &warn($arch." duplicate smoothface for ".$values[0].": ".$smoothing{$values[0]}." and ".$values[1]); } elsif ( ($values[0] eq "") || ($values[1] eq "")) { &warn ($arch." incomplete smoothface entry found: ".$values[0]." ".$values[1]); } else { $smoothing{$values[0]}=$values[1] } next line; #smoothface must be excluded from archetype file } print ARCH $_,"\n"; if ($print_editor_folder) { print ARCH "editor_folder $pathto\n" if $pathto ne ""; } } close(ARC); } } sub pline { local($face) = shift; print BMAPS sprintf("%05d",$idx++)," ",$face,"\n"; } sub opline { local($face) = shift; print BMAPS sprintf("\\%05d",$idx++),"\t",$face,"\n"; } sub pheader { print BMAPS "# This file is generated by $0, do not edit\n"; } sub bmapsOut { &pheader; $idx = 0; &pline("bug.111"); foreach $face (sort(keys %faces)) { &pline($face) if $face !~ /bug\.111/; } } sub pathsOut { &pheader; $idx = 0; &opline($root."/system/bug.111"); foreach $face (sort(keys %faces)) { &opline($faces{$face}) if $faces{$face} !~ /bug\.111/; } } sub treasuresOut { foreach $treasure (@treasure_files) { open(TREAS, $treasure) || &die("cannot open ".$treasure); while(<TREAS>) { if (! /^\s*$/) { print TREASURES $_; } } close(FACE); } } sub facesOut { foreach $face (@face_files) { open(FACE, $face) || &die("cannot open ".$face); while(<FACE>) { chop; local ($var, @values) = split; if ($var eq "face") { $lface = $values[0]; $lfg = ""; $lvis = ""; $mm = ""; $floor = ""; } elsif ($var eq "color_fg") { $lfg = $values[0]; } elsif ($var eq "visibility") { $lvis = $values[0]; } elsif ($var eq "magicmap") { $mm = $values[0]; } elsif ($var eq "is_floor") { $floor = $values[0]; } elsif ($var eq "end") { &storeFaceInfo($lface, $lfg, $lvis, $mm, $floor); } elsif ($var eq "animation") { $animation=$values[0]; if ($anim{$1}) { &warn("$animation is a duplicate animation name"); $anim{$animation}=""; } while (<FACE>) { chomp; $var = $_; last if ($var =~ /^mina\s*$/); if ($var !~ /^facings/ ) { if (! $faces{$var}) { &warn($arch." is missing face ".$var); } else { $lface[$#lface++] = $var; } } $anim{$animation} .= "$var\n"; } next; # don't want the mina } } close(FACE); } print FACES "# This file is generated by $0, do not edit\n"; foreach $face (sort(keys %faces)) { if ($fg{$face} ne "" || $bg{$face} ne "" || $visibility{$face} ne "" || $magicmap{$face} ne "" || $floor{$face} ne "") { print FACES "face ".$face."\n"; print FACES "color_fg ".$fg{$face}."\n" if $fg{$face} ne ""; print FACES "visibility ".$visibility{$face}."\n" if $visibility{$face} ne ""; print FACES "magicmap ".$magicmap{$face}."\n" if $magicmap{$face} ne ""; print FACES "is_floor ".$floor{$face}."\n" if $floor{$face} ne ""; print FACES "end\n"; } } } sub animOut { foreach $anim (sort keys %anim) { print ANIM "anim $anim\n$anim{$anim}mina\n"; $animationsNum++; } } sub smoothOut { local ($sm); print SMOOTHS "##########################################################\n"; print SMOOTHS "# Do not touch this file. #\n"; print SMOOTHS "# It has been generated from the informations present #\n"; print SMOOTHS "# in the archetype files. #\n"; print SMOOTHS "# To add new entries, simply add #\n"; print SMOOTHS "# smoothface xxx yyy #\n"; print SMOOTHS "# to an archetype and collect.pl will put below an entry #\n"; print SMOOTHS "# xxx yyy #\n"; print SMOOTHS "##########################################################\n\n"; print SMOOTHS "\n# Data extracted from arch files\n"; foreach $sm (sort (keys %smoothing)) { print SMOOTHS "$sm $smoothing{$sm}\n"; $smoothNum++; } } ### print out statical information sub stats { &info(Archs.":\t".$archsNum); &info(Images.":\t".$facesNum); &info(Faces.":\t".$facesFileNum); &info(Animations.":\t".$animationsNum); &info(Treasures.":\t".($#treasure_files+1)); &info(Trash.":\t".$trashNum); &info(Smooths.":\t".$smoothNum); &info("Comment lines:\t".$commentNum); } �������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/crossfire.0��������������������������������������������������������������������0000644�0000145�0000012�00014555051�11732536627�013364� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������IMAGE 335 ./arch/system/bug.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��-ŠV���c2�1�þ¿Êÿÿÿ¿¿¿Æ^ ���tRNS�@æØf���âIDATxÚÅ“Á’„ ¥´ÿÿ‹wƒÈÔŒkíqr Ziê=ØŽâ;�#|ÈŒßЀæAtÉ¿Äô$ï@iOýüvš’Sݼ¥»üÛïl¾Îg¼B;ëÿ̓’ÑÑ`Õ/À=9í6öò´€€&‘J&•¥¹€qfÁ2:=dP®iÙ<Û n¯§¤ Ð(bø¸€-šàÆ,f-°LÒÓª"ŒsŒDL@³vdjWÛ=`�k²-bôÿ> b ¥•ï³ÐkX¯ºp»Qf_ߥÿx´`¾öniI=à—Þæ"4ÏŠ$����IEND®B`‚IMAGE 2708 ./arch/monster/giant/DreadKnight/Bk.x11 ‰PNG  ��� IHDR���@���`���š„Ú��©PLTE������„„„!)))!!BBBJJJccckkksss�ç�ŒŒŒZZZ�ÿ�!�Þ�)1ÿ1111911999�½��ï�RRR�÷�{{{�Ö�B”””œœœ½½½ÿ��”ÿBBÿ)1÷{)÷)ÿÿÿ1))­11ÿ1ï1Ö9ÿ9ÿB÷B�µ�JJÿsZ��”ZZÿÎ�¥�!!�Î�!)Ö¥¥¥µ­­µµµ�­�)))ÿÿ�))Ö))k!!ÿ!!ç!{¥�!¥J19÷Z1÷11ÿ1s�Œ�9Bÿµ½�œ�BïB!!!J��JBB!!œ!!½!!ÆRRÿRZÿ÷!)œ!)µZcÿ!)ÆZ�skk!)çs{ÿkR)”ŒŒk{œµ„))µ))Î�s�Þ¥ï½R)1ç�Æ�Æ��!ÞB!B1)�”�Î!�9�Æï))sJ÷JJÿJ))”RRÖ))¥RZçç!!R!!Œ))Þï!!­�k�kkÿ)ï)ÿ)ÿ)s÷s!!Î{÷{1!¥!)­19ï!„1Æ1c!)Î)9Œ!)ï99ÿ!)÷9ï9ç))„!!ÖJBJ)11JJZJJÖ!!ÞJRÞJRçJRÿk÷RB9RJJRJR”JÖÞçRÿR!)Þïs�RZÿZ!1½ckÿ19ÿ!­kÿk!½)��J�!ï!{sk!!B{{„„99ç!!ZŒÿŒ9BÞ!!k))Z!!s­­­­ÎÖBBJ!!µÖÖ�BJïBJÿ)”JBÿB’]Û$���tRNS�@æØf��™IDATx^í–ó“co‡ç¼×Šm´mÛcÛ¶ùµmÛ^Ú¶mã/Ùsú&}“lçNf«ö—­ù¤Þî©©~žƒû&•%ÿ_™œœ4bþ+ܲ˜žkåëÌÚ)¾æˆO¥rŽZ®5&Žè‚æš ó|Ýdòu„/H Âˆ7©0„W. êÈH<õ‘ Œ¡Hm–…D'­äaAd[ÌL5aR=“€ Õ?Θ†-àÙ‚˜ÇÀcˆ{zêÌ) .�²¢(�“EÈÿgÉé A8«… /ž]–eÉ4`/Ý"� p~Ëp†dQd0.œ)=¸†º"ÖÚžGW˜¤ $`@8,òWØ?”¹‚ (Œö€€ø¢eêÊ^a^´ Ò‹óÖ›JåûÑyÄ&•ÙJœÎ`Ó=›n¿gœ1‘· ¤X†¾òž6ðÉ Îwž¿ý–ǃE䋪j†šv�¥-+ À “ùTSÔ´A©ÀXˆªry˜8Ȩ§Šùv`Xá8´µeÛ²€+qyuºx‹¥¡PÁ1-ËÀçñLl¡  ìø†êè„Çiƒ‚,éAQ`<O„©>”m`YÔá�ðGªÓ©qØcx^ãŒhTUˆwB™GpªßûŽu놮\Š0ÂTpÆÐÐЕq€ñNÇ1XôûÞ{ض3æpÄœjnßÔöÀ1ê_uúÖÝâp¬5€ x8öês³#pÅ_ó‡ÃÖ" çŒ=áp8C;Üøê2S ø)Ôô?÷̯þe ?þõ=íí™ö§Ì7žš]3€XM§¾¿€AÐ4€<W7Äüýýw ë|°©™L{»A¼F{;´Ö:QÐ�ð Ô’F†?½o_/úkbã7ù£w®^ÓžyºuMÆà°< fáîG7Ô l jàüáá·/ ¿ô€oïqýCίnm]Ýñ-"Fài<Q<1<ž\ ÊATP.×Ê—/}ì¾_ï;έHGÎ�F P¨Å³ÐaIb¨z0Â"’�¯œs­ßUõ©¾¿]:p<½jÕ x00 THš ž$Âxõ / ºÂ4-¢|±w¸zýß‘ý1þè&ÿе§74«ä)„Xþ˜ æïŒMÁ)–þápÕîÝUç^„rCêÑ64pø=w΢da‰31¿ûÏ+(`|azúûwÿâ,™9¶âTÔ,|È‹R¯%¬OWÐà¾>¹¿kê~ô?¸âdƒj˜‚GŸìhEOR¨yê?‰¯x"b >,)ågð@ß®ïNÝK^ÇÑ“§Nol¦ï¿×QûI¡å͇AR‹£À2üù£�®êõ/ÏóYîàxCútCs€ÖÿåÍsA”’�I Ð?4VôDœÒ ÄÏs~g~êÜæÕsw€'('![S7¤Rø;™ x¨÷Y×ÎûM^äO®:•ß@@mº»6“ޤ)ÈÓõ/ @÷Y0< N®MolVÃÄÏ5ÕâÛ |z2‰õó‚‚–~®µ¸EÑûóhº¡añ_izòÆ/õã h‡7¤Ì—ÿê$Jd؈å w@Åæn½õà Ê‘$ ýW|¡ b'½hðPàvþ©Éívg¾Š`aVžI’Ñ@ ¯[CZs‡l6w¸uþë­Ð®>Ȳ&{I°(jn/; €6¨@9ž�YÓHá5y܈œÛáV4 ?b·�¬/hs€\AIÁ`·@”¨>)ˆ~Ä… 9¢i¦€%)ÄÛn`RÀŽÃÕÂHÀ˜ÁP6ðMÖˆÙñ¶«úðr0C Z"®Ùñ¿}e{¾<lÿø»®êá^z&¹ä‹k¸?Áïλr„×–.ßqxçR˜çÇÆ@" q[~zï” CŠ–×�`ù‡þ !ávÜ{ ºñwQAAã[oœï€²Ä6𛳗\U]]®ÝY %|º;?Û50åªÚÿ®Æ×»sµpË›Ø~ùÒÊ]O<±kå %'Þî2S /^þZUß‘¾ªÇîKúð”)€JàBAÕ³…Ó^~hï#®®®.“·( À‘ÆsE|Èá9[uäH_%‚Ë .ছ ÙzÉ! `ª¢ |XZñ‡uȉ;·Ý6S‘ÀäÅBÁ–8¡-­@Ò‰·²Å«Ä㊷5«¾%ð('´Cõ-=ƒx"üa¶XëàeÑ+€KH|‰Ö1¡+’Ð2SÉâ¿•„Ï–hC>YÖ'²î«ó‚Oè½DëžêE1tùª¸G–IÁúm%<?èу‚ÈóWŸŒ$Ñss©`W èÞPÈž—££cc#Ÿ¯Tí ’r(èñð¶||4™Lâ#¨ÿOù ¿M’%]ôÚÞ ‘±ä(­ò¼W”"Šî„ò‚m,1r"j[Ü?qsð'‘ ÿ¦Íeþœ¦é>›5ùty6`“  Ø®Ùë}Çûßæz®çzþ ê,fñOè[p����IEND®B`‚IMAGE 2680 ./arch/monster/giant/DreadKnight/Bk.x12 ‰PNG  ��� IHDR���@���`���š„Ú��²PLTE�������ç�!)!!BBBJJJccckkksss„„„ŒŒŒZZZ!))�ï��½��Ö�)1ÿ1111911999�÷��ÿ�RRR�Þ�B{{{”””œœœÆÆÆÿ��ÿBBÿ”ÿ))k))Ö�µ�­1))1ï1ÖJJÿ�Î�Z��ÎB�!!!!!�­�!ç!!ÿ!¥¥¥µ­­µµµ{)))ÿÿÿ!)Ö{ZZÿ9ÿ9½B÷B11ÿ�¥�1÷1ÿÿ�Þ¥µ”!„19÷!¥J1ÿ1ZZ�k!÷BïBÿJ��JBB!!œ!!½�Æ�RRÿRZÿ!)œ!)Æ�Œ�Zcÿ!)çskkRs{ÿ)œ{”ŒŒ¥�))µ))ε„)1ç½½½)1÷kï½R�œ�)÷)scÆ��!)­J÷JJÿJ!)µ)ï)s)ÿ)!)Î1!�9�!!)÷kkÿ�”�1Æ1Œsÿs�k�{÷{9ï))Z99ÿ9Bÿ!!­B!B1)))”BJïÖÖ��s�!!Æï))Þ¥!!Œ))s9ï9!)ïÎ!1½B1B!­!½)!ÞBJÿŒ!ï!BÿB”ÆÞJJÖÖJRÞJRçJRÿÞçRB9RJJïRRÖ))„RZççRÿR))¥�÷s�Z÷ZZÿZcZc!!Rckÿ)11!!Zkÿk!!k!!sçs÷sk{skR!!µ)”ŒÿŒ!!Î!!Ö19ï!!Þ­­­19ÿ„­J)”JÆççç99ç!)Þ9BÞÆõ•‚���tRNS�@æØf��tIDATx^í–c—+[…3Ë m´m[Ƕm×¶Í×¶mÛ¶ÿÇ»ö®d¤OÔ}ï÷Û™éé<O͵vW'Ž·"7³œÂ~¾I–ãoœç×d|&“ys¥™‚ѹ o(œÍ£d)Ý�à39”`ñF¥^åãs9JÞ‰<ÂRôêrG†2ÁÑœ«Tp™Sýð÷Š ‚^,L�VúSÊíg™²B‘¡)Dbñ<Äwww£›³¾À";`i• <Ü âùÜSZaÅåËg5Ãˆëš CÊgó‚é΀h^¦ËÎZºa¨–L+P(A7ñDWX€�Ä€ À ¼ªä&pTޤ�¶@Ç|7mŸøåE7!Šx|_a^ðTÝ @É ¢È�§Å·_¹ïöU‘ âü»‹·‡Z$è‘÷t ¨±M/ß÷Ðc…�Ê^Ž ! µ"X:êd&°£I›àj«ÏEœ&d#/€Òç “ž¥¢ F Â…8L€ŽŽºŽ:J™WWÄbµ˜¯pf ‚~ÿx?M`äÄW|S›PpP³²¦ZE–$6Aˆ_¿¼€ œòˆâÀÒ¥€Û¢Q¡ËI% Š)K¦3ìñ‚‹ð¦ œè ‡Ü¢xà@×îÝ]ÅI, iœá®®®ÝÀ@“xå8òÞwPíhLcQ!·oV:8‰§—¢î¥ÅV<üøP6ìÚ틹C¡Â"î o …B®Þ^Q æáSåÀXÏã?ý͇ÃÄ|aK}}¶~›]áámCë‡\ÑÞ±¦(~¸Õ]^s÷ôü“ðXÓOZçHÍÖׇOžúúõ3W£èˆâÑA” abcc1Ĥ+nÏ«ËÖ×gïžYŸ¥Ä#\?„ÛžœEÿØ�ð(&Ê ÞvþÖ¿ïÞsntwE?´lffÙÜ·Ù¡Ð6dï^†oyz^‚Ãåh¸Ã»æüÇ¿øß;Ž9×Õz¢QEp1Þ%p• •z î-+8ã}fOÍô‹ç÷«Ý°áuOT ¸BL D pô‘œ�FºDð×Õ«&ŸùÀ§_¼çYiÓ÷º»Ž¯l\ij¸ùX‹~L¤ ¦§›· à™úË¡š½{kþöçÒ.aÓë+Û\4ü–W‡È�%mÀ°Ÿv"àœjpô=²¢à× Ÿ<¸÷ßgpdÝ }iÐap7æ%i(\ ²aeå;š®«¿ü©ƒ_ñë.5 a[ðäs3ÄË–>_`¦tÆËL k–fÿÓ{þÔø⦥—NŸmc\_iúFAU§ Þ?Md*Î ¨T�/~?I|sã@síñfÚ�­ÿc[çß5 YÕÙòx ¤Í¤-)Pu ûìT° p@’œîh~ÂàÖeƒÿƒ¬¨i –4H`äÑ0d(f ŽƒñŠtiÉü\BëmW³Yø#ZlÏÜ’É ƒtŠ<¸1ä”Hpé®ÚÙ6!ÄøÁÖ«t;Áo‘€h*`ÂQ!í>E üÙSÛÜ|ŠñŸm½óýŸèéAÐJ§éú/þ+¯$€¢2ì@;ð¹*0ØóÑ÷AVØoáße–“ Ge CÀE_´­Õçóe¿Š`D‹§a•c#T.�UÕÈÀŸI´é m4äW`T�šfj¦ XQL_€bïp;à˜y6�4ÓdŠ€ÍÓF4ðØ Hé• @Ó4ÀdáØr;ÜN⇫œ�›À4¹‚è×¼¤Ðâ¦I;dw(ÄÓ�Õ6H0W`ס‹LÂGœ€ßÕx~•Á&»Þé½xh-xØü~5“ÃÉ*üS«wæ/xÀ{qr;^ßñf*Iý+?>=éÍm×§Öî:ôÊ8?Ê*hq#iÆ«ñ û½¦h¿`íï~9…|d• ÄQê…ý—<ýôR°ñ‘©G Ù¸€ð*ÁNŸ÷Ötv.ñ¾r­¶óg×`ó£p€ãU 4zk~¯sÉ=×òEiÈå ÇBÁn]³çÁ÷¬Ùÿ%´ç­ ;½vÁ+çþS3}tºæÙ·cþgm£-À"ð’ æ·7Lzî»û^óvvv.Ì; ëÀÑ%gnä¢ÿtÍÑ£Ó‹œÓÙYá¹çæ êZTQ&Aãb&Ðé¬Ì¢ÿµ‰`<)Š÷ß¿y1›WnüÊo¤NêrûbV šÄ+œ/¤? '“z`DÌÒë“À¯Ÿ4·´/æ ’©däëuE^QÒŒ¸Õ·°�Jrd4¥JÅ^qÜÒU¹}ó"6üãˆ*®Ø›jš5^ç[—ÕdÊò[Å^߸ܢ(‰s á~M;¬FZvóRŸßŠÈŠ$-4¿1<œÒÿó%‚Í´Ý $Uy-522::Kܾ„¬ê‡#~¿TOŽ\¸pŽ ¥Œ½OÚ¡jª¥úªý ^1”òƒÞPÔ¸nùûPQ°ÃH ŸŒ$:*4>òóxDz+|Þ4­`µ--m¨œˆ,_%À½’ã­ÍÍÜÌÍüih=â„Aa����IEND®B`‚IMAGE 2682 ./arch/monster/giant/DreadKnight/Bk.x13 ‰PNG  ��� IHDR���@���`���š„Ú��©PLTE������„„„�ÿ�!)))!!BBBJJJZZZccckkksss�ç�ŒŒŒ!)1ÿ�ï��½�1111911999�÷��Ö�RRR�Þ�B{{{”””œœœ½½½”BBÿÿÿÿ�ÿÿÿ�µ�­ÿJJÿ�Î�!!�­�!)Ö!ç!¥¥¥µ­­µµµÿ��))Ö)1÷{!ÿ!1ï1ZZÿ))k!Î�¥�”)÷)Öµ„1)))))B÷Bs11ÿ9ÿ9Z��¥�!¥JZ19÷s1÷11ÿ1�Œ�µ9Bÿ½�œ�!!!BïB!!œJ��JBB!!½!!Æ÷RRÿRZÿ{!)œ!)µZcÿ!)ÆZ�skk!)çs{ÿkR)”ŒŒk{�s�))µ))ÎÆ��Þ¥ï½R)1ç�Æ�œ))”B1)Î!�9�Æï))sç))¥J÷JJÿJ!!RRRÖ!!ŒRZçï))Þ!!­�k�ÿ)ï)!!Îkkÿ)ÿ)¥1!s÷s{÷{!)­!„19ïc1Æ1!)Î)Œ9!)ï!)÷ÖÖ�99ÿ!Þ9ï9�”�B!)”JJBJçJJZJJÖ)11JRÞJRçJRÿ!!Ö!!ÞRB9RJJRJRk÷”JÖRÿRÞç!)ÞïZÿZs�ckÿR19ÿkÿk!1½!­!½)�{sk�J�{{„!ï!!!B99çŒÿŒ„9BÞ!!Z!!k­­­))Z!!s­))„BBJÎBJïBJÿÖ!!µBÿByS”°���tRNS�@æØf��IDATx^í•c—;Ï…gW[±9¶íŸmÛ¶õ·mÛ¼´mÛÆ'¹§ºÓ7Éd&“7÷ÝìIuÖÊZÏS§v÷$U™Ë\êëíUO«$˜¦ÛÏS_êÀ¬4çÜKC}‰`FrІŽ’ +ˆ/\… ðLg®wô“¡¤,t ÛÜYq1äÅ´+Þ€ô¾‚%†+W«(2˜®Àý0ß}Ñý+ê§)aá•«WBÕu]s @ŽwK°+l �^B©a¡$ë,iè$`:¯\Yˆ‚[A´Ý!HBã”Ö UƒiªÌ „7h_�§KâKÙ`�d€  Lyì�4ý ‘”¼À ºw@šž>|Raìçç< ¦•nO\ñé§ŽQeØzïÖÛîídL‘òâ\ü­ˆA5RôçzZÖÎ7ž¿íýGƒ‹ç« ñEÓÁ¬ö€§¥V&¦Kã)Ø1«ó¦ „ÿÅ4E ²Ëƒ)¢@zžA1Ÿ  „|D‘ ZZj[jA¤DW�(äÕ(TˆÌªeƒ‹·ñ0Ì2ÀwMO# ¢huȺ¦Æ™I?AÄÞÆVF=žÎÉIÀ›ñ¸Ù.Ҍђ%K¢QÓôÞˆéÀ¹ !â÷x6nl¿~½=꣈óBÚÛÛ¯wžS˜n�œúñ{4v<áñ$âf®op&OÅý“ß÷xÖ9Pä§^y~¸Nð]÷%ü‘H¾HŽ‹ÂÞH$âKï¾²Òhr¿ÂÐÄóÏþæ?ñßÞÛÚZ×ú˜3Dždž7 ûjŒã‡ÛNȲe.çR$ü·žh¼kd êêZ[Î Z[±|~œMÀ³h°šÅ 9~ìСyäJ !mõGïX¿¡µî©åêhQà‚aÜóÐ`ˆ`G ó^skÄo^ëzáCàGâQ{ü—ë—/_¿ä;ü‘OÑŠÒJÐh倢Ç�{�¯wíK×>qÿïWWGãqÅôqÞg0ŸÖ&Zà‹e9Ãw%YRS�¼xÑ»y_ÍgFÿqíÈéê5kž¦çˆâ‹p‰¬ÒÊL‹Ù<'«³¬¤ |u^×àæÿê#ÒÉ­þÕënlZ`úˆçñÄÜå$æ>: ,#øËñšýûk.>‡ˆ“íæÉ§7-ðÑá÷Þ1Lè,É ’fŠÛý 0 _ûÔáý¿¾ˆªñS«ÏE­I@7ƒxE+â­LþÛ*ãÜÿà§· ÜMÞÓGWŸm2GðÐãK–“ ¬4<½hÑ5IæÕŒ¤ñ <8ºï7q¯çääÙs7¶,à3ø>öÞ’ù_ k/ÏCÖJ“ oøÛÇïàæ—ºl¾V<ÚÙT}£‰ ú¿±}I÷ß!+Z ø•Œón@8Ï<p’$úãnf÷öõÝ·#Ó³èÇÎþËü‡Ù ‚ûæ=áÝs·Ã+ÒÙ5çÜ|æÈ=óëêTI@4ñüñ/ °ô§D‚³ëª·,0#œï™OÿN«Ù,íÿ6áo“ _aÉ÷Zs@QB¿V75­äü7G÷kTïð2ý|ñ²iâ§¶ÐöBÀgÒ�Ý·Üò„cz2 ÚžüÉr=D†ø¿F@Ý×é¶À­€ÍÌCÓt2pE(`m"w-p:ÜIذÊí]·ôW¬(V D¡ ì (¼A3ñü�Ð-‹+BOè¹w^¶ùžrÐþ:`ñØpˆiu@!¾ÜïÏœ~ØK=iYŽ€e)6_¶A‚mv|« ~ È 0f¥{ÒÄÏ|‡- v¿é<¾ Nøm$ƒ•I[åø?½¸ÃÝ;>÷–w°k¿'¹ô$K[ÔßÌÁŸ/tys âå«vßs�6ß×YK2ÂËòc¼®h~ÀªÏþnlAYœpÓ‘Áeï¼³Œ<d|ýuèî<Ueƒ?\¸æ­ik[æÝ³´¶òKKáò.\v€oÍáïµ-{uin/ê¹¼Q5kðûÖî{òÉ}küÍ9騝“JxåÒ·jFOŒÖ<r'òÒ*ÀK‚š' «ºtßÁ‡½mmmÄÏpbÙÅ">å ^¨9qb´Á%ƒÊ>ø @P»HóÈ$¨èÝ,«øË:N¦=ž[o¯HàðJ¡àµ Ëœ1äæŠ*Ð,ââ ²-d¤ÓF¨bVÉþ$g¬c‹š+ºéL:öÓÚb­GÒYRí¨@�%ÝۗѤ)ZÏbÕÐäæñJHÿ±W“??E› 뺺¸60;/kéŒT§h‹åEŠ’º4+ÔõcZlÑ®)¼ÔTc²"I³žŸõôd %xóTÁ8U`¨¡Tª<¯gz{ûúz’áðTu %kƱX0(•åÓ½ôcA·`Q©¼Cڥ險„:Ê>A=}Ù^¦L»Ë3!EKj°3 v±LÏ™Xªezÿâ›c?KƤ7Ê<Ì_°,5\¦¦°ªï¢Ê$&Ëek…ž‘ªþÏ™Ë\æò_³òPÇÎܺ_����IEND®B`‚IMAGE 2619 ./arch/monster/giant/DreadKnight/Bk.x14 ‰PNG  ��� IHDR���@���`���š„Ú��©PLTE������ŒŒŒ�ÿ�!)))!!BBBJJJccckkksss„„„�ç�”””!ZZZ�÷�))Ö)1ÿ1111911999�Þ�RRR)�Ö��ï�B{{{”ÿœœœÆÆÆÿ��ÿÿ�ÿÿÿ¥¥¥1ï1ÿ9ÿ9�­�BBÿB÷B�µ�JJÿ!!!ZZÿ!!!�½�!ç!!ÿ!B��Î�)))�¥�)1÷µ­­µµµ­Þ¥Ö1))�Œ�s{1÷11ÿ1”­!¥JZœJBB�œ�JJRµ½RRZRRÿZ��!!œ!!½Zcÿ�s�!)­skk!)Æss{s{ÿ÷�Æ�k”ŒŒcRµ„))k))µ½½½k)1ç{{)÷)!)ïÆ��ï½R))Z!)÷BïB�”�J��)”ïïsJ÷JJÿJÆRZÿ))”))¥Z�))Î))Þkkÿÿ¥!!­)ï)!{{„{÷{!!Æ1!!!Î!!Ö11ÿ19÷1Æ1s�!)œŒ9�9�!)Ö9Bÿ!)çB!B1)�))s÷BJïBJ÷!!R!!ZBÿB!!k))„!!s!!ŒJJÖ!„JRçk!!µRB9RJJ!Æ)11RRÖ)J¥�ZJc!!ÞZZc„)ÿ)Z÷ZZÿZ�ckÿŒ!)µkÿkR11Î!)Î19çs÷s{sk19ïÎ19ÿ!)ÞÖŒÿŒÞç!­!Þ­­­�k�99ç9BÞ!ï!9ï9ÞÖÖ�ççççï¥�J!!BBBJ))9׎ýY���tRNS�@æØf��@IDATx^í“ó—ä܆kŸØ)ÛjÛÖØ¶íùlÛ6®mÛ¶íû—Ü}’4*k:ÕÓw}¿Í;uºgõZÏ“wï“ò½C©ühÅùYY¾c–+©”+•2žåµ è¡Y^2~ª•jk,cô ê´°¸RŽÂr\µÀgÃÕ*Ë–«åYø®VÁî.ïF…3ܰtƒ5yµBa¶Jyª€Ó¶h¨·z»i…êì«�“hè…po/ˆ¨ðžËzØòn›G]áDQìU) c!IJl…ÅUÌ_ääi0edeB v¥ÅCùJÕº¹yAV¨h€ú¼õ>ÒΠ¦"A/6 ªxz yòÎ$ ‚€ ‚ÉI¨Ë»Ã‹*Ø!ª‚x]ÞÕ>‡‚ý€HKàÝ· œ ­w¿¶õî­(ùyñ¢ý!ùù÷® ¢*üá–×öwìÇ[˜£�ÀMSÞhÃh9hšâÂü d¾ Ý4ZjyI¢¼#`f£iæb7Ç ¦FÀJD ¬£Ì`f.‡‚¦¦xSTä9G]Ó€eB 6ŸÉÁ§’¸ DÃýÖ* ®\�yÖæ_ÒŒ˜wp!²d&Dð<Ào=j7Hˆ³D¸ø3æ%£ud Ób1mˆãT ! ð„cR)MK#Þî; ;©�Nýö/ Óg+WJ¥1È•`ÿ¡¡¡c­�­Æ©ZÃNEW¾Ìú�N½øÔ@‰e #£9ûÆ ˆ«òø§XßÈÊ[ ã;P+ئêêWYöß8ÁS?þÕÓÇú.eúüó‹¤8ÇõûýéÁA˜_¿è<YÔ•ìªõhÀôQþhss¡ù»Å™GÖ@lðR0ß·àp±xx¬_·2—0™LGc; …æf†òÀ0Ͱ¶å2 ^(@õ Uþ׆Cn»-ƒá·¦îX³¶¹ðõ–µlÀ1– å®Ûz¡ºˆ€dáÀÚ.|ìóún†ëŠýyMKËšöoÒ!üô <I< žw¹ ú“g~ð¾{{zÞ{áP’Ë¥b±4FKS>À�ž”#�µäüGÖ‹:|bß¾{ÿøàƒÜ¦Mâ{„Iû­‰�m±ª%„ñ¨®oó·fÙž]?ï Ü`áøÖ¾wnÞ>¥¥‘§±¤‚j; —�óÆè?}=p°¾/r#CÚñG·O¥¿ÿèT gÕÑUÑ-X÷lðéûÄ}]§6^LÙF^‚©,¢‚|M�V 8/Gòç'4ÆÜþx{ QIÉbyüà)©z1ëø�ÃÚ2ãøÈù‹›wLÑé¿7¶¼I¡Ë³¢B‰è(X4qî։ܿ Ü�ã×þzs{?¢TÀ†þ‡¨<ð<כ݀Öóš~'ä”áÖòõå2þ.= òç7]œÝ@Zk¼ërÂ& ¶‚ˆGçïÌí˜Òü”ïo¼\h†¨Y*áógE Ì„D1òµTnbâK”ÿMãã¿û%®€îðúrñ t¯$jØgBi ôßsDr¶Hÿ ÿ¡`ñ�’$GÐI£ ›jL&“œÀ8¨àñ|e4PE$D&I¿fïWðÏ €,Σ@™Èª…ˆ(’$š°]ÎomPñ(@Ÿ„PEÄæ“¢èìðV4 ßõàé„�Lˆ„’I§@‚~�ƒ<à¹A €P(ôPw g‰-PKoþÆïƒ„°£ØûæèMHb#:‚õe&zƒîõøÈÇ÷XófÏÞë‚£×­;xh Exñg^¼´ç'pò+7GŸ[‡K%v9«ê$ëÅßxß¡ÑçƒAK1sVoØûægWåÉ8RVE܃÷Á‡Î^¶uv¢ìlxîSàÄPܳ@ ضïÛ(xzU,å+¯€l7ŒÏ3ð/ìzøá]/ú0Ì8ÎO®‚9ÞW' ®øE[Ï‘ž¶ÇÞ sΓ«ÁÉ«¾ú¢ íÙ…MÏì Ú©Ïû@Q�Ž<ÿ`MWøhÀ@}Á …^¼õ,üãû_~(ØÙÙ¹DWE©áóFølÛ‘#=Kؼ¸PŸ– ¥$‚¼XÃûòѬnO<Ñõùq?ó…°Z<¡3K) èE=ñ­x­¶7¢èºY‚�D}l¼(ñ>— ¬œ §g–²ý÷c’ði—Ààe5kv×€ éE3lº½Æ°©HÂLW=<,Ë¥Äô7ù¨,›ÃñP½ùÕ††¢"†ßv Bô(æWÔáåâØØøxC6uñ|wØL"Ï×áõ±sçÎáL»Õ|®@1#ù|7¨aüܘ*^á9¡¼ )á°WØ¢N$òMW²wó[$Y2ÅH·‡á3„˜ÑÅJ>¥¬b†»ÁÄŇ~;ñ“l‚|ËNÔ”·ÐËO$ò ï{‡s-×r-ÿ_A)����IEND®B`‚IMAGE 2969 ./arch/monster/giant/DreadKnight/Bk.x15 ‰PNG  ��� IHDR���@���`���­Åtè�� `IDATxÚí\-˜«¼ÖE"‘±‘‘Hl%‰­D"kGެ¬­¬¬¬­¬¬¬­D"÷Í ìg§É×Òž9ÓÓç{ w½$²ÖþIsn2—¹Ìe.s™Ë\æ2—Ï(”$³�ÿyè¿,4u‡ê(Âó…>Z€ý—º+‚ÖÚõçyN\_,T–å3BP ðǺlEe þ¯¯/jšF„˜¾çÏ QB~ýo{@ýu];¢ŒåryWÆËäAæ5ÒRÿ p6Zƒ(:¢«ÕŠÚ¶EûF�A~_€ö@LZú)SsÌÃú ’°<Ú  � â“yE�‡„û­€$“s‚ßö`¼fõ;„¢~>¿|b´F\?+�® IO“¿/@ÜÇuJbQ~aÑA&Ï!€X·´÷k 7ÙÃãu’P€©6 õ ÒÆ ÞÅú›„J{àœc}'î±à5ÏÞ? ×¥MÒçÊ„õ¥PºN g¥”œ'„ɲÌý¼( ÎþhÖßçÂbmÑDñ?MœA“ŒÝœ‚vœ�'¸&| Žþ4sÖŠ�Ò4•éOÈÅu€³¾ÎR9?;@Dàz ¹æu¦ɹý÷÷7'ºIò�»¿Ö ¿s¿øð@‰]?嬟.Rò=àÉ€H�x{Ÿ™<   pï<€‹ „¢L[_ÈgEJê›ô¼ �BðDóE€HZ‡îú”�1ù[«Ãy2üß(ö -»œT^"qq8-‡Üšs¯«ª‚ÅÙC@ˆÝ¿¿cyqÿغuâÀõÀòÏ‘ÏW)­/íº Éng¯Ûz",Î g¯~bÄØÕ½6�q´…üðDèâbŒh1$„Ç:úþdñS4û†.ÔRÝ— ’o´8¨înÀä™p_!¼ûï˜ìXßãȪ0 øoèÐæÂý(*¬ÚûKmɯhkE0½¢¬‡uEx [›‘øžÀý¡Û‹7Fƒàky¶j• –òR´O¨ŠÎ]묿îk*X�Xž°J!À0Àx:)FÄ™|Ú§¸ K𠀉;>ú¢(?æ”n,„!ê»ýôbˆE<ç´¿6têW´î–Ôv®ðÉ;wTrÏÆC‘rg{Å=/ˆˆãÀõÚ9å8!”8ð¼!æ/C_cE·ˆaàâÀÄ XÓ–ùJia•n.%™“ò‰C^SÊ»œýBƒû|ðÜ­—Èu={˜ÞŒdE€t' °í[æ'BŸdrÇÒrÕuãeö¡¥Å—fؤl$ûg]FyŸÀô¡ÍøV€ÕÑ.û’ÒÎ>ó „!€Žˆ§B¿-gŠ-Z.·´Ûí©¬Òy3>�6ÀHëQ€Óà–ºÓN„b<P‡WÔT‡¡ ñ- ˜ß†°Üfá¹Í¢mü/"ÇÖ~zùKUu´IêLÛí‰ÚöhEØPYžmÿ™ŠÅ…”ÞÁ&¥T˜“eþ:2wäåg¾�½¹%¼A¡t8âiðÿÚÃ?)­VWZ¯ ^×g ¢EÙ‘6G VéÖá áH�&ÁÇã6“dÂ@üê,& ŠàÿNš–dÌšöboÚ;´mgÉ÷#ùi½óã^àæât“9‹¥çTˆ ùøèn,ˆóTû.ªêñkr¼*#ÆÔN�&¿\öTÕä°X¥é¸CÛ"öÇ5y“ D€î6ÎÝôØ N<Ï=ŽóKX¯×¼sœ ^퉎Ço` ?!Þáú7Å®kœÕ³U·l帙!|ò86D/’—åôf³™|qJ<ÐŽô~ò‡/àb¾µ^д=Ù1’1g‹í˜êQ€&£t÷xK ò˜ÊLg0`fàŸð–€DäêR—6ŸÙú�âŸxN¡°oéÀâ_t:­íyc±µ€R™ ªzÊ &¿Ègî÷‡�ð‚!ö£ë÷qœg×ŒŠ®€�.Ëg}Æ`÷ÇÄI.s@�D€€|øú bX‚-ívxÀ†‰[�qÿN^t¤}ò©7÷ïXSà ÀŽc?Îôꢰ\u諦ì”1y&p=Dx ï%îZd,Á£KvòV„O®}Tj}:7/)˜ò¦c€4@pSþD†ìížÉäˆ5Ö8{ý$`Ìð§þê‚:Ü€‚püŒ˜4ÆDyƒßÏÃíUíàDìËB{,káþj8üo„"@H:†o} $‹À²� 2ì~Üò9K�0ïÃý%ö¯ “‡Å!�“φƒÇ8¾ÅòË„ÎgŸøØ^Š�œü&`L½[²4¥\ É(ò|Ø“A€ÝˆmL^]Õ@¾3nß®Î'åÇ”�£�Cá:@¾�ðà§¿P‘à僌E8ˆÕùÀ5LÞ·>Îê”9èƒaësüÃ’ AÎ~ˆõ·ˆ�(ˆû"� ì � 9fç äÑf¸¨¨òÝ?`:þ‘×ÞC�y …`€$ò–¶[]]¾¸›�K&K>¢ä÷^Ë£Îäñp!Â'Ì}Lž¯gøÇrŸ¼¿ìýUòë£Í0XÆ=ò�÷áw&À’EˆÝk•÷Æ=“f°0 à‘ëÇÖ—Èø9 “«ë‡îÏDC!"ÒÆ\Èää÷q’ãëï pgý“kâ‹ ÇB�ZH›«%ßÛ3pF?C'€Á›—ùþM…”ªX„€pìþB¾ƒåGðÎ`+ŧAAöø¼T/y¼ RúË’ÚLYÀuXÝàŒMT8{<ò\Ã0qIxï+ Ô’1{�¡ÀýcY¶´dW°8‡=Ñæv£€ÿ.€ÉûÄßOޘƽï7#yA,D–¦ ïtál1›F,Àû‰‹ë[¬ñºÛ¹qžãý߀<"‚ÊÔ7ÀÖŸô€RÞìús}“_-†7¿e ˆ�ƒk·ØYÞ,B¢Á5Óî?MøýÖ‡ë3ùzI´lD�mNLŒÉ Ó3€Ê><[¿¶w”=UYË9 Ž¾!,ÌŸˆýéû}K‰ñ)–—UŸr/:/ƒåk¢våÎh_€Ìó›w/]¹dʫ²d| ùxÍŠ�Lþ„Ÿ½D^)…×æãŸ½íqÜEý<°˜h»“žy…¼¼~ËÁ´0Åù ,>J�X äý -ó³Î€— ëcy‹9«9ˆà è,ý¸øgxzBñò`3eàúXÐ kùïoÜž€äù‘ñ<~öò€µÖØïƒ4w@}Ÿ)�b•ð‰¿N^ÈY€ñ~mÓ /°�Sð2‚ÉÿÐòRïFkÿ[¿Ûîj­>O�vSÞwC,Kx™›ü±�Æð‹NxÇ?àg%?Þïvð�ˆ€Á:ëýä¾< ð&B@tü²ôQ±vÀ‚-U-Š?$‚,ç\QÔ縿ì¿Ùýa%þ@ñ“ˆ8çûð—hþ˜ üsâ»fk0Pg­ÅâGäÔäÇ?€:¦@xðOcYÙÿC ýf‘›Ÿ!�’þŸ»@hˆŒg�ÿÄ`qF¬sÒø+ ’ðW†0�ÉrÁÿç0ü ×¼“<g{ÿCƒŸùu@¹V zó§o¹@ï\ìÀÚ ò#øç¨¿  ¬ðüUÛ@ÔÝó •½O�¸"oL –§b5Ë~ÿ•”÷ácë¿«TãfÀ@0 wgcþ ŠÐø'Óá8' ÿŸÿ?5šË\æ2—¹Ìe.s™Ë\æòÿ·üï ž:œQ7¤����IEND®B`‚IMAGE 2708 ./arch/monster/giant/DreadKnight/Bk.x71 ‰PNG  ��� IHDR���@���`���š„Ú��©PLTE������„„„!)))!!BBBJJJccckkksss�ç�ŒŒŒZZZ�ÿ�!�Þ�)1ÿ1111911999�½��ï�RRR�÷�{{{�Ö�B”””œœœ½½½ÿ��”ÿBBÿ)1÷{)÷)ÿÿÿ1))­11ÿ1ï1Ö9ÿ9ÿB÷B�µ�JJÿsZ��”ZZÿÎ�¥�!!�Î�!)Ö¥¥¥µ­­µµµ�­�)))ÿÿ�))Ö))k!!ÿ!!ç!{¥�!¥J19÷Z1÷11ÿ1s�Œ�9Bÿµ½�œ�BïB!!!J��JBB!!œ!!½!!ÆRRÿRZÿ÷!)œ!)µZcÿ!)ÆZ�skk!)çs{ÿkR)”ŒŒk{œµ„))µ))Î�s�Þ¥ï½R)1ç�Æ�Æ��!ÞB!B1)�”�Î!�9�Æï))sJ÷JJÿJ))”RRÖ))¥RZçç!!R!!Œ))Þï!!­�k�kkÿ)ï)ÿ)ÿ)s÷s!!Î{÷{1!¥!)­19ï!„1Æ1c!)Î)9Œ!)ï99ÿ!)÷9ï9ç))„!!ÖJBJ)11JJZJJÖ!!ÞJRÞJRçJRÿk÷RB9RJJRJR”JÖÞçRÿR!)Þïs�RZÿZ!1½ckÿ19ÿ!­kÿk!½)��J�!ï!{sk!!B{{„„99ç!!ZŒÿŒ9BÞ!!k))Z!!s­­­­ÎÖBBJ!!µÖÖ�BJïBJÿ)”JBÿB’]Û$���tRNS�@æØf��™IDATx^í–ó“co‡ç¼×Šm´mÛcÛ¶ùµmÛ^Ú¶mã/Ùsú&}“lçNf«ö—­ù¤Þî©©~žƒû&•%ÿ_™œœ4bþ+ܲ˜žkåëÌÚ)¾æˆO¥rŽZ®5&Žè‚æš ó|Ýdòu„/H Âˆ7©0„W. êÈH<õ‘ Œ¡Hm–…D'­äaAd[ÌL5aR=“€ Õ?Θ†-àÙ‚˜ÇÀcˆ{zêÌ) .�²¢(�“EÈÿgÉé A8«… /ž]–eÉ4`/Ý"� p~Ëp†dQd0.œ)=¸†º"ÖÚžGW˜¤ $`@8,òWØ?”¹‚ (Œö€€ø¢eêÊ^a^´ Ò‹óÖ›JåûÑyÄ&•ÙJœÎ`Ó=›n¿gœ1‘· ¤X†¾òž6ðÉ Îwž¿ý–ǃE䋪j†šv�¥-+ À “ùTSÔ´A©ÀXˆªry˜8Ȩ§Šùv`Xá8´µeÛ²€+qyuºx‹¥¡PÁ1-ËÀçñLl¡  ìø†êè„Çiƒ‚,éAQ`<O„©>”m`YÔá�ðGªÓ©qØcx^ãŒhTUˆwB™GpªßûŽu놮\Š0ÂTpÆÐÐЕq€ñNÇ1XôûÞ{ض3æpÄœjnßÔöÀ1ê_uúÖÝâp¬5€ x8öês³#pÅ_ó‡ÃÖ" çŒ=áp8C;Üøê2S ø)Ôô?÷̯þe ?þõ=íí™ö§Ì7žš]3€XM§¾¿€AÐ4€<W7Äüýýw ë|°©™L{»A¼F{;´Ö:QÐ�ð Ô’F†?½o_/úkbã7ù£w®^ÓžyºuMÆà°< fáîG7Ô l jàüáá·/ ¿ô€oïqýCίnm]Ýñ-"Fài<Q<1<ž\ ÊATP.×Ê—/}ì¾_ï;έHGÎ�F P¨Å³ÐaIb¨z0Â"’�¯œs­ßUõ©¾¿]:p<½jÕ x00 THš ž$Âxõ / ºÂ4-¢|±w¸zýß‘ý1þè&ÿе§74«ä)„Xþ˜ æïŒMÁ)–þápÕîÝUç^„rCêÑ64pø=w΢da‰31¿ûÏ+(`|azúûwÿâ,™9¶âTÔ,|È‹R¯%¬OWÐà¾>¹¿kê~ô?¸âdƒj˜‚GŸìhEOR¨yê?‰¯x"b >,)ågð@ß®ïNÝK^ÇÑ“§Nol¦ï¿×QûI¡å͇AR‹£À2üù£�®êõ/ÏóYîàxCútCs€ÖÿåÍsA”’�I Ð?4VôDœÒ ÄÏs~g~êÜæÕsw€'('![S7¤Rø;™ x¨÷Y×ÎûM^äO®:•ß@@mº»6“ޤ)ÈÓõ/ @÷Y0< N®MolVÃÄÏ5ÕâÛ |z2‰õó‚‚–~®µ¸EÑûóhº¡añ_izòÆ/õã h‡7¤Ì—ÿê$Jd؈å w@Åæn½õà Ê‘$ ýW|¡ b'½hðPàvþ©Éívg¾Š`aVžI’Ñ@ ¯[CZs‡l6w¸uþë­Ð®>Ȳ&{I°(jn/; €6¨@9ž�YÓHá5y܈œÛáV4 ?b·�¬/hs€\AIÁ`·@”¨>)ˆ~Ä… 9¢i¦€%)ÄÛn`RÀŽÃÕÂHÀ˜ÁP6ðMÖˆÙñ¶«úðr0C Z"®Ùñ¿}e{¾<lÿø»®êá^z&¹ä‹k¸?Áïλr„×–.ßqxçR˜çÇÆ@" q[~zï” CŠ–×�`ù‡þ !ávÜ{ ºñwQAAã[oœï€²Ä6𛳗\U]]®ÝY %|º;?Û50åªÚÿ®Æ×»sµpË›Ø~ùÒÊ]O<±kå %'Þî2S /^þZUß‘¾ªÇîKúð”)€JàBAÕ³…Ó^~hï#®®®.“·( À‘ÆsE|Èá9[uäH_%‚Ë .ছ ÙzÉ! `ª¢ |XZñ‡uȉ;·Ý6S‘ÀäÅBÁ–8¡-­@Ò‰·²Å«Ä㊷5«¾%ð('´Cõ-=ƒx"üa¶XëàeÑ+€KH|‰Ö1¡+’Ð2SÉâ¿•„Ï–hC>YÖ'²î«ó‚Oè½DëžêE1tùª¸G–IÁúm%<?èу‚ÈóWŸŒ$Ñss©`W èÞPÈž—££cc#Ÿ¯Tí ’r(èñð¶||4™Lâ#¨ÿOù ¿M’%]ôÚÞ ‘±ä(­ò¼W”"Šî„ò‚m,1r"j[Ü?qsð'‘ ÿ¦Íeþœ¦é>›5ùty6`“  Ø®Ùë}Çûßæz®çzþ ê,fñOè[p����IEND®B`‚IMAGE 2680 ./arch/monster/giant/DreadKnight/Bk.x72 ‰PNG  ��� IHDR���@���`���š„Ú��²PLTE�������ç�!)!!BBBJJJccckkksss„„„ŒŒŒZZZ!))�ï��½��Ö�)1ÿ1111911999�÷��ÿ�RRR�Þ�B{{{”””œœœÆÆÆÿ��ÿBBÿ”ÿ))k))Ö�µ�­1))1ï1ÖJJÿ�Î�Z��ÎB�!!!!!�­�!ç!!ÿ!¥¥¥µ­­µµµ{)))ÿÿÿ!)Ö{ZZÿ9ÿ9½B÷B11ÿ�¥�1÷1ÿÿ�Þ¥µ”!„19÷!¥J1ÿ1ZZ�k!÷BïBÿJ��JBB!!œ!!½�Æ�RRÿRZÿ!)œ!)Æ�Œ�Zcÿ!)çskkRs{ÿ)œ{”ŒŒ¥�))µ))ε„)1ç½½½)1÷kï½R�œ�)÷)scÆ��!)­J÷JJÿJ!)µ)ï)s)ÿ)!)Î1!�9�!!)÷kkÿ�”�1Æ1Œsÿs�k�{÷{9ï))Z99ÿ9Bÿ!!­B!B1)))”BJïÖÖ��s�!!Æï))Þ¥!!Œ))s9ï9!)ïÎ!1½B1B!­!½)!ÞBJÿŒ!ï!BÿB”ÆÞJJÖÖJRÞJRçJRÿÞçRB9RJJïRRÖ))„RZççRÿR))¥�÷s�Z÷ZZÿZcZc!!Rckÿ)11!!Zkÿk!!k!!sçs÷sk{skR!!µ)”ŒÿŒ!!Î!!Ö19ï!!Þ­­­19ÿ„­J)”JÆççç99ç!)Þ9BÞÆõ•‚���tRNS�@æØf��tIDATx^í–c—+[…3Ë m´m[Ƕm×¶Í×¶mÛ¶ÿÇ»ö®d¤OÔ}ï÷Û™éé<O͵vW'Ž·"7³œÂ~¾I–ãoœç×d|&“ys¥™‚ѹ o(œÍ£d)Ý�à39”`ñF¥^åãs9JÞ‰<ÂRôêrG†2ÁÑœ«Tp™Sýð÷Š ‚^,L�VúSÊíg™²B‘¡)Dbñ<Äwww£›³¾À";`i• <Ü âùÜSZaÅåËg5Ãˆëš CÊgó‚é΀h^¦ËÎZºa¨–L+P(A7ñDWX€�Ä€ À ¼ªä&pTޤ�¶@Ç|7mŸøåE7!Šx|_a^ðTÝ @É ¢È�§Å·_¹ïöU‘ âü»‹·‡Z$è‘÷t ¨±M/ß÷Ðc…�Ê^Ž ! µ"X:êd&°£I›àj«ÏEœ&d#/€Òç “ž¥¢ F Â…8L€ŽŽºŽ:J™WWÄbµ˜¯pf ‚~ÿx?M`äÄW|S›PpP³²¦ZE–$6Aˆ_¿¼€ œòˆâÀÒ¥€Û¢Q¡ËI% Š)K¦3ìñ‚‹ð¦ œè ‡Ü¢xà@×îÝ]ÅI, iœá®®®ÝÀ@“xå8òÞwPíhLcQ!·oV:8‰§—¢î¥ÅV<üøP6ìÚ틹C¡Â"î o …B®Þ^Q æáSåÀXÏã?ý͇ÃÄ|aK}}¶~›]áámCë‡\ÑÞ±¦(~¸Õ]^s÷ôü“ðXÓOZçHÍÖׇOžúúõ3W£èˆâÑA” abcc1Ĥ+nÏ«ËÖ×gïžYŸ¥Ä#\?„ÛžœEÿØ�ð(&Ê ÞvþÖ¿ïÞsntwE?´lffÙÜ·Ù¡Ð6dï^†oyz^‚Ãåh¸Ã»æüÇ¿øß;Ž9×Õz¢QEp1Þ%p• •z î-+8ã}fOÍô‹ç÷«Ý°áuOT ¸BL D pô‘œ�FºDð×Õ«&ŸùÀ§_¼çYiÓ÷º»Ž¯l\ij¸ùX‹~L¤ ¦§›· à™úË¡š½{kþöçÒ.aÓë+Û\4ü–W‡È�%mÀ°Ÿv"àœjpô=²¢à× Ÿ<¸÷ßgpdÝ }iÐap7æ%i(\ ²aeå;š®«¿ü©ƒ_ñë.5 a[ðäs3ÄË–>_`¦tÆËL k–fÿÓ{þÔø⦥—NŸmc\_iúFAU§ Þ?Md*Î ¨T�/~?I|sã@síñfÚ�­ÿc[çß5 YÕÙòx ¤Í¤-)Pu ûìT° p@’œîh~ÂàÖeƒÿƒ¬¨i –4H`äÑ0d(f ŽƒñŠtiÉü\BëmW³Yø#ZlÏÜ’É ƒtŠ<¸1ä”Hpé®ÚÙ6!ÄøÁÖ«t;Áo‘€h*`ÂQ!í>E üÙSÛÜ|ŠñŸm½óýŸèéAÐJ§éú/þ+¯$€¢2ì@;ð¹*0ØóÑ÷AVØoáße–“ Ge CÀE_´­Õçóe¿Š`D‹§a•c#T.�UÕÈÀŸI´é m4äW`T�šfj¦ XQL_€bïp;à˜y6�4ÓdŠ€ÍÓF4ðØ Hé• @Ó4ÀdáØr;ÜN⇫œ�›À4¹‚è×¼¤Ðâ¦I;dw(ÄÓ�Õ6H0W`ס‹LÂGœ€ßÕx~•Á&»Þé½xh-xØü~5“ÃÉ*üS«wæ/xÀ{qr;^ßñf*Iý+?>=éÍm×§Öî:ôÊ8?Ê*hq#iÆ«ñ û½¦h¿`íï~9…|d• ÄQê…ý—<ýôR°ñ‘©G Ù¸€ð*ÁNŸ÷Ötv.ñ¾r­¶óg×`ó£p€ãU 4zk~¯sÉ=×òEiÈå ÇBÁn]³çÁ÷¬Ùÿ%´ç­ ;½vÁ+çþS3}tºæÙ·cþgm£-À"ð’ æ·7Lzî»û^óvvv.Ì; ëÀÑ%gnä¢ÿtÍÑ£Ó‹œÓÙYá¹çæ êZTQ&Aãb&Ðé¬Ì¢ÿµ‰`<)Š÷ß¿y1›WnüÊo¤NêrûbV šÄ+œ/¤? '“z`DÌÒë“À¯Ÿ4·´/æ ’©däëuE^QÒŒ¸Õ·°�Jrd4¥JÅ^qÜÒU¹}ó"6üãˆ*®Ø›jš5^ç[—ÕdÊò[Å^߸ܢ(‰s á~M;¬FZvóRŸßŠÈŠ$-4¿1<œÒÿó%‚Í´Ý $Uy-522::Kܾ„¬ê‡#~¿TOŽ\¸pŽ ¥Œ½OÚ¡jª¥úªý ^1”òƒÞPÔ¸nùûPQ°ÃH ŸŒ$:*4>òóxDz+|Þ4­`µ--m¨œˆ,_%À½’ã­ÍÍÜÌÍüih=â„Aa����IEND®B`‚IMAGE 2682 ./arch/monster/giant/DreadKnight/Bk.x73 ‰PNG  ��� IHDR���@���`���š„Ú��©PLTE������„„„�ÿ�!)))!!BBBJJJZZZccckkksss�ç�ŒŒŒ!)1ÿ�ï��½�1111911999�÷��Ö�RRR�Þ�B{{{”””œœœ½½½”BBÿÿÿÿ�ÿÿÿ�µ�­ÿJJÿ�Î�!!�­�!)Ö!ç!¥¥¥µ­­µµµÿ��))Ö)1÷{!ÿ!1ï1ZZÿ))k!Î�¥�”)÷)Öµ„1)))))B÷Bs11ÿ9ÿ9Z��¥�!¥JZ19÷s1÷11ÿ1�Œ�µ9Bÿ½�œ�!!!BïB!!œJ��JBB!!½!!Æ÷RRÿRZÿ{!)œ!)µZcÿ!)ÆZ�skk!)çs{ÿkR)”ŒŒk{�s�))µ))ÎÆ��Þ¥ï½R)1ç�Æ�œ))”B1)Î!�9�Æï))sç))¥J÷JJÿJ!!RRRÖ!!ŒRZçï))Þ!!­�k�ÿ)ï)!!Îkkÿ)ÿ)¥1!s÷s{÷{!)­!„19ïc1Æ1!)Î)Œ9!)ï!)÷ÖÖ�99ÿ!Þ9ï9�”�B!)”JJBJçJJZJJÖ)11JRÞJRçJRÿ!!Ö!!ÞRB9RJJRJRk÷”JÖRÿRÞç!)ÞïZÿZs�ckÿR19ÿkÿk!1½!­!½)�{sk�J�{{„!ï!!!B99çŒÿŒ„9BÞ!!Z!!k­­­))Z!!s­))„BBJÎBJïBJÿÖ!!µBÿByS”°���tRNS�@æØf��IDATx^í•c—;Ï…gW[±9¶íŸmÛ¶õ·mÛ¼´mÛÆ'¹§ºÓ7Éd&“7÷ÝìIuÖÊZÏS§v÷$U™Ë\êëíUO«$˜¦ÛÏS_êÀ¬4çÜKC}‰`FrІŽ’ +ˆ/\… ðLg®wô“¡¤,t ÛÜYq1äÅ´+Þ€ô¾‚%†+W«(2˜®Àý0ß}Ñý+ê§)aá•«WBÕu]s @ŽwK°+l �^B©a¡$ë,iè$`:¯\Yˆ‚[A´Ý!HBã”Ö UƒiªÌ „7h_�§KâKÙ`�d€  Lyì�4ý ‘”¼À ºw@šž>|Raìçç< ¦•nO\ñé§ŽQeØzïÖÛîídL‘òâ\ü­ˆA5RôçzZÖÎ7ž¿íýGƒ‹ç« ñEÓÁ¬ö€§¥V&¦Kã)Ø1«ó¦ „ÿÅ4E ²Ëƒ)¢@zžA1Ÿ  „|D‘ ZZj[jA¤DW�(äÕ(TˆÌªeƒ‹·ñ0Ì2ÀwMO# ¢huȺ¦Æ™I?AÄÞÆVF=žÎÉIÀ›ñ¸Ù.Ҍђ%K¢QÓôÞˆéÀ¹ !â÷x6nl¿~½=꣈óBÚÛÛ¯wžS˜n�œúñ{4v<áñ$âf®op&OÅý“ß÷xÖ9Pä§^y~¸Nð]÷%ü‘H¾HŽ‹ÂÞH$âKï¾²Òhr¿ÂÐÄóÏþæ?ñßÞÛÚZ×ú˜3Dždž7 ûjŒã‡ÛNȲe.çR$ü·žh¼kd êêZ[Î Z[±|~œMÀ³h°šÅ 9~ìСyäJ !mõGïX¿¡µî©åêhQà‚aÜóÐ`ˆ`G ó^skÄo^ëzáCàGâQ{ü—ë—/_¿ä;ü‘OÑŠÒJÐh倢Ç�{�¯wíK×>qÿïWWGãqÅôqÞg0ŸÖ&Zà‹e9Ãw%YRS�¼xÑ»y_ÍgFÿqíÈéê5kž¦çˆâ‹p‰¬ÒÊL‹Ù<'«³¬¤ |u^×àæÿê#ÒÉ­þÕënlZ`úˆçñÄÜå$æ>: ,#øËñšýûk.>‡ˆ“íæÉ§7-ðÑá÷Þ1Lè,É ’fŠÛý 0 _ûÔáý¿¾ˆªñS«ÏE­I@7ƒxE+â­LþÛ*ãÜÿà§· ÜMÞÓGWŸm2GðÐãK–“ ¬4<½hÑ5IæÕŒ¤ñ <8ºï7q¯çääÙs7¶,à3ø>öÞ’ù_ k/ÏCÖJ“ oøÛÇïàæ—ºl¾V<ÚÙT}£‰ ú¿±}I÷ß!+Z ø•Œón@8Ï<p’$úãnf÷öõÝ·#Ó³èÇÎþËü‡Ù ‚ûæ=áÝs·Ã+ÒÙ5çÜ|æÈ=óëêTI@4ñüñ/ °ô§D‚³ëª·,0#œï™OÿN«Ù,íÿ6áo“ _aÉ÷Zs@QB¿V75­äü7G÷kTïð2ý|ñ²iâ§¶ÐöBÀgÒ�Ý·Üò„cz2 ÚžüÉr=D†ø¿F@Ý×é¶À­€ÍÌCÓt2pE(`m"w-p:ÜIذÊí]·ôW¬(V D¡ ì (¼A3ñü�Ð-‹+BOè¹w^¶ùžrÐþ:`ñØpˆiu@!¾ÜïÏœ~ØK=iYŽ€e)6_¶A‚mv|« ~ È 0f¥{ÒÄÏ|‡- v¿é<¾ Nøm$ƒ•I[åø?½¸ÃÝ;>÷–w°k¿'¹ô$K[ÔßÌÁŸ/tys âå«vßs�6ß×YK2ÂËòc¼®h~ÀªÏþnlAYœpÓ‘Áeï¼³Œ<d|ýuèî<Ueƒ?\¸æ­ik[æÝ³´¶òKKáò.\v€oÍáïµ-{uin/ê¹¼Q5kðûÖî{òÉ}küÍ9騝“JxåÒ·jFOŒÖ<r'òÒ*ÀK‚š' «ºtßÁ‡½mmmÄÏpbÙÅ">å ^¨9qb´Á%ƒÊ>ø @P»HóÈ$¨èÝ,«øË:N¦=ž[o¯HàðJ¡àµ Ëœ1äæŠ*Ð,ââ ²-d¤ÓF¨bVÉþ$g¬c‹š+ºéL:öÓÚb­GÒYRí¨@�%ÝۗѤ)ZÏbÕÐäæñJHÿ±W“??E› 뺺¸60;/kéŒT§h‹åEŠ’º4+ÔõcZlÑ®)¼ÔTc²"I³žŸõôd %xóTÁ8U`¨¡Tª<¯gz{ûúz’áðTu %kƱX0(•åÓ½ôcA·`Q©¼Cڥ險„:Ê>A=}Ù^¦L»Ë3!EKj°3 v±LÏ™Xªezÿâ›c?KƤ7Ê<Ì_°,5\¦¦°ªï¢Ê$&Ëek…ž‘ªþÏ™Ë\æò_³òPÇÎܺ_����IEND®B`‚IMAGE 2619 ./arch/monster/giant/DreadKnight/Bk.x74 ‰PNG  ��� IHDR���@���`���š„Ú��©PLTE������ŒŒŒ�ÿ�!)))!!BBBJJJccckkksss„„„�ç�”””!ZZZ�÷�))Ö)1ÿ1111911999�Þ�RRR)�Ö��ï�B{{{”ÿœœœÆÆÆÿ��ÿÿ�ÿÿÿ¥¥¥1ï1ÿ9ÿ9�­�BBÿB÷B�µ�JJÿ!!!ZZÿ!!!�½�!ç!!ÿ!B��Î�)))�¥�)1÷µ­­µµµ­Þ¥Ö1))�Œ�s{1÷11ÿ1”­!¥JZœJBB�œ�JJRµ½RRZRRÿZ��!!œ!!½Zcÿ�s�!)­skk!)Æss{s{ÿ÷�Æ�k”ŒŒcRµ„))k))µ½½½k)1ç{{)÷)!)ïÆ��ï½R))Z!)÷BïB�”�J��)”ïïsJ÷JJÿJÆRZÿ))”))¥Z�))Î))Þkkÿÿ¥!!­)ï)!{{„{÷{!!Æ1!!!Î!!Ö11ÿ19÷1Æ1s�!)œŒ9�9�!)Ö9Bÿ!)çB!B1)�))s÷BJïBJ÷!!R!!ZBÿB!!k))„!!s!!ŒJJÖ!„JRçk!!µRB9RJJ!Æ)11RRÖ)J¥�ZJc!!ÞZZc„)ÿ)Z÷ZZÿZ�ckÿŒ!)µkÿkR11Î!)Î19çs÷s{sk19ïÎ19ÿ!)ÞÖŒÿŒÞç!­!Þ­­­�k�99ç9BÞ!ï!9ï9ÞÖÖ�ççççï¥�J!!BBBJ))9׎ýY���tRNS�@æØf��@IDATx^í“ó—ä܆kŸØ)ÛjÛÖØ¶íùlÛ6®mÛ¶íû—Ü}’4*k:ÕÓw}¿Í;uºgõZÏ“wï“ò½C©ühÅùYY¾c–+©”+•2žåµ è¡Y^2~ª•jk,cô ê´°¸RŽÂr\µÀgÃÕ*Ë–«åYø®VÁî.ïF…3ܰtƒ5yµBa¶Jyª€Ó¶h¨·z»i…êì«�“hè…po/ˆ¨ðžËzØòn›G]áDQìU) c!IJl…ÅUÌ_ääi0edeB v¥ÅCùJÕº¹yAV¨h€ú¼õ>ÒΠ¦"A/6 ªxz yòÎ$ ‚€ ‚ÉI¨Ë»Ã‹*Ø!ª‚x]ÞÕ>‡‚ý€HKàÝ· œ ­w¿¶õî­(ùyñ¢ý!ùù÷® ¢*üá–×öwìÇ[˜£�ÀMSÞhÃh9hšâÂü d¾ Ý4ZjyI¢¼#`f£iæb7Ç ¦FÀJD ¬£Ì`f.‡‚¦¦xSTä9G]Ó€eB 6ŸÉÁ§’¸ DÃýÖ* ®\�yÖæ_ÒŒ˜wp!²d&Dð<Ào=j7Hˆ³D¸ø3æ%£ud Ób1mˆãT ! ð„cR)MK#Þî; ;©�Nýö/ Óg+WJ¥1È•`ÿ¡¡¡c­�­Æ©ZÃNEW¾Ìú�N½øÔ@‰e #£9ûÆ ˆ«òø§XßÈÊ[ ã;P+ئêêWYöß8ÁS?þÕÓÇú.eúüó‹¤8ÇõûýéÁA˜_¿è<YÔ•ìªõhÀôQþhss¡ù»Å™GÖ@lðR0ß·àp±xx¬_·2—0™LGc; …æf†òÀ0Ͱ¶å2 ^(@õ Uþ׆Cn»-ƒá·¦îX³¶¹ðõ–µlÀ1– å®Ûz¡ºˆ€dáÀÚ.|ìóún†ëŠýyMKËšöoÒ!üô <I< žw¹ ú“g~ð¾{{zÞ{áP’Ë¥b±4FKS>À�ž”#�µäüGÖ‹:|bß¾{ÿøàƒÜ¦Mâ{„Iû­‰�m±ª%„ñ¨®oó·fÙž]?ï Ü`áøÖ¾wnÞ>¥¥‘§±¤‚j; —�óÆè?}=p°¾/r#CÚñG·O¥¿ÿèT gÕÑUÑ-X÷lðéûÄ}]§6^LÙF^‚©,¢‚|M�V 8/Gòç'4ÆÜþx{ QIÉbyüà)©z1ëø�ÃÚ2ãøÈù‹›wLÑé¿7¶¼I¡Ë³¢B‰è(X4qî։ܿ Ü�ã×þzs{?¢TÀ†þ‡¨<ð<כ݀Öóš~'ä”áÖòõå2þ.= òç7]œÝ@Zk¼ërÂ& ¶‚ˆGçïÌí˜Òü”ïo¼\h†¨Y*áógE Ì„D1òµTnbâK”ÿMãã¿û%®€îðúrñ t¯$jØgBi ôßsDr¶Hÿ ÿ¡`ñ�’$GÐI£ ›jL&“œÀ8¨àñ|e4PE$D&I¿fïWðÏ €,Σ@™Èª…ˆ(’$š°]ÎomPñ(@Ÿ„PEÄæ“¢èìðV4 ßõàé„�Lˆ„’I§@‚~�ƒ<à¹A €P(ôPw g‰-PKoþÆïƒ„°£ØûæèMHb#:‚õe&zƒîõøÈÇ÷XófÏÞë‚£×­;xh Exñg^¼´ç'pò+7GŸ[‡K%v9«ê$ëÅßxß¡ÑçƒAK1sVoØûægWåÉ8RVE܃÷Á‡Î^¶uv¢ìlxîSàÄPܳ@ ضïÛ(xzU,å+¯€l7ŒÏ3ð/ìzøá]/ú0Ì8ÎO®‚9ÞW' ®øE[Ï‘ž¶ÇÞ sΓ«ÁÉ«¾ú¢ íÙ…MÏì Ú©Ïû@Q�Ž<ÿ`MWøhÀ@}Á …^¼õ,üãû_~(ØÙÙ¹DWE©áóFølÛ‘#=Kؼ¸PŸ– ¥$‚¼XÃûòѬnO<Ñõùq?ó…°Z<¡3K) èE=ñ­x­¶7¢èºY‚�D}l¼(ñ>— ¬œ §g–²ý÷c’ði—Ààe5kv×€ éE3lº½Æ°©HÂLW=<,Ë¥Äô7ù¨,›ÃñP½ùÕ††¢"†ßv Bô(æWÔáåâØØøxC6uñ|wØL"Ï×áõ±sçÎáL»Õ|®@1#ù|7¨aüܘ*^á9¡¼ )á°WØ¢N$òMW²wó[$Y2ÅH·‡á3„˜ÑÅJ>¥¬b†»ÁÄŇ~;ñ“l‚|ËNÔ”·ÐËO$ò ï{‡s-×r-ÿ_A)����IEND®B`‚IMAGE 2969 ./arch/monster/giant/DreadKnight/Bk.x75 ‰PNG  ��� IHDR���@���`���­Åtè�� `IDATxÚí\-˜«¼ÖE"‘±‘‘Hl%‰­D"kGެ¬­¬¬¬­¬¬¬­D"÷Í ìg§É×Òž9ÓÓç{ w½$²ÖþIsn2—¹Ìe.s™Ë\æ2—Ï(”$³�ÿyè¿,4u‡ê(Âó…>Z€ý—º+‚ÖÚõçyN\_,T–å3BP ðǺlEe þ¯¯/jšF„˜¾çÏ QB~ýo{@ýu];¢ŒåryWÆËäAæ5ÒRÿ p6Zƒ(:¢«ÕŠÚ¶EûF�A~_€ö@LZú)SsÌÃú ’°<Ú  � â“yE�‡„û­€$“s‚ßö`¼fõ;„¢~>¿|b´F\?+�® IO“¿/@ÜÇuJbQ~aÑA&Ï!€X·´÷k 7ÙÃãu’P€©6 õ ÒÆ ÞÅú›„J{àœc}'î±à5ÏÞ? ×¥MÒçÊ„õ¥PºN g¥”œ'„ɲÌý¼( ÎþhÖßçÂbmÑDñ?MœA“ŒÝœ‚vœ�'¸&| Žþ4sÖŠ�Ò4•éOÈÅu€³¾ÎR9?;@Dàz ¹æu¦ɹý÷÷7'ºIò�»¿Ö ¿s¿øð@‰]?嬟.Rò=àÉ€H�x{Ÿ™<   pï<€‹ „¢L[_ÈgEJê›ô¼ �BðDóE€HZ‡îú”�1ù[«Ãy2üß(ö -»œT^"qq8-‡Üšs¯«ª‚ÅÙC@ˆÝ¿¿cyqÿغuâÀõÀòÏ‘ÏW)­/íº Éng¯Ûz",Î g¯~bÄØÕ½6�q´…üðDèâbŒh1$„Ç:úþdñS4û†.ÔRÝ— ’o´8¨înÀä™p_!¼ûï˜ìXßãȪ0 øoèÐæÂý(*¬ÚûKmɯhkE0½¢¬‡uEx [›‘øžÀý¡Û‹7Fƒàky¶j• –òR´O¨ŠÎ]묿îk*X�Xž°J!À0Àx:)FÄ™|Ú§¸ K𠀉;>ú¢(?æ”n,„!ê»ýôbˆE<ç´¿6têW´î–Ôv®ðÉ;wTrÏÆC‘rg{Å=/ˆˆãÀõÚ9å8!”8ð¼!æ/C_cE·ˆaàâÀÄ XÓ–ùJia•n.%™“ò‰C^SÊ»œýBƒû|ðÜ­—Èu={˜ÞŒdE€t' °í[æ'BŸdrÇÒrÕuãeö¡¥Å—fؤl$ûg]FyŸÀô¡ÍøV€ÕÑ.û’ÒÎ>ó „!€Žˆ§B¿-gŠ-Z.·´Ûí©¬Òy3>�6ÀHëQ€Óà–ºÓN„b<P‡WÔT‡¡ ñ- ˜ß†°Üfá¹Í¢mü/"ÇÖ~zùKUu´IêLÛí‰ÚöhEØPYžmÿ™ŠÅ…”ÞÁ&¥T˜“eþ:2wäåg¾�½¹%¼A¡t8âiðÿÚÃ?)­VWZ¯ ^×g ¢EÙ‘6G VéÖá áH�&ÁÇã6“dÂ@üê,& ŠàÿNš–dÌšöboÚ;´mgÉ÷#ùi½óã^àæât“9‹¥çTˆ ùøèn,ˆóTû.ªêñkr¼*#ÆÔN�&¿\öTÕä°X¥é¸CÛ"öÇ5y“ D€î6ÎÝôØ N<Ï=ŽóKX¯×¼sœ ^퉎Ço` ?!Þáú7Å®kœÕ³U·l帙!|ò86D/’—åôf³™|qJ<ÐŽô~ò‡/àb¾µ^д=Ù1’1g‹í˜êQ€&£t÷xK ò˜ÊLg0`fàŸð–€DäêR—6ŸÙú�âŸxN¡°oéÀâ_t:­íyc±µ€R™ ªzÊ &¿Ègî÷‡�ð‚!ö£ë÷qœg×ŒŠ®€�.Ëg}Æ`÷ÇÄI.s@�D€€|øú bX‚-ívxÀ†‰[�qÿN^t¤}ò©7÷ïXSà ÀŽc?Îôꢰ\u諦ì”1y&p=Dx ï%îZd,Á£KvòV„O®}Tj}:7/)˜ò¦c€4@pSþD†ìížÉäˆ5Ö8{ý$`Ìð§þê‚:Ü€‚püŒ˜4ÆDyƒßÏÃíUíàDìËB{,káþj8üo„"@H:†o} $‹À²� 2ì~Üò9K�0ïÃý%ö¯ “‡Å!�“φƒÇ8¾ÅòË„ÎgŸøØ^Š�œü&`L½[²4¥\ É(ò|Ø“A€ÝˆmL^]Õ@¾3nß®Î'åÇ”�£�Cá:@¾�ðà§¿P‘à僌E8ˆÕùÀ5LÞ·>Îê”9èƒaësüÃ’ AÎ~ˆõ·ˆ�(ˆû"� ì � 9fç äÑf¸¨¨òÝ?`:þ‘×ÞC�y …`€$ò–¶[]]¾¸›�K&K>¢ä÷^Ë£Îäñp!Â'Ì}Lž¯gøÇrŸ¼¿ìýUòë£Í0XÆ=ò�÷áw&À’EˆÝk•÷Æ=“f°0 à‘ëÇÖ—Èø9 “«ë‡îÏDC!"ÒÆ\Èää÷q’ãëï pgý“kâ‹ ÇB�ZH›«%ßÛ3pF?C'€Á›—ùþM…”ªX„€pìþB¾ƒåGðÎ`+ŧAAöø¼T/y¼ RúË’ÚLYÀuXÝàŒMT8{<ò\Ã0qIxï+ Ô’1{�¡ÀýcY¶´dW°8‡=Ñæv£€ÿ.€ÉûÄßOޘƽï7#yA,D–¦ ïtál1›F,Àû‰‹ë[¬ñºÛ¹qžãý߀<"‚ÊÔ7ÀÖŸô€RÞìús}“_-†7¿e ˆ�ƒk·ØYÞ,B¢Á5Óî?MøýÖ‡ë3ùzI´lD�mNLŒÉ Ó3€Ê><[¿¶w”=UYË9 Ž¾!,ÌŸˆýéû}K‰ñ)–—UŸr/:/ƒåk¢våÎh_€Ìó›w/]¹dʫ²d| ùxÍŠ�Lþ„Ÿ½D^)…×æãŸ½íqÜEý<°˜h»“žy…¼¼~ËÁ´0Åù ,>J�X äý -ó³Î€— ëcy‹9«9ˆà è,ý¸øgxzBñò`3eàúXÐ kùïoÜž€äù‘ñ<~öò€µÖØïƒ4w@}Ÿ)�b•ð‰¿N^ÈY€ñ~mÓ /°�Sð2‚ÉÿÐòRïFkÿ[¿Ûîj­>O�vSÞwC,Kx™›ü±�Æð‹NxÇ?àg%?Þïvð�ˆ€Á:ëýä¾< ð&B@tü²ôQ±vÀ‚-U-Š?$‚,ç\QÔ縿ì¿Ùýa%þ@ñ“ˆ8çûð—hþ˜ üsâ»fk0Pg­ÅâGäÔäÇ?€:¦@xðOcYÙÿC ýf‘›Ÿ!�’þŸ»@hˆŒg�ÿÄ`qF¬sÒø+ ’ðW†0�ÉrÁÿç0ü ×¼“<g{ÿCƒŸùu@¹V zó§o¹@ï\ìÀÚ ò#øç¨¿  ¬ðüUÛ@ÔÝó •½O�¸"oL –§b5Ë~ÿ•”÷ácë¿«TãfÀ@0 wgcþ ŠÐø'Óá8' ÿŸÿ?5šË\æ2—¹Ìe.s™Ë\æòÿ·üï ž:œQ7¤����IEND®B`‚IMAGE 181 ./arch/weapon/artifact/ChaosSword/CSword.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿ�����ú€rð-þã���tRNS�@æØf���TIDATx^µ± À0 ÃTè„|Pô�!üÿ·®¶—.)G‚ò`‡!<ù=XAj`‰\Ñ ©¹0î‚”n‚ *†xPƒÍEÔŽÆÔf#Çý1ŽNò˜b #ÀÎ*����IEND®B`‚IMAGE 175 ./arch/weapon/artifact/ChaosSword/CSword.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����]ýR���tRNS�@æØf���QIDATxÚÕ‘1€0ÃèùÿF²`I˜J† µÓ=ö¼q~Í×§{â+rOWâ÷ž"$.ºš ˜äÙé‚0ó©Âã~"oÏ0¥öÁöŽ9¯PŠ?ùx“����IEND®B`‚IMAGE 177 ./arch/weapon/artifact/ChaosSword/CSword.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����]ýR���tRNS�@æØf���SIDATxÚÍÑ1À Qܹÿ}‚EŠ,)…ͱ0f|9£}ýzëäa}‘\n\§ ¬§ �‰rß´A¡wµÁc?¯.A÷ ÒŒìV0s6§†„MgÀ?����IEND®B`‚IMAGE 182 ./arch/weapon/artifact/ChaosSword/CSword.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ�����ú€rð-þã���tRNS�@æØf���UIDATxÚÍ‘1À0ÃÀêÿßÜ;³wL<x‘H.¡îüqŽò><Ÿ9+o×ÊÁÅ~þãaå&…DÑ›�Há‰8AˆÐ\Q@‚1øæH×`îÿ$-Ð}c^Ÿ¨M؈¿����IEND®B`‚IMAGE 201 ./arch/weapon/artifact/ChaosSword/CSword.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ�����ú€rð-þã���tRNS�@æØf���hIDATxÚÍA À0[gÿÿ榭`B0J!{ÈìõØ[Pq†6ÁsÕüü+OÿÎI9Oé9ÓÙ >‹È³0¤ U ÿl2¼2-VÄ•LÅÌ`Áíæã€ô\²Öç3 á÷$ÛÁ랺�Ùø›ÒifŠ����IEND®B`‚IMAGE 209 ./arch/weapon/artifact/ChaosSword/CSword.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����]ýR���tRNS�@æØf���sIDATxÚÍA �! ÕùÿŸ¥TH…taoæ ÕIÀf¼-¨ p&ÞÑóª)n Ê{Û´𼄏×Onm³äÍžÐqˆCÜ8”çcAVï0à›‡œD¦ ”÷ $﵂Ós~ÿÊ3NHÕqò±« NêMm+§µ"eñ™����IEND®B`‚IMAGE 220 ./arch/weapon/artifact/ChaosSword/CSword.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����]ýR���tRNS�@æØf���~IDATxÚÍ‘í € Í}ÿw.ŽA‚þ¹ôaÎî¥ç8EaPâÃŽØÜk€³,—x×>_Œ9òƒò²ˆ[æÎþͳ_Q¸ §‡mOç®òLgc˜³q*ð¿‡GG¡òm‰îÎË£ú¨øw{½os0_/pdðÒÓ+HœûÝ=þ3¬j ¢����IEND®B`‚IMAGE 241 ./arch/weapon/artifact/ChaosSword/CSword.118 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿ�����ú€rð-þã���tRNS�@æØf���IDATx^­ËÑ Â@ÄPƒA©`Ĥè¿'tºUD™¿µÞrÏT‘€bk‘ÇhKÇkáàÆ Ï‚ @yiÙÀ€™Èuw¸ƒ¡ ”Œ}˜p¼L±œCh{~‹Ô2¤-Js°Àˆ~ H¸@C$ºAc uÄYŒHÒ-‚’„[ö-Þ®FTDX����IEND®B`‚IMAGE 215 ./arch/weapon/artifact/ChaosSword/CSword.119 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ú€r„âÛÃ���tRNS�@æØf���yIDATx^Ʊi1�Àa#¶ q‘Qe.cQô¸Šã#±%¸$—àÈ|?ÑxKYÇf¼Ž1Çî1+nÔ.Y°ËƒˆŠ,ÀrqÂóÖøÌ﹦Ë+§lt>+¡»å@t›…øÅDþ‘°º(ôncâ'6œ¨ˆðŽ q˜ ÎA����IEND®B`‚IMAGE 207 ./arch/weapon/artifact/ChaosSword/CSword.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ�����ú€rð-þã���tRNS�@æØf���nIDATxÚÍA €0 £ãÿß,ÓÅ@A„Î! ;iKbˆ¸‹25%'žpƒá÷t^|ó´^À?ÿófÛûdi}¦˜Ç )9>ྶpÕ¥…h˜ðȽï…{HáÈëÐаñžää….*ÒØ*œ¤‘úR^šï����IEND®B`‚IMAGE 188 ./arch/weapon/artifact/ChaosSword/CSword.11B ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����]ýR���tRNS�@æØf���^IDATxÚÝ‘Ñ À ;ïÿÿy¤Nè ™¯²C"x©Æ)°¶µÒLÑ¿Ÿÿ›Çz2¬…óâ)Èã ÞË(+,ª§m„1 <l å~¬ýóz2¾>jÑ:„ö:¯kñK����IEND®B`‚IMAGE 179 ./arch/weapon/artifact/ChaosSword/CSword.11C ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ú€rçør���tRNS�@æØf���UIDATxÚí’1À0ñõÿ®k®¬ê!ç ¨[Äù•åüÜ©rº(‡.Ã5€Váç“L‚ì˜QÂp÷l†rÁÄo ì>Ià« O˜yúNwN]¢Öà oZ����IEND®B`‚IMAGE 384 ./arch/monster/dragon/Cwyvern.x31 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������)))JJJœœœ÷çŒÿ��+ÖeŸ���tRNS�@æØf��IDATxÚµ‘ŽÃ0CkLöÿŸ|µ¡ª6©[”èÞ²±DØ!pÌA[€Læ¦7±ã0ÍV8áë/ÐBm .éµAd‚˜—ß÷·3“Äd!Œ`}ò¶ãI(ü¼<œ-A¤¢åî(C(éi@Σ䡕 ÿ—…ÁëEë!(>»F]ÕÚ5(¤¿ûDqËC¡-ÊÅJ[ûÉíe]Й¿-÷íü2¯+Ñ‹þ=±Ýê€ãÉ¢Þ§Ø‹µïJ‚D¥=Ît©µ˜6ô œ6Ž/Ø¡\¬¿*ðø ŠD2.‡˜´0]‡tRøýÕÄ)®w$Hˆ1®a“x,o2ÍÒlýp×6 ¬Ç¢ÞJß¿¬_–ûjR]_6\׋ˆqü¼PE0®Øž����IEND®B`‚IMAGE 392 ./arch/monster/dragon/Cwyvern.x32 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������)))JJJœœœµ!!÷çŒÿ��{U½¤���tRNS�@æØf��IDATxÚ½‘n„0 Cë8—ýÿ;=n‚U í]!×*6I3þ ò™d2ó‘"øÀ¡ŠæQØ`Õý´0 Á[ú@o™ ÖåÇ÷§3“Äb!Œ`ÿr¶ãF(üúñp¶‘Š–ûFBIgr%­¤­B¯/ZAñyk9+°Ú»âé{¢8äáÐíbe�–[4š5¾[@g~ú¼˜×;Ñ‹~oØÀn}À:³èþçbïg%A¢ÓÆ h¬…×|z N«qv—ÌÃÁa,€f"¹;„{k¼ëHºŠî_qw ¢j N¦p1V{ÿóß"þP¡jÝ`® n0 ÜÊM=:Œ{@úû¸r²êà}½ˆ¨ñw|m`9è–þg����IEND®B`‚IMAGE 396 ./arch/monster/dragon/Cwyvern.x71 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������)))JJJœœœ÷çŒÿ��+ÖeŸ���tRNS�@æØf��%IDATxÚµ”‹ªÄ CMŽîÿòe&ìÒÂ>úàž ÚÒdÆŽOÀ¸Ád¼£ç¦ÞÖ =ÍZ×Ôk!IF§ëŠ,$[ö¹Sšs‚¶:^ZPzOv=´�Û@GßNS¦3àÉ]X`˜¦gOë· ‡Ü¨<ÀfbÓk âÓagËÁ¢­É=iT0B\\Ã¥y½ów³ñÚÚ&}¹Hlí0b£Þ³è qˆ¶c"g?Q¿Á®ï§²S ™úí-K»#µA½Ê°¬0¾s–­7/­#þF6z 4¥ÕNˆÉ"z?kß<ã]KxJŽú�-AIk%Ëqu Ær™ˆ”¿á 3.;0ã3®[¨}ÆeÖùŽ.î´`çÊùoþ�š6‘Zƒ����IEND®B`‚IMAGE 402 ./arch/monster/dragon/Cwyvern.x72 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������)))JJJœœœµ!!÷çŒÿ��{U½¤���tRNS�@æØf��(IDATxÚµ”‹j„PCMÎíÝÿÿãbBEaÛõA£ì\aOf&‚Ëo‚å‰xÆŒ'<x¢9ïÑs"IFWID’-ûZŠBc ÐÞAç[ Vރà '-À6€­§!“˧Öð*$§±À0Lª‡õÙ„×—I™Üf`“3†w&D]ù%­”Ír):‚€@43å'Kħ,13Û3œaëµ·mú¥°·Ãˆ}Ô$êPV¶j"wŸÒodgp;+ZA«7HÆÁßhêðJmPN½-«ZþP6áÍÆ:ð'ù§_ͱì)œæÀªòNïìö¼Ì©UàKtóëe4§“å…OQð:HB’Â_VBl5ˇ›t‰Ñ Ë] ¥è¦ASÙðª'#Øýèü¯¾£=šÓn›����IEND®B`‚IMAGE 378 ./arch/armour/shield/DShield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���WPLTEïÆ÷���ÆÆÆ„„„ÿ��ŒŒŒssskkk{{{RRRZZZ”””cccœœœ999BBBÿÿ�­��ÿÿÿ„{„111{s{ÖÖ�sksRRZJJJcZcB9Bkckˆ»|���tRNS�@æØf���ÑIDATxÚ­Ð׃0 Ðzd°¡{ýÿwÖ±\%á¡>ò…v/ø€Ö&3�GØ�ëP[Qlhý#@„ôÕ9hBïÉÊQÆ>D\§(ÀåàÜz$Diy»®€Òz`7Ô�0§cp*eDƒ°ð•Yz©± <Ïétƒ«ÀuðR USïS†&³Ÿ°Œ§×é‚"ã¢!º€Qo’lA¶â-e® *âÑO2·[ÊŽ‘ÈÊ”©õl^ùؼFd¼w}�äÀ{ó†¦����IEND®B`‚IMAGE 380 ./arch/armour/shield/DShield.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���WPLTEïÆ÷ÆÆÆ���ÿ��„„„ŒŒŒkkksss{{{ccc”””RRRZZZœœœBBB­��999ÿÿ�JJJcZc„{„B9BkckRRZÿÿÿ{s{sks111ÖÖ�§ì“ ���tRNS�@æØf���ÓIDATx^­ÉnÄ0 CKJ^²ÌÖ}ûÿï¬,L!ÀöZ êÂ2ÉÃÝÅÿô¶3øÎÀ5t;Ô†ÿ P¡aôÀ–—¢¡¤=p^rÅ5…©¾öB3¡i0ûÁz˜BŠ´s&Ɖ <É·ˆù4Î[åri‘iˆ2^p €‹Ç¥´ _ÐOü¬^0l|€&/P†Š&‚®âµT5%/ÅÇ=—úlyü¥žx[²uÄÀ¸rÜ‹‘÷¢½È'#Ÿˆß[?2 Pâdõ‘����IEND®B`‚IMAGE 384 ./arch/armour/shield/DShield.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ZPLTEïÆ÷ÆÆÆ���„„„ÿ��ŒŒŒkkksss{{{RRRÿÿ�”””cccZZZœœœ999­��BBBB9BRRZÿÿÿcZc„{„sks111{s{JJJkckÖÖ�ï¥�&à=���tRNS�@æØf���ÔIDATx^­ÐÇn1 PÏj[ÜÒÛÿÿf¨I>$ðÔ…¬wÿ Ø“SÀGÞ�mù;†:àKŸ?$ Ä=(qKâ ÒƒÓ3¤B^÷B�BÂ:�Ûƒõ8JªÖç6К0Vð¬-ç8•ê¢jC„c˜ý´ß\°Œ ‰Ë–L|-µA‚„w<U°´km;ÞÀšz@ L:2jÄt'>RKhFñ¾Ç”ŸmïÿR/¶˜E¼`l¹ìÉ€ïÁky¡ï§„‡{çèˆé¿Ô����IEND®B`‚IMAGE 4156 ./arch/monster/demon/GreatDemon/GreatDemon.x11 ‰PNG  ��� IHDR���À���à���b®™���sRGB�®Îé���3PLTEEÒí����1��c�c2cDŸQ,±!!¿¿¿ÒiÙ¤íu�þ¤�þÖ�ÿ��ÿÿ�® °[���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ'X°`Ü��uIDATxÚí]‰’¤*³'½•·\ðýŸöM APªNW„tLÌL×b~侈]÷¬g=ëYÏzÖ³žÕu¬ÀLÿ¯øi� ?Aiü2&øq,ïçÀ2ã#P˜'ù³�áŠËë—(¬#4ðÕÍØ8°.ò‡ôãºÎÊ´dêW ëÚ”_ ®„К߀Rs�—0)�-­fêP‹@\ƒ­éGm„ZÆÊ,,c_÷}†xûòèö{ã¤âÀ„-­(hÇRö…„%ËÒQ-õ>±Þ{éÇ´MmÝ€æ)V@E¿D0~ �T?p@3`}·Ô9EŒò,k>>Üé·ûÑÒ_á~ï/ ýÿ¢®%¡1�ý¥C�+ëp�@~Œ6ÜG¦ÅUÀ¶�„âÀ2¥xêRfX€á êz³¦Æ¨¶eÌ�± ;XM¿f@{À[+Ö4ôYñG*$Jvbê} ŠèW>@kðº6δ'[¶/î3òc…^–¨lÿlÍy„¶~ßç ÁÐ%  ¡‚_B’<0õþe²ÿmœcåZ_I�ÚÊ ˆ~ áNï?¼\œÜF´-löy]†~7øHCEÒA>jë©¶×€Q†¤eEóvlŽ@¢EC]hãüì¾ÿ¥¾v‹ÁÆ@¦>rmÛw·æQ¥†‰®/Üèé¨È!Po ßÜ6ˆß¶fèû€pl÷Å~@­eïCH”8ðÌTÚÚVx‰ŒFúgÉ7Iƒ£cØâ"Pòæõ8è é×ZãIˆæYY( TÅ0’x$á4ˆ*m@?#`Íxp>þQ†[t|†ˆ !9õ½Þ÷7àbc{ áö�öÄ€Š"í94c� pb>Í¿‘$àíðö9;µ@oÑA¾ÚêÃ|ƒomŒHA¥°‚t�ÃbŒå-¡…B$Æy,Ⱥé&�ã œä¿F†*£¢òƒË¼ÌS5‚»Ù}Ä�Vqµ°±Lƒðàè×)Å:ÏS›¨:Ü4D¡ýG¯ÄãmžµJN…í†"Íuu88EÑOÓøïž…¬‘–cpÑ'‘ÀƒƒŠxƒ`.BÐÈ” �àJ#LEƒÀÈÔ{ä´#8±K^¾€M�ha0œ²W#@€üKršæ A€ú4`0Þ"t~"Õ&feX§èò˜HY´nê´âì;˜àõ*?WÒ—_OùOdŽ5“³©}æô@zA#!.cð¾5ý§VÄ‹ “ïéTt<åE¯J¦�Ðôë¢ä÷žd ÈGmzf™u <ú­¯‡@¿u6E§%.D -º•Ú_ÃÉ3K„¸ÇQ›w»’Ð3~hŽ|q\ì9Õ§çz~p­çãvds¤ y¶ÀbÄSŽšib”©^ˆwLDíb¢?Û…‘Õ�®Ën„Õ·fº0s9€^9Ð ¶Ÿ‹ÐÜA€+o9ð=†;>Ÿ° =.Ø gÈðz†æs€30�iŽmE¡Wl`é2A]^‚Ðüh‚ÑG�ú½‡¤Uؘ<ð<‘ ]{l͞˼Ûu¯`wÃ$¹Ž~Ésù›™…ȆÙbv/(ç€'1[ÍøXH PV~Päêñ5…Oâ</%F²@é¼n"å¼0J‘CP—ª7-%nLÚjnêåEË6ÜÈ"8ŒE-ýb’�veäÿÌo¡(hçÔP ÍüÆ‚øË „þN%ØŠB¸ÀÔ¦Þgqì­.&zO¦¸U’%¥Hïúsµ�ĸŽCCܶلPë/–”J·îSA€D S’Gý«CZ~Ø×8¿’ñP¤|¶ Éž€ý£ .Ø~)xò§é»ª±8UÎÌfgx€ä8° ¼û#Äë¥þÒU<8ÂÙ8®O&2U²”²7Ô� .öÅq�cD�PK„˸ŒHÛL(³e>‘2B@ ji]””¡—ÆYÄðH9�r¡ýƒhЩÒ:m!�ð‚2ì{^‘öØP�nਔ�¿174^„ýa-ÿûÕ$¡~q=°<�ŒAØ$/�£¡ýaúêøb8 ç ¡`Ò£ g4[JRIî:ž÷Í¥suG6?ΉàÆk— ÀhV£�òΊAðooü¿_™‘,ñËÞ{eA‚}bC™ü7ß„4”XqƒþhJ¡ Cf> %A¸:ƒ: àýñhžVYÒ“©'ŒÆÀwlÚ>âýæÛIì¼ÌÂñ¯¼~‰Ä÷F )ÇZU'ƒâB?ƒtZÅ­ˆH?L 0VÓŸÔê³0 Eh¯ê#_@É¿\§Ä¼J\únATæçد~ã ˜úr‘oÝÝ câç×8ÀÄtü'@|la½2@nª+—&~fÕ«sf¸±¸IÑ’Õ»“á€{ƒ/4Ÿ fv·’àå4ø Ø_V߈°EÆ�, JÊ;gy[º´TÖõNøvö6°ÂäS¿†g»GuÀãÀ… 7Ódž£*ÔkxHøñƒiB@öÚtÚs…Ðk;ý'@ Vp~ÇdÕ±HŽø $b7Ö q ózÖJ"ÔVP*í$ð1‡ 2£pÏŽ¢ð‡{ý_•!�Á"°Šà�^u®žwÝÆ~d‰Û«„¡@  À\Û‰ÜøãøìQÂZ„jolÿöã+‡½Éqï ¼ëe—'Æç$–æ'¼7ÿÆ6‰W®õw¡ô+K8`åðzýƒóºéùŠMç„sÀöôŸµ .Q9%n’½–Öó3`͇î+Îj¸›–ö[îšæÃù)*n…�@~"ÎÏÑ`\´MÓyHù‘JDºÑag¤hÙ1[)AYÈT·CXï)ðì}cY´Î8¾U‹ü µì fÇɳqõÑ.cGÛʾ(E€>�Ì)�ðÉ?®ñ N3�2%vÑÜM-)žL'&E(¾Kèklƒ7‡âfMƒÉÄ“`4 wŸN”#œ¥¸O´FŸK^'1»'ówi€¨äŽùÔÑÔ~¸“00ãq @fþŒÕ“aïúì†rJï �ØHœå€ÄtTûUÉ6À7]ì ¯×#Ø~ÂFò£["&©°LÀT"Ñ%²Ê8éãÌSMŽˆb�ñq'sð�0ÑSg ¯µ5˜â6}$?Ü�)ðŽ,¥,L‚€•E0,ìÏ-1ù4µøî æ‹rúbùŠ—€™ÿã%.f^ ŠJÅ'1ï…tûÎÏRÉUÂSY·„L¼ ì&ÿa¾Ø5s3áq × I» ØC×Ô°x)_$þUô‹úý‡|ÆÇ�í鸑”A\ìä`娜86$=-Î%ˆÁކ‚l ñpš3Óé¿Ü¸xM?ˆmP‹�½H:<HÖƒ©JeçU¨¬©ùÖ7#ÉÞ(í$'²ãj”£ùq›£¨°Gv¥Ã{§’ÑkæFñæþñLäð™�ÀI Iz5\RÁ}¨L)Ø›¦þ1<š}þåm /'±^`Ä jEüKãbN™O˜²(Ò9pL§ÏH™ø—úEÁ`eê¨s¶c/èyÔèå0°ÝŽåÕ›h§0Pß9re¬¤®HÛgu±ö¾1´Óñ˜ßZ �Jè¿UW’ãØ{ÝSÄèüÆCLOjîøD �íÈJâÔ[�pýð�È¡'6‘Ùn”"ÛÎÙæ`ÿÒá¥è,âÀú6€wį­Eyмý…±ø#k$aÁi‹>ÒdY¦póØ‰Øê¢µDaòÑ1²ŽL9ÍÒ܇…enìº uQ–ÛE=4bê‚æ^äœÐåŠS8-‚iûs}>=Þ}«ƒ‚ÐQÅŽœ#ø<Ðq„Ć9*çóÝbp<ÏíÎmõ«{xxa¶Nª\€ûIš@tçASáO@ õ£“¼)r€•³@œOeÿ�Pa§ã^ˆ½�ø‡erÅ ý‰™¸¯½ ïn˜k#äÎû¤ýd-:#û%û�-³ìíGôï¡áR9I�é3´b[�#xu" 's�Äyûæ+‹rÈÅ6 ðD÷ }€6ÿ¸ŒöTe~¯¢Åeñì]6_Ðu€Ã:.:Å<nφø>2¾¢ÁÝköm�è_¯·¤g95îÔ¹~¹Sc¿/D¢}"M”½Ð¯ûod.玵M ñ×î×�p‘"°~*[H+B8Žâ:�úeà}<ëgÓÕd(ࣿ ¡cëGP~\V Nnůmœå�x}HßjsQ¾ª{åœíF3_H‹Šˆ)pÅ(¨=£ñJß&+ü@c_„œƒrr| ¬€¼»ÿ$p³ßYŸosĪÇ�…fÁ´,¤DVzÎó=#DçàxF fÑAd÷}®×ì S}²Û]�6ßîÊ?‚rß>D˜ÚÉe-æ@#úA€°Ÿ»+Â:ÿhOk]/L‡²rý'¾ @?ßt²Gñì·‘dóŽ} …hZÊ…PŽpŒN¦D‘Ë9˜ü«W^ÿZ?&»ùÿ§Òíu~Ç3y¹ý9àªHºËû›�àÿß0ÌšûåÚÉþG «“¡ûÚ1¾Ä6NLã Ùý÷¨?{Ðã7(ãÑ[ ]áv‹qÊ„áî«þ}@?ôm‚�l“y6ÍQuÑoëÚ®º<fØ\ÏöD*×ÞØrâL\sôv‹Žü õÛ…‡ãTJ]Òzåi0ùÖçòŸ�‰:|'Þã¸,´øê Kž]Kâ :ŒýgèwçHfîQÃ÷<ôlÒàÑ´ùË©ð©7¢>³ýÎÙKýhîaŠ¢3½ˆñE8àjÉETêÞëÒ÷ Ÿ¦E³¤yÞN}œ–Äsi:‘º¡X^Q)ÿd�à€¢7اºÄ¹³mˆ]£¿û¨ý í©p{¦û\‰Äg»ÿfÅ)ú2Šãi£Û“uþ0€Hõó-…=ƒ:õ„©? �õÓ„L³ÚLÑ-kÝßYŒï2Ïû–RºíŸØžÔß$Ï146ô>|ÙQÚóÇveLhôþ? h¸oÏ"~ Èém÷çV L�ÙÑ‚? ™v?´~@Œ¤{Ö³žõ¬g=ëYÏzÖ³žõ¬g=ëY7Öÿ�ÇÄ¿Ϫâ����IEND®B`‚IMAGE 1606 ./arch/ground/nimground/Nimground3_purple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTE��.N2f042 5 (9>AG;NCK>"RK%WH*XG,^O1a3O2j1 <;8=*%??=CBD=ECH- S7mBK8DL=!Q*E!OF!QLQF"RB&XE'UD(Z6 23/J.`M1e8*7 495;9T8nR<pW;sY>tZDz@!ME N8:[@v7!M&- ? J<!O:-)< 'HOR6l89B>2&=4D%SA&V>(VG$T6'9;8)$D)[?9F*^A@N)[E.^.DJ.b0 'I2fS.b5 ! �J4f2.8IP4jL7iQ5k?F7 &O:l(U:p:LV:rR>p�S?qZ>vL0d\AwYDxEL_C{_E}`F~E/a?$T<.;F@%U& /AK/c�4D:@;@0"?B9A' ,9BB$R-;P9oAJT:n4I�CECG7IUAs?*X  4'2XCwM'Y"�^Cy(.K&XM8j>5N9k*?;H6 L6 $B$PN*\17O,\%1>E /R,`R-aFJWBv:?5>GM02 6 05656?!ßìï��ÍIDATx^À‚¶,·$cciÛÆ¥mÛ¶ñlÛFi?×xeîÊò%–½‚^å§ÈE´ºƒxÚE/E´í4Òïf6f(ÕŽN# ;w?úvgÀNº®a¢"ISbu'�ÇäT bU¾åþŽfÛ‰sC\÷ô4s–ºiõ„8B¹ýµT†7–j˞À‰ûüõ§fÄ:Üõm‚^•~ˆ¦Îlµ’AìŽÕgkß…¢ÿ‘›`cÀØO2 >µe_J‰ÙÙìv°™²åè–Z9™§¬¬®>$)ÚA­½²Gr*Îì¯w›)èƒI„]Ãñ‰ÍŠÄ Pìq¤zæ©jÝíc×hPeánðlg½ÿõÜ5á³ù•È7†h­h„fÅi¼«¦¬N›«•–£O²“nù¤UrÔáœDÞ•Õ¦`ŽûÜ…èód]s;Ÿ‘¸À!ºçÎÿRõŽ^° mêu˜:Ô� ‹fK˜õ=¢ag~Š™Èæ.@dKÅQ6ÛÉ©õÿx’^6ŠJ)mz€ w€v˜�»·QŠ‘aúÃ[Qº¥3¢IèþÍçA½Ü´°uKoX?µÈðÔù‰¡Q)ÂYþttQ³âË~5Ë¡µ »ÆOžÿ’æ<7. µîÊÐ,°ž™WF�tÙ_¸–x7%Ì¥¥ÇïïOöC0O†mdÇ_p¾^[ƒ gÖœ-A¼X?–ªÚ¢â4¶k)¤–„ãµIŸ?ËEž(9q·O¤…°æ]1ƒØ8tðIŸ#4¾ºÞG²°3nP;ÕÆèwè,6C—h_ûjÜÂí®~Ç.̯˜ç§h6¾¬«X0àȉImíñ·rû+¹äõ%¬£¦†i¶EïuÚß3`á`Q¥À Yµó qù{Ó¬Ïh@wª¶уƒ½ì6Zõ´u™·EÆÄ¯3N¯ùå\#†M^NËHOÆÚôü(]ÚÊéG“çéÙ¡— ¤ Ÿ€Î¶úµåñ•ô>òåmð¿¶ÔÖ@ǹ2­ðxTdRcýSÀ7÷scõàò€ ñÛé̓ͺ %/MÜnÖ]_UÀĦH2NNOnÞƒ2´8ð‡þ¶Œ`#ˆ¸j(Ê�ùn‰‚ËíïlÆkäøu¶Ñ.Ó=›T9Mçb% p&¥¯!ãv½Á¾+wu¯ô-©8NTˆ8þMä·‹`ñºo¿p`ÚÖ{îš«j÷_—ן­XøU§K³`´ ƒ›{QË”(ÎäË×ßüØvzâxó¹6óêt¹Ž†ÄWÿkZà¢lF›����IEND®B`‚IMAGE 1606 ./arch/ground/nimground/Nimground3_purple.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTE��.3042 5 (9>AG;NCK>"RK%WH*XG,^O1aN2fO2j=CS7m- ??1 BD=ECH*8BK*%DL=!Q6 2E!OF!QF"RB&XE'UD(Z7 495J.`M1e;98:<;8=T8nR<pW;sY>tZDz`F~@!MHOLQL0dR6lU:pV:rYDx:L< 'EL2.7 &3/[@v8*$:-?$T<.B>D%SA&V>(VG$T(89 �- D)[=4F*^N)[E.^9;J.bE NI2fS.b&)J4f?9L7iQ5k8IA@O:l.DT:n?F?B0 'R>p2&S?q6'Z>v8)\Aw5 !_C{_E}P4j4':@7!M<!OE/a�4D�24ICG7IB$R�/ACE;F-;0;@AJP9o& ?*XUAs.M'Y9A? J"  9B�XCw@%U"K/c^Cy' ,(5>N9kB$P6 05N*\FJO,\6 $>5GMR,`R-a*?6?%1WBv /02 ;H6 LK&X:?>EM8j6517¤Wް��ÍIDATx^À‚ve¹äÚz¶m³¶mÛvǶíYÚÆÏíÓõJ]åè¬$¢g/ß–L„ñ*È¢X-41ÕžžéÉ[ö3ïh²?»À6\•î%ÞÏUN;+5ƒÔÞj,Áéê*îíÆ—a÷îüûWûBÓÍc›v ¥<Ae–g *áEï¨\*^Võ†Ý8S?æºË¥m‘’/EÿôtrÛ¯l†ø¤HÚxªuÈê�‹p¤êÛRéAR¹€ô§j qŠ6Ù–üùv m€'p;méj¾nV¡+õ z­±Þ%²‘½aªú™A S´Ûûf¨à~=óÀ‚»Ìn9°ÎŽITTÐACØ}¶5q”¦*Åbð~rR­ÿ´‰Ö,ÆŠÄí%?hÔ{³ærŒBÙ¾.!²žiÑ‘ùÒ®ÕX§ž�hæ¥)«~Cë!`Ø@ ~ƒ¦WÌþwõz¢o« àDëÉ’fsš`Âäé‹Ï¡”êbÑø�Q»A�»h³»^ÐIÊìÃ/óAªu(ñ[þMg:�²V“O§âëªoÔ|u¦{aT °ê_­[ä´ðr®� ˆ}uÝqgþ Xçû› mƒU4ð8,ÐKòJM猜ƒägââ¥wf?ùÛ›!jÍDËÚN^C`î2bôª­Õë„· c±ã<y’öQh'¬ÔYE»6¸Sr¹“lྜªº8œ¯|×ÖCtp½×ÍâWvê"—wYrÄæ®*þ9«E!àZ-áDÊÕQò©ÙªÒWLÍR…aÉÿŠb|EKO‚Aø'e)¿Ë]NíU¤Bç;Ñ‘z²z˜bZeøÎý˜@@º(‘užsˆÖÄÉøÓŸôÓ."Ý9ÞöÓéÝäv Pi(«´¥Ÿßh+lzs6µêFÊåT ŠN>öõJoBµvЯ˧4£¡3ÔŽš`Cp\/_·öÂjq§"¾'¹2føc{,?°qö(Ê_èØØ\õ˜ù¾¥q°8 …ØxâþfL:Œ7»oôi>-`-.@×úõ˜Ü\„T[±kîöoÆqŸV #4p]Zœ8›Ú+oú&ßy¦Å„P#&¤e#CóO$€Ñ1Íá3áŽuæÃ¸±¡¢¿S‹ax€a_þº…‰³ü÷»¶-:&wk~{zú¬BÍ•lÆHÎ<< z®’ÞÏŒŸ^ù¥ýn÷3på‡hâÑÝq ñ¯Ÿyf¹x“a–¥G™jb^*•%Ž2RóMh%iª¸ÿºÝÌßùO����IEND®B`‚IMAGE 1606 ./arch/ground/nimground/Nimground3_purple.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTE��.3042 5 (9>AG;NCK>"RK%WH*XG,^O1aN2fO2j=CS7m- ??1 BD=ECH*8BK*%DL=!Q6 2E!OF!QF"RB&XE'UD(Z7 495J.`M1e;98:<;8=T8nR<pW;sY>tZDz`F~@!MHOLQL0dR6lU:pV:rYDx:L< 'EL2.7 &3/[@v8*$:-?$T<.B>D%SA&V>(VG$T(89 �- D)[=4F*^N)[E.^9;J.bE NI2fS.b&)J4f?9L7iQ5k8IA@O:l.DT:n?F?B0 'R>p2&S?q6'Z>v8)\Aw5 !_C{_E}P4j4':@7!M<!OE/a�4D�24ICG7IB$R�/ACE;F-;0;@AJP9o& ?*XUAs.M'Y9A? J"  9B�XCw@%U"K/c^Cy' ,(5>N9kB$P6 05N*\FJO,\6 $>5GMR,`R-a*?6?%1WBv /02 ;H6 LK&X:?>EM8j6517¤Wް��ÍIDATx^À‚ve¹äÚz¶m³¶mÛvǶíYÚÆÏíÕžžéÉ[ö3ïh²?»À6\•î%ÞÏUN;+5`o5–àtu•G÷vã˰ûwþý«}!‹éƒÎæ±M{ Pž 2˳•Šð¢wT./«úÃ©ŸÒ‚îri[¤äKÑ?=Üö+›!>)’6žjÝ0¢º9€p¤êÛRéAR¹€ô§j qŠ6Ù–üùv m, p;méj¾nV¡+õ z­±Þ%²‘½aªú™A(Z„¿í}3Tp¿žy`Á]f·XgÇ$**è !§> Ûš8ÊFS•b1x?9 ©ÖÚDkcEâö’ßôÞ,†¹#ÁƒP¶¯ƒKˆ¬çDZtd¾´k5Ö©'ÀÌKSVý†ÖCÀ°@ýM¯ ˜ýïêõDßVDëÉ’fsš`Âäé‹Ï¡”êbÑø�Q»Aà�vÑfw½. “”Ù‡/^ æƒTëP â·ü›Ît@°V“O§âëªoÔ|u¦{aT °ê_­[ä´ðr®€�ľºnЏ‰3P¬óýÍ…¶Á*xè%y%i�¦sÆNÎAò3qñÒ» ³Ÿüí͵f¢‡åm'¯¡t1zÕÖêuÂ[…±Øqž<Iû(´Vꬢ]›3¸Sr¹“lྜªº8œ¯|×ÖCtôºY<âÊN]DøòŽ"KŽØÜUÅ?gµ¨#\«½8‘ru”|j¶ªôS³TaXò¿¢_ÑÒS£`P“²”ßå.§ö*R¡óèH=Y=L1­2|g‰~L ~P”È:Ï9DkâdüéOúi—N‘îoûƒéônr»& 4”UÚÒÏo ´6 ½9›Zu#årªE'{U`¥7¡Z;hŠ×åSšÑÐjGM0‡!8®—‡¯ÛÔ °ZÜ©ˆïI®ŒþØËlœ=Šò—F:66W=Ô¾oi,h!v#ž¸¿“£ÄÍî}šO Ç#X‹kÔúõ˜Ü\„T[±kîöoÆqŸV #4 . -NœMí•7}ˆï<ÓbB¨ Ò²‘¡ù'’ Ð1Íá3áŽuæÃ¸±¡¢¿S‹ax€a_þº…c€³ü÷»¶-:&wk~{zú¬BÍ•lÆHÎ<<,ô\%=þ0¼Ÿ?½òKûÝîgàÊÑÄ£»ã â_?‡`f¹x“a–¥G™jb^*•%Ž2RóMh%iª8Ô+u•£³’ˆž½|[0ƨ ‹bµÐ8ÄxèéÿÖÝÌ ¯Tõ����IEND®B`‚IMAGE 1606 ./arch/ground/nimground/Nimground3_purple.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTE��.3042 5 (9>AG;NCK>"RK%WH*XG,^O1aN2fO2j=CS7m- ??1 BD=ECH*8BK*%DL=!Q6 2E!OF!QF"RB&XE'UD(Z7 495J.`M1e;98:<;8=T8nR<pW;sY>tZDz`F~@!MHOLQL0dR6lU:pV:rYDx:L< 'EL2.7 &3/[@v8*$:-?$T<.B>D%SA&V>(VG$T(89 �- D)[=4F*^N)[E.^9;J.bE NI2fS.b&)J4f?9L7iQ5k8IA@O:l.DT:n?F?B0 'R>p2&S?q6'Z>v8)\Aw5 !_C{_E}P4j4':@7!M<!OE/a�4D�24ICG7IB$R�/ACE;F-;0;@AJP9o& ?*XUAs.M'Y9A? J"  9B�XCw@%U"K/c^Cy' ,(5>N9kB$P6 05N*\FJO,\6 $>5GMR,`R-a*?6?%1WBv /02 ;H6 LK&X:?>EM8j6517¤Wް��ÍIDATx^À‚ve¹äÚz¶m³¶mÛvǶíYÚÆÏí.m‹”|)ú§§“Û~e3Ä'EÒÆS­FT7GÐ]@õm©t ©\@úS5…8E›lKþ|»„Æ6áH@[ºš¯›UèJ½…^k¬w‰ld¯E˜ª~f'p;ào{ß ܯgXp—Ù-ÖÙ1‰Š :hÈé-¶&޲ÑT¥X ÞONBªõŸ6ÑšÅX‘¸½ä·û( `˜Ë1<eû:¸„ÈzN¤EGæK»VczÒ¨÷fÁ”U¿¡õ0l P¿AÓ+Èfÿ»z=Ñ·UͼH–4›Ó&O_|î 嘠T‹ÆˆÚ 'Z×€‡Ù]¯ è$eöዃù Õ:ˆø-ÿ&‡3vÑ Š¯«¾Q#ðÕ™î…Q1Àª´n‘ÓÂ˹²V“릈›8óÅ:ßß\h¬B Ça^’W’ľ :9ÉÏÄÅKï.Ì~ò·7CÔš‰–;´¼†FÓ9# Wm­^'¼U‹çÉ“´B;a¥Î*Úµ9s—!—;ÉîË)¡ª‹óÇùÚȇpm=Dw ‘!àN%À#®ìÔE„/ï(²äˆÍ]UüsV‹:BÀµÚë½n¸:J>5[UúŠ©Yª0,ù_QŒ¯hé©Q0¨Œp"ò»ÜåÔ^E*t¾©'«‡)¦U†ï,Ñ Ä?)K ÎsÑš8ú“~Ú¥S¤;ÇÛþ`:½›Ü®I%H[úùm¶Â&¡7góQ«n¤\Nµ èäc¯JCYjí )^—OiFCg¨5Á†à¸^¾nS¯ô&ÀNE|OreÌðÇöX~`ãìQ”¿4*б±¹ê¡öÂj ´»OÜߌI‡Qâf÷>ͧ…ã¬Å5ó}K#„|Äìäæ"D ÚŠ]s·'x3Žû´J¡éZ¿8q6µWÞôM ¾óL‹ ¡F4LHËF†æŸH®ËB ˜ |&ܱÎ|76Tôwj1 ï0ì‹À_·pŒŽiÀïV4Ú¶è˜xÜ­møíéé³ 5W²#5:óð°ÄYþôøÃð~füôÊ/íw»Ÿ+?DîŽ[(ˆý¢ç*ÁM†Y–eª‰y©T–8ÊHÍ7¢”¤©âä™å"¨•Dôì…àÛò€‰0>@Y«…Æ!ÆCO×+u`Fzò–ýÌ;šìÀÏ.° W¥{‰7äs•ÓÎJÍDµ§$8]]åÑ½Ýø2ì¾Àÿj_Èbú ³ylÓžÚ[ 2˳•Šð¢wT./«úÃ©ŸÒRžÿωÝÌ¢<íd����IEND®B`‚IMAGE 623 ./arch/armour/mail/Pdragonmail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEÿµÿ!!!)))111999JJJZZZkkk119BBBRRRRZZ))1ccc!sss{{{½ÿµ���cZcRJRckkB9Bsk½�ZRZ„{΄„„œ”祥J­¥÷½ÿ­99BÎÞ9ÎÿÎÞÖ!Zccss{11)!)!BBJœ„ZZcœµcœ½sœÆR¥sBJB¥­J¥Î”¥ÖR¥Ö{¥Þ¥JBJ­ÆB­Þcµœ1µÆ1µï­µ÷{µ÷„µÿ”µÿœ½”)!!JJRƵÆÿÆJRRkss!ïÎ1)1ÿÿ�½Æ!½ïZn@2”���tRNS�@æØf��-IDATx^Í‘åŠ41ãÒîã®ëîîöÉû¿ÍÞ ,ÛÛd™¿S4$ä÷„4Zè²SÊ,9c¥=fia.~e¬ýš+)DI î,ÒÆ›Nu¬¤Sêsá½&_K3cx¨ aË U#Í€TÏ‘MP*ÔY¯g„øw!ë-™`Hã°úl\€¡ä´“Zo£ ³Q>­i�TÙàŽhÞÝò—N­+˯¡{7·›²žç×§¬Æ:„’±hyõzðtdNª$,â¼ßmÁM¤@ô<âÃ~·éŒw‘¥Â'”±áºpÙ*.Ý0øŸÿÇѲ€}ß%”R_b«xÀÏ3Ÿ’L®’­¢(0öñÌ%€ki(ö £|`Àß¡(cL„qV‰O*"‘¥j����IEND®B`‚IMAGE 610 ./arch/armour/mail/Pdragonmail.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���çPLTEÿµÿ!!!)))111999JJJZZZkkk119BBBRRRRZZ))1ccc!sss{{{���ZcccZcRJRckkB9Bsk½�ZRZ„{΄„„œ”ç­¥÷½­9ÎÞ)ÖÎ!ïï!99BÿÆÿÎÿÖ½ÿR½ÿZ!)!BBJŒ­Z”µZZZcœ¥!œÖR¥µR¥ÖJBJB­Ö9µ½BJBJ!!JJRÆÿRΜ1Î¥9cœJJRRÞ¥Þÿ9ç÷)ï½kss÷Þ÷ç!!ÿ½1)1ss{11)ÿÿ�½¥±���tRNS�@æØf��)IDATx^ÍÕn1EͰŒAf(33ÃÿOÇ‘ª¤YWyÍÑ>Œ÷ݱŒ6ºî/e–œ±¥™ 34~12ÖX JJ ±$È÷NæiõY§:VÒA @à\xwÉ?ÓÌZ†0Èe†ªšf@ªKÈ&(ê¬Ý6Bü¿µ×4Ò8\}6.ÀPò½™Zï£Þæç“ñ¸¬(Xe›;¢ö2NÆÍr9V¨�¥ƒáðuGV¦“§û@¢"g°d$º^¥\^ão”°ˆóV§ 7‘ÎŽèiÄë­NÍŒnl >¹ ŒÕ¿„ãˆÈÖ°ç_Á?ûQYÀ¾ïJ)ƒ/±­ØÅ‡[>!$yè'=ÛŠ<ÇØÇ3—�.²ä·¹Qfð°­ Ÿ×˜c˜7ˆŸX·íã¹ò����IEND®B`‚IMAGE 295 ./arch/road/a_bridge/a_bridge1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ-ŠV��c2�1����þ¿Êÿÿÿ¿¿¿S5~���tRNS�@æØf���·IDATxÚíÛà C©I þÿÞˆZuRŸ¦=í(Â΄Òþ|>‘Òøˆ™§˜÷•ùÔüPÍi‚éÀ;–ºpÈRÖªxj4¹ÕÕ .@±´G»Ž&<ÓÌå&T¸xD¾êÊ-ô'iÝI‹¼”¹‡d”\Y‹ÊÝÌ$ÿ5Ë«@"—#*=8sÌ<ý¢¤É*]þÙyzç½O 8ËOÜ'·s¤/ê^ˆ*yõl¿âº ÁнžÀ����IEND®B`‚IMAGE 302 ./arch/road/a_bridge/a_bridge2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ-ŠV��c2�1�cD���þ¿Ê¿¿¿$ædx���tRNS�@æØf���¾IDATxÚ“QÂ0 CÉkBðý/ …H›FÃÐü79²’Wï¶)ÏÛB)\Ž,¿Ý)Âeh~P ¦9„§8Hɦ” ‰Fí±N(sˆ\'2q(NvðuB–;ì—옦]çàÂ5zLÓ[.¬8\ØaTaŒîŠ(XôL¼aSÑõÁõ! R´>ø¯š+ìC3¥EB Õcõ}pm•k9,¼* ‡—vêß<† «÷ØÜ' ]¥ûX����IEND®B`‚IMAGE 4048 ./arch/construct/town/a_civic.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��ÜPLTEÿÿÿþþþbbbnnnòòò¶¶¶rrr¾¾¾BBBjjj>>>~~~RRR öööºººžžž’’’ªªª***úúú222†††–––®®®fffvvvÂÂÂÒÒÒZZZÚÚÚêêꊊŠ:::666&&&zzzÞÞÞVVVŽŽŽJJJ²²²NNNæææ...ÊÊÊâââ^^^¦¦¦‚‚‚¢¢¢"""îîîšššFFF§§GGŽŽúþþÖÖÖîîÞÞ²²UýýŠŠþþÎÎÎîþþººöýý›þþÚÚúúýýÑýýššBB þþRR##AþþÒÒ11òòjjßþþ‚‚¢¢ªþþbb8þþÅÆÆÄþþ<<éþþ††ââ°ýý`þþHþþ„þþË˶¶“þþnnvv¾¾VVNNzzþþ0üüêê[[oýýöö®®¾þþ~þþööóó~~¶þþ–®®ÆööŽþþ––"ýýZþþÆÆÏêêÖÖ<JJ’’.^^žžŠþþffjþþZZfþþþþ@^^4ØØ2––2ÆÆ†ººÖþþn¾¾b²²Êþþ(œœæîî¦þþ"ÒÒRòòªÖÖf¢¢**pööòòêöö2ººÚîî€â⎦¦,òò(þþrrâòò6òò°ÈÈvþþw»»ææÊââNþþ’ššvŽŽ*‚‚:zz†òòv‚‚^ÞÞ–¦¦²²†ÎΖ¢¢:RRfºº–ÞÞ¤¤Bêêžž<ššŠÚÚRêê¾ÎÎ66¾ÖÖv®®Jff&>>nŽŽ22ºº–öö¢þþbÒÒ’ææRªªNzzvššJJ"nn*JJJöö>¦¦ffbvvJââZvv¦¦*>>–ÚÚVââ*êêbööÊÜÜZîî–îîw­Œ#���tRNS�@æØf�� ¢IDATx^í™ã{,M·ÆSÕ4ƶmÇζmÛm¯mÛÖ±mÛøNuOO2³ÏÞéɾžoçÜõ!“JUÿæ^«Ö¬º&#w®ÿøSïšüÚmÜõOpdö—×ß `Óþëÿuà3†€»Ž<±î¡Ý¼vÀ®ý§¯}æ;OÎn|w�˜¿4s߆õF�ÛÏÍl¾ïðÒš…WgÏlÞ}Ö�„§þ}Ë–‡Î<½æ Kï{|Ës}ËÈ:ØýüÒÒ×ïZûÚ”[Z:ù”ÑFPNÆ>R53`͸QÖŽg*ÀáDQ¬âk7ÀâU±*bFë¢4V s‚5"|ÜŸKpFe‹„CHˆkdB–Ç0B´¥!V[³6]iA%m´ÌáåR2Y+Ä!„V œI&%Þ(QYÎëõbí>Ÿ4e( Œ�›º1 ŒkÖýÁ© ߨìp@ŸÿícßþìàTŒØj¶–?Á�ÃpÖŠÌ¿� WdWìʸëà'ìë•� (G>'’†�^*¦-.[Dû¸þæÃÿò÷ï9ý—¯~¿à�МÉѨƌ `‘´âž2ƒØe_ý…xuüÄÎí;'æß¸2ÿì?~ÒÕ�Q)U H8ÚÄT¹žÊ²È阧¾ùÖöñ»OŒoß~ãôÄüØôô¡÷ü÷Ï{�¶‚8†E“«D±(•¡®Iq]/þî‰vÝß{eïøÎO½qpþ—¾¶oß¾™»ßw@ˆÅb1bx„HG•TÝö�VÚÊt|öÃó;OÜ5þƦ¯œØ{U>2ÿw“GT=¨4ä˜9OÊ•bbàöu„~ïÔ‰#»nlß»ÿSwß398zxn÷Ùw>ñû n-Æ ?"61™4?{²rq²ëàÅþõo¡üÞsåÈé®Î#}ìòÉã¼ü¹÷¾®ЦŽ!�8¨ò”ê+�œe˜®ƒ¯ß8qeÿöù 4暘Ûs߆%ø¡w\þÆ»?79, Æ;”„—^$ð$Ãhòß=uϼªWžØví…mÛö<¶ã¾­ž<¿á‹ÒÖõ„C^Ρä0ç2ÀÁM¾®ñNÏ«o~bÝÅW6ÎÎÞÿôcG×£%“ëŸðé{Cr(@“+B¶ Dñ”ÑüÎÕ‰‹cc'®¯›Ý3vmfzú±…{w¿"½ÿ»ÇS ‘! ^Žqù8ç ¯�ŽmÕüÅþë뮯[wíúuôs£úütm‚ª>ô<8Tˆê¸Ç¼(§˜¾EèÖóçW/Î^»6{qöâÌì™éé} _~ÇᓺQ^Æ ™µøÂ+� jØ_~ââk/Í^ÚóÚÆi$ ðæÙ/?¹¤/\,ç�fºbŽZML@$cBà¯Î?<óÚ /:s?hZØq e€±À6J–˜‰ñõç�°è!À»^»xiÝKÓËæ6œßp`-�pS”‰ÈATÔê`Òüƒ'^¹´nOïù›àè£.ï.+%ZC8¨•óåv8À­a§G…ö½ñ‰±ç/<wîì¹³€ðµàÒ¡P9Ðiž"\@D!‚ß<½mfZ׿î‡è“[Y¯8„¹™õfÌíÔÀ)Âã:@Üyfº/H÷ž? '™`ˆ!+Y §E÷À)jÚ�…hÒÿ}ýÒ’<·áÑg  Ù5Æ€8#NQ� öƒOÌÏ XØ}áý(”ípHqgzð94€Ö޽|è%ÍÀc:`˹Gž}+²YBˇuÀ0>ä`Юr‘ID Ù¶õjLOò½Ç<áT¡ çÖ�|*£÷äÍ �Þ9·õ;Ï JóáÐD¦’3V2¨õzòäá÷<«Ðuþò¹Ëþ0,kq`¾©@-ÐíªÌŸü·‰3+€×ß|ñO¿ pxqwµàt ÷d]Aá½ßÚ¸ðÒý°ñÌQ¿¨…gx¢zL°zO^–8¾oï6ØyõK¨€{ºnþ4MVôž¼¬’ÿiÿ¯_Ú9ýkßÞJèÜ5äÀ,®ÔA‡ãðÔþLÏAŸ&á#ÿúÅ?Ò.Œ·v�@3ÿñÛÓ•:È:ñÖ~úµšÖ“ 4à�œÚþW_ýøô­¤™ì:°_¾ûÐôáOÿŠÚ“ þ©ùѸI–w=ððãÇÿãK·L²Ï\×?MƒÙ#è~¾ã™Ÿ¨€< :òÍSËÀ•ÓOïøèú[;èônSü‘‡g6_>´˜Ê8c¨@ô˜¢6}åÒ™-g—à-–€§¢9(RžÞ¸yÇóÇC ÃR°_A¯×k…7)ž†° °q?Ù¼ãÍ­·PM“Os`¦½277÷‡? šœ˜BÆz¬ ðY-RR¢Èneø­¤¢1Ü4ôã¹¹¿ýÅ[×A<Úí- 2Du4ÆÊ«o7™õtÛ{²™L”wį=¸šäU€à„:€çåÅ„µÛÔ)Óý4Å%—œII¨'3Z´BZÕNeÝ!7Í7”bŒÔ*1Ò¬°=�TÛ‹^.A¬^ssñï¦ë¸e´’‡Á\Z‹:YÎxÒl¡À¦‚tð´öà`®“èjwÙi½]%û¬X…qʉ…* �Ïæa‘k6%•à*£|Œjå í†%1ÚdSÈÙb›]�È9X{§Ø�· k‹Ï €„{˜èŒÖsT¹UÄk›•PJÃåŒ`„‚@U’ÅDŠ ¶Z &Ì9€qqÈêm¤…N1a ·¡P(. –@ ®±¬ÍAXöøåz]ï4š!謳[@� j: (´±<h`ð5L(Da¶žmfy¶@Ò�õ‚ÀFd F�A8z€šÙÁg›Mܾ4M nG«V«5*1öhùX‹‹D‘ÀSΜ-Â:²)/E*a±l£Å7APÂVk# nß\œ‰±`R½ãï(é8T¢¹p¼N7›±v:,ò©Þ_M¦"ŽpØÆ7›Íz!.à°+“w´M³*ŽU¯-Œ/` çR‰ôt Ýƒ¢€‚ŽRï5Rïm΢ÊÑ*Û©b¦Â*�T¦r»>ÅqS|®M Ö.R•#«;H—©º?Ÿ®@ä(ÌÖJ„LF�G «´ 3ç×ÙlœÛ3Òê÷¢ ˆ¥í•)3¶¸üÆ�“KS˜X«Sª‚Õovæ6…•}(ÉŽh4jÀb ÐQ¤�M*#4(°ºƒN8ɺ߃A$f(@׿/2wl­Q°úÅK,1gkQÁz€lÔPü2 䇀8UÏU‹P©:VjÊ”^—‘œ<Ö¨àÁLZ§`žŠ®~ñJ{"moÃìªu¶q‚vöËg6ÿ¯³UÊVH0q ; §lp³¬³`³eAÓí¶Ù”ìÐ.H„@/Ê4/wB°2Kø²a³Y=²­`«`hG[„â®í r툢¾Å˜» h¤8ÅÖœ ˜%5€;´Û…m§ ‚°ÞMRA¡$ß½:VM4H»TÀ16@U)–¯jg´<ÚQVÔX&ÊdÇÁ^g5ŽaHlj_´zFœA�Ò“öŠ¢· °b¬@ù wÆý°ä­¥«^§1P„æeÜѼŠâÈ�—M·µ~¨:õY-pTÄQñ,byÌÈ�o‘Ðî<è2Ë1u:Œ�"j�j´ó¸£ŠT$¦–^¼™mšÔY Ô0Ê´iÅRÀ0Bõ¡$7ñ¬Åцšb"Ô½ùäÒq±*V9ÙMôÍŽÊ6ÝI©—4ØŠ(çê& 7Ûf3�ý@àcM4²ÀÔ?õf»b�å£eø½~Cù 9Q¤Q0r¼×ÝhÀE³êbUÌŽªD®m‚-&U ‘Î ,¡ u6]‹'`0Þ4€Z&,m'™!ÉQ … ¬=  ç‹‘¨Œ‘ªÐŸƒþ$ïò¥Ûè)´6#€¨]û‹ m+AÐÕŽ´ÊtÎ>J—C¡œdrGëu^<¨2<ß°Ò4©½µ¬«1 ]‚°W‹@ÊÛó‰<Ì'Ìèê4ל]…ªRJD"¡¸²úZ,a8;b¨IRÒÑ4“ªÐLÙ©%­Á.Á–”º+ô¯c‚ªe\OÙd2 ²áeÅÀ²7Þ¡�krIGo8Œ¼B£æôõ«ü6ä¨/D(ú E‰¿Í� '±²>0¬\ÆPnßfÂÍù?¦ÿ蘮ðÞ.F#����IEND®B`‚IMAGE 3128 ./arch/construct/town/a_civic2.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��ÙPLTEÿÿÿþþþþþFFFNNN‚‚‚îîîJJJòòò^^^ššš222zzzžžž®®®ÎÎΆ††rrrÆÆÆÖÖÖÞÞÞ¦¦¦¢¢¢RRRjjjÂÂÂZZZÚÚÚnnnÒÒÒæææ666ŠŠŠ¶¶¶fff:::êêêâââ¾¾¾ŽŽŽvvvÊÊÊ***"""...––’’>>>òòîî’’’ªªªbbb>>~~~VVVúúBBB²²²öö¦¦šš ¢¢&&&ööö¾¾–––rr††²²ŠŠžž~~jj::úþþ¶¶ÂÂ^^22þþÎÎÅþþêê<þþææ–þþ‚‚ºººÞÞÝþþzz""ZZÚÚÆÆrþþ²þþúúúþööæþþ§þþVþþRR&&66ŠþþŽŽDþþ®®ÒÒëþþªªbböþþbþþþþRþþäÊÊìÚÚæÎÎкºyþþnnþîîffââfþþ F..òêêZ .¼þþþþFFºº#þþ®þþþÎÎÖÒ񾯯VV¶¶Žþþ-þþ’þþvv~^^º––r®®.::Bʾ¾2‚‚Rff&&¾¦¦NN>öö¢ööþÞÞŠNNP..:êêÖ®®N::‚ÊÊVÊÊÂÚÚ6^^Îþþ®¢¢†zz&jj:..¢ÎÎêÆÆ&¢¢ÖÖŽÒÒrjjÊÊšþþòþþ..Öþþ¦ÂÂ6®®nFF’ªª–êêrÖÖ¢šš:22–‚‚ººr‚jjjbbæÞÞrúú¢þþ""ÆööÂÞÞvÖÖ†þþÆÆ–ŠŠb^^JBêêŠjj¾~~2þþBB~>>Êþþ úúþþ^>>b^nnNJJúöön^^�AÉ���tRNS�@æØf�� IDATx^í™ã“äŒÆ÷y’¦mcÛ\Û6_Û¶íkÛ¶mÛæ_p“Nj§ç­ºÛIÝýtk_&Ý59¿yNNçLw¯hÂ.p�|Lç ï<¤G°m?;u 6¬|ïC‚fÁæKÖ û~¨G0pxï•?ß§Ypdjµ°‡z´OݽãqÍg<øÕA¸Fà5m=ÂÃÔ*À¿ß"B§A÷[wHg\¬Y€ûHB× ‘|´ÖïóŽX GÐJÕ²fÎI‹Î�ðY'µÖNüŠ=ÌN°Ä°æ~Îõ’Œé s“å´VµJÅŠ³¾s# àˆx4'†×6ÌaIàˆ5Ðÿ©È÷W°­ž~s š" dKB.ãúq5¤a§›ÚøkcáHi)@ƒàižþò øø¼•géBÅcðA‡�œ°ÙÐøø,¸³³—`%N7àMê¨?J˜È2T`öƒ ×ÅUXwdûÔlÛ´ àwK©+�ÉQÅ3w@üöÞ•X‹U/¸t¶ý%A8( üM¸ôÔOWÁÀL…„èsÕßhdóJ©þ]Û7 |©í0A还3�fº´©ƒâTÈÛ ÎºàØptó]?zé†ý«¶]qÇ•»„ËïYûjJÀˆèÑ耟*žðb .øúñÈçßtíeÓ—¬l¿bͪãñä‰ßÓö0IdéÒ.謨R¥;÷×:²þðÀÚö+ÚWmš:¼j«ð¹ïÄ‹¿YI}tj®Ÿï³âYA©#“LÊ‚ÛÞ°mº­}ÍþMëfw.Ìn„ç7’Ÿ½á‹œÔ'ÀPÙLQ*ÀuÅež™j_5½nv|êØUÇ…áq2íÙµ•D!­‚Iäy óKgk>% ö·ÝýéG÷N û÷¶îá %v] ] r´ÎÃÒ�›dÁ“«W/ìl¿N¸ãj¡S®O•Ût%�¼$R¦F('ÀÁkw.\upݸ4û=»;…ç)\O… Ôš�Y»5ެ¿QHÊ×à™éƒ«ŽOïîìì©7h…‡XÇIôiM€Ñ }HE^¿[NplëÎ…©ƒã===»wËõo|œª@O„â†L Ú 0øŠÅøÊ?¬ŸÞô‰áΉNAâÄÉ=g(S-êIÐÏ2âñAÐ&f\ /»nöظ\^úûe.ºý†ÏQ&D= ÊîJ$»ì".ÜÐ.õ¿Þ aYð—?]|9Už€!å 4Œ"ÌQ¿Þ*Hõ•É\yè÷—ËsTðiL ë",×@Bôä;:‡ëRê?FáÌŽ}dÁE%A ô2œ€[/ ËT(¼Ÿ¤)K †,nwt¹ ­l´¯l¤‚Âó” 3P¢Þ†¢Ûí^&ˆúê‚7 °@M°‹L•¨7A¸D`™ÀPÕ_¿]8ËR‡nüÙ³îyÝ †æƒËƆ¬²ÑÈ[£Ÿ¼÷¬á†“O|÷§÷[¨;AÌ×Ño8âIUÀw~ïG›…m ‚pl@xâ–§OSB÷õ¢àkL|à)E òÀ=¯øÅ£³{ÿxÓÍTÐ`l.UÁï¼ö¯ïþÚ7åÖÈs¯{ß .¡÷˜’UUð€Ó{¶ß'ïƒsаÑ�|ðz¡É¥Ü®¤"¸× ¼é²w™BÍ.5Öï¾ý Í›:E6L¿Ô#zû·L64Á©$Àš5 ÂclÒ"ö©‚gÑ6,·¸“M©$ÀÑ«…çØD Î(+³üá‡î÷GÀ�¹ ¸YO€þY:á¦&‚þÅúʬ҈n<Ã#ÁDÄ8 e®N¡;Zˆ[”±Ã£Î’�Oþ䚯º´Ù˜V#É’ ñ¹ŽÏðAâ—…Ž’ÎŒ…djÄUJ„ççuC)“¤Èz‚î1ðÛ7¿MaSÒí3Á’ƒw0‘³!Øî#Jø­Žrp¢%’žÊ)JôǨ$€×˜ÈM囹’|«ð‘g윕ô�ƒ$Ë Q_Ò}@,E@%ÁÄ›w ™ lqÊS«×A&E8 6–!š¥ÅhˆÃl®ÕÊeK°›‘ Cݪ`4:J²¢á•ìAÀ AšÀIô±¢h€ŸCyB”TqcšÄˆ$5r ¬³ˆn´kÛÉn²C!bf1$ÖJÞ4eU™U¶‰�d4ÝM‹n 0F$NÑ óPdl1�ÃP ôÚ8C,†]“Ta†d«–}Pp%ˆN{;, Ñ Ö‰ˆ¬iÙÉ©hR³ÚìEÒS2Å@±¨ÕQüEU€p…¼¦ˆú¶8Q X² VŒû„&AÑ]…ÁH&Yj¥cÒ%+ÝZ†B©?f-ƒpf2½F ÏEÜá1=® $Ø«hþB Â%E‡£¥kf¨ò\”Ñ23ÓŒ:2ù¸6ÁPʰ+e°R;Uø¯˜88G‰V¸J"µ¾Cp"�’áœ"hBš§ÈQ”I­¯ Ùâ4™žà `!ãšßf†KY4b†@ŠKTðra8­¤IÂIšª3°ôX'ÒâÍu)†`+eÌ2eéB€´iÿ¿(ÑM>J�$Ë­53%rö\ï` JýV;%Zêo9¢>Í‚Qo¯¸ åª,¦ÑGzÄÖ‘1¥~Æ3hI›hÏIV2ƒ!2ŒP¬bÔü®u‹VÂ3"|�Én¥gD8c4:æ@²ŒR¢Û`M ‘FÍÂ^éÖ´hôÂJ2‘¶’k©ôfz3"I£=!éCw~$Ä™Šh ®ˆº0Á%Näús"¸`Þ’ @2­µ>‚C ² W/òL‘&JÌ*Tž±àõz>Eœd”0ÂÊ!0#y��ë€DÈ?TÚ¤ë{`.¨Ø êN.5n6ÁÀÆL5í‚8Y„â*SÁtÑw@&:ª@]€$'Vh-­µ-ª`ÔÞÒ2×ÒÒ ‘*D¾þl­5s~"ÿ 0c€Á^“±§ç8³fkØ<RG 'ο@ô:ÙÀù g)úýqé‡éü ^Ίÿ3.pÿ�êvMl­2×����IEND®B`‚IMAGE 476 ./arch/monster/humanoid/Arabic/a_guard_h.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���~PLTE�A�‹‹)´´f¶¶jÆÆ†¥¥M®®]cccï¥ZB!c1——9BBB³³d¿¿zŠŠ(ÈÈŠuu„B!¼¼tªªV||ÀÀ|pp���½s9Æs9¥R)zz2žž„„­­[-››1{{{››?œœ@€½½½"““¨¨RœR!¼ÑǨ���tRNS�@æØf�� IDATx^Í“GvÅ ™�(Çsp¾ÿÝX;´vkYõjz˜Ù¼YŸ¾Çx¡„/mT“ðx\¯i!Ö¹Çø)Å1;fÅšp~>‡îÛ¶%*†¨M ŸŽÅ¾çňP‚[ù�±¥í´ƒà#U(«Š(„9)“-Y;DÈG‚(½9‹N‰BåÜ:ë(r´¿àL%øL8edö—ÛWJGƒ Ûím{ë!t3„ûf”f$üÖ(ðÇ7wÇÜ4d²,›L6ÀÂ;2ÒÆv_¥–ÙÕ#OB*à¸F� ,j“¸nv±0ñ<Ge@�Ç`B]`9Ôÿ¶_øø¾…uj����IEND®B`‚IMAGE 459 ./arch/monster/humanoid/Arabic/a_guard_l.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���~PLTE�A�€€€¯¯¯³³³ÃÃÃB!ï¥ZŸŸŸªªªÇÇǽ½½�B�½s9ŽŽŽ�9�¤¤¤®®®c1c„B!���ccc�R�¾¾¾”¸¸¸©©©1BBBœ¥R)�J�•••„£££{{{Æs9ÀÀÀœR!’’’Áå˜���tRNS�@æØf���ûIDATxÚÍÇnÄ0 ERݽ—­éÉÿÿ`(ç¶æúœ ˜Á“z`TÇŒ)(3承p-éÈÅå/X–ëULºnYBöénr›Ûæ(¸ÏÝ?ö}Ðt@/Ñ#¹Ó|ÞÑ'W¸ ƒ Öž4¾iM¤aïß5‚#] ß.iøñšïü½óÄ.À>0@yçx�¡,¨òÞ¾&@䊘¦vj3ìT NÕJqemþl¾:yÄAåvï9¨XÎÛº<€ÌAô)@ôõŠr¼Çšæ£:r0 À`yAöÆðʆ°ß8U‡Nÿ¿…7ûî#l½����IEND®B`‚IMAGE 463 ./arch/monster/humanoid/Arabic/a_guard_m.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ˆ€€€¯¯¯³³³ÃÃꪪŸŸŸÇÇǽ½½„B!aaa]��½s9ŽŽŽb��¡¡¡¤¤¤®®®~��ï¥ZB!¸¸¸@@@¾¾¾c1–���m��©©©¥R)™g��£££1G$Ž’’’ÀÀÀ•••œR!Áq8…‘,���tRNS�@æØf���üIDATx^ÍEn1Ý`fþ†û0=“E¿)»</«T-›?mšW²ˆQO©©ÖãEé.¬ëõjs©â'žR–¢/úEçŸumÌry|LLDȲ `I€Lå`‘Üû°|h½ q¥óì ŽÌ–˜‰XÁ—ÈþÅyP0¼Z&'’X„;KÂ<(‚ ¿9b ”÷\þhò[÷¼ (ÂÈ…Ó©;u•þ^0»pnF #˜¾/TÞœ-b`Š^ 4‚ 磮P6‡¸€hÛĸÅVóov7ôÀ¶ Û0«‚ðaÊ÷Ô€ðc›¨šð³AÔÿ¶/×VVƇÎ}����IEND®B`‚IMAGE 214 ./arch/armour/helmet/a_helmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����ÿÿÿ¿¿¿Œuà���tRNS�@æØf���iIDATxÚÕÌ1€@ A.$KþÿbˆÐéJĶyûeÀ×�âA�XRµÀ-3�áÃ.`æ [•W �ã^ty Ô<˜ùˆØãC¬} �L`(°„S@ v<öÚ5Xm2µjð³N²€Ö²‡vc����IEND®B`‚IMAGE 199 ./arch/monster/humanoid/Arabic/a_priest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ���ÿÿÿÿ×�¿¿¿K«s(���tRNS�@æØf���cIDATxÚÝ‘1À Ë…üÿËM «Ý©µ w2(\ o|°Ž/Ð1jI(: ´Í¥@ì0B.šÁn¸@pº!õŸK0s*î…âyÜà…æé„6hÁ·kØÛ÷r°˜W����IEND®B`‚IMAGE 438 ./arch/monster/humanoid/Arabic/a_townsman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���{PLTEÿÿÿcJ�µµ�Ö½�Æ­�ï¥ZÖÖ�”œ�µ½�ss�ÎÖ�µœ�½¥�Æ¥�Æs9Œ{�{��­­�­”�B!c1„B!œ��µ��¥��½½����Œ”�{{�”��ÞÆ�¥R)1œœ�sk�¥Œ�­µ�­��Þ!½��ç11ÏçH���tRNS�@æØf���éIDATx^ÍŽGnÅ0 õ¨.÷ö{M¿ÿ CÙ™V€¬2Z¾ÁPê/´3¹ýky9É ÷ßNŒµ­í˜îÇ´5‚‰ã4E@ž»îè/Ãè‰Þž…pŽÞ9G÷Ô‘£gbÏ %BO)RrŸ Ðô)œ¹ƒ ^šæ�"­„Ú´×>$ÏÄÕn­…ºîÞ÷ Ö´µBóºÛŸ­,(ú¢ÐFk(Ëþ þbQ¦š…Ú®÷%Pcxgä@UVËF TeYêJc;ÀÆí– Ì…­Àé†/h y®,ˆï?&«*ËÀêã‹?PDóÑ����IEND®B`‚IMAGE 427 ./arch/monster/humanoid/Arabic/a_townsman2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���oPLTEÿÿÿc!�µk9½s9ÖŒZ­c1½sB΄JœR!Þ”Zï¥Z{9��B�¥Z)�R�µk1c”B!Æ{JZ!�΄R�9�c1„B!¥Z!œ­c)1�J�¥R)���ŒB„{B„9�ÎŒRÕÔÖ���tRNS�@æØf���êIDATx^ÍGnÅ0 Å¢îÞO»ÿCÙIV€¬ò¸œÁPýeK%+ðª?®$ôýõZžÕ//V Ö’ð¼ß·38MÀºm�Sh4îmX!‚ w拌qÑyöŽÌÚ0^˜ÉpF@F‰pDöŸÎ'ÂÎàC³qÒ‰™ìÜi#ÌC¤D ‹å! Ä„‡@-î}(H?Rò¡iº¦«Dð© váVdG ©dÂë›F´•jÁ„óQÏP6ÛsQ·#Z8ã[ Ì¥@+Ɖðz [+…<©Ë ÂLQUqƒ¨ÿmßÎl †)ñŬ����IEND®B`‚IMAGE 364 ./arch/monster/humanoid/Arabic/a_townsman3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÿÿÿ�{!�R�¥J„B!�Z1)µcÆs9ï¥Z�”B!½c¥R)k9!�­B!��÷���c1�1��¥BRsÿ�91Bÿÿæbgù���tRNS�@æØf���ÏIDATx^½WjÀ0·ª»§Ýÿ¤Y‚!Z+<d<Ãþ²µoÆ_¿ž™`› í·+ΔS>gB Až )"¤èb*…‘¶™Ù1¹vBcdty-\_0šWG¸2™`gTBcX*£uÈ)(WEd6Vɲ¾­Å€.Š?yÎY!¬ûþn»` '€ fìûê‹´fïÙüaÆIèBÊà -‹˜�ÜÎæ 7Náþ‹~`R‡ñYá8¶ï/yàÛ ú8ÓÿuŸ•Ÿ w½–¿Ú����IEND®B`‚IMAGE 179 ./arch/monster/acid/acid_pool.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�Í�.‹W�ÿ�&¾÷.���tRNS�@æØf���UIDATxÚÝ1À0ÄŠùÿŸÛSÚcˆ*Uõ‰Ÿa}úBÞ¼Ô/L´|j怠.ÙŸóht¡'. vC‹[]Ð’Z.Z`¼hþWœV{7Ͷ����IEND®B`‚IMAGE 166 ./arch/monster/acid/acid_pool.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�Í�.‹W�ÿ�&¾÷.���tRNS�@æØf���HIDATxÚíÎA � DQµûß9c ’! ÜEoéü…òEæò½å…ïÕÀ `?Cvøµ W?P…‹‚°¹Ú¶Ñ•Q‚kDííOé™Í�ßõ4•[����IEND®B`‚IMAGE 158 ./arch/monster/acid/acidsphere.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�ÿ�~¹-‘���tRNS�@æØf���CIDATxÚíÏ1 � ÅPëý-–ØQßšO¡ã«"59ižó0!Ë"2£ömr�v�å…[HïÞ dE~ÌîDÔöž����IEND®B`‚IMAGE 159 ./arch/monster/acid/acidsphere.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�ÿ�~¹-‘���tRNS�@æØf���DIDATxÚí’A �0êÿôðT†v=ŽÁrM(â3…Ñ…Ô™‡„ZQšL±!ˆ í„ëœ÷œ÷º×‰û¨÷XÑ]E����IEND®B`‚IMAGE 159 ./arch/monster/acid/acidsphere.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�ÿ�~¹-‘���tRNS�@æØf���DIDATxÚí’A �0êÿôðT†v=ŽÁrM(â3…Ñ…Ô™‡„ZQšL±!ˆ í„ëœ÷œ÷º×‰û¨çX´êl%Z����IEND®B`‚IMAGE 159 ./arch/monster/acid/acidsphere.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�ÿ�~¹-‘���tRNS�@æØf���DIDATxÚí’A �0êÿôðT†v=ŽÁrM(â3…Ñ…Ô™‡„ZQšL±!ˆ í„ëœ÷œ÷º×‰û¨×X—è ‰����IEND®B`‚IMAGE 380 ./arch/misc/acidspit.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���“PLTEÿÿÿBÖ�)Œ�)÷�){�Jµ�J÷�!s�1”�1Œ�R½�Bœ�JÞ�Jç�ZÖ�kç�s÷�{ç�¥ÿ)B”�!k�!”�!{�Zÿ�µÿJ1½�1Ö�RÆ�1{�!Þ�)¥�Rç�B¥�Bµ�kÖ�k�kÿ�Ö�sÿ�sÿJ½�Œ÷�”ÿ�œ÷œÿ!1µ�¥ÿ1)œ�Z�ºO˜Æ���tRNS�@æØf���—IDATx^ÝÌÅuE1ÀPÙá3C˜û¯.Œ÷É]ëˆÿè0'J²o3iüxí¯¨Õ´Ù 5ªºÿz~ÎY?¼OOoÍÖé‡n½ÍçÍroEvßK4ÎZ±;QE+²º¬Pù òR¡‹uèŒC· !'ƒÙ¢:ä †A-*ª–N(b[ö]‹ë9þPàà1Qæ)1àùs~»£JÇ(O<����IEND®B`‚IMAGE 389 ./arch/misc/acidspit.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTEÿÿÿBÖ�1Ö�1½�1œ�!s�1”�B¥�k÷�B½�1µ�Jœ�Jµ�Jç�R½�Rÿ�Zç�)ç�sç�sÿ�µÿR!k�){�Bÿ�)Œ�J¥�1¥�J½�JÆ�JÞ�)œ�)µ�Rç�Rç)Æ�ZœZÖ�Bœ�!”�s½!Bµ�1Œ�{Þ�{ÿ�{ÿ”ç”÷”ÿ�”ÿ1œÿB¥ÿ)¥ÿ1Bç�½ÿZk�,åK���tRNS�@æØf���ŽIDATx^íŒÅAÃ<ËÇdf†þKK7Û@¢¯lãO§o¤×—ççų0‡ú]?JÉþ‡î~;]ˈñëEÑuÇÊØÀ´”ŒéÃùà%„ 9a|D;¢P†›ö€^â<°Ê4íùl ôl»Fš#Nf Õ€…T­ï÷Ê@#°�s@ÁI ¯×ø]¾w ).z����IEND®B`‚IMAGE 370 ./arch/misc/acidspit.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���“PLTEÿÿÿJµ�!s�){�1”�)Œ�Bœ�BÖ�)÷�J÷�s÷�1Œ�JÞ�RÆ�kç�ZÖ�1Ö�!{�1½�R½�!”�µÿJJç�Zÿ�{ç�¥ÿ)1{�!k�B¥�)œ�B”�1µ�Rç�”ÿ�kÿ�k�Œ÷�kÖ�Bµ�Ö�sÿ�sÿœÿ!!Þ�)¥�¥ÿ1J½�Z�œ÷wjü²���tRNS�@æØf���IDATx^íÌ5ÂP�Ñ÷Ýâ.¨»ìup é¡Èm¦ü¡Mße™le‹/…‡†´”Pí‡ ånàà�i´Öe}­+Òàƒ�cEa7ê¥<óS5CW�( TJ+³\å›-G (q‹£Èó¬ ºBögÁÒ ™Î“…Ü¡‡ß›�ˆi¶fC. ~iô @uê§����IEND®B`‚IMAGE 391 ./arch/misc/acidspit.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTEÿÿÿBÖ�1½�1œ�1Ö�){�sç�R½�Jµ�!s�1”�1µ�Jç�k÷�Jœ�k�B¥�B½�)ç�!k�Zç�sÿ�µÿRRÿ�1Œ�)œ�{ÿœÿB”ÿ�¥ÿ1Bÿ�{Þ�1¥�)Œ�¥ÿ)”÷J½�JÆ�ZÖ�{ÿ�Bç�)µ�)Æ�”ÿ1Bµ�Bœ�½ÿZ”çRç�RçJ¥�!”�JÞ�Zœs½!ƒÌ���tRNS�@æØf���IDATx^íÌEQCÑÔ×v7ÜÝuÿKcl ï49oZ �‹? Ô�µ †K�‘ó|€#.2�ElŽ[Ÿ/œ}ªøJÚrI(h½Ù2‘q.å$%•esŒ<I|¥†áH³)…½Ê°ϧ`µ;ž®lâ&îe·xàÄ ûÓ™�/^#ðSô±·^ÿT´sÔ(����IEND®B`‚IMAGE 382 ./arch/misc/acidspit.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���“PLTEÿÿÿBÖ�R½�J÷�1Œ�)÷�!s�)Œ�1”�){�Bœ�¥ÿ)B”�s÷�1½�JÞ�1{�ZÖ�!”�1Ö�{ç�Jµ�µÿJkç�Jç�Zÿ�RÆ�!{�k�”ÿ�!k�Rç�)œ�kÿ�sÿ¥ÿ1sÿ�kÖ�œ÷B¥�J½�Œ÷�)¥�œÿ!Z�1µ�Bµ�!Þ�Ö�zè"���tRNS�@æØf���™IDATx^ÝÏÅ‘ƒQ `ù!ü̆e꿺­À¾'ßY#ðxÀËÈÂ!øúÅ1K+fW90>€³‚£,àI›¬ÒF¼â ð¢otrà©7"-Ll¯‘ÜÐY²6‚Óž:"»¶àì¾+½,M'–Õþ–½ð?ͱ8_®S+ã˜)¾?Óûg Èïý` y'ôÉR°éïC����IEND®B`‚IMAGE 392 ./arch/misc/acidspit.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTEÿÿÿBÖ�1½�1Ö�Jµ�!s�1œ�k÷�sÿ�)ç�k�sç�Jç�µÿRB½�){�B¥�Zç�1”�Jœ�Rÿ�R½�1Œ�1µ�¥ÿ))Æ�Bœ�”÷½ÿZJÞ�{Þ�¥ÿ1)µ�)œ�Bç�”ÿ�!”�{ÿBµ�!k�”ÿ1œÿB”çJ½�ZœJÆ�)Œ�s½!J¥�Rç�{ÿ�ZÖ�Bÿ�1¥�Rçû5 ���tRNS�@æØf���‘IDATx^íÍÕQ CQùÁ2S˜™9ý—–°vÉý=3~8K2+Ñà  áüUÃÔ&6,¨eåH_¼EyÍxv2\ª´ 'Kr:ÚV–Õ!ZS‰öfŠ´Öó$e< QDÚŸrŽ“ëÝݧßë3^†‹ÕvçØvãa<.À¦“}˜BHWÖÿ}�Ùƒ(ßÇ’����IEND®B`‚IMAGE 370 ./arch/misc/acidspit.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���“PLTEÿÿÿJµ�){�R½�!s�1”�)÷�Bœ�J÷�BÖ�)Œ�!k�kç�ZÖ�1{�JÞ�Jç�{ç�¥ÿ)Zÿ�1Œ�B”�µÿJRÆ�!”�s÷�1Ö�!{�1½�œÿ!kÖ�Œ÷�kÿ�”ÿ�¥ÿ1sÿsÿ�J½�Bµ�Rç�œ÷1µ�)œ�B¥�!Þ�Ö�k�Z�)¥�úÅ_l���tRNS�@æØf���IDATíÁ7‚@�À¿9aɘsöþ§Óg…h¯3Àè—º;¾qôZñ@W7­Úu‡#91j-@ÎBЗûuEMÓn¬ J ˆé¬˜/´‘Æ€|¼Ë“I±ZgæI §ã˜RXô„$I—i&¥Ô pŒcÈ æïƒRrÂ="ŠñÁSžª(^Çèÿ<�F®ƒÌ£ˆ����IEND®B`‚IMAGE 393 ./arch/misc/acidspit.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTEÿÿÿBÖ�1œ�1½�1Ö�){�!k�Jµ�k÷�sç�R½�1Œ�Rÿ�B¥�B½�sÿ�!s�1”�Zç�1µ�Jœ�µÿR)ç�Jç�)Œ�Zœs½!J½�Rç�Bœ�RçBµ�1¥�{Þ�)Æ�Bÿ�)µ�Bç�ZÖ�œÿBJ¥�”ç½ÿZ”ÿ1{ÿ�¥ÿ1{ÿJÞ�!”�”÷¥ÿ)”ÿ�)œ�k�JÆ�ÅNF���tRNS�@æØf���’IDATx^íÌEÃPCQ¿a†23óþ—Vuõ)ÈúÈhÖ%‹–Ýu?oðÉûãéЋ'é¹¼ÄWy3ØíÇSMyÊí–[‡”†sg©T†¬H‡U¥(ê afÌÇbµ¦ ´‰=ñ_Œu4µ@>MGAb‘p¢ ÔÞD‚«?°D�±I�ø?.¡%€ß�]_á¦Ðy1‡Ù����IEND®B`‚IMAGE 304 ./arch/floor/Afloor/afloor.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�1�ŸQ,c2���cD±!!³!Æd���ÙIDATx^]‘Aj1 •½§%r_µ6°~ò@þÿ—X;%_ »,N*Šg“1˜# k(d­tm yž†®‰oâ^4BøÊö¹â½(øuäž/óºâ§ÁQ§’ò@¸4[zÝ¡¥¾hž´Ç"7UœÙo94œ)`¬ JaBÿ¿FÈZ­¨ Bg`šDI3”±i\Á–¢ Hñôgäôè:C‰î0®³‡7+²fÍfl^=šÂÄO­e˜·’m®éq÷dIí¥‹W.û(©½ôè_}’øô$:—Ž����IEND®B`‚IMAGE 308 ./arch/floor/Afloor/afloor.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�1�ŸQ,Òic2���cD±!!¢Fõ×���ÚIDATx^MÐ1NÆ@ „Ñ©¨yóŸ€ÄCoY܃ûŸ‚ÝØTO)üÅ^H.™|"¼j)ïßÁW¶à¿Š&®ÇMÞo.»ÝŠÊv!L–Ùžhq¹Éíx•Ãå&J|´Op9ãT,AFÿ´5h)CRë…˜TÜžèL÷~rÌtŽß çÓ…ÿoa[ÄòÒRc %—du‡¢y¯Îy18}鈉å6¸ž@µð:±pª?|ÃâjÿVo ’R³í·\õwãk¦m«-zšÙ^ ²&ª£~ÃMÊ,øg����IEND®B`‚IMAGE 303 ./arch/floor/Afloor/afloor_blue.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���&,,P44\88`KK}ÿžþ€���ØIDATxÚ}“Q„ CÓBîå--ƺ¸o b‡§Çï k8QpüÕ C…®s›óò©µá é2db WMš¡š+OYÎü7iSÛ“£ü§ïq!š)uK!©ïWk!ßïßBÌIK/ŒLì[W´³° ¿Çhž¼p/ëÛy@Z`Ë‹í ¾{€Ž^nÒ…P-dŸO=Q‹ªBïƒ..}¨Q]ðìŸZ¥u¸XZ“®}P[§iQþ­6OH&ZÜÔ‡}.}(HûPðÕ‡ö=½øÖ' ¶(b½½����IEND®B`‚IMAGE 306 ./arch/floor/Afloor/afloor_blue.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���&,,P44\88`KK}TT¬éþAâ���ØIDATx^MÐÁMÆ@ „Ñ‘‘; �gÀ…ÐÁâüs§ÿ*Ø-Áé)±d’ʼnˆ4[ôk©ïTèå-ô•/SQëÑ¡âF×㻈»®,½]ˆ¢G¹·'jZYÌ:Þ–HfQ¤ëZ©8•òGHÑ?m \ô Ù¦!æš¶':Ó½3íã¤ù¬Gâÿ[Ô±Ò¸hÇØ‚®E…d]ÁÁTÙ«kÞƒ ÍEPE_:bb¾õ#H­'`-ÒN,Rl¡ŸÜÈ´Ú¿ÕÛIçl{ÄŤýÝ“øœéÚr‹ž–··C²‰òÈ_ø.fCkuÖµ����IEND®B`‚IMAGE 303 ./arch/floor/Afloor/afloor_magenta.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���,�+T S_^ed}#|�ö;���ØIDATxÚ}“Q„ CÓBîå--ƺ¸o b‡§Çï k8QpüÕ C…®s›óò©µá é2db WMš¡š+OYÎü7iSÛ“£ü§ïq!š)uK!©ïWk!ßïßBÌIK/ŒLì[W´³° ¿Çhž¼p/ëÛy@Z`Ë‹í ¾{€Ž^nÒ…P-dŸO=Q‹ªBïƒ..}¨Q]ðìŸZ¥u¸XZ“®}P[§iQþ­6OH&ZÜÔ‡}.}(HûPðÕ‡ö=½øÖ' ¶(b½½����IEND®B`‚IMAGE 306 ./arch/floor/Afloor/afloor_magenta.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���,�+T S_^ed}#|Ž.ŒïŒ‡���ØIDATx^MÐÁMÆ@ „Ñ‘‘; �gÀ…ÐÁâüs§ÿ*Ø-Áé)±d’ʼnˆ4[ôk©ïTèå-ô•/SQëÑ¡âF×㻈»®,½]ˆ¢G¹·'jZYÌ:Þ–HfQ¤ëZ©8•òGHÑ?m \ô Ù¦!æš¶':Ó½3íã¤ù¬Gâÿ[Ô±Ò¸hÇØ‚®E…d]ÁÁTÙ«kÞƒ ÍEPE_:bb¾õ#H­'`-ÒN,Rl¡ŸÜÈ´Ú¿ÕÛIçl{ÄŤýÝ“øœéÚr‹ž–··C²‰òÈ_ø.fCkuÖµ����IEND®B`‚IMAGE 304 ./arch/floor/Afloor/ahole.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�1�ŸQ,c2���cD±!!³!Æd���tRNS�@æØf���ÌIDATx^]‘mD! Csí |;àw“tÿ]*àøŸ_$ô„,Ë1J.J‹ÆÌ¢T, ðºhR—DÿФùZ´ 'Šp|hzDQFQ×ð«hÏÖ²µï¤Åhë ÓN!‡)¼§›²J§r£tyPiˆm�.SE9ì€__¼ÂÄÍCÝ47!uü7}›Ý£kž°à=SK}^ô¼õ‘pšr‹îqï# G£o"賄ÉÍ>è‚gtR?=ÇܪÐ÷[[]ü§ J³M¼†Û����IEND®B`‚IMAGE 314 ./arch/floor/Afloor/ahole.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�1�ŸQ,c2���cD±!!³!Æd���tRNS�@æØf���ÖIDATx^UQjÄ0 D‡Bÿ;ÒîfÔ¬å#ô{ÿÓ4˜Mâ!?ÁÀ–ÖA£JÝ鱄ͱø‹ßz6ÃÌņwp[ü¦ñˆMa¥ù¥h&*<ªöNw…ÜÌYsîÝóÑ‚¬šG5ãLϳ ²â\ œšg¥uu„5ót°t—’Kš©áp ˨˕N7t—ôçË‹àÕ!Šú,šwé²oR/yX`\ó`ƒqËc…Ü‘b­Ìm¸h…i-jžïŠÖȵsﮑ)šÑ|ÿ#ýJú9Li����IEND®B`‚IMAGE 271 ./arch/floor/Afloor/ahole_blue.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE,,P44\88`KK}���Ûp���»IDATx^]‘iÅ0 D_9Ò§ÔÚûÏT'qòæáCHÇ A"n¢î¢‰‹¸äpŽ‹pH(Oëw3”íÂ: Ž¢£çó71Çœ=gµ2Šy•üø:1áœwFn¡—ý=C4ŽGƒ®½%Œœ{mƒØ$ê‡Ðèsè/`ÞÖyZozXFlåÈ£´;”ýÊ£‚~XÏxçÑ%£Á‘·Ê•G³òPâìø§ø‚몸aöUÿ� ìR̺Çë����IEND®B`‚IMAGE 307 ./arch/floor/Afloor/ahole_blue.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���44\88`KK}���,,PS²���tRNS�@æØf���ÏIDATx^Ui1 C5D(t‚²'H<@‘µÿ*=‘ææa^@°e§õÐèVUxè!lRl^c‘à®bš±8Àô jñ¢ñI)­0SY tztß®N¸³ç¼§æ§Y=Ÿó Ïeì܇Á„Cs'TèÓ‘TŒí`ë-%—4©átïƒeôñK… zK Ú½ä�O‡h(ûÿPüzKŸ’ý’ªyôayöÁóÕÇ*¹2Ä^ÛpÓJÓZ4TÜïÊÖÊ}󞮕!šYüþf‡î°üH����IEND®B`‚IMAGE 277 ./arch/floor/Afloor/ahole_magenta.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���T S_^ed}#|6T¦���ÁIDATx^]‘iD1 Cå6ø ÒbÐþ3•ÞoîþU1FY†Áp(WmŠ>T¶Ó™u(ÈvðüQpýÕžÊ&þ£Hoª7ëzÊ7­%•´Ë32n‹<õ0Íè©Mä:*F†—‡)¥o ÄÊÖQ:r¦u4+Â7¹nƒÂÿM?á=:÷èµoÑÛ«_“GÛzÊSo}TÆ¢nѧßû¨íÈ‹GßN{®>*80„«™ê_š/±úº*Ù¬ŽÎU�ï‘+pB ËÊ����IEND®B`‚IMAGE 309 ./arch/floor/Afloor/ahole_magenta.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEh�T S_^ed}#|���vçDi���tRNS�@æØf���ÑIDATx^UщÄ0 D§…9F%Üÿ}lÚŒ Øý·rY²Ž@<K†'"“ºHD¨»8t¤-‡±hø¥£t-8yÂZ<L¼SJªèT¶ ‘gûóÛ5cγ{¾[óªvþÀÅy—²aGÞ‹áKó®R#vGRP»n‡CO©½¤µI &ã^PDlWºØÐSj˜Œ¯ÂÞ2¡Œï¢ýû”^!ó!Ux˃‚sÏà ç#rgɱ2'Á0•4µH¨}ÿ+CX£s㥝Ñ%ÓÙþûx;y–ÿÛâ����IEND®B`‚IMAGE 292 ./arch/player/class/Wizardry/alchemist.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿjB"b2"®2¶%Î(Ý*é6ü Rþ._þ>ƒ8–B«R}$–Ø���tRNS�@æØf���¢IDATxÚÕAÂ0 ëfÓx“–þÿ·¬Aœêô†sÑZ^¾B÷>ø]`ÜxY°R ¹ggíÐŒHý¬„`VÈK°†÷» l2 ¢w&Þ¸ 8.,Z°1²À°À�ùŒ}?‹"óæîR»-J2†`‹ù™§‚¹w6¢ÏÀ Á ÓéXÈœ_8O3ZüûuÕ™éùOy.ÿÇœö˜Ö?GO����IEND®B`‚IMAGE 296 ./arch/player/class/Wizardry/alchemist.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿjB"c2"®2¶'Ù*æ.÷9þNþ*\þ:†:–B«R7É39���tRNS�@æØf���¦IDATxÚÍ1nÃ0³Ò˜ä‰¤ôÿßzÁ&ENê gÚìá~>Ânýâ{€/Œ¤}GdôxEu‚É:¼"ˆ, h°¨ýõˆæ‘^kô$0¦S ”œà(,ä({Bû<Ïs åfŒ9朂<‹!“ûGPlo}‹u>J”ÆÁý@…¸}@@+Í —öJýµmb‘ö>³øõùÒåò‰ÍSÿ7ïæB›«üp����IEND®B`‚IMAGE 268 ./arch/player/class/Wizardry/alchemist.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿc0ÿ¥�ï§_Áq89k���� ­�)ç�c(�Uÿ0„9�”B�­RB  µ���tRNS�@æØf���ŠIDATxÚ½Ž11  9ÖŽÿÿ'—2Ž%$˜ÆÅŒV–ßpsŸ÷’ $(»…̪”ꓬušã¹è…iè Â*#‰]PXyÁåI¢”8ð‹ h¯“óE]´Ó„ô Ez~`á/ÿ}ÀŽ{ãºÀôdL »� d‡¾´ó¥AhäÀáã����IEND®B`‚IMAGE 278 ./arch/player/class/Wizardry/alchemist.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿc0ÿ¥�ï§_Áq89k� ­����)ç�c(�Uÿ0„9�”B�­RB 5Ýè���tRNS�@æØf���”IDATxÚ½Aà iC%ÒðÿßÖ&×ÈôÒîaF‹ ”ßðpò|-<·EA}-„-oÈs ±ií>'Ù,vu¿Hçá]„áZèFfBï€OP‚M ¸@ê+Ž÷1¤€ÓA<²ª+¸p I3B戼k¼i „ùOÙ�GU00:ªbŒ‡@‘¸–Œö•QþÉLfYDÙl����IEND®B`‚IMAGE 324 ./arch/player/class/Wizardry/alchemist.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿ�ÿ6ü #°8"`þ?jî¦Zc2(ݾr:%Íb*–CRþ.*æ: Ž9l���tRNS�@æØf���¿IDATx^Õ‘9–à éþ «lßÿ´91 Ì+ © ø¯ÃWˆ{_´ÖÜý.ˆåå¯öÄâ¾÷fb^Ší4)•î.ø09ÏŽ zUQ~žvzUPð|Àéøáa€€¢LœÿN¨%(E¬SàÑÕH {5b J,˜ P W0ã8w m3Sëű ŒÿØ&W°\c8$`Å—;¤‘€ KH>‡ïÏnH¢éÁÝÒ•KŸ³ƒ¬½È»Ì«`øæ¶):P����IEND®B`‚IMAGE 328 ./arch/player/class/Wizardry/alchemist.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿ�ÿ7ü ®î¦Z%Í'Þj2"`þ?¾r:c/“ARþ.B"&Ö: ÕÕP���tRNS�@æØf���ÃIDATx^Õ‘9vÄ0 Åø¹j³gîÚPIÞ4’Ü¥Z€¿!ý =yö“G/"k0ê'hoy·5øÜô&Òhå'p—Ö¶ÁH­ˆ—ŠHø&è¤z! ¢^é‚R ^'ZoüZÕZ‹›EÌ{d°Å™ô‡�Jd(éÓ¯¤§ÞÇüÃ>˜~$}þ…DÚÖ[J°35Ù¼�\sa³&|òl`†±EF×!¨ÕÁßûû¦oë‡ôäIÍ”¹3ýo|^S"§Ÿóº����IEND®B`‚IMAGE 286 ./arch/player/class/Wizardry/alchemist.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿc0ï§_���9c(�Í…?k�*Þ�9ÿ ­�G$Áq8­R”B�B …M�j���tRNS�@æØf���œIDATxÚ½Ð1à CQŠKd+ Üÿ¶1i³aoí_õÌ@ùU//u-Džý]— =`«h)ðä+jÝ&ˆž€l"Xí~¹ûn"fÄ|WS®Ai€‚Vpþa%H#b� „�œ¡„ÁËöÞûyž=¾g¿‹÷Oˆª™1ÞoÀ¨’é�¨–~ÓôF¸ïc�á•$‘ þßø%¡ý¿ÓI����IEND®B`‚IMAGE 285 ./arch/player/class/Wizardry/alchemist.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿc0ï§_���9c(�Í…?k�*Þ�9ÿ ­�G$Áq8­R”B�B …M�j���tRNS�@æØf���›IDATxÚ½AÂ@#¸˜¨ûÿßšƒ— ž´k«8Lµ,?â¶s¸ŸÕ”1üÌ濾Qe5“;F#|Fغ*Ál«ADåÂãtÏ$ĆÑ#£F2‘$!옕k‘Ì” Œ`õKð,tN¾tž<!¢9Y‚þÀˆÐ¹O°à|=C)KÃ6' cŸ;]¿{ æ ÂûXÒOE¡����IEND®B`‚IMAGE 199 ./arch/connect/altar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���„JÞcc÷½÷ÿ0i���tRNSÿÿÿ�@*©ô���fIDATxÚ½Ó± À0 Á§½ÿÎqÇ�¦¤T! îqØÃþ ÈsÀJs�K÷ÞÁ  A@½€ZP+€ZP+€&AŸ„8èô×±œ[×9¨� pP"à �dÀA1ÊcO¯7ìV4;»y@����IEND®B`‚IMAGE 255 ./arch/connect/altar.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���„JÞccÞ¥!÷½÷ÿRŒÿÖ�À“£5���tRNSÿÿÿÿ�û¶S���”IDATxÚ½“Á Å 7ÆúÿŸü¶éâ3â­J ãÐKÑ|) FZÁ%h¶Ò&áÅÝŸIŒ…XÅ5Æð{œ„ð¹rÞ¼T€±ð/d Ðrå Œ®ø!9R`€…çUc Fá~Krœ…‚I(‘� 9èâ´åHØ$T Û€„2 aP$l`5è§Âw¿Þ+à ¼_g����IEND®B`‚IMAGE 310 ./arch/gods/altars/altardevo.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÚ¥ ¡¡¡aaaààà���ÿÿÿÿÿ�@@@¿¿¿Òu ¿���tRNS�@æØf���ÃIDATxÚÍÏу0…añ°Ó–÷à1P‹®Én÷']Œ|eqû§¸®�‘NRÏÈxS=…yÍ qÿ:=f)„×dU‹Ÿ|ñ� Ð À ­×hMY�Y€í»y€ †î»ê¨€ „ùÃÃ1—`ª`Ìú HOà!ïË ,›€ˆ+³.1/ âï fv ‘Ï8æ�–;r  €\àçº ‹Ä…óûó¹‚X§<³Àž§‚u`·_¶é a­ ªÂ§m����IEND®B`‚IMAGE 243 ./arch/gods/altars/altargaea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8�Í� R-���d3�d�‚B'øÅÖÊ���tRNS�@æØf���‰IDATxÚÍŒAÄ Ä¶dJþÿã-Î!‘ eo]WH qýù'´¦}…J ·™*l :Úô!ÄþXî c*h/œm¦ ûÂ’äêi`OÁÅ0›§ 73ŒœÙSp7vcæëˆ]2ÞìGüͽ â”»R 0nHÁÖŒv÷ùº° i.£2+����IEND®B`‚IMAGE 237 ./arch/gods/altars/altargnarg.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'¿¿¿µã���tRNS�@æØf���€IDATxÚÍA€0‹º-ÿ±E‰KRj=: '&“Rþr‚ •‘(, §pt6à T‹ÖÚ­„Ä µîöšõ)�—àt熰½¼\2àUA>R(@º?L8ÂF‡¡0 PȦ i€Â$@!P˜@ArPV…òN…¦ ÌÆ3����IEND®B`‚IMAGE 375 ./arch/gods/altars/altargoro.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Ú¥ ²""‚�����ÿÿ�ÿ×�¿¿¿o³I���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ é`z˜���ÈIDAT(Ï­ÐA Â0Ð,ì *ݲt¡'0îÓÐ.ÝÔÔ 9¶3“ƈný…OçuhKŒ©¹´dwo]àÐZsþhÎÚ¡Ât‚¶Bïû£çô€‡´BÆçèý~|6X…Žxwf˜‡Y ÃW(DÒ_—*`ƒ"øšË?_`ítÑÉFäVæ›Uˆy•žS(@‰'Ïß/`]vëÄÏ]¶z:–9 rˆ9å´j£�¥z¡žð;z<Ô¾7‚ùK^Ò´cL”m@,����IEND®B`‚IMAGE 376 ./arch/gods/altars/altargoro.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Ú¥ ²""‚�����ÿÿ�ÿ×�¿¿¿o³I���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 9±6‰���ÉIDAT(Ï­ÐA Â0Ð,¬'¨¸déBO`Ü·¡]º©7Ð 9¶“ŸÆJÝú ŸÎëЖ3gûÕåö¾4³9,Íœ¿Ú@s»«0œÀ&4ð¾=zM[ØãñÈM@ÿê½ßõ¯ž„'¡ÝÆý˜¡Â® á/ä—0CIøšË ?+°v¸pò€!H¾ÍóÍBšòŠÎ±+ Q'¯ß/`]rÓ Ï]²<+N´ „SœØ( ±^¨'ü G–tëÎü%oeabœ@ PD����IEND®B`‚IMAGE 375 ./arch/gods/altars/altargoro.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Ú¥ ²""‚�����ÿÿ�ÿ×�¿¿¿o³I���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ,ÜÕÒb���ÈIDAT(Ï­ÐA ƒ0Ð,jOÐÒý@ Ë.Ú÷1ø±ÐÔ„»3“¦»í>ÎsP‰15ǯ–æ­ \·Ö´_mÀi¡* wh+4ðþtóœSà‚y–Vˆ@¿ôÞŸûeƒ§ÂS¡!Þ¦Ë$Ѐa„À…Hú òR¼¡D€¾¦{ÃÏÆ¬:<`Hne~X…˜WYá9…”xòüýÖe·üÜe«§cÉ‘"w˜SN«6 Pªê ¢ÇC[Â~#˜¿äuab¤Yg‡Q����IEND®B`‚IMAGE 315 ./arch/gods/altars/altarixalovh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���O�9.êÅ E Iµ@M‰õ(uDCP��6N² :���tRNS�@æØf���¿IDATxÚÍ‘Qƒ D«¸"íôþ×­³ƒì&’ô³ƒ¼ç øø§`ž$¼{°¬ërÞ¿ N‹<› d¡pe¯ØU7¸i‹£óZõÄMh¬žÑ@nО= À #-òüÊ‹@\‚WìCˆ¯ ¿¶ÈçÀ…$ÜNòÖ0MˆŠr]È“`(]ª…�ãé úO91yÌ*;äxiT`ìæ\\‚ 8@¬y¼@#ÍÂ(È# ó„`ó{¾ü>¼9å>Õ����IEND®B`‚IMAGE 266 ./arch/gods/altars/altarlyth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ��Í�.‹W����d��2�¿¿¿GL•���tRNS�@æØf���IDATxÚÍQ Ã0 Cë¥rrÿ9õ¬Éw¦=^’^o ú0»@s¸OÆïçëãðùôŸ;×` x¼Òÿ0üúè<E�v4°?Ýô¯ˆÞÿ!. ´)�‚½�z ¬—�[kÕC¢f/€Ù2°#RB`t¤|… -à€õÞÁÙ!@ tèS€õa6\oÉ€$ ¹?X¯¹����IEND®B`‚IMAGE 260 ./arch/gods/altars/altarmostr.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÚ¥ ¡¡¡aaaÁq8²""���ÿÿ�ÿ×�d3Ó*ù���tRNS�@æØf���‘IDATxÚÍ’Aà kâ²uÿÿà:"d…1ôš‰8 &ñzÈ¡�Í �è13 Q™ Ð&Ô*bf"µæñÏ( f³±pêÛ¹ÙÍ� à ÷@á!§ ýqÅCqQˆR .\wÇwÅ÷Zà{eÀÂ=@!L€k ù(,ácØ?Øuà)ü�sR !0ò����IEND®B`‚IMAGE 194 ./arch/gods/altars/altarnone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���dIDATxÚÍÏK À0 Ñhrÿ;·›"Cüé2ï†^7|!ØÙÀÖ¹ Ô ¨�µ¨> @“ _B:èí‹O¼·sP2ÀA 8Hà s |¬IX·ì(ט(����IEND®B`‚IMAGE 341 ./arch/gods/altars/altarrugg.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vÿ��ÿ×�Ú¥ îv�ÿ¥�ÿÿ����ÒiÍ…?²""¿¿¿»˜?‹_©©©dEafݦ���tRNS�@æØf���ÐIDATx^Å’Ûnà }Î^�ÛIûÿ_pë.N!yÌHû°ÒhˆeÌÆå%ÀkXæ‚¶öý$ä¡¢¥['ì_¤�äÚÖÜvoX¢À¹¹_…†3BŠI_ÈþS&U u½ *˜*`€ögÈMa…vC‚B›P, 9ûYXI*�5Ê_!ÿ "$šR¼C œ…Ê]+æ«0¢†„½úÿ¦»D›ýiB˜BB˜BB˜BB˜‚‰ßô&ðyBâ a�¯Ç����IEND®B`‚IMAGE 835 ./arch/gods/altars/altarrugg.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTE‰�����¿¿¿ë—$ÇÊžÈÊœéÐâA ì? ó>åJ ÝP ãQæR åS äT �ènð. ô$ êUêV žn ç[ ã^ê_êbêd éeãgÙm æiègêiÑqèk ö- è5 èqåqær Öy êsêuåyŠ‹sè|ì|ælë}ë~ñ}•eë‡ç‹˜œc¡]ò’é–ç™ê—¤¦Wñ3 ¦«Të¢ð¡ª°Pî¢!È´ñ¨°·Jô©êª-Ö´ì°õ­ê± ÅÀ0ÊÀ8ïºó»ãÁ ×Á4ñ¾ õ¾Ø¿mk`÷À÷ÀÃÁ±çÈ Â¸ÃĮů¨èÌ åÍ ÷ÆøÇÎÈ’æÐù6 ê> ò< ÞÑ"ÊÌ“÷Ë÷ÎïÒÌÐŒÏΛÏÑíÔßÒZÙÙ'ðÖòÕãÕMÓØpèÝßÞëÜðÝëÝ#àÛ`óßîàØà]çâ%óß Ûçíä êå íå ÜâYÞßrÝâ\ñåêéûçåç[ëìêíêð åñéô ëöìùÌ1@���tRNS�@æØf��,IDATx^Å’ekÄ@@;›s¯»»»»»»»»»»{o7É¥»a/Wè—>˜ãò& “õýÍKN„§ž¬ü”ÚEF@"}5qs¦`ßpoWa§Žgjg]59”ØÐËïˆ p€i»jj1x”Ť‡„ueÈÌàËX‰*Õáoö«Þ  „Béþtqnrlb|h”WÅ|ÈÌÊçž6Ãf±zêÝ.ŽÔ¤€@,$]¾uÞé|Ü2·[ ¤B‚€QŸ}\µwWvœ<œï.p?Ø W÷þõx°¼uúºY^%]ì‚ÀÈèÚíýñóÝê°o’�bE.°È !ì3C‡c†Š"°JP ЂB€Ø�-(@p ù¦_ÿÏ7¹¦0� ¤R����IEND®B`‚IMAGE 747 ./arch/gods/altars/altarrugg.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��†PLTE������¿¿¿[V�ãÈ ÏÌ&ÈÄ•ÆÄŸÈÅéÌÝÑ7ÚÏTÖÏgç`ê` ‰çf ßlâl~àDê@êoå?�íh$änÞrñmƒ‚zæqåpæM îKâQàSªeèSàY†…uïq çuà{æ|é|ã}í{Žlí}èò€ëðç„ì*š—`ñŠžš]å“ë”󓨙园¦Iï–&èžî â¢ ã¤ ì¢ ë¡æ¤õ¢µ¯?ݩ立²?è© â«í«Ó´í° Ǹ-àµÝ´(ôµ�ϼ-ì·ã¹$õ¸ÌÁ'á½"ç½ö½½¬åXÜ]èZÝ^îYÝ_ì] æ_ßbÛeå×å×ÚÔTðÕ ïÖÔÕaØ×UäÚ1óÛäÜ1éÝéà óÞôÞ�ôß�óàîá óáåá,ââ9åä+íê ëììóÎ|õ���tRNS�@æØf��IDATx^Å’UkE1»¹ê.uwwwwwwwwùç½I—%§÷¤…¾t  ‰û#O? «-‹wjáár6¥ªáöþ»ÀoNZ(ë`#ùИÀ§$Î…ÊÚ’Ìuw¤ëÚL €31´ÕÝš··ßyT 8kÓm¹“Õží¤ÍæG«\`ðU4õÄ÷ú‹;…Ã7©�ZsfË(Xé/M/;½â›Q� íïuMáÝÑâšs9P1!o}¾ŠÄñ×c¾H�Q,}ÌÏ,ÏM4 ˆåüåùÂ…ÀÌD+è! úÀ êÇùüƘC‚2€‚*@‚:€‚*@‚" úT�úÐoú-ðÿ|›k$­Ùüª����IEND®B`‚IMAGE 693 ./arch/gods/altars/altarrugg.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��_PLTE�����¿¿¿îl êmëm çm#ímònÝy‹‹råz(Ô€ ñ{ —®—߃DîP âÆÁÁ³ÂÁµÂðóÆ ÈÆŸÇÇœØÎ&ÔÏ(ôÉ ¢•X鉙šb×½™éŒÛ–ã“Ìœ ¡[£¢Zª¢Põ”è–©¥V𗫦Uè›æ›5Ϥ)ãž4é¤é£Þ©é§ æ¦#ê¨á©<ö«ö­ ó¯ ìµĽ=õµè¸ó¶ ܾÈÂ8ÊÃ6ݼHí¼è¿ÎÅ/ï¾çÂê¿+öÀ õÁ åbða Ôkéh}uåX±kíY ê^ Ýb¼9ÉÉ—öÊ ÉÊ”ÙÑ#ôËÕÌfÏË‹ÌÌŠÑ̇èÐ%ÍÏ‚öÒ ð×öØ ãÜäÛ*ãÜIéßåÝFæà5ëà)öà éà:ëâ5ðè õí öî §Sè���tRNS�@æØf��IDATx^Å’ÕjF1»Éïî.uwwwwwwÚ¤i7§9i¡7ø.†@ þHÍÂÙüÎEÏ«^x˜Kæz_¾ D°*)[Z+®Zø) ”s|=Ûïmi«í:I±“H Œ©Æ ßV¹»p¦ �Œ#~{›:þó#CÀG¡alduÝÞ¾ië›,‡OWË‹®Ò@ýð]Z.…º›ló‚µc¨5Z X „ œÇçƒîéý‰ñm~} À œÑËÌ^uÞ€"Aât7FŸˆ‚‚Q0¢LAÀ»¯LzU†‚6€‚}�5 š� æ4 �æàoú%ðÿ¼éÖ†O/¡“����IEND®B`‚IMAGE 665 ./arch/gods/altars/altarrugg.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��JPLTE�¡����¿¿¿èÂ2»né^3è[ëîë(ǘ9æ’äHß•(ì“ê•Κ5ñ”ñ•á”QÎ2ï–ï–õ•ò–ò—ë™Ò}4òwòyõ{Ά4ñì&ò„ì†ߌ$õˆí‹˜}gñkÚ=í:'ÕA,Z ìL'æR7gF…~yïiˆ~vŠ~uë‹,åo¬}UærŸ‚`«ƒUîuèœí›!õšîžñóíŸçž;æž?õžê¡ð ñ¡õ ï¡ʯ:õ¨ëª-Ϫ‰ß«Så«CÓ«}ð­ï® à²%Ì­”è¯1ß´%ò°Þ±Mò²ï³õ²í³%Ø´gȳ¢ï¶õµò¸ñ¸ò»õ»äÀñ½í[ê^ÂÁ³õÎíÓæÒ>p°Ä»���tRNS�@æØf���ýIDATx^Å’Uo!F{Yww÷º»»»»»üÿ׆í…0³Mö¥'ááKN!¡¥9>Ö OÓw›„¥x5w©¤N—eØßþ6Ó«-A0iÜl’=ÝÙó3¶ˆ0¥5ÿœñu¾¶]Dè’Æ¢y>1d-ÎÝËZaäðd2äµ=޺蔊çëÊYZé˜Ý¸– x!½ñYé_ÖËcB&PŽÂ/§Á©õ6`Ƹ½Ky}€ÂÎûîÂÞ6u°@�Ž,Ȩ]P ðã+G|½Q9(PP‚`@A ˆ‚A�ý�  �úàoú#ðÿ|L1{’~ý����IEND®B`‚IMAGE 700 ./arch/gods/altars/altarrugg.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��hPLTE������¿¿¿Œ\ îK*ÖV; �ãk.ðh*ân*ëv*ïv*ëx*ëx-íy+’Žmçz>ç~n‘’kï},í€*¡,ÄËDÃÁ²òÂ"Á¶ÖÌ0ÄÅ­ãÈ9ÍÆ‘ÈËšî\4á€Rì€6è„*î„*½•ÓŒ1í†*⌠˜›jñˆ*šf¤›^Ý‘#Ÿ_ðŒ*èŽ6íŽ(¼ž?í“«¡Vô‘ ¬¢Uò”ì—$¤¨`´¨MÜ 'åŸ"ã<¶©Lȧ3¶ªLì¡1à¢Kã¨"ݨ6Õ§eè©)ï§*çª8ر$à®Bï¬.é­AÛµ%з4ë¯>Ü·"å³2ÀÂâ´FÄ¿>ì·&ظWÛÃ"ÁÈHÜÂ7ð^-ía*…ïa/íc,çf'ðT)ÌdÛc ñ\*ÈË›ÓÓ1ÛÍdÓÙ'ßÑUèÑ<ÛÕZß×BÓÚnØà-ÕÛjæÛ8äß2åß7äß=ôßçå,áå?ôú ´É7����tRNS�@æØf��IDATx^Å’UÃ0»I™ù˜™™™™™™™ÿþeÝô>Eµui¬d˶,ðóÙß+Hà:Ú8Ï©ž¿°“ Ò™«é…ÖòûáÅ“ ]�H× W:üÁ}§¯ÊÛÂG«À¼¼í$–V+fC–i©ÂÞõZÍ™gʬ›ÌÓãÌzä²ì¸¡ö«Þ›…þÜ­¡èé¡#0xCH‚Ò÷¾Îöñ¶âï<xÏA}áóär]ónOø¯@¦æîu{nó¦ï`ìQ`ÆFºšÄÁ*H°R føC¸ž1T²�e�‚4�A€ @P�A“ƒßôO ûü:ða°µ����IEND®B`‚IMAGE 273 ./arch/gods/altars/altarsori.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ���hà��€ÿÿÿ¿¿¿��ÿ±ßèX���tRNS�@æØf���¤IDATxÚÍQ Å0kL¢÷?ñëJ“5Ex¿]„™n%×—¢u’0ª(¹Žæ>"Þf»W÷v Àä±QP ¼ÈÓ ›S˜È)¨&aôÞ§ |³ã} ‹S�—ýsco§P% uxcQNWÄßM(¨˜_;pp "& )J³‚ŽUn,€`øÙ“ð`Ò®vAž,Ô¡ uÀ# >ù\ ¤7ÏÄB����IEND®B`‚IMAGE 312 ./arch/gods/altars/altarsori.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÓÕö�����ÿÿÿÿÿ¿¿¿��€ÓÖöÔÖöÔ×ößáøàâùâäùãåùèéúëìûÑÔö˜0{���tRNS�@æØf���°IDATx^ÍÙ C1DëšîËÿÿlÉÔ¡í€ œÃÄ{ÿêS„Ñ…’ÓPæØ.ƒYw\ÕÖ–I¦¯«NXa=>Ë Á‹pÖ›íQ†™ADòÈû BÞ@ ª�.ñ³îB—*´Iš ðò ¼>±K $îÂÀà)ˆø|…!¡´ (t |îà)ˆøšxíU@Áš²S QP§ }R>“#ß ~Ÿ7ê¤ 9(vÔ����IEND®B`‚IMAGE 275 ./arch/gods/altars/altarsori.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÿ���hà��€ÿÿÿ¿¿¿��ÿ·ˆ‡���tRNS�@æØf���¦IDATxÚÍÛ C1»š‹ÿÿÅ=*dMúØ.$3l$¯Šö)Âì¢ä:Å,oM–<£™ÜBb&–ÅLœwyÙáp ‘[P-Âãp �ê’c^;臰’SŽóë`“[èR…>ܱ©pN[ÄëŽ7((öÞüíÀÁ)�Ï…3—¢´Y�ïÈrŸ“§~ÔqÎUˆ‚<eV § ž*ô¡€>Î#ß ~Ÿ7X½ ÆÖåqî����IEND®B`‚IMAGE 272 ./arch/gods/altars/altarsori.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEa��ÿ���hà��€ÿÿÿ¿¿¿��ÿŇ>W���tRNS�@æØf���£IDATxÚÍQ Ä@C7c§zÿ/¦`œÅýo@Þ#uúySlNö·½"6s¯X÷Þë‹gB‚‚ø$ˆ·Š—Ì)˜•×U¼�:ò ž ìG ï9ê?DáX§0¥ stãP‘\‚®à×;$ܽÄä�‡%K‰¥]`ØÁòÜÉ%�žc‰Ÿ½ ,x¦í&¡ útaŽÌIÎü/xK¾$¥ ¶.ޝ`����IEND®B`‚IMAGE 332 ./arch/gods/altars/altarsori.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��������ÿhàÿ¿¿¿��€ÿÿÿ6WÛ7cæ:XÝ>oÚQâ`€ëg~ìi€ír†ès‘îuî€ñgà2~øÛØ©©���tRNS�@æØf���µIDATxÚÍÙ A£Î±¹ïüÿ§&ö¶³yL¡Š™Í?Eò¡gréUµ#º?—ϪZGÁ1øöâÜ7 b‹ ¯ƒóD˜£µ< §0=Ó4 "Aè¥\˪Á¹ñÈû oQØÀƒ�nË?k…,QÈÓ çx^wÜŒ‚Xk¿ NÁ¬ù+ ¥Q@¡徃S0k>âxÞ£€‚yÂ.P°ž(ä¡`yœ#ß ~Ÿ7¨9 £Ìf����IEND®B`‚IMAGE 318 ./arch/gods/altars/altarsori.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE��������€��ÿhàÿ"‹ý,eä2då4|÷7cæ8cæ9cæ;võ<cç>cè¿¿¿ÿÿÿ^²ó£���tRNS�@æØf���³IDATxÚÍÛ1D¥ï®ÔÿÿX u’sv–t÷O¡:AhU(4anÞßäµ2K€÷386H—Àr/„7¿K¸añ l›Hˆ‚кŽ àêGž®½¥( "àI�×õ…Y²P$ uüƢܿÂþ<ÔÒ1†¿¶að ¨%0HV+PtÌrìà.à Ï= V0'ìäÂ,È“„:.hpË·‚ßç } ]Jù:¦����IEND®B`‚IMAGE 458 ./arch/gods/altars/altarvalk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���cPLTEÿÿÿF&bbbøÈñsgöÃädVÕs¢¢¢ÆI$þº¾¾¾«!âââð´‚B&Îj~~~¹/#þ®¤æj^þöôê¦ á³!"Ã=+þŠ~ßUKæŸ þÚÈXþ×ЧùV���tRNS�@æØf��IDATxÚrƒ �ÁˆUãi½‹F0VþÿÊR 9âD¦ë Ã°¬ N‘"Ïw‘1¤²(rëˆÎ9 SÐDè^ô}ƒæ2 t}Ó\BßÞï„.LYø,ü-_0ò.xÂbŒ c¡ïy?¤ôÂ^†Ã…Èb _À>ÃgDç'ü7½„z(«ø”ÆÍYˆª4‘1†H—,¸ û�ëµuï@L„x‚¥”º]•R4@°€è„q²v¶Ö~5b*Ä+¸°yÌ«¡zô'`Á4w�5O�!¦Â“v!½Î¨k?e#P’¾Yã¯àâX€­…©ÕûÆíFë Äz3šîZœ3.Tï"Ǿˆ¿‰}�ç£äy����IEND®B`‚IMAGE 377 ./arch/gods/altars/altarvalr.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Ú¥ ààà���ÿÿÿÿÿ�ÿ×�¿¿¿ø,õ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  $ØÅ*ý���ÊIDAT(Ï­1ƒ0 �30ôe¶2dìR©#Šl‰µR¬vdéÚ¤ ùÙuL!ˆ®=Ä!.†ÁÎ- CõNÕÆ{c‡ÊÍb¾Ÿ™‹-4$Ò^Di§o`>–µ…H|}•wõžž éø˜µ†øf¿P—5¬hÀŸ�@²0}Ã~+¼/ge ÑY°oôN½·eä„H©ÏÝ 'Nú´àƒ„‘õ<ˆ·uy£zQ²äÑŒs€¼\¸lxÅÖ•n?ѹ¿ð=>cã± Ú'����IEND®B`‚IMAGE 377 ./arch/gods/altars/altarvalr.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Ú¥ ààà���ÿÿÿÿÿ�ÿ×�¿¿¿ø,õ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  pÕò˜���ÊIDAT(Ï­; Ã0 @=„Ò¤³ðà±K¡c0d-X´hoÀM@Ç®¬|I×¾ò¬ds3‡ Ç×ê1œWŸ*47ˆùqa.¶P‘Èé*Êi˜s]Ô"ñí]ÞÕKè,t* ¡~ŠZC…@|·_¨Kˆ4àO� ™¦°ŸÀ Þ—³2†è,Ø7z§Ö[ˆÒsB¤Ôæf ‰'}ZðABÏzÄÛº<„Q=†(YroÆ1@ž/œ7¼`ë•f?Ѹ¿ðßÜc;Å~ÿ����IEND®B`‚IMAGE 380 ./arch/gods/altars/altarvalr.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Ú¥ ààà���ÿÿÿÿÿ�ÿ×�¿¿¿ø,õ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  àjï ���ÍIDAT(Ï­=ŠÃ0FU˜%7HêA…Ê4 )˜· ²å6{„ìæØ;úü’6ÏøÙ~¹P ž_vƒÃy7¸?8°sg¸GÕïOÕf„NÌNsNÓTmÀE¿þÚ·{ 7„BG2'Çí¡c½â üˆÄV¦%<OðBŒm­1ìñ» !Û¨…YÊPû9P-Zü‰“¥Q}=YÄqEJ”„³{ÙªÕæ9P]/^OxÇC;ýóDÞÂ?¿Äc+÷õƒ����IEND®B`‚IMAGE 416 ./arch/gods/altars/altarvalr_intervention.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ )4B„���BPLTE���ÿü�ÿü�ÿü�ÿü����¿¿¿Òуڥ ßÞZáááèç>ïîjóòIöôöööÿ×�ÿý�ÿþ�ÿÿ�ÿÿÿ1Ï)���tRNS�O†«ÅBYzõ���bKGD•² ,���ÆIDAT8ËÍ’Ñ‚ DÉœ6£’Êýÿ_ YØÅàèkãË,sУs¿?cåÏMînïAý¼ -p}Ú®ûãÔääûÞ!‹<Pù Iäƒ*zT¢&òT4mUÓË V;�²¶TùÒ¶ Ä4Þ!m¢üˆGyà UxØz‚ìÉjµŽú²;²VpÙó(Á%K ÄAN’8çHG2yV@æDXÌp  ÀûÙXUytæ.°ó•VàÒÜQƒû}óõbYƒ!T����IEND®B`‚IMAGE 411 ./arch/gods/altars/altarvalr_intervention.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ),>ír(���0PLTE���ÿü�ÿü�ÿü����¿¿¿Òуڥ ßÞZïîjñññöööÿ×�ÿÿ�ÿÿÿOÁ ���tRNS�O†«äˆéÊ���bKGD ³Qc���ÔIDAT(Ï­Ð? Â0ð€qóâ <C‡¸2y…,Í9ºõz'Ç"Ozâ Ä)cáùåÙ¤RW?è׿—×?T©”ݵØäõ굕ΰ<I3T_­4RiéRÀ]/D± ã\}vHíG jâ�ZÀº=â¡è 6¾yz (4ºË#Ð,  €Ù¸?Â|BO!î 8´Vr µAÀr Žyh-—#`¤ã€³@`ƈ¬ƒJÀß— ^É>Þ?Á':ýáœûÔr>Qª¿ä ]¨Éväb����IEND®B`‚IMAGE 411 ./arch/gods/altars/altarvalr_intervention.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ )9S0–Ã���9PLTE���ÿü�ÿü����ššš¿¿¿ÍÍÍÒуڥ ßÞZàààæææéèšïîjöööÿ×�ÿÿ�ÿÿÿ…2œ~���tRNS�O†‰L±���bKGDº�Ù���ÌIDAT8Ë͑ѠEÑJ» Çÿ¬ÐÒÒ9²½z É==™ÂonÛmÚ-Ïín}™Ëkt|ç˜æ=@&�×P8˜Š¥vp‚‚5+&Ô¬ˆ{ eý Aë�|·¹ù6ö€*€¼„ý#ô’œ@ºÔCÀç�1€Çì+Ã<ã‡"êvŸ+`DÔy¦�åœ9<Öyˆ²8"o˳, vÈ6?Û]P¾¶ì|“"¨Çuð€.ùã“[jÀcW†ð/ù¸²Ú–����IEND®B`‚IMAGE 400 ./arch/gods/altars/altarvalr_intervention.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ * .®#���3PLTE���ÿü����OOO¢¢¢¿¿¿ÐÐÐÒуڥ àààéèšöööÿ×�ÿþ�ÿÿ�ÿÿÿjêÆ÷���tRNS�Oð‘9���bKGD ³Qc���ÈIDAT8ËÍ‘[à É›†ª ÷?mÁ`0 J»Ò£<œûÊvnËnnž£¿WÄã¹îŽëîÐÂ0Ý�IÂ1õä#HœspdÍÁ<%ÇkJï�õÞiæç ˜�e€å·«vèR5Aí P.AÜ$�_3¿ ëŒg ¯§Û\Nx�(„P/‘±Î@ªÃËéºï€H¨ò¼ßû@ä…$ŸMºT—é°@;4- Ü|¥ìëÀý2¸É¤OŸ#þ#Í����IEND®B`‚IMAGE 415 ./arch/gods/altars/altarvalr_intervention.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ *=™u���0PLTE���ÿü����OOO’’’¿¿¿ÈÈÈÒуڥ àààéèšöööÿ×�ÿÿ�ÿÿÿé“+���tRNS�Oð‘9���bKGD ³Qc���ÚIDAT(Ï­= Â0€CñåapÌÐtñGv‡.…bÈMܺºê‰ü9Ђà Ï—WûC]ýB>è——Qªç6qdy-,Σ…ÝÄ ˜ˆS †èy"Š–˜¢8 æP~QØ´¡×%~³‡p•p• )ëGɰ9$€†Þò v šÃ�ø ˆ¦è)¿a>#¬g9o�%AîphÖV‚µY–7kŸv÷†Zj4vÁºà*âs¬<—E‡Î€fwAüV ]@ß/è_x †Õf$O¤ê/|�z£°°ù����IEND®B`‚IMAGE 764 ./arch/jewel/amber_coin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��³PLTEyleOOOQQQRRRSSS‹DTTTEUUUŽGGGWWWXXXYYYZZZ[[[\\\•M]]]^^^```™Q™Qaaa›S›S›ScccdddU!eeeV"ŸV žV#fffiiijjj£Z)¤\&lllmmmnnnrrrwwwyyy¶m#{{{†††·~5ˆˆˆ‰‰‰‹‹‹½…9”””ÄŒAÇD™™™šššÅ˜@œœœÆ™AÆšBžžžÐ—DŸŸŸÏ–P   ¡¡¡ËžF¢¢¢ËŸFÓšW¤¤¤Ó›XΡH¥¥¥Ï¢I§§§Ð¤KѤL¨¨¨Ñ¥LÒ¥M©©©Ò¦MÒ¦NÓ¦NÓ¦OªªªÔ§MÔ§OÔ¨PÔ¨Q¬¬¬Õ©RÖ©Q®®®×«R׫U¯¯¯Ø«UÙ¬U°°°Ù¬VÙ¬X±±±Ú­WÚ®Y²²²Û®Z³³³Ü¯[ܯ\ݱ^ݱ_¶¶¶Þ²a···ß³bà³d¹¹¹ººº»»»¼¼¼Ò¿yÄÄÄÙÆËËËÌÌÌÍÍÍåЉÐÐÐÖÖÖÞÞµââºÞÞÞããºâââìì½NNN±{’¿���tRNS�@æØf���÷IDAT8Ëc`‘@NAJD�·´Šnbxtl¨¨y¥œÔذ°¨ˆÐ Aì d’вS¬ƒý}y°ÊK'gd¸e6Ç'„… auAEin¥_vkiyIºyy•¼ÂzŸ²ÒºÎšêBe, Te2²"­ó Š[ÒŠ3„1åÄãc¬º{úz»mlX0Hʉ‡„ÆE¸:;Yzñc±›×@ ÀÓÛÝÞÁÝÑ‘‹fN ^v{>lžäÒãÑ77eœÀÄÆÚÀ‡5œ8Ì8˜ «:jy8pÄ”‰½‹ª˜„ŒH“ޏÒTtöhëoWUÅÝÚšêj#3#�E3Óï´â����IEND®B`‚IMAGE 668 ./arch/shop/amberium_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��5PLTEÿÿÿ����‹‹�îìììëíëìè çî ææçççèèèçÒ •€ èÒ@@@K—Gc¦`f¨cp¯n„»‚„¼‚†¾„‡©wŠ¿ˆ‹Á‰ŒÁ‰ŒÁŠŽÂŒ‘š›‘đŒēő”Å’”Æ’•Ä‹•Æ“–ÅŒ—™—š ˜¢¦šÊ˜›Ÿ¨œž’Ê›¡ª«£¦u¤—§¢x§Ð¦¨­¸ª°º¬Ó«°¤Œ±¯¬²²²³—cµØ´¶´±·¬ƒ¹¨†º¬•ºÛ¹¼˜P¾¤rÀFÀÂÈáIŪcÇ‘@Ǭ{ȦQÈ«bÉÍÑÌ¢kÌ©QέlίnÏ™OÑŸ=ѦOÓ¤IÓ¥LÓ¯m×®_×ÀtÛ¬_ÛÞåܹ{ݬKÝÚ­à±\àÞ²áâÅóùóôùô÷û÷øûøbøl���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 4|¸t���ÓIDAT8Ëc`(€@‘çà÷ s4âç`fffãÓRUÕâaeDÑÏïmîáæj%ÀÄÄÄ«ª"#©ªÊ‰ªÀ×"28*<Ôh‚–ªºˆ’ªB£#£}D´¿{lB 3“ªš„˜¥¡Š*ªë é8'?c =ae)gUT+¼c’âAVˆ&§¦¥˜i ú‚ß4DßÄVäHMyYY9%n4o h»è ‚¼ÉÌò&+#¡pb$% …Ä1ÂEèOLŒT4�ÈÅÿ£Y���£Ó˜ Ö3Ë����IEND®B`‚IMAGE 197 ./arch/shop/ambolt.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���ÿÿÿ¿¿¿I;|~���tRNS�@æØf���^IDATxÚíÑAÀ DQÆÞÿÈ 5¡8eÓ½oËjÇoÜ5S«(cw— î íZV�dB ³n˜F›o€‡êÔ÷…(ô±sÓ@^†£ ʼR( šŸã7©¿[‹ÛÀØ����IEND®B`‚IMAGE 318 ./arch/jewel/amethyst.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���QPLTE��0µµœ œ­­½%½Æ.Æ¥¥ÿïÿ9�9””÷¥÷B�BçeçÞQÞÖCÖ{{!�!k�k„„Î8ÎJ�Jï~ï�R�R1�1)�)�³Ÿ¢¤���tRNS�@æØf���›IDATxÚåÐGADÑ®*è0=98Ýÿ ¾€ñÞòßòéo›‡RÊÏG¿Ê0éîC>fµz@-Û„ ³™ßoÁÜH Ûó3€œÌÀR£ `&×ë‘"@Êϵ§¨µöþñþ©”2Ì)NÓP.cДGæ�‡å¦ìÊs6ˆ$š…b2éBü¹Ì žâ\¤júR­µ÷ôƒ½Æ<¨}Z����IEND®B`‚IMAGE 313 ./arch/jewel/amethyst.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTE��!�!)�)1�19�9B�BJ�JR�RZ�Zs�s„„ŒŒœ œ¥¥­­µµ½%½Æ.ÆÎ8ÎÖCÖÞQÞçeçï~ï÷¥÷ÿïÿ�Ù|å*���tRNS�@æØf���™IDATåÁIÂ0 À,V-£`óÿ‹;E7ð¯ã­£´Þ·1VžQèɾ‘&'Ì…ÆÒ3UN˜2Ó¤çr{bʨ4³àe©ðTsòÚ0çAzú󀂫zw‚Ê®‰´#>õñö@ëÛ}EÉÈ­3;*šÙ—Ð@嶤3Õ … Ą̃4®¤›¦‡ âéd¸ –®ê _´ÖDðƒ^T> kU‡w����IEND®B`‚IMAGE 293 ./arch/jewel/amethyst_exceptional.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���””µµÖCÖÿïÿ���þ–5ì���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ °×fé���IDAT(ÏÍŽË 1 --ðb(ÀÎ6à| ¸�8¤ÿV8±Îv°ï6£‘e¢kÍÝ_÷…ßí,n¥¹ëó><IˆMŒe‡¶µ0I%Ä0$Ûüb£ʇPc$Íý8¡l½ Ñ:ã-5.µG@È} è›4¯LsÎ_b?‚ûjj…Ô˜����IEND®B`‚IMAGE 207 ./arch/jewel/amethyst_flawless.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��””µµÖCÖÿïÿ���×ã���tRNS�@æØf���kIDATxÚíͱ À0 Á<iï¿rˆªdoož¿S«¶{pq¹\ì}tFâ4#¼€ É· Fq|’AÈž.\ž$<r¹’§g€?gx%ðjnŸ/,—ÏâIáòÑŽ&7ÏA÷ü{å#a³ø: ����IEND®B`‚IMAGE 198 ./arch/talisman/amulet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?ÿÿÿÿÿ�ÿ×�ÿ¥�U]���tRNS�@æØf���bIDATxÚÕбÀ@ Aþuôß²eS‘{Ó#BÿsFÈlÝÖðÖ¿lÂÀÑËtÞa+3vî·0h뤎ì‹óZ¥MÕäÄVd ö{Ü_a@/npã€vÃ@So4ýÎÖ{ݺ¥\¶����IEND®B`‚IMAGE 490 ./arch/talisman/amulet_aethereality.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 4­Þ,��jIDATXÃíW±NÃ0}0± ÊØ¡ ›ý aeaÈ ±1wCâ<tÉŠ!ÝPQ³0Dêìl†éˆ£&„6vêNyRɶîÞ=¿»(@Ž˜]މÐú{9´œ ò‰Ç\SÂYÃFdo�0¹›³p•ç ÊA›nÚï„¶Á-Ñ` 슨·ÛÌæª�sUa<9¬¬}~|C<<±ºQÙ,˜ê­XYeÂ&Ìo.ªd<’º(ñúþ…Ó“°+°ëdž ðHîAÍÕ•$ÿØ‹¬RÊòÙ«6Ñ*Ò*þŽhO#úôj%åE ‘_lW¤´¹ßrF�@ñó6ñ;N^¢8K!x®Ï£µÊp�&ŽøQ›ø^¨)!j$ZËï5 •6,ŽømÓ½ÛäJ²  ´Aq«ÄŸäqÄÈ”6ö:J›EÃíRÊ’DAÄ+ëJÂ"MÓþŸ¥‡~�­mö:é<£ª����IEND®B`‚IMAGE 754 ./arch/talisman/amulet_calling_death.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ,D†®ð��rIDATXÃí—¿kSQÇ?¯M‰ITBÓÆ4b…B‹ u:ä 8H°:(õ/R¤‚CqÈ ®êꢫé 8Ø—&¯ ¦JšL›×ä¯CM¤mòò „xœÇ»çsî÷~Ï.Û±´¥iYˆ¢Ö¯.xÅê‚W´’O2ô#8[ÿ-0 D ¢z˜|¸"ueç·.ºDp!bºSBç0„D_³—äoeÈÆGMšA^—1ÒDÓ |ŒºšŠ»s3JWx1_F Ùn?qu„KÓ²'ë¾ínð>ý Õ5ðèè£jËþA*Ÿ·!ªDí™&¬Ü¿\ßLÌxñ¾vHlìqþœ iéD¤1G:§†âàÝýÆ´ %޵á‚Üý#xþ²\DQQ}ªkis´7\¼‡ðMÙ„oÊ&#Zóª( �©Têó@1!›-zYJcoÜn÷5€p8Üt¾~£ÅÓê;òÙ$_·¶í¥_\)è‚Üœ:‘™×rêš–S™TUíÌÓ'#ÎCv<#ìc–é™�þïˆoÙÙˆGnP0N@£T_FGGƒ¦b³µÌ‡[Âáp�x ìëš Ÿ@&›Í2dý»¸¹¹I<_«¬ÏšIj2ˆ€°Øív(æб>`¸Þid€|ų“+‘þé"½S“Þ:=†ïKÅòx<W“Éza]‡ñ ªª:+±ËÀð£ãBTk‹åêišÖR.S; hškWÒûÛüß è¸—»~19À.Tü�ð忼êýüçéë'����IEND®B`‚IMAGE 198 ./arch/talisman/amulet_dark.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ZZZ(((Ç©ä¥���tRNS�@æØf���bIDATxÚÕбÀ@ AŽ×÷ß²eS‘{Ó#BÿsFÈlÝÖðÖ¿lÂÀÑËtÞa+3vî·0hëä Øç=ô^mîœØŠ Ä^äþ zQq@Å­Â@So4ýÎKœ“öÿþ����IEND®B`‚IMAGE 197 ./arch/talisman/amulet_darkmagenta.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE·�®�¬Ê�Èâ�ßÿ�ü’�1 Ÿ)���tRNS�@æØf���aIDATxÚÕбÀ@ A8éûoÙòS‘{Ó#Bÿs®}±u[—·þe¶A ,Úa+3vî0뤎.Øç=´J›ª›[‘Ø»Ü_a@CÇŒMN}0ô;‚¤=Å”O\����IEND®B`‚IMAGE 197 ./arch/talisman/amulet_darkred.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE·�”��¬��Â��Ø|��5Ñ‹Ñ���tRNS�@æØf���aIDATxÚÕбÀ@ A8éûoÙòS‘{Ó#Bÿs®}±u[—·þe¶A ,Úa+3vî0뤎.Øç=´J›ª›[‘Ø»Ü_a@CÇŒMN}0ô;‚¤=Å”O\����IEND®B`‚IMAGE 437 ./arch/talisman/amulet_deflection.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 6-¿‹…��5IDATXÃí•AnÂ0E¿©¬ËX‚ÔnÌz N@×½›ÀñÈ É§€RYý.’14%CÚEFДıÿóŸè£?£™´ùxá¥÷‹wŸ¼ÞH#l§þâ8hæºMÝ$NÒMß\kEüš0È0ÒBý�²UAÝË~ɯˆÊnåê¬ @ÕÄ×vv;H¢‹í)ïžt l ­/j &:£.Bq£^âJ[)úíÁ¦“0k¸==ÉCznPBÈñ¡f>©%U)�»òq¬›¨„èJTᬿ¡Ä×Û–‡ça|ž,ç¦3€sñû�8ûdÓÆÎs ZDPîÅþþGqˆV< .®QŒ?ŸŒˆ§BÓ Ym¸[æˆ÷ÑÇ¿ˆoø¼™¨Ûìý§����IEND®B`‚IMAGE 577 ./arch/talisman/amulet_destruction.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 9d\b…��ÁIDATXÃíU=HÃ@}©ÅA,ê â"4#¥«à Rh@WW¡“C;×ÁAÁÉ5…êÏîR …V\šNJqÓE:ˆð94WÓô‡»4i—~8òÝÝ{ßûÞݳ˜Å”Cò³¨VHÑ ÿ›ù²ð~Q?Àêzy`žl¤ø+Š œ  asFåLˆlqQ¿¤z©Ž¡Â’Ÿõ—²jÙ7±S@6ugáQ0ÕF„Ø2‰Õÿ¾Oô µC¤+}ݳ¡ 2¾MÈÔðz€©T‹úU а›°kV›¿= H$¢2Õ¢9yó; €öóÔÌ�·BGÒL�0M˜»{ ÞîDVb·«�€¥E[ Í„¸æŒ+VñæÙŽÅñßÒ\�’ò™ª ³3²<šVNû9Î¸ÆæáñBOòóCÆÅõÁ%SˆGiðôþIÏ„ÒÃ#¡ó¶!:î±ÌŸ–��…ó4”ä¾×VáöB4žI/õwnùE TÜDZ¯¿ÝʽaŸÙP<Àäí3añ¦ �î“`…u± ³žœîé(©¡yZeñnÁ”#¨'3#Ò÷Y¸ãþ¯¥_8{A����IEND®B`‚IMAGE 515 ./arch/talisman/amulet_empowerement.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ óâ+��ƒIDATXÃí—¡OÃ@Åß] U‚á@ÌlYú%û°þÔzb » 0µxäÍ*®fâ’À C Ê7Ó6m3×q]Hö%M“»Ë½ß½¾»KMmʰî/šÌ>8ÿV}Ußã*ó “ÁìƒÑZÐÑ‹�hߌ„½•k0kð2Àeý+Õo'OA­9ðW •ø)l¦SšíBÛìýÞíX”ƒ*Ž!¬e¡¼ í¶B¸¨F×§E˜ âr'ž_?px° q qõ0ˆ€ª’ùŽàÅ«µzD¾¨%©I�³ Öæ@¶Ý�\™AÔ²z"í¥âa·“A$}»Vŧ~‰¸ »ÅÈC°ÆÝYÈ­|È` 0s ¡'ެ}úD\±Æ~àÊÇÀ•ãÀ•“²6î\ ç佨iœX•ôbG œ˜ãð g³/ã»ÆÈ"j®äô!¢J¬1õHsP—x♇u‹—!Ö"^€X—x±ù[ú×5ý:ËŸ}_ü����IEND®B`‚IMAGE 616 ./arch/talisman/amulet_free_action.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ W««Õ��èIDATXÃíU1OÂ@þ®5Dp7êàÀÀ€ HC“Žn„ €N$¸°08ÿ€a ñ00@¨ 884aQw0Á¡<'+mi LxIÓÞ»ëû¾÷Ý{wÀÎvæÑêù8‘ Z~j9Ôrä'ó²˜TÎ-&†Àð=�HÞvXp™ë ÒANæ72·ÁçDS`[D}+°®Ø¼*À¼ªOr¾Éçr÷}f.T ¬Ì­Èùƒ*B+ëܤy2>À…M”xûøÆéñ>Xìêé•aø=¼wYgTÐòC*l Ôóq2¯ß´ ¨1mrŽËpÁœ5Xñol³Þkoxb¬¬�šX¸ÀùÌëc/mò|÷$ÆÊŠ„²,ÏU¡^D@=GcÚ$�$ËòâÛM,GðtÓ|¤ž,hŠÒÁÚ°é™�� •¢+àš"¡à@bsæÌ{aF:°L¢Òªšÿ·Œiw±~¡m[¹eCÄóµ1•ÅÙÅkL›`1PÙ!¦² nb ~ZôN4P6DZ†Öåü†ÖEf2ÛÊåg»=•V•4EÂH=±¬P)êz¯}߆ÖÅ×ã7vÈAÍèEhŠdUõ®ûݯ �2“WÛÞkÏŠìì_Ú/C‡X¥A e¥����IEND®B`‚IMAGE 198 ./arch/talisman/amulet_gray.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���½½½¢¢¢‰‰‰íííÓÓÓŽ“1¥���tRNS�@æØf���bIDATxÚÕбÀ@ AŽ×÷ß²eS‘{Ó#BÿsFÈlÝÖðÖ¿lÂÀÑËtÞa+3vî·0hëä Øç=ô^mîœØŠ Ä^äþ zQq@Å­Â@So4ýÎKœ“öÿþ����IEND®B`‚IMAGE 686 ./arch/talisman/amulet_holiness.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  Gán’��.IDATXÃí–?hqÇ?¿Ò"E§v;0å å¼Áv‘‹]J¶SA·DŠNΗ qÓ¡fi;:8Ù!A‡Fð Ñ!¦<*´ƒ `\žÃ]BBÍýÉ–ÇÞïÝï}ß÷÷}ïf6³ˆö¢hŠl!ƒëþfAö7 ç<%X¶VÇl4¡yX�`íéžš^å-DZÈY�ÏÚOd“Þ:5Ò›ÿ‰-*** æÚÒï×I—³jT¨ê jjZmÅ!ÿ´D8Îö_#ù\&:G¿ÑWΣî¢ìzŠ&ÄHÑ;BÆW;ÕY0”D,‘RøXq»`>€—;&÷ï€ëºUMÓð}Éð.‹ÐH¯ +ìÛÇRýË,\Ȱ´ü >ðöý%n—¾ÁJ½ x�J©FZ ˜TÝét€6¬¹¼]xôú�­í"ŽC6|ÇK“ÓuÝê½§üýù€?'Mr«‡ÃÁ‹îvÇqÊ€—&YMÓ€S.fvO&ܹ,ðEëq‰ Žì$ Ì%n‰^rÖî¾ï´Óá:@­V{R¯×ذÞô¯àÖÛ†®ë8Žó ø´•RÏ_Rª!´¶mÛØ¶Ýv]·:c•J¥<àòR=1‰Èz_ãÇM6 ˆùT4p”G×õž§=é ˆ  /®\^ƒãœ»‰öØ?$#SÑìâPõ}b�£Ã)¼óvœä‰�Œ~#â$ŸÀ?çÚ'é·ˆ¡����IEND®B`‚IMAGE 232 ./arch/talisman/amulet_lif.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8Í…? R-Ú¥ ÿÿÿÿÿ�@@@ÿ×�ÿ¥� R���tRNS�@æØf���xIDATxÚÍ9�! !ápþÿá5Je(¶a"¥±…ò3™!ì¢dU²* & 7Rµs¸Q4ÕÏyxå2™ûØ¿ÄÈ_ÜSH´†Ð>o�·ÊÁbªHçœ = —´„ñ¯B¿òB}gyŽ¿ùåï ü]����IEND®B`‚IMAGE 197 ./arch/talisman/amulet_magenta.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE·�þ^üû›úùÍøÿÿÿÿ'ü€ªV���tRNS�@æØf���aIDATxÚÕбÀ@ A8éûoÙòS‘{Ó#Bÿs®}±u[—·þe¶A ,Úa+3vî0뤎.Øç=´J›ª›[‘Ø»Ü_a@CÇŒMN}0ô;‚¤=Å”O\����IEND®B`‚IMAGE 651 ./arch/talisman/amulet_magi.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ütM�� IDATXÃíW=H[Qþî ‹qA»¤A è’ éƒâ»A*N*8DIU°.¶@\²8hI»ÔâÒ tÐ% ]EI@2¼¶ êæ .¶^O‡šG¢iì{éò-îyÜóï}çÜû€2Ê0‰½mD1Pö39­PrZ!+û13/S wž@ H*��ÏÔ6W¹" Tˆ`¡xQøÛÍ3D…)ð¯ˆZVà.³™U€™U¡ÍS“³öíäÊ»Oì¦Q™ L˜n¶bκ(æÃöä“\2’KÅ(qpô «ÀÁ†6Ò )Àê@2ß”¿Z¡³ 'ɔĮ h±d íP¤µß Q’ê9çàœ?Ê$ð®$®cuB“9€^= ËÑcÒ€qyžBÞÀo%4TpÎ…µaÓà!½ä³¸Ð뾬¬øê÷Â-±9uŒU>¨Æ‹Î¹SæÂ9€·Â>½¯k‰ÛÇ?“‡j—þÎ'ª]J“D?ùº–sP_Ï^ÿx nóÌØôäAE#¶ª{ðü,ކ‹}u›±éy8õx¿é³Æ”œs·j—(ä j—ˆsnI³`ÑÄö$g³|Ù½Y»à`}Îøy÷'ë¸zF;¬ÑĈÊo)òhT^>#¢ùì.(åùÖ¸[:­:Ü÷–Ü Qþ[ú¯ñ ÈäCiÏÿg����IEND®B`‚IMAGE 538 ./arch/talisman/amulet_power.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 4�È÷µr��šIDATXÃí—±KÃ@Åß5àÒêà"¬ÐA….¬XJºJWÿ§Î:¹'—¬N®,VHÁ@uÑÅIÓÁ!>ÓЄZ›´—"ô[wáÞï{÷îB€E-*b]H~š ÍF…qÖQ^¦bgÄ„XO�€~Úê:·AÚà8ÀqóSÕ¤‹@•90+ÐØü¶¨ˆ¨.ôÕÀ˜óö‰ÊÙ­UlA(ËBø(ÆU…pTµOö‚01ÄSÓ8ñøÜÇÆzââøò^Àâ^HÑOGw«ô.ˆüHxôƒ˜˜þqØÉ¤|ˆDº—RBJ™ˆw«e›[S*Þ3rðÄÍnµlÒ†!hcIJy® `¨óm€È“ä�ÂôœØT¶õž¸Ipô‰<½Æ°*¾ìdRЊ%Ô]Moj®µ{ýê ÝU³¢îjhj.Ýî ö¯‰Ö1€V,YuWÓ¯>V˜6Ð×·q°ü.¢ŠO½ =#÷“˜öÏâ…d+iñ0Ä\Äó÷!Kÿº¾´rCSmÀ0„����IEND®B`‚IMAGE 197 ./arch/talisman/amulet_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE·�ø��ÿ!!ÿEEþnnÐ��çöÙ���tRNS�@æØf���aIDATxÚÕбÀ@ A8éûoÙòS‘{Ó#Bÿs®}±u[—·þe¶A ,Úa+3vî0뤎.Øç=´J›ª›[‘Ø»Ü_a@CÇŒMN}0ô;‚¤=Å”O\����IEND®B`‚IMAGE 544 ./arch/talisman/amulet_shielded_mind.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ;2‡¸ø=�� IDATXÃíV1KÃ@þ®tª›Kɤ¥t±¥ºåÀÅE3ºôgÁ­³ô¸dTpséÐÍ›E¤àbDpÔ‚Ós0W.ñ’æ®"äƒÐÞ{}ï}ù@‰š¸8jy ùsÜ·iܷɤÓù1y l+!Nm�@ûtÄŠ{ó ˆ& ,‚Yù¥·¹ Z˜«"j¬À"³é*ÀtUhµ×c±÷·OØç·,iT¶V˜’G1/Ê„*ŒNvãd †W–Qâéù5°c°ÞÕ=C˜^Hú'‚Ôo[è]’BàW| àœÏŸ" èù¡Â£·IÀ÷À#*kµ†[ŽO–ã‹FÄ9ïqÎbÈ 5HQ«}‘åøè4ë�€»‡W�ÀËå�Àr|�@§YÏ̉Ú(Çò˜Þ\�ööcDDsÉœ\›F¢šgf‹aô]‘›'IŠõ,pQëÌ÷¿ÖÈûG"&ÅéàlJi¹”>Ú'@y*8ç ˆuF‹¶€i—éš½‚ ¥Lö¹jhÎX@^Ï—tÿèü©«"SÂ_’8BÊÄ’J"����IEND®B`‚IMAGE 433 ./arch/talisman/amulet_shielding.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 1aa��1IDATXÃíT¡NQœ­Åñ€»&ÔPƒ»ý,Ó¨FW#IP5µý®Ó3´ ‚â‘ETMM¯é;®w¼wÝÖÜ$——컼™Ì.Р'†wrîžÓAÌé fÈ{âó3G n .R ]Ä�€îãDì”Ï@ÎÀ2‚e÷µðßÇ3¢fŠh°Uaóu@|]ètÏÚòg…øéMòA•6Ä, ùQtêV!,¤ë’ hÞªãÄ×÷/®.Î ÷‡ñ» B’ÿD°X­é.pšì!`:Tµ´Áësb7ªº]ÉE_¹Z!TU¾ô¨RïC¢…ã0"ºçQ D曼ÍÅÞ²½!$íC˜á3½ü[<†ú*|Õ×ÊÀÖ…ˆ§ŸV¡êƒWqn%�¸N’DРA�Ön.ùµèÃX»����IEND®B`‚IMAGE 526 ./arch/talisman/amulet_sorrow.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ³}ðü��ŽIDATXÃí–±KBQÆ7ZB(BrP" tЗx‚–himq(÷æfçv§lË¥?@¥¥]Þ Ñ YPn½!nƒ=SQóÞçsòƒÇãÝ{9ç;ßýÎáÁs(ââ0&eÙû®d YÉR'žP9,óHC6ªP­�$ÏÊ»ÊkHYCŽ#8nß& îõLiÕVà?³©* TUˆ%ý}k_ŸßçwbШ"‚ðÌ ƒ­Ø·î• ‡¡|šê'£‘|ÁÏ/6ëaâ‘.X‚*è$õŽÃ«õtô%A`&>p0M³ûè*°¨C ]°Dë¹Ò~�`Ϧx‚¼¼ŽAÂRjAå^uªm4DV_YöÛ�Ü?n (•JÞ0M³[uý½ À’¯Åfv¶ÿÎ]͉Ihµá²ß&mþ&?Èu6ÖrÌl8xúHq{“é|¼e¼ý!éõ�Àî†E ÔìÊî@ÅÊ]àï%¢“xjWàî hoj¡¦–ñ\™p”!uîŽ9�~�t­äÀ“`ê����IEND®B`‚IMAGE 488 ./arch/talisman/amulet_sustenance.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ *Èñ��hIDATXÃí–1RÃ0EßfB˜IE©(ÖÐsnGñA|�§•O�U* f€™OÉ!&ÉDÙ4ÞÖZÚ¿¿V‚ÑFûg³.‹ª—{훿}*£÷›v œß”{ýrÈ–Ý’:)¸ ¤úç˜/IðcU ¹x�Ó® v�å^P}ÑꂆlÃìÈ!V~áCšl'QhÅù¶îƒöˆ|¤¡~ÕÚ0’™Î" l´5XIU¢¿,ê„XÝéå‰fÀ “JUl@„öÛ€Êʨ#Ù©@�’?–o X¨y¹ó=Äm(_ëCâŒÚÛ¢5èö£ Êû,íØ^8*IÈ1“c.ǵŸÿÝ¢•´†ÌT0“tGméø�Ö’®äX´™I �x¾<½çÔ6!Ó%ð ¼o}ŠP€©�rÎ<eXPÛ«g@©5ÐÜ…HšIÂëa˜GiKõs?Ö¶ìéI6Úh}ÚH”ÀÌЦð����IEND®B`‚IMAGE 685 ./arch/talisman/amulet_unholiness.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  Ë Ç��-IDATXÃí–¿‹QÇ?O®¸¸EÄF‘øóxQ‹•˜³£ 6Šþ¸B-”³´8­„«,,Í¥Òâ°RðO¸ƒÍÅÀ§.§±‘SqY­Æ"Ùu³†»¼Ín—ǃy™ï|ßwfÆ66C{~ÙYD¢ûÊ|EVæ+’$ž2¹,‹å h´*�L?\RÙU¾ŠÈ*²ÀÎG²aƒ@3c - ‰ØLl¦ (Sìéí}¾_í?Tž¾Sq¡ªÃ¨Ì´oÅ>V"dK÷÷ƒI|Ë(L|ù걯…šAÝzí(t ™w„ J©ÁJÚ‰¸yʼn»ì�È‹W¶Q¬‰$�Õpaßg´Öo-ËÂó<\×= ØÚv¨¿Ïà[¡Ùxv[ªÛvï¤\œä»jÁG¨½ÙÅÝß85£f@Dê#è%·´ÖÕÀÿøúO®^[àì½3t:�šÍæ`­`!-�— …ÂÜù#ÎÛ @¹8‰.·þ»ðb×ug‡`¬=;&ªC;$ðAýÛÓ¡ˆÔ•Rv.—¼ÁÉ!Ü-Ë"Ð@*"Œh`Jk=gYù|žÚVøåGñ¼.¸ýC‰Ðä œHpJ¥R5~!8œÍ2¦€°ÚÀÚí6Àé(ØÔ&¡ˆÔ{k!h/ß÷i|úÝÕ�ÐÕËÀò°Õ'e ¬î‡Z§þ²+#ß÷vÖ2û+Ž‹2:”á™TŸÀ Ñl*¾‘ �‚iò±üê%&xQÖ����IEND®B`‚IMAGE 197 ./arch/talisman/amulet_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEPPPµµµÇÇÇÛÛÛìììÿÿÿO†Ö���tRNS�@æØf���aIDATxÚÕбÀ@ Až{õß²eS‘{Ó#BÿsFÈlÝÖðÖ¿lÂÀ6he@;leÆÎ]àmÜ£û⼇ޫͽ“[‘Ø«€Ü_a@AÅ´ uN½Ñô;•‹gW´ÅÛ����IEND®B`‚IMAGE 3017 ./arch/misc/anchor.111 ‰PNG  ��� IHDR���@��� ���¢~„���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“�� qIDAThÞÕXi”–åy¾žíݾuV‡]YŒ6Á¥jR¶ T‘m‘”´xzÒSR===Iš„cM«YÛ¤ñ4J£ÁÚŠÇ‚L„TF£À@˜a–ï›o{ßï]ŸçéÖ4'µF pŸóþ½—ë½Î}_×C´Ö¸”ãã3Çw4~‡)!‚©£ÒМõLžvOœ,Ì`‚¶Œoä/…e{ »özÔÝ­“sÉO.e�!dчZ%PŸQˆ´iÒÈI›±0yT¥é*cZfïŒ)m§ Åja¸âŽ ‘ò®?·~èàþªeêÓåréàÖW†N¼W ŽK< $ÙšÓÐ" /?SŽÀƒC ‚D" ÑôiÓ§M/U†¡\ ñö‡á—k𴌒„^0§éO_<XÜùóùé¥<¼ÖZÛ&ÿA¢Ôþ0Qš2 7Ò¨ú ´¨¦ „¡¡)¥5š@jÑ¡!¨(¤‘elN“#ƽW z©3`Ó¡M )y¿Ãñƒ’ÞD:†‹P”@k ŸÏ¡0ZÒ špÄŠ `R U«×Ó—%��°õ`õí–ׂüV†é‡Ç¦ÅËùŒ¡‰`PŒ ¥µ¾"VIÐDh“(P“wòÔ¯^–;àgãßÞ,¾à­O-¸2ö‘3Ã!·œ²)£Ç&¥àÐŒ‚r%Ø–Hà+?³Ï¿lð³WaÙo̽³P'÷Æà|̘®é˜„Òhq Í(84!PœƒgS[Æ_ÝþùÍÝ}Gÿ¯œ— >³ä–›n¿vrçH©ºÜ«‡­jÄ! íãÇ£0t&8#ˆ�Π c[j\û{jWïûå½äX¿ò®™¯ìýí ˆ:+5o’’Z*h­ÁS)ØÔ†òPA¡`Š”M(iôWOnØuèåç—*Õ“ŠžŸ«Î²çÍR1`‹ŒÁc YÔƒ±bBàp†ŒÅŽ˜ëŸÜ}ò‡—¥¼ïccªÕê /Œ;ýDÏ—°@à œPH”C‰ žƒPúaQ‰¬I^³þ¥¯½xì¹Zï’aÀªE·L9Ñ×·ÄóýEZÉÎA(‡E4²„À¤±”° Í-<ÞÁ€”É{ Mþò\†¿$�øãå¿>éȱ¾åõ0¸7‚¹œÔ�%€Ð 4e�¡”CS–¶<¬¦&ƒ! <d«œ1õc_ÝÑ»õ\ëÿ¿ðøšN{÷žWWº~t_Í÷o‘Z’”!`hk­` @ƒ@Ç”ñm£õøz7J&ªTˆ¹S›Q-»àBŒòTúѯ>¿ï©_¦‹@gg'+ÿxï ’ð•Q¬ŠbÍÒÜ€*êqPƒRP €Ð7è·+ÄnLˆ¿Ä± »(»>*åòÛa"ûûç÷}û—íç§�tuuÑîînÚÝÝ\¨áo6îzIÕŒánMõXÃ0‘<–P±DL4¥0§´ ÝLß [Úo•…‘5‚3ư-œŽ¿kû¾c›¥‹£µÆú?[9Ó-z¿ïz^ŠFáX{æ«uuu0:?6»ýTÿ™ûëUD“\0˜ŒÁR\&P„B*@'2!\lS†±açÑÓ/,½ó¶GjÅÊÚj±h ! •Dã-˜ûá©]kŸØ¸îW퀩½ ñ–2é1 ˆÕ€å¾¹ûë]+v:NÇKòø3#«¿¹?>×ä¿ö¡Éƒ°¶Ì¢Æ%É<HFMA K4•@3B*µæßg‚lN5¥ŸÞôoWWÜû‰Ï” …un©b† ʈ"º1—ú‘ŸDÛÏ‹æxWüùܼ°RpWX™ÌRÇHsî8°m;6ÍìQÃ`­v57µ|¿„³gW¯þfüóÂ創åÊèq»ºº“OÝtS¦w´…¿ã†Þ &áÄ” Ph ‘°¡@(Áõ ýO ì;[{ÿëåæž·ÝU+¾^uk,f€1 Jõ[¦I¶Íš=mçú'ŸÛ}^�€Ow^“–”,³D¦3m¼­!×È9· I,#/ŒSF÷g³¹]U¿¶ÛGipݺ-ñßýõÚ‡èÂXê¾ã§Nö¿þÊ®+•F3 CÎç”QèDF>ÒœÁ¤šÂgD?-,üÃs?ÙónŸè‘©=ö<Q*>!µ†`'Ô¼ôê¡ çUu¾—\µê––<%÷ØVzÑô£„ZÔ²rà\Àq ıŒ¼0x'”r¡PÖííSÈåò¤\­"›ÍD£ÃƒÆ›=‡ñÎÑc ”RZÂ& £°L® `;ýnC›ùüwºû‚wkoéÜÂþ¹üäWªÅ¡?Ô*B" lÓ,¦ÓÖ_|o÷þ¯wÙý~RøÁçMháM÷GYl:éyù\%AÙõPw}$a€Á⨮¸i;¯º ×ÌBÊ1ñòÎÇ‹Ûÿ2‘0�XÈÚ†A_KÖÆ˜Ô6nï)—ÿ—^tûÊŠ[û[·Z±‰ =‘N9oסo\ßñA¼Àß¼®Mˆü;•Yæ†êÆr-æC… ¨JP,”qvpJ)L˜4÷Þs7²ÍÍè9x?xy'JÃh0Mäq† ¾!àÕÜùFõ=-êïv~¼cèìðSnÍçˆaÑøhÆPŸ{zω­ê4Ÿ“z¸óº¶þj´8ÖÖšŠO«W+ð«.d"F1ʉIJå¸rZLÓFÔÐüFÏž}Ýää˳å_ŸÑïSpÅ‚Û?WpK_¨x.Z³âHÚánÚѳé‚:ÏsuƒwÜ<ç³~­ú'µrµQ % ˆPö#x¸kñ˜2y2™,Òé42)ƒ£ÞÒÜòNœÄûLCt{5²¯®êg–.]*ú÷—/ï–Gž.ÏCì>iÌúomÛ»ã‚[ïÀ·|Pì9=¦2Z]0Rú²çzyF´Jµ:*^‘ÒàB`Îìk1¦­ù\'\‰ñãÆÁ0dR6¥`„†Ž“êãÌÜ'êÕáÁ½•zýè Ï>½Â­”¾1Z)牢Z·¿§o7.BüB/póü™ ¡ÕµZÑÔP±´$ êù\ÊF‚Áb ^ø?’€s†bñ,,“"›ÉÔë^Õîï?MlÇBÒÔŒ¦Æ&T¼šÆõéŒEÓ…0ïkjlá´|hò¤«Çì{k_ÂÙ?ýGì¹h/ïÇ€»ïøèÕn®*¶6f›†Ž?ö‚ç9Ç„Ô^CJ�‰å8<—É “6KÛ;ÚÛ'n»jꌱ t¦Œ“™Í-ÍWä³¹”m`ÂD*ƒÒ‚ NQr]PBJ)ÇémÊçÞHÂð•3…‘ž––|- ÃÁ… †QTƒŠÁ ÂÆëØ«O;¦”Ëea›&Žôž@6+àGÑ¢ñz®±å¶´“Θ-ËÎû1›7Ztëäp¹{â¸î—‹V>“ËÏrœìtFø•ÃåJJ&Ìhk/²ùlC¬q}É“×DZþd,Åè©’G’xß³ÏíxöžÅ ·]ôpã̉sƒˆÝÊ)¿BÆuÂ0n˜?o>çäOÀ„ƒÆ¦ϲø±Z½ÚÁ(Z”ȤshÈ6Âukð|/¬Õk_Ú¸qÃúÕ«WÓTJffOŸ?åÄÙSSTÄg·µ¶Î¡¿Š™éFBx.—obI$F!¸•%„$=qÝ_üÀwž¾¨;`ß¡S�è¼ñF{PÄùþS‹ÚæKU©ºAS¹Ñ±,£Ñ4Å!Œ¬Jd«$yÛNÛõ•òˆª{þ7 7k­%� `ô¿¿ý�žY³fmHÙ’im½‚cVÿOúgA0•0´rj4Ù¶ÃSiçøØ¶ñ•óÍ€ÿZðiH­ç¯¢����IEND®B`‚IMAGE 1008 ./arch/monster/angel/angel.111 ‰PNG  ��� IHDR��� ��� ���szzô��·IDATxÚíÖYLyðQT¨rôZ¨ ˆ²ÈzÆø@ñÜèƒ"ŠwÂ_ŒFq!ŠÁ MLÔDñ@”]º†�‰YÊäV,Û]V%E9ÚØ‚Ú–™ahdžv—¿cæÁ'_œj4þ’O¦iÚ|¿ýÿÛù—øææÌ™“_2ü½/6……'?o exø˜Á_ Ìœ9±3O:Fœ>}ⳄO…mÐ�× 8(hú”ìì,¬ÄqqB~/-ýX a̰ˆÌÌÍï· !!Þ¿%¸€®kÊÊnׯ.œ'ðØï[®R*/F©Õ]³Õê‚Ȉ ÊÓjS‰={~ökx JI®ýiuÌ䤤žåK*âcc¢a¢¢fc âü^}·<`þó²Q¢xë&eMAéËÚE¾ˆP©²ŽææÊ$’À•ŠLô[æÆš ¹¿ì¯ŒÕh.£„Á^\_.ø1¥ãNIqÉÜ„¸V|=¸­µ–—ÚÕÙr±V_ycÉâEWü?Ð0ž¾a ÃÐl?tp_¥?ÂåÙÝý ‚aF{mVs£^¯ªŽŒô ÜîüüëÕB[,/†ðÚåÆ71!Zx^‡¡ñç²´Åãy;öüyŸ#--ÍÍàõÙí¯)†qúÌC¦GxO.¤@ð§˜ÑCÃU›Í\Ãqã”×;ñÖnã^¿nÝ0Â)`››š&)Êéu¾áhÊá²Zã},Ö6ì6™þ©E‡Û=θ\._šV;„ð M&Ó$ǹ¹q–ñ:#ÃFcûn~õĸÔíë¯a‰sÿß,Ëzc¢£ù Ï+â¼^ï$¶é¿Þ^ã}¼^Y­Ó‰ýeL|öô¯ö'=ÝU·JJú̀єä$»®¼t¦#Ûê÷:[Há6.Þ™�’æýÁêŠß 41Ñ:R¡0ñá@¯\‘:¸u˦{MuÖÕ×ý‘×ÑÕÖƒ„ØS~û¦tËæôK—,ü†r9¥ËÆPÀ¶fõŠªÃ99;QTðãÀB§Øç@ èdÒ°þp’ì—ˤ¯¤Ò°1áT¼«`Aø]°BXá3¡˜•ɤNRO¡¡Áž÷À}8B„[`âÅ( …:sX~œ¤+A£�#ÜlPH„Ð}ò ù`‚aCBf9ÃBC†± ”ð“l‡£èÿ€…Ðz0A´b5dRi WAÂD$*ˆƒe°6ÂzÈ„ H†�âû|Ÿ¯aÞ_–Ür5À¯����IEND®B`‚IMAGE 1211 ./arch/monster/angel/angel.112 ‰PNG  ��� IHDR��� ��� ���szzô��‚IDATxÚíÖ}Hwðô…ºÚh“M|™ÚnV¨0‹Œ æ`¶ƒý±¡]ÙØ„ZFsN„AëD¤uÝ@i­ZV§QÙæKÑ%Ö%[—hÐÐÚÕ¸,Ö¢^óbî.¹\b–Ô}¯dPFĦŒ|¸àå~Ï÷÷Ü™„·]Ûõ$•–šºöpÇÿ¢ùNx”Ðüǽï›ÎNHcZ$Âixñ_äÂ,,Ã{Ì:¹Py±Hèëî¾ ‘+GGe__¹’ÜÙÖ¶óƒ ÜÑã‘G®çä÷vuïíî®ÄkA¬²£#„Å2·fµ®NŽw öôÔ|ßß/Ź¿¤JÒÒZ³22t™ éRé^œÛ» 8}gf¦Ýd0TsëÅà­Ÿ''†]Ž5½ßçó9ívB£Vë”7nœ»ÞÑ!EóIšøè•9Ý~¹<OþÜœ,\— '¡ö®^?áv:Ø@«üÚµçc ptfêåºË±è¥éû,Ãäúú°^§{­çêUQºDòB´¥4|,V¿+6bÕ-çÏs!ÎÌÍÎÞÄûÝ>š:l6ÍOeÜtb P¤Qÿ8H“nŠõû}A–õàHQO—F¥*ÈLO¯E€ ¥I�G3(>«««ÅnÇÇ2M‘n\FÛìÔTÖŒi’¡~y ægñ3¾Phcƒ… ãó-cñÏËËÊ Ñ° Bà辺x¡þ·ù_ Ÿ×KX– ¾éq»í˜@E¬·à8¡ŸžîõÑ”7„"‘H�E"Ä‚Íjm@Ãn`€V óó=4I²=â#ðÀFw0•ÒXpÃõx–ñ 1ÿŸ¡ˆ`0h)ÈÏCÓu 8ÍÍÍ+þcÖNŸ—¢6Çôh£Áp keò¶R¸ðÕß -t2^¯!(L ‡ÃÌ ……ÃÑÑ;Á380ÀݪM¼oà™‰x\.ÓŒVûÖÙ³Õ�ÉCryÓŠÙ¬ÁÎ-¸xC¡³´¤ä46ÀʳYYn•JÄ9.@$"„Ï‘©±¡¡Ã¼­Vôƒ%{rl¬Ö¼´ôíÆÆ†™›€ŸaîÊËëCóEøãƒS§h¥R逦Ã^’ ãVØ´ju ®ßÍ{ÒÂ"YPc]]Äî],ËssrÚÑ|L2™ÌCD˜{ê±k£X!5ZÕÜ-Íä!^¼ Ä=§×¿?©PœAã.¸ p©¬\hjlTàƒêòw}_j¦U¤V§žàÅ»ÚZ[ù¥ÅÅ•h:F°ƒæñpù“³gßAÐhnÇÓøP= £8%Åœ*[£ßŠ_Àë°Í_.ųy"´ÁX`-E$t¦ˆDÜkP¹<šœx¨€q €F(Øï�{ôo¸UÑ�Á¯æ ð)Ìbä‘PH û½IIûÖ’øû¡P`ÇßÍ8 ê!á‘ãõðÜ„Q4[Àè±û¹ädþ=>?ñŽ·qNMò4À½P�8/ÁI8oÂq¨‚bØÅÛ®íú?Ô_œoìíÄ«¢j����IEND®B`‚IMAGE 1018 ./arch/monster/angel/angel.131 ‰PNG  ��� IHDR��� ��� ���szzô��ÁIDATxÚí•khSgÆßî"нœ$'ç$±IÚ4u‘R»ˆNheÃ|ØíÜT(ö£câåCa^a:‘mõF‹°ltEØÚj$U§‰$­šzibc­¤1MÚº˜&1MNÛÄøœ ì|q_<AÿðãMBÏï}ÎË9ä­™Lf&ÇÔTêõI ? Àðëðû}ddä!‰DÂäeãr9Å däò0‹_ F¯/'n÷mrÿ¾÷¥á@´ð÷9½‘ËìXMø^8{ö‡dóæFþ,ˆþ{këÿ ”!ü.@¯æÖ’ýû÷’ÊÊ a°0\ ®Dð#¬Xƒ`÷É“mäèÑràÀ¹@!¢3 }Šeå!¥Rñ“R¡˜Ã ðÔ×׫õl~‚³ÙìÇíbúÓÏVj¿]¸`ÁOW¶W”kK F­.}x»?xðûš¾¾÷¼^Ïx08âôzzÑ@Ë—k˜®ïvÒ\ãFú®‚eZ m::L›Äç{ð‘õ|×ç;¶ÓQ^Vv1§æ©TÓt€@Ѿ}»²#¦@Û;}!·ûÖÇÕîC§ÍÇ ×þi…‚åT*eÁCv›•lÛº…ˆ.pñÂiiçßíÇÎKíáðømÿðP·Ùl¾‰'µõŒNWž†DÖçÊ…¿à’IqÂÁN»íü_ñØD_:=3•H$"{Ôh4ÆkkkÒú ] diZ– w÷ÌÍâòœW˜46›å×x<êÍdÒ™4& ÆŒ«VùUJEL«UÏh4ÿ tvþ‰6î‰" Ù”J%'&''ŸbMD£Qny}ý ÎÁC܆iF--—€€…èí½Ì_SðÊÁx¾ÿ\@uùŸ³G°ù§—JD"‘”V£á†pŸTW/ éte¶ææ¹øŸ2™ˆØ‡± ¯Û Â9ÇF¸xñ$|¢×ë8Ð_U5ZÈ ãb4Á3Çj1oíq\í²œ;ç§e²~Œ+X&j0, ÔÔT­X±<ÖsÍN‘|ÍomÇ©ukW½Ø°ÈA™TÊ¿âK—Fëê– 455¦Î+ëó&€³À$¡Jä4= •PŠ*yÌ2Ì~ßrÝåð¹nö´ä+<B] 5Fˤd ¸¸-ÈÀˆðAàÉ«�‚ͨ?…êhâ_ð2 šn£ùòC$RT4w¬¤¸ÈÛÀ·ð3 hùhýÀ .  ‹„¢ºñù„ðùl¡èÀðøAƒPàݼ›7bžú,ø¯èP‹����IEND®B`‚IMAGE 1171 ./arch/monster/angel/angel.132 ‰PNG  ��� IHDR��� ��� ���szzô��ZIDATxÚí–oLgÇÍ–, ôÏõJÿ€A„Â2À˜Ša›{¡/–%“8Þ {µ™eÎ%Ó°eÎa˜ÑìlḊbŒÛ˜H c„¡¡[Ú©[þ–˵Àµ½Þ¾×¬I³à ÆeËÉ'÷äÉsù~î÷<¹;âS·eÿž„Ãñˆ˜œtüóÁR‰$‚Óù˜˜šš ¼Þù§®5›‡×páBõskÍS …LD ›­Ö߈î?-|ý‹~·zdd°¡¿Ïøí_Â7ɤҟ:¬`åÂY'ü»¦&A Ñlê¼}»gÙf5ߌHE –� ž�cA~QUušÈÈH Ž‹ _¿„idðwˆxM¦¡ÐàÞs ìB „üj•ê=\‰ó翌Çò· Á[ÚÚ®p7‹qÕbâZZ 5r™,[`ŠXÓÃ%bÿþb¢»ûV4xCáïZ,¦Bí¼Çµ�‰e–eÇø¸’"_/ÞGÝ=tHÊE”u19YKDãé?ì£ÕÊóüT(´BƒŒÝn¿‡-øæ¥œ¤‡ÕçdáÆ&Y¸¼œ\ÈÍU}DQòŒ¨€(5Ðo\…H¸«ëf¨£ãÆãæËŸµýxmX—U«U«YZz¹ˆäOU*¹ÊO(šÊÊJ ”X]œ °¸èq3Œßížs:ý¹[¿«@à´MáÔT»g/9úáLj3g>O ·çV�ï°ß7 ß4Ëý ³ìjooMÖhV4*UP«Õ„’S´üöíÛ\:]ÖѨ@a6.Ð×Û!3øïLÐïsó ³4¿ºº´Ù¬³»õú྽{Vrt:_zzŸ¹s¯ËɾSR,îØ$°Qçëëky´~BèÃøB�³833í+ÈË£UII~HïŽÌ >+{§ ð|MQ¤po\D@Œª««á}´Û Þçs‡hš:><$)8„Ó`ôĉ÷ãM¸Y¸Ö××,c–X– c+¯×Ø–’bGøC¥’ò=[U‹àêœ\]�×1p²µÕ@ˆZÍͧéGÓÎf³Í#Ü î«TI‹ÙY™ž«Wš¶¿òj‰Å<z·RMxáZëå¯~1Ý3;;¤\nÀ\’’¢õúüÉÒ·Þ<YPw$÷EÝat€ÓˆµW.5HÊÞ.­Ø­Ï7CÀŽo‚›Rþ¢Býì×J®|üxDåÿt‚4Q;'V‚«RI☂$ÇdRÉ$þGžà;°€ùc@ âÂ�‘O¸Bx„š¥R‰‹”ËÜr°Õù%p0º&Z蕊'€àv´?€Ö/¡’ï¬!p ˆÑúXZÀ<D¼ññ[\‰ ñNlƒÐ…@¬!q@@LSÀ¬ Ý0â ãÆØubW¬ÀV Áð8Ç <«gõŸ¨?�i¦n!:øfW����IEND®B`‚IMAGE 996 ./arch/monster/angel/angel.151 ‰PNG  ��� IHDR��� ��� ���szzô��«IDATxÚí–kHSaÇßi¥+Ó]Îežm^§-ÍÌnhTVØUÔ2f‰‘Fô¥R! º@,ˆ>”E7¿h v±‚Ò.ìž$Y’”DVT+Äœ&Nj›¦³ÿ;¶¢° z£‚øñ¾ì\þ¿óœ÷œ3ò×Uea!å È�©*-ñ!?YG–É�›.œÚ´‘\ºxFF~¢Ìæí¤¸x7»Û�7ß+çe`p‹ áÃ/N'’$2¸ _KȆ÷Ë@ 8 üý‡ËV­Ê%éé©ìÖ½|+€< &ÓR²k×NI˜Ô±ÒRw†˜<’· bìôŒs±�%%‡dû÷ï#˜¦%Š‚Op°HG¯�/ B±N’êµ’´5X£‘#T ü““g’Õ«óóÒé$*@ÃýD›7?%4?.6¶qÚÔ¨“‘᡺/ûiq "Ø èõÚ™è×h„VH”e-ª·qÎÜî±Fs—¤§éår¿BQäd¿K ?4ToÓë$':a…„ ÁŒ/&Œ¯ËÉκ…}º ÙÆ<üÆõ d‡y‹ ½³’g4O™<é�‚û@x’––Ú’‘‘ꘘoÄkÖá*`Š2Dö@ÀU¿îivvvæÞ l ñýëׯµOŸžä i'(§ÝÎ,¼¨îöå³zn�+ßUP6 Æ^AàTÀ`ˆtåå­t¤¤Ìve™2ÛqÌ0üªÀrâDi9®¸®iI‰cÇŽq…„èûÌæmƒßÒamë~ù²åŽËt °¨ ñqwpµ Ìï5£]xÖ]4¬ªªÒMó½QÞ¹[¢¡¡ví‹7¡/yŽëBúšš­xÍö'%%Ro¸—ÏÎTTøũճÁCœÔØôà^í¸q1=±11Žt€ øBž0©‹+ÎUŸ¾ʯ֜/ˆˆ·jD¡‹>‰¯®þø‘²9„eÕÕßh�wé oV+Y$)ØÁóœm(ˆJ,Ã'` Aa!–ƒN„¿GÞ©”Š7^ :bÛü>Œ¥@#ð|G" áv¥Rñ–çÔ=jµÊ`õ„?§Ðÿ ,ªÁ^@2Ú8µª‹Ò!  xNÏñ¶[@5a]ôŒß­ ØÑ ‡J¥ü8Ú¢PÑÓsP 6?Ö>À ®€óàh×Ñ¥Bq óÓ ìêßÑ90D€D°d€EÀ2Að%ÿëý õ VÛ¸ÛDŸ|����IEND®B`‚IMAGE 1255 ./arch/monster/angel/angel.152 ‰PNG  ��� IHDR��� ��� ���szzô��®IDATxÚí–}HgǵvuESMî.“˜ø’h´n¾õem•Õul°‰Òªc¬ƺQ VÚ­c-ƒÊ°ýÇB}+›µÚ§±TÔµM·ú†Êt/é:kÑ錦y1cb“»}/k`¤*càžËåžçûy~w÷pAëm½­¤A0áúÿ"|(íà<زÜu—ªª"�Ðä ƒÔˆý`<¹ËÌ òA\ ›.×Ô|Õ¦V×··´ä}}áBXUyù†'ÒCV½ùqÿò?ÆoŠºêêƒu5598æ* ikQŸÖ=ššš¼ÙÚZqµ¶öÈ· þó H‚(‹¢é^MŸRÔfü x  8<Ø×w~X«-ææ Tàïov4› ì6›Í¨×ë:5šÞöë×K¾©¨ ¾‰$øû_É‘~˜¬Rý¸+3®>F&Â8(Gè0F, ¬þâÅØ@ö÷ußmŸ1Ì[­#Ž…ÝìÌLó@oovmee„$߆DyA¡>ñ1ßYüÿ>ªQ\zê'ñþPÿw¸Þl³Z†ééÎ;i\uPujn]µÎšçv»ÍépXÐÏÍY,Õ·o+iŠ:.àóË a¥Hrýhûüر£Xm«Ñ`˜°ÎÍš1Αéþîî,ÌPȦ†úRÔoܾ`s»].p.ØlEE…?ðxáuIT"Ô L`XH‘±±1“¿ýú³Î6?o^t88qÖb6ëQ¬@oÁ³ ` §§Îf›w..ºË‘e—JÅ,M ï¡ì®¹Ü¾ûÅ]Ψ(Ú+Dz!Áœ;[æv9^0Ó:Ý ª’¨�¯ùÊ•OÌ&Ó¤?|lt”åÂwîܱ$‹©DìP©TΜ}û¸ß¬D"fŸOÙ¶9– Gõ¬÷µÚs˜KäŸ;P‘½¿kµ]x˜f9ÜÜ×}II‰ ½éi©®ŒŒô%¥RáÍÉy‰U*ã—Š²‡‡‡±¸‹É4Ü×Õõæ yZ°¦úú/ÿëll¼ÆìÙ³›MHP°))É^pÁLvö^¯*1‘ëY¹<š)*,°H¥ÒóØGºo45¥=m{¼±HΖ•†87òwø6vûö œ2Y4“–öSRòû$zn¸K£9‚ñÏ­¤9sÚJ¯Q(â\%%'™™>½H$ò…777ø¸×÷œÿØ'±jáï¾÷Ϋ'¿øtD×xC­þ@&“.PùA|Aþp?~U Áw»o©®ÕŽrç±ò‡IT?Að="½\VM øŽ!Ð Ú¹c¼ï´Ä«æ‹ÅŒ\.óø%–[ýJ%¸ðË äcÇ åŠøXWLŒ"/ž f­ü«¿4€@x–ˆNóù|?2’Û ¥"žIHPzý\*MA®j5 À%ð&Â7ã°låñ¬I*•[$zI’p§¦¦¸°9-ráx.æp^ ‰Šµø,ÁäF §iÊñ`+/|(,lË/$)˜¡(ÂŒóHâÚȵøÝ ”€r°\ð8òA2Ø´ÞÖÛÿ¡ýõ릙Ô|l����IEND®B`‚IMAGE 1209 ./arch/monster/angel/angel.171 ‰PNG  ��� IHDR��� ��� ���szzô��€IDATxÚí–}LgÇÉÞ‚@{w½Ò„±°EÁe€5 "™ÙŒ™,Ë„mþ1ÆþZöÉ’itÙ0ç4nm¼jAA£A`€Âûz•-\‡ ‹-¯¥­íµ…kz½ýÆ-d™ÿغÅÄ_òIÛëóÜ÷ó<¿'×bUñ¼„Õ5þ—š™1cfó.ÀhzàwN§›Æ,–{˜\&C<Jܽ{c˜ßPð³@Ä:ÏP EÄ¿?{öÔSa•@}/(ÈG_C�ÌãrùuØ´qlÏÍö C…×cS‡$!‰$'¿€}e¤§!Yà>ÀK� ‰Ò\cléííZ6Òm ûCuuhí8sæK©V©ŠáÕ@pƒÀ4§¿¯û4M ØIú‡ððœ‹ÎÎXNÎ^L¯?$æ€UI�Z@8žZW§/aÆhÂËAXhl¼r ÞG…åPÆÇkÿFIQU’ÀÁƒrao65¬¤ÈýfóÄÏs>_vØ­.8„Ú±1z$>ÂB-Þ„ ("yûvÕ'ùù¤«²ž:_I›‚|7991â÷s“À +Šâ쵫õÌ@O C Çq|„„„xÕ?AYW »²HQ£V´j5Ÿ²mkiãO Cµ5•Ÿ77_½×ÑÑ‚ÎAðVO{hÌÞ¾I@âÅÝ{ÈÑÄDáA­FƒÝŽŒÒ_G;m‹ Çyl^¯Ýö—@‡ðÐÁRøÉ“ŸaIIÏMQ$£P¢V« hT*¼F³ÒÔÔ4ÊqËVž÷{¼^÷œÇ½„ç@°»ë†/$7»›1FS\ Iü6AàbjJŠ;{Ïî•:ßdbVWWü·äð¸m¢Ë9ï×ë+Ð<<¤Õà D’€]èì€ áà9UqqžŒ´4v~~Îíóq^ŽsÐê¡Óåå¥hîÓŽŠŽZ(,<j€k@IHÀLgefšY–õ»Ý6.ºY›§¬¬D iå¨$ÚÜÜ·8°ßûAÁû­ÅÅE¥J%å©„-[&N§¶žãy>Û¿T^^²ŒæÃ“0 ¥¤ø±ñ²¸'{×ê¾}9ÞK«åÛ¶¾dW©â¼ p`L&“ƒeíë² µµUsX8ª¾^IýÿöûoÆóÞ9ÄÿÜÚ‚åzë¨N—>§¤X_$ b¬½­Ír›io¨¯9«~=ˆDá#†þ\ ¯³£õåO9üúk¯^ÉÊÔ-P ÒCภ&wêÒ‡ßË+¸x¾B–•#¤ú…œ2ЃèÀE�ràcø=pÉd±÷q¹lFA’ãrYì8\¿(Ã" mn0ÐCNh‡›cë¼,ÅÄl¶ì� —ˬ c”Æ„¥ ü0�´¢Ï>XpÀÊíЊ%hƒDšÂ-Ð\´Â%°ý¶Ø˜hKtt”‚pÍÔmÖú‡@%üè‚U£¶t 0û¯r×ÏÁ›À»@&l–Æ<©'õXÕŸ‰!¨S~øø����IEND®B`‚IMAGE 1038 ./arch/monster/angel/angel.172 ‰PNG  ��� IHDR��� ��� ���szzô��ÕIDATxÚí•mlSUÇ¢²·v½/mǺÍma”�– Që’©¡#Š’>B$*‰&@„¨ Q&bX–8e™$êJ"Œu¼®ƒ ¥FËêØ²–®…Õr×Ö»ön´»þÏÒ¿ìS{1$<É/§½oÿßsî¹÷’Ǫ&&$•z8ÍÿR~¿—x½CÊ8=3î„0¹K|¾aEf”¸sÇC\®›¤ªª‚ÐâXv˜CÇG"Aïû–-2wî34<Ÿc™fŽÕØ1nÂÿ§‘ȈTWW’ýû?!õõëÓÌZ„Ó܆@9™¡~8v,{ ÊŸ‘#GHSS#Aè€ÈÆƺ„Ï,b³"&Ó+4œ2K§ÕÎÓé´_ð<ä8æf€UtQ––ÎÿZ•eóW­¨nynÑ¢koÔ•½ÇsÌë’$í–eùsEDü_ViyÞby‡¹½k'#m\ǵa<žþ«ÀHÇãu:¯ýyðà§Ks*±oßîŒÀ/Ñë'!’@x´¢¼üЇloµi[3<<´Àï÷ ­­Íïæ\àýÛˆ½ËF%±D­–— 0i|aù×'­­ß^éîüÒåºñ[_Ÿ3ÆœKñxF`š’ýb–e䪪Ê8Â#zN´Z­×}ÞÁÎpxôfOÏù–_i9zîìÉ⬂/ÙÏÓ@™‚‹WoÂKŠôz½Ë kj¢Ëæq³Ùs»]÷DQ’ɇ±è˜ÓÞuægœ³“Jd%€ 8À´Ï󣘂À¤N§“i÷ d^½Ú ¢IT*•LÅbOWWûaœg�sH6…®e*°wï.¡T ‰ã8*ð¸ûªÉ4‰D¤D".ŽOaÃ9¹Y€T€Bg�áy¸ÿNбdÉóÃ<ÏE!0Xf0 ‚¤„ˆI˜ºxáÔ7Ч߄³s2T ÷wûPm­)a0”^®YPý�OÁßð�—ÛíCBÂç:€ãkH®*NPWÿèÄÀÆ ë>2—ùµ<G×À(£ÑÜj?}Ú×{¥»ÍÖnÝ®çìÃoz:N á‘ ;ú^««ýéÅ•Æ{ø�Å4ÅÅ! ¬0.slX¿öí愈…î_Âá†CKÑõ6žãÆTª¢Åj•Ÿe˜~µª¨Û›¯”ÀK ˜XX˜Òh0@­V݇Œƒî§(R¸p†­ 0:ǣȈ¸ ˆXÓû §|…éø òî#XÀ¶0ø4Š |§V©:Ñu;~Ÿ.p |ü¨ê¼ Þ+Á³ ?sÌ“zRUý[ ýîñ¯æ����IEND®B`‚IMAGE 1000 ./arch/monster/angel/angel_sword.111 ‰PNG  ��� IHDR��� ��� ���szzô��¯IDATxÚíÖmLg�pê ôåh¡6Pn:qâ ø²àEöf‚_Åa†mP´˜˜À’‰nºÑ$&”…wq0Ø`Ý|#Eyic ζÜ¥=®ƒ,Ûÿ’úÕ/ö0Ÿä—»¶wýÿû<×^C^ºqút¹ðy†ÿ³Ï­€NWž‹ÿÂÇ+(‹Ž^ë¸-÷8))!¦¢â‹ÿ*+¿ZZ‰ðÕðtƇ¯]­Õ èt_.%äÇúú§P fÀ{Q ¤ `¿K°¨Vo”òZi0 t`»óÊ•ÉÅ‹µúsçÎú°„ï%ˆ–ËdÕJ…bdƒBQ#@¨TMfùáÇbù “ˈ]ïîˆ?š’œ|sÛVuÓÆ„xå“×•Ê ¤ZXÃKxëÕÆÐ77¿¡E‰ÚÂ}²¶²„¿è#â~Œ\^tª¤D,„Ë勼èëiÛSòÙ§Í *Õ×(áE0‹íƒ·¶¤_®«­{]Ø‹ñû ßèoçdŽüv½ºÝØümzÚ;ß x (˜ÌËÛ39<Ôç8~ìH3á(ý¥‰¦çÆì6KÑh¼£ˆõ!ÜÞÒÒ“>›ÍJY­÷§qì6î<ÿâbÐÂO õ\c¼ ·ÝnÊêó=ž¿woÜ™••åå pôú3~‡ão’¦]~Ë´ùWœS© |Öë nh¨û¼Ýnic˜’e;¼»ssgN‚»¯·w™$]ž9×#†"›mêwœ—Â`-ÃA³ù¯vpz½ ´Çãñgi4ÓŸÊl6/3Œ—YpÓ¬Ó9;c2 äf/¿„¡ŠÁÎ ˜b§Õ2ñ§Ûífããâ¸V ªªô ˲ËX¦ÆÆL]8^Öj0„ûbÜt÷΃·o޶\ª«G0gæRS’†Æú)ŠrÍÜèüdž¢|ðÂñfA_·ñXkÓeªø8!•š¹p r²3§ ì»ÖÛñsÇÕË 9!|ƆïDöç}°5ýí[(0-•HH©D<ö;²[Nˆ¢ >ï©`‹¢&¢ bB"=‰¢æwÅØkø _µ\¨X,rR|zˆŒ’xÞ]ð9¨ø* 3˜~Üf‚B:ðƒd‡FÈçå ¥` Ñ(⎈xÍ1ƒe _ÉA8a|üÔA/Á ãÐÙè‹D×±ß# )³ €M ‡DÈ€÷a/ì†ȇ y5^aüî”Àt'LÜ����IEND®B`‚IMAGE 1183 ./arch/monster/angel/angel_sword.112 ‰PNG  ��� IHDR��� ��� ���szzô��fIDATxÚíÖmHwpû@mm´ILL|˜ÚmN¨0‹Œ½˜ƒÙöbE¡]Ùè|×Ra´0çDÔÕÒ¹1°´V-ÓÚXó¡h£Õj;MƒkWã\¬[ˆzyº<ÝS.—4nûXC ׯÀ?|¸»ûÿ¾ÿß]î·=¶Ç¿)jõØ#nÿ‹â;áCK Ûê¸ëmmJÐJš'$À)xã9²aVaŽn1O6TBŽÔ�ñ7::.êt#ƒƒß_¹’ÔÖÒ²ó¼›ÛÃ;äv··ëîè(Çg¹Ô�™úÁ¯›mÞe·¯ ·övuUÿØÓ£Å¾gÔš””挴4czZZ}ªV»ûv€J±€Sgf.YÌæ*q>©>¸76Úïq»LA–eI§“˜š˜0ŽÜºu¾³µU‹âñšÕ‘÷ʳ>-,(˜{«4G÷ÊÁ¬ œ§†PóÈdõ’$‰4ë®]{Uj€#3†ŸF|÷2CÓOxŽ#>_¿Éh|§ëêUeªFs!ZŽW¤ Ô¦ª>V-¡UM bˆÓó³³wp¼—¥iÁípLMŽŽ–ˆÝ‘ `jb¼—x)>dž÷cKQ~ûÔÝ»yé©©5дV£ aký—µµ5Xí0év¯ÒTÀ‹ó¢â˜5Ê0§¤húztMèŸ-ȱ‘H8̃À±ì*&¿PZR’‚XÀøÝ×ë~Yø™`Æây1øŸ~¯×‰”I½{á¸éÁƒn–¦!Šlll„0±è°ÛëQ°8 €†5óÂBºÄ2ŇaþpÄCt¥Xj�‘¼ÿæÍ:ÜH«¸t ø4a€Á–—›;„¢> Da‡Ãaw‰®EÅâØÒKfó·˜+ýÙÜRƒ¼ý«Ù<‘Ãø‚B¨h4ʽžŸß¿Ùzü÷&'Ÿº].ל rÜF×ßïñXf¦§Ïaž=/ ©O§k\³Z§°r.L$!‹‹Šn£°Ö^ÊÈðÎÍÍEhŠ û}>—-Œ_�ƒçˆa¨¯ïPÜ‹ŽÍKæØÐPueå‡p8l;€>y-'çŠ/ÃoÕgÎ0ƒ!är:¸éܤƒ ,ÓÕ8·´ª[É€jûúz/Vïáy~);+K|-‚¥¢¢Âo·Û£ø}yY¶_¿?>~îùÅ¥‡PAæ¼Éôɘ^…Ûá¸Ás¸¼|ñBCÃm<¨.ã¸:HŒ‹Åhin––£è0,ܰ€wÂåÏÏžýÅÆò@t –TÉÉVµJeß|+~ïÂîXO€X¸’• 2Y©?s ‡ZÈŽU€2 xàònpn~gƒN¨ŒEñxøfÑr›R¡Èå˜ÄÄý®DÙ~B¡;ñ½ûïCÄÇâ?ày¸ƒ(¶ˆÖ/cõóII²Ç2YÂclç°Ï‹.ìƒ<ÐÀËð&œ€£ð>ƒJ(„]qÛc{üÆ_7#Å™(lŠ—����IEND®B`‚IMAGE 1025 ./arch/monster/angel/angel_sword.131 ‰PNG  ��� IHDR��� ��� ���szzô��ÈIDATxÚí•oLgÇŸnÓPàÚ»Þµ¨üQ·±½˜[îŘ Ûb_lĨsiÜK²Íl&jƒÙŒºÿÎbb·�3qP±Zü0" 0•VªbJ)­ÝÑvGïPjý>„&¼˜&†«f‹¿ä“_ÛÜõû¹ßóÜùßT"ñ ÑQùùIôöÞ!@ïóðû}¤¿¿ˆb˜<®::Z+T ä  È  ŠŠ ‰Û}ܾí}\x;¨U+ü%ÞÀ­â l ºßµÓ¦½BÖ¬±Ñýñ/á] ê©B~­ªz’@Âo€�Ü*P^^¦©¬üž˜ÍsRÁ ÀK;I•,Eð ú0zl=r¤ZèÐÍÎ?ޝ5¸:¾•¨]˜€ç¹c‚`™LÆÝ&£q:X@JJÞ'.WcÁTN&“;EÙ"ðÜÇŸ”毫¸¸ý½ùæš9…ù3 jÖ¬™µ „ °|8åÐ]»~x»³³ý¦×ëû[½Þî6LàÀò¥|Ãæœbûœ»a âDÏ$jU]}u à}¾;s]§>ýæëuu…{ E°<#7÷>ã LÛ¶mI”šÕׯw†Üî«'/_júé„£îgË»ïìƒÀ}£QP°$÷´4»ÈWÖÕÎ=¡¯ÿ£æpkëùšpxàš¿·§Éápü•k2Iˆ˜ÍEqŽc“>_ÏxxJ@‰ÇÕ [šOE‡;ÇÆŒJ’$z<î»V«5f³}1òfqq” Ph¸ûJfç´SÈ�yÍÍÎý±XÄ›HŒ%ÆP¡P0j]¼Ø q²@}}-¦q3%¯UkVËr|xddä!º‰D”JJn!¼ M à¤mmé9š)ãIøò„@îÅ qñE–DQ”óóò¨@ ðÑíÛ+÷ɲLR KpÌn'joÆ×ðº "\ñx<a„»wÁ?o¼>wÈ~´Ê�P*¯^8þŒ2Ýåtl¸rùRƒóÔ)?Dz]0 |Äb™X¾léwgNþù*4$]u´ú0³¬lÉÊù–y¸Åêõô…[¸Àr÷£ÒE¿[Q± ¢lÚpŰ똜nÇuëuL€arþx~¿¯: IWø8íÐé˜{«dAv¶–ÞŠ°¦ŽI«�‚¿ŒÑK˜Ä膌€/i OñCDÌÊʼ—“åÇ2Ð)ìtLZ6.àg1 §Žašðù@žÅ´`6X�V€Ï€”OxQ/ê?Q�$Ýõ;Nªf1����IEND®B`‚IMAGE 1163 ./arch/monster/angel/angel_sword.132 ‰PNG  ��� IHDR��� ��� ���szzô��RIDATxÚí–mLuÇÌ4f<ôáz¥lD%†ÁŒ”µ·1IÔî…1QTÞc̲8§Q2J cnú¢<ŒÙ± !ËÌ*Œ‰‚¸ÐŠ ­lËZÊCiY¹+píA¯ç÷H›4f3ÁÖÍ~É'½\®ù~îûÿ÷®Äÿfx~í1@pœÿß“°ÛoN§ýÞK%’§A‘Ãq‹˜žž"¼Þ…»^k±Œl<àøñ#›îtžR(|�”ƒð†Õz…¸~ýÚÝÂ7.°äs«GG‡.võ§ðD™Tú-BgŒ€OËÊJÅý°).á_75‰©óp×à`ߊÍjéŒÈ@ –nƒé<]nbeåÇDfæ£ÑÁ Qá—0ý¯Ù<ú©ÿhX`<ð©Uª*|î;v¬z=8š¿=Þl2½ÄóüŽë¬ãf¾¥ÅX#—Ér°æ(50c4ž$öì)$z{/D‚c s|Ü<‹M¨]ð¸!±Âq¬ßnŸ˜PRäs…»©_öî•ò%EHO×aâr÷Ÿ  „¾9×ja:\¥vrrrâ2–à‹'sÒn9* 56ÉB¥¥äâöíªw(Jž‰ðDð�¹4н‘POOg°£ãÜ­æS™Î·do˪ժ՜F­>U@ 凕üá(šJJн&N=¼(°´äq³¬Ïížw8~û¹W¿#OàµM¡Œ ·s9öö[û‰ŠŠ…¸ ô÷]ðã9ò1ó`f8.àcÙW{{ûXºF³ªQ©Z­&¨PÈŠ"¯dgg �ËÆ.p±¿Cf46‹ÞÙ€q ,»¼°¶¶°Ù¬s½>°{×ÎÕœìl†$å‚(! J|�[AR¬Ö×× ¨~Jle™ ßÏ.ÍÎÎ0y¹¹´*-͇ éDrr²î ±ÏDù°@ìSWW#0´Û aÜAš¦ùùv„OOXÀYP`˜2t¡CìOˆ9OÂõŸS}}Í –a™ã¸–‚õz½þ­[¶L"ü†RI1UU•µ~¿}šLmBuuÅÍÖVã Ïin>1C/ºxšöð6›máVpM¥J[Ú–õ¸çÌé&$`}@à]ðC\ÂÑ„ÈÃm­§>ÿÕ|¹»»«ËAÊåã˜OSR´^¯s¿ôâûß×ù"Õ‹¯€ãÖÂé“ ’’×ŠË z“x'¸)é+È×Ï=ûLÑÙ÷,¨œÀDI¼·&pÇJpF*I½ª É«2©Ä)‘¤ÞÆ{`ç÷)ˆ4-q ƾB-R©ÄEÊen9HIIrãü2x>rÍ_ÆE�Áí¨ßê—Ñ„↤Á¾¿ˆ5<š°�oròfWjJ²Ë ¶PuÍ?*PÆô£nüèÃq# îE Ià^/„×ÿåhûsþóä=`!G5|¥����IEND®B`‚IMAGE 957 ./arch/monster/angel/angel_sword.151 ‰PNG  ��� IHDR��� ��� ���szzô��„IDATxÚí”mHqÇojêÊtÛmwóææÓ´ùЃe¡Iah>dÌ’" ßE¡{!%b¥½Ð ,¬„ò¡(-MÅò©¢”(”t…,ç|زmÕœ}/–‘XÝ^þàÃÿ¸ûÿïû¹ßÝý‰…š¯nߪNÇÿv]EE9p&Ñ:þfFs’(,<Íi'l àw×)‰„ÜÙ‘@)•n©©ÉÃМJLƒ¢yÂ]ÀnÐ�J€—§ç"Þ™Drr"7á—ËÊX»À vÌ�=@ úA µzQPO„„s*‘ÆæD/–g0ã|€‚ÒÒó¼ââ"ǧEÓéëK7ctwHhŠ*ôc˜NÃäúJ¥|„’À3.n#‘Ep^~~ŒîASâ­Ûâý/ˆxº~]HUp ¿ßÏy2¼‚ îärÙ;HؤRjåé;©Úܱ5s¯ø•”¦3w&'Éù|£4-æ9KàT@€Â¨Ë¬è„F[0¾ZµâáÞŒôV̇¤ŽóðÍõ,;5Ö×]»°6zÍY£àuRRâ›””DËꨕZ¶S\‡‹€º««¥Ê`y94Øß˜‘‘¡ÃÓEø$0FE­´:tмaC¬]!PV³™³ðœ‡í7LƉgãã£557?††*§U*ÕgŠ’XY¥2Øž•µß¿Éž®NÁšc`ðúWw hoo874Ô_k2Mè¶Û–Ù ù&of.£zÝäàà›¬K^\½†}½½Oê! S©Bíø×ílXMÍÕïôu/™=fÏ÷ô´íc»ÇÅNèê`ÚZï” tØfm±±1³ÿÁ¬�æSÕ••ž\ŒªÏ»Û"#ÃMáá–?u�s]!Ï]8nÆÂ¿ßPw$((P/¥©qöpHüòôW.–o&œUøðÎÈdŒ–a|-‰Ø8Ÿ�D§ à·» ŸBÆDBÁ{„ΆãÚ{œwsJ8n¼Ã7 …‚1i"I‘ÞÛÛKï`Á¼�g Ä!@'&E&1IZ(tS08vÄ!\ׂZg„{àÆ-`L3:a‰„Ÿ|¼—j=æ €6pxp-à4਽ 4£ B  Ç×A'Ȥ3ºÀ*@ƒ ö€�Ô ,®ÄB-ÔÿPß�¾Õ³_b·Û����IEND®B`‚IMAGE 1236 ./arch/monster/angel/angel_sword.152 ‰PNG  ��� IHDR��� ��� ���szzô��›IDATxÚí–{H[g‡m;êꊦšœsrb­¦ÆÎÍÛ¦Ûji­ƒý±RÁ ŒéÝ* “vt l«ëê•Îi¬°-u]ÝE­h6Ý%]g-8Ñ4c.ævÌIö;Ò@)¤i_xøNNÎ÷¾Ï÷žïœ$b;¶#œ ‚`77þÅw‚R0.ƒ½[]÷ess, BJŽ Qà$Èx„@˜ à8¾EžPö‡*ÙÙÚzq ·W5Ø×wâê•+ÑÍ ;7 dE lŒæ㱇æï)--Å­­8æ…* èë=¯›ŸŸ¾¿´´x£¿¿±»½½òë®. ß$AÔÅÓô¸ˆ¦Ï )j¾Ûx  8951qyF«­àò…*ðæ7†Ô&Ã}ÓápõzÝÈððøàõëÕ_46R(IüÂ× ¤ïT*ÉËÙ¯J”Iã1O�Ê@Õ¯ÍÙh4buª¶¶¤P 'Æ~\1îÚm¶Y×ÚšnueE­?ÜÞÔ+$É·!ÑPr‚è=ûßSñÿºQQsî'ñÎôää·¸Þì°Ù<†åå‘2¹î„" þ®Û¶j¶ºœN‡Çå²`´Z-––‘›74Eðùu°Q$éÆ8>>}º «í7 6ëªó|YžËGÎ:@öt©jпy皃a¼^ð¬9 ee¥?òx1I4¡(L`FH‘ II‰‹þñ›Îa·›Ý.'°˜Ízt ?Ô[ð,(ÑܺÕá°Yí·›aYÖX-,<æøü³ú6šÞFÛ½‰r¹óÕWò<ññ4+ıð×_ªc¼ ÿ²N7…®¤‡*ÀÁS_»ö!6Ò6¢p®3Œ þÚÚšU±XÄJ%b—R©ô=ºŽÏ‰Dx!ýùuȸâèžíŽV[\¢`îPEý¥ÕŽÚ­VãÅÚ'VÇæååúNz—+Èfefx³³³Öж àH@¡H^¯(/wÆÄDܸÿ“ifbtô}äÙý¸Ñ=*Õ'ÿÌÍqíõávØóó_óA€+ì?|ø«LM寀\žà/+-±H¥?ž�;Þ#cßôôdE<n<x±H.ÕÕÌvv\õz½sØÖÜÜ—¼ðÈd þÌÌýÕÕ6£×éfF‡‡+1ÿ™ˆpâÂ…ójð3U.-.v3 cÊÉÉæô"‘h£¸ZݵÁí‰ç‚ÇO¢ø,Ђ*$ãÉ´FS.“I×(Šür£P°x @¸Å—À"è|ø<V~O"‰Ÿ$¾O$¢Ñð¦@ßæóxÞ¿¢…Ô5lD±_.—ù‚[­>\‰O7ýG†”ä$ob¢xHÅþ ÏÑÂe>ŸïãÇÅп"%Ùà€‚ Jp#º´¹æ']<œ€egKS*‘HÈ’$Ádd¤{ÓÒRÝ\qì +Îk!Ñø4þV#¹èiš²ÅÅÆÞÝÇ‹™ŽŽÞû;I V(Š0ã¼’S¸6îiÜ‚=@H /ƒ2p¼ŠA8vElÇvüâ_ŸpÝ(ßë“����IEND®B`‚IMAGE 1194 ./arch/monster/angel/angel_sword.171 ‰PNG  ��� IHDR��� ��� ���szzô��qIDATxÚí–}HgÇO·ŠUór¹˜«l±Ú1µ)º¶vÂÖAûGleë?bÛƒÂ`“vl¥ëZö‡2|©m´"¥eNe5N­EÔÙb¬+IÖj;šøc’&—D/9Í%û>[o”Ñ2fâF¡?øp/y.ßÏóü’£ž¨âù %«„ÿÙY+eµþ¶~cýÌãqSss3”Ív’J$¥àÕõx¬Ä;·)³ù& 4€ ð1£P$<jü©SÇ7ÄU}ßP^^F¾cÀ ì2©ôH$><vðŠáìøøHCÀïTÇ"‘ Šde½@UU}Iä'"tÜ<X,2Åg-æ‰î¡¡þå ãhR¿kjŠ­"'O~EfH­RUãèˆ�¶Q¨‘áFãhÁãøÈ¯Ͼèë»LíÞ]BéõgˆÄ<XУ\&ËkmÕטMFáu‚ ,tt\¸Šó¤¸lÊôtí_(æ´(°oŸT(ÙÅ\S2ô«ujŠç¹ —Ý.‡›Pk2íøŠµœH`yÖÖ­ªOÊÊhoc“,rü„,òr^Ú]´àÛéé©ë¡7¯°ÑhtîÒÅ6óèÈ`•1…Ëd²t`ÈÈÈÀQä(ã¨8¢^)¦£µ:¬U«ùÜ-9µß·µ47~ÑÕuñ^oo7Ù‘«ƒ†Õ˜Â‡†º–Áسc'=™™©àÑj4D@Ðm+¬ýeòç>ç¢ÍÆq~g àrþ)Ð+¬5x?0³}¼tìØç ¹¹90 }S¡GµZMX£R…Ò5š•ÎÎÎIŽ[vð|Èøæý¾Å~"ý—ƒkC® tQ¥%R*;;+¦e7ärY4/7×·k玕í:]Èb1/¬®®„8nÉí÷9£^=¤×7çdk _.ð¾ J Zà^ÅÆó¨ÒÒü…ùù¬Ý>ï ¹�ÇùÂdöhÅL}}-yö¹Î;Гkóµ¤?*+fp Ó´œ¸ÀLqQ‘•eÙÏç$áQëô×ÕÕD×2ó*0 òȵ(@ +ÐÑÑNᘠ©êêªZ¥’ñAànÆæÍÓ'ˆ¥çxž`ù—êëk–)~ Ÿ¡b).¶€„êü¹&é–œl—J•€Àm`¶X,n–u ¬×!´´œž§âQmmzJ '×8&üôc7uà­7?Óé fÓ” ‹ðEZ.7zzl7Œ× ímÍß`ÖAìáàY1üÁrÊ?=|øà믕^(.Ò-0 Úÿ�'¦·ë &¾{ üÜ™I\f6þý>yñ�Rðþ¼Iê}™T2« é[RIê-Ü?”q õ‘½`)%e“S.Ç �©Tâ€Ì„8&Öú'C€…€3w¡KhC"ë% ‹Ô`ù©)ɶää$‚=¸ç­YWF¼ ôcÖœ�30ŠÿJàm°ìï€"ð<Ø$ŽyZO뉪ß´Žs«IO����IEND®B`‚IMAGE 1061 ./arch/monster/angel/angel_sword.172 ‰PNG  ��� IHDR��� ��� ���szzô��ìIDATxÚí•oleǯ€cdÿúçz×ë`[]Ä %è §fj( #ÊŸ4_Ad"Q BFÔ€†ˆˆ˜-K˜2†‰¸b€a‡ a˜¬XËêÙº®…•rkë­½vç÷i®oŒ{c{žä“§÷<w÷ý<¿{®G=Vmb"N%“æÿEÀ碆†î*àtvÕN7Çó!jdd˜òz8 ºÿiîÎårݤÌfSê˜ÑëU ‡ôÙ–¨½ÇsÏÙ²ÅFåæ>EÂó=ÝÄèuè7àxF¶%Z‡ô丢¢œª«ûˆª©Y«"]ð€Ìm”Mw¯oëëÿµÄYâ¨=pàêèÑ#ªÆÆ-B÷�?DÆÐÑWg>½Èe‡ã\¸ªêE ág0Ìá8Ãg,«0 ý=* WjS¾Í›77�†ÁI2^n*ûÂÒŠæg-ê~½ºô–¡_Eq·$IŸ*"‚à<Y‚'½em¶ôí];iqý¦8âñôýæ÷ty<îÑžžî?üxqV%öíÛ-!œ+6'!GxÄTVvè½ÛZZWÞïóyù––¦MÙP½»}+ÕÙá À V„À¤å¹gŸ±·|}íjûç.׳·nõ Е`1K ¤(..VÑ´N2›Ëc9N°Ûí¿{‡ÚC¡Ñ›]]—š<Ý|ì—‹g´_é¼t…”€›Q®ëy$¼Èh4:±riAeeÄfÛ<nµZ£n·ëž |"ñh"ëéì¸ð®Ù™‘ÞÆ $’`YvS˜ä8N"«AëòåÞ@ÀI %“‰d4ött´}‰ëJ@NFUÀªS{÷î’J†!ÀðKUUýápXŒÇcÂøøøú1\“ H@ªÏ3™L+Ðköï¯;̲L¥%%ý<ÏÇE1. S¿^>÷Œò?á̬T�„Ù ·éx½~á‚ùðü p¹Ýî$D|®ý8¿’ÊVK‡ËoÁŒŸÏþ4{ýº5X,K|–!{`”ÖézÛΟ÷^¿vµÕÑfߎUÏ™‡Ÿ8Ñ8+.—³âýÚÚ ¯V¿|êùe–{ø�EuZmýK-KœëÖ®~óxÃ15¥T#ß| [Y†S«‹j5jŸž¦û4ê¢>Œ7VI4V æu:T�h4êûqÊóŠ ¼Âaåxi!»<¯h8á ”?XTXà-(È»`c!ð døF£V·cÕmø}¸@/øð¿¨V° ¼–§A~úœ'íI{¬Ú_ ¶ý(þõÓü����IEND®B`‚IMAGE 1345 ./arch/monster/angel/angelknight.x11 ‰PNG  ��� IHDR��� ���@���LP…œ��#PLTE���çççÆÆÆsss{{{œœœ½½½JJJÎÎÎÖÖÖÞÞÞBBBïïï÷÷÷ZZZŒŒŒ”””¥¥¥­­­µµµ!!!RRR)))ccckkk991B99„„„ÿÿÿ999���111ŒŒ„1))„„{Œ„!JBB””„)!!ZRR„{{ZZR½µµcZccZÎÆZRJJkccRR!11{ss))1ZRB91ZZ9Œ„„ŒŒcZZB1)�”Œ�)!””ŒJB�œ””cZ!¥œJccR­¥{!µ­1µ­­JJ�½­kcZ½½k!!ƽ1kk!RJ1skkss991)çÞ)RRïï½{{s�ÿÿÖ{{„Aˆ<Ï���tRNS�@æØf��ÌIDATx^íÒÕ’+G à‘ši˜Á¸ ‡9ÌÌÌyÿ§H÷ì±×'O‹è¦ë¯þJjËý·J¯D&‘½ÐZIré&8ÔN“ƒ—M^?9ùmã&wسôÀ‹1„§ïýú×÷?ªÉ•·à¬ B†ðá×_üþí;ÒÙ œuÎ7µÇ|õôÉgŸ+{;‚¹0¹{aÄ»ýå›?›T'{€Ód!§I=ÿôjóö9=+éŒà›[�ç‰>>cRÀƒdX˜ C=9/•·Žäv)�´IvòÊM¶c;г`•@rÿa²é—¾šb¨ @%„&ãå󓇔ӿ¨:êö›Î§0¡ìŒYô?Üÿ®ÊQ‚_‰i²å ädlÙwéyÂÒ±Y¶Ê/^×­Og0?ÁÉzdŒ£”oe=áVÇcZ&€Ø:kË‘ÏïäGg&¦C[H€?è\�êÎÅb,•—rQ'9m9Xq�ÉäÀº ‘Öý@ …›žH‰RR>»ûrM^[S,ϪªŒFmy#’úó£,�îïeç ê>¾“’Å)O©èWHgur‡¢ÕÆÐ¢D…ñ‚¢wËhkåѺÓĺ+Qv^;;žú}{ ÀYö ‰ÏÕæ´Æ§Œ‰mV2¶ 0Á`rÚgËl»mŒ‰SŸ65Iò¢ÈCëÔ¶•2^ýyw»¨é8v9¯®GVp‰ÜƒÖ:úX –ÕÅEÓ~‰÷òq-Z!j…ÔݢɪވõöÂÔqLGÆØßJi�@Z–«U#Œˆ eiÎQêSÔp4£¨¶§qKSÆ•-ùضL¯�âÕ*¨OMéï0OڮĆ¡„PÒƒvµZKÕ® icÂæ?œúÃ`è`ujšaÕ°R*í À˜"4°v­?Z‘/$Ç�ÀÚµ)”?,�÷€8(EÌØUÝ2®Âh®¹²è›^õwØÅ䣢D‰M‡0ƒâ(Qûù�H›fˆ;B*2P$€ÎÉ*| Î¢OëãM¡›Q Ë(±ª¡¡%†ô"N•[357`3è X'ÚY)BÚv)Êaþ€é ¶M5ÖsÊÖmG Îòh®EúHʼ}ã&e¢Àr Û覄à’×/CÖI€{ Óh:ºY¼˜ÃüÈ<]x�…Ùô}¶ MÂñq…ì·6Ù…uŽ%Y(Ð,Ú×Y¡ò]ÈjÎit-ë=Ø^ŽWÃ.T‚ýä_•—t¿¼äØíÓûL¼qtÛS‚ûXÅ(ù/ÑA59â o[ÁáAÖÒ\fÑ¿ëÿúóþQ¦–P.À����IEND®B`‚IMAGE 188 ./arch/system/mood_floors/angry_floor.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÖ�)÷½ïmoì����tRNSÿ�å·0J���cIDAT[cø Hÿz†ÿÍ€¬‡‡ÄÏó@âÏ| ql#8üH<~Œ¢Lüà˜Äñ@bþ ±ÿ¦:ñs[r>÷©kAÄÛù –*ïgø¶t-Ø–»M1�ñßqRkš[����IEND®B`‚IMAGE 142 ./arch/monster/insect/ant/ant.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-���üœÊØ���tRNS�@æØf���0IDATxœc` |€1x˜€LM]+ Œi³ †3g 4³Áa¨bƒ³U0��#Öñ*â����IEND®B`‚IMAGE 142 ./arch/monster/insect/ant/ant.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-���üœÊØ���tRNS�@æØf���0IDATxœc` ø�cð00-�3˜šºV@ÓfA gÎ@hfƒÃPÅÐÏDÒ�yñŒ.k����IEND®B`‚IMAGE 159 ./arch/monster/insect/ant/ant_egg.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V���ÿÿÿÿÿ�¿¿¿ìcÊ���tRNS�@æØf���>IDAT(Ïc`þ€QPP…/lll,€,`ÄÄÄdˆ$"¬�ÈJ„Œ˜˜•‘” Q,111Ägí�«Ò¸å—š����IEND®B`‚IMAGE 691 ./arch/monster/insect/ant/ant_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���oPLTEµÆ÷kBŒZ!¥c)½s1Æ{BŒRJ!�œZ!c1�­k)���B!�{BÆŒJÖŒJÖ”Zç¥cïµ{ÖœRZ)�Öœc1�ç­{k1�ÿÆ„ï­kç¥sÞœc﵄֥k÷ƌ޵„ÿÆ”÷½ŒR1�ÿÖ¥Eê���tRNS�@æØf��òIDATx^mSWvÜ0 {§Ú—”ûŸ1ŒWÞ(~ÉÌ<`† §¯Ó·[?9qÏy=ÖºNá#{œ3¦c€U« x’C ¿TŒÖ‚BÔð•Çdmà HHÓ|¨xÈ‹v·k°a£áä”à=va´öxþ¤œð„k Võlã›pI>Óѧ�:X»Zìn¢)ü¾4Sú³Ä¬ÀúlP*ìè˜_^Þ¹ÕêðóºÂ  cÜ•2 GíTÜ_ù•ZÍsаGòJI}õ­mii8=¯`hXpWbص[»•[a>Œh=$˜!“+nsîgáÛBÇ0t„h1F�gœw©Ôvño/[êô1‡ÙFk`è‹Î‘tÉηº´·æ¯øp ó¼®É'¥TjÛÂõG£C¤±�h:ÚÙÅ,í^¯õ—šh’‡ ŒÎËΞ]¥ÚÊV‹ß*>g €“”s/BÆ7¾×ßG‹«èãì²È=§j.ƒ±,0éƒá€€X°‹Ïi+o[»d:Í›A$3Þ³ÛR¥V®žNO™dºä(=åÖ p|†Ãª‹Æ'®ù¯†‹ÏµÒt�éL,ì1åº\s%üòìgÈÜ3^%u!<}ü¤LpÚ¡ÃÈ~ûSǦgZN>ä ã©ï÷ñµì,hÛÅÆ#©����IEND®B`‚IMAGE 144 ./arch/monster/insect/ant/ant_larvae.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���5IDATxœc`ÀÀ�¦£¦Š.1³VF­t�3V­3XCW­ …(ŽZ�ÑJgw�5¹ Y¬à™ü����IEND®B`‚IMAGE 145 ./arch/monster/insect/ant/ant_larvae.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���6IDATÓc` / ÐŒQK@4kèªUSÁY«V­t�3VF¬aSC—‚³†°0 ��—® „ó ì����IEND®B`‚IMAGE 365 ./arch/monster/animal/ape.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���¢R‚Bþ¶’‚q%b2ÂbòÆNÒªR¢*Ô¢bbþ‚‚þÒ®þ‚Âbb9;È���tRNS�@æØf���èIDATx^“ÛŠÅ íž‹&ç¶ÿÿµ› ²ft §}¬J Ëw“ãÜ 2 ?"³ R÷§Ôd`—gð!ä�ð* x2¶,�‰G œ„ÕØ®‡€¨;Sã3 ´ÖŠOÉO|Ðùë8CH :ÀÖöÃØÛzé@[(¯5œª'™»¡ÚD‚ç_C"FU=¸‚V’p1bdɃàŸae™÷‚‘F®\=0ûÊ:³«aÀÄ{ Î “ƒðÌ‚#½jÉë…Èó a¤@¶¤<ÀÒ ,À^ëû½põ3QnVH½Áÿð_Tý¨—¸!€����IEND®B`‚IMAGE 351 ./arch/monster/animal/ape.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���¢R‚BÂbb2Ò©SòÆN‚r"þ¶’m ¢*þ‚‚þÒ®þ‚¢RRÂbb9^%Q���tRNS�@æØf���ÚIDATx^­“ËnÃ0 µKêa'iûÿ_[zS³@¤—ŽŽ3^ÁÜþç}°þ ‚Qˆ¯Ÿ'Ñ×¥òvYCÅ'�ÖÁ9,È+@�M| `°e‘!8ƒ-ƒ¼%|ï=on‹“7dAv8 ƒ‚Ä œý¨ 'Î�3Š[ðøîF"P°NŸ¹<çœòO_FP¢úr„à wégáAß²¨ÎÃ{ØÀë,h²A±ã¹˜š ¸k š�°7ºƒ•ÿý=^ HÊS¾ ½µ·ô1®×ß5l„`ü‚����IEND®B`‚IMAGE 364 ./arch/monster/animal/ape.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���¢RÂb‚Bþ¶’b2‚q%¢*ÒªRòÆNÔ¢bþÒ®þ‚‚bÂbbþ‚¿lW=���tRNS�@æØf���çIDATx^Ërƒ0™}è¶“ÿÿÚ¬¶¨À<pQu«Ú¾žmÆgû™3âÝÞrÑncì“°õ·í˜Š¸ €€…šœ¯ŸÙ¨ ö5Ä.AYˆBk «ð; íˆ/”yÛƒî­]ŽÄ­Œ”èB0JÌCHì !¹BîÂæŠB)E‘S•�ÔH<žÿó|5$˜"ÿYm!œKCÊD¿s÷G½><„Lxru‡? ¹ �²Jœ…àJJ$GÍ�Oàa|R¨xà׫÷=E‡òýy#ÀïÄë 3˜Øþ�©4àëÁÀ‰����IEND®B`‚IMAGE 355 ./arch/monster/animal/ape.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���¢R‚BÂbb2‚r"Ò©Sþ¶’òÆN¢*m þ‚þÒ®þ‚‚¢RRÂbbææ\'���tRNS�@æØf���ÞIDATx^µÓÍŽÂ0`ì™ü´vßÿi7qÚ, #n¸þäj„zûnJ{>ƒRÎßß�ÔÒ#WËÓ"ñ,%ðs¾ 7`P ¸�#Ðkì�D'8^°@Îùœ¯ïÈö�Æ¥€õ~L˜zª¿�‘GaPl¹èÑÒú„ ËÍ¥§…´õj‰”Ü&˜")½%hº;„ÂðÏ£³EĘýîbà]Ð~šp�›­�p „=6*pªšØj ‚pçÎZ ‰ÿ"”ºE±)ÂÜïµæ÷âÑ*VèÀ¸Œ����IEND®B`‚IMAGE 228 ./arch/food/apple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥Ö÷�Î�)ŒR¥R)���µ!!Ök÷çŒÿ��«ëò1���tRNS�@æØf���wIDATxÚåŽI€0 »Ø4ÿ1R8%¹# â2Ó¡ã›[s͎ϹV ¯­@{^ŠãÖè €±ý‹‚“a4 àf2LCÁõºt䥂¸?‡ib>Q;©Ì…8Ïæ–Q`*ß{Š· B"þĺQsÏÆwUÕ4×ñM’����IEND®B`‚IMAGE 164 ./arch/food/apple_eighth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�R!�ÿ��µ!!ÿá‘���ì?Êu���tRNS�@æØf���@IDATxÚíѱ �0ÁÄæ÷_9˜4TÉ·œë7@œËŠ"(I  Í‚}LÜPt'¸¬phù`Úü‰K#ÝG����IEND®B`‚IMAGE 172 ./arch/food/apple_fourth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�R!�ÿ��µ!!ÿá‘���ì?Êu���tRNS�@æØf���HIDATxÚíÑÁ À0CQbãýW.YÀŽÚcó¯<!$êö2MvNrsÀ í,èî”Cð¬Öцx¤Ê1•b ÏVý°«1ìº.·w����IEND®B`‚IMAGE 219 ./arch/food/apple_half.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!�R!�ÿ��µ!!¥R))ŒR�Î�Ökÿá‘���kåÞ_���tRNS�@æØf���kIDATxÚåѱ€0EÑyÿÿÃBœx&nF†.÷”¤éúæxx°á>Æc×v¿Ig*X°vŸzf ¦ÀÐ[Ô¨bì—QMô5 ¤€  Å½Áø3Õ™€=êLô*�úŸ¨þÃ9qÛºsÌ7Ñ����IEND®B`‚IMAGE 2548 ./arch/monster/angel/archangel.x11 ‰PNG  ��� IHDR���@���`���š„Ú��îPLTE���$" 624::<BFLJN.$R:4RFTZRLZ^dbB,f>$fF4jB,nnlvZLzB,zZDz~„~V<~jd‚ZD†V,††ŒŠfLŠjTŠztŽV,ŽbLŽŽŒ–jL–nT–zdšjLšvTššœ¢Ž„¦~d¦†|¦’„ªn<ª~\ªŽ|®rL®vT®†l®Šl®®¬²†l²’„¶š„º’tº¦œ¾Žl¾š|Šdž„Ê~LÊ¢„ÊÆÄΊ\Î’lβœÒ–lÒº¤ÖštÖžtÖ¢|Ö¦„Ö®”Ö¶œÚ²”ÚÞäÞžtÞª„Þºœâºœîª|ú²„þúüúòôúöôúúûþöòþúôúîëööôþþüöîìêæäîîíòæäòêäòòôòöôöêäöòïîâÜæÖÌúòlúòìúötêêìîæäúþüþòäòîìòòìúæÜîêäöÞÓöúôúö„úö¼öúüêÞÔæÚÔþÚÄþâÔúêäþòìîÞÔæÞÜêîìêÚÔþúÔþþäþò\ÖÒÔŠZDÚÆ¼úʬÚÖÔκ´²®¬îÖÄÆš„rN4Þ¾¬ÞÒÌÞâìòâÔ®–„âÎÄâÞÜâæéþæØþîäþòGæÒÄ®šŒªjDþö”öâÔþú¼þúÄþúÌöæàþúßnN4ΖlÖ¾¬êâÜÆ¢Œêâ䯮œÆ²¬ÆÆÌŠr\¦ª¬Ê¦”ʼ~fTÊÊÌjjl~†ŒîêìŽjTŽn\ζ¤BBDÎÊÄ®z\ÒªŒÒ²œöÖÄöÚÌ’b4ÒÖÔ‚bLzR<†^Dšf<†bLÖ²œ²Šl²ŽtzV<úâÔ†ŠŒúꜲ²´žnL¶º¼úò¬º‚dº†džrTº–|¢rTÞÚÔnR<⮌¦vTþÞÄâÆ´âÊ´þêܾ¦Œþò'þò4þò<âÖÔþòTâÚÔ¾®¤ââäþöYþöhJJLþöœþö°þöÜæÆ¬þúœÂ–t¦‚tÂÂÄÆ†\æâäæêôêÖÌÆ’tþþíbJ<çï'å���tRNS�@æØf��´IDATx^ì–U—ã8…ó#K,#„±™a˜™™g™™™™™™ÞV–Çi»3{úu·N?(Q߯®ªÊr ÿµø?>ù쫯«Ž®Y^®V«ã?ž¬–׆ø¸\í®aMùËÉúäxy 6T7ôÖ§Oÿ+€Œ£O8Z-ûÝÄÄÄÙ±3åx÷ÊêAB¹zrbÝzÆÆÎ¯«~4fv‡è3„Î÷*ý™uëןyùùó}|¾< è ò¯ÆÙÓçÀ; >_ŸCà øÀ"C�2@úL°æÍ"_žK@P䯫¤ô€ø*�™æº†V×A þ œ HË…/�<퀆x¨^"„ïû©”Ò]À‡¯ *Ç1®U©�¹Ò„ į9BÎ!­£O�ˆsž­`J#¬sœ#¤�$Īä  ££™¦ ˆQ0‘NmêÁZPÎgs„Ä"Bº8fÀX× ¥† ñ\ D(„ìÙM¥gŠ¡š©MŒæWÓ”0M€ÁïÒü*…®ñ¤ýL2FY†Éó��T–®ˆ±¦bf#Ï��Ñ‹� XÖÊ3@M‰ó1È3�4Ç�…^¿õ"!à=ð,€20¾XÓRÊdò˜q¡ç‚&–Ò²ê 0€I­¶ô¬€1œ@¢‚LúÞ0Œ›Öí˜Èio@WzìÖ¡½m È–€êQ%ÍðH¤yE/š¤":„1` Ø?ô{aÙ32G`ºð•©Omàê‰J$l˜Yt"Òö½9«°±ˆ!ÖÏ®<Õõ«Ø“qÏHË�áÖ­ùd%²d· …íE*ó�ÜPæô•L¼&�aÖ<ÆÝ¹°êAP\¹ÎPzTÈ\!“Râz ˜Ä˜SEÑ߿ܥºò›9É›¤õˆJ,±A7ež$#D1Eg5`éÝÎ €9—+X´öáF¬1/�F ¥ûÞÕ­Ÿ1�7çF¦Ež¬»Ýñ XoŠ)a¡Ñ´`Öpgò ÄçˆHrõÆX­PúGW€d¾óÎ0©UajAH,e@W “UVt‘ƒy!OW´é€BQj†[cS?x$dŸåÃXß§¸¥]‹°©RW$¸Ê�Ãý΃¹0"<¿¸ÕQpF-Žü(j i"Êh‚ì ¸„ÌüåOy7ý¢};–%¬Ïö¨4¸Ê·{G�*ŽE×E–厨ôŽ `˜aß�(d÷¼yHÒV]/õj¹á•Üõ„Å“œP´“½’w{¾äž{y¹nÕ\·m{8Ðzø#Vñ¤†³¼žšÉ¼×îØƒê†S¥©ÅzqÙþÍ´^³d»ÎHúñíÌlɼY7=z�ìz±¸°<ºPZ(}i;-¢äŒªrxÅé¢K6Þ;ô÷ù;ÏÜ%.ޏÅSSS¶61ço9Aé@i9Û C¿>öÆ“;¦Ë--Xa MN­æ·Š—v//̵¿( %¼òÖãOÿ¼#wö”"Ù â,-9~}zÛý ‚o, vŽ~¸óøeYßÜÓc¿ùöâôô¥÷#boÝ=Tÿâ#7_õÞÎû^¿µf5 B˜¬í9vÐýÜÙ{˵ÃìúûÎ?zõâÅ]w?<ðÓÀ¯¹ŽýÒmÏm¿æ¡áú O\|ÿS¯ØTøæ"SñO»eóÓ4Çñ6ìpŽRt«î¥0:䥴ju/XØ;Ž÷11üczëölG ËÈÐx—êÁUb½Ø¤d#1ü 4;,»¹…¥}ásý<ß_¾¿ôIó¼xâÞÕòûȱXš)1ÂLW ~è5è¾6>rܪÂß“dŠ'È/•_3—§,ÕÑ¿‹_>¿¶õß:ª?ö·WÙ7€ÜäÁ·IõìRXzôD_çiùSà,šä!—bkëmúªpN-åÏ'K«¬8 k&4ÝeoLgÊÒ8ß `×›úV…âUa' ¯þ<ŸS" H­lÓ„Nt*³MU(�íÕÒ%Ð ´R!²Àj3¤ßBQT¦q`>'žî%ôÊ6ÂÊ.‡# ¼ÁÔx\Ò «+®ür‹f·ç0ù$ηŠúÎcZ™=rqfùA'Á„׳‚x¬" Ïaœ·"¸´¶•a„ë5 צùe%¢8 xXþ[YƒpmŽ¥jÐÈsØXt+EšÜ´²F+>Cíù*j‰‹=ÈŽ:v›è Nf³ÛÐ hmlnC·;îø”•=Gåš����IEND®B`‚IMAGE 2548 ./arch/monster/angel/archangel.x12 ‰PNG  ��� IHDR���@���`���š„Ú��îPLTE���$" 624::<BFLJN.$R:4RFTZRLZ^dbB,f>$fF4jB,nnlvZLzB,zZDz~„~V<~jd‚ZD†V,††ŒŠfLŠjTŠztŽV,ŽbLŽŽŒ–jL–nT–zdšjLšvTššœ¢Ž„¦~d¦†|¦’„ªn<ª~\ªŽ|®rL®vT®†l®Šl®®¬²†l²’„¶š„º’tº¦œ¾Žl¾š|Šdž„Ê~LÊ¢„ÊÆÄΊ\Î’lβœÒ–lÒº¤ÖštÖžtÖ¢|Ö¦„Ö®”Ö¶œÚ²”ÚÞäÞžtÞª„Þºœâºœîª|ú²„þúüúòôúöôúúûþöòþúôúîëööôþþüöîìêæäîîíòæäòêäòòôòöôöêäöòïîâÜæÖÌúòlúòìúötêêìîæäúþüþòäòîìòòìúæÜîêäöÞÓöúôúö„úö¼öúüêÞÔæÚÔþÚÄþâÔúêäþòìîÞÔæÞÜêîìêÚÔþúÔþþäþò\ÖÒÔŠZDÚÆ¼úʬÚÖÔκ´²®¬îÖÄÆš„rN4Þ¾¬ÞÒÌÞâìòâÔ®–„âÎÄâÞÜâæéþæØþîäþòGæÒÄ®šŒªjDþö”öâÔþú¼þúÄþúÌöæàþúßnN4ΖlÖ¾¬êâÜÆ¢Œêâ䯮œÆ²¬ÆÆÌŠr\¦ª¬Ê¦”ʼ~fTÊÊÌjjl~†ŒîêìŽjTŽn\ζ¤BBDÎÊÄ®z\ÒªŒÒ²œöÖÄöÚÌ’b4ÒÖÔ‚bLzR<†^Dšf<†bLÖ²œ²Šl²ŽtzV<úâÔ†ŠŒúꜲ²´žnL¶º¼úò¬º‚dº†džrTº–|¢rTÞÚÔnR<⮌¦vTþÞÄâÆ´âÊ´þêܾ¦Œþò'þò4þò<âÖÔþòTâÚÔ¾®¤ââäþöYþöhJJLþöœþö°þöÜæÆ¬þúœÂ–t¦‚tÂÂÄÆ†\æâäæêôêÖÌÆ’tþþíbJ<çï'å���tRNS�@æØf��´IDATx^ì–U—ã8…ó#K,#„±™a˜™™g™™™™™™ÞV–Çi»3{úu·N?(Q߯®ªÊr ÿµø?>ù쫯«Ž®Y^®V«ã?ž¬–׆ø¸\í®aMùËÉúäxy 6T7ôÖ§Oÿ+€Œ£O8Z-ûÝÄÄÄÙ±3åx÷ÊêAB¹zrbÝzÆÆÎ¯«~4fv‡è3„Î÷*ý™uëןyùùó}|¾< è ò¯ÆÙÓçÀ; >_ŸCà øÀ"C�2@úL°æÍ"_žK@P䯫¤ô€ø*�™æº†V×A þ œ HË…/�<퀆x¨^"„ïû©”Ò]À‡¯ *Ç1®U©�¹Ò„ į9BÎ!­£O�ˆsž­`J#¬sœ#¤�$Īä  ££™¦ ˆQ0‘NmêÁZPÎgs„Ä"Bº8fÀX× ¥† ñ\ D(„ìÙM¥gŠ¡š©MŒæWÓ”0M€ÁïÒü*…®ñ¤ýL2FY†Éó��T–®ˆ±¦bf#Ï��Ñ‹� XÖÊ3@M‰ó1È3�4Ç�…^¿õ"!à=ð,€20¾XÓRÊdò˜q¡ç‚&–Ò²ê 0€I­¶ô¬€1œ@¢‚LúÞ0Œ›Öí˜Èio@WzìÖ¡½m È–€êQ%ÍðH¤yE/š¤":„1` Ø?ô{aÙ32G`ºð•©Omàê‰J$l˜Yt"Òö½9«°±ˆ!ÖÏ®<Õõ«Ø“qÏHË�áÖ­ùd%²d· …íE*ó�ÜPæô•L¼&�aÖ<ÆÝ¹°êAP\¹ÎPzTÈ\!“Râz ˜Ä˜SEÑ߿ܥºò›9É›¤õˆJ,±A7ež$#D1Eg5`éÝÎ €9—+X´öáF¬1/�F ¥ûÞÕ­Ÿ1�7çF¦Ež¬»Ýñ XoŠ)a¡Ñ´`Öpgò ÄçˆHrõÆX­PúGW€d¾óÎ0©UajAH,e@W “UVt‘ƒy!OW´é€BQj†[cS?x$dŸåÃXß§¸¥]‹°©RW$¸Ê�Ãý΃¹0"<¿¸ÕQpF-Žü(j i"Êh‚ì ¸„ÌüåOy7ý¢};–%¬Ïö¨4¸Ê·{G�*ŽE×E–厨ôŽ `˜aß�(d÷¼yHÒV]/õj¹á•Üõ„Å“œP´“½’w{¾äž{y¹nÕ\·m{8Ðzø#Vñ¤†³¼žšÉ¼×îØƒê†S¥©ÅzqÙþÍ´^³d»ÎHúñíÌlɼY7=z�ìz±¸°<ºPZ(}i;-¢äŒªrxÅé¢K6Þ;ô÷ù;ÏÜ%.ޏÅSSS¶61ço9Aé@i9Û C¿>öÆ“;¦Ë--Xa MN­æ·Š—v//̵¿( %¼òÖãOÿ¼#wö”"Ù â,-9~}zÛý ‚o, vŽ~¸óøeYßÜÓc¿ùöâôô¥÷#boÝ=Tÿâ#7_õÞÎû^¿µf5 B˜¬í9vÐýÜÙ{˵ÃìúûÎ?zõâÅ]w?<ðÓÀ¯¹ŽýÒmÏm¿æ¡áú O\|ÿS¯ØTøæ"SñO»eóÓ4Çñ6ìpŽRt«î¥0:䥴ju/XØ;Ž÷11üczëölG ËÈÐx—êÁUb½Ø¤d#1ü 4;,»¹…¥}ásý<ß_¾¿ôIó¼xâÞÕòûȱXš)1ÂLW ~è5è¾6>rܪÂß“dŠ'È/•_3—§,ÕÑ¿‹_>¿¶õß:ª?ö·WÙ7€ÜäÁ·IõìRXzôD_çiùSà,šä!—bkëmúªpN-åÏ'K«¬8 k&4ÝeoLgÊÒ8ß `×›úV…âUa' ¯þ<ŸS" H­lÓ„Nt*³MU(�íÕÒ%Ð ´R!²Àj3¤ßBQT¦q`>'žî%ôÊ6ÂÊ.‡# ¼ÁÔx\Ò «+®ür‹f·ç0ù$ηŠúÎcZ™=rqfùA'Á„׳‚x¬" Ïaœ·"¸´¶•a„ë5 צùe%¢8 xXþ[YƒpmŽ¥jÐÈsØXt+EšÜ´²F+>Cíù*j‰‹=ÈŽ:v›è Nf³ÛÐ hmlnC·;îø”•=Gåš����IEND®B`‚IMAGE 2548 ./arch/monster/angel/archangel.x13 ‰PNG  ��� IHDR���@���`���š„Ú��îPLTE���$" 624::<BFLJN.$R:4RFTZRLZ^dbB,f>$fF4jB,nnlvZLzB,zZDz~„~V<~jd‚ZD†V,††ŒŠfLŠjTŠztŽV,ŽbLŽŽŒ–jL–nT–zdšjLšvTššœ¢Ž„¦~d¦†|¦’„ªn<ª~\ªŽ|®rL®vT®†l®Šl®®¬²†l²’„¶š„º’tº¦œ¾Žl¾š|Šdž„Ê~LÊ¢„ÊÆÄΊ\Î’lβœÒ–lÒº¤ÖštÖžtÖ¢|Ö¦„Ö®”Ö¶œÚ²”ÚÞäÞžtÞª„Þºœâºœîª|ú²„þúüúòôúöôúúûþöòþúôúîëööôþþüöîìêæäîîíòæäòêäòòôòöôöêäöòïîâÜæÖÌúòlúòìúötêêìîæäúþüþòäòîìòòìúæÜîêäöÞÓöúôúö„úö¼öúüêÞÔæÚÔþÚÄþâÔúêäþòìîÞÔæÞÜêîìêÚÔþúÔþþäþò\ÖÒÔŠZDÚÆ¼úʬÚÖÔκ´²®¬îÖÄÆš„rN4Þ¾¬ÞÒÌÞâìòâÔ®–„âÎÄâÞÜâæéþæØþîäþòGæÒÄ®šŒªjDþö”öâÔþú¼þúÄþúÌöæàþúßnN4ΖlÖ¾¬êâÜÆ¢Œêâ䯮œÆ²¬ÆÆÌŠr\¦ª¬Ê¦”ʼ~fTÊÊÌjjl~†ŒîêìŽjTŽn\ζ¤BBDÎÊÄ®z\ÒªŒÒ²œöÖÄöÚÌ’b4ÒÖÔ‚bLzR<†^Dšf<†bLÖ²œ²Šl²ŽtzV<úâÔ†ŠŒúꜲ²´žnL¶º¼úò¬º‚dº†džrTº–|¢rTÞÚÔnR<⮌¦vTþÞÄâÆ´âÊ´þêܾ¦Œþò'þò4þò<âÖÔþòTâÚÔ¾®¤ââäþöYþöhJJLþöœþö°þöÜæÆ¬þúœÂ–t¦‚tÂÂÄÆ†\æâäæêôêÖÌÆ’tþþíbJ<çï'å���tRNS�@æØf��´IDATx^ì–U—ã8…ó#K,#„±™a˜™™g™™™™™™ÞV–Çi»3{úu·N?(Q߯®ªÊr ÿµø?>ù쫯«Ž®Y^®V«ã?ž¬–׆ø¸\í®aMùËÉúäxy 6T7ôÖ§Oÿ+€Œ£O8Z-ûÝÄÄÄÙ±3åx÷ÊêAB¹zrbÝzÆÆÎ¯«~4fv‡è3„Î÷*ý™uëןyùùó}|¾< è ò¯ÆÙÓçÀ; >_ŸCà øÀ"C�2@úL°æÍ"_žK@P䯫¤ô€ø*�™æº†V×A þ œ HË…/�<퀆x¨^"„ïû©”Ò]À‡¯ *Ç1®U©�¹Ò„ į9BÎ!­£O�ˆsž­`J#¬sœ#¤�$Īä  ££™¦ ˆQ0‘NmêÁZPÎgs„Ä"Bº8fÀX× ¥† ñ\ D(„ìÙM¥gŠ¡š©MŒæWÓ”0M€ÁïÒü*…®ñ¤ýL2FY†Éó��T–®ˆ±¦bf#Ï��Ñ‹� XÖÊ3@M‰ó1È3�4Ç�…^¿õ"!à=ð,€20¾XÓRÊdò˜q¡ç‚&–Ò²ê 0€I­¶ô¬€1œ@¢‚LúÞ0Œ›Öí˜Èio@WzìÖ¡½m È–€êQ%ÍðH¤yE/š¤":„1` Ø?ô{aÙ32G`ºð•©Omàê‰J$l˜Yt"Òö½9«°±ˆ!ÖÏ®<Õõ«Ø“qÏHË�áÖ­ùd%²d· …íE*ó�ÜPæô•L¼&�aÖ<ÆÝ¹°êAP\¹ÎPzTÈ\!“Râz ˜Ä˜SEÑ߿ܥºò›9É›¤õˆJ,±A7ež$#D1Eg5`éÝÎ €9—+X´öáF¬1/�F ¥ûÞÕ­Ÿ1�7çF¦Ež¬»Ýñ XoŠ)a¡Ñ´`Öpgò ÄçˆHrõÆX­PúGW€d¾óÎ0©UajAH,e@W “UVt‘ƒy!OW´é€BQj†[cS?x$dŸåÃXß§¸¥]‹°©RW$¸Ê�Ãý΃¹0"<¿¸ÕQpF-Žü(j i"Êh‚ì ¸„ÌüåOy7ý¢};–%¬Ïö¨4¸Ê·{G�*ŽE×E–厨ôŽ `˜aß�(d÷¼yHÒV]/õj¹á•Üõ„Å“œP´“½’w{¾äž{y¹nÕ\·m{8Ðzø#Vñ¤†³¼žšÉ¼×îØƒê†S¥©ÅzqÙþÍ´^³d»ÎHúñíÌlɼY7=z�ìz±¸°<ºPZ(}i;-¢äŒªrxÅé¢K6Þ;ô÷ù;ÏÜ%.ޏÅSSS¶61ço9Aé@i9Û C¿>öÆ“;¦Ë--Xa MN­æ·Š—v//̵¿( %¼òÖãOÿ¼#wö”"Ù â,-9~}zÛý ‚o, vŽ~¸óøeYßÜÓc¿ùöâôô¥÷#boÝ=Tÿâ#7_õÞÎû^¿µf5 B˜¬í9vÐýÜÙ{˵ÃìúûÎ?zõâÅ]w?<ðÓÀ¯¹ŽýÒmÏm¿æ¡áú O\|ÿS¯ØTøæ"SñO»eóÓ4Çñ6ìpŽRt«î¥0:䥴ju/XØ;Ž÷11üczëölG ËÈÐx—êÁUb½Ø¤d#1ü 4;,»¹…¥}ásý<ß_¾¿ôIó¼xâÞÕòûȱXš)1ÂLW ~è5è¾6>rܪÂß“dŠ'È/•_3—§,ÕÑ¿‹_>¿¶õß:ª?ö·WÙ7€ÜäÁ·IõìRXzôD_çiùSà,šä!—bkëmúªpN-åÏ'K«¬8 k&4ÝeoLgÊÒ8ß `×›úV…âUa' ¯þ<ŸS" H­lÓ„Nt*³MU(�íÕÒ%Ð ´R!²Àj3¤ßBQT¦q`>'žî%ôÊ6ÂÊ.‡# ¼ÁÔx\Ò «+®ür‹f·ç0ù$ηŠúÎcZ™=rqfùA'Á„׳‚x¬" Ïaœ·"¸´¶•a„ë5 צùe%¢8 xXþ[YƒpmŽ¥jÐÈsØXt+EšÜ´²F+>Cíù*j‰‹=ÈŽ:v›è Nf³ÛÐ hmlnC·;îø”•=Gåš����IEND®B`‚IMAGE 194 ./arch/exit/archgold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEcmaIII»�ÖÎ�îæ����1´ ���tRNS�@æØf���^IDATxÚÝ’Á À Å–Vÿÿ—‡']eàcïØ„€àñúXv‹ƒJ8—ÙèA6æZ‚øõ‰¸’£!®-'Ì-tq D!(`Á¿ây ïøy Š@!0¯¤%ÄuýÂN+¾‰Áý����IEND®B`‚IMAGE 184 ./arch/exit/archgreen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��4[<tF\.Í���tRNS�@æØf���WIDATxÚí’1€0 Äàâÿ¿1Q\”©CoŒ-wé±| ûÄ'rã ƒ‰§xVñ÷‚¸“Ä5‚x#ˆKP@‚ú@…X0w`ü.‘0ÿq]ÿ° ˆß����IEND®B`‚IMAGE 613 ./arch/monster/chaos/archon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���“PLTE2qÓÿÿÿ4��!p,½•”[¬| ÑÇkĦ/jV ‰RË·CfNÞÛ}ÚÏTÏÁXzCÝ»3‡6 ÙØŒÙמ÷ðÌ™o"üøôÔÍ~&X2ÙÕk= ®‰*áã“ññ—åä»L? ¯›a¸Íïåä¦öô{·º±f™ä³í2qÓ…ó_���tRNS��v“Í8��IDATx^­’Wª1�åîVÎÃæð¢ãýOçÙy`äÅã‚þªB¢‘ØÂ§eþ+?¾ÿµ`ÿZ<þïýTé90fßÖö¼1Áˆ¦•ej¶;HÉÏl…Âsç �pÕ¬å¬<ùˆ_'ŒKÒÝ"qN€‡í#Q¶wIˆlµ½z¿GJ²8aVw6CÎõQï¶µé羚渟}ô_ÆÝ NQrÊš¨– âåé:ޏo{2Uxž¨½ ⦮$ÞØxïÍ/_oa¿ˆ¤páEOl(–T2Ó"ˆãÀJD+ñvÅE \ ¨>AeyƈØ÷ÞȈ3�gŠoP+ ˆ˜�±{A|"%Êé,w·`žž)ƒÓ¬¤S’^3ÎHà’|.ô;c†Er§ ¦=¢k¹ª+VrôÜxˆ­Š½s™‹#»ç¬¤ía#N)g®Â:еm9·b“[)mÐlÅtáü¶y{ aٚݎµnD±ÿ#ô0Œ~?*–øzq(����IEND®B`‚IMAGE 621 ./arch/monster/chaos/archon.222 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTE³íÿÿÿzC��NfÏÁX¬| jp,Ë·CV ”[Ħ/4‰R!½•÷ðÌL?®‰*ÞÛ}ÔÍ~åä»ÚÏTÑÇk= &Ý»3å䦓|IüøôX2Ùמ¯›af™ä‡6 ÙØŒ2qÓÙÕk³í¸Íï·º±öô{ ™o"ññ—áã“ðÞ[ŠA™Œ���tRNS��v“Í8��IDATx^•’çnÜ@ „rk/êíº»SßÿárRšŸx�‚?æÃ,ÃlÖ§y>¢ç»mÿñмkæózŸhšÝi;¾aûm nEfímÏV”p À¡¼ + Q/ÚÈ[�³ÜHAñ˜ÎùòÍ#‡’\:¯ˆ!Éë5)•!`›çÊ ˆÄXµŽx"”+Û²q,‚Ž-ûgv× q„ô-«šQyưõµsô â·ï»J#"@€¥_sz@DoÕœ$J"âß~ê†AÃd>Î@™Ÿ<ûíçYË,wd¨3Pت[ÖfÍÑ%D<ƒ™VÂ@m»¬¨“ú<Ü›ŽzQ/ˆÏ¦„žPÁ1%ç(Äl!Ä!ÊëÅœäÝàF&D=½OÒ0h ÿõ¥îIH†3¦€�¢êÖ€'´w¨Iêû ˆ6®ÚÅÁï5¥Ò«Ø¼¹˜§Ôð¯RzÁí*ÿñ×:ñêr}k[ŸËÝŸÊÔCwÙSUW[wϪÝ!ÛPWgÑOZePR(Ëœ����IEND®B`‚IMAGE 596 ./arch/monster/chaos/archon.333 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTE�����!4Ħ/Nfp,zC‰Rj¬| Ë·CÏÁXÑÇkÙÕkV ½•”[ÙØŒüøôÙמ®‰*ÞÛ}&OBZX2Ý»3ÔÍ~åä¦÷ð̇6 ÚÏT“™žáã“ññ—6NŒL?¯›a™o"eko³í? =2qÓq5*åä» 4f= ×ôû���tRNS�@æØf��iIDATx^Å“G®A û‘ì&åð³s¸ÿá Á›Ñè[†W®m¸x�ÕàÓ_ƒq?¨ë·C,²¡Í]í¦á=;–g­o‚„êÛ~¼ $ô°+*ßèÃÉ;r ŽÃ#±f_Ž‹`0¦aN4 [¹ œåDñ8´>L×ÎäxVýÙ0±~Ýåú©NÁÚÅ…•x"´}-'¼î¶‹}"³YÛz%$oùÊÅÒOû€ä�$ÙÊ4 Š´—�lçpáƒTÕ,È!j“�@üÆI? öÑm‰xô@JÄ^êùŽUhR"$ �ˆ­‹³•Ô8YM€5@—ÀÔ„vô“6Œµ×�'�¬Íb©Ü5@² h“5®V×xMi&A'$]›çvPÊê²`Ñ}Ù0‹\üUáä¹4DþÇ‹16J«–HU‰ÑŸ?nŒ !ÖEÝr¨6/åk”œKîÕ»¬žú\ÉÝ×(¥Rw)jTÿÄ/M»{¨+”����IEND®B`‚IMAGE 406 ./arch/monster/chaos/archon.444 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE™fÿÿÿ&*”ÍŽ,ɱs™fG2æË™ ýõé.8”HEN°½¥;YÐ&(aÀßÂlfa³ÀåfÝD“8©���tRNS���úvÄÞ��IDATx^¥“‹j…0DÓÎc7z_mÿÿ_k¢…½EJsX†È–ÎÛr>ÊÍø78_B*<†5D¥q ¾r§­ÌGM§tÌ%e:óR3Ó>sAµfG»œ´3M€Œè× åARºŒ¡´S”3a#Z ¢ )™O1ïv®HÛ—Ÿ*R¹*Þ“xšA9’\†R´°ž¯cÉØÖÖbž4 ½fËàu€FÁ]è§ Óþw„¼eí2Kàþ%Ý•&ܦ”„Ûh‚ò1}¥%  @€œÖmn.u·˜,¯ ".§A¢ðWáZ+O–³žn^ùï¥|�® 8¿Ç`����IEND®B`‚IMAGE 329 ./arch/exit/archtree.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEp�!‚B'���IöI=“G$d3פiA���tRNS�@æØf���âIDATxÚÍŽÅ DÃÜÿÈÐÆ¨=ÀN"µø„‘ß&jÑ›CŒüP…Z°Î1•¤h€DÅTˆ‹èË.!lªÉFøæHxü…f7†aV¤i¿¥nÙqCTEéñ ÚOÛ‹ItKÀï¨X¾X«lçMbDÛ®/¬8†ùV¸Î¥\@{¾(g’Úž‚éQwVeß)Ùû#Šç1^¯Øˆ½,Q f7X×c� ³—Á9(D‘§*©îú’_s.€d’÷œ»mbø�ÜÉ üîó0¼¨¿¦¼’çŒWöÿè“ó ç¶ß[����IEND®B`‚IMAGE 184 ./arch/exit/archwood.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��G$d3‚B'���¼‹ ¥���tRNS�@æØf���WIDATxÚí’1€0 Äàâÿ¿1Q\”©CoŒ-wé±| ûÄ'rã ƒ‰§xVñ÷‚¸“Ä5‚x#ˆKP@‚ú@…X0w`ü.‘0ÿq]ÿ° ˆß����IEND®B`‚IMAGE 153 ./arch/flesh/human/arm.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���¥Ö÷÷çŒÿ��q„ù���tRNSÿ�å·0J���:IDATWc…*2\¡Œ€£PFŒ"”á°ÊpZ% Uc„j50B^«V@Z P“DqÙEc� ‡U.¾*XR����IEND®B`‚IMAGE 280 ./arch/monster/humanoid/Human/armless_cook.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���6l!!!/ = Wc1fff„��™™™¥R)Æs9΄9ï¥ZÿÿÿŽÈ¦þ���tRNS��v“Í8���•IDATxÚ¥ŽQ… y* µÀýoëj}Á¶$º„¤d&]«Ò±…�Žx#N>_ Ékh»8|Eÿv¦5SØ}~ÿç“’à Éækó…9ãÌ9Û€×ûÀy'‹ÓmLºÁØà­Ø¹²ÛÁ;ó%–Z5±@ÄÂEã)¥»ª€«BŸ.£Ê»5!v.³ˆ<ߟì n¸±Í<����IEND®B`‚IMAGE 255 ./arch/monster/humanoid/Human/armless_cook.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���6l!!!/ Wc1fff„��™™™¥R)Æs9΄9ÿÿÿH£ß>���tRNS�@æØf���†IDATxÚ¥‘Q Å Ó6ÑDsÿóvë÷ËúÀA˜Ñ *¿âî™kWã¤Fþ#H’ z\ßÜÿ¬”¼yÿxÔ<Ƙ‡�cåé½³†Ä"€¶ihfÔIÝèv› ãÈÅœ yݪÚ@Ù ±ù«s ‹r¾Æ8Œ:/¼Á7¸L����IEND®B`‚IMAGE 372 ./arch/monster/humanoid/Human/armless_cook.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE���19s„��„k�™™™Æ��ÿÖ�!1k!9„Æs9ï¥Z¥R)= Wÿÿÿc1fff„��/ ΄9™™™��„6l!!!ܼzÊ��� tRNS�������"D¥gX���ÒIDATx^•Љ‚@ EÑ鸶³±©ÿÿ§Ö´”ÄQ ñž´bØ<Ó4ÕŠàçº#Ú- ¥Ÿ‚ 648`À�ÓéÓ¹ÉmØÌ"€æý='N©n€£ªN÷÷}â¾V²@ÞD¿€� ´ïE¸èˆ+môI¹ `9 ëÐý¦¯Gkî€»Ææ�ôûû˜;žÁŒgØØcbáÕ„`�'æ¨'"œbÌ,è‘GÑ¿E.¥hÅ„1Z¬îܾPÛ¿€ý2›VçðÇyÔ¢kTôº����IEND®B`‚IMAGE 256 ./arch/monster/humanoid/Human/armless_cook.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���6l!!!/ Wc1fff„��™™™¥R)Æs9΄9ÿÿÿH£ß>���tRNS�@æØf���‡IDATxÚ¥ÐÁ€0Щà`ëÿ¯0M<QöÚ ´'€™µ:�8Á-È„ÆA&Hqp¬ž}·³sDá£#A)z7påôÀ»Cka@•, °+[¢º+>�(À¤ „Õ�@€ÓÛ@DØ'Ý£¯3çȨD~!€ô$Ή7/¯„Ê����IEND®B`‚IMAGE 1178 ./arch/monster/troll/armourtroll2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��RPLTE�pæ„!�Z�B��¥1�ÆJ�ÆR�µJ�ÖZ�çkÆZ­J¥J�”)�÷{çkÖZ”1�Z!�k1�ZB�Y��)��!Z�RB�b�?o%M M�“0�u�].´ìõæDJê19pab‚+�W�ƒ~‹†Ìsz½W]³×Úb �”Jq8h-lÈ(/_prÂÎÏññòzm^u_BÖk2�ÜàݪšžÊ7?’-23'&\hlK2&§`h¯H ®G�yXEÙ±´¬™¨ÙßnAPfr¿o„ÈNUæÇ³‚ �V(�ÕFJ¼!)a&1�6%QY[½âêÆx}éÛܲ«¥ƒ7�n%£"6F!ŠI0qWLpwxÁšœ­BK›¨¥89¢+PR�·O »?²>/`�0�ƒD ¶]0Ôn:ßxEœXDéÒÓÛµ·Ë¬®ÎºÀ±~‘d†—ºÁÁáÈËÕai©ª­IA0œJ(›8¹OáF,Ê!)·sqYSPx“–JOO+%5((uƒ…‹ˆeP;�� �æ`ä(0ª!¤7 ÐrI†YG:0'­"–48Ó*2 "�����´<º)±+¶GÉf@>”’¾s{€a& ��¥C�;�°F‚3¬Z2]* P¨OX¯»ÄÆÊÇ6nR��1ÓuIF#¦#Ö2:Ä{~°­¤�  �4“2(9k4†-�†<�¥FR!�k!�ýg���tRNS�@æØf���bKGD�ˆH��éIDAT­Á±kQ�ÇñïïÝ%is—ö*ŠNêê$8šº—ŠøT .®¢‹uÁE!utT7q²Í7·®NâĤ‰Mâ=ß]’¶´Ž~>p„ Ïrœa…Åb ÿ`±k¬µ2‥Šä¤TJ›5¥ªâKƒ“R“bœÃaÆZª$±˜B1u8@ì³Ôœ…ºÒ’<FÅžqˆÄvMšK)Hƒ=À0c<©.¡¹ùfÏ‘1LX¹4MOpò[ìW‡åbHFìSó¦2߃ùáØ”þìF=@L‰sÎ(ó³??(·‹AØu@È”£¤ #†[ì8™º¨Fáf«f.|ÄÌeÍ4ƒOp%î4«€˜ZÖ¾ ˆ»dÄÔ xË0bTèበ·tÔ <1±ÔÞÕQ�CΎʼ~ž$É«Å;x"'HZÏ´Ñ¢ÜûIwð ¹ IZT*O©T*÷ã8.ÇÞ*ž!£ÏíõÈ%QýŽ¢èvì½Á ÉWð\ïáãn¿ÓÄ&á• aÇ üzo_rœWî*ƒgv;10ZøÚ«?8³~ýÛr†×ȉLȘÓÝ-(º÷–Æ]r†ÌxLc£ÔoÁîìhu™0Ll²ÞÞÃ[c§m9¦bªÑÿÓ_Òæ›¥ƒ E����IEND®B`‚IMAGE 1166 ./arch/monster/troll/armourtroll2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��[PLTE���„!�Z�B��¥1�ÆJ�ÆR�µJ�ÖZ�çkÆZ­J¥J�”)�÷{çkÖZ”1�Z!�k1�ZB�ƒ �>���)��!Z�RB�S�Z)j!M M�{(�u�c4´ìõæDJê19pabŽ.�1�Št‹†Ìsz½W]³×Ú���q8pAlÈ(/_prÂÎÏññòzm^[kflDÖkÜàݪšžÊ7?’-23'&\hlK2&§`h?DE®A�„bEÙ±´¬™¨ÙßnAPfr¿o„ÈNUòöö•}iL�ÕFJ¼!)a&6%QY[½âêÆx}éÛܺîÿšy'�n%£"6F!ŠI0qWLpwxÁšœ­BK›¨£6C·)&t(\!R�¹G«D:�`�6�ƒD ´[0Âd:ÚuBœXDéÒÓÛµ·Ë¬®ÎºÀ±~‘d†—ºÁÁáÈËÕai©ª­sE/�ÆpCfœ9áF,Ê!)·sqYSPx“–JOO+%5((uƒ…‹ˆbP;U����¼Dä(0ª!¯E ÐrI†YG:0'­"–48Ó*2š /�§<·&·1ÆJ¶YÉf@>”’¾s{€a& %��;�°F±@·]2]* P¨OX¯»ÄÆÊÇ6nR��XÓuIF#¦#Ö2:Ä{~°­¤G�  �4Œ0(9r?x*�y*�F�R!�k!�VÐé���tRNS�@æØf���bKGD�ˆH��ÔIDAT­Á=kSQ�Çáßÿܛ޼ÕöZµ/àà$"…Ó-)]Antü.‚ƒ»qïè"\„6g÷8¶ƒP£)ÁÄÜã¹7·1´}8ÃGà8ÏpÂáp† 8œÁ熜øÇÑBòR&eݶ2-1ÃÑÂà¥Ìdïñ`8å- ’ØLe.óx@L9ÚÞÁ¦²D£¹¾1Câ -U3*Ò B0œ2´)¡jí“4«ä N>Ë.û¥«×Øç$y4¬'rbJkÊõ~Eµá“ŒO} ¢¤q=Î5G£Ê°qâUëÄ”|µ¦Â*D#†‘_èy0”6j¥5Fü˜îx|›@”n-éÔ—è3l5{ÝSº®)¸Ë€±oJà[½°=a“œ˜ÐŽÎéÄL,¾{ª³È nTï¤Á›ÅäDA°xüZ/^ªðá¡‚'…x¡zÌÑÆù¤°w/I’Wß DNݶÇ~½²ú\Úy«‰äbrs÷ üêÑÑîá{•(ˆ ©Ä=]âçúáöÍÝÇë*l1U“æ‰ÒfúÌ.¯|Œ"ËþAC̈cX©§)XÛY^Òyΰ6M¬í¦\ c#Q°VŽsl‰’µâú c^…ÛöØ«ÿ����IEND®B`‚IMAGE 970 ./arch/monster/troll/armourtroll3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��’PLTE?„!�B��k!�µJ�¥J�”1�Z����ÖZÆZññò¥1���A)��”)�½W]³×Ú­JK2&¬™¨Ùß��1�¥89R�Ê!)·sqeP;ª!ÐrI†YGÆR�çk!Z�zm^Ê7?÷{çkRB�ÖZ�ÈNUa&u�6%QY[Ášœ­BK].P´ìõƒD œXD±~‘d†—ºÁÁÕaiIA0æDJƒYSPuƒ…‹ˆ~ÆJ�Z!�h-È(/ÂÎÏ”’k1�;�1  �9ÜàÝÓuIF#·O »?²>/M ¶]0ßxEM�éÒÓˬ®§`hÙ±´“0�Y�©ª­nœJ(”Jq8æÇ³x“–JOO¼!)�lä(0b�ZB�Æx}­"Ó*2 "éÛܲ«¥´<Éf@ƒ7�a& £"6¯»ÄÆÊÇR��ê19‚+�›¨¦#Ä{~°­¤Ök¢+42�†-�R!�›__š���tRNS�@æØf��æIDATx^­Õ’ÞH F[R“ágffff 3333gß;ö$³eÈedUûâœþ¤j,:è?G#§ÝO±¿¤œ&"æäÞW ÐmG$ jß@�T�!JŠ!*Eörƒ@h¸¡ ¡»i¦„àñ Á@)…©f³£ÓàBø©R /:‡+$ùæ}Ÿ@îDÀmAVWJvµDp�õmÚÓln˜îN~�>T6fï&Jnp Üìî]:ip‰¤0L`7 ŸquìÞãµ–U©; ˆHÐøêØËŒßªÌ,D'–¹ID¶äã[mO’Oç¾O&¦¯sÓ4â½Gî©Vòýë ë ç ;>n¿8þèõ±ùÅÁ¡…o#Å£Ç »^Aò¾htõJíTýÌù³o3“Ö`vÆÃIHìäT2;]*Ï/ÜìO´­žI²Ûsåuköa¹6žÞ{µVªz[JÆt®÷yOih4[;‘_|S?Òò8#:öìSâÐèçkÑê„Uñpé JÇr:²T;wxøòûÄTÞÃ… ¥D)æ´¹³³ûruÓЈ;‚E‰½CÔLn¥À·£ÍXÌÜ_Tç"1È8 ”Ö’ÿþÿçxáÊi„(Ì5ºüƒýËúü6$¸ðËà����IEND®B`‚IMAGE 863 ./arch/monster/troll/armourtroll4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��hPLTE��„!�k!�B�� Z�”1�¥J�µJ����ÆZ+%ÖZÆÊÇ:0'¥1�R�JOO��)��­J3'&ÆR���R��çkçk÷{1�”)�ÖZ�RB�!Z�\hl­"Ášœ“2(±+ZB�†-�Y�ª! "‚3�“0�>¦#†<�¢+�P;� �F#–486nº)eP;YSPÊ!)¤7 ¥89¥C�¥F5((Ó*2°F²>/»?¯H R!�Z!�¶G­BKÖ2:†YG4·O ÆJ�¨OX9¬Z2a& ]* €d†—uƒ…Éf@ÖkÕai1k1�‹ˆ·sq‹†ÐrI¾s{x“–ÓuI±~‘Ä{~”’›¨AP©ª­²«¥°­¤Ë¬®¯»ÄºÁÁÛµ·ÎºÀk4æÇ³áÈËéÒÓéÛÜIA0ý/Ml���tRNS�@æØf��¥IDATx^­e³Ü0 E-ÉZæ}\ffffff¦¿_«Ý×É:_{£±?œã«™ˆ8¸<“£ŠA`þ”¨†‰ ƒˆ¢Ê‘ß+PăDĪ¡Ø� S®'R ‹K Ì#¸TÌ |Ë;Ž J!(j Ã~j™¦J)"âÃèÓ¨íý•SòFXM뛄¦37ÛÒ³seA†Ôó„¯ …M}g¦o`J˜Ÿ¯ç!ìh›Z Ö¡$Üþ“<—Ú¤Þ�ƒ´d>I D„й ²l!TÈ“Ö#b‘Bù?sÁ0öÃ%¿Yï=ÀXˆHÈd–±ðóµ`Œ5eA¶yódñ쫃[ÞÔ.ž8>%$!O~|þðåùÍOßï¾ýU¸¢„Dî¸ïi=9rëÁÞQ¼ƒ#åšÏç¯v]Ë 6r¹g…9s{ãèå“׸!^"m?V¬»z}ÛåÙnQ­Òu{½{Ïvn:÷âý((²[k8·Ut嫨 ²æºÍ‘«6†Xhz)…p®Ñm Ç1wNÛ¿÷)Í NÃ,›€Uîˆù?CüÏüªŸ+ö{­oÝ����IEND®B`‚IMAGE 230 ./arch/weapon/bow/arrow.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8ààà���@@@¿¿¿öØ���tRNS�@æØf���yIDATxÚµ‘;€0 Cû¡ïb¤‚É�6,¼ÅÓ#Y)ÿÐaut ë[öάîÎÜæàá¯;Â3g¾ûí¹ÃùVµçá™Æ3 à}ć>Vê~`¥îÇ™éöLŸd?ÄŸVïÞWwŠ‚;$Ü!áwh|Ÿ;<ý޹“\Ô����IEND®B`‚IMAGE 159 ./arch/weapon/bow/arrow.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÁq8ààà���@@@¿¿¿o=Ï���tRNS�@æØf���;IDAT(Ïc`€�V4àª@@€ÅU‰€�¦Æh†£ °𢠄š Æ‚¡©Æh*À�æY–“Ân����IEND®B`‚IMAGE 173 ./arch/weapon/bow/arrow.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8ààà���@@@¿¿¿öØ���tRNS�@æØf���@IDATxÚíË9� A‡Ëþÿ‹)RãÐ"±íhñv]–Ù5­·°ŽšÖǪßOIÞÉ‹_ÅO?q.Wþ.áá6›ëé‡×ï9����IEND®B`‚IMAGE 150 ./arch/weapon/bow/arrow.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÁq8ààà���@@@¿¿¿o=Ï���tRNS�@æØf���2IDATxœc`F€ÕÕM$$$�Áqbc$`â1D�ÓÐPTFJJhf(a³e�_¤ :¨S¾����IEND®B`‚IMAGE 175 ./arch/weapon/bow/arrow.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8ààà���@@@¿¿¿öØ���tRNS�@æØf���BIDATxÚíÌÉ � QÜ>ô_±€ñf"W&OMá/Ñÿ³(竦7È3É�’¿_\+M¾`oàP(0„g¶O(é4nåÂ����IEND®B`‚IMAGE 160 ./arch/weapon/bow/arrow.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÁq8ààà���@@@¿¿¿o=Ï���tRNS�@æØf���<IDATxœc`�ƒ�0B®Æ¦(!†&h* ©`54e@†£ £ ¸* òY\•`hÁ`…1�f–¿P‡����IEND®B`‚IMAGE 175 ./arch/weapon/bow/arrow.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8ààà���@@@¿¿¿öØ���tRNS�@æØf���BIDATxÚíËÉ � A‡#vÿ“pÞHìw´x95N¥ÿ™+í_.ùŸÄ5ÿWþ/ïàû-v>Â:fh[×¶ŽÚŸî�IzélÇDQ����IEND®B`‚IMAGE 153 ./arch/weapon/bow/arrow.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8ààà���@@@¿¿¿o=Ï���tRNS�@æØf���5IDAT8c`ð²�!ˆÁ‚Wž˜qB`fÄ@ ˜@�Ÿ %øÝHØ£`p��¦»Se-Gh����IEND®B`‚IMAGE 173 ./arch/weapon/bow/arrow.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8ààà���@@@¿¿¿öØ���tRNS�@æØf���@IDATxÚíÒ» � �QüÂþ»gìL¤~¹ ½³4�#Í J5$Ê„Äì ôÅ…HHØ;jÄÔðYCÚ7èÆzi –éê³����IEND®B`‚IMAGE 316 ./arch/weapon/bow/arrow_fire.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 6k“ë@���PLTE������@@@aaa¡¡¡¿¿¿àààÿ��ÿÿÿÈKÄ���tRNS�@æØf���bKGD ñÙ¥ì���ŠIDAT(ϕѱ€ @Ñ`AM¥–xÞ9‚¸‚#hË l® $XI%ñÿrü8»¹¯·¾GÒÈI£y*H@.¨@Hƒ „–a ™ $Ã@2üΨ™K@([-06TÀ&¨‚ˆˆÁûÁÖmB �ðˆôª„B?ð”éeú_€¢80c¾=>< >(‘����IEND®B`‚IMAGE 228 ./arch/weapon/bow/arrow_fire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 3â.Ž���PLTE������@@@¿¿¿àààÿ��ÿÿÿϤ���tRNS�@æØf���bKGDaf¸}���;IDAT(Ïc`€�f4 ì@@€IÙ…€�¦‚h¢£ 0‹ £ ‰  Æ‚¨°‚h* À�I$N*¼6P����IEND®B`‚IMAGE 248 ./arch/weapon/bow/arrow_fire.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ §è›å���PLTE������@@@aaa¡¡¡¿¿¿àààÿ��ÿÿÿÈKÄ���tRNS�@æØf���bKGD ñÙ¥ì���FIDAT(Ïc` 5`N@å3™  ¨„£éMGå36¢é@WÀ0Ð ØÑ(a*H@S ”€¦ Í !´ cLBÜZÇ�œ½ ‚ù)ï£����IEND®B`‚IMAGE 215 ./arch/weapon/bow/arrow_fire.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÜ '8úó���WIDATXÃíÓA À DÑx³ó\en’. Å"t,2o0Æ fff‘™Ô\ ðÌS¯ýÖÀrö Й`Ü[þнIû߀¤’Tÿûfff»\úI".Á¤ò����IEND®B`‚IMAGE 246 ./arch/weapon/bow/arrow_fire.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ õp‚���PLTE������@@@aaa¡¡¡¿¿¿àààÿ��ÿÿÿÈKÄ���tRNS�@æØf���bKGD ñÙ¥ì���DIDAT(Ïc` H@ã3&¡ H¡*aKlDS¢„EIºt%è.AWÂÀ8¨” ‰ˆ¦£ ¨„£ 0™¡ëaN Q,�Û{ ‚›#è9����IEND®B`‚IMAGE 229 ./arch/weapon/bow/arrow_fire.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ  ]禆���PLTE������@@@¿¿¿àààÿ��ÿÿÿϤ���tRNS�@æØf���bKGDaf¸}���<IDAT(Ïc`�0Bʂ (F¢Bh*D ©`f@¢£ ¢ (; ò™”]`hÁ`†1�?¢N�?÷ó����IEND®B`‚IMAGE 249 ./arch/weapon/bow/arrow_fire.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ‹¨ ?���PLTE������@@@aaa¡¡¡¿¿¿àààÿ��ÿÿÿÈKÄ���tRNS�@æØf���bKGD ñÙ¥ì���GIDAT(Ïc` 1`CP@S Øˆ¦@B,Mª4 Œh 0 9BÍ € ]J š ¦é¨|æô´ + uì1��g& ÞÏ9����IEND®B`‚IMAGE 227 ./arch/weapon/bow/arrow_fire.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÜ Má���cIDATXÃíÓ± À ÀGÊ"lòL£x“O¤„‚.$ l=B033ÛI­U$u¯’"©•á©­µ’R¿ÝxRJÞL¾Ê�9çYÓ:¡ˆÐ'ð[`ff[:áBHï°C,í����IEND®B`‚IMAGE 245 ./arch/weapon/bow/arrow_fire.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ G=rû���PLTE������@@@aaa¡¡¡¿¿¿àààÿ��ÿÿÿÈKÄ���tRNS�@æØf���bKGD ñÙ¥ì���CIDAT(Ïc`  `3@`OV@)uB( D×#!€&ÂØˆnÑ R"–€®D -XЕ°)¢+QâÍ5t§°1Ð ��HH ÀJqÈ����IEND®B`‚IMAGE 318 ./arch/weapon/bow/arrow_frost.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ Yãyu���PLTE������ù@@@aaa¡¡¡¿¿¿àààÿÿÿ×5×ç���tRNS�@æØf���bKGD ñÙ¥ì���ŒIDAT(Ï•Ñ1€ @ÑVâ¢+7ÀÄÄ#x¯àtäèÚB ­“LR_üiøqvs_o}ެ‘;³Fã\€XP -Ã@2H†dø œP3—€P¶Z>`j¨€MP ƒ÷‚­Û„@�àéU …~à)ÓÊô¿�3$5p`Æ |{|�‡pävVé����IEND®B`‚IMAGE 228 ./arch/weapon/bow/arrow_frost.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ #œÀ���PLTE������ù@@@¿¿¿àààÿÿÿ¦á:ÿ���tRNS�@æØf���bKGDaf¸}���;IDAT(Ïc`€�4`@@€Ù$”€�¦‚hB£ °‰  8 ; Æ‚ˆ‚h*À�ið]ܶ–����IEND®B`‚IMAGE 248 ./arch/weapon/bow/arrow_frost.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ©|U,���PLTE������ù@@@aaa¡¡¡¿¿¿àààÿÿÿ×5×ç���tRNS�@æØf���bKGD ñÙ¥ì���FIDAT(Ïc` 5`)@å3»7  ˜f é«@å3*¢é@WÀ0Ð Ø Ñc*(@S \€¦ Í a´ c,FÜZÇ�Šþ ‚|àþ����IEND®B`‚IMAGE 219 ./arch/weapon/bow/arrow_frost.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 8’õÍÉ���PLTE������ù@@@¿¿¿àààÿÿÿ¦á:ÿ���tRNS�@æØf���bKGDaf¸}���2IDAT(Ïc`F€ÅÄMÄÙÙÁ1bA$ l RB�T¢¡¡hf„b³e�šäá@����IEND®B`‚IMAGE 246 ./arch/weapon/bow/arrow_frost.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 4‚X°£���PLTE������ù@@@aaa¡¡¡¿¿¿àààÿÿÿ×5×ç���tRNS�@æØf���bKGD ñÙ¥ì���DIDAT(Ïc` (@ã3£  £*a/TDSbŒEIºt%è.AWÂÀ8¨”4 ‰ˆU  ˜f  0»£ëa) Q,�¬È ‚!Ò ����IEND®B`‚IMAGE 229 ./arch/weapon/bow/arrow_frost.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ NÄx+���PLTE������ù@@@¿¿¿àààÿÿÿ¦á:ÿ���tRNS�@æØf���bKGDaf¸}���<IDAT(Ïc`�0B&‚"(ÎBÂh*„©`a@B£ ¢ ˜ ò™MB `hÁ`1�^£]¼:[����IEND®B`‚IMAGE 249 ./arch/weapon/bow/arrow_frost.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ¾[Tr���PLTE������ù@@@aaa¡¡¡¿¿¿àààÿÿÿ×5×ç���tRNS�@æØf���bKGD ñÙ¥ì���GIDAT(Ïc` 1`G0@S`¨ˆ¦@H¼�M1ª4 Œh 0 9BÍ €]i"š n¨|–Š´ k uì1��ÚÀÆ“+ð����IEND®B`‚IMAGE 225 ./arch/weapon/bow/arrow_frost.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ &qáÁë���PLTE������ù@@@¿¿¿àààÿÿÿ¦á:ÿ���tRNS�@æØf���bKGDaf¸}���8IDAT(Ïc`1€ÅÄ„Ù�!àììÀÀll,ˆX\\„”@€54Uk�ª˜¶ �� ˜áôœ®¨����IEND®B`‚IMAGE 245 ./arch/weapon/bow/arrow_frost.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ­7Ì$���PLTE������ù@@@aaa¡¡¡¿¿¿àààÿÿÿ×5×ç���tRNS�@æØf���bKGD ñÙ¥ì���CIDAT(Ïc`  `w@à(1@i FhOD×#$€&¨ˆnÑ R"^€®Ä-XЕ°¢+1Ç¢Íst§°3Ð ��Z2¢Òû(����IEND®B`‚IMAGE 316 ./arch/weapon/bow/arrow_lightning.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ò<Ÿ¤���PLTE������@@@aaa¡¡¡¿¿¿àààï× ÿÿÿFv r���tRNS�@æØf���bKGD ñÙ¥ì���ŠIDAT(ϕѱ€ @Ñ`AM¥–xÞ9‚¸‚#hË l® $XI%ñÿrü8»¹¯·¾GÒÈI£y*H@.¨@Hƒ „–a ™ $Ã@2üΨ™K@([-06TÀ&¨‚ˆˆÁûÁÖmB �ðˆôª„B?ð”éeú_€¢80c¾=>< >(‘����IEND®B`‚IMAGE 228 ./arch/weapon/bow/arrow_lightning.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ žß­���PLTE������@@@¿¿¿àààï× ÿÿÿ˜¸O���tRNS�@æØf���bKGDaf¸}���;IDAT(Ïc`€�f4 ì@@€IÙ…€�¦‚h¢£ 0‹ £ ‰  Æ‚¨°‚h* À�I$N*¼6P����IEND®B`‚IMAGE 248 ./arch/weapon/bow/arrow_lightning.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ /ÙÿÂ���PLTE������@@@aaa¡¡¡¿¿¿àààï× ÿÿÿFv r���tRNS�@æØf���bKGD ñÙ¥ì���FIDAT(Ïc` 5`N@å3™  ¨„£éMGå36¢é@WÀ0Ð ØÑ(a*H@S ”€¦ Í !´ cLBÜZÇ�œ½ ‚ù)ï£����IEND®B`‚IMAGE 219 ./arch/weapon/bow/arrow_lightning.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ |õwm���PLTE������@@@¿¿¿àààï× ÿÿÿ˜¸O���tRNS�@æØf���bKGDaf¸}���2IDAT(Ïc`F€YYMÄÈÈ�ÁQbA$ ¤ E�accT"..hf¸`³e�³oàƒÙ A����IEND®B`‚IMAGE 246 ./arch/weapon/bow/arrow_lightning.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ %9*+���PLTE������@@@aaa¡¡¡¿¿¿àààï× ÿÿÿFv r���tRNS�@æØf���bKGD ñÙ¥ì���DIDAT(Ïc` H@ã3&¡ H¡*aKlDS¢„EIºt%è.AWÂÀ8¨” ‰ˆ¦£ ¨„£ 0™¡ëaN Q,�Û{ ‚›#è9����IEND®B`‚IMAGE 229 ./arch/weapon/bow/arrow_lightning.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 3æÓÍŠ���PLTE������@@@¿¿¿àààï× ÿÿÿ˜¸O���tRNS�@æØf���bKGDaf¸}���<IDAT(Ïc`�0Bʂ (F¢Bh*D ©`f@¢£ ¢ (; ò™”]`hÁ`†1�?¢N�?÷ó����IEND®B`‚IMAGE 249 ./arch/weapon/bow/arrow_lightning.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ;èE¸���PLTE������@@@aaa¡¡¡¿¿¿àààï× ÿÿÿFv r���tRNS�@æØf���bKGD ñÙ¥ì���GIDAT(Ïc` 1`CP@S Øˆ¦@B,Mª4 Œh 0 9BÍ € ]J š ¦é¨|æô´ + uì1��g& ÞÏ9����IEND®B`‚IMAGE 225 ./arch/weapon/bow/arrow_lightning.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ &‹)a���PLTE������@@@¿¿¿àààï× ÿÿÿ˜¸O���tRNS�@æØf���bKGDaf¸}���8IDAT(Ïc`1€YY™I!`ddÀÀ¤¤$ˆ˜EC@€ÅÅU‹ª˜¶ ��àìÃç����IEND®B`‚IMAGE 245 ./arch/weapon/bow/arrow_lightning.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ f/£���PLTE������@@@aaa¡¡¡¿¿¿àààï× ÿÿÿFv r���tRNS�@æØf���bKGD ñÙ¥ì���CIDAT(Ïc`  `3@`OV@)uB( D×#!€&ÂØˆnÑ R"–€®D -XЕ°)¢+QâÍ5t§°1Ð ��HH ÀJqÈ����IEND®B`‚IMAGE 318 ./arch/weapon/bow/arrow_paralysis.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ;/¢¿¶¥���!PLTE������@@@aaaaÁ?‡ŸÛ¡¡¡¿¿¿àààÿÿÿFÁ •���tRNS�@æØf���bKGD hÐôV���‰IDAT(S•Ï1@0…áH¥L¡ c49‚›¨s G sdv“}ÙÊëv|ãǹÛš{½ìí÷Û¢î¸-¦Œd]ʨ‚ÀÈ‚Tï BÍ@¦�d #o @Éœ�o¿|ÀXQ¨€™€÷¨þ„Á à\OÈþ*#�ZÏ=ΨqF3z”±k�} ö�Ãè'îý_����IEND®B`‚IMAGE 235 ./arch/weapon/bow/arrow_paralysis.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ : +šu���PLTE������@@@aÁ?‡ŸÛ¿¿¿àààÿÿÿD­ ���tRNS�@æØf���bKGDaˆë���?IDAT(Sc`€�V4 š@@€I5€�¦‚hÂè"£*HSÁ*"Š*$,€" *"ª@@… šŠ�0�™§;µ“´����IEND®B`‚IMAGE 251 ./arch/weapon/bow/arrow_paralysis.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ :.Ì£·r���!PLTE������@@@aaaaÁ?‡ŸÛ¡¡¡¿¿¿àààÿÿÿFÁ •���tRNS�@æØf���bKGD hÐôV���FIDAT(Ïc` 5`n@å3YL@P­DÓ!Þ‰ÊgtDÓ!&€®€a p4¢)PÂTЀ¦@¨MAšBhAÇØ„¸ ´Ž=�>L AVqu����IEND®B`‚IMAGE 222 ./arch/weapon/bow/arrow_paralysis.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ;:ÏbRN���PLTE������@@@aÁ?‡ŸÛ¿¿¿àààÿÿÿD­ ���tRNS�@æØf���bKGDaˆë���2IDAT(Sc`F€UUM$((�ÁQbA$ ¤vF�ÑÐPTbiihf¤a³e�l° ’–c,l����IEND®B`‚IMAGE 249 ./arch/weapon/bow/arrow_paralysis.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ;ª���!PLTE������@@@aaaaÁ?‡ŸÛ¡¡¡¿¿¿àààÿÿÿFÁ •���tRNS�@æØf���bKGD hÐôV���DIDAT(Ïc` h@ã36¡ ˆ ¡*áhtDS¢„EIºt%è.AWÂÀ8¨”L@ïDP­D`²@×ÃŒ,T�¯× AmUÕJ����IEND®B`‚IMAGE 237 ./arch/weapon/bow/arrow_paralysis.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ;Ù›˜���PLTE������@@@aÁ?‡ŸÛ¿¿¿àààÿÿÿD­ ���tRNS�@æØf���bKGDaˆë���AIDAT(Ïc`�ƒ�0Bª‚¢ (AÂBh*D©`e@Âh"£*HS!ˆ. š€ÊgRM# €¡S€Æ��ËÔ§]zÜ����IEND®B`‚IMAGE 251 ./arch/weapon/bow/arrow_paralysis.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ :6ßÏ/$���!PLTE������@@@aaaaÁ?‡ŸÛ¡¡¡¿¿¿àààÿÿÿFÁ •���tRNS�@æØf���bKGD hÐôV���FIDAT(‘c` 1à@Ð@S ˜ˆ¦@D¢Mª4 Œh 0 9BÍ € ]j!𠿍|æÎ ¨h|��ƒ Ù}¢ê&����IEND®B`‚IMAGE 228 ./arch/weapon/bow/arrow_paralysis.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ :#²ËÏ���PLTE������@@@aÁ?‡ŸÛ¿¿¿àààÿÿÿD­ ���tRNS�@æØf���bKGDaˆë���8IDAT(Sc`1€UU•I!ÀÀ¤¤$ˆXCC…@€-- U[ª˜¶ ��¿% ’¤"ÄO����IEND®B`‚IMAGE 248 ./arch/weapon/bow/arrow_paralysis.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ;Oå���!PLTE������@@@aaaaÁ?‡ŸÛ¡¡¡¿¿¿àààÿÿÿFÁ •���tRNS�@æØf���bKGD hÐôV���CIDAT(Ïc`  à0@àlV@™„&0£]ˆ�šc"ºEƒJ‰Dº%´`AW¡ˆ®D‹4{4ÐÂÁ@+��xj ¬5«š<����IEND®B`‚IMAGE 318 ./arch/weapon/bow/arrow_poison.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ VTô���PLTE������ ï+@@@aaa¡¡¡¿¿¿àààÿÿÿig���tRNS�@æØf���bKGD ñÙ¥ì���ŒIDAT(Ï•Ñ1€ @ÑVâ¢+7ÀÄÄ#x¯àtäèÚB ­“LR_üiøqvs_o}ެ‘;³Fã\€XP -Ã@2H†dø œP3—€P¶Z>`j¨€MP ƒ÷‚­Û„@�àéU …~à)ÓÊô¿�3$5p`Æ |{|�‡pävVé����IEND®B`‚IMAGE 228 ./arch/weapon/bow/arrow_poison.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ²nœÏ���PLTE������ ï+@@@¿¿¿àààÿÿÿ¦u»���tRNS�@æØf���bKGDaf¸}���;IDAT(Ïc`€�4`@@€Ù$”€�¦‚hB£ °‰  8 ; Æ‚ˆ‚h*À�ið]ܶ–����IEND®B`‚IMAGE 248 ./arch/weapon/bow/arrow_poison.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ¡™���PLTE������ ï+@@@aaa¡¡¡¿¿¿àààÿÿÿig���tRNS�@æØf���bKGD ñÙ¥ì���FIDAT(Ïc` 5`)@å3»7  ˜f é«@å3*¢é@WÀ0Ð Ø Ñc*(@S \€¦ Í a´ c,FÜZÇ�Šþ ‚|àþ����IEND®B`‚IMAGE 219 ./arch/weapon/bow/arrow_poison.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ¼µý���PLTE������ ï+@@@¿¿¿àààÿÿÿ¦u»���tRNS�@æØf���bKGDaf¸}���2IDAT(Ïc`F€ÅÄMÄÙÙÁ1bA$ l RB�T¢¡¡hf„b³e�šäá@����IEND®B`‚IMAGE 246 ./arch/weapon/bow/arrow_poison.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 7Óˆk���PLTE������ ï+@@@aaa¡¡¡¿¿¿àààÿÿÿig���tRNS�@æØf���bKGD ñÙ¥ì���DIDAT(Ïc` (@ã3£  £*a/TDSbŒEIºt%è.AWÂÀ8¨”4 ‰ˆU  ˜f  0»£ëa) Q,�¬È ‚!Ò ����IEND®B`‚IMAGE 229 ./arch/weapon/bow/arrow_poison.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ %íkÇ���PLTE������ ï+@@@¿¿¿àààÿÿÿ¦u»���tRNS�@æØf���bKGDaf¸}���<IDAT(Ïc`�0B&‚"(ÎBÂh*„©`a@B£ ¢ ˜ ò™MB `hÁ`1�^£]¼:[����IEND®B`‚IMAGE 249 ./arch/weapon/bow/arrow_poison.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 0€¶ð,���PLTE������ ï+@@@aaa¡¡¡¿¿¿àààÿÿÿig���tRNS�@æØf���bKGD ñÙ¥ì���GIDAT(Ïc` 1`G0@S`¨ˆ¦@H¼�M1ª4 Œh 0 9BÍ €]i"š n¨|–Š´ k uì1��ÚÀÆ“+ð����IEND®B`‚IMAGE 225 ./arch/weapon/bow/arrow_poison.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ  ¯ÙŒ«���PLTE������ ï+@@@¿¿¿àààÿÿÿ¦u»���tRNS�@æØf���bKGDaf¸}���8IDAT(Ïc`1€ÅÄ„Ù�!àììÀÀll,ˆX\\„”@€54Uk�ª˜¶ �� ˜áôœ®¨����IEND®B`‚IMAGE 245 ./arch/weapon/bow/arrow_poison.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ +lj7^���PLTE������ ï+@@@aaa¡¡¡¿¿¿àààÿÿÿig���tRNS�@æØf���bKGD ñÙ¥ì���CIDAT(Ïc`  `w@à(1@i FhOD×#$€&¨ˆnÑ R"^€®Ä-XЕ°¢+1Ç¢Íst§°3Ð ��Z2¢Òû(����IEND®B`‚IMAGE 1758 ./arch/inorganic/ashes.111 ‰PNG  ��� IHDR��� ��� ���szzô���gAMA��± üa���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ Ý6 Ë���tEXtComment�Created with GIMPW��6IDATXÃåWÛnÇ=§º{vöÆåR¤DŠ‘h[ˆ„°`yðø1ÈçæÝOA®P€ØPɺR¢È%¹·¹twåa‹ÈÊ©PyL Ì jªNºt5q½�ŒmÀÄv‹O\î²pÀ�wì��h�Ìè§�ð×-��Øеo}�3p ÛÞv  g€7Mæ5€ç�æ×02%#�ûÖ¸iaš±9€cch À}�ŸKoÜ��<¾€¾¬Œ¾)Ëf|oÍ 3/…�·�DÓ‘l_€xg¡è˜‘s3г¼Ø¶çl� àh-Ôb!é—æÀg�¾ðµyò;�Ï̃¥yöÜâÞZlÕB@{îØ�ðÆäú��¦ÆÞ¥Uð�ßšâÛ�¾°rKæ]`±Fic%ºe†²=6CS“YØûß�ü@º Àoì›R1ŕљí}—äȉd'2 º’½ø§1¦jcfüŸÆæùU!xb™{QRç{ 'dé½—àýFð~8 6›7UµÑ¶m§i[Æ”²Éß³aùá èe œÛöüÀ1xçö‹FÁ{çEH² ÞKN鶪îŠÈ-®J®ŸsN¦#¯5ª�ॅ¨½ À)€¿Zœ^9‘yð>!$U- "½suYUÓ¶wªªº[7Í/bJ÷�ÜTÕ¾åÑÂv²P¾°çÅU­¸p¼·³#ι›9ç]’‘…y#eQœƒ¥�ébñE›Ò=¨ÞÔ•ÀÉUU˃‹2~f ­�¦WõïίcŒßµ1ÞÞg¨ž8ï_ïÏœÈy(ŠP×õƒªiöꦹ«À†!'ªº€HYiÎÓ¬ºðÊè×…•Û¯�ôú½žäœ¿mc¼£ªYHÒ{ï—£á°-‹"ŸœÝmbÜocÜJ9ßZÕ<ðŽ"çQ€1Æ^LéŽ%`c¬¼`À7VbRxÿeÕ4ÈTHuÎ9!‹ñxº92¦´±|ûöÁ¢ªnÄWg�9qäKïýÔ;'Î9ŸsîåœGND|JEÓ¶ï²êï-'Þ°ÞÇÑ+˃”s/x?K)9�¾Se¿ÛÝ=ŸÏ‹£ããrQU{ª:òÎõLá¤(ŠEá}$Y眳irλBîÀûq?„Ó¦mÿ\7Í0Œ–�ôºÝnJ©ê–%E$ÄcʹÿäÅ‹‡uÛ€w"CUíƒ, ’<Ωªº6ÆÍ”sPÕ’"Á rxÿà`ÿÑãÇOàÔêýóàýpØï/„œ4mËår©óº–œÒŽc™$¼s™¤³ã÷•¯IÆ&Æ~JÉ©*UµC‘q<u"a<í|( g�þàÙÎx¼%䃣ÉD–u=ˆ1À€"{² S+"IÈšää €9¬@‘s^v¤,InYæ§n§³özËH3žˆ|óæøøyÓ¶cÍy@IrHr€U] Ti2É®u¼FU§´ŽgÆ7…,œÈ™sîÝæÆÆËÑpxzåHv|z:ÚUõLU{šóCûvÒU6¨þ{* �n€!'!„©ªvHŽEdÃ;×ïO‚÷ºÎý^ïìJ�MŒmJé5ÉŽªº¬úk¨nƒ�ò¢‘¨€éInè©ê¸áDU³÷¾ ˆHM‘$¨›æ¬±º@JiVÕu,‹¢lS*rÎ?¸O²/¤@$ E2I'd0º$K�Á;—¼s@ÃU浪3I1ÆÙǦâé²®!dH9{ÏEõÈ_*©XÅéêªw@äj€¼VŽxMÕEèËG“Éôc�&)¥Îl±¨s,ŠbF‘#’Ÿ‘ìˆH sÁ†îúìH29%Y©ê+5EÔ{E]ýáûï›�೪Ï1ÎÛgÁû§¢8(Šâ†ˆ8Ì9«ªù¸ˆÐ‰(�Í9'U©êÜíb¹<|~x8¹ì0úù:²öÚ¶1ž´1>ÆbñÓÚ„Ë5ù  ‘&xï‚÷¥ˆ¨ù»ù!„ð—×GGolŽ|ïºõßÞ ÷|eŒ]»\ ÖFìvmæ_ø À<2g.½ïý/‹ÖFky°´1î“ï‹ÿ_ë_Æ@ÞÈ`¼8����IEND®B`‚IMAGE 380 ./arch/spell/Bullet/asteroid.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���SB6[›.0òcQx½½½ÖÖÖ�1�'u==u{{žœœù«|2¹���tRNS�@æØf��IDATxÚ}R ®„ ô ÌíýïûʬA f«‰1ó­r¤šãmpÝâ"1¸;°¹7³ãE?äÞZàÍÉ]†\²º"üYØCÆZÝ]=ð K¸+Ã÷âÀZ58Ön6ú…øŸ… õ€…xÔD-ÑNBKW,´xî Œk‡G±~ÈjT‰zº ²E)½÷Q£ò,T³lq–5ô·ŠÀbAëcþwRØÒÓ}žfí$Ü“Óï§ö|vµÜ÷Ó6_¡ÞÐõNÐê?Žõ…áî½ÙûA>E®›ÈÏÀ5_‹x`"Éómÿ7=cû2;þàd  £~����IEND®B`‚IMAGE 321 ./arch/spell/Bullet/asteroid.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���==u{{žœœùSB6[›.0òcQx½½½ÖÖÖ�1�'uNÖÚÔ���tRNS�@æØf���ËIDATxÚÕ’1‚Ã0ÙHàìÿÿ{®"'é³.Yâï÷â3_ªAˆø€8¤*xú]{—kJo$Ô@`眾ù±©¬:ªœc¦wÀ«+(-™)y›ài¨6€läWp«ÿ๘äx!Œ ¸&´‡Ú€@¸Ô%zÌqÜ Ò%H«‰7‚òði¨ r©ëÓ´Bûo€[@šó û=$6­ {‚Å~•9‡³Ýí˜sF„Z’ö¸¿Ö˜™¨úƒý9;×:uÐÃÃWÂ+ß—öçòÐd Â+ Fî����IEND®B`‚IMAGE 386 ./arch/spell/Bullet/asteroid.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���{{žœœùSB6[›.0òcQx½½½ÖÖÖ�1�'u==uJ,³D���tRNS�@æØf�� IDATxÚm’rÃ0C‹†ÿÿ'8‡ÄJ®¸§‡BZ>̬ÎYêýû^îD:Ÿ¶�*òûì®ÑUúŠÈ¨Æ»:ÛpŸã~Hù>˜¡0õ9ʈš€ø`:Å$—°'XÂ8¢N1pO�¡Lˆ»€‘Ýa§oÔ€��¥.@o`c ˆ.J¿€,ûÂ…os&­ˆ˜ìwˆ[Ú)V5ó1ÖZP"~ ·#!kLæ¿5Hí  —Jðsm¿�*JíCú@ocHÙé[NbyÐn-w~}v»Í]ïù ;6ð;#ì0¤{n OGþ{wò‰/¶¢«Ãònê~Ôþÿ¿õ@¯?F ŸÓO����IEND®B`‚IMAGE 376 ./arch/spell/Bullet/asteroid.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���SB6[›.0òcQx½½½ÖÖÖ�1�'u==u{{žœœù«|2¹���tRNS�@æØf��IDATxÚS‹nÄ c…äûÿÿw®ÇÓV«RSü ¥”âåøVlïøþY{žp(Rî ü}£ë‰^-ûFGx»w ‘ÒìÝI¸*M€Ø'V$ÔŠÁ÷‚ÅÎÆ¶ ™ŒAèVø@¾„`$/’!¾è^˜Bý±„ŒfŒ$2{ú%Ên>!j&Ì^•öÎóÔ(n÷lÂEÉêE£9i\?À)h™�ã‹2¶Äæ–*2ø¥A~ææn¦Öô‚Oë½Õœôöš ­Bþ#ajû„e™@ Ý¿! ds*¿\ $ï¿(–àÁå:¯Ä™ºêCšg‚«çmz„o˜8 ²ï+ ����IEND®B`‚IMAGE 388 ./arch/spell/Bullet/asteroid.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���{{žœœùSB6[›.0òcQx½½½ÖÖÖ�1�'u==uJ,³D���tRNS�@æØf��IDATxÚ…’ƒ0D…ÙÂèÿÿïЙì6[ž×{‡Ô€_Ü¡>}rð6«©o.¿Àw•÷5¿p‡ ÕœÔ:Ô ¨Z~ÈP»ðj@žÌþžàPciÛ!oìÑGs§4E¦5çöX‚_D¸o€:˲}±wÎP?Ç5U#‰êœ'0ÆZKÍl‚Ð>±jL 1EÙÜB%j,ƒˆ9Èè½Gáhƒ¢ôÃDE>è s„Ú�' FBŒ€à€:DDøo�Gf  ¾Ý¦PÇ $Æõ¢ðë"°bÀá,æTep§Í“ÜÏV~ÊØ%>¿É¹KšbV½u èD©•»Zí¿; ò–° ����IEND®B`‚IMAGE 383 ./arch/spell/Bullet/asteroid.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���SB6[›.0òcQx½½½ÖÖÖ�1�'u==u{{žœœù«|2¹���tRNS�@æØf�� IDATxÚ}“ƒ DÐÛqýÿÿ]— .;ÍÜò^‰î؃íÇ“ãFð˜0/S‹¤w¡¸î À½!έWÑ×]Úgò+RO|_óã0süÌŰ,¹óü[˜“î)ì«!Ü 9¹ñ[ð�’Mq—lòóåòH‰u—"™»¹j9‰µa'«™yk­›@9 Š›¨ºVtÁMèÈ"R#° îÖya¯pyëK0žqw @ è‚©sÓ°6 C qññT oÁúô¸‡„sŠóÚC¡˜õ�擪•756[œ¥’›PÞA¤›† F&OÃßÒ_úïÿ˜ïû|“F+ý�Ï é=ÎÏ����IEND®B`‚IMAGE 383 ./arch/spell/Bullet/asteroid.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���{{žœœùSB6[›.0òcQx½½½ÖÖÖ�1�'u==uJ,³D���tRNS�@æØf�� IDATxÚ…“nÄ Cg¯Ÿùÿÿ]‰X;´¥*øÅ”~ý:,ýHÚgZ9í9úéè1Óc4WòÕ²U“Ì `ÿNò¤÷ô?V©±ÇIÕ2žr#­{Hâ¹ë¶îÇ&çÍhê×7A’ ¶$n€äR€ ƒ¨å2ófp¹F[k¥$ åfeС¸ŒšçXÌ€ºw�Íd*Ïdt½¸[l5>@H _Ý€d·ØÛŠê@ ëèè"R@ @@ ½ èÙ`³öö0abÔP ÆX�ÖêÍÅ-µi—j#‹À8Áb‘  Ùúø­H¿€Lïþ§^ãÓSß‘©Ÿã,þ�—Ó Ýí jŽ����IEND®B`‚IMAGE 372 ./arch/spell/Bullet/asteroid.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���SB6[›.0òcQx½½½ÖÖÖ�1�'u==u{{žœœù«|2¹���tRNS�@æØf���þIDATxÚ“rà C·‚UYúÿÿÝì”îX–®Ê]ŽCãðñžðÏ$€?gÏ0ž(Z/sOö%‹•w‘Ú€éy±¯m�a«³OZ ÂcÑ±ë ˜cr €x7rq°¼{NG% ¨OÚØ¨ …ˆP`Êô^ RbèÞXQéUøPH…nƒ3lõê=ŽpÔ•`§ír×Q-Gi½-ÛX«ëIEhùY 6Z]…’\P*iài—˜2•¢œ¢^·»ˆ1(Ùâ÷À®å[7)¾T_ÚøñV³²mçܾÆh$3ÙÛOÅÒfï yèÕei÷ xÓÚ«;“û¥zŽÞN¸Üõ C 8µÖ����IEND®B`‚IMAGE 389 ./arch/spell/Bullet/asteroid.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���{{žœœùSB6[›.0òcQx½½½ÖÖÖ�1�'u==uJ,³D���tRNS�@æØf��IDATxÚu’và Cc­`ÕÜÿ¾³RZpÇ”4<?ÿáæZ"yý'n:¶1,¯ˆëD�ñ4sÀlœ½OÂ2yÜú­GI¼-ȹÐ{8á6¢…vùÄž€åmž2kaRË´î|ï†1Sl€›ë†[ Jñ¤D܈\È:%ø’pËür€2à*!4%óÙG=FÂéÝÂzåß%£=¢+À£µ�¬“jÍÌ¡�=Y»ƒˆÇ ©a||†|ŸïP½Ó Sj)?®¥9÷Vû.xþ0×s'ê*÷•‡XWJPµ&7w�·lß“»,R^ꔡfç霵ââT-ð_¶¥ Ý Õ·����IEND®B`‚IMAGE 222 ./arch/misc/Container/attache.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿ�ÿ���x^.øún=†Ðì���tRNS�@æØf���€IDATxÚ½Î1€0 ÁìåÿΊ(ì[Ø#“õ[{! ôDòÁ(P–|! ·(B0—€�Ï„$à äïB>A{$ÿ`°áEt°oPª�Óà¹ú ¼¥ä¶7(qVñF&8Ñ@ ­•Ö]•7È)è����IEND®B`‚IMAGE 368 ./arch/spell/Golem/avatar.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vc2�1�-ŠVcD���ŸQ,٤ͅ?�c�ÿ����±!!ÒiþÖ�íu�WMøŒ���tRNS�@æØf���ëIDATx^•“ÛŠ1 CW’/É\ºûÿ_»fZ(-q¡Æ/GÙŸEDýw=À÷†øÂÐ9N^¼5pßÏO†sÿýãÇ&4–}g‹ƒ ž'C±^O�£D¼•q—¦køÁ�_ „1 "}ºÑa¯Í wÑÇ[Âñ Ã7¨¸â­¤BŒ›²x%,$ÀmÖGZßW êÎê&Ÿ¡"àž.°á,^JÄÚ ÀˆÍ'lí8‹l¦@li¸*àl–pŸ�<Áf‰¹ÈܺS›{5Ö�²¸µ„iOY×Rû65BOþ ø]lo'?����IEND®B`‚IMAGE 376 ./arch/spell/Golem/avatar.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE4VŸQ,-ŠVÒiíu���c2�c�Í…?�1�cDÙ¤ÿ�����þÖ�þ¤�ÿÿ�±!!¿¿¿MÒŠ©���tRNS�@æØf���êIDAT8˵“ÁRE! C£¯¦7êõÿÿÕ…Îè¢,í–3 M`Œ¿ãßíü3àX¶}G 8!Ò¶¯ëŽìÀv\ï¯w< àG¡³ˆ…&ŽëŠv£ŽûwHRJØe;V¿FÍܵ+Œ‰Æ$(ÔŠP Œ¤ €,V{ϤŠ7ˆìFBÕ³u�>Ð^Úzj|’ãd±ò%µO€“=5•œL€Rš'…¤6}_#ÉØ°’>¨a¶æô1iÒ1I æ¡‹[O`º^¾@jO©·H²€ÔŽÕ*Ø àð9íô°¿ç_3 Ñp»¨����IEND®B`‚IMAGE 371 ./arch/spell/Golem/avatar.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2�1�cDÙ¤���Í…?-ŠVŸQ,ÿ����±!!¿¿¿�c�Òiíu�þ¤�‚=<>���tRNS�@æØf���ëIDATx^ÑéNÃ@ …Ñ~×kÒxÿ—¥ƒUè Hµ”øÇ=òl§ŸÊï:ïQ/€|<ÄE| ö}5Ðþñ~ùoB°"Úwý§.w_&Sv´™Td¦@£:ÌIAÈ�®A€áÞª5õ4!\ €ód‰$"‘ Ÿ7)*ÌAÚóm˜ `ñœÐ:­�a[`¹�]÷Ü…­®¹—;:ÏsP\} ¼n«M&åjjKz wgüθ´o `”Ôv£3K¸o >Dkˆ\œâV€š‚°ÑdL„Yæ½âO)çE¡ß’����IEND®B`‚IMAGE 375 ./arch/spell/Golem/avatar.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2�1�Í…?-ŠVcDÙ¤���ŸQ,��±!!�c�ÿ��ÒiþÖ�íu�¿¿¿%PÜÎ���tRNS�@æØf���ïIDATx^­“InÄ0 ]ÍÕöL–ÿ6£ä0I,„KÝ!mÏèg|[ýÐÿœzög„î÷l-ë)`¯o÷sTP÷Ba¬ÐTc�Û&ÒÁ®mé<Õê ¸*tãõ匴 @•»S»Aü60<£ /MŽ(*« €ãrƒU&Í¦ÙÆ-Ý<b>i‰ '4ô§ PKKàÅö4[yÛ3Û–ÀgÀêÁÀn` ) H{Ð0,wÈÜs8þ#-|�k aéYÄôa7ž7 4lØ j¤¹‚á–„ç¡)Ð�Ö"d½øYÖý(?ö�*F—Ói|����IEND®B`‚IMAGE 168 ./arch/wall/awall/awall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vaaa!!!���«4à‹���tRNS�@æØf���JIDATxÚí“1 � óÿ?‹Ñ¥2Š·z^j8p �”×” O`» ò HALàv …x8<Ï=a¯jT¤àýXMµø̶ë;,����IEND®B`‚IMAGE 208 ./arch/wall/awall/awall_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@›Ô©Ô���tRNS�@æØf���oIDATx^}ÌÑ 1Ñ´p¢ƒÙ�›–ë¿&ä¤õç“ÆCË€Šû=¾Ë,Ò`VL¸ � ÿXúp8“"ˆé‚µ6d¯ëù 8Lˆë16pBx¡?°B§ ¢-¨èAE*ZX*zX»ø�´¦ ï‹Ú<L����IEND®B`‚IMAGE 150 ./arch/wall/awall/awall_1_short.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷!!!BBBccc���Ðc\ ���tRNS�@æØf���5IDAT(‘c` 3PR@å³(©  ¸`qqAp6v@pDp16A3]`äEÀ¡�|§¬†����IEND®B`‚IMAGE 269 ./arch/wall/awall/awall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���©IDATxÚ½“Ñ ƒ0C—Ìûÿ¿<né!w£ {1`Õæ4†J_Ïê:é˯ƒþ�®÷=pÒôý+É>�X.[>óX=Z`^í•×Xþ^²¬hkIbZRü(>Ö·�k¬,Œ†˜‹´�]�l(~§ƒñ&M€ôìU_ø =»*�á ÚðI'”,“³˜ÝÑí“+¥"{ŸPR€•Ð>áéÈ3�ÂB Üèû/“àa“éM����IEND®B`‚IMAGE 196 ./arch/wall/awall/awall_2_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷!!!BBBccc{{{���cºuï���tRNS�@æØf���`IDATxÚÅ’A �! Ý4ýÿ—×"=ÆÀ î\3H"wÉFæh¾ ùx¡Qy,rh,Aç˜Êö`*¾lC)TC3¦ÂM ÷`'àdB�ÁûŸØÂºƒÊµ�´ÐŒßxÐpÄ ¯Lá����IEND®B`‚IMAGE 287 ./arch/wall/awall/awall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���»IDATxÚµQ ! CGMîå5NfÄÏ Ø‚y´ÑÇÂSœ$ž”�ȸƒ”Ï;Àµ¢�k,pÓž˽²+ÃÐö¤[ùÝj­÷�²:g�ï["ó' tr³%°üÔñ“p¾j;`ß!ÔbE�ò€VÀãY OÀãÏ@²æèDH'pL�POsNE=G ¿Ï”ïÖ XíÍ�ÖJíQI@7QbÖzgxKOàT�=ÿ×lèçÍ7����IEND®B`‚IMAGE 194 ./arch/wall/awall/awall_4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V!!!���@@@ÆÐÏ1���tRNS�@æØf���dIDATx^eÌÁ €0 …á’[»‡Ù(uÒWp .âQD}ñßé#ü$Ü£5¼K§ÿP=({ÄÖ°z”n@CY¢5Iñg\†(c P§ ¨¢ééhñ²!nÖ49?Íl ?vWˆÅ£����IEND®B`‚IMAGE 123 ./arch/wall/awall/awall_4_short.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���BBBçÆ÷À j���tRNSÿÿ�×Ê A���IDATWcX+V­b�1„àd¬ ƒ1V$�oC§áû¤P¹����IEND®B`‚IMAGE 187 ./arch/wall/awall/awall_5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V!!!���@@@ÆÐÏ1���tRNS�@æØf���]IDATxœc``˜:í,½Vã2¦†^ƒ2Rà Œ™s¡Š—σªY^eÌ…+…*žc̼ Õ5fÅôÐohŠñ9c*Ôäi¥0“Ë Œ©7a–FÂáÔ´�;uT7èVÿp����IEND®B`‚IMAGE 193 ./arch/wall/awall/awall_55.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷!!!BBBccc���Ðc\ ���tRNS�@æØf���`IDATxÚÅ“A À@5æÿoî ‚—êBzh®3„xÐ^ÂŒÍ!|è¢Ð\š‹Bó«23#‚&µ�¾œ¬\¹‘ŽÔn'üó;Åç »Ð\ŠëBqEØþõéõYaó����IEND®B`‚IMAGE 252 ./arch/wall/awall/awall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���˜IDATxÚÅAÄ Šÿÿå­Ф¸ªª½¬¯…ÁŸÿdÔÜö*ùÇ+�ïè3ïú´ö èD�è¤~\Zó^ „¸`@�` ùDH®è;Ô>�0(Cp�@Ê-]‡Ør70À Æ’ì9önÀPü¢�„ãeÉ©ÐÝ ÖÞ‘\©T(*ÀÌø7݆´}=ø����IEND®B`‚IMAGE 262 ./arch/wall/awall/awall_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���¢IDATx^ÑÁà À´�X3TpR¢dõßJàØ"¿Üsš;x}¢Pöóu¥ÂXž Ž �X‡Ú³€ö‘ ª¦O¨¢§D–pÃæQꙀž�¼ ] 6ªÊ dV/N�>o¤p4Q¡0Ÿr¡0߉üž‹éhš¾À2‹åãFZ�Ó1®P^€tÈÅãÚƒ¶µíØÖR;¶µÞâÖž?>û ªÊTY&ÀQ~����IEND®B`‚IMAGE 258 ./arch/wall/awall/awall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���¡IDATxÚ½“Q €0 C›,÷?³Ðv Np?b>´#¯ò?dzÏÀÙ¯� 0ãX€‘yk®©û(‰D½E²¦ äàÙ­Þ@-c�yö&¬}uîÈ ˆS²€bÝ?%ù�°6}Kî#+ 7}Kà«LE÷ P6“ÔœÍ̆3ØîØ€ü<Њ64 Û÷ãØž¢ ÚÞ§'~Í9-ø’W—Ð����IEND®B`‚IMAGE 170 ./arch/wall/awall/awall_8_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBccc{{{���ŸmH}���tRNS�@æØf���IIDATxÚíÎ1� CQ(ÜÿÌ“Ž”A‹í ÁÞ•¬Ø]ú¬Òj¡1wÜ!?(At€¨ pß�i› ­¿³ AÞ6ã;Æ����IEND®B`‚IMAGE 259 ./arch/wall/awall/awall_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���ŸIDATx^¥ÐÁ Ã0 Fa­`AУšÀé=/PµÚ•ÓD9úè;Höm£÷mÉ·ýµ<®aË^aœû†¬ýÆe3P[gh4@iGˆŠãè]æžž4O¾pt°"dç2Š›EHìh…VPܰ“7Ó ì 㠄¨€œ„4àjJ¨)Q’„Zõ"<O³ž¼Êû�˜I8jT2����IEND®B`‚IMAGE 257 ./arch/wall/awall/awall_A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa���@@@}3���tRNS�@æØf��� IDAT(S•б‘CAQRX2à\ÔæÓü;Cr¤6Ö˜ªm"¾çç…¸/|¼9 Ò?á0¥ò‰£¥IS¦¢‹fädKaôÕú´tþÌ'R«–«hQÜé}e‹©Äpô冩JkÚb“ÏïrÚ¸Ó’@ë²]ŽØñ«Ö2çgƒœÂ-ûŠ6[]+»Ë}Ö¹S)¬¬Z2õîô]Óû‘¿çþÌCªÌõª����IEND®B`‚IMAGE 236 ./arch/wall/awall/awall_AA.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷!!!BBBccc{{{���cºuï���tRNS�@æØf���ˆIDATxÚ½“Q €0 Cµëîe!úÄ‘Õáù(ÒÄøØpûW}¦Á×—@ß×™ž~sáÔHO_ëh-½@ëkDx2K½X°Í’@ÛšàhY��¡€Æƒ€‡ˆ!à°àð[x¿ÆH%ªC«<D>Ž“p8(|®¾ü[~Õ|‰Ž[/t£����IEND®B`‚IMAGE 284 ./arch/wall/awall/awall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���¸IDATxÚµ‘Áà C ÄÿÿËdËíÔËæC”'ãX5ªÆÔ,E²pj¹æü r<u×,ðE?�êEèVkýIð„³1v…á U{S…=Y¢Kë Õ±»x’\UÝÎ�þ¨E‹³0%P‹y°Ó'-x Û$ !ØŽ¶óq¯{o¡ëE%ƒ�‹’H…êV' 1 Å pD;›Ó~ül‘'2–ŒÙâ|ñl¤[Ô‹ð}�'* Þì ����IEND®B`‚IMAGE 259 ./arch/wall/awall/awall_C.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���ŸIDATx^ÎÑ B! …aW¸M Íe`®Xìþ«x ÅÏãøÓÛ»Ü:ØÚë7|5> c9�Lô.$¢|¦<ƒá)`6B{S<˜8 •3`|Ø@{TJÜ£Q$&fB"9PF¢ÔÙP%€¹h–˜€³vPB´<VÔÑ+»¨(ÕC0\‘gãÂpE, ÆJ®)ï£m×oyK™’ŽâÐ����IEND®B`‚IMAGE 268 ./arch/wall/awall/awall_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���¨IDATx^…ÑÑi1 ákÁ‚àÁ®@ë ´)à´§þ[ b¯ù¿‡A Ç{vªÚ¯ÇÜ©×12Xè çÚÄÚÿðWƒ¹ …TYàxmóŽg á €Ž€e é„Ú‘ ü;ŠéÍ ô é‚^«@;x³kî)Úy'ØÁ¥ öyG¯œ#Eqš^z´C‡æG™]ûomüþíP ô¾ã :´Qè†+“t����IEND®B`‚IMAGE 299 ./arch/wall/awall/awall_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���ÇIDATx^ÐÑ ƒ0 EQ¯K V™ d‚ÐjêýWé{nJU¾ªúÇèGùc¶ÓHœæ‡ð⑆½KЬªGð‹©™×ëŠPîK`‡3,¦FƒÛCXnE4Q»6„‚‡¥ò…Lœ(1QD(ˆ4–ZÄú22x1vjbîŠ4¨ MG�t/®@Ç-Q`&a@·ž¨×üZ±gà=¢SôDÃ-2Nѯ…3ú¾v^ÏÐZ|…†™á ~^wózGÏ����IEND®B`‚IMAGE 310 ./arch/wall/awall/awall_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���@@@Jî÷F���tRNS�@æØf���ÒIDATx^…‘Ám…@ DÝ–RÀZPÙ L ˆÁý·’+äç¹ z^ž,Y˜8Üc¯Kî~îó'ˆòop<©‹%õ’ÿÁ_‡Ý`Éb jèòÍÔ,ÇŠ=8“­Ð•ft°-ʰ Ñ–Úê� ËÀ70È–Z@Q·´!bJéêí ØÆP(övhƒPÄ @›X&x´ T<�¢(ô’ i¼·2“2HÙÒÄ Ž„âlÀ¥…-fK+­…-ú¶ü&æëm§{ýŽ|O?ÌdÆMÖ����IEND®B`‚IMAGE 211 ./arch/wall/awall/awall_w_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ!!!@@@���fff] ÎÓ���tRNS�@æØf���rIDATx^¥ÑÁ ƒ@ DQZøvðB#* ¡ÿš"‘Ö#å€ðñF{¹F;(Ǻüf§2fÐÀ�¨ ¤ê¡¡5:„…–‡‚…¦ƒ 5_=Þ¯s›CÎñ¹`®¿Ýª/«ŸÙ’—s ž·…ñ÷„÷ŸýŽBPÓ:–����IEND®B`‚IMAGE 242 ./arch/wall/awall/awall_w_0.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���!!!@@@fff™™™¾„Þ���tRNS�@æØf���ŽIDATx^ÑÁ Ã0 Fa¯AÐÀR¼@›Íþ«”Š-‡B©ŽßáÁo—÷É¢QËç\m &�<ƒBÏQ“jlŠú%ÊÕÄ‘5¶æj·V¸ó8ö­ÜÙ£tXà<KÉó×x¦ùëcCpm­ƒœQGP4ޏÌã.`?¬M`®–âÛþñÙ/–«%n܈P¡����IEND®B`‚IMAGE 243 ./arch/wall/awall/awall_w_0.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���!!!@@@fff™™™¾„Þ���tRNS�@æØf���IDATx^Ñ1Â0 P_!–ØëoeoìrÒ4÷¿ b@‰]!!þø†ý˜Þá°x£O Ltv$�`Àl±T¹iM¥v)E*• làêÛ�5ÑÛ½M°ãÑu.ÝqЗe9O¢8¿®æ×îsÃd~Exz�x�ã<îúÃÚ�š¥€ûÂ?Žýç÷$Ê^9ö����IEND®B`‚IMAGE 251 ./arch/wall/awall/awall_w_0.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���!!!@@@fff™™™¾„Þ���tRNS�@æØf���—IDATx^Ñ1Â0 …á\¡–Øñoyoº£r‚¦êý¯‚Pã xË7¼—Äå32h]Êw&B­© �D…"‘CMË`Ch4Â×ÔâžB•±eE¼>.°Ðã¶Îl¼ög¹�6ºs‘é^ÒLÄ™H*êûÜâ¡}‹zãL7=­û„´á [ `øï×’ÀÆEÔ\,û ­[$±²wªo����IEND®B`‚IMAGE 267 ./arch/wall/awall/awall_w_0.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���!!!@@@fff™™™¾„Þ���tRNS�@æØf���§IDATx^‘=²ƒ@ ƒ÷ÁúXÆ}ž½�}?÷¿J&E‚M•ßx¤‘UÞ¢ ö¿òQc‰€'�À†HDý˜L…ÑZî’©Í0í€ÎšR¸Ã’Szz9€¯m `1•p+I×KÉj`Ï|á`MJj|€;v?HË«‚ý?ÄmÛºtXìôSz ¦ÀœÛˆk�rJ�?™~wùaìj’#v sN����IEND®B`‚IMAGE 265 ./arch/wall/awall/awall_w_0.116 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���!!!@@@fff™™™¾„Þ���tRNS�@æØf���¥IDAT(‘•ÑAÂ0PŽ`ÝËOÙ+˜½µö�­Éý¯âÊIÈNv¼ d�""â `ñ;ýb‚Iê�°%€�ás~‰çÖ4ñ’j~t´„«0Í­„¡›†_ö‡85à ¦.8™P€õI®1§ÓÓ„Î>+kyWÔ[ƒ‹|â{7‹q)k7ÜŒÃävšõÒ5Ulq§–ÒA•�ïò×±¿h!®ó+)����IEND®B`‚IMAGE 248 ./arch/wall/awall/awall_w_0.117 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���!!!@@@fff™™™¾„Þ���tRNS�@æØf���”IDAT(‘¥Ñ=Â0 `Z°×Ïø�8ÊN‘º“4½ÿU˜PtBxüäɈˆxXÒƒ¾5ÁE#pÂ��|‰`X.0çW·TyÑ=GPk’èñ>S�ØJ±¸Ü©¦æ.ô?\G8]áòìá&[ßÃðÚ:0T—wì€VKá…bX%|Œ«ƒ¥P—­ÄHcPèà§°?c¼È,E›a����IEND®B`‚IMAGE 272 ./arch/wall/awall/awall_w_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���¯IDAT(S•бmD1 Q¶ vÀg6`ø* ÙMôáÀyÃ4ÚeÄÿóõ'±O¾÷µ»»¿`¿öx=àÍ•h ¦TN%DK“æÃ”CtÑLçdKa||Oë%héŒÏ„©Uw^E‹b§‹×´lqŽ^6L=½ò)6ù¼.¡Ý;- ´.èuÄ]ð isŠsANaGË^ÑF:hånÙ;ÇN¥peÕ’©Øé½¦÷#ÿ??1ôCÞ©-/·����IEND®B`‚IMAGE 290 ./arch/wall/awall/awall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÁIDATxÚ½“ËŠÄ0 õ¨ÿÿæaän"Ã@ØËöÁ8­ŠS$þ!½ó«âÊÌéÝpgÍí¹ý’('Ó;j%<¡*†*ž µÚp¦ƒ£…œj¨Š-Ð4§ä°ø2¦§ VE–éÔ6êP¶i5�K�û@6¤Ë'äý\í Lµß;ðÁ¢\̪¨»lŠÛPœ\â€9]Dañu¾ KúFLŽf�ƒ‰¿zÂöyÿhwªNY/¿bü)ö¢ é-Ûí����IEND®B`‚IMAGE 297 ./arch/wall/awall/awall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÈIDATxÚ½Aà m¼ÿs ‘bh¦Ó[u`Œ¼(JüAuë0ÛeÓ½§ÚcWï@#¥½ú¡V¦'Ʀð†÷paÈà :GÎ4páè —å‡±¦Î,ŠËÔa/ÀdL/'Òñ3™¼éÔó¢<µ)µ�¶(¶@6¤kky~W³€eŽ;p°( T.æiÉ;ÚÄYÑÉ™ ¸¢“Íéï|]Ð; ³;ð;jŠì>;�%AÇF›Õ¢o!Á'A<Ä”·ßôؽ�Si9Ç5ü‚����IEND®B`‚IMAGE 305 ./arch/wall/awall/awall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÐIDATxÚ½“у0 Óæþÿ›·”ƒ6“xAUkŸ‚"þ ¼õf³uæ$šêù;`®—MQwwæ­1¾KÖÍ<&åŽ CKàNp),+)áÂ(Kª€Úí™IrY€ÎóÐå„ ‹ Æ? ÜFœg›©pÀ±»„ð yÜZÀèÏu/°¬öæ€{K)°\¬Uéµ6qVÌIÖ·°âžlä!&Oñ= KÊ.”„±; (È%x: ˜’ŠbZ¦ èÿ$¨‹è¢|ãlaƒ~³š>"(µËè����IEND®B`‚IMAGE 318 ./arch/wall/awall/awall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÝIDATxÚ½’Q„ C‡™wÿ3/Øâ ‰¿[„¶Ô‰? „o·L‰¦qêHÿ2U›¬­7•cÌ)jéYy#¬$™ó9µ¥‹’ÁJrÍŠ%WH™ÀC”†”;³(DJèÓ¶87pópÃå ·{xkã<·)KŽ8¶@ÈÜ&m¡äÇ{½¶AÔùåtl—.ÊÌ=ÚÄY±ýI6¸b'[ò&’»xç›è’€èbŽAw”Áž}Ó¨~O'”u;jdž ¨\{ö=Öñ§C#,¢KX}C)OéÝ5F©`¾����IEND®B`‚IMAGE 326 ./arch/wall/awall/awall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���åIDATxÚ½’AÃ@ øÿo.k¥Q«ëUªÄRPý²4úf«Ž!ôaÛ€@Ç®éÖ­·ñ¼›‰®+ŽO;ì´”Ùóݰc ™ïƒ1މ”n1¾™6_u€Ó’4`¬@w‚„M(ÕU‰îG»4%íNZ˜ES’@Š…¶¼³ùñ^î�©˜�Xl I.veÆ{ÄJùX€ˆlÆš"&âÆ»z¾$„$¸²J}.‘ Uòùâ÷ €‡ïÒ#g \ü‰»ó$öÚÂÆ}Š-ÂÊ~^§ÒýB ý����IEND®B`‚IMAGE 327 ./arch/wall/awall/awall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���æIDATxÚ½AŽ1îÿ¿y‰{J‰Éq)2Ta·RÿPÒ/¶Ô[ßð¢(7_ºNù‹¡Åˆº±†ñPýÉg4©ZÒ³å·"µ4‡¡a×›Å:ä¹b>8‹{Û¯‘íÜ@€£ù%´†ê.®áqß v^Ã&ç Ι—xÂv+2R2æœ:BGZK’õœÖˆ‹<{FàùXô~ÂÕ;bÖ<W;õQcíÿ,¹”¦1†{÷e3 $Á=’÷k“aÊ—:‡£Á ƒ§ù8Å�ŠÁB ã²\);­AEB¸Ñ7;zgvv ����IEND®B`‚IMAGE 318 ./arch/wall/awall/awall_w_1.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÝIDATxÚ½‘Q Ã0 CmI÷?󈄺¶ûœ £Î{6nVB²¤_‚– ÷~Q¥Wƒ¥¢óÈCà<   Ðý ÐÜ‚€»Á»Gh«ßóƒ û.Hˆ�;wn¬Ž° álæ¼CZe›QÐä0#)¥±²ÀHælœXèHè\PÞ{ P$øòg[!V+‚ÕÂ¥ÌWŒDh_ÐfÅ3yPŠ‚\ûãÅ ¢½$—KÉŽ(‡`G W™'ñ‹Ï–°ª°ÃçQç`çÒP5ìbì¶J4#z¢®èöØÍÏé”����IEND®B`‚IMAGE 315 ./arch/wall/awall/awall_w_1.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÚIDATxÚ½‘Qƒ0 CÛ÷?óT›tö· PZ¿¸êÅG‘,=bI?=éò1w:–�·úÒ€î[Ý€€Æ¥Þ¸¹šoÖ18ë’�a.œ¯è‹Z&ìw2è�r€Ô– RLÈ4zƒ˜2ÐК/lÛ @¦–?•~0dÊÓÚ.¯MµðµÌ[ Dh  $"›ãlIb判èÇ*‰¹8!­Xà!Mðî·¢ÜâVç~ëƒcí–2p´¶Ü«*;gĦ²¥ù¹‡©82]Ÿ¥�‰ð–^»(Uß@é%����IEND®B`‚IMAGE 295 ./arch/wall/awall/awall_w_1.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���ÆIDATxÚ½‘Qà CƒãûŸy8¸Úû›Q£?£Æ”W33x8þxó©1­™˜j}yÀw€Á¦ž€hÆ$ ˆ&Ä<8€£¯>-@�šd�B0N¾TÀ�qº¢° ~Ýà œî‘L‡Sµ>ø'TM È=Ó€|jmSÕ¨2µWy|ïRΩâe ÿÙçzX€'v¿Ô 5°øÕ#½‹¬Wª`£*é“Ú-ÔãEÇ&Ò€#„õð’Z5Œ%O����IEND®B`‚IMAGE 202 ./arch/wall/awall/awindow_0.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿ!!!���@@@Ç/G���tRNS�@æØf���lIDATWc``˜:í,½VaÌÛaL…IMMƒ2f΃2–φªY^ eÌ͇)Î…2¦}éJ€2f?؆Á˜†ÆXGÍ£0(ãŒñò:ã9L*ʘ9æžiPN ýc@Õ` �õNZ}M® ï����IEND®B`‚IMAGE 261 ./arch/wall/awall/awindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿaaa���@@@áÚý“���tRNS�@æØf���¤IDATxÚ½’Q !CLîæÒÈCZüXÚ¢æ fÖ]P_´|ÑsàžA¨J“Ž¥  €cXæ7°q3• @Vè€�]ës´[U‹„£oiin€wÜÉOáYó ¢‹R÷àÈÉð=Ž6Ûu'\º¨ÁwóÝÓEÒj¯"ÛÂÚ›%óDç•9 $…ËA�§ŽûàNb°¸ÿ´¿× '0�Ç«t”����IEND®B`‚IMAGE 237 ./arch/weapon/axe/axe_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaÁq8G$ R-���@@@d3‚B'¿¿¿TâŒÂ���tRNS�@æØf���wIDATxÚåÍ11 Aɺx•óÿÿ€mL¸6lg!Å£¹»9rUÙ@œ™°uq&Ìi1ÀÄ{w/üýYhÆÇÈ…ªï@þ3ïH¨‘ÆÕ¼Þä’+Øø=áì%W`\l=H±õ`‰­ˆkÿçÁÁ5ä§üé>£­–²+ïÏ����IEND®B`‚IMAGE 268 ./arch/weapon/axe/axe_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaÁq8G$!!! R-���@@@d3‚B'¿¿¿•ÆÜ���tRNS�@æØf���“IDATxÚÕÐAà QR2´Üÿ¼µ“T,L RWýÛ72òý(eUÀ"¡Vè¹Ä•jÉåç¸È™Ë_û°Èª|û†Œ µÂ^j¸ ìm 7yJÈÍÜàÜ8pÏ6màä¤Áù?ÚÜãþ?ûèÂÂ…¹{ SŒg.´¹{ÀÄmÆ÷ý™ ‚‡ä—½ãNqA¤Í����IEND®B`‚IMAGE 268 ./arch/weapon/axe/axe_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaÁq8àààG$ R-���@@@d3¿¿¿6ŠØà���tRNS�@æØf���–IDATxÚíÑÁà PHº5)ÿÿ¿‹#U"u׿C#Ãji[±Æ°2f_º»åŒ°3¦ªX±÷u˜®ú¢ÀBŠ P'à>€›ÙuÆÃÑG ‚ à1+¬Ä@-�D ÐI ™¾d½ä½�ŠüÌÙî!÷yQ P`Ÿ�¢þ‚ÙïÙA«!@þàçòŽÈhõ€ŒÕ Éo‚ã����IEND®B`‚IMAGE 268 ./arch/weapon/axe/axe_3_golden.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���G$d3€c� R-Áq8­�îåTûþ�ñéùøÇ���ÎÞ‰���tRNS�@æØf���–IDATxÚíÑÁà PÖ´!,ÿÿ¿‹#U"u׿C#Ãji[ñư2î_ºˆçŒ°3®ªXñ×q^˜¢ú¦ÀBŠ P'à>€¸ûqÆCÐG ‚ 1+03¬Ä@-�Ä Ð I`™¾d½ä½�ŠüÌÙî!÷yQ P`Ÿ�¢þ‚ÙïÙA«!@þàçò®Èhõ€M” <ÔfÑ����IEND®B`‚IMAGE 257 ./arch/weapon/axe/axe_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaÁq8G$ R-���@@@d3‚B'¿¿¿TâŒÂ���tRNS�@æØf���‹IDATxÚÝÐ1Â0 DQɆü@î_òg’NÛ¾õzFQ¢ ì;Ÿl¡÷Éò#ä™§ñ|Q¹œ‰þÞ¨Þë‰ÙTºÅ½Àôj@ã,”72ºSµîé?ÅÌ‘·ïãÃY\÷A/tk䯹ñà‹[`íFnÜü“:7´n€ø!¿Á[}a²Ñ����IEND®B`‚IMAGE 265 ./arch/weapon/axe/axe_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEGllÀ`� P�€@�`0�@ �ÀÀÀ€€€ÐÐа°°����œ2£���tRNS�@æØf���IDATxÚµÑQ… DQ¥ëŒû_ï³Mˆ?¥&/±_†sEÛ7Ì'c@Da÷ò /lœØ°vQð`éݨ(# SoÓóÀF¸$3?á¾Ú`WÁœ{Sé„Oá¬\o'aËïw_'k÷"s‘ð˜Ì[“ëYO\_½ÿëó~ë÷k—W×Êy{ùdéóÜ¿œólÕxt����IEND®B`‚IMAGE 236 ./arch/weapon/axe/b_axe1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE������G$P@aaad3ua/‚B'”N R-´¡rÁq8ο“·§š‘���tRNS�@æØf���sIDATxÚÕÐ11Aš‹Yüÿ÷Ò‰E€¢ èh¤r`íå¼ 3×ɃûƒàUÍ“àcôÌ>&ů⻷n°°¼6ýöxŸžË{çÞ–O6î}ÈîÈî’ƒ;åàî™Üƒ›œÜþÊèFvýÌ^rñ=]€î3����IEND®B`‚IMAGE 205 ./arch/weapon/sword/b_bsword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������G$|d‚B'“z.®”OÀ±ÙͤðëÏÿÿÿÖB‰���tRNS�@æØf���ZIDATxÚíÌ1€0 Á!¶óÿƒ†–ØE ®]ÚF¨ÌÇp§p§ðIá“ß¿çPx's :‰k`ÆÒfŽ<˜‘8Z¬ü8ˆ`å÷@7¼óãIÈÓ Ñ6º�>a~ÀDÓV����IEND®B`‚IMAGE 166 ./arch/weapon/sword/b_bsword_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������G$‚B'“z.®”OÀ±ÙͤðëÏ,¿‡���tRNS�@æØf���9IDAT(‘c`€�FT –ˆÊgtË ­€  +q /DQÂ((ˆSB† ” 0*£9 n �˜G¤–¹Ñ����IEND®B`‚IMAGE 159 ./arch/weapon/sword/b_dagger.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������G$‚B'“z.®”OðëÏ:Q ���tRNS�@æØf���8IDAT(‘c`n€Q] Ÿ�£  ‚�X@ B\À�,Âhlll–t-„mÁê°¡��°¬  /Ã����IEND®B`‚IMAGE 268 ./arch/armour/helmet/b_fullhelmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������''\MMO@ta$“C´¡gοˆÿÿÿ<oŠ’���tRNS�@æØf���œIDATxÚÕ’A! ëÅ üÿÅ5)ÚS̽>!Í(‘O—ççd°„qîÆ†÷c`\8vÒ �#–ƒ¼ÂÊæÙÅ):v@-XsuFq%çZ®ÂÌ„ pÎLGf d+2g AEE:^B;V#n%¡t @åǧNKq' ^¢¿ÆA¼ï�kÔMúï$VmŠþc¾ŸG\wÌf����IEND®B`‚IMAGE 203 ./arch/armour/gauntlets/b_gauntlet_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������ta$“C´¡gοˆä¥�èà²ÿÿÿ,¥eg���tRNS�@æØf���^IDATxÚåÐÁÀ ÁœBÿ'"o…ðwÏf†ëܤìe;‡,'¼ß(Ÿ ºÇX>S0²;RÜ/^¿™É?°qfrø<ý»9Ñ ö\{ì§ÎSÚ¢åVÍ/����IEND®B`‚IMAGE 210 ./arch/armour/helmet/b_helmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTERDwd(•‚Gµ£jÏÀŠþÿúÿÿÿòzñ=���tRNS�@æØf���eIDATxÚí‘1À qÂÿ\'R»€X[#±Üé„DûæÀm±qZIì<ɉky¯(žs¨�y¤¿,9…PÂÃG¬ÞöoT‚›i^�gòêmû]S~Îü;Ú eBÇñ†����IEND®B`‚IMAGE 249 ./arch/armour/helmet/b_hornhelmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE������O@ta$“C´¡gοˆèà²ï§_ðæŒþÿúÿÿÿöÆ‘®���tRNS�@æØf���ƒIDATxÚí‘A! ab"ÿÿ¯Côâ’݃WmN¤»€*Úoq©»8K¢-=´:ÞƒO|¦N°ü<1ÓS ÚVÁ”7#é¾û†Waw£Gþæš*°PZÝc« ôz¾0C«Ta*ê`¬BåË€.1 r >Ð.¿‹›ÝŽùóOD¨–Á>¸K����IEND®B`‚IMAGE 187 ./arch/weapon/sword/b_lsword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������d3 R-®”OÀ±ÙͤðëÏÿÿÿ@|®J���tRNS�@æØf���NIDATxÚíÎ1€0 A/1ÉÿŒ°h½©(Øv®¸x7À=O6¾øý‹˜ß†y ÔƒT¯ÁÜü§j¬èüà©ó1ä?îa^‘îÁL |à]ÊÜØ3; ����IEND®B`‚IMAGE 501 ./arch/armour/mail/b_plate_mail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���{PLTE���5*�����$�5*�5*�gU5*�^MfT“C…q45*�ub%¼ªq…q4®›`ȸ€“C»©pµ¢h¨”Yª—\¿®uÁ°wʺƒÝўǷŸ‹OÓňt7æÝ®îè¾®›`÷ôÖp]¡Q{h+ÙÍ™þÿújýLj���tRNS��88UUqªªªªªªÆÆâïªy��IDATx^ÝÐÙNÃ0…á¸iÂ93Þ²¶lïÿ„Ø ¥ªêK®ø/,9óY²Óü—nìÒí/°?™Ÿ-Þ>ÆØS¾äè{Œ@%ŒèÜeó /â\¯máKv—8ñxÙ¶›×Ïè½8}X7çµÌ}‚¹"`› àDò|H¥,*`™Ó4E¤©ã<ÏSº÷;žÀáP@ǶÜñœÅˆ¯# Ls™’ê$ÀM™_2…0³ëÈýÓ5À> ìòBH|o+�Á”’ê�Ô�ËŸ\ŠZìÄkˆ1ŠD¶À :zOV� N„\ýì{wJ«�èOÕH0‡: �‘+ 1-`ŽYÀšæºµµ ]Y»jþ°o7×!ŽÖ<¼E����IEND®B`‚IMAGE 297 ./arch/armour/mail/b_scale_mail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE������d3ta$‚B'“C R-´¡gÁq8Í…?οˆèà²þÿúÿÿÿ4ZËù���tRNS�@æØf���­IDATxÚÕრƒÕV‘÷Þ%¶Œ‰Ûí¯‹GáÈwi%ÝH%S~Îãüv¡(?RâÅâ*bb«©V* ”Kq;üªô‚iu�«ˆ!>ýEŠEB”�(ï!Æ„n6€DŸÁ oàÿá€`EÂȇœP|ì)t[9¿sØÃ®ëô˜„ݰïnN@ß1Ã'`šÁÿ+±ä—è_“Ò"ÝJO 7 ¬¶v‚����IEND®B`‚IMAGE 201 ./arch/weapon/sword/b_scimitar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������d3|d“z.®”OÀ±ðëÏÿÿÿÞ…­ò���tRNS�@æØf���\IDATxÚÕÓ1À DQ>¹ÿ[Ö‚*Û¾?ŒVÓ£p í3hо‚žgÐñàåÆú ᧘Oz]¤«"Á.”{µ»*ÒÏ;„ï¢päo¬±Ùà–`S=Ü����IEND®B`‚IMAGE 236 ./arch/armour/shield/b_shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������“z.®”OÀ±ðëÏÿÿÿ‘í���tRNS�@æØf���…IDATxÚÝ’A €0Õdÿÿe)]{ñàÅôØa°[?åÜe®ŽD @óX´4hÄ- 3íCa¨½¡0ÔÎP%[´4¸mäŽh<3ˆx 3XÞ¢?!6ÙkJ€M²¦§¢ 9ç"l ·y¶¬˜1 1O"n˜‰ß}‹/sÇlx"ù����IEND®B`‚IMAGE 171 ./arch/weapon/sword/b_sicklesword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE.enG$ua/”Nο“���eŠ2ø���tRNS�@æØf���GIDATxÚÝ’1� «xÿÿ²1Ž:oí¥@‚. &L¸œÚ�ìå‚„ø¢¢.æ%7‰Ðø†’žèØpÿ����IEND®B`‚IMAGE 157 ./arch/misc/b_slicingknife.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��d3ua/ R-´¡rο“���Ó6Tü���tRNS�@æØf���6IDATxÚíʱ � ÄÀ‚÷™:M^¢"n}jîo˜8p%2xF #Xµ@FHúå¡“\ƒ����IEND®B`‚IMAGE 304 ./arch/armour/shield/b_small_shie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÕη8/:1A7PC_PjZ$vf1€q=Œ}Lž‘eªŸvÄ»œÒ˳ïìãÿÿÿâ.'���tRNS�@æØf���®IDATxÚåÒAŽÃ@DѪ tçþÇ –‘Âä3%vÿ-yüÇù½ïy­]™ù…øsÄE~ïÑ]ò‹øì»Ý·g¤Oè&3ºZøg_…-¢+M¥ÿ^dfœ� YÏõ9$VUžh‚DFfк# ÁÞaHr‚�ÀÌúÂý1„œ†žA`÷N¹UAÆî7ÂtXƒ»=I|÷ù.¼æ£ús{5\X‚e¿£����IEND®B`‚IMAGE 186 ./arch/weapon/sword/b_ssword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������d3 R-®”OÀ±ÙͤðëÏÿÿÿ@|®J���tRNS�@æØf���MIDATxÚåÎ1À CÑ|’Âýo\Õê³"ñ×çÁqt€÷zØøâNœ†s œk wƒ¹ùjRt>øë<ÓüÇ{8W”÷`„KçÏí.b~Ò!«÷����IEND®B`‚IMAGE 199 ./arch/weapon/sword/b_ssword_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������G$|d‚B'“z.®”OÀ±ÙͤðëÏÿÿÿÖB‰���tRNS�@æØf���TIDATxÚåÎ1€0 ÁÛüÿè $r›®q±*<veýʤñ¤ñ›_:4>±®Á´®Aþ¿ˆDnÊ9hP°ò㪊•k ßüú:¼+ä>ÆÆ=➢/-Ó����IEND®B`‚IMAGE 198 ./arch/weapon/sword/b_sword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������|d“z.®”OÀ±ÙͤðëÏÿÿÿFaC™���tRNS�@æØf���YIDATxÚíŽ1À Ãjz¤ÿÿq#1_*¶za°ƒî: &ú[bãÅÆ?üþœ§ñìöö†AÜ;ý~Uäû«&ö!0ɃA»Ÿ€$èðÓéå{ ûõuÆÁ^Û̾Á0|����IEND®B`‚IMAGE 201 ./arch/weapon/sword/b_sword_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������G$|d‚B'“z.®”OÀ±ÙͤðëÏÿÿÿÖB‰���tRNS�@æØf���VIDATxÚíÎ1€0 Á,Ûùÿ‡1©É¹H…Ķs²Üv"“~¹S¸Søà÷:Þ‘žƒ.=fèÿÌœt1È”ó,V~œ@D°òÌ3ïÌtÚ3hE´nÑŒ€XJ°H����IEND®B`‚IMAGE 266 ./arch/monster/dragon/baby_drag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?ÿ��Òiÿÿ�ÿ¥�ú€r¬ ���tRNS�@æØf���£IDATxÚÍÏá …P`ÏvÝû?òU”“~·S íKȾÒ�¬ 0»™ÀœèÂ�ˆG-ø5ð " Òp‡IOp ¯÷J° /!$˜âb¡[<z2î(}¯È� Ìf_‚�¸­€Dö`}_ý 2êÚcRbôä ª—jã¿rõ–y霼lÊþ(Î$A¯ˆØ *ÊØÔ}.|› ,����IEND®B`‚IMAGE 291 ./arch/monster/dragon/baby_drag.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiÍ…?ÿ��ÿÀËÿÿ�ÿ¥�ú€rì–K���tRNS�@æØf���¹IDATxÚÍYà cäÚ÷¿qå….¸¯ßQa‘\·ËZ×þ úÀ°…“Œå«}l¬%YÍ“µÖJÈIàïI ³‚Ú/¡>¢kNá0ßëõ/Ó¬¼Œ:–BñC!ˆØÉ‰b@VCÆvÒ77\#±ß=¸fù/œ ˜†"\%ãGECqocÇ%DZ0ÿœ‚òÙ4fÅNŒ3ü¥8ñà4ÞâÌPWÜIo”'~_FÀ܃����IEND®B`‚IMAGE 284 ./arch/monster/dragon/baby_drag.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiÍ…?ÿ��ÿÀËÿÿ�ÿ¥�ú€rì–K���tRNS�@æØf���²IDATxÚÍ… CeÝ/÷¿ñweAdÀ1k_jõúÌ€qZ pð d ™*¹�K�¿DlxÙL`²�p2µè)µÚ2`•"{½aæ‡JŸB!2¢ú’fMæïÚ‰ á™ìBhP hœôfvJí¸ý–Dñ]›�;òµ½ö$dCôÞ à#¿�M€ÇmP+Œ3tl€J¸|l¾ˆûP ›=Ê@×\¾4~ÙüÉ_æ¿����IEND®B`‚IMAGE 219 ./arch/misc/Container/bag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ Áq8Í…? R-���ÿÿ�ÿ×�‚B'Mu5Ô���tRNS�@æØf���nIDATxÚÕ“A€ më ÿ±–S² LŽ;B¢Çxà;7Ú¸6Гì5L;ÎH&hdàÕ¸Û$ô ¼*šTýi—euDÊêÚ¸À 墇œ_l8\H>(ëÙÈNþН¸܉ézž1����IEND®B`‚IMAGE 349 ./arch/food/bag_popcorn.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTE¥Ö÷k�����J��R��½��Æ��Î��Ö��Þ��ç��÷��ÿÿ�ÿÿÿ¥��1��9������c��)��s��ï��{��”��œ��!��9��­��µ��ÿ��„��Œ��š ç���tRNS�@æØf���¢IDATx^å’7Ã0 �Cª7÷žžÿ?2´²ŠÎä {¹:ý#øEÇ„HYcÊr>ÑŒü+ˆ¤vÉÀköT$æ 8cúx,O¨ÈpA×€¬´õÓäËA[‹Õ†Á›”£9 €> jèGEA®È~žÕ4@ó„e‚F¼”±Ö9ìºæ›RZ›;³ëK+à¹,kŽÜ‘yÓ<Ùþorc _¥©¹����IEND®B`‚IMAGE 202 ./arch/misc/Bagpipe/bagpipe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���oIDATxÚÍÑA À0 AÛÿtC]£° 9WW r ñ§ääR×Jža—êÔJ¥&s  ‚< \p‘oú8„@¬®Ù„ pB`5>1/•8� @8€p \ôé�»P�Oì‰ÿäô»ò;Žg����IEND®B`‚IMAGE 204 ./arch/misc/Bagpipe/bagpipe.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���qIDATxÚÍAÀ ÃêþÿÑ£R6–rÆ×ZŽ Ž‚bsÏhDòñ»KHL? Jó:ohß`0ǽÁ4Ê+VaìÐ%t``Ÿ¿l) ¥1ÈÀ@;¡³}E¬kü]‚ÐD° LãMœÃ²¯Û-V%ï����IEND®B`‚IMAGE 202 ./arch/misc/Bagpipe/bagpipe.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���oIDATxÚÍÏQ À0P“ûz¬„Úi³Á¾š¯Bjã°`ä­&‰™Öó,�Peé%Ä,P�s‚j`…®_7@bîë+ˆ4} Òà“prÎ' Ìüå+]Ÿ+Ì 7`ˆ5qN.S²­†}/����IEND®B`‚IMAGE 203 ./arch/misc/Bagpipe/bagpipe.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���ÿ¥�d™ß���tRNS�@æØf���mIDATxÚÍÐA €0CÑšÜÿÎ"† 5uWͦ‹ÿ¨Ò±Ûp­Ë$QËNu-{: ÄÖÝK*/�X  LèP8€äCÏäx�8ë[-`¿…ο�øl‡�î&у¼àÞØg'Jl-…½XE����IEND®B`‚IMAGE 188 ./arch/misc/Bagpipe/bagpipe.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���aIDATxÚÍÌA €@ ÁôüÿÑ"nˆÂ$ ^¶/9L‘Ø-ÎÖÁí’Èæ=\( dÍ^Ñ€À½¨À™%@2 1€%â�}Õ€~/ð„Áôàd±O×üw›£õä����IEND®B`‚IMAGE 199 ./arch/misc/Bagpipe/bagpipe.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���lIDATxÚÍÁ � CÝþÿ£cØ$Ýz|¸0~Bèæ$!æy¿Ÿ)ð"0µv^‘NPÄnº„¤LM ²Ú‘J‚Úp¡ \ØÌ`Âi¨·OرÞåL´‚ŸRœsª 2,ГÄ?,Ê3n[ëM:����IEND®B`‚IMAGE 189 ./arch/misc/Bagpipe/bagpipe.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���bIDATxÚÍÑ1À CÑØ÷?ti…K¨É'†P·…·9ö$¡ÖûJ\�Š¥½…`$�`5€ M p€…ÿ� Ðoì�7€‡2‚¼(ØX?�|CÕ==Û5v(ò����IEND®B`‚IMAGE 198 ./arch/misc/Bagpipe/bagpipe.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���kIDATxÚÍÐA �! CQ“ûz(JCIuÀ•Ùþ‡Šãµ!vÊ$‘óÎÒá= ‹õ]s,�´"‚º„‘„ ;ˆéøGâ¯T]wmcôÛs·�ø< ¼WP…º€DwÀÚxg ²iår.����IEND®B`‚IMAGE 200 ./arch/misc/Bagpipe/bagpipe.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���mIDATxÚÍÎA À DQÿÜÿÐ¥òAHˆ›n: E摸~vnuL‡ä # IJô Ù �Š(�&aÃ(ü½@ÑAøè+Bm„ ªÀΠd@rûœùh`ìE°:à6�¼0ë?y�Xå¶Ú¶•"����IEND®B`‚IMAGE 202 ./arch/misc/Bagpipe/bagpipe.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�-?~|���tRNS�@æØf���oIDATxÚÍ[ À0ÀŒ÷?ô†È\ñõÛ|µ4©\Îð®/Ј¨AÞCМuìÐèj# Ô3�ðË †2 ‚žE•,ˆ 8 ¨…oSP²àx¥¢3 VX„.ì‹þAh!0 °;ä¹âÕ@e´����IEND®B`‚IMAGE 406 ./arch/spell/MovingBall/ball_lightning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¿Êþ¤�ÿÿÿÿÿ�ïå‹PnT���tRNS�@æØf��IDATxÚÍ’Ž„0 / ¶ÓÛ¥ÿî%T¢ýÀYHÐNb™´?ÿXd_û†¶„ ÞvÄÖÿ†©ÈžK mÃȪ3ÃÀˆÍˆ“9=;‚‚Ç!’rR2œqEç@pK„‹@�O‡Ý¤pÀëæÇ˜wPóI6Ë „õ.Adò9À܉{ûþMçQöŸ9ãëk{ ƒã“üH“PvvY „óSNh0GAi&<´õn9Pù‘Aî­�TªFPj¼þ×4xÏiŠý$A!2€e2Ô—ÃMÈÊàÕ°†ÀM4ª+P¡×%¢ç¹Ø{Ȇ_wdiçJ^yH ™c¥Â{HÐrhÕx‘ƒ„ãá|-Z ®;dãßb?‹o+ßý‘ õ����IEND®B`‚IMAGE 385 ./arch/spell/MovingBall/ball_lightning.222 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿÿÿÿ�ïå‹Ü_£µ���tRNS�@æØf��IDATxÚ’Žƒ0 C˜íd4ÿÿ»•én­;CA¢×mÒ>‰ôv+ÇÀôà5छE^�"|HW�(8ü2¦ËÐÚõÞÝ$^Z×`?R$¦©Òi튈Ì2÷7kho (J=3zlï€kCyÔCÓ")ý™ê¢O)(€=NõãÈXöBxcÏšÈ,¤Þ¶ÊzEˆË1ì FÀ—‹°ÖΈñ/Hîk•E·ŒJṘ~ Õ¥Yšw ÑÚƒª[„抒ϠCVäHª³'F•NÂ$âÌ2ìÀmÝõçbä”(°|K¬åy,õx"àK7ÏXNjÉðd»„{ÀÝÛõ¯T 3Û¡ûc����IEND®B`‚IMAGE 405 ./arch/spell/MovingBall/ball_lightning.333 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,c2�c��1�cDÙ¤���þÖ�þ¤�ÿÿÿÿÿ�ï勱“ñN���tRNS�@æØf��IDATxÚ“n† „©Þ]Qxÿç]—Ÿ [v‰BìgËH9žˆ#Æü¤¼qîØ2xÄE“û Í‘âE#x»!@B…}º¤pê€c(àˆÏh}xû„‘=`5ȘQ¥A¼ª{Â…ˆ+ç|×’es¡gˆxS­¹d›73I8®Üñ~úWˆÌO†ª¢ÙÅðï,wíD¹c²ñb%~JL°: `¨/”+ ¶ÀúÔ6{ÙK @îÛÝ.} wÖ Fè±ùí’cë„GÐ@uD2¤t€âÀ$òܶ8œí‰ Fzl5£·6Ÿ*6¥Iì>§o8ÅÉ(¼»D|ˆÖ>ÌW ¢ÉÓï:‘þÖí^¯Éõg ŠîÀÑ}����IEND®B`‚IMAGE 408 ./arch/spell/MovingBall/ball_lightning.444 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,Òic2�c�Í…?�1�cDÙ¤���þÖ�þ¤�ÿÿÿÿÿ�ïå‹Ì¡���tRNS�@æØf��IDATxÚ•SŽƒ0 #ƒ³�ýÿs/íz+ªÒYP¨lÇ*ËN2ïåÒ «oîß+lkÊïŠÐ˜¼ñF�n"¡[£"óÆÃymÙæ n糈£ˆDÛv·žè¼"¢”3dž Þv>ÆWEâ,%WIñ7/ÝØØ#Qª@LŒ¼îüð§mIŽH*'>Ž\PÍ]*l¯¤šÃ&‹} K4T~}4Q“á"ÐÖž:RP¢-¡µÓ#gD²Y¤†åþ-HõÎnNÕYލ ¬Jæ3 “Z‘çÍ‡àŽ¬/s šVŠ3oìù÷l._ᡵñ1O@Šè™˜P7ÓiÒè 8ì5Y$$.û9­Ç¿j$±ü¿=ÁY|“a����IEND®B`‚IMAGE 184 ./arch/spell/Potion/balm_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE����îîÿÿÿWYA���tRNS�@æØf���WIDATxÚíÑA�!CQ;rÿ3 hd3ß hlúBHh/‘çX&Y'Áþ,T À$ò�0E A_-‚1;�‹.'€tÃ�JІ-&`!þf]ÀDíÆ YA0@+P=����IEND®B`‚IMAGE 308 ./arch/spell/Cone/banishment.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  \’£ñ��� PLTE���7DIŠÙöÿÿÿ›€#Ï���tRNS�……!Pß���bKGD Lò���’IDATW}Œ1à CÍ@nðNC‡v&dàô4é¡9em*5™Šô­gÿß³H”ÅÕŒ!îè)‚ð…Zjûpc®`>’HÁµÒN+àaÙ�‹Ï7 Çe9A×1íM8NØ“bû}Y Íu]úÒæ>Цãu5ú6g•�ó|â¾p€ñØ8wö…����IEND®B`‚IMAGE 300 ./arch/spell/Cone/banishment.112 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  ýÚ9Þ��� PLTE���7DIŠÙöÿÿÿ›€#Ï���tRNS�……!Pß���bKGD Lò���ŠIDATWeޱ„0 ﹪¡ozÕ8¡ž*¹“’×8ØñY{�sÔ´ñÀº£Ÿ/¶‚p,Ó¹¬{»ækiã…'âz=~Áºð*¡SæZÝá”±µ€FψúRp=CŸ­¦=Y¥L«BYsO&¥<Œh–3²êÔ› áGq¹q:Iˆ4‰ ����IEND®B`‚IMAGE 306 ./arch/spell/Cone/banishment.113 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  *zK“]��� PLTE���7DIŠÙöÿÿÿ›€#Ï���tRNS�……!Pß���bKGD Lò���IDATÁ±uC!0qO^Ÿïáð˜.}Ì?R¨IÍÐm„YÌ ½Ó{�Â9œ“ö^·½×‰IzzREáÙ<;÷Þuï]9Ïvž-x ¡ŽXæ\äùð|^#XK‰úÛ§m`Θ¥&Ñ»6Ö îïÏ>qηwb]8‡ÀºW€ïŽgƒ¸ žÍ?¦;–Y>˜����IEND®B`‚IMAGE 716 ./arch/shop/bank.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���]PLTEÊHR���½½½œc1¿¹¹{{{ĵµÎ­­ÿÎ�Dz²Î„9¾ºº½¼¼"""777Óªª˰°É±± !!! :::OOO[[[MF Z���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8ÁÆ?)��ÛIDATXÃí—kwƒ †M�mím[w¿ýÿŸÙPkPÙN÷a±‡C‘<¼$(XU¿f�0(§[¯û#°¥åð?‚8>u@LKü„A’Þ#¦äoè6ŠöšÈf$�c⼯Ø"�³€I ì_¤`†�„¬€¬I ˆmJ²ÀwŠ€¢,Xr�6%� J›‚ Ú±UA- @÷\¿”«£Üà§±>`M:�'¢H-…²‚BÀ(0™Í5ãåÛ{�XüŠí=à¶±ý¶T>Åí½×:½Ì0‚ºÖõ¨>ñ4{€SétiòŠ›;aD�ÔÎ -ˆ M�Ø(wÁ„€ðJæ�øsŒE{½�àÔw—eÔZçý“wºv @SÓ<€‚q Ø¶Ø !Š» ø4ßÇûOÄ»˜Âäa¨&€v]ÎV0¼ûìÏð÷ ü {þ³¸9Dàðr<¾Áw¶ÈœPÉö" yîÈž9ü³øó]ƒ;rW­‚V-›A&Àî-ù[ÂW—ÎP‘ޏn‘´)À¥ó#©€tH'ÛE-øtö±"ÒW]"€�§ŸÎS—W¾SFâ{È-ÇFþRbÿë€| ÀcŒýjm‚¿õ¬úVýÛ_³ /±•þÚ¶ ����IEND®B`‚IMAGE 2039 ./arch/shop/bank_west.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé��ÔPLTE³ŽŸ��Á°€t0Ý͡ðÖĦŸ‚R†ÿÿùÿÿ�óô�¸¸�©ª�±²�CC�NM�¿¿�àÕÔ�çé æã�pq�øù�‚�ˆ‡�þÿ4ÿÿyÿÿÌþþòÿÿb2�ðò�ùú Œ‹�“‘�ž¡þÿü�’�ÝÚ�MK�èê"ÜÚ�\_�_`�°±�BB Gÿü�¾¾[ÿýkÿþ�DD‹Š‘þÿ¬ÿÿ�ÁÁÕÿÿÝÿÿëÿÿED΄4�ÒÑ�hi�¡¤�¬­�®¯þÏ��üý˜ÿý�¯°NPM�vw�wx JI�¹¹�„ƒ�…„?� KJ�RPgüûÆÆøúxþþ�ÍË9:8—þüŽ¢ÿþ¤ÿÿ YWµþÿÅÿþ œ™ÍÿÿÄÿý�gháþû�ïññþÿGF�ª«km�—•�ik�OM�ìï�no�Ÿ¢� £�ôö�op�<<�tu�@?USXïïz{{|�€ WUYþü´¶Z\Y�ƒ‚�½½IH�BA~�MLЉÄÄ ÅÅ�ab�ef�ÎÌÇÇ �ÑÏÈÈ�ÓÒÉÉ�”’Ž�ÞÛ�àÝ�ãàÚØ�òN¦���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ Þ øY��IDATXÃíWe{ÛHήV²,™™Sfn’R’¦im’RÚ¦í1333þÙ›™•íÜ=’¾Ýó܇[Yò®¬½3ïÀº­í_Œ±\ïÚË †ãìµ5ãtU˜ëûá1¡àcœË9—k˜àš Wg_ê4\(€²ëÕOfƒf;‘¸øÖØ]ÿòrøËŸ£i$á® �íìët tõ%.¥nÞí˜áð^ÏïqGÉMXŒfƒÁ`pôêýç_Þ\\ ˜C_D» ÃRàâpœ�‚£ŸÂØîºÚÛ—èX …{b톑ÄQrqã yúòhh;Ú¾<ÚÕõq¨/õT òÈ—JÉz¦žÉ¸ `Bã`a(Ô £/¡gC [þoÿh7@Æ*(Î�pÁžÜO$ _õö¿ÛûujýZÌ�qx?Èg]€Hãk—ÞI¥>}ûb"ñô“0ÙÑÿÍ›;õzÅQgN¨B ©ÍôV:½õa* ׎ª?»~xcwg'›­g³YG�4Ή…Ít¹\î«|^©VÍÉh\?Ééznư @!óHÒcårå×› ]]D~ˆ>\ÉOß™˜Ðs¹œ¾ë„�“@dW*¿€´ß Dö:c/­fvó3§ÓÓ·ÆAŰƒ'ÈB:]®TýþõÇæF$ògÌ(e2ïÝš. S`FÎÁ‰`Ø9ð²J?óÂã€išC‘ï;cFœ?r4åõz Sè{ÀËY‘RA°êâ‹~)ÅNuÃãSÞZ­0s4Ø›�å‚PéXîùðÞ|¬»ÛŠÀ‘µü©·æõÎäÇu['2 ¡"°À1ŸæÆÆG‘ùHÀöd ƒg8wø PC kÌÎ Dˆ�“1t^øZg¬=ÞNd2ú~2 ¼Þ鼬w« @'¾¿249?q8�˜Ó€@EÁ�ä±b%³ÂLsÄcT€’ “ÕsSRàµcÝÏ™†Ðoš(ßm´Ç¤€ô{§¡f‹@¡êM±Nöt?‡â†UÁuýPB¨Ùú�Üy �…E½xÜ€"–±Æ0$ÁÚ‰„`—LL€ ’Di¯K ˆFÐ01ãõ:!ШýpÐð[ ÅãXE²98ú�YP FøØCi,ÂMF@ž?%6¡ÌT®QQ¢%ɦ ˜ ß+8²€ïWæÄcß%ãXÁ- 0Óõh¾½¨ÊŠ`µð³íülc—s›8N¤Š†Á‡i¡(˜arݺkc‚|̃­Ò¶�!�µý×hMwíâ�€LÄz"äŽÂ Mšc”X7`ÉmiÄ4²µ'}ðà ?³¹ ¥ À�Iai¦´àd hQLºÚ±$“Äk¨ Ü-Ê8û¦‚m‰öC!àÝ–<Gg3§š®QKÖ×�B³·�»þʈÁ›,4·xhâ¡/rLd!7…\9¿ä¼}ëƒÌ1.gòtjKE,%ø´âY"À̧ jø* œ#Ný’ÇÑÈW,ù–ª´Éãh"`JcW«þ888xÀT‰O@eY¡2ç *Å TBÍ5úæäZ;Q M@¢”JÔ"ZT4ÒB(nû3¦jÔØ\ñÊœTÌRD&W.û3+MŠsŹ+pBfˆ|@§ï‚ßLTçM2T$ÌhÞn)(‚†óDÇ>Woˉ³äD ‰±–¼PIì@Q¤"Ÿ#Ö.ÿï@<îŠgß''œ¹ýOÁ˜#@ž²N³H$6U¡iÂýòÅ› ¬N%°[4Ë›ëf–¼yãØ…äÉ£û=9,£íÿñ_³½ÞDÕa����IEND®B`‚IMAGE 205 ./arch/readable/bankcard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��"²µÎ„�÷œ�ÿ¥�ÿÿÿ���Lãè9���tRNS�@æØf���fIDATxÚíÒÁÀEÑ¢îÿr;“ò*1ëö Aâø£Dë©¥¾Ó…¯Ó"�å,ò ²ªµŠ—@r ˜ÀÚü `þŠ  ©<VL�m$€¶‹,ï°Ëÿð\ÐT!è׺œ����IEND®B`‚IMAGE 344 ./arch/monster/undead/banshee.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ�ÂCÌÿ*œB¼F��B �Wñ �‚�Î"�ÿbCÄ ��Id���ÛÌœ\���tRNS�@æØf���ÙIDATxÚ½Ë’Ä Äæ‘ÿÿÜÅlªæ0â:¾@Ñl¸dÍw=Ð<s>*9hïý¨”²'Óä! ”ywöÅuMFæÓ„ÿ˜Y ùÊ[™Çg̘ñæZNÏDäê�À ŒÂ/Ã÷ˆ0Áo®SC#HÄ–7»Õ7g,Ì øâd;ùÕf@J HÅQ ø(î׿»‹¸ßÚ2š›Ëþ°…«£µ1 9²+>†ëTÀ} ¢Þ¬UÈÌPëÎ#>Ïs…aK¡â\ÂÇÕŸ=…!ìßÕ¥¶Œ¦­y����IEND®B`‚IMAGE 348 ./arch/monster/undead/banshee.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿ�ÿ�ÂCÌÿ*œB¼F��B �Wñ �‚�Î"�ÿbC�Id���Oô– ���tRNS�@æØf���àIDATxÚ½A… Cl îÝŸ²Ðm·?8Èø’�±æž3Xg­¹ÃéeW­ oé2•Oœ§cž¦V>¼ù¦µ)Åy¾«g·8žªõuŠÆs?¤;ö5Ç#UŸ§ïr*_nðÐ#Ý»@½Œ篓ªBêÂñå�1æÝ ï$0e‰�1gÉ–ûC 8Ž!͸�¥¤]`†‘æ»A…,ofÄ&#æBΣ‚ ³»c`p^€c0.°ìÚ€™XGd–ô¾{Ž@k-wHg:äºÖíL î•~_ïõÒÙlƒ{ü����IEND®B`‚IMAGE 307 ./arch/player/class/Warrior/barbarian.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���¡¡¡Áq8àààG$Í…? R-���ï§_d3‚B'¿¿¿o S���tRNS�@æØf���ºIDATxÚÅრ„«gé®õýŸw³ñײ#„ïËÑ ÿÉk‹È<à™y]Ÿ„x<FüYÙ¯�1vf­ü#Ä™hF€L^È«Pyu3”F€%É–äÍ9@�Üy)°«�BL'¤œ“õªîQ—Ò„¢¾&ÝdÃfÜ z4t¹!y7H« Ž›V`…ìñÛÚO.Ý ×X%3é$½|'S!ï~‚æõ¨Aã´?‚˯òz¶µâá����IEND®B`‚IMAGE 305 ./arch/player/class/Warrior/barbarian.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���¡¡¡Áq8àààG$Í…? R-���ï§_d3‚B'¿¿¿o S���tRNS�@æØf���¸IDATxÚÅÐÑ Ã …át§š¤ïÿ¼Óè6¨¡½,Þþ(•ÿ̳Íuñ¸ã¸~àèØ5xªÀ�P•hïÔ {¯dåDŠŠ@gGtœ@¯ÞãèàòÊJ#;q© –bæq¤¬Sl÷$­7Ѥý»!íŠÞCä�¤ÆCÚw´Ó]eÊáGÜTɘû\Äý¢‹leK/0×ÏW ü B&c&ɆüÊoç^¢@_“����IEND®B`‚IMAGE 274 ./arch/player/class/Warrior/barbarian.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VÁq8àààG$ R-���ï§_��€@@@d3‚B'¿¿¿dEvÏ;5���tRNS�@æØf���–IDATxÚÅÎAÂ0 DQ×ÉÄà)÷¿.u«:Ή¿Ì<Y‘?5®Ê=Úí¶öY[íºç}@<ó&éç@  ˜LP…aî{vàûEI‚“ñ…ÅÏ�íjÜ ªN’’/É2 è’GXçN@* 5®jRÍ.Í­ÞšÔ€¨Á ëÝÝ· —`ôÞåç½w 9@Ó€����IEND®B`‚IMAGE 276 ./arch/player/class/Warrior/barbarian.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VÁq8àààG$ R-���ï§_��€@@@d3‚B'¿¿¿dEvÏ;5���tRNS�@æØf���˜IDATxÚÅÎAÃ0CQ"£ÐŠôþ×­ÉÚ&»öoõfÀþÔ9k÷êi›=ˆ—™t\«µG˜ùû¸‚œ¢víq­wd½èn«H€A«¶ ‰zQ¶L™dD쀋LQf•”ÌL` æú¡Ùîd Û6T4”¤˜`¿Ÿ.�Ñ‚¡h€KÃÚ”ìÁ™Ùï’÷ÂÝí×}¤ F›®Œ`����IEND®B`‚IMAGE 327 ./arch/player/class/Warrior/barbarian.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÁq8¡¡¡aaaÁq8àààG$Í…? R-���ï§_��€ÿÿÿ@@@d3‚B'¿¿¿ˆ<3���tRNS�@æØf���ÅIDATxÚÍÛà C¡.d®òÿ»À.DÊÞfˆäH¿èæZúCK€äàÁc �ëD®LQ�à‚(6ÝÁ. |*î[6°Ò÷ì ÈVÑû1 ØÌ€ê,1t › P¢($ZªáÕ6Vªœî—A4O^ …ûNt€L³J92& "N�)#A‘"½¿•!°Ã×óäÅš"—œ"ik/RÛÒ÷JßÛÊY†~ûd©ÌúÝUþ/=� T SÍ�F����IEND®B`‚IMAGE 331 ./arch/player/class/Warrior/barbarian.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÁq8¡¡¡aaaÁq8àààG$Í…? R-���ï§_��€ÿÿÿ@@@d3‚B'¿¿¿ˆ<3���tRNS�@æØf���ÉIDATxÚ½AÂ0ÓºÙÅ@’ÿÿw‘8°ip+µÒŒì¤ü’›²ä‘¥@r)ðÎûR�®JÃý‚{Ãþ8耜9îÛ xÆ3§q F½‰Ÿû4t$*ØÆ€b.Žï4tw:Ü >9Am<ƒ^ŒH âµµO±|‰(x½²ä3Z—‚Œ”šÒ5ÄßF¦!ÑÐ0åôè ã\¨£(2r*Ärñ¸æÊV·é@ëõó7çýSå³<7L]÷µQµö×¼� ½ ŠÆ����IEND®B`‚IMAGE 288 ./arch/player/class/Warrior/barbarian.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8àààG$ R-��¼���ï§_��€d3‚B'¿¿¿©Þ÷£���tRNS�@æØf���¡IDATxÚ½ÏÑà …a\0ôý·j“%K„Þí¿=Ÿ駃êŽ×ù´7§•Žv 5_âc[qœo€7öW¯=�ØÐ˜iB `^û¦”DÌh—̓$Às• Œ’àRw¹Ÿ(€˜åÀV@dç#È÷î"#JŠî3¥„”»²£ø¡ª²–€YµŸFeÞ{ 8ä D½{”óØk0£wÎ<¥µ$����IEND®B`‚IMAGE 280 ./arch/player/class/Warrior/barbarian.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8àààG$ R-��¼���ï§_��€d3‚B'¿¿¿©Þ÷£���tRNS�@æØf���™IDATxÚ½1Ã@±½>ÂüÿçæpºèÀ]¦Bšùážc¿ü¾¹ÏÁ&ë`»ƒ7‹âøzÁ ,É �ЬòÖ¡Š jŸ—ž¤ª9-p€T 7 mzJœ}à®H°^À ¤ "€ô%ª“î‚DjBû`8ºÍFëÅÆyÒáç)-#ô)ˆÞ{´zú>Häÿ|�™íákžp(����IEND®B`‚IMAGE 360 ./arch/construct/town/barn.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���²""ÿ��ÿÿ�›^¸†É���tRNS�@æØf��IDATxÚíÔÑnÃ0…aÿœøý_yj¢ —U „‹mRŽö ó™¨>xî•Ûöî”cÁî.0$nà=¢XÙ[xyˆd=R`D|I�Ö`Ö`AP"AP~4DAuˆX‡ˆ5XO€õXS€ý‚ w€=WøgWhý¡ôý<¿ÆO‚5u cIŠP Ê �éx@[dÞm[(IÁwO^õ›ÒyäÞðH:M Ázã=ª ï=ZwB ) .r%¸ pZ–ëê€Ⱦ¬�ÁœÌ<`ð`¾ê'iÀ˜ÇyÀ  ¼(F0¸Èxò1_ŵ ©V±ê����IEND®B`‚IMAGE 322 ./arch/construct/town/barn2.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���^ ‘RRk9 ›^ÿÿ�峂J���tRNS�@æØf���ÛIDATxÚíÖA Ã0 ÑŒ-ùþG.¤I(M±$è¢xVÙHzÞeûEœeÇÛQ‡Üø¹ÞIŒ«ÞédÆ‘ C꼂ƃÍ—´š�ZN M@« ¨ ( ¨ °š�/ ðš�+ ( ðò‚âðõ„õ„õ„?%€=ƒ„�ü=$x]GŒ€@×CßÓttŒÅ®ûÌ À®€°�?cσì{ø{QÁ}S‚ì¼Ø]s ðK€«É?$Øhb†s�-ÐÁcÀF ÈT øÒ¶úØîÚ Ai����IEND®B`‚IMAGE 352 ./arch/construct/town/barn2_northwest.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE�!�?#B#d3k9 ‘RR›^e¤eÿÿ����’Œ×���tRNS�@æØf���ðIDATxÚí’[ Â@5»NR÷¿°A[Ddà‡¤@î®]sú8Õøò൸7°®âbϯTâÈ`…Ò¼  Š' ”o°ô `i(^4`éÐ5 i@×€Ù3ÀšXÏ€Ù4 i€µ šGÀŽ#G8ŽðÇNÍ�˜w `�ö ÉïÀבFÂ@ël›žÃÝó3o`Ú—@ÐÀ÷%6ÀnXÒ€ù„3i`ïd ¾2Ð Œq H®|ìœ÷þ"T ¹áàsž—±stÝ@¤`:Üóº’PöÄ ô & Š‚/œ>r>"„=}zý����IEND®B`‚IMAGE 374 ./arch/construct/town/barn_west.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE���?d3k9 ›^� ªòÓÿÿ����TÈ»–���tRNS�@æØf�� IDATxÚíÔÑŠÃ0 DÑÖ–ûÿ_Ü¥Œ0YöÃîBJž$‰4¯?”µòvåzÀJ9Mé°0]‚Fï¬à%èt’õ£`v •‚9*T#>%€¶&O@É#r+H¬À¦€Q="u$ˆm °=uO€m °_Ä Ú³Âÿ]!ÿAÙìßàù7Þ |ò *€¡O 4ï`V é‡§Ì Ü̳þ𗘘æ 0/€:�r¿ñË ¨ ˆ3-°›¤AB¹@)ï1@ܺåÌûüÅ/¢~Xù6( 4Ì×Ç�­ h lP~êýQ˜˷E�…5€²Pòzr›êÄ)ÊDŒ����IEND®B`‚IMAGE 409 ./arch/construct/barrack/barrack_l.x11 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTEÿÿÿ���d3¿¿¿àààaaa!!!@@@¡¡¡‚B'Ú¥ 0É0���tRNS�@æØf��#IDATxÚ­SQ²Ã tm@šÜÿ¾o!„¿Œ¦+*ÊΦý@?×§¶­o±{X%_Ô#Ãú<ƒŠ ÷6¾Èܨ©N0‡`ã:ówLYv€ ; ö9 ;à%ìcV�®�ÿ ˆ%gý$œ·|t]€Z`ÖB óí@ÖàÝ Z qe í꨽Q@[yY�¡f¢Ëï`: PK€È „v»‡Z˜€?r­8\ÈP¹U &f�ÒÓñ/z§õ3,~N„üø˜\Òô.Ô“iÜÕxÜ» ¢�?ªMRãq-¡âŠyþ*àÀÑÁ]ǽBÕËHÞvƒvÈÞÖIDF„Њ¯#ˆP=F+À Úïðh„"CÞpU����IEND®B`‚IMAGE 415 ./arch/construct/barrack/barrack_l.x12 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTEÿÿÿ���d3¿¿¿àààaaa!!!@@@¡¡¡‚B'Ú¥ 0É0���tRNS�@æØf��)IDATxÚ­SnÄ0‹«BhûÿÿÎ¥„cÚtZrs8q`9¶ßp´i�ÛXûŽc§ÿÃ*õ¢é`59L2¨¨poýÀÎÅÜÔÔ�'˜C0ˆq=õ'¦,;À…“çð+œ}V�F€[Á<0:�Üæ-ßÀ] ˜µP`ÂzûDÁM ëH°>G qe mô@Ô>Q@[yY�¡f¢Ëï`9 P¯�‘N­¸÷!´$0ä0Zq(™LW…‰€ôtü‹m£mOX<O„÷úü˜\Ò…ô.Ô‹iÜÕxœ{Ä<þQ›¤ÆãZBÅ3‘~\àµݻs… .@T/=xÛAt"<Ú @ö¶N":ðvI@-ýÏØ÷4ZVÐþ_x"YÂõ?‡����IEND®B`‚IMAGE 312 ./arch/construct/barrack/barrack_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷���BBBcccc1{{{!!!œœœ„B!So¹B���tRNS�@æØf���ËIDATxÚÃ0g“¤ýÿ‹gÁ@ÛD¢ºPµ‚ž¾ íUs®óÆZç hN´Šsî,u•Ì w'x‚$ø7êïŠ<ŒA¸ÑT$0Í÷€EÏМ ž FÛ%ÈCÚþ • xü™a¨ ;@eè±@'´* ÂlΩö[>kž!¡¶IÂEêÙ¬d@#ÕCM×<C" >T!Be` €;hž(ƒ ×@:Ô>é P!@<A}˜ ?Gð#)A ½^Oõ-8 8·vÛ,����IEND®B`‚IMAGE 514 ./arch/construct/barrack/barrack_u.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���3PLTEÿÿÿ���BBBccc{{{!!!½½½Æc9R)„Rÿÿÿc1„B!R1)))RRRÞ¥!•íú¥���tRNS�@æØf��}IDATx^“ÛŽÛ0 3‡”lçÒöÿ¿¶KÔdÖˇe`ÈÀphzü¬ ŽyC¿a£ŠØù>f¿9~ÀÆ}<™Xâ ¸X ‚U‘$°Ä7�F­À’"4Õ ” ÀZ¥˜ÀŒ3@³V(N XÖJE�jÕ¢šÉš ES Å¢3ÔŠ¦rQ!(! +2@©PƒjQ2A­à@I‘‹"ïAVtˆ<u¸ªU²‚x€Òl¯­?éÏ�ÂqUÐ{÷/àÙû�’"2j ™ÿ͵E~͸Là‡Ï‘n�ì XHbÙRÓ¢@&ö `Z`î|³ÀÌed€K’Ib*4:Dìn~>  i�Xts½Yà£ûx¸Ü,­Ý¦Ä—Û ¿ôÿo¹ÝØï›s¢ï?ÇòÂcÎ@L£Ç9_& ΡAvž2ñ˜ól9' Ln¹kœ>1$!P¶œNàSòüaœ�¦(“ÆËò QÜÖÔõu í(36±����IEND®B`‚IMAGE 521 ./arch/construct/barrack/barrack_u.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���3PLTEÿÿÿ���BBBccc{{{!!!½½½„RR)ÿÿÿR1„B!Æc9)))c1RRRÞ¥!ŽÍûg���tRNS�@æØf��„IDATx^“‹®œ0 ™c'ìãöñÿ_Û5Z/àr­ªA!‘Î(cŒ²ü߀>æ mü„/º8€MübnI\ÆOHKSQ‰=(€³2NE‘À!¾�0zV`¨W ¢(�6ZES†V±M£°Ñ*Ðè5L6Ô(†i¥¨¡W µ A«UQZ…t’ z+*Š œµb]éþfä\÷Áwà²ÕsÞx¬¬ßôaÎP)rÞçVà g/àþ5ï,KU1çô4³Èú7Ý™1–ÆQñwÿùéÃc-7 �n8*ÄÞêÒÐALÜN€é �sçû›f.£d,I&‰ByBÄîæïIC `qzNç|³Àóôœœn–ÞG»}$~¸ÝðC?{ Â~]<{ lçnŽ}†¬­òxÅšï¢Aö^ebI`° ø v\&7‹Ü•«§ Š$ŠÀŽk)à-�|ä�yý‚0îÀ&I¹ÉOHàz,ÿ8þ�¤k!dÊì����IEND®B`‚IMAGE 254 ./arch/indoor/barrel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���—IDATxÚÍ“Á Ã0 C[ÖÿrU˨ÛvÉ%ï™@^8Ϙ΃‚¨ò’rǧÄ7õêêKaò­À¥ ^¡b%Àg®ƒk!XIÀT8/ÕÀ`ÂIñv32GŒ12FÔ N±“§x’Úbã¼¥ ,ñwƒxhOnèç²Ä»¡†É{�O0y7<!€Ý—øyU[ÓÖËÅÎ����IEND®B`‚IMAGE 378 ./arch/monster/misc/Baslic/baslic.x31 ‰PNG  ��� IHDR���`���@���˜Zš��� PLTE��Pÿ�����Dr«»���tRNS�@æØf��IDATx^åÓ1jÄ@ …a¡ÊÑ)BªE§J›=Åà*ì âjXX#ÿ§ £jµŒ/¨°‹çÇ+,ÿëú ´IX›‰-f°ØÌà¢@œÕ3;ö~,vÒ®ÎTô@ŸUôÛ,áÐmâ!†M>E±ö^ÀäC,á.õÂD(ಬÍÚ3t½Á íµÕ` 'pcŸ‚s’à,áØ¡ÍÛ½€×4*øñ“ ®xGTP6€ú¾€¡¢�šÇF—2D ¤9!Þk"84+°s °î]ËmÍVáMP´ ñ–à.Ø ëŤ”yÒœ’…êÍÇ8}…±l@ùÿ½¥æ[ Ä�2±<wÄ÷€{~ä²>E.m<>Þ{Âß¹_«CǪÙÌhº����IEND®B`‚IMAGE 399 ./arch/monster/misc/Baslic/baslic.x32 ‰PNG  ��� IHDR���`���@���˜Zš��� PLTE��Pÿ�����Dr«»���tRNS�@æØf��4IDATx^åÒAŠë@ ÐB+ÂüUÐÑæM–9@àg% rò#‡iuŸ`¦6mx]T/Œß#ý ¤!´‰[,õ¥`öK!œæYà:‚\&x{í¯(PNëÒº°d!CI/¨m—¡¡ß`,˜Æ&T¯FmCk¿·+þæ„è‰C¡$½/¾·–k3zVÇ —ye‚ø8aÂ= ˜'ž@Vo| ÛÆÌÀSpèÛByÚ�3_'`Üþñó”/~3 o²ý‰6’©PÎ@òžÒ„ —¨$èâó{=°§Ú[‚Òa$*Æ™gƒr»CÔUš`ÿÖj¨c)XˆŽ!$òèP œêéGXB6ø8‚„pÍâôfë Ø³áÇå?Wˆ åÒ����IEND®B`‚IMAGE 381 ./arch/monster/misc/Baslic/baslic.x71 ‰PNG  ��� IHDR���`���@���˜Zš��� PLTE��èÿ�����Wèª|���tRNS�@æØf��"IDATx^åÐ1jÄ@ P¡*Ñ)LªEGÚ*U >…pö®ÄFûO$7žµöÉoæñùÌЉ�Ñ»[ÊPïÐͧ®�À.  ¦{hd}ׂ~Û§þaÍ27ëw·Þ~¢8œ´yá{Ñ9·§ò@;¸Ò.^&:/1°�w“2=�S+îTâà ë\à§¿Ÿ·®"¨<�Ø�TãkŽ'Pì¹b�| °&l°Œ€Zÿ€A‚Mƒñ´.AŠ`Ê¡y�çú 95LB<aÆ:6ÔóÔeÃ6<Ã`¦óQÀXãBžKûÇ‚ µaƒˆF$~�ö„|ç3d#ö;>®ëT $èx¹ÔqKøÐÈ[Á{:_èï䇱¾ËÞ•ôÐ����IEND®B`‚IMAGE 405 ./arch/monster/misc/Baslic/baslic.x72 ‰PNG  ��� IHDR���`���@���˜Zš��� PLTE��èÿ�����Wèª|���tRNS�@æØf��:IDATx^åÒ1nÃ0 P‚“¡Sx x¤L:øD¦¢ȉð°ÿ”À”l å$ðáûK€é¿L|lB¬†Ø(yÚ¼Cž€^öxfÑU£K(;”GÝá;˜¶Ý°„n|l~ °Šz‚X!_Ây[ƒ2üœ˜¨(e{&ˆ %_d!¾Kµ &¯NjŸTà|›É£3¢¸«–¾„ˆ±FÄ€9KZx`’Qží=€ˆ°l`ãDˆ àg£¶¼øKð¹À{·\a-È€'´ÅÀÒÀ…ʱ¿%-¨zpûv¢Ø”Ãm§ XZ�`ľVxV°Nï¿J÷š‚yƒj Ì s$ã/ ‚(†@ƒDlŠ…æ‰ ‹Ê|JTœ ¢ào¯0ùjô‡æ,¦Ñ8LÑ#o����IEND®B`‚IMAGE 217 ./arch/monster/animal/bat.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���÷Æ÷«•Ëí���tRNSÿ�å·0J���€IDATxÚ‘A Ä@ Ã<ÿÿôL0F5¬.ÓQâDo '¿)«û$ùíÒ¸ò«.O0'„ôC—7Òíò¯!wLa#ÖŽö-\,PPS•5¤îC°Â=nàÜDÓb}8÷X_†TÃs÷Là´¨þ8…€P:5 B‡¢€P?™4É1 ‹m����IEND®B`‚IMAGE 192 ./arch/monster/animal/bat.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷���У ���tRNS�@æØf���hIDATxÚÍ’A �! Íÿ?½*ÂPaõ`Bl‹íŠŒ5%¶vL¯Xb‘=q]h"{JâXÙú#1Á¤Nº;‚ŧ¬Ej¹Žû.^úñ8ðrñª+ÿÃ`¸v•йÉÖ•ÏHýg>‡9ž¯Pc����IEND®B`‚IMAGE 215 ./arch/monster/animal/bat.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���÷Æ÷«•Ëí���tRNSÿ�å·0J���~IDATxÚ…’ €0 oÿÿ´(Ãq£'d©]BY܈ÀÚà-.È!¸€ Šcò.ùÕ·ök—¤1›×¹1†æç‡]Õîþˆ'µ[Á»Ý`v)Ä.¼Ø­K6†•4AeXÉaå*ï_}$y†ß+ù=]’ 6+|êPÁÀÝUËP“ÿ����IEND®B`‚IMAGE 437 ./arch/monster/animal/bat_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEµÆ÷���B!c1”J)¥R)Æs919œc�R!cBZ1„B!Ù6qù���tRNS�@æØf��<IDATxÚ…‘rƒ0 ƒSÆ™yÿçÝ' KÉv7¥ü\%˲i?èíôh-u½Êo9ñ’p‘eMU(f<zAúdËh`öèÙS4(¥¢°š€*éУK܃?ÚT>gèý¼I™b ΀¼Œ 4É­Í\R©Ù>Ÿ 5€³Ç<%Ô•ë:¢ÑàNðzùÉxü—/…�í­0ßÔUWþƒ •*‘eŽË™ÀñR˜há­8D�Ê·ˆœƒV8¼Ã@­Ù!$Ü&äâÐ-‰Üß ¼êÏ]Ë;Ú%Ĥ゜Ÿ·}P�î9oþk‹Ô–¤ñyóÆÅ/ëæú“rùÃaoûºlj !c•¶eŒ5¾ÒÝ~ת…¹ŠÁ“Ýb“FÓó1€BÖiÄž�åk”ÎYÌýqò›3Άó~¾ŠÕ UúŸýž����IEND®B`‚IMAGE 272 ./arch/flesh/misc/bat_wing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���ïÆ÷���������������������������������������DBB03ß°���tRNS�� ^™ÍÔæZ†–���IDATxÚÕ“K À DµÿÚïÛ†a@Š1®•ø^$ q a ¸ pZ˜ÎK:\sP¨Û5Kø µTž­i’œŠ5¦€ÐH–�„œÖ= ˜í¡{C Ñ¹jåð¶ÀœEÓJR¸GGKWŽÀã&×à,÷„Á““Ù?ŽŸr0O³%-O����IEND®B`‚IMAGE 275 ./arch/weapon/axe/battle_axe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ ¡¡¡aaaÁq8G$!!! R-���ÿÿ�@@@ÿ×�d3‚B'vgÿ���tRNS�@æØf���”IDATxÚåÐ1Â0DÑMì0ù$pÿãÆ#Ü,KAɯl½‘ Ç )ê€/ܼ$ Í·G¾xûsOêáöHƒn^±ç Ú ‘'PïcÂîÁ«|`—Neï@oÍ>G2ðÿ´uø²ÜåCÌæÿ€´œj-÷@²ûÔƒ³ö@Gé¹ðÀ\x�DáîÏ<¨ÜQºâ—.Äõ qa‚xh����IEND®B`‚IMAGE 629 ./arch/ground/beach.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE¡¡¡ÓËwÚÔìà†ýýÍþ¢5¸¸¸ÇÇÇðæŒþÉNþú¸õ·wúðûº;þ×sþ÷£Ä6©9���IDATÁOHaà÷b‚¾Y<Å\ :(±îEAêWê°ìj´&)t:$êh]a”`× †…˜h÷cq™næ,SyIºÎɤ=8R3}ôö<´%ÑÂh ï�„†›¯!¬÷<[ Q2Üßk ×ûhfD1˜ÇÍ¿Gβû!e益<™6}Ÿ‰+ݪ%NâžÒŠÌ’¬Ê õþÒÓwGY[ä ùc*çòVvØö¾N_Ý;n·ƒ~0‰Ê[;äF,RmÛä�IN/|žŽ;5$p@üM÷jžƒ‹oÎ÷ ÍŠ¾ã šWÓ‹:1/ù;-ÞÖl–¡<"¡Wm„F\f+W93A{¾3º–dR¦Š êô8±D5?•]æ,Æ6ü6uê¹^c¡?5Ç?rxh1I\’vú« ËR’S2ÜŠ(Ǫ…ùE‘µè_)Þgo«6FNèÚ”¢Ämì íÜ´Û+WîN}²™æ'„гf-¿)MÕÜ]¡õ¢û>;(I¯>äT¹mHn Àë@‘“o”p …«¨•Bü ó-÷½ÐËo¿ƶµ“‘ƒ1õD{ÎID†;ðÝ î/7ªÝ}¼[‹è±6¾ëG›•-ΨGÒSÑuåQF=ûh‡Äê’åÄ…® ³„$f äP˜•2DþÐû²Ö,e����IEND®B`‚IMAGE 2943 ./arch/ground/smooth/beach_S.111 ‰PNG  ��� IHDR������@���[a?���KPLTEÿÿÿÀÀÀþú¸úðþ÷£ýýÍðæŒþ¢5þÉNÓËwìà†ÚÔ¸¸¸õ·wþ×sûº;¡¡¡œœœNNNµµµ§§§HHH///333™Í@K���tRNS�@æØf�� âIDATx^äšÛ’â:EwäEW_€êsfþÿK¹d *j^j?UÄꕹÓMÐÑhe"UVmqUcTu„®™T‰D¨ÅqšÂoðÏ÷·ïoðŸÙŸù þƒ÷Cd\ÇQ‹›èÐ4-›ñÇI…2­ù}¼çþÿ™ý×g>ãòÿ¹„Ù©‡÷Þ[Ë2ÌËRqÄ2²°kqÔ"p„ÂG‘ÖüNÞuÿkŽŸÙÿì¯ÀÛ}|?ðç¿ïÜRC$|ñ-ó LQÄ1Ã÷ˆ´8jY8 yZó{y×ý Ôæã{ûóþ `þô~¬Y8€…ߺ‹>^.ƒ¼æN„H…H.³ÖÊ=D-ŽZf‹ÂGžÖü^Þw?0¼âÀa>ÐÚ�çû‹þ§üÚqÿWfRæ£G.Z¹@^rÃBF!Âsô‘vÔ⣠ðàû~Æs6¿1¿Éûî`^ólþNî/òõ”ýQ&ëï¯/ï¯ÍGçý UcŒœp¤pU;JßSúLšq9ÝÎ`€EÄþõQ„ùÁ³ù¹oÒ„‚÷Þÿ‚cÏ~?P»½¹–ýw$åý�òçs¸E�$ÞŒê¤d¡^Ö×iÅWëï †ùàÓ=âÿr;à< ØAÕ鿣Œ<8€“ù¹?aKÎ;ïÿ¡™ò~ÍïGýyÙÿšû¨¦ï~è䈇I�ªqÛÀŒ‹ä¾%qËÓarlLâõ0 €I—$e$q8\ëóÏýÛÎ?º¿�þÄBý¿Ší·—ý3?›ù@ßý ‰ÑÆy"L�0 Értðí(nÕI§éÎ ¯âk{Ú|”Ikþ©ÌíoüÓûÛÞ7üCÿŒ»@ÀIÅšgùþEë»"sô3;WÇý¾°[;Å1D#6êKÍÆµ ÐæCeãë€Ãa~æÃ #Kâýýç÷£?Çþ tö�ž|�\ÎÐw?ë}d±h¤å³ˆ.!¶1Fcåµfª“ˆÛ|”BâI8Î×Ì#…“‘øý¿w?úsìŸá®þO>�Éçgϯ{1.}bWtÅ×}!eáà£ëzš“IØ|H#¥œO”ùÇO-‰wß/ôUã½~jÙ£4ûãEÞðîŸlî»ÞûÙÇ‹PÁݾê¤Jâ\ é¯ß½ÙE?Z¿ùÐ yÇ–l¾#Íüóùïôäãûûÿ©õwüvÿ'ÏËcàìùµâ˜I£Vp¿oF Þcšï& ¨û‹½l>ÌX +ϼm>‹æ>ŽIü­þ�ü‡÷w¿�Êþûþîþ(žü …Ä@ßý!RuAak¸ßŸ¬ Þßw�ª MÕÄÌ´ùز×Xyf=æ›Ájáã¿×ÿóûÑûüŠþûþB8éÉùêçó  ï~LBF9*`j¸ÛW2!Î> 3Ð~3QV…8I~MXy¦­óEæ±ôsq°ñ÷úãæÏî_@œ}S(ûïûóþ¨ôxÊ“_Ÿžÿ­ë~©j rˆ5ÜïsŒÎˆ;Qm}­¢Jd˜–$;OBXy!¦ù¥C6þnÿOï﮵þi!œ÷—ï~íñ@×ý ôß«¸ÛwÑ{Ãâ„›ÊÚÎXïCp´ù€/…•—²0«*8óqÌ-ñOúë'÷£ã÷�Wöß÷§÷`^Û­þ»“Üzî‡LFÅ1àáˆ{ýà}´ 3ú^�~¾ Fxó a�°òä<qUÅeÈ|T’ø‡ý‡·ïoKù”÷ß÷ïÂÂJÿÅÿì>޹¬BÏý"!×8ºéÏ!8¬¸[—4�°ŽE6ÿÜ.$^|¾aÀ©ÖðÄßìÏßßÒ|¦¼ÿ¾? àÎCÿÝ€ÝO˜¤hú)ù°õÞ˜«´Ë_3‡`ÌZ›ÄlœnþaâÇ/ŸÆdŒðî'Z÷÷,ý$AP½ÿ4Ž´ Æ!&í'ªÝ¿N=KšïD—ùeÿ´?é·•eÿÝðì#åαp¤¬¼•q°i×p—¿öwÌ’SG™àØ©nþ±Àƒ#eÆ£Î}ä!b—ù©ß uíç¶‹W?çJÄ/¾þ4 Zú—÷¡ž}¿©®ó‹þ5þ…çû=ž8ù¨gõ[6Ìh¤å“Ò=ïhë’äW쯭Êüã˲ðõt$ÕÓþ4-À:Ù~0ª§þ×¢ÞýŠùªEÿ×4ülj²$¿QR¸ù'Ûþ­Ûq€‹Æ™¦ê~€¯­t"…JvŽòé©ì7ªjõžÃüdõø8¤5¿ÁñHËÿ ô[™ôî!^ê¸ß¿@®oÐax´<UöË`ã5{\ÌÏ>Ž)ç_âÚ‹·ýó‘©²’Œ\åÿbË:}�×Öü&ÇšO}´¢ªŽƒo¿�Ú¾Ð~SDHô¯ÿUç¨çêì³ß1i–6ÑGgœôžœßÿ>¾á£%’gîŠû}ð;lœˆ–ûiãòàGÕyöqÜ.å|̆ȹàmdù%­´> ¶ý·t»�ˤDõý;ÇI„Ÿ|TÂå|ÑqœD8k-Ë/áhÅÌÞ_l‘*îõ?Ðí¨:q¹¿ä§úåÉG¨ðr>‘„°ÿÎýK8Z!ç‚q®ŽÐ'R%*ý’ŸêWì~ߊùD*Ž×Çãc`‘ßÁÑŠÈc”Öñú:MÌ®ôKŽóì~Ï|UVU,Ý3©êïàÿkçÜ–‡ Úèê YòÿŸºµ^­§ŒÑX3 X >¯§†–LRØ$­êójûýMçùÔÇ&|™íg¿K>ð^ùPçSÿb–ýô;7û}òñVù€.ŸúïÎ~`è cÙÇðØcƒyžÐåã›çú|@Ÿ©; üpÑok_ÞϯÏ'”ù¡«ÌßoÿœÇR?^ÀhÏ�ns¿+þúß‚~¾>‚|Åþ ò(êý?–®lÿ0ÞA޵�þ÷ÛáQÚχÊ'´ùºU~¨ÍWïî “°é *;�jR?=æ LEýüúü5Ò| »Ì÷0K-Í×ï?õ¦VÇÑÄ’ü´ó3„„Iøiýy_²1šÆAH6‚üOhpî.ßDeþ$tøyBRÿ_Œ€‘óÅD(0•ŸIX]°¡‹ן­¥ûIè– 2¾ÛáËp‚?ê·ïÆ•qÚëçñZ`ª2ó²<ŽçUýHJ¸@„G ®â¬æÀ·¼  䌭½ª?ÞÌ à'rp!qp`Õ÷ézºç>âæÎÔdEÓD|7ú€oE÷áx éßð“.v9sFc\!â,»"&=üE÷f:6d}À‹é¯á$¿½üþè5ÂϺ•íP۸8×Ý?N-Jð©g*ÿncÚ„ú¿üiL¯¢>ÌâË0Eœ`K­rcûë§É30ÞÿæçÿgÀyLxÆ3(½›×ç½'}ZùIz‡’_Cóh¾¿Þoxy:?àãƒ9ß ÖsóI3ž_ÍÃúG~"efòÌõiŽt"ïm£¿~büØ(˜§þ|ö J9ó¾üõiýYº÷?OûG³°ýõ‘¼`ž9�9Š}gÕóä§þ~n}Ž_¿ã—6’G£Xpýõ9?�ÀÊóçd¿_ø_Œ'j¼svȬØô1®¼µçÑ&ÔßWø¾|žúóÈðJ/Y_½ff¡þúSýÖùûxZŸÐ÷½pÍBýõ§ú­ó öñ´¾gû?FäoL-;Ò����IEND®B`‚IMAGE 669 ./arch/monster/animal/Bear/bear.x31 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE���f 5Œ:FC|E4/ ”TV†W6Œ1c”9RvBW)•i:”M��«Êú‡���tRNS�@æØf��IDATxÚµ”Ázã0„WQµCÌû¿í2²nŒÛ~=,2fÆúóÛŠø hñƒÞú·„tÕ.1ä+ÊÞæœÚ{{¿'â#u�÷ºN:ÐÄîôÞYI¨ÚÝÿ¡®˜`ŒŽ"ãC8Ž*ó@æÃ}g¼Ñ37bÒü èT÷Áo­EÔ1ÌlHD逈Y˜É]‹oó1á#õñÕ!ƒwÀèsnŠ=aH!¬Ol`Â*)3x7› È ‘«&f²ë&Q¦Áýé0$ê9Ƨƒ4¼óaz: V“×M+Cd‰|¾6Ô\²(Q^ÄFÄ{|C§& ~èâ¢}‹—90ÂɰÅhôøtÀAbýÔTõ±ô0ÅÜÀŒ¬ãøa €ŸfÜ'ç1N‚9ŠÝ›m A {vgÝfÛLÕ!BàDžMl‰À¡$ÊF¢S XÍ–oÊt² ÷$ÆAÔ…¥$°ÔW§eŸ’ð,ã´j†©‚â¾tov8HE‘ê©ï\˜®ݦ"‰1LÆÍ!ÁM]–Ž è¦Ê6ËVI0g¨ƒï€™”ÁUL„+€¼eÇB‡Q»ÀÙ[Œ,‘Ç+ÀÎÀàÝÂèp!�?^rðå†kðzG™¤Þž@ݹhç²ò¸’M>¨—  qš i[¹‡¡XÁ›—kP¡ÄÁXŒbÁC|S±ºÿOõíÞ÷%$oO����IEND®B`‚IMAGE 683 ./arch/monster/animal/Bear/bear.x32 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE���f 5Œ:FC|E4/ ”TV†W6Œ1c”9RvBW)•i:”M��«Êú‡���tRNS�@æØf��)IDATxÚµ”Ñrë D+VRI¥Âÿÿíe3)Øm§W/žÉ¯,´áíÕûo€ô_t)?(ªÝðåïµV-E÷DÿzxD¸ÝëZé@¿Ó‹hŒ„ªß½š5ØFí"Ç_Ï8ërC¯‘9™¼½TÕ$Ä ¹Z5ÓXHÙ—Â#ÌÜÝ ˆË9€{wÇ݈ïõ³FÚлõoÏ0`´¸¬ÔÚ4@ÝpÕÝ#Z°«ß�bI» ^¢"�†+ ZC3é@ÂvŽR•߀ `?©î¥Âa§úš9p̪ÄY[„9K`˜À²ïÞ­¨Öpås£=û²fÔÕ§C¡Eóóy. #á½»@‚:ÔrX4ÌÉM˜ðóÕ-“‘‰dhøãÔúthQ=-ŽÊ¹ÏIͧk´Ö“±ÄêªD@‹°ð‡–F‹ ‡gÆ%3©µ™ ~.v]D d6ÚÈK"ƒË Pöÿ«‹cêy„ÖCÊCßPå ˆ‰/:B›2q‰¹Ç”~fws¶ÙŒÖ¦1s‰½EƱÆ8:piÁ[kœ¡ÆÐÌ= À>åÒ{lu° ? ¸y"¾–I�r†ƒ]V‡œgôx¶�8d§>ý$VÀð¹´� yû ¬-$Rì•`AÚš§xœ´ó*ޝ”n9ï¼O¿8h¨,À–yÕñïpÇþƒ…¸›øOõü]ã¥?Œ\����IEND®B`‚IMAGE 676 ./arch/monster/animal/Bear/bear.x71 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE���f 5Œ:FC/|E4Œ1c†W6”TV vB”9RW)•i:”M��·<˜Ú���tRNS�@æØf��"IDATxÚ­•Ý–£@„·˜*DÞÿm·0&ǶݛAãEê³ø‘£~92ÿ£·ü·ÞÛDЦt³.?è_­wc|û= ÀAâqŸÃëvž¼ÜnF ký®Wµ²Ç€…áñ@.ýãˆ({àˆ—&ë‹hR’ð Àr®@fk-D+"ì®—„4QwWÆjQáâžî"ÏñwóÖTðüRôeÛÆèºèM| `Ãè~Dô�„ÀpÿÊkB`ðè~­àã—hòq¨Y-Ó”¦oóçè9·@™¿ºÊžaLë©x!·ò¼ï!r¨;0?ŽÜºIHæA„`•úÖF>K­Ãí4‡§™¡µ/ýHC�hžG3Á¯YÃŽ?Ÿ°²B=jgÜ‹è$ðr(›o´8n;/•ìz˜ù¶a]/Ý ¼UëÎT‡€Et\GP ÁaúEßKO)lÝÜÊ ”=Ô—"ØdÔ_0óÕQbæâ@@µ˜ÝD^kTqU�66ƒ_šÀNˆÒÀ*|©±ÏE@ÂnBŽÕ¤EqJu?€à &@jm©JŠò˜SdÓ2 ~\À™xÒ‘§žA`rp|�Au=å¨ òô蘽éûâ³C#!48W©'€DÈüÊÆ rÒ·&z¾% 8½ QoëÌÒ?€áôŠÐôœvƒ}­¯Û©„¾êóT¨ÿFüÐâ‹‹ tZ����IEND®B`‚IMAGE 668 ./arch/monster/animal/Bear/bear.x72 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE���f 5Œ:FC/|E4Œ1c†W6”TV vB”9RW)•i:”M��·<˜Ú���tRNS�@æØf��IDATxÚ½”ÁrÜ0 C#ƒ\…×üÿ¿­ 8mj)ÉôRîÌ^ð Š&ä—­ªôVßëGû’(Xáp?ð…þhÇá½÷ר$ƒƒxÛ÷=.‡î{"܇ÎQÞŽa.{vz:7ÕxUÊäµ’RD²âdƒ$Œß�ÜûýU­µ„©2½ûzÐ","ÌÈ/† DT `;kY Â’ýÙ_÷€Lû°I€~ö~ØÎ"T–äɈشÀ0€Hk± �€ tqÞ¤Ë!ÓÙýo‡*ï�,ÞÔo-«ìQ¸,tcÄ<Óo­Á®‚ž×œW~µ=ò`�,•¿öáÐ)9µËÀ¬`w?¬.À‡T0é.ÂN{¥? Çšƒ¥Ó[±ÞZÀ¤ŸÃ }³ Å%©ÀdšÇ²OHUYF§ÛVWh3xž§/»2Ê�’ÝÏs½?D‚ÉSÅH WZ8"õX‡H�œçà­-÷LÞ;[!‡aà+0‰Iuç„V ALMJÆÝ!çÒeà~:±ÄŒ=7€Z •8Î…1cÓ ^&u=¹™bÆÚRÎÍ›†A‘�S¡Ú8˜PÈQ$í<1“_/ 2muŒCn„N03ÁØ'�‰¶„Õ¤ciñ„ PYK¶µÅg€k`ÎC»�úýD}®ëãF7§ß¬¢êÏbÝg®÷€Ù#¾Â"ÚËÿ©_D©Óƒñœ����IEND®B`‚IMAGE 214 ./arch/indoor/bed_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8ààà R-���‚B'¿¿¿ÈÓˆ ���tRNS�@æØf���lIDATxÚÝŒA€0­e×ÿÿت5¤šž.$3Ùe.P]ÊvRÃÕÞµ8°“¤tè4ÔËÊ0SDõ2¼ $ Ên²…&®c²ÐÜ]ÀùQ †/„ûß„ÿ-�Ü?‰Fcþç î����IEND®B`‚IMAGE 837 ./arch/indoor/bed_save.111 ‰PNG  ��� IHDR��� ��� ���szzô���tEXtSoftware�Adobe ImageReadyqÉe<��çIDATxÚìW»n1=Û3žG’}°Š(Ä£" ehUH Ez$Ê)"-_À„ ]:*(B6l2/îõî&‹˜%3ÙEHÜ‘åÇZ>ç^û{Ežç(²öâ£?ƾ¿S<¹„Ž(WUzuÿæ;ÌÌ_€ßêÀ "G"ÏRHíB3vLû!”çÓo®Ü}0v½ÒØûgw."Í`•ž&�D ³”k ]϶…”¸²´ŒÖí‡bblM_cÖSj èËÒéá‡×F §¾TÚ‚g:PªÔÞb}TxÚÆò ÞÿÒåãÖ†­‡kŒÃ)Õ·Ÿm½¾¾Žf³iK£ÑÀ‚­yËERØÛí6n­¬–Z×)³÷\ïììØ~·ÛE¯×CJáfÀ(ŠŽÀ‡FçOL nSe¼µ0 aŒ±ž&I‚½½=ëùІ˜ "[[[ÃÒ¥s˜£l]£„ZbÖhKΟmL‡@‘÷—[!JtÐ 5ZFD}NÍF``æšðfØ|úxú¸·xä(4Ÿ’öœÁä¶$R&€6!·¶7_Ö³)ÅE‘ò100J•D@k«ŠÊøV ç#S‡¼wÉcŸBÁ$$ áXyv¤êÕ/¥!ëw‘†;ä½&Pë5ÕÜÏù£»ÀÞ¬b@H8õè�G€Õ�\ôõ¼žg¶mM bLû´væJøŸ@å4Ã7¸øGƒ;~ yM”Í{¤IzŒ’¥ ²8F–ĶÍ/¤ZpþS–#&ð^z âüDB%îí“*zV¦N Ùõ•c#pH¯Ó^œ/$èî.’dGj«ŒS%ÀšÏR¾ Yˆâ,Ç~ü{˜½î:ÖÎôáè•üáëîÙfÁæÊÍJ ?Ùúô×ÿGY5[>©w£¾m¿>]^,]Åów_Nôf¸]eçÿR\Õ›ªóO$À‹U±ªóÙ~ 0�Î#âC{����IEND®B`‚IMAGE 162 ./arch/monster/insect/bee/bee.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vîv����ÿÿÿÿ×�ˆ¯’���tRNS�@æØf���AIDATxœc` '`d`6@qa6rBpÕ¨ª™€‹j(p@墨&Ó!0Å£!Š‘Œ&ΤyAô�Ès ¨Jо¾����IEND®B`‚IMAGE 166 ./arch/monster/insect/bee/bee.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vîv����ÿÿÿÿ×�ˆ¯’���tRNS�@æØf���EIDATxÚÝP± � RÚÿo–&nDc!l@hG+L*Â92i@âlÀ¦é Pz5W{“t½(ýòé\é\¡t{e[,º§Z矯Ð����IEND®B`‚IMAGE 351 ./arch/monster/insect/bee/bee_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEµÆ÷c1”J)¥R1R1�΄9„B!9÷Æ�{Jµ”�ÿÖ�ŒZ!���Ö­�Z9­k)ÿÞJwXE)���tRNS�@æØf���×IDATx^½ÐInÄ0 DÑTQòÜÓý/QÕ0cP6AÓ_x¦õõ¯ÃK°ñ À®‰èM9 ^¶{S°„ïn“rt2òºí{-îƒ4k´èÛv<ŸõU´+Ñsôõ¾,ûË' ^ë5à-ÀÃL’?úà TÓß xÐÉú?ò2�ÓPÂ*!�Дœ¸5âX– 0)ÇŸÞ%T‹&#l+òW¼Å+01I™‰8 H‹Ä©œÝoy4˜È ²¤K}¿Ã/ÀûkƒQŸÙïú³ó @èçš»ã����IEND®B`‚IMAGE 360 ./arch/monster/insect/bee/beehive.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V�ŠŠ-ŠVÿ��c2�1����þ¿Êïå‹�íí¿¿¿��ÿ â.ý���tRNS�@æØf���ìIDATxÚ…RŽ…0“­8nëýÿïÞàiÌõu šÛÙV˜¶íí[ƒ‰~i€¼DÅ>v:P´Ù ¯AþЫXîP‰>‹_Ø V’u×Ðþp ‚^²äP€¸Ð±º¸�y^pVȪ0Qá³ÄkVpNµ¡#ö::ýɬ@¬HVŸÑo¶@$üL1Ȭ°*XDÈȉÊü¿TbþqZåÍ*‚@½FÈûÀŽÎÑkè'Ø~æ�‚ÏÈÁ%Úšy^6ß<6ÄÆÚ#_Ô´˜>xØ>‰Ývõ}ÌPh›úe&‘ß;k1CìRøâ° ¼Ê¡‹¯����IEND®B`‚IMAGE 365 ./arch/monster/insect/bee/beehive.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V�ŠŠ-ŠVÿ��c2�1����ïå‹�íí¿¿¿g¡X���tRNS�@æØf���÷IDATxÚ½’m„ ƒ´Çþÿÿ½ß0>Þ㢉«íI7ÜXÓ ¯ôeŸ@^ h åÌ|vV€LÆ›©í†¨ wˆh:xóv5Uß!b|TçÙÍ EëÁˆa œý|ÑK눂<*í�a=¡”ê~ Lï:â: à¼$Døë%u& Úo¬ø=ž¯ýðxDŒ®ª·ñ|D˜j­Ð¶!Ï¿áî 7*± 2ys8ÿ‡ x9„€(ûM7£gÞOª)äÜᓜy´0/òïòiFAh±Á–¯ÈcÏ7…'•0ƒeÍ”Þð‰´@'i‰òÿÌkb †qâga����IEND®B`‚IMAGE 205 ./arch/monster/humanoid/Arabic/beggar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ���¥**@@@¿¿¿îÇ���tRNS�@æØf���iIDATxÚÕ1À › ùÿ—+ˆ`i¬­,>aË×ÿÔþƒh#Ja=0UFàpòh?pP‘ ïàpRxö·¬Ê�NOЃ‹0 ì´K”?D»•ëˆM´$°äP´d]íçó)Ýj€Ï!'����IEND®B`‚IMAGE 490 ./arch/monster/animal/Behemoth/behemoth.x31 ‰PNG  ��� IHDR���@���@���·ì���PLTE���@@@ÿÿ����@@@ÿ��ÿÿ�ÿÿÿŠöÝ���tRNS����³“fš��wIDATxÚí”áŽÂ0 ƒÝ„½ÿßH­‹6’mÿNóTÕüÅn%pëÖ­Æko�ôôÀ} °`–5 MÕ F¿†hÏI`Xý„€Rô@ ¦‘!ýúZ…²yt Ô…~äøUÐ`ÀŠ£HàjfÂiª":ú 0Œ7¿úë˜Íp¦ ÂFÈž~[íE~­Îo°Á¼­:p? `$�UÎèrEc^“u æU±:™:´k�6Èü1:•waë„è×J0P%€°�ÕÊ`ƒÎÎP �Ô pJ0›A ¹ú™?Ïå(A祹'8 ýl?&è$¤¥kð|PZ@*]ôSþwÂîÀ½, :�6gÝ5²è£ˆ¤«"ÕÎÍ µv¹¹•›9ä�ĵàÀŸ€u1þ®ý»¸È·6Ž¥[U�¹�HÎÀÏ2l�(®áB‹iA<špÐ3‹ÜÏö[·þ­~�ê  ?û®����IEND®B`‚IMAGE 417 ./arch/monster/animal/Behemoth/behemoth.x32 ‰PNG  ��� IHDR���@���@���·ì���PLTE���@@@���@@@ÿ��ÿÿ�ÿÿÿüöó���tRNS���úvÄÞ��2IDATxÚí”Ñ‚0 E ½Õÿÿcg)v \jH|1;q’àîiWQ™L&“±¼×"·A‹uÐ7¡ÚÖa•ÀË/{êKÛë �(DÐèÊ7ÒQ LW�C: )@ ƒLMAS2hÞô=•=l©Øó` ¬žG#â!°íêÒ<¯ßèÞoYvœ >õ!º§û¼ 6›Àê¦H™¡#ˆú¼ò<X>=F:¯N  7ÐpCÝ‚¹Äs¢Ü q’Ïò‡ ˜AÙ—0.~ ŒÑI e¾0Œ3<åÂÐd35PA úlKÎÑ‘PÜä!dóÃ~ëS_åEºM£Ñ?*ëp·tO>M)HÎÄDQÆø/Ã+[ûõ\| uÜ{O&ÿË *Ó ¤Ô/ö����IEND®B`‚IMAGE 441 ./arch/monster/animal/Behemoth/behemoth.x33 ‰PNG  ��� IHDR���@���@���·ì���PLTE���@@@ÿÿ����@@@ÿ��ÿÿ�ÿÿÿŠöÝ���tRNS����³“fš��FIDATxÚí•ᮃ0…Á ¬ïÿÄ·PWRõX—ý[z6MÖr>Ž%q´´´´ôø“M5ØÏo§øuB(3bpÝ$æp·6�î�­;u?ÛW5FJ•I/ê_Õ I·Ë‚2øõ2€†½Â9Ü©§€è¿±²—÷æ–ˆ™ŸÔÄTUšÝü²0_Û¯¬°û;Áâ–ÂÏÐïcéî¦"�„ˆõþ,m�bìwµ~@ú}|HùPŠO`#¹%ìÂþ0zJÂD0Á¼ûëåwœ@°’€§@Ù ÌrrŠ@vÚA L Ð !Ë1¡4z†9€J’?p Y-$`åK¶ÐÄŸ%÷�ê³›ù;ã¸hIxÒ±(û4/�Æqdã²YG`@Êœ±S@æº ØØ€€@P|P.€{,hý‡––~YÿÛ·¿Pm¸����IEND®B`‚IMAGE 451 ./arch/monster/animal/Behemoth/behemoth.x71 ‰PNG  ��� IHDR���@���@���·ì���PLTE���@@@ÿÿ����@@@ÿ��ÿÿ�ÿÿÿŠöÝ���tRNS����³“fš��PIDATxÚí•árà ƒMj»yÿ'n´@ Å:¶ì×n!×Òê³ —Vnݺõ_U n—Ý•P~QÞ ·«€Ã\Ì(`Ž¦Ç¥=à$ä€ys�ø5@˜R€ n\:„@yÏV0 ÐAP·mx{§u ⊑¬`VÀ)È&0Ù¡/ÂT°å3ë@%WÌ“%„G€]Æú^_¶ó¤=�±ÿ!o¬è!LÍä=@iBP4´C9.H…ÌV~ž ú½–`Úw ØÒƒç¨~ÏÏ'ëÁ;{š~èÅüÚiMøŽŸ®ð3xì{ðé‘È�Ýw!™Çó‘T*Gý@YBTí²‚PB|Åú…X¢7<I{F[�â$?“ÂõÙAÇŽÅ �µ°ûç Ðt�yÀ8ß-7�£cß^#nÝúszoF\����IEND®B`‚IMAGE 447 ./arch/monster/animal/Behemoth/behemoth.x72 ‰PNG  ��� IHDR���@���@���·ì���PLTE���@@@���@@@ÿ��ÿÿ�ÿÿÿüöó���tRNS���úvÄÞ��PIDATxÚí”ÛŽÂ0 DS_àÿÿ×IjCbñ¶ÚMAÊÌéÄÚ­[·þ¥Žã¼e†šp„.…çá~Ï9ádÄ€CW&"1Ä�ú� \øN {ºH;Zå7Úãå.Nv„3-‚«‰ÄƒAÝ$Œ¼1Æ Ï”`á‚iBFÖü–@³‚¥y” ‘l°¢ ¨Ïç‘fë¡CPBÔ€dùúâ•«3ƬC�uõfê%(ï0«x²®ÐÒ «<!làÜ‘Î)´,Ÿhž!-Päaß ˜Û¢>Þù , XͰ#ç3¬ Y¾=]> F'èù�Ø}Xòöø”Õâü—O…Z Û­�Á³ø“È =0ÿÛ–r½õ{@pX÷ë(ã;#:y^ uÞÝYñà  /}/¤ÎòQ5âÖ­¿¦e á/Ô ˆ����IEND®B`‚IMAGE 452 ./arch/monster/animal/Behemoth/behemoth.x73 ‰PNG  ��� IHDR���@���@���·ì���PLTE���@@@���@@@ÿ��ÿÿ�ÿÿÿüöó���tRNS���úvÄÞ��UIDATxÚí•QnÄ0DÁëû߸¢È¥±3v¾*UÊD‘6„y`,gåÕ«W¯fé_�t÷FoÞbv+Á.¡&�P9�}o¸QhêΟn+ÂpÐ ˜ XÜ¿íp„¾IÁPµ °E˜Å­(…YÄ4êœZh?v¯6I°f&¤‹„Qßà—©@ù$UßáÕ…�fæpãc´Œò‰)?’`Mˆ`Xä¦êñÀ&¸UNb¬PõVDú÷„JæR%àÈ£„Æügµ$Àçsê"Ž9]CøÏ’Æv©£¿‘ØÞïӕ_zårñJïül†ô.P!â—¬ðÓÔÇG”4^?Ûî(° ]ülŽ `Å Uùý’<VöºÏ-æž�ÐbKxçw÷©Xºý!À—‰-Q"Ôê` @EO�™S‹ì@ ¦¨Tôˆxõê_é [ɶ\ù����IEND®B`‚IMAGE 173 ./arch/flesh/misc/behold_eye.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥Ö÷���ÿ„sÿÆÎÿÿÿÖŸãl���tRNS�@æØf���LIDATxÚí‘A� ìúÿ7;Ô£ŽÄ³½®Êç „«¸+ôN ‰kF€à,À2¦ÂIhÉ ZÖ€»Ç.°[ä‡�J”ŠìYŸo¿,U©ï����IEND®B`‚IMAGE 214 ./arch/monster/beholder/behold_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ���ÿ�ÿÿÿÿ×�äp���tRNS�@æØf���rIDATxÚí‘A À Û5þÿËeÄbÒC¯¥ƒa–Dñøy&Oºwõ±ËÈÐ^Ôìq†Pò°BÊ-R Y75ã"m ÙÛG´Í˜Hî3têÈ—¤CDp(ÞɈ`¾j¡² ;#|ùÐñÕw‚ð‚ã{\cpA†mw����IEND®B`‚IMAGE 325 ./arch/monster/beholder/beholder.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���Z1�„�„B�­Z�ÆÎ÷Îs�Ö1�ÿ��ÿ¥�ÿ½ÿÎJÿÿÿ ‚¥f���tRNSÿÿÿÿÿ�³¿¤¿���ÇIDATxÚí’у E¹ë¥³èÿïZP«aɲ=ïð É96D)õß%˜ƒ´¤ªÞšëVD©ÖW™HxSµN©�¯qom_pnDÑ}`†0—¤GáW_K½Ø6ˆ~]G�d°€‡@+ñÚ¼CÿÅ E°d BÞ¼¨Ìºš'À ŸÁ^ì°=ü¤»Ï OÐÓ·) (U Ns¬AŽ€ÿ1à ò8°ðó}PâéÀÒO7 Žúó§;™üƒ7¼�;û·Ùä'Ó����IEND®B`‚IMAGE 328 ./arch/monster/beholder/beholder.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���Z1�„�„B�­Z�ƽÿÆÎ÷Îs�Ö1�ÿ��ÿ¥�ÿ½ÿÎJÿÿÿÜ)T���tRNSÿÿÿÿÿÿ�KF���ÆIDATxÚå’Aà ÙÚÿÿnâ •ªÞº>$ÒL6HÛ‡ü\H-«TÕÌ&çþ*bjÙ'ÍBðl–=)„àBžK`Ȉó–œÁèMÐøÁQh½@ ÀɃBzºB;g \g¨jf¹gŠ ÂNA'NÁ¿»~A¾6ì!ˆô0£abz<\)ù¼QÞ`¨Gm¼,‚бÃ|+Ë%DlœX°ž¦*F¦Ó Ãðò_oTÃÆçWw2òžÃûp­ ����IEND®B`‚IMAGE 325 ./arch/monster/beholder/beholder.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���Z1�„�„B�­Z�ÆÎ÷Îs�Ö1�ÿ��ÿ¥�ÿ½ÿÎJÿÿÿ ‚¥f���tRNSÿÿÿÿÿ�³¿¤¿���ÇIDATxÚí’у E¹ë¥³èÿïZP«aɲ=ïð É96D)õß%˜ƒ´¤ªÞšëVD©ÖW™HxSµN©�¯qom_pnDÑ}`†0—¤GáW_K½Ø6ˆ~]G�d°€‡@+ñÚ¼CÿÅ E°d BÞ¼¨Ìºš'À ŸÁ^ì°=ü¤»Ï OÐÓ·) (U Ns¬AŽ€ÿ1à ò8°ðó}PâéÀÒO7 Žúó§;™üƒ7¼�;û·Ùä'Ó����IEND®B`‚IMAGE 328 ./arch/monster/beholder/beholder.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���Z1�„�„B�­Z�ƽÿÆÎ÷Îs�Ö1�ÿ��ÿ¥�ÿ½ÿÎJÿÿÿÜ)T���tRNSÿÿÿÿÿÿ�KF���ÆIDATxÚå’Aà ÙÚÿÿnâ •ªÞº>$ÒL6HÛ‡ü\H-«TÕÌ&çþ*bjÙ'ÍBðl–=)„àBžK`Ȉó–œÁèMÐøÁQh½@ ÀɃBzºB;g \g¨jf¹gŠ ÂNA'NÁ¿»~A¾6ì!ˆô0£abz<\)ù¼QÞ`¨Gm¼,‚бÃ|+Ë%DlœX°ž¦*F¦Ó Ãðò_oTÃÆçWw2òžÃûp­ ����IEND®B`‚IMAGE 325 ./arch/monster/beholder/beholder_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���Z1�„�„B�­Z�ÆÎ÷Îs�Ö1�ÿ��ÿ¥�ÿ½ÿÎJÿÿÿ ‚¥f���tRNSÿÿÿÿÿ�³¿¤¿���ÇIDATxÚí’у E¹ë¥³èÿïZP«aɲ=ïð É96D)õß%˜ƒ´¤ªÞšëVD©ÖW™HxSµN©�¯qom_pnDÑ}`†0—¤GáW_K½Ø6ˆ~]G�d°€‡@+ñÚ¼CÿÅ E°d BÞ¼¨Ìºš'À ŸÁ^ì°=ü¤»Ï OÐÓ·) (U Ns¬AŽ€ÿ1à ò8°ðó}PâéÀÒO7 Žúó§;™üƒ7¼�;û·Ùä'Ó����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/beige-cyan-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©��IDATxÚmÑÑvÄ P°¬¬þÿ7ƒ xšò°1Î «Ì9Ƙ{ï16ª®[d=%ßñ@ôƒ`E©˜c|A€JðA ®KD,;h€Ì÷ÀJUN-yÞ°SðÛîÒ |9ÍY�çöŠ<EÌÝ@^`] &É~xlÝåºA—D¶í86Äê¯S€jo€C°ÚÐÎíÜ>à›#…ï<úØnÖ=;[ j¤`• †~ÚÀͳ/Mƒu€š!¯jÀs—Ê[4xòj_¢7Õì|±ÛÕÉ™«.wžµi µàLê°Ïû ¢rÜ:ÿ§KŠüÈÑsO¯W%ø©ñC‘gÿ #Ë7f3̹����IEND®B`‚IMAGE 353 ./arch/floor/inlayed/beige-cyan-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©���ûIDATxÚÓË’Å ІjŸÿÿÁã¢L6Ó‹H.§ÈMi@àX—X£@Ãÿ2Ù·„#qá@„Þðõ"b€æ`E–‰‘"hm/n¬â/ÀpJ>�x�.Ð âM|Þâ«§± 1 … €›ðYÀRŸg@øsªÖøAnŸv»@×ÚÀíû<Ì%jŒaçÌÀŠ‹¼Â4Áï«&Ðkó¹n¾ Ä“? U"%ƒ¢+>> ºSHÛ¦FDf?ýRfog¯)ðh©UWΟÍ@;QåöíœóÐ÷€ê}+M˜Ä~ÅnýUiÙÖ?M1`_–ØñæiLYçþâ����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/beige-cyan-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©��IDATxÚÒá’à à…®}ÿ>N h;7süˆéì!6 pÎ Ø%׺ÁÀÿn ²Î Hˆ�"Œ W0vtÏ€¼&jÇ€¸ª`Œ9ËÄC¿�_@€¼í�€¿A¾ÉÞo­k64q_«HËà> êóÀ@UÁ£„P+\¤rZÞÖ20À‘�GŽÖ×s°¶@åÚ—«t­%êEV€óÜh ÍúBUú(À•«Þ@2aœ ‹žŠÏÚûÓ5 sÔ‡:ÇðñžÞ[ˆ—ÃFëÞ-ì¶ÂDå„>¬|†A¾gwî)ÞCRàßßnÜ"X­%xô‡ö%…ê?<ŠAq8%u����IEND®B`‚IMAGE 355 ./arch/floor/inlayed/beige-cyan-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©���ýIDATxÚ…ÒAŽÅ P‡1ÍÐûx1D‹ñPý”ߊ�ß÷m-–½×Ž Æø�_ÐûŒ#A¬t ‹>ÁÚ´Gúê!Ø"½·Ì ÀFF!*܇DoúL€ ¢—@ €Ä ÎÏoЦ]q‰¹Wžç�€ÑÚ¾m\@ÂxƒYP DõæµpÐ7@õ¡ùN‚5Õƒ#A¤D8 ”¸?õ�§k®Ì Œ$P‘Ø€Ÿ|Aôg|‰zhd¾±JÃðÝ›?•“†ãâ»2STOÀ7`Z¸¬z€Ú±>ÑõÌP7n¶Áϰ–-t÷˜=‹÷kí����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/beige-green-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P›€-´–F»§qοÙÌ¥“Á5��IDATxÚm’Ñ„ D…EsýÿÞÀñÔòÅ\@ 6çc®µÆX0ž«÷æöÿ�WÞÀ( …™Å t½CKàr=€8‘¹kf°�R_Ó( 3‹Ã¯ +‰ºÛiv�_q½˜ûMì¾eV:ˆ;€þÚD'™¯�k§ L@SÝÀpbñý$rRÓr˜¾_‚n‡Q×üÄÑÒŽ ^ù|„ªÌI=o-’ Po®“x4B@T2ï‹€©B§=�Å·N‚�ôžt¢Ì}cÑNLø£6‘ÚµZ ¼”šCNJlÔá•4Y)6tN!õlQÒgÇÆÍ øìñ("wÿ‘X ­òzó¢����IEND®B`‚IMAGE 354 ./arch/floor/inlayed/beige-green-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5CoCP~P›€-´–F»§q½ªuοÙÌ¥h“Dk���üIDATxÚÓAvà P pÿ×’€zÓYýLÌËsH¢”B‹¯¹©ü?à Dl)(DàƒX o°<6 E¸RŠf£C^‘Ôj‹ÿÒ øBÆ À ôy’èK ,g*j�Í‚+@fí%ȸ-¥¿AÁÌ©ÚóÙsøíœC{ À=¾ùˆž)O4ß¤Ø ws |zÑ«÷ºù‚€Gþ€ÞTÁ+7húÄëC\@- ° ‚ÉæˆyksÔø¯!´õþŽãa—È7EµíùCG�øi‡ô˜Ûv ï²#Ž5ÛÌÚ‹à' ìò‹ÒÄ/¸â Ó” Oâ����IEND®B`‚IMAGE 361 ./arch/floor/inlayed/beige-green-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P›€-´–F»§qοÙÌ¥“Á5��IDATxÚÒQŽ!P»–B‡ûx 3Ùdù^‹Ú€$Æä<·ÉÃÿv rHÁh@BA"çDDÀ= "ô¸W ÈóÏãÙM|ôüBæt]€¼�ÿy’³žY‰œ ·èÀs°ëØ/¨ú|¢ªêÀÕƒ‚tGÿ ”ªƒªÓìüp< xÕ9—™ù‰j V]—9ØQ¢€š(Q1vo ™Æ>�`…~�ÙêªHV7¨Ú€WÅ÷ºÖkiÆn_Õ•™½Öš (¾¹Ü¬y¬÷kçAJÕA}Øá{x�æõœÎ+Dd?¢¿¿ÓxFÁæLðCÂ?:C Õ#~%º ð³”Æ����IEND®B`‚IMAGE 361 ./arch/floor/inlayed/beige-green-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P›€-´–F»§qοÙÌ¥“Á5��IDATxÚ…ÒÁ’„ PȤÁõÿ?xÒÒ$kq˜„² ›�»ï{Œx䘓ÖAÐZÃO�¼Áœ0À™Ä“`Jxä <c€q©Ã|€òh%8¢æ«îXèm• (²æ?Ð{SÑI/À¹D˜8ANqý-QÀ5ªºDYו�°—ã�oÁjF°…Û ˜@ˆŒ¹’ׯóÂú¨œýx «Èœ žJQ€3ç§&èÖÕWænÆ<KAná@æ% DžíKÐK7['îÙmÄö;wÏŸª›¹Dã2Nv’ß½ö³Xì•Ð70Ù.«œS‰º×2n\7î¾Á',.¡»ÿ»¥ ˵G‘÷����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/beige-pink-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»ˆ™»§qÝœœÎ¿ü¥¥ÙÌ¥kiž��IDATxÚmÑÑvÄ P­¬þÿ7ƒ xšò°1Î «Ì9Ƙ{ï16ª®[d=%ßñ@ôƒ`E©˜c|A€JðA ®KD,;h€Ì÷ÀJUN-yÞ°SðÛîÒ |9ÍY�çöŠ<EÌÝ@^`] &É~xlÝåºA—D¶í86Äê¯S€jo€C°ÚÐÎíÜ>à›#…ï<úØnÖ=;[ j¤`• †~ÚÀͳ/Mƒu€š!¯jÀs—Ê[4xòj_¢7Õì|±ÛÕÉ™«.wžµi µàLê°Ïû ¢rÜ:ÿ§KŠüÈÑsO¯W%ø©ñC‘gÿ ¼íyPæz����IEND®B`‚IMAGE 354 ./arch/floor/inlayed/beige-pink-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»§q½ªuÝœœÎ¿ü¥¥ÙÌ¥¸\Y²���üIDATxÚÓÁrà Е øÿ?¸„”K÷`ËÑ›u<N@à°Cœs@Ãÿn 2/ Ç$„®EœÁÕ èž �xt7.ˆ+r€ÖÆHã � F�8�èbW_Á8ÓØhœ!7À®½ð€[ÀS{@ø‚ïS­ûÉ=ýÒ@×Ú ÷ÞgÀDÍ ä,)ØäÀßG½@¯mõ†y@!‰#@-ªÄ•µ¬úЙBúkjGÛ×c_Ê×[¼kJ�-µª%¾ìðÄ?’P-¹7ÚÄï¡Ï‚ºö>ºp‰ùˆÝ÷6i10‰H€Ÿ]0&fSüÕ÷­®+)����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/beige-pink-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»ˆ™»§qÝœœÎ¿ü¥¥ÙÌ¥kiž��IDATxÚÒá’à à…õ4úþ|œ@Ñv:süˆéì!6 pÎ Ø%׺ÁÀÿn ²Î Hˆ�"Œ W0vtÏ€¼&jÇ€¸ª`Œ9ËÄC�@€¼í�€ï ßdï·V‰5š¸¯U¤åpPõù�à  ªàÑ ¨®?R9-okàH€#Gëkƒ9X[ ríËU‰ºVõ"+Àyn4f½!‰*}àÊUo ™0NÐEOÅgíýéš…9êCcøxOï-ćËa£uïv[a¢rBŸ�V>à _dz;÷¯!)ðïo7n¬Öü�ô‡ö%…ê¿·ýI"ñ‚����IEND®B`‚IMAGE 355 ./arch/floor/inlayed/beige-pink-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»ˆ™»§qÝœœÎ¿ü¥¥ÙÌ¥kiž���ýIDATxÚ…ÒAŽÅ P3ÍÐûx1D‹ñPý”ߊ�ß÷m-–½×Ž Æø�_ÐûŒ#A¬t ‹>ÁÚ´Gúê!Ø"½·Ì ÀFF!*܇DoúL€ ¢—@ €Ä ÎÏoЦ]q‰¹Wžç�€ÑÚ¾m\@ÂxƒYP DõæµpÐ7@õ¡ùN‚5Õƒ#A¤D8 ”¸?õ�§k®Ì Œ$P‘Ø€Ÿ|Aôg|‰zhd¾±JÃðÝ›?•“†ãâ»2STOÀ7`Z¸¬z€Ú±>ÑõÌP7n¶Áϰ–-t÷zå 'cË����IEND®B`‚IMAGE 367 ./arch/floor/inlayed/beige-white-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7�� IDATxÚmÒ[–Ä Pl’FØÿ‚»ÂÓ3™úÈC®¡ë"¢kïM„Kß‘µ ¡›þ†¼0³¬ðA}ÀZl‘Ôø—dvõ}=À—F˜WÄ+ìõmgø�·R&ž ÷­ ¸ê0ï�ëì�¾“ìWà™fgbÀ4˜ˆ4€È¶Söþžb€‡.9ÀòÏ!HðÔ%^î%Ú3¦žý�¶ŠØˆ™/–À¬Å Ìô¦ß[ ¢Ù·Ì� À"¨Oþ�ᵺ>b�êݾŀd‘øbnd:?ª©ÖY À4çUéÃŽõ„0sêÕ–4lÕñXÂø5Çø8qæßnà—yö?Bfµ%í����IEND®B`‚IMAGE 354 ./arch/floor/inlayed/beige-white-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7���üIDATxÚÓÁŽÃ PMàÿ?x-l ”ËÎÐúiR”TH�c�¶ä57Òñ€¨N@@9. !¨2ë Fƒ: {&°¨Â3D²1 ®èz·%ïh�x€kË�Àrƒ<Iôm gz±dÁ2²öÀn©Ç= |Á÷‰ÔüB÷œþÑ@“ÚÀž{Ÿ5+Rø{æÀâc8pÁ÷¨hµGo˜’8òj!®Ü ˆ%êSœ@f é©ï6ùÚš—òµ¾ž5u)µÚ4ìð¬$ÅÄžm ¬÷¡Í‚sߺp)óˆÍç¶“b`ÕY03‚)þ�ˆ$V™4Ì5����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/beige-white-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7��IDATxÚÒáŽ!`FèÍâû?ðy‚¢mš?Ê&óU¨]!°÷ŒÕëAÿ¸ê”ýš"*3ȾT5�ó� Š¨.ubB\Õà=L~éà(°í�ÀðÔ Îóž§€fÏrúˆ^EŽ<�î ª9�¼dÐSD.ן�­œ#ocÄØôpähöLÐu*{Œ:D é%ê‡<Ô½³˜ù ”$ªä P+¹"‹ûï%#ÕØÕìe²«{½¨Ý=Ö{™µ ±ÜZ6G›ÌF@+'ä•`Tìà侞9Ù–ØKRïßÜ,‡´¶À“gdKˆLñ ™RVþä����IEND®B`‚IMAGE 358 ./arch/floor/inlayed/beige-white-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7���IDATxÚ…ÒArÅ P §UÌý\2N†EµÀüø†o$�Þ÷m6–¬µ±Àzïø�_ÐÚüIÀÙëš„€þ³`—&´ Ôï„ ´f+·ÞW1D¥½@DW`ù¥×p�ÇèK¼�P Å r‹ëg‰®ª„D¬™ëÚ�àG˜à+`3œ@Ây]‚Fxõ <×6@€‘�ï¾óž kªöFJ;çQ7†æÊœÀIâ‰t€øä F/Q@\_LeÖ#ûîûO¤§€sòìô<÷z ðêˆ\ÖBV}€ª6zæ¯wOð»Ì%…îþT¼tiT~����IEND®B`‚IMAGE 304 ./arch/floor/beigemarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE›€-´–F»§q½ªuοÙÌ¥Ž#Ÿd���ÙIDATxÚ“[nÀ0g·pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/ÅÕ È›fØ¥����IEND®B`‚IMAGE 1459 ./arch/monster/giant/Belzebub/belzebub.x11 ‰PNG  ��� IHDR���@���`���_ëiÛ���*PLTE�������1��c�-ŠVc2cDŸQ,¿¿¿Í…?Ù¤ïå‹ùqU¼Gå���tRNS�@æØf��7IDATx^}Õ1oÛFðèø]J I³œR‘‰`·Žg# Ý&B‹."T^­rS>ºô-u\<µˆ†ÀS"KMË.êÅmójåmùB%m-*·¼?>ðø<^+\в®}hAÕü (<û0¨Ø/çH“‰;”²ë¦~t¸_ëûŸÊž�ñzs´Ä–†bæ€îJãøÙ?Íö\ðÉû+îݽx.�A‘úØ­÷æ–$"iù6Ÿœ?ˆÆÆæ�¨=\¤³ÍyûÔ\L496Æs@IS#ÉŸs½JôŽˆŽçìŒ_È=‘¤Væ�6ª‰¨Ï A©…OHATœE‰…e­vŸTqp÷y²¾Bé²R�0£4 õS 8\›�ÐÚÝzL* ÒÑk‰½œ�¸®XQóKa¦Z—¤Úyp“j‹h0Јb½ŸkQb>ÿ£ZsÑ¢WÀI#1Ý¢ð½ï«DˆrÈ59¾Ó›€{¢Ý?¶hç‰|íØ»óÕ!ý<pCç‹v,Ï«\¾yÁµß$­M€Q¡¿áèy·y ìä§{“D E=·¥„h”QŽ„(ãÔè‚N;žžŒ2PQvè nÞ4Ôã’'�âW-ïZàtéÐI„™v*¸òîùÈ®‰XB¶ZmÞÛZ[ª=Õ!á6î›e¢éøuß¡ÉGŒ<R‚,=4z†âAýÙ{Á'Qéâî�³ ­—µ!gÃj] ‚©0宕egË? -4o$_(>5ÐN¢:?ôлµo¹Ý†êÂ@` çô«FÈåÁ‡ºÛwÈšz¶õs³þ㡦3õ5j$>L4î¶Q#×·ü=èÆ-‹9£Îçfnó’u©öz?�ÍP]r`›ËX{  ÷YÝ…`©q@n&_°ÐÜÜ��CÕ{òqþ¸„í•ÒUFßÇØT`›Æé­^@]IüÕá0äùõ^}-,¨î“Mêó‡/4Í Üô LüEš ù\K.`»l! qyÐ4u€?}êÕLfÈ7Ž—ÿþ¡|æs�ï@qùkÀ«À®ìÜöJX:8]�àêBI°åÛÐø¸_ô׺È·GPe5"eãÙ €*¯VYð5ƒåçÉãx”@s¿£TË”ø‹~­,ô•ØìFÝý5 �‡(—í›FÊ,�)Aq-ËaÕ>+�þ"b`²,‡ó²à!¥ctŽ1PÂ*�Nß9ÇC”„„^Ø^l 7¹ûÆû|Ô;‘0²Ot¨ ìÚ\SMyÔ9žÍ˜˜ÀÃ?W§!Ìîò&½q Eg’¬YPF¹ÞL;”ñ­°‹:hÊ–C7« ™ ÍFˆà²*1*è–¿¨+> @PbCZ êԞ͊‰Hd¯…Ç¡ €–4ÞÂe y û  i=°I‰Þ,Èæ iÕ³¹à‰´»ÇÓLÊÔ Çí‚]ThèC Œ(qÈ+�L¬Z€Àx > à«h|nÓXÌÌÓÓòÆå³Aˈ#~õví‘p‡0!0 àÊý`ìa°ÔË�”OZƒ…¸ãþÞì6ú—±ºWãyÀ|[M˸ܰ]Ûpó`<À¿²¾%�öHx‡9�Æó8à— eKˆë<ʾyàW¾CÑõ®<$Øðÿu¶åïôO¯d19Ó@„¢ °0õt"ó OkZÕœœ‘ÿÏÔ5ƒ»ò³¥����IEND®B`‚IMAGE 1570 ./arch/monster/giant/Belzebub/belzebub.x12 ‰PNG  ��� IHDR���@���`���_ëiÛ���*PLTE�������1��c�-ŠVc2cDŸQ,¿¿¿Í…?Ù¤ïå‹ùqU¼Gå���tRNS�@æØf��¦IDATx^…ÖAoÛFpóè—Ô:õe´d³º8ÀV¯/°rÖÈE.b]z!ëj•1á£ÀÌÅAÖÂ>9ˆ ÷PU•‘”Ç¢‹r’!MC¿{/ý0KŠr²"µí\õÃõf¹–.ÍhÖ~ki:ÿPìþØ<ýmÀäþ@²ò@'k4àÍ2”sô1Ì€‡>¹ŠaýuºƒáõÅW&z9К¤€ î⃧VF€3]ìÐi ŽýN)Ð_½ÝëÖÙ„Y @Œª§¢ «k€–CDÒgYPYÔüN?àµXÈE‚1°I•ä´”[¸øXÄ·‡[Jü’›½û)Щ'¯$É3à´ˆdDá Ñ»Ló5ÝY�‚{'¤v÷3 ýOBD4hf€¡øm 8dÃ2�[BÌ�@—ÊŸwdZ¡_F<fÀLŠ×~ þ1¡æÆ ìMè‹Á¬ kË€Û…¸*TV1ÄK;ùõE÷ÃNzØœIiýñàsÑ�vL4æ·�jVAǤcíKÄ`ƒ¨»} `Èn *¿ ¾á5[)³û ÒÆþ-`Ò.°žþ´GzhËhÛö…¢Æ ÿ°E· ‡Qý¦ú3Gþ¢:xíÌ÷i€þ«°Ýžµ}àUšT.œ©AD_�øŒÃãñßo\ó€‰+[ «†³,:q)¯ì–s%leA²X_ØÇšƒ`ç!zBÔ)F€G¢êm `SíFÜ7©fO ]%‰%è›*íºfbø¾J)½× 0¤ëâﳦÀx*Gg7x‰Yte÷иš™×ÒM»úgº ¨x•H±u”(¬T‘Ô&µò\^‡–mb:54Ã!5óÿŠÜQ�[ï9k²EëÁº_ïÎÔÕ»ûçþåž ›c�ÿ¥B~nP?ÝØØo>ü˜¯ÿi\¶Þ¦7CÐ!OTϦ‡;n±[¥/Ò¤ÄÁÄÉËÝÅÒŒá‚V;5ú:Ò/å2ÿÂc—65èÀŠZÑu¥-Nz>ù¼uî*áŒy ª6�h›ÏÇÎ4àëo½#Áƒ-Kñþ¶]�Ó­âEÀ“N�<+uš<ƒóW‹Aw½o=Œ©!ºqÁ4“¦ KSb?®åa÷v0<9“c¾tÇÿaºæ«2<VΓP-%°`»=˜æ—$µ)ª/m±?u§s°åmá̯yÆòT‡gå£I`¶Ý.ïdÇÄãfÅK+(7˜P¾nOÄ_ÖØTÎϤŽHëÏц£ž/„/œhÕ{R»óä¾ù·ý55BÕ\€ËKÿneRžü³>¬�ºÇŽÎ†¢¥ÍOWIKüMõŽDxLò�*èJ›’[ò·÷p”ô‰CíKÅW€j¨êä‰É-É$¤sBu L^‰³5¤s¢ƒ3,T‚°?̓"½r¨`6®ûNcE‚!w“}PCªæ €räs"ç?ñ<0adBöeÝÍw ~_M¡ ÓMf‡+@‘0 8¡†š^°þ;<T10U‘瀞Ì)Œ“t‡pÔ‡<HæÔn 6“só~°¤ñÓ|ª ‚� ÑŒŽø^òÍ$ìWççâçÇ…B¾ÈÎÞýÍÌï%ÏFOÃÈœ'Ä÷_çT[ú˜�†tv8É' g^Bá„+N5˜tÝß™g ÄÞŠó�LŠßÏé.®ºY` ñg;=wåÈÎ� XÇÕy3ÍjíìS�è¯ú»˜ƒ ‹å†ƒá‰¢°ÒÍübÛ[ZëEï@ŒFé§…ÑëùÏ—€b¿»ªZ1�w?=àË€U¦‡÷l¼=¼WA}Ë ¨xRèc‘<dïDŶb -¿÷ÀÊ}[‹ ª_cúÿgÀ3 o?ø_VN=Ãf_B4����IEND®B`‚IMAGE 316 ./arch/wall/bench/bench_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���*PLTEÒiŸQ,c2Í…?�1�ùqcDÙ¤���G$d3 R- R-‚B'xnFš���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ *q\J‘���~IDAT(Ïc` 'è�ƒ8Ÿ£{7 :ºïîÝ{w/²�ª ŽÝ@ùÛ·+ÐTt®è¾{û6’Š®h*€ [ íÀî°—s )`è\Ý ÄH]+xš$tÌÚÁ ÄH«zïÞPD1¢Í jd#šv@0ÂŒ¦��‹Q L”£Á����IEND®B`‚IMAGE 304 ./arch/wall/bench/bench_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEÍ…?ŸQ,�1�ùqcD��� R-d3G$ R-‚B'!%a���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ,77‘­���{IDAT(ÏÅ1€ ¯á6¾‹&­éÅ'ðmÎhgl½rÙ;�¸B\™9ⱪÁ¬!{CUÂÜ`l%ÛÑDÕ\º3BsläGåaÛ²š¿ÌCRà %„^›GDÒ 9Ò“´Ëã>'š›xÀˆs c;&§€~����IEND®B`‚IMAGE 304 ./arch/wall/bench/bench_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEÍ…?�1�ùqcDÙ¤��� R-G$d3 R-‚B'îJ@Û���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ :,¡|í–���{IDAT(ÏµŽ± À Ýx¿4V²@Rx&@™Ä…§ 6! S¤â^ïÓó�‹„4Ⱥ9ÀÊ"*j¯؉¹^ dÁLÄ­@¥t`ŽD¶_¾›ë`/¨;€þ¦O¦Óöæ­Y¼7ÛÛípsûÞ;UDl ÀÇa· ô�pe¯tªie����IEND®B`‚IMAGE 329 ./arch/wall/bench/bench_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEÒic2Í…?�1�cD��� R-G$d3 R-‚B'¦¯Š���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ Î2Ð���”IDAT(Ï­P»Ã0¤a¿4¼xS0'Ðó$*4eÉ~N•S#îHD_ˆ9^tBLq&õD 4ýñÚD$jîSH¢[j âݧ ŽÅ§hmµEb“0„ƒ‹G [= kÀÝšåb³ƒ¤AÍž <G.ÞVì_òù¼ã¾¬ù.v×yLÜZ”K‹A>ž‡?ÿ3>>þRmmUà����IEND®B`‚IMAGE 292 ./arch/wall/bench/bench_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEÍ…?�1�ùqcD��� R-G$d3 R-‚B'“\¶Ù���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ˆÅ ä���rIDAT(Ï­±À ]x0 _2 O ² ¶á¨¢Î:$ñ"ÿIjÓ0P-<p*pG0.ãŒÛxÏ}JDßA2VŒ³qEØ"Ý(³ÂŽcDkd°xaIdÁÂâ^¾~‚ë,¨,…vòÒîà–F>£ÑB,uN†����IEND®B`‚IMAGE 300 ./arch/wall/bench/bench_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEc2Í…?�1�ùqcD��� R-G$d3 R-‚B'Œ+���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ $qï«s���wIDAT(ÏeÁÀ ùÐ_>ŒVÀƒ ¬ u'˜L¢‹Ï–[yžExÄ!ß3Ïd rÀÿ@‰h"ëDKdÝÑè@‹žh¹ß[Ì‚b¨}Lƒ¦ÓuG#ÒÑ2M}Û‘ ö¥¤Š ­GÆ÷‘΋ E¬ù5¥Øœ¸�ü]ôz;4����IEND®B`‚IMAGE 357 ./arch/wall/bench/bench_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEc2ŸQ,Í…?�1�ùqcDÙ¤���G$d3 R-‚B'Èeo���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ '8@G)E���­IDAT(ϵ‘1à éTSQðɸ¿ ãx& VEÁç|B Hú0nX߉Åvî+Í5÷‡Ë@‹-FnQ÷ôþIÐ}à¥<¬ ðž8 *= ðˆŒI*3¡¢óÀ–h xöÕÔ!†¡v1x%DL*t•%&ú¼61Tò4N9‹[bR¹ ¨Xþ A‚©ÉFÜýúÕ~BVÓ`@<¤òäX¤§Hâ·n¡OûL@����IEND®B`‚IMAGE 337 ./arch/wall/bench/bench_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE�1�c2ùqcD��� R-G$‚B'È®,(���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ -oÈ€+���¥IDAT(Ïe‘Í Å ƒ9d…îRÚ ùÜ!ë¿„ßÀË ËŸ…åêCObG,` ÛÛ ÉY}‡ƒ®–ÁÌS¨ˆ^·pCË€ ñŽ É%,áßâ2ḛ̀rš™a]6GRb!¾‹ÈþuõÜ©åT™ëb ¯ÿ˜Ö¿¢+§žÇ ÖiYµÐ;ú]TYBß…·]Û.ñ»ŽëÜ–'òvgXåƒÓÔ����IEND®B`‚IMAGE 303 ./arch/wall/bench/bench_8.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEŸQ,Í…?�1�ùqcDÙ¤��� R-G$d3 R-‚B'ͧM#���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 0ŸÜ®���wIDAT(ϵOÉ €0 Ë+sö…èåÑ X€ŠIòèrÄ)G…R~XUeÙÎEô¦A…¥„*5çšE”ˆ›€Û2úÜjáâóZo4N¹Ç˜ð¹zzìܹâ55ĈwåÑ*Ó„rš\F-R—r¶u/òÊøx¾UÃ&”����IEND®B`‚IMAGE 341 ./arch/wall/bench/bench_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEc2Í…?�1�ùqcDÙ¤��� R-G$d3 R-d3‚B'€ n���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 20y)Gc���šIDAT(ϵ±Ã0D©˜S•^¼€hX $/¥ñP9èI‘Óæ¬¡´º¹{‘!­ø7›Æ­zG¦q°dz«5Õ{Ò°TXr¾ñ9Žm„îÈ“²c™÷ìòMdI !tÚFä ÈǬõêÔ^b"vó,x~‹€»y`¯wÓJ–¤fŵEËäÑä·¡¼Ìþ¤â|Óiv����IEND®B`‚IMAGE 297 ./arch/wall/bench/bench_A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEc2ŸQ,Í…?�1�ùqcDÙ¤��� R-G$d3 R-‚B'Y>N���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 6Âs7���nIDAT(Ïc` (G h€áŒÌÁƒgžé9#Ó¢e0Uôœ�Êö�Ñ :q‹ q¨<H¦ ˜Pg°Ø³�Ê Âé**W€1û¬v0f¨‚bv ²\%ÃU4S€ŠÊ¡˜��íO¢¼¤ø¹Ë����IEND®B`‚IMAGE 348 ./arch/wall/bench/bench_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEc2ŸQ,Í…?�1�ùqcDÙ¤��� R-G$d3 R-‚B'Y>N���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8+ £f���¡IDAT(ϵŽ=!…é¬Ó{ÈíœM—*¯ÏL.°{ ; dñ'c‘*o|"ðÁHt)lÔ• …ðbÍ'"À×È~pI®šC#±«NÔHY¢ nñ£Ä<vBPŠè©ÐÐ n;jÏ(MõYÁ0Ù ØOõžˆKdMƒìQú×›Ö‘… ýÜÌáý4ÓÝjqntÒÝÉŸ+ÖBpSrÿCuܲ¿`Û²²����IEND®B`‚IMAGE 339 ./arch/wall/bench/bench_C.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEÍ…?ŸQ,�1�ùqcDÙ¤��� R-G$d3 R-‚B'üÓëR���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  )€Ü@���›IDAT(ϵ»Ä ÑÄ5GÄàPð*pö\%4g‰ŸÀÁe§ažv% úG…µ¼¼4Èr ä.ü"P Å?f´1Ø 4Úªx'з莜ËC¯ÆKIªì÷µoïÎd ¹¯S‘®B¦H—ŽD¦´tEºN² Ö@6C®@Ñ”VÑ”Zî4e!?â}MåÓ›òáRw­����IEND®B`‚IMAGE 375 ./arch/wall/bench/bench_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���*PLTEc2ŸQ,Í…?�1�ùqcDÙ¤��� R-G$d3d3 R-‚B'øŠ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ þO¾���¹IDAT(ÏeQ;à õÆœ­Çd³ÂÖ)^<WÊ‚z"–Ü¥6C‰$ÞÏX!13EðB¹2 |äN3pñ¿e¿¨[°•[¨—z¸¹Ü\² ³e«¨YfYF“ðÚ…š…KåUbŠíõVzóŒÆêËè,º)ôðуp°g䮀ð.ô.ÂFMŠt@ÈqdXD¬¿^-ª½­aj‹ư.j_W™Ð?Èw¢¿Ö€<MÚ€nùUJņ‘v?å����IEND®B`‚IMAGE 347 ./arch/wall/bench/bench_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEŸQ,Í…?�1�ùqcDÙ¤��� R-G$d3 R-‚B'ͧM#���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ #ýÖ›Î���£IDAT(ϵÁ Ä ýJ¼œÐ�<\ «„Íe+$—ã{f…äͬ±"òÒWI~•X7¨u³Ö~ ÿJޤ-ˆFÙÞœ]Ï FYÎðUœ°¹ºeœÇêÊ>ïˆL‚EB¶’ D@hI0>B™£\G†ÅWÌbºFÀà+èò{¸ öÃ¥Ž1#ëü÷Ñ#áê·â‘Û¨yßÑ9·½±ò+ ­Ö����IEND®B`‚IMAGE 376 ./arch/wall/bench/bench_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEc2ŸQ,Í…?�1�ùqcDÙ¤��� R-G$d3 R-‚B'Y>N���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ( NÚS���½IDAT(Ï]QÁ… ë%þܪ.`À¾£p`(“п҆¤T*HêD–lVÅ· ¦ØwëB:Þˆ6„«XkRK©¥–Úa¢£¼s¼ˆ}ŠÔ0TcðÉ\a®á>9äw[¼5â½uÿ´®<ÖDºƒ ²žl‘cÇÝüÉ;‚ÜÍ #n!œŸÛö§D‹PÀ¦Û±äA` )“k\²ë0&æ¹L“KçgØlŠˆöÈoÝ;*÷ ����IEND®B`‚IMAGE 523 ./arch/ground/Wood/bforest.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTE��ŸQ,�ŠŠ-ŠV¯/_���c2�c��1�cD¿¿¿¯F˵���tRNS�@æØf��•IDATÁAjÜ0àcÆ´Yõ…lü°âYMª)¢Ë^`Àâ¹êJEB®{ SÜmB ·ì÷Q*÷!͵ܧyšŠ:|S©ÕJ÷b­H#"¡'6!nþ¬¹¯]8ZRÒ÷¬ÐÏ[Û(Cû%MÜsó¾­Ž¢ËºþèOb²Þ¡ =q "|¯-A/ª©í}ÿ=L­ÿUèÙ5ŒÇ}-«Þ÷1 ½ù 4žƒ0ž¶ÐK6ló„köÚQ ñ•-žxæÛ`èvÍÜÁ º¯­£ÁW4ðÉŸ} ô”Câ7ºÃ2îËšÔf‚JÓªéÅ,cíêrÑua÷a$ ?Eäê‚LJÆwOA:¼xç²ÉÍQMmŽYO<+¥#f*¾_Q×�À_.6›<Ú‘}è&�»ÍÃ5&Â&ù¤PUHö³#~t×ÒÒ„#�š¥ ""2>ùN[¡XF™¸¯ §³å-çÓ«ŽÓ±\_é‹Ù„WmòøïæÖ¥'¸ì1dy� ¡eĤ}tùùLÖ¬ôi«²N����IEND®B`‚IMAGE 198 ./arch/weapon/club/big_club.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$Í…? R-���ï§_d3‚B'iñ޼���tRNS�@æØf���YIDATxÚµÓ1@!PüØêýO,‰ù£íD×WBˆ¾ "ý[+!}Ž$„oU(—…ò¿ÐæûºXÀùpžÎé/ë]ßΧ¾`;OçtçÑíÏÀx€$Ü—EcVC~Ї����IEND®B`‚IMAGE 1037 ./arch/monster/demon/Big_Demon/big_demon.x31 ‰PNG  ��� IHDR���`���€���òq‰���PLTE�������1�c2cD±!!Ù¤íu�þ¤�ÿ�� Àž×���tRNS�@æØf��IDATx^í×Áª¥8`e^ÀŸ">F!.\άzDš<–„,þ·NZ¹šººèÍÐçrçãO%Z^;§� ݃z€á÷‚Þ€‰S O@�^´[ˆÎk<&Žz”à4îôàmÜ®H>ÀµÎ':ü>Ðú�âàÔ¯h�¼�–ù è*˜[`:és³S\6Á€ªâàÉøÌ$µâE�˜¹Þƒ˜/7 êš`¿Á…åLùy{ÊÛ', ðµDÄDz BÝÐÀú„B2(ö¹¿yŽâ§Šªp†¾‚î­ Ë´Ff¡~ZíÀLÍö3$ZÅ´ñg¬Cþû*$¬ÿsÀø±·&öu—ü«�Öyž0™51øÀJ°(€%>K^v�, !\ »»²'4ÀuèÆÙ–¯&|p®±|fÌG'kMðÄtž§«}üî Àô�„ˆÚƒ} 4Ú @SÁV$qïZ¢Ò¦ÀVÒlÈ$æ®]°ù˼ƒ>pÇÐÂRÇF9@vÀLVÀg ©&Ï’^XÚ�Ë‘+ÀB  Ò¥`9ƒ`# âb�É2ãjáä-i3`Ì„vÎ^B4@*$â7­DÔ„ÎO ¢« íú°y ±‚!IË› ý8?KÀHrÇà&„s‚$²(zqzÀ9‹ÁN‚œ€ gçrýâ É ÀÒÂXÁ¦¨ûÙž$lµk£—p,iÈ¡ÛC¬@Àh Lè$ˆvÄ…ÒH@!‹†z„lT®d†Dîâƒ`#w� š=0®uûñ‘¢ wQ7È5+4Ô'o;¡TÀ½|ª °Ù˜… ŸJÙ¿ø$áÓ´T�““¦2F2#QÔr�°'NäncþÐ%GE`>€÷¦ŽT6®Fs"#†@}pÚûdeý@ίTLÑLÌ„+:§ìd³›­‰tÁÈýÀ²Ö·”¡ óé•Ù¸; ܇˞ ä/`$Õã]´HŸ,ᜉD'ã¯k‹}¨ƒó>×E,¢0Ü'PñŒüT¾=Éøô •ú g1¥²5@:ƒ“¯�˾ìͶ hì’,¸½ÕïHçúw×Êü ¤u ¯À’Sà+À2¾J¼�o@¯›5/ ü/ëOýëäþ ™Q·Ö����IEND®B`‚IMAGE 1049 ./arch/monster/demon/Big_Demon/big_demon.x71 ‰PNG  ��� IHDR���`���€���òq‰���PLTE�������1�c2cDŸQ,±!!ÒiÙ¤ÿ��`Iä���tRNS�@æØf��©IDATx^íÖAª´F†aÝ_8LVpO þƒìãJ¡–#B‘o·Ác{ëþ­U­$“@Τ'ýøv•]hs�]SœTá}€<è¾d´€dм�„z亷 Åau�›ë¼Î[àïÓßÔ–�ŽÓýsË÷Îæìé°2øžÆ-€î¸ t/ÀiˆæÐ÷ÿš”�Dä|[J ’Ë)@ $õH>¬ðÏAO¦ómŸÏ#õt‰²4Ö=‚§�ó9è9ãtDK…`@õ@Ž >™‹LÅóžÇ¥µ°ßèÏA›ƒgÄd”ëÌu°ícË;€aZ¡_°õË2QH-€|ÎôÏHxn3A¿ü!“üº¨o~ƒüõÃU`óû´'™Ï‚3ñX‘¨xïõ˜€Åô`ÿVáƒz .€gZp8]Á4_ @·…„WÐ@Ÿ÷ò€äk;uZ:Ú÷Ç/ *Z j§îlº3€>å5 ¾˜OÜè¶ãã °QRŸk?„5¨@[ø>ó–FÚÇR~5ƒf`gÚ>ç É8öùQÚ Ä¯?K ©¯À‘Ú]îH@ÀÿÆ"Îö‘8¿‚}­à¸ kGdR+€³ž6€X/tÍZH Ä'j`BÓØrç´uàw°�ÃÄÊú Ðß( +ˆdÒ‹…Zx’È…„rh÷w™\˜‹�=¶+Ïø^XÊÀûɘ ]S,ˆ+L¹P.ª`¥+Îû때ÕBþ/Y�´¾†|"е\)€‹ìwþ™Šc Ìx‚ BÎ0Za-,è°Î³0Õ�¤>�`t ��a‚D–¸Ç Èozn$7Ч p€p4m¿üJ+@�:ôœ…LЇ اƒg�9O¸é°¥ 9“eÐfAŽKਗ€gê 1MT�Mè †` ' Ô€„D®.ÒïÀ0Û]à¸b l qÐ3Ýê U°=ý}»gQ8V�Ðs-P±5 Ñ XÐ © dzY&˜P ù„,�ý­0DrÄÓçÂ\ºi!òp9 ��’œ»ã>,¥ "éñ3�b©0�ë"—èaúRÁ3õ _+•Šæz Á¸X*Ø4G·úÒXî€þv!yºÏ;…äBü¸S  ¼Sp©O¼S€ºpk—€^µ¹:÷ÑÜèšÿüü?¤PþpBjî7����IEND®B`‚IMAGE 167 ./arch/flesh/generic/big_eye.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷½÷½½½Ök���ÿ��ÿÿÿ˜™u���tRNS�@æØf���CIDAT(‘c`jÀØêŠ"Âb€"�T‚,`¬dŒ,`$¨L@�¨%ÄÍÐPT[BQm:,Ý©hü!��ôÏûR6{����IEND®B`‚IMAGE 202 ./arch/monster/humanoid/Arabic/big_slave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ðæŒÿ�����ÿÿÿúpœê���tRNS�@æØf���fIDATxÚÕ’AÀ ÃBfþÿ帮éa—Í„TG„¾]r}ÎÙ¼;B˜œ7†?P Ã^“²Ž7˜R`çƒ ³yˆkò® 6¡MâSaã, ¢�‚æ?9 ˆV°^5y–ÿq¨Y¤$×n����IEND®B`‚IMAGE 3466 ./arch/monster/giant/Big_Wiz/big_wiz.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��»PLTE��������������1��9��)�����!�)�9�B�J�R�Z����9�B�J�R�c9���)�B�J�R�Z�c�sBZ!�!�B!�R!�Z!�c!9!J!Z)�R)�Z)�c)�s)Z)k1��1�R1�c1�s1�{1�Œ1�œ191R1„9�c9�k9�s9�{9�Œ9c9k9cB�sB�{B�„B�ŒB�œBkBsB{BRBkB„J�”J�œJ�­J„JŒJ”J„JkJŒR��R�œR�½RœR”R{R„R”ZœZ­Z½Z”ZœZ!”c�½c�Îc­cµc½c¥c!¥k�Þk­kµk!¥k!­k!µk)œk)¥k)­k1¥kB„s�Îs�Ös�Þs�çs�ïs�÷sÆsÎsÖsÆsµs½sÆs!¥s!­s!µs!½s!Æs)­s)µs)½s1­{�ï{�ÿ{ç{Î{Ö{Þ{ç{Æ{Î{Ö{!½{!Æ{!Î{)µ{)½{)Æ{)΄��„�ï„�÷„�ÿ„ç„ï„÷„ÿ„Þ„Ö„Þ„ç„!΄!Ö„!Þ„)Æ„)΄)ÖŒ��Œ�ÿŒ÷ŒÿŒïŒ÷ŒÿŒçŒ!ÞŒ!çŒ!ïŒ)ÖŒ)ÞŒ)çŒ1ÖŒ1ÞŒR¥”�ÿ”ÿ”÷”ÿ”÷”ÿœ��œ�ÿœ!÷¥ÿ¥)ÿ¥RÖ­!ÿ­)ÿ­cε9ÿµBÿµJ÷µJÿµZÞ½9ÿ½JÿÆ9ÿÆJÿÆRÿÎBÿÎkÿÖZÿÖsÿÞ��çRÿçZÿçcÿïcÿ÷��>���tRNS�@æØf���bKGDÿ-Þ�� pIDAThÞµ™Ko×ÇÿgÞ3$‡3çl+~Å’™8-Ü�©R´€P ´è*ò%ºi>E]>@³n6A7F“M #h‚"/ !9Ž¤ØŠH‡3äˆóàsº b7±bK¤Â AÎÌùÍÿœ{Ï9÷^ ?óGZâY�þLhÕÿýÄ2�0!xÁz—6�€t¿ÚjóÏ Öê½tÿÊc ÒröfêO/â1i9ûOïfüî1„¥\äÒëNØ} AZBÀùÝó+/6ÐýÐýºÑ>sÔZßÓ¨ÖШb/üÉ@K‹ÛGC¬9©Štp0>ó Sk}V¨«u–äÍ ?c�µÎo«×ž¾–g�ìªÑÌ; >;�µV·âó ÒÌ….*¿?Š®¡}v ¨µ¾ƒŠB|˜%jRúb×ëýæ'Fêb.Ú‚¥Õ =+µA’ ÓŸþƒîÊñi^b›— ¥Înî3º´Ùßëža“رÍRÝ©T\A’DñmàØ¹°@Óì²Y¯UfbSÈ03DQ(6=?=+ë»Ôl4ªý>KSAŸV[¹Jâ…;Õý³І Wž“¿œ¸±-Kô^^‡[ÁÅ€6š°ªÏ=½7ù´ÃЬ0D#¸„»â™�h£–Ë_\—np8Ì*Ÿè=÷¿`7Y; �mðý¦v¹myã<ͳ@3ìã~"Ø|ó€6j÷I—¬»ÝžçeÕq%4£Ÿ€ôÚÄ€6®šúJÕßût¬»æ¶"+kÛw}ù¤ ÚÐöê— ´¿í|§V×ÞÈÞX{õù×CþbélJìšÅÕuÛÿâÞ^6rkm{íÕç@—­h„Öõ]²¨jÍ›:Æö{¸�ày¼·½|ãEÀF“êŠZrp*Ioþ ÛØ~ Û}ñR€g�45yµAŒíõŒJ%} €~"ö–<íÓùŽ]l¬cà”Hî�s‰Ë( DÐ vÍ�@T#æöÔa}™P¥ÚS×D  �Ñð¨?ºE¨¬¶—Š©5¯­VûìÂE} œ;ˆ¼‡W "g©Qô’‘g5¥J5·;I9íÕeá*”ƒ#çXR!†º€ZF3Otø¶ƒ^:ŒŒ2×![cN°*ç´n7)/¡`UÎ5`øÌÉ8dUÅiû*æéÜ% qoa�ýúNC¿¶æ»yÝ0 )È1ëоœxÀÊ¥óE绋Éz{áÎn¥¨™…b'Œ‡Q š @@3›UüT²u„y³SÐ_» fS3VȽ058Ný“T…=Yj4AÊS?×òš£Þ¸µh F–>ÔÉî ‡3Ý4ë�=ª\ak G÷F^>)V®{w.-ÜÙÑüËxëô¬3pÑA½ü”‰«aÔ!ãÍgl/ÞREi° ]ÁìŠmZ@pw8‰rÃV”¨w�¼ôîÝÑ~ÄP DãàÂT*¥"òðÎ7Y”¦¶ PõÛ–Vû¦` ø$kt”}¦`¦pg·7bS-Ý ôBVÌE]¤¨à¸v/›;ÈÂÌï U„h¢*„©B‹M4j­·u�f!Û7Ýùû“Ý\ÀJ„Fj*FnÊzÄtz�µÔ]SãrGeÈð~Áa=.F%W/e•ÞdÔŠöm!`Jóp‹�܃,”ì¾’Í Í«Ó".¢–Ú@ÏÜÙô�h·7IF©b¨˜ û¨(ÕEsVN ´q52�yv/ébÆ�TôÂaÃ¥q/ðÙ_bä ¢´t:�µ ª©~vvæÓa �¥¦ib’Ä ëmþÇk ÊÒSºˆZˆöí¦l¢‡[�ð21Í�;$³Øàû~—Þa û|½I|š ЂÙ?šÈÅ`ž(oááÔ`ͦÚKB¶¶�B…&"JBó„�B �P…|´‰‡k£Š´j%Ôå ?ÅV›Í´'’¦“* ±iÎïÖb vø0ÓO&‰[tÊ ¨wÊ<?']ûc�eôO –ÙŽ5§P²ÊàðÇëWÄw§Ó2ú&ñ} �mÂ>€_@­õ]5FdM#þQC¨#d¿¤Ï$yÚ;Ì_íëqå�˜Sž¨ q ž¯F–U++“t ÔðÀC/ÃêpŒ¡ ñƒÔÓô>9yûN­¯*f91uÓRêóæöðÁÅ �£j©zùÒQGýíiv~û«Z4[ãû‰?þOÀÍò]"iâ„å‹x‡ñ…xrM¦V …P•UÇ£ág›ß xùÂÍr}K„bQF/å¶ð#…'R`GºBFQA8ìL¨½ �øs7ËõìÚN  WAlm5ðh ºmš2&‰0ÊGï÷ûÉÀ÷,G ÅŠQ*oa2Ú?Öü1ÃÔ¨×lÊ’Ñ8€ª—q À_‡¡ ¦d–ÊFyþÌ\À‘BœxkY¾ ýQœªºùÏWÞ^ß×d½vŶ€'<ËSÿ¡¹‹xÂ1È#.Rua: ˜tÓÆÛÀë=©(8eqž“LŸ (Éüö7žtÊò€ã‰”â„*ð–ËuÉÒîwTELØ0¯ �è•·qÚ#–Cc¨¡¬Òp˜˜À[�`;¾×ë I¢sÔ£?xê‰ö¤c_±ÍRIC’†…¿1 °¢kÅ?¬O:„zTAÄUíKjÖ¯Ãu»c?a9 ­à‡k¥'Ú?&Ì®�@ÕÈÐÐË’,ÌtHÍJ§´ÿ(À�aÄ‘ÃÖd`jùY˜{™Q‘D,J§´LE3TıV6æK Š$ÿ.5*Í5õëÁl:=í&âqE_KR féYb ¨Ã‰ ËkWÃk»Ùû“E“LšZãèzí àº-B0Èš*Ä颀q¬¦õ‚!—êèùø\E…­Lì<'�‚…Ä»¸€Û­Ô� —ží3�ffá" ƒx§äLl�A#÷¡UÏ-ƒ› BRUwþ«—¥|±äX#yÇãi�|ßsÅæúßy!�·«n<Aª*u ÌažÜ]¹‚ò˜Ù› ’ x}¤êíEcÀíÖ]5M“š Øð§Œ‡Šo`åýÝAU½Ýæ%†iêUâ$Õ@( ñtd»[¶@³\=4€pàe÷Nlÿ˜TÑnyLVA%Ì·ÎêYY›=±j–<øñ’-Ñ̦%Ó¼˜®²IòkÓD ²)[@–œÉ5ÛYEHsÛ½Ü# vêˆR8�9¥Ïy �·7µš8å)�Ø×U¡Ÿ{ ;:%š¥½%]ÔÝÈ;Õ´«ùdäJ.vëT-î~7FA/Û_<ÄǸ_îÂ.ÈÒLF’ƒÐ(Û¦ô݃a,4n|pûÇ*à6ÌCcìÛA�ý"’€¡Ž}­zûTö_£q»uUwv@�ÎÚäs¥•hp¼t=�¸ÝnÝy!ff1mu‚Ñ>¥ùŸ\Æ2Úho¢DÑ÷‹³ñêí6Nmþ1 qÞô/œ`Qƒ?þüﺼQ»����IEND®B`‚IMAGE 3481 ./arch/monster/giant/Big_Wiz/big_wiz.x12 ‰PNG  ��� IHDR���`���`���ÕF‡ ��µPLTE��������������1��9��)�����!�)�9�B�J�R�Z����9�B�J�R9B���)�9�B�J�R�Z�c�sBZ!�!�B!�R!�Z!�c!1!Z)�R)�Z)�s)9)k1�c1�s1�{1�„1�œ1Z9��9�k9�s9�{9�Œ9k9„B�sB�{B�„B�ŒB�¥BkBsB{BRBcB!cJ��J�ŒJ�”J�¥J�­J�½J{J„JŒJkJ{JŒJsR�œR�­RŒRœRŒR”R„Z�½Z”ZœZ¥Z­Z!ŒZ!”c�­c�½c�Îc½c¥c¥c!œc!µk�Þkµk¥k­k!­k!µk)œk)¥k)­k1¥kB„s��s�Îs�Þs�ïs�ÿsÆsÎsÞsÆsµs½sÆs!¥s!­s!µs!½s!Æs)­s)µs)½s1­{��{�ç{�ï{�÷{�ÿ{ç{Ö{ç{Î{Ö{!½{!Æ{!Î{)µ{)½{)Æ{)΄�ï„�÷„�ÿ„ï„÷„ÿ„Þ„ç„ï„Þ„ç„!΄!Ö„!Þ„)Æ„)΄)ÖŒ�ÿŒ÷ŒÿŒïŒ÷ŒÿŒçŒïŒ÷Œ!ÞŒ!çŒ!ïŒ)ÖŒ)ÞŒ1ÖŒ1ÞŒR¥”�ÿ”ÿ”ÿ”÷”ÿ”)çœ�ÿ¥ÿ¥!÷¥)ÿ¥RÖ­!ÿ­)ÿ­cε��µ9ÿµBÿµJ÷µJÿµZÞ½9ÿ½JÿÆ��Æ9ÿÆJÿÆRÿÎ��ÎBÿÎkÿÖZÿÖsÿÞ��ç��çRÿçZÿçcÿïcÿ¹w¦V���tRNS�@æØf���bKGDÿ-Þ�� …IDAThÞµ™ËoÇÇ¿³œ}pw¹/î’Ôñd[N7rÒQ‘BÍ¡hÑÒCÚkN¹h/EÑcÿ€Š¢×^{îрͩêAÞaü€‘dIÜåîrÉ%÷Å$;Ž-+©ìA9ÃùÍïÁŠïø¡s|–��ûŒÀ•?øÄ<�0‚âGæuö�äm·Ë¾+�qWîg;«Çè|úJ3¦C óé¿K6Ô׎!̵DN>yÜÅÏ'Ð9 p¾X¼øÃ6ößï™g¿DÄ]݈Ý&h;ŸíÅÏu4Y ³Cr¹Ÿ°3w2q_ õ5©m…¦2Hüˆë|Z·/_ª2�–½”U;;�qWºcD«ö!Ráµ(­¡{vwýšdžcbÒ:Ïÿ‚ì ¾ÿœ:Û}6%æ¥&_SÈÏßÿòÎÂÑ:‹ýÔ’/èa44ëe ÿºwgÿ œNˆ¦h¶eM=yç)½zwGÆÂL�I²–,DZ¦µNU°R¥5©Ñ2FùYY°~ºÞ²}ŸÑ’S ëÅiÔZ¼rF�²!›Ü÷^æ¿ÈzCŽt~±\‹oÏÈdc‹Æ•K¢;»‰¬Š“ƒ ¸×(g ÖP5_YÁÃ`{¦õýðCwÓËg l§-¯:É­AÌòªØÈ;`)g²3ˆ²aõyE4î>ˆ¼ýÂNÆãT‚$û)HÝ9‹‘®,XáƒO³lŒK¶Æ2ÎAyñËg*Ȇ°}Þl·qóÓ݇¢}éo£?!À¥W~ó»$°IwîlJ6Ø@®Î]6ÃO†Ši”Ò+ŸÀúÙ¯��á¼À½¸E²m�`lüñ/ïüø5û{�0n¾‚C€q!wtÏäÀTk/Erç Àolù™¯¢X!Üy‡0ܾŠ­Þ`œúãcx2à§œü`�ÁÊm²|_k8—z�ê HÓ��‚ƒ9“Ù®º¬-H�qˆ‘%ÅÞã:\Ÿ«è;°‰Ó^Ñ9„€ýþýð?wn¥;3€�eÝ=gû̃§„¨ñÍþ×3dBÄy,p6”a± ÚÄñ¼4Aê9h\¿w¸8:¯ ¥³ˆë+FÊM^R&±R 8 è õnVÌa¿1-5€!b¬ìT9Åzy‡¾³$ö'¸?{ãµxÓ2έE^å£ ²�SwþSM‹>ÐYr43(*·{õúŒÉ.Oê¹£«Šßâ²T¡�­lª† †‰Ìo,'«÷g["A–o¹Rw³IækºTSDŒQÇÞkãai«|+›±ñrsM,XQÞg±™jŠå�<b­FÄ'[±×Ó:öZ¸ó@˜9Ð.¬¯Ñ<ê†Ãf¬.šÌÃ>}YÆÃJŽuké…σq“1�úAë`4uÍ�¢m?­ ®Ywv}A’pÔN:Y6kƒZˆŠ‚‚…¡Õ4s÷ý{iÊhK[…H\½>‹¼ 䢂éÁ{UÉXE_ w ¶œ—ˆ'O”Y|Ð}U�`úFX ¡0l;¦ý]`¯1–@€mQår|”è·%Š®††ZìxdP,ƒ˜>çÁùšDh™Ã‡¤¶}CŸ~W�±-ï?.ŠfÈvGâ0¢…ƒ÷ØOvÙÿè©ÄtßèˆV§x,ßsBÏOèÛb6€Ü¡‰Â’~uêTA\Á©¦Ó~9½s8Wt<¶'5ƒdá~‚ddÚE^ž@àš‰ía2ÝN÷O�ÍàeBE©ŒwG1>Æ&»òá|†²<ÂËô˜FBH(P¿uë <–á²€$¡E-–¤.Ã{¸±~‹(}IéåΉ- .&;–þñf#߀ŸuT ´¨•jÝl±Û^ˆÅë À{›Ù–:]z8DyÂ%"€ Á?|õîáß7 "‡©1íŽØc [üüpJ[�Tìž@à�ltó°í9|nµ[Äjh –ðù Çç z»}ÀN� .a‚dø`Ó¿ûĘڳ{ù² 2ñ‚pD�kkd|�”ãÄ•oO¤¦\o˜tðeTðˆoê{( Ê8Ö5ÃNZô‰»~[œ Ñ¥Å# HÂX~¯C8aø0í?±#¿:yWaÞ£‹ö¤®œ7Ŭ„…Ç+ôVÇG#M†F2±3Æ÷“ðmÉŽ¸wš2¥²ØDgÀ×=m‰+ÀÎ(Í $!¯¯¬=ªóãSÌú[T¢j ¶ãø÷£_bûÕÕ»c>†¨$cÊþÉ÷ô1< î$BNÛŠeï_› x«Är{Õ‰{œR <vs¦ãQlŽŸ/ÿ¬z"ó"Ñ—ü ÞK`];÷&ÂR{Õ)ôÖ(ã/jý4ÌM ;;URÛšØÏÊ a‡‹ûú pž®½8à¬Ónâñ÷.ã¸{„g�u££!KÊÞïxk50bòV¥ 8GŒÛ¬¿{Mñ4€Rix줼y øC‹yÔÛæ &B°’Ÿ²<zB¼yíØkg#Yœñ0aDÄ5àm0§2u!�hQ¥O|àxýgŒå>d5+€?÷Z`dÁà²ý=Øh’ óéÄ{º+–² ªÐ–²Ÿ$xû³+Ž˜fÔzðjëÖ­;å%јn[0¸�_•›°mÆ�Öïï!Óƒ¦Óé? H Ë(›#…oÏëEI†‘µ¹ò”úGú`è º¢P‘ð’UàâJ?íÜ3�†l,CT(0ˆa¡.©ãúò¼�Ô)²lÔp¨å�ˆlÁV¡/8—FQ8bn Ss›X/æ œ¤p—.Æ[|1ÿÅ%( QTÍ9wzj V-†> €C6™0š$ºª‹Ôràn‘¶!ÂâcÐ*T�ˆŽ¼ßž Àºn¦�"µ^òîeX0Õ§«UÈFÚ´a�Û,‚`/2£ÖJ:*–3ïà•—gâÞ%Í´vXÀ�DQÔÛæ?ØL�ÖuÑ ²í¥D †tXÕÔs0Æ! JsØ�"¯_ ͳú€uÝm!/³�ažÇË`,¼gh¤ò¶=¿ÑeslӼߤ# hU™%q/䪩ÖX*†;QyÿÄúG¤Š®Ûg¤Ñ¢ÀÔôõH%«0"+¨ÙF£¬?"óZ*Ɉ� ÒË)|�0ƒ£à5j";sF²äh­x(§yµAH`é¨Õ†åDÐ>as�XwS<ÏÊ ƒ£"ׯ8®ÔïEØÓˆÚ–÷æ´ üqz§'˜f³âïU­G‰Õƒ‡¨¦hß>¹‹°.®ìîjužN… _ ¥:/ƒ”[¸xã4úGZÀºSiƒ"PcðUä$Õ8ôÓé®Y×].Ù½{‡=+¾ÔýÚ¹–à¿`gPX·ëî½:a2W4'}Ò¨pÝSÊ?÷g,CÝM¨ŽòBxáF§–?æ‡8Þ;mqÚ³Š™Ÿ~þöËÍtn¾d����IEND®B`‚IMAGE 3466 ./arch/monster/giant/Big_Wiz/big_wiz.x13 ‰PNG  ��� IHDR���`���`���ÕF‡ ��»PLTE��������������1��9��)�����!�)�9�B�J�R�Z����9�B�J�R�c9���)�B�J�R�Z�c�sBZ!�!�B!�R!�Z!�c!9!J!Z)�R)�Z)�c)�s)Z)k1��1�R1�c1�s1�{1�Œ1�œ191R1„9�c9�k9�s9�{9�Œ9c9k9cB�sB�{B�„B�ŒB�œBkBsB{BRBkB„J�”J�œJ�­J„JŒJ”J„JkJŒR��R�œR�½RœR”R{R„R”ZœZ­Z½Z”ZœZ!”c�½c�Îc­cµc½c¥c!¥k�Þk­kµk!¥k!­k!µk)œk)¥k)­k1¥kB„s�Îs�Ös�Þs�çs�ïs�÷sÆsÎsÖsÆsµs½sÆs!¥s!­s!µs!½s!Æs)­s)µs)½s1­{�ï{�ÿ{ç{Î{Ö{Þ{ç{Æ{Î{Ö{!½{!Æ{!Î{)µ{)½{)Æ{)΄��„�ï„�÷„�ÿ„ç„ï„÷„ÿ„Þ„Ö„Þ„ç„!΄!Ö„!Þ„)Æ„)΄)ÖŒ��Œ�ÿŒ÷ŒÿŒïŒ÷ŒÿŒçŒ!ÞŒ!çŒ!ïŒ)ÖŒ)ÞŒ)çŒ1ÖŒ1ÞŒR¥”�ÿ”ÿ”÷”ÿ”÷”ÿœ��œ�ÿœ!÷¥ÿ¥)ÿ¥RÖ­!ÿ­)ÿ­cε9ÿµBÿµJ÷µJÿµZÞ½9ÿ½JÿÆ9ÿÆJÿÆRÿÎBÿÎkÿÖZÿÖsÿÞ��çRÿçZÿçcÿïcÿ÷��>���tRNS�@æØf���bKGDÿ-Þ�� pIDAThÞµ™Ko×ÇÿgÞ3$‡3çl+~Å’™8-Ü�©R´€P ´è*ò%ºi>E]>@³n6A7F“M #h‚"/ !9Ž¤ØŠH‡3äˆóàsº b7±bK¤Â AÎÌùÍÿœ{Ï9÷^ ?óGZâY�þLhÕÿýÄ2�0!xÁz—6�€t¿ÚjóÏ Öê½tÿÊc ÒröfêO/â1i9ûOïfüî1„¥\äÒëNØ} AZBÀùÝó+/6ÐýÐýºÑ>sÔZßÓ¨ÖШb/üÉ@K‹ÛGC¬9©Štp0>ó Sk}V¨«u–äÍ ?c�µÎo«×ž¾–g�ìªÑÌ; >;�µV·âó ÒÌ….*¿?Š®¡}v ¨µ¾ƒŠB|˜%jRúb×ëýæ'Fêb.Ú‚¥Õ =+µA’ ÓŸþƒîÊñi^b›— ¥Înî3º´Ùßëža“رÍRÝ©T\A’DñmàØ¹°@Óì²Y¯UfbSÈ03DQ(6=?=+ë»Ôl4ªý>KSAŸV[¹Jâ…;Õý³І Wž“¿œ¸±-Kô^^‡[ÁÅ€6š°ªÏ=½7ù´ÃЬ0D#¸„»â™�h£–Ë_\—np8Ì*Ÿè=÷¿`7Y; �mðý¦v¹myã<ͳ@3ìã~"Ø|ó€6j÷I—¬»ÝžçeÕq%4£Ÿ€ôÚÄ€6®šúJÕßût¬»æ¶"+kÛw}ù¤ ÚÐöê— ´¿í|§V×ÞÈÞX{õù×CþbélJìšÅÕuÛÿâÞ^6rkm{íÕç@—­h„Öõ]²¨jÍ›:Æö{¸�ày¼·½|ãEÀF“êŠZrp*Ioþ ÛØ~ Û}ñR€g�45yµAŒíõŒJ%} €~"ö–<íÓùŽ]l¬cà”Hî�s‰Ë( DÐ vÍ�@T#æöÔa}™P¥ÚS×D  �Ñð¨?ºE¨¬¶—Š©5¯­VûìÂE} œ;ˆ¼‡W "g©Qô’‘g5¥J5·;I9íÕeá*”ƒ#çXR!†º€ZF3Otø¶ƒ^:ŒŒ2×![cN°*ç´n7)/¡`UÎ5`øÌÉ8dUÅiû*æéÜ% qoa�ýúNC¿¶æ»yÝ0 )È1ëоœxÀÊ¥óE绋Éz{áÎn¥¨™…b'Œ‡Q š @@3›UüT²u„y³SÐ_» fS3VȽ058Ný“T…=Yj4AÊS?×òš£Þ¸µh F–>ÔÉî ‡3Ý4ë�=ª\ak G÷F^>)V®{w.-ÜÙÑüËxëô¬3pÑA½ü”‰«aÔ!ãÍgl/ÞREi° ]ÁìŠmZ@pw8‰rÃV”¨w�¼ôîÝÑ~ÄP DãàÂT*¥"òðÎ7Y”¦¶ PõÛ–Vû¦` ø$kt”}¦`¦pg·7bS-Ý ôBVÌE]¤¨à¸v/›;ÈÂÌï U„h¢*„©B‹M4j­·u�f!Û7Ýùû“Ý\ÀJ„Fj*FnÊzÄtz�µÔ]SãrGeÈð~Áa=.F%W/e•ÞdÔŠöm!`Jóp‹�܃,”ì¾’Í Í«Ó".¢–Ú@ÏÜÙô�h·7IF©b¨˜ û¨(ÕEsVN ´q52�yv/ébÆ�TôÂaÃ¥q/ðÙ_bä ¢´t:�µ ª©~vvæÓa �¥¦ib’Ä ëmþÇk ÊÒSºˆZˆöí¦l¢‡[�ð21Í�;$³Øàû~—Þa û|½I|š ЂÙ?šÈÅ`ž(oááÔ`ͦÚKB¶¶�B…&"JBó„�B �P…|´‰‡k£Š´j%Ôå ?ÅV›Í´'’¦“* ±iÎïÖb vø0ÓO&‰[tÊ ¨wÊ<?']ûc�eôO –ÙŽ5§P²ÊàðÇëWÄw§Ó2ú&ñ} �mÂ>€_@­õ]5FdM#þQC¨#d¿¤Ï$yÚ;Ì_íëqå�˜Sž¨ q ž¯F–U++“t ÔðÀC/ÃêpŒ¡ ñƒÔÓô>9yûN­¯*f91uÓRêóæöðÁÅ �£j©zùÒQGýíiv~û«Z4[ãû‰?þOÀÍò]"iâ„å‹x‡ñ…xrM¦V …P•UÇ£ág›ß xùÂÍr}K„bQF/å¶ð#…'R`GºBFQA8ìL¨½ �øs7ËõìÚN  WAlm5ðh ºmš2&‰0ÊGï÷ûÉÀ÷,G ÅŠQ*oa2Ú?Öü1ÃÔ¨×lÊ’Ñ8€ª—q À_‡¡ ¦d–ÊFyþÌ\À‘BœxkY¾ ýQœªºùÏWÞ^ß×d½vŶ€'<ËSÿ¡¹‹xÂ1È#.Rua: ˜tÓÆÛÀë=©(8eqž“LŸ (Éüö7žtÊò€ã‰”â„*ð–ËuÉÒîwTELØ0¯ �è•·qÚ#–Cc¨¡¬Òp˜˜À[�`;¾×ë I¢sÔ£?xê‰ö¤c_±ÍRIC’†…¿1 °¢kÅ?¬O:„zTAÄUíKjÖ¯Ãu»c?a9 ­à‡k¥'Ú?&Ì®�@ÕÈÐÐË’,ÌtHÍJ§´ÿ(À�aÄ‘ÃÖd`jùY˜{™Q‘D,J§´LE3TıV6æK Š$ÿ.5*Í5õëÁl:=í&âqE_KR féYb ¨Ã‰ ËkWÃk»Ùû“E“LšZãèzí àº-B0Èš*Ä颀q¬¦õ‚!—êèùø\E…­Lì<'�‚…Ä»¸€Û­Ô� —ží3�ffá" ƒx§äLl�A#÷¡UÏ-ƒ› BRUwþ«—¥|±äX#yÇãi�|ßsÅæúßy!�·«n<Aª*u ÌažÜ]¹‚ò˜Ù› ’ x}¤êíEcÀíÖ]5M“š Øð§Œ‡Šo`åýÝAU½Ýæ%†iêUâ$Õ@( ñtd»[¶@³\=4€pàe÷Nlÿ˜TÑnyLVA%Ì·ÎêYY›=±j–<øñ’-Ñ̦%Ó¼˜®²IòkÓD ²)[@–œÉ5ÛYEHsÛ½Ü# vêˆR8�9¥Ïy �·7µš8å)�Ø×U¡Ÿ{ ;:%š¥½%]ÔÝÈ;Õ´«ùdäJ.vëT-î~7FA/Û_<ÄǸ_îÂ.ÈÒLF’ƒÐ(Û¦ô݃a,4n|pûÇ*à6ÌCcìÛA�ý"’€¡Ž}­zûTö_£q»uUwv@�ÎÚäs¥•hp¼t=�¸ÝnÝy!ff1mu‚Ñ>¥ùŸ\Æ2Úho¢DÑ÷‹³ñêí6Nmþ1 qÞô/œ`Qƒ?þüﺼQ»����IEND®B`‚IMAGE 4368 ./arch/monster/giant/Big_Wiz/big_wiz.x14 ‰PNG  ��� IHDR���`���`���â˜w8��×IDATx^íÜ/Œ&ɽåýÏXü‚E°'aÂ6fmhh8/»/4ô²»ÐðÂ]hhx/44[Ã6fÓðù° ‡õJ£”J¥Úi¹w­Ùé®>©T©J*r¾¿™þßꋾòºôþ—æÁ¯^kÀí¾õÖïáýuðsC˜NßøWoûâ €ŸWwwsvßþL¾�x¿ûÖ­”àîTüüð«×j~ÓݼÑ}ÝiؽùÙ!ü굚ÿfüÆæk_{ëߨ}£lÞößý¬þÅ+ÓV»š7Žn·‰1qZóámÿ-“»¿¼ÇW_�ü³¢¿†ûã´Ùm6›7:`âôðÎt̩۾” ¦ùûm3Cº²éè LÜîî?K)ú—Wa~ß ]×ì6Áõ%þoÍs™_ÊÞwoj¿@œXˆ†¡ õ¥ý3jþ»y8•a›mÛl·*�ЋÂMw³¹yó æ—ôñã¦Ç<œØ4@)¤@cCAqßÓaï»kú’Ýpç †RŠ "H€BëôÛ¶½ìûf÷Ææk™›oêc×_2Àýq J)èRU"ÖŠ–X¢+5hµ±)Ü8ñ–òÈéæ×øðºàK\ÑŠ»ÃB¶~s뛦+…X"E°ÀÞùzçë[·ÙÐ<þA}É€é”á¦×f´R†Ö ˜¡‚’“ wÆF5Ît÷Y�vß~8 ¾� `z £mêºZA -¬ržEÈ·ËüÁ6Ø•í–#e*Ð�{ßÕ<Ðlv£oJW’PmrvÇcnr²°6Üîj›ÚšÇ�?©÷ßøƒ>й)›­oníF53§Ó4×!NÕ¢` rÝ6‡ýQöšqÏ;ÇúÁi~é>l¾Ñ‹ÕôÚ ›[mFu§é4Ý×Ý#?Xäi<MJ K·iî«ì5ã<ï‡ÃÔܾ�øIó«H©êZnm3Ü3§Ç:ÌüàÌ]ò�©¥4Q¢P¢™)Ç=Ê’ÉašÊîöåXŠ—æ#‚Ínï»>nF pæt¬¿{ä{÷Ü­<L'"�(…P‚º›a»Vľú’O‘ïH”þtWs^‘®w’ï­Üõ<t§a NÐEÃR`<-å¾ô�ÏÍ·õ.a³+ÝV›ª’œŽ«æ'wr'»ÓŽà~Ý'nØP¸‹»2Aé6ÔSô¿j�—ù…sÆV›qÛt7Õ˜?šÏ’»ÊÃv™ÿßöá~Ÿþ… ;ÞVùý¶ù/Ça&¢+›ÖËéoL_½ò xªùt]éz»5TuÉô8™9̼“º‰Pö}÷Íq80ðÛ*ÿºm^*jæ}~õšwCß?írv¥tÝ0´j U�J�1qOüù8ÀïžÌV\æó§ãp$xí§"Þ\s>šQC¥T U%âÌÔt�u]Ap⎿&Þ]ÞáDø±ìÀ‘<û{)ç:^€Ý·ï`ôÒ ¥Û¶¡t’¥UY¢#eh‚`⎉w î×ß '‚ h6Ç|÷ê�¼?MÓ‰r³9gª—jݨ’¼,>(�@ü#*I^€÷0t”ˆf6U]Ó<WU ¥ ˆˆS„—¦£R¯»ì6Q~sû ¡ªhÀ²�Ty)ñaŇÕu»½÷ùÊ�ü¶ÿE:iÎyÚ¶M¯.H(ÏUº2t7ÓÃ?ªÒ1Ð ·W–רI¹³@ë"ª†„˜²‚e‰f¨ÖÕuõÚm ð½™Ç‡mWª6#›SÒ^�{*gi5Ô(�KIYNÉC²¤¦áFJmÓZ©³H(? ¡+[½±ÕתnjN‡Cœ¯Àûoü«æ²9u·kW³YH!€sæ|HNK4Ašj¥×F65gˆŸ„Pµýhþ­Þh6q7ˆû<_ �S¹®ª¦t•’ÅJħVL‹B�(Íõl@1p¹Ê‘€^7[ízíFÛÕênʧýÍæþî/ðžÏ|/¨+KÉÂ5TX ‰³¦dR”B]–w�åf+¤évwœªšª2l ë$…²Ù±gý8ümþùudÀP€ ²¨)-ÓD²L'¢×¦WiU\å‡XÎçÒmùF÷Æ&ÔIMj‰ˆÓ‘¥f”Ͱ+¥&oê[wçuå³ßŽnž©!,§˜–Iè­ººš/@L”®Û04e µd<LwçúÁÌà ݰ¹6+Ó‘Ãî×îþòÙfÀ{€XJG"Nz“ª¢fiéˆE)U% H ”Rks­¤AG\—BCÇCÕ”r†‡é‡×v2®”ã<ÔŒJå” ª y.j•2´te(b:²qJá¦_;¬j]#îa9»o?ß³¡7¿s÷W¥)<æÄ (¥HCIX©à2?›ÊFº 5õν¾÷ðw÷ùÎ1’¥4·ÚŒ¾©QV›VÝ¥î˜ö>>à ¸V¿K@PT@K) ³$”)hH¨@ê醚â”vw®»épf‚¦T clºN5DœÖ<±ÜªÏ ÀË,xç?¼õ{Õ 8»º e¢�,Q€R "9•ˆ¥„6© ’ù”]6�­ X0M]}–=àznóü¢U)Mk¬BÊs-t¥” Nq" R ”¦+Á²D@e°ÊJyä{ò™¸Ì/åx±Ü/”µ(e¥„õýýR€ˆé¬%™(ݰ頴ë.A+TD¬P«d–™(ãsðT÷óez#)eH†©$ÓétŠX¢! -"„¬i9Å ¤b^@³–ÄOªÒ ¥@)ø\�<Eþi€‡¿ ˆ#õR°�@ ‘uZ‰˜ÔR )…%‹sNgNÓ VJÕʰƒT$S,õ�x»oÝlòtâÒÃaÞúƒª0cæî¯þ�J÷ÿ_SJU±ˆÓ™)9)JSÕ)š+§™ë‰³€wþäwùw[툌‡u.ɉ‰hÅʧ àŠz(e:•¦¦¥Ût<�% ó!¦¿û³Òí~k«¯ Š•H"¹Ìï7£ +ËœÓ2±4®íöí%8(2N++§^Àwùó'y4ñ2ß³š¿i 4øÑÔ·þ�27RAÌ,oú”*ÐueØ”B$§9N'Øúð·ù'ø ï#æyH+qÏnŸ`xp™¯¿¬ù(@� WôXQv½6ÕJ*ÃÌíÙ°©"‰%b!Zç>€÷°ÖéœÔZ¿9ÓÔ,e¦´Ê§�à©Î¿CG”P">^Ïgûf(@ ÓW¦%à>§“μë›[uÒÐE7ŸD\¥¦ÝP Ð5�Å?aºhò‡ÒËJ®±s™¦â…ùc/÷ûCÇw¹�6.hý à2¿Þ¹‹¥º¡éWlv£ D¬/?xë b®CR*”�˜×dtšN§ñ¹óŒÓ!:¸ûݿýR<}瘇B�¥ëµ½[‰™‰SÄÿ¹ºˆät$JTšŽR ’)3¦˜& pE¿Í}ÞÅ©ý„ù”_,€ëìæTšÍÍ0A¹¶�®mÞRTD�>"úÿÝ0œN+,Ma¨ëˆXX(/ÅîÓaò/ÀýïÜË쮉JÕÞ•R­d�^Œ >l<Øë-bZ¦hNQ�–(ÍŽwþ“«þÀÃwðÉp𦅦”ÒŒê  ½:˜kZ9%§•‰…†íŠþŸŠø]¾©oìŽz‡˜U@®ÁÓ@]`NUlU(聯=Çõèv,åiC"O j\ ž¶ f+S,¥ù°Ê[Ô\çw¼5²«ÛCŸE ª‹M/*»á&áô°À¡×øéú43`è"J)PªšqT€¬Ó™‡câA©Ôþ+êõê`³ÙUŸÌ®)*Ô&­©Uº]Ën‰x1ûlÏ|õ‹�¥kè6£ºÒUk +ÎLsžOæ£kà;ö;ÿþ Àïü‡Óânæ¦×Tdv…RT ­u=o@áá�yy¼Ð5}´ñ¿P�MC7ŒÚôêZ•¬e9%Óõ¡ põ ­nn}óÝÃ ó«ŸÆÜ0t»‘›²ƒ@¥–2@!^èEô_=ç#Œÿ…(0 ›­ï€å¼Œ_™"Xh®ÉHï�ø·ý€éa­R½i¹éºÊfðÒàžn!!‚øöý ÷3þ\‚èºj²–$V¦éDPúe~Õxi¾ˆ(Tk´®VS)MHx®J—€X(%^êO÷ÿïÆb� "+ªJS’&‚  ª^D>”¢JÁ*Lg‚Si t•¥”—"^Êû«ç¼0ÿ“0E9T:<­”3LK,‚b¿Épu q>íb*M©*jh “ò±zi>Ÿ,€X–˜–6Ñ£ª†m YIòÀ²©ØlX€� –˜Îº›9AUÓë¦*š. «Âûÿéf@Ä)À¤÷’¢+ÚP™†X)­  U^¼pÄt朖‰ K‘Ö,ÍÊGê+øl�â4I϶(†ªåZ!«V @DLÖ²L3‘4MS€RRKœ¬Òª‘7ÿ³P P`e"’¨zjÊ¥»N½ AÄZ‡é”RʦÛ4¡Me!´ü æ� y26.óMÍM¯¦ª»¾ßù2w ÁZfNg„f×m6ßu:×]LËg¡_ù'ª�,P(ÝhC¿Ö�U¼lÀ¤‘BWºa3\ÿk3ìJg)⃊�€Ï.N1tPªhºRzmZ ¥XU©UzÝT:(ŠŠT€4• ¥¥¡^Â×ÁÄiiŸ3€˜b b]+ÝR†ñüÝ- ,ÄKQ­Û²I!@«jiZ6R^¨h¡@[!Ÿ€¯îþò~÷­ €Ò\æ?û¾ùéCV)µn†¢¦U‡ŒSœj5Íôÿ}/ ,…aÏ4à»XhVB=†|°G$§S´U*¥‡JWˆ›U'"5ÑIi5H½�ùÀqhb×Õ¾ûÏûá«ÏÀ•| n5$“‰,4ÕJ) �‰µ¦é4C¿ê;@¡)K Uè(•âùºY<¨ƒ-êä»û÷Ÿ÷tA�b™‡»cÞóaå”P×±D$Óõ¸Òt8ÅKÁ’6¥W_Dœî?8ën§ïæßžž|~MøÃÛqý¦4� T¨ÕBqZ¦8Ĥa T¨ˆDS¹8=Üþn«¸?Îgææ�žò)º¡»Þ»U Ò”µºJS–¨“@¨)ª T:à”šT”¥”BBp^¹g�^U”Ò ½o¶±y¦C 2 Ð¤Š‚%NÐé@ª©U/ߎęh¯@)ÃfØ®o9w!€`v jWÅ,X´†)«Z†ŠëlÀÓç\ñî*?¯ÀU†Þúƒ¦ë½ÓŠ@<S ”BQ]o7jJ…DJ*Os’šbJ8çŽÂ44ÍÍÝ ¯3oo»$Žã ¥ŠÑ›j]k…0*(ªIEqýÄ*U]…`¥Ì,‡CLÜ•»®kØ:›ïžšï«peoúGF6-Ñ� K A@¥.¥tM)¥Š„ˆÓt:ÜÝÃn³÷þbì|�ž ÌouÃD)K (X�A…� q"˜˜¦SÄwóùØùJ¼Koµi˜ç€¶�ÐXX°�‘p&*‹šF§ÚfTœGïæŸá“4¾ú9Þ †oúo$U(@ÊK•J‘2ªœõ~,5¸"þ¥ñ_�|ø3ô ­ P~Ra¡inÏkü ã¿�ø¿¨€ù¢/ú_K ¶†óc>����IEND®B`‚IMAGE 3466 ./arch/monster/giant/Big_Wiz/big_wiz.x15 ‰PNG  ��� IHDR���`���`���ÕF‡ ��»PLTE��������������1��9��)�����!�)�9�B�J�R�Z����9�B�J�R�c9���)�B�J�R�Z�c�sBZ!�!�B!�R!�Z!�c!9!J!Z)�R)�Z)�c)�s)Z)k1��1�R1�c1�s1�{1�Œ1�œ191R1„9�c9�k9�s9�{9�Œ9c9k9cB�sB�{B�„B�ŒB�œBkBsB{BRBkB„J�”J�œJ�­J„JŒJ”J„JkJŒR��R�œR�½RœR”R{R„R”ZœZ­Z½Z”ZœZ!”c�½c�Îc­cµc½c¥c!¥k�Þk­kµk!¥k!­k!µk)œk)¥k)­k1¥kB„s�Îs�Ös�Þs�çs�ïs�÷sÆsÎsÖsÆsµs½sÆs!¥s!­s!µs!½s!Æs)­s)µs)½s1­{�ï{�ÿ{ç{Î{Ö{Þ{ç{Æ{Î{Ö{!½{!Æ{!Î{)µ{)½{)Æ{)΄��„�ï„�÷„�ÿ„ç„ï„÷„ÿ„Þ„Ö„Þ„ç„!΄!Ö„!Þ„)Æ„)΄)ÖŒ��Œ�ÿŒ÷ŒÿŒïŒ÷ŒÿŒçŒ!ÞŒ!çŒ!ïŒ)ÖŒ)ÞŒ)çŒ1ÖŒ1ÞŒR¥”�ÿ”ÿ”÷”ÿ”÷”ÿœ��œ�ÿœ!÷¥ÿ¥)ÿ¥RÖ­!ÿ­)ÿ­cε9ÿµBÿµJ÷µJÿµZÞ½9ÿ½JÿÆ9ÿÆJÿÆRÿÎBÿÎkÿÖZÿÖsÿÞ��çRÿçZÿçcÿïcÿ÷��>���tRNS�@æØf���bKGDÿ-Þ�� pIDAThÞµ™Ko×ÇÿgÞ3$‡3çl+~Å’™8-Ü�©R´€P ´è*ò%ºi>E]>@³n6A7F“M #h‚"/ !9Ž¤ØŠH‡3äˆóàsº b7±bK¤Â AÎÌùÍÿœ{Ï9÷^ ?óGZâY�þLhÕÿýÄ2�0!xÁz—6�€t¿ÚjóÏ Öê½tÿÊc ÒröfêO/â1i9ûOïfüî1„¥\äÒëNØ} AZBÀùÝó+/6ÐýÐýºÑ>sÔZßÓ¨ÖШb/üÉ@K‹ÛGC¬9©Štp0>ó Sk}V¨«u–äÍ ?c�µÎo«×ž¾–g�ìªÑÌ; >;�µV·âó ÒÌ….*¿?Š®¡}v ¨µ¾ƒŠB|˜%jRúb×ëýæ'Fêb.Ú‚¥Õ =+µA’ ÓŸþƒîÊñi^b›— ¥Înî3º´Ùßëža“رÍRÝ©T\A’DñmàØ¹°@Óì²Y¯UfbSÈ03DQ(6=?=+ë»Ôl4ªý>KSAŸV[¹Jâ…;Õý³І Wž“¿œ¸±-Kô^^‡[ÁÅ€6š°ªÏ=½7ù´ÃЬ0D#¸„»â™�h£–Ë_\—np8Ì*Ÿè=÷¿`7Y; �mðý¦v¹myã<ͳ@3ìã~"Ø|ó€6j÷I—¬»ÝžçeÕq%4£Ÿ€ôÚÄ€6®šúJÕßût¬»æ¶"+kÛw}ù¤ ÚÐöê— ´¿í|§V×ÞÈÞX{õù×CþbélJìšÅÕuÛÿâÞ^6rkm{íÕç@—­h„Öõ]²¨jÍ›:Æö{¸�ày¼·½|ãEÀF“êŠZrp*Ioþ ÛØ~ Û}ñR€g�45yµAŒíõŒJ%} €~"ö–<íÓùŽ]l¬cà”Hî�s‰Ë( DÐ vÍ�@T#æöÔa}™P¥ÚS×D  �Ñð¨?ºE¨¬¶—Š©5¯­VûìÂE} œ;ˆ¼‡W "g©Qô’‘g5¥J5·;I9íÕeá*”ƒ#çXR!†º€ZF3Otø¶ƒ^:ŒŒ2×![cN°*ç´n7)/¡`UÎ5`øÌÉ8dUÅiû*æéÜ% qoa�ýúNC¿¶æ»yÝ0 )È1ëоœxÀÊ¥óE绋Éz{áÎn¥¨™…b'Œ‡Q š @@3›UüT²u„y³SÐ_» fS3VȽ058Ný“T…=Yj4AÊS?×òš£Þ¸µh F–>ÔÉî ‡3Ý4ë�=ª\ak G÷F^>)V®{w.-ÜÙÑüËxëô¬3pÑA½ü”‰«aÔ!ãÍgl/ÞREi° ]ÁìŠmZ@pw8‰rÃV”¨w�¼ôîÝÑ~ÄP DãàÂT*¥"òðÎ7Y”¦¶ PõÛ–Vû¦` ø$kt”}¦`¦pg·7bS-Ý ôBVÌE]¤¨à¸v/›;ÈÂÌï U„h¢*„©B‹M4j­·u�f!Û7Ýùû“Ý\ÀJ„Fj*FnÊzÄtz�µÔ]SãrGeÈð~Áa=.F%W/e•ÞdÔŠöm!`Jóp‹�܃,”ì¾’Í Í«Ó".¢–Ú@ÏÜÙô�h·7IF©b¨˜ û¨(ÕEsVN ´q52�yv/ébÆ�TôÂaÃ¥q/ðÙ_bä ¢´t:�µ ª©~vvæÓa �¥¦ib’Ä ëmþÇk ÊÒSºˆZˆöí¦l¢‡[�ð21Í�;$³Øàû~—Þa û|½I|š ЂÙ?šÈÅ`ž(oááÔ`ͦÚKB¶¶�B…&"JBó„�B �P…|´‰‡k£Š´j%Ôå ?ÅV›Í´'’¦“* ±iÎïÖb vø0ÓO&‰[tÊ ¨wÊ<?']ûc�eôO –ÙŽ5§P²ÊàðÇëWÄw§Ó2ú&ñ} �mÂ>€_@­õ]5FdM#þQC¨#d¿¤Ï$yÚ;Ì_íëqå�˜Sž¨ q ž¯F–U++“t ÔðÀC/ÃêpŒ¡ ñƒÔÓô>9yûN­¯*f91uÓRêóæöðÁÅ �£j©zùÒQGýíiv~û«Z4[ãû‰?þOÀÍò]"iâ„å‹x‡ñ…xrM¦V …P•UÇ£ág›ß xùÂÍr}K„bQF/å¶ð#…'R`GºBFQA8ìL¨½ �øs7ËõìÚN  WAlm5ðh ºmš2&‰0ÊGï÷ûÉÀ÷,G ÅŠQ*oa2Ú?Öü1ÃÔ¨×lÊ’Ñ8€ª—q À_‡¡ ¦d–ÊFyþÌ\À‘BœxkY¾ ýQœªºùÏWÞ^ß×d½vŶ€'<ËSÿ¡¹‹xÂ1È#.Rua: ˜tÓÆÛÀë=©(8eqž“LŸ (Éüö7žtÊò€ã‰”â„*ð–ËuÉÒîwTELØ0¯ �è•·qÚ#–Cc¨¡¬Òp˜˜À[�`;¾×ë I¢sÔ£?xê‰ö¤c_±ÍRIC’†…¿1 °¢kÅ?¬O:„zTAÄUíKjÖ¯Ãu»c?a9 ­à‡k¥'Ú?&Ì®�@ÕÈÐÐË’,ÌtHÍJ§´ÿ(À�aÄ‘ÃÖd`jùY˜{™Q‘D,J§´LE3TıV6æK Š$ÿ.5*Í5õëÁl:=í&âqE_KR féYb ¨Ã‰ ËkWÃk»Ùû“E“LšZãèzí àº-B0Èš*Ä颀q¬¦õ‚!—êèùø\E…­Lì<'�‚…Ä»¸€Û­Ô� —ží3�ffá" ƒx§äLl�A#÷¡UÏ-ƒ› BRUwþ«—¥|±äX#yÇãi�|ßsÅæúßy!�·«n<Aª*u ÌažÜ]¹‚ò˜Ù› ’ x}¤êíEcÀíÖ]5M“š Øð§Œ‡Šo`åýÝAU½Ýæ%†iêUâ$Õ@( ñtd»[¶@³\=4€pàe÷Nlÿ˜TÑnyLVA%Ì·ÎêYY›=±j–<øñ’-Ñ̦%Ó¼˜®²IòkÓD ²)[@–œÉ5ÛYEHsÛ½Ü# vêˆR8�9¥Ïy �·7µš8å)�Ø×U¡Ÿ{ ;:%š¥½%]ÔÝÈ;Õ´«ùdäJ.vëT-î~7FA/Û_<ÄǸ_îÂ.ÈÒLF’ƒÐ(Û¦ô݃a,4n|pûÇ*à6ÌCcìÛA�ý"’€¡Ž}­zûTö_£q»uUwv@�ÎÚäs¥•hp¼t=�¸ÝnÝy!ff1mu‚Ñ>¥ùŸ\Æ2Úho¢DÑ÷‹³ñêí6Nmþ1 qÞô/œ`Qƒ?þüﺼQ»����IEND®B`‚IMAGE 3677 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ���sRGB�®Îé��»PLTEÎXy��������"�����2�1�*:���"R�Q�"*�!B :�!R R�*#�):�*B�)R'R�*d„�‚�12�1:Œ�Š�0R�1J�2B1:0J�1Z�0l�1d�1t0l1dœ�š�9:�9B�7Z�9J�8d�:R�7|9B�9t8t9l�@J9l:d8l�BR�BZ�Bd�@|�Bt�A„?„AZA|�IR@|�Kd�I|�JtHZ�HŒ�I”Þ�Û�Iœ�PZGœIŒI„H”�RdH„PZ�RŒQl�QœP”ø�õQœR„Q”�ZtR®�YŒ�Xœ�WÎ�Y¾!S¥Z®X”YŒXÆZ¶YœX¦W¶X®!Z•!Y¥�b®!Y­�`Ö)Zb¾aÎ`ÎaÆ�jœaÿb¶!_½B[„!`µb¾ `ÿ!b¥)`¥bÆi„�k¾!c­�hÞ)a­)aµj¾�kÎgèiÖgÿgÞhÖ�kðhÖiÎjÆ!jµ!j½)h½)j­1h­�oø)hÇ!kÇ1j¥�qð�sÞ)kµ!kÏ�sèpðqèqÞoïsÿ qÿqÖqÞ s÷pçr÷!sÇ)r½!r×!sÏ"rÞ!oÿyÿRj¦)sÇ wÿ)sÏ�|ð y÷*sÖx÷{èw÷zç�€øÿSgÿ{ÿ"zÞ"zæ9qÿ){Ï*{Ö*{Þ"|ö ƒÿ2{Öÿ)zÿ€ÿCtÿ!‚ï9zÿ)ÿ)‚ç\sþ2ƒÞdrþ9ÿRÖdyþK‚ÿZƒÞ\‚þd…ÎCŠÿK‹ÿKŒ÷SŒÿK“ÿlœþt›þ! jR���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚõÄ„�� IDAThÞÍšû_SçÀ}½a':»¢â£î„šsÀ „˜¸Är² eËœŒ24=rɈå!)rè Ár@ÈÂMNlLCªB\¥ÊBÚÒÒÚ¹®¶k»ûÖ]:÷gì9hÕŸ ŸOŸÏ~"Ï7Ïå}.ïËš5_cA¢¬2“­.a)É:´ª€»w`hõë°RV�úµêã?ÉQ­AÔÏ;*Η˜Ì«C@UX_×9Ücu¬ a‡ô¥u¡ææP§#G« _«<á4·µ5§³ânèת*¬ýžæfÏëçšo�è×Pæú_ô‡<à¢Ò,Î�𦲈›œ}�cŽ5×’ *ÏR ·g|¡¶;}ÐØQ×<ÿ¤È1â$7ÿÆ”çΧ_üçƒÎGa ðBcão\÷y>úâþýÿ~è)ÍaYr‚²ÕrƒWŸýûþýÏß¿ÓY‘G@Æál•Ùþ¼rü­™Ïþò÷ÏÿøîïßvÄ/“À‚,åIžóF&''o~üÙ÷ßýóßþU­VÄ  U(IVð ä^í Lµ}úùÿþñó´Cq }qYÖryöرâGGÏÝ¿þóWÅ�Òk‹O–]x3ìzñ™#GîUœ>]~æ…Ž%ïÉŒ �é5F3ë¿ýæÐ™>ùÄã[¶nßàÀ‘#Ûvnß�Òàÿ[‘ˆ`Ûµó±µA6oY»ñ[»ã£_£Ì7µxo]¶íÚ¶aCÂúuhݺõ ëÚ¸=YŠôyFÒTæ º^üþ¶ ‰II‰ ë“×o||G\ôãê“ìY¿ßþì3ÛÛtêÇû“¾s*)aÓîƒñÐOäœ("Џ~öíÍk’Nún’¨_lýFÆÄ<\OVy?”�×%$îÕ‰€Ù—;�¦\Èÿ¢‚ÂîÊ݈K÷äFB¢‰u›¶~3&ýPŸ1-e¶sÇ ‘°K{pBBÂúõeÈ¢Í;ÖÆ¤_¾ÿp6¸‡»rÅ €ß¸´ÛÖ¢‡dsL9„°Ôý9¤…@Xƒ‹´;ôn\< �‹eål Th Ûúˆ{t±ˆ…úÌqÜÐà÷»ò>ö€úMOlWÄÐi¤…÷†ÃÏ2fvHàmÚƒ[µ¯Ý²u‡\NÄ�€¢Ölaø ÷Jxˆ¡ŒÃs<“·DزSg$²Sbè f–çù.oØËÓ\C³\Øo_²a«®–%3cXBñ´Þ"@ö€ð …Ë4+D~±SR¶ì-æR]õd‡°§”–ð›·Ç›ZÀA Ø#D>Œ¬OÙ±s¯®˜i©v8jtÑ: Ù-ܸ^YV¤‰—aÅt½ÈµTWXlyÇ´Æ"‡µ²¡%Z'!LÓÜüÌ´¯² íÆÌC®r]í—…Æëý‘W]źC*G/ÐAFI@˜r°’D²†ñBµOÃѱ±±™IÈØCªj÷tÀq<j@¦žæ&ß›mp¨¸�pöŽÎÍÍö9YÊh¤[Æg+ÏÇ¢Š.yí¬EEÈŒ ç ^ÝÓ÷FœU´ÁHAÐýþ²ÜœèÂR �é Èp£Yô¹C¡ÑÎl„¬¥ípÆ9‹Zy4Z�¡2/Z€K€‹A¡éêÕ«}þ®Zm²"æ#wïú«r£@@8�^T“¸Lx½‚ÓjµÖ ÁZŠ pyïf¯µB( �䨩)³˜Eý=&Ò” C”Ë L¦*.h§p"r½vsn¢®4? �Âär¤¡j¹ñ{Ó> -àjÌ•‘fy8Ì2�øoÎÁ2�¾*�Œg˜Koýnêu@1dzfÈMH–V+8e|òË7*KWì"HPœÀä2ÒU=¯¿óÎp �Jµ¤ÞÌ0•2;ñ‘?¼×g%Wdè“ A(ÒÐU¤$E"ÀlL3˜y°Ã€‹K âÃ0 ¯8‹@?øŸפTùIR†Xîl•ÉTØ"p¬AkA%rÕ€Û,'rV�@bŸ'Àÿ€cäRóMÖCkö7Y­Ï †9³ ׊ ZKUK‹£ü´~¹�Q;!.Ã8ÂqòK�©'ï¼;pGì`€XÞ^¬ªè®ï(?¿L�Œ8*“ÉBòáKýˆÌ/¡¹ÑPhbÜϨ”„¨,Tææ/Zž~"ãðy&‘f4jðG�å%EŒ³!¸ÞØBÙ É�\'Õ¢, �µA‘zø@ªBM›ÍTú#€’ÒPTXm­oaÉ8""À Ü¿ôËàš˜</‚ƒJkd0|¥Ÿ,=Ÿ‹ãi¤©ÀB«2¿· ÷ å`‹ÇÀó”Mž[�|e@ww·ƒ”xš D­Thh%€Ôé Yº8:ØY³‚ü€#S ÝEé¸Êd"ÕøQ­VŠñ.Ë�ùáTLf´1,ËP™áKß왺yµž¡¨*«µ4×j±ÀÊ €ò¶' /ÎXŠÅ’»ºEýý -®šFwÀZB,è_ƒVd€ÈÆÀÿvpš"%E†¾_.YÚ=â› …܃þÉ™±PO‰ra-FøV ^šQ2qÌVfJC(’eFé£,mrt ÿô‡&fÇgæš%ÀÃ,»Ä‰›�z#N( •¤Ïs.¦ª¾Áòx€pÍ=1æñY¿ð+{€Þ´äÜH‹æx»}èÒȵЂˆ ~ˆÁ"`…¯,� H�`4#†µ&x1<ØP× 5N¤x�н,\Y—!rÔ4Ã0´Q¦ 4f°y8a€®®otO,�–,Xñ+‘˜EŠ4XˆyÆHˆí:<'Î5´Je0Ÿ�€•?B K®H‡fq—‘6?Ø<¤®Øîw? ˆb‚ƒFÀHWÚÆ�À»›Z2e;|Í %—C~j 4MC9â¹ÖVÎeËÓ¨LÝÖj×¹.ïC1ˆ �‰­ iÕ¼“§“‘Ýý½Nž»àŽ@F( Eah#ìåX W›zúÇfgã@- [%ŽŠ7‹œz½5…¦‚îJ÷½™Ù¾·ø"Ñ<e-ÏŒ ö eƒðBòp@hêé©lhw»}>8ÈÍm!kþSÉÑ.Lr�0¼t1!®{]Ü…‘~Ÿ»Q.ôú¤bÑÜì³–çh£Hý‚ð®ZÆy=ä™àÚ¹Æ~©ùuÕ¦âè÷n, T´¸ ƒ]v[UXòŒ?®Ý)U¼@gO™+†qè…ÕØ FÙtk’V�¸sçx¨©Ó¡ÎŽ :–qn„ÉBºò·ÖÀh¤rt†¦g/ñííü¥ÙéÐp…^ãZVj&<÷Úä¦*ƒFUØà¾æî»Äµ··Â.3\ž}0F@F–žvÙíÜà¬ûús…4Í8ûzݽ}‚ÁðÛmžáòì‰Õ‚²&¼Ì BÞ_mb].þRŸ»ÿZ¯ÿ–ÿ“9Ïðùã)±]#ÃÞjá¹çyrߺ^n硊†ÜM55M@ei¬Ô+¦ kZ'g¯]_|éå®÷<¡€ÕD’ŽŽêª˜ïÙFéa— ߟ%ì}é%ïü\lª'2Ÿ>]GE±5çÞºn/Ò‚]]ÂÀÜØT—gdÅç)aéPOYˆ¯Ë%þf ϱÅÇvíÓ««¸§ÑEвÙh~ ÝÕf3ÏG]˜p\c\U. ¾÷¿™ GdÍ×Rþ h{^…2:Ù����IEND®B`‚IMAGE 3658 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x12 ‰PNG  ��� IHDR���`���`���ÕF‡ ���sRGB�®Îé��µPLTE���������������"��*:�9��J�I�":2�"*�!:�!B R�*#t�s�):�*B|�{�)R�12�1:�0R�1J�2B1:�1Z�0l�1d1Z�1t0l0d�9:0l�9B�7Z�9J�:R�7|9B�9t8t9l�@J9|¶�´�BR�BZ�BdAB�@|�Bt�A„Æ�Ä?„A|�BŒ@Œ@|�IRÎ�ÌAt�Kd�I|�Jt!BcHZ�HŒ�I”Þ�Û�Iœ�PZIŒGŒ�J®H”è�åH„PZ�Q„�RŒQlPŒQœQ”P¦�ZtRœR¶Q¦!Q�Z¦�Z®�WÎ�Y¾!S¥XÆZ¦X¦W¶X®!X�b¦!Z•�b®!Y­�b¾)Zb„b¾aÎaÆ�jœaÿ!_½B[„!`µb¾ `ÿ)`¥!c­�hÞ)a­�hè)aµ�kÎgÿi®gÞhÖ�p¾�kðiÎjÆ!jµ!j½)h½)j­1h­�oø)hÇ!kÇ1j¥�qð�sÞ)kµ!kÏpðrÞqèoïsÿ!qµqè qÿqÖqÞ s÷pç!sÇ)r½!r×!sÏ"rÞ!oÿyÿRj¦)sÇ wÿ�{ø)sÏ�|ð y÷"rö*sÖx÷yï{èw÷yïzçÿSgÿ{ÿ"zÞ"zæ9qÿ){Ï*{Ö)zç*{Þ ƒÿ2{Öÿ)zÿ€ÿ÷Ctÿ!‚ïŠÿ9zÿ)ÿ\sþ2ƒÞdrþ9ÿRÖdyþK‚ÿZƒÞ\‚þd…ÎCŠÿK‹ÿKŒ÷SŒÿK“ÿlœþt›þ1 2���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ'Ú«ø…�� IDAThÞÍšûSåÀy)-r±®V¬·Nê9§ÒKLºL³ä¶™AÜŽŒ“,Rm!¥i3rH-ö†§íIC;2JN4ÄC‰iR¤J—uÂ,:ܼ0Ô¹«»8öwì9 d¿´IúùøüŸNŸïy®ï󜷫V}‹‰²ÂŒ\YÂ$ÕhEe–ahõWc[¶HVŒ�úeší?QËWˆ êç­®Ú´2„™wöºÝ§Ælm+A@XƒÖêŽ FÜ­€þ'ñ'y‡‡'í­Ë» “É4´mr|ppüM×öò|fPê-½§Ã‘qp‘Kïb�ÿ×’ÍÜìE0íéiQ`ym Ò:u³ðú…@døü'öuæ7SÁÿ)F2Ü¥ðÜøùÏ¿þ÷‡§Ç:wæ‘€0 ÃIeGwÌÿäëk×þóé䘋Êau5RRßáä&¦<3_üëÚµ¯>8Î# fk½ÜÄwgãSW¾øóß¾úã{x·Så‹�Ô‘ Ïù“³³³g?ýÕùÞûÓ_ÿÙ®Àóá8Å ~AàBÜ«^ÏÜðç_ý÷ï?«$ò@Zs%µçHÂç|Ö`0˜éC¿»ü—üÒL’ù ­ÌܼgâíÄÏŸ{ú”Và{÷î~öùç ’‡jó@Ze£‰ ¾þ¶ïÙ=|÷]6nÚ¼eË#”–nÚœ�Ò’jjϹdRè¸ïž;V‚¬_ ²ºð;æG¿’ÜA;üç^i»¯tݺ¢5¨ `MQB…›ò‘¥Hkh¤hãPÈù\è/)).ZSTT\¼® ð®²¼è'Íì`îéMw¬+yüû%Å€yà©’¢µ÷æE?©~b§ü2É>sÿúÕEÅÛ¶=PR\òݧR€ y „–²û?ú2é|æþ‚5ëJ¶=€Ÿ>õ@qÑÚwæ<çBþï¢íîäå$Ûðp!*(ZW î/#Q°öÞ;snÐ2½‰çŽ’ ^V¶!HŸ¢5kà²h}Ùêœ^_ºyk=¸‡;yÒ€ßò²ÒÕè²>—ƒ÷Ë7ר©Ö=�H pQõ=i½…ÀÝ9Ê1¬NMÙ>Îr+à†e9 ñ�$™êÏÇù|Ô¡ôŽ[Ô¯½{ž  ¼ZÖHµòþDBð±&ëøYé†ëÚWoØXV&%³@�dm–ùO&|&F¥³ø8ÞiÈ6”VëÉzI€òj•‰uðü¨?áç%¡dX.!z)MØXÝÁRµ’ì/„?¦µ= Ý&=!„äï’¼^"ÆaC…™êlQt lm@Ø£êÖÄۯǽýíF¥TêÚ�ðQR`uVVVQmfÛVGu–‰Š^OZ`H\ðt›•2}›‰…”k·­­ŒÁ S5wÚºúz²¼ IàÃ-̺¬•ª´ Ñ‘¯ç¸ÇûªÓ\MÊ;Ýk{ö�B¯ÌOÚ(’T*MçþT5ÄÎLOO_™õ™«¹qj¾k`;–UV«µp³ï_ì3Ê gS€¡‰cgÏĆXFߨÜ[ÔP ([@"ùÚ‹œ$ a9èa":3ÿñ…ؽY§ÒCЃœÅ…7TWgÀ�H—�¡jK¼áHäw0•µPã—ƒv—«¡!+�"å ˆF†aYÿÑÐïv»½ÁÑ"+™îäå³Çl.±# Â!7q/C šÀ�Ft‘ß/ Ùl¶^!äÔ“b|òÂâŒÛíre�!…ÞÄ]™?>Fg�pèìim¢í\ˆg²ÊÌ/,F®†»\Úe&EJóA.þñ| pøýoÒÉå ËC1À™¼zåêû1HãåàýËQ#c?ñëßϽ €�@u³m:½˜<l³Ç Ÿ¼ú!Ì’v ¾<�œ”ì»:ÇÞüì³S=�ôà"Z¶žiƒƒÁ"Çëë" 'ÔžE£&–“¨b ã$ �;•9AT2<ÏñU¥ÎÄ;X‹ŽH-5ˆ Zì¯X]»÷j—�ýÒ)ŽE¥ú>E) cñ…Øé¦V‡ÀÙ›DJØ`–Ó=½‡öîX"�ôÁû—_dŽ^%A1­>°ßfÛ?‘à .dØu€ÔìH ZšóEÁÅe˜ ¨[»iGb6êñLÅ“¼Nq})5HAµ(K@÷M$"šnèÔ€…‹‰DfâA“'ÓÚà!üÁ™§– Ÿ¬ÙºEZKVªôÊo�TD 5°ËÔÞx0d=~@Ý‹– @˜ /ߺ¥W4›LúÛšF]³Õhëm·SêéM�Z:�\ƒcRŒh†BePSÓMý½--.’•j¢-ÍòÚïe�·<´ê0ÑùÐùyNüøÆŸÒ½ VŠ ‰J9ˆ‚ÄeÀr (ßZŽUJíl› Ý|7š¦OÏõõ삲‰¦D•,£-Ë�éV˜DUÐöY1Π¢éÞÓsg§z-fÆn³Y5„L†eB@-9ƒRíí! ¡c»¡axæÝTšû¬¢þ™pŸÏéð†==-dFÿª,±Öc¢ÿ},S‰KPúÝ4VM ðÖ\$g§#c-äµñ˸G�@-¡ƒF þ!q<ýúM´µçÔo@d&¿°8˜ l®)Pj`Y¦‘ ¡PEãy´½÷ô‘ñq „ßY˜ØnR-£G“ZÚÑ '.Á ñÕžëæG|'¦ÞФ%� ã=·�–uÍ"ZÐ$V˜’”H� ð¬5¡£‰‰>·Ûã ‹”ño�–y‹1P+1*BÀ0B�°y µwv{½Ñ™ÿ,÷®Çá¼ÚÇ›TâD²NxŽKœôïcärå@,úÖí€e)uR˜¥àäMï2©ÍO€3 (ñðm€åÏAåad#Tr›>5C�€çm:8”u‡C±hÎ�©Î1¥Ža ûxîÈŽí0(å´ÑÖÎ NåHwÓF&½j~Ω¯ )£ûøÔÏMä €“ª6šÅû9VO(è±ãÓ 1aÈ›s êa”€všÓE@ÈïwXhÚØ^Xˆz½Sâ…Áà\ÏîÚlây Ô§ü#Ö˜úÇÆºú¼ñx4@!Gzv<*Ér©ÄÀ%èO}˜×½Qð{8àñ ÂÄT Õ,=»ÕOf �ÿrpPZxçAg;v>Æpâ^Í(0Ùe¤ÍY/öVE’rF܆C¡Q¾Ã ß鎌OÇ» {Ѥ{ÌèÌáFEaðÒ¥v™¬ÁD“í �p‡ó'¼3ówÍärc#Î0Y¤>y$ŽðL•¸gGæ£'ºGFøÑùÈ)—¶:§¤0¹”×VŠËÒk³±~»J)ß¹?z&ê=ÁŒ9»9ÕR_–# ¦NË8axíbtj¿aìCÞhtÊ; %Þ?5ðÃ\ujŠ…^à&¢ÀT?ët‚ó£áð±à¹àÕE�l—äöW‹ƒëN"á˜0úÒH÷dh¸ßáè÷LvYs½ FXC·Zø#³Ã3ï\J}ñ¥ÑØÂxdÒFS”µÇhÏù;8ÂôZ-µ'qùR<~éå„ÿÅý—‡ÅkãÚÇö¶äãRêY­±œ;™8"~H Ž ñÅé9·•ÖÔåç*aUrÌGN§3õËö¸÷³OVTäéÖUÜÓ˜]:ÆÌ¤¤mg§±ÝdÂòy© œóÊÆ´È5ø>ßÿf‚n“UßJùi+Y€¼ZOý����IEND®B`‚IMAGE 3677 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x13 ‰PNG  ��� IHDR���`���`���ÕF‡ ���sRGB�®Îé��»PLTEðò��������"�����2�1�*:���"R�Q�"*�!B :�!R R�*#�):�*B�)R'R�*d„�‚�12�1:Œ�Š�0R�1J�2B1:0J�1Z�0l�1d�1t0l1dœ�š�9:�9B�7Z�9J�8d�:R�7|9B�9t8t9l�@J9l:d8l�BR�BZ�Bd�@|�Bt�A„?„AZA|�IR@|�Kd�I|�JtHZ�HŒ�I”Þ�Û�Iœ�PZGœIŒI„H”�RdH„PZ�RŒQl�QœP”ø�õQœR„Q”�ZtR®�YŒ�Xœ�WÎ�Y¾!S¥Z®X”YŒXÆZ¶YœX¦W¶X®!Z•!Y¥�b®!Y­�`Ö)Zb¾aÎ`ÎaÆ�jœaÿb¶!_½B[„!`µb¾ `ÿ!b¥)`¥bÆi„�k¾!c­�hÞ)a­)aµj¾�kÎgèiÖgÿgÞhÖ�kðhÖiÎjÆ!jµ!j½)h½)j­1h­�oø)hÇ!kÇ1j¥�qð�sÞ)kµ!kÏ�sèpðqèqÞoïsÿ qÿqÖqÞ s÷pçr÷!sÇ)r½!r×!sÏ"rÞ!oÿyÿRj¦)sÇ wÿ)sÏ�|ð y÷*sÖx÷{èw÷zç�€øÿSgÿ{ÿ"zÞ"zæ9qÿ){Ï*{Ö*{Þ"|ö ƒÿ2{Öÿ)zÿ€ÿCtÿ!‚ï9zÿ)ÿ)‚ç\sþ2ƒÞdrþ9ÿRÖdyþK‚ÿZƒÞ\‚þd…ÎCŠÿK‹ÿKŒ÷SŒÿK“ÿlœþt›þùg£���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ:ï÷3Ú�� IDAThÞÍšû_SçÀ}½a':»¢â£î„šsÀ „˜¸Är² eËœŒ24=rɈå!)rè Ár@ÈÂMNlLCªB\¥ÊBÚÒÒÚ¹®¶k»ûÖ]:÷gì9hÕŸ ŸOŸÏ~"Ï7Ïå}.ïËš5_cA¢¬2“­.a)É:´ª€»w`hõë°RV�úµêã?ÉQ­AÔÏ;*Η˜Ì«C@UX_×9Ücu¬ a‡ô¥u¡ææP§#G« _«<á4·µ5§³ânèת*¬ýžæfÏëçšo�è×Pæú_ô‡<à¢Ò,Î�𦲈›œ}�cŽ5×’ *ÏR ·g|¡¶;}ÐØQ×<ÿ¤È1â$7ÿÆ”çΧ_üçƒÎGa ðBcão\÷y>úâþýÿ~è)ÍaYr‚²ÕrƒWŸýûþýÏß¿ÓY‘G@Æál•Ùþ¼rü­™Ïþò÷ÏÿøîïßvÄ/“À‚,åIžóF&''o~üÙ÷ßýóßþU­VÄ  U(IVð ä^í Lµ}úùÿþñó´Cq }qYÖryöرâGGÏÝ¿þóWÅ�Òk‹O–]x3ìzñ™#GîUœ>]~æ…Ž%ïÉŒ �é5F3ë¿ýæÐ™>ùÄã[¶nßàÀ‘#Ûvnß�Òàÿ[‘ˆ`Ûµó±µA6oY»ñ[»ã£_£Ì7µxo]¶íÚ¶aCÂúuhݺõ ëÚ¸=YŠôyFÒTæ º^üþ¶ ‰II‰ ë“×o||G\ôãê“ìY¿ßþì3ÛÛtêÇû“¾s*)aÓîƒñÐOäœ("Џ~öíÍk’Nún’¨_lýFÆÄ<\OVy?”�×%$îÕ‰€Ù—;�¦\Èÿ¢‚ÂîÊ݈K÷äFB¢‰u›¶~3&ýPŸ1-e¶sÇ ‘°K{pBBÂúõeÈ¢Í;ÖÆ¤_¾ÿp6¸‡»rÅ €ß¸´ÛÖ¢‡dsL9„°Ôý9¤…@Xƒ‹´;ôn\< �‹eål Th Ûúˆ{t±ˆ…úÌqÜÐà÷»ò>ö€úMOlWÄÐi¤…÷†ÃÏ2fvHàmÚƒ[µ¯Ý²u‡\NÄ�€¢Ölaø ÷Jxˆ¡ŒÃs<“·DزSg$²Sbè f–çù.oØËÓ\C³\Øo_²a«®–%3cXBñ´Þ"@ö€ð …Ë4+D~±SR¶ì-æR]õd‡°§”–ð›·Ç›ZÀA Ø#D>Œ¬OÙ±s¯®˜i©v8jtÑ: Ù-ܸ^YV¤‰—aÅt½ÈµTWXlyÇ´Æ"‡µ²¡%Z'!LÓÜüÌ´¯² íÆÌC®r]í—…Æëý‘W]źC*G/ÐAFI@˜r°’D²†ñBµOÃѱ±±™IÈØCªj÷tÀq<j@¦žæ&ß›mp¨¸�pöŽÎÍÍö9YÊh¤[Æg+ÏÇ¢Š.yí¬EEÈŒ ç ^ÝÓ÷FœU´ÁHAÐýþ²ÜœèÂR �é Èp£Yô¹C¡ÑÎl„¬¥ípÆ9‹Zy4Z�¡2/Z€K€‹A¡éêÕ«}þ®Zm²"æ#wïú«r£@@8�^T“¸Lx½‚ÓjµÖ ÁZŠ pyïf¯µB( �䨩)³˜Eý=&Ò” C”Ë L¦*.h§p"r½vsn¢®4? �Âär¤¡j¹ñ{Ó> -àjÌ•‘fy8Ì2�øoÎÁ2�¾*�Œg˜Koýnêu@1dzfÈMH–V+8e|òË7*KWì"HPœÀä2ÒU=¯¿óÎp �Jµ¤ÞÌ0•2;ñ‘?¼×g%Wdè“ A(ÒÐU¤$E"ÀlL3˜y°Ã€‹K âÃ0 ¯8‹@?øŸפTùIR†Xîl•ÉTØ"p¬AkA%rÕ€Û,'rV�@bŸ'Àÿ€cäRóMÖCkö7Y­Ï †9³ ׊ ZKUK‹£ü´~¹�Q;!.Ã8ÂqòK�©'ï¼;pGì`€XÞ^¬ªè®ï(?¿L�Œ8*“ÉBòáKýˆÌ/¡¹ÑPhbÜϨ”„¨,Tææ/Zž~"ãðy&‘f4jðG�å%EŒ³!¸ÞØBÙ É�\'Õ¢, �µA‘zø@ªBM›ÍTú#€’ÒPTXm­oaÉ8""À Ü¿ôËàš˜</‚ƒJkd0|¥Ÿ,=Ÿ‹ãi¤©ÀB«2¿· ÷ å`‹ÇÀó”Mž[�|e@ww·ƒ”xš D­Thh%€Ôé Yº8:ØY³‚ü€#S ÝEé¸Êd"ÕøQ­VŠñ.Ë�ùáTLf´1,ËP™áKß왺yµž¡¨*«µ4×j±ÀÊ €ò¶' /ÎXŠÅ’»ºEýý -®šFwÀZB,è_ƒVd€ÈÆÀÿvpš"%E†¾_.YÚ=â› …܃þÉ™±PO‰ra-FøV ^šQ2qÌVfJC(’eFé£,mrt ÿô‡&fÇgæš%ÀÃ,»Ä‰›�z#N( •¤Ïs.¦ª¾Áòx€pÍ=1æñY¿ð+{€Þ´äÜH‹æx»}èÒȵЂˆ ~ˆÁ"`…¯,� H�`4#†µ&x1<ØP× 5N¤x�н,\Y—!rÔ4Ã0´Q¦ 4f°y8a€®®otO,�–,Xñ+‘˜EŠ4XˆyÆHˆí:<'Î5´Je0Ÿ�€•?B K®H‡fq—‘6?Ø<¤®Øîw? ˆb‚ƒFÀHWÚÆ�À»›Z2e;|Í %—C~j 4MC9â¹ÖVÎeËÓ¨LÝÖj×¹.ïC1ˆ �‰­ iÕ¼“§“‘Ýý½Nž»àŽ@F( Eah#ìåX W›zúÇfgã@- [%ŽŠ7‹œz½5…¦‚îJ÷½™Ù¾·ø"Ñ<e-ÏŒ ö eƒðBòp@hêé©lhw»}>8ÈÍm!kþSÉÑ.Lr�0¼t1!®{]Ü…‘~Ÿ»Q.ôú¤bÑÜì³–çh£Hý‚ð®ZÆy=ä™àÚ¹Æ~©ùuÕ¦âè÷n, T´¸ ƒ]v[UXòŒ?®Ý)U¼@gO™+†qè…ÕØ FÙtk’V�¸sçx¨©Ó¡ÎŽ :–qn„ÉBºò·ÖÀh¤rt†¦g/ñííü¥ÙéÐp…^ãZVj&<÷Úä¦*ƒFUØà¾æî»Äµ··Â.3\ž}0F@F–žvÙíÜà¬ûús…4Í8ûzݽ}‚ÁðÛmžáòì‰Õ‚²&¼Ì BÞ_mb].þRŸ»ÿZ¯ÿ–ÿ“9Ïðùã)±]#ÃÞjá¹çyrߺ^n硊†ÜM55M@ei¬Ô+¦ kZ'g¯]_|éå®÷<¡€ÕD’ŽŽêª˜ïÙFéa— ߟ%ì}é%ïü\lª'2Ÿ>]GE±5çÞºn/Ò‚]]ÂÀÜØT—gdÅç)aéPOYˆ¯Ë%þf ϱÅÇvíÓ««¸§ÑEвÙh~ ÝÕf3ÏG]˜p\c\U. ¾÷¿™ GdÍ×Rþ h{^…2:Ù����IEND®B`‚IMAGE 3795 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x14 ‰PNG  ��� IHDR���`���`���ÕF‡ ���sRGB�®Îé��ýPLTE�B†���� ��� �� 4 "�# $�2�*�+�3�0)::C�?=+9JI�"OSU�Z�84�"$!C�!Sg�w'.�$Pji�):)J)Ptu([+Bƒ�ƒ(n(Q)L12 *c")/�2<�0Q�1L�3C�1X 181d0o�1nœ�˜1D1S�2v99�9C0d�9I�8d7Y�7|:P�8w8@�:l�8ƒ�:r9J�9~8l9f:b@K8r�BQ¯®�B\9z�Bn�Bt�ABc�?—�A…)8i Ao>„�BŽAtAcAz?Œ?z Ex�JkLV�HBq�Kv�IŽHY�H  Gà�Û,Ba�J•Ni�J©JƒH”�J°I PZH›�Sf�QƒI}Hƒ&IsRŠP–RsP} Q�R±�R· P©N•QŒ�Y„R¥�Yž�\”$P¥Z¦Y²MÿZ¬�[¹Y¹Y¿YŒ�Uÿ�ZÔ�c| YÇXžX¥bŽ a“�b§"Y­�^à�bÁ,Yš�aÎ�bÈb‚�aÕ�c jqc �`ÿb¨_Àa´<\‡(_§c¯ _Î�gé,`®�hâ�jÐ7a‹�hê�j×�lË�s’�hÿk¸hÐ�lô�qÃiÊk½hÖgÝm²&i°þ!ÿkÅ*h¼�që�qò nñ,l¨�tà�rôr¾�sÿqßoùrÙoÿ�yßqç�wÿ�xú�zúrö*sÇ�zÿzî{èRk¤,sÎ�}ø-u×Mhÿ{ÿ�ÿ#|Í){Ö:rÿ*yï1zÿ†íZsÿcqÿ4ƒÞ:þ$‡ÿAƒÿ8‡ó`zÿU‚Û\‚ÿj„ÍT‹ÿQ’þq›ým#Í ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ¤óç�� BIDAThÞÍšX[åÇ{ûCŠ¢¥ºn®ZVç¯ M7mÖâõºA!\bA­v¸3`P×éÈJ†NQô©¡ ©N®S#±ÏÞqv”%Ô^òƒöñ^Ò–A–Vk¥î‡Ûtê³sÕê_% Ïãyø‡ïç¾ç¼ç¼ç¼/K–|‹ “l‘ ¸|qž&»@êM7âØ"êßoÙ’¶hÐ/ÕW<VA-AÒçl Ümf‡€áÕåŽ}Gpì´,ÉBû>¡½]èÛS©ÁAÿ~Õ³ž@ûóÏ·ޮȎû0¼´Tßà ¸_xÁýO7�÷©õŒcß!ÁÝ.œxåáÔ8Àÿ9e(8; �w_s¥kÉ€ šš­*ãÅÙiÁ}ììì‹ÍL\÷Ä7-×Ðèø»Ó ÿÙç'^sí‰g.`8žšF¨«¸`ÏI÷ÙϾøâóÉ@CeÜž© ôU  Œ¿€O?<Ž# 33—²²œ7(öL¼ÿ¯ú÷÷>œÚó0/¬�"Ì¡Îp0œ=}ö؇ïýã¿×é”q”*U4Ëwò<BÈ;Ø'¸Ï~úÅ'¶ yœ�˜æÉŒ’úÎçÈÞgŸúU5ýu øÉÿþös‚ˆ�Ó”V›k]§BGÞøõwlú™òá?<ñò_þü‹ë6åÄ€iÔF+ëOy^Þ~ëºuW\ºö†-éwþôš«ÖnŽ �Ó*ºž‡ù*ÙúK—&$$$®^½zÙ²ÄÞ}µªÐÜúàí]ò‹/¾,9iÅòå+“.ºhéÒÄâQï0ÞH›kèÈ\yqÊõ®N^™´&åk.ZºzS\ôI]ëôzÙ7»õ’Ë®ùÍRÖ|wÃí#’—­¿óûñðÑCå|øŸa¶bó÷V\¾qdä¾)î‘�ßùIÚÄÉÂõàÍ«–'¥Ü>2€‘‘ÛS’b@— ûÿÑb[ ³÷ߺ [qyÊÆW¯¹zÆ”ä‰ëcóVJ[YÕ‡Øm›1lERrrÒÊ•IÉ+W`«Rc 1–¾93W£eÐáÃ>�|бíÚ¥°¦åË—có¶*¦=îÏÞZD›ëâÁEù×Ìé&œ¬‹@°õMòI€¬k°¯ÙªMY1²ò!¿8ŸTž=Þë]zž|⺔±�0<—¥Œá<!žc+ëá9kiêóê ËÖ^©P1² –ã¸^ŸÏÓ@çÑ ‡¸Výµó„eWeé5¹i1�0ÙöÂr¢ Ö`È Õ&…¼ì¶yÂÚ¬*–ΉeÁð{ Ì¡S¢8èjaòÔ¤ŽËð©0«O•âpÅ-Õœ³¶R·7úΓåjj ‰õ¿h+Óëà/>|&̳2õªkoɪfZšm¶¦è}„áJ ‰ã‡Ú§Ô& ÃJÛÕƒZêjmfúAh²‹k]mm-Q; ÃU�ÎNõ9JHR 1B½ÃÃü`ß¡>1Ôñ`AÙ†Æúši,ê,Ë)¬AâÌd¦2 òE²!8*ÂD«.%¨ßõŒŸx¥"�ÃxCt6Õ3hV8öNNNŽ:Zo,kým»+¢ô¦HPé(…ÂaÄД¡¡×3Ìø§ÆOÏùz³!–‚,Š.Ì®ÀT$eE33/Ö•PÈhð@FEdÕ“d†‰ë …P¹^5@‘@ê­(ÛÈe¦ Vp`¨ohÐÛ»+_&@øÌ—M�êB©éV$ž@Ô"ïtÔÕ9xO«ž‘�˜™k ¢*GJ�M üÌÇÓ�­œÏ‡ê™³ yXš$n«îÏN´? �ü³U!j¸þNž<Žvè yP£Å@Q&–c s€IaÈþP�øþt�`˜ñQ»6b�:8ÆBëó Òe:¥’¤¹ÿLN¶5,|�$ËS¹M«,$ÔR+˘òô´ÅÊ0J•›‹Â͈ŽY¶ÀÏÿü`äµsµé¥2ØõàCg–„¡ã CxÛ‚w)èƒÿ ¹¤OjµçÇëŒMÈVl.‡þåq­ŽÌÇ–`Mqú¢@ Çeà‚Ô�àK}l©®y]‡k „,™ À¬fÛ;öç*¹p€¤&“†aRþ5@‚ÞÂý}}=b˜5èH¨>IÕ ·<ýÓ3 €â†ƒ°¼ú ²IetJô2”ŠôŸR韙3ìBõ‰­™[9DFœà+}¬²rã<Ø×çD&M®Rܯ�iÉ.€á¥ÊôÌ-éJ]c1d|°{¯Ñ`ÞYçp´Ôk‹¶B†ZÕMÏœûí…HØš©©idÛÄšÔÀW °ï–ê']b6—Q9÷D�%ë±…�  Å¥½Iæ1M(�/ýÃóv¨>d¦SE<¤-ÁHÏLWÊÕjhšXKž\&?·€Jûqúxó£·‘T‰™Öi4ùRœç¾ \€"3—ç™*‚ôç •4/NŸr14ms8l• GP¦+Ò¤ÖchR–¦ÀÜç#$NNQGSw Ïù´FÒ_‚-P_äâd´¢¬)C––6¿�»žfxqrZüÞठxZ…G²L» ùH”£BÌXi5!“ÉVéí5f{ÿÑÓ /LùÅÙIwpþr›X@Kî7’„ ¶’�<ßÑ`w<)n ÞÜc®y�·ÐG�hŠ9é¤R¦)É<�xı¬§_„>"bc‚Û}b,øE”ÀQ �€X¥['Ï«¡î}CPãÀý €JMd-ø �E:ÃÀ¡%WÊÔk(�ßá³vgm£Û?õ5ÀÂ߈¤]¤Ì ­“'u$ÐA :ìk2QÐsA‹8ù š'(�d+”0Ãp&µ4ËðÒäÇóœ%”««Y/„â<@T}$a„L¶ Ÿa€ w0UšÖªÞô øÏD7l(J‚TL&59ÔÙ‰:ªžTSæZGsÇë½Þó�QN3 œŽ2#m•& Äû£'ätíСýN¹â29” _HаÁ0¦3¿tH˜ygwÏ<@- 7ÒJ¨AE�Ÿ¯‰).®m뙘ðŠ=äööiçsÛ£HçZ/…EnvÀ»\/½ÔÖ-ŠþÀؘ”È/ýÏÝ{c”ó ¾U¡TC¹Ž\L€ ÷"—ëéæy×þ±H±hos>QtW´�99ª†“G\+´C‚{<ˆºPw¤öÕWG?´âBC™¤iØãñ°UOêmû ŽŠèõ.§(Õ¢ÀQWmG /*RÓ‹+IƒeŸ§µ:_Sâ8¼Îõ‹Sã 'c²Ät5KEäÊ#ÔÙHßFPµC¸¿ŸëêâúýãÂÁ†‚»b»ß³Ós2¤Àp0èb jjg[Ϩ°uuuÎN Á½÷¦ÆØš­1±, “«ßï²™LŒsÐïß?èòxBÇÜG÷þrS¬+(¢=ža4àó»X¦ƒëì ö{yï,�Þ¬H‹íšZêÈ9ô*‡cB È÷éâz¡ÇÕÔäê ´Ùc} Æð*“ùñòÆÎàL`jT >Òœp ‡™Þao®«ùžÃõ……;êCgŽ‹âñ`È7<ì¡W9±G¿}{Ee<¥£YϼÛTº¨óôöB×%L´‘Š-÷Äç)Ã5”6Rkkk´I SÇk.¶ú·7ß§WWiN3 tuµI²šòÚf‡Å‚ÇóQWºÐ'ÕjãœQ0zãqÿOì¶ä[iÿ3_Ù°þqÃ����IEND®B`‚IMAGE 3677 ./arch/monster/giant/Big_Wiz/bigblue_wiz.x15 ‰PNG  ��� IHDR���`���`���ÕF‡ ���sRGB�®Îé��»PLTEÛð��������"�����2�1�*:���"R�Q�"*�!B :�!R R�*#�):�*B�)R'R�*d„�‚�12�1:Œ�Š�0R�1J�2B1:0J�1Z�0l�1d�1t0l1dœ�š�9:�9B�7Z�9J�8d�:R�7|9B�9t8t9l�@J9l:d8l�BR�BZ�Bd�@|�Bt�A„?„AZA|�IR@|�Kd�I|�JtHZ�HŒ�I”Þ�Û�Iœ�PZGœIŒI„H”�RdH„PZ�RŒQl�QœP”ø�õQœR„Q”�ZtR®�YŒ�Xœ�WÎ�Y¾!S¥Z®X”YŒXÆZ¶YœX¦W¶X®!Z•!Y¥�b®!Y­�`Ö)Zb¾aÎ`ÎaÆ�jœaÿb¶!_½B[„!`µb¾ `ÿ!b¥)`¥bÆi„�k¾!c­�hÞ)a­)aµj¾�kÎgèiÖgÿgÞhÖ�kðhÖiÎjÆ!jµ!j½)h½)j­1h­�oø)hÇ!kÇ1j¥�qð�sÞ)kµ!kÏ�sèpðqèqÞoïsÿ qÿqÖqÞ s÷pçr÷!sÇ)r½!r×!sÏ"rÞ!oÿyÿRj¦)sÇ wÿ)sÏ�|ð y÷*sÖx÷{èw÷zç�€øÿSgÿ{ÿ"zÞ"zæ9qÿ){Ï*{Ö*{Þ"|ö ƒÿ2{Öÿ)zÿ€ÿCtÿ!‚ï9zÿ)ÿ)‚ç\sþ2ƒÞdrþ9ÿRÖdyþK‚ÿZƒÞ\‚þd…ÎCŠÿK‹ÿKŒ÷SŒÿK“ÿlœþt›þÍ*x���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ4^¹[�� IDAThÞÍšû_SçÀ}½a':»¢â£î„šsÀ „˜¸Är² eËœŒ24=rɈå!)rè Ár@ÈÂMNlLCªB\¥ÊBÚÒÒÚ¹®¶k»ûÖ]:÷gì9hÕŸ ŸOŸÏ~"Ï7Ïå}.ïËš5_cA¢¬2“­.a)É:´ª€»w`hõë°RV�úµêã?ÉQ­AÔÏ;*Η˜Ì«C@UX_×9Ücu¬ a‡ô¥u¡ææP§#G« _«<á4·µ5§³ânèת*¬ýžæfÏëçšo�è×Pæú_ô‡<à¢Ò,Î�𦲈›œ}�cŽ5×’ *ÏR ·g|¡¶;}ÐØQ×<ÿ¤È1â$7ÿÆ”çΧ_üçƒÎGa ðBcão\÷y>úâþýÿ~è)ÍaYr‚²ÕrƒWŸýûþýÏß¿ÓY‘G@Æál•Ùþ¼rü­™Ïþò÷ÏÿøîïßvÄ/“À‚,åIžóF&''o~üÙ÷ßýóßþU­VÄ  U(IVð ä^í Lµ}úùÿþñó´Cq }qYÖryöرâGGÏÝ¿þóWÅ�Òk‹O–]x3ìzñ™#GîUœ>]~æ…Ž%ïÉŒ �é5F3ë¿ýæÐ™>ùÄã[¶nßàÀ‘#Ûvnß�Òàÿ[‘ˆ`Ûµó±µA6oY»ñ[»ã£_£Ì7µxo]¶íÚ¶aCÂúuhݺõ ëÚ¸=YŠôyFÒTæ º^üþ¶ ‰II‰ ë“×o||G\ôãê“ìY¿ßþì3ÛÛtêÇû“¾s*)aÓîƒñÐOäœ("Џ~öíÍk’Nún’¨_lýFÆÄ<\OVy?”�×%$îÕ‰€Ù—;�¦\Èÿ¢‚ÂîÊ݈K÷äFB¢‰u›¶~3&ýPŸ1-e¶sÇ ‘°K{pBBÂúõeÈ¢Í;ÖÆ¤_¾ÿp6¸‡»rÅ €ß¸´ÛÖ¢‡dsL9„°Ôý9¤…@Xƒ‹´;ôn\< �‹eål Th Ûúˆ{t±ˆ…úÌqÜÐà÷»ò>ö€úMOlWÄÐi¤…÷†ÃÏ2fvHàmÚƒ[µ¯Ý²u‡\NÄ�€¢Ölaø ÷Jxˆ¡ŒÃs<“·DزSg$²Sbè f–çù.oØËÓ\C³\Øo_²a«®–%3cXBñ´Þ"@ö€ð …Ë4+D~±SR¶ì-æR]õd‡°§”–ð›·Ç›ZÀA Ø#D>Œ¬OÙ±s¯®˜i©v8jtÑ: Ù-ܸ^YV¤‰—aÅt½ÈµTWXlyÇ´Æ"‡µ²¡%Z'!LÓÜüÌ´¯² íÆÌC®r]í—…Æëý‘W]źC*G/ÐAFI@˜r°’D²†ñBµOÃѱ±±™IÈØCªj÷tÀq<j@¦žæ&ß›mp¨¸�pöŽÎÍÍö9YÊh¤[Æg+ÏÇ¢Š.yí¬EEÈŒ ç ^ÝÓ÷FœU´ÁHAÐýþ²ÜœèÂR �é Èp£Yô¹C¡ÑÎl„¬¥ípÆ9‹Zy4Z�¡2/Z€K€‹A¡éêÕ«}þ®Zm²"æ#wïú«r£@@8�^T“¸Lx½‚ÓjµÖ ÁZŠ pyïf¯µB( �䨩)³˜Eý=&Ò” C”Ë L¦*.h§p"r½vsn¢®4? �Âär¤¡j¹ñ{Ó> -àjÌ•‘fy8Ì2�øoÎÁ2�¾*�Œg˜Koýnêu@1dzfÈMH–V+8e|òË7*KWì"HPœÀä2ÒU=¯¿óÎp �Jµ¤ÞÌ0•2;ñ‘?¼×g%Wdè“ A(ÒÐU¤$E"ÀlL3˜y°Ã€‹K âÃ0 ¯8‹@?øŸפTùIR†Xîl•ÉTØ"p¬AkA%rÕ€Û,'rV�@bŸ'Àÿ€cäRóMÖCkö7Y­Ï †9³ ׊ ZKUK‹£ü´~¹�Q;!.Ã8ÂqòK�©'ï¼;pGì`€XÞ^¬ªè®ï(?¿L�Œ8*“ÉBòáKýˆÌ/¡¹ÑPhbÜϨ”„¨,Tææ/Zž~"ãðy&‘f4jðG�å%EŒ³!¸ÞØBÙ É�\'Õ¢, �µA‘zø@ªBM›ÍTú#€’ÒPTXm­oaÉ8""À Ü¿ôËàš˜</‚ƒJkd0|¥Ÿ,=Ÿ‹ãi¤©ÀB«2¿· ÷ å`‹ÇÀó”Mž[�|e@ww·ƒ”xš D­Thh%€Ôé Yº8:ØY³‚ü€#S ÝEé¸Êd"ÕøQ­VŠñ.Ë�ùáTLf´1,ËP™áKß왺yµž¡¨*«µ4×j±ÀÊ €ò¶' /ÎXŠÅ’»ºEýý -®šFwÀZB,è_ƒVd€ÈÆÀÿvpš"%E†¾_.YÚ=â› …܃þÉ™±PO‰ra-FøV ^šQ2qÌVfJC(’eFé£,mrt ÿô‡&fÇgæš%ÀÃ,»Ä‰›�z#N( •¤Ïs.¦ª¾Áòx€pÍ=1æñY¿ð+{€Þ´äÜH‹æx»}èÒȵЂˆ ~ˆÁ"`…¯,� H�`4#†µ&x1<ØP× 5N¤x�н,\Y—!rÔ4Ã0´Q¦ 4f°y8a€®®otO,�–,Xñ+‘˜EŠ4XˆyÆHˆí:<'Î5´Je0Ÿ�€•?B K®H‡fq—‘6?Ø<¤®Øîw? ˆb‚ƒFÀHWÚÆ�À»›Z2e;|Í %—C~j 4MC9â¹ÖVÎeËÓ¨LÝÖj×¹.ïC1ˆ �‰­ iÕ¼“§“‘Ýý½Nž»àŽ@F( Eah#ìåX W›zúÇfgã@- [%ŽŠ7‹œz½5…¦‚îJ÷½™Ù¾·ø"Ñ<e-ÏŒ ö eƒðBòp@hêé©lhw»}>8ÈÍm!kþSÉÑ.Lr�0¼t1!®{]Ü…‘~Ÿ»Q.ôú¤bÑÜì³–çh£Hý‚ð®ZÆy=ä™àÚ¹Æ~©ùuÕ¦âè÷n, T´¸ ƒ]v[UXòŒ?®Ý)U¼@gO™+†qè…ÕØ FÙtk’V�¸sçx¨©Ó¡ÎŽ :–qn„ÉBºò·ÖÀh¤rt†¦g/ñííü¥ÙéÐp…^ãZVj&<÷Úä¦*ƒFUØà¾æî»Äµ··Â.3\ž}0F@F–žvÙíÜà¬ûús…4Í8ûzݽ}‚ÁðÛmžáòì‰Õ‚²&¼Ì BÞ_mb].þRŸ»ÿZ¯ÿ–ÿ“9Ïðùã)±]#ÃÞjá¹çyrߺ^n硊†ÜM55M@ei¬Ô+¦ kZ'g¯]_|éå®÷<¡€ÕD’ŽŽêª˜ïÙFéa— ߟ%ì}é%ïü\lª'2Ÿ>]GE±5çÞºn/Ò‚]]ÂÀÜØT—gdÅç)aéPOYˆ¯Ë%þf ϱÅÇvíÓ««¸§ÑEвÙh~ ÝÕf3ÏG]˜p\c\U. ¾÷¿™ GdÍ×Rþ h{^…2:Ù����IEND®B`‚IMAGE 660 ./arch/transport/biggalleon.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������G$d3‚B' R-¿¿¿Áq8ÿ¥�ÿÿÿb¢8���tRNS�@æØf��$IDATxÚí”Árã0 CËãÿÿá%LË²Ê ¼§vÛ΋B¡¢ŸÿúŠ\ЯÀý†A‡+ú¬nô9Á«)ªå}‡Á}6`+Iõ:[iª v¶ÒTd+Iõx5—ôù ˜Kú|à‚ê/aN®¨6è1íè'¨ØË`;\PmÀisÇ‚ê rÚ}ôªT‹+8íØ± "�{qÚQ#¨0`¯cÚ]P}<§­¨>žÓTO9mIµAN[P}û˜¶ ú³{ ª 8m&ÖtÊn:–æ•ÓWƒI‹Ì/¥A^9{½ ÝHk�� ‡Ò \9¤Fê Y Z_ñ˜ÙyÜlÑ pzüªß,ji�8Û_5h,-ŠÁ°0�œ6‹Í…aq¯ß,ØØB<¯Ö¸t©Ý¨Ûj0Ä¿l…!R>A-)³Î Ð µ½·Ö`/ *µÅ ;½7c«Öh³ß¤'ƒÐÝ€zâ•ן(ëó# Á#ÌÑö£=Æt@ÚŒ´á|‹õi°ŽÑœaÛ¢Jyªo3A3aÏÍ^ÆI¯�Y_>D½ZÑJY?ÁÜÂ0`6Ÿ/RãjÖÏ-¬ ªÒ eY_· @ƒk#Ùe`QÎúÕ`J& Î[gý.ù%Ë¥Àø& «IÏeÌ_ ò't^„Qîõ:ñGðeùdY¢,gý"›.£OˆX/D°÷HÀ_`C*½.œåÕÀ§t–WÙ_ëçÕ¿˜0G\K����IEND®B`‚IMAGE 768 ./arch/transport/biggalleon.x71 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���PLTE������G$d3‚B' R-¿¿¿Áq8ÿ¥�ÿÿÿb¢8���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ )Iìp��NIDATHÇÕ•MnÛ0…¥ p‘‰Pfs�!û² AtgÃÙ5€cÀ;2Âdßê};#‰4õ³É¦@úùüÈÑpQüŸr«øõ[ÃŽn 3uþË æ /û¼èµãÛ%N õ æ5<É%N ïû%N iß ']¨Ý']n‰“.€[bÒ§Mǹ›ãÄp¬nŽ™Ìæ·ìÜsCñ¾¿–áESðÝðµ 3ݘ¢~=Î1ÓÉ”ÒusÌt6Wà~Î1»ÃgKÏ07œL,=ÃüEÞȱô §†¯céN §Xz†ùÞÄ„„C)‹nŽQŒáìÕCq „Œ׃§;(Š_ñ:ŠâO@ù¸níöÚÕ&í†È•ÒJ¦u˸—† ê‘[°ú@ëe�¥€5/& ê‘XÛ'KâŠïŒEÈq]“¡l�”ÕÔ?ŒõÎXÚÂÒÕ0YIùÍhP,ä[J@C©€fUõÝžc¡þ|oû6NV¼:ÐÚj�B{ûÖWÁ˜ÆP|ªºM „Àßú-ʘÀdóˆ»aHÙÞ)Û—‰[ˆ ¦µbОôà=êXféãÚ³Æí0mj”¨�£¡‚öÙÆ>´Ï R«Kßw ŠF'†–Z;Yt�ì%AAßÉÁPÏ5TªÅT†1!¾ÍBÏf x\v¹Q¥ÑèU`©º÷²%Ðá¹g,]ƒb4à)ð–#ŒPôÙà JئKD’ôÞ'9”ÂÇCÓàØ |öÃX&\Î8œƒ­hû/þ‡ÿqV•\"›´����IEND®B`‚IMAGE 207 ./arch/armour/helmet/bighorn_he.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���²""ÿÿÿ\+¿[���tRNS�@æØf���nIDATxÚíá €0„wžïÿÌ©Ù".ý>ؘÞÇÄñ1 …ä°¨}ÑÀý—ê[p¶T0NC…ÊaFš]‚` 4É£v` �\× Àê­k9BÀ.ä�á:b(‘ôˆ¼‡rDy±5jDžÎUiÆÏ{6.‚•ø¢H����IEND®B`‚IMAGE 278 ./arch/monster/animal/bird.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE��)))))J!Z))k!!{BŒ11½s)­BRÅp:Õz+êŠ%ÿœ9ÿ�ÿlõs¼���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���…IDAT(Ïcø»ÀçP}yÍòH"KÔÒíá¦Ý¯¦…vï‚ |ìêÞ½g÷î=ú0{ö¬>µn÷¸€ÔîÓ;2v¯€ híMÔXÑäÑáøºUp÷‹ãLò0ÏŽ'¶å(*!9L¢e›D#²K? ¶~”Gõœþ`u�‚Ð}ò€ñ����IEND®B`‚IMAGE 264 ./arch/monster/animal/bird.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ)))))J!Z))k!!{BkJ9Œ11„J½s)­BRÉr6ô“/ÿ½B a ���tRNS�@æØf���†IDATxÚíÌAÂ0 DÑÛ0ÔSæþ·%­XÕÊÖü…­(Oÿ¾Íü\Òù05Œc6ÿ¡¬¸§Œä�ü T$Ã3",X ¹™à¬ƒÅOè`L°¿PÄT=y•£ncÖ“�i¬2rŸK lÉ|0V"à¶¥â¾>1—Íüû©7í8^4H$����IEND®B`‚IMAGE 259 ./arch/monster/animal/bird.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE)))))J!Z))k!!gF9Œ11„J½s)­BRÉs5€€+ô“/ÿ½Bÿ�ÿÞôE‹���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���rIDAT(Ïcø†žÀ%}$öÿUYü‘>”üg—¶G`ßí ± Ià ûî-æ›ùîì»÷.fŸÈø$n¹z×Ú{“àU%î»à\‹¢y�ûêíåÓ¬e /a—G¸ôƒ°±þþ!È�i‡Óò·8ÿì����IEND®B`‚IMAGE 221 ./arch/monster/animal/bird.132 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTEÿ�ÿ)))))J!Z))k!!kF0Œ11©b­BRÈr7ô–.ÿ½BYs¿���tRNS�@æØf���aIDAT(Ïc`à.Ÿ±Ü…Ï{}iÕ8Gùî%ã‹&)p«U« ­w'ÀUÄš¯:½kÕêep‹3g­ÊZ9³ n¢dÛrÁðÒ»3àJÄÞe¸{ÉQ¼w‡~Ð� GK~úè����IEND®B`‚IMAGE 254 ./arch/monster/animal/bird.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ)))))X$kJ9JJJŒ11„J­k½s)­BRÉr5ò‘-ÿ½BŠŒ[b���tRNS�@æØf���IDATxÚíÌÑ ƒ@ DÑÄiÇšYçÿ?W‹/Ò¡}öB.·_%ÎKºÞo:#’nA–lŠ4H">¸$˜,*f (iˆ µkY”J:°ÿ0+KûˆÈèŒ*°ÚS|ecYõ°ãЙc¨N÷`^_p\ÉŒ+Ó‚¸öŒÛ_6ŒØŽ$����IEND®B`‚IMAGE 271 ./arch/monster/animal/bird.152 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE)))))J!Z))k!!kJ9Œ11„J½s)­BRÅp:Õz+î)ÿ½Bÿ�ÿ ìåë���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���~IDAT(Ïcø»À'%}T–” Ö£üHÌ«Üôá*Õ÷ªŽ¯ÙîøPU½kÏéÝ{Êåa*Ø÷ì=^^³{;\€k÷ó›Î»—äöÔÜ.0/·‡ |Ùò¡úuÁÇ~˜À'ƒÿ&íFÿ‘]ªR®?D�EÑÚRZ¡¶����IEND®B`‚IMAGE 221 ./arch/monster/animal/bird.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTEÿ�ÿ)))))J!Z))k!!kF0Œ11©b­BRÈr7ô–.ÿ½BYs¿���tRNS�@æØf���aIDAT(‘c`â€÷ß½UàVéò»(WR /ݽ¬ ÈÞmX½"0ªfÛêU«vŸZn SÀÖ9sUÖª™áæHͽZ(¾¬S�&p÷ïÕPÙë²(.¹‹á¸¡�&* J1ivŽ����IEND®B`‚IMAGE 259 ./arch/monster/animal/bird.172 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE)))))J!Z))k!!gF9Œ11„J½s)­BRÉs5€€+ô“/ÿ½Bÿ�ÿÞôE‹���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���rIDAT(Ïcø†˜À'%~T/Aÿ?Ë# |ÞXðßY`u#Ëî$ÖÅÞ» üá$ ¬nï.( h¾½Þ»z×äB}˜@În (q_È,¯ÞUÀZ,Óò±”Áµ¼4�aí†ÿŸŒ ù‡Z �ƒ”ײ5R2Ð����IEND®B`‚IMAGE 219 ./arch/monster/animal/bird_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���ÿÿ�H0,���tRNS�@æØf���}IDATxÚíQ À ÛàÿŸtÅH}`É"¤X‹^¿‰ÙXjFWÜ,—Óõ<aLö¶,v¥¡ÜŽd)aK. �EP<Eš¸éM½ƒÝ5ŒŽí¬²œYÀJÁ)PéO¯wÈJ¿³f¹Í#*L%Ùñkö�©÷º‡íÁ����IEND®B`‚IMAGE 602 ./arch/monster/humanoid/Dragon/black_dragon2.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���®PLTEÿÿÿ000666---444+++555999111...�€�<<<###777***///,,,(((&&&>>>222333'''@@@!!!)))�À�AAA"""QQQ???888$$$DDD ���;;;III:::MMMCCC===PPPVVVBBBRRRTTT%%%LLLEEEHHH¯��FFFµâ±���tRNS�@æØf��ZIDATx^½ÌÕŽ#A †Q»˜š¹Ã4Ëôþ/¶.ÍHé´’»Õ~·>þáÿwÏØÆÃíäCæo‚²å¶”ŒÄÕ™ ;–�K¹Z@w œòE÷ ”/¤ÖÕ FÀ“9£‹¥|˜œTTêZ¯¤XóówÆ‘„4»_Eý¹MçÚ–Dõ;A]±§löÒîaR/lV_qóýGE˜¶¿Är žyƒF§’ÆŒtHÿ¤¯ÓC4oÎU_ºq…U—`Ylž˜s#…H]€CÆ QÆÝQ¢€KÀYüß+,ÌÛsh—´@ý08ö–@p |‹3Ñï³ ¸:ÌÀö`99çÞ7".Dy Uwç…mà`Žyÿí9.Ä L ­-r<žzüùàĦå¹AZ-íúÍK W üQ½jQ7®•fÖ2ßyV'p#%3¥„^Àͤܽìàß÷“CaÈ`þ����IEND®B`‚IMAGE 587 ./arch/monster/humanoid/Dragon/black_dragon2.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���«PLTEÿÿÿ000$$$---555666999444<<<...�€��À�111@@@+++***###,,,(((333)))///222QQQ"""AAA>>>777&&&'''DDD!!!��� ???===PPPIII:::;;;TTTLLLCCCMMM888RRR%%%HHHVVVBBB¯��EEEzåN���tRNS�@æØf��NIDATx^­ÐÕŽA @QÛÅÐLƒ Ëüÿ/KõLµ:5Š´Úûê#K6|¤›ÿ„¾n…ÐŒO!x5²:-S)gq°hÕ‚2YNÒSäi"æ©–]ªvl�øp,¦Éðøu¦ªb΂`óiphšÇåŒ"AÞ®t²åw5aˆ€¡BŠÛ.ˆìg¶G B¥PÎÄôÂð1 ¢çî~̺³Çà„à•·óÊ'î,`¥„þ`íK"Äzg«'a­ aäB@Ž݄FĤ€ˆî’ùlNh&vÓçê`Gsf8`nÝ%±¸cM €ö÷�¬s6´5,°—+z@e=‹-# `ówŒ.ùV¬_[²}ÎÙØ–¦,´>®ñí¤yëÂ#¢^˜ÝAKˆ´ÌÙF¾—ª­ ZÖ"hÑÎáJ¼!ΕœÂõhõ¸‚ÏîwÔ°À����IEND®B`‚IMAGE 570 ./arch/monster/humanoid/Dragon/black_dragon2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���±PLTEÿÿÿ222;;;444(((%%%555>>>�€�333777###+++'''888---000)))VVV999EEE666...FFF@@@sss:::�À�!!!JJJ,,,<<<===///???111***HHHAAAKKK���WWWhhh$$$"""¯��XXXGGGCCCYYYlll›<,���tRNS�@æØf��7IDATx^Í‘Ån$A3‹«™y˜Í¼ðÿ憱¬™êÖ^öàwPH©„ÿ7ú^pÀ&ùò䮃µ…Bn#ãõ‰?n°}.Oþíšà(_¼ÛÂú ¬ë1E¹AÌ[àÄñ˜°&1¤¼˜¿Ã,¹gaü~XQÒc[Ø—X“㟪ÊrÎd�óÉpYàv|õ·ª¿HS*"!¿x¨ÅÖÛé¦i´ÞnOË1àƒÀݽ¾i§i”YÒky½‚Ë馨¤À«ìZ¸é JY]šgÔ ô @¥p†h†�‚Æ áЃþ„¦0ÎÆ#Žô°Ž?ÏLÛ%áö%hû¯ŒË|8Å7¾Ï£iéwWš î„YYÌçi-DL…Îêâp(Ž …)CJID‡' JáÇí5†±����IEND®B`‚IMAGE 576 ./arch/monster/humanoid/Dragon/black_dragon2.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���½PLTEÿÿÿ222444;;;'''(((%%%555�€�:::---...333777+++@@@JJJ888)))EEE666FFF>>>���###�À�///999***!!!000&&&KKK111===,,,<<<AAA???HHH$$$lll\\\VVVWWWhhhTTTkkkBBBGGG¯��YYYCCCXXX"ͽè���tRNS�@æØf��1IDATx^Í’Ån1@gŒ°Ìæ”™áÿ?«Þ$Ú˺תOò齱ƒáO!ö„©¿ùˆB]£¦ º“íx!#I ©;ðä"‰Ñ´Úð±™nç_�—cŠN¿ú¤P‹ó”ÑÑãl”}û©#hé^L¦7wqî d@N2äf‚eFwŸ4HŠ,#‹„ŽèÉ8_Í.ØÂSË«ëRúóÛù6•%…c`}ÿà©Ç§ç¸YèÜ–ô¾çE5)+Jàz9X²Q•Eµˆv^.óap@ ‚ÈÉÀ+UuØ�PpÄaÐéˆÎ ,‡�6ˆ8ú,¯Ž :¢ºb=q=°yçT¿¬*1NkÆH%Ãw"b+êiqœi)™èâì¬ØºqwQ–%•½v„ Â?äRø`uWã{����IEND®B`‚IMAGE 262 ./arch/misc/blackfirebullet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���IDATxÚÕÍ;Ã0 Qгü8ºÿ}'­èÞ¯ÝÆ^ÈÃÂçymnkO;Ò:î5P’ðó¡3³€óÁ*Ô¤85"ºJâÇN’¨*± ñ؉Ӡ–"ììÔ%lât'<$²„ÛÔ¸Ôù©›4I%>‚êʘ÷@sÂq<$<nn3çr–Í6—m{²Ü^è Ì"†•¯L����IEND®B`‚IMAGE 268 ./arch/misc/blackfirebullet.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���–IDATxÚí’1! ƒ$ÿÿoä¤<¸"UŠhèvm3˜Ç?ß­­[Š 8 ’È8ñE¥‡“ìBŽQÂÂI(šl{^Pê)m4sU<‡óÊ«¾ÀµvóÓ½“¬¸ÖGögùìÞ.4–X‰Ý<ÿ}{L�›D°n?qXB ¶ÇLxÃaîÜþH?œ&D‰ÎPtõ����IEND®B`‚IMAGE 264 ./arch/misc/blackfirebullet.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���’IDATxÚíÁà C!/&aüÿÿ.ÜÚU´û„@"Šm¹=ü‹5Ù×9ˆµnç÷úuS55#!H§_”¥œNá#ól²L[}_8&í ý¤o8:êÏ)HÆ(mß&ÀgDEÄ+'Èýè”Qûá”S�綺!!@ÄŽàýÚCÚ’/Mo÷¬2´öð#o;ކÃ.²ù����IEND®B`‚IMAGE 269 ./arch/misc/blackfirebullet.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���—IDATxÚíÒ1C! P°ÊýïÛÀ~¥Nj±ñ°@¡ýLÐ×@CæALZ¢ëö2˜Œvf”3&j�>¤ŽYÞeƒÁ¸c0þJÂ\¢–>4HOƒªƒ¢‡2N®UˆžB: 8[‘Ý1Ҝ״Z¸¼Fl³P‚sšà2jä ×™HâÃTŠxúY}µ¾Êì‰ã§²6����IEND®B`‚IMAGE 262 ./arch/misc/blackfirebullet.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���IDATxÚÕ’1’1mZ fýÿÿ^ÝÆfòUÚm« X¿˜ïüð¬ó&O°_xþ'fNˆ„ÑÈD˜Ì5¸]3_Máš+žG]Ï!Q1 t06�j‹ù=¨¥Ì $aòþâËmq®cl[â›{ب)Ýzèª2 â.¨KÓ¨6Òžò�°ÏÛI­ŒõsùÀÚ†½ðø����IEND®B`‚IMAGE 270 ./arch/misc/blackfirebullet.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���˜IDATxÚí’1! ƒWƾðÿÿÆ\ G‘*Ev褱<¯_f4{­p§ôë ;.7ó¯$„;m—}Y“zd€Ù&{"%=`ÑÍ %¿£»¯’€^ =𵙡"áëIh‚ØÕxo/ÑQÍßÐÈ[Œ™¿ÃÆT3Ù C÷”ƒ£.êç_Díp av>¤ªàÏ|�sΉø8Œ����IEND®B`‚IMAGE 261 ./arch/misc/blackfirebullet.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���IDATxÚíAÂ@ ÛŒ½IÙÿÿ—À©-*œ;Ê-#;Yn~'¼Ä—õœ®(‰ír¯"¡ˆhÇñQP52E£­ìsW�#%AI@8æ^0b E½Tú7€¨›Æ ÀÛÇ„¤H”ä#3í8ß SBÙ˜y|Sb06±žÞTƒìNëôž3+o–k¢Cçró/O<†Â !����IEND®B`‚IMAGE 268 ./arch/misc/blackfirebullet.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���œÍâÿÿÿ@@@���€€€áo�ÿÿ�@5ÿÿ€�ÿ�ÿÎÿpŸ@à���tRNS�@æØf���–IDATxÚí’1B1 û ùæþ÷´%:ccã]6/äöç;öv>5;’§ûŽBd타˜ˆþ|—°VJÞ ƒE”s¤˜RI½q‘é*Ý0öæ%¬Ya¡˜1ñ~édÅ}†wN!¥2¡{Äì²g7kr܉]Õ îŒãΗ›ï7[5纱$¥O_«~Ä&‰ÁÅŒÄ����IEND®B`‚IMAGE 258 ./arch/floor/blackmarble.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿���»IDAT8Ë}SÑÄ0b‘îÂfŒæj÷qÁFcÓŸ¼D"R@î) î�Å¢táP§ãϸnÊ/@ÂÇV_�ûŒóq€Ð&ŠÉ`Ršê?ÆðÜÕåMbÖ‹ƒ§•€ÃÚÔwÒ·R®$ÉFÒ�’"ÔDD4 µ‰^¡i.?„ð•@¦#‚ܘ[bΜÉ–".Æ /qŒq¨M­)Ä™ÜuÏÙ³’é«È;íCræ”±–Å–œÜ¶pÿq¥eó^Ö"Gÿ����IEND®B`‚IMAGE 647 ./arch/ground/blackrock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���!!!)))111BBBJJJRRRZZZsss„„„ŒŒŒœœœ­­­‹xT|��IDATxÚ%“ Ä CEë~ÿÛÎÇá½ië0 ZdowŸîçœ8gŠ[þ±íSù(£wŸpügˆÝËsfÑî%xeÜh­ë#€É]sªµnå§ŽB3®7Aú§]Œ-6‰¯ÞUÍ/½ˆ¥âD‰M†ˆ­ù}]ü¿ÛZŸ:x­»DëÝĤ¢'#HÎri­¶r% åÞªíÖZ¨Î¹ÌDŠÜ{ãÌiôñ%MiD¨Í9/œ‹<ƒÐ¤ý¸ÃÆ•ŽZñ¤N> Ðô}ŸhºbD Ü4ñS€mid­T?#Á!>·ÄO 4¡OUTäùX–K´¬Ü5q@%¬jç¬Õµ“i¬KP¬ãqi {í_UKJ¢åš¡Ûb@c|„b,§Ofñ×vŸ¼Qððƒ¦Â°|nóèÃFãÃEäüÙZ/ŒQ¾n¤I¹ {°WÞQçžãä:X).®RŽ›.DÔyã`rÞål2ðvYýó჎f!Ä(£uñ:g ââÒ²g7oÑ¿QîæÚ`¼0µBâ[¼áô©YÇ¥S³¤½û‘#zª­)Ý!‰'Y3›(8¹‘8I½Èdœ¢Ô´÷Ô<À1xiaãáYžýéþVgû'º3!§×k¯áŠˆ!‡›UÅRt%LÇx·.÷×CÎÆ¨-ï�%î&Nãy°Š^Sö~×{p—é'ÇqŸ'sÿ�Pœízý(����IEND®B`‚IMAGE 2293 ./arch/ground/smooth/blackrock_S.111 ‰PNG  ��� IHDR������@���[a?���BPLTEêêê)))111sssœœœ!!!ZZZBBB­­­„„„ŒŒŒRRRJJJHHHNNN333///µµµc)F���tRNS�@æØf��aIDATx^ä›ënä6 FÍ‹®¾%»Û÷ÕÚ–'¶%Ñ”§MQ òëè5ƒ3A:­h�À�hÜZ‹Ö�Ü�† @ãòäÌWøûóõýþ=ó/¾Ä¿ÿÎ#³È÷éÇzr1ZOf:Œï\ž¯õoã-û+ü›æŸýþoöïÀ®Qã!Œì½Ç{cØ…Ñi\¼sy¾Ö¿7í¯ðï™ökø½ýóדý»hÁ¯ |ý(Ü1Žì0¢_ C˜y$§riî‹Ëóµþm¼iÿO™ßü‹¯Ü2?)+éÍûw~Ø&x×cÙ3¯#.Õ3#€Æ¥�??¢õoãmû+|Ïç¯öÍü«_âÿ¹¾>Õùµ÷oëþƒ"×›y®àáÌG‚ôiÓ÷3LÉ—ù4c¿øáçG×ú_ó—¼mÿ[¾ƒ¶ý3ý/©o–_ä;Xû'PÙ¿:àåk…a9𖢇wÝÊÙ®…K$€Ì/8… M| ‡ŸI¼ú—þçfå¼mÿ;~Úþ…ݼ!ÜæÏöf$_«Hˆ1„‰ˆJL+ß„•S°K¹Ù˜Ì/xïœ8vçD‡ŸI¼ë„þ¹ÿå]yÛþ]có+÷'kúþ…pŸÿº¿4$ùJQŒ­1ntÊQè)ð´½ìŒÉýœ››{Mœ~~$ñE¨õ/üϳzâmûw­µÏ¯ÝŸ,éû‚½ÍÙ_’|¥ÈZ».À<ª×��DÀ#OXñ/Üß¶[ùdã—_I|Êþ…ŸÛ/Þ¸×ZëüúýÉŽ¾EØyƒ/I¾RÖzažgbÐsCQòÁ$n­1àn-œ×|öå—GOÂ<ÿÎúg~©ï¼qÿ®¹<ÖüÊOöïç?ù‰Äõ}<ºž€ˆ*ø‘?õˆ1†€¨\Îà¶ü/¿<’ø.äýs¿Ôw®åüçû?²òüŸóŸü$_Ò÷óHÌÄ5üÄ'òcD瘵fL ˆÞûä׆'þedý3¿S|5¿Ä¿Å/ó–gîóŸý_«Ø3ÏLèê¼ÝŸ—²¶ïGÖ="_~)$~çþ#_ý+¾š_à­þ%Ë/ø¤äÏö}­¼·ÖcÏuÞî[cóó”0@üå—ÂÆÏJêo óÄ_îÿ ÿ?Ú¿YÈò ¾žÿäדï¾VÑ9‚ë•õußZŒ˜Î€qp3ãWý¼OÓdàì×äÄŸåÿf¡ÈŸü_¹ å?ùw÷«æI¿[i«ë¾õÍ#}`‚/¿6^¹?¤i2Ï~)¿ø£üæ¿»¿ÄåüÊþZþ“w¿j f�´Êºï£ydFt·_/´™'°¿¶å‹?Êofþ|sÿF±ÌŸæç‚–ÿð¥É× GˆÚÓ¢îcŒî™i£ëG8üBØxé1Xöä×ríüI~œg¢w÷of"ÎòK¾–ÿðÅ#ÉWŠaŒ¨ä×ýhÌøH4€¿6^1™¼Åxöoú?ÉÏÌ�ôæþMÂÚŸ³ü’_ÏÅýÉãV_+ ½J~Ýwáá—aaf€i:üBßxÅ4‹áäßõ’h)|sÿ&aí?ùÓü\¨ä§ÍÏïO·úZÙ"ZkÜì÷ñ‰çÒRþðs=ñªÏþ_ÏOĈôîþ ÂÖŸÀgù…û+òÓîç÷'ÏÓ÷ï| &c‚À›}ÄG^ß;bD<ü¼AâÒÐÙF~Þ?Ëm¿ôõ5! ækGÄ#>ÿ&ÿÉﺛý×þ›|¥�pp®ŠÛý‡ BpÑF¦“ß_…Ä¥' ³/ÍØ|JÀ¹ÚüKþ¾7f t}a¾æWî§âß½.ýã‘¿œÿ¥dûËþ5ÚÎ_ûkE½c/œý&Ñ#üptöÅ!¿æ³Ö׿�Æh3Þ•ûI~™Aë_ò—yÝÿÖ?ÍËxÃCŒÙ>’¬ 5üm~ßLpò³°‰ :ž}qȵÿÇ ØßkóÙ�Œˆhíοkð_GÿüÎßÕïTs ÞiEÖoºA®òvÿ™7ÏH�=>goðåÉYÿN_ x}m¾ãqÄþÑ=ðÓ|+~ÚÿÅ»NõeÞò÷lô›?*‡ÿ¡=MòüÄ[|éLÞ�0Z‹èú9ùÿW¾„ÿ—úwZ!Ƙþ‹@ùQõŸyÀÄèÉÊóoñ…#Eÿ bLŒÀô#x§U´9ç¿‚Ûý‡[&äù‰‹ Î~õ@Ùrì½ÅÞ˜‘‰~oø"c f&V^Í,Fk ƒ<?qÙÿ8üê¢ÿäÀMÆúˆñgð¦`R>�tÿ¹m&�3óë¼Éÿlé?°�BpÍÏà·s.» Ä@ì„<òÿßå@:ÍöìŽ-躖Fmö^€Èþ¥¾?½tÝ÷¾îß¡‰û}œ“ëóyßnŸÞûDöïÐÄý>ÎÉõù¼o·Oï}"ûw¬ä¤_|v«ù¼«ØGÜçkâ¾}rë‰úzRÛ×\Ã>â>_³ÿëÛ)H±Ï×°¯î¿ûîcûìÛ±cß^èÓy¿a~y輋ßgߎmÔûtÞo@ôñ@ç}\ð>ûö ìÄýnî}ï〜üà}ïÁcŒ1ÆcŒ1ÆcŒ1æ·oÇ­bŽ};n“ê×+žÿ€EFúõ¾‚ç÷™’L¿^õÀ_?˜a^¿ý¿¸ÇÂ=æ$Ó¯W=þ÷óˆhã!ü–÷턽ø>’èו„?éç1Èë÷ÝÑë{ñýæ#ѯ+„g?ˆ^¿¿¿zIÑýzÏ~ã¼xß}IÑýzÏ~>˜ãù¾Þ³"ûõF^ýÁÏ÷õö?θҡҫÇ����IEND®B`‚IMAGE 186 ./arch/food/blackroot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿ�ÿ�@�@"���ºÇ í���tRNS�@æØf���\IDATxÚíË @!B§ëÿÿs(L«4Z^H¨ó¨? Tò? >NDD‰`•@ Y?Oª‡M‡Ò¾~�ÐíÓ~)Oœ/f¸Rš÷è&ºÏW'�ý{ºÖÄà5;AÅ×����IEND®B`‚IMAGE 284 ./arch/traps/blades.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷„„„!!!)))���f…í'���tRNS�@æØf���²IDATxÚ­RÑà [ âÿÿñ¬Ç1¡vÝvã¡I`}|±Å£¾ãaÜ÷óCÌ(™Z1xS̬X �ó˜‰$p&dP r¯cF˜n  ÀÖJ R !©†²¶,Ek-:úÞEzïu)¯Ï'˜%§'J2oî½®7hk\îÖT©P-^_,¶eæå•2ÿͪ DÌ£Þ|¼@}h/3ÜñJàø½à7^ÄñÿÆQëd¨0¨����IEND®B`‚IMAGE 433 ./arch/ground/Lake/blake_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE��‹��ÿ�ŠŠ�ÿ�ÿ޵!¶O"‹"$¤º+¸v-ŠV2Í2Uÿ�kŽ#½·kÿÿ�@}��9IDATÁa0 �1%90Ôðtÿi‘Ìîìîî4ogÛyÍ›·³ûv½Ýy;·ªªªú¼Ý±;¯�¨vwÞØ{ƒâ†ÐÛÙgçâž‹sÚý^;uÏàÂ…Ú}vS)*§Tг3ö�� æ™!Î%:×¹Í3_¡®åva×���?ž¿éR¡P—¥g/pqîAุ8�øeRá”O¯ºT”L���²×¥KtÜÃé:7®lNN9×PÉ���2áê ]¡½B€pÏ%/ð9��Œw(•Ÿ·Š±��@ëÝK Bk^G¡r;Š»kþ�� víV ©æÍ³ó~À·óì¼ÝŸçà\8»³»¾wçM]N}¨y;oÇÎî›·S»[ÛÛÚ·óvvÞ— =q&"›����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_2.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 970 ./arch/ground/Lake/blake_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ùPLTEÿÿÿGP‡MW‰EN„GS‡JV‰BJ…BKJS‰BN…MYŒEPˆEMˆEQ„T^O\‹GOŠJS…MVŒEK„@K‚@H‚OY‹=E€R^GRŠMY‰R\=IƒXbW`QZŠOXŽJV…JRŒJUŒTa@H~Ua=EƒEO@H†=H€CO‰X`@K†O[ŽYb’ai“al“cm•_m”\e‘GM‡Y`’\e”U^OXˆOU‹R^‘QXŠWaŒWeMXHQƒBNbk‘=I|OVˆ^iV`“Yf’\i”_h—`k—JO…MR‰_i”U^”Vc“=D‡JP‰HMƒ¿\7Í���tRNS�@æØf���bKGD�ˆH��eIDAT8Ë…“Õr[1@½bºÌ`¦˜Ãœ:M™áÿ?¦²ÇmÓ&Mõ¦™£…£ÝFã‡ö4`Œd˜’'�i “3úO&$`¢ï¤ z½~”¡ %-ñÚ{¡Ë”Hÿó2bšZpý�€ ‹„@a‰oìyG¡Jåù•¢…ƒu®×Þ_0c\œžïß}ZBA$!Ú`ÙF>ºî¼9o¶Ú¨ á}"T…ÿ¾ú€/+× H��·}ïê –ér0ªÊ�Û }-gúV{«{•æU ÖF[çRjWaÏ·—ßE"« ËÈ`1lc€ý‰ù¯lE>h=£kÜ_ ˜Eê,#Ï~ŠJ²Œu~úº5JQyq3j ¶X$u¶’lšIy©ªÎ²:wS¤#Ûg; “ЇçÜv -­6¾ØÛfY’ìRøëí>a“£Òƒ¸N¦Ã:Û^~åõ5Žp½z7¿6I2[ Ð:T", ªÕÒF¹8{s‰4ÎWÛlš8$ àH& íäuö0A•åօ䓤'„p$çN7õ:JXY@‘jò °(¥޹Ú ½ÂNŸ­ Ïú”×›"#ÆŒ&Bt˲Tpk`Ȥ5‘ðÅÁf&}Éìce]¾=kQ™ ÇõÅ,®kΚh# ç£2ø¦m_¢rÛ¥3™Ø6Ç™™m}g�/üÂ4çÖr@ˆ°Ãmw‰ÇYÂìZòdüÕD'é|ÿàU³å¶S…ü-ÒN§ëØmi4|É÷ÐÍÁááÑ* úª‡…Ž9L,™q­(Ø!”†iˆ6?ÅX$z=¹GwŽ×ø.œ7 ¨o¾����IEND®B`‚IMAGE 938 ./arch/ground/Lake/blake_3.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���üPLTE`k—BJ…JV‰MYŒJS‰EN„BN…GS‡GP‡EMˆEPˆ@H‚MW‰BKT^R\GOŠEQ„JS…BNOY‹@K‚GRŠ=H€=E€@K†MY‰@H†XbYb’MVŒW`OXŽQZŠ=EƒHQƒOXˆ=IƒUaJUŒ@H~CO‰O[ŽO\‹CK‰TaGM‡R^‘R^ai“JO…\c‘GVŠ\e‘EOJV…\i”_i”RWYf’JRŒYc•U^HTƒOU‹\e”Y`’V`“WeŒMXX`ERUa”al“RZ‘Q_Š^icm•WaŒ@D‚Vc“M\Œbk‘U^”[“2(���tRNS�@æØf��\IDATx^ÒÕn1à=fXfø‘ÂÌPæ÷—z•´MÛ4ê\øÂúŽ-klýGV Pµ‹ç/`r%ƒþ �ØT(©,õ 'ù„(J… å³ s÷m JQ÷?ÆÄÆÛöeÅØ_�co³Æ( ¨JÉX(ù'pt}µ·õõh&RNyŒ¹øH9Çuï÷;íØN‘Â< ´^yî<ä¼Ï…hÍÖëYgüTç›AH¥”¾O§A æ' ÷òéRI¥¤dã¤ë]aî¤Qþ@Rº�P¾R (¥U¥uñÜ.GÑ¿ïYÉEêóìâs›Hý2GÉë››v •óå²KPTº§ÕŠ{yž_\âÙÜ{ëºÇvÀ"ÓŽ‰³zIIn·ˆ@eÈÐôU–ç½ÞpØË�å¨Äˆ³dBÑ`.œl2ÉòLKÁÑ ñùf6,)D|vÔ>–Z“ ,‡Z)šRJ°+‚ƒÁÕIL]žµXRÕ@€Ù�&íØ‹ÇbŸöMûvYÎã«N¡+Í÷™CÌK̬œØøÝȋɂՠr€ùÔG-¤¦)Â�N§cÛ:Z×wPÅ '¥]â°õe ­‹z-@ŒÝæáÕhÌ2óþ œ(1³@Ê€Ãvrlâµ»ePUŸ†½^N¥Îë˜#¶ûek¯ívìmΉ}šJ I’å…‰©¡þ“ý¨¹õæ}ã£{c u{˜ý0‘6•òxëƒe5ň:%Xˆc¼y½n ѵ¬€#cÓe�À|BHÛmíxÛ‚ë;—,9�˜^âñ����IEND®B`‚IMAGE 912 ./arch/ground/Lake/blake_3.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���íPLTE_i”GP‡GS‡DN„BL…BI…JV‰DLˆJS‰LV‰@H‚<D€DPˆ@K‚LY‰=IƒNX‹GRŠIUŒDP„@K†N[‹T^<H€LXŒLUŒGOŠBK@H†BN‰O[ŽQZŠOXŽJO…JV…GQƒLWR\GSƒYb’=EƒBNOX‡@H~JS…V`R^‘Vc“UaX`IQŒNT‹DN€\e‘^g—@D‚GM‡QX†U^VdXb\b”GVŠWaŒRWT`”DP€RZ‘dm™R^Yf’\c‘`h’bk‘WeŒ\i”Q_ŠDP‹HS)B6«���tRNS�@æØf��QIDATx^ÒeS]A à“u;îzÝwê®ÿÿçt{¡´À4_óL6ïlœÿ(äˆç@Úì9Àã+=ïi`VI§÷èÍNOo{uõýQ°Ä XÈz_ Nhý(Yòße$þ t°0Æ&'ƒÙÉç/N!Â((ÃQXaü([Ÿ6 #ÆÖk!�Ì}à»Ô¦D# »íe×Dø`“ª%-¯*ÜÆÒ×Ù‘�™Nîƒsމ^w$*Î[²€0Šª»] Ç”RS¡¤Å¸i\¥0@u³_áZôÇÀ×ùt³)[åk­oAk7˜0/ÝÏzÂŽjü¹®ã‹ŽUê¬(¯ºÉ»,ëIhj¥µ>k8ÆêÏ=.°åšRWá·«\û:iæ–åþ (wEXšBç¹í$Ô † ½1), (˜n^Ÿ7®_ãQŒåÆz1¢"Æu<\ž¼¢8Îf%©UÒ¸æ7€éô˜˜²ß‘9Æ#)eQ©Ç�7798篋´ ƒ†¶»ÿ!ˆ(QÊݽ!„d?˜Á?À€y$kMUR7J ^¥\ÊÐÔ*×.!u²R ¥ Å•,K° Øî}sö%Éç¾Î©Ê‚Ýï„hwv0:“¬çá¤ñõ|®1÷µÎuî¶¡ˆU`R{Ik&…Áµ«´vi’hmÉ9ŽÊs÷àU%[sûÅph�Ô×g5µ9ü÷׈S °@i:N½íÞD½79sœ£²”» Ùá€b™ÍœYÆ8¦µ;õœ_ï4œí¨`����IEND®B`‚IMAGE 889 ./arch/ground/Lake/blake_3.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���áPLTE_i”GS‡DLˆBL…BI…BKGRŠJS‰DN„LV‰GP‡@H‚=Eƒ=Iƒ@K‚<D€DPˆJV‰N[‹BNLUŒLXŒ<H€IUŒNX‹@K†@H†GQƒGOŠJO…O[Ž@H~IQŒBN‰R\LY‰R^DP„UaJV…QZŠBJ‰U^WaŒJS…T^\c‘OXŽOX‡\e‘Q_ŠR^‘DN€Vc“Yb’T\‰<E|VdV]V`DP€@K~Yf’V`“@D‚X`GM‡DP‹T`”QZ†^g—NT‹XbYf•WeŒî,™‹���tRNS�@æØf��FIDATx^’ÕnÞ@„½È`ÆŸ9È e~ÿê±Ò´‰êùj¿ÏhOôZ¼¡D”¼¨ù\‰~-V;éæd/Z¼ÔõÅÎìêêX!­_Žò$ýU`B™÷½�à¸B4B/µxH©¹¨ô2ÖŒ—H=kôs†9’è Gšk,IÆNŸë5£…BUµÞå‚kOá{’AbÚi­Ò“íYQq.DUäÅ#  ðŒÞý¸þ.�\ÌFùã Œh±ÁƤ\å\2fš¿�%ñ@Ç”L¥l7†b¨c‚ûç0¬–̆ÝÜ丱eqBÂàó–³W×AšÆ8ا´N —Ž=<7º+?¦JSjàf�K‚ —õ!¢ÔÓÛÛqœm@—Á1_Ú{À—D¥©Û±#O4OxL¨¼ Cõù·³ öcq,%ôÀ1XRzŸ¢P¼#LªÃýýº’§«³<cúv‹/çÛ=Ð?ÀI*4‘š+Uu!8m½¡dõʲ%‚f±ŽÑZÇ«E-$¸·Æ´÷€%Éæ4Ôrš$™k™1¾1Dä¢÷8Ì!´—w„Æ´t‹6tÊ'Iïý:­5JQÝ ¤o$F‚#$F� Älçë\6­³ÎZ‚]�YOû  h ‰¶ºDLD,)3!ø¦izÆ8IúÝ‚Ÿ³"¯v1žÔ£:éÐ.ÒÞ9›eÄËQ¤»BÄŒj”é"Mïaòáðb»&Xç£aB%\L¸”joÿèÝž‚ý ”•G¿F«1©Y‹ZG����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_4.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_4.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_4.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_5.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_5.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_5.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 1006 ./arch/ground/Lake/blake_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���üPLTEÿÿÿGP‡JS‰GS‡GRŠMW‰JV‰EPˆBN…BJ…MYŒEMˆEN„MY‰BKEK„OY‹EQ„=E€GOŠO\‹T^@H‚MVŒR^R\R^‘JS…GM‡JV…@K†U^@K‚UaJRŒOXŽQZŠXbJUŒW`O[ŽHQƒWe=H€TaYb’BNEOCO‰=Iƒ\e”V`“MXX`WaŒ@H†=D‡Y`’\e‘Yf’QXŠ@H~OXˆOU‹=I|JP‰=EƒOVˆ_h—`k—JO…\i”MR‰ai“bk‘_i”U^”WeŒQ_ŠHMƒ\c‘RW_f”Ua”$ΚÓ���tRNS�@æØf���bKGD�ˆH��†IDAT8ËSÕv\1óÇt—’lš23÷ÿÿ¥Þ´MSz©žì#yFÖØdÎZ‡ù„Ã: µí—aS¶5£fZB•Žö{kLR–î§Ò¯Úæ“‘ýågÎ ±µSÒÓS#)eÒ4ã“Íæ¤5¾³Œ{A€Öj<ìÙt-kïÍ-å¾ÍæËÃÅBj6þÀ¸RV)Å„ŸuÊNS„j˜iBˆ…’3ʹàÑwvvÞ VÔ¬’¶‚UÂ0»Šµ’’ËÙ;DŒF#d¦Hn_P*j/Dn¯£e”ª”û&t ®gLÓtŒä©S¼^€êAÖqÙž0æ´ŽèåñíW¯ß¬€3d‰a!2Çz+PÖ¥"ì^–åÙül¾œ .kÜçn+¨ ÏŸµÏ݃¶,º¬ �ëEÑé´ å9Ý è*Yí[ß #±¹ÂCµVÅfÞN·¡nM»†BJ!sD³¶žäa£÷‘+“"Då0¶ÎÆÚ…fƒ.ªªÑOôÀÑfo¹3>ŒòS ‡1ƒ£,c;ß ¨²L33¼<YŽáïŸgTÕQö'U¶›! y>1ítÕËD¨GáØwA†°€ýÈ2Q÷™ô!¶hpppïš'+§¶i/˜¾¨œðŒŽªÝ{?xÒÝŽ¶h:ÅB¹Ñ�înžžÝµUµ{-/¥6´æÖ4B* Uîß¹æ èÝ*e] )j´rÚ2=p?y‚ÑE5¡”¦Ei?)¦†æjsC0Ø3F7Šlø¡Ã„³›t0kmUxB}ï½áUäWÈu8lB–/Ž—Éï˜ Ã±ï>R)Pü“'cs^ìÍocIþ†¨z|ËÆ½É?ct ÎÉÿã+kÖ6ס7´����IEND®B`‚IMAGE 978 ./arch/ground/Lake/blake_6.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÿPLTE_i”JS‰BN…MW‰MY‰EPˆGS‡BJ…EMˆMYŒEN„JV‰GP‡BKQZŠR\BNJS…OY‹@H‚GOŠEQ„MVŒGRŠT^O[ŽO\‹=E€R^Yb’@H~@K‚@H†HQƒW`CO‰UaJUŒ@K†=H€=EƒOXˆU^OXŽGM‡V`“MXR^‘Xbai“=IƒRWOU‹\e”TaCK‰Yf’EOJV…WeRZ‘WeŒHTƒY`’Vc“GVŠ\i”Q_ŠM\Œ\e‘JRŒX``k—ER\c‘bk‘U^”OZ’al“WaŒUa”cm•Yc•^iJO…R2H���tRNS�@æØf��IDATx^ÒŲ]e†áîßu¹ow—ãW\ïÿZXÙ)„güVõàkP†dïK7ÊÂÒðçu· z®§µ�ˆ&Û‘p¢ȣܲ:ì^h{ùfw;&JþJ7›½¶ˆÂêît×ëíu±jÊN$j«ò‘-£˜),YÇŸz븻¦t?)ÉÄqÅ9”‡êÐ}ˬÕZ×ŒÙØ¤ýN¹1Î!;<<¼¡Â¹‹$ KØì¿¯¥äÖ–6x¦‘^N›¾Ü#x�3¤zEi¦>á„8!Ð9¬$Š@ë°{Ð¶Ì /qæ¸Êœ"JÖŽ¼‡–÷öÅÕ»³ï v¥0"Ñ•™1Ò{bÐRj"}U}8~øvœÐÒRÇXŠ’›Ì9h™¦Û°jb!F¹¢>êÍ 3|O÷ZÃuw¥T–™Iž»æöX]bLõar Wœ+E""0/ѵ7M”—”–p¢Œ”ʘ)yÆ9‘Ƙá0MçžÁɳëéqºÏî<np«nÊì¼³xþrŒ*…' ÏÕ‹Ýn\XÖ\_x#çÃt™úmO–Nçù¥®›ð±ª.hN¢v–ß“A)A t–ÅÄËÔ|³èt–Ëósø“–i+È oìªq~Ñï/:‹TÁ_0Ywë™#ƒ¹K~…ñ…JÓóAž¬µ¥15µœÌóûÕÕm‚ÜÀßR)%r#‰¢I˜ÌܵëÃgót˜Š;âͽ®›9w)üÃÐK’™Ì–OJt® à † È(ÓñH~zP_’ µ®z¯¯¦3²X.á_^Y,xþ;b8à+äÕÛ³wãjCAÀ×x?Šzg?þÿE$g¿|üÿß:“=- >ö����IEND®B`‚IMAGE 955 ./arch/ground/Lake/blake_6.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTE_i”JS‰GP‡GS‡DPˆJV‰DN„LV‰BL…BI…DLˆLXŒGOŠ@H‚R\QZŠLY‰<H€N[‹@K‚T^NX‹GRŠBKIUŒO[ŽLUŒDP„BN‰JS…OXŽ<D€=Iƒ@K†@H~@H†GQƒR^R^‘JV…OX‡Yb’UaBNU^LWV`RZ‘IQŒNT‹\e‘=EƒXbGSƒDN€V`“X`GVŠRWQX†GM‡JO…Yf’^g—WaŒVc“VdQ_Š\b”\i”\c‘`h’bk‘WeŒdm™DP‹HST`”DP€@D‚C;ŒÄ���tRNS�@æØf��yIDATx^ÐÕŽW �`Ûa˜y~æe cßÿm:Ùh›FMoú]X–L’¡*hÕa£Tðûi C7§C-°Â#ÀkbY{lETëNl¯>>¼9¬ô„Ò Μ@d­ûýÃ…kvI©~[œ]H`Û•h¢H¡g±ˆÂ0¼}·?õA¦ÔU#5Àn=ÎTn²Í:‰„pÎ.ª ²Æh€pÿöšF›>*FÔc“çI"3Æ÷K€$…vV›2ëèð~²oeq\�@#ªÂ~µ&†HSˆ“ºmÙs�§\­äVÄ9yV[V ÁËÔca²¿þñ'¨©`’åM±*<)µ.˜˜ø“—Ï~8ÏU1Mö="ïø'ÖÂd–3¶bDªÞœê¡Â±òæ’:˜xî¬çɮ唼¹Í®TÔC¤øÂlxeåQ3 ë+ô¬íô‘Šªò´I <ÒVc¸GÜèNÊå2õ}IäÙxNƒ'KÐJM4ã»óó¦ógã8Âg]g½@DÉ! ѳœÝŒeû²žŸ-Œõêà"ËBEÝÑ_L£.­”þÓ†ñÌ!‰]oLêË?ñ8çË›/À ÒéB‹$¡2Žã©27œ O75–ïßž¿xµLg¥\µÒ7žhÍÑ)leÙnw×ßåUÛfûFÃßèîî^óf¨óŠßË•RÊ9—ÀÖZ.{—Ô9çl;UkøD%~\þ†D+zMÒVð•ç[¥vªà¥©Öå|_s›÷ßÃAéøfú³Ñð/D+v‰AFr¾„o`ñDô}/à¾ÅãôÙ»,‡ÿ2ûå6Ç þ¿¿�ðµ9îüMòµ����IEND®B`‚IMAGE 937 ./arch/ground/Lake/blake_6.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���äPLTE_i”JS‰GP‡LXŒDPˆBKBL…LUŒDN„BI…JV‰LV‰@H‚GS‡DLˆGRŠ=EƒIUŒ<H€<D€@K‚NX‹DP„R\N[‹@K†=IƒUaJS…@H~BNOX‡LY‰GQƒ@H†JV…R^R^‘QZŠGOŠO[ŽT^VdBN‰Vc“Yb’BJ‰Q_Š<E|JO…V]V`IQŒU^WaŒV`“QZ†\c‘DN€@K~NT‹Yf’XbDP€OXŽRZ‘T\‰RWDP‹WeŒ\e‘GM‡Yf•^g—X`T`”©¥ô¶���tRNS�@æØf��sIDATx^ÎÕr&7`u‹y˜~d03,sèýß'r9.×V67ù¦æF}Z:AZÛþu»>´ÒýÔÞŽörh„P–ï›icæûvý•šÕ»óû÷£µ„]JÊ™õ‘à ]îOOï?§Ã®›Ûñ L.Á˜®&ÄÎçvâ¼Ý>|¸;½…/k©ÆŒÌëšì×£»n»9lÖ5†Rº§ó<î˜ÒZ 7„Ôõ—»öèèÜzD�Y×ûÎäÚ|üõä„ÒtßišW•ðÝèH©16@?ç3 „öô �)½šŠ†yS_]ÓP #äØ0Ü…Ðxk Óº× Í 5I~oCôÊ’#%¦üÙX&žRž$«×Ôú<_#DDvœ~…,„~éHTÐ DÛmn[šÇSIo0hç ’,ová85Ø¿ÿpõRpÝî¥açÜ2„ „í>BO…sç®ÞO´`;dZ+µt•s:à.¸rpúì9À/k*5ËÊÂ__ËÐgEY2#JòìÛÙ]mAô½²’ÿÖÕÆ»òbàä™ño‹?;‹Z»´Y¦DP®,³ò冋zæµ®ôÇ“¢²åBåÀ+òª¶ëp’M\U£‰L¤ýŽûúô“m¨ú3¦”Ó!0]‘ÔÆ…àÊÎë\½È)¯ÜëœDˆ¸é�…Zعµ5­)DM^M§ïjÃù•¥ç£u *Í_eâò#&—¨Ž™Kò“™L¥Ý¤x+„èÝRŸ¥õŸ¬vYYšóªpä_vÐÞ=ÌU¿²!#¿ ´>[¸F4ù•ô8§2“ÿ‚ Œ“ÿïo{7Ô¦n,Þ����IEND®B`‚IMAGE 981 ./arch/ground/Lake/blake_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���üPLTE���GP‡GS‡EMˆMW‰JV‰BN…EPˆJS‰BJ…MYŒEN„GRŠO\‹JS…GOŠOY‹@H‚MY‰BKEQ„EK„R\QZŠ=E€MVŒT^R^‘UaTa@H~=IƒJV…@K†X`@K‚XbOXŽ=H€R^W`JUŒO[ŽWeHQƒEOGM‡WaŒai“al“\e‘=Eƒ@H†cm•Yb’OXˆOU‹Y`’\e”QXŠJRŒU^MXCO‰=I|=D‡_h—BNOVˆ_m”V`“Yf’JP‰\i”^i`k—JO…MR‰bk‘_i”U^”WeŒQ_ŠHMƒ÷ÚZf���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ!Šg¯��EIDAT8Ë“Õr1 @¯ 2-óîeæ0sÊŒÿÿ/u:¹´3©_},ÉGR­ö¯#)ôÑ©-jð€RTFpt‡7šKIø�Rªðv‡& ^F“>•O€’�MG*„ ,ÊëU}à ;„€0@Fõùü#ÛÀ, 蛥Jpîðü;"Æ}Ü�àu˜”¬Œóéï“"%rSáZÇuÍħœ‚ØóaBŒR±<¿8ØûòuAh’lrjf?ò¹ªzƒÞ`’3‡—ÌV³þ¦vüÙ's–U®G<�XLÝz=[‡³`Öld‘gl}¾À[±îÉ ®€q6j¬%ëXž•W¾x°»*’YUSjhªŒ¶7hâ0|T×Èqs2oÜ�Æþ„Û”@»(È|%*, Eôõù›I#`Ñén#—ªÛ ÛÅ#£‰õùJgÃYv]L¤Ø·Ïa /cJXÙ!<²ÚâîrÙZß×ÀF<Øžu¹Ðo‡£V{xÄ6Ù×Ý©0ý.\ž¼è]Ò0­UÛI)µ,j€kÆÚ(§oÏØ:…… ñ8$¨òáØåÉÒM³0> ¯¤” ÆqÒ Ü¡–VÖÖxw›Z mú1YÚ WŽ>²x©RTØêDQ¤ˆ­–ÚžI•}¬­Ë÷Žaë°ýÈðëFä½ H™Uy”=Ù‹âîîÎwÜæà g-{„à³ÝŠÃÃ{šî½½ýƒI•ÏWÏÇxÉv÷_Ÿµÿ9¿�Z,1_€ dB����IEND®B`‚IMAGE 996 ./arch/ground/Lake/blake_7.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���üPLTE���JS‰JV‰MYŒGP‡BN…MW‰GS‡EN„EPˆBJ…EMˆGRŠ@H‚BNMY‰T^EQ„@H†OY‹JS…=H€BK=E€GOŠQZŠR\Xb=Iƒ=Eƒ@K‚OXˆUaJUŒW`OXŽ@H~HQƒ@K†ai“MVŒCO‰O[ŽO\‹TaR^GM‡R^‘Yb’\e”`k—EOJV…JO…GVŠQ_ŠYf’M\ŒYc•\e‘HTƒOU‹\i”Y`’V`“CK‰MXRWX`WeŒU^al“^icm•We@D‚ERVc“JRŒWaŒ\c‘bk‘U^”RZ‘Ò}0«���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ!~£¶��TIDAT8Ë“×nÛ0@ͽDmQ’·¼mydï=Ûtºýÿ)$Š(ÐûH’wœ[«ý+\^f¥SK\5ú€‹Töo€A´è^}$QK áÄó(Èp¼<H2ÅB !õò•¿Z{pЃt�çoõôtHÆ1Ø�ú7¿fR ˜ß#E¤‘Sæm� ¨Ci¦žC‚³·7ª/V:(l6VD±I/·OÇëõ ;Œ³1ìdœ¯+@©©4¾׸ûÙ‹¨)Œcà0G¼Dj½¬ûeÌØÐ0™­V³~²ê‰ðaщ¹M0Ëø4pyÔðÏALQõÅs“”".a ¯ŸlÿänàTcQ\JÅùµíE&‘œó0Ôz4}Mâ~Þmto²]ú`©®¬™&gßz@é 1B]^]õ&Ð+çó\ËQ¨[Ú,Ë •¦éÙ9š•õß¾KâÚéØ0Ë íºŠÑ ÀЋ‰‘šMÒ´Õj6+aôd¤=à°Sb“ Išh…_=,f&íŽNÖ½[¥u³ªj´ƒ¶¥D¡ £`¯³}Y?æ'•0RJ{`Í£Q=*ð.ÚéÓ·at¨Ù.1|ÏVbï ëE‡o„F’ŒgpÅÔ±ªX€ñi±©= xÔCñP> JˆéM«@ÈߺØî$±õ'Ò¸íMà¢çÅLû�Ô{¹„á—fëÝ^´ÉÁñø´ç÷é¾Õ•~wÖüýf3t·ÆŸ?üÛÁ\=?ïìluŒ`íâÄ„8à{}1!����IEND®B`‚IMAGE 967 ./arch/ground/Lake/blake_7.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���íPLTE�� JS‰GP‡BI…JV‰DLˆGS‡DPˆDN„LV‰BL…GOŠT^LUŒJS…NX‹OXŽDP„LXŒ=IƒN[‹IUŒBK<D€QZŠLY‰@K‚@H‚<H€GRŠO[ŽBN‰Yb’Ua@K†GQƒ=Eƒ@H~R\@H†R^‘OX‡V`JV…Vc“LWJO…R^GSƒDN€\e‘IQŒ^g—WaŒXbBNQX†U^NT‹VdV`“GM‡RZ‘X`dm™\b”GVŠ@D‚\i”DP‹RWYf’\c‘`h’bk‘WeŒHSQ_ŠDP€8|y‚���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ 9¼g*i��FIDAT8Ë“Õn1†wÌö²—yS˜9)sßÿqêH9¨R¥Î…oæóà?–õ/;hôH# ZZSëú/@ìkÀˆ>ÜõýÝÃ[€†#â…›BSäy~qÞ¿8ƒ•Í™,ò¹3?Œ B´Ö»@ÞŸ0Åüöö—dyàú~¼,Òü‡¦ §åPƒ½@ì.Iúl\)Ä�y ÉĸöI Þ@‚8G6U”%„ðtô'ß¾Ç-j˜`¾ÛŒ[¥ÒãmŽÊØÕã×¥/óÓóž“ðŽs¾¢›.ÙÈ4 Ûùu$Ð�¸Á&„Ý©ŽÚ¶èBŽâ/Î OÛ Xö=—ŠAÞÞ˜aÒN]¢&Il…×€¢cÌmıꄘÍʪÈ´S¯Û l‘B�T(„¢¬>Z.Ý®Š²,{:SÁ”ñÀÉÁ„šEã, ¯ZbW/ÀS»>8N.QwYMÌ×3*DµŽík@dáa\Vâ÷¤Î¢l8o3Xš UN‰c”Öum<CÌa›AMµ0óû³åçûY¥bŠ Óͨ•âFŠ4\-NÞùI:½«Òu:::VÜ Z?áÇb$¥4ŠŠ‹í²ž• <·>˜}³•ñýd+�I>.~š-ŽÐ4‘i†·Àû•” Ù𴪳Ò(a8©†xÇoéùÞÇx U=6sƨÞ�&0;…©“b8‹²ñ8ôÕ]0³ÇØ(É#p \¤eœ½¾¬ª®ËÇsÇ÷]âQšìoO/zºð!ñIˆ1²þÇþ�,3Üye¥Ã����IEND®B`‚IMAGE 950 ./arch/ground/Lake/blake_7.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ÞPLTE� GP‡LXŒJS‰DPˆBKBI…GS‡BL…DLˆJV‰DN„@H‚LV‰GRŠ<H€NX‹<D€@K‚@K†=Iƒ=EƒIUŒLUŒN[‹@H†BNLY‰R\WaŒO[ŽUaGQƒOX‡IQŒ@H~BN‰DP„GOŠJV…R^R^‘Yb’QZŠVd<E|BJ‰JO…\c‘DN€Vc“@K~JS…DP€Q_ŠV]U^T\‰T^V`“XbV`NT‹Yf’QZ†DP‹Yf•OXŽ\e‘WeŒ^g—X`GM‡RZ‘—àª���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ 5µÑfB��DIDAT8Ë“åŽÝ0…3fLâpr)—q™©»åöý_¨^µvU©RÇò/>>‚޹å]~Üå_�…1Wh1xX­~¢rX½l§cñLâ°Ó]¿<öV·øîþ Ð_ zÕzy¿\TH)„PuŠC ŽïzÝÍæÚr�ŒË8îWJÁð¥TÕW$£I"x5Øh} S´$y]Bød0L—%ט’ 5„¸€)™”Sn•"Œ¥Lï€O]rÍ?—BZ4ôL--Ù¿1ŸS†,/ŠùeˆC�2ñ[‘;Z²ÀVËÛ.*Âã•h;‰z4“ï ÿüxó{pÑí—ŠŒÍ– ðºï¤¯†‹2Ô”šÔl˜ 3 LL´®Mb “>ã2ö '1–Ú;Ë]ÄŸžJ™æ‘sD ÷øxœå››5ij²ÜÑU¬¸qGݶ›_Dß+ ŒÓyBjã\î¶ Gñ3–°««qä²¼Î<tä2šlM&‘°Uã|ìï¹D@¨B"ÜN 0”Ç«oçk™¤%DkŸ‡$l' ¶‚j;<= }68/šø|Û-ðÚ€e…AèÖv¬QŒpÈê}³šfÊ}fŸ[t=XÄX3F÷“‹“‘o´Ð¥š¬¦Æì-ÃÒ›6ãèB‘ššûi™„3‰–_–ˆQšD&ñã¤%?�f¸Û{éè´Îò,Ï…ÌJð{&;na¢õµJPúögùÇ)*‹K)Gq?V-ÿõ E˜P¼üOüËþ/Ž‹@Ï����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_8.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_8.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_8.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 952 ./arch/ground/Lake/blake_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ðPLTEÿÿÿGP‡EN„GS‡JV‰OY‹BJ…JS‰BN…MW‰MYŒEPˆEMˆ@H‚BKEK„MVŒEQ„@K‚T^GRŠ=E€O\‹MY‰R\GOŠOXŽR^=IƒUaJUŒQZŠX`XbJV…JRŒ@H~Yb’@K†U^W`=Eƒ@H†JS…R^‘O[ŽCO‰EOal“=H€GM‡HQƒMXY`’=I|QXŠOXˆcm•BNYf’\e”WaŒ_m”V`“Ta\e‘WeU^”=D‡\c‘bk‘^iJO…JP‰ai“_h—OU‹Vc“\i”OVˆ€8þ;���tRNS�@æØf���bKGD�ˆH��\IDAT8˵’ÕbÛPD½—Q ¶,ÉÌ”8L¥”Søÿ¿éu“¦N“×ÞבfwÏL£ñ_9õ·ð²vzÊXoúaR_É—ä·oáR©‚ªçòxl%à\­h3{îà !¼(XÅU&Bò¯nŒñ…Áœë0ÉÛ”£§r¦“ ½…”¶Öâ‰>ºƒ LŒï3á-÷õn¯Û›vdBIBŒ ìsˆ³^�ÀQ-—MÊ“'Áñ8·_K‹µ>ÒÙ¨×,8&jÕ\íïïÙiƒ–6†]/Â>ý«#ã3ä<@0$gmÄØøòq‡iu ÂksXûÊ4Åïn‰±³ôAç““×ÓŠÊüü¦êpæp—éÌÑGÔTöªf±jNb*µ/"›º7ó”g° ú˜ä1o¼Ù ÓÔÚËÃw‘ª1›[$ó ¢ÒËÔêVÀ“‡ ÚˬÖ(ÃÙè®{f¬=ŒBàš÷if<H ¢$ѹœ__}“µGudâP0aHÑÎH¸AXJ™ç4Ëîç<žçÀe…â©:•냿ӕV(ò ðÀM$´«Z×Ä+ïG0£]…úyž«<G`È„#a½ñÁ¨ÚÅÌÜÏJMN~\O‰°ÃY9d‹ÊÒc½xI•/¾hwoÆ<œÏÝ™³Ô¬©ÃÝŠ§­${Ó{Ûu”s×%—¶7œ¥ÖåéôÙ{ãoi÷ëÁ§Þ4îP%[[ÍiQôCŒw•ÞFÞ\\¼ÑE­ˆëÈŒ\ueû{ü¹Ñ€BLH@¹KŠ1Ÿ Œ_} ³êå)5å£LëH����IEND®B`‚IMAGE 900 ./arch/ground/Lake/blake_9.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTE_i”GS‡JV‰OY‹MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆ@H‚R\MVŒEQ„GOŠJS…HQƒT^GRŠ@K‚=H€=E€@K†=EƒMY‰JUŒCO‰O\‹QZŠGM‡BNRWOXˆ@H†=IƒUaW`Yb’@H~JV…O[ŽR^‘\e”`k—JRŒJO…ai“EOOXŽR^XbCK‰Yf’TaYc•HTƒVc“OU‹OZ’MXWaŒQ_Š\i”Ua”cm•al“ERRZ‘M\Œ\e‘^i\c‘@D‚U^ô‚Û8���tRNS�@æØf��HIDATx^¥SÕv1[3{˜i™7ÌXæþÿïÔ٤鞜´/ÕÃ<Œt¯-¦÷/Ìz ÷_¨‘âïttú“ûæubŒ×u #©^¦>Bý>$RðWhÑ‚zvsÏ0½{Ér �•ÐÚ|­È ^JÅð!ŒµÀ!�™†Œ ­9Ü@5Üe爤À(¢)H ¥Œ•ÚŽ”þz³YŸ44¤ä7Ü„¬ Ù]œ%·4"øÎC˜»s@ûÞ-•Jµl¤„¤|¹&æ{aBc¸`ŒM&Ö–­ iБ?GhzBê< §E~}3§ÊÓªX_?;ðaÝ]^öé¹('¶²zТ°*Šß‚uç}N’ øÐ. =`nɳÀ§ÖײOyQTÕÔíw˜êGž-wRçËe^äVI�ëÓÔ´‚Fò¬”èª7)k§Y(ž ÕPùTJÆ(&Ðð2X÷.5ìòÊçÙ$Ë&[Þ½\ä¡F³xL©ë­BaŸ’<æš­ðºs³FJðÛ™‡è9:Û†²úд)•Ò �k¢§ÚZ—éö@kRã(.‚%ç¢tQ?<Ëì±ö'‹w{³†çÎ.ô0s³¥™0-w|RêÍûu0™ü˜VU±MÑ!ÛæËÑ×yrB ä ULdY^”ÕcÔñpqôñÛÙ›d„0Œ¤9@¦AErh·6>ìï/Æ�"È´œ a„Oßo|)ûWE&>e\ÁCJ¥P$Yô¾{‡’ÊÁ/õ…5“ZEÇ…����IEND®B`‚IMAGE 869 ./arch/ground/Lake/blake_9.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ØPLTE_i”DN„BI…LV‰BL…GS‡JV‰DLˆBKJS‰GP‡<D€DPˆ@H‚<H€NX‹@K†IUŒDP„T^N[‹LUŒLY‰JS…=IƒGRŠ@K‚@H†GOŠO[ŽBNOXŽLXŒGQƒJO…LWR\QZŠ=EƒBN‰Ua@H~Yb’IQŒJV…Vc“OX‡@D‚V`QX†NT‹U^Xb^g—R^‘DN€R^GSƒRZ‘\e‘\b”\i”DP‹RWGM‡DP€HSWaŒYf’T`”GVŠX`öÚÝ���tRNS�@æØf��;IDATx^¥’ÕŽœ9DûûÌø#C3÷0†qáýß(îÖ$&{³u{Ž]–Ê£ÿJ2þWï€OÿŒÉMÁ™.^‡Ëi™4Z Rú*òœs†èœ¬^ÁÛó @•B³X¾»½~I•ÖL•„MSö!/Ù *X¹•-"ŠéòÍ aÖô�”ÊÇâ–PŒñ9 '«J…»±Ç!ð¹ Éðp;LÕ(UL¢â 7ÔÕÏ«ó¿î²¥I¾&%±;×¹gÃê…ØÐ±n’¤§Ø"v ìï‹tÐu­s u/|mb@ø% Zׯ¿½º*6®6Æ�—ëßÌ·ÙJ!bW¯L¯Þ;c|KÅO!ËVDoÆnŽ^v ðSžøE…Ø:øºó&Twë@|Ý:åy®¥÷>-ãÌbôσ,Úß_}þÒµµ„Y …µTÂ=mAT 2=»xÿ!JÒ4ÛTº¸km~~âÔ“!Jì#ÌHXx:ÍK®¡s]Gõè”jš‘ÒÖ²³@·o¢©s­Œ;zÄü·ðMi=Ós "!Ò ‹eçUÅQ ¤±ÒyÓR*ã‹c„ž…ÖÍQø8Úê×µñ„Û7LÛÓ 3vPËlUBÜÕf½6 ÂÞøvÓ¨ô´¦ÍyUU\”Ù:cZŒcc‚2fÇ ßþû=‹¢‚WB$‹Éôl¦Ù\cm.%Êqî"•D<EÔzÌò|‘—çK2Ÿ¯þ.éeØ¢(#Ò†æ$Ûö€²}[òçÝ/´ÈÈŽ–����IEND®B`‚IMAGE 869 ./arch/ground/Lake/blake_9.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÞPLTE_i”@H‚BI…BL…BKGRŠJS‰DN„GP‡DPˆGS‡JV‰DLˆ<D€=Eƒ=Iƒ@K‚@K†LXŒLUŒLV‰BNNX‹<H€@H†BN‰IQŒ@H~JS…T^GQƒR^U^N[‹DP„IUŒGOŠVc“BJ‰O[Ž\c‘R\LY‰\e‘JO…DN€OXŽXb@K~JV…Q_ŠUaR^‘OX‡@D‚Yb’DP€<E|V`V]GM‡T`”T\‰^g—QZŠWaŒQZ†V`“\i”DP‹Yf’NT‹RZ‘RW ü 9���tRNS�@æØf��5IDATx^¥“ÕnA „c/2ü|˜ÃÌPæ¾ÿ us%Q”ö¦³Ú«o<–WÞ‰lTÿ%cfMñw¬”)Mó6dK%‰Ôæí#)BK‡¿W«éX 圿F£Ó >Ú{MyYjQ“¹Ò¦¹»- {ÅueŒBL(¤9‘Xpù:žÔôÀœWŠÜ»ôÕøø%eœI©zù ©¬MD«_ðéN±`ŒóEQ}i í„}a8ºûÉe5›ìl•F � ³6Â3·–!Ù¢d‚RH¹~�ß­xâ=!rO�´riÁÀM"dïÙ ½kõími“oS†¸€= ééHJ¼£ïfÑànEkírù€¹Òe‡àœwY­y䯯­ ¾ ܸ@cë]¨ùüÏäÀ £H$3L—Õ‚/5>>®>Ù˜UJ@kFD¤ÉÈÇ)¨¨.¶·›…88[•5a<y5íG·æç3.‰W»UÕMÁv,uÖCBc”Tú¤*NÏ& ˆ´舕óu‹¾d2k_Šž1uè(@L@xÉ—1¬÷—À =&„$èpöXŸkc<©Ö?Áç¡æÙ!"&a5gZóíão™ï|þ²+R|ðžØà²|DÎå|©éÁ}ÂæØð>W)8SJ. ˆ2Fªyæ„åbhm¿ÙjÌXµŒ!øº&qÐ^^fCÁE©kYÌÌäk>åþþ‡i!ÀùiÞ$‚ ã}&D5ÚÞû1ª¬è!b.¨Êêm,ö²ºû����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_A.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_A.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_A.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 904 ./arch/ground/Lake/blake_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé�� PLTE`k—R^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”B\E¸���tRNS�@æØf��IDAT8Ëå’çV1…ñ¨—Õm_ã¶®k0S!tHoïÿ2‘ ä$y‚Ì?ûiÊÙÚúÿBo"ù—L½+/­@mÿM>»¿~ø¾(—(úCO¾ùþ²³ìtÛÄ£)¡ý]¿Ä¥Ô¨€Ý*˜ÏËœ¿Ô‡eQc×_¨ÄLíª ×)û½�°ÒJk!v™NC÷`‡ð¬+,u°Ë‚a­11û´ŽºÇÃ6<á0K4Y†Žß>÷ÉÜýª;ÌIq~1ls6›&›˜Ý'=êÁ{YöwÊ}?'*±É\,ž€ ­F$ Z Ììxµe™1¦ùÙ¢BTÊ ±…Á¤ nÌިɌ Ó �ÀƒÖ<¨ŽÇpÕûº¼ÒÆìÅp•?fH%O=JB•pYÎÏÞ…[½jì™Õ"Á„¦ýV@£F„¢Èƒ °0SÎy$¬yЗܙ”Èö°µ)q$¥’8¶xê*L= àYEm¯͘VˆóAQÒë1áœ0v|Ús@(˜û,—_κT˜Ñ¤±˜ÅMcYÇw�º?,êOÊÍÅK¿]D‹…s’é™óÛ77ŸC/8êÜ/Ë5BœRÏmÛŽ&™aë…šÉ;lçËëÓ®ßÎ% ·ÏûýA„Ðú&„]‘‹Ó»»Û^^WrйŠ- ìN—´>>ö€#Diš§d½)Æ>‚ÀÄ¿}ˆ‚­ç 2üoM ����IEND®B`‚IMAGE 815 ./arch/ground/Lake/blake_B.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���íPLTE_i”JS‰OY‹MYŒMW‰JV‰EN„BN…BJ…GP‡EMˆGS‡@H‚JS…EQ„GOŠBKEPˆT^R\GRŠ@K‚=H€=E€@K†=EƒMY‰@H†O\‹=IƒMVŒW`OXˆQZŠHQƒBNRWCO‰Yb’JUŒ@H~O[ŽCK‰TaOXŽEOJV…OU‹GM‡R^‘ai“R^JO…Ua`k—XbYf’\c‘Yc•HTƒJRŒ\e”V`“\i”Q_Š^iM\Œ\e‘cm•U^ERWaŒUa”RZ‘@D‚Y`’al“MXVc“Ôç‚1���tRNS�@æØf��ðIDATx^íUŽ\1E]fzÌØÌÃÌa†ý/'î´FM`9þð¹.ëúÿQHÿ;`01êoòz€iÊ(ó<H·­gÌØ(Õ¯ŽW{ žy­uð™ï«öê2>’g1FÉ!(­g|â§”>Õœ¯¥Œ‚(’sÞ4Ö–³èé/ß‚ýöàH¯Ó +òÛïжøå¿<< zV·›ÍÖ²lleãvê=Î(nɪM>Åñ”úbb—…#<âÚ>V0´ÅjO„Òò÷yQTU×U.…vÔ„‘-9¶*̗˼ȭV†Õ§»…½;]-”ÈJ…oÐ`ª­í2ß×"“z±Õ ±ÔUBY$Jÿ`x…!â››^dM†¶Hé.¤Ð'x¡öùxH)­ëÒé5Ö싸&îm¤ Pòò<Á°r7A<`=‹f)(å†Ï4ìBk§92` ¦5ñÆÒ­`)„,­-·g™Iä�Bâù‹ûó…È]ÿ\†“̽-¥Ìd4CH¡Ú3‘ Fµß4Ÿ»ª*¸¶Å–]×'oñ=3è]ª¹Ì²¼(Õv—!Oæ'__]~ˆ§˜0OEw8!à=OM¬EŽ“·ó¡a˜ñPú®†ð&§{¥Fùˆ1Lh\Hé(©i<G×É™…~�-}-Ce=£<����IEND®B`‚IMAGE 789 ./arch/ground/Lake/blake_B.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÛPLTE_i”GP‡BI…BL…DN„JV‰BK@K‚JS‰LV‰@H‚<H€<D€DPˆLY‰NX‹GRŠIUŒDP„GS‡N[‹T^DLˆ=Iƒ@K†LUŒ@H†BN‰GOŠO[ŽJS…LXŒGQƒYb’R\QZŠ=EƒJO…BN@H~OXŽR^‘NT‹JV…XbVc“IQŒUaV`OX‡GSƒ@D‚DN€LWGVŠdm™X`DP‹HS\i”R^WaŒ\e‘\b”^g—T`”RWGM‡DP€RZ‘QX†Yf’U^Þh���tRNS�@æØf��èIDATx^íeŽA Ǧ™Ó2†™ï¢Œž6Ò&Úäé¿UÝ–ÉSùŸÐ ód`ìo0I9Ÿ&¥�|ÿD5ÐãáǸOU¢T»ÿó6ë3Å÷³òD.–ã>ú]ÈÕj<QCUõt Išå#ŒèðH{ƺNÃ�†ÊÖ µW£�µ³7WWmojçÜ£o–<*.Ë•BÄ®^;‘}ù`œ³|—_Ër¥¡ßš]¨ÞvcÆ…ü:�üzB”†}ÙYW»¦[hki*w”km úœçƒGTb/>\}úÜÉZ°yÆ VÞSÁŽuâÕL«Œ‰ìôúÝû8ͲrÑRašNúâ¸psG}»ãÔß±¹Öz6›Ö™® ¸"•gÓ¬cÞç§^¾‰S¤ÆHÑ4É={¥�æ°V¥Z84茡?#Z_ëÄ c¤T4;Ó 6Èݶ�Á8œ¿&—šÚuí,Á!ÄI^dž_¨e¹ŠXÓÕn½v¬ª³ÎÊ>QÙñ _ðiš¸ºPž iœ“Ø4.Hr›bˆ•/Þ–qÜò©ªÒûýìtù°v·Eè??‹Uó `›Å}Ηz³Y}Œè-!'m«sFDšð‹ 2].È¢äC!o"ò©(Ûœw4X����IEND®B`‚IMAGE 775 ./arch/ground/Lake/blake_B.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ØPLTE_i”@H‚BI…BL…BKGRŠJS‰DN„LV‰DLˆGP‡DPˆGS‡<D€=Eƒ=Iƒ@K‚@K†N[‹LUŒIQŒJV‰<H€NX‹LXŒ@H†BNIUŒBN‰O[ŽGQƒ@H~R^GOŠJO…UaJS…BJ‰\c‘Yf’R\LY‰T^DP„U^OXŽXbOX‡JV…R^‘DN€Vc“Yb’QZŠDP€<E|V]V`@D‚WaŒT`”QZ†^g—\e‘@K~T\‰X`GM‡VdQ_ŠV`“NT‹BÅöž���tRNS�@æØf��ÝIDATx^푎1Ýmdž°ÌLaÎýo+‰6<Aʲd©ž­×2ùÿq¤ýw@Ò »ü›Üæ‚cgeËß­ª.Ž÷‡)çBL‡zhÌ/ÞšùÞéýgaTµÚŸ×­]ÂÏ¢´¦R>­¹d 2<M‹t&å �µYkðpçiùÒ,øÎ=<Ô:‡Î{ÛRø÷7‚æ 1xö¾ê[þ.2Ôú»ïÞUÊ B¹éKBKð>”ãã1áíí²ó1Œ±ˆ;YêÂc@U•Y†%•¨á-·Ô:õWïúëWW7:åȬ•Pk‹ Y&…ðeRíîöSy¹uUOX‚‹Õ‹ëã†7•0T.ÔRýЂã˜�éÚ¹¢'äȕɬ±î\ ·V½ˆl©þö#›ÆpSØ9kÛI@Ê@E-ÖEŸ‘R–ÝJi†w0ãŒ7Âɔҹ*‰-…ÊPÈÊì³ÔNpçÄÉüä”5Ùþò@æ1†ÕÑBB!ÌÑÚ1R ;‹V4ÂJdà}Ê9ûPÛ¶ÆÒʆzº­uÓÏûvá¶I1†É„¦e÷Œa71CÕ®>•Uo6o >ÄDˆ#R..¥:Ü}½w¨´œ!b¹ jòµâ&XþV™����IEND®B`‚IMAGE 979 ./arch/ground/Lake/blake_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���öPLTE=I|GP‡GS‡MW‰EMˆBJ…@H‚BN…EPˆEN„JV‰MYŒJS‰GRŠ@K‚OY‹T^OXŽEQ„BK=E€O\‹R^GOŠEK„MY‰MVŒR\UaQZŠ=IƒJUŒR^‘JV…Xb@H~@K†Yb’CO‰O[ŽW`HQƒ=EƒGM‡=H€JS…MXBNJRŒV`“OU‹X`@H†U^EOWeJO…\e”Yf’QXŠY`’OXˆU^”_h—Ta`k—al“MR‰WaŒWeŒQ_ŠOVˆHMƒ\c‘RWVc“\e‘ai“bk‘_i”_f”Ua”-jMÐ���tRNS�@æØf��~IDAT8Ë…“Õr\1DÅ|™iï2ƒiÍ3çÿ&ÚuœØ'é'©êÔL«g�•„Hž8pBhJŒ«ïÛÔ¯JdtàO4ÚŒ3‘2(Ü„ª˜Té­zGþ7Çi œJ¡t¬µ2)Ö‡£Ña¥‹î4_@�8!”$œ©²(°ÉˆqŠªiúÓ÷Ûö� Éß!G"„@¸hº~7Ml5¬uài ®„ Òz,ºggo0²'£'^•ì*�ij'“œ ¥Õ¼æœG®Ë‘ö넇j`cpY`œ‘½rN1"tŠÔ3r(­Ó´«•Já”- ˜A"• Áw�¥‘¹¾øôùË× tGžF62’ç”G]°'ìí¥ï÷ûÓ;ªÄÖu. „{àyu.*?Y¡„pÖ&Ýnå'3ª\ïguU¬ìHH&øXÌD2êWÁ.ÔI5ÙDÚ”±„¸©ÊƒÌ^èš ìyàÖω$¹l&  —c.¥ÃÍ­�¦gõò([8ÎìÄ1:{¢›Ç?½½>œÖ.n^Õ¡Ã!ëÄs6ón£ÞiÕ{««`Rm}‹œ»,¶:„ßᲇT$†§§ƒ8flWå®…mÒ"zÂ$.èvØrЉ™ÈJãü’VHw¯FO¯cK7„Fx¥¿•ÆJp[åæâò ™ŽZ—ÝlDi¢ÂS‰0ÆEá%Éý ;ÄKmlXPaÝÔvò‡€]¿ÇnŸ]99nUÔyØbo$² (·I°høbTƒ?Dçu©ÛéD´ï{àÙ<Ør“±Mj ±[8˜ÇÌÎüM4è…ö·@ðáô£þ§±Ô6ìs§t����IEND®B`‚IMAGE 932 ./arch/ground/Lake/blake_C.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTE_i”GP‡@H‚EN„EMˆBJ…EPˆBN…GS‡MW‰JS‰MYŒMY‰JV‰JS…BNCO‰MVŒ@K‚JUŒ=E€@K†QZŠR\OY‹O\‹GOŠBKEQ„GRŠO[ŽR^‘T^@H†Ua@H~=Iƒ=H€R^HQƒOXˆ=EƒGM‡W`RWCK‰JV…Yf’TaQ_ŠV`“OXŽOU‹XbMXYb’U^\e”HTƒX`Yc•WeVc“OZ’RZ‘JRŒM\ŒWaŒEOGVŠUa”ai“bk‘WeŒ\c‘ERY`’\e‘q]���tRNS�@æØf��hIDATx^…ÐÅ–mEEшt=îv]ËÝž ÎÿÿçB1 žÀldke460Íû7¢‰µ.¸_OËX{UÞÏ•DûBåêÂλ¡\[z}qy6ŸWŒ·@á³­¯n­7Fy»ž_ÞÝ]¾³ñ¶®µ Ùžu;§MÃL¸ùxw¬ïµ¾MƒŒP0!„Ò®˜L'ëÎ{kíàœ@¶0‚RDã&¯__h…˜¸ªŠÂkäFçÂûÞ?[&yË#åæon%U¢3oad·Z7ì@H‰JDe\¬dœj­'Ö÷½IQ°™d*ö~Ó¶\Å0úíá÷‚{EUeö ¥¼m¥ŸxŸ¦Ó§›§_Ž*Ý{íƒÀôª´AÜ0ûrZJmb<L&ÃUjó^ßÚ4E8(c¬ihÔuXŸÝL¯M íÛ²²Z8ŒÉP*S”׋hØõZ÷r1h¡'œ‹FÉ)¥³!y$ÓÕŸƒæSk®ÌžôÍ2[=¾92ŒdË]6<>—G±wõùyaNx>#;Òîëã Ùe<êòÝtz¬;’E6j÷t<òô.-'ô×U–ívËñþhÙÂß’õÛÛÕb±ÊV„¡ònÝ‹è%ȱzGÇŒeÒuL&œ¥¼ðBæÝéöá¬2‚ž¿Še2K’üCUV)~¢›­ÖÚ¹º:m8!ðoFTFÛ‹yY™ÉÛä‹�q RÝ.[BÆMá ÙBJž’Þ<á¾Ö†Éø7ç<á"’ð-»ì°âAÂà›ÈòÑaLø® Àÿ!F,&ðþ�!Ú9'Ê' ����IEND®B`‚IMAGE 919 ./arch/ground/Lake/blake_C.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���áPLTE_i”GP‡BI…GS‡GRŠJS‰DPˆ@H‚BL…LUŒDN„LV‰JV‰DLˆLXŒBKGOŠLY‰<D€@K†<H€IUŒ@H†@K‚N[‹DP„T^O[ŽR\QZŠJS…R^BN‰=IƒBNYb’UaJV…NX‹OXŽGQƒU^R^‘@H~NT‹=Eƒ@D‚V`^g—LWRZ‘VdV`“Yf’XbDN€Vc“RW\e‘QX†T`”Q_ŠOX‡\c‘bk‘GVŠJO…\b”GSƒIQŒX`WeŒGM‡WaŒDP€Ö4���tRNS�@æØf��dIDATx^…Ñõ®7Àá3/2ÆËf(¾ÿÕ¹'JÛ4m¿?V–üóXòBxè¹¶v|}œ÷£¦<ìÇãfp¼â+€ÔqÚ­:— ãüEpÛ‹7O6sÍSg•ÐÂmpœS曇õúá.è·m›ÙÙ–ÝÞ�ºƒÓYfyê9˦izúÛú8{k/´£¨A�ߦ‚Úl:ëÏæmæ\a YÅТ�ܼ¤È³³ûû7–"θÞíÚÖ9Jˆ”É "~ ^‘¤)T¶y¾7fÖv;Þ_AÄüB)¤œcüd–Õuôƒµá1èŒ`¼B!0õÊÓÊ9‘4„Æ9Dïa@F Ýiv`©1J%ÏôÑÅ)<úùÝõβxr6ãQ,ÄÞ{r ¥Šh‡³ã°¯8ã\ïwú'\(¹„|ššE'°}ò´¿àhÛqØgVœËZž&¬åÓpÁSïj…¬ªREBj㜈Q cêº‘Ò ¦¾\æ…!NöÜ…¸ÌËÏ××z!—yž—\'Y»é'NâÔåežt¯—Ê</å᫾Ÿ,.Vò<½ª½12?¯f„4Òü~^æñêú2f岑eù-€¶Å¤,˸SA$Fè·`}sýâ׺Y&æÐI¼*1C?‡?uÛ·/?íª®ë×Z%²¨Ñ>¿¿ÏÌÁZBh3‡¦–u­þŽnãîf¾«ˆ’²IŠZ}|Dã+›äDI-¥â¾“ç² ¤ &µZ#2ø§D"e×ð#ñO”ñŒw~ˆ@‘ǨYQÿj™_%$YÁx©«þÏå4àbÐ=e����IEND®B`‚IMAGE 914 ./arch/ground/Lake/blake_C.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÞPLTE_i”JS‰GP‡BL…@H‚DPˆJV‰@K‚BI…<D€GS‡DN„DLˆGRŠLV‰LXŒLUŒ=EƒDP„O[Ž@K†BKNX‹=IƒIUŒN[‹GOŠBN@H†R\UaR^@H~LY‰<H€Yb’U^BN‰JV…T^Q_ŠR^‘JS…OXŽQZŠIQŒV`Vc“GQƒXbVdDN€WaŒV`“Yf’RWNT‹@D‚BJ‰@K~T`”RZ‘DP€OX‡T\‰<E|V]\e‘WeŒGM‡\i”DP‹QZ†\c‘\w"<���tRNS�@æØf��bIDATx^…Í宜7€aϘÙÃ2ïasùþo¨Ö6GmÓD}$ÿ±_Ï$)„Ù»íâ0KâÅl;¯ôPRjCEˆ)'¥XU³ÅË(ö¯ŽO/æ‹c.ÓÇ`¼ ‚€q1ÚlžÞçËaX…ó=ˆ>C Y­ŒüjvùûÝãf Ÿ!Äœ‹Ô·-©Èüq¸<;œ-†(DŒ±Š«ÞÜ*E1Ï&„|zœÝ߃AHm[ B`£Øº9ys³%ÙðstT5RR3Ìï­=ÇâûÃáø?‘Œ;N)�,R2vBKnDûå: O2=–GçJ„àJÕÊ¢Ø£Š€§ÀXs‘ zt–Nšq8Í•2›Û·ä$˜¾ßŸ{ðˆ|—Eî\=eÒ™Sp‹†³í,öÞô1Å+tбõÔºS°+9V/î¾¼‚.fU|É›:'Ù)¸¬ò“sÔZô}ò¶iXÿ/ÙoÎ’¿(º³6ïdL9ÓSo¨ÅÝs°C,ôÚ\_'Wk­¹ ºS;Çê¯Á%кf]¡›_†V¦?wrÎ#ù •bù§Î…³LëBgrâ9P>,׺+¦]Ž>뮑ëBw(ɳbÉò“¤è…çTgkV$£È3'ë®áÜZ–ws%•RM-Ð’¿ýÑööa~“&d’Ý.Þm¶WR“«ÚØFðj*™¢£ÉÈ¿ç‹lž>elJ–ö›@ˆI7m“5£`”ù†z£jµóW`¬”rù¯Ú:Þ¸¨.î~%ߣ ©�°Mó@¾KÍ(yI~hBårýú5ù±¼©“ ù?@h3ا{�����IEND®B`‚IMAGE 897 ./arch/ground/Lake/blake_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���äPLTEÿÿÿGP‡GS‡EN„MYŒMW‰EPˆJS‰JV‰EMˆ@H‚BN…OY‹BJ…R^GRŠGOŠEQ„BK=E€T^R\QZŠMY‰=IƒOXŽ@K‚MVŒO\‹EK„JUŒW`@K†@H~XbYb’Ua=EƒR^‘JS…@H†O[ŽU^WeCO‰JV…EOOXˆYf’QXŠX`GM‡\e”V`“HQƒ=H€MXBNJRŒJO…WaŒOU‹al“Y`’\i”MR‰ai“bk‘_i”WeŒQ_Š\c‘_h—OVˆU^”Vc“/á™Ä���tRNS�@æØf���bKGD�ˆH��1IDAT8ËSnÛ@Ô^/<öÞÔ(J²$[îvz¯ÿÿO.,Ñv€�Y€�³Ø2;3ýOCGtOýöÏ@AÜîz>¿NHÖ›Kxg”û’{Y’¦³ñדvOÁŒ!š¥}Ü»5œR8dˆc�žõ›ÍŠì'k'©UÂég­uX–‘¸«u 8õåŸh´Dœ³ÀË\‡ãa/ÀÌ«Z`—àƒÄžpÓƒå?|ü´iä�Ȧ1:ìøû8¾˜]ÌÆ)õDEí4ÂCX‘“Äõ-ভû>q¸çsQÝ–ØÎç3½e7¬žÏ’‚#AÖÉúH’”vA iR½ðíÃÜ/‚ó€7ËÆ`[´Á‡J•ÆLî3lº;СÇaÛ È£m~©ÑCÂÉÛëqçÐììU—r3™¨<Z¨çHõr÷$Å:9‰Ê]ªÈÆ ä(ƒhµC"CØ„“ÓÓi)õ»Ê¡Åˆ´È¬¦Y e®n§y¤˜_qïHTËp9óù·‹s©Ôm�gNu¼¦Ä LÛ*gWû×”awÞ–jp,m´…[‹à#Ji–9u=ÔCZâê‚pKJÒÎê¡$�¯l‡f%‡·­óa +éŒxZ¦F[&T8y3ï† ï®ÆB«é"ŸšÒ”yšYì<±T§Y°ZÙ5‘ÜZ¦nŸgi·Z²×§‹HÙ{>7&¡þ%ãNQì„�þî^@ØJ—º?ã—ÿtú/Ó¨/„ªƒ@����IEND®B`‚IMAGE 928 ./arch/ground/Lake/blake_D.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ÞPLTE� GP‡MYŒMW‰EPˆJS‰@H‚EMˆEN„BJ…BN…BKGS‡JV‰OY‹R^‘EQ„@K‚=H€=E€@K†=EƒJS…QZŠCO‰GRŠJUŒO[ŽO\‹MY‰GOŠMVŒHQƒ@H†=IƒR^CK‰OXˆBNR\@H~W`T^JV…JRŒEOYf’TaYc•Q_ŠRWRZ‘UaGM‡OXŽHTƒVc“OU‹XbOZ’MXWeYb’U^V`“WeŒUa”M\ŒWaŒERX`\c‘\e”@D‚ +���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ S÷å��.IDAT8˓׎Û0DM±7õ^-Ù–ËöÞ­Ýôüÿ…A°¶¼y /sXîp8™üO “áÔŒa;ðá/ñu»}½²šEYÂʦœ)Ϊ$I¿l‡x6@øœÈUâlœÙçJkË²ŠªÒ1 ºóòr�1nl;I4\ŒäÍ¢‚KžªêúþY0…\ü4>ŸR$P  pÕ(ÑÇGp  ç�ÑPAU£õTJ®š�2Å”m)ÕŒq)…v4íwòã·ïkfê8ƙʫ˜ÒQJMMMá8ÅmŽk| Ÿ­<û+Ö5K]”§›Cëii[‘Ð …“唦¬w33±* z×眣!ÁcmKH˜¢»%Üq"ñ-¾¡ó¬îÿî~) º((îÞu£«òì,Ás¶$"ò¦¼Œë(Þ¢\^m6—Ð=Y¦ä 3›ì ÐU,$'ì«QÔ™ýMurx+¦%þjå>¡@éj–¡toTìóa}I é<×¥Âã4Ç@ít j$B÷hñãÔÆˆ7Âk=¯=´—vNØt!¬ªÒ>ª9!#À*J³™,@ëâziã¹I7ÎCš™¨@±4‡²“„OÇ‘›rcÁJ«Ï¡w{á›þ}.{Ϭ 9÷8JŇá¶íÏ.Š‚?.G?�p’QÆ=ÏBSÑØêý]í¥…Ýiƒž´9îØ¶fŸœ€ÄùçOÿ'\2.y{Š����IEND®B`‚IMAGE 895 ./arch/ground/Lake/blake_D.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ÏPLTE �GP‡BI…BL…<D€DN„BKLV‰@H‚DLˆJS‰DPˆGS‡@K‚@K†<H€GRŠ=IƒBN‰LXŒDP„GOŠLUŒIUŒ@H†N[‹JV‰JS…T^O[ŽLY‰NX‹QZŠGQƒBNJO…=Eƒ@H~OXŽU^R\JV…Vc“OX‡@D‚^g—V`UaQX†NT‹XbR^R^‘Yb’DN€LWRZ‘Yf’RWGM‡T`”DP€IQŒ\e‘GVŠGSƒ\b”Q_ŠWaŒHË‚���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ @›}I��IDAT8ËS‡nÛ0Í‘<nm‰š¶ämgïѽþÿ›JH¬$ ô ß#o½;:úsûïÉ/ç¤{‡>f§¢ÝÅØdoàa®ÝmÚm'Ä•k,¼~áö¦ž6M–eÛlZÆ ¡tŒÿ Õ®ïëºi,!RòvL „!^¯Ûã‡íãærŒS°ZƒÿM…Ešçö›ã Á(U¶lÃBˆÊ¶7#‚í]<‹ DJù½Û4~CBò÷"ö7ÛvïĤfoJù<F@Ln7“u©c­Ýºw_ ¥2yÁÓÜ@ýtÝ]iõv²ž ³’•<¼0L®t¡TJç—eA‰²Bežñ ¡)bUR"øt¢„…Hð™ R€„EßÏÏ]*Æ6|y²¾èíS¯’%ãùå¤)$cQ@Õ3¡ëé\®üÕÓJ!zü½IH ñó*bÞuµôH”2Š„ºùÆBblc ñ[ æìüÃÇ*H8Îr”DC9NºC/结¯?ú2Ï»;G¹ «ÀÔÇg£f•ægÂw8˼°�+YUFíûmw½¸éKB¥ xX%0ƒ *gD†¼’’êW¢eWB¸’!ñ:ÀB8¿"DÄäž@ˆ)b F¿¶\2T¾‘¯sëܼ!àQàk0Ü×2˜Ûøýdf»Ø„rÂçßã­X,†OSzÊþ9ê¿sl)Ökÿè#����IEND®B`‚IMAGE 908 ./arch/ground/Lake/blake_D.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ÕPLTE�� @H‚BI…LXŒDN„<D€=Iƒ@K‚GS‡BL…DPˆJV‰DLˆGP‡JS‰@K†BKDP„<H€GRŠGOŠ=Eƒ@H†LV‰LUŒNX‹IUŒN[‹BNJV…@H~JS…O[ŽU^BN‰T^DN€@D‚OXŽJO…Q_ŠUaR^XbGQƒLY‰OX‡\c‘T\‰Vc“Yb’DP€<E|BJ‰V`V]R\R^‘IQŒGM‡\i”NT‹T`”DP‹@K~VdRZ‘Yf’\e‘RWWaŒï9ã���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ Êþ´¥��#IDAT8ËS×nã@ ôö^¤U—lËvªãôÄi×ÛÿÒ­NQœ8Ì"‡ÃÉäb«zµôñÝ÷ïÀ¶=/çS«šÊ*ÕÖhþu³°W«²D••RUM]¿•Bõè¼ ™Ä ÃÕ› ÆÚª®ûV)ã!HýüçõõbL`‚·§_1ž›Ä¢o«ÕÉ…]ýáÖšÄØªâ¸‰äª~Ø"F„Lë„—JIÄFM DÖŒ[FcÑùõTJ±cñ›Í—n¦ó`ƒ1rl¤Ö®�Ló×O‹GÔ„`mƒ*ôl4 -°ðþûÙÃGkÊvýØWJÎ��…Ö ¼v µÀØ„¦ Ø{àbþ |Öø.–Ç�µÉ4 À{Ír ““”o·•vyJˆT‚P¸ÔÀ * ç�͉ikŹ£j­³l¨�£ú$†Ñ’ï¾)Ôjhòöv–š4w„z–æ„v6ù,æ&LPAŠ]~ òŠÃÑ.õRbçÐ2¡wÊ SL../ëœ^WgqÞÍúÓÍ♑Ѳ6åyYÖ¨F6À‚(2cDàÓœ®kÝæ‹¨´Ð&Á#±ÁK¥:Zx�˜ÂV6ctl9á@áÙrÌ›–å˜g±{‡5·s{Ô}Ø» ¡wB‘œÁC3îö$ÊáÜŽ„Œö—ÉûÜsÃ(Í»N°Yzxø÷ë=¾Z ¸²œ2ÿÏKÿ òê)³S1‹����IEND®B`‚IMAGE 880 ./arch/ground/Lake/blake_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���óPLTEÿÿÿBN…MYŒJS‰BJ…EMˆJV‰EN„GRŠGP‡MW‰EPˆGS‡R\O\‹R^EQ„@H‚R^‘@K‚OXŽMY‰=E€BKMVŒOY‹O[ŽT^EK„QZŠGOŠUa=IƒJUŒU^JV…BNW`@K†Yb’WeJS…CO‰HQƒXbGM‡EOV`“Yf’QXŠOU‹TaX`MX=H€Y`’U^”JRŒOXˆ@H~\e”@H†=Eƒ_h—OVˆ=I|`k—JO…MR‰\e‘ai“bk‘_i”WaŒWeŒQ_ŠHMƒ\c‘RW_f”Ua”ÚQØ%���tRNS�@æØf���bKGD�ˆH��IDAT8Ëå‘×r“1„Õ»þÞ›{·Ó{B1z{ÿ§Av†`¯tF߬V{�ØrJ9ì®…\RâB)û}è×¶0%5�`Kòñr³2Ò0l‚qÀÒÊú_Ôß„p�…„k†¼ä1Œ C~ïp6;´(&ÍÆ÷ЏÜÐ`ÅŠ4U¸£X¤¶mד/ÃÁÑî I›ÏFhMµÖF¥mTG¾çÜBI¹w€L#5ç.cÍçŸq'ŒªÒz¨J»«ª!š1ÁÚÂ<Ž¡AuσÁÞAa¬ŠT©ŽîÕ@j0ÖHý;€¸àÈ÷#ÄDÀµ(Rod')Ì×zpBr|ywÿöÝûJ M‰Œ«Œ6 `×”›ÞÔõÙúl=i•`…ri\rNw�Ý+ûšŸØÚ[˜…”r5ð¢È–Xt˜ímuڳ魄v.õJ{³µMv¥‚Àr-Qê>(Uk‹ëÎ d,qò��×l(§ áÎCºÝ@ž‡aLÈ#€ýÓɼw.aÞc¹lŒìg™™_1ú¸*ÐðòpÒ+Uzó¡×b2†ýìyøó@#£—È&•Ö¥Ò ŒÃ,ËÀ/sjT12,5œäÓƒƒÛ, Ã'À®í!ÏB®ROÆýðâ¶ÿÔ��/òšÇSy<{qvLÃð"¿KP.RLCçrswtþ$²Ä÷XpÀÁ_4*½að/AþKý�›¼.x_.����IEND®B`‚IMAGE 921 ./arch/ground/Lake/blake_E.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���íPLTE�� GP‡JS‰EPˆGS‡MW‰EN„MYŒJV‰BN…EMˆMY‰BJ…OY‹@H‚O\‹BK=E€MVŒR\JS…EQ„O[ŽT^QZŠGOŠGRŠR^‘HQƒOXˆ=Iƒ=EƒOU‹@H~@K†BNGM‡V`“JUŒXbUaMX=H€OXŽW`CO‰RWR^U^CK‰@H†HTƒJV…\e”RZ‘Yf’TaVc“Yc•Y`’JRŒX`@K‚WeQ_ŠYb’EObk‘OZ’U^”WeŒER\c‘M\ŒWaŒ\e‘ai“GVŠUa”u›ó���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ�Îæ��IDAT8Ëå’Õr1EÅ8£A h–™wÍSÿÿs¢µãJìT¾ çõUßê�CY_;ز¢”ÒìÇn[f)A|™íf�ÐQ‹@"±C+t‘m7\÷îÆg³Y¨/ßy´œs|;ßßOyÚŽ"ªŸ FʶDª5EµBNWU5ýr¿Ë·;Jç>7r ±Âª«¦l¶ŸµœóBk‘C/,“>ÂŒùŽº¹½½£Â¥aXU‚ÂýˆÉû"°NT¸’A¬‰ž]Ì%#Ø¢}ÊÛ”Öj–‚ $H§DócŸÇÙ¶áÂY†šø65TR‘TˆVû=�quòõÛÛ²€Ž0r]ÍXÇR4bŸËu—å›é›O«:AEž#Gf5„­½�Œee”â7 Ó¢iŠåÕèšÎùäQ(Û9óëš­­…Ñٴ졜òwYÈsP`¬”J‚ª¬‡ Rk6´ŽR'ûOc~5Æ2`Œ3XãýÊÁt6¯b´D#uàêN²8ºX!e’N÷Ù¸W©ÐÑùy…‚Á¡éšxmòçõxe§e¹¡VM?ñÄ#~CS…Îeöq‘$Ýn§ÓMþ‘7}&ÚŒýþ"Y x¼Àð²\m”1k•|™Ä©Àr`Û'g¡ÿç—à/h˜…øÀZþúàø·øõðW@ðòÛ0½èùF����IEND®B`‚IMAGE 903 ./arch/ground/Lake/blake_E.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���äPLTE���GP‡DPˆGS‡DN„LV‰BL…BI…JV‰JS‰DLˆLXŒ@H‚LUŒIUŒ=IƒBKDP„T^<H€<D€JS…O[ŽR\QZŠBN‰LY‰GRŠGOŠN[‹NX‹OXŽGQƒRZ‘Yb’JV…BN@H~UaOX‡@H†@K‚NT‹V`R^‘U^R^@K†^g—=EƒDN€Yf’XbRW\e‘LWVdQ_ŠQX†V`“IQŒX`\c‘`h’bk‘GVŠWeŒVc“@D‚\b”DP€GSƒGM‡JO…WaŒT`”Ï‹\½���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ QÜ��IDAT8Ëå’玜0FÝ0 LŸaúöšÞËû¿OÌní*J^ ßËÒ9¾¾×2�_áØ@(5¥Å÷ý!.4–Þ¨Ø/s!9�äXHlæFÔyq¸ôÄls{¾<hÙʔԵ'¤ÄÂ;,ï§Óû‰§Wm[Ólf¯'D8Œ…®k*%m]–åÅ·é>+bJ7Z`èx)g ´.wñîÐÖBxžWxu`¡âœ9aur…¡¬w77·C˜IÝum+æÜ÷#'h(…å;O1­¬^¾’b¯‹É~è!°jb b)¡[jŠ 3¿¥Ôñ©°† +ˆlS8EkιòŠ¡Âë7y-&¸ÓvlB‹Îô^¸ xèûw/_m;jÝÉ,.AâîÀÝ”xì ùnŸi¥Ô£N¿€{òJ5 © ‚íùE¼‘¶E>ª)ZøàQ s†e™oÜcªŠÍ¡ ‚†q×eÿ(�×/j â¬"¤ï×¾O ' ÓŸHޤ" Â0M>o·ºòÃ4M‰ˆ~…¨Ûe\JWªOÓÈÜå¢ñÓß@^L⸤°šû wôC¯yÊ«ŒóµO>-’4Lý©Ó’ð‰°`¢ma”$‰#GްÀˆƒgé¦'ÛË/ý:ŒÈØŸ+ôœC"3[]}ìcâ©f‘þH€ÎȘRê~T þ„gÿ àÿÌÞ-ÐmÁ Ü����IEND®B`‚IMAGE 880 ./arch/ground/Lake/blake_E.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���ØPLTE���JS‰LXŒJV‰LV‰GRŠBI…DN„LUŒ@H‚DLˆDPˆGP‡BL…GS‡=IƒNX‹N[‹BK<D€@K‚IUŒDP„R\=Eƒ@K†@H~UaBNQZŠ<H€@H†VdLY‰BN‰GOŠO[ŽR^Q_ŠR^‘U^JV…JS…Yb’T^DP€GQƒNT‹OX‡Yf’Xb<E|DN€V]Vc“OXŽ\c‘V`WaŒRWV`“RZ‘GM‡T\‰BJ‰Yf•IQŒX`\e‘QZ†WeŒT`”ÝN*?���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÙ~o[��IDAT8ËåŽ1 EEõ>½yÜ=îÞÞ{zî£ÈÞ,’E\  è?~’BÈ[”VßWó]%=à›jÕv (!Ô•ý’Lºjþ€ÉúdñxÖÎ%Ì)O©g à ž·ÛíãSxL’ ݬIâ}BGa¦MªÁ×óûí ^v”b ÆY츽OËÝrž`B0ÆžlfçÎz€//÷Õx¼ ÞZ�Ç]BˆM¹¦›‡ëë�h’|ÃÚñ4ÏOÚ±[~Úí§°C{ÂhãB€-ÃÊÒ‹¾+'ñÕÞ·øh¶4v¦ué)!†ó† KÖ–c8$0/üô–Y-\?½$KjÜžòÛƒŸrL}Q¬7 ˜µfްFëf¤rt ø±µ4Y®*\0P`‰?YÍ•Ž@§§a‚îìüê8¯:ILO)5Òè€A,­–’‰4UM¨ï©W�ͬán*Dè©×a•EŠp?}Z„Éêlèïî¤nêa–ⲈO߈ñÕ�\Ó¨¨ÎÒç$&^eQÊõ›>'ÔòðûYPú¬…ʲ:\Ñ/ñœõ†YT¢à\dQšë߀Äöê^¨ËrgaÆeï‚:o¢Ô!ÂÚ„È÷>¢§··q!.ÛkÙOó°ï1úCÇtBiŒc Œ£¿/Úy è_"èÿÔÊl,ÍrºÍ����IEND®B`‚IMAGE 1114 ./arch/ground/Lake/blake_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTER^GP‡GS‡EN„MW‰JV‰BJ…JS‰BN…MYŒEPˆEMˆGRŠ@H‚T^O\‹GOŠEQ„BK@K‚EK„MVŒ=E€OY‹MY‰R\JUŒQZŠGM‡XbW`Yb’OXŽJV…JS…Ua@H~@K†=EƒJRŒCO‰=IƒR^‘O[ŽHQƒ@H†=H€X`U^OU‹EOBNTaWeMXV`“al“\e”Y`’OXˆYf’WaŒJO…QXŠai“=F|_m”cm•\e‘bk‘U^”=D‡OVˆ^iVc“JP‰=I|\i”_h—`k—MR‰_i”WeŒQ_ŠHMƒ\c‘RW_f”Ua”Bñh]�� IDATx^ÐÕ®eI` \–ºlw=®í>îúþO2ÕÃ$ä'|°EæÓéÖã)CTçÝ¿Ww)3‹' ¬Ìow£! EÙm&Úc1¿Žÿñ¾ç´dV˜dö`„R$ ,§ÓÇδ‡I9BpÚ9©w#—DÕ¶\¥Nù¶†ñ䯫þ‡ŠÐ•’·ÖYk‰·Ã!>@Ò¸1³Æ€@«…'BË¢j÷÷p 2ǦK8ˆcC:ýr,¥‹áw­u^šL¼Lt&�s®¯ZÎS÷•Ú‘R6ó-4ŠFÆ�Œð³¾êÑŽ0EǼ�k51)sõâùӻϿÑ“¦ÆP se)u~�ëXÆÃôk_Ž/Ç“{Qqá…ðÄ"TƧ¿toØu' Z â©O‡®Q>U¢z�ulŽwË®]0ç\jõΞl2w³¯¨ÇîÐõèXP æZ#ºj›†AÞ¢šeóˆ*¦KÇ\)YÈ@-™fyR®oäš)¸›Ü/PçéƒÂ]I¸¯kºÿ"\´©£º–d®^<N– o_¾^J®×ѾÞD§&PGõE­)x~kºÙ±»ŠnK]Du¨3: µÆosG¼š“h[¾¾¹YÕu}M©SËìWížä9b¼M°ØG«}Ù´R„¨8$½eÅßN¾|ë¢è¢ÈP٦୭Œª¼c( V‡”—ϯ®¹e0í‹P^D-fZj'fˆì†ç¼m›$ ós´UJe:Ï\23*`¡àfXB£JXßc +r‡ª ¶žÐ"Ûõ"߇‹RJgI©yÛ¶ÆcVR‰(_?M— R-*,zž­6û•,d±ßçr70pWËvñƒÍP©.Úì|onj· RP¿ÿcê“»ñ§Ë ¼ RBxçd¾ÚÔ‘”kÈ£Í7®5—ïž¾Oâ¡1<YÕÌfóŒRßð×O?~˜6‹Þl™²EŽÄ(lÂ÷ñ�Ž,#!ª¦âÄd.e©¶[ÔŒÇ>gÉò?êùKWkñðÝ����IEND®B`‚IMAGE 1112 ./arch/ground/Lake/blake_F.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEEQ„GS‡JV‰MYŒMW‰JS‰EN„BN…BJ…GP‡EMˆBKEPˆMVŒT^R\GOŠOY‹JS…QZŠBN@H‚@K‚GRŠ=E€MY‰JUŒO[ŽO\‹W`OXŽR^‘=H€Yb’@K†=EƒHQƒ@H†=IƒUaGM‡CO‰@H~OXˆR^U^MX_i”ai“XbEOJV…RWJRŒQ_ŠCK‰Yf’Ta\e”HTƒOU‹V`“JO…M\Œ\e‘\i”Yc•Ua”`k—\c‘RZ‘Y`’WaŒWeŒGVŠVc“OZ’X`We^icm•@D‚ERbk‘U^”al“Y"��IDATxÚ’U’l9 DeÆË ÅŒÍ †÷¿•Q)Âþpȶ2ó€•*¾©ÌŒçчÃ>Œ"Ø0:¬:ÒB¾Yω!TÈ6]´¿fôêùöå~µJ¬v ýwÖŒ A(Û¯^&“—Ï,Øõ=o°AƒVvmaNƒ¦á"¶¢j²,»ø:9¤ûçÇ´Vã­÷žð&…£ý›†RÆX×445Šm½^Jœ±ýþ}ˉ1©’$Ë(7ZÁðøo§µ§´¢Ù7f•vzCšÕ£’ăø ­àlÇylOå•2„cˆh¢òôŠcÑ~Äh…r*Ñâ4±±Ê’€Ò¹sšàýòøöüŸ³ÎTD’„SÅRjçQ›ƒµíÂð×ůOƒ„W”Ó4©¼Œ™[ JÅ: û”tÔÝhÔ [‹~dmk`qØïR‰ƱÜ�˜þþ"|)g?£„q_€=™d­ÊYô, þ)s¨8¯Ô¶ãÓÔÚJy‡^ÄÞ+-¥\,Šbºñ±€žøö°ºXãK'†bmïªxYŸ~ „-êå¬îž`ì¼ýòò2hÓ?<dâNOŬpëþ:gu ¸ê§gÖõÑç0¼æ rLË­%>‚ ež[Âah“*§ ù÷¸®g³%¾µD`m%ªÜJºëo·ãz\XƒçûÊo@$‡}×UNMòþlpm‹bYXUjÛ C€bÐ(M0N½šÂÕîñ>A>Þª\”å ­5 y<‰’Ö\Ê9¦Ï›¦O®bŒ¦Å¢ —ÊÉ+T‚w½!HÈí*JÄÒSÂÂi˘Ôo*DˆÜ´Ü-]Q §È ÈoX:×'@•ÒS´ú´OËöV0NÞ=®Z5FýcíòïNµ.µß(x7hR¤óUˆh5°XüµœÍê“‹§*-”êû›ó·ƒpÈ_ ŽwSa¼e9®§X'3‘Éy>9ÿáuÂhjüM1ó45y2IrþçÇ“¡ •NÊP)KØþÃ(0&J†iI¥5*ÂhËÃÉÙ§èÕ³þ™Q¸ÖL+R����IEND®B`‚IMAGE 1084 ./arch/ground/Lake/blake_F.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTENT‹LV‰GS‡DN„BL…BI…JV‰DLˆJS‰GP‡@H‚LXŒDPˆLUŒLY‰=IƒNX‹GRŠIUŒDP„@K†N[‹R\QZŠ<D€T^<H€JS…@K‚GOŠBK@H†BN‰O[ŽOXŽJV…GQƒLWR^‘Yb’=EƒBNUa@H~JO…R^U^XbGSƒOX‡Vc“_i”IQŒDN€\e‘V`RZ‘QX†@D‚V`“^g—X`RWGM‡GVŠWaŒT`”Yf’VdQ_ŠDP‹\i”\b”\c‘`h’bk‘WeŒDP€dm™HSôR»Ä��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’QëUªµòß.çºðDÙEq9ÌB%jOÑI¡HºOE0çOV,ÑϷW½ÀL:”/ÖV(E„=Þ¶Û·gëoò<Àí2^?Sa‘LWÂV½TqP–åÕ×í¥-jŒ‘D{äˆZöŽà ÜÔ›sa­-l�Ü$猡rûá‘hl~üø‰‰Ö­òQ”çBÎZtCµ±(ÿ²’ñ¡ËXp¸]PÚ¦4^Ï—”ÄòŽ1M”Òð˜P–¦ä Æ]"§ÔÅ*ÑÎé^2I!ÜÐqÎ¥-ÎhûøÇŸw³Ž %‘WqO)cÿøðŒ#xùøûS„c¨lÛ÷!nrœ£°ã°%YÁxÞ\æE¢b¥ü"ò÷zb&DýÄ&Ù÷tJο_ÕHiœó"ÀîhFÃQÿYÒ=#ªœˆ)'¶×q’ôŒË‘‚LRàëzí8›(ÇΪa&¬2Ê)º,z:¨…’”iVÍõÓ“ŸLXUÃHNÀ A~¨KÅ¡k¸«†ôe½©ª¦c¹ìçâ¹®K¬§½9Béë()…øÿ@ÕÚ*-nZÎ;Cÿ>6ŒwiÂÎ4M…¬Ð¬;2‘çzhš"wDÇá«…E……N¢í‡§OŸÇ.è*¥†KçØ@çúŒsÊb•Ò!]Þ<þ%iZo=L6v.¿ý€ôõõs~1G‰{ + [ ‡¥éhÆ‘iŽ8ÚÚ|ŽøM–=œ£„3cº!R ‹_„£ÿ‚‹+}ÒT&x¨¸É†Ñ¦<ú²ÄøÇn0MÕ16dG“qžqÚc﵎‘ÝÜþzwÀ¬ÙÎ $�\í 4&÷ª¨Ë€fcXív•àD:O±J"àc—Ô u¯:иãYö®e·'19»_ë(ò¢•2Y/ìr¥ÉIó°zø°Gá?W‘J"‘r®õžäù:6·>Êo{­òÊ€‹Åý‰S\oï¶µ”Ýu þÆÙMý=[“"����IEND®B`‚IMAGE 1064 ./arch/ground/Lake/blake_F.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEGS‡JS‰BL…BI…BKDLˆDN„LV‰GP‡LXŒLUŒDPˆJV‰@H‚@K‚GRŠN[‹<D€=Eƒ=IƒBN<H€IUŒNX‹O[Ž@K†DP„GOŠ@H†JS…T^BN‰@H~IQŒR^U^R\LY‰GQƒUaJV…Yb’R^‘Yf’\c‘WaŒV`“JO…DN€T\‰OXŽXbOX‡BJ‰Q_Š\e‘Vc“@K~QZŠVdV]V`<E|@D‚DP€DP‹QZ†T`”NT‹RZ‘RW\i”GM‡X`Yf•WeŒ^g—_i”ãèÃ��ùIDATx^Q…Žl; KÊ|˜Ï0Ï2ó^¾ÿÿw^'Q¥ª¶[¥)×?VËéÚ�êÛõj×:¬±'DÈ�ú²w›v½ü­ÝþçãåÙnipˆLs/!qàÁéåîòp¸üÓt#'{tµAçÒFƒÜl$“ÍúõûÝÅa…7S)µAk©›Úåî"}=NËT;§µnõ¦N+(% œ†¦¹¹X¿½=JP Ñ4M›:§õ›ü~~^Á“qé?šÊB îÞ„˜¨õ¯éôñ§OÀí© Q€¨z…Æ€(IoÁ5ïÚ% „J°V½Uç=Hç,¥ÊíÕ¨àï5,¸5 Å)Ùµ;JKN,8l_`¿gTK¨ëý$ÁD);‹G(Ëy7úÀ¸àt«”L«µ®“±ÖF/§ÞW£à0.>‹Ú³»÷Ÿ‰Ëukœ{ïG΃F¾¶✜ ×&Œù.êçþ@‰”¥d&DÜé=å1ŽÏ OˆP3ìªA.¢³<«àãÃð.¯²Ì:’tÆ}ߊüíýI×ù"ÏØŸiãÀgŸ£œóa�/Õ_©T”ú¨Ì"ƒ Ÿeùé^Pîà³¹Jýúu^eE>øÌ ª<+Jì!TD¦©šçs¡@TâKNúÊç(xÍáßçWº‚Y+DÌÁmI)뜠e²%LÈûóó¦×»gS²ón—?«EÈàôÇ[¹‘²ÑÆ„ŽÁS2À©Ê²‡˜Ì* {©wËEœ>z?®z9¹Z¨DźRbæ\YŒÌûÐy‚‡PÀ½‰¦ý¼z!„t~¤´£³d B{)ῤ>¡(‹Ù}tß ˜�àm{{÷ ¸¾ø¾ÝXäEž^d±ò@U?�»†èèaëpVPæ³,t]wâxbS¶‡¸œiSO8_4mã¶0Š"/KæÕ—/ ¶-£ J¥S·¼Œm®®nVZø,/à„2J\$BÈéùÓÙTr1£”F4ò7ëGØu]¨¨����IEND®B`‚IMAGE 84 ./arch/system/blank.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEïå‹\§÷F��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 161 ./arch/monster/misc/blob.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���FIDATxÚÝË1 � Ä@õÿN0EØÂNðš¬í=½ä¼¥<<ÁÊH©C]ޏn€Ô‘:Ô­óꨳª£®™|d%üýËÝY@¤Ãÿã����IEND®B`‚IMAGE 157 ./arch/monster/misc/blob.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���BIDATxÚÝÊ1 � Ä@×ÿ?ZP0UD;5p×Ì–÷JÏyf\W“ÁdNædNgƒ\; s2'u ×á,¢.hk€ÿRÛè?¬ä@����IEND®B`‚IMAGE 157 ./arch/monster/misc/blob.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���BIDATxÚåÍÁ� á¶÷èhi™H—ÒV|?•÷Šžóȸ®&ÉdNædN{ƒ¸v@ædNæyxÌyä/¿Õ�Ù•<·M¸|����IEND®B`‚IMAGE 84 ./arch/system/blocked.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���§z=Ú��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_blue.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��ÿŠxÒW��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_cyan.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�ÿÿ\/%��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_darkblue.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��‹Ýgr��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_darkmagenta.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE€�€«÷¥z��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 79 ./arch/system/blocked_gray.111 ‰PNG  ��� IHDR��� ��� ����V%(���IDAT8Och �FŒ*U0R��B�� ­­����IEND®B`‚IMAGE 84 ./arch/system/blocked_green.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�€�œù¥‘��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 93 ./arch/system/blocked_lightgray.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿���IDAT8Oc8@�0Œ*U0ª`¤*��`ð�.n3x����IEND®B`‚IMAGE 84 ./arch/system/blocked_lime.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�ÿ�4^À¨��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_magenta.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿ�ÿ4àæº��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_maroon.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE€��FO&Z��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_olive.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE€€�}̾��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_red.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿ��â 7��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/system/blocked_teal.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�€€qA&±��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 79 ./arch/system/blocked_white.111 ‰PNG  ��� IHDR��� ��� ����V%(���IDAT8OcøO�0Œ*U0ª`¤*��?hü.—~ûe����IEND®B`‚IMAGE 84 ./arch/system/blocked_yellow.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿ�ŠÆôE��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 176 ./arch/misc/blood.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��� ��Ð��öÍ���tRNS�@æØf���UIDATxÚíÏA À0QgîèBZA#ÝtÑUÞJIÐoÇ7Pßþ(*ÙÛ+ŒÆ ¶á‘V‰ÂLèJ J]Œýî}5긿e›'@L)ðÿº�_v+ÝQ|����IEND®B`‚IMAGE 1181 ./arch/ground/blood_sea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTEK VY_[h��dj��l��n��p��r��t��v��x��z��|��~��€��‚��„��†��ˆ��Š��Œ��Ž����’��”��–��˜��š��œ��ž�� ��¢��¤��¦��¨��ª��¬��­¯±³µ·¹»½¿ÁÃÅÇÉËÍÏÑÓÕ×ÙÛÝßáãåçéëíïóõ÷ýþþþþ þþþþþþ þ""þ&&þ22þ44þ>>þFFþHHþNNþXXþrräoþ���bKGD�ˆH��"IDATÁI5�à÷ìW¶Ëµôtu÷l™"")n‘8ó£9Ép@@P¢˜iÒé­¶®rùÙ|£Žr^M-j‹Gš}-ß=v‚l³C?o%¦Q‚2g…NN}C)S7¸) €Ñ…¥½Üˆ~tšñ¦ ÃÀì#'Hä¥ï–° lVÇõÀ&›-šƒnwÀÉ3ø=‡$ÅeùrN¿pœØ¦ã ) Lʵ§ÎÞ^âaC·'“&!žêþìFæ~K¦aßû¨ÌÌôâÇ­w’£UA”æ„þº½÷“[$ú,ÿ³»ù +”A/VI³n­Šˆ•Åò7žÏ¥IEì=„ô4˜Ü*ßœ€È u:@iÊDèÒÖm„fˆ2^½èZðìòÏüΛ®4QEN@É «©kfA4P \œ§Ò7qy¾ÐÐ÷cÝO#eŸŒ”«¯²¡¯û±ëBú|^߯'©¢Ï“€™¬ì"[ì@ Zer¡ý0‰çá/Ž^ÈHBñ™ÿ°ßD¦ÒÌǤIÓ‹º|3ÿ±0ÙöÑV·êí^EîÍ«³?¶1µæø_‚ÌÝSý8‚ß—àc/„…%¡ð{pj‘NÓÉ;‡££T1{ƨt‘Sõ.´¼èúÌR«•¥qÝÅ 2]Yð<0aãÈã*¯à P»g˜Ù•~~ >ªÕµYÿ6_7žY -Ž/:GüáqËÇ©\~±û­¹Ã_wä×ö¼ô&¼½Ã×J�í.aKÓMù®PÛÐ2E@xµ¼œ‹Ÿ"J` ɳþà!p Ðøä‚·ÇФ.äûOÿªà£)Jh|‹UÓà›vß1€N Ø´d¤‰6qì×^©"'�E@ )Ò€‹a*ÄÜ!Òy•wñPsÔý~’F­®‡zÓ¥79~sèa¾TM]3Hr1nŠ(°¸®dl÷Òw ·‚NgYJQ—DèØû]P]w”,¾-»þèBgW6vc”Ùí|W}W¸ýæ<®[¥’–§§&c½˜™í}þlÒ3Ú¬€����IEND®B`‚IMAGE 1184 ./arch/ground/blood_sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��,PLTEQSY_[bdj��l��n��p��r��t��v��x��z��|��~��€��‚��„��†��ˆ��Š��Œ��Ž����’��”��–��˜��š��œ��ž�� ��¢��¤��¦��¨��ª��¬��­¯±³µ·¹»½¿ÁÃÅÇÉËÍÏÑÓÕ×ÙÛÝßáãåçéëïñõ÷ùýþþþ þ þþþþþþ þ&&þ..þ00þ66þ88þBBþFFþRRþXXþbbþhh„on���bKGD�ˆH��"IDATÁéoE�ð÷fÞÎìá=llj›«QRQ8$¤ ‰ÿžð¨T -"±â¸>öœ™Çï‡Ú± ’yÒ³N©¦ò­|xjQÈÎx!$à]‘Î JÛBá ³;ÎîUU:¹,4sP¤ó,cpÝÝà'ÝÜO¨Ðòêvx4 ‹j9> ûÐ_ÆOïî~÷kðÛ&‰iæÛIHŠåD¦7µÿò6Œ/TI#°Ð7éB Ù:cŒˆ“Bû5Ï3k´ƒ$ãpžüs³€ÅŸ{ìâWªÌÿö³-.@HÏfËUdžö*„ „“¿B�`<ç(’b�a¦,Mó©&¢\ññc"% $…r±2;ß‚ _^M�àè:}×JSø˜eä G‡&ñÜ× Ça0Þ;-‘ütšÈ«8¶ƒw¤„«;•oäà‚¯÷$ÔÕê^ö‡DZŠuºm:R€Îg:`É¥VÕžçÏûd¤«Ì·BYÃx…`�Y*i¡?ÝžÝÜõÖ‘PEäúÎ9óYF\FŸ¶FÅXÝë¯ýæÑ#Î*ñ² ªŠ›ïðÞ¦ß<wc€‘ô ¦ÀŒRd�5þD£…#¥†[oÇȳŸ ºˆýp-¥³”¡åÐ4]³áê[ü0è5¿ Ìfë^:-•ÞÍʸÜüç�ešÝg'Ëj•ýn”¢£øæš&„;M‘Š"”NÊpûÀîNþp¢Å÷Ø<oŠåû#åÜ2fÕ‚ mþ íøîC]ë4ªŠVÈ.Œ=pàà…V(q}v5¿0%@qÐËñ`ÛÀ<IòHé<ôÂzF¥.æÏÿîê¡u‚Š, Ë`ñ]0ÊÜÕ"!�J2=œ5zŠôœ0xœ´}p‘šˆ´wcGXÒ94Mq²¾Ë•Ü C<©d_·nÒ)ÛÖŸöà[ÌÙIH«Ø™Ú»DZXÓü6 v·Ã¯l{ ’‹däÑèltCÏ ýÕl[i¼†Ù}¶=:o(SeÖ5ÀËöÓÝêüu‡ç…²ÇNÄq.˧Mã¸õùÅÙ¾~‚þÂmÓ”7¥âf����IEND®B`‚IMAGE 1165 ./arch/ground/blood_sea.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��#PLTEVY_[bh��dj��l��n��p��r��t��v��x��z��|��~��€��‚��„��†��ˆ��Š��Œ��Ž����’��”��–��˜��š��œ��ž�� ��¢��¤��¦��¨��ª��¬��­¯±³µ·¹»½¿ÁÃÅÇÉËÍÏÑÓÕÙÛÝßáãåçéëíïñóõ÷ùûþþþþ þ þþþþþþ""þ((þ,,þ66þ@@þBBþjjI…Ø���bKGD�ˆH��IDATÁIoE�à÷ª^WU¯Ó=3±ãˆ’ø€„”p'~<âÂHHH ¢$Ʊg<Koµ߇Y‚d™*Ë…²“).Úÿ>É…Fž®?à+Ô_½,êJÌX“Nð`J¬ž7 W‘‡)1™×ò½w‹ÅÍó¦4»¿+ÉàŸúêÉí§Z©²Ç7½ûñ*}ù×ÎÏ.þÆŸÚ£Ûß)B¨Or°~“×›¤DÑi('|7Þº"Ëœ”µ2Çí­9Të O`&(éD7<u«oà~’E ~Æ«À³Üeµh†‡^"�0ôeÆòré &΀Ç0†ÆÌz^2\H•´Ë;—ŠhÎð ^€ñ!ÅüåÛ„7r8ØŒòºd\â²–ÐO‡O!X`¯A“#‡Õ’Ûqò 0Õ«ÇÇaJ—ŽB¼¬÷[ ;DeÙtãv–¼I+?á äS¶\žîÿÚRVtì]&�²SùÞCâ &s†Y¨mÀ€Iä™ ‚·\áë æ‡™ƒÑµ?\›ß6Ì%Qg<F0ßãkã-{©·ý uê ÆÑ{ ™ªŠš¤ û!†5Ük|:†ˆª+º¸íÌ$]½‹ÓáÍsóûC:$äâ‚ös·Ú~þXÝéŠ~Û^5æÓ­T‹bØ8ƒ €›Z–ªÒâžvóÀJÏ[ áx0’ ]Ç9Ú5üB¤Û§‡±£¢rùåþ=³“S‚¸í›ªšì¯xc½ ç­4ðFÔ|³R ÚIJÚ… 0è)dƒ§Ü€Ï豉¥ÏYc,лåݾ•¸‘ä«Ð[#TÀ<)^û¯\` œU,f\¿="žˬgYU‘÷,ðºTpÙžxwIÇÝý9 .èxDZt~ª?L&&ePÅÈáIݸÙhLÞƒD‹°TA‡0òŸEŠ\ïF÷‰EÈ*Ih@Ð<í«¸rÃòÜ ‘ÖÙ¾ŽróøõSî±$I9g)JÅ!èÞ&Ô‰5ggëwð�ÿÉ•O \����IEND®B`‚IMAGE 1158 ./arch/ground/blood_sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE6< K SY[bdj��l��n��p��r��t��v��x��z��|��~��€��‚��„��†��ˆ��Š��Œ��Ž����’��”��–��˜��š��œ��ž�� ��¢��¤��¦��¨��ª��¬��­¯±³µ·¹»½¿ÁÃÅÇÉËÍÏÑÓÕ×ÙÛÝßáãåçéëñó÷ùûýþþþþ þþþþþ þ&&þ**þ,,þHHþRRþ\\®£4���bKGD�ˆH��IDATÁ[o5�àsìã±çždÓ;M¥¶I©‚¼”GþÿT©¢U&jÒMvwvvf|;6߇&ƒ|T­÷@ý³nYÇê2üµéõ'¯zôÜYü1†HÕɱšÜŒŽúfûy›‹GG§$Màý ZUuS;(H´u™|ÕÇ'—ö¿-V¢.D®/h\kíŲ«§åíþx©^mÇwûÙE)$ˆª6mö)lÒEL…"óÔyšf‡ÄŠrœg ÖDëÊNe뤪겾“E~"&®4 ¶6òìþ̓ñz—1ÏÞþ\ã³\ÌÎA¦,ºbŒØAIzô­Ó@ÀŽ´&Êëiñ#gNÞTnßQŒØB­…¬b:ª Ú;Þ\7…Ï‘I>n®üÁO{®Ñ´• ~ñÂ%jOq Ö±Ï(+IÉ‚ð1-Cô‡ñଟC{ZSBÉâÊlÈÏ—/Ã7,DæçOooÆ$L³â-Ù—Åqk§ÝVY6h#’´^»÷ $›œ‚³¾{xö|±ž97QZU¾/KIøN«›¯Ùž^¼Ö÷Âæ ª©zJËþqÎÊwnæ¬H%,ìJï]ì;ª*vâÃ.~ÆÍfðàY6gFêÆâ$éxw{ñ7ÿþ¶¦W|ŸFõ¨ü8ȶ=yq”|±Ò4Ç µã?ÛX¡iªUÚ{‰ýDÎF<U¤k: ßÀOuÆ¢èzišü—ÙáO- ûlLS5þã)†©©X™á6ãC`½–H’U“Ö³, Ï, röDò0ù/3ƒðÑqÙÚ€rrѨB8ø³¸&ÎE”gþŠd À‘¨ÉBÅü˜w¸¢‘kS‰eMR„ªÀVį£ÛR—¬WFÉ)H4 ÅqŒW�™.ÚPá¹6'zóm`Î5m—‹Ð·~[Šû…ðí]�à}˜ö €�êÐZ`i$„'¯x’oˆ!‡”¥RMWë\¶RǘbÞ 6ãã%kº)8@]1íÃLìÁ§öü<¿¿FÐtTg†lº‰·w™YHêŸuüõ3 ümeÛÜQ€p����IEND®B`‚IMAGE 4487 ./arch/ground/smooth/blood_sea_S.111 ‰PNG  ��� IHDR������@���[a?��>PLTEÿÿÿ€��ˆ��–��‚��Ž��ž��Œ��r����z��˜��œ��x�� ��¢��¤��¦��ª��­±·Õ„��¨��Š��|��~��t��’��”��¬��n��¯»µš��¹†��½¿ÅÇÉÏl��ÛéÍËÁÃj��Ùp��Ýßá³ëïó×þv��VY_åÓí[h��÷ýdþþ þþ þ>>ãÑþ""þçþþñþ&&þ þppþFFþNNõþ@@þrrùþþHHþ22þXXþnnþ44þK T¿@���tRNS�@æØf��÷IDATx^Ì™ÕvëL¶FU(f23c˜³‘~„î>Lïÿ§J²³³Ée+7½ngæúÖWIF2†%Ѽ~ú¬5WD¼úHwûêþçßfÆ \wå÷GÏã¹"âùÉ·}/žÿÏÛ_ú§è/1[©OÀ›“èl¯o•ú•Ae>oÍŸý_ åJUÀó“S¾!?á‚|!ß®¿€?<_ÐOð>Â|Ÿ OÌ]úKmR:"F×o¯Æ~×iªOž˜�¼o]NF"žŸœðáÊïgD'\/⣭úËúÈÏí' ÞG£øßímûKáÙY¿Û-E|ߨ9½Šº‡M±|pp2¼9‰oˆæ¬ü_<;_ÌñVýƒüw*œ/I‚ü[~°ñ}ØœŸ¿_Ü_Š­óOŸ=›nâkPBºå¹í¶¸¤òF;üÇÛ¨™ø%ÛBªÓÍ⢔úž›™Ï¸`?çâ|q‡näyý¥{ù?Êóoß¿é}R°¡^ÀVý¥½Îõ—u¬|þ#¸ü:G.Õ€[ùB¨¶÷^Þâêìßÿã>lÊf|å$‡ ößæk+#_Ðÿ/žŸÏ·îŸ¡ççkßïÿËÍJn¤üGÕ?/a«þÒgˆH ciÛY\S$ƒ| 1hX†µ¶ÿjÅ-/|t%øt5rÎOVù +‹s)ê§üÿ†—ÎNÄýë2fùï/í6«ûy~ ³„”çØ·ú7r#¶é/� H…`(ËQçÅUäËo–Jm¯;ÝAfÔI9f>!e8028gBöþ_ÈÚOø5åå8ß_®«<ÿ¡ýwôØû$ýy>ÁYBÊsý›þùÛô— ±ü‹ \ìÓöE@ªÛu\÷†ÓƒBÔ‹CïDòüÄÏ8O„ûû»á(õWù÷eÆ9öW /àùèAýwÖûëûU£ÙÏž|ãçglÓ_z®”ÝÀÅ>Ñ)¥ÍÉñ¨ä8rEÕö«mD¬µÓü\¨×3š“ óT¸³ÿØ‚¤~šŸÀø˜ùÂþªnðüèaýwÔnݯ"#[Hx~òÚß²EIõK6”ŠZòl¨êºNà{ÝÛòwa¿íAUƒªï¹rM¥Þ}qpsÚ­ývÉ ¢ý õÓü¬b «‘RÉNò݇õßQ{¹·î_*Ѥd^ÿÜYûR¶è/„ê±" £zEÁ²0:µƒéÕVž§\1+çcÈÍûãæíC)ÝÿÛoËhÒ\ùi~æûa |€u~i<~Hÿ­õýïbòúçÎÊ×7ÄlÑ_ª›ÕêÀ»–Š:ì^ÿúîëÄCàèl¥)�ÄXS{õú“j¸WŸß}½'pŽ~ÔØþöòÜ}2¿ñy~NK`Ö™/îŸæŸOÒGëûý<?½_Ð?›×‘²©œ¸¿¤(F-;RÑQM£]vTþñ@­†‰ím¥¤1ÓTE_^`e~WØ›‚ŠÙºã±ý6r¯§®}–ÿ2;c 4æ‹ûó|ÙlÍ õWÒþ;Z7÷Ÿ$ý—™BÚ?¿fæ§lÓ_‚ªëa(Kõ¼vÎ~úß±£™Jm§A=.÷.,Äò½ ìsÿŽÀ¹{or'}‚ñÚW˪çÙ©/˜4?|ùÓÏc§HÿrÚ7 ãÁª¿ÉûºŸ÷‡ê&.î/-ÞýyÐ =*œG?0¿n‡õ§ :»T·Ô^è-ô\¸\$>¢!zzGP�bü¾j*O[ã•_~½c~Î3s_ÜÿCÒ¿£?UŠôR'çõê~õãï¯sÿ¿ï @t¿î–¯=þ3—'¾hÇ þëê›Tp.\î/g!=¹²õ)˜Ú”Rï¢ä{<¿§–0u)µýûjMyöúÍ‘S›ó$?;ÃI|Á¬ògˆ”{è¿‹¢<{Îï_õw<?Çw…÷SÛ M\Ü_ZœÎK;Tp‹Ä^xº›[k•ZMQ4Ùí/¢Ùa‡û.½û}niÐμKƒq…éŠFèˆçgG´R_0·òÕráþí]”÷ßïwûÑiâ2ñý¬tºs_4†²,œá…¡ªP~òÚ$;h hXáò㧆ü”«¯ï §ÏøÇLTSÿçOÿd÷çd¤¾`x>°^}nÊòÉQ¡þîò|/Ç€õýÓ÷gï—!ïOü_ ì/AŒ%ËœKr™_›·vò܃åãn·Iá §»6÷ïËwÝ®O3åi¤¾G!FzNDê &É·ž¼©Í=˜½ìéÏÞoka8ïurÃ]>î¶Ùýqâϳ6ˆîOûoJ ¨°@í¤þãc¤K§¦4:WgºÞÜÍógf¹¶ºÎ¿€=³[ͶÕ^ê;uSi ó2_Ü¿Ïó‘{x5)E;÷¯ïò~:¢¶j¯Éû—lb®üÌ‚û¹_S6ʼnûKWڿǹ\ì#Uy7¯ÿ¾£8=[\.åi>(]Ý—¿È¿dË86¸)¿XvÉ‹H|qÿ:Ïÿýïý1±ƒŸþÈ®ýùû5·ØþÏA*Æ1ž/®X¿e'õ¯³„ûýúãÎû\ 7ŠûKýél6mKEg8ÝÛ‹&mî*–1&Fà §ÓY4iªY‚ªëVŽM`ÒkXCv>¹¾`Âéþ,Úoª22üÉùxtÜÞ;öw韼Ÿ§n!´÷“aL£vÉ!ıj÷£©'g~¬¯ÿdø­}CŠ §3Ý)î/‘î«_ÿÐ¥Â#w_üú™ÚÎîfªá+æ—2•`œ#Ç�˰ 1àù äû‚©w“|Û.ùM¿Tê¾:îòNýùû•ì’HðØvßï¼:/)Ç .Ã: É×§ÔôýïÅËqâÜíßæ~,Ë*�$|±!TÜ_Ø?;–ŠˆKç‹ ÑØÝìat¡Wxþ¢­g êEä®CRPa~NÀ žøâþQ»Ñ ¶íEgÆ€Õý.ˆýãE»¡R{£Ð0,Ç‹N&0ÄíŒ<ÄúÓ´·¡ö,–ÿ5X¾w0Êê¿@ &*LK¡¤(·ÏrS¹/šoC4�Rñ‰†Æ�€B [–ÐH–�dw˜'ST9Äêõ¼„kÜßà�T¡Õ‰V!=ê4ÃÉxXÚ¶ÄKþ~ J˜ßÈ0�Ðéô&P{=ËcûCÏ@U´?Ö€ìt†©©ˆºÍp<mÖïÞý@¨g¹Ü/q^%nêçä&¾hf#ÆúPc p•†Ý°Ãó10Kè´ƒQžl¨: ƒ°óh¨rîïqŸíÏbå~;ìÏF$ÆBñ{�«¶ëyn;°×\äg#Äïg¾edüpƒ4,‹j@eë›v³kÛ” ½$û!¶Ehð|'–ÒûoUÖ4Ä0»¯k¯xØIöÿøþ¥v×Iúq_ͧߢÑЖ ÏÏ™O ©®^}fù‘q–à†W¿æÚzÝu;̳¿Àãþ§ÇÇ£‘ 0µÛpÚ®ëž7äù§£­`\1+e@íŠb£ÅŠ‹|Î#ææ×Ì2¦Nâ{œK©8¤UÎ5(Mù1ã=Ïíp¾õi²_+3n*šœú½Õý«DP3 Nxº_¯3Îïgý?éÅóa£“ÞÏ}ñwjoZU©ðøD;*è_¿{»è¸Ädùã(Kx÷ö´“kÓ—×oú>1Z™{×Ü÷ʬ>ŒB˜+S:eþiÇ…i~Ç�𦠀V®3¼æb߃œ£¡SÃÜÇšiV!Ý{û6É7NÒýЦÁŠÕfjÕAñÄg÷3¦<Ö`í7Oï÷Ë<6á5SƒÕ T±¦™UÀö¿ã÷¾ŸsÞŠç«ë~‰/‰ÔæóVÅ”ŠN¥5Ÿ×*…Ôà<:´@«Õš›&Ê·sm„ç&V’ŸÝì"Ý?oµØ~×¥–ø4Ú.‚5¥UÁòÑÈ ŸTjœSÆ{Œ;¯¹Àgœ¿ß‰YC¶ÛsÝÀ×e£]ê1~TÝ4?áªãRƽd?bûÙ£çÜOÞ¯¦z.u¼ ‰ áÛéþÕýJ‹ñ$ßi2_N|Si™ }þè ݯ1î°~>Ï÷4¸ñmI4جÍÑéL*:ÀlÍÑ¢ˆi}ù² clÎ[úé$K`ü"Þèí¬)s}‘·¿s~¤ŸÎt€J½ñùÄW!©£é¸b}ùÛ2Ä1ËG§V«eêMÎǾ>¸á¿|ƱÙj1n êMcqíMLãË¿ð|ñÅžAª¦JÝ óu¢r¾òùýh±§3^¦î>ç+?¹`“qv_ºr:ñaüÛ¡i±ý!÷ÙýS]åýx¾jÚ/}?Ñàz÷€(Rá‰ëÑŠ˜ô¹©(-¬‡r-‡›Jk“_1•vGÖò}vÛ¯•uÏŸ].ÏÛ¨îô ¹e5Œg5ž_‡² HÏó¿].O§ÔZsÏ9Ëg>ãn0[.O„ʸÑ<txþšË=7Ø[^rŸö,ù5èó•ÏÞOƒŒG,¿‰T§×“æ'ýO’ûìg~Àò©tÁyí$ͯUdäù{¿'ù6Mû¥ýÿ¿3èM"ˆâø›ZtÁv+àºYA™Ú¬ šR·[¢XàP+cŒßÿ 8³\wÞ›ÌÄ”˜÷»þòò³·=¼?PÌfó!vENÜ÷Ë«ÙbˆÝ·[äK·üe‘oÞùI{«~� œ©|™ÍôûÏÜó‹ý3pbûþ+µÿóÒìú$~Oܷפ”A­|Þî>?Ëá–ñ^EåÆü}µŸM~­ N¨¿Ç§2“ÆùØ"(÷ü$Qï­j£ÜÛô4«Å}ºã~¯Y-Qn­îÓ;U5ïšÚ«ýóê/šÎ¯øåw›ú,òÕ÷Îù=ý~•oêw°é˜ŒVú>Ý奘ä«4*·v÷ù£Q Î\¶Š|ÓþËLØôt]ßA+Z›óÁ&_Ïû¼?O£c“§¿?$áts ®L;I˜oLÖæ>=©OÁÝO›÷¿žÚõxä'õ™·È¯ç¯|t›~€týܹ駈µ¸O€7ƒtýñt~úÁçýë>>O÷D×^ßÿ5•ÿ¿s€{p·ÄÏÀÝpç0 Ã0 Ã0 Ã0 Ã0 Ã0 Ã0 Ã0 Ã0 Ã0Ìqäçœï È~ÊWq@úX˜,¾½?=;L£Þ}ïãöÛû}@ ý;ÏyÝŸ ¨ýþ™‡Ý¥¸'=áõü‹fï/hP>Ñþ•Ñwðyí—Ù~yÿ²±¿ý<ì0'o¦§ˆn¢ ÜŸ÷ûC¼¿€ôRûCjõYyÿAtì‡îo?»KqïáÚ‹ø0@û (/´?§æ1ß6ôàûùûPùI ;Ë8œ·Û‡?Zh0ooûÐþ‚­¯!w'ÝJPsžßÞï‹.ô~ÈüœðÄ|¨çå_9Y²Ì¤����IEND®B`‚IMAGE 4816 ./arch/ground/smooth/blood_sea_S.112 ‰PNG  ��� IHDR������@���[a?��2PLTE�utˆ��–��z��|��€��‚��„��†��r��Š��Ž����”��x��˜��œ��ž��¢��¤��¦��ª��¬��­¯±š��½¨��·d’�� ��t��³µŒ��¹»l��¿ÁÃÇÍÓÛéÅÕ_Ëv��ÏÑn��p��Ùj��Ýßã~��ïábYåçÉë×ñùþþ þ þVþ÷Sýþþþ þ..þFFþXXþbbQþþþhhþRRþBBõþ&&ûþ00þ66þ88µKñê���tRNS�@æØf��LIDATx^ìœe“äFº…•™bf*d†f†a3ï^„ÿÿî›RõTOK*©ÊwûáføƒÃO<yÎÉèpDO¹Ì”«£G£ÑÜ2ÞR­h`¹Óÿþõ­ÓWZ/.:„”ñ‚ج_Â÷Íÿÿý%Çîë:¯zó2þl6tœq£ac'„Ó¥£?”àxZÆ‹r3~ ß7ÿŸt?÷ϲŸqºN_áa ?ûî»Õëz蛚&úóÑèH²VU+ã…ÁOüþo~åýïÿÒýÀ·ïí¹ŸavÛÏèDD,qnæeÜ@Gg?¬zƒ�!™ïÍZª2ÿ·Œ?õKø¾ù•÷ã¿tÆšÛÛeªP¾¶«ïgüåòÐÓE„·sEÃÞx`¦í ƽZË£ft¿Z†%<* þÚGx+ß?¿ê~ ÿ•û3¾ú4WÞa“Pu?s||zÙ ª&oç*B¼ê,¯jÓ^è!]â¦û·ÿúTÆ ƒ×<“ŸË÷ϯ¼ñÿ'û¼íùYÿi®¾Ãþ܈Šû™H0U ⾯œëÏןþ¢£zoÁ0µE=õŠÃÀ;üšßO‡‡^QnÂÁ/̧|ÛýYžh™üŠûÁ/æû3ýž¸ÅùOû‹Ü¶÷Ù€üý¹÷3ÏË/ÞóÇ�iuËðñ:¥HH}þ_¾»ñ7üõeK‘eĦ_”ŸòâûŸò/b&¿Ò~<}ù'÷çùùÙþsÃËýüeÕö3HTãv;Æ…¼DO|Ée{µ·ó¨-güúµ7byT¤S~Å!ç§¼øþ¯y뱚É/ÙoXÑ,¹Âþ4?wÿÏ÷´¿gÄ5/ð•_°¬Ú~æsÊ+F®æ«*Ü.|WåE…cÃWomçyNži G“S±8?å Ý¿ñgì4_¬¸_«ÝÎý?·¿ºó,Ó?GXóò÷S Rªíg´vÐ $dàJ~¾kYAÔu‚hr{=™žNBKÙ¢Q®"È­Âü„£DȽãC~V‡|ÄTiÿ‰bº–=ü™ý;8Oû!áÅý¿øNXRm?C´Ø’%A)ÀÕüŽØwÂ^½mÛ^£Ñ Ãåeˆ·jÀÏq„+ÎO¸°²÷o|šŸÕ)×Á¯Òÿ‚‡þQØþ3û«+A¦¿Äå÷çŠûñ•¢‡®¶Ÿ‰õ;Q=øé—\Åç•éO¿|8 äfSâD4˜ÛH"%átÄIª…‹ó×Q­øAxrÿÆOó³:p~•ý´ÿ·§.ôßÿÊ“þ—»xgKÿß’î bªígˆŽíðÔó pß O}ïØ"£‘DdúÇnTªa Ì9B:D7 ò³º¾Qßïn|š¿ÈK8žð«ì¾w`±ÐÿýÕqNÿŸòmý|Ötòsªígľ¡¶ù²ˆ—û˜ú‡?üýc›\°¢3Ÿ‡¸‚‡ƒÆjÞp´-ù«ù ­>R6÷+вñ±jÖsì v ~…ýŠ ù?|þèIßwõ÷›eúçû”oëŸú*/â‚Õö3§ï?L°Ø² p¹ÿݧ‰†Z¶ƒš/¬ÿ|7F:[Ék®ˆj¡Û-ù¤e£ÕWRzÿH2Ãÿi‚QÎýWÏ%êWÙý­ºLû¿칿úûeúœh°ßSžÀ·öOýÕâÃÇI~PµýLäzÞø·û½ÿ 9ž?þíÝ¥ƒUUàΥѨSÉI"6Z±»%cl¸O4¸_¿ºj>o~ñmšŸ•ÏS¿Â~¿öÛýa·ZˆHçûí¯þ~™þ®€èà§KEmk꫆€ŸŸ„*íg¯O§S'3{ž·‰ïÃ�«ü Gt©¢Ø'’®ºƒ-ùQÜÁSM—šMÔ;üZ=+ý»Ä/ß¿€üpܰ̎%{ì¯þ~—é¿¿»~æ}¶÷O|g°<<- «´ŸùØèZ†‚ZÌžçC£kXn±G’ôâû»å²²iVŸ~ü¸%°úû3Z‹SjC󄘩ù––#ÃNüÒý=ÈW…}¡_üñýÝÛekýÐÿ®Šð={¹ÌôMMé÷ï^<Lø«½½?øÀ?|v‹Ò*íg2âzOm3{a³ÞSÜéâÍq¿ƒúó°´ ó7€g¬8<î©Hógï_¥~^ÀñûÄ/ßÓþÎt±ª)'ÈpÿîûÕö¸\+Ï£l |w|ùU+arús<RÌu�õ#ßUù¸0°Ê~F¿BöÍçEÈìyø×ŸOÃÆìz†ÈNêuÝ ¬-ùÏêuÏÊj^cਗ਼Ûk$>¹Rê7y½Fâ—÷!úO¯Çˆ ÅpüÁÀÝm?ôeBr¿¨öÓþbýæóaN ”3Ùþˆp*v¼4�ü ðbØ_Ye?³œÖmöùH-ÀåþAÝæŽ®ÔûßÿåÇÝ¥ç/oÀs43æyÞl,oÀ÷.§¶Åå\¦~ɹ×mòâJ}÷û¿üím{¶ŠuÎ4ÅÝöCåÝï[„æ•úïð>om¸Ÿð_õßbŸ7)ÿi¹ÞgÇ ó´ÿO×Îì%Öy“PÿørܶŠb«ìgÎBSøÐøŠoÈBCG»»šU÷Šó¤µ/Gó°†UE–yêŸu @¡_rŽú÷q}¶<>^Ô†Î|<Sö~Ô7 „®!|èj:2½Ùrv|Zklú›t—úXï.Í?«Õ<¬jš,3Oû;À‹!px-ðÍ©{¯ ÷¯ý²#wW?ÿb™æ¾?ýÄ·â}|®8_dÄqyž"#å…„‹Ý—?ÿÒPà÷·W�¾eÄíz½× j×g]W–”gül¿´ÛÀà‡_¤ùÉý¦·='ìÃgg‘û¸¿Lû;f[à¿9 ]EAÇ?íŸðÞõ"tU!ðE™'´ÿÖýLÙ!J÷åõØÙû€Uz7·Ó½|„ý[œž'rHs]¸«¢†Ïn&� |èw{›IVۉ﫬ýo¦ulØAw¹Š%^ŸãÖÜU?Û|Óþ“ºÇAãÙÊzHØp¹÷êfâ`G=¸ÿ‚ST~Ó_üî«åƒc+èÁ+¸Úöíuÿ‡L+�ß’8E¡|CH¸ÜƒýŽö¥›¢"ê»kŸ);Ç ,ŠR|f¿óºžßËWŬçs Ï5ç5ÇT€kfmÞ0 È÷sèÇñHssó)ÃÔ¦¾¨P_C0@qCC'*ƪN×÷§>*ð¯ûó*õ;¬‚1¶¢ƒÅýůaAàDÅ7LU [ádÝ_LúcÁ~w84OXÅ€ühý eÝýÎxˆÓ~ôþ1øDKüaÚPŽSßL}°Kμ¡"Äqvrq¹ßU‘@ýÍÉýý¢7(ÌŒ|D?¶=o0Iø¼«üwSã5§ûxdئ‰(p}¯6ö¨¿Jxƒö‘ÖN°e·¯V{|¿*äùnÒ¯W[÷M'õÛÀÇzš?‹€ö™–Àoþxl§ù‡É~Aà¯ó×÷?ø]•þú'¦ýT˱<ÈwèýïV”§ïýÖù–ë×ùLÙ±‡÷g '‹³×q†kw3jÃva¾æzõZ¯«†ãÐÑœ ^k´ÔÏÔ�¿¼?UX^æ:¬L°Çwt‡5ðí0€û)?Ó/²$ᬤ#ÜS¾Ý7€?ôoq¼HN圤‹ZòÔ·‡À1‹DV" Ñ|^ÒûZÚ?¬À§ù +ˆ ¦ùà'ýÖý‡”ÃýœÎÊz쳂Œu>í_OߟöÓ‘Ž=z?~ð3e‡íœKržÅìuN:£ÄvƒWŸ¾}3µ óƒÕ§oßÍ èw}êßÏ,V:—NDšžã¿™µÙóóI "¿-ð<‘UÄðÃWŸ¿}7m³£séyƒÈâ€s”ÃßPþàò|%|Ò†þççÈïE6Ò á9"·xz?J}ký>ÀááZžÓåâô¤ÿgØý(÷¾¾Nó1"pÝÿä<Ù7LDÍG-aíÃûÐûÏ¥OûA,åj ±©Ÿ¾_Ù lq4‚ Ñ Ÿ—ûrâ7v9âϬñ¼(_çI83‡¯óåŽN8àVm8Ô!�¹~Dygû‚À÷<Å¡ àÓ|s|¸ùðÀêÇ¡#Ê|”çwÒ~àÛ¢ùÀ½Ðóî�×S^›Gð>Mà½FàûÀûq`ãôþÔ÷ä4¿žïÇ}3°cNïHiÿãtß½?ð<x˜øÇùÀÓ÷“Fi¸$ý¤Ìû™<¿[Ü÷þ-@Ö©?0võÝfýðþ5Šòfý ¸\ ÷êÿÉà³g¯†&“çÿÚ웯j¦ªŠå<›’êÕS.ˆ4ÿUÍÀŠ€,ïõõ,À¢‚dàkŸÍõ”§ýî«¡ÑRyà3à¸ÜHýJß§œCÀ—à‹îwŸ§ûy–æ7Ì–"‚L9RxTKûÒ}«†‰UA~ ¼8GõËt?øI?¾Oï_÷«mÞ¯ä Ûo W’°ï�rBêïúiR«öòÀ•$ÂäŸ�gÙBxç„°¨Ú‚”ïŸ�§ûÄ àApúfuëcÇ*é´z·î !¼lC ú»Áéjub%ŽÊ|§À§\byÔN÷c?:]½y<Æê¿C}G¸ÒEì_=‹À·4àé>Â+ø#]À~’ii?µ–úé¾ oyÁ<í‡cð1¼_Ê¡?Oû¹Ñò#¼ñÓ÷«ôýx©øûñ%ßo×S_/ü~û?(_ÁüEsÔéê7/2ùJ IM霭”ßéš³ãþ– F£4ÿö[ùö7é~ÈßõÓ8ÌŸÃ~æ7éû;ÙýôŸWúÿHœL˜]Ïúûçí>¡þAÑ÷ÿÿQùD:úF ΦÒ%±•ç7_È•òY]ÄÁl÷ýÏÿ£³)øþa†7¿^š遼°{~ó…-¦6Ò!?Êú££od>ýßvΧ·i ˆâ»µwãØŽ¡ml%!(m êò'D!òB*âTq@!Ä÷ÿ x׿æÝ1»²ìÃü®OÏof¯Ö›&÷Wä¿Ù–ýô¤ðÓ?ÐO·Î¿ÚçëÅh¼œ{^çOG`¾˜ŸS“üaœ¯ÂpœÌþm|½ -òá÷ßïǸbÿu£û�ê:5TaÊ~z4 Î°Î¿z{ùa™ï0êFµþÐ~æ ?‹bƒüEè_ÈüÀ­÷‡‹&ûG,0ʯ¾/ÞωÆuþ†÷v»ìdH‰ ¢žþ´ÞŸ ½Åü$¿ON÷Y6Qøó{0¹¹È&ŽQþ2?¼KS??Àû§›Ì4ŸÈû�»"?ª÷7»ðúÍÍÜ!FýóÏÏ ÿÄQê·-çß~~‹üK1dž/üé°^¿k_¼_6#îä}€,›¿2ߟ¤ƒã€CÖ›Iá•þivÒjþã›Yêéòof`>=>CD?ŸÞ ,ö/ü!¸¿f?ñþÌ"ŸpÆ|bŒÏ9ã¾F§­æË~¾ÎOäs›|Ê]j·¿;°ÚŸsÏ"~"ØN­ç‡VùÌ2ŸSßnîÛíÏ«|Îý;�AAAAAAA诃ývH'¢_ß.çv:#€~éKàû=Föç-ô¤‰ß ˆ–õäèT;:äw‚3­Ÿô—²_ߦîÉ~ÿ=J‰šîôò> ÏaýHû}Ò[ªþ½Z_ëõ ÿëÿŸÉ~?QÑ™¾[ëç«æýK½Ÿô–Q,ûë-ê©ì×W÷Tt¦W÷ ôúÊNïÓ[ ¿n­_‘ýþ·O¶â~€ŠŽt9Ÿ˜_«´Óåûô¦ï¯GÐ+?ôýô/ûûDAg:sNÅ|vúô“¾2úëƒþªÿï^Éûªú{gz5Ÿ¥îétù>=eqôÿ!} ûe¿ß—÷BEPWúôp)ç3Õ ì—ïók.ÁX•ñ����IEND®B`‚IMAGE 6372 ./arch/ground/smooth/blood_sea_S.113 ‰PNG  ��� IHDR������@���[a?��5PLTEtonˆ��Ž����–��z��„��v��Š��x��‚��”��€��˜��ž�� ��¢��¤��¦��ª��­¯·¨��~��n��š��œ��p��r��†��t��dŒ��j��¬��l��’��±³µ|��»¿ÅÉÍËÇÙÃ_h��½YÏÑÓÕÁÛßáïñ¹ãåéë[bóõ÷ùûþþþçÝþ þ þþþþ((þ66þ@@þþVþ&&íþ""×þBBþjj��þLLþ,,þ>>±zð���tRNS�@æØf��]IDATx^̛ՒãÚ’†µHÌddf(dhfØ afÞÿ&—d—I.¹ªãìØyÕ_|ùç¿nêÂ-!mªõ\³Y?y]BV?O ³ýòË…¡g‹¯K•£Š=Bi<)s—ŸÂŸ”ÿ_îÿŸ'çÿIú ǃ@e¨Ð_Mi|ppÙðòF>w(©½bµšÓ aOÊÜå§ð'åÿ—ûwŸœÿ·?G¡àµµÃÁéíû4þjâÎÁäóÿ>·$V=9<Ìxž™Âí¤Ì~ ÿÆüôþ·ãG÷wŸœÿæOÒ_ðl‚ ²Fô¯i\*ÓÆå$8š"»ù×oÏm*N?…i<)s‡ŸÂ¿5?µŸJÿ þ0ÿóÛõŸ£¿0ùûéЕDLÒ8ñ.^¾üî¼q< |S—à¹ÂLæ ó0?ö’2“ý•Ðmþíù©ýüÙË?¦? “zúîþþØ_ -*ëš™Æ3¦fe‚³›·ïÆyR¨aMk ç_>Ìÿò2)3Ñ_ ÝâßžŸÞüîÓ_0j5Móvõ/ìØ/»óA›çó€Gôò=¬³4.8ß÷jbÍ—ƒÛÛKËò»ç/¿ÿÔ.=È¿”¤Ì$=u‹{~z¿Ðk=®ÿç§æmË×ûÑ%MîW‹ØŽþ½Í„½û Ñ\ÏLã¦#™áó‘UÖ4Ji¾ ÕõÁô!.“Y¶ýÍØuþíùéýÔ,vnÕ¿õÄ| cnô#+8±ß&÷ßÎØ·¿`…†ë¥ðŒÒk"ò=“R¤+¬¦ªŒæ)M㉡[¾³›¶?™ ÂŽüô~Ha¿÷˜þÒSûëJv«Zbî?Ä…-îmgìÛ_`È ¦™Æ±H»¾7èû7Ï­VKæ%™R)ŸI¥‡¸xV)%†®ùÉùK¾w~,&æ§÷ˇ¾ÙnÑŸ=±Òýz~‰“øÚ‚mž²g!Zj¡¹¤£|g4>F³·Ÿ?¿8ëlŒT©Âô¹ÄÄäÔ ?!~É÷Î_¨Iùiýhw2Ÿ&›|kœ/DNê¿bîÌÿ”p!¼Ç ý67lðJR±=û †XNÊ–âÍl¶,6Nÿ9êX¥ .^¾:¨®Š2ÚÍ UE²¼#vÝ—¶s|ÿü{51?¥_MÍœ_À~J“øºù1Ûê¿ '%>|ÿV¿„ë~.©Xjÿåß#Ejm]xh†®Žqóä¤^Bæ³ï†Æ-‚ã¾”U*dþ@lì¦Î})HˆœsAHÞ¿ôç|iÞsŤjZÿØØ*¢Ñ~l ûÏzÿý£¿uɇ÷¿××û¥¾Ÿ’U”¤÷Û³¿€P^&þÕ—ç÷üòÕìå*•xm•X¹ŒÈqìËù2éÌ6¸:àO }|Dü¤È˜ BÒ~È_ú1_Š/WSRûóüôÏWø~ì´5aÏÙì¿—àu‰R\¿‘`öå…ÉæÂz¿±Kåkµ¤÷Û³¿€k5½Îð`–Öt<0X‘e5ߦ˜yÃ9žû¤W•p8[ra¯q¯M0øzŽá!æ�âý›ùK?æK1âùLø<t(Nï>“×ç|¿RÖ<× û5Øè¿…û­ûáýŸ]œŒXXï·#vů©9–µgaŽBTQ{¹bZækõú_?™+•˜"šþÒÇ=üößw]ßz9‡!b½!â·ˆöoæÇþ"EŒyÆ÷\7»OÌÄ^½>ßÏ”:ø(½Àfÿ=„ëß~2JJnýþ)ä÷zMè kývÝ|õý²öì/ Ú®mß^õ­rzb½YÁ®KX©Þ¬ßûžiß^‡fY:Џ°ïTë i ]×vÞ_íàîàÀþµüÃØŸç÷WÄ9?Œý”á~áݬ_àûsÕŠìzXÏU›õjЏÕ?µðQ±Ø¬´2ÞúýÏ´Þ_,È„e¿î_ñ»¼_BÚáÿÅ~ÚŒÇãþà<lû´-W­3-³ô§aÿ¼ß1|_-öKÓí@~Ø? wp­³+4Œýy~XXU#î`U?e¸?8 ;¸¿X—½X­Öu-39p4=ÅÝèÿpP�û›E½WªnÞßïŸ<Öúí¸__õ‡ð~ yCk¯þÂïݶ[þðïŸaŸ9êµ7ý~è”ßýûg_Õá'î#aÿÁíçßÿôý—nÇáùÛ%ÿðûï[ùÏòÈ;õru=öçù?ùâŠ{ê•êº\s?eÀ‡þà«ê›““£l»oªÞØ«Çû“äþâC1œ7á'zlÞ¸jìÇ·ÊwÜ¿ê ;Žú!!qÏþ‚uùñ—¦¦#<qÌgïùaDÎÙ×±k>Ƈý®oX—ùåÓ”nå;àa»µ!bY>Ò1ðÈ_æ¯ÈGYà“>÷÷ºšî÷ X&Ž™ÁG*qÚcîÓýû¿Úû '8{5u kîæýŸþÁýÆÙ«‰Ç…•~‰÷[fF¾÷†5ø ìßu:Ó½ú ÙÎô»ù‘ðÄa²~á`<¹i#ýbøî=E¥„œÆ [mà!pIGʦFÌöÙÝÝÕå0öYœoL&7Kùîüò¸½ôwŽŽÀ·¼°k £û"ÑþÛ«ç÷À¯ Ýºþ¢?äÛÜ·y¿)ð.ÒÞ¸_Q ?¼ÿ„ûÀa…KÛù„Z¿í»ÛɃnjÿxN² ¨Óíàé¾OXÁ O‡³Ü=F<>>ûñN:Éf4¥éŒ†ë¸ñ[iËÓ‰éx†ó»J”O-ž¿”=S´ƒ÷³‰éeë8âà74ü ¿ßõM¤#ãÑZ!<>ÿ;÷'­àþ;ðý'—[ý!?ö#ÓþóÝ0ÑúýÏg†ÓŽ|w¯ßõ·;×3‘ˆ +¼ÝG­]ý$!ml“Êrxu~,<m<ðÅðjf2þð•u!3pÍ–,vg硟Ùâ¼m‹HsíØ/x<_îÏ&«>"®K‘ùì—·Ò‡¢žHPÄE¹5æ÷à &Öu사ÊDžóã«­à«ÜûÏÆ}? /Þ/÷Ë‹ý¼ßÕ¸Ïßçüí‡q¦¶q‹¿ÿißã>çË~óûãD¾ÿŸo?L²âžßw¾Ý/î/¤ Vu]?¸:p„§ ŠýaFÃÆ£<lÙ®gSŒÀ^g(Þ8Ìrm×IØ y˜ÒÈÏðžàf¿ôu¬Q,‘PÄײUîØï/rÝ_ 2±mYÔ#ŽL+òËÐù†ïpÙ¿–Ïcœ±k±1ßÏýåûPLl ©Ëûù×Àó ¹ºï·z?÷ù~Û‚ýKß6j|ÿñÕ £ÅÝùhÞ_H›–Ö.¦†uáiC´À¦&!z±¤=B³ÛA=¤ÕjZÇ6L+ÅÒºàir­×’ ¹oÈÏç!Ÿ­øÄtÍnÀ} ×h»7)Yí‡ ®øDæ>Öº‘¯çŠZå%¦) «ëYGƤkš&ü»×£Û#? ‘÷oÕ _ kUîÛØj˜íx?ø¼©q?”ëˆâ¼¹r “vÞÈÏ•ø~ðç<î÷wá~"3Îkœ+ý5ð»yÓ¤²^Zøftôß/m0Æ¢®ô4£+<idŒu]щdØ#4¿?}qó-JZÜW´Â¦?=û’¡'¸šÝîÄ>m„1ê1€¯æÛÝvÿ2ò &¤ÜcŒÝS‰!䩦™íN£9Þâõà~ÚqSj<ßûÁ§XdŠNiÀ¹a‚cÿ<òãþY¸ß•ôšaÆfÐnÇû¹œéš4˜Ž #¯ºr?Ž"ù:N|õ~:°ò)!Ëþ&Ž|¦0¸/ýâü¸ßüýÒ†RĘÄ4+HÄ{ùøvÐxŒ6º~÷ãמÓÒ˜Bœ Ö„?þx3 2 îx8‚ü ÈÌóÁ÷ïÕáè`ô"ömMC ú5‰Õ]Œ‡ãÑèÅÛÈ·1p©Â¨É¹ªYáøb<G7üò|d8gÀˆcðgã)÷?.óÁ'và#½ |<ã~¼?ö•øv¼¿�û×îÇà+¦™/3]3ïùÇÈ·5åÎyþªÿÝЋ|¦,öÇùÃô[¼_ÚŽï>=ï]W“yºÿþÓó¦÷TùÖàý×¾£µˆÓ²à?£jO­ÕքС-bµ’lÏ}Kƒüï·òQÿîùÜ·8¦éº^«!ÃUùÿ} ¨ÿþºï¶€;¼Ÿs™ j«M)«ãÈ·(¦Àûï?s¿§Ë5Dc¿ÆýŽÃýÖ²s±Ê8a¿ÕjQKƒ~1×9·Äf)«®ÜO칯ªî[á¼?]¹_•ãý+>æïÎï¾ÈÇ+ý…´ÉUßÔ‹š?:î˜ÂS¦ ~üAǤ{K%EQ ¾K1ª4«Õzz£Ë¶»æ³BÃ¥D®$éºÂý†M VšoÁ÷Á_¹_éqûq%W®qnSŒÓ1)Ñ~Š+•7oê9î&¬“{=Lô^| îk¡Jî+à›>YúQ~|ÎÛn«Õ’UF°ªÀ0 xKæýæÜ¢„È:Ï¿¿£bóMäOa?Å©1—û+%¸žÏý9_¼Ÿ ÷Ãû-î‹óuÆû/Þ/m®”˱iÛá)sÀ#Ur4p ú¾-3Ö3ˆØs>|¾ ʹJ¥D}G[˜JqYžè£ÈGŠóîãMC,Æ~a…W$âhÿuCnÂ}ög¥lYÌbÏ¡e…õ(aÿÇë¶X)òû3œ«åˆ#‰éÀçÇ놚k*¼%>ÉD¾JI™çóþEV2|ð‹LÍêØ³(Šöóû—9߀|Q…|{qÄ}”+²œæÛçÙ×yÿùýM¥÷S]bÙìŠ/÷øý>¼Ü\”¢|~_EZøBÚ”•#¹Pd¦ð”Q•C1 4D ÃØ×i™rî°Þ¸¸¹òʪr$†~ QÓ¼÷±%׫9ovsã%ÿ ˆüˆ—e¥*†|SXú­ø_¯<T.Õá>Z£&ÍSs8 ,׬Z³škÌn®=YVËp¿Ìó kx˜XÆf-W­û/®}µÌêµ0h7(÷Zú¯‚ßõˆÜ2M“ZÃ38Îó_\ùÀ«À5~ø§I÷Ÿ}½öáþ£2¼¿l@<- |î{b¹ùž!k S{xÚ¾÷]x?ð¥#~?â÷ÅùÐ/î?ãï+¤M‰éÄÎdn»}™ÄÓ}Ô²3 ðÃÁ¾N='É—w¿NE*EùžŸqýöà"ƽ\]’ŸÝý:)•JÅ$?Çý·¿NA.•tDlüvûž7ë9ùÙ-çR±¤«¼ŸëúÏ./ÂŽ+3‰5ëÎ'àGÀøÇçaÛF¬'år%ùÙ+ðE©ôtà¾çúÁ9øeÖ¿$÷oçùŒç7ü˜·#žùÜ.rîºèv`?«ä¢þ Î÷»à‡ÀÛ ¾¸_Šî÷cû×|…û=Þ¯Áßï2Ηè÷,¤Í!ÿ¾¼ùú¤$'Ÿò}?>¬òÏ_ÿµ‚¬%Ô÷ù%ð_óüÉžùòÿZ¯å¬1‚ü¹¿–/ß+ÿ°Úÿä±ý¥y>†?ÁMð«kß÷«ü¾ÞQÎã´ü7õz=ηÁDÿäÛST­çŽ tÿÖ}î¥. U)Óp|1{ÏòûóA?@,ò§÷ô1ß§÷2CF÷ìbºþ‰ÔëU^¿É©Føì8@ÜçùË)fõä«{äs_-tÆÈ¯–²z”OÃÁqô}~ûüêòø^8”D½rýi¸×û£Bxv1öÎ?‘²z±zÂß·?ʬl„g³áJ~1 ùoxÿÿoçüšÚ6¢(¾Ú]Yÿµ¶d¡ºÂ€Qm` ih ÐthIC™Nši›™Îôû†Þ];qlK«•<™ñƒÎëoŽÎÞûÀðàs•îX:Ž.x@Uô±ï‹~:Y¼/P¡Ÿ~Ú·pz þ ‚Þï/:ðý™?º¼Yàïßj÷¨¥;!äߨ†ß±lš/æhßpÂWKûƒü‹N(äGÔ2HÊýªzÃôݽo÷/â ô1?÷nȬû/.ÚJ÷&ûÏx?½’fýóˆL„ÿs¨ÞOÛDÃ&¿U)þýU‡jÈÿä_äªùQ‡÷ëýWo«f·²sè÷DäÃ3HN>ìï�/ÝÇ!ÄôÇàW—{õßû;»c¸à þ¥|ñ>¬)ä£g7g“ÀÒ0!¨š¦ýöðìÃÙI /û«ôó¿;i×É·­(~ ýøKá_±»žRþøÃé$0lÈï*G§íÌÈàûÌ?~‚ü¾†éJ~r… ùO§“¶ÕÂÕÆÏtÃM¶R1ÿéI{eÿº‘q®ÆÏ}jÚ$‰QUÍúé“öÐt ‹Û‹T¹Ÿ?ñ‡C—&±_9~ËøøÓxÂÀO’p•ßþ£6aÔl9IècõhOÃ0ß-Ìÿtz†ƒÜû éËc•üŸl¯¢J2ï÷ñÍ™˜Ÿú‹~~ =R¼0 nf¢ê‚~zØÇà7ÁOW¹R?Û£Ž™qeݽû ò[£q³ÜþÔ;•|˜ò5#u0Ö^ßñù5{ã,ww¯°ÿXƒ|TQñè{ØÿÈÀšØŸFq§ \%Qâ)óQ ¹„RJ0 ºÌór¸R?/íÖË·ñ@¾—†E~•|L:a‡ß¨MiâíÙ„‚`þ%¹ï# ù” ò=TYôÿ)† ûKè¥>ðÒ}�ÊÒvÕ1üǨ”úù4IQMQòÁß.4”ç3ÏÚÞ¿¯¤Ãîéü~‡¨þüžßQ-‰þ?ó’4Îù�Iöt¤tÀ¤Õ•è§Óâû*ý|Ó[/ß”úª÷Üû‡û�}˜jh…ïSÉ_s~ñþúó£ø AkÈ ˜­b…~~„꫟µb¹¡4¿{ÀZzK«5»nd­tä­•ŸŽÖÙæ†#f¯“¨Ö’#õ—÷ÓÉZ饹Íò÷kP­ßÒ4²Nþúûלúùë«‘§lhÔ¨Q£F5jÔ¨Q£FiÖ—åÈÚEr•r­³—AW+y_G¥~´Ñ‚þúåHôë¥*ç1ïßoÉxÝï‹þ¿Ì,¸T0_*ßÏ&‹÷ç%X“sP'¼_¤*å¢^x?a~@Â^ç¡Ñäï“s!àÃüxÓžîoså‹þ¼„39GA ç(˜öë‘Lå܆þýùq§ØïºR¿èïŸÍÏ9Õ9ˆÏ×ÊÏ×ðl«i~X›GD“räpŽäÐG•sÑ¿Çn!%¾/ñSÎ qóçïƒï¨ÆA¦ Ã÷s8…³ýmªŽžŸKûëÐÏ—r4‘ûçý~Òru‰s Žy¿œz‡Å~]—ø p~?aLç'S¿N“åùK8ú8ÉåÝùþ6T×òþúÕ¯rþã/r~=ë×c,ú÷´(‡s’qò ï'`¾¯ß™ÞpÚÑêüâ}DøIUãî\G±ãäññøz¾¿Ôôþú“œ?\mRýx÷ëEÿþÖ±‹î|⨀Oû÷ÿ£ÌϦÜÍ–�¼o8tà}¹\ìGÆÑÓa@a>ÂrùÖ|¿›)C×™´¿nYRnéY"ã†e%ü†~ÿ}o›„ü~Anðý}àEÍXh¸ñûÏ^ø{Ð@þTÄ÷·iw…ë³û}áç|u?s^ä×ú½\nÍ÷·‘Òt+£DÒ_·,[ÆE?^Ê wÚ¿+úõzD÷8ßÕû¤è—™×éÎö®U|?äàï‘¢+ùâ¾ÀnÏë¶ïÌæ œç/rØ”#KÜ/àóçqªYÆ|›(_ôë‹ûëlГq þ2¿?÷ž^w[;Öþàp䙞—ÿÛkà­Ã®7 >€<nìílu©Vè×ÁyÏÏÿÀô¾�Yâ¢ÿ/Þ'üá"‡ù¤1ðóù®B-×φóým¢ /í¯÷ ¿$áà/ç¼ß· Þ¿‚€÷ÿóïØhNòøn¶CY§…þlöýƒQŸ÷ÿÓ.îÜLßÇ9ë.ñ^?£ÏýGâ~±ÝÏóïÏ÷ó?Ÿ«ä´¿2Ú����IEND®B`‚IMAGE 5412 ./arch/ground/smooth/blood_sea_S.114 ‰PNG  ��� IHDR������@���[a?��5PLTEtonþ>>–��ˆ��z��|��€��‚��„��†��x��Ž����”��r��˜��œ��ž�� ��¢��¦��ª��¬��­±³·t��¤��Œ��¿p��¨��~��dj��¯v��š��l��¹»½n��ÃÅÇËÍŠ��Û÷É’��ÁÏÑÓÕÙßáãûµéYbÝëñó×ùåçþþK _ýþþh��þþ[þþ&&þ**SþHHþTTþ\\þ þþ þ,,þRRþ< þžž6I:���tRNS�@æØf��IDATx^äšUwóJ“FµºÅÌld†0Ó‹p˜ñƒ¡ÿÿ¦Z²œÄ²,ÇgÎ{3u™½v=õt¼|“PeÓj6Gz[h•ñ–*O®OmÃÿç6gzÍÿzÅ t$³e¼(wÝ/á{çïÖÀÿÓþTxg°"«„eüòf^u½ØÝÿxe0tïUë᳎ÎÊxa𚿎3ÿïÈÏ÷ð™û¯ùë¸÷¹úSšŽF_$·Œ_ÞVïÂþäðßÿ:íbš–kÝŸÃe¼0xÝ/ãûç—÷oø¼ý×ý<ÿLý©‘Š ¹ß”ñ|rûžo2¬}ùfhýÉ/÷‹2^¼æÿøfß?·þmê3÷Ïù%œ¢þ¦þÔÄA˜dYÞʲ¬Ô‡óO//fu ®±Pt÷ê¬ZÂ'E¹Ï}Y’ÖÈø_Î/ïÏsPÿ³ö_÷ñzþ'àïéOµ^`ëÚV.kHRE¿› ½®5œNîê^8»þða¾ß΋rŸûXÓ*kÁÿëùåýñÿEŠÚ9–ósùOù çܯ?%ËÃ:Çi–†¶pF³¡!ËJúÛúÛÃaë±ÝµÏ绕϶(÷™ÏuM#—Ÿò¿ž_ÞŸåÀ§v럂|~ê?ÍߺéþÂ÷yêo7æwSºGJ–â¶cH ¼Çc,Ud74$aš®(fF]c;GFQî3¶`!]º?ω–Ë/ëïCðwêŸÈ't•ÿTOò·e²ë÷Û.|ŸÍ+Öúg`ëû4,?h‡'…ç–ãûý“átj ®t,cNT1ŽušNýbŽŠcS®!-ÉýþxÄoËÏüOµGn ´CÿØ‚°ZïÐ?O³üg@Ýž™»?úëBÆwy?'|ä}ˆ°kJå²Ý*žJ·î¶'Ãþå»üxx46[œÄ±¢Jg~gÛ[r>Y¨ÄG¶ã‡ù`¡h?ð'ù+oŧ²ZÞcd×Ãiõ®¼žeý©Lî~î¾Ï.ï×7ÅìÖŸòm™ñ‚¾­@P{<÷í®!Wïâý0ˆÑÊF¹¼58Ï/°>­r‚æM󹄧B>?óóŸˆKÎñ £´]¡ÁWÜÉiiÿ<Yõ§^0ë÷Ó›üŒ—¿äoÎÙ©?%!.ê©4]R !Ç62µZ5NóNïŸøt³ÓÈñƒ’܃*TX` ¾úu§AW6„çŠò3•ÿÌ̸À•÷çIV²¬²þ~’Oí>êúýŸ÷—¼øþ'ý[›ƒvêO±ª!­Â”øýŸNþ©¯Š²VéÌÓ‘È0‘w ¼tZ´ªr¶ÁA>­ ic>g[ìJx¶¿õ*ó³üçæ’×Á/ë_KûýþŸÔ>“ä+³³»ò)/$|Ëýý風]úS fYAœO x¹/ÐÔ?{Ro¤Ò•ØF»hŠ¢ÌD1Š _Äz“0ά€wœí—dÍ2?ÍädàsðNýõþùÄ•öïþ®B=w’¿A |ËýýÅ¢¬]úSGG#•›|(àå>«Ö¢ÅÑá/?ÛŒ(vy'ÍsüêõÀÕdŽcÔ–ºØ$\<ô¸mµ_¶ýÀ_ùIþßñû×Uü’á¡KåŽ>üò…½oðwò÷ÓÑæþÀ½-÷?y¿¢¬]úS“ó×Û¨½ªEñ.¾ÇУŸÔ¨Yón¿x½›ÕTÆà¤ê¡O“‹>ËÖ6„zé~Ydz­æ£ŸæçmàãÄ/™*éOw~ªEß×¼=û“ûwœ÷îÀÿ©¤~VþUP˜Fü²™÷Ãøuìš&µ×Lûžao˜LóÕÎïÐ4U[¬3™…®nü:Í •†ÚÂÎä øþëšØˆœª6}’oþš×µ ›ù¥ýÉýºÉ¼úº¶_îßij 6?ÉŸº9AØ~ÿÊ#.Ê#~Ùœ¿¾Ïƺ1ù’Úk./¦³ª©¿;|ì*µ‡ã³P“XZj_@þ@Ï }àªôtåE «½^ó¡Éz+?HòÇyý¬pâ—Ìé_5ñ—·íÓ<ëú.B õÖïo_€?Ðuáø¶ûWý¯Á/ $~Ù|º„Ùï¼k£µÏ܃¾z‘¶«Tÿç–Ü›ýüéæuâçà÷ÀŸkÌO#Æ[ù_ÜÜ'÷çõßh%ñKûßÿ÷Û6zEkÆ|þy¿rÞ‡c²ûWý!_JÞoM�¾õþ¬ÿõk’_Iü²1óóª5>¿ùá†Úg´áŒøàÛ;Kó�YÆÐk[ha Ï]�^o[Ç‹µ…lög‡oW¾&iÃùùÐÚÐË\ú%£÷ççckzqó훣12—ö?;%ýK…nê+¯Ýýûgóª ï·v~®ާýêÙÙÄÚé¿l„ŠR ®.lÇ ö®¢ÄaõêÂq ¼³t}}ÖÕŠ„iNPâAõò"ÿç&ü¹(K²^Ÿ\g~3¹¼!#óK†¯@þøêܳ5ÌaIF}|ý’þX«Hÿí¼o³ÜÚýy¬Åðþgk>ðm÷ßdýi# úoœÄ/›þû«~l¶«ï~ ö™þùÁÐÿý›/^`a )æÑE°ÀýË+ð絛×Åœ\„¹?RÊcÙ0–¾¿XôÏ_÷-H‘_2Ã˃¡ ý/ß~ñ'`˜…lèXA»ö¿<­äý‘»‡ðŸ¿m 8w?É_÷a€ßoè™OÞïrhüWkâ— Æ<ÃÜÎÛ Úï@XžùvæéŠþ-–eY3º ˜m?oËš†”|s¸ë¦¾&aAàÌ7|»úl?iþÜÕÍ2¬j5&û §®Èòný1Oîw4E·–�|7~ê3ßÌ<¤t-Ããg÷Ëì2?õW<»?7à뙯àÄÿf¾éúeƒe¦õÕØ± $SûŒ¤4Z_¸¶®½HCŠ=7FX’ÙÖoU×FyÁóo:kVâ{–Æ“üßN6Õ·R_É€Œi±bfk±ãÀ ô¯Ö„ޱ\0ÆÈ>Æ(Þ©H…ô¯ºu ‘ýßBà»>Y¡4F¿Áût‹‘`Ê~r?ÂéýKlCe<»ÿù˜ÀaÿSŸ߉uTð~e3¨.ŽX:b6á}LGÑ‹4Çww} ÆÄçX:ïþõÁ`£­é‰ß¾ºô« yãg×$>ô#�öÓw¶Jsš‘â¶[¾ì/s„‡)G2–uÏOøëAÊ1[Ð#N€#|æÎŸ"¾f<÷f#ÈÎ"<½Ÿð ¯ü”†,÷²û©Åq–òG¿}ð:$ý†øÏOK}ªlX̱¢Š•z[ÞÈË}–øÚ µO‡_Þ,Edè®J¨äòßW·ù¡%©O‹â†„ÛÛħӢ¤A?–fed9U}ºýòð]h)ðQ¬hϲ¬¬èNNŽŽ`ÿáah*ËýXsÛ÷<àðp+"'þT÷a¿�ûëAû‰ÿŽø4ñUŒÜ@æh,#Ó î€§ýMð?ñe½Þ‡ä¾äþ4Ÿ&qmð'÷-ý°®ˆôò¾:Ùÿ´ÿ—©O•®/x›uW£öa†ÇÇÆK=¤(æýÁ<ÖtÌñ2ì\¾¢ß_Ìê[|‹ø:ññŽR_G2Kö»®ÆŠ µ'§ÓÀ6@ÿ’øÏñïÈ4Ýô`:Ÿzv¸|ëH‚ýȨ» ø„ŸNÓɸ?€ý:f8^3ëŽF'ûÁˆOú]×àËF ~§!iíiš‰¯é †O}دèàžÞŸä³ËüÆ’g¾õ ö“þ–MÛ•ÁOªg<}¿²‰½ê͇³XZȘÚgbÿäãáiübCÝÑC³%ÆÞÉÍá¹q,¯å£nôÐRÕ-¾úªY£-ð?œY9Χ¾hùÕ›Û3ãú1,B4üˆ§ÑÍuµZ³ÙêÄðSÈ—pñûÍÑ(´9dÕ^5ÕŽåÃþSC’¤™â÷jG ©ŒT¸ÿ#øÒâxÁr1­-ˆÄ×4¸/Í?<µ$é˜ì7çE…øÝÄ·¼*¼ñÉ~nÕh–ðôþeþ™y,-9øÜÒWš£Ží@¿X"÷'\mtµôýÊÆã#:Ra[§ö—§:2†/+’|w{Õh&ÍÖ9Ox‘Ž÷¿»½l pdäùÒwù(#Øo£VGUH‘*b%åm>áþ°mò ç7¢ŽXYùÉþ¡¯ ­‘ªª¬¦`VíÐ)‡|žö'>­�ÄÕ~GL™a[gG£p„R^YæcšYùµŒ«?p³ß‘ñåþÕûEbÂÍFkÔ©© EX|){¿’9õåÞ¨G+VßÅoöhôb‘g´žžz©ÈŠsœ¥õð¨Hçx–¦øßÑ9Î&¾?®öTØo²¦Š`ÞÅE<ÇŠ¢Þ®Ç¦F8âãx-â8–fô”T|]F†¡o¢”Ãþe~MUb[“ˆ/Äw1âF‰ßÐý£¤ßHÔÁ—Ü„ýl/â C|/óuI#Ü"\Ø´ÿ,½O$÷®Ö]æ7D=˜�‡ý*2 CFˆäeþU6 ±ÃJ¬æ ø>yíåb“›ýùý…ùk^øœþw¯ÉþùGµpqï!õbÛ”>ðª”pŒ¼¾ïØŽ;½MYXp´:zàçÀ‰ù]7 ]Ûñ&ç¡…–œ;J}àòãØÞä üÅ‚ÕQ“Yæw¿zŽã€oJ˜ðÞôì'ý$¬¥¾39’°à£N¯É%ý3?ð×™ž÷-ÂE1½¿ùèGî÷lö÷íÔ‡þó?ÿ8Iï_î÷¼É²ŸšúO•M«Õâ@ïà|ü؛½ù¨jÔk6[,róù§o>újõ ƒß-ýVíB~Þ.F½VKå`5¼Éå¬jÒQk1ÆÑ;د^ãÓOøÁäÄÕZ«1&ð J9¹oþÉÁôüÚ«ðéࢼÅkøÀ/çàwÔ&á³wCQ$÷A?»ß'üõ4壈ïŸðÌ÷ý“÷Ó ò3Ýä~ößIò'ï§U¸/õg¤â׸®7øä¾ù‰!vˆÏ/ý(úßvί·"Šâ·3ö®½;»³› ›Ä^ÇqœÔÆØ.…ÒàÑ‚ )R…x!¾ÿG`Ƴ±E<ÿ¼Q…¡s^º{îÉOÖ¹V÷¨æ>€©ßÞëÍGÉžºßná'{xcÿ¿^aáÿZá_Çõö¬±ýÛ´ëožÿ¸k§"?íû½õý<\·È¯˜7çËÞ7÷¨"¿×ÆF8»ÎŽj õ}�S¿x½¾ºßoôo¥µØ¯âß»ó¯ͨ%{Y/›ý‡-6éæþ/X¾bò%›?j7éð>~{úÚÎÿZ>oÖ|î1ÿV+S¼_o^·ðJé±®¯ï÷7|š&²~;ØöÓQ’J˜?ö)¥Ü_ÆãïÏŸðï7<”P6ßÌ%œ¿ÑŸÊçÍ"qzµ›ˆŠý/eïs`sà7ôûÉaŒ#Iiƒ~¾OÉoaSí|ÒŸ¼»!Ç&å2~=þÝìÌýQÿ¶Bþë Ë?Š™?éßþ"ÙÏ*¿˜¯òþ{OßÝÌx~$õ÷mòÃØú|YÚïò6úÝ ŸŸb¿I`cáå//ÆãÝAÓ“Íc”ä/íüë>!òGùÕä >ï±y²ÆQÒ¿º°ò÷ü*ï¨ÈŸbß#áZ‚fB»ïy•$úû·“n$-ÖÚ÷ó#< } ›«5åýøœÍÏ|g?Ð7fÿ1Œ“ þçÏž¿YägóHâ?}òêÕ ZÌTÊÿˆ}¿ÜŸÒ5Þ?¿znÎ3¨(Ö?¿œà ;]¶îç‡Â÷¡ŠD?>vãÙÔÆÔd÷Ì*.x~<,<°+áü},ü‡PQÙÅ9öøûq ÙßêýAUÕ¦ƒ"™”ÚöÓÎX?*jR¶ñç qóE~Bø}ƒHÎ-ü <H)š  ôÿ×dÛO'IÿQÊAZìïË9M|°ýô÷`àäääääääääääääääääääääääääø€å„Vý~ý [)q?�ŽF SÄøÿV¬?ÿ�~°¯æe?îúýÚû 3ÐóŽÅý)éðýuûÙpÐ? {Ÿ-ïÇÇÕ9ë﫹è÷g«~?(´ìß?„zȸ¸°Ü/Wä«•\2Ïù‰n¿ÇEÃÖêQ˜òþ<(eàQ˜éø²ßOñ¢ß¯ºâUöï´4œðùT3ïË8¿ öü#E>=ŸÂdJùý�ØZ‰þ}\™´|Ñßï­úýʃyeÿ>-Ï@%q€õ÷ÕóR.î,÷ g÷¹È¨öü˜Íwû¥< Û*lèÿ¬áæù“ ,yŽE¿¿r‰þýÎt¼êx»§û;¾Vkøçý6/Ë·âòüOJk*¿[+ÞŸ×õÿ-x]ÍÛŒï÷ó~~DÈu׿Õt<fó´Ø1pE¾òþ@Tì¤÷öçùö9ûËóOTû5<ïH¼Ï–jÔóýyŽ FsoL9y¾1PØEÿžî«ç9ÏAÏïû/ïÌÊýØýI¾—æ_Þ¬ïß«‹÷ÙV}z³èÏ·«ò§ßùA­¼€ò³(Töïµ|ëxÌæÏ6åâ~ÀòþÀâ¾€$ߊËòׂàT¹ßÍ÷gü}þ&y£ÏsQŒ����IEND®B`‚IMAGE 1105 ./arch/exit/bloodwell.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ÒÝ~ü���tIMEÛ :èIp…��ÑIDATXÃí–?L[WÆ÷ùŒÿޱ8UZŠPi ݺѡ*•ÄBQ2 DY*!¹AB(»»1 †FBd¦ª```@2"uýCbê8@üžÍ{··¤©mÈP©â“Þpß»ç}ßûιï¸Æ5þcˆKî—�±XŒ¯‡?§ñY�›Ý‰ÛÁÓÜŽ¯)ƧIño±orŠJdçaÓ¦uv»«-ÀdÏ1.w�OS¾¦žævܾÜúâÊÅžçµWéŽl‰Dè ù$•Bh·~{‰óÆŠ8†'Ô y {°¾¾>ÖÖÖ.Ä+rQm ä¹grddkŸ›++äÕÍÀ‚Z{ƒ~¬ïføòΆ††X]]oy_YÿÈÓÔÔ”¼=7GV²R’lÀkÀ¯”À 4y›át«®Ž¦¦&QŽ@{‹ Òæx<.3™ õšÆûRQR‰°Ë3½& ðži²ÚÖF(bttTVªêr5@?·çæ8Qª¼@'pœ(N”x®:!†aT<iåÈL&SZ„@�n)qàøU‰(¨z0„ ˜žž&—ËqÙ\@oo/�.!p:`·sªÂ@+* ð‡üX–ÅÂÂBÅ‹VîÍfÚítú|Üôz±;„À<@ˆ©ô˜€¡i@{{;ÊAq�lnnr43ƒ4MLÃÀvzŠ[Ó((Û õõ ¤L'000Àüüü•(UîÊÊ Òé¤P_O>Ÿ'¯ëËBWù?QÅç�êÔå–’~)ñz½,..^9�²žJaLN²gY¼ÔuŽ ^KI^ x¥œ8U…˜µÙJîíì숫¸´¼¼L¾§‡W÷îqìráUÅW£ŽcN¹‘Òã�$‰wê†òÍÓH$¨ÉfùýÁ^¼xNÆ0ø³Pä¨s¹øX×ùJJ~g¯®²ÛjÕ¨\__gbb‚b0ȇOŸÒxtLkò{ê>ä³'O˜ÍŸuˆÝÝ]�~º{·êV_U;®©©!ÓÐÐÀ·[[�|”N‡988`#àçGèèè`pp°ê9Ã^Ñ"MÃçó …ˆF£°µÅÆýûü8;K±X¤»»›f +•±½ÍØØØ¥&œJ󀬭­%”®¿'¢h4JKK Ϻ»éJ¥ØV䇇‡—š²*Õ€ÐuB¡€ßïÇï÷³ÿøqIŒËå¢+•bii‰ñññK“W•Ó4E:&—ËÉx<N$!àñxXZZ"™L²··wiâw…ä×ø¿à/‰j[HO"Ì×����IEND®B`‚IMAGE 207 ./arch/jewel/blue_crystal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÀggÁ‹‹ß¸¸ôÿÿÿ���âÆš.���tRNS�@æØf���kIDATxÚíͱ À0 Á<iï¿rˆªdoož¿S«¶{pq¹\ì}tFâ4#¼€ É· Fq|’AÈž.\ž$<r¹’§g€?gx%ðjnŸ/,—ÏâIáòÑŽ&7ÏA÷ü{å#a³ø: ����IEND®B`‚IMAGE 1063 ./arch/monster/humanoid/Dragon/blue_dragon2.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��:PLTEÿÿÿ/RÀ��€�� )K -N .P ,M )F2\6^<u1W;b6e +K #; 7 &D/T5_ %A5\6_ 4 $=:b )H0W ,P2Y0T1[;e #> &B4[ .R;g4_+F *8g #;"?@r-F- *IPž<_8h8j .W %@Jx ,K *KJu %@Fz>z9 4 .N>j ,N ,M )Ip5^1\3Q 7<>K &D !:1T 8UŠ /R=m;r 0RBn -QR‡ 5^ 1^ ";0U $B 2X=kI”7g 5b !; *N5a*C 'E7aAhR‡ -R2[ $= "< 0U %B 'F !74\ / 'E8bP}>n:n>xAp8_ .P %@4V6b ,P 'E7_ $;W‰2W ": : 0T +JG )I 4WEn0XT‚-N -M +MF{4Y1X 0 +I 7Br 6Bh -P +P7h 45X2^<jDu<h8e1U /T;k7\ 12X>h ,LU… 6>b +K@{ 6;^ ,J &A M{ 'E4W%X„�À� 2Y !7³À@���tRNS�@æØf��›IDATx^½ÌÓ³ä�ÅáÓdh\Û¶íµmÛ¶mÛ¶ÍÿmÓUÙº™ÔÌÛÖþ^ûëƒÿ_]ѽ=O¿µÔûmÜìÒ¸ -=?!7áSÒ\ 6»™Wq÷T7nÄ—›L¨ÁÝ·û®0/µ�"Ú7€,ÞÈÜʃ§¡ôüÚÉözÑl£�ú~ˆFå$Ýž#úÔKþõ ƒåå=zžQΖ¢ãl•#wÂÔÕwÙH}ýƒS§\ØÊ�¥i?‡•›AÿÎL ¯˜ÁÌ—²@ZÕ¢sö>“©0W°ˆê³»£ÁáYéŲ! ë)D =˜û0Ñ…‹‰aE„"ÂrÇõs.ù2@Èk]Z"覢¿Öä MÓÿ‚ó)dcîLö�D0� Èža(Â�Ž(1ó}%A@ÙA¤ì&ÐܲnW päËçÂÍ›9`jÕš½#ýô|Cðè×&¯ÁÜ‚¾Õ¤¯6Ú&õª>Äh¾½È9þQ¾ç´ŠXX~+#rûÃé §ijÁzg¶Ï¸©jǶ÷ø÷ý öK§Þ@ãs����IEND®B`‚IMAGE 997 ./arch/monster/humanoid/Dragon/blue_dragon2.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEÿÿÿ $=/RÀ��F{=k€�� ,M -N )F )H0W5\<u .P2\ #>6^4[;e1W #;4_;b +J +K6e %B1[ 7 5b0TJ•*C 'E7a5a1\2[;g/T6_;r #;>x 0U %A %@4V@{ 6 4+F8gM{ 'E4W"? !;>z9 4 .N ,N ,M ) *I:b8b %@2W ": :8jBnAh 0 1^ ";0U 0T +I *KJu %@R‡ 0R .R3Q 8 7 ,P 'E7_5_ 5^ -QG )I>n:n +K &D7g &D1TUŠ=m4YP} !7 4WEn0XI” 'F 'EJx %D8_5^ $; ,P *N<_8h2Y ,KPž .P<h8e /T‚-N -M $= "<2X 2XBr 6Bh -P +P7h 0X2^<>KDuU…;^ -R )K5d &AAp ,L  2Y-F 6R‡<j $B4\1U /T>h ,J%X„�À�-Fz¨²���tRNS�@æØf��‰IDATx^­Ïc¯dAÇáªê£±¯mÛ¶mkiÛ¶mßq{væ$“3=¹ÉÍþ^?É¿ 6Råz wÀéHàLÔ#¹iÙwAÜ!j®þ±0ÊX¿LXÜEÎ v˜±q&¾˜ÛKI/˜èeê`àÜ“¼óLû¿³wo€§ƒ9ÐÒmÜ‘ýýã´0"mߟ^?0k¿fj!4" ^¬'÷ÁA.Ì¿SŸRMy6E­¯íj‰ bûӟ죴9…ù=@&~ƒœ¬aƤä<Ø4„[v\9ËÅKÆ@Pë…¯tsò¸Âü‘�œXtÁnkN�(Ñ}ËDöpP6eEº§)ì‹;×ìV ! E£¶â % �2ùÔPàœ;©ÆpÈEàVS(øüA½N~ åKq�†#ÊÇö?Dìyû*{O‡á݈Ÿß+Ë—GªŽD;àÔlK!Éö¾Ñq èhš-“c×%·÷�[{~ñÓë‹Ç,¡ÁiüâHˆ³Aä°¾ þwj¡@8RrH����IEND®B`‚IMAGE 911 ./arch/monster/humanoid/Dragon/blue_dragon2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÎPLTEÿÿÿ6]/PÀ��€��=f*/Q1T0S&> -N.U9a3V'@>i4V0Q$:3T0T5XIz#74V4X'?5ZCr>k+9a-N*G0P+I0 ,L +J4X %?4WDs )I 'D8` 0S*D8`Fz#9 ?i6\(V‰ "<,8`5Y%=Ar /P)A'AGw"6 2U<h9bI} (E 75\-L.G=f<`"It=k@m'>%> 3 6 !:Cs1TFwEt)C %A3iž 97.O*Dt'B#X,I:d8a&<#T‹$6-M #='>�À�=f+I9b8^3T-3U#EhAr,K 3U(C<f:e:Y1U &B5Z:oŸIz7^5\ %>"7.O:dI|5X-O +K*G9`&=8`5YEs1P4+G)E4U2T.2@ÑÈe���tRNS�@æØf��oIDATx^ÍÏS¯%A†áUjoǶm۶ͱm[ÿvj+“t÷ÎÜœ‹óÝ>oVªàâvõ?n§ÔåmIPJú¿}”æÌ°%l^(wÏÓßÔ>ÅMW*°™/~8ùãÇ2o=3 °Ã~Šñ6‡NM3 2λ £åÄžvPóï°‚táÔ¶|£nΆ¢üØÑ¤û˃š-BÞf»&ÙÊsKòúÔ÷yBùòµ%ÅÃ�Ú,á*r§KºZ }7ºßÛÃI©½Ç)Q¨PCiÄÛ‚2kæþyG÷¼˜Sm0ð)ð:_X ÈÜ¡ÊëÖ{<�Qp…Dlr€ò`@qaC_,oÀÆ@ò!t¸BË¢Áº1ÀÞû"Z{t¤Füöw§1pXDôjµ€×ÒB« ú9ÝâÌRñæËæcé¦}À+ŒÅõYÁ±¢J_Jé¯;LìéßïXHE$)3ÖhõpHV¸¯K"†K·¿EÙ3ÄWK¼Ù����IEND®B`‚IMAGE 959 ./arch/monster/humanoid/Dragon/blue_dragon2.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��øPLTEÿÿÿ/PÀ��€��/QIz0S0Q -N=f1T0T ,L&>4V3V(C4X5Z3T9a5XCr5Y>i4V?i$:3T'@8`#7'?+9a=k-N0P+I*G8^4X %?4WDs3U%=- +K6]#EhAr /O,K8` &B5ZEt.O,M)D:dI|7X #=.U�À�=f+I9b'>Dt-O6\&,&@Iv #85X,I:d8a'>#T‹-M$6Cs,LAr)A'AGw"67<h'B (E.O9b 2U 7@m-L.P>k(V‰5\0 !:1T#93UFz%: 'D6\Fw*G8` 91P1U*D8`<f:e:Y "<.2@)C*7^%>5\ %>"7.O+G)E 3 6&< &B%=.O*9`5YEs7`%>4UI}9`&= %A3iž2T +J.G=f<`"It4 )Iý|4ƒ���tRNS�@æØf��uIDATx^Í‘S¯-AF«ºÇÛö±mÛ¶móÚ¶móož™“IöÃô~½¹_ROkÕו4üÓ„Õ¹4-ˆ±¸ŸÒøø ŸÜN™œPB¿Wœ¾ŒËÈÂZ¨:˜^z‡Ù`±·l$Õ­ôÛß!‹ß:ÛtÓ*�Ì™ hõ7#Ž<«/ÚÞ0„”Ö…l€'?¿ö¤…îÖ<‚ «/¬ÃïK’¹@;ôäµ !¾7o§¼¦ª{îÓ¯u.Ámóó§§VIÏ/Bx›ð{ôãÊL@.‹ÖKt]ß-!jxGGœC€¼Î+úz4Tãô[äE» –sCÀætQ€ÏÚL–@Õ�p»€h`(Ã_q,€%„È~@  ò|!Ž×…W Ás•Ã—å ’ÆûþˆFÁêæ6Îg©B~b‚Û&Ž]\õÞ—¿‹òÚ”bÿŽG1ü6r“÷o¤:’sNðÞ¸‡�FMkÃgf+· µu¦qñ§,—ÙL:`®\…CøsS+<ít Úê����IEND®B`‚IMAGE 280 ./arch/armour/mail/bluedragonmail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEïµ÷���!!!(¦õ)))111ÿÿ�ÿÿÿwÞúÍ���tRNS�@æØf���¥IDATxÚÕ’Aà Sì]Ãÿ?Ü#*™žÛ98ˆ|Êñ7¼ÊÛ¶­ðÖÖØì©ï7fîÇÄíþ€ €<CÈ?7R^ ç¾eë¥æ”é‚‘§"�›�²½wF¨@”ôepú^ šò1”l¼ƒÄ_7`@ÔÞ¤Ímá¸ðÒ›QxŽ]á“ÚS¯OáídÎ"híó+šÎ¿ÄôÆ› %h”����IEND®B`‚IMAGE 300 ./arch/floor/bluemarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE/ ;**J--L66Z<<k-s­,���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 300 ./arch/floor/bluemarblemedium.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE66\CCpRR‡UU‹ccžqq¯CïL���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 207 ./arch/monster/acid/bluesphere.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���qIDATxÚÕ“Á B1 ÝÉÿÿ³`¥<õàÁ¹f;IKsû7X¼šE2¤ð¢J2™FÎÌÚgb–Gu ÐÓåor4p6¶n ØùUbÔPÔð£ùÔЄ<%.X@Oä|A¯àMàú'S_þjß‹÷›uܽ¹Jëš����IEND®B`‚IMAGE 202 ./arch/monster/acid/bluesphere.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���lIDATxÚÕ“A €0ÄœôÿöPe‡aAð`®R(íñ;¸ˆ«6ÁA |Ò*á¡ìúZ«G车cTù‚GÀºP»'Ø{6ÐkA%h*èãB40!]%)0 f¤}Àwð7Y ¦Wí�Ø¿°ˆÿ¬ÑRµ -0í����IEND®B`‚IMAGE 202 ./arch/monster/acid/bluesphere.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���lIDATxÚÕ“A€ íòÿ?»‰ÆIS{Ôå8ÃR8þÝéi\Ù;¦Dla-ŒÈØÔÜ‹Hi?Û1²�GÈjžÂˆ{.)OÐmh _kx®©¡«0ž •ϵҡŒcþªë¿3þY'ÇP³!ï Ë����IEND®B`‚IMAGE 201 ./arch/monster/acid/bluesphere.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���kIDATxÚÕ“A €0Íìÿÿ,X$”<ˆs͘-u{ü=Õ¢8È©FcewVûŒZË•:Nmöã(B •× îóÌG‚Þ°Q®² þÙ½ :ú>$¹Q9À öX<Úêþ.ž¾¬¸¤«Žð¬ú����IEND®B`‚IMAGE 184 ./arch/weapon/bow/bolt.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���¿¿¿¡ÜÁ”���tRNS�@æØf���WIDATxÚÝ1 À0 Ä’Èÿs ½J!š„…—�(Y^%ÉkÊ›ç¬lpŸ¥Ó%늴;Pv‡Ê»CÕÿuW‚n߇"PÒ!Pìçw«a|ÀRÈÁ˘}����IEND®B`‚IMAGE 127 ./arch/weapon/bow/bolt.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vaaa���¿¿¿uj]°���tRNS�@æØf���!IDATxœc` 05 38àd¨þ@gàQL×�À¤b¾ ‚����IEND®B`‚IMAGE 147 ./arch/weapon/bow/bolt.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���¿¿¿¡ÜÁ”���tRNS�@æØf���2IDATxÚíʱ�0Ã0Àü3y Y:‚W9Vx®Äre›Á»BÞü9`]zþ ¹ØÜ��x�î#·V����IEND®B`‚IMAGE 136 ./arch/weapon/bow/bolt.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vaaa���¿¿¿uj]°���tRNS�@æØf���*IDATxœc`0°�Dh­Zµ*ªÈP ‚ Cÿ?¼€Jýj@V<���>CÙ¬¹‘����IEND®B`‚IMAGE 150 ./arch/weapon/bow/bolt.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���¿¿¿¡ÜÁ”���tRNS�@æØf���5IDATxÚíα �0A“gÿ™£,`‹š|ËÉBÛ"Ýt}1„É‚Å#…l€VuÓP�îO^ù����IEND®B`‚IMAGE 126 ./arch/weapon/bow/bolt.151 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vaaa���¿¿¿uj]°���tRNS�@æØf��� IDATxœc` p-€28 $Cõ:b¦tÑ��þib&JÚº����IEND®B`‚IMAGE 147 ./arch/weapon/bow/bolt.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���¿¿¿¡ÜÁ”���tRNS�@æØf���2IDATxÚíÍA�0ÄÀBð¯¹(@ó]n8«Ã<âûK‘=©îÿ óé &îhÞÜÔ‰�î´’íX����IEND®B`‚IMAGE 137 ./arch/weapon/bow/bolt.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vaaa���¿¿¿uj]°���tRNS�@æØf���+IDATxœc`À¥™–®Zµj¡ @†ö ø’Z•‚+���_ ­8lñx����IEND®B`‚IMAGE 148 ./arch/weapon/bow/bolt.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���¿¿¿¡ÜÁ”���tRNS�@æØf���3IDATxÚíÌÁ �0ÃÀ€Ùænˆ7õûdÝ  Ú¦º! ¦,ÈH}±ȇŽõ�ý�î<®·[����IEND®B`‚IMAGE 166 ./arch/misc/item/bolt_silk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿ�����ÿ` )?���tRNS�@æØf���HIDATxÚí‘1� Ä´üÿÏ!ºqpp¡·”­Ð¤¾\¼É èTýôMúÇ~÷ÍÜ,«ÜÞp/6<pûAñ‹:Gsùá�����IEND®B`‚IMAGE 159 ./arch/spell/Bomb/bomb.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���AIDATxÚÝŒÁ � ÅÌýÿ?‡yRAˆ¨¼l>y-µ*P.é¼hw 4†Ý@oÂÿQúE;àt î['ò#a f‘wMö����IEND®B`‚IMAGE 155 ./arch/spell/Bomb/bomb.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���=IDATxÚÝŒ1 � ÄNïÿ–‚èTŠˆfè’\õ*•5'áýàò;5AÜDÒ}AßY|:x f¢i6æY)ÝÛq����IEND®B`‚IMAGE 154 ./arch/spell/Bomb/bomb.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���<IDATxÚåŒ1 �0Sóÿ?¡¸…€Å¥½Áå.âoâ:‰á> Ñ”&É+t!÷ËúC;àt�ãmP ^d ÔKtY‰����IEND®B`‚IMAGE 150 ./arch/spell/Bomb/bomb.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒÿ�����HNR���tRNS�@æØf���8IDATxÚc` -`â@áh@`>�¡ÿŸ‡0øÿÿ‡ð×ÿ0la"p†=nÿÿ?h †ÿÈv?�OŒ{’a“����IEND®B`‚IMAGE 1066 ./arch/monster/dragon/bone_drake/bone_drake.x11 ‰PNG  ��� IHDR���@���@���·ì���<PLTE��� 000@@@```  x€€`€€€   ÀÀ���À��¯­ƒÀÀÀàààÿÿÿÿÿÀ°°°Î��É<�_6���tRNS�@æØf��œIDATx^Ö ŽÛ0 P%óßÞÿ®%‡ôRÑÚ› AQ{žL2 Ð šDS4øX �Ò…ª –Ó"0ÖŸš+‘ž€wá!ž©ӜȰžVÛ½®ž! }ØÏá÷6ë×qI'á=.´ýH´£Þc[ŸDÐö#Zgÿ0\"¦µÀzÍ1ÇÀ&û®$°N)«†£sXÆ|ȤƒS q\½¯�0ϵV ®ê§Ðã¨õý|Ö ‰»O¡4>{ÛWH€Â¸ = ²ŸÏz)Å>*.XBxbõìmFÌ‚Æ!nØ dT«€k8x|,ÐúH‚x„ºw6tuÚ¿cÔà‚´½€`žx v „á <Z@„ï u( ‡±R L«¿º!80� –;l€Zq¿Ao†pb¡@€ 'À0à¾B€ Ãip»Ýï³æv[@ñ¯/ s…g8,,@Q ¬W5DÇü",X½Qÿ( Ek9„eÖ˜€¿¢„ÈÓ¾¤D> H,:Çb)Ï窄 ;âD=*.ÚžUøgg¬Q¤~–e^8ÂÊo2¡°#õ—gÀåòÏ&˜/° ç+0° :Žû‚¯/lÌVð®B!‰ùx ˆ`¾@�_)|�h¸üPŠøë´˜�Âv°oÁÖpü¨E„�hëÙqTý) N¨µR˜+ΰ* ß�4ù?‘ý�T¯p‰|VªÀ®Þû•uîÈ(Øî€À¶mÀ<j}à½ïçã'�ã?»LȾ�‚#¡ªÄ0Pr!Î,4à\9‚ ±" y„j+)д+% û½G‘ʧоaƒÇûE·›—iµg˜�°¿\i÷…·F| &¨5Þ‡XGôóWeöÀ"%„�׸÷©$P´Ï‰5“Cø`<>gÚó€èÇñÙ•}|#'åT-•Ãg½KÑàÀh^)6ž_ا#PŸÏ/1« �>Ã' _–C&H¼5ìg » øëz  øxÛ@/Âq_„õœ ñœ>ÃÆ~Ð¥êù�Ù'Í@L(Õ…€ÛÑ?àW+t�ðÙø @€WÜ’õ¸†× ›} ôÐOöà_[€w˜IÀ¯¿?ŠÈÕ<!“a24Ý rr=_§ÿ!O6Èw´©����IEND®B`‚IMAGE 1066 ./arch/monster/dragon/bone_drake/bone_drake.x12 ‰PNG  ��� IHDR���@���@���·ì���<PLTE��� 000@@@```  x€€`€€€   ÀÀ���À��¯­ƒÀÀÀàààÿÿÿÿÿÀ°°°Î��É<�_6���tRNS�@æØf��œIDATx^Ö ŽÛ0 P%óßÞÿ®%‡ôRÑÚ› AQ{žL2 Ð šDS4øX �Ò…ª –Ó"0ÖŸš+‘ž€wá!ž©ӜȰžVÛ½®ž! }ØÏá÷6ë×qI'á=.´ýH´£Þc[ŸDÐö#Zgÿ0\"¦µÀzÍ1ÇÀ&û®$°N)«†£sXÆ|ȤƒS q\½¯�0ϵV ®ê§Ðã¨õý|Ö ‰»O¡4>{ÛWH€Â¸ = ²ŸÏz)Å>*.XBxbõìmFÌ‚Æ!nØ dT«€k8x|,ÐúH‚x„ºw6tuÚ¿cÔà‚´½€`žx v „á <Z@„ï u( ‡±R L«¿º!80� –;l€Zq¿Ao†pb¡@€ 'À0à¾B€ Ãip»Ýï³æv[@ñ¯/ s…g8,,@Q ¬W5DÇü",X½Qÿ( Ek9„eÖ˜€¿¢„ÈÓ¾¤D> H,:Çb)Ï窄 ;âD=*.ÚžUøgg¬Q¤~–e^8ÂÊo2¡°#õ—gÀåòÏ&˜/° ç+0° :Žû‚¯/lÌVð®B!‰ùx ˆ`¾@�_)|�h¸üPŠøë´˜�Âv°oÁÖpü¨E„�hëÙqTý) N¨µR˜+ΰ* ß�4ù?‘ý�T¯p‰|VªÀ®Þû•uîÈ(Øî€À¶mÀ<j}à½ïçã'�ã?»LȾ�‚#¡ªÄ0Pr!Î,4à\9‚ ±" y„j+)д+% û½G‘ʧоaƒÇûE·›—iµg˜�°¿\i÷…·F| &¨5Þ‡XGôóWeöÀ"%„�׸÷©$P´Ï‰5“Cø`<>gÚó€èÇñÙ•}|#'åT-•Ãg½KÑàÀh^)6ž_ا#PŸÏ/1« �>Ã' _–C&H¼5ìg » øëz  øxÛ@/Âq_„õœ ñœ>ÃÆ~Ð¥êù�Ù'Í@L(Õ…€ÛÑ?àW+t�ðÙø @€WÜ’õ¸†× ›} ôÐOöà_[€w˜IÀ¯¿?ŠÈÕ<!“a24Ý rr=_§ÿ!O6Èw´©����IEND®B`‚IMAGE 366 ./arch/monster/demon/bone_head.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���ÿÿÿ¿¿¿=ï!“���tRNS�@æØf���þIDATxÚu“n…0 CWÇž—û_xKÑ~)‰÷ä¨)|}Ê6q-Ùnp–‚ º…É‘Wáɰ6nãÎ då{>`äk†‹MÛ˜ 7c D z/¢èBÒ>¸€ïÁ(tfÆæYPõ fÊ#AÅ(¯°û=@Ôë…‹­Ýï™ �Ç<41E‡mÆ9fõÒÏ XH òX þß!ñØÂQЊ>Èe\×–9†wo ±¡yš6+üÊHW}M¨„HÂÚÝ;^M{P‹-Ç6­ºyAÍoŸ•Þ~+Ya£çs@‚oB¢Vó!tµ0ë ÿPÈvôÇ����IEND®B`‚IMAGE 359 ./arch/monster/demon/bone_head.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���úIDATxÚu“ªƒP C×4Yúÿ_üè”õvø¢ xV|}c›¸Ùp–’Jz„ÍQWðdXã—¨ åmÀ¨=c :ÆžðclHtwMEûàÞ ’Ùè0Ìʯ†êk²J^ÔŒr´ÄOßÙÑ·À�/Ÿ¾SpV¹Ñ}éh âMæu¹öHõù<‚\ ¿r tØ Äc…³ï]]w¼'Èצz -ƒ[¸»º–Ôþ𶨽:Ê×X‰~t"ßx¢ª9>‡Î¢‚`ÐB`ÚG ’)¦“xú)f½Àóo•¢eµ8|w:k?»ãN _Âd„ÿð޳¬É $€����IEND®B`‚IMAGE 346 ./arch/monster/demon/bone_head.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���íIDATxÚ•’QŠÅ0 _déÉ÷?ñâšmSX6ýHé Rbú¹—m¢Ù~À&X *X¯¯Ù o†Ux3&'6!)Ï|À›13ì\l²3a§@ª{E’öÆ| £ Ðf˜Ï‚ª=˜) *FyuBõíõ \`³uõí‚#³ñÌC‡ ¦›¸ñ¨¨jÆL˜g�±úâ¢naÛ|¯*~çé#vÞ³ŠÚyŒ€Ä"„<þG#/fzüt}6]3¬Sè³À€šB� h(<„mÅàCÐ? ÞS(þ&,öý9…ÙRü/á_ëŒL™ÖŠb®����IEND®B`‚IMAGE 245 ./arch/weapon/artifact/bonecrush.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEGll`0�@ �€€€```@@@ ����í/6…���tRNS�@æØf���ˆIDATxÚ­ŽÑà ;p’ýÿ/ENË45m÷w2?òP¾5åŸÊ‡ò¡||áå¡<”‡ð‰ò(Ÿ(Ÿ(ŸÐ#˜™„Ï­¿Û•Ø&�Ûèà Ìý3HŸ"á#Wúz„É\œže‚·ä<F2j&‰*ºñ =’šè±ä(÷äO tð¶÷ø����IEND®B`‚IMAGE 220 ./arch/misc/bones1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿ!!!œœœ­­­½½½ÎÎÎÞÞÞš¥}Q���tRNS�@æØf���rIDATx^ÍAÃ0ÓSÔ/DÝXæJZºûýÚ‡‚ó‚vH ¯·f—®}ô櫈®®UÖxÞJ¨xÊ5B2�öÝÓÀl^B(¼úƒ !Å[Ðʳûë®!Péž3»Ë_|V,ïN]GÒoWrþ >G£0›ªx(����IEND®B`‚IMAGE 165 ./arch/misc/bones2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿœœœ½½½ÞÞÞïïïËô¬¹���tRNS�@æØf���AIDATxÚ펱 �0Àÿ_nx LU—zµ¥$>W °¾‘Iç¥ÂéFˆ-Íb™‚j@ws&ÜËA‰ÓÃZÄç Æø];v]y����IEND®B`‚IMAGE 192 ./arch/misc/bones3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿœœœ­­­½½½ÎÎÎÞÞÞÞËúã���tRNS�@æØf���YIDATxÚí1À0Ä üÿ'WMY¢ÂR©[<!ÙÃa‡Ÿ�:ñصXVM1C7“Ê3‰ŠðÔVÆ"/н—EÌW±ÅÒæ‹É�Öƒ¾Zô=0ì°s,xz.Êì3����IEND®B`‚IMAGE 167 ./arch/misc/bones4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿ½½½ÞÞÞÄ䈳���tRNS�@æØf���IIDATWc` `þ�LÛœ{µÌx]^½̰߽ "òïÝû×P‘ýÀŒWÿïÿkÞÿÿ½=ˆÁÿÿß~° ÿþP“á z�£´d—e÷E����IEND®B`‚IMAGE 231 ./arch/misc/bones5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ!!!œœœ­­­½½½ÞÞÞïÚþÉ���tRNS�@æØf���€IDATxÚíŽK…0 ›Ööý i¨’èIoÖA|\,ÆÇ¤úeUÕl‰†[É£4ä6e‚ÙR.Ïâ‚ X}BC®ÆÀMôÅ hƒÇð\œIj·þ º° È”FÙçŒû”´Ò“8çÓ_ k?¨#U’k!F!c†Êö?^r2÷âW9›����IEND®B`‚IMAGE 219 ./arch/readable/book_clasp.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE����c�ÖkçÆ÷÷çŒÿÿÿ’H���tRNSÿÿÿ�@*©ô���tIDATxÚÕÓ1À CшïåªQ—ı`êäìŸ\è™�¢eÀ@ ÖZoh¢a1@Øà3žÔöTA»Á@œ– @ʔޕ ìÙ ÔW!9¨Ó_”€DµeWø˜×=œsÔ L°5É����IEND®B`‚IMAGE 215 ./arch/readable/book_read.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…? R-���d3Ò;E���tRNS�@æØf���sIDATxÚ½“Q À C—ØÜÿÊÛ*ÊÖI¾Jò (õ؈}ˆ¹Ê{çº> ’Øj,Pjmm)zS&H‰ÐY$Á?#�¤îJTÁ+ žaùù;ÌW.+Ñ—ºæ]¢Qè¹7ØüÛìã{çÉdÖCƒ����IEND®B`‚IMAGE 219 ./arch/readable/guide/book_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���µ!!ÖkçÆ÷÷çŒÿÿÿíË���tRNSÿÿÿ�@*©ô���tIDATxÚÕÓ1À CшïåªQ—ı`êäìŸ\è™�¢eÀ@ ÖZoh¢a1@Øà3žÔöTA»Á@œ– @ʔޕ ìÙ ÔW!9¨Ó_”€DµeWø˜×=œsÔ L°5É����IEND®B`‚IMAGE 361 ./arch/misc/Container/bookshelf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE4V���d3²"" R-�2�.‹WÍ…?¿¿¿dE�Í��d�ÿ����€°0`‚B'ÒiÿÀËú€rÿÿÿnðLZ���tRNS�@æØf���ØIDATxÚÍ‘InÄ0C²[‹×Éòÿ·Fc)‘&°O¾„ìC• zû /2~þrݨ›uS n ‹çéqžÜE˜CÕx¢§ Øjľ>ò(0ÄÙÝ¥ÝL‡•3þLÉC,ˆ…Û“¿œf,XÕP í bôäåˆØ”Ë»ñ¾qö”žB�…¡òZ(#oBX&©®ÝÚ/tázBONìžÌVdlT¨Pa5|eB7{’/ ŸŠâ ðñ€\ÓäÇ%j«¼ '„« ÿ)ßY Áï1ÿ ����IEND®B`‚IMAGE 883 ./arch/misc/Container/bookshelf2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÑPLTE��������ˆppp~~~��|¬W,d4R7W8W8X@R0I]7L' S tc2n™��x=|?��„�ƒB&†�•!!•LœPPŸQ R¢SªW«W®Y±!!µ]º_½`¡R¤T´\F# GZ5™NI^7J gJ^7§UO( Q pQ q��yX-a1bˆ­XdŒdddeŒhk•mmm��-gq�q9r:rrrs:sssu;"v<v<w�'wJy=y>z>{{{(z-}@)~O*OA*€P€A%B+‚Q‚Bƒ�,…1„C……D,†2ŒGH‘ ,‡2-Š3–MB2O°€A¥T��ƒ4žb¬ ��{��‡±Z��q:[¶]��‰¼`D" ¾a¿bÀbÂcÅeÇfÈfËhÌhÍiÎiÏj×n|�‘J£S’K“K¨VªVw=x=­YQ r2P²šO-ŠV0’60”71”7H\62—_3œaû��þ��@tœ¯���tRNS�@æØf��PIDATxÚ¥Ïcoa…á>3³¶momÛ¶í­mÛvmÓ¦™wÞv7Ù¦çó•Ü9áBŒö÷v~m› v·67~lÝMÀÚ²{ŸËçA`Vçgì—Ølž>”°â´a3w]¨—Ïj1a3ž´]€Ó~Šãí!J%8m^3 úþ&  øU0÷Ô�]P@ð¡ÂÄ“7¤¤­š¤ä„û~•ñÌÂ룅ƒL3 /8xKHÿ¿ ù-(¹‘wC™Î!Õ¹¦ë<¼ Q8àà…HŒ£ô¡*dá–/Р ‚xŒ/è™TCRZµœ`¶}àç8h1x88ëm�?;§š˜LÌNiÉ©í8`©â:›? ˆøS¬îû˜ÔäÒ ²"6)ª®ÄL`Õ·WŸc»([B ÔÇp÷åÕ†Á7¯å����IEND®B`‚IMAGE 225 ./arch/misc/Container/bookshelf_bottom.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE R-���d3‚B'žôð—���tRNS�@æØf���€IDATxÚÍÓA€ DQíôþg–𠤻PÂ<E¹þT¶¨¸gÕ€) LI`JSËæuÜ ÷«Îz½3Š ˜.VtˆOP�ƒ±ASäci³I�Ú«ä ¸/¿" û£ø«¸óêÎú ¹ ɧ@¥�Ûóp v'î-‡±÷Ãä°����IEND®B`‚IMAGE 166 ./arch/misc/Container/bookshelf_left.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE������d3 R-äá¦ã���tRNS�@æØf���HIDATxÚÕÓ1 �0ÅP­÷¿s¡²õ¯y“`ô²×èu¦A. èÐ% K@ƒÁúô†3”t èÐ% K@·`xü íºaÒOÔ”����IEND®B`‚IMAGE 300 ./arch/misc/Container/bookshelf_right.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���d3 R-���d3†™Ÿ4%TÖé ”=ÙHF% R-§´¨oÖTÙf-è°•éДœ·CÌ���tRNS���úvÄÞ���¥IDATx^ÐI1 QBý =÷?-(Š0:þ¶ž¼ðål”÷-ÏÀ5ïk€à~´Àuà1¨¹àzg�Äú \<a"aÀÕ�D@ q3àZ°ìˆûìB,x¥úå€]H"¡ Gˆ² ¬¿†÷DÊmÖXÏà²>� Ä XÏ#¬`=ÉúÄX/ é=á°þ/(+ý ­è ä†é7‚����IEND®B`‚IMAGE 922 ./arch/food/booze.111 ‰PNG  ��� IHDR��� ��� ���szzô��aIDATxÚí—MHTa…ÏŒwf4Ñùqœíg[Œ…A-’"‹R±TDCÓ2#¤M‹~D(­èG7¤A˜I‘ ic ™DFeEÚªEm£…m¬ÞÎ÷ãEÆ•3·68Üï^î|÷¼ï}ç ù§þ ¡›mRLÿ½�n À½vàË)à‡~6´¬ @Ùhg2`¨�t>0êÖY #Åf䌤õÙà -E!oÙf§­I­@¬ PrÙ\¡ûo•/j?ªÎ¹Ñ½Û{lmÐQ  Ó²ØíTUKo©oæñþ€L ÊëÆ :Î<o~îÛãpÓ²�”\Øæþú¤6 ogÉÔÓïš²„×?©y°äo˜ç7ìóS‡Ëý¿žÖؤTùª� ï@šJÝ…îo/2Vñ+¾‚7×äâv÷G�Ã/+œ‰B¥Þ¨K«3eœî–ûäN½/CfÝSì a¿‘,"–xÿŒUÞ®ôÈÙ*—\krÊÉR—4ïpI{µëwMc €zú~³ qPŠnH]­Ë”ŽÊTLOCjJ -G#ëÆè‚©Åàçìqé굩þûr~ß ¥Þ&;7Úôº³ �„8qlv-ž�ÑM¢(Z•lkßšþ¡·Ì+}UnéÚ›.m…ir¼0å;�Á¬òiOüÌê@{MÀÀ®\—ÑUº™î¡ÇèáMËâÄ1”tšsqCS}ÔÑó•^CáQÇ ŽAƒ8q Ä ¶zÓKÓ“Ž¡Dƒ81 âX‰cÇÑ!\\€Øê̈́ܔˆc» çÝC«ëÖX‘…cÇ ŽAǘ¤‰căâ…Ú¯¯]>a‡q âD±6q ¢X›8q�>4&@k+´ˆcÇ ŽAƒ8ÆÀ¬‰c(Ç  Ï϶“±Ð"ŽAƒ8q âÄ1ˆcÇP yì‰ ÀêçÇ ŽA‚q âX¯‰c¬N‰ ÀYàðÍï�q âX ŽAë5q¬ ™{ÇÃyðá¹6q âÄ1ˆcÇ ŽAG0¶Å `â@dâ ‰8F®ßž¸/#j® Ûì C[ñifv#Öæƒi+Xï?‘g³S9ô8ˆ����IEND®B`‚IMAGE 804 ./arch/food/boozebottle_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��MPLTE���ÀÀÀÿÿÿÿÿ�KK�,,�11�4��;;�>>AAAII��KKKOOOYY�rr�vvv€��€€���……�‹��šššžžž  �¦¦¦§§�³³³µµµºº�¾¾�åå�õõ�ÿ��$$�))�������ÀÀÀ������������ÀÀÀ���ÀÀÀ������³³³ÀÀÀOOO������µµµÀÀÀ������ÀÀÀÀÀÀ���ÀÀÀÀÀÀ���ÀÀÀAAA������ÀÀÀ���ÀÀÀ���ÀÀÀ���žžž$$�II�����������,,�11�KK�YY�������>>KKK4��KK�������  �ššš���))�;;�rr���……�‹��§§�ºº�¾¾�åå�õõ�sVxÈ���ctRNS��������������������������������������� )/14:@LNRSadhlooquzƒ„‰‰–¨¨©®¸»ÉÌÑÑÑÑ×ÚÛæéëìôôú÷b„l��#IDATx^µÎESAà~oƒ»»Kpw ÁX uy¸ýÿ#¯ØCBÍ œèKOU35à?ò?`TDðH<½H;Ü`6˨ô­ÉÈÜà�ÝÁÍú8J§Îè’å-€Ñ·é�r7.Âvp1gÒîO ;= ‹ê†W„aÐÒqÜ÷}¶ƒÓÁÉ«“ããI-HÛ)àÝ÷χÇ=�V ÓçoÏ÷¯·R^i¶'b±Øª�YVÀ½ÞO&‚�Æ'AZjZ�Ò¬€)œ¤^þ±3ªé;làÝÜ/  5D€r À!hðJHS6î‘¢ŒÌH¾xÍmÙÅ­yl¤�9Mõµ0€61€ªBhÀ@aÁH;À¸m�w¾�¢ß'çó¬…����IEND®B`‚IMAGE 647 ./arch/misc/boulder.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���xPLTE÷½÷ZZZccc{{{„„„¥¥¥ÆÆÆBBBŒŒŒ”””œœœsss999µµµ­­­ÎÎÎ���!!!)))kkkJJJÖÖÖRRR111½½½ÞÞÞçççïïïZRZœ”œ�{s{cZc))1÷÷÷`ýýî���tRNS�@æØf��½IDATx^­’GŽÛ@E]±s`RÖÌ8ßÿ†.ÊáÁ þ nÞ«ú vúÏù1}»Ž×é/ôešò”³ nš®Ï¸÷|0 Œ‹Ÿñ{ïyÎp€‚„3î1!Îý=_28G_ÐAÿÀT$$"f>؇°ÿ¹ßfé†kRŽMÙŒ/yÌC2H\Y}Ù+Ó´-€ €;?sd!Á ;/)rèwaå0&ÏÅE®[U‰c|tL€ý f'õTµ¶“ ±¼Ý’«iHH‚T-M[kõ(¾߄…­#Q*â¥é®]Žáb†šñ[ØÃiXXXŠV›Þµvl'ãw‡˜ˆY°Vmk¤]ÚO‘{EŒ· ¢Á†5ílIÜ*°�3“¯Á·b«Ðô!dç eâ8VߌZ «Äéñ'‹ðÚÁó¹]v-¶Vk”¾ÝÕ>¹¹Z­©JÂ2æ=!±€­F‹Ì"Ÿûv[hœK•Zø5y±†‡0 �@D|öÕZjU–¯«°ÝçHBþvN£~÷æ|N„7Ã(q£çWK)ÎRØÊùoF4Kd—ûÊŸ”žfÀWû†Ÿ‹ÑÉ/sïm9����IEND®B`‚IMAGE 667 ./arch/misc/bouquet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��;PLTE���ÿÿÿ8 Ô�����ÿÿÿßßßÿÿ�ÿ�ÿÿ��¸¸¸îîî²²²ÑÑÑÏÏÏ LOJL|ÕÕÕÒÒ�èèè¶Z,U)•I#VY’{€Ï �¢ÿej¬sx oooÏ��‘G#¤P( ™L&G"I#?E!…A „A z;Y+=!. :h4[,H## 'K,‡C �<wB!k>«U*›L%j4 %^7c=|<¯j6F"ööö��ÐÐÐþþþûûûõõõËË˹¹¹¼��)*E÷��ä��ˆ��o��8�8ÁÁÁ»»»•••äìÿ ¦ÿÞÞÞÌÌ̦¦¦ÖÖÖªªªÅÅÅÊÊÊÚÚÚ‘–õccs8 Ô��Ðc™‹���tRNS����³“fš�� IDATx^ÍÒÕŽÄ0 Ð:{SÆeffffffúÿ/Xw¥‘¢nšjÞö>8RtYŽ-ËñA$¸üIàª< Hh�”ªy¨¸ö@PÊiºv U�Î�N±N646 Àü¸.ù»ûO (@�ðàú€“A6—* Rž/8UÕ5Íà´zhÅoÚÚ;:»¨û @`P�zûö  èç€Ñ1®ã“S!£4=C³s˜7üÅÂâ-¯¬†Z[ߨ܂ ; ¥Ü¶wcá/ÈýƒCûè8œ|Ÿ_\š&~º¹5DòáñI D©‹çä‹y'㯠3ˆÙof@ÒŽïQ€"�ý7ðfõ  &”����IEND®B`‚IMAGE 278 ./arch/weapon/bow/bow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE���C3#7+S;+_C3{k/'cS'[7/‡w7«‡o‹gS‹_S3/“o[—k_“ƒ;o_+»Ÿ‡ç« ø���tRNS�@æØf���‹IDATx^ÅÏGÃ0CQrŠŠ~ÿÃfØ1$ÐÙåo5€ð¯H÷ˆ\ȹ¶æF²N ¿~$ëÀaÁí]â9ø=l> øúò n—°ƒ#•Ùzâá»ç豬Òa·&ͤƒ} ÊÏ:fí?|`Z”Ýå…1PÚæbPí¨† UVíX tíl ]÷´l‚)z¯����IEND®B`‚IMAGE 183 ./arch/monster/acid/bpudding.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���\IDATxÚÝ’A �! ›üÿÑ"±T#zÛÄÌ!-Æß@ç“ÀÆÄ€èTE‰Ä,(—q'À 2xÌ ±ÂçW‘ÕУŠÐO{¨ùõ´ bÞ"ÇYþ—t«ÆäÆ·hS:­ƒB-3����IEND®B`‚IMAGE 184 ./arch/monster/acid/bpudding.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���]IDATxÚÕ’A � [ÿÿè‚()ÅÎÍu¤ÜeÛ—Ô ˜š8½�°¾ü#ÛñBà 8\Iö„èAï~YTÉãQç?yLH@É«Æ;pukÆMrT{ŠË^ƒßÑJc `oå����IEND®B`‚IMAGE 169 ./arch/monster/acid/bpudding_g.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���NIDATxÚÝ’1 �0mþÿèbEì—RtÉ-e KIb‡çС†eg“ü¢) ÂàWÖl%E€ ^B]ă¢ˆÀ äMB­ÞG…"ß±ùþ�ý~Ø����IEND®B`‚IMAGE 170 ./arch/monster/acid/bpudding_g.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���OIDATxÚÝ’A � uÿÿèÐ r¡CÍu†’L>D'T;©‡Yd…«UýF/€*»ÃE9DxZÐ�•'…Æ 7ªÔÛŒ!`YëGE"Ï1�÷[å����IEND®B`‚IMAGE 171 ./arch/monster/acid/bpudding_g.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���PIDATxÚÝ’1� ¥ÿ´ ±‰¥.Úõ.ªã¿ÄŠÆŒâH a$¡±ã5VÌ 8Áò¾–@.h#h(Á/q±I/ nàà ÷%ŸËWö,ÀJ©í����IEND®B`‚IMAGE 172 ./arch/monster/acid/bpudding_g.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���QIDATxÚÝI � kþÿhiÀå¤9”ÂÌ¡M|—B,1\`¥#áSN8Â^Xâ²Et$o@˜g_nšŠ«&ï«V[öDAŒÇRŒAHnÆ����IEND®B`‚IMAGE 179 ./arch/monster/acid/bpudding_g.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���XIDATxÚÝ’Á � B›ÿÿѱ¨Qd u*yðÁ¶0}'s[Æ€UñÜ‘ö®€àæ6ꀱ èsy§œ@'?u¸$?St„ –ˆ¾�»Ê¸ïZö’2ÂÖ_`¡w©����IEND®B`‚IMAGE 178 ./arch/monster/acid/bpudding_g.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���WIDATxÚÝ’1 À0 {úÿ£KŠMÁ©Í-$âÈø: %|Û<hO”ã.�b >9z ·©öU~üçû€¤`†_”ôvõ=[ÝQ¶ü‹ t~À2����IEND®B`‚IMAGE 182 ./arch/monster/acid/bpudding_g.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���[IDATxÚÝ’A À0»ûÿG—ˆVÈêAÈ%‹à¨àó7°ð‚:&ƒjxÒp:ÁZg5tI¥Î z­†ÁfÉÌE/©Å ƒýCä¿ä•:ä«Ѷü*^-ôç ¾©����IEND®B`‚IMAGE 182 ./arch/monster/acid/bpudding_g.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���[IDATxÚÝ’A À ³óÿG˶‡êV/í d!sHÔúj¸hÜé„Þp'2IГ=B6ÂsƒvÆ}o{r×ùµ*ôlÂù¹±âTᮯ¿¤S}Š0¿•‡£ìe����IEND®B`‚IMAGE 184 ./arch/monster/acid/bpudding_g.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���]IDATxÚÝ’A À ÍþÿÑÙº2¼Õ9aG$!ã6jâ ±T‹ž¥tÁDl¹êÃ^þ`asq>@ðc”ÀƒdaßåÉœ¨OWØ—Ôó^`'sùPb¢§ßÓ����IEND®B`‚IMAGE 196 ./arch/monster/acid/bpudding_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���iIDATxÚÝQ€0Ciïh³¬f„âÔO}_Íúañ70X±«9ß1±^J`¹¹çiÄŒ,alŸÐ™g=‹à=¯è´<ÈAÐ> Ÿ;Ó4¼±¹S{%Ñp4R©Þ–((š‘Ôø\1­EWE����IEND®B`‚IMAGE 194 ./arch/monster/acid/bpudding_s.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���gIDATxÚÝ’A �1wòÿG÷°`%µä¼ëEi-!ÏÏ €6O² f0}¿‚@F€ŠxGÁ¨SË À%€Û Óá7Ô›N#„z áQ‡Ùé@�¶½Á¨št�H=c¢,OVÈoÕO£Þ²,2����IEND®B`‚IMAGE 200 ./arch/monster/acid/bpudding_s.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���mIDATx^Î1 1 DѸðdÈmö*ôê“"÷Yß7¼°u"T<Ð èñïp4„žn †Qé E€À 7®“ g0«™ï×BK˜B'à¦ïúP}#@-»qÖŽçÆÇG*ÜðŽïŸµ?ÍY^#ÌxÀ•¯����IEND®B`‚IMAGE 201 ./arch/monster/acid/bpudding_s.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���nIDATxÚÕAÀ …ÿ?º©%K*áÎI—‰YYׂ—>„ȘÀwæ\œ‹ÉþŽ9» | œ«…Ø!ÍŽ÷â—½ˆ/—!7‹¢—HÂnÁ”&› Šà¿»÷&¬r ¹ÊÙJiòúh”ßÉrЬ¨40����IEND®B`‚IMAGE 218 ./arch/armour/bracers/bracers_ac.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE    F5h“‡«úúûÿÿÿDÕÔÏ���tRNS�@æØf���mIDATxÚÝ!C!ÃF ý÷¿ñ E|·Å¦ùü"€tõQÖåe“|Ùò2ÙO É»Åí?ÁÛ^º÷cn,Éå¹ÍyþCn Æú§ÜÆZôœ ¶tÍEz“»¹›» ¹›»9æf(ÿw|j y˜O‰,����IEND®B`‚IMAGE 208 ./arch/armour/bracers/bracersdex.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEï½÷!!!))){{{½½½ÿÿÿpOÀA���tRNS�@æØf���fIDATxÚå± €@ÃpBžý7Fz4Çу['…—ô~K ý'Qû—ž 2êÿ¶K?€DÎôÕ +÷(«û)w0‡·Š\H¤6—ÓÛIÄ[îèsyËåòMîE{Sçv0ýÇØÈjeå 'õ����IEND®B`‚IMAGE 194 ./arch/flesh/generic/brain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿÿÿ���Ý}]tK%Ì���tRNS�@æØf���gIDATxÚí‘€ uÿ´ çªú=’v¬a;~&ÎA®±„BÐa“Ò¢â8.úaåñ•¨4{ ;ŠÅã¾o<ÚC»Øô©šÐ îS$·SÒDü–<³ŠlC„GžAþ-xÎ!P ����IEND®B`‚IMAGE 249 ./arch/river/branch_125.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���•IDATxÚ•’QÂ0 CWÇÜÿÊ@ÙôDM:á¯H~râªÇ”ë¥Q‹<=€ñ' ¨Z�°AÀØ'ŒH@È�iªk©ß@Ý6�òŒ¹Ô /lkTw%X´ø;QCÑÓ¾yW“ àªH k�‹œ·�‡Ì &h|·¬�£àÏI×@b[´L�­žVú /h›”����IEND®B`‚IMAGE 251 ./arch/river/branch_125.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���—IDATxÚ…Q€0Cm·ÝÿÊ&Ê,–,ôgš=ŒëÉÇd�G`¾�× ˆo~ º!~¶À6xÌU‹ãÏÀt°Ì Q�7ô›TeÊB`}€z£iá©€ïb&€ÿm"�¬†¸@¥l�¿/@© ?ÕÌŒ|C1‡fPµâÀ¢?R€ `¦µ¯¯ôP†f‘7bü ‚`>Ý ����IEND®B`‚IMAGE 265 ./arch/river/branch_135.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���¥IDATx^]ÑÁm„P @¤PÁ~¥�p‹g¹Gb+ý÷’¬Xâ:~²e½iš€ŸéÞ ôUÀ yâùC‚*Á~ñª„^R+€¾Ò0Ã�£!@|Ýa>€$‡¾ke  XA-Àã‚<Á~Á>€ °Þ!o¿øfø�DCH(X°…ÚiA Ï �ûЯ° 5Aà] Ø‚ê ‚g—­ÛŸÑðšÁS/¦ç·ú����IEND®B`‚IMAGE 251 ./arch/river/branch_137.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���—IDATxÚÅ’Q Ä0D3Fïåâ¶–¡ñs'EjÑõ“o ݺ3Y€J³²SšŽ7@ÂÝï0z‰DºCl,* �›}í?!€PÉ-z-¢3 KOÛ¶E±ÏCÂìàH84@Ñذ‹–wÑvŽP ªÒ‡r«üà §´´˜O=~þÎòÒ©Åoçã‰ÿG$q �ä¢Jü����IEND®B`‚IMAGE 262 ./arch/river/branch_145.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���¢IDATxÚ•‘Qà CIbîå©ÐÉk å£Dâá8n…šÅŠùQÀKÌy²O¢C{cÙWì¡ ûø°(d7ÿh Â:?¿ÀsA…:P ï@d‹¾®Ù_‰_AF˜„ø  G@}2æS”j«Øì �³.Ñ Ø /èÀÔBÞ,ˆ[”PÀ=@ F^€î¶ îßA~�Ù OžvyG����IEND®B`‚IMAGE 257 ./arch/river/branch_145.211 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���IDATx^]ÐÑ Ã Ea¡ Òâ?ÿIÞq6ûïRª—h¼¢C×Öð_¯àf8À­‚QéŽ2ÃGÒN�ë@8ûеÀ‹u¿ |A°Å¦JKÒŠJo%€Çý»ABð|À@Ð'Àxä³H¶ØÀ§;‚5PÈ–¼Æú 5 8à 3 j!÷ôq3ðD¯SôAï&����IEND®B`‚IMAGE 261 ./arch/river/branch_156.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���¡IDATxÚ…‘K„0 C'¹ÿ•) <6U½a‘'ÊÊŒüVÕºt¢ÈÑ�‘P�Íp ¯ÁÊ 3oÁ@=�ÀX•®µ`oÞè8ƒ;L>ä1w¹ñÌz:ÝH’;”¯ÄûP#r&Pdl€[ÀrÊ2ÄÆZŽ¢ï¯´T¡Ð ˆCQ8b3ÖRÈÓK€Æ_Q_8úÃ÷¶%ÿ  A„À(`����IEND®B`‚IMAGE 264 ./arch/river/branch_156.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���¤IDATxÚ’AÃ0» üÿË•¨@`bÒ=X–=0ÉÇ£"‰ä^ý2€m�)™Ü'à§Rˆ‡†ØaÐÞC¢iZô1Á‚�¬�êZPçP_Énx¤!€yM_6 z”g�<{ÐÔ²[´Œ™±L@~�¢�×è `Ðþb�ÆÍ0sø€ @LóˆQ‡ˆS+¶Q¢™À1Éåc-Ù€4|„8 ±VžJŽ����IEND®B`‚IMAGE 252 ./arch/river/branch_157.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���˜IDATxÚ“Ñ Å C×´þÿ/u#ÕHïeysCÁ«+ü¨¸^Eü�¼Jà ô€ç8Ý^`O°”ÀKH‡¢ 6�4>�l¾õˆ 4ŒÃº§î4P`Pulñ@C&L�JÓ5êܘ ›di„¦ãp:ÿOPÕ�’m˜”4u%‹¿ÕÖ‰€-@ñ»os± Ú¯‡§Ô����IEND®B`‚IMAGE 269 ./arch/river/branch_158.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���©IDATxÚ…’QÃ0Cgcîå©LKRp7>*¤¼<ÓW•¢®êÌù`j�±€¨â"ðéºÏ)z™)9 ÀtÌiÐÈÀå0 Ÿ$råà¤1L»Ÿ|Êi¾/ì H« O ´v™Xð†júû›¨F ˆè{8‰•Áž’é ¡¤7ÄÁ¹%Þ HÜ"Ã>!ÚýaV±[x ð  ÒO…����IEND®B`‚IMAGE 252 ./arch/river/branch_158.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���˜IDATxÚ­Óá €0à<õý_¹lçÔŠ ~\ÎÑ¡÷eÇUÿ¤Ç Ð6$ØÑ_ ¦È ì±ðõÞ•7À²Ç=�3bΔg‘Ô P'ÈùxÆï"‰ŒSÖs2Á…"E˜µK Ðe œ¢ Þ°-iÆ´€™áùÖ@Æ€¿� ôeH»( ] ÿx5á~‚p =½9�����IEND®B`‚IMAGE 252 ./arch/river/branch_237.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���˜IDATxÚ½’[à ñ#÷¿r7ÁµjM¤ö#ê€ÚH¬ø$s|ò>Á½Vk™‚Z‡“.®�Ô8¿+]t¡²öœRBˆ¨¨A�-¸{ô‹Bc×£¬³ÄacüÛH¨…®Mk{ؘ~(¥L‘`&¸ºísÀ•P‰õ'>¶ÛÀÛs<*ä …¸©ãz’ÈØ]›þÁ …> ;ªrIÐ����IEND®B`‚IMAGE 249 ./arch/river/branch_237.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���•IDATxÚÅ’AÃ@lþÿå¶l%š¤ÇŽ"åà1(«C‚( XjtZÆ#vïpÄäÛ€åk‘::üÒAæf8 •œ‚Ç0 sÍæÚE…=®$®v›`ÏüÍï’Z¦eÞBë¬ù"¸=]Ò¿–ÏBdb›íPŠë©u¸ŸÛ5)ÿø"x¥„ä#pÝÃLÿÎ B BgÞÛk����IEND®B`‚IMAGE 255 ./arch/river/branch_347.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���˜IDATxÚÍ“Aà Ù5öÿŸ"[n£@½urHX1þ·~rìŸRb/F¾º",A9 < A)€¨yäC©Ø[" !a4‡Ü‡$Ãl+~í¤Q…»ŠÐâ+ U Ñ­BmÅèo¥…š‡›cÊÞ*¸OŸ–䨼(¡îÃ’f]ˆÆ·Û~A¢¤WçùT¸�ó, ‘ðö›¶����IEND®B`‚IMAGE 251 ./arch/river/branch_347.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���”IDATxÚÍ“Ûà CcCòÿŸ<¦ lÔ°·¹måÓ\©ý¥¼Õ•ïþ±R­äC–·rDÖD7��/R€C €˜ß‘ 2#°R" EbØ"Šä¾H2ös`ï“Ôx»¸ÚE ¾Š¡$jA £°|Þv1mÆ¡ÈM›’{üpä<ÿ®~îÄJÞu«+àÞ]Îmåèúè âœ/Oó����IEND®B`‚IMAGE 248 ./arch/river/branch_357.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���”IDATxÚÕÒÁƒ Ð%Yÿÿ—+]f£6´çæ 3ð$ŠÄ_$¯1ÁkÚÍk (°â“ŽqN �Ð&“ã°æ»v>{ Ö=¤ð_¡‡€ P«ûÀ«´ÿŸƒn›÷ЈO¸Íñ ›=Pð ¨.Ï0Ò½�fÏûgœ(Ÿ+×™%é’)PBû³Ä—%^› † im×����IEND®B`‚IMAGE 240 ./arch/river/branch_367.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���ŒIDATxÚÍ“Áƒ0 C»ýÿ_td^¤È»îq1òSC«ÿÊâóœ—C5oXÜM%UàL^Ø©6‘Ä…H&¸ÐwÄ<^!è‘€4Þ  :ùK�`„’tPµså.l ¦žÜ Ç'dÏha]Ðh—uq³ŽðÄúÄ¢„ϪsWmbøÍ …€ C7Ï����IEND®B`‚IMAGE 251 ./arch/river/branch_367.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���”IDATxÚÍ“ÁÄ CMXùÿO®u¨2"u÷¶ÏÞ’ )µåo¨2NÔ:2¨)ÙR¤Èg€æ†.‘H lF̨÷ƒpb(Ô"´“]•¯÷@è»A×à0‚:À•7%ÇP%ƒ!ßÁ¹™¿…}hÀ²—¢Ì;°[m)õÊýT3€ŒÉ‡;¯‹øñ¿Nˆvqr-+ ü_í`����IEND®B`‚IMAGE 242 ./arch/river/branch_378.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���‹IDATxÚÅ’Á Ã0 Cm¹êÿrçdž;Ô +{„áèSÈ8aÊç«@­ð½a-±¬�5MbœªbS8ÃlXòÓ�€”6%Ö^‚½Á£ñJ ÝEÐ.ö5ô Ùy¯$®ðÝßvê“ó�SÓ›§‡ÔXwx>°qÒ6ú¿Ëãuhÿâ�†~ Ÿï1Þ����IEND®B`‚IMAGE 250 ./arch/river/branch_378.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���“IDATxÚ½‘KÃ0‘(ÜÿÈÅ/%Ž?±ÓE;Yx¡yÆ(¢&-EÀ5Ÿ t](€¼¢…#Çô ­Ð»)ô[<”‚¢ ö/¦O¹i¿¶d8fUP¸&Žg„b)8ƒF ±îþ¨(l’_UÍ;àçtdQ­àdÎ<«æöwÿX0{Y2 H¥õ20-_¤á LÒ ÊZär¿����IEND®B`‚IMAGE 178 ./arch/misc/brazier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÚ¥ ÿÿ�ÿ×�ÿ��Â|3���tRNS�@æØf���QIDATxÚÝÁ À@ ƒràýg®nçU©*_ˆ3ß„5°ûhú½Ð|$± Ú#Ð&4Dj?G`z0«sàé­þÕ K`ìÁx™Æõÿä^MÉ"^é����IEND®B`‚IMAGE 180 ./arch/misc/brazier.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÚ¥ ÿÿ�ÿ×�ÿ��Â|3���tRNS�@æØf���SIDATxÚÝÏA À0ÃÀäÿ¿¹äqN…R_5,ì|s޵3 ¤ z'ª rh'4¸<±¦ƒ¹ö7¬%½£µoP»pv`ãÞ´íþÏ=fLoS?����IEND®B`‚IMAGE 182 ./arch/misc/brazier.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÚ¥ ÿÿ�ÿ×�ÿ��Â|3���tRNS�@æØf���UIDATxÚÝ‘A À0 ÃRÉÿóèæÆ`LW‰`È|• iZ¤x¬AÍoœ»$H(5¡£ôn¦°Áý›Ö’îÑêwP½pìúì ³ý?¹�|άà#§����IEND®B`‚IMAGE 183 ./arch/misc/brazier.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÚ¥ ÿÿ�ÿ×�ÿ��Â|3���tRNS�@æØf���VIDATxÚÝÎÁ €�Adé¿f±�ñeb仓Ë雳§À &\½è¾\’{àI¶h]]TdtÖzìo8 v7̾A;6°ˆ®} ýs'ž_"œÈÆú����IEND®B`‚IMAGE 244 ./arch/weapon/axe/brdaxe_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���‚B' R-Áq8���>>>$$$,,,G$aaad3‚B' R-444¿¿¿Áq8»ˆF ���tRNS����³“fš���lIDATx^ÕÊK A�Ѩ•ñÿ¹ÿieÀì:= ¸°¶¯4 ÍãĆ/G6üaºŸYÝT¿Þ0¶©~á5º+GóÏ``ì9.OF^†xî ÅEõD†âª‹¹gøÞÅ]Ä%F.P"ÞÚÁÔµ?h^ü¯{Äh?¤S=����IEND®B`‚IMAGE 239 ./arch/weapon/axe/brdaxe_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���‚B' R-Áq8���$$$,,,444>>>G$aaad3‚B' R-¿¿¿Áq8ÿÿÿs€���tRNS����³“fš���dIDATxÚíÊI@0QC"ˆûŸVô½ù. —]¯Ñú®š`=Ûº„‚ýCpüâ±`ˆÓ‹4»�Þ™t »Jæ•ëH:Lðä:ï ”­»Ð¼»ÈA—¨${÷A‘ñîDF 278„õ ;Æhë«����IEND®B`‚IMAGE 245 ./arch/weapon/axe/brdaxe_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���‚B' R-Áq8���>>>$$$,,,G$aaad3‚B'444 R-¿¿¿Áq8Ä0j ���tRNS����³“fš���mIDATx^ÝÊË Â@ѨÕyùüÿ¯ H/ú:‚k{jø‡.=?785ýõ¸á›Ê¯þ¤ò…ÃW~ìâK÷ÐqQxéDÇEíDx5Ø ý÷³áqØËaºOØ£·³=#<û‡jß�fçOb/&����IEND®B`‚IMAGE 235 ./arch/weapon/axe/brdaxe_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���‚B' R-Áq8���¿¿¿aaa,,,>>>G$d3‚B' R-$$$444Áq8æ½ÿx���tRNS����³“fš���cIDATxÚíÊ[€ QÔ)âÛý¯V !Q’vÞ¿vNhÞ×c¬Æê)¯ì®F°»Áî�E $ZÖu‚ùÊ‚Ïë}±žEk*¸}Á~øbÙ~ñ _(p“+`U<g 2O¸‚����IEND®B`‚IMAGE 423 ./arch/monster/insect/ant/breeder_ant.x11 ‰PNG  ��� IHDR���@��� ���•C޶���3PLTE���c2ŸQ,¿¿¿Í…?���þ¿Êïå‹cD±!!ùqÒiÿÿÿ�1��Ì�-ŠVrLcp���tRNS�@æØf��"IDATx^í”ínà Ew¯mÈgÛ÷ÚÕ‹kµ1Mšö«$,…{ññ¿¼1Xôï§ô¿Ùâ·€ÞDê~ïu,°sÖ‘ÕÛ´ë„“çM“ZIÂÀ¡ «ë~¢ÖD �•½ËTgt`¾‘ƒm>wQÐ3`»Î$Íà­D¾+X•fÍ@òv%@' !I,>h<'­0cYèúi{ ZÐ,ÔóU¢ô|#HHIm~ÔÞ%˜Í%¼x­ÀR¥=LQÚ8îãQcåù"KÀFù8$åe ²îïò@UåW~ºkD|PB¥+..ñAu"rýK¸8;à <×þ9o>2±QÆ|\j����IEND®B`‚IMAGE 464 ./arch/monster/insect/ant/breeder_ant.x12 ‰PNG  ��� IHDR���@��� ���•C޶���3PLTE���c2ŸQ,Í…?���¿¿¿þ¿Êïå‹�1�ÿÿÿcD±!!Òiùq�Ì�-ŠV©Lõ���tRNS�@æØf��KIDATx^í’ÛŽÃ D3c›k’öÿ¿vˆ”¶VÚ·•vÁy˜ƒ5fù[ÒS¿�, tE‘ÒöïÅ8ô^T…*¼Ð‹„tÈÚT½AY$ÕxŒªÀò \rΪ±É“›Ÿ¶W§Oyô3Ä @’FÚ¡ÝÈ‚8ÆþŒ�xË+€–Æ ‚.à¾å;Q®ã{ÁC/F’¼QŠéB8In»êÔ’«?*€±ˆÅŠ•W¾]=ŸD#.€Ç°®°Ñª§ß‰ó¹ÿÅJr#¢Ý<‚V$”¤¤0èÁC'€’—¹½ÖîŸ2€þcr{žûËq”Yž¦ÔdþO€²½ ¦@õg@ýˆ×"8@œ$pîJ[�ÚnRª“GݘCj 2iNhÎHòâŸ�ZMY€9Q#¢Æ‹ÿ__øóV‘Úî‘����IEND®B`‚IMAGE 368 ./arch/ground/brefjell.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ýIDATxÚ…’à ‡›ÌÄÿð)˺¶Ú‰"¤œbñ(¸xÜð¿^Ü’º¤{":ä¼hŠÁÈëºÅÀ '¯h z/; «.…Fþ ¶× P£ùq"< žR0ˆ¼9ý ȺqÇÆ±êKˆÆE“} ŠÄ¸°hWÂÆÕrCMœnÊÅ“ïâéž´¼ "œ…ð¶XsDû‹©94æ,ÀOȺ‰õÿ>„$[xÚB-Q$$¦ƒÐ—�"ßÚ8WF‘›º¤Ç÷¦�ï§g”Ÿ›ƒ=Bž¹²@¡¹%g Þ§ ɧH©ÆWœGJÛ?^xB¬ýth/����IEND®B`‚IMAGE 449 ./arch/river/bridge_15.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,�ŠŠ-ŠVÒi¯/_ÿ��c2Í…?�1�cD���¿¿¿��ÿ+˜Ê���tRNS�@æØf��?IDATxÚ]“Yv…0 Cɳh¬ îþwÛ æG‡ðA„u1ñõ¨wIw·± Yû¤L奦ý0Pˆ;¥’Ö*hg….L¡C%^ jŸ9½ï›ÂÐJžeuêkn«6“‘î*„©MÊÿJkÑ@¾ VEs¨à ›ƒ�(9 ùÛØžˆ<ŒŠ ÁâºA¿ Ÿß fpn-ƒËÀû[Û BÕÝà”²›° 0ÒEazAX‹Ò0ü 9 4ÀóÑ �¹Ö0Ä BJˆ0  ¡Ÿü4jU0p¦;DSPý_äÝk#Wú œJÊû<�Ð`BS0ÔhØgÒ&‚§Hÿm€i‡õêSþwzEØŒîSSµÆÁ!pŒV§Wê9›äÏpQOC×#ª?ÿôú¬ ±ø����IEND®B`‚IMAGE 437 ./arch/river/bridge_37.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,�ŠŠÒi¯/_ÿ��c2Í…?ùq���±!!¿¿¿��ÿ¸s���tRNS�@æØf��6IDATxÚ}S®Ä £‡;Ë8ïÿ?÷!zsqÉ«a©„”¯WÝà.?¸/ú&]‚¾{¿“Ìðû¨ô­DÆ+/ÉŽc#ܾµ§¯½ÂQQÂp<{ X© ÚÚƺdU=[äO´ÖÒôTÌ;p¨}‚ìm LŒt¡ÏSІ µ¾/)  +(Ö—F<xµðÖ‰á:Pr«IÈzffÃ¥Odq>ƒ‚]ÀÔ$œ••™èò™u®w¦§ X²2>Ábüÿ´P/€uwQ/-áõGž¨�*-÷ÉCLË,IÕZ«êAµ#E&Úpj#H±&R¦dðhb �ë6N9—:/ t&·†z IŸ'w8¹õªòx K¼=­WÒKà. £ó+?²Uø®þ3Ü_Îÿ f…?«ÐÇ/.4����IEND®B`‚IMAGE 329 ./arch/road/bridgemoat/bridge_m0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1����±!!d9ÅÚ���tRNS�@æØf���ßIDATxÚ}“ ƒ0 C±ãe÷¿ñf’U¨Ÿ=ˆÊ“ J{e£i®k¬WQÆ}‘Œ@³�¤_ˆ„žÂM·Ð†K¿)†,£ž™’Ê0–©Y°!Å´VH´!׳á"aIf¡ùûW!A ÆIØ51þ4±¶é25j‚]~Ù&è_ŸŸˆCÂë=°ë¡pNHüý ¼ÅZŽ@Àõ2,Hþ¦ÉÓ°ÎÓ<¦9µw ª�ZÐvO*Œë­ q³%³$!ŒÌz²¤ÜŸ¬l…æ³iÊèË\…«¾· Ik¦…‘����IEND®B`‚IMAGE 355 ./arch/road/bridgemoat/bridge_m1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òiíu�c2�1�cDÙ¤���þ¤�±!!Ôržs���tRNS�@æØf���ðIDATxÚµ“QŽ„0 C›ÔuÃÜÿÀ›lÒªb†Õh_‘@ؘ€¡™ÓékƒýÍ`‹wC‰±˜¦sKäJhÅi Î>¯Âya‰¥ìil0¯ÓÍÈHCÝ{Îa÷X™7¹ @^ª’K ‘*5„@í8¤0 .ЫßP�’Cÿ„*¬ú‘�Ù*±i_À Xâz´a€¨,‡'ÔÑ­‹rT‚¨SÏ.�S2AAö·.Í„ÐóÜ*£¢@ « Z6Ớŵ&öÀ6Ù]k@X_Ù¡òMâOÓî N¾ùqþÿçm?+0ÇÈÝL8����IEND®B`‚IMAGE 876 ./arch/jewel/bronzebar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ùPLTE.ØÁ‰ÖÁ‡ÙÅŽœŽ=Ò¼{£•F«ŸLǸdʹiнq¶§QÔÀÁ²^¯ L˜Œ7”‡/ô`Ƕh¥—H¨œKÌ»mνoœ;•ˆ4²£MÖÀƒ¡•@·¨Tº¨U‹}"Ž€%’‡-›Ž8œŽ=Ÿ“>¡•@¢“C£•F¥—H¨œK«ŸL‰| ˜Œ7‰{œ;‹Œ#Ž„)Š~’„+‹}”‡/•ˆ2¯ LǸd‚)‰z•ˆ4¶§Q·¨Tº¨U¼­YÁ²^‰|Ì»m{kŠ{q¿°\²£Mô`Ƕh´¥Oʹi…vνofUsdrufнqÔÀ°ß} ���tRNS������������������������������cêPë��IDATx^}Såz1‹wÂE3/ó1„©øþS_. oõùßÈÒx<ÚXÃÿÜípõdQyíࡃŸ—Ù�m÷ÑÁElÃÔóŸ¯Ã£EV äÈúàŠ‡Ã Ââ�c;zÚ‰­pž<À\°`ÿ±¸üõ( „¤LKJƒ`<臿‚Ѻf˜~¹ïãWIR-U}î‚’¤zgÓ-Ë2OâÃÁùɉ‘\¸Vòxvn;y;"$ Á ºÖR!‚4±á!Ú¼±éáˆQѧԘH*GHÓ, ³k°“Gœ3‡hT‰È(–—+B– Ó­•ˆ6?BrJÝÁ¼Ö<`Td6άݻ¶ñ»JHF¯UX­Ø8†…-ø™·~)èc.ùŠ"¥©i‰¬E1Lª¦ùíß0ö**Œi­U… L¡MgÍÙü×ö‹‘”2¡ŒQebmåÅéÙÕŸÛz=,çLêºV4A7Í|yµ¼9øšGÒAKc´ÌḙϗÍäþ·¾{YJ¥•t £xs<›_œ{W«3J)ãP«édz1Þ{¸�ì˜30+Œ'ǧêq|ð*'r­1žžšmÿiBº/J¥ÕŠ0›¼ñŸÍH/•ÎEOæ¼%à[NÂÌì´E l•¥1Ó´Gu·“KþÚ´€O)ýÜÁfw-ð‹UV2´®Ð~����IEND®B`‚IMAGE 177 ./arch/monster/misc/broo.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�¿¿¿Sñ” ���tRNS�@æØf���SIDATxÚ푱 À0£ïÿÿ¹p”lÆ¡:Ô!Ë&’õç­¨qi)I00±øh0rCç;Gƒ«Â#Ǿ•4ΞÃN £U¨|D@8å]øZ.6�µ=ÿ "����IEND®B`‚IMAGE 172 ./arch/monster/misc/broo.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿ¥�¿¿¿Sñ” ���tRNS�@æØf���NIDATxÚíÐ1 À0 ÅP+ÿþw.ÔÉXQ<u¨ÀYüÀúE� ,Ö� Ø ˆ 8ͤ¯”ˆìÝ“èz/�ýè[/@?D BÀº�6û�±¶çA›����IEND®B`‚IMAGE 169 ./arch/monster/misc/broo.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿ¥�¿¿¿Sñ” ���tRNS�@æØf���KIDATxœc` „1D  )tchTIh¬ ˜zÌ /k�1jŸ0‚EÄ3`Šдca„@ 0c�#$A��¶oÍnª’¸����IEND®B`‚IMAGE 414 ./arch/ground/Wood/brush.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�d��Í��¥�²""hàÿ×��Š��ÿ�ö>)��AIDATÁ±r1Й­²HµM!Rm5¹>€€øPàxûª¼J¹ ø~¿ y¤;Àƒ± ëðê Zð‡ª•ïî/ŠÁ®Öáôk±cžÛþã`Ò2‹ª„™¦G¹,˜` ã Î4ª¯âeÇâä;–pº<l‡…!¤U™»¹­í- ¼éi1ã½îq=l5øæàÊâ² þÉΠ·â¼œîw0L7ØáÞžua}7ÁÜ{Ã}ž ´w„jÃ=¼1éD¸ï<µÏC‹‰`ª×Ãp·M¿˜,B~=°OóVž­ECß›Ó,»Z}.CÛ Ašüõ¿Ú´î½sœ¥Õ ¿g2ÖÓ'yº &ƒñÓ4Mÿmå_:TwÜP`Ã¥Â!' ˜œ è›æäê VP )pÂV»û´Ž[/ ¶'����IEND®B`‚IMAGE 202 ./arch/weapon/sword/bsword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaàààG$���@@@‚B'¿¿¿Ì!O£���tRNS�@æØf���ZIDATxÚíÌ1€0 ÁØ üÿƒ†–ØE ®]ÚF¨Ì{7£p£ðAáƒß¿çPø$s &‰kàÎÒî†<¸“8Z¬ü8ˆ`å÷@7¼óãIÈÓ Ñ6º�P³&����IEND®B`‚IMAGE 166 ./arch/weapon/sword/bsword_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaaàààG$���‚B'¿¿¿Ãb†€���tRNS�@æØf���9IDAT(Ïc`€�¶T(†Êg3I ­@ +H6ÒhCQ––†S©e ” °…–£9 n �©°ôFûTÞ����IEND®B`‚IMAGE 553 ./arch/construct/town/building10_east.x11 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�����B$P)ôóÍ��Á,3/ ��º��›" % ��t/, ��c��…9…)���tRNS�@æØf��¡IDATx^Å“nà ƒëòŸ¶{ÿ—ÝȲ¹t¹k*Í ¨Št_lL/¿Â+Ú& øð.HNP\ók Héaž^+;¤5/ ظ®}¾!%qÊ÷‚»• Âå€ÃŒÌ„ÀÁž€ Œàs@�#¼¢€•"#l€ép«ba:´",€�@Š [€Ž`::@P¼t –# Qœ2 AÊžEEð:ˆ*‚ùÐjÁd€ê¶[@’Ân:‚ý¿ØnÁïàÿ[³-DÕ‚ñ>oÁtµ�‹Öç-`´¨¸‰eŒ¦­ˆ€ß·{¨#`4ïV B£òM[µ0at l!?¼ßµ· ±+„mš-äùø%„¿Ú¯â>Og�’/Î3‹'À?ô£~µx3`‚[œ¹„ŒpÆAû.×¹ú¡ë—ùº´+ ÔtË0wK?gÀ­®àr ¸9�ù9®K·šó …2 T ¨ ô0쀆wœRóŸñ`DSç"·����IEND®B`‚IMAGE 482 ./arch/construct/town/building1_east.111 ‰PNG  ��� IHDR���@���@���·ì���9PLTE��@B$P)P3% / " �,F,N1/;$ 3ôóÍ���, @(6 ¦×]/���tRNS�@æØf��WIDATx^í”Ûnƒ0D³¾sOûÿÛ8E]¼Æ0‹òPE[yA{<ãÜXÅ+€/í�«d<$6ªæÇ`í/ž++Ò˜—¬ˆø}ºÖù½ÖF–¿¿Q‚<,†#˜P�8‚Á3læ‰#è0€#PÔ;˜iÐwI2bt§[:(#tçDÀ‚p@Û<ߊ€\A»…ë8tÍ.: 2‚¾…ù…- oA»ÈÀQ ÐHÄÔdð[l¶�:xïÀ÷°ÝtG-DDc»…Ø#:h!öØ®ÿø|Hµ>ÛU œSÜiùкØ+%/‘ÙØ–Ô�³C¥Ü’Ÿ|š\•2fÉƒ ÈóóCÄ?ÉùÜ2àNåCž?Ü€ùƒKOÀÁ<¨|”ªµ)ü hx%@«Û¿ÒG?¹Hb uóõº����IEND®B`‚IMAGE 544 ./arch/construct/town/building2_east.x11 ‰PNG  ��� IHDR���@���@���·ì���BPLTE�H��B$P)" ���,% K.P2/ N/ ôóÍ9! , /3;" T1F*@&ð„?T���tRNS�@æØf��ŒIDATx^í”énÃ0 ƒK¹{n{ÿW]]0byQÔØ€Qiÿ8ülÊP?"àsn �žwcœ©lNµœ–j ÀÛª�šR­ß€±0”Í9kõ†Œ$TæT´‘ý·0ŽD”ä" É}/ˆdZsÑ“�"h“Je¿Œ@„Ø_�š'ˆ–ô ÀF½Ñ["Ð_¶"è=ˆÞY"Ð_¶"è=ˆGg‰@¿�lDÐ{p4E ßAïÓ"è=°Ï‚-‚Þû,X"è=pÎ> ¦zþþ,¸ïT�ã-�ÞOÎÂÃí3Â> ٠爰Íh …‚Øs yóJ9ˆv t$@UÛ·€Y׿-`VŸíïAÙ_Wë{÷Í[À¼[hõ€lýá‚8Á+f“D÷î.È%�>zïÖê/¡›®S.}µâ}¤±�’ÿx—+]?…®¿†.œÝz‰~p6�þ�—¾»T?n¥˜BµÒÈ�ט�%À×�l:ü2ýë7™M‹qq¤����IEND®B`‚IMAGE 477 ./arch/construct/town/building3_east.x11 ‰PNG  ��� IHDR���@���@���·ì���6PLTE����c��t��…��›��º��Á" % , ,3/ /P)B$ôóÍ���ÕxÃ���tRNS�@æØf��UIDATxÚí”ÛŽƒ0 D[Ê%åãÿÿÙmØH&kƨÕª“¨/•3™Àí+_‘<¼Kz'ƒ¹ôìšoJ@ßÿ"àé¦rš´4 #ø~ºò|!!ÈA([̈ï(A6ÄE%B„ @"D<Ãnž$‚Ï�$±ßÁJ»„Þ% Hˆ hO·vPFhÏ¥¨€å€ö ÒB9£ÔÑtF —PÁßÂúÆÀ[`´�°Z€Ž@; ‰àv #€ï¢Ñäà·€ÝC£è¬Qów Ü!2ZàÛõ÷@ž©v ÏÇöQ Ü9Ä-ÚÊAËSú…míÀ-ˆ#• Ë0ÎÓ<NaX•Šq›@š__"ùÃ<ŒaàIåŸ2ožÀÁü�K7€1/�*$€9JÕ€ÚÀ”�sÞðêöÕGéìúW¥JÉ����IEND®B`‚IMAGE 539 ./arch/construct/town/building4_east.x11 ‰PNG  ��� IHDR���@���@���·ì���?PLTEy�����P)B$" ��°,��,% / ôóÍ��º��Á��k3/��t, T1��…��›hI���tRNS�@æØf��ŠIDATx^í”érà „³|çèñþÏÚ8Ò ¢–·v¦‹“?x?´"ÊéGs#xÞ”퉀–˜×ÕŸû3j)À[±�6'¬«|G–ÌÀ*1K^Ű0¡2'@â¿Õ€eaDN®"ðÂÃ}kT ˆÚœR èÙÓ�F°MGÈKü:#Ôù Ь�ŽÍ °ÁîȈ`õ�´Áî(8"ˆ¿lE°{€)8"´*˜Œf&O„vÇfÁŠ`÷àÀ,¸#xoaçïàØ, ÿ,¸"Ø=øû³¾wP¼·�OÎÂÃM‚ðÏ‚¸#|³ ¥ã•…ŒØs rx% bß@Ÿ 0gÁÔö-`¶µy ˜ÍgFûÿ Ÿo«UÁÞóÁŸæ-`Þ-´zÀlûá UÁ;f—T÷ž/ïé œR�Q(5\c7^Æ.^‡j‡Hܰú§»Bþê†1vÃ%vñ%”[ì·/@ÃWÀuèî�Ë/€P(ÆXí´�:ÀeŒ€àk�>~™þõ²ÂB–1����IEND®B`‚IMAGE 651 ./arch/construct/town/building5_east.x11 ‰PNG  ��� IHDR���@���@���·ì���EPLTE��!���B$‘‘‘¿¿¿P)aaa3/ ��t,zzz¡¡¡" % ��Á��º/, ôóÍ��›��c��…|å<K���tRNS�@æØf��ôIDATx^­”‰n† „»\žÇöýµ@ÁÉJ‰+ýG$!†ñ›]ñ냢 ¾/_Ü`»æQlþº´àÛök!Þ=ÉB¤!\GƒdAï³+ï/"D uÁäŠÞRf#4E+v`ˆ`åÀo"È ¸"È«·OôT„ŠDÊ4MÑ�ÑëtD‚´_kzò¯sí¤wD ë‚��] É‹G”€L´>vAT‚j  @(kÐÞ­Yä_ÁPùD�ŒàÐñW€L¤á"AAx«]h!hïByšþßͺ > ü€ò³8ä¼ $'à] ›D ÀaÊï¿IFñ%*Ex¿H‚T¼_6г€ü2QY‚¿h€ Fx!¿PÄÿx¿xð b§Ñ’µŠk½/cßõc·.÷UqYùñO ûŸ^ Ó¸ö˸vK0x(þûã¥bð85�Á�K0¸¯c4¨� e`Ð{ƒJ@PtÁ O�Ô Õ�‡éª8ÁDnžÝ~;§e^íË´f¡†³1föWÔœVé)Vœ@“ñþÆù9ȸ4f“Vù)Vœ€i˜ÀåO±:8Ã3`T20òX;¥ñvi®f€™�ñ@žçjFФ¯é«­{OPDQ(����IEND®B`‚IMAGE 689 ./arch/construct/town/building6_east.x11 ‰PNG  ��� IHDR���@���@���·ì���NPLTE�q����¡¡¡¿¿¿P)B$% ,/ " aaazzz‘‘‘��°��º��,��Á/3ôóÍ��t��k, ��…��›T1‡«[d���tRNS�@æØf��IDATx^¥T‰®ä {æèyÌýv÷ÿtÛ¦(‚ÐÉÀŠŠR;jøù,€Ÿ/À  yžñº¨ÀÛ¸¼./‘¢x&‚mÄß‚+ç±E�“Ñ’àJù<ƒÅ¦×+Q°savô3£à 0^c‚ ្€(&-ð8ðÒQˆóAV ,dà­½p%¤À½³ ×�ÎX �8nA­Æ_bð`ü„‡bá] 0‘‚ Y½À#|‰¡@± ×`u z *{Tö±¾0N¥_ÿ#I_÷Âø}/øïzA³�å?PÚp¨ì…툢¼ÞEQ/éøGA»óû ¶À‡sp-RÒàNHj -èAø¤™‚,zäoåpþ¢Î©¾T±|9Ÿžzd "ÿj WâÖ'mD/üÅR±ïñéù TPÉèàœ£¹õmwïÚþÖ$ç4_(þ±†ç¥mº¾mî}Ûÿú8ÅxV#øU øGÊàûàÖ´+Á)žÈ 0AןV€k Ü7‚n'„‚J®Aí/À7’±ÖšuìaÂäeÃ.U0ÁÆØa[ÍörLciÇÙc—*À`†a0ûº¿Ð OÈrN 6ïÁä=$Xe‘J¸?­y6&°«�RÉÊÚ÷`b‚šàÿÎjv…k/!����IEND®B`‚IMAGE 689 ./arch/construct/town/building7_east.x11 ‰PNG  ��� IHDR���@���@���·ì���NPLTE�q����¡¡¡B$¿¿¿% ,/ P)aaazzz‘‘‘" ��°��º��k��Á/ôóÍÿÿÿ3��,��t, ��…��›`«¨t���tRNS�@æØf��IDATx^¥T‰’ë [¹Þ»ûþÿGÔa<`¶.Ô&L"!¹1_ïðõA�Ø�´£±mN•""8äãô8‰MAð›$@àB¦ï‚3ï#D“Êä Ip¦ý ’àDqà¿s‚ó™(ع°@‰€ö) ãÙ9 ÿ- ˆ‚`Òç—ˆBœ/Š Pa¡¨�/-è5ÀXcA*�ÆWô`´„À¼° Õ�󌫭±@x0~ÁU±ðªXHA……¢‚†^`‚¶Æ‚P XÐk°Ìº½½À {‹ØÞ ˜—Z „oÿ¤‚{aþ¼ìg½ Y€ò(í Ün@c/<Ñ7¢¨ï…ˆ†sDQ× �MÁåû µÀ‡sp-XAÙ¡ÿ «´ á³fаëQ¾•ãù»:vä øRÅþ^”¼{>è‘5Hü«R ˆ[´½ð{U¤¬Å»çƒRAudwâˆq´it—µîC¿^ºlg4_(õayê»aí»ûÚ¯?6Ýb<+(ü¨ü7ðk ¸t½'(às²L0¬¥ d5î`xHBA#× õàÉ8çŒÏg˜8xE»q•+Xà&cÜf~Ã8Zñî±Ê`2Ó4ŸÏ0LjïÆ•$˜\Ùƒ){Èàe‘Ê(×?Íe.%p^�©dåq.{0)AKDð¸x:¬ëy¼����IEND®B`‚IMAGE 565 ./arch/construct/town/building8_east.x11 ‰PNG  ��� IHDR���@���@���·ì���EPLTE�����B$P)" ��t% ,/ ��›ôóÍ��º��°3��·/A$f5, ��c��Á��…;NËpV���tRNS�@æØf��žIDATx^Í“‰ŽÂ0 D'½Ëyìÿêb¬4©]v'EB~šaê è¸ó™ÙWíLà€­�#îîS=àæd�xÀÏ|•F�n· až®F81aBXÄóâ�O®kGæ+àfy @˜G \ 'q€0‹àv€@Y„�d‚#zÊ"xô‹§ƒ<Á$vPŽ@@·~Å"tëJ„5 o[°xÛ‚å/Ð[ð; eƒq°ˆàs EøÛ¬o8 ,‚õ=ÔwÁöè-ødŒ»¨¶àw@Ÿ¶Ðÿ»Œ› ·`ÞE&”ÖUú.`°Ho,WmƒUJ ÌW$ëŒÁ!vÉŽ›µÐap Y Luݬ…MJÖùŒ§PÍvጳSœ pr ã¬`Lï®´ÐaÜ&Yç%ÚdAl”D ª±i÷m<ÖTPرÐó|ÿeMÝÆ¦ÞÇx¡ÂÏ<¿¸Ø�Ú|dÀ±nbÔç@K¥€‚€b`Ï€–š¯6j÷%ýuÒh¶GX ����IEND®B`‚IMAGE 612 ./arch/construct/town/building9_east.x11 ‰PNG  ��� IHDR���@���@���·ì���KPLTEP�����B$P)��°" % /��,��tôóÍ��º��Á/ ,A$��kf5��›��·, ��…T13;%|ï���tRNS�@æØf��ÇIDATx^Õ“‰nƒ0ƒç$ÜôîŽ÷Ò‘Zì_ø 6ÍI Rê8Ô/›(ëš$€W?æ‹ÜÒîέ,ʲ�nÈŠf?Ús{F*LƒT�ÍŽ�?¢ßt_€Û0 ^³™8‚_`"<�# ‘ÙÚ‰ ]G"$yƒïF8y±Ù¹ÐÒ/;€àDЖF1û;�§ÉMDòüí�¶4B´X5ÂêÀšâ²Ô«g€Þ”FˆvÐk´3è‹#Ä;Ð#¬ŸÑ"èg°» {#”¿íð\`Ì“]èŸíBÿÿ»`þ¼ ý/tÏu°ÈvA¯óÃm‰(ïÂì†1DÄ]X�šðF±µ òð@ ¢vî%Ò……:«Zï]«oƒ:,wÃ6-vƒ>ùá¢:cØ,äº@¶>yIÞÂC‘tx}ò‚´ å ê|ÁG‘ÐE]¸àR$Ÿ Œp*\ÔÀ}ŸÑ]~Ê®p{$uF OîòS"ì’�,¬5ÕMu<TM[³Ö» ðþ~’‰¾Žõ¡:ÖÕÝdé×�÷m€%åM])~L*d�¼{À¡©•�?Ø#ñÛÚ[>Îoš����IEND®B`‚IMAGE 373 ./arch/wall/bulletwall/bul_wall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf��IDATxÚ’ŽÃ C“•ØYþÿƒ/Y¡ mÒ¨Pe=°[q÷t?èîi–|·N›¤ì¹ ‘%^TÛJ�…Ýn€r(Åñ´À#V9 R/Iún">muÙwSHVž„:C’ ýˆŽ4tBŠIØ¥P�wKÐ�¼šaö€6�ï‘‚0™wp>ï  ‹nz)"Üñ«ùÞÃoB7„žbä÷›8 Û3h6š<&rÔ¼I  9Ç"åJ”ŠY£Šì;W™)İTÙS„ 9ßùPh'¬uK¡KIQÛÕ.Jáõ9æü7ä|’#¨q6Òê¸?¦º11Çß����IEND®B`‚IMAGE 368 ./arch/wall/bulletwall/bul_wall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf���ýIDATxÚ}’„0CáÜZŽÿÿà,Ä-cRmTÌì=Í, ΔÎßÀ!¡¹Ÿ ƒê<J�îÅ|$@:”‚äXX`î]†„¤ÁR¾‡ˆÛ #Ã~‡Ú-W,‡tŠ ÀrA‚ µâ�¾ c­¸ÂP' ìÆžao¡4< ¼+U €ƒo‡´ ­ÅÊPÏ;A«ÕJ_„a#Ø{‹r–Žç™À•Á|kÁúö¡íh.ÎÙ38¦¤.Y7^  TÐb””F Ô3Ÿ»ÕäK²ºíB} Ï&¹¡*î"’0œø]ôÞ¿#Xÿ§Ü ˜,ß.ÄŒ\ýy=Pûµ”����IEND®B`‚IMAGE 372 ./arch/wall/bulletwall/bul_wall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf��IDATxÚ}‘Ž„0 ¥µ}ùÿƒ@9*¶ÜÐ$¬I°ýa¬/Ù†*¼ª3 †þ]i#Ä¢/mÌ4ƒý1+Ëã4é̳$p¦ˆG šlÿ´ð˜ œ bÅ«„Àhá¢ë_Cœm Cмýòøˆë-Ô)Û“A÷XE°Ñ~7°UËËpoqÍÀÿ2DºÕ}ža6HÎñ~=Ãx~5¤õú/tÍpso!ÛIÊt¦ý®˜¬Þç’ÄÎ6ŠÐ6‚"#‚¼JÂdP“Ó¹ŸªóÑ?ƒ /àøë÷Ã@ÊKDT ú¿BÆþòŒÌfC%"ÎClØÏvÜÚÑú{›Y. B����IEND®B`‚IMAGE 363 ./arch/wall/bulletwall/bul_wall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf���øIDATxÚ‘ÛŽ„0 C(¶'ÿÿÁÛ ê@gWÚSÒ<`Þ`{c¬‡lÃN^ÕPCçxÖÁ´â¦8–€6HfšÁã¶V"–ÇiÒùY’ ¸�Ó7Äw šl¿ZøfŸ†ZB`,ñÃÞÃâÒ°>«fƒl‹Q³,‘r0´2&¨dS‹|}œâÌ•A­7ß ‘¶«Dg¯+0#y7üvÅ_÷ Ä÷·í$åÛl° á˜÷ˆÆ>‚Aƃ2&ƒš²ã~·Þ—Ap¼EÆúÆ0òP“¿Blù]c͆,¨ïšö³7Êþ‰z?ºbé&����IEND®B`‚IMAGE 369 ./arch/wall/bulletwall/bul_wall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf���þIDATxÚ}‘ ’Ä mÉãÿ?xmB¦B`V@åê4JE̬@σf€3c§uléûêð�”(Ô~Œ ��îE5@JAz,˜/1¤$ËHrkˆh˲Ÿ¦¶Ež†±W* ¹èàøßÈÔ�¦Á L­.†ý+�n†¼ÃûMg#ùÓ)Òuœ–¯n†‚cõÀ] ìsG¨ÏfTzõlÈÿ"ih¯”‡aÛcHû³C6©seZ©Oƒ‚P@s])&Ãò¯B;Dç¿p=?wL@;†Æþç((Ja�+3/ÑÌ„)‚ä¬9ë8Ž[cë?pˆ,µžh����IEND®B`‚IMAGE 385 ./arch/wall/bulletwall/bul_wall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf��IDATxÚ…’Q’à CídÇ÷?p… „6lWÔÉG5ÏÒq÷º?Æ?ikòݼ V„ªÏ©Ôp˜Ö­4�ˆp(êW4‡š qœx|ÈQ©fð&¡ïK†4hia¯¢þ¬ ‚ÝN„é+<Àoª“†Nà èBض@y,+l€ý$ˆšØ ¬-FË_êú$è›v× O¿°dØ\Ë–@ãŸw‘ĸWÏŒÇ$Ü;,§·•ºfT¡À9ó}–ã\ ƒ* ù�e. ÁÀ<áfÁg‡L»÷l¤û”ö»6¹¯X|(Ð ½âÈòñ]çW½~nÜ=f !÷Ïòó¾/ «4´#‚yΜ\ýzF>»†_����IEND®B`‚IMAGE 377 ./arch/wall/bulletwall/bul_wall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf��IDATxÚ}QŽÃ@C¡™±)÷?ðBKJÓ uà#ë3{@çñgʦ~¸$´ï½áaPâAÝ£a�ànPìŸ ¥ 9˜_dHH,%黊xtå²Ï¥v“|p!Pé–3$R#¬ågÂUGŠà,_™{‡)@¿øŠT)Hýdõ¢çòÈÿ‰ žƒàT+=ë’MpȦÕ㚆Ö@æûHãxI9ïà�-ôíb:'ÏǨê[äÈz7Dx4P€FMÊ‡à”ŒéQÑU™º {Ja¨M»Ëµ Ú(" ‹€Û,E(tû ž—–™$‚:ä¨/jåè?q@ùâ‘����IEND®B`‚IMAGE 371 ./arch/wall/bulletwall/bul_wall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf���IDATxÚ‘n! “[°ÓüÿÁAWEµUÍZH‹H°ˆxÁX¤7ï�‡•æé‰¬€/ú¼ÊP�™Ç,÷%œq¢"ˆÌ®€ „d•û&b|è²ÃãuN‚ΰ"ØNã„GMH*—ùNP €D'°´Ú�p„•Ù c¢‚;5úlõᙦµÈÐ>žwp¶;~¯"Eÿ­æ?öá/\ &7Çsw‚­DÊsö;$¦•žò{æÓ ÂeI3i@xF,ïY›ì‹@cÆ)ì*"UÉEé›°J¼ŠØ¯ dÜå¨À:ÿD°Œa TCÅ·O†ŽþUÉ+È_P����IEND®B`‚IMAGE 370 ./arch/wall/bulletwall/bul_wall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,Òic2�c����cDÙ¤þÖ�þ¤�ÿÿ�¥>ËÐ���tRNS�@æØf���ÿIDATxÚ}’ƒ “ wiþÿà¨E ÓCGw6‰jñ‚ïõP@²%vç °˜R׳"8ñ¢×m �dõ§4Âihž‚È)ª4 ZLÜOˆxi;‹Ç{z%bÂd0ì¤Å%¬ò¯Ágàp’@ÛɆa7…,Æ£=Àø× ö&ÞÓ£4 ì žc~ž×°””æO£c1 `1Ì˜Šœ»ßCœ*†©¯U=$ª)‡´÷ƒÇÓà Ü1þH'ía <¥+û×ÿhÌXƒë[dŸdMúe�ÛÍPdìãÐëoŒ@‰°.Â=ýwµ[‚>u Q½H©÷����IEND®B`‚IMAGE 172 ./arch/spell/Bullet/bullet.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½��÷½÷ÿ��É+ï«���tRNSÿÿ�×Ê A���LIDAT•cX D2pA½LP† ”acÀ 0Fºv­P×t5‹ ŒE]0]0Æ".t‘ZèŒU"+VaHaˆàð2�Ï¢›ðëËn����IEND®B`‚IMAGE 137 ./arch/spell/Bullet/bullet.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷½÷���½��ÿ��{¿ /���tRNS�@æØf���+IDATWc`  ` €2"C¡Œ:(ƒqg¨„‘ c„¢3Baºà ¸4�Rþ 5(°—����IEND®B`‚IMAGE 165 ./arch/spell/Bullet/bullet.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���GIDATxÚÝÏ1À0ÁõúÿŽd%%GAå\;þÕεs–…Âá½ëÑ5¿)¯7U¾¥“7•ìd§ËlÞŽ§~wªÈ�°vg>Ø����IEND®B`‚IMAGE 156 ./arch/spell/Bullet/bullet.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½��÷½÷ÿ��É+ï«���tRNSÿÿ�×Ê A���<IDAT•cX tb45h+¸ØO+˜4?  B«Vt0ii00A¥  b.Tíôr3�®>›‡>¹‹����IEND®B`‚IMAGE 164 ./arch/spell/Bullet/bullet.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���FIDATxÚÝÏ1�0A=ÿÿç4ÔP8)[w@ëáºÙ—PûH"PJØ+aó«â|‰ho/í¦ž¥¾š*­�°*ÞòP����IEND®B`‚IMAGE 171 ./arch/spell/Bullet/bullet.151 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½��÷½÷ÿ��É+ï«���tRNSÿÿ�×Ê A���KIDAT•cX ØZPÆ Ü"+´0¤0 º ŒE\"0FÇ"(£ ÊàZ�eh­€éâBWÃÀ�eÀ&0† ŒÑË„®Ÿ—Q�¯‡›ðÃ>|����IEND®B`‚IMAGE 166 ./arch/spell/Bullet/bullet.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���HIDATxÚÝ1� ¡üÿÏœ(‰ô® bÕ‹õ)¡õÁ=¸ß¤]ï´— Ù£ñ^Žù¤8 ò}5`ÔŸ3¿e/v�°gìŸ����IEND®B`‚IMAGE 155 ./arch/spell/Bullet/bullet.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½��÷½÷ÿ��É+ï«���tRNSÿÿ�×Ê A���;IDAT•cX ô`¬`j‚00,Ð34´ Œ JZ «Z4”˜8€"ýP©Å ŠáÚéçf�p¡U²æ+����IEND®B`‚IMAGE 168 ./arch/spell/Bullet/bullet.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���JIDATxÚÝÏ1À@ÁeùÿŸ¯LgGJuqË€ÿŠj™Ïš÷Ý5ƒiÀi@Á(�Ë›*1A.AEbG<Ÿæ+…Ðb7ïZ:ù.®É¯‘�°*… ü����IEND®B`‚IMAGE 266 ./arch/construct/bungalow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8�Í�G$ R-���ÿ×�d3ÿ¥�‚B'­v#���tRNS�@æØf���šIDATxÚÒAà DQšø;øþŽhGŠbÓY!ÍèÁ‚öZFª:3ª:0Œ÷ú+¼Õl6P-Á˜Z`! ¨ ؽz)¾œ• •°ó¿À‡Pm#d Ê<~…y€Ý’;¢Ñ5´<øÁ½»Nù7Èí›cOßE®o®S §è‚4°{¦Áq-…”kpöÁ žË9‡Ó����IEND®B`‚IMAGE 458 ./arch/planes/fire/burning_barn.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���PLTE²""���ÿ��ÿÿ�›^?j “-Z+Þ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 4-ØY _��IDATHÇåÔ1nÃ0 Péý€Åž'€/ Aݹhϔ뗢Ô&Ž(sh (=Ø�ÉGÚ«#¢ÅI>•’KÁ:/Y‰¬ûUÈõíÄo³U�Mv "ެ ÖŒ± –YBÌ_þB@9bq™p¬< Ö8B¼ ö’1 ö’É’#ÄâÉÒÏ…‡‚ò?FdoDñFüÖ¿x¡ g–B3Wf,„Lu™BF• LâX‚öó JBn­ô~ë„%T®´ }$òŽBÌ‚µ}ƒ…@:èwš…zŒYÀ1&ŽÀóYi´_Ѧóct.^BN nQ±oýi*è+ð~ÙÉZ!Œ¶V`­Æämß.æ ¡æV`®¼ÂÓgDøSñ ûHgÒ7½=����IEND®B`‚IMAGE 1441 ./arch/planes/fire/burning_cathedral.x11 ‰PNG  ��� IHDR���`���€���òq‰���sRGB�®Îé���'PLTE�1�����ŠŠ-ŠVc2cD¯/_¿¿¿@@@{&9QÍ¥]N���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  7a±ùÝ��æIDATX혻nì: Eí:)†m¤OÚ7lTD­Åº$ýЃÄ®àÀm‘KÚ¢‰3Mÿï5ßð¸3|Àtg|Î9Åë!fCÄ|9¸¬èbˆ™§ç˜¯†�ñÚø-�3ä|%§9ç#]Z'¿†+g�a ¼ ^‹0çP3¤ bÍðç2U”áÏeªÄ+æZ†¿Ü4Çx]taVY†ùíž&DË ïÇg†\‚ñòd¤‡CÃà#WŠ×_†Áe a€‚epã²ÁX`\NȼH.\eÐåWÁ5†³2¸« ³NŒÁ]epé&ƒK÷æ˜î1°àƒ£› ŽðÃ,Áï0°�n1pÐ{^‚ ·¼4G¸Ã ã%×2<ZpØ1$×0ÀW/è½äâ«b�¿ÔΨ÷R ÿ¨0@XŸFÐ2` ga€HM„è½h- ,xAÍ€àxÈÉúœ5 ˜Xð:À;Z¿ fð‰3Jƒ'yj;¢f@�àAni Èõy@äT–DÄÙ%¯O­5(Ô^JF°öÞËŠÁ‰Ž =?5^ú YøÂà‚LLûůøé·`}8)òÕ|coîX :Ó,ˆ�Ï##~ðÝ ÄÞ…Á…@ô|ç4ÇnߦO±÷É@› ”‹ŸÚ÷yºU’­U€LëHp2À&¨#¬K+(n†=£*BNi 8X ‘š«û°·nù›ÛAå%æh# ô<QÙ‡ ©5À òydnlÐa_¼)œ^rrРàq&cïƒÀÖr‹±÷Πu¬gp.,ÆÞ;ƒE�÷Œ½7PÇà}{ç½_ÚÖÝÁZGm!û<«7ÿÄ:Ž�q)ûÌu°=êÖc6ˆ%>®ïÏC<e¤2ÿ·^’‹ÿR9Þ1ÂãíyÈ2„‹ãO!vgTÝZ1 Ô:,Vå'z¼;Š€"8‰+ßÒ9µwÅ€ ½ø² @éëw\½ƒË*à!¯íóÆ[ /djïŠA‹±V½`s¡ï Y©Þ¤‰8)ZV¿žøéw2ö. ¼±<DËj”Òêm]:«w8ë""ßù“ejï —z.k7Õû(B^åžäéa«÷ɰ!Ô‚õ‡ÞUïàNN3JÀ'Æ‚ xK!…wÕû<e$gÄ2Aè[¸æ<ì•`}õ‚¶×P„:£u ªÚjBÏÐôÛ†ºÒkì�*�Eȶo%,µ5v¾X—A£›«ÚjŒ” C©Þ› 3R4>J¯BÚÄH¯`áè5`CàE*»`#Ľ×Hê]»ì‚e ­zóaO­vèþûŽ´×àzÒ¯žÛÆwE‰‚èe—œAx%ù¡È'‰Ë#ÏÇ=°AðÀž›Z/YTø‚ÏB’SgÜš!ñ¯žgëŽóSÞù‘`»|o¤½W4nE!ó2ˆ@lñ¦÷‚§ǼÊ]Æ‚˜Ýz$"í$fù†¢ h¯¿‚-‘­;Äø£_.èûNð!%Üg¤ï§`³ÃÖàºUj,(‚4£€'Â)Œäý÷{E 4#u´EÐ÷Ó{E î"Lw¦»Ó]„É­blÉÈ Èûï`wžA°ÎûqgÇó)(¡²����IEND®B`‚IMAGE 561 ./arch/planes/fire/burning_church.x11 ‰PNG  ��� IHDR���@���@���·ì���$PLTE�������( 4Qgk!{&ƒ(‘,¥2Ôr`���tRNS�@æØf��»IDATxÚÕ–ánà „s+0Þÿ}gã²Pm'ügs‹”D¹“¿ú@=þKˆÉHˆÈj‘«~r7À®ÜÌbOîÝ{r7p‹-ùD`\¸"°³�†pEà Þ#P ÈAä$Ç 1d‰! —¤Ä YJ�Á�BS@„‚„l!„‚ä%„ð6H³xƒ)ׇ–©™)ä7A‚éÍ€™B.7„a(ƒ² �èzk€0XƒÀôde R¯dEÏÁ2Ää‰Mâš>÷)˜L¼¸$Þ§`ÕZ«º”€ÉÁŠ µêj�y ,"ø„$0Q.å†P›ê �i'HF� UlžH6‚ª_ìžHh>,L|µ‰.lœH#BÕ95(§ÜZ7�ûòA*ùlÞZ7€qA(£ùê�ód”6º¿-pRÏî~7˜½péÞ÷O¿ó…ƒ8Öqþð¯ð]~5xø\Ÿ€~£Kõ”ƒ‹ »Œ„1è»÷ÓÚ¾4ðz„ƒ1joë. ø#Ê�"ö²t€'ž¦¸¿¹|#hãcpfhêç~>ƒ‘¡: ¸yá§:þd}á 9öR(Þ����IEND®B`‚IMAGE 4718 ./arch/planes/fire/burning_collesium.x11 ‰PNG  ��� IHDR��� ���`���­ù‰«���êPLTE���, ?G I�K�M�N�P�ST�U�V�X�Y�Z�[�\�]�]^�_�_� `� a� b� d� e� f� fh� i� j� k� k!l� m� n� o� p� q� r� s� t� t� u� v� w� ww�x� y� z� {� |� }� ~� � ˆ),¬š»› ÿÿÿ�' Q{&�����C¥2�ˆ*Ny%% -& Ô|Ȉ���tRNS�@æØf��2IDATx^´V r#) ›½�;Éìý¯³eAw³1ggÒO¤.¿Bò¯ïÂAÀ+Ï-ð »å×ÀŽ‚(áq;±ÜNM·øÝ-?AÎvèz¤ ^@‰sÏÿ�A*A‚¯,룿‰¢HR$ºTT ¦°k’`–y"sàÉÄ.DIòù!�R”¯�LQ¬üG›„$†‘cLçzöÉÕÚc>çÿ¾êý;ŠQ¶|¿o£å¸Kê‹inó.ñé“î0NÝQP$Ñþ>½@�|;H‘j@¤HÛAì5â;üxÔ”&]‚d „m ^SÜøõTQÓÕh¶ç¸¼"˜~%È-ƒÆ”ýelwåHÙÆ-iÞ>ÄîyKm‡`føÞ®¶ìPŸ^CŸÖZ;™ ˜1”H;7zAжÄÆ$(j—€RI%­&Ú…¯#˜üÂ’7ÁÖt˽‘V;(½HBCt¡²—±Ëß \÷šRøëÿUDð.Ö–D°‚èjb)5§yW—N#ŒR1ÈÁ”ýu ´Ù¼$QQf©1&Ü>€ÛBb,â°<Ž>þãÕñ»¸î™ û«œ$Ó› —°Ú5€Ã[6Â%Õ6Ïk¡-Â$¨¦Jâ踉cs×ß¡Mù— chóô%Ûm‘M"$6]Öæöú&a©iž¦¡!a”ÀZŽ$|’cJ™Æ,órŒ]64UÇÃ&š¡CÕ(Ç%Žî2÷¯”žeZŽqøà X¢ojÏÃ0ExyÁ]Ôc"‰ 8¬ �‚Øê_ mµž—Åç5PM,Iotá+^1s«ú¡Š¡ð5PDËPb}Y›«(Þn·¦Nžta¯o˜RP!Ý›.E;êß`ÚúoÛ⊠i3©‰dÆ–ä‰ã ÆÁd˜íöóÛ¡:¦üK]!4Ÿz\ñ(¡*whŒ 󉨅W®—¨Ô`†Mgz±G ‚A&¿¨D¡Ú¨˜þeÅДÄèŸòèÒ{ø!¢µûeMÄF2»£¤n¨’è~Å’ý‰ŸßÞÿ±ßoïoo­ËÐ$#8÷ad\$õtûÄï_Æ©XWn†Õétsÿ S‡ö½¥Ë­¢m€øÿ¿SCN.>4hCØ ‘XAÉúdÞ@,à8—ôì’#+e$’ª+Õ`Ñ—Ç%Zlî)•„ ·‹àƒÅ ø<žñ*T3 è] P]+ëªéxhɧu]2#ó®B"ÿþt¼M\gJR‘Ô9»Ö˜|š9Ô»ƒM#Ø,•)ÒùCm36”-«ÿÇ ”˜=žµðjq“¼êËS-‚¦HQ]ºU/¾•òÛtí7 ‰¬”Ì‹{«ƒõ½ÃÓÁ6“ç@Ü+W¶±¢™÷õ‘”‘“˜í*õp)ÐþrÐ<n“ëklžãyµÄcˆÃ6\ êýðeÞ%Ê„¤^Úû9oñÙâ˜hé wëÕ;ÝJu´h®Û )ƒÃ(ü*xÕÈ÷™{§¥úEÀC!EÒ”¸Ìß*«@#˜3¸_ã0I”Ù¾aÏβíôñ±}ü,ŸŸåw6úüP¬‰üJ¦<I¬e¹½Çž]WÉܵ)A5¦Æ‘# Ç»ù¸d.{Å'90ª±v^ãéiÂŒä«)É©èrþÿ'Ý#8ÃÂ.e‰±Õ~ÑãþÚ3¾Ðõ �â´!ë‚å’ÉÄó,q ,½§h¨©Ó‰ ˜lU&{Aë’+6ŸM¹¶¯éå“2ê¶Ï'|È? ñ¼Ï@Ï�õB½ßgQŽõ;�5zÃJè-ó’˜þŠäKÂÚ!-£?1EÛЖ‰–6˜_sŸ,ge¨] _ÓÿYB6Í¥2«çòøp·WÈù ªÞÁ¡v tRŽB`²e¹µ¯ËPQýÙÔޅϸêS¿9?à«’c¬ŠÚñ™ë»×ônÖ/ÆœƒªCxŠDfÐû'8)Ÿ†Iö ØÁÁˆ‡81‚ 0iÉ[t]€«ëh\ïÑžoû”ê¥ó)º•µ=3m*[¸Ÿ t\½ÔwXó¬_,2à0>Vïa þ@©¾Q�ÅÛ¹–õMlx>¡iBM@"{ôMÔÛãúÆœrß0ÕL«.pÞõ@´m„í:{IT÷©£¯é¯E=ÌÃþ1ÿE2}áý4èµ]ö vžÐt}l¢=·6ö¨±seí¨)·Œ&œü¹�,úl9R3ð?›®k>C¿È„;õÚó}¯õðP›½pZˆ-!•×L5ª àD6q ΂a¼ÇÂÔÁ2@U¿Ûv4‰6®eëcìûTvßÒOÙ‰sÞ�ŸypÎÀ]†”qnÿ~ãØt× 8ôgHëÖÃ2“w F�bÍ=A†MŒŸµxŠè»®ûø¨ï^Ñß Çt¨ÜéTc9<Ô|Ô»Ã4ù-Ý3Çþ† a¤Ù¡ \Ê“åfCz‹Wh¹eHe$ø´åŽ[S5€÷-uoèw·š„‡ÐÎ-Í ‡†'0-a•kkñþ–Ù1e�V�_Y†ïÛQclÏh] jûzØÕïÑwÎW!ÚÄ%³}CO¸WO=Iî$âã O�wûAá”S›­ã�Àg�ø#¶ÞQXòÕÐö³·CÅîø,40&ãÖäÐ|UßÍz §öšBîG=wnlö÷O+DÓP«d?êýX¬êµá+�ÝÀ)Ê®/èCqzb"øÌ€q ó±å«¸²_~€îQßÍz‚^á2wQB+@õò8)¨n¹¿˜nëeå-ºn[Ðuq6T`§�”`Jƒ‚ˆ­aêïùeËWü…#Ì)Ê$ú£úëY¾öSö îÚÕÈ.ÃEpv`&s°…n~q&K†ÀÖ6.Ø#úE0ÅG¬“±kB³F+WÖAH/ùŸ‚¿üšþzÖ;ö =gfœºÕIÃ}�Ôy2dÐ}öŸÖ8>T #úŸÂò2¸š 2Ám@PÇ€ Üû¢ïLQy™üi±yKÏž&M«i.àQ¶‡ËÌpŸ/‚ƒlÒ.Œâ¾ý´'/À�ì–*[ Àeß›&ÕKaF"ãÛ²…CUmãÉÕŸ.úØigÖœþ:¦“›$€åùz‚_HÅ>ô]“ C~r˜ä?\g/Îwpˆ¨"•|Rô}_ÚtvÌÑ!ñ9‘#:åˆ�ÒL@r8©Øœ¯bÇJŽò9ô]÷Rm€Å½0ÍêÜi†=¥•–D¥ŠïõCh©ï†5@ˆ ËÌFiƒ…¹iVËuc,ª&õ­óÎ&f†3nç9Zp2lªûäýoúîU= ¦]®Z 襤¹¤ŸæèNÙ…£VN)èÍK£zNŽÙ.¢ªm¬]R¸,9Ählè[¬‹�›¾C%<'¶½sgM"úѽ¡pû^°&eÌmÂáV¼ÏRò|¾õìÖÔkî5ŒÆ‚Ýw¶ 0KwA=|-зÌXYרL ´)(rm½GQØo믟ɔ1ûÜI} (H£lÓýbÔRžæïð 2@´ 7�£d y\µMþc0°+Še°ì�sÛ œøï£ûÚFÛ½¢¿~Ôèj¦Üͽá—s2ã^þ…°í¦œ Â§_Ç…Â9Nµq­§bäºùP1�~ Hhp—â´íFìÄM¶§c‡OŒ·ô˜C;ò/{ðùÒä³M2fXIÇJ>,þöO³Âº'hîG„cŸ,ÌÕ9Ar=¡7–ƒØ)±iÑuž-ª«O„Ðt  þÛzö3œlâ½ÇÓ>œ!#lú£ªA&‰åu^ftWRbñ f‚y8&�Öy8HŒdÁÃbÉ jÖ”S»{fwvçfûãšÎ<tör÷ê̹® ç˜YÀ»|äîßûAâ¬l`Z{Ø7fx6Wj `092rŽòoÛóíã ƒ.>½Ô¥”AÈ~ÊÛîwó"ØN!ÅáÿÆ�T]x0–ÄÆPMlxi¸®¹Fx5Žé¥½{j—ùe…Ó£ynúN–w/˜†ùw?ƒzM"{?ÞÍ^×ÉâÜßN‹ax?hDŒCòî uŽ>rpÁ‰µÖCK€––Á0_Ú»ßì¿üC³Mœ ‹) ©wÿymX&;î5´ã¯;MÁ‡µÛA—Šïöïö»ü=åý¤Ó*/¶g/^¾á’ÿ·nµ¹rÛ0°ïXþ%iH !Û¹ÿuZ‘ôö!#Aò´Ø,Ʋü ÑN§0[ §Î}Šñã–`¤@Ct`–‡ÿ[;‚JÍ¥ÒÿæûGŸ?EDeižÛŒ¡c-™»?nhà}{Êñ1Ö•;|Òû(_?RQ·DÔñH |Oäó9~.Oè‰Þoî÷ލ¼ö¼Tðúò o ÿslŸ'5"‰î‰Øs®ê’(}ïÇ*r¾uP7ǘ*{Ýg;Ú† ÿ~PîòúNER¾Qu?¨Sº93‘ñ$jc`I§È¹xÈ\#ŸÁصNaÄõygx‡%껨rÄ»CãÞnþ ÀÃCakZ†æÚã±ÓcŒ´ÆLYcÖÂr óÔ§ˆî<²xð|!Ž3|_~óXQQ×_¼yœ™šKO¬×ÑÜR<wC™Œ X6 Ú\;í>Ήíè37Ì,Ü‚qI¸ojÅ=ÌÏæCY”ô‹OJ0Öì^Àã4<÷“ hp¯ƒ¹žMºCPYìïôÆŸ'Q<¹ì浦éS†4ˆÊxÕ@ k/ 0X*¶xÀ[Y»ôtcí?:#yãU<“œ›õ?ó± MŠû4m͹g7*? „LÃ縺¿í¸ÒšéxÑC� 4¨Fo‚È»(@¸$u¹†Õ¼‡~ä¤-iÁ±÷]p k TTŒ=•;TèW¨uñ¸\Ø™„Æ2 %Õô͘×ç\Øš:×·òð³ÀQ=µ)­úIebhçQ!oË `ÞÇlïTŠØx›ä`™>&&Æ–‘ÆÏZÏ«ÄÈÒ93ƒeÝ›ŸuC¿v.Fa8šñßQÚ*ßQ°-`M]ã­>,'wûÊŒµxÞÁ.±š2r,ŠžZÕ�½Dì€xê=è@YSÖªõW üy÷´Í!GŸfMT—Û#Ûy¹Ó²:Ñß›½ª‡Ñ±/-Œò½"¤.vc¡²²[ƒ§èbî5äçeV Ì‘Ÿt8åUÎŒYÜÜüàv„'×€ªyÔhß:)åÎ<FP<º²ËšçV5ð§# ت<%€FtÍ‚…z¤@º'Q5ÐÝ": _ašDiÔ}×TZD–ÍØú%5Fê“ D×0–»éÁ-ôhSÔ:ãn(¤„W^m@â3e Ó;,˜k¢Æ¯¿!¤smG ;Ø5ÚƒìgŠíûP&X!Q”{´f ïû±ÊÌÂ}Ï Ã:“ê^5°‚JÁz¤Ön,Æ&šCÚê÷$A¢yS;“1ìwße’ÌñZ•‚°RѶ¿j á7†òE50=)˜·JÓý–@h¥òì cél[ MyŦG©P)4�,«‡KR€Ê]%o…?°ïj™DPÈ ÔRfm+k…zÀÚ=é#)„ƒ¢‚?!qRêéÒÛë8h™Âö5àt6:…/ß7C€F'áÔ®_õʤ•‡_÷ûŒZ+ESŸL+%ñݤn“ù²NYžµ üxèþ °Cú#‰¯‘Šø%)ê}’ÊÓ$0©_ÿ¦u[É’?… ����IEND®B`‚IMAGE 418 ./arch/planes/fire/burning_courthouse.x11 ‰PNG  ��� IHDR���@���@���·ì���$PLTE�������) >Qg{&ƒ(‘,“-¥2B¸ÿÌ���tRNS�@æØf��,IDATxÚí‘Ën! Ý!üÿÿF!ZzHlÙ‡¹l˜t©5-V 0¤K)h p§CáHS0®4TØÓPaOï*ìi tÓgÁ9» ¸[€+*HN É)`$¯€œ+°€wð XÀ%`ï ,äZÈ%° D±P‚+àö$½WPVÀÀ»ÂŒÖöt­½Sa]éúó¡B_aO~Q¡¯°§T(+0}`*Á\a¤u€¿V0s^¡›ir\¡šW¨­óøx"-wÂÁ^�Æ<WP—^�ÿýË"Ø ”É`{”¨XßÔI¶äe{”'ÉU Mêž· ± –74%OÀu‚åNÎ�x9Èz·ð Å-EµùùbÅ����IEND®B`‚IMAGE 677 ./arch/planes/fire/burning_fort.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���HPLTE���c2�1�cD-ŠV¿¿¿ŸQ,٤ͅ?¯/_þÖ�Òiÿÿ��c�ÿ��ÿùq@@@{&QCƒ(?Äð͇���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ $Õf‘ç��ÉIDATXõ—ᲄ …=÷ŠvßÿMoš(`æ,?\g”¯“°!üÀÀmz9î Ûà.[�÷*�öj*À]î��ÝðÓ�àˆ?yÀA#�š r˜¤aÃ/¹QÀ Ë��âHDŠð)zóGìèÌ$Ð ËÚwöòÆ”7Sý¯Ÿl@Yµœ;Ò–Æ?GAYp<%foÿûF‘O�®�È+ønÛ&ö\ y… "0õ¸Q ø;÷Fwj�ª�ˆ@Ý+€@ÀV¡H¯pðs?ý@\Ô7x€ý[€ñ1•r”4Š%@MZÝá�&�½ÿì4€ž‘*�pRZŒ-àŠú)ÀÎÊ5–oÓz ¤U€[Xäת_#Á`€W™@0+S¼-,%h°²â •É���@WX–gR^†–Òde:öÜ ÕQ,k© ì€!€åĦ5’£èœÔ¸Ï –Am¡Ÿû/ìÚ®d>mîj `ÎÌöˆ]´3fÈ•Çú|ØãN^A×¥+uì�ßÓ®aä  XÌø, Ð�SþaU@Xú¿&xôwùU §½�MJè����IEND®B`‚IMAGE 413 ./arch/planes/fire/burning_fort_sym.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���-PLTE½½½���c1œR){{{cccJJJkkkŒŒŒ­­­ZZZy%N9~Y³L���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ /‚ÝëÊ���ÜIDAT(Ï]AÂ0 ÛÄ‚£}€'À xºï®„ïX‚;`“8jUM5ÝìÚ^–Z«á ×«,D8‰H fü¶íÙ™A±²m%o4…LÅêP”"S!Žw™)øex Ó´Øƒúe "Þ šuï>AÉA±õŽ{é ¦Êá ¨Ã!éaÛ½+¨7‘­DSÈWáM!SÞRb¦ìf©@;`’2J9;u½)Ši�£üìçÀ½Ž†W@Y©vž€íȇ {hf�ÃbY«Ûõ4ö€åÒù”+þ�[ÎL‡±:E����IEND®B`‚IMAGE 437 ./arch/planes/fire/burning_fountain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE���Œ�;N���Qâ)�í±�ÿ��ÿ]�ÿ{��¯B*>£U) � �ÿÿ�V �gkÿz=dOc���tRNS�@æØf��!IDATxÚµ“Ûnƒ0D™õ߸“üÿ¯vVN#lÒJ}èHKçì þ#{ÎûĹ^öOL™ :~ÆgîÎ:î˜óŽkònÒÜ—€Õ;çç'>�‡„5x ³v�(XÓä:çÆ é`LxNÈ´áL=azR›®Ú #PÆW· Ä6,•SH[ö'x „‹ ÊqRãK-€E/‚EJypbl„d3ï'ˆ|k(`yp‡Ø1Z+jÛe“kê`jDdÚB~Ò‚ï,[(\ I�l‡Ù¥òî 1ž’ØÆ„Îp. É(VäÈ¡vGÔ§Ý3Ϫ¨E65Þ^•ÔÁ¦OòÞPïO­áý·ß¢Á½Âÿ1_g$ A6á(ž����IEND®B`‚IMAGE 434 ./arch/planes/fire/burning_fountain.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE���Œ����ÿ]�NV �gâ)�í±�ÿ��ÿ{�;Q) �ÿÿ�¯B*£U>k{&„1ÿz=�Ûg�tWmÌ���tRNS�@æØf��IDATx^µŽÉnÄ0 ÅBÉ»³N·ÿÿÓ&B¦ŠúŽ&Akø‡ÍmhmþUkw@ö}‰ ChÃ|‡SJå=%™Ãp‹cŒU£,cXäÇ’D �Ó¸½^)"J 2-‡0Ë ÇV;Ó£,ãC¶ébÔ¬ ìÂò±€4yáºFÆw¡Q,á9Æ¡X€‚‚sÅø�Ìp  €Ò\¡¢Î� Äû„ÕVЋ@üÕWÍÝ/€F¼9+Àj2½\ “�Øo3Æ]tÎYÑ7z`娕ˆ:÷„½#.¸Qµ÷ƒB</pÁ ªlb‚Û&‚£#ÎÝM €H:¹Od“<—¼U’Íñbþ¸o:\ s8¥ˆV����IEND®B`‚IMAGE 428 ./arch/planes/fire/burning_fountain.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE���Œ�V ����â)�N¯B*ÿ]�ÿ{�) �Qgí±�ÿ��k>ÿÿ�£Uÿz=h!�;� �ÿõM‘���tRNS�@æØf��IDATx^µ“In1 ]$µÌºØNþÿÔd(À„0‰Ò×.U tû—¤º¿i÷Z´å[q»ÕŸj Â¤ù]ëÅLfÍ{ÊzµO.�†1¥qÓzYªù¶ý:ÏöæqÕ4hÀ£< †=ß3h( öø,0¬ù~Ï$j#0øX ­.¨Ì'ý Â0»`¦QÀ÷amŒ€*^70 ¢à)öÀ‘:Àšàh‚§+zCi‚V[¸!5‚Q!€Á¾àžg€„WLN 3GŒècƒ`i�ĈˆØR¤8×ú�œ�H@<BÛ¦êPÊ‚FÄèHòÓ“÷=¡ã8iËþ™<^¿ÿXÌ FÙïõC����IEND®B`‚IMAGE 667 ./arch/planes/fire/burning_guild.x11 ‰PNG  ��� IHDR���@���@���·ì���3PLTE������>gƒ() {&p"( k!@�4SQ“-N²2‡���tRNS�@æØf��IDATx^Ý”mã „™± éËîÝÿÿµq¡Itý¶cUS•úÑ`§ ¿KÓ±–Â0XŸýÏå9Ih€ŸÜKLO¡Ž•#$žú ¬uì73ˆÄL8aœ�>ûae‘ÓtÝà€^žàZ{€:àÝ•7¿/ªõ3·¦ðî|‹à}¥°å©ê€®�ù΀˪ý ÀIïÿo°$xžÍ è:�jI€š`@`´m '¿€°m s©n4ùæ€Hê[˜›LÓ:ƒùšêæ–`ªBßÂܨm ãKð¶0›À`¤oah @n[˜ @A⺅©%˜h* ÒlCR®[˜YB{u~šÄ·0;U–L=@I0÷Kð+ø_Ú|P6ÀP5�˜€Bø †Ô%x•øÂ.ðÑ`|�–"dÝòÐ�ÄëÅ Xƒ¥¤¸á_{€½Jx°ôWqÇCr�ØâÁ4Ÿßð¥ä�¤¯�Ew<ô�gWà�,#Bè0"JŒþrs¿xÿ !‘È’ Š("›Çâ‘ÙC'@ Tõ±sú´AúIsù˜ zßÙÿü)냷“¸DЈ¸áÁ(.àh8ºøàxd¡º‡ßÀOšáˆ×æÝ V5—#�røk?ŽäpP˜%Ì^_°ÿØßŸ�Ît}~ŸþDôQš¼Òœ/����IEND®B`‚IMAGE 295 ./arch/planes/fire/burning_house_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÁq8���( �@Sƒ(p"^4Nè:]!���tRNS�@æØf���·IDATxÚ­’Ñà E½—âÖÿÿáB'ZÂö°cƒI½9Óö#Èy˜®y.¬²ê qd ƒx�8’'¾ 6Ð[äÜ*Jƒ S*¨R EAÉ/¸!D€ŠBà†^Þ#}ŠÚ (îqL”ÀVÊüY¯ ¾Í€ �¬ú6`‚ zרüˆ€Ùú©ˆêçö®­€@OjÛÝ3àRgÔÑ€-à>Bt@ k„�ÜÀhÔþÆ£†SB����IEND®B`‚IMAGE 673 ./arch/planes/fire/burning_house_larg.x11 ‰PNG  ��� IHDR���@��� ���•C޶���9PLTE������Q' ��{&?-�j ˆ*¥2C0ƒ(“-^N,£†���tRNS�@æØf��IDATx^•R‹rÛ0 �R~¥í¶ÿÿØLgçÚmE$B”"AëqPoòãð5„¿àrH¯ ÉK}v.µÀ76|ÜÎ!µ@°}!šãê÷I ófL¢p;7µ¤)V*Ô¹ ¿‚d&o[ocZ°:mÚCñvmÚ@ À4@®Ðp(~»ç¾ŸÞTï/-@Rçæp˜c¹æcÈ÷Í5æf Ëp¹pm“+×ÌiÎÍcT²@‰ß [(îŠ,P-ÔÊ\ éí•ÇK¾\÷OgðcctwîOÙ˜ù•åP€Û¯'Æ—Ð+÷j Ifû¾gîŽ^¤É9ÔUH]]î™BY@ryr?ò82+Ö¬\¿}5á¢-Ð3 V¨Y$tóÛ‚äs߯¯ÀçÊ´ 5gR¿ ³ÌL²ŒÓRUžŒ�NóÈì–i4By$Ñ3Û?!I˜‚Ä'o£þïûÆ ®¢%Ë´ìU‘•£ºn4Áù �m;“°€0sý†›” Ül¡BÀ*K†<Ì5y¤ð˜P°6¯Agyb²Ð A™\[€hÿîŒ+ÕêÜàîU¨×Ű5<n€œzVy;[9×IW�Ñ£½Æ™ÆZ•/ï[,D§(<þ ÕÇò±lÛ{xÝÕÿŸ�Û^–-~n?ÂëÔwX‹°©¨5¾# <AŠ$«­¯×Ñ‚±‘)/r����IEND®B`‚IMAGE 390 ./arch/planes/fire/burning_house_long.x11 ‰PNG  ��� IHDR���@��� ���•C޶���0PLTE������( �) �4>@NQSgk!p"ƒ(‘,“- ›­h���tRNS�@æØf��IDATxÚ­’‹nà Emgñ(ôÿÿv~0 Šw§‘bA8ºÆ… ù´ îBÎg¦|"ýñ7gÚö=õÇâmK)QÔ€dç1�ÜŒOŸ@Øù98Ý€O¿Ä° èƒ�¬(€\ ÐØ |’Àñ�` „g0‘)ôóM0ñ�  „g0ñÿ!Ø ˜ø �N¢› p.@P ºTø% ­wáH ¬õðNðýn• ÚZí»Å¾oÀ¬¨À*;ß×j¯ŠV0 4Øqò¾VU^}×¶VJ±ï'gT^£ ¬waðÜÀAZ0F°&0ü?}öýëaÊ����IEND®B`‚IMAGE 442 ./arch/planes/fire/burning_house_up.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE������� �& �) 4?ANUp"y%ƒ(“-¥2bÚÛ���tRNS�@æØf��8IDATxÚ“í®„ DE·|¸¾ÿÛn1—L¸­àüXÈΉ'¡°ø)¥D]®«ø=ŠVñŠ¥<šòk Æx©ÈíÑbšVÀ¾ïÀc}`ÿh¿á¡>|bÄ–6øõý‹¤@Bß³>TÐö`íÚÅöÒ+`¬@^a±z…Æ …|E…† ­Ñ+,pb¤‚l=pžÅù0 2QLf´+Þ:…=™”`¨€„^á³qßfã^ƒ˜YX`¤Xí,,0VÌÞÅúþ]°N°çÀZj`®}«Ã_°@n $æÚÒP„ÿAwí“ðÚâ¼Õ^ ùâ…À-�PWî°¨ßû~s]¹#p î¿…;¨ßË9ו;HÔ$îT@@¼x:#~–—ùx{MÌœa����IEND®B`‚IMAGE 322 ./arch/planes/fire/burning_housesmall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÁq8���@g{&ƒ(p"‘,¥24N1C% �n©¹Ž���tRNS�@æØf���ÆIDATxÚ­’Ñ E½»@«âÿÿ®×­‚‰¤óÁÓQ²´9àò#XóÙ°-cÔɼƒä–­¾ +ðؾ¿!(©Aer-À!(ùÈ3åH +¸Ä hdj¨•Ù1™@†\ ʉ%;Dz×…¶ä2® îns@¸æsÓ0ß³á*4ÏçCk5òh@4@uG»UD‚`TU"k A€Ø"OA »ßÝ»ywó¹ƒ�&Tµ®ð¸³AñÐè Ãã ^²lÙËŽ����IEND®B`‚IMAGE 616 ./arch/planes/fire/burning_l_shop1.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���9PLTE-ŠV���c2cDŸQ,±!!¿¿¿ÒiÙ¤þ¤�þÖ�ÿÿ�“-0j ?{&{& ñr���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  2ŠÛL��›IDATXÃÍ—á’ƒ „]þ7œïÿ²'"@D{3G§3HÉ· *Ûö? ž– ¢ÜD¾oÐA@Œ™àùT@ƃ| H:¸�ÁéAsàò :/çÀ広àM¥ÁA¨6©³M¢~ç õ–WCpèãÖM¿,cÞKÜM¿ ŠXë_ޏ #Xé—9ä€qïô³ƒ4té�V}Œ€2›þéà<Gä*À¨Ÿç êy`ÖOrœÌD³>F�ŸÃµ¾î�f}š8°ëwP˜õ;9àЧÐÍ­õ[+}àÓ/‰(ØõI°5 Ã_Ë6.£Cpcôék�ßëÅ�xò’$Ÿ\Ž_ºŠÖ”$ vÞ÷Ü«V´¦?�°øÜ©V´¦+þ›€Öl`À5Óµ¢5�^ÑšÒC·üE�Ã[ðMÀ“xbCxÿÐŽõw¾‹?í‡!)úz»o ÀO."«w´tÞkjrÀ<~ Àfœ1W¯KÀÊ€À6à àÎ�ú 9 à€yÌ &÷nûEœÇÿk¨hÓíã����IEND®B`‚IMAGE 277 ./arch/planes/fire/burning_market1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ���% �j 2& š/y%EN$ ¥2�s²xï���tRNS�@æØf���™IDATxÚ­á à ûÍfµ±{ÿ× ‰Fd°«?9{ü¸˜ýkýŒ<£ïO$ϰBŠß�ÈžhÍôÀ /@hˆ°ÐU�­Á üVðV ]6A»‚ÃÛ.dŸQÉÃ8 7˜ ÆQ´KÌ|:θR‡Q„(ðˆD"DZ T€a|Tù;¾;{ ÑÙÔQœ����IEND®B`‚IMAGE 274 ./arch/planes/fire/burning_market2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���N¥2,2y%/$ E_% j š/IY& �NIm¥���tRNS�@æØf���ŠIDATxÚÝ91 Ik}ìæþÿg#­Š`é2vAÐÄ�ÆïP€ × hƒ�d]^T„ jƒPþåKžÄMƒF§EÚŠ§ëT"âÎRïì·O‰˜z,û98üýÞce<Ƹ¹ bçc*ñ-³À !0¡q8)A ²4pÍ Š7ÚÏÖ6jBÁ����IEND®B`‚IMAGE 229 ./arch/planes/fire/burning_market3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���% 2š/y%EN$ Y¸Ù=���tRNS�@æØf���xIDATxÚ¥“A „0»Ôqòÿ; v:°•úPäý R±ñû glÎÀ ØÛ«½™�¾àróŠ•‚ ÈÔ– t¨8¦ñèN2|æ‚Ì<á= ôd1ˆ÷œ‚ Èär£¸sØ¿©U.ûë§Ÿ ¬����IEND®B`‚IMAGE 361 ./arch/planes/fire/burning_shrine.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÁq8���* ?Tl!s#Q{&g¥2‘,@|•£���tRNS�@æØf���ðIDATxÚ“Ûà C—–^€þÿ÷ÎÆ+IÒf äS'~èëÙL¡Öe…RJÛ¶íÛ8!·àD þPýØø°§ÀÚ&èóØ‘ÈMü¾”ò2ÜÇ�0ReÜ犰ã$Ò}$(Â|©'ìÈ­Eô?[ôµ/Š€–ì>4ŸÄ°äH8[͉|If| ¾·0ìT‹I¼â8€g­å´ áf…Oú ±2â•'�¡Æ#éAß[ ¶ëºLp€ñÈ×¾wèù„.ðhа€6 €(@%ìçoû¯Þî àš™"ø����IEND®B`‚IMAGE 227 ./arch/planes/fire/burning_smalltemple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÁq8���>g�) �Q ‚ ���tRNS�@æØf���|IDATxÚÍÒAÀ @AðÿOn!ÔM$¶&\º‰݉x°åÛÜ2Sï ©e © à$µ�+A àâé«€¤H´¼—"PÑð¿7%@«#Ä·‘{Á´–I�6™#DyØŠã¹mgà¥?8ô+Pe°½ À.Þ^X ˆMý(����IEND®B`‚IMAGE 613 ./arch/planes/fire/burning_store_alch.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���'PLTE������ �) 1@NQ^{&ƒ(“-¥2ºR5ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 6ÓV2î��ªIDATHÇí•1nÃ0 E„€ÙJM'O^{¹€ݧ̤Õ@]²vëÚ9Kª¤d•¸a8Œõô)}Yr×=¢ hb¯�§£vÐë�4 ®Þ`C ¸çëëužobçMöóòq)$À ¿pwè ñÔïO#6*«Ê ĹW^%€†À± WV``é'‘ úÜM~\N÷e1*õK@ΰ¥€“(,ƒ ‹U€_Üm <9×À†xôÐÌ¢°\\,J§'«ÿÉÉœ+`Q`Ë5 lõê°ój‰²P„Ðk…4È\˜+ê7f‘ÆØ¾¼õ»T/fZ‹þ¨£,;©@[ÛŸÿMA•gÃ÷÷D& a‡Q®S€ 8ÐÎa¥‰oÉ~̾:~мœYaƾ*�q \bä äÔ)`kŒ²u×Ç @û&â ÎYœ¸yn²‘Š P§ô|³¢@s ðÒtfqûd¡®� Zæ¨HL% rV© ÿ&=-mzo>rZßÿ<¢ûC3誒)½����IEND®B`‚IMAGE 651 ./arch/planes/fire/burning_store_armo.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���!PLTE������ �) 1@Q^{&“-¥2™l*Þ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8¤¶ºU��ÖIDATHÇ핱ŽÂ0 †Û7¨EBÂ,<ÀIÝV ¡[ú�'$Äxé’¹â†è6•§<;i©"x³Z54_~;¶Šâß„ÁĪ ¨3S(A)À{4€ ÀEó/¦�G!¡qõúFÙ1t0PB7F²Ûî£lŒšpWXO�Ø…÷ëÂéüÁcÐqóMøc8¡ó/KÓisî:õp}¨9 ÛæVsôKÉ’ H@¥eô¨Ó°â(Qq]Ò8ž)è=)ôñÄÐô õcK@Š<iœ/`² ž«5lsžHhôP…˜É4΀^SîÝDS=äßÛnHI$p¼zPLÝ;FØŠyW ›¶Öbì¥áªШICq�£„\�ràÙç¿ö>7Çφ˅€U»j}Û.Û¶]I`±ÐÆãÍ,ã£õ¾ÇO–¨ÐÛJ¥&i%¹@á»úyŒ4fx 4èÛÆ·x;‹µô:“èÁ58eñPð. à(9Ї%×Eàíve' 44åPÜ ¾*o·J�š€` è¼=O%Â�6îoó`â[ž¦ï¢µ�:­e/Tÿ‘Üþ�ªríÚqëÎ����IEND®B`‚IMAGE 777 ./arch/planes/fire/burning_store_gene.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���*PLTE������( ) 4>Qgk!p"{&ƒ(“-¼S 9���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 4qßMý��KIDATHÇÝUAjã0un+MÓ£0+o‚OPȲè2áE0[AÐ4›0«®[º7ÆàUIhHÐÛÌ—,¥$v=ûþ¿DôòþÓ³£èóÄ�ºãˆaÞÃàƒ€Oºæï€n† ‚rÞ/‚pÞþ3Lþ/b x‡ˆÅ®Š¢¬y[,ŠŠyTñ8i™´¸±Õõ k¾KÆç¸l×Aä!¹=å=¶ƒÈÇt—,/‚ý�;8 wOiÜbø)o½Ú§¼¥ÁIh4IZ È1p°ìŒf—G•<Œ»€>oÒݸ;†ý&û)ïÕ€Nò^ ò©eCp£9.¿yŸ ¹úË“n p ý ô >ÒàŽëÞMDäYõÚÑýÿè†÷½ <³ï —G»qRÑ“¦ÏßúY°a)S3` qв)gÁ\”L2\f6<€|?10)‚ °úm޾…WÁN-l�󻘆å…ĦCS’ôÞr£©˜TµMããæµ©j¿ŒÅJirûØŠiòRÀL e3ö±3j寰YU` ¬6nf�°‹ �ÁÊëã¶4XLîf«lÎJ®QPT_¶jõú¶ÍmQyœÍ©Ê‡~DVÅñjùú¦ÀR2ÔE4Œ°*¯ïï©Á2ÉíL[�V\m^7UÈEs,LØ™øú;%†ƒp&Fù(Ýͪ8˰ú(2dÓ:d;@Ž—l�ƒlZ‡¤Õ(¤W€€ŽƒØ´~šoî?çåzsU½ï·����IEND®B`‚IMAGE 894 ./arch/planes/fire/burning_store_magi.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���3PLTE;���Q>) 4g{&@ƒ(S‘,p"�( �g\üÉU���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 9¡,Ëü��·IDATXÃíWɲ£0{²Èòÿ;j»½ðb¦€æ2NÀ®)R«!ðóóÜøÇàeYã N‚Šx!ˆ¸ƒx¶@Š Ï .À¡ÃïX(÷-À¹ï,ÀÚ¯,ÀÙ;z§Àšë€½æª¶í»g®Y úýZëpöŠÂ_ï×Ò4:k’9ßHù×߯ײê)4€G©Á D+>Fõà¬M鬅†'ÁªŒ0ᤅO±*pÉ´€¿ªi"w®‘°ÿ}%à¯wîZ@Ã/±+Èmtª‘öø¬€wÎeøäûªìæð§„eú™Z� ž VÌÇÔ‚t°â—Š_§ ä-xuV9sòÅÄð„â—Ž >-  øÌp NR�oÝB0âc<–°' €G¹u Žೈœc¿îðñx`OÀÐeÇ£Y(‡£VØ?dÂ�žþ`ŒÄ?Ý“x^xÆdö‚ à©>oò8É~J`­÷$ð>lñM@fôåãuïÇþI†B>=øA€B;É!35x<¨a¨À‰ì‡g¤l@êÇû†x¤„m0/á'PxÃ~Ht°áĘE £�ÖÒë&SÛÚÚI6ŠgŒRØÊ&SÛšiF`k†Ȩ›LuÖ“L�¢3Û1­Œ×¥˜Ø øÁ ‚¥ž‰ F¹KóÓ&Ú¿EÀEdÅõ…ÕÇU9ØæP®ÂÚ"{)ÌàgOP"ðÛæKRì†ë/öW¯‚Ð"àß¡Õfi ©?©ÔÁp+Èå*ÈôA«¼Ô¾.ºk±ˆ”l9œ#0ûÎi 4©€>Æjùh ì:§6P‹Àá7©Êœ¾Š:#€VÀàÖ»˜þîûÜ‘¸«ÿà%ø#›+nßAŸ1����IEND®B`‚IMAGE 573 ./arch/planes/fire/burning_store_weap.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���!PLTE������) 1@Qk!{&ƒ(“-¥2݆¯ð���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �QºQé��ˆIDATHÇí•Mnƒ0…“ª`5tW±ìY•¼©ˆr�6ÞGjÄÚbãm®ÐeNÙ7%ž¡2È2¼ù1˜Íæ)!Z¨P@§%-•Z¤€…C'�³æ`ª|[_ÉÇße©�åp”ÆW»²ÏgR�ÑQŠÒì@]r1¦€©v6Õ×ÁÚ.�@ðA(­V‘FàF)ƒR9Ó³ƒ6 ø¼1°H"ê5�”m ƒ´‘äý² ¤€¬ƒ°¬BY¿V…_«­Î-æä9­En1ñYq’™ÏW}Ô éÞp¹ôÑEgÝ-F> àýÝ4Ñ9gyàó8ºXˆígÜü<“£�^ RÙ~†‚Ø^|>Ç ù&F"¸Xë0G¸[˜@à yP3ÆP¤>†¡ö˜ªO5!BÛ¶8]�TûÝø¼þ>€ævw‡0|-^®× p¨ø& m�îb9¦Èâ"·i™k@së OÍB‘Å?¿Þ²ïïBñüE¦úeñÛÒˆJEn����IEND®B`‚IMAGE 866 ./arch/planes/fire/burning_stronghold.x11 ‰PNG  ��� IHDR���`���`���¶j ���sRGB�®Îé���0PLTE�1�����c��Ì�-ŠVc2cDŸQ,¿¿¿Í…?Ù¤{&QÃ;¬O*YM©Œ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ Úð=¶��žIDATXÃŘKrÛ0 †Å{²÷¿÷Ђ{â ÉR€Vm‰ø¡‰Rwʉ˜±èÏx’´,;h—ÐÍ$5ü~D"á@D’–Þ£ ¥$z·„=Pb D�3ÔI€ßaÀdß[tñ�3Ú�ÖY@é[�ÙEš)JšNi¾„€“ Î”¹º‹¤ýç=шT‚GÈ–rõ±ÙT%,Á¢°ú(lf(lå�0ª�÷) â1ÀTÈGA$çJŒG €ÌPF-G¿ùX=P.°¥®€-¯ /*ßÚ `hôV`6Ú4²À}0Ь¦+ 8`üÝèàçÉè‡ “Ñõxã[�]ʵ¶H¸ôRÓ“çVÚ½ÀÙ9|0³/”ÞÒnî‡ò¯vk?,?ðÒ›Ýú–8üg·"@~ ´"/QËPšÛÕ”õùJ@ç‚óX=ƒ ÑGõ¹à4/ib%Äãðc ÔQ’a�>Ú �ãðëàk¾[ÀC#Ô&s9h�•ÎØèÚ\:ÎïÒ;JHHXì:̾ªêjDÉZžð8ã§«šœÉ¥wßšeÑ%™*¬`(AmàÎ3`E"(x¤tU¶.À¹Š€]#\…v-“,°bxš½ K±Dzìž_4ͨMP o¨Ÿtžð퉹Z 3>¿æY,ü«x¬8ÏÃß+*Õ#§ÂR}Ü �€„½�£k5�õyÌñ2‚ö¤>‹½ãa€lN§Dª›ç§±Ó×+ åÀDZ^‰4€nãiPÐ0½¢0› aذ cÉ·'½‡& ; v÷ï&ìŸÊð·ë—Q¶ìÂ{GKv¶ð èú“ykôN†ÑkœDñ[ŸãÒomrÔë‘Ùñê����IEND®B`‚IMAGE 840 ./arch/planes/fire/burning_t_house2.x11 ‰PNG  ��� IHDR���@���@���·ì���½PLTE������Ny%U„(“-Q3Y`dl!s#% F†)‘,! ›/¢1¥2‹*¤2?v$x%0‚(�7ˆ*Š*;+, �C•-š/h 0ž0 1( o"JŽ+]t#~'€', ƒ(w$—.�[{&|&u$p"˜.b’N���tRNS�@æØf��9IDATx^í–WÏâ:qKï•Þ{ýêö=ÿÿg¿¶YVHÄf%î )73z’AëA<y‚Lh ”ZÈ�ÒˆÙ|žÁqœá0Ž1Çu]Ï $ac�a4Ø¢oœy'ÚSìbo½‚m ã~$&DÙGæLbîÛþ:8Âæˆ`4_xÃiÇ”zÒm šDüdÜVü~¨` Dx�ÝÐqz{щzû6ýþú…p:†‰d(™´cû÷8eUü“n·« L&í ‹ELmïÕÊWÕl4íWï§7ã�ÈG»ÔÈh³ËOËj–̘e�7›RÏ_B2ÛÅv»ªÒ$e t,bÌmÛvÅû CÂV»º®wP°´îm›Ú”¾¸>÷!0n버‚Ŭ›DDàˆ…ïº|½ôCÒ_ò�ò±Åô*ýuŒW;Q(òÑ͈È�ØTÜ= Ýþ¬Ê‹(r}�»üîϾ L“t  PòÀ _àÝùïéèëVj}À†ïþÅ X*ž ¨õÊW ’ž‚QÀóϾ ¨‰OÁ(pö/,Hþ3 \û81‹Y£¼0(_ñëG …dSܳ ø«Ðy³>—ŸK…»(,Éšˆèÿa$}o~�ð0ó(u€ß0¡uÇ.\]5ýµP>’ÜÚ¯ (Ý7�@ÊG@)[JSWà›!ÿ0óõô'ÀQd¸`þ HOëA<yò?ÙUe#Á }����IEND®B`‚IMAGE 524 ./arch/planes/fire/burning_temple1.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������) �1?Ql!s#{&¥2ÖÁö���tRNS�@æØf��œIDATxÚí”Q®Ã ½Ô¦Éý/üŒj%8èýfóUÑ™N…zöìÞ�^tãÖÃYÆ‹"‚qlî8K‹y¯¢û5€YÄÎò\w绡ís6´ïÔ �ûjR€ázÅÎ0 ¥ƒ rå·>•Eæ<LxfãÍ ’ÆïfÈ ÜåÍ`ŽDÐø‚λÁx7Lè‚È Sñ.èüP°O 0$ðìüT`¼ >挂Ès^@ƒ œ_œ, dàÝ KåcÁš@8H.0`WtC5ÞÎühûòb³³L DÝ¥¯_Ýo¬ ÌeiÁñÞ;Ýq–ÝB›œºìdÛÊe€§‚"&àðÛ¼™`Âz@¿Ëñþ’�B`®ïp—uG@8 ü.Ãý%ä*ØÚ}ÓÏ’�ò€‚‹%är¶4�PþÐ<"3 Ψ@¹$:Ù@p>üæÝØu�Ý[yÙT`ü¢ ñ¢^! ›(ï‚Àçà¼X�-ïW@ë3Þæürú[ž=ËöX ‰¡—‡Æ����IEND®B`‚IMAGE 768 ./arch/gods/items/burning_tail/burningtail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��qPLTEÿÿÿÖ} øÇ-è«"؃!Þ”*ãš&Ùƒ!é¯,ì³.á”$ä£,ô¿,Ý¡z×…'þßðÀþå ÿëðº-á¡.î¹6æŸ#ä—!Ö˜)ܘ3é¯/úÐÞ‘%؃"Óª&ð× á /ä +â—%üÕ âš(á¨6Ù›1ç§ÛŠ#Ö~$÷Ê#ûÓ ×Š&ÒŒ<ï¾6ô¼*ñÃ(ð¿$ï¿(ñ¿0ãÂå±-ä¦#ï¿$îÊëÀ)ôÌ#ê²0î¿*öËÕ¶î¹/åÄäÄúÒäÂï´+öÅ*ê­+üÞî»,îº,ÜŒýÛøÐ Õ‚'Ùš'áŸ-ä§1é§*ñÄ*÷Ï óÄ(ïµ*ñ·$øÐè¦)ÝŽ%ÜŽ&çŸ%ûÊ'åŸ$ë¯0ò¾.ã(ýË*ß•*Ü•+ã¤/ç£)ã¥1ì´0Ö$ôÃ.øÉ-ôÀ/Úˆ#á–&àš+å¹+Ü'íº0öÄ-äœ$ìª'÷Ë&î²*ôÐÜš/ò½/¸ô+"���tRNS�@æØf��=IDATxÚ•“ÕrÄ0 E{%g™ÊÌḬ̀effffúúÚmÓ™]ǽE™9Ga'ü+€ÝMvx6€,Yμ¬¼“+�œøñÉõ[bRrJjš�tžž‘IßaÎÉÍsò ÚÅ_äw¶2²—”2 áÔ˜ ,ŠJÄaÙU.TUÕ�1Ü>†@]=QCÌ þ0ànljni%ÖÓÚÚ;:‰Øôª»º{zIr“ õE%æÙ?@4È‚ÁbFa”‰Ç ƘhÂ3%˜é#Ÿæ¤ÁÆ?˜_X\"Z†ÆÔxUÏÓº.¨øàõmú·w˜vuA`À¾ÿà™ÐÆAëôìü"pyE—‚áðeÝÞÝKÌNw ƒOL ?Öðò‰¼ØØÑù„Âæèz°™• T����IEND®B`‚IMAGE 742 ./arch/gods/items/burning_tail/burningtail.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PPLTEÿÿÿÖ} ä—!øÇ-ãš&ä£,î¹/è«"؃!Ý¡zá”$Ùƒ!Ü'þßôÀ/î²*ðÀþå ÿëðº-á¡.î¹6é¯/æŸ#Ö˜)ܘ3á¨6úÐÞ‘%Óª&ð× á /ä +üÕ âš(Ù›1ç§ÛŠ#Ö~$÷Ê#ûÓ ÒŒ<ï¾6ô¼*ñÃ(ð¿$ï¿(ñ¿0ãÂå±-ä¦#ï¿$îÊ׊&ëÀ)ôÌ#ê²0î¿*îº,öËÕ¶åÄäÄúÒäÂï´+öÅ*ê­+üÞî»,óÄ(ýÛøÐ Ùš'áŸ-ä§1é§*ñÄ*÷Ï è¦)é¯,ïµ*ñ·$ì³.ÝŽ%ÜŽ&çŸ%ûÊ'ë¯0ò¾.ã(ýË*ô¿,ß•*ç£)ã¥1ì´0Ö$ôÃ.øÉ-Ü•+×…'á–&àš+å¹+íº0äœ$÷Ë&ã¤/ôÐÜš/aŒÑ`���tRNS�@æØf��DIDATx^}’UÄ0ƒë™i—÷˜™™™™™™™ÿ?_š{Ù^“µÔæá³ÜÈ®“!ÀÉ*Àwd1ŽÝ€K�”׉3W4cbe÷øÚbxúÊÉÍË/(,*Ž"|c”ri‰TV>ƒê?è¿jjë˜9` -/uÖ7Â�\ׄHšš V'\¨ÇEK+QyF•@{Qg £*·«»§·„ ]Aß¡`pˆH˜9dP422:6®›0• ¸ñøä”ÂQ†e­HdšhF47;f…ææU@Ô± $‹`^‚%B´œ„ý×ÓŽÕ5X1°.z3Õ|csk›hFêaØOáè?ÃáQâäTè�<ÏÀóÄÅ¥‘a'ï*vs{wï=<QʰóH,öòú¦°¤ŒC½C„|ü¡¸¥‚ÏtúûGál5ÁŽíú h|A2è����IEND®B`‚IMAGE 730 ./arch/gods/items/burning_tail/burningtail.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��>PLTEÿÿÿÖ} øÇ-ä +è«"ÛŠ#á–&é¯,Üš/íº0ôÌ#Ý¡zøÐ Ùƒ!Ùš'ä§1ä—!ï¾6ãš&ò¾.á”$ä£,؃!×…'å±-þß÷Ï óÄ(Óª&ð× á /üÕ âš(ç§÷Ê#ûÓ è¦)ô¼*ÜŽ&ñÃ(ð¿$ï¿(ñ¿0ãÂß•*ä¦#ï¿$îÊëÀ)Ü•+ê²0î¿*ã¤/öËÕ¶î¹/åÄäÄúÒäÂï´+ôÀ/öÅ*ê­+î»,î²*ýÛðÀþå áŸ-é§*ñÄ*ÿëðº-á¡.ïµ*ñ·$î¹6ܘ3ì³.ÝŽ%á¨6çŸ%ûÊ'ë¯0ã(ýË*Ö˜)ô¿,Ù›1ç£)ã¥1ì´0Ö$ôÃ.øÉ-îº,úÐàš+å¹+Ü'äœ$÷Ë&Þ‘%ôÐÏõª���tRNS�@æØf��JIDATx^}ÒÕ’Ä „ÑéŸø¸Ûº»»»»»ëû¿À’pAÙ¾=ß™˜�bQƒçb² þ–»»çÓŽ¡i"�ü~v¼6tvÂ3ÍŒM.­mlîîíép@õì ycìíÇÇ(A£@·hjÖ Cur1^´´2% áG1^´Y¨,k ¨#+ÉË刺”@>D>ßÓÛ×?@Œ{à1]ÎW«CÃ#ä!/=¯ÆÇ'¼ËB¸¿H$¦¦9ëˆp`f–hŽIóŒu$#ÿËŒØ tá…xÅÕ„GëI Œ<O§yvIˆe¶2Û;Du è¦iÁR‡Œl* /XÖÉiñü‚Q]r0a^(¯®#®¥ÛòýÃãSéù…¸T*N¹l¾pfŸ.p0rù Q—t¾kµ_Û–ll>Á‘IÿÙs¼:æH/����IEND®B`‚IMAGE 495 ./arch/planes/fire/burningwall/burningwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE������_#§>!¿¿¿ã‡ñ½�ë¡�øß�úãèr%Õe�1�c2��- -ŠV‘•–_���tRNS�@æØf��gIDATx^­“ٮà C™}Ëÿÿì„Zõö­–òP|›”¸7U&,!E_¯qýD�Ò6“S¬ûÕ‡~�ÊÑÿ³Ú0b 1Õ7  ÜÇRžñšµz`ì€ÓÔ¥»9¦RV€°\`N ›^HZÃ~µP7‰áS~Ès"âü Zá�ß�ŸPÿ6�ÄÚË‹'ý”¬a‚E´§³Œ~üÎJ ""�³�›Îai¼š,¡Ëæ®FßXøt( ðÜu±=úØóÉ&äM¤3ÛÓ hCà 0Sà ØX<�ðxxå~ÆŽVÅ»!ÐÈÊ]M,�î�ço´30ß÷ô L`Õ.¯è8SÜî¦JÍf݆‚ë¨æŽxPN¤=‘ˆò¹O™J!°K±¬µKÎÁm"„2!R¡%Ãs ñ^YÖ"•¥CPÑ_ Æ”ry©ïk=€÷öYÄp•RRßýDŒÛ Úa’Ž����IEND®B`‚IMAGE 510 ./arch/planes/fire/burningwall/burningwall_0.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE������¿¿¿:_#c2Ôaéš�ûí�ãU,ô¿î²�- �1�ôË���à~-ŠVÔÍDl���tRNS�@æØf��sIDATx^­’ÙŽœ@ EÛkíÿÿ±q-´@™äi®D q¾¢ËŸWÜhfˆüpÞܺͻ¿„hD—ÀƒoìœO�µï’˜šoîÕ?F&ÔmpL‰ýóíÖr‚¾ v Ú͇T x$žS,°¢Uá·…F~Ž?l@ý0ƒà¿—@ÆæˆL &z #M„P/Eéz¸¢Å­@À•3DP*ÞÏ•.ˆj@÷�´Š[À P±^v ÆéžPEAp]º„ÚMØgá ¼„­å%ŒØ/œ½¯¾+ºèóÐ2{ÑÀ ÊWHç×7 ÂŽ�—2–Šù3ûóµ~æö&N€Ú—hR!†-äï6¨T�æàÈìβoãiaŠdý±…³’£EbKD†SŠ‘(¶<î• ‰,f” ÏØMh·àsž¦B˜B!'Œ1|n-m-gïóüñùÏ/äôuSûáœ����IEND®B`‚IMAGE 957 ./arch/planes/fire/burningwall/burningwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��&PLTEÿÿÿþòê¢ê–æŽî²âV.~.þöB"öÒîžn*V"6 òÆòºÞzâ‚ê‚"Öf&úæÚnöÚJÒN*ž:öÊ~"¾†ÞŠzºBŠ ².2 vv‚r¦J N ’"’~Ê"–²¢Žj¶:B F R z*Âr&Â"ªÂ®¶Z š†¢ŽÆ: j –rf¦ª> ®b6 – !¤£���tRNS�@æØf��EIDATx^U‘ÕŽ+ACSÃÌÆef¦ËÌüÿ?q{²Qv¦¤~ê#»\n-‡æ-¸úx¼³?ü �‘ÄK¯Õ"�v{›ÓKØRPúM�«�£³ÎÚúÌᤄ “�žnl½øT‘©Ê.MÂå¿GÒìr<‚ëÛ6<*pÄhMÂÃr4èvo{s S{u "ëÃîë‹‹“Á 0Òǽգëö÷ •4l�rt0Ú=ê|ûü¸c.»˜‰38?Û¿:øWýg!ÂzJ’Z�Õ—Óó*ƒYpÙ!IÀ(ƒËç_†§·�“LR9*)¬Ù0vß­¿Ð3I(¤nM"ôX Cgx2ºíÍ-$5K….‰„:ü`ûdúj* KÊ”ùáSˆ’GÐÿ8}ÿª%,S\Jñž,¨سö`÷ÃøàþNX˜RhùL³v6&›_·oV&º%*×D²Ì?Çk³Éìt[Rsn §$ú¯€Ÿº¾—9´´Vw˜P†Ôè¢H×£¨<¹\®ø”(Rm!nG‘-€ ªK†‹#QB0‹¹µg[V–Y™¥F /VÒ§”¦–Y" )q$kUY L<¿O]”KEž…Z¨F£¸^·@H)b÷ ÏyÎå²L›eV§DšahZ†;Ž#ºl�>KÑb4”21ÄK�vÊ4NÓXØ£RÁŠ‚}/¬}Ì\×qYéй1é7<<¢¸ÂX<æ8¸ß'„Vu ¡!S˜B~?øþ\à?#>ñB¤Ë����IEND®B`‚IMAGE 1015 ./arch/planes/fire/burningwall/burningwall_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ePLTEÿÿÿîªêr&êš ò¾úêf&. þöþò²B"îžê¢î²RÞzöÚâ‚âV.BÖfÆJ&öÒö¾~.’6æŽÚnòÆ6¾®†ÞŠ‚ Ê"¾Â"ÂF ®&½"Î"rFººÆ6²"’~zn.¶¢–.:ff >¢ÂžŠŠšvv m† †v¦^¦n ^ ^J b JJ’bZ "~~ j bV VB B¢: ZŽFªÆª*–²»Bß���tRNS�@æØf��@IDATx^e“Sƒ%1…'NÓÆ¥1¶ÍµmÛûû·{Ø}·^ëË©:'ÉÈY%((óêØŸñ;·»œs¬+ÀÉ—K˜ó…þóýV‰ó² C-)Tp^íÔf÷[<S`ÄE Õã¼ÔXݺ¼Á³bÐW­¼FBÂÉ;ü`uí¸CBeä4 ÂN4篯ñãdI‹“üŒ¶Ï¾ýjNÜÝ~ÊËXÐC›jV¾ï"ª?YëÞßxü%í;zM`ä=ª(|]j5«%,ßÿ5ÀüCkåÓÞÇ.ÆŽÎÒqÁ%1ç“ÓóË/3X÷Ä¡2…ƒŸ[3 ۙˮ#”ßXœ¹úöY”HZ¥ÀáØâî‹[Ç BSŸÃ |n°ùùÑI’̉å•KõÍæ)à¤íF8¥ë…A}ð¾q Tâ êKo?þvFû™Q!Lò€‹D¶»Y?ª­ÕGk© =ÚÁU¥w–¯ìMõç«ÙÙ 6•FÝéõ{Öù ©ù  @eÌ{µW7gÓ=É#IÜ À´ß]ÜOSœÈF&° #9¯°rYpð= 2÷\¡ L%˜…:ÆzE²BIœßÁ&ñ'’CÇ eφ¢©‚´ŸBÆ<[f,²¡PXÅ'GL"GÙQäAE”L we ­"Ù^ *ž‰šM-�I¬j¾¢HTR`@M¿¢TüXÒü  T õ‰¦©(¶ wˆ bzV¢„��PÜ62àÕÿE*Œ< E����IEND®B`‚IMAGE 987 ./arch/planes/fire/burningwall/burningwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿV"þò²B"6 ê‚"âV.JÒN*ž:n*&þöòÆòºÞzöÚê–î²~.æŽöÒöÊR îžê¢Öf~úæ"ÚnN zîª †â‚2*J B"b ^ ‚ŠÞŠrbvŽ’^F z6njB f*.6 N’š’¢Z RZrV–n–š†:2 Tjá¦���tRNS�@æØf��{IDATx^Å“Ž-9 Eã0óC†fÆÏ8̸ÿŒëuKógsURbßc[¥ÈäÖ4ý2¦Óý™nÓáp:âm™Txì“ù /š8ߦÛAeI‘$År™°.<ù ‹"íxÆ%Õu§­ªUIK»ª±æ¥Á;) `¬3‡Æ9¼ÂÈ3…>êS+�á<ZÞ‹g`8@ `Þ”*²€¢}­”ð l‹ÈR¤‘ઔÄèY}œàžR+Ï) | \'Œ{¹‚¿04¥ü×›üpþæ2ÜAÀÑÁfŒ˜lv‡›ÃƒÍ§‹ÑåÛoÈ `–†•ð²=mgnïOo¯¾ÿu½þs¾û™4‘rDÏïîZ€³ûõüýÙâïFW£Ýë#2VÖ¿î0»]Ng0[,æídôxùÛÍO�;2¶Ž€ åÃÛß/?Âäü¦mY\-æŸÿž�!$5ðêÛõÀìý¼=þñÝ«v M ™vTJiJ>|} œ·ï¾8¡ÞLÙ’ã3“—RŠ‹Íêb÷b‚)'I­xé}i­‡’R)P³`•Õœ$¬ÖÜ9®ú¿ †–¥78R@ðÞ©N“˜±ZY«›ÚÒ`|ɹó”yB³5ëH‘YÝ©Ž1Uï¸ÖÖajJ­3²Œ›Œ±®ÆFÜ;kU§,çË»®cÙߢØ#YÆ4ÇQªëJëŽÕ5Ëb2@EÓ$EÆTWãÇXEŒa{ôRU×U¾LŠ<Ķ7IÇMÓÄIc1Iû5Ùæy:Vy^ÄÅuº­ÐÈóå2O‡Sú­BŒ$«Aµ_®-ÆÓ>×gÿ»}¸ß¼gýÒa=½ú Å����IEND®B`‚IMAGE 1054 ./arch/planes/fire/burningwall/burningwall_2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��8PLTEÿÿÿêr& ’6. ²B"êšR ò¾âV.ÆJ&~.îªþòöÒ&Bîžúêî²ö¾öÚf&æŽÚnÞz62"þöê¢â‚ªYÖfžn&J N N‚¢òÆzR > ®²~fZ 1 j JV B–‚F ²: ¢žÞŠ:**r–®¢† švv ¦¶ª¦r n^’^ f –’>>~žŠt†Œn���tRNS�@æØf��”IDATx^½“ÕŽìH † ÂÜÌÃL™a™™ßÿ ÖÝ3#«½\+R\Îç¸lýFÿ³-uÝ|oÇm¯m»5¹¸ õn^­[q×¥1c!¢²‹×b• �]%ñ¨Õ¦<Ï«ú8‰«¼Š‹¶–Ћ K¹³9ö,k>*b̽ç®Q„©5`*ÚP‡•Š1Õà8çM–Ɇ° €é¹­lFTšb×0­OX¸^'.ƒjùu(£>Û$ßmAÙ‰:‘Üë  ³L…{¥u`´ a¸!Ô5ùøêôÍ>ZLL.•¾ÿNKFvšo‘»ä Ü%;óO¾>ÿ‰²Æ�¤¿í+Òß}ÿêåÓÕ{ýï?{²üóùå2ul¡áánî îýu´Ò_¼Ÿ¥aïËGË£¯¿z‰LCÿdÈîp°}ø ¤wfgCòðpy1^~ú Jbã�Ãíiÿª?z8ÐzûéçÓÓ‹éá?¨¨*Û0ú«³ó·éßáçÏšÁé«%YýñâåûŒéôlv®¡Û·ÛAÆôÓ'[{:EE^Áè% iª• ïfs¢˜”ªÿÍÒ×L¡ºU–zÉQYÎß–IÃþñ×0g2ƒKqî8Š5žm&Ϲg³ïöUCt\ÔE,0™äΫû’Rg•úYÔqT–SOqî¤ôΊ ;OóVXT&ÆÔ 8l­âœzŽó¦˜–(2¦4 ”1¹)ŠÊqÀŠ®Õ0_A‚Ç%hüb] ‹¸^óØK[C*ê&“ ˆ>?1ã~5£¶›%é&-XTŠÞ¢kX»& 3¹ÝÔõzP½ë-Zà(ÚÅÇkOw‹_;½ ÿ/ŇJD¢#Ä4����IEND®B`‚IMAGE 942 ./arch/planes/fire/burningwall/burningwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTE���þòâV.ž:n*öÚ²B"Únî²öÒê¢ê–6 òÆê‚"šV"Öf&úæ~.æŽJÞzöÊâ‚–òº2‚îž rªžž¦¶¢ŽŠzvÒN*Bnb F j^ J V 6îª"Z N ¦Â:šŠfÞŠ>ª~~–’": ¾þöÊ"ÆV¢†ºZB N^f .R *&6 ÎýU���tRNS�@æØf��3IDATx^}ÑÕ’Ü8€á>B#343ã03„™a÷ý"žIÆvW¦ò_øÂç+É–Jyã�£³§å €F‰'Ni­È˜§``ÕZZH¼ ´^Â(€Õíõà.×–ö„u ·²*—/vïAKãLI„¨¸‚gÿ¼¨éîÀ}²m{ŠX�‘È¡ÚÚìYuø{Y�‚È+åÑh0hý²Ÿªµ¿ ­rw´<…¼uÓƒè°hçÀ-Fae-¯ú¯&Њ@E6T­ngx²xt‹Ä05€ö`t|ÝÈÀ*‘‚ˆ ‡§Óδ{ø�ªÃúpQ¹zó¡}³¶~U½ûNvª(ÙýÅíèàí`øb7Û³q/A­Âå7ØoLÚý×�G·³‰ÕË>Aes÷}µµœžï|Ý8¹ÕÜq¹ü�œHñ¸\©~œXÖÅ÷m}ø~¦»á–5ÎVp.ãù3«Óîx!ô‡Ã'•Ò°?.Ö\M~ÞØ„P†ëã†ìsâû¤pÙ¦Ú¡¾<Ò¨¶qþn7äsÎ3 ÔLJ}*ªØÄþïó› ÅÍ&Æ8¢DÈœ‡ ì˺K$„¤f3ЇqSÎMÊrˆcHBpÔXŠ‘Ä)1%Ó5j2#öW*^òIpúœû”H†h0Æò-.•8Ž=É”¼˜59ÁL\ލbMŒº K†¢*é› 8Nt©ªJ­¶§ªhÔjj$Q’”Š¥(¢HHµ 8¥G‹¢tZúGMºº=TëQç����IEND®B`‚IMAGE 1006 ./arch/planes/fire/burningwall/burningwall_3.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��€PLTEÿÿÿò¾ÆJ& . êr&²B"îžêšRþò–âV.BÖf úêf&öÒî²’6öÚZâ‚&^ ž ê¢ö¾~.’æŽ*b 6òÆr –bN ŽN®ššš šª† †þö:Fžž^2JJR~"Ún– îªb~ Þzz f vRv .††ÞŠººÆ²r¦ r2^’n~‚Šj 6: BŠŠv:¶¢¢FŽÂÂŽ zvz®ffÓ‚>*ªºº×©���tRNS�@æØf��IDATx^…ÒÕŽã0€ÑþÆ C™¹ÃÌÌ<ËÌÌÌôê›Iµ[Gi¾‹È’,Çvâ_V s�Ð?€éVp)šLÎ_]>X€Œ³q Ê `ànû+„Q•8A-&Öå úÀ`N²+²Äר9¬Þ8.T_C#e§UډȣBµZï —ĘŠš»¥Œ £.`5dP¦ì¼®ë7¡RiÔ4š Ó® (¬p¨1¼wl¿;½„ßÜÔ(ä«Ù+—O;ÑQoÍÎþú}ïTM§�–>j¿Ìü[Pdм݇wà°à=èïÒ(м}8±�ð§óù…Õñ!a’™•GÔ/6ìoÍ,íÇc�¦wûæ÷†^Õ¾m¯Ãàäþ“±k1à=½_œ\é¼éÏë‹ÞLf`c£(ìé‰OßǶsðx{)0?z4'�Î(³s}û+3û’«È;Z/�Ù4U3¹|ý9¢!›"@õ/£À®›ri® Ôd”²ðɹ¢x™’D$3zÒj˜«š e> Gí\6\†›:IJU\ ¶�|¹¬aI¥,E1 ƒIߦãøO¹•p–+2.Ë\rÕ°?íû2‘'DÑ4ÇÑ4…â“Ãû˜s¥Ì¹ÚöÓ-G�ÖEQpÚÇÆ›JP*Õ”„˜eY;Ù¬–kÑÎgd%Îê/2C(`Oq����IEND®B`‚IMAGE 902 ./arch/planes/fire/burningwall/burningwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿöÚöÊþò²B"ê¢ê–úæî²ÖföÒòÆîžn*Ún6 þöê‚"ÞŠV"âV.Þz~.æŽJÒN*ž:îªòºš¢ â‚nÂr–&b ’š&f. †’J žžrŠ6¾"2 2¶~jzªB*:J ª"¦®Z‚> ’vvŽZ j V f²: >®bºF W,���tRNS�@æØf��&IDATx^mÓã–$Aà‰$Š6ÚÚÆÒÆû¿ÈVk«{fão~'έ›Yk«³¹Ýç¼ÿs{ûíæÚÆQN ’ŒA?VÏ@̃”é„è%cœ§ÏE*K&±G°,kÂx÷‰p˜¬*ø–Ðõj2¬»rÜg:ÂXD Õ#¤sµ žZâÚ1ñ4"ˆ‡X¼—‚eàRË,M³<¹’"Љfùôå/H"šÐÈ÷I•:Ë‘æçÔ†Ci&4÷=Ìš2T*‰ŸI�Yž„<\¦ÝfÖ¢ÂÝ;�×Ά'v tÆø°¨¹PÃ5ÀÈŠ¨®”§ × È øóæ¶�Ð ózC75`+š—ƒ0—j: Ô 0¾ÜÃåÎ kÀcÕ|²’û›Ó¯£Q*î4ua%p:ŒÇ3pVhxHìQèì´[ƒæL$jºv8“"8¸ýÞyýcDb‘!àRP8Þzè=\Aš'¡& ¸9jïîÁ| Òl˜LGpvô¢ýjŒœ ¹|±´Œƒß½Xô ½ TsÝ©ôaïÎ.æUº>’Üiλçæõùã§óÞá„–^þK ”pï®÷÷ÌI�7+›'PŽ£jHhvÞkM÷‡vŽØ¢&¥fej.|n÷:S~Sôœ•Z¶±Þ™“»ÈhDªàÉ%-×\_o]™�nᯂ´y·Ûì_Ütìȓӈ5®T÷����IEND®B`‚IMAGE 927 ./arch/planes/fire/burningwall/burningwall_4.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��&PLTEÿÿÿî²îžêšò¾ö¾ îª. þöþò²B"êr&ÞzRöÚòÆöÒâ‚âV.BÖfÆJ&úê’6~.f&æŽÚn ê¢ÞŠN n 6~–:²Âr®bЦ"º&Æ"†b‚> †1 R V 2ª^ Î"‚ŠºvZ ‚’J ’J~’J 2Ò&–ÆÊ&B¶$:.žzzÎ&Â*®®Ò*šbÁ˜gá���tRNS�@æØf��'IDATx^m’Õv#1D#ff0³ÃœeffúÿŸXÍ$ËÎöƒ^êž®:¥ÞZŸƒg“º®'“éô ØúÏ.ª�"@¨Ö‹›È´F` ŠU¦oA†DQØq0pƒ(íØ;Q$G¦i:XÌôuÝ‘%"È Wk&ºAÈ2Ñ<OƒPƒŠ#fï F¨Q<UUC/ŒCÙz^¨&I«qkl…Ëy˜¨±Êß7Ò„½*1ï‘™aš&‰!PK2RãØ!‹é^A%'’oøBN)=ö%AJ4 W_e„¾e åbDÙXe)¤^ÄšXmÀž0ܶz÷/>ÐvJ#T@V_:h~¶ßì]–¹@§¤ÝñÕ–ÒáºÔ&Ñüùû‹?Ý*qPÀõ}JóþÃÁ»ÒPÆ<�1¬ÙàñÃÁ°x²VE¥¤Ì9öÊ—½vCâ)MÈu 0êŽ>·‚¡bÌWÍš´è“oóóÃV?’X×öÆ_Ht÷Õx¹¼lÁHUÈ2pƒ¡A¯÷N[ö_IHþ \›ßg/h>ë´@{<a’ž.¿îß{ÛY0ÀgŠƒ þ&•øÑέ³ñ§ÝæÃÓØÃθ‹ Òí/ç¿n78„²˜ï¡Qú{§O-Aðc 6wÏ/(XáÍÝù •$V³¢D6py]Ï€,ä??öGë¨0*x ÐE"ô~ÌŸžXG ÀÊUÄ¿™œ<‚—FšÅ����IEND®B`‚IMAGE 878 ./arch/planes/fire/burningwall/burningwall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ®²öÚªvþöþòꢦê–6 òÆn*â‚Öfúæ¶æŽV":znž:JâV.¢ÒN*~.&ê‚"ÞŠÞzÚnrªJ ž6F ¾²B"öÒî²z‚ jöÊ~~j ºÊ"¶2ŠÆ"Ž""&ÂÆBnv^¦²Zòºff &R > >’’b #ú5¾���tRNS�@æØf��IDATx^]ÒÕbã@ PkÆÌÌfÆ2ã2óÿÇÒtZ½æäÚ².µM  Ïøîáà`¬¦‰!Øu]öÚÀLëî�,C5¡%­I=OSà® p}øC>²“ƒ†N�[‰�&æâ÷Šˆ!ÿH&èö:ú|ä‚ËzPN˜ð_m4m¥qü`²¨N”LP¢¹…b¼=˜6(b4exóç­Õß>%ÔhA§È:p;çh¾:¬€:RêäïMW¡µ`{>Þ%l‰"&a±&jï·0èÒH†3Ãx°_ó±IŠ|‹Evv^‚ñnMd0ïÆ®w\ÓIFkŒÐ¸  '2Öå.aX3ò ^†#?nŸÞîÞ!x¡ADh¼|säw»mü°,@æä×"ÍÉ?WËXl‰L§�WN‘Ð%N~'"4Y q^l!«-‘×”¸X¦íaŒ~d²ÔÖ6y‹:½/2¯ E{qMÃp[mTk9ÓÍ´N‚­‚ï̶PN–rSM'r°ú„<d` ÙÐ(:I‚Àü~wk!‹ÍA–ºÜ’lTöåâÍaö¬�ãÀx yö÷@5©QVŽlµÓ99Ùbë Ð6õLGêäòn°0÷@£^u.¸°¼ÞYT^¢^ŒÍ`€muïKàpU_È=arŒýûØ+AÈ—à?û::uäVÑþ����IEND®B`‚IMAGE 1008 ./arch/planes/fire/burningwall/burningwall_5.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��}PLTEÿÿÿò¾îž. ÚnöÒî²êšRîªâ‚Öfúêö¾~.æŽÞz’6B²B"½"º¦ê¢¦2Ü.öÚV  Ö*òÆÂ"®®†ÞŠªâV.²ÆJ&ž"vÊ&êr&f&¾R þò žf ’¦Ì*¦Š’†â2ŠÎ&rÜ*^~j–.ª.b¶º¶b Žzm–¾­ÂÒ*2N ^ J YJ6nþöÒ&¢:ÂÊ"¶$Æ"~ š¶Ž1 :Žj F &>*&r ^‚ššSz’���tRNS�@æØf��!IDATx^]“U»1 D#Û‹ aff¾ÈÌ effþíM²i³¾óêóI3’ìšHR¬{é…[óo½Ð³šfQá Ùå¬+ÌÖs{›Uˆ š³<ã|6x„Éÿvný'$È @éÎŒŽ”bìKgæ…?‰÷‚Ùèry' “¯p·ÿ G€ÂIT )å˜/Þ÷��´rW¤<2|JÕH=ž†N, ‰Œ‹òÂB»³t–¹0lÒÄ"Râ0Ù¾\zZÙ–¦Ò\L�“u_ks¦CMå %^%Š'Ÿ<@Bh¤tù:ÐN^†ëÉ*²<mBlĶ’á™…×c ¬\P¾?Z;ª„m f>ä(€An€èäÚ>ØjbDÅ"Tú++³É1 `$9=¢}«l¥¯Ò/Û^;hƒ¥bäYóó´÷À³¼µM#ƒ™ kžµ<­j.ìØŠŠ(ë†'W¾ãR¦ðÁΉـ!;Sá~%ÝÊoMªˆ—éA´}ÁU°e©)zR<†y€ÕÚhª)új9 LJ¥Ú\pœ€ÁáÞòE+“³=$ÜŠ˜§ÇN}µ¥£Ý‘…†}öp~‡Ü†=&Aå$ ¨d*[ØxV5 Í@]5Q…Ч߅ń]¡‰D‰öÈv5€WçnÉé†L}œˆ 𠦦ÞTÇ&yªG>€ÊðøãŸPô"j/éÃeþ¾‘GžSS����IEND®B`‚IMAGE 916 ./arch/planes/fire/burningwall/burningwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTEÿÿÿþòê¢~.î²ÞzöÚÚn¾²B"Î"îžê–6 òÆê‚"†&úæÊ"n*æŽJÒN*ž:V"âV.öÒ"Ò"Â"¶Â®N öÊÆ"R J ÞŠþö²šŠ.₊rvº‚b’~V  B¢Ž: fÆR–Âr>®bòºªÖf:’J v’~&šjŽVz‚rfB ^N^ Z2 *2".lÕ:���tRNS�@æØf��IDATx^Í’U¢ã0 E+S˜ÊŒ™‡™yÿ[§MÓÎæ~æKVäÒÿ•'¢x{{ÿLEÆÄé—Ð`Ý0pW(¥˪ÆÔ›xsU,¡oY}A<éöÕÊ2‰Üh.lPy‚€ªéº9& dɹˆ9ãÑmÛŽc9ý&, Fé–ã8NHr À²À(âPNBHýts¸ÆÈ–“ âIÍüì² †\HRÓÍò>› ,IJ‰©¨�—õõ%^—îrzvàþõÖ¿í- _VNg-ÆÁàèÓö­µnŸ?®´÷ó)°Å…»ïO¿¾Ù=›óö$^ÌѰt.œ8W½YûÇét/Îs!¤(€Þc·ÚùÚ«LpÚ�ÛßC¾K†=›V%õ¥ÖN”¶ÔõkÅ-–%$ÊïNÇ_½¼†,'՛˺¥Å{°bóÃ` iR~I§µ¦¤¤¨}¾Ú_ªÎ„Ý=E1‰\š×Òw«£Z«“W¨^›Q*— Á@äØYÕ4_N§h8j²^¡'ÃÛ¦6ð›*L£¹\›,!†¶6€Í}ÈcÆ:ê ¡o»0lÀÈŸ 産µÀq‡³ú� 0.Á^ ’´¯f†¹f™óqXZêA஺s¥e»0I@j6[Võn·ÝÒx —$1¢8dì/\:;ƒ\íDÒ����IEND®B`‚IMAGE 988 ./arch/planes/fire/burningwall/burningwall_6.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��wPLTEÿÿÿ~.ò¾RBþöþò²B"îžêš.  î²öÚÆJ&ö¾ f&’6æŽúêêr&öÒîª~~ B.²òÆÚnÂ₲âV.ÖfÞz¼6ºzꢮ¾ª¶¾.n ž¶ÞŠ’ªr z Z jZ¾Î†v º‚¶Ô®¢"šš R®b*¦ ²Ä º² ¦† žrFrv’ ^ ª Jvn~1 Ò&¾NÊÊ‚> –ÌÚÆ¢Ö&&ÆÂ²Âr®R>Ò"®F ® Gf¦ß���tRNS�@æØf��IDATx^Å‘S³$AF; MchÛ¸¶­µm›?~§÷NMOlÄ}ÞóX߉Ì/*¹ÿ@:}aTทG²®7Ùb1]ù~ž•Ó´$K0Â)iÈÙ€¬c?ÇÃWC!B×̇$Iâ%Ñ¡ãÕº`ƒVÈ¥€M‰ƒJm�`ûå iò|ÈtT¢)”PÀŽt ¹’dºα&…/) ¡¼‰ü Û€%äˆ^‹„á‚úåÉ8ÊVLcŒ(¡ÌuÚàSÍÅYGÊcµ¼ÙI΃O¹½<Š©ÚÞíWï’5`ô¯~ÝjùÿàªZ"±t·¾Êòúçç+܈€!*P±ú¹ïà±Ö«ÇrËÛO˜ &×wOÍËO˜O,vßl³SÈFȱïÚá•LÜ6kÑ“¥êGÖ!€-WÛÏ5o-Þ‹G¼V³+ßzMÿÚ¼hçžfZ;s£/ÚØºYÕvL(êAÓžªC¦“<æÏNµãú n\"²c娋ÖHˆvkÞEÇ)K}8³òúR©Wõ„½ý%•8„ú0¯¬þø´>U*±“×Ì‹#€yÚ~ÿÖåq8Èù- {ð+ÃrjZá†Ìù# àZ4ú <T…Š‚¡gÓ¾PÐ]кS«öß[In¸ ""ÏÎæJ?+�B¢•Òen9kwNgÊ�Š+æ].rÜéøA^I×xø����IEND®B`‚IMAGE 924 ./arch/planes/fire/burningwall/burningwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTEÿÿÿV"‚öÚ öÊî²þòªîžê¢ê–²ê‚"&~.¶¢ÒN*n*j6 ²B"¦¾òÆš†â‚âV.rJ ªúæ"æŽöÒÞz2ŽJBR >ž:ŠžžzF ºN Öf~~Æ":B nv®Â"ÂþözŠf v2 Ún*ÞŠ–¶’’¢ŽÎ"^²^ òºfb 6–> Æ"šîª.c~Íy���tRNS�@æØf��IDATx^]ÒÕ–ã0дdfæ 3Ã03/2ÃÿÿÂj’c˜Ô«î)·ZÎ¥QÀûؘ¢Æe‰QryäÃÅÑÃéhŒ²³îyàíàî� Ano‚|�@G´Í}Scþ6ïw6�»§Z¯ö`JòJ³™mÒ0Qkä|בê\ýX–½ï:Ú8 8 : qXß4õ3¸¸X}Úï%Qd@)Om_t>ìáû=—Œª5€ê{/­@Y“äÞÑjq«U!“´€sîN·v¿.΢N Œ(õ@¿ž4Œ[Qm¤�?dß]ÿŠÔ³ ¤aO1ØQ.MdlGKZLÀqãoÉŒrËE£Þ4F1˜ü `”È%PŲ&Kc ð èýÃÓA\PâIä&ªêÕœª�'xú7´e2äîñÏÝ[¼•°Òa1œ¤3c4átyu»Gaá’ÜB&{ÐÕÎK<’ž:3t�ò §†ºu®ÚV@œC!=.hòuÂ7Xµj6 $t­§»:ò ç/Müù»ÚaH°7òÍ>›€G…L€Ba†Ö¡·ï&×T¾\ºÐ=n Ž©c'—TÈL��óÂïR¹,,[#À›' zYhµ„ÌO½¶íuãZÃñ)¸—ŸÁÙˆ]ïA§Ê ÏË¥\šf‹�ú“%>Wø¦ÆðJ³ûUhAE) Á����IEND®B`‚IMAGE 1095 ./arch/planes/fire/burningwall/burningwall_7.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÂPLTEÿÿÿîžRÆJ&. f&ê¢ âV.BöÒúê~.îªæŽª êš’6öÚ&¾Þzî²ò¾Â®†â‚F r²²Únö¾êr&޲B"R –Öfš¶žRvòÆv Fv®® Ó:þö†–þò‚¦^ nÆ"Ò&Z r Ê"V¦¶¶’žž~ ¾*~j ^Ò"ª Šâ*Î&Î"Šš ††ºÄ º‚¦ªÆ"FYb ^J ’ JJ¼66~b"Æ: 1 Ê&‚ÊjV ¢¶Û"¢B.2Ž zz f.ªR>>*:n&Ö"N [h���tRNS�@æØf��3IDATx^mÓcfA†áyŽ­×¶1¶mkmÛ¶íý¿ûfN¦Ó“û󕪤SÝDÊyYàù‰”³>NU¥¦½Õl¿OFÛö€‡59†aŒÿATå‘äÆ�•)ªLG²BÔ [ç\ÚÜSЦ¨±L$T I4ð‹Ê'glù ÜLC²-ÚÒ5<íq¶àžñëC\`)›Ý²OUËjQ ¸yðÈVÔ°ghùžîM!{�ú \>,„OŸù j^CåHß:»ö¡†OLVƒéÞ·û‚¤ŸÓê±RûøK¤6 e>3öC8ÖÜ<�ÒD˜�{DT޾úÓü„î4£ÉÂÌgÃqî =ž À*jHU§ñ»Ì.¼?þbï„D0Vºžw|k´³åüµn¼v¾'»´˜ÝtÁ×,0>œX#À6Äù–ÙÔòhØ7Ö„À¦ ÚlÝÊâÐßDi¼sÆ”7S›ä$Çñö«Bu}ý"�¬ÄVaTúÉ�ËÏør?wZ s`å,+ RTE +œ\Ìäw@_ <ïáÉ o”QfÚ¦2ss“;+6J?=¢ÈŠäZ’–¡Ãñà“é�ÜX_#êc,ú_ŸsÎb7¶Ìqµ¤npVãˆS(P')8éÌÂMa¹]×)`\8õá¶{ÑfQD,‹Þ€G•|½ðˆ&gXvÒ¶©«öz€êzs}ÐDŸjH¡\.÷ú7Q‰&Ç ����IEND®B`‚IMAGE 1095 ./arch/planes/fire/burningwall/burningwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PPLTEÿÿÿn*þò~.JÒN*ž:ê‚"V"îžê–6 òÆÞzâ‚âV.&úæöÚæŽÚnî²²B"öÒ®îªê¢rÖfJ ª~öÊB²žòºÞŠ¢¶Žª2 š†¦ºvZ N þöb:F . &Š": ^ŠÊ"z6 V Z’R Âv’†Æ"~Æ>Î"ž’Â"¶r–¢¾2&zb z‚~nfNf6–n"Ò&²]Üæ…���tRNS�@æØf��¥IDATx^½“ÕÎäH … !ÌÜÌÜ?3ã03ã2¼?¯ÓšÕhúÆRtRö×EÎA?¯šÍæàzéBÒt3ñ/M½Ä¬ÕLÏu“Ú¨æ–_qV9Ý8îÆaœbba„qîÄɲ:RЉœ1)s¦cáû’+Å¥ ca$@EðTAQ,q©XòàÌbBˆ]¤~(ÎôRtfQEõ\Jc ô  —`Ì´% ¼nAPÊ9ö‘Z.ûþðDQuü7`–î£Ï­êiC©?ÖzÐÚë6úíÓ•mEŠ\ É¼ÿ©ÑïU™^uzOoÏN‡ýölûà R¶­(�Ãád½1^|¬Ü{ölãöåÃaeÒÙnµªÊ>²÷Qe}xÝXì¿ø÷Ÿ«é캳ھuôáæ!¥å ®¡JÞè5ƒhïùÆÆê¯ç;¶ï¿ß¹Yµ, �.PeÚŸ¿ý¦ÔÊæêêæŽ:é\¿Ø|ÝŠt=PÇg’ v¥¿þ°¥ºuco³e«èÎñ×ß÷VÌ8U\ÔØŸ¼Ù>¤Ü¢[ƒƒлûÕÁ]›Ë[Öbô¥SY;TÆœVO”Å9µ¢Å—œ3£‹½ÛøË>æŒA-$( ¤f¬çE=™®·¨…ó\bó\2]/ÿ!šd>¡—¯.ǹ¯ùÃÜ÷…” K#vˆÈµ8C÷_XúÝÂŒåZah¾È¥ Î(ÔÀ{#tGUõÜ/Âh9(! D?Ɔ0`ƒ*£ð,Ñ|ƒ€]IÑ5 �F»É<�,]”vbBHè8Nƒ§ºYsB˜#ËbZØÍjf½žeŽ“ÕkYoã4Mêu!D`›é7u]h™cÏ4!E˜4/fÖáÔL¡ƒ W.tÏ"ýÂô{B˜›ÂèÿÓ 0P·Ò×ùi����IEND®B`‚IMAGE 1238 ./arch/planes/fire/burningwall/burningwall_8.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÂPLTEÿÿÿâV.BöÚ ’6Ún. þò²B"îžêšR òÆò¾â‚î²îªÆJ&úêö¾~.f&êr&ÖfÞzæŽê¢öÒ’":ª†ÆšŠŠ ~~ Ì–®šªþö&&6ž¦¶Û"Z Ž’Ž R >’ – ®F®††Ä J ¦6vz¾YR–b žŠªv²jj ²r ‚¢R¢¢ ÞŠÆ"ŽN.V > V**B­.‚ÂÂÂΆ ½"Ú":r¶Ó‚ff Ò"’ÝN ZÖ"1 z ¢ªšÎ"˺¦^ ²J2¾Ò|�*œ���tRNS�@æØf��ÂIDATx^•’C×tI„ ×¶o›¯mÛöûÑ6ƶý'»Oïz1gž]VDUæÉ ô¿àùÿ0$ jG±b„â|šòí>ÆN­Ä²@á3¦­X<Ÿš†’ð<£&®ÏfÖ°3S”}/kv Û´3·-+‰ÕBÉu#_å@ pE’¦‘?àeMLˆ 9Œ9M'œ$I*pn$2†aš6¢MXp !�¨Õ@’½,ÃdÍ–4¢ƒ@(  ¡ë‹¢È€¡ÛÖ×[¥bY–}Ñ6>˜.P€p.ÆØGoïõÐÙ>J‡¶ÿ t³˜Ûîúqú t¿¤©ŒŒÑâhÿ£ÎŸn”vnýýÉòŸ•®wFoŽÔ T#!XÐáÚÌJýÍǯ螘¨Öò« 7{—ÊùËûT‡7­ttÌÍýÃ.¾úùËoî,m•GF'KÃ= ,iú_Ô¿›[ÛÈ ÷ÿòÞËÞÓJåÊøÕâÙÔfn¾@›†ï;ïîuwoЫµÃ~ÉÓkϦÆÇË'`¡…„zŽv«Ÿ×(í¼^;î«ï²÷¶ÆNßýZùJ×4!”$=ÈÍ–«Uºº7Õ¥O^LŽ-W~›g‹Ÿ i„¨Æ=×óç'´÷üòëâÃ"Kïï?-ä†Y! 7Ф ìY_¹ôéLñIqÞeu]/麠6¶äûHS…Ù/ޝÓ•Ñà~cÑŠè1ˆê`¥ÂÒA¦‚íª’o ~ þ©'@k:/)À.ÇI\�º/B¨ vCAƒ¨Íc%Â.€±,B tÈUd)T5V…›nãXŽ@"èïeí”GàŒ 1 0Æ‘,z�¤ÆgLÓ±BbÖdDcS4a*ˆ²ã8Utš&pÛQÛvlÃó3“4‰Q  ¼¥(Í’WÛIcÔFl%­‚O’vý_‚Bc¼ñ_D����IEND®B`‚IMAGE 986 ./arch/planes/fire/burningwall/burningwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��;PLTEÿÿÿâV.Jê¢öÊ6 Únþò²B"îžî²ê–n*òÆê‚"V"Öf&úæ~.ÞzÒN*ž:öÚöÒæŽ.Z òº®: †ÞŠ2r^ J B6ª ’>~žr~^jvB ªb "¾¦¶¢ŽN zzf¦f’†nžâ‚v²"®’–¢bjŽF zj VV Nº2 R Šþö:/Ax„���tRNS�@æØf��MIDATx^}Óå®Û@€ÑÌ‚™ÂÌ|™™¡ÌŒïÿÝ$®«T½ý$ḵdÙžLšEd ШﵻÀi/SÕÊ,Ed`X._·lM4BÂ/u^>� »È!÷È—Ÿ&-`íi¾ ¤€÷x˪(>Œö÷·;0‹?ôx¢ªý‚®èâàUqpv¾�’+Ó9pÑG¾·—ïÛð;-smâ­¤¹‘~Ÿ�&`¹Ä)°ÿAWùx(1Tbë?ÀFº:†ÝÑdG�£óê ­ êÀÉJÅ›á`°Ñ¸ø™«užç{íãÆä¨ÕmAãÀTÞJ@§q5¼›¿¹*O§ÇÅÏGÅ[�É “}sWÜ굯»µé¤Þœ<v¶_–¶¦U[ÔùØœvnK»“qénµ—ûðió°s2®½ÈbT°`ýÛÉÚê» È—›Ð­fÛ7×£ƒÓ3Ðd%³¨ºþúc¾ ð6Ÿ“ ¾²3:(}µƒ¨Ÿ�7³Ù,<9m‚mKì}‘¤îö’�[ZYÙ€ï9cŽ“êÀÙ�šÆ Àœ$IöìfÓÕLÛœ‰¥nò)gi&ÇaŒMŒ]1p]ÃìâD¡à% p5–Ëf"ò}?0™3Mäþ7E1|_‘,br]ƒ¦�Í3 EK6ØüèÏÖDTfQCDB:BdÐ:‚SHwBp!t#@Õ©:”Ò'qºv!¥´@B…¨„¨1Û¶%™4…ôRáyÏc“Å`yg=¾«^æÁ·î=ëað NCUƒÖ™‘����IEND®B`‚IMAGE 1066 ./arch/planes/fire/burningwall/burningwall_9.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��†PLTEÿÿÿ þòò¾Búê~.êr&Rîžêš²B" öÚî²âV.’6ÆJ&. ö¾þöf&Þzâ‚ÚnÖfîª6V"æŽöÒŠ .²j žBªªb N òÆN®®š†ÞŠ– † ‚r:ªFJJ&Æºê¢¦Ž fR*²’ ¢¦¢ššŠv¾2¦ †’bÆ"^~^ ^j2V ²"6‚¾B.n ¶n¢ž&¢ ŽÖ&Šz zfŠÂ> >Š®tF †:šXqe¹���tRNS�@æØf��RIDATxÚ­ÓÅ¢Û0ЈÁÌNâ0=fff(333sÿ¼~N𦋶›Þ…Çö´Qêg¢pÝptðrª~�ÁH%itÓ£àY}º^´üt&$¢vzÆ@WSjjô;¨Þ>µÑ}€dËe“ÉQجâÑÆÚèæÄu™9j˜Ä j&S1™à` ïqáJèšO&Ž�—ÒV|„›‚™•­2hkˆ„G ÑTœÆ/ƒ´Ó „“Ò Ì(Šrü_ ð› P.€E�Êe À]0;7«÷É[{ …É2þ¶}~§§‡¿¾ÇK ·ØÞb¯þjûû™‡·¦66z>®<¿p0Ûy†±ÉÍ2n<ó [™Ã®kwn¼+ã*ÄZMM%æÞ\+vﯦó׫ùG]»##_ªX‡Àf˜€¾žáôéKç@?—çFN¾ÄØuKTÉe0:žÆé÷ñÁu¸zµ¿??ø�WJ7ðZ`| ºp¡ë.ç‡EŒK’ÔFj*ɧ{.Õ1Àº”úÎëÞx—rÍæŽ6ÁE( ¡N9—° °K©Ô„å($jLm[ºTrDZ©®Ó€Üòr©fJãpØŽ¢8<¸­ibÈcë-@5EØq_Eȳ4ͱ„ Ì`¾¡¶�ˆXš¥ Ã`žB–gÔ×1F„?Y1ßçx5Âü¡L Ó$1Ã@¬FLBHÍ ªJ†Ú·&ÌfãO3gSˆÂŠªN„Q\ÃÎ[Y©„a˜M–dÃló_ê¿åGG0ÉWC����IEND®B`‚IMAGE 1288 ./arch/planes/fire/burningwall/burningwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��õPLTEÿÿÿêšò¾. þò²B"êr&R ’6Þzâ‚âV.ÆJ&úê"ö¾f& î²öÒÆ~ V.ÚnòÆöÚ† – BÖfîªîž~.ê¢æŽÎb’ N6ºRjjV Š ‚ ‚bJªÓš þöÆ^F*в¦²¦¶¶ºžŽŽ ff 1 2š"®ššž–k¼v2‚¶Bz¾fR F~’^ ’v ¾Ær Z†‚ªª:ÞŠÖº¾zn.Z r>mÆÊ&ʶԦ &JnÌB&–fRž ¶¢ËŠFÆ"–z ~¦Â®vj :š¦*Ò&²­t¾ , ¹���tRNS�@æØf��ÁIDATx^Í“C—e[„wn׶ʶmÛÕ¶mãÑ6~ç;·«W «§ý­dDF }D"tt@Íaõ0{è´Þ餇à÷EUUåàŽ± )ŠRQ$b5ÂÉœšõ„#a\îæÂál’’Äé¼,pÞHJë0,]3‚áÉz ]à\ŧ:4e �`ó¶»JeÉ( 8š#0^1Á"@pÊt�~íîÈWƒ{Å`mm¾ÚL£Ö³…ÀÉ…`ºîT©2o–NÓ±öËŸ—Η¾û$0Qên,ßYŠE£ ?¬7^˜héo}ºåŒUÌ..OuŽ¡õ±“Ý^buÑFvlbìòèÜ\•ﯮs�£ÃÃýý£èîøJ¨O¿¾Ðà´ÄG~þï÷¯}mmàô û¾ ô£» ;Ñ>?<ïëc½7üC[ðò§¯ê·O^¬jm?òû‹{þOzv~IŸ¾¾;sîAáÚµØÌÙ'gÀ?ò÷Úºc¶¾¿Wn½xë˜íí½N[¡°òÛ­Ýo„üxÕÚ ªÛοª0¡¥»¹yã|meoU×™®›,:ôøß?Ó'}‰¦Ž9PÁ:›zÕ•Ï‚ÐýÇð¥ö›jÞ\ºÿÍ=˜|x™Œ:-ÇóÌœ5Ù Àäñ5�·Ù俬“ÞœŸ¿I¤ÐäPÉ‘¨•WêjÜsKÓ…ýÕÕigl`TŒÇE;î0‡õ�©$ÚÒô4eȶu^QÎØÙ¦4N%J?e[,KÉ¡H–A¤²¦óºÆÛvÆm[”5ž×½,¶8C— )¢É¼Î»#kXÓˆA4]æqáR†Áq†‘Ò4,IJ8βŒ01,!…0Æo$ì!^’$Fg^B<„xÃIœ%‚TœÄ.9Eõx½ncU){!E½ª¸›@ ÅEu÷\g±ë&Rroú?»XxÕþvú����IEND®B`‚IMAGE 1220 ./arch/planes/fire/burningwall/burningwall_A.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÎPLTEÿÿÿò¾ ÚnêšRÞz®âV.~.n ªº²²B"’6&æŽÖfb. þòªîžî²ê¢¦¦’’  öÚ¾®öÒ®šâ‚îªBÆÆJ&úêö¾ª¢f&¶>ž6²Â¢¾~Zºžš†ÞŠž vr n‚¶6N"F2j :¶Æz òÆzR>*¾êr&ŠB ¢‚Z ššÂŽ B– ¦ †rІ f Æ.v ²Êʺ2®N –¢ Ê"^~ VfRþö® Ö²vš ¦^ BÆÎj&Ìb¼JjŽ¢†Ä Ö"–¶ª®W���tRNS�@æØf��¤IDATx^Õ“C»¥Y …wögëжkÛ¶}˶]mÿÛ>W“žÔ Fýò$++³,ô=˜LgÕ‰q‚üïŠe/ê™cEx?³ç32‘¦¸ÃÁ"2îLM >â âŽ$⬃x6›Å”­A‡Î -ͧ…d·«�]` °²r.¼Dð þ†™ê�”ž,=¹Q˜™2·,,èæk¥®ê<ÊWî÷®ß Ì4<£úX{èWßi.¿¿ñvã…§Âõæ¯!Yº%ç\Åäñ<ìø~ÔÙwìz÷÷ÆÂ¹¾ùü:ª×ëCÄZŽè*æq{Û;Ñ)qÞÝ|?@;ÇEŠNy:ü•k^WÎõÎÛ×êŠÝæhÊæ¶ »ÑÝ;ïݵeZÃDI<»¡^‹‰%Ñfî9¡ Mÿ•’”c�QásR80WœEûËrÏ´D]KèæƒÛ\¥m•†T.‹UbçzôùÒŒÒãâ§šFb_KûÑü<õæUëÎã®O¹åÁØQ\–¹{ ÷Ûòè®[ù]d;_ßQRwÀª|;tRi——[BCà›0£Ïÿ¸AßóþùcqK^pI©€µÁ©bKª¼8¹¨£ÃCñ“1ÛÍÒÖ�<yS0ú4uýVêñi™aühl˜ é$á{¦3ů›­ùÜ&ÀœG¼qò øišF@ЪªÑ�„…1›™þ÷%-pA¡¹A‚ÆÛWx•öÓBRg’–2X4Á�ø5žO#{&‚­YŠ4µà·h8hMM«ÇY;ÂTw<1‹ƒÙ¦,ªà·¤3M"NlµF0Ž ö<S¬Ñ LÆjÍØµôËYG‚2L¤AÅYƒB¦Ë R ÊIQÎd0et³—2I^P·A’&db¸yØì®ø&rxÔ2Ék����IEND®B`‚IMAGE 1098 ./arch/planes/fire/burningwall/burningwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��\PLTEÿÿÿ²º¶¾þò²B"öÒê¢6 BòÆÂ®ê‚"†âV.&Ê"¶~.ÆzJ>ž:~îªöÚ öÊÆ"ªªâ‚vÖfÚn"b:n*V"ŽŽæŽÞzÒN*îžn2Šúæ¦r"þöB Î"òº¢vJ žê–> 6 ^~F &fz’®N¢š&’Ò&jšV †–ÞŠ²–r.‚žÒ"f^ ¾"f Â"RR N : žn·±À†���tRNS�@æØf��œIDATx^Å“…Še9Es"×Ýí¹»û+wiw·q—ÿ‡¹¯«¦¦§~ ’E86ºa¤N��ãLf6„œÔ¨#ô¥`@æ0“éÀYF_anOà ã z#Ô«9U† Ött®o™ J¹œ$%KŽãÇpLYIƒkÆüt™ŒŸb œ5áe€šËÏá;´òèjb/”m€ "ø?6ºÎ«ØiÁmÜâk% Ñ�Y§ °ÈŠé¶DÙ¬©æ"ÚC.!/]/1ÝY3š ™ )lJÍr ¥—1­äÊÖ±‹±¿¯ÍŽ™E™ b®{ÖŠØî ä´jBtL‰¿ïÜШfbŒ(¦æ€>35¿yoA˜®G:süV³ÏˆFL†\ªi¸ì>VˆV˜VÉþ}éú}eà›.¡ð�U0I'¨éºx1 ÷)!Ú‡»¥}LFKÏÐúì¤ü@P9ük¯ ³VTÆÔ<ø%Rƒý‚j—×÷X=ùöA{nÿ¹*ÔUvröì˜ÌG˜þú(šÚýþ›‹qf¢±Qóï5³¹ë8?Ý‚óvûQ»}!†±Ü§Œ5Ayÿ¼`Ù“2!ÈýÁ–á\qþxÜå{G¬¯@auøüI‰}óGgõ ݇^φ± âXŽ-ï»§+€O¯û}n¶�àç9‚0öza*äîdÊÛçg·¿Û³&^7Ž{a7¶«{×Cº>“ÆAlX<¿‘¼‰!|úœ7á=¯�¡¼"Þ˜N‹·m¤V‘¬ônZT‹E.Þ’ãô I‰ZT“ƒ$ÏM…¼š CP«FãtÛ‹§\^E¨>VG£êFÌ O5‘ª(¥Q4„éÝð¿v‡Ò°ŽêÿV¾žl«›òþÂ:Xˆ=î{|����IEND®B`‚IMAGE 1256 ./arch/planes/fire/burningwall/burningwall_B.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÎPLTEÿÿÿ ’6. þò²B"îžêšR ¾ò¾ÂâV.BÆJ&ö¾~.f&î²öÒºÞzêr&²ŠÚn₆ :n ÖfF&¶¢ª¢¢ æŽz **ú꺖‚r ¶žF¾†öÚê¢ÊbªÆÆ66²"²º¾¶¦N¦ª~ V Bfv ®òÆN YJ¼’jÆ.¢ŽR’ Ì~Zj bÊ"Z þö> ‚2ž–nÄ ®šš š¦¦nÞŠž 2zª Š Â¦ ޲†VrB rÂ^– ^ Òή Ó.šžÒ"~†tºvLoÄ���tRNS�@æØf��ÈIDATx^œӶeI�+kÓÆ±mãÒ¶¶mmão{÷i¬Û30ñPù‘õè=^É�3'·x E²–"ÁÕT€Â÷¹ÏR=gôPâ´ì Ë ‡`ø¬roÄ}‚޳tì”³áø ¼AeìH"‚¸kÐÚ©é4ÍÀדâñ¼ƒ—¬’„tƒ'IÃä1�Zžlÿ!¼ÇЯkNQþv³ ÿâ~Åð_áCþáÁZ’—�ÒÝ©4@ë©°uTŽ}|öl2>üM,ƒ<Ûž¯.>©âîyÿÄÆº(nÁ£BvôêèúBq8·‰æVÂóqé£âì/?Þ» Ër;|¿}<6ú×ÚØöZµ3‚æî¯ŒI™8êû ¯¶gD8œ»p/0äoNfÑv>¼º·Zþg3ìÏ./O,øç>Ç™ßdqHnΣþ†(÷-y¶Æ/à[íÙ™\´Ù* §ú—Êóž ŠÖÊÛ²ØHþùÅt<< ›CÔ=ô¹3ŸÀˬGvP&]‡àÜ⥧éÔaWêb~õå~ìâ @+WøAzã|+ ßUã»ñh¦ûenáaЏ÷Î\†‰âs$ÑË1<ETönÄv‰ÅFáÓbf ÕÀã»1yñ*þ¡sû ¦Œ ?’/Nƒ#¨xýÊ |­y&»ùwE5UŠ¢`q¤oõ ªšNŒWCò‚“ Æ0MžèFë2Àa’&%P¼€ äS\CPEc\7³Ÿö¢ÑH^5Ýß)¤+¤Éó†SE!©7I˜«$£1†h…qO5]W4«˜�Å›$Kë,ÇꜢ ɦiVóÑ5ÚEgx•Ñ%…°íɨÕh7,βõšÄrƒ!Ë–4†v‡⬒· …¤^•ƒ’qgÂû̪Õ$oÄr·Þ׋`Ðû¶ÛÒÛŽ%.â Ñ;^Ç=u—«H¥����IEND®B`‚IMAGE 960 ./arch/planes/fire/burningwall/burningwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��8PLTEÿÿÿž:öÒ¢ÞzöÊžžÚnþò²B"V"ê–6 òºê‚"â‚âV.&¾¶î²JÒN*ªn*ÖfæŽ~.öÚ‚ròÆJ ê¢6úæ¦ V ªŽz²nîªj :2–~jB&v""F .¶bŽN®þöšR >*†ÞŠ®~nš&†Æ"b ÆN ¦f^ Z 6 –Â"2 ’jŠ}ÿ?¤���tRNS�@æØf��6IDATx^­ÓÕŽÜJ†ÑÙUff¦Ffff3çœ÷ƒ´]=I¤Éä*Ÿä+/ýÒ–ì¥mÿ¤º.Ì <î¦N§ôtJðÀšåV™ jX lÚÎËÓìw¡BRÉ5"Œ-‹-ãV#ýàg®;”ÈȪetú�ByÓ-Yå[³ÿ \@vÎÅHb…xØ©…ªý(€0RK†“P]ÃuàòûòÀë(¥(qïÁ-÷zëM¦ò*¾\Ù»¸|1É'J¡b-@åÉè¸ÞP#/¾àyŠû2Ë'BîÁ³÷ýÍÛJ·Ú§ºcj.(È€£Py¼1a†7{<³Âq<U2É̾1ïÆ0㸃1Õ^çÚMd‘L(Ÿ› (�Užï.ÇíÎÅßÀPƒ4†¢¸®ùvŸsÔÊ'Šj`™ # Cåh@ «ÜìhØîY@I^Èl b´ HnD"”—(»•ÕQ@ób )R�)rG ádµ;Yóü§@ê"¶�ªc±[%cûzX?öµ8^[,,€¨âs«R¢t™§ù£ýÿ7 àJ5¡�ó÷¢ˆdœ<÷Ï|Í×€:´D±\.·ÄH>ìîlhšöH‰ÀdÍi#0YŒ€]ïtð–�©&»¡ßésÒŠ �Æ;½íÔ `HØ$MÓ™žéN:ÐÙÿêù§;9Ñ´‹3ÒtI S!c#®|Ï£úùÛH-ãCvDébÒ����IEND®B`‚IMAGE 1119 ./arch/planes/fire/burningwall/burningwall_C.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTEÿÿÿ’6f&êr&. þò²B"êšRò¾â‚âV.BÆJ&ö¾~. î² ê¢ººîªöÒBþö.ÆÂ®š †žÚnÖfúêöÚ¢æŽ*îžòƶ¾Þz®Žžn ‚‚‚¾¾Â&®šZ†ºÆ† ²²¦^ J ²¼6¦ "’ËÊF¶¶~j j¢ ŽÝž z f f*.ŠŠÆb Ybr ’bNÜ*‚ Jª:V "–Ò"B :Ên¶–nâ*Û&Î"Û"¢Ö&ΊŽÂŠªzÂfÄ Š R RR>>mª ¦vq†µ���tRNS�@æØf��HIDATx^½ÑÓ·[Að|3ÇVl;×¶m›µmÛîßÛää$½«í}í^kÞ~³÷gûI$,ÿ0 opN>^oe‘øz“.™¨šŠâr<Ÿc Ã`ŽUÄ�#–D™$Â+ËÜG¢ë�@Ò4¾¾ þ B,íÍpü±@A¬"(íXÀ²¢"òñ€$u,^§úý—  ý9ïX€@�DZà* ëv=9æKí®®~¹UûÓ“.ÕQh‚³&nˆ¸ÏN®OÚ—§Þ:FCQ(FÄ’Ë*:qûáJ—ÚØÑ k3——ìƒæ"¢BYÓÇÎöÝ÷ ;š'^ö¦º#?FÂmPJ@,XKd›^×Õ9jáâHÈß’ ¯ Þ/ )ÔAƒ=[8}=˜ò„‚©wt›ËšùÍO(¶³ ÛKég ‹­O^5.Õ˜`5z÷ù^Ì­´96^Õµí*7q™àÛ‹Ö›ªÚ3qêNp¡¡†CQ°‚3füÇiUÕüÞxØ> Z®�6i.¡ÏHŒEU½Ö× ¼ytc®DʬNb„°Hªû‹Û]77«À±,¢fYRõŸ™ê<1?¿í³®*›CHH¡‹OQØq{modæ}gõ섳TƒFæAR ÕìÛÚú>óh¥\’rqœËKÐ:À~¬ïÓlˆðNásZFD45õCÚXvšCÄù¢«×\^dõIÓ½ÃöT(”‘°U“ã2€/q·È[S'Kà*XOëP˜v����IEND®B`‚IMAGE 1061 ./arch/planes/fire/burningwall/burningwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PPLTEÿÿÿê¢Jž:þòƾ²B"öÒî²6 ê‚"â‚âV.&úæÊ"~.¢n*ÒN*V"Þzîž’’ŠBòÆÂšÞŠN ÖfJ nöÚ"öʶ¶ŽæŽê–ºR >¦ŠÚn.þö^–²Î"žr26v"Ò&~jb ªŽòº&–²Æ"žvB šîªš2 ¦’‚r¢: Ò"Â"zzz6 f ªj> ®ZVZ †:‰Ïi���tRNS�@æØf��ƒIDATx^u“Õ’ä< F[†0sš™™™~xÞ8Ú­9º°Nô9.;uKY1<uÒc× AêªÓÇyõýì>Q δMð‰Z(WçËI·ZÕdÕ¨w®›�[ØÖM,0eÀJU"$·õc‡{p-LÄó,¤Rm„†*PºD—Èv‡Ïd Æ×H ‚jŠºhRÝv‰ªãRÿ1$•Q?�˜ `ØÄ¨µàwIÖX<0×¢ªøpžßŠÂªÄê-ŠÚ@ ‰�üáÑD¸‡c"qZÉ@~ W¿èdàÁ¦"FœU?šì8ÿmŒ­ÌEåV0¡c­|]ŸvNœ•·EËZ{ÿ<$¯¡1au4úÿxâ´>?œ¶²Ì°®÷Lèv¿ý»y4ËoœŒš•H°N!Á^Æ£éÁ¯úΓí+þIÉâúE~’¾ˆ˜î¾ü§ö`ü´s1¶Š­×üjóú(Ÿ1¡’{¸¸µ½Z}e·´Æ5sÝb/Ôx»7™=)bkù2[ÚO§ÓÜåuD ‹ëŸ$%BÚì­K8-öáFˆ#`e»¾ï+ÒëñÝŸ‰ ¹óM³šKlÛõ•Z' Y¾ÓM„žKãßÄ?ZÄbãÞN.;â9.׆‘LpÁðBUÕ¢“äùýýR-NÀ6pH)Ub|Œ>笈Q\aAv]±aš4ô04+>ð£¤Ot3T[0åóvƒê>@«[:\dùØöô°1d¦M©<D²Ü¦D‚|yr–gù‚Š Äž§†P9ІèY!Äðx¶|4ÞÃ'ž®¶Û(¨&Ïr!(kÈ$Ÿõg^À®o ž.ÆÂo3Qw–¹‚…����IEND®B`‚IMAGE 1232 ./arch/planes/fire/burningwall/burningwall_D.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÚPLTEÿÿÿêr&ÞzöÚ’6. þò²B"ºê¢êšR ò¾Ââ‚âV.BÆJ&úê~.f&î² ²ŠÚnîªþö’öÒÖfîžö¾º¶¶¶ÆæŽ­²BŽÂ®š †ž† ² rr º¢J :Æ""Ò"Š~ ʶB &¢vŽÎòÆŽz f >*–tº.Ê"&ŠŠ†ÞŠ2ª¦¦mª¦¾vJ6’N ~N1 Ê&j jʪ– ÂFuR ®ž*® ÓžšFÎ"F bV ‚z–f¶$Y> 2>~Ä ²Z²Ìª½"nn Û"ê&n¢¢ Â"T L���tRNS�@æØf��¤IDATx^e“c³$M…'Û6‡6®mÛXÛ¶më5ÿëöÔôÄì½{¾TTäuNfdšÂ9Ó‚×_+=IW°-»ÄG;„ó G··«{@·I-MDñ@Š—³Œ.–¦\Ý20Ú)GêïˆDRª#ÝÐøÞ¶5�Òð<Ô”WR¹hYå9Þ‰1T¦º·¤@MºÅ` ^õR˜tŒNÈ ‚ 5nUÙîeˆ^ ‚+ã©€H –¦1ŒaØp¾Ú½¾(Û09Õ.J”m‰�íÐ$&ñ2øwÝ`§tƒ(M@wZÿv×ÁN;)ðõ3€ÆôϾUøp ¼º–øÁ«Gæ*ó×'ÿœ ¶Ì· NnÜoô™Ž" _y{yâØÎ鎃JIi?uºÐe°CCg’-­+]`²8Øþk{ÃÂþïY˜^ÝëíëKží(*Sqh¿WÚ6CÇogî\ûân–”‰›¥‘À¡6{ö?¿øb :žbÝWì¿­u‹¬ƒõnvdVZ‡‘þн̣¿ÆÇf ¿øiY­c’+Š"¼ÿ£-Þv÷ïÜoq¥×”,—kEé‚ JO¶>ß|øæ”—P—•­^Õ¶,]”ž½Ù>0U=ÙÐNzUÆ`lX_ˆÃA¶P�$©Œ¡a˜GPâ¥[‚ùÑÒÚZ"+½„ÆÀÒ2-c¤-èRˆeÙŧhí(‹«gÀLš6ͬƶ›ËX%äwIúsˆ™„·ÔfZ3H*ü1W,ýFÌAÿ&!˲ãÈfc>Ak¾8°:£™^³pø(Ï—¹%‚Æ(çó+Ò>4¦ ÖˆC8ާ"*•iZ‚ÁÂòU €"Ú ÍïÂy'ÁÆ]7ú¿¹�:i`jâ;üÀeIÏ -����IEND®B`‚IMAGE 954 ./arch/planes/fire/burningwall/burningwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��,PLTEÿÿÿ¾Æ"ƺÂÊ"î²N þò²B"Î"îžn*ê¢6 BöÊ"²~.¶JŠê–®ÞzöÚš†âV.ÖfJ &úæÚnÒ"¶–‚ŽæŽz’ÒN*ž:&F þö₦r:òÆ’2~Ò&~öÒžÂ"òºîª ê‚"–š†6®"Š2 VV vB n¢¦zrV"f^ RR >*Z‚bþÄ���tRNS�@æØf��<IDATx^Õ“åŽÝ0…Çf¾ÌŒËÌTfæ¾ÿ;Ô‰zw«Vjw¤Œ59ŸìD�š•nþV'«¬†n÷O½ë(г"&“¼7›…q&‡Š|¥ømÇÙ¨4åxîäÝɺr_u½šmœ¿SÕ‘niUå\9ëøÙƹv¹~æ(Ö"šw| óùÂ�P¶íÄmÛ Ýrù&—d‘€øGýÀÔ« õPˆí©·âú7ùP@‰²é«Áñ}U=˜µ‚_ô—%BÊûC œpÎÿ|*…@ÿ`´X/%̨#ƺóK!vJ®¿¤èÁ3J¼$Ò•žÆa©„€±S"&F1 ê1Ûå\-äe+Má‹èææp8–|H{*6÷}s™WTˆÚ}éÞ×ç[1c-k}óɉ ‹V<=ZCÆ Œ[ê£`[p†È°Ö¯jäi/ä n|‡û÷D¹|¡Ž!âx(fò)j—›µÇ=q¯Ën’ìq‡1“Þã[À4ߵ˰—ض-8Á§¥Á7~mqU\$mhGº®»[''æ¬õæ!7ÌZôÒ}ÙíÞÎ//¶êpiԉɉy¢ÞþIW`aiš6—ÓGŒ)æqWQC‡FÇ÷«ÇvquÃc4¦·r9²4KæBQ”Ž. G‚8Ü÷VþICæIŽ’M&ŽæJ�ÄL µÐÝȪ*™ŒõΤ ÐtŽel@œÆ„/s}aùJjGê9¡Yò¤ŸIˆ0Y“@¢Ëøå{�F´G/©åL����IEND®B`‚IMAGE 1145 ./arch/planes/fire/burningwall/burningwall_E.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTEÿÿÿêr& ’6êšR ò¾Bö¾~.æŽf&¶²¢î²¾Ún. þò²B"&ꢦÞz¦n VZ.2öÚª ®†â‚âV.r öÒÖfÆJ&6úê"îªÆ–¶²®¢žR*žBŠvòÆv ‚b‚ šššþö:¾ªn^Î"îž6ºººÊ²Z ª¦ ’²¢ ~ z fR j>V b – ƾ‚ºJ ªJJbN–"² –FÂ’ ž ¶®® ¶~Æ"š jŽ†ŽŽ zj zf І †2*rnr.B Í@ ���tRNS�@æØf��bIDATx^Í“S“a@¿ûÚ¶m­mÛFlÛöïÍìäîfkSyÉSÎë9ßt×T5úwâ¢ø§°ÙšRb¬ÓvöMX«U RK†ÉÆ“q¹Ô7¥Í&ZØ!cV.Ä–Š %$«íd‘—ÍZHÑâåy#hš˜2z1  À$”„pŽ¢ˆˆ�5Åÿ8’Qp_h8=€og´PŪvN\òŒW5>ÇtòÑf-sÊgòn¤)éF6‚¥Ù Êw8§*,=8Ô*£¨´ThÁ?­àÕ%|¯n_»Õs¢'òùÊ ªU}×ö¢á }<ý±gp°zì{Ë+/5£¨\,J¯wᦎ÷ÜsiEgÒïöö¾P·—ë>\í¯3;…�¸o”5·÷ªy}¸ë`Ï+k°Ò͹]«³²_¾Ê´î[Ñö†ªâ¡ æ·åâzèNèÙúêe8bs`p§[ƒº¬ªç Eá»u{q®^袠àZŒÕ˜/+h:ú~Ë \ºTPù.€Â惇«æd/b¿š)SB ¯ëfºÛCþ\(ÔÖ–k€ƒè; a&n±ï‡£-w0Ð¥ŒKÞ…3àH�ËG¤ÖöÌù'“ó~ÿºš0Å!‚–ƒ!>BÐêYUn>§ÓÁ !H("p‚1Åb Zð‹‡3 êß^ˆ$ä•-©¥xBfßýŽácO™°”q ‰¤?º©F#ØšœéÈÜVÆÃ9ïÕ²,Šë•Û [¼@fd¡¤ó·pœ"cZR•C•ч³Sh/XÕþÒ4Ђ ÆlXÿß©f“L¹’Ü����IEND®B`‚IMAGE 981 ./arch/planes/fire/burningwall/burningwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTEÿÿÿº¾¶ÆÂ²ÚnÎ"n*V"®†âV.ÖfJ ÞzÊ"~.Æ"J>î²ê‚"B&úæŠê¢þò6 öʪòÆR "îž‚Â"¶’ŽæŽz~ÒN*~–ž:â‚ê–rN ’: "²B"B &öÒ–¢Žòº²fšÞŠ*îªöÚªF j^ ®&vZ†–Rž> Šnrjvb Î5Vl���tRNS�@æØf��ZIDATx^ÅÓU’A àVà 3˜™™–™yÃL÷?Dz\ŽË› _U?é/Iý ´bÏ¥yö  Ç Ô PgFva¢ wÉ®jreUQ‚À‹+ƒEq>¨ŒyžÊ{9ÕÈmɶçiw!ó¡ÕOUh´Û¤¼V¥X|¸¬#iEs4¯´Œ±!¡"X%JÙR+F§¥8ÎÖ³c¸ï]±+â)å2‚ çw_à/6í:ðoà¥ÿГ!„¯ø~[»Ç�xID;âë¡`5Ûš^'Ú¤lÔ›$ärÕ\™jÚ“&jbw³É¶O#Ärž…jŸRç§F1×å©,cŒ\,N,]hæ )„5JºCXi ²\;G.¥Åxÿ™j^ÄyŠH‡Ã ™}È#†;.ås{D¼µ0©ê„€Û.Ä÷ 4 )ô®5uÆ a·ë,\ñ}Þ»E£6v϶Af™öüþhBòêcÑ)|ËåÏ„ÎM£Úëbß•oøf;°dQ:JNÊÔjŒ o>žc·p… ,j"¦–ª Òéõ:~÷ëõè\Ð!/¸.,õ)I�¼Ò{‡É/ýкÿô6oéüër£ ÜýÎ 36¬äàÄ™ Œ¹îMVP·PZK_9“ù!ûDp§°†¼R!GxA Ž®+˰–1ê2ŒR=zäWq0Ë@UöÏþ @éeD E ÓD—Q¥¤À‘ÌzÕíåÄ\Î{,6’ìôF%ɼ‹Æ`ù|IÒP=E‰lÓäÅõ O¡Àø7Yû3>1Žî$Óü ‰OF;€�:'����IEND®B`‚IMAGE 1237 ./arch/planes/fire/burningwall/burningwall_F.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��òPLTEÿÿÿ ’6. þòRò¾ÓâV.B¾ÆÊ"ŠÚnÌF²B"Î"îžêšËÝ Ö&ÂÝöÚâ‚Ò"î²ÆJ&Júê"ö¾žÊ~.f&ŽæŽÞzš†&ÆÎŠºB B.¾FÖ"N Â~j † –öÒÖf–.6Æ"ÒÒ&ꢦn ’Ê’¶¶¶Û&¢¢ÆÆÜ*Žzz f >²ºÔÖ*Â:êr&&š þö®¾F~ vòÆ^–ºV¦¦¶®žŽÎ&F ~Ž V Šš†>**‚ ÞŠu¾®škr ^² ¦Z ²ÚÛ"Â"ÖB²º6¼Ä :ª22û®ˆ���tRNS�@æØf��‘IDATx^ÅÓÓ–dià;mÛVÙ¶m[mÛ6‡xÏ9™U]9«æú»Xqè‡g§ž8ZøÇj¦pw“lsúi:¥4Ðþ(ÀàÛº�ÆE#¸·o‡ îôµ—qI�4N *�03Áá¬gi’µ'\r1ÑG‚¶yòúÜ"”¼ àô~Wºœþ†„2î B`»#ôœBˆ‹ – ²Šõ;ƒ¬¾_í8š‡2$ƒcf+�4Ïúªà ÿÕi…ÿÎø…ëSP٠ЕZ´�(ÎÄó€zg¾.4Vñ‡c…Ê?÷bJ([íBõµ½Ý7Q5¶,ìg…_ö»óP¶QmG/Ukçµ÷tüSqŠI·$I:'sF¹Sébu­ã¼”³T„×ÜRNäÅu£ø ¹áÚ•úÚŒš±igE&$J>(²¨‡ïþatO!ÝÈJãë;�!³¥fLXª7œÙC  EUË Åoî¿{ƒ=Æ‹–Ù/ãŠp7²X¶…¯ªN/£¦Ûç¶Ò0bœ^W´0­1Ý (º ,cKM¯ÐåÎο1 ·Í´š„ Û”\²>~EDo0 3æƒ33ÓûÖ%!Q° M“Óè1AÅY'TŒ. ÃFÇg(ù`«¯�¾“GfŠ¢¢‘Q×ïkõ…«Gd™þ9(BQ—q|{ÐfLŽíGp™ y ›¬ü�ó*‡i7ëNB¢ Y¤Ç­´úw»nÊ(Ü‹ÎÑ4}Îã!qŽ�€÷¿>)çÎ’(îJÄ qù<AoÓî )¬æ$å(ž¤QñtñD{Â@“,—±gÝ6ÕÒñ|DC;Û<¥c»”Åw;õ?b*¨¡(ê Ò ÿðsmü[Ð����IEND®B`‚IMAGE 181 ./arch/spell/Burnout/burnout.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÿÿÿÿ�m%%���tRNS�@æØf���WIDATxÚÕ‘1À0{ðÿ?G²„:ÙCYR¯w F<W†õs6‚ùvÐÀwA4 Ë›ÒÏo–˜”iAÏŒ,¨¦:´D¨Ó³¥^O•¯)ü¿¢%�ócx8f����IEND®B`‚IMAGE 176 ./arch/spell/Burnout/burnout.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���UIDATxÚÕ‘A � ÃìþÿhoË/Zð”Ø9F¯+Ô —ò G£LQÐê€ ÀmÐ�W�/Ÿ™÷âPˆZ 5ŒÖÜJ¸ãvünãÿ2}�áSÿŒ ����IEND®B`‚IMAGE 175 ./arch/spell/Burnout/burnout.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ðæŒÿÿ�ˆ mU���tRNS�@æØf���QIDATxÚÍѱ À0À\´ÿΆ– i¬VǃøëĨåÿ [@Ö�„(›5ÈL5¨ø¤ŒÜ÷¤HÊŠ±r J?Dô—úè<± �÷ðÑc>����IEND®B`‚IMAGE 164 ./arch/spell/Burnout/burnout.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���IIDATxÚÕÑÁ � @¯ûí_òåH¬˳q1î °PÌ A: †„èB8&ää�˜ô=A2öû)Ç[ÿÕGk�» |ÒÑ����IEND®B`‚IMAGE 162 ./arch/spell/Burnout/burnout.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���GIDATxÚݱ � Ãêü4Ra%:W[©Ôú¢MÓä�çA£�щAq¸é4i4 Ž– ä‚ü‡í]†öï±�Þ�—\W „����IEND®B`‚IMAGE 154 ./arch/spell/Burnout/burnout.116 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���?IDATxœc` °–bÁ”ÀP�e°N2DáŒ(#4Æ…2R#aŒPt©ÐHt5¢K  I˜¬0K‰�Ér½y&–ý����IEND®B`‚IMAGE 144 ./arch/spell/Burnout/burnout.117 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���5IDATxœc`  Å‚)c°@¬SТ!0F*”!ŠÎ…3"aÚS` ˜vF˜D�B™u½'ŠŠ����IEND®B`‚IMAGE 143 ./arch/spell/Burnout/burnout.118 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���4IDATÓc` " A-‹�Níp)–(Ct Œ1Ê EgˆÂ‘Pk Œ3‡1€T/�Χ»_² Ê����IEND®B`‚IMAGE 141 ./arch/spell/Burnout/burnout.119 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���2IDATxœc` À)Â[ L„%�ÊeH¡0)8#Ê`M1B  F˜9D�…¶<†g����IEND®B`‚IMAGE 137 ./arch/spell/Burnout/burnout.11A ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���.IDATÓc` " K °àÖÎg„@¢S  É©0‘H#Ê`…)f ÕK�+ÿ‰[©C����IEND®B`‚IMAGE 130 ./arch/spell/Burnout/burnout.11B ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���'IDATÓc`Ä€ÎÀ‚‰°@’S  Ñt†d”Á@ª�ØÞ«¡Ä����IEND®B`‚IMAGE 131 ./arch/spell/Burnout/burnout.11C ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿ�‰¯`n���tRNS�@æØf���(IDATxœc`„@�]€C L K�”!¹ÊÂ`ˆM2XaЉ�ǵH ¾����IEND®B`‚IMAGE 161 ./arch/spell/Burnout/burnout.11D ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ðæŒÿÿ�ˆ mU���tRNS�@æØf���CIDATxœc`4€ÕʈŸ¡¿ÿ…0ØkË!rìÿ_�3dïÆBò÷ë¡"÷ÿBì_ÿÃ߇0k¿BM ÕQ�Ä¡¯X‘:¢����IEND®B`‚IMAGE 216 ./arch/spell/Burnout/burnout.11E ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿ�����ÿÿÿÿÿ�Sÿ8���tRNS�@æØf���wIDATÍÁÁ ƒ@ À]™Ö1 D4`d €@ÿ5åuÇQ@¤Ì�ÿîQUŽheBÇ)O7¢ãQ°z£‹e j¶¥Rh¢"VæŽæU–KmB£:·+'¡á'ë\‰Ž8òq“GB¸q¾ä‘ŽÎœ»0’Sø/Ë .~âW����IEND®B`‚IMAGE 197 ./arch/spell/Burnout/burnout.11F ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ðæŒÿÿÿÿÿ�Ï�Wá���tRNS�@æØf���dIDATxÚåA �1 ¤ÿó‚…žjö¼ìJ@‰RýÌ WWw'}(‚ŽMÞòö›!X3\3XÖ‡ƒ¹—ÔQÉÿPWÝ€/xIth‚UŒº^ ‚9Ab>0:Ø“[Àô5Õ °f_oé����IEND®B`‚IMAGE 219 ./arch/spell/Burnout/burnout.11G ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÿ�����ÿÿÿÿÿ�t L<���tRNS�@æØf���wIDATxÚÝ1! 9{üÿ/_ŠH[�¹zopƒ<Š ëÿpsm!gŪ‚÷þco†1âá(ÐH‡g"E*ÇÚ©Û.PG€9}ƒæº H‚î»TŒ´&¤dîÍBôK`˜'¨˜ ‘е'ª\ =¬—ñ`¾D ¼*=����IEND®B`‚IMAGE 221 ./arch/spell/Burnout/burnout.11H ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿ��ðæŒÿÿÿÿÿ�Ï�Wá���tRNS�@æØf���|IDATx^µÐÁ 1QÓ i XÐMY)±dö’ÓÎÍO¾<žKôê�5 tnb¡‰oxYXÚïDœH ö‰ÄŠŒÈÚ0lAaasæ(Îá›; ü\&b>G˼¿…;Ô¼Aøè½ýÏ…”vÐì;4¼‰à\ÒÿxªŽÇú�K<­zŽ����IEND®B`‚IMAGE 224 ./arch/spell/Burnout/burnout.11J ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vÿ��ðæŒÿÿÿÿÿ�Ï�Wá���tRNS�@æØf���IDATx^µŽÁ ƒ0� ,€ñ¨uÙ�öŸ©B#òÇ¿;Y–?ï%(úþq�™oq�RyZ `˜«w.10;ì©�cêˆq0a®bàJÖǤ_·Zœ'¥£—®Aß8Õ5ŽôBÛƒU¢mml|¢&Œ)о*²”*^ÈйX�¼É����IEND®B`‚IMAGE 205 ./arch/spell/Burnout/burnout.11K ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ðæŒÿÿÿ¥ ‚Ø���tRNS�@æØf���oIDATxÚÕ’AÀ ™úÿ?7BcWC¯®âÁÙ@@í41ìq ÖüË—_o<Ô‘¤$x’ñ‹"Iµ‚…)¸ö1×W… ¬ÂÈü{ÑòÆ`t¼ÏаM°§sf‰»åoñ1nMPÌ×Iº°3ú÷ô����IEND®B`‚IMAGE 197 ./arch/spell/Burnout/burnout.11L ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ðæŒÿÿÿ¥ ‚Ø���tRNS�@æØf���gIDATxÚÕ1À0Äpýÿ?wˆ*TH²dŠ…Xù$â6P4œÆ lbÆ®ùó¿ ^ˆV€I+©¤ +kAjÜATÄX!jl é»cƒPؤèò‚ 8mW¿Ýýˆc@$nâSµ`}ãí����IEND®B`‚IMAGE 190 ./arch/spell/Burnout/burnout.11M ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ðæŒÿÿÿ¥ ‚Ø���tRNS�@æØf���`IDATxÚÕ’1À ¹úÿîÀa:diOˆÅ'‡HŒ¿‚m\À!fÞž_«BN@kI„0,7(§bƒÇr™q ‡g͆þÔj@Ä..ÞT Õ±os»+•0ÚŽ����IEND®B`‚IMAGE 186 ./arch/spell/Burnout/burnout.11N ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ðæŒÿÿÿ¥ ‚Ø���tRNS�@æØf���\IDATxÚÕ’1�1Ãpóÿ?ßP©cëP]b!¯ýÆböëùÊn9u�Ê%E.¸1ä!AR¢ƒvºL Øð+ ºÜ`gš¾Ä÷ ÊtÂv°c>ÁñÇ·÷#����IEND®B`‚IMAGE 207 ./arch/spell/Burnout/burnout.11O ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ðæŒÿÿÿ¥ ‚Ø���tRNS�@æØf���qIDATxÚÕŽA 1 ĤÎÿÿ\bC f7=n«KŒ%Lø7DAouHs «z§Y»”]Œ±N'­­öv±çwA2Š ±Œ 7˜p¢/œH8"Až%ùžœšp:à.’ ÛU´¸ lWƒ0 ?ËÆèdÅr����IEND®B`‚IMAGE 172 ./arch/spell/Burnout/burnout.11P ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ðæŒÿÿÿ¥ ‚Ø���tRNS�@æØf���NIDATWc` 0Šˆ@Ÿ?_ ØÛ Ÿ1ØÊÿ³üq�2xÿۉț|ø#|Äøøÿÿ ƒÅàüy{†@A°9 Pj�FR^Còû����IEND®B`‚IMAGE 156 ./arch/spell/Burnout/burnout.11Q ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿÿ¤­ã���tRNS�@æØf���AIDATWc` °¸B ZÀZZ 8�L‹”Vi �BŒ\ ƒƒÃ"0Í¢Á*À�RÃéÀèÂ0”��ü•†èk����IEND®B`‚IMAGE 141 ./arch/spell/Burnout/burnout.11R ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ��ÿÿÿ¤­ã���tRNS�@æØf���2IDATWc` ¸@hÍ¢µ`ˆÃÀ°‚©cXJCcUH„¡ÉA@€aH�:«T9É.;����IEND®B`‚IMAGE 179 ./arch/weapon/sword/butterflysword_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE_U)G$‚B'aaa®”O¡¡¡���¶x¹)���tRNS�@æØf���LIDAT(‘c` �¤¡óÍPùlÆhɦah BÑLÑ’1B‘@š�†�? | âD5d#ŠÝÐ0TЂn(ÄÚ2�œŠ‚Yÿ����IEND®B`‚IMAGE 181 ./arch/weapon/sword/butterflysword_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE_U)G$‚B'®”O¡¡¡ààà���þ|Þï���tRNS�@æØf���NIDATxÚåÒ+À0 Ñ$]Ïýܪ$Ì*…t‰É“?’Çá€U´ éAž8(zŸ`#ì4kÎEû{\‹·JŸG€Ý9Næs“ló����IEND®B`‚IMAGE 203 ./arch/connect/button_big.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���aIDATxÚí’I€0 qƒÉÿŒ"³ˆEï0×ܪbùi ðz“p'Aï}¡}�:Å ” M´´?äLàïС¯#† dDVð(pûµ{(�—×@Sd!ß@ùö?|Èf Ÿ5����IEND®B`‚IMAGE 203 ./arch/connect/button_big.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���aIDATxÚí’A À ›¦[ÿÿãâº=uƒÐ«ÎEaÆ à±1`PëF¢HÐ.(ü9ðèU$Ì�z‘‰oðNçZÑ]ßÜ>ÐéŸANƒòz_r¥7#„øBÞȳÿ°=£¨ïb����IEND®B`‚IMAGE 160 ./arch/connect/button_sma.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!¡¡¡@@@¿¿¿|œ���tRNS�@æØf���9IDAT(Ïc`òÀØ•Ïj€"`ª¤”Œ¢ HQÄÍ�E@P€#ª3—dTkÓÒ ð;l(�Ÿ †ª8ø����IEND®B`‚IMAGE 161 ./arch/connect/button_sma.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!¡¡¡@@@¿¿¿|œ���tRNS�@æØf���:IDAT(Ïc`òÀؕϜ–f€"`æâ’Œ¢ ÅQDÕ�E@P€£Š�ƒ™’R0ªµ¡¡ø6�Ãs|ÞŸ����IEND®B`‚IMAGE 539 ./arch/wall/bwall/bwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÞ½ ���RRZæÅÕ´)œ”bs{ƒ‹ƒbÅ´1öÕ� ƒƒ{Õ½)´¤Abbsÿæ�êÍâ ���tRNSÿ�å·0J��˜IDATxÚ…RÑ’„0c/@‹Èòÿ{ ºs÷psq,ÕÄ4ÔÒë”àxÿ…ë<E]| Ÿ"òu”àpdŠ·D–ˆ7Q´.Wm9¥Y&ôL« ¾ûùtÛªîï©õ Tm¥îÌ AZ”E vpZ†¦5 qVÙÑv®í`+Š“þärºZ5+þ-ö½Â8(Jq‡šO5ì"|‰qpD‘uÆú¹“|4²)’¿B$ߢŸ¶q3BvwÑngì"†&¶†ë8%~ÚßódõÙje8±[Z¾gvgð€mc핚`š ñd(¦Ð­Í—azvÒ`—€Ãž}pÛ>ÂCÍÿ±Õay3%™%š1¤©qCøšú´iy-xcy@ÖZÊw†îû ° @h‡2Hò·Ìy(^8 l™Ÿ8®%æT“ïÈ0?!†Dšø8\¢ô0çŽó9Ný‚ KªlºŽ}pæÉ–ˆÉp[ÑÃqPJØi¢dá�¤ ¨[)þUî¡êê^þþ@|uG ¾Qb")^á:2����IEND®B`‚IMAGE 519 ./arch/wall/bwall/bwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���‹ƒJœ”jJR{Õ½ Õ´)99Js{{Å´1öÕ� )ƒƒ{æÅ´¤Abjsöæ�í§Üª���tRNS�@æØf��…IDATxÚ]S‹’Ä ëѦžôÿÿöxèÎαӲÕB¯ÆÕû2ížò9¯ÅÖd^—r­ì­†ÚÔD<,À² MngèÖ6ÅÈ}žQbf‰þ«ƲM)-øa0`(tÉK   am ×û›"kãh x�c>§M²Ÿ8"¹öѰ»(‘+Ñ)Ru_><½ˆÕÒ�+Þ>0„&ë»>’¡�uæ;(àÖð”*Åg+4‚< ¹h)L Xe4E–† K$ýD:%¸ÛŒR6> "Á·<£Èѳ�÷mëcT¢Êu†×Dõ/¢M•û¥ÁõÃQýP’aË2pyÐŒ«‚²Û|JÖ4ÂCT2ƒæ€3 Ä‹šgÉP@ç—Æ/sEG‰l¬ýž…ô(>:±‡E1ÕYE®ÿ²ÇMŹs)h?‹èPÄG–²º3†-Ä×k€Dó7ͤÊ÷Â:)·Âñw5£BO¤ŒqBÕ‘áÂ#-¯d¼øÓÚ%=rŸ‘\����IEND®B`‚IMAGE 533 ./arch/wall/bwall/bwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���œ”b½¤)9ARs{ƒÕ½ Õ´)‹ƒböÕ�Å´9 )ƒƒ{æÅ¬œAbbjÿæ�µá���tRNS�@æØf��“IDATxÚ“Ûã0DMê»àðÿ»_TiV;• FÀmù|ߺÝ]ª‰Þ«­hå[=BlIîÛYÑ„ ¾Po­…[„<ÍHhyŠ9\Ür· > 2 ARÅš_-Fð¬MHêôšyyý²œ oÛ\dÆRÞSÀ´?JòC”òÙ‚‰ˆ:by¬ð”Ïãí8„ê5üçzI™•ãpÕ|<€–È1ðö7J½ãô°&™ý…ñrpU &KúsØ{ðÐZψZ#¨ ÀT§ Tü˜k9PrG&êgô@¾{h+½"–RÏ)Úlþ\V~py+c Úq¦ž îB:Å>Úq—h$®|×*½ Ã+=y†&’YwÀŒ$fì@{&lß…š'äF¥;Ü3b“Ô»ôHh×ø>@í¶ÎþùÄœTež¯¸9{øÕ0$4©vSÆ{œE¹ …eŸÑ÷Êd¥ØËf Џ=qñWŽŒiD«@‘¹�Î[ÊK¦—÷Ë†ÍØÃ7&$ÕÀ›+H����IEND®B`‚IMAGE 516 ./arch/wall/bwall/bwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���RR{¬œJ99Jœ”bÕ½ Õ´)s{{ Å´1öÕ�ƒƒsæÅ´¤Ajj{ÿæ�35·[���tRNS�@æØf��‚IDATxÚ]R rÅ 4–à‹¬rÿÛvA;DÀaù[¼wÖ)xs´Ö¤ÿPnò!dÚš™ë ãõä u0Ä,óÙ.µf0¢¨G¯&RÊu¯I£ñ?0œ€æé¯¢pÔä½ü¨` $`D€àY¤ŸÐ‡‘€3‡/Šb h·C ­¿®GS¬®öm¤X5L]3£¿F©±ÍÇ÷ N„ÕñšÃUE6/ÅnSE@2žNÁ’ p†µ·YmO2q‡ü {À1åÉ9d2ÏóE…]“TÍð廆0Æ9ù± È“��49¹8G¥C®Û׺=i «†±Ev½­Bã“¡€‰Ï6ó©%Mš‰IX-´w�t€õLM²(†õ;óEnVºëÈR2Âm;:ïü«ìMŸ]ÜïNìk;–ùoÚD9ÅôO"ž}UuÇØÍkÜ<X í…ˆˆ¡5�zME^Ai— !ÍšÙç#&W™b&ÔIöùûGS(ᮺ½û����IEND®B`‚IMAGE 533 ./arch/wall/bwall/bwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÞ½ ZbbRZj���œ”js{ƒ‹ƒbÍ´1JJböÕ�ƒƒ{ )æÅ´¤Ajj{öæ�Åm9£���tRNSÿÿÿ�@*©ô��IDATxÚ…’Ñ’Ã EIŠR­èÿÿí‘fvöe±„Žœp#¯ àsÝ×¼.<wDÖ>]LKמV\"²s�>e¬å}#ÇŠí;²so­­QŒ¸mYo‹à¥/é�lº´�Ëk5ïHœ"`ñ±FŸhÈ„n´´Ea¼làuÙ¨»j)“ÐÔ ð¶Ó&'¡ ,*t€wÞ@‚=°ÐJ‰<EØ V_Äà*Ù#@ð½Ï”L�ŸßsŠœÙM€S¶v³1|$a˜«+¨‰F"N¾–½³‡†~î?cPmž=ä$Ç‚3&ˆCˆy6™£Þf“©¾÷è¼þ>&FÔ'P(‚.@~ÔÃy.€”ÆÕz%±ø…Ñ�ÞæÚÐܦ[ ®û¶ ÌÇPË ×ô ”fF"jœmRkô@1§ZÏ»h�˜�Í8Å®©Þš3–À£Æ_*Ô_“$ÇÚÚy'ð|Ù‚{í;‡.ˆ2”s˜He*ŒNRR"Qà8ÓJàf #q&ÜQ����IEND®B`‚IMAGE 506 ./arch/wall/bwall/bwall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE¬œJbbbƒ{{Þ½ JRƒ999œ”bs{{Í´)���öÕ�‹ƒ{æÅ´¤Ajjƒöæ�>0—ý��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��oIDATxÚmR[’Ã0c¡K©Íýo»¼¼ÎG=ihŒF Ú¶æðà¿û2Â÷ܘ(–€¼&>ùðÏÅ?‹amͨK“ÁS-¾YCÅ�ä ^Éã󘦆Icà&³RØ"/CÖ\�r“*ê ›áýߦÌhk˜X%®W c€€ ¨FM€2N6FüÂH†f'á–BKf0|^rF˜íöÿÍ/×°—µ†x4 ;àœ…¨…†H,2³ xvèÅ._~% Œ*Óú¿1øñ¤Sœœ]†È/¡ ¾§jÞš>àÉV$`j�^'+ÝuôQâ•d`RdN“pI©2m¿j@›Ôo%l ½ ¦±×)A¬amÑÚjš@·ƒIãf5&K¶T--5n<“¢ØpʦLí¹re<¥@öušÄ4¢Ô¤Ð1öòáŽ;·…ÈÂ�µ€Ž“m”Zû3Òy¿ÿ¾ö S ‘ÑÅÁ‹'“°ðl7����IEND®B`‚IMAGE 505 ./arch/wall/bwall/bwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEJR”���{sjœ”Z9AbÍ´)js‹‹‹j½¬9 öÍ�{{{Þ½¬œJbbböÞ�¨Ålg���tRNSÿ�å·0J��vIDATxÚ…RQ’Å £ú(VàyÿÛ.ºÎ~­v$Œ¥ëŸ€ç¦ï°Ó¾t=bÜUº¨HlæØËá¡JÚZ.rDºêÒs†gC„_sMåXß7‡>¦øZ$0—õÀiö\5,ŒbX®•—Çžéႚöâ Êp­@Ô†#²‡dÖ‰ä‡I°% Z}áØC×g¬�hæÈ×ç.À¾Šá6x2ññ†ÏBͪ–bOÔÖ¡Ì­ƒÓ`…0ž©ÃÜ=¬jiX×�ÀÜ×Ü¥‡§åÍ7+"ݪ\ã€d@¤¼ÛŠe“‡ÁŽóßn 2ìŠ÷¯t¢«f¡ }hìç.^lšzç°ÌmžÌð*[Œ¼’)ç§ë½+)¼K¶ò~%¥y1¤²ªÉE6Ü’¥c'åªpZ0ï\}´Ø)rK‡s¿¯ä€d`}鋽ìÞÄ÷kî¿ÚÆ< ­5�A‰Ýä%Z·óšîë %T�¹!-D¦<ù����IEND®B`‚IMAGE 526 ./arch/wall/bwall/bwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���JRs9AZ¤”JÍ´)”‹jöÞ�js‹½¬9{{{öÍ�Þ½¬œJbbƒÿæ�^ ���tRNS�@æØf��ŒIDATxÚ]SnÄ0ë–AÇÿ;›E[#…4¸Æ†»Ë<÷ÌeáÏJ·{å¾ çKØsjâ”ØÍt 2$�Ælм_ïµ§ßf·]ŠÓ|ÜǘBÔÓÕð „Ø£Anê!"C‹Fo�~TíÕ ÞJ½päÜ×õ¥ Ÿn ¦Lžp‘óúù8£f¥N¶^ðбñEÌÚú.(ÌCxÃøˆæ‚s2”lë¹}V—˜Ù­Ö.«&§Û¢lõ¿Yì¢ïó˰B‚±<pïE ”bkrr•ë$®‹aëÚJ†#Ÿô…-€y7ª1ewð›¹rµÍòÎ(fkw‰ÌЗ˜Þ«öÒEcÿlRwD»å* KI;œå¥ôò!Ž6 0’Ã-ÕISÌÌ< ™;Þ™÷P]Ü*8c®ªÊqS™B\V¦é!†ïô³"¼•ç³»]\_xuH/Ý�;öºúúp}$÷7©‡gEE/'òœ[èìi‹iE(rƒá Kb=2Áðàü»Ï¤glxwR[CÿâJÖ/¡å&ö¶Ñz����IEND®B`‚IMAGE 514 ./arch/wall/bwall/bwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÞ½ZbbZZs””j���s{‹JJb‹ƒbÍ´)öÕ�ƒƒƒæÅ´¤Ajjsÿæ�˜°���tRNSÿÿÿÿ�û¶S��|IDATxÚ…Q²0ä‹y¹ÿm»Øg§é&BÄe³‰tþôsÿ`"¬yÇ÷­ öÆ`wÞkf;.ø ‰éak9†14ßHCs-ã†àqRÎÄ$aG &È… 2ߥ@³£-4³àév—Bµ•b> åÓ“Æh¿àÅ#{Õ×)ÚQ–Tîö€õR÷`Ð5´ ­` ìf÷T)²Œè˜mr³‡Ðk€É÷1×¹TýÙ«c)‘Ùc2¢ëoÈÐä—‡7ºÀ‘nMÈ¿ÚÛ$™-AO#€øç1Á`ÊUuÚfß„×Uf˜‰Îß„åaÁ¹¾ˆùVK_W SoÎ$_ëªK+(áI ĆF †¬-†YMöTÛWS—þ^ ‡£ Àë™ç6Y{b¤2åït¾WíTŒ'àÉÉ_BØÌ=wð0xX߇ÍêK JhT.-ÝÊaµT· ¯$Ÿ³ìêq7ü; ¶²xA®ë\ä</øs]7‹Äç’‘ „_¿#ZºÑh����IEND®B`‚IMAGE 466 ./arch/wall/bwall/bwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���ƒ{ZZbbÞ½ ””bJR{999s{{Í´1 ‹ƒ{öÕ�æÅ´¤Ajj{ÿæ� >;ø���tRNS�@æØf��PIDATxÚU ’à D³ÓÎJûßv”øIºÊ@ô -WµP §ök}µ²] =&°Ž B(?×U[«Þ¥[aÍÎ …¤Dè‘Ëà&ªçìEm1ü<¾2›ö�¯Öîö*câÜ@î‚DìÇ%#ӗ‹zGÑ4±X8 ù³*`¶÷¶@k«Eœ§q&™§É3⯠¡Ž]wß@+ ˜¬KØí´î‹Î™èk™´¹klÞ©Äíãa ‚mñ�K1×Xe¿J ˆ³ëGZÊ Ã<⑹C]¬§ð@œ ™26ŸÿX©!)×p>’iÒÌ„P<šÍTsÔÓƒÅF{ÍTMø}…eÚCØøé侊ý5¨S(àÓ,"ÓC6îA£à²dü]€Jƒ©ÿ6ŒÈ—˜ñ¾û*+S¿w#é÷ÍGλªî)ÿ‡Ô¹Ð����IEND®B`‚IMAGE 479 ./arch/wall/bwall/bwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���¬œJRZjAJjœ”bÕ½ Õ´)s{ƒÅ´1ƒƒsöÕ�æÅ´¤Abbjÿæ�;Zö���tRNS�@æØf��]IDATxÚ…RѶ#!ûNl1ÿÿ·K¯>mz49¦Úq ??÷_¹p½†töQB›õÞ½_¯Œ$-–ö!²™o1#YA¼œÒq‰Ãr¥f(W?^QêÒžR›ò˜I¬Ðf´1 dñ)ÝËÿňGE”CôÆJ­âªí ä’CCDeqœáÁƺâa{”’Û9<©8¡Ø~O›\kßÖ{}¬ã@t }zASì¶ýcuÔÒ<½<YWD�»',J픤Օkî‚Æ*Åþj*:ãa_c ”2mÜéG Eš"Ø1#Á–þàáZý^ïØX BK2 ë‘Ž–õ4tO"Ül“$8Üg´ˆëUoPaæ‡ìkºÉ=’¶"›_-ʰÂS Yƒ“úƒæ7l‡€¿â‘ ÇŸ›00Á\·XG6<ñ¶·æ.ôÄý¾E™û ˆY)hòsÕ¿����IEND®B`‚IMAGE 501 ./arch/wall/bwall/bwall_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTEJRƒ¬œR99Rs{{Zb¤Õ½ œ”ZÕ´)Å´1ƒƒsöÕ�æÅ´¤Ajj‹ÿæ�<ö[���tRNS�@æØf��sIDATÁÁja†áÞ‡‹ t0Áx!ˆ ñFt“’@Að'óc6î QˆE!ïÈÌ”,•`qiè XüFŽÏcå{ÇA¸>žZõ,öˆ}>ªìÑ“ËKpàï{>ß·ÉøÍ™è¸îwÆæ�¾�˜ÐÝž �É� W�€@ÈÁ@€€©þ)ºB Àeè ºƒ ïJcs.ºt‚³~këß�@·ÜíÛŸs�H¥½úî�$ � °|³Üáะ�ÖàÛBø‡!Êy‚X© „ÏJ ‚‘ Qƒ…ŽñÉ·³2Ba)ýȳԦÔ+RÊÉF|þ.ŸNªªœ-Ç«‰µÛ[ƒö{Î)Í‹”—ÙBW»¸ˆˆ¸ZÄvÆ·i‡7 uÑíf»Æ|/ !ÑÈhq±ë :Çi,"6ƒ¸N)|›ÃÃÚ/ÍÓCûõæ"·óÇÛ¶µãÕèÞªzmÕjrz£W­þxPlÌWJ`m����IEND®B`‚IMAGE 484 ./arch/wall/bwall/bwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���bbZƒ{{RRbÕ½ Õ´)œ”js{‹Å´1öÕ�‹ƒsæÅ´¤Ajjƒÿæ�ZæÖ���tRNS�@æØf��bIDATxÚ…S[rÄ0ëzS÷¿mymÜéOÉ„Q@2™|ý¯ûõºýzgN(rxùÅ øºVÕ€÷w±°ÕƒyNÏQZ+¶#LørdÛ 0‹Š.W¹`¤æ%òn6¦rx¹„¶áVÊ^‹ŽÅ¯ (¼Û!²Ÿ˜£NØÖ›Ï“¬RHÍ΢3à!< nR’eÞ I2¡NQ bjdÄA0°aµ‚u±C²j„‰²ÎÓ·‚BZ¿gI8ï¶5!ìiõ ԓѹ¨#ð™ÝáaBT’tvÒºëàÄ=|ƒj} 9êAÇdÆ9K¤*H™$IòøLHtFxæ±èQGôTωؚ¨LüñpaÖ7Õf‰’õ =ël`ʆ‘›KhüêUVHìâi塚nD‰Çôù—á’pHm2©Rè ¸QWè=Œ°ýQpjÌ(½¨é»#²Œ´ÈÏ����IEND®B`‚IMAGE 481 ./arch/wall/bwall/bwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE¬œR¬¤Jƒ{ƒbbbÕ½ Õ´)œ”bs{ƒÅ´1���‹ƒsöÕ�æÅ½¤9jjƒÿæ�˜ž¤&��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��VIDATxÚu“rƒ0 C‡ulôÿ»â8 ÛmÜÑPü#%uöΰþòž?t=ìë%Öl#ãÈ÷YrÓýþ³ëÑÞÀu]ǶmgŸuˆÈ ¤Âõ’Öš™Yõ.RÏÜÝ–ügX ì XÕTsøýáýR+ÀGÙj¸i{·Èf¸¡e$Å0Z·#'‰†´§êLéHP”¢ Äðe†2äî…�ÌF‹áJ¢FK[†~i몠ŒËæ–Iø´©),@­2µÿÈd8fPœá@ð—‚óME1£N€Äe¡aN…ŠúüfÙX�éÎÈ� �À I@à¹ÑÇb©ª™Æ3—`gˆ'à÷ÕÃÁ®A€ÔHž[9Mʺâ‘än[µ÷ϱŠpWß5­Ç#yÂ*‡Óœ‘@÷Ÿ¹cÓòlAn6È9gEív’,„ø¯uü«Åóh”Â7¯Á)–&æû����IEND®B`‚IMAGE 495 ./arch/wall/bwall/bwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEƒ{ƒRRj¤œR¤”ZÕ½ Õ´)s{‹””bÅ´1���ƒƒsöÕ�æÅ´¤Abbjÿæ�¥O²ä��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��dIDATxÚ…R[b„0œJXmrÿÛv`Y›~u4aÂËàûà&¾îD±_ÚjÌù:í|ÍÄëZWS~#9Îsæó$æy­q&­åvPb­°9bÇ=WÒZF‰à—rå#>F$áK9rÃꄉES +u94Ò¿‰Y³v¨øBäQ€$BÑš¨%boEP_ÄʱRV› ¢±ÅYfŠŒm/¦Í6£´=©ìôñSº/-º¬ N-šV$ηè´—4³xÌMPLݶQöþîû÷z(äis‡…J%òû¢Î9zÎY_D!ëÐwóB™H3-ÐU¤rSg|Êl´`bN@3VÚº”L'ÀË¥oIú”͸”&Db0ü>!¥-Î4ÕÅØ®Cär§´š|߇̿_ß ¨-$áƒktCz .¹"|öQ~êP•›W¬ŽÕ‰f¯©ˆ=øÕ!lû' ~�{n)öµ64g����IEND®B`‚IMAGE 453 ./arch/wall/bwall/bwall_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTEssƒ½¬AŬ9js”Õ´)Zb¤””ZÅ´1ƒƒsjj”öÍ�Þ½¬œJöÞ�æ0ã›���tRNS�@æØf��IIDATx^5Á?jÓÇá]ªx€®.¢.‚w(mœ< Ù/P t/ ‘·~– Ròg)A˯¸„LŸø½‹“ÏS̈ÿ.ëU½{‘×Tóå`Z·Ÿßÿ5„ÏoŸÖtúæTŸ¨Ò¹þU èYÌß!J%Q[õ$E à;´e‚J«Ìÿ¥7¡Ó™¯A-¼ÑhV°¦eZئˆfÆtÇ2°Û� d7..`ûXs~¬ì†Ê5¶†Õ§`[_ÿ˜�œŸ™ÄÚ­9q7–BÕ…v˜¡4èÆ¯ÀÀ³´ºH[IÌü¡ ¤“Z. ìפ³\Öl6Ûºì8º®åÅâ‹uVëÕÉI%û b欆ù9˜…¦“ÉGËýû#¼ ŽnY\®é… ¬î µ{™C 2¹3Ô·ÓŒ�ö(“ÚÔÝ0J`;˜Lfÿ�D´n‹S4€����IEND®B`‚IMAGE 479 ./arch/wall/bwall/bwall_hole_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE999¬œJbbbƒ{{Þ½ JRƒœ”bs{{Í´)öÕ�‹ƒ{æÅ´¤Ajjƒöæ�A&¢ò���tRNS�@æØf��`IDATxÚe’‹rÅ DC¡YÃÿnA¸y´NŒ“Ù“eE†ÏéËf,1ï— ÿØyÆêÈá2.(ñÅårX'öŠ…í€Áó{ ÚÉàÑÀk²ø| Gfà )sò)î•°C¶Ãqø®¹ˆô¡pð9Â!FoS­tc{¥– 98öß^u%Ù« |«í!::Š,5û drñO©ù]ÀQòJ.8PKa‰»ß€=�âPÀz©1¨‘“g«_À 1,>š É»–J€<Å­6%4ä¨5pÕ©³x7ªˆE¾ÁÆ è! ßøçÐMê7îNÎ:ML”X”†Þ�êV‹‘´š“Lˆ7�`º�:µª ²ÔqsòCÀê3žaà×6^—T”®Ûÿ\†Ì,e’ùƒrï>4@»D<8(­EÒe½ ¾kUA52¹K<¯}c@†´�~³2!`aßéD����IEND®B`‚IMAGE 457 ./arch/wall/bwall/bwall_hole_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEAJj¬œJRZjœ”bÕ½ Õ´)s{ƒÅ´1ƒƒsöÕ�æÅ´¤Abbjÿæ�lBó®���tRNS�@æØf��JIDATxÚ…R nÅ0##´¢ÎãþÇ.Iª§Nš«ÆüdŠø?ñóÃsáË)…~¾¡Ðò”‡¨ªk?Ó£Ao l?Hr%Â[\‘|;§ƒvtrHþi#«=Êê<S¡[ĤL# åÊí¸ @ñ.Ão?ÌÛ v,…І ‘«V–?šETÔ¶²yC ¡ZÄ»qD,_vr‡b»dYÙÆǘÝTkY[¦,°öÌ@2ÞbŽýÈ?¿Zµ gÐÇ�ªE„ÙœÉ{¯M©–cm¨¡JmmM2 Ç`êae àkex‹€Zæ’[êÌ6‰õ¡Ÿ3˜«MŒvSK? ÎGz´Ô¨§éò$˜»�Mq0\[!oAÍ€A"úYonH‚Î"ùz^×\,I^ÙÂÞ÷²ä…¥L^°¸!Ÿù7äpBþ€&Ü-ó#" G!����IEND®B`‚IMAGE 552 ./arch/wall/bwall/bwall_w_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEbbb¬œJƒ{jÞ½ JRƒ9AZœ”bs{ƒÍ´)öÕ����‹ƒsæÅ´¤Ajjƒöæ�{–ØR��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò��œIDATxÚMR ’ã0 fA�óÿߎ»,â€û’>#ʬÒm<w)~†¿ß­è¿YîPÅòù~†è|Ñg!ä]#SŸïaU·“ |"iÎe¿×Õð³ÃfïËæÓ††øÿpsªþ45&Â+ °cS}4Ä|¿9àZÍ0£-Æ·Í6XJÜU¼h@Œ1%G£³Ê–©Þ.þi™k PX{¸.U‹|^*3ƒ›#âH™k/4 ahT$WÕvJ<£‘å¢7k®ñ¨�Kâl ð„ æ7îv.A=0›­ˆ+â&ÉÄÅò¬¨U­8õò[çâˆ6³¬È'O¶ee"8³7‚»¶È€@Fàì t°é�±þIV¸÷À±)ÁÛ3ò°¸¼(š~ÈäY.Â> 'ƦaY.^jvaØÀÇ�M¦ÎÁñEªFЫ“§“mçê~ i<Ú„,–MöëÂììC©,/X¶È'jm…µ¨Bìp!„…Ž6L(eÒ‰zC¯“|$ª»3Ó†t”“á>Iþš'VõP¼����IEND®B`‚IMAGE 591 ./arch/wall/bwall/bwall_w_0.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEJRƒöÞ�999s{{îÅ‹ƒbœ”ZÞÅÞ½ ���ͽ)ƒƒ{öÍ�½¬9bj{ÿî�i��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��ÄIDATxÚU“‚#!Cëɰvýÿ¿½ôº{NGFI!}uÛsi¿ŸöýYïWôl­eÔîP^æ=ðÑnÙuþni€¿Þ¯^žŒgøô�è'Â;Ï C�P›­/}0m^Ä&K¦{â“{¶ºŸ"× y‰N+¨Eè¦?u(§r¦O�á`BrÉìˆíÀ/y™ä’|ím™“W)¨Ä7�æ›#Vš™/ç»K¥Æiò†FwsÙ’‰8òz(‘c¯gÂ@2¡olà …ÛÖÊî<)Ós¢ÎP4¤˜¥ß^è+<œ¹¦2¬/£�ƒ|}­ž¹Ö¢_DPçÜÓ‘ŠIWÀü¨¸¥n»I>³ííØ\ÿ÷ÂTcœºG^£6^*¤O€‘s7 ˜xl»)æ¨ÑĪã K„~"LµZ¯ÝóÚjÚÿ8¼! 0¢ë§pæQí6šŒ8õNWÅÁFÆçÀø˜=wsv‹E;÷âª)þ`ûvX8½(1Øt·‘.p|Ž}ós¢Gî*‘§ªö”Ìb¾ïå-wcùø@~_ÿvÒ08þºþIÚ"4ß ¢Ò����IEND®B`‚IMAGE 599 ./arch/wall/bwall/bwall_w_0.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE´¤A´œJƒ{{RRsöÞ�999æÅs{{œ”Z���Õ½ öÍ�ƒƒsŬ1jj{ÿî�ÇŒN­��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��ÌIDATxÚM“vc!D…²HQäÿÿ¶3zš.¾O¸%C½×걜ý¿Ìuîó=¶–™@ØV§0†§� ‘ µ&RÇû¢øe`n[#ü¾šA‡àö_@|Œµ“àzhíª7ƒã§\¦'Ù-) m=h—Š(¼U,p]ûy%nWµY×L‚r]u2ô·+GWŒs«TÞ`C„7Óí³E_è¦àNôþ d 爈” l³Ä÷W"i´!kÇõ®Õ†^¶RÅ<;ÝFy~IY•Ä-±½PºŠú) $éÐIU£i,QnmÜòqa†9Úo;–¼cGÇ»ûâ9”îØ{‡†º+d ¶0Åzwgê³=owÞ†@¶‰þÏì]”£ß=• FGá[ççºMð+Œ¢ó℘!yj6T²*câ³343ÎÞoäVRdxÃR¬sæm€ßÀ¬±­E­}±;‹Ùð•ø>åv§º4@t„»··„Åäus JJxÈìYÝnðR·‡àØGÚDÒÁ�@Ö¿¡}wœXéö]úZÔwq£’ÝŸ&yP‹*�xU(¹ëßT#õbgS(i~€~ÀûO]ÂùØ~�G·o0Ä"Ê����IEND®B`‚IMAGE 544 ./arch/wall/bwall/bwall_w_0.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÕ½ æÅÕ´)RRR���””jÅ´A19RöÕ�s{{ 1ÕÅbƒƒ{´¤Ajjsÿæ�\\t���tRNSÿÿÿÿ�û¶S��šIDATxÚuS vÅ  DŒ†íþ·íHüM__‹ ˆNˆ“rŒtPï”4§D;ÌúÈtåfù%Û4�¦+Ã|2xPÈ)`…v¡ ¤O&£ï#ެcè-eðd ‡]p&„†<öæ@…vHw vgv†íböfpO8x`šÄaF#¦ì )>^r³ç T 9’D®rhvQ}x’‡•ß䔇{®ÁTùxspÉÄöw¹÷'CÙSj£ ô.±ÐZ3– ÷ôÞ]å¾Cû˵;–ªq·£]絤µû*9ïeµ¼�[`ÿa.Ài1#À÷¶¥ìn˜ÎÖ.¨ €sšˆ``÷‡>ÏÀW;.›8$ª×¥½îcÿ?©‘}NûO¯Bqf·ø?ƒ¡æé0+°T|Ú>¢ÛÀ)…ÿ+C‹N�˜ŽÖUU\Í—6t�.Ä÷ÎCÃ53=¸´2W†z)¢Ê/ 6¸t`ľïµ×dÓDÛ.{o5ËŠ©÷“8‘Âû3Ïã’¹î";„iŠ�½/{T0ë¯ ?E__“/%Þ“y����IEND®B`‚IMAGE 565 ./arch/wall/bwall/bwall_w_0.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEƒ{{���œ”jRRRÍ´)999öÕ�s{{‹ƒZæÅƒƒ{ )´¤Abjsöæ�J���tRNSÿ�å·0J��²IDATxÚe“‹®à D§ˆzÅÿÿ·w@³»Ébí &ݼ5ß³Q8ÿ¾Ü:æù0¡N�îæ¾Å©x�ºè¢\› ÷t«ë ·™ g†æÁÛÜM±]ݬí£È¯‡î!옥ΘÀ×Í’j¦"¦J_Îìr3¸(±4ÂWmÏÛƒ¹B LaF®]Gßg6Å <eÇØùåX?jÎS*jŒ±„l ÇÌæÄ‡oI‹æJE¨™”¢N¸½«ŸsÊ뤡Œ‚çÖÀ÷4Êÿ@©DV,ëÏäV§~£F‰óD°>`Õ(Q‘g©cpþkå@çd…g+¡Ss;›dª•)T×`W\ÇX‡#kSÒÈdx%0ŽÌ9åð 5ÜÂÚ‚Q….Ž»�„‹X¢ Ì-d:„˸‘D ‡€·‰~o„ò®œºÍÈq3Ä3É=fG½Ý0ÚŸÆ©�ªXó¼€½ôJ¾£„°DüA`Š°Ñ§à æ]û  î.»ÍTq߸· ¨P¼ nAB$æËÀ8ñæ ¶“ß²…$Þµ÷�(tööF.3 ¾ (%Ííêû»Ju†Üj����IEND®B`‚IMAGE 586 ./arch/wall/bwall/bwall_w_0.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEZbbƒ{{öÕ�Í´1RRRœ”s���AAAs{{æÅƒƒ{ ´¤Ajj{ÿæ�Ûe•9���tRNSÿÿÿÿÿÿ�KF��ÂIDATxÚES ¶$!7ïÛŸ`M6Å!¾×$™7ç|§”›ïqË‘ê½gˆ˜·drP):¨¹f…‘9EJ±¡©%ÑrïÔ’‹žsJ90Ó�›¨‹¢/$Ë4Á[fN�êcØ}³ùÍr"ºj‘‹•Yrf±LÓ\‚é4|Q*0¸–÷çÌ`€ƒð¸£›R¹3ã¸òÙµ¥æàbê+Á‚õªÛêªÚ�{¯ ií}ÛzqØF�HwDtÜA®·Ý èÁvÞq„ŒW eu 0W÷èÏ[Õi(�¤Í®©ÕÞ8Ë7’È9ÀèîÔzØÊQu£ ì?Îþ´kõ½ó—ȉQßð@vaÍkCš(}ï´é®ìÓ„âb¼ð:Òøôƒdªí'ž ¥÷T�À•w!(ý� ލ½B:¦ÔNwã± !“»¥íj8²v¥cp7Ý^U•¯0ˆØ°ÿ"?ghü'IáùÜP¸8:Æ+ÑPãDnV¸ã5}ú!ESt�" ,=ýš}¸ Š*㬢š|ˆ8C‹Ú¡Áþ™AÝ~ “+Š´Æ*V ¨·ÿH¾\¥óVªÐ”èðÄš c±2€����IEND®B`‚IMAGE 562 ./arch/wall/bwall/bwall_w_0.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEJZ‹½¬9JJRöÍ‹‹{111jsƒÕ½)���{{{ ¬œJbbböÞ�ýv¨}��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò��¦IDATxÚMS ²Ä ³~AíýoûØÎ<v%(`µÅÇ?_Ðïr¨!zÞ·ª»\+î‘%븈×!­Ã}­_ÂYxjSO­ç� c¨ŠZ‰š.¨B©xNØâ®Œ Pmy3ý!¤_B=YlW ‚†á/òc-º#½u0ƒjeÅáEXBKHÑA¶6+vâ"{†aíș֕^3$ìÝŸ½÷c´ö¶]�hL°gdÒÛT}ÚlAÙnLhjÝGÙ®—¼? ˆ½]&ÀKÕ½Yšå~‡œÌ.ÖšMPtïýf²!@jÞĺl4Úžß ¿ž´áЋuõ7ƒ6û¸L´há3Pæì,ÒgÔÛ¹ uT#ìI–+‡Ô–M™¥—[èý‚`‹§oŸ–«!s÷®Äέä±ÿŸEÓÏŽùª÷|úÞÒܘG×.‘ð¸)ÞmBýqÜê ˜p¯“n¼rç:„lbB`^û+Ù0þËwí%BML“ð}8¢É|‘üx¿EÝ•&@ $+Äý^p#P�ÿ+|ŸÿQ‰Žöïóÿ2Ë$(Ô¶ÚÕ����IEND®B`‚IMAGE 493 ./arch/wall/bwall/bwall_w_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTERZj¤”R���JRs9Abjs‹Í´)”‹j½¬A{{{öÍ�Þ½¬œJbbbÿÞ�sS‚¥���tRNSÿÿ�×Ê A��iIDATxÚ…P[’!ĤírÿÛ.(¦v¾¶«b?$È@¯@?jÚç¥6&&5IÆšI ÙNê0*žÌEZF|$m• ð€LbãˆÈ.(—i)`ÄfÏÃÛ¨l¦pp ?´Ï$ÕRªÙ÷ð:Ÿ•Qv,ωxVx=1†ŸX§QM¥fÇî°¸c®û®•åu¾¢ÓÆ_KÔ{ÜÇ ~Ú ç¹V?aãŽJ±öZº –´'×ÌèNÕ]OHÖïAýðSð]kŠá}±Ð_QžEûޥΧ `èî/#ãÒw÷å1îëØujYPý7 CQ´â`Hzb›Ê¨°¹Ê1Ö“»™˜ÔT™™iHQ†®fä¾Ä"D‹ÔÞ(Oµæ8pÅ¡h(GÇÅUOÐýÈ¢':‰S´0/aZIñ]uUõò養ž€ÃÞÓë= Ę€-Y-áóú˜ÌTï×»\Ê~o.ϾèûX����IEND®B`‚IMAGE 548 ./arch/wall/bwall/bwall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEbbZƒ{{RZjœ”bAJjÕ½ Õ´)s{ƒÅ´1���öÕ�ƒƒsæÅ´¤Ajj‹ÿæ�ýUÏ,��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��™IDATxÚ…QQ–ã Ãõ`R#ðýo;²IÓ7o?V©q$)%íý´¶ù{½ªµÉe&ú5fA§ryÑJÂU{:ˆÚªkäÚÜ=b®ðàÀ@²èj-ï%‘ÚØÞgJ©æÒ(Zn•TFÇPá¨Íc{�¹Ÿb%<âEM„O^Ùñ „.ºö}ltñ.Š�+–Åí°"Œ&°©äŠá7"‡ŽCD’Áú–CÔÀÙiŸE9ìM¿äPÖ=�S«¶lx?F­•}sÓF!†‰8jŸˆpÔ Š E½âˆ8Ÿ¿ Ý£‡nH{ŠÇÁty! Ãl+bíõ9Z¤Ê€ç¸Ñgu‹Ç½ù²ûœàwE5KÁجSzµhÖùÔ23˜(ókéÕ))õ&Ã\D¦ˆ†/a6]º1‡¸‰4@Õ‘p”ƒ¨w¬–Ùq�ƒ¯1{}ÊD®í|8‹)làhþâ®jñýÜd'EñãPI0£5¿hHÈφƒXbn0_»:¯Vgðó~‹Êúzïä¬_bT&P*c›����IEND®B`‚IMAGE 583 ./arch/wall/bwall/bwall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEbbbƒ{{RZjÕ½ Õ´ AAZœ”bs{ƒÅ´1���öÕ�ƒƒsæÅ´¤Ajj‹ÿæ�8b��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��¼IDATxÚ…‘Ѳå*DåàA7‚ýÿ;-ìš©ût;A\¤3>ÿ£Qúù¹;ÿéä[:OºW³Ã+u3­ý¡FUYãn­uÖU€ÇÆúzüpw¸{É‘µ”©™ûܘBƒ‹ï#l³ €m¨³Èº¤“‘{ä;wxUHñVÙz] P¤y^YJà¦Sß–Q(òš‰\vˆs�„ ×É­@vèwèfàuÀ0 I|G´ÚŽ%r–L],£ê-¯pˆÑjŒ¿bZLI>¹¢ãœxNR˜òüˆ$ÐVÂÝ’Àw|€½úiÑ#xF4sÊj`g¨™þ{‡i@º®¹šò4jB&Ú©×A¥?åCÇ ¯Á U,�› ¬¦—áixÊ Œ©i7ç“Aô¨î9õqÖ)%`\]q>3"Òƒòçõṋ!žÞ:�M´bï¼Ëaé(9ãè_΄meš#¼ åäޱv P¹MòQóËAK“çƒ1iMÝÛ+NîK#žä÷ö—ØUWÕÈ;]ƒIŒrç÷ó©m¿Ÿ[ñ§#ï?Äü%ýQ����IEND®B`‚IMAGE 603 ./arch/wall/bwall/bwall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTERRbƒ{{Õ½ Õ´)99Z”ƒZ””bÅ´1öÕ����s{{ƒƒ{æÅ´¤Abj{ÿæ�'øÝ��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��ÐIDATxÚ…SáÂã ™häýßö¿î»ûwéÜZICB»öüí?Xm·çë¿h.8ú7ÀÍ?£÷nâÃñ÷6l¸õé²…�¹*ÒIÙ6†µZ«–çr6i½Â'¶fH BUuœÚf³½QÄeIV ´ÚZ]y¢yJôZl’›@[•²Àºf&›ªSþ—€e+·löPVà#ùK–è5ýHìÓ/¡ö\E…Ôª™ -zÎBhj¾Þ`Y•›¾Ì $Òà•à2Џ]d~M1á “™S²þ%DÒ$CçYžï~<ë¨|ucrÔtP¯÷òü*ð ¿)X¦dùA˜·¥NÓøzСø2¤`ÔdÌ£¼)Š*µJr_"ÊòÛb4I ÷…H@ãó.;·¾ƒÏà®V5í:Nªv{2·ºu5ì7h†³†…2VÞì¸`«E¤ÅêÆT€|ÄЈ(,xèY„Úæ,ùʉçµXH×D…S°M7ãõ—ÁQÏïëv×—PhŠÂaÌp¤cÌ JÃ9äT5`c¦»ÍÉŒºhAÈçÄRØNhxéÊ£¸æÑ˜_>Ïs3ÚçÙœˆµçðß)Cþ�/"#˧am����IEND®B`‚IMAGE 593 ./arch/wall/bwall/bwall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÕ½ Õ´ ‹‹b���œ”söÕ�AAAÅ´9s{{ƒƒ{æÅ )´¤Abbjöæ�1÷K���tRNSÿÿÿ�@*©ô��ÌIDATxÚ…RÛ–ã03 ø¶ùÿ¿]Énwæmtš¤$¹åýeÿÆ|û¨ï[ÇO©8Ñš?êª{öŠOÓ§=Õ­òèó<±Æî·¿se[†ò`¯˜Yš'†Öþ¾S#QLq>Kiàp ÙŒ&ˆX–1È8f]keÆj Ýb¹®K¨pÁ‹³UÍ5Á-…"@ª"ö}™ïBê öð_2M,Æ2®X‚·¶ü©Ôà븰$–û(6}v5ÅrähYS£Þ{E²¬ÆÍßTÖfÿÕç.舊}&„F {' Á©š!_ °y]T¬  ;9èbs—0æTc_Â%¾"Å¿yÜÌ!(ò3AôæèèŸ!Á_-N¸~Ä· ·¥Éò`ÔÇ1ØX�x Cmî%ƒ‰ß6ûu·¤ûhXT¤`<‚º*¯M-Ø@ïRÐ5'>Aj‰””0ÕˆJ½„cÓUPjXÉÂÿ ÛM$}Hrm&ñt/¡ÇPQ9‹ÔÇêG¢nÛ#©$¿zMÙZûFÔ©¬.žæY"'\=9m-( EhÂ눠¡«r7¾ÉÜ‹³O>töƒ­×2Ÿÿ�êò!vÉó����IEND®B`‚IMAGE 633 ./arch/wall/bwall/bwall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÕ´ ƒ{{RRRöÕ�Å´A””s���s{{AAJÞŃƒ{ )´¤Jjjjÿæ�/Òó���tRNSÿÿÿÿÿÿ�KF��ñIDATxÚ…’[v!DEEA|ì·©"“ùÝΜӔP\,ãŸU.WÅ;mŒZñÉ®LJš¡¡|ôbæc›ïÙõô˜Q›"2CÄîÖŸô¦ˆkyïL‰ 2µû0ñÝ[œ×Þ‰VÚk‹§c*OÃÇÝ^;¾6œ•WZ[]–@}ƒQî}q¾½~:3œ+™à¯‹áð¢ '²Ý z ÀñpÙÁù%ðzÀuXfñ.¡/Nit€sØ4¯–^£Ie æ AŠùá°‘M@¡lZ柢“("(M™´ùÔÍ.’ƒÛé«A@«k±_h’ãØ“&9<9M$%’%’¦Æ‚ 9¼¸‘áô`’ë´ˆÐiEK?´@ÖŸq_7}hN 9h{_éa×KP}-´(‘L!a¾• Öo›ñ¾$�J÷=¦m] j…ÐC\NËÜù3‰[Þx$zß{äòzÖ{à ¥Ä,(!D}A1AõCèMÊZGdòþVt±¼˜äy�µèáô®Sè!Mìê·Êéˆ"ßΩ‚ É!AœÔ,ÀNãb³„*Â_A6› è’UTÉaq­³°§ouƒfÕ½¢ ¼bú济k t®¦·´²Š(mwQã¥ÿ¬-¡Õ/ÿ�³ÍDŸ¡«÷����IEND®B`‚IMAGE 604 ./arch/wall/bwall/bwall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEbbböÕ�Í´1””sRRZs{{���9AAæÅƒƒ{´¤A )jj{ÿæ�DKt›���tRNSÿÿÿÿÿÿÿ�Þƒ½Y��ÓIDATxÚeRŽd!CEŸ"àÿÿíÈÞærÌ ‰TZË£ï7ºìï¿ Œe…¸uè�nŸŽŠ ~¼pd3óڜ֧AÖ’%Î w–õíýÛt?ãö‹,&Àbwt7±/I�öÚ{*ŽD JV+utxÊÙ豃ʾ]:ï´�\ªí±<: ;Û£÷]ϙ㵦|HÚð‰jFnD àÑ„œ¹DN\³@¶i@£¸RqÉÛ7@wÛ (<:DD®ê�Ä-»o¿&ç iøS`-^@,W¬‡ >@dZŠDƺ{—7ÀÂáƒx¾¾/j×€½ÆéƒÊCùÕp'^Cắ|ñÔàþWJùp˜\YÖÀ,7N DtyQT17²ôa¨¸¦ˆäŽkùpFŠŒQLœ¡ˆì!¡¾‡>TÎk°¹$ÀzÚËg.@žòÓ…nÓ-TIFLs^82ÏmB'œô0Êpá=ü`ì0ê.£ŠýþXÝÂ'xÅ;˜¦xÖ£–H“ôù=L3\ˆ "þWšæÄ@p/2Çíf" �º¼7Üî¦]sˆì<À¡à !q:k –~À% …Qÿñ0×� ç§òÖË"¿/Ñ"}����IEND®B`‚IMAGE 241 ./arch/monster/giant/byakie/byakie.x11 ‰PNG  ��� IHDR���@���@���§ã���PLTE������¥g¹Ï���tRNS�@æØf���™IDAT(‘c`Ä î„füüÿ˜Á|þí?0ƒíÞ·`¿õ®0ƒ÷ëdˆb¹' ù´(ã7D ï¨Á|~Pû'(ƒ¹Ê`Ücl€2l>@57 Œõ¿ þÿUûkÿã[Ä] kl  @Œˆè= Ƈ›u `¹ ̯€SöCTÿ`à€0|`~W`��È7,ã ÌD����IEND®B`‚IMAGE 220 ./arch/monster/giant/byakie/byakie.x12 ‰PNG  ��� IHDR���@���@���§ã���PLTE������¥g¹Ï���tRNS�@æØf���„IDAT(‘c`’€ño„Áüÿ”ñþ„Á¾ÿ”ñsTjßý`†Íç|ˆ¶Úºfcýÿ‰ÀŒÿÿ€Õ0þÚû!Ìø–Í�f0¬©1�3"¢öH€nÄq@œ1AŒbÅfˆ]L+˜¡.S`h€¹6Æ0€1l  v¨ó˜`"C ��õ%Å?uœú����IEND®B`‚IMAGE 620 ./arch/monster/misc/c_knight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���„PLTE�����!!!#""B!*((---2005I866e0�c1c9B??KHH]„B!ROOd&$d,l'%k-r(%s.b__¥R)%y/*œZ)%0™e�,€6…+,†7&Œ2,Œ73=vtt3“>¾p9ï¥ZjG���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚúÝf��TIDAT8Ë“ oƒ †OPÇnÚê´0Wu®Eùÿÿoà2çGÛd;¹ø>¼w äþ0§Û€ØýŽ!çwtG “̘L¬ú›†Àdn¢t½°š3Aãñ`<$÷à8ŽÖ¾lJÓçq<·ÍýÔ(U×_ßFU½êšH ×NUÒ¬ ê-¤ÖÅ©¿ ×¾S†˜ÆªiÛ¦‰µÞ9BŒ6eÝ>?· gEp¾´ÐD¥ê=ÀHR)#¶nÂú=\| Diž¥K@PJ-A¼|Ã{Ç"™åië.G‹ˆ¡ˆA’fN_V –Z N:›€Už@,ëþ£ï Å|øö*”Å©>Õõ¡ dæt¶= •RµRU2Ýðº–zš $2 ö—í[' 5Øëä &�œá|¯S*ÐLF›SZÓ,ð¡~˜u—ÝļÎøøuÞ±ø|Oô8~Í#/����IEND®B`‚IMAGE 597 ./arch/monster/misc/c_knight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE$d,���!!!#""B!*((---2005I866e0�c1c9B??KHH]„B!ROOd&l'%k-r(%s.b__¥R)%y/*œZ)%0™e�,€6…+,†7&Œ2,Œ73=vtt3“>¾p9ï¥ZK$·%���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ!%F”Ša��@IDAT8Ë“nƒ F¯`½ÓÖŸÂ\µs-Âû?àÀ.ÍtØdÈßñ\ˆ@Ȇà1]7Øù×;¨x4§@‘æ¥1¥Ø�IÉÊdEÄ߆NÐ=¸O#‚»ŽÖ:÷J6‚gkÏGB̯ ¡D£.ãíÍ*­Žd�¦Û…3Ȳ 8ÿ™®OãuºñòBÊŒ­Ú˜ZõÃÐó$+ª²X­ F›¦öûe²¬Š–o¨5z�“¼(}¾¬Ðjöpõ%Ø ¬W@©#ˆ×Ïizgaøj—Ö!bêLdés¶Ìu(ú@ ‚,Vf±éÆñR+ÈežDKSŸºS×Zɉ„V©N)ÿO8æZêy4ñãú:¼ÜØ2P*ÐÌ"£7yø4ß¹ŸEñøÎøüvn(þß¾�½è“@·V����IEND®B`‚IMAGE 334 ./arch/monster/misc/c_priest.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4VŸQ,-ŠVÒi��c2�1�cDÙ¤ÿ�����þÖ�þ¿Êÿÿÿ±!!ïå‹¿¿¿b5¸Æ���tRNS�@æØf���ÆIDATxÚ­ÐQO! àƒq§ÕÑÅþÿ?k Øxìƒç¼,I?Hgoÿ<ÜýXy¹*¯Å.¹éÈóŠ¬ ç+L@|º´(–g{¬©â¿�)÷ÀH*wBùó¤Š�Ü�â;˜z tЋN„ÔϤ´�oŠþ„Z[Ö€5 ”ÜÔ¸K1j.-ÖÌžæXƒèÔ›Ndô<Æ ³`%Ëñ pÈã ïðQw@qâŒ8©Í\Á í@æöwŸž/€a›,����IEND®B`‚IMAGE 334 ./arch/monster/misc/c_priest.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4VŸQ,-ŠVÒi��c2�1�cDÙ¤ÿ�����þÖ�þ¿Êÿÿÿ±!!ïå‹¿¿¿b5¸Æ���tRNS�@æØf���ÆIDATxÚ­ÐQO! àƒq§ÕÑÅþÿ?k Øxìƒç¼,I?Hgoÿ<ÜýXy¹*¯Å.¹éÈóŠ¬ ç+L@|º´(–g{¬©â¿�)÷ÀH*wBùó¤Š�Ü�â;˜z tЋN„ÔϤ´�oŠþ„Z[Ö€5 ”ÜÔ¸K1j.-ÖÌžæXƒèÔ›Ndô<Æ ³`%Ëñ pÈã ïðQw@qâŒ8©Í\Á í@æöwŸž/€a›,����IEND®B`‚IMAGE 332 ./arch/monster/misc/c_priest.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vc2����1�¿¿¿cDŸQ,-ŠV��±!!ÿÿÿþ¿ÊÙ¤Òiïå‹þÖ�”‡ï“���tRNS�@æØf���ÇIDATx^­ÒËŽ…0 б¤æõÿ_;Š‚n6w¼©G­ýøÇhäÀÚï÷#Pûjö,L‚SV² Ĩ¬ÄyLËAç¡%PêL h7 ƒƒ8Ä�qrw�~Üá{àŽH§€]àåP~"s9Áº G ß_' ‰«Î(ÀU.5Ì'é×аW`€ð1Áü0¦`Êõâβ씪ë²p±¨�·³+ÐÝ}ç[Ä"U"ó¸™?h€‡a¿7����IEND®B`‚IMAGE 332 ./arch/monster/misc/c_priest.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vc2����1�¿¿¿cDŸQ,-ŠV��±!!ÿÿÿþ¿ÊÙ¤Òiïå‹þÖ�”‡ï“���tRNS�@æØf���ÇIDATx^­ÒËŽ…0 б¤æõÿ_;Š‚n6w¼©G­ýøÇhäÀÚï÷#Pûjö,L‚SV² Ĩ¬ÄyLËAç¡%PêL h7 ƒƒ8Ä�qrw�~Üá{àŽH§€]àåP~"s9Áº G ß_' ‰«Î(ÀU.5Ì'é×аW`€ð1Áü0¦`Êõâβ씪ë²p±¨�·³+ÐÝ}ç[Ä"U"ó¸™?h€‡a¿7����IEND®B`‚IMAGE 215 ./arch/food/cabbage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷�ÿ�)ŒR½½½���AÊÓV���tRNS�@æØf���vIDATxÚÝ’A€0 äÿoV2Ü›³†v<,Ðê¿lœÀ {Nq¦Ök^0ÁÙ@ %jæQ˜®*^Çkäyõ_RsP\ñ´À‘+¯Ý^…ÎÕÓÂÐ@¥-´koÐ6?5�±8ú—FçÝb꺅X~zâks¸G‡BMÎê����IEND®B`‚IMAGE 249 ./arch/food/cake.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���¥R)µ!!½½½ÖkÞ¥!ïÆ÷ÿ��ÿ„sÿ¥�ÿÖ�ÿÿÿûX.���tRNSÿÿÿÿÿÿ�KF���}IDATxÚåÎQ€ Ð*LdÜÿ¾nH PÿZà‡>°½ä»�÷=àÚ‚PÒ@}ö´vÓlp €PZVë,1xʈ9vˆd#vb *ª§ÉÍÀ®E}™ñ½ÌÀ…½®ƒ42pÒPG`¤2�BüF(ÿmØØyýô����IEND®B`‚IMAGE 160 ./arch/system/mood_floors/calm_floor.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��ÿ÷½ïª7õw���tRNSÿ�å·0J���GIDAT[cø èÄóÏ@âðCæbS·ÿŒ˜ÿHœÿ Óñ€HüàÇ®í_qy=ÃßµE@â-ˆxX âÅþåŠ×£)�S\rfÛLýÈ����IEND®B`‚IMAGE 359 ./arch/misc/Camp/campfire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿ��‚‚‚GGGaaa5" ÿÿ�ÿŒ�¨­×„���tRNS�@æØf���ýIDATxÚ͑ێ„0 C“4iþÿ×6ÑÑÀûZˆKÏ!¸Â³MygÝïÔß¹w÷{»ãð_²Ï 2´p Z!SÆÍñ¼£ã¢ a¯Ã K•†• 9…‚ sdraB¹‰(ßȨ©Š …h")Í!×§afV“PPÍŠ*p VÕŒ,:ƒE¦!xyÏä”U óFö×ß ðÙn dZÐ,µ·Ò0±\LÜ ‰#3‚%ˆNA mÆÍ%Œ1;Å’¥#ÄjŸÈT×5Hï/A|„¸ZM;'?&PÔ š‰wÔ&äIœzGžûÉ—`O¡0¦ý«üÖbªIQ����IEND®B`‚IMAGE 364 ./arch/misc/Camp/campfire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���‚‚‚GGGÿÿ�aaa5" ÿ��ÿŒ�ÐFÀo���tRNS�@æØf��IDATxÚÍÑá’Â0FQ ¼ÿ{!XS×ufÿ-S­Íw‚a*o5ó:ë¯`¥ù"”íó Pµ_€šÑ^UIfwPâ~ žM—’qÀ!Øf³¬¹ÊØr!óA> Ô‚Àmg‹º wX@ƒ¨ÀþÐP·ç ݇­6T ­„¼€ÄÈð5V¡ƒ?AÐ)¤Á€BÈä=s2f¬ ’à €‰¢= �5D ªBRäb EŽœ‚,/búbƒž”%©ùú�‘[ôÀ/Án xƒ¤Ö(U7¨¼ÁnT ö»$¯º»6È«ê4½Þ?üäuò©´”UfnFÞ¬ ����IEND®B`‚IMAGE 366 ./arch/misc/Camp/campfire.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���‚‚‚GGGÿŒ�aaa5" ÿ��ÿÿ�BZ|Ä���tRNS�@æØf��IDATxÚÍ‘Ûn€0 C“6—ÿÿãÙIª ±ñ< T¨6Qå¥å7 Äß@d~¢‘+"ö~õèZL� @´7®¸±…>.HÍŠ¸>Þ—jK(X»€• Ö*Rá60(¾€[ ÝÜÑDšž_ÅB@7„7êl>ènìïŠz‚­ÎY´�sA|Ù™ô·8ü°ºxõW ýÀŽ]�«{$ Þ$B\ôQÕ ‚]âs� €F…GqçC˜©’h;²}ñ{ dA8€ ÊYà‡˜Iù‘†ºA]Di.òP?A\NŸz�̞ī>Üâ¼´ž€ /=�ùMz§’¥¹N™Â³»����IEND®B`‚IMAGE 359 ./arch/misc/Camp/campfire.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���GGGÿÿ�aaa5" ÿ��ÿŒ�‚‚‚Ñf¶���tRNS�@æØf���ýIDATxÚÍ‘ëªÃ0 ƒs‘í÷ãÉòSØœm¡ÕÉiƵêú ø—õAÀÜÿLˆ˜FÀ>8sÊ3[¼Ãç|"”öÑ>ßgxhùJ??´/`‡»ÝL ùJ¨_�ü@C uí𬶀á仦€šÏ„ŒÌ ’zÂt΄+-=t�û�™„a’€å&¿I_«YCÛ/p·�vx­õä€{�¨µÊ\D4}¹å$²ÞÕ€lPuŸÅ8¾ó–_CöYä>¶QéjúM °ù¢"øZ@ùœ j×YÒ—¨  [š¦‚Dœñ®ž€Ú¯ßz�ã“¢w5~J/)Ä S@<<����IEND®B`‚IMAGE 286 ./arch/misc/Camp/campfire_out.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE �GGGaaa‚‚‚Âà?F���tRNS�@æØf���½IDATxÚÍ‘ÁÃ0CMñÿóc‚ªFÚmš/Dø‘8¿¿ùŒ8;e¼"¤D¸Ž4ò—Cª Á3`€û&4ÂDUvTÖòoÉ×ËPF¢U¾°�;¦2³“¹ÊHÜý*ëPÙ zËn ˜/h:UŒÎ”°Û¤7³�~8‡óBš…å¬j61k¾ú¢x30j9,½ùæ"z—å ö�FJÓýàŽ7:xéà$ίðWú�(w`[´ñ����IEND®B`‚IMAGE 162 ./arch/spell/Bolt/cancellation.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4Vÿ��ï&`Š���tRNS�@æØf���JIDATxœc`À ˜@#˜Ù�"š@¼cH˜�$d6� æ@‚ó�ˆõH°öUs6$00ˆ€dU@z@²  S@„œ �;8 Ìwæ����IEND®B`‚IMAGE 156 ./arch/spell/Bolt/cancellation.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4Vÿ��ï&`Š���tRNS�@æØf���DIDATxœc`ÀXP 66 ÁÔ$„E€c óÁ@Vý·¿A¬Èçx�ä�y i ¢ÈelP�™ €J�aF 7 <êÍ����IEND®B`‚IMAGE 167 ./arch/spell/Bolt/cancellation.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4Vÿ��ï&`Š���tRNS�@æØf���OIDATxœc`À Pˆ†@â0ö� –ŸPÆý?#3Áüÿó „®àlm@BÉ H($�‰ á�&`>��Ï0 ë<E‰&����IEND®B`‚IMAGE 231 ./arch/misc/cannon_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÇe6 R-G$‚B'ÌÌÌ•••bbb666���aENA���tRNS�@æØf���wIDATxÚÕл€@DQÅQöþÿKÄb ÐV§ØlÂIx,_ ¼ÔÝÃçË�H�Ôum ¤JpÌ`§8\` B—-H€š!Vn°Roa†°0œä î d‹€B h€™ â­·`JsêMw¬9õ”úÔÌß?åž/BuK����IEND®B`‚IMAGE 231 ./arch/misc/cannon_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÇe6 R-G$‚B'ÌÌÌ•••bbb666���aENA���tRNS�@æØf���wIDATxÚÕл€@DQÅQöþÿKÄb ÐV§ØlÂIx,_ ¼ÔÝÃçË�H�Ôum ¤JpÌ`§8\` B—-H€š!Vn°Roa†°0œä î d‹€B h€™ â­·`JsêMw¬9õ”úÔÌß?åž/BuK����IEND®B`‚IMAGE 250 ./arch/misc/cannon_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿÚ¥ Çe6 R-G$‚B'ÌÌÌ•••bbb666���ô•Ã���tRNS�@æØf���‡IDATxÚÝÎQà Qâ�Æsÿ×m²Rõç Êë<sÄà™sÌì.&q§ÏŒ¾üç¡\fL‚…i»!ž2#‚Úö Ôst®-GxÂö°µe`¶åá=ýVüÖRóp¿´ZëéPH—âôË4ÈÃ&Öbùšfó×tÈ×Þ²jbY?4D•����IEND®B`‚IMAGE 228 ./arch/misc/cannon_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÇe6 R-G$‚B'ÌÌÌ•••bbb666���aENA���tRNS�@æØf���tIDATxÚíÎA! CQBB¿ÿ…‹˜j´]v7o…e ¥<þ…ßÍ7kŸ<ÈÞ'|Ñ Ø? É{÷ô§ÑSÜ=Ãx»žç‘˜òVET Y.T3UÀê$@ö0Û$²ªAM%ÞHW*+Ü9ÒŽôؽ�e14Ê����IEND®B`‚IMAGE 268 ./arch/misc/cannon_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÚ¥ Çe6 R-G$ÌÌÌ•••bbb666���ÿÓÕ‘���tRNS�@æØf���œIDATxÚíÑAà DÑÆæßÿµ-””¤¨ê®‹N²Aó4ŠÂ㟯Ÿ€$aß7"hŒ1öñÞÌ‚ÀnÀT“Ô;AØ$¥phâ‚‘d@á:àô“°�š 4ÄIàDPíð–MFä jÀ”©i“tãEàoõ”2‰/¬u’Tœ˜F%�RÉÃÒ/Ÿë`Ló*öÜþ¥<FïÖ¿'oµ����IEND®B`‚IMAGE 234 ./arch/misc/cannon_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÇe6 R-G$‚B'ÌÌÌ•••bbb666���aENA���tRNS�@æØf���zIDATxÚíÐÑ Ã0@Q£N½ÿÿÃ…e…Bc·îaO»OLPþÝCë{w§Õ±®TFaá ì X>Áx󉱃|ô3  °w€Ð�· t=ÄfÕæ¸v«fºU#Tdò<®#Š@úÈâ\Š@.ùu4Õ¸éEkc����IEND®B`‚IMAGE 262 ./arch/misc/cannon_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÚ¥ Çe6 R-G$ÌÌÌ•••bbb666���ÿÓÕ‘���tRNS�@æØf���–IDATxÚíлÃ0 CÑÆÉüÿîm## M]2”ë¡ Á¯~‰”Ó—‹Rï"”¸¡ÃG2!»Ecã ãÞÍ)l^ëÉf,¨®ùÔÀׂ&ã]øÒ6ç±ÑÀYÜ™ç’ø*ܹ5E¨Mÿ צrRº Üu2ËG˜¿ŸàTpáÁûÇO’É{Ôâ´4Rœ–EqÚóò[ÏÚo%º����IEND®B`‚IMAGE 234 ./arch/misc/cannon_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿÚ¥ Çe6 R-G$‚B'ÌÌÌ•••bbb666!!!���ò‘¡7���tRNS�@æØf���tIDATxÚíË …0CµëxþÿMA¸¹­.Ýy ‹LB]>^„ép‡û±OÄŽûÍA¯Ÿx(`CJXñƒ¦D¡äÃÈÖPbœJ)…Zsæ"ç”Ö¡¥ûË–ï™ÆÍgT°@Wé?€ÆRòÍgV êÃ9lV±0“®Z����IEND®B`‚IMAGE 259 ./arch/misc/cannon_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿÿÿÿÚ¥ Çe6 R-G$‚B'ÌÌÌ•••bbb666���°ãg���tRNS�@æØf���IDATxÚÝÐQà Е„’àûßw¤kµÔ  |åÉ |^�Ïs÷þDÐÝŒÏ ‘Ð"g1¬€†ø“i^µâF¨j­CtÆI@q¥Å£‹˜Ôˆ„p‹ ¶A#%*b^„€AOq¤ð?ŒsŠ}¹ Xý„H.`rÖ0ðºÂ¼î¸oËŠs 0ML����IEND®B`‚IMAGE 2478 ./arch/construct/keep/capitalhold_east.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��ÑPLTE���L�›��œœœ®��t!�µ��¿��n.d4!‚‚‚šF„„„œƒH†††‡‡‡ˆˆˆ ˆN¡ŠP‹‹‹¨‘Y©’[”””•••–––˜˜˜™™™ššš›››°›e´Ÿk»§u»¨u©©©ªªª½«yÁ®}Á¯~¯ñƴ…Ƶ†Çµ†Ç¶‡È·ˆÈ·‰É¸‰¹¹¹ËºŒÌ»ŽÍ½¾¾¾ÁÁÁÄÄÄÆÆÆ���)))LLL��º­­­P)��°pppµµµ§§§£££ôóÍB$¦¦¦��Á��t···¡¡¡¶¶¶¬¬¬��,��·®®®¥¥¥ººº¯¯¯f5A$±±±¨¨¨ÈÈÈ��kÿÿÿ   œœœ��›«««žžžÀ®}¨’Z¿¿¿ÑÁ•¢¢¢¼¨v´´´åå夤¤²h¸¸¸��…¹¦s;ȶ‡ŽŽŽ¶¢n²²²Ä²‚³³³¬–_———­—a°°°Â°¢ŠQ¯šd’’’Ÿ‡M°›f¼©v¼©w£ŒS±hË»»»»¾«y¼¼¼¾«z½½½Î¾“““Ï¿’¤ŒSÀÀÀ¿­|À­|ŸŸŸª”]„J´ l«•^Á¯µ¡mã>v���tRNS�@æØf��‹IDATx^œ˜…®ë:EÏ-Û¡r3_fzÌÌÌüµ¯¾¶d¹Çiw¢J•NfgÍŒG=³Ñ’6Ò‚žÇ×ó´P+=³Ø#I�P×5» ?˜4˜ÅŸ#È·×îÅî-¹%ƒÙÌYÄñczpÁkg`/áoæ)oá5gÓøà>Eî áÁNƒ™•‹Ò§Æ <4þAÙ�oaåSܧ(\9E�>xLà-mÐ%‹Ø`×Åí ðÁb‚@e ) ónª,ªZ°ˆ rT!Xh†URä ¨&xŒÌéL‘\÷ hàCŒ#X!EžÀˆ0žÞß)×Er ܃¢{ƒÁß¹.’k`„Y„²>ÿA¹É5XH2˜Xïï ›"¹­q¶ÜÀ,)ÓEr ¬ZÚ�&ª!›"¹K¨²±)´Æ,òŠâkeSTQU“—‚½½˜q¼Æ,šTU«ÂÚÖÀÆÇ^pÂ̬>‹ÚñËR5el°g ÇkÌ"@+À¸oŠä´�´Ò*ñ(õRä Ú”Z•P>z¦Hª4…tdðŒmÖK‘'h8��%¿fR”ŸEm­´â¼x\Œ¸f¼^Ф ù"7J7,Â?>gŸ!k´$R ‹åhÀ;Œ×KQ’ ÑJ—8/¹µsÚ¿‹èYí ¶)Ê[[;ß±Ù¯‹àòÄHç@%;gGoôé"lôË%‹45@óóçüñdH‘E>:÷î9‹L üAÖ|ô‚ƒ«S :gà¢;y‹ü9@Á·Ü¼š²•î¢ðòAÞ0{4ðÑÖæ[é.‚ˤ s›üÃéá#å.Ê*ßE_/žÉ]„É«»‹ >ù…éÕSqa²·¡³‹ îß¡8q-t¦Ÿººh‹Ï¾`øå>C¡‹0ù twÑ›\›í.Âô]tÈÛ í°,wQ?�ã9ä"k|Švqq³’:Šüý«~Å]¦ßíIä"+ >¼+Í¢Õ%4ø÷>7‘ôÊ »Èå¾b$®–Žû R5P xÂj)Ÿ}Y­Ÿ-ð'#q'er¹—SÞý©´“Ê#ˆÜKkþF!’¸[CîüÅPÚIå»HäŽ ”Þq'uœ“ÈÿðRŠÿ!ï¤Nr¸£";ø‘ÄNª†º†ä-rGM+¦<½›ØIÕ9‰ÜÑAÓŠkþ&µ“¢Ò2w|ÐJ†<Mì¤ò’¸ã6ÕJ©Ô$'‘;š¦R R;)ûÏíØ~`/ûûî?dî¥iª@'vRY™{iš‚nR;© €ÈÝš¦ ÊÄN*W[šE–"±“ ïê'HæŽf‘j4*½“ƒM` ÀfÈ}ôDæŽJÝh¥Ò;)6ø�öø €!€Èس¬ÑøTPUÁíמ�g܇GÛÀ{ßü�œY«Ñ>2÷ÿ•XßOA– ¶‚â䪥þ(Š¢E[Ý’©9[%áxh!±—@5 ×ø‚Ms‡êC#&±¯þµ~ÓÛ޶삺½Û¤ßÌ÷Mfo6ÙþnŠòvN]õ6 âg²p^_ËÀv¶“°¢qÁ­ÁîîTaMykÝ4Ÿ34S»ÅÄûxe¿÷ÛŸ_42ÔÞÌdK™H^¦:Û-cÞÇ/Cìà[ÐãoµkõƒÔR±QßéLÆ·g q¿5@ºn’¥]† ‡<¶ª®¤å”ýg®ìø›³¥Ò‘ÓÈn ’ŠÓ T³ãSS1%ðæëýJ²0[,gŠ4]\Ýš&§2H* yë—!œ‰ ^Jí¬/Í•—*ÂÚA¹Zð‹4H*ò†¼ —!+6m#Ä+ãÕɦ3Õl®^ýte3¹±ºW«’ M–Š?pdb r1,ü¼ÀŠŸÉr5éWgµ©”?•H.û‰AR±b&0í"¾’B\‹\Âÿ2rZÞÆ«u§æqD„)ž§->œ¿¿°ðqþÛ“wÒ??{~úáðð{øÐݘÀ°‹äZ€¶ØŠ_P³<qöKú6ìâ­k×ñºøû+ì¥å Ø{BwCHã..P,ÁòÈÔ Zé´N§»À¸‹×Ö KÏï†ÆÍÍÜé„~$ aÄ‚H’ Èí©NGÔëtÊÍryè ÈC_0Õa0ý¬íyYæô˜3øam[htR¸tÃ�‰‰�ñsB‰G\â´G?ãÞvþØàPhtR¸ÊÙC‰\aËâC•˜„~ƽb±s½‹ÅX9¡Ñõ„‡9“e$ào Hfñ]1O¼W$:4ea(Ä+…nð&TÀDÐÝ¢ÂØ®Kä1 )®DŽŽEAaj‰•Ây)Íy!lb9¬Ácg~!pÈåFhŒÍHWt€•Å ÜPsØE�<J¼¬CÈ5ÌÚG9‹‘@t€• é†2žL�H–ÕŠO3ýD÷aÕñÍÂFI!ÂÜÂ[­ødÁ13¬* E‡å't‹eS Èê[ñÉ‚cFU ‚ã¦ÒÚSˆ>0Ç7ümD œýŸ{œ?Ä5söÆÑ����IEND®B`‚IMAGE 4439 ./arch/construct/keep/capitalhold_west.x11 ‰PNG  ��� IHDR��� ���`���­ù‰«��ìPLTE{ S*d3@@@w=-wJ1\\\�‹‹nnn………’‹p“‹q”Œr”t•ŽuŽŽŽ–v—w—‘y˜‘z™’{’’’š“|“““›”}œ•~–ž—€———Ÿ˜ ™‚™™™¡šƒ¢›„£œ…œœœ¤†¥ž‡žžž¦Ÿˆ§ ‰¨¡Š¡¡¡©¢‹ª£Œ«¤¤¤¤«¦¥¥¥¬¦¦¦¦­§‘�îî§§§®¨’¨¨¨¯©“©©©¯ª•ªªª±«•«««²¬–¬¬¬²­˜­­­´®˜®®®´¯š¯¯¯¶°š°°°¶±œ±±±·²²²²¸³ž�ÿÿ³³³¹´Ÿ´´´ºµ µµµ»¶¡¶¶¶¼·¢···½¸£¾¸¤¸¸¸¿¹¥¹¹¹Àº¦ºººÁ»§»»»Á¼©¼¼¼Ã½©½½½Ã¾«¾¾¾Ä¿¬¿¿¿ÅÀ­ÀÀÀÆÁ®ÁÁÁÆÂ°ÂÂÂÇñÃÃÃÈIJÄÄÄÉųÅÅÅÊÆ´ÆÆÆËǵÌǶÇÇÇÍÈ·ÈÈÈÎɸÉÉÉÏʹÊÊÊÐ˺ËËËÐ̼ÌÌÌÍÍÍÎÎÎÓÏ¿ÏÏÏÓÐÁÐÐÐÑÑÑÒÒÒÖÓÄÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÞÞÞàààíííÿÿÿòÓ����ÎÇ�w‚�T\� ªô~<}���tRNS�@æØf��IDATx^¬Ð1€0 CQîÛI/ IêwÈôÄ·¸NdËÿ,Y’LÞ¶,™™eÍMÙbY8 Ò9Ñ“åv‘±$Ê;pžm˜( ½çÙ–†Ü¿pžmX´$üÇY6 =pI²œe?K„yá4Ë®M3óÀY–Ü0(EpœeÉ.I Á¢ün3þÜ“:à?û»¶{)nZ͵©ä Ãö'ËíÚqy×b rÀ1.â %Š¢¨°VVä膲ÍÁØAÌ ÆÚ13”V"Û‘³kò&Ù?šÓÓ’,JŒ(¦6‡.JS§ë<gŽúòv—`Ø0ûø Ì~iîh0ï÷å™X“¯¢ÞñÇÖüÂa@þa�zYÕ¨•óY\=ëAð‡ŸýÀôü£™¦ëñ#Jµ k–ïÙèØèŠê1ƒT-/‚Lû“�@ü³©£íÁ¤_@¸°Ñ†5/àU;XÏÖŽËÓrXœ_ʇœ¸ÞjUåP­«šÞplNeK­Žö‡ê™ý(i³ kZ@»ý*~<]A´˜ÍuâÂOj<fÖ,Aû»Ý‰Óo¹»îÔxzý%l6Wôäu$;»Måü[/'ÿæù&ôõìÖ«ÙíÔîR.ûÊëºû<ã“§è£ÿö ¯#þÙðkï6°ßÊ¥–²<fÖl†\±_u:@³Ö�þîù.ø*§<Àbänúºz} ö=¿·»×ÛÿÅX¯Ïsod}0é d‡-Ýãm–²©§+ìEx€ÞÑîÀ­ž�ÙŽ5MÐî´;1 Ñ/žßMyÜ·gs~¸¢Ñè ~Rã1۰椎1g,³Z­ooâNâîµÑQ7‹(Võ·åÅgEùzü®X+¼y/Ëï¨A/_ÜÇcÞFÖl ³R+ õT”Ú‡Ô1·øÖ·Eƒh2Dlbí½¬¨b~^–l°)ò“Œ2–ŸQþ~qŒ˜×p kžßUªtŒ XSÈj5¥ÿè¤gtˆFT)uMÞª«:c#”75ª 5,[ð1éõÑŠ5Mð KЫ9c—ê ¸#qO$â͹G^`’ø úQ^8ÒˆÀI6— r¦8E ‡V| £×÷„S ;Ìö˜ry Ì‚‰ µñìxv.žâ[ÁA­PÖ8…“\døþùû,ûæèõ'³I€²Û7†à9SX‰]Î`Ÿ 'o<h.YÁlC‘ߨl-¤“(³£Ã£#˾azý…ô·¾J%8w _Æ€•õd:Ý\²€²\òšþM Yô„þ)È˾ä°'09¾ï¥ œ7…5ˆø FFæ>uNûGàeീ UU9£n®“FŠÒÂaÙ÷Ira¡/5šíàØ9SØYSPÄ—ØNl¥¶wû a:6W«hB¨E£ ‹¢bÙwç“îˆgeb%1ÁÀæ¬Oaú†E¿BÀ14Öjìc@IF±€gE4(.6ЉÃk!k–}“wB;÷Çz½=``³ü>Na¬*{�&r[¾†&À´�” JœÑàDë$¨’e_hÒ1´µ2›K¬ƒÀæ 6§ðª Tðîà˜{²¡ À¬ªAÑÎ!ª‹–}éPd§küúħ0ðY R~-SXÉ«€ÄÀROð£8 j(58†§I:´ìK¦ï%“^ï˜×K“ ¶NamM”ð¾§O“¡H$î^Ïî@:(B´â|$ ˾ˆ'1è-8fÁÀ—ÎLÐÞØ…kP6×ö¨ßˆ#xÝÓÅUfòÆ\P÷U(àj­DͲoçþ\¿#0êqcÏ$ÁKF‚vJ/M-@ÂoÁ+Yz‘b+öV’ªA۵pš$á}ɲoh‹ûìÜd ÎÀg'>…i¢¢�£r£]}ÆŠÝÀ" áHiãp2cÙ·ÓE‚}tÁò`“ d1ʼn½"°¼y•[5g¬ØÞmH€½WÔZ‰75˾d’ûc鮨4A®hJQØ,|¯sÜ6VìÝ%i(*˧9œ$µìô’`_HÎÀÀf×nl ;‘TYZSð{ðÊåÜs»lÅëç 2YµVBx,V,ûú¤XS‰Ôp |ÉĸDK¥¢’gbWÎ?1˜`+¶çA3Ó" º¬è–}©q¦Xî‚;Ý!£lT5i™‰^9O`ÈËVì{�ª*H`fZ Qÿ¦ BÁ²/çŠõù:øRóLY¥…Z?�`Tî…ÁX±n�j$0Õ*Nq¢‚p¤P³ì»=ÛP¬0ÀœÒh»˜X˜†Q¹ÀÍ!cÅNÙN¢¦¬iyD›$A(kz…šeߵцbwLP ÓvaˆÔ÷º•ç|œ»ñ€í$ÆEO™N‹Z QCT˜Y[“‹ 5ø´à3bÖ+ܹ‚ÙvAb¿¯\WŸûn_Ÿÿótšª=²ÈN…e•0ïä·ÿ¤áe4&>-øŒ˜uÅ wƒk‹%­.¸Šiž;o" ~Ñ£ÉÇy:tœ_ÿQ9¦áµ¬Sƒ&k÷ñ˜uÅ wNð±¤s±À÷âæ¹s; €_ôJ‡lôÐAòP“7Ù¹gžöUéâ>³®X±w^‚3ó:‰…5 ¿W1SëýÁ®á¾¯ÿãåÑ6×3 ð9_±¸QÑE‰¾§s[+KÙÙÔ–à=ê¼,=̨´5è{ªÊ>Ùv®¿¸Çìvp=ܱ‚‰… ©¼†éú¹³»Çw=w+èN¡~yVK™¢øU@åQ^Ø2ê|±X@W¼öÕc~äz Ü)CLK\,l�ØN�ØM+4{Bà—G€XP¨j:ªjU%#Jì\q¹“òp=w® dˆT†ÐüùÀG°'´^¿<2ìNÔ¨,O—ò´¶«X7/ì«Çº“àzÆ�wúY2±�äÿǪµö&DQ?ãû‘ú®©©Æº«~hÄ Ž b¥¨Daµ>@ÔAð‰¨`µZ€×Çuö³Ý.wÉ”t?ÜLf²gÉÝM8çܧ=ñä#nEgÔ!W˜·¡  AZó&ÀÂÙæ,TnÛË?“˜5k²*ù >¸_¬B’¨´|ñfXh!ü½brbr^OÑÙI Rש/ÿ¬‹9ÂÆ Ég åéK²PðÇx˜£y„ðs—`6Øò&˜ÅÎ$æDâ/I>ãëKYxÑHXh•¶Q‡¹n#žµp±`C½1À™Ä<eyä3þ¾‘è TÀFÔÔ˜– 0+j§˜àLbÞ¿{íà®°Ãgzú@Þñ’c•a…/ÄœÜ$ü³´ãÀõö…& @Äò`ŠFD”JÎ(©2ê3É %öÐÞ„e)�bf3OŒ(OŽè I>‘ñ¼’Ž‚[©QæáÌl_œØCOpÒ¥�ˆy½f•X-ÓN¾$úB“2> MPÇAŽ­ÔhM9°µ6ÿŒ3³x•ØCHîåGòVb86Bö… :>€&è ¿b4 Å+vþ²3d_²Ð ãm¤”ÊRj´ê™$ª™±‡²œˆav1ÆŒ´^¬L; > MPõé½Rj”-NeÝ™±‡²œHŒOåS<Ìõbp#GǬ,š î—£Ôè°;•]œ™{(ËI�%Ê4cPH-i4AÝ/§«Fƒj4ùpÌ«iP–S�®(ÓŒUÀU:µ�À¯‰8Õùr� Æô«(‘�€ëɺ^¬R ÓTîE¿ª²³OpF/VtjA\›·'r/ÚU¼588D_´S M28£_±à­ÁÁ�_ôS ÿ{µºÕ¶™ ê$ØýÈ“ôJ ¥„’ ƒ Æ„0Æ#Œ0BÃ"L1±1Miúƒo §ÐíÙ‘¦¶v•(!¤»f.V›“3GÃÌ®ÖëûcôŠ­Ø#+jTWhG÷4Î,fw“ |]ݵpËÃújɳe¼Z-î®®'ar-¤/»]Jð!¦ËŠX�íÓ6m±¢¶ àx½†«Ë㻢”‡õ Œ2½ER°©V ’€pÅZ Óî- +ÓÒV¯áëòÈ®…ÌpÝMíÅ'‰ÃØÞ")XAšÀJÜÄAX¸AzJór=¢›Íõ–G‡tLPÄB®.Í] foì^ÐÃ<[`[ƒO `%xŒÆÉp=Юðkƒdçv…lÐï'—ö–÷™ èš H­×8ñtiêZØõÌ^<]§3ô£üy�yoyœ¬·«<AÇ!Ø×íγÑ(dÁ@¾€èAÑO¬×puiîZèY¡Í£d0žÏÔá§cÈ‹ÖSyM>?r3˜hôy¾É·[ù’lB-Ìlø–^ãÄÓ¥©kÑP(-0‹ø¶±._¼'ÚÁ6ÌŒ;ÓÔ¤†·±ïñ|ÿ˜n¸Àßt3ݬ,s¸º4v-:Á=ùÿÁ¾£¾&ÃZ~Ü&¿‡)Â×¥©k@Gz;¼û,·ƒô* gÉ|˜…p˜÷aþN‰i2¬%È?Î !Ö8 ÃÕ¥¹kÁôöªùRyä77ýåÀ'¶ù_be2,ù“ŸX;¡Å:�døº4u-PçU¼”Ç)˜ÿ—“•T³´Öɀ眧bIEN9�d¸º4w-쌄ªg:í%VÖx¢LêA @‘áéÒØµ°/’Ñ®zL ß:í-TZ½$­I] ä(2<]Z ] ÌDFBµZ0õ_(1)XIì¹CR¹�*½§Kc×Ã{Þ1A½Gj(1M†ÄQR9�Š O—VCׂ!CŽ=´¢ë1¡ôE)VbWe¬ðë%u P@‘áëÒjèZ`H¹AYqõ˜ þ£(ÅJl››*³£œ,ª(2\]~^×Vk³ƒV\=&¨ÿG¥þÈVø]:OÅÖô}]"H¥©¶é¡ú´Q!ø„áèâòó»È‘ì4T_|øº<´†Éμ¿çë¡ø‚ôž¯ d´þñ¸_—?„›b´Ú&����IEND®B`‚IMAGE 221 ./arch/food/caramel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÿÿ�¡���™��æ��æ@�ÿ�¡ÿÿÿ¸’*���tRNS��v“Í8���rIDATxÚí±ƒ0ÅÀïàÿ?¹‰Oi•©K¤šáàì(Çc8§kn|$å×êšAÊQrg0WC´ŸXÀÛGEÝ{PâLmÑ/YW$ÁÌ@Hô x¸é Ë{Ó’Î^õÀ.;î†ûþ'ÿüŠð”êjQ����IEND®B`‚IMAGE 155 ./arch/readable/card.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���@IDATxœc` ` ‚ ƒm,ÁÎX6kæ20céÒiƲ¨ÈY8¯\¹, ÂX e,Ë„jÇcŒwE��Î=37—(F+����IEND®B`‚IMAGE 217 ./arch/readable/card_crown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE� ÿÿÿþþþÿ¥�µ{�÷œ�΄�ÿÿ�ç”����@ó²Ý���tRNS�@æØf���iIDATxÚÕÑÛ € DÑfŽ·þÿ‡3‘"kŠ 6ø¶˜óàô«æ¶À18ì² jO¸fÈkàËN€�ofA‚X@€.¤’Üxäê ¨Ô�÷ô_ jc€w@ÛôýƒËj˜����IEND®B`‚IMAGE 249 ./arch/readable/card_cup.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���RBþæžþþþþ¾ Žjþæ¦ÍœþÎ?N:þØ\ó¶þî®þ䮀|Zu:?©���tRNS�@æØf���tIDATxÚÕÒKƒ0 �QÆvþzÿÓ–°+UÌ ©õ“,[^þ*®}ûì!ÀH"L�"’ª0Ô‘33gqŒ^VÝJfºaÕ0hÒ—dKZ`„p/IÇ|ÀØ=p?è€Jk­¸kŽû¨kËïôЭhì@ÉÓ����IEND®B`‚IMAGE 179 ./arch/readable/card_dragon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEcmaþþþÿ��ÿÀËÿÿÿ°Æå���tRNS�@æØf���OIDATxÚÕÍ1À A¼Nþÿå\„ òQ&¬èndÚQÝk/sß6�½ŒÝ�ûEª0@3@‚I¯�I\ ]“¹€vUƒÑ¹`­ý§ø›ÿ¼,Ñ����IEND®B`‚IMAGE 221 ./arch/readable/card_ring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE€?�ÿÿÿþþþüü™øà`òÄMÀ @ªˆ4hT€p ���äöõ���tRNS�@æØf���jIDATxÚÕÑÑ € …awR·õþìBÌ: APÿí>ÐiúUûØÈ9°˜ ‰gw�æ�À&¹ $ç�µPÐ[P;  Äñ´0³»îªÎ�:@ªþDk /±ô eE´Ñ„����IEND®B`‚IMAGE 189 ./arch/readable/card_skull.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿïïïÞÞÞœœœ½½½���ZO ���tRNS�@æØf���SIDATxÚÕÒ1€@Ñuàãýo,•Æ5`»;-/„‚±UçÜïdÀ\¢˜yH´@Ð�ÿA}$§.P»Dx*6ÜãlÓ˜ëtÔ¿éÄr¸b����IEND®B`‚IMAGE 182 ./arch/readable/card_sword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEcmaþþþËÓÓõÆ�¦I›u���tRNS�@æØf���RIDATxÚÕÒA À DQý±÷¿r³ ê0.mgûÄö«=ë6ÐçÝ�áAv ªkP]ƒêT7 ºDÎ<ÔÐâ�w‚¬Àõ³®}g/Ýüö&YÝÆ����IEND®B`‚IMAGE 251 ./arch/food/carrot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷�ÿ�)ŒR¥R)���ÿ¥�•Ÿç”���tRNS�@æØf���—IDATxÚÕQÃ0C˜û_y1!ª2¾W»©Py¥ò_Bêg_¡ úAmZÕÀ7®}„- \úBoÒð Œ1%Œ{�”„©UÑ#amޝ¬pP¡#AÔKX½†qÞã!Nîüœ÷!ElÇñÈ*v6$7å°gFUæ7˜z2¤Aò*W%á-±4 :‹z>‰üø™zÃë����IEND®B`‚IMAGE 187 ./arch/misc/Container/carton_box_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEa‚B'Áq8 îUˆ���tRNS�@æØf���]IDATxÚÕÑ1€0 CÑÆÿþwfªÔØHb¿úuiÖ—"s øÞ Ðê€B§@·@ìd€*ÎÇ2ÀêO€]ÿÉ~‹�qÍ�¨‡Ï�òXOÀ°Ï€aŸQÛ_vuÕâÖÒ ����IEND®B`‚IMAGE 209 ./arch/misc/Container/carton_box_1_open.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE‚B'Áq8 &$ã���tRNS�@æØf���sIDATxÚÍÑ1AA˜þÿŸ¡eÎÒIÜé”D@ô8Å:ñuwá» ¼±çìßEÛW În€D%Ð#jîÒzÿ‚G@½rýÉ ˆ(,€h ñ¢»!ˆn:¨ßß»A¥ÐŒx¼ø]И³¬\hÁ����IEND®B`‚IMAGE 341 ./arch/construct/castle/castle.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEçÆ÷���c1½½½œR)œœœ{{{cccJJJkkkŒŒŒ­­­ZZZ§òB¸���tRNS�@æØf���ÙIDATxÚ•’‹‚0 Ew)XãÿWéî‘x—{¸:¡M 8œ8BèWP ¦w:+œg Ÿ¡BXƒB4„`7¡! �Œ¸Ø)jÉut…4¿|.Âׂ~Å…,ð¸B*h8ÍA5I`Òªè07Ø›`07øÃ’¹ÃÜ åÖà0 <5| S¸6\‰SŒî¯g‚Bù'÷ƒ€!K¡ea{l]åm¨AûCÐù±ÉÀvhUxîD�ºìŠ�"ýYëº@v6Ab‚$ wóϲ,иð:í [dì‡����IEND®B`‚IMAGE 915 ./arch/construct/castle/castle_a.x11 ‰PNG  ��� IHDR���@���@���·ì���HPLTEÿÿÿ���{{{½½½111¥¥¥ZZZ��{�1�”ÿ�ZµœR)c1œœœsss”””ŒŒŒŒ„„Þ��JJJÎks9RRRÏoµ���tRNS�@æØf��ùIDATx^­–鎤0 „);áê¹ö~ÿ7]…ØØ¥€Ø[#¡ò×ew“ÉÄ€éNÏF@Uõñl„ªõšðl„@­r x6ƒÉŒc0­x�„ñÿp*.�ÏFˆž†ÈÆЇ‹vµ;Êp&#8°Mª€B dæS@¤µP)PÁ¥æF ° ¤ÖÚ² ƒ�A¹ªj”AÊH€ Œ“kY–UšÐÞ¹à£IµµàÆT¾ •×ÚQ/ÐøóõÕ�pcú| PkPr�f¼ �h®·03r�¯Ï�OÃ3€¸2K‰‰ë ¸"€(À‰ÃUýÕséÆ�l਀×78 ©`Æ ì¢ž�>Dh/·dfÌ-œ�IDbˆõº‘f€^3€ô!ÂêC-`ÀÒƒ38ªá-0@ÜH€Åêͽv—@aF7R„mYr×S pã”»}•‚ € (ø„·À€Å�6ƒæèc˜¡|*3 !äˆô!BG‰9Ï@ÄmJ3œõß”ï0#¶ `ÀÏO廸…}§D7ß?Þù=cƨƒ ¼¨úªœ67PE6ò×(±s¹€*ù§;¹›€*°�pƒ ÀÆÜBÞxD=€ÏT¯l|àõû…ÐÎEMïx½Ð9lDâêäJÞ^x'�ý‡´'€} 㥠6Æ’¶8wW6¦·ñb‹sw…q"�oqî/„‘×Yi‹s«ÕQŸ<ÖÎõz‹£´Åê74 Å‚‡ÍúJ�@Ž �7ެ>Þ}; ±:ÀŒ9ÀFüÝ�3ü)ˆ‘´wßÞVÓ [r€e‰Ã0Ï<Á@E�§r�ŒtÞŽWv8—õz;„"À–�û‚³±Ð¶8 ž²‘ÿ­ÔƒÛÀÛf„�ÄC3ÂëãUh2Ûîæ�l{{¾‡1&XdX7%õòÍûò¿pų–£ÙRý_y¼+ÕÍ‘Û����IEND®B`‚IMAGE 908 ./arch/construct/castle/castle_a.x12 ‰PNG  ��� IHDR���@���@���·ì���EPLTEÿÿÿ���{{{½½½111ZZZ��{�1�¥¥¥�Zµ”ÿœR)Þ��œœœ”””sssc1Œ„„ŒŒŒJJJ9RRRøß$���tRNS�@æØf��õIDATx^­–çnä0 „wHÉu7íÊû?êÅ2ͦð—�Äð5±½zDÀc F€¿Õ!nÁMËÒnÁ�°,Ônq F=á–,“aÈÆÿ €Öô€F!¹~†‹ã:î(ù4cа‡˜P'ÁŒyDKëS~T-f ÌZ–…¿¥€;3Æp”µ Tzj´þišf:„Cæ­Å�‡˜Q‹]û„£º,Däú ì�ßÞ�Ôøð€¹• � <€€p­Ýd�€}?ÕÒj£`“�ö�™&e�1@H (•ŠMา�•&�"„‡çóyÕkiÆ��)€a Xˆx*¸Œ e¥&@”3P�ADD¢@u Êàì· @gˆÈýÜØ)ƒmÎÁ4ƒÖ YBãs0I¿¸çÓEàN¨£á_5HTz‚Æóø @ð� çóZÂÐ2hŽC§–OQ—À8C÷"5ÆVŸ‘Úzi°Y  ý¿8Þ!Æ ° "à÷;Ç;Ô9Iàëãïà3Øì9”K$Àf ß´ó«ì6ƒ˜á–a›Àv.Ø£1>H¶s¡QÌÁH+È@46À*�·ñ°~�ﮟ“Q&°ÿÙqv.,zaßw¸~ŽF˜5Ü0À玗D£> ÿ…þ⃋h´(oq†—7ºw¡ßâ`t™ñái‹3¾`Æô6Î~‹3Ö¬Æð]O[œ±šsoãºÉ‡ÃÌ¿‘ÂX¸ŒÝç@p�€Ú€»ï‘ôÛ»"­*�é�åê»oTH5 êøú·UT¡_`š €.�¨5&˜kÀ¼"í &`šÏv  7jÿlL6@�LpÜu›D B0®ÐÂÝ´ß�Ê4ãÖú °áФÚ< ÔOãv  ‚ÌmZãÊô¾øëÊ×_\²š7ŠþSà,<ÒA%����IEND®B`‚IMAGE 1711 ./arch/construct/castle/castle_a_east.x11 ‰PNG  ��� IHDR���@���@���·ì��PLTE©����­­­pppP)È·ˆÈÈÈLLL¸¤qº§t)))®®®Á¯~��tååå��ÁB$À®}��ºÍ½···É¸‰µ l¡¡¡µ¡m¶¡m¶¢n£££·£p¤¤¤Å³ƒ¹¥r¹¦s³žj»§u¼©w¾«y¿¬{L�¡ŠPt!�¦W¯°€Ã±€³³³¨’ZÆ´…µµµÇ¶‡¶¶¶ª“\¬–_­—a¸¸¸ºººË»»»»®˜b½½½Î¾‘¾¾¾ÀÀÀ°šeœœœ±œg¯šd°°°d4!¸¥qñijƒ¥¥¥¨‘YÅ´„´´´Æ´„£ŒS§§§©“[¨¨¨»¨v˺Œ½«y«•^Ì»ŽÌ¼Ž¥ŽU��…¿­|À­|­˜bÒ–ÓʦVÁ®}ôóÍ®™c¦¦¦½©w«««£‹R¾«z¾¬z¬¬¬��›¿­{¤ŒS›››°›eÀ­}°›fm9"ŽŽŽÁ®~¯¯¯™€DÁ¯²ži¥ŽV³Ÿj±±±´Ÿk   Ã²‚´ k‚‚‚µ¡l›‚F§X¢¢¢Æµ…Ƶ†§‘Yǵ†„„„·£o’’’œ„IÈ·‰¸¤p©’ZɸŠÊ¹‹©’[“““¸¥r„JÌ»©©©…J¼¼¼º¦sͽª”]•••ξ’ž†KϾ‘ÐÀ“ÐÀ”Ÿ‡MÁÁÁÑ•»¨uÒÖÓ׬—`ÔĘÔÄ™ ˆNÙÊ ÛÍ£­˜an.‹‹‹Ñ5t���tRNS�@æØf��>IDATx^•V—õJ|^KÛ¶ñÙ¶ùlÛ¶m[?ðõàÞ/›ÉìûRÙí9gNu¥»'wNÝ �@YTè‰@Ï¢É×Á0·yn�Å9Mz"°^8†F@CD«È8Å`U“¯#Êý,ÊØ§ÐáÆ)%ˤP$ 'ÂtM�•}UAO„ë¦]Œ"{M3RȬ1Ó+ÂH(ñ}H¢Z‰+¾Ö†ÄAûb�‘wwÙp³Þáb虬M¯ÎùÙ¤ùp³(€„Xú!±äCã%•È\Óeû øíC%Š â¦ @hBD 6·ÄºvmÍøð±dÕC=SSõíP‰rˆñ¸ïG¶”_#Ò®ëŠAof‹ø)Ýã'òÔ”ƒ– !«Ñ x‰Ž!Z@ĉ™ŒãôÐ ~Øù)x‰Ž¢ 'Âò„DÆ ü¬P²S€‡X¹ ª€¶ ZI#¦ %¼HñÇCŒ¤e`eX$ %RÙlJþË|ŽbSÕåûŒ•dÒ–<sX²S H…µç;¤€Q`å§w¸Ù\´GpI´ ©`×Ö¾t‘±)Ÿ†CHOcŸD{NFá\"°‚hÇQL3v¦, ° ` ê\ì\Œd  lÂò²ÿÖâ] Ÿ,þ¶m‘ èg`çO36¥+Å×öžüì¦Vä6œÁØb3ÊÅÍ·ªû·lùŸÜq¡W”‹£%�WWjwÖ=êmAýŽðç¡ßQò_ܸõ1Œâcùh̾&€‚R!YW‹™Ý˜ñ |  ó–g_l³+ß¼x*‹¨àåÓØ1­V@}m£ñB××SÈÁó~¥†hñ¼˜z ßw¾r¤¬Š*𾿠(+¿ÖëNaö®žó—·‹P�Shœ­ÖžBÕùæ¯nÿœ °Î•ðÐf7kO¡oíl{ß$ ܆‚�]ÐA§À1 à©ãoSg KH^Ä66Y\¿É²r*,+„ɺDÈ­”ý&Ë a²‚ò&+¡LÖúÍ<·²'ß±ó¿Ð÷ߨš e²dΙþ³w?9YGßÿ¦ù·B™,™3Ñ191ë¤ïÿò‘–0&«SæØ÷¿[•ü˦ï¿ë¡=aLV›Ìø9úmô„0( „É: s¾èø{­úm{[òâÈÈ0B˜¬—dNòž7ßk;þÇOî=ZÊdQ€ú±ÇØö7�¾[ a²ÄRâñuÙ-A%êMÖáûš�|úp%6$ u&Ë1X/-X^½“éÝø�…¨3Y~|¯û¢Ödx¢¡É°ÖÁYWˆZ“ÁþšŒcX½Ýݽÿ°`á_¸‚¨3YlÛ bàËÑð(³wK/ X¬*¡Jôš,jŽëÐ ‹ò»·°`ÃUˆ^“åˆñPb[L Q˜,Ö\FD€ŽÔ|•§'†ÇÑ›}Pµ’����IEND®B`‚IMAGE 2431 ./arch/construct/castle/castle_a_northwest.x11 ‰PNG  ��� IHDR���@���@���·ì��PLTE "skkkzzz‰‰‰„„„fffgggaaalllnnnoooqqqrrrtttuuuvvvwwwyyyccc‚‚‚eee………‡‡‡‹‹‹›››†††sssddd{{{~~~€€€pppbbbhhhiiijjjˆˆˆ^^^ŠŠŠŒŒŒmmmŽŽŽ”””•••———™™™```žžž¡¡¡}}}‘‘‘   \\\“““|||–––˜˜˜]]]ššš[[[œœœŸŸŸ___’’’��;e;DrDVVVxxxYYYZZZ3Y3KK<h<ƒƒƒWWW™bHXXXÁÁÁ©ï©²²²UUUÅÅÅ|Ô|kI@¸Q`ÿ���tRNS�@æØf��IDATx^¥—Õ–+ÉEç$3“˜™›/àáÿÿÃYÖmä–{K+õ²ãT²B?íJÃOoØÛ$©ëwÈ_* 섹‚×þMñ¦äÿ…VQ=©³vÿ­‹ÒPØÊ› P¶œeîq ™_Îpé ø8[Ì//çhÙ»Y�X>?þüùîÖÞªßüßÜÙfgO@zþúõùë—/"é-Án±€¼'> {÷îË—G„o È/Üå.Êçç¯ï„ ‘[ÙçCþäö"€ù«(mŽ€�ú�¼x�ÿ…›bµ#Ð á¿ÛÚ ðj�ê%_«•Þåq4@'äÜ%vŠˆAÏAo+ @DmÀK(@iL)-%šÀƒŽÊ–ó±›A¨B¥ýâ¬ß6a,™$Y2Š'Q>9»›MŽóiÚ… %Y&Xìâ™ÔBi¸¸X­nüeÐöþ¢¬ÅWN>*â*\ÇÝrÓ³©W´Ì"�°iPVí¶¯T+å“òþêýÏþÃ@ùÛé{ø°h³—ØýyùŽ«Y<DJ(ue`P>PQÄ×ʯ(WŸ®>|ôtUS5�%¸@Xñ[¶e±. ‚‘‰Ô#ÀûŸ®~öß+§¿^ýª(ŸV Æ~7$Ä'HKpº#Ð&EKµé Z€¶’ý°«Bñ}_i+W"+HO 5÷k(¢T»²åX”UÊÐt¶¶ùéæãÕ¯W777ïOF;Tˆéír)@á¿SÃŽãRgHd�-]×@ˆ4–z] ,ÄGåÔWÐÕˆ*¤÷‹4]—à®Àª¥iztcÜ€ £Kª R‘d¿"uðb„t5 8IïO6³t�‚½(µ)“|€¶TM”ŠÑíª*†õ¬É3¬dEA:ß\ÞÎëµ±Ú-K3ÿ£( Ãlµ€Óp¥€ÕǿǵìЀÍýÉÉf½ùv½àþ}F §/“.:0CB4É”´P†À–Œ/­Ûûûoéòäv³>9àþ¢(•ŠÀTÍ–aº­;2>„ûo,ޱ\‹ò­Ó“Mºñ_½`d~%¬À€.kê¸3&Z¨H†£ñˆÿñ[ t}¿¸Ý¤éfS‚¯î*¢tC�Z«ej¦*Ug,ŽØð¿³8Áý­èÁýÅzq¹(Á×ïÒAÖ¸§é=MS˹sö=ãœãbsq»¼N7¢Ž<pᯮ`Á›ZK7tq2¢$ž2ö}1–a)¸^_/¿-RX¤^Ø ªZ¨š6&- £a“õ‡“dĆ °NoONÒMz’v¥ðPY­`Ã4]obddI=k͸ž`Â./Óë4M—|-@H(Ðu¨aHTÉkG K’ÓÉ\Ô1¿…oëµt0¢@ÂX'mÍ2´BƒyNëØü{2d˜>Ù(ÆÉZLÂ<=ôò‚¢< ªºh„\uÕt-¥O§w“d:ÇÅí|)ºðp@ ëË�dLT[kV]§Z­‚sÞàµdz±hŽò·pI¥0è|€ÞRU°]ÃsLá0žñ˜ƒEÓéÙc’`}ŸÞ·ø:2¨�P‰®Â³©ëVAã¨Æéòš¨â°?Iúýr N¢Œ­ –G)5Üòù X3§¼Éq7zLÊ7/YÀiåaÕîÉ�uEþ®g Á#΃&ƒ(‹ˆnæg#NWî*^E@⸟5*§0¨^Øž‡ˆ3ÖdAð( A¡?M!õ¢‘Ðó;8œ‚áÉý§&êŒÆ”Óœ³ +• w,´åGÞS@Ë‹t6ŸÁÔB¸†áQ0J… D8E€)N‘ˆv$—°ŒÕ¡%kq ¯Ñÿ úqœsÆû<PF‡5àzË-aööÂËÓã>ª`‹X0ÎY³tΆAÎbø?¸ùþá%ë €sˆ°c–ñŒG¼_ QÕ€Þ w±·â„ /ËÓB”ÃÇè6}F9/?´ ÿ…»ÛÛÒº .Od�X`2ðø`:By¢÷Â-PÙð<¼ÛÚð²¥ _oiÈ.ÙK¡¶ÐÙ H@ýniÇ«-×v§P¶]„a(BLö¶´êþ–Ö+(ÂU8¨´1ÙÝòV–ªµP®çðŽ(ÖjGA³^/¨[«çu`¦¶å’»Ýʵ\ófÖ˜¡Ö Œn6 j;®[4\ê}¨¹µ:$Ý6œxÈbÖœï61 uÛqÊÛ›'°=»jq·^xç¬vÄëõ:ÑЪwÉq wÄÍ÷v¤Š£šã€ft9Á9§®ëTífQu?<==¹ z.¨Ká…cçy’ÏŽg{¦æÐœò|±œáÜ«R¯êzG}ú埿<¹µ*­¹.Ñm»­<I“ÕÀÒª„< ÿ¦Ûtn»®ð¿<1—~^NMÃpFwÛÍöv$bh®–ŒOgˆdºåxÿxGÕ²V1ôfÖä‚Ûlϰ#–ç|6;si@9­{Gçô©ô?ñÔi½É07Êx¼Á¦ÙªH±³9Ú8ª;.dÿ.µ¨ëÔ ÇÁÀ0Æ墨;þÂ`XÕ–ÍóÜË'3ˆö7<VPÏó¶5ôÄ0‰ÎË)0M}B³<_ïßg"㜱<½yÓ · ‹ìÆ:舊ýõMƒÈ€Q:<~ÅÁ˜Šñýõo7ÇÑ÷ÿõÿ¡õ6Úù ����IEND®B`‚IMAGE 2428 ./arch/construct/castle/castle_a_northwest.x12 ‰PNG  ��� IHDR���@���@���·ì��PLTEs‰kkkzzz‰‰‰eeefffgggaaalllnnnoooqqqrrrtttuuuvvvwwwyyyccc‚‚‚„„„‡‡‡‹‹‹›››sss†††ddd………{{{~~~€€€pppbbbhhhiiijjjˆˆˆ^^^ŠŠŠŒŒŒmmmŽŽŽ”””•••———™™™```žžž¡¡¡‘‘‘}}}\\\   ___“““[[[–––˜˜˜]]]ššš|||œœœŸŸŸ’’’��VVV;e;©ï©DrDYYYZZZ<h<KK3Y3xxx²²²™bHWWWÅÅÅXXXƒƒƒkI@UUUï¯ú¾���tRNS�@æØf��IDATx^¥WÕ–,¹ÜTÈ Í̌à —iÁöÿÿˆ³Üwv»=íÙÇé£z‰ EfªTÙ¿ì9ðËx›Yîmö· ÚR[)áu|#*G 9ø,˵¤&Zü·.r à¨o*@Ýñlû䀇>’Ùæj:‡ëÊo( Àù|vu5CÓÙÏÀâÝ»oß¾Ýo`_ã­úÍþÃ;ŸÁjÈï¾|y÷åëWò ¿%ÐÿɛϡHï>|ýúé-å…wµÏƒ õÛ»/$@¹å}>¶à/Þ¨P¾@ŽÚ�bz $. /¼ –{m Á‡¦€_PËùÕj/Û �>–¡üä]a¯ˆèw]tw eî�~ÂÎ`Ây.Ñ�Î ”v¼�ûHªiâLR[gÎ{½Á c!’qRL†ñ¸œŽÏï§ãM:I$§@lYQæ{Œù·‘——ËåEp¦ö[A?¸PÕ¥ªêÉÙG•žÐà¹ÞŽ79ß»…¦UC�bÒÔe«¨¥þRý¤>_?ÿœõÕ<#h«€Í9qý×+p=ÝŽ$P’äŽôó U•Ë ¤^ºþØÐ54]ÓäÄ}R)h:¶-:�™Q˜ÜeÀóÇO׿ÏêÉרꧥŠQБ ²œ8Ùh±BSsø*š€¾T©£A ‚@m©×däšü€u5Igð°‚J¥ÚPl׿¢”[3ÀZŠÔ"æ§‹×\_\\<Ÿü†–¤²@²»Å‚ˆ¿WöëqwÀ�MÃÐÁ˜<’» /ÄGõ$PÑÑ™¦û‡y–­râ¾À²©ëFù¼�CÛ5¬$+AInãŒut8ÍN×Ó¬†œ;\È À–ššn�jÉìt4 ƒZ±±TTÙl}u7¯Væ¡´š¶n…Át¸f¡`šV³ œHTyQ½ÿ¾AÖ§§ëÕúóÍœˆ‡÷/¸=…uІEÒeKÖ%DKD’ ¼öp÷ðð9[œÞ­W§§D<¼3Ph†j©�°4«iZÃ1Fm„Åhƽïß÷b,VT¾UvºÎÖÁ«ïÌbP’J0a(º6j˜.i$ƒáh(6?~Š$­æwë,[¯sâ«»Š© €ÞlZº¥Ñ¢iˆ„ˆËbðãw'x¸£<\®æWóœøú{ÃÚhÁuu£«ëZ~î•CGÿ"Š"\®/ï7´ÿjMÄ#þò6ü‘¥7 Ó ÕTPN≆äB± nV7‹Ïó ö¹+µhšÞeš®XSÇpЈA2Ò¬²»ÓÓlfíc)œ•–K80eÝ0š&ÅAM4ÂF\K0ÈWÙM–e "¾`L’†Á4Ibƒì7‰ÁX$I‚ÉxFuÌè]ø¼ZÉG02Fké¶©tX·¼æCе8˜<Ä0ÆéŠNÂ,;öñ‚ª2œ¡¢ j„’êŠåÙr šLîÇÉd†Ë»Ù‚ºpvD (%�lÄ4Go‚W<·R©€X"T“ÉyY”gÈß…+v,…~÷„á;Œ¦¦i€ã™¾kQ|(¢bGåÉäü1I°zÈZD|ëç4fhðîy×BXßV#>àQ•ª8è“^/?PGO¢‚˜Û眛^¾‘‡¢‘ò¨á~ø˜ä_Ž à¤t¶lu€{”¿ç›¨ÓÐ… ‡åb‚º™žÁÚ¥£Êxå€Åq¯X/ÀäFÁñ}”#!",‡ôJð0,¢7N wËCÒ Ú8ž‚é+ þs 5Ácñ4a1Wª Ü‹òŽçºÊÚX\fÓÙ–.Á3mPl™S8'•¨Lv !&8ABíH®`›ËcCÖü ~ Ôÿ0-÷☶zQL¸àƒjàfÇ[ÀêH?‡§ÇT BQI(¢ˆÌSpq¦"@ð“7› 8>d£DÉv,ŠQ‘ZÑË…8/Wî ïò`Ä‘À^†§sH ¨Xð]ú‚“ýxo¢Šà…w0¥uÀþžJ()€ñ Àã#€ÉùŠî oŽÒž@ âìÃ÷ÀË”6x=¥É`?yÉA %©‰öN@jÿsJÛô],w¼6° ǃ$IJ_Âø`J«Ni݇´”ú¥ÆûSÞÒÖô&ràfË9ý|^­nÃF­Và^µZ¸u¹ Ó´ô/¹ß¯¡ârÛ‹â¨Q¬OQ­sÁC¯ÆëW¨{Üÿ^õª5Ȇcºñ@Ä¢1Û‹'ï†ãº ÝÞÑ&ã;;òjÿVT·Q­Vä†Wü-d×5½¡HDyúx0#•\Í…¼È“)Ü[îÑ}æ4 ïûÓÓ“Wç·$À=ŽÀ,¸Nš&ét3=°t—§b˜¦óÅ·~…ûÏßÚüé×þúäU+¼¶õ<f8N7$­4É’=eßÖ+, £â€â^ë{ÕÈó(ž~}ÿNQ6N,Ót‡÷ƒ¡˜Nf$fêž^ E4™ŽAɺ5Ûõë ø[²D]ÁÒe¦Ñ ™ç‘x{²ã›NY¤i4n@û…<â5{ËŸòø-ù©ñZ²i¹^9%âæÐÁ…®;¥&Äù .¯ok®Ç©‘â?%à6÷ÜjÁuÑ7Í‘Ë#*ö^<¦]i:Qšúéx jÝîûþ®†>&²t›ŸË2Ƽ˜¦‹Íá}F§B¤1õæMÐU‘o¨ÀÈàe>ä4¿¾ P‚óÁæ愎Çâß¼t°‰Ë{¼ÿû¯ÿ¿\‘ î²ééC����IEND®B`‚IMAGE 2980 ./arch/construct/castle/castle_a_western.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé��òPLTE�����„z]xiN‡w\jbEˆx]‘€e“‚f”ƒg–…i•‡pš‰m›‹n•„hriMjaEulPwnQxoR}pZ€qU‚sWƒtX„uYw_aK>jcL‰y^‹{`Œ|a}bŽ~cdldGmeHi`DpeDnfI—†jogJ˜‡kphK˜ŠsqhLp ’{ª™|¨™‚«œ…®Ÿˆ¬†kcF™ˆl­ž‡…vZsjNQC:tkOyjOkI@Šz_{kJzkPd[?{lQ}mL|mRypS}nS~oSpTe\@{rU–ˆqf]A—‰r|sVrV}tWœŒošŒuvfF›v•’„žy}u]£“v¢“|¤”w¥•x¤•~§–y¨—z¦—€ohPvY©šƒ|vdg^B€wZh_CˆZD¡‘tzr[cZ>žŽqueE sngOlnkŸ‘z¢’ulb@~uXe^G_V;£”}i_=vRDwoXbY=pkX§˜™bHx[rkSª›„zqTka?o_?g]<œŽwŸrx¥–cY8|lK©˜{zjI’fj`>ndB{s\ƒqQf\;qaA}we¶²¤ÅÁ³YþübX7€zh~v^slTtdDvnW`V5`W<p`@Ž‹}\ÊÁumV‚y\ÇÆ½wgGâ_Qü���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ6gA&�� +IDATXÃW…vIÍ«f”Ôj‘%‹™ÙÌÌ3;3Ó„g’aÈÐ2ÿç¾¶œY)ö$[G§NŸÖ­[¯ÕíS§þ7àpœúèø=Äã¦`ºý£ MGÓÉ_à>~„‚OöIe¼Ï[³lÚaþ ˜k8»ýeöA^þtãú:8ñ0@έ-ol¬À°£þH¹ÙÔÙÖÖvñS˜™€ùoåwnÆÒ Wššš:›ÎžEâ"¸kÀ:Ïž]_‡dA_7Ý»wöìeôƶ;Ûšqõ8ôŒ¹©©í$À³Æù„ ÀŒu¸ `»ÉxcÒ OÇŒIþm:mLîw¸ „ëÒQp×Þß»@{黌“×x’©y'v6ÛG¸ ¨s"ì?Ù‡µ?’Æ>ë@™Å5,îžañ©9�8°B¨†sCý ¢æ‘ø:r㇯£p.«TäÄl"!ÏʪœgeöÚÅìÜgJFŽÞœ‚‘ø|²Öê(Š#öZŠ­Þ ‡{Ýæ[e÷-w/ÄÍf73zð€13n°@‹óL —¹VGpåÉô°mšãð½”10árÙÍ„öÃÌæöÄí¿ºö™¿ŒÞ†oÒ˜Èv0€›P_^Aç™þ> ÓŠÄMè†[f† š™[h;ÄL\˜xp+­} Àsõ¡àð’}&{C¼5Ùom¸ýàÂÄ/îÛÌ蛉7 s!Ì@OС¨o(ÈÀLA™šîv°aL‡!�íy21Y€ ºÝL™™p3ÌÃ0ÐÞÚékÇ¢-¸ºZO°mwÚI"d˜f¥�¨r2ZFä…Þo&z{{oþ?DnPÁ@~wkwê !žÞqç8e¤À°ÕªA{{¼'Þjx“q›0£ALÕ‘¤ _ZËå ÉÆž/†ûú„^ý{øþ3pÉ2T(žü&OûAQ& ÝWÍ•ªÅëù»¬'¸BÈM"Ń:"g"CÝÚ�MH7™,¨øÔ�¯ÂóäßÌ_.¾Þ½¾^(èïYP²÷qÁèçÈÔÔȳ±ÁA€—Ñç7@ò]ýYôªÿ�ܾXªV‹…âÓGklìgdz'–¤LX¶(Ei—l—úÿ4ñ�9!_ýÙ1Ø-•žæ¶ª»ÅBµjlcŸ˜äÌ¡P ³ØŸÙ¾µ. ô¤Sù«.ÿIEØ,äs…B®Z̃ÇîQƒ¡hF``^ëèINõGº§ar<u5%-þø§Š°•+”Öv‹¹\±h�õ*Êl2:»64dëë´ièA^’DAúûÿ–DJ»Õ|©t§°¾±=áf‚(•†2Ø{Z5kkŸfiµv÷/p’ÈK_©<ÏÃâêîæ¸¡ˆÀþ‹ °Ýcë¶Ž ØúŸÍƒ ‹ Râ«qA’TØÄ<*<Ú|ºžGàq‚+O¢FÞt[´VÊ¢i=Ô©J Ÿ“S‰Ê$@!¿[­æ‹ùj.}Ò¾…Ãà€‘KýVëÐÈÔ³g̃:éSý\@ôÉ0›€ÜæëÜ£\.¿i�PT4ŽÄV«•êŽD¨ .ÑCÀ§0&eÈÌ­ sùÒúÓB!~’Ô ¼“> ~Ðìº6¥ÁXë£!±ò•\‘`ár%‘¡ZÀLXÎtyÙLÁx´)kOkÿ¼‘ÔÛ»£VK|fáÕœ¼°«»Ë[…ƒLA ˜=”e©oXËéñx�èÇzåÌ5!!¬€Q ÔIGØ2JÁ'00héîp¸tÚiÃõœÄ«¼Èƒ$d®–e(”ò¥2Ú7,èþÒjÚÁ¶´xœcÀù›½<gy/,ÌVbs“±¬WOÌÄä»ÖÑvšeYÝeì¯N („ðp1uY6n8Ydaý‡ÂåVäa]×N ­ƒEÏˆÈ ªÈÁ¤,+×R@¥MI“ùX`›Ř꽄Ö:í i°–'pX„ãTˆ-¤2"¤/˜~¿ ·k–éô6`ü‰ | O^âTƒÉ/ÁEI†x çÜI66¥4l®æ®/_‡±þ(´ŒØ× „ç„Å'^øÄwÞ&£ g2çä×` 7Ь-”(mmë@‡�ãÏ)BLq{>Æ‹h‘ØŠ—GÜnml­ •‹!žN¯ ’ó€ÄI‚4‰IÀ£ñD"ê8§H¢d(”¶CÜJ‚ï4ÕÄÓ9ÔH˜]'ˆ’Ši$ð1ƒˆ¥ÊÃÎ#ÜjƒÄ‰ÕV?H#ùŒ} _"Ȇ?kæÀ‹á.6¨4PGê)ƒ¨xÖ„‚ÓÜŠ!® u•Iª xxDpo ê”*Ípp$ž.FéP¥UŽ«´+@ádxQGŠBºöÆÙ÷»*í³[{𼆫¿[ I%g ‰&ïFa¶A¥yUÚÃo…ÈóÈÝPæêUÞ {‡6\K±G+@7³l3Khâõ6sŸoš´x½S];Ä º~þÏ5œüªÞ‡Û`íg°ìª? ^?ºžsùˆŠ Ò5ío!ô'^—×ñûKúžXIˆ‰ÀJ}£Q«Ã¹3™JŒó‹28蛞¾Å7MwÁãÎÇàêÀ÷ÐÍßÛÓߦ¤IIÈžnÐH!g‡­‡#*ÙÊdÁÙ…íÄéq¾ƒÇHðül—Ñ!ZXêßî-)ʤ’]Ì6Øúwˆ’H)ÊúVºhK{\¸áãC‚Çà!¾f—KêþÒÒóK‘órAxFó´ó¯Žãú€+àò»¼¼Ëõ‹ý„°¬FÏëú^êU%%e³õ…ðœÒµMÅÒYÈÎb?¦¾'ío™9:ÂL3š„QðÞõûÔ<§³s i‰Öo ’¢ðÙì"H.›J³mæÐ‰3høü×Ï﹋|¯õ;,x4Iº¶ NÖßìsºRrÖØ§wÊé„}]ÿç6¢6¬?ºÝ3x“W”)³YÀðûié;–¦iR#ÀdB“ºŒ,8þþQes±±Ÿá‰IRDŒÍ‡þÖ#"|&¿ßQ{°¦ÈêÇ>{{öŒ.QY<~+è Š"§>þáýV©|* ðÿÒ÷_b•&t'B����IEND®B`‚IMAGE 2979 ./arch/construct/castle/castle_a_western.x12 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé��ïPLTE�����„z]“‚fwnQ‡w\jbEˆx]‘€exiN–…i•‡pš‰m›‹n”ƒgriMjaEulPaK>xoR}pZ‚sW„uYw_…vZjcLldG‰y^‹{`Œ|a}bŽ~cdmeHi`DpeD•„hnfI—†jogJ˜‡k™ˆlphK˜ŠsqhLp ’{ª™|¨™‚«œ…®ŸˆkcFƒtX¬†­ž‡€qUsjNQC:tkOyjOkI@Šz_{kJzkP{lQ}mL|mRypS}nS~oSpTe\@{rU–ˆqf]A—‰r|sVrV}tWœŒošŒuvfF›v}u]£“v¢“|¤”w¥•x¤•~§–y¨—z¦—€ohP©šƒ|vdg^B€wZh_CvYžy•’„¡‘td[?™bHpkXzqTrkSžŽqˆZD sbY=zr[Ÿ‘z¢’uka?o_?g]<ueE£”}~uXngOcZ>lb@§˜e^G_V;woXª›„i_=vRDx[Yþüj`>lnk}we{s\ƒqQ©˜{|lKcY8ndBœŽwŸrxqaAf\;zjI´°¢Çƽ¥–bX7`W<Ž‹}p`@umV‚y\’fwgG`V5€zh~v^slTŒ‰{tdDvnW 2šá���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ ÷ùVC�� -IDATXÃW…vIÍ«f”dµ˜™Ù’ÌÌÌ ±ã8ÌÌàád0“™eþÐ}m9³Rìq¶ŽNÖí[ëêÌ™ÿ-8\g>¹~±˜Á™nû$DÒ‘t2�Çß÷S*å9?Á�AÕ+{¥’>æ­Y6Ùl<•Œ5œÅr·Û /|·zk¬ÖØ) à„óË ««‹0Ø\ïR®5u´¶¶^ù¦Æà´ø-âÎ/ÀHºàaSSSGÓÕ«hCì4‚—:¬ãêÕ•H6DðqÓ«WW¯^ÃhœB°ÑÑÚtˆ[­ÇadŒMM­¯p!úv˜ç6�#Ô¡ã,@‚&ý1®EH#TÔ#Õ7ù·íœ¾9>à2¬#HGÀQ{þê�ãA¤÷ný›¬oî9ܸéláV¡.ˆ°}y.Ö~Hêç¨\3òȾÃá鿹3~€3j8Ô{1 Ág¡Ç?|óÑh"!ǧãqyZË)qZU¦o^ÉÎ|¯däȃ xŠÍ&Û`¹Ž@˜b©•ØÒý`pß±c|Zr<uì³lÐht°Ã;×Y#ë�Ø­gk¸ÌÍ:‚‡—'«“<Ï¥Œ€ –J6°d±ÏÆžýêØÙfÿ6ü Þ¦±-į× ¾½œÖ³½ST&!Š0 O,ë4²OÑG€{4vý©ZúÚ{L4¾¬Ïלƒó–©8ž ±–d[¬¥ àÙõGc¿8ž±ÃoÆÞ°ì£ ÝNCHÞ Ó™:‚’09ØÕ̱�èÛIgÈ`Öép°%vÌÁ²c,ËB[K{¨§ ›¶\@àÒR=Á†Åj!ñ€nšY�JÉH ‘ö¯½Ûßß6ü üz,8C�ùÍõ5Þ¯o„Xz×F¬£‚^ƒf3 mm±îX‹MÖa¼Î;Y0ÐB{R€|y9—+$gÜìééS÷µá'økß=Ó,Xòm –†K 4†¯’+WŠ·ò/XOðDŠ95DN…ºè>lš€f0˜Lð†ýTn'ÿh„üBñýæ­•BAûȂҀ¥g„wî@X‡&&†.ô÷ÜÜ~ ’÷󃃃0x|±\© ÅO–Ø8ÏÈän4)°=ªA ïUïõþ{ór\Ö RQØ,—_äÖ+›ÅB¥¢7l㜘ìç€ 1Uû/U¿4Ï÷u§SŸóâ¿ÞDEX+äs…B®RÌÇî ;‘� Aß,ÝÞþFè uMÂøhêó”´÷îg*,Âz®P^Þ,ærÅ¢<6«£AŸìôÀ@µw¤½¿Jc)IUéï~–DÊ›•|¹|¿°²º9áf‚ˆ†Xº[hsKmj1wõ¥ò’HýE’(Š‚ûť͵¯ñüB' ü;c`¦»Ú3hê«öô_šUç¤VHaXCžž¬½XÉ#ð8ÁÃ˽nºLt‹`¢éna€†TÂ?OÈ©T<1PÈoV*ùb¾’KŸäÂg`šaè^¯Ù<04qé’�³Nx%?ï½2LÇ!·ö>÷$—˯éÀc‚‰!±ÙlºB!¡]€{Ì�PñÄL\—!3³ˆqÌåË+/ …ØIìñNú¦Oø¶hô #œ— ÇbB‚¹k‰xJ„J+a!wÒåF£�;à¢'ÌÝ-½³zQ»ªg-ÖZ/Q™¹ogä¹EXÚ\XÇ,ìœ@`p¢hÀrèLó=ƒÀ¹lV—˘@æÐ#gnªquô^XNraûò°�¯¡¯ßÔÕÐlÓ«†ïó¦D $53wóœ,C¡œ/—xÜa[· ë'³ ˜fÎnwÙG€÷¹=å(ÌM'¢3ãÑ(,—N¬Ää‡Ñцãì.ƒç‡ /ùBù)¸’º&ë7œ,²°ÿ;ÁR òp6ô‚±ƒEÅû‰È«a‘‡qYVn¦@H’ã±<À† ŠÑ°/p†8ó¤ÅeÅøI’_âU[‚ð|¢s© Ä.«)äs¦?nèše³˜—^‰ˆ„" %ñaÉ'ÁI†X gÝM6¥4¬-ån-Ü‚‘ÞØ/ Ÿ"*¡ø8á…RU*þ·É0È™Ìyù=X†‚"k%JkëÊ*0ÀüEŠ"OE)- —ðPˆûºCÇ-¯Aµ¥Q#¡rÑÅÓ¹ETr.)I•Ʊ(4žH$<Ê+’(é ¥õ·˜çGM5ñt5¨ÁЩ¢Æ2R©¨NDˆŠRåbÇn©AâD@h­‰$ˆ�%ò¢~.A÷%BQú‡DÝ<xЂ#Ü••f�¡ãH=eЂ0úWp›YÔÅ•®®2©CU^-CR§vŽÄÓ•Ã,ª´Äq•ö„#œ wê‘~H×~À<{W¥}ÿt n×põw $…dóY…"É—˜nPi®F•vñË¿Cèvèe 3õ*¬•Ø“E`ÜçæC<7ï÷z'‰Ýã™èÜ%Vдÿ©áäoëc¸ñÎrÛÞöeÁãÃÐó6/ñM ð¬mÒg'ÌkÍã…ØóymKLÄŸ±>‰‘ˆ¹Ùº;žŠR{243\S”Ý;ÉÀ…Ž àõbW`ƒ»7Ͷ´/RÒ¸¤fÏ5h¤€µ½ÚÍ“0YÏdÁÚ‰ãÄêjöÃ$¸�6׉œ§öåÖ¼¢Œ+Ù½lAµw—(ñ”¢¬¬g¡“qqŒ>O.\�‹xÝ6›ÂóùùË<Ö—"çå:‚àöíj£x*<Šïûm~›Ïæ¡l¿H6î5á8 ßд­Ô·‰””ÍÖ7ÂmA£ít[g.;ó˜±z§¬ŒÏ~äB'ãF“0+Üú§öÜšç\v¦A#Í3ÚUR*›ÝÃóO(*îÎà vºÑ/ñú ¦Ýز© ÷-ø‘îm6¡k’ts¬œÏíµÚ&R:$ SœÝê™°Za[Óþ´…C†„Þ?šÅÕÿ€R”?+ÓYÀôûé+ŽarHÀ`1¡Izܸñ|†„em¯qž¡ÇŠ$)"ææÔ¥}áH¾—?ž¨Ý}8�SdéS{»·ô)‘Ø;~+hsŠ"§>ýÇû %ñ¨Âÿÿ—þ“¸ÿÉóÀ|•‰rŒ����IEND®B`‚IMAGE 449 ./arch/construct/castle/castle_west.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���*PLTEjIB���O;!eP3mV8ycD‡qR’}`šbIž‹m©˜}ÿÿÿï˜W���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ�Nüƒ��IDAT(ÏU‘=n!„Ù@c,/'È |ƒ)sm°ËPá";,ѹuãv;×qƒ”¬,í*ïñãM¦>Á B°:í Ê;) °v aemÓNŠîÖ5€&W-2P pÀ ¥6˜Š‡v”âœ~¦èpTó>*UNø�d€TÀ! 3áf1dÐ<}œïîøú(I¥d>Q,¯K,í¸YKw›WvW€çr©–£Ü%ƒéP àr@+GGN™÷Ï”CHË1xärˆ©–¯©ïûõw¬7 §m"™óE¶öUËsÐÜ, Dœ°¹âQN0øyKãhÞñç ƒmªË›ñÚ,D·&ð þ´P$*?à/%±×Æ@±����IEND®B`‚IMAGE 1438 ./arch/construct/temple/cathedral.x11 ‰PNG  ��� IHDR���`���€���òq‰���sRGB�®Îé���!PLTE������1��ŠŠ-ŠVc2cD¯/_¿¿¿@@@�QÜO���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ +¸î`��éIDATX혻nì: Eí*@ªa%D_U„õIeÌt¬„£¯¼$ýЃÄ®àÀm‘KÚ¢‰3Mÿï5ßð¸3\¦pg|Œ1¤ë!fŸr¢x9ø¨ðbˆ™§ç¯†�èÚø-�3Äx%§9Æ#^Z'·†+g�a@º ]‹0Ç\3„ RÍðç2U”áÏeª¤+æœ[†¿Ü4§t]taVY†ùíž&"Ë ïÇg˜€†|€ñòD‡'Ãà WŠ×_†ÁGÊa€²eðã²Á”Y`| ȼ„>_eÐåWÁ5†™¢2ø« ³NLÙ_eðá&ƒ÷æî1°àƒÇ› éÃ,Áï0°�n1pÐ{^‚·¼4'¸Ã ã%ß2<ZðÔ1ß0ÀW/è½äÓ«b�·ÖΨ÷RÈÿ°0@^žFÐ2PÆga€„M„Oè½q) ,xAÍ@àyÈÉúœ6 Xð:Ày\~Œ fp3 ƒCyj;Äf@�à@na ˆõy âTÖ€ÈÙ §O­50×^ F°ôÞËŠÁ‹Ž‹?5^úDYøÂà³LŒûůøé»P}8)òÕ\coîX :Ó,H�Ï##~ðÓ ÄÞ…ÁçŒø|ç4¦nߦ±÷É€› —‹ŸÚ÷qºU’.U€ˆËHp2À&¨#,k+(n†=£*B a 8X ‘š«û°·nùÛAå%æh#ô<bÙ‡¬©5À âydnjÈS_¼1Ÿ^òrРàhFcï²ÀÖò«±÷Πu¬gð>¯ÆÞ;ƒE�ÿ½7PÇà}{ǽ_ÚÖÝÃRGÈm!û8«7ÿÄ:Ž�i-ûÌu°=êÖc6H%>-ïÏC:e¤2·^’‹ÿb9Î3Âãíyˆ2„‹ão!ugTÝZ1Ô:*Vå'|¼;Š@"8‰+ßÚ9µwÅ@ ½º² €áë{\½³*à!¯íóÆ[”¡/djïŠA‹±V½_`s‘ë Y©Þ¨‰x)ZV¿Vžøé{2ö. ¼±<DËj’Òêl]:«w>Ë*ßù“ejï —z.k7Õû(B\ääéa«÷ɰ!Ô‚åßUïìON3 À'Ʋ xK!äwÕû<e$gÄ2Aè[¸æ<ì•`yõ‚¶×P„:£e ªÚjrÏÐôÛ†úÒkì�*�Eˆ¶oE*µ5u¾XÖA£«ÚjŒ C©Þ› 3R2>K¯BØÄH¯láè5`CàE*»`#¤½×ê]»ì‚eÀ­zóa­vèþûµ×àzÒ¯žÛÆwE‰‚äd—¼Axù¡È'‰Ë#ÏÇ=°ApÀ Ž›Z'YTwø‚ÏBSgÜ!ð¯ŽgëŽóSÞ¹‘`»\o¤½W4n%!ó2ˆ@nñ¦÷‚§ǸÈ]Æ‚ýr$"í$Eù†’ h¯›~‚-‘­;¤ô«_.èûNð)Úg¤ï§`³ÃÖàúEj,(‚4£L'Â)ŒäýÏ{E 4#u´EÐ÷Ó{E î"Lw¦»Ó]„É/blÉÈ ÈûŸ`wžA°Îû‚DcI¿»´"����IEND®B`‚IMAGE 269 ./arch/misc/Container/cauldron.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���¦IDATxÚµ“AÃ0c üÿÉY@-È2œÚ=fFë˜ç×ˈ™¹UĹ"wŰóm‘‰ßÒBW�Laì‚YÙ8ƒ›°\Ð]9Ç ˆÖ"JÃy^Q¶?±ÄFi„&Á]¨/™sªiBÌ¡D꤃_ö ?Å$hËkŹ,^Üœ<…ÇF¡Hâ{ÆòM·Ó¬`ÆaþgXFa.@üôä û·ÄaÓ ����IEND®B`‚IMAGE 254 ./arch/misc/Container/cauldron_open.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@›Ô©Ô���tRNS�@æØf���IDATxÚµ“AÄ ›Øÿsë‘¢N»>2C+¸~('l4h±¸u ìå$ÝgðäL¡r®À>Øé+—@[¸%/†ó»ÃV�fƒ£hƒ£o唚̆Êà 2ò?d�ÐÖo(÷ NÔÐóÈ4�lxœm[ Å4_„K“|"\¢5ÇLw§?ç7ã9Ü£Ýÿ‘/%š ôŠÄ����IEND®B`‚IMAGE 306 ./arch/spell/Bullet/cause.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V�ŠŠ-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�³†ÉŸ���tRNS�@æØf���¹IDATxÚÍ’Ñ„ D‹& êÿ¿wÁ“˜‹¶¯{ŸPÆ™8´TD¤#àŒ‚&(‡§�~jÏ¥ËñËP7D©_©ÕpÎb<Ä‹™�Rf†µçé€ÁûÐAûS:_kt°)éª ÌY’÷³ v�½Â‚™Ý7(_ïi£D·&Q¿A!GQ0 ÝBUz:­Ÿë¹9x˜¦ðh•^‚™²#‚Dj0†¼9dßÕŒð;Æð"Àocù3>ŸX µç7����IEND®B`‚IMAGE 281 ./arch/spell/Bullet/cause.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�‡ Èj���tRNS�@æØf��� IDATxÚÍ“Á +Óýÿï5ô ‰´ëÉÄ9²“——n?@Í1?D—\¦0XÐé& SN:œ·}wøÎ`õ:— „Vïg J‹g¥•GôÂÙœºÇÑ£ƒêÒ°ö(5ÖM ´rßÚ0zi‹!R"b>—tÀhÁæàlÍZz®ïjA³ç6ë%Bj�˜ÏMQÈ¿œ?ãX`Ý�X4����IEND®B`‚IMAGE 184 ./arch/wall/cave/cave1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���]IDATx^mÍÑ Ã0 Ñvg³ÓÑ>‚œ² ä °‘¿÷Að>iÀ+*WÀŸWLXì°óg@Ô‚¯¥‰pë\a‡å†rÈ»%xêäh¸Ü¨Ü ì1u¡ðº¥k†j]#]����IEND®B`‚IMAGE 200 ./arch/wall/cave/cave10.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���mIDATx^m˱Ã0 Qzˆh3qciÜ”!íÆÎ üæBÀ¬ýAÖ¿1ÒÜP_Ãb½±±/h||¦_8lì 4�Y„|jšˆ¬H±÷/Vã`™©FZÊ¢c킼nŒj´ž8„q!>Ù¸4ñ»îië2›Æ§����IEND®B`‚IMAGE 201 ./arch/wall/cave/cave11.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���nIDATx^uÊÁ Ã0 A§¹3²_?T·U†ü°„¸ÇØã¹ñ#rÇH¸ñ‘­Ú0pNVÁ¬Æ©�¿!¡´‰¦çñéåW½c6õÂé0 ¦U hGˆÌhôG-àô/|-POS¹ðeˆ_P^m����IEND®B`‚IMAGE 198 ./arch/wall/cave/cave12.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���kIDATx^eÌÁ… QK£—œzXzHªü.^øšÓ»LŽˆv¬}ã|ƒ,¬ »<ûØ1厠¸‘é¶AazánÌÞ@Af!tÕcÙnÂiS�³äÅùÛð\è;ÖôÀd¡äüö¿fG­8����IEND®B`‚IMAGE 205 ./arch/wall/cave/cave13.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���rIDATx^mÉу@ Q—FØ= zÎêAª2¹K2†¯}3 Èè|‚ó([T²÷ ÙÊŒ %pœÑ²'J@s‹P³Øq‚KÇ<Q’0!ç F;ß d²'Hc\ ÛÕ :.(ÔX z[pfÜ0Ç„~Ø¿}4ÆY©î8ÆÅ����IEND®B`‚IMAGE 202 ./arch/wall/cave/cave14.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���oIDATWeÈA1 @Ä…™Í!âcsPöÑ^'½þveJrâK)„Å7"K¤7°Ü®â m5 ¬ÔÈ \[5ªV²—Ó å‘O\nv¦g�àbúA‰x—„·Ò,}7z"n`ñ(¯R’3@¿ã����IEND®B`‚IMAGE 198 ./arch/wall/cave/cave15.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���kIDATx^uËÁ Ã0 CÑhˆx3i‡pqrÊÂN $ÊÓ;|ßÅœ;?øFæ†(qa´z¡$¿ÕÀ‚|cÈä ÅLM¤K^-ÒØ�ô/´×©Yx XÒlm'ð‰LÍã´!v°ûJç2êB ’Û.����IEND®B`‚IMAGE 201 ./arch/wall/cave/cave16.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���nIDATx^uÎá ƒ0 „QFËœwÈ̓½ÃÝ”5¤ˆªùõä|²¼íÛý~1ÿƒãÞ0ǃãöH}¥Ö•—qŽV´®¿…ÏÜ,+Òpº£Jg”¬ä\f}Šœl(ÓáÓ£ã*±7dëø�52Gü³`$����IEND®B`‚IMAGE 162 ./arch/wall/cave/cave17.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���WIDAT[UÄ!‚@��À¥pM£Cñyø¤H%(þÍ„ †„4‚€°a…G7ú'ﯨmj®Ù“ûpYJ?§×—8y/ ˆú5%40mÝ ‚ó±�ñÖÎ  œ–no����IEND®B`‚IMAGE 147 ./arch/wall/cave/cave18.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���HIDAT[c` 0 NÁ"ÞÉr$ˆ`Ÿ #ø@b`Ùï0‚½Dôƒ ‡y@1ñï’@õåP‚]ò'PýËö ßêãRÓé����IEND®B`‚IMAGE 152 ./arch/wall/cave/cave19.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���MIDAT[c` àÄñ•(Ï@Ä|81D‚ˆï 0¢Ä2¡}F”¯,``ø'žÆÀð¢_Jd¾«``œù¼áAù<�@z-,Û¨����IEND®B`‚IMAGE 178 ./arch/wall/cave/cave2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���WIDATx^µÆÁ €0 À,Á>,áîÐìïàLIˆ(R¿Üë Ö°‰€Óø’L`dÇÉ}\|2©%U¿ÉQ *'+”è!½RR¬ä¼†ŠXâáTÚ¹�n5‘ßw����IEND®B`‚IMAGE 159 ./arch/wall/cave/cave20.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���TIDAT[UÄ!‚@�ÀId¹�^‘Dä­7 ‰‰«ýi÷™¶tñ9aìsM~•îŸúga[ƒG¿­å`˜p,­w`­š0Â+Z9!C½ºÁéêß &:)L0òj[����IEND®B`‚IMAGE 220 ./arch/wall/cave/cave21.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���IDATx^mÏÁÃ0DQT„\‹ðªm=†Ø*¹Äž —}3ÿ„™ à4û ˆ× s‹Þm‘»Û¨ÕÁP¦Ùáòð<í<™×t@~ÛŒBµJ|}$ Á„ò/$+)µ¶Òy? H* Nw6Vn-?°b|?\"¬1vï¾8]¥`Œ#����IEND®B`‚IMAGE 128 ./arch/wall/cave/cave22.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���5IDAT[c¨ÿÁÀÀ€ ØÛ`DEÈü$æÍ€ó+€ÄË ñîœx�$Þ7€X 0‚z��ãÿž”Hº‹����IEND®B`‚IMAGE 126 ./arch/wall/cave/cave23.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���3IDAT[c``¨À€BH†— ÖO Q÷FNòå@‚o&Œ`)a)fƒT�TÏ**Ž����IEND®B`‚IMAGE 120 ./arch/wall/cave/cave24.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���-IDAT[c` 9ƒŒ/ÛO Á7FÈ— Áé@¢î9Œ¨)a�)®—� f uà·Cd����IEND®B`‚IMAGE 122 ./arch/wall/cave/cave25.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���/IDAT[c` -x'Þ7€X@Äñ²H̯�ófÀˆÌo@¢¢H°·10��O;¬ŽÙÅË����IEND®B`‚IMAGE 185 ./arch/wall/cave/cave3.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���^IDATx^uÏÁà CQ—æ"Øí!ªÇ[„~•ã Þè¢Ñ=ÿAìHwëÀɆd¢À¬þ6ÕÀ:˜äÅÄGÄŠ¤˜^TD[ù³®YùσáÎ(/r'ì,{¿����IEND®B`‚IMAGE 171 ./arch/wall/cave/cave4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���PIDATx^ÅÈÑ €0 Ѳ#Éñ>õñ”XU%@âŸûzº»ßmd@¥’ Js€E² Þ h0éAÄ-³zÄFKߘ qŽ#úºm³LïãC����IEND®B`‚IMAGE 181 ./arch/wall/cave/cave5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���ZIDATx^ÆÍ„0P("t&=ìô=0U®&þ~ñà;=YœDÕòQįx*+Ö(2IY9Ïá=­ÈØ¢Iâƒ= #¯ 8bµGs dwƧ؇èœ?>2 8È&¼����IEND®B`‚IMAGE 172 ./arch/wall/cave/cave6.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���QIDATx^­Ë±€0 CQ2„³Þ!Ú'ÞÁJàœ†Ðâê,ëÚßèhGcÁ´ Æ‚æ¬O$/à•tR;¨ù@TW¡1n˜ˆ§l™œ_’"ãžâ‚ô����IEND®B`‚IMAGE 176 ./arch/wall/cave/cave7.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���UIDATx^ÎÁ€ DQJ£ÝL=°=ìVéâ rqÌé~2I9õù‰òuŒC\cßðö¤.ã®d3O€-²äÒ@©Î0Ù^º¢Ýq@9í‘-bAïÊ����IEND®B`‚IMAGE 181 ./arch/wall/cave/cave8.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���ZIDATx^ÆÛ „0 À-ÍE$îá\ãv«<ˆ—Ä| z¥ÑŸ¢ø9 GÜKL�Rm¦ÈSHåŒKÑf(•"19Ù–H —«È-e×p6ã–ü{ÍåÌ;ã²'Ö����IEND®B`‚IMAGE 202 ./arch/wall/cave/cave9.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���oIDATx^uÊÁ „P Ñ”F$=àzÈïÁSåFp¤•,ù&2³ óºüAqán¨¿(òŽ»qÊ†ó ­ RƒB¢öÄŒ-ÖS5ЂZo˜v„ÕÆéó‰ZÈÛ`µØcbCÆ ºŠè)÷ÿ�—[qJUþP:����IEND®B`‚IMAGE 200 ./arch/wall/cave/cave_0.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���mIDATx^eÊÁ„0 CQ¥¨'EàíÁ®g¬*W°0É ÿ¢wÔf¼p¯´ÂÎ:Ðò ö\P âF«¼ÁºÎ;óÿ¤}Â9ÊFt|(±ºÎŒQ…‰ªï/ª>q9„M§(�Í™<€É/VÝ m_V����IEND®B`‚IMAGE 188 ./arch/wall/cave/cave_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���aIDATx^mÌÁÄ0 @TDÔ™ÓCÔèATyÑxü°s|ØBzÆ›?pjì0ªª[o7L•'Äl bŽáÁÜa!6�WM8ÅÜ`RŽn±1ÏP…5š¸¤¶€gáú�ñÿ�|íC«R0fÙ����IEND®B`‚IMAGE 172 ./arch/wall/cave/cave_10.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���QIDATx^uÆÁÀ QJ£bR¤‡Ý*c‚Â{Îe¾\™¡gȶ16´¢mtY@E‰ &¼ Ü!3:8^€ÄœéBÈP î4Ñ-ÿ�›ñLOŒ BÕ����IEND®B`‚IMAGE 188 ./arch/wall/cave/cave_11.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���aIDATx^uËÑ Ã@ Puˆzž ‘xkžøv°¦,¤ ˜êë!$°Ž+°üblÖßW د *î&—û&ÕQ~‚Ò’k)–žu ðVó·Ä /§ºÊJà7*iCænùä����IEND®B`‚IMAGE 182 ./arch/wall/cave/cave_12.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���[IDATx^uÊဠƒÑvÙŒîÐîSvH¦TTNõûõ.ÑÚûD]¡å¾BÛ ¸QägcøÇ!X_Øh 2@NöZç•fŒó‰Á„¨3ÁäÊWd¡¡‘Ç*����IEND®B`‚IMAGE 177 ./arch/wall/cave/cave_13.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���VIDATx^ËÑ €0 „á-C˜îÐÌÓd‡Ü”6 (Ô¾ø?}´°ƒÊ— zÜè ôú>.Ø Í›šQ–t†€3câA²êµTãY ê Ï:5ücú¸­¿¯����IEND®B`‚IMAGE 166 ./arch/wall/cave/cave_14.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���KIDATx^uÌá @`ooCèíÀ>ì`K—Äqýõ%mê8�‚{ÂÖp(ÆÈ â i‚ØøšÆo#W»º69i}¸±6EUÃÜNE7mr����IEND®B`‚IMAGE 84 ./arch/wall/cave/cave_15.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDD5MN��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 299 ./arch/wall/cave/cave_16.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���!!!@@@aaa¡¡¡¿¿¿DDDwwwp«%Ø��� pHYs�� �� �šœ���tIMEÛ �"Û:Å���–IDAT(Ï…1à C9KÚ=C{3{vëØµ ée¨à#$=^xÊ2 'གྷã¦è;Ðn¤0~b¬�åbú1áXáêN=Ø·êÖwð8ñÇô(0ËX}PøÆjÛâO¸Â h(<÷~)CQW(æ`Z\MøË8‡éÏB+»Uè‚l&Mfâ¦k.â#Vòy”Oõ‚IôíÙ¥A°����IEND®B`‚IMAGE 328 ./arch/wall/cave/cave_17.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE¡¡¡aaa!!!���@@@¿¿¿DDDwwwgcí���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ �Bk13���¦IDAT(Ï…K Ã0 Dµó= ¥=O Äçk]03Ç®$»¥VULPžçCDDJûû–ö”[HàÜФ(=) 8zj9¸‚ÒûZø\362ƒëj!SFå… ð£Pý@8£EAµ‡ <|‡ln0c\i Œ+Æ…Ê”C9d´ÈÄ�à{à{�?ð{I5³E |^[g?§Wv®ó þ–4ß^š±é¹Üt³Ç����IEND®B`‚IMAGE 316 ./arch/wall/cave/cave_18.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE¡¡¡aaa!!!���@@@DDDDDDwwwżX•���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ �,:éÜ ���šIDAT(Ï…Aà }â!=ôI9s²ö#µüìîª  1av­˜™5¿-žÍO ½O�×´<äk¹€–+ˆ­±…2b¹*kK>gÌæÏÈ ã½ÚÐÍ##|:•ЉÉà0ÓÇpñÈÿêüå?P±ù(†c f„ažQ†±0˜€Œz1 ó[iÈæh´ ðø¾ÍF {ØU����IEND®B`‚IMAGE 304 ./arch/wall/cave/cave_19.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE¡¡¡aaa!!!���@@@DDDwwwÏÖPÄ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ �)0t§ÁP���‘IDAT(υ˃0 D]MJÊÙ'mì¶>&Á üX= †´}í´¤ø\€¬%Dô’Ô¥zèÂ×9®€’µ9:xu¨·ÕMÚ¿…é@í¶’úù[3~P"/>£S8 ¬"ÀÊÇÓ\ Ó €§^À…VÚ�aÊ·æ÷YàÈ[;¦ZŠIÙßéR# ýðý"Ï]~!A����IEND®B`‚IMAGE 186 ./arch/wall/cave/cave_2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���_IDATx^uÊÑà Q•¦" = zðõ ­2èg|_ovÎÚwò ÍÈw n[èè¢JdÚ¯ä<!Ò7‚¬ h|Cܶ&ðªÔÅàúƒ†®'Òž˜…yPJPoX7•����IEND®B`‚IMAGE 206 ./arch/wall/cave/cave_20.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE¡¡¡aaa!!!���@@@DDDwwwÏÖPÄ��� pHYs�� �� �šœ���tIMEÛ  'NÔ›*���<IDAT(ÏíÎÁ �0 BÑL7ø®ßs ´ ÔãCÄêH}x˜`{`<J°ÄŽÆ5L¹þ Ÿ*F fÎÙ†TÅÄ����IEND®B`‚IMAGE 244 ./arch/wall/cave/cave_21.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���@@@aaa¡¡¡DDDwwwx Óe��� pHYs�� �� �šœ���tIMEÛ  ®B���eIDAT(ÏíŽÁ €0 ³ °“ýçï?N«"Œ@T5ÍÉqh?è à>_Çø„Z…ò(Q6ò”0¨IK—Z8W®JÖv¨¹ÉòJ?:õ –ÒgRk1ÿ-|; HºA'—³µŽÂú8J����IEND®B`‚IMAGE 217 ./arch/wall/cave/cave_22.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���!!!@@@aaaDDDwww?ò Ä��� pHYs�� �� �šœ���tIMEÛ $dgf³���MIDAT(Ï…Á �0;l û¯Òo+F|å„C©ðÌ1ö ‰É£ìÄ„júFAó@ LáìD»0ü^³iÎ[÷’ Mp wÓ LúŽIH«1ž����IEND®B`‚IMAGE 254 ./arch/wall/cave/cave_23.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE¡¡¡aaa���@@@DDDwwwà lg���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ  ¡öžP���bIDAT(ÏíÁ À =b?öuö¡I�©ðéå>q&€ÇÂ>Á›GÊ#b_W*B#ªA%³2eÊÔF¾:dX“¦yÛ«¯Š6pŒµ@æ2à•fœ ÕKlãµ5­]8i²/����IEND®B`‚IMAGE 241 ./arch/wall/cave/cave_24.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE!!!aaa���@@@DDDwwwvOØ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ (¢ÞÉ���XIDAT(υϹ À0 CQM �¹ÿ*q™|rç]¬ªêù¼ó¯Ù ½6è P†ð“33Ú�E@EÄ‹€µ ›Øë̸/Lî fѳdÙÓ‚–>…J‡ ¯����IEND®B`‚IMAGE 140 ./arch/wall/cave/cave_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���DDD7P“[���tRNS�@æØf���4IDATx^UÊ¡�@ÁG!S¥¦tž2ÉU÷¦¸¤¡imˆ\¢—404=„À¥‡ÐÞ1(Ÿ0“9����IEND®B`‚IMAGE 139 ./arch/wall/cave/cave_4.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���DDD7P“[���tRNS�@æØf���3IDATx^]ı� @FgTFHIŠxøÅ›Ûõ –»ž|–¬¿œ…‚*Õ“3ì’ÕD´«^ï����IEND®B`‚IMAGE 106 ./arch/wall/cave/cave_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���IDAT[c` ?˜'@ÄñNü{�"@¬ÿ@i�¤ŽŒ×ui€����IEND®B`‚IMAGE 105 ./arch/wall/cave/cave_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEDDDwwww µ-���IDAT[c` 'A'ˆ‡ìõ ˆ`ü�m€ÇWÍ����IEND®B`‚IMAGE 147 ./arch/wall/cave/cave_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���DDDwwwQå"���tRNS�@æØf���8IDATxڵʱ�0 àþCgï©y.,Pƒ- =0k0Æ` Æ@ŽƒÄm-”ñÏ—‚\I/����IEND®B`‚IMAGE 136 ./arch/wall/cave/cave_8.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���DDD7P“[���tRNS�@æØf���0IDATx^}ı �0ÀÝQÁÒê?h!Bšƒ ¸ÉA1°Pc/b“>Ð)Ëj榰����IEND®B`‚IMAGE 188 ./arch/wall/cave/cave_9.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���DDDwwwQå"���tRNS�@æØf���aIDATx^mËÁÄ CQ§èlé÷czЯ2ËØ‡„‰No4’9ó·óÅ %:Š7jì+›:(¹¶ ¤70þ0T`Å| o¶o <aà •0÷M(qÅ ;~k)Îãê›����IEND®B`‚IMAGE 372 ./arch/exit/Up_down/cave_stair_up_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��020AC@XZWuwt›š��–°)���tRNS�@æØf��IDATxÚ…”[’„0E…@dÿ+žËĉÝÕ÷ÇRN|/™-"22òäPc¤7€2€DN@©ÊLž"Þ€0›Y TT74â± 2ÌCéÀ¤èÜQÓáÕÕ% óˆ$`Ÿ€û6r€0ðOX�œf@EÅtlÀçtÀu ÌÆx\Hô^†§/ eè3l€p†Ý‚kÈ·¡· nè�ý2ÄiÔé»ÁCiÓ§=ÌìÀi¨ÓÑàƒa :ÐtŰr¦ŽÁ¹“H»?ëT „àŸaöÅ.Á2 ¬ò�ÜîÅ¥qún›= " Áw¼Õ†½_=‹°¢Vé€? Z Xßh����IEND®B`‚IMAGE 911 ./arch/monster/insect/centipede/centipede.111 ‰PNG  ��� IHDR��� ��� ���szzô��VIDATx^µ—;‹dU€¿:{»ûöôÎôô ¢"²ˆ‚+¨l$là¯00CSÿ…?ÅX£ Ù]˜}èNï<n?îã<JYÌ]ÎNòQuª¨#‹»_rzàÊ9‚›cx ÚÿâCMÜR…çÌW¡çž&ÚÒ�_Çžoö—úiŽ�¼—#_lÏõóa§®¼�Üë·úñ¾Å�b”?pxÍ,sdŽ–x%)û•ð×g™ó;­¾yçJ?x¯õ!±\!ÜÇÿ  WðÃ]ÃðÑÈêì!ïÌ•ÛÍœ_V–ÓÓJLW°"°l~²|ÿ¤å÷G[møñÉšoëÌw3Ü‚šÁ¨b6=¿> <^÷ü|¿çôþÀs«Ì+€Âp(F‰»HÜR±ÎÐZ& UÕ‚I¡j24‘^FrPL4È�¢ w 0Sc˜àI}BQ²f†íHÚTµâ«’m¨ŠñÔäM$\„Ë‘8FÆ2^ )H9ƒ•0+£> ½¢]FTMV‰]F å Ĥ `Å`gw\A-¨‚è‹ûrÃ6Oq“Рˆ ȳ뀉‘éT©,'¡(B"…D2™”ýzd2‡Ñ%ŒW²h¡ X³¥g¶š"3ƒNÁ, fbHÝ�iÀÙ‚%Ð(؉Ç-küÔc±Tµ#Äa@›-v‘ÐTHÀWÂp™þoÞ{¸HŒ×iqEýv¯Æk¹G¸þvÏ3Æ[|ãi– n´h›1ìpól!ºËJò~ 9£Añ“ŠÙªAG%¯#¦K8'…Ž_«9~ý3õ ×›×ômµHØfÀär]0Ctþ®Ã½êðsŠIøCµ‚É=càêñÈÅÓ c¨Nj–Ÿœpxû; .9ªJðTµP˜*# SCždr¥¤¬$›P—0•"¢2ÀÁ´g-ÛgÜÂ…Ø‚‚ªØ,È(ØÊà*4*ãºG3ø™G¢Ð=ú #"…ÖòÐ#¡WYLmq;³¨Í0ƒ.gº¡Ð }fØü6AYìUÕ݆§c;!Ò F¸ /ý9µÒQ×­¦Iv„í%„{|B‡BªË � Ä 9€F‹ˆ1�%Êó"Æ0\¤þ*����IEND®B`‚IMAGE 882 ./arch/monster/insect/centipede/centipede.112 ‰PNG  ��� IHDR��� ��� ���szzô��9IDATx^Í×ËjeEÆñÿªËÞç–“>‰ÁV[Dй ñÁght ê8ñQœN|_@§‚ƒ¦é;v·é$ç¾ouYbƒ#'!Pè7¬ÑÅWU,™øÿe 7ÌH@��ƪ|”#›ò�Ø�G(ŸÅŽsÀ |šß4Ký6´lJ�¾ -_o.ôý!0Rx$Ž“8öú:Z0Îp­ON“>?mtôÁ ›»ÂtH˜Ò ¿½çøù“H:{Âý³Ç|uÿÿyÃÃw=»T+øé®ò£<î–<YoøõòŠïçïÞq¬¼”,$F —=ÏV™)óÃÃ/ëšÝÈr …;0]ÀøÅzKl"ºëi¯{t°N©*Êb©2Yº}G\ô<нhÙ†5:鍿'à,̨„@¸êÑ>Ã.“C¦‰]Û“Eµ@H‰xݶ¦sâÉ»¿Ïzêi`þªªˆ–!g@!†ÄÐ ¤˜HÛHó´¡¹héÖYT…ÛÄÝ„¨;»·4ç{h:Œ7ŒŽÆˆ ¸‚% ß'z"x¡šy&ÇSœsˆ1h ÊJ©ä±ƒu`^óÈÜ«Lë[d1`|!€q`+ƒXƒñ‚%ÄHŽ™Üd4í˜7Œr¹[Ð]Bó<¶¹VÆ‹1ã·f(Šn£Ô1® D€ÖˆmÎD!7 W¬±–P÷Ÿ´ØSœqÐàÈÚ‹†þº „”Ñ\0:2Lßž`';²ØÊ/\%â* 9S@l¡˜:a;̉"#y ÈûLø½#-:D¬ËÄ e:Ðï"ÍÓ-ñj@#h î^…¹ç±‡Žzb £±”é@=5ÔÎ#+}‰†€}£Â½Y#•!ný23ô&3XkqÎ#jp‡U¥ÿ£%½˜¦ò Ö˜€1 CFCBjÐä•ar<ÁKÅî™c÷§“” |Fªz!¬-jATqs™Y\íðÖ3¬„~¯S� ë Cs5ƒÙœÉ"‚M„ë%MPŒÎèÖ‡äd[üÈ7ß 5!Új5ɤÔú5$ zq@1À¿1ªˆá¶ù¿oÇåóîÂ-šÂ_S����IEND®B`‚IMAGE 972 ./arch/monster/insect/centipede/centipede.113 ‰PNG  ��� IHDR��� ��� ���szzô���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs���H���H�FÉk>��� vpAg��� ��� �‡úœ��WIDATXÃÕ—ËŽE…¿ºuÛí¶ÇO„H�b@ qÙàx$ö<oÁK 6ˆâØ VD L2a ߺÝ]—ŸE²`Á¢Û`"ŽÔ»’êÓ9õŸ®R“>æYJ?ÓÝÿ ÀÈ4Âú¿�X?ýfO7|áÓ¶æ³f+/ˆ `û,þ$4¼½|‘ Õš·c+wê%÷Œãs;8®¯%á£f+ïŒ÷è"ñcøz–«…1ÜðñøœÇÄÉ{-?¿/,«kùpSsçuC{?°úJC82ÀÅ Å·ïf<zuÅøµö¬ß(øî¥1ßܳ"? ”:@Šðû,È—vÏö§ëß*ê$Hé(fŠê4¢­Eb‚N�Æ ã³=ÛÝ’Íý5ÍurŠ»yb6i‰ AÂ`A'€ÉT1»N0¢šÇ Ml±7ÅüŒÑ©°[ö Ó¨2!¥Ç»@k´„ÊcË@6:¬ :´Ú–ÍåUAyRbŒÁûÈY6Š"h—Bó0â]ƒ±šéùœ<Ïñß·˜¤ >Dé ºE c3ÌÔá Gý¨b{¹&¦„q–ìTÝ ¢Tÿ:¤�F[LnQ¥¦^V´uC>ÍѳDy+rHwŠÀ ]" =7ØÂÁ"«ÈYB»mŽ�°_GV¿nÐÔèàSb_ïI<ƒ›v J ùXá«#� ›_Cï±™%V ¿nñU …Õ†°Ýâ« }¯�$‚ß+Òã}š &Œ6Ø ܉£Ùì©6HTÏ+N'�]ÙË FŠðÀ“k d`žs˜b€Y ‹#Uq1r"TÎÀÈHm"nrQ6Ý»ºýŒ2N )äà’EB¦N;ü6A- û7Q§ÄüV𛈃R“ˆ»€Î £ó1“·¦ ŸÏP=G°³1>™wI”R(ì$CŠvÛÒ^•ì¯J’:Nqoˆ›32¨¡ÂMÆìØàp„6Gbÿü;øV³»,ÉÓt†Úí‰~E¸´;'ìæøß@kEµ«ýÝÛ¢´}ø1LV‚9Qªo÷x"C’R]¢²96{êyßö9 à¯RtäÿFÿßÇé¿¥?sã–¹ÿ\eN����IEND®B`‚IMAGE 885 ./arch/monster/insect/centipede/centipede.114 ‰PNG  ��� IHDR��� ��� ���szzô��<IDATx^Í—»nœE†Ÿoÿî¿kïÚ‰¢”† DÁPQ * ª4.€Š[¡à¨¨‘(©€ÐpRâaDZwýï˜Ó‡ä+ˆ,à•FÓ>zçï «÷>ã¿”á%µ��¯Êû9²R¥« °Q>M#–ˆAù¨D¾êNôËÐi©ï�|¾èNô)²øÝ8–îÇ‘»(וã%Ô¸—‚º{‰ßlÑgë÷ ç?fO ¾¶Aá×·<ß œ¾û„OÞ~ăŸàìøóMÏ®H]�fðÃ]áÛE⩞ñ×vËOÏùƾ~ÍñÜUv`¿&;pÜ tQ8uðݱá—nFç,+´.€Ÿ)í,–Ü%ÆË‰i3‘Æ„ø‚ó(æ7»Ž„~"œN¤ãÀx:Ð¥ å``¶®ì@Óª¦ËáŸÓ)DeÐÄD¤$Eµ€XM¤=©°Ì+žÜeÒÉHãû·TE´�p  ”T}$ÅL¼tÇ;vg#ãPDU*" yì ÌÍÕûçÇ™ =lÈC&ô¥bŠ’z¥(`Áî{f‡s¬³˜Æa`çª"µ�4YòdÈ’‘Û³¶°²ËLÚSÜTÊ€½:E²0 SÒRØ2;Üâ祀ª0<WÙ=‰ä‹ˆ9U–·–,_ß§„‚‘E3²hs½o˜w3ÌqÞa¼P†Œ™üžÇìhUë5#kqn£µ0<﯊E± K9RØWT+´kÃòÕ9fáo°ô"ÃFI熀³ c«d�ì¢ànÌÄ ¹Ï„g±O”)CV¦Qëd`è—/v„]+ÈžÁÝiÐÁZæ ‹#G»”:#™³Ðd›B<Uš; $ƒó–¸ ¤³H‰s@jtCG»lñâñKO …ñïé„8ÁîBÑZCi g9T;·´·W÷pÑ2l畞  Ï„’3yÊø•Ç­niiš†ñD(CÅd·5œþÔÒý±¢ GÈæ㣉ˇ—l:†Ç{¥Þ^�B¿[‹to(­ú@šn2ƒ˜5¸㸎®¹œ*Z2"ˆáºú¿oÇõõ/*\¸F½½æb����IEND®B`‚IMAGE 1097 ./arch/monster/insect/centipede/centipede.121 ‰PNG  ��� IHDR��� ��� ���szzô��IDATx^í—?[eÆç½÷õõµïµ=3Û3C¢0Ù(hS h³ÛRÄGØ-h¨¶ ¡£B4|¾@()¶KAH ÉÌd<Þ±güg®}ÿ¾‡‚"BBH`iò|óÓsŽôœGZÿáEÊpz 0š(︂{®döWÌ€7ÕñÅâB?™ õÝ|¡o¨»z€ªD¹Ùvü»;Óg MÀÿl(ߊá®âý*ÇC×  Aä¸ö÷Dïüs¨ÅÛ'|uOùøV$_ËUþ»ëó¡¾U•<ø«°ÖÑê͵¾}Ê(?çþ2ÇíÖHz‘<Ø–G©¾žNù&ˆyl¼õ nÔ:çê‡C–ƒ1Ó4gd}n;nǧ¼¥zp¨<Z|ÖÜ’ÄÐZÀUà× ˆKZûçšó˜ÅùeæP£¤¾ò݉¥Nyæ5¸ïð¹mÉñh­z„ªÐêÂÞÝ\›ýS-³§,Ç#òy‰1@Í*S£|=nñ©ÝᣨóëáÖu`h__j¸}ÆåÙ#f‡#0~äã>õº¹æWgûÇŽæ±T©Ð2À*�ε°uc©˜Æ™ü4¢L+llP\é0P#lSŒ6Åá#fÅ,pŒÀÖ«%Ý1Ë‹CæÇâ­˜ö^›úf pTT¥O5Ûay¼C¥!ϵ‚6PZ×sµý —ÇÌÇSüFz?DêB.8ÅhL5ß%ö¤¸¬#"«g*9Aw@š=bôäUR!@2NÈÒ 4‹(¦û,.ö$†ˆÈja䨂J¼ÖX—ãc¦Ï0 °bz>Eìм´$]òù†”©]S*tv[ûsµþ€j2¥^ èÝéí·Ž¡Ö¶Ø°CµÜgqº+Ų¶ž8VµHiÞL´ÞR.Æi…ñ Z)eR`j†f.w('›’e¿¹ó?~„®„ÖžÃÛiZ“<=!›¤”Ë‚JjõÀXÁy-ÒóMÒ¹]ÏC¢Ú}Gÿn¢Qï˜lt„«¶aQ|(]…ü ¤Zn2’g<×*øí'*ñâì‚nˆ¦Š65Šg=ÄúdÿßÀM:”¹‡ëq ê8ÝóÉd¾ÀÕ¡¸,~Ù¹4uHâ5(=ƒPÔ¬ÉãU8M)Ê‚*«(“’lžâ9C­îÄ5|šTó>¢c€5$‚yâºMüzŽL/ò°m‹ð4ÄM÷¸<êJ‘Ùõ÷‚<³Ì7%Lj½&µ¦¥œæ°ˆ)N_a1Ø&[ÖX¯�ÅÔ'ÿ>Æ6Èõ%å,#?ÚÀµo§[R”c®²\Oòóט?úɳ[äùm’ËmÉ Ëºõ;ÝPAª">ˆá*ô²œ¾p€ŸGòóü›�S¢����IEND®B`‚IMAGE 1086 ./arch/monster/insect/centipede/centipede.122 ‰PNG  ��� IHDR��� ��� ���szzô��IDATx^í—K‹\U†ŸµÏ®}êTu×íô-v§Ó‰I!ßàû†:qäÀŸ©àرCƒNœˆC„HÀÁ—›ØétUª»î]u®{o'$»*$/ìñzözY¬wIãÖm^§ðïx0}öþë,7½eúOx7q|·˜øo¦Çþ‹dìÿó B㙾*�ç@€ú–ãÓksë`Ä@~ jrG·mÎWùÜ_ónµ�Îw`BÏÆ•Üï~4òÃÇüx#áË¾Ž ©>ËfþóYŸlñ€>÷¼‡ÎEG}æ%2÷C~>œr§T|òqÁÿ†âù!’ý<ᾩñkPYÀ9ˆßö8ùhëŒ0>a>`“’nRrI{ÞçŒæ¼K¼Vó“iÈ·Q[Á‹ ½ù»jï–ÄW'^jG,†Gdƒ™+ © *ôzÅÃC8ù-æ§ –ﵡËY ´ j›ŸŒ™ôú§9N{ä‚&j芦Ñ2Ü=5tcŒoI/¨ÐXv …hËR¿<ñ¥Ìø°‡KXjS¯ sðƒÎ {ÔÆ=Ú’y>Wüp”@k×Q=˜ú¬|Ìèá‚" õ^‡l’bKå­ò´ ìg¸"f~ÒÁfUDË�йdi_Ÿú4?btïjêñå¢Ä–§=*ôܰ8n“Ù ”vMDXÀ9CÍ™_ØCf½.y¿`óâ&áºa8‘Ú –F½I¥¶GµYŒ#AÔr»À9´÷oֺ̎zä£Ó4äYƤ;¡°Q»Š:k3¼»Áà^‡Å¤öRñsY :ïZª;S²tˆŸ8*¡ Óþ ZBÔ +m¼Ùc6êH:¯�p~�ï�`ý’eýúÄçg=æ½vQB&ØÌRª³¡[!:ß (;â¼á9Ë—ë@s¿$º<ôI~LÒ?A2„|œãð— •V€.ב´ƒ+ ¢V¼‡ÆŽ%¾:ó&ê’þÑÇ>-aæQZN@¸xÀâÿ1ãû5I&+ $Ѻ£seæ•é1?žfxñ¤£”´›"ÌvWñÉ6édƒù4@©¨µ’²1`êNI«%Áf…`«B‰%§Xë°EAþ$döx“ER–‘~qô™Ï±i cë 65õƒ°mБ vÁ·EµÚLèÎÜh@ETŒFå‚–˜8$쪶Nuq€*.ˆèpõ¡4›W˜>ˆIÔÑsEã­aÍ@j)’ßwX<ݦ(k<§ÕY Y߈<½ÞÎ`¯ ë¥LÚzn‰hðj��D4ÞïÈbR÷¥:#Åè0F…mA4«Ö_܆Äá ‹Dñ*ôæ8}í�|´î–è <����IEND®B`‚IMAGE 1022 ./arch/monster/insect/centipede/centipede.123 ‰PNG  ��� IHDR��� ��� ���szzô��ÅIDATx^í—¿oEÇ?ofövoϹøìsŒ1ÂD„$")‚ )5‚’"44üÔH´ÐPQ!ÚÐ"*„„)Äq‚ûîÖw·{ûkæ¹´ ˆí å«yõ÷£÷Þ¼™'ýŸñ,e€ÿÀs€ç�Ó£P6T™þ×�S·|ÍO³‘~µë­Ð0Z yš�êA ¼·áùàí™^¾\P·B�ðy[q3´LÏ @4€í’ÕšîjÃ…·º|s¤;ïg|óNħ—zò­q|<_#ý°YèåŸäžÈ<€8%Y©I†™Ú4ƒZ‰7a§—óã~Ë<øøÝBWÿðÒmƒϾ±r€Ð?€B”Âò¥º¥]Âh*Ëðü]‡=ŒkË\ÙJùèFÎ+wÆT¿õù%òƒ‹éŸ¦Þƒµpn«áÜÅ —ê‚¶ Hß‚ÒNjŠYÁö¬åö}ÇwYŸ¯Ïoðe:ŸÅœ¬ªÐéÀúµZ<"»³ÍboŒ‹^Š'Æ$€ƒ½ßÏU¶Âƒº+A }8€@¡·ÑÐÝœÏî3ÛÙÃz‡Ã¡¢T‡5Fë¡)Pu6ñ³fá�§H_mé¾9ÖÚìRnç$+)éFÉA+ \méÚ¼e|Ï¡nМäèœl…�É Ð}®víóé˜z¯ÂäÐ6”E‰7ÐL.ôÖ×I‡W áq´c9á$Ô�T9q®½t„Nsš¢E–-uÕ0ùuDó°Äåä² Lî Ý]• ‘cM÷D%â£ëV©D‘ïîQU L=i?¡±-!k‰–:h¡TÙ*m¾I=]0ÀÉ\iµ=c¼½O¹W@©„QKh#Ä+å“ê}P¿A­çEŽ9ŸÀ{Xx4>`¾¿C•å .1Tq ` žVT“«[¸dS[TOùk€^_^/4^? ÎgØÈB£„:­wN©FíxÎ|wE±E>OÅ{8]Ä@´Ò`ר˜á[¥™7ø¬¡~Xѽ¶D°æ%Öô‰ì\OTcÎèCâ#¯¥+(%õ£’ònA;i¡#hu•Ò„× scÝ~ú03+2î©‹cd¨øCO¤mÅS´I1ñULú2âzr¶�å$B_Á¾pH<ôGÂê–æNöî˜ù™´­Ðt¥S­j§ t» &2ª|å(å.^q) œ•ޝf¨‚HK’LµûbÁüaI5]A¢¾ˆ8ÎZÿº†6`cEâ@ OCÏ—Ógð7TAè"S(¸R����IEND®B`‚IMAGE 1081 ./arch/monster/insect/centipede/centipede.124 ‰PNG  ��� IHDR��� ��� ���szzô���IDATx^í—;[U…¿sî˯ñŒãfä ä¡ LÁP P :RÑP ñÒ"zjJÄO�ÊPPòÒ ˜ÀˆyÚNüº7ö}ž³¡H•‘ˆ4vˆ„²¤Sïo¥­¥­ê·îð2¥ÿÀ+€ðé{ßöÄþ—�Ö–ï3ù*<•Ï⩼÷ÂE_€µ €ZÇòÑî\n]ž2Ò>?;uOi/²¹ìŠ]-€µ ü@h_ÏäõwÇ2Ú;函Ÿïy|ÙòIŒâã4’O¢!gå^ر,l쪽Ht0a!c~: ¹—kn˜óÁH w˪—Åìûî;ÞòX ޛׄöÍDªW&\:£ÈNÈÆýIJRÞ~ó ·ß:ãÓZ_fÚá›rC=Pzy�¥`}«`ãêD*[ēߘý~Jü$ÆTAo¸ìÍ÷÷ wï/ø1.óuµ­¾uê°\JCãœj{$Éø”Ù`Hþ8C\®KIœ’CË-ñË4 Ò·ªïxÔ—]Ck Ò1ÔvfbìÓ£>&±`@W]Üuµ�T¨Hÿh`ÿ쨹9çüÜ<7s­`cËì„’GLž ŒCãf“t–Px½`9f"y‹ù£&&-¡4° €š;†æn(qzÌäá)NêRkÕ0sƒÉ 8‚¿PHèž4Hík¦¦þ°€µõHæöhpF6ÈØìuj>ãñ„ĦªõuüÚ6q¹Á|VV(}‘.8¿n^,~õŒè¸O6Éñëiš2LÉmNe½„ŽŒ´í7˜‡•sÃ/Vоj¨tBâbŒL-nà¢\ˆ†Ò„r£Dà6°þ6Ѱ©2å àâ�b`í²am7”<°8Œ°sƒ¤P¤…cðºeÜz€“¶É‹¦²â£ÔŠêxýrAåÊHæö/ÂÑ2-Ó “ô¶‡ÛpðŠ5HšØÂ{ù’�"Pïš7" JgćCÌ €Hp´Fm8›žQ¸ů-fûϰ€òš¥y=í÷™Fdý QB:IHú "àw‚F æ—ˆgm桃֬@­ë#žäÉü§ã¡»™2ÄÓk,&+ÈNÂãMIEÁ…ÝŸß+–œ”Üä˜Ø 3k.NË¥Ú (mø¸ºL4Þi(åh€ÕHè ê8õ)žo0©`Š‚ àT5©â$=tÑVÊ V¤sÙA“ùa*j[køURCvèt‰ò¼Âªä>ÛõéÐW ZâvSØÊÉÎR¢ãÚí¡ƒÎ²ÎŸ_ÇJ¹@W-f×O{$ÑuœÒ teK)· (V©¹ ”Erƒr\Pš¡WÇéKø´‚ö¥ðƶÒ����IEND®B`‚IMAGE 876 ./arch/monster/insect/centipede/centipede.131 ‰PNG  ��� IHDR��� ��� ���szzô��3IDATx^íÖ˪\UÇá_ÕZkï¾ìî>Æ““xu"™ç|Á'p˜'pìÈqÞÃaÄŠNœŒ‡äätŸ¾í˺”Ð N„ ôŠb-¨â–ÌïÉ«ŒÿÀpGÀP ˜]WU˜. Œ�@afX(j pøÿ§x®s½Ñ¿ßT#ÈÉÀÕ,ã*CÕ°œ­äÄü̵»26/Aµ§´Š#Pßr\Jä“yÀõcNù¨K`ðB•ï4ðX_ n’™ÜÈÔ‹bC_°dÌß4ú«žýv‡ŸµhIûHÙôX?Ðm ¹Ï¤$ä %ö8ÐP!uÅqâ³{c>ŽSî=V{çYŒ«xØœñu݈÷θñAgît‰Ôk¤ôè*Rö3CKÞoè79r›¨4`Ca·Ø÷7?<ÅÍýÓwÛËU[± ž_tK”Èjû.ýbJDh,ó««ä ðaѳsrõý¦%o2´F^EÚçBé26\í(]a\˜¿·À7ýùŽúÅŽé[3Â<rbw±cØ (Âh¬ÌOOsÍÃÉB~+c�^ÇX"4€ê,Zï–tû–¸Ih¥èÄa )gŠ3¤@}:br·¡ÔÐ]u¤’p7=“;S’$ºeKZEÊ:ã¦;æÁ¸ó¶çþû…OO³qÏKæ‹’X>k\pIIûBî@E0¥-h†2dºMw€•ª°Ïeeø™G½0´‘´¨ë7VÜí1ZÁÏO{ÎÁWMÍ7çç<XO¬�wû-?Õ3.›3ñù¢Y̬š·è !^ äTРTM@œ" %ç+˜¿6cÐ�m`ÿb ´Y N·:J䥑Îaö»çûUóo\A]"㉯yTMx,ŠÏm`¸8!^þ‰TÁ#Åœ nQánMIÏyyB^#n*Ú¥£_·X1Üxz˜‰A†ÈpaØà@¼ØÆó ó| ª �<AG©«;òæ¹ÍnfÆ'm [¤¨h3ÅÆ \âj,Õ$Ðî�00QM¸îÿ��¬dœ‡º† q(¸ ˆ*iPD�„ÿ:dzü•Ž€#àø sްGàúœM����IEND®B`‚IMAGE 875 ./arch/monster/insect/centipede/centipede.132 ‰PNG  ��� IHDR��� ��� ���szzô��2IDATx^íÖ=o\E€á÷œ¹_»ëÝ5¶IŒ’ŽD5¢¢J,ñK¿€?Ñ þDªH€”(œXql9ë¬w÷Þ;sgæ YŠ Q 7ûvÓ=éHGf÷¸É”n ض€-` (ø§ ÌÀPVÐwPŽ !#j¨€Ž`X+±Wƒ”Õÿ° f  Ù (¡j22 Ìï$›¼ëÅÀ{rh‘Q5ÜÔay„Ñ`É+‡_6r¡Ê›¤¡äÞifGç¢ü¤Ê �é½#¤„ñ^bv;[=OôCDª„£ÅûŒ:jgt¿Ü0l<ÎÀHåî˜zL&1xÅ3Ÿ|üVÉ»²Ã½‘Ý'™UQñ¨Úá›f&E(\eLßn­>¸¤)[´®#I$®=ý‹–"i±Þ(ë’É­ ®p¬~_’¼ÖK†ìÑÚa]Fš+6Aé%/wxØâ' ‡–pdö-Ã+Àt?2=<§•‹Žt–p¢ØŽC"ùÁPQÊ‚fÄèÎäú=ôL \rr›8îŒ_Ÿ9Îáû8•ÜŒïXæ‘(3�@i¢ewý­D5¬‚1ÄDÊ™ì¦FX6Ï×\/Xœ¼`öÅ´D7 ŠÝËÆ{·3_}ZñåG‰ï&¸‹q?G>ȉ«W€d\/X0¬†3É'#;#O^wèaA¹WFèÔBô‘p剛HÝõœ2*]åxz™èŽ_œ¯xÐ/íÇÕ™}ýòÄ>6ö@¡m%u;·!.ˆIb„4`&T·rʤ!’S¢* ?!o*Ä9&jØE`ñ¤d÷VÍ|>bsµ!»šÇ«Šo>_ŒøìÏ,¨Á/õ”‡ÅHNf@ÑwëÓš®ÍèžB•±}T€¸‹Ú«1i~ÀàgÄUÔNÊM%ƒƒŒöEfyæñ¾d>®yÚÁw±”Ÿ'Q„Và7Q.þ¾†³÷PíHýÂÊ™GÏh¢H/„—%3º~$R×€bY�°l¸BˆT ÈÉ@ø÷௫Ø2f†H¦¬Ë"˜ ˆÂÿÑö,¿qÀ°l¯Z²ê¯¸ß����IEND®B`‚IMAGE 936 ./arch/monster/insect/centipede/centipede.133 ‰PNG  ��� IHDR��� ��� ���szzô���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs���H���H�FÉk>��� vpAg��� ��� �‡úœ��3IDATXÃíÖÍk]EÇñï33gι7¹÷$7‰Q$ˆ-º«;!.|Á­ú®û?¹píÊ…Š+AÁeèZ…ŠEš„¤Iî˹çmfAšÖ*J)Üg300ÌgæÏŒŒ÷oó,Ë<ÓÝW€`Xž;€*Ät5ªêp×M¦¢€€Xe}ÖÀrªè 0F#]#ÄÊ:CJ`þÅ}þ ¬‡Á†RlEd³Sã:Ê­H¬Zä~OÔä¶…dÔ›ŒŒM2»Éü(“Ù±#Ìå _¢LÆO¤�Yù(l ¼tôRÉ+™ÑΩ.‹ã)Íy$ZÂ<È3Ù`rs|o]ý¡¥˜Y^3ŽwL¼ÜEX'_d?ˆ¹↛Êö­FíúU{‰ z ý¬¡žÕèI i¢¾ì0Ä6"ÎPì­ÑŸµÌO/àEE&ÙÞyÝòÁ«ö†klŸ1&ê+yÉÃb,÷åÑŒ\¹uíÆ9óÙ!‰¢°<JP'L£4‹)-ù$Ç&¡›öøí¿“C—h/uÕ`3GšÃƒªç§QËWºËÝñD>Œ-­B|l©'ê’ê¬"Õ¼,РØ`pGWu¤&!"DEéÛ7ïñcO* ÖŸe„~=O¼P$¾=Tî‰å»lȾ&~~\ÍL5‚i…î¤G¢ V�ƒöJ6ðH‚±Oø O\Fú{ f;'ÙDÿ°ÃÛŒÂ[>~/çý}σ_—Üê•7»…~–åKë8õb^}æ`» ¸D{TC­X1¸aš 7s›°ÞB£L_ÐÑPîŽÈlF²‘ã.qx¦¼ÝOù(Ý)Êç~t}ÍL˜þâizèKzm 'Ú@ß.ÈÇ;ˆ-Ñ´·9F;†‘å¼%ÖSŒ«‰Saà›(ܹ»Ã'¿•Ül…å ȧÎ_Œßº‘–XŸih¦ šc,))Ö—˜|dMÄz!+ %t Úa³VÅ)Ö;üVâèÔËnU°&p(Ð=¡ÈŸ¿bM¨Æ«n„€ÈUÏ5Çß—¢I«hù‡P "Èžjá5gA  ÂSî <o¯á °¬�ÿGýÆçÓª+:¸����IEND®B`‚IMAGE 868 ./arch/monster/insect/centipede/centipede.134 ‰PNG  ��� IHDR��� ��� ���szzô��+IDATx^íÖ=«œEÀñÿ9ó¼íÛsssrƒ©¬|©£±¶Hg£v"ü$‚ø üÁJ¿Dª€ i$`Œ‰÷nöîÝÝçef΂‰V¢…¤Ù?L}~Ã0p¤½q‹W™òŠÛö€=`Ø þ)wª ºÊ©#¢Ž „ Ä;up°$Hø�7ÀAÜ TP7󑃫Ù燰^Ebêña‡ä„ª÷ Fƒ™ÏãY#'ª¼^ƒÅ’ë¿su~å{Už ´/�žAJ˜íqöòBfT™‚]:%U=½91 «-i3 >‚žBq8¡º<E³¦J½˜ú[mÁo”¼#s®ßN\øÅ8/*îVs¾lZ¹' @*gñæÎ›Ãu³Eʈì:’¤çƒúÓ-±Ï¬6ï²*™ÏÐ*p~ÿŒÔ;ÃvMÌ#EðÎ`²f•nY²:¼ÄÉ1ìáØ3ãÈ ^�G‘ÅñSzÄrÙ‘Ÿ&‚¼lÈäÞ :"B5«™M˜\›¡ªäm„©0l¼�WÇ+°]æAçütx…oâB¬™0Þvã®èË'P›eõ†¡ÈBȃ“ÇLΆõâŒÛ‘ó“ §NŸŸQ"\RŠy‰t YK çÝ+ÆçU|v3sóµì�×pnXâ}ˬ_² B/ø`PAކõ—?o5¸Ðã‚⨜±¡R—×i—PS TQéŠÀÃÓL÷ òéïçÜîÏü»ó'þÅê‘·~ Ðm%Íæ‚§ôŒ¤‰\ÙbB}µ&¹a1‘-S• aœa» ÕÀ´pd9²|Xrp¥¦=lØ­w˜ÖÜÛV|õ­ðɳ†h-¢?Ö îyŒÐÅÐl×ô[#*T†_ ¨ *‚žC8™×Sr{‰8¶ÄMÔ*EÊ^˜BŒÎniœ=†’ƒYÍÃ|JùaVDØ ÜåäoßPÚ÷n¡ÚáÝÒËù³f&Hâ Œg%-]?©kpÅ]�pw‚ 1CPÏŽ¨�Â¿é¯­Ø wGĨ*ÁRwQ@ø?گ寰ì{À´¬„îÙÍ����IEND®B`‚IMAGE 1242 ./arch/monster/insect/centipede/centipede.141 ‰PNG  ��� IHDR��� ��� ���szzô��¡IDATxÚíÔÉo[UÇñ+u@mRgðôl¿g¿gÇNœÉ'MÓ Ú4Í`''ñøÒ8)¥CÚR)m‹B¬‰JH¬€ V°±ê‰=+þƒ }¹q%KT‚v馋ŸlÉÖ»Ÿ{ÎyGÔ ¬?ÑT¾ì_‡¢ûy€CýÐk w¢ üù‚Pya;n>õ?^@ù€ú#¦p¥Wèy7N쓺ޜ¢kg‘àV뤄ô=>@¹ôöxF´ïž¤ûíABot¡ï†h½ÑCç;“¶Ó4›òP.³º”¢óÅ!ü—Zq]ò¡lyqå5ôá×FißNâ–m©¬}K$ÀöÉ8F©÷YÎŒŠsŃ;# ÿù]×c„¶O¢’8æ%$&!ÑZaïZª½äGÍKDÒ’Vq¤Ü$1Ym+@Ën”Ö›§QRkÔÅLYbYá›™"XŠ Õ±¥\ØWÝXçœ4-9°$lXâVì¦ïvÞs™ž™‚¬Dõ€òC”‰¬hÛ:AðjuËÀSÒ±'\XS +ê§›°ÌYiž·¡®´_¤óÊ<|eZ¾Æ}U�î‚¢pŸ:ƒ/;Œ× ¡^4pTœEǦJSÚ‰-¡`wÒ0ÚŒcNÁ¿ÙAßÞý·WqMÅÁ¨ùß2rÊ‹¢y4Mãñ1œ¥0Ž‚%£âÚòb͹Ês¡µ2 a°‰úñF´¬Nøò(ÁÌ öñýåU ’hFØfãØOÐbF ítà:ï-·EÝбŽÙ©ë>ÌááF¬qJÊGëæF&NÓDV"ª”§ûð)Gr¢½´JäåüW¢èW[d‚h9ÛŒ‚3¥¢šF¹-ŽY=Û…'1KÓd^ªPÉsr°šG䦔tÆx×{Ð/´ – ìK.´ŒAdo€öël§\ nŒ\/m—çñ.ä ¯ ðhrÂ1=‰o3Œ÷J�תŠ7­ÓñR„¶í.\‹^§lxV5:ö ï&°'×°Œ”ç¢:@¥-ƒ«²ÓxÌAüÏ·a˜ÜY {Ü…}RA™öÈ*¨4äurôPúp‚`1\ZU*ˆºhA8)¯OÐr#ŒçœŽ3§–Ærï‚ÁH^囟:ùñ×>r»3<{´ Ô�PIã˜)ŒkË诡]óã»ijáúª3sÑG×·î…øê³�Ÿ/Äø¸}‘l_NˆÊÃe)JH%ý y]eé–Ÿ/¿oeï#mKWO„ùEí¥›Æoõ¬Q @%Ñ¢°[¦éÈbÞKò¶—o¿ósçýêð$J$‰)ý!<¾£àãnQ% ’ýõ[ƲxŠW6zùã+Ÿ. ú× c0Å{‘´ÀåDlôfÄš�*Ù–±‚¸;º�­ð%Þ—ÿûMeîu'ù=0ÁŽÄX$ª¨UºeKî·ï—{ˆû²ìÉþ2¢i‘¿çåíƒòó™šUà‘[“¯éÏáYÐbüéç‹Î3Ä¢ÅÝ5G ÷Ä×áyPcüæŸ ß—ýß�„Gg®wMœíYŽhµ›°ú<<ücþQ-Á½nGìñ����IEND®B`‚IMAGE 1182 ./arch/monster/insect/centipede/centipede.142 ‰PNG  ��� IHDR��� ��� ���szzô��eIDATx^íÕË‹dåÀáßû}çÔ9u;UÝU}ÉôtÇËL!1‰D; hÖ."ÉJDl¼$†àÚ…f©îܹÕ—ŠH‚& ºQgtjºú2Vwu>§êÔ¹|o‚+a` ©É¸ñ÷<¼ð¾¯D÷=É÷™á;•%ˆUÔÝb@Yõ`íÇÆ½¥®Ý]jcÉ¡z �ê ”­íRÏü:ÖöÖî…!«÷Žuù's ZJUþt·JÚ?ž³ËÁ—_1¨Â‹û¬o'ºvW¡~]AAõfP¨®q4<DJ0 ÌG Eºi\¡u×¥ŸÇú£ &8§7ÅÓ8&ŸÌº†¼ÈIvŽ®ì“¦lÿkz¿:Öµ_DDoÊ4<Ã< ©\€©¥Ìµ¤0J>Í1bÐÌQMK\0ŧ„vDt¾®ÅQ‡dØ”ª0ˆ,¸EÖôj- ^ÛGBƒ´,b¿²Hå~ÎþÇ»Œ>ÿ­¾¤¹ºGw3ÕzÇ¡nA€Ø€d§Çü M•W8u˜UY±Øº‡µ¿éöCÄ Ó«1óx‡pã*Ë÷Œµ¹V.~ˆ\Õ–é`“égËdŸä˜‘ó4„ª©h×@]k(®L.srm@ÁUÂ~ªAS©Ü�±l_Êãs¸;1W"ì!lØŽŠÂÔQï×iÞѦ8ÌÉv2ŠtLëÎCVîži3r¨.pŠÅ -%[r²sž“ÏשFÞ¬Nè<Di Þª¿\ƒ@¨’œ,Boð?ȑ֚թ7|FêrÂ(×öù˜ö¹#ÒÙ„"+pÅ(‡% ™"F¨u}LÖ'?¹é7m)ƒ˜SMàúÄÔÈ&-™í÷…Ù*2±”{e\âæ—ãœò¸ <*qÞ!áíC¢ÛõEuA�€XHwkŒ?ŠHþÝc>ñ|‹mYLÍâõ|Ô(EZ0Kg\š‰V÷èŸ?Ñ“À¡º �@ÉA(i¼%^v(<K´Ò&ì8UЏ ÍaìØvO?8æ¿ßgûb¢•¯‹D@°•׿y†zc /3„âtŽE0jæ†3¡r±?áwÍÏiª÷¨#^ðÝÒÄ0¶$Þ]ÂM‚Vr%ä7¿ùó# Ö6„WÞšð¯Wx÷翾Ìë“¡>SfÄ7Ø‚S¥ ¸ ¿s¤áֵƘgôxâáï¾ó——¡;Øä~Óçñ"á§ñ.ß4ú<Ö=+7Ñ"�±!U¾öíá:žÞÆ??ƒOÿ1æÒ‡K¤Gø´¾!/Õ#ùCkMþÓÝd%Ox4Ÿjóº-X Í-Ùn$þ`ûþg^¬sîíe_ÄDÀÆò·FO.×—Pu´Ðë� &T³¦äóMY­óÛñ”ת)¹Š ÀÆã¯­y3hÉrƒK¸@1ðB1å©“=].2°5Þiöy.ìÈWbN»†§/^ðü):+ï5zL]‰-sjèiÁâ“ØTÇÏ\Å51|d,Ñ)�·<Ã÷Ü€�ÿžÏ=[[dŠ����IEND®B`‚IMAGE 1048 ./arch/monster/insect/centipede/centipede.143 ‰PNG  ��� IHDR��� ��� ���szzô��ßIDATx^íÕ»”U€ñç=ßeî÷uÁÍè¢ (jM òؘ+ cè,´‚ÆBÆ„ÊÎVM4&ú ¥–Ú †ÄÝvagçò}sûV[H`Fix’Óÿòæœ÷Hõ¥‹<È ÿ¤ÙßGŒ¢ú?4ˆêZ‘ç#mubŠÕ 'IÊš +Amm¦v³Oáxe[sv«P¥·# o =@Ìò'@.`9]¦Þ "¿É0­åSVÎYyÙ×£/Dš++Ë΀2ø:Þ¾E´=#?s±Ô0ìöÙÿ­Ëpë&‘}ƒÒ‰;TÖbujv²dY�…4I1 µÕi˜àíxLƒ)ãxÂpàáô™ º˜v—æ‹=­™«[†4]@„$Í3¹#DA@…LæSÈRÍÐy†5‚`wD4¸I6ÜÄuö¨­š+Aš, �,§(aÜ&f¸âPkV°b!Þ‹Hg)‰ŸùÙ,e²Ù'èoa·vilš+/ –‹]Xe°]áàzd’@ �¢ CãìZ玢ŽÅlÏ#Øß&WíSl&h¶ �ãÖÅ× ãó~H´;Ƕ Ʊ0e ·äਅI…d–îûh¶Oc}ªíU%Ít� &לS̼u†7ZD]Ád¸#CÜ ñ¶FÄÓ«b# ›ÄšP{|ÌêS©– ² �ãDM‰ãŽX¥§Ñø$ÄÂîŒp2—Ó²°֪ä2˜Üf’`j(÷Ü¿~F…fŒíÞÒéŸ×(ž¨[d“ c¤hˆ²“A¹ÒÂÉu˜l¶ÄÛr¹Ï n>t˜öV$ˆN2ï–‰n‡$Øh!âÎm* <ž8ÒåÜs=bT—@!K 8厄ƒuJó&•\ ·î"y‹Ô‹‰w#.Ä!ÏŽyû•Ÿ®õMñÀố¯7¨ot¨na*6;ýÛÝNEÈ d‰RŽyk´ÍgÃý:ðôˆêr��ó¨ ýn¿_@Ê«\z½Ì•Ëmž9áðùw|SçËÝcìÚ.oÌú\JæøË8–ÁÛ)‰í8th¨Ñ9ã²±añl¶~­óÓïGyÏnËG•G1\ˆ¦úä]¦`s‰eˆ¢²¸±­^lóí/]:›ç°yÍŒ‹-©ŠáG„«¹*=cð„Ň›ïäÅì¯X®¶­Ö¯xµb¨¦ ß[ÂÏbø$_“©ûÕ»íû-ÖŒ÷“€wü=-eX.—É·HŠ,ú ïž#†ËN‘wkÊW•ã|QhqÕr™!÷¶ ͪ€ƒÒ?4ò%–Ÿá÷ððð (ÆKpÁ±|����IEND®B`‚IMAGE 1196 ./arch/monster/insect/centipede/centipede.144 ‰PNG  ��� IHDR��� ��� ���szzô��sIDATx^í–Ëk\營÷;×¹èŒF3#ɺX1µ{1I vbŠi·Ùt‘BV¥J6ÅÄMSŠºí"dÙv×BWY§%Ù%`BBJH¢@IbÇ–4ºØ’F:sfæÌ¹|oA›0ɸñ&Ï_ðððý^>‰žþ-Ã}䈣¨ý–ŠŒ sß³,>UèÜ ­M[T¿µà‡ÊÊåB¯ÄZ_Ùdú|—ÎS=ùþXƒšRÿçÍå‚h9&/·¹ûÙmâÍuÊê:Óv8u9ÑùäêU”‡^Å 6ÑÑÁ.û;{H `¼—w0Õ;ÔØ¥ù“X~TR­‚µú0 (£8¥?ˆIûcDaœe$Ý„ƒ;»$ÃuœÎmZ?=Ô¹‹¹‘чRà —ŸDËb5\죌ɥ¤ •ì(ƒB)Ge¿d4èc¼&HW=߬ïO¶D&\A>ªÊðv©Á«{8¾ƒSq#¸ÖAÆPlgìþg‹ýÿ~ÅçÔf·™^h¥aQ;¡€8ƒÙnD™—ǘw‘Y§âbÜc1ÂVVlÆŒãMÂ¥ ZzZ›+&?D¶œ’áúƒOfH?Ê0û×q "”U…†Ác ù½œ£›‡ôw7Ètƒ°=8ž«-ùÚ¸��â8¨´¥8¬¨Û«cèa:cü¦‡ŽÆØÔÎVR8\; õ n£Gt&¢ÒôtïãPÒØ ò O±LI¡§¥¿yŽþ§óû&«à¹.ê(¦bðZ^ÓG|ÁÆ9ép Úw¨Ÿ;P¿^¢úõNbJiJš¬ÈÑÍÇ0ù í•SÔkR¿6À](ò’d3!Ùíbm— “¨Wµ¨N ðeŸ4®Ëh§%$äÐ¥ØJ)âÍ,e¿8žkq˜SîXwŸðL—©3‰z¢:¡�€8lû|8CÚ Žgj¦\×Ákx J‘¤ñˆ[I—©ùmZgûÚ,ª �(p´JŸ3>ÏTu‰©N  (y’“푞åJi¹vµÇõçv¸ôd¢…¯“ ˆ€*ˆ`Ý–øÕjá îØà:àÁ”?Båbûˆçj÷xÙô‚ZâIîgö7ëo5±q@ÐðÏüâBÀKÏV™[þòÚïý5ágoðòí[üý¨«×Šô+%¾Ñ—L°)^ó@ƒ•müj¯º<ÿLƒ7ߊùÃ+0½±Ì%Óæ7yÂãñ÷ªm~=½$ÿ6.Ñ$�D@œ›ÎI¹–8~Œw×`í7ßi2èg­²(¯T"y¡>'L/ÓÉ~• µvb`3‡´‰³9sc…?W8ûz‡õ¢-b"à†qxµÚ’[•&ª–::©ÀÉå¨&YzZš{óü²7äoåŸÛ’ À?ŒËëùgP—]ääxÄÀj>äwýmÉSp|þUkóû°!_ˆyÐ ''V½*×£%y»Úbh œ"ÃG9Á L\bY-OØ’»bxß8Dx”1ß |'ð?ásfqØ"Å����IEND®B`‚IMAGE 965 ./arch/monster/insect/centipede/centipede.151 ‰PNG  ��� IHDR��� ��� ���szzô��ŒIDATx^½—ÍŽTE†Ÿ¯êüô9ý73Œ03(¢ &DâBCÔ¸`cbÔ[ oÁµ×áVãÎA£1Š Æ AAÇèéîÓ}úÔÏgâf¶Ž¦|®àÉ[oÞª’Ñ‹ïp4B^)¶À5ïþ†#Ô‘í‹î¼¶¯]ÞÕñ¹™fe Æôdµ²~¾ÑÁ©?¡¼·¿P?~ŸçZ–1­€*äeDò¦»¿³kŽñêÓ3ªUŽLÆ?$DŽ‚fqÁìaá1 ³8‡ vcMå×\’%PdÐ?ÉOD"Hăé½" ª$ðš.°p!DüÒÚ€u–ª,©×,y.錷€@ éı\µLwgÌö[œÓ´%ŒÁ"E‰é¤œ tÞ³œÏ‘þœÁVDc"Àg’ùk-b!®aÑQ —ôׂŠÕt;ÐXd9¤×ïÃJ1j,@– Q‰AÒ ¸…@¨é­ )û%F xP‘–¬ê°YÂV,'‚‹©-¡ñø¹£›­XNæHÖ‘Ù”Sl ª]ÀÏ=«½ÁGÂ2LGuÐÓKxHˆŠ›y|ã¨Ï È6r´¨Sbëј°„bS‚ X+ŒNŽn0•Áö2Êž%Ë%]Á ±1h“‘Ùœz­ßPä9½*#/ M%PV0ÞQdà8øÍ1¹;�á‘§m;ü2ñƒ¤ó_D¢*Ó[4{ ¢‚†�½ˆí'ì€ë`ö0ÒÅH^åŒwƬ?µŽôs¬ø»Æ$"›hä΢c8¶ÛCœ©†&óÌö,÷ª©¦¸ƒe®¬e¼w¥æÕg<g³9ï¿YsõyKU:†›Q“%ÐVðÊØòÖ¦áÜfdݬ8=îxéBÆ¥³ÂVm)jA$‘ÀNùàvÃÕS~ÑpãË–¿µ|óñœÝOÓÛVs+ÉŽàeçoMàóc|uí_ß»ÈG/0ûä o|TòîÏ%w÷lš¦ÀÓÑC\ñýàʶ ª²_“ÛfK†±ÇÛ§\êb𣠛#àzV@1`Ü5œÔF@ zž ÏrXöœÍÈ•4¸n n¶øÁö˜rÈe ä¾›1‘„—Ñg6§mË#1<@�Ç£Çß•c~ÃQ8üÿNiäu·ä¦-¸fsFÿ·@ŒP%Gã/‰5²ÕÙÆš“����IEND®B`‚IMAGE 937 ./arch/monster/insect/centipede/centipede.152 ‰PNG  ��� IHDR��� ��� ���szzô��pIDATx^Å×=‹]EÀñÿ33çå¾ìMöæÅݬ!1!Á&j%"H¡Ø‹`ã7°ð[ˆ•bbg£ ¢ˆ‚)´Ó$„ÄÝlvï½{ÏëÌ<BÀÂ.Qÿ_àüxxæ0#“sïð(õÆc¥œ*¦€Ð ³Û‚ÿ*Ã#ì;Ùx¾Ö ;zä•m=üÂ\WÖ:BÐô€|¨ì?±TsèUsƒ½í„î«ïé` ¨&¨Â䱞Áú}}ŸúÖ’åï šjÎàØã#^EpÃNu°G{ÈY|‰E‹-=1*šãa%{ÓPKqjÉ¬Ãæà †t�“®ôxí`ñ[=!ó„¡Ræ-VAÒí€o¡ž|05èn ßé uB±O±NÓŒQFÎ22%ÔJ\úyO˜yºeCçk”„�q†"Qæ#‚˜ƒŽbZ<�´›KpÅ$áv5,· ºñ…b¼A{ í@Šˆ± ¡s`Ô`p˜h ‡°Ó«@˜{lÝã4&Þ©2ÞoÉW2ÈgÚ)MÛRK…ϼ&Äó?#‹Û ÝnK¬#vâ°«Ž˜+u»$xª¦€ÐÎriï˜ T”ìxIyrD¾Q’4+c% @|'ج€¡ÃWžæfE¿Ù¢1™ ¾O6˜¦ë9£vhiîÖ4·kú;Rò‘’’æø¥ÐÝßG¢(n5ƒZÑY ÉbÕ¼’fó{Êün@…E¤½ÓÐïv`A‰h®ˆ%ÝÌæ«‚ ƒÖ²u·«¬ ]áˆACÊ+Y+8cyû¬ã÷ƼqÖñæ)˯¸tÚàóSÄt€Y©œ)"O.<7àÔ“%Ï>]òÚ‹çyö7“rÇ—Â{×{Æ—®|ÒóõµŒ«? W?[ ßzžèGÜ/l:ÀË!pñ·Žê‹£|üéS\¿y–k×ÏðëGÇyõò˜wÿPW¤¬EˆçS~l¦"ÙÙÊÖå{{T„)/m.9C:ÀR œ÷ Ϩ0ÃÆQÙœ"J:ÀObÙvF¾á¤�æÀ% ŒCCm IøøÆXÞ¯ÉT#_ À8:ÐÈWå>~ƒ¤L€ÏmþT¾3qeƒ+ùP¾ÓÿZLQ6ÿþx@² ÿsB¨¤‰³¹–����IEND®B`‚IMAGE 952 ./arch/monster/insect/centipede/centipede.153 ‰PNG  ��� IHDR��� ��� ���szzô��IDATxÚí–ËO£UÆqab`† ´¥í×öëW¦@Û)z…"DÊ--íp+ ý:ÃŒ‚#0Ndtb¼Ìa0ÆÛèDw&nLt寭KgëÒ…+uãÆÍÏ™?À™äìX<‹sIÎï}Îóžq&YûߪOHÅj¢åES¸¦ªB»PŽ SÔÇןLµùÙžšpVEx÷±÷s¤>+Û›Ã5UQP'+wL‘Ø+‘þx˜äa?‰/úéÞÏà3s4¤×Ô<—1Ed»ÌÐaŽþ‰ž!.!Ò÷ˆ¾›Å>±¢À5V‰·§ˆ¤‰¾#t³“ðnRGÏÿ`ëXe�u2dÆô™ý,¡÷¢o´alЯŸ£ç~/Éc€á `*r UþÅb·hÝíÀyEÇfj4_ÖèÜ‹“|k [ÿ’º+°ô×Dë¥yB·’h/ù°ØËöeÀvÈë#´ŒªËÀIŸ; %ü×تÖY'ÚªmÖƒgÝÀw#.çJÔ'Lu�žb™àµ^¼¯¶b춸F[Ðqλ1^ëÄ»<ÇÙ´ª.H›B_Z ²›¦ízãå�­¯tà*ë´”4Œ«|ËóHPE�ò ¶N.Êä§pïXó2Ó.š²v³6´% 37Ë™”ÂwÀ:²*ô«ƒ´lzhÈ6Ó˜“‡OÛq̺ÑÍì“yêc¦:�K_UèÕ,®ué@ÉIËEöšφc§[~\:PUèÀ¨)Â7ódœ+Þ“l^t mxwØ‹ãœíUè@ó¸8(Ò~7Š÷ŠGÙE^…eÚ†sYŽ 9emx¢ºnSØk¬[AœsbІH6bnD¯ \œ¡¡Wa{¼áR‘•Ã(Ÿ|ÛÎÄ’øx·ïé¬î‡h]ÏaÉ(Ì€Hš¢ér‘/Žñû_=ì¤sçSßþˆòÕ÷‚sS<•ZS ß‚±"?„xpäeµ¢1¿iåèkƒ7ƒÜí+"÷¨H„'!ÕÁß}]l$_@œÏ0Ý=ÀŸ¾$ÿ´2”¨ªø5”ÿ�ßDfˆ&×äµ"Y¿„ópnˆùxEáH}×9þAîu•掫~œàß¶²ñ5µ� Yíí®òñÊɸNêÍî²xá‡óEdPÕ~ËŸ–²ÈCž9?è—UoIˆ°tB(ø<žNNNž@ÿ^f‚›Â9È����IEND®B`‚IMAGE 937 ./arch/monster/insect/centipede/centipede.154 ‰PNG  ��� IHDR��� ��� ���szzô��pIDATx^Å×½«\EÇñï3sÞvÏÞM\o!)Ì‹FÓ’&Š"DÄF¬±òOÿ ÁÊJ1±³QPLP‚…ŠZæMóf²ÙÝì9sΙ™G XØ%Êà¦æÃáaF¦Ï¼ÅÃÄ{o(£M%Ë¡„åUA ÿ*µ-ؘEölt÷…ù_ë¶îœ\êÆnOšPÔÊÞÃkµ³ë4ý%–óKøî ›»÷´)ª ªPïTûçôíÜ¥5÷.®pÍ’ñ5û¼Š$;ÕŠ>H&˜ÚâG‘X9Lé‰QyØd Åäï;œö ‹¡È l ÅŒIÙ@q:àéañ ô‹ž¶mqM‡1 "é�ƒw7à]Ä®†yO\rÊ %³š`2Î-c[¢.]`X „…gX;†¡%’ ÖPæ5eY3f–r³¼èn4X¨& /aßÂú–Aw"1Wle‘è %š€ä¤k Ë12²``€a1 M ¬<Ò Xé�Æ(“-e²×’O L.ä&Câ\‡£!ä^“b„ÕµÈꪣ_8B°Ó ³sŹ5qð¨j�nQHw§§¨üPEu¸¦Ø_‘Ï Å4b¬¤š„;Áf%2Îð×ÚË `f0• ~P¬• Àž™a{§`<«°µ¥»ÖÒýÞâ¯÷°µR”‰�èèç|$Š’oæ¨Stè#6=Á+¨åmå «HwÍ1,z4‡HD …Œt È–{ U›që· e§6 eF%|ÂPÅŒ7ç¼ÿFÍk'r^?byïÕš—7„¼Ã”1àn ǪÀé£ÂóO8úXɉã§O–œ:èÙÓ{L àP ïü<09ë8óÑÀ—çrÎ_Î}²B¾öjî”6à9xéמæ³|øñ~¼üçz‚_>8Ä‹g&¼}Qy¤!`'zD<WØâ‚ÛÉ·åVù¨|kÈvØâÙ›kŽÆ°§¼ãIU�¦bøÎd4¶ Œ‘’ð½Xng#jï8¬€%ðŠ&ÁÑÃJίŒåÝÉŽliäsc˜�ÇBù¢ÚÃbT€)ð©-þŠÀ7&'nìãl1–”ÏýÏéMl¡Üüûð€d1üÏùx¬¡n Í5Ö����IEND®B`‚IMAGE 1153 ./arch/monster/insect/centipede/centipede.161 ‰PNG  ��� IHDR��� ��� ���szzô��HIDATx^í—Kˆå€¿óWUwWWõ»§ç!ckr D¢.A·âÚ¸»wn]ºW.ts×÷®4ˆ ‚àöIbŒ3ÉÌdz:=ýšêG=þ£B"†žñÀ¿þ>ÎëçHùÒ¿ø3Ã�Mµ`3ÀÚ…c” •²z.ÑÖ s­´3Ôž¾�j!_¶4ÎEÚ|áPkö)ߣübWƒ§¦ zŠ AÝR93ÖB}—ÙügŽºÛôîíÇÛê=ò¹ß¦Á]VÚýrJ©=PÊ÷‰tˆ£|A ÑK8ËÈ2š–àé¦Þ6I¿‡Z$›ZÔÔSPËÒK  ù¢RûG¤…ñ´GÒKЬµ ê(i,Œö ̧ÎrPÈÕæØüQ¿Ãd8#‰SÄ‚æð›>¥FH±°Iã8ËëU(T,¥v¤é¼Ëô`‚§®âæ ¹\cÌZ¤“P@–#`Sð«JÐ>V'<$Úb¬ F‹’Ž’AHš­1; Åbáä6ƒ°®4ž›¨T:Dûæ{sÜÐEò‚N-¦lȦ“ƒU”’ YÆ&´‚ª¥º5Rãímï2¾=Wð<—¼›#\ ©¶›øµM¯*„pŸ,ÅjF¸>ÐDïrtý“½)R2ª>Æ3ä‹þZˆa…¸»Bšæ–ð)°~ÞÒ|îHMa‡ù ƒæXùç*áf Lèàú9ìq…á:Ãû¾ rBªgcÏ«W9`|´xW¼zŽB³€—÷ðŠFBâýãPÐÇ©_¨jA x+s¤ÑÑQ÷ˆá­Qg†X‡,ʰb1¾A⌬06˜tCɬA ‹ Œ�€gQ‚­¹š3]ì|®÷YI” Z$‹Rܪƒë:8®C"U¢½u’¨%ЇÀ# òN2å5ïX\qíù1Û;)é]‡´UÆ·dã“\©a¤M:¯ â"�, 0^·)ïΆzéøœ)^7e¸?£ó e«b¹1œ2Cq›.åõŽ–èÿØ`:ª‰M\dÅnÁ_µwôÒpŸŸòe>*žåíï·øì‹ £¼¹Â›/ YÎbV|L¸ŽÕ6ñ¬)ébðÇ(/§3ž™Ùš\ WäKãâŠÄGËSZ•­5‡ÍV‘~¿ÌÁÍÙ$t.à üßÉñIeƒo¼âCxÀ¦Z’ìÛP¿Žú|5ö±þ&~®B/*ŠÍÁO(`€«ŽÇ5Ç•ûåÇ}Á›Xþ}3ãfg•ÿœYg\,y'‚c8q<<L~o_Qˇ“ž^ìñyu“+•º ­e<ɨ-¾j(ï%SÞ˜ôuãø;Å:ŸúÙI…2à§$o¥s.÷ïj~>æFØâƒÒš\}Ø Ä"«ø¶8ü/hpT^㿹P¾[¾x´Ué #„œ^ü}ÿ† 髲@â½����IEND®B`‚IMAGE 1075 ./arch/monster/insect/centipede/centipede.162 ‰PNG  ��� IHDR��� ��� ���szzô��úIDATx^í—Í‹U‡Ÿs«ª»¦»¦§»gz&Ó&’/ß„ ‰ Å »wp#ˆ(þ".ÜêN.n‚;WîÔ¥¸pÌJcÆ™˜žôtÏGTwuUݺGp6"„@ºU<p×çáwîבÚå7ù71ÀSÀ9( �EÝC]t)RZ'ǞʵýœÕÆ)‡gÀº¿S@Á´N;ÚÏO´uyWW.Ý£vé>ëÏèæ¹\ËþâPª°TsÔ/$]ì«©þF¼¿Åao›ýî]»·~@°\ðWüy‹D§sjg†*Ñ>‰î[ŠCK¡6/pšúuD€·Øª§2jO÷UÃm’ýYwŠZ ßa]A>Í ÔÇÇC YL Ô­jÓQiŽ•É}Ò_™m%C‹E0%ƒ,ÂxÇ#‰eq-(·3ªgjØer»Oz˜¡!, <¼B¬A3wâŸ[@ ˆ6Ñù¦ú ùÞ�ç ¬ß`©brÃl+'/6ð¼Mò¼*"s& üеÒþ0Á áÆb Î(å¨LÉó ´N<‹˜%k˜ * �ó ˆÕöDÕï0Øê2Û™áa`¬H~ÙPr~‘v×±YSL�2ÿMh (E¿2 ëw}9˜ÀPÄ�Æ®¨’%m÷šb¥ôç➀uÐ\U¢S±æôHâ)A«Làä£ ã •ð³:ÉÝãÌÆ«’çÆ�0Ÿ@a¡Ñ„Í 3µÍioˆx†pµŒx8) P´äaã6^›ˆ˜S@ (×”æ¥LÃÖ€Ý]¦½)nâÈUpÍ�ç;<ñ™õVIv›Hà/î9 pnªÑÙ:“£nŒ$ޤ7#=H Hqüå?íöGL`Äo;˓˹Vÿ?à‰ |ùÕ€¯c‹sÔ(:VüR@¸Ü&î´Iãe1�.0N |œÆúr²OÑ,¸f ÕåJ%0l¯¬ù S‡f%ìô踩x‹ù}”Æúê¤Ç]Sâ“þ|Þâê§K„òî+!/óñʆ°Ñ ¨eÔmHžúÁ| ¼ä,W’áÃjK®™€ú ›3§o]‰yæ"Üì [?Yò½uÄmŠs!bXŒÀ1|ÖIŒÇ5ϧ85ܼWáú7!ÓÎ?Þ ‘I7^c6-sÄ‚n‰áj¹&Sƒ�0ØpKò· ­ß,XY9Ž›DØ|I@˜—Î#ŽøÊÕt¬o ;\¯®ðÎچܚy ,Ÿ°¼—'¼žê‰d@¿Tá³pMn$µb.8§ŽË³¡žˆûü\ŠxyS®y¥‡_p ^+2Ö]Á ¯ÄwÆ£Æây<>øC¾èçé¯r=����IEND®B`‚IMAGE 1038 ./arch/monster/insect/centipede/centipede.163 ‰PNG  ��� IHDR��� ��� ���szzô��ÕIDATxÚí—Ml"eÇßëî––:0 0 0|)B¡Ð¥_¡ÐÝRKKKÊG¡ ¸-‹VqÝîÚl7kV“ͺõâÁxj<˜õbô`b<˜˜Õ›'½yó¨wãÅ¿O³ 1ñØéšlzxBÞøÿžÿó1ï°þÑæÿ/.@_¬É.F›l`¬É4ñ3ÐÄHl¤É W&­*Ì^ (6?_†°R„çz¶Õ-úžB¡2À%úÓ~ÊN&áp·„ñ‡y$óô™Choî{q„?H!öx²²‰qE5�²øYøË ›}TAâ0è{qÄŒ#ø~ûaÈ÷‚pÝöÄ|o,@7YS g¥m¥Î·ò}˜‚g?�gÇwÇû;ÈCpn{a®‹;N8êàfª§ÐÄŸXÖj,°¿yw–šÓ¦¦[ÃkÇiß ±-ƒ¯Ù`¹n‡»•‚pM.QÙæëLzmâ^ú%†%\ÕC‘‡Ð–`éRÆ]/I¸\„nM7¿�íÄÖé�Ž3×§,p£€ÐÝ XoXY‚ØpÁöº |ƒìîÊp½íGèfÎ’Œ‹ šñIh¢euÆ+– ßIB~•,.:Úbè­0ì-,M RÓ‰ 2 ÷ê0¸±. ¥OÄ•ÓhÈzmRaæÆ Ì�ôY#´£z8ÊnHƼ™ê-@¬ù(-€ŸZA_dƒÆtKMØG[ÍZª1Ïí4lmÕÝC΄Á¬ Ü5Fª¿Ô AÈg`HTŽw„º«Ø8¯°à»ëz4 ÛMŒÛ6˜›" i#tI=¸%:çæ`¸Rí­^U�Ž%&·+=˜ƒ¼ç‡yW׶¶ã„eU„uÄ‹hSEhâŠ:#vö¨Â­:;ø:‡ÚG/C·!‚+ à6H;2Ìy¿ ËÓ)hF6«ÀA´Ê¾Œ¯á³Ãeüòû$޾òCºÊc`Ö�}šƒ@™›^9 šXÔéê�0 e¤Æþòe�ÿ þTFðôȋݻ"vn (´Œ`sƒ0-òà2h“¨«wÐR&Gá"àJái`?³¸?3í;^üü«ßüèEª+A(è —¥9ïY¯žÛTÏÏÃ똥9ž¤èU™}Ÿ>ñá“=7†Éþ) $ªgq#:i@r‚ýë|a¤Â¾M$ñ]4x¤@Ù—Xÿ˜¢6ÀA8™7Øa¤ÌàšÂOütî5ÝY$òa¤Äþðeñ7‰ÿæÍ`‡ÊÞߥTaoÒ8~?´„/‚˨ôÄŸ@¯ Úp:‚açïç�ç�/À?qpƒ[ºçLy����IEND®B`‚IMAGE 1070 ./arch/monster/insect/centipede/centipede.164 ‰PNG  ��� IHDR��� ��� ���szzô��õIDATx^í—½‹œU‡ŸsïûÎ÷ìîìÌîìn6âj¾-V±°RlÅ¿@ÄÆNì$`©XØÄÒÊN±ÔÂ:ÄFЈ$¬!»ë~ÍÎ̾3ïç½Çb‹ÀBšÌ$‚ä[ÿÎ9Ü{̬À‰þŸÞƒs�ŠúG$à=xÕ¦²°æY:›ëÊK…¶Ö<Ö@ᦀ‚hŸñ,¿<ÒÎúŽÎ>—Ù‹Û,¾ØÓ¥ ¹–NBÀ„¨€JËSYIµyfˆ=¢ƒ>I’b³€rPÅvW ¶:¸¾=)0yxó©œÆÙJã€D{$½ßs8u¸Ìá4£Îa\ ˜¢�@}-£yq_l“õh®ØÜ ÖãR‡)åZ +õ2P|jóžjûH}²MºÑ#Ùˆ)úªŠABƒ4 ÂpÛ’D2½(¯d4žî«ÕF7÷È3|ÁÍZ‚Ìxy€-1Þl¡XdRuPïzÏô5w·ˆ÷ûê(´ÀX‹” >SÈ!Ý(È]—À,“gu™°ê!¨+ ‘VO’þᆞêb#/J¹^¦Ì%M’¸ƒ ë2ùE$j+#Õp“Áß[¤›)v$0T$ƒP-eo1qƒt«K‘­Š ›÷Â'(„Í[ï“íýÃð·C$)ÜØ ú¢N¯p¸7/…”8þ`-(<´:Jc-Òœ]FÃ1¥v™À†äG8¨ÖJùÉUâ¨-Eb �“ ´Z°òl¢ùü.Ùö�c-áB Zܶµ–âh|t.`BuP™QÚ—2­tûô·vïÅøØ€ŸÐ@±Î’춉wæ‘0˜Þs|$Àù±6Îm±mmE0phìIv’Ã2Åj)ž„àÄÀ=H†ó‘/x¢™kýµ>§žëñÃ}~äQŽZE‡J5 ©4N1ÚZ!‰š"b�\`œFù*ô­ø�×vüUËhA#Sj¡e£ Hì!-QÈy6/*v:?¢/ÓHßírÇ”øz·Ëçß-pù›*•@ùäí ¯.ز¡2×"œ9ÃÑnKò4àTàM_ðzܾ¨/È2w»ÆrâõÃ7"^¸7öaãzA±¿ˆøeq¾‚¦#p[ ßWæˆåŠ ˜¼nÜ­qõç ã»\¿U†¸…uHFeŽ™’ÀŸb¸\ž‘±€A� t}U^ù¥¥s8fgWѤA‘U„I¹ï^0ä˜s(—Ó#}°ÉÕú,·»r3µ L…€ûÐ>ÍcÞ‹õtÜg¯TãÛJG®%–™G±œWÏz2ÐÓÑ7K >k.Ë[:þp[ð®ËXôŽ_m‰kÆ2Ãôy¼>ø$lâðŸ°-����IEND®B`‚IMAGE 860 ./arch/monster/insect/centipede/centipede.171 ‰PNG  ��� IHDR��� ��� ���szzô��#IDATx^íÖ»ŽUÆñKwÏÎÅ/æ¶g‘8pHâÈìâ@D@Š@Ø`¯ëÝõÎLÏtŸKÒXŽH,¡ù¢SA}úéD%‹;÷xqÀÿp��Àp�˜B­ B€Ø)ÝL A÷o Š÷ Ê«�V�À ƉODx¦s30ö¥ÔºŸ÷E¥BtPšÖð“LXV[¾§„ZHy ®RzAZ@ÑÏxñ´“þ4‚@x¥ø¢&îWv;\ºÈó¶á›[-_¡:e~Ãþ\ɹ2¹.´ÁㆤÈQ¦úçÔÐS›B½Lì6=ˆA\t„Y$Ü\ÒµK×oI^GÀcbJ2xê#U>ºuÆù]㇋ģU¦™*aVÑ1a^¶C"@&™1½`\%Ö£]ÀH‚¸Œ¨óä±’ÎÿÂûDœ\³²‰�6_†–o§­ü"Âm¯|ún°Åä ~sÅð¸g3VªSbÁ ?M\n*íÍ "৤Þ{â4RÆJMÝ*®ÜÄSÖé¶8föê�„Sð(9~õÆÉÙŠ‡V¤¬¨*ñiÓ3ê²0œî˜½3÷™:úõ¼ [ƒÑ°¤È‘]Á.2aqÚƒ$‡sV�À]S~Çødžùìã-Í\ùù·Àãµì %zª(µL % »R´(I2náqæ°ÁöØöV‡¦&4‹HÌ Ã³cÊn"ª‚LïÜã~¸¿½°ÖŒQg[~úüŒïæ—|õÐáÅagŠRq39 B­çÀ¶J{ÜŽ; Ù8ì¢aÈîý†‡s-%ytsÄú9ͤª 8Ç%‡e‡˜qÖ ¾Í÷osýzb»I„“#Øíû„?Râ²aw¹C7•p4',æhIç WZ¬Ÿ“RC‚—¾­ž<8@�Ø¥+àSNÌ�X9ø}.]Sš˜íêÏB3kÅJ¶aU £[¶ç™¼Q⼓8o¯„²SÄ;L"‚ˆf‚ÿÈ¿^Å/—ÁÌöe`€¼œ`º/„ÿšÃYþÚÀp�ü LVŸrUô?����IEND®B`‚IMAGE 937 ./arch/monster/insect/centipede/centipede.172 ‰PNG  ��� IHDR��� ��� ���szzô���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs���H���H�FÉk>��� vpAg��� ��� �‡úœ��4IDATXÃí–Mk]U†Ÿµ¿ÎÉizûajÚŠPT¨Á:uäp&øœù›ªsçDÅI+–@iJh“¦IÎMÎ=g-×–¦ ¢ å®á†½Þ‡½ßõî-³ë_ñ2˼TõÀ `°x¥�TA Š£h´þý>÷¯…*ˆ,…Ú ¶’K¥k,®Éª› ÌzD¦@;H–2XçªPBͲÇó�ýR‚·ª@¯Ân…3¢/ÕWèFm^[°~-Q†áh¤³«‘)ô”<áÚ³æð&àR«M44]Kgô÷;öîZÑ"§®kå›i®ï¥“ »ÞsóýÀ·­òƆ%˜Âñ0§?xDåé@I»#“F¦ÌPɢЀ¿À^,![¢ÍØkë¬_Ý ëf4ýE»Íi€7µr¹&1<¶†·nðÅg#ñnä§ûcfHÇœ<>¤ìD¦¦ÁÏ<ÍÕ–<E’tM°ÞB…ÔTJLd[I;=“$œëiϵ÷ƒœ¸i{kçeK„í�_JÔwîq¸uÌÞqyù^ðmÀœš®ÁzK9*øÎÃÌP]Å``P4-Ý™¼bg*ãý‘nÓâBBä9Ì€_ä¯Á*ÛC!ý>ðÝíKV°Á@gpªäTȇ‰Š.7XcpÆAR¨K·§d—!eL6Ø ±7L,9?Ð7´2?ŠåóÊçŸV6¯´lŸDníŒ7Ø×=sÆ@k 68tfÉ1!cÁ¨…Ñ“û„\)´³†Ælë°Å±Ø>OÞëDä~¤•¯úNžØòktibçÎ!?Lü1V;þÄAŒÒ| ц@G±ÏLû…²0ã)uÂíœÑ†v# ÎÃEÛÓcxážq|PŽù8L·~¸À÷ç“hJ@´#?Ôl‰'ŽØwTœ,‚AÅQŠ¢P¥’ ý¡0=sÅyK)X<ù”ö€ |¢•Kµr,†_½°ç3šµ+GAŒY’‘ÿ OO`¶äá7±`ír±ÀÙˆâEU'•âÿØf™ò4:_t½:¯á `°ø¯õ'f"á´‘ ����IEND®B`‚IMAGE 905 ./arch/monster/insect/centipede/centipede.173 ‰PNG  ��� IHDR��� ��� ���szzô���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs���H���H�FÉk>��� vpAg��� ��� �‡úœ��IDATXÃíÖ;o\EÀñÿ™Çݽ»ëÇÚØ‰%)(RP!E¢¤¡K¨E¾…Š‘ D (à5öÚ{w×÷5Ca bQˆ"¥ÙSM13çwæH3#»>æU†y¥Ù·€-` Ø�÷¢ Uÿ€q`½’2È !*dCŽ J}!€fpezÁ¾Ã!%†#¡‹¨ÐöB¿*I])]eh+ÁØÿXHÀ8s[á�Ü4ãVºóƱ7\Î.i5 ïIâðÆá'S”øÝCí¯w鞕Ү,ÍZþ9·9¹òI޼“#WðÕ=Ïé‘Rgõ£5óó_©ž^áÇ]78µ¤¾§™ÕDãHÎãŽ"1®Ñ~‰ñ¦ohÎS–ÏF2?µû€RäQs­w5¡wZ¾ÜË|}¨qñ;õÓ–áÝ’Ý×v™Ü™°º\qõäšl!ØDè3%7µ¡Õ+vŽØyëXë‹©4U±pj,ŸvDt¦qñËyàlaid2f`QQú¶§®kº®Ç‚!9…¼réc¤7Ó9ã£ÈΛC ?zÙøV §~È¥ÂÏó=üé9?¬+~²ÂëSO9º€ì[ºÜÓÎ{rÌ£‚¤) :RÊÄ‹ž\(nâÁB¢ÁŽ"Z°NPöK~¹?àÑÃ!÷gCf_ÔäÞã'¹M¨*>{\9†h(Ó€õlA_µ˜ýL¨#9gT„”´½pt8RØ�(Sà½Øê÷v ÃE‡žeÎÖBÌ‚®]̤ äniOp;Sboh±4‹5MXQ˜ ë+ì°&»„0Á«Cº‹Rùw@œ*ï6ï§ íByüÙ>÷Kºvóuú š¸YOÄzOJŠˆ R¢ùî¼UWÜ ÔäÔã|&NFô˺¦ØÜ‚ð©p59–{9j‡‘o®=ß5=Ót¢¡.DŒÁxb0NPcä¯1ÒXb3U%tí 1Û¹ò¼ŸRU£ · ^V<÷U,Âíÿ’ã•¿†[À°l(u¡}bðú����IEND®B`‚IMAGE 941 ./arch/monster/insect/centipede/centipede.174 ‰PNG  ��� IHDR��� ��� ���szzô���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs���H���H�FÉk>��� vpAg��� ��� �‡úœ��8IDATXÃí–M‹E†ŸS_Ý·ã™$FA ¸P‚Y(ºvãp'øÜù›‚À¥Ñ…â"AH"’ÆáÎ$s§ïܾÝ]ÇÅŒ!#Ѝ@¸ï²Uç9Å9o•lÜøœ§)óT³¯Ö�k€5À³  E‚‚Q4…Êßosÿ:OD”ú¢‚)¤\h*‹­“òü 3‘1 sfCZYŽ ¨PVÂØDþ =+å …"Ъ0+ЈR9ÁPW éµº¼búj$uݼ§qËÈZr0“€ o=&×:†ÐÔTiƒvgÂá/N´Èy€ZørXè›qÅ Â,xn¾¸Y+/_¶x—Y.´)Ìé”ñ°gŒ‘a¡˜®E¡w) Fpb É2Ø„¼ö®mÓ4„ãKô³ê<À+Z¸Z2ƒZÃëñéÇ=ã¯ßí qŒtý’îÁœ´72Ô~ê©^¬ˆ1%C%Xo1=ä1«B"Ù(Ç{-±D¼k™lÖ9pÓ8&[rO„�ŸÉ¨×÷˜ß=av·Ç ˆ|-!\Øà(‹ŒoL…ì "‚ž€dТd£˜M‡ž†ÝsÕ⪈ȟz`øAΣ+ìt™øsÇW·W\q@0Hmðµ… )gÒ<¡E W+l08kaÑ‚Š½ëD. › ’a\†CKJ´ÀGZ€oÅòÎTùäƒÂ /Õ윌Üz˜opÛ»2Ø,ˆS[tÓ‘ÇÁ&‹¬<±ÈµLج¨|À‡KŽnw‹4kDä±&|W _¬Žôz¸ç'4ÃÀÞ9ßõÜé ˜AðK êˆˆË †ŠÀ„ÔWÄ61>È”¥ÁOÎnÖÑhE½ˆÇ0W¬~›’µ>?†÷îÇÛù„÷bÏ€pû›‹|½¥Ãš�Òö%[†¥c\4œø`Pqä¬hPÔR›i[¡ßú…âœ%sj&€üñ)mAy_ WJáD ?:áÀ'¶IZŠGZXƒ#ÿÛ@ÝÀÆ)?‰kO LûÀ(^T³<!ÿÇcN-SYç“Ö3ô®Ö�k€ÿ¨ß8þŠÅÙóŠÔ����IEND®B`‚IMAGE 976 ./arch/monster/insect/centipede/centipede.181 ‰PNG  ��� IHDR��� ��� ���szzô��—IDATxÚí—MsÚV…ï>Š…’@ói;¶æÃãØÁã †‚pAÂÛ$Ný™z¦é´‹v¦ëÎtÕMÿAW]g&éŸè²ûþ„Ók{‘E]�q;ãÅis¯ž9ï¹ï}E¬‰þêà¿ @¨¢šAŸ&Õ�¬Ä{ä—G5üL»ùØ�IúÑߦ+øKÍâdì�„*¬™¤ïÞ¼­O²Ô…ß3øóÉö³úx,T§Ÿ¶ÉÛ©-óŸß�J §WOðë ÔEð[b‰ à!Õþãù#TÀûHçFÆ÷+Xÿ*„ê×AøNf¹ÜDÐè‚[î“#ùGò¿›o‘wɧøéMƒ#x¼ç§*ÂÞº˜Cì›"¢-°Ë&±hc!¡ÚXÕ‘:^Aà"¾í…sC�SàÀ–yøú¿Hó[‡cÉ %Ã)àr& u›¦àëMÂ]—Á>s-ñ°¯L€¯º¤8¨C®ĪàA¬Oƒx5DŽ¡ôüÔ |ƒ–"ÇÂg ×DϘý²ïN—0©ë’Œ¸;²b»†P? ÿa.š6ï“`Áf8ð%ü/g¼\ƒºWWì&Cá]ÀP'ü½„.3 \IÀÄ2¡(Ñ °•à÷½ðœL!pþ3g-(Û=b]èSG†¸Ý„¡a“ÚÛP5x»>ð›"¸‚ \S„m•…%Ç€)N@1‚˜yDø¨~{RƇø�a[è¾øj7u? w[†³-‚-8áÈq6½J2Ø5¢îGøb þÝØ3]?²ëØ B¥ å õ2 é• žæ‚_wCmÐÓR¢P‹.ðe7ä]“{IH­>Y¤ñán6±%MÂäš:yxg wU¸ž‹p–Üà+"¦f1}:A÷@6øÏRðP'˜¬I×íÀ{F'be îò„Ê$ä# /üGaL]ÍAàjJ\E1ýí¼­¬ #œˆnëj›öÄF¾7³O8;"$Â4<7S>óA=™‡s½‹fŽa$£ ì²N<UøhO \ ì&§î†x¨`b;K\ÿ× å†{}—ž!ü:àËu@¢òÃUÖ`OW)€9Þ¡Ô£Nä "WkP;‹à7]ʃI7aÕŒ9´qµiH°Æ;´Dæ]åæýÉ=Àÿàop==W™2����IEND®B`‚IMAGE 962 ./arch/monster/insect/centipede/centipede.182 ‰PNG  ��� IHDR��� ��� ���szzô��‰IDATxÚí—IowÆÿwÇËìà ;6ŽÌg‚Mí6`°Ác¼° A‰Äv“ª®]Ej+9w9ä/P%çž*Uê!‡HýU?ËÓW\¸$' Q%^ͦa~ó¼Ïÿá6q»ûIëààè·-¶œìôöÙÇPèá/¢5ö÷Í~»µ‹ÕD›± 0I�X‹ýÜÁ¿³kxÛ³F À¨$y3Þb|Òê»×›ì¯«5¼}™Gªa±ÜecñÜ ºˆÖÙ»™"Ñ‹VšìÎQ¿¼‰âÕI¤^;o@/µÙ¤a±ñÄƨŽbMöO0‡?·‹¸|•…y5‡è©ñ3?/"Xøy ¡gYNwáª·Ùøâ` ïuÿe¬ÆÞìåðäjéýO|Ð}p=ô@註nÜüÕ *€¿_Åä $‡hB¶ØeF¹÷ãÏáy‚ç,í+äš.+±ÊC1u:ÿ W«×V‡Mߥ6&è½=e1)_…ÖH#ômž‹ ¤CBYwO�·-ÃY•`_çáë,`þbþÓ*7ÙDr€>Do)r_Ö™ÏÌÁ{¼�ï7!èm/¸ ©°&@®êP÷Ü ôG~x¾@=σß2ÙÔÝ!EñXÜbÓF“‰¥fŸ¦0s8u_ƒXUáîà†²«ÃžåÈ2<Ï#˜!5´}¤Ä �}5l©6Ó·öà­­B&#DÃùØ©­Ã–ã`+òZ*gŸ!x”‡¸Ñ¤2(@‚¶Ô’{ &×Ö ´ÃP:½µGYÄtÚÑSÁY¡”I3 ÷qâ–I÷óß~lŠZ¢•71Û0 WÜ6Éìyâ¶ 5ç‚¡Ÿ„á?!%Ö[tßP�új8R¦gwà/ðTªJ¯ RY%48H ±Kí8"ø¸ç½Àî<`3:LÎìC©¤¡û!ipîH°gxLçÉ”àÿn±Ÿ²´TÉ”‹#H,Æw)”)+pH˜Z²Ã^àlÉP¿öPŽ$ Ç“ÖpúyÑf®Jó?¬ô²B:p+Š=s*OÜàë&ŒúhG2çªÅB'˜»\ÁÌóy(M BI‡´‡=]¢LèŒàFœ<±DÆÜ#c¶–¡mÞ‚œYݨb<qôCi?+:Œ[j0.µÛæ§œŠ­ëï‚k€ÿÀä#lyùuk'����IEND®B`‚IMAGE 917 ./arch/monster/insect/centipede/centipede.183 ‰PNG  ��� IHDR��� ��� ���szzô��\IDATxÚí–KOW†Ï.‹cðxnž›íñ Ø`;ÆL�Qplbc|Ãw)%°Ò5j•4©¢&Ê"«.*uÑEÿBe•¬²Ê&ÊÉxs2]dÙH±I+±øtFgÞ÷|ß¼Äë~Öº�¸�øï³ ˆÿ<Ÿ7À8=üN¸J^Ngñ×L‘6!ç p‰ôçê䕞Á[×2þ\ÈÃ6gKaúþŠA¾ŒÃ ´6é×N¾—>Ú%µD¯û1<ûãk,žÕ!êîwàÚé˜ HEZäïànN5ÈÄV“„ øîa�??M ùÛ*¦JâêïYÌþ² ¹¾a‹‚D‹4É›‰^$2¸ÿ8…ƒ'A¸ïù1ý �îÈ­ãAð,åØW?½Ÿ—«ë‚AF¢²àQh<náÑ®?öÃÿkúíI8*ÄŒiWÅØ& vG€Ú›„Þ[^/Á¾òñÿÚ‚ÙxƒDÛ›ðݾŒàƒ0ô& t]Кn8»0ë˜MžBˆPë.Lõ—àna]4-À ¢LH¡5Và; Áuìrê†|↣­½&ÂyÃGE·%@ïzáé-@ªæ1–ì‘ȧ˜RŽ& b]¬vuR!ýæµ"�åÐ ¡¡@>p™�RQ…ºGÕ©Ò:ˆA,a‰ƒÅ£ñ±/U‰ÿ› BwS˜:›ƒÜs;TÀD°iü¶ü5µI‡vº{¦E­�ÀE Â&»ÄWkaþV³÷¯@ýÑ{[¢‡ f9ªT ªŽò}litÏp~Fz¾MG)('~‡*„¢ fƒ›!ä% Z}…*R €yÁÆØÒ_A0Ü`Ò<F—l°®2`²„² Ïñex®ƒ]ë/æ ðÁf­ íd· ئ„ñ [†§¼iÅÌÝ$¼­¬‰!åfµCôÓ ”[~pûÔ†öœh®ê¡ÞÓÄô.hK/Èù Ôqðû*ز¾$kËf‹ŠÕeXµ¡%"sVXcbMäÀeçá<ðB®©àjìÛaŒ-çÌN~$‹vˆ¼]ÀDoÎR¶ä,‘,ÑÖùdBS :ùøµ&aË™/»ñ¹B©qË/�þ�ï�á§f¼3ñÁ����IEND®B`‚IMAGE 968 ./arch/monster/insect/centipede/centipede.184 ‰PNG  ��� IHDR��� ��� ���szzô��IDATxÚí—]sUÆÏµmh›e—}' $&!¼Hh’Ž–�B„×°`'i$vlƦiG«V­ÖÑÑ ý:ê½~oü(G¦½Ðg€vœÉÅf_.öwžó<ÿó_bYí½Öº¸ø÷´¬«]›ƒkòªúñOý5òûÂ.¾_.c+Ô!äUÜ �½@‹üä*âOO?ø÷¡»ã ´BTò£`›ˆáîàÞiŸ?Oáׯwm´ÀÜì‘7‚c¸NëÂ_'¿yshùÛÄ·×$ÑÓž>÷ã›W±öm‹Ô|‡ÜˆuÉDhÄ�×hšä_ 9|ô]§ X9›Að¾ îÏ|Xù2Ï{I¸ß=€Rë‰Èp ÿèþ'+5ò<kàÎ'>Äëú:ÔcÒ‰¼)AèiXúj KϲàÚeLnRðMH"=Ý©C;Ý„ó}/´ËY(÷\j ¦ Ì-;Ä– õl\Ϲ•‡’7‰unchx€Ájlë]"씡u61ÿa�3=ßÖÀ°ÛØ’€é²LÚÝ\Á⃠\wËôy‹XÂC¼€DQ4šdîvzßýžjG›¤*¤ìpTˆU |ÖåÔíãeˆ—ì…™\Q+¾ìRi[d:MWxÅìñ¤Š ¾,A½í†~>¡¢ÂšbÁš´|ð\f ×Z°„‡xYÈÓUÌTÐz L\C†pFÙQ0e°°æìÔ”\KÐßIƒË4iBFt \NÍißn¡’WõR%ð ÓS ˜m;Ø,qO‚Ö˜ƒóÄ�—mŽø4ü[X“ÈÙ¼õÔ= Ü®�&ÇÁfP_%H† Þàiræ¡ô“`3cð²̺IÔä>ôb ÚŽ}Ô�±¨€ÙåÁõe8úàê—À¼5hX£¬1“É*„Ò$šîŽ2ˆ¦-aÇTš…½Kýð`/’Ð;mX"ãHh+fóïF <rƒ9ä1¹nƒ-Ëi ÏðÜA,T0îŽàE î¹TÂâã-Ìœ{à8”Áæø9¥S \-K¬>Þ‘Œ½Õ%žþ!Þ|²ï£EHu…šS…P ¶‘‡%lŽàzz"n¥ºWë&”Ü2©-XceL„Žþ{ ‡ß“°ña׫˜Š6_çTܽú/¸ø�üöíl™ž`����IEND®B`‚IMAGE 183 ./arch/monster/insect/centipede/centipede_r.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""���ÿÿ�ú€r;Û=���tRNS�@æØf���SIDATxÚÝ1�1Ãÿ¿|¶B•"·-ºÃïȘ„»�è •€¶õ œ€w4„�Ôÿ› *¬‚jfÂXœJ7™{<†‰÷’ÎÍ=ê’¹÷y����IEND®B`‚IMAGE 182 ./arch/monster/insect/centipede/centipede_r.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""���ÿÿ�ú€r;Û=���tRNS�@æØf���RIDATxÚåÎ1À@A³Äÿÿr¤Ó•9S¥ˆB»0B_dxð�˜ Xd€èuÀ@P3€uÏ3Ð݇~uí̯Jy ç¼úïÜÚ ^…¢†����IEND®B`‚IMAGE 183 ./arch/monster/insect/centipede/centipede_r.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²""���ÿÿ�ú€r;Û=���tRNS�@æØf���SIDATxÚåÎÁ �1A0·ý·|Šä¯IñwÀP‡sa„2:Y‰pÃ,Ò›Td3• Ìa@Â0§}A­û¡fŠÕ¿isºÐÙ ™ýƒùÍü5Zœ…qtÅ����IEND®B`‚IMAGE 457 ./arch/ground/Winter/cforest1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEG$�ÿ��Í��¥����ÀÀÀ�O�.‹Whàÿÿÿd3�Š��d��2�×õc×��ZIDATxÚUS²Ã ËIÛ;†þÿï¾Ex@B¤<×»a͵‚§‡Ç°ñ,¼Ê¾üŽ Î°Oy¦™'àЙy¾)KJI�² ‚°R2 JðS~™µ’�mmÅbÚf”Rp­©‚Ï[‰K€ÿ‚iæ(Yæüfl3©D4¾+eF#ÖìÛ…M~˜% J°ÍhyÇ*Á6óÓeŽ]Çw×GÆ6ر+…HÁÃØfâÎ.†c Z]P´žÝ0§bØaXÒÚ®ÙÂdº/h:´]&@N3²4jvÙŒ£¼×ì²/,Öe”÷¥çôy›ÑNˆÝ<nF;ÉÙU_x¬=ívÄÛn‘ŒŠhivå¾Üż£sTßøã.Ƙ qúªÀýé’sŸ·œ΀ù}ï3$¡¾\ 85=ëçyÞìK*x³$ÉY;}qgÊÑ`ä0”}Iü V$m¤»N����IEND®B`‚IMAGE 412 ./arch/ground/Winter/cforest2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE����1��c��œ��Î��ÿ�c1�”””œ11½½½ÆÆÆÿÿÿ’¤a,��3IDATxÚm’Ä C‡¸ó ÿÿ¿×¢.;³lÏq®˜#fp¹‹`Á’ds²�°à EO»¼5¢`ÎÌÀÖZkf± –¢ Ú¹· �GpóÞý qáC.o'ÞÀ †½ãÅKáOš[ÃÞ¬;PŠ�j<ÚÎ…�¸AžÎtC"@. ´Þ{9£‡Â,õ n¼/g'¢P,3#¶×{㌡B}?vx=pf%Õ GÒ´¸m×?Œj6YܶyHã²X¶%ìyXÆ}NÙNaÍCçÄhóÑïÛs:–Wlã¡õÝ‚æáaœë”á0®i~,õ6Î xA…Zýî>‚k ʰúíVÙ–P½¨~ëæSÈ ¦¢ÜNfÌXB΃úùuÇ(A\½È×›÷<Ôzó £1¯‰î����IEND®B`‚IMAGE 511 ./arch/ground/Winter/cforest3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���-� O d I$f2#‹¨�Ò'ý!¥Q/×àòìììååùìñø÷÷÷gÇÛÑ��ŠIDATxÚUS‚ƒ0³àQ<*þÿ·—”ºÞØtBÀàŽ‡6FÝyÏ;øFÝ‘ÌdÂ`ÕÖlL»3ï<ĽJŠF;Ìñ“ÌÞÑš›W£ �NÕìÉAúÑÑçÉ@´™ $ÈÞLá‚èÂ’ÙÒ®.—÷_1STØEÐf ‘Þ£�£Ò°¤Œùÿ}Lψ^@OEø X1§ÁŸù"ðÒ!‚11×9ù½ÀÜ–PÁ”#LFp™÷K¯>ÆRRÜš¢eDAB w@ �2ƒu®2’ЊnžÄyЃò÷3­,htž÷ZLj3HXÛeω½ï¬uÌ:�Šn¿À«£1˜Qt�_Q¯}ÍVt¯’X‰€ ÀØg»ù˜RM'ÃÞ.fp*Ü{½g{»à _jïíŽ)íKí½Ý ˜yÕæùù¿Ýb�n©=è|õ[JæybØŒ éî÷J=(õT°þ‚«_Ãqg2³¬úU¨¦M :Ø.Ï«Çä‰ßÝ…Wþ¯x'1ç����IEND®B`‚IMAGE 431 ./arch/ground/Winter/cforest4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ�Í��¥�����O�d3�Š��d��2�G$´êû���tRNS�@æØf��?IDATxÚUQŽ!«ŒWñÿ¾‚"YvM'–ZñS¾Üiðé“6>ï!³¹h3æk.h.¿¹‚¶h¥� £VJ�<Ás7k¥�´5§kl‹¥Ä�à Ò©¿¾’*�¿‚iæ*Yž5ÎÅc&•„©‰ùYf"¢À�‚};ÚÒOSX‚m&މ�x ¶™?JöÚæô)Æ1³·]»¡À¼Œc†/;àZ]0hÝ0À¸9ì2,im×̱4î æ¶] N3,Tv¹ê£¼Wv¹F/F99Ùݽï0Ú‰°÷BŸ‡ÑN2»Ú ÐOÚí„ÂÚ›A$£:Q‘]9&ûݹwí%Æë˜ pܽ$¢öîŽq:÷•‰,ëw_ ‰Ø«rTqtÖßw÷jÜÅt²üøÒÙèºNF†Ó®àóLûìûh����IEND®B`‚IMAGE 324 ./arch/ground/Winter/cforest5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE”””�1��c��œ��Î��ÿ�c1����œ11•4ºh���tRNS�@æØf���×IDATxÚ­‘AnAªäÿ/6ƒŒÞS©a¤-úê>BÏ =¶_Ü7ôÜÝÍ6Ì9ø†šˎĆzo†ËaÃÿ¤� *ÉsÇÌD`ÁPºŽƒ¸Ín8÷2(ÍDâùÉH\R™EJ!¤¥¡Vø:´ëã`wõ÷cÃu`Í+¥ØÚ̲ÉWhhÏ…s‘ÚôÂKœÒîºgßB¤ö¬{öý ´gݳïÒ~ ÞÄw0įA‹ëÚÁì;¬ Ä«¼tß±¿ƒîÛﬠû†Ä|ç{\¤±\Þwž����IEND®B`‚IMAGE 358 ./arch/ground/Winter/cforest6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ-� O d I$f2#‹¨�Ò'ý!¥Q/���ïñ���tRNS�@æØf���ðIDATxÚ‘ÁrÄ0 B+“}"ÍÿÿoWãŒ×N-{²`a_ÿÆåÇ!‚öƒ¿ð®6þm(Á¢õþ íüP0|k)À{`ýåN½,ÓùáA`Îz„"P.Á¤ß¨K�ŧ½2F@]TA½4†Vļ¹PvÁ”/‡yX”Cù;Æf ²§å…óÔ™ŸLHμ?”|#“sŽ(Ãâ7¼Î{ŽëûÕúŽãØç8Úºm޾néeag[w½Å°2»Ýݶ<hëN js çs݆ Óø±nk»­ÛÛÞ×ím?Öím÷¼½íž×ÐòZ^Ç÷ü�K: ¦Xð‹”����IEND®B`‚IMAGE 179 ./arch/monster/misc/Chess/ch_bish.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷0¬bÛ���tRNSÿÿ�×Ê A���VIDATWcX X+´ Œ\PFŒÁcˆA 0†ŒÁ�eL©itB7®FDÊh ©ÆXÁÀ a°B X¸ .T5sÀ€$�É?áѵð§����IEND®B`‚IMAGE 185 ./arch/monster/misc/Chess/ch_bish_w.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���YIDATWcX ø+´ ŒÅ§ ŒþOŒCP†=Œacü2šajZ„еÃÕˆ_2˜pª1VÔÿÕ‚0Ø/@‹?ðŸ3þÿï‘’ÿ‘BÄ0�£j Èà����IEND®B`‚IMAGE 262 ./arch/food/ch_burger.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ1��J$ 1Jœc�¤y¯§oÿc�ÿ¬ÿÎ1ÿæcÿΜÿÿœ���v ýÙ���tRNS�@æØf���‡IDATxÚíÏÑ‚0 …á­]Ï\'¾ÿãz*qI½ò’/@Rú/„r9Ærº¶ñ+µð5©B΋JB¶»}Rƒ, ¤}_Šòâè½§õQßiIâ»+ Âç– ´-ΟÆv–äÞpšàà%‹£¯¿™c°ŠPâÛ¤kù³'üõí· }b����IEND®B`‚IMAGE 175 ./arch/monster/misc/Chess/ch_king.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���OIDATWcX X ´ ŒÅ03”aÿ Md3”Á�c8°@ÕˆA¬NPŒP«š] µÀŒ"Z¨jæ€I �:7»ì'�����IEND®B`‚IMAGE 180 ./arch/monster/misc/Chess/ch_king_w.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���TIDATWcX X ´ ŒÅ03”aÿ MdE± ”ñÁʨÿUÃÊB×N CþÔÀ<PÆÿ?hŒ…öµÀŒÅìZ¨R«`n’�/ ~dR„J����IEND®B`‚IMAGE 179 ./arch/monster/misc/Chess/ch_knight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEçÆ÷½½½���a?L���tRNS�@æØf���XIDATxÚå1À0ÂbþÿèJ\‡.pR·ª^qÉùB«`b.ٱϛ hÚ/öë–BÄ;¼]m„lµ•Ï\-57§ ëGæÖ€¥eÁ»G˜IÉež ƒÓ����IEND®B`‚IMAGE 203 ./arch/monster/misc/Chess/ch_knight_w.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���kIDATWcX ¤2Zà -ÃœÕ ÌXqþ„±ÿ„Ñÿ×&Ì?j/b¬¨gøf¬è‡2º`ŒUö ŠWü‡j_üÿ¯*£åÿˆí½öG {yˆ”<LMC½Ô… ò�ŠÊå|Q����IEND®B`‚IMAGE 165 ./arch/monster/misc/Chess/ch_pawn.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷0¬bÛ���tRNSÿÿ�×Ê A���HIDATWcX D2pA LP:ÃÊ`2ZƒÐua20Í1V00hAŒÆ.ƒÑ U B;Ü©`@�Š‘É^"°����IEND®B`‚IMAGE 176 ./arch/monster/misc/Chess/ch_pawn_w.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���PIDATWcX D2pAýŸ  û?è ù/Pk�”ÑÀ„® “iŒ±Âþ„áÿÂX|ý˜±ðk¼Dªþ/Djû…UhNò�^Q£ýÑA—����IEND®B`‚IMAGE 189 ./arch/monster/misc/Chess/ch_queen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷0¬bÛ���tRNSÿÿ�×Ê A���`IDATWcX X ´ ŒE­^Z`ÆAc…#Ë*TÆJFF¨ˆ« T»h”ÁÀ„Îhà‚2¦F¡‹À˜ºØ V@¬PÛ ¶/p`:U4�êTt“Á€�E”—ÙSê����IEND®B`‚IMAGE 197 ./arch/monster/misc/Chess/ch_queen_w.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���eIDATWcX X ´ ŒE-^Z`Æ™ Æ ›©5_ Œ/5P†T;”aÿ Ñ ÊhàB30uÉ_‚ZqÔÊø`eÔC±Xþ2Ä… ðB+ì? ÛÄ0�¨Ø Sy>’����IEND®B`‚IMAGE 189 ./arch/monster/misc/Chess/ch_rook.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���½½½çÆ÷0¬bÛ���tRNSÿÿ�×Ê A���`IDATxÚ½ÒA À Ñ™ÞÿÐ¥ÈG R¡Îú!Ñȵè8੤0+’¤6�AÒg$Ù\S3c 3î<T€  .Oø ’9j€#JÀkÝT�°µMf›ß>7—w2Võ����IEND®B`‚IMAGE 211 ./arch/monster/misc/Chess/ch_rook_w.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���½½½çÆ÷ÿÿÿöˆÃ���tRNSÿÿ�×Ê A���sIDATxÚÍ’A À0 ÃäåÿÞLi(#aPz˜.¹¨.8áúà´€é@L(RHƒFH¥à÷2ÏlbR&ØŠ¨Ú�<6ŠJØH8&ymÕ êª‰\†Ö^±µM°#`ïì“ÿ 7—èŠð >����IEND®B`‚IMAGE 315 ./arch/armour/mail/chainmail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���ÿÿÿ@@@¿¿¿!¡à ���tRNS�@æØf���ËIDATxÚ•SÑ„0ôpüÿ_Q2º^bí‹RŠeÙövã¹¼4ë›Ç®ÉQ6Õ ¨&Õ&½Cìzz£[˜VõôVf*îñÓÃ<¬[ú%ø@!²òˆH’dÆK°¼ÃSuþÄe!JÞQ¼'¤B@î -r3Þš=>2Œ÷$a´§³ÆlpvœAËIx –¯ Ò8Ìlhº˜µ(QocrŒÿ‹:§Eiuoj’x@3k®Ö(ô÷Ó /.ü^ŠØdñÄ`����IEND®B`‚IMAGE 223 ./arch/indoor/chair.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,c2Í…?�1�ùqcD���:ò_���tRNS�@æØf���rIDATxÚÕÑÑ € …a;zÚyÿ'n !Õ˜Pô_Ä ZŽI*Is §@ Hú (пÙ+dkú‚Ñ pn*¥`¹ÂößlˆN0#(¯T¸‚­²ŠhR <€ }Œo’¶}Ž'‚>…` _€¸—ÀŸ¤ ˜7dÂN����IEND®B`‚IMAGE 185 ./arch/indoor/chair_1.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���‚B'!Jóm���tRNS�@æØf���[IDATxÚÍ‘± À Å|ñÿÿ¹ íu8ØäC´7.d`$KƒL‚Þ‹ÀÀÔÜ(4žq$p qa] oÁ…xÈ fhÏŠžÍwhŸ¿ê¸@AÍŸ¹�ÿýG����IEND®B`‚IMAGE 190 ./arch/indoor/chair_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���‚B'!Jóm���tRNS�@æØf���`IDATxÚÕI À0 #ùÿîFÔB¢ zj¶3(ö9dÀ�J0œY ßø9#Pœ€ž¹À‡`^@¡êXS¸¢`8³P{PFW %pý¤/ nþW Cw½lQÂsýžbY����IEND®B`‚IMAGE 177 ./arch/indoor/chair_1.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���‚B'!Jóm���tRNS�@æØf���SIDATxÚíÎ1 À0 A¯ôÿ?_ˆÒø”Êà" F…áqZñf�$ ‰ ˜Ï‰`ZðµQHè£ë?ŽäèHÚ; š5[pâ5ÿvt'Ô/Êdq����IEND®B`‚IMAGE 184 ./arch/indoor/chair_1.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���‚B'!Jóm���tRNS�@æØf���ZIDATxÚÕA �! Múÿ?o)˜‹´a÷´FK3q½i8h8@+Œœ_ñ¼N0¼†l…:� 7B Øq5LNî…œˆþ «**Ã?8a§ãÚFø_ íûò�ûR$H^Í����IEND®B`‚IMAGE 233 ./arch/indoor/chair_2.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'”%5µ���tRNS�@æØf���…IDATxÚ¥’Ñ €0 5gþÿ—ÕúP„`Qo •žéÆ\^MìK ©oKÖù0ßlYßå+D$áN@xy! Ñ( :±¤ P‚«í( t‚å'Ayë0›,ú¾á—pPB0Ü›¬~®ã]aøÆ€u]a]ý…�Ü«fÜe·>oúè����IEND®B`‚IMAGE 218 ./arch/indoor/chair_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'”%5µ���tRNS�@æØf���vIDATxÚ¥Ž Ä@Äì¤þÿËB¡:Pá6 EØllÀ©À©€\ ázrR|Þ£Eð4‚_° L¥²¾„­`)�ª×z 3`…¸ uª0  Æ’›àù‡Ðc ĸnñš n1¦£À.80§‡*Bä†Þ;����IEND®B`‚IMAGE 227 ./arch/indoor/chair_2.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'”%5µ���tRNS�@æØf���IDATxÚÝAƒ@ ÁCþÿåÊpp)FHí­ƒ´J”YGìòwP›�ïÍâÚ„g‰ .ÈŒ¤"° ¡ (ð1·ÀŒWø˜.è.ÕÃ#`q ˜]Ph¾y„”¿´pb)†W›QæÁ_ú‚póá1`ÝDª"l"ÕïBÎUxð|ŸáT����IEND®B`‚IMAGE 218 ./arch/indoor/chair_2.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'”%5µ���tRNS�@æØf���vIDATxÚ¥ÒQ Ä0 Ñv¦ºÿ• ‹)¥ÊÁ‘@Žwñ+ð+=¨,÷‘– Œ@Á±@25ÌWo ‘$d 6 *Æ@5t0¼ÒSÑpŸ,@Y*­Ãšhû÷Àñ»ì ŽmÁyaM paMß ö GŸSå®Òª[����IEND®B`‚IMAGE 288 ./arch/indoor/chair_3.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEïÆ÷���cccBBBÖÖÖÿÿÿsss¥¥¥;°¡���tRNS�@æØf���¶IDATx^UË‘Ã0 CÍH:)€OÈäÉÙ§÷ÿÛ•‘»‡7à�^¦t|)ÑÅ~ŸX2S·¯Œà±ÀÌ) Äóx ¸ûIãþz=â/ˆýíU*Û±³ˆ«¤fxˆV l([„N£UB€È„Ñ­F4¶JHg¶di�m&Ä-Œßíj\ —NTu®–ú7ûhIà�D‚o@¸y‰òÿ .ÒçôákµªNúïæ¶uÅO¬����IEND®B`‚IMAGE 288 ./arch/indoor/chair_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEïÆ÷���cccBBBÖÖÖÿÿÿsss¥¥¥;°¡���tRNS�@æØf���¶IDATx^UË‘Ã0 CÍH:)€OÈäÉÙ§÷ÿÛ•‘»‡7à�^¦t|)ÑÅ~ŸX2S·¯Œà±ÀÌ) Äóx ¸ûIãþz=â/ˆýíU*Û±³ˆ«¤fxˆV l([„N£UB€È„Ñ­F4¶JHg¶di�m&Ä-Œßíj\ —NTu®–ú7ûhIà�D‚o@¸y‰òÿ .ÒçôákµªNúïæ¶uÅO¬����IEND®B`‚IMAGE 227 ./arch/indoor/chair_bc_2.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�ÿG$d3Pÿ‚B' R-���y!a¶���tRNS�@æØf���yIDATxÚÅÒA „P Pãd&÷¿±n$ƒåãb‚‹b¥‚Ûb©=Àëjo ¿,H  Ü7 +¸ú DÈ!ð‘Ù'@L@Ý>q7hŸÀ÷vd¢{ßЄ�ÚÖAfúˆÆûç'Oœo=½_0‚&”Sæ�aÏ ž¦ß����IEND®B`‚IMAGE 217 ./arch/indoor/chair_bc_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�ÿG$d3Pÿ‚B' R-���y!a¶���tRNS�@æØf���oIDATxÚ¥ÑA €0 DQ£Ñÿ‹éøR:¸ä1º-„UÀ*  ˆPÕïG×$ð¾g‘. †`�=„Ò ¢Á€pAž`ÿ4¨à|�Ηò, í§€öó â=ûq1LÇEL«ÿÀ‚aŠÜ^Ñ–df‘Ù����IEND®B`‚IMAGE 216 ./arch/indoor/chair_bc_2.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�ÿG$d3Pÿ‚B' R-���y!a¶���tRNS�@æØf���nIDATxÚÝÒÁ€0P;Ñþÿ‹ó0Ò‘âMÂÖNÛ~WÔEsÊRe)… ˜7ž¾—)ˆqCO°ƒ˜CaØØêÀA¼,b*4¯Íë V–·ýä˜à¯2}:PúË)ùâÚ`Ù¥¿¯����IEND®B`‚IMAGE 220 ./arch/indoor/chair_bc_2.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�ÿG$d3Pÿ‚B' R-���y!a¶���tRNS�@æØf���rIDATxÚ¥ÓQ À ÐÅuËýo<Y?"hbðC–G‚W-<<Œ=P–=úB®PT_ê¡_t�7  ü2ûwǘÁóƒ1@t{Õt@Âô`ú³êÛýR»ȯÚ(� ºç÷¥–ÞØw;É����IEND®B`‚IMAGE 186 ./arch/indoor/chair_cw_1.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 ‘*½2���q¦µ‡���tRNS�@æØf���\IDATxÚÍ‘A À ãîÿÿ,„4dz°=8 9ì°AqÁ‚S\9Ö&`‚.pÏ#Á _a(” Þ¬ÕÀ‚¸Á‚$ì8žC‡ïn>Õu{þÌ©±FO*#����IEND®B`‚IMAGE 190 ./arch/indoor/chair_cw_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 ‘*½2���q¦µ‡���tRNS�@æØf���`IDATxÚÕI À0 céÿîFÔB¢ zj¶3(ö9dÀ�J0œY ßø9#Pœ€ž¹À‡`^@¡êXS¸¢`8³P{PFW %pý¤/ nþW Cw½l,8AóCý����IEND®B`‚IMAGE 177 ./arch/indoor/chair_cw_1.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 ‘*½2���q¦µ‡���tRNS�@æØf���SIDATxÚíÎA €0 DÑæçþw–Ž:éJèÂ%‹<BÇnå4$O€r`>'’ hÁj/¢ ÐGßÿ8.žGÐÞÕ¨Ù‚”¨ù÷EåæÖP/����IEND®B`‚IMAGE 184 ./arch/indoor/chair_cw_1.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÌ ‘*½2���ÚÓö?���tRNS�@æØf���ZIDATxÚÕA �! mòÿ?o)˜‹´a÷´FK3q½i8h8@+Œœ_ñ¼N0¼†l…:� 7B Øq5LNî…œˆþ «**Ã?8a§ãÚFø_ íûò�µT‘\Ø����IEND®B`‚IMAGE 174 ./arch/indoor/chair_gv_1.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 Ä��ÿ×����™’Å���tRNS�@æØf���PIDATxÚÍ‘1 �1 ÃzÑÿÿ|‚—âÅíP-,B‚׋0x¡\L}3&·5ø4N ÐŒ+:ý T,(ÁÖTP•8®ê¹ÍËü@  ãŠ|����IEND®B`‚IMAGE 185 ./arch/indoor/chair_gv_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 Ä��ÿ×����™’Å���tRNS�@æØf���[IDATxÚÕ‘1À0ĸóÿÿÜ¡ŠX´R/ ¶ >ƒöX¦÷RÐä)€Î¢Ià*ð¢Àº1…Ÿü"ØøçAýJbò;,¶ ÈÙ.È"çï¸�µôAJ����IEND®B`‚IMAGE 176 ./arch/indoor/chair_gv_1.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 Ä��ÿ×����™’Å���tRNS�@æØf���RIDATxÚíÎ1 À0 CÑXºÿëš.•:2ôÉàÉ8 &@ ‰ª"Ä=p1äàc¯D\ÐSßÿ8R ÷´7„ëÁ¡„ëýípÏ=Î[íÞ×����IEND®B`‚IMAGE 182 ./arch/indoor/chair_gv_1.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE1 Ä��ÿ×����™’Å���tRNS�@æØf���XIDATxÚÕŽ1� þÿg…Ät0µÑI«„á.ÖvœÁ=wB`—x^!>&C…:îÁ¸å˜ (Br ×Bq^Ñ6~QÙ3Œc áµ``—qü§tǦ����IEND®B`‚IMAGE 181 ./arch/indoor/chair_wv_1.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��Ä��‚B' R-��� ñy���tRNS�@æØf���TIDATxÚÍÑ1 À0 A%·ÿs@®ºFNáãB‹ ¹nÄÈiŒž–Š™Ç�ü�-ß›�‹+xÕ‡¼ƒ¶ Ða€ØF9Xî¡°Ó¯ºíÃ÷¿>©“É¢þœ|����IEND®B`‚IMAGE 193 ./arch/indoor/chair_wv_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��Ä��‚B' R-��� ñy���tRNS�@æØf���`IDATxÚÕÐ1À0CQ¨}ÿ3© ,DZ/þCìõÈ!c�p°ïî=`Ýé˜�Ùu B-XÓ€„?³kpI@$À t?ª‡0ô?ìºqm{€ù¶àƒJäû¿ÝDÎÂ_÷í­����IEND®B`‚IMAGE 179 ./arch/indoor/chair_wv_1.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��Ä��‚B' R-��� ñy���tRNS�@æØf���RIDATxÚíÎ1À0AÃÞÿßlAACªH.² #ĺ-=5�œH˜™È: A'D�fð²O’u@È"\¨#xì; jŽàÆ%jþ}Ñ”¶xOì§e����IEND®B`‚IMAGE 187 ./arch/indoor/chair_wv_1.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��Ä��‚B' R-��� ñy���tRNS�@æØf���ZIDATxÚÕA À@ÄÖüÿÍe…zÓ¡=µ#â!AÄõ8`¸0\ #ç­Páó¡²$:§#¬°i¸Æ (+:á…äý « È ÂŽ×4Â7$©ù¿\<°®Í����IEND®B`‚IMAGE 430 ./arch/misc/chalice.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTE÷½÷���RB�ÿÖZç­�ï­�½Œ�Öœ�ÿÖJÿç¥Î”�ÿÎBµŒ�¥{�ÿ½ÿÖRÿ½�ÿÖcÿçŒR9�­„�ÿÞ{œs�Μ�ÿÞsÿç”J9�„c�ïµ�Þ¥�ÿçœÆ”�ÿÎ9ÿï­”{�ZR�ÿÆ!ÿÖkç­Œk�÷µ�ÿÞ„�Þ­�sR�{c�DÀ¡·���tRNS�@æØf���ÒIDATx^ÕÒEn1PWa˜á#áþ׋#EÙÄž¿MÊöªß¢¤6ûgÁOcZi]Â[?bÊ—ŽÂé\>ì àuI“;:§2DÀ ÙJ’R�*ž²=¾SŒ"V"{䜛²4·]lÎнùó¹™çÙËcè�¬µÍMg`QQõ_ ¯F°¨<¼» ßX{0m¨Š¦æ…·Ï` ë”EµCzZHÜÙ8ÛÊu®›�JaíB¤k@ø u¸'€™z^Oõ ¸ó­Ù_Ë'Jl Vi<����IEND®B`‚IMAGE 434 ./arch/misc/chalice.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷���RB�ÿÖZç­�ï­�Öœ�ÿÖJÿç¥Î”�ÿç”ÿ猽Œ�ÿÞsÿÖcÿÖRÿ½�ÿÎBœs�R9�­„�ÿÞ{¥{�µŒ�ÿ½J9�„c�ÿçœÿï­Îœ�ÿÆ!ZR�ïµ�Þ¥�”{�Æ”�ÿÎ9÷µ�ç­Œk�ÿÖksR�ÿÿÿ�ÿÞ„Þ­�{c�ä~P‰���tRNS�@æØf���ÓIDATx^ÕÒEn1PWaá3áþÇ‹#EÙÄž¿MÊöªß¢¤6ûgÁOcZh™Ã[>bgæŽÂéìМ~ àuÞ‘"{±6sˆ€3@²•$¥p/.Ǿ39+1>pÎuYêý16gèÞëíÖ;çjy‰€1ÆïÕUÿúj–�Å&€§g›T{c6º â"£Ü¿ñö–�ƒšt9UG¤×©„À³µšæ° eXB`½€éuŽ"Ü«Œ @ç=/òâ ÜùÖì¯å¨ nkDd����IEND®B`‚IMAGE 469 ./arch/misc/chalice.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¨PLTE÷½÷���RB�ÿÿÿÖœ�ÿÖZÿç¥ÿï­ï­�ÿÖRÿÞs½Œ�ÿÎBÿÞ{ÿ½�ÿÖJÿçŒR9�­„�ÿÖcÿçœç­�µŒ�ÿç”J9�Δ�„c�”s�œs�Μ�ZR�¥{�ÿ½ç­Æ”�ÿÎ9”{�ÿÞ„÷µïµ�ÿÖk÷ÖZŒk�Þ¥�{Z�ÿ÷çsR�÷½!�ÿÆ!÷ÖŒç½)÷Îk÷Ö{÷µ�Þ­�/‰Ñ;���tRNS�@æØf���ÛIDATx^Õ’Õn1 D×vp™ñ2–þÿÏšJÕ}Š·¯í8yòI4Ö8øg‚‹˜6Ž8öîNy8àº/ÑUùúFïàùà©_¢Àa·}!à�€¦0hk"ò�7ííÅ;¢{Ÿ‰v+¥Ì¬µòš|s@ù©µÎ»®‹O ÖJ©üY´x |Iº„À¤U퀫‡0Εª³bL†ùQÀ…µ›ÌnÒ3ðqŠÆ4�¿$ÌiµX¬fˆ"˜šæ 8À‰{‡P¹³7ÜRfa"«°Ú³“\–ú¯é �N êKA����IEND®B`‚IMAGE 442 ./arch/misc/chalice.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷���RB�½Œ�Δ�ç­�ï­�„c�ÿÖJÿç¥ÿÿÿµŒ�ÿÖZÖœ�Þ¥�¥{�­„�J9�ÿ½ÿÎBR9�ÿÖRÆ”�ÿÖcÿÞsÿçŒÿ甜s�Μ�ÿÆ!ÿÎ9ZR�ÿ½�ÿÖkÿÞ{”{�ÿçœïµ�ÿï­ÿ÷Þ�sR�÷Ös÷µ�ÿÞ„ç­{c�Œk�¤ ±���tRNS�@æØf���ØIDATxÚÕ’Çn1C—êÒö^ÝKªíÿÿ;ëä4Z_J:ÍA ý3áW1ÓL—þé;…àÄò²`þ"Ÿ3ïåÂR&:!x �SbJI€À#ÎôOÆj‘Tˆøæ‰i[³¹Pó]âÞ®ã4MµêhÀ9wµÖŽ›4¹ˆOïàã~ l*sýÙ‡� ]ÖžMã#ÐgÃø4_••§•i«ýá:S©$ð¢ñhM»yÞ­à뀔X e8d= ÷w«00Ã1é‡~ ¼øÖÑ_Ó a:ö–ê����IEND®B`‚IMAGE 418 ./arch/misc/chalice_bro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������O0�½FÄ–MϦ`ѨbÛ¹véÓ–óæ²óæ´°„?æÌÁ“J†Z—h$žp-¦w5éД­<êÔ™îÛ£ïܤòå±G*�ºŒCC'�á€åÊŠjC�Ô¯g™j&ÉœVöì¿ �Ö¯k‚VrHЧaaͤ\ïݦëÕš·!É9���tRNS�@æØf���ÏIDATxÚÕÒGn!P~‘¡sžžï@cÉòªèÙÚXÕ•Tˆü&S¦Šª5êÁœ©Y[J«•M}óÀm-I‘ÜI{0à Y £È€·þ‚ŸØRsMô¯Î¹.íý‰« ´ïÅõ:{ï ³ãJ „0ïUÁ ;}ƒÉ–0ø>_dP1‡à»%µÀ‹Hãüá–;D4ÊvÎÚòãTÚhàÉÄÅVŽu}܈Û@kl7@Jîv1bHû`Àtãä†q8�O¾µøkùÆ¢ !oBŸt����IEND®B`‚IMAGE 422 ./arch/misc/chalice_bro.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���„PLTE������óæ²O0�Ϧ`Ä–MѨbÛ¹véÓ–óæ´½FîÛ£°„?éДæÌ¦w5­<êÔ™C'�ïܤò屆Z—h$žp-G*�Ô¯gºŒCjC�á€åÊŠÉœV™j&öì¿Á“JëÕš �ͤ\ïݦaЧarH‚VþþùÖ¯k á‹���tRNS�@æØf���ÐIDATxÚÕÒÇnD! P®M½¿é3éåÿÿ/Dв2o¶ÉV> KFý³à7™2O<õéLïÁ…—¾á´š¸Ìg<ö76÷1–\�¶«ek5}�^Ú3~âHKM´¯Þû*íãNª+4Oõõ:Qm÷20 „Æ£i¡Dá†o0¸Tt”ÀÃ[̮ǨZS ²(¹Ÿýú •‹q•wn‡ü8¶¸3qµ•Ã<6ÊÛ@kl7@Jîv] Kûd!TÅ໢;w¾µúkù÷ ôb‚¥����IEND®B`‚IMAGE 448 ./arch/misc/chalice_bro.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTE������þþùO0�éÓ–óæ²öì¿Ä–MѨbÛ¹vêÔ™óæ´éД­<°„?îÛ£ïܤòå±G*�Ϧ`C'�¦w5æÌ•f"—h$åÊŠ™j&žp-jC�ºŒC½FÁ“J†ZЧarH}Q ÉœV �Ô¯gëÕšì֛ݺvá€ïݦͤ\Ö¯kæÏÖ²mû÷ÚÙµpaÓŸP6���tRNS�@æØf���ÕIDATx^ÕÒ7rÅ0 EQ>€Q9ÿsØÿâL»pê·ö•TñPƒRý³ð[b™|â·X@°æÍ0r|ÆWÊ üàf8°ãýîtOä°Øwžýƒ!"|–×ø WDïÒåIk]èXAPŸ­µ­1fzK€†¬Íó¼}t%”(ló šp€’AÈLwç} ðÔæ¹)º *®Û'ݽ@ÉaãB¡C¸Eú8]ï{à‰«¹¶Ëåv ª0úóDKížjdñ]yY�EÝè¬ÎVÀ…k­þZ_Dx ñÒy¸����IEND®B`‚IMAGE 427 ./arch/misc/chalice_bro.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���„PLTE���O0����°„?½FϦ`ѨbÛ¹véДéÓ–êÔ™óæ²óæ´þþù†Z­<¦w5C'�æÌG*�ºŒC—h$îÛ£òå±Á“JÄ–MÉœVžp-åÊŠá€ïܤԯg™j&öì¿úö×jC�ëÕšÖ¯kЧarH‚V �ïݦaäXŠ¡���tRNS�@æØf���ÕIDATxÚÕ’Çn1 D—T¯Û»{Iýÿÿ3 9Iëk2’N| HÿLø«L"Äš^üH!x‚µ®€NÅ×~Á„Ág=Á ¼ãœ•ˆ D­)"K�ßå2ªI¤B”oáf´1z¤zèL¸œGç\#»4B8{ïÇý\b²–8¨)Ó©%XGÀíg€*6£÷N·!M0Æ/ÓÞ17¬uVÚ(uÄü8gñì㋉[ºöýu@Æp·@Êýn´tw2·”z8;Ø⋵.þšm ÖÀs����IEND®B`‚IMAGE 423 ./arch/misc/chalice_cop.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���„PLTE������O�ù^ ûgû„4û†8ü UüÁüŃýܨüß«éQü¹w²= ÃAÔKâOG�ý‚C�üƇüÏ•üЗýÛ¦ùc1 ø[ü¬eü·sûu$ü?c ý帶> ü’Eû…6m& üÓ™‡/ �û€.ž8 ülj—€¼¸���tRNS�@æØf���ÑIDATxÚÕÒÇn! P®iC™Þçõôòÿÿ"EY™yÛä+–%#þYð›Ì5m´ él¯ÁÕCCi5²®Î` ¼ +)’)c 0�2!c4ðÑžñ»j®‰öÉ9Wô}q¼p÷Í{y»-ÞûÒx !,GÕB°ÂÎß`¶+DŒ>Ïg™T.!ø¢K-ð"Ò´¼¸î"je‹ÞÚ òãTÚhàÎÄÅ^®Uu݈û@kì7@Jîu9aLûdÀÓìÆi<w¾µøkùÝ2 ‚¶ä›����IEND®B`‚IMAGE 426 ./arch/misc/chalice_cop.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���‡PLTE ����O�ýܨû„4û†8ü UüÁüŃù^ üß«ûgü¹wüƇýÛ¦ÔKâOý‚éQG�üÏ•üЗC�1 ²= ÃAc ü?ùcü¬eü·s¶> ûu$ý司[üljû€.ž8 üÓ™û…6m& ‡/ ü’Eýþù �7wŠÚ���tRNS�@æØf���ÑIDATx^ÕÒÇnE! PÆtnïåÕ’ZþÿûB¤(›˜û¶É�+ŸÅHFü³à'‰1M4ñM¯Á‰–±¢x*¿Ìçßø÷”‘¿zßJ0àî4i­ä»dÀc}ÆwŒT\‰úÙ9g›ÆvÜ\ zÈ/—RJ™ë+²Bå!«!Xa†/0˜=D2‚Û‹OÊˤíb^´Ô—O®{ƒàƒ%3¶1f‡ô:3¥pgãb+ë<¯›�m‹m ¶ (•®•÷(â=j^�¶\ÑGàη-ŸÈ— SRâÞ����IEND®B`‚IMAGE 455 ./arch/misc/chalice_cop.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���œPLTE���O�ýþù���ü UüÁüŃüƇýܨüß«ýå¸ûgû†8ý‚éQG�üÏ•üЗýÛ¦û„4C�ÔKü¹wâO­< ø[ù^ ùc²= ¶> û…6ÃAc ü·s1 m& ü?|, �ü’EüljüÈ‹ü”Gü—MüÓ™ûu$ü¡Wü¬eû€.ýõØž8 ü½y¸Åj���tRNS�@æØf���ÙIDATx^Õ’Õn1 D×v–á2–þÿßšJÕ}Š·¯í8yòI4Ö¸øg¢‹˜6œàÔ§»X`¡-ìûR Ÿ¨)óÁM¿«åîÑg€-„*@x1ˆ˜>¦ç‹×ˆï9ÓN)%cŒJbnÞœs­1f|`€³Ö¶¯~¢"K¸æhÄšŠ< ´IÀÝyÅ0¶ÖY-‰É¢„º}RÕ-qaí½Qˆ+âãô]èˆ~I¼˜Óa³9ÌT–4tÍH@÷z¬I§s ÜRʺQºÖGv’ËRÿ5}h îòÿÃ����IEND®B`‚IMAGE 431 ./arch/misc/chalice_cop.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���‡PLTE ����O�éQû„4û†8ü UüÁüƇýܨüß«ýþù1 ù^ âOÃAÔKC�ü¹wG�ý‚üŃø[üÏ•ýÛ¦²= ùcûgûu$ü?ü¬eüЗc ýå¸ýóÔü·sülj¶> ü’Em& ‡/ �ž8 üÓ™û…61ö¿²���tRNS�@æØf���ÖIDATx^Õ’ÇnÄ0 D=To®½lßôüÿ÷Å‚œ$ï5J'>³&ü*Ñ&O¾Ú¾!x¢¢*i«2ÓŠÈ€·j¦…BËÈ€D#H°ðž¯þÇ£œyÌDþéîj[u<ÄúúÎ]/£1¦}pÎ]¬µãqÉ£›€v×oà$çĦV§ÍÜ_B(}=ZkTÓ#‘£aüèšg¤Â*©Z)HǹpÁ‰g{:OÓy�cØ8ǾÎÓ6Àëz{7'�5œ:=èðଳ¿¦/cû ÉaSô%����IEND®B`‚IMAGE 351 ./arch/misc/chalice_iro.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��IDATHÇí”1k„0ÇßÒo¡é Û9tðÀAáJ1\‡ 7œAAá¾þ¯ƒ©P¸BbéÔ¾dúÿxïŸ÷"ò¿<X!bE‚"!rwÂÑ EFDŽr;§"#åÕ ðDD¢AQq¦¢¢¤ðÌkšB£i„ÒðB±&ûeêããBA‹ÅbéÝyåâ-!çŽ;wf:4ç@ã�«|æJ³š(Þô& uX+å'_x¦ (ºÍž8À‡(QŒÌLXbÞå"d4z,Ã% ‚ÐÐn]ø³¡ÞRRûBé9@ßÚ€ xX}ûiah´tŒƒ;oèÐ_±gdÂ202pÛñ»ÿä¿Õ/¢Dq}����IEND®B`‚IMAGE 375 ./arch/misc/chalice_iro.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��0IDATHÇ핱jÃ0†oé[$ )Э:¸Á` ÁÄC(é !CŒm°!‚Ì}ó¯ƒE[±Õ¬á4ݧÓÝý'QòœÉ 0 ƶ Š-Š-+nùBFî_(v¬HQ~¥ìH8N"&îcÅE‰¢`OAAŽ Ä0ÁðÃÂ`Ð8~qË�ŸdG)´8ô€!CÓÐÐPûýÌ)à> Hù¦âÆ+‡£Â°”0¸_9S’- KôXÁV Zïîhy§ˆ(ª{jÖÁ µ£è¸ÒÓ°æ'F `G‰¥¦Áb9ņ–.ÑôC->œsBžlHHØü ääÏD è Ž4íS(qU4Bë÷ &®…šŽž†–Ž–ËƒfJ8_Ê×צäœÔ‘—éÀý����IEND®B`‚IMAGE 363 ./arch/misc/chalice_iro.113 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��$IDATHÇíÔ1kÜ@†ámü/î`+CŠ.¶Á…à80Æ*Œ‘HBHዤp‚¨J±ÿüqaÅEp¡UH•̲;Õ÷²óí̆ð?þRxc刣 Ñ…Íœ/]J !®E76 qÞ…/¾KúEÁ™{Q)ºs«òC’”Ë�×^ЍmÕ¢ÚW£$-,Â;¿ø^’ü\êÂN¥Óé´sî´‹M AáÑd29FŸó�ƒd2Íò“oJ»Œ^P˜ ¯€Aã>¯• ~–zïÜå¢Ã«­­Û,@ö¢£“AgëS¦<7JV§Ñø˜ APªÔªÌY|k¨×ƹ+WÎׂ½ýŸÜ ¨^X_}õËÂÜ.¨ý|>©sÅÖÑ Ó;ê=­xÕò¿Ïm¯4¤èR²����IEND®B`‚IMAGE 384 ./arch/misc/chalice_iro.114 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��9IDATHÇ핱jÃ0†oé[Ä )Ð-:¤Á` ÆØƒ™tð!Æ8C–.~ó¯ƒE†Æªít ‡¤é>îî?‰‘ÿ™¼�Ó�áÑA¢Ù¸3dç…<¸¢8°!B¹‘q`O9‰˜¸ÿ 9ŠEFJFFBì‰a"‚ñŠŠ $Ë�Ä”„¿RX“£—�Œ1š‹¡Å`h9qô¸OR ßܸÒÓÓÓP‘® Üœû•ñR€ÁºFÀ…šÜÛJ“€’ëÜ{,ïdë�!Í=-7^-$(:®\0|­ÑÂ8PPÓb¨©9®Œ-] ï]øÔ<˜ò,`Ëž=ÛçBâÐb€ö*`áHÓ.…²® ‚¦¡C°n?S­ëD¡¥ã‚ÁÒa9ÿÃL çKùúÚŒü�6¡pÖ35¥����IEND®B`‚IMAGE 374 ./arch/misc/chalice_plat.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��/IDATHÇ핱j„@†÷ͧÉ[(lu.) \!ˆpˆ!¸\ ‹+N\AAáê/…Fq£^Úcp­æÛÙæßU¢þêp�XˆÍ�M€&À›þ/Nȯô74G<"ôôE¤ y_D,ìÿ„G†&G“r"%%!vÔ°PÁxƒAc0B² ðJ<û#J²³EĘ‹ÅROë…³#}ñAÅ=†Ó@>Æôž ù(âÆA"¢¤›%™s”œ€fJhx&Ý ÐT³5¾S§4-=ŸÏ]^P¢„#9%5–’’ón€„œbžÂûîƒ#¯„„î‰Ã@›…Ó¯´â[Â]  ¢Eh¦õŠÙ7‰BMK‡¥¡¥áúG k-\måãiõ +À³Î«+����IEND®B`‚IMAGE 375 ./arch/misc/chalice_plat.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��0IDATHÇ핽jÃ0Fõæwé[8 )­:¤Á` ÁÄC)éà!CŒe°Á‚̧ƒÝ@©UÛÉ.’¦{ôéþI‰zÌÔ�0b³š-š-Ñpny Bþ¸¿£Ù£‡“±gÇÇ(bäþ"Žhr422R|@È‚þ–ÅbðÐ#¦o$½Ø_Và1³�JH08ŽjØÏœ˜OJ®\éðx<%–Ã@>�z÷Ž39Él€b Ú ¥à,¥  Ü=5²¥�My‹@Å*`/¤h:Z+¾õ‚%ìÉ)¨pœ” älŸî›< X³cÇú~€’>¢@0Á˜9ÒÌOfCIƒPû»¬…ІGMCÍå S)œLåókõ Uâ-5½~ ¬����IEND®B`‚IMAGE 382 ./arch/misc/chalice_plat.113 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��7IDATHÇíÕ?kÜ@‡áýæÛä[ÜÁV)\lƒ‹ƒãÀ«0A" ‘Á…/’ N *Å“âÉý‘ìÖ;ìN5ïÎþfg7Äð> €�{l4@”\H.ÌåŠÿÂo$·fÒ0~ø‰f/bÏþŸÌ<H2ɽ;¹_ ¸±;Da®žtvcàÒÒã?~¿GB´”«ÕjÕàkÕhC´ðE¯×Ûêt:kß§Zôú!|ëYf9¢…^û h•^¥€R3„wçî§’õ«•¹»I€­$[­ÚÜ·I½bˆneJ•Z©ôu2 DQ&WÈöâñ÷àD#Ÿœ¹víìí€heõž ¢|§ÀÛŸ´ü¯„« ·¶5Ãú¢˜v£ÊF«ÖØh¼ÉáT O–òãk‹á¤®0 §—����IEND®B`‚IMAGE 382 ./arch/misc/chalice_plat.114 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��7IDATHÇí•±Š„0†}ó4÷ ©¶;‹+<°XAD ‹È^a±ÅŠ ((lsÍw…a‹[sê^»’Tóe23âiïæ½�Ë�Á£m’Iˆo÷w'äÁýIŒÏ i牜˜ˆj±pþ>’INFNNJâˆa!‚ù55’š…@n|PþJaCÚО AM‡FÓqáìp_dhà›#-5ÙÀ<nÖ}äBI² =±Ì€†ÂÙJ‹€ 0Ö}Âp$ß8ÒÞ3Ð83àÔBФgd@ðµG 3 ¦¤¡CÓÐpÞ ˜[ºDÝ»ð©÷`MÈ«€‡ç‚Ô! Í�åTÀÆ'MÙŠ}U(ZzÆ®Wê}(èèÐz ×?bX)áz)__›ö~�m lô;RiQ����IEND®B`‚IMAGE 371 ./arch/misc/chalice_sil.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��,IDATHÇíÔ±J;AÇñm}¢@š}�»ÿ élƒUºttÂël„ó±¼ÒÒ4—‹Ub•»ÊwøXä…Ûˆ•ÿv·š/3¿™þÛ/™/<%8šˆ&Fý;q1âJ432û3—™™º„œY‰rQæZ&³´˜ƒ+Ç"Jc¥¨T*ÁràÒâ˜ì'¯¬Ž˜!*,Üi4µÚ£ûÁá!˜»µöêÕA«ÕZ+]§�òÐétåGÃ`DeÿØ«¬ÒZi®²Õö€gÿd©€hí ÓiÕÆ ôˆ¥hçàEcì!1<3¹Jm£R¹O„ È]ø³¡>ÕÎMMûÁZY oEÂ|Y}ñ.ajÖv‚m?)S·bmg¯±µ³õtÂoœ¼“ÿ¢½fcÞõ¡Æ����IEND®B`‚IMAGE 371 ./arch/misc/chalice_sil.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��,IDATHÇíÔ¯N+AÇñ±<Q“šy�Ü}›ÔaTݺ&u$+HÖaH–5¹IÍv{U‹ê®â>ˆ.$$$ì” ¸çdfÔï›ówBøo?d>ñq4ÍL†wæïhˆKÑÂD&'“[˜»…œ™¸¢Ü•\n¥ƒKÇ$*S•¨R)u_.,Á~ðZ§[…¥;­V«±±Ñxt?Z‚Ì­µ/:ÎZå*P €^¯wð¨°L˜™Úþ°W»N¥Lm«�ÿü‘§¢µƒ^¯Ó˜&T`@¬D;ÏZS‰ò,jZí>‚ PªŽýO–\êSíÜÜÜùé€`eõ‚2a>;|+aê”Öv‚íp?©RÅÆÎ^kkgëé„nœü'ÿF{ètfÅ}Gß����IEND®B`‚IMAGE 374 ./arch/misc/chalice_sil.113 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��/IDATíÁ!kq�ПÝ'*Äü?@ÝädÜ\)Uuçq…ŠBÜÌà361HÝdà ¹ÛL2•;u~ò2¿\s}/yõŸˆˆˆˆˆŒ&Š©bêÂT1uå ‘Ü(n]¨•¢Rùê;Z‘£Ä Ž;~z±9ʈbib©XzÒù+r”÷f>ˆˆˆˆw^üÁÌ£F£±±µµÕØ 2ŠÊGƒÁà Óé¬}Ad•=ƒ^¯wðÍÂLd$•ÁÞ ×ëí­<ˆŒ¦²Òêôz½ÞºM¥X;èõ:w"'0WìüÒ˜ø,r·V6¶VV>‰œH,Ô–j9‹ˆÈ¹.]»v)g379›Z-rQ«EDäjk;ÑÚ‰Ö³¥Èhbcg¯ÑÚi=‹ÈIDDDD^ýÃpcmÛܺ€©����IEND®B`‚IMAGE 394 ./arch/misc/chalice_sil.114 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��CIDATHÇíÕ¡nã@�Ð¥ý¢H!þ€²û“ÌJ£Caa‘Â"D tMªƒ†… qì¢ôPlT\ú l\í‹Ý£õÊ6Ú·ãÙ™u(Ãÿð ôÁç1‚H,›uïØÏAäÓô_"K3+Qw¯$–½DÏú7fv"{‘ÄV"±±ˆ¡'‚ö#2s™H&“ ‚Í8àÎÚAüW s;é  ÁÚ=ž• ''…GÓ{­o^]Ôjµ£Ìv Ð^¯ÆÅ£½õX  AÕEÐ/r»ÁRê¨Ôðì‡d°;ºh4j…ù`{a#rvñGiî÷”^h¥½\á$—{˜ ´%½—~Tá—΃k|¸µ°pûu Ø 4Ðh 쀑GZÚ¥0LÛ… utTÝóI6­ƒÂÙ‹Rå¬òô®láõ­üþµ•á$æEi°Þå����IEND®B`‚IMAGE 362 ./arch/misc/chalice_tin.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��#IDATHÇí•Áj„0†ót9ô”\–^*Ë‚ˆ¬(¥ …Õˆ²°ïúõ Úšíu29å›ÉÌü‰â&�€  Q$(¢iOxñB~Cq$"CM+£äHÊû"b!þŠEɉ’’‚Ü“ÃBã% 1…Á ‘HŠ0À+ù˜ì7³T#&¤ˆ9‡ÃÑNþÂÙs|ñAÃ;·É §-€úàB=1pȰ 3`ÀRyGÉ èæøÏ”[Šf´ÄÞ xµP è¹1àˆ9oÒ‚Br¤ÆÒâ°Ø�!‘Ôèy ÷½+B^HI9ìH €‚Ú«€À'M•pcÐ4ôHºÉ_1Û&QÒÒ3àèèé¸þ‘ÃZ W[ùøÚ¤ø.µ9<âg®â����IEND®B`‚IMAGE 365 ./arch/misc/chalice_tin.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��&IDATHÇíÕAkƒ0Àq?]ûJ.e—ÉÀ!‘J¥,¡ ª%ÐÛ>èÅÃ4jÖk ÆS~yæ½<7‚° æc7 Hb$1áøŽùp"³å_HRBŽÈñ9R’pY$ö#䌤DRp¢  Ç:bXˆ`øM„F¢Ñ(,?Ø}À'—ÙVXÔ@‚ …Á`hÆùÆÕ±|8òM̓v5š“Pþn”d{¨è' §âì,%'ÐNû·¼Sø’z"ç 8{!GÒaé1D\}za�RJ* •?0”t‰B£V{qõ>ØjäMà@BÂáÿ€ '&rvÀÎ+MG(ü² PÔtÚq¾£ý*QÐÐÑchéh¹¯Ä°‘ÂíT¾~m2øË“¥ø¨©M����IEND®B`‚IMAGE 371 ./arch/misc/chalice_tin.113 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��,IDATHÇíÕÝjƒ0Àñ<ݹØ#(¹)ƒAX "¥¥2ÙæT”‚ƒ<èu…­õ³·å ¹ò—䜜¨DÝêt�\‰Ñ�‚f‰fIÐŽ¾¹ø|…fM@ŒnŸ˜ <î*qeþöhR4;¶O:XqÚDFH†&ã“#ß±‰ à™„— |Âãù(!Á`±XÊv´”£“¨„˜WŽm¼Ojüà‹”d4 „˜†ú Ôäì;RãÎó;ÙM4Å( ÙN”°ASq¤Æò6©”(aMJN‰%'Ÿ(AH1d˜Þ^ì¿yX±˜6·¬@0§ Ì¿ÒÌo 'VCA…àÚ÷lÚIJ*j,Ž Ç¡g C%,åý×&ê `<ãÊÊ����IEND®B`‚IMAGE 373 ./arch/misc/chalice_tin.114 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��.IDATHÇí•Áj„0†ót9ô”\–½T aQ!² ,¬&( …|ЯEÚ®©º½.C’Ó|™ÌÌ?FüÏİ ÜÛf€D¢PxÓðê„ܹ¿£ˆð8¡¦u"#"¤\D,Üÿ‚GŽ¢@‘‘’‘‘;bXˆ`|D…O…¢¢B#‘$Û�oÄ”¿RX“£·�ŒÄh,†ƒ¡åÂÙá¾H1 |òÁm²†Št```ø¸Po!±?"è©É­´(°óý–#Ù>À‰€f´øÎ 8µ è¸Ñcð9ïш(¨i1ÔÔûcKè¹ škB^ 9<$mh§6Ž4=¥Pî«‚DÓÐ!±Ó~¥Ú׉’–Žƒ¥Ãrý#†•®—òùµñ]"”’µÅì����IEND®B`‚IMAGE 7190 ./arch/misc/chandelier_1.x11 ‰PNG  ��� IHDR���€���€���ôà‘ù��ýPLTEÁÁ±ÐËɾÀ½ÿ×�µ¸µÓÕÒ×ÙÖØâãÿÿÞàÝÎÐÍÀåÀ«ñ¿±ð¸ª¬©ÈãÍ»ïÔÀïÛ¼ßâµëµÒçæÃÞÈÞéêçêæÿ��¸ÔÒ®°­ºÚ¼§âƳ໵å·Ê×ʘô¸×Ó¡ò¹­™œ²ì¯ÈÜɹ»¸ÁáÃÀ¾£¥§£ÁßÕÃÞܬɯ´É¸£ôÇ·ì½ÈÆ«¿çÈ«ðÑËâÆÃÅÂÍÞØ¨óÍÎÊ“Áç϶ïÆÇçɳðÓ±òηð;íʦûÆÇÉÆÎåÖÄêØ½ô¾Ê騹ñݬý½ïáÁëìÊèå®ÓÕÂÌȼѾÆëæÉëà¸õÙÏèà¿ïèÄîâåãÇḬ̂¾ñð³ÙÃÐíê¬á¬RTQÖôñ­éÍËÍʲ´±®ñ±ÐÚÕÅÄ€¨â¤¼ÑÉŸç¤ÖÓ{²ÆªÈÇtÊÊcÙ¦!¬Ì®CEBÃÝŒ­óÈ¨â½ØœÂì¿Ì´uÂ×»öòšÕ¹ÉÒËÂÝ¥ÆíºÑäÐί‘¡×¢£Â¤ÆÅ¶¢ñ¯—ö³·³›ã؉ØÙ£ÿÌ�¨ï¶²÷ؽ½†ØÖºÑȘ³Ó¶ÊΓãÞuéÄwÔæß¾½”àשżÈïת·²µ´¥ÕîØÐòÓêìµ™öÍòð™ÈËÁ—ì—ÖÎ?¢û¢ßވͳ±¾¼­ÇèªíÆ/ÛÃq›Ý›ÐÎ\äÞ˜¾ÑƒäǬ¹Ð–‹ä©ÖËhÖЭ·å•Ö¨Pð¾"ôÚšÿ½�±Ò®ÐÖ²Ñé±ÑßÓ•Ö Óò}¼¸—îÈG¾ÂžÕã×ÝÆ„¥ø‡ðîY›ä˜Øâݮ׫®Î‘ÛÆäáaÌÌMÐΈˆòŒ½Ô¥ÏÁ€Ð¤~àânÅÁŸÔ¢\ìὼ·ö´!§ØØÖæwèÖ·ð™ªÀ·×±f¿œšÔú§Ç±Àò}ܾM꾋ԹWåÈdÌЦ’ó¢Íò@šçº÷p¢íŸÑîcòºJÞ¿ ì¬zÉÕyÝÎŒÝãØê«>¨ØaÏêPÏj±Ç™£ÛKÛÖ$ÿÆ�·ñóðˆïê?¸Ø|ŸösæíâðÔ}ëÍ[ðÃcúƒ«óJÿ€�ÌÉmUrCì���tRNS�@æØf��ÇIDATx^í{s¸lÇòöô"ÆÞ¶mÛ¶m۶ضmÛ¸¶íŸ¾ç«Æš™}³w’“ûOêy’ÌšžÝow©ßª^1\N6Ì7ü'å?Ž?<ÿ›[�ÿ *€ÿ"šrÏ=<0~Y ü9HQþý;ž}§_N(¼2zв\Qà»Qã—OVüø:"ˆ0~ù ¸Àw‚‚ø ^¹ö#x˜ÃÆ/£ð€¤ –I üïÿÁû‡¯ÖNÌKØ«_6¸3ÐÀÌw†Òò;ÌcDXDaâ<Ô·Ÿ_.Lú=S”©݉{BÏÏ%VWNà\7Qº™Ž/Fó¿îÚž$$¼Ê¸ÿ—Ä!O­sŠî›;—W0þñ†MÓD´‹Œ àƒt÷Æ:GŸ8Œ/ u¤!jšŸ'%dõöŽì8GÆOÏ_œNò•EÙ†7Dñ‘?ðÊ�ðúNØ?’=¥+æ¡èèmŠ"š<Ø�Âf?Ô‹° HÓ=÷ÿøK]Qè]‹�ø^³óÀß—• !·Õêp¤Á—ˆ AÐŽ„q~Kï°g~X’܉ÏÒ]@ ^úxÈlo& xË•?øÑ{¼²7“¼™qCˆAœ Ä XÀl…gТIžZó⼃¿¿‹äÆKÄâ±WƒVåxëñ¦SQ›Ìܲ aûW.΃E! ü|ç lùð[ó à$ž†˜Å¨R‰’KÎ; –­°ç`ÿ©S0 !Qv•N˜…mÌ6[rÀàd!€äÁ aóÐwx–/QH^S^ïiØ´Q}·Ÿ Ü   èð™(š€ ßEBPmr´ õyP�LqÏ%âÿ~‰ëUWgFÀ€À lïHÓÈ££ñïH"ÈŠÞÏóôûK·l¾ ‡õÒ]jÛ<އKˆ�ÂmØpa; ø¶[ ¶·2¼Í—ƒk‡xº°Ks‚ÍIKqÜß.p°Ëd‹%$„@Çb•çñ»·ÍÜQ�!1ô[Ø#FâA {⺹Ôƒ.%,I»ùÝß›«lABr²%9p12Õüå>ìYÉ#1·þ‘x�àÃ)°|þ‹…Ãç3šKõß(eºHI>8[yê˜`+ìÙ{TÀØHFBš\ǘ(Çá|îE¢h�ä±¼!dòlIÊÿøÇO?§éäâðw¾v'1¿oƒÀDÃ&GˆkóS² äß °¤´[¨÷ãl¾m~’ ìU®% úÝO•'o}h­žN.¶­ …Ȱ`Ë2¨ OË va~Œ½a·NC¨`‰3Éþa ÎÖ.ºw)ÇÚ¸(û3¿Vžú> sGp X>OCÚô•ù©Ù:äZ8¢æ=÷)£!çøá ó%wÛæýD?0þ÷@øÌdÙðoã�In±$Y–­°û¼`Í•m MqïeŸJžãm³>f4å§XrmÓŒ¿H�>"!ª¼pQ¸ŸQ=šúPKZh�¬_³("4rú« ²©¡óÖs4ÚŸ2 _=Ÿº~ex”–¿^~ÂA^f7Ž#¨ÉE°ìÈÖ—(äœ$cH&ÁT’ж‘Ò ³™~”_~ŸÀ~÷ <\ €×=O3`€=,8pUr]fqxʃE%¡Æ—da^'©ðt%®”ù°ªûK¾Ãôsåíh"¸k®òpKÂs$‹pS§>b±`:êN}pQøž)ru¹iÚ/a8 H"’ÛÒÓ1þz+€:ÿ}»©~^-[ïÈ40Óí +ôê7{çf@Ç¢‰ñVw|üÀ@ü3Õ=å¦!ŒŸ‡S’Z;m±$ñŠ�{¾‡àž;øYýïˆóÆqÉC ›_呺|�Lžÿر£4ùjšÜ•m o›NØu¤>lѽSy…%œ‡+£f ÄiÀ¿†™óï^À'WTIÎ8³u`BÑ'õ"}öüø‡oØ€Þ¾zö.­ªµµU¬u§¤Ø ´µ®Ìo®/[40ëËÚ€d—Çáu•.Ú«½µÎaÝù1þ‚“'l+f¡Pwbh¨Ûšè-ikÃDúúÝçgâñ[²`×âÊVmeü€;¥¦Üážþà@ddd|uJcYb:§‰Ë–¹Õ¦‡×Ñ’!B4ñä|æü¢—WâÔÔàŽÓ¢wÝtË*sœs¤3,TõÔ/zîWü;_Î H¿²Os¥ÔħtØ"‹ …§·¶žÉ¯3†'Öõ¬þCaV´×lžFHÂð©®ë^ce‘:R3¤Â’vm…ýœþ ¶ÖU–!µ·l%óŸ¿þï•4NÈ®©)3»\1/­µuå”|»ir„ûþ}xÊã Qgõˆ•ããÝ2ð/!‰:ÿ.àO6gÉ<N½'•Gq8\“MMšx%ÿ|õÿS÷É©õ¶šëÉæ¹Ví×VwMcéÙô}d 4œ"ð#2hc†jà& ´,z©OvŒàº ˆñ',0%JÑ’nþ/åËñõSÎ`p=Ø®70ŽCa"ä Ìâ”°YGçÐ)—°xAHòTnz™¨;.š(ƒ`¿~kÁÛ÷–F°—Íõ?á(ÎZ—=jFxë‡o )diø°Ôæ¶îÀÚHðqU¢Û=€ÀaÚÊðþ•Ek$ÃLßüã sdB‰,!8 ¢*->¿ Ô?ëBWå§’gIÜdG?­Ç+°ysÜ4IJuä«E‰èx79¯§9ùgúüã Ëâ³Ò$ÈiùEÙ¡5=õmG…$´HHô32cp8_ºsm 1á)y«ôß ï·ÓÖ‰çÿ»Ô‘!Ó$Hè_¹9Ó’v4#žð·H}z, $Èj­9fB9d>a7X¼–á-µÒSás:ÿÇÍŸGNš„ÑñŽªÝÖ”ž2“9Â` €elÊ8ü¬%¬^€!¹R€ÞìÝØ J'„FS¼W-ËŧB·”ž·Á?xì â8¤GNo®É4kÌYùVö´g2A½ìYâœ!û’§3¬M¬Ûƒ$HË3$Ùáp¨V‚w,ÚiŽ©Œ‚Sáxþ‡?˜¶nœWÃøKÑR¤(®<Pž]gψ1ÕuØ éG‰Å]åÏRq±ÿË€Ît3bƒ~…#õ]>’¸„ï¼q€'æ%´ÜuëÛñÚ8Ò_°¶´ ñ,p ŽÍgEWOQQuM™9¢¦±,3‚%¼€îΈ™0ÅÌ$$ÅãðËÐ÷/ÖYÂÓEd€uÖ/‚Sw¬ð¼2ÒV„…¥6VÆÜq7SˆËËÓÆÑ@ÂÕ¯¼²lŠË^ZØ…Û»u‚À!qŠ«»æ^¼…>N„ì7HíKÏBhÉäA‚§6;pæ7°ñJ‡ª GÓRsSÃ&9þÁÏ H²ŽÃ B„ààTÙÕ8ÁVÓ˜Sàs 䮣5Å•*ÚJº%›ØÉªÁQ‹9NÆç}èC¥�¢ÃÕß=â@f:‡`jkÇŠyv’³ãPAiÙ2£ähMÑ Æ‘ÌÉk Â#; ³`¾‘òS¾¿‘UZdÏÒÆÙË‚€âfP:ߨÙù Ø�9¢ârÝË$GÓ»8–°“Œ!YÛÓ£hƒJ–ë36:±2Hü˾ržÔZsš0žH²UÈõUø“ºæDg\ßy¤Ö¼Ž:ɘq@öpÅ?üÌÆ¢dµÚzv3g€ê@Rÿ¦sÇúÑÑd ¶ö&ÞþFŸøx©­t-©## ø|Âþ/9‚lj„9QÞu%‚wd6›R™Ã§$F¸ãiýO-àê$æÙé©+ç§ÊVþ=~æ.Éårɤª– ^pK„•ryYY…·©‚¾¤¤_Žªå-$ÿVnŸA­Á‰ž ÓÓ¡mìf$‰Œ6ѱ<:=Ò$¯âÄÌ*Z¬.²æ#Ûp8‚Uq‹P¨|ÎßÅá…;• k®?’“Cp=æê)+&Dŕק¿Í½@i’ªÝFf ‘‘^êtü•e×›kWn$NÄ) Ú»\VÖëcw,,Ü^vý± iA„ÄH«µ½ÉçpÏ´ç ´½µöQ¼Ìå‚ Öï@ع™P&rËž§c*Á ,0€óµ-®ä¹™ÊSú.G‹ÀúoÒÖS–3íÃV:*œÆ5þŒbBXZk•Î4¢!¢¢tP ÁhfµuÖúu+:›%Ä‘Hàjµ]Žu( èOÛz/Æ&ëkH®1Å ÑÑXlïÎò6“Nê´ ×ß¿Pªã ÌJ9ÚV_*IÆkÄ„ùƒ_ÐKž1|`âž–ÄA±d÷+SŠ4T:Y:â þë –qH=¾…Ñ‚û‚$ùfú ÇÆ_wM¦WeFÀ„yÕ/`p^ö=vý±šä–´«£ž¥CL�ª«É4Í»-x ù³(ïæ‡ô‡7Y‰ ‚ÿ?Õ0"#Ð�ˆêp5¿EÇø±0—^ÀqMqGVTNžq€Åv�ëêˆ\ò$ßÂú%ø xq+»Û(¤ãdÐÀ@N©,B§ h¢ú>Ûå cá+Êg«ÉÌ,j/Ð ‡ƒä)ÚÁà(sš $|¢î4î üÛ÷ɸ´µÇ  XƆCÿ"cÊÿ1&#œyF:`u¯é*™flî8 ãÙ3L:sú�þ÷·€ßú,7x»_û9ÙÖÌ$‘Šð€ÉÖ%ÁB´k‹D¶Ë^W~üòçÑáÙÊnðt» HpÆÂŠQÇd‘ÕÖݨ§ÇcÿìC‚Pzï<ðμYÜí¿JŠokCÑ0þÂ5å=Wh›Q{H¦(0Ô·ëÄäÃòXR–&·×—ewtÛF² IÔ¥?¡„_ñÊ_V¬‡ô»'|(g`w7{ÆpeA›À]Z߸±BÛ¦¨ê_²“CŽþqzU}»NWÿûyH’è|êsW-¸&ó]Ü9Ù³  :ïx‘ÅÝÝžâ˜ë¢wìXZGÇT ŒŸ^\ÞáAˆäsS „ì8Œ¤w?‡§ÅÑçQg_ÞÕq?‘qh"Ùè\׊ġ‡æ°¸<9rbûO2׈ÐH·1;^Ì´ô·¥Ä#ªþ7üìÞqz5'žTÎéÇ„?�Å)ùíM:>c>ô£Çó' õ7±VáIWOFÃBìsÉB„Ó\ᢨP!ép§rW¹f=;6%B7Òh…/?n\’«ëƒÄÃŽSìçûŽ j ¿ ;7iŒVOè´?#aÛ/Ún²y%d÷_²©¡ ócá ÿ ØÁX’µvtýžL.'äŠf’�èñR½S»¦ƒÞŒäFñ¥ƒàïKËm.{¿;g‡ÝÅ_°£§È/¡c´W›aS¦²hòmŸôG=õ•Û)X}ŽS_À[øQ¼Bàßw†ú¹­¼¾‹†½Ý6Á:¶¿mêqš—xÙü3µq “©õ{2V¿ýWw}¹ß²«¬€yŒê±å¬ gvi ¯T‹ˆ@•ï°  ( 7Óµ€¬ÙÔPàÑçÿÎ8…IÖ~½øÅXxûjñêiÏ4ûÃ/ _==ö(Ú¥{Æ©…u*]€¡½IfÀ´ÝT'é9paYã‘\6ÿÏÆY@«ÞåÝ‚Ÿ7Šìʳ A²ºKôÓDXKQvF™Ý# ªnMªFQ‹ ê]¢~ úm9lþÏ c‹ö+MS“Hö-dúf¨R Ƭ±²Î)`«Ôç”ÙHˆyNgɶíÆvì…±P‘Cæ¿>7¼J¢iê ~‡irfsw�>͈/³�Ab‰sr"Ñ@WOYŽÍ…F"¶o¯ð°´g-ª‰2)"óvvü üཽIU²\ßÕ“Qi'‘꡼¦ÁŠ†á„©å;쥶.•m;£Àî)jD\sÆxpcÿšløãý~ë‡ÈSSš]Çœß/ZiÆüÁÛˆ t j‘ÖÜ®öAY˜Þí2¢hr”©Ž„úüûv!4<éáläZ%Tb¹ƒcTŽ33bGw7þ¤UGÄ…Õå#öòìjb‰vN¬¯�æ—J¾¬i¿¥0 ÷xezöJl€ØøìŠ"œ¬À¶CªŒ(a>`2O>!ë^ØÓÓ!á3ÂìÂ^âÇã‹€C­(û-ö8ºF•ëøœ¼Æç$éBîê,6mŒ)F¤ž—™Qi÷°Å¸ÜáÅÖ�#y´”_4}Ç߯ÿûº8$55R{e”“|tww,´ë†·M°»|,{²¹BfF`©oc|Á½âGþÂÅŸ‚«­ÆQÏ9¬_ºæHMñ<pM€¯k½<&ÃöÏ)U𘌪G®fdh|òñò§Ñ=ídØÿ(ÓY ÿ6õS]Ä/1=^TQQ-²m'ãý$´ÞnËήFð¼Yáïä u24¾ˆ-«”ÑÕ«…õ^d +«×0“ueÆl¬.6›sªq²Ù`övÛ ;¨°Yù(HÙ¿êüWÂÚÑ÷í´+K›âþC!"bi qRugFÁšâÊJ; ƒŠQ =ĨTÄ,<"«Ë9…‘ÏÎqupi«.EŠšL'àŽX™+§½±ÛPT_?(±DPf«ñè Ïõ6k®DKâ'A‘ç‘Ô >ýÍOË<I#›Øòò»º°¦ýž×ßÞž/¬ ½½ÆVªÐÊÿáɆóÊ•Ò×wþDÕhÖ7EÈ3بë'>Ñh…x˶ê0XF7õH&5¶NR)ïƒ"Ï/¯ñ¤€žŠ¡äz)âÇ&YӬLJVäÊhœg”uê¿dãv Áû7è餧ˆ½Ï³ÿÂÞŸ€*„ÜM{3Ù¥H`0f=®ŠÒSŒÉp"ª²Ø+³£¿¬ráqWñoúbéFÊ” [€e)íIƒK‘C£§PlguR¬© ‹W‚º êíÕ‘œr Ò_“]ØK¬ü~a/'«ÕVP?0�~t¡âé,ˆò¢‹¸CS{ÇVŽy^sG¦Ó8±tÂ:ÿ¥\ùÀ'† ß§ã&h\Ц ïÛ?—_7ÒÃC„ÖȺõ¼ð:ŸçYc*‹UÍ—N6ƒMßûä#Ìua²á þ¦YHòÐÔ6ß»XɤŒjn6øb bˆžM'ü5°i¡ÍƒôtbI(„rÌ ,,·Ïú0 ©¤ Ê^ˆQ�‚õàÆÇ} ÕenŸLÓia ÉÀdÝÝGýõ—& Y½'p(_„$€qkrïå|ïn_{ÃNÒ)AÞ΂ŸCÀIPæy5Õ‘> êª)e¯ïÌéCUšŠÉÄžÉݳ^ncïn÷cÀ×Püš#uvFÈ›òÏŽFÆžÚ;LÙ,€œ(íÄ&€·%÷€[…†ÞE ØÚk7‹Ó aûX‚>Æi_¶ó{ùü!=´¢Çw¿±&&¦XÝÆm³PGlj®&z_`¨†‹¤ªˆCRôu$)â àô!.” T_Dhn“ÓÁÄT`Sdg+oǽ¢­½ÜO¸xQñ]¨·w.{¡çdÜ´ÅHlVà) "Žg@ôIOŽ[üݼ+E߯]’à똻I-sÝ–“Ç+£ž¾ïçOøû±¸xî²í( ˜àæ­d\°øÓÉáþ÷1/Á o½ø¯¿òÂÅ”¯ ®Ó¤éñuÝ×|ñýƒ«>†ñI!ÂUPk~Ñé¢Þ̓{Ý{4‡ã]œÞ^ˆuÙÙ]€ª¿ï_K.·¸‰Ñ«Ÿ¼ÌÿUäºÛ ”ÈuÏBHý]ð;qóD’í;Šï7,$l|iîm„†’ëõ¯(B•<X¾b}•äÞs¯ÞW BTk¿§l ¼þ`ã»IyGÞ´ùÊ‚T—# ÃÜÐõûÿ f_Ðôô6Ù5¸šP=AÇO¯jKWGLp»úµˆÚßÒ`ŠõÚó¬K.ˆòêÌu¸×ÿPª§k€ŒŸî­Z§zÀk¿>A²+5¾dwÃÞ,Iêнc¥×ý…×·â7ÁgÈ{¿NQ›@ Ñ? ‰î¶t4o¹~õ]@Ó>d3ŒÿtU(©!.‡ è»ál$O >¥ª  <i)»þxócCÂUà#Ÿ™§á«åË#ê[§g>Ni[±ž¼µrì0Ö9È $. ]ßwèþ+Àõ.¯�OÁQáQaǘê«¿açY·X7¦ö¿nw�¶äqçEÙžS¸«7qY:韜•Xà_~A2^€|üe/*¢ö7áäpÜØG^›yZÅ”çßcÐûƒÿ¤|»+ßÊ·ò­ü|w‹—Ȇ����IEND®B`‚IMAGE 292 ./arch/misc/chandelier_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿ��SSSÚ¥ ÿ×�ÿÿ�DDD·ï«(���tRNS�@æØf���½IDATxڽю1B«ýÿOÞª1$Þ¦Ë<z  kçKùÚë".#óîû€I(`}¿Ðpô f4Ìò’ fyD�å™å%+ <³ü’Õ <³ü§_HÏ,OôíI©<;@ž#•*@žT— ä uù"@Õ6�lÈ£{έ׮@ ¤ûxÂ=ß–g_ T“Èz ÝE€¤Cýo tCÒ@W5ÐX/éþ�þ]jHÉÊ!àE����IEND®B`‚IMAGE 300 ./arch/misc/chandelier_2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTESSSÚ¥ ÿ×�ÿÿ�DDDÿ��ÓkC���tRNS�@æØf���ÅIDATxÚ½ÁÂ0 Cìöÿ?™ZYdÑlp#:ÅÏÆÊ8ûG}Ę£ÏÖÀÔcÞ�It@:ø q-¬Àz%ƒhå‰ÍÐËËPé9Ê [ ÒÓÊ¿Àjž£¼€¼=ås¡�{ö¸<+Àž=U>+d€=9Wy`ON–ÏWö¨.#01Xë'Hï:²~üEÄu &ôÖ¬›Ð*ê@ÖMhð±ÄôîA>Ð-èßFúOàïóãön½ºÆ����IEND®B`‚IMAGE 305 ./arch/misc/chandelier_2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTESSSÚ¥ ÿ×�ÿÿ�DDDÿ��ÓkC���tRNS�@æØf���ÊIDATxÚ½ÁÃ0 B“AùÿOÞh,:Å­v›/­â!Œm�¬Ÿ9ŽÑFÞKç~!HD :�У-Ä; –A/)köð=6ðYR\¥Ù¿@rØ 4[xÕA4ž„'X%^OÂ3Ñxð¾¡JŒÆ“ð¸ƒh<~}m€Áh¬´�”fß÷RÎÀ*¨Žú³ °¯”ýEœ}ÔÇžHAø ˜G ºE ¥ {)èhëöÞŸÀßç r”÷…²Ò����IEND®B`‚IMAGE 326 ./arch/misc/chandelier_2.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTESSSÚ¥ ÿ×�ÿÿ�DDDÿ��ÓkC���tRNS�@æØf���ßIDATxÚ½QÃ0CIM¹ÿ‘‹ ,ݺ¿!E©Ê³!–‚�¢þ1䔦L ÊkŒ³à¥Z5¨ûb=À ­€ùé L�^œ�¥AJÊÛ�Ñ7ÐÀ !ÉÙµœËm>¡$éPËÁÙ™AIÒ —SdˆK�j9eŸKRùÅr7”$�'c¹: ^ï‘Y\‡îhJ¦>ªóˆ¦fqs¤Áû1bï+S‘¨€â×>bd@4èˆãÐ;‘!ÞÚ®=°ÚG0ÎP‡Zµ 2ÔG@žŠýŸÀßëg%Q¥wIP����IEND®B`‚IMAGE 305 ./arch/misc/chandelier_2_copper.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��KKKÿ��àeæ‰.æ¤Nÿ×�ÿÿ�===Òùq���tRNS�@æØf���ÄIDATxÚ½Á®D!C…§àÿñtjHƸ|½ œÖ^FSà£lìqQÏäÞöˆ$¡€ÔþÐ# ÃÃ=]½¼G&j( —�a�=½ü\˜ (O+ÿ"Ù <­<€úzzùuöRùUò@*Ï Uå 0@¨ÊŸÉ�yp®/;äѾ�Ë­×î�¤}{ÂìH€Îs Ð Þ¨¤½ ˦ôC�™{ë@7tgf茗´�ÿ®[’VCÔ)����IEND®B`‚IMAGE 321 ./arch/misc/chandelier_2_copper.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿ��àeæ‰.æ¤Nÿ×�ÿÿ�===KKK˜ƒ$¹���tRNS�@æØf���ÔIDATxÚ½KÃ0C!6˜ûŸ¸|†7˲h3Ñ“¢lG@¬ ú©„Ä®Ë:Ä p4ÀuâŒ*"¶�ΘLœ½<ZýÑ�>–'³y@x¶òc2#yƒðìå/#|ƒôlåˆËóU~šîåñËò3Êãz–·/D@y\ÏòD@yâ¢|�¬å)Àÿ­ƒÐ²Òsë /¨Þu ŠWý"9ЄqÝÝz¾Ñc F(2eÔ@Pd¬U…j 33b w�Þ.õWàï÷q™ÕôÉHŸ����IEND®B`‚IMAGE 319 ./arch/misc/chandelier_2_copper.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿ��àeæ‰.æ¤Nÿ×�ÿÿ�===KKK˜ƒ$¹���tRNS�@æØf���ÒIDATxÚ½ÁÃ0C¡ $ÿÿÅÃuDªÒu·ùT…gײÜdfü˜2¤HqW=ïs�(„ÆÝ-*`ænú5Àa7S 0q w�j¾jyU  çV>Ò!à­–oÝA�=¥ü„ –çV�7H´ËwÞ#`{ ,ß3 =Xžàˆé²<�lÅò"ÀÄÓ“€@€™ñ©Ü(îªùV€¾ZOõs Ä—J9PÞ7qnt¨ôÙr JÒÆÈ@9Ð3Ó8Ð; oÂý'ðw}�f‰/Õ«·����IEND®B`‚IMAGE 322 ./arch/misc/chandelier_2_copper.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿ��àeæ‰.æ¤Nÿ×�ÿÿ�===KKK˜ƒ$¹���tRNS�@æØf���ÕIDATxÚ½QÄ C¡ôþ'^[¬´ý\f;úÓÐ6 €D?:5z&†Œ­÷ö �P‚_ „„!ºøÅÀî�fLƒ €u…A ¯Z$ öðÀ0¸f _*„í.Í=üQªˆupiîáðCs /~¯¡À^NƒEcÀ Oú‚„Æ~Ô…÷Ý B€íu�h�‰i¶{:7/hžeÀ :ØŽòÒgAdâX Ú ëh)(ŠÔ^¢ D(RZ[ ʈBQÐ3S¼ o€¾&î?€¿ÏïcLäÌ«º����IEND®B`‚IMAGE 1566 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x31 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��×IDATXÃí—_k7ÀƒC°l# Ä6b鿏pD,KU¡Vˆ¨Ë&M!ƒš€)L¥o})}é'èK¾M¾@ ߨ£½³ã³Ï¾Øñ½”ŒÅaï­æ§ù£™ñdòY>ËÿF¡¬©ëº©÷EàÜû‚3s¶'ïûaèû£³‹šíûSIÁÛ»†q<7ÎøÉËÇœÓMu•fvsç&¦|ø>ï,ˆ¢ä"`¥™½e·ñÐ0 b !‚ F´[ ìv„>>9;Éyç¢érž€qÖÌXUÙÛ�d)D!fL–høf0ØÛ_æ­vÏ¿)€/m€ÃgÕkOE½ÜÔ—cþ­ÄRýýëÇHö’„T <Æñ*¬Î¿©?ûG׬îšzxîÛá(^C@hõYB‚¡D':œÿˆ£dW©EÖ€ .Æ·1­ØÜy¯çhyôXê£á€C¶Y‡ ­ ä;Ö²ç„2Fàm×’¢˜¡¢´vzâÞ<òêç+,€ÃWŒRŠJm¬-He!]LQRm­3M%õ¨Š%ï$�¤T²Ð.´Î$/sj+Á±9‚ÄKÞH%˜Ñ ûà¨Ò…ü1„0k¬³eI…2éN^)Åߺ[åW_¿ãàX½ À…Töº×Ákï”lÛ.ÇAv|’cB 6! uIÉë®ÊyÓ;×›ES«”ïHmýeª‚óBļ=®4°´öÞ*¥Üµ|‘O Úv.:™Uǘµ&™ùdB—xÓÀU“ÃO—�BB@ž;x}X/ÀôãJ&`ùñsüÅ…õ93ãç9±ï?—óšÖþR˜+¤²zлڴZ#έŸ]^ž’3CòªÉZš/Ú÷¿ýð€qÁ.ø'¦.Á=‚=°#õYwߟ·fë‚7¬…å]³RtppP½y³|Øm"Ôår!k PBŽWQ€ì8µfÛ¢µ¹|Ÿ•½/«öý?'÷ébÀT ÷?8ˆ¥‚œÏÃá!$Dx…oœœ¬ÎÄ­1ÄP|êìê›ïÿ=i7ÚM]?D«Z†Ë2çø3^‡‚ž?ÄùpN& ôÎsc‰/h¢gñ\¾ñâÇó€ªç(]=¢ÀÒªgÇáø®OQJLŠÜ„±+¯‹©Ÿ³ì?—S:I‰Ð3‚~à7Z3FPîUwæF"¬<Ù†`D)Á"ÙB#ÎfÄ@Wó€Ðz4¤.Àôƒz‡ ³Q—#÷pïϹLz{ô:¼~ é.q[Ã]Žg#¤\gPÎ) Mز€t²AجåGMŠóÄV‹'>ü aЪCè~Ûš³¦ ж‡ÈBlIrr¶«±”"ÞxÕL<}þzå’×]7%]—Nç¢\ÔÆ±ÂâcÔx7�qsѼ²“"Ùð lPº›NgPF¡£ø<A¦Üv 6ŒxH4¼³5bî.×êt8 ¯­h§“ïÆ±4ÃŒvš3˜Q1\]í4 uv[õž¢§.:åE˧îs¯Ì¶Š/æ«Ê@=$QCvÞ’�Ó©q¼vÑ© €¾ÏjÆšfÞ¬•Éà¡Ù®Üã-úgSHó“ ´€\¹·‚{àµD»�Póò8XÉg³k'¹3¸¸!�ºs‡Î6´Ø5;Á --‹«_Ä]vb) à=™ÓÝã­ "y£eyU°©ç[�Fy§]MÉÇ  PÙ¹+Šq[�à$kCþ­ØÎDÇ4 $ÁŠWª¸ÜB@³™{œÖ‹³,(®.vÃ6òxÚCmÃÄ[Gw뿦š–[¸ yœ¦°(¥×Ößß0!¼šÕÃG$ÓM¯ÚÙá>€OL>YùNÂä.åÐs<Ù§”Cäå~ eJxψaà¸Ä(x-wcL%Öò¬ïCÃÃ8ÃS\Ü ¢Ì””¬mËSÉmxÀw˜k½ÍZJ0ï5Ãð~ÕOö¬þ³üè4˜§ÄþÖÕ����IEND®B`‚IMAGE 1624 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x32 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��IDATXÃíX_«#5/…2FsÂè0ÞîP Ãh †`²†`G]AäÂ}p.ÂÂâ‚øæ‹øâ'ðÅoãöy2íÝíîmow×_<M{gn'¿_ΟœsÒÙì?ÆXU×eUÖUÍNCÑ€sÞë²<‰òȯ!Fïì¬,Mð±6c@]îÖG¦øè; ¤�^Ü=²¥V!n4@À«ÞcÅQÚaAÒ#ÖtÇvu†!ÅÑäüÑC© .'=�¢¯N°{Lf‹Á Q|7¹CQúê XÅ5þÄ3Øú�rõz ƒßè{ço«¿ª×Ôk|$hf·2T¯Ã€q´ÁÇ�»@iB®0#Ú× 0Oñ‡x÷¦h”V}ßt¾ýé劗SŒuqa“ñü(Ň(ÿD¢U¿ýpA–­? E%zÑ—m+|‚ùÞ[§"ZP2=MYYi,Iý²¿uÝxna€,Ãi2¢µÐ ‰´–‰æZÚ–9.¡ë»‚EFrkW©0é&k/?“úr¬ö-¾¬°Hf¹6Ö’¢´àÀœiÌѦ.¥VRô„ô-ï%H©$Ñ<3\hçãWâÍ3yéÔw»5¨ j2@[¾ÄWFWÔy`J—Ìù`Š¢Â\ 6Ï™PÆe:Ç•—Jñ¥Ào0ÑÉ7ó¥%€ºÉ•~©2•¬î´wÚ’]×'?Èž¯|„Jˆ‚¢N…_IÉë¾ ¢Ã€äùÙ‡sÄÐ7 Ê,'Dˆ!âÓÓ^#—ÖÎY¥42÷_¥ˆ®kD/tHk‡WoVËZÝa|ü»¨­»ÁPfJ S2É8nÒ Óˆ&xãq¸ésº�¿YÇhFcœÂ ÎÚ÷ùr‰[MŽßT/Ø'Ä>bó€¸ëIë1ÑÁæ7G"Ç*jÆèÔ2휷ߟµMÍj÷‚›Y–õSÑÅ98ÿ"ö0<Ó¦¦ÖöR€¥3á,ß8ëžüøùŠ‹ç *Õ Cð0j<V-€«µ‚Iëo¸Ãx­ÖÖ@‚µXNír tvvV_þùgûnÿœXì‡1XÕ¡/Æ|¸wá/.ÖÃж­©³˜–íM£ÆÉ5É‚18n)žÖé·ÊîÉïÞf«m‚ràèǾ¦Íóã÷À?ö>zÝ4¼3& Ù\\7/Þ°IÅià=8nla £×`åGŸþñ¨Û.;4ãÑ«¾XgIB¥U÷®üÕE±ZñV‡†¸Gq>Æh’kÑ~BÚ:3ްøT‰²}rÿþ×[Eà·å³{aå•G“h0DJPÁ§k�#+ðÿÎX—"xcÁž2è;n»4Sσ.ȶO¤³—ýãžÕuͺ®“×":Þu¥A³èNâÑÉ9A'2¶Ý-½³2[wùÈ¡¤ÏU‚N‹/ÿÝ€{¹Ç²€Mõ¶tÝJô}M�3ˆ\LçˆÛÛå7/|‰ÙL|õÀÿú"ôó¢ïV\ˆs!Ó»?_5íù9ç™ AÓÅ¡ÊEùÍF!賂Ö?D”îçsLú+tùyÇÓ»!„d(Äa ÑCøyìíÍÜ·Èzíù‡#+ºyŠ®<Çâ’e‹œ^û‹â6ÐO 4fz—ùæÙWà/@9ôë|Ï 7,µòèãøs??†�ªëæûÚì¢íóƒ;žX̵u¼Ò=°wn‰ûÀi™½*Ar¡1®¼•|±¸µ³Á�†’[}²¢{¸�»däPïä}–ådÿƒÌí0Q.0á}Ù¼ÄY†•˜FœÑ2ßçìvå@Cý2§=†åÐ[°g/—¡ÝádB¬õÚF8è,ŽE, ¶›îŒ¢Y¶X8,¢Ái½:ØË#c#{¥0ÚS<‘EZ8 ì0þþd—;hîÖH†ƒ1Æü$“¾g¯¶Ófväü8þ˃ñ>M‹{ þ%;¹>‡ü6 ƒÓÙI%<?1CŒô´i7Pú ÝÈqÂÚDBŸe8:N<£ä8‰{CÛå×’Z¹‘16¸Ëä¨=i€ÑÓÂÏN ÿ¿Ìfÿ�žY•Û S����IEND®B`‚IMAGE 1538 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x33 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��»IDATXÃíWQk7>Ž…e›µ@l#¶UŽ+GIJT,¢B0¨"ê²ISÅà‡:` SCé[_J_ü ú’“?È?êhϹÜÙŽísë‡RÏêÖwkí÷ÍhF3£Éä^þ÷RžÉ2 Ã��´ÌÿMTʪ¥XIè0”„PÆëºæõ?D®EYZ_Ñ•hBZ!!œóÞƒ™³Û’Ъª í=ÂVզƿ¢ï‡¡ïc`5ÛR!¼gU½½Â?û"Bÿ^¢wvÁvá¨=8àÕǧÎ㕆 Ñ諦ŸÃ÷ƒ^^¥’&Ĥ|Q¼‹ÒQrùìsHÌSo¿Z \¡adÁû€6ÙK‘·—¯‚ÆÛåµf¢“Q÷ää´Hà�‚i9Ùf8Cfo6X îzü‰ˆ¥è…h’#.zad`[ b×ܨ|‚>[© —óJBf¬ªì&Aˆ™_K*œMò,'¤BðÆ­°Òÿ<~™®’½ùiÞhxñëAŒ¶²luÏs©P¤ìd+Û2ý£¤¥ê ¢$e>Î.1R–âk=Èe÷çÏlÃÇÑ´–o`C–ák²\kƒñN‘HkUÉ ¡ŒT¡i’ç³,/¬]ÌkV·¼^¸f8ìAˆ’·œO(b³ù˜²BksRY “T[ †WJèT.E«@©NåZdFHí<8§çÙòà‰ÒÆ ¡wó:Îx—e€åRpÕIf4+ñ=ÚéŠbüB˜5lQPÙ—é5¯ºNp‰ÿí{ãòÁž:pÝ,˜Ôàûà[Õ*Q‡.­ºÓÞijš6ùAµbá#0)I‰6©Ï”uÛÊœéz0Ñ©׃TxͰ�E%Fècrhˆ!¦Ùi¯‘Kkçl×idn±HȦ™ËV%èú€à=¯>ßûò­À)zc¯ñÄ0ÀÐC#°ôk0>ÂMðÆãpã}üþLÁ ƸÎ,xÝ=¢bxKjkÏ1xÄ{»zi5F:8{vq$r´Ý Ñuƒ. Îq«©á‡Ít±ä�©`ù”‡1ç@ìvßoZséÀÖbŠÂd?n͇å“弦5„íœÊyò¥…€Qƒ$è…£•‚Y[sÙ@‚µ)}¯Òÿ¤ywúËw˜çÓ?çœt ú²Ã˜Ï÷ýþ~¢Ózå…AliNV‘"'¬1ÄбøííÕ¯O_/¿hõ%¦.YY)ÆŸƒ?I+¦çÆ 1lHdãCŒ<¤qÂXâriÂø´BNÒÅG+X^*Û=?òGû¸}òB71ãǪ|–LÝœ¥õƒÒžè,’ ª¯¾=<ý븹ªjiÕ‘O6x# …© qª4# V5‡ÚbÆÀ® Õ_Á'†å»ÃÓÉá÷WÕ`ªœ=8ñ'/1ÜUÙÔ¸—ú¥H½ºÕ9L 9– [ä©/™¬ô#wx±4o›ÐhùÔùßÑ ºk³ìaÓ˜uQÆ„IÛ¡gÑ·$‚ºÐº~¶0×6J˜4ž½ô¼‚ètÛNIÛÆ÷}QH6¤¶Ââ­zã¢U2Zÿ mèt;Î0b.t©ƒŒ©ì`.ä s_ ÀÉmfY«ý±5@°²™N¾Û DƶvZ°Ô£R‡ÛضŭºÕiö ü>tN6b:.ÕÊä`ۉŜ¯»¶ˆ‹¨²ÛàO üvº ÀºÏjÆ8Ÿó9ßj pÅÀÒ"ßõ1›b˜ûNKôÀUǰϋÎhEwpEžg™1/¼Ub6».â(Ã]hs<í [ØËéM,/i¶?t†BbÂ{:¿éX£Çëæ …éh¨o¼°#þ.NÎsk±ß�S±›4’ö;1d³™K‡2§õâfç¥à'c{Úcn+‰³°ë»7‘²ð©¦8(¥wÁ@Òù;Áãgrgr‡¬ƒãÁ?Äß½Ü˽ÜËYþ‹~œh™28}����IEND®B`‚IMAGE 1491 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x34 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��ŒIDATXÃíWÝj7^ÌÀ0ÍX ¦ÓN–-CÄ0TQ!8ˆ u˜¤)„b0¡ ˜B ÔPz×›Ò›>Aoò6y@Þ¨G³k{7vl¯›\´ø¬Xvg¥ïÓù?;›ÝÊ­ü?¤\Ë'dÇ�h™<Lʪ–ŸHè0~$hÅ(Jk}EO¤@> <­ªj¹ÔÞ#hUm{a' v!:¥œ{Ϫz {…¿#2;ÏP!zpÐT:JeM]×M})Á ™½yŸ¡ò܃nÙ%g9wÎ{fÁ.!™Ø9æ©·¼¹\}> ã8 1°Ëš-ÏÛM‰ÈŒU•Ý&¨Bçm{…y¹ q@|çs!z�½iÐ2­²do~ZtžþºEÀBç.Ä'^‡äYNHÅ㼟”˜$hmøEYR–ü=ŠVýùó& ‘šÅÙ÷,[½ç¹(B(Ñ‹¾L_Â$è ïT²QIÊ|Ú]bþèšÕ}SO]7† Co›3lÈ2<f!Ëñ’h ŠDZ#цPÆ^¡ë;’ç{Y^X»\€sz‘µ‡¥>Ù¦ ¢húfF›-¦LÎ m¬ÍIeÁÉ ª­ÓTROèT´¼—H ¥’¹æ™áB;?¿wöå¡S?†-‚Á-z@à¬QYæ�Ê–7R f4+ªtE†f[T(ã2]àÍ+¥x#ð×LtòNÑèQ¨3†Ðe^vœ TR%«;ív d×õɲçK AJÔ‰I(x&%¯û^(pˆf*È/÷¿~ËCo¨° Xc„!&‡†"îžVð¹´vÎ*•ÜÐw|™n ºn!z™ Cº;Œx{³ljuòñ-©­Û`¨M_ªC*ýXÿW ¦G¸¢ Þx\nzŸ>€_ßc4£1Na$Òö>oL59þ°©‚Å�‡Ðquhµ&:X?;¿9ênÆèT Dr÷¾xØ.jZ»M7ÏšÖ@ª4>eè€'â°‡aS› î°6b‚Ã*ЛÏö»w¿|wq±]Jš&ùÒBÀ¨AôÂÑÊ ÁœjsÑB‚µYÈ h¿>|ýºýª×﫦iˆêЗ c><9ð‰Në•F¾usºzˆ18n!†®ÛÆçU÷î¯Wwéò‚â\—¬,ŠãOÀ'‹é…q“B¸NØúaú츱Äå4ÒubU¾ýûUÇ>XýóRZõäÈ`úä…ob0‘c„­ep …öƒÒžè,’ ¥'¹Û¾{þüûKÚ Vù¤ƒ7¢*iÁ•N‚e!8c± !Î3xýSx}Ï} 5Ÿ@éìá±?~†á.Ë®– ‚Çr‘ì“T@«;™ç\ä©§Ï6¾XšKÛ é´xäüïè­ú,»ÛK‘:¥ƒÄ½e¬¯sÀ "ön2Â`ÑxüÂÿñ¢Óý|N°H 5BÀžé°ÞaÚXVq!èò&³b.E´þ%ê }Ž)œh¢÷Ö,J9õú¦3YÖkÿÊ¿!X1ŸÚrjÊPÌ+ }kDŽi «›Nzóì1øg œèÎ&+E›[uD ¹üÜÀoÇ@uk|e&\“2=€Q˜IÄa²}qü½¹¶îØ+-Ðëɽkš¶Û¦Yl£@f;¢çy–óâÈ[É÷Nc„cÃs 'Hv:Ù`"€Ùù¯CžëÀ6ôì$¡Uƒ³){vò>K‹|7ŽB`½{´ ×I™ C×-‹]œ]å@CMɵ(01lŽÿ²è.F²ØHѼ»:ÎKGqÄß…!ÛÛs)ìÖKvån2R:žN‡qˆ%ÁÔ¥×ÀŸÑÝÊ‹ó8R\ô*Õ×vÔ€à@>Á»ê¾SÙ¾ŽÿŽáS‚ŸPÌnåVnåVþÓòuÛƒ:›gû˜����IEND®B`‚IMAGE 1568 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x71 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��ÙIDATXÃíWÝj7^Á0,Óˆ¡“eÃR1 UBT„Z!¢“4…P ¾h¦05”Þõ¦ô¦OЛ¼M^ 7êÑxý³ñþ$Ž}ÓæX°3³;ß§s¾ó#O&Ÿì“ýç¬nêºn%äNÀÙܸ‚÷œß::«ÖŘú~úþFølÇWla}�ð•Å›0¶§j´s!Eï}È+xg>œ½fk<F¨²`<�ë³)š!ã³ø­0°ÿ@€l7ˆ{m«Š±ÌƒñU|Òt&:ç]P9»q‘ÙoÏœnç?¿f€×à&ŽÒtÀÒ ~ùK-Å ¿áç"ZãXêx›,@LÁ.?‚Å£¡õφºéjVëµ(­Î,Ç?IEH Q­Þ«¦Ùp¤å££%škïÝœUt¤@&ù‚-TMMJ)p':¡„ù¦(vyð“òGòàžXÓ‡…µefEAÚ®…× cT\±Jj ÀêÃh] ga+¹íøÊ99覼'}2.z-¸A\RI ²ãKAG-«Æ8k5- Ée+RXkt‰(¥¬ÚâÓà,óÕÁ22:ƒh¸RxRjä´,­³Æ2Bà[O+­¨ 3m˜P²áK ¯¢9sñ½­É›Óªn¦w®7Þ)Ñu5—’G‰ö‹‰Ì¥°à]¿ìÚV*çµÚgER͆žÆ~$”YÓð/—t2™›d†Ìc¦‘˜·­Èï/xÛÁ§VÊz¯5 ê�UØ+Å…ð.TèºÄ¾¦õ|ùH|y?'ÝÜ3Œyg|0a\«‹hRïúq97 «—}/BÕ5ÁÙƒï}Û|ÖäûFù4—ÒB¿i ãqÏÖø,—¢Pï20Ý=\¾zuTœ=iœ‡¦-^»ØàÆåòà³O°ŸL= ©ƒ:\‹[Ðû'¿m«Ï/Z\nÏÖÆt¹× T·~ @Ë…¬Ê#¯ï¢ë£¦=ù绯«sÇ05ÄËá×c r°ÉÚ¾ùÙÃt†¤>< ‡O#Ô†õ¡³÷}«ÖR‰ýðüùÛåEÜh¢…'Öp}Þ,–†+ÆùøÐ›¹)„ÓàžæZ)KÌZeãÐw‰®cÿ@_àS’IH“SÏå(°¹¿l§} †Çd‚“PÌ1‡ã§ÊJ\Œîפï×u6‹‡Wî æaÙ`[ ð>O³ =Î[ ;–¥€¤…ý‡ciÅES%‚ðÖÆDi^“¢‘CA(b°‹ƒE„:®[,¡.^œ†Ó#ëå•@wñ<îïâ3é40ë¡Kór'Ó¶÷ê”þþ±ÐíU¼‚èÈÞK€uŒž?*r<?¥®#Ó®Ó>¹—†O`2¬¥åWhå^0¤ˆ'¬n–MÊgF0Mu6vZÁ“—Á&!»wÁ¨áh?A¥¡ÀÑšq ;Ð9Ódµ¿L[a£^†“ ;4»Þ?ß"Ò@ù3ß›ù‚«§|öžO¦¼^¹Ãàž é¦ `»´Ç…²³Ðü¥xÍþÆj˜ó\h•‹îôwg¦¨Fi· H‚†)T[�*­Â Êt¶a栄 ø»²y6ã񠋮 Tï`AQ”ÔBæ‡}gž‚6ÖºN_ÃßE@J©‡.TÑý*: N\Ç*QÄ[…s……vó>ð„ÖN;¯Ìîéf|øÿ.‘!ѽi\± tꃵ×” ܶøÒÒao«b ­Çùåg³ g­r«ÝtuÖ ݯ/6žå@ã­! g‘Ú)Aþž͇íPâû{Ñn†a¤ “Éœ»°­Ï|´+’É]ìPévØn˜÷wJPòx—ø%N©üx|¼²w°q‰ùðñÛ/0Oî—ÅJhfãÖÂÃò6ƒq>¹»òÜZkSÊØey[ÑŠ—ÍÊV<·œŒOîØîžáaÿ9V˜§‰™)Ç����IEND®B`‚IMAGE 1626 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x72 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��IDATXÃåXÝŠ$·nš‚¢b@T\”§·¨P¶(Ê‘ !8h#„¥ìlÀ„¹ˆ†ÀÂâã;ßßø |ã·Ù0ì娺wvf§vÖ=È5ÓÓ­þ¾óNÏbñ¿'¬®ê²*ëºbŒ¼,+®Á€uÖBsbô²dŸëBˆqÂ'O _?F½}‚߈ûü´¾y Æ� wðg–O?;!>eK£  þ[ ‚oOÞ^›’æ ~šbwòrÞÎH9£?9Á¢r éžH¬oNO`17!¹%¾GTÇòÔÎÀvË ïËPUGxj3CÇ C¸oU/«[<;nÀVwß¿:ˆ¿h¶‰áþIZ½4ØÇªÄCÈ¶ß#‡ªï¾Õ7ÿ~Y!>2Ü%©‡xÍ ïOðŸŸd'&õN¥;Œ(Ámûœ÷1X¼”g9E£KúNøþrêí×S½pœ¨ªd3E–ºá¢c£ƒ¿£€»®Ä ¤#ŠÈó,›og¦K5~qÙeJƒ¤5¦È³UžÓ~èñãe]'^ BJ!0S�Z©<ƒªd²à_Ò^ŽgˆÖéè¬\g\å£G$Þ y>ˆQª±¬q¤ÅŠ\ƒSÒÜ­Š hUî1£’�ã¤ÖÅ£ ¢öN¬¹”%ZR¨Ìj)XQà Ц¢ßµ¬T’³¤RºB‹Ö¼#�6k*Ø•è•Boòßþ|v>â-±©i R CÍDZrÀè((êK¨×ò!¹ú~”`•uʦˆÈL®]™ÝÅ·¦¦¿Mœ=’õºÕhÅ”8¼O4ã š¾éó-ïü­¤4Ö*…¨Êy¼9ŸàƒÂB–•wþ9Xfë5ÿ¤ÃE¤‘VëiæHǶN»ùlŸxR_M`š¶ŸÆ(¢w*okV7Ýâ“SV¯¥ “Æù¸Aˆ»Î4Ÿwsæ×°§0ÿ–—*Á«GûöUö‡õ&ëÁ†4ÓÇ®¼y†7ZÇùJ i^ã_©‡,c·C0ü©ûõ×Ëúììlóʱ­1>¼ÑõÆ™bp¼IÏ1J³êW@_:ëÁù{y+•ª–}øüçW}ùÇëùKµ6Ü"Á¬:{’v³ÒóFºëº1Îyqá.žx¬ ‰Ñï¥ñS»5júç¿üõ³òuhÓšÍ-¤é`{˜v›…%Xt‡×ºçM£\pî…ƒ'©VŠ‚T¤0x¼çêß|óª»~…–[)êRêAò†Û»Æ„œu(X,6x¯:Þ¶ôâÊ]=‘f$ù¦ëÒAºÀ3rkÛGêŸÑ(’HxÖh‹õà uêwÆàú˜h}z>2†ú»«Ñˆ7M‹ßr«Éêö£›C#yAvy>ö ݥ˾çýÜ=géûžÕuÍÜÓîÅ¥±ãMŸçTyîÈÞ ‹-æ½5bO€¼Ñö}yK‚ëðƒ³_ ÕßR˜”À§âØŒXå½Í8??ïšö|ŹHÁÛ~ Ë <ûÑ=ý 'Ã[ßD˜æÙQ‚Á±Ø¬³,Ïó†÷ç<=Ú¶ÅQ±\J¢þÏœ bŠ»+'G J……ðúZNŠR­ò¢HÙ²ì…ñ0=sϲÕÝþl†p̺Æ4²{¾…-1âVÂ…ƒ¯²å®@ª,1¡ ö#»o¤/û^‚‡߃^îd8ålÄWî½€QJºçÖ¨åj‡~Gr¢ËààN²ZñѸ«§Z§4¸AžÌxïܱ'gk0¨;ø‹"óûb@‹QáÔôP¾Ã×lÖ|‰N;\´'?Èáôð”Õ ÀJ½‹�èn|Fi S`Gëÿ€qŠÎ˜»B‚ÎïK616]8«V)œH1ÚÕj×®…A&‡šÝ1ÆR‚ûvÌwïr²ˆm<u0é}6Mx¢wÙ‰¼6ašf Üõéý xGü­ {Íï%Ø’<0þNO@p@Xü‚û‡Ä/H§À'[y œß]IrÂæÝýM; ,±qcþ$þ!$íîP¼–Þàf™À‹“¹)&R¬·²å9q6²x`yx†ÿù/À•Ûg����IEND®B`‚IMAGE 1522 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x73 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��«IDATXÃíWQkä6^‚Á¸ç„{­oÙbNSU D…`P+Ä©Æw½ÂQyhBá 4PúÖ—Ò—ü‚¾Ü¿¹?ppÿ¨#'Ùì6¹$.…|«Å^Ûû}£Íh<›=àEy†ûaÏK �ã8~rþº©ëºa”rD (ø)ÚŠÑO@μ÷Îqž|„(è)*oÛtdÕ]uX½´B†q~†ÕýªBzïõrYUÛ‹0¶´Î#ù_Ez㹪ª+æ=ç(¶}Õh�ƒsΧá~ÝãàjT—̼úyB•E�Î�1¤iÄ`8¿n­Ï}õ_7\©C:aÐþà= b�.|ô4Üzê7¨Ø;¶¡sÎOšÞ�ÉA)Èi¿Ñ¯­õT›üì2ÿäRnÂZ¤D¼Y`Ö:غ€­*Æ’Îåìou8÷M @ˆ¸èo”h¡‹p±–Øï¯@w‹_Þ1äOŸK §Hþ(R’g9A›*rµÀÂt1¬ üú·jŨ¿åeIæã$‘å%I'l©’kÂ)¥({Ñ %„L?ò<˦§³  1®XØ;÷j¬›¾fõbim‘g;yNº¾Ã¿ƨXC%µFbŠùa´Î3°hJ–ÁšJc{/¢ÌÆ}-Ÿí·ÙB;ÞiÁMÆu.•”( {Þ :ihY5¬Õ´È ..[‘ÜZ£‹lªD †*tÖ4}#bX?+·/w‰¥7Ã`‚ WªÂ™:sF Z¬±Œ¼ëh¥EKJ¦ J6¼-q1g™jP‰)ènü @Žº)I �ƒq Dß×\Jæ)Ú[!D¿ä}r¿ì»N*pÚyíRDÎ_PÞÉÞ‡ÁC½Ðx“¿ÿz÷K‰f (2&’ŒìÅ¢ëDúÿ’w=µRÖ9­‘U{ÌÂa1Ĉ7#Ë ~kkò~äô‰ª›¥QΘqÒHÃqÞøiœƒ,Ã4Ò¾v6ðôôjú…üÍÅýi”˜fMß¶¸°rq4ÉŽ‰a¸jŒÓ˜xOÇtíL F¿Î!†šÖ‹ö™xúxJ,¸Xt°„âßV^9 Ù€Ç!¢=Cªê©”8€¦]/t‚³'?üvò¡ûìT–¤òlmˆ¶^90J“é‡$ÇUÀ¦à7ÍF!ÕýWíÛ“·ûõîî´MQCŒ±Ü¡Àdº•lØÍO/g¤ÜÛó{/‘Ù*Œ~§H³IŸ }|t‚öWŸ§Ÿ4ÒÜk¸CŠ!™†ƒÅq œOYèä“c/S®EÉÊúª·;úçäàûo¦¼ ”ÄHb¦‰OK’fͪœÁ¢ñ 1™ƒß;ô‡/••eþÑîǃÙÉÁ‡ö<ï0ç±Jå%† ÷`«‘Þ¥Ý,QOûN D‹e!pÑ¢ýþPZA®ÙBñ{àžè³¼À ûK+Š`#VEÀ<®»Rb^¼>öÇûÖÉ›º³üâRó)!báAX‡UzÚ/Ïüdºîq–õJc�þôî¹Ð¹Cw‹tŽ75hÿù¦3ľ'ó¾×.›¿üëX îÐÏ‘p™–„5XÍÒFSψ�,ª;óy¯^yãm²/¶ç/z‹Éì’e5ã;Œs’IÑþn6ï„ 0¾ñG^÷ÙÎöü™DÄUïÔ,–\%?¥Þ78>›óN8{^dó­Ùó¼ Øé"ÿzèš~ÆjÜç N¡Sàø0ó-•Ú8l<»ni`„Vþe¾•‹ðÕ%·˜KìÆyg‡Kë_“ey~k~Ší#½ÍËQN {ÐëíøÓç¶yCϱЉb+Q¸mÚZƒ§Ìt*F·AÅ*Ø;X{{KÜl©µK¯lng'›}zP°Ž”Xý†<»þ„q¤©Ùö޼í'úôÅ7r2»Ç)ÌîÛ½ ß…ö€<àÿü ±ÛœhZé£����IEND®B`‚IMAGE 1488 ./arch/monster/dragon/Chaos_Dra/chaos_dragon.x74 ‰PNG  ��� IHDR���`���@����À_-Ò���tRNS��v“Í8��‰IDATXÃíWÝjÜF^ F ÔȃšA­²l„èt`: †C¦BISÅ`B0C¨¡ô®7¥7}‚Þämò¼QÏh×Þu²±½n}ÑâÃ1»’µßwæük6»“;ùJ¹’ÛAÏK �ã8–·x€) àgÒVŒþëcYÐ3©¼mÓ'«.ãa»†a㪪Þ{½XTÕÇHÛ‘çƒWU]1ï9G²-øoØžíR7u]7Œò±'ª\@Žj >»ç¼÷Îq~™«[ žûê}[UŒ%žÓ›±«BˆÃ0ŽÃÀ/w^í§þ¢©ì—g »ùoâ#C¹yh àcpÎy‡ C æ †Yk}.œýô‡jŨ¿æeIÈÆ!ª†­Ã°4ßû0D^’g9ÁCW[ÃѺ.l…£±sÏÆºékVkÌç‰"ËKR&)‡¾÷a)¥({Ñ %„LyžeÓÓÙpnh ¹ÄÆ#-µÙ\;ó…µEžíç9éúN£bS¤ÖLÑwx¼<‹¦d¬YÛ‡¸I~PîHÜ oï´à&ã:—JJ$=o8´¬ÖjZäØŠäÖ]dS%ϲÐYÓ7"n)�9ꦸ']40˜àEÕªð$…ΜQ‚…k,#ÿëh¥ïJ¦ J6¼-\–©™ôs7lhô&ûåÁçŸ  ‡%ú¾æR2”HAÐÞ’Á úï“ûeßuRÓÎk—"¢ÐÁ‚òNb& P¯ñ­ÉÛ‘ÓªnO1&Žìżë’ãå‚w} €RÖ9­Uû€ONC )ðq€±›‡Åú�ßˬiøÃ3WΘqâHêÁ8oü¤«/Á Ê0iš +ů˻xc4õFˆ]MëyûH<¼Ÿ²ºQ.ŽíX" ÛtœtÂ]êtoE†LÞ.6rHpöàÛŸßuŸ4Ë$,ÙhmúÙ¹[’ ø9D´gHŸ Æi› |ÝѾ~}T,ïÄvÖ†¸¶u«b”&Ó1ŽYÀ¦à7Í…6± ÷_ýù®«>]5zjˆ1–;$˜¬C·Ò vóåÍ㌇‡þð)"[…Ñïi.§fÙ½ú뛯ªUÚÒHsG¬á!†d*ƒá\<_Ýtf®“ON=<MµR%+ë- ü»/ÞµgUA)‰‘ÄLŸR’bdÝRàÑ„h<H,æàýñSee™_2ŒÝ½¾ÆšÇ6’—ˆ‹Ãųá0Š'ë•,&-Úï¥ä²ömŸmâ'åÙç¹ì´EüaÂl›ˆ–uWJ¬‹ç§þôÈ:yƒµe_`O€¼î³> š€™¦ýý,ë•Æ�üæÝc¡;r‚R‡àÐ_Úbbc§Ã¬pjF ƒìíõÚE8ùÝ¿|‚ âF{W©=ͱõk=ŽL„Æ\Ääç8*¾BûO¼Bî7Zß*… c±(RU[itÆi ï `<ñ¯¼î³›­‡¤Á4r4Oã%NþYtÂ)xîáI¶w3ü¢·ØÁ:T&Uέ‰ ³tÉÐ)pú+˜½›Pdc—ëSÓ´i›ÆÅ8`Œ—O`„VþÔY½·¿3~^¢Õˆ–} wF6Üœ/Eûû\ZüÒ˜,Ëó]Ðó‚Ú¼ça¸›6]ßÍicáz½ >)¤Æ© ºNrÓùcìtâúyJñý(ÇÊ ×‚'´ N™âúø¸šG2FzõXÅ* G»S�ft¤t¼ºµ°…Ö©y n·J›ºé•  ›”q‡<Û±’éÒSô*W¢#*6ðâV^h|úÃeŸÜ þê³Û”«üøÏñgwr'wr'ÿùŠêƒ:JÁoœ����IEND®B`‚IMAGE 163 ./arch/spell/MoodChange/charm_aura.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��ïƒÄÌÞ™£���tRNS�@æØf���KIDATÁ± @P�À{žð‰Ri#ÅÊ_™Ë�FR°€Ä?ìˆë&ò % ¤ $¡#j‹ZpŽXÌ–Ó‰R1Tô^éÛ{“T¢_­����IEND®B`‚IMAGE 132 ./arch/spell/MoodChange/charm_aura.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��ïƒÄÌÞ™£���tRNS�@æØf���,IDAT™c` ÀŒÿþÁXÿ1Y ÿÿÀXõ`,y8‹ÿ�ŒÅÞ�7Õ�( :G]%����IEND®B`‚IMAGE 158 ./arch/spell/MoodChange/charm_aura.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��ïƒÄÌÞ™£���tRNS�@æØf���FIDATÁ1€ �ÀãÃcb`4ˆbžÉœLå`½ã[zëAÄM¤“„ ÒªX³aï}`›håB]ÈË/lâ—9…{›����IEND®B`‚IMAGE 170 ./arch/system/mood_floors/charm_floor.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�”�÷½ïP´rV���tRNSÿ�å·0J���QIDAT[cø èÄë×@âàAñø1øþSÝþ0bþ qþ'8üH<`?ø1u€ˆÏ9ÇÞ3¼ÍŽògxÏ "2ÜÖƒ¸ï>ƒTÅ�öMpö甋����IEND®B`‚IMAGE 297 ./arch/monster/humanoid/Human/charwoman.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4V²""‚��Í…?�d�Áq8�O��¥�W��ï§_Ú¥ ÿ×����‚B'�2�ÿ¥� R-îv���ÿwí���tRNS�@æØf���žIDATx^ÅÑÙ! @ÑéÂ>‹úÿk%+#”'c_ï¡$°üiñ0;�Üg Mº{ÌX�œÙw!˜Ý{f¶»v¼›çý¬ñÕYVŒzŒBéˆQJc�ˆn=±Ö. ’î[`*z7ÀET ¢ð ÊUh¯“¿Uñî¹”Ô‚óýTäV]Wäæ’ëH®]Z~0OÁEÞ…<*Ð����IEND®B`‚IMAGE 297 ./arch/monster/humanoid/Human/charwoman.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4VÁq8²""Í…?Ú¥ ‚���O��¥�W��ÿ×��d��2�d3ï§_���‚B'ÿ¥�îv���ÿŸˆ—���tRNS�@æØf���žIDATx^ÅÐÇ! EQWÚ””ÿÿØ8lGŒYEa{. øÏQÕgèDôZÇÂñ½6"Œ¶D9G¾¥”Z ‚î-ØÑ‚ðþŽ·~óoqë¥Xóã¦0W-„̾ð0O¿êìN¦e“Â|Vp½0KE] Rëq È-ˆøÂ{Ÿ÷«ºÀØ9L~Ç;ÇÈ‹ ´‚áç_69;ƒ����IEND®B`‚IMAGE 298 ./arch/monster/humanoid/Human/charwoman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE4Vï§_�O�ÿ×�²""‚��Ú¥ Í…?W��Áq8�¥��Š��d�‚B'����2�îv�G$��¼d3GÝÄ���tRNS�@æØf���œIDATx^½Ò¹AEÑ~Ðû2ãòÿÿªPeä@GJznQ„_LŠ1n¿Àc³¢làæ½w‘¶ŸDsÛ± �j4iØÞÚ’Àw;?‰È¾:ctÃÛB“±=„ZkJ1š~ˆK`¸,pÜ[ÀåíÕ ¸d}õôí`ÎYËëମG^=$gþÏu„«9³ú+øï ¸áÿó¡fQˆ����IEND®B`‚IMAGE 307 ./arch/monster/humanoid/Human/charwoman.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE4VÁq8ï§_�Š�²""Í…?�O�W��Ú¥ ÿ×��d�‚B'‚���¥�����2�îv�G$��¼d3÷kô����tRNS�@æØf���¥IDATx^½’IŽÃ0 ÅM»ídæÿ -Ò%H_«ØèÃ×Ó™y#¬ üÛTˆàF@|¬G�ðF8޵pÅX+ù¼n¬ B$—#´»‚<ÐÂuo ÷~¬Œ*8Æ‘#@S4tÃ5)¥Þ™]~*7aæVàòUA‘Á“ Ïö-ƒ÷OŽ¥älîT0xÜFÎ?Yry ÿí óDUŒ?±…E5KALøq^¦J˜pL����IEND®B`‚IMAGE 171 ./arch/system/mood_floors/check_floor.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��Æ÷½ï'B\���tRNSÿ�å·0J���RIDAT[cø ø‰Çe2± ·Ë~G3Ü/û}œa?›øy†ýeßÏ3ì.ûÎp¼Lâ&Vmÿ¸××3üß¹Èݹ HìÚ"¶‰Ý– ÙÝ„ì�ën3|L/����IEND®B`‚IMAGE 171 ./arch/connect/check_inv.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷½ït2ó†���tRNSÿ�å·0J���RIDAT[cø ø‰Çe2± ·Ë~G3Ü/û}œa?›øy†ýeßÏ3ì.ûÎp¼Lâ&Vmÿ¸××3üß¹Èݹ HìÚ"¶‰Ý– ÙÝ„ì�ën3|L/����IEND®B`‚IMAGE 180 ./arch/readable/checkbook.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��Í…?���ÿ×�d3ðæŒ—š»W���tRNS�@æØf���PIDAT(Ïc`J@  |p ¨ªCùÆ0¨€3LÀEÄÑÅÅá‚@èÄ‚."""f`Ø‚ît—ª†ÂºWqˆ�X½ r8š¨¸����IEND®B`‚IMAGE 228 ./arch/construct/roof/chemney_1.111 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE������eŒ±Ç;ŒP���tRNS�@æØf���€IDATxÚíÑA À DÑÌ$ÞÿÊ•€ÒEŠ©‹‚%ôiƒÊס—~÷J D¶»™1:ªêÀ›˜!ŠCà‘ ˜å¿È�¼hÀ»›<•<Ö½GÐlÆE0¹4ƒ@9‚¬·’›ÏPôÊ`ãV�|H�frúew”8ýjÊ����IEND®B`‚IMAGE 213 ./arch/construct/roof/chemney_2.111 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE������'''AAAekkkŒ±M÷”r���tRNS�@æØf���kIDATxÚíÔÑ € …ag'÷þo6gÅbôßú]Œ1 ŸŠnµ éà@Uüö«y n¹¸4(MUìpQöU³€ úfU”äµpʽ�~@f8ŽCò( H€J€ù_‡¿%;�NŽ t$ÕZ����IEND®B`‚IMAGE 713 ./arch/monster/angel/cherub.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��˜PLTE���(((---3!>+#O5-O;5X;/]?Ó^A5`A4`B5```cccfF9jFÚpMAwVEVFcXrm†fY‹^LcPaPcP‘‹•hV•••—jVššš¢œ™¤t]¤t`¤v]¬œ•­­­°†r²„k²‰v³‚j³†o¼¼¼¾¾¾ÀyÀÀÀÂwÄ’yÅ•{Å¡‹ÅÅÅÆ—}Æ—ÇÇÇÉÉÉÊœ€Ëœ‚Ì­GÍœ„П†Ð¡†Ó¢†Ó¤‰Ø²žÙªÙ¬’ÙÙÙÛÒÏܯ”ܰ—ܵ¡Ý°•ß²—ß²™ßßßààßáÀ¬áááâ×Ñâââã½§ãÛ×乞亢州åÖÍåääåååç½¢çÞØè½¤è̽èÐÄèÚÓèçæéÀ¦éʹéÒÄêÀ¤êÁ§ë§ë©ìĪìĬìůì˶ìëëìììîîîïß×ïïïðîìðððñññòè’óà×óóóôôôõõõöáöìšöõõööö÷ï†÷÷÷øôòøøøùóžù÷öúð‡úúúûûøûûûüüüKÝ6š���tRNS�@æØf���ßIDAT8Ëc`¡ RŽÁº·|EK‚(N | eÕÑAžÊØø—çé2ä&g&:³cS¡ÛÐVçáê‘*ÈʼnMNYqq]E¼£©•ƒŠu3¦‚¢Š@ÿœàì / In 33 yýš:EÍ0';y, L øY˜ÔÓ£ì•xKªj+[Û‘XÔ¨12ˆąƸ™ñ2XË`ºÁœ™Aµ©>ÖXO‹ÍºGXrä—&…û¥Hãkí,wqa)Üò–i† x"ËÖ;Ä€_dFyÊ2àFÒ £�;��ñX2ÞÿX‚¿����IEND®B`‚IMAGE 887 ./arch/construct/house/chess_club.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��>PLTE�Î�)))¥¥¥ííí���€€€ùùù‹‹‹çççÿÿÿöööRRR>>>ŸŸŸttt¨¨¨···ººº˜˜˜êêê...$$$®®®ðððŽŽŽÿÖ�žžžÊÊÊüüüzzz“““­­­gggØØØ||||��–‹vÐÐÐ~ogÙÙÙÿ¥�«««œœœÒÒÒ˜’ˆóóó888qqq·Ž^Y>ß»�¯—/2��tx``…ppj�މTTT`j�€É�­��´´´vvv¬‹,ª“+¬”,ÍÍÍoWW———|[VVVï­�…mCCCˆmÀ�ssß�}}}¢¢¢………”v‰‰‰·‘t‚¦Š/¤¤¤Ši j Æ��777b`Rc��ÜÜÜ[’Gä���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ+6`_î��²IDAT8Ë­“iSÂ0†›4m“ÞGT<PÇkÆïñÖÿÿL›RÐ2ŽÜÛy›Ý·O7 Çý1R5IJIÍÁÃÏ'áºpj�è�H�Ô ˆÄy¯ÀÞÍ$’’tªë:m®ëH!¶~í86ÈC˜G¨!¬ Ô+Xt-au„t1B¡xcØzÏþh û„½úô¬Eí=Á ‡™-jï FððH–´¨½'|‚l÷ìæö›ÜaKbð´ÿ'Cˆ;| Û~[*ìÛÃVF‹4Z$±÷„IJÝKüË(dwÂ×A÷àF8™ Ü íƒîà\RØìÛ³²Á [-44‚ÃB!c²W%.˪¢¨L´ÃÓDYž¯Š¢Êó¼(ŠeÓ„©å^…UÁ4sc‚0næÒë¯4æ?Ãë–Œ…ÒUqd.íg~j†®ïÄŽÃk1&_‹M#îgõÈ3xi÷¯„‹g'š´Uõ³Xžñ –ûö¨bL›æä˜!왓Ž3D±ÊóiÊOÿ"BÀqßgàÌ·¯å÷é­}Ð@„û¿øúƒE ‰„G����IEND®B`‚IMAGE 227 ./arch/misc/Container/chest_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ G$ R-���ÿÿ�ÿ×�d3‚B'+ù[���tRNS�@æØf���vIDATxÚÍ’A À M\«ÿqi‚ÆÂŠgPˆ¦kÀŠ”ƒá¡•FP90¯GA£ó_Ð8'ÔƒL'î3Ì+9H‡ÁÚ÷@9p|¿D¤ä €gòÄÌǦ SDæ ¸H°zg¹Ä]€ý¿‡§a '‚"ˆn����IEND®B`‚IMAGE 231 ./arch/misc/Container/chest_green_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��'2X2@l@KKQQÚ¥ ÿ×�ÿÿ����éVAi���tRNS�@æØf���wIDATxÚÍ’A À »QSûÿ—.ÔXØ ÇNŽ3(D߀ŒLƒáaEFP4 ·­ ÊýTÍ: gÐäD }½Mƒc3Èý˜&‚®ñsƒ»÷6PÁu³g; LÁKwŸ  WD¾I—¸ °þñÿáMq߉õ¶����IEND®B`‚IMAGE 331 ./arch/misc/Container/chest_jade_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���96a6EyEV‘Vf¦fw¹wÚ¥ ÿ×�ÿÿ����›M•���tRNS�@æØf���ØIDATxÚÍ’[nÃ@ +JK7¹ÿË¥Q¸èoÆ0B‰ƒ¬óøúâ/FH Íäxõ‘•8wM¶ÑL 0á>uiSïxÓ¶° ûÆ*]À™Ãý–€j3ÙB¦ÕƤpïgà¢×zTá¶À"´A÷'C}J²@‚Š<o°l8ôÜ�ïQ„¼Ç‚Ã=ç{F†Ï¤¸®ëAÑóAM-<ŸßžÕ[@t ¸ïô[ȰÈÇuIXð½JÚWA³<Þ S»7qpYeÉó›àš%æ#þÿÿ~� ´ƒlPe����IEND®B`‚IMAGE 231 ./arch/misc/Container/chest_valriel_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�)�Ú¥ ÇÇÇÿ×�ÑÑÑÕÕÕÚÚÚÞÞÞÿÿ����LòfÌ���tRNS�@æØf���wIDATxÚÍ’A€ éZÿÿaã&Ò¶£ÓãL )´ß€Š\ƒéá§ÌàÔ€Þ·‚KèßàÒ¬z]NÚwÐ;Ð5h›Aí¿À54ù3}¢‚û>²g; ¤àc˜å蔯@Ê%®¬üx�»? Jì(����IEND®B`‚IMAGE 251 ./arch/misc/Container/chest_valriel_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ú¥ ÇÇÇÿ×�ÑÑÑÕÕÕÚÚÚÞÞÞÿÿ�ÿÿÿ���ß9oö���tRNS�@æØf���ˆIDATxÚ­“‹ € »íJíÿ?8ZðQ¬&ÑÌpÖòéùòe ôȳ�×° ‡or¡›ô>ìrþ vÍ{@Ï ÈUíè,“AßçÀ5%&no0³ *8޵õ‰AÙúv.d¢Y;€€^Qƒî)$££�¯_ü÷ߎ·?9†™ ¨˜!Ry����IEND®B`‚IMAGE 259 ./arch/misc/Container/chest_valriel_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ú¥ ÇÇÇÿ×�ÑÑÑÕÕÕÚÚÚÞÞÞÿÿ�ÿÿÿ���ß9oö���tRNS�@æØf���IDATxÚ“á Ã0„õf›Ú÷à1'5°søù#%÷q”Èÿýòvϧåè4�ã„9ì ƒG88ˆÜFÂI‘„“3`_aÑ)aq‘°8©Ðç)§„I¡NPÕ«N`Â}¿öÜ]`u‘ïw Up©î)`qJhÿ‚‡ð¯ÀSày‚™ÁŸ÷·Ö1oM\( Ñ{����IEND®B`‚IMAGE 265 ./arch/misc/Container/chest_valriel_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ú¥ ÇÇÇÿ×�ÑÑÑÕÕÕÚÚÚÞÞÞÿÿ�ÿÿÿ���ß9oö���tRNS�@æØf���–IDATxÚ“ÑÄ qÖÒÿÿàK©éú°‡ÂN0ÑÖ^Â>Btz«9sš¨°a�®I#sø! Ÿph¹o §,dþ§fG€¿B—E¡k™;Ð5°]¡Î‡à 6žÐZ»x‚îû7ççd>ßÁæWkó‚™+(”¯)¬ÄBà]a{èß.Šœ]9[ÎþämJÞáÜ&����IEND®B`‚IMAGE 236 ./arch/misc/Container/chest_white_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���'2X2Ú¥ ÿ×�ÑÑÑÕÕÕÚÚÚÞÞÞÿÿ����n*L‹���tRNS�@æØf���yIDATxÚÍ’A€ ]k¥ðÿk(’,ÂÑéq&P¶ß€-PÂCO6;"89p¯KA¢÷w8+ô ŒN ¸7¸WÀ8؃±¯r"øZ&ºD$[À‚RŽÎ{oà>ÞàT²H€0N †[p�ãÌÌü¸�߄͚¥~÷����IEND®B`‚IMAGE 177 ./arch/monster/animal/farmyard/chicken.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�ÿ×�§2���tRNS�@æØf���SIDATxœc` >`u`3Ø  ù ‘ Œ Œ lãÖ(ˆÈ«UP©W³ ¶mË j~BÕ0Ô­„2Ä–À, €2XD  (#�C„t��\šÏ.ïœ����IEND®B`‚IMAGE 176 ./arch/monster/animal/farmyard/chicken.132 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�ÿ×�§2���tRNS�@æØf���RIDATxœc` >`u`3Ø  ù ‘ Œ Œ lãÖ(ˆÈ«UP©W³ ¶mË j~BÕ0Ô­„2Ä–À, €2XÐ"0†�L é��[v×óWM����IEND®B`‚IMAGE 177 ./arch/monster/animal/farmyard/chicken.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�ÿ×�§2���tRNS�@æØf���SIDATxœc` >a` €2X/€¬ ì_À 66ˆÛvƒqiœDdÕj¨Ô2cÖ¼ P5ù5ŒY{¡vHM2X`¶ @,0VtÒ�)!¨›Ö¼����IEND®B`‚IMAGE 176 ./arch/monster/animal/farmyard/chicken.172 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�ÿ×�§2���tRNS�@æØf���RIDATxœc` >a` €2X/€¬ ì_À 66ˆÛvƒqiœDdÕj¨Ô2cÖ¼ P5ù5ŒY{¡vHM2X   †L Ù~� Îeô¤Ü����IEND®B`‚IMAGE 191 ./arch/monster/humanoid/Human/child.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ðæŒ���ÿÿÿÿÿ�yn©·���tRNS�@æØf���XIDATxÚí1À !Nøÿ“q¦ª1C…Ô¡&dàN¦ý93ÛphÃ�¼šÃ1¹JœsŠ÷Ey9'òàNóQôgz6Ô9ß° %¸s4ß ¹¾– #ëEã§©����IEND®B`‚IMAGE 269 ./arch/monster/humanoid/Human/child2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE��G$d3m@‚B'VVVaaa R-šl>­f2!´¥sBŠŠŠ‘‘‘ÉÉÉÙÙÙæææ���ÇߺY���tRNS�@æØf���…IDATxÚÝÌA1@Ql§¥ Ãàý/+`Œ›ÂÚHštñÀŸÎ­µ4›ô8JÐ;Õ°c•E•T«¬×e/"2±–xI:.„ؾ¯=°nÙn;ð�Ð ø�ÁÀ´:$|ÛA6ìsËÕž–ª ƒƒ¥ý9Þß™õ)øÂ_›Ä$d5E+H����IEND®B`‚IMAGE 2675 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x31 ‰PNG  ��� IHDR���@���@���ªiqÞ�� :IDATxÚåZ-w#¹4lØPTPPPTP°¡¨`ÆM M ‡Ü¿ò~B¿[·$ÙI&^ïffÇ™øœ:j;·ªT÷CJvŸâåí¶ûº/ ðuňnk¤1_kå‰.Àèìö5¬žü¶Knr(‚?3úJ‡§£;.›] ‰7xÛñgOŒsÄ»9”Í?6s^·ñ8of_c‰]�»Ÿ¶q_º�Ÿ?¾“y%<ˆ�Ã"ÏË6Èûäñ~NÛý68ƒÏ€Oë&3khóäAžÄO3H’@¼D"uÀÝ >çªGG˜Q ïa'ß­Ó6`„õs؆IÈ[Ã0°&ÅO$W¤;yZ¶Ý‰äq=|ß‹�YØÍQìŸÄþ‘8 �ìO»íÛÚ“âã¯ü0tâ Æ¸gò£"ÀyæõóÂ{¦�ò C4¸óþZýìáÉ2â�“AÌs…ÍHÒÏ]€‹Jì "Cò[x>Š\ý‡w�lâcÄ•<ØWž$á}[Iþ˜ùù’è€+Í:±N °&Gs`©l÷=ù1ú ²L¸$$5fÿ“Æ=D ˜üøóW¯î„5+ðByó %‘«ïȳtµ02“?7ò m_³þÍDºL}Åk<bI$y�±@Ø5¢ydyŒtC_ýÛ9ÅÃöKÖûà„‡,‡J¾Å>¬‹Ø-5–ê�3R€óLàú¶�×á�4'<®Lô÷ã 3<C£ pTP `ïAaÆæ„‡€eo t@ t íO. ù×Dz¼?d™kx(_5ó“„ê€�2 LâçBµ âÞwD°~¢ý‰ß#ÈõLH?&o ퟙü®B€0# ŸŠ‚N(ülÉðCFå»ÝfE 8ÚòËÅ i<ÈàÁQ¬m© ð^DŠž˜c< , a4@ÃaBYT†52LÞÎA¿—äíæ–(!¦×cò?Ý$ž%Ž£#!!aÖ$×b Î(€�÷3°P�¶·׉ØOÜô`r`'øÊcŠ*¨I|ÄêËýfI˜ÅÑå@>JÜ!IAüqM!!¬\Ç÷è½ …<@⩎%R &AËMÏ"! #v…W!G7 8d4W ÄEcu•9ùäþ½ažh3’g‡¦öP 1S�`7Û òÎj[4Ùã·ýfÿ:ö=Á°OÕY÷�vM:ÎЉ…ŒøL{‚ ïáÞƒ…ƒ¡†Ä¿Ip Ïäâ &@˜‰ \ë{€m-Ã�"ðw˜º�—J�k†î€~°qÈ*‚ÿ뤣ÁÁܵÏ2*y¸Žda}¼Ç=‡Ìù$~fN…¡ "šR¦w“™¶w Íݾ¤ñ >äÂ'XÔ‡ùÈš(V+#c“Kr ÝO…NøVDyŠ9pççè4|ÜèžVþž3œà¶9X ˆ‚\ç{cÊQUss„�´7¾,OedBöy¥%È}N'8–„8½† `)�sA``%hg~H‚¡kµ7\“çAëÃæB~‘f’GHŠbÏ3´§�q!ñ†»k»[²+WVFs^@–Y98<ŸA S'R-?\…„‚~‘8.‰BÈØó] ¶68±Ó¬!`àÀ™®Á5bÜžòæÏ3àÜè<ˆÕÇÏô^:à%é»è¥ï�0ÙÙ§. å�ÀÏh½-Ïå’@‘±1™EÈW;;ˆÕŽÂƒ­§¼ +󼪵íY¿‰NÀ ïä}x^@’:{É µ*°$}v\þa?ðJ-8 —>Ž5éM Ù?ó21‡•òI®ƒLÆ/ì F@ÈLA`“S7ìâµ�N¾á€.*’ˆA€ˆg@èBbEE9öâŽéÛ‚2ø¡Ø09(FAü¾×‰ KËä¯&±°ÍM2ñ(BD™h:É„çIÉû;\I]�Xuäé°&>÷|Øœ$Á9§9NI<ã 1.–<[ÄŸ¿­ê¸X~R#dWvXéûaópÁ~z÷‹Öz #»¿¸/ÿnºÀ$ôž@¯-�à:nœªP»Ï‡´•³„Š7"ÿ–Ttj?{Ìïñ0lYVÏ/¹U!°—è˜?£�$O:†§™8«ÜfVš¿›k¸Qó?%ÞC  �ûÓÚˆoîXè‚ÚÔ„8yŽf¤õO¹ 0 /8?°7‰M«Ï-ôÏ ú¿  É7ì »ÁÄä×°HˆÈÔ휵*˜‘1ÌÄ©Ž Sï©b¿tÿÿšx£Ž[:. ÝE0Á5º�9aŸÙß7´ƒ¬[e;bäÊŸ EXÙ$ýjò÷‹@â¬B×Ó~ÞR]u[CÁ%nJðžN á‚ÙZÑ…¨Gæ†eñ,Ã'Gõz+‚Ëcõß7<{•¼)�K[ š ¸uî;F«(£²<®÷ÇI¯‹�ÀnN \úŒë“ä9"؃ôêàÐ"×,ÿx0<ÔöIȆLAšaÍ !tò�É—vŽÈÑ,Üb³6½]HâZ¶¼_¶XrŸ ÅØ!Ø E=+$yˆÑ¶Ìºú=/@ }U⣄ĈћÍ/áeú3 Þ£ˆÐCâG÷@„¶õ½ífÏ�¤ØäÎ%mœ@F‡Ïù™ºç÷ÿ‹- ·ïk7$‚eH�Ó+䀤vy>Ù-”4EAXüúÿ>òkônLpUÂNlÁ«�ÜáeßE°µ»´™äÜá džÝgxï7à âèŠâ„É©í½ŒaÐÐXžbDnÕ1 ÐóÄÜçc0FO”è /pL|Lœ�B°dF ž?æ¤Náuxž:Un ðøîp •* c¾ö.'Á$BðÚ—‰ Xrü‚ŒH¸6öªñù_6akMèu1œ…s(‚ ”¸Å…®0Šð;:ÉqØþ3a2^`-E˜)€¥�=~9–÷€ûþ[Á(†Ÿ'�£÷棹 ‹z<Nðô5˜´bM\àõ q¼%.ü$Á˜ù žcH~(AÅø§„[ëJ%a¡P'Ýj-¾œàæ…#Œ®àÎÐst2:ùÌse.µ{ªµ=Þnmo 6NØ[°“tÛëÏ4ï'Þþ7«É 6x‹ýb5o:IJÉ&09ÀU^;ÊŒ€ä},‘»&Î ú¼,\©è¿ÏUoäïGÛˆ[N DÉ?\DObVA"}ò@wÉ&ÿräu'>jgÈм&ÞÉßÓb"¸ão¨|¶·×äùÞƒp'‡÷›ׄ_®¸{NºknžHþQ^tBE%?/o?odo¾ÏÙ1øMÜ~}\€þïpø«‹�¼'ð5D¸¯áˆ/낯þñû¬¥ošßC����IEND®B`‚IMAGE 2695 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x32 ‰PNG  ��� IHDR���@���@���ªiqÞ�� NIDATxÚíš!wë:… ME E CC /½ðÁùó<gë«tWºš×öMç¾ôu¼Ö^rÇÖÞÚçèHéîËÁm»ï{ À÷#ù Ò¾×ȃ.ÀèÝö=¬žÃ¶Ë~JaÁ?1úHÇ_[Þoî°@p_×'}'®xŸNËOÛôpØÆóºMÇ¥b\RÀçm´kðÕc;{ˆ!L€aoöÛ`º®¿×¼ )lƒŸ¸†�à«‘Ý„Åsy‘—U¤Á ’ƒˆ/ äX0$%Â×õä‘Ù]…‘Ѩ_ìÜ,¾;ÌÛ VÖ/qf#ï&ÂÀHŠ]„/1ꃈáÝå™ü£‘ÿy܆G Tvk2ûg³B��Âñ²Ûþ½zR¼ï‘†F\¤ZÜÓñG‰ Ñ_äÉp*Ü7G‘¯˜¡æ�ÿp¼A×îšühí`˜ŠHF·:`…047ðù’ºHC‘`Èa‹OgÑ¿kÈæ">FKZ9(y!ÀñY€ÇÕ,€ü¹p}ŸýBN‡™©pŽ$@’£M›L•í¾»"?¦ €b]²ÙÿBÜ›€ÄÇ篻 J…Ž]ôÔ w8%2úÁ‹<ÓÖ‚} Yü©‘ßc{2þm„‚@æ×AÜÛ”yA±/D^Ø5’yexµ¸¡þ9EE–çîm:Äþ-ö5bs”�Äÿ‚¬Óð°‚=áñžÄ÷ûÒï½K„)…÷ã*@ìNh @Ïüo¸WN¸#˜ö戚�K@b`h3�aòþÊ’ÙäÞŽÿÓsææ`ˆ^¨çE˜òWXUüpM÷¾"BKxwE²á•øÇþ…äwÂ4Bø²Tà„E×XÜÊZ ‡ûƒß+/SÌ¿�©�S�s$ƳÁI�«�N3Ó¢‰0a2¿î‚Ñ› Îo.›À‘Ö-ÿ31 ­Lza²ÖzÜâM € KB�J[Úà Ž3 µB‰T‚j_é‹Ä…¼Ûü>Ù;ê9bÌáÓœñbOžÑ4Ó!Û¹“Jr·¾S`]ΈgZeÄ êÙ,xöfñ5±"|qŒ9UW¹âê‡v‡& ˜<׬õ%"Â_%î#›Ú ?#„)?Dgçéõð&%0yÀÐPR¤�£-Ýç¾&ŽgtzèR†IœŠ*ÌŠI"œ‹ Ž œõ-dÿqâ:c/ÈSÂêÁ§¹½ !VvãÐ_¢ó–º�}&ˆ$7Ð75”$BøãRÛÉÜ0Hàc±6×E;Ð~‘ Œº&QJ´¿BÜ£”ñ9$>’àDž¤â'íȈ0׋ÏK€,„ˆ ú~X…Rs…WG ±%D‡�%b÷Ë‚~<o†² jŽóúäs€ì*ñQB ýÊ\›. ¡`ˆ&š·÷ä‚o’OÛ{‘féZ8ðr^$òç"aQ^®¬ßmñßö�$€C�rð<7¶ý>%A‰À&èáydåš!§û<Ž“ r¥< žŸè °bŒ® Í ÑÎË[‰1—TÕòk’�Ø[R§ Ëv”uÄ=a‰vŸ¯—L¶O$Ç&D°ûÃ~6Ge„°¶‡.¨#:iôqoV…€b"¥ @°~µ¹×½+äõ¼QÜÃJ¢öoxsn÷‡¬¬ÊÈ*±Ô­é”½^¨ka–Hˆub¯å%+Ä>+¤ª«¼îg+œ0P gMOª‘‹bÜ0ƒ#­»”-<¬€>â@¹HßÑgõ^pMúMÚ¹;É$;÷¸— °a H�}†åNX/Z5—¬µï…½¬Q®™í\ÏÎ^n vø1$þ<Ëí¹Š{D8¯w<íEѽû•žg…(GFÿ= ð¥J®å€C–Ò8€ IÀvõ³`ð#ží\H;¿Øõu®äÃ’:¼‘G�B`$oÔÄçŸN›·$8v]t †³kÉÈ{ ¾@ à,MËÁÜ1ÿØ×i0ÜÎþo‹1•X1ÒÏc•aÏ4ÖCåéX[¶¬3ÄV$e÷¦ãRãß .Pá"tO¨çÅ4 §ˆè"©w½$Æ YlÖ‡viù/ !w ²Ê?Oe%žW¨l¿þë±f÷tá"#Óiǹ†�C€ŽáqUV‡%’� »¤Ô·xÊÛò`¡¦ä?(‚^(Û¹s¹ñ@(fݨ,žB@öÇÚŠoJgf\@v‚cù˺ë_J@‹$E»äj(¼ÕçøÆœÿñpXÒÍ‘ïm &ÂyËç½ÈƒãB5˜I~M�§„¨$Õöø…Ȭ`óç.µ¥*|Ç&ɼhô¹ïóHá–�ä#¨óù¸nÒ]„)ú&BÀ+' ¥-_ÊóRÙjù‡Iïèïçþí‡ÞÁ—¤¶‹à3õ¸K'à�%Åê‚Q‰ª¢ ¡xçPÊp劣O$ÿù"¨=žWÅ|ù?4µÀ’*y·"�Y=‚æ–ÎmÅH-b®õž;;�ê¨g#Kì"ÈÞ®u,Ó¬A¤�?šÐ*˜†ûìàU"“àî[„tX¶r´š`)¿œp("•…q:yòKÛG¬-{TŒýWà+!Ìe÷$B‰«cØ)(†RÝ+„¼ÄhKf¶Íz^@“D‚¸‰9n£Ú`‰5Ú³¬½!Àß# DÁŸ|." ºV´Ê¬$pÙ µÀq"ï Öz]·¶áeÞjÜgÈ𻈎æ(Q+ÈZà„ì¶hÙ&ÊÄ~µ¿fŽLÛ°»çc ~T/ p3Uè³�,nJè"8ªK­6ÙhQhÕr™ÕªÚ º3ÆèïWŒ)„­Šá ©G sÂì«íƒµŽ{ä�¶ßJ®Bq õóðŽašêŽÎHŒ$N !}ƒ/Ù0›œ‡e¦þÈžÝck•o\ ¸á‹¸Ã*M—µ²¬à<™ÞI8D0DK¦i+&"ü…Ô8ü¶—:9&œC„ôpølr}Ú¹îû‚!FXgA ³O½ ©Ï[ø °MöÄlzŽÛ$p~%Npà—�Ÿ$™Ò{&È«À’…p«ÞPS6²¶×õ;-/VÑXZo­·k‘éó6«ËÀ”öÆqK°qViM!ŵÕå‰]­oÿ¤ÈˆÒɆàØ<m£yÛ-ìàV²“uNðM€ŽšR¹b‡`üVÐûÄïBÿ>£ÞÈ,]#î蘈~úOî)@ÌDmº£ ›ÃuËy'Î(^ß¿"ÞÉ¿·2Tgôµ¿yÆà½Á]“'OáNNC1® ÓBÚÞÛ ¿Î¿ƒ£9@ÞúH‹Å…ö9DøðîrãAÄÿ7ŽO ÿSÔ?üè"·D¾ƒoá{8âÛºàOóÀÿ¯ü ¼ë¸ÀP����IEND®B`‚IMAGE 2671 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x33 ‰PNG  ��� IHDR���@���@���ªiqÞ�� 6IDATxÚåZ!“ë8 444444 \¸ðÑï¯|?Áßô´Ç[¾+omîöÞËÞºªKŽ×ŽÕ­žÑHÙÓ—:RXNß÷ �ßWŒ#øV#o°Ï.†å{X½¦åTãÒ  ÞÿÑp°‘Ά¨m¼NK˜‰vÎøê¤k܈#Þý¥-éå²øû¼¸ë¸øsS¸V6¹_ܹñ¹/Û5‚8H*áNè&!xŸ–N>;\Çç±.]IK=®_ÒLdÁÓâ5<H·¤‰ Iv Þ Q³: +q'Â×õ ï”ìI!d0ê79‹Ÿæ~éÐÂúC^º^ÈÏ0Î’â£nļ>ÝVò/Bþçyé~œE€A8Eì_Åþ…D �œo§å˼%Åçù®3â eqÏŽ¿@ŒþHA^—÷õäž"hˆ÷óN\{jòNÚNàJ:ºtÀHÂ&€¹a¦õM$Ô&DWÓ’_¯"Gÿ©Ðy§Ä]Ž‹« É ÀÖìøË(–ŸIþ:0ö§ÊÑÿ“^DqM]Á¸&GáTi÷=yWÒél«HhÌþ7Æ=D�,ñáïn¢ æAã”#ë„'œ9ú)‚<§­¦öAfñW#?Ñö–ñ†‚ÂÙˆ3žmJ$y�±@8™�dª6útÃñèï]0õfy=Ô Þ=Ÿ�Îb#†¸mklê�ˈbbx|$±&Äý4l÷>•�6ú¾$y7*HŽ™®�áû–õð~8ìœð,pÊë3Gßh›�$j£oñ?U†Èc•%ôL‡Å¾_³~×'A^ÀZ„Yú# ^ýá‹û´ÿÀÄ· À;¾5ÐpõÿAXÆ¢†Ãä‡8-  úD‹@Â(~ºK)QEèæÂ0éÓ¡!A¤bøu‚ð…„ÏUɘªf À²–-“lÏÅZ`Ȭßq‹EDŽK1}fš‰ñù¤õË=^Väeº‰‚|,€ë耜8ýéR6‘x]ÛÆ=>K‚~®\ìL2ºÒb5xÔ8Œäç"Bë9ÅèÓ§8ƒÄ¥ã®D’é³vÒå�1åp1hp–&�’"k�ÂÉÒ7üqÝÖݹ‡¸Z4´Â¸¯I·Ç<\T"¯I‡l"<N<6![ÌÂBÄ/Î)Ä$„ró²'AÀf‚Ìäf° Ë "¤?nÚzqC‡ï?$°?æ‡�—%¶ÂCÉ'nuAþ¥!=­Eò¬ßñ¥—Þ^D!F �œÄî;û*¡3Ž#Br �C¦ÝoNø±n„rT„¨€®Ã̶‹ž®lÀáZ W>#ð "DÈkH|4Á<JôØŽaŽ^2¯Ÿ!�64, \XìÙú_&�Ü´ Ðq&°½>$AˆÀ Ðy%… ²F†xhñÉb9ëpËe`ß*¯ù[c(²ˆE„:P„wÉ—¶ ]Gâ‹ù¿†–æ‹ú¬%@k“LS/‚V !íæ$º@Éxl~¾LÒù!�;Óe5 Àµ¤ë œ_f:(zöÇ ¾_Èâ„,çÃ{‰±E•Šc�´÷X(�Ér/n"¯3EhYî‹Ú)§£…„©É‘!„8E'¦ G©¨ÏØ68€P…Âú×Y …û°·:À>ÑújóÁî#ÉCÔFQÂ}d²N«�‰ÞÛã\‘Q9²Òúû²¶|ÅËp "P˜–ùr&;Ô’&XŸç¢õYj„ø]›�Q^ÕAÐ@^c:Ê9àÏünù°Ÿt!B ÏáºÞKìI¿+€‡ Ž:*/ lŸ�¬£HÚféT¹K+ÏÕÛ$nê•|jeClÕÐ:†&¾øzY¢$ÁÎ\·fy%Lˆ,cÂtYè¾-'¬÷g8� /Óê?+,ÌjÒ¶%‚YNÿ–ñ> ÚRå(Eî-ç¦ñgA£ |M€ÕžÍ@Ï�@š Óš|.BÜDpmokô¤“¸£ÿ1é4˜,û?Zø!+œ ü<ÖœŽúü*¯gm¹__Iü>xŽy!s61@�^£�ˆiÀнŒÄ]Eàê0«è Hòc݈íNú!Ï?fÍ=¥ýƒB(̬ªêÏ FIç tË ÖuCÑ‘OÓ�Àþ´6⛕#gº€�pTŸØzGëß�‹$E%2\tǨ–ÈùR—v—÷'@þðBØ.\­"ÛßÚ’D„+f�'ÎÕ`eò3"¦LÛ߲ΠtAM9âÆœJÐPøH¿ó;sþãáÐÊÑÈ3$„ Îûó¸T’ÞDð9š›�9á<°ª3&Xz]*‡–#oaÖ"éC„ú†Ñÿ¤ÍV…;5ß!²ÜDˆ•¥h( "˜Õ1ªx‚Û垉–ñϰ¸~L€‡VŸñ…&ÚóuDÌ›œÿ“ X ´¢äÃH˜Ð2a.À¹¹k ÍAƒÎ,Ÿ@þ“Eè¶ú_G½ ¡<dA]Çúæ€ä·™¦WØ&lœ…¶Ù!¢D¶Ø~®c/B™Û2œ§¥´áÍ ó�ò»„¸ØÈ$ßlQ[.½Y1n¿�ï„—=•»£;!X Ý+$yˆaKæÆg-/@ /p+q'!áÐ&¿ø,ß%í�¿E5ÿDˆ¬.°Â‹"H @ jTÄä•´i#®óÚæ sÇN€§ þn@äÀ�ú= JlYçöTÃ’ A<—Ê,y£—s¶†Ó³.Åð9nBÐZ„™�¬ë‡´‰¬ºD±†°‚c jh=ØBÄåøÜbø”T#‰Ìâ„>ªí“´¡ÐiD‚­*ϳ`ÝÌYE �_äè¼× :# HÄ1qB�Â#4†*èEž§Ö³ö¨‘›¦Ò"ׄb óëtGd¨˜(¡–7”,–"r+K™è / ù7àº_öÒ�·$Aa¤��°pø×²ø+pϯŒb¤±,mÚÕpúÜÒ8z";70^˳%Úù^œˆ7>I0f~÷x’ïZV1þ.a«Þ¨hò\Ãq¼À~êbË£`!¸(Jl£´Q®%ŽÌ6ose™8¥½{ æz”Õ,¢ì÷ ÇòúïmÙ?(rTÙQæîzüC¤]×K%ëA˜€H@4vn¢˜FÀ¯÷„UìÈè¶þp»Ø JËFþñp F<°s ú©¿6—Db  Öy`sÉÖ´oynĹÅV#žß7òT†èBû g ¾3…=yÍ ¼‘Ãg´&ÆŽðnă#qàÁÎüo>Ì „’·˜ÞYÜþndH?DþÉ6دwñ™Ç&À78À~ûÿ6"�G"�ßC„÷ñ=ñm]ð_Ïÿ–µ[3¯_����IEND®B`‚IMAGE 2364 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x71 ‰PNG  ��� IHDR���@���@���·ì��¯PLTE����1!�J)ZB�B)�)�J1�cB)9!B)�1!ZBc9kJ{R9!!„JB)�9!J1R1!�9)cB1�Z9„Rœc1!�!B)J1R1RB{J!1!R1!k9B1!Œc1„J1¥k1­{9c19”k!B)ŒR�sJ„c!))�B!)!J!�R9R!¥s!)�{R!9BZ)�!�ZB!kJJ)kB)B)1R91Z)1sJZ91Œc!sJR9B{BJ”{cµ{Jµ{�111!Z)B”sc9JBZ!9B!�ŒRR­„sJ11BkBBkZ!B{JB”ZB”c)BB½ŒJZ1Jk9)Jœ{!!RµŒRΜZ¥„c¥„c)c½„c½”k¥Zk½”sÆœ{¥s{Æ­„ÖµÿÿÿB„kR„sRœZJŒR{Æ”){Þµ„­”œ½¥{½œ{µ{kµŒR1Z¥kBœcZÎŒZÖ¥BœsBœ{cµŒB¥{Bµkc½œk¥J�)k½{kÞœJ¥k)�)!!)�J9„½œJœkRB9R½sRÆ”cÆŒcÆ”cÆœJ„JZZBk­ŒZJJ¥sZ­sk½œkÆŒkÆ¥kÆ­kÎ¥�B1Jc9Z­Œsµœs½¥sÆ”�Z1cÆkJœ„J¥cJ{B„Ö½Œ­ŒBÆŒœÆ¥cµ”Zµ”{Œ9Z½”Z½¥{½ŒZÆ„J”Z{Æ¥JÆ”cœ{„œ�RcZcµc„Æ­„Î¥„έR{BB¥c�c9ŒµŒŒµ¥ŒÆ¥”¥Œ”­Œ”ε”罜­œc½sJœÆ½œÎµœÖµ¥Îµ¥Þ½µÞs1![¥îÞ���tRNS�@æØf��;IDATx^¥–Sc5KF»ªÚÖ¶m…¶Ï¶mûضí±mÛæ™ÊNÎI2Éd:ɳ{ßõZõ¢.šX8€XIÀŠ€�äJG°�€Ôϲ�!¸ÜF��,˦ À†`Y™eå´¯ÒŸKÛ�Kç‘0œRG´ÊJ¤ù†à’‡,ˆ£h©Ì¶Š ­ºÆÁ’x†A¶c”~ÎÝÈT0[Æ·€%Øýˆ)‡¢@º¢uÊÐ ö[7p˜—9G¦Ùh¦³Ó[Á0û°^++Ц!`#Ÿ£½4Ãxè¯X4�¢RFj¥¦iø}Òf#iþ û8²zd×¥JmjðÀ½^Æë…àØ­/[2€o³,Qùáâp¸ / I—ë¢5A”½DŒ }.’¦ii×þ÷ÿfÅ�X!0Óí¢! ]­ÇÎþÕ’àÁÎÜšÕϸ’$ájúþÏ~Öƒc#Éɇ¶AS¸ñ{«„P[™ç‰c³ÝmƒÔ¶üì7¨lfÿ ë‰g·O hÒxŠWúùÛÿT6´!„þ÷Ù ]$á*4Éó<Þ�Cwvb;]øÚíeÁög#¡p-È÷…"fÌG’ÒÆ²€öLßH; ÙU¸ðü¯Ë‚á°sHfÍç{3íx_$áw;išV„ò 'S(\øÆ$#ó=»O3#¡ú/þ@1Éù|ƒ@ó¹Íá.„£(´M€B*ýàú}ˆçÝ%A(ù…ˆžØ9—ß·;dúµnPòkŽúð�J9vFM‘Ÿ aïr>õ0–Æ:ºÝ¥V0XÒ¸dhö4Ñ››ó»%·_¥˜\i¯OT¶·m”Sx1UÓU˜˜¸ˆv0ZòoÝ­~ÁnèÐìåïÈH±fÌRÍ9ŸR ©ª:<žT} º¹Bab¨MŽºëq¹ ª±Õïædï'gø“|Y¿› —MgŠzKKË>{ÄÉ?ÍÃLŽ&£)ó͔˻¥Y“ŒÌœ+Å®¬Ïí�õBö©ëc7oîí‹F˜ Án\À@~ï/ñûüÍ9�hÆß\â „ Ÿ»ÇÈË…;ÖÊ{Îü ú%ÊÔ1pM~²ƒ=O­Z•ÍærFN3 LÏÔŸø"ÖbU2x=¬(Š´ö%hŸ˜˜xpd6 9‡Ðè¶æýƒŽè¼»„âg®O)‘¾šÜÜîÀæ%’ó¶¾öä}C=#«FÐÔ¾ÜWÍ®y<æòÓRI>×ÒÝ# ”<¼qôþ'ïË|ëôH6k”1”~ÄÄüüôþxZõxCS{»¥kàAÊ?üè©Ï÷…‹·²ÙwES†ä‚üÌT¥¿lÚÔ~ònJ‰BæÞ­§N½úç‹ÿ¸õëß7¦!D,jP6ljÚ�Û9}`lâè§ï<s×Ïÿ¹þÄ „fÞ[,šš Œyœzò­‡OpãÎ;þþÃVù„¢´ë5o÷d2ßûÉ»ÇÏ~çüoo‹&ÎcÒJäDûºu!ÈIñ{8ýÐCw½õ‡·%vìø5ž¨áõüºd¤nƒ˜Î½~íìcï}æ§ÿظzõŠ5>´¦æ2»¶XgçE_nï 箽ãÓ£/N6n…ÇÕÕ-ñbÿº–¥î{ìÜ71n-qUMĈl?Ë 1ÃØ;vîKÈbã'B./GEUóù~{φ˜K”‘ÕÓ9Y„²Ø/ŠýªÚ_LÔ†‘VUÙ"nÆ%£âк"z¾¨&Í.UUÝ„ÕÄ{¥¤˜¹g|½±þŠaäóºªvKI[Ÿ(ž¿g|ÚeG&–˜x OÌ7›wíb}W<qø°ºT‹¦³ Jº¯’çCX��†z÷õöêU (a^¥èæÓìðBÓÐt0Éq»þݲ_¯êêV E§38L~M@ Í–Ô:ô8¤€ ÔsPB·/Æq‡ØË»vU ×#ô‘5,q'ÕÖÎR á H=Cu ‚çS<ÍÅ`åáœN6¼ðdíÃUkã³ ¸€ÕϾ›€ÂlТ£'œNuÎÈk)ª#(ŠA±6Ø vXX¿³kþâ¦cõƒŽXfXvEvŠGËäYôQˆå°ÂÌ1üëiúã£F����IEND®B`‚IMAGE 2430 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x72 ‰PNG  ��� IHDR���@���@���·ì��ÇPLTE����1!�J)ZB�B)�)�J1)1!9!B)�kJ{R!�9!�9)�R1�Z9J1�cB�kBŒR1!9!B!RBZ9c1sJ�!ŒRœk19)J1R1ZBcJkB{J!J1!R1!„J!Œc!­k)k9)kJ)”k1J)1„J1­{9c1�{RR1„cR9)c91!�ZBB!B)�!J9!c9))1sJ1!)!1!!9!)!1�cJB1J!R)R9�R9Z!1R1Z)1Œc1¥k�sJB19sJB{JJ”{Jµ{cµ{c½”�!R)B”Z991B!�ŒRB{c�1B”kB½ŒJZ1Jk9JsBJ{BJŒJ1Z!Jœ{Z9R­„RµŒZ­sc¥RJ)c½„)!k½”sÆœ{Æ­{ÞµBœccµŒc½sRBJ¥kB”{BœsRΜZ¥kBœ{Zµ”Z½”ZÎŒB¥{c¥„Bµk�J9))9�)!c½œcÖ¥k­ckµ{kµŒkÞœ9{¥s{µ{{½œ{Æ”B”cJœk„­”„½œ„Öµœ½¥ÿÿÿ!!Z½¥ZÆ„s½¥BŒsBsµœ)ZÎ¥cœ{9J”Z)!ZJcµ”R!Jœ„J¥cB¥ccÆkcÆœcΔJ¥s�c9k­ŒJÆ”RcZR„sk½œkÆŒkÆ¥kÆ­kÎ¥RœZR­{!sÆ”�B1{Œ9R½sRÆ”{½ŒBÆŒZZB{Æ¥ZŒ{Z”J„œ��)Z¥„„Æ­„Î¥„έJc9„Ö½Œ­ŒŒµŒŒµ¥ŒÆ¥”¥Œ”­Œ”ε”罜­œZµ„œÆ¥œÆ½œÎµœÖµ¥Îµ¥Þ½µÞsZ1ËTù¯���tRNS�@æØf��eIDATx^¥–ãŸ+OF»ªÚ mÛÛ¶}m›?Û¶íµmÛ¶ÿˆ­L>ÙÉÝ;;ÛwæI'¯úœzê[õ"ĺÄV¶,� ·"8‡�l¡?Ã�„àf7�`&‘jü›ØÆ–k<ù„Z ¸f ª9©[®©ArM$¯u�Ù±Õ"IšÅ‘%¨Y×ÂK p1-µô½õãôЬav÷ân€£\Àüó‡ŒHÙí¦g«†V U`¿b‹y;–e5Ð56êfh�ûPÜ€±Ùí²Œ�¥&ï¥u´Ñ¨3@ø–2 jlHª‘e¹X™T«IÚh0á'ÁÛ_B ï€Mó’,Ï€’O´:A§ƒà–K¿Pb�¶÷3 Q#—¨IÖ¨£!©Ñ¼ Hd^"ˆš2+´V«…P«Ùÿù¿*0€4Cݰ¶%ZCCjªn9ÿ%¼>Z›÷ÞH ©%Iî­~èk¿D„’0·NM’ŇVCÍPæéß!Bqð$qx@â¨ÕSjH9?ýÓ_+ „vb‡§IH“4ý/MæùÿˆVÝ̆t(ê‹vu• ð<­¥ tc#H‰ÌŸ_D«ív"„þ×Ú1Ÿ%jˆ¶£’€æŠËÓSPèÎ\|þW%A×¹¨ÏBë𓾀µ;î¤Ì­EA#MÓ¡ºxp0·/sñö’€õ["ck ý7Ÿí‹Ynw‡9s±$½Ã1® 0—¸í¦/¾²ŠØ,á1½Û©4u +øÍ)Vvçdw½ J§ÓH¯jÐ%=ùu=”,Mæö»°å-¼d“Gø¢ó•|ÿ‚_ðÈz`òÈÕœ?­kèÚÙjÓsà†9(Y5™åå‹Ë(´œ‘LUà¸If;š×¦‰¾»«°` {äZj(o²ó!×Ëííç¸ÁÁ¹a(±™Ìòt«¯!Ñsµ&Ón ¯ò£ñæhíðçsæHÒtœ§’y·Ýbiîïíí펩øûx8Åü­­¶1i€¯7凨ñ*ÄÇSý?/ ð³`qÏxêõ—Ÿ™ÎÍ/ÌîÚ5ô­#[Àæ éT*8'Ô›’J£Û”¹x¼âJ`As÷Œ[ªæ„™>|óGÐh5ÀžBq;v<ó‘{<nO2 �]ïIšø8ÂÕ+Ï1öÍ™ð(–wœ>l,MQ‡Ãañ>­éËËË·ý鯥¥™™|R @µÑ“tcQ)8Øtý‡±«ÒÕ^r×èzHv0sâãݹ"9—––œN”G¨ÚéÙo1]ÔúHIˆ|fA{tJ Û…w!?ÈÇO>ôØéç’óÒ*„ÜùïX#èêË\Vú~4òÁ©)‡]ß {.u׃g?újîŽK+ÎO<ˆJ†Ä=VD\•Ÿ)»ÌoLLL8ªÐÛ—»|âìÙ³×?ûÂN|à{å¹£ð:|ÅL#S#0À6¥sË'YyòáGö}?¾»ü FÄFÇèÈÈ(„áAÕã©#_9¶ò…§Ÿ|êoïÌÏ#´öæFiu8¦,ŸÌ¥¦ß{øÔ©óß~â7ÏÅbO ¤ˆ·mwÄb>ÈZâÍ—o^¹îºG?õû»Ÿë8tè·ˆP”N¾)K¬b"ÿ±/Ÿ?ý¹×~ò÷=¾Ï~"Þëëélc¼ÍÖQ^tçŸyöÂÎ?õfí ÅÚHíõfëêzïÏf·0|$qrÇÂé ßÀ¸‚°¬Ù ŠÛûˆL–a¬Ý‘ø¾C#e÷²H„H<*ŸBáèhضGRƒÊp‹×,Ñé¥cÍ…ìÑìvk$O„B6BQ¼QsXÌݺxSüõ=ñx¡Ð¶¦C¡PPšè¤(>rëâ"ôÛBE°øC\C¼ “bîÔâðFãÚ¶‘À÷Uïä±c¡ m¨”õMæ:oç´íj �ÀT¶?›í7SÅ�Š®.ŠêîcX'B%¨L²lÛûzïïëí««ëdD—¨R¹X ð= fº¢ªê-墀 °ÏQÂ*^eUL[[[»j�¡²t˜cYÖÜÙà­T •K¤ ÎØAÏózüq‰®jóLtÝɫڽ}•\`/ÅqfGá/6phÃÑ«Tå±—GFQ-.ït›«Ååj!þoÖ•–Rþ"6†Ù’€)ñh“<ƒþbó¶Eåù7W?1“®¤����IEND®B`‚IMAGE 2425 ./arch/monster/dragon/Chinese_Dra/chinese_dr.x73 ‰PNG  ��� IHDR���@���@���·ì��¾PLTE����1!�J)ZB�)�J1�B))1!9!B)�kJ{R!�9)�R1�Z9�cBJ1�kBc9�!�9!Œc1!9!B!RBc1sJŒR19)J1Z1cB{RŒc¥k!R1!sJ!­k)k9)„R1J)1sJ1Œk1¥k9”kB{BB”Zcµ{sBR9)�!1!)!99B!B)1R9ŒZZJ�cJcRkR!))1!)!1!!9!!J)1�R9�sJB1B1)”R1B!J!1R91Z)1c9R)R91µ{Z!Z)Z9Bœ{J”{JµsR1�ZB�BsBZ9�ŒZ!Z)B½ŒJZ1Jk1JkJJkZJ„J)!J¥c�1RµŒRΜZ­„c¥RJ)c½Œk½”sÆœ{Æ”{Æ­JœkB”kJ­„R„sBœc)Z¥k)9Zµ”ZÎŒZÖ¥cœ{�)!c¥„9cµŒc½„�J9c½”cÆœk¥ck­ŒkµŒkÞœs¥{RB{½œJ”ZB”c{Þµ„­”„½œ„ÖµÿÿÿBŒs„Ö½Œ­ŒB”{Zµ„BÆ„Z½”Z½¥ZÆ„�c9JZB)!ZJ�B1cµcR!9cµ”c½sc½{)�{RJœ„cÆkcÆŒcÆ”BJ¥{Z1!JÆŒk½œkÆŒkÆ¥kÆ­kÎ¥JÆ”Bœssµœs½{s½¥sÆ”RœZ{Œ9{½k{½ŒR­„�)R½sRÆ”„œ�B¥cZZB„Æ­„Î¥„έZ”JBµsZ­sŒµŒŒµ¥ŒÆ¥”¥Œ”­Œ”ε”罜­œœ½¥œÆ¥œÆ½œÎµœÖµ¥Îµ¥Þ½ïÿ{!!®-3¢���tRNS�@æØf��iIDATx^¥–ów4MÅ§ÐÆÐ¶Ø¶m<¶ùÚ¶µmÛ¶ÿbkÎ$;y÷ÉÉv’Û=?ÞÏ÷Ö­êîQm' ÚÀ¾@˜ý�N��ûÈ1@îu!d6Æ8œr=œ;ápx>d±�víG‚zTê”e+’åPî¶ €œ‚Xª‘$ÉÔ¬ì†�$ ̸¶š~Ø4L·èGä•ÀH9�ÿëGX¤æ–L¦GävýˆuåðGÁQÅ–øì\•,[€¡}}]7bÔC=8Š€âØi2É2”…y˜ÖÑF£Nuà‡Ê@v"É*Ëri c±0´Qo4Âw‚ó_F Ï€Só²,gA™§ZN¯ÓApþùW•€ó=«¬òæÆ £Óu4d4š—ÚðË*UxÓO"0´V«…P«9ú…¿) €4V©:3 ²$ZCCjäóWþª@æ£-}Ÿ½a´ ÃÀ³k÷|ó5¤R"¼õÔY†Ü´jÚs×~ ©v)0D‹Rî¯üì7»�`\Ð ¤šþ )!üâŸÿ¤ €jØðó<­¥õôú:Êý¥c¼ƒ;è÷ öönh®4~˜^„B,wýÅ_—#à2dûÙQŸ=¨ów—³®Ó4íÖJ»�›“¹Üõ»6�½§ý>ðšòùU! akáËдÁå¶P /¿þ¥·o�X¿½*`wDߊ@©þ¨=xO³•""^]g0Jæ½(Ù5šÜ]˨dAN{ÕœÁã6·"б¦òâdIPÇÒidàù†§OBÉ¡É‹× %.²óR« ´z„€oðDÅ?÷ aÙ�Z­òçOÖÔõòݧ¹ææÑú1(±¹\1S, ”Œ…j/I­28Ô*³Á¦Í6ÑO&fòö`D®¦Úç­K|}›¿÷ßÝ|ßÀXTÍßÎÃd P,4øê!W-[ƒf“MÇÐææÌÛBñÖC<‰‡Lv{Ó@_?1Õâ7:&!—'Ò3þ–çœTÏ›¬óíÔ°‘ødbà]e�¹óvO<l2pÜ|v<™?x<5ÁO¹\-F‡Íä2ÅL¡K$ÚFSk<Bitֈ̅b•#6Ue=ÒW/dÏ<{êÔñ‰‰F¿Ëå²{€Žô²‚åBá¹g#žH|�Zo·ò㈄¯ìcôãU³,\<eì³s bØæÜ-Ÿ|òîËÅ7ά®fãóqkFkÜ=–$î àxã‡Ï$K<”˜QŸ´Ó‹RÕ’ðÈ7ó¡s÷<ywF’Ü«««n7šGhÍys) îŠÐÀÅÂF§>?ùþÅE×’¡ \bùч>þŽäÛž¿ì^u—3#Ïüç1ô¿‡yèû¾íS ®5´EsÉÛnyèò'>tÓKüÞ‰cÈø/7< '7Y¼kraqaÒØÆt¾x®øÈw{âçÿ¼ùþû+­Ñ6Ïc0;99 aU³úÄ© Ë|ñÚןùû½éô–ÒÇÊ€í Q—kÑÞùÅædlüÙ÷ýê•ï>öۢѧ¶�vzA9]GŽø kˆÙÛ¾zùÁŸxü¿=qâwÊüª¾1q$p˜Äñì£ßºrñóßøé?Nún½õ¤¢×¢×7ÔÓ…½ƒŽY^ôdŸ»éê/®<óµê§KC‘·×›ª©é»s0udó¡ð¹BþâÕo»±¬§P‹8ØLÄ)ŒÉ .yóÁ«y2X‘¼,‘8-–îc3Ó³UKäJw*´Û½6‘(ó±ÎhÓtj:5è…BãÁ¶6•Âñ ¶ ˜¼c%ùJ&›™n ::;::ˆ[©¦Dñ©;VV ¿äkkëhëPíFÞº)1yïÊØN}Ø àû¬7ºòéŽLPYÛ“l5ÞžŒóF�@\©TjÀF•(J¸1(ª¹³n„6L•/5Ëv½»ïÎþ¾þšš,šEµÚÌR€ª³ùÐ[¢ª?¢¦Ì„z–ã9J¸Ä‘=%ÓXV»ºººÕõmBÇ8–em=uÞ­¤6‹Ô}Ô¥%A0ð¼\fÑ\K5?nضÙ1u··+8KqG¼€£È8´cõju¹öJeUkÉJ˜kÍæZÕÿ•ºs›ÝÞÂÿCª= ã}pÙöèÇè¿Rí=À>¥„ \ÿ¤Á9Q£ßÂë����IEND®B`‚IMAGE 3506 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x31 ‰PNG  ��� IHDR���@���@���ªiqÞ�� yIDATxÚíY{lÅ+6¹ØIˆ–�%K€°¼’%¸ö&”E²1„!%ƒr�'7ˆ…ÀUp<šž@…¢*GÅÃRK{js´jhEªJT*(ê”GªÔJ¨íý:ßüvºµ»Ç6Œôif÷vwæûæ÷˜™S_”É\ºO†²%`ûóV|ªóD!Þuf/?%a%ÛÓ½\p:ÔÒEB´s1æœpLJzùb¨/Ÿ„é;ó,gu¶&úÕ¥˜qü|´Ï=­Ç‰–§B²ê,Ó“<œ€–UÚ¶¬BÛº.´eÚ™ÛÌìvÌ¿¢‡] %XuæñP':˜ú¤#/!.pJ9øœJ ºGíZ‹m ™Es‘ñæ¢cÓ Ì½f=TO€¶ÞKŦêl[üJÁÏXÄ!2Z�{=oûZÌÚ° êˆY˜A¡N8Ç8³ÑÑuTÛúúhL)òQµx†|¦’ª ‚¹¿s-2[× ³a%f„K1sÞ-BÝ—(üÝ�®Ð¸OßkÇÔšu¢Sˆ”|>LjȇÊÈ\³36®ÆŒõ]hýÊiP‹Ž„j×ñ ól(Õ†ó.V8qqÊK2Æ¢ùPŒ“‘|جqò4sK^ÃZ‚ ð0s[€YW®Æ¬+px¼³º]ÌÞº ³6Ÿµ|ÔÊN,ص vo‚rçis²‘§O[H–Ĥ.$³!!B|Û®Z¶K:µ+hô;;.Df÷Z¨{6㜽½P県öKW#³ñ"ÌŽ#´­>“Ž|®¿JB$jɳM$ÌkÖ‘®CO²‚'iŽ)oæŽ ÐqC„9½ëÐqû´Ü²,ç]ÖÃg~ír¨ìaX°M_Ÿ~Üää uäjÉìRâùT€„4!í!¥µg9îÙ‚wl¯;ž�?Øß€ÕÊ»ÖãˆpÙ ÷+ïÅ!!_~³‰Òþ†@ÈÇa­@³&ïI}2¯§ Ëىÿ¹¼Þò°ç@ËÀŠË8çc˜÷à`ùèãà¨n‡}wÝ=ß9T4HJjD„ŸšŽíÔä‡#ϲð’sqzy;ZïÚŒ™ žå—ÐúƒcåÍ/zgëëÀƒûÃn|öÞ²Úsº¯›0¡äk ú+ ~€d¤m‘š¿7¢�L_¹³€cøzúÌàø[öh1‡˜ø­?‚mnú pÚ>@}ûø¯÷#@…f•æ/é-HȇV zr߸€`„2CŸøß½ GïÈ¥Ï]x+ÎØû¶½ý7¨[Ÿ0÷[®{êú§ zŸÇ·ÞÖüP•~x?./ÿnb¨ôUPÔÑ?~³ŽŒñqÇ ‚÷mÛså™ w‚íwcε=Xós Ž_cNß_±¤÷YœuÛëPÛBf× Ø÷R?öüP¥ŸB}ï}¨‡ßÆŽŸ½ƒ£(„·Ÿ9ù’&^Õ°ªæöÔך½õýÁíO(-ÝKк¶-„ÿð¥ûŸ„ºúq¨­5¨{_A× ø{`Í+€ºs.üÐù`Þžû°èé±ä²=#@¥QGY§ÀH·³Åˆ9Ý H‰§àºa"0ÏgŽ>m×>"Ï>®gy÷>¨]¯ u÷kP7¿�õýqµ&?¿¸K«/Op�ì«¡ÖÔ4kÜÖòÿL,ÏZ´=ÛV€Œ“ñ¿÷NÛ¸Ýw<`f¿ýî×P{ê]¨ÛŸ’g®5µS‹±c/T/ïCá ,†›ýZ¦/[ÜBÄ™MIÆ!!ÄóIó-ybDœ �û1Ørî}Qží­áܧ)ÀsØRþ;r;÷CõÜuÝ“Øü“á¾?ê±ñϪ ä‡ ~ g^ ÑgDp¹µM"6öìNï�kÈø.ëO ëùnäÁ 4ô;N^ÆfŸ[ý.pÇŸ‘^7u¯t•1‘æ‡ÙtÄŽ]v>¢�q£jÉxem’a fŠ“ÍRÄá°ßÏºŽŒI æ8ZÄlàš1ºü^œˆñè_ 6Ü E±eÛ‹q~(ºü°éÀ)†Òæ yÎÈhß/hÂj aM޶2¡o­@êÀ¥¸A&%?là=‡ï¤ÄEˆRŽã3㵓åçÄMºnû�[>‚öÿç jcÓ7ÞÂEW=‹‰;!IË ½³•œ´sB·E僸 IÓ 8ûvÌw D�üÓ–û…дf7KäûC¾MòtZ&ÇÅç((E Ðì‡\ýŒyæüouÿ�޹ó=¸Å7o~ü@¢B”úTlfK:¨ÄllË10ȰóÏ7J„³ckÐ*!“ˆrv_Ò@‰9ûň`,¡82–| ã+i˜-·¹¦´P±ý\D.ÉoÐB,ºû}´­ÿ!àø•/%äã€åu*�ýØuØE1D�ç!§€0ß´d)€çо“À•øâ:"°'Öàx'ÆàH dÜHÆ“ç˜d|‘Üw“x–B¸kEÞìù�É“H6çÉêéÄ®ÑIÞžÒæˆõ¿8làiV„AV`¿O„ Í\Ì]âoëzÀ¡‘Á~∢ÉoqÀ±ðè\V˜žÃ1ql·¸Gàü|�?t[kZ¢Ø¨D“‘™_µ0P±vÄE„|b¦žy–±Áš° ò¥ãbd 8 'V¹t ú>Ÿ7ïù]E„.Å#!‚}‹åõ8F!ÏûF”˜÷ÍïY_‹$žbØÜîÒÄÄŸ¬’$+{õÀcG¼ÇØ‘ˆ`bƒÌ$øZ�aÝ€5 (Y›óa*@š (‚!ä‡Ä¢‚O$c&È«æà× 2i a*yޱÀZÀ Òà `Ûü8;%�è ­*;õ¥#ÖPXÏkÒD,¨ÑüSÄ}eZ„6ÁV ê;(‰[ˆ5¼À•#þnTϳ?ßsmLK¬ˆ8NQâ™}5\¢ŽÄ€Ð¤>+€¤'{\å9옿%Bù¨Q$ÌàâFYH7+ˆ*(ì¯!ß_EÔW¦HÀ£K…­@ÜÉ#y1yóœkÈ×s×®ú,ø<I› Ì5‹Œ)6ŽqÕû„ 2aYf™©']]‘8kÞ'HÜBž-höV�žäq1’òÅo% Ѝì“$ø.—˾†JV‰ŠÏ»YºÝl(1;yœ�-| ŽXΘHB‰™Fý’¥YôCV+kÎ:@ãfÕ (Ö"æû ú>ëÝBøvf ˆ´¬H„§P�"“s,%òK––”MÁ´wÈ"jÌ"P€°Q¤IØa!ߨ"§Í¼ú^Ó„F5/jâ]eº!Oqè’þ$+8--ÀMfå/kø¤±Û%ð§ÞÏ[?Í1_/„šT}¿` …†6m’¥&…¨2.Ð XK~.F4UÆCÔŠ,y5¯yT‡$Q!æ:äÓ‘O­`t>$"!"¯Í¼öfC¯¡Ø,™³B"И Ðd©ˆo3&Ðÿ)Á FâÛV€ÑŽe¼NuÆ$@±^¢I”ûª¨hÒbž “¸FQ[@žéŒîe—Ñ€3N’6&HzŒ…<ÁïŽ#ùñ¡Z¯€*ŠPè« :Ð0uæo¡E kE ÉéÊÉÚ=½¤ÈdSæÆ"€±Œñ%8îbÑså"A溮(÷÷¡È3‚fQZþ+¨ÅÌ €Ö@d‡'[qºÉ'»º$PœÉ\¶ææ¶—•b£Æ¸ îPPÔä™)¸zôeU)"Æï)„lÏ}9|Ét Æ‹@î«©T¬¥J@ò²ª+™Ü-‹¤JÞ.”„päÒ¸¢3BxlŽœ¾ˆCL)1¬•<…Nrn˜m‰‰²VQ,'=„×ÜDÙܯäcˆÁ”"›cÜ0þ.Äã!uN–Ä\“< ¼7¤M!lM¦ŽUp+m—ÍŒSJaã€OÄi턞œ]rˆjeî; ù²z´»M5UŠ‘KQ(3µ®+EÙUKˆëâJ€ïÈþ!k˜Š…"P[ˆ$«Q�+e©‹ÈAë! ›ÁV.ß)—ã´„T€ÄÆœí|8𹉌VÕ50NHšte'9>‹œPÎ {J4ô=73=¶‰ã»‚T€qŒÙ…ñ!›d'ÓX S5 $Y9ű¤%×r''Ÿc-ù[:HîNj» ñ\ýLš·‰3ZˆáiøMGNòýÑ÷!-Êñc)x?ôGp:9¸$Y×1„-2„kbQi:KN}=kyrhüw\.#Ò÷Ý,ëäûÒϨ¬Ëµ¹Ó•—ITsIÿ^"‚Ÿˆà©EÙ¿ÈÕÒ¶Äå’Ⱥf*¢µPö9ªàaÍùd ±ßLž×2ã$e¯‹á§+rR+‹ésÑ!ä'G±–@Ø6…JcAú»'6˜ŽïqÒÄ[ÈøìÀ¬¿ªé^FŠìÀbÚ‹0 L!Fp…Ï7yõE™>å?z†Sq @����IEND®B`‚IMAGE 3537 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x32 ‰PNG  ��� IHDR���@���@���ªiqÞ�� ˜IDATxÚíYŒÕ 'ËqÂzÐËŠ¨Ì‰§#Vœž×c8®'C”2 ž[zKq-%,­¶âKÑm‰q)¥l#1ì1„#aICÜ4¤ñ 1bˆÁ†?4ÁkLšøGÓXbòéû¼ï¼¬ÇžG=ä“÷fvæ½÷ù¼ï÷ÞZß^—óµ¬ õºÇú7írmX=‹…xï͘Ó}k,BëWúuïí°–.¢=7ançu1éî›`ýàf\¹3ÏëŽëaÝ¥ˆþh)¦ß8­ím˜±ðL[~¬[Àú¾+“<áubÚ -­@Ëý½hI´ Ñ>‰9­˜¿i®ô0Í»Ö7ÂZœÂÔ'8qA*Ÿ†[Í#UÌ`Á·à»O¬Åle ‰EíH8í˜ýàr´?þ�¬uZ¶Š5LÕÙ6¸Å¬&ž0}$”�æ~Þæµ˜µa¬«ga:…ê¼ ×¥æ`vï÷`µ\­î¯Å”"”ò°<G“OdMÒÊ ÐÏ·­Eâ‘{ØÐ‡éþRÌœ7W‰À²õþ‹e�6)<¯žµbjÍ:Q )DL>ãG¥BàÂJ{H<¾Ó‡0ý^̸{ ¬E×ÀjUñ ç.E¸+ï³°ø¦$,'Ê‹æÃb|¸Éûµ¢'a!O37äŒ%ˆ�3ó0ëáÌZ޶°³–Ù˜óÈ ÌÚ¸ V÷°úzÐñÄ:žz–=L›—yú´€dILÊl4ë¡§à"ÉG±åÑ´¬ïQ® DPßÌÞº‰§ÖÂúýFôÿi;¬þ.´ 1´sÂ�-wà²#Ÿ)‘‰ò¬S� óže Jß‘¬àHšcÊ›¹õ^ÌþE€¹ÛïÇì§7`Ú¯Àkå×ñø?ý ¬äUèxLÝß~ýå!ÉgOU>UŽf_ ÏÔ0¤ ©áš±® v>„Ž‚÷[·žÁÓOŸ«¿�,úžy�Wûw6|ßß¿ —„|áÝòïW�B>ôc‚´1yGÊ \óÖõâζ¡í7Càýá#ÿÆ™·‡Ã³°Ú ·í�ÒC5ðú×>Cïê|½\þÅK%@•¤¾B@¸±ù§YM¾y^ Öÿ·6cÆ31³˜Á KÞÄæ-§±+¬á›—ç>\ooýù£¹Ch¿a;&•|ùTÙ‘"ƒ ÙH�©ÄæïŒ)�SàÝ¿Íbá~^'µdVîD¢ó@Ãwm ިߗÛ¶Ž®WðüŸ?Ä¡#ar©![+Ñü%½yy߈ AOžkŒqM_Öwß“¸vkõØ`íÅ®oáØ‰1ß9¢Ÿ/qwcq×ËøNÛœ9 <·èYu;v~„ƒûONŽ�Åá"r*ú‡ïVÐ>ž2ÄàsSwlygŒ‹;ÁÖû–aîÏÖa÷žó8`˯NbhÃ!ì|ê8::_@ßa|üñ'xû`~çëX}nßY=ör;ÎÂYð¾vòyE¼¤`镲Ìí±x¶1{ãûõ/¹¦-»3Öö ¡„xö¥O°fÓ´¶2ÔÐ龉ÝÏŸÆßß8çö~®üþ4öîÿ {|�op6>yƒkžŠÕ *ªžÌÌé±�qºk× ãy>qí5XÚ½¼½gý;è\|ý½Ç0Ðw]]ÅÊuïáð‘ϱvõQü2wl’àpåš Væ¶¶Áÿ¡>cRwL½©�‰T ¿­]“Ǧ-ûôì¯\UÃÇç>EÇ’£ú¾†Ý{E O ½ó%å$aÐlöË#š¾lq³g6&ú„ÏDeÚ5ä‰1EHyØÆC+1¸IˆuõìÇž½§±péQüíÈxµ|­3^B[ûq}õ#¼wX3xÿ÷¬p�B¾Ið«9óJˆa-‚Í­mù“¡cvz£¬!áÚ,¿T€¤ãjأƢ ¾Iedlæ½ß<·þúýÎ]À¾ÞUçpQ¤Ù0;ŽØ±ÍÎÇ ¬– y § ¬@2À¨,Àì@q’-BŒÐoÚ~ÒNɘ”`NÖC*Tãòl=F›íEÕÝÏ|ÿ2ft¿‚ú’Ø=ŠqgCIß–†CÕYΗ:gÈI-€òý¬À/åá—åh+á»Æ ¤ôlZ‰k$bòMã�Ÿ¥øML\„ȧe|¾]Ÿ,7-nRVáȉOÑÚñ:†ÂwðêÓØ?„1‰§|’–A1z'‹i©§=#„ª‹Êp’¦pöÍ2˜ß0ˆ�:øº.ϳêÛhVv’˜öÚ&yº -“ãâ{”"PhöC¶zÇ ýÍ¡¿�nÿIäŸ|¹Í¯aÿ³G dƒØ§B=[ÒA1d`]Ž©(€ pÔ ýR¨Í?SÍFÎŽ@¬A h ™H\Ÿ³ËøÂ@ÌÙÍc Å‘±d<_>-m„úžBÐBÅBÔ{¹Dc<vرý$Vv—q¡�Ǩ¬˜x^“gÃ(ïcèÇvŠqPôqC qr¶Y I[„pSl‰/vJvÄRNŠChÞB6íFãÉpL2¾@ž‰»I¼òó>lÏ6"47{¾@ò$’L;Ò@%+˜5:É›SÚ´'1þFƒõψÐ`¦} iæbîo\=XÛ¡�Z…HöM~ =Ž…Gç²Âä7icã¸Å=<[ àf<¸¾ÐXë(ÓµJ4™IñU#�;`GìPDÈDfêèwŒ W:ÎF�‚¢pbM· ïó}ýKÐUDgS<"Ø·XÞp–cò|®E ù\ÿžtE�?Gâ1šæv›&&þd”$YÙ«{;â3vÀŽDdv( Ávh„q–€¢$M:Ìø±�q6 šëK ².IŒž §”†[ÉÊdÄ1D„)f8>Æc ¤› `êlœ‹’Z�´a«ÊŽE}éˆ%äW2Š4 Ê4ÿáp!¤u°U‚º)”Ä ÄH^  @µT2ìOÄwlÄ‹"N*'ñÌÌ~ó|ߨŽÄ�_§>#€¤'s\夨1‹„òA5GèÁ…Õ‚®ž*"û~™‘‚á­@]Êwh ¸A�q'‡äÅäõ{¶ SIS\³ê3àû$­'0]Ë1¦˜x‘«¾Ð%tñG 2ËL=ñêŠÄYò9AâònV@³7ð< ]-Š‹‘”+~+QDeŸ$Áo¹\v¬h•hñ};I¢›"f&©å‘˹(â…Pd¦ÁH‘diVlÈbD`ÉYçhX+é…JÄÌHV=gY¦[×ÌlJ"-+ái€H¤mK‰ü’eš’2)˜VbauÑ"P�¿š£IÙa!_-!­Ì¼ôÏš> Ê$žSÄ‹ª$ t%B†âÐ$ýIV qZZ$€ÃOÊ;NR ðec7K௼Ÿ7~6žb¦RÐð©ÊûJ€SÃÈV•ù+“Ì×(D‰qnÀRòs. ©2h]„d`È;,yÏçã:$ ²!×!_|lãó!Aeæåw«Šx¹Z^Ÿ dG*.ÀlÀ€&KUO|›1þO5'XC€¦Ym"D¸(r•<MZ£0\BQ‘ (òd˜ÄrÊ2Lgt/³Œ¦�œq’41AÒc(ä ¶;ä'^„R¥n¨#Bv¸ˆÒ©ª.³4%Š_Î)HN·RI³§—mÊìPCЖ1±'\,ú`º#H@ßW”�…‘aäxFP+3JËå™Ð(‚ìðd+N!ùhWeŠs9_ZssÛËJ®Zf\w(È)òÌ\=º²ª<í÷B¶ç®¾$ ºã…'Ï­©t!òEäeU—×¹[IÅŒY( áÀ¦pE§…p<Ù¥"¸"1¥Ä0VBòB6:rnØp´Eei)¡œôPÞser¿%ÏC4¦„ jAVû»JÙ„ äIà³Qu¶gÊ„3…¬‚[i 73´‚&¸DX/¹Ó“³ËlA¹À}‡ƒ«G³Ûœ:î!B¤cdEŠÃL`¬ë‚ÄýbN6B¥<Џà7²ðĦâE(Š)‰Q"ÉßjÀˆÀEYì"rÐz H&0É•ËwŠÀå8-! r‡ 'g:o¾7Ù‚Ñ*‚жÆ I“¶ì$'f‘ãëóAœ}ÏöäL0õq\[ 0a‚1»0>pᤈÆt±„©š…¤œâÒ’k¹“ˆÏ±”ü- $wKY_Ð8¶z'ÎÛ âŒW�¢Ù! Û”q¨ÙÚ?qªFÒ¢‹Áç²U®cL‹qäìŸçü$l l#@ƒE5¤39õuŒåɽ§P—Í߈ø{;É2j_ú—uÙ&wÚò1‰NxÀŠÿ^oÁD°‰Ø¢Ì_d ¥Ô qù£$0®‹h,”}Ž+xs¾C¬ÅµÉó^fœ¤Ì}£n ±¢Tlcú\tùËã2–@˜:…ŠcFü»#hL'ö8iò-d |ýG`Æ_­+ýjÙEƒ+^„qàÊb Wøf“·¾½®œë|W°ù›����IEND®B`‚IMAGE 3496 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x71 ‰PNG  ��� IHDR���@���@���ªiqÞ�� oIDATxÚíZmŒÕž »2Ë*\ɈZ´âø£nÙtu Z‡UdD>&V”«ÔrQÔŠñ†*zK½~”Þhª7Ʀ^?6im71-kµ«m욦‰Mª!ýaýh4MÚÄ´ýѧç™wÎL'ÛËÑuYäÍ9gîì9ïó¼ç=Œ/žOãñNAÚïc²?KOMAN?GõYƽ'ÃpíINÀWØsNJAΘŒÞd¼pŒ‹Ï˜äœmÃ8u.:–œ†ÎãÆ´™Gbʉ³a|u!Œsg L:O8ÙRàND‡·�G\áaöÕ0§Oƒ9³]fºV.F×úeèXæÀðæƒP&Õ»¶]cÀÃÌëW¡gí˜ÎL˜óf¢GYý˜­+0÷¡aÕŠp‡*°*¡"Á¦ s“1ÿX]G¡gñ™8Κcþi˜B`Gu£{õ2ÌÚ´f%Q˜‘ŸŽI„[+iS¯8j€û”\¡}— ¼‰©³f`Š¿æê¥07,‡¹EQ `”sB"ø^HðõÊa@‚ŠscÞlQÒ™‡“O*àÂË 5î‚Ù{.Œi=ê÷£ÑyÁ防j1¦¬é‡yý¡§€º0Š E_“ ÀkÁÞÀmÍž…9Û×bÎÖ50–öª­oº×]„é–¡»ÏÆ‘ÑRt¯Y‚îkú1u#;OÑ I„&á‘‘ ~#x¸61Ièê? Ó#¥ôšK1íŠ~ç‚óvoƒ±kÌí+гùt+`æ†~t]Þ‹®kûÓ„gjˆüD<ñ†’O2H[M�sÆ#áŒ0gã�ŒÂð¿vÃ…W€OÇmýèÙ±3¶­DÏM¦n¾˜[c*–àÓ’Pˆ¤%x Çšö <©¶$X×Ü‹\ÎóaéÝ«bà|ôû“žzžñœ;×bîÎõè8gŒÒ$€Ddd¸©õ…í £ ”F›BÂgñ¬Üõ]èþ17íÀ‡ý|f=ø:.ÚòŒ¨ŠŽ‡¿Ö¿(ù­5XôÈÌXüÿ•vI@²õ…â ÚúºO4•}C¨¾1üÞ‚Eg¡‡GÜü(Ülx È}n} ?üŒê‹˜Z+¢óîu8£º s/?¿µÂnê8OÐaAÄ[bQ —�î+€ñ§qú^`ío‘-|ûóJ”îʼn·í„qóéûãø:.¸«Ä­° N¡OaŸß0–FjhŒŽ WUç'€QÁò_ß~Sõ·=ã{Ðqã#"žÀÆ·þŽ3w¿ ã’ÛS¥ŽÝÂýÞ-˜ÒîÜïê2˜ 5 ž¶¼.Œ¸]J®£12^aàlÂ1 øæŸ¿ ãá·`|ÿ=•Ÿa矀½/ŽÀÜú<ŒMáì;^ÂmÏ`ÆàßÐÄo°üÀŒ0í²>žÛ`Áp$(´¶ô3ø©ÞGo4Q©£6X\¹óžz³vÞ‡Þ?—ü0îÚ‹å/å?�‹Ÿxƽ/ÃØÐ€qÝãøÒýOÂ}0ðνèè[Ð^I/Ÿë.Ç©°fðê%TõÁÛñM† ë/avy/®# ?ø�Æ­Ï£sû«0¶*¶ï…ñø{ˆ‹£yìÑ`ÐnNSŠ" :OEàX(” tu´‰ÚPsœ ضÆæÝ0¶<K‡¡rÀs²ðŽ=hìyÓîy5ö‚¾;Àék¶#Ò*€Ò’€ÀM]=ë»ÐÍ士à 4†›h 6Ɖ€Ç>À}Öýôß0n|ÆÀ.„[öa}õ0v<‹óŸzG%ÆF¬ÈÜÝ/À\!‹Åò¼ý‚×’f¶EŸmZ"gyÀæi‘Gg†‚J„­½€kj9düt핯�ý´|òÜù5~'Ç`‹JWv`+… ŽKiG€XÚµÇX]Ÿ ‘`ªwvYçAz‚ …–É$Ð�Ú‡à-_@ÚW.n¬V%ñ£M'µC]P`,¥¼Sò`¹ªOåm«õ‘XZK¡èÆ Í±»€àZpªb}MB4Tß/b[FÚâAqéµÏ`í7ß„ÑøH¹ù³Xÿ!°øŽ÷ã ÜÐK'-øj‘²O÷ä8%¢@"BO,Ý"þµ˜BE¬Oñµõ)nœüF~½‚ nî—�Ó±D?/Ñ/’>õ¥áÚ­{vùuw—*rîEñwðJ)Ûå$ñ„TŒàEQ.P …i×& c\0 ]€Åßå Äg?±¾Bøžëèr˜@듌üÜÙü…ÐO€³ïq.êï&fb$«]«~„y÷¼‡›p=qÿ¡C “açÄj5&=.z$„ ãØuE¸H ã”^B…M8Ç~F�­¦Á‡*”8 üz4–\ ó ©µˆºPا~ì“„4g¼Žkýdàm5©_‰'¡õ šÊSqYL¿#»I> x.d‘4z†#$0O0NM—b‰Ðú]5#€d¼&À­I«  0GlÅ`þ œŒ�¹]¢¡ô˜sÒSiÐtŽ–à#º¾oÃ-z$€ Ë7K X +6^yÇ$"‰‚±¢€DHb²8³‹¤¬¸£]biI�Y~Þú¼å%¹È•$LðÚ“¨“¾…Ö÷Œüï¨7 X³ùƒ¨E8ð¥¿ì ®/f–„QK89ß‹2Š0’Eá"¶€¦ð{’* •’äº{!ðÂõrÖg8å{+Ô!$±.Þ’¸?ÃPþ ‚†…^J�¿åw$€!MÝ‚Vdý„�IvÊ0àb)󗊪Eœz/àW„¼ ä2‰8'xý D^‰\‹` >u{¶´>….Oå)ô2Ó—Ððõ#X‚—$ )©çŠ!9ÏÕ Ú hMfX‚$dSÇ<-@%ø[Ðä-o„ P„�_,oQdûÓ"ž¢@[ž%ð[¥\4XÍ»CB@¤_­Ãõ,ÑG{¡X?;r“Xy®gÓH)è*šôVȘ ‡Ëœ Ùn²d¢«C*Xl†ϰ‘¸×ç÷tÛTV7hEG’"­€‘:JûˆFk(×b"¢¡ª<TŽÅÍ€³åzb}®-·Mš�n‰Ì=ôÐè!€–¤•"*M’ÿŽ®Ifr“s}ræw#‡e.=GÈ‹’mS,/1Ìï=qÑp¨Æû�M�ÀK!‚×"ÀÄ¥IDjÀ÷ô¤Ê5%q¶H~mI`Ò uõVÔâ;fi±¾'ÉÍ U+Ðê>Þ!·¢N$ßPdÓ Jˆ”ò$<®ó¢”Þ I`Û2ŽùŽáAR‚‘˱ÿñÏ º$n7 0œIP‹ª6²µ�Z†­€— “n/ɳQ¤û¼¸ýÝ_YºQŠ/Hëï#ŒóC=~aÈú$Ë·ýHÍ}8(Erù!Ö4x‡-Ç<ÇRœHâãÎÁ8§ûKò£Å‡K(©+©wÕÑA4÷ ÃçöجRÚgñìôzèàsYó@ ‚ ³Óó�cž¹‚;�]?¨Jö÷¾”Ü”UÞ©ðbDy@±!uå€ua(øYÜ ¶¸9E¬OBœ,áñ Ðå,Ý4à2TT$”c"J±Ôb¨)2ªƒup^J¹Y9Æ÷>‘UšH³#‡ÂÄ(à+½K0¬·1ƽ’r²Õ‰”(ƒ5ÔG‡Ø¦àyˆ¡Ô›µ ^²—±M×&lå|îKÉJð´: `Æ-Î]Fµ åöÊâ#*æÌ9$0¬–) ¨‰ôH5'[ ($wtê½xCR‘‚/Ô<«:fø²"!ªâö$`¨!‡›0_°h™0 µ¸úè›|O€ó½I"$!ºÐáy‚Ùž5³?-O*5/>ÑÆ/…d<ëšÀ Å¥íäæ(ø&`À–’»JcòãvÆsû•ÖÖ(Ö&x*Hpºe‰ËvLŸ$°$æ;º~RþæÚxë+q«œÀÀõi›€Ë„õyШÂ*…r[ì;L«ëVÇ?­®…ÉO.W¢€21g‰Í#x*LÐR“óØ[¯ˆ×Ê$‚{9%µºåÇ#àKœÊDݾìu%¾),>4xŠTt;œŽukndw›¤–/68ËÊñ¯®LŒ³õXv²‡®X½YkŽ/ ~K²[ʧBã^®´¥°aœ3[R€bÉÿ¯‘¨8z6[Ý—DìXc%{Ï{…OÆ;9 àuuòÏN¹ówk@íçM… 'U£c²ÊMn’Å¢¿Õ;-­i‹l32ä°%!, ÜRÖEe'Y„“ëVîúD[€ÈÂl3KJòÛgÎb¦;)”þWì体yFB™›Dln@òH½ù ˆàäšáLyG”'¸ô^’ýó—ô³6û{›’¸ª›Oá–û©$Ö˜›¤’ñ¬ƒ"!o} ÀÖ’ëf^ó$˜ï6ãüè°ùxÉ\ǺŽ7;!&›ü†}ý{ÖŸ  `qö‰íÏû• ø¤9e2?:¯|î h-ûÛ1&'ð `ÛÊqò[ÿóü|AÂÇxþ [|S’W0“����IEND®B`‚IMAGE 3528 ./arch/monster/dragon/Chinese_Dra/chinese_dr_spellcasting.x72 ‰PNG  ��� IHDR���@���@���ªiqÞ�� IDATxÚíZmŒTÕÊ®\vÆ…’+"rWŠ^±â-n—˲]¹D)—qJW¼¡jK C«í„øcb):-1¥”i$fBøÁC\ÒvÓ' i\CŒb°á‡&CI4%&OÏsÞ{æv²fE]×Õ›¼9çܹ{Îû<ïÇyÏÔ7ÏñøKQë¯dª?=7Ãtg¯Pýîïȸk Rž3Å ø¾»âF˜áœÎëêŠÇË#u÷­Sœ€ï) ß¼�ÓVÝ‚–…× ­c¦ß0©.GêEÄm× SÎ–Ø Ü ˜æß„«6ù˜·µÖì6XíhµZÑzo7ZXi«]¤üN�Ê”±zë®MHõûèxô>´ß¿ –ÛkqÚ•Õ¿ýØ,øÃvØ¥,¼áìBF‘àP„„Ðý “Ñy-R­W£½û»¸ÎžTç-˜N`WÏÄÌÍ«1wÛX…Œˆ"ÀŠ3ÖDx¥œ!à+êW·xVÉVü+±rcJ·0cîL–ÃÚÜë¡»`íTDäB¤òuB"ø^Hð]„åÂW€ç©ÅóDIw1–ܘƚ{RjÜ «ë¤ÚÚÕï× åÎe˜~_7¦ôÁztR_õÊÆdC‚�/E~Ò{·5g.æ?q?æ?6€TO—ÚúnÇÌ-k1û¡Õ˜¹ÒÁ¬¨3Vaæƒ}˜ñ»O1 I„!á‘ ~#ø Zšœ$´öّ݆Rz`=Ú6õ!Õ»½Ü…Ôï¶ÀzbÚw¬ÃÌl \¿­»Ðúp_-áYÆ¢ _¼! ÅÖÀœ1ÉH¸õz̤©ôU~òc*†5?êŸi¿êCû“›1g×½hÿyˆ;îæÖ‡Š-$ô„8"i žÂ±!}ÏŒ–¿\z{÷¢.ç·£ç©û4p>æý“O^ÀŽçôxþîû±`Ïhé_1Fi@"2¼Äú9Šñ‚˜€3äÎ _Æ“/<Óï^WÀ?ÿý1ødªÈï<‚Ô¬#x0:so/ÿ—þvÖ¯pûs;1·¿ûÿ+í‘€xëˈ'ë›>I0ÞFñíêēбhÎCMoÿ�.¼¼ðêÙ[Á¶íg±hÙë˜QÊ¢å©-¸µ¸ 6þ ±Â^Í pF<Á„ oÑ¢ž8Ž¿ˆgÿô>–ö½ˆ»>AåhxÖ‚×ê”°:`ͦ=°—¬½_øûŸáÎßä¸6!ÀM cDÀSØç7L†¹Ñ*g&ˆ„£‡Nc÷ž‹èZ{Ïìξ5ë–,}˼}ZyîqŒœz{÷¼–ÔšR×îÈÀ;ø8¦7;÷{¦ &HC‚o,o #n—’ªeTF'( Ü ¿û<NŒ¼¯ç<úÖǼÎWñæ[À|ˆÞž—0¿ó9ìyâ$6Ãö_žÆ%�ûö_œŸö£íž•<6!ÀFÊ• ÐÚÒOà7–z½=ˆüh¥¡ÒİiýÓØòø ø›öâÀ‘÷pàÐÇèXtÏø{íö={ÞëJ‘*ÚÚF°~ë<}øCX xˆ.L[ySs%ý|]?ô86 k¿œCAP*±Ødø‹ü6¬;¡2ü'XÓÿ–.ý úzN¢·{KNá®oAßu¬ØëÚkÀ:¡Ùœ–E è„JB€k#*ÐEµ–†'–€y#èè<ŒÅ Oaß`ÑÂWdŸ_v\økÖVµlÝ~ÖPÒNƒÒ€Ð3®núl)  W—xŒ.V+¨TQªL ë7Ã;€/_Ĭޓhk9Œ—+gñ×ãïaáòØà,–v‚™­#°XCŴؾYð±˜ì/m6`[+‘“<àð´È£³…ÊhC/ÒE>;AÝk/ààóÀž½ÉøÆßß½Tk°Y%¡§@»p”Âi×£4#@,í9c¬nNŒéH°Ô;'oòÀ=A…BãdÈui�þnäÊJ`ïL¿eÅ‹ªÿVô^¬MêdtZ±•òn·í©>•wìÆ Gbi#鬧AZcw!À³áÅú†„h¸|YÄŽ1Œ´ÙOAƾÂ1¼|ä,¢·Ð6ÿU?õ**ós/ã×&Mj‘|@÷ä¸FDšDd|±tƒø7b ±>=$0Ö§x:•‚r9P¼,–k‹~~¬_$}êKÃ5%âÐÓG‘ßö ¿¯÷4Žý^)åxœDOHÅ^奌0í9$aŒ ê1:iØü]BŒqöcë )$€ï¹Ž)‡é´>ɨŸ;™? bàìûœ‹zéÝÄŠd7#bÍŠ vï:‘“€™8ÔèÒÂd˜ÀõÄV¤ÆcÆYŸ„¤Ž]O„‹Q“�§ô­°eòçá8H Õ øìp¢Ã (GcÉ%2¿ZЍ …}ê§ûv”ä¬×qŸ¼£& :áqZŸ ©<—ÅÌ;²+ù€àõB6I£g¸BóãÔò(¶­ïÒUH6Á¼’n æ’-·ÍÌ?¡› ·K4”sNz* Z›£!øˆ®8ð²> Ãòǃ¹¬Ï‚…¯¼5 éHâŸ`ì($’˜Îß×&©+î褅WZ@`vPo}Þöã\äI&xãIÔÉÜB›{FþÆwÔ›Lg’ùèA8𥑠ž£s†r¨€% œœïE™¬O²(zG@Sø=I•„J‘\ Ý= xázuÖg8eå{;cBHb]¼EÜŸk< BÃP7&XC�¿åw$€!MÝÂF$ý˜�IvT-ÂÅ óŠªEÜrF/„¼0ç1‰8'x“ý Ä`®ÄÑ6Á¼q{¶´>….Oå)ô2 ŸÀÁGÔ` ^’h¤II<W ÉyÆW3/ 5™a ’DMó´�•àoá oy#„ÅB^‹M‘íψxŠmû6 ÚâÑP±Þý+"Yj®g‹>Æ ÅúÉ‘›Ä’€Äs}‡FªWÑd¶BÆl¦šçñv“$SRÁì`†à6wâúüžn[G�¤ÕS´¢+I‘ÖIÀh¹w+ˆÎ”­–4ÑpQHÎkñàl¹žXŸkËm“!€["s=´ô¸ %iÁlµ@’Iê¿£kÒ…™Üä\Ÿù½Ht–ò¢xÛËK ó{_\43\â}€!€aÀ¿¥Á`âÒ$„ð½öŽ`´È5%q6H~MI`Ò uÍVÔà;fi±¾ÏäFK¨V Õ¼Þ!b·¢N$_QdÓ rˆ”ò$<ª–yQJo0$°mÇ|Çð )áh‰áÅØ¿òs‚)‰›M@Rnš$¨EU9FH�-ÃVÀK…I·—äYÉÒý ^Ü~”î¯,]Éé Òò?ªÈèüP®9ƒ0d’8ŸýHÍ}8ÌEã¹ük‡¼Ë–cžc)N$ñqç`œÓý%ùÑâÕr*ärê]ñÌß­"àö8X¤4ÏâÉéõ³ƒ¯Ëšã% ã4…}§0HÌ;iî�Úõâdÿ "àsñ@¾Z@#ʲ© (ãÖ…¡$q?!$8âæ±¾®ö’„Çw$À”³tÓ;ÈpV‘×Dä´”´”Å¡28/%?Xø4Lì}"«4'”„çD.…‰QÀ»ví.!e§¹1î•äã­N$G*¡|f˜­ÏCŒ–ò`iR‚¤ìelÓµI�[9ŸR²<­N˜ñ3•ˆç.£ÚŠr{eñQóŠ�æ˜)æ) ¨ÉôH5'[ HÇwt|¯½A !£Á§KžU3|^‘•Cq{0\‘ÃM¦¾`12i@ñÌÑ7>ø¸¾�ç{'’DHBL¡Ãó³=k fZž$J~|²=Œ_ -Èx65—v⛣P⛀I�[JÝU“·3ž3<(4±î$°6ÁSA‚3-K\¶cú$%1ßÑõãò·®Õ[_Ž[å$nNk¬Ø\"¬ÏÃJv.#·ÅKÀ´ºiMüÓêF˜üär% )“x’Ø|‚§Â-59½å‚¸q)O"¸—SjV·ý7>GÀ‰L"ÐÍË^Oâ›ÂâÀ§HEzcÀáØ´“`ó /78ÆòÙŠ�gY9ñÕ•… ¶¾ Û‰÷ñŒ'V,ˆ5'¿%Ù å !‰q/WÚRØ0Ι­?/@Zêÿ×H(@}‡­éK"ví±’¼ç½Âç㜀ðºÚü³S£Ëh¼ó1uEš!椓Ê‹o’Å¢¿5;#­åˆ¤Ø&dÈaKBX¸ï^!t;=±^D&7­Üõ‰¸Ž�‘…Ù&–•ÔoŸu³Œ8q¡ô¿âÄïÝÄ3š*¹É}Œ�’G2èÍã'B&7 'Ê»Zy‚3÷z"É?I?i“¿w(±«zuà)Ür¿Äª‰qH*‰ÏúT$Ô[ß�pŒÔƒõ/HÆõ$Xï6ü˜°¹²dnbÝÄ›S›ü†}ó{ÒŸ$ `qö¹íÏ—•Iø$9e ?&¯|í h#—Û1¦&ð`ÓÊqê[ÿëü|CÂ<ÿVoWZ`äS����IEND®B`‚IMAGE 143 ./arch/food/chocolate.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE¥R)ÖkïÆ÷Ùàc���tRNSÿÿ�×Ê A���2IDAT•cX Ä1000 … "¡¡N‘@Á ˆˆ‹Ë  E;žx/�¶ƒŒ5À ZÖ����IEND®B`‚IMAGE 234 ./arch/exit/chole_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$!!!���d3‚B'»ÂF���tRNS�@æØf���†IDATxÚÍÏA€0 A‚Ãÿ¿Lp14JÃq™ÛïîƒèXóU2±ÇƒÖCÃKšŽÕZ8 ¬ÝÝb¥€Ôƒè–ÔÛ¹\À“«H¾ÇÅØspå ï—a*®£Aþ [º‚{Æ·Š­š¼ tC_È»BÞôºÂuâŸíXN,©›ÆŒ����IEND®B`‚IMAGE 240 ./arch/exit/chole_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaG$!!!���@@@d3‚B'ÿ½=���tRNS�@æØf���ƒIDATxÚ½“AÄ ICÿÿâ5i{KKµFp™!AÆG qÌ©r7—‚›Aµ` ;ãGAFà“YëM¹ð6NÔÂ"â<X£äÜüH£6ÎÔÂÆQ ‰"^2Â�×(…;‘cHƒ„ÊhŒþ²ú´&"¦C Ó¼{§¦{¸9ÚßöŸü�H¡V€å0#����IEND®B`‚IMAGE 563 ./arch/construct/town/church.x11 ‰PNG  ��� IHDR���@���@���·ì���$PLTEÿÿÿ���d3‚B'¿¿¿¡¡¡G$ÿÿÿàààÚ¥ ÿ×�ǤS���tRNS�@æØf��½IDATxÚÝ–ánà „s-ö }ÿ÷KèhµÝ°´£¡J¢ÜÕ_| 4�ää\‘‘_ÌàŠŒÜ ì“‡våà{ò@èØ“‡AXlÉ'ë0„+Û ` WÞà=Å€’D@É!@J’C@‘Ц šC€Ñ‚¤º�¤‚„â)¤‚šBx¤9xƒ)÷¯®fºPÞ ®w¦ E„a`¿Nè €®÷¨¬�\OV ¯AŠ×ïƒ0P@tmbè{¸$®òßå`í‚Ë$—ĵ >j­Í&µ¤¼"Hk6+Àn(+‚npÂÀ�T„VMï�¸îÉ �Ô†ÍÉ[ÐìÀ=À‚À)ZЪØÄÆŽ4"Ô|’]0=å^ºøÁIËY¼—î�ã„ÞPFñ-�æ È(uT¿LpÒÎê~5&˜µðT}¬Ÿ~±­ã|ñð=!ühð�ˆ„þ ô ›¦§ \døà$ŒA_½7/û©€Ç-Œ4ºÇ, nQñ‡¥Üqwý¸ÅýÍõ°à A·ƒ3CS?×óÁŒ µi@†( ¾ÇÿŸ¾ñJ#N¦����IEND®B`‚IMAGE 606 ./arch/construct/town/church_fant.x11 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�����ÿÿÿûƒƒýÃÃààà¡¡¡)))Ð�øñ6¿¿¿óOOÚ¥ ‰U d4!íçm���tRNS�@æØf��ÖIDATx^Ý–ÛŠã@ D}ÔW_’™ýÿŸ]idbH/‹Æ ó0ÂnA)©Üdù¡�æàtfàJЙ+ ¸pîŒâ.Ü%ô÷àNà·à—„(ƒG Ñ]€G qF ñ)P'%Pç$êœÒœjš“@=¦$ÚœRMmB‚ ˜Ú-1e$ªLI`ÊHNЦ$üÓHW„F üÑ€Nd u4:‘-Ôcà½"hƒÀðFУ‘�ÃÁ1 €n hÚ(Áñ˜‘ê�ÿ–Þ·�°{Äœø¾�Éš¡oa0rÖ^(ƒ„”xX鈕ö&¡L�ýŽ‘`/€nÞH¶‚¢wo$ÄwÀ !b$_A- ÒWdË਩½àRÄ¢Ø7Òá`/² y½Ä/ƒûô­^/­ n~­oIŒ ùàÏê'O"ß>x¯€Ÿ<Y×:¯ÁÛs;xùƒ£÷ °nÛç¶­ØMŇvÀ‚?•Ä ý! "_Ÿ«ÈÙb‰¤l9£øíi…ì­))ÞêzN`½ZK„@°ºžX¯V€€½¸ñ¯ P¼¥øÁiükÞÒ ü/–ßu .'I¬A ����IEND®B`‚IMAGE 157 ./arch/inorganic/cinna.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V²""���¦ï«’���tRNS�@æØf���BIDATÓc` Ђ1Ô Œ¥« Œ™³ BL‘™ jSÓV@ÔN‹‚(Z¶4-ÌXµ, ¢†K+ j×,˜Ñ+è�úüMæU•´����IEND®B`‚IMAGE 434 ./arch/construct/tower/city-tower.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE������!!!@@@G$aaad3‚B' R-¡¡¡¿¿¿Áq8àààÿ¥�ÿ×�e—r���tRNS�@æØf��0IDATxÚí‘ÑŽÃ oC'’ÿÿÛÛÈáh ¤}­tû:#£?ÿûŠopÂ-ÆãF }ÌiÅÏyYWŒðÁç%u Rç<À7ÆœB¢pÃyaí •'?1â\WpN¡\sm(ZÞ„ÎYXŒVøãKá Ïλñ*L8ùÒç‡P9× ;aı…�âz¡=°‡ ó‰/ˆÅ4PQÀq˧0‘«¨RábŒWAÄŒ‚Y̹å$(D­+¢Ø¶¼Ñ>DTƒZĶ︾p&˜b'–G †c6Jyœ ÚO’ ƒý4!¿K ¯»Oàž,gó„!”_ˆm‚Bù……ÙPOs^ª!r&‚‘_õ<áj0.xÂÅ€™sƒó«â#Îñ—î&AT`h¬…����IEND®B`‚IMAGE 465 ./arch/construct/tower/city-tower_west.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���6PLTE��3)�T\u, \L$�w‚šDƒo?� ª£Ž[�ÎÇòÓ¼¬†ÿ¨ÔǪÿØëåÕ���°O ð���tRNS�@æØf��IIDATxÚí’Án„0 DK6˜ÃüÿÏv,g%µ×JÃ^Þ‹íûñŸÿ�ðŸ)fP1Ã)%WÆãÎZwZCN¼¦uÛw쾯Î×­Ò k%÷ÕG ¸.Ô±à¯wrNˆ#œ¯×Z×Î@ã[)ùwŽàœ@ÌMµö›ÇÎ+îÁ‡ñ]XÐø6æ.4é….Ì8Žœ±Ý'ôΜ æ|á†R \‰�ÀTÜó%/äRD3{ ¥¨RPµëzð… „LÁ˜…,VÇq‚3ú~ŸdQÃqžxnhTp’›^³ Î*³Ë¼‚Œ+”w™TßV¸~ª¼e^¡å^A¯K» .ä÷W0®Qá ñðú|Á,*Ü‚¨@Ná:£0¢MPò§¤àúÀ+´¢BøñpAA> "ÄÓþ£ù7{")‚Zo����IEND®B`‚IMAGE 529 ./arch/construct/tower/city_tower_east.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���HPLTEe s���)))LLL­­­ÈÈÈååå��ÁB$pppôóÍP)��º��t\/‚B'��…ààà¿¿¿¡¡¡��›˜���tRNS�@æØf��wIDATx^í”Én1 C#ï³féöÿZÒVªzôØKhO0�Ÿ()rÙé%9ÒxëÏÛ6Œì�œÎ¿öÀ04Äü]‚"ª+Î10Pô÷3(BY‚ùjž$ˆ¶8KÅZXB¨Ùoaþødm"ÑÚ�Zqû‘™€ÕSð{ Õ¯8z-A­7uÀH€ímJ}_¾´Þd€' ¥8vµA™ØâHÍ÷Ž-Y–ñ—–¶œþ<£Óˆ‹óKqS9À„sß;?¹"çŒX¼hÀ mŠ÷Ç€Lx¿� ÅcNPŒÏ€�Ž)´ˆÒ×%$ÁdeÈ1Ȱ!!&>𚓬G€º1$ pÚ¸ˆ€­é¤Gº¹N ß€Ö $V œ´¶¦04¸däpE.v—Çíq“H´ŠÈÄí›ÿŽü`-›qðÉq·�Ç¿«ÿ‘cõMh ¨¿Ã¨Ë=ðõÏ?èË¿è¥oêúHÁ²Ë¨����IEND®B`‚IMAGE 596 ./arch/construct/tower/city_tower_fant.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���]PLTE������aaaSS«IIy@@@..Rttο¿¿+WB@jS+TzWB3d"!!!H)-›_˜˜æ ..¡¡¡P€*ß.àààÿ×�ÉÉ÷ÿ¥�,M~ÿü Ô~^���tRNS�@æØf��¥IDATx^í”É’Û0 DÝàNíûb;ÿÿ™T´Rf&שš¾>�Íwnß$?¾Àþ‰Q¯ÈcÔµ_'dqç릯*d–»¦öM?TŸ.ðéîXoŠjZ+ä¹/¦u¸€qí»Æûž_0]*ð^ï§jX/ˆ×‡!ÕÄ›'_'¤MçÙ¯(¦©b‰ÔŸ�šÚ³¿ï'nà‘5ñº&ðâÅWüÍqø½NÏ!hxÿ™£7á§gܰCó‰¾Ïq<”B‚g|`WJ"Ï[n’€· h-‘�NŽ”—º$EB kqÄ9 ”¥n‰¤1ÖZcܶ¹1á­"-YgÎ}3&m«¤ÖÖ‘Àã±ÃŒ÷ˆ3fk•0#ûŽ»sÉ@P0;óqÞr 3ŽÌnü¬@ÎÝÇ‘Ägz)ˆŒ‚ý_…í+ær𒹕B¼âÓ‘Èéæínø¾¿–RkRVHÁ‹Gf^)µ"¥ÅHËò\°B(âzE3?™ó8R’~-|Ì“€1  ‚BÐl$B+\˜ϳ ÷wÆ+·lþžù Pý$@²ZJø����IEND®B`‚IMAGE 534 ./arch/construct/tower/city_tower_northwest.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���NPLTE�q����­­­ppp|Ô|+M+ÈÈÈa½a?k?LLLÿ×�P’Pååå-Q-)))ÿ¥�<h<¿¿¿šDV°V : KK¡¡¡u, šì���tRNS�@æØf��vIDATx^íÐI®Ü0 EÑ<’jÝTû›ì£!MCø–ìyä jr ¦~ýëû?�ös\壑s`5š)!#çËœ32Îz ÖËTœ‚¶žs𿺠áX/YûœuÆ®5[!”N`ﳋsè€w½Ps)9„´® oýðš€wÏ.~|�{ŸÏûÇŠÒº­« ÚWl½‰#о>pÝa]…p�7X<>.{Ÿ€uëO%º÷ûîµB ßû�€iR°õ&:€Z×ý6i‚_ÂM“=/}¿i'¡çlœÒD˜å7î÷ K¢cW •H$=qŸ&0¥+€IûsUA¥DÛWZÆ.D*„™‰–%‚ý„  ¤ÀÖÛÐAüíðG`?¡=Â�d?a�Õ´$b><‚mÕ2€¤[¼·ÁAðú~¿ñ(DGx)PÁÚG@ øƒ`u?a`öO`´Þ“ x¾"–ÿÎýÞƒ¢éœä;����IEND®B`‚IMAGE 221 ./arch/wall/cwall/cityport_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���yIDATx^…б 0 DQÙ€Ìm÷@|DÙ$ àŽ—ÑÓ·•x <.·x ¸ç×ÃB™H”"½QÖH˜À¤5Hó¨X×m‚Ûœ*úØ–ÞÓîØ Ý*"X""–‰¨0A41`büÿõJËüm¸�L|OŒõ+k,UÉ����IEND®B`‚IMAGE 236 ./arch/wall/cwall/cityport_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà���¿¿¿Ìh���tRNS�@æØf���ˆIDATxÚÝQIÀ  þÿåV:SîFà`4l¸š�’�òü$¼ä5”Ö¬l±{-ÒšÉÝqþ¯ÂÅBV¤š™GÕ>skÕ1?'¼Hw¥;¦®´�'@/‘Ü PÑÂ*À]„ ŒùѨY .£‹#ø´¹‹Éc&Z7? à ¼ÑOÃ~!1����IEND®B`‚IMAGE 245 ./arch/misc/claypipe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ@@ÿ‰J …h&17Dkgh c1™„~µo)¾‡U$ Œ+o ���tRNS�@æØf���‚IDATxÚÅ“A1Çêÿ?¸RwÛuŽ;ב!ŠÅxBÖoÐúÒzÉúœsúõ‡<>Ûy„÷,xÌ{¿ùDù~Thk‰ŸoˆëšË)v\Å« 5ž”Öçíš3ÛÞÅŠR퀼} B£ß°âfÿùš¯çè!âÂ�äxŠ7ë‰5ÄöÚ����IEND®B`‚IMAGE 330 ./arch/player/class/Religious/cleric.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4V.‹W¡¡¡@@@ï§_�d�¿¿¿�2�ðæŒd3���ÿÿ�Í…?aaaÁq8‚B'ààà R-ªPÁ]���tRNS�@æØf���¿IDATx^ÍÉ! CqÂ6k—ÿÿØÆÑôP@*Uj¾¼Âof;–)?âgÆiÌ ¾oP �Þ°…3Qà@z®¹�¦@‘� ×<JËEŰ )¡é…œˆà!RZ.JNEù”FØw… L$Í¡äCˆ·† pq Ïi ýˆª‡ ¡Ê^²T-j×ÈQ™^œ»cd¦¹…çòäà»ïè…Õ¢·zþP#¼…ÐÍ}帼†?›ñ:6„uh=����IEND®B`‚IMAGE 332 ./arch/player/class/Religious/cleric.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4V.‹W�d�@@@�2�d3ï§_¡¡¡¿¿¿Í…?ðæŒÿÿ�‚B'���Áq8 R-àààaaa3^ÔQ���tRNS�@æØf���ÁIDATx^½IŽÃ0 ÕMjñ’mþÿØ„¢­9ÍôA—*a§¿Ù}Ù¦|)[™÷bÆ\ä—‚|`RYmÁ‡‘WY@AÚ‰P»Ð÷j#·»@@[„}ã] PÛ(T!\0ó§v1ð-po»ðßàÄ;|†ßèÄ5¦qF¨ý5¡dGª„ÆÙ‘¹#ê…€C�8 €*yu!ƒÇ8”‡ÂnÙî€ jïd9ß Lô¿{,¾ËÑ6ÿ����IEND®B`‚IMAGE 327 ./arch/player/class/Religious/cleric.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4VÍ…?�d�ï§_.‹W¡¡¡G$Áq8¿¿¿ààà R-�2�aaad3ðæŒ!!!Î�÷���tRNS�@æØf���ÂIDATxÚ½ËÂ0 ½k'éøÿ¯%Ûr¢˜ªêa&ŽUûR,ÅèûØîý‘ßópÀ§w­zž^Am™yÈ+HüÆîI3OF÷¤^wO<å· ç©5×ój¢¬Óœ¬ ·Éïkɼžìç§3È/˜fÇív ä^  9à�Þù¬í`ÁÛÇ€>¡”EØ…—׆"÷ºA>CžÀ< *ÉX€fjepCV øXè~¢æAîóàKR…ý›' ÃíRI÷����IEND®B`‚IMAGE 316 ./arch/player/class/Religious/cleric.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4VÍ…?ï§_�d�.‹WÁq8 R-¡¡¡àààG$�2�¿¿¿d3aaaðæŒ!!!/«‘���tRNS�@æØf���·IDATx^½’KÂ0 ýüÉ?…ûŸ–XÐ ÄeÄTYÍÈŽªÐ9Ó%÷# €û#Ñp[_(Ø ¢¼õ"OÏDÕh<}ˆ¨{0y°õM– ¼./â‡Wø¦ÒK76óýhž½Ð.ÐÖÜOF!¶ Tb<Æ&8t˜ €Þ8/€”l‘>‚—Ï“(¥´ÿIMgŸÉË÷Ò£ ô'Mp °Ø‹{®õ"¨€yRÇpñ%ømÀ—¤:ô;å,ë“¢����IEND®B`‚IMAGE 376 ./arch/player/class/Religious/cleric.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4VÁq8¡¡¡d3�2�aaaï§_.‹W@@@Í…?‚B' R-¿¿¿G$ààà!!!��€ðæŒTŸ,`���tRNS�@æØf���íIDATx^µ‘éj!íÛsöxÿ‡M«$$½‹äGò B…`ú—Õg}y=.˜Y= ö°Ç±€x(䜱cïù-U‚<×Ñ=zå0€î¥ä5”4&WX·PK4ˆü× Œ«ÏÙ�7J𪛓z/Ý.lÎ-P‚€†u,NR ƒ�W3f¾ûÇ,.ôŸ‚HQ˜ÆJ ,“+Áºƒˆ™m!rÚw”À“øÐù*ܼUc cGt¾ ò`4”)V3‰¯7f™ÃŠU$Ec "»à<§8æöuâ "çO¡µ·oÇ¿1Ò_îr­ …����IEND®B`‚IMAGE 372 ./arch/player/class/Religious/cleric.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4VaaaÁq8¡¡¡ï§_�2�d3Í…?@@@¿¿¿ R-.‹W‚B'!!!��€ðæŒàààG$Ëõ£���tRNS�@æØf���éIDATxÚ½Ùª„0Ó{gÑYþÿc§aà¶âÛ£H¤ŠB˿̟þ¼åžŒ³ "~'ÈC·¢›Âƒ:õ>®1ò˜ë¾àЀak\0sæ0V…_í$�rCÞkmÜ8nÌAcØ+F= ĈK¹,t!}o° jˆ$°w¡$�Ll¶Çe¦.= ³®Ó˜B­‰—!yýASù+ UXœ'gͼhŒ‚¯Â«©"ž„NBÁ‚æ/˜N´BN®£¤ 5’ŵ»Ç³äÙf¦kf+á{ÚÊ·-3·ïùÊ0³ôòË}�   ´s¦&����IEND®B`‚IMAGE 345 ./arch/player/class/Religious/cleric.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE4VÁq8 R-¡¡¡ï§_@@@G$.‹WaaaÍ…?�d�ÿÿ�d3ààà‚B'�2�ðæŒ¿¿¿��€��¼O JÐ���tRNS�@æØf���ÈIDATx^ÅÎIRC1 EQ«u÷»ö¿V$\T ŽÂˆâMï)ÙéoÆo/r}¾}Ræ^àÝÅÔ‹L¢J�¿0ƒBÓµ~òrzø!ˆô¤º®Þ³÷yC0Ÿ¥R1Ð-,‚À;÷#çEXFLÞ͘HË�ÉØq °¬ ùä�¶¾}ö瀿@Ð mÛFÒ"PžDñ’ª ïPÝQâ®» ›´ §]U¶6@4µn »¿ã ÿ^õ”í@˜ Xˆ/ýÃ>�Vr ¨ÛúqV����IEND®B`‚IMAGE 342 ./arch/player/class/Religious/cleric.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE4VÁq8¡¡¡ï§_@@@.‹Wÿÿ�Í…?�d�d3aaa¿¿¿‚B'�2�G$ R-àààðæŒ��€��¼] ð…���tRNS�@æØf���ÅIDATx^ÅÎIRÅ0 EQµnÓ~ØÿZ‘e¨Ø ÌxÓ{J6üu¢Ï]å§àį(õþ†üº ê@ñ½‰Û‰ï.ŠˆÃØ×ÞóÊ“ °âÕ«Œhb�× ”ª´m9†á d[ÕJj ¸ÄÖé\r00û&¶nf™�h�¾ú¹˜N>G‹X¨M–Í€Ó£õd} Žæ„bŒ$|@±ÿÀÖ]P„žú^ ˆeïe?’ðÀÙžRÖ}PÊØGðØ¬»ù7Ðÿ±ýÖ…`c”����IEND®B`‚IMAGE 313 ./arch/armour/cloak/cloak.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��� � �����!�$�(!�,$�/'�K>�XI�eSq]~hŠr—}¤‡°’½œʧ¼&µµ���tRNS�@æØf���¢IDAT8˽“Áà C1T-þÿ­Ðªy`KWBoõ)Ržb‡ˆnŸRJ)M€$±ø�€˜�U«Ÿ¡þ„r ”R€ì�™$à�øf cA��áLÈmÿ%+ñ+ÇÇ’{¬­ö¥É±TµiHêDÖÑ„Nk/í?$^4dš!KJW hï2v®W•õ8Y­< aC¾OyGkŽêþæ»}Aö°ü����IEND®B`‚IMAGE 282 ./arch/armour/cloak/cloak_black.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���---���Ι�ÿ™0™e�###=== ��X¾Ä���tRNS�@æØf���§IDATxÚ­ÓÁ„ EQ ¯}ÿÿÁCµ‰ Üx†¤'…Ç×ÑÛOoI¨úó�næ$‚U•WX�ÕzJk˜­6T‘&f±"!ûÇV@…taf  0ÈO¸@¼! @o|¾µj�³±asÃ0oWø|Až+ûÑ’H�È�ˆ¹ƒ,ØF�  é¼ Šƒ#@¯”A”߈Èpò×Åáîøª?ï¦ i@¯����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_lblue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�e™ÿ™Îÿ0eÎ ��]u·^���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_lgrey.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�™™™ºººuuu ��°XÞè���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_purple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�™�ÎÎeÿe�™ ��ƒÆ³���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�ª��ÿeeu�� ��7k8«���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 246 ./arch/armour/cloak/cloak_trans.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ªªª00����Ι�ÿ™0™e� ��/Ý–���tRNS�@æØf���ŒIDATxÚµÐÑ Ã0…a·&ùßÿ×Ü…L½jD?HˆÝ”n- f‡¢©Þ…�Å  2×z[ æšV´žp–H€9PAÀu¶ðáÀtÔ7À@ÿ° oÕ#ˆ´€hö'Xª-X #æªclbœÁñ7lµƒä/‰A±»òB)aü[¸j����IEND®B`‚IMAGE 275 ./arch/armour/cloak/cloak_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���00����Ι�ÿ™0™e�ÎÎÎÞÞÞªªª ��NÛÁ_���tRNS�@æØf���£IDATxÚ­ÏAà DÑ´{æþ.N,!aL7ù‹(Ò<Ar½½Ól^IÆüõTyØI‚0ãÀ &½Têˆt∠D„TÀ„t �vh€´ãÅ7ªF;àû�6¸;�ê&Ð øw…ïg äÝè¯I$ šjì²`_ÀhÝ&ð2h⇽ÖÑF ü "'È{ÆËÓõV?gO &íÎŒ����IEND®B`‚IMAGE 258 ./arch/indoor/clock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ G$ðæŒ R-���ÿ×�d3‚B'r\uÊ���tRNS�@æØf���•IDATxÚŽQà ÅZˆ÷?ñ–Q±GViï[‡ŽØ‘ ºÏ: n=f¶5>¼‚±ü.ðP IA„¥ \ *ähZP!/ðT`ˆ} ´!€ÅØ Ø+¿Ç�7WZ©hÀ…É+Îÿ°K¨L®Âøc"Ø=2 âý,¥Ì *PRAø^8s!ø+ãÏÂø_PîcÙ"¼Ëb �Δ­����IEND®B`‚IMAGE 259 ./arch/indoor/clock.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ G$ðæŒ R-���ÿ×�d3‚B'r\uÊ���tRNS�@æØf���–IDATxÚ•ŽQB! }ÐXîb[ƒ:ªC†/vgᦧà…GÎ ìƒ3ÛÁ}(hàw p)ˆPȵ B]�\ *ÔhAÀ} ð)á°ˆi¬ü)$FŒ|/ wth …Éó °“ïþ±ì3Tb…Àûvµ6_P!y-§@~,¼ùüX Oá"aÙ"<�Ëô @á µ����IEND®B`‚IMAGE 321 ./arch/indoor/clock_ag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��+ AY(r4Ú¥ ÿ×�ðæŒ���# ÒÇw���tRNS�@æØf���ÑIDATxÚ}QÃ0C‡¡+¹ÿ…‡T]êe¨•ÞÃŽxéd‚ »›[xn0ȽñÓè%x �Ròàe”£XaIPþ?!³UBÝ!R9öwH§ w¸¹£a¹ƒ hLÈš‡˜B'5©Úi,¼Q@‚›ÃÂ3  !ç™g 09?„€b ÒÐÐ…:ž\…¸Þȭȸ'E�OPû¡ò3«øB£À?Ècò W¹ÇÕ ÂX;ÞU@.¾¨0bm4TË,ÂfÒ Ä¤a?����IEND®B`‚IMAGE 323 ./arch/indoor/clock_ag.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��+ AY(r4Ú¥ ÿ×�ðæŒ���# ÒÇw���tRNS�@æØf���ÓIDATxÚ}ƒ0 ©SFúÿ/N@¬¸,š4¤»ØU6¯Qpa³f­›¿`[}iG V‚€”üM0Ôþ2ÁQ ,ékaNPþ?Á}TBÝ‚ðÞïàFAïpsÃÀt0˜à5Áq Aj|!ŒÓ˜øÈ7ÓÂ3`¤ÐáÇáGü?Bqþ OdNABp0!ðÉUè×Ù ÁïqÀÔþ‹Pùmo­Tà ~©à¹OÁ;¹ %dƒ \KþɨMüP¡ (ìY Â4“ðd ÀíØÍ����IEND®B`‚IMAGE 259 ./arch/indoor/clock_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��O nŽ'²1Ú¥ ÿ×�ðæŒ��� Vªa���tRNS�@æØf���–IDATxÚ•ŽAà ‹qŠþÿâ@EÒ¡²ÃTGvgÍKNÁ…ë˜W$Ø*çÛ,PÐÀs›L "¤r-¨�Ó‚ y»î¸6…N8Ä1•„ÑG h ÂÍÈÿàCè˜<øÇDðï èK¾¥^”T G.¿3¾æÆr–- ¿ 0%'Þ����IEND®B`‚IMAGE 259 ./arch/indoor/clock_cw.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��O nŽ'²1Ú¥ ÿ×�ðæŒ��� Vªa���tRNS�@æØf���–IDATxÚ•ŽQB! údïb[—§i–jØðÅL:p n<b6Pà>8³­á¼¯ ü.àO] "¤‚r-¨P€®ê´  à ™÷%8á°ˆidþÃG¾0'&4ÂâqÈXŽÉ÷ÿXö*¾Bà}»Z[/¨¼ÈC ?>üI~,‡p‘‹–„ù ,ï¯ô|����IEND®B`‚IMAGE 237 ./arch/indoor/clock_grand.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��G$ðæŒ R-���ÿ×�d3‚B'Ú¥ G~«���tRNS�@æØf���€IDATxÚ¥ÑQ… DQ©÷U÷¿bÓÔ¤>óé=QˆÇgüƨï|à›�ßà(�K€ò/œ5ºîðv€ê 0ÃÐ8T7¢¯�<@ô�FuyÆ1+.‚¾Ï�Àäó»µVG@›écpÏAö_õe'ˆ/dЭUu îÒ´cé����IEND®B`‚IMAGE 236 ./arch/indoor/clock_grand.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��G$d3‚B' R-Ú¥ ÿ×�ðæŒ���iSs���tRNS�@æØf���IDATxÚ¥ÑK€ EQ©ŸÞý¯Ø45V, Þ{b n¿ñÝ6{ŒQ_È"@²@ �J�é_$pÄèºÀÓ¢g€*Jþ€@tÅz ¬P¢gàwƒôÄ"èû �L€Ÿ·³µ¸b´9ðnÀ{¼ýò^Þ œÞèÖâÛ ©:`Íó����IEND®B`‚IMAGE 259 ./arch/misc/Container/close_attache.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ���x^.ÌBÀøún7<¹���tRNS�@æØf���¢IDATxÚ½ÐÑ …0 Ð&ÝÿóMD±ë}4J#î0‡ñYì¡:$¡Q5ÝŠÆ 7°ÅÐ`;23$ô Â*¿uª³€nVb¢aáz‚4•Ô"!…ážò>$¼š÷„*�DüíCyx…BKÀÊ�§x=£Ÿ¡€›l€;k7NÀâ*ƒã t2ƒ tÅ8ŒóÔüEQ ÐÍ����IEND®B`‚IMAGE 221 ./arch/misc/Container/close_bag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿÿ�ÿ×�Ú¥ Í…?Áq8 R-C ‚B'���·{±V���tRNS�@æØf���mIDATxÚíAÂ0 kÏÿ?Œ$ðv+UàÄì!‘v5o†DÛý¶^ï÷'°~õ%Ù±^s4PÊè %>ÈÊNù…L^dNÀ¬Ü1{pCtÎ ¿á›†)¹0˜ÊÇï Œ_ò�a® (_Ä¥…����IEND®B`‚IMAGE 222 ./arch/misc/Container/close_dbox.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿÍ…?€?  R-H%���±'ûÄ���tRNS�@æØf���wIDATxÚÝQ À Cµ¦¹ÿ‘W2› û÷åGL mÚ]°’}€ñ‡r‡'„¿¡~"²IýF"ãü;Aoa»5€<dkM·k‚_Q½Ÿz @›Ì€½h€ëŸv€Y%éê—.A¥”i™R7MÔ„:â/1œ«Æ����IEND®B`‚IMAGE 262 ./arch/misc/Container/close_desk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿÿÿ¨ÅÅB!¥R)„B!���sÇO���tRNS�@æØf���œIDATxÚ­“Ë… C•aìÿÿñLn ,¬É@åÐnô:“šý©y%��^ï3÷€Ö g€Œ Æ `Ÿ ó€@úبžo�ö�0fÅ:B,-W¬Õ_HWv÷¬E˜z³RJÅÈä(þ¾#𞸠P â_0ü�TbçG½T=jÑ˲f Šž5Š×édôß‚µ����IEND®B`‚IMAGE 313 ./arch/misc/Container/close_desk_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���ÿÿÿ¨Åŵ:Ž1µ6H ’)’yÿÿÿ)±æw��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò���¼IDATxÚ‘ Ä smu]ÿÿà ѪEÇciºCä(ò”¹¦ aE€æ ‚§ä®‘ü^¨aÒŸD žŒ ý‚{Ö Ü?G‚[hÝ<zпà~Ýp$d<ãý ›†S¡|…ú4x>WÌéŠ*¬Ù5 ó¨ ˆ!ç"pq]—EÃ]�Œ0KàÞðû]Á^9kBQù h›,Zn«Õ^„O–§ ,zVˆ7ZaeÌ`Ê3ôZ†­ðHi€Y����IEND®B`‚IMAGE 265 ./arch/misc/Container/close_dresser.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿ\+r9B!¥R)„B!ÿÿÿ¤éžp��� tRNSÿÿÿÿÿÿÿÿ�SOx���”IDATxÚ­’AÃ0W.PþÿâÔ]!—C' qœÑnþp‚¼qBA;(` Ø>,¦ÆŠú„™�ab°(„kÄ&ya�Ä. ÁAY‘BÇ\ˆØlùsEOÖ�ß�©S¬Š¾Ï_+…ϬEAÐ’‚*Ž/°OwŠZÃ?ZôÒÀ—ôŠØ†· …fð÷ø9����IEND®B`‚IMAGE 215 ./arch/misc/Container/close_dresser2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ= ¥R)„B!���Û8* ���tRNS�@æØf���vIDATxÚµ’Q À CW“ûŸyBìZWqìáOñÑšâµ s&�Û t¢`½ƒw¨„ Ax¡…È…N;4Eð+!ŽÈßà©R ¾Ä<X57;ˆ¿˜…ÎËŸ5`¼WLÓ}*XÚ@¬_ Ö $-³²æ”“*;év¹����IEND®B`‚IMAGE 256 ./arch/misc/Container/close_dresser2_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿµ:Ž1x#µ6’y���Ñtg���tRNS�@æØf���–IDATxÚ•’ Ã0D7£ñÿÿx&[¼FÜ#Â=®=諉V¸@ 刞| CY¦ø1na,Á€ã‚’®| äÆW˜ÌtÎÕÀBB[øA¡ÉŒNƒœ”/A½BÖ€WßϬWÌ|ŦZQÏLWÈ Úox’¯œ¬!¡�ÂÛ°g�¿$„˜o÷ä䕂ܧ¤W ñÚã}n }ÀÊ)����IEND®B`‚IMAGE 332 ./arch/misc/Container/close_dresser_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���ÿÿÿ¡§¸ÏÖçµ:Ž1xrµ6jRMH ’)’y ÿÿÿQ���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�Ôܘ¡���¿IDATxÚ‘à E×2ëd½ÿq÷»L2†´ò 5âú<oüBÉp(mÎMÐÖT-5íIC�Ê¿´E•‚¶)ŒH\EuyÖeIP¶ì½ö`§`=ï°$\ÛOcDòë‚ßBÜ€%Æ×ˆ9CÈ!§ ’À2ä\.T×ßpÁêSpu!!„JÅ8Î Øë]àxîûÎwÛ dÌÝ6ø‹„P 1‚¿™œÒ. 3†O †åá×éjA����IEND®B`‚IMAGE 206 ./arch/misc/Container/close_keys.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���¿¿¿£Ë4ð���tRNS�@æØf���pIDATxÚÕŽA€0ÙáÿV£h6ÔöäA-df[âg•™0å�¼óƒÍ¸! q² >¯…eâkA¤g*n!ÐÕEJ!ÉîMÂÀ€Vº¢¬Ë�ç%Üa¹!êòóá˜ô ÛCVĹBÆ_ýª6a_)Y@����IEND®B`‚IMAGE 297 ./arch/misc/Container/close_pouc.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���ÿÿÿÿÿ-ÿÆ.Í…?ï§_Áq8 R-G$‚B'd3!!!ÿÿÿæ§´��� tRNSÿÿÿÿÿÿÿÿÿÿÿÿ�=è"†���¤IDATxÚÝÒ±1 P_lâòÿßK®Á Î觨ª‚Ç—ü$ÀNvMŠ$Ф¸§HDYÊ¢€ìáÜ¢0<HŽêÄ;@Zà¡1éŠz0ÇÇáfVêÒ8æðõ‘HŠÌA [9x´@6ö¬ÝË;·î« ˜–"âÖ‚uúÕ_�¤ªlÀk#¼û”X÷ŒHàÃE-�_oòÁþ.)•‘Ü?����IEND®B`‚IMAGE 241 ./arch/misc/Container/close_present_box_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿÿ��ÈÓÓÓ°°°ÿÿÿ›ÌR���tRNSÿÿÿÿÿÿÿ�Þƒ½Y���€IDATxÚ½Óá € àí.õý߸R7£E÷C„û˜ì‡R‚ü dÉ%[ ANˆÆÀ÷ˆÞ9A6Iè¶9à-à-�²Â-@�r€`© …úu�œ@´�Yoµ¿¼ó�%z?Ö´ ˜¾?ð ¬ùðo›>¯����IEND®B`‚IMAGE 230 ./arch/misc/Container/close_present_box_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿº�À“�˜q�uöÿ�ßç����ºÃ">���tRNS�@æØf���|IDATxÚÍÏAà DQ\fðýoœ: ›+jý 6ó$‹òOéZ�5Ô<ÐÇ UTrwTö@ 4Wõ@¾à3wü ¸ 2@–=@ö‹€ 3�"�Ë z$ ½ À€J�)ÖØWÀ;0íÂí–öDàöqàX+ïu�¨›Í����IEND®B`‚IMAGE 239 ./arch/misc/Container/close_present_box_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿ1�¿*�£�_ÿ��Ù��ÿÿÿ¹× Æ���tRNSÿÿÿÿÿÿÿ�Þƒ½Y���~IDATxÚ½ÓA Ã0 DÑAõŒîã‚¥„ÓÒ¿0=^ÞôO€{ŒRØ ÀvF°w€äFf†ÏÚø-Ð+ ØÉ› ý+°쀴²ÊÌ$³ ð°I)nðg@=u‰Ë<ž™A¤yß÷~ø7©kæÕ©����IEND®B`‚IMAGE 235 ./arch/misc/Container/close_present_box_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿ�ÿð�ÙÌ�xÁÁÁÿÿÿÏHî4���tRNSÿÿÿÿÿÿ�KF���~IDATxÚ½ÓA Ã0 DÑÕ£û9D†`)!´ô/ŒA†7ýà^£T�¶F°]€‘�ì๑™á³v~ ô (v@òfCÿŠ�l�; ­€¬€ò�3‰Äì<lFRŠüPO`]`â2gfGiÁ÷À½þÍSÎÅë����IEND®B`‚IMAGE 224 ./arch/misc/Container/close_present_box_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿ�Ù�ÿ��Ù�������O8”Û���tRNS�@æØf���yIDATxÚÍÒA À DÑ̤æþG®Z)&EÚE?â&EPþ”BØ6°ä€é.°¼Ü|¬�_ò@38ún€·€S�bH™¬^ÑÂ`È�€RÁ „`z€ÔR›€O ?@ 7ÏyP·ܼ]°Æä»N(ý ÔŠ€˜����IEND®B`‚IMAGE 224 ./arch/misc/Container/close_present_box_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ1�¿#�ˆÃ�¦� a����ò¿ÎB���tRNS�@æØf���yIDATxÚÍÒA À DÑ̤æþG®Z)&EÚE?â&EPþ”BØ6°ä€é.°¼Ü|¬�_ò@38ún€·€S�bH™¬^ÑÂ`È�€RÁ „`z€ÔR›€O ?@ 7ÏyP·ܼ]°Æä»N(ý ÔŠ€˜����IEND®B`‚IMAGE 363 ./arch/misc/Container/close_quiv.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���ÿÿÿ�2�Dz™Í…?ï§_Áq8sbW R-‚B'Y1 6/-ÿÿÿåë¼Ã��� tRNSÿÿÿÿÿÿÿÿÿÿÿÿ�=è"†���æIDATxÚ}Qƒ0 C­ÒvIáþçδʆ/Þs]ë-àûÆÏ?™¿6>ÇY<<m@žpc˸óS¶k¢Ý§àøà'eÿÙÃ;oCé !ypïŽ °Ž3\óXP¡yñXWè‹Ü¸ B»qq3Àzñ1Dˆý›¯‡ï~Üɧ«À¾ ¬èß<Üá£x Ù·Üù.D¿w,¬àíÚ…ÂSðèó|â|Ìlr¡r’+¸ äsWÁÉg_ÉE�@Þs_á™úÉá"$W¡Œä"”ä*0`2_F›!]u�����IEND®B`‚IMAGE 234 ./arch/misc/Container/close_rsack.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿF�e+Òi R-���lx”���tRNS�@æØf���†IDATxÚÕ’AÄ —Äþÿ—×IéñjŠ�Í �êïkáÄòLT<ï`ex+µã¸¨¢…/�"AÃ5Av÷\M+{À¢›€+í#ìÆ”¬‡G”ð.D(ç—‡åƒçVoç³ð*ðIv° ¸˜Žûý#@Ÿ¨Lólj`°5[Eø‹ùÏ7šÑf¤����IEND®B`‚IMAGE 381 ./arch/misc/Container/close_sack.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���ÿÿÿÍ…?ï§_Áq8 R-G$‚B'd3>��ÿÿÿ:óÁo��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���üIDATxÚ¥“Aà W¶1$ýÿ»˜ZÄåÐC—S˜aQ"¯g°R¶ µfs 0ûð¾¤*71¡AÜÃÁ—�Ɇ>C£^ÑÌ’‡1:ª€çù1×!L£o#*ŠPÏWÜA8è!+œ;Nɽ;üº¯ÛÃZk p`òâ<…!²\Á·�xW„<žÂ|wL˜CšB÷Ì2xÉâíd è¡ØB 2µ¡Õ>âc‹H6“hWÕŒ:rˆ†à­‘šá¢Aš,.E`°š¨Z±sª1šò¼š%¯5+tökòóÇÑfÞ_…â€;ò%œQ‘-üÈÿ™đÎÜÒ@����IEND®B`‚IMAGE 840 ./arch/misc/Container/close_sarcophagus.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ���YYYjjjiii\\\lllkkkmmm9AGhhhfffcccbbb___]]]rrr[[[ZZZqqqXXX333dddsssCCC}}}oootttpppaaa```uuu^^^NfvBKQ‰‰‰CKQ|||eeeVVVUUUPPPJJJDDDnnnyyyTTT{{{QQQ777xxxgggSSSFFFwwwKKKvvvWp€DNT?KT???zzzWWW---###O\cWo€RRRˆˆˆ‚‚‚NNNMMMLLL>JRGGG~~~/8>GS[BBB:BHKTZ@GL000HT]+++DU`/7=î‘$ð���tRNS�@æØf��åIDATx^u‘ÕŽA ÷¸i˜á23.3†™ùÿ?$“HMk7õÚ¥’ÝÞ)ÆŽ D¾Þ>©‚#èÏ›¶í®ïâHÿ2Ö7É:¶'ì ˜àf¯ Õ°,»ÓãF]­$ÅØ»Ü;OëõÕ˜Œv~ux–è½E!Œª Ä.—²‹Å0ð3šyqnRª 'ï²cDZ>_8 ü˜f%¦âÂ90Ïèz¾˜3UÿtÕ>S�Ãé”"/Ð7Í_©,…CÆÙ ó!ŽÚ4„vþG0+Â<ê´òš¸yêMæ'­ô/¾]Tgø¾•±ßhͱÏ®Öxb¾×¶øÙ]…RIŽ™ÓJÖ9Ϊ3 sÀÈVÇ:Â¢ðYÿÊË}>S±Á]¯çe“]ôGfJÚ1Æ<x¯NE‹³Ð"ô¦~-<[3ÆŒ°ad$gz �ʰ¸J¶Âo4Ç›Qªt»¯â w©éÌzx4Ò ØgÍî©p¢—bZÇrË8>s<ׇD»0?•…ÈV%ŠÂˆ<”ÇÖ„×½WV'yúÊ@à¹K¶Ë„ -U¡iM<H"RÑ}a û‚¬ß’¢å2’µš*G¨�U5ªÑ²¾¬«‡„["ª-¥ÐER’¤¯D ÿ›ð7‘ú0Á'êÕ¥����IEND®B`‚IMAGE 281 ./arch/misc/Container/close_schest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���ÿÿÿÿÿ�ÿ×�Ú¥ wwwfffVVVEEEÿÿÿZÉâÞ��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò���œIDATxÚ½ÓIÄ DQ”f¨âþ¡ÁÛd™_KžP$”ÀCuÔ@ò€93€Àb@ ÜØAíâЇ-PÉwÐÈfØ@¶@<À„”¬Ç ˆ Fì�&@t¨Tß¾¡x­ÀO�Ó,Æx%É!ü–óä%ú¹¼Å fWŒë0©,ÈÞ¨þ “ö\€Ÿ€zê;pNŒq­”6����IEND®B`‚IMAGE 320 ./arch/misc/Container/close_wizdesk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿÿÆ.B!¥R)„B!y��ïïïÞÞÞ½½½œœœ���Ó—J���tRNS�@æØf���ÊIDATxÚ­‘Qƒ0 CY“Rßÿ¾ 2K¤Q{RQ+¿:ªX–+�ø:Ì'A|]dž|æÌû0B诮¢ª"±¸ó¬»m}ûª(Aâ¶ùð™€Daæn~” • ¾c³4"ìNæ‚øæ¸ÁžïÂO„Tc ?5¢„ ž Y[Sþ<â†ûþ«YA#X(4êÙÓ AkJá“WÕ¦)ð2O¨T…Ê òÉYø0*€=ÌÒ¼š  æ@~ „ùEçŠ.ò{×����IEND®B`‚IMAGE 252 ./arch/misc/Container/closechest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ G$ R-���ÿÿ�ÿ×�d3‚B'+ù[���tRNS�@æØf���IDATxÚÍÓA ! DQSVÞÿÄÍIÔDdvó³ô!ŠXx¨hdÍj4�ö§À@`‹mâ‚ËAÉ (kr, Ç1@|A+h}* À6Ä ÒˆÂüºCËšÁ!¿„&"Oµ2@~æõü%ƺ½Å ´GdÚÀŸr+‚ž ý_äÝ€œSåzóA kà 6(����IEND®B`‚IMAGE 201 ./arch/misc/Container/closemail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÁq8 R-G$‚B'µµµaaa@@@���7Ó~Á���tRNS�@æØf���YIDATxÚí“A€ QiaÿÿaõDèn$D/Îu&m/M³�X „|E `ô¾ (ð�ºóž¼›™;ÍßßÖ‚+Q$޼o¤´ÿ¼5€A&ϯò'Ç“Ùèšø����IEND®B`‚IMAGE 291 ./arch/ground/sky/cloud_1_1.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���ÕIDATX…íÒ­ A†á×_Á Å¿""v±{Þ€Áäx êEhU°Ù¬61nÜ`›a7aÙ¤w§œ¯Ìp˜™ó˜ û0Ä`²&› @�€� �� Ÿæc•" kÐTÐPÐRÐ,A]ÿÏ×/ˆV×O ЯÀ´ ã6X¹/‡ P³ÞËZ€Nƒhê¤I h)Ø>OõKÂYO¿¹`PÕo®ðÀíÕ0àx‡ÃÍ æX;†�1beÃÒŽöÄÙ809ÁùñûÝzB'f˜����IEND®B`‚IMAGE 482 ./arch/ground/sky/cloud_1_2.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��”IDATX…í׿KaÀñ¯¦…–HŠz…!ѤÈ!(0*"Û#"h ‚ÆÆhîhj¢¡MÚ¢%ªƒæ¨,tI«Á$%̆#¤2;ë^ߥn¹çážÏÝ{ï/±R Û –û`¢M_¾ÉhÀ{ëo…ù^SÀÝ$P.�ÝN{`Äa/8¬å¸Ydq€Ê×ãÊÇâ�Ñ€h�ÖB Ø*Ç…¶Â騞#¬ ƒ?{au@_®á�ŸMûô &I€ÙNpU÷Âzú] Ç©]Ò�µ¾½á€I 0€ýÓšðµàPW@îE2 ž’ Ø¿Õ6 Ò�ɨ‰�€½„d@ìâI‰€×¬ƒz/ �/ÂÂÜ<I�< z�ÛP¬24„L@Û!m ÁTû×X]¦â‡lžWŽýé\`1ƒß-Vm)6› ý wyÈ~𖝲°s s]�B.X ¨Íß<!_ÔŠžeà4'iXWµƒê´¿œWó?à°ÂaœµÃÕ ì&`&�ÃíÞÍâZ¶+ªp����IEND®B`‚IMAGE 290 ./arch/ground/sky/cloud_1_3.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���ÔIDATX…íÔÁ AÀñÿl ɶµ.⬤œ9òÀ»¹8¹KrðŠÃ’£EÙÍ:lG»èSæ™ÓÌ÷›9ŒbÄlÒƒf9î®GGv¨ÀHrÀh 3'9 Ÿ ‡¯ ’¼@T߆a :¨„g¼ˆ²s0¨BÛ„–Þð•f·�Ï EhÀÊ‚• WCÁÙ׃ ‹=¬_�ÄK”Ò€AUЭ „~ ¸Þ„'O0Ý æŽ0 àß¿b Ð� Ð� ЀŸ�Üò0‹üÓYž����IEND®B`‚IMAGE 359 ./arch/ground/sky/cloud_2_1.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��IDATX…í–?KBQ‡Ÿséá–‘.:D$´4DMáèèÞú5„ÖÀÐMÕ‚ âb£ H‚QB !^éÞ†£CrK½ï³Îáp~ïá¼ŵmã#†Ÿá" " " "°Kn6)`?É$£p°0²À´ôØ7¡Üâ TßáÛå7Gýõ#RÀÙd°¹êî@€OJ¯pÛ‚Ç· làâN"kA®¦¥œ0Nw`wý÷âaîSó‡¤ãPHéësB5m]Þ*]xêA6áÀüáÓœ×à²1CÀ F¤ þ¡ç± ÇÏpÙ€ü1¬ŒS•ò¸®špó í/Ÿ&t>wÂíµhÅ" ?áP1Å‚pŽ����IEND®B`‚IMAGE 268 ./arch/ground/sky/cloud_2_2.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���¾IDATX…íÒ1QÆñÿz²Y‰^"µÎ!tã¢Ðh$JWp›(AT¢A,²ë)V²Ù Ì*æUß¼WÌo^ÆÙ[kÉðä²lþ€ ‚õ ®¯l�Žî€ �(@ P€$›˜ìÒwy‰Æã- Wp|€g ]÷7ºÈtkP/ÅùÁh“¼‰�Œý&ݸ,Á? � Z•8ßCèÌ`z^ÂF9ÉïôæÂ�Ϥë ,.éÚ_oÁ+Õ=‰5Ù����IEND®B`‚IMAGE 462 ./arch/ground/sky/cloud_2_3.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��€IDATX…í–½/Ca‡Ÿ{s‰CÓ¡aiÒD¥±c¨€‰AìVƒ&‰A7ƒÑQ"Ä"5K$‚6U-ªñ1H[mUõã*AÚRï{s»Üßø~œçNNŽÓuòVï<åž«‘3ð°p\ Pt}Èsn°wNä`éöõïµp‚)ðØ`Òe8S_Ö#ð^iüN+ë0Û/¯èÏA0 çIð_C²ð÷?mÄó9øZV.àµôÿ¿êL(r|Æz!/�P½=’tÀÕ ÃAM•�w ƒ‡®¶ ´ V2L@ìdÃ~™5æÞ·P TÝ;AxV^àè±¹±[W`#*/°)QCõÇà2-^`ù ™"L@d1ÙŠ‚/$‡Ï&|.T%®š”(ë°ƒÅ98€‚ÿk'ìÔ` S.´ÕïÜÂjn hÞïqÛ`ÔQ]&³Åê†JU—#ÓPÀ¬6 -KÀ°Dó¥y°âª����IEND®B`‚IMAGE 422 ./arch/ground/sky/cloud_3_1.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��XIDATX…í—½KÃ@Æ©M­MýHñQ Á¯E'‡º¸©›tutsð¯ðßP—‚.º(®‚ƒ“S¡µ ÑbÔjÒžClZ±1qÈ·<wðüŽãÞ{O"+>*ägx���@��ü €°“—ayú¢ ·A$·¯px ZÙ]�é{?0¬ÀZ 2c 8 UœÞÁÑ <”Á–gVA{‡\©€é줡Sþýn®t8.ZãBƒŸt:Y!&UØ]€®Âëuùgn¼.—a;ín8À„ ‹°:Ú`% =wÿ ÃÖlN5�È4!tCëã0“pž“ò›®8W‚¥0ªµ¾g…(Õ óvßÓJØõ Ãg�Ýð@7`¯`÷£¿Ð~f{!©À` ÞLxúðè_@m· S½jŽÀéŒÜÐân(Wàü¼ü°¢9Z9^ò©(����IEND®B`‚IMAGE 188 ./arch/ground/sky/cloud_3_2.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���nIDATX…c¼÷ÿÿ†Liù¨F0ê€QŒ:`Ô£ ªοe`xñ}�sœaþ­t€™(?éú©Õ$ûô›áËo)®r�¹`øä‚QŒ:`ÔC×ï°N½X��l¥ݲo����IEND®B`‚IMAGE 396 ./arch/ground/sky/cloud_3_3.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��>IDATX…íÕ½J›Qà'Q¢Á(øU«n‚ÄMˆ“vqvz ÅM ^‚‹“7à%tSp±ƒ:A é¤(~` ik^‡wQÔXÑ7Ç!?8Óùzçð?©/[Q4?"XÒÇá6‡táœÒ߀€JÄR! �–wÙ< ¸‰˜ûÁõM �ü*±°c‚�`¥ÈÌ*?/üWI²=z桟r¤P,±}ÆhÓä»èÍ& x.ý-ä;cL¾“ö¦î/Â`+Ãí1¤5C.C[†ñšžžÛøÚÍ!Âîï¸ÝÍX7“«ÏMWï~]þ§Â& Ø¿ 8¹¦üLqKaq' �–÷¨öå'¨D|ÝàüO �\1õõ£@�8,3»Æ·ÍûóM*áKó!Ëç>&zî¦fWPÔu@ðn·%wYK´Í����IEND®B`‚IMAGE 193 ./arch/ground/sky/cloud_4_1.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���sIDATX…íס €0„á¿ Šš9HØŠª˜€L�UX–ð(‚oÍÝ÷‰3çÍÈŸ³\�@�@�@��ß7Pù�.šÙuÃr@XaÚáNxW]´ï;ÞNæ”"¿ ´„º: à§ZB4R����IEND®B`‚IMAGE 666 ./arch/ground/sky/cloud_4_2.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��LIDATX…Å—1hQ€¿»&mš¶V‚µµµX Z5ƒ(® u•ª ¸tAqÓÑÅÁÑAAè 8T:XDiÀŠh1RM5M›¤×˜¦É9ü“ô%^“ËåƒÇ;Þ{Ü}÷ÞÿÞý§…LÓDA®�7ÞÃ눪×>ôjnŸ‚‰ý-�Ð5xpv{Z$�ЮÃäXó´j1PIüD ˆ®Kùa@( ŸW ¹á€@-Âk0Ÿ€O ©¿¬@&o³@Ä€{8æ¿Oj_‡zlÞ„ïIx†ç!Hål0#/Ë᪀ ƒ^ê‚!oùu'9X4àÉ7˜‹«ïë²òp� 鯫ÿÚÒ9XHJ©—ÿî‚R:ÚêP5,Ï�@º$ÚÇzÁÓÀ4åä ¦dý›&0à… £pnXÖ¹’DÞDåøž]²&c9MèÚ†îrn}€·?m¨xº�ç«ÏFSŠ|ü —g`³°µo[» ^NôÁäAuŸ#�×ÃEà:&àuÁÕC-�Ø×Ýb>Ebã¨ÀÎö­mŽlÃ"Á¼[’/ê¯ ÌÄPáè4$Ьi²,ð"w’„؉¥¯ÁÄ´dÆnN÷Ãø0œ„ÞŠÈΛ’?ªö|]Ñu¸4-u%.:e5M~dV³’¬N•„¥a\`.S‹R6_µJÎÀ£“6 ”’ÈJªý,±Lí±Gá¶v¸m(’7%õºì§»<pó(Œï…n…HÃQ,×f!°\{œK‡;~¸r ¼ý/(èŸV³wØ����IEND®B`‚IMAGE 515 ./arch/ground/sky/cloud_4_3.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp��µIDATX…í–½/CQ†Ÿ{[W ¤©ÍÈf³Jü þ ‰A"$F›ÄÖÄÇÀDÂÆ@ÒÅ@ZQ¡iiªƒ¯ôc¸h(­{áh%·½Xú.÷ææwÎûÜóñž£d„¸Ô» ³§°–¶®ÓT ÁHoí›êÖÀ¯Âì v[וM‹ÂúŸ¿­x1Umd`椹ھNï÷hª*›Í×fŠ0qä!@áVSöÛùÝëo°sKpÿâ1€�”ÏwCH3½,Ÿ×ϰ{ÙÚ‚r"K€ªù» I%Ü™ýèagÄu˜ŒAêñŸ��JŒîABÿ'�kãò¢y8ÌC¬�ÅÊÔËrzóÉA4'!ÿ  ^é'XLÂö5˜ zÿ€ªæÎ`ùºÆUEóÐáƒ`;4èÒ@È•dÔFrûp ` ˜Š}M?Ÿªg‚c€ðÝ÷è5„ý r|-&¶ô�`%%·²5O˜>†ð­7æ�~SÈ…c%ý ö³0wŽ\+)Á-!†{` �šO^5ÚTH<Hã¸Þ8P°ù{AÔŒ<½¶�Z�-€€}�üg´V±Td����IEND®B`‚IMAGE 126 ./arch/ground/sky/cloud_5_1.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���0IDATX…íÎ1� À°‚#¨2ö¤šÓ›i±»9��������������¨úÓIç›_gì����IEND®B`‚IMAGE 273 ./arch/ground/sky/cloud_5_2.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���ÃIDATX…í×± AqÇñïÿ^I2X”(+£²PV›ÙKLžÁr»Eyƒle’X%‹A&õ7ÈÍ ¥®{–ó{ó©sNcY‹`Éâ P€ �(@ P�€3m@»1W`vöy–ï¯Ð]Àì.ÀoA.ƒTÓB��×€Wl\�ŒB=#�h桜‚H;âá§Üî0?Ãp “#üã‰ü xÏæÞ Æ!À+½%ô×Á~îr§­Bp€ ×,Ï6Ó Û����IEND®B`‚IMAGE 245 ./arch/ground/sky/cloud_5_3.x11 ‰PNG  ��� IHDR��� ��� ���szzô��� pHYs��*��*Ðp���§IDATX…íÒ1 Â0ÅñªuQt‘:yâ]<‹×©›Gœ=Bű t)Ú¢1NVSâ"ï!ß/á™Ü9‡gv,·¾SŸuºÞÃ,ˆ¬çûËVûp�3Ý8—&°˜AšÀ|ø~©¶p¬`Cv€ó- €ìµ=ãLbÅP\àTƒwQ¾L¿}`Ýó›ËæG[éTB@�@�@€¿<�þ=(,ü¡����IEND®B`‚IMAGE 166 ./arch/food/clover.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEïÆ÷)ŒR�Î�4Ù™���tRNS�@æØf���KIDAT•c` °@RK`Œ•ŒPë(Cj%D1ŒÁ c0††@¤Â`Ú'À0 „!¶„ª)€ f?£ŒÕ�c8`0È�Ä@0Xí`X����IEND®B`‚IMAGE 507 ./arch/monster/humanoid/Human/clown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¨PLTE���J�I˜�–º¸ žz�yÁ ¿ÉÇÌÌÌää䬪¸¶†�„¿ ¼h�gÉ Ç­��ßÝàÞß'Ýß)ÝÝ5Û¤¢ª¨¢ l�kËÉn�mœ�š¸¶|��Þ6Ü   ¥¥¥æÃ!¨¦9���¾¼ÛÙf�e¦¤–�”D�CÞ2ܪ¨Í�ËÀ ¾¦�¤â°®çÃ"èÄ#²°ÿ��ÛØÔ"Ð)���tRNS�@æØf��IDATx^½ÇN1 Ec;uj/¯wz¯ÿÿgÄ"™awKçèÚŠø“(õp7Í1vŸ‚ìѧ÷6ÊàvÖòÆ=!Ÿ€©É!ÀQ×:6¨°-Û€�HMI¤Ç:Öy¨% “YmÔ²K]CÒÏç÷i©@ä d™ÎÏžo6 ´'Ø¥†‹E¢_MÊ›”·ÁmˆÙ¢;Üîéø[+`6 Ý!ŽßYðo<dÝpÉü „sþg3Odí©BÖ‰ ÐÓJS ¼#ÉÉž !ŒñžVr¼� õ‹,˰°^‡˜#„yQpËWFø÷Äc@(˜ÿŒEHðä̉­³yD����IEND®B`‚IMAGE 170 ./arch/weapon/club/club.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÁq8G$Í…? R-���ï§_d3‚B'iñ޼���tRNS�@æØf���=IDAT(Ïc`ÀBPù¬Jª¨Aåå¨J‚*:PXÕ[„S£�CP‰YÀ``-Ie ƒ@!º€X*ÈF��Í Š]c)����IEND®B`‚IMAGE 1753 ./arch/ground/cmarsh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÊPLTE>VB®*‚®Z®®Bj"®VŽVJ®¢vþ:´"‚j6®~Z*†²–þ–~J®ˆ"®ZþþjþêJÈŽþjþ˜þþbþj­J®‚®6BÊþZV§þþNóþ:ºø{þJ®®Vçnþfþ"‡kJíþr¶=þŸ>¾þ–> þþFÞþ2þ~^þN®‚ööÉ6þ7Ú¯þ£2šÎŠþþÞþ"¢®®‚w®1½•Zò:êºþV^—Q€2È ’þþrý3þ‡>ÅþR².޾>öÆNÏþâ®nÊþBÒþ"~V>î¾Ú¶f£†þýF®²Jjþþbš2ú~:þ–jþÊ>ÊþÎNjž>sþü.ªrföÂæ‘:²îjþ¾þ¿nþîþÖxþÞ.êt–nÚZ2—ÊzþæFzJÂFÚþ°‘¢frÜÜæbrþÒbºº‚zJê†þõVþ,ærþn:¶ò®®šjþrvVRȸ*ÞnNòzîîvºR®¢†Äzb„î¦2¢Öâ–6ΦBÑN¾®¾ŠJæþEÖþ.’ºþ2žÒ2º¦F¶yÁ*ж:æºrn*ÊÚó—V†îb΂&Žr.æúÒJjîVr&Îf’fVŠ*¢‚6þ²ZÚ¦ºšÂ:JvêÆòʪž6¦Þ¶þjfÙþ^¶¶ZÖÆžJ*ÚnÖZö¶*¦†>êš6Öªvr6ªâ:þþÞºnþÊ:þ¾.²ŽFâþ.öz¢r†þvââÅþzþþbæ¶.®Š.ÞîZN¾Žɧ>òÂöf.îz®þ:â¶&–vVÊš~ÆÚ–R–ÒVý_ê¶FÞZ¾J®ªš^Nø:®êjþÆVξ~þîNîþŽþþfòò÷À[��ÊIDATx^ ŽS›mIÀjUmǶݴmãÚ¶mÛÛ¶mÛ¶þÃô{¾$hGÏž8¡ïW×Ö •¶¨P·0­Â†Ï—mñ_B®Çw †ÄMC‹,Pp¨îO1P n4·ÿw?R©Cƒ^š@mk~Å&öéß;ga’Þ¼øáW# ©i*P¿ñ*ÒÚ½¯ùZЩÝ2Æã¬@Ýñc+·#ðÔıÆÇ¶ý¼Ï0M1ѵ)FÜîËì�eZG.!V&Xù-›/òçrÍøž_ÿì‹9MÑS³Qm(ˆ¡†Gw—ŒœÿwIîLìl}ÅúîFŽ»Z(\þ¡-œ,£3(™­°Þ0ogY{cÝ–|’Ø´ÿ© È"Õ|ò›ƒ>¶WöÕ0{ßf†4Í253—Þº�¥XŒ£O\+hTA´Ï[ª3{Q1Ö%Õxß¿Æä˜€êìSGZ#i»OUªÅL‚*ßn» aWxnp0™tê| ³r®ÌznÙé»ÃÑÜk )Kˆ|ÔRYö6ËG¹W–™J®<µ¨œ?ZùÂÖsÒD…Õù/“(ñ€½aOŒ€ç%ÇÕFÂÉEA¤�ÁX…NÕåEØmØ–cñ�Lr}7—M—ËU­ªÔƒ0-I@Ô!¿)EÆ<º@ä‚ã­J5réš�Ö+.8{¥µå8eÊÚ¶Ó íÄšøÎF¿¬ ØŸô�D§|Юíú%žñf+æûʦšˆ$æïu÷¡/r4 îó!ÉÁG8ïÁâçÛíïm5Ô´ö¯GÍ¥Nšojñé»D{Â<4ÈG?RºóÉp«-þÙd*¥(Æ’œ+ ÒN¢xú4ÃÜG¸¸÷ó1TßÕ¥9õ‹] o'ÍMcqT—“â§sùÄàÈhÐHjBÁͧŒ õ9¢†NB &D0{Ýè87{Žƒ_µïå¢âŸSu‰Ÿ}&%Êãp‡¢ Žï…tç__›í²•4u»KL„(º¦aBT$c©¬MaÙë�ľ‹ë$d϶Ô ßß¹ gaD°t:nù¨(%ð{¢W€lÖÎ(¹’)sSµï£”Öëˆr\EK–˜‘ fÍÇÚ–ä^·=ÔŽ–뿎Šf3XµZl/'‚¥Õ‹¡®=S2­¶è9?Ò\Gàw×Á1"›'tìÛsF|oN»>µZÑXpâçܶª*¹{GÏ?q6¤(˜µ¸Oçauµ€ŠÕ`p¦ÂÙÇXdæ&Ñ(#“'ù7#8+û|Ú±|ãÊ����IEND®B`‚IMAGE 214 ./arch/floor/cobblesto1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEaaa¡¡¡¿¿¿eª4���ˆIDATW}α ÂPP» `�,qœÄ‚é‰d6Ê�)þ–‰JAÿŠÓ&¯†Zên¡¦Ò]“‘¼’7hÓ4Ñ’Ôݘ»–eÒŒd$#IÓ$",jÝT3²%YÇ _HÚ>Œ„î^¤.$ydŽ¿ŸyÿL¿ž>µê÷c“>}žª:øïóˆ8GßÔy����IEND®B`‚IMAGE 213 ./arch/floor/cobblesto2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÚ¥ ÿ×�‚B'u¿­”���‡IDATW}α ÂPP§HO$³ƒÉ�)þ@Xâ8‰((<&E"¥ Ń"%Ámw·QSùéÉà oä‘¢(hÛînÌ]Ë2y9ÈA"‰¢1·®ÜH®c…ÞI$ÆFw/vH¾¸Ž Ç'¿Ï¼¦ó'—OíŸ:¤D—\uýäßç [(aŒ®Ö<����IEND®B`‚IMAGE 464 ./arch/floor/cobblesto3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���-ŠVc2�c�Í…?�1�ùqcDÙ¤ïå‹¿¿¿J»��gIDATxÚUS²Ã ‹°2¦ÿÿ¿/1›}µÇE¹JBhqÅŒÞÏÌ2zo DÏî.“¹1•ÆÆäZŽJã‡Paœ(Þ{ñM"*6Žb5°‚òHëc-¬ÔäKE)(pi¸H,~ ¯¶¨ å¹TœäÔͦ,€Ò´G×LóÏbÒ¼Ìîœ5¬Í'n˜_ÖdÄ7ßs åÃîYföã`óûp·.ñ¶ycëiûÒÌH¶®/?¥BÈøùñ±“_þV¡ç’ªŽn÷"¦B¼ž­#Nßëç¿1öa™oÚÿe¤¬{ÿü¯~Ù—êN¹:}+*ïs­Dr©ßJVÑ<rdÅ'ÒÚÚ>3jNÂHž-ÉÚû¶žKéÙQ ¥Ñì÷éÿ|h:] #õ¬ÙLJçüßÂÍï% Ïü£ý=ZËæï{þÇ Çºù£°1¼÷¿ùÏÖÕùÞ#RßÁ:ÿ¢õT‰äú€êëj8P����IEND®B`‚IMAGE 388 ./arch/monster/animal/cobra.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���$PLTE�������B�k)�½�Î�ÖZ„B)ŒR1µ�1ÿÿ��9÷m���tRNS�@æØf��IDATxÚí”ÁŽÂ@ C+× îðÿÿ»¸J¥Am‚V\ñ~q<3‚å§Z€4¾¨&@P8TÐóÏgåsP+¢èLju-Vx^R„°T€}‰* È„1ÜÚ÷ B{ŒmÛÁm(á€ûp<\Áª„£!õâ*À¡Ç@yJ*Š�m!7ž¯<û%A×�íwÀgŸ=ðuƒ~@ m¾7´ñj}·óÓxwHeíyήh°?o@=/|÷)äMž.W<]”}Ýn@v¼¥H�ü Ó©¤ÍÉÛÍÇû+&AÓé_î)ð xr>÷åéÁ#ùéÈëkQÌ‹ïT'tÿ7iùéßú¼7 ­‹›Rf����IEND®B`‚IMAGE 409 ./arch/monster/animal/cobra.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���*PLTE�������B�½�Î�ÖZ„B)ŒR1µ�1½�1ÿ­ï�ÿ��ÿÿ�×þ)p���tRNS�@æØf��IDATxÚí”áŠÃ0 ƒ¹©ºÜúþ¯{Qšar8. öo¦˜¾È² ûùÖG ­RÝ,G`€‘+Bbÿ ¹’àIà Y³â÷ä#j'ÀVkÔ1ÀC„P·íhr‡ç328+Ŷ­¶ûNx„]3”ÆQ@8$‹"È ¢©ÆÝgŒÖT¸Ë`á`,+i=AÕý•ƒîCú²…é[“ž¼Ó-ͼk ýý¸IËG”=3ºžèÑu Ø0F¹>mÚ•�1Ä8;Aºî¼ÎQ :ÀƒJ眾iéEÏ-<ªNÐ}q=¾xápï1$Ð(ÓšDcæ¹09q9¿ÊlxN}ãsÝMûï/$úòR¿õ¯þ�ŒI Ôƒ­€Ž����IEND®B`‚IMAGE 414 ./arch/monster/animal/cobra.x13 ‰PNG  ��� IHDR��� ���@���LP…œ���-PLTE�������B�k�½�Î�ÖZ„B)ŒR1µ�1½�1ÿ­ï�ÿ��ÿÿ�CÀ:¬���tRNS�@æØf��IDATxÚí’ÑnƒP C+/P3ÿÿ¹sØÆ ¤>í¡n¥Vò‰oýsAºôÍxÅàÃ}#Ñ÷)_98mo3p%°V“9Ž"¾V~:Pë“�¥°ùd<Æ0ƒFIH à4Mfʘ,ËI‡§PÂ0Ì*/Œ1¢1€¥Î(×ø¤|-Œ|ªAª&å÷ïP &˜Ù¿4å}ßÌ¢ºðηëw‘w ܽn&„IÄU|€f~küÒ8ß0R*AÙðþÏô)~�Æ ~‚!ÿ©t q˜‡Iè�Ñ´ØO¨Æß»Ü™ãhΘ„9œy(o 6m}›ç0 ûL'~TOc.yû¶¾ˆ¸èîç ùÕã­Fß÷$ t­®����IEND®B`‚IMAGE 219 ./arch/food/coffee.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����ÿÿïÆ÷ÿÿÿÜÇ`���tRNSÿÿ�×Ê A���{IDATWcX Ä16­^Åf¬Y³Ê ÂØ´àDjÍbˆš5ÌLÆ›?Z`FÿæS`† Ã'ãˆÁ€ÿð'Ãàÿ#Cžù˜aúÿoXª?4ü<XqÿÿÿÀÚÿÿ1yÅÿ?PÚ‚2¸ú‚x�i[Ÿ§0£����IEND®B`‚IMAGE 191 ./arch/food/coffee_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEq���ÿÿÁÁÁÿÿÿ���ˆª [���tRNS�@æØf���^IDATxÚíA À Mwþÿæ’¥ ´K=; ΀è:ü3XÈÞ gd—q1x„wÀs…w/¯À§ºüÕÆH•UÉôžB#‘>mØ:¬ “7LÞЬCàRv”3ˆ[{����IEND®B`‚IMAGE 274 ./arch/misc/coffin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���1�111J�”9µJ½JÆJÆÎ÷Îc!Ök1ÀPë��� tRNSÿÿÿÿÿÿÿÿ�SOx���—IDATxÚ¥ÓQà PÓ•šäþžHÔ!4ÕŸð°h›|d$€;Ý«C�lA%„˜P£¤�ý¬§Á�ô-‡d€,ÁPb½GƒOÃÅ à<˘áB@ ûÛRð~I4 øÿ7d€U‚¼¨@[‚ú¼2 ”jvFñqÐÁa 0  mî´ ¬òf_]Õ1í����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/cold_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ���ÿÿÿ yËT���tRNS�@æØf���~IDATxÚÍQ€0ÅV¹ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#nÌš• Sç����IEND®B`‚IMAGE 221 ./arch/monster/dragon/Hatchlings/cold_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ���ÿÿÿ yËT���tRNS�@æØf���IDATxÚÍ’A À ;õÿ®í¦FØèÙ ˆ8ƒbô:(ôR� Þz—!-y #àØ °SLØ"À½5¨®‚„¥Á+ÀÒ`Š.ì¼½õ bÆ…<YùIäÂ@¥—œ?.Ì3h`;]L®61£?(2c͹âG¯„Ð(¸ýésò�¦’¦(Û����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/cold_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ���ÿÿÿ yËT���tRNS�@æØf���~IDATxÚÍQ €0 Å{ÿ;˳<¨«e¿ÆQÄdP\¿Ðþ SyDèÔÀ.G@8°¶G^:ÃuðâåaòØš4žÙwÄ\@èysá3‰‹îøeå]·b÷~‚š6ÏBXì÷Ëþcë˜,4[`ä:Œáàë’ÿãÅaš–dg����IEND®B`‚IMAGE 219 ./arch/monster/dragon/Hatchlings/cold_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ���ÿÿÿ yËT���tRNS�@æØf���}IDATxÚÍ’A€ YùÿŸ%¤)‹õêHt‡ŠÄö34`Ú´G³`¨k_ÝBм›™ª¼tÑ@o ØgÿʧPæQ³ÁÇ­4#Þ?Ka0ÎÆÃž io.ÃržŸ[©UÐ˧™à<hésr ÙPú§NXë?qǵ™„í����IEND®B`‚IMAGE 266 ./arch/planes/fire/coldmagma.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE���ƒ�÷��÷E�ÿƒ��E�Ðd�‹��‹.�š.�±\�‹E�\�l�¹6��ƒ&�E�M�½ p'���‰IDATx^½ÒK! PÛ Ì¯ÿÞÿ®]!LͦêÛ‰D"pDxâ$Qífˆß¾ éj­-‡á/ Ñ@&OFD‹£àLì-*Û†¶w —î=¯hÊâ{�™8±£ë%È1AZáÕU½•ÿÄœíK¼LXDÄw”´Å%Ù·‚A ³{OÀ‹n ‚|����IEND®B`‚IMAGE 269 ./arch/planes/fire/coldmagma.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE���ø��‚ �ø�ÿ>�D�Í+�ˆ���ˆ��›��D �ˆ�P�´+�º�]�o ��‚�ôÜ^•���‰IDATx^½ÒÉ! PÛ ³v]þÿ[{Šz`j.Uß…H àPð¨Aµ#Âï_HrÖZ•T7ü ¨nò”`D$¼¸.8[UËó1#úÀ|©r:á†Þ뎲O¾‰>&©+¼¶²Z1Gÿ%^&,!â¿T²—“´g C$Fû7ªÍ­ p&b����IEND®B`‚IMAGE 199 ./arch/talisman/collar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���iIDATxÚÕ’Á À0C5þÿ?d®EzÙâ©æUsPþ&{ôâj”6Œ)•µ~¨y¬3 Ô‘9a—zH£ÀŠ €Qj@¸aKþâH*KÝ_ÿQCÝ}9¸‚öGµó• >‹SÀ3|N¹„'ý‘Ú¹����IEND®B`‚IMAGE 199 ./arch/talisman/collar.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���iIDATxÚÕ’A À0u÷ÿ.T èÚ‚·v¼$qb hƒ‡‡¬gøàÐ[pÌ'jÔ²á4AKÖ§®W‚ ¢+Á�¶®ë<Ä®DA½ó b­ßŽiîç!¡½#×§¹y|/hŸãµ›"÷…W+����IEND®B`‚IMAGE 200 ./arch/talisman/collar.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿÿ�����à…a5���tRNS�@æØf���jIDATxÚÕ’A€0—åÿ6±¶–j¸ép*L)$ÅßðŦj3¬pÜRxYŸ¨Û' Ú2NXMÝPêÞl =MM"'|1N¹!òèY¿ïS‡ºòœfã?ˆ†g^ï[2T0k º >ƹ'>LÉM����IEND®B`‚IMAGE 3814 ./arch/construct/town/collesium.x11 ‰PNG  ��� IHDR��� ���`���­ù‰«���sRGB�®Îé��}PLTE)ŒR��{ÿ½ÎcBœR)µ”cµŒRÆ­„µ”k½œZµœs½”Zµœk½œk½¥sµœZµ”Z½œc½œs¥„R­ŒZµ¥{¥{RµŒcµŒZ­„Rµœc­”Z¥s9½”c­„Z½¥cœ{J¥ŒR­”c”sB½”R­„JÆ¥{­Œcµ”J­ŒRÆ¥k½¥{½¥kÆ­{œ{Rµ„RÆ­cœsB½¥Z¥{Bµ”R­”k­{BÆœs½ŒRµŒJ¥„J”{BƵ”¥{JÆ¥sµ¥s¥„c½­„ƵŒ½”kÆ­sŒc1œ{B”{Rœ„R­ŒJÆ­Œ¥{Z½œRÆ”RÆœk¥Œs”c9Æ­k­”R”{JÆœZ”kB”sJ΄9Þ¥ÖkƵ„½­sµ„JεŒ„c)½”J½ŒZÆ­Z¥”RµŒk½¥„ŒZ)ŒsB”k9Œc9œsJ½ŒJµœ{”c1Æœc�ŒŒïçŒc2¿¿¿����1�-ŠV��ÿÿÿþ¿Ê{{{½½½cD�c�c1@@@ìä+���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  s}BR�� ÕIDAThÞÝ›ßwÛ¶ÇóriŠ �¢cŠž[±­Ê¤³&vÓYMì¥îº$Ûº¬¿º_Ý–uëº=Hè9:äƒÿö À))nä³3Ø‘_ƒøð‹{/.AêÎÿ—&lk¶5Z~x³N7䛚¶pÌÜÔl©1ý[Þ§:Ât:­²hkX–™¦?°æhj7ƒÔp©jÓéÿ$£”.-øÄFÚM E¡^šNô&›hUʵ 6)ž<Š>Öls-‡\3¤Ÿúóü$õQ6è~б2Õ+3¾ì|6Ëf«3-Öœ”•›k…ˆÍ)¿Pñ¥ùM6×JŒöÝ @ÝÃò™øÝ`„”óXY¹îj¾ÔH·é) á ':ó)>sŽX%\‘õüŠÙô¶šD4"f„K�uÔ|?Ì–#o}©ËE´„¢9‚`®ŸØÜ2—¯u…ˆkªAOò,Ûlx™+å™yÂehùf“rž)—�¦ZÀ‰á»­™T—I˜.ðm|«šEO4†p…o£A’C–³E¯ 0ÕXæÛhk±];ɵ€&B&iΧÔÜdص¸Bhë®c3À‚oz µà¬"^ØÈ`žene©!¬9 (EÉm,#åé]8ÕI¦Åú³ÍÆHY<KXë„Ùµ\•OámtQ1RÞ•€2ŠÕUO‹Û)sB3Õ9a°Ž/ÛYHV¶²ç'ë5M—–’ó¤"á4“° 0›ß™ÙõØHkÆt:-± ÃVšãÅÝ 8IRç¯KÖÛ°mèÈŽ+!5âœ6(hv; (øÖOŒó¯‰XO»ŽD,a†9…‚røZÀÉDÕßš{+7”ˆIe’« V�EIAÕnÈ7~3>E˜šmŒB½Z«€o¤ßL3²z NJA¢œð–ø’Ìã+êÕ)¨\¯H3I®ßZ£ ¸V«�ªYnPpZLl9h�UgËmym„I9”9¼Ë‘¿}wÄY«Ý Cté£h@öÎ<aäœgõ»xˆýwGÝ~mb,ŸLóz¯jšÎ+XZItìfÅLj�…8€]Øò1ò\:÷$ÁO\vô©KÞ¹îùããa„zóYLñcþ5 °Û–=Ù€¯©ÿiލ�ÓyÓé" °Å‚< »Ùgd@îÏ“ 9÷»Þ Þ톔½ï^m‘AìBعûØsñÕ!¿ŒÏÇŠŸÒ“Î’þÂðiB]HY®¬ÞR"UL `¢S‰8’ q‚] R!‘>rûÜkÓÁ öéIwNôhHbº[£Î¹3¦¿áÃeýE¨xÌ?;»e€IEAÈ)öÀ"o€\ ­à§�[Q@Ð{ÎÃÁ#ÿŸD 8ŠèððøèàÆÁEì:~¼h¡Ý-â·–ö¦Ñ ¦eg |2B&U@ÄðYˆÜèý­8ŠƒÇAðÁ–ï LéáÏÎZQ÷ˆCäíý‰ã1€óç­p‡Ç­oÚ;·Œ!üËhESûˆi¦\ZRPÁVœ$e@�á�éÞçh�ÃóàßcÔÜ…#à÷Æþ.û+†3Z×=³£N"‚:ôáe|òlE ñÁi­‚Ö3@í„òÕ—^Ã�è‡F ½ñÉS ý‹ð NRÒöÃË{ñ�Ÿ´\ÜFÒÃÇâøAĽC¸L@îÖßVô·€F9#äœ ææ€*¿‡€Æ8>yÄQÛÛaûÁÔþ¹GxÇáQ!ï™Á•{Œ/8tÎ!‘9¿ #é¿á1®è¯'…‚š+5?ïÌ (XB#˜JB¤0>æžËü~|±ƒP䀅ØsÝ×ôÐÅ ñl³ów÷$¤á9Û?äØYÑ)ÂIYÁt–Ïtů`29 pRD÷Y�~á…3‹¼Ç¯>ñ{1vÞ³sN>e‘;êÈå‚ö‘lU0€…‚&Ó|3^Ë?3€ºÀ°Û÷Á €S·ŒÑ—ãÓ=øS8<º7Âø¡ƒ¯¶w‚•'�ÂæAëƒE´e–öÀkyÕîö†a�Ìí’£1º?~š S€4�ø‡¾;F-ŒøÈûæ[þtñ¨Ý¡ãàØm“ÑéŠþ.Î�­t"ãù¾f'Ë '9b,@#ÔæAQϹ~ ãcì·;þø¾è?À±ÌÁQ^ÇCÚýÌsFøÄxÿl¶CÂÂ+úS »’Èâ:ûžfÕ–€"©‚Ê3!†nÄa;|Îz/<º‹ÆÊggvKt=ÊÁ¥~Ž¿æ£(v‡>e8Æ­ðÓÑtVõÇás (¹ª€ù&z& ô¾kýÎê(‘KxÁ:Cü$|ñò™‘Á;rL È/º@Ýáðh{ïêŸû//©÷Ptú!í�£½GDvï®èž‡°žïŽÍé…e7”€T.ÆR‘uùÞø™‡Ãg]‡<}ˆc ÿê×H¦¡SĘ#ל3Ø;çþã)½¬þ…˜Çóý}ÆrÀœ.±QR�&9 qÃ,’õ$Ç€dǃۇ Àÿ4Úéõ#ß‘éç<"//ÎBꌿ€3Ÿv\~¸œøàaÿœÄ[DÖ³Ëûƒo�&X”®Ed© ¼ïZ˜ ߌzrµóÛ˜PŒƒñ6PrzðÛ³= BØ‹CÌ./GÛâGÐ{à [Á÷{΀½GÏžÊ%}r¶¢ÿsW&SûeQ¹XÊøa’”ׇ>ßÂÈ•6åá«àÿÎÙ~ëwÆØÝÿ0h·?ºàv9ßù‡�cÔ·b<pÂÆcgE¹ ]ÎñU�'‰œ”âD4ÒC.ƒGàb8ÄŽë@°ÿ8ú >?÷Fàœ‚Kµe¡pÈ~àß_ïÃ^øí¥üóó~°¢¿šâ _%ÅØDmmœØg>@7rå©A>=Ñ=vóAôåó/¡ýœµÉ\ €þGVÔÁqGÚŽ´<¤í¬Vô‡9>‘Uú•-Ågo…dé:&Et[Oü·ÿ±¤Àd»ì«®uW^öD>—=‘¹šI;"|t¬ì8p‡Wdý¥í«ú«<]ð‰ìbXTT+ðõµNƒ&NìGª¦==íw1Gòª…²¬“i2=T½—?‰‹8GrÕAB�=LTö ”Ë);­Ø©µK›²³Wìe¡`ýó�z%‘`×VÂÉdR<Ö£NGf9Fý0d²†Ô"£¾1†®”Q–¶ò•"Ÿ¹ÒL)–æp©¡WlŸE–¯ôÈÇüιⳠfn(&™§Šü@ CéÕR =™Ÿ±?BùŠ{#>`YØ«Ú9Tæq›QŽFËìûŒ±ç¯Ô Ï=É7IM°047f¢„T3æ«YW2Ê‘B»mc†ä*£Ò:_¸'ÕëR1™E›ì¯$œœàÈî…Ló'ìorZM (Ôü^qqC­xH¬AÀ;FÀ<Pô­0Y:ÎÔwޏ¡GÓi~þ€×F@h”tÂÜq·s°fvèÍ0M¤dNrÀ\À©QQwΣºq’ÒfÓK±Í8iz6o™€…Šj>ÔH5÷H,Ę KÁ§‡½S X#`2ÓÒç*Ú H6L»5û&¦Üb޾p^@uš³BEµ³d½eþ%ÉïÌY–˜ ‹>ºü×̧œ°ÆåY–TzK.;Û|ê³ùz?v&-KLU‹®�–�êT3çÙDXEqÀù±2ô‹*}fæŽN3à-¢^S6' <ºÚW[.`æ‡ ZĤ" •—$-Uz™­ê4³±m"d-À<Vî ZënÄVÇZÏTB_™cò8©æ@u§¯t/Ópq)Èl2-³Tù–šº°ÄW,<pá.ÓüXë˜n `öȇPó%ÂγX5Ôz5–Ô\ƒ¬!`¦a.`Æg–Êr[Ï´9{.jMÍ–i¶í±Ž€Ù&HE@‘fŽXPØ™7oÊ!\kZnIõoÖPVÔ|‰( ˜»¦H)šLÍ–4ûMº¦€æ#HJÀ,;çŽXÊ aÞ6˜–ZàÔÜ[ó“¶T3&‹6u@%`ø¦»2’Ô˜Ú¡ÒkLK-0¹Ág™2“:ƺ  æS€7ø0˜>N­€ªÂ4oæ\4-µÌRqóÔ%öß‚€iéÍœ€µ¦%ªÅܤ-d £…}W#`Å$¿Ôò>5igX¿Ðbn¬e¦%–·òÎY逢HD啚M³´Î"Œå>ÛlºQ§¦ö_+Òz¶Ü����IEND®B`‚IMAGE 167 ./arch/weapon/bow/compositebow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-���ï§_d3­¹|G���tRNS�@æØf���FIDATxÚíÓ!À@ BÁðËýÏ\[ÑfÅb3Ž0ßÀìÁð˜�0;D�+èÀàħ€Xw èžÑ Ç”ãý¹¿510àM‰����IEND®B`‚IMAGE 1293 ./arch/spell/Cone/confusion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¬PLTEÿÿÿ1{F1{Z9¹o1Z9!cZ!œ{)Œs!„„)sc{{1Z”BŒ”9µŒBk½R”¥RZ½cBÖk1½”sc)N¹F1½Z!1!9œZ9œc!sc!{s„{ŒsBR!=w91œk9Œ1„Ž!œ„˜˜NR%!”œ„­oÁ1J!.ªƒB½kBÆs!ŒœNâ)­œ)¥¥!œ½)ŸÀJŒBJÞŒ1µœZ{!)„cR9)„B9„k1Œc1”91”B9­B1µJ9{”9BŒRcœ!c­Bcµ!”{11ŒZ„ç9{¥BŒ„BŒŒBœ½B¥”BJ”1ÆkB΄BZœJs­J­ÆJµÎJR”BkÎR)”R­½RZ½Z1”c­ÞckcsÆJ­­Jœc1ss1cÖc)¥­„s99ÂuB¥JBµRJœJ¥”R¥1R¥R)R11„J1œc!½”J„J1ÎŒB¥Z!½œ1­Z.²ÃZ11ZZ)1„RcR)kR)1½cBÆZ{B!{c1{k1{s1N½^c{„Z)!kkksŒ91k„skB9)”Z)!{{¥91µ9)!„ssck„!s„9{Œ9{”!9Œ9Œ{BBcœ9s­1)Œkk­B1ŒRsÎ!c½9oÅB)sBŒ{9„Œ1­”1cŒ{œ{œ9{¥!œ­1”½9”Ö1”Þ9{Œ{{B!cB„{B„çB){Z!„””sBŒœÆBœÖB1sB¥ÎB!cJ9”R)”Z)œ¥)kR9œ9Œ­J”ÆJ¥ÖJkÎ)ƒÖ1µk½”Jc¥R9¥k9µk{ïR„ÎR„ÞRŒïR1¥s1œJµµR!¥ŒZÖZkÆZsÎZŒÞZÆçZ)¥Z)½{kÖc”÷c)½„µçccÞksÞk”çkZÞs{Þs{ïsœïs­ïs”÷{cç„ZïŒ1¥B¡GÝ���tRNS�@æØf��IDATx^uÍc¯$QFáÕ¸¶mÛ¶mchÛ¶mÛ¶mÛÆ™9Õ•JúvæùºWÞ °)Go-†ö$…†ȳj {{„•c“òò Žôäì¬Õ à ‚×.�´¨´¹¹gZ‘‘èæ° ý†M‡»­½Å-,h_ ì(.A @‘ÂÌÖÌŠüŒL‘ì_—Ÿ!áŽz+fFFî ME‰äÚ:âã"\}øÄ@ÏÈÑèÙÐÐø�&fóºXØ¢3ti»_¶Ô¼E6òäì¹±è;]»¶A3‚ÑS^Rû�!*I¬þB]ÉUtìFÝÄõõÀ»{�/¼á?nnhz$ä:]u p§&Ýà!7Q±ÝÒ¦¨ô½üç±BÀÁ`…ææËËa_¥ïªIO=‚±`fÊøB:-svÏ{ ˜œ2 @ó•³(Þ{öââºMHÇ€±g4‹@éVHÚ~ c¸±‰»i ²êj„N›6$»E£ïÉ hŽ­§‹²CÍ(¢\ÕPTUVGÊüüü çØ›$“Ev¦nõ*EòýÅ'€ó5hÔç.1'55áDZ¼ú�÷Ÿ_úº¸©·BƘL$ViSK-sNÁgkë¯ØÚ>X5 +¹Ø8­{ðÒºÆbàG°³C²h1²^æH¼-ýdž|#�°&\����IEND®B`‚IMAGE 1311 ./arch/spell/Cone/confusion.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÖPLTEÿÿÿ!Œ”­ss„”1ŒB{µZ¥­!k” ¡Ùcœµ„BBRk­{¥9¤ec”)ZœJR”ks{ ˆZŒ)œ”+§‘]¢ƒRs1R­JZµŒscsµOmÛ!„­)˜©1Œ­”½RŒ­]œ¯`§`!9”Z¯·k„Œ9B¥cksœ{9œ = ²p™ksÞŽeÈœZµ¥Rµ¥R½¥Rε{­{Œ1„Œ1k”9{”9Œ”Jk”Œkœ{k¥„„­Zk­½TZ²9µÚ$„â9cµ9”¥!sµ­­Œk¥Œµc{ÆuÈ1J­!„¥1RµcBµZR­){¥k!B99œRs­”ÖZkµJs½!”)Zk½B¥)¥B)Œ¥¥µ1­J9Œ¥”Rk{1¡ªœR¥Æ)Œ¹”ÆJœJs‰J­9B„½B”­B”µJŒµR”9R”­RœµB1”9­µBµ¥J½¥^œ5JœÎ)„¥cœc©ARc{1B)ŒŒŒ”{BJŒ9J”9J”JJœBJ”JRœRR¥RRŒJZ”JZœZZ¥RZ¥ZZs)cŒBc”Rc¥Jc¥cc­ccŒ9kŒBkŒ””Bs­ks”„{9{kJ­s9­{1ŒZ¥„9¥Œ1{Œ1ŒŒ9­œB„¥J„ŒBœk¥œJ”­J­­R¥!ŒœkJ½kZÆks½œœskÆ„Rµ„R½1”Œ1œ„Jk)„1JŒœ¥kÆ­s½µcµµk½=­k{Æ„{Î{„)k„µs„ÎkŒ)sŒ)J­”!9¥kŒB½Œ½{ŒÆ„ŒÆ9½Bµs”B1BµZ­k”Ækœ1{œ9{œJkœcsœsk­”œÎ½œÞk¥B”¥Jœ¥Z¥¥kœ¥sœ¥{Rµ„¥ŒŒ¥Œ{¥œk¥½Œ­J ZÉ)s­Œ­sœ­s¥­s!{¥œ­cs½Œµk¥µk”µs„µ„{µ¥„µ¥c½„”Æ„ÆÆµŒÎÆc)R{­µs­”±ëOÒ���tRNS�@æØf��÷IDATÁƒ‚��ÐwVºËÆuuÙÆU—½ìZ^¶­-ÛÆ²m/»–mãz�����Ø–7�0#T¨�6Ö]´tù²•�˜²„B³>ÿ"ß?«�˜0údµ‚õù1}ôØyüÑÑsâ@º†�f5–;2“ã hø#gEÀÚ³™’;ÀÈ‘€ŸTΙX½�FGüD@è†6T>yáìÙ “Æ|‡*]²Ó¤ÎQ�¦Nôï‚j�ÅææÄÄ€ –�Àéb�2¤F• ü²æF"��©3ÌOÔIò$œò-��'vlOŠ'½’²(X¨ð~�� Z"lY¸µPáuû�iÒ| Z"Ö+ˆ"‹‹À—m“~9¬WyW@‹]I"2çÉ•¢2‚¢EÛ´5€ˆA¯{¨(p º6�À‘t›� �Êý�ÓŸ¨žìrybƒË�gnxš6m²’=¯`wýì@àøÐcW_€‡eax»\aÏ/!Ó¹L Dq€GÁ)( kX"žwJ܃op=¸¬ÇeÐ1d •Ôä¿â‡ïBÕû s @§F¨tq‰S¥Þ€ª¥ÿ‡ä±€lá^€W¥_ò!ùG <[�€÷¥®”÷ĵú3��%wÞlà7r|û.FÜ����IEND®B`‚IMAGE 1264 ./arch/spell/Cone/confusion.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¸PLTEÿÿÿŒR1”RJ½k{Î{Œ¥cJ­Zk­csµks½ssµk{œRZ¥Rc½ks¥Z„Œc!œc1µsRkR¥ZJ„R)RŒ�Œk!”k)”s!9c�µ{JÆ{c¥„)ÆŒRœ”ÁÒ „9B­ckµkkBJs„B1œRJ{ZœRRÆ{s”J{”R{”RZsJ”R„œR„ŒJB½s„Æs„Æ{Œ”JRcs”œc”΄”­kœµkœ½s¥Æ{¥Î„¥„Œµs)1œ{µ¥{1”cœ{Œµ”{!­kRR­�µkZ{Œ{œ�„„„”„­”JkŒsŒŒ!Œ”Œµ„9c{R{k””­kJkk甥­sB{B!½sck{­{1µ{9­{Bµ{BŒR)½{Z{B)œ„{B1­„1œŒœŒ)œŒ1{99”RRœœ”µœ­!µµµ½ŒBJ„BcBBk¥RZµsk½{k9Js„9JRBsk1ssBs{Bs„JsŒBsŒJs”RsœRk„J)œZB„9Z¥ZZ΄sBJ{k9{„B{„J{ŒR{œZc”JBœR{œZ{¥Z{­c{Bc�ccÆ{{ÖŒ{ZZ„cR„sR„ŒJ„”J„kcsc{9c­Z„­k„µs„”JZ¥c9΄„cZŒckŒkZŒ{BŒ„RŒŒJŒŒZŒ”RŒ­cŒµkŒµsŒ½sŒœJZ­cR甌ck”­cZkk”sc”sk”{c”B{�¥c”­c”½s”Æs”Î{”B„�Ö„”ksœk{œssœs{œsŒœZœ¥sœJk�Js�½sœÆsœÖŒœ{s¥{„¥JŒ�J¥�ŒJcŒJk{{­„„­Œs­”k­œk­¥s­­s­½s­Æ{­ÞŒ­Z”�„„µZ¥�œsµs½�¥{µÆ{µŒŒ½”„½½{½½„½ï¥Öcœ�Pá¼Ý���tRNS�@æØf��æIDATÁb���À›­l·°¼µÌeÛ¶m»–mÛ¶mÛÆ7ºŒ(���,mQÞ|��i|¿÷Ì{ ��H½û&Ô���•æßàÕîGðù�.¬@õ5ãW¿äÚ \¶*«�ïþ�gF¬ªj ÄŒ o±S*z`ÝÀ‚×I™KþäàãæÅ¥ŠÅ~�°ë&µÆÊW-@•‹UÀ_pê1jP- �@åJT?½ó't/¹wíÙ_€1¥ë2ç8Ñ¡‘¡ÑApÿ|ùï�¤-šY8ã*E£bt´,��=BBrr²ˆ��ÈXJî �$:€%›¦.˜T€Ü9)ÔÀ²Y±”Ÿx@מÛIÈ  Ì!˜œ@|‡ö��O‡þý@¦x��žOƒ¦+†@–>��¶<; :µE¯Ú��æoݪװYë¼äŠ‹«ÒŠÌŽpµL*€æõ#ÏÆÄ–%²¢MïÒ ��Ö /ÙJÔ €ÑQ;��ò…Ä8]f$ h8åÂÊ/™¿HÌ">�X˜?,<u®<9—ý I†\²v+ó%už’9û?´!C6:gÊ’¶`ù=ÈÓª6tË "†G°ü.��Æ%á?Vtmèb)����IEND®B`‚IMAGE 1249 ./arch/spell/Cone/confusion.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¯PLTEÿÿÿ¥Œ)½91µBc½¥cµ”Jµcœ½BBœs©„”B­BZ¥1s­B{¥”9RJ¥p”_Jk½O‰½sB”sB¥{R­ksµ­JŒ F¥ŒZ­„c­”c¥ kœ”c½½)!½1)Æ1)½)B–1{½)RÆB9ÎB9µœRÆR„½JJÆc)½ŒBŒœcÆRRÆkRÆBZÆZZ‘ªp½9c½Zc�Z„ÆJc½ZkÆkkε{­9JµJJ­1JÎRRÆ”RÆœR”sµ¥c½©s±ÆJJÆJR{c¥�c„ŒœBksÆÆskÎZkÎ¥k9J­­B1Æc„­1kBk{B”kB¥””!ZJœ{J­„œ9Zk!scµkk­ckÆc{)”­Zf‡½„9¥„J¥Œ)œŒ9­”)œ¥9œc„B„){„RœŒZœ”R¥„J­{)Œ­!9„c¥{k­­99Œk­{kµŒcµwÎ¥J”k¥­!J„¥µRZ©BoœW²Æ9)µ�µ½9µ!!µ1!½!!„9Œ½9!µB)½)¥R¥1Zk„!½11½BÆRcŒB¥!s½19¥)ŒµB9œ9{{¥Bs”RÆBB¥s¥{­{œ{!ÆR!µRBÆRJ½RRÆZ1ÆZB½ZJ¥Œ!Îk½kRÎs)Æ{µ{µ{)­œ1½„B­Œ!µ”1º–BÖ”B9s!ÖœJÖ¥J­„)µ­Rœ!œB„œ”1¥”1­”1œ!Bµ¥Z½!Z½JZ½kZ½sZ§œJZ1œÎRZÎcZÖ­Zµ)cB9µ½1cœ!cœ)s½ccBJ­ÆBcBRœÎcc9Zœ½ckÆ9kÆRk{œ{¥„{RkµÖskÖ{kµJsÆksÆ¥sµR{µZ{½J{Îc{Œ”µB„µk„½B„½Z„1s¥”„!Îc„ÎsŒÖ½Œc1œ�R{þçp���tRNS�@æØf��àIDATÁƒb���À{s«5U˵jµÕÚÖ²mÛ¶mÛ¶mÛ¶mãCºCZ€ÐÐ��½ ìß–�À’Z@…ƒ!$ΈŽe —þT€ÓQ�¢÷¦HFF9�ˆ`Qóvn|¤Ü…M �B×&AÉt°²¼S¹â²‹àÝžÝ)e^I�ÞÏ f\“Ðh_U¸ü" �²Þ†qM.ø ÒÓAb"º€cëÀŠÎ`FY €”ÕQ¨×è?0|}lë¬T@ÊšÀ©VŸòF�OLK¨vàÌÞã�€g#��€ñs���˳��ŒèÖ7'³B™ò�\? rüo1š|wr<¨ �GvBž+9——°\Ùš €í;1, Ž‹@Ø—ï€W¯!9€¸~�MŸ¢X1X¿@¸€â KS¥ÐF¶LIèÐz�O4¤T¡¢'Ítyô 'ªçÎ])‡« N.ˆý‹ö-Û è:nÝJH@ÎìÃÉß#oçæ‡àevÈß½çÒÅÅÂ+ 樑Ð+ ¿ßBø]û Ä6î€O…kS"Œ­û ÄÜ €²³ LŸšÈ|ꀫAA¥�þe��ð¤qÃnB����IEND®B`‚IMAGE 336 ./arch/monster/humanoid/Class/conjurer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ßÛÛZZZ��ÿóïïÿÿÿÀÀ�ÿÿ@ب\÷ŒïðÅ‚öب@0Ì2 5ÅÉî��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï���ËIDATxÚ­Ðá à6Þmðý_×£1©Zä—·Œ…Ü—’aW)¹Y÷)lÕ·KÐzïmúMO‚M¸÷ûõ К©_¸Ã\† ¢W$¦bê˜afùÀ ÜIRfF/ Q=ÄÔy…xº<W?à%Äç<ŠÀ´lß¿é§òxh‰]ïõŽ Ž3Ǿƒ8ä<!c=¹ˆ¾‚<�ÄO�Ǹý¨§ç€ l¸cÆ p}ƒ I±9j$l”ÿ‚' ¬€Ó����IEND®B`‚IMAGE 291 ./arch/monster/humanoid/Class/conjurer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE÷ŒïßÛÛ��ÿóïïÿÿÿÌ2 ÀÀ�ÿÿ@ب\���ðÅ‚öبͣ©§���tRNS�@æØf���­IDATxÚÍŽ1Ã0Q!‰ÿÿoå,JèÚs¼äÎÆÖ@a¼}2‡B¾ªr ê¥5ÍÈZµµÓ³½Nx&è½ß¨Ø;úó~ô6–ôèÉ@žDD„agX@~á}°–þ\'\DTæ2\â8®ó4|M¨û™r ®}À¾°¯××ò²Z Z\…ü'èLo¿' 7ü˜'ðó„Þ“œ!H¡‚ã •Ž‹(© À����IEND®B`‚IMAGE 291 ./arch/monster/humanoid/Class/conjurer.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE÷ŒïßÛÛ��ÿóïïÿÿÿÀÀ�ÿÿ@ðÅ‚���öبÌ2 (æ���tRNS�@æØf���°IDATxÚ½AŽÄ éiƒÛùÿƒÇËn{o[„T%£Œ”ŒmZïò6ðˆh )>¹º¹JMÑ]•'@ÜÄWO$ïÏ~šÈ]ˆ¿ƒð0³[§HD{LpçæT’€,Ì"ƃ-(ÛÒßcç ú5q^ïֺ̹®<Š€˜kf0G@šå.½Y8Þêh¬þ�Ø>)¼µ$€} Ðv0jlÿ¥F‹¤Ñ“Áÿò†ð!Ý‘t7����IEND®B`‚IMAGE 177 ./arch/shop/conv.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V����îî@@@�‹‹Â¢Oë���tRNS�@æØf���MIDATxÚíÐ;� Pò¹ÿ•ŠÝŒ6O•XßV"É„yÝIX¯¾Úq@lã.p>òKžŸ ’zùHë(Ðâ q´þ7 (¨UÈ�z?7ªˆæn����IEND®B`‚IMAGE 1496 ./arch/jewel/copperbar.111 ‰PNG  ��� IHDR��� ��� ���szzô��ŸIDATxÚ½WO•e~ÇbÎ9sŽé\##9º ™AHˆ™?E+ŒøA„ø EL®üÐ ×Jb… ­"ѶŠ…ƒÖb€påÀŸqzÎwn»k7îw;{¿ï»ßîóœç<ç¼ï5‹} MÜ34:jhvÖ<Ì <Ù—Gl†)7žç§†÷=>Þн? ¥úqO€á¾0÷Ÿ�‰í^Lmv!wȃ™OÍ:¸ž¿x×c >±ÝðÌsXŸ‘WCyþ/‡¼ë Ù§ íóᯂ ÷#óߟ5<ox4Úð‘dx,ÎðžS}¥™wÌýoD4ótŠ`,€wd—·E€ö>”½‘©�‘æÃ”éÃÓP„ò¶1Ê¥%yàì1 d:…5g=¤^«qЛ©èQ¦÷�–ï2Ö0½ÌTƒëò@|·™©±BH¬\ ‘rø)í~2SS´f[€þLÇRÂt�J”05à¾÷§r_°éí¦± ù­d±ÈH‡·¾ó > "T‘b�äúñ\Š(ÑbcjŽPð£¾L%›ô½ŒuLIP«2 sáeY6œp¦d/+Æa²¡§Ñ~ýáv.L³ndê@)Ά(DT’Ð’)I˜JáÙOË*‰NºlÍ’ÞØ u‘Éx#†Ôûö8�G+x[”ªSŠ! ö‡?Ä7Þ–# KËž|IÔXšÕå«Ö%Aòƒ®õ•5–'ÿøâ2¢ÑI мà³P¢:À"0³ݳ×ðo Jb�Aû‘Ø7½‹{ƒ*ó å†ÁýˆJH[µl ؇Âí�9,µ–nÐïì1(G$Ì  f<‡òÖ)ÑT¼{ؗ٪$:ÀN%ýw§Èh¥ÖzCiáêöê-�¶I(‘ò 킼MÈF|_Ônuƒ–à<”…õÅÒ-  %”ÕúÝw}Bäß&”ÔÓm(/åEf6€@êó‘.U*#E½Îô#j74†ë<H_…!µÞê†i”aÄÙUã‰:ÊÅ´ÇK£·EwX·n¸{×ÐÉ#†òÔ„@UDU‘Òèõ•ít2–c;Ð:uæyk¬k"ß71M»¸«QWeèµp%ðA”’˜*¢JÔnÓhI`ú(VVöj1!¨Ñ–’½·ý«´]ïT2Ý>Ã4ÔÍÀ[‚Dç5´g¬dë*ǙͲ U¤)žéb‚s…Y¾<¹G¨ôbFŸØé줛ùȾŠéÇZ¦Ÿ;Xp–PC(IÁõ€¡„f_ªqäêâP‚D´èn½ÎZËã/`'Ýaë€Ûµ-<PÃÔWµiø¦?~åeœ°E—Ê‚ü¢UjKZ›( ì{õä „îÉ«eSéû˘zJ™ÛQ‚NLËN7‹—¤ý’¡£ÒªBD½Qç$Ôë\]q>F¶nÝÖ?Ë��{‚éë ¸ŠvlÃdµ³YæGIܺ…}#($X£^ iÓµq§+„HU´Ê~£© q³ ™_ajųYÇ vÎñqC%é†RýÅj> lS`²hI:s$”À-L—âþÓ• „\j ·Ú�QàXovÞ_Þ_ìXº¸!e¨‡‡ —ì€åûâzF¸M÷øAUˆBª@«S‰«iL_ îÕ ” =ÐYÒ}z¾•Œ™"\3¡Ù"¡sâZ&Ü_ J%ûw7'Æ*-2ôr LG×™Ðæ$Ðõ¦º¿*ÕcGzõEÇ%˜S÷ ȯÑtHîë=ö§Æ¥FÿiU¦×ƒ${UásÈ_œÂžw÷ÅØ¤¡0h ¬3)r*r“Þ“JèAÇŽV=Œ9–ê–ýÃPBIôöY4û¿Ù<çÒƒ_¡I����IEND®B`‚IMAGE 736 ./arch/flesh/human/corpse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��YPLTEÆÎ÷”{B���J91cRBB91{kB)!B9)”{9��R91s9!Œ{9cB1)!RJ9„kR91)œ„J!91!1))sc9kZ9”„BscBœ„BŒ{BcZ9�cR9œ„991Œs9ŒsBkc9kZB„sJkR1!B9sB1kB1�B1)R9)kB)sJ1sJ9!�Z9)9))sB)cB9�k9)B!!{9!„B!{B){J11)!„sB„9!111911JB){k1sZ11!skBJJ9cR)kJ1)!!{kZ„kZ{c9œ{BcB))!9)!„kBkRBœ{9¥„9”sR{cJœ„k”{kZRJsc1„s9ZJ1ŒsRkcRkJ9kZJ¥ŒBŒB!ZB9Z9!„9kZ1s1!Z1){sBc91c9)Œ{J��rާ*���tRNS�@æØf��5IDATx^ÍÏC“A€Ñ¬jclÛ¶=kÛ¶ñÿ±sž©îØÓ~×z‘™ OR¿ q<Râ7EU€(IŨ½§ó¹¬Ê„ÌG·ö 0R˜ªÊmùWb¯*‡¯^dÒ©§Vû¹ÓÕ6@=Ýlɇ^á1C%m¾Ùjwº½Û’Ò/¤J¥Z+ëĈÙÜN¾P$ H“+á[¯¥´³'è¼ì—)¦Çxn>´§Ä)pu}ÚÙX”a^Bz7ÃT–³sG<aû…F¸Dƒàâ�ìØ9p£Ã#!ޏ`¶MŒ·¶…@�¡}3:½Ã`»w#‡Ûãõ‘�¶®[mH£q8œ. Åé ÚÏ"ÓäBR}Æxp|B³ƒå] –0îYüôbP·äÊ<ÅÓ}P©Ìq øý�Ñ`)\Z¿èl����IEND®B`‚IMAGE 395 ./arch/flesh/human/corpse1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���fPLTEÆÎ÷���ZZZcccBBB!!!„„„sss111kkkRRR)))JJJ{{{½­œ999”””ZRJ½¥”Ƶ¥ZJB¥Œ„µœ”ÞÆµ”„{µ¥”„skµœŒcRJŒ{skZRŽh|���tRNS�@æØf���ÓIDATxÚ½ÑÉNÄ@ Ð.o½w'™…ÿÿIq‡ˆºÖ“¥’Ãß?ôúqý<êííývÑ0¯ç—×`fŽx¸¬OØFnŽˆj6H2Çà…+s, Á…Ûv^k3GÄ…ÄúÆ-š(>¯2r‹ã¾èu<®ÂUМF75(pW` ש£é| (ML9±Â¥-)ícÓrN”–O”zbL" žSV�§îPJÀ\<a”Ë>»*àûží ]ÒÞ¸ `²„ãtŽ~ Âÿå Ž¸3ERŠ����IEND®B`‚IMAGE 162 ./arch/spell/Cone/counterspell.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4VÿE¿Š���tRNS�@æØf���JIDATxœc`À ˜@#˜Ù�"š@¼cH˜�$d6� æ@‚ó�ˆõH°öUs6$00ˆ€dU@z@²  S@„œ �;8 Ìwæ����IEND®B`‚IMAGE 461 ./arch/monster/humanoid/Human/courier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ1!�k�ÿ!Î�½s9ï¥Z­�ÿ)ÿ1ÿR9ÿZBÞ�ï�c)�÷�­Rÿ1B!���ç�­��Þ��µ)ÿ!�Ö�9c1ÿJ)ÿJ1„9�”B�¥RÿZJÿRB{1�Î!�ÿ)µ��ÿZ9Z)�½�s1�E¬â���tRNS�@æØf���úIDATxÚÍÇrÃ0  €êÕU¶•žÿÿÀ@¼Y¡tËLöÂÃî¼!)þ„3³ë#»Öz7P'}R»Ö›ÏJñ™Ö%ü2F‚«1á¥õœ42@¨1áižË¨ó`kÿ´íP $n„‡9†§ (Ø¿ZCîG€PšeaU`=cßÛàãÆþ ÔÑâç÷`½óЄõu¡Q/·ê^Uwè×*”À÷iº-p°^ˆÁ¾‹Å„"õÙì‡,/‰®…Ò"ät°tëIßQÆ;e99’¸ås’tȶ$Iû–].é m‘!öÓ¾ix%’ØGZNÅ. §ÿÖÐ09n����IEND®B`‚IMAGE 1368 ./arch/monster/humanoid/Human/courierblue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�����3��f��™��Ì��ÿ�3��33�3f�3™�3Ì�3ÿ�f��f3�ff�f™�fÌ�fÿ�™��™3�™f�™™�™Ì�™ÿ�Ì��Ì3�Ìf�Ì™�ÌÌ�Ìÿ�ÿ��ÿ3�ÿf�ÿ™�ÿÌ�ÿÿ3��3�33�f3�™3�Ì3�ÿ33�33333f33™33Ì33ÿ3f�3f33ff3f™3fÌ3fÿ3™�3™33™f3™™3™Ì3™ÿ3Ì�3Ì33Ìf3Ì™3ÌÌ3Ìÿ3ÿ�3ÿ33ÿf3ÿ™3ÿÌ3ÿÿf��f�3f�ff�™f�Ìf�ÿf3�f33f3ff3™f3Ìf3ÿff�ff3fffff™ffÌffÿf™�f™3f™ff™™f™Ìf™ÿfÌ�fÌ3fÌffÌ™fÌÌfÌÿfÿ�fÿ3fÿffÿ™fÿÌfÿÿ™��™�3™�f™�™™�Ì™�ÿ™3�™33™3f™3™™3Ì™3ÿ™f�™f3™ff™f™™fÌ™fÿ™™�™™3™™f™™™™™Ì™™ÿ™Ì�™Ì3™Ìf™Ì™™ÌÌ™Ìÿ™ÿ�™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌ��Ì�3Ì�fÌ�™Ì�ÌÌ�ÿÌ3�Ì33Ì3fÌ3™Ì3ÌÌ3ÿÌf�Ìf3ÌffÌf™ÌfÌÌfÿÌ™�Ì™3Ì™fÌ™™Ì™ÌÌ™ÿÌÌ�ÌÌ3ÌÌfÌÌ™ÌÌÌÌÌÿÌÿ�Ìÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿ��ÿ�3ÿ�fÿ�™ÿ�Ìÿ�ÿÿ3�ÿ33ÿ3fÿ3™ÿ3Ìÿ3ÿÿf�ÿf3ÿffÿf™ÿfÌÿfÿÿ™�ÿ™3ÿ™fÿ™™ÿ™Ìÿ™ÿÿÌ�ÿÌ3ÿÌfÿÌ™ÿÌÌÿÌÿÿÿ�ÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿ������������������������������������������������������������������������������������������������������������������������ez|���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ����������������������������������������É™j��� pHYs��:��Êduh���òIDAT8½Ò±­Ã0 PáDn’Âd“MÔp“TYFûh2FËVàÿàóÉ”ú¤¿€â9¥lÅ´ÖNA½´K=­½ç{�@Qjõç �,J”3©Ž�$&*”ÉÔ& æÆ‹ ›Ø�R<àßC¼bQó’Ĺ`ñ¯ˆmQ5λ†^€œ½AÍ_Ž ’ ”øMó•²í·ÙJƒ³Û=‚ލ¥ú6nkf 6‚Ì/ð9ìí9dbf‘+¡×Öç@<WôMÒ8‚ ±‚Ð< H„Ç‚¬ó/ %¿#ˆ9MAJªÏû„Ï]AÌW™tþ¯¨þ�ûüx�Ý•Á¡–lƒ����IEND®B`‚IMAGE 539 ./arch/monster/humanoid/Human/couriergreen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE��1!��kÿ!�νs9ï¥Z�­ÿ)ÿ19ÿRBÿZ�Þ�ïc)��÷­Rÿ1B!����ç�­��Þ�µ)�ÿ!�Ö9c1)ÿJ1ÿJ„9�”B�¥RJÿZBÿR{1��Î!ÿ)�µ�9ÿZZ)��½s1�©üþ%���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ¢×­��IDAT8ËÍÓÉrƒ0 `KònV›% YI÷÷Àz 1ôÔ™êÂáÿFÂF0ö5Äú-ßà ¥Üâ bH¹š#"à D|¦ã’€*ÅÁÔ \[ †+îÀ%�rDzj,èÚ>€&@Ž ˜njï@QÄüE[ìrÛ¸R-:LëÛV×�ï7Tú ˆ½Æ¯N[cã$å–ï( ‰¬¸_ªkU]‘¡]Q†oçóeªž:LÁ¶™ÅYò²±í²¼$:qdB²$Èi§é„+ß©íÊbƒ @YN†8®å9qÚeë 8qýšiBܤ˜§'„àý¼O¸²Ksþ#ƒßþk¼÷ì¿Õ7ÖÐr@ú����IEND®B`‚IMAGE 539 ./arch/monster/humanoid/Human/couriermagenta.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE��1!�k�Rÿ½Î�”½s9ï¥Z­�ÿ¿ÿÁÿ9ÄÿBÆÞ�›ï�¯c)�÷�µ­Rÿ·B!���ç�À­�Þ�¹µ‹ÿ�³Ö�™9c1ÿ)»ÿ1Å„9�”B�¥RÿJáÿBÐ{1�Î�‰ÿµµ�—ÿ9½Z)�½�”s1�žÏíÑ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ48¦wŽ��IDAT8ËÍÓÉrƒ0 `KònV›% YI÷÷Àz 1ôÔ™êÂáÿFÂF0ö5Äú-ßà ¥Üâ bH¹š#"à D|¦ã’€*ÅÁÔ \[ †+îÀ%�rDzj,èÚ>€&@Ž ˜njï@QÄüE[ìrÛ¸R-:LëÛV×�ï7Tú ˆ½Æ¯N[cã$å–ï( ‰¬¸_ªkU]‘¡]Q†oçóeªž:LÁ¶™ÅYò²±í²¼$:qdB²$Èi§é„+ß©íÊbƒ @YN†8®å9qÚeë 8qýšiBܤ˜§'„àý¼O¸²Ksþ#ƒßþk¼÷ì¿Õ7ÖÐr@ú����IEND®B`‚IMAGE 539 ./arch/monster/humanoid/Human/courierorange.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE��1!�k=�ÿœÎ�½s9ï¥Z­h�ÿŸÿ£ÿ¶9ÿºBÞ…�ï�c)�÷”�­Rÿ§B!���ç‹�­W�Þo�µvÿ¢�Ö„�9c1ÿ´)ÿ°1„9�”B�¥Rÿ´Jÿ°B{1�Ή�ÿ¤µ[�ÿ½9Z)�½h�s1� Šü���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ3”8¼��IDAT8ËÍÓÉrƒ0 `KònV›% YI÷÷Àz 1ôÔ™êÂáÿFÂF0ö5Äú-ßà ¥Üâ bH¹š#"à D|¦ã’€*ÅÁÔ \[ †+îÀ%�rDzj,èÚ>€&@Ž ˜njï@QÄüE[ìrÛ¸R-:LëÛV×�ï7Tú ˆ½Æ¯N[cã$å–ï( ‰¬¸_ªkU]‘¡]Q†oçóeªž:LÁ¶™ÅYò²±í²¼$:qdB²$Èi§é„+ß©íÊbƒ @YN†8®å9qÚeë 8qýšiBܤ˜§'„àý¼O¸²Ksþ#ƒßþk¼÷ì¿Õ7ÖÐr@ú����IEND®B`‚IMAGE 539 ./arch/monster/humanoid/Human/courierpurple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE��1!�=�kœÿ�νs9ï¥Zh�­Ÿÿ£ÿ¶9ÿºBÿ…�Þ�ïc)�”�÷­RŸÿB!���‹�çW�­o�Þvµ¢�ÿ„�Ö9c1´)ÿ°1ÿ„9�”B�¥R´Jÿ°Bÿ{1�‰�Τÿ[�µ½9ÿZ)�h�½s1�"Þ^®���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ93›²g"��IDAT8ËÍÓÉrƒ0 `KònV›% YI÷÷Àz 1ôÔ™êÂáÿFÂF0ö5Äú-ßà ¥Üâ bH¹š#"à D|¦ã’€*ÅÁÔ \[ †+îÀ%�rDzj,èÚ>€&@Ž ˜njï@QÄüE[ìrÛ¸R-:LëÛV×�ï7Tú ˆ½Æ¯N[cã$å–ï( ‰¬¸_ªkU]‘¡]Q†oçóeªž:LÁ¶™ÅYò²±í²¼$:qdB²$Èi§é„+ß©íÊbƒ @YN†8®å9qÚeë 8qýšiBܤ˜§'„àý¼O¸²Ksþ#ƒßþk¼÷ì¿Õ7ÖÐr@ú����IEND®B`‚IMAGE 539 ./arch/monster/humanoid/Human/courierturquoise.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE��1!��dkæÿ�¶Î½s9ï¥Z�œ­çÿèÿ9åÿBæÿ�ÈÞ�×ïc)��Þ÷­RßÿB!����Ðç�­­�ÞÞ¥µ�Ýÿ�½Ö9c1)ßÿ1çÿ„9�”B�¥RJðÿBïÿ{1��¬ÎÞÿ�µµ9ÞÿZ)��´½s1�‡­µ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ5)ÊeÑT��IDAT8ËÍÓÉrƒ0 `KònV›% YI÷÷Àz 1ôÔ™êÂáÿFÂF0ö5Äú-ßà ¥Üâ bH¹š#"à D|¦ã’€*ÅÁÔ \[ †+îÀ%�rDzj,èÚ>€&@Ž ˜njï@QÄüE[ìrÛ¸R-:LëÛV×�ï7Tú ˆ½Æ¯N[cã$å–ï( ‰¬¸_ªkU]‘¡]Q†oçóeªž:LÁ¶™ÅYò²±í²¼$:qdB²$Èi§é„+ß©íÊbƒ @YN†8®å9qÚeë 8qýšiBܤ˜§'„àý¼O¸²Ksþ#ƒßþk¼÷ì¿Õ7ÖÐr@ú����IEND®B`‚IMAGE 539 ./arch/monster/humanoid/Human/courieryellow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���PLTE��1!�dk�æÿ¶Î�½s9ï¥Zœ­�çÿèÿåÿ9æÿBÈÞ�×ï�c)�Þ÷�­RßÿB!���Ðç�­­�ÞÞ�¥µÝÿ�½Ö�9c1ßÿ)çÿ1„9�”B�¥RðÿJïÿB{1�¬Î�Þÿµµ�Þÿ9Z)�´½�s1� (¶���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ *$ç!��IDAT8ËÍÓÉrƒ0 `KònV›% YI÷÷Àz 1ôÔ™êÂáÿFÂF0ö5Äú-ßà ¥Üâ bH¹š#"à D|¦ã’€*ÅÁÔ \[ †+îÀ%�rDzj,èÚ>€&@Ž ˜njï@QÄüE[ìrÛ¸R-:LëÛV×�ï7Tú ˆ½Æ¯N[cã$å–ï( ‰¬¸_ªkU]‘¡]Q†oçóeªž:LÁ¶™ÅYò²±í²¼$:qdB²$Èi§é„+ß©íÊbƒ @YN†8®å9qÚeë 8qýšiBܤ˜§'„àý¼O¸²Ksþ#ƒßþk¼÷ì¿Õ7ÖÐr@ú����IEND®B`‚IMAGE 420 ./arch/construct/town/courthouse.x11 ‰PNG  ��� IHDR���@���@���·ì���$PLTEÿÿÿ���¡¡¡ààà@@@aaa¿¿¿ÿÿÿÿ×�ÿÿ�!!!2UÀB���tRNS�@æØf��.IDATxÚí–Án! Cc`mÿÿ«ÒÖ!Q5—õ!s@ïÉ’/#Ú@<A‹ƒ! FÀLÿ¨8£) â¦€ =M§4Tèi T Òkƒ5» 9¸[€‡Wp ²QÀÁ'ÈV W`ë ,`°€IÀÖXÀ%HÁµ‚cð|+ 8WÀí+H~¯°Y-Ö: œ®@º”Z©Ð®@º|¨Ø¯0ÓÏ*ö+Ìt ›H/Òƒ ¯Ðè}€¿VPg½BU'Êr…¢d¹B‰•G>™<¼A®àpÀË þØÀ¢�:¯Løßž¼�sü›mL|¹’4¼ÌÒ•l+¯”™W BN0òµ'nx �” o²€—ÃŒoC¾�K#ýÁèÞ����IEND®B`‚IMAGE 1364 ./arch/misc/cplate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��âPLTEb��)��B��•W+4��c��Y��m ©©©ÿÿÿ¼}6Μcþþþ���Ðý÷É–^ÌøóíííÃíçÄïéýýýÄ‘Yœc1Ê—_c��ÿÿÿÕÿüóóóÀéãÈóíb��¹„Nʘ_¶K±ÖÑÑþøäää¯yDË™`d2JJJéééz”ÂŽWšQ3ããã&.-©r>��}&g‚6kQ3ÌšaÂW²}GmR"C‚GF·zM|,¯xDêöö ¸‹XC��Í›bŠS¿} ‹Xžb46§¼±ÏÏφ•”E4!…<½[A)™N2 Z9Æ“[±rHD`B%¿çâÁêåàÿÿ'''›uL´ˆVÇ”\˘`³~HÈ“]c�Å[¸‚M»‡PH+~~~&��ªÎɃŸœµµµ-"§p<¶~/ÃW´|I‡= ®mEžf3 ÛÛÛT ¯ÕÐ~š–ÝÿÿVVVz\:ÔŸGœq3’\-°w,Ε$¨p1Ö @w¨^¼}6ÓžN¹ƒCa= c>·‚L4��È•]$+*ñÿÿÀŒUÜÿÿ°zE±†U‹7¢x8»„8¿†(Ö ?³uJŠG-j³z+Ë’%ܤ'½…+ž_'' ¬¬¬¥rHK8$��gggD,, �\F,©€QÏœV½ˆJƒ/%��A){N&“N!m'x00ÀÀÀ2�� ��ôôôÙÙÙØØØyyy2%c>‡U*- ???U??’’’3$BPN‚žš³ÙÔøøøB��}{y¾¾¾ÍÍÍoooïïïHWU­ÒÍ��úúúèè踸¸9ECº†O\om«Ïʽäß÷÷÷¶ÛÖ6B@;HF¯«¥ÈÄ"*)(.- )��¶€K†=q pM,m ©©©!„9•W+Y��NNN¥n:Q��� tRNS�����������‘¦ÿ��IDATx^Í’S$KF3³ªgñgVµ±µ´mÛ¶mÛ¶mÛ¶mÛ¸÷}³r"v¦§wcöqOÄç<~H…_f~™Ð_àµgØíø‹ïþ¤0Æøˆ5ø'ÐBØ×oßðWÇ/ Á„»]¬bÈòŒ œÞ¯<Ÿ­@! R͆šoíõXÏ10Ö7~ÒK°u-!vïž½~žœŽ-éÁ{Ÿú)Y‡²ç Ø/`9säΓœ¼ùò.hõ …‹ý?ÂÂuñ%KÅ—.S6Màp”+_T_d” P¹JU¨V½Fl­Ú©¾NÝzõ@\#‹%ªq“¦Í�š·hÙJiÓö—o×lÖ;¨q»t°uëÞìôêâû8úöë?`à ÁC†À°á#`ä¨ÑÿQ³K:Ã&‡O6}FòÌY³çÀÜyó,\´xÉÒe”ŒaLÎðU«×D¯[¿aã¦àÍ[¶nÛ¾cç®Ý”ºbL"0…*Šyß~zàà¡ÃGŽ;Î;qò”æÝž³Z€ÎW×3¥ôKô¥ËôÊÕk×¹¾ÁýM†±·½ÇeHp™éʹ{Ï`ˆq›<÷¹ć½Ñýø‰AðÔc4Ÿ1FR·øüÅK½Ói˜ô¯^3ÆÒ­ ¿yËÒ€ ØÑI’,K²$éÄà"§2o©‚$Nø ß" Ð?EV„~X…0 B¸����IEND®B`‚IMAGE 557 ./arch/ground/Stone/crater.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE�1�ŸQ,-ŠVÒic2�c�Í…?���ùqcDÙ¤þÖ�ÿÿ�ïå‹¿¿¿+§R6��¸IDATxÚ]“¶ã D!ÄèyÉÿÿí^pûzÎNjT‡Á¶Ó¤xž)ïSˆÉœñ„ÍX骸ùÎ×&u){i‘fÑùżÁ&ïì­Ùó¼s—ïì5c,Éæ„y8Å»,~–·žu’‡zºÐÖ“ÑF „{²Uê¥r ü}Ø€4–re&tàˆ7,E©ZK8ϼ\ƒuøA ‚!«Xh“tK)Sìˆï{ðw—öÓ(žt¹m“ey’nŒ"¨1Ö¯É ó„@8hÜ2žØÉñ¡.Ÿw~PrÚú½‡uÞ„‘oèJ[àC;ä[a¿N†“!Ô%sW{@^ûíkÚßîÕ)ª›îÄ£­aöσª‡ ¬ØY4º¥ðL¯Ó=ì*îÅzáþš&•‡VßF½ J* Ç«n";wgAY±Èo›KùÅÑ£Ô„þ5P…Ø#D22›‡ûm’óŵÑš0'Ü ƒŒqÍ"Ä¼â™æÄ±ÒóbuR¿a‡Bó­Ì ÁqæLÔ„ýGI,L˜qÕÁAV}ÕÍÖ(G^抷ÛüÂ–Š‰·/ 4»1©ñü¿Lä#©Ñu'c����IEND®B`‚IMAGE 189 ./arch/monster/misc/crawl/crawling_chaos.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���eIDATxÚc` 4�q;ô‹l Œ k˜dîeÛf000·m�J\ýT¡w»EË–ú?ïÿK``’æÀÀ𷨤{÷v™4 6c y7ðØ �g?3´Pe ����IEND®B`‚IMAGE 191 ./arch/monster/misc/crawl/crawling_chaos.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���gIDATxÚc` �ØŒqFÈeI```~ü�È­ôc``’9€¡oÆæ¶ @õW¿70°éÞn``Ñÿz€­þÏÆûÿ€ZôŸuÔ–�õžÞ T,âî�ê¸ ‡Ûz�ÜNóØ$ä����IEND®B`‚IMAGE 197 ./arch/monster/misc/crawl/crawling_chaos.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���mIDATxÚc`À ø€¸¹Hä}@¢ç`+�‡“~;ÀÀ(sþ� ÿæö ŒW˘tïÅô¿``¯ÿ“ÀÀ|ÿP±þs ìß ºîÝ L6@.Ç Œ'æáv�¤p0 ����IEND®B`‚IMAGE 339 ./arch/shop/crea_serp_c.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿ�^ z09´J|Åv[f/ R-¿c7Ïl>G$‚B'���¡¯äŒ���tRNS�@æØf���ÝIDATxÚÍQ‹Ä Õv£Éüÿÿ{IãÖ…µ÷r/7 -Ìð –ÿünQµ:ægŸÖ$ðdëÝâ¨H§µï t^eâ3YÞ„¢þçÇ Og²(+輓56l0E­3H’AŸÇQï@Ô Ì˜þ<kðG²>P:Ÿzœí4¼„×N¢œg«3/WªbÈ4ê;°($ô˜þÕ|^ï×Åé—|y>µŽ @K™~d@êcqù%á‰È”ôÆBz1ÊDHOúM±Ïå ÿŒë¿ñhgàz&'u����IEND®B`‚IMAGE 367 ./arch/system/creator.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V�ŠŠ-ŠV¯/_�ÿ�ÿ��ÿ������Ì�±!!��ÿܲ`v���tRNS�@æØf���öIDATxÚ­“Ñ–„ C·X þÿ{70v:ºO=G$×@þWvé@Gç}¨>Êv»i!Ì评}aÜfD¾*4ˆ5…âÓ‰%¿¸Ô ¯Àóù5µ¯¥p¤t(x`fŸçœÓl{©Q6vJ%0ÛWï�<@‘ªœ5µ‚o:#"¡qf)WI9Ÿc¢[Bé#sà€'0_8QAi‘�_„&}ä'a›¾fˆ2G¾°­W™°XIûT¥&°Ì¶¯$Utôî…Æ·G€&¥o7¦Ñv™û‘ñx(Ívî/£lãgñöï2‹Ãûø-æ/„%cãål5����IEND®B`‚IMAGE 271 ./arch/monster/humanoid/Human/crone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿïå‹¿¿¿Ïò9½���tRNS�@æØf���™IDATxÚÝÐA! CÑ!8¸©ïß¶d©Ýõ‹å#(\g?®Ž�gBÈ‚þ`<Mè@Ã!‰ˆxÅ M1“¬¤- [¢ú5L‘L€®0ÏGH+’uÈ$aYÜŒÑ*p±Ë‡Ñ'@ СPx ¨U&(¯ÏÓkÐD‚QoáJ‘y è -¬,Û&lòP÷<�±`ƒÄ'����IEND®B`‚IMAGE 237 ./arch/weapon/bow/crossbow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8!!! R-���d3‚B'¿¿¿ƒªì���tRNS�@æØf���zIDATxÚÕÐÛ € EÑ/õÿ?¸ä ùí§hV£$&ej>¢ö8TU$ú` |I@¬ ”öAÛèî9m  @ˆìœ�E\$e‘°Áì ç-�‚±Héõ†ýK|üBÎ!L°Øˆp;/u@@����IEND®B`‚IMAGE 220 ./arch/readable/crossroad.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������[H0d3 R-È©„Í…?ÿÚ®„NAS���tRNS�@æØf���rIDATxÚÕŽA 1 5$Nþÿã%¦°àPùÐSEâˈ±uù€¾À˜|ƒ5•ï“8/r^…?,?…'×q Ü ï’`P¯`Êb¨1ÈvX±­fƒfàL’û‚å Ô<Ÿ? Ô d’ú×<—1ÊÔ WÊ����IEND®B`‚IMAGE 233 ./arch/armour/helmet/crown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥Î÷µ{�΄�ÞŒ�ç”�ïœ�÷œ�ÿ¥�ÿÿ�d@úí���tRNS�@æØf���|IDATxÚåÐ]  àô›ûŸxEĉ¶Ø"ø`?¿™@)€œs‘5 Î{½}S\AÁ<ÃSÉ”ÁÁX·^�¢jGƒ© Jóˆšoà¦Òh�€pV`®$c0Ø50 Ø5˜ïð伸¶@‘ ËøÃ|�LÃPËå{����IEND®B`‚IMAGE 241 ./arch/armour/helmet/crown2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ!!!s��œ1�œc1Î1�Îc)ï��ïïïÿœcÿΜîÉkß���tRNS�@æØf���{IDATxÚíÏA 1 CÑJíÈcùþ÷m<ÐUL…îæC  G »¿@ø¶’|%€yf¥SÁµ^'µ®;@gÝ�€D\/Dã„ÒkëC2vP `'Ô¨ ŸŽc‰TGbÕ� Jûô³ÄéÀN}þ0›ï~é ¦�bÊ£@����IEND®B`‚IMAGE 229 ./arch/armour/helmet/crown_dark.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���;;;000eee666&&&+++;é����tRNS�@æØf���{IDATxÚåÐQ  ÐQ'½ÿW"Ú(½Àî}äcÀð›”Ñè9W]3á¼×Û7%ÀU!´!Ì3,•>À)”uû îq4„»¢9o€zØ®àx7`æšBR…]³€]CØþëA΀k 9�ºL€?ÌúóqÛRz����IEND®B`‚IMAGE 229 ./arch/armour/helmet/crown_gray.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���®®®ãã㦦¦ŒŒŒ•••,½���tRNS�@æØf���{IDATxÚåÐQ  ÐQ'½ÿW"Ú(½Àî}äcÀð›”Ñè9W]3á¼×Û7%ÀU!´!Ì3,•>À)”uû îq4„»¢9o€zØ®àx7`æšBR…]³€]CØþëA΀k 9�ºL€?ÌúóqÛRz����IEND®B`‚IMAGE 243 ./arch/armour/helmet/crown_r.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE¥Î÷Œ¥„!­µ½��Æ��Î��ÿkZÿ„sÃÛRð���tRNS�@æØf���€IDATxÚåÐ Å Ф›Z{ÿÿî#âf{-‚y*ÞE˜#�\ûƒ£SÓñ"WÜ�½kMÍOk®¸ñΛqË€"e™pŠ!ð>”R'¨§0š�l�;° ,ׂÚ{×kÍl‚©ªeJÿPsà}ðØA€,€æÇÆN걑k����IEND®B`‚IMAGE 232 ./arch/armour/helmet/crown_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¿¿¿ÅÅÅÊÊÊÎÎÎÒÒÒÖÖÖñññÿÿÿ¹”õ)���tRNS�@æØf���{IDATxÚåÐ]  àôÇæþ7^q¢í¶>Ø@Åo&PF ç\dÍ‚ó^oß”�WEÐG0ÏðTò�ep0Ö­€¨ÚÑ`ª‚伢温t €àÜ€˜kÉ v Ìv æû¼9o�®-Pä�è2þ00jˆí_˜…����IEND®B`‚IMAGE 388 ./arch/misc/crystalball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE ÌÌÌ™™™mmmóóó@@@µµµ333âââÿÿÿŽŽŽ"""©©©ÁÁÁÿÀÿÈUýÓ���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���óIDATxÚ½ÓÑ’… `i¨½ÿÛ‚°Ž³;çfgÿ›œá ­Ž/ùc‰…ùÀ…ò¨5ád GJµÖ—¦²¬ pÉ%D€†Û6T\õ}ßC@Ü¿©°k¼G�è½;°²‡e‚F9÷® >€žtÈšèbf&¼®|Fr Öc€ˆ*zˆH’@·¨ @Ÿ"2 ΀BL"Ñ ú“(‰Ì÷€4ŦƒF9>Ù.ý4ÆßžMÔ8jÇ Z›BÂ0°K —`o`í!¥¬3Y€µì@ø‡©nÐø¬‹uªo£)_ÿ¬ÿoå©+RÕ†±À����IEND®B`‚IMAGE 236 ./arch/weapon/club/cudgel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�aaaua/”N¡¡¡Î¿“ààà���ä 1���tRNS�@æØf���‚IDATxÚÕ1Ä0 Ã.ŠcýÿÇ'<qéV-È´L¯æì>@XUk ËR4¬Ì dáy¿ÎB—dè·¬îŽ�ýÚûFú÷c¸ËÐãØÝmì?†? ýwÔ?ƒþáÜ?ç¹? ÝÓ_8ØÊ\Ç÷›ÓÔ7üs}Ùô¡1ïñ~.ŠB¥“¸x����IEND®B`‚IMAGE 302 ./arch/wall/cwall/cwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ÄIDATxÚ•“QÃ0Cgàþ7n(ø¨£iŽ¢´â P>/y«T8[Ä+Tªó�8KõqˆßjBÖr† À=q:®·<t†‰[W ’î©€P}˜m:) fÂÀŒŒðÞ�m¯\+÷&Ô hFì0¤¾€$…Äã Ê;0¡ ŒD;¨Óð-A :ÌH]Bè ÖÞ0€•zôjÈpxÎÓàLA…,@¼IñªÿÒ§î+ÅÛ����IEND®B`‚IMAGE 311 ./arch/wall/cwall/cwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ÍIDATxÚ•’à D{w‚ÿÿÇCéb2X—15ò ô:2ç^–ºŠìÏ”Yä´ íï' nÀÚ‡Æb]o%Ñ®eqn�‹KÞÄW ã=`ú‘Áü9ƒ¹²JË­ü±r깓îÄ÷Y˜K"Ý-… P±æ36ѽ€aLý ä�0ÙAÜ- Û½H¤C×P58¢ïfäyJ¨�²‚»på?=*m�9ä+Á2…ðL¡%2€üz$uý©¿âm…N’ë����IEND®B`‚IMAGE 363 ./arch/wall/cwall/cwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf��IDATxÚSA’Ã0+ÂØÿÿñ‚�{“©/UêN>XâsÙJ\(!/C —8qcØ2A<†éçoŠ„ƃñ$HaÇõUAêÏ&ÌWcÇ•SFÇÆ!ÌÇÆXc„ë&ô±IYâp· òï.˜OתÀœ–â<º"@ýYžã)ºî�ª&Åœƒ´ÓNçσ �-�g”B(FëSK(°¶H ( ¥°Œ¥Ïé¢G K·ç0Ez„ÞrOA U`phAˆþ* -@c"2wôF®A�&\Þwœ[èø›€} —o@Œpÿl»¡_ðýK ò&ˆ����IEND®B`‚IMAGE 367 ./arch/wall/cwall/cwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf��IDATxÚ•“áà ƒ}ÿ7^Rº 7ÿ,vÛÝüH¯×VLÓŠTÙØ€k{¥H¸ÍЖ¤ß_‡“â èï[•è@À´‚f¿€Nö¤æ¯C *ÞnÀl ÷Ae—P›ß†:Ðç0ÆX£rš·I hÀ4”»`9Ÿàn6g¤‹O̹Tŭ诧žÀh¥2õ9(¢ý> VZˆ$ºv€‰'A�1&`ò¿Œ A(3J€›áIX±d¿»•Ãk€ìõõÁ&ðmaí„¡)½-ì]„#;PU&ô.Â0•Ý3ªÚcàN–­ã[eå®3`ï-\GBˆZPêYûPÿé£Í [ç;Má����IEND®B`‚IMAGE 303 ./arch/wall/cwall/cwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ÅIDATxÚ…‘Ar1Ck`þÿãˆÛB-s°]ê’dÏÏÇäÌ6ù9l©§×Hzzsès2è/)ï·†É?q£ï@ê‹CÖí0ºæ–8mê~ë*t¾ä�EÜÿÂTåL|ñ>Ï¡«@"ìM(Ù¨Â-- �ï“•Ä ´¿ Ö�h‡EõØJ¸_\¥I(ŽAL€®¼tu€�/{Ð +À›œ& èp¤Ðí0M—¿+J2~:Z����IEND®B`‚IMAGE 188 ./arch/wall/cwall/cwall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���XIDATx^•± €@ F°n÷À+û¯„DÀMø”ÑéìdÜSÀ¹íã™2z-&BøCJ‡Ã¡L!RþôÀáPçÀAô=Äćú[ÖS’è¿n­;š^¡]*ñ¶ñ����IEND®B`‚IMAGE 365 ./arch/wall/cwall/cwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf��IDATxÚu’Q’…0w†�÷¿ñB<S”hém¨£´j6ºíUH¶· ï€2K˜ý]ML@Á<”¦ Ì •‘@Ö�ª_�¢®¾\†‚/À.CÁW_jK0€^èìzîË×{£\oÒáÀñû)(à !Í´ I.ø  ÄOu舞€¡@¸ Q> ëž@ PE5ôyú/€ —Ú6„`'à�ÛŸ ¶ ž ™ñ P–aëóÒ€\mÀ{ 5¡p «Î!•`mè-�QR ·è�z�òN-ë/aÏ0~W22L ¥QÚ0ˆ@öˆ<†‰åk†žÔ8 ÿç d\a>����IEND®B`‚IMAGE 372 ./arch/wall/cwall/cwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf�� IDATxÚm“ à Cg§÷¿ñ0釨 H“àñLØö{JIU]« oªDÁ”·\þ| ºô xyU# ÐCL½ßP< ®܆0kÍPp² îU]‚¤®†:ÐÞaÎcûC&£½äÀ�Äó]X`ÃAfª &Œ `Ì1O]û€#ö0‚â™pôDÒÔ{Ž'€LÎ5¥c%àìwB.Ãp‚3¶€ ± Öo]ÈÇn—{Ê`¸ GÍ;"*!/CïB¢¢ @ëB�Çâ4Üõ<H° ¯Ÿ<é„\à'À!&c3tB¤|žÍБuþmèÿ—áþI 욣Ï����IEND®B`‚IMAGE 348 ./arch/wall/cwall/cwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���òIDATxÚ…“ŽÃ CÏ!ÿÿÇ«Ýf*eս˜+ÆÐþý$OöB—ëäE’* ­/‚¤ÐŸ—ºiÅ.HPOræ!ÈJ^ °ñíÐ.OijŠ­Cn8%Ó)Æ¥¡)r>Î( Oýf<Nrt S9‰õ.Žu@C‚ çÌH€öªÕð˜t}Ýd%#7iA;xÑb@¹¾¦¨ä$. lq3P;°àz§ðôH\ý*àn�Äb ÚÀ&Ъm äA´|Ë}$7A~‰�èf>£œ$H7{yß¹ÜÂO—[ØHI!·úûWý?"ä ¿Áá����IEND®B`‚IMAGE 347 ./arch/wall/cwall/cwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ñIDATxÚ•’Q’à C#9Â÷¿ñ® 1tÝŸ´‰_e rmiÐKKW—F¸œKR‚C.Yþí-}üxªˆô’Í ¥ø`+¢N€µ tDwè3¤è:U)îûNoKßÎHo+í$íðþ?5ˆ~™y#ý r -áp4`Ðóü~Xõ=dŠÄ4Y€Ìí b�¸¬úN‘â žì)ûÏLT½RÌ H<ò�ð6�¢7Ø)ļÊ`§Ðˆ {„J!¬öûh* ½êŒÚûJé1¡Kl·Ð�ž·Ð%#Ž ª7déú¯~�™< RT-Ø����IEND®B`‚IMAGE 213 ./arch/wall/cwall/cwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà���¿¿¿Ìh���tRNS�@æØf���qIDATxÚÝ‘Q À CÓ9ïåi(Âhý6ÆH'{kîÐÛÑñÔ Ìbõ=Œ¥IOîÝä¤Ã27ª÷·1Gl/YæŠÐOô4â‰NçÄÖÖ¼OaÍÿOax›ÂÁ¬tÀÀYé!ÌJÇÁï¾BH %T2J����IEND®B`‚IMAGE 374 ./arch/wall/cwall/cwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf�� IDATxÚ•’Y’Ä C-9Â÷¿ñ´ EB%?ó —ÂF!q£AMâFz¹&%‡¼düû®ÐÑèÛ`¹9‡A ‡\LS>(q9l0›Ì]a,¸GæY¡ÍÁ§ã¬ÐæÐA§Éþk⺮ò4:ŸCë”§)åñ$[w…µ¿4ˆÇ]Ì•¨ª åïR’chÍ•À£“îûûv‹šSÌ$z›s.9,ôô r�¸€¢–\;E‰ƒXŠZòNQrýîÀeñ™¢O@bu(w8R”äÝÀâ™BôùV„ÒO=Shd’;‚ËŸ)„™À»v 5™�{H=Ùï+AàâŠ7âãâÛÀ} ñ…lqwýF“ø/=" w¾,¢Î����IEND®B`‚IMAGE 352 ./arch/wall/cwall/cwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���öIDATxÚu‘’Ä C/¡èÿÿñDÝ]¦Ñi;C|û×äK½°ËséÅâ*Iz¿œ’>^ê©í赜ÃËà_Š€r®ÌáÓÀ³dèâ®Nè=Buú™âyž©-éX»`jKӭߤu~ú ú¿ˆïSÏ�cø¶4ìÖ¿›œN3"Øš—Ç „ÜêÀàÚéàN€Áô9!è�ñ•0D¨ú"; ç"\v�`¿„À( f`+a4B%€XöKð”À�Ñ!d‚ŒWï¡d$È`Eèæ]Z#œVÈlñöÐ-yþº²ÅFø† k/�����IEND®B`‚IMAGE 355 ./arch/wall/cwall/cwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ùIDATxÚm“ ƒ0 Cg'÷¿ñæRºBp+ÈÃNø|þRÒK§>]Êp¹NI¦\²|î-½¾<´ˆôSÐM%Nbø+b9ì�×2иݡ÷P¢ëÔšâ8Žò¶ôö€ò¶JÑŸ¤æý¥$ú»¨ªåc)ÈLÂ` `ðg¶×÷&KŒ Jò¼\€Æv‘€†\¿OQbrp"và˜²¿Ò®ß¦€h‡À�„GàÓáJ`U6‡š#Ä™Ía&€8âé ¡€õb:ôïõüJØ{˜é„à+@OÂè“é·):’ŒÞÃó÷o_Á¤ Û­4X£����IEND®B`‚IMAGE 381 ./arch/wall/cwall/cwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf��IDATxÚu’ƒ Cijèÿÿñ*(çˆÞܵáшí#–ÚAd”ª%éy0’þúC'ƒ]Dçmঠn‡ R³Gî‹P›a]î¡Ì /ÇN(ó>C¥4ÅœÚu]¡[bßÞCDÖ›Yè–‚¾½ÉP= s}°Ãž³@„ȧ…~�ôÎ’±:Í^À‘«f¿:ÏA¸#}T^0ªÜÄ·&ðnFœ¼Ë±RÑ1|ƒÀ¨òJ_;ôAíðJ1&�̈"dqK̦+&ÁöÙP}®-»×}ö4XmàE˜áæq»›!Að›°Ô†’\_ æ ŸÏ:\„¿( ü@h$0FÄ"|-cý ?„óÜ ŸLR®¯����IEND®B`‚IMAGE 386 ./arch/wall/cwall/cwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf��IDATxÚmS„ ceÿÿñ­ì@A ‰IWºU´Ý`‡ í vW9 ::Uô|; !ð[ z _´(3½!ˆ¿B¡Ù ÷åP‘Ͱ–ûæPↇbw(ñ9C²ªƒ3P»®+´îï!"ùfÚBз7âÓažvØ}2CäÓĤÀÞY0V¥Ù£yjÖ«r„;RGå£è&Ÿ±5w3Òà䟎•"ˆŽ¡#L‚¢WŠ üÕ¡‡P‡GŠ1`F”C’[Š`]0lO‘ìËáÚR°{uèÓáH‘¤U/‡n^·»"þwXXßk}%˜3´„nA—ç�JŸ'H`Œˆåð–Œó§Ãùû¿~Ÿ  ,AÑ����IEND®B`‚IMAGE 497 ./arch/wall/cwall/cwall_beigemarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEle M[µ­•º£ÎƯ]L‚zc©™g›”|ƒsAžŒ\pdC°¤„¶¦tlZ*¼°—‹jvf4ÛÔ¼©¡‰¼³–®¥‰É½È¿¢‰}]{rV£—v’€P…sC¢™}¸¦v¬šjÕ̰•Œpųƒ9)py���tRNS�@æØf��3IDATx^•ÓGrÄ Pu”Ãäq¾ÿÝÈ^´ðWiÕ¯>¢@MUËib‚ä {ƒ“ñ�(´DäÂêsSÕβxkÀП±]4h9w@¸ =Lì4Zù÷͹h¬4þ6¼×tñ1rá »– nq9vîç)R®Ë™º,7â<ªŸ…-)¥Åh?áDHð|ÈºŠ¿TηRË>fa¢ X�ÓÂÌ+³”óHD.°¯ ôw ]¤m#t!+ —óÍ"öy)Àë|fÞ¦aa¦¢ ±Ï¹½õ=úBÐÌ/)=�Ä�•›òD@/Ãe•*H ½ù«Ÿ„É·XD�l[9Xê÷]öSø¸äS¨"Yû€gª‚ÆÌÉ1hwüÛvݨÚü7ßÿ•ûY™±x����IEND®B`‚IMAGE 490 ./arch/wall/cwall/cwall_bluemarblemedium.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEsty��_55[CCsPP‰pp¯ŽŽÄ���.¨¨×UUœ��^^¡bbžgg§>>kzzÃ((EÅÅì88‡��=BBoQQ‡âcc§TTŒ))LKK‡22T||¸““Ï11n­­èuuÄ!!8cJ@Ä���tRNS�@æØf��/IDATx^•Ó7vÄ0 P!3(kó:ßÿeW&UxôTÍ`²«`%ÝAÌbä’bÌqŸàät�@DtaíÞ� [o§0õï4l¡î î!¹Ž«~q€.k¿^Û`ó lèÂA¾Õ ,a%v›«>,#ØJ˜ç\íTªö.lK)]0û U H’ç…ûžýǺ_‚HJyMLˆ °‰¦ˆz"®û€ˆ.⺟À˜ÿ€pYP]pLõ€éáQUÇrWàe:-óºÆ¸®3Ö{üš†Ç8ª×U"T`zOé"ªºªFiÜ”§Šúð¸^{n‚”T%~Œ3bîªÀ&¢ÃÀ÷;qû¾ƒà¾…ÏkÙB "s?F=ãÁ›3'WÕùøÙæ|èþ›o>¨Z¥ Ûl����IEND®B`‚IMAGE 497 ./arch/wall/cwall/cwall_cyanmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTE���[vpŠ'’¬†Úõ¨üÿÆÿÿ�� �RlG›¶E°Ê�*EMËæfÑë�1Kkéÿ ‹¦Ÿçÿÿh¼×� xçÿŒÿÿ–ÿÿVÅà�Fa+©Ä�j…�o8§Â†¡·ÿÿoîÿ0¯ÁNÍß�N`Ïg°���tRNS�@æØf��3IDATx^•ÓGrÄ Pu”Ãäq¾ÿÝÈ^´ðWiÕ¯>¢@M3Èi’æPM{ƒ“í�ÎÌìês0³²øÜj�ÉŸm,Y9wÀ´ ;Ââ-Bù·Õ»˜ ¡,þ6|Ôlðvá ½” ®q9poç!r®PÈQÛ –<ªŸ !„;Ç?‘D ø¼ë²¨¿\Î׈Â,>æ  "‹ˆ–óÈÌ.R¿¯ üw mäuer¡ «”ÓÃ3uy-ÀËtYǾO©ïÇ¢ ×i~tù˜a²L_!Ü‘ˆz¢„•›ò$$/OýyÑ*¼ù½UØ·XÄDšg=Dë÷Ý÷Sx;çS¨fV]ºDW®‚ÀÉ™(Y{üÛ¶ífÖü7ß¡{ ÂË ºÊ����IEND®B`‚IMAGE 439 ./arch/wall/cwall/cwall_cyanmarbledark.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���WPLTE�����k{O’ž‡µ½�,T���pŠ�!:�ºÇ�4ÅÛß�s†� ­�H\�3���@Z�� OÑ×�‡•�[oE­·�š�Wj� '¥ØÜ�4M�ÈÎZž���tRNS�@æØf��IDATx^•ÓÇŽÃ0 Ð «äš¾õÿ¿s)'7J‡çy � <¥à•Ó €»´ D- �l"¢ôGšø@€MãÃx@úCÀÄa ’�¶�bÒ(ï Ÿý h"�ž”­¢Ï5õ(ÔFZD:�WâVõß-*¯pÅ`ç‹Ì³ÄO¹ßŠ0qÔ,LÔ0˜yf–Ü" áõ8¡ ¶4„Ì$œûý‚HU—v‚$ð³?˜·µV÷ZWÊÏôµO×eѨÕÕ<ƒÀÅTµªº!ïÂYMc¸×Û,]�¨šÿ.ëûŽ20Ói’û £ã¾oÄý…!"‘yq}Ð`繩:RŸ¶úŸùÿA fèq����IEND®B`‚IMAGE 405 ./arch/wall/cwall/cwall_graymarble.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�L ùÀƒ��NIDAT8ËuÓ=j$1àw E›&Û·YÔ㇃Ɣ9h:5T2‰o0PÁ^B°×ÐåôŒ·Ý?}©J…·m`‰ïån»5IÒ“l�¤�„�ŸHâ@Zn@Bq`Ži@Û@`,âáŽí�2mŠ'|Ÿ€!CitÞ÷ å´’x¿m뀚˜¡G%¤0\h€tÜ µÖ‘)=ºi;¼úë¨R¤RøÜÿÈɽÖɤb2ò� u0³b&n? ÉÁ£õ"•rrfx4ʸzÜ’¯—ÄLFÄ\ÌžŸe~__Ìò­÷Öz¿q]ß%ÿºN—yŽÖz´ð¶×?µŽ=¢ù/ù5<Zï­ß‹A­ÞþÍ·uÖ`piÒ8šÖOXÕÁ©R¤ûÿ.ü$¥2·xá!xHÞ#¶³v6ÕgÓ½‹/õk¿Bïš����IEND®B`‚IMAGE 457 ./arch/wall/cwall/cwall_greenmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���`PLTEcte7(F(O}Odžd���w¼w*<_<ŒÜŒ/S/(?(BnB8b8(D(BqBO†O-\\)E)>h>2T24X44Y45IzIc¥c#uÂu!7!T‹T˜øAÑ���tRNS�@æØf��IDATx^•ÓG’„0 ÐQt&tž|ÿ[ŽÜôNöb>Åê¿‚ÂBo.rä(Fµjé™)E¥§“ j�`B&ý3]|ÊÛ%­Šz €1h†$v}4�&O@x=á—†@jì_& ÈÕƒÃ!,rÝ]ŸDåu’PO€½ÏBjJé!Èt P¢Û£,K±|QJ ­Æ‚�P‰SEıø>�€ ÍÏ7 AŒÀ&Ê}¿žL�0óÖßPx_/ˆqÏY5çü˜¾ÖvÚ6¶š•I=X씈™3³ÒàO¹1±æ¬ù¼”!H‰™ô{Û3ò qkå~ÇÉBÁs gÀñÂ�€MaS¾Àdç:93«¸Þmõ?óÄ [“Ö+(����IEND®B`‚IMAGE 497 ./arch/wall/cwall/cwall_greenmarblemedium.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTE����@�S‡Su©u{¿{“Ç“á��]¡]H»ÿ»�%�‡Æ‡<€<G†G¥ä¥´è´pµpÜÿÜ5i5�6�&e&��~¶~R—RÆÿƜԜe¤e\”\ÑÿÑ1v1U’×’°õ°½õ½>v>Ú9���tRNS�@æØf��3IDATx^•ÓGrÄ Pu”Ãäq¾ÿÝÈ^´ðWiÕ¯>¢@M�Ëib–’äI{ƒ“í��ψèÂês€Ö²øØjÀˆÕŸmî!A9w€º 8„ä†!ZùçÕº˜•­ þ6¼× ÷1tá ½— ®q9vÏç!b®ËÛô'¤<ªŸ…õ!„Æh?¡D|}È4‰¿XÎ×ÈÂL>&!Ä èYCOD‘”óˆˆ.Ò²¯ øw mÄuEu! •ÃÉ¢ªvy)À×ð$ZÇeIiYÆ¢ ±·a>uúX“r‚ ¯!<XUÕÄ•›rUV/OËm’*A½ù¥…зXzfg¹\Hê÷÷Sø¼åS¨D™º¤O¬‚ÆÌÉM5A{üÛ¶íÐü7ßaïÞë­Ù����IEND®B`‚IMAGE 490 ./arch/wall/cwall/cwall_magentamarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEpGGy�yZZk#k¼u¼Î”άY¬$ $Þ°Þ����ªAª­P­66ÅMÅ[�[~*~ïÎï›;›p'pš=šã[ãRR‹3‹™2™f!f*´;´ÖxÖ33ììNN„(„ÃeÃ:RîU���tRNS�@æØf��/IDATx^•ÓGv„0P:*‘™<Î÷?¤[Ø+·X¸x¬ê¿ÒBй æšî 9§Ä5$3§}ÁÈ|�P�0‘Û}FÄ’«x[ “¨=ó°aBß�Ý2# »~4�&•Ü¾Ú ¸Ù‚M˜0PîÄ1î¢&ß'ׇ6a¢†y*lW Zµï"o!„ĘBD r¾ñ²°½àû1Š„0ÕÄÐ�›h؈h!bßG�0‘Öý†ò”ãj‚`ò§« �Uíë ìÀÇéA4NëšÒºNàïñí4\û^­Ö¤’ÐÓg7QÕU5 vœUÔÆÓzY¸ BP[~ï'&€Ò¹à&¢ÃÀÏ'qû{Gý^.õZ��˜—>éþ¹l䢚°ÿ¶¥ÌˆÝó ¨{L± pÄ����IEND®B`‚IMAGE 439 ./arch/wall/cwall/cwall_marble.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�L ùÀƒ��pIDAT8u’±nƒ@ †ó€H~FžÀCG/‘²8“uÊP©:ô¤J£—lÕí½à ꃒŒ�ü¶ÿó¡X€¤˜_«´ˆs1ÅŒ¬�‰Ñ †”;�P­ªö @ú �(‰ø,·� Äv•u2ÀJ‹òHÀ.4Càejb œº¤`DÍ$[ÀøWRxßV€ªKS¨àOøÎODòá§?­|�ôš$¢LNö˜ÕYÃhòæYH…ˆWõ^¦à éxÃíÖ9ÿ�¤óDˆu°tˆÁºÌŠ«ÂBÔõˆ·ÑŒpÍX!*®€4b—ÎÉÅA­ÂCàËÙUfnS…˜_—[]ß4Î5M¿˜K}n[¶4;¦i^K¼™KdfG‹ü SV ¹q@dSþnûä�×u´]ˆËž>�éx ¿÷ç)¼f¤YØ:¾é&` mÈÝF€—– #Öi P{ÀNü*2Ý@õJ^����IEND®B`‚IMAGE 1178 ./arch/wall/cwall/cwall_mural_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‹PLTE>98><?QJDULAc^LyjO‹nQÒ½€GEIFHEOF<NHBVG>E94?55SN=SNMePH]TI^UJaVFfWM[^PgZEF<=c`SfcEs`LidRgfMliKtdZJ?@~iPumVynLypS€qUDD=x[ŠwP–wTˆ‚^‚Y›~w ’i¥­q¿¢v´ªx±³w»´tЮv¹»á¬yNB>LJÌÀ‡ÏȇÙËŒ×ÏŽsvVd]FKIMq~O…vZh]Ml^Cƒ|RŠyX_LIŽ{U™uZy†WŽ|[~†^]OEi`U…g—ƒ\Q><£ƒ_˜‹b§…\¶‡bL@<š—d¬d¦‘|—i«¢p ¢Ÿº¢nTIJ¬©v\WESLF¸¨xqnOfUG„dTND4widÕ´{½‚É»|з‚Û³|IDCÄĆc_QOBÏÆkXEÎÍŠ×Ê‘ÔÍŒxncÏÑ”„mNÖЕâÓ“Ž‚qˆaMwjT‚ˆ~dYHŒŒ`£}s¨€Y’†u€“b]^J…eŠwš‹\ulPPB9™‹tŽ”e•l®‡eœ“c»‚l]P<™”nVJEd[PbP=–j•›lÇtpL±l¢j™¢f¤Ÿf•§o^QMnM´žpª¥l^SCh_CVL<\fE¸¦qVDAˆkecU;Ƨu²²qD?>½¯qµ²~Ϩxn^Uðz¾³z½³€��rXYXPJC=mfO‡|Y}~jštS¿Á„Æ¿~Ô¹~᳄ÊÁzreO:11shFYMH}`ZÓņƒƒWáÂ’yl~€}sgWmj]Ü̇„cM‚_ÿÖ�œ|YãÍÝÓŒÖÖ’†VÝÖ”âÕ›ØÞ™äߣðÁ6«���tRNS�@æØf��½IDAT8Oc``3ÀE�0DÄÈGvÃy€a½�£@}åéøx‰ƒ|‚Ì‹EÚuçŸ5“ØvXPÚUÁ[ø�ƒ¨'‡N£Î¦l ÿ¾aiÇsú=É<Ì1LfBòJJ yŒ|©áÓr]¸›}e¸“ªƒŒ#D—)ð†02 9Jʰ0ðdó1Úí /ÑY.—§Æ;Y1`]Zp•?oŠ—H-«"ƒ''óê­’J­òLfIÞ‚¬ª¦ûv%³îp)“>¡¨Î ÂÆ¥¦æ#9—™©ca´ªCP–©»¦'«†¶œ›* ƒ(“†¶Ó fAá‰\¶WB£ÙÙ7\Ð[$%k›R Î 4IœE\¥·UñTçRC=KË‹E 3Ø\TùÅe”4´|ýTjĤ䤔§Xì641·°²fg×wg P?$«>ÏÁÀÂ`‚M×Ì&%6[ì§ê­1/Ì_ «©ÉZ¦Ì6].‘¡´ôªyÎõË…Özs¼¼f‡vÇF¦[—gÍÜ«ëW眸]–áF…µUÑ5«=å9³Våï7Š]»iÃFË3—Š-Vji“âç'Y£{X�� Tõuÿ©U����IEND®B`‚IMAGE 1134 ./arch/wall/cwall/cwall_mural_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��dPLTE315<;4F?9KFEVMB]XFC<6C=GH@ENF;KH<@;:><@IHAA;EC;@B=<H<7=5:721E@?<6@ECFJC=GG?JDN6:G5369277/4NGASFBIJRRKEXKF56>NQC[LCYN>;65]WPiYPg\Ld_M`aNh^Ss_Fs`LniW@?8GHPC@4>?G<:=I>?:4>piQ€gT ¢Ÿ]NEgZ78@`OAQD@G:@=>FMF@HHQPFFJHLLHG843;?LRI?I@6TK@QOBRMLE=B3.7F>C?BOZLBWLLcL@869bNF]PLUTM`T?[VD\SY`UEE@J9=JfWMfYDc\EFBAA<;i\G:11MCCl\SkcFjcLEFN?55E;<LDIvnWWPJÿÖ�_PG203]RB\SH86:cPM4/.IAFPH=fT@CCLHCBPHM|iU^IBjKGKX…nOrVsx]‡s_BA:\F:@@IuUV4,1UF=��QC:99AB78fgTTI:tgQ=/6jSFdWBcXH]\CA?BbYNPB9\]JkVNND4][^rUJKD>MD9ICMc`Cn[GWI@KCH93=k[Rm\M:54?=ABFSF68laP>9Bu]PB@DA:5jiP~bE~`U?=1EB6C;1OPXKA2YPE61:MH7WRA]P<WOTOEEŠwQ“tQ’tW†{X†|p~€}—}Y„‘…ABJ72;ZHŠŠ���tRNS�@æØf��¸IDATx^ÝÑÖ&Q�à[ÆoÛ¶Ù¶mÛ6ǶmÛ¶ýRó]ûþ²Ì&ç¬û€$üµv�CŸdÞ0É�øJÞÒ¡&ú5T\0b³XwMjFèèjþ™*•JàÄ®ÈèÁRmv·ø©NÛØÍ®+ÿ‚ì1òˆÝm±Â¿YAàÆŠò— ²±E7Òå=£{GºLÞ¡¨<öhER:·n^ -ˆDxŸàÀ2Þ7"Ã3øuÓBÁµÄkkožÇßSQœ!3h{›Jj;<cI㦽çqdžÃú-ÀêómܤÅQëÇ#ÍÎOìHµä–±ÄdÅ- q5ë~ð>wÞ–A\Ÿ(¸G°«Ö9÷ÂbME¥Z¥Šp‰*=øv=}à‡S]ÔŠZªë§üÛŸÛ¤RöÍEÅ“¼`N øºÍ›h< 7rîè,”9îrÎ÷e’ý•©¾ð øýãÖÕUÚ ½Úw‰ÂNP³EŠðUs÷N—‡ezpÔlvþãW/ë^4<ô§ÔÛü‰ ÒššÜÏ-Ao§õœë§Þ)Oq¸O ¡ç†‰3œl$Ÿä†Œg1ß½.üÉ¥ä|V»}3����IEND®B`‚IMAGE 873 ./arch/wall/cwall/cwall_mural_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ŒPLTE99A?<K?BODAOHBLMGQKLTRLVDEMNBMHETKEOGHP>ANIIRHKYHLYFAJIMZOL[H<HPQYUOY@AIJDND?ID<ARCJC=GHHQEIV??HBCKFJWKHWQHNIAF<=E;<DOJTICM]FJWIPJN[TKPKCHMNVFDRNOWUMR[NJBFSEFNRR[ZRWbWXwca ¢ŸABJGJX@@IIGKUGNSMWQOR@:DXMMOPXTNXRIOE=B:>K`LTXPUCDL\P\;?L[SXUU^WUY^STdSU^U[cT[YHKlYVg\\p_aFDGwllwxLDIYMXNLOWOTAERVPZ��OGLYQV`OQ>?GKIMFGOCAEMEJF>CSHIDHU[V`ZX\=>FhTR`W]MKOcXXaX^mUZ^\_<9GLFPa^bfa`XLWz`_MJYVNSwrqECQ~€}JHLÿÖ�Ï*„•���tRNS�@æØf��‹IDATx^ÝÑÃÖ]Qàí}h\Û¶~Û6bÛ6^<É äÌï׃Ô¤Ö*0nú�#`ôóÿ|ò‘‡ß>�„˜cG‚Žã4¾â†ø÷9ð=„Ò¿àÚp� Û6JÓT¯—Þ´¹e§øuD)¡z}ùÍé§ï ©bîI”ƒÜ¤"åW°l¢Ž¥ìO_=0°ªò™„NÑ4Í"ᡤ:ÿœ$’gG™Çôá=0©k©o\£ˆ—šö¬·äu뛇œVOú¯/û/R¤<RëD®î&cL–*Bá|fª·_ΔÊùl ™öÞD(D'Ì_¤˜ŸåÖzîìjö¨½ІÃàF_¼Í•‚&7·kÔãé§ß­zësfPÁ`U¶ä"ƺª3V`ĶÛ'_Jbf޶ÂСQ檻s¿̯ ¹ª’µRäÑ‹ÚÝìü%Øé¹ìG\*iWb§“KøêòÛ½iµ€–zb¡ ¡Æ…N×H P°äH®ÜâSÓ5â;–ÿÜcáâù)R^å����IEND®B`‚IMAGE 1098 ./arch/wall/cwall/cwall_mural_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��FPLTE3,1@:D@>BHBLHHQPHMOMQugb€pfKLTZRWbQSH@EFAJIAFCDL><@A<EOAG;<DLDIQBIMEJNGALFPC=GQFGSELIIRKIMGEIF>CQLVTLQWLLRPTSRKbOM>9CLBBfQJeW^jWT\^[iXZc\Vf[[K=Dqjc~fYdd}g_ABJvwc‹nh³­†uW]t\`[QQGHPciL?;^SS ¢ŸÕ½ŽQMKYLGlWOUMRZKRTONXNNRKE??Hm\^JHLmdYle^rh]JDNbYNPKUpX\rXWv]KICMŒkl~v^I?@]XWSJ@‚gªt{•‡p¦€v—o—”t©œx¯ v›hu´¦{¿¢v¶©„SIIƒ€aÊΗÿÖ�áÛŸx^]VMBohb~`fOGLtiXxgXF<<wg^€c]^UJECGƒeZspc`LD~{mYOO[NJ±À±‡…b^]VPfRPdSU^WQ:4>fi…m_mp}tW`YSjadWS…ogMHR€tcŽn]sOWiXJ88@\KMOEEpUO‹}f~€}Š~m—zb˜ym–€f“‚fЇg‘ƒl`]Q¡n@8=WGIª}OB>��ªŒs›¡r«™vh[V»™uk[R½˜e^Xºœ‚]NEOJT¨«‰­¬~­ª‰B@DBCKtZZZSMÒ¬{½µˆµºŠÂ¸…q^[^QMnbREFNìÝœëð Æ���tRNS�@æØf��²IDATx^ÝÑÖQ�àÛÖoÛ¶­±mÛvlÛ¶m;o–7Hïç«emꜛÃ# Ïä¯ü?€¥Ï³o˜fÐSM4E¹Ý„HöŽ,ò tµÔß ¬:xž(ª\†¦6J¡íŠy|>¦÷ÁËþ“L.ìif½$ø"Ì[Dý¡±Š”ÈI|»AZ­áàñö–};'¶¶Â_€NÙ¸ˆR*ɶ9J†vž¹ „öl)¬Ø³Ý�Wh4<œz‹¹RÖûõ}?F …ÇäÏêäg—i‡©ø˜ |븘¾T"S=»Ü7°{ìùÝ7L³œã?ë‘»2@/>RÚÇîX&WëoŽ}½¶÷DewgÖoŸ“µ:‚âæ4ÊÓj¦pèzàÀöwã£CdÝ«¥ÆÚF‹T5µ5|>*”H°ý±Ù¼|k :¾JzÏýîè˜ÊO2XøQϵ‰á‹k™„^u¡üÎ@Ýé£ÑhÏ­ÁžÉ'�E Äl„4Ñžp–‹jróî®ÚÛO?ħ¾Ïü &nKCÔbv–™T<]ç¯#>Âè=>?ÅzûÝ›Â?5nßÖ°G����IEND®B`‚IMAGE 415 ./arch/wall/cwall/cwall_mural_end_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTEbl ýÖ�¿¿¿¡¡¡àààC==NCCKGCUJBTMD]NGTRMWTI[RK]VMdWSaYQdYMcYPc[OkXOlXXe\WkcSqdXgZƒcgsX|va}}a„`d…„l‹†e¡q™‘o¡sE?>ºœ„±£x®«°©Šµ©‡±­…®³„·º‹K?CËÍ•ËÍ–LC@ãÛ ìÝ MCA���*���tRNS�@æØf���¨IDATxÚÝQE1 sÚ.333óþÿiÛ)+µ÷q@顎­ ø��ôܰå°c¡â4ÿ]E"UœZô¸¨ ßCí”ÑQZÈn‹2xd·y8>fw[©Xï‚ù˜=ÙJgmÇçØ-º} 9Hñ<P«ß,— Åó“½ñh !žZ,׳É’˜-Ï÷ëë Iì,¬v§ýáò·` ÂçN~¡#�¢ù•R����IEND®B`‚IMAGE 421 ./arch/wall/cwall/cwall_mural_end_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTEbl ýÖ�¿¿¿¡¡¡ààà<89C><CAAMA<HDCHDDHDGOC?IGCHGHIGFJIKTG=THASJJUNK[OFZSK[SIdZLe[GhXPeZQp_El_Sn^Vte\kj]tkc‹nQ‰uP‡aq–ƒ_œ}x’…w£}u–‹h¨}>99±«yÊÁˆ@99ÒЕ?<>ØÖ—ãߣ???���Ñ`þH���tRNS�@æØf���®IDATx^ÝQ×Ä s ½½÷Þ{ïÿÿ´\„@TÇ{]LjT˜X ø��äêÿ‡Àž‘‚pT&­wó°™‘HHK¹0¨e‹»=%žWD·?æ'BDRXªJüí\N¾@ãj¡!ã©•©ÓRnAìÉîÌ_ÃúhIÆS+“Stz};‚Ÿb}ÜÚü—«ÁOq’cÌÎfÁ‹\cÞ™&ˆ\cÞ™fø¹S/$p#xR8Ç����IEND®B`‚IMAGE 497 ./arch/wall/cwall/cwall_pinkmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEle |%%|YYž{{û¤¤ÿÆÆ���ÿää¼™™^;;¼ee>špiߦ¦��ݺºýÄÄŸff݆†ÿÿÿ=Ü››½„„ÿÛÛ~EEÿåå]þ½½|RK\\¼’‹ÿüü¾}}[1*Ú°©ûÑÊ¢z¹���tRNS�@æØf��3IDATx^•Ó×v… P§örûMÿÿÌ`òð!ÇåÓìuPÁ¦ˆ*ä4Ár˜…½ÁÉp�;fvõ9¨j Y|5�‚ä×Ðm´œ;`Ú…aqƒš |ˆûâ€]t„Pš~^ë ºyƒ»pÐ^J–´‹¸L÷¿ó˜8Wä˜Mm¶+KÕ÷¶ã™S‚ŸHF|žm]Ío.çKBŒ±‹ slHq‘UÄÊybfaÜW0nÿ€6ñ²0¹°•MÊ‚ùê‚™ˆú¼‚à}>‰,Ó8†0ŽSQÐÀËÜ]ûž|L0hæÏHD#QÀÊIy’—‡ñ¶ZÄHÞüÕO&ÌmSD7Dê:{<Äêç]‘÷]x»å]¨f6[û@'®‚ÀÉ(h{üÛ¶í Úü7ßõ úUõ¯w����IEND®B`‚IMAGE 203 ./arch/wall/cwall/cwall_w_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷BBBccc{{{¥¥¥���#hƒê���tRNS�@æØf���gIDATx^•Á „0 ÓŠK˜=Q�WNBÿ­ ñ@°y@ü´V3k—shÿ­\“]·E%,!â‘HäŒ0†Ü‚Y¾ô Œ!c¤3°M,y_ìüZ_ZcTÒ®•¦oñÄhï_Í3&š 7¼o¹CŠ����IEND®B`‚IMAGE 215 ./arch/wall/cwall/cwall_w_0.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷BBBccc{{{¥¥¥���#hƒê���tRNS�@æØf���sIDATx^•Á …0 C³x[t`€ŸöwÿU8@¥>FOÏI슓,ÛÏî8È¿šA&!¢#œŠ‡b CË—=ˆàPp8YkG€eoˆ¢”ÖdO*—r¸µµié™^ûÉÇ· "¿ˆñסyÇĦ'“Á7Z\9 ����IEND®B`‚IMAGE 219 ./arch/wall/cwall/cwall_w_0.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷BBBccc{{{¥¥¥���#hƒê���tRNS�@æØf���wIDATx^•Á A SDè °Ñ5€¸?ÞÜöß ØõÖÏh4Nï@ÝŸñ‰89 Ò"'B ;ÒôXË?{ ÍAsè}"r¿ñMq¯Ç�DÇåж]549C¤êX»Å ¥Í ýþzrݱ°é <ž6ðXIn����IEND®B`‚IMAGE 233 ./arch/wall/cwall/cwall_w_0.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷!!!BBBccc{{{¥¥¥���¯ àA���tRNS�@æØf���‚IDATx^•Á 1 Ý ØÇ°Fi�ï‹“sÿ% ñˆóìs4Zo"ŸÉþ<dÄ@ž@#’¡Äd5w uh¾Âqå÷DêPºG`¥ì/‰ÎG¤«ß¢ ÎûîØvÙ$¦±ÎÀŠÖëHÖi—¯E2Ú—±þuèÿÃX/}`•A]×’Å����IEND®B`‚IMAGE 233 ./arch/wall/cwall/cwall_w_0.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷!!!BBBccc{{{¥¥¥���¯ àA���tRNS�@æØf���‚IDATx^•Á 1 Ý ØÇ°Fi�ï‹“sÿ% ñˆóìs4Zo"ŸÉþ<dÄ@ž@#’¡Äd5w uh¾Âqå÷DêPºG`¥ì/‰ÎG¤«ß¢ ÎûîØvÙ$¦±ÎÀŠÖëHÖi—¯E2Ú—±þuèÿÃX/}`•A]×’Å����IEND®B`‚IMAGE 245 ./arch/wall/cwall/cwall_w_0.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷!!!BBBccc{{{¥¥¥���¯ àA���tRNS�@æØf���ŽIDATxÚµSÛ Å0³óÿŸ|܆ìa¤Â³Ð—¤1^jwÐq"ƒöŒ"ÄEHBÀc¯€ƒ"ÚC bð<t¡b×"“¦ú�W8¯«p4þLAù¾=0‘¤€ë ÉàÚã Sì2à6:%Îó* R:èYЛójXÃVǸÿouås£Â‹ñÉE¯PÒ(����IEND®B`‚IMAGE 246 ./arch/wall/cwall/cwall_w_0.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷!!!BBBccc{{{¥¥¥���¯ àA���tRNS�@æØf���IDATxÚ¥’1€@ cBøÿ“½¡±‘¤8,AXÇÄ'&ô]Œ1K6L 57@Û †Zja(Aù‰»Áð¢ûøŽ!íûb`›~Mhš Ò÷C;  >oEöèƒHPcF< z[-Þý4~f`cÈüÏ2ê\’ÃÁÜ_u-W-¨á‚akÀÜðÇðüñ=£äz����IEND®B`‚IMAGE 257 ./arch/wall/cwall/cwall_w_0.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷!!!BBBccc{{{¥¥¥���¯ àA���tRNS�@æØf���šIDATxÚ•SÑ! r”òÿŸ<Ã-·—£nhªI)bÒ®/z‰]Zê"4¡ˆšhJV�MÑFôP€º©<”ôΧ'äúG/B#ÕÛíŸ<ˆ1¯½‡z±©TÎÕ˜ê—,0Q6Ö�Þg‚æ4}ËYhô�+ÌßD ›Öœn9ãÿ®Ögpjš‹âa²ðÃd8+<yx-,Ù[ó5����IEND®B`‚IMAGE 256 ./arch/wall/cwall/cwall_w_0.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBccc{{{¥¥¥���#hƒê���tRNS�@æØf���œIDATxÚ“Ñ!-¥ÿÿËGÐć³dÙ/3VbdÝØŸ˜¡õ(!¶4B1'°U9,Τ–ë¡9Š›‚JfssÄÀ¹…æ6Êä ÄÄU?åy;Š-ðµµb ÐY¤HMÃèz™1s¨–/sèAé·®çÏÔòxQ˜ú€vÞô<ÚóêÝàŒ“EáÃd™„ÏÓýêá�†1@¢����IEND®B`‚IMAGE 274 ./arch/wall/cwall/cwall_w_0.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷)))BBBJJJccc{{{¥¥¥���‹Ãú���tRNS�@æØf���¨IDATxÚ…“QÀ C•Qzÿ/ê’~�Ž}˜øJÛlÙÐа"œ£šÉZàXÎ4pØ|‘¸:Ì!ž;8#L<upÊ¿Œ EË1èê_FPûÕè”twˆuôñ% £}É:@"’]B6¬CB¡Å6êÏÂåP¡6å*¡ó6¸¶ÔÑ ÝYô+·âú¹ù£qøMÁAƒùýß„c ­Àðã`ÙáÃ[ Õ^����IEND®B`‚IMAGE 237 ./arch/wall/cwall/cwall_w_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷ZZZ{{{¥¥¥½½½���çç磇y˜���tRNS�@æØf���†IDATxÚÝQ[Ã0 "&Ëý¼Œ¡¡fѲïRŒmYõCÁ=ð8�<�¬ßužw]«Ê@²‹ühIm¸þ_‰]@|qb°Iû[]À×€æØ¤_º›¤ß´jŠŠÊ%º"&mž*Ár|m¯ÈòÜ_‘öâæŠÌq‡4.¯Þ¦Ï´å-œÅýñÜ·À½ ^(1¤G����IEND®B`‚IMAGE 303 ./arch/wall/cwall/cwall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���!!!)))ZZZ{{{¥¥¥½½½çÆ÷çççg\Á0��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò���¯IDATxÚÝS˃0Ü6’%æÿÿ·cŽ3žÛu!<t‘C°?à7^x½ ¥l"Vƒg¥Œô ±¾f@y}dæ RF|÷ B ‘Ñ ÍÙGWÈÎîÅàªÍy$[õxÖ÷Ó\ñl u4t­<c7#Ò�Mœ½˜4é¡gÆêÕswXz1©ºxÚ"äï·0,»EÈ;o·aÏâ@sþzµ3¦! ŸYñ„ÿ¸Y{"|RuGD����IEND®B`‚IMAGE 301 ./arch/wall/cwall/cwall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���)))JJJZZZ{{{¥¥¥½½½çÆ÷ççç¢rQ¾��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï���±IDATxÚÝSÑà Ëf –ÿÿàÑØ¹Û]Ÿ·4¤ˆŽ±?à7¼°à¬]x` 0÷YjÆüt¶­5°¬d°•; ±Ox`ˆN²!‚®â ˜ÙgÒØFW~îû¡ò ó~Ãí`À­Ò<rE¥‘Kò[Â:)¼¯`WÆÙU¢)2¤]æe ¿•JÊ2K=“:EÚ‹_§Hc­ò‡4¦tx_hŠj¬ÕRÄþãe}�¼CgJƒc����IEND®B`‚IMAGE 304 ./arch/wall/cwall/cwall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���)))999JJJZZZccc{{{¥¥¥½½½çÆ÷çççÅ<‘d��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò���°IDATxÚÕSAƒ0 óÊ2·ôÿÿf gLRR«µ“C±Þà*.É^àg®óøš´“E©­�¾+÷úï$*憱Çd@\hR©††B $ÐØE:áûÂ6[ÞW`Ì®Ø0{ ‚íW+Hƒ!¥(ܤ“ rXÜMzJUÑ®Zpè¥SØ5§¼ÒÅy «¹ñ‹)R^q5Eúx—?¤0ÝzO‘ÂÞ·XOà3_ÖÀÍ!Ë#¾$À����IEND®B`‚IMAGE 344 ./arch/wall/cwall/cwall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���!!!)))111999{{{¥¥¥½½½çÆ÷ççç÷І��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���ÔIDATxÚÕS]à dsØÓúÿïÒ§ömÉN±áCîH¬œø‚×›hícØQ÷Z³”Œ 4ò: 2°—îTThµzv¨˜P€+P"ó0ÇTP†,bú^Ù õ ›‰œ¶ æ “¼ODÁä}n™kØ&Ð{¨E"!›�s@anæfúiÉê"§õJƒb�pß)Áp()‚µ¦H¿ŒíÖ„Ÿ y­)ˆ}¸’µ¦(„ŸœÂ[¦t\bŠbH¯‚òˆ“(àîUWVïŸ=~ýg}Ë&|ü®Fä����IEND®B`‚IMAGE 344 ./arch/wall/cwall/cwall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���!!!)))111JJJ{{{¥¥¥½½½çÆ÷çççä]!��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���ÔIDATxÚÕSÁ²Â0D·±Kôÿ¿÷BˆôæÌÛ†¤,”…™Tî_ð?.WpÀÎNxHtaOÀbEYÏKÂbe½½U(V¼˜â[ÂàÑ®ò0ÌXD'(œqó&g¬­ ΄I~ï¸u‚1ùP_Þº€1PNb0—r5†*ªÑäôZexÆÉðcË)Üh�O¦jOQ2zò<¡šnOaˆT_éöU¶sÒN}Ÿ¢u˜^5E”¬Ö¹ Ô­“^“ò÷ðÓ­îèø|íùë?ëó&½Ã@n����IEND®B`‚IMAGE 354 ./arch/wall/cwall/cwall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���!!!)))111BBBRRR{{{¥¥¥½½½çÆ÷çç牤��� tRNSÿÿÿÿÿÿÿÿÿÿÿÿ�=è"†���ÚIDATxÚÕSA’à óL*SþÿÝUjµ.½íÌ œÄ’‚íÌÄž_ð? ?…8ŽRv¥’$,„²ë5y 䪻A¼!´ÊfoWG­Õï9*ÅÑLjðUo žÂÕdçÞ O!Œ¶×ÑÖ¬¸6ÑÞ%˜ éPŸÊÙdF›çs5Ù¯³^hžïÙKÈ)8åpU]¦Pà|àáJ—)t‹ä÷ÓÛ„®àJ×)fd6IMÁÝ¡Ö×ï)fe“´¯x&"o`ÜŸd˜œ+„i˜,þúÏú`Ÿ*wÆéʬ����IEND®B`‚IMAGE 338 ./arch/wall/cwall/cwall_w_1.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���!!!)))ZZZ{{{¥¥¥½½½çÆ÷çççg\Á0��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò���ÒIDATxÚÕ“á à „³^×Kêû¿ïbÌÈaÿ»FA¿£ñ¤•û‹þÃð8\8 CG¢!n gQƃ!ˆ N{®â�N×jðM'‡4—yaå|致^X8ˆTÜÕf‡óÄšö²†¥A \ÀdÐyH†©%³ÑA¦š RŒQMž¼úºR,w‘ >Rä۔Ȉe¥p™€ëB,§Qj¤Ò¼j3Sx™osLÕà¢úäª6å«2ºFþ›·Wˆ›¯šaÊ‘*CÆøáŸõ¹Ì#%2þÏ����IEND®B`‚IMAGE 329 ./arch/wall/cwall/cwall_w_1.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEçÆ÷!!!)))sss{{{¥¥¥½½½ççç\¨ˆF���tRNS�@æØf���ÖIDATxÚÝ‘ÁŽÄ C¡qÊÿð:ÔC3ÍuÝR©}&ƪüÝ-T³$ ¬×%¯^ó`ÜLKC8˜Ó{W­¸õÖ›LÊgmPÌ)�( ÈCÆ~s-Løç°Q “ĆQ Ø:¤Yep¦3Â}äˆ_-ÞÅŧ…ñ®H°[Pœ`‰h´Õ‘à´@føTxZð¦aá×Ì€Ó"‹(éš\@œ™£&#-O�%÷ÝöW´¨6¾ñÉ-[XÔ"cG½eiÊUè!–ë›Æç„_õ\¦½Ö1����IEND®B`‚IMAGE 230 ./arch/connect/cwallsec.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ŸIDATHÇíS±Ä0 bs¯ 4@fÐ*Þ„/dûæÑ7)"Î%FÀ xç Ãt¶ó„ÊwÂ9¸ŸF7â¤ùç &Á)Z0½B 9Dãú Ô{ú“ÈÕU¥DgýÒ÷²0›ú3-£©i¡›ÿa¡—¶·ZÀÏØùÏjÁy ØëGYp/á¥Xí¡C¯õW `·Ûù>gï<`>m¸åí?€L®����IEND®B`‚IMAGE 248 ./arch/connect/cwallsec.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���±IDATH‰íS±Ä óæ¬à<@fpËn2‡¾�¹/òâ›±ŽƒFH²Aä­'.àÙ†,ß †‚¹8º¢@Vz¡/0üÑ…B G Ë&:ÝDE¿ Õ÷ôÒ¬³Rß!;öSß2 õ£Epø¦¾·ÝÊÏHý%‚á 0íûœ‚â –Ž¹õ<}>> *ëÇCÅ9pw®8û} ³=õæÜöõï|go= >¸3Œ  Âû����IEND®B`‚IMAGE 258 ./arch/connect/cwallsec.113 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���»IDATHÇ퓱Ä0éÜ-и¥*C‰êض<žy?þĹшät ‘7žg3²|CŒ…ýäèÊ‚Ìô%ý€ñGE†£Ð’Å¢‰%ÝDe<ê÷ôâ¥g „~Aî”ú†ŸúÍ- Æš@è·àPÖÄÑ}ù½ü<=¦7¦ )è6·a¡Ò7\å•μ|Ò ¬¹ß¶-_C,©Þ§òÇê@gýšûÝçüóxãñgeƒzé¨ãÌ����IEND®B`‚IMAGE 262 ./arch/connect/cwallsec.114 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���¿IDATH‰í“Ë Ä DÝyZ |M\¨ãíÁfa?Ú¬“Kña! ž±AäŽ+/ȳ•Y¾"ÊÂX9zaAfú’¾@9уBAŠÃ¨I …‚ö&Zº‰…¸ W?V¿".= ü^ß!MÀéÚ-¸ÂšXn "†a‡èй…’B7”öÄ^¾ÑB¾)Œöl;¹ï}na!W½1?>qŽÆú3÷Ý XLOÎÈ)|9çÛÛùüw>¿sw\ `XÑ b•_·����IEND®B`‚IMAGE 276 ./arch/connect/cwallsec.115 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÍIDATHÇí“Áà Õ¹[ àô¥ >Ô±y�Fv<q”|ü°n� 3wˆ<q‡`‡8[ñˆòQæˆÑ âéKø�å$‚Œ´Hè(¢"~D?`Ü^PÖ�½ Mz›k`$C¦ü8]‡…f@Bh b†’©®òLí¥·ù”gyòEÞVõ4x{íòmv!wTÖy[ëÖ·ná7ù6,è©HŸçþn¯ ºw&ÜÏ™ìä÷.œ‰ôy>ìû¿óþãxâñ”DŒ6ß«����IEND®B`‚IMAGE 281 ./arch/connect/cwallsec.116 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÒIDATHÇí”A„ E{s¯Àz�ÎÐ-Ç`Ã9Þ,À jª™döhšT~‹"¯ýƒ±?[áÍWDYèË—X1}q@Ùkà@ H¦ÂÈ(Ñ@@W­‰ˆŽÐÊÀÈä[é©ÔëîÕ@1¤ÓO”/®üDY'gq0]øõTr-Á0Ôy{iÒ[åÔPˆ§~=Kþ'ô­waFrôÓ.¾ö­•'$Ó†pÜÄÇá“^@:$žvqý_FÎõŸu¡Óo]8Ö|Þ…ñí<zÎ7‚¯ýÀ>BÕmyxd ð����IEND®B`‚IMAGE 282 ./arch/connect/cwallsec.117 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÓIDATH‰í“±Ä Õ¹[ à”ª êØ0æy<8r`Ý� §;yã Á ëÕJ‹ÕzE”:d iË7ö%”Nƒ°4‰d],hÑŠˆ‹hf`D"Š“¾¸Ê„‘L=ÏU¿ÈóªRé¯ÝžJÓEDÅ$öiž×Ü@D ÃnÑW,·Ð6à‰{·¯m z"7"ÞÎŽô­º0"ÙæÞíߎfš\hŸÌõ» ßÇ‘¹þ#*ýÃ…9ÝþÌOçç;ßÀˆît¿C@žÔ����IEND®B`‚IMAGE 226 ./arch/connect/cwallsec.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���¡¡¡ààà¿¿¿���£Ì²���tRNS�@æØf���~IDATxÚÝQÑ€ Û\ýÿ/—Ž‹#»ì¹‰ N‡œø¶ÀÀý}`Ásý†vBjÅ›�I1 â=1Žòé¾ yJš¼ ¼p WPªÛ‚€$Z/Õm&ú©n30µ]°Ü?wQ[ÈE4Vá+G�«pd¹‰*Y†ßý À±ïç6����IEND®B`‚IMAGE 579 ./arch/connect/cwallsec_mural_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��,PLTE DO���¡¡¡HJUýÖ�E=D­­­TMT@?JA?HG=DD?ED?J@AL@AMCAFCAIEAIDBKACNACOBCOGBIIAIJAH?9AMINHKWRHLRHMLJULJVOJNNKP>:B`IMQOXYMNXNSTPZWPX^OMbNN?:B;<G?;C:=H<<H?<CJGKIGQLFOOFMKIPB<C<>J==IA<D<=I@=E>>I@=IB=EA=I=?K=?LLKVPJQNKSIMXMLVMLXMMXWLQHBIGCIEENGDPLCHFENCFQGEPIEKZQT[QWVT\YW\XXZ_XZaW\a[YwsoIEMJEKHFNMEKIGMGGSsÂSc���tRNS�@æØf���ÅIDATx^ÝÎEŽ1DÑH5333s333Þÿ-µ·•3ûz¹ ë˰!±3 о<f'r×¹Êß Ð$î†^gãÀ±½Éìô‚t.Z?és·wDÔÝßJ ž±æï|p³ïÔ½£|– ¸^1º{¸€«{~Š‹L³Ê’FÛÀc#ÎJ×_¡}¯3D4sÖV¸ ÛLµ®Öcƒ;<Ý’Íô¨|?œíðqûÖÄîÿùL@æH“ þKX�Ý<T[>����IEND®B`‚IMAGE 669 ./arch/connect/cwallsec_mural_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��nPLTE" ¡¡¡ýÖ����E=D@?IB>I@?JHJUTMT`IM<=I==H:9D=?K=?LC=H>:B?:B=;E;<G?;C?;EG=DD?ED?JRHLRHMLJUA?IA?HQOXYMN<9D=9EMINNIQHKWE?I@AL@AMCAFCAICAKDAJEAIDBKACNGAIACOBCOFBKGBIIAIJAHHBIECNGCIEENGDPLCHFENCFQGEPIEKIEMJEKHFNMEKIGMGGSJGKIGQLFOJGROFMKIP:=H<<H?<C?<F?9A<:E==ILJVOJNNKPLKVPJQNKSIMXMLVMLXMMXUMQWLQA<DB<C<>J@=EXNSTPZWPX^OMbNNZQT[QWVT\YW\XXZ_XZaW\a[Yxcawso>>I@=IB=EA=HA=Iá}–���tRNS�@æØf���ÝIDATx^ÝÎCs@àžÅ³Ø¶mÛ¶müûTe¯;Éý}}ì©®AnÐ[C`HHñØ‘€éw ÿþHCÜÂbâ}×ýýÁôô„Ê‚¶ËÃ%nàå ­žðTq#7°ùõYh”èž(‡g{#ŸÈÜ=c¦6Ë ¤“½ÇèË».Ñ6D´êˆ9pÕ)­ˆ¢ƒãM;Ø;XÒ¢Ó¢‹“: 5Û{A7çË#xÖvä»^Øò¢F1>ç½µ“c]P+)WUýœ³¡%òÕ^,]‹÷ø…G¯Ê€þrÂ\ï k£ý•����IEND®B`‚IMAGE 857 ./arch/connect/cwallsec_mural_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��òPLTEadi¡¡¡ýÖ����JDOCCO<=IE=DKGQHJUTMT<<H?<C?<F:9D==H==IA<DB<C<>J@=E>>I@=IB=EA=HA=I=?K=?LC=H<9D@?IB>I@?JA?HA?IG=DD?E@@KD?JE?I@AL@AMCAFAALBAJCAICAKDAJF@KEAIEAMDBKACNGAIACOBCOFBKGBIIAIDCL=9EDCMJAHHBIECNGCIEDOHCOEENGDPLCHFENCFQGEPIEK?9AIEMJEKIEOHFNGFQMEKIGMGGSJGKIGQLFOGHTJGRHHS<:EOFMJHTKHRMGRKIPJIT>:BMINJJUOHSNIQHKWRHLRHMNISNITLJUOISLJVOJNNKPLKVNKQPJQNKSIMXMLUMLVMLXNLVPLUMMXPLVRKVPLWPMXUMQWLQ?:BTMX`IMQOXYMNTNYXNSUOVUOWTPXTPZWPX^OMbNNZQT[QW\Q[VT\YW\XXZ_XZaW\bX\a[YjZYr^`vb`udcxcawso=;E;<G?;C?;E:=H)jei���tRNS�@æØf��IDATx^ÝÎSsAàî™Ù½ŽmÛ¶mÛ¶mÛ¶ó?S•yÝIÞïwOשã qÂ((ù G¼'¢ú÷ˆ0NtÀàûÃvÚÃÑNÐã-ô Ç/Do§s®Þ‰ ŒÝ€:ÀÚ©D4^Ùº‰¹ÑI "ú\ÜAmnU„èý™¹9ý§»„*±X³©«“$åž`g~yôÌÌ[HÊÐÊsß2 b˜ÀYžM¢I\š~¹û‡5¸…Ǻ8$¤˜¹6½g¨Í½z×_·ÏkÚÇõXß2tx4x¹¶º¼¥]¬ÈjíV5vÌNÞ¿Ø7냪JÓ€ÉÙ²¼ÑÖ£Ù‹* öM]Q%<>?1¤€QøŸÿ9->|VK����IEND®B`‚IMAGE 1038 ./arch/connect/cwallsec_mural_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��sPLTE���¡¡¡ýÖ����FCNJDOKGQHJUTMT<=IA=IE=DA?I==HDBKCCO@=E@=H>>I@=I<9D=?K>?I=?LC=H=9E@?IB>I@?J?9AE=IG=DD?E@@KD?ID?JE?IB<CACNGAIACOBCOFBJGAMFBKGBIIAIDCL<:EDCMJAHHBIECNGCI>:BEDOHCOEENGDOGDPLCHFENCFQNBKJDMGEP?:BIEMJEKIEOHFNGFQMEKIGMGGSJGKHGQIGQLFO<;FOFMJHTKHR=;EMINLITJJUOHSNIQHKWPILRHLTGLRHMNISNITLJUOISLJVTHKOJNNKPLKVNKQPJQNKSNKTIMXMLUOKU<>J==IA<D?<C?<FF@KMGRLHRKIPLHSQNSUMQWLQJITEAIG@IEAMB=EA=H?;E:=HA?HcWXbX\a[YgXZjZYr^`vb`udcaW\?;C:9DCAKEAGDAJE@IQOXYMNTNYWMXXNSUOVUOWRPZTPXTPZYOSWPXWPY^OMbNNZQT\PT[QW\Q[BAJCAI@AL@AMC@KMLVMLXNLVSJTPLUMMXPLVRKVPLWOMXPMXTLTSMRQMX;<GSMXXLQTMX`IMWLVCAFAALVT\YW\fQYXXZ`T]]V\_XZxcawsoIEKGHTJGRHHS<<H03] ���tRNS�@æØf��IIDAT8Ëc`€pJ30C�.Ì ÌL`ˆCž‘‰"Ï„K3~702²2°@�., -»E²åxDqÈ3ždˆNÒž·é.:N3hqJúL­cÅ€¤cà^U îÊŒ02šz…1pf¬M‰‡ú 22*-ëcð· PÅ.ÏĨØo^Ã`»h+vÀ(ÏëÂËpx `aï!Å»®°¤YVmâ9™ÉšRMzÒÄŒB͸ùù¢ªO©·Î,ZÉà q68qöÜ„åÛ·nÞDZÑÓ2$Bð|m^f{ïb;!ýâ3 GœÙ­ØÙ·”–Er$Oop?¤l¼~… á¬®žîýK|+Ò¹VÇ9ò+ØÔOQÑuÚ°F@"ŸOgÒÞÔ˜Æ ®ƒÞn& ,Ê+Ùòwœ¨Ú¶gáŒ9~»ŽÍ ßÙ9i,Y €á‘±�аXÝŽ?ÿe����IEND®B`‚IMAGE 1213 ./arch/connect/cwallsec_mural_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��îPLTE�ù:9D<9D=9E?9A<:E>:B?:B<;F=;E;<G?;C?;E:=H<<H><D?<C?<F<=I==H==IA<DB<C>=I<>J@=E@=HD<C>>I@=IA=GB=EA=HA=I=?K>?I=?LC=HE=D??K@?IB>I@?JA?HA?IE=IG=DD?E@@KD?ID?JE?I@AL@AMC@KCAFAALBAJCAIE@IBAMCAKEAGDAJF@KEAIG@IEAJCBKFAIEAMDBKACNGAIBCLACOGAJCCLBCOFBJGAMFBKGBIIAIDCLCCODCMJAHHBIECNGCIFCNEDODEMHCOEENGDOGDPLCHFENCFQNBKIEIJDMGEPIEKJDOIEMJEKIEOHFNGFQLDOGFRMEKGGRIGMGGSJGKHGQIGQOELLFOGHTJGRHHSKGQOFMKHNLGQMGQJHTKHRMGRPGKLHRKIPLHSNGSKIQJITHJUMINLITJJUKJSOHSNIQHKWPILRHLTGLRHMNISNITRHOLJUOISLJVTHKOJNSHNNKPLKVNKQPJQOKONKSNKTIMXVILMLUOKUUIPMLV[GKMLXQKSNLVSJTPLUMMXQLSPLVRKVPLWOMXPMXTLTSMRQMXQNSUMQWLQTMTSMXXLQYLOTMX`IMWLVQOXYMNTNYWMXXNSUOVUOWRPZTPU\NKTPXTPZTP[YOSWPVWPXWPY^OMbNNZQT\PT[QW\Q[VT\YTYbSTYW\fQYXXZ`T]]V\_XZaW\cWXbX\a[YgXZjZYr^`vb`udcxcaylkwso¡¡¡ýÖ����çx¼±���tRNS�@æØf��}IDAT8Ëc`à'à”fø¸|gøþ qÈûÊ�‘ÿŠKÁwünøöí'ÃÀ¥à/—Ìr-EÙŸØÀ·oß^0L™ãwe+ßw¬àÛ·7_¼{UJO:BŠ¿}[ð”AÈDB)»ü×oE} ½‹×Í›ñ;ø¦ï%CEb•Ñ@;ê Cü´[§y4mk4ì=U™™X9#…„u&øÄ¢Æ®ÆðàFpuó¬ó—gÞß½sû±º-ù1-Bk{V/yý‘-9Ï})ÃÊ "YqYY;Z'ÕÍ=í–ka¶É24äÜ»ïÅ´ÏŠZ1¤xLOU”ÒMp²6 Hßlæ®Ì!­ãowdþÔÛI’A™ 3N´wF¯Ùó|ÿ®Ã7Ï\(ß÷ìÉŠþ½o¯Ý}uüNYÇ¢C ¦•k ¶ø4Í~è[¼±0ãjìÄÏ ].>:Ú¶^¾þyIN8Ã{9Ã:gç†nq/› õ®Æm×ùÓ–¹®º$ ‹ÅŸÀðÈX�†aü‰ ����IEND®B`‚IMAGE 815 ./arch/connect/cwallsec_mural_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��kPLTE<9G@=LHETKLT?BOMGQC=GICMFDRDAOHBLIIRKHWFAJOJTOL[RLVUMRXNNŽ ¢ŸÿÖ�MNVJDNSMWLFPEIVD<A��BCKQHNHKYMJYCDLIMZWIPTKPH<H@AI?<KQOR`INKEOVPZTT]lYVwrq~€}DHUGHPWOTGJXNBMZRWYW[`W]LMUUGNSHI^U[ABJIGK\P\@:DKCHcXXwcaDEMIAFKIM9=JG?DXMMGEIOPXXLWCAERPTPQYYMXUOYBFSEFNDBENFKHHQa^bl[];?LwllbWXXPUYQV99A>9BLDI[SXRIOfQZ<=EZX\cT[>?G?:CNLOaX^iWY^\_??H]FJRCJp_az`_vb`<@M@DQ=>F>ANJHLB<FD?Iì���tRNS�@æØf��rIDATxÚÝεZD1…Ñ“äºë¸»î:¸»»»ÃãÃ|SÂ…žµ‹ç/ÿC Éñ V8°À*7æ˜e(Y• ¿1Í�ØMÖLÓ†'„T¡²õ}¥¯ ±çBŒ/YßÖ(Ì¡PdO Np�ÿß`ÛpW_˜Bãæð׋Ò! a¤æ‡gÚ: Êz“IÑ<tDõÌç4LÑ-n k—ÃÉóQFB†áæÜnU IQ)o\½Q!S¼Ücü~(äÙ.–I'srï‡ìŽËA4ðÂ1Ârüpbw©Ê+Щ1qZ¤H¢G×<ùé¹UWÿQ§¤_µ!?£ûS°H­Ä½ÛJ+š¯¢NF6CrfËèºÍžìC;E eëb:%{e‰Ö·ûBB·1ž5ÞD¢ÃëŽV%b.Sðçò)í×kµ¢‘8eè…Tß �6nå©0E.ˆBÆFD„ÛÖ{²lwÑn‚Àà_øÍ DNë‡m����IEND®B`‚IMAGE 898 ./arch/connect/cwallsec_mural_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��•PLTE>9B?<KFAJMGQKLTRLVHBLBCKD<AFDRHETKEO>ANHKY?BOOJTDAOUMRPQYwx ¢Ÿ��NBM@AIFGOD?ILFPHHQEIV<=EOGLKHW@=LC=G??HIMZ]FJYHKWIPOL[MNVIAFNOWH<HXLWDEMUOYVPZXPU[SXg\\p_aICMŽKCHÿÖ�CDLJN[TKPJHLBFSEFN:>KSMWXMM`INOPXJDNGJXQHN`LTSHIN@G\P\HLYUU^WUYdSUcT[aX^RIO@@IG?D~€}RCJGHP@:DTNX^U[iWY^\_IIR`W]z`_XNNRPT[NJ@DQYMXMEJWOTMJYIGK;<DbOLNLOZRWTT]=>F<9GNFKLMU;?L[V`ZX\9=JCAEbWXcXX>?GABJDBElYVKIMa^b99AQORwcawllwrqA;ELDI?:CF>CUGNvÑê���tRNS�@æØf��›IDATx^ÝÎC›\a†áúxìÓ¶mm{bÛ¶õ»3I_Ùu_ÙÏý,jQ›NOßÐ7¸}0„ ®ó7Ï`öÝ?9î`÷ß×Xǽ>ÇÝÓéA™ÓØÄÃ6lÚ¦Ú)Ô¢ù„UþÄãñRIºiJÞ“SB’ã¦Én´fžò=ßrß6Vs,• ³«:!œ,ÄÆ¶?wÛï!fPmQQÚÞ2&^®™A¬O¤T>2÷®Õzq` Ó>™ªcŒÛœõèO o3ËË+? TïÌ” á,{¦˜›®W'ó«[ŒXÍz㥘E¨Õðõ¬’ÇdlCQE­_~íÚ›Ùhú£î7 xœCoãq‚¸~ˆËŠU<º[È\&,ÑBÔ_lÌQ*åñ§Î-ݪÖ/Ïv_Ž¾Ãº¤H&ÖTRƒ"z"5šÓÑW³—ÆÏS „¤ú-2ÅU{Ý?9{ªIê;K镽½hÕw«Ë¡g¯ID«Œ:NÌ–i•‘­d›Ù^xþN…ßðU—beÑr����IEND®B`‚IMAGE 890 ./arch/connect/cwallsec_mural_1.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��›PLTE?:C?<KDAOFAJHBLMGQKLTRLV:>K@=LC=GDEMICMFDRNBMHETKEOGHPH<HHKY>ANOJTOL[?BOPQYBCKIAFRCJ@AIHHQEIVN@GIIRKHWD?IUGNHLYRIO??H<=EIMZ]FJWIPBFSMNVEFNNOWUMRXNND<AUOYZRW ¢ŸJDNKCH@:Dg\\[NJJN[OPXSMWABJGJXPHMQHNTKP`LTVPZXPU\P\;<D[SXdSUcT[bWXCDLa^bp_awcawxJHLNFKAERG?D>?G99ADBEQORKIMXMM`IN<9GXLWTNX=>FF>C@@IYMXSHIWOTLDI>9BMKOYQV`OQbOLFGO;?LTT]MJYUU^WUYYW[MEJ^U[[V`ZX\IGK`W]NLOcXXaX^`[Z^\_lYVDHUFDGl[]YHKz`_LMUwllwrq��~€}LFPÿÖ�DuKW���tRNS�@æØf��IDATx^ÝÑÃÖ%Aàrµ­kÛþmcÛ¶­Çžy‚éýýr‹ÜÄ9ÆÃÏ ôýÿ@È¿ÞáO BÄ‘%Š–e©‘ªý ž‡PEįïm¼<OÈÐäƒ ³êñ²—äG>¥„Î}+¼Ý}÷Dìxbú”®)Ú ¦åW‘ýZÙ!(ø°·{ë€qÁäb"D ÆX!<qF—H1òéËÂ5òô ˜³Ón§)áÕgMofùb·Q_Ýätq¢ÝÛ:BQ¬ªÕ±±ø8’`†>%»ßsW‚ê|åòZ´ä…Éöl6«Ïâ ‰oâ Fk¥tø:ZLÝ”:°¼‚osÓeFs}š1µžÌ<ßy¿ôy³{çôIb"”¹`(ÛŽÍ˜Ë IÜW×'z_+Êü›ŽÔêÄAÍ—X¶àѽÆ`MKE¿]ª¤¤»ÃÑÑ ðD ˜Jmyj?è¬Ëé¶íQ¾q6w®}f-€ÒË~-ï$åZ#_ôM?Íß±”&Ñnü儎>÷Xø Å$«åŠEð¤����IEND®B`‚IMAGE 366 ./arch/floor/inlayed/cyan-beige-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©��IDATxÚmÒ[ƒ0PÌ$ìÁ½iíýÐ1Ð4¥9‰h®µˆp©;2†!tÓ?`ÈPó0;À.ÔŒÁ¶àB}¿cò˜À¢¾æüÕóØ1ÂVˆü¶3|€[-â­¨}kÎ:Dô`¼€Àwó<mvF!ô€ŽHˆ{,4ðç <4ÄË<‡ µÀ]—ýpcKÕÑõ˜°TÄZt¿X€ÚÒ70 P›~oµŠÆÜ4 lA½ó„Ǩz‹¨×ø r‘EökO#Óþ£šjžµp´9ÏJö~Ÿ:»ŽUM Û’¦ÍßARؾE5>Nœ¹@ ðKŠ8û›ª…I¤����IEND®B`‚IMAGE 355 ./arch/floor/inlayed/cyan-beige-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©���ýIDATxÚÓÁrà P±E æÿ?¸$U_ºƒ­7›0N„Àµ`—\ïF&þPꔫ� @•1ÈŒu@÷¼�P…g‰œÆ€(јÓW7¾£àÈ-_�x\ œ“Dßêkf†K-ÈàÔ|@Ø‘þú (¿àyDúy wN¿50¤Ï¸sï3`¢ß Ü9¸XBT°–üµ€Ñgô†ù‚F¯ü½‰%4±D}Šd§‘þšæm“gä¼µgÌ|×ÔÒzK~ÙåÉ$ÅÄ ò÷0vA¹o]¸”}ÄásÛI3°‰j‚ŸS°/&v[üÚ ˆ[%ã����IEND®B`‚IMAGE 362 ./arch/floor/inlayed/cyan-beige-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©��IDATxÚÒáŽ!`œÀ”õýø<AÑm.9~”Mæ«P»B`ï«×ƒ8þp³ û,E3f°:˜'X�†gÀ Q]êÄ„¸ªÀ=z˜üÒ/À0 gé€àP38Ï{ž–=Ëé/½Šy�ÜTs^à-�È(3`§ˆ\®?V9GÞÆˆ±/è àÈÑô™ ;ëT.úuˆ0Ò JÔy6¨{#f1óITÉ Ð€+¹!‹ûï%#µØUõ£²«{½¨Ý=Öû¨¶`±ÜZ6G«ŽLGÀ*'ä“`Tìà侞9Y—ØKÒïßÜ4‡´¶“g¤KˆLñÜ ‰?æ'����IEND®B`‚IMAGE 357 ./arch/floor/inlayed/cyan-beige-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEq‹Ž ›€-$¢Ì,ªÅ´–F»§qWÆáο‡ÛöÙÌ¥ E©���ÿIDATxÚ…ÒÁŽÄ Ð`5Þ”ÿÿàMÁVƧ¨ˆ1�ïû6ËeÕÚXà½wüÀ´6~pö r}@“ðìO0j»4¡  ~'-ÓšÍÜxŸDŠJ{ˆ®ÀÖ—^ÀÙ—x €Ä ö×ß\U ‰ª;×µÀ0;ÀWÀF8€„ózðêxž-A€±�Þ}ç=@ÖTìdJÈ@‰óªCseNà$ñŠÄt€øä ²¿Ç—( C'ç—2ë±úîûO¤/çàꬌCf5À«O à´²ê”PµqÅЙ¿^Ü}ƒ=`,Kèíÿ*ΤCùr����IEND®B`‚IMAGE 414 ./arch/ground/Wood/cyanbrush.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcc yz$}~.‹Œ2J¦¨y³³¼ÚÚ¹?w��AIDATÁAn1Ð/«?ìQÐjM™=â�N¥:Þ«¶šÙ"sÞ K:i ÍÖ©¸èzÒ~E³a…@ã;˜Ÿh_]A³‰×ÄÚ·ëíT „ ›é•îÃgHYACV¸ù­„h±Õ‚ DÕÒ§+½£<�èN'8”´…Àí%бñ*ãEm\q<�Nã‰PÍ‚RMwýȦ¶‚<œZh7+ L6ï£Óþ†¬¼ÚômíÑ袹õb4Çô-¦±)…t ]Úy­“ÃUéPžÇF ‡¾@*Ktþ:v†ièYîsÆtÛh@ *gHmUZ[ Z!Aúöw�h­©ïeŽÃ?W*à»´cv¥BñAþÍò‘ŽËOFFÐÒnÓP“–Âüƒ4´TÛ4âtÒZ8oøysOeûE����IEND®B`‚IMAGE 361 ./arch/ground/cyangrass.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE yz$}~.‹Œ2J¦¨y³³¼ÚÚÐ#Å=��IDATÁÁmAEÁ‡õϰ·œ€/gè5­kØ[Žà«óϪ©z§JZoç3½î´h©#)?SÂWfù’¾nðq/æ�¿n—ÑÉ®éI¦Þ£^¤Xßš¾ŽGL낹<>{¥€À®R?@GÒß‹ù&2/f“Ï@v9Œ×íãQÓå·#}œßéñp[QÈ•ýÝ•ù‹U²û88¦,Ót¥è¤é#_E‘tX·¤çÎîe:z§GŠ€/ôWªiþÜNÔÏrïÙMSð`>³G=WêJ/RG"úã« é /.²w}?8¤ùæRž{©ãyîý “¾õÙ×BÉ.“*6Eõ8Í?R<^Ù%cvI=…ìÿ`,Ë.y ����IEND®B`‚IMAGE 2364 ./arch/ground/smooth/cyangrass_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���0PLTEÀ$}~%€(ƒ„.‹Œ22‘’J¦¨L§¨\­®o°±y³³‚µ¶¼ÚÚÃÞß yz?¯o���tRNS�@æØf��ºIDATx^åšÏŽÜƇ‹@²Ø¨uXT€AÞÅ:è^¸0‡Ð+‡ÎÃïw0r•ûA®»¾‡sÐ=dÿ™jÖts<ãHe@Ƨ¯ý#¨Årv› Ç3ó‘;ÏŒÎ{>²æM8xÉ›ÌûyÝO�7ôKŸð ýðèüá¨yÉ~@fž5—Y“=)¾×ýpcÿ£· ¿¡GÍq¾ Ns™í³·Š/äu?ÜØŸü˜°ÃúaàOÎ[Åo'žñÃq@ÍeöMöVñ…¼î¸­?û„ý‡úaß“â#Œ™5—Y“=)¾×ý¿¯?a¿úŸ¯ì7yv£b?;? ;ÏGÍe6zÉw/çu?A³ŸöòdøXäMðázLÙO°äÇûz?0óI±óÈžßyçß*¶ ÓE/y£×W¸ÚÍ~ØÍw±Ï& Þ„ýú¢?hÓèž™;Ïn鈊-ÈôÑKžôú Wû¡Ù/ °f·ù»ØGÅõ�˜•Ëþ »ìõxæ— ‡?GDF½Ï¼½ c™'ˆ,ë3Û.óýÐ[ГúŸÉþwe¾Üj? ó•gCÎó´É{ŒŒ\Fß,ÌeÞBdYŸxè×ú¡ÕŸ||ÌГû)b舤¿Ø•ëŸ> ÊbvO'Ïï=.Œn›_‹ü“FèÝ(ë“§UG®õC½ÿ£ôCmLîÿ5r±ÿÒ]ê'Ù³ÒŸØMjC'îÑ!ºÉãó&ëqÆà#v#̸þ¯Oëµ_¹Ö_­GWôCmFÓÚ¿{\©ŸäŽUúG¶‚UÿðàÙùß©x‡G>¢ùÂgm2y}ð²ÿÊ7õ7¼Sý§ýœüæzÏ Ð?XõóÎÏ<ã‘ô—©çàøXðƒ3a}òÏ)°ru¾Æ‡ýÅëýûä7× z± U=#ºƒ›ž¼rfp>ø„�ÎÇ&ìÂúä)ù•ëûÛý~-Šýb>Š•+^âeÐýI°êÃtÓyxF¾à¬ì²þ!ùÜ¿rcÚí¯«ÓþìרýMòòâeØyÔíÚì|xÚè陃Ï\<f(|yDŸl·rkÿÝþŠ ýßÚ?{¹ÿ/«ÔçÛšp¿xd:—½óÁgFië‘1ú¼zåæþ´Óî ÙÿÁ-‚MàbIö/ƒCë) ~ÉÍG7žKã|ð ï¸,èü£Ïý+·÷ŸÚýt&ž¡›Nû£[ëºqÛò'x=ÌÇ2U÷3£ÇŠìÙ—ù¹,@Äè³^¹½?c³ÿ¹Úöy@¶e¿Á“3‡¿±µ~à2 Öý÷ÎW½9ò&ÿÓæ9kÜOÁSÉíýo÷o#L�†ûÇüìLWôsé)~N«õƒGD'X÷žëß(Ì4mò<M¥8x[òØÚy”({*ÄÂ#@XϱŸLÊýF¼MéèõLÞy7 W½Gäš|tSÌ —Ú%¿áÖþ3òºOá{¤ìåö—ëS?ÁÊ6°¤K†©_¼fžN¸î=W¥ó< Ÿ\Ð'ebˆëýÎû.s® LÙç s¾~¶°òx‡©ñÛýZÖƒ…úo…Y¸îùׯc>xRAå5ÇÇ5" ÿ÷/Üðm³°íW†VП¼ ykÀ×>j~âA¸îmÕ™Yò#¬Õ¥~Ÿüùz¤iòü^Ø ïûÕÖC¿0Pdüpòp¿æõõÉ?š{BặUwÏÌ›¼á² ’ÏÌOxXÄËôº¬ö·Òÿw§<èá‘Q¸êmÝuOˆ›¼A,õ”|dŽÿ½L_‚AóïüË(\õ ×Mƒ÷òi¿Ðè’?uÖ¿õˆ¿W¿‘# W}Þy“_x£“ÏÌÈÞydþ z¼ûàU¾óè‚þéŸÿó_K=%Ÿ™Ã§>¸/Á ‡×˜àU¾›0zášÏì£ó<{Ä/Áûïè1é|=cý|Ÿ›qŽyéªæ.ä¡Ñ„ýë§<Èù~eòùzBÓ8ßoÅMÊÃn~hæåzn¼~×çñ—Îÿ«yØÏ ×ò$pC^®¯GáËïTÏÿ ®æa?»yV~¼ØûõÃŒ8 WÏÿ Öyñí<ìå­@+O—úéöë‡p~Þš|¾_°Î‹oç…>ÏМ.å;¡låÿò”»*y 0¶äúù»°Î‹oçK>ïow1ß_èï©‘W×?:ÉË4o€œ¿g¤»êùþn~ë{„+æô~Aõ~l<‡‘îRÞ-Äa¿j?Ckây?e2}í|_ ž†[‡åü?ÍyÿÝb»±ÞM)ÿbl<¹ëáÚ1Ûóõ…¯Í[¸y>Ø~7&qM¿7ÔÛpý÷À  ƒ´!ø|óüyƒá0¦ƒOÈ@¿{>û¸é·|•;èi&èá›ó]€žÁ®xOðmÁ#å§-<Ã76£‰Ð3@Ž¿Þ1Lçbô6ëј¯û°[Áiá7~€¯wº+ )ad�ýŠo@€Q‹ƒºßÜX}zø:Ǭ`èÄ~A@@ÙSz¼Ï=Ó-!«±5C§~¦s†�z~¦ÄÝhH–ü?§wéÕëG?¯¨½ò1€§âWKÓÚëmzþËϲóëó¼Ç}`=æy¯€YyCÊË7·xþof›ï[àð²<Ň  É[‚׃Îï0*îiaÆŽ-È0VÞG  *Ÿ¸?ÿçþÈjF€>qd ^sÖó÷6Úçóz}ô¼z¦-GÔlXï·áɃÙz6ÏÈðšó7uÞ>ìóé<ÿ#È,Lgï#(þ¨=xõ~™’ÇûïF0ÌðŠÓéóvÅSfý¾�ƒÌʤ˜‘v™waÿ2?A¿añé,üºßó'; ™õûÏ Sã;ö>ƒ }ÅzÍ ¹[^gäü‡ï Xýþfú-ÞÐÚ' F1Ô^sÔy{'¬¼z?€ôûšÇK,ý×p·0¼ÎÈyÿµ¬ß7¨2]b黆¡{Àÿ½hÔ±†L�����IEND®B`‚IMAGE 538 ./arch/ground/cyangrasspond.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE��€cc$}~2J¦¨y³³��¼��ÿ¼ÚÚ yz RG.‹Œ�‹‹ÿwx0Ž RSno9–—H¥¦I¥§tu%€+†‡´m÷ˆ��IDATx^U’‰’ã0Di@>’™Ùóøÿ?Ý~…*;‹¢Òk ;ºvt嬳¹Y“¢•«övݦ[Ï"¦š—“Xª¯L¨w©îQYSBª6¾mreeÙß»žÞXÚ©çG ø¯®6r^&hóòGçÊîuž§]�’ó7¬‚'¡'ÅçqœŽx,ñ@ óÈ…¤újó÷ãà_•`Dƒã¡–LþÍAuÇÛfþsfR ‹™0À¨ï”á¥l– x$D<ñÐn!,Nø}z(­°`f¶Á§ˆP1d›‡k‡Ùç<®Ÿ´@·¶ÁÛ´AÆ!ÌË3Ð>b|Œ«§…zSü/B%!(ójbÌGÉ1k+™óäË@º‘‡ð›lñ™œ0©ø„%Ê!¾N›©G¦Dé5vÊØØî9o’{F­[%C™QÜ|Ã:<RD•¤9A –hg.>¿¤„óìi~ Ÿ94ù7´¶€È??æ`³ñ¥ÆšAá‰4›ã>[óº_`z¥Ó_€ȧ—šº����IEND®B`‚IMAGE 304 ./arch/floor/cyanmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEq‹Ž $¢Ì,ªÅWÆá‡ÛöÞª,���ÙIDATxÚ“[nÀ0g»pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/R^ [®˜ø����IEND®B`‚IMAGE 1933 ./arch/monster/giant/cyclops/cyclops.x31 ‰PNG  ��� IHDR���@���`���š„Ú���ÃPLTE���æ¾JÏŸÅyç¾mÁŽÖ¦2Þ®2óÑmöÖ†½†â¢Há‘"æ¶&vJ‹NΆH.Û¬_—zä–J†Z}b2ž†Ò†6Ö[p†ZJœ²u¦zrÖ^¦[®ZJJJ†Zzö¦õ¤i–KD¦fµŽ2k8¶–JG£-Jz¾¾¾žžžÑÑѦŽ*zÖ¦Zö¦Îþžb2Jb¶ŽZ*Ö]r¦eÖ®–Jjœ‚k.®Zg£ZV9¾���tRNS�@æØf��xIDATx^Í—‡’ÛFD¹9ƒ9‡ËQ9Ûþÿ¯rϬ(ŸðàãU¹ÜN%ÔõÛžÙ¹êý—zü©WÚ¡WúY¯õC/õ{åëžç•`”RžFy$ëA§Fð>|€qZ†ìïß?�q"`0xxÿõëû‡Á��ö¾ŒàÛ;¸“ `çK:Ès*á!—Ð €ž/¤ð}?Ï-œáe€DBˆDƒPõ^ €"AÒB”2ï(…°Eá!Õ)€‘¢€< Dô¯ü4º]ÖupyY†?�ø�4ÖþÙ³€ºªBUy~P©2)½êýòŒôÿY@¥µöX"&€ciÝ�'ÏØßTø]È­çÃb]–Àg�s}|}v²’€LÂ#¦ À�QSŽúèú¿ /ý Í³’ CÜ þ£ª�-p‘|.Z[‹ b˜à!à/\톕´V<@y �­îúÀlû¦u})¥¥ü?Ñ�P9xJ= Ä/BtÙ6>JBnêw àw# ôHSQ€Ú6@$ð\�¤%;n-eD�ÄЭ%T*”Päiìœ`ÉX¯#ÏÃEnVÝ�~4œ]šSëQn­•9L9—'öJÚ�&²ûMðh€a))ö0–1@¶'PöÄ­_†ªôö¯<.UE ´ÍA°‰Ð‚:àyRIö–P; €œ»Ä#Ò"­5öÎwmWÔÍ2M³Ôó”Òšˆ†JöÀ?;ôç9¨ ðs ×iVEv®”š¡l*ÅJ(Ö˜’&@J n@— ¯ë0Ͳ+Òù:W”!Ž4”FÊv€‘6â,´s~Ȳ‚íÙz½Fp]ç© Z'm bÞBÉ�S¸ÕÏÏÓõ:c€O�NÕèÁ% �Ѱ7 +öí!ƒ ÐÄ ÕJ~ÀñæÊ¢ –e¼>�ðkúB* 곃v ŽèõÖì‡;ƒÿ2áÏY-xàp}8Æ¥µ:Šc¸9<Ül7Ƭïîï—‹�†Â?˜²ŒãŒýç)ýY;¾¼_âz|÷±@­¡‰µF1 €R°Ÿ»¾;áÙzInÒ¤ ÞÙò&X KÈþ½ÓŸ_,îïî–˹Ӗ�¦ #@ŽàW¼²b­[-ïïî>ÇãÝ®¿êÿÜ…D7�9�é¾ë¬94^͹X¬¶Tl{ HÀö\åëéô;®ùjµêÇðß/Çã~ŒÉˆf•ù¹úMQp½+|^Bo9þ/@¬E@euÏç߯®ØÌ�ûöí»wï¶“ÉbÑ'€9R‚ 3¬+/Îî>üïX»Ýn‹ŸÛ­Gzp©Œ¡øÎêÒ“`÷çxB¨íÖ3ÓÜ&Ø*¿ÝlÜòÎî�Î?¦b“i)MhddñÒ7¤Ìf:OÓtÎv§Õé�î # ÈHVM@•maC�—‚yEzÂ�˜gjK™é¦(ð´|.ƒX�̧Vk¶ªÙL}Ä»8ß—°c¹,ŒZ, ´�t!okA>~œƒ@?ÕŠ Ÿ‹…¨Í]¨Ú¾¯¥œ|¿½-&iz•Λ€-j-¡¶�Èòc¦:±ùkñçü["|K*)M³YjdiÁ1’Ž0é÷'¸ûãÅ?T'ö-„¥„Ðåjv‹íØ\¬¾|YÍ¿ÌWóÉÖéÀÒ8[”ÒòéF‹OŸ...฽˜ÞNon¦¸o �)ù@üä=ÍÂkP‘Ë+ëçýJÁOæ@$õS.AÝ¡½+�fƒÎÆ`|: @tpxˆVح鬜u”àƒøÙ·ßÎ HŸp€€â�ø ¬�ЂÝ è\¬¾r³Ì³BxQ`ˆÆ �gþÁs*”tôPBè‚>·îh‹dÏùg Dùþásé¹A÷&ò¯n<Ý{À=l>ç’u&È“f£«†hŸüš`#i ƒ®�îð*ËÌB»1îî€×ø¾æ1’<Ý@R´š3ÐÚª–:«4Y:6n  ”@Ô�…�¾ß6” ºhÌ@ ¤l€¡šñ ´hã®ò°Ò‰nÌ ¶5 sYí?É[k°ØÇëg0“GÈ #kíè¸1KY­ŽáÊoްQÊ -*ÿÀýw\]˜ÒŠú £yï(@•Õè¸Ým…ʇG£Ñ¨‘®YF﬿ñÆÒ¥8©³����IEND®B`‚IMAGE 1830 ./arch/monster/giant/cyclops/cyclops.x32 ‰PNG  ��� IHDR���@���`���š„Ú���ÃPLTE���χΞ¿z¼† Ö¦*Ö®3æ¾LÙŠ?ì¾jîÖ†²qîÖo™pq½ŽÞ®R¬YJˆZž†æŸJtJƆ7Û®`îÆj|R¦pÆrJ†Zp…QÖ¢3–RJ¦Qò¥hb21}b2J.æ¾rzö¦Ö\J¦Zö¦JJ™ŸšÎþÎÎΆZYÖd¶gpÖZEb èèè’„ B”Ör¦Z¾¾¾_¦z2¶šZz¦ZrsJþ���tRNS�@æØf��IDATx^½˜çz¤H E]™:çœãİûþOµ’ LwCã1?öÎÀÔèÔ•T˜ò\ýŸúªnx®Úñ¹jÇçút¼ê×F ÑJk`ô9¯‡èiÔ1¼6`ÓØl€Âk¸¿hlô¼Vl³y¸ÿöíþa³©W… ÿÃ~Ì9·¡Ÿ ÖÃý^ ô“ 7A0¦pU` Æ…Úú¹>tLªgWu� ´B€È Ÿê#㸠µ„éü 9¬ÇVN0„êiÍ7Ñv« À:ޏ•�' …ðqJ Õó")€œ áª[e rw;M2Ž vÆó�€TPEH”¦¼À3 8„1úBÒoçbö!F’(&xŸÆÆ Iy¸/d’Ç›€‚ W ¡ 0F¥|)ýÜ@êÚ…�/¦£Nùü<QšdðÌù<Â}$é^Éü±”üÝ�Lså�+Rpx@åõ£(�D͇ä Ô�tjžˆpJ—Ò!IõŠbŒçZQ\dHö"]åó¹k¬:EPŸµýÂG„¨yVW©,Þ8Å ÄôÒ¥}ÅPX“¹-‹"™‹�4@áv*)´¶AU£˜(°XPùHZqÁ5øµA†F[AB–œ8ßAïPX¶ ç@4ª$µ†}¢.O_à† ½CnÀ¸8*§†ažÏt œr ù‘¥ˆEZF�ïùh­“f A�*=çìÝ@‚31�˜à,ßÎiºŠlEP‡.¡låÑœ)�Ú>YVfeíA<‹í=À¹�À;E!OgtÈ€lKº€2Ÿ/�¿]–Bä§5³ÙÄR"€' �oowƒXÆ1:A<õñ´ˆ¡M¹ãödƒÁèn0°´MWAŽÒO(ÙÓ!àÇÝ] ØÚŽc9ŽSˆø{Ë_gñ09D§~-i>˜#@4Aôö~_Üþ{ªÁ`  ZcÔ4�á(…ÈöÉM˜Ó]ŸjG³Ùl´×¯ÿì÷­q+è€D€ë8Îz[PÓJüœí÷/™uê j=>®ðÇ ¬Ç­Ãá0›æ¼£È.=6@a³6Ê´#!àb>r€�NV€nv¦ðÆz:›½¼´À¸:ȾRýn�´^ç�&„\LšOûéÍÍžâÛœã^¥w´ÃÐa=5ÍE³Á„dk!“Ïtš4ÖϳýÍÍ5`ß­’¯³¿Øno!dr®'¨_ë�]˜ÁÐìàööúúùù�zzyÊt@�XÙ÷”Ë ñ�]¬7 <ƒö0À ×QÇôåBµn·Ÿà ÀÒÕ¼ ùm¹X,¶ žD#bA  \.$ã¬äÓ(F‹Åëv»îv ‘ë™OÔÇ8\JÎ d ¶FèJ ˆ�æ'™ø/ö@Ä€S<z„JÜþ|±€<Š' R°BG#\á€�l¾"aÖjÍàh^òøÑS÷ñK®w;áGSð°ÿ>ÃßñÔêªBô>Íé-Eýù³\.!äuyýúuyýõëõòÚT…S ò¡“a{Éù\Á¡ûNµüìì6Ìt޹H%nða ã϶°‘üK@$¬Ïœn¢Äãn î ?Hó,>3ÿð"•�ésxÁùÎIX€ªØ/CÿA°:ô¸"@u vwÂ…å¥Õ_¤It@ó�ýÌAPÝ»o*Y_÷ŠÔàêUñm~T÷À->’v?�DTBÜŸ•9àJÛ Mu®€Ë¼ ¨îÃÏ})€`*K¨5NQ§·¡Â�¶ŠZ¸*¿G�Se@ú;P>Åh�U½˜ôw�p/´é\6ð…q ¸NyvP&©,À„P9@X€S±dœ¸Pä°üv,q/`.ˆãXà: ƒK�ù@Æ}eVh± � :NE û!«ÈPJTXp˜Ó»ªÐD‚ûkH=E>@uôÛË$QZѺhßÁjè³sV?Þþ¯@Gõ-Èðü?ȦÑ$œ / ����IEND®B`‚IMAGE 1854 ./arch/monster/giant/cyclops/cyclops.x71 ‰PNG  ��� IHDR���@���`���š„Ú���ÃPLTE���æ¾JΞÅy—zÝ­1½†æ—JJ*J2ç½r²u‹NvJ¦zîÖkÝŽ2Άž†®ZÆŽöÖ†Ù©Z¦[Ö[Ý®bJJp†ZJ†Z–K³Ž2MœΞR†Z¼zö¦ö¨jæ¾jöžjk8¾¾¾I£,D¦f*Ö]·”NÞ®ÑÑÑÎþ†b2žžžZö¦…lzÖ¦PnrÖ^r–¾žg"r¦=®Zr¦zj¦z.x..ž���tRNS�@æØf��)IDATx^Í–oëÆ…µ•½õÞÜ{½÷&ïýÿ_•™á:ŠEÒt È- Ï7ggÖ‹íý»Ú“þ™t²ùtÂþXÿÔ¯Nós^–û}¹,•:Í¿TJq…šŸ”½?> à”µóìw÷÷w€ˆÿ¦×tàááîþÇû»‡‡¸ÛÝààb}pà€ˆp I°“8H³(І «èc®ë²‚±ˆ1vÖ;A1 Êê"æ‚Ç=K©žÇyVŒ}³Ïã¹eEÛ¨e© �•¦VÇ(,)µ Åø½¡*ŸAŠ�*çŠ}M;w§H,F@Å‚9E³�NñÕJæÞUõÐB~üJ*ÄØM{}t’ȃ�N�¨ „Öq¤Æ�0æ*@0ÅRF„I­äðP�€S„Ô0 Üj®Ïßl< ÀÜ„Óã­éùUÚXŸÞ4Õ‹�ã�øÔšfƒ] Nio"¥`X Ä&À¼ 5>Jáá€'kH¡s ˆ‘nc®h°mi"øó·ú›`yâ2–ÄœÇÞ Óß$” 휃Ÿ¥œèK€ÀøFC!Jå2E26En3ÀJ*û–ÚÅÚ–Ûá–Ý*x«9m›†Ï=ì<µ^ªaøÁí­ÛùA4â–þ³¶Ç~‘�•T$œš¾cÛþLñÓE? „£v௰UX‰X.uàûç(?ËE"Üm5‰�—�-»XÃö¼Ì÷´Ïü,Ë„ðpSPãXT;“Ò¸p�H½vªê¾dÙ¢¨¤¨÷`ž˜-d¥=OK»ªîÏ2P.„[D&ä9XT|_Ñp¹mÛ¦ú,�¿/�`þ•z=mXŸ—Pœ0È^/C?U; ü£[×¥ ò„�7ÇÛx~ÇÕgAe×yž]<>Žl…�­i Å@äå6Ž}S}æ›êyžGð³ßwïÀZ×ЃúF–kèT`Û³d'+UÙÝ£ýhôÔU5†Ýø,þüTy–™êzv9º{¼¸Â0ìÃï”öKÜ N��Õr Rqú£ÇÇýÝÅõ`0ØlVý•™B�LI`º^) ú!­¡¼õ16€úÈ®Ež-Pïa¿ß_ à «0&€z$MõKÇ Q}\@/ß�ržc‚:@ø" Ã_ççd&�yyyzzšN&oo«ö%ph¹ÕÁJÅɽÿi³ÙLás:eL®§0yŽñÉiŠƒ `óÛ`‚¨éån'Ö˜ÀÀAIý:Syc'€ñV8…ÉbÉ×töó´W“Xa!ÚúH�$�åŠ�d ýñt<# *s!ø—xçÍá£)¯cÛ6€Ãòé ²�.–®Ë[�Òó¼WDZÃ%lHÕ7B½½8;Æv\ç9OšZ Åëø5<Iƒ¿ªO„kçšYÌåzÍZ µ^rþþ>ÚïAp„uÀ –ËAÍ8¶x­¶íŒÇÿ{;ø7•Š„&;àûk^B �ÂdµšLp7¾ü(‹Iô×Cº¸;é½Â8ÆWý_¿ÂðwØÙ“i¥^»è¤šÛÑn7Ÿ_]]ãõjñº¸¼\Àï%«yZ/'‡³b.ô ç°°R)«Ã/Ì5¤ ÿ‹TâFÝ’ÊÏnNŽÇLq|‰†Æ¨ÝýŶ#ˆ¢(>›º3 ™l;P€ès¯’à¬3‹¬³£Ýñ=@êå<fà,úü\›{_g9ˆÔi¹»C²Ž @EQí9°{€_ÔïMR€ÖÖ9BýyŒ€‚’uï,Ó” 3@ê™›_ü­{ŒÕöšg�ßè@¬š®ÿ¾Ïctv ‡BX¦Àµ=м҆uJ0†n@Ü@ˆ;¢%€^klNï ܦHÇT7 õî&° ÅY€DK´%èˆ&ýÌjlŽ´•o¾l€Çwm� €q»Š !@!ÛðÚC¼  õÚÃóBF­è¨h¬ó¡bí}6Lz­�QʯÇ$=-’´Çñ¼sŸÉÞX�”‚·vpw½i����IEND®B`‚IMAGE 1837 ./arch/monster/giant/cyclops/cyclops.x72 ‰PNG  ��� IHDR���@���`���š„Ú���ÃPLTE���Ö®3χΞ¿zÖ¦*²qæ¾LÙŠ?ì¾j¼† îÖo™p½Žqæ¾rˆZJîÆjž†tJÛ®`|R¦pîÖ†ÆrJ†Zp…QÖ¢3–Rb21J¦Qò¥hzö¦}b2J.¬YÞ®RæŸJ¶gJ¦Zö¦JJƆ7™Ÿš†ZpÖZYÖdÖ\Eb èèèÎþr¦ZÎÎξ¾¾2B”¶šZÖ_¦z’„ z¦Zr~¥ ���tRNS�@æØf��IDATx^½˜‡Vô6…Qs-Û{ïôò÷šäýŸ*wF›uáÇ9'lIJóéjF–Ä^üŸú”ªq|¦¦á™†grÿ[ø@¸Íb•P4tlä\ h!H·Mœ+e„Øv;a�xo4¤b·ûúùó×ÃÎxï,yê€âýúüu·“8'*µøfßᛀsäñj!C‚”a÷âÝ¢ø… Â0t• ïVEp[®ëNp5\H…p  ÓEc€„86ÜJšGÂóÇÈ“·rã…Ý0”B¨]²ß A�yò¼Ð¯xI¤µÃ}"i“Ä1F0`á²ÒuÝzBâ·Z‚åz àvËL\a˜ B]ÿÂ%!š„¤¢&Úä‹H®W9ú‘V¾t‹6°ZUåH³xÄPFN�nú€ëVXp‚ÀÉ X×h,€¦eñ°PŽòþÕÑpèñÙÝ•ZdMc§tÙÂâÄA ^ p7ù( ó_�F VèÁdùã¨�KÍ7…,7�€HÍ3FÒnóÍÒ!$ALñJN€?\¿ûÔ4 ü`Š`�$ߊj‘+Æž�Jå3££çÇ!’Ax@Â<Ó¥�ÈJà›X 1üÅ�Â8+w ް2FiØ1¾€8θF°ÈÍò9@)µ#QÚ¦HÄÖ³&Oe¸ÊÝ �¢Ñ¥ÒY:ÔÌ�¶'ÿÜ@̺ T΀ÉظÒötH²vJG–h8°AFH#S?ÃS€Ð=›éâ—# ¼’ï3Êfæ¤[�ô`àHs`“Ðv W�vZK�]ê JßïzÖ@“Àr‡ÒÚ!Oà÷Ê�‰“:æÑôâô©8~üøñnˆ—brBx®ãë$Fö!8y…ÓÅñ�|Ú_…®A½ò€ÀIpàÛÝ] ØsÅùÙÌ!I ÀúûYüÝpxGw&|_sç€dÊiHÍ—åÍ?¯5® á°=&Í,€—v?ÄlÀ?J¯¿z­%®N§sè­>ü½Ý¶Çm 0g�N¡ïyÞj_PÇJÿžo·/Ì+@Düäþ~u €sÈ XÛOOOóÜ&Ýüb÷(êt¢C™Vc2€¡Éœsƒ©ØêáÐõ ÐÏî?¬fóùÃC›Îcý>@@&3€Ô:XN;ÛÙõõv–®4gr«zE8˜©î,;©¹ÒZË@C’oÓÃêr¾½¾¾¶ìZS²;;Ëýþ!Ós="í'Ta‚§í¬“€››««ËË'èáñá1Õp°Qì@@¢ã%�}Î7ÏÐ ܬh|8PÐ_ç€ÙºÙ`|À`F�ݪ 8½`¹\î°„-‹[Ìâ`¯h%K¶F=Z.?ì÷«~ˆ¼.™ðÈEð\©‚@É‚ZúÔˆ< •@�èŸÅ[C±:&�nñ虸ùý`Ù8ž-R28Ñ#@Áˆ óv{Ž«ýôg„‡[P_#Z-íÌg ¬Ç_¾ŒÇøϬ.jÄÏÓ‚ŸRÒÏŸëõ!ÖW~¬¯~ü¸Z_¹uá\‚l3|1x; è|K ¼z¨‹jÙc˜»ÉsAµÜðÍHŠŸ|mÿhk ä 8/¾ wß‚R¾íßäkMl À;“B|HÛo^Z˜·�‰R±¢þ»áæàÖ:0õC°§„aaz S;„lcA¿)�ÏÂú؃WÉüRtVä R_©``S2?x³€úøÅ>²m÷ @Â)¤óY™Òhêk€÷xéå4 ëk i·.XTŸÚ A]T:pý\*¿ª ‡“Hª«ö+»�0õ“@•Я÷Tmà/©¦-^DÊäÀ¸ÇÚ¥ÈQn%@³Ы”è >ÒB•ÿ9æSÍzŒ=DÓ< @�€¨8 w‹U� '¯0D²f„;¨±àI¯öÓÅ©Áð¿!ÍÄH€†r‚xz„mêϲ1€·ÝXÉæñöSµš[¢ ø¿ñÍò—ùÕž����IEND®B`‚IMAGE 272 ./arch/misc/d_statue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!!!aaa¡¡¡���@@@�2�¿¿¿T…® ���tRNS�@æØf���¦IDATxÚ•ŽÑ „0MBèÿÿñÅ=Š»z8]a†à±3ŽÊ«`PëS§f (ôšÐø}ÂñÈw¿x �Ú¼ýGÙ’ú�ŠyÜxJФ ¨xNâ]4` �5[ïf`0>r¸xGLŸÛþ30 †ó­þ &ä\Ï�¿@¬æØ`õæNPñ¯ƒé}²| mPj°èƒâ_;Å�¹ûK¢é]����IEND®B`‚IMAGE 159 ./arch/weapon/sword/dagger.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaàààG$���‚B' ~n���tRNS�@æØf���8IDATxœc`n€5]@Ÿ�k(ˆ†‚A�XÀ„”À�,š–––"l t-„mÁê°¡��žC²¢¸����IEND®B`‚IMAGE 163 ./arch/weapon/artifact/Fdagger/dagger_f.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÿÀË R-��� ðÏ���tRNS�@æØf���EIDATÓc` 0€1ì@¦P/ŒÁc”€2bc Ê¯ß2þÞ‡2˜ëaªëa"¿¡Úøù÷ÀäÞÃìý w�õ<�zá^µks����IEND®B`‚IMAGE 178 ./arch/weapon/artifact/Fdagger/dagger_f.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÀË R-ÿ�����ÇÔ���tRNS�@æØf���QIDATxÚíÎ1€0Ñ;÷?³„΂ÕÞLJþƒè—9ÌxU$¬µØó$z…³³ Ôƒ|£?2·`– ^éòÜ ªàJ;ö¨‰B…²�Ý„ƒ>±Ù‘����IEND®B`‚IMAGE 185 ./arch/weapon/artifact/Fdagger/dagger_f.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÀË R-ÿ�����ÇÔ���tRNS�@æØf���XIDATxÚí’1€0 Äîˆÿÿf¤€T1ä:0!áµnœ!ú õ~B˜‚6�Ä-°ÜB©’1п0r£!LB7ØV4¾×.#TŽÔ�©•p ÑÐ2ôóà„ƒ>Õ–Ï����IEND®B`‚IMAGE 177 ./arch/weapon/artifact/Fdagger/dagger_f.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÀË R-ÿ�����ÇÔ���tRNS�@æØf���PIDATxÚíÑ1 À0 AµÿsHe§Y•I‘UtÕ÷Òï®a€ƒ$ƒØ EØÇ¼# … 0¶Ô~7€ÜX¶îYÚb¢1^¶þ<rX=,—!wˆ����IEND®B`‚IMAGE 159 ./arch/weapon/sword/dagger_r.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VG$²""‚��ÿ�����‚B'Åß[Ì���tRNS�@æØf���8IDATxœc`n€5]@Ÿ�k(¨†‚A�X@”Á�,š–––¨ât-„mÁê°¡��1›¹4Â����IEND®B`‚IMAGE 898 ./arch/monster/humanoid/Arabic/dancing_girl.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ãPLTEÿÿÿÂq9äŸbÚTÒ~IЃLß–\Ü‘XÜ‘WÖ†Pç£fÜVÒKÓKׇPÕ‰Qè¥háš^ØU׊QÒJß—\Ô‚LäŸcãa׉Qæ£e£g<Ý•[ç£eÝ‘Yæ¢eæ dÕ‘Xæ¢fä¡dܘ]Ý™]è¦hãŸbÜ”[Û’[Û“YÕŠTÔŠOΈOÌ„NØVáœ`ÙVÞ—\ÀvCï§_Á~KÔ‰Pé¦iìªlÜ•Zê§iä dÛOÉ…Pߘ]é§iå¡eß•UˇLî ^î _êœ\؈PÔˆOå dë¨ià—Vïªnì«næ¢dB&—a6à•VèžZì©iä™Xê¦fíªiîªh[6L,E(I)å™Wé ^ç[Û’RÞ“Tä›Vf0n0M-I+\5o8s/âšWë£[äœXj2„0F)L1wZ ^0â™Wî¦^ë£\j/`6Q-C'tM‡B!ï¦^~6n6L*G(Z6ˆZ#í¥^8q8p0S,D(vJä‘TgÙhàˆ3n4L+F*R1\5Ô‹O߆Oe3`6mGpPpNsMU‘[ ±Hp4rLmJ`9};ÞZ¨ò���tRNS�@æØf��MIDAT8˅п/CaÆñçÛ{¯K‘† ·ƒÑ"bäOè(&‘0²šØ˜ÄÆh25F›¡ÿ€Æ&a¼A ¢©¨ôÇmï5T¤­÷g<ç“sÞ÷ ‚¡vlÙÁ9½ìXÀ)Àå&ìšÁ1¯9¸Z‡Û¢\K80‚} í߬q4¼"%iï牜 ÿ"P(iû§ÝHsfš°Áo¾ŠÃÀË),�TfôÈË-ô (™.T¢Uhù4–(™µ”W€fÙóÜ-¿)T/“ž�î%ÉŸ–¤p�¸Ás7<öf'VÌÃK2GµÖW�34êY*³O6¥ÖrS“Õ¶ xç}Šîgdž2õŽ;NUfàÇqúSnšpø’ÜѺl ò’§"P·#9Nb4%¨m[á:-I#ƒý>à$©ŽäщÍ�z RIlYaοàh¸Z!“@����IEND®B`‚IMAGE 925 ./arch/monster/humanoid/Arabic/dancing_girl.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��þPLTEÿÿÿÁ~KÚTÒ~Iæ¢eäŸbìªlï§_ЃLÜ”Zâœ`Û“YÚ‘WÖŒSÔ‰Pߘ]ãžbß–\Þ—\Ü‘XÜ”[ÓKé§i[6ë£\ç¤gí¥^gÙáœ`f0F)Ñ„Mãae3Û’Xä c×Táš^Ò†Ná›_æ dÖ’YÝ•\Ò‡OÝ•Zâ›`Ô‚Lܘ]Ý™]è¦hÜ‘WÓ‡Oá›aÖ†PÔˆPÛ’[ÕŠTê¨læ£gÔ‹PΈOÌ„NØVÙVç£fÜ•Zê§iä dëªmÉ…PÜVå¡eè¥hß•Uè¦iì«nL,E(I)å™Wé ^ç[Û’RÛVn0M-I+\5o8s/Âq9L1wZ ^0ÕŠQj/`6Q-C'tM‡B!ï¦^àš^~6n6L*G(Ò†Oˆ3n4L+F*R1Ô‹O׈Q`6mGpPpNsMU‘[ ±Hp4rLmJ`9};ä›Vé¦iâaâ™Wî¦^ØUß™_íªiîªhäŸdâšWë£[äœXj2„0Þ“Tà•VèžZì©iä™Xê¦fZ6ˆZ#ÒKë¨ià—Vïªnæ¢dî ^ë¤f؈PÔˆOå d8q8p0S,D(vJˇLB&—a6Í}X×���tRNS�@æØf��MIDATx^­ŽC“tAD«۶ǶmÛ¶mÛ¶>›ÿrúÅô®ën&&Y‹s¢ò¢×d}cs Á™_X\Z^Y]ƒøäÔ4žá}|æ�þë·ãÅÊ[Ç'ŒdadôáÑÂóøûŸd¡§·¯ß4Àã¡a`ÂÑÖÞ±·oêêxCcSsËéÙ¹ýâ’ÈË+*«ªkj¯¶íõ¤ôïÿõÍ-wwtl$¸ôþüåë·wï?”}üKÀ8( œ¡ˆ+.A@°b‡£srótdìLKÏÈ´eht‡'$ž(33º$i²0—’м~ Ó¨""£¢c^¶Êâ½¹„ éCêµàëÇÊ‚XE¼+G ¥Ê R›uºd ànFqb ã¬Ó#ÑØ,ȵم`Mp·ˆ‚-ínJ ±B«aÖ sŠDjà­¬ç¥Xô¶y;}<hñ$Ý����IEND®B`‚IMAGE 898 ./arch/monster/humanoid/Arabic/dancing_girl.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��òPLTEÿÿÿÂq9äŸbÚTÒ~IЃLß–\Ü‘XÜ‘WÝ“ZÞ•ZÖ†Pâœ`Õ‹Rç£fÜVÙŒT׈QÑ„MÛVÓKÒ†O×Tá›_ç¤gÁ~KÞ–\ÙŽVáœ`âžaÞ—[Ü”Zßš^ãžbÛ’Xæ¢eÜ–[âaÛ”YÃ~JÕŠRáš_Ú–[Ù‘WÚUÕ…NÞ›^âžbè¦hÖ“Yàš_äžbä cãŸcà™`Û“YÕŠTÜ”[ÒWÖ“[͉SÙ“YÌ„NØVÙVØUÞ—\ß™_Ô‰Pé¦iìªlÜ•Zê§iä dï§_ëªmÉ…Pߘ]é§iå¡eè¥hß•Uè¦iî ^ë¤f؈PÔˆOå dë¨ià—Vïªnì«næ¢dˇLˆ3—a6à•VèžZì©iä™Xê¦fíªiîªh[6E(I)å™Wé ^ç[Û’RÞ“Tä›Vf0n0I+\5o8s/âšWë£[äœXj2„0L1wZ ^0â™Wî¦^ë£\j/`6Q-C'tMï¦^~6n6L*G(Z6í¥^8q8p0S,D(F)gÙn4L+F*R1e3`6mGpPpNsMU‘[ ±Hp4rLmJ`9};ÎNH‹���tRNS�@æØf��>IDAT8…ο/qÇñçÝ^µwGBS’ÄÀ"ahÒÚ˜ˆÿÀБ•Ib4Ù,Æþ!–ÖâWb‘HL‰Ô %¨¸»rZC‘¦÷ýêg|žWžçƒtŠYXЃšÉiÀìIJ²,ªÁ&ÎVú/$}µ­p4]”Ô8,+Á:œ¤»ŽS£¬j:¬ýt¼É«ÁJsí›”ó*°Äo\/ †K’ʃ�N†Ó©¿ (:82¹?~ÏbWdî ÜÁ‘1(ÎÀKŸH­Ð²�”FÀ³\K í/&ð,�Î%#gêà$ŸLà²õj+è©Úp-:`º¶kS}Ъ qnE œh€Á �p¯IxŒõV´ çÕèæY>Íw#Á›ÈW &®à‹‘-0¢µA´ Dbu5€æ‚H£®ºtßXO!Á·¨x����IEND®B`‚IMAGE 231 ./arch/monster/misc/dancingsword.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE4V #9UUU$4B(CŽŽŽtw{��� 0ÿÿÿ .L)Csw{w���tRNS�@æØf���eIDATxœc`ÀB' òê  H,B`ÕjDUž$ƒj‚Ú×!gBC<ª è&4¢›ÐKhnèè|€â†ŽŽd3X;ÐLˆî@1O°c+ª£Qõc >#4×¼��ª©${7x”·����IEND®B`‚IMAGE 255 ./arch/monster/misc/dancingsword.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4V #9���ªªªUUUÿÿÿ(C)C& 0=DL$4B 999sw{qqqŽŽŽ.LØWP���tRNS�@æØf���tIDATx^ÕIÃ0 MRò’¤ëÿ[ÃçXÒSæJ‚Ò¤ÛÃNáþTP€r¶yAò,M/š}¨“qnöâjþâsänî;÷·‘Û…yaá.,ÜÕþuïDîQ8׫À;ç*žO Üõpµš YÒ½ùú›æä,²����IEND®B`‚IMAGE 282 ./arch/monster/misc/dancingsword.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE4V #9���ªªªUUU=DL999 0qqqŽŽŽ.L$4Bÿÿÿ(C)Csw{tw{ <DL& PŒf@���tRNS�@æØf���†IDATx^Å‘É C1 #ÙÎòönÿÿ«…ÐkThÕUƒm<é·T3Ù#J€îSÀaÞ2Æý¹…?ª`±i°ÛX‡õŠX.õ$pK@ÍÛ©4·ã_Vtyè�ü8˜�ì’@6퀤vÀ ¼È'0¾ÁHå ßökÀËZR±$£~ð#n~ 2¯,����IEND®B`‚IMAGE 104 ./arch/system/dark1.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATxœcX `0(Y�³£*Wwë����IEND®B`‚IMAGE 106 ./arch/system/dark2.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATxœc†U@À0(Y�¸?Á{j¡’����IEND®B`‚IMAGE 106 ./arch/system/dark3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATxœc†ÿ@À0(Y�'æUÑIt€����IEND®B`‚IMAGE 681 ./arch/monster/humanoid/Elf/dark_elf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEÿÿÿC2> )#&"@   %$&5* 8 -*=0, ÿá�')  Q["),  +)8_7 ���tRNS��v“Í8��fIDATx^½ÕŽä0E=ev˜¡™¹‡þÿoÖiÕ˜•æeNU¤s}ËAÏ WšÿùßÇšÓ—l'E�JÍÍ÷ÅÁn¦ë³þ¡:¼›é@3釓Éú²Ùc´mß.ú}»‹šYnÍŸnšv=¿Õ  %Øô7–ãø>[Õ=#œç¸õËp]—|ÿY?Ï8eüéþqpÄ—­åZˆý€M('ìdšóÕ€ê2Z Øœ1Îòéù;Ê™îÓïù޲-©wOŸ¿r‹IR)°me^a}p)¯½…²Ë„Èm�Q<B:ÆB©N©À¢§@š ¥4�ÍÞ«Ò BåF�¸‡ã^ã/º1YÉ{Fþù…[·òÈò’ ÆZê º¢ìC+ÖÄYVÌŠ. Fc\¬È¢6:DeB/À¸ÇQ’€®ð,TMˆ\š£(JF€ö!ª"˜ø÷%ª#ÛEY£õlAC­¨$šÓoÊ_‰¼H¿è]����IEND®B`‚IMAGE 682 ./arch/monster/humanoid/Elf/dark_elf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���íPLTEÿÿÿC2> )& #@  $&*5"%80 -ÿá�* ) ,78")= )  ',_Q[ +7z(���tRNS�@æØf��kIDATx^½ŽÕrä0Du¯Xfd3s–þÿsVJUÊe&yØv¹ôpŽºEÞ´y_\ÙL×ÑE‹ ³dcÑÚ<èï˜óíZðÃO“Éæõjd«C?ôûiwÍÀîVx|ÚmµºÑpì€ZÆŒ3(‡ÇA‡âÛKA0)cŸÐ$IØ—¾À„äBþüõµ÷YîŽ{’sOH—LüÞåMSf}_H¥RÄû·?¸¤‚1Ë¡Á& ´Ý`ïÞÿ‘Ú¤ÖhÞ7å_L0©õ—ˆÒ=cÆôÇ¢rŸÒ!¥doûÒ@-üûu‰Zë2P îËš“Ì$9"Œ Ü9aéYDóÂñ§ê¸j,DU±� ­G‰Í`p„`S´ÛîTjiÀÌæà&Úy-†Œ8§ù„À¨˜ÏóªBˆâ%S±.gy^ÍBDË3âG‰çJU—7¹µ*Vrå¹uüZå«íÿšýÛ</Êsž����IEND®B`‚IMAGE 220 ./arch/monster/humanoid/Elf/dark_elf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�Í…? R-���@@@¿¿¿ú€rçYi­���tRNS�@æØf���rIDATxÚÕÏAÀ DÑ"Źÿ[Ƹƒq-MþKÏ…@ðír?Ñ9@‚©€\Añ:à¸Ã0ËÞ‘c@ ("¢îcupªnœf¯Èsê «ˆØŠNð×Zìž­†`WÀÇì Œe‹ËæìÍ[ƒý����IEND®B`‚IMAGE 221 ./arch/monster/humanoid/Elf/dark_elf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��Í…? R-���¿¿¿ú€r@· W���tRNS�@æØf���vIDATxÚÕÏAÀ DÑVpîäŽËÁµ¤ Íiä¹p�Õ"+8Ð;þ[ ÿ: Øx#~`†ä½½£g q(`Â{&ªŽ¬;Ðìs‹ÝÞù¾²XÁjöÖ½X}´ °S ¤É<ç`÷ÀŠ‹«æ_Fi<†����IEND®B`‚IMAGE 223 ./arch/monster/humanoid/Elf/dark_elf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���@@@¿¿¿ú€ržB���tRNS�@æØf���uIDATxÚÕÏQ€ P;æ¸ÿ¥#ê®~SÂHèKÐc¯D ª>0¡@ïtè'$pÀO Œå P˜U€=`ù�ì+€ÌmŒ3 ¬Üà2¦xÁªäd?vù)4€ Àùšà¾,�ûç4ŽmrÑQàˆ/¿����IEND®B`‚IMAGE 221 ./arch/monster/humanoid/Elf/dark_elf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���¿¿¿ú€rº Àà���tRNS�@æØf���vIDATxÚÕÏQ€0Pê`÷?²]ˆø!å_t1i_f°N0pâ›W„½;•í`Z°ÃùšIáà3‚#®%{°?Óö-(QD¼@Þ‘[ÈŸ˜›—HйHõ<J°·  …úržPfõ-ð‹¹LEµ„Æ]×����IEND®B`‚IMAGE 220 ./arch/monster/humanoid/Elf/dark_elf2.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�Í…? R-���@@@¿¿¿ú€rçYi­���tRNS�@æØf���rIDATxÚÕÏAÀ DÑ"Źÿ[Ƹƒq-MþKÏ…@ðír?Ñ9@‚©€\Añ:à¸Ã0ËÞ‘c@ ("¢îcupªnœf¯Èsê «ˆØŠNð×Zìž­†`WÀÇì Œe‹ËæìÍ[ƒý����IEND®B`‚IMAGE 221 ./arch/monster/humanoid/Elf/dark_elf2.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��Í…? R-���¿¿¿ú€r@· W���tRNS�@æØf���vIDATxÚÕÏAÀ DÑVpîäŽËÁµ¤ Íiä¹p�Õ"+8Ð;þ[ ÿ: Øx#~`†ä½½£g q(`Â{&ªŽ¬;Ðìs‹ÝÞù¾²XÁjöÖ½X}´ °S ¤É<ç`÷ÀŠ‹«æ_Fi<†����IEND®B`‚IMAGE 223 ./arch/monster/humanoid/Elf/dark_elf2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���@@@¿¿¿ú€ržB���tRNS�@æØf���uIDATxÚÕÏQ€ P;æ¸ÿ¥#ê®~SÂHèKÐc¯D ª>0¡@ïtè'$pÀO Œå P˜U€=`ù�ì+€ÌmŒ3 ¬Üà2¦xÁªäd?vù)4€ Àùšà¾,�ûç4ŽmrÑQàˆ/¿����IEND®B`‚IMAGE 221 ./arch/monster/humanoid/Elf/dark_elf2.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���¿¿¿ú€rº Àà���tRNS�@æØf���vIDATxÚÕÏQ€0Pê`÷?²]ˆø!å_t1i_f°N0pâ›W„½;•í`Z°ÃùšIáà3‚#®%{°?Óö-(QD¼@Þ‘[ÈŸ˜›—HйHõ<J°·  …úržPfõ-ð‹¹LEµ„Æ]×����IEND®B`‚IMAGE 339 ./arch/construct/Palace/dark_palace.x11 ‰PNG  ��� IHDR���€���`���⤊{��� PLTEÿÿÿ���SSSs_7m���tRNS�@æØf���øIDATxÚíÔÑ „0 DQgþÿ£÷Åe¡jJÒ4ìÜ'µB{)õ6DÖ€àÚŸ�Õó먞• ì8�Ͷ�p `×�,�Ƕ†àOøUà]�§�€b@Þ|²� €�yóèÈÊHÚ€%�‚Z0.  ¥eÀ÷žãV`¯Mæ ðfcA‡`S�Ɉ_è˜ÿ×tø�qGÀ=¿`>–®#@�7 ò "Ø@ŒöÊüU' 4Òz `N�kw  7�vt4€ù¬Ý °1xìo�psÀU½—Rêî¿{;>ªÙB����IEND®B`‚IMAGE 152 ./arch/weapon/artifact/Darkblade/darkblade.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���=IDATxÚíб � ÄÀûMAA¾ñ­ËJ½=>ï§ç„{w°3ëb¿Àƒ¥“ì|úU ¼yÂ�fÙÞt·����IEND®B`‚IMAGE 151 ./arch/weapon/artifact/Darkblade/darkblade.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���<IDATxÚÝÐÁ �1ÃÀÌö_t*8G>‰¿ÂÂx½‚›¹~ÿü„ŸòûMî|ŒèCÜÃ÷A+Þœ Æ‚�h«tô����IEND®B`‚IMAGE 151 ./arch/weapon/artifact/Darkblade/darkblade.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���<IDATxÚÝÐÁ À0ÄÀ÷_t*úÄ{¿!vîÁ—Ü~ÿô~ÊOô[Ù/x0÷ð~ÐdàÉ{�ËÂ�j©ð€S����IEND®B`‚IMAGE 155 ./arch/weapon/artifact/Darkblade/darkblade.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���@IDATxÚÝ1� {ýÿ£MdFMT†.G ¡þÞœälÈçÎ|Ðe9=Þ êŽ"Ï Óæñºâƒ/k�Á�c+ÙÛô����IEND®B`‚IMAGE 155 ./arch/weapon/artifact/Darkblade/darkblade.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���@IDATxÚÝ‘1 � ÄšþÿтਫƒÞ ¿“›œ~J~”³‡Aü`~ú¤¾Ø—¤.#sdÎzàËk¾¢�cö‰íš����IEND®B`‚IMAGE 152 ./arch/weapon/artifact/Darkblade/darkblade.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���=IDATxÚÝ1� {üÿÑ1FY/…Bý-Nrôå¾äâæ?ïç mÉlÔ¬Ò_Ö³"�]æ´*����IEND®B`‚IMAGE 150 ./arch/weapon/artifact/Darkblade/darkblade.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���;IDATxÚÝÒÁ � Açú/Ú.ŸÔ|6²þ‰;É øÝé'øI~R} ì+=oGí¨|°—³ª"�[¦vø����IEND®B`‚IMAGE 907 ./arch/ground/Wood/darkforest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTEJN>BR^"F&fn.Z*Vb~vr¨j7‚›z†–’2¢ºV³N^&J6 þÜÞ¶vêúJ^®.¢V"®Ž~f>Z. ÎÂNÖÛ¬��IDATx^E’Õ¢37 %–)p~†"¼ÿs՛䴷sóG†£·nû#1ù<ë:>7¢ÿ^-ÇÎÂÒ7Q‰™$±Xïìg}7tyìĶœõÄð„‘Îè%󭜈MH Eƒøh’!™E$OƹOm1IQ¹µÁGû2h4ÒÿuøÅs2Ciž‚ŸÒ„yO÷WͤF®w@þØ?{hL0JˆCU›»¹ª _šÄ QƒÊYÆãá:ët]ìÜ)·ÇFGˆÆ”„öЗ:­S¼º¼%¤eùÚ¬-ä`’¨ï§ÄôÍEážAļq³1jâÖ6&™}šï.×.Fîà3$DrB*eDuYÕúæB†Ï "˜ð4­Ê&ç«‹©.Þ£ÅáÊWÍ¥Ö¡ºàý]ü©‹òÓY3¦ý>ÉÙîŒÕeË_š0 +À÷I](Ö."m?6dž„ù²j}+OHm£Œ=Sû¿6ƒ°pNìvЧ§ÇÄÅR+]BHfG®Ï×Ëfb¥»kHìr‰É;X”QÊ~ž°Ò‹ë`þ·²°kÐÿÞO%ãõTªZ]Ch ɤ$0–—÷SyB¼XQ ñH0\N±Ý\íþK¾'Cï!8€Ñ¨‹4ɨ6¢Ò´ÅÇv ByVÊä(ã!WšÇ„v>øS ‘Aok2àT©®‡ ½~¿ô±ãÜw^KH;Å6B1fmY\ëd†"Ço¯¥(s¡öεóD-u}`-8íËO<BÚ] ±íÃËnµµ]Nrš¡è“Ó9H!ǶíÆÀ»š]‡Uý*G'ë°ùD>®I C¥Hc~øóŸñ,³þa5t®Žä;‡ýÇ_8~ÞÑ·ß}«}Ä‘ºšª9è� L����IEND®B`‚IMAGE 5670 ./arch/ground/smooth/darkforest_S.111 ‰PNG  ��� IHDR������@���[a?���ÃPLTE���¦J""*NFJV.~:Rr2Bj&^bZf6>–¯Ž† nÈz’ž‚ŠvšªÏ¾¦¢·SÚâÂNþf"^JFæiFþÚšD1§yÚ���tRNS�@æØf��IDATx^´šç¶K’…Y+}–÷ëÍñFº÷v÷̼ÿSMšr” ÑKü+>íØ±“ @q˜Œ="ÎgþOhc‹ ñ²Ã ˆV1ߦÖlÁ¡}ì'çø6__wÎzúÃ%†ãõ÷ïçû§þ|~­^?‘ÿm|�¾¶g‡fØŽ9â¤åŒ¤�óéùíçY$(æéÓm~¸j¼Ìzúä’ïGê?ê?œ/áŸáZ_0 þDþh|�œÝë÷‡MßèÆâFÃ-3 Cãóì%99ÎÒðq=­nó[w€¾þ—£õ÷ïçûQœ®ò?èŸ×ú¾"ÿy|�ÎσqžlÈ_v8 >^Á»»±fhc€‹€Þæ7Þ¤§w{Æ£õ÷ïçó¢´Æó›<ñœü¿ñßïÛ|2üPþyzÄÿE~ÿ4>�ÉâiÁI´ûz+á.;œàB9h³6=à8Ûâp›óù{úï>Öüù·ùHž¸??È%}ÅîÃþå¾Éç@ƒ~þ©LÜøÿ·óûãp~ýy0°Ÿ¢ïO2À³–¿g¾‹˜"Ë SƈÃã丸ÉçÏ×óg=ýºw�£õ‡ù‘ã–Gï÷ä_0¡Wàþü¤âx˜ûGWù´¿ciÐÏ/ô¤òÿüš ÃΈÀ?JŽã ?1|¼õßù7~ôœÜÆo4Bø+F¢óÝëMþïëÆû_ô#|Ü?Žýâ-¾¾7¿}æpúL#w¼oºþ 2v>ðhâè†ÿ²ÉÇOþæ«K£îVõ§äÓ¡ü‘`»ƒùyÿ|¶w €»qƒ$šÍ=Äñ‹ë*¾ ”ó)I·ù‡—`¯= ;ü`¡_ èzþ0ô}Dß­Z¿Ãüjý>ž˜àô ΂ƒ¤ò§ÏwåO…~C†Ýl§�±=XÏ ±šƒeWò{ ˆù×U_ê|–lá{[æÃ¢´ ‚$™mu«ƒõîôóOkF˜nÍ_Ç�YÏ‹QK—×z= ~üJÅøa´ûÚîôPÅ“\ëëhÉ|\óF3ZÄq|Õ—eÔŽ)ZñÚ?¾Ê‡ë÷yÜí?×þÇóožÍ[ù³¶D^xú¨é_-΂[PçþºÃçƒtÿ¤X×iËŠ~þ¸AÉëÏçO©ñ5¿ãKàicB‡âgïz·ðÄUn|ŽÎ¯ë¿ì†yZOŸ½0Ç�û©àßClË»áüºo¦ï–æ¦ñäùÑr‡ë·zÍó µâXðñü–jÿñ<èó§#¶FÛ¿eBäÃÓÐù$Uÿñ/в¤—?Ÿ·Œ‘Ê(Ç`CÛ‚…Ž?è‘þìÞ­÷¤Ö‡€È¯G.8 4æü¸¸j[BÁzvögšËÙ†E>Pÿ¦>“<IèÎÍ? Œå÷ò1ªó3¡/‚Àšüš?júg\ÀËüÑ“|GGìJùYáòèƒe þ³B¿zBDËÉ49|WwÃçŸ×m™º[Nwè?Wü ÅÏ\ Šx ~W¿âÉ¥>÷Ãè,õãùú‘ü#ç§ô&¤UþxiލJXç—燑ë$ýü7ûgE7<d±”üŒGÉ2„ÿ„˜“ɃÀ!vHCºšoϯ?½ÐI½³¸!�ònù]ñ/%ß=½kA˜ÄŒtêÛ¸«þ”³^.u7ú±üQ)ôç—þ:¿71ªüù¨ øuþ$ªÎ¯Ÿÿvÿf›¿Þà�Hþ4þ%0séÞ7pq2'>–~&ô„�©EdJÌñ#ðÑÔ—K¬@ûÛ}ÿÌѼU¶¾Zrtô™ÐCØÓoýWúñüÙhþq}îM2¬òd\f´ý£¬ÈzùÇû_vô, 6•zk4�Y{¾üïkD~ý­ô�ØE ‘óîåÉ4Y¼åOñgênúÚ @òº>!Nµzívåû<ަ\êGìYêÏOj €méûv:®*ÍNÿx0œÜꟵú<´Ø+ýf4�ø®{:-€=ÑzàcœRJ7kpÏ�„–¼[bå¿úÅŸDsÅ»Ï×õ ‰ 4«þÝ%àÝùGéQññ/ÿCXû—„9|>.ZÚÝþ ðgéüVÿY«Ï‡=˜âã`.‰O?BLåƒ =¤tWH©u8Y¹}—Μ½¿$‹¨öŸõ1RüBBÓÃÁ=y�ŒºzŠw¥×/ø»ä£ùËÊþXzíéïè3¶ý—¤@°þ™q³ÿeØæ÷®˜(ýøÀs´ˆ5û€Bíq£�¾ÃHnß'dNânfí÷ð>–üp!„¦‘ùÒ±«·SÄYG] ޤ~4?¬ü)ÞW û­PþØN)¾ÿȲ¢îÿ`BÛ –ç¿÷ö_†mþüÚ”)½Uƒ›+Y½Â¦áC`Ôz 3lG¾ïÝ)Ì" Ÿ<"üÕÒ¦ßjHœäʱÑç6ÝIÿn,ZññüÚŸ&,™ê‹–í³0Û{ÿª®4²=‘úÆß¿ëü 1ÚFÓÿL䇾]]«I¹ÔÕ¾Ñÿtò{—È LW@ª>_d0�P¬VØÅ#°Ì„>UKÌ|5w*KtFÀeŸ ÿÈíQH~2@TÇé¥oÕY^ññï�Ú_¯ð‹4Û3&ë§uýk±Y‘ #ç©ü‰Ðã{B3ÛÐéß µ?YVB(ÛñpÿK1•b8»ùÉEyÑA9—šÇã·°ÒhVØÎ¶zTPézg•2Þž?àZîÿ ~MåØêºâ ß› â+하÷¦hRzUÿ¸ª&ûèâ×ÏàÕp€½¡8ç×úc:𡬩ïIçülšö1ß/¡æýüåDrNšþ©ï–/sÉå¤èŠ8€¨Yª¼üýÐ'€ÐS¥ÿþH„ëg|ïW€ÝÓËG¤—:~€Þ.q–"ҵ€úÂQéÿ§÷./4ç¦:vÁçîå;ƒ¹Ûæ×Õ¹<s•iêƒ-—]õ>ÓŠ·‰!ôµÛÑÐDN¥¸êÿû#2Û¥–ð?Ë9 ¨ªØË<Á[½æ¦ÇÛPÆIr\LJRUDã —*r…½ðÙ„€ gŠb)ý4ýüºOW±ÆX@Nª_®,п/páKn&æH(ŽJÏ„^\)ÿV]s“i%ëó/Þq7eâ/Þä×Õä«.Þ¨5‹Ò3 §…CÇèvW)žÔTéCng.Cõ>ƒ íŸ\ú;’‡š÷óC¨¦òûBϼN}Or¡7ˆä\V�FœD-žÑ#»pF¸ÐoùâuAƒèëîÁ™Êß2!—1P-u^zk ÉéáÚ$ªôDêãhËŸ‹†“$®9›”¦º:<mxóöÏ£D=cÛ:¿r;Ð@-×`Èy¤ŸA' õ¯ù¬{ÐRÁ¥ÿd¯òëó£í,QÒ÷^£Ã¹|ULàèþ_è$ó+½ô_©©ƒ¡LÔæÏL-7Wï3©×\ôçµNLs³Ò‹ŽÐw��ÌÏ»·ŸòÈ`§‹,—`ñy·ÌÞ Å‚¹„ Z¡÷×o‚†Õ4˜·úPù?wôK,¹HÄ\Æ0PW¯m>tô*¿¾2°:U¾ +~0O ÄRIÌg™Uúæ××Ï@ªýµž¶ð»A³4,šÁ™r¹¼[5þÆIäoÎOù¿ Y_çw'`P=¹ÐÀ[Ù_Wï2³û½â¢~›ˆß1�aèP¼û¿—Ä⬴~:úø7dú×ËþÊ ÃP¯ø¹;ÀOÀhG„ÿççg—;šotýêÊš–FØè4|ƒ#='!¨øFsDéyö=Ù“(˜”Ü3•¸á@^µú Dô‡L¦}kÞõÛó«üwj‡ ‘M¡'8RS×Õ¯<ØXÍ]=�BÔ ænæéC Ðúww> î—1åèF'Fj½uèrõŒ[ƒj’]½Û_ù»æ@rí†=Ù°i6‰Ý¸ñŸ6.õgëu´pêg¯ó-&„úO¯Í;õ{úäèÜkrìq˜ÏV\êíVßú¯´ÿ±áV‡o Ð\ëÛü¬öÒ<iøIð;î�¦íãQ´ù¶ZVz:ÿúÄYï?…µ~óíu8“Ͼ–›)mô…OS]ò<¡Z?õGH䃧 "{â@ŠqJQןRÅÝÍß&r ÂúDÞM<ƒM“¥æ(¤ŠÓŠ’£Vd}T}þG¢¿¦¾ÛpÑq¥=]_éûÒ'XswgœV ×ùM™¿™¶å‰_Lº€"¦?X§y<4�BÏ¡Ÿþž.>ó„>â"F·¬ÓæÂž,É¿†ÕбG?b[ôŸXýM¼ªy¡¸u²LÇ%ŽAí#S($wчæÍ™#W¬’sÍ+=—ú0\I^ĶþJ¿"‚ËúÐIVEžímôÑã šWýDQŸÕúÚ_p$øædy¢?nôõ".ªýps袿Ç`G#jxþ)èMé ò»ú½þ/s gGj2¡Ï/ë’#Ò ú¸Òkòë?`Ro ™ŠþL™¸^¡‚V¿«ûœJŽ%Øhõ&«¸mcq¥¾®ÿÖáØ¶©¼nõ-7MGøkÞê[Súö—ˆþ1áUî“¥L¬8Ý]p6þª%¤ùùðƒyBϘE”ý®Ð:™<·}!­÷.°-×Lr~M@©·m_öy¿öŸI½æ;*êg& ë,eÿZ…–ë)ÿDùcÁ›¥.5þµ‚JßåÕï¾5wCëtÉ!\Õß5ú¶>•P͵ËuDpYŸJî ½Î¡6$×ýuõúüèb€äq­_A}¾ã°ý|Zéäч±ýœ­#8/¿«œÏä—þ Ò¯¦k`ÂdzUž¿ä<’ú¡ö™â‹íûÏïç”oâçt ybžÔµ3;&¢~íD¿r¾äÖfPÏg$ý½$Òýƒ¾=)ÿ¹¾ô÷`›Ÿ÷øBú›=§«ŸÕùgB¿J¿4ïúC’£ÿoç\›µÁ(¬Kq Âv0¾DÆÝÝÄuv{™iÿÿ¯*Î&1`:îz§œ¯Ï¼^âfPÎ]š'Óuê!âŒ3˨æ“àËÑ3j2«âáD§š§Á—hz©{äøY€—DÎ71?ð±Óèþ¡ãÙ‹ÿŸYsÀþ}÷G ¸T¨Ú¿L’TøG~ÓV<ïóuú8CT0˜¾Í§Ÿa.ƒ2»nÿ…œŸuú5¯+ÿ{y¦¢à¶!üÝ>þ‰�üa|òÇöFqƒýö—ó y^üüqJâòùÙ(Kþ†à K¶Ñœ×ùtqæðÅÃab¼[lnõËçÃ1r|¡?•§x+¿:Sùƒ6yoÿÇç!™�y XûWû“&çýü}ñüfø)Î/ô/Þ>ô”(yw?@QnûZªóû%ùz’œõ DQpA>?&É~ ÿ²òÏT\uzø/Mcèþx6…Â߉IÚä=÷¯Ÿ_¹²(÷_Vþd¯ôï~ªdû —A˜™+N1d>ýñüßÍ>ù|VçóéÃoú³ÚWù/©‚Ûf?òÑCd›âLΓþ¾Qús"ö7éóÅþbéÿXù‹ŽŠ‡ KO` ¸ñšo·ÑLäãÏòͤO>Ÿæóé…þ…8…£åR~ýV ˜˜Ðnïù+&Wþ¹ô·Q¬â½÷·Íøšä§çn•þI ®&FDPçéC_„‡…§È¿w¿å™Êæ9½ÔŸSCäã+ÿTsaÚí¿4ÀPÙxZ RÝÿQÁ­¾ûË~€ËeÁiþTû£c¬öß‚ëÉšÍ0ªóé1IÎóý,2ºóùu¾>ߺ~¨Ô@2¸Ó.)óùדåÕþî]¹Ððîý'w›</‡úß»÷ûÊ?Ï<#Ä?€+* PæÛŸ3òSyˆÏ({åó½dsfÊ|¼Ë#øNZQâ&ÉfÄjŽQ÷þ�ºël ?DþŠàÍÚIÁ÷ޱ³Ùç™�ïœÒÇPäó¯§Gº£Žë–àfuG½ë^ߟlö®—mÁ÷Ò!6ÍLKWÉ“UûQ¾i¸]ÝOÁ¨Q£F5jÔ¨Q£Fæ2Ïþݼ ~PâÌ·‡‘Ž›l^žvžÉùƒS£ÌöFæËûõñ@µi9ßZYð"�·©QÕIì_.ÿïï38�瘝,òâ%ø¯4/ ›÷5©9Œ šCçðà+ék>ÿNzß¡Ò&ÿÕ>NVú_-=·¸Ó6Îÿ?É<åï—°=ÿ¿÷ˆ’SBe¢~£á€ùd+òÿa¿Œ’Ñú×éqYJii(3£d” .J-!TÜà@£"“ü‡ǧü»­Íÿ‹šGÁµó‹–yÀâS¾r°ö·Qf!äiya§s€^EÀY óý®ÚÁ°ñª¬¶U±9Ef£zÛ;G¦™F•©½m~'ø è4çà&5‡¸+ÿõ¼ž_´p@Ñ·|E³€N¬âF°…0 ¸Žsë[?ÀNWÃQµÍ#T½â‰E¾Ü–,|*û¢Ê·U÷#ÀLWegap+Rç÷c÷*ØÓô]þ?&mý^ ©ŽÏå|Jm /¾õhþ¯‹¿pÅ*y§4sž…¯ýÐñØWÞúìNì}“Ê‘¯ÿäèóÿ‚´<KÚ¹!|ÉÏ{¥8„-ý8…‰öÈü?ÖÏKñæYS 7«Óþù±ÁL»î'æy¾ýάæÍà‰1=q”¢Lá<;LиQáý~O&úü?t[û@¸oåŽO6ûd"óýu¾>jñºß Õþ�<1_– CÍé)ÿ_–ž’sÉweY*~oú –ÛguÿAÍ7Ó÷Ð ûé 'w©CGôܬXkþŸÛ¶ÕÆkç–Í^òó(ÁŽm™­ý†ô<Á«»Aˑઠoû E¶ìµ_@ö¼¶­Éß'®Üo^Ôý�·*Ûv÷-ùÿŸwQ{?�`|ˆ|}"úlŠZû ­ %Täýõ­ë|Ú‘š'’'ÁÜ:#fò®Ÿ ù­ã]?f“w8ªžÏJ.ú´ì)×·*­Í‰1suÜGk£ƒy—×OÈôÓöž„1ÒD ŠÕçŠ'Zº’ó©nžËùYŒ×>­¸_ñžRß_=Ÿ¢FF}+ö£¾äÍy}~ÃÃ\am þ•§0eÊ����IEND®B`‚IMAGE 1737 ./arch/construct/hold/darkhold.x11 ‰PNG  ��� IHDR���`��� ���Ä®™¾���sRGB�®Îé���EPLTE�ŠŠ�c��Ì��íí¯/_Ù¤ïå‹ùqþÖ�ÿÿ�ÿÿÿc2����1�ŸQ,����ÿÍ…?¿¿¿ÒicD-ŠV‰C ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ Ó_¥��ðIDAThÞí›ín+) †³ÿ훦É÷©;|cÀ“&:»«p¤™V?¼Ø†™s¹|ʧ|ʧü©òu¿\ß7ïïïÇQÞdÿ'˜ÿåM€`x¼ ðõ¬_.Ço¼9„~.ÿmÀGÀGÀÿR�`­w”ûyëp¦ŠÎ9Ï;cëXhf!Äzþ p LÝïš­ûá‹„ØÐo¸;gTûÞGO¸ô;,­R³;¬5}þ%þ¶ö9o4À¶Y×­¥Zh€,ç…€\± ѦYß­eÍ#À¾_p8(}éÙ¦Yß-`Y“€®Ýº[8j•f_!Vγl/ Ô¬„~Jã¥Ä’RÞ[�Jnί¥øÔ%XÑc×Ô­\WLOÒ~˜ƒb½ÂÃfîs ¡8­ƒ·Û°u±´ßGïh?�®/DÝš€k²ïm1º `À/�"©F¥¢÷<嬳\жx…�ÈšÏ$£4��ç=€Ê�Yó)�:N¤*ɾo³Ä‰C‚1„^HS æHCt6„º‰“œ`0�zû>ÿÕ`ß©àQ„!N�JæKw�Œòü¾·XQC)�o@³>¤ý0ØO ¶�¼P<,碚ç `°?rÈéb$<.Ï�JÀPœU€po mPžl¸1ŠTÀœ° EÑ)@gÀ;Æ(šzû‚�6Bëb0ìx³�`‰ÒùTjlÌ�kû,LØì&ïiï¨Ì€hÿv»i÷`°? Ó ˆ{õáž·v*€,€bÿšíŠû�GÔÛŸæ[äÝç‹>B€²¤L£hBÀ!ÀQY°ž”aR�J/@h€Ðz-€V90Yq‚`š(y°ËÐ<À%4@8>á€E@Þ±ŸÜÑOËè�õ(!%™ å`¶hNÎç¦ñg"žÄ ÅÁB�~Þ –Äý\ÁžE`ÊhOuŒØ¦´ºcS£�/:ÆNç'/¦æö½ÃxnšÏ`HÀìi³­ïF@:‚ègl ¸óÙàïXÀ¦‡Ð?.G@œŽ¤û' û:�* d‹WH€¶ Ïûm¾€áI�ÔÓ�åH§›P[@A ¡½}~ÞÊ—4%£Ë4Ðí 3�c05@9oí—æäöƒòD¾J~ÞÊÎMÓ’ÆÆH=‡8§•) À¦Õ陑ɾ E�ð ·vvƒ�àœ}ѱ�÷t�¼À~�¤ê©¸@ð;K�9±¦UOá×!Ä�s ì ÷Åk±¼7b�BVÈâhÒ~wnjV€é{=Èê’Ø ©óï¸ÿ%±&ŸNârÀ6äåàéèO9‡G*» õÝ„i|’€ÙFÈ×z5„Âþÿj¸¯ÈÉŽ ¸åd›ûZ€�° ûÿ«ážPµ$æ™<†PYÕw÷,`(+Ú/BÈ/^®$À³ëÀÖ1ÑTæÝˆ‰¦¬§bt–Äm.g!sŒ®=œ3YÉS1ºüL`¾˜b”Ù¿/?¢xSq�mHuEž_ÉâáöØo%(zë+t›9+ ~²x?ÅD'¤Ý5X¦WJö‰Œo0©…Pj“ Mâ'Ù>•9ì3@jE^¿vöÎÐö[Ÿ`œ ((þTKÆ6VDÄB@8³;ì‡Dè†%™­ý&Îõ<„h% îYâ1û4|ÊÆk’eUX}.F)„¢Ð6&%›Ñ?Ç"߇(Y^‚“hÍ®SN†¨ŒT‹Ñ€|î ê8”Øó_ì:z@T@ v¤}XQ]Ýb4õfŸ¾¨øq" È«!DFžÀ"‡f*½ ب÷�Ï%U@þs™$hó%dØQˆZ…PÉ*€øãæcÑ*  —¿JØ;ö¯ý9^sˆnp�ûž9žbÑ:„r&Ç‘¼Ÿ³> ¦Ý‡–µêîë\½Äý í«o<÷¿M€÷ü/•Où”Où—•�rtJÌÚ»ã����IEND®B`‚IMAGE 362 ./arch/construct/hold/darkhold_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEçÆ÷���œœœ9�{)�BBBccc{{{sssRRR��ÿÚ‚jî���tRNS�@æØf���÷IDATxÚm“Ñà CM:dúÿ<£]ØKš{R=t-Ùóp)K¸»@rHƒÀ\yÃ�ýK·0©R ‚=`*–»¼‰!–“sNÞ߀¾�Àý æ+_ !•[Ý{ý¾�j£4T@�cRr�”dC* @Vàûãè›ìe›°ëùþh÷ ¶¹SîJCl“44\ - ¶)»+]|›4—ÀÙ&]Ã]«�zî8ÛÔw­~Aq—Àɪùxä°¤4÷ïƒ$^¯ *æ à‡¦4÷üׂ<AÊŸ,]×dž€é¿û�# ˜*ÿ����IEND®B`‚IMAGE 296 ./arch/monster/undead/dave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,��c2ÿ�����±!!��ÿ4LÌí���tRNS�@æØf���¾IDATxÚ•R Ã0[KpÿÿãœKÓ6Ô&©ll y1܇òý3!coÿÈÙ!ÁØîSIe?~?±k‚¡�˜ôéxCÐŒXÁÑ!넆JñÈ?Â> &Ž\R« âÕÃÉ`r#A”Ètm12YGzx ˜×RCЧ q׿Iš¶Xé×·" O¢h”¡˜&ä¥bI¸Øîb•X4)ùGnÒ|$àh¤.q Ì„ÇSB(˜!_œ³z§p ©&w����IEND®B`‚IMAGE 355 ./arch/monster/undead/dave.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¯/_��c2ÿ�����±!!��ÿåÂÌ���tRNS�@æØf���ùIDATxÚm’‹’…0CWbðÿÿx›À ã•x­9…6úg1xä¡¥YÌÜ@¼€0ð]AëSÑjãˆ5ÙÄ“]0ZÓK²ÁÝŒ'žG%¨[ü©@ä¥õ™˜ #ù™ÇÇ(ëëßw\RÈû¨$Ž=J1@ûé ´^U¾¶1q‹#‡ 3s(coAV tP#è¢ÜhŸDuÐܸÒéÀþU½¼c†{ ð)l¼¢6Ðÿw GÞBnQF>+°ãþ}VlEÐ98¥ï‹FÚã t¤ª°ÃÁI �î_Dn�«(쀖6´�BoK ûvMp« þðÁ Œ¾z€����IEND®B`‚IMAGE 381 ./arch/monster/undead/dave.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,¯/_��c2ÿ�����±!!��ÿ´˜zd���tRNS�@æØf��IDATxÚm’’Ã0ïbúÿh=¾2Z“6²Åô‡ˆ~Œ=™Âš�û5€Ækñ� P0n€!B¬Sº„«õ�ºJ �”Þ'ÖÇ]1�‡2»š)öÜèþnl§dUf?¥2• õ÷W<÷ ŸN;­Åo(»›ô+8¶¡o€F]ü­EB¢×±k­ÂÛOoëËxû0[“ï‘eQ‘ùÈ ˜Y¦å~ _ƒßïT´¶îÕ<°½–½n;pƒ�XRe…Ò“ˆ _I©3NÅ@”Çä< ‘Œ{Ì?.÷‹ÿhLÀ!DnsÆ0rI0õ `‚¾^€°‚×;!Þ6óv ›¨zŠçþ�´Ø:L´¹����IEND®B`‚IMAGE 396 ./arch/road/drawbridge/dbridge1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,�ŠŠ-ŠVÒiíu�ÿ��c2�1�cD����íí��ÿEˆ%���tRNS�@æØf��IDATxÚm¶Â C¢íÌüÿß}iÔq^æšKèx€2»Lzô4.øpzµô›þj&�ø*À‰!cl àAĆí~Äó‰ÑA€>%æôKîìA€üs¸%*áÜL¨xƯ–t•@ߩ쑿ù®ùÜöZrˆÀ|ýuKÈßt;ÂUÉÔOçz�ò{ïó rLÂdº>­äˆLÑ|Fß§ô•àv±ÔgÂ1nr<# >*”r«ˆMpX Èš�Ýý´Û$¶«¶é_+Ä Ðö«ð¶9 €·Ò·�(aú5_@7ÿuT%ìç·ßPUl5|EP±M\݇� Òï¨Ëáïjòÿ�áÅØ172����IEND®B`‚IMAGE 422 ./arch/road/drawbridge/dbridge2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,�ŠŠ-ŠVÒiíu�ÿ��c2�1�cD����íía]•���tRNS�@æØf��-IDATxÚ…R ²Ä SZ…ïÞgÀL»Îì¾Ø1F¤8_KÔ›‘,ŽgJ‰»gkíl§)¥®X]Íf ³ ]„ùΨÛIÂd ŽQTpDÉðd(reŒA50†Ì\Ñ”XÁö"x*@¨ ÷¨¨á"6IB—XV!a9WYº„‹0Q=æ2z˜ÄT !æDŸŸëQ°T ‡°9Ž ¦žS…¸Å®0Æw“T.?pŠ>2¿{¸YÂ6ÖA5/Å}/ÔõR€kS0Ö!ñ(ÐCýσ]éA´ÙNÁËÊ~éO¬= y¯J²£à;K½· ¯:z¶-,Â[ ±›]–Œ–=(Ô͘7G>p©Oauå?Q�R0ðÿÃÝd„yð����IEND®B`‚IMAGE 399 ./arch/floor/dcross-red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���>>>€��…QI‹C6ß��ÿ��ÿ+ƒÝ��2IDATxÚ“Û–1#!æÿÿØênÎ<¹žÅR5!QfÝ—_ãò¼‹Ùú¹rÝÝç}ˆªÞ»_,hÞñ\ëî*82Âûp„½%˜ŸÆÈ ðe¡Ó­{…A•ðrHÆ:$¡Ý®«Á‡‚µðàcJq„ì/½ßUnÖé3‚JÆÌòÊË›²`ÎÙ"Øy!Fðþrx’Úã<B“Y€G˜¦{ö°7Üf„¸$êGüOØ=Gœÿ‚”Œ”Vrjx8‚ùJJ¸Ù7<Y’ n p î!§ö/T4 W9B†­$ÐKÍÂ%¸Å3lš°Fùù³$H±0G¥<ÂZjêa®‰†ÏÈÍКgH§XÆ~ªàþ{°TGð´0Sú{™³ñ×Í«àãÇíû�~9 7K«�����IEND®B`‚IMAGE 398 ./arch/floor/dcross-white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���>>>UUU€€€¾¾¾ÖÖÖÿÿÿÿû§"��1IDATxÚ“QvÃ0U„ìû߸³»<}%}%qB˜‰‘l¼ž½>ÆÃûYdëCäŸë‰Ð}ÞCTõÞ}øaAgàϵ## y.GØ[‚ùiŒœ¾Ì#tºu¯0è¢^ÉXç€$´ûÃõoðá@°| R)Žõ¥÷[åf>#¨T`Ìœ^yyQÌÙ[Ä;/Ä^ßlÞ*nÁ#4™x„iºg {Ã-`FˆKb¡þˆÿ »½Å{/HÉHie!»†G€#˜ ¤„›u#ÀGx#(©à¶�— V#d×¾BE³p•#dØÊÂ[j~…;lš°FùÞ, R,ÌV)°–šz˜k¢á3r3´æ™Òé–±ŸêÜ?c¶‘j„ìЀ2fJ¯°—9g ¾=¼ ¾¾?þb¿Ê„ V~ó¬*����IEND®B`‚IMAGE 498 ./arch/flesh/misc/dead_neko.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ-ŠVÒi¯/_��c2�1�ùqcDÿ�����þ¿Êÿÿÿ±!!¿¿¿HúÔ9���tRNS�@æØf��pIDATxÚ­’QŽÛ0 Dkî†r4yÿÛö‘2’"Ýþu ðæiDÒþõߤ·þá[fšsÿ à¯4´RŸ»¹q|dzú'šQÊÿ‡6Þ„ÿ¸"4Ì5ðP©Ë~3Øo;á)>ˆ®×s†ªÊ†|-Sµ¥â±`E¤= P·µ¾¾Cn7€CMò\Ö-…Ïyåñ|x·éI«nˆrgLüµ.VÊgVÅ ÓB;áœçÕF*óH�Ä£jê4ެU!�p«S·Ì‡o* |¬}Žq Çô~L ‰"ÃýÛ=¸H O7 V˜ÅyÎhG=> Ö�èc"áGõ9lÝ Þù�«øJCHšÔ Œ;áâUÙŸ½‰J¨# 8ÏëkžX6±M" ¹.ʬq"!ß Rùš­Ðmöq'D7:·ªÉÚ 84±CÉU>9[ÂU´ÏÆ—n_ÒtáoàO½þjWŸÅOý­«c8V����IEND®B`‚IMAGE 395 ./arch/weapon/artifact/deathbring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���‡PLTE÷µÖ�����„��cRRµ”��{9B”BBŒkkœJJluuŽZZb]bBBµ))¥kk¥!)œZZµBB„19¥BJ{kkµ……Ž��k!!œ”��ZŒŒJJsBB{ss””ksœ))”MVgzz’”MMgzzŠcc­^^^^^f‡‡‡=«Ð^���tRNS�@æØf���²IDATx^ÅÒ7’ADQ>Tk1Zk¹òþçsœgM·âT$ò¯âçŸ_"Ü®ø&ðŸ¬|ÝðhñýâJsÇåœ*Î5x|VuTGÇÏÆ%ÝÂ÷ÅWA9öým:§Xú~ßO˜/‡=Àf”1™Âp-Øá’óì=ªº&eÞxL ˼þ0vºõ?˜S5¿Â„bæ7 )%@p(Ñ¢ �á#@|àn oÇðzä/y—gÕf;¨����IEND®B`‚IMAGE 587 ./arch/monster/undead/deathshead.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��IDATHǽկoãH�à­¶ «ëž*m€Ue»­R·ÊVÑÊÀ ¸ À ÿûw ¾êâ&ý¡Ó­ž Þ7ïÙófÂcøoþ'`d�FFV¢R­V›©ÄƒÈžô…DT™¹uëÎV£Ví%†¯¦r®Ýh´Zkkï{ˆ@ª5îüp¯³µµÕéÜëÄÄ‹õ3…h­µqßG÷ Ô–b�$ÏÀ?t;Lcõ[õÀF§ëËïd2[kÑÒ±ƒÀ¹ÌÒÔÌ­ÍóØÊleî­•–Ž^Î%.”m_ÁÓÚ[[?ܘ™î41�ƾXXºp©R*•fk­[•Ji*ù1�þðÙ\.wáÒƒSßÕk7¢(Zîü‰ðÉWSWæ ÑD*UjèR!59 <†àÌ#c™h,Kår ©SÁ‰±à•ø§‘‰s…Úµs×R…‰¹¹k9ÝIß3LÁȕăN©Pxšô[<¤ç¹TÔj4jñ¨Uï>YH–J•Z%ZXˆ*ÅÛ@X*$ŽeJ¥Vk­R{ó@ ’¾ï3¹L-ïŸùžô½'Ò9uf"—Ê]ÉwFè ~ZÉ•N Žûx÷¡¤r\)WøÀÔ\î—R§Ñ©><µ‘˜[õ‘x AøÖÇáôW¯¶àÄ‘ðbëüž»ñ7]Yɽ÷ ×����IEND®B`‚IMAGE 727 ./arch/monster/undead/deathshead.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE "<WWWBBB:::FFF [[[___cccgggoooxxx���|||000222666__c>>>kkk%%%ttt)))JJJNNN888333444!!!'''---111JJNSSS[��%%)[!!€��_NN_SSc!!662777-))+++,,,>>BJ22:J k>>NNSc-- 6B>BW>>SBBSFJ!...B)) W!!F))FkWW>--  )!%->22N) %%'ð°ò���tRNS�@æØf��zIDATx^½ÑÕŽA б‹¡™‡q™!ÌÌLÿÿ%©Öj¤é­ä-Ê­Ç{d«äÞ? [çou \J ø#ai"ì÷­¤ð…-qôrª´.Š"ËÔ©'lDA Ž1v}�¡é¢q1-UWؼíseT}`í@aŒ[` 2¨æ0!Uö ¸€4¯ö»`’¸Òn!ÎMÃ’uÀÅ«³ÙèDpÎC•é¾¼üuo<}#ŽNvwËS©²)�Ìfl|úZŽc ?îî ©àíƒϺ;ž¿`wÜßY½CL?~ÙYý´Ý>fà •Û7·_Óaüýíûo®ï 6Ά?z²ˆ†Ý»´þ9ã´RZ ¼I#Zq!¤)$Ô6¯h>'œk% »èù€.¢%‰îÅ~ßcóå#c{'ƒùùÜÎ]ÚÂQŠ9òÙUïƒòos£L²þ’­ÃÚ×ÀvëØe£÷Éç}k{ÿ;¿éC#u§Ó‹[����IEND®B`‚IMAGE 730 ./arch/monster/undead/deathshead.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE" {WWWBBBMFFF [[[___cccgggoooxxx���JJJNNNF!!I$$222__c666:::kkk>>>ttt|||!!!---G""%%%JJNSSSCc!!%%)662c--)€��)))) _NN_SSDN[��H##B))W!![!!Q>>BB>B W>>E SBB6SFJ-E: J >--!%k>>NNSN F))kWWK!L >22FJ22-))Y}¯¡���tRNS�@æØf��wIDATx^½ÒÕŽ1Щ2C3Â23S˜™áÿ?$nE#M¯wߢ\?Þ£*Yv矆Ír_—RFî$¬< \´’ÂvÉn¤´®ªª(Ô¥'lBA öcS×µ1±v{@N¡ÐUìb ƒ¶°Ã4Ì_£ÂÛ�C*cjÓ˜º€ ×yð0r v‰ë8.x°Ù_áJãJgö£ˆ°øôõt4ÙœóHz 'äñ<x÷*Cœ­-B¤*v`4bóàÛ‹õ~FáÍte[H_NÝ´w<ûÌ~åp½¶÷±|ºº¶·aÛ÷|˺T?9>¤ÝìûÑ®o ÖŽ ¿¸'Ý„nÿ´þsf h¥$4@¦>x_&4àB (KH©ì0 Ã^ιÖEš²çÐq²€¹Dw2¿ï0òå….&ØÇæü g!òåží¹4…/’ rä£YïýÊ%|Í2é øK—Bœ_ØÅß.s½OÎ7­íüïüì“$vP)Ýñ����IEND®B`‚IMAGE 726 ./arch/monster/undead/deathshead.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEs WWWBBBFFF [[[___cccgggoooxxx���kkkn 222666__c:::zl JJJtttNNN|||m %%%>>>r��JJN---SSSyc!!u%%)[��!!!s)))t662_NN_SS€��k V[!!W$$NB))W!!SFJF))k>>6SBB>22W>> NNSJ22 c--q��>>B>--F  kWWJ :o!%)-) B>B!-))†Ðt���tRNS�@æØf��vIDATx^½ÒÕr$1 Б™šqÃÌÌËÌðÿ?²î Ôô8yÛÊõ£NɤÆ ¹ÏSå(ç<að(!­oÀ’*Rpæ =</RfYfŒXw„ö1ˆ$)UQJ• Èlƒƒ‘Yi£*ÀÓºÐÍ TÔ­ù,@¹™R…ªLa ]¨Í(]O,(lÊ¢, M—ê Žc*¤R¶h½­Gj >zÛé÷¥4F&ŒQÏ»ž¯N„úñÊŠçqa<�ètÈ4øô}¾`ؼ^e\ÀçÃÁ×ýúgÈûŽ×ƵÞýXÿÒõ{ž’É&æ[_¶vñ0¸ØûðÓÖë‚t›=E¯Î{à ¼úB»ßø …àPºàeËÇ)eœÁö6„غ™âf;¢TJ†ä²áÜóQÄ‘][o ¢¹Å òQUÿävø#:×~Ón/ÜÖá·BÑÎ]ÝÊetC•Pá=p7-ç6è¸BþÚLÕ]òqIëÆsç%"$ŒMù����IEND®B`‚IMAGE 310 ./arch/monster/misc/deathtree.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-ÿ�����d3‚B'Ò¬0…���tRNS�@æØf���ÏIDATxÚ•nƒ@ 3aìÿ?¹ 'hUµ84Ãzïñ¿ñ/hæ4¼ ˜ÿÇ�g!$c˜ÚŽT]+úüÝ’c4út¾FlԻ㊻{Ökçp‡º#àEmºE;<]•fÏÑ«a?TwöëgÇÅ£|Ž­a3/5F¡›¬¼vct«­œÐʼnïŠ\{œë°¶ê3Ø+ÏW6°ô%ì8¥¨~‘(+ãÄä ·¥k¡ze:òIX|m¤ªšïÂÁ#|1:ü»ÑÝNྻ]eSÉ����IEND®B`‚IMAGE 302 ./arch/monster/misc/deathtree.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-ÿ�����d3‚B'Ò¬0…���tRNS�@æØf���ÇIDATxÚ•’AÃ0=ÍÀÿŸ\ÙÈUÓ˜C7K³°Ødü'o§ƒ(è0šP£©GÊÑ8›¶ýqòãkÄC=KN€¡/9^xÕ›ÃÝ^ðô| Ü. 4Éùm¢¬Y…j݆C#F¿1'ÏÑk6 •©†‰Ê’'C&Ïô]àWûVQ‘ sר~øÞÒéén•Y <îDe>B³¬A]¡ý#Qˆ=¡ ÿÔ¯„âë» $"’Þ°x2:AoEfzoÆ¿Q}]‹ñ����IEND®B`‚IMAGE 307 ./arch/monster/misc/deathtree.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ÿ�����d3‚B'@»M���tRNS�@æØf���ÏIDATxÚ‘ÛÃ0Cëÿÿ/ÈE i6iŽš|êRxþ¿š|hÏwâ@ˆW‘7<}f¼_«¿*Š*A#oÿ<['D0˘(¡PÌ'ª ‰àAÈ^Ç {äºPfÌ·üÚ’ADèæ;�2˜ 5ܲœt³¦>Ø}"ŽAš/°øžIk¦UÇŸTkM +ê1&7P—ÊÙšI½R|¿ÂGDØÓ_@%Â_1Ï&€0°º:€ôÐ*¡ôï‚$¾6Ù‰'Rt����IEND®B`‚IMAGE 311 ./arch/monster/misc/deathtree.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VG$ÿ�����d3‚B'@»M���tRNS�@æØf���ÓIDATÁÁmã@ÀZtK¬”€ÿ‡7ôß0È?[ù§rU��� �@ê�`B�Œ±¦�Œi—ï�0-Çw0鳫�ckŽî  ¤÷Ç èýëµJm3_Ïß5AGOã¸nDº{õu#E@'¤(ã¹O4@ŸÏÕ‹�ôyK¶õï禠×z<o:@öZ?W“²Mýñ¹Jè½ôã«Òm×-Ý ]½]èT²öÇ…HF÷ùFb¬ÇùB�Æv^/�°ý½'�ï_�þ]wßô”ð����IEND®B`‚IMAGE 317 ./arch/monster/misc/deathtree.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$²""‚��ÿ�����d3‚B'$¯,à���tRNS�@æØf���ÓIDATxÚÑn„0 zëýÿ?nm¸¤Î=œAvF¶Éñmé#Ô¡hrþ)t¨´°ŒäÚ AÉ#¹|,’šHe$N£©·@´¨Ú ÂlO.Ù@c�i[ˆ‡pE(œ°®©«2 ;F6øô"‚ùu<Àê6Ô›¦†­XÇL½ä½  ½âåÑrQ$ò | W:±¨#8ÃÒ0&‡ëyþœFYE§ n1þ0qòt©_ð•,Jb%‡ðŒVáæ­P…4&´""Ì^(žÂÖpñ}a[ønlÀÊJ‡ê����IEND®B`‚IMAGE 1684 ./arch/ground/deep_sea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��|PLTE^~.Ž6–"‚*Ž2–"†*† v r"† z‚*Šz v.– v"F¢&Rª:žf6Ž&†v n2Ž"Fž6Ž*’ z"z:– ~>–&Nª.Ž2’.’6š"F¦2Ž&Ž&Š&~6’ ~ r"~>š&†.Š z&‚*‚6’2’"Š&‚ n"Bž2Šn&N®f.‚*V²v*Z¦>ž"~NŽº~&Ž:šr&’:ž6ž.^¢*R¦>¢"B¢j>–6f²&N¢*†.V²z*Š"N¦2Ž*Ž"v2š:¢ rBž.V¦†*Rª"Š>’:–*Vª"Jª&N¦.Š:š2j¶*V®*Z®^–Æ&Š">ž&zJv²Nv¾F†¶.N¦.Z®.V®6r¶&F¢Bn¶ j"ŽŠ>¢:’"F–.šnªÎ6n¶&Bž ~*J¢&~&J¢ r2Zª&JšB–n*Š&N².†6b²*’:z¾ "v:’b*^²B¢&B–:’"NšBš‚"B®"N–BvÂ^6b®:ŽFz¾B¦*~&Fž"B¦"6Ž.Z¦"Ž6^®Fb¦ ‚2–v¦Ò fV’¶:~®FŽ>š:f¶>n²~ÆÆ.Z¶.R¦2Vª&‚*J–*† n&R¢&–.†&R¦2Z®B’:r¾2š"’:zÂ&JªFj²*Nž6’:v¾.f®<À÷E��ÓIDATx^ÒSƒlG��áîCclÛö,mÛ6®mÛömÛvþPfó^o_{ÏWY,Qª à“SS2σ=¼š‰ xfš”h€óŽ.­¯ohþŒðƒén•åæhºÖÒ 8dUϬ<¡à¹H%ïÎ:dÔÄÃɉíüV*`Wõ :ñÈy½½%ìØbĬÓ™ý»Ý6Ç>é£%²<—tCèk~ŸÛÊ^C j°Éx©BÞ¹ç-7ùômÐI`:V0ÎWnÝ¢Y\Ž ‚T´ú/m;µû áëS×½ Û{Ãxf’BÒøÝ‰ºUŠbÅÁ±Gö9ÊŒ~~kþ> %ùöf`{Þžª~|`ã]{Òæö›LcÙã‹§A4a0‘k¯—áÞan:úô(›u:ÑL÷ Ù2@qÏ=­÷»<lm½¨¹?ê/`±c}è€WiP¤±7êY³­{²H¡7™nŒ]XÚEíà( ^>:ÌqÖL|ÔxœϺrãŸþ?vÄ>OBΞA *ŸÀˆû·oîí!Æa…Z§Ž.m™/¿ÈpbPþ+à¸h1»üé9××z–ã,bJFލTî‚Naí`¥lRh8Ä3Ccãl‹ÈÉ9 ¯ô}EÊå On?`gnö£mH_¦jX»w_šáRú{jE]5Ã@|ûÌHÁ|^¶0ÝÚŠ±uöZ,LÚF´á“ª)³çxñïaÏ‘L¢#g¥ªÃ$%‰Ž2¢à=8¤Ø‘ªß”üo$ÈØN½š.„¤ŠPé8KÑv*¹ôÅ®O@× Çûºs%®Ð•+tm~È«•Êv[رlŒYµcÀ§AøÚ ]I_F¾óúŸCYÂ<.Â>¿5z * ‚Üakî§mïí.CL»^êHŸOó"ÌÌWÕ„º¶öÓ«‚»3’µ ¼á(WÚ~îD ¥„Üüc 1žxü{{…®Gþÿý³‹jÚÚšI–oÂJ{h!Ì�xU®¢”G “+]#blƒu·«dø\ Ã̃ MÝ*²éOO<ükM¢Â2’+sÎøýȉ)€kƾ¼@åYSé‹('a8‘EÛ’ õ‚>ÿý—~ç¦ÿi§#¤ˆœ|J§BÔú¨"œ¸æ&>úXr-ÊpvÈÃaí-ÈÐ:ï.ý1ß#37õÀb—µAW‹—HG ·Xú# ±Ë‡Î“œ…ã80,—K%Š”ë¡pöÁ†óÛãL¤º±qˆñ^ÎÞ¤W¿_¶éÏNÞ²uõoÔS¤ù–ãZïpzïÖ~ë èÚÁI����IEND®B`‚IMAGE 1666 ./arch/ground/deep_sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��sPLTE n.Š&†*Š~"‚.’*Š"~.Ž"B–2’"Bž*†2Ž>–2Š6Ž&‚&Š"~>š&z&‚:–6^®6’"Jž.‚6–"Fš2Vª"‚6š6–*Ž&~*‚>’:Š2Š*Ž r z&Jž.†*†z.Z¦z*~2Ž"z&J¢"Bš">–*Fž6Z²"B¢2–6š6b®2^®">ž:ž.Z®>jº*R¦6Ž.–"F¦"†:^ª&Nž.R¢Bš*N¦">š&F¢2†&Fš:š2’Bvº.Š:’*N¢"Fž2Z®B’2b².’6’*Jš&J¦"†>ž&N¢B–:Ž2R¦ rBrº.J¢.V®&Fž:fª6Š":š2Vžz¦Î*’">’.Z²6fª&Bš.N¦NŽÂR޶*R®.Vš>n®6Š*Vš.Vªv*N®:ŠBn®>zÆ*Nª.V¢6Ž j†*z:f²FrºBn¶&Jš">†JŠÆ6Nž.Ž.V² vn¢Î&Bž"B¦:b®*’&B¦:f®2†.–*R¢ z>j¾.Rª&B–V’¾.V¦6ž6b²^šº.ZžnFв v2ZªbšÊNzº*RªBzºN~ºRz¶.F¢†ÊÆ.R®R†ÂJ‚ÊJv²:r²B~Â2^²6Z¦">¢.v~&Š2^¶*NžfV~¾>n¶2Z².R¦*‚*J¢r2š&J–r&Rž rZ޶6f®2b®Jv¶«€\(��ÊIDATx^Ò¢dI��°Ò³Ñ´o۶ͱmÛ6Ö¶mûHÛs†ä’ÉBBéjðWSÕVcŸÛóÒÊh†n°IδÏë ±€?>\ÂxÄSkøŠµ¼‡ft e©(©Ç}:àÚöË£O;Î<M—i² ïÛ’yôÝQðŽÝj“ NÅêÊÙ"õi×±Zo›âövB޾¾ °P,ïÿ`J3¢8—ަ« ’Kn~îžHoûDZ´¬® ë¾ñ5öYJÓJPJåâçnlùÏ|µÍÂi<¯¬û7öòð¶,43Êx׆YïIEÕ Žãá;Äýý?ýª¢µð|ÙÀ’k? D%.ÐðBu‚^àPÂÀ\wÝÄÜh\öÔ—4Näb¡ÏѬØeŒ`Qx©îùåˆ$Iº»¢ ²JÀj öAÏÌØâ Ý¾p÷aÓ[ޱ«‰;’nŽ´¸zÁ[wt“r«ei1vÀÞuuN.?õÝÞׯ‡8Æ´%là73\K_¾°«!”úŠè ‚Lß ;¦(]ÇY¶ 3a+™í€JmÕÖv?!¤øÚA{GÂ==|¿l’³n)40š¼´ïï7ªßzúì“©´sJ0Xþ"ÀŽŸ~XS¡fZ L½V󸩚íË \ì?ü—I×€¹÷Wf24=ÍÔŠP¹äj!!¦ê™æ<õ·<ö6À¯Ÿå­!2²lêúžü-R’ÿqk×T×{ÔFpJqñš‡î¢ë~ò蕳‡¶ÓHuý®ÚLgpgí»çAÇGÏüšñþ iúÊ÷•#f#ÛhݘæÖ7–ßd7&…É}{n‹C|“#Άᬊ{ÅŒ.Ü\(�Š¥¼wcË›¾£;œþ"MËF¶óõü‹e" vG3)»6|ë=éµ°E5˜Ö–åëKðÉîs7õ¸¢i“Q~§åâþ :‘à®2чM½´ÓKÛKc²à¬÷8œ¦!ÒW“ÿ8ôòºC3YŒ³È]ñùRI:™s®ÿìÙy˜ ƒÅ|: …¡õbÂä{TÏôôØíÝmÍ;€+¶ìõm躌­’>ò« źã|º;VìU.‚ûzb˜e‘n ÛÕ€‘³…#pñíËVB©BÂ’’¯Ñœ¢¨Ä­-‹Q¤ÖŠÑl«mk'óè¬í´µyÊ+LsyKO娦¡ŸÝL¢Ïž¼´yOe<$ì×íDv¹úÿjN<bã±5ñ P¸Ô£ÀãÿÝ`Ù´Ä_3Ç����IEND®B`‚IMAGE 1659 ./arch/ground/deep_sea.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��gPLTE fF’~&Š"~*Š.’"‚ z*Ž.–&†2–.Ž"† ~2–&Ž z:ž2š†2’ z:j¦">ž:ž*’2š"Š r‚~&’&J¦*Š6’&~2’.Š:–"†.Ž&‚*’:’z>ž:š"‚>š&†*†.Vª*Ž6’Bž^’Æ6–"F¦>–.Z®.‚v"Š6’B–*Nª2f®2Š6šr:’"Bª v6ž r*~6fº.V¶"v2Vª":ž2Zª*J¦2Ž&J¢ v&F¦2b²2ž:–*N¦"Bž"B¢"Fž2Ž.R¦:n¾&Jª:j¶.V¦"Bš>vÆ*R®:š"F¢ v:¦">š>¢:n¶:¢ ‚*R¦6ŠŠ6f¶B¢&N®.†6¢2b¶&J®Bš>nºJ~¾>–Jž&Rª.’&R¦2¢2^®*R¢*N¢:nºj®Î&FªBn¶">–6šŠF‚º*RªJz¾6bº>š>®6j¶ ~&N¦&NªFzÂ&>¢:ŠBr¶"J¦*Jª.Z¶2^²"J¢>¦*†&–.Fž>v¾Fr¾ n‚:f²RšÂ*–&zn®Ò"F–.^²"JžZ–ÆBv²bšÎ&Bš"’"z"Fšr&~.ž>zÂ6Z²6¦6f²*N²"~.š&F¢2š*‚6Ž"B¦"Fª6jº&š&J²Brº ¦ö��ÏIDATx^%ÒC·-I€Ñ,›Ç¶íkÛ¶mûѶ¶mÛ?ª«WÏrùmÐKF|£ ¦êwÿXcgãeï~ ¢[ëš§Àê’™¡4LðÚ{Ï'Gb=ç–¯¸*Ž“µòWi^§³ÚAÐø»7¤š‹ QÞw¹ýŸEyË9þÂÑ8‚:«\Ê›ñ,F™ùÀç_ùÏÎäñCnžÏ|’ß^Ã1¯‚ƨ çLÃSçW'Zw'Ç*¶‹R¸ÆNPåçbÞ'+=«À%úçÅæÍѪ;wbSçc‚‘d׋ék7ÝK’˜tr°áyŽu/M¯dõ<qçŠ ×¿=2•D1ÐĘLœ/CŒ1·(fy>›º™ ¥9÷I‰ŠùÁÕ k¦´qï-cc°ê´M^ËËÑ"î`Jå±Ã‹�gÕìÃí¬©êowŸ‡4-¥":õ¦œ@€H#÷3C]•}‡7ú'¾™˜ƒ•tû6Œ¤?üÅN“êñ`Òðv»¡€sÞêê‘–ó3A†HD R0 É'5E :¥`Œ­oujMaŽv¡¶—€%/a…Þ>º²¥ÑhìdüDäG²ÍãJÀ;“©�³Y&,J‚ÕZ7ÞY<oaë¯3q…‹8ëõ�¾>XØyj >³Xì¥v] =ÿ†e…õÒþ~ãw@üxg”üvÍ]¹/‘¤ Û›ej`GáÁ€³ËW¨ÔP+77ó‚nQ¯Lfî¥à/V>‰÷�·8YÒ_¸ÑQ†w› ãŽ74¿;/÷†ö.wÞxÌ}QôbRmá‹?ÊoWse "Gq’yWñÁøü ¥ÆFXD©ïŒõ<† =”ÅñìðÔDëN_Å÷-`p æ ] Ó×¶kTj‰Ñ‹~#ëÙ]بús{«É|ÿõÏý‰]~鈊è«‚0þ*E§«GTŽ¿@Šh+š:ð‡^²,¢Ü£ ¡‚^œAâ+¢[4¥À^ÐÀŠ"N¥2W‘zΤl¡çn9)€q%à§°¤Vž –:ÛÕWdEcð•5ÕÅÛï¿V¯³ÉÍ’nŽ!l°uf5<ƒäœÅήÊ™Sý«³³ Râm™èüÔàYâm”쨇q!Ãou>, i4h>ëÓ†ÃÜ;œqX@QÔ¦ø°Pœòó½½@T÷#hi›'Í c…~†€5ŒìëëJÿPRE+ýiœÖ:O$iŇ9»ní-Ÿ>3ä�ïý +袰Ò_µdlܸ8§øo)>¢öÚ@æ_û:è*MB/•����IEND®B`‚IMAGE 1651 ./arch/ground/deep_sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��^PLTE V&Š"~"‚.’*’ z*’"†*Ž"†&Ž~2’&†*Š‚.’&‚.Š2–2–:–z:ž>ž&F¢.–"F¢ ~"‚*R¦.V²&J¢"Š~6ž"Š.š.Vª ‚.Ž6’*Rª.Š*Ž6–>¢6š:š:¢2š v†*†2’vFž&†>šv&Š2ž:r¾ z2f²"Bª*Š:–:¢"Fž&N¦*V²*N²"Fª2Š:jº"Bž r&Nž.N¦2šj z:ž2Ž6fºBž>’*R®*N¦"J¢"B¢fžÎ:š"F¦&~B¢.^²&Rª ~Š v"z&‚ ~>–.Z²B¦"Ž>ª">¢&J¦"B–Bš.Š&’n>– †&zBv¶:’*N¢6^²2Š:fÂFr¾†6šBr¾"Nš2¢6’*‚&F¦&Jª*– ‚>¦^šÆBzº v&Jž.V®.R¦ n>jº&N¢VžÆBn²2f¶.Z¶"v6¢*V¦V–Æ"F®.Z¢2bºr2^ºR†¾f¦ÂZŽÆ.Š6j®2ŽJ~Æ*–Fš:b¶2V¶6b¶:¦6jÂN‚¾.V¦*Vª"B¦ j2b¶BvÂ>rÂ.^¾ j">ž&N®">š6rÆ&R¢>’2ž.Zª6Ž&–b¢Î6’j">–.Z®2^ª¶øá��ÐIDATx^ÒÓ¢eG��ÑîmãØ¶kÛ¶mmÛFlÛÎ_åL~ ^jTÛœ³W#¤Ž_þÞÅëÜMÂÀ^É·© Áá£0};?=‚h¤÷§–åsº4þÐÓÇÇN@vq‘èîr†ÁìÅ¢ÄùèÒVÿýô“ù~«ælûåÑ£zÌLmÿu|s ËòXKùÔHRMƶj&“n*üר[j ô“xfó3[ƒíÙ—ÁSçy.Dû$E(˼µÓ{@u˜ç3" ا×=;ªG¶¼:°d<|¬%^¦!UµƘ‘§Ñ"z!Ò×ךÉôzÔ‘¡C¨‘¤;¤…oÕ©EF < ¢Ã£,‡a…YÙ/4à!¡ÌëöMk:oƒ§ìôiŽcx)*I”>Ž�H«#šâ¦|ë£Êòò¾¡kÍm(-P—f†áÌŒäö+„3†ŽÁuW™ó+Cu}Ë‘3Šwh¡Ú p¢âªe‚ñ¸ÜX§¯› ´â^Õý[7HrÇÁ`ÀbFPR)Οºs¥gÖ™fö1i_­wÉ’*I!ˆVû|³4dTcõn¨÷IÁi&U´¨Že3ó¶z. #Išu¯rZg7uèÑu7’»ŠBhL¬¬ô¸zÆ–qÊ´EôêÍÜìbÚÕòÕ Ì1>"5'±ekOš>‘WIÈöïN9Ž»W¥¹]çÛ5Š”SûšÇ/rþúøä –5/%»môt}ÁªE¹fkŸaƒßonY—κ<ú~3[¶ççëYŸhz�ºæ«5¿¾16ÆõI 6eMÅ×^¾ó¹Ä aíàʒ`&"¡ ™lïÏ•ÿÄ'u4ÃT‡q\Ül¸þâÙ }Xæ€-È®xòn1iV(øÈ !>¸=ý¾÷îmŠŠíˆ ‹Yí ÒtgÝÔaLʲ(‰ûAs[k¯Áp ƒDEïm†~V]K¢|ÿ–N†Œªžà°w¡¥p¿?6ƒPFO'.úy®àCïm¨Ím. 3 ºgÏR\¤ùHL.Ÿ·V–ܧ©¿}]ÃGÂn ²lܳüÏÃ4Ô±®+óÈJ¥ò •~ü~K‡ÇñŠÁŒLªbBÁÈý®R¬“›3ɬóXR7s(—CÇTrÖ,"íw®ÄgÓ’T(h¢Z4&ùÌ|Ít–I_t„aA47¼«æ´$.÷|Šê‡+—j] =ø]’,eÝ\Åk¯^ààÖ% Iûˆ¹”D—­5­$<ù õƒh)úü íìâñ‡Gÿ®:æëLæ����IEND®B`‚IMAGE 5463 ./arch/ground/smooth/deep_sea_S.111 ‰PNG  ��� IHDR������@���[a?��¸PLTEÿÿÿ*R²"†*Ž~ v"‚ z*Š*†z2’‚&†v.Ž ~"~ r&‚ v"† n r&†.–"Fž2–6–>š ~.Ž.’&Š>ž z2Ž.Š&‚ z"z6’ v:–6Ž&Nª*‚*Z®2Žn*Nž.V®6Ž n.‚2Š*†:ž"~"v&Rª>–&Ž*’6’:’2’"F¦&’~>¢:š"B¢*R¦"F¢*†2ŽBžn&Š6f²z†"Ž:š&N¦.Š*Ž6š&~"Š>–Š"Bž"N¦:ž*’.†6b²"Ž:’&N¢B’*V®"Jª>š.†*Š.Z®2Zª*Š.š*Rªv r&~:¢6b®f6ž>’*^²2šj"B¦"Š">ž&J¢.N¦r~ÆÆNŽº*V²&Jª&z r&J¦.Rª "v*Vª&R¦‚2j¶.R¦B–&Bž>~¾.^¢ ~.V¦ n:’v¦Ò2fº:f¶Fv²"N–:v¾2Vª:–.V²f"J–"Bš&Jš2^®"F–&N²"Fª6n¶^–Æ*V¦&B–*J¢&–&N®B¢6’*~:z¾*Z¦.f®6r¶&zJŠº&ŽNv¾Bš"B®>r²FŽ:zÂ:~®Fz¾:r¾*J–.^ª.Z¦F†¶Jv²&F¢&R¢^2š>n²&‚6Ž2–R޾"Nš&FžFb¦Bn¶nªÎFj²"6ŽV’¶B¦BvÂ"’:r®:Ž^.†¶¶¶2j² f>¢ ‚6^®b2Z®¨†%ä���tRNS�@æØf��MIDATx^Ì›c“,ï–Å3Ò*ÛvµmÛÖ±mÛÖß¶m^ÛæÐøódfwŸêîT噉¸ûíŠß^kíwO¤4ÿýó—"‡’N{‘‡¹‚þø¯¿/45O›ÍWá4¦¤K;çòJºvÿ¿ÝþÐßDa#VaWÐ+’Óm/î{ˆ\_þ„Ïëš==Šaû#çÿ™°+èÒ΂.ãÏëòþʺºþ úƒû+ôS¸²?�x'óé¥Ö~sÛ7t&yBoXi*öÄcü£;ëkŽ9aüÊã% >hWÒ¥sx‰±Ù¯Ù_¡ßÿù~r÷Qö_D»O«í9ê6¼Q“i–×Ç›¶ºûðdaùCe¿›ÛÎàø¨íÞ1, _UÐÏËXçð™Mòºv•ý¡ÿóþ¤àŸËËÞòþâêúC L‘–æSrú‚`óL÷{ûÇ]lºÄúÈÿ‹ýøV00šñžŠ¶1É•úí?ÈX/ò¤%%꯼_Ù_MÿÅ{JV—ê­ð_ Ëúçä·ÈÝGdúK¨êÕ:q5HëKI¦+’ÑÝoÿék^8z°Ï‰ëm¤{ßE[³Çnæè?íÿÁŸÞ˜–ó:ÏÓ(â–Ðöçê ”ˆ¿bÿI·Œ®º¿.ퟓŸ®sîæõøRA¬¿”ƒªþÐv—éc CjçÓ Š´Ñ}÷ù écga´0FÆÜ?{}^/ÞtvWC•¼uCU½ù»€þâ8’Û/ð@_Ê/ê·ßU×ðÜÊoró³b€ KÐ9ýqI 5ý¡z£ †4ÏØWï7ê`Öˆolšõ'*ŸýüßZý± -/W Ë‹S©-¿üF›í«Áé�Ø¿Èóú2TÐ[޽¥¢£ þØ?_>7–¾2/í¡¦?„9-8*£+ó8Ž:[kÂ.GŽ6Ý^u{•-UP  :—Á³¦›ó¿ád:Ã"�Ðx`å~oa ò¼à¿æôÔæÕêòÏöÏ“ËÉšÄ ß_jyi5ý!8„bÒ²AZ?\Ž‚¶,iÍ_U:ê^¹gÄ8ÿ©Öîkb¼—Ä`Ù~ Ž'Ì/ø‹$ßm@¯¢?ÂùG¬žÈŸÓ_x…ï/9 ¼Œ‹ŠþPEG<ö©ÀðŒ78™é ¦ –!²¼|‡*ÎÆÒ´³o›…÷O&3+ À @ÎþâÝ›)<Ï þb~Z×·VÌïÀ ç?þ@ýcybðb~,Ü_ª¿ä¼“qQÑú»Ñ 3IÊÊüª‚HúÖ¸[(Òã꪿óœ*ÎÃèˆß‰øS¾‚•�Ða:¡ aÿðå3a{Ÿ'Ñü0JøgiùÓðŸpozþyRá�›ÛŸ¤úKÎ/c£¢?„8ôu&ÏqHë4:¬u¸çø'Îu{¦Ð’#ú#ª°3¢&ûðOâÌñç6\_y�µþb)Æíw¼°µ§ê@ð8à9¯‰óÊùoÔñþ=Hÿ<©Üüú:\[~ÇdlTô‡Œ‘´Ù¿ i!FÓ«¿|/0JœÆ¡ _ë1hsÓ~âQGEþê·Þ›ZXô}E\£ç Þ¹v܃ó:Áù‹{èy^aF"fÁ?�kêÏûç}?r1ÿHÄa–ø ‘Ó_RO2÷nSÑÚ6 Õ AZçùÕ'HÀ#½Æþ‹Ë2¨:¬íWCV+h-{ùTŠLÖ†÷€q°:ƒ­eËA”°i䃶_9y~×6Î_܃çû¯N‘&οÓX©¥?çŸ÷ý¦óû“µñFMù¹ûí–ÖÕô‡l»® ß SNHãàe›7 wRÎvÃõÒHüœJìˆûJ³Ãì=}óÚ†§;)KÓ:ß2 ÒlF‘+Q3‘°ÿüˆû&Ï»lÀÿޏÏ+ö/ãýáö ÔÒøSy1Kó_;|'\Aÿš~‡¿é~󬤮¦?¾ðPŸilcÒ8Ü:;ë:}uð<n+Q‹yÀóõÑš&O˜ã“³c®ÙóR�9±öPS°s%‰˜uãó|0¾àîKŠ{¼Â|xÁ]˜\âü¯jéü)ðüž)YÌïùßxmùþáy]1MùG¯4¯›uŽBçŸ>:Ó;§1ã£é“ª19úÓ]½gˆõÀ?cï×éG—àý»÷L¢R Æ(Éó Šó·˜ç†÷ÿj–þûÓÚúƒûÁù iâ~þõüýÇ`±û+çýý„œ®Üªî÷5¯×95ÿ¬ïÓ;œ°éŠý––pøÉÀ =ótu×G}N¼ö‹Ç—4µã…»?yZ”¦L G‚Œñ|¶Aê)[à†óߩә¾x¼Âj±`Zú{×ëà<ˆonóåä_¸ÿ@1ÿÝg†«³r^/¿ãpj.´áÆé9Ü2·½ÇÙ™{yq¾›nª6©+üöV‡MË€­î¦¤®X®É4û¶ºÉZ”*îù%,^9ÿöí Îâ¦{sXšhéöÄUç­•ûêòÓºrþþŒMô=H)¿%Ù×z÷597åþP[‹‹Mê4N[Ö0º¿D^§ó㢴.u”™nüî/±þèË€Ó;Ý¿¶Mœn>Eu©ñ`êM.¿”‡À+çOÖýèËׂ°ñ/.kÖÐ߬þ~×›£MS¤EÈ¿–I½ùf‹¿ÿ—b€BþiÃxÛ¶¬œ]Ë›Š‰('6˜Œ¾i2„]M¶þÏÛO~'øFÑ¥+·Š¨=³©x÷ÛO®.Íô͉ÓÜûû¥™›?làòKYð¼Â�ÿ ´øÝk(æ{Ó–B]žý‰A4úÚÛª€Ÿ|oz&giTÈ¥~×5„ Ò€R X™:ž{Ÿ›Es)g¸K±?ôÖÄN*NÇ$uežÒáÉ©L¾`<FÜßþÝÓ?ãøY1Àà~ýY 6ÅcâþöËoMì 8A’WàOYë³™÷v7D×lÚò©ÿ8žOÿÍ}”-Ñ—U4Doe¶<b°Ô²\~2ö²ûYáþ}ÙL©±"f˧®Eu=é~ýå;r–Êý¡ ßüÒ<Ÿ}rÓ‹Nn*Οlr¢lágs¼WС’ŸYtàcN¿¿rÃÃõ,É+æx_ ­òF«²Ùhs˱,koß8›G ?åeZ£J@yy´9µåóKíí_Á0Ëå?=ÄÒÕ‡9~2ÃD³åÌ"�³(Ï,Ïø²¯Úç 6Ž9Q´øË˜*÷‡ücÜë½öAǼõ^J—?‰Œ‚÷}Ö¿ª¹¾ E‰@—¢Ã.º䯗0åxåþÞ‚ËÍ”n2èa®í#´ÅbBãL È×O� Ê:ƒÁ“Ú6Aš°­u25 ÿèŸß+|Ý`ð0g÷ñ�ŽÆƒá°Xÿ ä‹Ï¿Á÷gÑUÞzIWý!ð¾>ƒ´O]êÓ‰˜ׂ2,–¼¡o)Z‹ã¢ P‚NHÁáªh%Ikù®‰€¸A?Ï+Œ>[´¦ß‚ã#àû„L¦#NYg`º//Êü„Á‚›ôŽä»R@�ì'ÀþÒª4¦#' ±ÖîËá*ô§“VÀÇfpœvÔ½»yÜ$2`z/‡£Ñàòü¥U7"SÀD¹þ4mm)’ê±*úCHUùóöA²ÅÏŸ­†µ çP#Âñk(Xt%D"RðxÀˆ7>Z¼["”ã‘l¹˜–áxKA Ù_?¿ø£4=´ãXjÄl› z“ º"ÏÝïZõì,K't;2+|8~÷Y’þ·ófq¥ `¿!p†IžÁ£€·õmòޤqïŸ ¦>ÿ}O•IÑ §¢“ÞLÀÅÿTô'—œÏã Ä„|€‡”f×wÞzêÚi]™ÿü©m|õg|×'ßêZØö0ží’toªzÃŒÿÎ÷7\5Øääø‚~gÂvÕ’#ù&z[ªOpô¾\ã3øWÁ(atú†Û‘,\ÐUñ |¦ ®ÛXÂTè+èÝT yŽßPàó~%:€¾÷66rìw7S wÿ îûÀcF {:€ÜWàÎX„üóŽ«`?FÌ&WAóûS@g¶}úû¸||.ÞŸ˜¡ø|üý”Æ¿Tß�Ò<vÛ¥[1m¼k -±Û^Ú1b@S‡ÌÖîv»šØŠ ûLQ}•¨A· ð%ñ{úÇ0]üô‘{¿|¿DØ _ÚW…¥ ?бÓëŒFç芼ÝÎñóHè#¡¦̪כ¸ï# ò ·9¾¨>†¥1¿ ì5¡fÌzƒåôë ŸÀ×÷Û1Œó× ºà_zŠÏo?¸XbçOëÖ¡û1½ÕÄéw»=M·+ì\ÿ˜ÞÁçÃÿ:–áò­æx»Š÷l&ì² ­I¸júOkB‰óšˆ®íg Kt7!óÚ=…‘ý‰atuºD `°ÛˆFÃ!×iríZ?ë¢F3ù÷œxœ• \ÿáÒź¦“# tÂè0ûteÞHžC®P`èŽÉ^Âì€ßGÀiÞŸØ[ãÑÅÆ§ƒ3ú9p˜QNŸÂ±È~?à™WèÌÌÐÆùýA!?ØßéÒíìZË<0Ù¤i£Ãa4} Žœ÷‰€þáóEys‰Æøû) M`é4ù¤u«5’F´;.^|'¬„”%ÐYiÞXyñ·×YŒÀ°4)¡_¼Îêi,mÞùA©£­º ã.Xí!kkCHo'§—± ðÈ‚`V—v{B‚®Ž§1+f&î´êuÏêžÕ'¸ï+Hw§=àGi,I“`?¬×;žÞ‚n/¿ßÝi\ñ·€'�º-Áéœ?ù… è¼?Ÿo?·¦õ¶€g ´û7$·Û7üUÜýF@ü´ç{º§u&.ߣp?¥é:I$vHóø Z?·g‹—ú®Ž$‡èæ='e¿/h O:úJÃ' cÂ!ªž:W3˜HøíGŽ ¼S‰™Ñ¦½ëºzÀû;eiÎUŸÄâçºJ#a?òïüû|ÓÞ¦ñžááyý%5ü A¿úJG‹ìmxg{°‹x"±°¿‚m|égÃájg“ÁGtÄÏÕœœçýDSWφá3€_Çç/íºJG€?ŸçòÝß_âíë^�ùÀý BÈgüK‡¹ï+Þ7÷ûßvÎ絉 ŠãO7»ÛÖÕM“&±¨Õtu¥[ ¬ºö‡Ä‹^,D¶…”‚˜¬P.ªoñT=O=ZЧ‚x(ÚC.Ї3ñº³o˜ARä}®¾û}oïo´ß@îûƒß;Ëki÷퀰Ãú¥þ•0¾ë±~Q>Ç<ÞßɇJýñJ¡a²ý½ Jòq; ´Ÿç½”ˆ žÇçoD~’ãÞuÇã AîÛ[u'y¹ûü!ÏVý+m³ìfÑ\˵íÃh&0Uûãví¾á°|˜ìsíÚ_gyS±?lÇùþvTøšÄû�{ïô‚VXYÚ¯HݧߘÞzðY¹*™çóy‰þ6¿zñfçÿõ'{‰þ#[êÿ?Ïö_ÚÒê‡ÒÀzucÔ¬¸´º¾¹‘l¥îÓM~ß®Œå™«ó›Âùs2ý뛇T÷¾ÿ›ª8o¡ý¥ÕùjU½ßãÿOœ—y`lv¡ ªüÚÝ?{º.²r÷ù.¨“ÝÝã÷û$úYÞPßßaûϦäeúgëeÍýuú¡Y·@¥æÇ+qŸÞ-¦'+~Úüx¿ïg´ö÷+þIßw@“ÍÊQéÿ¿™q-ÐÂ…îâæ5÷ÏC×!‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ˆ²¡çÍè.`þ 6êïõ­ahÍç¡›àïœÑñ€{~ß¿ýRøú ñ_> ~õì~›ïŸy8¸Üþn8‘²ç žçÃbÿå'c‹ $¼ÿŽySè‘ïs_=·hÚI™™_*_„LcÍΦh ñ`{éžç3öûh°BPŸu¶ð¼ØŸ(,ÜÌ/˜™_:oÛppqø}½†ÏÎ¥{èÜ××úl;×B0¬Ï4±<â=ÁûsÈ|ÈüXÞAÞè6ƒ£ãËß4üõ^îSà÷ý—†§l{¨Bþú¡g÷ýYæ•óÃ÷ž&˜S½|¾”ü8â‘ü(ËûÏÿ�m,›õ×Þ¿´����IEND®B`‚IMAGE 5985 ./arch/ground/smooth/deep_sea_S.112 ‰PNG  ��� IHDR������@���[a?��£PLTEÿÿÿ":–.B–*†"~.Ž*Š.Š~&†&‚"~"‚&‚&~:š&Fš6’"B–*†*Žzz2Š:–"Bž2’"Fš*Ž*Š&Š r2Ž"Jž"Bš6–.’>–6Ž"‚† z.†2Ž>’:’"z*N¢6š&z6Š>ž"B¢6^®2–2’ r*‚6’.Š.Z®.’.‚:ž.R¢6š"†"F¦Bš&Fž2Vª*Jš*‚:Š*N¦"†*~>š"Fž&F¢6Ž&Jšv6–">–2Z®2Š.Ž&N¢.V¦.Rª2†6Š r.–*z&J¢":šJŠÆ&Nž2^®*Fž2Zª:bª v.Vª.R¦r&B–.Z¦">š:r².Z²*R¦.N¦6fª6b²~*J¢Brº6b®&Jž6ž v2^²:Ž.Vš>jº6f®.V®:f²*’"B¦B–6Ž z2b²2†2VžB’">’&J–*Nª n.V¢6Z¦*NžR޶2‚.R®.J¢&F¦:^ª&J¦">¢2^¶Bvº2b®*’6Nž&Bš&B¢>n®Bn®*R®">ž*R¢&Bž:f® j6Z²rZ޶*J¦.V².–2š2R¦"v:fªBn¶">†*Rª&B¦z¦Î.v&Š>zÆn>n¶>n²*N®R’ÆRz¶Nzº*Vš:b®J‚ÊN~ºn¢ÎB~ÂNŽÂ>j¾2Z²V~¾FrºV’¾bšÊR†Â:Š2Z¶Bzº.ZžFn²2bªB~º†ÊÆFвJv²f.F¢&RšJv¶&Rž^šºD^?§���tRNS�@æØf��lIDATx^ì›Ó³,Ûž…3"¢mcÙ¶mlÛ¶cÛ¶umû¶ÝJÿfUíSkWeVfÕé>qz¾Žøæ7FÆz›µ0¹cöxLŒÀYfåòɪºÞ*ëÓþ÷Ç©xpƒâ™hÏ('—Kh y™¼\ÿÿï—9mûõ7Ô3®€\n{àÖüºuúíOèA'°Áü`Eƒ\.å-àeòrý£û¹¿•ýØ÷>d-Z_Z.xSûžúÿV&OûÃ^/}[嘛ÿö¹\RœÏËäåúïW«û!/¾ÿv™û1¬´ýØ/­Õ*œæ„a¹|Û^Øe_׫§½ã4e¤[i2ø„Lþ¢¤8Ÿ—ÉËõ+Þ?ÿ­îÏçù|¯±”ýåYZù~ì²'¼÷Ï_›x|‚Æ[l¶§O'O×¹³çž?¾ekÜ÷ç¢yð¾?KŠs|Î/™—ïW¼ÿños!Ÿïõ”°ß+bPºš 8Îî(žk/?;Ð69¾éth™®üê«ÿ˜ý—:VU4ïu«%Å9>ç—ÌË÷+Ý¿ÿÜåÿ•ýw¸âþB>O ¼òý¢ …û± MOy)£³Hž .??ü÷ÏÝg ùxh¢ëS [½žáÝÖëCw烎‡B6)o?Ê—ô£\æþ¼<‰úå÷»]ÀKæû úå±Òþ‚þÆ|ïÚ<ˆïU(Ü5I’¤\¬t¾6ˆ¬þ쟞³E,¡p&½ÿ`š7R,uÕír©sù”^ï×^÷½"¡ ‡QÞ¼”?“KߟŸ Šøå÷»Ý¤ó›î¡%ü ý È\.Âçí_¦l?Æ4˲t•d^_B<‡“ÝgŒÁZ’½ê6’}ÛæŸN-x¯û÷–à²ùŽ%i&—¾?/_‹æùå÷·În†þ ögü¢ûEâþÂþà×¹hë»x‰eÊöc¤Ýî]Ož“ˆñ ûdýáÕK±ô˜úú¶åóC8ŽsÛ÷­— 8üÙÐzBڟɸ?Ç£<ŸÎúEûu“Ï~²&¾Ù~åLª ¿Í%´køF ‹²ýØz3eŸÕèZ$bE¼Uh©\ÒX­µ_¾8ß}­¾rÑxçø"˜ñª‹åÈ)GŸ´?Hb÷çxä/ÄÁß:å; l‹ýÄ’&dý&ûK` û‹�™\²ާ%,Êöc_\åUÜâ—ˆ•ð¼ÐañŸ¶ ¯³Hú¶^?¿oàçV9gQ r£›Ȉ´?«²@áý9ù q'éâUF•²ý úÓ¶ó‰À7Ù¯Ñô‹õÏî—89>"¡Q¶ûˆW7Ç7}o‹D¬„£ÿìH§3vœá\,íš|ÀJÉ`!pEñÒ~”w€üûs<òÿºG¹xýãK¿ÞòÙÊfãñãåï/¡òú7#¿hJºŽ“Ð(Û±Qu…khp§D¬„¯þ):tªî…žÃ0‰~d—Ål¯kÔ#Kͬ´å8›CÖÞÎñÈ‹4­ê‘‘!V¾5ábwÒ©£½/åïWNxóúW«¿°Þ~ÑñDµ¸GÙ~làÄos‡Á(•Ë󛽆Ü©My>¿ðÞŸêØHõÛp:;Ók}?N·Ì[ƒäî_¹å gyðÛ›;DèFÈgW²¿™u:¬ßÿü¡÷þTÞþR¾ŸZõöÆ=wõ¿ò–"ý¿æ;íâ"eû1ª~ÏNn_ˆKÄ yK|CwˆŒ­ºxq’VÄiµëföEü3{…`Õ]Pæ~¾G ûsüOn/„û§Wgšxà•ô?îø°;Dï:;û[…³Ëÿ~/Cÿž¼þ›àûå(Šô¿ÃŸÚóCq‘²ýئþ¸% Ú±2ÏÓ¾âcQÌžõ&E\£1PÛ;è-⯭ X{ó0t?Ãð µ<,„ÛÉÀë×€WÐ=Ÿ7èøòö+ÿ~M…ýSˆ§òÍ×ëŸå{7)ÛéßÔw¿àä°2¾ø NNpˆ˜ÇhÛ¯¬;rìÈvUMÿ±=ÿ.Ôˆ¼Ï‡‡>©ÀYùDæ_;r« xùý€ßÅ .aZÿná2÷+Þ ˆõ‡ýjÁ]ø}Ð~¹ï·oû ”LÑ~l]è´¾e¤±2ÏO¶,Ðc»"ÌÙïoÜ­˜´ë^zê§ÿPÄßòÒ©Ÿü¡�;d-ÓÓµ*çý"°Š×Í"^vR«Ÿò¶RÐ_PÿÊØýSÜ|°zùP»»¿v®ÅBÆ;6®¦a€½¥hÿ ÿêºVÊ–áåÎÎ_8&|h +ó<õ -zŸv]Žÿ¢ƒÁK@Ãð~­/âwp5sÔ;­<edÕ©ù7†!‹>íl«Ló²ûé[ÓŸ|ñ÷õ­ê’÷Cÿ«ò@úûüþVáîþ>Ÿoœ¦‚®µ�ËaØ…ýÛŸ�ß<V³xI¡’ýØÀ½~·ó\Êåù>*jò\xôç¶FýÅ’P]mr ˆßþfí¦ùBŒNx-¶×&èf xäçÅq.ÃËœùd­‹‰yîþ ý«õ ‚£ì^Kiû…]ž ”Ð÷yõT‚PçõOpGÌëÁ¿X€+ìúUstF�|Ý3O¢ï'©T² éÜ&Óꥯ¤ryžÝeŽ¿õ«¯~:p¾TÖ:>¿$í¿Ü6>>Z3ŒávÇŽs—Û4>f ¤yÙÊd^Èôßú7"C5aœÃKÚ3Y_ ¯dïoŒŒ…ÃkûoMpS å?HýGvÇzµ–ßø@„›ò íÜåykh[z¿”VÉ~ì7Ï…âoIÄŠxšh³u•ÎZwOGÚ=ÚíûŽn…×[wxNoÝí>§!äeΧˆø×ÎG´ËýãUÆÖ©V—Ѩ|?ð|kÈÖõ©0§ù8Êñ=䟥è\Øÿã“¡x\?`ëzk0í'é)‹ËíÄÃX~ÿG´õ÷ _ta˜;ò‡VÐþû$ögy¹sð7Wl*xŸÖ‰ÇJø7YàÃe°´Šo•ö»IŠçVÅ8ÒH¹ F—‹VE:n¹b‹,@ Á,^᱃[.½É!¿þ^½#ä{¥­½Ï»Y ¥{[š7)”gû‡õsþþ»Ùü’³ÌÁû}RÿRßô+ó®sý…VÈߥçÀŸôO\¿ÿàþ`0óûÒ˜×úÝë{e>»Xƒ.P­Ð_b†ÇäNOÐn~SÊb—Èåùëmm›†½eðÎöÚ+íopÚ;IV lÆ[«à÷®öZ;Ë^õo›ßÏ!ÏpñF{m{ìÛý- ôº~*\Á’´Ãé�ʃ‹iã»ÁÎvwOPþ”7¬þ˜îŽú¡|í›oÛ”ZçÕÕúwÔë*†hÏö‡ýBO°øášÈNÇhšmNßoÏô¿ã Ôú÷×ߨÀçX”7Pvø~ôî5 ú³kxLîÀûú§p¬¼ÃÍm[n1Påðí,“ö[½£t\-Jz{ÏÁû=â‡Ôúm»u$x”  ̽á÷ŸÛ“´&zèÛc‘‚˜â:žx8YÁÀûzÐë¬G9KßNó)1>dõ²ÀÃþ]3kp«:w$+xÒn·“öIt?ÊÕœxÜE¹ØŽÁ‡ï…ûuöv2ÓíCýpŠrsÀëÍ ð^Ôo%t§ÆI±Ðï:ʽÞp?âíéÜöãé~ß~¯=¸€úeyLîí­«ßJ’$ÎaeK_ÖÕ/!¾d2xæÚ‘£’~«ÆÚ×{ø¨(Ú¢«¬´føKÀ/%Œ"‚4ù3ÐÏhÄ9Ž£ ó|?²÷§ù/_®¯¿‹âSI‡ÁL隆�Êgû®!þuèWÈŒCžõ{I’b àýÀ'¬]6þè5[}e+ð,÷&ƒøtÿqè¿çô¿qÑŪã–ûô¬9ÝÏ~bD“íÿäË–0YNE[æÐýö€& «±¢ŸGì¹tôøÉL?ð3T¸ õ»ÃË?Nל×|ÚÕÊ:±²Žoø¼ãÄ—L¢÷ýд¤¿o81 ¹(Š[ô½}ÀÏ%§5Ñì¼P(°!~Îá¨9ÿÒÀ[cN–`I.\ëÔ†ýdßù„uî^‡cø¼ùÓ®ÎMâü¨rw„‹[ü“}©uY^/Æ÷§óäý¾)ðíZeA7ðàÓùD†Ÿ†ûõË(w¿àæF„¥ _÷MC?-øãœ/¸Õ*ù£‚¡îÏöC¾ünô7@FP¿ˆÁý‡¬ãIŸc8íÏôËøùL¿ì÷“;„krÄj¨ X+ëD O>€ø’ñ#›13#Hú?®uÆLQBþ»-'Ï0|Ä <@„ ìC9ì£(ÂØí6ê¡Û[¿·åäžqgì8ÏDq”Våv4ÊÇÆâ§Q®ÉòOŠòŸœ‰šùôý<Ï© ,Av»›¸59d(àã°O³ªEàù±æÕ­éþ®˜‰'üå¬4á8ƒ;BV¹›ÔcÍ·OÃï2ý >Óú¹Ø ¼jãØí%àW:ÇMp?Úo  ŸË~¶)2–ñç¾_ñ5'>XÒµØüãXY‡‰Y>øð¶RÁÐóuß2R~røToaÄáÁTèùkßE¢è÷¯Ùàá£"½òš… Ý᫪ Š>uª®‡%³÷ƒ¥°Îoƒ÷õá+§*Žò,ÏXDy: y,AþÂS¶>ë7\b3¿/ÈæÑQ"о¾Ï8]=µbUBårƒíÂ~à—¼-~›ò+ËEQ~ÿÎlÿ(cJïƒ~tõùÊ+DùêLÿKˆ‡~à×éP?5øÝ¬@¤û徟Ì!ÕÞêÝ·´^¬¼ÃÁû¼jù–CW"§ 5}~ϣ︤ü“VÊ8­ ½¼çÑz§š¨öl<|L‹‰ñïýÎQ«önüâœ6$ñø¬udþýñDs‡îO5%»Þû«1¢®Ø«Z~ÖnGïëš÷!÷6w4ÃýžP‰ñ8eCù£5DõÛÕ_ë×iÐTîx|î7¢õç8”ßÒÚí$NÏŽì¨<`A~´ÿÚ¯®Þ«: ߯‘Lû!oíhÆÙþFUzß-mØN²ô¬µòá÷7 8©MÿÞï(5øU‡¡_;ò[OÌŸH÷3澟ÌY±Vðª(œåy¹‚2vmiX|C••4™Î\‘ðǃè÷7»¥Þçñ Uã´éæGWV43ªÑ¦±_„ßu³ê·»«*øoœ¸¿fÆÃÏ4ø.Âû=ìNÅMgg/®œ!x6Ê{µ¾UsÔ4hwÀï øÄŸ~VŒ·àvÈM&ägè¿Ø?øFÈw ß Ùo꾸RÅð¬Àx¾Õ™½|û™lˆO@àÏž¹²»Ó þèâü~Á£n×l?øì}/êüW>ÖTÀ¾ˆ·ß±ú‰GÕÞù‘¶íÕ“Û½CÐŽA¿ ð¨Ÿï6òw6ô§÷u侟Ì1¿»ë&ÃKÿ¼Üÿ·75íºÙ$ ³ùÿ•ÿC–aFGÙѦ¦õ13óF#9ÿŒÇs³) |‰þv´/²æ·ÏBÕB 0¿ü~S“Çdæ¹UàK: næxì37yn2 gÛ?düÙ÷u•¹ÇJ=™ÿ?ÿèв^ÇÍð®üXéÿ§*ÓÏSÍDìA&�þ0'Êã*óƒæ€ü~èÿI…«ôý¸`zi8´ìЩg<P˜«M öo[ÖßàfÊðãè~>ÐûÕ°¿ÐÏÅ ßÿ´s.¯MDQ¿63¹y4i´±™ÄÆŽuÆVÛøH«i A´¶ø*¦(«´ HK«‚ J±‚(‚‚P¡(±¢"êÆnÜAݨ»â¢ÿŠç&í.÷Üt.e²¸¿íÇÇwÎÝ…ÉwˆˆsÐ/'«æ2ëŸç¿$àû|$Íëÿ¯Y>üÿ ý6ôãåØ÷õt¥ù‚žó9ó‹m©‡|ØßôÄ6E8ùÕÜ'ÈÈÑûÙþûü±H%KÓ‰ˆâ:-¤¬ž ìûyÑ€Ÿ^…ßax?]>¾ßç¦çŠûC­”O ŸÎˆïháFð;É/äØþZ0YÙ¿”­f#t–OÞPËš)òç_¢ q>é 5š¦'NhÍ<þ=¿Ç›éHWôãýtùü·q–¯yf¬²úóÂüÙg~1ßJû‡¨irüÕì?¤³àìýãú5ÈO‚ßy>éeýó^âˆÅÃm¬ŸÞëçèx?]>¿Û~¿_Œû«»àwº¿G äMO�Ù_œo:Ïïók'`~™|bé4­‡\±ãÌŸåéx?]> 3nE³é3<ýlUùù¬ÔþÙ¼äþù€ìgyÁ/‘O>E-‹8fË«‘fkÓ×:ÿ³®[RùÍÓºL>̯ËäCé]._Jå“Ȱà£Ó'Äù”H0Ѥ{¥ò› ^"ÁRPrÿ”Jå·ù. P( …B¡P( …B¡P( …B¡P(ПÇd/è~€õû×–q9æÇõq‘þ×I Sêß#z³@¯èÑD©ßOP\Ôë]è|Q¦‹üp�õ“ڥܿGtS çzÇ¡•~?áãžnäðùÊóËúIͲܿç냸>g ü Ó§žC?¿#Jx¸¦ÏÙÆ,6ÌÏtjª÷“š¥ÔŸ·‡œëGEþ•û�­Ð¯'<\Ó¡¿oŒÙüùØý˜÷ŸÂýð>5 ëßßDúë“"ý�®_+õûë—ïðpMŸ„þ>2ßð >ÿ$Ó}> ñc÷Ü'…÷×i§@·q¤^–úý>ŸY¾ÀÁ5ݾÕÎwG 3?»€ø‘÷qŸ~ï¯ÇzD ÷§@‡þ8ú7ºp#»_àšnôt¢ó¥Þá:øaÿ$æGÞÇuÊýw~}GB ô•~ýðn-p¼Þ—‰p‚ÜÒGà>2èEç?gÿ9|Šço ì}þæ¯s˜· ¨����IEND®B`‚IMAGE 7751 ./arch/ground/smooth/deep_sea_S.113 ‰PNG  ��� IHDR������@���[a?��PLTEÿÿÿ*Ž~&Š"†.’"‚&†2–&Ž z*Š.–.Ž"~:ž2– ~*’.Ž‚~ v:š"‚&‚"†*Ž*’>ž2’z:š†*Š:ž.Š6’ z&†2š6’>š"Š&J¦v2ž r:– v.Z® v&~2š"Bž z.’:’&F¦2Š6š"ŠBž ‚6–6ž"B¢">ž&Jª2Ž"~"Bš2’ r"F¦*Rª:–*†*J¦&N®Bš.Vª>–"F¢.‚ ~"J¦B¢:’*R¦6n¶&Nª6’&J¢.V¦":ž2b²>zÂ2Ž.†2Vª>vÆ"Fž6f¶&R¦Š6š*N¦*~:j¶&’:n¾*‚Bn¶6fº"Bª f&–.š>nº:¦&N¦*–6f²:¢6Ž"v>¢2¢6¢2Zª">š.V¶"ŽŠ.ž*†*R®:nº6¦*Jª‚>–r"z>š&~*Nª2f®"J¢2^²6jº.R¦2b¶j®Î6Š>¦F’.Z¶&>¢">–.^²&F¢6j¶>®"Jž&J®*R¢ n*~Jz¾Jž&Bš6bºrF‚º&Fª"B¦*N¢:j¦F‚¾&Rª:Š&z2^ª:n¶J~¾B–:f²^’Æ"’"F–.Fž*N²RšÂ r’’’Z–ÆJj²"FªFzÂ6Z²bšÎ6Z®*Nš"F®2^®2šBr¶>v¾>v²Bv²&B¢&š"FšBrº":–n®Ò2bºFr¾žžž&J²áòÙ���tRNS�@æØf��XIDATx^Ìœã“$k·Å+Ͳm¶mÛ=¶mÛ¶ulÛ>/mãòo¹û©œêªêÊîÌî÷³#æÃÄŠß^k=1fWµFil1¿Ñ{c�ÇJ÷)éc¿<Îzÿð§'¨¢ÏßÛï¿Ø,½Ž)éržSñ ú¬üÿŸûÿ׬ý¿'ý5ÂâÔœm#8Möy¨¤wwzW|tnkèë·c·ø»#d]]™UI—óœŠWÐgåÿÿÜß6kÿŸ}?úkÌú}Îð•€ÑO*é‘ÖÿóWKæ¶ž‹VüÔW‚0Ö•½™^/“óœ‚Wп³¿r¿™ö_`0ÏÒÿ­ïIÍžV;K¹¬æ5%=²ÿvudùKÅ©·_K’äœß|»¾YËüHI—óœ‚Wп³¿r¿Sºò{Ò_ÓáQZS펫Jú—»Îu÷|½inœ ZilùG^ßÂS¿[:½¾âK9Oy>Ç´PÿîþŠý–žÿñÌú÷ÌÞŸ¢£©)ûÿý5!vØÎnz£’>¸äþË/{ÌâcnH>Xùþ»ÉÃŽpO§cD\ÎS–Ï5-п»¿b¿¡c/¿Ü5ƒþŸ¬î8ì!ˆÐlü»FçMÓª~ÍÔý{ì T÷‡¸úò婤“&JX;Oo:ྐྵúÉ…ÉèÜ®¡_Úà…iõ”Nó”ãó] ôïê¯Ø£„¦Á°úþ箜Ý3kÿhôfߤüž¬:E¿´6E×dÕý5ŒÉ¤õ)éT¡÷&YÖM’ÝÍïF#Úd=‡-ž^÷Ëšò“móõïî¯Ü/ìm÷±”úþæ¤Èa­³ò¿údCaþ¬Œø)uùþ…jûk¶˜ 5X¿’ðÝÑ›FhªÐä·FE–ÚÉ”ð‘ñ[Óê=ãU²¦…üdÛ\]½¿F£ì/ßõêµ!‚hšYóìú·²ùû½YY/×/G×ê…jûk(C°ŽQÒµ‹Ž‡÷½²ª²ò´Ç³S¹8M;œ›-~Gh:ýï dMóxyÿ¬®Ú_eýûµêa¿þ‹ó§ÿ ýŠz<×OÈžƒ2ûóê2.*ûkx×=R9­Þ¾lζÑ{ãKVïZ³ëʳŸÍ_qX,x‘ðj=9NŒ¼úG‹¼ë$þH¡oFWï?˜Aåü•úuÿõæûW×LÓ_†Òþ øæË!§ôÞí°àyùŒNÈ2ý&o˜¤G助ì¯93êz‚0^]-pµ›Öwµ‹­¯©©sïÕ³}f†d°îúit·“èŸÂ6ŸwúftÕþÇ&ÐZÿÂ~пö›õϳ¢ÇÓ#§çÈ_Ò<“óÈø7Õî=ôEAþ¾o²ú¤~2©óû÷ÊSÙ_Çu:K ±¹E3Ý,l&0ÑXWóc¸`Øw¾¸ßä9j I<N§ät­8­Äãä3ˆ·¤d,ëìþ\^Ò³ä„Hg~ú‘øÆfÆ£½QWgõ ¸Fýä÷WøC2ù‹›[° €åé*ÞO'û~*ûk‚:š³÷Ðe?œ>vÙ³?ùêÔÅ`0h>m謾Ìdx¢ÙGOÒ5мnÑ2§ñÃ>9KI×häöƒ–—ô,(é!¾¨;îRÑŸhïaÐ~oÐB[nðêÉï¯ Àöe2ùÿä1ßo Û\ž³Ë½ŸÊþšzJÀ<Q)yYÙâ'ÎVÚ[p¼lw_À„Q¬Ä nÆÃrƬ®Q5T?EQöÓüÑ@ÒAöøçðHÏ‚™|”Á7 üô<Æ0ì´ÚlËŸ¨¬´_ä-e»Õ5˜Ô_ °¾£Å‚—UççÇOÂm°-–€ü~SØfy=ï'c¥²¿æÒ“:?èÄZ.\P o-±Ö¹Öû«çyNdøy‹®wa?hiÉèuC$‡ÏtœIó­˜ Ö¯¥i¾.z8¡ŸA¼Â�ßy½»ÐÒÂWÄ`ÿÏß‚ý~\§\`r@±þçŸÎÏß™æ/à~ Èé7uþþAëõV/•ý5ýÝæ#{ßÛ_TÎ_Ó c1#oà‰Çû×'(ÎÏÖà‚`Zר}¯Áù:Êþu›Xtò½)tCû„�ûóüK3<øß}oz•.Kó ¼HVÿt¿õâ ´ßã¼t^W� ú+–Úqo4B¾üüàoƒ~i §ßÔù³ýûÑû}.ãVú?¯4¯Ÿ ¸Ñýب¦m]•-Tžšs$Ž;²üVÌûlÅ-~ûvÒºFõ,{±³óÎ ðÍ}»b =°b*†•xäg#øç¢ “ì½çÒ¼Â�/Œ?ËÃý|;i­«ò å}sŽÀ}f·=ìT`óûLo´}½5T~³rrþÔ³¶ôý> äô›2ÿH.ï'wÉé?òb-â•&9<žŠn‡û±FÍT è øÚT{üã§ÞZU÷ñ*úqÁýú­ÿÂrçÇOÈ6ÐϾõßþúEpÿkæmY>Ê{ê«U9¬}ÌÎÛœë¯ØßùÐë…È?  XÏ„Ç:xžYD¾ÿVb:Ћˆu¶2þ™§=7?ð»!¿¾HZÓoªüñÜþvèï”q´9$^ižèž×]C2šYΕÌ}Ðh!+þíú„v&dd?ï4žè›»pa²Ð¿ô^džýèsºX-¦u#ñà¿°¸?NÏùMŒi¹š1¸¯2?ºÏÿ:÷ó_¬÷¶›°H¨æµuûo÷šjû?•Ńîæ8óøþùÏåçG¼ò#™~òýAOA¾ ^ï÷vw;ïפª¿æQ˜ŒÑXô#Í,go³%F p}.öŽþe`åX·ùëM{5“Ö \¯S“ä¥ÏuG¾>¶w2¦£Ýå®Ýt3è{ÏÂ, ú®ó?.–øiü÷6Mõ<ð®øË§îÌ”îëÏÝ[èþQóÔ8\ß³þæ…ÞBèû-ØòßÝ¡Ðû,n3ùù%ÿÅÙ©…ÞßýeH£Éé)ôwãñ6Ë#4±Bç¥Êý¥)èÌÉs£/­”—•ùuŒ9š¾oojÏ:¶ôþ–»à‰Ö‚ÿûùr#è›.Tpì°ÞP¬m”øêòÈ]sÔ;úêÊ÷eáê§7Î[rÿð Ëºoœ7té±-oTCÿè¹4߬¿Ä ¾ö0û‡î?Zö#]fâßþqÿ+?ù¦Y?égpì"è/™Bý6%Ãõœ ëÏÏ? :ðp¿ÿ&yæwçôËÏ¿égúމô·ë}Yž.ôFÎÄûÛÔ_£4—o®~waôİW3»‰À}øïÐöšlj¡µó:üøÿL&j¯<ÌשPSgxçß Ió¿>#È èÀïüû:ÄG£ Þ¾A ·`ââ¥ýî®"·(ô, #^Êßuåáž=ƒak_X|™tA¾$Ò#ÒþÉ €i’tÄGçŽ_yxèP€Îìwa°PÒßmL&‡Ç‡î9¤§iÉŸ<ÑÐzå×Ú¦™=“_r:{h‡ÞBrXO™»ú!ø—Oê×’é¯Qš8srxÇýáÝëäeež>9wÇ“ÃÎËfƒa&a?•4$Ý$C¿i±s$Âæa/›dMñBÃÌý>‚#ÞÄÄ¿údûîu9¼ÙG1Dàâèwóê¦ü³¸Ö'’„~Ûû‘¾ãÉv¸ï³ îû~+‡i)èÞþ(k"AŸ»ë~ôc YÞ‡øvà™‰þZƒÀZçâ8÷yC XÅú€Gù–n*G<ÚôÜüqÐ/}·}÷emò ƒyü]êOJùa?•4p°ÿ¶‘ódy3ɸNÎ}txûe³”Mò§ˆÇýãÊÿ¸[ õ Gkf7ëÌ]–¥0®ã3ÀÚ½vw¨Hhš?ßÓ• ”›¬Àó°–s Úù2l«·G%>¢¯íò±¬‰ËåÝýè=â#ówS^ŸXO¹sûa¾@Ò{GK0Â:í|³×``A¯€ë¾`|Úƒ5âíf‚DùÌ]¾úKЯ=†ð¬þ1ûÁ?Ýßa-ÑŽ u‚Ö ÷y*À‚b¯õDx+zŒÐšùùÍ­¬5a.+ò7b:ê¼”ñþ&ØOPfCöŸbÖ…÷Oç“ü}Í,ô—ÞOi.iw&´„ÓI5³šƒ.V:ß<Ì{üøï_ùáŸ_¹tIÄàþMÒ: ³$8þèû2¬AËP§ôi~Ñ¥ƒG¹ƒZ"î~ýxxÐ/y¸ƒ"æ¢!ß’F׈bÂrí÷¯¼:Üï "†üã›ý~‚YŸ–Ôž’ò=÷}Ï%mˆtÐf3ð¡4Ï ~_š¿tú‡Žf^´öõéý¾Öpzÿ+‰KG1Qà}èø’AÇê l~~Ï-EÄÈ¿ü³:äG¼ƒü$èÌæyþ^Á'Ödù¾þägòIþqß"è/½ŸÒlxáDÓZŒvèpYY™O==­–¡qœœ ¶ÎﯯþrÍŸ7”Ö´6är�/äƒ}›W¹aƒ _8R|opüõÕW×lØpó³ù'0øì=³¸²xôâ¯Âþ›°_pA¿áÅn:>ŠWŽ®X6oék6Ü<1m(î²€¾±Ûmqmç`ÿ6àá¼uÚ5àÍŒÃù^å€'@-^ü¡?FÓà?òj£;ÈÄA‡À~”ÿÏþ…üIÐÑ~.H3Ääüë ? ùâàŸ£÷I<ò0øFnK¿ù~š?û3ù$ÿâ9Ð?ó~JÓ0?Y»w×oû"„¬¬†ß¸w×ÙwÌäL„8¸¿w± ö³¦¦>àûÌñWðÍÙçÛE‘’£{ï^&Ò¼xûL{b£ÄçàLˆ¨¾ùàQmÃü§aÿ}†$Ý&¢¾ãBL÷9#/}ó[Ä…üÿ@|„Œ»8!vì´âÕN¨½=¡õD›žNßç#®¸ó„€·êz!žæzÀõÿÃ;fYÄ™8ßƪÓ1—…— âáLJüß|pŸù:8«?7Ã:ÈéqòeuÔß fßÇår¹M! tü1ÿ|Á#õ;ùâ(Ÿäw;è™÷Sš ßßÎ~à3y<&BNVæûŸ®±ßã=„E5t§¸¦áþnŒÙú?¬D×o%äñ-˜ýϲM·Ø—>+¡ž?߈x-—…á>x¤ó\×ëMì§YŠçÑýüfq‚(k]ÍÆ÷wÁõÝí¡<„ÃÂúè˜î.n ,l&1ÊxkÜ©¿¡ýZ­‡Ã·ˆÀë$žÁ€Gþп¸ìE‡ý¸t:5˜(JóÐÏ÷áù {´B¯ƒ¥,1]µ.'¿­Büð|#Òáýè<]‹üÑû¤ûi=N‹è·3:âc°õGùú%ÿàèŸy?¥1Z;Æz+Jª§œ¬ÌÃËt%pŸvÞVËØ{蟢û{[Ðä[Çt'ߌӹ�ÒOµµI9>à£%'i#þˆ'œ¹ûËÒûù-´•oþ´®(y3î¸mv‘4Í ÿß|r Ö“F£þÓ] å÷÷ –Ó$o!ì?pãü•ï@¼îï·›�Ï“L–ÿXxY´×z²:îì5Ï&A'ÚÓùÞ—øØÖ¡aGÉI'áÀ›æ•3$$²ù]¤Ñ¿uÙpoIÉ›°òåé7Ú,À£ü±’êCg.nw‘¸…›àƒAÞïÓaú‡îÞn’ü¹rÈŸ}?…1Â}ÚÙ¥§Ð}6cÄOÙ)Žb jΓ0àþ~öÞÝß½pÿÎá1ën³Ùþµò‹m¢y n‰¿î¹ë à¨;'?ã©q·•þ⨧ ò½Ù¥‡ý¢ÛçÑ‹è~I<è<ä@~E‰ìŠ¡€AÀ<¬ÇXf+_ ùn�_í ˆU/ŠbûàP Ísÿôþq;¼ŸÏg£@—öWY¯<{ý€ú½ ïã¦|¢Hõ…‰ü•£;Ûxô·›ÀßGåê6[ùú/FðAðﳃ¿è£|†½MÊÀʃžòIþÆ=îï·S£4ÿñŽëÐý™I—‘•ùÿÞÃ5µLw-Ö÷÷kðÜÏÓ8a¸vX’;?hÝy±¥ÈZîÿ²|'º¿ûýx]xK&ÿ„~½Ës±¥ÅêÇo!õCûk®…õ‡Ï4-ºÞ û/ð~îóiç-4S>Ü>sº{¨³»ñÆ#ø£|:?ëˆDø°¾ãøé_Ξûð%|Ú×éx¿gJÃ×ôgÒzí΋Šb%Ö´,Di8î8SºpNgN~ÉŸÇiÁ^;|<£§ó—o¡|(?üAù¶ê'ø ÀóÇéÛ\BòÿàJW÷ãþ7nÍQñûà@Í¿1`áûät…ï÷sU1ÞÚfKór:¦xa†›ðà?¦ÚÿöÉý±–7Nƒ¿ ü·Ù¾ü¼d?O.ØòÇëœâ}Óf4cÀc§Õ÷gnÃ�À¿ô:Q‹-¸x&Ë‹DõÉýüÅ6ÐUøó ¬П)~&ýƒ ‚¥Ýœ ú£üxN~ê_ÑÒý1ÅeBCjåGq\çè¿÷P£z&¾î§VÑÑ4{oBÙ÷óÇç|4‚W3ì½JÕöÁ;Ó«(ÚSˆ¿ë`äå3V3à_U¢äFþ:m8ò¢Zû¹óø[±íLQ¬nÀùᾯs:ØmYîû1ø|Òû/OëHv™FµÿFôßîBïN÷‡÷ÏÉïo¼ËÐUê~?À"C<|%ÌÇHÍLFú~|Yð>¸OëùŠxVœÉ÷ógìc[yxõŸ? ŠÚT•­•ø0ïÏ׿ZÅ1muUŠþ‘À"å·–¸"jÍ£ÐùØ ÿ3”üñ˜+ÿ}V> èßx¦'n³ãêûG·½ÿ@~~ÈŸ/É>†þEÐ_Õï°f7&”ŽAÿ™Ìãû6âM!·ÿûfðýü¾�ëvc™ïÇ«¸¯Ÿ­Ñ ?Ú1Žø|4È?º¢m *åìWëýZ’d$èŸJE)x¿ÄØ$�éjü[S¬Öíæ×gPžÓà¿ùCþ~Ûšôþ êßúÿµs®?N”_?ÓéL/3Ýv·Ý¥ö2¬Ý][©‹‹ .{Ñö‡Ë^�³rsaÅè"*«`ÜU@ýEÀ Ú%.^Hª ñ’H‚ñD‰D5á… 1ÑD}áßâ9ÆXfžg¦Óûb¾o?ùÎyžóªÉÓï¬Tôòéö¤çÏ·=ÉP*„ïï5þ:òù-ŠÓù#[Ó;.<âA ýF®·¾¿Åó¿ÿø…í`W×·Ç”Õú|Ìçãý“Îç£_ I3ûìO×÷[ÐûŽãù¥aÿ±ž/d¯`l}—ŠùóMP¯0³ý}ß×k©Ý|ºÐß×å?ƒþmÎæ ~òc~ÞÀ/ý°ž¯øïëÒϸ2öŸž³ÝþBØÿDy†q>;ýáÈâ®Û .í¸ÿÜžq¾OÁýûñÿ›j0þÿàÜ¡¢ýƒè?ùó½P¿öÏ/óqäôTcHFn+Ÿ.võÏx³P·æçñû ú§Äa/‹ƒ…Dzÿã^AûÂ÷û#ë.Óý¢"-œ$¦ó_·1_”~ŸR^¨SGðÿ óK< îïOý5ê;òÊåýûÒ¶ú’IÊç;Šïß«ÇŶ¤2& ›pÛùü¤äh~Ä'¤7’_`ßÎüáÊùó.¨CôÿzÿŸÜ8ž&“šÄ:Ÿõ||P´Ô­nÿœÿ€ûoÆ´üUt1õGìõhôþ Ž„/Üã1i®Hù~3ÙÌççÀ™èûz>ži°ž×Ï?–†º¤ÿƒ 4¹R–ær‚fnðظL‹“àHK=ÑQÜdHè7¨ ÷‚­~�5§ê‹è×BY·“ÏWsÎç¿7#©<ƒùt~ÌçCÝÊn+-‹*î¯þ£ûc8?‡çw~ú6@òÊ>Qìabë|ºçÂ|¼Ì7Xϧôé{ÀÄ 3Wb±¬ÒÐü˜œçºo‰gÅFæÃÿÛ¡!-ߣÖùô4"ËŸnÖó·×®ZÎÔ&Ž-ot~cû—rÎç7.W1ÛW®\¹råÊ•+W®\¹råÊÕžז÷/K>ämŒ[ôp9Xq°ôCS óó×”ƒž¯çÉš·P~;ý>õôqïGœ+ê/àú¡™5Áϯp9Éï^�®,9æ÷±? /Íá?£_€4r¯Åù&¬Ï_é/0%Õ~h^Q?[–Ã{ø >‡‚ž¯ž,¹LùûÂc»Ù|á8ÿû Ô/`$i?8s?<N*HÈÍç‹kôý5­ÂJÆÇ˯‡£\¹¢"åó_–ÒpDÜ¢ÿ`LÍ ÈLžÖ"~Î÷‘c¿@Òà‡ªç#¿ÄØ““2 ûÌy!ÝUÝ_³*Ü…ùyN~û÷¹,üáÃÄßÁü}*§ `©Â8\È©œþ„9êðü³Ô/ ˦ç_óRåûÔ¯`ØŸÞoû0ªšðt×áêþšUX¯ÏͯŸ¼dÁF¹|zrÌÏï<]ÜŠÇ¡ Ï$€É;˃eNÂÎeç7—“ æ÷+ýQê?¨”ï`;ž¯³¼¹Œù~á~|ä¿€ý8ßÈŸ¹{š8í§I¥P>ž—_çròzËÏ^DŽùùÊÏ¿Œý`*äz~ŸU9ˆý óìþ„žÝåôF™ý Ô/`äÔ?0„ýÏVû Œûáq@~¶Á~ƒÝ#&<#œ5쯩4€ùu‰—_òq8ùó|^®äóõüü@?»ÿàíÉ[¶b>Ÿµ©Ž±ÿ½¤±ý+Ô5G·â÷¥6sPý•æ‡Ô«¸÷Ÿþ�ê' ~õ~T'ªtbKGÇ ¿Ÿ(úRÕý4¥*ùõO8ùuâçtîįéþRl/åç×Q�«ÿ�ùÉõrïs‹Œª_Ì÷Ÿäõ'”‚Ó«1Ÿ¿¨˜ûÛƒEÊï÷~Yë¯ô ”<t¾0ú;ˆîÇä ëþ ×[jí4ð%šaM&ʯ¯dæ×‰Ï–ÆÙ\Hå„V®?"Ü9Þ>uê«G)?OýªÀè/h§üþd'æëÁT”ß§þ–¿”o>£÷€)×û Ör½?�Ï7ÛŽþU“µ\ ýp8¤ÈßÑGýAS¿¶Õ°¿&åÛóyF~8õ÷cóO)ÏñS¾>ù|ω<æçƒ”ïoñ0ú *ùýÖ ¼V¼õ°9§ü>ÇOû –Š9†ßп€÷Ã~<_ìDµÀSËé~y#‡ûå[{=·‹§p¾Ñû;VÝßßå<©¤=Þ”9����IEND®B`‚IMAGE 6603 ./arch/ground/smooth/deep_sea_S.114 ‰PNG  ��� IHDR������@���[a?�� PLTEÿÿÿžžž’’’*Ž"‚~‚"†*Š.’&Š"~*’&Š>ž"‚6–2–"Š6’:–*† z*’&Ž6ž~z2’&†.–2–6š"Š"†.’ v2’ ‚&J¦†"z*Ž:ž&‚*R®*V²>–2š*R¦2Š"B¢&J¢ z ~.Ž:¢>¢&’&F¢2š:– v.Š">¢B¢.ŠB¦.š ~>š*Rª&‚:ž*Š:š"Fª:šBž6’"F¢>–Š †*N¦"J¢ v&†:jºv2ŽBš"F¦2b¶v>’ rr†.R¦j&Rª>ª"Fž&Nž&F¦*V¦.V¦6b¶6fº2Ž>vÆ2f¶"F®&Jª:r¾2ž:¢&z.V®6š>¦2Š.V²"Bª z"Ž ~:’>jº*–*N¢"v>’:¦.Z².Vª6Ž&~.Rªn*‚"B¦Fž"Bž2ž.Z¶.– r*– n*N²"B–&JžFr¾.Z¢&R¢*Vª.N¦:fÂB– ‚.Z®&B¢2V¶6^²fžÎ j j2^¶6jÂ.Zª"JªFš.^²2¢Bv¶.Š>j¶ †f¦ÂR†¾6¢jV–Æ">š"Nš&–VžÆ2bº&N¦Br¾2f² V&†6j®:b¶Bzº*Z²&N¢ZŽÆ&N®6’>rÂ&z">–2^º^šÆ6rÆ6f¾Bn²">ž.^¾N‚¾ÆÊÚj¦Ê2^ª6žBvÂ*F¦b¢Î.ŠJ~Æ&NªƒXŽ9���tRNS�@æØf��ÙIDATx^äšã“$Û·†+"²m¶mÛvmÛ¶qlÛöùÙºæ¿r×Îìªî®ª¬¬î‰˜/w}<O<û}מ9Q1±S!7ûã¶iƒ3 ÇM„yöÒï¬Õ‡/dõ+ß \uzC%Ç¥r“}iþèùòûøº¿bÃonm(áì”禟¼´¥ë+CEÃ3_>}˜µœ:e:±Þ“ã’ÁI~2ŽûšŸÝþ�óþI~ ~\û+þúÄÏŸLØ{^†Oý´ÞÞý§gþùÃ[ýE†›ÿòú *¹ï£/>’áG%ƒ«ùç’âž/¿%€Ç»²Ÿ†?žýÿôs™1Œï™Ü÷~I¡Û왩k*Ôù4ÿ6¨ßÔ¾ù³Œ|hóg’ÁI~û¤ô|ùý1Fñ˜÷Oñ3sÀËÍ—%˘yã‹ÏÊÈŸ|îXþ±ïVt|½×A4`!2·!è¸ð‹—=ý­™ø%ªU*w±ÿb^þsIÁqþèùòûÓOBúãÜ?Ù19?‰#°Ì|¹‰u;Fš©Ðgäþ}醯ÖjíÖc·Üú¡š¼×žžìSÆ0–•ãR¹‹}¦áJiRpœ?z¾üþ þŠ+º?ôÏ:?Ùǘ”ü…<¤ó.o…Å¢½}Úçuy¸Ó{Ïãr`øÖ©Ù±ã¶Ñ8­ÏqkFÏ9XFntš¥rû¾˜oMÉù£çËï?àô¶zÙí/‚Ô|Ñ_˜Ÿ!4¹?ù’÷³tjÒæëDºŒý8cÆj˜qF†;n«zÜ4EëÏ›ªÆ4.†‰±eåÅýtFÞÜOKå.öœiL‰øÒò‘–œ/¿¿í_’Õþq�ùˆ.ÈŸW„üL™áºÅýÝUf\ò~Ò×JÚ?$ï_z(}«™®p¨T’u[Í,ãè*8л±ërþ½;|`åy?¯ÄÉèKrÒ'+ø‘«]È9Ú .¦&#.Ÿð繨Íç«ú¸,öçÙ F•SÙ›Åþi}Ä{o—9³:©?äç$ q.Q [¼ÿ<@÷ƒ„l÷W°˜[cPmiÊÐWchï½u{ëûöýmt¬8€cNID¨ q_бr‡c$çüþ--ý[Sƒ„ôùó¾È^"¿­MÝþá¦÷¶î–ß_ÊoŸU,aRú÷©Â’÷“Õý}•.&»ýSsƒ×®ej<Pó|^£õN«¿¢¹aÓŽKšßÓ>ŸeÞOËÙꌹ>‹…­d äg×]kìJÍn…Ôü„ŸÈ_ Šù˜¡¦Û&»ÿhÿç=wd÷—¼¿š"Å&©'ä§ús\²ÿ¢ýÓçdµ¿‚7•Õ«sÉ ™Ò%Vß7™ìtÁñ»gÖ-ò¯R)\/“«çÏž­Ö9yäçB~šPà~©ü¸ŸÈ_d?k6W{)¿ìþ'õjŽdš¬¬ÜþÒ÷×I*²,¹ÿäKÝtÿûs郲Ú_¡.'p¬˜æd{û«œ8¨¼¼Ðçps3ýøðZQ‘pÙ <¬ç{îMÈ'±éôù„Ý9›?¤ŽûñüÅ&ð•ŽC¾Ìt¶q8SLG7û+ÅråÇPÿlÇ—ÔßùÓtª€x¦þ ö—Š’ßf$äµ°ÎõHpyc)7]»GHÒD²ÑÜÇ õ¯Ã$ù‹§½¿è¯ÃD$æÏoÒbtÂóS}OÐ=ö=ø2ùdØ>g(Úö(ûsÙ ©ýQ~:ñ ýç}ÉßZùýajT…¼ò¤—°KpY¿¤³èNvÛ ß¹ÿz½Q—ÝU´^<^eµæt½,ä+uéà=— qþT=β _ÌOõ´´ä¾Ì”Þ.Ä Ÿ°—Ÿð-sÞ[­ËZP&õßÒ_ˆ¥÷gêŸØ_ËKe ¾Ü¸VŒ½ú¯#-–÷ßì8VåÄëÚ‡OE¬“ÙY¦û«IlË––‹®ƒ¯V*Ó–ý-{z/ÎtþçoÿGCP¡y_ÌOµÇIËÈ—óûc¯6*a»÷¥åí_t·K™­ðÂIýýou€§ À3õOì_Z$™†|¹Ñ~Z¨t¬ZùæÊ«ŠeæÓBÖÏÏ×Nx×ê²µL?–ÿ;«Ë¡ýT« ¬L³?ðýLpðÚ¼:rüºmgsÞòW¥êèy\ðåû+Qÿû'"!jYûëô«Vf'PÊäþA‡àÞL€gê¿h©<äËÍ銆m_þp˜eË˃è[,å§L+³•p»?::9ûŸŽ™¹üTaçèdMØ1³pç•ãlÃ÷èý;á¿(æ§êDqÑäËögÄýOBÿã«—³ÿ3hÿlÓøêäþ3C‚ÿï)>â™úÇ}ƒ¿aë—RÈ—›ÿž)ºqî/¯ÿ²ÊŸgïÃû³:[é@ïÔO׉†¡w~ûÖœŸ*\'º ïüöý…€ûè|ôû',!ç¼ ùÝ›SõŸÖGE_¾¿Aèßå/'þ1ºôýG_^@ç§ëþfÈOîÝž±ÜožY7tc³D$òå&|º¯ªÐëõt¼6˜gã« ½>OÞkƒÁ¬¥ÃtMî»ûŠ6ˆ}_‡ò)k²ÐïÛ5Ú yñ|ê³ÿ¹IlÂ×V üZ]jDOÜ—ïß„úw¬Ô?%œ¿Äýëúšö{)¬ðÚ ã©ösIýƒ1Èü¼ÅðŒýã~Åüùí—øéE¾ÜÇ»w:VýâeÅr¦MCâÆàôª_ÎÉZ‚÷ïüÛóJÃA›]ÃáÝWÉBþŠïòJÇb±ˆQTwŒçã~)C@¾º³!MÆŸE_¾?ìO ¯ëÖ*zð33üö·×¡û?³�÷‹ÎOêvø¹ÝÁé$ÿ¹üï2õû A ûkH*ør“Sª9´ý‡3=Šå̱[ú`;òÿÞ¾«¢ùJxCÓ7Ι­ù%nð¯mOùçU}óó{I¢³;æ:›ç|ö½­¯oß”&â7s¾Ìö¿¼ý‡Éž š·°Ýè}½¾OÈr“üÍNÁ?3èæ””íOŸAç³Éý‹_Psè—à/œæ+¥Òýéf&îwäßÒîlß”þsÁ—› »ßž1:?ÒèÝÅræ‰Ý»Ÿ¤s?ÒXýKò]CSʃvÿ¢ßh<ªIµlb‚>˜bbîM>]ÂݽcÆhL“À¤ñäÂói ¿ÉhlÐxšÑÍ7HÃàû€Nok!à œåýÕä8<Esà6ô[ä×[ÑùF8AœÂ΃Û˜;-ú‰ïŸ2Пó ùÓš4ÕD_nŠ×³cu~³‹w¦åò¾¥²´ÎÏûýKÒHÞ×µ´.^_]9¦áÍLªÐãú™¢Ó¸–Ú*^ðƒ= ýÃéÖïŸýõqÀ–µ5Ì$Îs”´w¹@~c©†áž-#*f0Ëcµ•.8’²¼?ô�í4µM#`¦k«üÈïqc ¬·4†OóŒŸW–Ùàür–Iôׯ(|ÕX#ú`—³ð³] <ÞñÐ嬟Nø¬àW…ÁgÌ÷'7Ç÷XøÍJ—øG°¼ÏŸõ›Y5I.I+¨Dïëïä?ÞË?ð3Ê <ÕßXp(ÿxZ›q€¿gc;ò÷(¤ýцóÁ^�…‡"í}vœuÕŠ8§ªw£êÙ£<ëâÀ©ö¾2‚bjá}=ÆtAüò¸xVêr7"ΰjäkŽU ßì�ÏÆÑ?ëgtjŽôÍÔµq>Wk­™ëßw9_ô1Ñï#8§«¶ÖL#ﯨ~ë#p§«úÍqÕåc--àû¡GRIïi¢/ÿ7ø>ޱAú.¤åò¾|®m‰ÚÍ÷¶þø×·w6 >¥&Hj(YØ÷öæŒþ æé€S:Ó$íF¾x¾'Hõ…°–"pšv(zþ±eö½gÜ÷öö¡MGïû° ' û}„¸¦¯ï­þgw/@>­tE)’íÁß1Ç&(®ô%Î×ÔÍl¸àã4Kámª`Lë#&XtþW[Äþ;Ú_9ïûhšù|šEqÔÈù}"Wsèû‚RíÂz[E_!7Ó»N*t:e5¦XÎ\ùCc ¦Ó-Õë«uùc ÍÅÓ¨ )kIÎou577•ö[ùŠææââ]úX*視~×Àô@·O§äiͬÖg‹æ:ƒEÏ¿Òu§•÷‹õÅ»ê‚1J§´`žYnSçæKF¯½RY ¼ùúèóðûìWo8ƒsýÑ? >ÜðšBá|íœÏˆ¾&8@ë`?‹fУžºšë v\+ý™æÁßùû„¸oŒ÷¿²K÷‹|àZ<›ð[1CÃôô.}P£¼lµú Å‚ƒE×^±ÖÆïOf¦¸Ú‚Þc“EZžW,gLœVÕ{wrÉ^£ÕÂ¸ÛÆËíœ;§÷î çÜÉùV‹¿–/—öY‡›?a'<]½w?NáýV%òM¶¨Guüîä9-–ÇØN¿‹ À78¼ÿ{nòú {õÿøù p‹Ïçwá&ûÁ«ðkU: ß8òá~FŸÅ(ÊïŠÊ®*p¦Î×"Ÿ«:ÿ,ïìô»©�ú¾é·žôƒ°Ù=p?Eȯöœ»JVÀþ~÷K×OL ŸçY§Ë-rf®ÿ©�ùÐ?(rÆ…ìˆÃþ¨ŸÉNX fï~¼îÇ(à”©ŒS“~è/ޟܶ®C/æÚÞŠe YÞuù¼n/YDïû’$màçN=¬'ˆdÞ‡¸”¾ùÛÁ§H”?„›R¹è‹<×¾Úf'lêÃZ®Œä"Ø4EÜ»6BFPÿÎúÕ‚°wz‚\ÁEÌÓ4÷5œï;îge½=jËíÓà“L…ðýƒüxÿÕõD4à;$ÊÚ8Ò¾p~$Bâå]‡þ”kûµOá=ZÂÄq8œxøðŸ}" ö8G ΉýñYÞ÷;µRäî¶6"îØ7<ùpþPgàa�çl¹7gî/žógñ°Aue ž…_ÕŠÑ®%‹EÛFO–GB&î‚êÆ2w —\àpÑeàdÈD¬R¹1:…ÖÎ7ô»,°ŸÛ=½a ²Þï-#wxݶ½#/!~ZU‹xÐ5t Dl#Ã1–ç#_]§r±Æ ÇMGë:‚x$$pܰnÛÿÆ}èï(tÕ§7h"k#Ãðèá¢m{‡¡ß ¸_7Ë=Zð7€ÿÉ0Ïâ<ì…~6®®*áç ¡O¼fàÜ\Ò¤6T¹1ð×å ø ßœy¯¸¿AÕjaàѺ¼`$$öKø ¹!I{}'m¹W)Áe}bjM'M/],‡÷ý}풌֫iÌ•”ÿ/vðOÿ|OJŸý³ÐM.ͦð2›À« ® ú±®Ê–›¬Ö®ðhS!Æê¼D½íÄψ“8ø°ÿ–#Vx`ö×ú½/ù,âmœ}M'«¼WÙxpWÍhI!¦^6Ç è¾öâÆ–Á‡ï ¼1%rž ¢p¿Jœ_i=ÐUÚѤå•:%â>‘Ÿý›àžî¨róÊj!ö òϯA¾ÈQ¿9ß÷£Ð»÷9êw ' ýb'Q?ñþä×'«ô>P,sÎ!¸ÈZÓ’½5o˜FN­µNN±qÔˆi<™×a?yjíç/H?´œúÄú™#m¡a›)Íùöa_$p´ßjR¹ã»-÷ßì€ïtk¾°¼$ð6òã$v§åÝãïÜì½[éU ß7ˆ<䱇”4î¿©}¿àù¨ú¯&Øß½x§¥ãøõoL‰þܯ ò1ø>¡å@kI^Ç«_/ú›<Bˆ~ˆ…~½[óŠ^U))±ÿço E _ä7¡pä?„ó× ûsTÄ„`¿-b¿K•¬èÃýý_;çöU…ñ»gfÏ™™ÖN™é0e¦íÌ´Fš–Bi!RŠí`/‚ÐS…ÄV¡âýnŠèZo˜ ÕÔ*•1o/‚·„¢m á…ø`¢Žkï35¡gï³Ïbe¯¿®ó­µ2o»ßB2Eh¾|b(-âò|û¬Ç.ß.ó7æÍÛW¯wãlÎàqc~2w`/Çß <Ð,ó‡þcç'ÆË÷Ÿ…ù2äó‹çaÖþúOòêå‚ùôæ| ˜žœ…û�CüùóNî\<=Õ_£ ÿP’ï‡÷í¹ö6ù~¹ÿîöS~¿ ÿ͑㇠‹S—´TYýQñžHavžHý/홨iH–í_<^`óCÿœýéü?ưÔÿ,¿^.:¿±8uvãÔ?¯æŸ4ÝÈ{{Å\’ïßþÛ•¨æµæÛ‘ó|þÖ\r Ü'(W½àl¡Kàϸljÿ•­oïþunæ¯aù|ðn³ößáÐÿ=W/׳l~ºO²÷ÁW~±Î_ô“û£«8¢!7bùó3ßÿžMkzÖB›œæÓ¯¨÷ñ^^äïëGv‚ÿbZ‹g}\¾©úŒƒû�±œŽ>7óïù¯’¾\<�÷ xþÀ¥þf=r=ÿHLƒþyþuûwÊ÷B:lÏhþ|×îDR‡wb¡Žóé¡x6…ÃçÊ÷?ðêÒ4|?ÿðû¾wé“Q¹?<ÐöÐ|¾ËùCz½“s·O[¸3³¹šÿù¦àSÐûô‡+ùÄÒ§7ËýqêÈÏïãlËÚ°•:Χx׉›ß`G°üGFZ|aÂåÞ›¢rŒkd¤§§|ÿ]ãü øÃû|Ï¿>êd~¨GnÔ1¾ 'uBZZèÿ/ÔYøh ÈýF.ùóMñ`–Àû9w=óé7Â}�äFfÂz�㦹|¾ï²‚Љ$Íç—-6üï„z·þ:gwbû¥û£ ‰·Ÿ·äþHCn¥wk]‰ÇÇ÷pšO×Yšow©ƒÄ¶'þ@¾ß…yÌý) ýûx¼[sàό݋h)!뎤Àÿ_“Ó|úÛõè?ªL5‰,Éò9Ìn\±|ú?` ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ÔéC7°” Ÿ_½ úÛPEʼ€¢ý¶‡ÿoùùëà÷W‹ùp‡™ÿgù|È÷ -€¿‹löüIl¿Ÿàó~�ã?Ÿœ#ûÂ~*X,?ïžÿlÇOϱ|?Ëï³|¿Èäïü½{Žõ¸}}Çbý/÷Ç \ËÅõà/ðþêQØOÅjÍÏÛå×%ü™Á€gùþ0ËçC¾¿9$ZR™¿Úœd EïØÝG ÷x|Mé~�pÚ_RçÏ·ÌC|ÞÕu’ùs­ÍýU¬ ¿Nï\_kÃÍ|¿fàäû/Ì4 lbëXþþ#‘MZ£ü)ÖPº? ü>ŸÏ™÷ ¨§ýí[ÙßFs¾t‰ÏpyëlAÜŸžª¥û©T]¤ùy»ü¿„Óü¾˜/çû«<U4ß_Õ°Ð'ð1ó÷} "Ÿ*àpÀ†›ù}¿èû%ÎÏ[ê/¶�õœù2Âþ¿Ï›NûãÝ_hbû©Xzã©1›üúj9o³áþ£PŸ‡ü}ò÷ƒXOt |Jùû„ȧÀ8s¸?�õ-¢ïo3ù pôy?À¨Ù¶%Aˆ¯³‘\ó»bó1ÎïŸñbÆþ´?‹û膇/±ýTªºc†n“_×$ê 2¾Èòóþ»!?OjEñG3OȆ¯.ª7ïkÅõŒ¯ô×úÌû/çh:®ýáÔsÖù7ûç̇ûõÇùo.í§R%ɯKyß‚”çKùþÜñ0D>,íøXÌŽk­pçÃ(“ÝËî°þZÇòc¾[ç÷Ïxîû+íï/ÄŒ¨r®s%Á����IEND®B`‚IMAGE 1785 ./arch/ground/deep_swamp.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÍPLTE >ÊþæÙ°"›@ñÞö¿+†U¨.‹Wyú≈5¤gT2rÒ!i?L2=>OÆ1–\›¶™˜Y˜`@_’¸)NN‰g!nIFE-ZRê©*¥3‚‘^u&¢v®& Š&’Jvl:"Ã&ŒHþÀ,*iC‘ižZ¢¥¢´ †u{jM0+5ªk‚'Z6ÁA7%´~ŠvªªVF º#tS*šk2"2›`(·Mjh£!— X(‚P&2ž&jŸ†Ba_¸z§j†R)‘—!Á>Š28|Þ&MŸ2 >0BŠ!­A"¢öNÌØJ.VÊ"€ÖÒ<0¢¤°¶f:Þº¦”ò* ž|!u>û%>tV"bÄ&d¼Å;Ú,œ6>f±…†hŠr ?¯§*¦zgn&®ØB˜*ò*Fˆk'"–E*žRzzJt¢R^."Žj–‚ UGº. &Î(|LŽîª†z%¢šÎD&H~šjR"ÚZ:ZNXWÂâªF2žZ"^ ^R :Z^z-Æj&vf*ŠŠn:‚* ¿ Šª–œP¾þ¶:n¢v¢rF’:î&ºþjZ¶Vr:ucþ 2’ ¶^N2šv&ÚFÚþþFJÊr*~Ê*Þ.Ò6^Š >ê":"£A’º>â6~¢7¼¥í��çIDATx^Òƒ¢e7��À$‡Æµm>Û¶mkmÛ¶mµmÛv¿¡Ýù†e¾ˆ#làU".–í!Ä!!"œ Œ R€]òmQ¿Fm6)i¢0¶JIÐ× IƒDBÈT�f¦^ŸŸéêp‡únI,g Yä' iˆ9Wt8Pt5'ºæA‡mÚÁÔÒêQGû.¬µ-8Ó¼__–O@dkDRý´¼Ý¦0/'*ú‹³~ nyѲØ{«£9 ÉÝàó5Å¢?ÇŽ®NNˆTÞOj£ùáQÛ¤23èO7Þ»½Gµ»m$t PÄ,ïD‰Å%e¦¤À–Âi2Žpߦ÷r/jFBT×Nž—'ØÀ±Þ¼Å®Ow™l@}¡µ32ʯŹÂö|ˆÈ›dà´Þ•x‹+1¢*¢Ãª;7„£+o Mb{`êLmC‡ûÈ…ùAI"ïxìW¯÷nK×cé6H-™{.ú×p–¸^у€§`ùS÷înšUx?Ö£©XGÙŸ ±ß“Âc+?‘/mH=aüÁµ¯mnömt@™å´ØªI®ßAz˜NÓHü(šÒ±ófæäúk! ­´ä>ôzg—ö�R\ÛX€¡y%-ˆ‘OòÖb™a¡zW·lú7 ÂL±6пʃL¥CA:%`J±‡Lv7%>#2²�<’TW+ÁÿÑR®5rÎÿX·[ÕM¹sl¿Z €S«–Këç8«Ãò•`^’_‘•×INçå³}¡Nîl×cy2Ò¥%pµfßÃŽÜÐ<ìýÁÝ×è¹Õù ©õEvÒøÞ,’¤Yù骜¯‹oœ‘£ÞRÈïõ~ü»®X®4÷¸Hq¦l)½Ä0Ëê˜y9ÕÃoBaÒK)5(h|Á¿Á§š¦ä\Jyöü>àu“ _Roª¶¾…Bá]ù×o/P5¶qîÒò— BžÐq¬7ãÕc0¶R‹dãç~DY´.CL†¿þ¬8íJ€Äo©u¯Ø-¼ 1 d|zôŒ·ô@Yãá©éU:ÃÝ¥«ßiÍW‰Zªºôã·dØE„­9\µãùºéòVãn¨Núbá/Ã>xÜäû²�ÕUù‰ÍmNûÊj.6Øë" ~Üód|ÖÜ<í¦!_¢¨ûæ¼&q)±<ÑPe·Ø5îúôæWê 9Pë(0¯im&ÙÙœGÿ·Ž²/ÃÝçf‡_ÚZ‘ŒÏñþTáØègE×)Cf¢¯·BXôdk‰Y–)Fž²›èÎlž…ðŠ€W61Ü"^DMÌ–�\Ð Pü����IEND®B`‚IMAGE 1809 ./arch/ground/deep_swamp.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÜPLTE >þÊëÂÞ§æ™´vú.ŠVPM¾ÖŽ[XÒF ˜l®ÚÆ¡10ö"mE3!{2˜^d”” ŸºZ6¥fŸ5.†VF0(’N‰N3âT6‹‹–#„/žeã3‰qþ}nkfd®:^"ÙD‘5 ˜$vFBB%¬G"Šb\5­)BªŸŠµ:%šE¢l4È& µ:*Ë7"fB>*†^‚bòNªš~žfJ¶W$•n‡fRÁ*9’Ò.¾ŸZº:*U#B4ªl™2|J)‚Q$pX&rHŠ{[64.¨¶dRB³#U!•B&'jvrÂ&77º&ŠfnV JÂn˜(â²6Ö&z '¡J¶>ªFšš¨¯v’ˆ²"†^Ê*†2v®1£¥¼þ"ª†šJ"¶B&CZr>.Z®RžJ2n>:’Z†:ò,® #~~ z@ê"‹i;vâNfš *|Žð*P ¡ª) °þBþ.¢¿5>² dÄpl*ʤb¦.2®^V*jF*Ò6N¦Ú"ŠÒvfÒÚ*jnÚ&ü"J*ʈTBŠ.Ú.†‚|ª†.ª &κ:Â"&ª~nZ~(&ÚFîêê^J†Æ‚š>6FŠ¢‚¡!Rš*‚fª’V6f¾-¶VÆB‚2ZŠBV2NbŽ VÊ^bº¡\��ðIDATx^ Ò‚e9��À$Ïø¶mµmÛ¶mŽmÛ¶m­mÛ¶.°}†*pR ¨<¡ÏQJ š·’bdíG BJ¨@0€üâç–0½-…œYòZ^{ð™˜! &±û(c`µü�|„hÕÕ¶™—Iüv—1ù,C—ô€ÆU„gè PÒ†Õ»~Y±-95ÿ|Z®µ9 ""*²~6H¾òu -ƒžy¼Ã®r:Š1fä?ã¤ñ§CMö_ÆŒK¯¬=M‘$ðÇ5 ÖXÌTP|,»–^?8ºªÙÏ×ùÔ¯/¨àîAÐÓµ;+‘D²/î²FÚU}hù,B™¨ð²¡Y 0%Dó/\›÷3¦-ä{(9ù債›z÷°¾’ý8äêOï}¾¼ÉåQNmŒOø‹÷!ª7Y'Ÿ!¾ž løžü¨½}h#ÍB·¼}ä¥ù2}SböW!Àç*º^ þíQÞh9¼•ti¼pÙñ'ñg÷4.'S@ ¶Ý¿ðûÞ}—ò”S7ŠÖå"ÍVnÙ ¥ùý;êSV1íÿ®© Zs&}Š“y„Þ+=ý±}l÷!ëÒJ·HÀºmjé®ðúoÞÔ‹8’0Êhéþëîªxf¿‡Óu53�ƒ±Çq¨¥Ü:‚ÄZ¨ EqªÝÕÍ,E@B ú­b—qv#…¼n¢Íx„ß·¨J#{|>h1°¥Ý,BˆÁŠmq&‰Fy»QÒC•Ìý@V`Sê%-n7R͈üzš93”þˆÒè¶•ÃA1Ð")¶shêÃà&®ÄMôÊ‹¤Á¥§ Ý q&¨¤šòDÖpt"uÝ"À8!}o*÷(¡hIŠ}+¸´V?tvΧóJkÝŠ>Ž·Îs憅 ûoûˆm{t€oûÀzÎïDd^¸T¥Rú§ó§¯,9DSf²$}tÎBZæ‘¥Òl°-ì`؃¥‚Yv÷âPD’gòv©Ä ¼¨Œù6ØÙ ›¬iW ‡”àÖ°à©ÇPOu–�ÓÔ³iE¤L …Ï$ëYœÎH9”ÐõÉ{9ôù" ýyeãµGz çDkös?†N&†6ܤ©ÚΡ¹0IJ›c÷ýÙx¶¦Ž’z=[—øôy±2ùI¥`»ÖÌW•¢š4.zUÊ 6<V̰շÖ>üᾆà^¯À]x^4š’wé®”›½šÛÑ’µiX›k¾°*ÑþÊÁ…ñ¶ËL·î7„Yv¦¸|×ÀšM •¥ @UqüÑ’søP%”ÂÏ^f †­æ;16µ™WS‘'}öH§!'ÒÚ×#u?oE%N¸žøC»µù����IEND®B`‚IMAGE 6223 ./arch/ground/smooth/deep_swamp_S.111 ‰PNG  ��� IHDR������@���[a?���PLTEÿÿÿzÞÀ~š2ª6Rzþ’’’R"¾þ‚%þþªr ŠæŸ›› :ZnšÆjr†€-ªFÙ}ê¦þ–&5j‚ÚÂÂÂ"˜AR2Â6ñª*¢‚W<MnBŠ2‚6ªj^ Šy^ŠÆ"ª† vk*ŠŠô*~Ò®"‚*’:7Îh@˜|&zJ^:&®JŒF°â6 4&ö²†ML¡]†: jz2"ˆL&žîf BF'žJÂ"RÒBŠ(Ìþ&(†t`’>ºV:&ÂFrFÈ(¬22—^Ú$„TÞ+À;MJt*M0=,þ&Ž–¡¶to¤¢’ NÌd¼þ"tURS- ŠnR[¥+ŠbšÒºþÂ2*O¶¶¶2šfvjEi^[V¯‰ŠÇÀ)E¨22°#Á¸3.‰q!t^|r¶d'J>â%Žg:¶¨’&¢vºò+¶’B^b>“.ªrr*&ÚFÆ>^&šJ×En¢Bjª†ª©.š.ÊB ‘_ 6*£9~¢Rš”ëšÊ0¢¤•·{aEp: Zžr*¸PE.jŸ<;Fˆ.*"rVê"Ð3†fFJŸŸŸî& >·PEd?^z&B¥·55¤g"bæˆ/šfúªš®Ò6¦Ú"qG¹&+†S¶Â‰eX8 (•u2žbRB8rb`–•v¢â.ŠV ¿r(Rœ6Z"*“šž¶ih¬è���tRNS�@æØf��ýIDATxÚí}xT噯ïÍDCuÝ@ÍÖŽY¥ ÆŠÛ”umåKcø(Á¦]Ô°Jt ÄckŒ.ݘB ß"ŠmÅìšvAÖRB·[¤j„P\Z“ÒÕS7 ƒ…Öθ©î>ï{Þ™÷ÌùžaC/ÿÞÞï}?çòòÆç^,ªhmꬋ¶Å½ô`|Ñ%qU ªåq%X^®ªE}¥­ÜK‡#&¿ƒž}¾÷ü`œîùSüvú陹óç‹Âñj/½=ü­iÓæWÇÆ†Ëû"96«åÓ»'÷Ǽt8bò;èÙç{ÏÆéž¸Ñ+êé™eEñWk›ŽOmòÐ+»_¾±5œ©­-¸ªþæ°|ÇU=Gæ¥úôìó½ç‡‰Ó>?¬ÑüÀ£õéÌXÕÚâWo(k*ÿ{7]Í/¿gæî ¶tªêŽü Ÿo¿ÿÂÆKƒ|zv ÏC/‡-÷¨~‘BÏ6ß{þ[ÈGNYþö”ùa¦q{Ðÿüà0:}ÏxÙ-ñâÞ)U5ë¼ôÇc¡¿þÏæXOãª;û¿ù—-›߸©(qÕ XG×aòÃÄ©g›ï=?É<„s~Kê|0S³ù(ׇûɇ¿ócôÜG/^ZôK]ômLö»ÏŒm, |ëñXôµ7Šªï>¢†<tí· ,Ž× ûŸVóÛ…îšOºÿ|·ù Èz~¤ò(ìy£(u>˜IÌŽûü°Ãçü\´÷¼§Vµ­G¤ÛAÇy`úôîJ =öžòbýu‹Tu͵!áÿé“~l±A6Á–z,R¨ ›Ê; e>ùa`®ï ݆Y‡Üÿ6’Ôùa™~.û;ä§ô—ó³ù�Óü §ï»ïç…P‚¿¾£ £Q *€.`:éãQíÂÜcûv‡Kú+~}ÇñŠéµ%¯Þ”ÐàÄ>±ìÉo×óÊ'?$j¬aé�ìÞ¿Yè"¿ët̺ïùý`œ0ÏÿìÞ"ûó|˜1ö¯Ðu1?«‘:?ˆu¤"ü^ôþVÑ& ›{öm_‚3'Û¤øØ‚ž|5–ô+†uÍxè»"o½;[UŠ&å/m€é°x±uÏ?9 üWÞE•ü“IçŸÝò>å åóþÐ! ½‡ù=ù3ÈŸr~øgÁ2Ñ_Îoæ aþ Ðû½‚wUpRæqömô}‚¿ùÑU•­mg-­‡¤? ß}åØ}ŸÙhò“þä‹_øòœ¦Ñ¤äL}öp?�¦÷Ÿ%üÀ³ ?l$ÿö »Ÿ†ñ}îzÒ¿Òß!ý>æŸí5?Áòvþ~}Ï> Ÿ¼eé?V ýß—çÕèß&„ß‹øœò«.ZúÅHî»û×¾kÃ:j–×ålZqOýèìáú÷Á8PÈÿÓ‹æh8|׸?@ðý§~„-åçtRÀ1¿Oú ]ùH@:8B‡,<ëß�wÖ¡~,›V8Ì?~0÷§|š?‰cÿ?t Á@ÎÄü~/:*vÞ̧V!C:F=6ìÊ™¿Z5-°ëм®þ’÷?UûÁ  õz8ð)�sú€Ÿjë6î.®¶ÏïktÒïïêk½>áÅýHð>½Ï!½{ ù}ôßBùÓ‚óáÅ@2ß<?ù1ÿÐÀjxÐâþ9¬¿œ¿‰úOƒ ¡ÃƒFØûàø›—}~å­Èy—M`þ‡ö+kûWš—ÕÞò ð\x/DG¨¥vú®E,9¿”tp}’Þ/}é…bá7÷o†Î.ÒóÉï«ÿï©ÿäbþ ù¬~0¨<±ôŸÀæHÍgºKÿ9I?Œ4÷×®¥÷ø›‹ï«Ê½á®c÷"#¤áÄnU)èœÌiʃ?^ W*±ží9eä¯^gÎï½ �×s‘D¾ÿóÞ›’þ‘<IœWGU*ž?’?þðÏOñOLäS?xÚŸù×Ý5hÍçºKƒÿ7áç½ üÍeþu(%2¤Høç Öׇ´\µ÷õåð¢ xgï(ä••T·9çç©%¹í$Þ×ÊúÉÿ�Ó«u?´9Há^F~Ûü¼Y üÔþÑúz >é›õŽy~øåõåŠì/ço°^èÐá:õwÂà_«ÀÀræ£÷Åü^ ¶wÔµªZ)2d°Z÷×(ýuʆ¼xWqî§KpM<¤õ‘¿Ó!ÿš¨¦åA¢¿뫈«Ú¹ËCñk¢ä×û£´FBXT¿&ÎüêÉ:÷Óæþ1Ö> !ìO~¸¸žÚ?û«Ø÷§ �¦ËþVÄü¼?ìó{Ñßû\XU¡"}¤Ÿä,,lœ,‡ñxïb�¿»¤7¦v„sô|3B‡„ÞÇĉ˛š£½Ûšµ®ëù@Ê q©CGMêË+£Ñ^$ˆ¤ö¾èÝõ—~8Cù\Oíàýgp?�®CGö·Aê¼?ì8ØÊý^Tv”Ô‡;šAFTF˜?rûàôHaSsKyÙgáÉ,¨“�|cËΗ#•1=ß éùÆVô>PöÙÙ«£ÍU“r ;„ŸåˆDäûÍ*×¥Ÿú%äÏÎîšeHÅüuèýkZòÊà‹I9æïg  ͳ¨?0<OﯚúË~*õã~ÙߊÁOýÁaýí¾Ÿ!µJ{ï­Q¿@2BS«BïMõ‹½Ë¾§ôSr ðI÷ˆ«þ¬[ ©ÁÏ·Bz­ 3œ¯ýxÓ¡ »GŒ'?ïT~¼ö¦’nò+ýºßn~ÞYý§šýRú,°ù¾§€½Oý©ßÀÔ…cÄüä…üâûĸXú ¬~0n^öýaà ÷{Qð•ë?\uål!}¤ÿý­EüïÈéj >ù+ÿéðžÜ„�ùÁ)‡ë°phVqq0Wûð‚¤_þ)¬ô ]úY?Xáþ€¡0oVFóC<+4Ÿx?ý_¾xåJÃü³§€!ô�õýð~¤ƒ~0fç+€Átx¡Fן¼³÷›ÓpÝd‚_ÿõ•ä^qøŸëÂ'-o"úè_z(ÿë<xãg‰þq\_ ‡&Ï™5%Ôòæ=Zè'Ü?le/,.ýô~üº#O irq|ŠÖb˜ßÐ?Tš{ˆt˜!ýˆÓü¼:¥e°B:®8ÂÞ×JËèýfÊsÆú%ýW€¡ëQÒ‘Ò Öë ¸ŸæŒøu‡ß€û>`p¿ñµßØ¥–¾ö¼Š»‘ ñ\ò÷’¿ïîÃ%øåžØï×­ùÝ·ßn‹ ç䇠¢ Àº5­ß~û,X™ø\c÷·Ëk£þKÉo}ßà'õÒ'vW´Ý#ç7ö_«ôï=›tX ýH‰Óüü}ä‡ ¥Æ÷õ|1ÿYñj=_¼Ïôƒ\ ýÁžðƒ0~?þÏÐ÷ƒà9èp¿ñª×ÇŽ¹¹0¼™U_Ÿ>ææŽœ·†6Á¿ºŸ~ßn}¨1rn¼êî±Ý7w„zå¦ÃÊWõßß+o}¨•û§wS¤² =á§÷w/§óõÙ_}*e~Þ?Ìû—‡k;7Nù°Bºíü¼ÿî[Ã`~0îoƒ‘nÃû;(ŸÏ¡~Wêó1ê”Ïç‹ 1?͆ð·‘àþFáh¾°ü>Ðá~/:ûÆçMÝ·{ã—‘?P—Çý3¾Ü¿ìvÇÜ£åâ=,ç¾z~]} Ãè÷ýѹÊÅ{{ý’>iµð³þFî˜ Øû‹�m/{ß8?åSÿÂÖÎú’¢\Eêfg½Íü¢mþˆVPÞ˜.ß§V!ÙoO]_òûHÉ]$ú3?“N~}?îÇFtÃŒð{_÷»ºôŒ­jÇ’ËÒ?™üá—'žê¾à­åÏIÿÆ%SÇ£œ¹ÇÑïÛ/‘nëG׌ۘþŠÁ_ ÿ}û¹3ì÷ÿ/Iÿñ“sªÚw,¹lüìšø&%´Ó]ü»þ‰|•ú“�ùa€éòý–èQ%ô{_ŸoF­þýs‚åõü£Š&uš?‘ß®ëQÞOêrþà0ÿIÙ^(³^ºpÇG7^ Öaëwáé¿éÂNæ‡o¿ß¿ø›óµ@Ò_73%¿~ÿþÍ#J6�–’þÏ¿9_ Pòƒ˜‰Tt?éüý*z (__ϯûèÆ[«Xþ¿=1»-Z¢º/¿ÐpÜà0\÷‹÷¥^Ïôóe¾jÒó+Íà —ýRý¢ŸîßoñË‘qå¿®=pñ ¿œz52ad³ðÃ7OnÅk‘àˆ‹ÆT<RR“ôOý2R1jLã#¡ذÜ.ü¬ÿVØp÷‹ùNþrçÕÚå . ?yà¿)¿0™ÿ4Ó)_»|ïöÈq£~¾½kŠ_è—‘.üR×ýòýKï×Ê|š'×…ÿ‹¤ëýßoV�[¿œ_|?s>÷˶‡žþà+…#¯ßAH?ÒâëãÃßÏ?ÞØ¬êþʇ Ò+šUØð�Ü_!üÊРóͱ»§|ÔØK¾ó™¥ÿžš;Ó;Hß#u7ÿ.é÷z_ê.ùFýúÔ|íéß{ù-ºôûøsùª»¾=úŊùq¤ô#=¦âU¥¾nu„ûÈŸ¤wî8ú÷üó`e÷ ]Ÿ¯=çâ‘5#VW®טðGyGÝÎß%tS½“tÓûÍ)ïï¥|á—z×L®ß@~©»ömî'ýð¢»iÔŠkû‹sφÃ?ìí€ù‘.+´ÐowLìnªÔý?´êZàÞ‰p¢§LÓÈÏû;éäçýöŸGóE:zKFþ¤ªrâÙO\ÞCùAî_KùL,;,2è ½ïâ/#¿ÞÿZÞŸù«’úæÖ_ôãïK]æß+óÍú2æ'=ŸtÊ·õËï'ûK¿Âüð"º¨U ìø»ÅHéeâ?ZÒŠÚ£¤ß¢+EÕpbøÑ2ü<6ï'æ —ÄŠ”²\Uù×»ÞV ŠæLÚ$ü"ÿœP HQ“ú3“è}g?é¿ëÂ_V-ß?š›Èp½$ ýEä7ô‹YuêÇæo‹÷…^mé·Aú dò‹ïç…V8jo¼$ïÜmHìýJ<®l iÂo¯—¸ù£ä×óßOö ôžÍUÕÁ¾`éâPÇ个ûCõB¾—¢GU%µóçK·q]öJ?éÜ?We¾®ó#ÂOùV}éÖ÷e¾èGýå÷“~®'ü%>ï :ÞðÞï~ýÔåä¹ß(8ÕùChþÁŒæ—ûïórÒÍ—ûûÂï¤ûÊÈ(¬a?>»üy™å™ù)ß^ßïã>€Jûå¹MÇ‘&r¿ÝÁ|´ÏýüÌóïeùª¾ï {ç«YæK¿õûœ†|çï7à'_î¿#}ø~º£»ïýüÛ™¿=Ë|{=X~ªæ§ù¼òýÎJ¾ãýå#ZvK”í§g¦çývl>šÆ~þµf]fùQ™oÕ‹¼ó¥?=Z6åï lúû™?áOþÃp»/П÷æÍ=»‘í§gÂAÍy¿ð¹Ÿ¿±"›üž[†ûÈŸ'ú§É´ø íç ÿR`iFù¢¿¼à‘/¾¿ÙÌïøÉÇà¶ßŽõÈ„ä~>lñ½Ÿ¿ª-Óüî‡þó‘l? ›’ùôû}vùëÅ~¿7ò~�ß!Ÿßð“%¨t@&ˆý|Ø3>öóƒl¿’_Íòᄟü@úùÇöaËf aœÌï:‘UþU]¨‹°ýøe³ª_žoî¿oÄ–tî€öÓwÞöd‚¾Ÿï¢ûÊ#ã| «|ê2Í,kR†ž'ì¾°+‚4ù Nšûõ@íòy�ÀVdÌYäW¶ºè~ò‘U>‘]>õO“û¦xùÒ K¾¸€´IäóûHò.ÝÀƺð.»pz`÷ÎXØ}‚´XqHß¿7Îì`÷ Òæ茟Ïòåý�ü¾VãtA÷� ¬îÇ™Èy3‘tÿ€¡­„d²ƒß'ȺÏ`¸¸/€î%8m°ývÐþ>ÎDVÞ ÿô×Þb7?²d?Š‘9­û“÷$§{`ûûø'n²Y’¸@÷ÞFÚÛ¹0Ùÿ$öã5¨½øÓ¦Ôv~hÈý>»€ ˜“ì÷ §@ ýÈý>A¬®Äø}|ÂPBßïÏA–ÐýA/ Áº/PI÷0´¸g2%ÈÚï kjZäR aK™¸o0´ û�8sÑÞC¶°û�'ì>�ìñ}¿à´Bûïg.t_`¨ÈÅËÈ íC|‚ONb½:´ÿLÑð&,Ð}�¤qá|²K…'ÏãÔò¼ Èûúý˜8B÷`‡]æʬGöÜ 7"ðËô1ð¢0ŒSмÏÐù: î •°¸O ß0÷g~ ¿¯€¡Œ÷ÿÀöãá¿ïŸëᇠ®Ð~=¼Ø /è>�<÷¬îÐþ¿¸€Øý��EpÝÔ_ø%t¡�C¶¿~íçöÿî¬ÏÝH¿‹N$ï`—Ç}t-pÓAúd7£¶»ë(ßÁî¤ útŸé�j¢Õì~�Í'û è>�€h»¼?`½ !ÿ瘎¡JbÿÞéï'ȃ›Îï<אָ4Óþ>pAì!í×®:€º™Î:€ª:Ø’Ìçûûý>â:@ûý€Üï—ý%¤[ýì¾�ãûÂ! í¯c;íÇ;ï¯G‚ŸóÐiÿßEGb?ÿýÄþ>ìIèpÓ·òý7?\ýÆý~DÿÄû˜z5ér>SX‘º~_€û%òû A ûíp Kݼ?ïrß@cúHWýqwïç§¥ËùÅû°Üg:ïÏïXuy_àJ{?†(Øã±ÿŸÞªëÉý~8ºëñ(ß¿Ûÿ/ÏyÓ^§ûxë«iÿ_ö‹:ÜWºèGùV=y?Àé>†(´?_æ¾ÿ﩯pÓŸ¸œëÉýÿ9î÷ ®tÕ¯%íÿÛêb¿„³~eR×÷÷wˆùåý�›ùÝûü,ßñû YhÞu}Ò&®gêŸCþ”ýØgúÓÎzTîç{ÝGð¥³ý}0D?Çû ný½uù}†,býTêrÿ¾Ïñ~A¨Ð]—÷ ìáïg¢«¦ûîý3õ—üjRÈo{2XÃ����IEND®B`‚IMAGE 6224 ./arch/ground/smooth/deep_swamp_S.112 ‰PNG  ��� IHDR������@���[a?���PLTEÿÿÿ"ŠÒº:&vf2¤¦bBŠ ¶^¦Ú‘SRš‚*ê&ÚFÂÂÂN"²þ¦Ž¼þâNFŠHÊÊþÜ„ƒ5§h¸ŸZÓ%’IâúÂv2˜^ô.‹V›Š‹14æ¤.†VM3"™?;w86c­j"mE#¡BÆÂ"}²››$˜që&#F0™z™l.¢V¾4#)‚Q’’’›-rnk‚bâ7–N#ª„â.;)JÊYU>6û$=&–NŸŸŸ‰‚’2D¸Õ(®% >dPZV6Ë6 ã~ 4"fBê"Á) 2±^¾¶:¸WÉ¢ pÊ&¬-‘6PN.Z¢"} }\;.Z.¦.T8fe&DÄ'9À4‰q&rFFF¶¯:¨oØD‹i¯Hvº2N––ˆ²lXÆB0dZrBB¦*f¾d”v•$‡c >6^^þT#±#z–. ’†:V,®‘‘#Žñ £¯* Ž­Bª:2šJ])%oW¶¶¶n nZ.v Õ >F*†^Ò6zK¢‚†2º&nªš*^o1"fnV¢¢&wJx6Ržjn.ª vkjžÚ*¦Šf.¢¢)¸ON²¢¾º>~~†Æ‚2Î5l*‚šŒ d®þ*Ê©£ : BP†.?±îêÚ. VdOª†/%¬Fz& Š‚B]0†Y &ÎÚ*ò+ š¶e b !Œš" RÃvÚ"ZŠª5���tRNS�@æØf��þIDATx^¼’c“,Ý„óW쪶¡mÚ¶mÛÆkÛ¶mûÚ¶­Uš.ή˜ˆ{òëÏ^™Õ ^¾¾uëè•Ý»Òqgï¤wä}¹ óõ°ÊJÆD¡’ é(Ã1&ŸÃ‡Ÿ¿_—{¿Á·ã—g?¢÷ýìíÎ¥ ÞÉñxUÕNùÛ¦Ï 6ä–TCw6´ÇÉÇE‡cL>‡ÿ>¿ .÷þ^½oÃ.Ï~„ÅÀƒß_]õH¡‚ÇïØyËDæÛó¥–½Øþ¯Lë¸è®L;ãq8Æäóøðïó÷›Àåßoƒ[‡·xÂÀÁK6ðÝš/¾øšÂã'·ÿâ·# jêŽM<¼ðž¯å&gª‹Ça›‡˜|˜Ã{ßw·ŸÃÿ÷¾_ îz¿¢H\µ§¹ÞcÓ&k¼#kó}¾}Q³¯ûÍø[ñ×ίè¼vmüŸ›Ï.oÎUò8,y +¼×þ-“Sxï»äîösø°îƒâ|ßä;ò^÷‹C¼^öm8tü•·/ô±M‹xü/þrÔÝý`‘y?^Îýñ•D‚Ç'°äÁ†ë qÇû*ç¼ÏåüýSÈo4áï7éOÀ>¦þÖûÆþCîß »¸Üžúñ~š>ŠÊ˜ÇxȼÿôúnöÖ¾ÈÎ0öÀ­l¶Þ¿—ø˜zfßÛ0 0�löýí‡RºûŸŒ.·*px_åºû²fæÜýŸ]’|g^_¦ý°ì‡Ûôšû[CÿÒ~i ßŸÞ (3éûA—ûÑ, ¬üé«R´�>â½Io¶£rþ{›6ƒ1ÿ\˾‚ ¿y^ã�ØN8å=(|ÜhŸâ(€|ÀØÎ‰°{ó*¼¯jÞý–»ÿ?ê~1ìÌûá>¦þ¯_môý©(´ÿ3º/Õ0ú ,´Üw·=Q!ÑôeË”FÀ9_•Àc+ÏçÃ,löûXGG=¦^$ Ü×ûOè:Ž©>@÷;:tõÃ}w,#J¯ù}º¯ñÁûªG*ÿk5q×ûÁ ÿû¹Ï6K‹0M׿ J¿Ô3…|PèþLCÜí‡'™N§¯ß›ÃP!^§‚d‡?óæK ¾çúí¹:¿ßs1Bf-=ûtøËßÿ�‰?îQ} þú‹Ð²tV÷‘‘~ãqâ˜ßãÆµûšH|# ß?-ûœ¤ŸösRçïÐõƒÍ~¸ÌÆî÷MýÓ°F×_þ}h?h¿JK~>¡~˜ân?òņ…ãÛþ9­Å×8û}×Mo]û×?Ôš)D7¼Š²«æÃ>añÜW÷È`$ ¿g|€ëï(?§ •]…³áÓWWŠd|nñùÿ» Þ‡–LAUæŸ%N’ä–öŸÀÐ9q õ«œ”)`ñ\»ýÄo„›†þÚ~±$8÷?W -šŸ,V(퇶îö#¸àÓ§¿ù£ó¯;`—þ¶m~qæáq¦²Ì¹Èâ @ãNÂ9�5"ðïܼí;ßõ‘ÿòM÷ÅF 5eï’w}Š´mtï?S#6~pEjÞvâê}hÉh¢+róî'î¦ÿïi¿_,‚—qSY¹|ßf?f®×Nâäúkûá7üþ:ß�¤~Šàn?vµÜõÒŠM娥©üÌ™bd|!-v˽À¡œ18u�]ý“"-7íjÙõRù~'qÄZ-KVéý1Wž:ðr4Ö*ùæþݪðrqò¹ýWî“ü̈3Eî²|ŒuF&…{D¾nè¯íÏœŒ÷9ýU"Ý7�ùûtžàn??ÏNŽ =Çðý5c›Ù½ô™H.v,>:¸›çLkxhºP}Ë¡Jùþò&ãý¸4`zDâ%«ôþäø)½O÷1èVâ%Ÿ»lÓ¤ÝÝÜE¾oØ?²i’ʨOg¦þ)iÿ$ú~Æû¼þŠß ß׃T�“ã ¸ÛæÈÞ¹Q!’…cøþj!‘ U‹BsW"Rí©ç:µÀŽ{& + á€ìÛÞW¸NSßO ëXˆü~ͧþȆŒî¨Üö> î+ý…“Ò}ê?6Ò —¡û0õçÇSoèO÷Õï·XåŠàÜ_ÏEÕ׃z¡V÷>xéé nb/†™Ÿâdz¬<Y~’ Ÿ62ܼ*®Uî'lî+\§)ïŠy’(ù“nöWîÃ7ýÅ4Kbé$#ßÐ?¡ö‡ËD-ûò‡R²€ÌSæþÚ÷S–RÇþ%¾*œeä·Þ»¨>/ÁöظyýŒ¡Náû1Ƙ¯ktpÁ†  œë$½q©³gGžù4ß*O2ŸN£÷Q11S.äÉ÷f—¥K>Àôý;ãû;‰ë|6È3î—úÇÔþ Qê¿ò ¸ õ7|?Õ‡sè¾Ì-ýéþ!ù>�™«‚Öß!ÄKßv™¦ø¼TÉ\0„�†•*É2 ±ÚªÀ]Ý)_ß¹Ùj�·•ïi Þ7Eã:Þ|eû=7¬ÊVϵú¶)Ä•û�µÐ’\•]6#E|Ч~Ú¾²KéV™ú÷ö僫TÏ0ùz˜´ ¡zSöýKýÊö§e_ëoÚ'û¸—¾_VêCŸ— D®ô?ù,š`¾Ÿ¸Ò_õl¦©Ièy**F+Üší³6lXÀŸî[C¼‚Y´ŠÔm÷åÚÜ=Jç›Äû®Yâf_èQ|Çþ#ªÝ÷ïVÖ?£ûðV¡Šö5 Þ·ö(÷AáK�âŽû×/iÕö‘/ò¥ï]¦Ið–Ã#~%>¼g�Y 'Ù-‡Êþ·š'u¼9ÒåVÜ‚ÚnÿvTóLþj«‚¦*ÂÏÛnŸoóÜ„âÔ;ÅÊàÌ“ä?¥ø0¦@âÿ4õsè?Fë¿•ú§&LÖ~ ¤&ÀÚwZ{ßÒ„òýdøÁP‘8@ܼ_ö×…Š (û$_Fr¨¹S”…{é}ðÂ’õeuÞkÅÜ9¶œï•|róœµÎ…§¹õzŽ þüªeš`­Ö è•‘xµÕ<˜¯ñŽíêYóBXTý^X"sͧ~yê§¢dÑ;²«Ç¦ÿœT8’÷$s$¨ýæU÷Ái_é}Cíû'7Ë‚Â;¥~‹ôýe8'§øEPŽ,Ò¾Ÿ2J·|Y“8xI®þÓ^æ½îQ¿vïç6ŽeQ×ÚqÅmÏ<äÑ|`ãØ€F=�8¼0y·Ö´Ìò4®7‘Òü-ï‡A\õ‰S?mßnÙ·ë¨]'ÞÕ"qXB>õj?(ëÄ}°‰ù}­Rí¯q@âÓ¦¤‰ºþÒˆ*>(aú~ ‰“_ £ï5S d!½^òçg<w<kÃð’$üñQ±¶ßÅf¯véüV³‹i«ŒÃøëü˜›Ý”sÎÖ´ÐbE·®ilÓµŽvŒ%v‰nA:ÚE¨:’º›­›«$lLdK[XDn˜_á\Ä%¨XY昗$]!Æd›lK3$FßÏžÓÃ{<‡%¾áî—ßó<ÿnHh/©<ÑÀR0m”Q?ô(O$�ˆ*<;;°76ÈÑ'ÿ"–]‚ûñ¾ŠrMÅ €ü$õûÐ>‚ÉO&ÛÕû|}èv}"á.îƒåsz!çÝ}t?@>%•E"þ>,?=­ìOâûߊCŸñ`zú¾?ØþX¼õ³}�4ÅÐ÷A~~ÿ+�à~ún±ûF/ãwGž 5<²à>^ óãYÓÎÉ’dr €xiKk7ÏúC ãÈL¦2bqžŸ†<HyÀö«_2 Ó<?�ÿÐgûC½°?®õ3nþýÌnìSKš|ÉWöçÏk9ù>d?ñQŽfß0ó1o�q }˜ÿøÚ£ ‘¦²Ž0E8Üœß ýFÓΩoS�ì íƒ8õ[áë‹‘Ià"Bê³±›]CÎõU|k)óU(@NóP8ô÷@¾£7ªÜÿdèà¤ß岈U§oëåû?®ø×C‘I?„ÐW zù7‘O÷¯/âÌÙý¬_å÷+~´åùB>éSöã|`ô*2mùÌåü.ɺ¯p¸ <ùóº]’yýÿÁqÖmØ( Èù®¡œº¿â¯{˜óº8N¸ú ijîíÀùÃè>œß]@°ù?bŸÝÿaîÊ—;7UÊv¼qóþ×+}(Ô ·c.­ädßø‘1ÄqÿL¥ì¤œîÏÊ:—â+ÜŽýÑËÄßð�㊌ތ,½y ×õÞïÍOó°9ÿUè›WÖvƒ«1)ôC4½Ñù,õZÑßA¸Î/@ó7•J¿ÝÍñj(§û`¾˜Cà`ùÚîï?¶I‹´¿ÝOyß¹êâo\Å\ß'œí×ú9ÄCÜ|w„õ³ýjÿä;*Ë ¿Ïâ*ŸqÅ·ï'=ÿSÒ…Žgïò‡MúöÝ˫ӹkŠ×¤K´÷ò­ð.æ<ù4¤÷Þ3']X\à4Ä0ôò…c¡ÛÃîmåÿzúØzÔ߀¸NÍG}jnì³ýö^•ÿGŸ£ß7_ä¿ Î_,øÃŠOïóc®ô#N|Ê©¯ÝÏ|`ôdÙ:rxê£ök‚¥“ƒÍû«ôR`!p(¸%&»¬çR¸_#nÓó·7S_–ªSSœÂm²ÌòÞØK×üµþÌsKCÓ{Sc…þ‘Ô%È­–NÈ{ÎB>‹¸‘ßÜåL ŸÝo S¿†ú]4Ÿr–_ÜoÓòZè#¾su¾ÅC󙯛?«ø6`ôê½ÖóÑÎñÑ–¯@œƒÍø#QôWm&¢´/Uï•h?Ÿëêý„ãýº<˜ªw°|_ÜsFø’¶þ3øàƺ¿ÃòºçŒ7ð âG çûŒ³~æ»ãØ×r|ßl‡rÖoAù„{ŽòSGƒß¬é÷±ïC} âN¶_áÄoaù=Ï‹ó¢ÃñöãŸòñÿè[§xÙS©çO`®«×÷óx#ävUþ„Xf‡ >q×'–Uu!N|/áäaʵ.}Ÿq;õßb§¾¨â‡ Ï¸XàõÓü>Ì'8ý^š¹ ¹ÈéÇ>æx0zî–êÏåêªÁ>6é—݇o="‹ó’âóùø7ß ÝW¶yÐY°ožªwÊ=îd¼U߯€\¸áRöûVäÓ}ŒK Ǿ–kûÃB«.·"Ÿq¾ÏöýÛÎyÆÆQ„aø… D5Mœï(ö¹°ÁØÆ ½œÁ4CL(1I¨! M€1Qp¨Á¦˜b„"!ƒ¨µH„„ˆŠ ‚„„"¾™›õîžgfgwìÓ^äçï«o¿™¹Ÿ§ç5íHUBÞïÏùý°¿ƒÍ—FÚ?9hÆ¢ŸÁd¹íýÑB~ù ùåP¡÷ûÓ4¿†üô>Ež4ê'ˆ¼¿/Mókäó³Y¸Ÿßúþ4¯:_à~«û¯Hì7íX9 z¿½"¡œ~z~ö7IæÃìoж¿!hÅ8ï?Ìöþ®ÿŽðpÿ<­š7öó…ÿm¹æü¡öÃ÷~Ôdò¾ßE»à3÷ðÿ£ÀüóæÎ ÙÿÛ…¹ŸÏ機Àf¿üü&û›ùþð÷'ÿÞ»¿’ó›ßÿ¸÷ïÒÞßé_€‘¿f�Q˜FþùÐ¥§v“ †~þ 4o»_áòìжÿbæß{îßÌÒî×ߢÁg¿x¿6Yÿ�ßoæÇ£QÈúél^Š‘ŸÏçkíöCù~„ƒùù ÿÞÙOÿßÛíï~¿1¼Ÿ€÷ H÷óþ�–ÃÄ@~}VeývÈYF¹Y?""üxã´ÿª÷еX¸ÌÝ¿¶ÛjÿËkÁû>†)KÙ÷å¿_îù©¿ L?�„ß…fî·CIŸÑ~D†ûñ û ê7H'€us­÷»ïß’¹ìý[Š«sþùWVôµ�ú™ÚP¬™§XO V¤R–Ÿçï7˜×ÿÁ˜ìý Mÿ4^ ð~78œú0§Ý´Àáï£`¡~„âÌ• nO{ï;X?AhúEÐѶ¡ÄÛ¿�€õ+$±ù‚üxîÏW¢ùò{„á¼…ï}�ØÁû "ãéwh¸£ÊéÀ‚…ÈÌoGGýd"ó.‡9äßK{´,¹{#:Ç4Ü6ÒàeÈ'÷�`þ>6rÚK%ÊaXBýe x¿BhJ‡{@ðyä8~|eÍØ¸‘Þú `Íúâƒ�P¿B"Pêž/ïLàþ=ìÈö#£¥†÷ NLõûÛa õ*¡ru§Š~ƒxñ ™*ØC~ ¬juëDއ”ýE¿A¼ ¿…KÙ l!¿cÉl rŒû ò ùï…Kï ˆÉF\+J¦Ã öA ¨ëõ�'f iÚ]ÿD!ú ™àêYŽñe¹{†žù3€‹ÈÿGÔ¿p dÈΟ¤ù8Ó {þ†ŽN˜rºB[qÅíg8¤›õ#¤zÉÿ‡ê_h‘íðÞ”_Ì x¿â ù÷0R„ÿò€y¡…üzq(‚0êG ¿R<ý¼`ëG€«\ @ôøÏÏç}œËæã ó×§1¿ ˜ÿ®Î™ÿMNüâøûø5 ß�S6èrPÞ§Ë9å}N~ÿºÖ×àCœ ¿Ÿå�|ý�"l÷È�Õ¬�Yœ~‚)¼ŸaÔû±qÅñë!…üvòûÕ9nÔÌ <~?ЖÔ÷¨ÏÉüþ·Ô=¬Î$ë Ë³þÿ&ÒóÑ÷YNß'¿à~ÿ,ºŸ›ÃK™þÊ~ï÷Å<b ùíäÿwhüõ’dQ“>þ?$çøù“*ÍúÿPàñ÷u9Täøÿ­’þ‚?(óÿ—Âa¤?Aý}ÏýNr¾—¢lŽXÂýõéZ=0'¿^“Ó÷}~>T ˆ~�e¾½YþO¨Üß?@þ?Fõ3øû Àý.î§èw÷GL™Jþ~ÕÌú†N¥ÿ¿ZŸ“¯ËÉ÷ùóP!ú ‚ú°:Áý{U~Á¹è`ç«çý{Í—õ+¸¹8?퇇œþäâ¼OL™è¯æ3uù¤×sü|(àþ}³.'ÿ_ôÈs÷û&ù;›¥™ß¿b¤? \±_äb^—?ý,¯ï[êfrÿ=z¾«6Ìõó!‡ù÷-ºÜõûõ9`”3¿ q>å~ùùÍójñ~±EøíùÏÚ\øýAýc“ï~^ôXäüþÊýâýþ—ü0ï)T{����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.001 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�ŒÿN��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.010 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿ��â 7��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.011 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿ�î^PÆH��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.100 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿ�:M‘��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.101 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEöÿ�…ÏÊ��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.110 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�ÿÜ»;^W��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 84 ./arch/ground/smooth/default_smoothed.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿ¥�Ê’A›��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 248 ./arch/weapon/artifact/defender.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE÷µÖ�1��RJ�{s�ŒŒ�µµc1{{{½½½ÞÞÞ���Žþ*���tRNS�@æØf���…IDATxÚ½Ðá €0à6·\¾ÿwË@¨¼A9â;E\ÞV¹Këx5s°¡º×mX«Ô&PWLàÞE˜—Þ¤²þŸÝì[G€;ÄcéG!Qò~Ï$S”8«©GÀÉ5Äm–ÿ=û±©/j‡ÇE®N‹Üæk¸=.84 ¹! ìú_ ºãÆö0����IEND®B`‚IMAGE 287 ./arch/monster/undead/demilich.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEç½÷111”””ÆÆÆÎÎÎ���ŒŒŒ!!!œœœ¥¥¥­­­µµµ999ZZZÖÖÖÞÞÞ{{{JJJ)))„„„RRRccckkk‰ê¨����tRNS�@æØf���‚IDATx^åÍ71DQ“w»‹»ÿIQB‘Ðð'|]’û×Ϋwn“ùJ7ì-e‘t28¸é]óŽ_í}h34 ,c ðÐØ'‰x°ížæ¤àP¼iáš (_½4[ç7«úºz°öEdË .ž÷¯°;ä@€ƒ>»}í?èyÊ)¶Š"r����IEND®B`‚IMAGE 323 ./arch/monster/undead/demilich.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEç½÷!B9sµœ���B{cRœ„kµœ„½­”ƵœÆµ­ÖƽÞÎÎçÞ)RB)!1)!91{½¥1cRŒ½­½Þ֌ƭJŒs�¥Î½Z¥ŒµÖÎ))9kZÆÞÖ)JBÖççB„kí.'ø���tRNS�@æØf���ˆIDATx^å·A D×öæpùÈùÿ?7G…é((˜)ßÓX²ú× }?Ô8Ä]·—¹v>Æí…DáN9oB'/Äkæj’ð¼pO£x£Ñh]t²0µŒ³’‚S:`ñïˆ ccà "W-j*EäÜÛ©Š¡€˜‹oXºÖXH•¿²Úøúšÿ ONË¿°ù5Ã����IEND®B`‚IMAGE 326 ./arch/monster/undead/demilich.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEç½÷RÎ¥���R9)Œk1½ŒcÖ­„Þ½œçÎ¥çέçÖµïÖ½ïÞÆïÞZB1)kÖ­sÞµ{ÞµB1sR1!�cJ9)!{ZŒÞÆ��)œs)¥{J19Æ”JΜÎïçJ9j]`6���tRNS�@æØf���ˆIDATxÚåŽ7B1 -9çÉ™ûßž–Æ%«N3OZñ¯Ùc~qÖD—ë s5:ï§CáìBÎÉ-øBH%—¤ r¥<¢…?E÷Ñ[,¬ I­åðõü{­ñH»™g!í†Üô„\ìIq­mœz£ÈÍE-$7Œ6ýæCQ0ï70ïoÙŸ‡ sÊjä¡����IEND®B`‚IMAGE 232 ./arch/flesh/demon/demon_head.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEµÞ÷µ!!���ÿ��ÿÿ�ÿÿÿþ÷±¥���tRNS�@æØf���„IDATx^µÏÑ Ã0 EQã ô¼@Þu3@Ô :Bö¦…R9ô?÷Gpµ›ã}ûŽ,€Ì‚6“ˆÐ¦=â  ?Ÿ´L1 @DPÐiÍöœ&³€¡ÓÚ)°Í®7ö± cÉ¢UÀ#õZÐM’\@œp¶úö‚úÚ5\ßÖÊÖîê [m¡á¿ó����IEND®B`‚IMAGE 5445 ./arch/monster/demon/Demon_Lord/demon_lord.x11 ‰PNG  ��� IHDR���€������L'Ž•���cPLTE������ÿ��)��B��{��œ��½����ç��Œ��J��„��k����c��1��”��9��¥��µ����Þ��!��R��Ö��s��­��Æ��Î��÷��Z��ï��Åmäj���tRNS�@æØf��IDATx^´—×nä¼U£rNýþOy°„ì™×»?Ö”Ô*u7I)ûK�Ìï‚ÙÏ®ïæ/£wÿY¨¤Š/Ë® ?ûþ’ê¯&°?øü“¤ ²Ègš,c¾(ü\ 8I2ÚþTœ\UWî}tÑ\t™ã Ðϧ<K»”+O2VÉñ3+Vr�¥ŒÛÙy=€Urü °7ÝNWܰnj¦§Ñ@sý©ÐK}7º/(¼v×ÛOeàM 0Uv·.˜à>†Jº9~®À?êþ:æó$ûfì›n!ÔíÞö¡¼<2®C¿MS.Uý C.©Åc+êÑéºêfóôÇ õA|Ì{t?@)ÉÁöOë¾¾óü |šÿ<böß På¯Ñ–tù[I2¸:»W`ª±e”ÿîýë7©Š `õz«Ài,|67)·�_»öüVÚ™G€ó´BüØÁ]�ìM ‘±ÚùGÔ’Z£ç àsNO½p¬âØ·òê„•}˜ª2eV«‰ƒMED¸6eàÛoÈï±µ¯{ 45�÷¢r+Ð¥…“ÝÊÚÝq¿rqÈÌU]§ÿR•N[0ÙÊS�üÅ�äÚ‰3¨ït'6TR Ä_ñç”Iš¿ÒÚÎGÓ‹3* ‰ÝCž®K™V²¤ë—ž™”úH%,�pT9)À¼\¯'~›)˜cÖçò°BÙtÓÍF ö×çg¡ ¶«Ærºkð¨YÑÛ,·$ÌÙI7—λs;ïý�÷qt+«Ç �;ÖÌOÛ¸Á˜£ñR®œ¬ëÞh¦ÉT7é×¢\ÒéDø[¾w<ÿX»é¬¥] ~¡ï‡ì{Žš5ná‘T×TãÔÉfPÉ×äY«_XL‹ücýø“È`³ÕM–~!+›Ðºs '¥¶é4 ã6Onï©nRQJætoC,vú<LÍ7‰à\Zxèo0ŠŽA8ÁÐ×69–Îgo�¶ùN¥9pšz׳–Qm]Õ­Ô1D£ÎɹE‡í÷{¿¥7¥X˜ý¸°Uü?$•ç@}»¼�8ßRöŽël¨¯æ$YØdŒ7Mr|ß–,‹Å±Ïû4âìGo³xøüu¤Ôð«Ql:ZŽs·³|S‚‹±á“@îÁŸ#:'ë¼ D—7ÀØ$0—×iY 3Ês}’:l(,í$UëoT)e`8¿ÎYmÊÂ9Ë‹�ÑùÑ{oxd Ë¬]¤>WK–¡'ÞúU[ÖÉ/ ¿èýÌR¤ °÷Ø`;udÔ»ôfyVšñ–ïØø.0dä:‡¡|Sí²ò<ÎÔZØQ™•Šõï²Tówc2~g’džò?Ƈ@Šç®‘Z“¥ýÄïÆ}'Ðç/ë}±‘aÑÉîåøˆÄ ½I6îiH͘§3q<7oª Ñ…èþF xÍÀÐÕ0ŒÎ÷Ug YÆuì¢âîÚbÅÕõ©•Z “!Ëè´Þ•¹ZÔý½�ýaÍÌ:] õ¸“e¥z –îóÚ4ÝÐ4ëj®!Vê!Ë"kfÍR–o*°2ö<ŸþÿJL‹œìã¿Àê¸çÿ¢;KêóàO20æ\u‚bGn–qÊÓ^0g™ÛÖŒz)×ó”*æJ‰°–/kÂùÃÀÞÞž^¢ëô½@¶ö®½É9å”ãèæ¦ò·cÔ×ìÅGŒ›‰®rÎõÔw8…-Åà=›o\«‡ÀZÉQè­¤¥€ÓšÆÃºnË¥†H³W39ˆ@,—"k^À!ðZÆÕíıÿFÀ ©V%Oë½Oðt?÷<ó9ö*ð=d¿‡&Bp>ÅÛ!�½B ¤ ´Å-ÌOï_)”×–Ä:j‰Ç†¶´³º>'Ÿ°½–žìbÛ°¶�š Ô!�~œjÃÅ3çšÜDW8i£½¾ÇƒƒßYT¸h¼÷¤¥øVÀjã®þHe®* 4C•¯$hÂÄ å¶³Ö®gé6�õb#)tÅB%¬û œ[þD`P‰•Ü!à9ö�¯õ'è}ípRãò¯¾¿&‚Í[¬&HÇð mÙq€&ñÃàÍ’Øtç`ÝÊI9¸�ØÝ2„T¿„SjÙnp:š³V¤{Ï»%ÁêÖ÷ǺPWÇý»Zç‹"~©€•ú4ÿ!>­*Ûñ 4JœøŒ±�¶‰M¤› §€U®+_#9>ã$)|®§;ŸñùÑÇñq‚ÂÕŧþ‘�€JÚâ)eÉUawI.¦bê6mlR×icÝ›" ¯ óÿmÀù¢Æô0É5¬nMlî¬ ¸Ê=S¹{_s‘d�©òÓ0§OD_\¶“7I qêlã=^$š« Ùgè5’¸J«ŠpóæópR0@µ,û­œó|Yö%ß§uTÞ¥Îß®a§3�£Šì3G^k‡}ßë?ãþÇ»¹67ªÃ`øH¾`c'!&æVBøÿ¿òLq‰ÁU›dWß:ôO%¡W—$Ä•²l•3ésœ¼;<¸v.(€{ðÜCÂYßLj·�ê0–cÛ¶ƒ„ËéØ ¶›|sÃû -3@G�èñÞã0ïÏIx‚Ö]¤”—ls”G—ÉY¨4žàðÍè —¨œ¤2,Ù̘c`™9ÂÖãí¾†ÅJ—e©âþ'™@äo�hò!̘¤&Ðèu¢‹ÍË�AKüµ‚+hm¨(€~Ìïµ±›F¾3ÁÞ�èÜ´ÇDšç¨p—•òGÖúsƒ—Í;�QBy~F½ á㶬-Lèýw…s™{ Ä,äRƒu·ÐqÔ_.¢›w�XŽu@±å añõ‰eùuSÀ°–8yÒÛíø,@{ùO=¸rû�úJHö�€}�­ä­û �f'@ìý? ð®¨Ï�”mÔIæ@'ê_� ö >€bÖöSÙ�¡†_wí¯–Ú-?Ð`„‘T?@Îÿú]�2* cx#þëêƒ�ÍS�Bq×ù§�˜¸§sN�´WÅ$]|•ùúêI€b†dÅN�€¢�þJ�\Â-0R“=>‘Ro»…Ëo€/¬€ël ´zæÏthÒš¿ôQ>æK5\Œ(~¼ª€Ôß×h¹Žï‘œÝ®cž°Û¼Yü‘qÕ4+è�` -玨L\Zþö@]™õã ŸµˆÆÔKxÞ°°]YÕ1‹\mõ1¦äÏtm鞀ӳc˜3h€£­&-(e½ð]¶Êój‘ÊÃÑw´-�xÅ¥ geÊ¢y�yˆðïÒë°&K9[)Iyâ™´ˆò´÷ŠÇ�Çò EA•^Žœu0<i”ù~ °=€‘І'9 eðnO õ~�]8ʇ×Ô˜O€=ô@®¤§2œ·/¤ùu†°µv€¨f´ÐFKyPÚ:°7´Ü@CÑ�9@vÞ À¢�×5¨Ý�U� {B)Ý^�µ�˜,‰ptÍz CÔ·!`._õ ƒfæ–$<f�t?° CDžüŒ‚ˆõ6@4umÁ·�|6í‰{Æ=D+LЂ¥uêÀ¶p q#ê7»ï¯¹”’ÑZ ½ø3€|àW0¦�Ê.µ t?DÖ«ý¯!}; %7¡~gW¸áÊ¨Üøì’ rõ"�R�VeH0”ÕÀ/óŒ‡Êí$OÄ¥…a$O>Ãi;åð–Jê‹Z�I�FßlæÀ I^Ò^‹ÇŸ/uÁŒç~ Àhãëôhè)vÅÑZËÐy€Cn@ÎMÑ”˜z?7ÔÑþêSí)™ ‚ ´5Å£Ë)0ýM¾o2Œ±wQÛU-Ѻb4ᦲT/a§+šcÏn—‚¸ÿHý@ˆÏ'ïɱ¦tϾC€y P,î†3D]PܸŸg†ÌpÓEì˜ìð àÿ÷„ Â\¬˜§ S²ü©ñ™ÏÌŸ3 v 8UœÅÓ¶¨Ï˘9xÃØbëM©mȧo1 Š÷u€Þ9¦ë: ¬ßÚÞf_ÃN<QHÝ}€ô�p.ý€6u™ç¶G¬Â-qu ÁÔÒ÷J „ÿ»;×^Gq ÷uB.¤P(´¥ÿÿW®tvOo¡$ ´4ó­åUð±Ûq#¬¡ZmàÖ >-îѦj"§vqpÜI B÷©]<('x4WܘI[(O€zÌ2°J;È«p»ø §Y;/®À,!Ü ¸ñ.àǦ&‘_‰°û„ß• ½(€à"}¦çŒ¨„–­vI |÷½¿/@’|p¿¥(@ÒB­®À±Á‹îðÃþ& ÔÇÛYðøÚË‚ ØŒînÅ'Cz£€œ¸úõég… i:ï¯` ûΣ&÷û—A6ß5âÏïÕñ }dün#Ûo À­ÿGý×=iñJÇÕ½÷€{Å©d€¬»g­I;°Ùcø"¡vúÙÝrÂ4"Àð>§rë ðۻ÷ ЇŸïÛ±Áæ›¶r,‘Ì™°Õ%Ê3’)¤™7=_hlÃÛ"@Ô ÛP<Y@"ŽÍØT\Є/(àæßÿ’G¾@-ÓÀåÙ4`;ƒ) €öŠ©ÆfîwÒ}@:éû £ï èO>}>®Äñ5x›}æ*@ïa,¾ƒ‚£ »xú[>ï[2ŸPè$•þ ¤£¸œãðb"ºÌø&—&^�Žt ³žðM®uŒ�¿§è¯øHj,¾ŒmÛ€¯ÇøË y¼€kÍñ]T ,ÿùãx€’ò¯ ÈÀkü úH?Dþ�ýëü2"'�¶¥éo®�ÊZŽø#˜(†8° ŸcMÜà:aB§£Œ€Ãªˆ{ O”!»Q <J@ŽìDg‹'Ö±¥Šz;ò _W’dÏïT^½Ïg&ÞGíãôBö%€ÑGÚNôLŽLTzVôÑgû±x ‹Š…CX@Ü‘lö«iù !hBlŠþã÷‰�ñ©Û6IÀiï¢lL@¶nLp›Q¶ÆÈ»˜íÈarýËç †9†m ɯßçWlßá´GÊ‚{K§C³ (†(YçI‡�«±µ@P@×!L·×Ì×+'¬1• ß9 ø">Û‡Dk—B;úýQ»VãÆ-î/9ö$T ˆÙ¯Ø€$,ª¯_Ðq|ÇX™e³©~�Ý L·œóR]ÛvE¡ÁµE±—_ݳÀ¾0°�\ñ~Ø]e5‰€ ž 7Åu@o²TT™ !*kßW:Åiƒ ¸©„$¬Ã²÷py¹ÁÆ£E1÷V<éy]=‚u¢mg<´$·Ù�•Áj(_+t¶Po+©LËiÆ:íXŸ,5–i¯èlpà€¸® h(g§,àÂÓsá/oGñ * ¾Ù(S_¦4èE 7ÀÄ© 6DBÇ"‚¦KÀœ¶Á黀ž”±ðéEíçBQó$"žR3ÀH’á=‚š˜DÔùÊ’ª&ȈÌJN@LQ•'ŽœÊ¢É>¯_È­¡v1(w!¢ÏtFÎ*ªg >zÔýÚaPÑá0a‘ùı‹ŒMÓK¯±5]xñÐ æç»]4 LŠvÀ3&XBê}g<¼1J! º#¡ó„Ï›~rþñï€G¹bäWæå¢[+vôö]!Cï`Æþ5žw¢iD݇8•y6�GUðl˜ô£rÇGM3Ð ÈÎûà–,|6”$ýSutÝ!EÀ‹éº²J?°sá{Ó€ ˜Ì\ C‚€¾ÎêvÄ36¤±•EãŸéyÂìIc8‡«&þŒÂÄÞ[„¿Ë€‘dEcA}B;¿æ­Y­€Õe´êpT·ç±5b_0’vy (¯fè%OÎ…k=j2ê[ê#*Í?¨`”P ΣO³ÑATxf`ö½�¹Ø=Uµ}•$àxml|~éa&±Oôâ³yµé+àƒ±XX@8½2“éST$³á“³C3Â#y\'‰&£â»ê¾Ýìõ$†ÎLÛâ¼¼I”›î%®Têý’½©ÿÎdvIÀ‘?‰¥ªVòCƒÅ•ìSïGì_pr,~/°½==׸õÞQ²@N °+ª^/á¬íbmU/æw‰XV¿Ì2  kúò F' è�Öáé€U&)¹ˆ-ñßåˆL¸> G°§ønÖhš'?ÿgÎuËŸï!®»Î§1Õ×dr:ê[KLN” 5Ã47ô;ïÜû-´5vxú]‚óheߥ=$"WÓñ<(Iž‹’ˆj ”iêñÖ\t–&@Ÿ3j‡Rе"?Í fßd@è§\©á¼w­úBÚ$GÁ䥲«ÖäОˌ*8ªõ Òþû/óçÌÇãÏ®@FĽ™åÞh+I$�ItOp>Z€qüPÐQ׎w�'Ú÷ï-à2gtɲ+Q ¥‰ÚY$ P]FÙƒ Z!9�8º [ÖœõÐì¯5câ*OƒÑe•ðü—T­zøƒ4åïó¿Cœc_;Dvy ÌÜSÛ£oê`ÖïG‡¥Ày¦CfñL=�h¨pŸ ø™N3b‰â”±%ÍüH-|0±Om€dµ?,œ´•9,žÉïÝõî)ï9":`N.Á2cáîcHFÒpÃÛØu5+M pÀæ·|1or¥8{_ô.—fŒ(3w¬M=ôÌâµ¢÷MÏøöß°î£s =�I@~úï}qÝÞŸˆã¨J`È�>å}®øˆ„SI:è™BÏ:À2‹¾C¿ûŸóBôø¼·����IEND®B`‚IMAGE 5472 ./arch/monster/demon/Demon_Lord/demon_lord.x12 ‰PNG  ��� IHDR���€������L'Ž•���cPLTE������ÿ��9��B��J��{��œ��ç��)����!��½��c��s��R��„��Œ��”��1��¥��µ��Z��Ö������k��Æ��Þ��÷��ï��Î��­��þa,p���tRNS�@æØf��«IDATx^͇–âÀ®E9ªœ³‰ÿÿ•ïb ÕŒ 6núÝ»×bA“|F¥’Jr™Ù} �¼{ »¿Åʼh_ ¨ËÝŸ @A”¾¶ÀNí pàDýkq¸?<þ`�ìL‹)Ý­':±¿S�v$ ì€Bõ©Œ³X¦{e°Cç‰ì¯‘¡!?ßåDš¨!Ò{Êv°ž¨ûðäqEKCF6hžî5€ñ=ü/˜ÖS�N Yu•d {ºÚ€"ßš?qANT ¾ÈW\jÀTDÜý•èÄï—¼áÒOî÷1ø‰‚þÀˆ8ÄtüÇ{N|àÛ°AÁÙçbŸGM”W TÃß{‘ûóp|¶ûøihÉ¡`*y§2Pà{ºÚ|÷W˜ažïÜgƒ7þîýÀU€·0™ Æy>¢Ãü1à9× �“8\(ÅWU¦ª®¤tK ðÓ¬«â‹éÑ&·GD23�øE^8�“I¢è&$± +‰Îì{c‚¾¸ÂŽƒ·N;`ðÍ#ÃÑüH×HÉŸHö=4(çûÈ� ¯» kP‘Ùh\±Oðæœèºáºnx6=ÿÓ%%%v‹Ë³Löqm‘ËœàY„®’}Ô¢lx>Z3Z9EY^ooô QŠ Þ!j"�ȉ:ÀÈQ`xÝÅ}ÕAñùñÕmü¨ÇÓ˜6 €$ê¤Ôío-;"‰Ûß®1sàî7F>çu¦£AÒfœlt¢ÐYØ8Ñ‰Æ Ú¤ŽZy­n l1>µPÞ‡•ÊÀü´KjpE–e 0¥ê²”¸bÒᨠ¿⛂â.�}–ŸZ‚{n(×-+ŠwG@ÔÇމ˜H'¼I¯ #“jìvÁ§^ÃÇù|Ÿó’nsþ^|(¼FÝÆ=Q'oþ±cl´�#ŸzI+ÎÕ‘Y2Üs ¦“9ùv@%�X Ä9òx<SÞ¼9uhãªÎsìxA½çW×ì‰(~/€óѾ¿É� I ™&%ñQ@’¥ªJ�ÀITª �$•JÓ~x[’HéÀ ’ଠNÅuüòStJß @C{BDé @F'žèuÕÝC$M1�ÔTˆ¥(¨Æ`*ý0/+4GáY €ùœØàÂ'sXp¸çx¥æ»~Ìkd7‰p? ³`Þ{ý Æ{Æv€\òÎ<QÆ‘7ÈK‹˜ˆ+ÕVTºñUÇ®¸a¹îôš[Ü8 ì(¶�)ˆ}èô&@åFßZ 3¤´ÊÇ ’Èr(‹ŠÔž¨d£F’²Te™�?-�ôq>ä:Ψ  8•ïF¶C¬4D¢J£FTTѹ¢ ;{à @õQ…» °»)]Úa6 S-£€CîëÝ{Fb¬*ªn1?³AÀ-„{Œ¯÷D c¿ƒ ß5¾ó†ï *R¦‰a‰ö! Jâép? &ŠÒÊ\(Z©ÛT8nŠÝÜ *RI– tpÍG�NÑYÈH&Hd$Å™” cìlNL)Uv5~+‡ fà é!X@€3U&«°ÛÙaXÛó‘[0M¹5®3ÜtÎØœ4p8³¢Ê�üÐ]3£ERCì „ñÌï°þóôÿ¨ vÃx‡ïx²À²�'ÉÛ4h*^õcNÐjÙfÄ�NéÊQ¸Ã€Ó±“·³¬Þíj ®’”ÈäZ9*ÐzŠZâK=�ƒóSÕ{ˆ:rݘ'Í^µ°²â@Ì:—Ræ5Àc€]_kÕ¾-=ç. ¥TÇèUTE©Ä{ t>†#'u°ÀÃl ݾ,pñ.dÄñ‘ó—áAUæ* J€®…Ó ßyä„…úw¾ÿÃÆºP+ÜPOL^†ó¾¦ϫŵ!âöQ¶ ÙR‘Ÿ°O‡©ã HK‹‹ŠôI N:R Xy nÇ H¨�PJ�¶Ú»pÈ ©¼­ó¬ÉIGQU*‹+Ví úQ•ý‰ÌþñzYE°àƒ€½¨`j€‰PÆ�â @×hV:Æ +µ»EBŠçÜ �¸‡…kÁÁHÀxR·ái5­ðŒÖrÿŒ¿¤€üÇÀïù�zàÉ/ú€€¥@|R€7QÆ„ •(n¤t'ÅP¯ZÁåq@ÕxÓ@å[¼QЂe¹ê‰€3I  U +fÝõù©éŠ–÷ã$ÌK¤µÃsãÍ`ðeñòøœHk°=G¯€¶»åü¢�ЉöñÝ?†agðV0è‚;XÓ5t~%�œH†5”¾ßÂs `\+<Ãé ŸýL5¯À2¢lüpÑWÀE#¦Pž�ÀxJ¸Íí¶$¢ p F?qô¦Döaƒ®b`MR5ó~€ôîË ñ¢’×¾_P—Q}$•«ÿPň«\Q…û*WÅQ*ŸÈ9ŠãØGJâÛÍœ©F¡ i6ÀžÏ¸Á|F<)QF¸Íˆž¨çFÝòSÓ4 €äD'ftÔšgœ{ŠqÒ-àévSä �ˆ#±¨ÂšŽùè#“÷yšÂï}ÃàKá3söA�Ê ¯p–U¨¢Vë¦inU±å@‘ˆH„Åý L”„Ôwe9 p‡JD€ž·Šnp¯Ú$Eš´ª¼ºB‚eÌíMvì' ðLR>#à§—kY€å”[}Úâ_,±…èÆ! cZ7ã}Ð÷Þ¿ ñ}ògÿp ô‘&r<ª¢¢ ÔTa; À³H¯·@'IBRnˆèl'‰ £¡ˆ”ËÉ·¥…Šœg°°ØŠpΆûG'Y‰s¾ ÀÈŸsöûèlA@'O¨‰ü‚ø‚;ê ¸œ�8‰œd‡_PF‚3'—e(ê €š˜lð+”ž,Û-Ú¥Y H_ø¶€àËZŽ\ÿ·,0R~[ÀäZê¤Þèô¿)`~Jè‚[˜ï HW[�2ç¸aö”|I€ ÓT�Ïæ|€ƒÅ€"o¾$@ÿ\cäIôÌ,`³E€š<ë—*úž€|ÆžpžP`„Å_Д3þÀ#4ùŒ€Ôb€µX)Àòö®ÙÍ¿N ±Ã*Z𙎹™ÔøË‰ÉXOj‰‰5µìfãÀ¨Öx*( ¯#xX+œ( [vÊG«>Í.7' Ç« ½A ü¹H(˜ÔÊ”Âk<¼‚BZǃ_øåM.°Xü<¦�Àê€yX `)‘–xÀOZÚ-À)AÀ¢ >®ˆõJ€$â³µŸŸôøë9>;ù{i= ˆ[ü„ºÓ ù`åÖëÿ3Á-žq%i‡�zÿÏ{,÷=€þè#t/”ͼ§u#;Ó9+U‹˜Wª¨Žø—cÀÉÁÌ ˜N»d0µ…ÓNŸ´öí› $}ƒ.€:̆fëct˶×ïûÉZ½óTÓqÛFJšÍY ô«º@Ðinܶ‘‘r3¤8¼²€¦tÎlKÌ炲™ÿ®Ô£y)@a“�­ÖúÀBÐù+â3Bø•«œc É?´@œ`BR…ƒ Ò«Ôe.I~$`Ú%).H!’àÝ:H‰(þP€V3=b‰€ /ëOtê¨C.Â!ภj´>¥‹¥°Ÿ �ó*0Ÿ ’²T)…~ò«iwŽ v3ò×,V"B.™5 KÀç=Åî# lC¾X3H"3uDŒfFÀÑc6%€…Ó…GOóçK3œÌ96R< �+•EBJÐÎ @6'@ƒÝ’ ¦©Ü€âåVª°dÃz@«”~Ô »978¤„Uñ$ØqqÈo—Ô§¹ã‡Ý’℺ OðŒÉQ„;uÖP“%8éB]D»×b:ò¹œî+&DRà†Åž´~ÒÚú†(DG$T?*£@[‘oÙK:ÌÝÙóĘì)~•Äã|C`¬/v/@yr"Ìôx\-‹çyb0¡‚åÇû{¸… êŸýæÐ�ì¥�§dÛUDÙ|¸+RU—p¯Ôã=G4øMúf¯½@AÉu,33éj¬Åâ‰'ŸêΤnßoá/{{¿Êaü±{C¾¯>Ž™õôR€][Ðá²×Wâ¢]ºö¤ÃöLû®•Sâëà©$"•ey¶æÒÄ‚W×jJ0…*ÌÐòvÆNéQ®ÞQ=3f‚ÄÖØÀn-€{½÷à4ŒYâØ{5é.ìí dâ'Ì»v÷Ãwí³2ß±{N7ÒΨ¯‘ÍYÀÉ*Ë{³û ð¦:Öã˜=,P>#€Jàèçð1 úø ¸fz~ZMj† <6cؽköÔõÔé‚ê=ÇW8öè&ep±‰`”<n¿µ@¢¡ ™ZÒi: :é‹{´6%æ~y¡VÓ¸õ®LJ ×m„…ZYˆÔŽaBÁöÏ0R…`#¡Glðžèç|áýo¯Eg(%Ät—Çñ[‘�¿4�ŸŽózB °ãFÏcÿæ÷ :C¶âdOôK¢÷¶Âµe{·Û2ß!èW ºŽã—˜ª¶Ûç@‹ßÒIRà›çàïaZ§-øéø!vlš�èôW4”$[ìoöÊà÷È2•Ýg~®%ø礣ÝÖuÀ< :èÌâK$ô±‚$É•Å×T~8 _£0h >»æXãK„þ#ÿ@@®ÜW-P‘ØHá‹X5ô’d} Ð%¾Ó{M ÉÕ~øÍ0Ý;´Œ3ZZ|ö.R8Õ⛄½Äëø>ù–Zàû{‰—Ið:ÅÚ|`ÿD€‚é±îø¶-¾Œài�ôD€:¬е`0M)Ö 0ø Œºdl¥ÇçØå"æBøÃzPø–8ëðæ;X<ÁV\‡Ð¶+‡À,}UMM79¾ì°@²2àBxñ´w<Pð#ÅX$­À¾åžþAbk\�-[Žj{z&Æ2ýÑw«![×»¼ÿ‰Ì#,Â5±5Èc6­ša ‹bUß…¸ýf}ëm»¼º¹¤Ø ÀvkŠ“åkËøE^ØN¶kT)Þ"`&׌"?a®]!` - ±ÍùÃ- P1ÞÒU Ç$xtXÃ^bY�íb@1Ý›ßòkˆy», Œß hæV·èÂb™ny6®ï!H|§6° 6<V1ì\1Ëп4€Ñd°›ÂmÔa™ÄtK` 1À+æ@¥þ† ÓË1ÀÌžâÝàVCà˜—¾êêÜSŽß­y£›ÿ$¢‹P¾Ž–"š¦Û×€*[üÎð«u„:à>Àu ûR;k±�ó( ØîNÊ®{)�,^¬'¤Êþ¢*ê¨Äk÷ñ´hƒZ›í>À‰z¬úìöóG¾xÓö¯ßD²ñâYVEz¡:Bñ²È”Ù…|×¾À ÔT-õŠâeH­ÒÂSôN¼ Ž%º‰€õ1]i�+?»½GðJ�ÓMj–ˆúŪ 81Ì")_ú,Пc¼…çr)ù¸Åû“‚[¬¬ã3Þaaˆo8W~[r·¦>Üv¶$® YÄ:ýviT©øü|‘Qy¢È`]¥,ß(ÈhY€*ͤ {Â�JÂKRòí†s†“=áËùdû^Àp<ãšØ´Ø­Ä"öìüÙ3Z D‰4x&®JõÙYÇ‚šsH"¶$ÀLœø"ÐJZOg‹ ŽwU‚ݦ\°ûˆ›ÏLkþ“¸âí½Çî3€3éÏìÓ„ŠÅ) ŽSáÁn«ÍTYõ“õ„Á†)T)`÷)PäE∨Š`?røç„½¥ŸÔ†sQìR[´°¢vÏÝ%’Ô†á\O*·03uAYÇüó%L£ b›vâ±I]PT§-µ¡ ö¥½ˆžª­˜ô…«+,wO;}>:WT*•{*¾dtÁŸVÕø=‘ù–�H⟞+ÐÒ|ÉÂ^óõç ²=:tß`ß/í ž‰$D¾ä냚dÅÞù@5ù€ØëÓ&¶V˜P¸H|ö;µbcp/ëK÷‰€Ö€{ޝY€AÕö“š�²'Ân¨sP…vѵqC!…m°À”2ÂÕJÏíÜmÁá%Äﮯ(Ãî{àºë÷Ÿtº Ú·v·Ñ>ßO„ì€g8ì6¨Ä·ë,ðëKµX½&@FÞ €ž¶_)Õ:Ï0¥mo´{JþééX¾Q€á”Ìù@ü®@…yà:Àì6ÂfpÝÊÖÕ†!vo >î püÄ¶Ø¯Ú ºþ<’|ß#x¾®0.¥”¹Ø¨ Ca‰Ø{ ¬¨Gâåæ+æ°Og¼¬“ÿ£ŒÓ• >?whÐi¢½PûF;Àdç#‰žèȶGCŸ# ´ïßÀ)ë ÎD*/3IGµ¦ˆrlÎ5wªÃ•VÉ3½_”ât2Ù¡GNZkã™ÑÙFµç…–ÌÀ°¨!"*ðV°{9“ß’ØþãÊ[ü¯†ÛÛ>QáéÜŽ‹Jk]�÷_í”b£ Z"Іü‰¨¡˜±W à†þžÐW¥2±Àþ´-ð(4‘.Dû^Ñ!’DÚy²ja1‡§Ã&µ7éþ¬e+¼@J =ŸWJ©m½â)8H3ý}Cù*® nÜ 4tòÅ硸’¢‰"*žZö'ngGLy†ZUWDâãdX¦ù ¸½Hp(½Ã„6Õ¢>Tí§öOÉ›Ù_òqD¥Åºº ÔøÞõªœèey”8 ¿+x¡ P0»¥?pÀ<‚ˆ4^N]—Ìá†ôÑ y÷…þ@ “tdX™D[çvÛ@]ŽÞ?ý­Uí«ëv¿ Ìÿéôpü¿„Á1©]¼ýŠkŽšê0¦2Ë%À/Y—9´½µb÷ÿˆ…káL t¦n»ÿ1þ/ECðë•k!����IEND®B`‚IMAGE 226 ./arch/weapon/artifact/Demonbane/demonbane.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VaaaÿWWG$²""‚��!!!ÿ�����ÿÿ�@@@ÿ×�‚B'ú€r… L���tRNS�@æØf���fIDATxÚíÒ±€0 P£U0Ñÿÿ]¹ëÎÍEÖGÊÒÅ…Šõ#“ÞGÒ:2èï½ï/îÿýÏö “Ó«»'(¯SÞ”ê÷™ŠûÂL å®p‡{€Ì€og:WÁÌ[W¼«°Ê}êí)Õ�¨€����IEND®B`‚IMAGE 230 ./arch/weapon/artifact/Demonbane/demonbane.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VaaaÿWWG$²""‚��!!!ÿ�����ÿÿ�@@@ÿ×�‚B'ú€r… L���tRNS�@æØf���jIDATxÚíÒ1€0 P«©A¢÷¿®¼çY?)K(ÖwÞ“°p>åoîSþï¶_í>ðxu÷HÈëhßG@©~TÜ#(w…k¸�Ž‰Î·O:WÁÌ[Wæ´®B¬r—H[¸›‹MZ\����IEND®B`‚IMAGE 225 ./arch/weapon/artifact/Demonbane/demonbane.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaG$²""‚��!!!W��ÿ�����ÿÿ�@@@ÿ×�‚B'Þ¿eâ���tRNS�@æØf���hIDATxÚí’1„@ ÃX‘åÿïÅ3Ôñ\w jeÇM6Âú³ ïgaýQß÷>èûÛ_­‡×¯®O"¿®ö>èú‚î…©ˆ’wî�Ô‘t~¿yé¼fÞzá¼8f²Yæ´A®õÖ€ïC����IEND®B`‚IMAGE 230 ./arch/weapon/artifact/Demonbane/demonbane.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VaaaÿWWG$²""‚��!!!W��ÿ�����ÿÿ�@@@ÿ×�‚B'+ï1���tRNS�@æØf���jIDATxÚí’1€0 B­¦6H½ÿuå½Îaqpñ¯Â’ÍaýIÂûNXlp>åßô»ü¿ÿÙþ,ûÀò³ê# ?¯ò>DÕ p/ FRÞ2›;�°µ¨üqcQy̼õb„ó"r—÷ x�ȯà¦>����IEND®B`‚IMAGE 226 ./arch/weapon/artifact/Demonbane/demonbane.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VaaaÿWWG$²""‚��!!!ÿ�����ÿÿ�@@@ÿ×�‚B'ú€r… L���tRNS�@æØf���fIDATxÚíÒ±€0 P£U0Ñÿÿ]¹ëÎÍEÖGÊÒÅ…Šõ#“ÞGÒ:2èï½ï/îÿýÏö “Ó«»'(¯SÞ”ê÷™ŠûÂL å®p‡{€Ì€og:WÁÌ[W¼«°Ê}êí)Õ�¨€����IEND®B`‚IMAGE 230 ./arch/weapon/artifact/Demonbane/demonbane.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VaaaÿWWG$²""‚��!!!ÿ�����ÿÿ�@@@ÿ×�‚B'ú€r… L���tRNS�@æØf���jIDATxÚíÒ1€0 P«©A¢÷¿®¼çY?)K(ÖwÞ“°p>åoîSþï¶_í>ðxu÷HÈëhßG@©~TÜ#(w…k¸�Ž‰Î·O:WÁÌ[Wæ´®B¬r—H[¸›‹MZ\����IEND®B`‚IMAGE 225 ./arch/weapon/artifact/Demonbane/demonbane.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaG$²""‚��!!!W��ÿ�����ÿÿ�@@@ÿ×�‚B'Þ¿eâ���tRNS�@æØf���hIDATxÚí’1„@ ÃX‘åÿïÅ3Ôñ\w jeÇM6Âú³ ïgaýQß÷>èûÛ_­‡×¯®O"¿®ö>èú‚î…©ˆ’wî�Ô‘t~¿yé¼fÞzá¼8f²Yæ´A®õÖ€ïC����IEND®B`‚IMAGE 230 ./arch/weapon/artifact/Demonbane/demonbane.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VaaaÿWWG$²""‚��!!!W��ÿ�����ÿÿ�@@@ÿ×�‚B'+ï1���tRNS�@æØf���jIDATxÚí’1€0 B­¦6H½ÿuå½Îaqpñ¯Â’ÍaýIÂûNXlp>åßô»ü¿ÿÙþ,ûÀò³ê# ?¯ò>DÕ p/ FRÞ2›;�°µ¨üqcQy̼õb„ó"r—÷ x�ȯà¦>����IEND®B`‚IMAGE 215 ./arch/weapon/artifact/Demonbane/demonbane.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaÿWWG$!!!ÿ�����ÿÿÿÿÿ�@@@ÿ×�‚B'ú€rÊ»ÓÎ���tRNS�@æØf���^IDATxÚíÍA€0 ARè–”þÿ½Xê9~�Â×Ù(‡šõ+ï]÷à÷Ïú,¶ÏꞆ|Þ• ´Yÿ'5—ÁZ)wÁ�Ñ•Ÿ{•+0ï­k½yW°ä¾°Á w¢XÒ����IEND®B`‚IMAGE 201 ./arch/misc/Container/depositbox.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÍ…? R-���ÿ¥� 0?���tRNS�@æØf���eIDATxÚíQ À C«ÍîåÑ)Òš ìwìUiHjíçȨ¾;®Tÿ¬�)Èa(§'„bö×MC`КH‰çL[ H,p0ÛE)ñ‹\´ ‘BËìXe qÄw¸(ÕWˆ<Y[����IEND®B`‚IMAGE 630 ./arch/ground/desert.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTEés�ÿë ÿñÿü)üá�ôÚ�€€€î¨�Ôůǃ�Ö’�îÏ�Æk�wwwhhh·ñIq��IDATÁAHaàON%}3u=Ì?»,vÞÕ ¬`vǢƌܨT"‚èÐ:BçÐ`‚Žó+u ½ì8Á¶C àâ¬4ò°JPÁk‡Àìy¨K¢ˆÁNlS#îA^¸; d›çz@–‘j©Žs�6Rg¬qóN-y¯ê».7ÂãßuÍÒÌ¿a‡YRÜØ=^wÒC|kaþ§ˆ»È‚vÖÖÕ®öZâ:ü\z<#Í%¥Ö]g«”Ç*ÚWCÕ ‰ÏO�’\¼¾eT¼ÈH`†øCäÕ= —O½êŸ4:Tóýޤ~T§tT ÚŸp¶Š<&,ÙG*j&l£±Æq®ñf—6V\k°GkÕ|¡gÅÛ}b‰f~§¥ŽüC w»ª¤ssöäbí€ßåð(f’¸"“êGu@–¥$«d› U6DÓSªÓù’1ª^ÿ ý‹ÂAš™YÙû’V¯=Û¹0Mï*µýzž¤/R#«ÔÛQjÙe %é¥7=(l)ƒnd¹7SH·òÅ¡¾![g¡/P€çÇ/%Šæ •Oß †t Ãâ^ø‰5lsã½ç<Ï4—æy¤®ÓýpÄÕ©"Úm±mIz Ž>³ìk)µna–8Óœˆ-㦊Â5–Ä,²‡RÈÏzÿɺ¶Fk°u����IEND®B`‚IMAGE 2748 ./arch/ground/smooth/desert_S.111 ‰PNG  ��� IHDR������@���[a?���6PLTEÿÿÿÿë ÿó:üá�ôÚ�Ö’�Æk�îÏ�¯ÔÅés�î¨�ǃ�wwwhhhÿü)€€€ÿñ!?i���tRNS�@æØf�� 4IDATx^ä›ëj#9…O]të‹3ûþ/»‘ÝB‘ZÝ%'„…_Uö`ì•…˜™áª�–¬�3[Wi}ƒÿl¿ÝÿqügýA”•lqMQ‰×€¾†c1ùu>Öü)>Õÿ2¿¹¿úÄ3ÿýþ`l` 1z/´o�9Z„ÄY|\ŽÑùèbÍŸä3ý ŽßÙ_ýD_Ù·ûïôC™IÑâÁ‰ì$œˆüž’ª|†Èâ%st>ÚXógùTƒ£ùøÙþ¶_"ßíÿR2ð^¹Óã±+èž;"f3=¶˜¼§Ï0[£l6ÖüY>רï8pšXû³Ýì¿ëü¤crãÊc—||<@·\…X"ÙRL²‰c‹/„Q"dÇ‹×ýÒì-¾1ßäsýè=oæg0îßçj?ú4÷ýGó1Ù €˜T•®xíò¿PAœ|¦÷…ÑpºÜ.@ˆÈ£øè"ò⸜ßúzLèølÿ;^SûÃþ³É~Ó¿":÷Gû|ºþç„ìßÎ öÏq—õ‰£Ÿ *ròù3T¹ßq2wÅ?‡ ÇÍüê¯(iølÿ0Œ˜ýñVè¾ÿíý]ÿq¦û;–}%�Ãuˆo8Që{&—ŸŽ°Õ‡h6›ý}èàpÏ¿ñ+ÿyÿ&�ñÂ'Æ{iïï¶+îïoúÀ7>0ÙŸ™(% ‚ë$h�°@‡åøäû…ÜJyﺲcÆ]åâß½ï�£ù÷~áßío{?ñ`h휥á÷÷íéçc®?ˆ¶7qF,ŸÄqi Iɧ{íàÄŵBáǯíüÞ‡#µãùûØÿM/Zû_Nç µ–¥åJÓý±û“‡Ë/ùX|JI=ÝkO¾¹â£~ýüÞ¯@:þþŸõËRªÖþ=·ïÿÒÿôe#Ù~¨y§~ûÄIˆÉM[ÁL¡ø 1/B?Ÿ¹ñÏŸZ>ÝŸøcÄgý I‹2Ыûqs¿\û_lžëãæ‚“,±}&çR8^~w/ŠKqññzÿ‹¡ï¸õ¯ç¿×Ÿ¾ß:DZ‚¦ÿõýöók@ Ò<?+!mA„,#<ïëâcP%K�DþñÕïòäWæ u>N)ü­ûÄoöŸ�zÕß¾Ÿ€¦Äáà`®?ˆ˜�?Âóþê5Ä^çD·°ˆpñQRÏxòÆyÍ×Ý·þÝü÷Ÿ??ÿúQíú¯s÷?ϯŸ¿#g®?Vb…$�:Âó>kH[ û6õf"�È1QñûÞ€ç|¢méýVÜ:þ~lß럓¶h ¯ç£Ú÷gûþ„&Õ?Ïð§úæ÷ÙÀìFxÞ—”œ‘8zËSáœÃ/õ¨Œ'ï´2¿ó¯ç¿{ÿ7úkößÔ´ï冷ïïû_eª? 0“ñú›¾K1ª#™óÔÇ‚ãⱞ¼÷H$3iü›ù?½Ú?�ÁŽªJßß%@Ë{#þ�ÖýFÿúüŒÐª '@ö3žõCŒÉïB"“^Ü>%)~‡w�™—qìAþÍû÷·ûÛ’GŽBUëýuÛÜŸïû§ô«þ9äÌô1;£´éo!8Ù=9saÙäø/àªpðî ಼Jõ1ÈÁzÿ´o¥šjwñÆ“§ûŸ÷ ƒª`ÙQrüvøFÄÇlC:ççl!¨V`m&°ˆ:ÿ´¿ðg"j–¬JRýB‡~MÐúf¡�ï_—…3œ¢ÈÉ|Ôÿöst<|Õ<¿Þßì?ô÷;Bö|õqDÕ!ó"dnfÙý1AtÒÏý•ÇdDZ'®úç^¼dC‰‚!­6Ìâÿ¸õ¾'‘Ò¿åÙ¾€•çûOý1NÝOÄ Í~wå� Gæu¿Cå 4>ÆÉÜ ‰ŠÀˆå3ø3ïh;œ´>úÈåJ¢eçÖï²ìœ·ðÍý¼ü9}8û¸õ‡ï~Ý|íïï8*¯©üºæßULÁöuÚq�‘ÒÆëp?eáÅG+QçcÊsšû:¿ÞïÇókl¿5ßà8bøµ_ç[YóÏÒF,ÿšÿ&c„Êâeì§@á#{ɶ¯>Îéç?e eÿvæÌ™3-2æ(‘I€=ßæ9ßõ1'!ÿ~Ã'"¦êÿó‹$ç¿úóAG[M±ø gƒ›þïpà¾f iSq0bøw,DÑi?N?Å úêã¼úùBؔٹ}úK¸1ù‡õIÐößÒ}^Ìãý•ã"$_| "ý|²¬D‚÷^è/á°¢[ŒˆF ÿmÓ/À*uÿ˜_ê/>€÷ó™)„úûÿÀÕöa…ˆ êÜÿ¢Ïœª?æ×‹Qý!ïæ3ƒœ<OLAè/á°büÑoúë*âª?æS¾ÅÙåTu÷ü™UUOû�y6UTµðv¾æ ó[ ÒÂU;ž}Ð>äZö“jåçùõ¾ÂÿmçÜv‡a :u±Û$‹ýÿŸÝ‡"\(¶¨ÒD¥Ñy=PFRP¸I0tÏðöûÇΟùÒ/ï¢÷÷[~ðü™/ý˜©ûéNüÉùÂÌ7Ì�ñ %ÁFÝGÙ÷è ë_>^<¿ÏŽçƒ(¿¬úíqߣƒ¬÷æÃ™“3ÿyç×<z¤�4úñ +_üï·c×7ôóÍèù°äÛÏßÏ™òK<|þf÷äûó`‡À½ßŠØƒ²7_Gòo~„…´ÉÞüÃç—¾pÝ»`îåû‘~ú&‡Å÷ùôço1æÛwÁù¡Ö'¿*‚Õ.ò¯0õý‹·œ?‚ ÿýI¿ÞÑC~Èó¥ìã[ïäÞÿ·�`Õü·É8@pzüÅl–|ÚÝ0œÅQd~÷N"Ü!WúíÏã?à„gB@€"cžF̲«_I4<N‚pœ ÃÑè§°P`g²øªóÍœDüF&Ÿ&~¿…“„eMµ`ç7!Œ¡Éx5–ˆ—bÁû0?…,oø¤Ë©e®Œ L\m7rŸ’“éÍ>êplúˆ“Y.0A®¿Þ^ Öu‚‹R]ÎåéS6ýœ¿;„ˆ¡î…œ…?ŒÏßÉ5t4>Ôþ:‹o¢xº¿>u&瓈3=Éþ©¡eÿZ¤xå~ÇEï¯/®¯çÜnÊ|Š×Ö‹nxuõzÞ÷Rv‚xˆWîg8îyõþºî×@g}ÝŸo½AâÌëû^ößöùÑe}}þqQûë«xÃzm>�|ß'v­—¡)µöGúþНmQahýõœ5_� òýù�ͧqå?/¸<—Æþ„¾Ïyã™÷×cP¤¿¯ú°ë—Êëë¥?gz*e©ö—”ýÉþøRÝïˆH_óÁí¥?Sg¾ÁéžBHAóaë—Eõ‚xŒ„½ÿï÷Ò¯Ç>2?@õHHúzô__Ÿàóç“ù�ÿ� ´‘——R‚����IEND®B`‚IMAGE 240 ./arch/misc/Container/desk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿB!„B!¥R)���¹æQ���tRNS�@æØf���ŒIDATxÚ­A„0 »mýÿ//Õ„Z¥ÊƒBä v«I¡Ÿ^ `fPë÷œ÷ <¡¨SAÜÔG },Z÷CBh €á ‰êÀŽuË×¹‰Ôpú kÎëePÍ .Û^¸ À-¤(i^wÏ@[;�ÒzÚ–íôN{ •´Rˆ����IEND®B`‚IMAGE 272 ./arch/misc/Container/desk_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��H y’’)Ž1µ6µ:���õÖ ÿ���tRNS�@æØf���£IDATxÚ­‘AÄ 7†ÿ¿xA¦2VV,Û1Ä‚Îx°œ¡9z†" ·5“ ­‰Œb[ #a‘ß­&HûÝ[]Â>Aëu$ˆE"{|ý|ž' E¯éˆ(<‚B–p.Ä-༌휰†B„ ò�vÿ‡Põ¾myh„`s¶¹‰9„< �Å!…ÂÏœw [O�LòjÃ$lÿ‡/gRFoLU����IEND®B`‚IMAGE 201 ./arch/spell/Misc/destruction.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���qIDATxÚ­’ À0ÄÎÿztÐ…›Rh`´hjÝœîP vµ–SÁÙÒÒ³ð®&Ûý´É"§÷Øó`U“ ,HýSXí¡>Œ‚¿y@ü]VØåèçmøù,0è8R?…B>pUàfF ùW˜ ê<­UZ­(œ����IEND®B`‚IMAGE 212 ./arch/spell/Misc/destruction.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���|IDATx^5Ì;Â0ÐA4Hn)|H)|,ZK 7€kP%Çq¹+QËÑk>Ík惴Wüx=ó’Š69씫dèÊìÐd6ÃCÁe99\YqNE1ŒÍ¯èÖŒX.€mQaFƒvvS½yz7$òTà 1c”ôo¶sUi­Ïü����IEND®B`‚IMAGE 215 ./arch/spell/Misc/destruction.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATx^5Ç1 1EѶ´鲎aŠl)à w`áB§°°t Ó¥3Bš?$üçƒÍá^KüóÕrkŠ]yG %‡dT« Ÿ™³á8 H¾:}"VJ³Õ¸± ºÁù.‰ú0žÍðg—@VvµW¡ëL†NË‘ŸcH¢™¶*����IEND®B`‚IMAGE 211 ./arch/spell/Misc/destruction.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���{IDATx^MÊ!Â@áßaH¹'!áP•$»8WàUWÙ# ×±ñ ݼá%5˜OLF`ù™`·Lƒ¾ã2j@9^äÁfô$ƒ³ kk9°[CõN§ê\µMýü§‹ìÈöÁ|xš:ú· SŠÅR“ᬔñ•HiVQù0½����IEND®B`‚IMAGE 167 ./arch/spell/Detect/det_magic.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��{÷Æ÷«ìp���tRNSÿ�å·0J���NIDAT[cø „ˆz 1DœgΉ'3€Ä×ÿþ”¦ÿgø'ëäž+níÉ@B~'P¢h>x6¦mÎ{ ±¤î/6‹0�tùÞCÕ����IEND®B`‚IMAGE 183 ./arch/spell/Detect/det_magic.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Æ÷��{à ¿���tRNS�@æØf���_IDATÁ± ‚P�À3˜…1–Xa˜�;(…k€8¯(éé$ŒÂ��pDĉ:ZªuÀÿ†÷<Ó?6ú'.A§aJ�Ÿ‘Cž©¼Š°qpo±|ñ[‘%!��ØE£äc ����IEND®B`‚IMAGE 195 ./arch/spell/Detect/det_magic.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Æ÷��{à ¿���tRNS�@æØf���kIDATÁ!Â0��Àk–tˆ¦€«l†CÂOøŽfbŠGöž€DrHRÉ1ã†!¼Ã<eÞõ̵þ¨‡æ+ò€Ð€ BÛ2>R¨we_ŠÓñÉt[Ðô•ÐVB{Z�øÒ€¬ñzÿ ����IEND®B`‚IMAGE 344 ./arch/monster/demon/devil.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaG$²""‚�� R-ÿ�����ÿÿ�d3’( ÎdÌŒ���tRNS�@æØf���âIDATxÚ½’YŽÃ0 C½H&;¹ÿ}K©-ÆqŒ˜aÅy/ ¤ü!ü*°ÐãvcxË%€{Hgq·ÈGt}øæ®ƒn Ì|÷½µš;ÇjÄ—Þ*Ð*Šù…#ŒäQ®œPE«º�câ9œ8› 9Œ5×Zì1O¸jN ò•dHn(s´FpfúF#y ¹£‹axÑ>úkyæë=¸ò“oÀ™«?hr¦`´yˆV%}òì—{«Ã‹âÇq ”5Áñ~¤+~ŸæW>æípå^OÙXúí\ʵÂA,?Êmœ2þ3O‰_p|þ����IEND®B`‚IMAGE 348 ./arch/monster/demon/devil.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaG$²""‚�� R-ÿ�����ÿ×�d3’( dE@ÏñË���tRNS�@æØf���ãIDATxÚ½’ÛŠÄ0 Cs±"w:ÿÿ½+» d“Ò…yX…¶Ð#É ¤|!ÿÓàÅŸ‡Ñ¹ ¼çêöXè‡ô>pÐpõœž 4Ã]^$w(¾uDíMÒ” g« !ô•»¸µ ‹‚p̆VÅ=WÖn-;,¼ ýš ¿Ôj¬äÆ2 Æä×Ó7C6$KuñµöOÚG/2Øj {.½ôc=¤“A“» ë)­U™>º"6q´:Uçy^™Éœ%¥à~›â|˜v;v>æíøÎçRØR€™K¾Ž@u.ƒåQp9þS?Ý w¦U¸®����IEND®B`‚IMAGE 185 ./arch/monster/demon/devil_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÀËÿÿÿŠ-���tRNS�@æØf���[IDATxÚÕÎA À0DQ¿ÞÿÎmÉBŠ™ÎªÐ!ÄøãOaþ¼`Ôf X0+-ظ½FèxÛ˜¾Àº%(ê Pu :$Ä>½¤ä™î Aµg|-H'�ʺ­hº����IEND®B`‚IMAGE 291 ./arch/weapon/axe/dhaxe_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���aaaÁq8G$ R-���@@@d3‚B'¿¿¿¡¡¡Dá]���tRNS�@æØf���­IDATxÚÍÒAƒ0 DÑÄ”ˆïßÚ–Òªµ ÛÎ"B<3^VO‹‡…Ÿn|ï"D…k¸v²«.”ß«Jo,ƒåU¾‡pHá½ëÄy¦pÐù=à«@DÒ�qH×—OŠ?»hå#X>I>†»–.˜7‚³3Dp7.û9­ßŸfíûÛ)ü$¼¾“pœûÇë¼ß®üàÆO’ÿÏþvµ?’ö§À¥?) (—Ëʸ����IEND®B`‚IMAGE 292 ./arch/weapon/axe/dhaxe_2.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÝIDATHÇå”»Ä DUÂ…DDŒS»�r×q•^i:Fñ›±…šMývµ€°/$é–cµxÄ]g0¡‚Á(²á_ëx$=Ä#—p¼4èq—#Žêñ]C™ƒñßµˆAÆ÷¤ˆ§ìÅ©3€Ú •}0ä.scÐÞø@ðˆë ¨�0Pp}>~ʽÃb>v‚:¾.?¥;Ê>äà ¬Lwuxþ2¬Lô ?škSàõîti‹@×ÝwÝ'ûî·•sî¾ÕtÃ3`Oº¯¦¿¶;<ëNöîý×NŠvÙ´¯î����IEND®B`‚IMAGE 528 ./arch/shop/diamond_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 3kâ˜���ÆPLTE�������‹‹�çç�îîíêÊÊ `` ‚‚yyëÙ‘ìÙ––.ÜÜ1ÙÙ@@@BBBTTTUUU^^^___lšš„„„”””———¡¡¡¥¥¥©©©ªªª¯¯¯²³³´´´¹¹¹ººº¾¾¾¿¿¿ÄÄÄÇËËÖÖÖæææç¶ç·è¸öÖö×üÓýÕýÖþþþÿÓ�ÿÖ�ÿ×�ÿØÿØÿÙÿÛ�ÿï¢ÿð�ÿð&ÿð2ÿÿÿõ­m���tRNS�@æØf���bKGDA‰ÞlN���¶IDAT8Ëc`(€@‘gå6´°0äfeA�FýÜ6úººz<L À¯íhªÅŒªÀPßÈØØÄÎ�¬WSIG^Z¡€Qˆ‘ÑBרÂÂÊÁœ‰…‰EBFUQCŠ‹K{AUY9eQ64+ôL¬,­mAV¨¨+©ñ1± ú‚ÛÂÎÁÞÖ äH.1qvt¬¼ææ¼8¼‰=œI H!IŒ°GúS# �r±Äÿh@�‘ÀÉ6@K����IEND®B`‚IMAGE 292 ./arch/jewel/diamond_exceptional.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEBkk���”””µµµÖÖÖÿÿÿ+|Ã���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 3/’q���~IDAT(ÏÍŽÁÂ0 õL ‹tN–í ê¿^DN¹ßîìhDt­¹ûç¹ðwœÅ­ w¼îàíYClÈ2yÑ”1ÖÂöܹ…ؘ…µXújl<!‡ÀÎ(õ8±©èG@*SÑS¼“ÖkT˜K]zd”•)¥tâKì»Á'‹Ð˜P����IEND®B`‚IMAGE 219 ./arch/jewel/diamond_flawless.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Bkk”””µµµÖÖÖÿÿÿI%™Û���tRNSÿ�å·0J���vIDATxÚíÒÁ €0 CÑb»û¯ŒK”2€¯ï«¹t/ûf0kDÅR7§Ê‰12°fx š�"h7Q»Ú%@”¯ÉÍUÙï¡r„2 ÊéiyÐåhÐlnÏ¢Ú#<šË#VOÍôþo¿Ù ƒTkdЫú����IEND®B`‚IMAGE 1010 ./arch/misc/dice.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEÿÿÿ99FF.[[7ZZ<qcG‰€RwlO…\f]A…zX˜‘cœ”g˜‘c†€Vª¡m©žn•‹`¹®z¿³|Å·€¾³|²§s‹€[ÎÀ†ÎÁ†´©t¬¡q¿±{¶ªv»¯yÏÂ†ÕÆ‹®¢r¾³|ȺÝÎÞÏ‘ÛÌßÏ‘ßБäÕ•ÝÎŽãÕ•ÝÏÛÍÜÎñáöå ÷ç¡÷ç¡ùè¢úé£ûê£ÿî¦ôÍ„è¬bÿS�ÿ¥�ÜŠ@ÿÜ|ÿ²|óÿ��ÒiõÛ§ü@9ü·Œý ¿ùùÿ*�ÿ|�ÖëÇØÁ‚³ííÇóóþwSÒÅ¿²|ú›öîc·Ñ˹ó󽵑6)XB)RÁèÖÁíí·¯‹Í…?ÎÁªÏw/FFJJzÒʦÕîÜKo™ÖóóØ„LVVVÛôâÜo3X!sâöÒæuHæºsè5`Tmëì¶íî îeîʦîΦïœrðöÒaa’2%Lþ¡Sþ·)þ·SþÊSþÒ™þö“‹«ÃކƒŽŽŽ”Óñ˜”‚šyTš–šžŒpÿò|ÿÿÿ ˜…ü{bü¤b©¡}ÅÑËÇ¿›Ç󳫫««±ñZAñ¸€òvM­¥¿§vл€þöÒ±©…±·“úàªyyy{¨ÛDýIýç¨Å¸“þ;)óV1ól;gNAieswww÷Ü‚w­éõò9è^è‡ùã¤ùè»è™8±ËÅû`V %B���6tRNS� -27CCCHJT_‚„•–Ÿ¢¥¨®³¸º»ÀÁÉÌÏÐÑÒÕÙÝÞÞáäëôùúûüýþ¯3$k��aIDATxÚÕÑeSBA†ácwww7ê{Šn»»»»»»»[ÿ£r‘Õ‘ïÞ_Ÿkfwg±–‰k0R—#²Û‡ƒ¶Ý¥ýÚµ€¸ÀTgƒÙÂ�Ó½' eåã“)þ±�À)æs…©Öü¼¾ë£ÛÜíÈ€´AÎ7°ôIÏ€™±ù•ó›"• É7f¯ôÀ&$ )Ô/@s§Ñ[@KL�€öÎã`õxï 8J=h“(^PÐ8Íåõ³tà-³Nð(/%ÕÃÂ!tU/¢€ærð§�1ž÷g(�Z ¯[-c3@>Ñ p¼é’¦Ùº;Èsæ@à€oqIŠüz…¤8Ÿ¿Á£()·^Ä�¹"3€bu*"èR‘TTA´5rÉ %v×ljÁú(°<Ì1px$OøÞÝÌ‘•åÀlýE²›f DØa†Yy£yº˜bÿ«à€€p;3p­����IEND®B`‚IMAGE 1104 ./arch/misc/dice.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��XPLTEÿÿÿ���UUU@@@+++]]FlbNUM6oiHgbG’‡^œ’c™”aœ“hwoM®£r¿³}À´{¡•h»¯zÄ·Ÿ”hÐÁ‡ªŸo°¥rÓÄŠÓÆŠÁ´}ÙÊÜÍÀ³}Þϯ£sƹ€ÜÎÍ¿†Â¶ο†ÜÍëÜ™íÜšâÒ“ÖÈ‹ñáòâžôäŸöåŸæÖ–íáoúé£ÿS   VRqÒÅØË•âÿÿˆˆˆ\ðúèkkkÎÁª¾”+¿²|Áíퟓzzzøâ¥yuc]%]^'€`)†c1cccgggÖëÇmi†mmmo%�oooqqqzV>¿œd‹ƒ€‹‡u‹«ÃŒP'‰ˆŽ†ƒŽŽŽ--––P�ÞÑ›¾·º¿Œ00a44|::qÂNc}kVVVê¨êùùëì¶í® Çóóðÿÿò½SõÛ§YYiüt,ýç¨ýì¥þÐUþÔfþí¥þöÒÿÅ)ÿÉ:ZNHÔÇ‘ÕîÜÖ¿|…NØÁ‚…‘‹˜ˆ|š_Þ��œœ»â·tâúèâÿ _� h‡b<uLouuuÁÁÁÁèÖyZ7iiiii–±ÊŸ³íí·¯‹·Ù÷¹»Ç¹óó„ŸÂY))šƒe@–Ž˜P�--¦¢qDÅÌ´ÇîÜ@@uÉ|�B)л€JJ”JJ¦L'�</{|||–„S''„ØÐ¬ÚŒJ¦ž“©Œ]©Ž]«R¬w//¯íî ­ç籓±±©…öܦ÷Ø«Vo¬@V6�ZËžS˦PP„QMmÐÃÐä›ÿÎJS-ÿò|ÿò¼_Þ€Q���2tRNS� !./112;<r|~‹¬¬·¹º¿ÄÅÅÆÆÈÉÊÌÍÐåëëìòôôôøùûý¿½Z��uIDATx^ÕÐcw\QÇá›6nÛ%&I'ùÛ¶mÛ¶m§¶í~­$w53÷Üo0¿·çYkï³)-KÇÔ†ÌÚˆ�Æ�:x_+U+ªzwoÖ™0€®¥;ðð[æÞËæ–ßÅŸy/nÜàÊ5�8Þ^‹þ”Óàƒ[×Á�zV÷ÀÌÛñÀ�¶.DnW˜@�8\Ðm³A!ÄGÊÿ öÃ?y2 ˆ#è§ÁߦÅ*¹Ä‡FÄï¦ã¤4(›-”HÀ½O×Çò#Ÿ‚ìòŠò7,ð¼gæcHð÷ üäxÕüZz»àËZ2^pØÙT4ÈᾚŒ˜óí&ÀÔ“¬û¯6wé±m§KF,ì´ƒ�)[Ïþ쇶>ð/¤¿ð¥ÈÊ[Íx.MÑ€}Ƀøó1ÏS0.骯 ðËME5_$ROs]JºðCÈÒ€sà|™~SH”ù_„çÀÃì"E�M4pºD13´'³³¸@iW'Å®ˆ»‹_‰ñ����IEND®B`‚IMAGE 888 ./arch/misc/dice.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��³PLTEÿÿÿ���������$$$@@ 33‹ƒUNH.‰|]–Œ_Ž„ZyqKŠ}Y…zXŠƒ[¢—k©m¶«wµ©wÁ³¯¤rƸ†]”Š`·ž“gÙÊŒØÉ´ªvÇ¹ÔÆŠÀ²}˼„ÏÁ†Í¿„µ¨uÎÁ‡Æ¹€ÛÒ¨ÒÉŸÚÌŽÝÎéÚ—ÕÇŠÞÏïßœîÞœñáôäžðßœæÖ–üë¤ÿ²|wSïçÃ÷ê´÷ïËÿÎJµ`�ÿÁo<�Ö¿|Ú�çß»ïâ¬S�ò˜�óÔŒ( F�þí¥þöÒÿ«ÿ±ÿ·ÿ»Ž^@ÿÅ)³™cZ.ƒ`)Šb@ŽH�U.�Ži@•q)•‡i˜/�˜1�˜X�˜„[šqDœW.¤vH§c�§d3«Z�¬X@¬@¬‡B¬˜VH)XH1 À™fÁ…ÁšSÉs�Ï jÕˆ�Õ”Õ§8ÕÓZ1�ÖÒÀ[6Ú­nÞ†�ß׳ßÛÉæŒ�kR)m8�n*o%�òžo:�-�qU8üë¤ýì¥s;"sF�sX)x>"2e)?;)L'�ÿÉ:‚C&ƒN�ÿò¼vuúg���5tRNS� !')36=?CLXev|ƒ†”¥·¸ÁÃÅÈÈÎÎÏÐÑÒÖÜÜÝèêìíïñôõ÷ùþ®¿»—��?IDATx^ÕÍÅv#1†Ñ33ó8Ì%5™!ÌÌÌÌÌ™Gž–팭vN²ö·ù7÷T1VTV>]a’Š NÇIÓöç63Dg·‚Çq{,ÏÿK] @H.Ò¯eY« ©Ò(âr;ÈeN{ÌòV »¼Àèù‹küÕ+dªÊî$o ¾Hºæ.iÆÎ“ÞñŸwb…„‡v¾ÀÓ‡ËÁÛYßð@ û}“üÅéŒ(Šæ+äxy©W°Jc0š×û}àõÙ2p=2·åpØODLÀ Ú®w·óRC�2Â<~λAi›BX ð¦r[ܶ�& $€ìNåêè  ÕžÃÐ�ð‹^¿¸�) C’zAµæy±Ì·`V T§1¡¥6ÐÕÄ3‘Õ?2ss¢]sn����IEND®B`‚IMAGE 182 ./arch/readable/diploma.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿ�����ÿÿÿÿ×�y½Ý ���tRNS�@æØf���RIDATxÚå‘1À iìüÿËHÁª"2t€›Î'í 3 t¾q΂gl$` a·�0ƈC©SATï@ÍQ)ö!Øcz­¥ÂÏ¿™Óî¡üÕ”ŸP]r����IEND®B`‚IMAGE 152 ./arch/connect/Director/director.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���@IDATxÚÕÑÁ �0 ÃÀÞþKwòŠ¿"8ïdl”@ Ø�êN@õÔJ@9²P=õF%`�”2TOgò+�½†ÓRv����IEND®B`‚IMAGE 158 ./arch/connect/Director/director.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���FIDATxÚÕ‘1� Äèÿ?í`L4hq²¹Äð*` ¹ÈtêV•Á19'3û+–g›3w‚ÖbGüC Ô�°¯+!����IEND®B`‚IMAGE 158 ./arch/connect/Director/director.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���FIDATxÚÕ‘I � ÄÌÿ?-D\JОÌuC;åGÈ @NÀJhXvqÞy°o1r1E˜¹°ÙYÙr1¬“.üC%ï�· r½—����IEND®B`‚IMAGE 170 ./arch/connect/Director/director.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���RIDATxÚÕŽ±�1Ãäý—þƒ†Êv›§P#%À¿G*ZÊ%?X‡õ+F¯}0§ù:99ížú‚\ˆR@)ˆÅ°”r!Z§ˆçK�¢ˆ „����IEND®B`‚IMAGE 174 ./arch/connect/Director/director.122 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ��ÿx\ÏU���tRNS�@æØf���SIDATxÚÕÍ1€0 Ä@¡ÿ?šÂMÈ]\¸ÑzÌ¿G[6f5eP˵û<ËMÆðÀ‰³¾r| ®Âw†ðÀë)ÈB(‚" i‚"ÈBÈBŠ€"(‚çŒ^@ñ¤����IEND®B`‚IMAGE 167 ./arch/connect/Director/director.123 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���OIDATxÚÕÎ1 À@Ã@éÿŸ\®°Ý&Ûz@Ë¿OǬc¶Î­ GXÛ± 5 ¾"¼–z‹ðZ ·%‚.„.d‚.„!º%>x<�–Œ%bo����IEND®B`‚IMAGE 170 ./arch/connect/Director/director.124 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���RIDATxÚÕ‘!� Öÿ1QC[ ˜¤ë †œ†–ÆãXÀ2'rÇ2p§ÙÁ}Ìi*ÈqèŘlˆÛÉè¿$Áï(Æd#r5cœ?O�šÌYÿ_����IEND®B`‚IMAGE 172 ./arch/connect/Director/director.125 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���TIDATxÚÕ’1 À@ ìÿºP(¡³Ö6ƒË8äßbƒ¤éiB±o9ÚQV;À°§‡Øì—ì«MÄÁ :AŒˆ©„_‰‘á&D„ÈçDO�žgÉü˜����IEND®B`‚IMAGE 147 ./arch/connect/Director/director.131 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V��ÿ|¼»ê���tRNS�@æØf���;IDATxœc`À Ø@{ˆH� "Dä6€ˆ bˆØ"¶7€Xà,¸ì˜Ž<¸) 0“Ùð9��’ämC»¬����IEND®B`‚IMAGE 148 ./arch/connect/Director/director.132 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V��ÿ|¼»ê���tRNS�@æØf���<IDATxœc`À Ø@kˆx�"v€ˆm b{ˆõ�DÜ�÷@Äí‘�c݃Ë>€ë€›ò�f2>��C‡ùüh§����IEND®B`‚IMAGE 147 ./arch/connect/Director/director.133 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V��ÿ|¼»ê���tRNS�@æØf���;IDATxœc`À Ø@{ˆõ�DÜ�÷@Äí‘�"*@DˆÈm�`¬<¸lLÇ=¸)à&ãs��é×É›Ïë����IEND®B`‚IMAGE 166 ./arch/connect/Director/director.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���NIDATxÚÕ’9�0Ãâÿºê€¯m …#ùQã(Çú1ÆÑ~Œc„áÛ$ƒnq“-ˆlÚLF”s®qõg5žœÙÔÃ×^ÑA�¢Imƒ����IEND®B`‚IMAGE 169 ./arch/connect/Director/director.142 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ��ÿx\ÏU���tRNS�@æØf���NIDATxÚÕ1� ÄÎþÿÑŽ$éª]+ÔÁüÂ<æA|0zló`›ï‘Ó“‘Nùë9"µe>çéßÍŠÈ–Ñ'¯°w|@a‚‚+����IEND®B`‚IMAGE 165 ./arch/connect/Director/director.143 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���MIDATxÚÕ1�0ÂÌÿ?Ý¡ƒ§{e bý(”cyŒƒq4qŒƒðBxq”§£ù´¢$-²ôyg,M%Ó¹³AKúÜUîèŽ÷:q�–º©ƒF����IEND®B`‚IMAGE 165 ./arch/connect/Director/director.144 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���MIDATxÚÕÒ1 À@ AÏÿ?:\̶µkd4”âÁ‡â’+¿â—~Åÿºð:R!–œÕtñÎ¥éwÓÑt[Ë’ãìýÎ-z�,}�šnFÄ5����IEND®B`‚IMAGE 162 ./arch/connect/Director/director.145 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���JIDATxÚÕÒ1À AÏÿ?6Ŧ$n„¸óþå”ËûÊ•>á£\ºð)ç<ñv¬9Cýtä8Õ87>ï,jcÑœl'º¿»%7­�žþ%z’����IEND®B`‚IMAGE 161 ./arch/connect/Director/director.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���IIDATxÚÕÏ1 � CÑŸû_ÚQ¨¥ÜšE‡G¢ìIº8Q6ÞU{¬2úSDÐr+øäžR`Ü�R€B@*‚9äÛ�½ãuÉ3����IEND®B`‚IMAGE 161 ./arch/connect/Director/director.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���IIDATxÚÕÐA � ÁÍÿ?íÁSÑvÏ ˆC°'ù¥�ÞÄ*PPcoÞúiÛã2ѽAêÝWà ÷H"˜Á„‚9º�°“RbA����IEND®B`‚IMAGE 161 ./arch/connect/Director/director.153 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���IIDATxÚÕÍ1 �0ÀÀøÿOwR1ÐM¡Åáˆì™èÆAoTo ¢)ÊM à€¨»$AÊ6&øÄý%&oN @ 6ÎÑå�·à0s����IEND®B`‚IMAGE 164 ./arch/connect/Director/director.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���LIDATxÚÕÒ± À0�Anÿ¥S¤³¾uh}€ ÌC½ „¢!„P5„ „Ù³ §ˆÛßì­Á>D1ÄÏ-Lo‰8”<´ÌÕñ�AO�¢< x����IEND®B`‚IMAGE 165 ./arch/connect/Director/director.162 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���MIDATxÚÕÒ1Ä@AêÿŸ¶táÓ©MJ ´ìÜKöA··…Jˆ„BÍð/æÖï× ì#ª#Þ8¢ú¥”ÊI%ñÕõ�/¯�›ÍvÌ����IEND®B`‚IMAGE 162 ./arch/connect/Director/director.163 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���JIDATxÚÕÒ1�!Àìÿ?m}Å%­Ò²£C /–Ù·@ aë C0„tAº0„%ä+Ô¨3RB„¢¢¤„hoé°ï¤‚\] O�–Ö&í£����IEND®B`‚IMAGE 164 ./arch/connect/Director/director.164 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���LIDATxÚÕÒ9 À� AÏÿ?6`ð¶‰Z/ò¥ù£T2¸ æ&¡áA‚P‚ ï"DƒsGŽ#&vÜZ£mÑ_:ÃDæÄDÒ>­-�šúÑ Ç����IEND®B`‚IMAGE 161 ./arch/connect/Director/director.165 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���IIDATxÚÕÒ1À0AæÿŸNæ¶MhaùàþXªO€j†„p[p[¡„˜Aï&ñÀü#3DvˆfˆŒCÉ-‡’‡6Á}º8�ž{Ž’:����IEND®B`‚IMAGE 152 ./arch/connect/Director/director.171 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V��ÿ|¼»ê���tRNS�@æØf���@IDATxœc` €˜ñ`r ¢ H0nì BDä Æ·@‚΋AdÁêÀ:Àz!¦€Í› ¶;��îaÝxÕÃl����IEND®B`‚IMAGE 152 ./arch/connect/Director/director.172 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V��ÿ|¼»ê���tRNS�@æØf���@IDATxœc` €˜q`² "H0¾ì –4ˆ¨Œ·Ûm ,‘e‡ë�ë…˜6l2Øì��øßIx?X ����IEND®B`‚IMAGE 152 ./arch/connect/Director/director.173 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V��ÿ|¼»ê���tRNS�@æØf���@IDATxœc` €˜ñ`±¤AD5`¼ $Ø@„ˆ(ŒÛ€û6 ,‘«ë�ë…˜Â7lv��Þ²ç:™65����IEND®B`‚IMAGE 170 ./arch/connect/Director/director.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���RIDATxÚÕŽ1 €@Ä’ÿZ A¹ v:Å4 ;Ëo¢)”â8yB·F |jÿ§“¥pUŒ,ÞõâSæÈS¹s}=bp(Nq08Å¡8'9Ågäƒ9�K]�¢qj ����IEND®B`‚IMAGE 167 ./arch/connect/Director/director.182 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���OIDATxÚÕα À@ Ã@rÿ¥Sü ƒm¢öËü&Z…¬¨…²®xhŒ¸¿K9¢ÌøvuYß>á”C9†“N9ŽáPÎôÙø`A7�›LÜ6\����IEND®B`‚IMAGE 171 ./arch/connect/Director/director.183 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���SIDATxÚÕÎ1 �1BQÿý/$°°Ñ6±˜æ Žž Ôôm#WâÆ¾udª|ùÝ¿C™ÞEÇÈÙ¨®ìÅEt§¹š›³+»Ó\ØKãÂ,<í�–0£Q¾����IEND®B`‚IMAGE 167 ./arch/connect/Director/director.184 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���OIDATxÚÕŽ!�AÃÈÿ?}¢Ec÷"0é´Ìo� €%¤m‰.‘øÖ†ŽÀzh#÷»Q{Ž‘ö.H‰4?ÍóƒøQ?ÍÄg£Â<È?á�šØ#p|����IEND®B`‚IMAGE 172 ./arch/connect/Director/director.185 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ÿ|¼»ê���tRNS�@æØf���TIDATxÚÕ’± � Bõÿ:ã†#%ZÊÁåÉ)¾)Ât…`¸2©‹,NÚ3WDfK¶sÅË|IŸ[¨ì¸„#r4îJÒsî”8Äo>Ÿå*yPD±�žÊ¶“Ã����IEND®B`‚IMAGE 193 ./arch/inorganic/dirt.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-���°®_8���tRNS�@æØf���cIDATÓc` `‚1ø` Í(ã娒W!ó®™ײT¨¦¬Lˆj½u3@4ÇîYa !¶wËVf€¥žeÍŠ�Ëi-[ 1¨oUÚ 0£aÕ ¨^‰s88aîh ÛO�3Ü£%1C����IEND®B`‚IMAGE 260 ./arch/floor/dirtfloor.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEnOæ±@œpÏ”# oq���³IDATx^€1JQ †ÿza¥oÀC®Í¹E _Ö …µç˜J"x€DtcŒ'Ð 4²HG‡ÙE© } á`µÞT\@n[Yn-áéÔÏàá;Zdù·’ñ•Ÿ-®DècâúË> ªˆD'±ƒlâ²*ÑÑ^{Í»:»×ß jßÇrCmÆêgT8Óî5ïWlD: ÐÎe|Ùh}%+'~ u&¨hšBø@ÝùJé¤S-K����IEND®B`‚IMAGE 414 ./arch/road/dirtroad/dirtroad_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf��+IDATx^U‘±j1Dõ ³’×G:màp«+‚[%Ä|Bº½çHçÊÆt!ýù\eœ#ÄʈE0<4ÒÈL:Új ;7ú‚õXήƱ3ëëÕØ)€|SéÎ>DÛQíæå”€ÒÀÁ£-SQO“ñù£ �ÙËEÆê˜[¿…ƒ¢€Ë zÜBŒÐ€iÂêÁ°í•­*³ŽªFHÈKöX�ELò ˆk©†‡G6ðl }2¬A\*Πû�Ã̺f׬—=ª¡ÊK¥„¬Y ÆÚ±Y¾KlÑ ©Bzo M©êÍi:ïw€@æÛíþüÛG«ä´ìCrøW!‘_ô%ÑdÕ¼­“Ë@I„npô\Ú{nJä"e•Z§¯üÀÑR;\G„°����IEND®B`‚IMAGE 458 ./arch/road/dirtroad/dirtroad_05.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ>˜uP��IDAT(ÏM’1kÃ0…½žÞ) ºN6·“í¡„N.’Ñ%ÿ¢Ó9“1SçÄ…ÒvJ–®Ùú÷ê%'iüx|OwRB…l“èP¹±rŽACGûî÷³Ž"Ø;»` Ad¡Á¡:áVKK¥€ÏAúÌ@ïÕò!âež]"WÈ[ʪ“UËŽ ‡b"nø*—"ÛªœŠÔ’G8kŒí+SÎs¨E²†/С»Z6ãþÆëuS*àßýR‹Öo€E°˜9,|k_µýØKdÖ ÛÚûK䦞fÈÆD'òÂùÈ¢›ërˆ¡;(˜ M/â·aýKO• ­€²Bô†/ä‰ó¤„98þkXÂ?¥¹<¨G…����IEND®B`‚IMAGE 189 ./arch/road/dirtroad/dirtroad_05.211 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE�c�ŸQ,-ŠVÒic2Í…?�1�cDÙ¤���a/{‘���tRNS�@æØf���=IDAT(Ïc`@�VA13Ed°P©1E€]X(E€¡PIU€+Q U€¡M«š�Cº�;Ã( ��wà ÷Õ¦����IEND®B`‚IMAGE 181 ./arch/road/dirtroad/dirtroad_05.311 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEc2ŸQ,-ŠVÒi�c�Í…?�1�cDÙ¤���™_Ç>���tRNS�@æØf���5IDAT(Ïc`ƒ,@hGHDW¢"…& "ˆ¦$QLUÀQÌU‰X¢`Š€’›X3²� x—m·u����IEND®B`‚IMAGE 457 ./arch/road/dirtroad/dirtroad_0A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ4 �Ži��IDAT(ÏM‘;NÃ@†·DrõÏ.Z…T³‰d™Î¦ˆ,*¤ˆŽ[Pä®à¸°(.À£âvPx½;ÝŒ>}óR*ÄW«;åɈ³.¢Â÷n<3B~AÄ}dˆ&  )§´ �£s¨d1X'@Z-Ò_½­A¼#±4•„;¾ôÀ=S–CøÍ8<dc� Ëx~œ[hm‰1aígÐÛÕfU¼¡G»)t‰g¤×iòÙ˜úåtbã,`D<aŸýað3ühÀÕm¾´H±tôÀ»m˜n`?çd30·ËJ®œþ?¦ßB©²uŒÇå–‰@%·á쬣�(°­£‚,L(6¯Qþ<hc:U����IEND®B`‚IMAGE 237 ./arch/road/dirtroad/dirtroad_0A.211 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEÙ¤ŸQ,-ŠVÒic2Í…?�1�cD���µÔ_3���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ asó9���;IDAT(ÏcJN `@bJ’È|7EÃA%q>C¢ØTAuT>ƒJ�š€+Ÿ¡€a B��:‡[%ÕÆê����IEND®B`‚IMAGE 229 ./arch/road/dirtroad/dirtroad_0A.311 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE�c�ŸQ,-ŠVÒiÍ…?�1�cDÙ¤���Ž  ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ ^X‘q���3IDAT(Ïc`ƒp¢ ¤£+E˜è„¦@ÐU 1U §q ŠÀtAÑ@æ!J�ûƒ:ë¹}Ê����IEND®B`‚IMAGE 333 ./arch/road/dirtroad/dirtroad_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���×IDATxÚ}’1n1 ÄŽ”’Yíþÿ¿)R‡È§Â•À1…yýÍÅÔ×ëÿ<m8|m ”aì4Ù@ùû<+ïÁ d‹¸&†R 8 pødÅŠ»&Ѐ™ÊiÀsDˆB4Ïfñ]´JC­™‚kÄ„&ÐëTDY nÅ„>i†¬“¤áC€Ö…)ê°®c�B@AyöNôÉB»¦&,&¢c}¸Ã­Å]f·@z„#!v‰=ÅsjõÈTÜ P‚öu.­¾Ýáß¡·ê‚†…����IEND®B`‚IMAGE 442 ./arch/road/dirtroad/dirtroad_14.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ5*pJº��IDAT(ÏU=KA†·„«ÞÙƒñ°šMq« 6b•4)lLãÿؽƒãbã`}‰î/XÅB0ÿN›ìN¦|xæë5æ¿ ’ÊUr4ç*¸^PS?'p=ä¡ {*¡ŒÃ,"°2H&oçÊàbh•1ÖÖA”å|×\ÜÁ6¢TÆTcòxËÆ¾¶hqÑR É)«ì)¬0/,Äü”Á)D@Ô4RÆû×<d�•ÛU>­Ø ÷L¸Iàƒ{Â!)r˜@tw¿</[z8¦�"“ŒÔÝæÐ˜…±I›‚BŸÀ·k øâü1,ÓÂy£•Ig”û™ÐUÖ)P ¤y—°Ä¥;ï5Ò&&����IEND®B`‚IMAGE 449 ./arch/road/dirtroad/dirtroad_18.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ4 ¶EO÷�� IDAT(ÏM‘1KÄ@…·Oõ&9&Áj6Kʵ –ÁB-QäjÀD!VÖVáŠxø¬Œø÷T0ÉL·oÞ¼™uî¯ÆŠ*ø7×]ÙRŒ0âÀÛ"\g„°3Ä7”8â¾Dˆ­!ޱ«c—¡’åÝL)Û½4†¸=2œõ\™)c¦)—Æ£÷¨˜¤nÚ´÷ qTÒ‡Ù#‡Ïy“óÐPÛIHh}hùf !šXm'€ñt;u|‰`/«!ÙÉR.ôuJÝIA¢¡˜:ꂬò<ÍD|N¥€\˜OJ})1®#Y[À]ERÀùØw0çu^XØ�Ó¥yÿ�Y®>š8Ö����IEND®B`‚IMAGE 292 ./arch/road/dirtroad/dirtroad_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf���±IDATxÚíPAÂ0 ‹™ýÿÁ˜´!qà8©íXUV-þø·ó³ŽMW­Ls²€R?ó�k­$QìÃ@® iRÕ(“xRØÝ=ª[¹®¹/rä¬ÖËb#ç33—zò8Æ”Â$à Q¶Tàýè†ÑÔ(²%Âq÷&ò\æãäzÚx¸‹†Ö¨Y\­d·ì4£­¦�´[-Ž}G¦8ó8LîouÆ¿áüÐùÛü;Œ����IEND®B`‚IMAGE 439 ./arch/road/dirtroad/dirtroad_21.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ Ñ^ â���ÿIDAT(ÏͱNÃ` „ÿ…)Ó9‘LÔɦR”10 ¨ÓH<SŸÂéð«cÄœT]XËP)U_ޤ’GèŸÎgŸMm9s#Q¾`ÛÁ}òÇxè×úvdA£ ½@ †Q E±ÅäˆyÊ Ùn} šNgð#ÿ˜ÌÚy/áÆSÊ[6ød s®C‰  L ®³h€<1ù…/»”oÅ€-˜9îFz m„$U…j¿¨åU Pºì2¨WMe±”EY¬Ÿn9�\5 †'Õæ`voö{îþµ6ÑDµÑsãË{VgEõ×1Ú74iŠáSó¶×Ñ]ª~�:F>¹áé¨v����IEND®B`‚IMAGE 437 ./arch/road/dirtroad/dirtroad_28.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ ±žíÃ���ýIDAT(ÏͽjÃ@„¯I•jV‚pµkƒP©¤0ÂÕ%<A*?ÅÊÅáREH-1&UܤM ƒŒ_.:ÿ?B¦›ác`ƹ¯iµ;ÙÛM»B›e8úÝëG^çe}ð›·ÆDSÕV|c`fc³}°¸nA ¤Œþ¦­-‘ª¬Æ 1èx”ÍE@±J+!ÉT¡±ôW` `3fNlÈ3“OPúʹF ‚<‚†í¡§Œ×lðéæÞaDâŸÒI7r/Ô£Áö8KÌSaÈN»)(Ê5ç_B¿À`gÀ¡UÞ]žóÐïåýpô@_üyõ-3¾j胑Í'Wþ 9>±Öâd����IEND®B`‚IMAGE 322 ./arch/road/dirtroad/dirtroad_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���ÌIDATxÚí’QjD!·ztÛŽ÷¿oV^’GV?r€(…=6>n&©ã±3M¡ÐO%57|ºa�”®mo@A1ø<Ê( Óú<ãY(Åšr§c ¹dÎB"P£÷CJ Xpż”7©ƒ0ÐÖ†ù=fGK´–¶*Š £Å[™IÆ…ßI(HmGö•Om/ÅòÏÇx­Çn,ŒBlÂJùv¼†Ü9úÀ–”­‡»±<5Êw'Fç>Ÿ²æœþÆ'Bg¿Rò4����IEND®B`‚IMAGE 333 ./arch/road/dirtroad/dirtroad_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���×IDATxÚ}’1n1 ÄŽ”’Yíþÿ¿)R‡È§Â•À1…yýÍÅÔ×ëÿ<m8|m ”aì4Ù@ùû<+ïÁ d‹¸&†R 8 pødÅŠ»&Ѐ™ÊiÀsDˆB4Ïfñ]´JC­™‚kÄ„&ÐëTDY nÅ„>i†¬“¤áC€Ö…)ê°®c�B@AyöNôÉB»¦&,&¢c}¸Ã­Å]f·@z„#!v‰=ÅsjõÈTÜ P‚öu.­¾Ýáß¡·ê‚†…����IEND®B`‚IMAGE 437 ./arch/road/dirtroad/dirtroad_41.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ (Òv{���ýIDAT(ÏU?KAGÓÂU¿¹„Éb5{#åÚ)ÑÎÞÚ0KàL§µÕÅâ8òVñøõ,$»“-oÞÎL0eº›˜ç……O„¾ÃÜ€û@ ¥#YlüM¥¯DƒQô« "HÎ6Žo•4óÙ‰#ÑÚIñ.G*ÙéÛYùÁ/³3([È Ï©ò ÑrÀ,‚ÇV0H?ÿ®ë–<&P€€šùžU!}Êà{˲¢eŽH¨W=™È!®2¸F9"Ž/ \µ¨ÃÅ5ËýÆ ø1Ö\1©1öú(ÆP†Ä1Ð í‚]¬À#6RÅ‹=zßÓô¸ ?Ó¼#����IEND®B`‚IMAGE 446 ./arch/road/dirtroad/dirtroad_42.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ-"—��IDAT(ÏM?KÃ`Ƴ8ez.‘³tº8dpÊ‹ Å)éЩ‹ßãÞ(!í¤cRúœì ˜o§”&ïÝv¿ç¹?QêM´„éc%¥Ì-êYb„`I>‚pÊ^–$µ&— à‹C$AÚLbàV»jì;Ï$Õó‹ð˲¥Å÷EØP†#ˆîFÇ;7„tâ š‚ 7㌫”n—2Ñ*IýýnÚjP& zf!æu¸´—éêÑœ®Ú#»Âà´àr„}¯³CØâly<™ÿ¦ṯ ¤NÈ„¶>Ñ<YÛs÷i¦xÆÎ )MÆÿ†™rò•äîÕ†¢—þLü_-?ƒ­å~����IEND®B`‚IMAGE 333 ./arch/road/dirtroad/dirtroad_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���×IDATxÚ}’1n1 ÄŽ”’Yíþÿ¿)R‡È§Â•À1…yýÍÅÔ×ëÿ<m8|m ”aì4Ù@ùû<+ïÁ d‹¸&†R 8 pødÅŠ»&Ѐ™ÊiÀsDˆB4Ïfñ]´JC­™‚kÄ„&ÐëTDY nÅ„>i†¬“¤áC€Ö…)ê°®c�B@AyöNôÉB»¦&,&¢c}¸Ã­Å]f·@z„#!v‰=ÅsjõÈTÜ P‚öu.­¾Ýáß¡·ê‚†…����IEND®B`‚IMAGE 312 ./arch/road/dirtroad/dirtroad_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���ÂIDATxÚí‘AŽ! ÄÖU0E¦ÿÿßíæ4Š˜Ó^×m"~þù;׼ϵ— ðK2Òið #.ƒ9x2€ ¡ë«Kb¡Bô ‚Èã ÔüËXûú ·`Y…jKR &$lÞ´ XÚPÕWDÀ…¾Å$�;à¡J†ÍºÖuµ7eÌ-ËC…†:üÒ*a±©y°Þ””yÀ”¸ý)ð(AðX‡`UDØó<$„Ä:T>'ü*Ww‹â����IEND®B`‚IMAGE 377 ./arch/road/dirtroad/dirtroad_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf��IDATxÚu“ArÄ0Ó ›1öÿÿ›JùUV…NS­Á×ß¹ ˜š‚âøú<×@[#¯€2Œ&;ÂPÞ×µ%à98¼v„‰¡”ð@Pœx0ÙD±â¾L 3•'¼^׋ ÄhnὊ@#`@ß @¤€bù‹p Cæ$·v8¥)£p§®$йsüìCG¨Y=�„†fª-äc€@HHÿ7)­‘F] d‚ !E5Å:Q&¡Â00YM(8Çõ×µb@BF»¦&ð40¢cÁã^œ¥Ýºß‹A¡ D$Sl 4§5¦Üî'œ‡*š.uéÃÌp<ö(����IEND®B`‚IMAGE 292 ./arch/road/dirtroad/dirtroad_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf���±IDATxÚíPAÂ0 ‹™ýÿÁ˜´!qà8©íXUV-þø·ó³ŽMW­Ls²€R?ó�k­$QìÃ@® iRÕ(“xRØÝ=ª[¹®¹/rä¬ÖËb#ç33—zò8Æ”Â$à Q¶Tàýè†ÑÔ(²%Âq÷&ò\æãäzÚx¸‹†Ö¨Y\­d·ì4£­¦�´[-Ž}G¦8ó8LîouÆ¿áüÐùÛü;Œ����IEND®B`‚IMAGE 436 ./arch/road/dirtroad/dirtroad_82.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ"µ;zª���üIDAT(ÏÍ1jÃPD¯jVVJªÝ„ÝÉ ¸–ÉÒ>AÊUŠÓ¥V%©0Æ—1.‚/IqlÁÓÍcfœ»h¿æ…Œ|À6¯ÇàÇnäa‚»Õ—Â_À· 4ƨŒTŠ3ØaB‹sGƒkñL'¿Ý-€>ºÒC¯rŸ=za|:Æ*ó`›Z%~†Ö)ˆ÷T Sä\ãC¤^ì‰PhpœšÙœ”A·]¿*T+ÚÈpš­++û5&a6”r?÷ $6Aœ°62¿3f਀ƪ™G¯Ë¿I˜7ùÛËñt Uc/ÛÿßDz×Á]½~wO<™[4ÊE����IEND®B`‚IMAGE 435 ./arch/road/dirtroad/dirtroad_84.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTE���ŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���æ®Ô���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ¯ ¶���ûIDAT(ÏÍнjÃP à잎|A¾í$µ`’ÍM!³C K¡'è(¸M·Îžl!ä%B†’—«íü8Ð3~H¤Ñè¿æXv9 €ªòØøÅÏÒ¸0nŠ·ãÔ«æJœ¼/NÀlÌÁ œœ¶b‚ |jÀ¶‡ãi7”qê_;P±®ÆVö¥ ÕŠ„6¢èZ83³ƒî[h\ŒÌ‰½B?¢m‡à‘0%í V¹ÛÄ*qOíÈ¡K¹ÏŸ‰0>Ïlwó %Ü寍�×☮oØaCƒ\!b02 ç¾U D«/JÛüÚLå"¶Y} £ýšçòz=Q»·"I����IEND®B`‚IMAGE 334 ./arch/road/dirtroad/dirtroad_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���ØIDATxÚí‘KvÄ ]-cÑæþ÷åL&þÍ*ÛÒÃ~4Ó/‡£æ>ÝF„,€ö$ YqRŽA7‚´˜?9D-‡S<Õ0:3sèÉ¡ñBÈ}<רV¦Ç}k°7€8 ÚØG{ûW%ìäwäëûèH• `‰v¬‘$˜¡²¦ òÔ#³ÖŸ#\‘Ž“ ¬ ¨ ¡ú_Ž!,R¾Þ8ŒDIøü$(b¨ýWAnñ¾‹ Œ6’Öûý•HUë‹—VæwŒÁô飊1ýó7¾�¥N]¿””����IEND®B`‚IMAGE 292 ./arch/road/dirtroad/dirtroad_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf���±IDATxÚíPAÂ0 ‹™ýÿÁ˜´!qà8©íXUV-þø·ó³ŽMW­Ls²€R?ó�k­$QìÃ@® iRÕ(“xRØÝ=ª[¹®¹/rä¬ÖËb#ç33—zò8Æ”Â$à Q¶Tàýè†ÑÔ(²%Âq÷&ò\æãäzÚx¸‹†Ö¨Y\­d·ì4£­¦�´[-Ž}G¦8ó8LîouÆ¿áüÐùÛü;Œ����IEND®B`‚IMAGE 361 ./arch/road/dirtroad/dirtroad_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf���öIDATxÚíQA„0#¡KÑÿ?x›t/=ì6Ò`(«ñâÊó­¿ fl|N Hš£ê4ab!¹é>N�¯»€:YÌ.’Dç $ØÂù%J=Y<€guÖ|ËŸçšØ -žrÀ¨M% ù”†¹ÅÁÔ}B™¤öh+É@ºÓÉYdN(‡w²PýˆÚžˆdk¬c/‹½¢; k¶@¡’V3�ŽNÝÚ|׫¥).ú!o% ŸÎ žyA™”pXE›“,21ü/d—\Øßa¤N_`>ã’bšhE·ß٢͛÷¼WL'g‡µ)þø _æï¨‰iö|����IEND®B`‚IMAGE 331 ./arch/road/dirtroad/dirtroad_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�cDÙ¤���_Àe���tRNS�@æØf���ÕIDATxÚí‘QnÄ Cû<Pãpÿû6›|d“²RPFBz2|ýëêóœ�§ÆÜµ¤ éeú2Á2TªLïù} ŒŒH(æÐ£J¡@* Âªg• U,Ô²[¡¾Ç#¡$Z v§št‹`Û§›C6î '‰{Eaª9O·×€ òÌ1æ>á” 0pq=¶¬ j `G b@NÆè¡A!!õ¹H˜˜MRk¥åÏ"�J&¨õ%à˜ÒkóX)¡ úpÅ�ŒÉWÉ8 ݆ø€����IEND®B`‚IMAGE 388 ./arch/road/dirtroad/dirtroad_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf��IDATxÚu’nÅ0 B÷À£t÷?ð¶ö¥›Z§q¥(LøXõ¦®Álë|](Œ\¡òyw+T“!w€u¶¯[´5;Š­Q°Dx@PàAä 9º@©³­ãÏ÷:§�ý¥à¨œm¢B¤,‘ÑÈ�Ff¤0àE‚9+ǧ EHØqˆ_\ Áª$ôþ)rÅBh-@=ôí"Ì š¤ Q ‹âô0ÐÀ²ú"’ý·ÅÊ{ …Py <|WÆÁün‘Í?«K›–&/ s}¬ígm+€}ŠÜ æ>0Ò¸ÈSh‘á!QÖn‰]~H5‚“âQä¸>¬Ønæ|ÍX±‡“¢O±Æ’þøð FÝòa6šß����IEND®B`‚IMAGE 367 ./arch/road/dirtroad/dirtroad_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf���üIDATxÚíQQ®!³ÀTÖûøU0™lâÇà1bÇFhƒã?~Œg}}sMÁ|™ â 'nÐÞü€…9€ƒv;©´"¸ðô]뽎ÄÇÁ$ÓÙHá©’„LY+½~S:%‘"ŽhUHКÒ6”½º©T)LÅÊCyê¾½N‘c }º±7j5ŠûÚñÙ¾Šhƒ‰3Â+½Å#Ë œ¹%Èd¦Æ3p¢)æXsÎUßP‘†fÖZãuÆj.¿T-Ué*æåÂLZÈz½ç½ƒÍaÎy»[?{¢÷’ øÝtÃÖ¹wx ÈšC¬«D€¦øšÃnSß™*����IEND®B`‚IMAGE 413 ./arch/road/dirtroad/dirtroad_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VŸQ,-ŠVÒic2Í…?�1�cDÙ¤���žY)���tRNS�@æØf��*IDATx^U‘±nò@„ïfÏ$Ýn"ËyWDn R"ÝžbÑQÑùˆ,ZRý-E›Dá˜Õ6£O³Ò¬¹èhgµ·Só§3æ5W“«q šž›·«±†e„ûŒ ÿÔãõjl¢Öœú�òÐ&òCœf”»Ÿ+_£Ö�“—A€Â¹ÈN´�ÔŇ%O‚†QBŒÔëà‡7εzgµ]ö8(TMHB,ð`1û�â ±.•ÁH;$ eF—l lŒáÃEBõ°t2¬ªs¢NXüœ9!‹± õZ2PzµÑ Û·â²C«Ý~su¤HÓ÷ÓvûÛiT*žò‚d±ë‘DÄŒœŸâd•µN â†ˆ‹êæ·›¦­ÿ…œ�Õ*7TX/Ä7ÁûSH›:¯t����IEND®B`‚IMAGE 355 ./arch/monster/giant/djinn/djinn.x31 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE��������ÿ�ÿÿ¿¿¿Òiÿ��ÿ×�ÿÿ�ÿÿÿ¢õD ���tRNS�@æØf���óIDATxÚí;Ã0 CÍF–ãû_¸¢…¢‹¨.º”‰½ð™úŒ¿~$„Zÿ^÷B뻯†€Ýîf m…µL �¯fˆ W7ý@¨]Äœ³í�ׄ]�t‡ˆá(‘: õU�þ:!|Ë×u˜y˜ Zdü©P÷HT21f2ô Dn’r÷íÔ P žþV ÛηU‚Yü$†L MHù$xc ¬6jÁ(†@]]j œSc£°Hz¨·@B/icˆˆ³!"5€p‡ÍžCoÛªAɼøjÐÓèQ±ÙEbµ` ›vÃ`üõu=ƒ¯6#+����IEND®B`‚IMAGE 348 ./arch/monster/giant/djinn/djinn.x32 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE��������ÿ�ÿÿ¿¿¿Òiÿ��ÿ×�ÿÿ�ÿÿÿ¢õD ���tRNS�@æØf���ìIDATxÚí“ÑªÄ CMµóÿ?|3wŸÌ,û¸°©Šp¢HÇO_+H­ÿìg£õ×ÚM|Ö"7Ú†½éÒFÓK†UúoF£û¾Ûàº/ª¶@%˜+üK(Ídr¦üy&”Ÿž Höœ5ÌÂçLÿT!¯(ÕàŸJbUµÖ¯ÖE¬? �’bä* §�$h�Á ©ÕT050| ÂÆgƒ&PðÐ@¸+¨ƒ¤V§r¶!ù¤ÿ3 !ß#€ (qìaÙÌ­¡_G8#ueì{EÈÖðWÁÚûˆú?TŒŸÞéL»®Èø¼ˆ����IEND®B`‚IMAGE 352 ./arch/monster/giant/djinn/djinn.x71 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE��������ÿ�ÿÿ¿¿¿Òiÿ��ÿ×�ÿÿ�ÿÿÿ¢õD ���tRNS�@æØf���ðIDATxÚíÁnÄ Cqb üÿ×u·R…¹U½¬äð{Bûè¿éÈç3œøCŽÌÉ1fç<v�ð£eÇ­ež v´,ÜÒÑ€Þ{¦j ú.ÓX=•¿´€øõv„„KŽÚ@H`(Ç>A—϶Õ¡mœ:è¯óoØQT:ÜdÂÖ°–NàxRÂÂ(a¥„µX+Î`J62ð‚‹)ªÐ2ðçôÙÒ2,+<£:‚«äÛq dÕä«àwKð‹`0–[À&~wÿX(m*Þ¢k›íXíš�[‡‘'XDtRŠ~ôGúO*¹����IEND®B`‚IMAGE 345 ./arch/monster/giant/djinn/djinn.x72 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE��������ÿ�ÿÿ¿¿¿Òiÿ��ÿ×�ÿÿ�ÿÿÿ¢õD ���tRNS�@æØf���éIDATxÚí”˃0ãÄ$ìÿÿp½[µ§8œ+u€\<û@H´?? Ä1_÷ºqÊל2|NÎyÓ \ë8X@ÍCÚIH£y0ÄQÀu]‡ƒã�LNå̬þ°m‘õýk˜]FO0˜Bf‡Þ{>Û!HCQÆ²Ü ÅIw[R¡ÿ^Èœ˜s6*o «!Í0 Ò „²�Âî ’:a…†ÆÄ·`–‡XõAgBa 2…Nû"@¼ Þ+Ø÷ÔQƒvÝ•—�¶ÕKÙ7(@æK)­ñfEP¹nmé`68ÿ?LüL´?O¼�Lý® L¤È����IEND®B`‚IMAGE 367 ./arch/monster/giant/djinn/djinn_magenta.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���$PLTE�����5 Šÿ��uS¹‡iÄ¿¿¿ËËËãããÿÿÿ���û Á���tRNS�@æØf���ùIDATxÚíÁrà C!/Fÿÿ¿•`<¹¬è¥3½D6öA­ |õOuôïqýÞÇ@ܽG 'Œ Æ¡g­o>µXÉÿ è{µÖ•Z½ÞüûKˆ9Â#"®¡ô"Q³�9z_yýkïΪ²¹YK ¦¢âׄ¼ÃF8é2ÇÜŒ|±7)õÞg—Š�˜$$L—0c=Ó%DðQl‚lAΡ/ Ò ´µ\…"�ùµô�5c"0Od{ÈoA„¿lÅD¬’( [ð#‚úØY—)æá³ƒ®EeÄT‹åB@îc[å«?× ¶w–r����IEND®B`‚IMAGE 360 ./arch/monster/giant/djinn/djinn_magenta.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���$PLTE�����5 Šÿ��uS¹‡iÄ¿¿¿ËËËãããÿÿÿ���û Á���tRNS�@æØf���òIDATxÚíÁŽ! C¡¤ÿÿÿ® ªTU˜žWª!3?œ@ùéß ÔÑ¿ûÝqô#ú@ޙǽ§:¨~˜³Ö'W-Vò¿�}¯ÖÚ! r„V¯'ÿ¾Ac 1W˜Zˆ ˜z¨»�9Ú}ýkÞ'Teó°J fDÅÏûÂN—¹æbäpˆ}I)"FHÅ/�ˆå—0r®á2¹E› [óEè Ó¶Êú³lMé:³Ç�L€â‰Ðö¯ Â?–ítŸ€º%Ó;¿O¸Kb^<6s ȃ¢vÄÐ Û ¹Ë>0(?}è� iµm•×����IEND®B`‚IMAGE 365 ./arch/monster/giant/djinn/djinn_magenta.x21 ‰PNG  ��� IHDR��� ���@���LP…œ���$PLTE����5 Šÿ��uS¹‡iÄ¿¿¿ËËËãããÿÿÿ����)éê���tRNS�@æØf���÷IDATxÚíÁŽÃ C $C0ÿÿ¿kÓmWªÆÜª½Ô€rðÃR¾ú'Úúýî7v~o„÷#Z»ÃÑû¶è ºbΓk– ¢x8÷À¬µz— ׬ç4SÈfAu%²ŸJ#&ýãE˜„ƒ„6#LÂ#å"‘'0âÐIKæêà–í:.Ýöϱ\jó'-5iðO�$$ —0F¬…b$7¢pç’IÄ%€\òmt=tRwƒGò€fd‡0V¹Ì—@[5þWÄo‹ ÐçȦJ' ¼wÿ!A%¯=3ÍV,÷š�)!KŒÜ"FINXîWŸÒt  ug:_o����IEND®B`‚IMAGE 360 ./arch/monster/giant/djinn/djinn_magenta.x22 ‰PNG  ��� IHDR��� ���@���LP…œ���$PLTE�����5 Šÿ��uS¹‡iÄ¿¿¿ËËËãããÿÿÿ���û Á���tRNS�@æØf���òIDATxÚí”Qà ƒ¡Ð†&ÿÿÿžÍ®§iŠó~Ò ¼Ô_íik_ý[Túë^wTþš„öÍæ¼M¶VÙ±ZzˆÞO¬Þ*€DÓpÖ@ch WgSÐFÁP%´¥þñGˆ„7"DÂ+å‘' âàIKúîÀ¦­:.¾­?ƒÄv¡â&•MMÊq„pT¸Jp·½¢ Ñ5kعhñXô ¶ñhÀq( pFÙỜþuÚ®ÑWa¿-2á…D™�5+þ£¬‰öaïsf·Ïºžf3{O)A‹xî!Ã$¥ØîW¹~�•Ê i Úê����IEND®B`‚IMAGE 4117 ./arch/monster/giant/djinn/djinn_magenta_big.x11 ‰PNG  ��� IHDR���`���À���ÌZ–ä��ôPLTE<%n � !(�- 2�� ( $ !9�, >) Q4 ];Z��0"PB b��"?-, u&=#<o�E'1s)L)=4 +C5 ‰€�1S-%*L6f2!M5pW5!T‰2%V4%\¡�¦��@‡C•<([8*\ ?'b:*b=)hE#‡?.fE#˜F-iC0dÇ�C/o<>;c(SL0rH5cG3sÒ�G5nI2y@B?Ù�¡2 æ��V,¡M;vƒ.,R6Œñ��V6š‚33W5§V;‹U?V>‡Z>Žâ^B“@C\Dšb>«Ø\G–UWTcCœ·*NbI“üƒ<‹pQRfIšhH¡cK¡gF³[]Z½+[Ò*)eJ¨hM«|TR…F†pK­qJ´mRyYZoO¶tO±nU­tR­pW¨wR´sT»tW·vV¾�¶�•NŸ~Y¼npm{^¿ƒjm^¹aía`†eÁy{x’pq„iÃÅopða^Ž”–“£¥¢ÿƒ‚磡õº»ÿ¹·ÍÏÌàâßÿÕ×ãåâèêçíïìñóïöøõúüùtusÒÔÑ��XT[˺»ÄÆÃa]c,-+(&*½¿¼À¿†ˆ†130èca໼ÇÉÆ�ÙÈÈæmn564šœšÿ��«­ªÓ«¬�·¹¶º¼¹,(8‹ŒŠEFDÙopù!PFb þ,, ¡ž* J§©¦897ýÚ£¤³µ²}|5(efd"$"欭ú�ß•–Ó›œçÁÂéjli õ05ÖØÕÝßÜœ�ùDD�s�&(%  ‚„O8MOMØ•”UB}ÉËÈ2&M¯±®ÓYZN9zKÿCðppÚÜÙüno̯®¢––ëVX`IŒ 4>/\ Ù»¹ñÅgJ���tRNS�@æØf�� ÏIDATx^ìÓEŽd1 àºÿ9Îcf(flfd†ÍT¯æiiùyçwäÎÿHÓ4MÓ4MÓ4 ÿóL÷?s{6‹÷žª-:ÊaA`e¬V–r«:öm¨Ó0èkÆŒ„ ÕS6ùÆ»Xìv;7¨ˆ¸Uú~ɡ͙{9ß¿ôÝzl)Æ1TBEt>ŸÏÏ£Â3ªñ©ÄXev Â9ɲƒ¾³ð¼`ùðBÝ”ð°ŠÚ9óì ½?bOmq"e(‡b“£àÒýÔϲ¬ïÔ4ëåxcc¬*ÏúìÞ_F'×½Â4Mʼ bŒ%ˆÁ.Ðñâ>Š¢ÞKj2d2Zð%Hg€.„‚?Çnñ•R†(òØTYìÇÀ‘Ó¼®–ùtšÐw†I“–oU¨lÀ  œr�|¯]š ø²1Ô ïÊ­|:Bv!1,"áª]6<iI˜¦ggiZ¦¿›A›mYúÊ–YNâ»›õÛÉúfýsòk0àÝÐ/ËŽ2RÊðêãÕãã¾L>üxÕÈð®ô;êü¥ÅŒb›6Ð8NFFH” Åda¬\Âhi; #ă:Y[‹â6*k:Êpœ†„*k6t8wiæ´µãÃ2‰"õ ·Š—í­~˜‚”'ºHhB¨(§R¤J•òÀz/÷9Ýžßßv¤øáûéûÿ?Ž¢:óüïÏç(ø âé £R5(z”jñ¢8†ã(N³iÂV­>Ò`u7˜ËåkÆÙ|:Ø¥€t(]A&lµVà9&h«ê ¨*¶a†màà(òìn{tµ¨+˜Î§ã1&#ðB:hÓ·¼j‘H.,pœ\6Žu@g‚ýôµDâúõÄõðÕæª@oüÎóçO÷ج†ÿàDÿ®Ž6W*{+½>¿88Øâø¡ƒ‡Ý[[n·Óª_¾ªªHèZ"ÜÿçCìžÈö6ÝôÚ”]éQß`xmp ³‰ðàñƒÆ®Ë¹’,0-¨s�öÚj5w o0 áþ§?óE‹²”¡G¶¶j5Go¡±݈1y�ô_¼J§ ’( ‹óÛ‘HÈÛù#­(­á Ïó‚ÀÝ~^€]Äñ¼$—Ë’˜%\æ�ñ:ˆŒ N„ÉÛ"/Œå²T(ЪQ®®N"†X¨õ‰Û\&ŠQ”ÄüÒüf$2†·”NFÔA¶Öx•yž„‚\Z)•òM§¢}‰ÖH* ¥„v b›Ô¶‹  ¡$'BE¹Ù«hO˜ÌBM8 öûb»‹Š"/A›}Šæ„[äR&FEÙ Í$©h2€<yl”â! ¹XÜ„´'œeC¨Ÿ—x¦û)¼b)ÍbD£P¥(šÚ:P7â"˜¤ÇÜM0¼(&ý‚§Á+6`ßÙ©½QQ–Ë%™#{-.w"ƒ[8ºqÜŒ’ �9mF å%©$KYë’ Ôƒ‘y¦À |2�€4äOÏO»m�$I† ´ �†ö˜k›¹¢ c*ÆQ:Pç©X\ž@ ^è`Ьޖæ’D·gz{žž£(*„÷ôø¥èííio‡-¬hš"¥å!étž‰†È öÖãA=€ pÔòa>œÅ3RA–5N‘¢¸H–ãDËR¨ÍhÜ1H –ôÛª¬Íæ9Q*—‹Rtj80:Æ@´|œè±Û»Kñ4BD·ÓÙ‡Øv,þ¨ ÀŸÒÒ9´�L-7ËC¢Yjll,„vC 4@äô„ÛlÁ�öÈò-Ò˜´�”J¥¯©.† DZY–B-u@øãÙ¥bn¤eöÇ`DË%)Ó쫼V´�@]>:΀IÇÃ8õ ön˜¢Ø|nS°g7€ª¢´ ¬-÷pRuIx6§`ŠpÔçsZÌØœÜVqº6ŠÆ—R©»š™Ý÷K&Ï2,Ø-f‹ÑX7äʲ$Jm€öe­TmUcÚÅŒ¹íˆÝîB¶&rr¹ //o_v�@£ªÕªÉéÆÞz}^/IC+\&9F€†'"sË”›~ÛkÒPs0˜êVÈE2‚JȲ Ã,.//I¢\^ÞÜ2U*U퀪jÓ#E•ÕCÇ@ñXš)ÈRyeñÖ­[¹¶? =~ýš5 äņé%I––æHÌ7þì–×`¨˜¬V+\½——˰ š5øbj?ckŸªýû÷í;zòäÑ?½ô·»wï~wéSõî=�¿ëÂ{÷n\¸òí_@W†Ô[Gþ´GMNŽOŽƒî<ùÏ¿žÜŸ}ùòæìlûÞè}�“Sð‡æúý‡ï¯?Vµ±ñxCýœÒ0pö‹ñ�üãÀFû͌Ӱÿ‘sSï:xO3ç>ª>êðó'§†F§f¯¿yðàÍÓÿ6f¦ÆÏžyñ¢sÀêêß œI½zóæUê`üÜÐ×]]í°¶öë§À¥Tj}=•zÏŸcÿïµµÎ?þó·Õ_N Ý|ú,õ,õ.õH=›ýêÌOÿm× ZG®8^÷ùþ@sœÑ÷ùs »d'K–˜)­\ë©ZUÊâØ¸Eª.›Æ î… ÒeYzhã@ÔhÏ)¹s 3i)7ÿ Q?Þ«÷J¿ý–7ÃιoÄ·øçwß===ýþÓÓiýéé_üVˆÔ¹á‚ÝN¦•úû/¿üüÃþôɯ?ŸÖêän7\°Z•f´ LÛÇEÍlðØòÙl˜hŒ»èáB4ˆhü£6M;ýÀƒ0(ö9Žs]µX>2¶bM1– ç ÀÃYËÆ ª ÇÞd-é8VË0äK½ Âp®þ”ê÷(®yX/b´¼Á‚õõÞ4¼^ê·æ€"Æ iå"Vl8«<rKÄZ¡ ‚ZÖk Ÿ8MEU \>¼•Îl £©)&f·iÚiÝð»(߉Ì) ¦�ª4ŠÒEc¢Mªšì?6àξÉKÃ")]´°šŒL±h\9Ù[î-ï÷ (Kq j"Ð 5ÜÞI›}”¢3b÷760‚45Ëpªœ! ¡i 㶪ئ2*6²àaP£°¤”E-´¢¸ ÷zø¿,Ji…%  H¦0R|�¨ x·ës?(EJ‘²Ö’¢B)…&¬Óëk €»2ïC9M AçŒhj¸ ÙÕajG”×´ä6ÒU¤ À˜Iå½`Ú§h°àêjc¸w›±)¯´ÚÀ àSô~x"›jí·�”òe© C^ÈÈËÁcް&C[C“òx0óµjR¹;̇ €C÷9 ý–°½Áê6ðoc_çƒõ,h�}Â’sÀˆõÜÃõÁ|oCƒuSAK�ZPÿ1éæ"aϼ<†y¾1á, ‘^o j‚St»Ãê¿~‘á­áA2)]Í[€sÞ�°™Ü]1ÏИ¤ºm[íØ¦CË[Þøo5�åØ8D@áUŠúÎj¼? }d#QAg2Æ�âáóNQuãæÒLm'å÷8¾[8ë¹ûìó_=^ˆÄ¯üAЀˆxž9XHy™ ‡Ò4ž^£ÀNÜŒ!8U‘J™4€"P (Àÿ‚ß¾cl+bë׊„Úõc±K`Œ¹e (X[ÙΘ§‡#¹wG[XôUº2©R¾eƒyŽ7™”‚”:ö76gLi#Êäîn2Kp—DéÑ’x/0‹’«|¤/x-Sg¬RDhj<šTFoü[,m¾±t € ÊÈÝõ}¥ÔW úFã@4H¿_OÖ_t¾â¾Ž¼4!‡"ÔuÝ:sB~¼ý3H{ö2x„}(Evk¶…úBQ¬wÉ Ó0œÍ‚š”ÒZ)ûÙ6¾™ç/žÔÝxrÀHQ–¾ùŒ yù$p^¦„š±XÐ[‘œvš÷<O*¾ù;|¦/¿ZoL—1Ò 8&³_^7¯}KOV‘Øî^,`¹/4Íb´õé•ß·Û뉬’2ºÏÒý…”â¯óA#j‘èÐòÀÃëÞÿÆeß¹?ÝfvkÜýC2pR0ú“{Á±Ø¾[¿ê““et›Qa¿Ù ¼òkiÈtæa—fÇ÷ûhï““J!Ejªt7gÉ6ÒYI²¿-2Ó™ãQD—ëu±‘¸éã0ònuUa­-Ìýzõë˜óˆùÜ9™”òc—U]*äEyÙO„ŽÍe sL£]$ÒS9N¾ŠÌV®.{·þ¿‘Éî/W‘;ŠõóþgΜ9sæÌ™3gΜù7ÝóûH¾Z����IEND®B`‚IMAGE 4058 ./arch/monster/giant/djinn/djinn_magenta_big.x12 ‰PNG  ��� IHDR���`���À���ÌZ–ä��ñPLTE1S � !(�- 2�� ( $ !9�, >) Q4 ];Z��0"PB b��"?-, u&=#<o�E'1s)L)=4 +C5 ‰€�-%*L6f2!M5pW5!T‰2%V4%\¡�¦��@‡C•<([8*\ ?'b:*b=)hE#‡?.fE#˜F-iC0dÇ�C/o<>;c(SL0rH5cG3sÒ�G5nI2y@B?Ù�¡2 æ��V,¡M;vƒ.,R6Œñ��V6š‚33W5§V;‹U?V>‡Z>Žâ^B“@C\Dšb>«Ø\G–UWTcCœ·*NbI“üƒ<‹pQRfIšhH¡cK¡gF³[]Z½+[Ò*)eJ¨hM«|TR…F†pK­qJ´mRyYZoO¶tO±nU­tR­pW¨wR´sT»tW·vV¾�¶�•NŸ~Y¼npm{^¿ƒjm^¹aía`†eÁy{x’pq„iÃÅopða^Ž”–“£¥¢ÿƒ‚磡õº»ÿ¹·ÍÏÌàâßÿÕ×ãåâèêçíïìñóïöøõúüùtusÒÔÑ��XT[˺»ÄÆÃa]c(&*,-+½¿¼À¿†ˆ†èca໼ÇÉÆ130ÙÈÈæmn564šœš�ÿ��«­ªÓ«¬�·¹¶º¼¹,(8‹ŒŠ"$"Ùopù!PFbEFDþ,, ¡ž §©¦897ýÚ£¤³µ²}|* Jefd5(欭ú�ß•–Ó›œçÁÂéjli  õ05ÖØÕÝßÜœ�ùDD�s� &(%‚„O8MOMØ•”UB}ÉËÈ ¯±®ÓYZN9zKÿCðppÚÜÙüno̯®¢––ëVX`IŒ2&M>/\ 4Ù»¹{áâ���tRNS�@æØf�� —IDATx^ìÓ5’d1 à¾ÿ5döcfhff\d†h{¢½€'ÙòW.…–¹Ôù?iš¦iš¦iš¦iþç™îæþlï=U_v”Ã’ÀÊX­, 6äNu\úP¦aÐ׌ —ª§$}ò!w±ØívnP?y§ôý‚C›3÷0r¾éºõØR:%Œc¨<„Šè|>ŸŸG…gTãS±Êì"@…s’e}gáyÁòá…º)áI!´sæÙA6zÄž>ÚâD*ÊNä&GÁ¥û©ŸeYß92¨iÖËñÆÇXUž#ôÙ½¿N®{…iš”yÄ+Jƒ\ ãÅ}E½—ÔdÈd´Y*JÎ�]ŽÝâ+¥ Q䱩²¸Œ!#§y]-óé4¡ï “&-ïªQÚ€A8å�ø^»4 ñ[e b¨>]ñt¤BbXDØU»6ixÒ; ooÃ0 ß4ƒ6!Ý4-•-³$œÄg7ÛŸëíÍö÷ú×`À‡v™¦e„öÕÇ«ÇÇ}YøñªöYZvÔùK‹Å6m®a˜ŒÒDYÈL§,ZÚ!>¥Nã@(µ(n£²¦£\§!¡Êš:h8[;–I©WHhÜUÜlw•¢£ ùº 4U¨ˆ£ å¢RÕ‹\tSKvµÏé6¸v¼×v¤XÊûè{¿ïÿGMæå·/§)x!âé³R5(z”j ñ¡8†ã(N³iÂV­>Ö`õÔ×1·Û_³ùtÈ®€t(ö 5+ð²UuTÛ�îã(òlÈ®³?Dd¥óéxŒÉ¼ÙôµW#²ɹ9Žƒ“ËÆ1;�t&8N]K$®_O\\ cî�ôÖÙ¾¾ pž={ªÃf5ü €ãÝ»:vÐ\©ì­Tôìÿô|__÷ñc>:èÙÙñx\VÝÒoªŠ„¯%"ÝŸØïðNnoÓuŸMÙ•þÃkƒs€MDúŽ}d´_Î-È3Ò0€T‚›ÄÐ:½còs‘îîóWétQEáîÌöädØ×úŠS”Æ@†çyAànEú.Dæžãx^’ËeIÌîVc‚ôDFŒ‘Hâ–È‹�ãE¹,‹ôÈÎÎêªÛÞ‚¿Z îà?7—HÜâš0Q,Š¢$æçg6&'‡ð†ÒÊ9É&@à š"¯²@"Ïs‚P”òu—vÀ^» §ó»ž"/p¢J�qišŽ±‚T*—äb½SѾ‰®’T’š®Àh–ÒìDÃIN„ Jr �¥AfÁð~_ á°`Q(J‚”6ºÍ#Ô ç31*ÊfÀ4“¤¢É<�òL<ìµYPЇ^Ë¥ÒT }„²l ÐϬãЬX*Ða³Ñ(ø/ª=èR4úW7Á$½æv‚áE1@< Y±AÇæfÍ苊²\^9Ò¥°×âö„(2´ƒÓðãf$˜œƒИËf´ Q^’dI"­»A ^œ˜œaŠœÀ'ƒ�HC¿óé™q �‚$ÉЭ�h�C{Í«¹’ c*ÆQ*Pç©T*Œ Ð^haŠ¬Î†Ÿæ’D»w|{†ž¦(*ŒwtÖ)*JÑÛÛã¾" JXÔ4EJÃKÒé< “!ì­×‹z½ Aà¨äÇü8Žg¤¢,kœ"Eq“,lj—¥P›Ñ¸i4‘`,pUY4šÍs¢T.—¤"éÒpbtŒá û8Ñáp´#–â]í.WbÛ´¢‚X„|æ§iÌ©`jxÈX:𥆆†Âh;”àEƒIŽxÌ�,Ï’Ĥ T*]uucÈp›e)ÔRD ž/å.6̘$Á*“2õ®ÊkE �d÷ÓqB8Æ©q´ÃÅfr˜º žÝT amx’jJ¢À³É0$S„£~¿ËbƦå¦JãŠÆ‡)ø\¥æ®gv¿À2y–aÙxÐa1[ŒÆšùb®,K¢Ôh߬•ª ££ªbLs¢˜!q8ÜÈÎHN.åBaû²�šŸÀ«&—{ëóû|$ ¥p™ä™œ.HPnüm§I;@íƒÁT³š@n’TB–eæn¡0/‰r¹°±c‚P퀪ÓcE•ÕKÇ@ñXš)ÊRyñîììl®™H_¿&ç*òaô¼$KóÓ$æ¿ùìÚë@0TLV«®ÎË…2lõUxcj®±–µOU[Û¾}‡Oœ8ü£—¾¹wïÞ——Žªw?0èèùCçnÜ¿ã\Ï•/¾]éWoúpÝ~öÛ/ÏnOM½zusjªyop>€Ñ±5øCsåÁ£GVž¨Z[{²¦¾Žéè9óïá �üÿOÀZóM ÑÐÖv¨wì]ïi¢÷ãêãÖßÿëdÿàØÄ“•­‡·žÿX›>súéÓÖKKwþÓÓ;8‘z³µõ&õ0ÜÛÿù×KK­–—¼sRJ¥VVR©÷ò9òÏÿþº¼Ü:ໟZúßÉþ›Ï_¤^¤žÃ¥©SŸþá÷vÍ`Åu# ÃÚß7ðûÜå}ŒÞç-îfH˜Ü ÆÜªÈõ[G¥.ÉÁãÆÇhFÕÕ`Ñmƒ.&ái:4íQ£ÙOIë$LZZú7äM}œâü:U蜢pÎ}©¾úÓ¿¿þúååå¿ß¿ ñû—ÿüù+¥2çÆŽGUæ?þøÃ·ßþõ—_|üaˆÿ"Óéãq<`µ*y.Û5æáwÍÓºß5xjÅb±Mñ.z¼RŒñ1ÚyÓ´óB†²8í‚ñr®«Ö›§ Ø�qJ16 ÂEL¡ª*l{’µ”ƱI± C±I72 '(å:ào1ýÚ�ŵëuŒV4˜°½=q#ê5™~i ¤´Æf› �«]ä6ˆSƒVÊ:-¬ÇUaS*ªj,`wT9+­s€UEÙºáhŸ™&]Éb­’Ò5²…M‰u’¨uãÊÙÉ ïƒ±uZ–ê,k ¤5ÜÉïX›Òªcuí³,ãM87Ž)д»C S2•I0Vd!BY£°dŒEÊ©¡¸‘Ò½à#ˆ1–úr§Á C¹ÅÆ—ãû¥_Õ`2„9XkÆG€Z)ºãr,À2ÖZ2TcЄuv{« ô¸ñdRvŽ= ¥VÂ]é®P;  ¼UÜ’ÛkW‘Apæ¬èó~‹Fnnö,ŒºÛïÙd<ÒVh¥ ‘âÃø U>O]t:�0ÆŒ¥& EM Ö×£Ìç°œ£­‘’ñ"¹ðfàLÇ ¥@ÚïIØûËö›¶ÒwcᢛŸ–£õB6�ŠÞÀ€…a#Àj;~Jgy²¡ÏÁº=R¶ õ?ÎöWãßBËÝžÃE"»Ý³jäÕñyŒ×ò RÊB'¥«E ˆá0›ëã4߈4ÕmÛ¦.ØwhE+ÿ¯`Üc0 " ð(C½³‚²¥ôL¤ †çA�‡W 稺i�KÍsÛiýÍG‚7pK€ÈwÓ „D, •ø(† d¢`Ð$3'»]IJÐÏ%7^=Æ ô°œªŠLh jÀ¤þxL¤"¶>VD¨>ê0lžŠÃT�f¾X``mA)ÈvÌSظ‘>¹³-,z‘5iÅ™ÒZ1Édãp/sðvKY•ÉÝÝl6à.‰²³% ˆÀ‹’›ÝDðVgŽ­1Dhj<q¦£w¾‹í&›o,Ý ƒ‚a}¼}þ½C”ùƒ€Þh¨@@ J¿9mgÛßt|ÿG­\r(`u]·@š;¥?ÝÿÎ Ò)x„”¡@‘ßó¡0¿Q«ç»×vÑy.²&cÒÔû«6~Xî^}Ø„ à d(ÏÞý yýcWf„:b3(=¨dXiÙkxxx÷³}ýLßîf»ç®oj”‚â˜ø´}~3�Þ<÷–ž­"uqUØùòȲ<F[-¿·ÛÛ™¬’2úü!ÈNWZ«¿/G¨EªC+¤—ðõþáçh—}ïþrŸÛ»ÏÉÈÖ–¨2 {À¹8¼ß¾é7'Ïé>§Â~9ö2»»ÕLÜuðã1ËÏNÑÉoN¦•VWÙqŠíµ³¤’ät_äÜñù¬¢ëí6‰‚‰ôÐçÁúnuUa­-øóvõÓ”óˆ»;}`=›•úS—W]¦ôUyÝßA¦Öu)>gÑ1RÙPN“k·Šø ·Ï.ÿÿ9ø¢‹.ºè¢‹.ºè¢ÿÕÐ%«€Å����IEND®B`‚IMAGE 4113 ./arch/monster/giant/djinn/djinn_magenta_big.x21 ‰PNG  ��� IHDR���`���À���ÌZ–ä��ôPLTEIKH � !(�- 2�� ( $ !9�, >) Q4 ];Z��0"PB b��"?-, u&=#<o�E'1s)L)=4 +C5 ‰€�1S-%*L6f2!M5pW5!T‰2%V4%\¡�¦��@‡C•<([8*\ ?'b:*b=)hE#‡?.fE#˜F-iC0dÇ�C/o<>;c(SL0rH5cG3sÒ�G5nI2y@B?Ù�¡2 æ��V,¡M;vƒ.,R6Œñ��V6š‚33W5§V;‹U?V>‡Z>Žâ^B“@C\Dšb>«Ø\G–UWTcCœ·*NbI“üƒ<‹pQRfIšhH¡cK¡gF³[]Z½+[Ò*)eJ¨hM«|TR…F†pK­qJ´mRyYZoO¶tO±nU­tR­pW¨wR´sT»tW·vV¾�¶�•NŸ~Y¼npm{^¿ƒjm^¹aía`†eÁy{x’pq„iÃÅopða^Ž”–“£¥¢ÿƒ‚磡õº»ÿ¹·ÍÏÌàâßÿÕ×ãåâèêçíïìñóïöøõúüùtus˺»ÄÆÃXT[a]cÒÔÑ564½¿¼À¿·¹¶º¼¹130†ˆ†�໼ÇÉÆècaÙÈÈ‹ŒŠ(&*��æmnšœš�ÿ��«­ªÓ«¬,-+,(8 Ùopù!PFb* Jþ,, ¡ž897§©¦5(ýÚ£¤³µ²}|"$"efdEFD欭ú�ß•–Ó›œçÁÂéjli�s�õ05ÖØÕÝßÜœ�ùDD&(%  O8‚„ MOMØ•”UB}ÉËÈ2&MN9z¯±®ÓYZ 4KÿCðppÚÜÙüno̯®¢––ëVX`IŒ>/\ Ù»¹@`���tRNS�@æØf�� ËIDATx^ìÔEŽœ1à¾ÿ9Ê쟙¡™q˜1È ›L¯r”…?Yµô“_Iîü‡4MÓ4MÓ4MÓ’žéþgNh,Î'Î÷Óz†~nÈgµpV@šDy? ÍƯ‘24Àr'Ü4äÁ ½Ýn·Xx #V£ºglz‡½/߃ôÐÃU4NöŸŽ á×éù|>?OkÆ|x’¨ëçÅÃ2ôýEÐ?(Ë“ fáV4„:ûã£÷£ò œ;Æ‚¶›(êÇÚŒ—¦”Hý²,ûŸ¼ËU›¦[( à`øI)ëÞõÉht}ï}f¬¢Ê^à6` ,–èe/MÓûÅ1»p…/˜bŸ!†úZ{ÇBÆÂK“LÕÖ4Ê‘ïP>VKìP%îª øÍ ärÑ'@è)äH@[¨ª¨kÇÄ9lã&Ž×û³¥¹ \Y€[k’GƒöWVdÙãc–Ù$ÊiÛí(R®½¥ƒÁÏá‡ÙÙløfvvË % ;·¸µãöշëWwwOÎ㸣Î_VÌ(¶mr‹ã Í…¬óBX»¶—-,‹Ùê,ÎÈÚZëœFÝm sfɪÜæLÌ´8kì˜Y^J´²‡Iˆ—>Ý7¬N»S”IH›Rè ¤= !4­R¤ª*ÐM¼pœ Á^mÿ㸟ûp~>ÿs¾'ŠbªV\áL‚øæ£o¨i8©^ ¸Y­:ˆ Kã(Žc8êGêUÅP�¨=œÉ³‰FÀãÁV^»á€ª#Ìp¼ÀÍf8΄Û�J€ X^Á%|•eú lcŽpFà…,Odò™p{U1ÐŽ%rÇÍÂ1›"Šá€º‹¾5v*yêT2yrŸâ 0Ùû:Ú×Ç¡-F«RÙZ©Xwíîy¤=Fìn¯w}Ý»kÇÎÝ{zúúÞxm»‘ røôææ¤Ï¹}çK=cÉ“Q¤ª´dD|¨9ÌòÂÜñvóŽÝ}cI¶ßeºo2é'@€º«V[_ ³’\º0ø×¾==c³Ì*^óÖjŽ­�нýÑÉÉÍ™ ‚(JÅ ýÖ=�È3ñUzuHïDRTyˆœ(•˲ÄóÌ¢Ù±£}cç8Aày>ÛßÔ•A»G5g˜.¥²,òTäÅsɱ±$€àBÈ®ª‚Òć&'×fæó¢$ŠEQlåÎ%“³³@� €4ÜüÂÂâ‚\ŽçEÄÃQ«¸Ö’%]zZUéjÈ%¸w‘KEѶ<Fˆ­ÀšKQdMûXUº×àö%^c˜ÍI0ÂyA}åÈ¦Ž ÖJ%Ìç)ÔæðEL�ùTŒJea‘ecT<;O65×YénåÒ"b¨Ùæè R,8ÃPA|•ƒ8:ˆFÙœŽ:+n’“ʲ,ÆüæúÇÎ Îdp ¦D‘gˆ«/Å¥ E.Jò‚$ñ1Ôfv¸1Ê0› !V<¤,¯‡I*ìõضj@ dI�àðŽÏdòPÙ �B)^àŠÌÌ$ûP‚P†ž. 32\(•ÔÞ 4!B›Ê¥¹µšÕG3j4vÑ"$�mŸ :ýã››4£¨Õ`g'¥(jšžÙ÷u)Ž4]vÍ]$ËE)›ˆx� ø@(N¡ üõù`a2còšô5M]T”Jå²$rù\ EìfUÎ`*B`ñÐlv TŽDŽcI—FOÏ/€KEQˆmH·ÛÝADW}H݆t8DjÁ1qsiX/yV–Á&�à6«wxœ$‰êƒ:ÐèÐЕƒºç㤷iÑPîWºY öš$ÅƒÖæÀ\i>—Bøº ¥ØËqêÌÈ7º+E@©>*ؤnlmn&]ÔáD:¡yxN�ƒ˜h×8´at—ä–¦1«Í 8txM±¼ ªþ¤ú½M»æiÔH¢$—ç¬u³Ùfµ9C –eØ|öÑ'P¶á©WØÉ®ã›…‚\,ËsÃëˆÇéDœÞ!¦Õ9L<¦ŠÆUˆ¯`éz0>I…éÉá~4”Êrpã4é÷ü0¯ÛRÕþ}\©V*–õµBY¥ùBáÃ0lN/0¤Ç²×-&ð_ßs¸4wöìÙ ‹eI.2™x"¢}vEÕMÕH@\`äô¼$Kót?æÇ@5—ŘgßÖn³Ø-öZ†F¹p¼Ë𮘌‰�ÓSm W޽sñâÅ޽òô‹¯¾úb[Û¶mmª¶ gžï>ñè?'zœ¾téô‘ÞÇÚb„#‘ÈHdjêÌ?LMEÎßþõÛç#­ÿŒ½ ?ÆÞ½gU+W?ûìê ,xypÂÞ~„ÅDäõXt³úìA�´ôd£Ÿß¶M?à»ïöˆŒN€=ugãÚµ•[£ƒ‡÷¾ð?ý€¥¥÷ß<|0ò7 }ocã^zbð`ïÛ.-é,/ÿöîs/ÿÃ¥tze%ö~øÕò²~ÀOŸýý—ûÿ=õm:ýmëuG=ß9sxï—þÿÓ§ú7n|±´tù“_6®_ÿ}Ô:_¹òóÇ—ÿl× ZDZ�¬{ÿƒü >öϨ{ÿ‹¾Í¥wØaCKãèÙz‘¬š9Ô3Þª†@%‡tÅ34؇!MA._rZ)[§¥§¡Ë>æ3ˆäôé=éI?ù“÷~¸`»U½†?~ùå·¯_»Œÿ ãï¿ÿGïÚnÇ8‹2³ÙŒwOØþÊ›åSûk2Åe'¦T/l8å!‰à¦]ÛN;LSl[\†IÞÙt³„#¶œ·+LÁ¤ˆ+ÆžVË}ïý(‚$+³âI²B£ÓÔ€µA›¦6ßïÇ`Ë;L—M›£Ekö/ÄÞKɆ£Óå —`1Ј<j4,ÞÒá~>\°ßç`B2òಹi„èPÇuà+Ÿ•‹1Î"BÓ;÷ÀR’šSˆ°#¯Þï†ÖÏ…VµÚm2j—.ËܧHJIªä¶"ˆ†2·‡IíÛ¥, E`,v¢õu!—œêòÓÀØÇ­¤^ªÏU’~ðØ 6—2߈“¬k6”¢Î”ÛåÍÎSÞµá1@^O“97Æ÷•×^ˆ6m°I‹Vk°96"áhahŠâZl{.:@ü×–pŠ A£ŽU§Öƒ9 ÊÚó¶åý½kBZë<X¬µA¥Gt€mÒôêÆcøm‚€¼'ƒ@Î ÄM£€[ïˆ1Ô¨aïÕÆCGò¾Á{.Z ÑáÞ§†ÜÒfó(5§Ííí`Á"@hx’´`5cZkDÜ2o¦•<‡ Öç­rÔ‰d&8‚€Á¦ÃŠ,¢9 ¬ÿ¼Í<7³èŒ °tI̘A.’u ë¹$DÎW°ˆ±ârDlŬ4ÿgŠ›#Àøtˆ9m¼å!{X¿`úÿ'`‹óVžà2wÑbÂisï0If mÊõÀ�"·[UÙ˜Î9bÇ_*Bpz»fcpô›®ëZÞñû ó&ük@±q8™˜zŽÐƺ¤9"@ÎF¢ßã4ùß¡”p@d¬"O÷/Ù¡ßà‘E8"t¡¤øY©ÞNI­‡n¡Èú#»�€­¸DÀ9e…ÌÃx»Cð|½£Ž‡ÞR}V¹ ¬, "ïváÝ]  †‚ˆsú²‹Fìò§°¼  ì×צ9I@Ô[@¹µ1O€{ "6o•RÒÑÞèà‰ØÜžüAeÏo0“ÉãcQK2š1Ïê“Ö ëIñôåm‘ùž¢€#Z°'—£ Xn·7™rô„M‹�Z[òN½þÑ éï½êœï·Š4BxrÔ€¸ôõ¶J=Pÿ÷‚ùd~øÙ�DÀ="…öƒ‚Ãwz‡>+é+ƒØ5Mƒ ‘'T—ìÇ(Ï‹¿Y4ïè¡ÊãÄ!øË{oËpô|ƒÕÚ­¡³Y’L‡t÷ß¼qhÐy"8ÂfH÷žýëͧõE¹x ¹3úBÊXƒàêòå‚íNf‹I,àó«OÁ«óü@¦€âuÖÓf~ûrÿ¥R7ÇÞÉêb“×±Ä.×~ÓaZ96[É^Nqüâig«‡øw1¤"ûë}ÏÞa/³j·?Ùª¨ª˜¨Wów»üI\_¬d1°Sp½u{rRIåB¢Ùáý©rÛ#!Bߺ/Ùp²b>¿ËäéD=Uùá($X¯6Ùˆ]ˆ.æ_(·Öæû>›<*Šsÿ4^Côù®¾QÒõûªÿ¬êÉDÑN=–cv\gNfÛÌHfÅ™XÑï*<ÏÕŽ²EÉÆg=—'Ÿ-î¾T”¿'¸råÊ•+W®\¹råÊA*³uÊ•“����IEND®B`‚IMAGE 4042 ./arch/monster/giant/djinn/djinn_magenta_big.x22 ‰PNG  ��� IHDR���`���À���ÌZ–ä��ñPLTE1S � !(�- 2�� ( $ !9�, >) Q4 ];Z��0"PB b��"?-, u&=#<o�E'1s)L)=4 +C5 ‰€�-%*L6f2!M5pW5!T‰2%V4%\¡�¦��@‡C•<([8*\ ?'b:*b=)hE#‡?.fE#˜F-iC0dÇ�C/o<>;c(SL0rH5cG3sÒ�G5nI2y@B?Ù�¡2 æ��V,¡M;vƒ.,R6Œñ��V6š‚33W5§V;‹U?V>‡Z>Žâ^B“@C\Dšb>«Ø\G–UWTcCœ·*NbI“üƒ<‹pQRfIšhH¡cK¡gF³[]Z½+[Ò*)eJ¨hM«|TR…F†pK­qJ´mRyYZoO¶tO±nU­tR­pW¨wR´sT»tW·vV¾�¶�•NŸ~Y¼npm{^¿ƒjm^¹aía`†eÁy{x’pq„iÃÅopða^Ž”–“£¥¢ÿƒ‚磡õº»ÿ¹·ÍÏÌàâßÿÕ×ãåâèêçíïìñóïöøõúüùtus˺»ÄÆÃXT[a]cÒÔÑ564½¿¼À¿·¹¶º¼¹130†ˆ†໼ÇÉÆècaÙÈÈ‹ŒŠ�,-+æmn�šœš��ÿ��«­ªÓ«¬(&*,(8"$"Ùopù!PFbEFDþ,, ¡ž §©¦897ýÚ£¤³µ²}|* Jefd5(欭ú�ß•–Ó›œçÁÂéjli  õ05ÖØÕÝßÜœ�ùDD�s� &(%‚„O8MOMØ•”UB}ÉËÈ ¯±®ÓYZN9zKÿCðppÚÜÙüno̯®¢––ëVX`IŒ2&M>/\ 4Ù»¹¢½ü���tRNS�@æØf�� ‡IDATx^ìÔEŽœ1à¾ÿ5Ê쟙¡™q˜1È «L¯rÏ&ò'«–~ò+Éÿ’¦iš¦iš¦iš¦ÿ<ÓýÏœXœÏfœï§õ ýÜ‘ 8Îj଀$…ò~š Œ_#!dh€•)N¸Kȃz»Ýn±ðþF¬Du?ÎØô{_¾顇«hS(ì§9¯Óóù|~žÖŒùð¢P×Ï‹‡eèû‹ P–'AÍ ¬. Huö ÆGïGåA9vŒ1í¤PÔµ/M)‘8 úeYö?y—!«6É$VÀÁð1’RÖ½ë“ÑèúÞûÌXE•½ KÀ@X2,ÑË^š¦÷‹cv à _0Å>C #ôµöŽÿ„Œ…— f®ªti”#)Þ¡|:­–†Y¡J0 <Sð–Èå2¢O€ÐSÈ‘€6VUÑÄnˆ#r6IÓt÷gHs¸²€,Ž»$í7vÝÛ[×µI”ÓvÒQ$Ž3{Hƒ_ëßÛ›íúçöæŒJþvY|f7í«ÖW¯Ÿ†Ý4MG¿¬˜ÏoÓvÆÉÈe!3Y+K€–¶@FˆWê4„R‹’4*k:Êp†„*k¶:h8[;–I©'$$´Kÿ‚¨‡LH uš8t¨Ä4¡*U=äÐM-Ùi¯Söƒ«ã'¶óMï'ßç}¾_»•e]µb¤ãÄóSpQ¼Òð°Zµi†ÂQÇpÔƒÔª²¦�5Î3ñº×éÄÖê.³æ€ª%@³ÏF F¬2�´%X 'à¾ÆÐ¶K Ís|†ŽÅÓùtÀZ•µX±x–eÙY8f“„EÖPsbáË‘«‰«W‰+'lP_c€Îlé8qúô¹¾>8NïÒZ•ÊîJŸÿH÷ŽŽj 0;\®ím×þ÷÷9ÚÝ×wö“½ZdñÔ©­­ ·mï¾»#‰+a¤*7¥E}¨1LóÒ|î¢Uÿþ‘¾H‚°ë^êt ¡õõå OLlMßæA,¦©Ëg»»#³y:¶F­ µºaÈŠœDVËeIä8–åøÙȹ¾È –ç9ŽË 4ZòÈê\YÙÞ¦ŠE±, 8áF"I�>ðÂ^m 7𡉉õé¹¼ BQšEÙ‰Äì,€ÁÀ @ªŽz~~~a^*ò<Ëqâà(‚UlsÈí­$IR¹$òLŒ¢Ò,„À¹CËS¸Ãº»€Ts6Fý$¸òfP½ÉâÙ$\Q¿­Ê]ëà?7Š™lÍ¿%ã•W6ØhÁ¢õRI‚îr$j²¸Ãq:€|2J&30È0Q2–™ 6TIîRz°�„(ª7Y:|$ÎФ_£Á –ò¡a&ÛBdG•æË’$D=úÚÆ†ÍÏ€3iA|IAàh¢ÝèNÒ„S®AmŠDi^¹(jÒ[m˜Mú#R†Â·A2àršv«@$Qä`qM§óÐÙ4�üIŽg‹ôô»Q‚Pv¤VRÄsÐd¸P*)Ù h\€˜J¥ÜúŠÑMÑJT¦h&�±ž±­-ŠŒ’䚯£“$9EMo¹Û‰$Kyv³êIRQÌÄÃîżnŠ„ßïn÷k, Gé|š º²ªÅR¹, l>E³^‘Í—Œùlèõ”̲¼À²LЩÂ%ÙŽQSsóàRQà£>Ó†ér8ډ𚩙v›­ƒˆC/X:Fav5�â ÎHØ�Üdt ƒ„uÃÚÑðÐЙ…¾çcAWà ¿¬tÕ3"¬5QŒùŒó¹Ò\6îƒò5J2Y†e•=#_ïªTdU�¹ºÓ°IY Øzn:)j·!ŽåÁ :Ny­*ï °tŽ•¤¦¦0£Éáõ¢8¤¼ 'Ž’®†YõnÔˆ‚(•sç5½Þd4Ùüq†¡™|fç—©;kV²J€ýâV¡ ËRnxqÚlˆÍ5D7“CÇ¢Š(ÌR…úª†Î×c9pH,LM  ¡d†…N=¯ç5ærªêÿ—«•Ša{½P–q®P¸MÓ4“UêótÐi�™køßÚƒ¸”›™™¹½P¥"ŽÅc Êm–=Tì ´‚�—Î{±àÔœ(‰sÔ�æÁ@+vƒ6ϾÍÕf0Ì+uØ4Ê…‹fø�gE§M}�èÞi¾ðÕ;w¾»pøÝƒÇŽlkÛ³§MÑ. ôÞPÿ¥o@_^ê9síîÝkgzÞh— …B#¡ÉÉë/^LN†n>ùã¯'7CÍïFF4Œ®Â?cWÁUÑò½î-Ã`utDÀ¡Áq(8ÿüƒñЧ§4°èaõƒ^�4õö F{ìÙÓ:àñã“§B£ã«ÿžnÞ¿¿¹üh|t°ÿøG?µX\üöóþÞЀԫÍÍW©ñÁÞž/n-.¶XZúóëýÏ¥Tjy9•Žßúyi©uÀï?üòë'?›|–J=k¾ž*×§×ûÿÝ®´8ndq\÷ùþ>sœÑ÷|‹¹, ›Ù°aÍTE®'Õß%ÕZãr³ÏhÕ‹n4˜@– Ò-thì…Õ ½oÉÍÞ’ÀD:úox’O?½WõדЛ«ª™8—)õÕŸÿóéûïÿûÉë¿þúßúJ}éœ8tgè_ß~ûÃ/¿üp‰õñÇÿiªLcÜ‹b–³ÙL´Ïh¾õò¹ù.œbÙÊ)—‹E0\ëc*C)ÞOÛ¦™¶ˆ"4 –>‚ÕÍS0†ÚY(€Fˆf…ˆ’XÁójYuÎC¹JV" WHL%d­ÇF‘M«j �Ñ"ZÖ¡¨#zŠ1Á߀Îa´ÀDË–” È�¢ÇZÖ¢áãý|8 ªRJ|1RϲiRKÙÂ$ V.^/FñAÞ˜ls³Ìâ8«@LÁZ+ÎÕa=x—z{œ”®Yª¢ÐL‰E+Wj)¸\?vÚAq§ô‡¼õ59:Ô0É%ƒØÕò¬Ê2ª¢Œu¶O ’½ã´m@ $ÄÎLÃgÙŸ?^;)›ˆL‚V† ¬1dSÔ2°4F×,Yx€Á 6'C¸Xzƒ‡ l-ïÁZ3¦ðO4ž5B®Ï�„º¿Ïê°1&õk­G™Q�-¡ ëNß8øóÄØ9N@œeƒ}‰¦=@X—qÀÀPåôÎQË꾞Á;!x€lQYÏ4”ZÞí¶ÊÞÝÞÜi&P-°!ë+nŒ°?Æ.™æêéiø×ØƒÎØ[`&ÈxQ‚ºEÎHÎ̃›Ÿnc'|g–mb=€,<.ì+–@ÈpŒ©œ¹b@ˆ^è-hä¬FPq³Ë˜ÐÿZ�ÔJ™òÎYá3±ÇÍ„Åé Î HÙ ÞÝgÃYÈ»õ„ÛƒÎ-€F´¢ve¡S)¥à/Æxr@ݶm#ZÑ¢Û.ñÿjÒÁ8:'}é¨é}GÆCS€( FRWa¾Ü”BA@äìØ  °½DPë- ‚xÿÖ²ÞŒ3òr$B#/Áq¡RoÇ l_Ž0€ð —'JŽG°x»÷Ïî‰j€u™ñvÑ>}öË[ƒ@ª|ì—×F£í"æÎJ­…AðÀÌc¾ÐZ«Œ«ÄXB/›Ú³;긌aæÉd»-Jʼn·˜ð†ÀÙRå¤x¹ãŽ28°¾-b×q€%{Îâb; Xûîö&Ö?£n@dŒe—éן[!ó{:§ûƒf!…!`éÊÏ•zàî·óÉüøMBH�BˆÞhŸ 8þÎìÐí\ž�m]× rù¹F.¶§Åo,šI÷ü§€¡”âwùõæñWÍlIc¨–³YN‡<G¿x“ådÈD(h7dzÏþüæqóÜËI¡ö‰¹( ‚”•ë/{/&½O¯/€W§ù‘)Š õí¬ãÝüöþ®´¾9fÁ»qY,<`òº·Ø¥í×-¢<ËüfÒЧŽ÷6ø‹{Û§TÄ?¿óþÒK´èT\_`¿´)å”ç}¡^ÍßîÓsûõE®ŠlsÈ*ΔV:ó…:ÆÇwç<;<1@]ÇÄú~ŒFóù]¬Îgî8OŽE¡È:½‹GœBüi1ÿÈ©µ6­ºx²ÕÜ_ûãxѧ»òF«¬«òîƒ.'Í{½]9qg*>ÄÙ™U\ÜcË;úmîžNs½çx1௺ꪫ®ºêª«®úrPÕÐ|ÜÞ(����IEND®B`‚IMAGE 200 ./arch/wall/slevel/dlevel_0.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���cIDATוΡ€0 …á·ÃTO1He÷I9*¹Ã°\U&@×`BÇ�D}÷›X;ˆHB%éÊ8È«ÈæzšAÉÔ”ìm³dC±+aÂ`ØÑñSÿ³«D±m¨žXBˆ.…¿v>†J)û¯·����IEND®B`‚IMAGE 155 ./arch/wall/slevel/dlevel_1.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���6IDAT×c¸Â µša ƒü†+ ¢¡0=Å®ÿÿʰ¾¼þ?ÃÝ»w_3l//¯±î2ü�ŽS<Àe"¥×����IEND®B`‚IMAGE 164 ./arch/wall/slevel/dlevel_2.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���?IDAT×cø «€€ákhh(„uÄÚgÅî¢Ê®±®ƒô®a�‚+ ‚LØ”õååå w€a;œr� =µšy����IEND®B`‚IMAGE 139 ./arch/wall/slevel/dlevel_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���&IDAT×c¸Â�k@Ä@±®ÿÿÿŸa}yy9Ã] `ØgÅÿ�s&i`ÇJ¡����IEND®B`‚IMAGE 177 ./arch/wall/slevel/dlevel_4.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���LIDAT×­È¡€0Ñkƒ¡ªStx?C<†&`¢(s$0tÀª7 · )p‘ìÊ8È«´u=Ï8Éh ¿oQ6Šk a2v ü4þùn» @Âç·æ«����IEND®B`‚IMAGE 128 ./arch/wall/slevel/dlevel_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDAT×cXà ÿŸá ƒh(”%µša‰� �3YŽ4����IEND®B`‚IMAGE 148 ./arch/wall/slevel/dlevel_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���/IDAT×cø «€€ákhh(„uÄÚgÅî¢Ê®±®ƒô®a�‚+ ‚,�BC/M«Ø����IEND®B`‚IMAGE 119 ./arch/wall/slevel/dlevel_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDAT×cXÃ�W@Ä d�žÉäÄxg����IEND®B`‚IMAGE 147 ./arch/wall/slevel/dlevel_7sw.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���.IDAT×cXÃ�W@}Yë@Ä}±ºHü?�$^=�õ€„Õ !ÿ‡�áz¾ó9Ð ����IEND®B`‚IMAGE 170 ./arch/wall/slevel/dlevel_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÆ÷���<G!f���tRNS�@æØf���RIDATxÚí“Á � Cçÿÿt†É»¦Ž.ÛÄd0‚5ƒôààGú§ ë}?CÁ˜òDMAÛsøZ¨M“ ‘ýîØÕ+(à°õdP)rðª����IEND®B`‚IMAGE 152 ./arch/wall/slevel/dlevel_9.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���3IDAT×c``ZÍÀÀ ÿHˆ†ÂXôûÿÿk(Cyyý†»wï¾²ÊëA¬»@‰ÿÿ*Þ(ð©•s����IEND®B`‚IMAGE 122 ./arch/wall/slevel/dlevel_A.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�1����9&(ù���tRNS�@æØf���"IDAT[cüÏÀÀÀ "V‘Ìëe ”�›òDìFe$�! ¿ÃÞ§R����IEND®B`‚IMAGE 113 ./arch/wall/slevel/dlevel_B.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�1����9&(ù���tRNS�@æØf���IDATcd�Æ%þƒ\ðDìFe$�c—q¥W����IEND®B`‚IMAGE 157 ./arch/wall/slevel/dlevel_Bse.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���8IDAT×c` %`Ì ‚DðƒYa"JAĆÿÿÿ_e(//¯g¸{÷îu«ĺ’ø�PZ3.…����IEND®B`‚IMAGE 133 ./arch/wall/slevel/dlevel_Bsw.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf��� IDAT×c`pð¿H¼;�$v?�±>€X;@�+ T冒����IEND®B`‚IMAGE 148 ./arch/wall/slevel/dlevel_C.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���<IDAT[cüÏÀÀÀ¸ ˆC¡,V‹ Ä…‹…‚Xa@cLŒ5€ñ?ÃïŒ ò€„¨Œ%5‘Šb�ÀN1CU&·����IEND®B`‚IMAGE 114 ./arch/wall/slevel/dlevel_D.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÆ÷���<G!f���tRNS�@æØf���IDAT[c``ÿÏÌÀÀvšÊâ–gDb�(¨é[ÂTh����IEND®B`‚IMAGE 150 ./arch/wall/slevel/dlevel_Dse.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���1IDAT×c` %`Ì ‚DðƒYa"JAIJ« e {(à±äA„Ôj�ˆ´¿]÷F����IEND®B`‚IMAGE 113 ./arch/wall/slevel/dlevel_E.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÆ÷���<G!f���tRNS�@æØf���IDAT[cüÏÀÀÀ¸ D„’Ìëb�ä@ÄÙ ½É����IEND®B`‚IMAGE 175 ./arch/wall/slevel/dlevel_se.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���JIDATוÊ!€@�DÁá!$ 1΃'%ðÄ@qÜz +¾Ø7ØVÔ‹î<èëÎPÚ5>-ÓÒ2ßþ3a„ &L˜0a¾öûô�yo����IEND®B`‚IMAGE 132 ./arch/wall/slevel/dlevel_seB.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDAT×c`€ñ?`.ìw?ˆ% bÙÿ�@4®²˜«����IEND®B`‚IMAGE 135 ./arch/wall/slevel/dlevel_seD.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���"IDAT×c``ÿÏÀÀ µšÊ eh±u Ö aµ�Šôá„å'����IEND®B`‚IMAGE 150 ./arch/wall/slevel/dlevel_sese.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���1IDAT×c` %`Ì ‚DðƒYa"JAIJ« e {8HÙ?²²�…˜Þ(ˆdg����IEND®B`‚IMAGE 173 ./arch/wall/slevel/dlevel_sw.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���HIDAT×cà[ÇÀÀÀþH0¯n```ü�È|õ�HÔ�V;€„ü A–BBBQ"¬@„<ˆàì ‚D02`�ˆù8‘”ø����IEND®B`‚IMAGE 135 ./arch/wall/slevel/dlevel_sw7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���"IDAT×c` h�@ÄñDì�@ÄTÖ,�Œ· í\�’����IEND®B`‚IMAGE 159 ./arch/wall/slevel/dlevel_swB.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���:IDAT×c` h�@ÄñDì�@Ä:ñD¬þÿÿ?ÿwïÞ1¼Þ½{7Cˆe bÉ%�tŽÎ={×Í����IEND®B`‚IMAGE 153 ./arch/wall/slevel/dlevel_swsw.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���4IDAT×c` h�@ÄñDì�@Ä:ñD¬)üRø ¤°¤Ð ¤P¨�ÎX¢}[j ����IEND®B`‚IMAGE 334 ./arch/monster/animal/Dog/dog.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���€@�`0�Êràp�ÿ€�°°°   À`�  xGllppp P� ÿ¶‘``0b���tRNS�@æØf���ÆIDATxÚíŽáŽÃ ƒ!ÙÒzH¾Ûû¿ìµÄƺ“îÿœ üaZ¾ú[ö[üèâà.�§¾‘v´8``åç�8ÈÚ¶ì§>ˆ¶mÛOñf³ lû�Š€D"¯èußõ‘nèEb|>#“©"†^¦œ8*íò'q!²ˆ!‹_Œ’¨° Íà]ƒ°pCO^£‡/€Eúw [W€è{9OÐ×÷„fO@µW"ÇÚtÆèC}Òœ‡7ä¾h^ø=�Õ¶ ´}dxE����IEND®B`‚IMAGE 320 ./arch/monster/animal/Dog/dog.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���€@�`0�Êràp�ÿ€�°°°   À`�  xGllppp P� ÿ¶‘``0b���tRNS�@æØf���¸IDATxÚíŽÁà C!Ýh-$³ýÿÏŽ„¦ÓÚiǹUjᇛô×WÉ#mîËØ.�«\Hñ| €™îË2gÝ÷½Ù s°' Œ·…]àû èìÂxÈ»6 µæK»¢/Üô¼Ç{%“:Š|.etœß°9q#¼$øOà±!%E�BJ—aB‰€V+š#bÀðšËœ ñt ż闂29àù Œ/»à@ÕleË+¢éVýïôG8 @  ÷����IEND®B`‚IMAGE 321 ./arch/monster/animal/Dog/dog.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���€@�`0�Êràp�ÿ€�°°°   À`�  xGllppp P� ÿ¶‘``0b���tRNS�@æØf���¹IDATxÚíÁn„0_¼mèÉ´ÿÿ³%Y«U/=®ÖŒ¯ü `3úŒGr¤ð8ù†ËÖÉ™±pñXÔ+·±Ëº<§/cÖeY¶h‚hõn¯)X{°¡#fÛ¶óÈ £ÔÑið| Q0šþú͸¥+ªšîe¤Æ:WÞ+ õ·µ…nxÏñ]5ó8–Ð$Խбê—tÃŘÄ$´Rü.°×šBrÊ^¥ŒYˆ’+:FÎÌ7õæðÆ‘����IEND®B`‚IMAGE 331 ./arch/monster/animal/Dog/dog.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���€@�`0�Êràp�ÿ€�°°°   À`�  xGllppp P� ÿ¶‘``0b���tRNS�@æØf���ÃIDATxÚí! i«…JR½ÿÖR 5g|€„ÀKúPzáw®îªâÖ!(¨ ì„~™+¨ ÉEÅ3ç\Eek¹PªŠ'…M0J²½ûG>¦/ÈBŸ¶¤‰ä9‡À÷ܡ֚²ÄCßû˜?E…ÏÞs›y#–aŒ<@ö,ÀU@ÏÉDeÔU ¦Ù+Ø­ Ú£Œ«ŽvKßw6 €ð!`=5�˜À:Ú“´òÙ¥ ‚8¤ŸxÐ… ´wxÌà����IEND®B`‚IMAGE 325 ./arch/monster/animal/Dog/dog.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���€@�`0�Êràp�ÿ€�°°°   À`�  xGllppp P� ÿ¶‘``0b���tRNS�@æØf���½IDATxÚí‘Qà „‘nZbrnÿÿÏNd—¬jö´Ç]›rÊ'ÐVþúÐ!ý{ Ó( ;Âh`[`­”R±%²¾³Â ¶VÈt0té\±n­™W¸{Ÿ¸º¼ƒpžµˆFƒì#Pš}—ùе¡9’#†Š%XÛÃÍ0¿3gbý. …K»�µ `Nèhçy•™P'Â;°#„ÀÓF«Púº-À HšˆðX<¯@ê›<–ê5ÇŸqxù™^A; @ݲ£����IEND®B`‚IMAGE 322 ./arch/monster/animal/Dog/dog.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���€@�`0�Êràp�ÿ€�°°°   À`�  xGllppp P� ÿ¶‘``0b���tRNS�@æØf���ºIDATxÚíÁ!Du¶ÕN6aÛÿÿÙ:FJ"‡z혌/ å¯/b å‰T§1€C@B‚€ Ã'ªFd„Nô³šÑl'gæê½Ÿ4ŠàØ§Ø (s@.äºÔ6±ycÈðET–¹¶OAMT¦.íÓh°5D~Ë[5ˆ˜@Ë[ƒPvHžêš±²˜Ê@¬œ‚L�¯Ÿ6‚–BOAd@‚¢¨¥pªµÖxÉÆ£xþ¬7æ¬ö 0����IEND®B`‚IMAGE 351 ./arch/misc/doll.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����þ¿Êÿÿÿ¿¿¿f¸���tRNS�@æØf���ïIDATxÚ}’QŽÄ0C§Ž¡øþÞFʨ õG[ɯB>Gîn�¿¯Ï,ÿjÑ60ûŒ€—F@RDHs7Ä–€p†îÇÐ\÷…òM3@Ñõ·F`Ý�ó—=‚•pQl@yQº“€òPoѹBIó.Á(-J3PeJšÏú�ø�°—Ñýš{gèsP¡8j¶2z#º÷vÀC‡8'Yå¥|d½åEÊðŒ? ßæï΋­)¤Šh7ÛSÕ‡ùs' hö}Rº]žc sæ}gv\ª¸7 |„ˆü�㢊Z¼¸?Ñ1 ÛÿDr����IEND®B`‚IMAGE 358 ./arch/door/Door/door_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEc2ŸQ,Òiíu�Í…?�1�ùqcDÙ¤���þ¤�±!!ïå‹Ä`���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ –+¥_���«IDAT(Ïѱ `VVã Ú„I\š0é›ÑÅÁ¡8•ÕG±K‡>T–;Mê 7|éÿ(c÷¾Çp¨Ô/Êbxšà¢8ÒKca§£¹ÔZ›Ö9Â0çy'¸Ã<&X±‡[øøª¶HÍ t^D€ÜI &VhØOˆ‰�¨bƒ”ó WˆIæ A*Â¥�mñìÜA¢-ß `ì1¨ŽJ0w¿�ÿW*gQW/9Ùä����IEND®B`‚IMAGE 243 ./arch/door/Door/door_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEùqŸQ,Òiíu�c2Ù¤���þÖ�þ¤�±!!ïå‹r¤9 ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ��Ö”i°���>IDAT(Ïc`€6Õ df&b…*Àæ‚.àˆ&"D@€ÍQ‰€@Š iBh‰J£8�ç„1y°U68����IEND®B`‚IMAGE 234 ./arch/door/Door/door_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEŸQ,Òiíu�c2ùqÙ¤���þ¤�ïå‹i÷È���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �0¿ ÏÛ���;IDAT(Ïc`¬ 0(¡†TÐÊŠ Âѵ¢ £ (šN �ÔA@�¨¿�Hš÷,�ý²3s†Ä0����IEND®B`‚IMAGE 263 ./arch/door/Door/door_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEc2ŸQ,Òiíu�Í…?ùqcDÙ¤���þ¤�±!!ïå‹¿}Zw���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �(Î)À���OIDAT(Ïc`�F%%%ë¢8T“:@�I ØàÊ»!�!°½ àPÆ8”·€éÀ)�×S�®—@\T ��=ÌHá+;É����IEND®B`‚IMAGE 259 ./arch/door/Door/door_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEc2ŸQ,Òiíu�Í…?ùqcDÙ¤���þ¤�±!!ïå‹¿}Zw���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �!)R{ön���KIDAT(Ïc`�F%%%ë¢8 G`K1šÀö mw 4çT-È:€Ú.è(:€[0Pt04j+c4  (Á�CR=Pz•¨8����IEND®B`‚IMAGE 199 ./arch/door/Door/door_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEùqŸQ,Òiíu�Ù¤���±!!ïå‹Í®24���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �#,'`c���IDAT(Ïc`�@%%%s§�8� ��âÎ0BgÊÑ����IEND®B`‚IMAGE 255 ./arch/door/Door/door_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEùqŸQ,Òiíu�c2Ù¤���þ¤�±!!ïå‹ãÖȳ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �-5êÏå-���MIDAT(Ïc`ô à|¶Dc0@¸Î¸@Še( £has$$"D@€ÍQ‰€@Š @@$ï'‚‚“¨D[�f3/ᔈK����IEND®B`‚IMAGE 233 ./arch/door/Door/door_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEc2ŸQ,Òiíu�Í…?ùqÙ¤���þ¤�±!!ïå‹íþ‡I���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �2+ÝšÖÐ���4IDAT(Ïc`�B%%%­¤8\å €$l H«À�I`YàÓ2„нOÏh��CÒIäÜɹ����IEND®B`‚IMAGE 248 ./arch/door/Door/door_8.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEŸQ,Òiíu�c2Í…?ùqcDÙ¤���þ¤�±!!ïå‹'©—l���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  %R~Ø���@IDAT(Ïc`Ä €•�H }7�ò9,Ë‘�HÀMK³TØPu`@ÓE�M40@Q��›£8]™ŠÞ—����IEND®B`‚IMAGE 267 ./arch/door/Door/door_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEùqŸQ,Òiíu�c2cDÙ¤���þ¤�±!!ïå‹EzWO���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 0%Î ô���VIDAT(Ïc`�B%%%­¤8å Pd¤¤d0# ΂ ¬‚¨@¤#iksg@P)G(@€éÀ-�ÓS�®§�\¦@90 ,��‚>ëŽ{����IEND®B`‚IMAGE 213 ./arch/door/Door/door_A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEŸQ,íu�c2ùqcDÙ¤���þ¤�±!!ï勳1sS���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  ·‘Šb���#IDAT(Ïc`¬ 0¢†™h€! `j:Þ��œ4(a ÖU����IEND®B`‚IMAGE 245 ./arch/door/Door/door_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEc2ŸQ,Òiíu�ùqcDÙ¤���þÖ�þ¤�±!!ïå‹9ñ¾§���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ½áN±���=IDAT(Ïc`�B%%%í¤8å Pd�3ŒAÀˆ³›ÁL†Ýh€! @´ !$PŽ��ÀÉV×¾g5ÿ����IEND®B`‚IMAGE 248 ./arch/door/Door/door_C.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTEc2ŸQ,Òiíu�Í…?ùqÙ¤���þ¤�±!!ïå‹íþ‡I���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ âípõ���CIDAT(Ïc`¬  ÀÆp`XI4ÈJBÕbb…&àDHÀD‰€!%BNxÀ/SB€A!½�®’D¶še8Ü����IEND®B`‚IMAGE 260 ./arch/door/Door/door_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEc2ŸQ,Òiíu�Í…?ùqcDÙ¤���þ¤�±!!ïå‹¿}Zw���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ˆZ=Ã���LIDAT(Ïc`�F%%%ë¢8 Є$` F@\ Ø Pr¨FÖ&ÖhN„L” 80Q"$à„G�ìýö�Yï\U›����IEND®B`‚IMAGE 262 ./arch/door/Door/door_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEc2ŸQ,Òiíu�Í…?ùqcDÙ¤���þ¤�±!!ïå‹¿}Zw���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ -C=���NIDAT(Ïc`¬  0£†Ýh€¡ª·ƒ)¸sëbˆ˜€!%BN„L” 8á�û¹] $�ñ>4‚ ¡(¢��Ú“ZI‰‰:È����IEND®B`‚IMAGE 277 ./arch/door/Door/door_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEc2ŸQ,Òiíu�Í…?ùqcDÙ¤���þÖ�þ¤�±!!ï勿q•4���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ $h&���ZIDAT(Ïc`�F%%%›¢8 Ðd�3ŒAÀˆk&ƒ™ gÐ�C9 ÔS-@`nS Ñp"$`¢DHÀ‰€‰!'<`?·(!¼?0Ñ��9GmUšºO~����IEND®B`‚IMAGE 198 ./arch/food/drag_steak.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEïÆ÷¥R)÷çŒè~Þ*���tRNS�@æØf���kIDATxÚÕ’AÀ0Ã0ÿô41M œ·H½Ô&ÚølPœ™³pc 3WÃ>/až_¸âz¿Ëçá>àð\PËŸ8ø+œE,¾®~_�{r0<t-ÇñÐj,WTP˜õM¯Ü‰)¢Íøiê°xð¡����IEND®B`‚IMAGE 1812 ./arch/monster/dragon/Dragon/dragon.x31 ‰PNG  ��� IHDR���`���@���Òê‚<��2PLTE���Î��Ö��Þ��R��„��œ��­��µ��½��Æ��1��9��ç��B��ï��¥����c��!��Œ��”��)��J��÷��ÿ��Z��k��s��{������ÿÿ!!¥�ÿ�1�Þ�ï�÷÷!!ÿ11ÿ))Æ�ÿÎcï!�)c�÷�Î�÷111�{�Þÿ!�Z!J�kÿ„�ÿ½1c�ÿÖ!Z1ÞŒ�9�)Þ�Þ)�ÞJ��œ�œ!�c�!�)�1!÷µ)µck9½JR�1�ÆZ�Îÿ99ÿBBÿJJÿZÿc�ÿ{�{�)�!Ö�Ö1”1�ÿ�JçB�9�÷9�¡WxÄ���tRNS�@æØf��IDATx^í–å’#;F™b.CÃ0]f\dffxÿWXÉîîm°Ûw:Æ6æ8Ãa—Cß‘”UÍþxÍkœ ¬žÏçõüPΉô‚HÂÇqšÆ1zf9gøñœHh–ìÇ]ô\–B @ÕîdÆîÐíc™ü3„`22¸ë‚}Æî²CÓšlðžÈ€íV»›a,“K:"xÝÕî²ÁÚ’ÌØ0˜»"e|ѼæW»`³}ö·E{ÞþéË øÊPô¥ ç;åÕêjúÌ9kùwï=+ù‡Ÿ5\S5Î 9Ü—>ŒJþ¬Us6ïþ9ø6¶îû[ Uµyo‘2BHщΖ/~ ¡\–ëlS­ãÃÀ€¨ÞúÎêþ;IÝŸn@UåaªF)  B)•q‰À˜ËSh»Ö5ÍQÕôÆ,iÔ´o¾—î£ü‡g»&?°BÕ+mLãºéƒ2t=$µNbÅ»”)ÉÔ(^i.zÐÓ›?¨ï=J�r«Ø¢B�»âu’‚iÅ,©†€äµsÌh¦ïƒ+Õ÷Æ RòZ×à ýúÁŸ¿à)‰{Û¬–•,»ŽŠP!ÈÔ¶]*t|I˜Î‚É –Ÿw€zõ²žËïþè 77ÏÕ C5 >ú0®Ë“Ê.¥”*›»–/Ë DÛ.D—J´÷%}ÒQ/f³°ú„×5†ôð›7CU 1Ž�LÓYe͸®¨=iÊ…šÎ?�ÍcÒ“Ö˜ógîãO¾þÎê­y˜?ÿ+»‘/s|ÉÝ ÚÔZ·®q[yŒ §ˆ².)õßk_|ûïŸÿ‚ vm|ìâ4•€!Ž9»Œ.Ž[ªHŒ‰cDÈù…y0ÿÖ§Ÿ®>ê®6!TUWŽcN7]ð:;v×уÙâΣ~ô÷_üñ?‡å“í8z)•4üã:9¬SjÓ…‰_™¹Û\ÌŠè‘­ö¼™ÃϾ÷§½Ï. BìÆÉÙ2Û÷Bj| ô”(’Zh\/ˆóé‘ÄRcÖ ×Æab¸èç—/>üð'—ÃÈǨ»¹-¶Æ&#ŸÒé yÝô HGÏ5ùñ‡).²Â{ðYCNUÑÅèÂ…A}þüÊ­ÙV<’ì.¶Ñ “N©¬´è“Ô˜Z a­‰ÑcV(ƒH1‚mf!†ÁGK=»„óUß_êyBóã§ôô ¡N¶ýwJ¿x¤€ ‚AdÎ5½é›<"”Ú%î•k.[%Þ@úQT²«ª_¶­¾¸){OÞ{4:ã\„t4ÛC?qìgR|ð„~ÿ "ª®;v]Ç3<€É vè½²û×ẴKâk†žE©ºãã#m�°@}AÖÌa$egû°Ø ëQÕ©ß¼KÏ&ðF´Ç³_•Þ–èüFhgó<¢WÃÞÄΰ-Þãê (Z~<ãè‰2Fò增Ƶ۷€X©°%ÿXÃoŸ‚Ùæ87°9cu½È¯‹�‡qŒ¦ë÷öxKþѱ2ø.I%rv #ªTí\ŸBÓT•ÖONÉ$~tÛŸÄeƒm›—ƒêàLÊÐÛ ä½ }³Ûa}Õß´ | o,Âl/a�Q«Ôïjv@¾E %‚‚yp_Eá#™`Çaáঠ´Á=è û 6ÄÉEçÂÃàW[ ÕÑ®ïqJ-Ù>…›B˜vv[º¼y<§1Z‡¾ü[OÓ~«ÀöT§C®Ì­†³ß_R0sÖ¹_³;°ßP8_ÀÁ³óðƒŠâUFng‡¤Ÿ<ïkèc´VL·½½f±g¼CVLÆp› îÂ/@°Í+QôÅ£1md&k_a76Ôgôv*ñ¤4à8þ5ÿözõ%|nN����IEND®B`‚IMAGE 1917 ./arch/monster/dragon/Dragon/dragon.x32 ‰PNG  ��� IHDR���`���@���Òê‚<��VPLTE���Î��ï��9��B��„��œ��­��µ��½��Æ��!��Ö��Þ��ç��1��÷��R��Z��{��)��Œ��”����J��¥��ÿ��k��s��c������ÿÿ!!B�1�Þ�½ï�R�÷÷!!Æ�Æÿ�¥�ÿ))ÿ11ÿÎc„ÿ!�{�Î1�ïÎ�c�!�)÷�k÷11kJ�c�Þÿ„�ÿ½1ÿÖ!„Ö�ÖÖ1!�{½Jµ)c�)�ÞŒ�)�!Þ�Þ)�ÞJ�”1�çB�1!œœ�œ!�J�J÷)�R�÷9�k�ÿ�µck9R�!9�)�Z�ÿ99ÿBBÿJJÿZÿc�ÿ{�{�{Z!Z1È`…~���tRNS�@æØf��ÕIDATx^í•ås#=ÆÓ-f ƒ!É2ÃËŒÇÌÌÌðÿÓIÎd7ÙØñ›=»îË=Órij¬ç×=-ÕüïE)-ʲ/ú²(é~³›Ö: +ú~º8¦+":«ŸÒ¾ß5às.NBôÎÂýrLj>Õ+A¾�ÒäþŽßÔÜãTAD­´x—’ª8Ž “0jõå]·ºò1Zаjƒõ¯ÑïTo³y®�]±û£�qÌŠ1M¢Ý9`&&»Ùm»ôê ÌñÄʼnºÜâ\¼!º©ظ~r.>¹:¡ŠÙÌ.%/C˜yÇIþæú&„‹¢ïõK�Ô3ÿˆ÷Ë‹æ9B(>ùâ¬yïüæ³HŸÒ!¦3„‹Ñû˜…èÖ”!!°=¼Á+ñׯ\躓_cøÄ¹à-oûªÄÍ/$ÝLz—œ¸’`ºÕ„ö…,‹²ýiyãÛÜzà/!@×¥e:#¥4¤2æTUEIRhÚ†³ìL­õ|ÖÊ·þP=xsÆbSò}A)íj©´6¤×`A™šJ­A•ý ÅÀ[cÚŠµC ƒŒdb\Z•›ó·_XñëõPÌ: *¶HJÁ: BöÔ:¯)´Ò ëšr¡l'ë”y/[ðô4‚B;¼ý¥ÅÃ[€¸Hèz·ÈoÝJg¥14M;dµlî ÎI� „„‚+†•mËØäÑ[€á×ÿñ)K/ú®˹G�qÞÉÄ’ÒZ-„Lä¶aóœošo‡lí}vZ5_”âk”Ýú””úž,.ø yŒ#�Œã WÊ;åRXåN'à¦<F5*eE:à´zŸ-Eß7¾}Ðõ[cö=YtiLÓ¸.2ÔˆV,’ ùàýo¾Y½UÒòÞçÏh×µùeDÀ˜½c|^M›&#C´ÆˆÈÊgñõ×›'ßýÞ‡¿`ü< MŒÞ·�ŸtÁ«œÿŒ9Œ¹¸#z­m¢,NŒ®ëzù?®þÕžkÅ6Ž^‹F)´çÈeœ”1VU¥ÀcŒq•¶S31æÖ¬º„Þ2­¡§^?øý«OþöËèü, ,¢jËP„ºÎ{ü¸ÇΡ“³k”òˆ`c–S�§HP°Li¢ §fýoü÷ï¿Zœ„Ž¡-)W4-î»ã#2Ÿ³JzÖ¸$ëQÏœD�ïÁ#€#²SÖP¤Ïòý÷“W^ùê�ñÌʺ~~ÏõpìR ”Zg§lå]ž¨¡�§¼·JÛL„Ì "¡ÏòÃ{g?ÍÁ1/‰9Û“ÁêŸ=vï:Z–%mšf8oXÓôŠ)-5ãÐëÚ¤&Òdÿ\¿›«3wõÈ ç¾äoX÷gçPZÙEOûsjšÛ¼mbÀ! ËœͱAuÇÔ )ü£»î/� =üyÛÜfœ_ãCíµù¬ºv±Îz/C\®À ¸�mþ í9‡B¶‡‡ËÎÜN-¿Ö°<fƘ.ÉXt2ló¯±ÕÅê²kåkï¹G#xÍ›ÃÄ4um–ÉuYsš —ýÖ°“t ø°ûÜË–�ëD-",ȶ F¶ÖÿPÁŸƒѤÖ‹XŒ¨Ûz+`Í?–‡RÛ÷œ<u`£Aï­º«r •º{ìôÀ–—m’T0—öÀw*0F¶pzAóÒË Î{Mk³™AíšWTs{ޘу­¢=x´J5Ù”¬(aABIÉgAxtÚ�l8˽¯Ö4Ù­]ô úbûF§8$„®'„Üä‹ê–K#z+弨† #¥#½Ê6Í„ÎÄ1b VÝî@7ÖBí|Gš"éRÂô<+•@!Ù>ƒ«j;`ÒTÀ “ù ˆõfün,ìUµgõž ˆa¿ˆ|Bx&í†ZgH äaG� Áì‘!ˆZ7õ© i ;Ü“ïbRÆl¿Gåì×ÿ`¿ú¿þÖHˆ8³¿´*����IEND®B`‚IMAGE 1784 ./arch/monster/dragon/Dragon/dragon.x33 ‰PNG  ��� IHDR���`���@���Òê‚<��5PLTE���Î��Ö��Þ��„��¥��­��µ��½��Æ��9��B��R��ç��ï����!��J��)��Z��c��1��Œ��”��œ��÷��ÿ��k��s��{������ÿÿ!!ÿc�ÿ!�¥�ÿ11ÿ�÷÷!!Þ�ÿ))ï�ÿÎc{�k!�)ïÿ„�÷�1�Î�÷11ÿÖ!J�c�Þc�ÿ½1Æ1!Þ)�!ÎÞ�1�{�!�R�Œ�R�!”1�1�÷œ�œ!�÷9�Z�Z!Z1�µ)µcÖ�ÿ99ÿBBÿJJÿZ½Jÿ{�Ö1)�c�Æ�ÞJ�9�çB�k99�)JÞ)�ÿ� #~���tRNS�@æØf��qIDATx^í–år#KF•™ÅÔŒ’LÃ<—–™™yßÿ6Kº3–×smköúÇFøt†ÂVt}§²R!õ↺/¸FÃ<Ï�à»ò«øP­Å–˜¹s·¶iš¶ù“«à™µ¥Êo©¹…|BB ˜%‹^7¼ªV+MĆªÚÂÆ-¦iž§)ÅvÕ„½Ó½‚(T gïòr¾"N/H„vöqTœZÎþ2„$¾raL ÛêÊù$ôú¢¶…01åÍO‰!Ë(ï^-ø¯¤@ž¬h"â4o`CŒD‘�ÌØ»W&Ÿ=¾ z²ëÅeˆ)o~ÊéˆÍкSÃNrøh×¢Gο ‘ˆAŠY“‰Fl¦pÞÎ<¤.ˆµ¥ó^œTÔçu]N¡ªì® ¦Þ,_-pßíÊ¢t®âð˜ç0m8Ÿßå« ýaÙ߆7±#HÉÃAQl_Ër”Ì8ªq‡.ÿ7ªUÈ©®+‹M¼¯‚s]'~pûÁ¸V¿ý]Ø™q2ƒmw²¡(x™…¢ÔÚ�hÏ"­e5îàCp¼…~è]YemíjÙ„føgóàMìÝáTÓØm»ðœ–›o£¢ÖÆÚÒULY{m-˜¶’z“îǵ$ ¤T²Ô¢0bÔH€¨?üÙúîÛRßwZˆ.Ps[UЭE+ÕŒx¥+sÁ ¶®ý¨ ºæWJ‰v¤h¦ÉÐj|ö=yÕ¿ã© š" ²~D•O5¡FP²ï™ÄŠ„qt ¸Q:¤Í0Œ ÐL�˜„òÙ7ÛÛ$€:5¬€æR‚)åÆS¾;W$Í.­­RšÍC/Vycß/ÇAæèsúÌáÈ¿õwßrûT°h³a†y‚‰k�n‹5Ûw“‰dˆ ½øh»NŸAeVm£þäÅ£w]c­>k ¼ÈÝ.ÚÖF·©é|mý)™ª–?ì~ýT´m¨*ùàk;‚ź@bq�¯H«òê츨XbmšB›ƒÜ{O¿ýöúÃÆ7ðKìж’±‘€% àx;…hØñåÅ Dk‘-n›óÇþñÉ_¾ûþ·Ä˜g­S½RZYöÜ;¢££¬Óz;…YœiÁmßdEŠ(¬1Îø.>{«ù×'o¬2ðÎÑt¡«ëQ¼t‡(‘^Ü4$ļC œœkb c–>ùløäOŸœüè=¿bÁ«);iÕ½c:>¢hÊZ™…¡8~™â’1Bd 9]$—’óCõ÷Þ:ùýßž\ô«íF+)÷@f¬¥2(û˜a£I)"+´E¤” +>yŽßRýôñ­“Å­Ÿ_ Xx‰öûwèÎ}B#»þ¯Rñå#0œ+)E[—¼ÂçÚ¢ßÿó-]$p½Ÿ#ýš(i5Å×ûÞ¼üQŽ‘bŒh ã\yîÑõ;+³¸?ªñƒûô›‡PÆ4}AÌ=XCL¤Y°?õ ÇO-=$JJ‡Æ`†(EAµÁu"´îu ‡Å ?‡ÎíØ,>γÍÑüBhµMîÓ”ìP/^‡ƒâ #P8öâ`!00V‰Õ²}ùÔ–jY¼Nþ_ݪ眫BBÛ.ùÚ plˆ`}]–ûѶø)=ò.XàQLh´ô{Œ¢,‹Â˜ûÇd¥8<¼ôÑ<ÄD¶ðûô�G`[•Î;Ÿf—<ø= õˆ÷àùòª+§Ã^†Ú( Í•vcXìAYZKSS…êjŽßËPâ4¥ˆZ¯ÂÕ‹ý(Šrš§Ô9´ÜüWOWS~œö\Ìu\ç\ŽÏŠÅµqÚÀu‘ï6ü_sà 7Üð¿awÞ-™úÉ����IEND®B`‚IMAGE 1763 ./arch/monster/dragon/Dragon/dragon.x34 ‰PNG  ��� IHDR���`���@���Òê‚<��APLTE���Î��Þ��Ö��„��œ��¥��­��µ��½��Æ��9��R��B��ç��ï��J��)��Z��c��1��Œ��”����!��÷��ÿ��k��s��{������ÿÿ!!ÿ11÷ÿ�Þ�ï�¥�1�Æ�ÿ))ÿÎcÿÖ!1�k!�)ïc�{�Þÿÿ!�c�÷�Î�ÿ„�ÿ½1÷!!J�)�!c�9�)Î9�)�Ö�Ö1k�Þk9�Þ�Þ)�ÞJ�!�çB�J�{�J)�Œ�R�÷”1�÷11÷9�R�!ÿ�œ�œ�œ!�1!Z�Z!Z1ÿ99ÿBBÿJJÿZÿc�ÿ{�µ)µc1�½Jt® ���tRNS�@æØf��PIDATx^í–år#ÉF•™ÅØL’LüÌÌp™™ùý`«,Ù–×íhbæÇÞðQ†¢Ô¡ú޲³;Z³ÿ®¸¢Yó Ó4€o†g'ð®X²JHLϨ_8ŸX,ü e3=›x_Åb¡½OË ë®p—¦{Ï¢+ªuöfþŽÉHé .`­wuUUuµU°2¸·¾m(!¨¥Û²—1"D=O¢íwÁàУaõl+l§ic`•[8wñ†ÉÉÎ…9/(B‹f9ÛÓ!Ž)ŸˆBD�µyB›\MãÞúdÞÞ‚×ÿsNàBK—æÛ¹Âý`mÁâs+‚Ršm(šÆÚ¦a¿¿uƒ/å?þ·)ð!z=?ôýê}¸Hp.yÇ»&Ç`‚d>Gm†þ8ÞNU®ê~RÝxÚ›×ÆÁÇЙú,ú>m3ÐJi�å“H)Á7ñÎÙ¾Ú®µÃ°ß¥1‹9©×¾X^C¨ë“ÛAäuWÏ|Êvóã;¹/•6f°…=”^º.„:N÷|É:‘BH1(ÖkÆá¨qÁ=×Iþ6œŒ4ïÀ¥ÜZö=4KV ÉV®!/Uá ƒ¶ÖmÀ”¥çRS¯ÊÒ˜BJVs zI<úA}ë¦�g† ÒÈP´Ìs ’ù¬“BRR´m'2[`ǹm€Àra= ‚U]Ç%PJ‡1€øÓíßg)ãÖF ‹0MSŒ0Æ<ÐC+ J.¥ˆŒ”y ]Ëyî¼mç¼9:„œ>éHzQWò=ÏnÞ·•¹£6ZÐq‚ôaL5À4­ ò¡\QÔ˜Š4ž,�׿cÒ“Ö$Ó•è—Y]»¢7¾ÜlÁàx¬XÕjÓª&8YŽ—U–ÇzŠ$ó…hßyø³7–¯U¾ºóñ†`V/5&"¦€!ŽI•wgÇ–Êcâ êUÒO´÷¾þå‹?g< 6µH„€�àp5… “ãñ5B ÆP²ØUÐíwoW_½ùæòÏ]ÂyEme+¥’&y®àÁAÖ)µšÂÄεàW“"bFk«}³Rüñý—îýó×ïø…›] j\S–\jºx„QÍ5Ä\ ÇSÀ­æ51m, >ú•¡(>ÿÿ~ø’K‚ËaäµC<<À ‡R�êtd0NkFr1IC€4hUmŒÖgC¦øË½W_ý÷–Ç‹åFbî5/…Ì]0©ÇSC0.Ò†“©f>úŠzñN~ð</Èüâ^AÒ¢i?JþŽ!a¹…d0êS1 ƒ)‡´Ãç:å7 =Û†mðoˆQÉ®ïÿÛ žŸ�† ["çº €øþlw<—üå·ñïw!’êöö>êZ†1†0Æ@ å½§T“»Sî þ™Á»ˆQfÃ~?0 ` dMD4F Ϊ™=}§>øÞ ¾—,?”Iž¯æÄ ŠÙS²×¿ ø Hâí™àø,E“=xŠjûtñ{þzd»Î—ÚdÒ;„�Z:7³Çhºò)û{ÊÐJÅÓ�VÊ<å˺ÎÖc$%úÃÐ÷Z¿}ˆF°ýÓk„%`vë�› t3ìlP€©ýÙN닺ª«“è3†`|9ìæ(9]ƒæþ‰þõCˆ¤•(í.- TÞ>‘"D4€÷»ŒÁèÂßih|œl´Öïbè÷÷)_ö¤ÔÂ}§ÂNÞO~Ç;¹ÆiŒ%þ òg©v¡)1ŒÓäS%¶Ö_رÛX›ã³böÜ8m๑ß3Éð½æŠ+®¸âÏhtqªZýM����IEND®B`‚IMAGE 1818 ./arch/monster/dragon/Dragon/dragon.x71 ‰PNG  ��� IHDR���`���@���Òê‚<��2PLTE���Î��Ö��ï��„��œ��¥��­��µ��½��Æ��9��B��Þ��ç��R��÷��)��Z��c��1��Œ��”����!��J��ÿ��k��s��{������ÿÿ!!ÿ�¥�ÿ11Þ�ï�÷÷!!Æ�ÿ))1�ÿÎcïÿÖ!c�{�Z!ÿ!�Î�J�1�!�)÷11÷�ÿ„�ÿ½1kc�ÞÞ�Þ)�ÞJ�9�çB�Ö�Ö1”1�)�œ�Z1ÞŒ�œ!�c�)�!÷1!J÷9�µ)ÿ�µck9½J1��Æÿ99ÿBBÿJJÿZÿc�ÿ{�Z�Î{�9�)R�!�îÕ ���tRNS�@æØf��–IDATx^í–ån#ÛF]U›±™l†ñ0Ãeff†÷…»w{ÅÇžÉIþ\Íç²dµìµºª¬î^üÿåMÞ¤ª«ªª£³öVàq©Á{ÈØÓcµ2Å4ŵøq=® z*ή#ˆñ*ÏX+�O}. _ß?‹gžíX'M  §”"·AA3v ~ÜÉo¹ðÁûš“gôÚ3Ž1fOÓ\äÛºÓ�³£ ¢ë,9þæ¸Û.¿óYLüf{L‡"‡ˆ‚GŸB×üî¯rÍïßý>kkÛŽµ g³É äÍú51ÜyÐâ'÷«_tU¬TžÒeÃ&yþ!IFk‡~°cŒ£}%ÁtG‰÷ï¬ÿð¶B„eÝ¬è‡ÆfW\É<š0GÁ›Žw\r.Rø0ôýüí~_¿–xG|ø_y]ø•1åÐ ƒm»6ýÜÆèø…ŒB©v @+5ô`Ò©ô=\Í—�âÁÝú¿ $ gºgjRˆ$[s7;”k Æ(WÌhc´*{ç\¯h#ÞåB°·þõô�èàyͤS'¥êQKîÊÒ€Ñ&Z«ƒG7*éÀc•Ž\Šš­�ì—vñÕcSÙ·0÷YÕ+]�Aò®«˜у³‚[@h,çȯX'rº¶P¡W˜7"{YÇ‚¯Ýãëš}¾v‹ÅR“ž²#„¬_¶-Ï¿_±¶K%¥AT*Q•�Å\(pŽàÇþ%Á·W®z{ýþ>ÿÀ&ᵞfG.½ö¹Î>MsLÓ¦òÇ¢à¼ïÇ—œýç‹ï~ãYûá÷ê,¬%Ò¤hC(vÕ4×ÌkslÊ yÙU÷îúÓO¿^=ýéÓ±¤‚ŒÉ¨iÚSY?¥ Êêi¢ŽÂö”âÊ}ðË¿={çß??SÚÄFcÍçuué°ÙÀ)�xðòå¼ë{·%ˆï|ëï?þíxÖXã´ÕÚ0 ”g0Ûn5À6 ¥NNüÉÃ�ÆH%%øP­Œ[‚_½÷Þ³œÏÍ‘ÐÍ0! ÈiºÆæƒ¨—Ê“÷÷<<D-yY6±•&LEGnûfüø uÎw–ÈR¯¬ �y q‰g—Ó”à5 ¤=ˆrÐÁŸœúÓ‡Òˆf˜Û¯:M+¶÷¬Wï^:çÈ-†ˆ<¢Q hF"z ­@-EɵÏçïO…áö|ôÄúfqUœËµJÈÖÆ$„”ó‹Ð ñͶý£{þÞÏ Š #)K…,¾Š kuŠÁ‚áü–¬Ûö÷}ßIEÞÿÙãs®Ú‹¼ÁªÀ|sPШÐj4)�€¡xê:{Üu žüÅ?ú’Kî¶�Íl*¶Ð(Ohc-;…¼Ç�£Ž;%Éû'Þü‹î2ÌiÖŒ*¤F«È”Aˆ²&oû‹ã–›�Óÿñ?U×½ˆÀŽÈÖ@„›ÞëåŠI)Þû€lqÌZŽN<|Ùï�DÓÑÊÎPAx¶¼,I¯:Æ*ŽÖ¦Z îý ôñƒS=ío¡ ‰üxeƒi \Iÿ1u|´Ãp`ËC£!$¾Ý÷7;bÂøÓGZ÷ý0\À>Á0”΄à3oW8N%þ« l)”F 0ºÅÁ¸åsxˆüeVÙ‡Ý;p`0žÂ«à­«@J½CÀÐíæ;kÉNäšCô1ŽBáIÚ!�{Uדs“=„+¥æûõ;øë0680h*¦bó`ºcÇÍ•‚üNÙËÏ™¦TEðeBíù]3ŸßÖ6vqmÁá2à0ÿú’Åm ~/ÿÓ°âV% ·É/¢ò«ó›¹ÄnʆM_}<Cãæ'÷éœo]¶1c¦„Oüh`‚”ò,­1D™]nð7£˜š²~‘æ†7›7p˹ÛüŽyd“1[$����IEND®B`‚IMAGE 1920 ./arch/monster/dragon/Dragon/dragon.x72 ‰PNG  ��� IHDR���`���@���Òê‚<��VPLTE���Î��ï��B��„��œ��¥��­��µ��½��Æ��!��Ö��Þ��ç��9��÷��R��{��1��Œ����)��J��”��Z��ÿ��c��k��s������B�ÿÿ!!½Þ�R�Æ�ï�Æ÷÷!!1�ÿ�¥�ÿ))ÿ11ÿÎcc�ÿ„�ÿ½1„ÿÖ!ï÷11÷�c�1�kÎÎ�ÿ!�k!�)J�Þ{�µ)J�Þ�{çB�Z�Ö�ÖÖ1Z!Þ„Z1Œ�Þ)�ÞJ��”1�!�œœ�œ!�c�)�÷1!J÷9�)�!ÿ�µck�k9½JR�R�!ÿ99ÿBBÿJJÿZÿc�ÿ{�9�))�{�{ûI›–���tRNS�@æØf��ØIDATx^í–esãZ†Ó}A¦$Ã<—™—™™™áÿÓ)Nf2±ã›»NÕ~Ø×­*UJ~žÓêYÿƒ!}êÛÔö}"„ìÞ¶‰*Ð`µ7æ{¦·-yU[‡ã?î‡{Æ÷wÁ:Ÿñë¸oî÷ÞÜ­@Ÿ)¯þ{ü@ÞZi@ŒëÐ/ö<Þ/*QçŒøaˆÅÞ7лÞN� 6F¿wÁAr0®=¬Ÿï_`ã!ÆaL„« ÒAk'°]ÄU )íðôzBÇ.®Ê%z¶$Ází.~F~º”0Ï‚SCÞ¤Wè¶Miô”åæÜðÃ:ñ3ì¡ô›7áQ5ÿÚ+)ó³á¢¤¿‹ñÌ ®.øý_EÁn>ú-ËÊrCnýœó>¢Í™Ú„Üt>ß?¼SÙ7oö¿èúÔËÔ’IQ›2œ¸Â;7r¾šsCð¢h;Ö1ÁÏaÆÔõtu}‰`x(ù{‹ï½%­…ùBëÆÔKcBÕUùëM EÁÖÑ\Ê &@IijÐy)u —uðkaò·?d §¢³’QUSi¸à< xG‹Î˜Žq!yÛ+ÐZ’Æ(° Û`´V²© !©ÝÒF�üΣÙ>äDå›Q!ÚÜI#k«#M£A+BPÞYÒJAÀÙ2I•˜à3Z”�¶ž'H›çôµ=ø2°>BvX¬ëzÊyr@g,”±è´ãcºªâ¬´NÚq"¢3×Öøò¶îÃkw(ù‰èg eQ £ÃûQÃ;6¯*6~A«.s¤ÚZ)3U:§Bž1 uÝ^|á&oÛ4›Ñ ’ÿe…Uj˜c9PÖ)7ÕúÄ+Œ§†uåÓYdâ‚!}åvOú·Š÷¾ýÁG! gÂâ �ñ„7Õ0ÕÄ=©ì5qÀý w)1ú‡—¾ÿݧÕÛ?MÆ�#jQ±¡ºg«ŽÓ%qTcŒ±«kr~Ý׋—_þNÿàWNŒ³Ì¶Z{œÖõb çÊŸLà�8ëÁù+‘Î ä£_þíé'ÿøù©’¥4µY0­.BÄ\¹©éTQ1J9"ŽÜÑ=Z )D%´b‡äyAúäKÿñïÚÓÑ”D© µa€°.¢\ƒhÑ+UÑù\:t{V Ö4e*ûNa¤±}^ð¹÷ßú­³¿$ƪZ€¼@ïæu9�Ö¢÷² ‹E8:vÇ÷„楙�}è„CZ—ç~Œo¿$Ïø$ †,)aäY­¬÷ÊAâ r´v~Òúñœ’×fáŒ×4ÒRî!«Ìèg ‚äÀ4Ú£3†ÿVjEU[U´bü4UU‘¾ï‰»ÿÄ=ù™¶œ<0Azêʃ-!$Wö,9 óù®c·ªª=Ò¦ÔI+ѹ?;û:“Õ¹—-С9Ø‘e)½·5¥‡‡Å|qØqvÈÆƒÑ[U÷ÏU—ÿâîÌ#çDÑz§à ”­©sŒ1sZÒñX,n™z¹ZuR sþãÝXZî´Ò#œ^fÊf™UKÓ4&VÓ†ÇîweW//�’îpW aˆ–l–¯hŬ€#׫Mƒ”5îh¡é4F´a‹~UU<<ù¨ÕFî)×\ZD×n½ OIáÞ°Z®–Ö·C`J>óÃeÛlI¹vÇ÷•·ÁUÆ4D{ï.çç2Óp4æBµß6ƒÐp©,zhÉÁÎùëpϲfÃ-Ú²?0Ú¡ÿ4ø@z`…Ú$€°™OBÀ0 )wÑÛÔ*ðÑim̆!¾ÝÖõ@ÈváÓBJë1F»\ÖwQ¹ýa·Û@@ÛPbâôbz¥mJÆ#çRþ˜aȽkÊü,øo’Ù“"„2lk`wv·0ö.8“\7; ‰Yp)éõòꯓߔˆûà—ë¼�/K:ìaÀ¦$Ó»ûpÆd´Q­3>ó÷ÑÀ�9Íi*­Gø¿ÅP6³uÖžýŽsœÀ5g†ÿç?è·†Õ ²Ö ����IEND®B`‚IMAGE 1779 ./arch/monster/dragon/Dragon/dragon.x73 ‰PNG  ��� IHDR���`���@���Òê‚<��5PLTE���Î��Ö��Þ��ï��¥��­��µ��½��Æ��9��B��R��ç��„����!��J��Z��c��1��Œ��”��œ��÷��ÿ��)��k��s��{������ÿÿ!!ÿc�ÿ!�¥�ÿ11ÿ�ï�÷÷!!Þ�ÿ))ÿÎc÷11Î�k!�)ïÞ÷�J�{�ÿ„�ÿ½11�ÿÖ!c�c�Ö�ÎÖ1)�Þc�Æ�Æ9�)k9Þ�Þ)�ÞJ�9�çB�)�!�{�1�JŒ�÷!�”1�÷9�R�ÿ�œ�œ!�R�!1!Z�Z!ÿ99ÿBBÿJJÿZµ)ÿ{�µcZ1½J1�zåm¾���tRNS�@æØf��lIDATx^í–esãJ†} Äd Ãe†effÆÿÿ¶[¾ã8›L&Þš|ت<:®Rùy»OK–/çŽ;Ú/¸{Ù:�˜¦éµû릮ëÆ;kÛ ˸eSy÷ä~¥ˆcÌ=JXº-™KøêÍñõÚ@<ŽÓ4Žqì¯@U%=‘Z¯«êðï׉DŽÙ&ì¥Ô•'ŠÑ¹C2ªFD¤\„ ãu§†”Q]æÕzë¤I�'Æ< :Æë&¼Q@‘ªÿnÕ9¶4�¢’šÉ=º–&rtAå?ò»œ=¬mz�1gŒÌœùUl uP]ôûÙ¹¥Q‡1Ã̯N@ü~€©*ïsÎ廣‹ÞäLf_�ƒ;øÇ{p¿[}ù#Ÿüi»œ°%÷?¤ÊÚ²(må}e¯XéŽÃ^À¿þ*7ÃÓû¿‰mk­¯ÜQ”­Í;~-‘ˆÂŒbhû¡ä0ˆÄP–E1Ÿ]\�ÇìvþððQ‡ï=­Ò×¾^­Y–ÅqYÚ®ïÒ×­÷nØ£J%±S�Z©²�“†R°—Ò˜^óù*ûé¡o>Üüð3…„jˆºˆªRˆ ú¸Üœ¡DÕh0F¹e©ÁT¶4F«e1ÿ­|Jq‹¦é›Ã^@øµÄ‡âÇokÒ㨠M”²J3YªµÜriÀhã­ÕÐUJ: l½Ò~¢‰›�‹B6)ÉKèW8†s¿î7?[ kF ‡¾¯£žÀY1X@hí0x`ZÇ^dú®P!)Ì+"ap±=…‘ ÞÜ„ˆŸüèã?�‘õ”3BÈ1¢V]7äï¯c×'’Ò *•¬ŠÀ8yáyf˜&‚õίŒ©í'¢û𬛵–¨õ4gä"ÐHšr½Ø :Yƹ ©¶•w·GÓìoίÑo?Uå›&¾µqék$ò¤yk¯ªi®Ù›k{ìEL”ý;üçP»ú³Í›?}ë}›@Ù˜¬š¦ë*‰çSFæ”AL h6‹süõé/¾{ö¼ûÊ6Ö&7x×ËK‡í œ0�a�#MöìðªÿãæÃ³¿Süƒ¬o¶Z›ˆsæ¶Ú ãŽÛƒ£RYyrB'“ÙH%e'm“õûøµ{ÿ—ggÏ?øæï³ß±+Ñ1)F`ÈåyÚ#Æù ê•"&z@ð8ß+ËeëÛúª'îßÿûÙ½ß~«šýÎ2[.”%�»àWxþs:Ò1°&ËR:9¥ÓÇÒˆ¶\¼ÿ·{‹³{Ïÿ™ýÛÇnQ¶ÀLˆF%=æY ˆH:ZŠå )ŸN…ìâ¥øô¹÷õOÕΟkQ.M`*­õˆ»‹Ð ñ½®éÉzð3ƒÂ-®G¯wéåS�[«CÂ»îßEÑKÅD&|gP]L«ˆ­F“�� ãpßÛ£¾WÈðì/ôäÝAîp¿m 0´Ö72¹L„�£Žz%™è™¯¢_î_ö†GÆ<²ÚGesŽÉ«ýÅQ7˜�Ó3zãKª/Ž÷B!óîÝ©Y­£4 ¢€qq»%œ¼[l/Ë¥3’ßfû.$m÷µ¯¬MSè$xð'ÐG&X'”FDþºK#­Â $½FÔ"Pâà_ù‚||…¡Ó'ZEYÞØïÀ±Øµ7é¥k œ@¯óçÍÞôüÕ;ð‡C.ÓÙãåªAJ}@€Ku3å+ a$cRƒáfz¿V #‹×ƒ¶åqËâVü™iJ5Z¶‹[ ëóÇÚÖ.nq ‹ÛĹÛö/þO¸ãŽ;îøÁ2tçø„ƒ����IEND®B`‚IMAGE 1761 ./arch/monster/dragon/Dragon/dragon.x74 ‰PNG  ��� IHDR���`���@���Òê‚<��APLTE���Î��Ö��Þ��„��œ��¥��­��µ��½��Æ��9��B��R��ç��ï��!��J��)��Z��c��1��Œ��”����÷��ÿ��s��k��{������ÿÿ!!ÿ11¥�ÿ�Þ�ï�÷1�Æ�ÿ))ÿÎcï{�J�÷�÷!!Þc�!�)ÿÿ!�c�1�Î�ÿ„�ÿ½1kÿÖ!)�!c�9�)Î9�)�Ö�Ö1k�Þk9�Þ�Þ)�ÞJ�!�çB�J�{�J)�Œ�R�÷”1�÷11÷9�R�!ÿ�œ�œ�œ!�1!Z�Z!Z1ÿ99ÿBBÿJJÿZÿc�ÿ{�µ)µc1�½Jö�ÃÂ���tRNS�@æØf��NIDATx^í—ÕŽ#K@+"’±˜l7 óe†effæÿÿ€Í´ÛcÏÞ¾žéÖöîú(¬”Ꜭ,Yeÿ§ÜpCwÎõØËÎÀ<ÏÝ5ÞÀ ‰šmYUÞý×sW»-™•KøêPÇ_2±BU•ôDj±¨ªÏ‹xÉζ°Wi*OÄXŠ]àÿÀo;hÚ¦iZï¬ý¼lÕ†Ô¨.ðûÃþ$^j "DÆõJ1ªþ3`ªÊûÜéºÏžÞÂ7 !ÄišçibÅAZfÈ‘Ññgp«_~åŸü©Ðíß´ ‘0¦4+³2Ô‡ê…À¿þ"Wüέ_³®³6Evz¦• Sf½}¢0EVY[Ž¥­¼¯ì…ìƒß÷‡Ûw{|v§ùÁÐøFùÊ­cÙÙ.ŸDJ„5BÞ |à’s‘àe9ŽY2Ž;áR»Ü^`¾­Ä{·WßxG!ÂraL]ŽÇeiû¡O—[ïßG(•ÄNh¥ÊLÚÊ8®Қ!Äý@ø¥ÄÛâÝ7ù‚ôD¨8Ó#S¥B¤€ØŠ»uC‰ªÕ`Œru©ÁT¶4F«z\“—>U\Ñ-¡Úù%€¸{«ýΛ£†Iâ-“²2¦®ÕˆZrW׌6ÞZ]¥¤ÂÎ+í¹-[u�8޲M%çýÀ-.ûèû÷'�0L’CÄðÎ n¡³œ{ˆ´`ƒÈ }/$ BRÈ“C"w¬¦ šç~õÀ4ö£»Ì}"›v¡1ê97BÈ1ðeßó|ý‚õCò() ¢Rɪ(�Lë‰!†üàã1Îó»øæQU¾mÙ‡+WK‰ZÏëF¤)ÏöCÐÉ2­`ž7“?nVÓÌQ7»À—4®ygõÞ>|jS°•g 1n ÓE3¯gíͳYÛÆR‰Ì¢Ø8ûñ?ýö£þݶE¦ŒS4&«æùÀäü”S„Sƒ"%ôªÝó«á÷«÷ßÿVsÿãû›¢Mn4&ÄÝ^/6Oà 0"Ñ&ý¿pOþ×GO>ýíFß9mµ6 S ï.«{aßl³8)••''tr/™TRöÒ¶Y¿÷O¾û·ß|½ª6~]‰Öh†I1A„<¦ç;_D½T‰Îî¡–¼®;ß5ÅgðûíGÈúŒs6FGe)YäSˆÑã4Ÿ3‹:DM êR:9¥Ó{Òˆ®<ð2~ð†ÚsÑe—¼„h4†àMxdy÷RÔ\SÞ? Ãmq�½øÅ¾?OQÖ&D*KñUe’ÊîD $ö+©ÄûNh¤·Îèì'…+.Í1‡HP~oðÞPÌn@ß\ ÿÇAªHô'ÂÇ\õö N…€Î9eÁ€Á§b$Ö_::Fxøgzíu.¹+®@§È•œ m QÌê: Y9g¿ŒDÉ|‹£º¸ • J®N‰d6ùÕYq`~H?û‚ÆâJØbDWj0™¸>Ÿ] ç(á-‚×Ç£«ùëÁÄ)¢-¼—BHm2Zžz Îþúè*‰Q(Œ‘ªìjÛ$)Ä´Æ6‚ô¸’t†F_áO€†üö¼çÛ¦ñKÀ°­àø˜ C§¯i=Žey{Y;íüÛLÓ6måv«¥k œÀ .ã·µPc€Ê/Ç-Ã=äõ+ë( ÅðJzëP€RׯîwÖF;G×½Ô^ùJC˜È˜K=€ÂÍÎÍö¥z¿P óÇâ28W¼BÁAÛÅižò/ÓKár$qØŸ™ç4S º+®¬Ï k;{þí-׉s×í/þG¸á†nø7€tÑ0|)����IEND®B`‚IMAGE 1614 ./arch/monster/dragon/Dragon/dragon_ac.x31 ‰PNG  ��� IHDR���`���@���Òê‚<���´PLTE���¥��µ��½����!��1��c��{��„��”�����­����Æ��Î��Ö��Þ����Œ��9��B��J��)��k��s��œ��R��Z��ÿ½1çœç΄�ÞÿÎcÎs��ÿ!�ÿ„�­J���ÿÖ!9�Þ)�Þ))ÞJ�{�ç!!ç9�çB�”�”B�µ�ÖR�Þ÷9�œ)�ÿc�ÿ{�È8kè���tRNS�@æØf��HIDATx^í–×nëXEUU'çÃ$û†Î=9§ÿÿ¯)R‚G¶e³Û¸~Ü¥‚ù`c¯³‹„©Ãÿ_ùŠRõ]×õÝ{´F$¢° jW¢Þf(•)9'„c§^KVo2è\ÎÔR…£R·o7è%Ð ®Ÿ”)„¥¦Po¯ 5\ä’3!@p£x"¸S—ë ©žáüœ˜µƒùá¹ê 6\ p4!DLË7ww×±E+5Žð– ™L)—3i™ú‘ã®ò…Pw=Î6”¿¨_(oáõBr§k¿àa´mÉœÜÿõËr=¡h¼bL¥¤|Ž_%iy”¿Æ»Nu³ê©à”kzÅàýö“1­µÖØÖ3Gcm›6ˆºÓšE<ÿµGu Hnð§Šv©õAðžO |qBp²1Ö¹V™+d§„÷~2_˜àHÒÑü(ÚJ-7xéð£’RúÆ-�^(ßH–~´nK—æ¤gË.e§ý¢Ã„ÉþØô¶ØÜMCPƒÇâI¼µ8%ÂØ:%1¥E°q šFZè]Ó�Œm;õ†2°!`ÛÅÓO“eó-Z¿­‘ÃÐÚyšÛ–Ï9ëcÊØY#w’ÆŠ1²Vwól[D(ˆe9ö]ÛK]~=Àó ~¤€Æ¤œ3bE,ˆ‰5ŽœC„Ö9k¬™¦£=_c¶è”Öô yø¹; ºïÕ8ÚDÏ£÷Æ”ÂÑXëeXS¶ÉkP" ‡AÀ„½¥W�8C¨a zèdP=Ëo×øz9|=Ϧ»Ì–õx°äÂP3¶ý1}þÝ省z²Ÿ”gŽ/KÉX¶ ¥lm^vBÈ%SÎA±Ýo¾ÿþÔÍ‹z²Î/9a ø¿»€¯MN�ˆÃ…o¿=}þ÷?ÇñøH Ú©ÔLÁµ®…€©T⠙ȹR·BúQQ°òTdi� ãÅ0Ž7ÿù“V×¹î'A;©Óe¤D™Ü°àVEëzEî8yÂd@/ïåÃ>~þüÝw¾ŒE— s·õl¢…6¯(-¾± d½¤T˜ºQhP¬H˜XCrñE|s/åƒÁõðèÛEôº›~/ ØJkZlc RIÈœ5%j H)盃¼ŽgÔi9\!’&›«F¡|¢Ou5ÄIZ;§r&a`Q á•JÐx^²\çbÒÙ mœœIH Ê®½ÓõÌöÚL9!ÀöÎÌÁúÃMpŒœÒ°¡Ðo?ົ٠3çrÝüA¨œœØD?-ãSél Âö(µŽ;øn¤”×Ü öˆ:¨ï†Ù…¿Ñ‡˜Ù€ lÉ%'BpZu¼Jäãn~ž7¨b‹fÒþ )QÀ°†ýy“˜sÄž x'oå/áÓL¡'B©N©¾øóÀ J†¹Ù»Çúf¾üµÎÿò]S.´X¿'hž¦K>ÿR+Õÿ2‚ )@ô{‚矱"ôr§¾P”RÙ4/;DòÍs«Á‚e‡]¢ )ãâl/$ê‚¥EtØÉ_ jÝ“_ÿÝÝn¦xcqB*)À¨ÔžAÈ\Å½Ì Wx†÷žJÍ ;î+îåö>x¡B½!ˆ÷l(µ!ðþnwQRòÈ_ñÅÊ¥Vɳ²/`˾àÁlñûn…ï68}§À{‚‡Í¾Ÿ_BPt<¼'MMïmhr‰ï]¢ê؈'–xá‹XQtd¤x0ÜÝÝ}üøqŒÍQ0µæ 0ÅæLüÈÜ}Éí]‚û Wxß›ßùÞ¿süWþ ’Pb®²QýÏ����IEND®B`‚IMAGE 1659 ./arch/monster/dragon/Dragon/dragon_ac.x32 ‰PNG  ��� IHDR���`���@���Òê‚<���´PLTE���¥��µ������!��1��c��{��„��Œ��”�����­����½��Æ��Î��Ö��Þ��)��k��s��9��J��R��œ��Z��B��ÿ½1çœç΄�ÞÿÎcÎs��ÿ!�ÿ„�­J���ÿÖ!9�Þ)�Þ))ÞJ�{�ç!!ç9�çB�”�÷9�”B�ÿc�µ�ÖR�Þœ)�ÿ{�VÞül���tRNS�@æØf��uIDATx^í—gw"=…]¥œSgÀÞ¼9Çÿÿ¿Vjc›1iÆ g¿ì= ØÜG·ÔR7ÿ{1Öñqäc7ŽcwÄ´`ˆàÁ»îs)%ç”BÏnÏ °GÄ€ÎmoŒØôà€?u즄9å}‚š¡à»ÝŽÞ6Cä’]UÎnÙ0JéM©dtsKѱ›Ÿ©1çÒr ¦À/ðw�\.«²«/;óo&LúÉ?#¶vgï%Ìi`~Jq6Á»#´Y.9är°ãÏÇ÷œ¨{ÿ’qz8O¨þÀ1—½ÒrzèjÍy×Á·&Èåp¢G´¥|÷·yP.ÿåë�¬ãœSo-eSŽ1¯JáDºJ(äÆüá_—�Ö®ÏUR+¥¤ÒRÊ ¡õ⪖ª™®�B‰µ«}×q3òqàÛ±O%^ 8k©·PÆ€s†y©ŒÑZêYB0VƒÙ^öÔ6óì0˜Én ª¥~nðgŒYo�K98t‹õÌ�¸eÛ)£•¬6bP ”VÞ»i0dˆ³ü™êô™ÜñÉ¢sd#&¥%_ §\§ gãB+qq¼gÊ�Zã=@§u¿•!AFHAýì·*«ü˜`»0i»¶=˜ :­†~ÐZ)=ˆ9&•¤Ô¡cRÑή”‡AiDȈ9¢C=’Í/}õÐÇ€ÎZ‡RÆ”bıbL0´1J*Ù÷³z:NR®Ö16÷),óvÔ[&ò/t `ø‘¿–Yæ\±”}UL^+5£ ¼Æ6ˆÕ½� ® œm&±Ýò®S1ð7ý‰iXwüýàËS­¸}­^_–Œ)!”„z[m(Ÿz'¦‘ùÛþ4ÿ”æœ0¯r~M3TØq5&¸”Sptõ™<í?ÿöwêK�×}.)¸F‡¯³¡½œDLk¸ãJ�ƒýH<ýã›qX ¬õ'‚î6Æ\B5L!“‹ØlL)ç²FˆË¤KÆV+ � ìÙëûï7Ÿÿúç®›]9Á0RNˆ—BÂð!„Ì4‰~YRJ.¤ÜTýÙ.µÊƒ@y6ëþ!ÿýGÁ�ÄŠÌÀÆ•æ‰Z:Ïbcb¬8çÂªŠ‚)DÌÍ?b¬‡À hÙãKˆîWŸøáO�E0Ä¿¾— J¨S�Î¥]¬O�[~â.@ŒC¬Ùˆg™~÷ÈØ Áláðî‚D‘ µ‡-SùSøTÇ‘õC¯”ÖªIö}»±£ ˜IY[¹àí;°oâór`çKy8íŒ~B2Á #ïX÷…h?J9tcrª ±VgDlÿöÂd%äð›Ø&g°~F!%“ª=6ÏÖ aCŠ-ûáø[¨”DXO%mÛÄç`½hÉî…¹®ú§Nl®v0îïáCqä`Û'žØU„<™bMÐ]dkØÉËOp¡ FÙ‹3]`˜’›®EðEœö_ܧú3þ-A[ þ*ÀŸò7€ÿ ÚHiÏÏbS‹²ß °UËRJ�%ì¥oÓJˆÈEÖŸÿ€aˮħ<ÄyžÁðD‹¼ÄŒybWŸ‹ £=—Àõä°hDƒ#û*Dë“m»Ñ™‰:5ÉÞ‚‹9:è®ßîS– }¤Œ&Ðr Ð&:ä’"3_G¶n×ìëOSòX ¹äL)>îØÿÇK›/'„R.…ÕªºHØÿ]]Çwä«} ð]¬jîU÷$š¿ýyüm‚<ÜU>Þ2¹/¢­Bß@È^·!T€h~Œ¾v»ÝÇ;âoƒh”�zâŸD>VínÙ¼½ñv/_#Üwnȧ¾ÚßWÿ×�5xk´}};����IEND®B`‚IMAGE 1589 ./arch/monster/dragon/Dragon/dragon_ac.x33 ‰PNG  ��� IHDR���`���@���Òê‚<���ºPLTE���µ��½��Æ��¥��{��„��Œ��”����­��!��1��c��Î��Ö�����œ��)��k��s����9��B��J��Þ����Z��R��ÿ½1çœÿc�ÿ!�ç΄�ÞÿÎc���Îs�ÿÖ!­J�”1�ÖÞ)�Þ))ÞJ�9�ç!!R�ïs�µ�Þ”B�ÿ{�÷9�Î�”�ÿ„�œ)�ç9�çB�¨4o†���tRNS�@æØf��)IDATx^í—×r#ÉE‘™å}{€fì:yïþÿ·”ÝMi�ÎCPËEðt‹¬{âV`÷Æó¯h8ïÞ½«çî—Ô!ìãÆüŽ9ÎÖú0ô}?ôÿcr<³XûŽ+,¯PŒ�ˆèª1¼Tâ9ý°7„l¨ëÓwa]cž˜œ8ôáêtïc$ uê3-ÇoÄ”7¦œ Ý!<íøÚ^ûغ³Ÿ"V`y(¡sÕžHþÊ0¢3ûKµc RN „ÎÔö±àg =Š8ì.iÚàüDÌÒA~n?[¡v Šýî[ćDˆ��¨ú|<žÂ1œ­=yàüo2@”òUÍP‡XÎÞ¥Æ}S£À´†Oùj“]£C¨kqbð”1>õÑ!Ø®kkʙҿH¨z”o—džã­rùO'‚”¼;”²þd¤VJI¥¥”í,•Ò´‚H°ºÙÎÛ_Ûº–‰J£Ü›þã‹ ¸Tµn<Év¥Ø®^ŒÎßIeŒòß[Jidà 3;q8ô¡oÀš4Qø" ¤F9Ž;ÏÙa\ÿ•ÎTB„W•Î!\5Ôʬé^îc«XÀ¥Tgb©¢4€ÐŒe?ª¦é¤e[§{Îu)àܼ£Ò2T&X@Wk<U–•s¢ë¼2Šé:!j­›Ab9 :ÈOVO¨·½ÃLت6zé�Ö— ¢§UÛ´Z+¥Ûx ½’Ör'/•­¥bß¶Jˆ A$TŸºAeåœùb8�Nä9K©%¥”�¦ek à Ú%•lšƒÚÖQÊ5šhIŸ8<ƒÝÏû凜^XÁ“3dŽæ_غNZ‚þw@�G¯é“ «ÃÐëÁÇü„0çdÁr·MÛ¬ºm¶¬ó)S=ðQôû1C¨kE¸ 6â�€ ×H ­m. ;…K9ávÒm›¿Ê±÷½œ0 Jk-!9øò.`Ç¥I$8'ìš3v͇Û_ÿ0†¨XðH1xÝmX”'ä ј<­…âY›aâaE"ŒB+ü¼:Ûÿô÷Ûßïû¶bÃcz湓Z`¼GLhÆ Ö*1N'¤ž“—ɬX(þÆ/†÷noÿRׇ'o°nVB§¥RU:åPä+¢Ìl‚Œc`±}U²ý|ãýj¨'ïnÿü¯.\‘V 5áÒ+Õ)#@5” ˜M“ a •¤”ÜÜíü¿QÿæÃÝíîîo;¯@ä÷ø~Z sã•j)o8@�kK$ºÂ;ü2fw¼\ØÆHü-b2º-en1m¬×&%!Ö;39e„Cµû^²!ã¯î!£iÛbe›òiÁÀ÷6@&ÂëéZ%A¬GIîP*á`…(-Й1X ‰Üø"C)­q?âýäHȶìX“s"abè—¦rm·{™N A6±ì"":pKøá0ì6jJ+U^”_¹÷÷@N·MY.ôЇ0 #?'– ä„ïºru¾ðGÔFÊri¯ H” 2ÊÛ+Ò™ªš&*rüe¼K‹âœ¿Æ`Z˜@ þ9Í­O“ÍÞù+ „ y|îëóo®0t•0Ð?{ §ósÍ'­G™œ¨Cx¾áºcT0O‰À˜Ã3»k˜oاœ­…›£ïø¦<Mžga÷Ëc™5~)ðj,éÌk8ü•aÃÿ5o¼ñÆÿÉŸd\7ç× ����IEND®B`‚IMAGE 1547 ./arch/monster/dragon/Dragon/dragon_ac.x34 ‰PNG  ��� IHDR���`���@���Òê‚<���´PLTE���¥��µ��½��c��{��„��Œ��”����­��!��1��Æ��Î��Ö��Þ��)����9��œ��B��J�����k��s����R��Z��ÿ½1çœ΄�çÞÿÎcÎs�ÿ!�ÿ„�­J����ÿÖ!ÞR�Þ)�Þ))ÞJ�œ)�ç!!ç9�çB�9�÷9�{�ÿc�ÿ{�”�”B�Öµ�´r±���tRNS�@æØf��IDATx^í—×’*9†ÉLy_Þ�}ÌøYïÝû¿×¦ªéb¶èØs±ý‘tÿ§” vÿ'¼óN{â ŽÇ㇚výï šâ…ös¼¿…p3¹ ž9�5þ…µ=rüýÉá5ƒçôýÁDòž§×§pçÒo8TˆH¡ég_q÷æ„×[h¼˜#¹¡y-ÀZ†®ë†î–àÎã9s¸u:B ‘ëGÝ0°"üLȈaw‘ “SŠû.ìCøy—¡BÓÀµ¡‰3Áaw)Wø9÷íp¡°\Õpü×~Q.ÿãJÐÅÿc¾oBv&k‘s$Ê¥RŸcÿÕñxqfvC(Mò`þð»KÉÃxLÓöÌH­”’JK)—V*¥ãEä }kÛçWÛ¦ ¦ ÝÊ8§/ >¥ÅçlÇ+^'àÁpÎøU*c´¼ÄwÁò f9óÀ´ö{‡dÆéPPõ¥\BLj”ãÎsv·Oò´š`²º~Z½pýÐ(³¥{y‹b7¥V#¦^Hƒ”!îå÷VÒ%^ 2Ž‹ë8wÔӄε1*-Co‚Er6ÁcŒ½ecשׂWp2ë Ðh=’d„DêûuPYqãgCçêù©Exé·m'CdÐiµÌ‹ÖJéEìcÂNIk:/•m¥D·,J#r:æˆu×~˜9C_´°OÛŽ9K©eL)!ÄŒYcÈDÐÆ(©ä<ïÕó8J¹EÇXÓ $ê÷C§/òv�¸ha€\…ÈSäé©­[¥ è§BÀX±¥�Ô|¡øÃ(†!4ŠtÙÐI±Õó›žkÓj˺.,SB( õÀI6Œ³cç;‡awf€TIä0×Ýzi¨:n;Á¥œèt¡«?ÿö/cŠ—ŠAi­ÁE"Œϧ§·*E�tìn£]m÷ëo¾9tKφkÅàõl´a Æ\¨LDÆä²5$®Zð WA�� ¾}V|÷Ýáó_ÿÜ4ûMpMgCÛ®R%¤D‰ÌØ#b®%bÎ¥l•]àäZ<GdÅÉ?ù—Ûî¯äßþ(BؽÂÚ*Щ¶@±ŸVår‚$\./`È5?bä|?eûÕ“÷lØhþôùë¯ÿ΂װT¡ÚõjU¦n²ÐýY!ĈàbJ®]wþ_1ÜþuáBþDŸJ5´³W½–‚R.9Ÿ `F5M1EX§ÝŽã/ aßïnag##ÒÑË4µRI‘rBçKAK3aLNqþÃxɆL¿ùˆ™ Öe”Sd [$0Þ{JÑX<Î:)‰°]Jš 5˜ @¯ä·“ŸŒÝ½i1îŸô±¸r[£H9—„è*ÀÔ»æM³{«a"G5Êù$(¥¤T[Øòðúy>Ú7Æ÷îÓGŒN/§|ÝŸV˜"‚îºEÖÁ²¾)ß�þHÚH9QPÎu÷©îÒaªµ‰)S¯¦GÓ™¾/…@ Ž?! É]7üôãβ!:h7˜ ÂàÏÝ[Nî®l #øu}̱J̘GG»>¸˜°7ªµzh°ó÷)ê>MõëîÃ.æè  á Ö§bŸ¬g:hÊ%E4f‡âÉo÷ƒûírÉÙZ|:þrëÞsù‡þ¯”r)ž«r‡ ®ÿ,³ÅßÓ@ 5½²ûbÔð/ þ§yçwÞù7^2¢’C›����IEND®B`‚IMAGE 1612 ./arch/monster/dragon/Dragon/dragon_ac.x71 ‰PNG  ��� IHDR���`���@���Òê‚<���´PLTE���¥��µ��½��!��1��c��{��„��”�����­������Æ��Î��Ö��Þ��Œ��k��s����9��B��J��)��œ��R��Z��ÿ½1çœç΄�ÞÿÎcÎs��ÿ!�ÿ„�­J���ÿÖ!ÞR�Þ)�Þ))ÞJ�œ)�ç!!ç9�çB�9�÷9�{�ÿc�ÿ{�”�”B�Öµ�4Ã0n���tRNS�@æØf��FIDATx^í—ws*;Åén嬉ð /oÎñû¯•?/ØàÙǵÿÙºgºj(Jœ_Ÿ–ŠÝÿŸ¾ê«†q†‘3ïï�ðMs>-–ˆ…¸ÇŸ¿ÆáÃ0ĘrQºÓÿ&€ó½¥RN'Å/ ðÀÇÅZŠ©^Uvùå~äO÷ ùY[�@¤S|L�BÜ(þÒÿYûE±òIá˜gÎWŒ?÷?¿Y"ZD*˜ÇwLèŸÉªnÿï#÷þŒPóØ.!C@*Šw�~ÿG}Ô(á‹JççôƒùQ+$Ò/Þrl1ÑÈ»º".K%¤"–<aöÞ˜Þׄìä¼(Ì3iB»çó¼"ŒqÞUþAc «¥¤ë¤”’J©Fš¢ÓêW4”ÿ£ÜH´ëL•oe[o|`òL¼ÑZÉžikAkc,”4åvÛ¿¬TIýŠ"`@-Åb„îUi·�T'’­ ­æq±�šõf±h{°èÞ0Æø|#/>ªýéà†-„Hrl›fè{m´b}Ö.ÅÏ/! 㺙-¡çzá²Q“88kÑLÜ^ �0úŸ’`c3Œû%!&@lT× B)NvöJ2‹Ö{©Œa/º’­iº¶SEM¤iÝÓLü €‚šg>Žb:”31-re„°b¤œÚVÖÝŸîZ7€¨5iÔbFŒ1)ÑÒl^�Ðl˜„m'î pB€¼2j$ § ¦µs~¬‚IIJcæ�%øô×ß}n}?UàØ`Ì€1bZ?vYéì5æË·sE4Ï |é†Ã÷ßÿfð½;'K1E Õ-çתðNKƔЦ‚èb¸œßÏó_þöùðí·?#=X‹�!bÆ× Âw�m@¢S!<›çâO—¿žæx�T�5@*å/ˆÚr)­‰"æL9´ÐèF[Š9µ ¿�üã»ï>ÿù‰É˜ÁBˆ©&ÇZCÌgbm—IS$ú@ Ù;ÇÛB»ü5£~ògìáŸÌÂ1¬1øDéHE!,"& «z³ªbÊõët‡bérŸ—CtŽ`»ÞÙ¡]ø„ÒÉ‹B ­BЪW Õþ)+þ©ÃNSÆín‰±Z;ÓCàÜxÏÑë“B§k]õÏŸèSTg÷N“~·%£l\Ÿ˜�bX—ù$h[gL×èHô u{îg¼Ž"¸M€×!rÿBÑyÿ)vÒ›®N?ü–Rñ—ìÂÀÍØæ~3B$ô|Ò–jÿ%®²°˜Ò¿nÖ(U÷Ül^Zã6sI€%úÀ…¤ÓÊ)`g: Áæô/«»+Ï�nÅ&ÀO6F<e÷û ±h‰(ØÑJl0“¥«]Ü ôõ<¯ 5Nå98÷~gÚ®±?|²Ë5Ó&¹3´PŠa¾½ÀH©ú‚¾J¯ï²q`Cñ÷¯­1Bå¼” ì9£ `úžA¸ß#3vç¶Þ)½` –»Ý¦Ø”0¡ì_²M¸ž¾~Õ™:ζíP#6Ë€À«¬È?ø™ßþÇ2ƒ )X0W†áZë¯J=”Ûö{­1ÄœÈ\;D½¸y�ÙéÛtCìø€Þ§”SñpW�Ù߬-ÿªœK¥H½snã]ƒlGX¾¨o�î+ªŒÊÚö¿²{O@±ßð79‘ÞàDxOçRì¿Üß=ê™·ïÈ_Þ~ïæ?Ç'Ï*M�äb߿Ɏ‹\’kb,ÞUo6ê õzëÝt»wÖ›¾ê?Kcp÷li����IEND®B`‚IMAGE 1660 ./arch/monster/dragon/Dragon/dragon_ac.x72 ‰PNG  ��� IHDR���`���@���Òê‚<���´PLTE���µ��¥��Ö��1��c��{��„��Œ��”����­�����½��Æ��Î��!��Þ��)����œ��k��s����9��J��R��Z��B��ÿ½1çœç΄�ÞÿÎcÎs����ÿ„�­J�ÿ!�ÿÖ!9�Þ)�Þ))ÞJ�{�ç!!ç9�çB�”�÷9�”B�ÿc�µ�ÖR�Þœ)�ÿ{�ºp'ü���tRNS�@æØf��vIDATx^í–çvêJ…OUuÌAY€O¸yrŽïÿ^Ó-c_ûX6×¼Öü˜½ $ µ¿ |øT™ç¹ÌlžYIéêæ¥0Þ[ðúåêîi@ð1åœ)ˆ+Û­Îö À¯ Hå@´„ÃáŠ�s:}ƒ#+ ¸^Óߘtè-‘­¢ÜTó¿®’ в'°(Ç7�Ø…Ÿ}h¹g"€°¼ÞŸ½Ì™2YÊ›È.oðP 9Ü"H-o-àÙ n³'Ø�¯>‰Ø‰·�™<å6ã×*mœ}-@ùLÈô,…± cöGÐÇ|½áb!+Çõo'fL#˜Ý2áëÿúƒ>¯$7›v ð‘6…@ºdœ› c¬¤_är€ü‘3›5+eC8×™n˜µ¯²U½Rœ³Q¡¤R*áªnW¿�ȹ—nÑ캢í\“ÄP7SJœË;B)­¥˜’¶µvÎb­¦n^¬@ù¬Ìwb H´à½ãz’JÊ #?ŒÎB*-˱·ˆ:M®·`‘‡ØëÉ¥”Xy¦ ¦­•$ÓwÒGÂèÅqPª N“v€Z¦iBkûêgú 1­Šõ`˜î™Prá‡ÎZp ³l ¤”ÃO‡nV`!�!€’ã8s)™·ÅH‘,Xc„œ!†•JJ¥Æa”Ê‚ö^ûm N-¾¸§ ÍOÄÓQÍǵ÷sc„°a„X†A´‰®·[­híuµ�bŒA°Î•'�d)ìxäË!ÕKVbÞ- xô÷8Ð�9Ÿ£bˆ õ„ÀÀÎi^¸f*ð¨ f„¶Ã=؇üøëíi1ÆðU—˜älùÝo¿ fZ6¢±>R´ØÜrÞ‰ñç¬év A$K±¾êëÇùðý÷¿žÍÔÝ´C„ O#çøÒö1ü<°¼ÖÇLƒb�k)þë—÷ßÞ!“ADîCÜz@-ÔÒ‡-éL#ô‡Ϥµ÷±}¦�•VzPZ—ÒC�ãü·øG¹+«Kˆ•À¨U- U5EocŒ}?ðeÑ>zÿÑCô¨ÄÔuÌÌ#FâTþôã_~uÿMºIÐõÉÄ�¡‚_°ÚúMÖVËô¯«iD…²›6ƒ9ÚwÝ£xÔ÷þ)Ý|c(M1x°! ·ì‡ÞZ°ˆ!Ä`뛵ˆ2¥š¿Ï…¹÷›:íyxtCî×6”‡ˆôÁMXœ“‹ÆÞ´¿ví*kRJÊaÒ<ÏÉçÏþ3!ȇ-qFGj ûJ©F[&m àÊ(Ä<˜òH©°yÔ^Gïï!=<J¸+0äið8½ã¼¤Ãº¦QŠ$ÚKðy'7V�ÁÇßxªþ"}ýxê.©ÜY o¯ÃÊ\Ó¨Õv!9>É–Y~PtˆpWºë:·©›\û8 6ô·zÜy0ã%‚YlŒöáŽdoýî#&iG�Óˆ‘Zûrèl€Ÿm¿Oà¦ìdï)†òü'„VþŸ€z0]�¸m¨þæ¥5ŽKô9÷½«z ÀMS‚gæBÓ!øSÃäÂs›Nêb°,}¸¨´ˆi§E°x»¹Ö_dŸfÐ�ª èkvý«ÌÉ1™K‚E7í 9”]Àv»Nù²ýª5„˜É·ï²yéfwsN7` Q¦êÓ½ê4MçN½èß”s Š~êºnǿޮV†0U»úoý«cƒ]°yoÿçÙUÀ;ªãïíÞÓ¿ë(^ÿ;ë+sÓñ|…þL]ùôéÓétº÷7©Ñ8bµŸ®ÓˆÓ§ªnºU7 ÆXÍ«®×ëZÀt<ë ºö8»ï¬+þ¯ÿ� ái.˜D����IEND®B`‚IMAGE 1584 ./arch/monster/dragon/Dragon/dragon_ac.x73 ‰PNG  ��� IHDR���`���@���Òê‚<���ºPLTE���¥��µ��½��{��„��Œ��”����­��!��1��Æ��Î��Ö�������9��œ��B��J��c��k��s����)��Þ��R��Z��ÿ½1çœÿc�ÿ!�ç΄�ÞÿÎcÿÖ!���­J�Îs�µ�Þ9�Þ)�Þ))ÞJ�œ)�ç!!ç9�çB�R�ïs�÷9�Î�”�ÿ{�ÿ„�”1�”B�Öb= î���tRNS�@æØf��$IDATx^í•çNkKF]UãÎц“nšœó¼ÿkMõ¶暃àÇH,—´ ‚o}E·ðî:ï¼SxÁTÍŸ>}:¯ž_·u]·ÞS>1Udïýü á¾k,!ö}ùñ“;2ìãçoõøz 1¦…IœÏ\žÀ<³†‚Þ¯ìpW2®§ûÕRHiIG" 6žœñìëÙSè{–ý\Êok)¤ò*؆ ט[.3ôn¾’ÿT`fm�‘bLñ´ð!\Çïµ¥žü• Ì¢ôL<�8ÿ9ÚÈ=6øƒ??ϘÃá§& ¢E$ÖœVàü¯°ìüXÀÿ$ß{?·CÒ‘ÇüuºP_æÃ<{¿iÌÿ´Ña9±I"AßU`‡hÝYð¯då¸þâàaƒybhŠ!‘÷ ³19O†+]»ô 1\~÷½¤do?Ï›"çÊTÇk(l()E5 !”RJ%2süéGëb|ø°Äµ~¬}½®`«\0ƒÊÃ×N\à•ÖRLN[ Zçl·áÇ…¥³c­,K#qÙçNZB-ú&÷z’\—rì÷Âm-ç¶±�ÚM¹±hÁ› Ðè)oÿ‰:Ï·ë:ÑÉ.aQ´(ó½X¤‘D;(5L“ÎZºikÎ3Mè¼V³%4^7^(ÙõûÊZÌYulª•;LáœÏ»Ê$Ûé{I0!&@Trë^JOv6R8îkŒ5ưö#ï¦Ô8ŒRYÔDš¶A´Âõ£)$²õƒ@I)‡ïöU­ÐbbÉR!l!ºaåD×ãSkÅ~­IstÀRhAŒ1¡„H cÂe!\Ï �´æ»Ô»VÕíÚ(X6G™€€ô0¡ˆ9"mƒuÖ”om_•üö|G)ÈyömÛw{Ç UàJ˜¶_{<éâ=.¿}’áBç|Æ£­]݉¿7Ç;F1E ˆ¥Ïsƒÿ­œ0ò;K‘ ˆm¿;ãeï»þöþË0u›Ñ€µ"—yn œO�m@¢`A)%[®Æ7c½ÿóý?~]›©ø*�zbAi—xÌ£Þ}©Ì£5Q,繤€­•”k9þ~ç¿ÜßÙÿðCñ¹;—Ѱ�1•ͱL— ú~+ŽM§)}$ŒJLUåMýsŸ•ýÿ~ÿAüiÞò»ûɤÜ8âè€e ßQ: BÓÇdå”›@e¨@VÓî þov÷¾üjË?)ÜnªlŒÐ6¾C éLHaZN²¡ÒŸ Âì®âùñZý_f—'Þgc<" Z†£„QJ7T%ùLŸ t»çiVÿÔk¤Û'&�†¶Ëå C•ó¨t$ú=az0»›1:$ôæG沊£0y5%üøJœ/Ü7äw6D4ÆwÚRéÏKà†…&s­¶ (ä8Ýž?SÄÒ¬ö½¤Óæá`—GÁ.éßV9ßžŸeC)†ù¤k×µH,Z" Ôïr?T¸¥oˆÏÓäÀο<º¶ãWë}í½1»<ŒÊüøÙ6·Œ“ºÁyó\‹,„VôK}›ÁY›K{ïÜ×ͽZ–¦ÉÌ‹óuÉ,Ñ™—œ”kõ-ùwl@Ž®K˜PÜpMï\y½¸NQ57^žïý 6¤`!sþ ¼0~ÕC\•~}ÜáIiIœW½~~aYxR¤©ªª7YaSf÷8¦8vo‰so¿û?áwÞyç?¹fJF¹ôÎ����IEND®B`‚IMAGE 1545 ./arch/monster/dragon/Dragon/dragon_ac.x74 ‰PNG  ��� IHDR���`���@���Òê‚<���´PLTE���¥��½��µ��1��c��{��„��Œ��”�����­��!����Æ��Î��Ö��B��œ��J����k��s��)����9��Þ��R��Z��ÿ½1çœ΄�çÞÿÎcÎs��ÿ!�ÿ„�­J���ÿÖ!ÞR�Þ)�Þ))ÞJ�œ)�ç!!ç9�çB�9�÷9�{�ÿc�ÿ{�”�”B�Öµ�¬Ïýð���tRNS�@æØf��IDATx^í—çr"ÉFÉÌò¾½4n½½Þ¾ÿ{ݬtA³³,(B?vC_¤¢:*šs*©¢»?h^óšþ”—¡ÏýôæÍ›ãñx7_ÜÞÀñ §—91ÝÀ·{Xqìçð˜ áPG1M×øw5òt¦‰ñ˜ìaÏŽp]PÇŸ&±L“”,û ÿ(Îã¯fi–eiDˆñ×´Sã1 2LŸ0Y\á3¸k="Iym/Ö£Dñ)¦IT¾øåê„Ø‹e”r.+§0ÿZ >1ˆ¯Çý•φ ‰h¾ös"$¤R“ Ws�ÒôDðóŸíA¡Ñ2n¹xOÇmªë^k b*EN1:7Gîy Ÿ5ЖK~Zó@1.b±bš6…s}ì[!–2y‹ÑZõ£RÊh¥µ6Êq>Þ}vrºP‹um5­×Y$¿ßƒï]MÔP±uc­Vs°ÞƒµÎyànx8[:?æžt`p5ñµOP¬’­“vÖFkèQTØVOMël˜]ëɃˆ µ³Û>É`KØuªÓ9‰3ßz¯‹næo4f U33̳uV‡yï[æÅ6% šÉ#Ea[¡Œîä¡÷žœ3›?vT.Fk=|{èCžR!v=Ž‹ÔZ Ÿ¢VÁ“Qé…rÚË‘{3fFm<YD‹Û†yä¨ëIð˹€&~[dhÌÒì[̰VGJ›F©n”fÀþãh­a¿µhˆ ÑJ”sNÊ(U m—¼?7€IO“hÙo!€usÔJ„€ÿ¯TŹPÙŠÙë©XS§¶ ¾„æ, ¿„¥“~èDdac(¯@9SÙ^ö´Êùš‡§ÓÌ>áögHKÑýý§÷Cœ»Ó!Ã\²¦1âZÑã’ e¾ò˜±†@6üv\_}õÃçÓ8‚÷2­t­ w€|"ÄäÁ£ÆŸ#öÓô·¼?|ñÅG| €DÔ WxÒ€¬Kæ²1ó®%£­±ƒ ÍS< „üË?Õ÷_wá!8bƒ$*µsª%<_¯[•$©P-j;‹ñ-RF0jî{—Ý/"þõå—ïÿ:t!„‡±¸6 £¥j(‚ÖÇ/3äèõìÚ„µl@÷ó•ÿ& ±Ì¾P„ÝÜûœ’JI@: Z#ëY=ëëúqÕ âîJÚ½¸ä×Ú¹RNÎéΉ_ÊZ2JeZ†¾ò×wø®�é°»;NûœÈM£€™á™È{Ê%K¥UïÜhlFüRRvˆÏD›2†, “+›á)”ã83ßb¡·?ba¾ »g$ZÜ×J·�ˆ™Srtæ›í�)íæÝs2Ùäê÷%p| Q^KÉrëOAòë[ü·£Û=+±ó9sà7Cm gÞê“`PdhEî™üyFRÜ-‹J™àÔIkN†ÑøDoßùöY §[,9M•ÕtîD)(Ow8¥¬Áïì3 ®Ÿ˜O¾¥i–¥óHHÄ‚G…Ô€ëÚ¶Žs}ž¤”Pħڅ=çÙ94@+wõ{m[ÊÉ‹[wè R·ŸÓú¨sõݹ ²D¦½Y8ñ!®9Ä~MàSIÜ p=p7à÷ÖRÊkÁû6¸öÀ¿}Ûñb¬ÏWæ?ô÷6ÉoòkÖ•«dœïþÉÌü[ZØ‘³{Nuì^2!¼4÷;Ék^óš×ü|ºa*/þœ����IEND®B`‚IMAGE 248 ./arch/flesh/dragon/dragon_blue_scale.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���+Iv/O6[’;cŸ@k«Gv¾Q‡ÙcŒÙi•çk˜ìoŸøÿÿÿ[øëG���tRNS�@æØf���IDATxÚåÑKà P:Èýï[CˆÔ2‚ dÄîÙÞPÞ{DGfæ#«ë™-BÏl×µIÐä]ýÎ3!…iíc`2–\xéÿ±¹.N¿ûæÉ‹„E} 9)¸ÖÁž÷1ÐÀx7 <nŽÎBÉ)¶^ÏÇ°ÖÆ8m~XD˜¡»ƒÑ§¼ù¾ßÇ{Q&†D����IEND®B`‚IMAGE 200 ./arch/flesh/dragon/dragon_claw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷�Î�)ŒR���÷çŒÿ��ÿÿ��²���tRNS�@æØf���aIDATxÚíA€@q üÿɲVcY5îÍXŽ3iƒüyô\Ò%nä%WU*•óÔ=”o[ƒ³£ì7.tÃs…í !0É€á …ºaÇ4ò„˜F²M>%àF˜äò€.+o÷'"ʱ����IEND®B`‚IMAGE 200 ./arch/flesh/dragon/dragon_eye.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷)ŒR���ÿ��ÿÿÿë"�¼���tRNS�@æØf���gIDATxÚíÒAÀ Á²Ùÿ¿¹UD¥@>Ðúê9`àúbxÒÔªœû$Û^e "û¡U@@ƒ"ÐÙ3jphl�¾€@9ä„ZfèZAv&°»)%û*ê[Ôƒæ‚þ?ü)¹éÈw£S����IEND®B`‚IMAGE 235 ./arch/flesh/dragon/dragon_green_scale.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Öï c W ¹! q †¤ ¯!Ï(ÿÿÿ ÊaE���tRNS�@æØf���{IDATxÚåÏAÄ À;5ÿñFAˆU#Ú{k¸MòñåØóo÷Å;¶Óî— Þ;7žŒ>&jNÎ +]ì:¯]šwyu “á*~˜C^¼q}_ß½VÛ nWÎ 1É%”ƶ%×ÐâÄMÝN„¾7?q†L)����IEND®B`‚IMAGE 376 ./arch/flesh/dragon/dragon_orange_scale.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTE÷ÖïÿÖsÿÞ{ÿçŒÆcç{ç„!çŒ)ï„)ïÆc÷Îk÷ç„ÿÞ„ÎkÞsÿç”ÿïœÖs½Zï„!Îcÿç„÷ÆcÞs!Ökï{!Îkï”1½cÆZÿÞsÆZï½cÞkïŒ!ïŒ);×$ò���tRNS�@æØf���ºIDATx^åÐÇN1 @Ѹ¤÷©¯Óþÿ ‚UÃîöÈ–lñŸã_øØyY¹ÚtÌ  2ª€/cŸ¼JïO£[¢4D*“ô˜¢à[çîa™R$y…`c7q¯as9—<Ônïœ%àL¹±Yƒ†-u.ªÓÎ¥ÌäßЩæÃ*“AÐ6ÝE;AQh¬6Ùæûvñ‹/Ó7g{¸"è¾~ülµÛŸ–'1êV÷´§YüÔÄÌ“øÃ½Cá &‘d»,����IEND®B`‚IMAGE 245 ./arch/flesh/dragon/dragon_sca.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE÷Öï±ÁÑàãíòNNúú\\ÿÿÿÒ¨eL���tRNS�@æØf���‚IDATxÚåÑQ!P™©÷¿p1Õ¶‘]ÐNü{šØþ9Z³I=mZ3¼bíFxÁNp ¿ñnàäÝÐí#lo*‡ã±¤ÚéÎÁÍÞ-í×4éLÞ þžF÷äj|1¤ýY ÈÉÙ›ò›/ëu›ó ³¬‹ó'Xä£9¢"¡¿›';~mÝS™����IEND®B`‚IMAGE 217 ./arch/armour/shield/dragon_shi.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Í…?Òiîv�ÿ¥�ÿ×�©Ðõ���tRNS�@æØf���uIDATxÚÝQ À0CMŸÞÿÊÃͱÂr€±÷hEÿ"³…`]Пëò!l"°Òû=•ö†jFÓÚ»Õ®Ø çø¨ó©fhoÔ÷°á{8ÇG?ÚCì=øÀÞƒ;Ab6 —BP¨ xLQ|2¦ñ—Â]����IEND®B`‚IMAGE 2514 ./arch/monster/dragon/Dragon/dragon_spellcasting.x31 ‰PNG  ��� IHDR���`���@���å4r�� ™IDATxÚí›_ˆcwÇÏLwf²S·ÆÚêÕÑL»ÐëZÛŒ»,·Ýµõª´†ÖÒ`Ô¥•Öee»¶bÄÇ.êàˆõÅVô¡¡øE¡×‡• >|hD§4²‚y‚=žd¾‡ßÃd’ÙqÒÉr|øýrsssï÷ûûߟÌPi¤‘Fi¤‘Fi¤Ay"Þ Jc4&°GÝ#†¹ÔŒá¢+XQ(ç…Ò„BÝÀi/ØY䄎} z"4qN<!„æTøw¬‚ªÐ1pçîNÀqÍû_>)÷Ct¥š@SÌ’/öb,„ï#òÃDü ð¹kº÷/ì5 Fô–Ð@^^V±÷9""î¢ãÉ2Ìx=:þ�¡‹ž _GyJŽóoøOÎó÷ŽðIy½'ñ›ÚÚ!zy½8⪠ š@ï«&¬Åò¨°Ømåj‚;΋ kÇ0_¾‹oÅ9»Ž¢ær” X±ðÖ„`Ðm¡ê¸ßUQD½hq)ùÂ'„ëQ¾_8&ܪ÷÷òm|æJ (àAÖ<ñÏ¿Æ9¹„VÞ‚Ø#¾öІ碗€ê¤Îü6õ"¾_`~€ß+åÐèù×ÿSJÎÿâK×ò±+1 èÐØ'ñ#º‚ò|NPF  ”<á[.ý˜ÞП–P5¡´;#01À=¡~³À|?ó]oâ§gˆ/"•~,Ãÿ^ºž/Ñ$?ŽyÈÙŽk9±Ë­C@À~Çs ,lÊ ‚rÝ+óÛ|¦Õ‡¦¡kÚ4”W1=ã·Þ_çT½´öEáGÂׄ]GÌo ¾,õo/<µÕž‘ú{píõÁ ŸâÁ´”aÅ®ãX`,êÎ×MzˆAU�ƒvM¬¢Cl¿!¬á×´÷¬wN($`±Sÿ(|l朸‘—'‰ùáí"øìÖ5kRò[ˆ_”úQaøüÊ¥ä‹]Vú¬„!ô„N@Î¥㦶5ïÁc|6x©m':(ëöžað*(µa”pަª2Ž74íá½—{ǧ9¦yÑä?Üí ×óüÖy?ø0ñ?pþG„¡ èà WpóÛ‰ !*úP*"ÈëÃã¼ /µqCUÔóúpºá†s«:öÞoá³(œšš„2±—Öj¸N€k‡ ¡ô¾Ëæ{;^C¸,<.üZ º›§ép/=}_`|öEá‡ÂÏep~ßÄÖý~j'#–ð3àm «–ÜC¡åºksyÃmO îLªè5¶PË:¾s×i»Æ€ïA7=)Ò4†zŒãºrß�%äôu�³ôZNtÐ1‹Ñ¿/ st;ÏRл6sž/Ü4Í_ÁZá—Ÿ§‰ÿ&å§… ê «øöh½‰¶45u¹ÒÝtŸºš[5fUA$®eÚñ�9&ÙF�ÖÀ ^«ÙVè°¢3޵½sW½ߟ„Ír(<¨š½2Ïž¸Ký›Â+Ýñàñe >=È€%ï Y¨›²ãÄôë8ÇÁ Økg¶¨‰zÓÔZxz€ÆÑQ ÚÓͬPw|??ýVI-‡z†Ü+Ü.Ü"œN ç%ý°Œ¿$~>qP/HÜ ãÄ$n¿ê_ÇëÁçvö¡n w=ÝÐvâc2b×3Y~t&àïÎÌreŠø9á1šäGè|v†øÒ3NÐt¯'<-<!<0Ì€¼ wk^WmìJ³c‹''¶}hkƈëÖ´õYÌæc?n¡ /LÌð©_š;Ä›Ñó9™’æäu@ü?“9Å߯˜±¸›õÕ²Îd ‰ær3‹q†ÀÀ¹\¿±@€Ñ€GU7­¿å™Ð0¦D;¶@¯ŽrQZú_£I1€Ä€ˆù)âM1‚OvSÓ<)=ãn"þ hB oˆÐ%×üebÌéd2ÌÙlÏ){X㪠ßXÀBé [xÜïšÀ5wO%Þ‚e¼ÃoáäÍ|üš€v1?$œZÿ(ñïßMüÕÌŸ=2ÅÞëÏn¦ˆ2ìbçÝ0@{çó.}yâ¯èùF[/¹qi0:epM{¾PÓ–c9ÐFI&roŽøÄÔ<?{:Ã/-b¾xtKøŸFŽ·Éë;§¸Îòg÷kƒ3C4MU`B75‘Š´G´ÌêwÃKc5m•^½df]ýq‹É¢—LÚCݼׄèU!À{J­Ç}Lè®÷+s!_zä6~u‘$ uÅŸ“T´ež=Ã$qn¿w˜u1”@X`z‚»¬&˜T%ïxg(\N/:Ñ1EžMß$ó§/®Õ;h@ÜGþÌTÀÿ=7ÁœD¼ù” &ôzÁfÄßåøÞ‚ª*~¯ä pstœ›× ²,ö{t±—A 2[Û Œ ‰¦<\;šfÕ�„/ü0&|\Þr&ǯ^<ÕëÄß*iTALÝ4kK*Rñ8ŽÝxà ½îï¨fÝʵl0ÓGôk Ƙ�Ö…BfKäºÙæ( Ù=¦ž"™rNð¯NOòßÏëŒÉ\ÏeÄfË¢)ù¿£ãA¡À†±%2 Ìx[&]´@ÇÌb5Ƭa´Ä ½ÞËïÕ�Ä=tœÏÒuü“‰­M9Bð&mÒ¨#„˜jB&£+íž~O¨XÌ}ɬܔ׃ÖP3ûE:»izÐÿ1ž'âß t"€°U¡.&tòy5sr—‡ËŸL¸4\:r­$5€:Ä÷×�n œ®æÈ 5K*rëƒ `ݦnè.æ°l—Ž@b1?üh r3 ·Ð¼*…Ïx郣¨7ÒV¯¬ ¿âZ²Å·ó}¼W1¿ Gj€g\‚^^M&d!hÕÍX0u9¿lò>õ 7;ZfzZ7œ–™(˜ë5¼ß‚q6AçØ¨™aQæi%! h@”4ßêî¯ãÜŸ-âõ ©²3Áï1X¿ ˜ÕhêAîO P¼‹‡Œp~Áý"…r°ÐC™�Z b]˜«Ø ssX­àáâŸÞ»i­®Ò]Z Çmu�ôREåLˆ¢f-‘è´Ä`¬RQšfþ^ÃÐ<<ïm?³·#xÜL¼¶açð:û�«šÓ@D0 <N¢÷ýQˆÏž y!2«ÙX8(âÛÝбü÷ÓÐl#3ˆMÝB¯AìtcÛ"×Ò#¼}þgähˆîHM]¤‚HMH#4ÒH#4ÒH#4ÒH#4ÒHãjÿ€$KÀ-����IEND®B`‚IMAGE 2523 ./arch/monster/dragon/Dragon/dragon_spellcasting.x32 ‰PNG  ��� IHDR���`���@���å4r�� ¢IDATxÚí›mhdWÇŸ¤M2IÝ:ÖÖ^Ýú2± ×Ö¸¥½ÖÚzUV»k¥Ô%Fe5 ”€ZÓm+Žôƒ"F]ql?Ô€ýÒK±0hÅ^?TÆpØ~p-XÁTç“<>™ù?œÃCæ%ÙÍ4³Ü~œ3wNfîýÿÏyÎËìRi¤‘Fi¤‘Fi¤A"î¥1Ø£îÁˆ\jÆp±-XI( kByòBÝÀé(è/rBG>=šh ABs*|?Á« š ®íî×¼ÿ€ð)¡´¢+eКbØ{±¾‡ÈKD|¯ðÅ+ˆéR<CшÞÈËË*ö>GHÄÛè|² ³^ΰ/Cè’g·PÞ&×ùÙþã#óüý…C|«¼¾(ñ›ÚÛ!zŒ¼^qÕÐ�M ÷UV„Ò 9#Ü·ÝËÕw·¯“°~ôó…»øf´Ùu”4—£L Àòˆ…·&´ƒ6ØZ Žû]…%ÔK—¨ãGJ~¿ðIá”ïŽ7ëý½ø¾s/ñ ëžøk¯pN.£—· vÛˆ¯£¢á@[Œï!uv¨/ñ=ó)~”w@£§^Eü/)9Cüó¯]ÅGöb@É3 ±O⇺tEäùœ  mWö„oiú±£¡-!5¡lŒva‚‚p£À|ó]¯ãÇgˆC * ü… ÿwñ~ž&ùALÌC®v\ω\nÚ€�öºžaÓPU”^YØáoZ=høL›† *¦güNÂûûœØKk_~,|SøÏÕÄüâ RTxZà©îHø©Ô߉ÏÞl�ò)<AOVì:®æÁ¡îLp½Ñ¤‡È´k"bûaϸ®£d½6y!«èŒu˜ú'áã3¯åìÄu¼<IÌ× oÁ纟Y“’_OüœÔ Ãç˜Pø(Õ _ì’°Òc'yOèä\j1ni[ó<Âß&�ï#uÀ D=þÀ3l6A¥vŒ2ÚhªªàzCÓÞ{±s}š#šMŽðÒöH¸Š˜ç»íÎ <KüO´ÿ¨0´m|á nb;q!DUJE}x´ÛôRK 7£^ЇÓ7´!tä½ßÂ߆ sjjÊ<P#ªhÓÀ½Æ^›…*Ðû®˜ïm{á‚ð ð+ènž¦ÙNzúÀøÛç„ ?“Éù½Ýûýt?#ñm3ámb¨–ÝC¡çºksyÃO ®&¹öë@{¨eß¹ŠÏÙr߃<nFR¨i õ×uç¾ ÊÈé�fég9ÑAÛlFÿ&üU¸ŽñÏf.ðÙ·NóCØ+üRxašøïR~VøÐ ‘°Š/a- 7±e'MM]®t7Ý£®æÆÆ¬4@âz¦Ãa’í`¬àµšm…n+:ãÚ–×vÕÛðýY(Óç…{U³—æùìÃ×ò¬Ô¿-¼´=!~B&êw2`ÑûBê¦l;1ý:Ú8ô®ûYÀ™íj¢Þ4õ†Ö¶ÁHÐ9 :JAGºYê‰ï—¦ß ©åÊŽ!Ž 7QWì[…5I?,óÃo&‰ßŽ¿lÐ(HܤãÄ$n¯ê]ÇëÁmÛûP·†»‘î Ørâc1b÷3Y>3ðwgæ¸:Eü á Mògè-|z†øm22ŽÓtg$<.<,œfB^†»5o¨6 v§Ù6Í“Û>´5cÄukH¶ôYÌác/n¢ /LÌðY©?Lðù7Éܰ,ò‰}=ñÇäú™Ûø;˜3îÛÍþjYW2†Ds¹YÅ8C`à\nç¹�Ôü¶£ª›ÞßòLhSÂ>‚-ЫńÃ\’žž“T³@Ì'gùü׉»DüòÂvjºŽ'edÜMÄÀMˆá�!†äº?A¢LŒ9íL†9›í#ek\ zÍ,”÷ØÃ£^Ÿ \gq÷TÖå-QF}~«ÈOÞÈG¯ø{âó'„%€ú…“Ä¿¿…ø™ >}hŠO^ìÏ"n¦„2¿]wÃ�\(¸ô剿¢í ¶^vóÒ`tÉÚ÷3m{g@M{>®å`ÀJ2‘»>äãSóüäíSü‡Lò¿º²#<o̲òòay}ÇÇù9þü~pæ`ˆ¦©*LØNAM¤"-³ûÝôÒXM{¥W/{¢q_Üf²äæ%“öP7ï5!z,x/D©õ¨‡ Û“ë aå†<?¿t 7¥×óý"ü9IC§ºfüïG‡™$îßïfÝ %˜‘àÄ®¨ fÕAÙ»ÞÊ—ÓKNt,G‘çAÓ7ÉüÓ×ë4 >LþÜTЙˆùi1à«’†Îa4¼0ËŽòüMoCÕ¿Sr¸5:Úô€,‹óÝìe‚ÌÑDÛÇŽcB¢)ŸM3 çÕ�„/ü0&|BÞd&ÇüÀ¡Î ~·¤QE1õÐlKR‘ŠÇQäæOè ÿD5ëv®û»€Y>b´XS0×À°!3]‘ëæ˜£"d/2=ðÉ’s‚Ÿy×$ÿåvâµêÎ1uL QFdŽ,š’ÿÛ:‹Ìù<&EI@  Èg¼#“.Z mV1‰cö0:"ïµ@,.Ö�Ä :ʧéjþÉD÷PŽ知Ш#17Õ„LFwÚü‘Pµ&˜3ú²Ù3¸%¯5½$ f΋tuÓô  KOñï:@ØX¨‹ íBAMÀšÜåá Ä'. —Ž\ï‰G  ñý=€;§Ë92èÍ’ŠÜþ X©zŠ9¬;¥#XÌ?š‚Ü Èm4/Ká3^úà0쬄´×«ëįºžlq×ízïUÍï¡à—`”æ/'²4v+,G]ί˜¼O=ÂMÄŽ–YžÖ kÂ2 Eóy ïw‡`œMÐ5v�j@V@Ø”¹MZYÈeÍ÷†º÷¯ãÁ2^Z*;¼ã6dãoBìý¶¬‡q Švñ!ÚÝ/R( =”  !ÒÙ¸š:w0‡ Ù î þÓ{·¬Õ]ºKKùq›¤ó:z©"F¹ƒh„ÙK$ºl«T”€¦Y¿×ðÀ¥´/xÇÏ숆 7o¢mØ5<®Å`UsúˆD€ÇIôžÿFâ³gBAÍn6Œøö4t¬C:oŽ‘D¦n¡W úÝÃØŽ€ÐõtÁo_§ÿ3r4aDw¤&Œ.RÁH¤&¤‘Fi¤‘Fi¤‘Fi¤‘Fi¤q¹ÆÿSü§g‚6$����IEND®B`‚IMAGE 2522 ./arch/monster/dragon/Dragon/dragon_spellcasting.x33 ‰PNG  ��� IHDR���`���@���å4r�� ¡IDATxÚí›mˆcgÇOf™ìÔ­±¶mÁfìâ^×ÕfÜRÂv»õÖR¬¥A©Ž/Ë:¾tðm¨(Ûµ£‚–ÅA+Äõ‹AÑMý`CõC°*{UZ‚J AÛFpü ür<Iþ‡çá0y™N:YîÏ“›››{ÿÿç9ÏKf(Ž8âˆ#Ž8âˆ#Ž8â ,ƒâ˜Œ ìÑðaD&6c¼è Vò¡8Ð0pÜ †‹œ‡Ð¡D„Î Ç €Ð ?LpǨ -wîöœÖ¼ÿEáCBa7DWŠ 4Å,ûbï ¦Bø"Ÿ"âû…Oî#¦ãòFô¶ÐD^^Q±w9rDÜEÇ“˜ ðzr†}B<¾ŠòV"æ_-ñ]äo/à[ˆxGâ·´µCôòzaÂ-T@´€ÞW]X 0äAán+WÜqî'¡tø�óÆ >‚s¶Íå(#°2aá­ À 6…6hà~×`Dõ ÆQ¤äw®Ay§pP8¢÷÷Ü[ùøåǃ”T|´zz £ˆVÞ†Ø#¾öЦ碗€Úe¤Îìõ%"¾W`¾o—ò4zâåÄÿ’’“Äá*>x9<š»$~N§® <ŸÒ(s /=áÛš~loB[¨ºPÜž˜àžP¿I`¾—ùÄ«ùÂ<ñ9¤ ¢À§“üßåkøišá‡109Ûq-'t¹ulÒpÐñ ( CTQ®{ev‹Ï´Ð24qM›†²*¦güVÂû뜚—Ö>/|OøŠðŸ«‰ù•ÄRÿºð¤À³ýžð#©¿ ×^m�ò)<BKWìŽ îÁp†3ÁµF“BcP À mªèÛo%<cI{HyçBÖÐ0õÂûæ_Å©Äu¼2CÌ× ¯Áú׬Kɯ%¾$õë…ñó?L(Cüu”j/vAX°N 't2.µÀ7µ­{â³ÀûH0h+ÑAY·?ð c@TQjÃ(âMUeojÚÃ{ÏõŽÏqH‹LtOu{ÂUļØ?ï1÷ÿç¿GÛ€¾p7±¸¢ª¥"‚¬><Ϋx©¥€ª¡žÕ‡ó6ܪx_×!ú~ŸÍÌ©«I( FTqN÷ZóΉ@^¨½ï²ùÞŽ×6„‡…_ Dwðí不ïŒÏ^¾+\”Áùí‰þý~x˜Ëø‚Žð*èªE÷Ph¹.ÇÚ\ÞtÛ¨«IîüÐjYÇw®á:›®1à{ÇMOÊiC=Äq]¹W@9}À,½–tÌbôoÂ_…èf^ tïÚÌY>û†9þÖ ¿þ<Güw)?*Ü3ª'¬áKØcèMlÚASS—+ÝM¨«¹5cV 4AäZ¦Ãa’m VñZͶB·qlÓ;wÍ[ðýI(ÒÂýªÙ ‹|ö‘ky¿Ô¿)¼°@̉¿/õm£ Xö¾…†);NL¿Žs ×½pf;Z¨·L½©õ‘ç 'Œh¥ =ÝÌ uÇ÷Ss¯“Ôò²ž!ïnQ_ì[„3 b–ñá×3ÄoÆçÏ ïØF6âò(q=Ðà:^>·³ uk¸ëé΀M'>&#v=“âçÓü­ù®Î?>Gü‰Ä „nä“óÄo¢>Js½žpAxD¸O Q±wë^WmìJ³c‹''¶}hkÆ„ëÖl곘ÍÇA:¢$/%æùlר7?uŒø·—âŸßHü^">ž¼•ÏcÌx`;ë«É"Íåfã €3™Ac�£OªnZÛ3¡iLÉ l‰^!&\ÏšãŸÝI|ñâÓbD‰ø§Ÿ#~þönjºŽgh†ï â»0@b|#@]²ä(#cN'™dN¥zÆHÙÃWƒÆŠ—ÙÂÃA×®±¸{*êôäP†C~«fnâÃûÒüµ"üIá!€ú_>@üÌ[ˆ¿œLðɳüînñ,ãf (ƒ.vÞ ´gp6ëÒ—'þªžo±õ¢—F£SÖ¡×´ç;êÚòq,6Q’‰Ìkr|tv‘/ßÇ—–Ü:Ÿè ¿ñÇó‡ˆùØ,ׂþønmpf`ˆ¦©*L覠R‘öˆ¶YýV¼4V×VéÕ‹žh<·˜,¸qɤ=ÔÍ{-ˆ^Òx/‡Rë! ÝÁõnaõ†€Ÿ>u„wJ„ÿñ³?N÷MøßÅ&‰Ïîö³.†" LOpb—ÕÓƒ èïŒe‚Ëé':¦£Èó å›dþôŵzˆwQ’?6›î Äψø%IC?ìÐÞ ~ta‚?àW¼U'Vñ{%§ÓnŽŽs³ºA–Â~.ö’HAfk¢ãc{1!Ò”‡kg@Ë Â€ð…Ç„÷“ˆ<ŸáŸ›éõ�â÷KšTä ¦nšmJ*Rñ8 Ýxà ½î都Üʵl0ÓGôk Ƙ�Ö…|²/rÃls”…ÔÓÏŸ§?y|†ñgnë ÿìoú&Ð$#4[-Éÿòyæ À ˆ- ”AÒÛr0é¢ :fã6æü5Œë¡GS¯ƒ÷²;5�q7æ“t5ÿ A|É»^í)úM:ˆYQ’I]i÷ ð{BÕš`öè‹fÍ়Ö´~ºÙ/ÒÙMË3€^Äx‚dQ&Ð^ˆ4„­ 1¡“ͪ ˜“»<\†ødÂ¥!àÒ‘ký ò¨Ô!¾¿p[àt%GWÔ4Ròoo0Ömê¦îbŽkÀVéDóæ 7r Í+Rø¤—>8—ëÍ„´Õ«¥âW]K¶¸ãv¾÷ªæwa,²`¨3m]®$R´æf,˜Žºœ_6yŸ„ˆm3=mÎ+€LäÍõšÞïéi6AçØiP2¢Ì-ÒŠB Ј(j¾74Ü_ǹ?[ÄëQSeg‚ßc° ›~0«ÑÔƒÜA p©Û�y÷‹ÊÑBehƒHua6­f`ƒÎmÌaA¶Š‡Û‹z例ºJwi)˜¶A:ÐÐK5”Ë0!·0k‰H§­ S•Š"Ð2ó÷:¸°‡æáYoû™½Ñ§Í„´7Ð6í^g`Msúˆ O“èÿFâ³gBVÈ™Õl(ìñínèTþûi`¶‘„¦n¡— †ÝÃÔö€œké‚Þ¾Žÿ3r2aDwÄ&L.bÁ÷HÄ&ÄGqÄGqÄGqÄGqÄq¥Æÿb­û° çz…����IEND®B`‚IMAGE 2525 ./arch/monster/dragon/Dragon/dragon_spellcasting.x71 ‰PNG  ��� IHDR���`���@���å4r�� ¤IDATxÚí[]ˆdG®™ìÌôNÜØÆD[wD{LÀvÕ¤× Ë5»&¶ŠÚ˜,6ÆÕAL«$Û ,¢Œ1[|pÍ¢þ@'¾Ø¨òàEò0Š‚íÃJ£>4ø°-º!#+Ø/bƒ`ŽçÎ|‡s¨åN÷ÎOÏuà£êέ[]÷ûÎ=§ªî,X°`Á‚ ,X°-[Ñ9Ú.Øö[ä–òÇëý, ŒúXb”F)ˆ¶E!€"( Èï1ÚÃ?_A›±ŠSa|Šñe·¿l³±¿,$ô€˜± ÝŽ Bçnpô.?͸Vœ½o[OÀ*ÊÊŠ¥@¬íã.îèûÇП˜'úÍq:‰Ž¿!ä‰0_p㳄„*ÈTMÜŽ�·“QªÈ1]ƪBm)ì¼; «÷Ð…cGÈqý,ã†%ÿœþ}ÇÌ\c¬à¦{] ¸1Zù"6㪣„›àt"À‹wq™ˆq;㽌O2nFù>¨}b›n$Á"ÊÔÛ¸±U Ï�àäïŽUñûm_BYalJ€„ðç¾t#QÆÑ¿¸þ‹W¬+}7ãÝ ¢3t—Ljµ0­þ(ÃŒõAxWo‡Óve7E€-.`\×õ$$ ÷+ŒKn’þ³p3Ñ£ª#Ô\d<=ãˆîy ÝG·!ÁE@¸âë .V•XEŠ×÷�¹¦þÊfLyFe$Iv;!BWõ)XFùNnü ƒ2Œ)G¿äú7Wô*Gÿ¾ÉÑ×¹þã‹&\Ävžœ"„Q4‚ùá§%Þîa5Mƒú\F]ÊÊÚù×äà<Ó¿f’«JútŽ>;:Ê Ç ×q'³ë*>Ã%½‘q {í¤£ìÄ­ôñ™WÓŸ@V‡Q“˜ ÌMeÍMFðŒe”öÆ#ã%3:”à°—¼0§OŽ¡ƒ±[GÉ™s£ŠRE?Ë’·Fà£Ø?tØÑá}4Ïž£¬nçÎæyàÓô"Ú$>ã†&´äP—m2Zê*�Ž—e[�ý”RÄ‚%”­@ŒëÄä|×´+k˜Âu×åRVÂ5Ô­(Bp÷PÅ8û£äÑá{&ýœ“íð4o€03íóá½ôk䉫æÆ¨¯BŒ†‰ñ- lŸ Ævq}K‰GÌ„„ ”‰óÞïve޾[8î˜óE\ãÚŠ UM3î%´íñr@ íT$ˆjh?E€ñÉÏ0þÎøË´£¸<Çø*ã±7OQq­óY—£9w']æú_½EÈ�Ç*¼Íº ,à›€¬,;²˜2á#²žkòG›î£Eô½¬ý+$ôò4Jÿ±æÔýÜtŒ³ÔµO^6àŸü1'XžìÓKï¿ÅLJò¿…è¥y"·¾Qp³TgüÙ¬@ Ù}ÔÉÃ$M_˜¦I–5!Çë€+9Äû- mHŠ%UWí8SêB¤ô“zß´ï$À5‹iä_Dù6nð[N®Äq~‰ÃP² ‘ˆòÆŒ‚ðÝ!úüôëiÉK*5ã+�I¹ñMÂóU˜ê=¿>´ öH¤Ô¤×”Þ/ÚÚ9ÌûÏðÉÇO»uÏ?ÁÉõ­ìåÍ8zؽ‰u“ôüÌøÞÌ,=2“£²Ë^3®ú*€zÆ$ v N~Ý'}h[¿¿á‚©HØÖNõ~X ¬ËŒï0NgNÒ\^ÊñÔ3ïˆÎ;ºÍÑ¥¹CôX²ê˜á§"CÕ ¦_»ZEÙü#`¼uÅ e,2në<¥ŽR¡¡u <¥6ÓÞϸ—1é&9ÔÜJt“ÎÄÓ“‰� àèoÑ$UÜ4“”Ž»W¦vydwõq4ųÆS×\”æåù¼Æ~K¸–˜tè¬¬é¡ ¸Qì~nøÐ‘)úZf‚þðGô1FBþ(QÿÙ»»!G…ÉÛ(mϽ„ŒPÊt±nÝ÷Ã@J<-mÒ³ëi}1àIÙìz¨2%hy‰þÊ„ ÜõØç’N ³DwO½Áý4R$ä_<J—Ï¢gOeèÄÔ<å_‘ó¬dVzyÜX¤sv�"ž—ùõжÝNïÓLj Ò#T,Ч¯ à¯K €¬!Š’\·bçÑÁŸ=Ρ'!ŽÃOD/Ÿå\ððT›+иÝƵäë¼½H=LjqÜó§uv‹Ùž*fCC00Þß×0ƒºþvÓ®ŠÑF<žCÏzË„ü– /E\ãvʾËà@¿.�“…ɧvDÿ;?AŸÊч]fÈ«öiÐOF,¹öŠ>%]#FEsÆpòñÔºŠ©lÈoQ|Ï’¶m³tã°„|ž\ÇËOÒ3yúŸ…|¿.„P#@Þì Õ²Žb´±äRÈtëÁ„ F±}GÙõX]ı]GP.'䯕>–\s¼_>à hÏ­ ðmN¸ÿ8íèW§&yj:A4µµdáMv» ÊLØ2ˆùˆÍÙÞ¬ªøïfe]Ìê¾Í²$Q?î—Jú’'“Á&ߺhÑxpW¤žlÂýd‚gGî&ŽýǶ<ˆ,<0Ö0ƒ 3E¬äën¥–:‹A�ÖìE…Í8Žc!}R¡@T.¯]7Hâ6«[ »ýQÖï“×Û<� gfK @BCè}Ÿh;ÿöæöuï݃O~Ëz>èÉïÁ󛸦ÀpͰ5¬käÛµƒ¢ã=vý”÷Àôß6‘!Àq¿ÃäÇ*ÇpѰPÑ™ AyïEŠ~JØM�ÝUíʶ3’¯ä¡$ôäàùî ZÞÕâŒ�‘÷>¸¥b€l#Œÿtxo Ð/f>E$a,sЄÀ+FM€@ÚK²”_A ;Ý´9Á&àtâl>hHN0k€®y…™A90ßì«G[ò‡Oñ*öóCý*SQ ]2Ë¢-[ºúeHÊy`_‘. ¯’$? ç“¿I«@ª)Ëf;dÔq–pmÛlÆudÖ´ßÈ@: V›vÚ¨$¹=dÉxjX€Ù ¸Æ~™ŠÊ"ª何ìê%>˜0îeW&`ï“D@%¡®_Çí¾•õ›ÍKöÕ!°Ï⾊AFÒx¼ë&Ÿ;Æ@×_KàoY`_.Æìè^¡dWÑOÑO(ýoB÷¥�þ±Ånɶn·µ áßY·ß|âýcûY}ÈÓSþx äïŽâƒ ,X°`Á‚ ,X°`Á‚í¶ýà S9—����IEND®B`‚IMAGE 2532 ./arch/monster/dragon/Dragon/dragon_spellcasting.x72 ‰PNG  ��� IHDR���`���@���å4r�� «IDATxÚí[]ˆkWÞ3íÌd¦Þkk£·þdlÁxµÞŒWÚXkkTªÁÞkƒ¢ÚrÊõ”Ë€ZÇþˆ‘>8PÄQ+Æú >}ñPmÑøP‰?`hAK®`Fó$Ëur¿ÅZl“Iîü$3Ã^ð±÷IöÙÙçûÖYkï}N\°`Á‚ ,X°`ÁvmYçh;¸`{oi›g4 Hȯ÷°È0*#`•Q`ù Ú.…�² ? ¿Íh@Œ¼„)Œ[œ"ãŒûÝá²Æþ‚lÐ"Æ €vû.¿ÂÑ=\žeôçÀÛî°Š²Œ²hD©�kïÄxwô¥côLJ‰žZ¢[Ðñ×…| æón|“P‚’‰Û9Àí§A”rL‹±iÅ€P» ;oæèâ´vâ9®„qŽaÉ?¯Ÿï›Y‚ËŒ \tÛ T�7F+"_Df\”agÜ ðÂ[ˆ¸ŒÅ¸‰ñnÆÇ× |Ô>µGcå2ê \Ø&Ðatp ò'c%ü~äçQ; &ü§_ºŠ(áèŸ\ÿùK.)}ã ¢3t7—K ÄZ˜ÖG¿•áAÆ‹: ¼¥€·Ci»1I`«F„5Œë²î„8á~…ñŒ›¦ÿ,_CôÙUje<>çˆîxÝM7"Áå€,p9ÄW@\l*±Š^ßäœú+˜1¥)”9I¢€´ÛZ"À¨wÁ:Ê·rã'”`Ì8z’ë0.2èeŽþ}µ£¯qýŒ/˜pÙyò�!„ˆ¬Ì?uñv›P3¨¢ÏuÔ¥¬Ç%PësNHÎ3ý|4“\•×»sôÙÑqnø[½’;Y¸¤â\Òkײ×N;JN]G{9ý d5e‰Ù@Æ\TuñÂ5³æ]xÎxgäŒ%8,Áy/Ìé]§chbìÖQRæ»QE)¡ŸuÉ[£ ð! ì šwô¼Ùó¯’µÀMÜÙ"|–^@û®‰Ï£jBK u¹Ð£®¨àx]¶ÐO¾¯J°„² !ˆpž8‚|ß2í ¦p„Áy©+á2êV!¸„k(aœQòÀ½èð]SŽ~ÂÉö{¸ ªˆ·ßE˜™uó|x'ý y⢹°.ꛣjb|(Ø;ˆp¡-œ_WâÑ3!!eQâ¼÷»-™‡£ï:Ž›æû,ÎpnÑ„ªš÷*Ú6x) Žv*D�e´ïŽ"ÀûùËO1þÆxnÖÑ/¸<ÏxñÀëg‰(Ûë|Á¥èw’žçú_½EHÇ*¼Íº,ãk€¬,›²˜2á#g=×ä* ÝA+è{]ûWHèän”þ#Í?¨û¹9 hg©hŸ:10¼,o'À;øËr‚åÉ>½Èñþ|<“ÿеD/.qýžž7.P…ñg³]1dwP§>bl¾05“,ËBŽ×!Wrˆ÷ë@ÃJªoÚqö¯#„hé'õŽißH€sV‘ÿ(Ê7qƒ§9¹ÇùUCñ6D,Ê'ïá÷º+és³¯¢U/©”gl�$åö ÏWaÚ¨·ýúÐ6Ø#¥Û·® `p]AƒûE[[Â!‡yÿþò!ÆãŒØóOqr}#{ù}sŽ>é^GçÜ4ýl† f|knÎÍ¥¨à’ÿ7.:*€zÆ6$t÷¡N~Ý'}h[¿¿á‚©HØÖö½ß·2XÏ3¾É¸=q }˜Ë__ω÷ÕüyÉѳ¯qôËÔ=¯z§æø®HPi›éWÓ®VQ6�ÿÂo]Ñí;ŒÛsž®¿RG©Ðкž6ÓÞ˸“1í¦9Ô\G[KŽ~s–‰ÿ²#:=OOóqãdœìf™üã´ä^:°ÓœGvKGûxÖøêš‹yy:­±ßnÊ–9¿Ñ'É—�7Šæ†÷›¡¯&¦è÷7;ºxš‰É¿ %êßÎ::qEŠ2Ó7öíXžÉnÈ´h i¶¬��ýâi~‡ž]Ô'>‘”LöÐF½›H(É@ÝKôk(s \à.Ç>wšY ºm†¶Ž;¢õyAü=x%ýáƒÓô£[gèÔÌ"¥¯Ï‘ó,oVzi\XNçì�D</óëEm?²<¤O™ ”A¤F(›Oï à¯K2€¬!²’\wcÐÁ¿¼GúÖG[9¢ óÔæ»á™³7Sù† ÝÅíÎ0ú‘/óö õ#ÂqÛŸÖÙ-fûP4‹‚®ñþކÔõ·kvUŒ6âñzzu.{ä×MxÉâ·_öƒžƒ×3ù[_tDOÎ÷ð§gRô—òã*„½ô•K®}€¢wIˈQÔœ1œ|@<µÒÇãë†üªÅ÷| †ß—E ‡Åä‹t¸ÿ=<—¦aÃÈ÷ë"@F5¤£œt¡%¿ë“íA·4UˆÕè;Ç}¯Á jÞ:‚R)!¿WvùXpµq¿ù“¿]Ê«KŽþr+O=ß>ÍSÓ)¢™Ý $ o²ÛMPH°ö ä#6{d{³ª&à?¨š•u6©û6ë’Dý¸ŸÏëC=U´Y›÷Þ}Êý]êñ&ܧxv䮿Øb׃HÂ# 3Ø0SDJ¾îVj©³(°aÍnQdXØ„cà8’Ñ'e2D…Bï¼nÿ“IÝb˜ôKY¿‹?îñ�D€¶™-U   t|¢íüÛ›ÛW¼g>ùuëù -¿ϯᜠÃ5ÃÖ°®To×Ц½ lØløqž%ÐÃG†ü.Çý&“A¨ÃEÃBEgB&¥½)>:ýÂÎÈè®jK¶‘|‘‡z¡'ÏwGÑ2ð®†gÈyσë*È6Âøw‡÷y}ˆ €~1ó¡\Ž$Œ%ŽšxĨ ôÂ’,åWAÂN7mN° x0q6T%'˜5€Ì¬"´K2ŽÌ;ûêÑ–üáS¼¢}ýPߊÃTÔBWÁ£ÌÆ’h‹Å–®~’ƒR@8T¤ËÂ+/ÉhûäïЊ¤dÊ‚ÙuœyœÛ0›qM™56òs á«M;mT’ܲx<e,Àì\õ°LEóÞß‚ÒÞJvó€ŸÃ˜–1îeK&àà“ä€JB]ߎ›¼ôÍKöÑ!pÈ⾊AFÒx<q“×# å¯%ðY8”‹1»zDÈÛU4Æ“5äJÿÐC)€l1©1ù ÀÖí¶v&üuïÍ'Þ?¶¯Õçùcº €'(H 2ˆ,X°`Á‚ ,X°`Á‚ 6iû5¼ü§Ã«á����IEND®B`‚IMAGE 2535 ./arch/monster/dragon/Dragon/dragon_spellcasting.x73 ‰PNG  ��� IHDR���`���@���å4r�� ®IDATxÚí[mˆ£W¾™uf²S·µÕh 6c‹kµYWJØn·¦m°. Š:j—5~t7à× (£vŨ KqÐ qýchѦþЗêÁªtªX‚J 6‚¶ Œ`ü!üs<ïÌs8‡»¾“ì|eg¸î}'÷½¹ïóœ{î=7ï¸`Á‚ ,X°`Á‚mÙ ÎÑFpÁ¶ßr ·Äh ¿»ÞOÀ"Ϩ€F™Qa”‚h[(@€Ò0€ü.cb”, Ly·Å©0>Äø‚Û[¶ÙØ_’ º@ĘÐnÇ¡³ÝÇåiÆÅâ\þ–$ÂfD™CY1¢Ôˆµ}b¼…;úΑCô‡s³D¿:B·¡ã¯ ù@,Ì'ÝîYLBdª&n·ÃVÆ÷¶FÏŠ¡¶vnáhõ->DŽëïe<À°äŸÕ¿ï˜Y‚kŒe<t× Ô·‹VÁz™qÕQB„Í p<àù7q‹qã.ÆW£|Ô>ºMcåê+x°Ðg �p òÇcU|ÿ È/¡¬06%@LøãŸ¿‚(íèŸ\ÿÙKו>ƸƒAt’îåò±¦õѧ2<ÈxQ„wðvˆ 0m—Ç)lÁˆ°Èè]êLˆÜ/2~ï&è?sWIS¡æ<ã´#:ñ "º—nÄW À¥_qÐSb ^ßz"ú+›1åY”EYDi·"tD€QgÁÊ7sãG”fL:z‚ëß`¬2èeŽþ}¥£¯rýûŒÏ™pÙ}r‚BDÁ懟–x»‡^š ô¹„º”-” ´óïÉYÀy¦Íd­*éì}wt7|ŠA¯âNfÖU|”Kz ãöÚ G™Ôµô¾é—ÓAV›Q“˜ äÍCeP/\9‹ÞƒÅ;1àÆ&ДÙä\òœÎ:Cc·Ž’5Ÿ*Jý,ɺ5ª�ïÆÀþÁ ƒŽ†÷Ñ,{þ’ ÜÄÍòÀ§èy´˜ø1&´dQ—m2Zê*�®—äX�ý”Ä‚%”- @„ûÄäóŽiWÖ0…û îË&dÂ5Ô­(BpÏPÅ8û£¬÷£Ã·¦=Æ‹í÷0 ˆ·ßE˜™rùòNú%Ö‰Uó`Ô{£ab| (ÛDxÐîo)ñhƒ„²"qÞûÞŽìÃÑw ×móy÷G¸·bBUÓŒ{mÛF¼,ÐB; ¢@€ÚFàþð#Œ¿1þ<åè\že|™ñ¥×NQa­ó—¥ëÝ­ô×ÿê%!\«ð6Cê0‡l’Y¶%™2á£h=׬ @º>æÑ÷’ö¯ÐÈl”þ#”]­{kÖ( mœ¥®}êÆÀð2·‘�·ó‡?à–7ûô"ÇûoñõÁ˜ü¯!zq–ˆë÷1òn†êŒ?™ tÞÝGþ=À¦iËšãÇu@È•5Äû-`ÅJª^÷ì8êB¤ôõ¾ißH€{æ“È?ò Üà׎ˆãüBÊQ| ‹r3ãVÆ;@øýî%ô‰©WÓ‚·¨ÔŒg,$åÆ ÏWaº¨wýúÐ6Ø#eP\WPr¿hkK8ä0ï?É>ȸàÖ=ÿ¨›¢×³—Ÿšvôaw}<5AO1Á“޾==CLg©ì2ퟫF„¾  ž± ƒ¨“_÷IÚÖïo¸`*޵½VC‚õã!Æñômô.~Oó¼£§?ëèÉcLìë8ÅYojšgEšªl¿Ú6[E¹øFÀîÖƒ„±È¸­ó üL¥EÇÌæxJ0¦Ý͸“1á&8Ô\K/Üáè'Ÿaâ­žá]Ñ=Ž~zW¼ØM1ù×ÑwUb§EìŽ^#Ž&xÖîÔu-Jòò\Nc¿%\Kl:tWÖôPÜ(ö.nxêÐ$}%¢gÞèè/`âc¯?…õ¯Ÿptø@–ò7RÒ™{ XD)Ûźtß ñ´´IÏ®'õ D€O$e2kè¢>H§•d å-ô‹(‹ \à.Å>wšŸ!:6I/ÜÌÿcEL~÷¡=5—¢ ÇÐÑÉYʽ²Hγ’Éôrx0™ Ë*�ˆ�</óëm?zœÜ§Ù Ô@¤F¨PO_ÀÏKò€äY\·bŸFÿ}lfôgÏ0~Ä|ÓÑoOóÜé[¨v}žÞÎíN2.&_÷í}@êYF„뮿­³GÌö3 b’‚ñþ¾†Ôõ»›6+Fñø8ôt‚bò[&¼pÛ);7ã\o^ÿ ÇþgÖàNfé.=äËU;ô•K.¦? ³¤cĨèš1œ|@<µ®bªòFßóE€&¾_’@·“Øû×ñ¯ótn:GïÇ †‘ï×E€¼jÈMF-ã(BKþ l@Lj¤«Ñw‘û^„4½<‚²Y!­ðµ$pÍÝ~ó!&ÿÙ߬ ð©ÛýînGOŸà­iŠhrkÉÀ›ìqA”™°%ò›=²½]Uðh˜ÌºÑs¾†0^Ü/•ôG= ´YÜ5ï‡EOº¿K=>„ûaÊÑ)w%ÇþÃ[Di˜Á™"Ròõ´RKÝE‰ € köˆ"ϦבŒ>)Ÿ'*—×îÄñ?“Ñ#†q¿”õtüóã6@èênÉžã`Ë €¾O´Ý{{ûº÷ÛƒO~Ëz>èÊ÷Áó›¸'ÏpûÍp4¬¹€Š�òmî hÛY`Ã`Ãó,þWŒpdÈpÜo3ù„Ê2Ü~4$*º2!(çý⣟vF@OU;rìŒÅ·‹zz²ð|·-ï™ Éš÷{pKÅ�ÙFvxo Ð/v>T,’„±ô~?1ê$½°$©üRØí¦Îv f׃†¬ &U„vƾyg_=Ú’?|‹W±¯ê[qØŠZh<Ên,ƒ¶H¶4ûeÈ”rÀž"]¯’,~@×'“V US–ÍqȨã,áÞs×–]Ó^#¿ÒnmÚm£’äÆl~_Cfà{e+*ITÈy™lï2%¾ˆ1ÍaÜÊŽlö‚�6‹-}”„º¾7~+ë;=º.ÙŸ=÷U 2‚Æã±›¼î?—Àß2ÀžLÆì èå$BÉfÑOÁO(ýwB÷¤�þµÅ¸Æäƒ�[·ÇÚùðï¬Ûo>ñþµ}­¾ÈߥYþxŒ‚òÇcø`Á‚ ,X°`Á‚ ,X°`ã¶ÿÉÌû°£¹sV����IEND®B`‚IMAGE 388 ./arch/player/stoned/dragon_stoned.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�ÿ[‘"µ���bKGD�ÿ‡Ì¿��/IDAT8˵ӡŽAÐûà#00°d`0 ¥‘†Ég;`£ËÎe/!Iã'WWu×[ÿrÞþ9Hœüoâ`€ÓæÄ©A­×`ã±Þ«�ñg@¶Ý ÕVÁp}�Òm%Ðq´m.*ø• ²•‰òÞV‰ô ¨Ía9¹Í~Çþ|‡ëó¤×:Þ[a–o`£)Û²y´å†C·.Æ$O3ç‘£-(Þ%/щMVä=a§*‰ô‹|Ìå9*%‚¶AüöXC•Ü>.sððì•3' Gº—˜‘[ôëtÛO�û£l¶ñ·%nmb8l{ms]Ëm5ƒ'à;¶v¾Mb·e{›¸oÃuÆmÛû R3`Îàå¯-:‘̾b’Èùjq ÉÎúz³ÄµÖXÞÁWxô’å����IEND®B`‚IMAGE 188 ./arch/flesh/dragon/dragon_wing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEïÆ÷�Î�)ŒR���îùA���tRNS�@æØf���^IDATxÚÝŽA�! mùÿŸ%¤k²©rñ&&^fDƃ`Ž8ÆNžº;/’¨t®Ä÷š÷_XõÌv Y£ý‡4šw.Q˜í÷Œ fÄŒPÌãV€<×ú§3’8ãŸPé����IEND®B`‚IMAGE 183 ./arch/monster/dragon/dragoncave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ��ÿÀËÿÿÿŠ-���tRNS�@æØf���YIDATxÚÕÒ1À Á[øÿŸ“ฉ…„R°íœd tn,99CØs o�­p‹=‡rÀÓÜy› èx¹Š®|à.Ñà ºò»îÒîVúÈá^„/`ƒcº�Éq ßUÂÌ����IEND®B`‚IMAGE 277 ./arch/armour/mail/dragonmail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïµ÷!!!)))111���ÿ��ÿÿ�£©[���tRNS�@æØf���¥IDATxÚÕ’Aà ƒ½¦Ëÿ?Ü#*™žÛ98ˆ|Êñ7¼ÊÛ¶­ðÖÖØì©ï7fîÇÄíþ€ €<CÈ?7R^ ç¾eë¥æ”é‚‘§"�›�²½wF¨@”ôepú^ šò1”l¼ƒÄ_7`@ÔÞ¤Ímá¸ðÒ›QxŽ]á“ÚS¯OáídÎ"híó+šÎ¿ÄìL!Oë“h����IEND®B`‚IMAGE 1027 ./arch/monster/dragon/Dragonman/dragonman.x31 ‰PNG  ��� IHDR��� ���@���LP…œ���ÀPLTEص�E�bq§J�Jk£�á¥$�­+1R #I�f+�A{�¬�Bc�s�k9�… „�¥#! B³„9 Þ>éµgé�Œ�–B"b�s�µ {Z��cR.çÍ)±œ�ɯ�ÿš,ÜÃ��{ ÷K ðÕÿÝþç(�¾�1��µWÖL�mµ�ò ïÎ��è�ÿ'©��…B�P�ðz…b ���tRNS�@æØf��ñIDATx^Í‘e“ÛL„wfQÌhæc  ÿÿ_eÖ‰N–N©ûš–ËV¹Ÿí鑨HÍè—½Þ!šY3©cÓ£ïDÿA§ëœå¾±+Æ;Î÷uÌŽGOT•[ì–Kžþøs—MqÅï·Ëšo_R6©ª®²ÔMc½Û|š±ÏªÛz±wyêî—S„ë^ÝVîÎÝÄΦädÎê6uªºp¶¬™JˆãØ©³«š»/“OÓI3ãîãÌáéq ­ŸeWΞÏgœˆÍŽ¿öNUÕŸ?ÌîÔîAØÿÖ+w5ÈF@$¥çû|‹³I³ùìÁ­ÀAkÀV‹…nÛ8›Ï—L^ÌèoíÃg€`aÚÖqVîæQÑêÅò+ ð‹SI-{ ’…6¦]‘ë#"„àgå% ¤,Œù?°‡Q¡R­6¯>2§ÁƳñ×xC�­~m(è¸ÑmE…x‡¤]AHHÝ’þ �þÁpB’v‘Ý ©nfσºQw'ú¸´¶ìVÈ—Tˆªëë›»Ux¦­ÓÈ š4€úðø¤} Ôn‹(·· (›ÿ¤”ò™Ƽ.Ì÷ȶýÔ³zB¤f=P|ˆ" °+ªGTVÀ„Ô“]‚”žçA Ox"Ñ¥L: 4ðÙF úv¶%è®d."|ëããÙ'ƈ˗É?ȶR„DÈûuïƒùçŽÀÒˆõº÷}:’I�+×ÑÅ€ÀïȳKceàƒ½‰°!È.@—`'X!\ú@®!Âo›Z |jáÙ¶ñô=Jð¬ 6ÉûÕ†(­l]ˆ£’‡ uì–‰¤Ü~ÚR™€f…ôúRêÖ¼¦%ù¶Õà rѶMÓ 3ò™ @ä=]Ž€\˜ÎoA€øE"Œ¿áFóæ|Ùæý8!‹!Ðä&ÃBÈY‘Å rQÈK¢™59(’ë²éÞï‰DÏ:bR¥ÎØ;û›ô+Á6õf@6“����IEND®B`‚IMAGE 1029 ./arch/monster/dragon/Dragonman/dragonman.x32 ‰PNG  ��� IHDR��� ���@���LP…œ���ÀPLTEص�E�b�Jq§k£�á¥$�­+ Þ>J+�A B!R{�¬ #ckI�f�… „Œ1�A³„99éµg {�–�µ�¥#b��vcR.ZB"��sðÕ÷K Õ½�L�mÿš,)߯�é�ɯ�çÍ þç(±œ� ©�Î#�¾�…BÿÝ�è�P”èÍ��ÿ'�ðzÖ�1�ðåi���tRNS�@æØf��óIDATxÚÕ‘åzã0EÅ’™1Ì)ã2½ÿ[íµ[7¶›ýú{ÇÅçèÎX!£*GßãøÀ(ëÑb\«ò¤~±úW W›å½Ã.±VËZ;!Y­HøŽÃp½t2ZÑϯ¡å‘sFèZËÙÔ±fŸ¢s†ãV‘…j²û}¶Åºr/líY‘·žž3<ïêÒõ&Þ.ÜYg[äU¾¹Œr×Ió)Ï%„a˜;Õ•cyŸF§)^¢J{ë°Ê­gõ^¨ª«|m}¯-»‰5c»®“—Ï7unåŽ×ç…mÛã³³)Ÿ7ÕXØ*Ó€>²l—{õáPã¼úí‹L™€Æ±½É2µ«Ê›ƒpj_¤F¥ŠÒ JíL›¨ª#‡ˆ7¤ZiõH9E õÎÙdê$0¡E¦µÙPç<ö㸚«Ž†ýSmÔ/›rpÉ¥ä±ÑZuØŸ:Àà@›Ž ”1Ú˜o´mp+5¸%ZA0„&ĦT6ùGdPÁ”Q­�žN5–õ$oqÉ;Ê'‘RâUH’©·/Ðøx/ú-ÀQ8#¬Ú�)n{ð{ΘVÝCÛ-x@ù“”ؽßKÊ…ÐúUHŠ¢Ú ‘9ÎF¥D¼&¡Hд¸õåÜË/’BÐJtÂ\‹ ¨-}¾Ç ]‚ï"ˆ}ÑDpü�ÆAB@À[Ù àùàx &–‹m˜c{CqsÍ‹_öKŒà7Ÿ‹¢Ï)öãñ p„¨^�â»0X”’~Æ ÆË÷aøðúºŽÂŒÃ€æò�Ú–?L ˜ŽúÀmº:J ŽÅ~|ÆÃÐbd·/>r»¤P B?%1›Í–½Úaé0 ýcͼK›Î°q¡Œ~KËæc÷Œ)K¬Êí–APd”�%XÀ`[¡Ç<asÃÒNfËL¸`3Íúqj`¤Lk“ô¦é²o”‰NÙ ²X,TyúY'I’’¡1QõÉ(ë|(à^MºêøÈ ÿUý>14ì¢ú:����IEND®B`‚IMAGE 1034 ./arch/monster/dragon/Dragonman/dragonman.x33 ‰PNG  ��� IHDR��� ���@���LP…œ���ÀPLTEص�E�b1�Jq§k£�á¥$�­+J Þ> #I�fR{�¬+�Ack�Bs�… „Œ9!�µ³„9 BéµgZ���¥#�s� {é�cR.b�B"ÜÃ��–çÍ )L�mÿš,ɯ�÷K þç( �1�±œ�èÍ�ÖðÕ�{ µ�òÿÝ�…B�ÿ'�ðz�P�¾©��µW�èë¨���tRNS�@æØf��øIDATx^Í’Õ®+GE»a˜Ñ̇.B8ÿÿW©ÖÈÐ:]å-eä½fõ.ÉÞ{Ÿ~BôãýÃììú;úÅîßHb&Wô.n‰ÙmŒY )ÙíH:#hÛ¨ÚœN&ûõïÔDdŽH[³éNƒéºl¾D;´Me©Ú_fX4íóP/"“E‹ÓE—ç6ÚDEZ27´¡‡çŒ¶CI;ÒÏÒ4¥CCý1ûkÒ¬é¢EÚ\L¶óD¸¼i.ta¶£AG±1ïmÛšíëH "I’¸¿†è°}.> „a�X]Ð"k¶ãk4xÀR©�BHu­­M›í¶&â¡`^Ÿì �Â0q�¥Ã¢x�D^Y]©À‘xâÀ¿Ó¶Pâä¢ÒJÛàpΟb�ªVˆZëßw1—\JV©ûg¢¬´Å’�üR†Z)½º7¬´Öê/ÌŸ$çGŽó­Bä mq~O�þœg ÷¥¸® ”-<¡A¾Èãð5SV‰Û '-H\~úôr<c…7…Râ T%Ö<�û#ðõ‡ää#qÝ"¯Üapòx–o— Œiu[2_. c¿Ïò«|ã›i}ªyŽ�‰9—n€0¡J"®!‚ €Drþ™Ÿ1çÜJÜ€•†Ð)8ú]<ÔšLS²<CÌQ0å’k&ô^ë$$£ v©ä°fâ۞ܦë¥<ÇRÆ1JV¨Ø? €ãŽ9wÀ> ßÍd—îˆÚßpj8ýWâxZç±¢#€ã`ì� Äk^˜ÇŽÒ3„! b˜ âHù†�0žü˜ME=`é–ˆànD<@t€H.—1à Ümé¾tH"#X×Ï…²ê¦[Ÿ:»"þ µµ}J¸gX×–•ÄM¿\2Q®|AÉ´e™¦gK¡•Ÿ ¦5»ëÐçƶô*×ê‘èK]2¿RU­ˆ±¬ÊŠx“ï÷ª¿ÆÞå>±Vãû’¼ðªÑ“Îä4ÿ� <7i(-ó����IEND®B`‚IMAGE 1027 ./arch/monster/dragon/Dragonman/dragonman.x71 ‰PNG  ��� IHDR��� ���@���LP…œ���ÀPLTEص�E�bq§J�Jk£�á¥$�­+1R #I�f+�A{�¬�Bc�s�k9�… „�¥#! B³„9 Þ>éµgé�Œ�–B"b�s�µ {Z��cR.çÍ)±œ�ɯ�ÿš,ÜÃ��{ ÷K ðÕÿÝþç(�¾�1��µWÖL�mµ�ò ïÎ��è�ÿ'©��…B�P�ðz…b ���tRNS�@æØf��ñIDATx^Í‘e“ÛL„wfQÌhæc  ÿÿ_eÖ‰N–N©ûš–ËV¹Ÿí鑨HÍè—½Þ!šY3©cÓ£ïDÿA§ëœå¾±+Æ;Î÷uÌŽGOT•[ì–Kžþøs—MqÅï·Ëšo_R6©ª®²ÔMc½Û|š±ÏªÛz±wyêî—S„ë^ÝVîÎÝÄΦädÎê6uªºp¶¬™JˆãØ©³«š»/“OÓI3ãîãÌáéq ­ŸeWΞÏgœˆÍŽ¿öNUÕŸ?ÌîÔîAØÿÖ+w5ÈF@$¥çû|‹³I³ùìÁ­ÀAkÀV‹…nÛ8›Ï—L^ÌèoíÃg€`aÚÖqVîæQÑêÅò+ ð‹SI-{ ’…6¦]‘ë#"„àgå% ¤,Œù?°‡Q¡R­6¯>2§ÁƳñ×xC�­~m(è¸ÑmE…x‡¤]AHHÝ’þ �þÁpB’v‘Ý ©nfσºQw'ú¸´¶ìVÈ—Tˆªëë›»Ux¦­ÓÈ š4€úðø¤} Ôn‹(·· (›ÿ¤”ò™Ƽ.Ì÷ȶýÔ³zB¤f=P|ˆ" °+ªGTVÀ„Ô“]‚”žçA Ox"Ñ¥L: 4ðÙF úv¶%è®d."|ëããÙ'ƈ˗É?ȶR„DÈûuïƒùçŽÀÒˆõº÷}:’I�+×ÑÅ€ÀïȳKceàƒ½‰°!È.@—`'X!\ú@®!Âo›Z |jáÙ¶ñô=Jð¬ 6ÉûÕ†(­l]ˆ£’‡ uì–‰¤Ü~ÚR™€f…ôúRêÖ¼¦%ù¶Õà rѶMÓ 3ò™ @ä=]Ž€\˜ÎoA€øE"Œ¿áFóæ|Ùæý8!‹!Ðä&ÃBÈY‘Å rQÈK¢™59(’ë²éÞï‰DÏ:bR¥ÎØ;û›ô+Á6õf@6“����IEND®B`‚IMAGE 1029 ./arch/monster/dragon/Dragonman/dragonman.x72 ‰PNG  ��� IHDR��� ���@���LP…œ���ÀPLTEص�E�b�Jq§k£�á¥$�­+ Þ>J+�A B!R{�¬ #ckI�f�… „Œ1�A³„99éµg {�–�µ�¥#b��vcR.ZB"��sðÕ÷K Õ½�L�mÿš,)߯�é�ɯ�çÍ þç(±œ� ©�Î#�¾�…BÿÝ�è�P”èÍ��ÿ'�ðzÖ�1�ðåi���tRNS�@æØf��óIDATxÚÕ‘åzã0EÅ’™1Ì)ã2½ÿ[íµ[7¶›ýú{ÇÅçèÎX!£*GßãøÀ(ëÑb\«ò¤~±úW W›å½Ã.±VËZ;!Y­HøŽÃp½t2ZÑϯ¡å‘sFèZËÙÔ±fŸ¢s†ãV‘…j²û}¶Åºr/líY‘·žž3<ïêÒõ&Þ.ÜYg[äU¾¹Œr×Ió)Ï%„a˜;Õ•cyŸF§)^¢J{ë°Ê­gõ^¨ª«|m}¯-»‰5c»®“—Ï7unåŽ×ç…mÛã³³)Ÿ7ÕXØ*Ó€>²l—{õáPã¼úí‹L™€Æ±½É2µ«Ê›ƒpj_¤F¥ŠÒ JíL›¨ª#‡ˆ7¤ZiõH9E õÎÙdê$0¡E¦µÙPç<ö㸚«Ž†ýSmÔ/›rpÉ¥ä±ÑZuØŸ:Àà@›Ž ”1Ú˜o´mp+5¸%ZA0„&ĦT6ùGdPÁ”Q­�žN5–õ$oqÉ;Ê'‘RâUH’©·/Ðøx/ú-ÀQ8#¬Ú�)n{ð{ΘVÝCÛ-x@ù“”ؽßKÊ…ÐúUHŠ¢Ú ‘9ÎF¥D¼&¡Hд¸õåÜË/’BÐJtÂ\‹ ¨-}¾Ç ]‚ï"ˆ}ÑDpü�ÆAB@À[Ù àùàx &–‹m˜c{CqsÍ‹_öKŒà7Ÿ‹¢Ï)öãñ p„¨^�â»0X”’~Æ ÆË÷aøðúºŽÂŒÃ€æò�Ú–?L ˜ŽúÀmº:J ŽÅ~|ÆÃÐbd·/>r»¤P B?%1›Í–½Úaé0 ýcͼK›Î°q¡Œ~KËæc÷Œ)K¬Êí–APd”�%XÀ`[¡Ç<asÃÒNfËL¸`3Íúqj`¤Lk“ô¦é²o”‰NÙ ²X,TyúY'I’’¡1QõÉ(ë|(à^MºêøÈ ÿUý>14ì¢ú:����IEND®B`‚IMAGE 1034 ./arch/monster/dragon/Dragonman/dragonman.x73 ‰PNG  ��� IHDR��� ���@���LP…œ���ÀPLTEص�E�b1�Jq§k£�á¥$�­+J Þ> #I�fR{�¬+�Ack�Bs�… „Œ9!�µ³„9 BéµgZ���¥#�s� {é�cR.b�B"ÜÃ��–çÍ )L�mÿš,ɯ�÷K þç( �1�±œ�èÍ�ÖðÕ�{ µ�òÿÝ�…B�ÿ'�ðz�P�¾©��µW�èë¨���tRNS�@æØf��øIDATx^Í’Õ®+GE»a˜Ñ̇.B8ÿÿW©ÖÈÐ:]å-eä½fõ.ÉÞ{Ÿ~BôãýÃììú;úÅîßHb&Wô.n‰ÙmŒY )ÙíH:#hÛ¨ÚœN&ûõïÔDdŽH[³éNƒéºl¾D;´Me©Ú_fX4íóP/"“E‹ÓE—ç6ÚDEZ27´¡‡çŒ¶CI;ÒÏÒ4¥CCý1ûkÒ¬é¢EÚ\L¶óD¸¼i.ta¶£AG±1ïmÛšíëH "I’¸¿†è°}.> „a�X]Ð"k¶ãk4xÀR©�BHu­­M›í¶&â¡`^Ÿì �Â0q�¥Ã¢x�D^Y]©À‘xâÀ¿Ó¶Pâä¢ÒJÛàpΟb�ªVˆZëßw1—\JV©ûg¢¬´Å’�üR†Z)½º7¬´Öê/ÌŸ$çGŽó­Bä mq~O�þœg ÷¥¸® ”-<¡A¾Èãð5SV‰Û '-H\~úôr<c…7…Râ T%Ö<�û#ðõ‡ää#qÝ"¯Üapòx–o— Œiu[2_. c¿Ïò«|ã›i}ªyŽ�‰9—n€0¡J"®!‚ €Drþ™Ÿ1çÜJÜ€•†Ð)8ú]<ÔšLS²<CÌQ0å’k&ô^ë$$£ v©ä°fâ۞ܦë¥<ÇRÆ1JV¨Ø? €ãŽ9wÀ> ßÍd—îˆÚßpj8ýWâxZç±¢#€ã`ì� Äk^˜ÇŽÒ3„! b˜ âHù†�0žü˜ME=`é–ˆànD<@t€H.—1à Ümé¾tH"#X×Ï…²ê¦[Ÿ:»"þ µµ}J¸gX×–•ÄM¿\2Q®|AÉ´e™¦gK¡•Ÿ ¦5»ëÐçƶô*×ê‘èK]2¿RU­ˆ±¬ÊŠx“ï÷ª¿ÆÞå>±Vãû’¼ðªÑ“Îä4ÿ� <7i(-ó����IEND®B`‚IMAGE 278 ./arch/weapon/artifact/dragonslay.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ�­�RRRccckkksss{{{ŒŒŒ”””œœœ¥¥¥­­­µµµÆÆÆ���lñÌŒ���tRNS�@æØf���—IDATxÚµ“Aà q›–eþÿÜDÁJ˜í©æ‚4ëÅk‰ôßéh,y¢m 9´OG Zþ’$oÒ¿\ ê»JÿòRÊVf�¿åg °ÙÅyæ—’aîwÀ‚x$Ü‹ø 0βU>cœõþ¾£‚¸«~Ì']Œ…ÄA¼Ï†$\”§uµß£DïëÏ øÏÚp }·®ÿ����IEND®B`‚IMAGE 136 ./arch/spell/Rune/drain_magic.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE½½½÷Þ÷ˆ• ý���tRNSÿ�å·0J���/IDAT[cø D=øg#ÀÜÏé@â3Œû#©M/X NÐõþG'�´,níéi€����IEND®B`‚IMAGE 265 ./arch/monster/dragon/drake/drake.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ý�Šˆ�‰‡��û��}ý����€‘ü­M7���tRNS�@æØf���œIDATxÚÍAÄ ãx½Éÿ_¼Þô†(½Ö¢‚jF&"^“*9U·�H‹{ɾ’{ƒÙéõÿ¸7ÐM»co$M:gؽ€¦ª²‰CÒ\àšÿÏ2&i!+Ía‹\g¹Ì}º0¥¥¢Õ]ÓóÐw} óA±D9#ôFprHmá>‚šqxæç=œy<q<ò8óŠs*^™ØëÍ{Ò����IEND®B`‚IMAGE 264 ./arch/monster/dragon/drake/drake.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��|�Šˆ�‰‡��û��}ý����þ��€‘üñAd���tRNS�@æØf���˜IDATxÚí‘Aà S;SÛÿÿp׉r"É¡§J]@ìxÁbù%‡’)@XTE0'ÜJÃLó‚P€7RZ§„¹œ²L š€õ D9™V ûl�±ÛΉБ�K£#ºœ÷øL+äwÓ[þØŽ¨Êejšo ¬/íf½b Ê/þd]þð'Ÿ[ à!à›ú–¿æú�.2Zª‘J����IEND®B`‚IMAGE 237 ./arch/monster/dragon/drake/drake.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Šˆ�‰‡��û��}ý����þ��€‘ü.ó‹���tRNS�@æØf���€IDATxÚíÑ 1 “½1Ýÿÿb¯æ©wz‚/‚8Zº“¤4~š×¹²ö•­U—l‹b[JçÜ)@ÒÒ0eË9Pk™e1FZ5•YÎíøÌÇ�:Ÿ‹ É #‰)ø$D¦³ŸÀ&N ÷=V<C¦MëúW¥¸‚âãP3Ó>þ|‹;¾Vò;UW����IEND®B`‚IMAGE 265 ./arch/monster/dragon/drake/drake.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ý�Šˆ�‰‡��û��}ý����€‘ü­M7���tRNS�@æØf���œIDATxÚÍAÃ@BEjõþ'.c}Imf²pÁ‡!öPe†”9»2 äè³Ñ1û,w/×á¿ü²uç‚ç%Ÿ>ûP>SM8¯ˆ@H?¢{ÝÆ×çéHž«y 0ÅëÄw¬toV‰àe]D.‚ö T]á1ý¢rÜF±ßäLð02pĶ"[Âvl£=‘{ž¦ÞDï´î[����IEND®B`‚IMAGE 261 ./arch/monster/dragon/drake/drake.212 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ý�Šˆ�‰‡��û��}ý����€‘ü­M7���tRNS�@æØf���˜IDATxÚí’Á Ã0 Ccyžõÿ_<Ùe·a…Ý 6èE¢õ“ŠŒ·rëK4# [ß €®á;ßIBž¦ çQ¾Us‚òó¦»<Ó"SI†ÙÜH't‰æhxF…XH>€h@„VdP ëð�V’µ_ÿTCÐæë*g(¡# ¹%ü0RgOø({"ì–XßdLõSú묖iÀ”ûü«����IEND®B`‚IMAGE 236 ./arch/monster/dragon/drake/drake.213 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��ý�Šˆ�‰‡��û��}ý����€‘ü­M7���tRNS�@æØf���IDATxÚíÁ C! “ÝnÝÿÿâ6䢼>(K £Æï¢&6^}ÌÞ É7C$%¥hkI¶R…µ`ÚDl¼U‘Z'ŒµDç!¨„6dî'ž‚KaI0Éñ5[Êï„!9c@+Õ¦û‡Ó ºÕù )Å *§0wÊÈ»U×üy„H %å!€O����IEND®B`‚IMAGE 800 ./arch/monster/beholder/dread.x11 ‰PNG  ��� IHDR���@���@���·ì���3PLTE���Z1�„B�­Z�Îs�ÿ¥�ÿ½���ÿÎJB�{c�ÿÿÿÿ��ÿÎZÆ)�ÿï�„�Oh���tRNS�@æØf��›IDATx^í–éŽ1„·ÛsAòþO›ªjŽ™!ìFŠòƒÂXM}Sn»>þÞzë­qÕwÝæ’_wÃ)µöÅÃæÙÌè½Ñ/ͯ"*{À’Ù1a\ ãEÿ @l‘×�œD†×ü¼?|bÈ.ÿ‹Ï�ô–½�š=þDN ÐÒ)ø:ˆ¨&G˜=÷ä|  ½9ÓÀöÁõ›¼Rvdg�%ã8Àõø¸/Y!¼5g„ÌE_‘‡ Ã,<kxß�ú.ÍHÝ0@ºsNzfŸ~`ž@hdâ0èû~^–fô>M|߆¦ Árÿ èºfHÀ‹�ï=�u·Ž�„¯ëŠüXÀñ“OYuEØÀ@•뺹°PÒÇQƒ‡÷gé/�ù{ Àz€ �´ p%`ÉÜ@ê“»k=$À´¿Ì1´‚ä¾ç ‹)°í�ª¯ :åü4«5Ž�ê„ËA¾<‹:”š¤tÏ\Fŵ݃Tù#˜ 1–(!•0Ÿõ¢.h"T!Kgái7G� òÅF‰„©c<—'€‡µ�‰[ú¸É£±Š,á8$¨ùkµ?ŸÖmÛÖÓÏaÑ~h[C3pägƒ¥·qÂÉدӈVêí×Üa˜D`Š 8C h·ƒì¾ QHP { äÇZ%€�÷îR?g%@KKjp÷\Εöñùî×Þs¹ À€‘£h>_ÿØÉ…š-<åŸI„lçq¿þ�0êÁÞÒŒ7Ç ?På/€?¶òý×½Šh֌ꚘImTzú5LE8ÉXöÚ@ø_“Ù|)b§Xgý^×C[ÑnúÎÿ,KIÏáñ—ÿÿw½õÖ/?„zÒ‹ìe����IEND®B`‚IMAGE 762 ./arch/monster/beholder/dread.x12 ‰PNG  ��� IHDR���@���@���·ì���'PLTE9�Z1�„B�­Z�Îs�ÿ¥�B�ÿ½{c�ÿÎJÿÿÿÿ�����B8 ”���tRNS�@æØf��IDATxÚí–Ñ’Û E#ÆŽùÿïíÑéÎ4¡ñnß:¹v°Ùä–Xß>úè£÷ýÔmE2û>Fw¯Rkߌcض™�½7ü©í*"c÷ÖðvÎ ý›áwl ½\9¶qÍããCvù/ÆÀ𚀇Wö P[Æ[A`—ðuîqwN·7~†ÏC€‚*ã6„›ÖÝþŠˆù›9§;~àÒ@ÑWuí7ü1j ¾ÇµÔZ)±uß ý5bh|©æ4ø$€E¨^L~T׀⅖ßÅ;8:í¡ ¨Í–Ó&+‡U3z?Žø|ÌÆmEÀ•„%Ú"�nŽ��rÅg·A�¦˜s`Ž�MKÙ¿[@ ÆXšÂP€)!@ð�»ßïV�è9Ò)�äïêÅM‡°œ�A!ÐS€CêêqE�á% –|ÎuÒŸ€é÷ñˆöO@⌠©ˆ–^Ü×( 8íU%¸+÷æ^Ô,tH(ZL�e«ö�ÎÝSm'ÁÊËZÌÍHMc*úH^+¾óª­�þÝF*ZÃR)È!ëØP²È< MuÑøÛ­ø€=·Ã¦?ΓçÈð““Ê‚¡¡žíf^GVQnÆ6Žû9Î;„�c½Ìã�xMQ~p¸k ÿ`Vžg„  BA_k ?!ω˜™‘娔=ÒÎ}ø3ëŸ�áU.È £§ð«®•ÆKÀTÙÌ)Ün"Ô,¤¹ËÙ\yXÍðWO‰7.þww­^ ý¶ïãêûEø9ÓL“þë/) -*Œñ½w¤:£˜úÉ{–ȵ ¡þñ=ñ£þ{ýt3¶����IEND®B`‚IMAGE 799 ./arch/monster/beholder/dread.x13 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�QZ1�„B�­Z�Îs�ÿ¥�ÿ½ÿÎJ���B�{c�ÿÿÿÿ��Æ)�ÿÎZµ!!ÿï�„�LP���tRNS�@æØf��—IDATx^í–ër›Pƒ³—s|ißÿe+i‡¦â¤ÿ:øã}«µâ·ÏõÒK/Í]ßu›Kf`|Ý cD¤ÔÚsL[3 ÷F¿´<‹¨ìKfÇÂkAæ“þ€Ø"÷�¸âXæs~Ö‡/Ó«tùŸÌ€òj ’~—K�­þ)À~š;ðuáî8ÃÎý´×A@4Bz‘àFˆ;CL7Ó8ÛÀ« À©·Œ~gÁt_ ðàÒR=d®zðxLXÀ·roƒ0=ÃMþR�9 èðX‡çhd.Æ2–ñø+‡¥±ì½Á�^�³©nã`Û6 ¡cul¼“À£vaÌgg€‹eŽ÷¤ÝP[5MÌzÈ dQ€w@ d˜öã·X#ž×g ØéN“�—G€Å½p‚yÒ._ê§÷3€¹§«ƒÌF„�òjéòǬ¸öh Ü}OÐ[Ïü±f*Áø$Pu ž@Ù¨!%øg�@ÓʉsR²*œ%¨‡‘(í»®Ø Ü9�d4ÈW›’£ãKð\= „{ QÒç.Q÷Eó¦<�d Møõ†¼\n?§Eû1ºæhÎ7@ŽüõD©‡±Mø·Ë¼l·Mö1:ˆà99É"0Å@n×PþøƒôÎz€½ò£V Dð~Äu(YMŒÒšj�îžëUÅ"?êÜ@0z©)�#øÜ‹ÙàÍ ÏÎ8 Që�ô ÀÁ­¸ß^ó÷ï“àä¥õFÉ_€Óÿî#³û¶Ýï0ãbÆ8ëü«Ø1Â8i÷;�1*ÿs2#‚$lëQø¼&”I úÎï,KIÅç?þNüïõÒK¿� ‡òÜG����IEND®B`‚IMAGE 800 ./arch/monster/beholder/dread.x14 ‰PNG  ��� IHDR���@���@���·ì���3PLTE���Z1�„B�­Z�Îs�ÿ¥�ÿ½���ÿÎJB�{c�ÿÿÿÿ��ÿÎZÆ)�ÿï�„�Oh���tRNS�@æØf��›IDATx^í–éŽ1„·ÛsAòþO›ªjŽ™!ìFŠòƒÂXM}Sn»>þÞzë­qÕwÝæ’_wÃ)µöÅÃæÙÌè½Ñ/ͯ"*{À’Ù1a\ ãEÿ @l‘×�œD†×ü¼?|bÈ.ÿ‹Ï�ô–½�š=þDN ÐÒ)ø:ˆ¨&G˜=÷ä|  ½9ÓÀöÁõ›¼Rvdg�%ã8Àõø¸/Y!¼5g„ÌE_‘‡ Ã,<kxß�ú.ÍHÝ0@ºsNzfŸ~`ž@hdâ0èû~^–fô>M|߆¦ Árÿ èºfHÀ‹�ï=�u·Ž�„¯ëŠüXÀñ“OYuEØÀ@•뺹°PÒÇQƒ‡÷gé/�ù{ Àz€ �´ p%`ÉÜ@ê“»k=$À´¿Ì1´‚ä¾ç ‹)°í�ª¯ :åü4«5Ž�ê„ËA¾<‹:”š¤tÏ\Fŵ݃Tù#˜ 1–(!•0Ÿõ¢.h"T!Kgái7G� òÅF‰„©c<—'€‡µ�‰[ú¸É£±Š,á8$¨ùkµ?ŸÖmÛÖÓÏaÑ~h[C3pägƒ¥·qÂÉدӈVêí×Üa˜D`Š 8C h·ƒì¾ QHP { äÇZ%€�÷îR?g%@KKjp÷\Εöñùî×Þs¹ À€‘£h>_ÿØÉ…š-<åŸI„lçq¿þ�0êÁÞÒŒ7Ç ?På/€?¶òý×½Šh֌ꚘImTzú5LE8ÉXöÚ@ø_“Ù|)b§Xgý^×C[ÑnúÎÿ,KIÏáñ—ÿÿw½õÖ/?„zÒ‹ìe����IEND®B`‚IMAGE 781 ./arch/monster/beholder/dread.x15 ‰PNG  ��� IHDR���@���@���·ì���3PLTE���Z1�­Z�ÿ½Îs�„B�ÿ¥�ÿÎJ���B�ÿ��{c�Æ)�ÿÎZÿÿÿÿï�„�òC×���tRNS�@æØf��ˆIDATx^í–ms›0„}¯`;ýÿ¿¶«=wÔô[Ç‹ƒ=û°‡O˜Ë×z饗úC?uKP"`|ß £ª:•ùÍ]–E$�0KøKËYDeWXÜ Æé'ý �ª°©?àˆméçü?|dÐNÿÉ ¸< Ðá-{8Ç—€PÒ)ø (¸ Cå ¿HÔF@@nÂ0«Šü½€•jpwŒ‘F€4~ås¿D` cÄ6ŽAPfDZºo[€8Gt^Ÿò*{<Í5„~Èç€ÐÀ ß�˜»µ7Ì „�÷E¦et¡›¸f­ý é&=À&Œ1G¬a�€”ùä2#àJ€: ´¡pL,‹Ý$â:¸¥F°„ ZcCV;Š�ä~¿K�Àß'Á ã8f Ì+�Lž±Ð(ãÙ¨Çl€pð`îlýÚi?j!î ’ë€€1ãlÀÜ-c¬r´xuýYdçP£Ph Ø­|`lZÊ�i$×"¿OªŒÒD(Ž»+¶tׄb“^„fofá[èŒÀC à™-ú»B“ë"ñÙ%tpß‡É âz[W4ÀíWÍ·fì#�õ€ ¢ÎÛÈ ™)ýv_ûz¡k2�u­Ã>�õ"xj»Þ¸]•`Ï@$>Ö@T�èyè·fùLð¹«3j9V‚ÌVÚœÀm¾]ŸËæcöÝfž`X)+@cO»b 7¸)³$x^ ¨›0}2‹²]~±yýä¿»òÀ+Cïöþ~Œ2c*ÿù—;3Tñ" EÿÞ;’ï)výä=KœÊ”èýßÿ{½ôÒo®Á«õiÔ����IEND®B`‚IMAGE 799 ./arch/monster/beholder/dread.x16 ‰PNG  ��� IHDR���@���@���·ì���6PLTE�QZ1�„B�­Z�Îs�ÿ¥�ÿ½ÿÎJ���B�{c�ÿÿÿÿ��Æ)�ÿÎZµ!!ÿï�„�LP���tRNS�@æØf��—IDATx^í–ër›Pƒ³—s|ißÿe+i‡¦â¤ÿ:øã}«µâ·ÏõÒK/Í]ßu›Kf`|Ý cD¤ÔÚsL[3 ÷F¿´<‹¨ìKfÇÂkAæ“þ€Ø"÷�¸âXæs~Ö‡/Ó«tùŸÌ€òj ’~—K�­þ)À~š;ðuáî8ÃÎý´×A@4Bz‘àFˆ;CL7Ó8ÛÀ« À©·Œ~gÁt_ ðàÒR=d®zðxLXÀ·roƒ0=ÃMþR�9 èðX‡çhd.Æ2–ñø+‡¥±ì½Á�^�³©nã`Û6 ¡cul¼“À£vaÌgg€‹eŽ÷¤ÝP[5MÌzÈ dQ€w@ d˜öã·X#ž×g ØéN“�—G€Å½p‚yÒ._ê§÷3€¹§«ƒÌF„�òjéòǬ¸öh Ü}OÐ[Ïü±f*Áø$Pu ž@Ù¨!%øg�@ÓʉsR²*œ%¨‡‘(í»®Ø Ü9�d4ÈW›’£ãKð\= „{ QÒç.Q÷Eó¦<�d Møõ†¼\n?§Eû1ºæhÎ7@ŽüõD©‡±Mø·Ë¼l·Mö1:ˆà99É"0Å@n×PþøƒôÎz€½ò£V Dð~Äu(YMŒÒšj�îžëUÅ"?êÜ@0z©)�#øÜ‹ÙàÍ ÏÎ8 Që�ô ÀÁ­¸ß^ó÷ï“àä¥õFÉ_€Óÿî#³û¶Ýï0ãbÆ8ëü«Ø1Â8i÷;�1*ÿs2#‚$lëQø¼&”I úÎï,KIÅç?þNüïõÒK¿� ‡òÜG����IEND®B`‚IMAGE 191 ./arch/armour/mail/dress1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ¿¿¿ÿWE’���tRNS�@æØf���aIDATxÚÕA À0 Ã*åÿvtvT´'7é¹`Õaó’Û¼ ª4ÑR_Ë$Põw�Gé>ô€£é Lµ ´ ⢥­L™bûøGÃH¶—5&¹ö•/ç2*wº*����IEND®B`‚IMAGE 199 ./arch/armour/mail/dress2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V����‹‹��ÿ(ÕP���tRNS�@æØf���iIDATxœc` 0@¢!PFd¤Dfgþ0ƒuÕ¾+%YûJ!J¤ßÆ‚1¦Jÿ"ýϬM ÿ¿#ÄœìÿèŒpˆÉ yÿ/ÀD Œ¬ßФ²`г÷Aµ‹­…:•æf¢�H1#Kt¨JY����IEND®B`‚IMAGE 199 ./arch/armour/mail/dress3.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÚ¥ ���ÿ¥�8¢íö���tRNS�@æØf���iIDATÓc` 0-€2´V@ëÖ5@dîm}�fpý¿žQ²ÿú,ˆݲe EL»tÃ4Á¬Ð ïkSØÚ1goh:#.1™a{hLÊØ›€&µ¦xïu¨víoP§r­ Õ»�`Â%1ò����IEND®B`‚IMAGE 231 ./arch/misc/Container/dresser.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿB!„B!¥R)���¹æQ���tRNS�@æØf���ƒIDATxÚ­’1À ÄÒÐûÿ—[dCÈÀUJ˜ó‚Õ"‘G!�z³�¨�´þµ1ß±PÞPä(0Ì`ß o€B~øX¨Ÿo*€ �c)¤ÌÚe¹¬È3€–DÖÝ}�×/ öõ\\‡é[ƒÑ(°£!Í,€œ Û‘]Ê¿ õÃÕ����IEND®B`‚IMAGE 201 ./arch/misc/Container/dresser2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿ�ÿ„B!¥R)��� DË^���tRNS�@æØf���kIDATxÚµ’A €0Mòÿ?{VšP¢‚C/e‡Ð =^¡Ä:²�ól.Î*¢“ö ÂE¼Ax–À{…|¤š€ÒC]3¶À7¡V=F½êÚCYó·¢ÚŸUÌM`b¾Rœ€üjhs-œBàÌ‚ÚÕW����IEND®B`‚IMAGE 225 ./arch/misc/Container/dresser2_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�� y’Ž1µ6µ:���“'UŸ���tRNS�@æØf���zIDATxÚ•’Q �!DKmîäÝ…Âe&(þˆ)ÁV Á€ºe™m„—tH€B$¶z„¯¢Laâœ�¿K°5Ò8ò„U×”-zU8­ÙdM+'à&áþAFB…A€^æ$ŒŠ óv `$ÀÁ-nïx�) HTˆ¯P����IEND®B`‚IMAGE 270 ./arch/misc/Container/dresser_cw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�1� H y’’)Ž1µ6µ:���¶H¤„���tRNS�@æØf���žIDATxÚ­‘Q Ä D]“6Íý/¼aÁ¢qýا„bJÊN>>AÁ2œ¦kATEPTz Ž›ÑCÁk¢W`qPpM„Â>Áë}$ÈeÈæ |à/¢Ÿ' ÅïqÊ0‚Bžp.´-p(q^#– B… îìjPšPýyâ¾ÀCÐ_€>… 0Oð~NÈé4;Ó³Ï}>ÿ‰/¤ñË@RP����IEND®B`‚IMAGE 893 ./arch/ground/Winter/drifts.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���«PLTE÷÷ÿççï÷÷÷ÎÖÞ”œ­¥­½­µÆïï÷ÖÞçÞçïÞÞ猜­ïïïï÷÷ÆÎÖ¥µÆµ½Î„ŒœŒ”¥çïïÿÿÿ”¥µÞçç½ÆÖ½ÆÎœ¥½œ¥µ­½Î÷ÿÿ{Œœs„””œµµÆÎœ­½ÎÎÞŒ”­ÖÖÞ¥­µŒœ¥„”¥ÆÎÞ„Œ¥{„”­µ½ÎÎÖÖÖç„”­”¥­­½Æµ½Æ{„œ­µÎµÆÖœ¥­Œœµ¥¥µçï÷ä­]á��IDATx^URÕ²,9 ³ƒ Í0Ìs.ìþÿ—mNwÏÃæ!U.©d�jŸx­s’ò¯ßßi)Ÿ©ƒu ZK²®ë~>ÙkO|•Jk”P?^¥»@4ІFªɃ°FÓ¥ÔéG©U"†à'‚t2ã«ÕŠŠYt·Š;k¹ò�çœÒ bÜüÜÍü¶v<k0ëcDzøþ.p’¯L÷k·k>B?ö_pøiÍ++žŸ­"QÑ£ˆìHÏ*\âÒµ2ÁžBC9ûóÏ…=•Tkc^(º™ Õ>%eíßfxëðzE‰ü˜\žwÂÓJX{²¡QRæ[uä4†/WOÔIØ÷ÛÓv3’¹aû³d®ž˜w¶ï6ÏXÊ߯bqµŸm&$ËL(Y5ã¹Å· ¢æÈÊ™”“"•ßaàG12áM©%Ìí}è~§X%êM„Þž 9pþ9£2O—V¹ÿsA �Qqh, A‰jqHõ¿¢ˆ‡Í²fíaÈÿžŠÑåzí í5ý’‹ƒ]vðýt»•¼šó³j,£À[R/õît²¬/{œkÁnÅ­„sªœ$ê{?²ñ|ÿL#£Þ7¶üxe@ÛÈG¥Ñ{‡­¡¯áîùx6ç>[Þ„FÔ­Rtl†9Y3”IN©¸sš&º9¶D«H§´$“'tÚ/!WyÈAñ;¸õ¤˜!â/7ÉþˆœêVü©Á©Zn’w.™ö°–’ Ùg··LxÜ„½ŸÊ3Í �ÿry¥!´}.©@œÑ:ìÙ•V2_i/ö¶Ùn·›þpî˜!Ä»ªÂãµZ×�)+rʆ¿ )Û¦QZ@sÝi%á?BÇRø«â����IEND®B`‚IMAGE 587 ./arch/ground/Winter/drifts2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���'PLTEŠŠŠ£££²²²½½½ÄÄÄÓÓÓçççÝÝÝêêêôôôüüüþþþÿÿÿ |á™��ßIDATx^̱ÒPÀñ_ý Þ+$®öÀ¸8ÜÁ5ÄJްZëEÂd¸ ÐŤ‡²)=‹ŒmïM&r¶vÆÞâ�××þþ(aÿ~?°BÆpc®’Ĭ{l;±IÂDúE‰ÀdQ‚ñ¼ãùéÍ›ÏÞ¨ùxè-oÝÉ¢¨ªF­vуF¾Óãï‰\>?WK0E´Ð(•òÅ\Å„ÕÂÿÆ_TJ$éTÉŒ @Äíº]¡�@åì'@ÄèûÌR�Ì‹>`€î¬e)Ç”êL…h5õ€’ãc>º—ýJUV(ä)x¶Ó¾,”ezJ@"Oº1,¥¨<)‘h6GäK“š  žŠV9D’©6‚..[z>§@^‘ Í¡ÑXŒuÃÒž_ŸÑg…Òèü²‡m·5Ž)¥U­ cûf²˜¬tJH&Û€ ö}׫,QšÉ6¡ÉÜ®?ïó‡C9¢ñôþ‡ÿ;ä¨fT ¥·€Ü x_é껸¥®a³ {ûíÚxâá#={~'|±ìÚaòõ 䘇Ç_.½TüÕ3òÉk¸ãˆ‚u·èÏŒjñäC&LÆ×ý±Õªê¯€{‚;ˆ)>ÜÚ–á ˜‰‡;Ó’HŒl­=L#4ùË Ü……ÿ‡|ßAˆw×;����IEND®B`‚IMAGE 191 ./arch/wall/dun/dun_0.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���úSRI���tRNS�@æØf���dIDATWÊÁ 1CQo›z ‡xz˜©g“ì*÷BRâö¤ÿƒ$I m8ò+ޱ ÚܰRýÀsj$DLO‡„6]²¯7ªl{.øÔ»lQåªBòõ³óÙÙqÅŽfu,ïî£����IEND®B`‚IMAGE 185 ./arch/wall/dun/dun_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���^úà���tRNS�@æØf���^IDATx^ÌÑ €0 ЬS÷¹›¡éâÉ M¦´ ‚´z?y„ãĘw¤´Æoø‚¢ øcPçO,(lžŒ« EŒ@}Á0¢°‹s`�E3 Q_Øz=»œi†Pl8¥����IEND®B`‚IMAGE 258 ./arch/wall/dun/dun_10.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwwwƒë^���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ Y®7L���rIDATÓeÎÛ Ä DÑÝ$ýŒkX\…›°kÈRe ä~æ]$�`o ã|;õ o3 èqs,Ø>ˆ¶À/Ñ ”?ب7bÂÉ\µÁ*­ºáÏÅ2¦W¼ð¬Éß‚[ÐcÖÄž‘ç#” 2¿~…ÒkS¼¹Eæ����IEND®B`‚IMAGE 243 ./arch/wall/dun/dun_11.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwww:&Ê���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ ´a³\���cIDATÓeÎÑ À ЋÛà>ǸîP§,jm¢òõ‚p'k‹Â 1¶ɨڇ::HÔr‚V:à>‡!þu~$§ @zÒ€ÅÞ†H*ã)ÎÙD?šÈä´€º/À/È ø‡Eâ¿; [����IEND®B`‚IMAGE 243 ./arch/wall/dun/dun_12.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwww:&Ê���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 0u�®÷���cIDATÓmÎë À FQ–ü˜A:Kà Õ)‹HÒ`ËOn|Ñôé�Ó?&¤˜A4Šá¢…aЂ!ÈbÌ´ · kÀ°ù©˜#nqÈzÈG2¼ˆ¿ì²·p ‰N‰ûÓ‰–ë£O{¿¸ºò����IEND®B`‚IMAGE 194 ./arch/wall/dun/dun_13.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTE·Ù���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ û'H_���5IDAT×UÊ¡�0À *3£2:%‚Üa^=�ÏДiµ EŠZ¢—ghÊô‚—3úÐÞ1(C4¦9����IEND®B`‚IMAGE 195 ./arch/wall/dun/dun_14.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTE·Ù���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ  ^€d���6IDAT×]Ê¡�0CAFϨŒ€D‘6úhÄ™|ƒÝ=|‘6Ø(¤nò‡j`›u�D´Uà€¾����IEND®B`‚IMAGE 166 ./arch/wall/dun/dun_15.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE���wwwG€£��� pHYs�� �� �šœ���tIMEÛ 4@[l���#IDATÓcX Ñ™…ÎÈ‚KÁ¡YŒ°0&•�æ…¤ÄÎtœ����IEND®B`‚IMAGE 168 ./arch/wall/dun/dun_16.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE���wwwG€£��� pHYs�� �� �šœ���tIMEÛ 0wZ²���%IDATÓcX ɱ2±j%Œ— EcL 1V††�R¹¦ûXÁ£º����IEND®B`‚IMAGE 202 ./arch/wall/dun/dun_17.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwwwƒë^���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ €ݰ���:IDATÓuƱ� @.Û˜}t4‡È”`Cޝ>"1¦P-PEXTÁ-ê…õÀ²æÜ18=kgÞà_ðtOH����IEND®B`‚IMAGE 190 ./arch/wall/dun/dun_18.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTE·Ù���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 8·ãÁ���1IDAT×}ı �0°œÎ©œÀÈ”T0 "Uõ`È�\å¤Î«˜X©³W±Ëé)Ëjæ:bÀÔ����IEND®B`‚IMAGE 246 ./arch/wall/dun/dun_19.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwww:&Ê���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 9C€”���fIDATÓmÎÑ À PÒmtŸcÜw S„¤Ö”¯8ARÌ;Š~Àã œhÈÙ *¬’hÈt`¥éò!>3GlŒs sC aP<ó ØA¦…IøßNt.­=^— ¿jQç`ö‰����IEND®B`‚IMAGE 188 ./arch/wall/dun/dun_2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���úSRI���tRNS�@æØf���aIDATx^ËÑ €0 Ðtˆvݡɽ}šrSZÄ¢P|<¸‹HÒ3"eAžh¯H}"._0+|àǸEo¦bN§¥8ä�GÜ/Òb‰Fˆû8ÞÈU÷ª›aak‚|op����IEND®B`‚IMAGE 229 ./arch/wall/dun/dun_20.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwww:&Ê���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ f…U���UIDATÓuÊÑ À Ð[f°LÁ8ƒvÊjO“–Äûáå8ÜLÃ~ŽheÃ3úFÅ‚fôB˜8 1·P™[¨ˆþ!#¾`x¡,>¸ø ÔÆû�J3n£¯·õ����IEND®B`‚IMAGE 244 ./arch/wall/dun/dun_21.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwwwƒë^���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 9#®¥ÿÚ���dIDATÓuÍÑ À PÒmè>Ç Õ)\f(NY±i45òõr¹ ¤RûÑ ÎŒNÚ®l§û§°/éïÜ H¿Z ŽBªPÁ CœP¬^°® ' ‡·™Š(K&z�x›ƒ>Ɔ”����IEND®B`‚IMAGE 235 ./arch/wall/dun/dun_22.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEwwwƒë^���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 8è»F“���[IDATÓuÊÑ €0EQÂ6uŸÇ°ì@§´U êýá„<"â>£/ô ^hÿˆ ÖäB»a±Æ [ˆ‚!Éù"Ô�àÇL•g”R1ǶqÝʼn&0ì ^{âl>r����IEND®B`‚IMAGE 329 ./arch/wall/dun/dun_23.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 6?[‹���ÛIDATXÃíWY Ä MDzS{ŒrÞ´óá|)q©LGaªP,Æååe1""z¸±ÎaÏ|“Ût�x· zÍò jŒL Ø��l"þ™>°Ñ°�QÌÿÏ@д–‰üÈ™ãÿkßÁ޲y©ÙÜD)n”“éD¤M»¶�3½ Dä£0©°¤}™°®%ÿ =”§Úg˜šzœçêš–RvD¹ò|݆æª÷~÷¥×‘iÅi×ò4îsýUб*>Ãí8|íäéXX«{-«x¸ˆšcè1����IEND®B`‚IMAGE 226 ./arch/wall/dun/dun_24.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEDDDwww_NZÍ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ :4ƒE=���OIDATÓuËÑ À „áƒîU÷éjî Î£+H®*jiÔ§|p�€d�v0¾è‡r(¡£F¦!ï¤.«qŸñ¸ã'F“†¬_nÁl¼š^`ÉϹ™|ýÌ����IEND®B`‚IMAGE 84 ./arch/wall/dun/dun_25.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEȤV:��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 184 ./arch/wall/dun/dun_3.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���LoŽi���tRNSÿÿ�×Ê A���[IDAT•ÌÑ ACѼ­aÒƒXżrûq:÷ÃEeÄ|ˆ½²æïéƆÕþøq_›Ú°2‡R’›¦‚Ü8ð tŸ�l�¨0v¬ 3L>xººë ”©"€ðä����IEND®B`‚IMAGE 156 ./arch/wall/dun/dun_4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���úSRI���tRNS�@æØf���AIDATWc`` 1 †(Œ‘‰“Á¸!6 ƒ“Ê„1²ð00t‰áV“•‰ÎÃÔ5 ƒ—š Ó5 S�ÏxWæ£×6����IEND®B`‚IMAGE 143 ./arch/wall/dun/dun_5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���LoŽi���tRNSÿÿ�×Ê A���2IDATWc a€€F \JÔÆpÀ`ˆàV gà1·]D¹GÁˆ© ·{¾À©�b… îveü‘����IEND®B`‚IMAGE 259 ./arch/wall/dun/dun_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���aaa!!!@@@9{F¤���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ  ¦Â[P���mIDAT(Ï…ŽÁ€ óH€� ÀÙ€†þk’§9g ?v2{+"¢ëõö_Vôˆ€PDÀTè r\©¨tqƒ€ÃŒìmt³³4‘tx‡•LŽR©´piû¦ó •îY^™œŽõ»ò�[x¿æïÓ����IEND®B`‚IMAGE 172 ./arch/wall/dun/dun_7.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�Vô›9ù���eIDAT8O½‘1À0 ÃBÅLDÅüIìØÝ¨WóZ‡åÌ�ÀœïP€žh΀å$ì� ¸f ˧‹²±’ üš›EeëŽX$7%uÉmˇÒõݵ’$náÏ2ÍuJË/v`Õü�¼¹1ÁG.8^����IEND®B`‚IMAGE 166 ./arch/wall/dun/dun_8.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���LoŽi���tRNSÿÿ�×Ê A���IIDATWÕÈ1€@ ѽÓ@<ðP‘œ†?è‰J (0ÀTÿôŸF…6Éa’²�Ö÷Ž/À­¢Ü¢ÒÄzAûœ:g_HÓ î&����IEND®B`‚IMAGE 273 ./arch/wall/dun/dun_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���¡¡¡@@@9UŸ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ '"’ï���{IDAT(Ïí‹ Â0 D½B{,+ àt€ yÿ™zv[T pÊG÷ⳋÙüÐu‹x®ÓF‚äL6''ƆÓpA^ AÛïfõª"ù 8Ž/Ï¥ÀUJ|{—<FxP^(Á vBkªŠGóÖ]1T‹·ßfbà±kç!©²����IEND®B`‚IMAGE 158 ./arch/wall/dun/dun_A.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���LoŽi���tRNSÿÿ�×Ê A���AIDATWÕÆA €@Á>4°qãaÛ#2ù@ 9Ô«à?Æ;tµÓ4ª¥yÓF-ñF–ØOÔJÄtëø„ƒ N.><¨"»����IEND®B`‚IMAGE 284 ./arch/wall/dun/dun_B.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 6”«<Z���®IDATHÇí•Ë Ä D(•¸‘ÔB#ÙR ¡•ÝC"À|”•¸Â‰øaf0æËÒ°°° a ðœj!T:p6ªŒãªÄÕЋvxÆ;'þÏ+óòó™3… ¾hŠÒîHÖ÷Ìö ‹¥®|˜‚SÛÚDjœkÐæ³ú±W� r[BÀâûKL̲¨-•Œ’ jßÎó: «K]Îø¾Œ¨žRóÈ�Ìê÷þþ)œÀKÀ@����IEND®B`‚IMAGE 163 ./arch/wall/dun/dun_C.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE#±å‰��� pHYs�� �� �šœ���tIMEÛ 62AË}¾��� IDATÓc`‚ ÔÆÁÉ ÁÉp„3¡ Ñ\ �dM"ƒ����IEND®B`‚IMAGE 239 ./arch/wall/dun/dun_D.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 8 (Ô���IDATHÇí’±€0 ?{„°³°H Q`& E€ t(M\¹ñË–eL «*(€(€x&P_ãºÇŸ­WOX2ô¡†ž‘hØ~øB›è[°Þ­UMŒú]Nbí: ê[œÈ×fŃë~Çœ“'¨Rÿ—Ï€ÿg$럥����IEND®B`‚IMAGE 239 ./arch/wall/dun/dun_E.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 85A,Å“���IDATHÇí’±€0 ?{„°³°H Q`& E€ t(M\¹ñË–eL «*(€(€x&P_ãºÇŸ­WOX2ô¡†ž‘hØ~øB›è[°Þ­UMŒú]Nbí: ê[œÈ×fŃë~Çœ“'¨Rÿ—Ï€ÿg$럥����IEND®B`‚IMAGE 239 ./arch/wall/dun/dun_F.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 9m‚\(���IDATHÇí’±€0 ?{„°³°H Q`& E€ t(M\¹ñË–eL «*(€(€x&P_ãºÇŸ­WOX2ô¡†ž‘hØ~øB›è[°Þ­UMŒú]Nbí: ê[œÈ×fŃë~Çœ“'¨Rÿ—Ï€ÿg$럥����IEND®B`‚IMAGE 390 ./arch/ground/new/dunes.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÍ…?Ù¤þÖ�þ¤�ÿÿ�ïå‹«em��/IDATÁÁ ]I@N�ô¸o· KÀGC�ƒ†üSq•,‡@6ðJæ–]CC“2L(â±€Ý)!vöæ9¤ÐïÌ…"ßdˆYúk ½Ì|úzàóÓfOI‚ÞÄuõR%K½qçb«‚*u`I7ÀOZ5½ûmÀçÈ©¤bÉ<DØHĸ?ú#øßY0W|¾Q¦#›¥ºãwIým CMÈ­ëv(�ZDÿöFQŒß»Šžÿ••Âo‡`êSrçg/v‡÷¨x1x|œ¢¸?F1t냂èèÙ"b¾ü;äþ¥Ðþ÷fM¤å£¤›×ô6)Kî7„þ°3ÂöOOF))UêY ["i??äQè°e¦L£¸†"…äµS‘$,&þë¹]¾ƒÂ����IEND®B`‚IMAGE 2875 ./arch/ground/smooth/dunes_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���'PLTEÿÿÿïå‹þÖ�Ù¤ÿÿ�Í…?œœœþ¤�HHHÀÀÀÐÐЧ§§—Ͱ���tRNS�@æØf�� ÂIDATx^ÝšMŽä¸µ…I ¸ß€úY�u)¼1)†ç’R0¼zmo ŸWÐK~"!*DÊ™‘•Ý øN >• ç©©!ub­û™­íÜЙÙàS^äësÎû¼ÚÏ¢Oü‰~ô}CêÄ4öóÒШg¢3# >å³õ%ÎûäýÓGò"úŒ_éGC½6'vzèhѺ®›egD>ö{Ny|9Ÿ8ïW@֯𑼌~gX‰ØqÌå~Ц͉ǵîHÖÞƒ•ˆŒ4ÌsÊ<rÊç\è²~T!/ùžåïýê‰bpï7@UK�¿–úA£ÕòÄÝÚ´[oß5ýð`ˆÈ8Nô*€Ð�÷\Ê'.ôçþ "ä±ç%ã˜g]êذ¸¢ ì^²¬ãØ[yân&=Žz®©~&`cÐóxGõħ|d$.ôœû'„<xyÞõ1Ïâþ)ïÙ@¡›!FÜû@ß\÷ÄÝÜhÛ¼¹™æè'�üÍÏò9<7‹¾A>o,nncîóÁ»àš;—ú§#Gú1Ejóyì¿[Ïê±à«{Á³~ôš,ž†Û™ôß­³5ß½€u`Ù?"Dnó;6Ã3iáóMôlòòÎ¥þçQ­Ï'_^èWI³À"‚õÍ*ïG¿8{j·³–>¿,ÑhÉ[åù4¹~1â‹/àL·M«·|ô,êŸçý¢p�Øòõôx¾)÷ÜCÜ?mùÏçý}ŸA óVy‘÷cYõx*{õä #Œv̓žùµ‚žmzå׳uˆ~?!Ïy¿û„ÅçSå¨îûï¢:ì¿û)ÀWåý mÕ‹ÞÑʪVâ,m³†¼ ¤Àš5ýıAG¿ÄÆy?„3‰?ø|•¬.÷ç.pð*˜VBÈû±.=¡8ëîjB¿BÃÃØ…òêGEwŸpã¼_q§q9>ŸSþyôÕþZr�ÑO^lÌ&�y?†¡!†[¹{-Úic~Î úß&xí© ì…Ð ºû§õy¿ôù4¹/ˆ°騝Îû ÕNžƒ÷V`�TÞ¢¥X;xcnÙ,£k¼­'8ˆ¿BƒIðè÷€ç¼1_¢‚`NÃÖîýçýG˜}œG÷£îwÀ¢w5X uVܽÕKð2q0’[0¨»ßbã¼®–;—<²PQ‰{ÿia,  ò~ÐàÆ½[A*W­+òÞì¼RT‚”䨨û=à¹ÐÏÝ ~ÝìùĪ@õòؼڟy0…~h­ç½“¢t�µ§C¾n‡%€€7¶±÷{Às¡…ý“WåçÓª%ô›(Øyúòböë‘õc¤[wÀ¢o¡œ.Ú¥?äÿÏQüJ–€À,™£à÷€ç¼ß@HîôtѪ$œš%3ôÔqÚ?ô«J è xÖºÕÍ˾‚¦’dͲykg›Å åi<ÓMîyŸ÷{Ð4©«~ž Ÿ acXÀ�qÚ?ô& €W@Þ¶Y¡¢'ÉZU’œ¨m¦€ÿßÖ5'ðó~€�ñ¼?k!#„|>ñyÂþëD±¿Kû³Vײ ýP€�š Èûaí°°è†¦(ùBÖ*þ@jz-QQ|Z¾qÞ Ýàí¾lã-¿÷gŸ ƒHbëÛ}E]Úht‡À6nÜ�ª–ÒttÀ¢Wœ†’i kåÎ|ãƒnÏÞçý|˜<,Ç…êàÏå܃»÷yŸ¯—Ð÷(rðl�ž¢y?ô0÷,{%Ö’sºô0í,6NVeÞçý€v¨'Ò±ÖàÚÝû%²Y±Ä¾Í+·²Eiß§‚k½<ãØ¼£­I%,yXSP‚ì­Ÿ€‘Ñ×)±qÞ/Ië°ÿ›BuÌ¿ÑÞ[“†EEôöØ_ k*…ȱ+ÅçãÇ~–÷ƒÆF›„%ðâw`?öÑ<ò|ãƒgÑ7)øÿƒ»×ößm¿ð°>úß¼zÃ<K¤þ°ÀÒ ÷~),oÕ‚žÁ! € Às¥¸÷ç¡mLÂ’çv¤¢“³O'nç@G~^àYq²±ÐÝ=Ù‘fÂø`Øà­1¬HÂaV<¬µcÊsšH±±� �Ò zp šÐŽ 7C4ª„E¯[s!›fó»ÔµŽþ¼~Ôàڽ鷷†sÀóž7ZBBÖ'^bÿ=D`_¯ÚHCxÆiâD²ÿåBVD›W¼^‰¢H|üGxŽ}¼ç}Ün+0 éä«Yö/­O\Mžk’&ñðì—©yäqžeiµKXööBršŸò ÍGíï‹æ¾žuÔ/šÜƒíW0OØX±‹<Î3ô4¾%,{s!·‚à/@bßgW¢Õi÷•Œåqž¦YF“°èÝ•\ˆb>ñ“çÞO;þt_ï:ªGý \ú–oMÂ×üÐ Ñ'~ò•÷*[?®ËÐéñøêý€òì÷ÿ‰ÿ‹òé>W3½ÞøòüóÀ׿Ó}<®æ~¿~|àóy­?›Oüõyv×p¢äã}û§óþ¾Ÿ:çÕ<ðn4B]çŸîßÊ÷ûÉ íT|:@÷ò3yXÕ·:péý�t¸š_ýý{Bž?@ðï絘€¿}6@Ì/å¹ 0¢gH˜«Ð�&\ _ôÍ$,Þï'pž?oÞ^Ì �¬Yteº™k  ˜‡®Çõú™ÏyïßÏk a>gäKX-_È3_Ç·¼àly°RºH)P'Îàwàݼ€–¼˜Ç}A>|ÄæíäƒZ¢œ/Oëað}ÂÎ![/¥<Pi\Ø;Œß÷ókàâØR¶ºç €Q‹r?®¿Öjðy^…Ž)ä¿e8d}ƒºôcQ¨äÏ¿2-ÀaçÅ­Æ7©J© +Š¢Ú—;Å/$…:�¼Ÿð#ÈTPWò½ÏÚÛ$”•\ÅÂðY|ïT`øü¸×Ö cäÀMºG½|ïˆ×#êù®ì…aÒÇ•KÕ¬•�Þðçû±¸L è¥d¥BÈðçM˜ù¾¿õׇ½É¸~-ú%†t€*Þ¨þ™Ãs T2°&a…צ0óßÒ•39�ÌáOÂÇ Y“ õC .9øtè¯H+@ |ñðw¾ˆèC›¬Q7òãG_C‡»°ÈhêVw„/.q=ªÚjùâï®:Å5Щ&Šª� _<#áz$Z|hª¢0øô¨aÁàÀ÷7û†…*ƒ¯á´Ä4À½ôè,¼ÏPû¼‚Ie*ùG�Ùÿ¼%g?tiô+I¦ìm·AÒÀ ¼)|í°ñ|ßþ—gÙɣˮf.˜M¶¿]¬ÿ¹#:õ¸2=�ÅcŸ2ÿ¸Do6/œü¾ýÄòìAÛ(ç‚ÙΠ܀OÏ>õåL`†R”2#�™ž÷Ëæ|ßþ—'vâgÏÅ÷ Ò\°Ü|cS\ÿóy¿+®QùÞ ¬i$Èh @bëÇWÎù¾]¹š—Þ'8fÊœ@qܧ¾ç<ßX)ù ‹¸ù-¯ê¤õøÊ ͯ0îëÕ1ó>Kä>õ%Nû{ð¼U‰¿ñ�ÒûÇÌç8õ•øÍœø;€…èU>¿ð9N}%v¸öøÊáC3¼Êç÷ >Ç©ïUþ<Û¨yiwÔ����IEND®B`‚IMAGE 900 ./arch/floor/dung_floor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¢PLTEFF6__N__Wg_WogWxxg€xo€™€™™ˆ¡™±©¡±±¡º±¡Òʺog_™ˆg_N™™¡™ˆxxo©©™€xgWWF±±©_WNº±©Âº©Âº±ˆÒÊÂÛÒÊ©¡™WWN©©¡±©™Ê±ÊºggW€€oˆ€x_WFˆ€oxo_ãÒÂg_Fxogˆ€€x_€€x©¡oo_xoWˆxQ œÚ��IDATx^URÕ‚íF d3„¥[þÿ_«f·/õƒV2’%rÞÚ Rê¾çܹ—š&™ëÜ*ÕÖìLX[ÛŽJm›+/Ý<{þKÚd5cªqãv&›µ)PimŒ\¹ù˜¹’ûzàÁ4ñ˜‘Ï´$�BнrûºsUÇ @Ó¤ugdÐáóJe�ìÃÏëîyyÇÑpî¯óÞ@mWÑ?»|éQ'-c[5}T_Ńd”þCéãQpÎ QüÆÕÖ¶-W(mõ@Àß"µçxi¼áe]×ã¨z’L/HôÙ+åbôB9X”.­ÐDl8–ô ¸Ì/K€9­ �ÀüÀ’:©CZï˜/7®0Jãñ;>Ú…îAÑï…11ÞDõ¡”ÕÄyUUooI©–2˼¿çé—R%ŽÈ>Ù�76w}ß47/Lƒ#0wÎq¢aCø ma”è›´Ä—K˽À¼>FF¾çË-öYwJ�@L¡¶Î�p³]¼=ä3ìë]˜¶­¼ÿÓ0mdß$¡BJè¼@aåâ„v¹Œe/´¼ Yõχ€vWfv+ÅPÃðÍ!Þdol'z?ï¾P/œ‰mœHbŸØuøIÌ;“~ÉûÜ‘¤Ž€Ér„¾·HÌËvÐÿÏ+|Hd€›¦ÊŒïWì¢ðzr€c°ƒ$£¨fDĺ»l ìïc®tÈ* ƒ¾ý]QXSQöS%¯Lõ{/5%˜[«e/¥¡Ã_@£·›2°2ÇÈйí(-ÑC¾³3à�ÝÓ¦¶Úþ$ÌsŸ]¾� aÕg¤Ô"y�|B»Æd/šp¬©f¤Š˜w‘UëÿõeŸË‰ô)ËÉ€'¾Ít›…u‰L¾}ï0P&e~I!}@ËÅØù|þeš<ß›i ä����IEND®B`‚IMAGE 216 ./arch/system/duplicator.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEõÿ����ÿ�ÿ�ËÓí���tRNS�@æØf���zIDATxÚ“A �1«þÿϵ„Áìmg(ÛèžEüESDqDqDq3ãÆÇö*<Æ…ÂQJçDp“æu(„äÀÕ àúŠ¡÷£zÀ{Ñ$Nf³èýÐi¶Û~z?dh?>ÏHOy±'ªŸyWçmGׯòŸÕ¹%§oå8_ø����IEND®B`‚IMAGE 299 ./arch/inorganic/dust_effect.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷½÷c1œR)���î†e���tRNS�@æØf���ÍIDATx^€!NA†¿áMBž˜vmM©À þí KZQÑcp€¡IGzdG”dG" …`üñÚ=CgŸ¶š˜éó(_¿@6ø¹:à%iYUiæ'ò•y$î~ìç`˜êÛF¤Œ/.¬‰ôQt ­suÒJm~ð@Î f{ÊË+ïÐ0² ß)´à%~꣖á‡~䇊ӦÖ{TXÙhrŸÉŠb ‡õýÖM)(NAŠÛ¶ÛÉNÇ`Šß–ƒÀ2\øÓ39e©¦Oê����IEND®B`‚IMAGE 301 ./arch/inorganic/dust_effect.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷½÷���œR)c1 žÔÓ���tRNS�@æØf���ÏIDATx^€=NAÇyÅšLÌÀÒB¤µ>J‹7q Š=ŒG€ÄÂDã–HAAÁA<„Èp�ªAàL1Æ¥6—/AŠý –"SQL¯÷K7‰¬¨¦ællaroŒÓØ# ȵ°‚ƒðkÏÁc¼•ç²y¦È FŒ,hö2nü!g‚´ÑØî<оi—‹é)¢¤Œv¬§ò»Òp÷K¿ùHKÌ`¡â݆3ÐkÒ¶Àªú­_;õã 1­¥Ïo€Î)-5a¼óÐ=ƒ!øm~'¼¹Ûz²����IEND®B`‚IMAGE 298 ./arch/inorganic/dust_effect.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷½÷���œR)c1 žÔÓ���tRNS�@æØf���ÌIDATx^€!R1†¿×ýgjóBˆŠ–^ ¡8ÌÛ6¢bÁHD¢‡ ÊŠ^‚›0°€àD‚ÞãÞª Øn:èÇ­ule"Q@á§5¸)’©0º+æ¸@³œëPqÚ4Ë…íóÞè¦ïöc¯Xecú* BPáí|Æg\˜¿U—Ž·²–m–Ìžº±f±qJ‡I×ß6LØ2ïÜèÌ#‡ÂÊ£Ò4ÓnêɼÏKç 2àï!/ÏÒ40èÔd(ž¹#�¡øP¤&œ?×Z����IEND®B`‚IMAGE 193 ./arch/spell/Potion/dust_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���cIDATxœc` `„18a q(czTÉÔ?Sj9„Á{ªéêuˆjÉÈò š%­ôïïÌØð+`©¹WK¿€åDcã!y†Þ-3BC V½ 1G€…æ˜3H�lf‰ïÈ����IEND®B`‚IMAGE 302 ./arch/wall/dwall/dwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ÄIDATxÚ•“QÃ0Cgàþ7n(ø¨£iŽ¢´â P>/y«T8[Ä+Tªó�8KõqˆßjBÖr† À=q:®·<t†‰[W ’î©€P}˜m:) fÂÀŒŒðÞ�m¯\+÷&Ô hFì0¤¾€$…Äã Ê;0¡ ŒD;¨Óð-A :ÌH]Bè ÖÞ0€•zôjÈpxÎÓàLA…,@¼IñªÿÒ§î+ÅÛ����IEND®B`‚IMAGE 241 ./arch/wall/dwall/dwall_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���‡IDATx^Ë Â0D· P XyJØ qµ vêˆ÷ƹ„=>Íoí}ÀãRìs=€ê?`EˆÂ¤èpÍÉpmµü·!~–Ó¥Ép 5Þ‘¯‹ÑŽœ†QË6Qž÷›‘"σ€8lEô|,Æ`°¥ÂàygÐÄa- ß×_ã,~H乆����IEND®B`‚IMAGE 204 ./arch/wall/dwall/dwall_1_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBccc{{{¥¥¥½½½���çççDjY���tRNS�@æØf���bIDATxÚí‘A€@w¥-ÿÿ±1\uL<Û+“¶Àúõ]*á<¥#4аCvT °Cj¸ôPQwr(ÀhpìÈ ,qƒnl0ÈÜàõF`V  ÛL�2÷o>9ø¦a¸°����IEND®B`‚IMAGE 227 ./arch/wall/dwall/dwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà���¿¿¿Ìh���tRNS�@æØf���IDATxÚÝŽ…0C7÷¿òïß„ô�Ö´Ê,ã[°àÏ,\³ý¿¬÷' Hß}­%¢GXÐA"zKú¼<ŒAž¨ñ¨¸bЈ9( ¬Ûß?„N P Þ~œÐì…8¡ùûy>BÓ$x©‡™—±ÔÃj‚Xk-¼c|?äž§W˜c:����IEND®B`‚IMAGE 203 ./arch/wall/dwall/dwall_2_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷{{{¥¥¥½½½���çççOs¿Ø���tRNS�@æØf���gIDATxÚÝ’ÁÀ Bêÿÿò´.ëÅ—ÝÅö’ØîB€Wá,èúÞ‰ïQ¼Î‚™^ $ç²sÈÀZãà€2Hû 2xíÍì "ï\A®ÐÜÿ € %€ ðÕnÅ•4ÿìZƒ����IEND®B`‚IMAGE 271 ./arch/wall/dwall/dwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���¥IDATxÚÝQK„ £´îãy´£AÜOúÚUÌKŸÚÕE@‚‚Õ‚WRv •” ü%ƒ¿dð³Å ­IKÁ©ð3÷wð¡sÉ0-’ˆˆ6–GªÂ¬· ‰ü¾ùYha;Ï%¤¨¦>¯†¤Á¡8Ý2`êój §Aæ×Œ˜ù-hùW-´xn Zh‹$ÐbÓb‰òø˱æ°Áá����IEND®B`‚IMAGE 186 ./arch/wall/dwall/dwall_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���VIDATx^Õα €0CÑÞ€Názñþ+Ñ!ò7À¥õdy¼Yëßh(.™…B†!B¹w¡‚ˆ±ïB†{)ˆØ¦hˆÛ QnlÄ~<pÅ$Œ éyã����IEND®B`‚IMAGE 144 ./arch/wall/dwall/dwall_4_short.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷BBBccc{{{¥¥¥���#hƒê���tRNS�@æØf���,IDAT(Sc`€ÐÐ�dÀâ„&Œ&b„&€¦‚Õ]³Ã(B��V²~4^e7����IEND®B`‚IMAGE 190 ./arch/wall/dwall/dwall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���ZIDATx^•± €@ Ù¬Á=ðÊþ+!Q¼ÀMø”Ñéìd{¦€k?¶9e8õZ „ð‡(”‡C™B¤üéá΃è{8ˆõ·¬§$ÑÝZv 6e:n¢ë*ÿØgýË����IEND®B`‚IMAGE 238 ./arch/wall/dwall/dwall_55.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBccc{{{¥¥¥½½½���çççDjY���tRNS�@æØf���„IDATxÚ}“9À0 ÃRÊÿ\¸ Ó3AIrþ§¹³ŸT $zTÉ�”6�À=6��”¸�dP¢ÁÁ0A7˜™’ Æ¡ºw©ð¤ªZ4²7Á‘T©®ÒwÔ½½àž°GxÕx�3���àÛ¿öÕˆ,‰G8����IEND®B`‚IMAGE 266 ./arch/wall/dwall/dwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf��� IDATxÚÝ’[Å C«ÙÿŽï%tðíJÑ3'„éõÕÒ©vïe¬ –áã÷¦eTìµÈy­N½ÿeÞ,�Á54t‚á@‚`vœÕ@ðl¡Ò0CX iÂ.$È.KDé),VA#>)€÷k‰˜)€÷k™€SÌyM¡R)Y$!k¶è„íÏ*¹‡ƒ åŽH˜À{x³X ?º>žzYUŸ����IEND®B`‚IMAGE 272 ./arch/wall/dwall/dwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���¦IDATxÚ¥SÑà ¤–ÿÿã-l•Þµ@_¼\š}EµS½› Z�|¢�ôDÍ „$†¬p¡ÝE¯•MQ‰Zç0ô:‡¡S´YkÀÏÅñ)ãìv!"æ“�='˜"³Cü[ç€Fúù ¤÷Éëþo“ôËÐ]˜ì48}•ék&÷\°+ä(\Ä­Þ­Å­N2 k¨ÎCÌÞ¿©Éïø?¬����IEND®B`‚IMAGE 232 ./arch/wall/dwall/dwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���¿¿¿ØR���tRNS�@æØf���IDATxÚÝQÀ CqÃÞÿÈ¢y[ŒîßJ•„(vêfe‡;×ú¤àÚ)Bð;ƒ»kDä°¡Z ©Á¸Cà¾üŸu“ä%"(uAÙ7`Èñ’tœNYÇo&½.&'YÇÅäƒã„ ŸÍ@lfdXH¼7… .`Gáüµ½ý]|����IEND®B`‚IMAGE 195 ./arch/wall/dwall/dwall_8_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷ccc{{{¥¥¥½½½���ççç\Fá:���tRNS�@æØf���\IDATxÚÝ‘AÀ ­Aÿÿd[¦ñ$ä.Y™´›5¶Î~¤ôøŸÒçßAóÓ[€¡þ§¯&¼²€ È’p·,À�;¡`#J€¾ëP�¼óEZF¨Y=­§u����IEND®B`‚IMAGE 259 ./arch/wall/dwall/dwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���™IDATxÚÝQÑà ùÿ?î`Ú—Ù¾/BñΘ@m€MÍe*Ý!}ê'Mô@è:µ?*hjœòþ‹‚²‚1ª‚0ª‚(­ªðëœ{`€0Æð±Ï´ˆøŠ€3P û!�¸ûˆÜdV‚ ¸IÔJ€Ãª8¯S ‚€) ƒ:&!Ân>Àm°lˆ° ÿ¨b¬/è™ÿc˜ãˆFG¢����IEND®B`‚IMAGE 213 ./arch/wall/dwall/dwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà���¿¿¿Ìh���tRNS�@æØf���qIDATxÚÝ‘Q À CÓ9ïåi(Âhý6ÆH'{kîÐÛÑñÔ Ìbõ=Œ¥IOîÝä¤Ã27ª÷·1Gl/YæŠÐOô4â‰NçÄÖÖ¼OaÍÿOax›ÂÁ¬tÀÀYé!ÌJÇÁï¾BH %T2J����IEND®B`‚IMAGE 255 ./arch/wall/dwall/dwall_AA.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ccc{{{¥¥¥½½½çÆ÷ççç`Uu���tRNSÿÿÿÿÿ�³¿¤¿���“IDATxÚÝ“ÁÃ0CY ùÿOԪТ7«~•é¡v}©ßìTôýS½°üYN)À–éñ’ìÀ©?bï]%i—�wÏ®³Éàë¥Ø”éðŒÈ¾OJ�3À{€�&�þ€¦ÚˆWZ*�”?Æg�9~]ÒŸã+�ÀLl=¡šŸ�`&6Sø‹?ë hHù Ná£����IEND®B`‚IMAGE 254 ./arch/wall/dwall/dwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���”IDATxÚÝ‘áà „,õýßxîbv)d¸ß;NŒU¾J„·3Âm²x`ܾF˜90Výè¬÷†ÀúÁ+!ŠHøvÌû€[ˆƒp-MúÊ™f6i+™mý2æeo/¥¼7Ðü€†x¢o3A<Ñé½ñD§]_»H—¯]¤Ë×. ˜+MHà½ÒGd0Wš~xî¿Ð |à Z÷T³¿����IEND®B`‚IMAGE 261 ./arch/wall/dwall/dwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���›IDATxÚÝK€0CJ¹ÿídŒŸ’±{‘:]Ä—ÄíznÁ®ÆŸ«ÏK`Jáñ™áMh­%—q"H`ÈÄŽIAà÷Øè!3Ûžxã}"œh:…PBbÑfÙð ì„ º†ét€@¶€Ctô¯¦@¶ lÁ øLˆk`à$ˆ d(_|AðþÁ× á�¬N¿‰S'Ò����IEND®B`‚IMAGE 271 ./arch/wall/dwall/dwall_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���¥IDATx^¥‘= Ã0 FsµÍÅðÁ{@%kˆîpÈõ›˜HÈL}h2O~ƒºŠøÜ_£ùÂÃéd £14álÀÉ0ƒœÃ¸9‡ñp®þQŠl³X…f&bâÞ*Œ¢f¬…·V5ƒêÆÜà ÷Y`Æ:ì E+3±"VŠ<PÙ:O T˜HÑTdPÄJÝh*´�ÙŒiG‘̸º[ã¯Ëý�$#Jt²  y����IEND®B`‚IMAGE 287 ./arch/wall/dwall/dwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���µIDATxÚÝÛà Cs%ÿÿÇë¤Áû\‚*+:Æôò‹ˆ/"–óGrÙØ½AX½Efy¬îpgQ·ésäy9EàéVäc"‡"Â8òÎI(÷*V]ŠP."'Ÿ(Eh›À®óBG¢rÂðº\&Æj™haMH£[€‡…m‹Ø·�/ô·…·2@AhÑR.à Ë-è—pXÐ A‡ zËðƒí I¥³´ë����IEND®B`‚IMAGE 304 ./arch/wall/dwall/dwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ÆIDATxÚÅSAÃ0àÿ?^ç+­M£æ@•"jÇE‘†å¦Ãå#ìHW[4  Ž5¾ß0Ø•Á/�!zÓ¢ö¼Ä6û3Ì9Í‘³ë¢šˆ‰ü0h×¥ZIäÑ ‰”Ìœšxbã†÷;R”¯?‰—–È ±fÁ²47t¦÷,(I ïi²FPpN³ tÑ Ö (ÐE¥zº(>4,\P`å|hß.œ€À(â·›e››ºY/ËÇ mþ‚$;����IEND®B`‚IMAGE 338 ./arch/monster/humanoid/Dwarf/dwarf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4V¡¡¡aaaÁq8àààG$!!!Í…? R-���ï§_��€@@@d3¿¿¿Våc���tRNS�@æØf���ÐIDATxÚ½aoà D}6í–s‡ÿÿ¿© 4ýRí"Ò{òükðŽ¿~€¾=OÂQP…>L\ï�‹L*£šYÜhbêî*'‚ßüf¯¹hkô3䯗 3Š·(®É“`¦Và%—Ihؤ�‚¾µ�t5‡„Öjß["òpzm濽‘ÓM{ÿÚ¥8 ÷ùÈt÷£0¸¥A.¸°¸HÝQȹ¼öäRD /„:?~k~" ^æJàµøºœ¦F|2¿Ü ޲mà����IEND®B`‚IMAGE 330 ./arch/monster/humanoid/Dwarf/dwarf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8àààG$!!!Í…? R-���ï§_��€d3¿¿¿¹.¢V���tRNS�@æØf���ËIDATxÚ½ÁnÃ0 CEÉíªÖÿnE =lvÒË0æïAlÿ|â„�æa8_?pÞáîDU;ÁL ðÎþqe¦Û…|Ä97ƒy%<xÊv[¡Ä½9ÊkÃâ�o…ºmTÈh  ¸ð&þ6´ç§1Æ1l†Œê†~ S|ί©€ß9Aü2ØÉ•‡úû#3s^<Ú 7Ü(n¦\ÈûlnÚ`¶¹P‚fý–hÀ*¬¼§À»ø[˜v­øË<ÕVøa6qº����IEND®B`‚IMAGE 312 ./arch/player/race/dwarf_p.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ¥¥¥ccc½½½{{{c1¥R)B!���ççç΄9ï¥ZÆs9‚o���tRNS�@æØf���¿IDATxÚÕ‘í ƒ0 E½ù¨Q÷þÏ»› ]Ëþ –b8‡Þ—ÿ,Ô>á߈ª‹ˆL³.° 1ò$>ÒÚ0¢ …u]³… ,>9±»›EDnx {ŒÔ(Üx„7ïñ�6…nwÁ)xËx)%ÝÛ= eÀe°%œ`—4” Žv’³ºŠe?^uÀõf±“;ç ¨:Ï×'+n 1"95ÞqÌcõ$ÅTÈÎ6ç%Ì9§³„×+©®Vä=����IEND®B`‚IMAGE 318 ./arch/player/race/dwarf_p.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ¥¥¥ccc½½½{{{c1¥R)B!���ççç΄9ï¥ZÆs9‚o���tRNS�@æØf���ÅIDATxÚÕÛªÄ E³sÑ´=ÿÿ½“4 Ò!- çi¶T…µL´ô›Áš8™o°ˆ Õ^Ð �Ù@¬ÁÙ >œ7œ3—³A#6³Ø¸2ÔéS8± UwÏ ZÂâî6ŒâƒÈvÌý, ÁMBÙǵÁÈŒ0‚È~,¡.øm¨ò1®ÂÈ•ÓMâøß*POª§V-íGû“‹õ©úˆñÄaô‚''Î;öܧ%al|Ç«OœrÓdN넾חÂÿócûX]þZ����IEND®B`‚IMAGE 285 ./arch/player/race/dwarf_p.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ¥¥¥ccc{{{ï¥Z��½���B!œœœc1½½½¥R)΄9Æs9„B!™—–Ã���tRNS�@æØf���žIDATxÚÕ‘1Ã0¥;E€eûÿÏ 8¥…\$MN 3»…ʧúû‚¨uÍY¹¶‡†öÊy¿„Þ|¿÷>E¼aÀí>È 'Tu»„qßεd €S‚‘ÎY2f º‘ 43²í{ðI T³ÃÓÚ\ nÑ?F;²RÄ\èPoÈ¥ó<2ììe•'.v–‡9—ŠDÊÏóšá«Rc����IEND®B`‚IMAGE 282 ./arch/player/race/dwarf_p.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ¥¥¥ccc{{{ï¥Z��½���B!œœœc1½½½¥R)΄9Æs9„B!™—–Ã���tRNS�@æØf���›IDATxÚÕ91 ÃhÑÑá=þÿÜÈ©eo‘4A ‰?¦¡}ã)Òvˆ°qPØúkíõtŠTÖLTg�I*o"™¸A²ò8@”Az˜AõâÎ\˜¾ÈY`H„“ý<Ó—#âJzG ãè×jÁ‡X=(³W¥ûÀ 5Sçp¬°äˆ[±ãÉÃâÆÃ‚ÝûÄü–7óœË<Ï’½����IEND®B`‚IMAGE 331 ./arch/player/race/dwarf_p.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿb2bbbÆr:zzzξΆ:¦¦¦¾¾¾î¦ZæÖö¦R*B"†þæ"""cJu²���tRNS�@æØf���ÆIDATxÚÕÎÁrƒ0 P­e¥+ ‰ûÿ_[)!‡bC/½dlð¾ȇ†ûvÙÏ@3{AuwrÌ^À2œ¿Ðv ja2ƒí=,ñÐ `½#ô¼�No†Ì+ n´Q€Ã|ª¦,Áìéó„nÎÃÇ é8ô[wÒJdïF¿@ïµj g>@«¥‚¼‰¯è ŽQkíû‰`¯ùÌ ˆˆàÙk `ÙãÞ\¤þQ�¬An5¡^䤗}[÷�÷÷9Ðä*þòŸùñTPÆ����IEND®B`‚IMAGE 320 ./arch/player/race/dwarf_p.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ¦¦¦bbbzzz¾¾¾b2¦R*î¦Z†Ær:ξþæΆ:"""B"BŽ0���tRNS�@æØf���¾IDATxÚÕÌÛj1 „a«xºmÞÿm+5&°±ÝÞ2`|ñ¨½é0¾}ÿ @Ì ¸©é�šËþ |€&:]vâ¸ÅMfp´1íñ y°í€âC™–Àz€šM@Ä%@œSï~t¤Èxž€ñô£ %²À«ð^Ý¥„ÁR&¸Šz5ÖûŒž`š¨û—?�àyß‘bÓ%cuÕ[«äªóî–]hÕWàñÿ|Û>À¾7.ï£ÿºo'0[ {����IEND®B`‚IMAGE 283 ./arch/player/race/dwarf_p.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿzzz¡¡¡bbbb2¦R*–J"B#¾¾¾þæÆr:†B"î¦ZΆ:ξ¾Õ 4)���tRNS�@æØf���–IDATxÚ½ÏIÃPPlàIÚûŸ¶¤{Ȧª·~2Bþ< &7 0Ö$¢J¢z‚@1p½·‚¸ûbÁ/פ—³‘twÍú½è1Wö¼ÖZ3Òz9)I†Yï=DÑ[ŒÌt „…@Üc¥eÀ¾ „T7ªÑ=pW"„¤`¤iãp©bý°£¬£¯Áù}>›ÖþÖ-üº����IEND®B`‚IMAGE 283 ./arch/player/race/dwarf_p.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ¡¡¡bbbb2zzzB#–J"¦R*þæ¾¾¾Î†:Ær:†B"î¦Z¾Î¾Á§ª6���tRNS�@æØf���–IDATx^Í91 5:|ìÿ-rAˆf:í®±Kòo¨rD¤€€¤Ÿèˆ Áþ84À‚åÉ‚í¦ì03ýîå‚åc›EpöœsnÕbläP£UHEsï½sï9RYx,0s¯'üx5aºÞ(ÌL‘E¯¬5…”Œvš0<=¥\7¿ ù9/¶YývqŽ,����IEND®B`‚IMAGE 333 ./arch/monster/humanoid/Dwarf/dwarf_pr.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V‰*Ö���`-‘£2ÿÿ×�Áq8¡¡¡ÿÿ�¿¿¿ï§_d3G$ R-Ú¥ ��€‚��ð³���tRNS�@æØf���ÈIDATx^µ‘I–Ã0ùÐä!}ÿÓ6¶ã•$g“Ô¶êñ$ß@òÙ«*?àãS€yàEDp³‰÷p“á…‡ßÆÁš"HíÕ^iî%¥Ä¶=9×-׉'wj͵‚À¦pÍ5ÃaC¨Fáá9 ¦�¼ °‰WÀ}´ë´&¡Š…uþŠìomPcÕýô.î¥ß5ð“ÄÖ‡‡"0Jë½ÜþþâhÀí9ð²ß>(ã3íÐKýºˆ_,£3­á/Èe‘G¢oò 6©¸Ñ����IEND®B`‚IMAGE 340 ./arch/monster/humanoid/Dwarf/dwarf_pr.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4VÚ¥ ¡¡¡Áq8`-‘G$ R-‰*Ö���ï§_��€£2ÿÿÿ�ÿ×�d3‚B'¿¿¿ œô¼���tRNS�@æØf���ÏIDATxÚµArà yF^­Ìÿ_aäK@ò%é ‡îšìtïèK@}ñtݼb³F÷™°³îMÍ¿ld)ý,ës}–ko¥­¯› çúÈõ"Ts­ÔÌCrÍ ú4OG‡×�NÉØxàdDóÒD€o0.š¥S;áúåÅLˆxû°ˆmò 8ˆ†[Ñ:Íì\Go§ÿ<q:ðñš©ù“m6 ”ˆ®·É€´ìÝÆ@Ëá;Ò¾Û5½°¿äd Q^¥n����IEND®B`‚IMAGE 333 ./arch/monster/humanoid/Dwarf/dwarf_pr.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V`-‘���‰*ÖÁq8£2ÿÿ×�¡¡¡¿¿¿G$ï§_ÿÿ�d3Ú¥ ��€‚B' R-GB†���tRNS�@æØf���ÈIDATx^µÐËr! DQuëóròÿ_›bVNoÏ-ªüÏH>;€¼ˆcÊÜc¸:³ »º6ë îKèÈ:àíöØþÚ_¶v13îOA)õ·ÔE@^D-µ*éÐ@©EC} ¸*ЊˆéR?›ysïG8´ÍŽDrëÍÐohÔ³O^v…3q"¢{HÄ1D[Üs1îSp»¢¿@Ùg—áã‹ÙÙ×ð¶Cæ‘×¥xsîÛ)ñÞ™ùÖ|¤ç)«B¾¹?›Ø¾?ÕÊP����IEND®B`‚IMAGE 323 ./arch/player/stoned/dwarf_stoned.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�ÿ[‘"µ���bKGD�ÿ‡Ì¿���îIDAT8ËÍÓ±mÄ0@a+øœ}×Ì*bsVð=løÉåWû9’ I”Þ3!À, œê—1ýO Ã4Ýågàî¾òÌ”.�¹�’Üòݶ‚rFÇCÚ¼•Å#þ°5Ä~ò0£î�õ&�¼u<)vPgÀ.Š]PWŽ )Õ³wI‰°yn)ÑEõ®¤@kËe¹˜•rú XU™™ÌLxE;‚õ’;ÌÌ€W`K¿R DÄàbÊ•¶|€§e³²�\ƒªr¥ª°½ÆtÎk†ÇÚò;€ç¶\7ì¶2ûNÿzß-Q ˜ÄPÍ����IEND®B`‚IMAGE 291 ./arch/monster/humanoid/Dwarf/dwarf_wiz.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V²""‚��Áq8ÿ×�Ú¥  R-ï§_d3ÿ��G$��€aaa���ÿÿ�Í…?žß���tRNS�@æØf���žIDATx^åÏ9Â@ DQuK³zûŸa V)"£Ó§úS#ÿ»ªª™«Þ}Y ù²„¶µ­éêž¶­×Þ%YÈî'(1OÂØÝ 3t€4vsGè“�ìàZ/'`\ ê"� _T•SJ91(H¥°bÏ â_øÎ¼j <Ò®.?òÉG!Ø×ã¾»3óeÈé#òÅýCÒù…üruŽZ[›ây����IEND®B`‚IMAGE 291 ./arch/monster/humanoid/Dwarf/dwarf_wiz.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4V²""Áq8‚��ï§_Ú¥ ���ÿ×�d3 R-G$��€�îîaaaÿ��ÿÿ�Í…?“›¡‡���tRNS�@æØf���›IDATx^åÏ91 ÐÈÎ>Üÿ²ˆ‡©ÆqE‡Ú¯§8é3E$r‘' d&š¼ç=,ˆÔpá<[mmªEµ±‚âó¥èÚè—ë€*Ž›:€ãྠ4ºý�œ…1?/Àr¿aj*Å"Ùýzé卵á9cóX8v s;0x`µ`¾\¨•®‘o#™Ï7ú·:F ÃFúe^".š3°ê\����IEND®B`‚IMAGE 292 ./arch/monster/humanoid/Dwarf/dwarf_wiz.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4V²""‚��Áq8ï§_Ú¥ ÿ×�d3���ÿ��G$aaa�ÿÿ��€�îîÍ…? R-ÓÙ&o���tRNS�@æØf���œIDATx^å91 EÊ×ÞÉÿ?pªhU¥Ë´CŒ Ûÿòt÷Ì»?D("Kx9˙ܗ´°ïíњŕlš Æ~%:›|Çy¤]á@à: ‚Âã’.ab<¹Öé`îåûIôÚߘ•‚àâSGìÁy!búY°äÀMaúÛ²È3óÛ°éGä7ùÏt KÑÂ~É cS(Ò'����IEND®B`‚IMAGE 212 ./arch/wall/dwall/dwindow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ¡¡¡aaa���@@@¶^ƒ���tRNS�@æØf���pIDATxÚÕÎ1 ÁÄ^ÿÿËHPPœpjœ6í|Gô>´fæ9âÏÃêǃ‡&È Eˆ"è †Ú`¶7„£¥7© l¦ 0jUýÁ—€u9îVÜ"WA9”ÞEnBnÁφK>•¢Ý����IEND®B`‚IMAGE 236 ./arch/wall/dwall/dwindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ¡¡¡ààà���¿¿¿v>Õ���tRNS�@æØf���ˆIDATxÚÝ‘Ñ Å C{lòÿ¿|]q¼2ßwÚŠ$ Æ7Ðà@ÐÞ+:ç²ãê\Ïš�\Írމù^ºN®¶åx–šÇm°ÓqY ‡E·šjI»vz Á‹ÃLaK~"—ÁH4­Eâ™Bf)Éf¦(¹ F mpÜ)ò¸/} pþîOðEÝ$2e����IEND®B`‚IMAGE 248 ./arch/wall/dwall/dwindow_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE ��@@@aaa¡¡¡Ð¿çÔ�ÿê���øÐ‡���tRNS�@æØf���‹IDATx^]Í!Ã0DÑ øFÁ³Ä¼ ¹F¶’D2­ÓÊç®TufáêéÏô»”÷ã5Ý×3ÊÇþrcah$:Ê&…Åe§4Ð7J±Ò8[bÑ‹±ÜUVF$ë.‰EÌÎbÝ]V²2CV\DukñDfá&Ú€4:ŒE‡ »_Ë*Q»÷Ô ����IEND®B`‚IMAGE 246 ./arch/wall/dwall/dwindow_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��¡¡¡Ð¿¿¿¿ê×�ÿêààà���»|J���tRNS�@æØf���‰IDATxÚÝ‘Á Ã0 CUU“÷ÿ_¼Å¸5Œì\Åè"̳ž¡÷FàFà±~ØäÜß_)çeÿŽ"@R9´`¨ý”IâÚI>(8Fš(\€Úk?L*KB@RP p2�ׄj“¼êaUánAëW©=Ý”ÅöAH@µ¸“öT‹Éàßý}�̦ VclÂÈ����IEND®B`‚IMAGE 281 ./arch/monster/animal/Wolf/dwolf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���šššººº¼��ØØØÿuuÿÿÿÉc —���tRNS�@æØf���²IDATxÚ¥“Qƒ Dû–õþW® C«‚Ó¢oÇ,ļ~ ‰…ÂÒRÀB±è¯öŠÛ,Ë’î«»né÷%f<CîÆSƒî_ÏÆ\B¸¾lO™p‡SÅ:¼'ÆnîÈUž×Ú—áÉnM :o'g1|¼›ËÙPïØfo[W|9áM..%°>T7qƸARøìÆoç¥&ÿzÙ1³NdÚ3!ZLq.è¶����IEND®B`‚IMAGE 349 ./arch/monster/animal/Wolf/dwolf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE[š-j™?l©NlšN~ª]}›qŒ¥{‹‹~‹˜ˆœ°‹‹‹š¤ššš©©©®¶¶¼��ºººÉÉÉØØØÿuu¨Õ†—���tRNS�@æØf���ÏIDATxÚ“ëƒ0F]2§ €ïÿ®û¤ÕÙi2jÿxH/ÿ÷Ñž ” Ú¬#¬*KÆ5禦CdÝ™?"O¸¡ŒÁs\¾p‹J�ÕÕ ÄCÛ­6_•|pRmWa0ÀÉWN«7Ò BÁ~Úí'„À}:vƒoÜigÞÒ‚Aìê}šÅ~Ân¶c1JŒþŠõ3ÜpÇ`ƒë¢º(Oá‰luuäþx—·ƒ!ja¾v‡W_ÿí=ä\ö/\¤Jx€����IEND®B`‚IMAGE 278 ./arch/monster/animal/Wolf/dwolf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE[šššš¼��ºººØØØÿuuU«\���tRNS�@æØf���²IDATxÚ“Ä C­tÿÿËW ž7£x0³%}I‹íï‚Y©›±ÔqØ®w‹›Ç… ªaT—:ã)BŽÞê0UAÀ’ØÛ�® Ÿ ‚ Ó{Oä p‚Þˆ¹LÙYI¨¥sɨDˆ°›@Î8âJÈ3ƒx°W^Qƒ a™XÀëʈI ýyt¾Äb‘ÀîÎH‹gDb ç¥ž7( ò¼èŽôb !¤×[ àôƒ¶º~õÿÉ>N,2����IEND®B`‚IMAGE 345 ./arch/monster/animal/Wolf/dwolf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE[š-j™?l©NlšN~ª]}›qŒ¥{‹‹~‹˜ˆœ°‹‹‹š¤ššš©©©®¶¶¼��ºººÉÉÉØØØÿuu¨Õ†—���tRNS�@æØf���ËIDATxÚÒ ƒ0 `œ&z9ßÿ]w42Öií®Ö"ùèÇ;õÀ}ÝÐѼ bíŠèˆ`ðVPA³ €,OûXZƒÌ¥)r¦ zcŠ8Ö¹$†D0‰œÃÊY ®&¡¦¦:ë]BCš ¬^êIÈì¨Á¢w @ äKóô9!ð{e¯ð2ޏêÜwõáœÑáe¯—`ò€Ö!Qžæÿm¶å¥¶ÿïäÅ&Rˆ`;!’õ*OĆsž÷Yª¯7%Ìhh�‘����IEND®B`‚IMAGE 387 ./arch/ground/new/earth.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE�1�ŸQ,-ŠVÒic2�c�Í…?���cD�Ì�¸ì��IDATÁ¡nA�àÿD®ß6:UqwŠ« ¹:$®#&Ù}€ Þ‚’lRs—% ‹ë[ò}aȧ²eôŽ8†~ƒ×©¾Ë¿¾‘ºz¡„4–Þ°8Õ±}ŸÚ™ìËÛÜâï¡Àu3C‹#5¬ÈKêÑz›[ê’˰X/¶çö�à¶‹ /Ej¤á$r~úq~ƒÜ[6¢ÖLÕ¼ºï»p<‰Ô[€ßC}Ød¦÷0ù Ü•©ÞGw»?;õÑ{c¹ß—Ó–ºÀÜ’›ýã`û.Àmc|ÝA� A°Ñå#©“"{âÅ4’´)f@~mr!LÌp$ä+]†Ô\.!­¨Ð›‡ þ»^ äC ·,}ÜVŸçŸã?¥Td~£É����IEND®B`‚IMAGE 353 ./arch/gods/items/earth_shield/earth_shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE��111c1�cccsssŒŒŒœc1­­­ÎœcÎÎÎïïï÷µ÷¡¬\ñ��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���àIDATxÚ½ÓÛ! Ðér[êÿÿ¯“BYp1ú`ìƒièI0Cõc€^o�PRT !��¨Ö’„ÀÉPª*€ÈŒ¬�*8¤È_Ì�A„ƒÜ@&áUX@ày&PÂód\s;—\ÜA-ìò|Îr0Ä ZAëhWàEà5ËW%&¦%ÕWÀòb 쮨êÝþOxû r‹§ÔT¾€ ï“ô·¸'9D‹1Ÿö玩=·Ê, 8€"ÓÂø%–FˆhÛ‰ÛÒ’X¾©mçví=pŽ¿ÿpþðñ>HžÆ>«Û����IEND®B`‚IMAGE 352 ./arch/gods/items/earth_shield/earth_shield.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE��111cc�cccsssŒŒŒœ”1­­­ÎÎÎÎÞcïïï÷µ÷OÃBº��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���ßIDATxÚ½ÓÛ! ÐérÝúÿÿë¤P\Œ>û`zÌÐÅãCý ×�”UBÀ�ªµ$!p²�”ª r#+€JŽ)ò—D3@á 7Ixxž ”ð<Ù×ÜÎ¥wP »¼�Ÿ³ 1ƒVÐ:ÚxxMÀòU‰‰iIõÀU°|Å€è»+ªz·ÿ“Þ¾‚Üâ)µ•/àÂÁû$ý-îIÑßbÌg ý¹cjÏ­²�‹$ È´0~‰¥"Úvâ¶´$–ojÛ¹]{œãï?œ?|¼OJ6Æ=&ˆ·����IEND®B`‚IMAGE 369 ./arch/gods/items/earth_shield/earth_shield.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��111Rs�cc�cccsss{½!ŒŒŒœ”1­­­­÷RÎÎÎïïï÷µ÷ïÝ!���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿ�EÀÜÈ���èIDATxÚ½Óínà …á×|–âÝÿíÎ#’4Õ4iªD<RÐÁðõKý3Àë €V³JJ n�¨öVÅ€“3 uU '`3@¥AÔl_#*I„ËIœ@"–b@…ð|–HZ`ïÛz@&pqz#”rÖÏUÞ±Á,´{{« xÁÈW%WKKú \…F¾2€ à w¿èŠ×ý! ¬ö ?ñZŸA• \ÄÞ'éwñšä~{ÿ�Ô¯;W1¢r�„ 4.#7'‘”™ÓÉËÐ’TêœÎÛ±_ÃÎï7‚N¸Ã*‚'����IEND®B`‚IMAGE 364 ./arch/gods/items/earth_shield/earth_shield.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��111Bµ�Rs�cccsss{Ö!{ÿ!ŒŒŒ­­­ÎÎÎïïï÷µ÷¹Ó��� tRNSÿÿÿÿÿÿÿÿÿÿÿÿ�=è"†���çIDATxÚ½ÓÑ Ã Л¨©šýÿ÷.Ät¤›c ÆòPй¦¸}¨D½ÀèM©Ö l� :G'A®�cªh¶'W�¥0£7{QB¨D(ER`­pÕÖÅ€ø8¤ &àûElAŒºØ€9üS ¤’@ˆVAg¼>ƒ³ Deàù*µniÑ<Wz�Ï—ƒXص˜Š³ö‡4°?$ËŠgÌ”HAe°O2îâ%É,ä .+µ 6Ðúºn¥" qÀÀ <0ÑÄÓ¨ k:ñ2´N¬U_Ó¹û3pà‹ç?ïà´|µtf/����IEND®B`‚IMAGE 542 ./arch/wall/bwall/earthwall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE‹ƒZRRZæÅÕ´)���œ”j19As{{Å´1öÕ� 1ƒƒ{Õ½)´¤Abbjÿæ�µò%���tRNSÿÿÿÿ�û¶S��˜IDATxÚ…S ®ã@kMÉ„�ñýo»03é{Z­´N‚£b™O:¯ÏP‚ë~ßÿÆ\¯®¾ _R}_%¸Fª-QéI£î¡ï Ðê ?ifÄd†ã¼K|^jýƒhL9Î © eÙŒÏëx¡é•.DfÙríàwTJÝ”%$[5¦`À*?ºRãḴ@_}èZ`8§ÿCúlÒðçdÆvÉ)P¥ý‰±K�áÊ,R±å0æ3ŸE:Zfîz1ž?öš»ßgÌ!ðØ ª òìCv‰„ÉœbId·’b~¯=Т„ül’HÁv†£Kì2(»;Ë;õ˜¸?«fÏ ’Ö7ÒX]ïž ´¡Bˆ.òB;ÜçòÛPOhEš\yq�2´Ê!ê²Xcª±òzβ]<´¨™%†°´g…X\“ X÷¥û4zš aæôŘxôè0x�RÌ %8Rz]W$#'©æGÍ# Ðrñ;,úEq+¯«O÷ñ,àt>Wî?$ $u®1)*����IEND®B`‚IMAGE 615 ./arch/wall/bwall/earthwall.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÕ½ Õ´)RRb���s{ƒöÕ�99A‹ƒbœ”jÅ´1 )æÅƒƒ{´¤Ajjsöæ�hqY���tRNSÿÿÿ�@*©ô��âIDATxÚ…’Ûº«0„C JË!ïÿ¶ëv_oL?Æ;®ÿ€oÍ"æšÔ«®kuMÙ�Šñ±'î{†ÍiwYÌ/€ïò½3€ØcÄâ<Á=`�ô•Ë×è¬kŒÐ4ݹֲºFÐ w4u‹ YKõ å,sO•Õý-¹³>];qâ³·š©:˜Ç¶:ˆdñœ+SK}f³¹5ÄYu¢¢FDˆ˜�Î“Õ­ÂØa½2E„÷¤6ƒË½tË4&Ü×0ú«ÎyÊX.ñ*œ»ŽL)<ØÌîÝ™Ý�Ì[½$¢s$¦+� F¸ˆ6*]FáaxqŽ0®*{ìÍ`õ޲ø¸0N¡hávè%za;€É† ðcÃIêÜ ™|ï¨ðFó»“Àó3‹–Ɉ®Þá• Š³¹`�P˜äïm�ûÙ#pøË€Ÿhƒ S€F«ÿ¬žsƶ±—¹pBˆ<9ã§âº.i+¬‚¾Ä_@ÍôP§i±¥Bü0y�Ze“Ög‹Jí"›à™‰Ìéÿd|ð7‘(çå è¿¿ÜàA tÂÞ?J.k�žÍ È}“µKs�w KˆÝá™N%1M˜ÒZø¨¤XEvL¨²ûš¬PÒo‚(²Å¢²ù-Åé_Ͷ!HÖ/g����IEND®B`‚IMAGE 645 ./arch/wall/bwall/earthwall.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE¤œRÕ½ ¤”ZÕ´ öÕ�s{ƒ99J���””sÅ´1ƒƒsæÅ )´¤Abbsöæ�c›yp���tRNSÿÿÿÿÿÿÿ�Þƒ½Y��üIDATxÚ…RëºÃ SnE(úþo{‚ÝÿÓ͇YbÇóÏ€Ùcº÷óê~Ÿkoµ§{ॲíáfû5ߨ®f{ľ€=O…»Žáîc¨ã«1F¨:è�XGä¤òTÑ9C*ΪŽóI’4qxÓäP‘–#š!*sÈR¹Iøg]l’LCj#"y$ó"TìJÉ­ÐÚ£~K‚EµŽ\¯ † ç¡‚¢¼d®ƒ2/öBÐ.ÍT™ÎKM»I†ê_mU“[U•±·”â2A=G§¶]øÖ·“´) 9U6Ez²†Ù³ÔZb,¸™¡ŽÄøÔZÌämRwÁ®b–¦G<ø ™%´÷½¬ 0'ÒÛoAÑã“HX!Ïñ[¤ÐCdû½c:É$èß»€•œs’+ÎðzŸí¤}`ŠÒo̧­:Ûúî¢fdíøµm{UKŠäìÁWá`êÿJÉ”©<Át2 ý™7<}=vr €ïÔ Ix 8¼ BÜž§^@èÂô4ϪEU³ù™I *ÃÍ·Ž`6Ap²ˆÐþ¢Ž”…"ß›¬ÔØžZ¨§4ç²Î‚îɬ’è s�l,èÛc4«61O>\üKÒr6´ Ö›÷±%Skî_Ôæ E~Íï³±¥oÿ¢q€ðU¼»����IEND®B`‚IMAGE 182 ./arch/flesh/misc/ectoplasm.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE{{{ÿÆÎÿÿÿú}´O���tRNSÿ�å·0J���ZIDAT•c…š2  Ö�FQ0Ã)…Ìàœ9SÈQSKK2fΜ1$””––Æ ™Ù ’ aaHHkwáliw q`‹„†ˆˆRßñ�ÀõQš� ����IEND®B`‚IMAGE 3104 ./arch/monster/dragon/Electric/elec_dr.x11 ‰PNG  ��� IHDR���@���`���š„Ú��¸PLTE���9)sB1cB1sB1”J)ŒJZÆRkÎ99¥1)Œ11s1J­9!Z!!„91„))œ9J½9Z½B!RB!sB){)1„)1Œ)1¥B9sB9¥B9µBJ½BJÎBkÖBsÆJ)c)9”J1œJ9{JBŒJJ¥)B¥RJ¥1)cZ9kZ9œZ{ÖcB¥cZœc„Îc„ÞkŒÞ{RœsJœ1)”)µ11­1B½BcÖ1Z½BsÞ9s9!J)1{!Œ99ŒJJÎ!){J{½R1­R9„RJ„RJ½)BRsÞR{çR„ÖZ)k9cÆ)BµZZkZcµZcÆZkÞZsÆB!ZZŒÞZ”Þc9­cBŒ1ZcRŒcR¥B!œ1!„1!œc”ïkcœk{Îk„Ö)skŒçk”Þk”ç{œÞs„Îs”Þsœç1){)!„{œç„­ï91ŒJ)µsJcµZŒÆ!)”{­ï„B”sZ­œµïkZ”k{Æ))µk„ÆR)„k„ÞB)cZ{Æ)!sZ„ÆkœÞs9¥sB„sB”J!ZsJ¥sJµsZ„B)Œsc„skµ1J½!!c1”s¥çs¥ï9ZÎ{Zµ{k­{„Î{”Þ!sB„{¥Ö{¥ç{¥ï11½„{{„{„„¥ç„­ÞZR„ŒœÖŒ¥ï”µç!!¥œ½ï¥­ïZcœk¥çŒ½÷”­Ö¥µç{­ç!1Œ„R”„cœRŒï{Zœ!!”„¥ï{kŒŒ”ç1BÖJ!„s„ÖŒ­Þkœï””Œ”¥çJcÖ”­÷1!Œœ{Æœ­çœµÞœµçkc­œ½çsœïs¥Þ¥Æï¥½ç¥½ïkk¥­Æç­Æïµk{½ÎïµÎ÷{R¥{ŒïŒŒ{„9œ{R­Œ¥ç{”ïœÆ÷„ZµŒ­çŒ­ï1!s„c­­µï­½ç­½ïs”ï”¥ï­Æ÷{cœ)9sµÎ÷99­õ.Ré���tRNS�@æØf�� IDATx^íÕc—k ²ðíÛ¶Ù¶mÛÖ¡mÛ¶ñض5¶uïטÊI§Ó:çÉé^ób֚ꕼûÿvU¥ÒAþKêµjê ÁñÇ�ïq=°* xE(N©…ÂJž˜Äð¼&c&ë=­RláUáפAŽð׿® H¬�ð L.—Q“DS1/”îÜ©×;€š–rå‰Çée1кò¥ÑîUS@öÒ—ËtUl@i­¸4w—YÜ´òa€Ï=Ãå«é-žX€z±˜ÜÕ`9’ZBs³ÏHÿŸŠ pˆÏÉmØQОºqj‰r~v¶Ô°¬&&@¶µÕ¸«aÉ­Ôèø/s³³ lKL�÷}n.É;r¤Gˆì`Å �ž³.› (óä¿Ï]‡¶µ¥ŠKàò+VðŸ“Z…f iØ2­K–°˜mm’È(?>~½\*µ.[7 ÈÇs³�ìÿ—øH›xã¤ÉZ€a5à™Ms'‘¼!þÅYN �sÈŽ/—IåÝŒCà1¤ö¹À„Dr횤°i4£­-rG…£“@rÉõ¨À[&ç.=|Ø>(Àñw0NSS7£í—´iôV°Z­º žh^]¾téÒìY-˜ô×®aØfN*t°'²Ä¦ž c—ê"�WSÎx™ËåÎï`ù¯mttT25³çV¹Õ``JNžj‡ 9¾¥Ò™‚û'‚ØdÜñóuûúr+û°¬L(\žÝ¡\šÎ•0§ÌÒ î4ÏáˆÜ–*1Ñ*¤„M ·DŠ‘Î’Êd²¹‚ f;ܤäóœ*A"[§cS.¿WÔ�@~n 5ª„[‡9ú©^'¶N+ÔzÏ£¦ž…‘.Mg±¤ÒÙ@•êbû(Zëør`ß>�Pf‚àV«=®õ]½ù g¨PX 2Cº ¼y€¶ÍÁ�òü>ä��ÞE [›@Ý£›Ë£w̆ã–2Òe2rjˆ“Àúö­"Ñ ž*ô¸R“$%}_,Ÿvˆl©m°Z¥2B1?î2Ö·£¢àZ„ìiCp2Pe½w<¥8¥¬xxlHN60¬R†2üxõ�¯ð©r}ûŠÝ5£=¨„$ˆ%À7|n:`` …6[fµX›ÃW´3M@%#�tbÿˆ„GÆ%*Í{ÕIÅ/¦h}}ŸË„a²!ÓbÉÄÃHÓÃBó3 hÐhtæ• _O** XëóOk`öä2]Ù!ŠÔ” ¢4Ñfœ49Í„RIHÄ»ˆÜ;œÊ�ª‹‹µ/vtøhoð zËt.%D­&2M‡£ÑdßL÷¸ÝN#�û[xœO‚¼¯ãíþM3�?]RRârY�10”Df^^#$N÷Þ½{œÆ •;×ù|tÇÛŸÞKGGð Ñuõ�½^[­RB×N·Ûæ†Úë6L»½‘hØ‘ ù¬êM½¾¢þ± ¯œž õ¹ú¶C ”·Ä¥S«Jƒa±Øl‹ÍfÜ?ºÕŽ *•*«¨·ßïó]¹qcŒîŽ~zè|p¹\4‘’ËŒ8æ�A'ƒ¡Êªö ÷uÝX³æ£wéÁ(ÐMýþh]ØæòvS”@ P�”ŒÉÜj’„Œ¯©.êîó_¹ùåw]ó.Õ5øõ'çëK¼^Êëá8”Z˜øÌ;Jã ¿ß;póËŸüß?Ö\¡ÖEAêúƒ«Û½®-”whxxÈOQee¥$&&–Ëù�°Ð /NUå W?ûö‡¾[sEù)AíÉyëê€7 @—”ŽvÑt’F H,çóáÿŽKˆ‚ên¿¿{àêÇ_}û—Ïnž›x$ç­sCÛ(¸¿¿¿ÏGÃÃ6ù´Ç5A?›ÅbÁ%Ôtw\_®™@HÉðºÊ|õõo;Úçsùú`Ÿ6)K“(c±ìöà„­¦kÃ©ë‘Øò:�fTÎÕ/ê\eEÅuÆW×û|þá±±Mge1Fìö4;n«Ù28•€YÜBRJqÇ…ññ£p/C ø]4U0a·Û±`eM ,þ2ü] Èá^GqRñß.¬<Zß›ðù†N œîª* PÈ{VüæärH¨@æ­œ£ý¾”ÞWV®¼WïØ±c°ÿ›§O¿YSÅà¡XÞêʃ-æÆµ—W¯á •Óß›ò›?Œ¯\9~ÿþýñGcƒ]§ºª,Š™VŸl1›-'V¿ôá¾'½�¼ÿþšÛ·oÿööOǨ©²ð°`ˉàþÕ‰k!ð$¡»úç¿ó5Ô—·ëÃU·nUSI žÙf3÷œDžtU¿vçÏ_?üä«í“æj§­:à4¡„-“…¢¼yšÐE¿vçáC¸´ÈaTfŽpX3b¶£Žy*ÐM¿öÑÇÓN„ƒ5ÂIs HgæŠæ#OéÓò f\\œ,5:‚†:o6›Í?œ¢¦_˜™Éäó ˆB»ïô´Ü}Zzî‰Ì8¾ Š5C¾¹¥åSäÇj`ƒ3µzç`…Ív0fàò¥à„_Ã*ˆrÒ°“ÈZLÑ܉ÄX¿„à ÎÖÖ�°4¬�$öº¤hö@ ­˜C@��U ±w�@#< œ�à´g¨ËˆB¡0566ž"”•°<ðl� �(ò‚î8ië„P‰çÙòÐAgs³Û'&‰|Ä@M'‘…T¾ ÃyX~>ÎkAXŽ|æ0ᙑ…W3|ˆÄ‡‹�*0 w.p@'“a¨q1 Dµq¶…ÇIrw­x1+ ˆkÅo¸œ4Š¡~·ˆôb‰äg ¾£T/nxiáó›D¥$Œ¿ðLz²`~ÚሉÈO%Ÿ `IαQ-1?#¨ýã¼€c-[Nê<€£Ò±ˆxëlÀí>¦%rˆÙ£ï„xì%j²N{6†ëáñÏRQX[Zº±4€JI}ã®h:fa¤p·¾TéE¨(†_@‘øF’,Ì#ÿ`ý'‘^FÔˆ����IEND®B`‚IMAGE 3801 ./arch/monster/dragon/Electric/elec_dr.x12 ‰PNG  ��� IHDR���@���`���­Åtè�� IDATxÚíÜýkÝåÇqÿŒâ¬4뺑I:bMÝAëêQ«;tD|Š£>ćÉÙÖ–C·ÉÙìPª‹RX&ÝÈÔ¡GV!?ÉÜaˆÐ &nè(¢[˜C˜?ôþxï¼îôJ¿'i’“š†3O¾ðáû==9Ÿ÷}]×}Ý÷7é%ÇÆ±qlÇÆÑýG£<žzÌlçæoüN¢ó½Vl¤ó©«ÍÓ—…0rç´ÐøÞ{^K»÷¾’¾´ÿ÷Yûï;Ù}Š/Ä|�¸íšFºê²»ÒÞ«žNÕߥݕ×Så+I•ûN§=ßz€6ã®» @ct"l$ͯ&*GÓP=õ÷O/¥»ßa€® ù»v}3›?|󑬽R~¾ÓhØqÅciÛ–eCƒÓ@ùÞ·Òpõ éÐ}�˜.úæÂ|±kËþtýÖ[ÓÞÏx­`¾�—n®åóÀÕ¿J;v¿’®ùSPýMw¨•y”ËÛjÙôíC/¦Ã×?•*7>‘nØ|H>Ðf¾£è¯g}ÛÆÓÀî—R©ò‡ àî^í.�#¥*óÙ¬üeþ/¾˜*{_HWnþi*]z¨mô;I¡Ÿ!\V‹T0 d�û}-=<2Ñ=�Ê›j©ü©#Ìýl¾Vjæ ~å¶g2€;~´ª ì# @è7å]wBþw€Jÿh*oj¤©G¾—¾|ÅISWD@~¼µïy�V]�0ê��Û¯;–óÿk‡^í�æß±TOSÕz�Ò@ŽŠˆ¬í­QëÃ}éH¹Q@�ìÜ—S«;�0?Ø?ž*ýSa>Ÿ‡ZÏ•úkihKƒD@ÈŽÂKÿSÔf¾oh,m¿áyÀü…(—j‰Öbô™ìË)°gë3Ìgí<œÚr4(÷×;à„?�!Ñ�€4�A#TmœZ=„R_¥²£kb>�0Ožg¾Ü?Ö ÕƒF\øƒ`v˜/‚�`øòÏŸ$ ÌÓ|¨¯² W-ó1úka¾žGv||,yþÚÖsfO©o_ÚùÙƒE�F¿£(=FùP�(B³Ag�£Jy,UJuæ× �ãÅç˜Öð\±ùú¹s+ô·^þ$�Ôq€œó O2DpóÁ§BæK¥¦Ü±Ñ5à @LƒÒÊÈ3ÚV�Ð(uªà�Þr�†îþmzüé¿€eF~tªõ›©¯¯‘6mªµÎ£ÆC(Ž<ãµÊDr.á~BÕo‹€Z¥ÙQøGäèŠæ#÷C" Šà²æË•éÔ_žb~^}rw f¦id¤šÔ—ø¹ 3R':L�ô ‹�„<ÞñÕ¼)B�XlžFj§²ùRIŒ‹‚К¤óõÑs_àŽ}Ïù’F¤�3y6h w¼ �Ìm! óŸ–Žæ£Ia>Rà\¨¦aí+?Ÿæõïf»;öh¹oú”ÿÖ¦¾�ÆÁÝõÀéÜ¶ØØ©T©O§ 1]óÀ×¼­kÖç¶Œ*†…Í•»JŸaÝŠ¦Ç”„³Õ yÞL°,€ÊÈ)²ùÁÁÚYóc¡5ƒ Ý|ùƒ“ÂW�  °âÏ%#×üÒgXó3Ÿ ï©ýC¨Ó<€;ýkªŽ½“FÂò�Áv�Œ‡k`t€­+!¬ø ;DF¿ñð¯“÷Õüqª4²v)Æ †!ö¯7O K@ˆ¨4�Ãâ\4”›i¸ÔHk @Õ7%ÖöM̯�BÆ„s"EAÌËyfC Øs}oãÝÔ˜œIã/¿—Æ'O3¿€}õ›®=dÙ¨‚* Î�¸v޹ÕÒÕ{?[T�(^¹ˆm=lù›e‡8¶»õ¦ÅbH¯•KÏÆæ§ÑãΤøåóÈão§úä,�ŠàÒá¯*û bí\*= �°žï€‘;LøÜ� ü™Ïp`ÿÜ´)Îê0€xNþïš+€öþíüŠ‚�pëþ�òuu|&Õš3K›�  æQg¦)` �-gœ–‚P=‘Ê�öôAà y€çEóŒ“Ud�°÷/ÜÃüíO|0 öó÷™—ÿÐ0Dï×öÕ€³4!�|áEZ¯Žµ™'Ïßã6˜r¸ Š›9ÞsŒûnaÜöY˜wVß.€•ÍÄÈGã‰ù]× �®—¼1éPÍíõ[õ§¶Ûn9âß¶`”y’Œ’©Î®‘kãýòÞ¡Ç·ÿN®côÉu1V€ñèžâ±hˆÇ¶š0"•ÒCKå~˜—·Exû· ‘š€Øæ¨ÇLÛ%&Â|€‘g0r¾`ôØbЬþzä‘–eÞ|êlz1wR<€˜0’ ;7ÅŒqg)ÅËû˜yhÏóäÚȶú¶Ê2€]'�8Ÿùq £Lå5 >`y�‡Ž¼îa^÷DÑ8´=Žºà‹#L@Ðý7ÿ$¾rûC �À¬enKSÎ@ÎGø!¼€­r?«Í¼ÜöL“ W'ΤZKcÍ3©züƒÕ&¹gn¼ ÓÂ݇P´˜"@!ÌG9ä1óä:F_Cù·>‡q�DB›yU_èW3­ï< �­<ŸMõgþêÍ9�–¼ÎÓ²)À|}âTŸñæÜ4Üó³whuæã9� ˆ„…fÉ’7®‹Ï�B^¬@�9Ä<³Œ1ÌXä8óæ,óóª›é �ó*%sÎÕ‰f©ÀuÈ!„@p5äVWŽç–{Fßt× R ÞÇ|Œ<æ6ÊßµqšùlxbêLš<5›ÏÇu~͹ð�V  êÍÙ¥�(’»ö¡ž']Xˆù%e®(%��˜†Çë¶»å<ó1úaÞ÷>úìû¹Åmžb~Àät†�Ô·å0ã™d‹\­9+�`–‚ !hDQZ�ƒ��!BäŒ~„;ù.R÷ØÉeóSodó­óG­óG�H ¾Üè �šS³¢@ˆ°·‰�tíËxm ÖêŒãvnœ™/°»)`j@ø[8ù XáMLÏfãÓ�ÌŸÏ�t6úò¶-}°4@ØZ@1‹½ÅcáŠ!�Xh1Oz2š!Ô£o¼kß-˜šIÍ „ÿ,("C ¼2€€`´œ­“Ç&gÈ0,÷™Qý}ÆUa2ß‚`tÈ{üÐ(”¤i ×""ng3*ö�¸µÍ4,æ –ÂÇÜRZ�*>„D‘ F–IéA¹ñhÒ,æ#\Í×®ukÒ‚y@äµkÑ „ùè˜× ™=2€o<úzîV¿{äÏÌ3µ¢1¯w Ày!�!f)© �•X‡å9MGc²5ßÎId0��)ÖŠ�‘)QIí,€44úa¾ã͘¨Õ §E#KN­g�‰‘Á(Eº˜]H4Åó‘"RK˜m¦C±=fÙ �©æbæ‚„jËX,.@p®ŸÀÈ3æ½bÄcÚ,B ]š°VáPðä~›y‘yðëSޓϪ/3ëw�ÀœbÇÐŒ4Κ'€(�x/)’ 0æ©Ö8md”¦>�ÈkŠÚȤÈæG‡Ÿ³Œ¶VÈ�õÆ‚s=]T 1@}üƒ4&ìO~*ÂPCm5€˜–ËF_A‹(Ð"‹‚�`% @½:æI‹<o¼!6v/�æ‹�Æ'?$ Çœ¦iÊØôG¡³pf#üCm£ïDA¤�ãõý'Û�H ›¦LDᢧ‚yXSRÓgŸIÍÉ–¦Û5A­VÔyüåÿ*Ž�(¦ (bRÅ,¢¨‘B‚pöÝ!ƒéXLE˜¹i9þý×Z×ë@È‚ðØSïe�'¦è,€©Yg½9�Œ.RL»±lfŒñbÄ/N�á}ÞcÓEŸ` mI]¿}ʱn�ÓW�`:41'£lê<ï—²“¬÷×çmcÓIý��îI…ûn}2N„?(ä¨ì*©ë:#ˆ‚�`Í­'¦C+Ý€b-�„u¿�š!#{Ì›"#=H£€Ö‚*‚…Ój;-f#˜·*ô|,ˆìÀ(�aðÀÿˆ1SPáÆÌú0})\Ô•ÉgâGl±{a‘ÀœX˜Û`ˆ (kjn=úk‡â�b½��2úÅüƒa©`pûlm­}mn>_‡3€ýÒ ÇG”ûT4ïuæÉ½Å®P4ï¼ðZ�ð{Â9 ]À=W?T¬ð^“ó"„´Ç^ëþƒy_ÜèEQ+D*�ú�8s\z€ŸåµîP�`!RH™7ÿk„Š�¤Àù�xŸÕýæ£é YÜ0®Ç×Éidâž¡�ž“f‚…5�¸ß‹ž®ý�̓宛¡q î0  �þÿ¦‹<^gVDg†õÿ®# â7BÀ'ö0Íá @äzD�H¡g@@æû^ *Œ¼Ô�Bÿßs�ÅâtØs�´É"€y2íõvxÜS�ìñY-Æq,{ ‚îЦ‰?Ÿó7Ä&3‚sÏ@¸ek�)à×èuŽ Ο|‘“̃À|È/^Š„ÞéêÃM­1�T ŽH Þ�!ô-¤Œ>�V†š¦Kzí°…‚H� §¢ �ü5I,£=€¢[칈ÝeÓ£Zàq/ˆ?µëÝPâ^B×-hèbð;Æzƒ®3NëF?Š`W™' ¹¶¦(KœWsøŸ#Ü.÷‹Š`—GÀb8þš,®m~Ø]ȨÆYçç^‚3)| Ä/Yt妭ðºnÎÙ_‹¹qâq±ÕõXˆGÿïly̼߸`ó] Ì ÆãOg<f*ÞQºdãØ86ŽsüÏãÜå«X²����IEND®B`‚IMAGE 4287 ./arch/monster/dragon/Electric/elec_dr_spellcasting.x11 ‰PNG  ��� IHDR���@���`���­Åtè��†IDATxÚíœûs”ÕÇù+:*„& Ê $!% & DØFªa¸mFX”Ëxy©¬Ì¢WD‰·ÁõV2ct"j›¶Ž-u¦^:êP«•©kfêü -Óåéû9É·¾KH6 ˆ«É;óóî…w÷û9ÏsÎsλaÌè1zŒ£Çè1zŒßëcAñM†N÷Z¸8a§Ó÷ÂØ]‘,Iõù²<w: +6Ø©Æë®yݪë^µKåÔ¸²C,§ ·T?h<Fz}ç¼}îõþ�,­HØÌqWZÝÌG­>úŠUGß´èeïXtåQ«½ñ]�dÏ)÷,8`l½ßR·uØM‘]¶½zÁHý]#ZØbe!ÏB¡ýVXø¢•W¿ „¾�rñØZ±Ó¶]rŸ]Yuƒ5Wßj«fm6žß5ÿ!k™¿ßv*8J§î²Iù ä ”w9�‘kß³úØÛ¤Cîðj“«ô¬.´Ê¢5ÛŽ{-Vu“ݼ¨Å6ÏßaKg¬·5³<»5ÒjÙÆ¸ /îÚÂYOXiõ«VÙð†mz)÷�¬ºäF[:s£E&Ý`u“cÖ8³ÅÖ×<l±êí¶xòj«œp¥Õ†lYx­É¸Ôo„<¡`RÊ «_´pô·ÀU«_Ë=�µy­jÜmV5ÖŸÊ&ï°ë+öÚ mùÂý¶`Úí{µU¯·µ¥©€ñ~S�„¾ƒ0.®T`p�oyÝšÚr@Õôí¶èâf«þÑvû¼VžßfËÊž³æðÓ¶~ö3¶ø²C6sÂ>+=ïûYÑf»}înk­=u ì@1åÍ}–üÏ�Õ%÷Ù¬é~O×¶Ú+ë¶Xzå.‹„^´¥³Ø–êÇlýœCV7ïe+žðUŽÝl·TÝo yÚl�èu� �ÍÝãòÿêM¯}÷�æ”´ZEQÊJ§ìµyS~i몞¶5•í²¢lIÉ~»|f«-*|ÂÊ/<dßk5yëlÙÔ­¶/úHÖiP)@î+ �Ê?gѺ§¾;�áâÝ.NÚœ’Ý6=ô€•Œoµšóï²HÁA»|F»ÕM{Á¡6{šg%ùw[ɸ”¿ÝÂãVø±Íîžÿ oþÍç‡ö¡ óeI+š÷$€ùሄㆆk•µXÑ„m¦çç½×úQ° ô´-šÚa¥3n¶™S~neù;}í°9?ÞjWL¹Ñ¶D÷ZÖÏÅ �HD�H ¸B(–82tႨEŠ›†:3§%­$”´æuûLÏÝùÊ ;üÁWNÏÿÕ,â¿^XµÁŸãV’w¿ Å"ã6Ù’©wdý\Àðø)ˆJ ˜wRlð†8ÔG¾yõþ™‡>0;ôþWöÖ?¿¶_|Ò’¿7wÍŸÌñ¬*ÿj ,¶ò‹6š�ÌËÛ”½V o¡×1/ @p d6È@ …h$iѰgà ÿm¿3ó~cvø#³7?3ûÃ''í¹÷OÚ7̼Õcþ’›ü|_jSòªÝBfªŸ¿Çß �”Õx�9/ó@…¥÷bÀ¥3j)N»\j²3Éÿ¶wÌ:þrÒ<ò_k8øo‹ÜšÓ_[‡SQ²ÁÂyK­Ô7Žy4I�0\¨NÍ«1��o �eW½l÷<ú¾� ÐóMþ?L[AAÂÎ;/î·MC†ðn÷Ikyõ?ÆùÜ_|ikŸÿÊG§¬¶šV=y¥Õ®ôS ÑÂlʈ€x4=¨ðÿä<4¯Ü—ˆ€A™D»,ét楂§(8ãcÅ•»m㇬®b“-(_g³g܉agBŠ„¼A§��ŠÎ‹÷ ñ¸ô§nSÐ×<jˆqæÃa" EHg @åÔF»bQ³-_¾Õ–/~‚/I¯#R�3n6HÔg5¯@�0Koò*€0Oø£þ£@«¤Hq óJ@0šž—ÍYoÞê¶žT˜¿›ëÊ<õ;3»;ì  ?é“ü/™ôSŸ�ȸƒ[µúè›m±ä‹z]–e�D˜ödþ èú­6¯¤é›b¨â°JW§‹ó›z¶µ ×d5¯ã¬û%=Ly€ e5ˆxž™`@�ц#@pæ‹‹ã½æ“ÒYKÒ/_^ÜNø�`@@ÖÏ J*á¬ù1ï ׯ?&Ô`Å-¶XòCkJ8`Ì”€qö�49�l] ~.ü#®q½Ÿh~Æ}N|Í‹7$œN­þ*‹“�Â0Æ }@ZgÜKE�é‚" š� Ä7ÑI[}8ag€+§¯²øâ6óê{ÆBŒ ­"…Â<9Y l‡q~mâ#K´³ÔáO,Õ~ó}°¯¾ rËFFPZ�pîZÍ­ìÀòÞ3À�¼Ü 6q‹ÕL\â”hj3mwS0-£€áµHøqm~Òû2. ~®m¸çóÚ»À Øø3*s¡` Mö?H �Àà3X�ê¹¾ÐÆu€ðǼ‹€ )ÓV7S\Y~B@|ò¿¶,@öþÙùuQ �K¶ý]�Üy,uÌâéc˜ÏV¾$�šGi1ò�pÈ8êB¬éY‹�°§Ò�8ty�ž' 0qÄZ�Øû'Üe~ÙîÏM�â}Šyòp�(T;ëœ}5 %M�øÂ}¶»cÉ óˆç‚ïá60Éá � nÌñ<‡q¾›ŒsçGæuãcEìƒ �I�²›PÏ«pÐc„ùªŠàœ\ì÷ÂŒæ[.ÝÉR7cj[ºp'ÿ6�F1HŒ"¦:6L9ô¾Ÿ¼çΡ¿|ëßçê}$�J¡À¸ª'=&ô˜­f�Ð#Ñð†¡þr_æÉ[A!¼ù·BŒ)� ÞR³ÇÎt<œF@ù �zƒÊù �M{þ¥€ {øS#7øÂ(æ™Oi™^˜;‘�a‚žB°rc0Ã8-)¢Á‹÷aæºÚ'çôl�B¿vâc=�ªžÀé̫ǑŒb:(^£¤�‹ƒM;ßä2Oõ„T8k\à‹ =œQﺴÕ.)º�À,Ë\_´@Î+üA ðš°zös|V†yrŸ°Ç4Â$†cmÇ-î+™>n±ýŸ �aâjæÄ{’Lî\©Ä$ˆÆ‚Ì{Yâ1æçê} @!þ-×Á8�ˆ„ óŒú„~,qÌbÉn�8±T·y}f^º@¯ãiÀÀ¼×ö¡ÅSÇx³+®yà#P¯c^Ï9JEBõBY´|ñAZIÏ!�ò”ÁB� �YÂ<f1†aŒ)Ç1ï›îvæ%oϱÁÀ<#%æhcmÇA�œK\8‚ZÍüXA†õœ`•…\ï3Ýe�P è}˜WÏc˜© ¹ïš8Šyg¸­ó¸µéví~*¿´‹�Þ#�‡? ¼tw�$yÌ9ÕàH&a¾_±?•%��`^¯³ÝMÎc^½/ó|ï–Ç?u%núæ{�´w9Àø60�ÌðFGÒ'Ow“ �Pî  („@!‚€@THY`PQ �� ˆò_½¯p×Ò–ÔÝÓñg¾ómgÞoOøí �øâ~Àà�@³­³›(`Pس‰ �WrΗ� µ:FÆÙ¹¡Å|�»;Jª?�þÜÛç{ôÀ ¯­«Ûïr�Ô�ÜÈ—gÛ˜å"& Ìõ ŠÁZé1á+AA�XhaQ3 ¦CfÆzŸN’yÎùn@ç1K;½òÏBdPg ô-ëä¤aÄ0Lîc†Ñߥ€3Þ˜o 9™÷ð¡(E‹@ ºy)X�€[Û˜Ftæé,>Ìõ§¡@Áç�Á!¥=‹IÒ¹Â#º€d^áÊ|Í9Õi¡.‘ל Œ2¯z�óHÌÀú[ÞtÕêÍ;ÿ„yLe5Æëƒ@{*�BŒ¥$¢�0SañœGÁÑ~ܼ^˜�€Ç Pd�1@jD”Ñ´¤‚�†ô¾Ìä�5ôÁi‘žÓ’“ÒS�$"ÈP:(]˜]Ѥç•"¤aNocZÒöËf� Fóá˜6�AˆùÆ´¸Ð"$ž:�zã2¯…ˆz\Óf¢J#¬áÀ€Gîg˜'27^ßÉ{\»!ö®™áÀƒ†ˆ�Š‘D¯y $�¼1H*€€i™GñÄQzƒ¤S�àÖñ†v"À™oª?È2šµ‚ð§´ž}«0„q�x©Ï-IØw|!a00Jc�Â4¹Lï3 ) (‘‰`% �/Ö.óÈ•È2„ Ýo �æƒ�Rí_ Žu¡(É®R/œn…¿”Ñû´‚@(0î5vd� -Ø4Å4€ |ë©À<LQâ%©³[ºÝWW¦Ú_ŠÒ¦Ù;KP]: b¤ ³ƒb áN¸½AöýµS­Å”"@`\„ø@ößþº~Ž�²@صïàÙNÔ  ³›–Ú�í#M»Z6c ãÁÀ<÷Áûx›.Ô ,¡YR{ËÚ€\Dœ³�L_€i©­Wô2Sçé®ÁNrOퟢ·1¨ OLR�€»C.V.¹×]Gá´¼p;»JŒçÄ|0 €57µ8ÂtÖêLF�€´�ë~zX�(†èYí5bž)Ré(”èœB` §¡VZ˜U`žU!ÏkAÄîî�@74?lŠíêÆÌ¹ÀôÅÀ5¬ªŒ|‚nph‹×0L$`Ž85·AI@9Çöϼ¾æ`ð�­÷�@ºEvjxc˜T`hàêwyd b¥o…¦€ýD)¬Ö�¨íõ y^Ç<âÞbNš§=õš�ð»�ÂYÀÚY×™Fx½FΫ& <“ë‡ÌóÅé= jÁú� UŽ+=€¢k鵜=�,d$RÌ3ÿS§Às@ÄÜ6¯¢Gbqƒqj|*9 Ý3$¤€ç\„â}v©�ÀýF-zr>ô%�( 0Xîr3T÷�t‡�D@�À÷ïÐà'ãÁõ:f‰ÂÃÔÿœ+ ô‹øÁLsÀ €r]�$A1@€@T0ß4�D=Oj�‚úÄ`P N‡#�e2€yÄ´7²£€Ç# �{|¬µC¬¥ñˆ‚@uȦ >Wwá5LÌ´#ĉ �üŒžÊQÑ@ûÑhèÀ<0/ñÃKEÄȈ¯>Miì$� EkC$ ‘‚Ðg!E!EÓ˜‘v°…"�#* t�€¿& þP{Ä@ªG\hw™é‘±€Ç#€þÔnäF�ã€î%äÜ‚}Û�ø1µAÎGç"è} ‚9eQ¸ ÎYÓ J­ŽAþÏÜ.ç‡ ‚9}áð×d:góƒMÑ>€èUµT~ÜK E |@Ð,rrSey]*Ï_‹qã„ÇÁR—Ç„¸êZ–ǘç·Ã6Ÿ³À¸a‚qýé 1 ¼£4fô=F39þWJÉÐWA#����IEND®B`‚IMAGE 4400 ./arch/monster/dragon/Electric/elec_dr_spellcasting.x12 ‰PNG  ��� IHDR���@���`���­Åtè��÷IDATxÚíœûsTåÇý+:ZuÁD’` Ѱ@„m¤ÊÅh£4Ê¢€;àå(RY1˜).E×+éˆZ£µV´S´u(õÂhkÍLýÎØ–^§çó._=K²Ù*®&gæ;çì%›ý~ÞçyÞç}Oà”Ácð<Ácð<¾ÕÇôÒ õôZ¸4a=é[aìŽÈfKDRݾ,Ïõ¡~þR;Öxíå¯Zuí v~Ã/œ´ ‚´áæê{ÇH¯¯ºÅ½ž ÀœÊ„r‰ÕŽ{Àê¢Ï[ut¯E/üE쳚ëÞ@–ñ‚‚p×ôí†Á–‰[-uK»ÝYg««7ZŒ”ë3¢ÅÍVò,ÚjÅÅÏØøê·Ð@!++×Úªóï¶Kª®µ¦ê›má„ëç×MÛfÍÓ¶ÚZEC/Gù˜u6jx9¥@äŠw¬.öéPx�¼š¤Å&{VZhÑ3›lÍôM«ºÁnœÙl×O[csÆ.±+'xvs¤ÅòÕøþи;OxÈÊ«_°Éõo8�ÑÆg ÀÂó¯³9ã–YdÔµV{vÌÆ5Û’)÷Y¬zµÍ:{‘Mq‰Õ„êmnø“q)g„<¡hTÊŠ«Ÿ±pôeàÒE¯€š¡Ë¬jÈ-Vuº?•½Æ®®Üd×Vî´y3¶Úôsnµðé—YÕ°:»¦Ü#0ž3�@è;CâJf á¦W­©¾µ0�T»ÚfžÕdÕß»ÝnºÆÆoµ¹OXSøQ[2ñ1›uá.7b‹•Ÿz­ý¤äz»õ¼õÖR³=o ì@1å÷8ù_8�ªËî¶ çú#]ÓbÏ/^aéë,zÆæLÜn+ªwØ’I»¬vêsV:b›M>ýz»©êSÈs΀Q�@Éy]þ_¶ü•oÀ¤²«,IYùèM6uô“¶¸êQ»ròN»°äi›]¶Õ.×b3‹²ñgì²³†m²)CÛÜ1+mKôþ¼Ó R€ÜW �ŒŸõ„Ekùæ�„K×û(i“ÊÖÛ¹¡ÍV6¬Å¦œv‡EŠvÚEcÛ¬öœ§-ÚnÏñ¬løV6$e%§­¶ðù~D¬²;§Ýë›ßÜ«ùá¡-(Ë|QEÒJ¦>L`¾ÿ�"ḡþšGãKš­dÄ*ÓóÓNß`3ü(˜zÔfŽi·ò±7Ú¸Ñ?µŠák}­±I?Xi¾ÎVD7YÞߊþ�ˆ�@pP,±çø!„‹¢)mìwèŒ;'ie¡¤5-ÞbzîöçÙîý‡žú£YĽ¸j©?Æ­lè=>€f‹ Yn³ÇܦŸÉ �ÃÃF·#:A€`ÞIQ°Ô;Î:PMøæ5ú'vìÚo¶ëÝÃöæ_¾°?<bÉ_›ñü'yV5ü2 Ͳñg.3˜:tyþX)Pº‚QǼ$�ÁBÈl€ ÑHÒ¢aÏúþ«~iæ½d¶û}³½Ÿš½öñ{âÝ#¶ý ³íofÌŸ?v¹ŸïslôÐj·ãçïÈa�€ò çež¨¸|æá�\°¬/S¡–’á´ûáÒP£Hþ·þάýGìÞ=ÿ¶úÿ°È=‡¬)ý…%|8•eK-<tŽ•ûÆ1F �æÃ} Õ1C§�€×€ŠKŸ³»xW�zùÆÿÓVT”°SOûçFŒã‚ðä>³·»ŽXó ÿ4Ÿ÷³¿Û5Ov×ÑÑ‹lÊØ«>{M)^à§@ƒ…¿¿<+âÑtŸÂÿËÈ)z8h^¹/½A™D;-ép楢×ç(X¼ë=¶÷¿ö«÷ÌVíþw·Ÿ™Éz[6c›ÕV.·éãÛı·cØ™"!¯Ï)�€’SãÝ�H<.ÿ‘Û‚�t7êã{œùp˜HRN�«;Éi_{¿°–_¶_ÿÙì-¿²¯Ûe=¾ò˜»xf“Í›·ÒæÍzˆ/ɨ#R�3n6HÔå5¯@�0Ëhòj€0Oø£ÜQ UR¤4…y¥@ ¨¦Ù~¼ío¶ñ¥٣ò‘Ù‹|a›cvÛ+f¾n6ýŽž\8i‰y‹Z3©0m=Ÿ+óôïÌìî°7€z…ÀôIþ—ÚÁÔ'�2îàV-z}µ-–ÜcQ¯Óò@„iOæ»ørßOeÿ­h?d3vü×w˜mxÍrlR¶ØÔ²Æ¯š¡ÊÝj]ÎÞ˜ÙÖ*¾2¯y ŸÁº_RÓÔάÏ3ô Z¿Î|iiü¨ù¤”á®—ÿc×ýüP¿fÒ/?¾´ð% �@A@ÞÏ$Jê+ïç3XócÞ®‰H¨; Àü›~o±ä{Ö˜pz@Ì”QpâG}c�[W„0ÅðŒ¸Ü~¢é1ã}ñ+×X¼>átl÷7¹4‰q� cÚäìŒ{é} 9 (¢iÀ°@ ÌãHÚê ûpíï¹ ->«Õ¼ºL b\ 8ë R(€DæÉyÌJ@`;Œë+ï[¢í€¥vl©¶}˜ï€}õé“—³l¤‚R@8€kwÖÜÊ,ï=�lQ€âåŠØÈ6eäl§Dc«i»›þ€i1¤¯EÂjó“Ñ—qA ø¹sý]ûÍkë�E0wøS•ù `Í9ìÿ"��ŧ¯�¹ž# •Ï�Âó.–6¤L[ÝLqÃâà“ÿ5™ÈÞ?;¿D�Ì^õ‘�¸ëXê€ÅÓ0Ÿ¯ |V�4rÆ4 ÈÀ©7ã(„Xãã �`O¤p ò�<O`ãˆ%´�°÷O¸ËüÜõŸ™�Ä·}‚yò¿o�hÔ;ëš}5àLš �ð…»mwÇ’YæÏßÃm*`’ÃA�*nÌñ<‡q¾›ŒsçGæuãc~l€$�ùÍhäÕ8è1Â|Ue³�póÆ$Õ|ÅkYêfMmsf¬åg³�`óˆ4À(bªcÔëÈÑ÷“÷Üù!ôç­ü�q­ÑG 8>�W÷¤ÇDƒ³Õ �F$¾Í0”+÷ež¼›ŸÅ¢¦�€xÅ”-<v¦ãá4‚Ì0òTÎghÜøWÍ�ô�ùß¹ÞF1Ï|ʙ酹é1�&I ;7ŠÆ9“"*^¼3WÕ<Œ¸fd³�ú5#wd�T=€žÌkÄ‘Œb:(^£¤è�‹ƒåk÷òF™§{Bj‚Uøb‚Àgõð /hq†ËJ®�0Ë2×Wg çþ€ xÍX4ñ ~W–yrŸ°Ç4Â$†c­-î+™>h±­Ÿ�ÂÄõ̉w$™&Üù¤“ )Œ˜޲ÄcÌ#®5ú44€Bü,Ÿƒq� Yæ©ú„~,qÀbÉ.�8±T—y;>5/ðÅëxR ä4ïµ¾gñÔÞ욆Ë7¿/�uÌë9Ai H££dÍ›µS×Áç�yÚ`!�€€,a³Ã0Æ”ã˜÷Mw9ó’·ñ@ß�`žJ‰9αÖŠ‚ �®%>8 ‚Κ)øcÖs‚Ur£Ït—@) ÷a^#a¦6ä¾kbæáÖŽƒÖ¶§Ë·Òù¥3À{�7ü᥻r Hò˜k>TÅ‘.LÂ|N±?%��`^ ¯³ÝMÎc^£/ó|ïæ?q-nzæ3�Ú:  ¾õ�3¼Ñ‘ôÉÅÓ]¤�”û‚À/ B A@ *¤¼�0¨(P��Dù¯ÑW¸kiKênlÿ“3ßñ–3ïŸùçC� %ðÅý€¾€fkGQ@Pس‰ �WrÍ—� µ:FÆÙ¹ÑÌ �vw”t� ü¹·Ï÷è€^kg—3Þé�è|0� oS _žmc–‹|0i�a~QN�ÁP ö H _A ÀB óˆž12CPC}Iæ¹æ»9�,í • "ƒ8/�A`´8³NNúŒø� “û˜¡úó2Æ»ó-4'ó~© %¢i¤k"B·³1/û�pkÓˆÁÂ<ƒEáÃ\.�|ü"¤T`d1Iz ×x¤QÌ+\™¯¹¦[#-0òšk¢Z óê0OƒÄìá�,¹i¯ëVo\û[Ìc*¯1^ï3�]b,%)ˆ@%¦Ãâ9†£í y˜�€k…@(2€€(*‚ˆ6š3© �¤!£/ó}ÞŒÉ *ÿ„¬i‘‘Ó’“ÖS�$"ÈP:(]˜]Ѥç•"¤aÎhcZÒöËf� ªyÌô€ Ä|cZ\hOt�¼Œq™×BD#®i3Ñ¥ÖTx�PðÈý,óD沫;x;/=‚úk¦ÿ�0G±Ã@3’8j �ïEIE0-ó(žØÇÈb4`ê�Üš"^ßF8óu;YF³Vp�^☳g_+ a�^ê3KöíŸKAF)« L“ËŒ>MQ@‹L�+I�x±6™G®E–ñ mì~m�0jûÑpdÔ‰2P’‡¤£pºþRÖès¢@)€q¯¡= �iÁ¦)¦„ákOæaš/IŸ}ÐÒm¾:³ÕŠüV”sj÷ß)Ž�é  ©Â,BQCB îD{ƒìûk§Z‹)E€À¸ñl½õUÿú$ d°nËÇÀãè(€Ž.Îôæ�Àh7iÚÕ²cF�æ¹GÞÇ{Øt¡O` Í’Ú›Ûä"â¤D�0} �¦¥ÖŒe¦Î¿;É™Þ?ÅhcPž˜¤��w‡\*,˜½Á}ŽÂ(h^ñjv•¨'Å|0 €57½8ÂtÞîLF�€´�ë~FX�h†Yí5bž)Réh”è¤B Š…ÓñvZ˜U`žU!ÏkAÄîî�@—6ÝgŠíêÆÌÉÀôEáêWWF>A78´ÅÎk&0G ›ÛÀ ‚$ œdû'Þ_sPü@ë}�n‘Þ&˜ê¹úMù¨YéÞ¡i`ÿÑ k„U�µ½4Ïë˜GÜ[,h�A󜽅&�ü]�á¬B§X3á*S…×kä¼zÚãS ýy¾8£§¢,ˆ(€Ð�gå¸Ò(ú,½V°‡" �€…ŒD!Å<ó?P�)Ð�ž‚ ¶y5=‹ŒÓãÓÉÑÈèž!!-�<çÒ ï¶K�î7jÑSð¡/@Q€yÄr—›¡º ;Ì� �¾}‡ŠŸŒ«‚ëuÌ„3†éÿ¹Vè/Bà;{0̓3�”ëŠ� €9�¢‚ù~  *yRôÿ�E188�´ÉD�æÓÞÀŽ(�ìñ±ZÔ±–Æ Ý!›&üó¹Ú3.§abFà<p@Ì™��)ÀŸÑÓ9*8÷A$êÛ1ÌKüá¥"b`DƒW—¦5v€ú’k€C$ ‚Ðg!Å耕!MÓ)í` D�Tè��ÿšDËhŽ�©[p Ýe¦Gj"�ýS»ÔÝK(¸ úºð7ÆôgŒ`ôU Ê<¢qA\³¦”\g}üŸ#¸]ÎRP 4rÃá_“éšÍ6E»bTu¦óã^gDá‚þÈ¢ 75P¾×õOåù×bÜ8áq°Õå1!®þŸ3ËcÌW„¼~›/X`Ü0Á¸þé 1 ¼£tÊà1x 'rüêL±™è^oM����IEND®B`‚IMAGE 4437 ./arch/monster/dragon/Electric/elec_dr_spellcasting.x13 ‰PNG  ��� IHDR���@���`���­Åtè��IDATxÚíœûsTåÇý+:¶\J TH – DØÚ†r1ÚXeQ.; öT¤²Ò`JqA´èàŠ(é42)j–ZÑN©í¨CQ[Z{ËLýÎôB/ÂÓóy×o{–d³!\›œ™ïœ³—löûyŸçyŸ÷=«Ácð<ÁcðøHsJï4ÔÓkáÒ„õ¤„±û#»,Iuû²<ׄú¥«íBãµ7½dÕµÏÙµ ßsjXÖ.VІ›«2#½¾eÖn÷z.�‹*6ièõV;é[V}Öª£',:ÿ§]vÒjîx�YÆ Âsö[¦î±ÔWÚíÎÈVÛT½Ã‚`¤\Ÿ-n¶Šg¡Ð+.>b“«_Bw�…xl¨Üb¯ýº]_u»5UÙ–OYg<¿uö^kž½Ç¶(z9ÊÇmµÑ#ÈA¨(ít�"_zÃêb¯‘…À«IZlºgµ¡åýt“mž³ÓbUwÚ]óšmÝìͶhâ*»yŠg_Ž´X¾: �Ÿwçâ)Zyõs6½þU ÚøÝ°üÚ;lѤ5}»ÕމYäf[5óa‹Uo²cVØô‘×[M¨Þ‡o3—rF@ÈsŠF§¬¸úˆ…£/:�7¬8Vx�j†­±ª¡_±ª!þT6f³ÝZ¹Ón¯<`Kæî±9ãï±ð­jxÝVî‘ Ï™ � ô„¡q¥³€Ðp÷KÖTßZ�ª&l²y×4YõÇî³{fm¶É#ZmqÅ“Ö>h«¦>a æ¶I#w[ùÕ·ÛKÖÙ=3¶YK;¼5€°W�!Ä”7ãù_8�ªË¾nS&ø#]ÓbÏ®\oée[-:b‹¦î³õÕûmÕ´ÃV;ë+¹×¦YgwW=h yÎù�0ê�@�(™±Ãåÿk}ø�¦•µXeIÊÊÇî´YcŸ²•Uíæél~ÉÓ¶°l}nR‹Í+~Ô&ê°]3|§Í¶ÒÛ`»£ßÌ; *È}EÀäOZ´öñ@¸t›_€’6­l›Mí²²á-6óã÷[¤è€}nb›ÕŽÚ¡}6u¼ge#¾feCSVòñMºÔˆöµÙùæwõj~Dh7Ê2_T‘´’Y˜ï?€H8n¨¿æÑä’f+¹Ñôüì!Ûm®sBmÞ¸v+Ÿx—MûU«±Å×f›öÉ öù±wØúèNËû;BqÂ�Ñ��Ò�®Š%Ž_<„pQÔ"¥ýIã“VJZÓÊݦçî{ö¬=õ¾ÓwÞ2‹ø¯W­ö§Ã¸• {ÐÐl‘¡kmá¸{õ3y`xøØvD'Ì;) V{Yê¢ ß¼FÿҎçÌ¿ù¾ýä÷çìù_ž·äÍxþ3Ó<«q£…‹ØäO¯1˜5lmþX)PºžQǼ$�ÁBÈl€ ÑHÒ¢aÏúþ¿oæ½`vô³0{ùÝóöä›çmß«fû~’1íĵ~¾/²±ÃªÝBfœŸ¿£†o�Êk<€œ—y âò현pÝš¾L…ZJ†Óî‡KCv)ùßúS³öŸŸ·‡ŽÿÃêüÕ"žµ¦ô9Køp*ËV[xØ"+÷c�̇ûªã†Í4��¯7�7<c|ëMèeä;üL[QQ®¾:îŸ0. ÂS'Í^ï:oÍÏýÍx<ã±Û¾ó¾»ŽŽ]a3'6Xõ˜e6³x™Ÿ þÄÚ¬ˆGÓ} ÿÿDNÑcAóÊ}‰è½Ê|$Úi¡H‡3/…¼>GÁÊÃgí‰ÿ²¼m¶ñè?ºýÌÒë·Ùš¹{­¶r­Í™¼Ò¦N¼Ã΄ y}N�”\ï@âqùgݦ »yT?î̇ÃD@Š(rØÔINû:qÎZ~ð¾ýð·f¯½e¶õ°õøþéãìóóšlÉ’ ¶dÁ£|IF‘˜q³A¢.¯yõ�€YF›W„yÂ厭’"¥)Ì+i@5͆ð…½²/üݾavì×fÏÿâœíú‘Ù½ÇÌyÅlÎý=˜?m•y+Z3©0{Ÿ+óôïÌìî°7€z…ÀôIþ—ÞÏÔ'�2îàV­xýw[,yÜ¢^§å)€ÓžÌdÏ㧨ìÿ´õígmîþÙʳí/[ŽMÊ›UÖøßf¨ò¨ZW§kF4f¶µŠoÎk^Æg°î—Ôô0å‚3«AÄó̽ˆÖ‚3_ZÿÀ|R‚›ÇS¯š=ðâ?íŽoŸí× Aºñå'—¶¾D�(ˆ�Èû™DI}å7ù Öü˜w†kâ¿$Ô`éÝ?³XòmkL8½ fHJŠÍã—tÔ7f�°uESüÿÈÈ›Üè'šž0Þ¿y³ÅëNvÓK“�Â0Æ }@Îθ—>‰�’‚" š� Ê<ޤ­.œøŸpíï„å_Ðj^]¦FP1.œu)@"óä<f% °Æõ—ïX¢í´¥Ž¾k©¶“˜ï€}õ9Óײl¤‚R@8€kwÖÜÊ,ï½�lQ€âåŠØ¨õ6sÔB§Dc«i»›þ€i1¤¯EÂhó“Ñ—qA ø¹sý§Ìkë�E0wøS•ù `Í9ìÿ"��ŧ¯�¹ž# •Ï�Âó.V7¤L[ÝLq#âà“ÿ5™ÈÞ?;¿D�,Üøkp×±Ôi‹§OË|Ïó8�X0€æQΘF‚y� ÞŒ£\b‡,�Àž>Hà0ä9�xž(À<ÆKh`ïŸp—ùÅÛÞ3ˆïýæÉè¾hyñW&�4 êu;š�p&M�øÂÝ>Ô‹%³Ì#ž ¾‡ÛTÀ$‡ƒ�Tܘãyã|7çÎÌëÆÇÒØ© �I�r›æ­sv$3 €F^ƒ#g¾ª²Y�¸Îyc’ƒj¾þº-,u³¦¶Es·ð³Y�0ŠyD`1Õ±aÊ5ÃûÉ{îüúK6üq­ÑG èÀs~#³ê©Ìb%�ãêžô˜hÐc¶šÀˆDÃ÷†rå¾Ì“·‚Bxó³BÔ�ЯŸ¹›ÇÎt<œF@ù �FƒÊù,�;þ¨€ wñ“yzäz_Å<ó)g¦æN¤Ç�@˜`$ìÜ(fçLЍxñ>ÌÜRóâš‘Í@è׌ڟPu�=™×ˆ#ÅtP¼FHÐ;�k·œà2O÷„Ô8«.ðÅÎêá—_×â —•Ü�`–e®¯Î@Î+üA ðš°bê“ü®,óä>ai„I ÇZÏXÜW2}Æb{Þ»8�„‰ë™oH2M¸ó!H-&@!R 0e‰Ç˜G\kôih�…øY>ã� ²ÌSõ ýXâ´Å’]�p0b©.óöÿÁ¼t@¯ãI)Ó¼×ú¶ÅS§y³knÚõŽ�hÔ1¯ç¥"!Œ2dùKÞº>‡�@ÈÓÓ€(�d ó˜Å†1¦ǼoºË™—¼§û�óTJÌq޵žVp-ñÁY$ pÖLÁ+Ȱž¬Š}¦»,�J½óy 3µ!÷]'1ï ·vœ±¶ã]Î/‰�Þ€¼á/Ý• �E’Ç\ó¡*ŽtaæsŠý¹ è,€�ójxxínró}™ç{7?ò;×â¦c> ­ÓÁ�ê[ï�0ÃIŸ\<ÝE*�@¹/üR@¡ ¢BÊ �ƒŠE���A„ÿ}…»–¶¤îŽöß8ó¯9óþù¬> �R_Üè�h¶vtÔ…=›€q… ×|A �Z«caœÝÈ `wG)@c�Ÿ{û|n�Xáµvv9ã€Îg�ú6òåÙ6f¹È“æå Å`¯€ô˜ð„ € �,´0èÓ!35„Ñgdžk¾›ÐqÚÒù×@!2hóF‹3ëä¤ÿÁˆÀ0¹ª?_ c¼ 1ßAs2ïá—ªP"š@º&"t;óR°��·¶1,Ì3X>ÌåÒÅ@Áç�Á/BJF“¤rGuɼ•ùškº5Òó�!¯¹&¨2¯~�ó4HÌÀª»O¸nõ®-?Æ<¦òãõ>Ðu�!ÆR’‚(�Tb:,žóh8ÚΘ—‘Y�H°V„"ˆ©"ˆh£9“ @2ú2ßç͘ܠò@Èš9-9i=@"ˆ ¥ƒÒ…ÙMz^)BjæŒ6¦%m±l�¢š÷ÇL¿BÌ7¦Å…!ñÔÀË—y-D4âš6ƒ]aM…�ÜÏ2Od®¹µƒ÷¸óêØã¨¿fú�s; 4#‰Œy $�¼Q$ @À´Ì;Å'Y ’L}@�€[SÄëÛˆ�g¾±î�ËhÖ @ÂK\pöì²BÀÆà¥Þ³$aßþg)ƒÂ(eÕ�„ir™Ñ§ ) h‘‰`% �/Ö&óȵÈ2„ ÝË�óA�©¶?#ŽŒ:QJ²ó¬ôœ.…¿”5úœ(P `ÜkhÏ@Z°iŠi�!A¸ì©À<LSâ%é³ÏXºÍWg¶Z‘ߊrNý Å1 @A"U˜E(jˆBÂ(`o}íTk1¥!>=÷¼ä__!�„,¶î~×8Ô>�ÐÑÅ™Þ�í&M»Z6c ãÁÀ<÷Áûx›.ô ,¡YR{‹Û€€\D\±‚�¦/À´Ôš£ÌÔÙã—b'9Óû§m jÓô�àîK…e ·»ÏQø-)ÞÄ®5⊘F�°æ¦G˜ÎÛÉ�Ö€`ÝÏ �Í#«½FÌ3E*=’�]QTq °pºØN ³Š�̳*äy-ˆØÒ=�ÈàꦇM¢ýCݘ¹Ò�˜¾(\ýêÊÈg 臶Øy ÃDæH sD”+lÿÒûkŠŸ�h½/��Ò-² Ãä³@=7P?Ì#?�5+Ý;4Í�ìÿ#Za°  ¶×ƒæyóˆ{‹ hžó…·Ð€¿ œUèT�k¦ÜbªðzœWO@{|U¡2ÏgôTÔ‚ú�à¬Wz�EŸ¥× öP�°‘(¤˜gþ§  zÀs@ÄÂ6¯¦Gbqƒqz|:9Ý3$¤€ç\„âÝv©�ÀýF-z >ô%�( 0Xîr3T÷�t‡�D@�ÀGïPñ“qUp½ŽY"‚pÆ0ý?׊ýEˆ�üßLsÀà �åº"�H‚0`€�¨`¾h�ˆ FžÔ�ýÿ€@Q N‡�m2€yÄ´7°£€Ç �{|¬µC¬¥ñ€‚@wȦ ÿ|®öS7Ñ01#p8 æŽJ�€àÏèé œÿÿA$êÛ1ÌKüá¥"b`DƒW—¦5v€ú’Û€C$ ‚Ðg!Å耕!MÓUí` D�Tè��ÿšDËhŽ�©[p Ýe¦Gj"�ýS»ÔÝK(¸ ºÜ�øczƒ‚3Ž®D0ú*‚eѸ ®YÓ J®³Ž>þÏÜ.ç)(‚¹áð¯ÉtÍæ›¢Ý�1ª:Óùq/3¢ðAdQ›(ßëú§òük1nœð8Øêò˜WÿÏ™å1æ+B^¿Í,0n˜`\ÿt†Ç˜ ÞQºjð<K9þ žPÝ£3°f&����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/elec_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���ÿÿ�xöX(���tRNS�@æØf���~IDATxÚÍQ€0ÅV¹ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#nÌš• Sç����IEND®B`‚IMAGE 221 ./arch/monster/dragon/Hatchlings/elec_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���ÿÿ�xöX(���tRNS�@æØf���IDATxÚÍ’A À ;õÿ®í¦FØèÙ ˆ8ƒbô:(ôR� Þz—!-y #àØ °SLØ"À½5¨®‚„¥Á+ÀÒ`Š.ì¼½õ bÆ…<YùIäÂ@¥—œ?.Ì3h`;]L®61£?(2c͹âG¯„Ð(¸ýésò�¦’¦(Û����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/elec_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���ÿÿ�xöX(���tRNS�@æØf���~IDATxÚÍQ €0 Å{ÿ;˳<¨«e¿ÆQÄdP\¿Ðþ SyDèÔÀ.G@8°¶G^:ÃuðâåaòØš4žÙwÄ\@èysá3‰‹îøeå]·b÷~‚š6ÏBXì÷Ëþcë˜,4[`ä:Œáàë’ÿãÅaš–dg����IEND®B`‚IMAGE 219 ./arch/monster/dragon/Hatchlings/elec_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���ÿÿ�xöX(���tRNS�@æØf���}IDATxÚÍ’A€ YùÿŸ%¤)‹õêHt‡ŠÄö34`Ú´G³`¨k_ÝBм›™ª¼tÑ@o ØgÿʧPæQ³ÁÇ­4#Þ?Ka0ÎÆÃž io.ÃržŸ[©UÐ˧™à<hésr ÙPú§NXë?qǵ™„í����IEND®B`‚IMAGE 260 ./arch/monster/elemental/elem_air.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4Vaaaÿààà��¼¡¡¡hàÿÿÿ¿¿¿��ÿÕ~w���tRNS�@æØf���‘IDATxÚÍ‘Á„@CG‹®ìÿ°…Ýd+;¶áÂÃ:„q·PîdåWËAfYPœÄË ¯ø^f†p°çßMøá&>,É6–˜cAw` gô É7úó ]3š&}×==»+ÿ?šK ªád•rÐí­Ûï=‰•›[W]Ë‹öÜ…êÿäÓ Í׉™æ Õ BI×ÂK����IEND®B`‚IMAGE 257 ./arch/monster/elemental/elem_air.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4Vaaaÿààà��¼¡¡¡hàÿÿÿ¿¿¿��ÿÕ~w���tRNS�@æØf���ŽIDATxÚÍ’Ë… CÁþÿßÖ4,‹·gC<¤ø<U¸4±[_á�W¾*xò›`Gž;Ø¿ß zêàš5 {8G>|!jÈ3Я`ÌwÀ.QŒ°ç帧³CÔ8"E¦¹û¢SËÍßµPÜ þ-Ì_‹\:œæ3QÿKƒÏ°Ó?ÌóÞð¯ù_ïÞ‚è¦����IEND®B`‚IMAGE 290 ./arch/monster/elemental/elem_dust.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠVÒic2�c�Í…?�1�ùqcDÙ¤���ïå‹¿¿¿\Nq���tRNS�@æØf���£IDATxÚíAÃ0M ]BØþÿ¹%ÉÑÁRïû2Z¼ãϤ¹]“÷3 † Åf&u‹OB°Økôœ‡ÈCå5f‚ˆ@!?“©¼ye擇ĵBº’z$ÂÇ3»²€¸@;!äy|t(¡èWd�x‹D'؇…yöŸ<�øh±Dåwx€Ô\�ˆ\JVþ‚ l,ˆ/…çR¦ÁC°?38l ����IEND®B`‚IMAGE 279 ./arch/monster/elemental/elem_dust.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,Òic2Í…?�1�ùqcDÙ¤���ïå‹¿¿¿9H���tRNS�@æØf���žIDATxÚíAn! ÅB燼¹ÿyËè/g@ê¾( ,GØ?¥3:Öíþ·~ ‚{ŽzÝøºŸ·‚µ œ)äm/t (çæ]è }!Û^Inʹùj!ሰMÂ5¯)i'4°]a‰äëDï .|Ší{U£vB\ZdöNH&¶%×êïè’ÊprÜΉó ËÁYè¾ÜŽô£ð ËâÝÜ>����IEND®B`‚IMAGE 440 ./arch/monster/elemental/elem_earth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÆÎ÷œJ�ÿ{�Îc�ÿŒ�ÿ„�„9�J�{1�½R�­R�s)�B�J!�Ök�9�Œ9�R�c)�Æc�Z!�ÿ”�ÆcZ�µR�k2pˆ���tRNS�@æØf��IDATx^­ÑÉŽÜ@ P“”j÷Ú3“üÿ—¦Ü}ˆ=)t€ ¼ê é_Òâü—¹TÞΫÌÞˆVåæåm>?ËPÌsJÀ.WÏŸ$ÎI="ýñMì;äHÈ”ÝÁœ § h¤ƒ7°ÿž.zƒë*" …ZO±ÉYŽtÛ£ÈÐ:�¶„¼$†i­ ’*íâx˜¦õÌ=&L Ò@8 ªàZ,÷yÒ¥!îùµAPFÖ ÀÐO†µfÁ}ól¹ÙuE<ŽiÝ2©™8[Ã÷gÌÔqÖpüëc>!—áü#›…ÓÑÆ áÙݪÁ c9!0¼¡UÑ^€*£ >7@Ã-eè8¾!¥,Oð¸ˆAZ¿:x#ZXJÿ/¿�’$ ïÛ3����IEND®B`‚IMAGE 439 ./arch/monster/elemental/elem_earth.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÆÎ÷œJ�Îc�ÿ{�ÿŒ�{1�J�­R�B�½R�ÿ„�„9�s)�c)�J!�Œ9�Ök�R�Z!�9�Æc�ÿ”�µR�Z�ÆcܨàÇ���tRNS�@æØf��IDATx^½ÒInÃ0P“üšå)I‡ûŸ´R‚v*¤@å–Ï¢�kúK¢_~éÉð²¯4{!be¶^À··!Xç°3“ ?Ⱦ;PF ¥ç•ÅÌ %0[·“¸žÅ†õžvøî…LuvÞSb©µ‹µÑ;ï¨RbÀÚ‚2»ã†ÿ@.Ót­ I 3t :¸@©Åˆ)ßUÚ•ÈÜ,aj€<�¾ßÁ„Ä¢ãiÂÏsë‘óš“¥¾ÐÁ)×5I\•ôX0žÁR!Îýõ—çßaJý"Ò6|Y*ÝɶaŸÌBï¡0Ôˆã×{ô´ñB¥ ‚xõX¸ Et ¼}Ž6üÂ:e üg¾�R^ ¾¿uäá����IEND®B`‚IMAGE 289 ./arch/monster/elemental/elem_fire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœÆ÷ïs�ï½�ÿ��ÿÖ�ÿÿ�¤%Î���tRNS�@æØf���½IDATxÚ½’A„0 q'ùÿ——X9¬Œ¸­ÖT¸ê8 ®ÿ‹Ü¤`/Õ°„Ì$cÓö¸®‡°œ�Õåäñˆ¦Šj&H¾Æ§uæ®æ^£o<§…¨¹ºšâ"ê.ÇA‘¨@-ä^ijO?Ûyâ!^*Z³IÜ”0*¬LœAºÅl<«LLuƒè3¬l:*‘“û-�²M³FËbP\°¬fíaNj°ì†ù792zçf/‰M™ï.ŦXŠðßéÇ€9_Ý?����IEND®B`‚IMAGE 297 ./arch/monster/elemental/elem_fire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœÆ÷ÿ��ïs�ÿÖ�ï½�ÿÿ�¨Ðûá���tRNS�@æØf���ÅIDATxÚÅ’Ûƒ0 CwœæÿyØâÒŠiOs*å8$¥¼þ$¾dyªÃcæÎcraÒ\¸«Z|(S½Ú9hb§™f(2 ûÝ¡*•]±ª˜ŽQrn‚o¤jQºZ(5jvéxä1R†háuþøV¢ e®Ãàjˆ)\žL4 è ^&D#=U¤Ñ|�G<,~ 2ß>Ü1HŸ%÷=G ŽQCbíøÜî°t„e_ñxHxÍâ¶V"ñ¨8~Õÿ“”ºUÖ����IEND®B`‚IMAGE 369 ./arch/monster/elemental/elem_fire_black.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òiíu�c2�1�cDÙ¤ÿ�����þ¤�±!!%ùæÊ���tRNS�@æØf���ûIDATxÚ­ÒQn! г¬¹ÿ}Ë€/DÊGU$ÂËxóó¿ÃÝ·ý߀f‚Ãû'ŽH„7z‚8:Áqm'ˆåÈ•þs$H¾ˆ/�fÅBô.1Ö� B®q h}T`¦Ë¤ó \ã"û“Ê…>€Ae¸Uu+<h…V–ˆP`å Ti) æ€Ih3àñ±�ÎI 5ƒsûûtwƒf§šQù�ÑØ`¯¡Ìó ÈÈ�õ ÄŠ'@Tè�àhŒx’UCQ òªÆïNõPÚPr~Q=JïrXHi¼ÍŽ%H¦ µ ­×lñÌ@úìùÝOhl½ü½ËšTºS•����IEND®B`‚IMAGE 417 ./arch/monster/elemental/elem_fire_black.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,Òiíu�c2�1�cDÙ¤ÿ�����þÖ�þ¤�±!!Ú¥œ���tRNS�@æØf��(IDATxÚ’ÑŽ… C+¶{ûÿß»™q²ˆ›Ûq˜­‘Öš¤¶¤,—¾ÖšRõ–¯Õ´*à­VúxÑ:¯}ö½wQϹâ� P‡õϰ·ãÀŸ~J¥k&PÈHB©0Ä)«•4;˜N À¦«òmDhC&}T)lƈyÈÖ(À ø‚Ò<I€F«m(s& ý…È ¡üy3&ÐcεѬú2@ ­ZÕ8HÈ ¥F4m…ˆæØhöôDåQ?nÚjÓ ÃÑÃ;Bø h]$Ó·Ÿ­1E™”€Ãé;OA ªWׯœ‰uBÛŧ»ì:®´Ú HIøqÒp8*ë øûÍ}Ü'xn@¥43½‡<®ì.©d’\Þ„î¬(àâH‹¤€Û����IEND®B`‚IMAGE 349 ./arch/monster/elemental/elem_water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE÷µ÷”ÿ��ÿ��„�kÎJ¥ÿ�ïï��Î�JÆÿÿÿ�ÿÿ1Rv„àx���tRNS�@æØf���çIDATxÚ­ÒÑ „ „a§ßαöýßwwD"±îv‚°æK9PùOŽRy(ôª¾Afn‹A§BB©}gç Tät1ïð9ŠIë"qLh(7îcžŸ!4B&ó ‡ïÔêý› –ÐÛ¦ •Ó# $a°Æ�áÄ `Ñ^€®IòÔ^Ç «.°¯�šrR+ U ‹ÆCû†D¹ò׃ e°ô}„†Ö^ýüPS„dçëke*‚¢[/U·Œ_Ží&~k*Wﹿ‰­˜T¨¨‚¿™Ïð;_ãiÊð«¿æ ÷ZèBÍZ����IEND®B`‚IMAGE 358 ./arch/monster/elemental/elem_water.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE÷µ÷��Î��ÿ�JÆ�kÎ�„Þ�ïï�ÿÿ”ÿJ¥ÿ��„Ðq· ���tRNS�@æØf���óIDATxÚ­’ÑnÄ  ×ìÿpg{W)QÜ·[pnæ0Bùúpô—y‘Cz .ÙyQ=xì[.¶h¤ÿì:Õ5` £2ϳƒ+êƒÐD!ÇÆØñfkUiD'@*()ÆÔ•x%Í(Á¨±çU¶ÈðÖMsÇÐýŠüûX <bß ZÃ-æV`•ž—¤ø=£•YÙÜäЈ¬+ªò´·ÀL§çéê°–™…ƒÐq˜y×!‚É¡®˜•RH‹n1¯+^o‰1ê¶C*i2ÍÛƆ4ž•zž¢è3m…‚'kw'q^üK1 Ôó‘à AÅv����IEND®B`‚IMAGE 939 ./arch/player/race/elf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ªPLTEÿÿÿê ú æ Þ ¶ ‚ â î Ú Ö Ò Î Ê  æÚ ¾ º ö ¢ ’ ò :*þ² Æ öŽ † Z6ÚÎ FF4:B® ¦ –V,2ž^2Úf:vB$ÚŽLr>$ž Ê ºr<úNÒ š fŽ\æ ^^\º® ê ~B$æ â Ú r~tª®D2Î v†tv ®n4š ¦ †ž ÖŠLÒÆ Òv>$^f\Š Ê¾ šN,ºF:޾¾n4Z¾ ®b4Î Ú bŠVf&ŽJ¦®f4R– ªÂ¬®vÆ †N,†’,††,¦²² ‚²„¦ Ò†LΠ^66¢nŽt&f ÊjÒ VÚ .Ú v®âÞr²Vªb®Þ–Tbª¶Nrž¢œ:¢êÚ ² VJ4 âÞ¢\’ Þ¶ .žª R2¦ÆJ2>2J.zrd®z4¶j<®r4ÒÒ 3�x���tRNS�@æØf��¯IDATxÚ½Ó²e1EW¸mûÚvÛ¶mÛ6ÿ¹ÓÙuÏ}ëžUY™£F­þM¶W6­ÙWÇìÒ5/<v^8NWÅPߣ÷qìׯæêľ¡;Ww~x°oO…²øþA«ÕÚp4_ıÕe-NV~y~rêYègþ¸ï+s{'/WGÐDMl˜¸–`Ÿª3·GnÞšYË‚oý°´õB¨ÂxJ£$«J@y~Žh¤èH}Ý!*©}}%m€§­ˆj†r¯3K¨îV—¤z ¹`£abXïtÆ7?ÙÉæåË+g´¬€#óÆïÞ8{n¿»"ß< û†]×£Ùóë爽¤œziØ‘Oí0 Ø ]B\�y‡©š¨fÈÕ‚¢‰,öF&z›*ÖR62‚ŒºÜËO©xS7 ¸«";»áD/ò4Õm%ñ_ ä4j½QT‚Œº<@(kÈ=b_.ê£<ÈòJub±�]ßò’‡°6Ê™Â>B.W|k`™3„©ð(zƒæO‰/¦§c ívVÉôßÛ$I@�½°v„áÿæÅx:艡]����IEND®B`‚IMAGE 898 ./arch/player/race/elf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��›PLTEÿÿÿê ú æ Þ ‚ â ¶ î Ú Ö Ò Ê Æ æÚ ¾ º ò ¢ ö :*þ^2 ® ² ¦ Ê š ’ Ž † Z6bŠÚÎ FF4öÎ 2žÚâ æ ê ž æ vB$Ú ÚŽLª®DNÒ ~B$–V,úr~t^^\ºr<fŽ\f:v†tv Š Þ¢\Ê&f jÒ ’ ªÂ¬nŽtb®VfR– r².žF:޾¾n4Z¾ 2Î Î Ú ®†N,&ަ r>$ â:B¦vÆ ‚²„6¢®b4 Þ²² v>$Ò†LΠ^6Þ–T†ž Nrʾ VÚ .Ú v®âÞ Ò^f\Vªª bªÒÒ Ò¶ž¢œ:¢êÚ ² VJ4šN,ÖŠLÒÆ º†’,J¦R2¦ÆJ2>2J.zrd®z4¶j<®r4®n4g¡3���tRNS�@æØf��•IDATx^½Ã’faD«>]¿í¶9¶mÛ¶­Çž³¬éîÝÌYä&OdTÁ¿áFóíš}ÓuÝÒ*Ýô%€Gî ×]ub~üê®™±ãç›iÚÅ1dœ¿}fϧmñ½@9ö'Q•t»ÝÆ5 Ä³h-+Üß|üáyéÔÐ3"|Íf·D‘Ûw¹YjLâêS0·5a‘ÐGnMnº9!…¥û§Û\7±!Cð…9a~,´E LÔ÷¸Î¿¼"B¾¿·aXêî“>G§µD„o9œá–}®×çÂôfpø¥á´™rüƒ½Á½§ï´_@o8äó™ÈÊ›ƒ;Nž?à½Ââ‘\‰\(‚þ…£c<GûjýºžèŠ&X§âqî­'B¸{»ÎŒ‚,¢V;hk@(žÍ^/ÈV8ZyÒ£6ü91«²`Z¡ôtÌQnŒó²RÞºš””+‘=\–¡ƒ¾ "P>&ÑfYóÑ(×òÜÖþ¦RX–2³,5¥=„ñM&�¤2‹be!I’,ÓtÖ&Má¿ò²5vá15'����IEND®B`‚IMAGE 1085 ./arch/player/race/elf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‹PLTEÿÿÿF#î¦_Àn7Ì?èÚ ŸO,©�c1.Ÿ™�#ß�çÙ ¿�H5nA#mSš’�»�$ä�DaGG'`:"µ�Š�©™$»àÓ QtD#ÐA�"ÐhÉ› lqD…6�Ì�Ÿ�B4Ä�¾:�-gŸE4 @+€¬?!>ÝÙË (½!‚"á�²�!?!8¡ÝÖ ÞÐ ž�Öš> }3š �;�å× �9�ФOȼ�5�%Ÿ&Ò��/�KÓ �#��!�(¸ä²>ȈG*í¦^3¹N�$‹+¬<L*G~ Ð� Î�Ÿ)Ž È�D4€O.sP+àààà™S,1Y9!_XÜ•O/�Ç�%ð�ª�g]LO�w„¿�"Þ�"Ø�.F.«DB"Ê�#‘¥Ã¨�‰Ž¦�F#Ÿ� Ë�c¼².»n>¾È�8��6�Û’P�.�3(§�&¿¿¿ž�²�2 …�®�6©A�½p5LM+l=#'‡–�½�¸|29�,�&—1Ã�.ŒSUPE0œk/ϳ¬ž ºk5#Ï�Ê€>F40%° ŸI5%’RI"Ù�1Ô�)½$ç�¼�$å�º�$Ý�¡¡¡ƒšrh<#,«P>!×�Ÿ¡ž!Ñ�¦�BÌßÒ 7 I�¡ÃáÔ ª�3ó�+‚�'¢ë£]b˜9‡—]Z.ƒ D¥b»¿»;•VO)¯º�µ�6�!Ü�ͰÓáÑ#Ñ� ƒt���tRNS�@æØf��`IDAT8Ëc`Àê€fò 書â‘Vé.ceeµÁ)/§Äiu€Õº—|ŒÇɃg89õ q)رf¹ϵº@òù"‡+öÊÚ%úáWW”êËUž–æÅÀÇ„Eþ²¶ûÊÒµ³öø»Ç¢ Ü¢hæ¶ÐÓ¾Az[&0Ç-A—ÏâÒà’2 ¿pjÎĹÙ@¾8š‚êÎ)‚íÑ«ø·‹íL� lE‘gg²]0Y´8þ\BXdR ª»{xÉHÏ>q‰*´BEÅÑK›JŽO]ÌÌÄBUÀ[ÃyÃálؼ…Ì,LXlœÊ­•qÑLG·°Š™y3f(tíª\U5¸Ÿ% º ÉÞ ö ŽÎÉ> 3††CëÚöOoL÷Á™T„órÔšZp˘×^qóôÆWg.Mšq„‘Or52hÅŸÜ98(’*  „è�ã ^5*l´����IEND®B`‚IMAGE 1058 ./arch/player/race/elf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��pPLTEÿÿÿ™�¼�î¦_Ì?èÚ F#c1¦�Àn7çÙ .ŸH5²�©�#ß�àààA�9�&—1Ã�.ŒSUPE0¿�’�»�šàÓ QtD#Ð,�$»"ÐhÉ› A�6�Ì�Ÿ�A8Ä�¾:�-gŸE4 @+€¬?!>ÝÙË (½!‚"á�ϳRI…!?!8¡ÝÖ ÞÐ ž�Öš> }3š �;�å× �9�ȼ�5�%Ÿ&Ò��/�KÓ �#��!�²�í¦^3¹N�$‹+¬<L*G~ Ð� Î�Ÿ)Ž È�D4€O.sP+1Ô�*$å�º�$Ý�¬ž ºk5#Ï�Ê€>ßÒ ƒšrh<#,«ª�Ḃ—¨�7¦�à™S,1Y9!_XÜ•O/�Ç�%ð�LM+l=#'‡ Ë�g]LO�w„¿�"Þ�"Ø�.F.«DB"Ê�#‘¥ÃF40%°ž�‰ŽnA#Ÿ�mSc¼².»n>¾È�8��6�Û’Pœk/6©2 …�®�#Ñ�$ç�"Ù�–�½�¸|2áÔ ª�ë£]b˜9(¸ä²>ȈG ŸI5%’+'¢]Z.ƒ P>!×�Ÿ¡ž!Ñ�DaGG' I�¡Ã`:"µ�Š�™D¥blqDµ��.�3(§�&¿¿¿»¿»;•VO)¯6�!Ü�ͰÓáÑ$ä�)½HÀjŒ���tRNS�@æØf��`IDATx^½ÌC—ìP…áï„å¶mÛ¶mÛ¶m›×¶mÛ©«†©•s3ëgúîµ×8èÕ>qøêøîä"MÓa€cf- yN‡îVë¥7R©»'.%ÞŒ‘H~o§cúÃ2b­Þ4¢ó:¦Oý- NLØ\ìKæïöVæ DÖ?Ý–Þ2’§¿wN¸î_ËpÛl¸Â3hK›ÕiòÍý~OÈ`L\²êL>®?xúH�^È€«9 •ò‘'s¥_5¿¨Bc1pl¬ž'j-_ë]ýCR, �Ã=œ®P…Uów¿õÖ‰IŠ")€[ÜÑ)üü3QoskÄJr„ШÆÀ?×à!¡Ê N¿‚2µÚƒ!ÜADÚFÇv§/æå«Ó„ö^?¦Ã\>ûé™ÝþÜ�DÆ“ã?ã“R�gÚ –»,î�ιA�/ð_ Ë vÀ„QãvXVÄù'Ñ����IEND®B`‚IMAGE 1162 ./arch/player/race/elf.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��…PLTEÿÿÿ¡¡¡aaad3¿¿¿ï§_�Ì��9�b1:*� �@@@Áq8.Ÿ‚B'�4��,��ÿ��.��w����È��r��D��6��©��(��q�éÛ !!!�G��A��=��7�Í…?�3��/��2�ãÕ  R-ì¤]×O®®®ŒaN   �]��²��œ�-•�!�É�j�B4ËDßÑ �R��J��B�ÃÓÃ�¨��Ë��Œ�’�¡�ÞÞÞ•“�$�d_VŒŒŒ€Y1X-QD1Âu=‚‚‚1Å ¶j;ÚÖÕ~~~áÓ è [�g��e�b2hhhÕŒOè¡[ÀuAbSAVI5�Ô�.ž�Ê�$Ž$˜˜˜rQ>zzz�>�æØ 3Å �:�9"lÈ™™™µi:Q+�™��*�X.t>$___·l8ÄyC<-XM=�”��’�Z/,•,e[M{?$ë¤]~�„�Î\-è¢\ž·yCP.^1�Z� Ò‰MP2i: Õ�$�Ä��Â��À�Ý“S´k8�¼�=&�º��¸�ð¸G î�O� b �¬��ª��M��K�‰†�¢�/P/�Ç��C�¸l<�?����¿��;�ß—Tƒx‹n ‰^2�¹��€�R2�t�!!�¯��)��%��#�a�«�P3l´´´‹Š‰â™VÜÎ �P� ê¼r?¨[2ã›WÍŽOp<" ’‰�—�c2���8�žQ,���}�ʃ>uuu/ƪ]3–––�&�à˜TÁ�\1IA4¹¹¹Æ¹ ²_éâ���tRNS�@æØf��³IDATx^½S»A„›ÃµqlÛ¶mǶmÛ¶mÛ6Oæ"O’Þ9›»¤®ªû­ªü}âÛð7^ Óéz’¼Ñ—‡AxF$·õ6xà%QÛV¾þzãðS˽À¨IéoEu¼ïJ`Çë3óªN|ºÿÎKýæÕÄîmC7L¬IY÷¡Lè É_­±pÙçÍn¨9"–JÅo ÷åÖG©ûRÓ¦´Ž¬†eâ(ô h …|<~‹¥ÊU´!ˆfŽ©£){@dx§å5AÒ¹ò 䑆� ²}nÿI)ØU¹×Ìi(ýÁ ÑôÍI^-úa?ŒÇÝÝò†‹`xš3CK*Xòeþè1;pì�0ÍvY.Ëæ¬ ì=‡„¹»-jÞ›`wÈ¡þÎKdz ncªëô v€_û|»Õ8ø…`½bv;ÚrïéÙyך“ BPöL9,D8»‘í~ÍÓ¥†�ã0ÿLû«³#PôàÀd»¸É¼ûH|üùü£c?*˜2µÌš~nš%j¢‚ò&à)¬Ç?Ý3¬85ÇzÖª9þå™ÄïOöñ_õ}§bG¤ôT����IEND®B`‚IMAGE 752 ./arch/player/race/elf.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��,PLTEÿÿÿc1�1��9��!�ï¥Z{{{ccc¥¥¥�Î�9)�B��s��¥��œ�½½½�)�½s9„B!�Æ�µk9�J��ÿ��R��­��µ��”��½��Œ�BBB΄9œR)�Z�Z1�c�s9!œœœ”””�{�1ÆR1Þ”RéÛ Z)ÎŒJœ�!cµµµRJ1RB1ŒŒŒŒcJÞÖÖµ{B�„�B1�Ö�Î�!!!�k�ï�ÆÖÆçœRÖŒJÆsB­Z1„Z1R1k!„!”�„{{Î{BsR9cZJÆs9)R)Æ{Bsss­­­ÞÞÞ!Œ„„cRBZJ9ŒZ1!Œ!cZR)”)Î�R)k9!¥”ŒJB19!kŒk!kkk„„„)œ�)”�ãbRÜ���tRNS�@æØf��rIDATx^µÕn]1Epá"3„™ËÌüÿÿÐI¤Vñ…(íö‹¥µgþKûøùOȯY´ƒ€s>@Ç3ñáIÿ”ý6Ò ZãÉåÁÁáÑtn¢ùNþã~?èÎ_™w·öºqÜŠí)XxÂüRÜÚž›+åÂ$—B©wfûiÞqñìùä¼TžT›¯¿·~¨•vËS�ðÝB <%äEóJ-´<y…@I©äusuÍS|ÀÍ;¼Ê£ ;Ä«OŸ•!ËBÀ<|f PKË/£ tå·öïÀÁu7_Ἢ oÿ=elØ[¬×‡Ý­sí)wlÆHB­Ä²èF½é…ò¶uÃ}šßßuÆ~€Œ¨”1ߢ,>% ë<5r F(¥V–1Bè-Ö…±@ŸÙF�§HOåL’Xµš]*ù°"2Ðxãl»Tp}xŠÆ…¿7 ` Ç®a8µ€5×}Ái ™ßu‚$ÁRÞ����IEND®B`‚IMAGE 978 ./arch/player/race/elf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEÿÿÿï§_aaaÁq8Í…?¡¡¡0d3�D@@@ààà:*G$‚B'žQ,�K i<$½#r@ °a2�u0& ‡-]"QhAÎÉ ' D¡g;"äœT^GaN=„H$Î"çÓ�[´4¥Âo;!BÜÕ yAwA�I ʳ îäÖ Ñ¹� ZE2—„voœÁE áÔ ¿¿¿�LÕ ?<83±_8Þ“PÉ = P- 3 1 å× ÛÄ€<3+)�H ºÈº�OXUPL-ãœQ%«È«¼â±2 R-�AÒ Ö‹N2‰|NG2�W�Eß&�†a-J5 & K'j:%B!ªã©�P{ �¹r>´Á³¬�T&}@%½"W9�G�NÑn ΠÈ�½5;+:!,( ** Á~8�@„¯ƒ°À.É$ªÅªÁC5rBÔ=+í´g8¿'‹J%âšQäžNß•SÍCΔQ�O"�C"n<!jl Áq7c9 �f�Á.´ Ì”'³U£�ÒÒ°›)�P�ÖŠH&"Á ·"�]�$��NÑÕ@G˜"ÐЄB ( �Ka7"£WŒVd>bt_Á���tRNS�@æØf��LIDATxÚÅÌCsa…áÛ˜Æ0Û¶mÛ¶mÛ¶mÛΟK%Û|=©Ê&Ïö=uà/üàšwvî Cån¦›y;g&\kÌöG¹º·îô¼º«É ñÕT«3&RBQQ@ð³ß oµçÐ’OŒ ä¥?\øô &Æ7©wçŽÁyäIâ„§å5?*†aB ”EP¸GÒ6ü@Jš�\Š8m ¦g]ŒSXV�J ¾Äãa$O.ËPRÉo¹Ï*ú€T¨W<;®³žÖÒ8…ì¾¥O!‘,Ûla‹ìE/_ƒ`öòº{iq`D”ã²Ã²¯ö¬ÐôÚÕÁµÿ ²‹˜û|š¥û­¶¼�‰Õ¿V%²F±ÉaÀAyò´.‡Ý3.eAñJÇž­ÀIÄ0 ·c,³C›wþXs¾Àøþ‚H»$€].����IEND®B`‚IMAGE 971 ./arch/player/race/elf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��%PLTEÿÿÿ¡¡¡aaaÁq8Í…?ï§_¿'d3ààà R-:*G$i<$;!@@@Û‚B'¿¿¿¥Â]"A&QhAB8ÎÉ ' D¡g;"äœT^GaN=„H$Î"�[&,‡-3±BÜÕ yAwA�I ³ îäÖ Ñ¹� ZE2—„voœÁE áÔ WŒVÄ€<�L�E½"_8Þ“P‹J%É = P-- 3 1 äžN‹¡‹3+)�H ºÈº�OXUPL-ãœQ«È«â±2ß•S�AÒ Ö‹N2‰|NG2a7C"ß&�"�K J5S. & K'j:/%B!ªã©�P{ �¹r>¬&}@%&W9�G�]ΠÈ�½5;+:!,( ** Á~8�@„¯ƒ°À.ªÅªÁC5rBÔ=+†a-½#âšQ0r@ ÍCΔQ�F�O"��D)<)jl Áq7c9 �f�Á.´ –U1Ì”'U£�ÒÒ°›)ÖŠHd>°a2"Á ·"& �$��NÑÕ@G˜" ( žQ,í3-´g8£�N?<8�K‰N,å× Ð„BÐHˆˆ¿���tRNS�@æØf��TIDATxÚ½ÎCwA…ájLcŒØ¶mÛ¶mÛ¶mÛþ}™Ì¦]9'‹Üíûœ¯ üeêÀšþ£×/«ÝÉò´nçîîÇ V»#ûì$TõWã§´H]a ÕÖ¬ÏOMþ�p€Isž'ç>¯ §9€ÈÏø:³ì;„\ެ£ÞnƒWSÐ $‰`bå+ª©Nh‘ã8† Š(R6!`vûЈÁ4>ÎÈr­“.Ú5Qðmk‚dMïæa4Mü¨¢l' IŸy‚ qÂïÍÂ\µÕôÿXÑ+6) 3Zhµq€8* ¨¼‹ˆ _n;¥`@ÔÝ›«ë²è<íy=KòŠ‹½KEA2M—HÀmÁL¿ÝOØ£E"‰4Ö™%0Ø;Ÿhò˜ìU…&ùò(À~²E©ÊdÜY �ÓÙàgàß÷ Á]D—³����IEND®B`‚IMAGE 762 ./arch/monster/humanoid/Elf/elf_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTEçÆ÷�9�c1ccc{{{¥¥¥ï¥Z�B��!��œ��¥��½��Æ��Î��ÿ�9)R1Z1�)��1��J��s�½s9½½½�Œ��µ�„B!�Ö��R�1Æ�­�”””œœœ�{�­Z1µk9µµµB1BBB΄9ÎŒJÞ”RçœR���s9!{9!œR)�”��„�Z)œ�!c!„!!Œ!„Z1„{{„„„J1kkk�Z�ÖŒJ�ï��k�sR9Î�ZJ9sssÞÖÖŒŒŒk9!RB1­­­RJ1µ{B)œ�!!!9!kï�cZJÆÖÆÆsBÆ{B)R)�c�)”�ŒZ1ŒcJÞÞÞcRBR1kÆs9Î{BcZRŒk!Œ„„!”�JB1Î�¥”Œ)”)«ÒÕð���tRNS�@æØf��vIDATx^µŽÅrä0E-43»™™ÃÌLƒÌðÿ¿0Êlz Ê"¹ZHUç¼ûÄ=Kz,ñ,oÑaPZíqÕFmk¥ó‘^}m3añòs·»õ"›ëܬþúÔéx…ãG31w]¨Õ Š\ÊÀØÇúO9·7Ê2ª§9„|ÑK¡$Iøô}z‘ÆþFy•Ê>I ö F«ý]R/û¬ÌO Aˆ Ûþ»CŸ Œ’ Cê©M¶8þMTÔÄ©yújIgƒ˜œ|SZÔ‹sŒ›Ëá;¼dšbآø úw€ LŒÓœb‘ÒÄJ® ØàžãbûœÆ¹ºü=·€c[ÖŽôÖˆb\U‚¼`ñ�° د¥m}û2Ú´m��ŸÏ ì1–N‡Çÿo(ê¶Ã'ïV›’Æ€Ñ0犦áº[¡¨ÿÀúú¼Fðþ F¢e1®q‰@ÍŸLÍàpÞe 0Y¶8ð1÷”ù ?¨&6?·îb����IEND®B`‚IMAGE 760 ./arch/monster/humanoid/Elf/elf_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��/PLTEçÆ÷c1�1��9��!�ï¥Z{{{ccc¥¥¥½½½�)��B��s��¥��Î�9)½s9�Æ��½��µ��R�Z1�Œ��­�µk9R1�Z��”�BBB΄9œR)�J��{��ÿ�œœœ”””„B!�Ö�1Æ�œ�Þ”RçœRÖŒJ­Z1œ����s9!ŒŒŒ�c�!cZ)ÎŒJµµµŒcJÆÖÆ)”)Î�Æs9ÞÖÖŒ„„RJ1„Z1R1k9!kŒk!RB1”�)œ�)”�sR9ï��k�ŒZ1!„!cZR!Œ!�„�)R)Æ{B!Î�{9!B1cRBµ{BZJ9kkk„„„Î{Bk9!¥”ŒÆsBcZJsss­­­ÞÞÞJB1!!!R)„{{:���tRNS�@æØf��wIDATx^½Å–Ü0E-353Ã03ó„™ùÿ¿aj“t»íÎ"‹<mtÎ}uK2þ%‹¿ñ³sÈÅ<Z+€€±ñ¢1žÓ(ŒGìød sOÞ ‡£ÙÜ5VáÎî`àõæŒ/¯ö»W½B¡çí Ìw¿Ýg A 6Ò\p)ïÜöçжmþåkz^H%ä‹×oZoår»¥$�4]ð¸’\üZº”-2•*xR)>-mî))ÀÜâ5æ9ØÁ_¾ÿ QáI̳Ƿ. rypºïW™—p^¹oЧè;÷Ã*cµ„ÀQ[Û„Òµâ8^ûÙÏë¯XâMf[”â:1ë¦Iå›b'ÁýÐ2MêXëk{æ†ãç"ªMBÀ¢ ^±Q’7ü Å„3Š(ÆäžÊ%l‚>²n&9<!ïâºY*Y¹œ†¾cÌ6Ðó¸X¶¬\¹¯5p0ÌuÐï‚[š£Î¤ÚÉä(£ ÉТT#«ý_ó�Ãò$ýb£q����IEND®B`‚IMAGE 740 ./arch/monster/humanoid/Elf/elf_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEçÆ÷c1�1��B��9��!�ï¥Z{{{Æs9ccc¥¥¥�s��R��œ��¥��½��)�½½½�ÿ��Î��Æ�9)µk9Þ”R�Œ��J�Z1�µ��Z��­�BBB�{��”�„B!œR)΄9œœœœ��c��„�çœRÆsB9!kµµµŒŒŒ”””�Ö�!cÖŒJZ)s9!R1R)���ŒcJ­Z1”�)œ�kkk„„„RJ1RB1Œ„„ÞÞÞssscRBk9!cZRÆ{B)R)­­­ÎŒJJB1!Œ!Î�!!!!¥”Œ�k�ï�1Ƶ{BÎ�cZJÆÖÆ!„!Î{BÞÖÖ„{{sR9)”){9!B1ZJ9)”�çõr���tRNS�@æØf��rIDATx^½Å’Ü0EÅdf73ó0™™áÿÿ"êÍÔØ­d‘E®6RÝótTÿ’C¿õ'§:¿�€æº›êùI–ÿ‘Hu=ͦ[�šûŸÆãõ�“$«VíH³uê-ŒŽùÊY¾~3HÓXÎ ð䉷|6xÞ£[j\©{ÉâvÍu]ÞWAàRRýøyÖ?Ws©O@ˆ x ¸ü²÷UÍúlr&+BI©äû½£Ïê1!˜((ºLDMíàwî¾TQ½Õ=,̳­æêâò*…(<’óæÓ}_è«N ”2 >|#”nöV«›§±„̵(E‚+“Ñ(¸fámï“ òýWîŽ!Îmêc¢-È'hè–QcH!Û6EˆŒ<PL·ëëëm«E&nX¸‘  ®×­<w|Å(ð{u¿mYyÛÙQÊx½…ìö°sƒí˜zh„·Â2aÄÿg~k·#ªø±´����IEND®B`‚IMAGE 587 ./arch/monster/humanoid/Elf/elf_guard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÃPLTEçÆ÷¥¥¥�)��1��B��9�ï¥Z{{{Æs9cccc1ÞÖÖµk99)�!��J�s9!½½½„{{µµµ„„„ÿ��Þ”RBBBœR)œœœÎ„9ŒŒŒZ1R1çœRÆsB9!k¥”Œµ{BcZJ�R�ŒcJ{9!�Z�sR9�s�ÆÖÆB1ZJ9kkkRJ1RB1cZR”””sssJB1­­­ÞÞÞ!cŒ„„ÎŒJÖŒJÆ{BÎ{BZ)cRBk9!­Z1Š9���tRNS�@æØf��6IDATx^½ÕnÄ@ Eía Ã2”™™ûÿ_ÕI·ª6Ñ>öæ!¶Î‰¯ˆ¦i`Sq£PZ‹M`âxèʲ´Mû1ÿ�¸r1_VËN0!÷†{yÏí¢&¼àh•kŸ]Lð|ò€u۶Ρ®Â…LnëN©íÝ=‚–ˆWÉõ Öq„Å_Aj,4žžjœh¿R=AÉ¥.ó#¬F…H¡„è µF½›ïÛÇB)¡zC¡`à;äûÇÂXìxnzß €ÆWK¼¸|xR Ö)�ióX¥×Pœ�OÓ·Ùöt§)Í8Ëã$ë8á%$lðÙK ã¾…NcRÊ9ÿ~S‘RFøJdQ!¡[M„Ð7Ólró;ãyo¸?°¶ÄÓ[#Ôÿ3_X¤ˆ5"����IEND®B`‚IMAGE 616 ./arch/monster/humanoid/Elf/elf_guard.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ØPLTEçÆ÷¥¥¥�1��9�½½½{{{cccc1Þ”Rÿ���)�ï¥Z�!�„B!½s99)�J�ÞÖÖµµµ„„„µk9�B�ÎŒJs9!R1BBBœœœœR)ŒŒŒ”””Z1Z)ÖŒJ­Z1RB1Œ„„cRBk9!¥”ŒcZJ�Z�ŒcJµ{B„{{sR9ŒZ1�s�B1ZJ9kkk΄9ÆÖÆ{9!cZRsss­­­ÞÞÞJB1!c)R)Æs9Æ{BÎ{BçœRR)ÆsBRJ1„Z1R1k9!kŒk!t±{���tRNS�@æØf��>IDATx^½ŽEv,1 �%#4Ó0†™™ñÿûß(Êdò2ýÚ™eÊ /ª,|X KQÊæK}žÙü×¢_Ò€ÀNL›2¡åäͼçÿþ·šA2/ŸòÉ y_‘�qgL >ÈnŠÂ˜²4=2¹.Ðò*oz%Ï“áE–(/¯šï …‡GǽÞ@z1ˆ¥@©vÛ{˜÷„D F¥Pm¶·3Šæ‘O|?ˆ¡K;äÚú‚êÊú�zÜ‚µRI|]Y…Êk¤ì„vPôë?§ÀÃpܹÆÏ$Z;AíÀA²”WiUqûˆ|êÓ;ž2ç€Ðä넮ⴅ9ÎH{<ãœÏnÆ=¶XåøWèÑDÂÒjV:ZáñúlÔyàó #ýjíó:úI#¯×ž–ðŒÕÂWÿ)n%€käúX����IEND®B`‚IMAGE 590 ./arch/monster/humanoid/Elf/elf_guard.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÆPLTEçÆ÷¥¥¥ccc�9�ï¥Z½½½{{{�B��1�c1½s9�)�„„„9)�!��J�„B!k9!s9!µµµÿ��µk9Þ”RÞÖÖ­Z1œR)sR9Z1œœœZ)”””ÎŒJR1ÖŒJBBB¥”ŒcZJ΄9ŒcJR)„{{�Z�)R)µ{BB1ZJ9kkkŒZ1ŒŒŒRJ1cZRsssJB1RB1Æs9Œ„„Æ{BÎ{BçœRcRBÆsB„Z1R1k9!kŒk!¹dŒ���tRNS�@æØf��6IDATx^½‘ÕnA EÇ^æ0•™™ûÿ?U'i¤dåæ±w_,ã;³Á¤ªÄÖ VåV^vªòO£WSªº(º é«gÍgùõ=éòœŒ§ç—röFœ5bš&|bJ5u­"^0ÚÄw4M2?‚à&ßv:Œ‡ø}pv~1ŒàŠ\Ý£ÁàQчr¨‘tâñ:@Ü+:pÇ´ z ÄŽF0¯ù.ˆ}lоš¿£A×÷$¨ÞzÁ‹¤ú É©jÝ`.$£éû`0:$p9ÍÖ¹P îRiSkåÐ~;.”6”© C ·‰“2IHs ¦„NZK±˜rì¬#N‚sü[»ôdQJVèƒ\,¾ ÏürðÞsÜçÙjÊ2–ùjô-¡Ý냑ÿ3?OÖŠÈ/µ����IEND®B`‚IMAGE 293 ./arch/monster/humanoid/Elf/elf_lad.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷7(<3+qzP2Ãx>Ìœo�¹��Î���â0æ ���tRNS�@æØf���µIDATxÚ½’ÁÄ DeÐÿÿáÖ´=€Mv;&Õä=Á¶_2™wþft£àn³ÙÆ0ëG7k[Ãò}hl±F¨í¯«ÆCÙA£æÄÁç¡æAŸQ¦#N‰QÍ‚›õˆàΤº5„ï*4ϧ5Ñ# ´4ŠƒÏ áØÐ{šù™€Èx.pgµ¬þƒG`¾.ô*¬¨¸,¾­€¹+µZ¸N@Åѵ—…Ëe‘ŒÊþk>Ù†l,î×0����IEND®B`‚IMAGE 289 ./arch/monster/humanoid/Elf/elf_lad.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷7(<3+qzP2Ãx>Ìœo�¹��Î���â0æ ���tRNS�@æØf���±IDATxÚÅ‘Aà ñÛðÿwKI+Î!—n$ìdÆ( åI:sÏïŒjÜ­K ³êpT³’Îç¡‘bPËÇU£µ¦î®qæÄ¡£Ù¹)1.íd8=Xw¡ºµÏK+³~) Î*6Á¹È¡¹­œBï^À¸¯‹0ŽQ¤"×ßÏy¦L#áfžï¤üª™ð­TÈlj&Ì‹°>Û#ǯÇI@ù[^ìVw½¯ŽN����IEND®B`‚IMAGE 343 ./arch/monster/humanoid/Elf/elf_lass.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿ�ÿÿ@@ÿÿÀã—…ôžt�€��À�ññ@ÿ@úVöVK÷Kßâ� ù5µ���tRNS�@æØf���ÛIDATxÚ½‘[à [ˆ½ìBîÝZ©RY~kå2È#ÍÐyÎ(£”³2©N%çµ–çJ±CA­ã‚A<ϰjŠ®å4Ã7¶RΓ”1ŽË˜+´Ëƹ€êב�m†9Wàf—$ü2=ÃT2ÙúZV�îÜæ “Yƒ}ð˜£t«Rÿ‰³ÐRÜ@'Sø5 …¯P†Õß×Á!#Τ„psFôNl‰ÙÝèôÞ»ŠÒ½ƒ`$ß "NDß…5Ͷz{îû~OTŠeÜ$|ݼà;¶ÍØí¿æVäFŽ{ã*����IEND®B`‚IMAGE 324 ./arch/monster/humanoid/Elf/elf_lass.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿÿ@@ÿÿÀã—…ôžt�€��À�ññ@ÿ@VöVßâ� èš’���tRNS�@æØf���ÎIDATxÚ½‘Q…0•ºPÚûß÷-Ö˜˜Âï[µšÌt#zä^udˆŒ“†Qu´&rFÄJc\0”|X3†«ä‚ÈÂV¼…p„PF9FLh…òK(ûyŽ”©jÍøe áfd q…º©…ºs‹›®`7ŒœA0|h_áÅ'°v$Bó?=åÍvÜ¡îêOÅWP�ÝÎdC"öû \3áÞÌŽ¼zsíº d ¤ÏvZ»  9OxßùšB{¿{Ž$sÎ0@åH¹ÍùšEÁûd›±»ÿÍ%²Â±����IEND®B`‚IMAGE 399 ./arch/player/stoned/elf_stoned.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�ÿ[‘"µ���bKGD�ÿ‡Ì¿��:IDAT8ËÓ1uC1 ВШ]´ ƒ<Bð0˜€ ‚×pwh›þô'íi<ùØ÷Ȳ-½í?ÆÛ+`®Ëú �U…g�Ü—5çZ»žD¨FÇ´ÏÀ®1z6ëá¶#ŠœM>ÉaDr$k<�\åQ,  ó ÀnبB‚ózD/´G ö½ú¸š`d¯^ì^gÐ@Y×Õ zûÀ"}¡™1ºÜ;Ž€œ‘‚AŽÉív�d E]Ý"5vsàº@EÜÕÝ=1çG€)¢¦ffšhÎ8Þ¢«ÂDLÅLEð°#¨J1SUÇH;¾d\ÔTÍLT5Ëíî7«àjbæ‘¢¦~ÛÿŽ`bæ™"ÆŸE;"Ý3"îVÕ§ªöŒÏYD<è‹ðÜ7g‘þµâ|~ {ÆK½ù?ð!uC ‘Ñ����IEND®B`‚IMAGE 205 ./arch/weapon/bow/elven_bow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTERJB!c)„!1Æ9���ZïsË´ÐÎ���tRNS�@æØf���fIDATxÚ¥Ï1�! Á�ñýÿÉ'V´Ø[¥r:y0Æé;j .b‡™ÒU`æ„\dIFÔý.:‰•À‰N‚ ¿Àu*'�oà • ‚N�‚P9°`E�¼û%oÃç—^����IEND®B`‚IMAGE 360 ./arch/armour/mail/elven_robe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���ÿÎ4Ι�ÿÎ�Îe(eÿ0Ι0™e��â��U��ª��e��‰�7äi9���tRNS�@æØf���ìIDATxÚµÑÛ®Â0 Dѽ¤v&ÿÿ»gÇ¡Q\‰F*H…Û˜¿¥¤÷#’»¿PÕu]îgY@;Ý+A¸+À<ý‚pÍ •“Ä/é̦>€¤ñlÉÌW�s/zFDßo-è¨Qñ1ƒŠ�º«H!ž€5ëlK¨âÍŒlœ±‚ hfå´msî÷÷ÀºØ—t¸T'AQö½õo€×YÄæ�F_Ýöb6\&€F@²Ã(€9�‘î @ güµBdÀb Â3@ÿä @R`´ž'0z’-ÂzÚÝç`jWq×ßçzÙ¸Uîƒ����IEND®B`‚IMAGE 186 ./arch/armour/boots/elvenboots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$����d��2�dEÿZIY���tRNS�@æØf���VIDATxÚÝ’1 À0 Ä9þÿ—ºh¸@—%š„ïŒ_(û”€1 Äþ3Fy+D>P²ÐU(ßäÂ\ D¾æ ÊöÊ_ U(T¡$Ðòölçqx{·Põ����IEND®B`‚IMAGE 245 ./arch/jewel/emerald.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í�.‹W�ÿ��d��2�6ßϯ���tRNS�@æØf���‘IDATxÚÕ1Ã0 Äb†úÿ—‹ªí�Ñ’¥èm²©ã¿Bh�4}dTìúö€=@ÝêžÃF‚húŠZ¯b9L%UŸ$×´ûú퓈m¼/@qN¡ƒ¸®X}ÄTí©õ`öó!”Ä]ȶ ,O*yó©‰ÍÍÊrÈ;€òì€C¼¶Œ´x ˜¡æŸçU-ewÏ=�����IEND®B`‚IMAGE 268 ./arch/jewel/emerald.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í�.‹W�ÿ�ÿÿ��d��2�í K���tRNS�@æØf���¥IDATxÚÕ’AÂ0 ɆñÿŸÌ:2¡E5.ˆ©zˆ<¶âmoÿ…B¦©ÇM ÃO/`æGAR'Ø�\¿ŒP ººj‰¯ vØ™\¤DˆÐ!ª®e•¨9 ÒT A’‰è%°R^;æá]à<çM'²/"pC {‰ä´fÀœ~ õÙ¢Ï,à>P#°Þ٠㺠6 êÊ×H˜Ýÿ{håUtB����IEND®B`‚IMAGE 309 ./arch/jewel/emerald_exceptional.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEap�c9ŒJµcÞsÿŒ���ÿÿÿ â<”���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ T©Ã���‰IDAT(ÏÍŽ11 -À¶€Ú›‚:‰�<àè¡I'”ïS‘„Üv3Y&Z×®µ¾·_R­·AlBªwìMœ±ûˆu1Ñ™ÀHcáùÔÅ$¬lΗ_`Þ^ÌÐ&à•Kn'pðbˆ- ÓÙK ^cÌ= ÇŒ<ô¸‘©”òǫ؎ îͤ}&����IEND®B`‚IMAGE 221 ./arch/jewel/emerald_flawless.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEBkkc9ŒJµcÞsÿŒ���ÿÿÿ3î­Õ���tRNS�@æØf���sIDATxÚíͱ À0 Aó%ûoªpeeƒ<àêyýM]õtèƒ/W{¡Ù+\ ûÕSM!—¤q` „¿.Xí¶ä=8]azu:±~Èç€`;ɧ/ݬÉ’K›ÛÇ/Òè)ž º[ã3÷`·þæ^¾>¿¢„-����IEND®B`‚IMAGE 97 ./arch/system/empty.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4VúMò���tRNS�@æØf��� IDATxœc`Ü��� �°b����IEND®B`‚IMAGE 111 ./arch/ground/smooth/empty_S.111 ‰PNG  ��� IHDR������@���Vq]ü���PLTE���§z=Ú���tRNS�@æØf���IDATx^íÀ����àûSaµ����p@�©zÃË����IEND®B`‚IMAGE 946 ./arch/spell/Scroll/ench_armour.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�¤�Z�Ïön��� pHYs�� �� �šœ���tIMEÛ "�§RÅ��2IDATXÃí–OhUÇ?oÞ›y;³fwMö_k,-Õ”*”R*T<ŠDOJ‘Bi< ‚‚Aï‚z*bOñäÁƒèAPô‹`’-¥ !‹If³ înv³™?¢ÙëîW{0_xÌå½ß÷û¾¿ïÌüà�¸Ë1öDÿ&‡ˆCþÉ[S)-0„@Ê;`JeÞ^òø…Õ¡<#¼ûüI^ýø:‹ oJiÜŒRƾ,È_û[.5êp·î>{;|¿àQ[“dÒÛ±9}ÊæÄ±äÞÞ­­¾øºÉŽoÓnwÈe?ç ­?R@ßß!ç+ñÝBHm œôK7¬üÒàÄÑm"1Áâ<¹‰ã4 ”Ù RØ ŸÍ ­?ÊKñÎg7ØÞö1øý\7M:¦P˜âÈýçøáz¡Ï03s’d2I.—# <N?ZÙ3ÅÑŽEý~ˆ•°ÐZã8®ë’Ïç)‹t:‚ � × bå#Nš¢k½HF!xæ©hµê(%Ñ:ëºT«U&''I§R$“IVWWyîéìÈ�Æu`AâfR¼ü’ͧŸ7ÙØØ`ii‰¹¹9æçç)—Ëôz=ž|b‹|696Ò�!bpÏó¨T3==çyÌÎÎR*•ÐZ³ÙèÆ¾T, C ¤a T*šÍ&©T Ïóèt:´Z-²Ù,ZoÆË¥ ,Kr‹Ôëu|ß§ßï³¼¼L»Ý¦ÛíR«Õü`¼(%±L¹Ûн<ÔëulÛFJÉúú:BLÓ$ŠÂ±9]yÿY !ÐÚDÝ"@!ZkJEýF©˜B!ÝnÓ4b½±j×zË’˜æà/tþlÀO+ë;ÜâÔƒ~°†Ô‘“Š{ï94¾˜Ê@ÊÁúGïKp¤l¢Ô@ÔÄÙ©?BkŒO@ûÆWX5ƒÍ_M„{{Ç‘R…4qÜä±’»:½÷ ¯\«òåëgp´$©å¾ØyóÛ6\½ô0?ü‘Ÿ«oc'L iÜñki™rßÑHW.>Äå«‹|óA™„)†æ@JAÆù«¸asá1Çå9Àÿ¿üÅî¤A:k����IEND®B`‚IMAGE 201 ./arch/spell/Misc/enchantment.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���nIDATÁABA °\[Hè¡*VÆWÀ ãÉ@Â*I��€àk€.`¡‚•¥ét`ë T.‹Îà \¨€ÕÇbnçöá;pùàÇ‚wçÕÁ¯ÎöŽ €EgÔà<�—?ì8D0� "����IEND®B`‚IMAGE 202 ./arch/spell/Misc/enchantment.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���oIDATÁAm1Àúz€øa†±:�§((Æ ˆfY¦ �����P1`]¨�Ìa]<ÛT0G´ ÍløçÀ{ ¨h8*?¨?ëê«+Ýuºß4Ì|2À€ °+ÀYW*ê{Ø��þÏ,k :Uœ����IEND®B`‚IMAGE 196 ./arch/spell/Misc/enchantment.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�����s‹²÷���tRNS�@æØf���iIDATxÚÝÒ10CÑøÝÿÐ]XÒÏUXø8FÎù·BDß&;'éB˜nÚêBìväì�Ú¥äÚ|XùV÷8—ÕÙ¹cK!J&@¼aÄ¥{8?è¿4`Oëy`ù8sHWø¥ú�„ÎRÀ÷H�����IEND®B`‚IMAGE 178 ./arch/spell/Misc/enchantment.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���WIDATxœc` >ÐÒ‚2ÔÔ0D²@4×Òe3@ ÎÌeË "]«´à&Ì€ˆ¤Aœ™a«V€Ef­Lƒ(˜¥¶,fÅ ¨\+ vp9@ª pka!Õ/�½1ËÓ­����IEND®B`‚IMAGE 161 ./arch/spell/Misc/enchantment.115 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���FIDATxœc` +`êÊ€043# µ¨U†Ö²iP‘™Q0)¨­i«À ÎÌN0ƒ«Ó *Ò•À�e@uqu.ƒZÆ cP��›ª¦%ø8����IEND®B`‚IMAGE 1176 ./arch/monster/misc/Ent/ent.x11 ‰PNG  ��� IHDR���@���@���·ì���*PLTE�0�-ŠVÒic2Í…?�1�ùqcDÙ¤���ïå‹¿¿¿ŸQ,Ã|—���tRNS�@æØf��IDATxÚÍWí¶¤8ÜICd£¼ÿë.U£÷´3Ýgþ,êmc¤€â£ûþó?’ò¸±ä7�.ò~C|xzÍL–Ô›¸ukçaý @¼ý² uŠ„¿2$þk‰ûS‚×–xÈ÷ùt~6—�(ÚÖNÀ—ÍÇO�F  !ô«KØC”IÑ{Ì/ öÓ£ ¬ø`z¯™£‘»Á7QÕ¶0ï§udø®ûÏÒèÈÒoA—ÛùçœI¬¯t¿[š{¶n'œÏX$ô@F¹þ~3§Xº>ú àÝ~óàI¥Áý-€O¢³öUï�/·öéCLµ�î%ˆFhbGìû}–'2`[80=°‹y´ù ¯?Ô7‚y×Ý„óAúY€jÆÇß•a/r«Lc§L !@WHÜmØ×X»×(pUcŒaT¶]mÄ>;«šê¾BCw®ÛÞ|Š<Ô&±Ý=xè,%ÉLCâ8K^ºS=4 L×ÍñNõöÀÃѽ鞧ú¡¼ =jÇ ÕÞR¨û¡ÐWÔR57/y)<¥Úö ñ¨Ùœƒˆ¸8žà­ jZQhXh3m&kúÖ;›:0 ÄTc¹'C0 ù†«}ÌÉ$Á€!&úMî£ÉcÓ´½y«}ö0ø“ ×c×åb®R(©.™Ï¶ëiTº¼=úŒ±ØÃ™ébåðá‹<õ5õ@<3L×iý¨ÒȺŸ x€°27qºâÔd ‘¬½#NM-X˜³ËGpqÆ«z”Ô d¢ *HNä¦O»Åº]Ý­îhDH�A�£ÉvS”=D J¦&Ч*?3gc_|QÜÄé‘»L¦QGgådaxK*¶»~r‘‚€qŸX݉m w* QŠÁëwj÷ A†oÔ‡Wd)ñÜôÀ§VQ4·¬ýŸ?©TrŒÊk\ ÒÇR_R½`å[q-·5’÷ CB.+sجNä]Còûï~Þ"‘zOƒá•Ï„>(û¤_‘±Ï¥Ou–²ª|0*-3°ê+dºî¬*_ ÔÜPÏ\Cõ˜ú³š³‰ä — ÎyãGB` ïâî"ˆœã§9ÍsÉbøP ÀœJ²')Ÿð0†°™¨L):œ>È”GÆ!u¿>åOÿ3űݚˆCîu$qÉ3"¢[F €F%Èn™@b!�Þ,ëì s©X1w6ãÜ=T]Eø-«îrqŸlµ™r–ç€tóÜÌÎDÔp’§Í1»eÈØâ–Þ‹t¼â¸šð‡&†\ËO)nÚpÄmñÆ wÀLé"«^äÇd´8Æ\›ßÅcy3SÅaéZ=Žs]‹Qò0Kÿ^þü™Q4 yd‚����IEND®B`‚IMAGE 1147 ./arch/monster/misc/Ent/ent.x12 ‰PNG  ��� IHDR���@���@���·ì���*PLTE�0�-ŠVÒic2Í…?�1�ùqcDÙ¤���ïå‹¿¿¿ŸQ,Ã|—���tRNS�@æØf��ÿIDATxÚÍVí’Û0ì)H¦²yÿ×-»pFvÏ™ÌôOI|Ö,°B\~ýG2]7JÞ�˜ÈÏbõ!À“šª”¤&†¦íüèxk_Ú$¿"¯Lñ‰}•˜=e!¡VŠ®*f±ZÒLÞ”¨[kÃè¶ü w_HýoûfEÑsT,ëkj`åÆt½êý`Àß�'Üín—X‡¼|RTÞìómÔ(â0V_5¾p'î\ÂzI÷rìD´[u¤ÜOkWòí‚Ub«Î\n§¿€]Òa<Xª±òí†MÌTÆ…Á«–‚…šùø^¬¯y~F Kn¸BÚQ.Îî”[tŒcÌ´&e˜Uñ› oönâ/i½×Ñ›Ìj$‰ðê6€}ïÍ_¾ÒÌPþ`\—Éw]÷„²†øÝ ­›uü63L1áoÇžºÚ„‰øœd Ÿ†�i»í)ÐsÁ\CK`\—¥MæÐÞ÷†/ì÷ÀoÜ‚]iLì›]ï´ÌÌËí\ñîGç™õ¦¥ÅK5.iãèºGíTÊF”GZoIîöðNh?ËÞ@h’ËK6Ž*û<Ð÷Ñý÷¿â?ã2É¥…‰}|-Oó3_¡ýÖº³òBoD؆‘NHxhx© à9‹8ŠVò.D0E¼¦wÅ;�’¼�g=@x^­o ÑS:Oµ¬›°ü° þ².LˆË´b%³ á;g†Z.îï 0!C·$€�öµÐAªâÆÝ8°´Oáô­o¶Q‘Û©‚ê7DB7BóÕ`•ʇ>EÆœ<>k‘õá$RÜúÁ8ñÂ3€)§¦KI¹Ì¨:iî¾¥OÅ,üSQ˜Âþ*·‹¨Ã"Ý2C³¿ö†àè­æ—wã!=ý¾´'—‘5À2jœ#ƒG¾?ËDé1·hvg 4æF àî ÀúQÍ^ŒäÝHÁþ3�2˜5E+ÇöŸ¢¢jj­.ÁîÑ1‚w�bkCfaßXDuŸ`_�’½ é Q*<Ÿ‚Í/¯{|³!„g‘q�são ¢O€ð‘LšÞ„ó3{1ÿ]¶ªíÇ?ì)gAûã»qùÈ8F+ù(‹9à¿ßœó±·�sÎÊ_Y a]vc?x®'þb®öHCÆž¤¼å`CÌN¼ñmq°ñ°ÆÅ—*`ö赪rjfg§î”u˜³NçYÿê.Ý6Ó![Z’ƒ—Aö2’3MFcúÆ C•A—û3ï'�)&2�;­¡ ×'“xfýN €¤D›Š.?C•ŒËPŒŠýÅÄa׿OÎCr48¾Ijü³üRPZæø����IEND®B`‚IMAGE 1208 ./arch/monster/misc/Ent/ent.x13 ‰PNG  ��� IHDR���@���@���·ì���*PLTE�0�-ŠVÒic2�c�Í…?�1�ùqcD���ïå‹¿¿¿ŸQ,:]ë´���tRNS�@æØf��<IDATxÚ•V–ò* \c¾Ð@óþ¯{™I°â±çîŽU¡%“¿ýy¡«öŸoèzKîÐ'nŸ\¸·×ÝW.ÛxC»eP ñ�K¾´hqËåñ¨Kõ– |>÷õ ×ÏdãÇâ¶ *wHxLs°~Ü¿%ÀÒ Qæ;<nŠ©±V¬…!tùr™GV©�Õ*"qR‰O ç›TÉAïÚöx*%‡ÔXwó öüáŸ_±E�û²yÞËð­’úîßE.êáqÖàRàνMïð7‚¾uÛv%\Ã+ÈgLû7‚öÕe$®¹_!j§¯ÞÌê Aºë|_iû¦å@ÞÝæ—¡Ì½µ·È+§ýN^¹°¦8l„Ç•{FòAÐ{ó´šËÇ€Ü|NS ;-�`bð¯Û`ÆàN›Î9vØÀX°9AâÞè;Cù!IˆOã¼î8ÓZë};5]{Sº&2ÁÇ‹Ö[4Ì>›iS.“ÁeN¢˜—®3R˜\(ð/;£ äi I°ª³fxZf™PQ´ ×Å2®,ûß5Ÿ“&·dúãc:'Ý®J&£Áè³�Á¼$†‘€Ž¡Jíñ3“¤‰‘ù„¦aL¥ͼ99¼Rjªn™BX•ÌÅàCÏ3;VO›²]g5¦ò0€ê@ËÀMûjP‡^7tN@pdÐÎ)G„8É¥\s½ÑGûÑT ¥þrp»T82PÀµJêÂEs=d¨.Å ;lÐ0¯‰Ò³¶(ë¹È{s’ï .<Y…9(=sÉ ä”Ž}·¦”»;µqÔ&BR1k”æëg–L`7­RB›R\j _çmäÊ ÕLâHûÈ ìd \S±Ô  èzÝו˹¶‚›ÈÚz©Ê%LP¤ãY±–G¥Ÿœ‘ÐÖ?ÿ!‹šwu+W¶|fƒhÝ;ýìø8àTÌdE!K§«Âùo ×c%û;°t½`.$û{†å^, JÉýž@ÃJè„qú÷$.p7ö?±á´øCÓÊ ·Ýß"СŒ¥£ÿ·‡ÊRϱ©ÀNóùž2ÒzõókýöåA›TÈ)n’ÁI|ðŒ’qóƒ=ä)}„YÜeÓÑ|šuðÉœŸ'[Þ>çP´­ü9æEÐià˜‘îõd’†¾òÞÔ§D¸!yK qÌ,†ÔÒ:B7ñ,Š3Ô-^ç‘Ú´®’@C7„ùT4ÌIõ``kc¨º­­ÝUQS]õhéQ»çÉá$0mªÔ’ šþ£ž¼Yu «%pi$(¨rCa^‡ã$è}õ±¯tZkòÕV·š÷Ʊí4ÄpNäÉñ’²¯”˜â1Šc) 2ÃZSã5AöWMâAFó E¸wè/¼íÈamý—ž—âá¯Ñ»£sZÜ:¯;ëÿ�K¢Y~õ¢$����IEND®B`‚IMAGE 248 ./arch/system/event_apply.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE¡¡¡aaaààà!!!���@@@¿¿¿-ŠVEÌ–_��� pHYs�� �� �šœ���tIMEÚ ".œNÒs���cIDAT(Ï­‘Q À0C½dЋˆ'zì•u¬ÖÎ}Œåó‘´F©%Q \2ÐÐe�[—f0,…c{#ýIs°¦IýŠ×`É<ÿ�Lè�/åg}„ˆÝýiîgsc’÷Cý ”œÙFÄ;Ý����IEND®B`‚IMAGE 277 ./arch/system/event_death.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE-ŠV-ŠV���¿¿¿-ŠV+ßÒ��� pHYs�� �� �šœ���tIMEÚ #.„Þk���ŒIDAT(Ï­ÑÁ… PǰOBîv±ÿšŒø%у'sã1.Óö¨é30ñj&¤m@_“rù®¯‰<«ßI ¼@Ï}¬•,K‚R–µÖµ*Jy;ñìaý�B˜ÔÑcú�sÀ¼‹0~ÿh‚9Á&€ÌHz€?Å=dcË!›ý¤ÔÛwO¹„4v†ôyŸë����IEND®B`‚IMAGE 248 ./arch/system/event_drop.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE���-ŠV¿¿¿Ûà¢"��� pHYs�� �� �šœ���tIMEÚ "5+Ÿ���uIDATÓÏ1 €0 P„âÞèTz GéT¥ÿ>.]<…:IN)M‚¢£YòH>„T(Õ�UéÃ.ˆþ$O#I&e†#²ŒÞ+̱êd5`´n˜®ŒE Án šAÈ?ÚEQ¾á•ß¿áÙ*Òëú²ûUÖº&=����IEND®B`‚IMAGE 261 ./arch/system/event_pickup.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE���-ŠV¿¿¿Ûà¢"���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ  )¶ú���uIDATÓ•Î= €0 à:Š{ SÉ)K§*Í‘\<…:IN)IênfÉGxgÇ"ÞæÈp() Ð*ÈDšID³ yAn_êeq(hCT¸®SĶ¢Aňxc¼/€WnÁ˜¸—4„æ“ùãßßO "QàZÿ]!����IEND®B`‚IMAGE 274 ./arch/system/event_say.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sRGB�®Îé���PLTE-ŠV¿¿¿ýäò-���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ jÅ,D���tEXtComment�Created with GIMPW���`IDAT×c`�ö@‚H$04006�)f&ÁÁ�¤9@j€Â(„<ÎÇ„Dp€dÁÚX È<°RË©€¹¹ßè�Æ <p£à��*“ ²ô2òC����IEND®B`‚IMAGE 274 ./arch/system/event_time.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEÿÿÿ-ŠV¿¿¿���5ÖB��� pHYs�� �� �šœ���tIMEÚ/|×¼s���ŒIDATÓUÐQ ! Ð\2æß‚{Ÿ ›Sv¢ÛÒ âÑL}†p^÷eÆFΙº9a‹b4Õ>ˆ¨Ë¦‚,¤ ¦/ÛgÄPņ)½#tȽ/Ñ•ïÀ7N®Øßiµ®"«�V¯šÍœÁª¨=Q[E5;9íøn‡y‘ÿ-?áŒ7l›g@òôìw����IEND®B`‚IMAGE 281 ./arch/system/event_timer.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTEÿÿÿ-ŠV¿¿¿���5ÖB��� pHYs�� �� �šœ���tIMEÚ(D‘"���“IDATÓe1Â0 Eÿ%M¦’½£á¨g¨&FŽ‘…{¸'*V¢<'/±\>oì0IÆüƒÚÁQ×Ò N¨Q‚¤ä”b‚wÁsdê ¥Q ×M:œu€>lU†¼t¹Æu•kÐmÍåi¶°h=™­lC-€m­R¡*”0YÆŒc‡;þ~ã D†Ç¾å;7����IEND®B`‚IMAGE 451 ./arch/ground/Wood/evergreens.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEG$�ÿ��Í��¥����²""�O�.‹Whàÿ×�d3�Š��d��2�³ÏÆ��TIDATxÚUQvÄ ËÁÍí†þÿï."o¶}©`BìžË<ììÃ-{%m=^ +¸ÃO¿™fž€Ê3ïµEÛŒ¤RDøJA%0JìR ”?î£$ÀÁ8LûŽV F'øò¿”¸ø/˜f%OÀ¾‚kG™I%¢ °® µµHhœ+8· ß|˜% ZpÌèsòpZpÌüê2]ÇzÏ"£Ì�^vs%XŒ2×n˜£½Ïí®]s§xîaxÒÆ®ûÁfz.¨Ž]Iœax:éÞe]0ÚŒö޽˺ð8Íh'Ù»v òŠ1NˆSü-Æ8ÉÞu]•¨n“ ÞºpdtDK½k§p‚˜1s ëFP¡Æw#îö ;=eõùÄDÂâï§Ìæ?:uç®æë­)C#Õ ›^Sÿ†)GÍrR½Žc@ê È–ë^W dèh¹"ÆKû¼/����IEND®B`‚IMAGE 425 ./arch/ground/Wood/evergreens_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ�2��O��d�G$d3�Š��¥�.‹W�Í���� Zbs���tRNS�@æØf��6IDATxÚUS‹–¥0£­“Œþÿ¡<vÑ{¢pR8Ú¿±ÖY ôË>l"’Ü$?/{Ý¡Éß>¢RJ.” VDý nÕ9JÕKËË<(%Æšþá·?§)°ÿÃL*1ÀN îƒk&”)°Ý‚V§Óˆ„&°Õ‚s:ðøåUC Žýè¼�[%8f~t˜´KÛ)¸¶3®™çáµ{…`2®´]¼ŒI:ñ2òtm÷%íF2´±KÞmεÀ±+©¨#œôì¾Üf1Ê{Í.úª3Ê»NeÉh'Ž3XY¸Œq³«¾jq§=NàØ}e2•QhåÔbbö_ÆW[6…!ßé šâyðv¯X¨-[ÅìýÜ÷ܲMô¬­û.þf±TY} £ÚMæí¯uâõ@ßP&A����IEND®B`‚IMAGE 2863 ./arch/ground/smooth/evergreens_S.111 ‰PNG  ��� IHDR������@���[a?���-PLTE��é�Š�����2��d��O��Í�d3G$ÿ×�hà�ÿ�²"".‹W�¥�£…Ìa���tRNS�@æØf�� °IDATxÚí]’ã*lÇ;ïÞÿÿ¹G°,[²0¾ÔKÍ¥·¶¼©žVK,›ýÈñsšR¢L™æGù'e¾TÌ6­þ@ñ‡ýÇñÿUoPGý›ë§üˆøt¢ü,n¾Ä_.T¼ÿÎ;=;ñÇüÇñÕ¹£þ­õåãñSq bAÜÓøRûžÇÃÅAðwücLçô[ü7ú#ÙêïûÇ#‘ß[þÍ|þԞƗ|ÆÃÅAßÒFüQÿEqF¿É«?¬ƒ¿7=Ùô,üD)gíi|9åáâ oé(~'ß]?|ØñQpÏ_ò·ü7úw׿”Lš”/áóDkO#¾œòðpÔü=ÿ¸~—·ã3yÇ¿ÉßiŸ­?üú[õs »û+O/“‰–žVP/ç<\õhÁüe4<"ˆ¸T?Ó~~±“?Z¨¾i¯~�Ž„í€ñ‰êdÃ=-×KÀáÇÂwûód¾å/Ô…Ç‚Æ?n�“¿Ó>@›Ÿ]?ÇöA„IŒgÀ´L6µ§ñ£üV?mùr­£–æIõ8@x?>Ùù+·~èt­Ÿï&üúÐb›ÿ¾}õ+Wý}„§ sÀsµ¹xR¶ô””]gÊp±ð‰T=˜÷ãûzåûëG }«…õ£MþhÑä¿ËïXÿV‡¢dÀx<�~º lêÓ$üTþ÷ ˜Ï“ê±Ã°âzåûëÇ�üú£Í-Úüwü¾~}�ZTwˆyÈcOùkêKýÌ×áçô!tás&գţˆè…ï¯pëGˆ þóüwõŸÄóXÔÎUÃãdÍz ÿP¢ú~8³åÛ•¬þhÀ<ñûôy ~ÎŒ~½äEýÉË?ÖÀè<y@MÏ4a ¢üüdzDÁêíRú›<mü£>™ñÇê¯ñу­¿ä‡Vþ““¬‡Ñ Pù;�ÕÓ2ÒL¡e¢9«ÿŽ^øV¡ñ§´×·í'üHý=hòçüBó÷Ú?ȿџµ/",jæÕȨ>óÓI×ðù-çœÕWaåÑ@ãOib½“¿ðWêçæø"íÔËÓ'B8ùo•Aþ[ýiû"B¦š3¯FAõËdFg÷È‘“ú£/¶c ŽÏ·[¬7óþJý„4>€ ztÃËŸºóoô0!ú�S±×ÕÐlôS.ÿ¸p;Y„âï,Ã?³ÕÛAÖ[«©Â›î¤~+>|Уѣ ¨=WÞË?Oœ_”£ohý�PôÒö#Øèk)Ô««ãžøãûNLÖNXo®¦ |68©?ñÛRåå·zd§ÅUâoä/þÜ~Ê[Ÿ[·ú}}Ë’¦è#Wíñ‚êy&땽„âïðþÚ‹èÕTå£Ï}E¯ù·ñí¹ò†Ìø†?°áÑÀÒy�†Þ_‘‘9ö (úf&ëýNüÞ]›½úïxÕWhfúòj_?ó”šøÚTÚ¢ÂzØpâGþØ ÈXy@õžòAvUà:X¯3Ù¥;!ñw>¥‹æ­mþ&`—_’yKêoù©ÔüV¾‰oèaÉùcÉ~~ á¡|Ïw¹GU®£ÑÓD׿ õoé•w’~›¿É»üòsÂÊKý-ßÆÇŽßÆ·ô°àÅüÁùpôØúx XV#¹E®£ÑgtBÆ=J%@Õ›ó ,Fõêoò`^gZ"Gïóijù41C¾}Ódêcm_˜üÆÎŒ%Bí1×1¢×/0ñÐ÷Ò›¼§V½ø›| ¿x,-Rð'M–^ù6þ¢Vž£èwí»,}ì_Û—v~beÆG„œr.J™‰ úËó­Ë:Uoñ°ð“…×ü žÃ³GÓãŽzb>ÑOŸÕÂËk_ß´/ ®èÛúDaóbeÆG„Ì«‘kD\ÇK?UýÕyC‡¾êoñ¶ã,üš¿Ã×ðì±íq½¶hžÛø¬ž_Ÿèÿ‚ k€~=×/<+<ž­ìøˆ@sþëçG*Æ�x„›®Ïå}Õßâab¾ä’¿Ç×ðì±íqª¯õoZ”f°áY-<¿nô4·zÆÂ³àš~›+<žÍìøSÀœÿõr©1�~K=æ,“Y­ŠyåOákŸe¥¡¯áÙ£éqª/õo[”×R•g5óòZxi?ÕWÏ‚‹ú ßæ?Uz£G…“"P1Ç- >?,Ÿ‚ýÇ›z2ó`x<Ñ)_Ão†×ÇÚ>¢—úe-{“_s;¼¼ý 4ïõ³à¢Ê‹¢òLïóŸíøˆPì ·0øüðóSwµySÏÌ|¤ŸÏù^n^k­kû°^ëÿ³ð ½a^¢môó_åB;½ò,èÔKÅʳŠÏz�dÆïº Ä0jw}~˜ëÆVxSU ‡¯o:ãkxö¨ƒ·OÞê¹Eg{%lUW>ñBËV?×ÿ‰~ÃWó¶>M´ò(_{^ôEÍþF|Dà”‡ïýô-ìo¿ÿü�ƒNÌ÷„y‡?Ðï_rÆU,þ‹:çAaº¶)Ô–¼¶?=x€ˆÏpùØßÑß÷G¯mÈ‘~Xã³úïLcþ |ïÞx„kÎ0ö§G‘¸Šf¼Ï#€èïøã†¿®„à–ø¬Nù#ß¼÷ÛîOgÆØŸ$bœœàóPõ�îù§þÜ4毋 cþ˜0yºÕýéÌûÓÇ"ýó|¾#Ì à¦ºáÏ 9èÏj¢ø!^ÍבPÍìýéã‘ñù0ÀþqŒaëŸnø¯ 9ä/ê<è?Žõqêaœ/`ìO’D·ûãa¡Ë??0Šÿ‘?7ä ?«ósÀúxììïïߟ>ÖÿÛóÞ³ÈÑïïdÐ{>AmÈaÿª¦Éõ#Î÷÷wîO—þ?öÇ?„Z_­ÿ„Põ„´?Þ‰x; Ž}­s:÷ÿ1T|,òÛ““óþ!ä)¸×ýé_¼uퟋLøâ‹/¾øâ‹/¾øâ‹ÒÝç¬|J3ÿ±È ÿÏÐýëãüñ„Ï…Ô×)á!Ø¿ž{øñôÙõ_î1 ¿Áþõ\y<Q|þ�>vþñ¹ö¿ÁþuZøPŸ#ž>vþñÙbøö¯gæCýÓÕëþù·BŒAŒ8ÿø\{ü û×óÊ#àŸQ|Êx?ô|Ÿ÷ò[wõõŸk_€pÿÿ=^ãwž–{JÇßZæ-‡nüÊ;ù ïÈ©ÆuÎXÏWÀÇCÑ¿ÿœG{~@ü¥äý�|ГÏ7 Øàýÿvý™yGo ¬îvwGJ|&r°ÿÿ&ÝþúxdÍÁ·–]IÎHpÀûÿ±æ‡œ™7ôæù[šÎŽöáöù@ÄûÿïñP>šÖ½ûÑö‡GÐC'1P¸Âc ɼ+ÐÒÛçÏöáöùPDûÿïñhΈÏ*¢Ùãåü‚ ‡œNÄuÿ?ZìÎÀQ¿åµÇP«÷¿U½ðøXtîÿ‡€oö×wüÆ9‡ßZ~ž÷<'\B{>� 0o¼cŒóŽXx|,Î÷ÿçÞó¢øÔ÷?òð·–‡WÒýý§|ÛcûúÝü˜ÇÇâ|ÿ:…çôñ½¿ñ#ºY™{ˆÝÿáó8œŸÀùùíó¹8ß¿îox âud¥9ø™#ù=d´þ|á3í“k~~ýÿÞAÖΕԾd����IEND®B`‚IMAGE 895 ./arch/ground/Winter/evil_ice.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���®PLTEóóÿÞÞïîîÿ¼ÍÞ—§Ç“½…𯾾÷ÀÒçÆÜïÇÇ猜­×÷÷ÆÎÖ¥µÆµ½ÎÖÖÿr‘Ïk~¥ÐïïÔàÿp”µÇçç½ÆÖ­½ÎÖÖÞ½ÆÎœ¥½œ¥µÿÿÿœ­½µÆÎÎÎÞ¥­µŒ”­|–¥„”¥Þÿÿ{ŒœÆÎÞ‚µs„””¥­„Œ¥{„”ÀÀç­µ½ÎÎÖ­½Æµ½Æ„”­µÆÖœ¥­{„œ­µÎ¥¥µçï÷Œœµ<³(“��ŒIDATx^URÕ®ëHìæ1³Ãt˜.ìþÿí$Nv,YjU©ª�*¹M–IBÈ?n}¦ÆhP´\|ÆŽh-ɱª*¸þä qeT4(­QBõx¥n=yÐ@¨B$ÂMc«¥VQˆà½»d&Þu‹"è¶ k¹r� çœR/B¸¬ÜÒÍüˆ[;õ̱Âà§©Èçß9ÞäKÓþ¹\êg?Lì®-‚ù`ùë«UD"*ºmh¯ü6Ü{¢VÆÛ¯)g¿þnÙKAµ6æb¶´ZǨ¬ý·GÞd¸ß£D¾‰Yš÷†ÇNX»³¾VR¦[µá4ø¯„_ ¨£°ß‡—§ÓD–†MZrö"áW¦í·M3òޝ>ÏÚÝM"DËŒ/X¹à©ù豈¢æ€È23ï(oŠhTü”û‘oÄÄø7¥”°´w¾ý‰!Ï Ô›ðƒÝA½âüsAeš.v]È_sJ�ˆ cmaôJ”w‡Ôð'ˆ°:Ý×Á¤½# ùŸƒãK>eWKœ¡ƒF _òî`›üÞ/—ütµexCª{}Ùí,Š—Z°C~( e&I‰ú<Llêûé×mdÔëÚÏ hø¤4:—acè‡?gwùÔ›~‚φ+¡u£êqI@’DÄyêAi!¤”ÎgÎ}]‡l‰-Ñêj…¨åµçÜÌãì¹Ðîr•†g~†ìxSlÛ\àå&ÉbÏ‘›—·TËMÒÎÓŽR4k‘àBõ¸ ûÞ=M �÷¾ý >̯é£BÉŒÖ~Íö̰‚¹ H³}¶‡ÓÓÓ|V‘m3„¸¬,q³/�AÊò”€¢æoBʦ®•ÖÐì/ZIø&DËë¡b����IEND®B`‚IMAGE 890 ./arch/ground/Winter/evil_ice.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���«PLTEóóÿÞÞïîîÿ¼ÍÞ—§Ç“½…𯾾÷ÀÒçÆÜïÇÇ猜­ÖÖÿ×÷÷ÆÎÖ¥µÆµ½Îÿÿÿk~¥ÐïïÔàÿp”µÇçç½ÆÖ­½Î½ÆÎœ¥µr‘Ïœ¥½‚µœ­½{„”µÆÎÎÎÞ¥­µŒ”­ÖÖÞ|–¥s„”„”¥ÆÎÞÞÿÿ„Œ¥{ŒœÀÀç„”­­µ½­½Æµ½ÆÎÎÖ­µÎœ¥­µÆÖ”¥­¥¥µçï÷Œœµ Rð@��ŠIDATx^USÕ®ìHëjfÓ0>—vÿÿ˶o’yØDŠT²å;U.2ÏkÆø·¿“bÔÀ[Æ?c‹RJàGUUèïGôÊaWFI‚T ªžO©ZŸ4¤4 Dà'ằUÏRÉÈyðÞÍaEÆ»®#|QDªíÂÆ&BgŒÏSØlÝÒMÿâ6f8+¤? EJi„Y¾Ôíͦþíû¡ÿBÛ¬(‚þ¦cÚ‰€$蜥?†µ'(©½9ùš0úóÏ‘¾D)­?Ø… ä>FiÌ¿õ4±ÆÂå Ø!Ú<ïŒÇŽs2¾–Bä[`™X éËV3Täæýör}ðÒ°i»”·ÕL€¼³y7ãnWˆß§å™ M&DCµ/h¹à¹æc†9X�‰¨CX”V€˜AËÈYÓ”| ù7)hiï|û+†q,H’oÜ÷æ„ê-cŸ *òt±ë¸ FË0ÕM^òruHö?Û×uÈÚ[¤¹Æÿspz›ë‡Ó¤W€È—Xl³ƒï§Û­`å’Ÿ®6” Öàj­7§“¡}ÑÃRszo:ÇÒ \‚º÷Îçáç<2¨}mŠôMi¤ç,4š|û»]ýeéœ_ôÙ°~Ë€j¤$C=- È’�)¥3JŠsÀ9¥üΘ¯ë`—Øbµø¢xö„Lƒg\¹5ä2™ñ;²Y±i÷fx½‰I&±´FN¶™]Ã\­7É;I9ôƒÞs–®·LxÞ„¾ŸŠ3É @îãøM|6èº+[­”ßÓ Õ´ ®B¸9þ6·×ëõúÚoÜ)Õ;[–p¸” ! „Ž9EÍÞ¸M]K¥0}Ù()ÐïŽC¢éα����IEND®B`‚IMAGE 896 ./arch/ground/Winter/evil_ice.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���®PLTEóóÿÞÞïîîÿ¼ÍÞ—§Ç“½…𯾾÷ÀÒçÆÜïÇÇ猜­ÆÎÖµ½ÎÿÿÿÖÖÿ¥µÆ×÷÷r‘ÏÐïïÔàÿk~¥½ÆÎ½ÆÖÖÖÞp”µœ¥½œ¥µÇçç{Œœs„”‚µµÆÎœ­½­½ÎŒ”­ÎÎÞ¥­µ„”¥ÆÎÞÞÿÿ|–¥„Œ¥­µ½ÎÎÖÀÀç„”­”¥­­½Æµ½Æ{„”­µÎµÆÖœ¥­¥¥µçï÷{„œŒœµFðÊ,��IDATx^URÕ²å8ë6³Ã|/ÃÌ,üÿ­o’ó°~p•J*5¨ªÜs'¦%!äï|£ zoP´\|úîh-ɽª*øùd£s’—^ÑLiªÇ+uëÈCÚÐŒ*DòÜÑï[ý€Zy!2çòY £ÄІc bqݳµ\å�‰çœRBØò¥šù-míØi0÷ 37†åÍö¥iívý‡kÆæ ?%2óÊm‘ˆŠžEÆÎ´Sî’­5Q«àÂ)ô”³?]ØsMµ6æ…b\Zí½ÖþÛŸ">=¡D~ö1õ;óþ(¬=Y×+)Ó.ˆ:sš¹¯XÍÔ^Ø÷ëóv3’¥à”† NÄj`šÙ¾Ûâû»–+¿O|:ŸSxËŒ«Y¹ð ‹âŸä€QËÈ2š”³#åßnàg12îM© %,ås×þöYQÔ)Ë7á{‚þÀùçÂÊÔ?³â» €¨lè- N‰rMH5¿2‘6ë8˜¼`„!ÿKpx.Ƙð=7´ÑôK® ¶)Á÷ÓõZór¹Ÿco>‘jÅ»Óɲ¦npÁ‚]‹k /£$%ê[3²±ëÆ?s˨÷½­?^Ð)ã£Ò˜ç'C_Ý-®ùò±3ÝŸoB#êI):öÃrÉÃØÒB IW*nœ»¾Ïb5?¢ÕO ¼–d΄£ãBçë‘«Ôäø â}vL —áL¯;I;þ89ÕÃs3Zw’f®™Îá.%A³On¯IðØ {?ÕeeùË啺Ðö»¦B‰Fk·gO̰šåéòa¯›ív»ig/ŒBòX–x~*ï�AÊŠtuÏß„”Sß+­  yÚi%á?^?Dì¨L7����IEND®B`‚IMAGE 899 ./arch/ground/Winter/evil_ice.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���®PLTEóóÿÞÞïîîÿ¼ÍÞ—§Ç“½…𯾾÷ÀÒçÆÜïÇÇ猜­ÆÎÖ¥µÆµ½ÎÖÖÿ½ÆÎ×÷÷r‘ÏÐïïÔàÿk~¥p”µ½ÆÖÇç眥½œ¥µÿÿÿ­½Î{Œœs„”‚µ{„”µÆÎœ­½ÎÎÞŒ”­ÖÖÞ¥­µ|–¥„”¥ÆÎÞÞÿÿÎÎÖÀÀ甥­„”­­µ½­½Æµ½Æ„Œ¥­µÎµÆÖœ¥­{„œ¥¥µçï÷ŒœµÛ¡Ÿ.��IDATxÚURW’¤J«,ï¡ðÐÞ›ñ³öÝÿb/èå£"é$Bª…—]–)Jéß´»±b´ [!?cKî1FÑ{UUäñ¨Ü$šÊ¨YÐÆ€"Õó+MëéSFŒei�úÜÁ¶1¶æ ŽRïÓ(P™B~¹\2‰x,Ð.ÃÆ9¡!È Á˜—‹°Ù§©›ý)‘vn8bï? õb±(`,_ÚöÇfÓ¼ù|È¿ÈþÑ"Ø^,¶NS ÙA~`'íÏaî F[a‚ÿúsæß53ÆÚÙ$0z£vïE—Áå Ä!f8ïÈÇ¥tîè|£•Â[P},ø/ä0Qº÷ë÷z5Щa÷XÒKäÀÝ»+¶ÛZÍünŠÅ`Ò(èP·¾æåÄ#–Åoç%d�šðD¨*3ûjü,Y¬ ß‹ƒ8'þUëM›Ú'ßþŒ¡(jôòUúÜI³âsbN—Ø[0JÕ¡oé½–åìÎö«yÀÚ{b¥¥ÿ8ØC†øž,Ë ö¥f[tðýx½Ö¢|`Ô7Ž3":ZÍxs<:ž×9LXòkq­É)–×Ì-øp: ¿Æ‘ÁìW¿½pº m ¥ :Ë^ü-›ýÃÉžòÙ‰|/ €é´fCÓO À’�€¢”@1¥ò&„ošM±¥F¶ŒD£èè ë/¤IsÈ5Ùkq#Ù}¬Øµ éŒô|´Ø‹9r¨ÇÌ60¢ù&¸sÍM"wÌØ‹õÏ›ð÷c}b˜�’>Î/Ì£AëmÍ$ºšYcüŽ_¸å5O¡ÝùÍ]Wëõz•ï2;sn)MYYÂáRÞ+t/0u#^¥R]Óhc({Ù­ÈÿuC¨°]����IEND®B`‚IMAGE 373 ./arch/monster/demon/evil_master.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����þ¿Êÿÿÿ¿¿¿f¸���tRNS�@æØf��IDATxÚ}“Q’ƒ0 CA‘UëþÞ%¦­“™¢2†7ÈÈæX$Ç“#ŸÓ†ô 3�Î'Bç+í¨jç$—4…:°CWìn„/eº›À©î_Àû ìfº)µ Þk›^¨ß@Ú1 %æÍBZ¶&÷±r÷ VæÄæû.” <‡×Í퀩mœœÑ”"Fßý/E:Fø’¤ÛWQKI;¡"N"kÊš[͘çE°"–3³­§–¾³¢ìtƒúõ­ z¾ ]r[ð*.�ò½ßpš|æ#óFúí•Ñè©Vcß,„}oÿ©zC Îþ�Œ®`ÿˆ&����IEND®B`‚IMAGE 378 ./arch/monster/demon/evil_master.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf��IDATxÚ}SA’à k„¼Žõÿ¯-ÁLe&$cÁ«ÀA¾žàÖì‘§÷ß*Bx@ñ¤pKÁ’ýà]>Q†$C í;J\.‡F"@_ Áüùøu‡V„Xm\|¨ Në„vÀyT[5 ö†’‹£ÖÃ^,.¸ Ä-“£Ì@ Õ(|)÷DkX¥]%¶yáD T[£! ŽQÜú[c3O²=§Üïˆ.`úhÌÊ6âät—úäóà >ýd—vï|wÖyõìKå.ÄûMJþ¶9 ÞwÀZoæ˜)èßhB #¯5JèÔ1sé kÖ Þwøû»ðó þýAJZ't����IEND®B`‚IMAGE 402 ./arch/monster/demon/evil_master2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V�ŠŠ-ŠV��c2�1�cD���ÿÿÿ�íí¿¿¿ øj���tRNS�@æØf��IDATxÚ}SŽÃ0[pàœãÿÿ½X´*¹isÕJ©]0Nú:€¿¾>ã+o¹@~ ×Êü&X‰O]XBºVá|ã³ø˜Ü@Rh‚™ÈÅF —Mà¢Ä—Ý€ñ¯—W È*P")†Ï ¨³BmàÈ óå@«1Tá¸rx¦xöˆ3ÚÙà-p×½Á ¬ †mÎL?§ VY²á9ÙÖ:`$bFü?+¸ÛÑ=2ÜMïc)ÍÐëš»t|Mõc) … ½&k4)¼?o=è«ÊQûiÏTQãÂÙ=¬Ë7ªï•7s%ȧ*ïm*½•�Àí‹wŠ¿¹1[ª™«ýeõD´­7Û¦¬Ÿ‡°¶ S‰è‹?±ÉX%y����IEND®B`‚IMAGE 395 ./arch/monster/demon/evil_master2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V�ŠŠ-ŠVÿ��c2�c��1�cD���ÿÿÿ�íí¿¿¿i´î§���tRNS�@æØf��IDATxÚ}SArÄ Kì@UQýÿ»Ó ;Y1“–eGJŽp¯Ç'°|¬›š“ÏWkÒ'Bëãi�‚ÐTŸêšuöeŠ!¶àÒ¦TG©Ÿ€Æ0ï`ÎW]ÒäÀ•RSa‚w‚™Ç}žÝvÂÎðbËYy-Sý¿Šo ´ä‚)‘ý8 vsKͤœ¯Àš‰ÔÿHÈß²È Jo)|Ëbú}iÏœö=úeXz]sˆ~²¨] k¼'›;êÙWï´Xãž‚¨£:ç>qå¶(È+‚_Éóï&?ÖRx_d>%·‹mBbü=j4*Z²ÇÕNåÐ>Ü pIX‚€åLv`û/Òú ¿³eFÛ>–����IEND®B`‚IMAGE 318 ./arch/monster/demon/evil_master3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2ÿ�����±!!@1ü���tRNS�@æØf���ÝIDATx^]ÑÄ D³¢å X.�44€™þk:â8ÒåæÇÒ“yƒ|ÜI¹¯$üëM†Ì7ø-ªÊÚã¥AN�©Æ¹ÍÑ>HUZe¾HyíĂѣ%¨¼3ù=<°™Û èê4ž $ýY8"Q£¹‡4G/�¯P"ŽÒ2'øÔÓ+âèƒk9 A;SlPŒÂ– Z꺈¬8“ζUKqPÕVs‡^6`ˆpk‡ õ»çe+ÀLÏ={VqÉ‘§¹u¨‰ ãX•%>ë#hÇ/Î?¬j±����IEND®B`‚IMAGE 313 ./arch/monster/demon/evil_master3.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2ÿ�����±!!@1ü���tRNS�@æØf���ØIDATx^]‘ÑÄ Ds¢e¡X.�d°™þk:‚c)Ùù|bžÆâð¤ÜŽW’ü€Žù&ƒô ¾Äå ¤2ͧr�*W�lÐe%À Tä{N h׿Jìpß×ÁNbK¯7@éáð†4*½8è!M·d˜{ò×'Ë�`§ÈøÄ-|‘yH8,jˆB`žq‰M*b=ÂŒ4ei•0·€ŒK*Ë>?ûaÙS#nî Ì–&ØÜZ‰L[º\¼*»Ëkó*ŸûEªuws¯Ó‡‹ìîó_ßø|¹<F©¥Ìê����IEND®B`‚IMAGE 316 ./arch/monster/demon/evil_master4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����ÿÿÿ¿¿¿Œuà���tRNS�@æØf���ÏIDATxÚ•“Q DGëÐ÷?ñÖ”ªí™Jò$<N©èñúHM€î@ÎŽØ ˜Š°—JG-�e|‚…Ôò¬àýˆûz—š ™&}Û&ˆ5‡ÑÐ Pá:×DOƒÄ@OM-:ºñ€u·p¨¾vN€x=&α–ež  ¨v*+¥F·?¡ P‹»Ã­{€jç`x}KóÝÊÊè9 bPœ�y!„¢øˆ¢,Î[…,“U±§W¶]a;ÌÓ#üæ V îÒ“����IEND®B`‚IMAGE 325 ./arch/monster/demon/evil_master4.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����þ¿Êÿÿÿ¿¿¿f¸���tRNS�@æØf���ÕIDATxÚ•’Q„ Deh»Ìý/¼€hSª›ìû0JŸ‚ë‘ÿ;ù!‰ßBkÁHÊΛ`™,t!7¨ Ð=¸³'�ãBÙ‹K„âÆ¼Ý· M°Ï 5¤€›àNªxDò‘¦@ñ€útP€MôÎ ‚CDaáG-w€\3Šì)²2~ xÂ<5´‘»FÓ:7äÉFœÂ\tx£! ]ÕÁF±‡ÎG°€êcŽ>4b   5Š •�î­™C§Z<Þ ¯l¾øŒ• þ»Ê����IEND®B`‚IMAGE 571 ./arch/monster/humanoid/Human/evilclown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÕPLTE} J�I=˜�–º¸Á ¿E÷G žª¨333ÉÇ"Ê$¤¢GùIæÃ!gÿi…ÿ†ß)ÝEÓÕ>ô@¢ †�„É ÇZZZl�kËÉ___ß'ÝÌÌÌ!É#n�m Ø"ã! ä"$è'6ð86ò8|��äää@öC9z�y¨¦_ýah�g¬ª¸¶­��"jkSûU$æ&f�eD�Cª¨¦�¤°®²°ÿ��G÷Iœ�š¸¶Ý5Û¦¤cÿe¾¼iÿk!Í#¿ ¼Í�ËÀ ¾ñ4û¸���tRNS�@æØf��IDATx^µÅn1ÝmÆef¦ 3üÿ'ÅYEÊÁžÉiëZ¥ç–ÉIX.¯?Ëý?Eý'è”îB.ÊyWèàênízËn¨>!ž'hñ”·ùΣKê}K�”¥éVQõÃ|Ò·ì‰ó><5è&/>^ñ6TfókîŸ%–¨¥°ÙðÚkôÞÅ$7÷ÃE¯Êo½¹/01^- ¤Ñ VW‘8G‚æ@Ë%ШT‚UŽt`Þ(%MPyÞ…£7$³™ùÙÚW•³Ä FÒ™kà°Ç\ P »˜Ò%SŽ‹‹¼Ã¨¸_PFy´íÁá�¡}ŒvŸezù#Óéto 2íÙklÁ_l'çd§¬D_¦����IEND®B`‚IMAGE 247 ./arch/player/class/Wizardry/evoker.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������ï§_ŒI­ôlôÍ…? R-|Ô›���tRNS�@æØf���IDATxÚÍ“A! CmÃÿ\³¹¬Ô„êq›"!â ÜýæÅ!éèÑ… útÈÞì®ðH¥k±ßRú >2A™Ê;paƒŒ¢Úº`.PD€Q£9×\+¤Ó¤ª=  j†=q°¥ú`@ç�†Ö]�Ê@Í„ùŽdŒ[ h€‹‹§ÿ*Éà|¯QÛŸ¾ P����IEND®B`‚IMAGE 248 ./arch/player/class/Wizardry/evoker.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������ï§_ŒI­ôlôÍ…? R-|Ô›���tRNS�@æØf���ŽIDATxÚÍ’Aà Ýì.üÿÇ]̱¶=e¤ ¤™%þácFŸ¼9 ¤q� ºQ{ÊÞ¸+ Ð*ˆÝ|{z-ÞÀK”Ácwßï‚GüT¬ æÁ(ÑZ{ííê�2ä9®÷¦ï öO !�ìl»�C {Æ¡�)½Êàz¨ ü›ö‰¢ ~voá ‘%áoûO‹����IEND®B`‚IMAGE 283 ./arch/player/class/Wizardry/evoker.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������ï§_hàÁq8ŒI­ôlôÍ…?d3 R-%“,B���tRNS�@æØf���¨IDATxÚÅ“A! K6v`ÿÿàšH½´$•z©%N3X!_2”–gZÁÌFË/»zá[ƒ›y7ƒ°{÷„œ±j�ƒ6gc„xDÁI¤@žH˜3¢<ñZ Œ7K¬Õa|N³ó6àö®¬å~ß÷Ôɾ㶀;8XïQ‚ŒZØœ9DU@F'@(M€Rßx§,ÂR�³;g!Óý›(Eày»‘®Â¶¹����IEND®B`‚IMAGE 288 ./arch/player/class/Wizardry/evoker.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������ï§_hàÁq8ŒI­ôlôÍ…?d3 R-%“,B���tRNS�@æØf���­IDATxÚ­“Áà CIŠàÿ?xn«V˜¦ùÈ{˜)å—˜²ä{ÁÝmÉ?Ö®¡º×Õµ¦×a÷ŒIˆ Í15Œd�!‘pˆó0 ´&lÓ†Ê"Ü»¬^žÜýÆ×€@õO¥5÷ ¿|þFï:m´6FIŒ -å&A¬ †*"/ŽÈ Hœ²2$¤oˆãŒ„¼@X™ ¸Ã­p&ݘýb}k”?æÜüë•Çx����IEND®B`‚IMAGE 287 ./arch/player/class/Wizardry/evoker.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������ï§_hàÁq8ŒI­ôlôÍ…?d3 R-%“,B���tRNS�@æØf���¬IDATxÚ½A1CCÂÿ\'ê­@¥jía¥a+ã—Óò›V˜sŠtü™O+haA¥‚€«šœ¹Ý-çkÓ2îk»Ó€e‚€´Ü,» z¸“PH8—î0Ï…˜ºna"¬±lXŸ÷{æ¢,InA'ÔÂá¾<(Œ²ÁøU‚À['‡×‚£; wJAD¾ §†Æùk#ß Í þ"Ý©ÐÉó����IEND®B`‚IMAGE 299 ./arch/player/class/Wizardry/evoker.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������ï§_hàÁq8ŒI­ôlôÍ…?d3 R-%“,B���tRNS�@æØf���¸IDATxÚÍ“Áƒ0D B üÿw§‡ZÌ¡§®3óžsü’ì9³DƆŸrnÝT`(èx`†XuΞ3µF÷Ùrw£N�öR†ÍN˜œ,ÂK'p.g¼ixÄZ6½T‰«Ø· "À™èn<R´–éA‰| kIÆ™U\`ÜCŽÖo¡ÿÐä ¡ ±{½do ó­`LñGÁmW`\K°'¿�á%<o¶Á°šñßä«C=µrÍ����IEND®B`‚IMAGE 263 ./arch/player/class/Wizardry/evoker.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���ï§_hàÁq8ŒI­ôlôÍ…?d3 R-$Í���tRNS�@æØf���”IDATxÚ­ÓQ  PÛ™Æyÿ/8Ø×Ra,¨?y(¿$”¾¿ˆÌ¼€Gfòfæüžë#”áˆ9+ …¨'H# ¨² €�Õ» ©Íu˜þ<r�–{om—Ø‹Uô�Üd�´ @¥<ÀHtHÀ�P¥–¶í Ù>`A@ ”Pók øC^!eót±j ����IEND®B`‚IMAGE 268 ./arch/player/class/Wizardry/evoker.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���ï§_hàÁq8ŒI­ôlôÍ…?d3 R-$Í���tRNS�@æØf���™IDATxÚ½ÓÁ !ÐnÖ$ÖÿÿàšS/Î,ôÐ xÈCÁ×/¹vúþA�8€÷ü‚èP‹ŒDìì­Üƒ¬�MÅœ`)½Mù`‹²¹S¤ Púb )}@ÙÌ*m¨éל�æ,Áµšèe©$—Ý»ND÷Ȫœå ¤UÌà æù‘H9¦[pwùmþ™¡7L¬‚I����IEND®B`‚IMAGE 210 ./arch/spell/SpellBook/evoker_book.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������I‰#@r,,̨ dðæŒùÜH]†Ù¢���tRNS�@æØf���hIDATxÚÕ’K€ C¡ñþ7–©©RVú&À¢/~åSÄ Íë6c^»Ð®< {—‰À4‡ëÀx"0íRNk›L�XYFÀ‰X^€˜aùþÞŸ[! è‡j‚äÅ4püŸþßûŽ÷óà����IEND®B`‚IMAGE 188 ./arch/wall/ewall/ewall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��qG$ R-���d3‚B'Áq8,çk���tRNS�@æØf���UIDATxÚíIÀ IJMþÿä*¹ãJ«Ž¸ÙX`WËLæ*‰xÍD÷kŽ  5Nü­ÎoH÷Ú_ôQ˜:ñ"šÑà8`‰5(°+ §Ia{�ôVÝFfe����IEND®B`‚IMAGE 250 ./arch/wall/ewall/ewall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���m8zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬���:“Û���tRNS�@æØf���‡IDATxÚÅA À0»Mõÿ®’‹h —.ä4†¹ö¦7›B}ŒáWškÀx³HM¬ÈÔÐ •ŒJåýJ! ‹šTæ{„Ó~è€Sx¬é�¼ê°„²ÃâU‡NÐüƒÜá P::ôKÅw‡^À¬øîpÖïÂâß…Ä“KÂy6“Š7E����IEND®B`‚IMAGE 196 ./arch/wall/ewall/ewall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�m8B$·_4ôóÍ���¤ g���tRNS�@æØf���`IDATxÚµŽ1€@ ÃJIÿÿe,­x�<Ü Ž¬Æ§”c VC÷oµ”c Ò0½¤ãiÿ\}R )Í{( îi`½š‡Á\ Q@Ðé €à‰µ{<Äÿlì {‚¹›����IEND®B`‚IMAGE 292 ./arch/wall/ewall/ewall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���«IDATxÚµËà Á<œÿÿ÷–øÐ©+%—-Ö„o4 ßY8²–R4¸(?¥ðõ$–*¬c& K[x>Ë�XÉIÒÈÕ®ˆ[ —¹²ÔÝ ñ²G2+ Yxè}k­ÿ, øõä=Ìä=Ìä<(ÍA8ÐЃõ#€p p”03€h2áà���‰þHç�¬?ØOX�G®þŸÖΧ†þ½����IEND®B`‚IMAGE 235 ./arch/wall/ewall/ewall_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE���m8zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬���:“Û���tRNS�@æØf���xIDATx^­Î!AƒÑÕµRn°ëx7˜u?“�åVcç”8’Ö`¨|I“oùnÎ¹Øæõf€Ó/[B\À=àðv•ðt�[ÆcÝJÖžµ;°[Çx]Ê¡dà]Ía Dï@oÞ’wà(ï�£Êe‡þÛñm:ÈüBv¤����IEND®B`‚IMAGE 185 ./arch/wall/ewall/ewall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE���m8zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬���:“Û���tRNS�@æØf���FIDAT(Sc`�.É ËÄ,/àÊLÌLGHÊŒDÐÌ”DLÓÔBHŽLÌ”BHÌ4ÍŒBÏ”LF1cÔƒÍ�ÖýGf¤ <����IEND®B`‚IMAGE 290 ./arch/wall/ewall/ewall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���©IDATxÚµ‘ÛÃ0C—K×äÿ¿wˆPÖ<L³Ä“À2¯¿hZ…@­•g)òfšV ²*ðI! €µAýìý³í€.€úÙù„|�tÁpö@Àþðm€# ‰ ¤L ‡Uöý@§“ž´�ýÖí@iœÂ‡€ðn ¼ ù Hô€w€ÐCzˆB²iz¸dÒÐ $ôé@�>]ØF^ [¼����IEND®B`‚IMAGE 284 ./arch/wall/ewall/ewall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���£IDATxÚŒ˃0 ±ó0µóÿßÛ(lq#±½v$N³ ÑÀq3ÄíUÝÄFkm¤¸6å|Î_ƒbÞÝÆ7Û ¸¹øuBÛ`J+^è öu ¡ƒ)k7ïìr®—Ôë hÕXÐðúÐaÐðJ;( p@<uØ´|9à�퀂v€Ò!´<ï €tÈÏýÏÿAíðuHÁ:¤ ðfCˆ=����IEND®B`‚IMAGE 181 ./arch/wall/ewall/ewall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��B$·_4ôóÍ���´_¨Ö���tRNS�@æØf���TIDATxÚ½Î; €�ÄÐççþgÅR6…bš-vñž=°Î|0è†eælO÷üþ÷ J`.D D%P‘H D%Ps!J (ˆDö'üÊ—wÀ’ e����IEND®B`‚IMAGE 227 ./arch/wall/ewall/ewall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���m8B$ˆcG·_4¤Œp²¡„À·˜Í̬ôóÍ���ÑŠ+‘���tRNS�@æØf���pIDATxÚÅŽ1Ã0 ĘÖJ\ýÿÁE;$Šm€C‡rÑ ANrëq<{l‘­µd"ãó챃\s ÚÌÍðûÀkêàõ¥Þúgþ`Ö… `L€$‚ 0&`*1R�&ÀH"d…¿ðà (añš����IEND®B`‚IMAGE 171 ./arch/wall/ewall/ewall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE!��B$·_4ôóÍ���´_¨Ö���tRNS�@æØf���JIDATxÚ½Ò1À0AðùÿoN”>šÙÛPÜ 5gƒZ`.¸CƒWÈÇß,ämy»$Är .‰)ä±€<ósßø‡þêó<ö@áA4!r����IEND®B`‚IMAGE 215 ./arch/wall/ewall/ewall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���m8B$ˆcG·_4¤Œp²¡„À·˜Í̬ôóÍ���ÑŠ+‘���tRNS�@æØf���dIDATxÚ½’A €0 Ó˜h“ÿ?ØPЃEæPt ”²CXhä&[÷cëÞ<Í,e"½Â:ûCH@lfL¸ëwP „¼Ý¹²�¹rI,@Η„! Çúwÿ± ðVÏ nEÔœO@����IEND®B`‚IMAGE 268 ./arch/wall/ewall/ewall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���“IDATxÚ¥’Ñ =A¶½öÿ¿WÛDËfT4Ý„ðpX&\ÎgýpcÖm~ïpeì„°ìyî�0_ô'€y:À’YÀ# 9€U ¾–Tj’h�삌 ݼ¥¼bmðÐ0)ƒ¬Á\é¡¢Â=(¢‡¾b1øÕûRÕ=ó@ Þz¸xUÚŒÔi‰����IEND®B`‚IMAGE 280 ./arch/wall/ewall/ewall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���ŸIDATxÚ¥“Ñ …0 C­ë¬Öþÿ÷Z|pëR—rÈBØ–GF*«X­Õ‰›þí`¹PQ!á`ÞaE…Î[í?�àŸò#�¾Ž £´D�Pš[ Ë Ï’É}€ @8@iH:ßã vˆyƒº€ýnÀò äï¢ùø.(É}Å’í`ÜÌvh¤pÜ ; @éî¸åkMþ����IEND®B`‚IMAGE 302 ./arch/wall/ewall/ewall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���µIDATxÚ¥“Ñ Ã Eu:Ó¥ýÿïÝH{ i>ôB‘$‡z¹jy®c¡òÎ:ì»ôX{xeÙ(~Ànb .i¾‹Ôk Íõ¨³ImÑdÚ@«Ô`D 9èx°zÔÜLŠÊ&Ñdr '@¿Ü6Ð `ý HÓ?*•è—h±r˜÷fºÄã>f÷AÌ9Ð@#x‹Íå@×Ýj 9 ÷¥ûh{ ’à’C�¾m¼"È%<Û����IEND®B`‚IMAGE 314 ./arch/wall/ewall/ewall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���Òu‹l���tRNS�@æØf���ÁIDATxÚ¥“QÄ DeÕÒRîÞ5š1 küØIL¼ÔÉ´¤)%á§k­USr¶s/€”j”Ž3ô?pöð‰êo@Ñ€· O�¨S˜¿#Ôg Ìe�¨£IÉÞd¸@¨¨�—‚ƒ2< òÀbÿƒ1È�ÐOËB�z?œ%{ÀÎ/aBè'o±\ÍÅösß,4s@ߨ‹Ýÿà÷}dä`�k1#kR§ÚÐä�ÙÝ,Èa·¼„6�!|ä)�rØ­M����IEND®B`‚IMAGE 188 ./arch/wall/ewall/ewall_redpost.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��S~��¤��Éþ���Hù;—���tRNS�@æØf���UIDATxÚí1À0Ä€þÿä ö¸Rƪ§lv¬Ä®ÖÝÌñ˜‰îÇA@kœø[¡ßÐ¨£0uâ#d²þÀ' pÀkP`N“Ò.ö�Иbÿx~Ë����IEND®B`‚IMAGE 241 ./arch/wall/ewall/ewindow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÀ·˜zM2ˆcG·_4–w[¤Œp²¡„m8Í̬���ßÙµ���tRNS�@æØf���IDATxÚíÐ9Ã0 DQq™Å÷¿pàRˆjR†%ñ‚o=sÉ´Ô«ª®gÿ  ©ƒ»€w°ÂS CZ+§à¾0­ ¥sD¾ƒØ¿Yup¨“CêïðCÀƒƒ9;´9;Ð$†7“nOiMAÇà`ÖÞΆ{ï�ËH|/ € ×>Ü{Q����IEND®B`‚IMAGE 193 ./arch/wall/ewall/ewindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�m8B$·_4ôóÍ���¤ g���tRNS�@æØf���]IDATxÚ½’Q À0C£³÷¿ò¬°/)o Ûû iBTs  ˜x²ÅI¹srç!Ÿ¢df]ƒ sA^”ïš>í<—–¾k¼+¤¯‡®±™¯û{p€¯ú{nÐ ‹=Ø µ����IEND®B`‚IMAGE 474 ./arch/weapon/artifact/excalibur.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷µÖ���{{{Œs�¥¥¥­­­µµµ½œ�sss÷Æ�ÿïkœœœ9!91!1)!11½½½„B)11!¥¥œ1)99!99)B9B9!BB)ssk1)Î�{{ss))91„„„ccc¥œœ91)1)­¥¥­­¥)!{{s91!!JB)ŒŒŒÿ�„”””€ÔXP���tRNS�@æØf���øIDATx^ŽGnÅ0 D3êÅÝ¿÷Ô^î»ÈÄ Øb¡´çinø±ty,ƒ•^rXZèpŽÄ7e}ö’ç½úÞËùÏå6}íƒeò«(„zYÉù•Ñî¸IÔFïjâ¹|9øE÷ê­ÌòíãàßrþE×'¿Û³þ*ºä¯¦~àÊ—O)î–³<®ý+òŸ¦Àoç´8-¦ý‘õüÇ.×°~½ýsŽ÷û^ ¡FÿôOešäûϺi´¨xŽhÌe÷@þÌ ¢pÏ”ç€Û7–mK+H�¹|QÍ”bÈS ÈåAùñ5÷(Ͼø{zý~�öÙGÔ“P����IEND®B`‚IMAGE 1706 ./arch/exit/exit.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��”PLTEÿÿÿJŒZªY¯=u1cB|rØ'J�=€�.d+c™ J‡ a°N‡ Pš N“pÍ1[�3i%_˜xÔSšD~�>{Sš�.l IMŽ =p2X7lV¦d¼a¶J~RE~Y�G“M‘CoX§�X�3nK„�7w�+\�)UXµDŒ lÊ kÂ_¬gÇ CyI–+xÄ.P d¶S“I”*UpÔ�bà E„&J?tP‰Fy�G8hDƒ�7p]²2^ dÁ�OHƒH!mº [¦n¿5]�-ef«=l=}�$Q[¡�hÏ OŽ Tž C|Rš gÂuÌ�7q dµ ,KXxß�nÔe¿ _·b¾�>…�<x)B IŽ +J�/oP›^¬KŽ7b)SU¢N’ BS�3gb·;uI‡a¯U”L‘%H�0ooÎk¼�1l�&VTœ� T�#G9m�L™ E€�(`�:zLW¤M˜T �%Z wÚ�'`]²�,c H‚]¢�3r?h0X�HFySŠCrqÌ2N�N¢Y”B|'I�?V—$D�4pNƒ�M“@€X ,T"NP˜`­ eÀ&Y ]´?mPŽE~\°�<vS£:q5f^¬/`#C3bf¿ë�Z³�#V�0j^C† WžrÊGŽ>| NR•�$^�W©7�%N?k�/g 0VVªV«hÅ�EŽf±D…�$_çm¼���tRNS�@æØf��ÄIDATx^MÓÓ¶,8à´mÛ¶¶mÛ¶mÛ¶cÛæØ|™éÞgö¬ù¯’Ê·*•‹€óÔÔ¼<_QYÊŠ‰êAsûÃh¯kÿkJ”Úr ¬¡-ÒÑhtÐy .a8ÆÅd#þ­Ô57'ÿ¤ÙÒh4[Í5‡Å�¼{0*aêî‹Ïú{5o¥í?[Š Û¹Éãy ½Âf8 [×|v´Ð„[ák±º}÷ôúº`ÒdNN6ë6 ]‹Ç»¿�ç-èäf“Ž;Ëÿúá¢O*]o6™Ç½EêìÝh×Â7c¿“÷qÈsj53//'³D@Õ¼ËNŽ8 ~å§�À MµdRN+“ =ªhí?Þ7ÓÖÚ<³gDáÀ•¥‡x~íWª)æ¼X|ôÛQ+.ͬ§~³„xvüÜ;›|àÉ÷0¨Åb©xÞ#/\«¦›Ì7Ξ™ò 6>Þ·A {Uc±H¯óÓ¹—åôñö ØÞå7‘¬¾9‰º*ßJ*+-‡õãf½—ñe‚ûkûI¾·r «ùCþn•n1÷¤ äÍÁ8ï ´ÈÒ›HS× ›ÿrér�ÅV.Í$mæâ.'H–9cª*Æ×¶¡²²7o²bÊ¥ œA.†>T^šBϯ«ZlŒú½ UêYnåynÝݽØÉPnÝ¥ð³L‚d…*-E•e¹ÝiTGDbKât}@´y_F#{Œjme…Ê*ó§ä{7ªO°,:·>u ˜F÷eD9‘ý×Õù|Êr©?…a÷&(!Õkrþß*Ï 2…^IÖOØUW¡ö£ Éû¶2û1 ÙQXÿ§ç`䆤èÄj#FÕ�•I¥‰Ÿ8=‘l re!�c³ñ}ï±î%ÓFŒÕjí'K†²ô/D¡î#½âU "ÑßëD!éŒq3X]¨7!®àt)©S0 u(›âRt¢=C:›• ×ëG~¦=uWVð™ySÚ¢U³Af)°ã+…aºûTA«6ȉÈË\L[ÞÔ" øÈÂàðÑÑwˆ`™L‘û5>âñecÕ­ÄDèqѰVDÁ“ˆ´4ª_ØN‹fïnH.òÂ5ˆÒñüQÒkIRR¯2¶·ý¶…^§�¼ä ïËöèÇ•‰·½ïP>'9 ìHÐ>41q | /Z�Ç÷)?iW%¶»öZ'õpÖ]ççÉ0u²ç´ùv‰¸*ÅŒ.®Ïwxø?a:ÙH¸÷k¾ÅÈ¥Ö�¡,àt�£����IEND®B`‚IMAGE 1649 ./arch/exit/exit.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÓPLTEÿÿÿrÆ"VŽb² jÇb¢&^”R– rÚBzb¶^¢‚êf®nº2^vÒfµ J’b¶:b:‚ &F *R>v.R&NV“nÂ2pfÀ*JnÀ f® *^^§ F†R*hN*R BzVž&rºb¦"F"Z–Z²>nrÒRšR†Zš jÂb®R–&nº&Jf²Z¢Fz*V *B 6d J† 2^j¶*b–6jZ¦ ^ªBrRŠZ¦ R”rÈZ:rbºF~vÒrÒJƒJ“BrJ}Vž&VZ¶"EZ¶Z¬>vBŠ .ZB†JšBz&B vÜN’nÉ N’R¦N‹ Z¨6fb¦~ænÆ.MfÇ:nj¾VŽFxNœJ‹ zà VŸ&ZnÔ *If¾N„Z¢ ^± 2X:g nÌ b» F~Fƒ 6^fÇN” >tnÐV¤2jb² fÀ*JfÎ"Z RœZ˜jÀ :tb¶vÖ"T .S6ZF‹:{Z¬^º J2jvÜ>r NšF†b½JR–^±BwB€rÖ6oJ†BFzI NŽB~ :mR›.Z^ª^±N~F~J“&HN•jÊ&Q.WV°B…NŠV–J…*`R‹ >z>lR–RŸ.fN‡&^Z¨b¿F†J‚NšrÚ fº*Y6^N†2ZVœRšRž._>„Bx2^ b´F’>}:fV¤ F‚>}.kV£"M B~:t2oJ6s2f6m:u¥|���tRNS�@æØf��LIDATuÁƒ–�ЯLÝÔnjÛ±mÛÆÚ¶mÛ¶~Û¶mÌÌ#4I{ºIÎö^€‡àJßQ«×&¾¹–´"t­úõôuýÉÒK°”Äz’Ò6ÉNÏÁÁÿª‹gè°•8X±n‹¾\ ˆgØ”8xÔXZ»Ã¸xäFÓ‚/Ómð [_½{nïöQÿO5@åм¼±6,2™¶íûYÙ+Ö@àZç•ÛÔ¡:¥�áD1Ý1Ê :ñ¯Æ,4öH{{Ÿ§Nz.…B½2�¼m öÑ~¿wªó0ÞÒØ¸`ÉÓáñ4ºie(ÀÜŽ=0Ó…GûÑ5ÃË…hŽ}L«í¥Í#õ�s¿ áSÃyÉ(²F[ qqÛšÉv»ý˜]÷ÔOÓiÄ‹›A¸‹3ÌC%;Æ­®;5µå¹×~<M¶sÝI=–;4fÏ'‘ 4å5ÏÊ/ù0W4ÛL¾~³?mR ýŸÑGm#ª¬ ±ÛÜÝ]QP;+o!_×ݘT YX?ÊØÂÆÞ¦h̓ ƒƒíQw÷)·»òÈ-÷£Ð1É(g:‚VŠV~P6Ø~ùÎ3¹"Ñ)¡ÐkËÑ÷¼�lëâ÷&{ ‹]þs»,ö…;í¢°rMņp¤í›Çª ͤ8î›wZÏZ¸I/'ÈbkËÂ2JNôqøR´zS*�Îã1e;¬˜AZ³;VFH Ê’öõ6ø]ŽW‰á®1R¿Ãúl°«¢fwm­ŒPödRñŒôp“ ‹œÇà®ïÏEE ùÎ8Ç ‹#B®^ ËÜ'œâ8ýþ¬Ê÷xz¸ÇÅ4ú|Á®VͶ'2åò–ÜŠó~ë×§×3¸¯!ù×XtRZ5«·¦ìÌŸõ»œÉ›Û<DÜ÷ÖQÉÀÌç:»zÆ[cÄZ^­Ú¬ôÀJø©#’>1AÿEÅ0 Î?þÃË'aÑÆùJ‡5¨ÊÊGPtÚwFÉ<ô‰§tü‡èãÓð=Mùƹ9ãçüìÏUÝ�‹ˆz:-%e*cU_\ùƒ_¼XF…é±]š?únÆœ×�åÂÖUßî‡]ûÅ=›i~Å-ÕL}7Sñ’µ©Ï\RUe¶kµÒÞͧá_Zá/b����IEND®B`‚IMAGE 1708 ./arch/exit/exit.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��”PLTEÿÿÿZªY¯=u1cB|rØ'J�=€�.d J‡ a°N‡ Pš N“pÍ1[�3i%_˜xÔSšD~�L™�>{Sš�.l IMŽ =p2X7lV¦d¼a¶J~RE~Y�G“M‘CoX§�X�3nK„�7w�+\�)UXµ OŽ IŽ B�N¢Y”B|P›gÇ CyëI–+xÄ.P d¶S“I”*UpÔ�bà E„&J?tP‰Fy�G8hDƒ�7p]²2^ dÁ�OHƒHDŒ lÊ kÂ5]�-ef«=l#C=}�$Q [¦�hÏJŒ Tž C|Rš gÂuÌ�7q dµ ,KXxß�nÔe¿ _·b¾�>…�<x)B!mº +J[¡_¬^¬KŽ7b�/o)SU¢n¿N’S�3gb·;uI‡+c™a¯U”L‘%H�0ooÎk¼�1l�&VTœ� T�#G9m�4p E€�(`�:zLW¤M˜$D'IT  wÚ�'`]²�,c H‚]¢�3r?h0X�HFySŠCrqÌ2N�%ZX ,T"NP˜`­ eÀ&Y ]´?mPŽE~\°�<vS£:q75f^¬/`3bf¿�Z³�#V�0j^C† Wž�?GŽV—Nƒ�M“@€ NR•�$^�W©�%N?k�/g 0VVªV«hÅ�EŽf±D…�$_rÊ>|q`¤k���tRNS�@æØf��ÆIDATx^e’c®I�û¥mÛÆÐ¶mÛ¶mÛÆµmcmý™yînöÃVÒI'UÉ9é4(qd‰ñyºú)–ØAÿ’q~=º¸„ÜÙmR/N˜'->ø?Á³(²Š”vr–žÒ~x!þ fü‘ŬúPèG¹üH)—ß>p�°&ÂŒ8 }¶:s¢Œõ*5µ‡F3˜2ï¥û‚+)"ï(�«¢ô\ªg@‰F·Å.u¿®¶î·¶®oêä´^ì®4*ˆxûi¸åN÷]Dœ9b¿µýË”5ÿÉMqhq‡Ø¹¤ö$‘ìAxã7úíôÑ?«†¿wÏ׺pL‹55ž~‰ -‚/îä{Œ£ ‘Jc¦ÉÄù]Ã\÷d_óKð³Û‡õµ�í!ÆL,[óIGhn¾œ—ç÷þ=™+ؼ´Þðµòy6Qýi¹Dýœ�ËvU«Iä׆8m0€Ë‹Y¦DWX!eì—$éÖ= ›·”֮̀<ÿöM%//–LÙ@WŒ%öÂ0;4¯çµ�"Fšÿ‘9,;Ý@£Ñc/¾]fj>ì\ÝÂãü¿”¹„QŽ./¯Ø¨Ž†K˜Lß~ë…ÎÊBÐQxš!èk# §ÜãÜíE4L+ðòë ÀŒw~Y;D–Q*ÐÕÒJ«“SAÚlðÙE`îúðù¾ñ‡ÚÜìNF@ENN``u¬õçª<ºÙ»”ÖŽJ•;§ ½õI¦œ{Š[µÕêÔÑh°ˆ�ÐRÁîÒÛl•‰øÐÀâ^÷)ts‹MеZ«:†Ë,)Þ@[Æõ:Ýõ¦”»ÙЯ"øÜ¨¬¬¼e•=á: Í)áOT*p«jËçɵ9%òi”MÕÜ\%“Éš.÷#N¨Ë‚¢^W~*”Þ¸—Í3~#ïçj4++‰…ТÖs½Æ+OAar¥3»9†£ÕºDærIä7™ÅbÚKÓnQQ¬U ¬ÒÓÓç°.¼Þ½ µ‹êÝÛÛãm/lÛ‹Œd¸xJ’ÿ”>(hL@u+X8=ot´m®v§«¾ˆ‘Tíú+0Õè:;%ì‚´w›ÅzÙMD~¼QAOó/éí…3»|.õsSgÉ:{·i¥í^üñÀ9tç¯l‘šõe 'J¨–žÜÁq‚Ž=Xÿ›ºM¾ÊÏš6_Zp±9ÛúþÁ Cåht„’f ÁË+íÍ,�à° Å!GG1ßA?ªôYV-Ù‚oÁ\§|ÃÎê�˜¹ò8âYÌ¢Òsý7–ì*Ã*d&�����IEND®B`‚IMAGE 1652 ./arch/exit/exit.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÙPLTEÿÿÿ6jb¢&rºnºj¶ VšN†nÆF~"Z–N„vÒ>fN’&Z *BrÆb¶ jÂV¤RšRŠ b´F~ &Fb¦2pZ¶JšB€>vVž ^ª._R¦b¶>r ^¶ b»*JnÉn F~Vžb¦.fR† .Z~æ"VŽBznÀJ} R”f²j¶&nºZš6f‚ê6Z&^”b²Z¢B nÌrÒ.MjÀfÇ*b–*RZ¬N•JrÚVŽ 6d *RfÀZ fº VŸ >zbº J†:r J’ zà:‚:{ 6^Fz.Z"E&NZ¦R–fÎN~.R vÜRŽ 2^V“rÖf®J‹N”V°*JfÇ f®Z˜N"ZR:brÎJƒb²Br^º2^V– .SjÊR›^ª&B f¶R–vÖf¾Z¢NŠ:gRžR–Bw.fB†F†Vš"F 2XZ¶VœfÂ2ZNšVªZ²j¾Z¬2^ ^±J‚"T&HF†&Q F†F’R–b½ jÇFz :t>nF‹B…2jnÐrÒ"M&^:n Bzb¿^±*hb¶>v RœN‹V¤:trÈ.W*` *IvÜ^±*YJ“Bx>l.kFxI J&VB~BŠ6o >t :mN‡ NŽ:f B~F~*V Z¨V£J…>„ fÀ2jRš Nš^§ F‚NœnÔJ†FƒZ¨RŸ6^2f>}6s:uJ“2oJ._R‹>}6mÔê^I���tRNS�@æØf��IIDATmÁ—¥�à7nn³ÛlkÛ¶mmÛ¶ÍkÛ¶}ï§_Ð9sšš¦}€¹ŠUÝä–R- ŒNÝ*ï´çXj5<РHD“ª±Â&‚ðÃÿ ІnцÌG˪…ùµTÿ°L:ÜgÎ[Qß}´öO˜‹ª½Ëçç¾®Á0¬“Løð¹,-ü£¹¹/šÿô·Oºí€»ÞUoè$8GT0 E¥š-÷œÐ$nă‡¾t)b7÷;øÛ/¡½¯>•9¢&“!£ä.¶ï5ÜAM–�f<¶±-®°Il—uMáVIo/Ž_¦ ¹çaƘޓ¡ÄÅ8Aà=aÉbñ^1J؉™Hîa˜Ñ^gËh ‚D“rײôÛSê˜^‰ä+23L¦¨)Ü5 _¥SV­Xù"³&f[]9ÑÍ@ÿ  £N×*!ˆ‚© JÚ‹Îí;mzG˜Üù¸¶Å|1‘‘™JOušs€±ÙÙoÓUô°[MP·5Âk:£ŒƒšíqQ”{N'ƒá\ibêv…ÃâF|¾kàµàû0?±É“òyÿŋΎ˜ ÞÖMBdÅmÖVßpÄ©üù!Bh‹êèO8»ø{Fÿõ*áÖýç¦Ç‡TYåà(åI;ÑÒ–²6!áÔæ³e1U$‡Ãj}B»ï–ƒ÷ÍwÉX(tY_gZ;z½¬l”ɬ©´¼Òv®÷<÷ÙòãPaë5+& ñýžô5kN¶ZUCòZÚ¾vÓh\_<tËØAƒË¿¨ Û3±ÇÔ>ÚSIzϲñ&’wKåk,¢Ã†ß–»1"Øk=™4Vrµäíª½ú¶ÔÌaÁßzxc!Ô<úëÁqLs;’ŸXqÂ3ñÉUGIöã©YƒOU �Ùy÷èâEò{z§Nè§<¥×× b¹0ëå“ã´¥®@$r0?§Å}aúN Û<ÙÿZ Œ]§ØáE&åû¢åÔ´gâWÃ\K®5Æ®ÛÒÊCý‡Ï³j‹‹a¾dhè[zó‚ÝAE"­ `5Ìw¬Kº±|Ç~õ[Ò.þéÓr:üWÑzÖ7ÊKÕ/P~zâ÷K7þ˜†ùŽúÑPÁû/ÝK{†R=¦Û³þŸêÍxjß%����IEND®B`‚IMAGE 1706 ./arch/exit/exit.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��”PLTEÿÿÿZªY¯=u1cB|rØ'J�=€�.d+c™ J‡ a°N‡ Pš N“pÍ1[�3i%_˜xÔSšD~�>{Sš�.l IMŽ =p2X7lV¦d¼a¶J~RE~Y�G“M‘CoX§�X�3nK„�7w�+\�)UXµ!mºDŒ lÊ B OŽX CyI–+xÄ.P d¶S“I”*UpÔ�bà E„&J?tP‰Fy�G8hDƒ�7p]²2^ dÁ�OHƒxßJŒ [¦ kÂ5]�-ef«=l#C=}�$QH�hÏ[¡ Tž C|Rš gÂuÌ�7q dµ ,K�/o)S�nÔe¿ _·b¾�>…�<x)B IŽ +Jn¿_¬^¬KŽ7bU¢N’S�L™�3gb·;uI‡a¯U”L‘%H�0ooÎk¼�1l�&VTœ� T�#G9m�4p E€�(`�:zLW¤M˜T �%Z wÚ�'`]²�,c H‚]¢�3r?h0X�HFySŠCrqÌ2N�N¢Y”B|P›gÇ'INƒ�M“@€X ,T"NP˜`­ eÀ&Y ]´?mPŽE~\°�<vS£:q5f^¬/`3bf¿ë�Z³�#V�0j^C† Wž�?V—$DrÊGŽ>| NR•�$^�W©7�%N?k�/g 0VVªV«hÅ�EŽf±D…�$_]���tRNS�@æØf��ÄIDATx^M¯5F@÷Ú¶mãÙ¶mÛ¶mÛþlÛª­?Ó{_ûšžd&ƒ“Í,�uŒÁÝœÿËËú±1#üÇÁ#ƒb”)¹J$N̯Ð̲:ŒÿÀ'Gôƒç”Ž+šÄ}›xEó^Ñ‹ƒñ£¸ûññÀ~;ˆ`Å7ÔÞ'ßòº™ øxDÛ•ÞpÓ�8ólùnme�´ª§¾^ü¢þÁÓEü•ˆÜàÛ»êÒíP_Jj*|"H”š¡"Ñ#HBÂ*ÃäÃpÜW¹r©4þzd$,¨qDxüB{^+š3‰ ÈôÕTùcNá”^Î_ÃÈ™¤õ°R¤iÏËÆ-ëån©? ët°\&+]¿+Ô&Ç6)4�ÚØ¾ž’¬Å^‚u…Õˆô Þ,Ô¾¡•°"êiø0ì"|¦cÄ“¾!õY­V´aÊÕ ó¦7sf@ñ–ùe„+ÑÍ~Ÿ ‘I 'J´¡š ×%ç3Á¡Ç%…mêCÅM¯ú:}?r¹Šu¼¦‡%_ 1 Á‰‡ò/žlµ:^÷J¤“ýâ–Èùs—ÿdd„éÞˆŒ¦”phḺªÑ+ŸìW–…D.‘‹4*C7@•€÷;m¬+&"\Õxë4« ‡DŠñŒ™pœžºb !1»·µ]ñyå§YY/_Æ!Ë~‹l\¨š­åéä©\ 8@…baœö¼¤<Úß!”• Ú^4ºW)GÙi� |Âæl³%å6²ÿRÜ’ŸMŒ¿ÚîîNlJ—–'\lìÀi^r'úÔ¿òÔo0’sÇØW{ÿîö¹Õ—l¼³6˜Í••âW•þr|¬Ä&ÞΖs=n£É&9鼫³9º<2òTtâ“™Y{/8Õî®™ŒG´êÕBY÷Ó ³Ù ~÷¨]ùŧ) ÍÍ8y_ü:emZȇ±[=‰æ¡–‡»¿øÏaÂiÖUªi隷¥âÂ`´äIµMz�guáyÐqøÅ嵚ÂwÍÎÉËc¨T³$v¯ìÛ˜ë×N!jÇEUTÐc3M:ZŠ·÷Ç·)oy3­±9 @øyçh¡“^°®5%%™Œüµµ©.ݲ6f5lSТ\æ:môöt¨§À3˽¾³ød/u³Ùóü›Å?t© •ôÙ3GsPÓ¼©V«7Õ?&57×sÒà,Fdbô«ÿNQ(” ôÌYï߈Ö¨¹\£pUƒ ìuvp!ò½WŠ÷+LJÍÅ5ø¿è*͈wŽ����IEND®B`‚IMAGE 1657 ./arch/exit/exit.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÜPLTEÿÿÿ&rºBrfÇj¶ R”fµ"Z–Z²f®‚êZ *R&HnÂrÈvÒ J†R†BzZ¦.R*J2^BrvÒR– F~V–J‚FzfÎ:g._VšR–Z¦2j.fnÀrÒ &FV“j¾nºF~Z¬b²Vª"VŽb® N’f²fÂ>r&nº ^ªN~rÆVŽ *I zànÆ f® *B jÂ*VZš :tZ¶*b–&^”Bz Bz"Z^¢b¢b¶b¦>v f¶6Zb½6jN‡N”>f 6^Z¨rÒ ^¶"FNšrÖbºFxN•Z¬2pVžfÀ*R b»:rNf¾&J&ZR–~æ6f:n^ªVœZ˜ 2^JšnÉrÚRš&B b´b¶rÎ VŸJ‹ 2XZ¢^ºZ¢J“>vR‹"E ^±VžvÖJ*`:‚J}B NšBŠN‹.ZRŸ .ZB†N’ Rœ vÜj¶"TB~Bw&VR¦>}N„ F†>ljÊF~ Vš^±Rž2^RŽ.MfÇ.WFƒ jÇ:bFzB€V¤b² nÌV°2Z:{.fR–F‹I:f*hF~Z¶^§>nJƒJ“*J"MN† .SnÔF†vÜ >z*YJnÐF†V¤>„^±R6o NŽRšBx Z¨ F‚NŠ >t.kB… fÀb¿R›>}Nœ J :m2j&^F’J†6m B~6^&Q._V£:u:tJ…2o6s2fŠE���tRNS�@æØf��KIDATuÁƒ–]�ÐSÛ¶mǶm›cÛ¶mÛÖ³mÛºø&iW'Éšî ð¯ó?ÊÚ EE‘/†j®´>ó|_ñkÀžÀÀ¶˜¨Wžp1<èâ#¿o áŒËùj™l~(æ‰d7ÜO¡cgÏØQßÁÆ«›°X]büE¹Û‹ö›ffT¹%eöСf¦zÌ(þ´Ãç‚ÿ¬#¹>± WÚ|>÷A?·RJÁôô ¿€E©omýeÖkƼ^»7Û·#UÈÊ…nøÇI o!\ÝaNæÆfŠ3éU˜Ùë•;9àžvÙ¹E¸W…Vq¿?Ÿø¾Q]‡Ù™¯êûàœuak S…–($ž´}‘CCËZÄrl¯¯ùÕmd¸ËßzªEKtºcCš®áÐ5? ë”"QÎYj*ÜáïüvL•=Yu½«©—“‘ýd s蛫»§àî3{*t`rð̶‰FkâdDGø^½£'»V,û*Ž¥ºÖ͚ЮÊW‡Ñǯ·Yódz¦Wa¬_ãJyYÀˆ¶WvûÙÕŒ°¯5<«šÏn²ÔOCôKF÷QSñs ÚÇÊo3§Ç/Iò³±†zÿÊ,S#¼\á¸ühPÌÈÜÚ¦òÓ4g8R¢Ö'Sê}Q®ÞYs¡†e*8U;²Y3×5Ìæü±{w:W?`›·8:¬øKÄŠsßl­´½½—ÖïÈëß³!J•9¥#¾[«œ*îf¶Õò~~z.!AÖꑨõ¯?°Û&tŸCÚÚþËq…Ê]O:Ç;/“yZˆùÜX„ÒŒ÷Jøó0¿q9�µé—¥ †–2Cˆ•Ø š«ÏJí“Að\Ár�êI?¤ãœÁC$­™Ö¤]^*ÍYÈ2ÓÀßÙ S>ÅÎwϲZ“&“ò~ËccÛû Y8ÜE€Q'YDÙ5ñ™ÑÈ6*llv]ÿÛÓ¬övXt¤oj\>Q:aSô” Ûª?¦Þ¸ì÷›ž¾fAÇ r‘¤Ò…£Å×àaNg–ÅbÙñ¥¥ –är6þéž¹Y ÿëç‘F“i7u,%‚”JíësŽ>ßù&,iÝ7ŠGß Ý€ü ¦åò$,¸����IEND®B`‚IMAGE 1703 ./arch/exit/exit.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��”PLTEÿÿÿZªY¯=u1cB|rØ'J�=€�.d J‡ a°N‡ Pš N“pÍ1[�3i%_˜xÔSšD~�L™�>{Sš�.lMŽ =p2X7lV¦d¼a¶J~RE~Y�G“M‘CoX§�X�3nK„�7w�+\�)UXµRš gÂuÌ�7q TžY”B|P›gÇ CyëI–+xÄ.P d¶S“I”*UpÔ�bà E„&J?tP‰Fy�G8hDƒ�7p]²2^ dÁ�OHƒH C|!mº kÂ5]�-ef«=l#C=}�$Q [¦�hÏ[¡�/o)S IŽn¿ B I dµ ,KXxß�nÔe¿ _·b¾�>…�<x)BJŒ +JDŒ_¬^¬KŽ7bU¢N’S lÊ�3gb·;uI‡a¯U”+c™L‘%H�0ooÎk¼�1l�&VTœ� T�#G9m�4p E€�(`�:zL OŽW¤M˜$D'IT �%Z wÚ�'`]²�,c H‚]¢�3r?h0X�HFySŠCrqÌ2N�N¢GŽV—Nƒ�M“@€X ,T"NP˜`­ eÀ&Y ]´?mPŽE~\°�<vS£:q75f^¬/`3bf¿�Z³�#V�0j^C† Wž�?�$^D…�$_rÊ>| NR•�W©�%N?k�/g 0VVªV«hÅ�EŽf±^´E���tRNS�@æØf��ÁIDATx^eÐCÓµG€á9´mÛxmÛ¶mÛ¶mã³m#6þLN=UÉ&×f}WOÍ�§ráoqo¢^Þš á"ÂÊý¾ß«°1oÊSÖÏq''a"¤¹Äcf?eøøÄ­e­šCÅ4Ð@dß²ë²Û¦i:§t-2AW ú;e€­%Œ4ö˜©@ÃQ¯l¨£—p¥9&ò¾-XmÙgo”·ÜHÇÿN&¼··lÜ'ƒ.7$&#îWÐùŽí/V¶¸¸X[g¹ÇÖv3ì){õs££<Ž%ïBM¤ç[ŸI¾K{<•Á°,ï.ìòFûbp»¨ O¾ööü\bK¼Ý¾o|O9²?‘IÜÆh·z.bh›[LéNµóêq®nZcÈùÍ«ù«Vµºñ)RtÍÀË}rObûÔhSä f3õ ѳE*•Ö´¶*—c^#sw^ùíÔ<�JåÐëÈ4“À•ûJjyP]]}Ï ì×›<Qu-wµÚÀªÐ�ß4sÅpGÅßïáaó»ËeéŸÊÜÏKû€ª@hÖçw\Z,µ”à¼<JªßçM>רTrÜ@C9(÷5Ñ]jþ°Ä×;çUAŒâÜÆú_ Oo\ì1§‹ÐÙ ë奥ZR»åå…®¢Ø¥ä‰úè/®xSpj(ø[abXì;J/¯Ê¼ †ôÇ= ¢#r  ½tÏŸÉÃckƒ¶ª*+Ñ•Œ22J¯ø>ùT� ‡·÷®ª™+?½  ªB£Ñ[çÒálÄóäpY€hŽç?ª;˜Ïྲྀî±*ô%Ö|ÌSÜX YšÈ¾Œ%6[üdGÒýçÅso6²²S!€„jôÉ$•Ê=Fx+)[¹®jÆræehAÀnnó¹ä+W\\n¶¶´×ë°Xl¶!¬0 z#Àh^ꋊ’î°½7˜êo8Fc¶A<PP‚ùå,'oã·%5x×Õ-9nõó]§‚÷‘�Ò$LËÜÕ}5àCŠH$oÕRt?qX.Úž \‡‚’ÂöÃ(Sâq×£¶aÒTž(7(<EºéIª/€¬··¶ß›žáü¢6.ß@$"ô8]:.*S¸. K|…i·Àq`æÉãl£žFëIOÿð!Q–y4³ d#\wGe2ʼnLv-|ÞÆr gÀšš€ÓqaZfÄÙYDrIIFÍ…‚ÿ+5›'M‹ª–ýGaG#ÀéÅ è?ÿEŠ3‰XS)Z¼(§d¤üqî+¯âr ~����IEND®B`‚IMAGE 1640 ./arch/exit/exit.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÍPLTEÿÿÿrÆf®N~fÀj¾Fz~æj¶ &F f®ZšnÆnº nÌZ² ^±R–vÒ2Z J†R†>f f¶b¶6j 6^R¦RŽfÇ N’>rR–Bz:‚*JZ¦b®"VŽVš jÂ^¢&rº vÜ BznÂfÂF~b¦&nºnÉZ˜*b–f²^ª *I‚ê.R.f&Q F~F~bºN•vÒ.R&N 6db¦Rš&Z 2^Bz*J&B zàR–vÖb²B†RBw&^”V°>n :tZ¦2pBŠ>„*` ^¶V“6oZ¬ 2X:fJš*R rÚ NŽfµBrN*h.MVžb²"Eb¶ >zFxN’Br R”fÇV–*VNœ:bb½>l VŸR– F‚jÊ ^ªZ2jB~&VJ‹J.ZZ¶>vnÀrÚb¿jÀ"F>v._"ZNšZ¢6f&J *BR‹^±Vªf¾j¶rÈ6ZZ¬ :mVŽ b»^º b´J“ B~Z¢>} .ZFƒBRž&H"TnÔIN”Fz Rœ:g^§rÖ F†._rÒ Z¨.fF†F‹:n.W"M jÇ .SZ¶2^nÐ^±J}J“.kRŸ:u NšZ¨ fÀ2^J†V¤fÎN‡F†J‚N„ JF’*YR›:{vÜNŠF~2jVœBx6^B…RšN‹&^6m >tV£>}J…B€6sJ2o:t2fº÷L˜���tRNS�@æØf��IIDATmÁ—f�à7nn³Ûl®mÛ¶9¶mÛ¶ýÙ¶mëÞû:gNSӴϰ ]Èzáµ··)NSðñ–"9Ó_zåÏ‚‚‚g×1íÍø¯u?Ç÷ çº»zÒŸýñr–z`ÓhlÖÞ² $¥vÕÉ}¨¥h}bí¾]Þœi[Í(ùº{ð€–+ÎõD¶’PAÂŽ¯fPHFø—í`5¹Õ#w¶my×Ù«G¸½ì“}Ü䇰à}EìÿÃ"ÜãNXˆÄc÷Ìw’ûꟼ�p`(¾™âñš4Hó^b±„ºcHùïïq¿ZóúU¨©!ÛõÑ+Ưô“Á<ú):µVeº/ܯll¡Ç7¯Ùî™%¯n;,­?Õ!êHhغUèPð1§¹ñhŒ»]Ý»£éÕ–ö„¢hjq 7¦@P'˜„¶ÉÓ®s߃é›uyEE2Y4UTçÍæ£müîÝ{àšít™ËñEů>¯ã3ªá–L&‹¾Ós›Y3¸º8hŽo½èrF¨5š¸úS ËÖÿœšJý`ê¶»Jõåf vÄÛö–„BÙGK•YhXhúÖÊ£=9˜[~¦÷0†¶¬~cHÃñžm1G ‡¦G暎Z6Ž^Hj‡êd@M3ý9D®óæÈôôsû¯8õ~Ì“¯OºS @£Á°õ­PWöØDZûoLC¡áHÓ#‹=è¶8¸Î•�^†áÇ#]78Þº„7æææšžTªfOH¯›jÁ¼IIHÐ¥9ÏK[Þù|ƒè‰NÝD•AâÔ·ôN˜·Ë2Npö1Ï!õV}Asifæ¶Êž³—`^ßÝÞNMðùöóÍ…`~~XJfJLÌç‚F˜7:i ö‡ü9ŸOo·ëAÑýÿ*giü­/1̼Y.WJƒzŸÏwe@®l3¡³³°`çõq+ö¢ß¯ôÏ-l•ŠXµiþ¡ Ç>ò˜jU*¥éDxx39«“#Ù'ðx< õ´beÃR³Z­U"1»\宬{£%ð³n7!¹vÀ}qX[ OØ'’û­$qî:xºµß<´Ì ‰“`±¿�OÜÀפéº����IEND®B`‚IMAGE 285 ./arch/spell/Bomb/explosion.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷µ÷���ÿÿÿN…½���tRNS�@æØf���ÂIDATÁ1NA�Ð÷ ;‘nL€l¨£§ˆÙÄn °tè) ±žÂÂÒ‚Æ[ú�1ƒ³ýc‡ø«O›×F3]ô˜CëJL?›CoJJ)â,f1îöCëŒ×§Õ©§*œ¿39–Ýonª¸×Á‘¸í4wâ.¾{V–cÉ̤Nå={Z_¾î/Ù“ËýrÖ:—Û¢¯šñù6~žŽÕzyÛîV-Y /’%¦ÇvZ̲2`Õ ‡ †é±µFÙš°à¼ì'=tö §����IEND®B`‚IMAGE 273 ./arch/spell/Bomb/explosion.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷µ÷���ÿÿÿN…½���tRNS�@æØf���¶IDATÁ1NÃ0�Ð÷#7"›‘²˜-Îá²uËФCÊ)‰„±[‡.½%ïŒ@X8lç>Kÿó\ÄÔ˜=vÉèškÆ2ªŽëÕÐ5±mëaèŽb[ÇS`N‹J¹´=gRéÕ*•ä;U)åò¨RY¦[Í´~ìn5yÝ6‡S&¶µ¿'˜—˜òH÷Õàãqí±¦±kÂO#ˆûÛËg“÷¿gƒí,£ß ˆ6h@Â?b!.ɧ ����IEND®B`‚IMAGE 280 ./arch/spell/Bomb/explosion.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷µ÷���ÿÿÿN…½���tRNS�@æØf���½IDATÁ1N„@��ÀY²l·&˜l¨·ñ 1ÖgcÅuž¯8jô4úJg�@& 3Fˆ}»Ó5c»ôë‰1üNgÂ6t›DÜÊ%´œ ág8*}«‰XÆéȉRÞ©1+e›û¤Šñº¿-­âº×ïçJ+óù•²ð»µ%Âî&tÏöaì–¥1ïnËL¸Ïcײ!zõ«¡i¬U(Ó~:+C?¯Öƒ€ªÑ¦—ã èS;îN æ°f À?^#ž¿@§����IEND®B`‚IMAGE 215 ./arch/spell/Bullet/Shell/explosion2.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATx^-ʱ ‚@‡Ñß0‚k\q+™XX@ ´10€…kXØ@W°»ò´»äÈÿóˆ6¯zjÄøÃm¬ªù ß=ˆ½™h©dù:–Y–v³Ü妼2bÝàäž—¨3J±-9 êI@Ásp”7©yè͹Sü_÷/bž"z³����IEND®B`‚IMAGE 213 ./arch/spell/Bullet/Shell/explosion2.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���}IDATx^=É1 Â0ÇÑÿÖEìu Br,ÝݼBÒÑ­g²HSèð}%ÒŸ‘‚Ë[žfÑí,à;-ý¬vŒˆ âµ *7ïÎÜ +l,φ6øãQ~˜¨~»U’¿ekJ²KÄ•JSz‹i:Íh*†ŽÏf«}d€�ÒwSgeß1¦����IEND®B`‚IMAGE 220 ./arch/spell/Bullet/Shell/explosion2.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���„IDATx^%É1 1„á »µõ6^É,R¦ö& {½‚°EšåEyE^ÈøX§øŠ°Kzý£dÄ×}`Í d&lÜð¾ôÚO~toUœd¨Î J+Ðb ŽeXz8[£%˜ÎѹM 9¡o°æw�‹| /°\!dÅ@ž"jhlÃ����IEND®B`‚IMAGE 160 ./arch/flesh/generic/eye.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEœï÷���¥R)ÿ��ÿÿÿ9¦hâ���tRNS�@æØf���?IDAT(Ïc`†€‘…+l,,(ˆÄ_@XXÄÅÅÙA4  %FC¡6 õ �ßDÄPMsº����IEND®B`‚IMAGE 152 ./arch/armour/helmet/eyeglasses.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���_IDATHÇíR9� Óÿ?ºÄ`""õب‹ Ж£”Dâ7*ä—Ï¿ /OÚ¹NÚPTD(œxyÁ­Ø)ZzHA®UÕD¹ë᥎ý*˜ËœM“§M›¶š Mû“H$Vhã?ù86Ãâ����IEND®B`‚IMAGE 189 ./arch/flesh/generic/eyes.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷Î�ÿÿµ!!���ÿÆÎÿÿÿ¾;ÿ���tRNS�@æØf���YIDATxÚå1€0 Ähûÿ—¹07XÊäSUyû1Ĭ˜f­módXê |R±H0¶cˆò‡Øƒƒ|¡[Ⱦs·¡è\<iÈ¥†qÖ¾¡y­á÷Ø–RE ës����IEND®B`‚IMAGE 201 ./arch/armour/shield/eyeshield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEï½÷�ÿ�)ŒRBBB{{{���ÿÿÿB���tRNS�@æØf���_IDATxÚí‘IÀ ‹cÌÿ\ÒªÊ%¡gæêшå:d\Σ×JÇx�z.Ìý3ò¾o’Ê|oÍT$øî²i�¬’BÈ …<aVÁ…¸¶Þ¡~É€ð™¿yØâ—ï®#ÃÎ����IEND®B`‚IMAGE 287 ./arch/spell/Cone/face_of_death.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V-ŠV��c2�1�ùqcDÿ�����þ¿Êÿÿÿ¿¿¿VÀ���tRNS�@æØf���¦IDATxÚ½“ Ã0�[«Y£þÿ½SCq …AL<B±ÉLcûdæÎ#‚çU®EQf/䙿e¯Ó Ä=y½ ¤"k@+ Ê…j+HÒ ‡3GôÂKdœ'{ˆR#ÐØ…»oà1"zT õ™[a¨’}(­ÔuP–“i€�€*¶¿ÂA=p·©»¡¨÷ Ü‡4¢Íw‚· ËZ!SK¾þ~8ñ¢1!mT1����IEND®B`‚IMAGE 217 ./arch/monster/dragon/fae_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€�îî*Á¥���tRNS�@æØf���~IDATxÚÍQ À C—ÞÿÐ#-šªßFÁâ{#ó{&�wLGpo._B�i¬¯]`Ò€ Üè<¯»¡’î”p4PÑ +ê7\‘F^øÀŘ¡ 0# Í¢sf˜ »æd[KfÐæ(ªZ•˜`ÍwA|4î¼ÿäCù=bžŸ–Ð����IEND®B`‚IMAGE 214 ./arch/monster/dragon/fae_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€�îî*Á¥���tRNS�@æØf���{IDATxÚÍAÀ Yþÿè ¶N¤gsrÜ¢ÄE!Ð pN’4/Øx¶Ñ0„Í�k1áß@#r0R/ô¯PÂhPl4XQ¿ó$»¦˜ñÂS·=¹°ÐÑ{9Š ÛÁ lÒi‹â½&¾ÆÚ ʺxxõ$hœq¯Š{ò�5¡vùM“����IEND®B`‚IMAGE 219 ./arch/monster/dragon/fae_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€�îî*Á¥���tRNS�@æØf���€IDATxÚÍÑ À —þÿGÅ«®óÕLdxWˆ>×D’w'¼ªbž†"¼($“—¢š\æÆ|vàNáRÇ-ä4zWÌ×̇ ð7¶#Wc8S!£–ž¾*¯x3Vž?@uã⎬óè/V² AØÛ´Î’÷å8Ibâ2+Œ����IEND®B`‚IMAGE 215 ./arch/monster/dragon/fae_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€�îî*Á¥���tRNS�@æØf���|IDATxÚÍ’AÀ ÿ?ºjPÝH¯n‚Ý¢]&o"5ß­ <Ú³WÛ„¦BLÏ+¿�<hà§Ì~jÿB0GÊDü¿‡‚à=] ŠÁ °Ì¦€£$ÄÏï H¥±Å<±Í@샖Jãè0‚"ô^_§1@va*����IEND®B`‚IMAGE 202 ./arch/weapon/sword/falchion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà���@@@d3�2�ägä���tRNS�@æØf���cIDATxÚÝÓ1À0CÑÒŸôþG®@¬Ø2”%H~2S®ƒ8°À€e+’ @DÖÌ Eܪ¢ÁŠÇ ~'@‰Ú•¨ q¥óQt> ‘— òªƒÉ÷$úþ,¨\ úÝîS’ÀÎ ×ø£Ÿ¤¥G����IEND®B`‚IMAGE 229 ./arch/traps/falling_rocks.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE��� �5�5�P(�j4�j5�ŸO�¹\�îv�CêÚ���tRNS�@æØf���rIDATx^­Î± Ã@DÑ?¸m¦2ºdžK.R *Aà@\ ­ÒÙ`0lü  4EPÁœ„Ü}_0=7€Ö<(³Vô™+”KÃ'A|IëÃ7éÇð¤Üö`€]×À|ü]»b”FÁÏ^^¾¢Ûý}����IEND®B`‚IMAGE 959 ./arch/ground/falls.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‰PLTE½½½���c1ÿÿÿ+~{{{)ŒR�1�ÿDŒcB8m O‘{��"‰Byt<=pV+&OX,UAQ,+¡«2$•^0XŒ%%„!!†(‚:o`076s$*•!¡]1"˜^/ œ œ"—(OyV:-(&+""*..s,‘1N€+Ro#,r@>†H:;":~ I… M{Ii�?wfP‡ ?ƒ Yp*[]\/%&,/ƒ.6†U]�#%(w.€ RaR-E'&Mˆ6t^ (A| Q”Q‡\y%.gV,��Y,�0��0#cu[ˆO‘ Sƒ$S€`jr8f�fq6‚:„ ZŠ%d#wX, !:†:„Q‹JŒ!†3sZ(‡OX‹#|pK­‡32”08‹…A‰ÎhA��ñIDATx^m’eë@ Eçf’.=fffffffffþåÏv“Ý~Ø#Urtœ«:©‹R¡ ©úP4’ìÁ¬ª�ÌèJ>˜Ñn(�)@‘ªI; ˜  +r7hÑŒâ~0I™ êž—¢Le›Ñäk¢B±Ç)1—B%¶«a’ mÚ0[�Ád£Swó¦©E‘—˜ž êB[Èêt@![ÌÑÇK(@aøßK Ê‚*ùÒ¶—?ø³f ã…ÊŠnã”A£@^ÜQ5¦ìÅ{Îø™ó/íY–†ÉÀúÍ?W×õ„‰“&··‚˜2uÚô"³fÏ™;o¨zs,X¸¨ZÒ/²lùŠ•«V# Õö£�Ö¬]WÉ€Õ†›áä8–[œ°eë¶H+©¶ïع« ¯PÃ…¡Ý{$ ‘½²oÿ8%„PpðÐá#2ÌÑc<)0püD$'%8uAAË4àÌÙ*^À•ç&MÙŒó.†\’ËW®^»~×$ʸyë¶›pGbÉÝ{÷<$æD)®ýè±Õ“J˜å©<{þâå+j¾@ãµe,lÊ›Þ ¿{ÿáã§æœZ�ùìj‘°¼ê—¯ßÀ©1�K"ìþó #粰뚤o óoþó÷Ÿ ý$¤*‰F÷¢����IEND®B`‚IMAGE 961 ./arch/ground/falls2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��bPLTE½½½���ÿÿÿ+~c1�1�{{{)ŒRc2E‰�ŠŠ #„ÿ!¡¿¿¿cB:o`^0+RoX,��(‚0<=p!!†%%„$•2«,+¡UAQByt08 œ œ ž!¢$*•76s(&+V:-(Oy"—32”)› ,š,‘..s""*@>†#,r9’1‹10†":~H:;IiP‡?wf\/*[]/ƒ%&,-ŠV1|3Œ%(w#��R-4E'&�0�Y,(A| f��V,%.gK…#cu�0X,#w`jr$S€ \‡fq�(‡O3sZ%d hy !!†;Œ0‡\€*sp#|(;s{$g& +ŽÞ)SÓ��IDATx^E’…Ží@ Cë$3S¾´»™™™™™™™éÿ_’vuÝV•ê3Ž¥4sÅ�‰Q‚=þA‚ĬWÔ@Œ1)1ŸàÀ”ÈD Â|‚úv°ŒHˆ €@ £8e â5,3 ¹ëpøiÒÏ~Ò`ÐKås‚„@¤¨^$H{À1(HÔOŽs4>ÄëûueahFïkJ°—¢C�hÉà¾(`|.‘yâ€Ï‹ A`gµ¿’Q¼,`0H°bCE­Äൂ� òS!Ræ@Dúy‚kÜŽ[C¦ ƒªÈóÜÍv¦U-/ºßÍE�R1ƒQëZ¼fíÎGÜu räÀÜh¡ùõdÉÒeËW¬\µz~Û¢@�ŒÐNʪ,×­ß°±Ý´yKìü˜2-ÕÖmÛwpY×õ®j÷ž½ûöw»‚˜=8áC\«7G?Э) ËUÕIæFmÖŸ:=‡€Μe®›º¤Æ>wÁ�X»<¿P ª.j~©Œ—øò4=BU\-€kÌ^ ª‰™¯ß�ºe nÞ2¨b¦Ú;ø¾}™­^fï÷î?`“åwÀÃGÅ·Iòä)ÀÏž›Ošß/^¾2Q ¾~ƒÑÛwLMUפ ÄvóûßÅàO¯îç’ˆ¿ðõÛwd"˜~ü´CÄT– Ó¯¦ùMŒéï ÖúKô‰*Èf±üÓÔ)´žƒI����IEND®B`‚IMAGE 789 ./arch/ground/falls3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTE½½½{{{���ÿÿÿ+~c1�1�ÿ)ŒRfq*[]DŒ8mU]��«!!†{N€"‰‹,‘R-E'&Mˆ (A| Q”Q‡\y%.g":~6‚:„ I…#wX,+RoH:; !:† O‘ œ�.€ Ra(‚:o`#,rcB&O"— M{V,��Y,�0��0#cu[ˆO‘ Sƒ$S€`jr8f�Ii�P‡ ZŠ%d ?ƒ Yp(Oy\/.:„Q‹JŒ!†3sZ(‡OX‹#|pK­‡6†V:-(&+..s…A‰„Ò|,��§IDATx^u‘Õ®$1 DI\fZdffff†ÿÿˆu*-õUïl=X#ÕÑéŒMó½srf—Ä„ô{ö†™Ë¢€ú†órA'ôÈ0{êô™Ò7¤Ê}`ãØÅ?~¯­¡#fÊ´¼pðìt °@`ÈØwéá£;Gþy¤Ù3{>|ÕÈÔñ¨Ð§ÉÀÉÕ†KΉÓ�OCº÷Š8ˆT™µ@ÀcQìLT™2¶‹ !Õm†] H¤ýcåpo„È$`(B¤ý4Pšd˜­ŠÎÐWÄ9czQ8.¢T‰_+Ùæ,’Ú*M]¸VË¡Ýhs9'>Ò*p1-’Ç¢ž³*� A¼ú™ª»’Ò¤˜ì 9aH¥) !gq.ÛX[Ïø€f6¬ bJÒ±±¹�Ùa;w]¾rõš83Ö~ýÆM3 à–ArûÎÝ{÷§]•<ô.ò``HÞ“MÕöÚ“§óû8–í9šr$¨×¦oÞ¾{ÿ'û„Ì*eš?}þ"J-€)Ê£¦_A} J5ˆ(Ç:éœU—tù÷Ÿ�¢ú òf4žQj����IEND®B`‚IMAGE 813 ./arch/ground/falls4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE½½½���ÿÿÿ+~��c1 #„{{{ÿ�1�)ŒR�ŠŠE‰c2!¡:o`¿¿¿1|��$*•+Ro(&+V:-(Oy«)› ,š,‘..sX,#,r9’1‹cB0†":~IiP‡\/*[]/ƒ%&,-ŠV œ3Œ%(w žR-4E'&�0�Y,(A| f%.gK…#cu�0X,#w`jr$S€ \‡fq�(‡O3sZ%d hy!†;Œ0‡\€*sp#|(;s{$g& +Ž×Ôa��ÝIDATx^e‘Õvä0DU "Ã@’effffæÿÿ’í{NâÝ:¶üP×·%;¬’ 4%-vC¦±Ò.�)¥j€'‚¡¨ýÑ¡ÎSÀ‰ŠT±1_Îw�yÛ`‹°ÄLÖiÂì#�öìÝ·î÷cB²8ŠbëØn7çF<ÀW”æÌèÞ ïPœ;/ÿ'(N&OšfÓíÓ„ eÕ+p}ò|3Ù�KRó:™ï6ˆ\°X Ž'l†Ç8"P( lÓ9$T5dÝO,=Æjr„aFé ½H”i0:X-óÙl¶Í,—^¦¤tn™Å¶iå²\Ù%5 }ªaa 7Ĺ4–#uøM ª³¯'ò©Ó"Ão*¾AÎV3Kæ³²À 諸!KK9 3_¸ˆâ� €®»Ô›`s`¢©®ðÕ …Ù,½ôͪØDbá7EÒ·nðÑ9Ëæ;wR Ò­{@•ûì1?jă‡~NÒÇO�~úÌ{rdÏó/ ¤W¯1ó–)71’ˆýâwV2â=øƒë­ýØñ'>ùŠ0$éÛwò Lm›™~äü“i Vý¢ßD˜¨1€|ÃË¿›° )D Œ����IEND®B`‚IMAGE 333 ./arch/monster/humanoid/Human/farmer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEBBBG$d3‚B'ï§_ccc��€Áq8 R-Æs9���p‘ÿàààB!¬&���tRNS�@æØf���ËIDATxÚ͑у0EÛ1ª¥$ûÿ¿Ý⢃ù¼kb5çäB´ÒÛmúGP¤â‡¢žº gæZ!ðÆ[5i! …ð:ïžÁHžV¡23w,BŠ@˜Y�žf§Ìi b‚|Ï`Ÿà^!63÷KvÔP0aaht@h¨»ð=N`ðYr|"t Í„ÌÛãø•eA–¾Ö°­90¼–ŽŠÐÇ…jCl‘8êaÔàž‚óP!äècµ;Aõq}Îü,ÀÈBzû£¼ÑR J¯«����IEND®B`‚IMAGE 324 ./arch/monster/humanoid/Human/farmer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEBBBG$d3‚B'ï§_ccc��€Áq8 R-Æs9���p‘ÿàààB!¬&���tRNS�@æØf���ÂIDATxÚ½‘Aƒ0 \l,õÿ¿íÆÉ©YŠzé"ÑL6‘òø)m|á¸MÎVJqUM^0Ýu¿l´2ÏÀù‰g¯È`B�GH58åx¨àâ@%á>8ŒµAUÄñµÌ•£Ô½ÃÎE–ú{.”ù?æ=¹ *Õ¥�1›W ®„§™†`¦B³ó,§þHpXB+4^€ ¾ ÅáAàÛ�f¼ sÛ†¤ø°LÉ{Â_ó£ ò£d˜‡����IEND®B`‚IMAGE 456 ./arch/construct/house/farmhouse.x11 ‰PNG  ��� IHDR���@��� ���P³c·���sRGB�®Îé���-PLTE������1��c�-ŠVc2cDŸQ,±!!¿¿¿Ù¤þÖ�ÿ��BBBãà W���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ,%K-G��IDAT8Ë“=’ƒ0 …É ¬‚0šÜ‰ÂÅ–iÜSå*]øÔ9¥Ë\ gXY6‹³‘¼¡àçóÓ›‡Ý4_tà¡Êdà¢*[ nñéØâäýqLº›¦)M`�&í*€ê�2&Ý"ªÁÍÈÒ#àØÁzÝ K�Õ€ñS ô©HK¯íw•@ФXkýÿ¯Ð¡ýTÀîe—‘!�/ga$F€/(@\ŒýÏÎa\}?{ZìhG’ ÇK—!ôs8»+ßW�f@V³ÉêÜ•#ðÇÄ´¶µ(»žçòl‚îR@Þ£¾å >[ü!kÐàV�)Â`¶W©8¿=íþŽ®y?Çæ›£ÿ >£E#ÚV“����IEND®B`‚IMAGE 544 ./arch/ground/farmland.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE-ŠVÙ¤ÒiÍ…?ŸQ,þ¤��ÿ��Ì�ïå‹ùqíu�¿¿¿þÖ�cDþ¿Êÿÿ�ÿÿÿ^Ø3��¥IDATx^m‘ËneA±~ÇMþÿgÇ d3 —lÕ¢¥6$•`¸pºÔ™-"JW?2~€'‰¤È Cª„ݧéqÏ© TÁZP›¶œÌQy0/c¬_¡ÚÇ…ñ^Ê×fÖ[ œæÁ‰0¯2X[XÀB´ð  Ù@Ö�5ˆ{0ŒdÂ'€„ÙMÜ·#Ë3^×5\ø\Mß`.•ÚZp€€¡äž‚ãg3ƒŠ8GVHeôF -*¡£Å‰ÆP¶E4lôˆ†‘¼v‰¾�a Z×Jšß/AÇBbbí¯|PÁÕ‘0ƒˆÝ.9&[ îB˜ãf¡¦"ΘQ7yQÛœ‚¹o¯Í¯Ê¹_! Ò›„í×ýÒÚ¸VÛK[ N@F]® ‰Z9g _ý{i n{À ù9$0q´UMÒ|Ÿ9@zýe µ9†„½|"âZ%ø·Oáúôö±^ï×{ƒ/+Ã…ÞFµ `—nÕŒ¿þt¡…¿ÏÖéŸn{u[»·ÕÛ?ée þ´¢õ����IEND®B`‚IMAGE 372 ./arch/monster/humanoid/Human/fatman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÿÿÿBBBccc{{{ï¥Z¥¥¥½½½Æs9ÿÖ�����1�B!c1�Œ��c�”Z)ÿÿ���„�J�1R΄9Î+D���tRNS�@æØf���ãIDATx^­‘ÙnÄ =‡½’ÿÿÖô€ä5)JËO®¢°äå/ËØ/<Î `U w}ês^@â>ù†øó'‹YúÌX’o8›/©æüHAdä¡¢š‚…Ðxe厇$37†@ +çͺÄÉëé À•WÃn…ˆÀúææÂ•«j\Wv)47htáu¡ô#CÀ\8liFB~Ãsƒ X+d"b@0Ðì8¨ìóø« $—õ<WR(RcAHÎ.Bca#:ðmßÞ…‘_„G¼Ñi™m+NçÂÿí à 5VZàÓ����IEND®B`‚IMAGE 462 ./arch/monster/humanoid/Human/fatwoman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEÿÿÿ�Œ��k��¥�9ç9�½�ÖÆ�µ�µ!!ï¥Z�Æ�B!ZÿZcÿc„�œ�Æs9΄9�„��s�µ�c1!Î!�­�ï”BÆ��„BÖBJÿJ�c�1ç1�{�kÿk�Î� ÕÞ���tRNS�@æØf��IDATx^½‘Én!D]ÝÍ:ûâ=ûÿdj,å`p’SR.ïQjÄîO2 iø…3?ò9Ï…Qðk¾Îß )å<åüX`HÓy¿Ï)=Äf0ó~NPñÐÛÍ8Og öP ö:^h�äõZˆ†@cã=M”/ 'ñÖu%Â…|³ºçÑúB0ô  ÂÄv(‡P}p/ä YTÛÔP4äiYÔ9�<A¸E²èŒñÞ9Ùå3—ŹèÉ™([gÁÞW¤Pò·%ÒpÆ<EHõQ²®8)´9ñ�œ¸bTãX ­¬4š“7׌M-´íá "ØŒÆõäzò•J ¿¯+x©·þ1Ÿ8' –høQ·����IEND®B`‚IMAGE 334 ./arch/floor/fcross-blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE/`7r"={(H“-Q¦1XµBk¹\|±®­UË���ñIDATxÚ•ÐnÄ Ð‡ðÿ¼C(«NºY§JàGÚãç?i'¯æSNkV� Ø Xq_À>�ÏùJ˜ ÁC{`Øeb h†\Eî‘L˜õìmïCBµú¸�'Jè8ýÜå^tbHa�Åš¡:Â'h >÷¬mJý#; DWOð]ý(HØ×ù÷ö^âÁ2 % ˜¾÷ë+ èýÑ™ x×]±�æ ÔShqƒÝ% ÷4™šña]WÆ~€].C S�û^2"Ž ªl™ŒMàoŠ«gšÆú›üuÓ Ú_Íú{����IEND®B`‚IMAGE 333 ./arch/floor/fcross-white.111 ‰PNG  ��� IHDR��� ��� ����V%(��IDAT8O…“1!Esÿãì ÒXPÐmOÏ% |@q'™üÉltÿÅÅ×û^m|m=€ë§ˆÑû‘"¢Æ–O(ÅœÀ`ÛÈã8¥"�<D$Þe ß&32XRjï‰�(üQ�Ë,"âÝ×°3‰´m²�{ë€ÈñÓNÀªð‰fްUÀÀKÃ"çOóQVWðà ꦱƒXñ~ðþ±žD�`Å?3èZ‚q�X¿j‘�êL_äÜå—&ñ�"ÜOÝ’l"�ºý5ÛBjr�å-¢·e€ŸDbshÊ$¼š¨÷zvu­!} S»ÁXÊÚµ€â^Ø_õo—·ÔìïÀ¡éˆ4<ë����IEND®B`‚IMAGE 411 ./arch/spell/Cone/fear.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE½œ÷½½½ÿ½Î{{{���ÿÿÿÿ{sc1�1�ÿ��)ŒR­)Zµ!!��{΄9ÖkœR)’Ÿ5 ���tRNS�@æØf��IDATx^µQËn1 *`'™çöÿ¿¶™X±¢ª[©‡¢å`LF,þø'XÀ¾+9U Èr =¨6÷>0ÖÄjÌr’›B�!˜¸mì,iàçÞCY Ày–Á/…Þçúkøò¸{'× ìÌPÕ]c †8…WËžL�ÍR@G]›„‡³®1¤°c_ Új¨Ö¼åû½ @zç°5ÁÖHyë�2”UI.‹ÒP0˜E¶xÍ5ñ8‡Ë’8ž˜ü>ïÁ4€Û‹åx6EÐIBi(ÛÆ‡²y9À×ÜŠwCÄÜgÄÌÀ‘Ò¦À¹ÏþP-o­¹�Yλ)ZJeT›s֚Ž*Øo÷½ÚUÞ}† ×ö\����IEND®B`‚IMAGE 372 ./arch/spell/Cone/fear.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE½œ÷��{�1�)ŒRc1{{{œR)­)Zµ!!���½½½Î„9ÿ��ÿ{sÿ½Îÿÿÿ@‘j���tRNS�@æØf���òIDATxÚÅ’ÑnÅ C·”¬µ7’ÿÿÛ‘6\`ho“fÉ'„H¿ýðhpêÅÊ[¿²ß¢ìÍÌÃÄà ÜÁÙðõeµY³¡~\Æë  ãЦ†vÈ:`V«‡Ÿ‚4¦‡ûuwZsN¸™É½RÂ+ÛÜ+tþä2ý\q%&)SA(Ê…qÛ26þO¡Iš÷ÈŒýÓ8}DU©Z°æ¡ŒŸë•5Šõ<"™gÝyå<iŸ'‰khL°ëª K ÷|p4´ÛVO:^yOûOK>d~‹ ö|d…T×{>R Ó :½g>†„zL3÷< �1`×7G>}����IEND®B`‚IMAGE 405 ./arch/spell/Cone/fear.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE½œ÷½½½ÿÿÿ���ÿ½Î{{{�1�c1µ!!ÿ{s­)Z)ŒR��{œR)΄9ÖkcBŽîÇX���tRNS�@æØf��IDATx^­’KŠ1 DóJ’?ÝIfîÚÁF-!³JAm¬Gɶtû’,õ±ÞÙŠ$ÞðŽ¶’°[EX—ÜÅZòÑ ðǘ,·Å£TXc°ŒmÀ‡ósxhN_΄9†/p"¤Ððç!Ž VÏ”"X=ëžw¨ ²žDçª×jÐCÉ'aô—–{ÆkÇ3ø4³~û¦Ìš-¬àЋ°TÕµÅýªßƒˆ 3 ¹KŽ“-´•™c8ãáa)_@-Ðïráσe6`îLùÌßÍȹÝ2Q‚lY zNõT_n׳r„Õ â\xž‘9^’NÂêo­Ñzµ@w{_‡ˆÎ¯ý·ÍÎ}ç?Úf•¾.ߺ����IEND®B`‚IMAGE 380 ./arch/player/race/fenx.110 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE����¡ò^7�€�æææèvF���E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æ¯–æææèvF�f�ÿ˜�%Z‘ô���tRNS������n¦‘���ãIDATxڅчŠÄ0 PéÊÈuÓöþÿWOJH.ì@D`vì_¡kjÎWÏ`ã Æ�XE:bŒ$´wÑ("sÀ ,qàÂdn@Î.Ö;¸ 䈔གྷȄü�´ ¥ÄŒüºú׈NÜ�ܱI8ûæ¢|úFÐZÞC ‚Bx[Ѓ(L?XÂI–!®ÀÄîŠ@‰ÅÀ²÷À”}ƒ-á ëЏHò·nÛÖ�w¤V´À‰ˆÔ)`�õLAs Öà1`B-ÅûÐ/ŠepGÑgºîô`ž–vd³ú<K����IEND®B`‚IMAGE 374 ./arch/player/race/fenx.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE����¡ò�€�^7æææ���E(�€�^7‚B'þ¦ R-xF&æ¯–æææèvFæ‰�ÌÌÌ�f�µkHÿ˜�r*$F���tRNS�����Âk±���áIDATx^}Ñënƒ0„Q»íŒ¯Ü’¾ÿ³v«¬ä…|@š#Iˆ£q Òyk]�ª¾!E80¦ {ΙJ=@' » 2Égh— ˜0À:ŸP« bìzr¨°Ý@Žõ˜Aï=FÔ÷Øßw€Âðà‰¡€Óe„/$™ùº€”ÒKƒ™1ü(PrܬiˆÕ„ŸDMÁ±z`”¾ƒa`ûLtþî˲8 bÄÖ0#$Û#ˆ�ÚYÁô&tU=­Ûض­”O@*‚ž!Aóà¹?'…ñÅ—€!����IEND®B`‚IMAGE 386 ./arch/player/race/fenx.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE����¡ò^7xF&�€�æææèvF���E(^7‚B'þ¦�€�xF& R-æ‰�æææèvFÌÌÌ�f�ÿ˜�µkH毖œÌq���tRNS�������UdêX���åIDATx^…ÐÙnÄ DQz²TÞg&ÿÿ©éÆ -±(õbK÷a¹w?ƒ®¼ú*€õt‚”´Ç ¬´»è@$9¢ÀVéÀ…fi@Î.ˆÚ(ƒ<�˜+Ðî ö€\Z𱮫 ¿ïþŠà@z@Ã(½ùQ~@øÄ¢™Ï1 ,Ëò´a�"îÅ6ÄaÀÄ…Pñ0BpôÀDíÇÒŠ}ßÑ+_¯?0qÛ–Zà„ä6@kÍW¸°j@Æ@¶”¼w |#¥tž'f�€Ø‚®óý=zqÓq5ÿ����IEND®B`‚IMAGE 442 ./arch/player/race/fenx.130 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���TPLTE���€€€S#�f�²²²LLLxF&�|º�žífffÌ›…þ¦���E(^7xF& R-Ì›…ÌÌÌþ¦�€�æææ‚B'ÿ˜��f�èvF�”�ÿÿÿ$×iO��� tRNS������������ÿ‘¦�� IDATx^}Ïé–ƒ `pél¹¬.mçýßs‚eNEÐü49^ÕQ[Š/» )Itúá(Ä0Ðj$ÓT= E þ{#"ÆBkÁÆ�ö»XŒìÕn!Æ,D^}?æ·¥ñ^¬EßUg‚b«=€®&z‰Ñ9oUáÄ€ˆŸ ˆØ[ωs`,àcüm›˜ÁS÷ÀD±õM€û4Qx@µ€%`&àùÄg„@À4 d€:�€‚ä€íÖâLC0#Ý0­Þ—€‚`~µC�¬)j÷™šÅ9|¯ÈÁ²8ö×�.­_-à}ˆ(NÁ#_pÒ~æ-¢jp?n! cP½����IEND®B`‚IMAGE 461 ./arch/player/race/fenx.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���WPLTE����f�€€€S#xF&LLL²²² R-�žífff�|ºÌ›…þ¦���E(xF&Ì›…ÌÌÌþ¦ R-^7�€�‚B'èvFæææ�f�ÿ˜�ÿÿÿ�”�Wh»��� tRNS�������������íHxH��IDATx^uÓ׎ã0 FaJN™-‡*nIfÞÿ9—„°Å1÷\ä"ÿ„aI‡Ä;ü÷ÏÅÄ-Ý`],²\Aò ŒÝ´p3q¶Tu)äœ |ÿ[áš}u0ê!TÇž®oW ¡Z«–BšNgâÂç LgPXzÕÞç¹òCÎ@S€öFçç ¨–KbéÿK1µ÷Ï\t¹øfÀ Àx€�uì!Öu¥V”¯ÆG ZcõB`‚öxüLLòhíÁÓÁ³~ÊáLÀ‹W£Ö0ŸÇk€4Àöòf<‘ôP¶yží‡ïÁÛS6Cðþ<@$Ø~wcÀ¾Ïb€Ü…mÛ ApàÅo’‘ÙÄý§¬³À•^����IEND®B`‚IMAGE 451 ./arch/player/race/fenx.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ZPLTE����f�€€€S#LLL²²²Ì›…xF&þ¦�|º�žífffèvFE(���E(Ì›…þ¦xF& R-^7�€�‚B'ÌÌÌèvF�f��”�æææÿ˜�ÿÿÿš€r���tRNS��������������ªènW�� IDATx^…ÏÙnÃ0 DQJY»]m^“öÿ³§†`ÇqGoš4·ˆMYüT`�&qàäNk oG0_Á¢W€9I,ÁÜ7!„&㽯À¨¯8ª·()ý‰½;Ö+ªPcÈwx:‰©ŽÀá\hR )•9Û3ø z×5P²ÓˆÐdç ¦ô³.bÊ ÔFK|ô›À[‰¶ ²À8¶p»ñþô½DÛn ú;Ì@o 4� Ú3»ê-Ïlîè¾±óy &¡ /Á´@� 6¥^1“@t…·Å5Fו®ü¦ »ÀïºOó¯ÁPvW ðà›�ÀÜìç t`4����IEND®B`‚IMAGE 403 ./arch/player/race/fenx.150 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE����¡ò^7�€�æææèvF���E(þ¦毖^7ÌÌÌ‚B' R-�f�æææèvFxF&ÿ˜�æ‰��€�µkHÿÿÿ*�¨%���tRNS������n¦‘���÷IDATx^}ÐjÃ0 …Q«Û®$;ÿiûþº«yÍ JöCàp‘^éOÖ_€P70A}*Ü+ šVP#Å9¨ªz „ :„ê² P“7`B#î®€ÂN@-V«™:÷ªX} O5¼ƒu]E`g@ÉðôÃy¾¨þòŽS ¸ßáŽiBU¥|¢QPµS 3›æ† (þì�mÎ`}n[ì ù& ZÛ¶mßwdîã¸q÷¤6Œ#2ˆâð @2`@2è\=ƒò…e†å`Y–çòx•ÁußgvN™Æ«����IEND®B`‚IMAGE 400 ./arch/player/race/fenx.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE����¡ò^7�€�æææèvF���E(þ¦毖^7ÌÌÌ‚B'æææèvFxF&ÿ˜��f� R-µkHæ‰�ÿÿÿ�€�öÙ$���tRNS������n¦‘���ôIDATx^}ÐÙŠÄ0 DQk–’dgïåÿ?uJm: ±˜Kbuȃ‹ôJ?Yÿ<;B} SáQ$X@9¨ªš‚At ÕŒ‚@M.À,„Fܯ€µ®€ÂP‹Õj¦Î—û�ªX}À 5\Áº®"°[· (Þ�2�}a¸1/ªÿ |#„#J€çîØwŒ ª”4 ªhÁLí # ø°˜G°Æ>·íµßç†ñ& ZÛ¶íÎFîDZ™Ü °‰OBä Þ� ÈH ¨ÁõX¸ç üb9¦e ‘pœÀRÀ–ƒ¼?ë3Ôͦˆ£����IEND®B`‚IMAGE 404 ./arch/player/race/fenx.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE����¡ò^7�€�xF&æææ���E(þ¦毖^7‚B' R-ÌÌÌxF&æææèvF�f��€�æ‰�µkHÿ˜�ÿÿÿµ¢!˜���tRNS������n¦‘���øIDATx^…Ò‰jÄ0 EQ{Ú>-Î6ëÿjŸ&mcO{ÁI@BJÝÛï…=³ Ô ¬b�bTxq†:X€G‚1py*At‘)ˆ¾nP !Á1O@wÀè�œ\ÝUÅxržàäê¨â!ŠWð¹,K…Þvp©¿�µ¦Ìbž ”„0ŒÔRpÎg”¸”/‚ xæ1‚õWŠPüü�óÚƒX×ûbEÿ% æ;»^Ñ]Àlz 3ë@ØÄÚ4Qbð? DÒâ4 ö€%¨C@mj9Oómkmû°Fôþ ÑŒû ÅhïY¨K����IEND®B`‚IMAGE 446 ./arch/player/race/fenx.170 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���TPLTE����f�€€€xF&S#LLL²²²�|º�žífffÌ›…þ¦���E(xF& R-Ì›…ÌÌÌþ¦^7�€�‚B'ÿ˜��f�èvF�”�æææÿÿÿª9Qý��� tRNS������������ÿ‘¦�� IDATx^}Ñ×rÃ0 QªØi 6—üÿ0•‘rtÇo{Œ‘l׿^ëþ¬€kwe´ŽÍá*Ð;¸¸žI'ÖwPú/ }GÐ÷=~‘i™þ¢à04`»tEˆl=çýBÙØá½Ä(²õŒ@4bpŸÄr–˜'| |‘IY$Ú9y¢¼H|çAƒŸšÀùÐ0L2üEDæßpµÏó&xçñ€ù¦£óm ßVRÜÈÈà™Ð~öx@ºYæIJÔ FÒ:Û{ðT }h€µ€gÂúñ¶°¢[ë¿x#„XÍm ", [lý’3Ðsçä‚ug°…{ öÙ•sà�*p¶nèÓì™V����IEND®B`‚IMAGE 459 ./arch/player/race/fenx.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���WPLTE����f�€€€S#xF&LLL R-²²²�žífff�|ºÌ›…þ¦���E(xF&Ì›…ÌÌÌþ¦ R-^7�€�èvF‚B'æææ�f�ÿ˜��”�ÿÿÿ\e3��� tRNS�������������íHxH��IDATx^}ÑÙnÃ0 QJÎÒm¨Å[Òöÿ¿³d„�n%ô>øe–p˜<~­k¸2yÇ'H¢ÀY"‹M½÷+IÁz' ÆHZTuyŠ#pÏSÀR¾shBµuj=^á›)iÎFZïÁd'Þy'Ïs­šëB*¥ªBÐ@]§¤:ßµf°–!ðe^-œ=ýMd@ÚÈ™u]‘!x¡|a ¤1X}”Ò™˜x‚Û­`ýü� Ü½ß¹•Br¦|zw�ø™=hÃÏÅ»ƒ&ßüè{ý¿xcÞ™gû(c€ÅÝ€5=y>áu¢ƒ‹ Æ ²a@æmcØö¹`½>� aÜ·…!ïŠâºëÂû ����IEND®B`‚IMAGE 451 ./arch/player/race/fenx.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ZPLTE����f�€€€S#LLL²²²xF&Ì›…þ¦�|º�žífffèvFE(���E(þ¦̛… R-xF&‚B'^7�€�ÌÌÌ�f�èvFæææ�”�ÿ˜�ÿÿÿÇ  ���tRNS��������������ªènW�� IDATx^}Ñ׎ƒ0Fá±!eÛ7J’Ý÷ÍÄŠÁáçò|²-!n1yÌ­VÁÁèî�A6À ôâlj} ¬È Ö_EÞ{ò ªÃS¬€˜è ,¦€“ÅzW…jí„°ºÂÖ9rÖÔ¾Ä:- 'bJ!h Ç8˜‚ÀéÏ.«‘ø !‚syh›/ ޝ ŠÈˆÔ#6@ Zg¤ >¹Ý`œgù GëÓ´ÒÉÀuÂú ÈÙ>æëL p: ¿„¸¸÷ã[`wÔ¾xÃc$L�Ðü¤´æH%•‚Xh€zÇ.ð°{‚—ïÂþ\H—6¨.»À ÀìîQ …VÅ����IEND®B`‚IMAGE 438 ./arch/player/race/fenx_bow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ !:€¦���EPLTE���ÌÌÌæ¯–ææææ¯–æ¯–�������f��€�E(^7xF&‚B' R-µkHÌÌÌæ‰�æææèvFþ¦ÿ˜�ÿÿÿ���tRNS���� Í Ó|���bKGD|Ѩ���×IDAT8ËÓÛƒ `æ•¶à‰½ÿ«®ÅD*ÙaŒý”Õ¹å(ÙO —ˆð¦Î(7Ý `BÄ>¨QØ0]ë)¡­+$KØu©‚ffV0•úd Ðn—©s›hlÀëvŽ&ÈKxïGÑ €ÕûLf�àü¸Î+4@{ƒ Œ'äö% ÀXâ|QÒ<®#–åÓ‚S0~g‰Œ^(DºŒÞ&Ð"æûÃW¡ÕCèÖ·m ¡$AнØQ\ó9K7A— ñ����IEND®B`‚IMAGE 447 ./arch/player/race/fenx_bow.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ Í���KPLTE���E(^7xF&ÌÌÌæ¯–æææ����f��€�E(^7xF&‚B'›”Œ R-µkHÌÌÌæ‰�æ¯–æææèvFþ¦ÿ˜�ÿÿÿä´›C���tRNS�������UdêX���bKGD›i…���ÚIDAT8ËÓëC0àèíÈ&”ôýß´»¢2#+ÓóÃçà Œù7È[ξ[9 ç]ôžødç.¼#¢68"‚¨!P:÷)A¨{!( )ÀÝÒôÞ  zïýÁ˜ûQÔñƒü�† HŸWš× fP/ÀÀÊrö*Øna­í%@,Önd‚P·Û/“d6@¹Å6>G�PY^Ï€áabžñª@ž>óûù4šÈ¡¡LxÊx 䟈[‚þá‹¶˜Äšýº®!´�'0º;j‚s¾È€bÁ¸_����IEND®B`‚IMAGE 419 ./arch/player/race/fenx_bow.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ LçdM���<PLTE���ÌÌÌæ¯–æææ����f��€�E(^7xF&‚B' R-µkHÌÌÌæ‰�æææèvFþ¦ÿ˜�ÿÿÿ¤tµ~���tRNS����³“fš���bKGD »\–���ÐIDAT8ËÓëƒ `¶ioìýv-(&RÉÎcìghuîß ^%Çmô1˜™êäeæGÀD4-*ˆB�å{=çKúº\ €]nÀ®;äº9B æZŸ- Sáý"Bº´IƢ ¼®s2A9Â{?i€°�lÞ²`Cè~ÚhohÀ8¢´/Q�kOmÍÒ>¯‘XW\"ÐwÅûí,QC)™ é2=ý'RI´?|Z�!)Æa}ß÷G@=‹ Á=?Ѽ Ñ6õ����IEND®B`‚IMAGE 472 ./arch/player/race/fenx_bow.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ )õudñ���BPLTE���Ì›…èvFþ¦����f��€�E(^7tZ;xF&‚B'›”Œ R-Ã|)Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿGÇa���tRNS����³“fš���bKGDåØù£���ÿIDAT8Ë•“Ý–ƒ „ÓuÖP‚ûþ¯ºáG«+Ι„@ô…@Hªë.ÁF•<`ì+°ÅØ7Ìln@ÚeNº'ˆT‚¹ëïsl{>!ɹÔWë[ ,â}HÛ—à˜%BXšf«€‘p%´î\jù�åž ¨ü °Ì™(x¡ð;ÏJìJäó�,b”ç¡ãZEÖ5„K‚öðøLÎ øœ…¦¶Ì‚lzÏyÓ2SÛÊ2[èq(M à;$š&f8=Þyßy¬:Îyõ}÷¹w�¾–7LÀ£õ“œpoß´ðŒw×ÏзúV^Ôxó����IEND®B`‚IMAGE 512 ./arch/player/race/fenx_bow.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ *l|5K���NPLTE���E(^7xF&›”ŒÃ|)Ì›…þ¦����f��€�E(^7tZ;xF&‚B'›”Œ R-Ã|)Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿo^‹&���tRNS��������·çR¡���bKGDìnµˆ��IDAT8Ë•“Ûrà DÕÚI¶Èábì(ýÿ­äK&`Ó™ì“Ç{X$DÓö}Jð 2hûJ�ìÑöf€­ÞtLÙæS'˜sfæŒ0;/­^jßcÌ")e[>Ž•Ï_‘™e‚(©˜}G±±§’о;k5‹ü*é|/u* ZüØÜBD2�#*�?Î)‘£[fŠ»àðæÙþÇûK50)0‹87›r™ „Ÿì¿ÓºGQƒº‡fD-=Ýê6 Q@ëŒOP½ÕG¹Þ§)‚®€ìaÒzõ´AÐÊBJˆ:‹ñìF„ÔO6ͱ mí]Z x ý²,!„6ðHÕ€ò×ÇЧú'˜9’ç^����IEND®B`‚IMAGE 471 ./arch/player/race/fenx_bow.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ  §j÷���<PLTE���›”ŒÌ›…����f��€�E(^7xF&‚B'›”Œ R-Ã|)Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ3‹Ý¼���tRNS���úvÄÞ���bKGD »\–��IDAT8˕Ӯ ÐÎû( Æýÿ}·l‹:˜‰M4f÷¬PÇD~(¬ößC¡žepS�p{Uõ°»ü[õjÝ…ê0?„jÎF¹À„ÅÃ|ÍZkJÙâe9åj-²j]Q ¦ø T¯˜$ʇàÜmÔ\ë“`’lû$`E9ƒ£kÂÙ¥ˆ'€?ç(2¿XѦ~APŠ%T®¬%–¬Å–p¥t€"¬¼^,_ÛøØƒ®QÚuc!°< ·Û 4Ágüh5b§Hèþ¨`æÎæ”0ñY,£1ω¹u˜–+€4>ñ¯¸ü\ Ì÷ôzùÆàKÿíåä×úÁ *Ôþ:����IEND®B`‚IMAGE 467 ./arch/player/race/fenx_bow.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ #Ê4���NPLTE���^7xF&ÌÌÌæ¯–æææ����f��€�E(^7tZ;xF&‚B'›”Œ R-µkHÃ|)ÌÌÌæ‰�æ¯–æææèvFþ¦ÿ˜�ÿÿÿäÂl~���tRNS������n¦‘���bKGDìnµˆ���ìIDAT8OÒán„ `z½›ºD+ˆ¾ÿ‹v–³ýq¬æ&Ñç#YˆÎ½<ß̱ì€~†gNú ܬ½S x¹ÿQ!r!¤¾öµª Aß+áˆ@欂j€_½¯U2»w¨~ç^ìR»sÜBÓL&à±0ísýEÜB;62AÍV�ÌÚÛ@†qÎøêÿðcq(yœ”b _òwÎå x‚aT€‡T`Û8óø´EÛ² ‰€”¶÷{šPbJ&p®‰9¥S 7Z¢ýã¿HVÎpÙ¯kŒë`"ѹ8Ð%xÍ/0ÓÔÞü¶6����IEND®B`‚IMAGE 451 ./arch/player/race/fenx_bow.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ #…®›—���HPLTE���ÌÌÌæ¯–æææ����f��€�E(^7tZ;xF&‚B'›”Œ R-µkHÃ|)ÌÌÌæ‰�æ¯–æææèvFþ¦ÿ˜�ÿÿÿ|ÎD���tRNS����³“fš���bKGD Ö˜���äIDAT8ËÒ‚0 PÔº–m8ÿÿO½ŠeñáÞ’nY×ýZßÈûsì7 rÐGÆbë…ÉÂÌmð æ†�`Ýöª&ذï`D¢ŠY™Ô¢"ª\ñø}G*¬¥ë~1F€Û n.À¶èœƒˆ¯mS.ªZ½~Ù@%@L5„RéJÞb  @w0FèC 4M.€œûZ§# ,Á„×Û9ÙUZ–\ìÒ]N¾�XÊ2Ž0i˜‘ÎçÎ,>øÀnþ ’ñÿ� óÚý<§47�’€ŽÅ5Á6OÑu×(9;����IEND®B`‚IMAGE 461 ./arch/player/race/fenx_bow.153 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ "ñhN=���KPLTE���^7xF&ÌÌÌæ¯–æææ����f��€�E(^7xF&‚B'›”Œ R-µkHÃ|)ÌÌÌæ‰�æ¯–æææèvFþ¦ÿ˜�ÿÿÿÄBÛH���tRNS������n¦‘���bKGD›i…���éIDAT8OÒƒ `¶Ûz¶8åD‹ÿÿ—î—]2*ÙK4Ä÷‘PC߆Ž7òZ6À>“ '}dl¶^Ø…™ûàÌÀúÙ«š` @ÛÁ‰2Îʤ¸ˆŠ¨rÆã÷Tv쥵™ãc˜0»�cѼ§ ÚqulR�Í^€‡L>€XóðH™~[ �èÏÈÀ@ëêÈy=RA »LP)%Ù¥»ÿø¢‚²,¨"Ò4M©”…n·TaÀâ‚þÅ °›€Ñ¿ø_�mûý¶ãÖÈt.^¨ >óeìUùqš����IEND®B`‚IMAGE 482 ./arch/player/race/fenx_bow.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ ( ‡¦·���KPLTE���Ì›…èvFþ¦����f��€��”�E(G)T1^7tZ;xF&‚B'›”Œ R-Ã|)Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿcÖ¶Þ���tRNS����³“fš���bKGD›i…���IDAT8Ë“Ñv„ Dil*‹"ÕØÿÿÒNÐݳKÑvÔã\Æ$ sÿö«éx®{‹@IÛµ!œˆADÂ9AàI–Ö$Ž j+#JΆ´ýÒb.}œÌ"§¤*YbP|©`€\� p.J…Ì;ð­šK‹œK 0å½Â ˜ÝdûTü¾A`Y6J¿ïkàF@†ðæ­È'àFÍûQXŠjÀT—‡àø9¼Öð�ã1˜^Üå=×›]·ÙMoåýF�¿ç41&mE€z/ L!ÒuÎ5FH¤qlž†y/5á Ø{Y1^Xið~˜Òzñ‰’ò€ÆOs¥¿\ùR<ô����IEND®B`‚IMAGE 511 ./arch/player/race/fenx_bow.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ (|€–!���ZPLTE���E(^7xF&›”ŒÃ|)Ì›…æææþ¦����f��€��”�E(G)T1^7tZ;xF&‚B'›”Œ R-Ã|)Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿýùX[��� tRNS���������sd›¡���bKGDëq‘�� IDAT8Ë“ár„ „iÏÖ[l*"H5öý_³ ÞÝTi÷‡ã¸KИÿ ÛSu{?úNDeß“¬uwDäÎ ~IÓŠÄ-ƒÀ\Êð”’"e?·˜2">Nf‘bd¦Ä¾ 0¾˜€y¡ æâ逼MøfNÚâEæ²&P¥\áë˜L#�²ß•"­4*~ו€«iCû!³˜çÙj‘{`˜¶«0g=ÃÀ<? øÏ~Ÿð�$Æ¢WíkÀ]ÖÊzµm^›÷€Udí*�žçÔ˜€¸f¡Žg± *ÆQRFPá¨ò¨£q‹·AKJ8¶^Œ5�‹˜U@—Ê9å/�…Ÿ¦¦j•ËŠÅ����IEND®B`‚IMAGE 452 ./arch/player/race/fenx_bow.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ (å‰Ç›���BPLTE���Ì›…����f��€��”�E(G)T1^7xF&‚B'›”Œ R-Ã|)Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ&,%¢���tRNS��v“Í8���bKGDåØù£���íIDAT8˓풃 EéÅÍ ,RŒ}ÿWÝð±VÛóÃqÌñJó)h×B¿? å)œ@zÝ“¼ëÜЀwD䯆/”4Õèf-ÃSJEÑëµÅT©c0‹#3%vðºÀ¸3‰ 4$ÀO'ekƒ9Õe.šPHm…'aû1ÝHX´ˆ. I}YF¾d9g[yêQÈM`ÎO`ÿ½‰±X ïþ°VÞ/åK›·›Á!X{ˆ€Ëœjñ¨`Î{Ñ…$%€”­ÚšC A= [[jÄHh½ì3»§B!î“OÔ”ÿ(?ÍŒ_€ ‰[ &©����IEND®B`‚IMAGE 327 ./arch/player/race/fenx_class_warrior.110 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE������E(^7xF&‚B' R-ÌÌÌþÂ¦æææèvF‘ñ毖æ‰�sƵkHÿ˜�‹°.¾���tRNS�@æØf���ÂIDATxÚ•ÐËŽÃ DQªxÚØÎüÿ×E„#…&™)‰ÞܳÂýyxÞ6@Ç{ÏEÔ%làI~Ú-ȵ`yï¥H 0w¼@1€wåvw(7À{!<žýa¶‹¦îÔ%z§Ñ¨-ó2{¯õÒ0ßA®dÐak@b˘A_@#š@Þf ÑÇz5?‰ó„ÀJþœÇq_1Æ”ÐIH&h�R_„º)TÜjH1ª¯AÔ°îû¾Çö°cîûVªõ/¨I†����IEND®B`‚IMAGE 324 ./arch/player/race/fenx_class_warrior.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���E(���^7xF&‚B' R-þ¦ÌÌÌèvF‘ñæ¯–ææææ‰�sƵkHÿ˜� @¹y���tRNS�@æØf���¿IDATxÚÑIà DQZL6žrÿÓFm¤*R¨ô‚Í ü=yN]#~ôv D�sÀ ¸b�Ôï^+E¶“ÈTÄPð{:€¹GJ‰àzúåð"˜Ø)î§wÐ4ãtîÞÚɉ±’Ų·Gì* P1:pËnÁç£Ú©`™‰ã<‘ð:¶msž¢¥H–�(>àD¤ÜËÂî V¿“”œ§}]לg@—QL‘³½bîúõ¯Ó����IEND®B`‚IMAGE 319 ./arch/player/race/fenx_class_warrior.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE������E(^7xF&‚B'þ¦‘ñ R-æ‰�ÌÌÌsÆæææèvFµkHÿ˜�毖òóOÌ���tRNS�@æØf���ºIDATx^ÐIÂ@ CÑ–zÊ ÷?-V¡ŠØ€Þü·rú{8®-ÁÈ93è…€z$P2Éï@; ¶ÏÞÚ[×.‚7hÈí~Oh'À%—R lGß\À”ðHW@]¨“^‚n™³¨Þû¬ÁY`êZˆE@b‚Lü�"äHh´>/Ó71Ž#Qx»¸»¯8Æa¨;p É!�¬ @ݪ)†ZÕcPk]×5°XÄ Žñ)4s¦Úʃ����IEND®B`‚IMAGE 332 ./arch/player/race/fenx_class_warrior.130 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������sÆ‘ñE(^7xF&‚B' R-Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ¸/°���tRNS�@æØf���ÊIDATxÚ•ÑÁ EQ® Щÿÿ·¾hFoÒ´É;¥‹¦"ºžWaEi“ wX%Ú•™• €ö¯æÜ/avíkaÖ»UísH¼ç«½R¼›{k´ÈRBÀ|à,f«ÅcPt÷g�Þ7á‰ð Ür–è¬AP¤0†€Z Æ.@bŒ„Èm�> ;îN>½ ü}áÎ@ ÀÙPËÿÁ­‘‚8ަ}h¶'ðØ]!x4ÔèíMÑÛû^ÿŸ|ÌÂ'����IEND®B`‚IMAGE 338 ./arch/player/race/fenx_class_warrior.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������sÆ‘ñE(^7xF&‚B' R-Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ¸/°���tRNS�@æØf���ÐIDATxÚ­ÑÑjÄ0 DQßFNl'ÚþÿßvR(µ¼PèÅs\þ ‘!V•è`ÝK€í¬ûjfu þGæ î0{ú\˜õn{ÖBDÝ!ëwªwso­S’˜V˜œ¤¶] úTÝýsîC Bº@onضÞÉÁ^�Í`Æ`Sr Á8Ïo oZpòñðßâ5èÝ™^Êáuç 8î¾ÉÞš£µ¦% h %Ï´`êËÀuµXÃÅHâX ‘�ÄñŸù­)¯–é����IEND®B`‚IMAGE 316 ./arch/player/race/fenx_class_warrior.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������sÆ‘ñE(^7xF&‚B' R-Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ¸/°���tRNS�@æØf���ºIDATxÚ•ÏË1 CÑ^&} øÿ¿Å‘X ÑáE7>r•òO(DJ„µ°ªDy/ÖÈûjfõ €ú|/¸¿…Ù»_ ³9­­úBˆ¨'É Õ§¹1)«XAÀüÄYÕÖbbj‹S§û3ñ DH GˆÍ·Cb’€& €TÎó¦‘HpÞa4€–BàNñ ,…~ÈA"êkbt  d¡÷ÑÇ€úý?�½ìÀ5¸Ø‚ v€´ÎóÞù®rTTÚ����IEND®B`‚IMAGE 349 ./arch/player/race/fenx_class_warrior.150 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE������E(毖þ¦^7ÌÌÌ‚B'xF&ÿ˜� R-æææèvFæ‰�sÆ‘ñµkHÿÿÿþ¶Ôë���tRNS�@æØf���ÕIDATx^•ÐÙnÃ0 DQÉ{’ÿÿÙÑ:*ÚH/À§9/’|$Ô ‚]쓈LQƒPÕ{½…ê Pÿ»»§ÐŒ€û˜#0^€pWãÕ»Àãw¼Ô‡wLÓ”àù žP2œ`Ø…{sfÅ~‚†¤Àã3F Ð(¨Z T°°cmÅ=`oÐÖL¹¯mΠ‚ µyž÷}G‚QÀlYæ$få_%`}YP�F€—@€Ð)ûr¸Þí‚mé}Ã;mw)p&ÿè Ú½ü.TÑ;����IEND®B`‚IMAGE 345 ./arch/player/race/fenx_class_warrior.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE������E(þ¦毖^7ÌÌÌÿ˜�xF&æææèvF‚B' R-sÆ‘ñæ‰�µkHÿÿÿ»Ui���tRNS�@æØf���ÑIDATx^ÐÙn! DQ—èu–ÿÿÙ¸uFL+WðTç!ÿ j@È&û¢�‚)jªzØŸP µïÝŒBY‚q'Aà (¬�!a¦ž·Þo˜á­†o°, Áë¼* Épaîn™û(% Àãwœ'Fh)RÕ@kv6Œ Å=È>`ÁÂ}mà|®­X[ë½?3‚QÀý8:Éîå_d{‚± ˜.�HÙÈ,ð d¶cß¶¹@Ž;€9¨Çû~�ìÐ 7tÉ ½����IEND®B`‚IMAGE 343 ./arch/player/race/fenx_class_warrior.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE���������E(毖þ¦^7‚B'æææ R-xF&‘ñèvFÌÌÌsƵkHæ‰�ÿ˜�ÿÿÿ’;:;���tRNS�€›+N���ËIDATx^Ð7rA ÑQÃ̬¥¹ÿaˆ+"´dW!ú/Bû8ZШA <ªwf<jà"r²§9Äþîf)$ ðº'ÁT@° ¸¹›‰ÆÕ{ÃüŽw1^À<Ï.p)´Æ/ ½I†Z¤Õ~€J R°|©²ïÀ`!n«4Æ’íc£�!Þ�‚m cܰ•‚±Ý¢ë•…@uúªõ¯Ð)êÓD Z�R Štho@û/Ö©ŸïëÚûz€(Å) ðyßÏ ÂØ&û\����IEND®B`‚IMAGE 337 ./arch/player/race/fenx_class_warrior.170 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������sÆ‘ñE(^7xF&‚B' R-Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ¸/°���tRNS�@æØf���ÏIDATxÚ•ÑAÂ0 DÑ qÒ8àrÿÛ2VA 2Š`Ýü'WUËÏÃñÌH€|4Îtïd×"A3³ö|,¯IaöìêF7wÝS�ž$;Š|ŒóhèfØD#èfÜ#(M‚œ³sZ8êâœ½Ö 4`ê…Céps €‚'�®ìÍN_ÌÌìà‰oàŽ¹WD®ÙØÀwœ:Enì�ANÿ‹16¶ ƬÅØ6èœkpÃê;ãäÆí ô•WÊ{�ìk}ÙŽÂ����IEND®B`‚IMAGE 333 ./arch/player/race/fenx_class_warrior.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������sÆ‘ñE(^7xF&‚B' R-Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ¸/°���tRNS�@æØf���ËIDATxÚ­‘±’Â0 ½Ù±œèøÿ¿E‚0H3l&jvóš´¯áyƒF§;’û!à¾,]Dz]xð‚�i!ry³lcˆªHá@# OKAç4µÎÈc™ˆÆ€ÔX÷`ˆ¤ÁÍL¡yÐÓ PZàA^(ÐÊ TÙ¶"`màÚi£ÖJü¹‚ãX¸0¸ü‡O|ª¬ÿð�î“à Øçÿ"˜¿§AÀÜ™ÓP.wÝqùj¢Î *Ïó¤ð{xÜ„‰óKî”rHaßA����IEND®B`‚IMAGE 316 ./arch/player/race/fenx_class_warrior.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE������sÆ‘ñE(^7xF&‚B' R-Ì›…ÌÌÌæææèvFþ¦ÿ˜�ÿÿÿ¸/°���tRNS�@æØf���ºIDATxÚÐKŽÃ0 Q–EýsrÿÛN ˜E¢2µÐ¦hÀöï°+c XOU¾ß›ƒöTЪ»×\|äÀV¸ÿí»ÍçtOvÌEÖŽmcŽá3j‚;\�óXšû¼#&˜µºJÀ”@"&–ž`j¿  ¸JhXÝ÷ÀëF{ÐŽN$à‡ˆà%°öèÉo °rÛƒt\sF½ci ¾�ŽTç xÏÀs •€¤_Ï$±‘¸cŽ����IEND®B`‚IMAGE 762 ./arch/player/race/fenx_double_sword.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛI6„ú��zIDATXÃÕV1ˆA}³Xl—n½l !„ƒkd!جˆ$ v6J„p(¦¶’«Ä2hsMå¼b9›ÓÒÛ€È6Gd‹ˆœÁÆæ$U® Wd,ÜÙ›lfwg“xâ‡)vöïïÿ}3ÿÿ±”}q¥ù&ÉA@ôeÍj)z8>£{4T7eZøF½ŒZŘÊX€bA}rÙ'`馩: z´2HFU¨U V«l¤í`&€¦Y­b°ýÎ&ºGC27‰ç°‰ç / ®Ù ²x€‰ç0Ín .¾$Ûïl.OÍj‰ivƒL<G) ÷“eï÷˜ß;`ÊšÕÛé$ ˆíçmµ¬ìdà�`U¯’Ì_°Q/'*÷޵Š7þ×™ýã“1ݸ"ý& <³‡ÁhêDÈ2KÈž¨€§8 F²#Dn½x/Í�Âw�¶tméz*¸”@Zù¹íÜ "`Þµ‡2ö}6ñöÀ}�ø|íz¾fÄ ðòǪÀðTx¢’ˆ€RŠ•ï�/ë÷ñp<&¹aÒ•K[ª.þ¿[>(¥ ”FzHWºbwù©SHÂ4Í)p•ö¬e5 D@Yå°,Ky6HÔ� ÅWºhÝ»ÃY=t”ô ě؎ùªíR1ú¾?/h»’DB:ì —q¶(Í5–I+ J‚¿+„ÍÞ;˜??->’µÝázȪÄkw �°¾×}»Ä™W"~;Š=âÞêÅ…fB2Ç7lûöšôE0:œߖs T-žÏT,Vm}¯?>Oö U ~®øõ¸~ÖüühY—¢ç•gn®¸søKqÿý9 š?èÍ����IEND®B`‚IMAGE 759 ./arch/player/race/fenx_double_sword.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ-IØŠ›��wIDATXÃÕV1h1}::xóv©op‡B0,Á`²¸”r†ÒNYZ\0Yê¹SÉT:švÉÒ岤Lº¤›3tðb\d2Jê­WPŠ'{3Nl]uÝYwvSúAƒ¤¯ÿÞÿú_úÀ <a]Iº±BRuy£R &—“):#]{!1ïÕÖa—ÌÇ28�ò9Y'•ÜÒQ’�V.†®b!Ÿ Æ’Aì’Éí’É—!@ZîV h’Ø%“Ÿ:ûè\ŒHf~·ÍýniIp£Z'Kå€0àwÛܨÖM¾89uöW—J‘Õ:ñ»m-ƒBOå=í÷í÷ˆ6F¥Èú™ÄáÛ–žWÕ:Tà�x¹²Í^Á^m=6sŸ”7ð~»¶~9™âŃ-åÚï�üre;Ý ¼q¨"TžÅxO$pÄ'xcU ‘Gï>+½€ù€ƒ\¹YåÄ+ $…_ÈÑC/�àê(¤ó|:[?»w?{Ú%“‹(0Æ`YÇk‰‹hpÀ¹~…Ôe}r-ËâŒ1ÐÇTZœqßM Æ� ¢‘Èü,zË"3’‚ÀÖJ"-QN–•­!IÈ&Se¦ËÒy*%žÈG»ÑIŽ@ôó‘¿c1ìc3 .rÒìAË’8ÊàØ»‹?ƒ±Tm™2º$Ä^!/-ö?Áúùuù–¬å‰È‡E‘xïn�vOÎÁ>®°'‘ˆ¾Žòñlcm©žd8Ãw6•Þø ¯¾|_MèŠ7¾º™®XŽÚîÉù5ð,Þ/(øæÀ¯—µ`âÐh–ïóÛoÜTv3øKvÿüúwöëlŠ‚W����IEND®B`‚IMAGE 473 ./arch/player/race/fenx_double_sword.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���KPLTE�”�ÍÊÈ›þ¦���ÿÿÿ���E(Ì›… R-^7ÌÌÌþ¦›ššxF&�€�‚B'æææèvFššš�f�ÿ˜�ÌÉÇ› ÿÿÿh\®‡���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ�ZA³U���úIDAT8Ë­Ó‹nƒ0 Єšk‡¤)nûÿ?PUÐiÒ,î‘óĹ?¬öï¦àIË2 Ÿ«�8£ŸOÌ<ÀýÛÛ诼Ôlwï]J»`>çÚB…¯‚Y„óÇ ¶m Zk(M„S AšKdgÂsŠH Àœ_3é€)—a”ŒP·ª¯` l³¤’S¾ÄeùntÙ€ PÄ ·£¨€¢‰e!j�9Q%£Èyˆ2žÅÄ8ÒÇ2§ ž‡Pc#숿jÅÖa˜À\òо°zÏ0‡ô…îµW0냋üºæî`]ƒµÁÚPóÚía—õý{þWý—‚ö����IEND®B`‚IMAGE 423 ./arch/player/race/fenx_double_sword.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���<PLTEÇa·››šš���E(þ¦xF& R-^7Ì›…�€�‚B'ÌÌÌèvF�f��”�æææÌÉÇÿ˜�ÿÿÿQÒ'v���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ6FkÌŽ���×IDAT8Ë•“ÛŽ!DÁªæ"Œºúÿÿj7:ÙUiÌž§IêP@‡ á Àx~O Å2ÀÏÕ�˜àç…dùlUùÃgƒÈÓ §ùnµ2Íò�3,®pîP¤R$ç:Ÿµ¢’Ò!3LV±J²«V‘›'Œc¨ À)¸ ÑÛ¡_ÔÐKÆ8Ò‘v^ôþ.ìŠÎ8)¦ôãñ°óÛð®:åãi~JU®ƒé¨Íh@s…`Ï@%ÃyÔäÈ}AG¥iË_,òG¾h«¯mÛ²aÛ°ÜËxέn c£ ¿G����IEND®B`‚IMAGE 509 ./arch/player/race/fenx_double_sword.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���]PLTEme ���E(^7þ¦̜‡æ¯–�€�ÌÌÌ�f�xF& R-ÍÍÍ‚B'èvFúüúšþüúÿüúÿÿÿþþþzH(殓µkHúúúå¯—ššš™��æ°—uD%á­“õ“���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛÌ  S�� IDAT8Ë¥Ó‰Žƒ Pß"¢¸ v›ÎòÿŸÙ÷°:SD3Io¢1ÞCÔ¢øo`>Kž— ·$;}ƒ2X{BÈBÄc°F“öÌ*P#`Û+‘)™+g�LÄŒFŽ|_�Ó$caBÞ¬£i×\W`í tU°€ßþ¾€yÕ `6™~* @Ú+Pq«*0ê:>úO/€"8‰€ªªC°/}"N4µ÷ö¥W »lWðéý½H�)"øùòÞ§û¤oÑNaªa¸|” x Û†Æq¼˜2⛨m•´eYn_–€óÙ¹VÓå?[àbv€îô»@ˆ´®‡ƒÿ¯w]ßï ²‹¿çî$ʽ<�A× ƒ*`* ����IEND®B`‚IMAGE 519 ./arch/player/race/fenx_double_sword.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���uPLTE/p ���E(^7þ¦ÌÌÌæ¯–�€� R-èvFxF&ËÉÈ‚B'áäáä«“–šššæ‰��f���›™˜µkHæææuD%›ÿ˜�ÿÿÿš˜—ÍÊÈááá�›yG'�–ÈÈÈÊÉÈ™˜—ù…R���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ F©{���þIDAT8Ë•Óénà `vYÀÆw'Nï&íû?b;ízÚ‘lYž ó×ÐòFîŸ+~“E6úÈœzˤËÌyð“$˜3€åw/’§�¬ûD0E"¹2‰¬X+ÂÞ{ÁXº°¬×c8.à¨,‹¾²q^6a"^ëï O:€pÈ{ÚíœlO!…àtÀƹ¦ !Œ£ \Íè6€åý¹kÛ¶{ê>AìÏ/¢E<OÓí±†A;1³¸�“ ^í[QT}_è§ÖÄÓ‰²À˜ ê-A3¨¶HYÔÕg®/ËúãH]JÊ^âùþþ#_W üê=¯����IEND®B`‚IMAGE 487 ./arch/player/race/fenx_double_sword.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���KPLTE�”�ÍÊÈ›þ¦���ÿÿÿ���E(Ì›…xF&›šš R-ÌÌÌþ¦^7�€�æææ‚B'šššèvF�f�ÌÉÇ› ÿ˜�ÿÿÿ×Ô1���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ç��IDAT8Ë­“Ùrƒ0 Eeì^yÇ´éÿi%“‡ìLz–á [ƒ‰þWÍóù,è[T y`[ëÔ@¨Ì\ç†/Ñjd>ãÅxÖ`”BÆÄýT#°÷ª(7Âãeð]cö}0ŸR)ìKEˆÃµäÂ" ¿¤�Q` ߥøÞTéËo¸,*hüѦ³ †1è¼W¸”pvùвPu]»ÎZ¿´ìzZ…`mk-ç,çU 'Ü*”£eé{=ÏÒ}àø€“{äÈ=d‚÷;:®ƒF¹Ç‘þg [:ß0á"lI²ëä׸©0ßÓ;Cc&àœn7Lø¦Â'Bߘ€þ3?ÎÜšLÓ����IEND®B`‚IMAGE 422 ./arch/player/race/fenx_double_sword.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���9PLTE�f�››šš���E(Ì›…þ¦ R-xF&^7‚B'�€�ÌÌÌæææèvF�”�ÿ˜�ÌÉÇÿÿÿ¨–+���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ{à3‘���ÙIDAT8Ë•“Ûƒ D± hkÿÿc›àe'h»Žã6!H¿ ËÓ´¾ŸûЬ"ßO¤ksîH™ˆrŸPà Ks‰5ƒÀìe$ŠÑßo[Œ QYDfŠœ{�£2)€@W€$"ø0GÛ¢ŽÅL±5àšÿ4‹ݨù§ó¦_í¸kÕ&w`ž�×EG „Ç&FU«Ž={=`UJ>ð^¤Dñç°îzD¤H±*³¢~Qï×o—Cpà&!”»„ 2]—Àt l·÷}ÂX EÌMÊ}����IEND®B`‚IMAGE 429 ./arch/player/race/fenx_karate.110 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTEòo¡���E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æ¯–æææèvF�f�ÿ˜� ¨ÜI���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 2FìWS���æIDAT8˕Ӊnà Pfaà#ýÿ¯-õ ()Q”y¶×`ómP¿sþ~>�ÿ†sN½J>ع¡€:™ƒ3"‘ø¶÷þ‚gO‚ øpÆŸ ßøàZºU%xÕþE�¬¸ÞÀÞ¯ ÞuSÊBa½=€år¾y‚´6W(—°Ö¾ ¥ô9£;�IjûÄ`³UlmOÀÙn ÙPÕ:~AÚÚ W½6ÊrÆÇBßŲ,'æ*?]@Q#1Æþc[Za?�|'bIÀèÝ!I aÖfr‚}ßCþ Ž˜ä͵œA BB����IEND®B`‚IMAGE 438 ./arch/player/race/fenx_karate.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE毖���E(�€�^7‚B'þ¦ R-xF&æææèvFæ‰�ÌÌÌ�f�µkHÿ˜�Šö¶���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ;¼4���òIDAT(ÏmÒ½Š1�à‰ˆl™ÑeÕ«ö¢œ… Eê SØZÂU'ö²ýb‘öJ_ÁWð ,-·óAL”M²âtó‘ŸÉL�Þ@d 0RÜç¬À˜è3€¾�™P¼‘VÒ{ÂW•·Vv‰jÿº=­ØBâaögaíò&$VUiHnD0 ®ÔÈ\“ò…i%Î0™•%bʀ̮ûi_Jy99 aá|r[ˆ„ÈÝ¡§e¥¯CÛ×¾‡vÉ|@¤MŒ6A×#]ˆ<Ànžoƒ9�ëæË�Û.µa~¾ë€øsàðBüíG€;@;<çg˜����IEND®B`‚IMAGE 416 ./arch/player/race/fenx_karate.130 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEæææ���E(^7xF& R-Ì›…ÌÌÌþ¦�€�‚B'ÿ˜��f�èvF�”�ÿÿÿíßÇË���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ $ò;?i���ÜIDAT(ÏmÑ¡Â0àë0ÈCÉ‚dë’¾@ÇÞ�5IŠªEö0Kè=ÂP½6œhÒ¯{Iào1†èW"#)9 I)K\qÕ²þCðõ°>Q ¹ÿÝQ O0;*ši²ß6öp û òf}6a¿‚ñ5§PûÆ l�&Ö;ÀÖN€µ­%M…bí§py;w P+œ& <„+™TjîÜhdÞ÷2YÎú^“/”]w×Ѻã!­y’X$ »WÃ+v|Õ·[4i|uId����IEND®B`‚IMAGE 434 ./arch/player/race/fenx_karate.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE�f����E(xF&Ì›…ÌÌÌþ¦ R-^7�€�‚B'èvFæææÿ˜�ÿÿÿ�”�·œ ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ " ÚÐäR���îIDAT(Ïc`À $’ˆPG‡�ƒ ’ ŽŽFAedMJÍ0FA  € 0¤U4itÂu°%j4©8#Œ`LRqrD²Ä°Í)­ÜÁgbsR LDð•$’PšEÒ" 400ˆ¤¥!4 €NsK@™)âˆ$`Ì(sr¢| ²@è™™3‘š CÏœA0Œ9sPnS‡qŒhL’5Àк(˜–ˆèh\{W¡…IIqy¹T!J4,¯ZŽ" U^¸\�Y@¼œE€qwãÂÈÒ¤V£(d@¶?��þQ:÷vD¤����IEND®B`‚IMAGE 432 ./arch/player/race/fenx_karate.150 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTEÛ ���E(þ¦毖^7ÌÌÌ‚B' R-�f�æææèvFxF&ÿ˜�æ‰��€�µkHÿÿÿî&Ä���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ -¾T8���æIDAT8Ë•ÓÛŽƒ0 ÐŒ$@ûÿ?»ch÷aãЮ¥ Äœ Lj¾-\WÖëv�ö‰5É»p³åIàƒ$"÷à·LˆÜÑ¿¹ª ±"s#lˆìU HASR•Èå皞܋§èpŽÞ»Ç°Sá ÆA0·Qƒ ¨F'çœ#ŸÃDÄ d‡¹eqZHòAA•=Àùäõ8kYÑmÊŸ€Íùò:‚Kl›åÙÛ¶ï;V¯M;I­'‰ÑUïµ–ZáÓœbø-.P€ðÌ/ëá&hµ”vó‚ÖZáš ¼+ü£~�4¼ Ÿµ'3����IEND®B`‚IMAGE 431 ./arch/player/race/fenx_karate.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTEÛ ���E(þ¦毖^7ÌÌÌ‚B'æææèvFxF&ÿ˜��f� R-µkHæ‰�ÿÿÿ�€�2$tÅ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ò„ï���åIDAT8ËÓQƒ Pf)Ôöþ—í¬´ý(‹é$ã<ˆ„ðo0ÎÌûrv‰YôUø°õIàƒ$"×à"‚@ô·W5!‚¹7Â!‘c¨RДT%òðû�M>‹‡è4Z«û�wجðóBÔ1kp�ªÑé?ÀD„ ÎO<Ÿˆ­9CH'ÈT>€’Ù2-c°\ç’Ç+Z™Á¹hGɾ@)346ÉÛíØ¢»VŒ­w ‚ˆ¾$ü¯»`µyz`½½ØöûoïÛ¾¯Xnçö\«r•ò¶  ù‰Ž����IEND®B`‚IMAGE 432 ./arch/player/race/fenx_karate.170 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTEòo¡���E(xF& R-Ì›…ÌÌÌþ¦^7�€�‚B'ÿ˜��f�èvF�”�æææÿÿÿŠfžP���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ #fžeð���éIDAT8Ë“Ià C‘ {ÿÓV&Yô¥†V‹¼€>"6!„…ëiºßŸ€Í¢RâûQ¸¶Ö!XE¤Ž ²4—¸3ª^F”œ ñý^bî} z‘SR•¬ÑmE…�òômòBy�$¼Ts/‘}ñ�S¾¾ðÐäJt¿ù¹”ÂBé·¶á RÊq�m£â7ÀNÍ–oŒrpÀYØ÷ê›Ù8¹|`mV <ŸÀzÜÃóÒj­è®¸§™ÒBoÈฉ´,_$ÌÓì4§€)í“-zÊ/�Î¥™é ’A%72Ñ����IEND®B`‚IMAGE 433 ./arch/player/race/fenx_karate.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTEòo¡���E(xF&Ì›…ÌÌÌþ¦ R-^7�€�èvF‚B'æææ�f�ÿ˜��”�ÿÿÿ@òÇ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ !YR¿•���êIDAT8Ë­“Án„0 D3ŽØnûÿ_Ûq ­ìU;@ÌË8±¡µÿ ç5t=ÿâ-œ’Üïµî%î"â5Aà¦HK‰+C0g–ÑE5Ü_GÔ…ÐGÑ 5›St:zLŒ) /�´ÖERàkN]Gd_2 ¤ç3`z5)€*¶m+j�ãô×Èû�wc ñþX•u„–ÿx öÝï ?ÀGœ_K<×÷äžQnŒ<oƒ�¿=ÉgabÖ)Æmv9 åÏÁ#õh$*�;b±í; ÿô `M©hïÔ7¸A¨óßT����IEND®B`‚IMAGE 418 ./arch/player/race/fenx_praying.110 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE毖���E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æææèvF�f�ÿ˜�Z–›���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ-À#¯���ÞIDAT(ÏmÒ± Â0�ЋØÎ‰Öâ"Ô(¢88t/Î(f· îNº8tj?À?ð ü W¿ÁDi“”Þv»äŽ -(�cÄ59IY€8¶`˧ @‚v¢J˜U¹ŸéÑÛÕ=~ !4°Þk8ÔyB Y•{Â+âÂ@ DC=ª§®P˜Á¤‚¾àOHœ|>u‹@nqò² R¿ or>‰­C«%<©·_ÞÁ)Ù¬,ð¤Šy¶¤¼Ì—–eA]8»@ŠóÑi!§“ £Çåá´0´õ#À›¢641³ë™����IEND®B`‚IMAGE 415 ./arch/player/race/fenx_praying.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE毖���E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æææèvF�f�ÿ˜�Z–›���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ .ïåÜ���ÛIDAT(Ïѱ Â0�ЋXçDkqjtPº ç³+Hw§vqèÔ~€àøA\Eú &B›D¼íw¹ðWP�ƈ  jr’0qfÁž/X%cT!h/4%†i›R_CpèZ¶' ]ô!ÐplsOBpE\H€hèÆzjšÂ|L* þ0ÀDqÓt-R�¹EñÓ‚PAô2€üóyd=úY-6àI½ýúNÉnc'U, °%áUábRU%u!w”ùÙi!YæÂ´¾ÔN SAþ :Î4m×ʶü����IEND®B`‚IMAGE 417 ./arch/player/race/fenx_praying.130 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEÿÿÿ���E(Ì›…þ¦xF& R-^7�€�‚B'ÌÌÌèvF�f��”�æææÿ˜�«5���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ".*Ù‡^���ÝIDAT(Ïmѱ Â0à‹ø�¹V”b-R•Ì_ ’h‡>€‹»ÅrsÁÁÕEÈ+88ºø:NŸ@³h¯Á÷ñ'€¿%¢]™xD%Ñ’¨Œ«/´[?�m¥¢ü·£Ÿªr–íB{³dɇì½]²[LÉ\§mg£õ<e 2ákžP�èU ê•–£Ϧöª,lêI±5Ï*¢Kó`‡R‘G׆µ‚ø©róf�1¡nø«Ç1€à|va(8¹tÿ2¸Ä»€NÏêŸ%4žsqÒS����IEND®B`‚IMAGE 414 ./arch/player/race/fenx_praying.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEÿÿÿ���E(Ì›…þ¦xF& R-^7�€�‚B'ÌÌÌèvF�f��”�æææÿ˜�«5���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ/ Ôs-T���ÚIDAT(Ïc`ÀPùŒê…@‰/T^.ÀÀˆPä— Âø,ê@ruu¸�ƒS9 \Ô‹””ÊKf°)†"0°;+¹%#9EÑYÅÅÁW `wQqA¨0»¸8"LP:Y€©”±ÑU@¦CØP�I @æ]£¬‹�’€Ü»-Hå¡r«Þ=A2£<4PnÝ;dk"‚‚””Îü$À T.8S,9Œ•$gÎD`œ6 ]@L�M`"º€$jÌIn“FS±-rÑ#�L4œB†����IEND®B`‚IMAGE 430 ./arch/player/race/fenx_praying.150 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTEÿÿÿ���E(þ¦毖^7ÌÌÌ‚B' R-�f�æææèvFxF&ÿ˜�æ‰��€�µkH€è™���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ¾œ.���çIDAT8ËÒnà PÎ6� ùÿ¯Új&ÚvRÚ¨÷JLD¿ Ƨæu;ûQ³è韭D"zŸ˜ z ˆöÌ&È¢`î舀è¬v@ #3‰^~À ,ÄÓ>Zk.ÖÅï¯Ø®p®ùE´±kˆõâôo`Bà‚û½CûîŒ ”M…ª­x€ÊVºˆö3Pa`) `'EWWPvÌà8ŽÞûî ùMçyz¦Y"òaÄ=Q·@Î9åŒÅÁ ¯¾Êþ L¤§> æ”êõ֤×z†wÂòñírPˆï����IEND®B`‚IMAGE 423 ./arch/player/race/fenx_praying.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTEÿÿÿ���E(þ¦毖^7ÌÌÌ‚B' R-�f�æææèvFxF&ÿ˜�æ‰��€�µkH€è™���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ!†Ôu÷���àIDAT8Ë­ÓŠ… `çÇ4µìýŸvÏØ ƒ]îP/ÃBøZÑ}E}n'`)¢yc¼lydòAdæX‰§0Ë›`òò 耭�ÄA°�RtÀ^1‡DVœ2uÙZ3pɨËlm"׼̑C¨  Nþ�J.SôNª´ïN Ñ@Ù  ¶âT¶ÒU‘š„Mµ,€mŒPvšÁt½÷Ýiò—8Îóô¶C³Š”#î~‚rÎ)gZìëä5À§¼A¢é-TsJõe€Zk¹îá©¿üÔ?û.÷BY����IEND®B`‚IMAGE 413 ./arch/player/race/fenx_praying.170 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE������E(Ì›…þ¦xF& R-^7�€�‚B'ÌÌÌèvF�f��”�æææÿ˜�{I¤E���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ0g˜_w���ÙIDAT(Ïm‘; Â@EßéçaµÒÁ:YŸ­,„ÚF+§y[°Rf vÖV.Á%¤µÈü4æ:x»{8ÃxDÿ¢‰˜µn�“‰š®Öܱ¡òáXPQ¹|bùëbßJd%‹Ó±õ'0ÓŽÓÈÀ.µ·&^ ðÍ,ž¶ø³ÑÁ¢aíÙ_@@™yWS>€Ýäx Ì½[ß<ËS] UŸ«L�Ô*@Ðg~w˜í?Ë ÂMÉ?§°, ìîvÅÏeÔÆ=Pá—½øê<QÌô?/95èsï����IEND®B`‚IMAGE 414 ./arch/player/race/fenx_praying.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEÿÿÿ���E(Ì›…þ¦xF& R-^7�€�‚B'ÌÌÌèvF�f��”�æææÿ˜�«5���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ0ã&©���ÚIDAT(Ïc`À‘y âEH² ŒååŠQEAñr B ¨È//r€ ”ƒ ÂŒðr%%õ"„©¢¡ÂÆFŠÈŽ0KQ2)@v–‰‹“‰�’€£‹“K«BDÄÅŵE�èPg †p„!†‘].J¼;ÈŠ,àÑ÷î!’�ƒˆß»UCˑ޽z(Š, /(ä#Y+ÿ¦h8’±Ä™‚åH.g›9s"2ŸA,3s"j´$¢ H¢ 0LDW±1M@p÷DôÈÄ‘ �BÅ6?ÅÐt³����IEND®B`‚IMAGE 434 ./arch/player/race/fenx_punching.110 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE毖���E(�€�^7‚B'þ¦ R-xF&æææèvFæ‰�ÌÌÌ�f�µkHÿ˜�Šö¶���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ (<Jv‹���îIDAT(ÏmÒ±Š1�Љˆl™ñ–õ´ò¢œ…p©$Lak!ÂU'ö²ýrE>â¾ÀÎÿ¸ÆRÐÎ1ñØLvqºyLÈL&�ÏB Šɹ(1%z‹àG@.Œl +yý‡÷*ïl|‰é~…3ÔCÆ0ÿö° y2›*O,d7¢†„‡Ðjâ®OÉpcÖÁ‹Q'Bç×k8b_aØ×ZŸÿªKª ¤ÔH_£å§_:õÓOÈ÷º’ÅìÈ/–X“ÄRª"À^Qì£=€èë€Ø¯—µe«: ~$4H>ýpœ:Ô¸——����IEND®B`‚IMAGE 440 ./arch/player/race/fenx_punching.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE毖���E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æææèvF�f�ÿ˜�Z–›���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ *$&~¬—���ôIDAT(Ïc`À‘]œ|Æ AE$%4 p`R€‰ˆBÔ`|¶D'¡¸6€BÀ!$ç³0ˆa|ÖP±)..š F�Ü©¬@ëE\œ  ;)=D(10Û½{'ÓêÄÀ¸ØØîÕš…p™ÅÆÆoÖ„ ¸(Aá.JJÊÆ¯ {Íî!¡ ßkoDH‰«>’�k(h42 ‹)u 0Jtt´#Å£DGŠ�c{E!Jd2–—£ ÈÞ­½‹¢E°&�¨6:ŽT����IEND®B`‚IMAGE 434 ./arch/player/race/fenx_punching.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE毖���E(�€�^7‚B'þ¦ R-xF&æææèvFæ‰�ÌÌÌ�f�µkHÿ˜�Šö¶���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ (#Š,[¶���îIDAT(ÏmÒ±Š1�Љˆl™ñ–õ´ò¢œ…p©$Lak!ÂU'ö²ýrE>â¾ÀÎÿ¸ÆRÐÎ1ñØLvqºyLÈL&�ÏB Šɹ(1%z‹àG@.Œl +yý‡÷*ïl|‰é~…3ÔCÆ0ÿö° y2›*O,d7¢†„‡Ðjâ®OÉpcÖÁ‹Q'Bç×k8b_aØ×ZŸÿªKª ¤ÔH_£å§_:õÓOÈ÷º’ÅìÈ/–X“ÄRª"À^Qì£=€èë€Ø¯—µe«: ~$4H>ýpœ:Ô¸——����IEND®B`‚IMAGE 413 ./arch/player/race/fenx_punching.130 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(^7xF& R-Ì›…ÌÌÌþ¦�€�æææ‚B'ÿ˜��f�èvF�”�ÿÿÿ^é'���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ +/¨·D^���ÖIDAT8Ë•“‰ƒ0 Ck÷JaÀþÿk—�;4šJXBBòíÛ !Àt¾w F•y€ï+0Á÷#Éxì«ø£k‚ÈI]ÿM¥0õü�#Ì.èvHˆR(’séV¤ER*¤I(>Ó^µˆ<àØ§*¸m'¼°´¦DAH ¨°mp€Z i]@ ÔIwá0M6Pm©×³Vâ�¬Ä£j™+¡+Œ€À}^íFù;º÷Y9g¸c?ÏYý1€ „aÖ1 Ï:Xbõ|€Aþñó�á®^+nÊIô����IEND®B`‚IMAGE 423 ./arch/player/race/fenx_punching.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE������E(xF&Ì›…ÌÌÌþ¦ R-^7�€�‚B'èvFæææÿ˜�ÿÿÿ�”�ݽWh���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ :%»ŽP���ãIDAT(Ï}ѽ‚0ð+ƒ3gð41~Ä0JxÜx�:ËD⤘®ŒŒN ÆÙɽ/á›ØEz5ÆšÜ/ÿöšàg1†¨V"}!l@’ð…8ãÒ¦Q,Ê0TU�W‰ÂA·£—úÅ*õŒ÷WqD†—˜ç‘î-Æë]ªû%Œ÷”Àþ"pp8×àoÔնܦàÖND t«YEa€nM  §ò‰_ %+Ê ‘’ŽQ¯•$,q¾#¢XÌ›ÜËŒohŽ^ž56…QÎ `»¶&-x7#‚`Œý[o,88çç.d����IEND®B`‚IMAGE 413 ./arch/player/race/fenx_punching.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE8�����E(^7xF& R-Ì›…ÌÌÌþ¦�€�æææ‚B'ÿ˜��f�èvF�”�ÿÿÿ‡·‚÷���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ +3¼¶���ÖIDAT8Ë•“‰ƒ0 Ck÷JaÀþÿk—�;4šJXBBòíÛ !Àt¾w F•y€ï+0Á÷#Éxì«ø£k‚ÈI]ÿM¥0õü�#Ì.èvHˆR(’séV¤ER*¤I(>Ó^µˆ<àØ§*¸m'¼°´¦DAH ¨°mp€Z i]@ ÔIwá0M6Pm©×³Vâ�¬Ä£j™+¡+Œ€À}^íFù;º÷Y9g¸c?ÏYý1€ „aÖ1 Ï:Xbõ|€Aþñó�á®^+nÊIô����IEND®B`‚IMAGE 430 ./arch/player/race/fenx_punching.150 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTE� ���E(þ¦毖^7ÌÌÌ‚B' R-�f�æææèvFxF&ÿ˜�æ‰��€�µkHÿÿÿ@ŸN���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ / ÐÚ���äIDAT8Ë•Óá’ƒ `6A@Û¾ÿËÞÏûqDÛîŒc>00§Áqg~‡°ÇHÌE½ '[= |DäüÅ„È ý_W5!‚¹n„-‘½ Ô)hJªyùõ�M/ÎÅKtÚGïÝÀó�OØ®p‚ù ú±k°ÕèÔO`"Âãbĺ:-¤ ªÅP ˜µN¢S~ê –:ƒ>À¶YÀY¢³ÿecö}GõÚ$ˆ¥ ‘wˆ(L.Ÿõ—ÀÌ2Þ€ëßËz¸©´’s»Y µ–y] œ _äjÔ $‹3/…����IEND®B`‚IMAGE 426 ./arch/player/race/fenx_punching.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTE� ���E(þ¦毖^7ÌÌÌ‚B'æææèvFxF&ÿ˜��f� R-µkHæ‰�ÿÿÿ�€�œîO���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 1 Ê—;x���àIDAT8ËÓÑ®ƒ Pf©Öúÿ?{g¡ö¡,¦¹“hŒsˆ@$„_ƒ~gÞ°×H̤¯ÂÁÖ'’ˆÜƒOLˆÜÑï^Õ„XÆÞ§DÎU HASR•ÈËï4½8/ÑaµVÏž°UáãFÔ¾jpªÑé/`"Âí牱mÎR&xù@ÊÂöœ� ‚ÒĶÀÜç(#袃í(ÞNˆ\ÃÁ”ŵ <GŽî^Yø[æ}wA#Ø[20;ÿ&ò¾âæü­{^×¹�ËÜŽç Ü•³üì  xžÝS����IEND®B`‚IMAGE 430 ./arch/player/race/fenx_punching.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTE����E(þ¦毖^7ÌÌÌ‚B' R-�f�æææèvFxF&ÿ˜�æ‰��€�µkHÿÿÿ‘o#���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ /!+c¬]���äIDAT8Ë•Óá’ƒ `6A@Û¾ÿËÞÏûqDÛîŒc>00§Áqg~‡°ÇHÌE½ '[= |DäüÅ„È ý_W5!‚¹n„-‘½ Ô)hJªyùõ�M/ÎÅKtÚGïÝÀó�OØ®p‚ù ú±k°ÕèÔO`"Âãbĺ:-¤ ªÅP ˜µN¢S~ê –:ƒ>À¶YÀY¢³ÿecö}GõÚ$ˆ¥ ‘wˆ(L.Ÿõ—ÀÌ2Þ€ëßËz¸©´’s»Y µ–y] œ _äjÔ $‹3/…����IEND®B`‚IMAGE 420 ./arch/player/race/fenx_punching.170 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(xF& R-Ì›…ÌÌÌþ¦^7�€�‚B'ÿ˜��f�èvF�”�æææÿÿÿL¸$]���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 4ÉQ³€���ÝIDAT8ËÓÛŽƒ0 ÐŒÇI²ÿÿµ;¬´j´~@&7HéÛÂuõºï_?EcIÜÏÂw[› ä&"m.þ•§…âΘEYTÄý±D„}LöBK1µ†C5!`€,�RÊ"!ø1Ó±DîK¼ôša†PôE”ýÞwÄ�Ï'ÐwRŽA÷×÷ZC€?€³rßÛ+ðMØ8OFD Ö}`€ö>‚UlÛÆ•žˆ¦”ð6>‹Rÿ®E&Ç](Ü̬Áe6—À«‹!FÊ'€à§YÕ/¯Úm7¥h����IEND®B`‚IMAGE 425 ./arch/player/race/fenx_punching.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(xF&Ì›…ÌÌÌþ¦ R-^7�€�èvF‚B'æææ�f�ÿ˜��”�ÿÿÿÞžHÊ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8âU���âIDAT8Ë­“ÁŽÃ DcŒÚÝýÿ¯í˜¤R•šjAÌc�[)å¿Â1†ÎùˆU8%¹_…{Ý—ª‹ˆ¯ /Š´”83fYFÕ@r>Q'B‹Zhïf¢æ¨9`h& �”RERàÏLçY— éqà ˜„žEÊ# ŠmÛÞÎÀ©ö ú³åõ`²¶©-„Ö.� ½…€_Öݳ#îáßqkí<¹Ÿð@ê8ÝrÏÊЧ?&ö¢ôιO ÀúçxF| ‰€±¹ï;þôÀìRP¾©“Þ¤´_™����IEND®B`‚IMAGE 420 ./arch/player/race/fenx_punching.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE8�����E(xF& R-Ì›…ÌÌÌþ¦^7�€�‚B'ÿ˜��f�èvF�”�æææÿÿÿ•æ¥���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 4Àçÿ«���ÝIDAT8ËÓÛŽƒ0 ÐŒÇI²ÿÿµ;¬´j´~@&7HéÛÂuõºï_?EcIÜÏÂw[› ä&"m.þ•§…âΘEYTÄý±D„}LöBK1µ†C5!`€,�RÊ"!ø1Ó±DîK¼ôša†PôE”ýÞwÄ�Ï'ÐwRŽA÷×÷ZC€?€³rßÛ+ðMØ8OFD Ö}`€ö>‚UlÛÆ•žˆ¦”ð6>‹Rÿ®E&Ç](Ü̬Áe6—À«‹!FÊ'€à§YÕ/¯Úm7¥h����IEND®B`‚IMAGE 707 ./arch/player/race/fenx_read_scroll.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ �˜+Ùì��CIDATXÃÕV=lÓ@þîÔ¡[6—܆JUT© XÊæ9‚‰d¤ˆ)3ê„#Xº°d*¢² FêH ÙŠL–J¨d«‘®(SºUr õ™‹ëŸ³Ï€ø¤“|çç÷¾÷üÝ»þˆœuuäÙf‚”  ÚŠ^§OÎ/.1>ëú[- ¾Û݂۶V2Vƒ@³±®Ú”ÂšŽ‘ vP]Ãfc=$ã*¸mK¸mK˜ –4nÛGÃ=ŒOç¤2åd$–“Ê’Á©ã# HËÉHPÇCR|Y8îÕ§^§%¨ã‘åd¤åPÚéd_H ×i‰ƒãD±ÿf —•ã™mÃÝîV¦rÛÛx|»±~~q‰ç÷îÔ» ¿†‹•¡“u<pε›Í ž²…ȃ·ŸR³�õ. Z¦ü÷Ã8° >væ•:áZÑ~NTAà•B‚'>èÖ¤¬–< ~OX4ä»~ K__Pz¹Èt‘`ŒÅcZÇ3-:€$rÁ9‡mÛ`ŒMuï$K„<WRé*ÆOáÉâ\kà.€©Ñ/H>êq,‡{h­—Z‚ie üÉ"‘z8´À7¾y=看P—„|×l(‹ÇÁ~|1ïF¤Š*ñÎ߉žNêmD²ÉO·7Œî„eþWLbÿÑNªA¸¸ÂËÏßKù¥¦dÃÅÕß¹+$ȳ'7‚Wɾ ÔÌMª@*|#~¾èÆ“ap†¾};žßzí—ò[‰Àòûoð ®‚ÞÓöDÎ_����IEND®B`‚IMAGE 716 ./arch/player/race/fenx_read_scroll.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ �1=!l‡��LIDATXÃÕV=hÛ@þNtÈæM‰op‡@,©À›– Ci§.-.˜Nž;…L¥£I—,Y<¥Lº”Ž ¼¥(^%ñV.Á“³… ¾ Ñ©'E?'ÛÒ¾»ç÷¾÷ô½÷ø„çœË+O7SH �².ï4ÑæòúÃ󩪽˜EÎwZkp-3±ì�êµ%Y§”<RQ’,\ UÅzm)Z £,¸–É]Ëä:�HÏ›€f8Í×2ùqÃó)© `>ðùh€² „sÃi-óÑ€NIòeÉqoqè4ÜpÚd>(z*Ñè4üð$ ¡A|è©Eå´õÊp§µ–ÉÜ—ö:>ù?œ_^ßàíÖf™WœÓ`«•ÈB® à4˜¥•y¶ÿ55z�wŒ1$f„:€¼ô 9|DŽ…ó¡3é„ ôZ±k™<‘Ž÷ˆ¤.€þ‚ZqVËõŸû¿74\â®ë+G®Ü¤^Î3‡ (¥�J©R5E("Wc°m”Ò±j)’,²\I¦Ë2|%O$çžO�Œµ>ArøÈãX,÷ÈŒ;\ðýqeô¼ É‘ú82ÁV¶z=cŒh“P„¸«×¤Ã“/ ¿¾ë?ÉzÞ„>e⣷þ:+ýpÉmD"Éî(ψ×ëËZoÂ2ß+qðb#U!˜ÝâÝ·‹ÅMC°Áìö*%äÍç³ΫD_@jä:Y þï¶[ѦïÿD×~íWv½Rv+øCvÿÜ3‰ßÓhÏ™Á����IEND®B`‚IMAGE 707 ./arch/player/race/fenx_read_scroll.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ øìP ��CIDATXÃÕV=H#Aþf¹Â.Ýz™"‚Áæ\H·l@´ºæŽ„«¬­+¹2hcc“J-‚×–º‹tÊšF8¼tîÁ*©b'™kvÆÉffT|0°3óö½ï½ùfÞÞ°˜uyÄéF I@ÖeÍZELîѽªÚ›-ÉùV}VUŸˆXv�åÒŒ¬“J>¨(I MU±\š#¤È‚UÕ™UÕY�¤e@#œÆ‰UÕÙY{Ý›!É `Üë°q¯ƒ´ ¸sÍl\àƽÓ̂䋒³ö^qhÖ*L3dÜë(äz*Ñ'hÖ*ìèÂ%¾Aì¶Ô¢2ù®áV}!’¹_ŒEürþL­ß=<bsåSš.9WîhâF¨D–&úX�Wî(ì ‘µýÓÐè@Úc™Ä¥ŸËѪ+sç]s(ö=ÏC H©#€§?†ŸÒÌ ±Ø�@)Mäƒ÷ô†‰³î<O¨?øÞ†#œöHo9‹4” €g!© Ègo(¥}•ôÇrÀóÉdº,ݯÃi>´�Ë�ú¹2,>r9æÃ:ÖCÉè8N?ó´ì‰Úëðæo^Ü�’›ª ø^¹$-^œ€þ»Ìß’µìá|HÊÄ¡½ä]§n\bûž‰àë(׈o‹³¹zÂ4ç%@|^ UpGOØ>ÿ[\5T뎞^§+–@￯§œg‰> €ÐÈóddø‡Ýÿ¨??çÆœ˜ܱSÙÍà…ì¾üpAàë¿þ����IEND®B`‚IMAGE 858 ./arch/player/race/fenx_read_scroll.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ E;5��ÚIDATXÃÍW?Haÿ](š-ÁášÜlr²˜@7‡À]ëRH¡¸(trðOS%(%…%YÔ!-u,&àNÂmvP·f¸‡,%uÈëï;“»$÷ǃöM÷Ý}ßû½÷{î}À?Áå~bgÈ¡.²Ã<MŠ," ¼<¾¨›õ‘Œ€à�ðúYŒƒß—SãÁ–!ü�ç¢È¢ñ<nŸ¨_¹R§ ®r [+�æ²#øÕîX BAìUnàKŽ2‚ï®,�Þ}8@*�Gà®’¯[+3„Y$EI+åI+åçþ$tªØ¶ rjœ�`a-�ÐJy�ÀYq³‰iüøö¯ž>6³êçŠ,’™î±"‹½µ¦ÿæÆó± p�O. k9Ì&¦}mÅ%%_Ô˜ËbwegÅ}�@*• ÐÒ ä9ö*7‚]ÕÐ÷ÏèÖÊC{‡øÐF¤È"ECAHVzʶ€ôâ´RéÅ s¹‚•+µô‚/ð| €ÄVÜMÜõûÆu¯ì`a ’K’4p–¯¹÷õæ)bS/„°´úðŸQ¿·Èl@?í Ü{ôvR(ˆœ'ÖV­À[ÃÏÖ›§x2óš Û¡Ä95Žt:}ÿbkô^8&§"héŒ ƒ¥ «W·ÿÉèítö̆ Ð'€"Cê}©`€sàÉ©ˆ·T¯nžŒÜKY˜t_²˜sÏVÁÈFÄ™`³ž!;' ìœ$,û‡%§ÝsT¯nöß·t´£J²óÖbá  r„—å·aiÝZ)ûðFÄ 1÷œ‰ÜÏN8T6ϯq8ŸÄÂ×Ë^"~ìż¥l=÷|1ÙÎôâ O ÞºÃæù5ë*"ï+žF°ÀCØÎ$PÔ~¢±®ÚÞ|™ ·3 j¬«t8Ÿ4Ï€þMDNäùLÔ<zš½\Ný¸_þ?ò !>ïsuÆŸ����IEND®B`‚IMAGE 857 ./arch/player/race/fenx_read_scroll.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ )�ã#„��ÙIDATXÃÍ—OhAÆ E‹—äÛ Ɇ‚“€·‚/‚x¬`{i¯=4-‘‚””Ð"¨xæ"ÓRÁ«´…x*,‚è¡ÍAh…XzôRª‡<ÝY³››t‹>X2»™yß7ßÌ{óþ±ùºì/æqéK:aøz -ÉHˆÁ@¿íãêÎÓŸ¸Áð{ððÖÕ/“ ÓB-Ëú¼�W–Œ„¬v»~Ýz眺íjÔJEð޵$ñãø´€ègy«Œ'›° ¼43 À£'ψ \wµùj¥¢˜D$ I2££³Úõ›Ð­ãŽQI…`b6€QȰ¹ò”¨>Ì×wë<¹êTÕ›™'#!qª fœŒ„ÎÞ CÔÝ̼­ @­§²‰Ù Q}ØÓTìï"¤|«;øGÇXš™fså)�±X¬-@µ’ï=-o•}M¢ÆæP>®Q+òµ’ÇÍ’ô5“0ÐÖ¨À™³ˆOÎcrÄ'çኮ®÷‚ÛT,Lšù¦H†½×I¹a`PKw—ˆœ ˜Ë`›‘Ö4Í6V½›òß>t"àú0ªŸ­r0îW€rÏKP9>E ô“I…ÅL«À M‡Ž#Àg`½ZÉK;\)I…‰Çã?,´íþÍœýµžòÀöî‘O2•ãS*fÛ,.— Mâ}*ÏÚ#\NLù÷zJDõ$œD¬°°?�ûߦ_À>pxÝi¶Ì„Š„YëY¶¸¡³¸¡»©3žµ´7U±:”¶wÈ&ÎÀ‡‚—�8¨þ¶Ú÷^Œ[Ù2¨¥?ÕJŨtìüa¸½{äs–hNðúÕ jij¥bô"î’Mè’Mèòêþ ¬_@:<^”å6Ë&t&Þ~áp.å*ízNàñû=² c_‘.Ø$›Ðåp.e“¾—ZðÜ Ü¹>è¬{ª{¹œzq¿üì¾4ÊÔŸVF����IEND®B`‚IMAGE 839 ./arch/player/race/fenx_read_scroll.133 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ A^Ô��ÇIDATXÃÍW?haÿ%”’-Ááln)JîêЭ3.889FЀԡ‹Cÿ)HH íA)É¢¢tè*¦àêPø¦Ö¡ K§t+ywßårgš»Ë}ðÁÝ÷}÷~¿÷¾÷¾÷øÇâs¸Ÿ´oȦ.…ásAšY@8˜¬´Íú頧 p�xp3ÂA‰ïËgbâ-]¦¼�ç¢È‚þ|Ñ>'Ȩ|”R» Žb ×¬�øSÙ¡$~[ˆÁ�¶-x„ÃHpàÍå'�€§Ï_" €-pGÁ×kÖI#BŠ," Ī%bÕ’þl B»ŠGfA>#�È­æ�¬Z�|¨¼À¼4‹/ïßáþµËf¯zc¹" dö·X‘õ1âkN,¿Ð€Ÿ'—ÜjóÒ¬§Wñ”ƒ”òÕÚTKeÁª%H<‹À…1°ÕhùFe í¿E¯Y·|Ûí”—ºrÒ±Y p0�Ñêõ| @bq¬ZBbqý¯iÝí”—�\ÑÆ'/já± >@‚10ÆÐkÖÑkÖ±p#J8BâÊ2€ïc]ÅùLŒôc¨ôçcÀ]@Euâ[K_ ‰+¯< B³0Æú׬¬˜Dv´k–_DÐ8PèËÂvÔRÀ´xHŽí|&†D"ÑŸ( ®ÀÑkÖáOey'tèØ{ǧ>^d:gçFO¨æm4cU´É’†I×G`$a&¢ûy¦?ŒàþTÝNù6€ëZPºKCNBëõtÙØ‘°±#Yöþ™à–sðÃQà#c`ïøÔ§Õ}K‘yÓ˜�´»¿ M#š=¼'à®ÚòbZµ>šÖÁõbµ{äX§œ~öñ«ì|lÅ´„ÜîNÖ2“©†v<PLK¨°œaÂBÅ´D'kz}oÎÜz×Ù‘;WÃæÐU/èæçÔ‹ÿËÿGþ�³É,{h\Ú����IEND®B`‚IMAGE 751 ./arch/player/race/fenx_read_scroll.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 6pÖo��oIDATXÃÕV?hÔPÿ½Ð¡Ðá!ô2ÄE TÄ>Èä-r‡k»7œÒ¡““œ‹t³£Ó!Å¡u¸Ñsèâ Ò©’ÑE;FxA¸‚8äs¸¼ø’»$—Kzâ$/ß÷û~ïûó€ÿ@(e_]iº‰Âr�Pu©m›¥WGÞ´ö"¢e9ï4khXz$â¸s�ªN.Y˜F©ZY”JmZÅje1\ Ia…–NE�°íÁ)Œ§iÒ°tz»óï>g3ïô�´z f âü�à[ðŒ3w®Õ[¬”s €PÛ6©m›a2Š~WRL�Âwßé‘_8Ú¶IZ½Å|§§‚ïôpÿÉöžm…ßò_ÀZñèƒhÃ’ôµm“ˆ()5,=ü.T†f-ÑÀ=~=ÑØ£;·Ê-Ãco©­ÞÊ68Ò™š~–ÄÀ±7L*!ý.–/_ŠlžýÂXÛœ©9ï4ki $¬€I略↥“Ê‚ëºdFø_ôGOcmØ6w@yXXHk½“Ž×ô�€Ÿ%ݹ÷�P1_Âu]pÎË›ÊQ�ðý¿Æ—VO°´z—÷^ e e¨LŒìã‡ÃB9—9Ž«ƒèÆÍÛ3Ž“& -#‘!8çp]—Í `{pʲ@Ä©—,pÎ!„`…ˆƒ �ö+cÔGòàè Œ¯ï‹ "KŠæA® €v×WÂ(» ²Ñï–z-ËÃÝõÑ1<xý � ¿½áo<=øÂJ-Ã4‘Žçr+VY“‘˨•èç��p÷j5bƒ_™tö¸!û¹FòLIxAvÿü ”"V÷¿n����IEND®B`‚IMAGE 795 ./arch/player/race/fenx_read_scroll.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ à8��›IDATXÃÕ–?hqÇ?wVˆ‚©"i†þ Aè"€C%Á­´J†ØA:t‰ƒRíèT¤8´A¨ØE)VpÓÉE uåD1´Å!Ï!÷;îÒ\þ^">øqwïï}ß÷÷{ïýà?i¢·¯f¶®¢u�Àn+™xØaôô}©]Ñ[Ϧ"$£GÆõÁ»MG2ÔŽÑè°Oð\ôv G‡}ÖjRl¬H2^�hsk„\‚6“d4 ¯ñæÓW­ë-¨æs 'ÒdSŒ=�¶Íg=õÁõDZódŸL ’‰‡%[‡ÑX™W `½Wó9Qà{>™xXôDZ«æsv@Tó9®ß™eéá¬õ­þ™¬õž½™­U’Õ|N2ñ°ˆH}¦""’Œ¬ïžÊ0›Š¸:¸;çêìæ¥óÞ–áz©â¨=‘ní°fÓ6ýš륊[ ‰±2OðøQ‡²ü½Bhb¦«v¼/x6iÖ@¬ hôîi+NFbg¡X,J(²þ+µghb¦MåÒ CÍZo£†cgøEíÐí”n�0~B±X$‹y7 l[!�±—5ç· ïXÝZfuk™ç››¸Nïz«d*ŽÌ.œR)S)sÊïïß4l5¾~zÀmJ°Nñ §¬-0YÒº0·¶¡µpíP-øý»Žù�tÜ•zj,­ðì<˜ç°ï7{»»ÞoD#¹2~ßÁo`›#¾ÍþßÍU‡dqrÌꀪ *]?®åûÎáâdm¦^|@}—*¸÷ösG>‡zaEÈ­ØÎšÊ\emË~ ��¸|fÔb:vr` HùvÊB7õÒ÷CØ'¿ÿFþdü'¹»ÉY����IEND®B`‚IMAGE 845 ./arch/player/race/fenx_read_scroll.153 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  sFé¿��ÍIDATXÃÕ–AhQ†¿ ±-FPXš  ‚„`)‚ã)I4Çö"äõÒCE$àÁz¥bO­Ð€LB±Š‡xª¤ Š ¥Œe[%õPZÁŒ‡î.›4›4MRqà±ïÍoþùß̼ÿH½uÔ³µ¥ �V[I†}FçŠ;ݯBœ§b¢Aµ"âjç€Õ¦)qîÄÈãî1´];5ô¸{ÌÑ�¤XX‘hP•V�(£³ xmœÖ“hP•xù黲ë#(ç3àˆ$HÅhk�¬èßjª;" ¥-礑dØ'ɰÏLF-;nP,€9/ç3b€o9’aŸ8" ¥œÏXQÎg¸x3ÍÔÝ´¹6þ鬵½­Y’å|F’aŸˆHu¤"" ªæº¥2LŶ\°ÝìÚÙSí-Ãùb©¢"‘Dã ·lvL¿bÇÀ|±dWB¢eÇéë=\¡\ýQÂ;8²«v¼Íy*¨×@Ì ¨5ok+ŽU±²P(ÄëõšÿµìÖ×;8úri†G½Ö[K4MCY„²þÈÔå¦ãä.Ça …B{/# z"w.ÎLñ+ÌèFqˆñ£iš¦Ǥ´ Àãîaem#B¡¤Á©(<YZ„€n¸q¿W9×ZGñjù›9?êrqpzáÌéæ3°^ØÝ€Ò÷\�pwuáÉígìa–îîn4MÛb©•$]P�ø©Âàâ1ÆÇÒQ—ÙÜÜlÚ¹-Õ Œ05;@ÑÙÏÉû.®\½Î!w/k¿Ö™›{ÛÞ‘D-¹së ½ògé ß=¥_=ÐÙ·¹Ñ!™0; Ñ ]'žåÛòprh�€KÏ>�`¬‹¥ßÜ~ýYikÖÃñž¼Š­¬‘Q[¢ß��œ?î©�1òï²z#VÂp®ë¥ãIØ¡}ÿüÑ9¯Tz¬»����IEND®B`‚IMAGE 836 ./arch/player/race/fenx_read_scroll.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ #Q…ž��ÄIDATXÃÅ—?HQÇ?w”"5SjÞ`Š sÐ-ƒÐ¡“c Å¥N…M%¥ "„±`×dqJ;¹âúÌP;)ˆ©H‡¸qÈëÜËå’ÔwIÔ¹»üxßïïÿïàŽÅ2ÐQ=ôTó”á¹øuÕ˧mJ¿/.Ù9<'8€}x65E2v‰¨nà�‘±¯ž±Ü3Qòn¤·sxnÛ”idlD_†d•ç,²©)ª—mñvÁüâæB½TlX˜H[ƒÐ$�öOk||û€÷Ÿ¿´ T´Ke!§’±°’…œ¾OÆÂ PõRQÕKEešŒvÀž¡-zñä!?¿c&:ÉV~�YÈ0ÿ. @65¥n¢yi ¥”ª^*jÈB®Ãú¦g+CS™‰Një]‰O„toØ9<·†J £öŽØÊ¯S®c'Ò]“;26¢+'pÔªkª[M×KEÔÞ×k+ëÓö‘5PB"£Ëª<Ú(EÛqô;€råçÕX–;g‡h–i2Vþ0˜x@»VÑÈv)±iÊ•ãvphü.`<,ÃjÕ5þ’Fl6ˆðÚZmÜÊ €ã8�–[ŠÕ‹K·QY}%a­ºÀ(M×ÿ¡e5íàÃÇÆâ‚»aò6¢j è¿ �¢å~)[à.wv eèh…3`µÀ]P!D°k}·øxðKXv"­Ü�Øw$ày»Õ~P߈¶úò€HS/±EZ'¢PÁÆÜ4§µ+–v+]÷†^àÆû@sÀ`'$B"£ÿ[™2ºÏií €¥ÝŠ^ßþ(|‹…Ú˜›Ö.°WL€û.ÃÈXó›Ìoh‹‘¾§áÙbŠñÕmVf£è§©³ÅyyÂÊlôn<0¾ºÝñnÁyD^žÜ ‚©g#7úqjúí8ìsoGþH„Còr~����IEND®B`‚IMAGE 883 ./arch/player/race/fenx_read_scroll.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 'ÆP*W��óIDATXÃÅ—=HQÇ»„ zbâ+ Bð$`£ ±ºB¸#…•åEÂ5¹41bˆ’ 0eÎÆ"\RÛ ‚ÅÙ¤x^SÜI‚Ñb#’bmŒXÜKq·Ï½¯Ü®çÇÀ²Ãîìûϼ™ÿÌ[¸b1|بvªÁzÊ纨¶Uî÷Tý><f-@p�³øT¬h—눪ÐÝÙæµó-×üy÷e·–?ðÓ¯§Ýmúòé¬ò\­ÕÀT¬ûð¸"ß.Xµ¸µPÌfJFâF«h'�6÷^?ÀË·ï* Tô–ÊÅ9íïRrqNëÑþ.¨b6£ŠÙŒò[ŒfÀž¡#zxïß¿|b0ÜËJz�¹8@âÅ�S±>uÍKG(¥TÅlFï€\œ«‰¾¼3­ÑЯ †{uô® õ„toXËpì!1ÑðýÐÐjc›•ô¹Âf$^·¸»;Û4s×€c§T=N³ÔÆÇ¦Ìz³ºm´œ—V¹öMËÒÏ�r…¬Ç¯`˜©¢LÓh—ªNƒ/ü½é”¢TíRbFâä ;•àPº'ñ=Œf5�¨¥_IŒpD±\r„§P»¤Ê¤À²,�Ã¥¢}xì6*#p ãÃ鲚l§¼õ8šJðóÇ�„ÄÄ“²šndã‚»iò6"»š:àRбSï+^|óè3 GOÁ…X–…;;Z>tü†‰+ÇNéèÕ ûep)uÔBˆ`7úzùDCSÄ“?óŸ¹Ññ‹MK"FO£®Z5¢3ãrÇŒÄqìG莇‚¥±öœ¦× xkn÷kø�évFo{ž ӺΞsÀôzAßþÜÒ0Zк ì?Àg9¸Ì0Ë[$–·tÄ­È™ÇñþdŒÛó«ÌŽ„[rÀ<Ã7j2FZî2;¾š¸=¿Zó,iÝ!-w/ÅêSîv_èÏ©ßÇó^÷rä#L.‰%u����IEND®B`‚IMAGE 874 ./arch/player/race/fenx_read_scroll.173 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ $7%ª(��êIDATXÃÅ—?HQÇ?J±]ÌÒTo°bBÁÅ´“”@B‡v‘Ni)YLÇ mCJAD-bÁ‚”&YJÚA\‹ qéðš¡j\D‡kбP*y’{^ŒÑ»Ä??8r¼üxßïïÏ÷ýÞÁ›æÀG6ñ“Mö“÷uEà°¯||«§Îé×îKk۸𜞌ôø,"ò(p€îλŸc»äÄɶ¹#¿¥µmÇeð8eÚÝÙ¡‡d¥íi¯’‘~Ìݽºz[`‡Íê…J>Wp(ªµK@‘�ø¶Uæõ³§�¼|û®Žˆ[p·¦R*²)ø¤È¦Ô{8à“€¬äs²’ÏI§Íèqyf¨ˆÞ¼Î/Ÿô÷²™@dS�Ä^$HFúåY^*B!„¬äs*"›jˆ¾–™ödèÔý½*zË‚=^u6,­mk§J  "WÖYÈLS(nàŠÙÜÝJ9­ö@ƒ¦+ùråÓ‰Êz³¸®µ[iɪpµ*Ea(©Š#¯`oœzM¦á€O.ñ(›SééÉü»V®n¤ëÕnÏP”Bq£ª¿qÏ„30š˜³F,£CQLÓDŸ×a†*°jV_E\�`d GRtÔ„£‰9­lN¥cnãÕõ83Ào¢¦ü4DZ2¯þüÉqÿ[àV™ìÑ›Màˆ€½Ùjõ×øn[qï�\×u ÃÀšm÷ÀŸ>3-²)½aR~�­TBE­ëz°}mPi®§aÙœJÌ~ü¹âÊŽWÉѵ-í )oîöþ&ÿþ|Ï•/¥¾;uf‡Ø*ï3¶\Ä~]³N¿fà®/Gi{"ä§Ç{™­ò>�cËEu};¸ÕY rvx@-XÀvsÜÊ}@‘ˆÍ¯›_U·c-OÃR"B×ä"![ZÉ€,%"dÄ&!ÿÅd kr±a-nÜ #6Ï…Àá“wûºÏôãÔµ4Oißó±ÿ/ZDw¶—¶Ò����IEND®B`‚IMAGE 586 ./arch/player/race/fenx_singing.110 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŸPLTE����¡ò�€�^7æææèvFè¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���E(è¨^7þ¦‚B' R-�€�xF&ÌÌÌæ‰�æ¯–æææ�f�èvFµkHÿ˜�†ejV���$tRNS������%&(*,-034789;=?@AEKUXfh~¤¬��6IDATx^uчnÃ0 EQ±{4]iºéÙÿÿ¶’2$"1|ÀÞd úúgÐâ«—LB# Aœ‚îEQ°Ñ!@Ë€î. `æq@ ¬,˜¸pÀ%í²tÁè÷G™:PeBrï eý~¦à"ƒ‚Ê `à\Aº¢m["”Û~ßöàF„°2$`ûlª»Žïˆ;Û~û%$wü€p€Fg^°ëE&Xš¦Yk&¾…D›'P0…#tM$‚ŸO'òê€V L¬L¼ÌD~å4»€æ"×ä@‰e [,y£ ü²oˆGˆÈeûb±@W¸hùo±\.#ø˜8 6ÅuÞŸŸ(L˜uïAʨc@;À…­h¸F]U¾@8Fel6›J£W 5ãý÷dHß‘H����IEND®B`‚IMAGE 848 ./arch/player/race/fenx_singing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��8PLTE����¡ò�€�^7æææ?.ì«í«ô°ø´ÿÇ» ˆõ²ô±ÿ¸ï­è¨ð®ñ¯ï­êªí¬æ§ì«í¬ê©ëªê©ëªì«ëªê©è¨é©ê©é©è¨ëªëªé©è¨é©ëªé©ê©ç§è¨ê©ê©é©é©ê©é©é©è¨è¨é©é©é©é¨è¨è¨è¨é©é©é©è¨é©è¨é¨é¨é©é©è¨é©é©é©é¨è¨é©é¨è¨é¨é¨è¨è¨���E(è¨þ¦xF&‚B' R-�€�é¨^7æ‰�æ¯–æææ�f�èvFµkHÌÌÌÿ˜�á���VtRNS�����  !!%&/222578:;?BCLNOPZ[bemprwz}~—›ŸŸ¡¨«±²´·¸½ÎÑÒÕ×Úèïñõöùý Nu÷��qIDATx^…Îårã0†a23nR†Ý”™™vÓsÌ÷þï GÖXª'“î÷ÇžyŸ‘$@M}Oýêi€²×#° ¨$¸‡aHº'�:„È]‹jQm� ä´ âб°ÓÆÀÈÞîÑÙl lÛBÕááÏ僘 vú²ðw^ƒPØD½§kƺ8whk€ÐœZÝ —¡EÇq�Ð.«^f�ÛwëûÇœb@Ì0Ü'?ÆàößœcÔ‰;l/¾ZÖÕ0s€¨CŸ34¦—^z³+£1@ß÷‹<)ZSÖóæÛ` BÑÀ "ÐÙj]¯$°à+Qbeèþp `‘VLÁwÀDN‚Já—¼ D¤äøˆé§›ßi "—CÝ£#íáÐg.ŸÏ#§&0€E<ò<T�40„ˆ{-�ˆèEs!ŒUH£Ñs]Ý 0½T*¹îO€ç2ª}O¢$øÏ¾�©æ¡ÛÐí<����IEND®B`‚IMAGE 592 ./arch/player/race/fenx_singing.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¢PLTE����¡ò^7�€�xF&æææèvFè¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���E(è¨þ¦‚B'xF&æ‰��€�^7èvFÌÌÌ R-æææ�f�µkHÿ˜�毖dw< ���%tRNS�������%&'(,-034789;=?@AEKUXfh~->¯ë��8IDATx^uЇnÃ0 EQ1Ý{¤éJÓMR^Ùýÿ_ë“‹J ?†{ vçâÃg¾8ôcÄ]|ÔI19ô¦i$uRÒûp)Ìè¹8¸0ЈÈ.8Hw�KB„èV•�Ld@<M'è¼7!Œ~ó¥¤w@Ø€÷DŠGÇFO ôo%Åf.uÇ>&úù„8Ñ×˲$ö›Ø7ÐËTõWO"î�:ö0S½¦ “ã¶Û¿Ö7"g¸®‘e©êe„×u½ã\hÄñ¢3ð1Îð  ‹V¼??Q rf�kÁª â}½ZpöEUUÜ&JÙn+þËAq²\ûÀˆú fFmº\„�íÓ¼, ë=àŽ¹(Šù|ÎC€ Æ�q˜Ãú`xÿŽ›JæüW||����IEND®B`‚IMAGE 659 ./arch/player/race/fenx_singing.130 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���±PLTE����f�S#€€€²²²LLLxF&fffÌ›…þ¦�|º�žíè¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���è¨E(Ì›…þ¦xF& R-�€�ÌÌÌ^7‚B'æææÿ˜�èvF�”��f�ÿÿÿ Dä|���*tRNS������������%&(*,-034789;=?@AEKUXfh~»]iÔ��gIDATx^}Òçnã0`Q²~½øœr©Wf—¤š[ÞÿÁ2©€‚`ÏOÍ· ,¨ÌŒ’õ}IJd`Љ33‹ Ú0(²9YÁ¤§�ÔcF1ìCTµñ(Š"€À�öI<æì³dƒsQ¨†ÞÌãìX¨Z«ÞÃä,®e•�Pôµ÷@Œü|³ê\YZœf=ø@ði�Êêj8œð‘ ^¡ê†+Æà›ˆ@ãÉ�ëÜë�îWì#Xh³ 8!`øþGŒü HT°¡'È9.²L�öUEa¬¹€y€'`*`·ÃÁ¿ŠKù€º&`ÈïîEþËU¨×@È‘g¿E¾šwÀ  Ù×@«‘‡áL ‚5xªM k Däsë�6 ø£`€M]‘çe�‘(Zš¶,qÞ¿ÅÓíI�ƒ¶-Ù Ë ì¶-¶(Ž"Šƒ`/8 ºéÁOA˜ž‚ãyÇ*Q‚V¶ˆø����IEND®B`‚IMAGE 929 ./arch/player/race/fenx_singing.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PPLTE����f�€€€S#xF&LLL²²² R-Ì›…þ¦�|º�žífff?.ì«í«ô°ø´ÿÇ» ˆõ²ô±ÿ¸è¨ð®ñ¯ï­êªí¬æ§ì«í¬ê©ëªì«ëªê©è¨é©é©è¨ëªëªé©è¨é©ëªé©ê©ç§è¨ê©ê©é©é©ê©é©é©è¨è¨é©é©é©é¨è¨è¨è¨é©é©é©è¨é©è¨é¨é¨é©é©è¨é©é©é¨è¨é©é¨è¨é¨é¨è¨è¨���E(Ì›…þ¦‚B' R-ÌÌÌè¨xF&^7�€�èvF鍿ææ�f�ÿ˜� úž¦û«¦ý¹¦�”�ÿÿÿ„(¤µ���YtRNS������������� !!%&/22578:;?BCLNOPZ[bemprwz}~—›ŸŸ¡¨«±²´·¸½ÎÑÒ×Úèïñõöùýú�ä}��§IDATx^mÓesÜ@ Çaɾ»P™¹¡rÃ)33Cúß]ÓQRþþ\é6]Û3þ½ð=£g‰kÑ(®T‚¦"F‡;”Ât%DÔP›k�LŽˆ:¹ÏÓ-EQ ˆ‡´#>°xs_Øàܶ0ÆÏ¹Í·î?>O\ÆXkŠËàíågwK�:¶�bG7øËÅ� t5Î¥©Å8 8|è\þôa¸Â0C€q&(Þ=½v{ðn…÷x`LÑbYQ¾ñúÊáL¹[`ûëÁ™o³üêë…mÐ2Ý–€4ן,}Ìó秘ÊÀú9íœYþpdc!_¨�B¯×ƒµ�Å{§¯æï¯}:@ÁDàO†)Šùà±Gù‹u®‚, y°zòͽ9@²áð?@Œ|08ËU †ØT°™ø™>g.Ï @ÅVk|yi&�nAÏÖOÁ¯ßó§÷—€=HF …F´‹ë�Iš¦òÁ$~w0À¬ Ô´°€¨@æc ¢f€~?%è#j"0FH’> @k~¼L>±Í ¹C…¢Š•ºY����IEND®B`‚IMAGE 657 ./arch/player/race/fenx_singing.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTE����f�€€€S#²²²LLLxF&Ì›…þ¦fff�|ºèvF�žíE(è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���E(è¨þ¦^7xF&‚B' R-Ì›…ÌÌÌ�€�èvF�f�æææ�”�ÿ˜�ÿÿÿõˆW���,tRNS��������������%&'(,-034789;=?@AEKUXfh~¿<��]IDATx^…ÏçVë0à]Ù)tn-¡‡PïHrO(ïÿ\ ÂÆÂç$ýœïì®D¿DB4Jš ÕTÏÜ)A,lÆÀȈ̤êÔý“aÏ�°9RsLð=]ŸYk³Æ|#hWˆìûŒÌç¢#½o…µýü”}�±`]U6Ï¡¿ï¹ào @ê @¢ Ç;7ëÁ™¯¬÷eYa"‰>p�³èÀUX_ÃcJðxGq认­m®ärîÜwÔ,W*ï_; ' ç~i�c²¦ªîZUú‚†"ôðÄ1¬Š Oð39ÁjÕ�ÏÏØoÁíì+¨kЦéÀÍŹö€õÐ>ebÀ @³‚ˆLùz0~Oà'ð™L"Ð nX Â0@ ÑbQÐ%vÃ/†€EQå6lœ�˜�Åž˜õ`Yb¹qÅr @û ÑØ’7©,MÅ›îV����IEND®B`‚IMAGE 614 ./arch/player/race/fenx_singing.150 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¢PLTE����¡ò�€�^7æææèvFè¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���E(è¨æ¯–þ¦^7 R-ÌÌÌ‚B'èvFxF&ÿ˜�æææ�f�æ‰��€�µkHÿÿÿÀ`è¸���$tRNS������%&(*,-034789;=?@AEKUXfh~¤¬��OIDATx^uÍénÜ0 …Q1é¾7M·4Ý/)ÉûL’÷µ^B6Œ; ØÀ=’´Ú7±ö€«K0Á´)q¯Ìé`R�ÕSüTU=„À ¡`/´È (Å…zëþÑ® V + ( ˜Øû�5•ZKÑ̳îÏ^l JB©(Z Þsi`š&”ûîWðÆL(6�a7×Üp'F.,CØÛ_&öÎA\.à"♈ÙU�%ÀÝrÆáàâ·‰±ÛT•ô=UïàÏOŠ'ö5€&,ì°¸/7fíé(N€|¸5{-`ú…À³o²É÷¥Ÿ}'è]˜ÙK›àý<ÏÇã^9ØrîºÙIιW¤6tøþù“`pÀs+�Ù�rBƒkì{cì†a<0ŽãÀsö líÁùþBJrà x����IEND®B`‚IMAGE 892 ./arch/player/race/fenx_singing.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��DPLTE����¡òè¨èvFæææ�€�^7?.ì«í«ô°ø´ÿÇ» ˆè¨õ²ô±ÿ¸ï­è¨ð®ñ¯ï­êªí¬æ§ì«ê©ì«ëªê©ëªì«ëªê©è¨é©ê©é©è¨ëªëªé©è¨é©ëªé©ê©ç§è¨ê©ê©é©é©ê©é©é©è¨è¨é©é©é©é¨è¨è¨è¨é©é©é©è¨é©è¨é¨é¨é©é©è¨é©é©é©é¨è¨é©é¨è¨é¨é¨è¨è¨���E(^7毖þ¦xF&è¨ÌÌÌÿ˜�èvF騂B' R-�f�æææ�€�æ‰�µkHÿÿÿ Âl���YtRNS�������  !!%&/222578:;?BCLNOPZ[bemprwz}~—›ŸŸ¡¨«±²´·¸½ÎÑÒÕ×Úèïñõöùýpûv��ŽIDATx^uÏeÜ0�„a;Gef8*Â1–™™¯c.üÿï¯e[Õ6¯’ÈÒ<²!}™?Æ"€Sã`CÀO‚»fŽä àÎþ´RªHWJ¿wˆ ‰”•ìþ“7°Ö å"ð{öéÎëG@kÀ(@ÁÀé­ì×­´°Z[« ßÁ~òøõâÕ3€–VïÁZì) ¹råAóyIð Ïs)aw=Ø%w?¬=|Ê)�E†�¸_ù3½ÿ}3îÄ0–o¾\ø^o.Ä Ä(¸LL-~;µ5WÌE@!°½ cÐëQœ\/¾nü8€VRŒ¢¤ r ;væyñv5K@ ô \½’bùüÇÇ3Yÿ‚¢i®r€%Ї¼\4?Ïr w{¿¬ûN¿Äµ/ïnOy/(«ªÚa'.Î^:ìA0¦Û­éãþc_ó€uø Àî 08�ó �î ¤ÃÀkpíÖ-@Œ îvꚢ€c¬H¸íýB¼§„v.����IEND®B`‚IMAGE 735 ./arch/player/race/fenx_singing.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÛPLTE����¡òé©è¨ê©ëªé¨^7ï­ô°ô±ø´ÿÿxF&ì«í¬�€�?.» ˆæ§æææè¨í«���è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨þ¦þ¦���E(è¨æ¯–þ¦^7æææ‚B' R-èvFxF&�f�ÌÌÌ�€�æ‰�µkHÿ˜�ÿÿÿ§©€����7tRNS��������������������� %&'(,-034789;=?@AEKUXfh~Ãó[HË��|IDATx^…Ígsœ0…a]`×-½÷æ8Íqj9÷J¶Úþÿ¿(‡Ý‚NÞ1ŒÎ3àd›Û>_‡õ�Ú$ðÎNàÇ=2HÊ&ö&ÌàÎ4‰ÇVÚÓ ¢ªŽÁ‚b„ â¡ªÈ+³é„ ‹ ôϵÓ³²”Bè„vhxðò»Míµ$‚¯€"ü–ŠÂìXz°CŒ!¨ç AÊ&ÆÎ\¿;„x‰p©Rüüf¥Ý·O[p}>Ÿ ÂùœÜžTOÍ~Ù£¨€ÈQU¼=3{! (™ƒÌCØá~QÚg^æ¸[ à¾å]3{6�*Îaï±XÀL žgÕÝ#XgI0éÀ×ã!P‡zÕµ¨)ªbúåÃ{�Š!دª›wdb–5ºë2¨ë‹XnDI ^^°õcÐ xßn„÷~’€oYÓ¶” RèÄU€;Ð�2�¹ d ²Æ¬mòžAÞg³¦™ý°†èê_0°1øOS-k‚k„Eå����IEND®B`‚IMAGE 649 ./arch/player/race/fenx_singing.170 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTE����f�S#€€€LLL²²²xF&Ì›…þ¦fff�|º�žíè¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���E(è¨xF&Ì›…^7þ¦ÌÌÌ R-�€�‚B'�f�ÿ˜��”�€,@æææèvF(Mf"3‘9D3Qy.9¥/[n!;ÿÿÿ•˜Aì���$tRNS������������%&(*,-04789=@AEKf~v &Ê��]IDATx^}ÒçŽã0 `ÑN²½]Íö+Cª¸¤n¹òþÏu”íäÕÁów>¢ CIL¥sš£ˆ=b LJ­f¦„×°öc ý–í‘€²,a=3û71FÅLA@&¹ÃŒzÁ<ô!$ºkÙ9椿‘ë�\$±G„äkÌ\]‡À.xXç .Spˆ€*°1Ñ…ú´°ÌŸD(Cp�Ùí³öˆq8RðùIòe záÐt#ijÈr à´ošè‡xÑ<¦à› Ь4 ß¯Âr*÷VPU û²ù)g0 �ØU°Öÿú#ò‘zÐmT+­µG¥Â{–J€s¨ÖMÜ;>Þñ*ëì°‚o€†ïZ¯¡1L"ß—ã‡:F]·�Z0Ñ·»[Ê€Šºm“/™½d)Pb© Úk9†MöH§L‚~J¦ò•îE‰ÃPÎ3����IEND®B`‚IMAGE 889 ./arch/player/race/fenx_singing.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��VPLTE����f�S#€€€LLL²²² R-fffÌ›…þ¦xF&�ží�|º?.ì«í«ô°ø´ÿÇ» ˆõ²ÿ¸è¨ñ¯í¬ì«í¬ëªê©ëªè¨é©è¨ëªëªè¨é©ëªê©ç§ê©ê©ê©é©è¨è¨é©é©é©è¨è¨è¨é©é©è¨é©è¨é¨é©é©é©é¨é¨é¨è¨���E(Ì›…ÌÌÌþ¦è¨ R-xF&‚B'^7�€�èvF鍿ææ�f�¤/Y¦l›4N+e4%j!8Íe"2„NzD)A0ª,`´t¾‚Á r12-!�”�ϑוڛà ä¤T%#ç¦Z$)„?4û­¦ý¹¦‡*Gÿ˜�ÿÿÿ´`5ç���AtRNS������������� !!&2578:?BCNOZ[mpwz}~›Ÿ¡¨«±²´¸ÑÒïõöùÓïÎX��‘IDATx^mÓU“œ`…án˜Yºl<ëqw9Ÿ`#ëw·ÿoé5,œ nÞ§¨ê¢ .tÄ•å ÍmÚ¡#P „’Z"“é ½Ä�Ò Qa"ÉŒ1Ù@T�‰h (Í�thêÒb]‹saLÞá=Ë._¿uV.`$‰±Ö˜¢óà w¯ �`•h‡ö£ÏøÉù Ø8öÞXŸ!á#‡ÏDwnrŒÂÃy#�¼÷Ûì•Þ£Þ×|{þróê ;Á_ï-À|úëóàé¹ÐY 3_¼ýûcÝ;^*´´{búÃêçÉh² °N´ÿäbô~þñ± ‡{éñÖö‹èþïœ/ÿX_:U\A @¿ïD½Þ�ë�Ü‚öôûõ>}©káþhW€·¯_­M4€|€ÿõsåÄÁ0tñÿž ð{$T¯Ø…8EË#ÿâ @bª€à: ¼Bk ‰hÒ»@q·‹F€nš‚† ½t)@ýß,|>nÍûþNyw<����IEND®B`‚IMAGE 656 ./arch/player/race/fenx_singing.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTE����f�€€€S#xF&LLL²²²Ì›…þ¦�žíèvF�|ºE(fffè¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨è¨���E(è¨þ¦^7xF&‚B' R-Ì›…ÌÌÌ�€��f�èvF�”�æææq =j!7ÿ˜�ÿÿÿ õG���*tRNS��������������%&'(,-034789=?@AKUXfh~x’¤„��^IDATx^…Ðçr¤0àØàœ/9ž½N×’È»Žïÿ\×H¦Jà5nø×_Í ˆFí%€™Î¶=>Ð…=ï@Âj* 2Æt½Zµ$ô3ä`‹‚#’$Ažc²NxpH B1%ˆb�¨ü²¶;rªApFèÓësöø¤Š<7UEúŸ÷\ð;)€ÊöPµ|íi dŽª,3•Ë0yà�fƒ 8ÔÎ@ÍãÅžý»p€ææõÚÚvÞ«�Uþ–³…µ?t�‚]UÍÌÎÄÞhQ¡´#xâñ�P±o–�Nú`OO@³\ä-¸=ýš†}]{ðru©PI¥Às ö¼Ò7¡ßà#‚eöàˆ5`>¼Á9‡g‚¶Ÿ| ¸#ôÑ >(Aa¾ö¿be €ñõZPeQ@T×°c$Àè„D¶ |³b…r5q�¬F ˜!ÏMIψ”É\����IEND®B`‚IMAGE 431 ./arch/player/race/fenx_spellcasting.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æ¯–æææèvF�f�ÿ˜�ævfD���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ (®¤”-���èIDAT8˕Ӌ‚0 ÐÞî)lÀÿ­mAP·½Dbì±)%#ú5Øï’ãkôgxï¹­or!°üÙû‘à™y�öþŒ æf†ð8~×c¼㣾ٽPÄbÓ€J)ñ:ùRO€¯G *âc¯?>€ÍdM•ð ¦jµM˾ÚMJY„�§ë\»ÀZTçV Zà­Å䜒© L8µLÜ%SmÁõ¢t†^‹KÌ3joÌCÞfyq½UáœÑ;‘)óè™È– ÎŽ‚¤`|¼rJwuBÒÜ4X–%Ég(ð ý‘'m˜ëºä•����IEND®B`‚IMAGE 435 ./arch/player/race/fenx_spellcasting.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(�€�^7xF&þ¦‚B' R-µkHÌÌÌæ‰�æ¯–æææèvF�f�ÿ˜�ævfD���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ (9oʼn†���ìIDAT8˕Ӌ®‚@ ÐN÷)ì"ÿÿµ·-^¶8ÆhÜã¤!Ò¬òxÎJ°WHö·_gÖ�ý1F†[ÄòåoRdfØ„ލ`¾Lñ-p¾6ä| Æ¿ó-2Nó¥_@kù�y, Øò†ß‘RBG~mç¯P’5uÂŒ›JLèÝ6-ûrÎV]çÛVÑCxkœ¢UL!(™\`"˜èƒ`â(‘(˜úÎ ¥3x§˜gtoÌ]$^g¹pÞ*öp­ðÀFdÊz ôž¨–ÿŸOŠ‚Û µ”§sBÑ<,ËRäy+ð ý?/}¸¨G����IEND®B`‚IMAGE 435 ./arch/player/race/fenx_spellcasting.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(^7xF& R-Ì›…ÌÌÌþ¦�€�æææ‚B'ÿ˜��f�èvF�”�ÿÿÿ^é'���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ &5ðˆÒÞ���ìIDAT8Ë•“‰„ D™rXuÿÿkw¯ÍVǘÌsÚ"8÷Bp¨Ú×&!žªðì“�$À>¦ïEÄøõëWþ¦ÿÕiþŸ!’’Ëw¨Dµ®nE¼&Q1™#JH":@M ¼î€â¬°×àÜÛ¨IõsåÖƒøÖ'êªp$y#Œ7�sÎ$l  2°®x�†a®!ÙH`ÙÅ3À� 2›Mx#ê ¹k§ Œ (&àd;¯ôQ¢}`ù?0‘™âÀ­š¦H¿ ®›€¥ð]:%–x]>èä·Ë¸·úBtîôŽ�����IEND®B`‚IMAGE 436 ./arch/player/race/fenx_spellcasting.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE������E(^7xF& R-Ì›…ÌÌÌþ¦�€�æææ‚B'ÿ˜��f�èvF�”�ÿÿÿ^é'���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 01���íIDAT8Ë}“‹®„ Dò°(ºûÿ_»Sѽ«·0Ä„dN‡ÖÀ4uT¹žÂÓ¹¯N$PF�-¡:> T‰èÕS"þ<ûòpïSõ$DNÿÙA#Dr–xù7F˜¯QE5¥üë3Ä"²ˆÎP®g¹H$ôütÀ¹Q³êÛ©7 õI€‚ã·€rn€µ°•B"Ã"ª�¯:À<oR\€æ…]ô€‘Ím"X`3”ê]6!°4 ºÀ$Ç}¥šàßs¬dÖÔø«Ö5ÑHèú-ûà·ŽØÓßãóA~{<®>à|9î’����IEND®B`‚IMAGE 497 ./arch/player/race/fenx_spellcasting.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���fPLTE����¡òÿ˜�ææææ¯–^7�€�xF&ÌÌÌÿ˜�æ¯–æææ���E(þ¦毖^7‚B' R-æææèvFxF&ÌÌÌæ‰��€�æ°—µkH�f�åååÿ˜�ÿÿÿáááíg7!��� tRNS���������úúúôùü•��.IDATx^…ЉnÂ0„a;@ÛÀìÚ9¹iûþ/Ù1Á^Òôø¥�Ò|Ø秦wÇøñ¹ÔÌ£€ª€49î‘Áöª*�ƒ�Ü™<D]Õ¢ˆd…à REˆp¯y ¢ß…j’"Ýn·d‚ €@3¨ l¢Æ¨*êÑN(»ƒÆTqEw<ÎÀë0 zšÀI±Ûí¦êÄ{dÀ}¹&‘9ežÀçì�÷ î*_ Þ9ÎçKÇeÅ­àsùä¾âÐRg~ß-EÜÑÀj ’@×]ïà}õfÂþI‚ñÊö{ÌA¡½‹õz(ZÖ´-¼’X�³x€Ü Xü˜Fß6¶°½ï›¦ÿ°†è÷+ØüÓTûv[à4����IEND®B`‚IMAGE 507 ./arch/player/race/fenx_spellcasting.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���fPLTE����¡òÿ˜�æ¯–æææ^7�€�xF&ÌÌÌÿ˜�æ¯–æææ���E(þ¦毖^7‚B' R-æææèvFxF&�f�æ‰��€�æ°—µkHÌÌÌåååÿ˜�ÿÿÿáááÁ¬Ùæ��� tRNS���������úúúôùü•��8IDATx^}ÐérÂ0 …QÛ@ÛÀ•ì¬ì´}ÿ—ìuëGR¾Œftp48?å¦O6­øä @V0Ið„òÈqžÊ !T �)'àŒ…1IDÀfQv È!âCÅ'˜0 ºì¹�Õ,$G z<óžHèX0pHš’ªDÕë |åÊÜAÓ ªx‰¢½^3(;|ö}ï¡· ܧÓ)ï|(@¼Ç8¿ß}°„Ì!*‹ðž7ØîYDlñÎá‚1 –o˜[@·'¸€çñËùˆC{É ü½[Šp¾’ý @Û>Gð½ÿ2aÿ$ÁýÉÎg¬À$c3ŠŸÝn(V7 ¼%d±f1ƒœ° øM@®©mnÀæ]W×ÝÀj¢ÿ_ÁÀVà]/Ö¶ï:j2����IEND®B`‚IMAGE 449 ./arch/player/race/fenx_spellcasting.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEæææ���E(xF& R-Ì›…ÌÌÌþ¦^7�€�‚B'ÿ˜��f�èvF�”�ÿÿÿ±á R���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ .ñÈ���ýIDAT(Ïc`Ààü ;: ¸%::š*6îPÒè@VÂhÑM‚p5ÂM@%Šå03Uƒ4šÄ Æ Š* *– ¹DÔ±\´Bj)7,-dP€™±( &ÞÈ`¤€P!/–(À`¡�7C¼\,M€!ÀX^˜–ÈÀÜ„ œ6Y@î¡ä™ƒ ÆH3gž9#�� [@ sPJ³A 3«VtÀÍÙ½{×B%„»D¼vïBâ3ˆ¸,Y… Œ""hÑTÈ®BS´ç–�jüÊ¢  `M �¢YE׈͡í����IEND®B`‚IMAGE 450 ./arch/player/race/fenx_spellcasting.172 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEæææ���E(xF& R-Ì›…ÌÌÌþ¦^7�€�‚B'ÿ˜��f�èvF�”�ÿÿÿ±á R���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ,;å§-®���þIDAT(Ïm‘!OA…ßCR3Cwï ¤pׄ¤ºgÎ’ pí?¨©¡¢'È«ÖbHN’ Hç§ðg°8þ WÒìn7<7ß¾÷’DzÌD»¹wœBX›»wˆ)[kÈýåxb½hÞíV†Ý–¡5½%×.¦).æ“®}2«œsMAu©ÕÝ0(—²V2_%å$}À4óŽódA( “%áС«åÆ5{z ÁÙÏI÷‰"�uÝuä�Ñ(ʯöÁíìf ¬Í<hêûWëv2˶ýxû^×m{ÌW/ o#¤ŒÀWäm"GŸóMûÅ€™ð¯~úF£=‹ö����IEND®B`‚IMAGE 752 ./arch/player/race/fenx_sword.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ "Øf��pIDATXÃÕV1hÛ@}':hó¦ÔÜ¡L C‹À‚J)6”vêÒâ‚ÉÒÌJ¦ÒÑ´K–.Î’f0é’vldè`ÁA!C ¤ÞªÂ¥xr6“Áס:ù$Ÿ¤“ä¶ôà w÷õßû_ÿþÿÀ ,á\\Iº±B2uY«V 6—ôÎGªöB¢¥o6–Q¯!Ep�(—tQ'“\SQ�.šªb¹¤+…d…zÕ`õªÁŠ mg34IêUƒt¶Ð;‘ܦý.›ö»ÈJ‚ƒkv“Ên`Úï2Ín"š|qrÐÙZ\´j¦ÙM2íw• r=™÷îàˆ¹ƒ#¦L U«°ÝG|ƒØyÛVóÊnB�VíIý›åØÌ}b­àƒûuîüâr‚÷oK¿‰OÀ‰7½™g1ÞðD'ÞXö„ÈÃwŸ¥Þ€G�`[×Ù¶®'‚K $…ŸËî/�æà={*á·�§wïekFœ�$ ¯…•Xì�”RPúûòtm Ï'’ùÆ•\÷‘;Û˜þâwnܲ¬Dp¥: ÔrÆ Ï‰OÂ4͸J{ÖÒP„„’¨‚'æ�õ“+šé¢ôžŽæó¡£<è$G Ú|ÄvÌW}Ï&£ëºù{AÛ’8Ò`Ï�½‰Ù¢4ÓX&€* ~W. ‡ƒO0ÉÚÎð|H‹Ä{g�°¾úq3!D´:Š=âÙÊR¡™0Ëÿ Hì<^•*xã+¼úòm1¯@•¬7¾ú;S±@‚¬ïŸÍçñ>©çE¢@r|Ã~¾lÌšŸûÖ`ý“Én.Èî¿‘_ÿ\-Ù×Ã����IEND®B`‚IMAGE 773 ./arch/player/race/fenx_sword.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  ~6ÔD��…IDATXÃÕV=ˆAþf±Ø.Ýj¦ˆ…p„ƒk$°¤YÙ€he£D×\j+¹ÊÓ.hsMÒœW„³9-½ X¤ ‘=,äLç s’*é–+vl2{“d6ûL13oÞ÷½7oÞ<à?¾b]«t#…¤ ëò†Y 'S½óqR{s¢ÅïÖ6`—9ep�(tY'•\K¢$¬]´¤ŠÅ‚Ž’aì²Áí²Áó -gºJì²ÁOÚûèIfA¿Ëƒ~iIpͪ“\9 ý.׬:“/JNÚûëˆYâšU'A¿›È ÐSyïÄHb ³Ä‡™ÄÁ›V2¯¬:Tà�xŬòØ+Ø­mDfîãÊ&޻ߖÖ/¦>žÝ»­<〠bVÓ]Á©7™{*Ï"¼'8�@¾’À©7Q=!òàí'¥÷�0Û#�ÐÑutt�´ŠY 'áªð 9¼ï…À¼gçJøŽïs�øzçnùÚeƒ/Dã¥D‚-hhƒ3Æ^Ø£”òŽ®g+DQ%×}è^Mèlˆ½¦ Æc{bmÇ÷óÕ©–sƘZiF‚RŠH,Dâ>”%>”‚Rš¨? QIȦ¾2Óeé=‘O8ÞNÕìDG`ñó‘¿c1ì#c\ä‚ë’ÌWÐrF$Š„²82Ànáj0Frç@Rb¯X‡A~Éß’µœù‰wÎ�`ûø ìÃ{B‰Åê(ÿO7¯çê ÓÜWHâàÑ–RÁ›\âÅçï©ìjyÉz“Ë¿ÓK$ÈöñÙxï³Pzž' $Ãþëy-œ´ÝhVn†ó¯Tv3øCvÿü²ˆû¬kž7����IEND®B`‚IMAGE 473 ./arch/player/race/fenx_sword.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���KPLTE�”�ÍÊÈ›þ¦���ÿÿÿ���E(Ì›… R-^7ÌÌÌþ¦›ššxF&�€�‚B'æææèvFššš�f�ÿ˜�ÌÉÇ› ÿÿÿh\®‡���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ�ZA³U���úIDAT8Ë­Ó‹nƒ0 Єšk‡¤)nûÿ?PUÐiÒ,î‘óĹ?¬öï¦àIË2 Ÿ«�8£ŸOÌ<ÀýÛÛ诼Ôlwï]J»`>çÚB…¯‚Y„óÇ ¶m Zk(M„S AšKdgÂsŠH Àœ_3é€)—a”ŒP·ª¯` l³¤’S¾ÄeùntÙ€ PÄ ·£¨€¢‰e!j�9Q%£Èyˆ2žÅÄ8ÒÇ2§ ž‡Pc#숿jÅÖa˜À\òо°zÏ0‡ô…îµW0냋üºæî`]ƒµÁÚPóÚía—õý{þWý—‚ö����IEND®B`‚IMAGE 423 ./arch/player/race/fenx_sword.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���<PLTEÇa·››šš���E(þ¦xF& R-^7Ì›…�€�‚B'ÌÌÌèvF�f��”�æææÌÉÇÿ˜�ÿÿÿQÒ'v���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ6FkÌŽ���×IDAT8Ë•“ÛŽ!DÁªæ"Œºúÿÿj7:ÙUiÌž§IêP@‡ á Àx~O Å2ÀÏÕ�˜àç…dùlUùÃgƒÈÓ §ùnµ2Íò�3,®pîP¤R$ç:Ÿµ¢’Ò!3LV±J²«V‘›'Œc¨ À)¸ ÑÛ¡_ÔÐKÆ8Ò‘v^ôþ.ìŠÎ8)¦ôãñ°óÛð®:åãi~JU®ƒé¨Íh@s…`Ï@%ÃyÔäÈ}AG¥iË_,òG¾h«¯mÛ²aÛ°ÜËxέn c£ ¿G����IEND®B`‚IMAGE 425 ./arch/player/race/fenx_sword.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���]PLTE������E(^7þ¦̜‡æ¯–�€�ÌÌÌ�f�xF& R-ÍÍÍ‚B'èvFúüúšþüúÿüúÿÿÿþþþzH(殓µkHúúúå¯—ššš™��æ°—uD%á­“l#›���tRNS�@æØf���úIDATx^•ÌWnÄ0 EQ=’’{Ÿ’¾ÿe†T ñȃäüºtb€Î¡ L€u'½% v&”Ñs`ÛQId@rì"&Ȧà±3 H°f zåî ¼A ޹m[÷pßA]!Üß èD =È=/U…Ð4H=Žà¢UÕ ÷ T\ØšyN=Tïà}žSߘ"øú˜õÇo`‚ëm¦jšn¯^AAÔýº®Ë²Ü‚GA|2÷½‘Þ{wœ‚ëµëzÛàCy ÐÅ AAiH�ÚŸw6híÆóî0vÃ8ž h�œƒÿ¹o×™ Z¬šL����IEND®B`‚IMAGE 437 ./arch/player/race/fenx_sword.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���uPLTE������E(^7þ¦ÌÌÌæ¯–�€� R-èvFxF&ËÉÈ‚B'áäáä«“–šššæ‰��f���›™˜µkHæææuD%›ÿ˜�ÿÿÿš˜—ÍÊÈááá�›yG'�–ÈÈÈÊÉÈ™˜— ŸFd���tRNS�@æØf���îIDATx^ÐGn1 DQIIÓäqŽ÷?¢IŒí…›-øÒ¦ÞŠáßáök>0Ö6ö†�°EðQX¿‚¨ üÝEL¥`½3 ˆX˜E(éó÷�á+Dp%Á 4M£àpPøk@ÆDKÞþ L$ø@EDFJX8€ <ä ä}@!ƾÏ9/Ǩˆ&úMÀ´;Ã0Œ¯ñè�»óÓ¨)ˆ¾xŒ—÷ûižaÀo•‚Ëœ’«g~©ªvš*pÄé„°˜¸ë€àh„­PW]ûYÚëºûØ€ÖÕûÚD­@©/?‹ 0•ªÙ‘����IEND®B`‚IMAGE 406 ./arch/player/race/fenx_sword.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTE���ÍÊÈ›þ¦���ÿÿÿ���E(Ì›…xF&›šš R-ÌÌÌþ¦^7�€�æææ‚B'šššèvF�f��”�ÌÉÇ› ÿ˜�ÿÿÿ^.!h���tRNS�úúúúúŽ‘]���ñIDATx^­ÏÉnÃ0 „aÊI‡Ôê%éöþ/Ú¡“CaYAƒ.ÿ’?×'8.Ð8=ïQö¡@lªÚÆ‚à×€„Ô Õg¯UBHÛáFT3'Þ{êþsâ!l›tƒå\«ZmˆIN†ŠR•�Iôà‘¨z ¾k5@ÚL“ŸaGöŠþÄõ2}&À ó<£ì›PÞÁNâ9˜}(¥foO°,ì Wö»÷;žè�Ê—w�Ø#x þ]H?佯/ÀŠœù(€qu@ë}|ÂëÅàÉ·}õöà0ÿç~�ûúa(_Ÿ3����IEND®B`‚IMAGE 469 ./arch/player/race/fenx_sword.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���`PLTE����f�€€€LLL²²²Ì›…xF&S#þ¦fff�|ºèvFE(››šš���E(Ì›…þ¦ R-xF&^7‚B'�€�ÌÌÌ�f�æææèvF�”�ÿ˜�ÌÉÇÿÿÿ1ålg���tRNS�������������úú”œÑ��IDATx^}ÑÙvÂ0 aÛ¬]Ò‘—l@Û÷ËJøPRpóçr¾#_ÄùÅÜuþÏ*Øú-ëØî èub} ¬o)Ö«x�!J/"ýM,™°Q°˜�š*°m|"µ“ÒýBÝÁSŠÄ¨¤ögp�¢ë´€ÛsNIbêÙ·À‘Ä”D^ÞW@êñE”´ÀwJ¼/}Ø"/ìë°Îˆ«'A×AÔ>θ%øº­ãrqž”_ aÆQû4-÷·U�§ íw`쨟ë˜G´£'`·s|’Râ¤Àúþ_pR`½‚*®#£[ó_¼’`@,·Aò0 g[ ¾± ¬^îm`ý ÎäsÔç` Vö| ê{Æì����IEND®B`‚IMAGE 450 ./arch/ground/new/fernsdense.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VŸQ,-ŠV��c2�c��1�cD����Ì�°ŽÜð���tRNS�@æØf��OIDATx^MʱjAEÑJ÷œ^D—§B%‡N$§ Ò2i;ì„…ÙQ§þÑšN+i<_é1Jx\žHÏïME>>Žpý?Ü¥÷\ÚÞFÿ§Jÿ°~rx=´U WGOíqx{\@&fVí•eujÚ¥LM½7 OßÅ+0¹:að›#(¿ð�Ñcçœ_q#;&Œ3—±N¶@Ð<ÒÛi»>d‚l‰Ô,å]ò•¼B†Í0)õá• ‹º«lWø<pOF‘ŒF‚––Y @��ÚTlPw¶àv&¦6޾Añ!@Æ= ÎIAPr�;¬*­nŒýp›2¿xðcë99¨ô ®_Aé *[¥N�nü$ FÆ&Y´ Ϩ8C–TÒ3Œçon*µ§ÙsЏ‰W*aÓ©wߌ"/³ɱ4‘Ó|ŽÛû_ç;¡‚ßÀlÙ����IEND®B`‚IMAGE 400 ./arch/ground/new/fernssparse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠV��c2�c��1�cD����Ì�°ŽÜð���tRNS�@æØf��IDATxÚ…’nÄ0C»ØƒÿÿàÕPšNŠ´H¹ò ÁÉ ›tN¼ÅÀ?ÄSLÚ¦ùú#»€ˆi“ökqªáÑârWéÜÍ¢Ú»gZttmYˆö!^Û ïÅÛ,1š›¢Þ§§È©|š~À²#9n[4%P¡ï¾•O}ÜÚAgJ`Ÿ›2Yt¤¥sÝlÄ*À…ÔÅ”ÓF¶˜uqR"wߌ@_6lÅWE–·b­zúŠ�ð±X€2Æ%òà {/¹©323Q¾±ùoÕœŒó•®gðÄ3cæ «å‘¾gâÈP³ïn9ü¶PéÌĉM^Èž‰öL°Ykóž‰Ç"G˜KÞ‚ƒÍê©<žgÏLD3K󷯥<ü .[R„J����IEND®B`‚IMAGE 344 ./arch/monster/demon/fiend.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaG$²""‚�� R-ÿ�����ÿÿ�d3’( ÎdÌŒ���tRNS�@æØf���âIDATxÚ½’YŽÃ0 C½H&;¹ÿ}K©-ÆqŒ˜aÅy/ ¤ü!ü*°ÐãvcxË%€{Hgq·ÈGt}øæ®ƒn Ì|÷½µš;ÇjÄ—Þ*Ð*Šù…#ŒäQ®œPE«º�câ9œ8› 9Œ5×Zì1O¸jN ò•dHn(s´FpfúF#y ¹£‹axÑ>úkyæë=¸ò“oÀ™«?hr¦`´yˆV%}òì—{«Ã‹âÇq ”5Áñ~¤+~ŸæW>æípå^OÙXúí\ʵÂA,?Êmœ2þ3O‰_p|þ����IEND®B`‚IMAGE 344 ./arch/monster/demon/fiend.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaG$²""‚�� R-ÿ�����ÿÿ�d3’( ÎdÌŒ���tRNS�@æØf���âIDATxÚ½’YŽÃ0 C½H&;¹ÿ}K©-ÆqŒ˜aÅy/ ¤ü!ü*°ÐãvcxË%€{Hgq·ÈGt}øæ®ƒn Ì|÷½µš;ÇjÄ—Þ*Ð*Šù…#ŒäQ®œPE«º�câ9œ8› 9Œ5×Zì1O¸jN ò•dHn(s´FpfúF#y ¹£‹axÑ>úkyæë=¸ò“oÀ™«?hr¦`´yˆV%}òì—{«Ã‹âÇq ”5Áñ~¤+~ŸæW>æípå^OÙXúí\ʵÂA,?Êmœ2þ3O‰_p|þ����IEND®B`‚IMAGE 480 ./arch/monster/humanoid/Class/fighter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���uPLTEçÆ÷Æs9µµ�kk�ï¥ZRB�”Œ�ÞÖ�c1ZZZ{{{ÞÖ¥R)΄9sssRRRŒŒ�cJ�kkkccc„„„µµJJJ„B!„)�”””ÿ÷cR�c!�JB���„R�ÿ÷µµ½½½BBBçççÿÿÿ!!!Àï˜���tRNS�@æØf��IDATxÚµ’Én…0 E±™@˜áÍÿÿëÀ‚éuÑ^KéœÜ‰ä_ò¸Ã! œÃ!Ä‘pwq?�ÊK ¼ÿS{)9øñú„©BUNQéÞ ±à‰Ó—t·ŸPr‡Fˆi» Ð¨éã“ …mº�‰noÌÏIѶÁ ¸EOÁÚº®m·Ú/Þ#&…m]9çòz!8±1_<&تjš&¯’±¤"£àN§¦² ¡Ž9MwìXh6\J7rD6:›ókÎÂbl8k›»Õ$‘{yœPåÕDæä(fBȶ¿é‘c ƒLvÉ6,ÄרIYî¸éçeT÷ÜÌ]ý3Á¬Êc~c$™oÒÄ¢ß ����IEND®B`‚IMAGE 480 ./arch/monster/humanoid/Class/fighter.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���uPLTEçÆ÷µµ�Æs9RB�c1ï¥ZcJ�”Œ�kk�ŒŒ�ZZZ{{{cccRRRÞÖ¥R)΄9ÞÖ�JJJsss„„„kkk„B!„)�ÿÿÿµµJB�çççcR�c!�”””��„R�!!!BBBÿ÷½½½ÿ÷µµ>‘aT���tRNS�@æØf��IDATx^µÙjÃ0E=‹vyß²§ûÿbG a'¦í0‚stG.þ%/çyÞä/³d³@)µ%œÕU]7ħ Öè“Æëú1wœ´¤Fù|­¹u`Àè{Lµ2œîÀÙãNk¨>«¥€® ö㸃�ªý’+4‡ƒàd ì«Ç Ø }—*c !¼ 6®5b”¥÷1Fßå ‚‰\• >Ž!„>æ©@–ùU†K?ŽÃ0ô1çD"¸dÜ„p¹ £ÏM$ÜBzt" O8€ïeÁ’Zp`néû È’x OSŽý˜@ÞÀX#ÝÄF)*Ërƒ'fº§Á†ºb~vaÓ^qž²³¸kÎYÙô@àEÛVø7Fñ‡ù–¯„-Ü����IEND®B`‚IMAGE 475 ./arch/monster/humanoid/Class/fighter.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���uPLTEçÆ÷c1Æs9µµ�ï¥Z¥R)RB�”Œ�ÞÖ�kk�ZZZ{{{cccŒŒ�cJ�kkksss΄9RRRJJJ„„„µµÞÖ„B!”””cR�c!�„)���„R�!!!½½½ÿ÷µµçççÿÿÿÿ÷BBBJB�R! ���tRNS�@æØf��IDATx^µŽ×nƒ@¹ek¡w§çÿ?1¬(6KxJÎJh¥ŠÙåx:mòËI¶`æ-áÈg>o ˆ…òP¢B¥~Án8”2…òxYái4dÊÛ̘.%9§ñyÌÞwd÷úF–ˆÆa)`²‚Ÿfn Ë‚b¤OÁBÛÖû£ïî9"6ÖXò± !Ôñ^aÂ`Œ3Ôúªêû¾ŽÁÚ\åˆöû¾ò÷‚æ µK“ý‚¥ÂK¶óµ|`Éõ‰áë ?ð0-CGi.¼Ûª®Š, qærÚ¶\ (D-S s'|Y�ä™kl°Ñ", Ø Î…B„ïÈ-ç°ûQw«rw^ž…ÌX³ÿr_Ýåù¦³ô����IEND®B`‚IMAGE 260 ./arch/spell/Potion/figurine_clay.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ2:ôŽ´���PLTE���®AÛbÿÿÿ WÞj���tRNS�@æØf���bKGDhÙQ���aIDAT(ÏÅÐKÀ0@pÝ(� 4Ä¿·^-ÇyüE¾ À5`€&êyÑ:Xž[SHgTpãi%@-Qóvê�»Aæ½ <¢‚ÐÑÇ2ûb&Ú@!ŠñŽq¿.ȯñˆW Ñ=Hàú����IEND®B`‚IMAGE 260 ./arch/spell/Potion/figurine_flame.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ6ÛjŸ÷���PLTE���èS ê) ÿÿÿh‹���tRNS�@æØf���bKGDhÙQ���aIDAT(ÏÅÐKÀ0@pÍh‚À¿·^-ÇyüE¾ À5`€Ÿ&švÑ:¸[SÈdTHãi%@-QÏ~ê�»Ù½ 2¢‚0ÑÇÒûb.Ú@!ŠñŽq¿.ȯñ¨§ ë“iþÃ����IEND®B`‚IMAGE 188 ./arch/spell/Potion/figurine_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���.‹W�Í�é¢g˜���tRNS�@æØf���^IDATWc` 0ü  >ãû¨’ÈõP%•» r¼W¯A¬×®5@DêADÌ£Ó7€¦ÿÿA3WAaYo<T;ïœ[PF„ÁüÁžî¼2l>0P �i0†ø‘è����IEND®B`‚IMAGE 260 ./arch/spell/Potion/figurine_great_wave.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ7¨ÁŽD���PLTE���� ÿbiöÿÿÿ«Xi3���tRNS�@æØf���bKGDhÙQ���aIDAT(ÏÅÐKÀ0P€ìÆ@Iü{ëÐr|Ã_äËÐ Xö�úi¢–—­ƒç¹50DC žVBÖu;á§!¹dÞÛÀ"*Œ},r¡/æ¢ ”¢ï÷ë¢ü/¯  ¡E����IEND®B`‚IMAGE 260 ./arch/spell/Potion/figurine_stone.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ5ðGÌ4���PLTE���€~z–•’ÿÿÿ¨^A—���tRNS�@æØf���bKGDhÙQ���aIDAT(ÏÅÐKÀ0@pÝ(� 4Ä¿·^-ÇyüE¾ À5`€&êyÑ:Xž[SHgTpãi%@-Qóvê�»Aæ½ <¢‚ÐÑÇ2ûb&Ú@!ŠñŽq¿.ȯñˆW Ñ=Hàú����IEND®B`‚IMAGE 265 ./arch/spell/Potion/figurine_whirlwind.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ5&¯BD<���PLTE���І€ ™­ÀÏÿÿÿ¢ž©o���tRNS�@æØf���bKGDøoéÇ���cIDAT(ÏÅÏË À0PØ ¶º�”A”ýgê åø„ùˆ|Y:kÀ5�¶›¨çA›`¹Om!QÁŒ§E€Qó¶ë�WƒÌsø„޾–¹Ø3Ñ QŒïÇÿº ¿Ö _ 4Œo/ª����IEND®B`‚IMAGE 168 ./arch/flesh/human/finger.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷ε!!���÷çŒÿ��ZD“���tRNS�@æØf���GIDATxÚåÏ1€0 ÁËžÿÿf,…’\Ò+wcY²>³ ¶Ç`å¾ãÙ}ätŠ ZÙuä Í·/ˆÝ›ÉÕ^…Bô ŸvJ—tþ»:¶����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/fire_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V²""ÿ�����˜T„-���tRNS�@æØf���~IDATxÚÍQ€0ÅV¼ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#n@cš†ï­����IEND®B`‚IMAGE 221 ./arch/monster/dragon/Hatchlings/fire_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V²""ÿ�����˜T„-���tRNS�@æØf���IDATxÚÍ’A À ;öÿ®vS#lôÜ ˆ8ƒbôúQè¥�¼õ .CZòFÀ+°`§˜p6D€ûhP] [ƒ!ÀÖ`‰.ì¼z1㞬| ‚$ra¢ÒKÎÖ‰4°Š.&W›XÙ ™¹æ\ñ£wBhÜþôò�WmÄÌkÐ����IEND®B`‚IMAGE 221 ./arch/monster/dragon/Hatchlings/fire_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V²""ÿ�����˜T„-���tRNS�@æØf���IDATxÚÍQ „0 ;ñþw–·áaÚlð×±q¦\ŸÐþ SyDèÔÀ.G@lG^:ÃõâÅæaòØš4žÙwÄ\@èù æÂg(„ Üñ_”•OÝŠÓûejÚ< apÞ/;ø­=0Yh¶ÀÈu˯K~;YcÆÿ+����IEND®B`‚IMAGE 219 ./arch/monster/dragon/Hatchlings/fire_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V²""ÿ�����˜T„-���tRNS�@æØf���}IDATxÚÍ’A À ³öÿ®5¦Ò£c‘´; µËP…Ò#ß0Tꊧ­K=/›Ñ3òƒ ‡ún ¹ Ç\jB0¸ÜL6ÈÒ–oƒ'7œ¡XŽð”&¼ì‚`[Î÷LØNjÔG…Á4˜‡—©AMŽ�$-ÿTFh}/mœsí!����IEND®B`‚IMAGE 2297 ./arch/monster/troll/Troll/fire_troll.x11 ‰PNG  ��� IHDR���@���@���·ì��OPLTE ��ú„�Ð{ú”�ú{�â{�ðŒú”ÿ„�ÿŒ�ÿ­ú„�»B�ú”�þµ�ÐZ�Ðk�ÞÖð{�ð¥�¡9�úŒ� ��úœ�þ¥�þ­�»J�ÿŒ�ÿœ�ÿ¥�þÆ�ú{�ðs��ð„�ðŒ�¡Z�øµø½�øÆ�øÆÿ”�µï)�=�»R�ú¥�ú­�ÐR�=!�þ­o)�þ½�ˆ1�âc�âk�íÎ�íÖÿ­�ÿ½�ús�âs�â{�íÆÐJ�µ÷µÿúµ�þ”�þœ�Ðc�¡B�Ð{ð”�øµ�ÿ„�ˆ9�âR�ø½W!�»Z�ÿµ�øÎ�ÞÎíÖË÷ø¥�â”�í­�Є�šÿo1�ÞÞþµíÞþ½øÎøÖ�øÖíçðk�ÿœÞÞˆs�¡R�ËÞÐs�ú” J1¡J�ÞïˆRâZ� Z1šï»c�»s�ËÞÐ{�)k�íÆ�ËçËïíÖ�ú½� )š÷ÞçíïðZ�ðc�)!�ˆB�þÎ�¡cðŒø”�ˆ)�ÞÖ�)R�ÿÆ�»„�»”�»¥�¡1� R1þ­¡k�)J�¡kÞµ�=)�âœ�ÿ­Ëç� B)øç�úk�â„�â„âŒ�ËçúŒo9�oJ�í½�ËÿÐB�=9�=R�þ„�=Z�=k�ˆJ�ˆJÐsˆR�»9�Ð{=s� 1ÞÆ�ˆŒ�þÖ�W9�WR�ðœ�ÿ”ÞÞ�ð­�»k�øœ�»kW{�ÞçÞïÿÖ�ý³o��� tRNS�����������‘¦ÿ��NIDATx^µ”äH…{v#3ÍLÅÌ ÍÌ4ÌLËÌÌtÌÌÌÌ|?ìÂ#ì®Ñ讬RIï{/"Ó¤ÈÞ‚ëmÙ¾w\oW2_¹óµÍBö´dá3ûË>cA̰¯ÄâÍ¡YþÕ»Œ [Ÿ‡®àˆY1妹ÍD»k\3‰LŠ| âéáÖ©Ušõ_¾i£ùJ$Ò—+ávé;„Opm~4ÉÒ"!Ð"„»ûJ]®´gM2‡¦@ âˆd¥}eøÀ1ìpî;sÓIºãbá°!}û¡ù_ßÖ¯67¤¤ÝBÞ�ö¾{‘os[ú‹ä®eÎÖJ’$M1@Ÿ†àßœHfQ~•<3ñÈ7¬ž-!á¯Sໄh·ãsEn–'È ©É=’ËåŽdú¬,—`€gˆ’åñÙâµÆ›2)yú…NM½Üí¤6Jåm@ø w‹'MÂK®p3—›8zùœf%é8<n[_o’¦X|BÚ0jµZr5Õé0zò£'÷$(ˆHDþ¸Ô£÷$nð"eláÓ?üñõz'ãâ ”·EÅ)§œ?þæùüêô±Ï|ù¾ë&Àé‹þE5JéŒn°gÝ_?|ß»'kIúØ»Ÿ|x€P>ëeuÛ¶ÐxçâÇŸ|òcS„Õã×òÏßÁA‡ˆðò°0B5Öº×í\¼|ù=iU×H`‘µ 6: Ó3Ž�ZÎg:O¥ –>wÉ…Ïén#/fí­îs|�žƒ+Q€,{=£C€`Yâh,ëôz=¶Øè—i\¡eWÜ) ¼%›¹™¤ÖûŸ­ÎÖg~•%Jí­LI x˜á‰$„Fø³ee³Ó½Fƒaˆ~Ÿ’ñÑ¯Ž´Ú`<=y3|Œ@•½î5¶yñÙ4c‡ç‰Ä,úáÜ3‚ˆÓ^*Õ‹µ¸ˆbtÎ| ŸÀÌ…Õ«ñxl4¦€•<÷½‡À¡ R?“¢-"sžþ” ¤ìl¦‹û Q[·Àv¿rI @,gµ›Ñ#¦¼\ôþþÝtÃÑ ãüf7mØÙé À^ø ÀWáØØou3‹EÞÒqÓºÁÌ�pÀ�az;.±¤îUÌJ;v£±á`pƘ-®…ÿ8ÊCüã‹FŠsÅÜ ÷?¿Ï¤PÝg=ÚÆÿÚ´ÇŒ0ÿì’ö\YyS–×clìð™—^ºvMèŽõËm›s뢳Q.�–°çñ&!¼æ>ž›ÀÊån IÃ&OÙ†ô…€g-2Û²(ªTb%÷ʼnÉÉS§&rÿê¦jù�í¼[þS€Ú̆a2p-ê°îÄä–ÿ¥ Ó§¡U$ܽ™M¦@+a«Þ°÷¾¡OÏ‹>àh÷|Mw¦Ø‰ÓmÓŒ(c‡€B*Q�JïVÕèýÔ`‡s/¾'ÅA‘zú±l›˜+Ý V  Õ^ Ø�½û³ªªn0÷Œðø¹Mc!Nñå`Y¦¹qR†µô¡ P €ú!Àj4Á:éŽ Œ1ôG@bÙŒ€Ss²Á#˜±¬aõ_ÿY5ŸWÕêëüå¡“fú' ¦¹®(š2C=K}ÿ_©Q"°‹úsÙczõ*xE¡Á9™OAý§ªj¥²¢ÑêwŠÖ[?º’XË«ùå? �B´ø–O'¨çN«ùz5êÏR^yyE®×ë…貟�” �X‘�Í ð¢™æóùB¸ú¿TÕL‡�˜M=@€:4Bòè>Wü6|FWžW`† ÿœ›Éú�¹Ù,)¯È[„åÂZ}­púmU}uþ.EœÑµx@“\A8ôf2¯KˆÅ*ªu²²B¾OTuþ.Ü&Ý‘â'´¸ÍŸ˜¡óÕè Ö(ùQ`þUD4eùíÂÚ2êypzårÜ �$a˜ç³÷«*y;&ó*V4_ˆÖïý zP…/×,êaé-P¯’ʾÇ|ÕG|þ§o~À÷€Q´ÐwA?¡¯G}ýËÛú½ ù_|ñ#[¯lÈÛ$†{FPo}ø¬`ôý;X¨._^©ìXì'x¢j zãçÿcñŠÇÃáå'˜ƒ<kMw’¡yz$<ø<ÿ·ú/â +ï•0‰(����IEND®B`‚IMAGE 2240 ./arch/monster/troll/Troll/fire_troll.x12 ‰PNG  ��� IHDR���@���@���·ì��@PLTE ��»B�ú„�ú”�þµ�ÐZ�Ðk�ÞÖâk�ðs�ð¥�øÆ¡9�úŒ� ��úœ�þ¥�»J�ÿŒ�ÿ”�ÿœ�ÿ¥�ð{�ð„�ðŒ�»R�ø½�øÆ�ú{�o)�Ðc�ˆ1��ú¥�ú­�âR�þ­�âc�þ½�þÆ�)�íÎ�=�ÿ­�ÿ½�ÐJ�íÎøµ¡Z�âs�â{�íÆÐR�µïíÖíÞþ”�þœ�µ÷þ­ˆ9�Ðs�þÆÿ„�ð”�ÞÎ=!�¡B�Ëïúµ�ðk�øµ�øÎ�Ðsús�âZ�¡R�o1�o9�»Z�íÆ�ø½»cÐsþ½W!�øÎøÖ�Ë÷íçðZ�ÿœÞÞÞÞÿµ�µÿ)R� Z1íïðc�Þçÿ”ú½�¡R)k�ˆs�šÿø¥�ø­�ø­þÎ�þÖ�âœ�í­�»c�ÿ”»kÐ{�Є�øÖËÞÿµËÞ»k�)!�»9�â{â{â”�¡1� �ðœ�=1�ð­�ø”�øœ�¡J�=9�Ð{=R�ÐŒ�Ð¥�ÞÆ�=Z�ÞÖ�¡k�ÞÞ�=k�=s�øç� )ÞçÞïW9�úŒWR�W{�� 1âs B!þ„�oJ�ˆ)�)J�þ¥»s�»„�í½�þµí½»Œ�ËÎ J1ˆJ�íÖ�Ëç�íÖÿŒˆJˆR�ËÿÐB�ˆR R)ÿ¥ˆŒ� R1Ðcð„ÿÎ�ÿÖ�6·\6���tRNS�@æØf��.IDATx^Ý•U“+É…'³ª™IÌLÃÌ|™™ï23ƒ™™™™™ÙÍÙí±b½ŽîѾ:[QªPÄùN’¤±Qè5|{«‘tøÄ`Ť FŸ@ʇwˆ oÝžŽ0Î+•p ³BIųâ0Q‘5Å€”�0rI¼yÕáöÃÔCm tÞ ¦°)Œ’ÁA¯ÈVA˜Óá~E†bP99sQ^‡«#{„(*£^éAÂþ (B3Âî®Lw/€ P'Ø €ÄÅÎ/Œ €6ä»mà>=“DÁžÎ,Œƒ3G×óÛÒ±ö«ûµªåÛàŽØš:”€:pØ›¿­ýxµªªê>ˆ<ÒdÒ©RØ8éÚÝÇÛ[œØh (úVþ£²ä]�EÐA†_ÏS¬\»¾(åyU}Fi‹ôqSÐ}º¦M>¹úääù\w‚³—~ø±D@¤Ž‚úÂ8]ÖÕ[Ÿ:%¦ç[Ÿþè'U“ÜüÇɹðÝräÕ–ÿÕo|áï3›­ï[Š�ÉŒ°q¡wÊ2ȵÛþܽ?¿ç¥ÕIöƒ{þzïa€ðq#Šr  «Ö½úñGùéþéü3~ökyÿ¡þ‘RÌÆ–í?'Mhív÷êõëO©iT›Â È” žíû>Z’4q.×àùŧ7&~†êa 0Pñ9QA—1f0‹OH¼Ê=ÞÒöV&1^10 ¦gfpi9ðC@­--l ªnúöù½»¯Ù˜˜‚§ˆ)Ïgaõœ`j[’´}ÕÀºööüž´ŒI-p 3i/è÷ûühkPcƒÕ®H“iy½yò¤|dsrñ÷_òŠ€¯D•|À詌ù|Qò  :d©/vûó/IÜt]Ï[ê·Zœ’ ïo4øÂ•´^|û®S2ìUô2ï²�È™1¬ÞâÇ®þ2ßâš%–èA{Ç1It™m±~.×O7Åhtoýª› 6^½Y­fR…å'H›è!2Kh9Ö](Øç$‰2hišvE °€›^"Y:n[ÐlÅÑײ…þ(ß h—/=ul–÷«[ÃO`FÍà㳟° ‚“ÍŠ®£^,¡Å=4TUíój—Üà! =Û'ýœ¬ ßjÝ ˜O-åAªYšÙªÝ©½ü7©ûºLÉîf§ií>­åH=à}&Ógi>P“�÷(÷¦ôòÙ4ŸÝ¾uß}·oK ³ƒZÀdGÏ—Ú‰0‹ô'EqìÝ¢Õ~e~…b~þ5©¥Z”#Zš–дªdT8‚dQOW۬ܥ¿ƒ•ù/.ä憀`6°8�Š/ªU†ˆllìûB“|aånäÿ²Æí%lfw/Ï™ hÊ[ ¡þø™Ó¥ÆÑpmáÒªìógŸ]’GÁ\ÃÝŒ˜‚2|§iV>Ä|{~å¨išß~Ü“ÁQR««ñ›ˆË®KþÄÿˆiš½S[í[Ò+‹Ç[·ä8uŵ,+`{,ÔS”Y™âÝ|W’f9ù®[\stSc+xÑø·þÌN§cš;Ó¼û™OIÝ<o¸®;ÕsÃ00~(‹2†úÌ è=ª¢8ÍÛüç¶Gz³GS$€ `Êt3¢ÿÑ4çÖ*•^¥²ó©çRî¾}djªcvÖQ4Ћp‹"À³'œ6;ÅJØK½~£®‹Å^% 3b�8x¨­yH„/ü¢”r:•N§ÓëƒÎðfšpV,@UÛ’`ŽL¹ïfÏ!dtè¤&Ú-Õˆ!`ñE–ì7åú2¯úÊnDXë].^î.›æÛ.Ž‰ë £ ˜Ä¢HzUÕ€¥²;DØ)B½�Ó¼H&[ªhÄ~²yB\"øóz‰ß±CÄã!¢¬ëåË嵋Q–†(.Çï]¾YDMct6’¢ÒéUŠx0êpŠÉq¼S9Å[Ã}ÿºIÕyMºª7M�Öxƒ ~·~¨n¨é¡@€7Þ7ƒOüy9¾£Bú7þÛŠØÅ”ˆ#èîDú7ÿdÑ.]Ö…�/@(¯ÿO½)‡µ‘šððßfùfÂo/ü�ÿ¯ñ/->ܧOzˆ´����IEND®B`‚IMAGE 2237 ./arch/monster/troll/Troll/fire_troll.x13 ‰PNG  ��� IHDR���@���@���·ì��1PLTE ��ú„�»B�ú”�þµ�Ðk�ÐZ�ÞÖð{�ð¥�¡9�úŒ� ��úœ�þ¥�þ­�»J�þÆ�ÿŒ�ÿœ�ÿ¥�ÿ”�ðs��ð„�ðŒ�¡Z�øµø½�øÆ�øÆú{�µï)�=�»R�ú¥�ú­�ÐR�=!�o)�þ½�ˆ1�âc�âk�íÎ�íÖÿ­�ÿ½�þ­íÆÐJ�µ÷µÿÐc�¡B�úµ�þ”�þœ�Ð{ð”�ˆ9�øµ�âR�W!�ÿ„�ø½»Z�âs�øÎ�ús�ÿµ�â{�ðk�Ë÷ÞÞÞÞðŒ¡R�ˆs�ø¥�šÿo1�â”�þµí­�þ½ËÞЄ�ÞÎøÎøÖ�ÿœøÖíÖíÞíçíÖ�ˆ)�šïÐs�Ð{�š÷ú”íïðZ�ðc�)k�ú½� J1ÞÖ� Z1»c�»s�ÞçÞïø”�ËÞâZ�þÎ�¡J�ËçËï)!�ˆB�¡cíÆ�ˆR)R�ÿÆ�ðœ�Ð{ð­�¡køœ�Þµ�ÞÆ�oJ� ) R1ÞÞ�»9�=)�=9�ÞçÞïøç�úk�ˆJ�ˆJˆR�»k�úŒ»k=R�»„�â„�â„âŒ�»”�þ„�âœ�»¥�í½�=Z�ˆŒ�þ­Ëç�=k�Ëç=s�)J�ËÿþÖ�ÐB�¡1�W9�ÿ”WR�W{� 1 B)ÿ­Ðso9�¡k�ÿÖ�&»ùË���tRNS�@æØf��:IDATx^µ•³#ßųšFl×6Ƕÿ¶m>Û¶m}º·;™;wª^¥o¦¦ÞîäUë·ÖÞ}º;4J‘; ®÷\dðÚ[p½W5Ê|åícd¹£%{Ÿ1ªØ_öû2b†}%·BÓü!Žê=ƈ„þû•«bU,¥a x£h÷c­’C,¢"Á+Â(=Ü=µJ£öù'"-4_‰DšJ%8Ãý6áB‹o9DšD š„÷b_©)•Ö´EfЈI<‰¬´m8†;NÈí¹$ݶ qÀvÐȾ}¨I¾Å‹ýú%qk«¾CJ:1ä`ï»yKè민˜;š9;V’ey–úŒ0ÿ%HdåWÉ“þúúúÙ>šß%@;ˆ/…iN¡2v=÷`.—»žé±²|F†®!!¤(Ó›$Ûœh(¤|ýõG95uøf§Ú)•€àî•0A„˶x!—›<|ó†˜f%ù <a ¯5HC*>,ï˜cccÉõT»ÍèÅï^ Ü• P ‘ø¹KJçelñßßùÙ‰‘z˜ Òq”·$Õ+§¼¿üí3_ü&5èó¿ýûÓ'LÀ :ãAuJé¼a²[öož}ú½‹cIúü{Ÿ}v„P> ®ë" þÌ•Ÿ<ùäg/‹ëgNüê¯?‡ƒ6!%áÏñ8˜@¥:k‹Œm·¯Ü¼ù¾¼n$pHŒ:ÛÝ…¹yÏE�-gÄ#íwR&K߸fÃ'O#—Ân¿{Æ<€û ÍJ Ì^Í XŽ´ {Ýn—-×{eWiÙE{V‡ìšËìLR>ÅH¿sõ˜_e™R·?ƒYY…,fxq2 þì8áð\·^gb§×c¦‰€d|÷{»›Í˜¯O]#PõN÷:Ûºr+ÍØeÑãB"‘˜æ`\ʽ!ºÁ€8í¦RÝXSˆ¨fûÈ/ñ Ì\^¿Çvc*8É¿ûr�<º(÷2)Ú$Š5ÞÅtÍtð<èÔ5pí¯\Ó‡ Ž·ÞÉKY*f?ñÓtÝ3LóüV'mºá¹yÀ]üAP�ø*œÿ”‘¬b‘;Æ2ÎbÎ0Y¹�0@ÞKp2id+V¥·^ßñ08cL‡¦ÐÄ</p€—)84Rœ)nâ¹°ÿóûL Õ=Ö¥-ü¯E»Ì ò¯éO•U‰[вcã—Ž<öØÑ£bg¼WöhËšÙ¼r ü×°ç.q‹®Û/ç&±r¹ b]Ö1Å)Û‘�È:ËÌu ¡J%V²_˜œš:uj2÷¥NÊ£ŽÐÏÛå�Ôe.l„@hRu&§úþ×2̘ƒf‘f¶Øð=�z [ÍngC¡wOO›Ë>àpçü˜áͲsçæZ–QÇÛ�þ°\¢�”†4-ú5Ù¥Üä ïËqPå®q2Ü"VÄIש3Ðl-Rl€†>Ö4­pœÙGÄ—ol™‹qŠ7DZ¬•ˆ—2µ¡ ‹" hÑk§Û¢8ÎЉ%+Þ˜>‚yÇÙ΢þû_¯æóšVÝdíÏ=#¶ÓÌDÿDÁ²6TU÷fh„©ïÿ¡%J»¨m2›í0f„Q¯!€«*¾‘“aȪ¨ÿEU«T–¢ÑB4Zýtâ9ÉyéG‡«y-¿ô'@@€&oút‚zá´–¯U£þ,••ÇW”Z­Vˆ.ù @�'²é Q.Yùh>Ÿ/«ÿMÓ|À\�€¹4ëPFHÝgŠÿB‚ÏÈãʹ ót�zOÙ™°PZ™­’ú„Ò',Vk«…ÓhÚ› !Uš7ôø0€.Û¢:VƒÌ«²R±Š„j¬¬?M[@¶axrœÂ@ÜåçæéB5zœÕK~Xx Ey °º„z^·\Žg‡�’°Íyø5M#oѽ{΂†Í¢µGÏ ^s`Xk/q@½F*û Uñ…¯ë{À.Z0tž36¢¾þñ¾~?CþÿXP<Âw“ž3‚zçn¬`wÏïP@ùòJ¥oqw‚·pî£ÕÛÿü‹·P<¹D.?Á Dø}pC®6ÝW†êïƒðî·…þõ_‡ÅÞ2Ú›-����IEND®B`‚IMAGE 334 ./arch/spell/Bullet/Fire/fireball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ÿÿ�ÿ×� šÂ���tRNS�@æØf���ðIDATxÚ•RÑÃ@*ðÿÿ¼8 ®—¾Ì¤½(T çu‡r¸ÞB©ƒÂ~±1u.èƒ QÁ©Žjî³ XBqÊßHÁÄÅS/Á£ú¿"„6®X ‘_*ZŒª¶ÐTm¨‡_à­ˆ ‡Uú¬¹«F€b šžU+E-ÈâšLVk”D¥qÚÁj…Q4™ ™çGƒ³ž%tø<€s÷Ú†ƒ'hÑ Á¼k çý³a©Ëjíp¡Ó纘údXí�êl‚‘ú\«Kè"TL¹øÞLÓ^±Õ:«Ú^v­wŸŽi»Ö˜ØÌWt0Îõý/>Oýlc3f¯����IEND®B`‚IMAGE 337 ./arch/spell/Bullet/Fire/fireball.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ÿÿ�ÿ×� šÂ���tRNS�@æØf���óIDATxÚ•A’D1Bóàþwž) e¥{Õ.~Tø(žÐä¼ÉKØÀ<¥Ü~_OÖÓ¿L,¿’S‚EJ©Z—ÿÏÁ0‹;†Ètà€â¦4µÛÄöº¶¿Nå!pPvxn‡Žáº1ñì!ðôÁ$ƒ¼;‚4nóq–VÒ–¯[#l“qݦ”â�×Åm‡’Û•pû„m‚Jðüg�Ztó<wÉ,YÊqëšHsô4r˜7ÚA³š‚ëv+,/Át«FŒ/nÆ-ƒ/½Ú¸8òñªMlu{k't8'•ý‰·Zí%�[I´j_G¿Åû›pšbú'����IEND®B`‚IMAGE 338 ./arch/spell/Bullet/Fire/fireball.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÚ¥ ÿÿ�ÿ×� šÂ���tRNS�@æØf���ôIDATÁ±JÃ`€Ñï7ÆL5¦”*éÒGÐÁA¹E!k†$ÐÄ¥ ¢8u0±ÆGÈîâÖ@;¸ÇÁ=ºº9U¡qöàŠc¶pyÄ�uÍ Jõ­~�}nÌT©9ЬÎ<爪“Å» Ü\4ÎÅÂé>ªW¹pèÊÙ¼@Ëk~\nô¹=Š*€4Œc¨êÕh”Ÿþë›e ösð7Ùî Ñ Yî} ám8ìMÀOô g hk&] Û¡!G ¦±ØNZú ƒN;õ=±A»öÕªBXyFa–f0vg�hk��€…ËDXX5&ž����IEND®B`‚IMAGE 2454 ./arch/spell/Bullet/Fire/fireball_S.111 ‰PNG  ��� IHDR������@���Ñ',��� PLTE���Ú¥ ÿ×�ÿÿ�k}í_���tRNS�@æØf�� 8IDATx^íYÏ‹Ç~Õ¢«5íE§²v|ÃŒ£õus©µAÊËfdȆñŒú$ØÚ¥-!—P v,lp:0‰ˆ}R‚æ°‹’¿`+)?YBIñ@>ìµ!¯ºªº¦²8Ó~—š*ê{ï{Uý^¿f GG >À@ ®ƒC§ ‹8“˜a>þ^Ь �†§@bX’œœÄzŸEE®ŸXð¡ ®†6sn3 1T|\âMMl(à°’›ÒP qÀðÔèB¨ð!iÅð¦\à¨÷¯€£¬²%Ÿ9ëZí7c‡O4q¬¤ þÚ¤ÍH Ú'‡#�ÃS#݇1xb€Î!àä·¹ãÅlœà:™�I²ý+hÅÀÓ"¸Ñg~ýD«ß埂Ž\9¨�,¯¥«ß¦ üüÃÈðÍ'‚‡“€Ô9ýBóh¨+DQï¥@Å�‘ ƒºЃímÖû$ÎÝ©ï-OD± ¶¯EMO)ëS�ÃS¹'œïï¤ho%dîXñ©€± ¤ÎÝgG¼Þ`òŠÐJY�Ým¶:‘´·<¨ït€Þ¡'RÀ¯{“`¿ÎÃo…o€ÁÊÙlØbžðÝ+G!ƒdÈÎç¡®0dôñ¸|±Ê\xîí2#à7)DÕÈP˜Ey˜û: Ròv<]ŠCÖþpô¦5,gC ÷¶M†_jZ@°ïé_C¨ítFßH"¨àN”ip3ÿÙ{=šzÝ IóÅ‹WI@A°&*lãê¨ 9è{£|ï*#*Æ'+þRlT!ä$¢¢‡RC´’£ ±™ Yï€tšô¨ . ¹JèB­;€*ä,‚AðÁn¾72—ŠŽ ßö£é‡ ‚!zµ ‡�…¤œÐ1N,Í”+²ÇÈ$»ÖûÐ�ƒúÏ¡ø@†L:ÖöØÅŽ©[-ð¼$•î)ä8¿¯é†2u;`ÑÊË9^@2  ÏÁJ ¯@C°ðµ”¾²ýñG±€,a½(À'¢bg�+y¹ãå`È ºS,Õº©“#U×Ï}À@=uK;~{­Û² äåŠ$òr.n^ºîYè΋l'§¯²ìøI¤´-ãÔëf^-aTŒ�)‘phœW *švï]Þ°t™´p�Ïé8¬Ì4Û3®2\ì”î© Dò’ \±ð\�º]k~\çö)Œ/´fùgÆä67ôg=ða$“«©’9Gæ¡oXHêwL¹’ÉÝ”k2å›Dýh–ïq÷ÜПÄx¥‘L®‰ ÀÚKð©ÝW¿‡ƒ¼\-ý˜$¸&¯áMa“h”ž ·Cÿ¦4êëììê•^˜*Úy,V ú{)þ:w’Ÿ˜‹/C>Ë:O¢‡Qº<˵ö - ñûlamKÔé×9ÙÔÎ'…§¶ˆ`Ǧrª©=³–÷,V…ÓËYáµôéh–¿~ÂôãHöÖ&=‡S•nV«É=í|j ù›Ùú‹ÉÔ7gåj¿»™'ÑÕ'½]°pïmÝŒÍãxLÒìèÝe®Î‹c`üYŸ…ª&S_Ë&éÒÏxÀ•›<‰œkdz…õ¨U=4­Î8“ì›#„tî�éž_I¡ªÓ¦™�·Ïê\¹ zP‹m@@÷õãJþ‡é¢r†K¤[asÖ>/‹ “²U`!Ón æ² [ÌT¨qx é(\ö†hÈT�_‘Ùœ€µ½>X¸M‡ë¦4+¢†ÊÆ€0ÕŒû8ô™dʈÝ*@ÈØ¼Id×ÿËîÞ‡ ð¬øÁ;ÒðÜ’$+—Ee¢›Ö3*œZ\U¬&*]¨€{H>g d-ȾøA£öÓ¬;[ÊÞÀ˜tNL²6L€>šNÜ¿Ç7l%R1 +—EkZçZÌžšõY³‰NݯX“cœµ?ÆIð®ÃœÈγès ¨@÷„û%ŒÈ-Ó¿=¼[¾ÝC(@V.‹Hh5ï3‡énwy-™@ÓÅŒIB6ƒÑ|îÅYå5\J<ÑpÞáÞ”’ˆÜxíÆ•6Jº`å²’vUJ&j¾Ç|Ýíb—,¦òZOÆHñˆÃÏßúÕ^ÔŽ×ÙEF”¸‰û‰²úÝà¦ôy‡Ûßù3î¶QÖJiˆ•kV€nZ5ϺÍ@¥ööÕ§¯[~HAîÓ½í«;Çé7wBFîЯD½ƒJ–n‹ö.NpßA B¶µûÊŸ¼Y!‡9ЉºÂXŠ-Å$ v¡…P žý~Ëí|*¶wvYÖÞ>ûR‰ûÖxµîô3îðKׇкë$ªY·Mç|x¦bѤø)æ2òHu¾-#Õ¿÷¯»’Ð_ûJç¹n´9RˆØÅ]—70œë¸›kÃÊÀK@:åÐ3Ä®iåè2ŸÝíJBuMsÜ|D 龎_J~_2ÐÞ\tÊ… ŠPi[)ÍËií–æ³]Þ/¦VôgD³ô6-§ue^š»_–Ã$ ,(¨$°ïƒvñý1™ó6å:­[/NsS%ˆÏ9ãZ¬Jo¶KžõgÄôÅoS'ÖiÙ4/žO ˜ÍuÖÃ:SGP|êm¼ê3‚ˆ¿M_á!·uæ¹=5÷fV—g,O”�bÝöJí’úŒ°Ű àßbEjnÏã3^>·íYÿfÙ”~!Sžç5øË¬¥+Ø‹Ó<ä»ñK«Òkß% á娲b+c‹½^vJ ÁŽUDŸç�N†r¡)ŸÇÍàÿŒr ]ø:8Å)NqŠSœâ,œµÃóáÂÿ„2ýµ¼]îØö÷¥¨À×™9ô ô„ÏùÊ])1Z%»'„_¤›~Ü"º1wx©ý57‘èýæÊ"5’XÛ=!¥æ¸¯Ü7”Ç‹í/9,|°ô½YßÔ�N§¢Û~>§G¥ï‚-Vøÿ#àj¿Ã”eŒè¾šŸT@Z#m^Ф$ eÿÿ°ë$ò5_õÉînk{'ƒ‰SÑm¿~é:é›êòÿ!SûÛj<R}2=¹¶{2˜8Ýöë—7Êû•ÿÿêý«JÀX ¦[LÛ=y{mGûÌûñ¼F½[XwxT໬¥çÿ„U͇xÕ B����IEND®B`‚IMAGE 2036 ./arch/spell/Bullet/Fire/fireball_S.112 ‰PNG  ��� IHDR������@���[a?���PLTE���Ú¥ ÿ×�ÿÿ�ÿÿÿ]{Æ���tRNS�@æØf��“IDATxÚíërÝ(„ÝÍû¿óV%ªó•=FÀ”í,ýG‰¹7#Ä!Ù·¹5¥ÝgË# 8CÍ÷ü¶ CÚ¦?ŒsïÎ.IÍŽ qÇW› ˆöQœc’ÜtÇy‚þV°fõçü3.Í 7<B�§Qv“?š²pIö‡rzDÅHT¾©v(¿ãŽÜæ2ŸyZõ ÃVWgÒÓÔÇ AøO @|E`ÊÆõ?RBõð8(¶;IQóŸQ"©)nH©v™1£FyŠ~øOˆ„qùZtXèiz?Ž@?Ì©5ÊpK�D4ðŠÀ¥UãB¹¡j³•£­&]r“ˆÂ~ñš˜ñÉŒæÇùOˆ„A}Ða£?¥©Ž³qP¸{qÔâAD~E`ŠÒ^.ý¹Pnª§fEÅ¥$ýŠ@"©úKq¸ƒ7ÃÍÑV€ùä&ü'Džs«èLÌ“=’&ÆiÑèËzÄojPf¼"0¥«õÛ—g¯{PÕ’¤¨É4|#©×䳜ä:Ø 0Ÿ:$ü'D þYg ¨›%£?ÔŒ4÷q‘é`2° IüùõQ=VDA1’åÔ&©Wˆ¶TËÈu¸ c>ôJ-á7Ô sžy”ZR]ð!]׋´ãq,/£?d÷Ö˜W uQüSʈkèÂËþH Þ®1RÞB}i·&Úñ8V[…¥îÊy}?¨RüŽ‚®ók?بñªªZjÀ[¨—۰Ǽ˜+¹Í€…K¿@ã‚‚|¨IœƒýâÜh$®Ös©ë—½ÄRdrf¯7K©µ©ú[¯Yý Ø5<¹‰¾ V)˜Aî%›‡(X¯¥î¾…L ov“´º ÎàÓ˜Qª%ñ£`4w4.(¨ôQ·$çÂ׫þÑ<<-ÖK©ã+×VÊé‹—Áy«º½ê5R?©ÁÔñÜѸ  }Óz ×{¹Ñ¶ÇßïX¯mÝá•[>½Žm‡Üø>îÁÔO†©ã¹#z(Hß„P ïµáü {äv™€(Æ:`Vûþ•K…e[Ƕ‚uùuµJýäS­nîh\P¾9N(²7ý‘YxKòðT6Ö Ûºc#ýyql+X—_•¡>’|ËT»›;b…‚ó‹ZÙäšÜ‘•hÖe¨6Òï¨?²ÅÌ~Ø42ê“!¦|›ÂPpeQKAR&=’§€’êÍ>E¿kˆÒ3¾ ² &þ÷™Úlea(¤‰… ~€òµóUHa+¬Öÿ[ =_<‡%B¶ÂGæ„»'qL`7l…•åÑŠSÛéŸù_wþï„í/ÞÝôôÇ,±;)SË;(*ý.m=uj?*ÿoëì®05F~iwS8ZO¶í§;@úìI¬?ðÊüþµƒ¤Tg»É}áf ùð‰…䀛©è +‘¢4qHõÉê´•&~ã ¦÷þžÜîêÜwŒ÷ä%‰”�ZH‹ƒLõdcºÞ"%vj¼¦yÒJIã´…ÊÖÓž„é5سbÔ9ŸW¯5Ž<é(SHÜàdOy‡ØyíŽ&•U¯in^ê&n[…»fÚ–c`b 3k‡¿'˦Î3çÕ3Ol‘f ñ^C£¿”±fÕ^åf±S[W’¸éëÊ“wãñî2„i •ÕŒ¼ùë[O!“ø©/ËÌ5“qf­«xOuL)bÍuו³²®«Šv52úðî2„i[Ž_#Ý[´Mê<AÍÄñVgÖüÍ´ÁûžQÆ`Í!¥fÑ‹ýrÓú4#°­±WF•a+ÑŒ`È^LØ‚¸7àÈu{w~Z¾ yϘz¹Žb§¶¬*ôñ¦>Ïl{¯J 3âçcÿUÌ5ŽQ’KI;z;µeUQnJÝßi�å÷CW)Ž%3â@ÒnH"#Ðb}Š(ïÔ–UE¹™2"8Rÿ£JIâRö'·ÂZ•ßG±š³ÍÇv :7÷O{c0²¦ÚÞGÀ ñï@[ Ýas{[øh™UüÊNâÚ¯öÞºmôÀ¾‹R¤vOøøUülŒ„íÒmñ¯CAOp('N…R�kÎ< â\Û/>”®@@¶Kcü{êõæyš]ïGɃØš2Ï‚x®¶È?†nH¶0×Í^>“]'Ê©mv/¤ój;q¤®O�m! æ×^-yžf×ï¢Ì‘…KäûÊ»–8üNóÍÖ† ±õ(s¯<;‰‹æiëܺ9vv'Ìoo»w¯þa´·ƒÿ3ì­ê¥i¹ƒ.ü ƒŽÇû¶Â OÞLÍbl8Þ·¶¦ºq?DùϾ{½V4[Œ]8Þ·óoOã\•‹î›('ò¹ª‰¢• ¶üÿ j¦'`6ßl¹+ǵãÙ=¿¬ßÜÆ%7…¢ÅÌç±²¼$ž"�$mzê>ž¡>¸öÓ[³n*'ÛƒÈc¥9/há3õǸšzr„Úó ýÁµŸ†ÁÖ¬X´¬^ÒÆ#Ó͉�ÒD”ÈIº‘$‰ÁµØ÷ÏW‘ÁŒäÅêß™Ò/){F”Áµ_x²¹|’~þñïyqÄkÿYg”>5¢����IEND®B`‚IMAGE 2294 ./arch/spell/Bullet/Fire/fireball_S.113 ‰PNG  ��� IHDR������@���[a?���PLTE���Ú¥ ÿ×�ÿÿ�ÿÿÿ]{Æ���tRNS�@æØf��•IDATxÚíšë’;ƒWê÷çS§ùvPL{ì�IjôgYû.7Æã¯ßÿG.}%$W<Py R.+ €°VLvÉc’~-ü{â÷íoXÙO,î•ïÉT£méÀ¸Œ–ª{ðVÁ uΓÄJUÔ�CŒ=ä¦êè’g¢o·¿“Q5æ\‹¡§Š‰ÛÄnßþ’±ãë§6¹ÎR"È2â²ËˆùPÓžÑ'‚Æ~à§íû_Ó* Óô*©ŠÙpŽzà‘¥F1qËϺMƒ�¿î6Ú`ýdÇRWj%£_ˆ%%-ÑÁVù˜'¦¤%Æîõ¯ƒý‰ Óõ*¨ÿsÔCvKéìnˆJ?/ê/a™¾kƒõs^<s [»$WY!V)4.�|Á¡m‚?¦åK¸%óQŒ¨lí4�⇌ [G6(Ý&‚rD$±ÌïE¸+’\ÆÝi/ž:@.‰Ú%ëQ êÓÔx€æ›ku`âÿópû²m-ltÓ ÈY $J·qS± º$šFI»W™/Èi/p`r©VÉb:~õÍ›>$„5ÙF†ºX¹ý$tY(naéy >œÃœDBúÍ'qÜ‘¶Ža].Ýâ7Úz/’áÐh1¾BÈļiK$6!¬IB†.cÑ‚SŒ7˜üº¼SÎÙpHHo˜¸%õŒÌ¦!v¶ïÚdKs^äŸv1òOçÇtŸsÛu&d,=”Ý–ÈZìày>n¢6HŠ<õ„šgäc`äY9¼ØGºœ…¢A9L·¿ðÝw&däRÖ@dínÿdàL¦œÃ“ÈÓ4¡0›Ù©\wëìB[x±q©ZŸacŸó¶3¥ŒT•Yç‡:¡«Ð0¿O²Áä霊ÌÚښ¬Ö>šBÑ \êL3»øg¶NwÞÊk³÷$ôsõWs$²¶—ìÙÙ`¤ì¾¦Pâ“ AUMçüØ:æd˜*©8†jV77Í‘Èî^à1Rü ‘áM,~ nÿi‹àò|ÎýýŸI™8}ˆ=Q$yÎs4­Cÿó³PøÆH¥7L:K¹ž‘ûô±omδ/iªN·µJÛ›bžE’;˜³žÝà‰\qŒHüPüÎH†“ œµ½Œ¶èÃìah¯²­‰ÆdßÖ*mÓìöyÆéÜ9hußT5ñU–/)T³þμaG÷ÒAè\¦Ï韞ؔm{ò0ÄǾo‹í í8Á^ÛÏž—ëù[äé»YKewÞˆIœ£{éBDß‚{úœþé)Jé<³%¢§üQY‘¨8«†y¢šå¿T5È·,ۚɛpØÖ³ C‰…ÅÒÒÇöÂjËÝãOùr{¤ö¤@ÐU=ÿqkà¶Tò„LÂat§¹Úk|/§íüä–JÒA®•û?áúÝ¥í©'jx VÒ\µp8t3‹6ûZHÚ”íîô¼‰@miñ'\1¼¾»Ì§É`%5§nšþLà¦JR›­r²ÏPU®'ýÆf~|=dÇËRU6ïg6Ò¨p8tÓ¤ÞwTkR žFDs‡ÐVùÌÕÆ \b>Ý6w—f*Fcpp–ß¾ºÃ°£g {¹Iy·SØK‘Šôïy! ÃB9ùÌkå\uƒĶÛÊ%ã–bªõË'8Ëì"Ú¥{Ï@ÆŽ+rÛÛŸ¾’k[? ./¼Í*ä5 åÐ-¯•[v‰Wíù÷íÈ;y“ÍPÈC5™µK�ËCªˆø7í=#(»¸»{‚½«4›ê^xªØƒ°P.—4¸VnËU2ä`~ÑÛbj••[î÷/�’ž|ëa‹žÌñEÛ=²Wž€‚^¨I¬Èï(²ÏiÀË»ròy¼VN'¶M*˜Ï Grª'V.1cpYBœ‡?ü¥g¤_%›ÈZ( 0 ì/u ‹Ù¼£8wÔGÙXî$hˇ¸Üð°CŽbà01Õ¤²ˆ7 =áâhç 2ÎäN¯L-tð­B|+òÌ; 2ÜÖߎ*‹¾3n` rÃG1:*åóã½Ý €dp®§¿™@…gýk¹7å¥réd›àX¶(Ç i(Šù¶qôh T‡<»¤ì@lò2ˆG&$˜9W‹÷ôß•Cf[ê/y¤ò\«:{ ó±²!SR2’â�S fÎù÷vHzñ; ÛÓ®|Ö€ìF¼UW9c>2I(ø ëŸüIy¹¼÷ ’ø8¨íß@�©ü yéE¿¢1°•yIAžu[ëÄ’´½òäZ`ÂÚ±Ÿò$å•{0Us•¹Î¶ yÄA¦Ö‰¥Ú[yãÃdiV6ì§<Iyí1\ñsbyù¡`éUT\'–´} ß.ù<³ Öí§<IyíEDÎÖ— V¢×ˆA ¿ø«[„°Ü�ª¤eûÈ¿7z Û }}·ÉA€7ž/°r9 ]†­uûÈ¿™�@Ú´/i-| Sï?_¸©á íƒ÷7€’>v¼G€ã'F_»=L~½ýIy}>y¼gKM¥?|¬øûdKý .\¸páÂ… .\¸páÂ… .\¸páë:¿ð9¨¬Ý7¢Ùÿf”´}#äù„ø¸È%i™Œ½—ÎÁyÈÖÖ}{»äîÎ&w¸dí’±¤FºLÔªOŸw û ŽãSg!>.q ª.*­ié©v<O*ä†�Y¶d‡;ú(>®p éUÄÚHçàx!Èæy¯õóH÷´q__v[Tëðq‘KBzIdï¥s0£Ä§Fë§°•UWC�iâÎ&.m¹jk™ìHç`.„t‹ç©àFS¿‰²Iø¸À%½¢� '¥”Ç·îãy(ø›ñ>K{÷{SÁþýM=ï__²Íóëäá>ñ5v«_(ÿÅû f$šä†����IEND®B`‚IMAGE 289 ./arch/spell/Bolt/firebolt.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿO¦Óœ���tRNS�@æØf���½IDATxÚ}“Qƒ0 C©íÞÿÊ›âl pèHø)Nr\ÎZ à–�œ_3p�Oña]¢E”Dà¡ÕÓ¶l1”h`ôÐôn’ܪ„K€U°|ÕÏ ªB¸…ß ˜ˆ]R&Fý pÔÒêÄY’ÆiY>ŒAä¨s vsˆÆQT ¾eÒ ´E$àYÚÂAåAt…a)$yI®¤H¶Å]¯Ç{“¿½Ñû__ãbÞ›j\ÍÛ5?X번7§D����IEND®B`‚IMAGE 306 ./arch/spell/Bolt/firebolt.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��ÿ��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿUz ò���tRNS�@æØf���ËIDATx^]ÐArÅ `õ/ 9ASè žvŸieß™àýPºˆ’²ãðgt¶ 5Y/Äß¼Bjýµ&‚G’ë M^o€>å0OîHÜŽh€XÒï‘ÆW® ˜WDIµËûì³BØ òÃ\p Ia7@üWWø÷§¿Orà± É7hŸˆe»aWy@ÈðCÎÍMHØ`e8!¬]Ê‚*{Ô–÷-/�ê«F‡` rÍ60ìD»4ÂÖèG´ò E¨(¶cMñ����IEND®B`‚IMAGE 282 ./arch/spell/Bolt/firebolt.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿO¦Óœ���tRNS�@æØf���¶IDATxÚÕNÃ0"ÆþÿË#`L/ûÀÆYA ½â0î{ÜnÝ(îLæ>›ìô -tt˜»õ.”B,Qæð®wƒ>‡b†#’(›d 5øN].,;ç,ö—˜Ff³|*>Ô ¥4¿ŠÛ@>O”ëTHä5Y“J¦íÎò\*#ý†„~ Âÿ¤™<\lBh¦¥Ç’@!¼N%ñ>ª¾¸MíÎû:ÜoÏ7¢÷…»ö;ø�QvãYƒ����IEND®B`‚IMAGE 305 ./arch/spell/Bolt/firebolt.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿ��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿUz ò���tRNS�@æØf���ÊIDATxÚ}“QŽÄ0 BƒßÿÈ['UfµkRûÑ<ŒÒe‘ë›Ò€ pZÄ@vŠä È¥ •™BÄ��”3MF´P(y+†”2í9Æ#gæ¸+P.² �:gÈFE‰”{—ýir ù¿,î2T^bØ×e3äŒSȨ¨<•¥ÛFâ%|©v;À“4zäÍ¥¿&õâ£cÓwºP€ý!f—·Óaî.Æ£žàKxn ³9ÿ}Qå5Ý àÔ1œ~‡Ø Pþ�’¨Ë"ÆÙŒ����IEND®B`‚IMAGE 296 ./arch/spell/Bolt/firebolt.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE����ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿjnJÂ���tRNS�ù9·���ÀIDATxÚ}“IÃ0C] åþGnŒhÓç ³HúaaüÄœˆ‹0*^ 0ÙÄ/€!¤SÀp‘@ àO˧2\T‰&Em Þ@£W“±ÆX:�3"S`ÅöùcTf0Sè]€ÛePD«Ÿ�YM^ì24%›uJ¦"¬Q”Õ¾U |hˆúUL9m3̪„% ] hˆP å¡ M“ ©U89º£Jìz>ÎM~î†ç¿>K´‡5t7eT{šÛ˜oïŸqaîKê����IEND®B`‚IMAGE 306 ./arch/spell/Bolt/firebolt.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��ÿ��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿUz ò���tRNS�@æØf���ËIDATx^]ÐArÅ `õ/ 9ASè žvŸieß™àýPºˆ’²ãðgt¶ 5Y/Äß¼Bjýµ&‚G’ë M^o€>å0OîHÜŽh€XÒï‘ÆW® ˜WDIµËûì³BØ òÃ\p Ia7@üWWø÷§¿Orà± É7hŸˆe»aWy@ÈðCÎÍMHØ`e8!¬]Ê‚*{Ô–÷-/�ê«F‡` rÍ60ìD»4ÂÖèG´ò E¨(¶cMñ����IEND®B`‚IMAGE 282 ./arch/spell/Bolt/firebolt.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿO¦Óœ���tRNS�@æØf���¶IDATxÚÕNÃ0"ÆþÿË#`L/ûÀÆYA ½â0î{ÜnÝ(îLæ>›ìô -tt˜»õ.”B,Qæð®wƒ>‡b†#’(›d 5øN].,;ç,ö—˜Ff³|*>Ô ¥4¿ŠÛ@>O”ëTHä5Y“J¦íÎò\*#ý†„~ Âÿ¤™<\lBh¦¥Ç’@!¼N%ñ>ª¾¸MíÎû:ÜoÏ7¢÷…»ö;ø�QvãYƒ����IEND®B`‚IMAGE 305 ./arch/spell/Bolt/firebolt.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿ��ÿ@�ÿ€�ÿÀ�ÿÿ�ÿÿÿUz ò���tRNS�@æØf���ÊIDATxÚ}“QŽÄ0 BƒßÿÈ['UfµkRûÑ<ŒÒe‘ë›Ò€ pZÄ@vŠä È¥ •™BÄ��”3MF´P(y+†”2í9Æ#gæ¸+P.² �:gÈFE‰”{—ýir ù¿,î2T^bØ×e3äŒSȨ¨<•¥ÛFâ%|©v;À“4zäÍ¥¿&õâ£cÓwºP€ý!f—·Óaî.Æ£žàKxn ³9ÿ}Qå5Ý àÔ1œ~‡Ø Pþ�’¨Ë"ÆÙŒ����IEND®B`‚IMAGE 887 ./arch/player/race/fireborn.111 ‰PNG  ��� IHDR��� ��� ���szzô��>IDATxÚí—ýOaÇý¤çœNuÒy‘£’G)„ƒ“—Ù¡¢:e楥é(ÌË¢ÊKÎ’°3ZµRÒ›&³hËæ%’ÄfšñƒÍæuglÎ,‘Ö#?ôõgÏ}ïþ^Ÿç¾¾Ïµû h üÿ�Á5üx_w—?Ц´Ñ¯�ý9îô$î˜ßzŸ~/Áeÿ#ßE#oðÛä›ÛÅVŸõÔj÷òZß�k[º'Il…¬ŽïãyOà=Ä0aõ¸l>Dœƒ5— ’›!ç:ÿì/hÚÆc6¬}RKÁvŠ[ Yj H½˜Žé&˜¸ ™!i?ì+‡‚&¨¸¨� .aäH§qeôTÞ…ø…°É Ù¹`;å× î1¢¤¸Ná §@ƒ ¥+J Ûƒ!o)쀒(;U7¡®“>´L(þåb˨dyLæD ?F%/Ò<à˜ *çA]"Tï²B(¿�U·àL'}ÞÒ1û¦crX™ÊNù"2$Ó±ª)Õi¸ºÜ‹—éî|¶) 2ê# z XÀVÅ— ºjŸ; ¬Áò€^— EÃF¿x€!ñ’I¬È…–°Ñ\5Éye–ñ)CG}¡0Ž`ß*ص¬epò2œjƒ’§pð¤wðWXâ6ûÇÝð1D:«I“¨ÉPШw§+FÆÇÕ2ØìØ>6D@’Ù¹°¥,×aG;}6¡Þ9˜o�NZtC½‰îÅ6…åA2îÍ‘òÆ(á}¬–zÊI°,bS`I.Ä×÷ÝŽ/»0Lm‡7ÂL;u¡rZfÉy6ד÷DÌ„˜{dA\…(­ØáÃüaž¬–xq@ãÍé�š5Ï‚ü!l>SÁdƒ•"¸úî¢"ÒII¢›‹TËQ…?5!¼õ‚Ù;ÁT)N#Ò¹èdÌqO¸ÓX Kœ“‰®°*gpKXº<ñZ±ÎYÀ ™Ò-ÑnÔd¹žÚð¤Ÿç2Â.{ôg 6xš~)í¦'GXKû´0\ƒ•·ÁÜF¿{ _™Ö£hš*޳!ÐSñiínüXÞ*”0à÷‚®zoFƒ�½¯æ”Š©ª�����IEND®B`‚IMAGE 955 ./arch/player/race/fireborn.222 ‰PNG  ��� IHDR��� ��� ���szzô��‚IDATxÚí—_LÓWÇ÷0¢Ò–ÚB¡4¶Š•‰Ð9… ÿÀ–¡i hÈ2AÉX¥)«£f˜±‰T"Ln‰3StÁ!.cK3&£a ƒmɲ%&ø²Ì—ùÙÍ$/£ý1^x8¹9¿äÜï'çœû;÷>,©-leiî̼9…¤�cÊs¾ðÍ“G�±¾îç4’g`(ÂÍLd/ ü”¯~„£P<¶Y´ Êñ«ºx¨½ñ¤È+ÃpÔÇ¢÷@—¬Žau ~Kw Øþ¨¸ÎÿÖ„^K·ÍÍó‚{`õ‚ã\˜dÑ*"òh5fHS‚_]ÆxõmhèÖ/ sºfAZ§‘ôž Ï [–ÅXl¶fõ8\pö"x>‡îBû½@Ñ–Y$¨§r^—ÆhÊþ*Ú M¹à9].a`@ø·Àû-´O ÿWhý\?2@~x ÇÕI|¸9‘/óLÌÕëÁ»>ɇ«•Ð ­Oß„>ô ñó3Òd xm2oD›ñl72r8Ž?ìÑà5Àà6¸–eBø-8# N÷Cû(’5áQe&Öp #ÝéÆŠuÜ?©áoG ´%@g*täÂ{ÇÁéö1¸îÐ'oàqÝuù”D¥b ÛˆCµžÞd=¾=ÑÌ©yT®…ZœZöb-G3¼{Þ÷pzÝ1jÖ¤TËùv²W˜xyU<UJž ± ?§á——¢x§a®@ÍŸ8”å…På§�8÷}h%8²:‡¼U;o’¹R'²G“6ŽKÏÆrçy¾Ìx¾Þ¥g|W<÷wn‚ì=PT¶A$ÿe?­§l…[˜½‰K–úʼnè1›¹¼)‘‘ ©üfÈÄPØ)=@AX•±)Ô®´pJ±wt:Í1ÛhԦѤI§-2ƒ+‘¹LÄ”BR ¼65“ðÎ4’�Ô)öâ4À¾úElứUæP©ÜM™"«°Ê¿íí-æj‚Ùg.BÚúªüP=‚è‘Õó©ÉÁ€¥qACçºÑÍãgó1EãP:ÁðÊjè—Û¹¦páSz˜M¾ÔÄ»q†‡ê,¨öµGp¯+§]V¸”ðƒª3¤¹?¡º°0€ê5&C¸q6´a$®e,é»àžÊËòËh`±ì‚0‡øêÑE����IEND®B`‚IMAGE 992 ./arch/player/race/fireborn.333 ‰PNG  ��� IHDR��� ��� ���szzô��§IDATxÚí—LÔuÇû?W’!Ý|ï8~\G7“ƒÑ.½EòÄa5f­¡ #­‡î&‡ ÇTä8ìÀÄÙ4”V“¶ºgCd¶¶ÊÖVkÍù껹¡î:£‹íÖÆï=ÿ<Ïó}}žÏó<û|ªE€E€ÿ1ÀŽk„ à{ÝY0‡à«´“°yê¿&,�Ã* ltÂ^/X† yì>ˆó¸nÞÓ‘ M¾¡Ø- Ú ¥V¨l«š.ó œ˜Ï-BªÀLúiX74øpô6\’<†äþH{Ê^†=•ÐÐ MÝàø:}„|CêÃÜÕÃÖ«IŽÅî¢Mž;&‹Ëé©üZ¬†úL8XGªD5ƒ³ Ž^€®Ñ‡ã;g˜÷L=ï…œ+°ir}ü ?Í@Ê^ZVˆ�YôkŸc´0Ûµ hK†^ôm…n3´Ù¡Õ — û1í˜Ç4ÿ`y± Lëú™Íø˜«:^U-V!Ÿšå«°Ç¦ÐgP2^.p»A r8¥…ð˜ Õ vêƒÎaè™í 88–I¨ö BRÈ~Åëô&6rñYG€ãöõr%î,c&)?ï‰âŽE-Jpi¡}-ØÊÁÚN@ËEp^ƒÆo™W¼!-³+¨sñÒDÞŽZIkJ4_¬‘pkS¿—?Ã*Ô P£óz¨ª†wÚ é ¶ò"4ä/U²-"†}òhzÓ¥Œ½$áf®”ŸŠ$ü²QÆÝõeCékPqÎ/@©\OÁ2žŒ¥<RàýNàr–À„!†IC³zjWCÆ(±Cݧÿ 5ÎŒ7i@Ðñêx7¡„²§3È}"Q”œ²å ,q±ô¨ù<-Ÿ&ÑäLüñyü˜´6Û z0´ ˆMÈ Ø„cšcLäõðef;íqÕsɲ'{‰ñ”’¥©œRdrN‘ÃY¡€3‚‰óÊ ®@ñ9¨ñ‡¶ŠOª÷1¨sà_çámï\’ûÉ—$²;2“inÙºV<ÜÀ#ÙGÁèƒÊ‰€À¼ÂÄ{Â+sÎ~£'h q™ŽÝBá#Oø™ºÖúîÍ¿m ì¢D;ï&üÎðQДD®Ѻ“,A}¬òWÑtBÁ«¹öúü¦õýA“¿%+Ñ$ÛYw‚…ư_õ³«Îüç‡+¾64€Á€uš:D�¿ÖCX_Åã©Çùmõ‹ÿ‹�§¿�íY’�D'H����IEND®B`‚IMAGE 870 ./arch/player/race/fireborn.444 ‰PNG  ��� IHDR��� ��� ���szzô��-IDATxÚí×YlLaÀqïµÔÚYôvfªº3£ ‰ÔŒR%­¥h%ÒLmP±¶”¡-]P%jF¦¦3:[©”Ø#H) µµ‚h*ˆõ‰ˆ%É$Û¤£óÒ‡“ïé|çwsÏ=ßw».€Ë ÏÔGaB#0+r°)ó8XÎûˆ³Öü±ã1˜ÚèÔWÐb†„FÈkcžé„˰©Ï6ay£g�f¿l^Æ”CÑØu‹NØ|õ< Z³* ì ì½G§*¤ó¨•%óB5 &¯€u60Ÿ‡š["ä i¸O‡y6ÉN ±¼ÑhaÎ (È£,'Ázªîþ\hç#(~…\\ ©t&í2¨–%qÀ_ËÅ(5¯SBÀ0Lé`/†ê*¨:•ç`÷u8Ô ÇÚaÏcØè,î >x ]j=;d‰Ø…QÔE«iœ>˜×«`…C‰pl!(« L0ŸGXA©³¸k�ûP•cr)®gyÀXÖö‹Æ<HM]\ 7ÒÞÈÀ¢„ƒ# >I\3 Ò�[PV Û/ãrŠc–ÓQÛ°FäQ9ÿ§ æõ ¢P1{Œ‚«³e¼Zê×9ƒÀ –(_�6‰á€ÒK®jTöùçÿ6)ÞËÌþJ6‡úrb´”¶dÞ¥Kø´\ë”bÄ€!M\K ?”\£CŸa¶OŠs]ŸPtÝLè!'K.Ǥ–Ò+áI¢Œ·)>ΔBÚ0ÈšKŠDD-”Ý¡Ãs ©··]1¼Ñy Œî9€E )Õ‘iÐ Ü+ð4N cÂ`R Ì-„Õu¸}ézhD€ˆè.0Î[BžJ#<€ š`njÔ´‡Çð9dÄ­‡ì£î8!^Aß³½U”ɆâFpÜ/– ~“¹¡Ôó<êà0”ÞÃý�'"˜x¯�rýG²Ó7›t&5r=@·ƒª54k­°¸roóߎãñ}"È2• UÖ/‹\Œ4òaÚyHn‚œÜH•ÅSœù×'l> ¯AÖmX|·�RûƳRšúÏöJSG¯åÍa{èú1ét~_p˜—©¡pŽ����IEND®B`‚IMAGE 179 ./arch/weapon/artifact/firebrand.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ÿ¥�ÝÔún���tRNS�@æØf���UIDATxÚÕ± À�ÈûÿÏ•PÖ„µµÄd óYÔåPk$Büh}_@ˆt]±÷õè½î/j½²wÉ]=îËÂñŸÞûêa ˜ì{k¦ìÛƒ?óÓ�ØÇK2 ����IEND®B`‚IMAGE 182 ./arch/weapon/artifact/firebrand.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ÿ¥�ÝÔún���tRNS�@æØf���XIDATxÚÕ1À Ã.îÿÿ\Uò„¹–˜Œ‰˜_ÌB¾£O؆y¢Ïö/ô›‰so­¯ûèÒzŠ÷ÿœÜ­Ç¾\¸ìÓû±¯¦€_û»fDßþÌ Èç�ÕYäÖµ����IEND®B`‚IMAGE 182 ./arch/weapon/artifact/firebrand.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ÿ¥�ÝÔún���tRNS�@æØf���XIDATxÚÕ1À0 Íõÿ®T1d(xS¤ã‚<×EǨ-$ôñÿ‚\@ˆô½¢oÛ¼î£rý pßOb›ýRXöéþد¦'óîï˜iAæmàæ¼ÌT�ÖÒçœ0����IEND®B`‚IMAGE 243 ./arch/spell/Bullet/Fire/firebullet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���†IDATxÚí’A Ã@ cvWÿqiα!=Wøæa F×?¿Åò´µ!vˈ�A=Tí*"?¡ÎZg<Ô:ìÍÚi «(VuØ�Ec€pÀ©Uê>a!qHÿJìj÷B2=@Ân(™ Šeg:ᛘ è;Ca1vê6L@¤Œ†;×›|�6÷1+(_����IEND®B`‚IMAGE 247 ./arch/spell/Bullet/Fire/firebullet.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���ŠIDATxÚí’1Ã0CˆîâÚym&ÈЩCõÌ$Y›ãïOl(bÔ8„OîÂ`•ú>!(ÃVÑ x#M­ƒ´*Ál¼ÍhU;„¢á¹`gB—Á–eØÛߨ,$W´¬Û•Œ¯‚Ìbú‡‹?K>ò¾ChùO‚þ´º÷`Ö¿Šœå7§|0t����IEND®B`‚IMAGE 242 ./arch/spell/Bullet/Fire/firebullet.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���…IDATxÚí‘Ë! ‡‡ÿÿ‹;lN©ªV=ô¶ŠÐÚ³<nþÃ(>ìtê"kˆ’¹"Y·]b8̹¨Ýàä ²cNÄœË-ƸZ€ŒŒ¾_Z HL†uÚ¨'wql‘n ¥bï= D&¡3|å¨ Õèô<Ö÷·¸ù™'›wOP‹hW����IEND®B`‚IMAGE 247 ./arch/spell/Bullet/Fire/firebullet.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���ŠIDATxÚí’AÄ ëØPÿÿÅkE{ íy¥”£`×!éE õ,©,×yÛ2 gC.“,2‹k“j¦¸œUcFl�LEšN*r¯•Ú šbÄèÍd±fãËÂÔ"”ÓìÛÌ1îHY£PÝ=eÍBOwßbD&HôŽFxzU‘~ü ן5#-À#qô����IEND®B`‚IMAGE 242 ./arch/spell/Bullet/Fire/firebullet.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���…IDATxÚí’1Ã@ÍÎÞÝþÿÅQâÖP¹Ì4Œ„¸ÞŽ™€ÈŒ�ž$F-înX¶’–,Ô”˜ ;XÈ“á2VŠLq:ƒp8ûÀ]Z �ªZ`¯¢XÅ3@­ÃÞ¬ÞPg­³ŠÆ ص«ˆÜœ:ˆ†‡ÌOùíþó¨@A|Ï����IEND®B`‚IMAGE 244 ./arch/spell/Bullet/Fire/firebullet.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiíu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!-Lû<���tRNS�@æØf���„IDATxÚí’AÂ@ Á'øÿ¦¢GvÛ3¾Ú'J?,Û76¹Ê)oýHIÅ;>ójØúuøeïúéQ÷sEp*a£”¿Ëð @­†C-NÙ >š-ÿœn ´^ÑaÎÁ2`Ô 0sÖ„ºë@H"åÝ•ºúbûæ•þZè Ùûú”qŸ����IEND®B`‚IMAGE 238 ./arch/spell/Bullet/Fire/firebullet.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���IDATxÚí‘A ! C§IÕÞÿÄ“:n,ãæÃßMÄ‚4¼”z}ú‡üÑÙ�#ŽGÐHÂ/èx5¨ßz:�&Ëë�´1šqÊ—v@o4ÜABïr%„A¥F£”af)3t&fXrP#„XM˘…Ù »g¶îÛ&£lòôŸ~Ð ]0­£å)����IEND®B`‚IMAGE 249 ./arch/spell/Bullet/Fire/firebullet.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Víu�c2ÿ�����þÖ�þ¤�ÿÿ�±!!/Y5»���tRNS�@æØf���ŒIDATxÚí‘11רÿÿÅGVW†-¶¹æFQR`‘A\Þ¡ªé‡DÐl4v7A€Ž!`bEÆ @2A$<6¨]_ŒÁUìk’YÉ/¡£Š›ìGš$PÌUyòж ЧVùôKØ4›àQcsO“w"ÝÓ8¨qg†j‰9¡>׌wâ‘ᇟðjy-gñÄö����IEND®B`‚IMAGE 259 ./arch/monster/misc/firechest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���–IDATxÚí’Ë Ã0«ZÒîÿqP7izî­aAF?¿“}²rGÈ-ï)ýAÉ Îšð^˜×)®Y0Ø Ùfä¤II‚TœiÄ "¨7Á¤ª€ZHÓ9*%QˆèYT¸¶¨AÜÔt²)NjN,˜Û˜ Æ§‚®Ä…ðÜËÊ*¶äà·k¼µåñƒ,ÓÏ®����IEND®B`‚IMAGE 181 ./arch/floor/fireholes.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���-ŠV��c2�1�4Vÿÿÿ¿¿¿t†Q���XIDATxÚÍ“1 À0 Ä®9·þÿKɦÁ^šÛ"pt7;PзBÐÜZ!ìZÈ'K!†ƒ;Î~²øzðûÉb?Yì'‹ýà#ïÁWw™µàáö¶½ÍB¾�eÆ¡����IEND®B`‚IMAGE 338 ./arch/misc/fireplace.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE÷½÷���ïs�ÿÖ�µ!!œR)ÿ��Ök{{{ÿ¥�Þ¥ÿÿ�c1µµµcBBBBœœœÎ„9�1�½½½ÂÂù"���tRNS�@æØf���ÄIDATx^­É Ã0 û$¯K–¶ÿÿ¯=<Q0±CR: “†AèqŒ¸#`û]°ý™�à\@J§® H)-ý˜€Â¾,{?0 $pOáè„a {Þp &€ûï _—ÆnäGCÁèa€(5‡¬E5«* À€ÄRUETJ}Z€‚BÔZr‘¨Â� d)ª>ˆ„¼Š(X@rô¥Fç‚ov 4·ç|t-¶`b4À»¶¾Ðà-@æ?00ãq8ß����IEND®B`‚IMAGE 338 ./arch/misc/fireplace.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE÷½÷���ïs�ÿÖ�c1µ!!ÿ��Ök{{{ÿ¥�Þ¥ÿÿ�œR)µµµcBœœœBBB�1�΄9½½½U v§���tRNS�@æØf���ÄIDATx^­‰ ƒ0Ý#w<Úþÿ¿¶å-Bˆ-Xv6Nw #î´ý.Ø~,à¾s!ÆS® +Îí˜@„už×vá( {} ‘°Ç 0€°ÿ‡ð° ¸¼›ýF<»  @™'É"IDpÈ^¤xáÌO @°@ Â>Ïß X •,â=sI [�‚8…šY+UíP·°sU]ê-�,@JT.Rª�ã`Јéo?‰dî����IEND®B`‚IMAGE 339 ./arch/misc/fireplace.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE÷½÷���{{{µµµœœœc1œR)µ!!cB�1�ÿ��Ökïs�ÿ¥�Þ¥ÿÿ�ÿÖ�BBB΄9½½½á*+)���tRNS�@æØf���ÅIDATxÚ­ ƒ0 —j«K“6nÿÿ¯+¼0(Vѱƒˆã}ÜFÜhû]ðý™@s!„S® í¦~\  Â<Ms?0 ÂÂ>Ð Ã@ ìqÃŽ^CØÿCxðpùnüF¼áh x€z€€�QÑZjUS# ¹´[•"/@ð�ç*¦jÂÙP.ÕÌDXWñ�ˆfVIkŠ~ ÄeeN).9Gö�ð�E¢´ÄõÙ~’ÀÙ@8âq|aŸÞYòB����IEND®B`‚IMAGE 202 ./arch/misc/firepot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ÿÿ�ÿ×�ÀÀÀ€€€ÿÿÿ”šÜ•���tRNS�@æØf���`IDATxÚÝα Ä�CQ#Øãˆ0‘®8)nÿ+Œ?Œo&°‚ÓŽS ¬›lNTSTP+(‰” » CU0¢&g<èßú�Û;Óö¶g÷Òƒô�9¼À7÷�wí/¡ª‡Ý����IEND®B`‚IMAGE 202 ./arch/misc/firepot.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��Ú¥ ÿÿ�ÿ×�ÀÀÀ€€€ÿÿÿ”šÜ•���tRNS�@æØf���`IDATxÚÝͱ À@CQ#nÿà+ÒDqûŸ�_@ß] HŠp"¦Ë�‰Ô~‚Î.½H±»VPC ØÉ*уY嵜w½ï'Óvjœ HÒä ðÿÜ;æþ$Ûÿ����IEND®B`‚IMAGE 198 ./arch/misc/firepot.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÿÿ�ÿ×�ÀÀÀ€€€ÿÿÿÿ��ËýËd���tRNS�@æØf���_IDATxÚÝʱ€P BQ ùì?²q€`aã‘‚æ]|us'‘“ 8ÓLÚò*¨÷-½iM§VÐ’5° ÛÝb†°®ÇdpÞõ¹ŸªØ3˜^ç<€Ê 2@ݲÀ?wBK s#š����IEND®B`‚IMAGE 204 ./arch/misc/firepot.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÿÿ�ÿ×�ÀÀÀ€€€ÿÿÿÿ��ËýËd���tRNS�@æØf���eIDATxÚÝʱ ACQ0àþK>S�Þ`“ÕYb&ø/¾:DÞ‘êûÝ�Ú 2’Hݶ qõuzÐC$NÐÛ‰Ž0‚ì#ÚezêÊÌ».àûTÙîzÍ<€ò <ˆÚ…Ûöÿܺ¸±¥•&í����IEND®B`‚IMAGE 256 ./arch/weapon/artifact/Firestar/firestar.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿ�����ÿÿ�€O°���tRNS�@æØf���¢IDATWÁ±Jq�àïï B¸¹´;U8^tAàè«=@½IâÒñSœšœ— zŠ[<Ñ©¥^Áïã3’)}"ÈÓ£™ÁýJ±ýA'<ÝA¼¶/-ŒÞõôÞõtâfÓ«| †û«~›õÒm4dc°j©Õ7讣e—ày±8óå5È‹~dƒc Rñè,ÿCÕ/U1©����IEND®B`‚IMAGE 259 ./arch/weapon/artifact/Firestar/firestar.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ÿÿ�€O°���tRNS�@æØf���¥IDATxÚÍ’ „0 ×ÌÿÿLšƒ•p@D[$ObñûJ]×óªÚ x ¡pÍ�t°…¤ƒÅZ‰î$ž@0Íû (ŸXgÛ]¦dI(³ ´ÎÐ Zóß&!e¿Æ´RÆa@çè0˜•£ ÅhÒÈ‹2™O&Îj=&¡t­”Ò-!Ä\dr¦-õ6pˆÐêÐJ¤¸ÿOö~ªn[}*þÓC����IEND®B`‚IMAGE 261 ./arch/weapon/artifact/Firestar/firestar.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ�����ÿÿ�€O°���tRNS�@æØf���§IDATxÚÍ‘A Ä@ Ãäèÿ^²3CiÓ½¯)ä aÆ”I'!ëޅˈYç)ÔámešhˆÈ›asAZ&Ãh$‰èFæ¥ym¦Y|úB4ÃèØ ?õÁ£k­ë•aTg ¾*V¬ÒC=¼œF·Jí€yRÐ#8¸ ÆÍ+ybûbåë5„{ÃÕ±G0F´aóåÏÄõ'ñÖ0ÖÐÒ¯Š½O¿äRÜ¥$rià����IEND®B`‚IMAGE 477 ./arch/wall/firewall/firewall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��aIDATxÚmR rÄ0s¨q0tÿÿÝJàc:³J JÌ!“´ÖfïÏ÷{¶ÄœcþÌu:Z¸‘`ò ¬>Ò§˜Ù}©àW=œ¯MMNH)�º˜„aênB˜‡š'íMÅ Ñp1,€ž¨Ï‹G&«pÁšŸ€Ñ¸fÌZ/š"¨Á³ÀÊ‚+\ %rW`à~>DKƒ—ŒMBSƒpNy…cûR4O¢UýÂâhˆêI¡âzOq²/§Æ­ÁMSAE–ÈA¿#­®ª`’Úï$—W&}ކ`cQÒ§»‚YMÎü?Ör�a ³eT¤•ôÊßPHGôüö`UfÉV‹Ú¯Q`øÅ¾Yù¿€?–Îmk e‘@`ò ¥æeÚªvF¡õ±BÙXÄ‚«ZÔ˜ó×UÑÌ&G…>òØ4\4šœ‹ÊœmÌ! ïS£Hû¾òyÇl! ±ñ<+F����IEND®B`‚IMAGE 463 ./arch/wall/firewall/firewall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��SIDATxÚuRrà £Z^ÿÿÝY6[oSCĵ¶%TZkãº^?£%ƸÇרÖtgAìð ïC׈’k€$þA ÛôiHc²¡Bø 8-^ÓÍàÄÕ S€ùL?¯F/ô½ØDš8™M¿; ÖQ"¸&ÙX*=lå¡LjŸ Ñ톭½Q�’®£—xáñ`�]&§¹ìnê ñáxìî½ÕíaÒÒGB‰lM�à„cŸ‚ÛCM \óVßa™$ö %|FídMoì Ì<“$ÕulœLO ˆ¨ôøµîúAÌMy¨û0+ €o"Ï1ŸxÜi.€žÁsyP?Ü“„8a+:ÒVwöä`ôL¡n—vzÅ* ék‚ó{‡Ù­­NqKC1Õ ¥¹Æh÷¸ûÛ ôzǻߣý�Êhìõðøð����IEND®B`‚IMAGE 470 ./arch/wall/firewall/firewall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��ZIDATxÚuSrä0sÕàÈÐþÿ»‡ vÚ™ž&FÞ ÂXdÇëº>þ~Ö(¬5×ç:Ö,š•;üÂ÷K×Ê”k$þƒLÀmnHc±%†DžB„'‚–Á#W4:„k\€…L‚Võ7˜(OlEÎ'a½ì "!ɺQÂV*µXñôPUx™E§BªÃð”fÇ Ð=�$CJKzaÛ)ƒÊ ¿PÛ=H(¹ø�*}ná[}ö¿zp±åÛòk' ˆ·°x6¡¡÷°"¯…g&Û‡3­ÆëõTÙ²å»B€ªp^ÙÔMšz¨ŸAͨ«ió ë¾ÜÛ Eϸù\Ÿ(|±xšÜcN˜‰œ»éë+c†h+Ù^´ÁjÉm¡¢–©I–ÓÒÐaq®©À>¢Ç—º]ìÖ¸f™ˆsx)à k¹&¬ÿ¬³­èþ|ßsRŸ¼hC½a����IEND®B`‚IMAGE 469 ./arch/wall/firewall/firewall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��YIDATxÚuRv„0ëqRÓ²ûÿß]­º½-jC+`@Zkã8^ߣ côñ÷ͧ‹ºhÙ|n:]Ža�ìÐÁNŸ1.€Cìd37‚_Å$ÎeFÀÈÜaZâhn3aS𠨨úÆë40ÆäGvÑÄrè-ß`¨ $䕦ÀŠL×)à¡A1Êð‹¯ ŒiU ‘L—†¬‘Nzbe "EÕ>yiPÍsŠ/ðüÒ@ìèÛ¸m .ÂÝT.S'W`,+JƒÚª» žT‚ù|"J,€êœtlÀ—H÷”îØÙ¨¹ú©Bj‚K¡×<ì×! Z"ëýt|å9ˆ´dï2WûTy@Ñë{‘ã$[®¨2óûúã§]óùøêƒRÖ­¿¹ðYcoÐ!¯U-s´£bÏàÒ€€6nc´>º-œ§mxn>Gíªa°Yè����IEND®B`‚IMAGE 466 ./arch/wall/firewall/firewall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��VIDATxÚuS‹¶ƒ0ërESØþÿw/gÝ}ä´d!¦”1æ¶=þ^sæÜç×¼–ö^´Ï~=ñ×¢mfÊ6Aÿ p˜‡ÒXlÉ€!‘_!ÂAËà„+Â6 .À ¦‚®êo<0k <±9Ï„}è}`+ˆ„$k¢ »R©^àòÐ&¥ð“/˜‡¼¶„¿V�’¡ Kú@+¤@€~ýò B¸‹ qyHÜ«Á³µx{pZù(\ ´€ º“]Í “‡¾¬¨s7N槇:ì÷1w)Ý9jƒßú`²f”zɾ•Ö]ÈEQg÷yðóÙ°è6 ã“zB�¯>…�öÙñTNÎRX3Èhcu9-‹V‚T+êwp Ä»(AF©u?2ä>ÇÔsií')ˆ sl;TÚ²¦àj†aNý·qâx`á8ð:ö9¾”7‹n•����IEND®B`‚IMAGE 470 ./arch/wall/firewall/firewall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��ZIDATxÚuR‹‚ƒ0«œ(…íÿ÷’´ÕyL¡SCik­ïûö÷Õ›ÐûÑ¿úuñ>”`e¼ï´w”ìÝ"Âþ ìô¬ô0Ôy(;²™€¯„UŽUaÉè‘FìÍ- óJÁI¬ñí´�ÇXÇìJ³àh|_pCI@’ zq0YšB|x‡ ?ó¥�vÉ«$r¡\ØŽôÀPpTMÜ~"òò ž3™oàùåXì{]á¶<d¸|׎ԜB娻ˆs6¡.ö1¬R߃»”žØÂ/È ÍfãŸ}pHkôœÇ= ¸$ 1úø>(ˆ— N¥Pú<©zyñšó±÷èb fy±ç-ª¸)¸©i>‘‡"c-·¥`4n¨{œˆòµN¾vƒ\¬fˆ±ÕøñÁˆ¯qRU¡·ý0š´yh²bPó­÷vôCçf7Îï¿KÔgoG}º����IEND®B`‚IMAGE 468 ./arch/wall/firewall/firewall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��XIDATxÚuS–ƒ0SN4-Ûÿÿî…Àê|ï.O›ÎMC·mÛ8ŽýïglÂçøëÉ÷ àÌxßt †Ã�Ø?`€]>c:C�‡ØÉfnwÅ$ÎaFÀÈü…i‰cs› ó˜‚gBeÕûe`Ž)Žì¢‰8·\ÀPHÉ«L‰†úŽâ‰/ Ñ”¬JÍ_**1?—»}šOtCUøF‰8duÑX~, ¡üU¡8àöÑ0ñ©ô/G¢»å–_‚Ctb3Â?>ôùÑpkèè} 40(çZŪ v9‡xöãîE5Ÿ#ø”ž�ú—îC{áå4i vig8 3¦ðU7ßÒ�å#"=ˆòDÇEŸBS®êcÍW?V/€L$+ä¾íƒ#ä‚nWûð­cª=é^U`]ó@ó´ÜÛ<Pza#ÿÛÖ¸vQ²_$®ÿ‰¸V‹g¹M����IEND®B`‚IMAGE 466 ./arch/wall/firewall/firewall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�ïå‹¿¿¿ &OŽ���tRNS�@æØf��VIDATxÚuSv„0S&•Âöÿ¿»$hï|»åTð5ÐzÛ¶ÍãØ?_sæók®‹÷P" ³~^ᘠÓ"ÂþvzV)ø™…+8 èV™i,•nòé‘F›ÖÕBÌt†Vuý”úŒDt²Š¹cÃ:ÐUR²€ ô¶vcÅå¡Ä¸¤ïqU0g‰¼¤+”ËÜÙ‘ŽðBÝS¸õ^à¼#ry P¬\Ð~,ÀR¯¼Âíöáò!IJ¢#•‡ {›Ân=EïCɃPõÑCYp’¿c*¢+D>qW ²Ü¢Çy¼ö+d­áB5…®pžv¹èüÊÛƒ¾É”L_Ý7C)h²Ô¼tôDÆò€4K}”ƒ™‚w}õ*¢jZÊï}°¢2JÕ”ñ»[¤ôQкژKÍ-ŽO=»±€RÐùâûœÛ˜Ã¼ÿ¬Ø’…~Áú/ùñP»³����IEND®B`‚IMAGE 744 ./arch/food/fish_1.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé��¢IDATíÁÍk“w�ÀñŸL†-£z™:ôâÁ‹ÐÃÆÒ‹ì0<ùxž xñ" Cvó²áÀ‹lX!UqV©ÎZ뚦Ic³§ÍKŸ<i“&iš˜4/ÏËïå;sГhëIÁÏGˆO>hfÛÄ ‰÷Uߟû;2!^Ò;änÓ'¶¦õ]Ö³©¥ThfÀ¯vÓb+¢Cñ• ì¶¿çù¤KƒRÍ ‰ÍI9/Îa±@ÔX•4UØYw»x·ÙÁÄí”rh qiÑÁCRæßÄã}âíL_fïŸgŸÚ4¨±ŠDb</vyáëÈQ¿_¼YôÐìý ò8×hS£EFŸ�"ù–•‰ï¯%‹žâÀÝp…9Ê5:lP Ä ƒA¢‘ø(Z$ÂÉ#&dB3ßfo®ºkkj—bòÄ#J$iRa–eº´éâÓ¦E‡. (ºKZyݦâå.‰žpx„lò84©ñ€…F£1h Ÿ�‰‡‹¤‰K­°< zÆÂ d° Hñ‚*?caPhÀ`P( …$ ‰Ï:TMö{ÑóûWtʬÒÄ¡…ÏE*(4 ‰AcÐø4(c1™‹þzûVÁmÓ$¿Tï=W¯Ä˜§@Š:¨á¢‘($Šur”°ø ‹S^Ÿ _ÆÎ-Ï-‰¢gì‹Ñzœ Òtå sÔp‘tH±D†çd©ÒÅžÈ쯟‰WžyLŒ×Y$‚Í+dHS&Ç´“^ª³aì«©âÍ껦o4YåiæY$O›"%RLݽÓÿôp±eÿ$Þf|0¹œç˜$Éæ‰óŒÖùû?¡?ï2ºûÑpô·lî©)Qf«IO]ÿç—é±ÈI±yù¾Ùý#Ã7ýõÍúNŸ|þ¨Áˆ|uhw����IEND®B`‚IMAGE 1217 ./arch/food/fish_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTE������������UUU...'''���XXX^^^sssDDDTTTwww@@@LLL‰‰‰¢¢¢§§§’’’šššUUUIIIEEE˜˜˜   ®®®eeeˆˆˆµµµ´´´   °°°œœœ………•••²²²ÇÇÇ»»»›››ÊÊÊÈÈÈÌÌÌeee­­­   ÆÆÆ{{{†††ÆÆÆmmm¤¤¤¤¤¤tttÅÅÅzzz»»»ÖÖÖrrrÌÌÌÔÔÔÈÈÈ¿¿¿ÊÊÊÂÂÂÑÑѵµµÕÕÕ¦¦¦´´´ÔÔÔ©©©××××××¼¼¼ÐÐÐÔÔÔÖÖÖÑÑÑÚÚÚÎÎÎÃÃÃáááÈÈÈÖÖÖ˜˜˜ÆÆÆ§§§ááááááÛÛÛ××׸¸¸ÎÎΠ  ÙÙÙÏÏϘ˜˜°°°ÖÖÖ×××ÅÅÅÔÔÔëëëééé¿¿¿åååîîîïïïúúúüüüðððíííýýýéééëëëìììÂÂÂÒÒÒÝÝÝÞÞÞòòòôôôööö÷÷÷øøøùùùßßßûûûèèèæææÇÇÇÔÔÔÖÖÖãããóóóåååõõõáááççç×××ØØØêêêÚÚÚÛÛÛÎÎÎÈÈÈÌÌÌÍÍÍ¿¿¿ÜÜÜÏÏÏÑÑÑ´´´ÓÓÓâââÃÃö¶¶ººº»»»ÀÀÀÕÕÕÁÁÁ‡‡‡ÙÙÙÅÅÅñññÆÆÆ¤¤¤©©©ÊÊÊËËËààà³³³@@@äää···ÐÐÐþþþªÍÃÝ���rtRNS� '*0245899DEEFMWWZ[bllotx}~ƒƒ††‡‰ŠŽ–—˜šššœœŸ£¤­±·¸º»¼ÁÄÆÊËËÒÕÖרØÚÛÜÜÝßàáâäéêëíðóô÷øûûüýþþÚz"��ÇIDATxÚÕÉS{a�ÐwR3µmÛnSÛ¶c{Ö³ŽUÛþqÍÍæió¤{ÝžÛÿžžPÞÐ}ÊuïgÞ¯?yÒˆ^vå«‚[­‰èÁ‘YÝ;ö •7°éئ!=‹J˜Åû†üу—^Sëðžg¿Iפ9„Ž÷+%–\<U$$ žPbådAbÑ|(™rÙHŠ3“"¼yJ‰Á5ø>TúÑ·ëŸ|ÉÆòfÁ!Ôai#£bt²bÚ¶Ù �ì¬-¾øšû¥ZŠˆåmýþ…½‹ö#$Θþ¸Ðеª’r³¾¦)F:ËÆ‹Ÿ¾à¢ü½àæAñÕºc[øŸÔ³-|弞MJx ÀjùuÆ1-Ù\ÍsÍg]ž§ž•üpçàœ]qîÞX�fÃçÇÍ­nA‹å‰ù-šCܹl*´aVÈ~¤©îaT«¯V,êñ©0Y]_ í–7¿|×T4-bãX‚ê¯T_Äø\h×mÔž´„U,˜Ä±ØXÀ!N<; ~×eâºKÈ­bP 8Œïn1Ûom=pôÄ©qóÖoš;:±*¹ Çø«17CYU›¡¼¾]áõ °Õ´áÙ"‡����IEND®B`‚IMAGE 1137 ./arch/food/fish_3.111 ‰PNG  ��� IHDR��� ��� ���szzô��8IDATx^íÔ[lTEðÿÌ™sÎn·Û²ív+-µ-mCº(Á¢€bf‹h"Š4ÆhßJHˆ·¤â¥‰Øp‹¾ØVÀĈ” %±•z¡´V®6Ý-VºËvï{.ã¤I‰b#!±i4û;™—yø¾¾33øOJKK;¿wyÈ×ш™ðÛéwJ’¡¯ýÁ‘ÃøP܆ϟ-Èœ=ïKÃÐóc%¸IggãÜi àí}ceþü•ýF,°€Hú/º»w¸††>Ùéõ¶w»W]jo÷Øqna°d.ðTÛ«­õ®Šâgi!d›×ü£§/^<ð¾ÕšµIUm6J #Řø‰v.¯^ât–ºc=O  ë€'K-ù¹7×™k ©w‰ž3G¢H…µÍ§†°t{=Š•ˆæt]ÃÎv5U9ŠïÙQ” 6G¡–.ªëØÇp“µÀâ…{æçY–,pÁ’MaJQ1 †n@åÉW´¨ß?Óˆ¾U5˜S»<*ç³-uuüOÓ³nÿ¨á±…Ô¼Ì2²d²„pˆñà•]Èdc@älgSeÙ‚K>Yɵ!åó9…ˆE áÀ�(¥ ”�P¬*$fN DBþ±c„#l˜P™Iòs‹f)5{·Á±°ŒÉ�(R‘Àwyß¶ÝGDX2Ù<‡â½ª-Í _\Äå(9ñ6"ñd.–« ß$•Âä¢2S¡( !Ð’ ”0P ƒ$3€spJ@8À‰†ìÅ5˜ýÊs`L&’ò¹»¼º©ÿÆ!tHxtY.‚׆QU‘5ìƒA"¦i"z} ²F![eX,D78â‘8’zD'0x $L&&ÄÁ!L”¨gq!dY+ÜÔ(Û�úo\Ã9ðÁ.uåõîÑ«Ž·Â~b?8åàº&bWãˆ{u0…Y˜ØÍÇÅ^<>1‘dB‡Îm<• ]Q¿v0:®¿é¯E¢ZkFµûœ«v (eÐEX&[á,œwÐ{jWÙ_ÎÀ»@å,+Ö²li“ TÑ,�Œ &™H ˜P9`Ía€Œ‰pzÒ„A+—¡`Ý ÜñP5EަÂÝåÏo›¬{¥£NÂ]kj¥ÌYõ’j}Ø$T`Æ#ŸºŠ<¦Ð,²S¬×d²6F¹[ƒª“ã5tRJ¾Z}²¹Ö^V¾^b* ˆ`±°köãY˜Â¥vÕRYã6”Ì S)®|i?ne'`ën~ñ…s=-æÙ®ÝW/ØÉdÑÑŸ?XýûåϾ øFB¡Ü?rè0¦ƒo°µÉõ(óÑ û^ÇMúŽlT/÷·<à;¹Õé Þx"º~ŒŽl÷0ÌïOoÞ=ÒûƒøŸ˜)¿zÚÒ'ÎþÒÒÒþ�˜Óµ f†§����IEND®B`‚IMAGE 1286 ./arch/food/fish_4.111 ‰PNG  ��� IHDR��� ��� ���szzô��ÍIDATX…í”[Œ]S�†¿uÙ{Ÿ½Ï>gΜ93ÓêT/.­d´©RB«¡¥B1‚D„D"E"ž”ˆ¸ERăD‚Ft4E‹I‘ÒÒa*ZÕ™2:3fÎÜÎÌÙ·µ<!‘tHÅË|¯ë_ëÿ^Ö3Ì0ÃÿŒ8V`ãÞ½ÍåÀ}ÊñreWalê§jµ‡X´èíÿ\àÙoö=îá}ÔFˆ¥¥ÈœN.`*3Ýýý÷?qæ™[»Àö·žŸ7òsÿm^<v—Lâ’L'q‚~s¢åDLÛbŽxBPª~c³lt<Iz…1[~èëÛöâúõæ_ |üáK ƒ‡<òóþ®;’»tQŽá+p)ɬ$1ˀʒK9aõ 5/ {b‚Ñ(Âs¢(Ú=<2Òñô…öL[ ³ónÙP¯Üytÿž'{»šrÍ ¨Ôà*É2ŒIB`­EJ J’ Áxbñg·3gÝO\ÂW$H!ŽŽžÿäªUGþ\ØùÖÓMÌ^´‚Úð§çßT�;v<¯G{mÞüÆ–ë/ÎPôsT–_Múývt’’%ÉR0+ÀÚ ©=„h7$îü³h»â^v; ÕëdÖ¾¿qéÒ‹:;ò˜·lùÊíä ëpM<õ-{·-Q›6m çžòêØž×;š¢^JÚâÈ„`v;}_áùyHPŠTR%&ÖZL–%5”Mc?Qݽ…r}œ(MZíì¹õœÖkÜÉÚsfñª[t±éT'Ç?¬àzi¿¶÷ÔÞC —¸Ò¡ÅQ8R¡•ÄQ’8ªaÁTš¥ B­ œ¾ö1„k FXuogÁÁ-JéËåÒT8ƒ±Ú0ýA <„“B¡¥¢….MJ%2wö<â±í…$ãýˆ° ñ(Õ‰d)Öb¬¥¦AË||á …£<PªR­ÑNˆöŠøa…¨^‡Él&!(‚ÂÔT^nx`G¯Ù¿Ò¼¯Õi+0M³(.<—jßçxåDc#ÅR¾Öä=0—£\(÷„rAå�IOR«dSÇÅ÷+xù<aÙÇñ Õb…T¸¿;lJØ?~Á›V”Êm+¶VcV§ý‡Ér’dà0ÆFÄäÁS )vB´ò°Æ"…ÅËÈûEŠù¹ä‹mQlöeØ#T:ëÇÊœå‡Oh_&‚F×Z ^�‚ˆ¾¯—ýe»AËõk¯ºgÎÜemâ•'{©Ž 2þK/Iãf®PÈpN.Äñrø: ¯C‚…Ø ¾°À`K+ºP¡Ö÷Ý%kθì]€Î× 8éì h˜µ2CWTmè…Žöóvýí>túú5·Si=y­ÐÞå~®´Ü˜”,Æ&©•x¿$Äã(ã$¥ùsc¡© z%ü°ˆR,oÙõÊúŽŽGã´„ÇûÞÜìšoªY3:ÔwðÚËVßüþïgï|öúbÏ/¯IEvºŸolFˆQ“Æ[Žî{ù½ŽŽgì±Þž–À¶O^YÚØzò—:hD9n:Õ`éêöµÝÓ¹{,ätBWžwcWšÄÏH)@H-\éx”èé/8må];¿ßó)B5íêÞu¼f˜a†~?]ðRx ^E����IEND®B`‚IMAGE 1284 ./arch/food/fish_5.111 ‰PNG  ��� IHDR��� ��� ���szzô��ËIDATíÁ LÐ_J饰…( u .‘C™Ý ©X\2‚Ý`.ZVÏ1W'L–E`A¢"^[–©85(óv :k€â±Ì™¡€­”–6¶RZú-]²Å¸d1‹qÉÒ÷ˆ¼¼¼^—A”æëSLD!ô:u‡pSta¼Ç7¥è`kl¨amU•^À‹ýTUUâT¹œG¯ÊDÓîsŒC" JxÐË‚p6Z€Ã7›{{‹ªOŸN*®¨(Ý´|ÙÅ;jœŸ9‚3Ú†‡ï6wu-§i’–(³ÝgÒÞ†éÓ÷9,ôqXøÅŸ…ruÇ£ÇíÆ®ŠñS #<Œ \&Ž xøD«ÅE—Ë]sþ|:½¬*"Ɖ––•·"ù|t ƒàœçœ 82Óq'5ò�är9žÚl8ÝÙ‰v¶(,ј"øx"`ã ŸS&joÜ@]GGŽfË–À *ÕÆm›7÷îïé934ÔZ{îÜLz^3‘¬MÔÙZ²ê  ,Ĩ"Ú¨Hgg£¹¾½N»uMM˜›†‰·æÀ•žG|$l1Á‰ ÆwÒ)ކ+WzÔÔì¸*“˜L˜'OÆz�µgÏ¢Í`¸GºHÿkP€¾fA*~.cÔl†ÕjÅ‚„¸žû&¢x<,ËÈÀ>• Ú*Ð×כшOÕjŒæÅ‹�eÜ‹rà–gÂ<3§öïƒÝåÂÑäd O™³X Kx8,ÑÑ(ÊÍÅe�J†ˆÏö%ý⮢…°)b¬¤ýÝ]ð8¸©å9rôWVÂÅð|&ÁÈöÅ‚Äx¬ËÏÔEÀÚ"`X½(_„o²fÂh4£…Ë…^$‚I"%<Ö˜(¦NÅ%�kˆøl_2©ò‡l« à(SàYi Án·ãZÞ|èæÍ;Øà0?à냵‘AðX=ÿm¸WåÁ­*ÞS�« ’<ìO›ŽÁÁAxãñ ‰` …526©YY¸ dûvúð6?ǵQé„j)nÚ�k'Nàq¨c|LD €�àÇ�‚9Øš›×ø8V—•Á’‡‰Y peÏÆÄ¼ÙŸ—ŠG2 îÝ3 7›õ߯\‰a¡&±f±ÇBB 9tgl¶§Qqqôcu~±c‹òéÐõáÑ\VœDp°€�Àö…)9Gš÷b´¿WïÞE › ×d?8þx„g©XÊÆ–Έøª½ýýúÝ»“¶MŸ^÷µPø &)É­®­Å)³ÙP¯Ó-¦5W(".œ<¹çpv¶¥›v"ŒÁ! „3#]Yñ8÷ÙÇhS«¡Óéà�P½D»,c)b¸D€Ènžl?4¶¶î¤çÈärî»ëׇƒþIçÑ’;Dî=`0&á6“iè%ºw›H·µªêÛ®¾¾ºêu\ï^kr¬!\t1Ø#EYeåemS“^…ßRRZFÓÓ1"—ßÒ„…ÅÒß%¦Í«ÍW*w/.-­Ô66΢W©7--ÇõŽî¥ÅøbÚ4')éu[&ÚU.A$“ "ú’þ#ñD”CD,òòòòú¿øñÆ|½݊����IEND®B`‚IMAGE 1180 ./arch/food/fish_6.111 ‰PNG  ��� IHDR��� ��� ���szzô��cIDATxÚíVkL›eý*m`í ëÚ®i;.í¾¶\ÖÑ’B)¸ÁKV¸ÈÐ?ô‡ÁÅD—DMŒ?êÿ,›$:/KÈâ¶¢â²M%#K( “äb 2®£Ð ”RÊãi•?‚ Q¶Ä¤'9y¿æÍ÷ó<ç}Þ”‰!†ÿÞ›Àפè†áüªR½<²=ƒ,»8«ÓžgGTª;RR†)Î}5p‰Ë=tW¯§9£‘î`'÷ï§ñŒ ÓjÉ¥ÑÜêR(ʶ]¸ðpa»]ÝOœbuŽf…‚ÞKN¦“{÷Ò[©©t~ß>ê„øŒÁ@w²²hšeÉɲgm\nⶈÊd•_T”Ÿs´Ó ‡C®¸8êLH O%zI­&+˜‹(ÁÚ¤RQŸFC™™4«Õz\bq³3!¡Á.ñÿÍ!‹›É͵-‰Da»íuºØø -2L”ƒ\.Aƒ¨ â™\gä÷itdF¼r9ù÷ì¡»B¡û7à“øæVõ9îòò–µ¼<ºY~ˆzVoS[®™–!‡Ð…7a BÆôtÊŠˆÿ#' z@/"óìÞM<^í–Ô‡KJN¼‘“C6¼|¥¯~õÑ ™<*¾NÀ@ T¡å¦Í DiÆÞGøÆ„ZOMu´ …iCÍñ¹Â‹ÑQ‹åÔqGv¶ÌWUå«G ô# ÐõÉNêˆr\;wÒ0ª²ãPæC‚›2{×x¼¹†ùöw`Æ‹®-—•ÑòáÃ4m2ÝÚ``Òby~µ¤„Â8Í.äw}¡›Ú\7i˜Ç‹æïGþ>Ÿ‚»vÑ 2^‘JéLÄþ‘-"…ñnßð¢0ï´TP@ùùÍ ôV¿Å²T*‰„Bjín¥–ï/Ñ<&Àz0ˉ‰Ä^D|«f³îe�f ]#™ŒÜ(ÊÁ#G42›a>=ݾ××—¯œ£Ëgm´ôWûÝ` R½@@+;v Ñ<‡C–»ÉY0à‚:ž’BÃÙÙ´Z)\YI~“‰óó)`6Ó¨ÉôÔ¦ìj5Ájý:Œ¼n¿ÐHíõõ´¡�Ä}àbˆÏË`ÌÔ =×…Ÿ†©«b1 I¥¿L¨T¶¯Äâb§Ù|£=8x‚ÅÅÔ®VëïupÆJKÍ×Ô|9_[ë_­¨ f<„΄PùjR…a*‰Ù~Ž®<‰j_ʏ†XÆÑj¦Ä‡ÌýZmÈ™–VÍ�/2ÌC•ªÀ™™YÊlŸÈdñ#VkÅBCÃûžêêÁðÑ£´VWG‘um UUÑTAÁZ?ÎÆ4 y$’?…Ñ 7Ëz{•ÊZf»ðAR’e#èFÛ]‰ãªÁuF*~'—ëR*3h½•{ôúФNwá'¹œÝîÿœ…ḃ*ýGÌöÇë{§ù|A‡TZÑ«V×}Æå*˜û…$’g1J+Ü÷~ð.7yÐèIN.œ2íÓ:ÝÞŒŒ2&†bˆá?âðçoÈ·ê"����IEND®B`‚IMAGE 365 ./arch/transport/fishboat.x11 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������G$d3‚B' R-¿¿¿àààÚ“rV���tRNS�@æØf���IDATxÚÍ‘ÑŽÄ ë§üÿŸL]WhA·y¹EBª§½ötãU¡.¸ÛË€/EmV°øv†4€(ÌP)p5UÈ•,*ÿ¡[¡@þ(ÐAÔ, @XÉ`Ñÿ"�°¸»É9w,† ’“$O soÆDŠ£€O,H¶n¤Ó=›<èóÍÁðy—aÀ&ï„»? èäw7é¨ÅMʤ 7äÉq÷©Ä&o6?âo‹ š«‚ü˜¿¦ Ç☗s“—@pÁáN€ÁØä%PGЕq¾v-`Äuÿ5P+iÝ¿ʯ„–ò9Ã{(–ø¬ R�dü>pýc~�t· ojçÔ����IEND®B`‚IMAGE 193 ./arch/food/fishfood.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æç�ïï)ŒR���ÿÿÿ™ H���tRNS�@æØf���`IDATxÚíÁ À C—Äÿÿæe¶C-žv3V*¼GÁ^'«¨x m ©Q€tÂOß"Sã<£p}¼aTx1þtSU!\„š ®L€'HÍ/Ä«=({ œí®{~òOn© @x2Så����IEND®B`‚IMAGE 843 ./arch/skills/Skill_Tools/fishing_pole.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÈPLTEÿ�ÿ>0À¨•½®š¾¯›À§•L3 P7$ZZZ‹r_—~kœy333¥–‚¨™…¨™†©~«’²£¹ª—º«—»¬˜»­™¼£‘¼­™B)J1À§”¥ŒyC*O6$OOOA(R9'RC/S:'T;(T;)T<)U<*UUUVG4Y@-D+\C0_P<`G4aH6bI6hO<iP>mTAmTBmUBnUBnnnpWDsZGt[Ht[IufRv]KvgSx_My`N{bO|cPƒjX…lY†wd‡n[‡xd‰zfŠq^D5"ŒŒŒvdwe’yf“zg”{h”{iE,˜‰u™n›‚p›ƒp›ŒxœƒpE6"œŽz„q…rŽzž…rž…sŸ} ‡u ‘}¡ˆv¢‰v¢‰w¢“£Šw£”€£•¤‹y¤•‚F-F.¥–ƒ¦{¦—ƒ§Ž{§Ž|§˜…§™…¨|F8$G.©}G.ª‘~ª‘ª’GGG«’€«œˆ¬“°¡±¢ŽH/³š‡·¨•I0¹«—I:&º«˜I:'>>>K2 B3¼®š½¤‘½¤’L=)½¯›¾¥“M4"M5"N?+NNNerë���tRNS�@æØf��1IDATÕÁS{B�àï ײkl¶mÛ¶mÛ¶ÿîjíyêìn{_à¡ç&´E·ª¶(ð>ì&€}³ÔÚ€PÁí¥•�çXÚØI€GÀÓ÷ÃÃp™¯Êp® ¸Ñ~Ø8+tnTâáU5VùxÏ�(xQàQ`Õ˜îÁ0Âã½QÞ Ð:¬Ú[pbSg^sá¡R/Ý€¡DP8™V›J|îƒáLl­¤Ã—4S †­ØAŽ&APxÝÞ“Ü!§ƒvMÅX#dëäX–$%Ãöƒ¦Hgw‰Æ‹.à_KBó¹Xí‚Á!eRÓg…oùæÇÞ´yø·,ß%¥&[&·êc d³Ã|Ô–2a“}…büʆ?ô÷ã/ÝÃíô����IEND®B`‚IMAGE 292 ./arch/skills/Skill_Tools/fishing_pole2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE¡¡¡aaaÁq8ààà���@@@‚B'¿¿¿ÿ��ÿÿÿBjn���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ :å<¯°���|IDAT(ÏÅŽ;€0 CÍPU0¥'á ÂÀ5XY9%ýAKÌd‰l½Ä¾Æù‘"›(œ+:ï—OËL—Š4ë¨@K�Ž]¸N   1%"ô“ pÞòDù ±yÕA¨C2ê¡è °–�l�àˆ¿�ÌÀ¾aè9¼ý–Ã����IEND®B`‚IMAGE 152 ./arch/inorganic/fix_mercury.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���=IDATxÚí’1 � ÄÌýÿÑN¢`1³hAÚ¶Ï+¥ãø`ñáô¿b…éï)às<°Mê)¼Gç§t*ÍÏ����IEND®B`‚IMAGE 154 ./arch/inorganic/fix_mercury.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���?IDATxÚí’1 �0Äÿÿè]ÅÌ¥àrxŠº>2)0ÑÓ™æ#ª©þ$ép‡ƒïqtÐKé+¼ÇïBx’œ.Ë����IEND®B`‚IMAGE 491 ./arch/floor/flagstone.111 ‰PNG  ��� IHDR��� ��� ����V%(��²IDAT8ËM’!–Ã0C}×AÐTÐp ¨¡ ¡h``ai°tA’6FzÏ?rF£æ——–zï}ÁÎX&±Im:þø“ÎŽ ¥N@E{P»›m;JС}’ç°V9'`¿HŽßÙö¡ù§i߀J¶­ãœ¬z� uyÕ%üWz�¼§'æÐý!]—×äø½àå[y®^±Ô(Ï»z#+YõpxM6`ªzïó~lŠ Ò®½÷Þ{b;«ˆ¯Ñ$;Z½w²®×N³•UÐ5Å'�6l�‹$+Iª uYÔÐ’‘Ø�‚�éÆ_N‡ßó=÷…M»¤(ºþÁ>sŠsF²;¶?~íZÝwC3E9^¶ã?·Øv<îÑ’ìuêÌÆŠ“Ö}_¬[² lð=9g#yÊíõÒ~ˆ$ ‚U6€cTQRsâøÕ;6ìZ"0´´‹~zíÚ¿éðÇ¡G厂œ³¼Óq¼ÈÏNže¾ªµ¼üÇ»“jyâ ^úFƲ[朹;™ŒAÍ;¦Á•F›ï°“dO’3R‚µì½w'£ÈN’¤«H@ÿR>‡•âù����IEND®B`‚IMAGE 258 ./arch/wall/flagstone/flagstone_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���•IDATxÚµ“AŽ1Cw“Êÿ_œƒsËÀH» 7Ë%p—ðã»8õ9ýà¿�ÀÂÀ¯HßÚ�€Ê kŸ©\@£Ió e2�FÉ \:hAærÔô��<OƒÙA Jê)CÅDrF¹uЋ\i¢äDðuƒ¶íeBy V`ppRš”².³¤s;¾ù’oà ˜ œE=E����IEND®B`‚IMAGE 297 ./arch/wall/flagstone/flagstone_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����þ¿Êÿÿÿ¿¿¿f¸���tRNS�@æØf���¹IDATxÚ}‘AÄ0[chøÿ‡WÎ&7À׌Ëyn‘ÿ vž› D� ¯ê}†íÏkÀ`4(™ßÔAŠ5wH`ê°Œ(Öu8-áƒaìî@Ò¼5h§7¡÷nI@…a-$  W�wÁ-0½wÖÔA‘È£6¤Jº xа; ¡ro�mÐV2€·<LZÃÙàT,w ËÐŽ0ýR œgƒæ_€àÞ`��Î@xñÏ?½ˆ ]¬Š €����IEND®B`‚IMAGE 322 ./arch/wall/flagstone/flagstone_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ÏIDATxÚÍRÑà T<Fáÿ?x˜¶YŸ–ìÒx‚W¸bÛŸAî°ÿZ ‚Ó�ËåÙëÓJÐ!d9ÙE èf¦çZÒÍá Õ³ O, x<³…½3‘°„f…ê�/¾eW«C'‡2ø2ƒð ¨f09×H…CtŠ/ˆ·<HO³‹djuO¢Ùa3Ôà$î hPcô´¸ÏRsmˆ)Û5Ö g_÷PXæ«£ž¶6dÉM| è¯Á€oØ™qþ™YNhò€ö„7϶C èËL����IEND®B`‚IMAGE 351 ./arch/wall/flagstone/flagstone_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTE4V-ŠV¯/_��c2�1�cD���þ¿Êÿÿÿ¿¿¿úá 2���tRNS�@æØf���éIDATx^]1jëPµ‡@êCdgç×1Ƹ¼ŒØDÊÛÃïܾîvÑl.ØW²§†sš3ƒ®”Ïf¢ˆðr&zSo ´31Ó• YHþYÎDob¼) jgbð¾+DûºÛöûmnÈæ¨ SŽÃL|·62S;Áx}ÑÆÀé¯¨í»¡^‹^t E Iéy-I†Ü¾ujÞ ¨‘Ä å-;U’²—NbœŠx)äh·¦ÚÂÓKiC5ÿSô’ò÷”â(ɶ§bõ¸zzÛlWÿR”}I†’bFsÏ/¼¡Ç_’ú����IEND®B`‚IMAGE 254 ./arch/wall/flagstone/flagstone_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1����þ¿Êÿÿÿ¿¿¿f¸���tRNS�@æØf���ŽIDAT(Sޱ Ã0 Ui€Œ@G~ Òf‚À–~‡lš•¹mz–ayø?~)×U’ï2Ý€FSÀ¾$ðʉmPiw{¬¨ƒÏ”qð€&¸!–¾³´ò¦•º  L¾¡•Y:NI§‡8z¤ÍàóÒ0oúVwô¼ƒ|š:àšpóËñ5¥TFÄw����IEND®B`‚IMAGE 249 ./arch/wall/flagstone/flagstone_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V��c2�1����þ¿Êÿÿÿ¿¿¿®—<���tRNS�@æØf���ŒIDATx^}‘A 1 ÷ j· g•8ùC°{õ¥Ñ³Ka±(õшa,oßé”ôã¹]3 ä¾,‚:k‚JÝ—E§h ðmŒœÆ*c –�n+€vKF÷ ¨ý¯)F@<ìc�,bCæ2¦¬Œ˜Y[ï3UL½Ü#WFó‚º_¿ú8ýsY ®Ä/SÐuÒ����IEND®B`‚IMAGE 311 ./arch/wall/flagstone/flagstone_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ÄIDATxÚÍQÂ0 C™›-Ô÷?0Ä…¨ÙŠøB"jUU~rœÜþ´|®•ükÀݾ�;v)»[œ«¿¡y<„êڀáá�£r¸�s½ä å  s€¯ ä%bï退Î; 3âÃóøžÂB¯š=3lj@à=£tØÐÖ›t‡ôÜ$È^™Sl5‡÷ ˆÀ˜ÂÜy^ˆâ€ÙA@f–˜L@fpkÇþ¼Å¡S·ùT5C†\ ma³ò�\h »bne¹����IEND®B`‚IMAGE 334 ./arch/wall/flagstone/flagstone_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ÛIDATx^U‘1nÃ@ ý† •ËŒ [ð ¸ÉÒç¬Ãý!?°JV¹}eD“:èX.F{CêàS(é½ÖŸCN…Œ§]0SËHP¦)ƒì >Ùþ2ÈkA Ó.(lÂHx«µÌ_·è� µô@'Üã¼÷ô ¨ BSL©N<¨iGÌÑÑú.Þq…�]ìJ-AèéQΔE‡ÂãJ1Ù³ã"ˆf $J3¹‡ØM¿+ñÑ_h¾ ¥m[ %·}Ó#·_/·~e¼ºhãÕAä¿ýbƒ‘mØÒø¡����IEND®B`‚IMAGE 304 ./arch/wall/flagstone/flagstone_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���½IDATxÚÍ“mƒ „µ/ëàÿÿàYŽÃÆ,s½ öá¤5nOPÜè€ù·ž#ù)�}h®ŒÐ·>6mr ^ÑA�€$väé9bë&0Ž0Õ¤æÍ' 8&¼)ø‘ ÈqǪ‚�L®ÚƒÀ²¦Ì*¯)XsŠ `b‰§�´%ÒÀ*À&–Vi\ؤ2=€J„Ü7€øi™‹Ä ”q‹&R榯ÝÔLs‹0 KE·Öö·>‚ß»·Ñ“É����IEND®B`‚IMAGE 292 ./arch/wall/flagstone/flagstone_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����ÿÿÿ¿¿¿Œuà���tRNS�@æØf���·IDATxÚ½“áƒ0„í÷â…BEK·evÑœÉ}¹ÔcJê‚ ‹D�K¡à=@–ŸÔz�r‰ÀÔ¨KŠþ ß.w‭ž€…{R¨ú 1 Ù AÌ€<φ&ˆ~�¬ Ä �Ï.Ï8Ç´‚!3®@ÝA9Ò=_¦8-Þdr7²¼4$€þJ‰·@D\϶ïØó \*;pÙà·Pç P>ÕoÀÏz’ n“­Pþ����IEND®B`‚IMAGE 296 ./arch/wall/flagstone/flagstone_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���µIDATxÚÍRAÃ0c ´%ÿð6ŒAU¥E»ÕªjpPä 8x„@íøùɶÀW0É\—`bí3O—TXÀ!ˆ]�Y!r”]ðÀ”ó|÷Œ[àØÖNi3¶}Í£ŠÜè¡jôÙŒVhs+»Õ Ðú>S0>ïû’رӅ ˜(xþ¥gT­{Ðçœ!Aó(È9t1x&‹šŽý¥C“,Bµ¡ŸÕnÊGk „ÿ½êÞ0„tÞ:�¼����IEND®B`‚IMAGE 329 ./arch/wall/flagstone/flagstone_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ÖIDATxÚ½’í à EcŒµæýx˜xŠ…ÑÂ~ìÒ²|œ]ïd‚zSOi è: U×ö°¹a `¬¨6+Vû.€]ÿ¬åS›e‘ÑMÀCñ9”þ<ûÓ=€Éq£Q Ãqp挊³ìq Uö«&&€æ.+´ê‡{ˆÈ08FÉ(÷;ÐltR’Ãq:�7ÉW7ƒå:.`?àÎÀW.É¡0Àát‰=‚›J>~…"Ê€²w±fõ(ë­‡U+óíkÒ¤oj?ý«ßô‹´ì‘_µá����IEND®B`‚IMAGE 294 ./arch/wall/flagstone/flagstone_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���ÿÿÿ¿¿¿=ï!“���tRNS�@æØf���¶IDATxÚÍ’Ûà CWÇYÊÿÿðf7RÞ¡FmÆF}Ü¡bW·è?+œ+€Rh£f/@Ó÷³F£sUh"€/ "VRÈsŒ@M!•$á|$23€]�МTm—F$Êšâœ6é#*0³ºe/÷[1ˆ hn.5V@ƒ`¾¬  €Dë=Œ¹ÂåóêTÁŽVtÚ³¯Ãˆ l~Z»…o† …/(�ø÷ðË…b@ÕµŸ����IEND®B`‚IMAGE 324 ./arch/wall/flagstone/flagstone_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ÑIDATx^Ž1JAE÷ ²'¨¡áç‹`æ ƒŒ72ݾƒ¡™ô;¥4îTk꣢Çç×ß5ÎRÎ/»+Ùp¿Ä*Êß„Þ]ÃU䯽=îoCÿëÓòs›°„p¨ˆ2?o  ˆeì ª(Ç¡wPT¾¦_Œ4Bn6ߌ]ÈÌ^-õŽYâK…²¿#…@ÕDì¨.ü(R|Ž ]@šˆ„pü`ò­̆ f±ÔÛ,):–ù4Ÿ&ú—ÜPi;º8Ë{¢ñ&“];¾+ü¢×æì+����IEND®B`‚IMAGE 355 ./arch/wall/flagstone/flagstone_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf���ðIDATxÚÍPAŽ1 ÊØ¸iýÿoŒíöZ:ÒtlB€õ Øÿà;ˆëÙmf¶ìz4¢IÌ[·!dÏ?gÅæ’W¦²M0¸EêK Ãh³ $ðL{BÝã6šL‘&—°¹‚ƒ -23oBK«‡Þc›¬SiBÒd)1ûêtc3PWw“<©˜“5œBñ«Iæ¥�ºži²f"ôÞ£öò xüPQ9)dÁ,Æ—Ó$ ï\Üw8µ—‚-N‰‘‚ŠªßBÀ_çyœ¤R8ž}Ʊ¶4Ø=çßMPãûÆh« áÞü�Ê€Œ %=É����IEND®B`‚IMAGE 385 ./arch/wall/flagstone/flagstone_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf��IDATx^‘ÁJÃ@Eçj¿àµ¥x—BÜ™„®×u#¸Mè²;gùÀÅܯô¾I ºõ’—ÃÉË I‘#Hns~Ks²Ñ±ùF°ü5pr¬g#÷ö¸¼Í-—üŒOÃt u$»D`¯#Hט„›�NV‚¥ÉùÕà YÀó oA™ V;U]Â(ßÝVK¥&39Æm·ÊùÚQL¢õ‹Øad�hÞMt  0”‘Zº@ñä¬dYÞ1 c+†ê vLM«ƒ¾CϨ ðkÓ‘­Ù€Zh(I>}epíØ“§Dš­?u[5ãœÌ£0õ�ÒÐúCÇö–ñjRŽ D–Žp3ˆ|À`ó¿ýrïÀ ÿrJœ����IEND®B`‚IMAGE 2423 ./arch/floor/smooth/flagstone_S.111 ‰PNG  ��� IHDR������@���[a?���ZPLTE���„„„sssœœœ­­­½½½cccttt{{{”””ŒŒŒµµµ¥¥¥ÆÆÆ~~~ÎÎÎççç÷÷÷ÖÖÖÞÞÞgggyyyhhhrrrmmmffflllwwwptnË���tRNS�@æØf��ËIDATx^ìœÙr;DY+€^¸H²}ï,ÿÿ›ƒÆ¢&A‚�Äéa¦ü‚púdU EÛAûÐ*~ã™f²-Ý×ä�Á‚Ed¢‰P‰ZzÍ÷ß_ê·ýë:(hÒ¿-?åÿG#ÿ?‡óWú·jaá3‹}®Ÿe3Vtd‘0¯‚èVnéÕHz­ÿßIïODìËý[ù^ËÄ8’ßð+Ù¿U¼Õ™ìS]HÜf|¢u$âeb>s,-½æ‹õZ“ôáþJ—ÀØ¢3ßKù‘p$¿ úëùÛzß°Øç:¿ nÆÂïi#N´\hanéõ ×ú›¤÷§H-ú7ó}=¿a$¿)øÁü羟?Ôó/�Ÿ€‚1""³[˜[zÍ£^_€¤ö%Nº-ú·òÁ—ó ’H~ôó³@ÿÏÿõJ»æh<tÙN³^_€¨× Ë¿ÔE4ËsÑ¿¾–_$¼(Ý®žj÷Ïüb~¨é™ñúë @Ηˆ�…ƒ(2Ë41±ââ8Ö¦çQ0ˆ\ž,@Ðë ôy–§þEQ…¼�±£nxÏï% ÷Ÿ7@ÓM >ìo’Þ—¿è¿û xû2¿/Õ¨D—×�c©âçIqšâAsX JG`—vqQÔª¯xž,@Ò­©ùg~×Õ@Pgô¾ü™‡áü¾({ :Fv àÞÐäùûòý=†x®ókC=«J"ªJ0¼�ãU¾ñÌùÄ‹j•Cñúl]u’~P{®ùg>ë6¸Ä˜gK›Fó#}Æܪ˜}aºòøçÆ 0-°çWUçK¬[Qä[Ò\€6/âö rœ‹´ÎáÆ½;[ëo’~8عæŸù¤zÀvý–‚>:?ŒæÇϼˆmÀ"ÇêÌ_ˆya÷üª¯Io�'"?Øâgw}AhÃÙ‘>áPxáyZ“tØÒ?v>êW`-%}x~Îï\�±0ÂsÞ€îü÷…€D×ùõ®Soþ¢":«¹“wÖÚ%_m¼þãð,jýMÒ7À–þñ´óA¿¦)éãóÃX~æï{5åüíüµ©é†¿Ã5ëí�D+­hó¾Ò§5ð};û¡š à�kýMÒ`oý‘C]óå@Ö¿2ÿà„è½æ9Íß—¿:ö-_êÔ›ÿ@Ä,ç¹1ƒ§ÙZ à⻩ò;ÛÖJ¡Ì2;¤Z“ôØkˆ/Ö¨çþ…@Ò¿2?Œäç­<ß4?½Äùòß—)ó—±²ÞùИ¿ÉŸœ2³mpNœsèrÿšž�»ûCúÜpÍŸån’þ…ùO Ãù{î_/iöùëù{>¿)òã­ŒÙÿ»ÐD31 ²"¶¸D�Îýkzìîá¢nyW@ÖÇç?1)Œæ·MÀLŽõöhþ¿ŠûmÍ_N¼ó‚F€NˆøÄïËû²Îê«É! Öú›¤öÓ•V¢[ Èúðüz"ï£ù›÷O«2¿)â·æÇ‚×B×Ì·Š¨±�}<l6~±¨¶9>óc­¿IúNØè/hÝÚôñÃó“Ìß{ÿ|7ÿãÈzÕ°àK2ß*â ¥ÊfÀÎOÏ®õ7I¿Blð䕹“ž?ûÃX~ûüþ£}~g ë5Ã’/;jæ[%o,@“ç ÷ ÇCïˆ,µþ&é׌ ŒCÏÎÜÉοûÃXþ§÷í¯ÄÅü?÷û|~SòeKÍ|«À ‹°­Èü¤@ùþµ‹CÞ0€Z“ôÈzÆ9pŽ™GøöüÙs÷l7oë=Œð•¿s1è_¤:¿)y½kJ‰oÕ„Š<ƒáʼªž'¢æë¿|NÀ©Öß$ý–²â(ˆ¯¾&=½?ÿ´<³ýóüïJÿ”oç·áŸÍoÚù˜øV½½Ñz¢êþöðªtæu à°“û˜œƒ Qî_Ó Ì:ëÓ¦S›ïÌ¿‚‡0ú§ èå™áÏã0+oUúçùwþøIìú£ùòñÁTõÖ¿€%|\¶¹‹§33¯¤Ä¤½Üâ…}åþ5½ä¬âD3­€Hm¾'¿xÞ¢âê³ÿ&Àaˆ7¾JÀHˆYúçù3Ϭx<À\ë¥Û_~ó?”þÝßze˜‚ǪJÚÍ!J jýMÒï@Ktâ3³�µùß&cŽÇxþ—9þòÇð‰_-ÒJÂï‚»¿ÌëDD"ñ¼°aø;Þ\ׯ_¿ßÂý#y\éøË×^Îÿ„§Ãÿð‹  ´ŸË÷_ëo’~OÚ………× ©Íç:!ÒeÝ@KÖ‰Ö+Ý!±$=û{æ>ÑoTÕÛ|Ñ”ÿæÐçÆ$ýj™gžùÔæs àZ|ué·:ízòGz¸LU½ÉýÇùoùJX¢‡±XUéo’þˆµZ°Íg] ?¥„iÿ-ºLôSý¿g$¶$â…Ÿ.@ÒÂ6…vM>ëPdâcæ¿C—‰~°ÿ¡U²,ËþíñÏ‹ƒAaæYjýMÒÓ6d Åg=¼0C s>ƒ.“Òö?´ hÃ_øN 8unÜ�·d€Pëo’^ÁíA›Ïº³Èì™ ÀŠ/ü·è“N?Ø¿}NÁjEîáõ+üGȇTëÿ;é5ÞöñY÷Å"“g,„âÿ½óÿÀÃpÙ럎Uýgûÿ¿ÿÚ9w† *ÊÆ8?ÈýO›&F•µaá!3í#ƒåÿþà¶À÷é~î{÷é[úE{Î~ܧ{â{÷é[ÞÏùxæ{÷éÛj?ÞÇ=õ½ûôm±Ï}ï>}[ëGÁ'¾GŸ¾�����������������€Mígb¿©}÷ý±Ÿ­×úm¨}÷ýµŸ=5>æSûÞû¿!öÓ' ÆÇ|jßzÿq¿®ñÇý|¶¡ó©}çýÇýºÆÇý|²¡ó©}óýûUéã~þ|C5>æSû/5¯Á=Æ]����IEND®B`‚IMAGE 334 ./arch/wall/flagstone/flagstone_win1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���¿¿¿ÿÿÿ������1�-ŠVc2cD¿¿¿þ¿ÊÿÿÿÆú£ï���tRNS����³“fš���ÏIDATxÚÍ’ëƒ …+« éÎû¿îZZJŒÉÌþyP 9Ÿ-é â=h•>Ôod€ EœóÄç1@pH”f¾ÊL� ^Ö[cV® hùP 2t#ºûåä«á€É*DË ž:€Î[6u½Â\CúeÔY âÀ±ƒØ | yP|nl½`ì}ži· ð/'p•ÀyzÞB Ñ“'Z׸8ËàžKœ òÜ"£D¤VÛ~¼ÛÞ"T}-ìMgGmĮʩúç_}§/òûñ^Ê����IEND®B`‚IMAGE 369 ./arch/planes/fire/flamingtower.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE������uL�²w�âK)ä_*çn&ìð¹�üò�?Úæ���tRNS�@æØf��IDATxÚí’Aƒ0 3 [äÿ®*Ê-‚CO©‡œvQÇã_ßV=ñªG¡œyUØo%òn’“I@‹ª‚ |ã›�³’pò®˜…&QªÔ'pVÌS“Àæ| î�\œ1Â\š"² á$xUؤ—pTnÒ ïœ?D»=(¡ æùŠ$0™FIÈ<œÑÏÈp‚* úÝ‚—–„ÀGáæfðÖ“faÎÃÂrNŹ^iÒ/ž[džÉù°¾C]œ@ 8,<ðxGŠï§¹„  v ) >Ò Ž`ÁÜÂXÅ-T ºY©ömÓKÆïÖ ˆ6 w²ß6����IEND®B`‚IMAGE 378 ./arch/planes/fire/flamingtower.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE������uL�²w�âK)ä_*çn&ìð¹�üò�?Úæ���tRNS�@æØf�� IDATxÚí’AŽÃ0 „”ìÿ¸´ìILÏ ”@O3e1ã—ï!ß)ÁWŽˆ· Fd’ž#ú~æZË6ˆÍà ‘+°‚ŒÏË€ã<‚åbÅí•H><LÏ:£¸�­pxê¶‚ø>Sm5zA| …]ƒ*¬ ^tCO$ÍJ%DÏAïlÿ^<4O³9Á`œ&ÜŽ€ø\VåUÀŸ0ì‘Åg‚¾¡ ¼âz ×W¾Ä³ï÷x¸Rœl„zÿ) Íg:÷Ú!çB÷HsÁ-¸!Å«@h„âvÇ:á-!³/€ J°W·[AÜ(!~½ ÷‚Ãå¾®{–`#!ÆÿÍoà :U�°����IEND®B`‚IMAGE 370 ./arch/planes/fire/flamingtower.x13 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE������uL�²w�âK)çn&îð¹�üò�’¬š���tRNS�@æØf��IDATxÚå’AnÄ0 ˜Tôÿw)Áµ×ªëLHÙñúïƒf g|>HzG 0‚ŽŸÏcL`D´BE|`H‚€ß1Jðá >�ï—€Ž?*°Bdgj…¶‚¬‚¬†>B#.ÃÞᯰŒƒ�päëáC�¾Î‡§¤%Ø÷^d0$<çáIx Ȇ.TÙ � oq.à@@\BwJñÈûÞ™ìñ¼_Â]�ÅsßÙs0$ˆ›×ÎSà9µ¡+8wxÏ'À¼ƒ§À Øjp¿±¸Ð µa â½px:!B¼V;â×µÓ ”°%,70 뺮,<(ë‹çÞ` O­·X-����IEND®B`‚IMAGE 367 ./arch/planes/fire/flamingtower.x14 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE������uL�²w�Ø{VâK)ä_*ìð¹�üò�iI) ���tRNS�@æØf���ÿIDATxÚí”A Ã0 CìÕZÿÿp%aȡڤÐS¡:f¼X²Èñ¯o O¸?Œ4 8ŠS†)€É Œ`p'e’;e�/ç­°R€6ׂûH€ ãA]q¢Ù$Š? «ïanAð YäJ.‚UºÃ„ä„»"  _a<¿3µî,aDÀ¹ ƒˆO0NBpÐ÷*ñ^0ý°8ÍúÝs\7xç¸øòà½@×H^#ÜçsS{`ñÕ F¯K@×cæ§ ÚܹÌ:Ž‚‹ê¾ØÏÔšä–”`úwp֔޶\”€€CÕ •a¶^é òºšh����IEND®B`‚IMAGE 391 ./arch/light/flint_and_steel.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���gAMA��± üa���bKGD�ÿ‡Ì¿��� pHYs�� �� �šœ���tIMEÚ $P5û��IDATHÇí•1NÄ0EŸ£- Qq JJäL NÃá”[¦H”3ÐRRnE»+>cbg#¥Ùb=Mleþ3Î(Nl[W‹(Th#A·àÇÁ“É’\.uZ¨£vÓ¿¸¥w«J˜2˜ŽTTT™SìÒ•5±¦]|é´þGÓ eˆ~mÆ>¼r÷€µ=†è~À'ÓL ]Hÿ†dzVÀtÏ3ðFÅgÖ=+`z ¤¤¡ãcÁ=#`z èÀ¢{òLOñ¹e`úM®"hƒ‹Ç3Ÿ‹³ž=%ûP{sf6g½€÷X{j6'K‰¨õ¢ZãΩ—ÈEæ¸^H™†»þ™.@ฯ‹ øûƶ����IEND®B`‚IMAGE 203 ./arch/spell/Cone/flowers.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥çÿç)ŒR���ÿ��Ö‡9¾���tRNS�@æØf���jIDATxÚÕ1Ä@ Éàÿ¿9qâ§Hs‡‹eÖúK¹ÞòzËËö ´?�òä+Ò#@Hž5@L•ðÿRQ:×­��r¥=Ó .ÏûVRÜ6à¸+8/ ‡ñ˜�¶%“}�¬ŸÕ ¿b•»Ý����IEND®B`‚IMAGE 207 ./arch/monster/insect/ant/fly_ant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²"" R-���ÿÿÿ�‹‹߈Å���tRNS�@æØf���kIDATxÚåAÀ ÃhCÿÿå…LÚe4œ§q²±Äøæ°æxM¯€|Ö,´qfÜ{S@‘o à¹â(qlû™*¨¾ç4@Ž†ÓˆÈnŒª˜!¹è%,#”鸾š!zx­Àkö^úç.Ç¥òzÕê¥����IEND®B`‚IMAGE 185 ./arch/monster/insect/ant/fly_ant.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²"" R-���ÿÿÿ�‹‹߈Å���tRNS�@æØf���UIDATxÚíÍ1�!у÷¿ò.Ñí né$Øð"ºýâX¸oöo|UûƈÁ j!sRDŠþJ/„Àm ê½°ùGò™Wz°j€rPћЭìÂænø“:&����IEND®B`‚IMAGE 207 ./arch/monster/insect/ant/fly_ant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²"" R-���ÿÿÿ�‹‹߈Å���tRNS�@æØf���kIDATxÚå1À0†ÿ¹a«L»Vu"1ÜÅ(ëkÁÎŽ„ä4´ÇH膹ц®8]ž»‚2Ååžjpö�ä4¤ânF. gŒCAsÓcÛ’{}‘w–š· BôJÐ!üc.Êòxj ����IEND®B`‚IMAGE 184 ./arch/monster/insect/ant/fly_ant.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²"" R-���ÿÿÿ�‹‹߈Å���tRNS�@æØf���TIDATxÚí1�! ÃÒþÿåSl…åĆ»Ðã.ˆ_^¶*XØeA£Ó['Ò»ô-=ün_LQã>P]ÀØO·™˜~€ó9ä  GÅÅnÔçt ����IEND®B`‚IMAGE 327 ./arch/ground/fog.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE1RÿÿÿçççÆÆÆ¥¥¥{{{Æïg8���tRNS�@æØf���ãIDAT5Á eW CÁc'�¬"°Á…ËMÿ“ÚlÀ|ðh(i9f5¶ec3üäzåîhûdëg° ®mÂkÖ–ÀbhwvLÂ5<l¯`ŸŽè]Ã&?ÿØFkhW’éç þϬm,è‡6ïÚkÇØÖ¬,hߣŸ$×bÉ–% mà•ÏŠÝšG×¶à xgL¨-hiõ±Û�¶¸¦Öšöݽä]8,Éš‘ǰ¦!!ɽäX€‘€r@Þ%¼ðŒdËf€ýßq1¶1Ã�á§-Pà_A¼Ìü¤����IEND®B`‚IMAGE 317 ./arch/ground/fog.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡ààà¿¿¿ÿÿÿ©,Âo���tRNS�@æØf���ÙIDAT%ÁAa 1ÁYù‚ A8þhâÍU±ÿ$€#ЃxÜ$m!…ŸsŽIh›–{oÃ"alK6’Ù”ÏMŸÉsðÈ™'dï¦å¦€õŸgl`›§mvû ÇFHÂ#Hø“Ï ¡Äòtú É2›‡¤ íÉ–,Í�}h“n°a¬™1>½d$n�ÍŒÈC$³Íã”ë঑Éî¥m H²|Ž%XHÿlÒ-z°ùXäö^ÊfÎчá !—g@ øö±bã½{����IEND®B`‚IMAGE 490 ./arch/ground/fog_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE1Ø{{{¡¡¡¥¥¥¿¿¿ÆÆÆàààçççÿÿÿÃN6­���tRNS�@æØf��zIDATÁ±ŠÛ@àŸÈÑÌ<@^!µ«Ãîæ0êT„Ã× ®0é¦0b¶[fP7Ÿw÷msÉ÷aú‰”YUªÀ„ÊAN%;ô7éù`ÉjTÆÀ·Ï×û9Ó8 p÷�ZkV›/arÆmóÒdöÒ0¥�vÌÇQ›>á.Ý÷^ºÒdÈEf0ë¬Óþ¢ñÀQÀFÿùxZ› ÀTõKÔj—©=jÀH„)»{W›ñ?ýÍÌô€ìžÜËïW÷à´[L-=%Eöë•<»{”2ú†KJfb5I<÷ ¢Ö¨4ʹˆÌ+€ˆGÃãqKZ{>(¶6cêºNp^ðîùºº»d>$ {·®$)%cõ"˜ªÙ¢"ã֜ҭB¼¸ ü×Ð"'°$±ôöväg }0r¡Ò¨}~Ž×RÆL;hkñ|OÚÞät†HÌC„\·¨-‹_ŽŽ~RÌ _×ûÝ¿œqš!½Á”Í`Xö=€?�Á³;à/Sª§Y—Æv����IEND®B`‚IMAGE 209 ./arch/food/food.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$Í…? R-���d3‚B'J"¸¿���tRNS�@æØf���gIDATxÚíÑ1À P#¤ÞÿÆÛ5qíЬ?>x2þ¸¿’‡B€Ö@Íí¤áv©ÍÒÉÙ¼<7+Ÿý<Š ÇÊŠöbT”ž7àñ4±Ý­  ƒïpŸØ¤;aq»®37Ž÷,ì¥Î����IEND®B`‚IMAGE 179 ./arch/flesh/human/foot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷Î¥R)���÷çŒÿ��"K w���tRNS�@æØf���RIDATxÚí‘1À@îÿsA¨KUr¸Z™°7ÖÁ°ÑIà‚ˆÚìH9Ù`ç ¼Gx? Œ @&€ Ù@YØ�¡„âí Zö™äóCëgæŠÙð·î����IEND®B`‚IMAGE 1291 ./arch/road/footbridge/footbridge_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��°PLTE���Ø·‚®}.†Z›hŠ]—e˜ešhˆ[žj j¢l£Šb¤n¦s$§t$§w,¨o¨w+©p¬w&­w&„Y®}/¯|,²|(¶ƒ0€V´.®s®t®}-~U‹^¯w_¯|-°|+žh³|(³}'´-§n´/“b¶„2·€*Ì­zа|Ô³Š\¤r$®y'¨s…Xj©w*ªq¸)º…0º†1¼„+À‹6ätƧvɪx§r¬x'a‚W±|*º….¤l n¼„*oM½ p¢n¯z'®u¶x®w&cC°•i·šmkJkKnM_@®všn'pOœhqPo'¯wsRtS|TdB r)VdF¢o²})¢s(€W³}(´~)eFƒYfFµ˜l¥u)¶€,¶‚.¦n¦o·}fFfG§o¹„.†[‡\gG‰]hH¨u$¾‰4¿†,À‡,Àˆ1hHÀ¢rÁˆ-hH©tiJ`«w&ajJ�+•���tRNS�@æØf�� IDATx^M’c³-9@³“´mÛ¸¶ŸÍ±mÛö_žÝïÖTÍʇN太×Y½ÉûmHФ€QÒ ’’‚”<ÿð³wïä%J!Ë<êÑx2™dÙ‡5êy@i–ÁdŸŒ½5h6/ëÈÚñ³Ÿ4›Íß×Ö.C™âŒEà\ƒ(#’¤i\åx Í4©×ˆ1fÔ#Ahu)¬‹¬¡(†BÈço‡ØÛ¬Õ¼Jk›¥J ·O ]]MÛÛÛizI{½4M{Ð;9Iá"ÅCp]Ó\øÕ›®ï›¦é–è&¸º®w¥¹$qù@娧«ª(ŠcD<Q{Aˆ/¼üUÃÑ;o|ù ‹¢¨žç-ÁÀ`yúê?ß~MþÃó°åàâE(’¤y‚óÌæ&xŽã`ÌNïF`YaØg–eÛ`¦°Šî°š–Ð÷}ý©·üÇQÒ÷ï¼0¼6D÷k:ª—¿¢§¼qýºòsLM»ÒBÜØà éª,jš¢(9NOåò¼$;3°4J³?[ AÀ“sž»ÿó§/Ä: ÝÞ)P<ÙEFErÚÓ�Â~‚„¡eYA/lÛ²`eŲ© >6óêHÕ­ê&뀒œçºz$ËâN„,г1F”dËYËh5NÿáTX2…af#BŒˆ O>øí•;0ø ƒ . :;YVþ‹«¼ýAè.ȳÛßÙ¶};DÃÞöO»; 0^³gaßakk eÝr6üðÍ~€ßÂZ¿ð‚ æMߟ©ªŠ²\ÃÒ²_©VÁÅÖejYž«º¦½Ç"ÕS”ëv?Òæ™aêÈh(Ë¥AþÏÙúú]üì#$v`2Ù߇8ƈã˜Ö(ñdñ}–Q ”ðx {L§¯=â­)îöö~…¯\™ÂSaXV‡CMâÒQHsÝêÑ­[•ÊyêC‰sñH’¤±$u»Ýò‰~s­{éNu9׈ò:®ü Éóœ±_˜¢¬ß]'ÿ¥Ùsó‡7ƒ����IEND®B`‚IMAGE 1299 ./arch/road/footbridge/footbridge_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÝPLTE���Ø·‚¢l®}.†ZŠ]—e˜ešh›hžj j£Šb¤n¦s$§t$¨o¨w+¬w&­w&„Y¯|,²|(´.¶ƒ0“b‹^ˆ[®}-§w,¯wnL¯|-°|+~U³|(³}'´-©p´/®tÌ­zа|Ô³_¤r$fF®}/§n§r€Vjžh¨shHa©w*ªq¶„2¸)º…0º†1ät¬x'Š\®y'º….nM½ pcC¯z'oM±|*qPrQgG‚WdD…X·šm niJ®u®w&¢nlKmLfGqOšn'gHhH‰]hGVfGyV!|T§odF€WdF¨u$ƒYhI©thJiH«w&†[‡\iI®siIiJ®vfEjJjJ`a¯wkJkJbBfFcB°•ibAfGœhoM³}(o'pNbBµ˜l¶€,¶‚.dEqR·} r)rOgH¢o¢s(¼„+tS¿†,Àˆ1À‹6tSƧvɪxxS ¥u)¦n¦o3¹)‰���tRNS�@æØf��äIDATx^]у¯4Yðª{oÛÆØ|´ñÙ¶Ö¶m󮧼53»›¼ï×IwºS79} þ¬b”D v¢Z«Áÿ~<øÞ[‡|Í9¦i©„÷øLD’ÉÀ•›½ $ó–°\ž;‡ß‘¥õõõ4ý¼È=9OS\ÿJ™Œš¦d(«dÊåòcKKçæ°Lú�õº !Ìz(I¹¤(†¡éPzA T–§ÃD]„‘Ó%L‘ fàú$ì7ÎÀSŠYuã½=œñV‹Eo„óâj7°±³ãO ÌÌ¢ëZñ`cc#Ž¸Ñˆ]f¡ËÛ˜YTúŠ¢Yƒv÷‚Ûn[–å’,“·eú¯@!4ï»ót®nëågº.Ër– %S„¡dJ@N<wþÆmSÊÃG|ê}ëóó�<¿üÒ‹@¾çXúhu½R©Dm×<Ên8€IÕ°VƒÇ¸GÑp/=‚Æß¶ƒ ôlÛqСÙC³ís]Öcïÿ½Ö~G¯gø¢244˜®Ê†Á(§ºpéCjúþ>€8e !$º½2Ì%©@æ…´²bîîNª.u"u°ZÝL(üçZeùêi ÷1húÚ~Øv´E:It «“4îb›*DFõ2fûÍ|ßql§¦lû7¸¦¡¦1ýwU•T•±®ÛeF`´ùy14‡ùÊ«’$©Ú˜*˽ŒJG _¾±|uþµ"튂 Â͘!ãG¿=ù�Üíxåò=ïÂØ‰ƒ/ŸüîöñÑ+ÏŒø&[ŸÁ>×*—_ˆVtzAÓ zk¤u¬UÛLS�ø¦rþÑ'&Z¨‡µ‡ǹP Ÿ·61"Øé�WվΠ£§¯­Qa®ëZV;ø°éÓºí)|DhæZ̧Bש0Í eªíg»]ti} ¿VŸ>m„¹CQ¨€ÅÅ¿Œ¾Fz@î¥O`ŸSgμCÛgü¤³pó©#Ët����IEND®B`‚IMAGE 1346 ./arch/road/footbridge/footbridge_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��õPLTE���Ø·‚¢lˆ[Š]—ešh›hžj j„Y£Šb¤n¨o©p¬w&­w&®}.†Z§t$˜e§n…X§w,Š\¨w+žh‹^®s®t®}/¯z'¯|,¯|-°|+²|(³|(³}'´-´.·€*¸)Ì­zа|Ô³“b²})ªq´/®}-oM_a¤r$nMdDsRˆ^¼„+tS€V©w*º….¬x'¶„2hHŽe"¦s$º…0º†1¤lätƧvɪx®y'¶ƒ0j¶x‚W°•icCdB±|*fG·šmhHhIŠ_¼„*½ pÀ‹6®w&ƒ[wS ~U®u†]nLbBbCpNpOfFyV!|Tšn'dFhHÀ¢rÁˆ-iJiJ¨u$hH_@‰]dF¦nµ˜laBhJ¶€,œheFo'gG€WkJfGV†[cB‚Z¢n³}(´~)¢s(ƒYkKlKlLmK¦omLgH§o‡\¹„.‡^hHhHfEfEqO¾‰4À‡,Àˆ1qPfFtStSŽe#`a®vfFvS¨ŠÃ���tRNS�@æØf��ûIDATx^EÒã»$;ðT򮯦mkmÛ¶/mÛø;·Ò§wï|˜ôd~Oõ[•íC9\–\ö<(pl¯wÈ:,7ù<ìm ª¬�¨¤ ºë�4À5˜_jø<OÀ "í…jriÙyzxx}šŠ|>`*ÜÛ»rÔÛÙyErƒÉ¥0ù÷òwÏœiÜÌÎS…Ûs>7¨ê¸õƒ›q޼±oÿ~§h0`(Ñ=W´ÔøÁÏ› G†>ïûÓ,»•:@´ïEšuµ/[‡Fô'Xm¸d||üuAûªŒx!GÀJ);š×RÒU¯‹X¶ø©’ùî�!»YH²PJÝ 3$×F«Êî0 è¢JßKÆÃ3¯Á$‚‰²ýÙƒ è¸û‹mÆ·fÚJp‚^ÿ'•ùÇ"ú®E%w½fb™tUiy€uyœàdô‹V ,Ꜫ_Á)˜+k™2‡€%[è24¸åeÌèb“2PJIѼeÈ<é½Oã>`>Vܘ/[ÎÐi+ÿŒ—·ñ´Xq`·ÍL·C>Àâw¼Eá=À—˜´2V0å·0kÆ|øü9 é9«@Å©ØúA¤­´Ž{ vBùÈš!÷# Âßù@GN ð_1YKI*‚‚Aÿ" –!äov°¯H5ô*Äj&z¬@—ä0CâÑ‘ŽŒª~†fsYæÑÁ!@�°Ú_®Cý>IÃʪêÝi]ÔØšÑ%€mÊ|3Ñ`,)häÁgM—ßïžÌ`þºŽ`g¯xôðX{ùíÛØšüjvö:îS%ÁÝJéE”8òpfðÍO?>õt-$¸³S¶)MÜÂiÈÜÌX(è’³§b�‹CC}8Ôt?)€û^ñFb`…#Ç.Àt(¨ýúßPÀõw° I; ÕÄÒGré8ëÆq<¼®ã`²Å^OT#iGâ\:ùÍŸG|pàÀÀÉѹwˆ3::ç¦ñëèKÙ~]g Ë����IEND®B`‚IMAGE 1442 ./arch/road/footbridge/footbridge_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��RPLTE���Ø·‚ kkKoM†]‡^˜f›hhH£Šb¤n¥r"©q­x&­|+°|)ätiJhH€^!hHiHiIiIgGjHjJjJ§u%¨t kJdElK®tnL±-²|(¶ƒ0nMÌ­zfFšgYªrqP“cpNhHhJdF¢l‚ZeFŒ`’dfFjIfF¢mjJkJ¦ogFkK©u sRkL®x"lM±.µ€,cEcEnNcC•cgHmJeFfGnKoMiHgHfFgGlMfGžo$fHhI›h¥n³~)iImMpOtS¤r#mL…\cCcDjJ™fqOgGyV!fGcœhlJiJažižjžjžmmKkIwS iI¡q#kJkJhH„[aB¤odEnOhH¥u&bC§t «s ntSvSkKnN•i"iJlJjIjKœi“cqRlLtSoNoN¨x(¨x)pM©t$cE©u!tSŒ^šh¤n˜grOfGgGkLžp#dF©u$pNhI«w"«x&¬w!¬z)­x"qO–e—efF¯ufG±z!˜ieDlLrQµ€*bDµ.iH·‚+aBmKij×hŸ���tRNS�@æØf��þIDATx^e’c³-9…“´­mÛǶmû\Û¶5¶mÛöü¯Iºïž;U³>tWe=ýbu��çªjò‚{ÊØÏ²ÓÍ™4Ïbã`²úòØü¡´€¥ê  °rß2ºœ�Ô;¡ÓÒ>Ì>.\<ë™<ú×ÌÌä™Ç¨Ë âY½$ñÇÿèçÐ\kÈ7 ‚Ð ú 5d(×8¶AWÐ v0ýÉ>LW¯­Õ¬šq/uûR;N_pLH/!®qõ·ôß|hmí²b~ë@×õÝ#ŸïPßü 2­]9 ÆÔ`6và"ŠÜ¾ ñÔðuqw –Ú*¯ˆq¨¢ˆ�x›öÅFð[Ôå’TINôûÇÐYmE±±NÚƒ÷ «umCü„ÔÃ>OQšŠî\À@jˆ”.Ao`Ÿ�_óìN!ªÉ…9øù¼Ù€ÛËu§ÖÛ¾2Žž}Ô­©¯ÚßóÁÜ ºh8â cAoÔ§}ØobNH…åN6Úþ‚ÞÂÇûã¾Á_p’d îŸèï$ÆIç^úm³À“žÍ|úrâw‰w}‰_¸tó}¹À�Øù$‡÷)=¤îkÔ78‡§0ÒÓßBL:ÒO:Àþ¤• H…UEâEpWŠ"9pEv Šl¡’ÿ?\.paß¹r˨htC•»¦ÆÊ@¢w€é¦nØÀ6_¹²OŠÚê¥MMÞ°/íÓQwíp"öˆ$¨-Ú’T=1õŠãç '9MÆoá�p0Š9�T¤ržà#z'TÑW"è»ázŽòþ}x+üñ+££Á¾¥¥g¶j`@¾ÖUezßßÛ½W‡(Â;öÐÇÖ^¯·»[»ŸŒ\C¹¾¤‚y3ž ×Á#ø¢Yê'·{"D™NP-×K¿·àñ ‚Œèèž–Í€9<¤åJšó s«XäXÑò s–ßïwaA\Áž9Y“߈Š,øWÛÛÍÔ×í51�þ¯öåz,ðÔSŒºS²����IEND®B`‚IMAGE 1325 ./arch/road/footbridge/footbridge_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ïPLTE���Ø·‚ j®}.†Z—e˜ešh›hžj„Y¢l£Šb¤n¦s$§t$§w,¨o©p¬w&­w&ˆ[¯|,´.¶ƒ0Š]®}/~UŠ\€V®s®t‹^¨w+¯w¯z'§n°|+³}'´-žh´/¶„2·€*Ì­z“bjа|§ra‚W_¯|-¨s°•ikK…XªqnLoM¤r$hHº…0º†1¼„+À‹6ƧvɪxiJÔ³®}-mL®w&±|*²|(³|( n©w*nM¶x¢n·šmº….fG¼„*¤l½ p®y'cChHhIdDzX"¨u$oNfG¢s(«w&dE¢odFjJ_@dB©tgHhGhHhHaBhHhH®u®vbBbC`ahJ¯wiHiJdFeFkJœhkJo'²})kJeF³}(´~)lLfE r)µ˜lfF¶€,¶‚.fFfF·}fFpN¸)¹„.pOrSsR¥u)¦n¦o¾‰4À‡,Àˆ1tSÀ¢rÁˆ-tS§otSwS yU!yV!=ÏBÕ���tRNS�@æØf��ìIDATx^e’S³-I…+«ªmcÓÆ±ÍkcÛ¶m[?t²ÏŽy˜s¿ŠèZ‘ke%!ä¯/žûäQr˜?OÝþ镱ügéêÃOßÚ°õ¥§ÆòÆÒ çﺵaùÚ#×Çòïó/“ÿ¨TÂ0j;Q6 Ñ w0°_?y*¶mWX¥q¼æ™¦ï7ý¾iZX„²cp¹V«ÁåcÙå»®«½úâû$8šëž%ØP¿T7 ã’æ`ÿjŠ" ϜрRúLjÖw…áPª)’@ižLNêù|è!|Jçœ'øyfºœ$XóÍò©ÕÇò÷å¥1Ð!n›Ÿå¡L|7aFÐ ­V˜‘ŒýÕ7ï=hxŸ1ˆcÛÌÈÒn·Çï±J‹cèn’AeªÕ‰p72;ñügÕjõÙÙPE0…=@–Å"Š”ÊŠŒ±O $—ÓUŒ¡çÔ$)'9®¼Œ‡ë¼|ùåÝÕß#‡ùöµÇ>¿?vði:03³E˜aéDáQ˜A ŠÈ€yà7=LÏ÷MÓôšžgY¦ ++¦¹å™9à:® š£RrJšj—RMC“L–1…¦lK’0Äò’ ô‚ `Cæ·À§õéòä³I’L&yp®ªºŠè*A¾žüž+Ðú¨´Ž¶kqœ¥XÞyë>‚°uˆ¯úGnZ–uÄG‡Ç¿üy} B:"ïY}¿iù°¸¸ˆfÇ1 ×»éõ1Ò Ü‰ O¸n_Q4+S\(É-–JàPJ³’¤‘¢QúWqÀÓ<HÐ\»ý=ÉHS¨z9ÈçõÿÍyjaa7ŽŸå„¤6t»››¦¸÷iš²=ÆR¬ìþÇ #rÚƒ z½7x§‡jcã7øéÂ…ôpÔu¨ëÅ­zÒ: QÇ)mŸ>],ŽG½%ʲ°-Šâ@Ûívv£¿m_¼¸KH¶8\]-äð¦B¡Àù¯<æÈ¿?ùx‰ÚÂ����IEND®B`‚IMAGE 1291 ./arch/road/footbridge/footbridge_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��°PLTE���Ø·‚®}.†Z›hŠ]—e˜ešhˆ[žj j¢l£Šb¤n¦s$§t$§w,¨o¨w+©p¬w&­w&„Y®}/¯|,²|(¶ƒ0€V´.®s®t®}-~U‹^¯w_¯|-°|+žh³|(³}'´-§n´/“b¶„2·€*Ì­zа|Ô³Š\¤r$®y'¨s…Xj©w*ªq¸)º…0º†1¼„+À‹6ätƧvɪx§r¬x'a‚W±|*º….¤l n¼„*oM½ p¢n¯z'®u¶x®w&cC°•i·šmkJkKnM_@®všn'pOœhqPo'¯wsRtS|TdB r)VdF¢o²})¢s(€W³}(´~)eFƒYfFµ˜l¥u)¶€,¶‚.¦n¦o·}fFfG§o¹„.†[‡\gG‰]hH¨u$¾‰4¿†,À‡,Àˆ1hHÀ¢rÁˆ-hH©tiJ`«w&ajJ�+•���tRNS�@æØf�� IDATx^M’c³-9@³“´mÛ¸¶ŸÍ±mÛö_žÝïÖTÍʇN太×Y½ÉûmHФ€QÒ ’’‚”<ÿð³wïä%J!Ë<êÑx2™dÙ‡5êy@i–ÁdŸŒ½5h6/ëÈÚñ³Ÿ4›Íß×Ö.C™âŒEà\ƒ(#’¤i\åx Í4©×ˆ1fÔ#Ahu)¬‹¬¡(†BÈço‡ØÛ¬Õ¼Jk›¥J ·O ]]MÛÛÛizI{½4M{Ð;9Iá"ÅCp]Ó\øÕ›®ï›¦é–è&¸º®w¥¹$qù@娧«ª(ŠcD<Q{Aˆ/¼üUÃÑ;o|ù ‹¢¨žç-ÁÀ`yúê?ß~MþÃó°åàâE(’¤y‚óÌæ&xŽã`ÌNïF`YaØg–eÛ`¦°Šî°š–Ð÷}ý©·üÇQÒ÷ï¼0¼6D÷k:ª—¿¢§¼qýºòsLM»ÒBÜØà éª,jš¢(9NOåò¼$;3°4J³?[ AÀ“sž»ÿó§/Ä: ÝÞ)P<ÙEFErÚÓ�Â~‚„¡eYA/lÛ²`eŲ© >6óêHÕ­ê&뀒œçºz$ËâN„,г1F”dËYËh5NÿáTX2…af#BŒˆ O>øí•;0ø ƒ . :;YVþ‹«¼ýAè.ȳÛßÙ¶};DÃÞöO»; 0^³gaßakk eÝr6üðÍ~€ßÂZ¿ð‚ æMߟ©ªŠ²\ÃÒ²_©VÁÅÖejYž«º¦½Ç"ÕS”ëv?Òæ™aêÈh(Ë¥AþÏÙúú]üì#$v`2Ù߇8ƈã˜Ö(ñdñ}–Q ”ðx {L§¯=â­)îöö~…¯\™ÂSaXV‡CMâÒQHsÝêÑ­[•ÊyêC‰sñH’¤±$u»Ýò‰~s­{éNu9׈ò:®ü Éóœ±_˜¢¬ß]'ÿ¥Ùsó‡7ƒ����IEND®B`‚IMAGE 1122 ./arch/road/footbridge/footbridge_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE���Ø·‚£q#¢l•h £Šb­}0e Š\¨w,¬w&´.·šm€VjHfFžn! q&hH¢r'¢s)jJkK¦u'hH€^!hHŒbiIiJ^?kLlLlMnLoMoNqOsRgGgG`AcCcChH™f™m%›n&o%hIŸq'hJ¡p!iHiIcEiJdE¥v*eF§v(¨sfFªtªy-«z-jJjJ®z(®~1kJkJkJpOqOcCrQcDsSvS yV!zRcDcE_?iHdcF‘d`B—e˜gdFeFšj›kaBjIbCžo$jJ mfFbD¡q#¡q%¡s)jKkI¢s(fGfGfGfGgFkL§v)lKbDlMcBmMhHnN_@`@°|(oO¶‚/pNpN˜hiJâ{¼ ���tRNS�@æØf��IDATxÚ]SŶAlh½îòÜÝÝ=îîî~‹$,Ô)èÿî{ùW®cèã ÐÆáÆw> †Þ·8ü@©6;˜1À½|TìÃ@z¹~`üFe÷ñ45‚Ò€rvW£éÕ{É튻—s½+Ã…¬„zŒ0r.-!pb²L]žx14>þ€�öhTT{&Ã-PÐ%)Å"~‰ D\i²4Òh‚e¨†—PAZlˆ�ÔYSj«ç‘é/ÚÜ‘T~H¾,*-ÊLcY& ÕN8%Ž$Î æ3ÊZ*); Ø|«/J‡Óz؉¥m?¶8�‚MÕ›€ d\?£ V¼ŽIÅ«�M=Æ‘xô^ãérqAƹq’­l÷›Æj@²wæ×Œ'ü¨Xôtâ÷- ”!ϧñù¿qÑCþ«ñ]@s»Ã—.öqU f@/v*—âO¦ªûÂÉŒe¸VöÎSȈ[‡”‘zøÙˆÊ4Öñ{£ü•ž6ÝÏ9§B[‡g•uW‰uçæÉLpà³$ãݺͪQ’Ù\ŒÀwǘL<Ì…ÆŸ˜ ×MÄÆTr,{…÷DÏ4¦:_¡åÁ¸M­zñæü)¾ã‚3óOiÖ“Ѫ«]¥ÍÄñ7ýA¢-¶¶¿ÓSœ°íŸÄ T4¥™» h”Í=š¹e`Õ³¿çæÄd ÊkyJo6+删ÔV“…õHÅgš=!RURƒ`S©4mÆ,¤R¯ gvRÓ©!r’Ï®§s}Pº¢s¼ °ÕjõX_Eѹµø'à²ñöÞþÏ{¼Ã‹oº„:SöðÆó §)úT²?†Z³|����IEND®B`‚IMAGE 1291 ./arch/road/footbridge/footbridge_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��°PLTE���Ø·‚®}.†Z›hŠ]—e˜ešhˆ[žj j¢l£Šb¤n¦s$§t$§w,¨o¨w+©p¬w&­w&„Y®}/¯|,²|(¶ƒ0€V´.®s®t®}-~U‹^¯w_¯|-°|+žh³|(³}'´-§n´/“b¶„2·€*Ì­zа|Ô³Š\¤r$®y'¨s…Xj©w*ªq¸)º…0º†1¼„+À‹6ätƧvɪx§r¬x'a‚W±|*º….¤l n¼„*oM½ p¢n¯z'®u¶x®w&cC°•i·šmkJkKnM_@®všn'pOœhqPo'¯wsRtS|TdB r)VdF¢o²})¢s(€W³}(´~)eFƒYfFµ˜l¥u)¶€,¶‚.¦n¦o·}fFfG§o¹„.†[‡\gG‰]hH¨u$¾‰4¿†,À‡,Àˆ1hHÀ¢rÁˆ-hH©tiJ`«w&ajJ�+•���tRNS�@æØf�� IDATx^M’c³-9@³“´mÛ¸¶ŸÍ±mÛö_žÝïÖTÍʇN太×Y½ÉûmHФ€QÒ ’’‚”<ÿð³wïä%J!Ë<êÑx2™dÙ‡5êy@i–ÁdŸŒ½5h6/ëÈÚñ³Ÿ4›Íß×Ö.C™âŒEà\ƒ(#’¤i\åx Í4©×ˆ1fÔ#Ahu)¬‹¬¡(†BÈço‡ØÛ¬Õ¼Jk›¥J ·O ]]MÛÛÛizI{½4M{Ð;9Iá"ÅCp]Ó\øÕ›®ï›¦é–è&¸º®w¥¹$qù@娧«ª(ŠcD<Q{Aˆ/¼üUÃÑ;o|ù ‹¢¨žç-ÁÀ`yúê?ß~MþÃó°åàâE(’¤y‚óÌæ&xŽã`ÌNïF`YaØg–eÛ`¦°Šî°š–Ð÷}ý©·üÇQÒ÷ï¼0¼6D÷k:ª—¿¢§¼qýºòsLM»ÒBÜØà éª,jš¢(9NOåò¼$;3°4J³?[ AÀ“sž»ÿó§/Ä: ÝÞ)P<ÙEFErÚÓ�Â~‚„¡eYA/lÛ²`eŲ© >6óêHÕ­ê&뀒œçºz$ËâN„,г1F”dËYËh5NÿáTX2…af#BŒˆ O>øí•;0ø ƒ . :;YVþ‹«¼ýAè.ȳÛßÙ¶};DÃÞöO»; 0^³gaßakk eÝr6üðÍ~€ßÂZ¿ð‚ æMߟ©ªŠ²\ÃÒ²_©VÁÅÖejYž«º¦½Ç"ÕS”ëv?Òæ™aêÈh(Ë¥AþÏÙúú]üì#$v`2Ù߇8ƈã˜Ö(ñdñ}–Q ”ðx {L§¯=â­)îöö~…¯\™ÂSaXV‡CMâÒQHsÝêÑ­[•ÊyêC‰sñH’¤±$u»Ýò‰~s­{éNu9׈ò:®ü Éóœ±_˜¢¬ß]'ÿ¥Ùsó‡7ƒ����IEND®B`‚IMAGE 1368 ./arch/road/footbridge/footbridge_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE���Ø·‚›h®}.†Z—ešh„Yžj j¢l£Šb¤n¨o¨w+©p¬w&­w&ˆ[´.Š]Š\˜e~U‹^®t®y'®}-§t$¯w¯z'¯|,¯|-°|+²|(³|(³}'§w,´/¶ƒ0Ì­zа|Ô³“bfF¤r$®}/¦s$§rˆ^€VkK¨sžhnL´-©w*ªq_¸)º….º…0º†1ät¬x'Že"¢o†]afFcC‚W±|*hJiJjjJdBlK n¶„2·šmdDoM®u®w&½ pŠ_qPsRtS§nšn'jJœhkJo'kJ_@`A`BnM¢ndF¢s(pM¤lpOqO¥u)¦n¦oqOdF§orOrQeFtStS¨u$bAvS©tvS yV!|TbAV®sfF€W®vfF‚ZƒYƒ[fG¯w…XfG†[fG‡\°•i‡^fGgG‰]³}(gHhHhHµ˜l¶€,¶‚.Ša!hH·}Œc"bBiHŽe#`¼„+aÀˆ1iHƧvɪxiIbDjJbD*ª���tRNS�@æØf��üIDATx^=Òc»õ:à™$µ±lkÛæk›Ç¶mÛ¶ÿx&]{|hÓö¾¦“'ÀÍfwÑ Æ•’¡¼ÜNõ0ìàf?®áé^ш6öº"X2,¬›ª…Eï! pÒT,8n°Ó蔌°³eªq­èáñ*í¦ãÏW& &ÎÜü$¼$ߢ·•IÓ_­ŽŠöèƒïHþø÷-ð/YÞp$pŒÔÚ‘¿NÐ oü÷=¸•cWpÄMuS×W±ßÕΞX¨t±—š=v Ç©´… [±0xÅ´.'M^~àú9デ{À=™nÝÄkMï¶}pˆ€\æz3wß0wŽp+kÁ2JÑV%ØøôÅù!às,»D`f1¸ÿh QÑf‚Ào70…§™(4D“שÚ¾)AgÕ£BÉøº¤'ËÌPú lø9hØ{ ꔘàu™ƒïé!lüâÈ ëE[‚ŠLÒ-ÛŠæ–=“@3ÇR�5ßÑã!8õAßÈ»PôeÑwŒp¼•¨´[Ô‰ºàP@ÚS錬þ ÐÕˆ%Î{æÊLÌ©±[÷ôw—=ejÅQ…E¾£f u‡½LL5öÑx#àî¨qaõœñ:´ò޾¦ò«Ëz65N`i5Ç4hÕóçuß‘MÖžXåàîP«ùVÞ4D•zÈ|u~Y h#bf¢ßߌÁÅ (ªˆRû]ür`ëäÀº­Z€e›Yx:M) ’µ¦Ò‚çm–ýx©L hûÀˆNxjlÿþ3?Ƚ`ÂÍ;é÷?—@¬5)€Û£æ93õÏ›Ÿý¿›é®½!UkÇf¾¥4ôpö÷#‡C5±÷ÜÙ^è‹ED³éì=w.,,�ò9Å­«iëÖ銾ì»±H]?uå™+ÏB•»ƒL«:1¯ç|þ`›s&`£P¸{¿Ùý>sÍî‡?½w\¼¸-Z»ÓÛ¯ŸžÞ ø{vxb†¤t����IEND®B`‚IMAGE 1871 ./arch/road/footbridge/footbridge_9.111 ‰PNG  ��� IHDR��� ��� ���szzô��IDATxÚ­W[SSWö'4÷sr9äÂEÔNëk_¬– "h§Îô¡3•K —Ü HSÑ8}h;ã¥UDK((÷A02úÐçþ€þ›Õo­Ý3áÄ™š™5Iö9gío­õ­o¯sŒ?þÜM#Wü”º¤S¬U§Èyu³Ð±ðÉ\1(ÑŸÍüÚ)ü…µºß·³YÚüñ3Ú¾ušÊ…r#û�âm¬E§ð9+]=óQuŸÿlh=ß`š€`P;7kÅþ€d;�\`ê<»/³Év7íê鯅ë²ñb6DËÙ�-¹  ðí¡õ/ƒ0 àN™“.¸(~Q£Võã7G›kvɵþݸ ôe7À5»�èi²R·Y ®Ëú˜!Ñ>[éa¯“~:im´F�læC`횇–�f3瓵×7êh«ð)­Ü:G›…Ó†ŸÈy…›ìÔ‹ïX`ÀàÅ ·:?·P2ÑÝdS�@®µ |[Ñ«›t窅nÃ� `ì´œ1h-ã¡—Ø|iØK‹Ã5duÄO¥üqZÏùi;o ;�Vh¤2 ›óÆâ; rGZ »ÎZ)�œ �£f‹ÂÞÜj”ô#rÙËú½NÌB÷»-4Ùk§1­e•­ftš»izP§'ýn€ÃZ¶†^s0ÇÙÄ_6EÙ��ëoÕ�óÇN¡7•›‹Hÿ*Gü½OÖP/´%ê 7 eš°Ðó„“vònÚ0æÌ³!ÎN@ ÚÊÅGyÜ/ÄFéªw/>ŽÚèyJ£b©Î¨u½âÁx#ê}êÐN˜ [èA·ÊÐJ¶˜ ÊÆ( @°ÉÖJÖ/¥wd­ Ÿ{�ìŒ×Ðd…&@Æ…´‡æ’¾QÀG *߬§×ãÆ‘-Éd¾Ói§»].šŠ¹ÄÇVNçÍD¸#ks‰ÿxðr–Q¯ÕaMX<Ñc›¤o>í¥y€YÎøf¯€x3î;ˆؽ.ýÖÅÙ‘Ò øUÏÏi}T¥icý~#D弇z¾´s­E¬4—rÓL R®Ñx¹#po€í@ 3  j ž\RÜù{5WyîaTW)É4ÐÂp�º Wyï²�tÖã”6Qßc54? µ\-mý௠døk´]ß ­é`�ÕIˆ” îÌ`¿´Ñ6:€A¬/ȆÒÌ¢íŠ×4Ô3(Œ_Éx™é°½I_ö@€ˆÚ°z áÆ©˜“fRA°8@Ëè5ÊnT üÒ,i´0T†PJÌTÊ ™¾“r:Å „ÕKb!zƒ&£P¯$‹‰Ê„Rc‡3@@2+2â¦Ù”À=(‘—6Gu*ùÍ À ^u�Ø\­B«1(›KX�BLñŽÏý°ƒîtàOàÌHkTñÑBÊ… Ä±¢-Žƒs$:�ó}Tò餵²Ëð,¥s»@Ýt!æË¼ÿÈÖ{¤tDž-eÝÜYâcÙº^Ëî%ád„ÕÏeê¿I<´¡€PŠ•sÑzV—L¼È×½Wÿ„hÉ|JZ\‚C ¢ŽÈ†¬í!!È„šûÌÃHPÂäx†<3'ÄI:°–?y4ˆJi¸ç‘p$®‹ ÄÁ[H9â _�y­yí˜fR&S@ó'ŽQéÉÆ¯Ð€AçÍåó4f!s,C .õœªÝ ð°CÈ5ÕÏÊ'GƒPB$�p³ÄCC” VE ­f>ˆÒÍ¥ 9T?«èD‚ËÂõ�ƒ8²!Ò©GÚð%L%HQ# Œ÷CX”• ²ÁÙ~:襥l­d ò¬ÕBü&Út€PbÔqæ!û& ó;ЙÝÀ¶g:Ú•­Ý×äÛ¼¾?ºÔ%X¼³PÀ@›F‰Ën1»É¸t»ËIÓäRþͤë0^ÕÓö¸šd’¸7Þî–Áu:ap9P2ƒ–®˜”è°ÏÁv¦)Ãÿ8þï[3gB �H]²Ò‰¨$û˜žÄ8ùÔÔÜÇã7là¢2á$x=W‹Î ©5í£~\ƒÓä^1s½•× @¬UE­æwùM��Çîã˜ÒÕ€ù¦$y°Ümâ9NQ5õø¨$ŠàóÒ˾”Ï>ó»Eýæ}ÕP Dýp$h—@žñ­h %qé[!$f9‘×^5I �<«"OÐ ƒ;³Aˆ‡¹Ö“=8Ì\‹@i@_‹ Ž �lt@®�à§^le´Al ƒk/Ž63�¾•ÒÝïõo�@ÞîBt೪e¯r¦0�ó &Üd5Y4;èÎ…‰ˆ«êƒ&óï…Ý(›N¿|g¡Ê»¡OÞð"³ÉËéámX ï•)ÈñÞÚÿÓ·û�PVuâ½¢c€ÞpœŠ����IEND®B`‚IMAGE 1328 ./arch/road/footbridge/footbridge_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTE���Ø·‚ j®}.†Z›hšh˜ežj„Y¢l£Šb¨o¨w+©pˆ[´.Š]—e®}/§n§t$‹^žh“b§w,¬w&­w&®s®t®y'®}-Š\~U¯w¯z'¯|,¯|-°|+²|(³|(³}'´-¤n´/¶ƒ0¶„2·€*Ì­zа|Ô³¦s$‚W_¨sŽe"a²})©w*ªq¢o¬x'†]¤l¤r$¸)º….º…0º†1¼„+ätƧvɪxˆ^€V§r…Xƒ[·šmcCoM¼„*®u½ pÀ‹6®w&¶xŠ_°•i±|* nj_@Že#o'`apO®vqPsRtS|Tšn'¯wdBœhVdF€WeF‚ZƒYfF¢nfF³}(´~)¢s(fGgGµ˜l†[¶€,¶‚.hH¥u)·}¦n¦o‡\¹„.‡^§ohHhH‰]iJ¾‰4À‡,Àˆ1jJÀ¢rÁˆ-¨u$kJŠa!©tkKŒc"nM¡¤Ë���tRNS�@æØf��IDATx^=’c·5I …“BÛǶ}®mß×Öжm¿wRgÞ5ý!«ºú©Ý»vô �·|Zm *Û‘ZBtþpc8A€‡Ó°‰'>Gˆ&ôq2qJV™-K³1á}mÎYÕm&/â(¿u. ªÌlXZØLx̾A€y¿>ǤàWò[çðºøíÖç,æ¿ÙØf‘ùŠüÁ•›)ÞåU–ämG+C@ÚüžÖüx“ùðÇ™CŒË¿7p:6/×Ç8)ÿ€ÇOã™nc»Ù˜{²ŸR&©f ìöôׂüÀ½« ·e¥ÃÝŽ÷Æ2ÜQ&a¯Søìüú#‹’�'½°›[# žèi&ì¿•Oÿø¢L®pÚÍ}~/„ ѣݟr^j~¸ÂôS€ÒŸR”Ús/húYKŠÁŽG2±KðQÕ˜]³B9§°Ÿ-Pmõ>R Á J™µTYÏða_9ÛKô Xú<ÔU’n­™nͳèd¹™uŒJo[)†Ÿ2úF'Üö a7ëP†|…Í€çt¡�Íu‹œhËwr*ØJ|œé¥þPe¡Âî ÏZ @™¬ÇµÐmyÆÀk^¤�Õù‡ tùº–,µù2)XZ2ÈõîàYaé tÝu-,í\e¯A¦è AΊk&ÖŒ¤H¡É XÝ)H2-Çzt/ëhËÍßÖ zÅõ ÔÝuŠ`ÇS'Š òüðÆš!(j塈•Øtz‚‹×P4ºc¿1<:63wÓ4Õ=ͬõ$gØø%EbãA>²!Èœé‚{2ùÞj.ÐÏR—šðòõƒ¸ªR¸EGÿâcˆÝEðRйj—þÿÝÔ_üù‘b<»9Ož~Kiþð ®“"š.âä™Ë¼6]D4ÕÉ!â‘È#7âºý$¶¨bÖ‘ö㘠×8ŠKÜMW2XÊÎyj¾Ï99Û/•43ãäá“?6ÿ®<»ùÕƒ ðέ[K"³y²ô*ð““%£rá_ Œ{=Ôº����IEND®B`‚IMAGE 1328 ./arch/road/footbridge/footbridge_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTE���Ø·‚ j®}.†Z›hšh˜ežj„Y¢l£Šb¨o¨w+©pˆ[´.Š]—e®}/§n§t$‹^žh“b§w,¬w&­w&®s®t®y'®}-Š\~U¯w¯z'¯|,¯|-°|+²|(³|(³}'´-¤n´/¶ƒ0¶„2·€*Ì­zа|Ô³¦s$‚W_¨sŽe"a²})©w*ªq¢o¬x'†]¤l¤r$¸)º….º…0º†1¼„+ätƧvɪxˆ^€V§r…Xƒ[·šmcCoM¼„*®u½ pÀ‹6®w&¶xŠ_°•i±|* nj_@Že#o'`apO®vqPsRtS|Tšn'¯wdBœhVdF€WeF‚ZƒYfF¢nfF³}(´~)¢s(fGgGµ˜l†[¶€,¶‚.hH¥u)·}¦n¦o‡\¹„.‡^§ohHhH‰]iJ¾‰4À‡,Àˆ1jJÀ¢rÁˆ-¨u$kJŠa!©tkKŒc"nM¡¤Ë���tRNS�@æØf��IDATx^=’c·5I …“BÛǶ}®mß×Öжm¿wRgÞ5ý!«ºú©Ý»vô �·|Zm *Û‘ZBtþpc8A€‡Ó°‰'>Gˆ&ôq2qJV™-K³1á}mÎYÕm&/â(¿u. ªÌlXZØLx̾A€y¿>ǤàWò[çðºøíÖç,æ¿ÙØf‘ùŠüÁ•›)ÞåU–ämG+C@ÚüžÖüx“ùðÇ™CŒË¿7p:6/×Ç8)ÿ€ÇOã™nc»Ù˜{²ŸR&©f ìöôׂüÀ½« ·e¥ÃÝŽ÷Æ2ÜQ&a¯Søìüú#‹’�'½°›[# žèi&ì¿•Oÿø¢L®pÚÍ}~/„ ѣݟr^j~¸ÂôS€ÒŸR”Ús/húYKŠÁŽG2±KðQÕ˜]³B9§°Ÿ-Pmõ>R Á J™µTYÏða_9ÛKô Xú<ÔU’n­™nͳèd¹™uŒJo[)†Ÿ2úF'Üö a7ëP†|…Í€çt¡�Íu‹œhËwr*ØJ|œé¥þPe¡Âî ÏZ @™¬ÇµÐmyÆÀk^¤�Õù‡ tùº–,µù2)XZ2ÈõîàYaé tÝu-,í\e¯A¦è AΊk&ÖŒ¤H¡É XÝ)H2-Çzt/ëhËÍßÖ zÅõ ÔÝuŠ`ÇS'Š òüðÆš!(j塈•Øtz‚‹×P4ºc¿1<:63wÓ4Õ=ͬõ$gØø%EbãA>²!Èœé‚{2ùÞj.ÐÏR—šðòõƒ¸ªR¸EGÿâcˆÝEðRйj—þÿÝÔ_üù‘b<»9Ož~Kiþð ®“"š.âä™Ë¼6]D4ÕÉ!â‘È#7âºý$¶¨bÖ‘ö㘠×8ŠKÜMW2XÊÎyj¾Ï99Û/•43ãäá“?6ÿ®<»ùÕƒ ðέ[K"³y²ô*ð““%£rá_ Œ{=Ôº����IEND®B`‚IMAGE 1132 ./arch/road/footbridge/footbridge_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��›PLTE���£q#Ø·‚¢le £Šb­}0•h Š\¬w&¨w,´.·šm€V q&jH¢r'¢s)jJfF¦u'€^!hHŒbhHiJžn!kKlLnLoMoNqOsRfF`AgGcChHcC™f™m%›n&o%hHŸq'hI¡p!hJiHiIiIcE¥v*dE§v(¨seFªtªy-«z-jJjJ®z(®~1kJkJkL^?gFoMbDoOpNpNpOqOgGrQhHsSvS yV!zRbDcB_?_@dcD‘dcD—e˜g˜h`@iHšj›kcFfGiJžo$iJ mdFeF¡q#¡q%jIjI¢s(`BjJfEaBjKkI§v)kJfFbCfGfGkLlKlLfG°|(lM¶‚/lMmMiHiIcE¡s) ¦m}���tRNS�@æØf��IDATx^]’U»$;EѲvïãîînãîîîîzýþìÊ<œ™<4ùX]Zü~àg”»@ëȱ~¡ç&ô1 FÎìx~¨Y›éoä^!XŽQ ]¥ ï}Ú·ùf’Ñj„<µ©Á tÕ B¼PééÈg$V hBÀÁ[E‰ÄS%êrâöÈØØc·¨l\û$£u´Ø.)'¢Xܳ$\Ei2hÁ XEˆ®€%‰U#¢=¯a<�­ôPãU}M›û’ÊùƒM¬%–Ql“Ÿ©œÒÞ8%.¤A åV)*[Õ+ø„0\]”žÓx8ˆù°ªÐ‹i…­Ö/{�³d.LذX+¼‚´âó4äS�&Ž9ŽÞšþ¸Å\Ђäƒ9÷1'ÛVu|™^ŠLçÎúš90ç‹MDgü¹.‘2baz>·›‹NŠß]Ì{EDÍížÏ{.‘æqC V�—x—ÌežôÓWì#ám&2Z.¹‹„™øqHÛÿÏù‚ãˆq‰d½¾â_éªb7cïB+Ï3Vù­$ºmíÒ¤ÑÛ“‘·Y;D6ë‹1†~Yˆ3‚…¸Ð„££:HØ„±M—¥òœéÈ„XO·ÂµòÕ%ksÿñ˜ 6ÌÊ¥YIÿÛºÜÞœÒ,œì×kP…í¿þÐãU_…èÂòº4Ã÷^ @«*¯§î\rêοBL4ñ°¼™£ôZ½¯“�6[j2¿ÛäŸú„O²er¨²Ù"M‡f³o gÞe'_ q½"yíz²r„.”îÓªr¹|Â’Ö­½^=½oÇó“­.ùà¯dÔ«Ž®~{~–èðp?·Ž(¹^����IEND®B`‚IMAGE 1291 ./arch/road/footbridge/footbridge_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��°PLTE���Ø·‚®}.†Z›hŠ]—e˜ešhˆ[žj j¢l£Šb¤n¦s$§t$§w,¨o¨w+©p¬w&­w&„Y®}/¯|,²|(¶ƒ0€V´.®s®t®}-~U‹^¯w_¯|-°|+žh³|(³}'´-§n´/“b¶„2·€*Ì­zа|Ô³Š\¤r$®y'¨s…Xj©w*ªq¸)º…0º†1¼„+À‹6ätƧvɪx§r¬x'a‚W±|*º….¤l n¼„*oM½ p¢n¯z'®u¶x®w&cC°•i·šmkJkKnM_@®všn'pOœhqPo'¯wsRtS|TdB r)VdF¢o²})¢s(€W³}(´~)eFƒYfFµ˜l¥u)¶€,¶‚.¦n¦o·}fFfG§o¹„.†[‡\gG‰]hH¨u$¾‰4¿†,À‡,Àˆ1hHÀ¢rÁˆ-hH©tiJ`«w&ajJ�+•���tRNS�@æØf�� IDATx^M’c³-9@³“´mÛ¸¶ŸÍ±mÛö_žÝïÖTÍʇN太×Y½ÉûmHФ€QÒ ’’‚”<ÿð³wïä%J!Ë<êÑx2™dÙ‡5êy@i–ÁdŸŒ½5h6/ëÈÚñ³Ÿ4›Íß×Ö.C™âŒEà\ƒ(#’¤i\åx Í4©×ˆ1fÔ#Ahu)¬‹¬¡(†BÈço‡ØÛ¬Õ¼Jk›¥J ·O ]]MÛÛÛizI{½4M{Ð;9Iá"ÅCp]Ó\øÕ›®ï›¦é–è&¸º®w¥¹$qù@娧«ª(ŠcD<Q{Aˆ/¼üUÃÑ;o|ù ‹¢¨žç-ÁÀ`yúê?ß~MþÃó°åàâE(’¤y‚óÌæ&xŽã`ÌNïF`YaØg–eÛ`¦°Šî°š–Ð÷}ý©·üÇQÒ÷ï¼0¼6D÷k:ª—¿¢§¼qýºòsLM»ÒBÜØà éª,jš¢(9NOåò¼$;3°4J³?[ AÀ“sž»ÿó§/Ä: ÝÞ)P<ÙEFErÚÓ�Â~‚„¡eYA/lÛ²`eŲ© >6óêHÕ­ê&뀒œçºz$ËâN„,г1F”dËYËh5NÿáTX2…af#BŒˆ O>øí•;0ø ƒ . :;YVþ‹«¼ýAè.ȳÛßÙ¶};DÃÞöO»; 0^³gaßakk eÝr6üðÍ~€ßÂZ¿ð‚ æMߟ©ªŠ²\ÃÒ²_©VÁÅÖejYž«º¦½Ç"ÕS”ëv?Òæ™aêÈh(Ë¥AþÏÙúú]üì#$v`2Ù߇8ƈã˜Ö(ñdñ}–Q ”ðx {L§¯=â­)îöö~…¯\™ÂSaXV‡CMâÒQHsÝêÑ­[•ÊyêC‰sñH’¤±$u»Ýò‰~s­{éNu9׈ò:®ü Éóœ±_˜¢¬ß]'ÿ¥Ùsó‡7ƒ����IEND®B`‚IMAGE 1328 ./arch/road/footbridge/footbridge_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTE���Ø·‚ j®}.†Z›hšh˜ežj„Y¢l£Šb¨o¨w+©pˆ[´.Š]—e®}/§n§t$‹^žh“b§w,¬w&­w&®s®t®y'®}-Š\~U¯w¯z'¯|,¯|-°|+²|(³|(³}'´-¤n´/¶ƒ0¶„2·€*Ì­zа|Ô³¦s$‚W_¨sŽe"a²})©w*ªq¢o¬x'†]¤l¤r$¸)º….º…0º†1¼„+ätƧvɪxˆ^€V§r…Xƒ[·šmcCoM¼„*®u½ pÀ‹6®w&¶xŠ_°•i±|* nj_@Že#o'`apO®vqPsRtS|Tšn'¯wdBœhVdF€WeF‚ZƒYfF¢nfF³}(´~)¢s(fGgGµ˜l†[¶€,¶‚.hH¥u)·}¦n¦o‡\¹„.‡^§ohHhH‰]iJ¾‰4À‡,Àˆ1jJÀ¢rÁˆ-¨u$kJŠa!©tkKŒc"nM¡¤Ë���tRNS�@æØf��IDATx^=’c·5I …“BÛǶ}®mß×Öжm¿wRgÞ5ý!«ºú©Ý»vô �·|Zm *Û‘ZBtþpc8A€‡Ó°‰'>Gˆ&ôq2qJV™-K³1á}mÎYÕm&/â(¿u. ªÌlXZØLx̾A€y¿>ǤàWò[çðºøíÖç,æ¿ÙØf‘ùŠüÁ•›)ÞåU–ämG+C@ÚüžÖüx“ùðÇ™CŒË¿7p:6/×Ç8)ÿ€ÇOã™nc»Ù˜{²ŸR&©f ìöôׂüÀ½« ·e¥ÃÝŽ÷Æ2ÜQ&a¯Søìüú#‹’�'½°›[# žèi&ì¿•Oÿø¢L®pÚÍ}~/„ ѣݟr^j~¸ÂôS€ÒŸR”Ús/húYKŠÁŽG2±KðQÕ˜]³B9§°Ÿ-Pmõ>R Á J™µTYÏða_9ÛKô Xú<ÔU’n­™nͳèd¹™uŒJo[)†Ÿ2úF'Üö a7ëP†|…Í€çt¡�Íu‹œhËwr*ØJ|œé¥þPe¡Âî ÏZ @™¬ÇµÐmyÆÀk^¤�Õù‡ tùº–,µù2)XZ2ÈõîàYaé tÝu-,í\e¯A¦è AΊk&ÖŒ¤H¡É XÝ)H2-Çzt/ëhËÍßÖ zÅõ ÔÝuŠ`ÇS'Š òüðÆš!(j塈•Øtz‚‹×P4ºc¿1<:63wÓ4Õ=ͬõ$gØø%EbãA>²!Èœé‚{2ùÞj.ÐÏR—šðòõƒ¸ªR¸EGÿâcˆÝEðRйj—þÿÝÔ_üù‘b<»9Ož~Kiþð ®“"š.âä™Ë¼6]D4ÕÉ!â‘È#7âºý$¶¨bÖ‘ö㘠×8ŠKÜMW2XÊÎyj¾Ï99Û/•43ãäá“?6ÿ®<»ùÕƒ ðέ[K"³y²ô*ð““%£rá_ Œ{=Ôº����IEND®B`‚IMAGE 1291 ./arch/road/footbridge/footbridge_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��°PLTE���Ø·‚®}.†Z›hŠ]—e˜ešhˆ[žj j¢l£Šb¤n¦s$§t$§w,¨o¨w+©p¬w&­w&„Y®}/¯|,²|(¶ƒ0€V´.®s®t®}-~U‹^¯w_¯|-°|+žh³|(³}'´-§n´/“b¶„2·€*Ì­zа|Ô³Š\¤r$®y'¨s…Xj©w*ªq¸)º…0º†1¼„+À‹6ätƧvɪx§r¬x'a‚W±|*º….¤l n¼„*oM½ p¢n¯z'®u¶x®w&cC°•i·šmkJkKnM_@®všn'pOœhqPo'¯wsRtS|TdB r)VdF¢o²})¢s(€W³}(´~)eFƒYfFµ˜l¥u)¶€,¶‚.¦n¦o·}fFfG§o¹„.†[‡\gG‰]hH¨u$¾‰4¿†,À‡,Àˆ1hHÀ¢rÁˆ-hH©tiJ`«w&ajJ�+•���tRNS�@æØf�� IDATx^M’c³-9@³“´mÛ¸¶ŸÍ±mÛö_žÝïÖTÍʇN太×Y½ÉûmHФ€QÒ ’’‚”<ÿð³wïä%J!Ë<êÑx2™dÙ‡5êy@i–ÁdŸŒ½5h6/ëÈÚñ³Ÿ4›Íß×Ö.C™âŒEà\ƒ(#’¤i\åx Í4©×ˆ1fÔ#Ahu)¬‹¬¡(†BÈço‡ØÛ¬Õ¼Jk›¥J ·O ]]MÛÛÛizI{½4M{Ð;9Iá"ÅCp]Ó\øÕ›®ï›¦é–è&¸º®w¥¹$qù@娧«ª(ŠcD<Q{Aˆ/¼üUÃÑ;o|ù ‹¢¨žç-ÁÀ`yúê?ß~MþÃó°åàâE(’¤y‚óÌæ&xŽã`ÌNïF`YaØg–eÛ`¦°Šî°š–Ð÷}ý©·üÇQÒ÷ï¼0¼6D÷k:ª—¿¢§¼qýºòsLM»ÒBÜØà éª,jš¢(9NOåò¼$;3°4J³?[ AÀ“sž»ÿó§/Ä: ÝÞ)P<ÙEFErÚÓ�Â~‚„¡eYA/lÛ²`eŲ© >6óêHÕ­ê&뀒œçºz$ËâN„,г1F”dËYËh5NÿáTX2…af#BŒˆ O>øí•;0ø ƒ . :;YVþ‹«¼ýAè.ȳÛßÙ¶};DÃÞöO»; 0^³gaßakk eÝr6üðÍ~€ßÂZ¿ð‚ æMߟ©ªŠ²\ÃÒ²_©VÁÅÖejYž«º¦½Ç"ÕS”ëv?Òæ™aêÈh(Ë¥AþÏÙúú]üì#$v`2Ù߇8ƈã˜Ö(ñdñ}–Q ”ðx {L§¯=â­)îöö~…¯\™ÂSaXV‡CMâÒQHsÝêÑ­[•ÊyêC‰sñH’¤±$u»Ýò‰~s­{éNu9׈ò:®ü Éóœ±_˜¢¬ß]'ÿ¥Ùsó‡7ƒ����IEND®B`‚IMAGE 470 ./arch/road/footpath/footpath_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE±"!²""mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"›››þÖ�·ñc��gIDATxÚMS ’Ã0sKÁYÿÿ»‹$ÜiŽ ƒ„¸œ‘ÞWºÉ6XŸ”ÏG°M=–—c BkZžEZy†Ÿ/k¥Ñ—–+Ë™~VŽã+áò·+¦5øe ¢)tÆCø'‡«òˆ9#žâQèmÙRª�̧¸õ-9Û¶A`ÉH  Î&ÃË|ÐÉwò¶ÈT® 6X¥ò&Ž«À‚sÌ‚¯qòJ¡šq¥Òk5+oø¬ÐÓÔ]]lªöÛdàJ¡6œRáOm’fŠšl¢É�:ÅñüÖÇxjSû£ee<È œ4_¡%§s}筢Ч¢_:“ZJÜQh+‡K0¨„Wp—XzO0–5€¾vCGm[±N5:e×,ȃ®6¹³òvŽ[åh’tr¥¡Þ±æ"¡HjÞ£þûêlþ5Ï0ôWç (ÿž&¸+Ví´«éäËi›BdkÝg”ÔQ€•õç°þ>q§����IEND®B`‚IMAGE 478 ./arch/road/footpath/footpath_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE±"!²""mN�‰��Š�gßhß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�Sï|À��lIDATxÚMQrÃ0c†•gþÿs‹ìJ“³‹DÂ{?;cå[ÇßF:A‰pͧ�òŽ4ŠÅ‰Çî˜>¦@¯«ø-Ö^¬~ò‡#2~-亅F· Hf°3%€ÒçÙø;ÄztÑâ„F™SÞ ?Ó!õõ ¹è)Êíöë« œ)g¸XX›ô¢Èxä‡Y`’ œ¦ñŒ.¬º `ìÜ|êþÒäDK$Fg lßBQ¥³WöïeÓx‚5Å­WåUS¢Çh•öÒHç sfZ"‰ñYÛ{WºÓÎsØû È5ˆÓvz)_ÜC©ùoV$•Û—Æ÷�!â#ì—�Æ÷[ kÁZz`+à•Bgæ”™ã3&¯h”„6”ÌýšMv+=yXÎÞ½vâ *’ßïeŸã–WýÂ:ó5-(} oBgL²|VÔ†ŠªÂâÁYUÝa@óöÅø³šFj����IEND®B`‚IMAGE 450 ./arch/road/footpath/footpath_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE±"!mN�‰��Š�gßhß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�¯\·��SIDATxÚUR’!C¸¥‹Öÿ·ˆ3g»-KB�AÂÏ WÚZÖ'ès �:A€G£ùe"ðÕݦÆ6ÐÒ#¾/ËBá ‹t†o ÙnQ.œ1GÿH”µõ]?Ä?!Ž£³+q=GJ JºQéÍcñâhˆNR6›}Gù#Y‹9ºl1a_‰/pî=T1…ü,ÄÓaV´òÑM*Îkvse<ѵ(Åì»3´ü{‹ìþ*<ƒPÅÖíb­^‰]%tÑmìÕÀèRHèKuc€ÁàVÀŒÈÑ]ÈúÊY7KqôXÆ ' Ú_y:Çè…8i|ñBI(�¨ÿJì6±i6™èïd=Í»gµ®¤ MÌÁÀ}¸" €SlröÉÄô Ù«ÞO"C,J[£vúvró[ 922öVƃ,Òš>œ,ˆTå¸GÕ«�MëýC rÛ�~����IEND®B`‚IMAGE 442 ./arch/road/footpath/footpath_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE±"!mN�‰��Š�gßhß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�¯\·��KIDATxÚmS[Ž! aK ”û_wýšÝ0;¶…Ô˜CõÙTã¦ã‹c €1çH|Ë€x®€@ÀùUÛ<‰ž‘M,´7íܧÏ8£Ïœ–¨ >(+ ¡¨Ç@Ì&÷Œ¡Ê•³">ÅpÈÀ’#¼­`æ¢xä2å¤äÇ„©ñãV»¨×ïаìåK€AN¿=·Ÿw¥Ââ›÷;_»¤d5ãJUErzÚ'†íŠm€,Òþ¼§ˆÌ(Î}¯ òX i Óšêá« Ys,Ã3oý¥›ýz�WìOkV(eÖϨ Ïv-8ÁU`]>à"8dAé'[ Ô\¥qD]W3<: !V2%| Í&îËR"ˆC‡¾œÌ® ¹ŠóüŽt–þÁÞ+§ô{yp§ 6îÛ</î’K\Í!¾šdj††/®)«3@âö G¸Å7Ô����IEND®B`‚IMAGE 452 ./arch/road/footpath/footpath_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE±"!²""mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"þÖ�ŒG ��XIDATxÚMSrÃ0cÁ¡&æÿïj6šÚáÄ2d>¾ÃûÐïÅ’€?$0Ò›øpŒ|¼¾®g-Ò:bQ/k¥3–ž+;˜Q+­b%BqÇä¨wA”½ êEø'-hþ  Ýž*e¨*úšJ ·[Hò4†Rà_ëô¤Ý™æÏÞ×ÞêmAÉ¿9ÀÙ°«}£ÀÌFÁê€ñÀaV3æXo>íÜ®É#ÕŠqâ,lžÒÇô®H5£¢#Y8p!/5‚˜dj¨�.Š€ êˆÂêOBN¬‡µ?¦×mM ¢£qg˜n’™ê†ìÎA—#@[3qƒ�,Õä Kl¬d®­âBiÒ©Û”Šib82A1ÉÄ*Ó$A çRÊœfßW]½½bÒ~õ-G0hÁ¯GqxÔ†#Øcy¾°öœæ8Ž]ñ—…¼¡_åêÇ^mé����IEND®B`‚IMAGE 485 ./arch/road/footpath/footpath_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE±"!�¤��Ì��‰�›oþÖ�Γ"�Š��þ�mNhß�¥�ŠÌÏŒ¤å°?²""ÂÙ“ µ‰��dIDATx^US ’Ã0Cà#m÷Þÿÿu#i˜d™Äv+œHØã1hܾ‡ÿCd¢u A`6T28@\O0ÏD'*0Ñ^K�W.ÄÜ;++ñaxcŒR9:Â_ÕQ)†Ëœ¶‚J`ºEfÀ`PeÔa—Y¤çc£»T¡ êp3l²Üûh¬â@Gb®`W.ÁÂÉ~&à6c£ãexžG$œ"Q˜è.ˆAMÑ,ŠÑ<á'¿›­_Ò&‰l–ƒ[+(E—1=¾–rÍÂ.8t£\HvŠ ùHŸâ¹¯CÜ/+©Ó¸ÜÖyÐáIº wŽÇÈßI”/Lµüf„˜ü^áZR±ÙÄ>$âÿµ¾¦©Õ¡”¢­Ë{ˆ¦5ä­ÖH5ðž¨U:æM¥Aoú ‚Ø“í¬Ä2Üg'ì�špYÓˆ!n†ï4h·ß·üªw|zÜ7¼½ÖÎ*Tþ0V ûo=²E����IEND®B`‚IMAGE 456 ./arch/road/footpath/footpath_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE±"!mN�‰��Š�gßhß�¤��¥�›o�Ì��þ�Γ"›››å°?þÖ�d1ÒV��VIDATxÚEQ r1³¡ë,vëÿ?7H‚©'Ã$Ä5bÕ‹eò Þ‡~šl“ÀˆEóá dèg·]‹ë¤ed¤i–‡1Œu=Æ]­g)§4øe ¢êMèº0Â?‘êDww²(ô”„½ƒª¢»”@O÷") ¶E¹Vó„DÕm¨{ó€à‹ T^Â[Š„¡ œ4ø/u6÷eøÔ ˜Ãâ%A‰ˆAW ë,/šÔ|¥ë«ÝÀç)‚ÅîUËÆôC…ŽÕ¾º‡ PµÀ^ƒ’¥À\qè¦ö‚ó‡z×�~NÂsJ¡”ñ~V9H]¢S B†„îœ8ÄizLîη4×ÓÿQ3ö•˜âô•¥>(c€+ÿÑEH œÐ$iýªø`âÁ|Æ«WýXPÿ&- C‚PƒIF³¡{¼ÉraM«Ý™Î <4 XB_x–ô¦“·Ë����IEND®B`‚IMAGE 442 ./arch/road/footpath/footpath_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���'PLTE±"!mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�7ë©Ö��NIDATÁAjTQ†Ñšôd(„®v¶SÁ TûÓðàЫ4_¼Î^(Áià@ â.½/ϱ’´œà?/ZdOY‡Ÿ�—(™"+�ó^kÚª]Ö;æ„þº¬G»#>Ÿ'xs Ér+å# h/}1I‡8O�øVoMW…îèÍ;èªWL",²Öœ8ÐÝeЬàÞ“1±òaßø˜€OL‡EïÁæŸ11E݃É�°ÐQŒá/Æh,òWœ›LYqnc �ËÊÚ784,ÖE{§Ç þ™´œŠ‰óÒãL‡F3`ú«ˆHÀ™xoØVYùˆCóý)1I×I7pŸ%S¤BnˆKdY(vZÁáòé²ÈÊçhpg•dZ pضçcXÖÇz}l<*,KŠ;€t•UþŽ0­"M¹Õ�ú´ÝÆç*ÊVÚ����IEND®B`‚IMAGE 462 ./arch/road/footpath/footpath_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE±"!²""mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"þÖ�)J:P��_IDATxÚMS’Ä ãŠkáªÿÿî…në´%!ÐZN­œ~b¯èfŒÍ’€?$0ãÙü Œ||wè¹iȶftæÒs$’9÷HûÈ'ðÏ<5Ò˜²d…Ò[ÄÉnlÂïaÕ×ãy! d øxJ �Å-:<ì*r*€V­Gýä!_âx9dòµª‘ò²üH•J àì àa‰ú 8úÐ䦩€`ÒÃZ±QŸòlLU*µ&C K¸Àë(ÖgÁ ËÉ%¹94é$A&èõÕäxx`·°HÂ)=4n(¨š•êZÖû\„ïqIaó)+Ýöö¶ˆ-' Zƒçs¬�yºO<‘ë®=ÊJú·M†a…n¦¨‡Kד”o�{片ç²¾êïwó¶=œ†UîãIý¡IQþ="ôlþim¼ÖšÐÓˆdèPÝXÜ8«¤ŽèUÌ����IEND®B`‚IMAGE 460 ./arch/road/footpath/footpath_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE±"!²""mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�·|ø™��WIDATxÚ]Q vÃ0cÁ¡fKæûßv’0mÞˆ¿Hp,c[ƜDŽiûå Ë Ç¸p!p϶B×ð5[�D'ºÂ K³nø´Á™±FÚŠ‘žð‘µ1fØy*qá[a²ÌWZ@%>iÝ€ˆ@˜£`Å 2¢å…‹ãY„F>á:ŽUäügGu¡¾#Z¡ò .<EYEè§éø 8Ù)ØbgØRS5Ü|Ý?úJ¤Ðªše^xØýhMÒ˜Âú_ïÈ�÷„{dG„Ê*¥ÅM¿o\AÎË ©ß2© VdlBÐŽ÷Ñ•á xÄöìúÙ¡eLŠÞ5 T‰Xä0JÊyU_»Å«û´ îz#þió[GSìÆÄ=û%·”3ƒzǦ—#é|Î%K¯aôžÒ;W r¡ßæ]Y™²Xk†ørVAEuSpãŠ*uà8ý+=`±Š™†����IEND®B`‚IMAGE 433 ./arch/road/footpath/footpath_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE±"!mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�7ë©Ö��EIDATxÚES¶Ã C“ò½ÿy¤sµÆ}™ï^¾gá™èKŒ—¹“y( 3]úÆ >ó N¿‹20†—TË'9Ÿ¾¤ï»Üîïˆvå´O–`”½U"|}Ü}Ôɦѧ-N ®ä«œRx3 | tg,`º°jžà [ñ8¨·åqB-J-³â$$‡']ÊU‚hÉÑ 1ä@ž4Qk_ £ôÁ«njR®ÜrÒÅ‚˜*‘P%Æ(…ú– åÊl5&¤(‹£”­®U£*K0zë�·ï®&}óV|/wH40Y÷׊k€èyÕÒ%4ùXA]àãÅ _&Y[q˜ÖSÓ{!BœË4êÚ8RK3LÿÕISþ{Z€Åãí¬«˜<7õ$«¡’Nc²âÌjw40þçé¿ñ'ð����IEND®B`‚IMAGE 434 ./arch/road/footpath/footpath_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE±"!mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�7ë©Ö��FIDATxÚ]R ²„0£Õ¾"ëýÏû’ 8»L? Ž5_OøÞ{`çõÙ¬4÷5±®åbW Ìf[ĵfä‘Hô^ÓÖ],u‡Nƒûp»×áÓŸªK@{d!1Û@Ì!?‡ºÐkޱƒ“Mã$!áh…µ÷Eq›—(#åµ`¸úBáÝ®4›CʪmI(d¹k*µ!F÷+")ËúxZ*ÃÀmM#^±¡ÙÁý«´-Z-  ûk´-Æ£ç.‚\[UÝ5H|¬²A´`2R¡»sêö(gó¨Ñ¾žƒœ“0£âψ >%ǵz¾òüËýªu"¤ù “b™Ñù&î¹nâ"ˆsá‚Í"Ì \aìd±v-.cíĦþMŒ'yˆ€ÐÕ“eÈÅJs‰¯b”Ôijnœ„Tç�Ù?³KŒî¯ýn����IEND®B`‚IMAGE 462 ./arch/road/footpath/footpath_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE±"!²""mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"þÖ�ŒG ��bIDATxÚUR’Ä óÄR¨þÿ½¹™³[–’@éw¥›|+ï¥3’€}$0bÙür3ø³Ó®åY¤!2`šµÒKË•¦Ÿ•ã8â üqå\ þ³Qõ&ÔOáoBè×8…8’á4}I©èpO%YûD9Vó¤DHÕm¨{[¹äDDcTeÞR¥2¢–å& ¯TdÎ%ìíÆþU°æÐÎKaN‡n¨a˜ìaoHpAwÚú0.ÏŽ<*LᛯÅí@¸Ý¸t¦GôÐwÌIHL˜Œà¦ŠC¾ÉR™x�¬½Cà%íKÛënw)(›™íbUöðK˜z‰KR2£¾æ˜9è3]„(:êþµbŒÜ·: ¶ç½­D©«žäa?½“0ä|®ñÔT¢/3ñV°4žZ`¼Ã'4uŒµ¬+H†±S%ØãKpÓúþZõÀ•›UÇa€~î b¸‰Z����IEND®B`‚IMAGE 420 ./arch/road/footpath/footpath_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTE±"!²""mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�G‡ •��5IDATÁ1ª €áœåUKAŒ'pj »ÅÀN³0üC´‰ï¶Ö¢"‘½Çàqü>é†ôq yòG@ `³ »�@R{¬.k YTÁ|¸®‹œo� tØ,BüHïx/—Ô¸µ÷ A-&áïúÚLøIB¢°‡™   üX–�P2 4 ÚN T¡~Ù5R¤È=:¤f SïÛê-$0 œ2 If²GH2( »·d(“ÉÌæ_¥ ŠB¹O>‹–ÍJ?^CŠ$¥Ð?Ç!Œ& 0Ô“p‡�ï0@ žÃfÞbñªPP`;-ļ/ ¨ò9"$Ö°KBÞ¾/&Þoû£€Þ¾´‰w„@²ÅÒþÍÞÜÚ\Â^�`~/í?« öÝ3¿����IEND®B`‚IMAGE 437 ./arch/road/footpath/footpath_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE±"!mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�7ë©Ö��IIDATxÚUSrà 3PÃøÿ{'$t»¹ 1²,”«•/*»ò~³/s,QEd‘@¤—ù7 vðêÇi¯3HXÌÕ‰U¯Q�+Ϩ8 ¿ü¤zžŸ<‚UyS5.ߊ”óe'I¡ILRºt¤M¼`Î9ÛD §ŠNÅ ,p»¾' ö6j�Á!jÑ’T·ê&¿ΧjÂC`{ »Y¸`µYJàq{ãÖ;›´*o+y[uïÛ3òw„Ì>'M û6§ZUÝ6²™-¶oÒ¤àn»öx˜`k¶/¥<’Ž»³·G ‰à~ÙŠâý¯ž×»úTZ)O{t¦àI^ëº<”ˆ'ÅaK”Ók¢Îˆô¨ßS­À©[ü 5ÎðíÚ~™l•üzDð'»§#—æ=èíÐSQ4Ïo6³ž,˜u t”~øe,àÀm����IEND®B`‚IMAGE 428 ./arch/road/footpath/footpath_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���'PLTE±"!mN�‰��Š�hß�¤��¥�›o�Ì��þ�Γ"å°?þÖ�7ë©Ö��@IDATÁ1ŠTQ†ÑJcM ™ê¼xvàÕŸ×H/ÀÐzCó eäÈ嘸�£‚vB3Ûò›’Vð¯è(û1æáˆ@Å”)Æ €¤uvÒ͘Eô—ãi±ëñ‘oÎ!ÙxšZ„SŸMÒá�û˜oMWÅú@'ôéa]õLâ@=‚Ř¯Gá@/KcŠ€{[a°g^ îP²0H’"¬º!Ó/™‘@Ó@R`í@“d&€% ù‡¦À² œÎ¤þZA…sé¼+ðÌ&¡¼ÀŠ$§ð£=‡æa“àÝìܽSŒ/¸%t×ÓBq³:8èü²sü¢Á_íy–L'ÅZàlßø½„y?ÿÑøö}†)Å'€DºÊæøv(`›1Lãi.+�}ÙÞÅÒÔ'¯•l ����IEND®B`‚IMAGE 251 ./arch/river/ford_ns.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���”IDATxÚÕ’AC!B¦üû¹ F©¿¤›nZVF^FÇ_ˆührtSŠ.»GO%@†�M߀ ÒÓК²L…Ò3Ëv €ÆÚQ–àÒ„’„#CÒ7�P�ÜhÏ2à+IdÎP»‘Áý…·.΢.àøzf�¶|ºTã)×íÓ"À_2ýI»™? 'çïÞÖÁ¾‚����IEND®B`‚IMAGE 253 ./arch/river/ford_we.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���™IDATxÚ“Q Ã0 Cg[¾ÿ•7‚@¸ŽÊÞWA/ŽÜÒÏõ#jœŒ‚ù²Höž� ‘ ¦Ð7a[ ¡)ÆŒ åw¡÷y\€Á5PO¡0a=ó]´¬À´ã½F(w›(v›:Á¼fvB¼�ª2y‡Û1ýÊí×~êvA¢�v Ñçá"´ýq�$é~ÞɪŋûòÌü����IEND®B`‚IMAGE 465 ./arch/ground/new/forestsparse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,�ŠŠ-ŠVÒi�ÿ���c2�c�Í…?�1�cD����Ì�L»kž���tRNS�@æØf��RIDATxÚMR‹rÃ0kFç˜`ùÿ?w0_Ú³ˆN€”˜ŠÈÞ†OTM Oè–­†·bæ ÐP¡pÅÝ ‹×coAàäW¿Ä|,ßP° ]K½dÃ=ÆŽc¶‚p‚ä£ÎR‚šJÌ9Õ7þr&@Å4 Û8’ú½bÂø7 ªQI¨Å„ 0¤·°i¬¹ÙÇ…)‰ä@?·Ôî8@o§­¨¬æ×kì ,EES„ë·Üw«çz˜}‡5¯ïkõ¤Þ³hYǽÖk¿è‡öS+‚¦ýÞ�QÞ+ðƒ*-Mzw±f„WÿÓLÂŒ¬"mÂûã~Ó sù<– 1Õ8MG©Ó ‚„Õ)Éu ñ´r5ÓZyÔÀ›–áN±N“ ÚË$ޤ}ë‹‘wMº{- >LìæÔôoZÏÊ+s±‹nëÚõÌGÏûÿkdw¿i–…?ÿŽOv����IEND®B`‚IMAGE 419 ./arch/misc/Container/forge.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE����1�G$@@@BBBaaa{{{ R-ÿ��ïs�ÿÖ�ÿÿ�œœœµµµ½½½ÿ�ÿímW���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��IDATxÚ’ÑŽƒ0 Ý–¤±cÿÿ··f9Kªº…äÁ;@Bö#Âì•ûLzF®áˆýÿ!2W@¶ ë0§U�úlšaW Ÿ¡†V uè 0c˜ ð“¨!é8F‚ž†�Å=g 5á.š~ÕcF Cqelê)H ×䬀`…sÏP@€‚|öà:öRà!­å1ÏàÓD^­ sª èÀQÏ[J�ˆ­‹Ë†ç_$¼€Ž$ðní]éR+­xa¨xt¾ƒ/<´þí¯pýŠ } 2Ý_ØÖe€Ý%S‚v,ñ€u5ô3î+._ Kî@¿ýwÃø#ƒ[¦t����IEND®B`‚IMAGE 422 ./arch/misc/Container/forge.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE����1�G$@@@BBBaaa{{{ R-ÿ��ïs�ÿÖ�ÿÿ�œœœµµµ½½½ÿ�ÿímW���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��IDATxÚ’ÑnÄ0é]ìÃ64ÿÿ·]Ø”S’SÕuàÁŒ'ŽÙ3Âì•ëžôˆœÃ-Îÿ(j¡Æ ­€)ÕõX:$kó7ó¹t~¦¨ÇœS ÈySuÍ>ä|G$æk"kÈ-Áœ­Sƒ‰•ǘs7“¡X‘¥*¹—@ Ž#ì‡ €œB Pnì P—DwVöB`.­Å1‹r ðm"ÏÖ„9TtnÀQ‹GJ�ˆ­‹É†ÇoÄ­€ŽðjíUéR+­_ðÂP±7Ð3¼ƒ9^ZÿöÎ+œ¿bãœ�ˆH·'Ãq`·dJpœ‡-/ã°Þ ýˆ¸Ùp“ŠÝ ·\~ æÎÀÿ™Êº(ù����IEND®B`‚IMAGE 405 ./arch/misc/Container/forge.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE����1�G$@@@BBBaaa{{{ R-ÿ��ïs�ÿÖ�ÿÿ�œœœµµµ½½½ÿ�ÿímW���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��IDATxÚ¥’ÛŽÂ0 ÏBkr±7ÿÿ·ø†¥6+ñ° R<Š(–ƒ`%ûÈÀ•8JùŸŽæ7a/ø¼„ÑŒ¿…Ñ>_ÒJðy &ú]ø50ƈü´O?‚Σ úh­·Þç´€`…�a†NFwÆ„Ÿ…P¦£é<&TàB\È€.áØ¸!@w‰å{ `ÁyÚelK"\žç‰ S%P© ,lod ÐA`<´ðø�áH1áuž¯‚POkT´«…‚Q9q,ñ+ÁŠ[¸þŠCç%,8ÄOÝ‚Wó¨À.H\Ì~3¢Õ½@ „y„Qð^ظ tëKá*¼òÕX®Rªò����IEND®B`‚IMAGE 661 ./arch/construct/fort/fort.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���<PLTE�����c2�1�cD-ŠV¿¿¿ŸQ,٤ͅ?¯/_þÖ�Òiÿÿ��c�ÿ��ÿùq@@@¦Ýäò���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ3 wyo��ÒIDATXõ—ÑŽÄ E½Ë$Ýlæ¥éÿÿëV[°ŽåôV)0!|ÁÀmz9î jp—-€û �[1à.w€F€nø€i�pÄŸ{ÀA#À«Ù‘ uÀÐîH'† ^r£€–4�ĈàRôæØÐ™ HàÕ |í;{yãò›©þ׎÷6 ¯ÚÎiKãGA^Pž€³Õ¿Þ(î€+ >6Í~÷}—�û ®@…ðO€d©ÇÀˆRÀß¹7ºSP@êV�ºlŠ€ô ?÷ÓŸÄ…@}ƒç�X�aÑ¿S.HI#[ôѤÕ`Ðû?PÀN@è©��'¥5ÁØ®8 ¯ì¬\iðiZ/´ p ‹üZõk$¸� ð*fe*€¦r<.,9h°²bˆÊd�� � + ,˳é^†–Òde:¶»A*£XÖ2R'@(Ø�C�ˉMk$GÑ9©pŸA,ƒÚB?÷_ص]É|ÚÜ”Àœ#˜í»hg>Ì -*ÿŽõù°Ç¼‚®KWêØG�üœv #ÿ�UÀ"`Æ?`Q€˜ò«ª€Ðÿ5Á£¿Ëÿ7:(:Þ(����IEND®B`‚IMAGE 423 ./arch/construct/fort/fort_sym.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEœœœ���c1½½½œR){{{cccJJJkkkŒŒŒ­­­ZZZAfV���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ ¡¶wÂ���ùIDAT(Ï]An! EáXn¢Y¥7°¼±«zÞ ¨÷É&Ò£ê’M£\¬Ÿ16^€æÍÇßßεò1.ºÝ‚3°m\Çmë ª^ïºþ U(<ëj _vEœ Ÿ¡!NEÌpÉ9NüRÖtQ•Þâ …¨&àÑ‚Æ g¥Öo€ZëÙZà‰U ŠÀß°¦øB8€ŠNŸºžMÑÂôÑÊ®ˆEÞq*J §é:]ž²4 XƤ$˲°pŸ4ˇ ˜à‘åÏ~þLÑ¢á µÉ;`=ðËÌtª�£…ó­ÛûIÇŠÇréõÔWü lSô¬0“f����IEND®B`‚IMAGE 383 ./arch/construct/fountain/fountain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaÿààà��¼���hàÿÿÿ@@@¿¿¿��ÿƒÒ’���tRNS�@æØf��IDATxÚµ“Ñn…0 C¡õuÈÿïj¢J¶I{˜%x9Gv…Êö 6üˆQ¯øŽÙH˜m“¾ð^±€:ÞØÌ0žÖ�óD˜ ’Çà­¿øÀ Aðˆ6„nN »óègkÍ:cðÌpjçç$,láUp œŸ!í°Up•P ƒ3Á„Azq-2 ƒ£N@æ}ÃŒ Ë™'H*vÏœ' 6Á³ p8¯†ÔHÌsmpµ²« d¿7Æ+ph ]ü&€Tæ%L£F˜zRöäë† ± áa�©¿8Äï‚ ©{\˜ÞÍXqwšøÓhRPŸp_£Ë¼›"l¿ÿ¿•ÊöÇ|Ê ltöJ����IEND®B`‚IMAGE 381 ./arch/construct/fountain/fountain.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaÿààà��¼���hàÿÿÿ@@@¿¿¿��ÿƒÒ’���tRNS�@æØf��IDATxڎѮà C[ðÒòÿß;:eÜNºÚ¬Ò—sâdû!ø‡»øo5¦ÀL›Âû¾»ž9¶ØfJì¶b`$ñRá·í¢âÜþpFZãQ½”bõX ñ4)ÎÇIlå€úÇœ  GE lÂô(p§… ȉ”wãua^0R0cLƒ¯ Æ*U¤ ¬¯÷ëÄ"Œæhkƒ ´Ø >ú"Ìzˆ5_›ClQ€~ݰ¥<J"±!„4èqjïÂ@ò·Ð/žìÒè}œª—¤0;‚ÍXiÔjC K–< bz¾VÊnañ{"‰ïÊÌöežu­ ߦýÃŒ����IEND®B`‚IMAGE 380 ./arch/construct/fountain/fountain.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaÿààà��¼���hàÿÿÿ@@@¿¿¿��ÿƒÒ’���tRNS�@æØf��IDATxÚµ“ÁnÃ0 Cg›µ¥Äÿÿ½¥"ªÐ´À#’ŸH+uþE€~qø¬Eð¹±[k°wÑÔÛ†ÕÞ®Àz§=]Gú`JñÝF£VÄ´N‘y ôÞŽÒbþÞfz>Î9W<0Û·˜Œ(€2ĸá˜ê@LXÀ�ÒQ’‡ à� Èàîu‚í+¯À%ûyJ @ÒÏ+€—^'�í]€ÐB ÏßA%¶¡Ÿ�¸È%pIˆp4ÊÓ/Œ¥¯s 2!"Œ"~N„Cù …ƒË:Ø•~ýºu¼¿7w¾÷¶B-ç+ÒB´¿ÿ±þ¨_Ÿ é¶®y¾����IEND®B`‚IMAGE 219 ./arch/food/fried_egg.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÿ�ÿ™™™ÌÌÌÿ®�ÿÞ�ÿþ�ÿÿÿR® Ê���tRNS�@æØf���qIDATxÚÝ’Q€ C C¼ÿÂ,±õ÷FÖ`úy²ÇVx÷˜u,ygh˜8k9Þm;aŠk½{6+—àÕpÞ„žqpŠr\Ñ2kÊ¢©ç‘DBÃâ ß±þCh\ )Øú£9�?GuID����IEND®B`‚IMAGE 174 ./arch/weapon/artifact/Fhammer/frost_hammer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���SIDATxÚÝ1�! ÿ´3pe E*MÅ뇂4¸¤¦µåPƒ[Ú.8Å1.€O[ÀYÝjå°ˆ Ä×6ý%‰ÚïÀ–@&¸'˜¹h½£÷�ÖFà ����IEND®B`‚IMAGE 182 ./arch/weapon/artifact/Fhammer/frost_hammer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���[IDATxÚÝ1À0 þÿèJfuÂЩ%ÉÄa£ðCi:¹ö<6c;€Öt\ù?mÈ�ål•ì\V%œ/Ò¶ýå>B• TÚ ‰›:¡N¸4‚FzQ¾£�á�Ôx-•����IEND®B`‚IMAGE 191 ./arch/weapon/artifact/Fhammer/frost_hammer.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���dIDATxÚÝ‘[ À ›ÜÿÐ…iA„¡ýjw™5¢Ç#W[º£”¾¬¾Ô”Eùpˆ+õ¡±‚4'Üå¾íî-›'DfÂõ1Ä¿Š&„¸Äˆî{¢;"íÎý+q?�äe1ƒ8����IEND®B`‚IMAGE 184 ./arch/weapon/artifact/Fhammer/frost_hammer.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���]IDATxÚÝQA � šþÿÑ ‚²uèTÖ Rç`ñ! èåYReÍb¨Úº“+ûH€i€<v€ôê†Ešm€Wø}Ú( ¯ëß²±·T`Zz=ï<)@žBÄ¿‚³�Þ=Ñ)>����IEND®B`‚IMAGE 187 ./arch/spell/Bolt/frostbolt.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿGllÿÿÿA€gl���tRNS�@æØf���`IDATÁ± 1 0B•á)šTø*c¸Ô˜!@5À–€í,Tß È@”à€àΟ��”æü õêSŒóà�"ÀZ €j€-Àv@õ0¹õtÀ§�þ³s‚����IEND®B`‚IMAGE 187 ./arch/spell/Bolt/frostbolt.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿÿÿGllÿÿÿA€gl���tRNS�@æØf���`IDATxÚ­“A �! —ùÿ£¼äP›hqð" !-úXÇ^^LP‡ªd8÷²»"¡BÝò°£Ëê—&AÖmš„j-«÷@tÌá)A Ôá!7³ñàƒ¸sú �Íp����IEND®B`‚IMAGE 184 ./arch/spell/Bolt/frostbolt.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿGllÿÿÿA€gl���tRNS�@æØf���]IDATÁ± Â@ÀÑE'Wq!ú*W®äCËU Ìð«øÔÞζt‹­-7š±ÍI®jjꎘÈC8pÒîfz×D¥{ëRñR±.¢GEm/=%¾iÿ{éï.í–Q����IEND®B`‚IMAGE 176 ./arch/spell/Bolt/frostbolt.141 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿÿÿÿU|õl���tRNS�@æØf���XIDATÁ±„ �À…wF#ç3>µBKàû +°Ëü]7€­âœ(%á„ tȰbÉ "0Z«´†ñCôŽ +ä@…&Ì ïïŽÏƒtÀòŒp ßwž����IEND®B`‚IMAGE 187 ./arch/spell/Bolt/frostbolt.151 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿGllÿÿÿA€gl���tRNS�@æØf���`IDATÁ± 1 0B•á)šTø*c¸Ô˜!@5À–€í,Tß È@”à€àΟ��”æü õêSŒóà�"ÀZ €j€-Àv@õ0¹õtÀ§�þ³s‚����IEND®B`‚IMAGE 187 ./arch/spell/Bolt/frostbolt.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿÿÿGllÿÿÿA€gl���tRNS�@æØf���`IDATxÚ­“A �! —ùÿ£¼äP›hqð" !-úXÇ^^LP‡ªd8÷²»"¡BÝò°£Ëê—&AÖmš„j-«÷@tÌá)A Ôá!7³ñàƒ¸sú �Íp����IEND®B`‚IMAGE 184 ./arch/spell/Bolt/frostbolt.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿGllÿÿÿA€gl���tRNS�@æØf���]IDATÁ± Â@ÀÑE'Wq!ú*W®äCËU Ìð«øÔÞζt‹­-7š±ÍI®jjꎘÈC8pÒîfz×D¥{ëRñR±.¢GEm/=%¾iÿ{éï.í–Q����IEND®B`‚IMAGE 176 ./arch/spell/Bolt/frostbolt.181 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿÿÿÿU|õl���tRNS�@æØf���XIDATÁ±„ �À…wF#ç3>µBKàû +°Ëü]7€­âœ(%á„ tȰbÉ "0Z«´†ñCôŽ +ä@…&Ì ïïŽÏƒtÀòŒp ßwž����IEND®B`‚IMAGE 180 ./arch/weapon/artifact/frostbrand.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿ���ÿÿÿM°à ���tRNS�@æØf���VIDATxÚÕ1À à ùÿŸ[Y¬gu¤Yín]š~’Œ|÷åm†6B*Â2ÎüÌ‹àûÎ}A9ß7îËÜöè‹pú*$ÆÁ"œ÷¾c¸ …ûÎúªMæüY����IEND®B`‚IMAGE 444 ./arch/armour/shield/frostshield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEœœœBBBÿÿÿ„„„ÿÿÿÞÞÞœœœ{½Þ½½½½ÞïœÎçBBBZ­ÖZZZ­­­9ŒÆžƒ���tRNS���úvÄÞ��5IDATx^“‹jÃ0 E½ééWºÿÿÚéJ4iYG{AØpŽ¥š:-óõÝ>‹¾còã:„—­%ŒH0}âž°ëÝ{O €  Ü#⊅9Àíq@á>DudrÒ•â„©Ë)§`NdÉ×âvï!"¼³¶EÆ Á˨ÝÄCp74X?ÜÎ0¸'çMêV‚> à9‚”JIE¥x@! l,„kwñ Q.ªD‚»2eÍÚlž“î#p`#4\ç<Ž«ÃÛß Â0×¼ ¼nˆ”`¤î¼ÁK¸^C È‚à%T„Œó¿X†Jw®lELiæ¦(h=Ž(O`p9P)öQœÛMÛÅ“Å9šGbœ§G!›À™ Œ"éœT_}y�¯a]¥*…Ïó ÕØûÐ`y7����IEND®B`‚IMAGE 235 ./arch/misc/Container/frypan_closed.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÿ™™™���f��fffrrr™��™™™ÌÌÌÿÿÿ@M"���tRNS��v“Í8���zIDATxÚÍÑËà CQêdâùÿ/Žy°0³kUK¬îAB¢}c¸¶ÌìËLOª©€æ�ö>„SÂuP[0X�YÖ`š%À>8 Òͪoˆw¦ÓgØ.1zÂvmø~¿TÙw³_u”]à@ÕÛ¸_ ´Þ ö'Þ÷¥¨����IEND®B`‚IMAGE 207 ./arch/misc/Container/frypan_opened.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÿ���&&&f��rrr™��™™™ÿÿÿ V¦ ���tRNS�@æØf���eIDATxÚÍ’1À Äp üÿÉ¥Õ¡,[+<E²³D)_€Xê.|ÂbL6 . äUØàzY—89è³x¼ ˆí%©•Þ'`|#2p~1¬%xŸS¼O~÷¤÷ACÞ£ý PNæŒ?ŠÆÙ����IEND®B`‚IMAGE 266 ./arch/armour/helmet/fullhelmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa²""‚�����@@@¿¿¿¶4ö���tRNS�@æØf���IDATxÚÕ’AÄ0H ÿñ:lÔÎ}}Š4#ˆÓ~¦<Ï:')¬«p76¼X ë±ãR�2n™˜ÙÜg£y’šCèe5Í·*ƒªp1!’Ø­Ñ1½…ÌQØW ¡x¶ɸaâ½!¸£ps0fj€d~Ü”pZ’+ý%ægŒÀÈgÁñF¿¤þȺ¢LÓÌ>òùÜx;����IEND®B`‚IMAGE 1035 ./arch/monster/animal/fungus.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��þPLTE÷Æ÷Þ)�½Æ�çœ�µÆ�”¥�œ­�¥µ�Þ¥�s„�k{µÆ­µ­Æç„s�ç”Ö„�¥­�{„s{�19œ­�µÎ�Œœ�½Î”¥¥µ¥œÖŒ�ck�s{½ÆÞŒ”¥¥µÖ”½½s{kçÖck�„”)œ­”B)„J9Þ9)�)1!”œ�œµ”œ!ÆŒÖ)µ!ck9Bœ1!”œ­¥�ÆÆ�9B”91”¥)­µœ91œ¥)œŒ!ÞŒ­½sÞÖ)ÞŒç”!kscçÖïœkÞ„kçŒksÖ”sÞŒsçÎ)½„sÞ”)ï­)Þœk{ÞŒç”{„Ö¥�))µ„„µJ9¥¥�11œ!Œ9199sçÞçŒ)΄���)ŒœÞŒÖ”�!)œ!�BB�νΔ{!µ­!Þ„Þ1!­”µ½!”¥œB)Æ1)Æ{s!cksÞ„sçŒ!çŒ!ç”�ksœ)!Zkkœ)­¥„B9”1)ÖŒ�{Œ)çœ9ÖŒ1΄!”Œ!Æ„œ1)ŒœƵsç”sçÖ1Æ„{ÞŒ1Þ”ZÞÎÆ1!„J1­”„Œ”sÖ„Œ1)ksRçÖΔµ”sµµ)¥­½{s!Œ”k{ï”kÖÖcÖÖçœç¥s„cÖŒZÖέ½SŒ=���tRNS�@æØf��»IDATx^ÕŒS›QOñÙÖÚ¶mĶmÛ¶Í™™}’\l&?`벫ÞFKï?~þ_>›úôùË×DÚ÷-7ëäÇïä§g¢Yª…=ÿ®Ç§&òÓ/g^Ãä›·ðî½çÃì¢õ݉ûuãǓ —µ>•⹿oŽ ôæ¯\¸ÖŸì*½~týæ-ÎÜ©?þø‰“ƒCÃÖÌù̹¦±óÐq!,<7:0j½}°»¯/èûJö†AÄÃi*¤9jù s Û› ¤+c$»·eXééQhtØQ@è¬@Ã%#‰dÈí{ð¤=»¼}åªbÍ j×Ö£‰(446m5ͤ±Kµ¿Uヲ5œ®€Ógê¼h$ˆÇV»HÀ$¢ eú¡jjjŸ·Q_Õ‹ºz„b,6¿‚u±YÙ¥ªR ;}œÅ¶·cEmÓp0¨…*š_ U¥X`g½í'6\ ~?¥gŒµx½h1že܆ɖ,Gޏ/»%InÙŒœI)ÔÅ%YŽ•;ŒbB°KŠË±5Û|§"!„VrÉúáT˜ ì*Ù©Ø K8& Ð’ã!Pä=y§ü����IEND®B`‚IMAGE 1057 ./arch/monster/animal/fungus.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE÷Æ÷Þ)�½Æ�çœ�µÆ�”¥�œ­�Þ¥�s„�k{µÆ­µ­Æ�¥µç„s�ç”�s{”¥�Œœ�{„s{�19œ­����µÎ�½Î”¥¥µ�¥­¥œÖŒÖ„�ck½ÆÞŒ¥µÖ”½½s{kçÖ�)1)œ­œ¥kçŒÖ”�„”�œµÞ9)!”œ!ÆŒÖ)µ!ck�9Bœ1!”œ­¥”œ9B”91�ÆÆ”¥)­µÿcck”B))œŒ!ÞŒ­½sÞÖ)ÞŒç”!kscçÖïœkÞ„œ91ks„J9sÞŒsçÎ)½„sÞ”)ï­)Þœk{Ö¥sÞ„ÞŒÆ1)Æ{s!ckµ„„µJ9œ!Œ1)99sçÞçŒ)΄ks”1)ï”Ö”�ksœ!{„ΔΔ{¥¥!Þ„Þ1!­”µ½!”¥ÞŒ�!)Œ91�ν!µ­sçŒ!çŒ!ç”�)))Œœœ)!ç”­œ)­¥„B9ZkkB))çœ9ÖŒ1΄!”Œ!Æ„œ1)ŒœÖŒsç”sçÖ�{Œ{ÞŒ1Þ”ZÞÎÆ1!„J1ƵŒ”sÖ„1Æ„­”„RçÖ�11µ”sµµ)¥­½{s!Œ”k{�BBkÖÖcÖÖçœç¥s„cÖŒZÖέ½)Ñ ���tRNS�@æØf��ÎIDATx^ÕŽƒ®%QE»Žš¸¶ùl۶ƶm۶ͯœî—~7¹sg>à­ä$•Z{W· ùùë÷ÿå‹™/_¿}'=?2óÿò“÷²³Ãs‘4Q®ÂöäÌTvöõÜ[˜~÷>|t}šÿ«}êá£Ç#½ðäé4h•­Ï[&wfÅhiöÚu€ƒ‰ž‰›·@ÓnßaÔi_ò'O5Ö=ŸºÐTvÆ.U•eƇÆÍ@ÿ�ìÜÚ®cþPÉá`’¨ö¡U«×~ÓÊÅîæ-Ðݓҽ;Òq$õõI$�ìêâ¸+F�îê‰p8…Ÿ½„Wé…ŽµëŠ#P»¾k#·=†Æ¦#ÑhB?.›×ªO€VÓLVÁ¹Ëun®ÔÊö…p Šy*µ«Õ2ÔÔnh'žæ­u-Æ'<!¾m ómÒY›¥bØVâaÔæ0½‘’ävùýJ *¨ø”@³:>·¾ÓŠ˜0•ø|„¨ŒRZ^ïvsKƒk73¡¢!‹r.op>p ‚XïõZ.§­g—Hˆ ¢+òZû|(A£`coŽr…”3ÂcŒIŒy ë–ƒ†F>µ‚îŒ)è[‘EÜrã•-SÎÝ$����IEND®B`‚IMAGE 1071 ./arch/monster/animal/fungus.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE÷Æ÷Þ)�½Æ�µÆ�”¥�çœ�¥µµÆœ­­Æ�œ­ç„s�ç”�s„�Œœ�k{­µ�Þ¥�{„s{�19�ck�¥­����½Î”¥¥µ9B�µÎ¥œÖŒÖ„�s{½ÆÞŒ”¥¥µÖ”½½s{kçÖ�)1!ÆŒœ¥kçŒÖ”�œµÿcÞ9)!”œ�„”Ö)µ!ck”œœ1!”œ­¥�!)�ÆÆ”91”¥�9B)­µœ91ck”B))œŒ!ÞŒ­½sÞÖ)ÞŒç”!kssÞ„cçÖïœkÞ„„J9ks)œ­sÞŒsçÎ)½„sÖ„sÞ”)ï­)Þœk{ÞŒ甜!ksµ„„µJ9Ö¥99sçÞçŒ)΄�{Œï”ΔÖ”�))œ!¥¥Œ91Δ{ÞŒ!Þ„Þ1!­”µ½!”¥�ksÆ1)Æ{s!ck)ŒœsçŒ!çŒ!ç”�ν!µ­{„œB)­œ)­¥„B9œ)!ZkkïŒ)çœ9ÖŒ1΄!”Œ!Æ„œ1)Œœ�BBsç”sçÖÖŒ{ÞŒ1Þ”ZÞÎÆ1!„J1�11Œ”Ƶ1Æ„­”„RçÖ”1)µ”sµµ)¥­½{s!Œ”k{Œ1)kÖÖcÖÖçœç¥s„cÖŒZÖέ½Ô0ø���tRNS�@æØf��ÜIDATx^½“c³A†ç4ÆZÛ¼¶m›±mÛ¶mãWff+ÉTm6Ÿr+ÏÇ󢻪O3KEÅ?Ƭü×oß-9ß;;÷áã§Ï±$ÿ%³X¨hêVv~d!œÆ‚¯ÑñGÇìÔÜtvþùÂK˜yõÞ¼u¼[´,¹ôíé»÷îöƒ‡3 U¶>V¢ǯôðXiöÒe€+ƒñžñ«×@’®ß‰=ñ³`øè±ã#£cÆ"ËSgšÊÎBç9?ËŠ™‰¡ ÓÐ?�;wƒ´§{¯,ËÔ¶¯d¿?‰ÙÄÐÁC‡ }ݲ\výèîIÉñÞ-éâúú8ì ¶u1ÌEÃ� wäx(”¢OžÂ³ŽôšŽU«'ÃP»¢k-³)††Æ¦]‘H\>¡›mÅ'Aªiõ'«àü…:'SêEeÛÝ4 ¡6*¥ÓÅ:ÔÔ¾oÃ|ýʺ€q #dkÙ ;B¶îtŽëÜ$¼(áEUMÝ´pqz›€¼^ÁWå‚‚¯>AÔ›ÀïãMDƒ³"!¤ºÝédòqœMˆfˆELAì튢µ{<Yœ‡Ý¢¢i®"¥X2C0¢¹•¨æzÔ\`O«El£”ârQ1:š œ¡7¢(È–“®­LAT’CÍKV,ùDz†ÿ‰GaTP†iëÎ����IEND®B`‚IMAGE 1090 ./arch/monster/animal/fungus.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE÷Æ÷Þ)�½Æ�µÆ�”¥�çœ�œ­ÿcµÆ­Æ�¥µç„s�ç”­µ�s„�s{”¥�ck�{„s{�19�¥­�Þ¥�µÎ�½Î”¥¥µ9B�Œœ¥œÖŒÖ„œ­½ÆÞŒ�k{¥µÖ”½½s{kçÖ)œ­�)1œ¥kçŒÖ”�œµ���Þ9)!”œ!ÆŒÖ)µ!ck�„”œ1!”œ­¥”œ�!)”91�ÆÆ”¥)­µ�9Bck”B))œŒ!ÞŒ­½sÞÖ)ÞŒç”!kssÞ„cçÖïœkÞ„œ91ks„J9sÞŒsçÎ)½„sÖ„sÞ”)ï­)Þœ”1)ÞŒŒ1)Ö¥µ„„µJ9œ!ks99sçÞçŒ)΄�{Œï”ΔÖ”�))œ!¥¥Œ91Δ{ÞŒ!Þ„Þ1!­”µ½!”¥�ksÆ1)Æ{s!ck)ŒœsçŒ!çŒ!ç”�ν!µ­{„ç”­œ)­¥„B9œB)œ)!Zk)çœ9ÖŒ1΄!”Œ!Æ„œ1)ŒœkïŒsç”sçÖ�BB{ÞŒ1Þ”ZÞÎÆ1!„J1ÖŒŒ”�11Ƶ1Æ„RçÖ­”„µ”sµµ)¥­½{s!Œ”k{k{kÖÖcÖÖçœç¥s„cÖŒZÖέ½ÌFx“���tRNS�@æØf��ïIDATx^­’c³A„÷ÌÌ/mãÚ¶mŶmÛ¶_™Ý›d“›;o¥R•þ0»5Ýç™ó¡™_â;üòæaŠvA7yʇú¨©Ï_¾æOM¿{ÿác,ý”yKóÇodggÃi,úê‹Ö™ŸžÈÎ<}“/^«׎7&„ÿ>}sâö»C]pïþ$ÈeM5KÆÄ õd/\¸Ôï»|dùê5ŽØ­?Æ9:84¬_CädêT}ñi9ã—$.3Ú?j�zza{oßNwuìV…uï)ÜëObÉÚ¿ÿÀAÝ_³d~ví:èèL)ñ®M麻춴3Ìu=�µ”x(”b?g­ée­ËWäD=Pµ²}5³!†Úºú‘H\9¦´Šã W6ù“åpî|µ“)ò¢â­.6 aÝ*”Ég+T¨¬ZÚ‚£ «ªúQŒ»y#l ¹›…C02¦ 9˜+ŒrÄ4|#" $¨-"òzE_¹_ôˆ¾+ Þ ÌVD qöx0–8BHM›Ó¹¨Žœ!’Ð͆*ûz»¦%ÚJóÊ*`§%¶‚Rê8Áˆe‘K³$l)ͫᰛeY\Âi:£‘ÒÑ q!y¤²Ï¶ù�ÿ32¯àó?‰Ïãéé¿°þy»oÎ S oß©����IEND®B`‚IMAGE 1077 ./arch/monster/animal/fungus.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE÷Æ÷Þ)�½Æ�µÆ�”¥�çœ�œ­ÿc�s„µÆœ­­Æ�¥µç„s�ç”­µ�k{”¥�¥­�9B�{„s{�19�µÎ�Þ¥�Œœ�½Î”¥¥µ9B�ck¥œÖŒÖ„�s{½ÆÞŒ¥µÖ”½½s{kçÖœ91kçŒÖ”!”œ”¥Þ9)”œ!ÆŒÖ)µ!ck�œµœ1!”œ­¥�ÆÆ���”91�„”�)1)­µ„J9ck”B))œŒ!ÞŒ­½sÞÖ)ÞŒç”!kscçÖïœkÞ„)œ­ksœ¥sÞŒsçÎ)½„sÞ”)ï­)Þœk{ÞŒ1Æ„­”„�{Œ�BBÖ¥µ„„µJ9œ!Œ1)99sçÞçŒ)΄ks”1)ï”Ö”�ksœ!{„ΔΔ{¥¥!Þ„Þ1!­”µ½!”¥ÞŒÆ1)Æ{s!cksÞ„sçŒ!çŒ!ç”�!)Œ91�νç”­œ)­¥„B9!µ­�)))Œœ)çœ9ÖŒ1΄!”Œ!Æ„œ1)Œœœ)!sç”sçÖZk{ÞŒ1Þ”ZÞÎÆ1!„J1k”sÖ„œB)ÖŒRçÖ�11µ”sµµ)¥­½{s!Œ”k{ƵkÖÖcÖÖçœç¥s„cÖŒZÖέ½F È6���tRNS�@æØf��âIDATx^­“cÏd1Çïi{ͱíylÛöÚ¶mÛ¶ý)÷ÞIv^<ÛÙl6û{Õœ?Ú¤-S„gþ¾ä€§üzþ…oß”ŸÎ~üôùK"%}Í.жšº›™f°hrýžžšÎͽ˜3¯ßÀÛw®÷ ‹Òw¦ïÝ0ÚÍ€ZÕöDˆg‹5GÇÊr—¯�\Jöv]»ªzã&Gœ¶_ú±ã'FFÇÌ1ÄΤÏ6—Ÿƒüù ¢pÙ‰á Ë00»‡ö€º·gŸ¦i¬wÿä` +¶áC‡˜úú%…ì†ÐÓ›Ö’}[3 $ö÷‹8�*lïf˜Ç¦ŸkÉH$Í~X Ë:3+;W­—MCÝšîuÌ–D›šÆbIí´nµÕ\�µ¶-˜ª€[wëÝL™•ï¶³Q€ëÕ¡J}V£CmÝÚJ,Uoª™‡0BÞ–p*âm/A¾KÇaó¤Ä‘¸ÏÒ-‹ˆ¨WÊÈï—AÙ#ªmÄ·"*^„dÁ)ØãÁXá!í·›YŒkgA Sì`¨8—;Áp´–zX6ÑÎ †á Ç- áŽVê³$±,² q#üò$%ßÎa/˲¸ÌšÃGìˆE¥l _4ª¥€ùßð”}BÿÈ?r„R÷žx‡F����IEND®B`‚IMAGE 191 ./arch/system/mood_floors/furious_floor.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE„��÷½ïñ¥H���tRNSÿ�å·0J���fIDATcø Hÿz†ÿÍ€b‰ŸçÄ™™@âØF ñø1øüH iûÀ{´Ht-ö?„ÖJ—H@±£­wv:ö­ÙÑ Ó¶fû3lëÍ.†pwl“Žf2�Ìj¢ÏDY����IEND®B`‚IMAGE 2946 ./arch/monster/animal/giant_worm/g_worm.x31 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE��� �  �     $"�      !  !"!$% (),) %! %  ' & %$!'!"*#)('"+&)$+"- -*1),,%0'/+-'0(/+7,;188;2>8>8A:F>DGECZf" 95&-$&5A//8D)2)4(! '# )/.&*/)0*3.350,503/0.*0543/7&,57#/0;1602;/>1C7:62B7;7# 4F=E&%$CEBK?L@O'0JMFPFQ?VGXT`Ym%ex$*/,JN qvp%-0+0"JU<JJOIPX8LVe! 9;3]l *-)<D09 %):L;:(6FLCFB #6<2:64:2#$$DSJP$AV LR#% ?;LZRX"I^P`  %5UgVf&/1Y^X\q#BAglfjpj%3€….:¹¾¸8C=KD;WTIGCIRU%'("?A V^ Se *Pi<ED@>5EJDbl"CR"fs!ns#6/5:=+;POtˆ&8J%*7àÐc���tRNS�@æØf��oIDATx^–³kË…3g÷²ÛÛ¶mÚ¶m×¶mÛx¶müŠ·²ëáÔÕKî¨T¥’Ê7VÑi¸¾H I’�®¯'[¶”p*ª[š&}­§!( úò³ó’©ÀøòÀrúÈò}û ÄÊ{,þ ñÐoÜ·àŽe>tÛ+šZ/kdÁ”î —­[÷ø‰)0ƒùÊ è­taï¼gû“|¼OðÔãbï®G^ÈîZ¸ Uº ðäøº{#,€'%?â·xNf³—í7ÞÇz¤ü[�¯üá•;îÉ.ËGŠ o}÷'ñäß‚ZNÿTYšu^*1°Gh1䟀ð{Þ¥·Dš³ “bvÜêî%\¾¼ˆê•o|àves¢-RÂ-qEλ¤ãÖ ðAÅìr¦[ ñæ[Ì>¼œ½S´!‡‹0ùÛæ“š©3ùNêº÷ß–uÒç¤ÚeíÇÃ¥Œœw‹1_dÙ•;.SÛÎñôÐ?öµÎxƒÏ¿EA2/ÏR'†øh¨óýö:w4œæcyDƒòB¼#?ØeC§†^+ FgЛ¯ðl¹¡»ë‘¸×ÿzç¦L‰�ªY#“¨+_!ïgÂÉ´ï˜5öbÒKÀ*J3PÀ– 0 ,ƒV­Ø,‰FÝdx ®üÅEÁz*“F˜‘=Å©PÔ"è*@@�%éñ–„dÙ´±À]ª€þ Ÿ%îÞÍõ&)xo§¶ ¤$lDÁè8²Ã@-ØR䥴„ÚŇ[1‚®B%Ú@&#DN×';-Å&PQÁÈÕ: Ê [ Œˆ1S’ë†/ 4{ã©+p…LPôS±êád¹ Ò…ÃwÝ=¿{þ†zKËWU`µÅ³vÊêÓ™U«æLë­þ¨'®ýxó†Fñ žšæ"÷âf™·c‰¦ŽÙ+úÚG‡ß™xlSëWãRrÎF}I“ @êê“=[še¤& /yê¶V4Ï[S­EôXC¦áÀ‰‘ï&P>Uºaµ[@€(E‰‹!è3~¼q­%|™†®)œ7ÛT‰@”Å<ª“9Dâ#,I?°c8SŒ_ÌËLÛÙy©ºªê‹JL¥²1cnãÖ„—`‰ÀVA@Ùolªlæ¾pü†iµM¬lXS«@ 77uZ¥`€ñ*‰E} ¥×$õšD³Bûs¼»emщÁØÚ™f H·™˜ž)i]Õþж¿¬én,ê骳ˆÌü íÞ£óΟÝ}T¯BDF&5MKÌ-" R©åÓ»~þö/_½ýú‰³ï ]ß8”Éô¬Yâ¾ê&¨Öö¼¹fðÌè©EŒA¡¬´œ‰†? óŠëVyþ†—oê=|ºâØíc³Žm:²¿§ÊóŸúv|kâõ¿>×\죓"¸0Z‚ÀÆJ=ÕcB¨*UT¹-Ù9PWRÊdö^<1úÌ7OmÛvb~©4Ås=Ó^9ÿ‡sÓJÌN¸7æ—"s§‚©Æ&Ç,(Z8^Îë÷ê)¯®ó}úNžéÄÄé/äxµ¦ãøÈﻎìzYVur•Í}h)�[©Íë‹=‚ª"ýQ.ªDÒÊÙP¼¥âæÃ»¿uËM=&q¦åªô/Ξ™X©}ξŸíø¶áC!¨¥Bɶz ,à•dÒÞTc×àÄ{¿ë›)9²wÿØÜ×n{HâͶ.z«š0¼†Û¼®žŒ¨æDTˆÉD7W¶·ÇM]€­ÚŠŽ¼Üo˜š—hjëÍái«ôw_CÆXD�¤£*EPÝVºsðþÑṸD&^‘~æÒédÊ#åx¡¸á£^2é%Ýû{MT€,�äœPà”ÖU%Æô6+®º(Zf͹ó;/:ýÛlIxÖ齕bš¹hé›ÝsV{‰OEP©‡a¡�ÊÌÚ¦Ù‰%ïÉšíR}FfVo¦&¬s.ɪ/ÝœX¯#Ív¯xp(¥³$ì˜ûØHî¤ä”Äck¾¿¨%QiYꢈZËàÉ‘›V6hÓÇ:œîK1@$D÷[Æ«çîš^äöK„WA ’¢—}ô½š ›7X–j»Pð2ÉöÝ«û{Goz`øÒþ‡çt Æ€·JSá“gš{Ý~Ù02 –¤éšùÔ7×>{am¦+qE$ÈÍBƒî¢ÔÌ×ú¿Íq½y~ܲ„\T#.'çÍœölw›yÿôTªêQËœY=w¸å–kGÛkçÇ-æÔÀ†—VNßyýœ÷Îý娩Œ)Çôh0 �ËJáøÃ·Œ=Ww]WÃûk«·´ô§ç‡j/ŒÕ­húUE<Ûå¢jÔšÁ¸]Çëeú†gWz/ÆÁAPƒz|ýu7üð€U_ÿéÈÒmƒÓf¶Ÿèlo+6¥’d*NÝ tá½­n³¶DO[ øx¢)1�ô¦35£b`ËÀŠ-‰ÎþiZº£êšºL‘nñ*!ã]"kxü§É&ãΧ €’!€¤\` K;>k“ÙeõlžÝ_ÙU“´Òr>�Öž2p‰2Qãá%ô!ÆŸel[�ÉiŒVN‚áý†¢[†R–4÷7„,yja¡*Šÿ=!‚�@!÷å5V¤*QeKæ&‰@ÒFЭèñËÈ¢�ˆ“ÿE¢(1š¡ó¹Ë®([º¼XŸ#@¸XÔëçQ@˜ú[OáW €��Ѷÿ=6[ðû[ 6†* �(äXÀ,8?ø¼À'Põ*[ “‚!È1Oîx"2Ï(„�ZÐm…Ú”Ú‚ Ès²Jê —"¥N4á³À¿�'ù|A����IEND®B`‚IMAGE 2946 ./arch/monster/animal/giant_worm/g_worm.x32 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE��� �   �     $"�      !  !"!$% (),$+ %! %  ' & %$!'!"*#)('"+&))"- -*1),,%0'/+-'0(/+7,;188;2>8>8A:F>DGECZf" 95&-$&5A//8D)2)4(! .&)/0*/)**3.350,503/0.0543/7&,#/570;2;/>1C# 2B7;7&%$4F=E'0CEBK?L@O'#JMFPFQ?VGXT`*/Ym%ex$ Ve!%31607:60+%-0"JU<JJOIPX8L *-)]l \q# qvpJN<D/109#% ,:L FLCFB;:(66<2:64:2DSJP$AV LR %) #LZ#$RX"I^P` ?;$UgVf&Y^X9;38C%5glfjpjBA€….:=KD;WTIGCIRU%'("?A V^ Se *Pi<ED@>5EJDbl"CR"fs!ns#6/5:=+;POtˆ&8J¹¾¸%*2“JÕ���tRNS�@æØf��oIDATx^–Ï4Ë…gïªjcûµmŸmÛ¶qhÛ¶m\Û6~ÅùrqrtgÎJ%túYéµvª»\_&Ð$I�×ד-[J(Ñ-M“¾Ž‡Ö×ûý‰(ôsEó’©ÀäŠì úЊ½{!¨Ë{,þ qßo=·èæeÞ÷Î74V/kdÑu”—­_ÿø’Zdó×-¢·Ñżá‘Ë_úà㽂·¨/xw>ônfçâÈè¢ìK“ëŸ {°ž”ýˆ¿<ËGqñt&s“ýnöºç8Tx à•?¼ýæG2Ë2¥@ÅÅ·½ý { oUÒì7Y6C3¹Å(ˆÙ+„6Iá ÅÛô¶¬HótZÌLZ½ý$Z(/"»ýd£;3yÑ© ¡¶˜"\ÒÉdzë÷eyȈ Šbf…Ú«y ­@æ³Þ”¹A´!‹0ýÛ’š©«…Ž¶þ㽓ïdréóbvEçÁP¹*Ü¢ã /»ý曨mçyºïŸÚgÝÏÞ¢ ™&Mfh.†øB°û£Îw$”â‚ "y1¾%?¸*FN޼Ò ª®¢·à1ð\¥¡»‘¸WþzǦt™�̬“IÄU¨÷«¡DJ‰uÍ™¸'á%à ¶¦T(|3ªÊ* ]+5Ë"a$D7Uˆ«pE#zªFH•=¥É`Ä"X„ÀcIºF¼eAY6m,ò›N ?à爻s£IÀUœ¨Í€”…Œ]‡·0W‘¢”"/¥$ÔîÝq¨ÃX¬h™9՘趛¸ŠEðª\;¤“€ ²E°È€è˜’Ü0zÇP ¹?–LrB´˜A�E?¨U«LT2κóî…½ 74ZZa<CdÀiªæìØ[é¡Õ«çÍ诽¬/¦ýxó†fö žº’V÷…™·xK×Üåã£wM=¶©ý«q)1o£¾´…†ÆDßÖ)„ˆÊKž†-U%£ ÖÖê_ÝiJ7í?>öÝ8Ê'ëƒ×®q Q#(E}ÖÐ7®³„/3Àà•c¥Ã æš ‘DÚXÊ#CGŽ"áHâàþí£éRüb^V;Î,H6ÔÔÞ«8ŒÊƬùÍ[â^€#>�›€²;ÖÜR]ò…µ Óê˜ZÕ´¶^'€*ié¶Ê5 ‚êUâǚʯJèuñ3ˆöçxwÛºÖãÃß·¥;¥"çH·Ÿ—)i_Ýùè¶¿¨ëmníëi°ˆÌü åž# ΟÙuD¯ADU&5M‹Ïo%*R©í“»‡~þæ/_¾åš©3·Ž\Ó<’N÷­]êþÔ)Õ÷½¿vøôøÉcªF¡¢¼R„ñJÖLœ~öÚ¯ï?tjpêè-sŽn:¼»¯ÆóŸú¶xcêÕ¿>SRê£Ó"¸0R†ÀÕJ¾ÞgB°&ÙZ½-Ñ=ÔPV®¦÷Ü{|ü©÷NnÛv|a¹t‰öÍxmìüÎmL)Žráî_XŽQÇ $›[43 h¡X%¯?©'½ºÎœ8qþµãS§‚¼çY]×Á±ß÷ÞðrË媘ÿè�,µ’›W–zÆþH4¢DÒ*¹`¬­êÆC»¾uñú>“äÆrMêgNO­RC_î†ïgÛ¿møPhÉ`¢£QœŽGðãÕ”7ÙÜ3<uëïfK9Ù»{bþ+·¼9¢ñæ Û½Q«^Ãm^=¸@Fd€yQ�†�ŽLôXIÕ‘ñ{úÜÔØ~¶£õð‹ƒ&Ks‰$·Ü˜VÞ²Êp4¥ ‰CD�@ e¹­T÷ðóã£ó-p‰j¬*õÔ§I”ç…Ò¦?ާy6-TSK{ ö›Q`��È;!ˆ*í«ËŒ™VŒ¹(ZfݹóÛU/æú·¹²ÐœS{ª 8šylÉû½óÖx‰!0êQUUS)€2»¾en|é]­²f»˜ªÏJÏéO×…ô¨K²KÇ7ÇWj“' Îu/x$©s$”3÷qa ¹©+ñÇÖ~ÿX[¼Ú²<ÔEµ¶ác÷´¬jÒfNt>9:0@$D÷[ÆËçîœÙêöK„g IÑ+.û^݆îMÍ,‹Ù.¼j¢sךÁþñëï½c÷þCóº à­òdèÄé’~·_6Œt“%iºf¾þÞº§Ï®K÷į²ˆù)D0ànMÎ~õ§ßùÛ<÷‘Æ,KAÈG5brbÁìO÷v˜ÏÏL&k^°ÌÙµóGÛ.^9ÞY¿0¦hN®v�.ؼ¤zæŽkæÝzî/GO¦MÙÑ#@�Ž“B±/N<ÓpuOÓGëj·v^ö§gGêÏN4,oùUU,Ûå¢,bÍRÝñžƒGÓ£s«=‚‰šÃA`=¶òêk¸ßjlüdlɶá³;O uwv”šRYr/tæ½ín³¾LOY øx¢)�zSª™œU5´uhùÖ®x÷à -ÕUsUCºU·xFäy—È¿ÕdSõ‡IÔÇ@I@R)¨†¥œ³Éì±ú6Ïm‰­ê©KX) £>�Î]y‰2Qˆêá%ô!:HˆOލ¶-€d5U«$ÐnCÑ-C©H˜»›‚–|ic!Åÿþ!Œ�@!‰ð'RF˜lÉQ…Á4HÊ¸Ý ~9ô�ÉåÿŸD…ˆ�Jªfè|þ +Ê–._ÀçÃ0¨ñúyXnÑKø§À�€hÛÿ~7[ðûÛ ÎAò,`r|^`C.Pö)[ Ó‚!ÈŽ‡¡#™WB�-ê´BmJmÁä£2£¹ê‹—"¥¹h Âg9¿Ž>ºþÏ&����IEND®B`‚IMAGE 2948 ./arch/monster/animal/giant_worm/g_worm.x71 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE��� �        $"��     !  !"!$% (),  $+ %)% !  ' &%$!'"*#)('"+&)!"- -*1),,%0'/+-'0(/+7,;188;2>8>8A:F>DGECZf"  //5A)28D$&&-95(! )40*/)*3.350,503/0.&,0543/7#/57 0;2;/>'#&%$1C*2B7;74F=E'0# CEBK?L@O*/JMFPFQ?VGXT`.&Ym%ex$)/%-JU JOI7:6Ve!0"JN160qvp9;3<J8L%3]l \q#,PX0+*-).:%509/1:L)FLCFB;:#% $6<2:64:2(6DSJP$AV LR  LZRX"I^P` ?; %UgVf&Y^X8C #glfjpjBA€…#$<D=KD;WTIGCIRU%'("?A V^ Se *Pi<ED@>5EJDbl"CR"fs!ns#6/5:=+;POtˆ&8J¹¾¸%*BY/±���tRNS�@æØf��qIDATx^Vc·lY¼™Ç.Û×¶m=Ú¶m£mÛ¶m m¿bª^÷ gºgª:ÖYkÙ+OäNå`’¤AÑWHšféáDP±dû+ð_@u?®³í~Ùߨ«.À°{÷ÒéÒÒ¥ ˜R¡|Q{óºí¿ßsû‚×üb»ó¸je ý.]ñØêÕ{•:»)½|ÑäÂô°Ý½ÿñ5÷¼éEôyºàò7Í‚0zqõÄÇ¥ ¨ˆçO¿óàyϦB2Âk——¾c_–NO/B·Zzú½ R€™þà­ç9¨Ò{Ò÷Ü~í²ò h´²+J bš¦³_©ø·RZ'æ-à&}=ÖDÚ™¦9:uJŸ§o]¡’üÿAV¢­A°©c;9~ú¼»ôý¿\+¢“'™PzøÒ´ã8à¤A-ݾºô± Šo¸njÇ‹9 N�¶óvú²JU9_ˆÌ˃û;*mÑÉa𦝛ØýÑj‘AÞªÏΛêß÷×í4'`Ûô²Û¯ÝòFòõ0¢&ƒaW}LJ]÷œlø4=±`b“)±|<ÈuNüe/Ÿ®„k¾CÜ×á"ÙÎ[ LäZSV‘Z¿õç;]\ºQ'¨w)�O–¼@<ñ‡ÇgvF•d<È}*æÿ’Aå¦N†Âf‰6•~•sV@1+H”dd4âÕ„,ÂîBºmÊr ÂC4]²2�€ŒÔݘ kú\Dðù}€"-¬¯‹ÀŒ-‡: Á ¢M‹ †pêàÖ[4”’’Š”Ê/"¶buÅ’2 M°ÂÂGbÉ û‰>X#s#ŽS@�n&$Ñ>HñàÕ#õ²dF0ï Y kö,¼ë“ƒG%ëâ,¯âàC v~ôhï5c]óg/_>˜º_”·Î¬Ú¤ "æÓE¦Ö?:y÷ÈXGÿ’ͱˆ­ÊÅ›\eŵæ ‘¦µkþŸˆ^³rñHqÕ†úŒ¤rŠrñÆÞxC=›/èëfÇ¥ÿ!Á¬Uë¾?8OŒ¸% ó0�2׊ë- •‰}sôØÞÆTcäËÌÀ’ÔÈ–½ûãD ^‚è–#(¢Z²nP!Œ ŠæŒÅCã%£·ðËrW\ÝÜuÉÈ@´¼D�P=± M³æ2#Ê-5mõ‰Å§Ûùxfq¬V_RÞØ¿-¦x8p�¢•[]ÍÅAD�$zËÊÆe“í–iØÿ]øªL¬úîÑž²¦žÚ}ÞüDÇò)BåØÜ˜ébYD@žìÚpïCCÇÊVµº>·Ã¹.¬ìM¥†›.¾ùôä¥7½ôÓ7~<x×­ENÊfÅ4MCBdŽˆmúá§Ï->¼ë¶)dÚzZdæøMG&Në¼õ…ëŸ95¾¢¾¨|.æuå•€\‘C ßvbìÔÐÊ;{[þ‘N©|á±Í›O¼û䨱[v¥xyEý`W|suY¢-�fï# ‹°"ŒEàLSoIñÓ|eòõ}[>³’©““Ç^=w¼ÿh¿ªëž„þ¢®ÖEƒšiTµæ¦„?ኸ±|á³Y«ÀQ’ëÎþæÜè«ó{ÝÍ'fï­W~mÇÁªZ£¡N“SÂî°Ï(Š,S²sMÂ*A€3O̪Ìú% ‚Ç¿ãP÷¯G÷wÖŠ9iNÿ¯nžênJx’Dðªƒ,”†öx ¡ùz¯où‘7{ß‹"Q–Mž:ý“d›ŒEEÔÕ»kþØáªâ¨Nä�Š�s�Q^<p•é2<�¯y}Ûf<´á7nzyÖøOÖ°fŒÝ7Ô•´\" i(�" ’‘jìp=WnÝÈS7lH„/fˆ9ð¡²ö£SEbÔjŸkT,ŸRÜ�"æx�Ámö ìë¹äHØ´¨¦Æ~ÛXÂr R&?yõ“ɪ(wŠlM.»ûBlFsË€rsž¡" è%ž³{î<³ÍÔ"€@ªwœ¬²¥ˆèá[έ5-¤E4cYÕ±Ömß^ùhLÉæ…@Hðf/‰ '†Z⚈º3…¶3¶f¬¤Á’ŠÜz°6Õ735Oçb‘-ZÖÚ¦õ]kk¿uc¥®H@ÁQ%’ÏU6÷“³/–O'"F¼äÄ¡®ñ¹Zã²æ‡Gµj˜‹�$b]ëN­:úÔªw15]“¬Æ”aÈ>W_ñ©ãÁD¹¥B˜Ñ9ûàÞWÜ{ëXßÀŠqîa˜µ$¢)Ñ…-c·]Ù:2«fŽi½×–H̽ÏlïyjþœÅq9jäÌT,+ºð†Ã®ÙúÆ_™“(sù1œkõ6„ýѪŸ5/©?Ú2üÌïnìØX³êÃÆî«êŸ¿òhP`�XÈfêÄ‘?œ½yö¥[çVŸi p(°¢B2KÚ;ºwÌ™?´ùÌè ÖÞï^ÕΨî�NÐÃ2Õ3FúSGöwÇ\|žsÃÊBDÕÒËRõ—´u&µù]±ÎK7VÍK˜<éA@€ˆ¢Õ Š•Ô+ZL×”G ýÓ]Á±�¯¥¤¯í^mž±¦×ê6×ÏܯYgu„˜„ÀD¯›„|Ü”57óe áÓqë8"^, Ù 40㕊aéŠq è'u׆̶yXö‚D/Jj†…Èÿ×%�àEe1tÅå7’„‘i·lÉ"©#hj�(ä Á禵C/>_@†ªÏޏ „Ðëi“¬[²“[tUÝи„€ X˜¡óŸÛ‚ã@!§ÂÜ�"FcÊçcögl@��¾hÖS�BˆÂU™ä†R&"3ƒMÿ*RÈ:ö—­ ŽMEÙ­"ØÌF Ô¦NÁk8ÛêiöÈ‹ðwîôŽ´em����IEND®B`‚IMAGE 2948 ./arch/monster/animal/giant_worm/g_worm.x72 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE���  �  �     $"�      !  !"!$% (), %)$+ % !  ' &%$!'"*#)('"+&)!"- -*1),,%0'/+-'0(/+7,;188;2>8>8A:F>DGECZf" $&8D//5A)2)4(!&- 95# )/0*/)*3.350,503/0.&,0543/7#/570;2;/> &%$1C'#2B7;7*4F=E'0CEBK?L@OJMFPFQ?VGXT`*/Ym%ex$.&9;3 8L0"7:6]l %-JN 1600+*-)%3JU\q#<JqvpJOIBA<D.:09Ve!:L%5/1FLCFB ##$;:,6<2:6DSJP$AV LR4:2)(6LZRX"I^P` #% $UgVf&?;Y^X PXglfjpj8C€… %¹¾¸=KD;WTIGCIRU%'("?A V^ Se *Pi<ED@>5EJDbl"CR"fs!ns#6/5:=+;POtˆ&8J%*¾Ÿñ=���tRNS�@æØf��qIDATx^Vc·lY¼™Ç.Û×¶m=Ú¶m£mÛ¶m m¿bªºG=Óoºªcµö—±rgœDÑ—DYÖ¡è+d]·h2¬ÚŠóøš?$¸ž3ÄA%ØÔ§.@C°gϲ‡Ø²âe“ Zr¡|®ß~ÉŽ?»~ÿ'û¹CzN°}…¾€ÊW<¹fͱÅÒÆnÝOt¥ >xÅ=ðȵ߉îìR¶ÿÖÛ­‚ÐyÍä#ÅûÇ¥ –ºï~h©w{!}Ú'·ßí\ãv—/@—P|­ðýJR€‡¾þðíKH ˜ ÜÇÜ_ˇŠò h¶‰WKÀ¸›¹³_1ÿ[1«çy ¸H¯=é–ÊYŽÎ¤âKÙÛW$ÿ7(j¬- “)Çw/uðµ[8Jùz !µ—.sK’’„âkŠŸœdùš@ K?Qö«r²�p¤;Ý×|X,(ù&(´"|°³ÊáRåÌ}Éäž×pòΡðΦéÝÁrŽÃ®¹þ–c‘@&_2B*õ4tÞÖzXʆÏÜ“û'·[²˜¯€©AI°ô•‘“#Upíw‰ë\ £y D‰Rgq+Ó¶ýb¯‡`£Ç0ë5ò. ©ÒP�ˆ7ñÚÄ쮘šJ„©_À¢¼A@ –AF¢•V‰> UAR1$v4”,ñ)4l&j|YD]õÇR”P¥—è†lû��E…�±×ö{ˆæú�9+°³sÍ­‡»LˆšáJÜaE…#8}hÛc:Ê)Y@ÆXQ¡ Žjw'S ‰”p¤ÂâGb+ ‰1T«PÓ’T@.QK&cý ²¡«GÙÊ`Þ}@·×ÍëwχÎÊÀ뮨¦àGN~ôXß µãÝ g®X1”~‰*ÛfWo×5àˆ<þô†'¦ïX2««%žq¥l»§´¬Î'"¤yÝÚ/1jWÍ-«ÞØà“JÂÀP)ÛÜ—hl �¼e±±~fBþ?¢½zý†6€—ŒQ@ѳòæPkR`@âß;¾¯)Ý”¹X2°$=ºußÁÑH€ º” rJÖ©D$ˆÜš5wx¢dìº^Ì»²š–æ˜GA¸ €àolž³ÉTϨն7$çžé _8ä Yeñ:#qUEÓÀ®¸ê¥@ˆ^aw·”…­«š–OuØ–éüoí ±zÆzK›{ëüeË +¦ CTâóã–Gd(f4¤©î÷=:|¼tu›çs{œgñª¾tz¤ùÆ‘›ÎLÝxåË?{ó'C÷ÜÕ&3¤¤tN\×u$D¡ˆØnÙyæüÜ#»¯û·‚¯½oÑá GgO\ytjðÔ¡ñ®÷^¼ùÙÓ+J€ áwÃQZ_QHU0¢Ò]'ÇO¯º¿¯õŸvÊóŽoÙrò£§Æ?¶;M+*†º[jJ“í!@°ú^OÚ”€•Q,©œJÊžùÓ«SoتüÃ|!tjêø[çO œ Û4Þ7„úXXWÁ‚ÞÒœ &=VÌ{'ë42jjý¹ßž{kaŸ+ÇwˆÕ÷Þ½_ßyè²ê¶XH«×e"ªQWÔä\ô•ì]›´Kà sª²ùâšæ î<Ü󛱃]u<' ÏøõMSÃ=ÍIoŠ¢(j€‚&BjcG"”Ôƒ"Ìolýq {?€œ¨Ë§NŸùiª]Á¢"æéÛ½püHuYÌ J�9�À#*s/·<¦× µoìšÆ¬‚—€>ò敯̙Xäͦì9£ãÏw§ldœe€!� ¢&›é¦AÏ»öK€4}ÙÆdôS×Xƒ/.í8;PÄcvÇ|³rÅ´êà˜ã€€ƒËê<л8E‘ˆå\Hÿ®©DÌ)ȾdâÔÕO¥ªcT*rt¥ôÅñY-­3T�FuJ©q@ Þ•3{ï¿°ËÒ3€@jvŸš®Ô²¥ˆè¥[ÏŸ«³ldEÌgÛ5ñ¶]ßYõD\ÍúB ¢²—ÂD3’#.ñÌ Å\>ÈBß_;^ÒhËE.#\—îŸÞdP^äpÛ^×¼¡{]Ý·o¨2THÀ"û=¥óï8÷²iû B!c&FO¯7-oymìÄp›Ž¹@&öUñžôê³O¯þèuK7tÙnJ›¦â÷ô—>NVØdA4»fÚ·èêÑûÞï\¹³3A½bÖÈèjl^kçøu÷¶Î©aÙ·'“óŸ·:zŸ^8cnB‰™¹ä�ª¶›wÙÏÌ?óG¯ÎH–z‚EÈú Ñ`¬úç-K&ζŽ<ûû:7×®¾­©çò†g&î}0–5 D€L0jd+}òèÏÝ4óÆmók.4‡4È HLÔ°²R¶J::»‡NtÎX8¼åÂØ]ö¾ïÝ|ùÞ˜ä"€” WôÕÌHm<Ø÷ÐMv”熕„pÁ6JÓ Wµw¥ô…ƒÝñ®ÍK†6UoJZ4åE@€Œª!�ª2*[-Ï´Wˆã³mAr4€€ 唨ëYk™µ¶Ïî±6Ì>¨Û&ë  ‰ˆ2‚È.ñSKÑ]¢ßgjŸ[Iâøi)v¨i‘•¨RMÛPÍEá ©×©2e‡F•�!˜A  ,ø(Q‰ò¯q-1�ÔPñÓP=A3EDR\u)¶Â g’¦ Q@�`;0Ÿ›ÖcŠ(ø½ÑŒ‹@·+†­H¹eW0LÊ(‚QúïmA’ÀS\�3š9í÷‹Î?.8"€�|Ѭg�„• É %_FM±þ3PÎ@’88[$‡qÅ% 8¢ƒÀ˜Ã¤‚÷" ·Ù³ì‘áïÚXw 0i����IEND®B`‚IMAGE 3724 ./arch/monster/troll/Gaelotroll/gaelotroll.x31 ‰PNG  ��� IHDR���@���`���­Åtè��SIDATxÚí[io×­$.â.î¤$K¤©…’(Q+e‰Úe틵ï–\Ù–åE¶eÇûÇNí8qì8›“Àm"P (Zh€h¾5Ÿûú±¿àôò>rSJmŠÚ1#ñ¾™‘æžw—sïþ,-iIKZÒ’–´¤%-iIKZÒòòбËÁ# „]ló×á¹ô+%28;˜:–á<tîÓïÃ{峄ÒüéZ¸AP𹦠St޹«ð½¼®>ol™…óç¯#0:Ïßw¬Ïk‹#0µÎÁ>s Î…«8ðÉo$ °ôÁñ¯¿ÙQ¶ØJ_ü¥‚6PÏÇúêýd—Qsïsþnj›‡¡¦ Í›×ùûNº0)º|¹ñÀÇs¡6²‚yÃí0æû‘;}J€PÞ„=Ó¨zóË 4Õ°ŽŸ#ÿ¾‹¼+Ÿ²bêÜþ4·LÃT?�÷è:r£û‘Û6Äóy‹W0õÅïw _`+°M½SÝ~8§N³’Ææ)ä®Ý“bD`nƒµOžCîÊM|Ì!9]¦>»KŽþZL-Sp ƒ¾¨æ@™0ùæ1ä´OBíõcïò9žË8_ÿ&{Ð×WPhš›KÑÑQ‘Ú�(Wò÷fŸ0}]E´²ôؽn¨ÕYÈñz‘STWÏgf19üI¹�rFO*H¦°ÿž³Kš` 5)æJ‹- EMÁÖî_áãþcƒG*Da³ËÚàÙ|÷o n¥Õ|!2 }e‹ÂŸ ƒÈ?z‡·Po½'âAY .<¹ÁÇ)KnXù’F>V9÷@[ ü[k¶(,ÀPÛOð<¼›Js׊UoÁð½GÒõ¥sÇø3Uëdå¸É§õü`úº~Ńj÷ÖðœÎ³‡¿«s‹ õ‡$¥­£Èß|®µ(™gEÃ1t…Ä Vÿô7‘öºSÐÿ™ÑÕ)VØÒ·ûžä÷:322èzg.4d–îEx–®!åÚ®?@ÝÚ9Ø"ûášÚ€½gí³c|opr~ûy*­~rÙʦ„e` î“ïÈ`ô÷â3Â*`hEN¤žeìôkéšÌl ƒxà ȫ¬†Ááµ{k|_ª¥9RøjöTÀÔyPäôöy"1g9è©ó‚°­Á=€¼‰#I–¡ñ  6¡êòTS-0÷Ù—ÂZ2”)4++#u�°N—°Í^QX®¢Æ&":K7¥k²ƒíÐäàî—æìK·à<|Ñ+÷€n\¡ÜøãW €}¡`J?¡d¨Σà8tö•×Háa¡hiùv¹`qç`Ü7 ÇâU‘ r¬„¹¡bÄk{àè[ÆòWß ³7Ú vûa«jÂå?|­�¡lr9eH²ËÛDÓ‚*¸œg¸¸Q9òaîY‘VW_;Œœ±³¤*{±Žðæ]‘Š", œÆÆ17¢÷ê-%qÊâæ³×ù8Õj�™À´.0�ÙÁ}´ " ­Ã}ꉈ]+0–ò|¬ ^þ@R"Sob `k*‹¢´¦SçÖùœÿıyŽuMhYZ@”ÆÊ‹/$†uú"ìoÛ‹™{tUÍù±Pž¯"`6øºüúFé>có$úßz*¬À_ûä¢È$® Se8'7qç‹ÇJîÏA1V«�úe¯<ùzºÊ2çŠø‹ 3U{J¡ö–ÀÜuùuI•½¥Çn(®U9ýð÷ŽIÊÛ'Ï#¯wƒ¯~œzœ?V³ÛoÂ:q™f¯h\nu¹N<æî®”Þ k¨£sR‘ö´Åð{{.|„Š»Ÿ @ÂõM_@Áê-ä6´B§Ó¤&ãÓä—“b!dht¬¥@ÎÖ© Ì9r[L‚ŒE¢€‘S$ 5ÝÂìÛ—à 4š?¸€Åû¯‰ëÆÏÂÙ1O]þÊòÿ%âÿ(@ÉÑÙ_ ¯šý^TwcsÆ79Рs0»Ý"(GY7+Ι‚ÙbÃ쀵cyÓ§ãiµ—GÔ¾ÿ �~Ld“.¨JòwíÞçûœ1 �V4»¨FZíÂYÙ ÔùT ÁNÖ8õ@¤ÌâZRÞ+1¿ÿTõm×iz±fï«âœ.3¿Ë0ÁÉÔã|`;»æÞÃlYsB À·ùD‘ãaj†½® Þb&GIcøÌúVŠýí3¼0+`Óî;Â`dšíÐê�pI¬ ÷ Ë–+)‘3²ÁÓ¹rÍÓã<§+k¢Õ?¯‚2@!²LöøõÊÕ÷o €5LÚ@µÊð¢­V›ˆKËL|ÓbY§Ùu Žè xä¼ß2'˜"™»+Ü â€+@nP­Í…íz‡¶Žò|Šù`Ï$Ar½oé?FJ…Êæ߇Oòê›»–ây}d�dªl)ûZ¿ˆ¥—>P(a;ƒàoŒl ÐòÇŸ$¹ÓÈ£¤9•* /¤ÍelK¬>û»¡¾O2CdHŠøÖž¥$� Ôr¶Æ÷`¬jKü} Çÿü½ô¿ôµp BÕÆmž[üè™ D¼ä^xö¦>;Ke‹'Ðùôw‚A–W=·ÕçÝÙLƒE¬ÊÌeÑØ:É«Ÿi²QásH r¦– qܱ̭-:VP?�]yTRZÄ“.xÞƒcŽxÂú}¼òýßã,²æêv>6WF1ø¦°õoþ*¯²Õ›°@vEçÐ*¼3g õU~÷<ýžWšSY×2¿È@¦Ì�d™ñFÈ:ôÕÝD‰)t¯ÄR!3E[Y˜Ï“µ0�šãrWoA6?8;ÏéÐH P}y3l½h}íI|«¬”{‰TsJ-^9ðúe,¼Ácf¡™&~Õ–ž•ç�¹±!šdÞ'¨×šʲº¥r˜Ò?lÜ=øm^@ À±ÃÑÃ+AK¼,nŠY›µ:¯ ƦqT½˜Tþj k)í 8TË€lü ±óÕß=WTî"hKäÒwäT�úº^>Ÿ C4”�ŒR¤9QäŠ5…r’É+¿—ÀÚ¿Šñwž¢quMž÷–$£-¬ø‹Ô™6»$@ž;ý5÷å•¥Õ¦Õ Qß?"µ¹(>0ÿ§|ÏÊëkû¸? Ü××ÄîgKð_|ŠÒ[Ÿ"¼qæún‘óßEë{¿Å¾%9€Rºäs>ê xø¾¸nü8lMƒ°Fzyü˜ýœV‘ƒV†Z+=`"£³LxÈ2˜ %Ò .ÜÇÊküa)XŠ”((³):›ç9ÛÔ2ÿ1²,"½Ycî3s žÕ»ð~Ž¡ÃÒ9Rá‹ÀÜ_ù0)¯Ò*›êl‰ìè«{¨À9À@¨=~I Þ,é‘•6DFȆc€²K¸W_§û'ÉÇÃD·Ã’ryk¿@É+ïÂ1•·Ñ-ÓÐ×ôó=u¾@Û­‡h¹ñÖ‹ïhÍ"¨4Jú)¯§º,›7n sÜÌÑ,›³ÃÏE¦°’")4À€Ä-„‡“,ØxÈ%´u2¦øóSÛ´ Y®"Ê8ݰ/ÝäaiŸÄ‹/ƒ3Uɉh…óƒQû[DfAŠ$�¶jo0ñœ}ñr×p<¡Xƒ”OÐj¬vÚ"“»Hì/A˜s6ÈáÈ«È ÿ �å®PSèDÉlhã>ƒ¾ºÿ6¹†"êsî"Ð/ý=zØiQ$ؘÕ#1?ÚK*Xä¦è­Úܼšô¾ b… Ô.wLQ—ˆ†=:¸Eî—t)�pºÓ"&(¥Ect‚˜š ÛeÏÉG(¸ø1üWŸÁ×5 Œ'Ñi˜ªûÀøy>ËêßÝþ”Øà`—ÍÜžëöaCd þ°ž-MS_3HlnŒÛátÌÃÔ*ÌÜܽ ce4Þ.Ë÷‹ò:¥¶Ä8¥qîž¿Æ{{¢>8Cq†¨sñwë6Ìmq¹P"+²Í]ƒ¹s–çQ(,Kª)Ï9œ¸AÒÐ…Z“|›‡R8Fwi£8ÂÖ#ƒà«Jjj¤˜ò§·l®ãoýñ.ççíöòt•ûiõGã{Q„>gRêÕXÐjCÿ۫¯‹1ºAª롉ùtÝ0ÇŒëÆ#è•[Z¹ç°È)Ž8VîÐñ1Jw �_~Ðkža…y3Djo—)PeßK9|€8Á9¨1eŠý[*¡r—LJ ˜Ú2pTKÐ}ÂEì_…y_ÿË€¶¹Y©LC?ŒlʽÄ�ó’ZÒ†Æ šD•=üÐvJd—u°µí—Òg¹¡B–À«ºŠhj¸!2.GwÙ2¤Î°²~h‚J°Á8÷m¯„Èñjò, ~ņÿN*ˆÊU"›¿öÿL½Yž“IÔ¼ševn§„ÜEb�”ÊgÙȺ~Š¢ 4pÓôÄö{â¬05M$ ´Eµ;ÿÇRœ5Æ7Ya/$•ÓÆÖYÙmv°ˆNÒð)þi 5;…;t®kÉTxW� )¬€°ˆìÙÁÈn�€»MÌ.©•-uåÈO�ì¡êpŠÉ’0ÿeb•U»EyÙ ø›åÛL†²Kv �,êÜÑç~ΦÎ%Žþ»ñ—ã\kЋW»ïçó†úaª WÅvZqÝî ~<”@®Ð¥èìp³çÁ›ú…¸¥ÿ(ÿÎÀÐ8$Ûi Èïÿ,Ü€ëÔ8ßcÅé=Ci3U[ÜÌ;Ðúê¾~G).º¿‡¸_@¬ zßXê i|•ÒÊS%¸#\!¡çzëô©¿¯öÆÒß�Í]•Ÿ¸V€ »ÀO:&(vŒ4{jÄ+-JÚ‚ÊYßá}>þ•V0Bþå‰@ZÒ’–´¤%-iIKZÒ’–´üŸò/A~²s r‡����IEND®B`‚IMAGE 3889 ./arch/monster/troll/Gaelotroll/gaelotroll.x32 ‰PNG  ��� IHDR���@���`���­Åtè��øIDATxÚí[Il[×­d‰¤8KDQ³©™še ÔHkžmIÔ@¶,KždKËŽã:£Ø±ã8vÒÔiš"ZM m¤Ã¢]tU @nºêªË]8½ÿ>æÉ?TœE!›Vyò?¾Oñžw‡sïú^T¢•¨D%*Q‰JT¢•¨Dåù TãÿLq<Â@ø?IÁ—ázéGj 6ÁÙñ À䟅ãÀU$Ÿ|)ëJ¥•Wç‘;;µ™k2Šaj†}â\‡o!µu€?76ŽÃqð:<ƒA¾Þ±>¯Í­©i¶±—à˜¼€}ïýLZ€¥sG?ÿjGH$);½ö¾AëÙÃïõåídçQqó#¾65a¨hEýêË|½S@@B):{îPàã¹âf²‚ Œe-0¦eÃ=zB€PäCúè2J_ÿdçÄMF9‡N“_Cêú¬X¼;_Í£0íéAòà¸ÚánîãùÔ©u>þÕŽá lI³0UµÃ8ÉJëp/Þ”1Â3±ÌŠÚFNÃ=÷ fîÝ‘ŸE¾5l½Sò:Fk€©1�{ÿô90{ …É×eñ)ÙØ={šç¬=KÈê`xª]]å(.NG}}>ü~od \á× æ,aú ^?´®,ìÒ[`KIF|ü.XSR`Í)„³cµcã*x¡\�ÖÁã*R£É,Â7Ó .ÏK±O5—ŸkQ)j*¨Áâ­u~ÿ¯.óˆD�Â(¬®°®ÕwBþMÁ-¿œ×jú¡/iTù³±ºi‡¯òû-Åðí0]::J#�©ˆT>¯–ßÇ9Ò¡Íþ­5[T`¨ì¦@x)«ä\íÅ;b×kÐó®\Ÿ?±¤ |À.k2ù´ž ¾ª[åóÚÝ<—àJçëxw´ÙÅRéÄÁe¤­¾ çâò‚¬¨jØûI¼`þwVY@0£«Rí°¥k^¹óû˜3bbh½Ã Y‡¥m ®é‹H›»„æ—7PµxI5íp–aë¢e|?ß[02‡{_}´u`}>^¶²i×ôÂÒ³ˆäãon‚ѽ€”µÇ* „5xa¨„µ¦®žY´ßý‰\«3!³ÀƒA‹EƒÝ‰‹7ÔŸ\=(çžWš#…øU“î…iïŒÈé-A"1+ôâS Ø·sÃ>¤/„Y†ÆåAB¥çj‰?Ö£®ú´Õ}'Þznä‰3ò'¯«¬ ÁÛ£ˆÎô+r® ·ÉA9g›¾ Ç¡›hX¿%�L΂³¸—¾üì[»Dü÷G`k`ã—?æëÅ3“¸ðæÿã¯Û‚T²¸ ŽÃ°¸†„’fhLæPy[K–P$X\ÿ ëúaŸº 2ÛÃkÌÕ]#`¬ì€½k³Ÿý^˜½1 ñÉÙH*õáüŸo\5~ `ÛåÛ!K‰‘sÁ££Û€®¨Y4-š‚”òª£Ñ…™µ¾²Öý+¤Pâl©Æ”­^ åÔ« Ài¬Ý‚Õ;è¼pYMœÒ ðÊãëÊû03ÏÝ7ÂáY|ôŸ«Àѧz8^<«¼O�Lb—Å¡úJ�tž¸/â@ë ™ù<¯TçJ%bõ&¶�’íáíêAàôþ,ûØkÊ<Ç€ª½>4NO¢ÆÜÕ5aIi…ÐR\Yüô×xø·?…Qím/pGׄÙgz«MP Ík䦇}îU^—¶§V~f¬A÷íwĺìJå•‹"K]ª§JE#«¸úñ½ÍláÊG\¢ ´ÃÝcr]2S ço¢xöÏΈ×g²ó±&G}ÚɰÜljžbóO>ƒ´* �¹B&ò—.©L:Α Ky3ò® åÇ_Bj×8Ž>xMåR4®ÝCÇÑx㇪ÏjºýÛçJÍn›z…x¾†=’ñ©] ÷(7<Hy¹ΨÀQ‚dÖéH?÷.¼×¸ý%ÛbŽÑ³Èœ¿ wu2JJx®hæ8.þô]<úû_øºpæ¾óÇ>|]‡¦1tj¾|¿x´™:·Q(8qš³î;)~ô‚ðWiæôÙ)R^€°ûܦß*Ú„Ù·Là ëèÄÔ­WyÎ6´‡®ªd—)¶ÙŽ´¦.$ú'ø;ï‹Ö˜¹nÆ>Ä%¥ªÀ©ß6ÅetÎ.'¦Äi;�}y´–Äp�BVà˜»‚Ê^áö4Á«`#�ýãH=J«-08]"šg1�<tM¢ Zº‚ùO¿ÀÊoÿˆà½û{ãÍgC|TŒ-£T*¯+¬‡¡n8, è÷ô«�P†gfe3 ¥y©8êƒ,ÄsbC¤ÌÜJR>åIæ§öù™u”y…'n`÷ð<ÒV`óäÁdJ¨{&�h²J• &H(Ý+)¯.¿N€&³R!@ÀªtƒœµGj…ø¾zتš‘’Ëä(lŒÜ}›_Óf.À{êrP¿`pެæð×kHùg'!Åý0ƒ£@({ùÖ}Ëa‘švXZÀnP?6$Zà…>ÚýSHÈòn¥¸©hõuQ.w†‹è³“À²¶,<·ê± &òï1A\zŽ@O$&1p6ä>âþ0Õóc-NmZOÌ¥8˪¥‚»S Mrnõ$X(M%²ïúct¼õ1™ü!$$§=ŸŠOŽ'ê}K÷íî bÍ6ªòò©Å½—̾”Ÿå©ò»=›«@sÛ,[‚­¸ê»? &¯ÖÒ˜›ä®ã¹¶¹ŒM¡@è¥\¾‡Ü¡…?£¢H®U “ú�)+åQ`vGó€ ÐH?4Á;k}¼¤±ó‚°äUðÒÎ’,©·)Ôwä,?•Á®åû°”Éî/¹IxíáÂÏ옸´ÎR`ëä¼ÿ„ Œ¡n€ØßÊ«ª¡¯ê‚6Ñ!݆Ë]½: ~­Cí/�Þ¦P3ÃO¾Þ*"?Qà„’˜;)©‘æÛ`¨ÙëÀ2_K�*»¤)AÓÞ3'wž€P›÷ÓÍ}ëuÏBâ’sØìE_o‰\ÃÊÍ¢¨a‚V²d€O‚@}�Uqd›|E‡ÏñõS œ0`ž¾NȶÓ_s×aXO2íeÓ^„mö ïrŒÎ(›#ì¸É©¯è»¯¯ìæ9ëà)Ø©–½öò/€²eâÝþ¾”…hzðs,l\ ã¹§îàÊ~#:ÇÖ`kèƒg`»ûÇ·™óéÇó MÜÇ£´Æ©p—•w_–ÈÔù‘iLrùB~ Ä G«|¿©aH™ç¹¤À9âûå}²gH<Ã>~®ùkÈ:ùì}‡TçÌÜ^�̼óìÿšŒ*aé?Î;M×´ûáã}4WÕMô¶Vp�g†€¬G€6r†Ú®Øf.#yþ:¹Îñˆ2¢ÛeR¹ÔÅÈ;ûìÁ ÊctZ3JVÕÍ÷Tm|ŒæËwÐxéöö»ÖS/2Aœæ ’’˜xÊT¾QìJrË€§qK~¯p~K“^LŠŠŸzФPϪ.7w‚Ëw`_'ÀÅäB=CFCÀæP�nSÒ,KËÈ3ˆ±qO‹ÌÂüƒ´»}ÂÔý3ÈঙÚT4ñ)ˆøÑç·M]‚ûȆ’VeIÊ“‹¹ š°~Øúžè"yx° <_‘Ô˜MÙÜ6ÇYÀ6y úì¢P?/[*¯~*T(cˆ ¾ýä kìâ¸@ß§Šú\F—µhžH:#ÀæÏÙ€(² †”IAO�Æú}[¥AÞM:/¨ÚaµËí8hØz·ìüF �'8côŸ` ‹€>ç~¡ëø]d¬ý�Ù#«µG|&yÅ(LåÌ>eUIó\=òu2}W¤‰Öããö7Ezö]Rž£½6§J0ÇŠv~%¶ÈfNípšëe+15±™sÅh,iµËËžÜe"ú,e Þ]J™ì¿T"ó<ù4$MzA(#Ô)ó2s$M\„y/—Ñ20²Â*‰ìš; ÿ#Æ×Gc?,OÍ‘;§p0Û&BõE³â2œ$Y¥ íì/§Bf‚ Æ8EëÝaŠÄ9s•§Æ2js˜X1~^Ç^˜£±²`î˜cňʺ@®Ìíójúö¹«ô~‰Ò?²ûjpŠX GiùjlT^eæ`#SË ÇÊ äB½¢˜ù>ÌuÝ‘ €Á7Ê»G<B¬Ï-ÐW´}çê ý\`í õV¸ãL– Àz"€�¥·AŠàÅ¡ÀV'Oƒ˜üAÁô¾›GpJ¤ôI�ÈÁGl⸧™""Ô UÞ³%$)¸œ;G\=}÷d³D €PžîOlå-½Ç¸¬¥\.{äÇàf „N~°)Øú;x=ÝÇ ë÷ H ´9âì@„+Rü`õ ²Só”—¶ëÐ*+¬É*æ5dQ”AÆ)›dE$�’ÏKåÃ[„óèH^~ ƺޭÓ+;ÎÏMÍAÙg4íƒvwY*/»;‹Š’|ÔE—W}Õ� uCÐÒ{mN-U…ýlŒ Æ]R°ôÛ�àc6Â"ޱ;è j"w÷™îú†$ýÕ^Žj‡ãyDdºÙRŒMcLé<Q˜„ê§œç)ÊÈ‘�Ðîò.Åš’T?0¡¤S2@UЬúºcC�tŸ{Ã×Ô)-¯öùÏB“]áy¿z¿:º Ëoô%䎎k÷VnÀ…µØ™ Ñ™ÃÈæÿñ®"ù@žÏ­G¬11L9ÑÙɵƛCM )¡6W)¥ÌΦ½Ó"úïÑå5e8¿­¡*ÿUŽ[±IâGÐWöR%9Ïu€6WžØÙB'ÄHé|‚DZ@ý8Sh5qÚù@¤iöƒ×¨¬>̇®BÏvî¿Ì³Ò“—ø0µýÐMVœš¥²Š¤€JêYƒŸ×ï$ÅåÁJCí0ó Y7ˆ®ñ„¹óT îW YO(gŒd‹;>¥˜Ó_âèK²ò£µ„Ð}/tLP=&Ñ'†+À4ºXr…8³F>K  1BMFÑ&�Q‰JT¢•¨D%*Q‰JT¢ò?Ê"aWo-‰‡³����IEND®B`‚IMAGE 3840 ./arch/monster/troll/Gaelotroll/gaelotroll.x33 ‰PNG  ��� IHDR���@���`���­Åtè��ÇIDATxÚí[éS[×/›ömH ÈbGì;b3`ö] ƒ‘m0ÛØÆŽ1¶ƒoñ’8vS§IÓ&ͤ“IÚÉôCfÒN;]ò¡Ÿú¥G?ö/øõè\é½¾ÊØžé$HS™;ïé½{ïüîÙÏãG)JQŠR”¢¥(E)JQŠR”¤Åø?cπؑFò±P�O°vŽÃÞ5Á÷u¾.XBò3’Œ` ½ ×Õ_*´S°Ôøa¯óK÷‡—Pxd¶¡Å¤ÆÞe8Žß…óüȽö¹B¼sÖŸì vxÞ¡i>/éÀèÝ÷xô8ÑAPйªÀ£ö…ëpzˆ¼>!Ú†Îy8N܇w2´'�žÒB>–΢gqϯ½uŒç'ΫKZ`ìZ€íÈU8Ž^ÇÔÏ#I€ypßþi/#‡¢BÏë^:ÊÇæÙ�®ÿâab`ìôö§joŸëêH vPÿà þmìA_߇ޭ7÷²ôÒµÒ1ÚX8ñÅ_[KŒ.߆;jøøš¯›¤ Cm ù¸çÎ *Ûq`n5ï|g ÿ[šš7v’è ê`™¹Dú}y×>ã—Îr—òÑÔ9cÓœ“ëpûàîãëy‹×üò÷w]ÀµrÕ¿âó¾ €„—kð àžç—7tá^{ íªwa“™±.Á¾‰cÏžH÷žb|¿û FoÝM(æ÷ÖY¢4µÆÎ ìã§¡+®‡É[!D¾cÙ=dåzppù_Ë9¢á fch¨>߬?¼Š ïÝàûîÙM„>ý +n%�JÃÿ;‚©Hˆ¾¶ªjW2tfØrÈÊÊ@vn.²‹+sx­Gæ˜){«päÎmœ<H,�²'Ï*DUUXg¸4¥í0ûÚ×ÊJÌ Få-X{xÏÿõÏM’þ‡vÐûöÇß»Âû¾2Âj*ºáÚú(ªßdÜÊêx޾eºêN…>šG‘ê®�AÉ(ÙwŸ {PQ+ïïJ�ä6qôÓ_ãä;wöu÷ã “¦´•Ï3 .ú­6™ o&Cx¹[J×Zo<»Þ:ñO¥ùe §cÏWsÉ[o¿µï¢Œl'é´NdgÊU¬çkZ×þå.†Ú㓘¶Ln"ëä¬=FiˆU ûØ* ).8ù×ðïúù%éž»w 9Ê÷]çÕÞFÅ›‡NâEKšÖ„´4šïpCEÒaî_„kéòûè~ó1×.ÁÚ2€œà&l‡Cè™ÉNy Œ¿û‚ŸQ<¹ˆŠàq4v7î¯è¿¨@¡o…yd γ?–Á^Eîö' „4TAß<‰ì–A¸F–1ðôWÒœt…å^èõ˜Í:èí9¸ñ`×9j;àlèäóDpsÄð*Uª`<tLøôžl‹lô²òÊa[ƒÉ?Enk5N2T./´åí¨Ùyu” ,|þµ–4¥qÍÈH0·ƒ¼’ƒû«÷–àe‰ëü5 á×»`h¾tSš£)ïÊí…s0$]³-Ý‚cåü× �EÈñÕc÷ßì]%"JKK#ÉPWíëîk}ýpœz ûñ{°…ïÃã‚ѲvÒíJÅŸƒ¡möÅ븽̌©yˆlÄ* ‡aZÆò7ß ±7X‘åôÀZÓŽ?|+hEPh*»EÑ‚2¸ì© œÜdÚóa:–vW×0Žìé‹ÄP2myÆ:j·î ÏPÜ"À"ÃihFùÖ ^¿¥ œòËqó“ûq^!�˜®£äó[H÷+Èhé…=[‡óÜûÂô…¡/,ãë‘,°|ç§é:#K�KS…eõ•^Zç{ž3"×Ù4jG'<ü4Âw·÷ĆenÚên o«¦Ò(Ä3¢ëÖÐ ØÃwx^~S«tÏÐÀð» )ð4DŽœ™Ë)VCe8[¸ûå3i]ºÞÂLjî[,è}ßùt£­~šØyiˆjÎ"‹¿eö2òe�2m…(;½«éL‡žÁii­-pyƒG°ñüQ|í¿)’³ÛoRœß}“"Ⓠytƒm1Ï£äøe8ê’V]zŽW~†ª{_@kñÑ>w'oÁÝÜ…‚êj¾V»rv»1q²<U~%»¹ì©óB\W)@0t.Ã8+@8xEÖ{}}¿ûž%؃$£G±øP$2¶™‹pôÎÂÕ臧º2áZ_²uöÔ‹|nê?]]?ÔfK�1)p„o£ab”ï‘§Ñból€¥wysç£nµú—Ðùô´„b^ŽØ j$æ5зÍ"ÃìPì–®iœ d¹Ä’x]”Ãßü*JŽÆ`# ñž{,\fI1ŸKF.1žPÕ°Q‹¡­9$…¼š²6�ªÂdXÝB¿¤ ÅÛ*|¼X×[c7rK¼H†no”ñ^˜†VÙFkùÄäfœ!ÔVŠIƒà 2xÇÜŒ¸WÑN»Ú¢ª¤jq#]k$ý>ëÛig·`;vû…†ÐxCX|O²'6ÙäÔ6K÷3,Tï¸4=<üg¾O±>?º†Xnoq l a¤Õ5çÝGY l¾†¸*qÒôíéÈL‰âf Wy˜9ÿï0©ÇÑù4§ÎSEPt(L` ÂÑ=™T"ÏÝÙt½¨ãYìHi.?9"dƒ¨õuñoAbÐ4¸Êé®%xzêöh+ýñIM‚÷ì8pé[æˆ!~y>'æ« •he‰0Jõ<9˜<Oú¿%ÕÒufhÈøõÍ $�¼ãÂèõƒg8Éá]½ÄnQ[Ûa^Q1³uùÀäšG�»ç䊡P…—©Æžó~ÊtC]Ú,‰{öÄ96hÚš>N„(>%"|‡­¿ÊÍ¥*Zç‡yüœHŠfUkÛ/Êï•¿• ¾tÞþš†N±8ó<Hôå È×K^`*b éÞEÚù€œéÙŠÈ@ÓÚMI<Û¡ìÖg¨Ý$µŠúþêÛèzþ[¬>ÞË,K.<Áí¿ýYT†W¶aóÁ;±€ƒãóß;¢¢;²N ˆ]×·ÎFÊ\¼ã9ïq9,Ú­òtÀ<v†rþia«ü²=è8"�$H8.0úg"÷P+JCû4Å.ÅNÛ¨ƒlŸßëä=§¿7¶¢€ÌœÂï�Ó ï<뺪°:ª !@á—7´MÈ^¡3Ä OŒ‰t}¶�€íÁyÑkçµlNÞ§5zv-©S­Üð\{¥oüöÐun£:çHê†yMãã/Ñ}ë :wßýþÕ@ííž S%BÛº‘ˆ^+ÔÁz4" Oa?qŸdÇ‘£I.„Ø=œÅ@¤š"14Bó' òÈŒ;ˆÁ‚Í'°‘1µ"Œ9à2vÏ •Ê)æöt“‡¹'ðØôL(@9ØFj±!ƒ i÷_6²rËc@Ðy±¨,î½þ˜ãhÉÌgd» а½°Q‹L®"yydå—ý}_ü£Ú‚®i„vߤ¨ÅYqEW¨‚{б‰¾}šÔ Ž¤lˆŸGª¡°úœF×öhÞĨ ëÛ¤g# 0óª‚*¹­eº/âL±èÌ Ý í&­÷)vXOår{ªD4lþQe,°ïÄz}ôx”,ÿY²ú=üâdÈâOÅùjjE~ó\×Ùg(ØþžëŸ ¨oŠb«Æ:} `<|²Ç„Ù5ZÉU‰ñ2°‹œ3Oa(®V¼´Ö7@R3ÅåpŽãcW ZZ[†¡Ú-—×*lFÌ$nÒÔ>'©‚p<HÇãt•Ëâ,b§Ó¦Cób—M9<7Ãìäcr¤Íì*Ûeƒ(Œ"IÅÒÖí×D~ÑÍÀ‘`â e1 ý–¥ ÓQ°'ÚêÚýÉhÀ/` ‹È°?”Tÿg‚ôÍSÜP—÷e/Oã6–c{ø.Ÿ&w×›4uƒh¼ åæœWî^¦³”@ H {ŽEs…‹"«—ÚLmÉ€yø413CA GwÊhð¤©èåÄŠÂ^N”�®8“$ˆl•?ñГø‹,N€‘åòH�¼¦‰¥Ò€4ø›LgQˆ¿AJ})¤•‚¢W w’•�0ó¤Ry¼>ÑÅŸu×Ô ¦";¤²™*¿„xó¢fx‰Ö5MH@¨‹’ÃèÛ‚4¦Iì½’1$‹.«ÁÞ$ÜæÌ3¬*òIevC×<¥½EÉ€Ú[óϰЮ¾�fvž +”,Ñ3¤‚ú`­bmÂGdÁÙrÓn2óT½á¯Gx«àÏl„DœauД·$�"´å¯B¸b<±ùšn«M¼Ž$H*£Ë–_^›^`ž?~¢({™ÎBfàuUH×0ÿe¨<5ÉÄ<ë=‹=Ç"& öú�xÜL¡.«’¦Tt“‚yÚmY}Ë4µâ¯ �S–ÛÇ}ò$KÂú'Á<´Æú‹û¹¶'vTàu!Ü7Pú’Gü¹8²AÑšK�`‘P—4¾v§o§Ìð$ç´.‰�h ð×"™NOôã©J©‰J `ö&ðPJ�©B_RÔ¤Îr—DmÁgtêbîKêð’õÒ æ7TÌçø»}ëXB×$†Iÿ…õ^Üåä…þ>€JÙÒgs{­ç¢)}Lm_yÀŒ“%Éi‹G:8žÐÕõò3•y.c™ÇÄ0ö.R 0éÒ¼¬}­þ†¹ŠL£)k‘ªB\Oë8L¸%5•‡(c›ä 0örÄ8··äÝÛä’¸ê@ßW2</Ð÷-sWEæ'æ0{u’öµæ—¦ÒÊ--—w,Mcˆþ[\k´(ßÏ0)Ô€ÁKg—© ž- Ò±0 ê$Ô""dã*¢¥(E)JQŠR”¢¥(Eÿ#ý´É*=«¤.����IEND®B`‚IMAGE 3792 ./arch/monster/troll/Gaelotroll/gaelotroll.x71 ‰PNG  ��� IHDR���@���`���­Åtè��—IDATxÚí[×o\i'öxÆS|ÇÓ<îãq÷Þ{ï½÷;¶lj㔠›¾%M–dÙÆjaˆ¢}B /ðÂbBB¼ðFZ-Hðü8œïú^nÆÖò°N&ö|Òç{ï7÷ÎÜÓçœÏ_ ŽàŽàŽàŽàŽàŽàŽ£ÐÌ“C°–øÄGàyÜ™ð‘*áö©ë0¤äógÇšxCr¾Â&|ò%8îÂ>v–ôcÎ�kç:lƒÛÐ9c™ÐÈÞ³° _b¦D4NÚYàgÇÊî-µ“0xó ˆ¨›†mè"1faÑ)0Y¥ãèT‚Ì%½ˆìÛ„sé_G4-CòÙ}š¯YÕʽŽé—aô•0±õSйÙs†¯C#Ýšgam_†>>¶¶Y…øÈþm„g”#nöm^{á㻵c ŽÙ[BÊy-ÌSQ,5ãDh¯K­K‚øØF÷`HÈ@XX(^h©ódéϰJ;&¯†tQ>³ÔM#¼(ÎkÇa¹„ðÌ ¸'Ÿé‡Z]Ú–ˆÈ]Dm<êo¥°·‹ð¬J„¹“xÍTØB ˜`1a±„  Ì… o)ôžlèˆØSa^ 1Ûø<ÜWsYô >#xÍDLx %|àÿþì,O™`>¶4F+„„ÅgiB^xF5Ì¥Ý~aÐ\Ò®O C/N…›Éщ—µT óQÃ%<v+~@žÄˆX’Ò^¨Ÿ„÷Ì+I&åÂåõòy ƒ&Ô¬]§•kSAŸe>·O^ß'šÖV(4ÎØÓh€Î•�:g‘;¾Àk‡×4E4Í ï^=BŽpîwøZàˆuæ!£WàZf) bcSar¸˜¨ðŒ*„9ãøÜ7<§ë)* uF¡¨(90µ@Ÿ˜°¸tg`Ìo )O œ&â×9:P>@(°Šb&ôR$ø¹„lÄvN$aÄuNhÖôQI| ÌHªCxz9BŒ£ØË›+ôž\bÆ ¤†) ‹uÐY]~ù€©¸ _‰rÙ8…˜ªVÄUÖ+Lðó 2Húª§çë˜ aû×àœ¿]”‡´¢Qs7ý$-µÎSˆì‚TÒŠÈònÄMïÁZ;ˆìá#t¶hÌ\Ýâ{ž|˜aò°8®s&’§ÁZÕ+£Ã ¸7ÁÚ8U; HÚ“°·Í«È±¸ Ö¬2´/Ok¤_uëmåžõǯñzÀ€!cv½†xcN=N#Øú¶DxK)‚D¦àê= Sv% ñ|¿­gCÄþ.r¢§_GÆØ²À i庼Ã箉+¨yýÛ˜ûé¯0òÒ.Ï)Ì ¤œ@!^j^ІÈî DÔŽC|põŸ ñäÈÌ«ƒÍǘ髨ڽҋ÷Tð”RŒ´µ[¨¸þ&ên¿…Î{ù¹”òŠçÎ�YsÈ –(2 @T9Èë6ªÐ5§Å.µp[ä ’ qi^ÕT\„„œ>¡qe7¾Éë Ý3XÛë%(¼xÕ7ãñßÿ0¸�‡M©ý4Ürb$BeÌE-ðÌ ©gÕˆc^Ü^ÏþsœU¦ÎÃ[׌¤–>x{&…cu§ÂS^âås8óÉ/ðÖ??Çwþõ×€-·SX놃ªÀñ—?P™”{¯š&‹j!,1‰ü¹�DäJš8¬FÖOhî ‹ÉD8…Ô¬ÉÓ¨$sØûÍï!ê=Å\uÌÜ€çڇ–3k@G^‹>÷æ´|XʺTXÒ^XòêÂ|ß@Ó{?Á…Oÿ¨2":¾3·0ûÃOðæÏ¿‡?û££•wŸ™tÿÏ{¸*5ÏÃ9{ “ÛûI#CûÈ.âVy-97SIÙbmã5ø®¼…ô­WáÛzýïÿþü|÷Ó4öd!}t‰Ûˆ߯ó"_X,±ÅæàÙy,´ «êçÈ´Â×-Ðâ©Sâ^ÛÀyŒïmŠô˜°@ÂÜKH^½…´õ;ÈØ¸‹”Á”-0ÓØ d•ÓÓ(~àðÊÍ£‹“£DìâËr¾0KE?™å®(%ôº«÷ä:B6bÆ/!iéefBêÚm8 ªáªêÔø}BÏÌþñ#ó8„0íµv‘“O{h®}°Rù,fù®Æ ÆÌ¡ý5)µ«aq½Kð®Ü„³´‘×ë÷nàñ?>Ç>ûƒ6ar{àpXp”RçDGsm0È�kǪ<Ϲ*$U÷#¦¾ƒó=Šú»Æ/#cç ¼üш#¦ÔB„¥ˆ%€”yúš’kÄN^FâøYŒN!od÷Kþìhqþk�xr|oEìÎÛ‡Ôú8fÕ µ:…ú7ÌÂA£(bBzk¯ _Ð)´¡°5_ÿ¾ò¼Ô0ƒ„Õ»ê÷äNY<HmËÊ9ænkÔ–5À@>r¯Àž™§ùÌÞ1/K1]£¾–Ú)8†.ÀE•"O}›úÌgœq¦½ÞË»¢çH=†¬ÝGðmÜDúºð-¦œÚ#F°_‘‹š0—ŠfˆÅCj±†pçÂ>7—õÃ”ß kEçþçŒ wž¨ ˆ0~T}Ÿ\íངØÊ&^‰Ò&J/ÜR`rôð¦`ikËÕw‘zù^#Çztå3c^;åôM8¥ÓË*œEj^¯ü •»Q©%¤¶­J!„}wƒÎs“ÔI5W~)"[¦µˆ0­ 6 ÂQ¥ê÷JÔ[Ì\¼(4ŠJnY×ß“Ëid2´yžû¨|ø#^iYbÁô2ôú/¯ë$Ô]oT$#Ô8×ÉDHâÝ1Z s'3ä5x ¸ ÂZ“^F!¯’›'æ’Nè$‡ˆ ‘.½9pl)áÑ>¸{!ç ìÜSWá$³1ù*è¸�ïÖÄ5³¤9jÃxƯpZ½ {mŸ�TÙ5øRੈ4I~¶®s§îï1·Aa&5Îmd‡烩¨‹f›Ž(©[TóèÙdth'”hͯÚ'ÍÂÖ2#›LG KQ³0‰æE&žçè¡Ì &œ‹*¥øò3¾Ð0åK é¥Buî>îF%Rq’:A´÷¥j®åN±LüEž9•Ä®ÜCþ—Ö™hsa£Ì€¾Ÿ'1ÀÚ¾¨F˜Ä¬_ýVo!Ùö6,5ƒò ¯šyÚ\¸}öptÎ+môøóO|íĬ?€}ì2Ì}  ’%ìî[‘n ù…m&0z™ ðù‡°6N’”«fsšxÚ/ jñ.âg÷ž ,&ç(”ÚV™xIË1ML¨ÒxbCJ%¬Ý›ü™½•Ç}’<½ø¿|DÍìD+‰‰cµÇ¨;Lè–45[}¬ÊF žü>…ü}.ŠBÞ55ŽZXr´'€$×sù ‡9z fu‰Iâsªê;½m;äJñmn‘›Ë{a*éágœ³7 åVÈYdªf‹ U˜u²v˜òëå$‹¤e‚§H|}¿µyòHÀSa+ýhÛK/½‚ê%‡¶Å/â F¸7© ܤ6H˜aä89rˆ’X !¹lî)01¢Œ¦ DCZ‰ÂŒÈŽEv©’V™`©£cÎo”:GyöLÕÛçF0˜U•§81æyV}÷Ö›0§æŠªO{jÎøB%†Â‡MFˆÆì*¡öù­¤ CH»ö>z½wh""EáÙí H.bo¯úž$… –´>©�BÙ<ôñé2nÏ¡—tø…TÿÉRç–š(©åí¯ñn©º÷ù•Âè¥é¯†�¶ir„œ Ìe´¨ú€dŽÿ–ÑÓ Â𲳜S@;K”ðHûŒÈ›Ÿk-ðÎþ íóý$¿h©$ )ß'Vi™Ån?AÂ¥wµú:l­Sª³©°ƒ4i”÷13j†•ðÙwNe@� m}€W|8´™ò꩚Ëû G]t=…Pnû n–°tžCœ½kYÞ8©u.+ÂÚ— ‹Ë&•ÌGŽƒ;ÜNWr £tdF¹¼÷€)Æ ŽYJ¦–îñ¾cÇÜ-¸FÎÁ9²¸­s‘Ëgjˆ§¸N¡­Xγzy?_AÑ@NÔ9Ä sø\@1A-sçÊ*ܻŎ‹|‚‚ÌĈP[4ë5:IÂÞ«ßBôú×Xâ¶!&Ü ¤Ì{€0ê&¨>Þ*O/Ç/i©âÈ 3„Î3zaî(¹–_傈d­¡L`r…ÝbB”í  —t]ÊçÆü6Öúò5ÃÏ "¹)i“w‰N Õ'¯mÙÊùÄ<ªsêLØbÂôUïaL …ÁÅü;RÛÂsg�8Ê%4j±äömóŒHíK‰pö‚ìðdbLR µÉÝ%]lšfM_„@×虂çk …;×AdÉ«s›ªH)‡KˆÁŽˆùre™{ ~¡1§áÀê4u–¹ÛÍѤ²™`*jÕ¼¼ÿs…¼ÝVÉüï%õ/âm·ÊºR¢ËÕ!ÿ0‘À\>Ìu�Kõ09Ä~X{6Ù)Z*{ÿ/�£÷3Xc^ÌÙ%ʰxLaÂ1ÿï1­sjåýõ¼k”L²GßI`�G1aqi²Œ³œRªØ ÂbS”ÿ*£Šž�3âJ®ªüBá‰1Œ.¨ø¤ 6ƒŽ5†µá™µ¢ày›!µÈ¯s{¢ÌÀÚ±ÂÛæunÏɱÿÿMT(IyZ޵&hš¥d°QšìZƒòf^?îæ@yÀ:壅¹ZÌí-Sq/l£‚îÿî-åºÁ±Ó¹ÿÁGyï gs¨Ûç›f¹õe*lò3Ýæ•£¨{”5©uRË£&„ZÝù}+\Ô0fUjža"9!<ÿ° yÕþ€>¡>wÁ¯|³_üà§S4!8‚#8‚#8‚#8‚#8‚#8‚ãÆ�X¶Í«Á»k����IEND®B`‚IMAGE 3871 ./arch/monster/troll/Gaelotroll/gaelotroll.x72 ‰PNG  ��� IHDR���@���`���­Åtè��æIDATxÚí[Ùo\gÇÛì«gñ2¶Ç3öxßâ}ßâ}‹—x¼íLÛIì$Íâ4m³GM Mš¦-ET]B Ñ—¢"B PUð¨åÄü?NÎw}¯®=Qx‰3vç“>Ý{¿¹wfÎï;û9÷±±±±±±±ñìTóëC°šø¬à¹ßAØF¤BxòìKÐæ”ógûšx­¿\ Ÿ¹çÒ-$7aÊÛç�XûW`Û@¢3 µ Ÿ†}âƒbµ b‡xì+¹7µÌ@ë+“9ÀÜ:ûø Ì1$¥æÀ`µìG d¬†mä$œGnóµ¹s‰�)‡mð8_닚ä{s¯@_X»?�`bÛf‘èÊ‚mh•¯l)°\€µ7 MFì= 2ñ¶CÐå×Á³ð¯íyûní;ÇÂu±Ëe] ‚¡²¦æ)"´–×-ÝGñ£gaŸ¼mf>’’°§w'ïþ<³´cfS�2°*fj&Eø‚8o™‚ýðè ê‘2óhì~‚ÕKÏ"ò<Ük÷û'§“Ù;]Q’R²yÍp ‹�˜fŽˆ×êa2éžd Ͻ‚ÖW·‰Dl\’–×âv>×6ÂX;Mf!^3Û¼ÄÈ×Q>ðßžæ)ÌÇ®ŽT™¤Œ"•ÉÓå7ÁX3¸Ã «{ÕÎSûøÞá�Só¸86NðQŒle= Mb¦ì<á/´ÍÀ·zGx’Ù¥pù||åN“Úß·—ÿ´¡¢‡œŸ0Ÿ'ϼ´E4­%Ó8Oúᢊ]™ sÖ¥SK¼æðzy-&l·¦†1R„G‘röÛ|­L°Ep¯Þ'çè\aÞeAlz. ¥ËoD’ÓÃç…!™Xoe•�ÔéFe¥? �ˆ °4Y%$ëyÂvÌC_ÞN»<G^à¿ÂÖâòÉö@c±‰ç2‹‘Þ?i‡áéŸV­iÜÙ|Œ oéZRƒÅ$ºYËëGe4ÞRc–öY2‹­H´ºvĆª˜ «åk[Ç,Ò»áihãëHaössz˜e „wÁf#)-_Èþô‹p.ÞD¢ÛK\ÑwèÚŽ¶t/’‰€¥º¶ºAxæ.ÂÚ2†â£BG$ÚS1ùß;úèý]7“ Ë'jˆ°ÄÑ‘e²ªÚ@Õ“4µøóÎ,’ó�¬Ã’w¸†”µ°v¡pGíö ’{ϱj�Ö¢Zô†çT»ßxýùž•7_Ý5�H¾óå?¢Í­;×{Løý¥mÛ¹@¬—´!Nof?À>rJ˜·œJXH\ÃÇa(n€#3ƒï·­ Û?@Jôø]äÃÂgÔa$<)ò ­‡Ñ|÷„>ý-_9åõà®q’<EˆÓèTj²I®['åke2ñ¤—T»g\ƒ¹e’�)„ëЪ�Ä[Ÿë‹[aIMåcÚÜe4ž¿šn«Ä%^oAþdÍ×ÞDßíû¼–SW¿ �¨eN6kñF³÷º¼jÄé |™D^·–tpè^º!â‹ ž€O—ññq‚³:B¨½ú6¯gÎcírHñ*SóP¶~oüãË]õ T¬n¬å4—´û¤ñuÌæZ5iøfE¹õ'y¿¯8F•0VuÃ7 H÷êËÚ‘âón=ÇQeñ…(½ò6³§á))S‰—>#€©{ߣÿ þç«]H·óŸïQ±º©y®cwåëHVÂP5e3.½'í²‰vŒžVÝ«õ€)-K@:‰ïè5tßÿh‡¥‰7&Cï¯Àswqáó?í 'Ë–”X)ÁJ˳_oí]‚sù–$epÌ¿Lr>.îÍ­q ­]Eúú›r DG^K]c ¦Ú^S0»‰ìðUtÜûÿñ‡£DsÅAL¾ÿc<øù÷ðÚO?ÂädíÝr„˜åuclçY{O_»ìð"NkPîKË%e¸çÂ5dÎll=ì&>Ïè1^ó—ÈÄY:�ïò+𻎑³k*âC?ù…äFç#gl ™Óð×ñ\ÜaKÏ1*v¼ (%BÈZè¡J–ØÓ „¼g%.(j§|à:Œ•Ý(Ïĉ{í£g(Kt! ž�qA׉°ü]®ƒÓ¹qÿükBj�õ³³¨š î~%Á‘I�„I»Ÿa Oé0„íñB¼ÉÉV"ˆñÂ"Lõ‡È›¤ØÀÁ¹9…î^@úü‹È\| i]AÔv5Aá¨|8ÎÀRÒ€óŸüHr¤ÊyŽNï~´ovS\°¬al•ÿCÛ54gŒõ…õ°Rú,-|K­D˜�ö< W`)¬‚Þ[�UR7,bJ¼†ÞýŽ:`JñÂá01�» çý-½G…­_¹'—ÃäQOV†–¦CHkÄØâÌþ®©K$›H½ gû¬ÞÆPÞãŸýFøíS(:DáÈ$îñ«ç-²ßoé^&. º#6¶Æ'L¦–5Õº¹}²,6ÆL,n*m†±¼]|Fnó­+xø—ßó÷¹ºfÐÿÖÐüÚ‡Êî“b^~¾á2qûûÚÀc¯Ði÷#—ÏY˜ë†`,n"™.S…ÓÂðCGßí).†Ž¾?•8¥øâC¬]Cà„Ð-†’Õïí…fðdg«Ÿ“%GÈDû×^Å"?7ÿúwyM µ ¤˜Š‘½p™sçx랪9ª=Â@#t¾R‘ ßD᥷zîéMä¬ßÃê/ÿ€;ûRÅIžBr¸ªx­“ÖäcÅ\MBthuBï+sT„Ë:©”"Bòø98&/À¼ÈÓÚDÆäi„?û6öi„M ¼3ëHn±Kq3v™Ý•ëÿ÷¾8­I)–„§¡ƒ¯µØ©xê o‘@àin§ÊRcï%?¢¢EG/a飱ðÁ÷…¨ì#G«QÄ+5}ØM~’ìáÉ÷ñ”+ÅìsZ]î3°Eòc·™k‰ur¬`íœU -…­<³V^…ktUN¶j²Š>ÖÄsvÈ6v†bø)Ð5›@k×ìÓ—<u©§"sê¤Ô3‚çÌ#ø_|i+ßDrðiý":×€ÄËiôëý „±¬U¬Så^xï~‚‰Gß•°t{ñ2.îŠàT8ý°*&°Ÿcl%–Ó�ëàIþ,¹[äùÈîóÎq4ÏÁÜ<.W…d×ד/»ÈŽÁ0î˜åçÜË7‘}úuxiºæ^B2•Ü]úN\çûž9ÐÎqO€¡ª£C ™(ƒãGHÑÚN }R¦ø—Èu´ÃÕCüŒsá*R¨hb¯hVœ£Æ1ÁæyMpx)íÃáy.ô¥Ù{4·NќżFÀð÷[Î<K�8ãCìÙÍN ɜؽ¼z"h˜Ú)&ÊA@¤œ|@2+9˜0šCÄ⃒IË!O®˜ÒD%h«áÊ\Þ"˾¾´Ei:²)ÚLã©i(ÁÒù _<[æÈ&-P¡e¤Õ ËS œ@ y†Y?åÔ0æ2{sêŒ":ÁâÜVe*RG¶îYÆm½K;ôKDÔâÞ=¨õW’†nu‚’6›æÖdWydñÐdäI~{ ýIGÄÞ�Ú998"1á %QøÜºÎñEyxjH¦Yš;fˆ ªH4Š è�?âMöÈiôÀí�ÈJÒÔ4&YœQ_Ö}.nœÎ(ÅûÙ;²B¦Æ1¶á±rÉ,}ã2/¼ 7%WíÝl5Ô�´1�œ?Lî_–)úR €(œT)*[ªdÊ‚0Ðî "n9­¯’é�]ÏB/>£õ!)Ú"¬ÊØYÁuä6XÜÞ½Ð5¢ ²åBÜ~>’…`¢’<yJa$Å'‰Ð)ȹ­N¾ßDæNã«Øk¥L ° ñ\9’ «|­Ë: Þ`c¤¾C¶ï†*R #ä Ô1€½Ò:Ë2Ë„Ÿâ”éÙo0>"·†;JÕK=Çþ H礂{/Î7ÖŒpnÒæÜ0mjgË B瑈‘‰&QúzÉL²S•56êAÁMuÔ%:'Xdg{$¨ãn~â)�h²Šå5j¸"`û¢�"p’"ÀMÖÞ´ó¬ÈHŽùKïÄ›xzãõ¼ �•ãT¾ÝbÀ®pÿŠ0c´óÊÜà.“§ýyòYjój„(IõC]A+sS´ÀC“]Ce÷ÿ#ÃD<;Oü ¥Ùi÷§d‚Jó{Cë&8`jš ¹=ëÐIVЦ†á§@1D%¨³œÍ$Už¸êä\ºÉmö$Zî‘èW†’(íÎ’Üâ  Bä·ÇøzGP%ò gäœT†Û 0èKZ$nãöbkÒì…ˆÐqªôl¼ÅM´ãÑgÔS¾ST£×"7É H\0Å\ �~½nù6‡¾D$ﺹ}Žk‰Ú@=çéµ¾¦sæ §©IE¢P Y ’Òs¶l9glì©ÛwŸ‰" @�Ú"œû ”{À^¤:Ws÷MV’¼b0}q“lß#˜B6{ô–‰Ì%Ô†³óžŽy‘(Uë¡[V9¾ˆj1ŽÑ¹H.07K)­ö½"èQ∆uSë,g¹­ƒÅ@Dw\Â’âZ-’Rýr7ªü¹JœêøµU_²§”'qÌWQK+izb÷´H‰MŒtRšûh°XûŽrVGzµökñ:=hÊ õnÍý�–®Eaöé‰%íÍ"`§0Ùµò:çÿ¾@öy…ÔiªØùªaòî)»EkDÞ`_¾J§3óQê�á®p‡¦)á¼t.pŒo8ÐÉë{ˆÈ­õ<ɦËk–î0¿s¤/îD‚5Eª.ÕqŠLWT¯z~ÏoqBhþ ÉåUêšÌô¹+"Ò=ü:Ì ±±±±±±Ï`üÒPJçúÔŒó����IEND®B`‚IMAGE 3877 ./arch/monster/troll/Gaelotroll/gaelotroll.x73 ‰PNG  ��� IHDR���@���`���­Åtè��ìIDATxÚí\Yo×®D‰»¸“ÚEQû¾P²jß÷Í2)QÔjÙ’,É‹dÉ{¼Åv¢¤©ØŽ“�·hÑ¢Ú—$íCÑ¢E€"húÖÇEQhÁé9÷N/=-èÅîá.4œÒs¾{–ïœsÇ߉؈؈؈؈؈Ø8ä�Ùü¶ žõ�hÒ±øûm�MnêšÛôE.H¼*²@rA!xQ'¼ed¬GÏÊ–&d¿0âÚ‹àÙf®&·2ú�06@er"�ÛL¤¶P™/^“S)3[ð*8ï€-p ŒQ@R{ˆ ¢¯†ø$+À¹úED�Ìk`8 Ž4º†šs¬“» ”¤Ž˜‹ªö›‡ÂÄí(Èšd÷ñ/U}𯖠h<B’ZC¨9瘓˜’ z³)ª|‚Pk•5•ý56€ÈP;–Ñ p¿ËÍ¥s©ËÐ û¬+i÷ÚC×AW\§|�,Ã<ô™¾!Á™…÷Ÿâ Y’YÔ0÷-ƒ:£¬½s œêØYÐÖCúÜå›®¢œ'ö$‡vM8Àç§¹ìs·ø*Wt3ôÞ~t S(h @ËøXý@“Y‰‰*ˆG8‹aì fÏ*“]fÃ|õg™JÛƒ—8 ƒ§Ä5cë4:Âóü¸e ¬ÇvA[Ô�ÉÁGÑ4y>îÑ'¶Q€-Ùê“F˜z£;àZ¿O‚2¾` 쀶¤“³y©îF�¦™FÄkt`4j#F¥²F0Ô1Ûu®½÷¢@GwÔîRH@aã5À¢‡ÁÊŽµÅ>üî(¨3‹é{ìœAx%îû¬8�¸l‚}ö:F{Àÿüã4M!0ýíîH‚$f”ÈÌE[؆#Cû ¡¶ONžÚy´Q+lš"-Ž0NkDGÇÖ蛤¿r`Dx~@šÄ0³ 8_h ‚çÔ=Î$³ËÁéñбâH>47ëø¦Nú‹ŽoU|ÖWõ"ùY¦c9$¡ñÜ èPdà̤cæ/ʧÙ9»ÛMç”EšâôΜ«ïqúOpïÞt á HÞúˆ>Ë&EשûHŽîsùž8Ÿ˜–z;×$m¡éì¸xr^ëöÖp@.ðzs”aq: ²½Ó¨Ýåhë<vÌ‚®²W9„,0„¯QtÀ¹‹,Ї±¿Ô& ÿ^f)¤ „"­0¤LËΩ]ÙÊò šœzdz!R%<]ÌËÆ…�‚1 ¦ö ‹­Àý‡Lp}M/‹kÅgKÇ ¤úz ½±-bF `  +{°ÄÔBnûÓWÀ±ð&$¸Ü¨Ýàš¿¹o¥M= "ÁTÛ–ú!H]�sË”žà>"Áš³—¹¿ôTqaR©ú“àÈB;ϳoDb‡ë¼þ�Ìç´£ W;¶Þ…0s¬sIô-‡d«ï»õDܳöðmv^‰ERž”µAœ.‰ñ�ëè&o¹^0¡)8GV@_ÚöÌ v¿uxÇþAt¢+{PXæœ!¿Ž^ÜbÇÎéKм÷Ìñ;8vu–Δ£r¯Ï…7u-ÊCäÐ:$µøbpŽâ€¸ËØu]i+˜RRØßÔÐeðí܆#çï†ÉSn ä¯Þ‚†kïCëíÇ0p÷>û^n}Ãÿ�IË@[P‹¤HÏ Qã;oZ¡Ï”£œ×âm:ÏÊkéùž°©8ÝÇ}BÇ<ÔÝøÏš…ÕF™²Ð4Ýxÿþ7ÅðåÕ–4‡[ß Úûýp˪ƒ·<ãó\ é^]E;${Üâ{”U–î>€ò«BþÌiH/«ÿf´¶ÃÒ“Çðø_ÿ„ÏÿýWE•Ûe«BõC;V3.~!»l#"M– ¨Õ`LÍ’†fà9qzî?Û—$Åë­ õTAÕöÛ°ûõ•UV#UÖ•7sÁòXúlŸ½î+O¹-ñkt.åÌ#0äW‚±nÎɘ¹ÙË7 ã»ŸÃÿð“ˆYbRUøŸþ üòðΗÏÀïo¼£¸ÖYbj:ÃpÌÝ„ÌàY‘ô3´Ûôñ“ì\Ny‘ÎÔ¹À�p/]‡œ“·`tk]&üüÏ%ÑèBÈX„Ìé³8Šíª¬iÂ<¸·r-(iÇdê úƒ(âl1.Žßk?‡U¢Ë1ÉàA-è^]¿å욆ÑÛ÷àƒ?ý†ƒ’ 33Pã(¶í¼¬î`Q" …âùÂÆÐ$07°³Ú(¡»»àh›€ÔáãÚ€ºî&q¦½+¦²FØùÅO¥TÉfñø´0ÅjUŒuÅ `îEá–ïÈfž`̯Âì°ÿVƒJ%ëC€©~„çXxÿøy”ì»ÝŠï0SUÈÔ4©mC0±0,Ôß9u¬Íãàôõó2[VÉ>¨¯ì•¯~ËyFû”Œ xÔ÷¿ùu4µÜ¨ƒvn¼ê<v¬é<e`ññUN­k“ ä:'HŽ?t]» Íï|^}ä!ùÇ–¢«ç(dìØ|µKÍ“¤úa¨ëm�Ø:ƒÐ²÷úÿµíŒ]z¦6 èÔ ¤ÉÜ·èËZd FÕn½w�lG· ö[UÊ"e«¯ÉoÇä6F‰K`é]à>Å•iþÓ2¹AŸÉ±F_Ï‘&ÐV +÷ û8¼aZ­Íõò"*¦Éÿ.]Î)uhqVÜzÊͦ—g‰U!lÇ©UÊ Áì`6ïßáÑ6±v$I6/Wçpý°ó‰20·Á½¾K_ý®þù/â:™OáÒ.ØZF90¥ÍðZUXöù÷ÅiŒBHjÀÚHp‰%š+›8KÜ|f?ùTJ ŠvÔ„ô•· ìÊ(½ü!¤-Þ$–I‚ó¢Ê‘~x*ü2Ûƒî£):Å\øólÇÈÉѽŒ¤.݆ág_ÂÒgϤô9kئÛÂïáªûib)­oI[ÕY%_¿rá5yµ`™8‡9ü”ÔïÌÝ3û28ÛÔeH9ýdNmH{æ!ýÜ#ȹò)¤®½ ¶ÀEÖt54Œâƒ—ƒÚöس ~¤±i’5^<³[â…NÚ¶C“€p¿s^K`ö(vŽõž”:ÇÛ  A�¡ÉmĊлfë ‰‡Ç•§UÄÉ…ÐxÊA€›[ÃTÚŽ+K«ÌÉ¢ë\÷î ~ï¸fßÀ{¦iR#†ýŽsñMð¬Þzõ�ÐCÒÊÑž�}M?ê'(ý%¡ Ö%¶Ì |È~©R|›µÈ HkõµÃÛ +¨‘�ó ðŒM(`˱ðªw.rÀ&whR—‰¦ô½:ü­sì÷Í]ÁW �U|ôÕ=˜ˆTÍñU+h@FСm2¡ìDòV;E“ƒ´�cCÝdÓ¹ÈäJ©§ ÔWòhfø;W¡òÎ÷¡øÊGà^Aðv�æþe6Sr¸ý{j‘T¨L÷Í«-~س!1½(+:Ñ«Â*?¸N Њ0ÕOÞ| yLÅ©tÆC mrй§±yš~‡ü„˜$|Rë4¨lé´ùêkÙ¦.“ ^_Ë<Ç‹im£Ì'Ф‡¦•VgW!Ë"óÀU.x{>¤]ø’(òœ©›3$�Pø)¶ CIœžlšœzî 914’ç|@Ö¬±Œž_Ív‰Ô)¢@JÛhÄ=/‚ -iRÕE!ݼ£օÕ×7‚ÔËV—aÚÙG¹û1¸NG ¾ÁBÎ1³7Xø…”f?F /µÛ”Èõ‰Ýéåû‡,)Rµ'€EŒV)Σ¶Œ1AôÕƒøyâ­tŸÌo¤¬ìI‘æ&8ßeÇÚâå'9òVzðŠ±‡wˆ(BLl¡-æ§3A¤ôØ2ŠN”ó1ubT>ä;HNÑAÖ9Òä×H5½’H¡Í7Xt¿�¼~‚+;zò|Þ÷ï|!Ÿ xƒP‘êGxo�µàŒ�·×EÅê?· j”¶Ê“ “çFŽŠÈ€»Íð¸è H ˆÿSe@èÊš£¢ÚÜ•¡¶WÚ%"fȨh£s’ Ôsæw°¡¯(”ÈP9¿?**=( 3ÀKÔ£•çê?J9Â5¤ÐÇ!>ɇ5#½·Oj«µRø$`•oŒ ¬qá6,æYlnäV�± [WÚÿ‹ :QøTøPg×EAïí9œ‹-øs˜NH/l-b$8f ¨ñ$Õ(Ÿg,ÍÃäÑDF#Çß6\¡ tLÛtñ·ú¢�É0vgÖ‡x{Œ@I•¨ã÷£Š ‘ÝJެÈ3uVña  ©¾¨$éÊ£�—0œåKZ0E«x�è4!^W Ü€öšz—yÓD Å›Ì�:W¼U†ï!rxð� @"M¢¸² F‡¥P&^­9t(h†JmÌŒ¾q™*3àÄh[PààɭR"C¦®™èÌ€ esÚ¢^ðÄqX�¨2DǤ”pB„¨1Mž÷ðÛpA”*JtL•^I¦8-®Œ®h@/Wжù„d÷¡Ô_òB4ùµb+ù]eGTT‡D•X“[õ¢(€¾v”¶Ù ÍÑWuq>QÜNá‘^ÌP4�Ïõ÷f™ X1Mv®}í˜ rs�µ‡ƒFo¨P]ÁèšahQ´ÀUZC{õSKzqr�i-–ÎýˆdÚ-z¤÷ !ˆþ¢°!¬ “Ún×ÀÎ[kDŽÐ¤‚‚ôJ+ˆ [i阜©0%8Dm˜ÎH È´„ªÇzï0%W"µ–�aTÙÔR�‘;=TÃçL=Ëø°‹HŒ:EÇWWÖƒöÝ!AzÝÎyâ-Š"�]ç¡°F�Ao°ÑoRù|„2¶ÏÇ›$Ê+ë¨3«ñúþÿ~Cí©#Ž/÷(£ ì™ôY4J’Yï-GZÜB}Aœyâuv?ŽØˆØˆØˆØˆØˆØ8`ü¯Õ…±ç����IEND®B`‚IMAGE 195 ./arch/armour/mail/gale.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¥**+´˜H���tRNS�@æØf���hIDATxÚå’Û À0 B£ÿÿÑ#"¡ÐÈÞ7[háXÓ[}L°"¦zô`0Aì¾e4 yÏ..(‰_áînË6ïa1Ìò|†›8âͳÜW‘Ä@·\¹†ß¢š‡„·OUÔÜùMàת¸����IEND®B`‚IMAGE 433 ./arch/transport/galleon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,-ŠVÒi��c2Í…?�1�ùqcD���þ¿Êÿÿÿïå‹¿¿¿£Ác���tRNS�@æØf��/IDATxÚm‘r† ƒåÏ µËû¿íÀ‚ç†Á;¢| ¶E”M ù¶ÊÄ›}œÚ‡sà€ÄHzâã7Àp—Üç^ðÐ Pñ ‰£›Ïú“Ѳ BkŽhebs¦�—ƒ‚NB²ü—]ÂÄÑ3Ëþ·é�õXK‹¥Ex ѵ!ÏÃù„ÀåMਢ�iŸ•S‹¼©= !{l@×›ºes¹ÌÒDwh�i­›$*ìÃ'Úü€éº=³è¹…¤ „¤‹õ^œé*™°‡T&À ”s~=J¨fÔ3¡ÄL(õJ éж²S�B¹œ@ŸÍÉ È„¾XŽ<õ«7Ažb Ô\ß:Yký.Ç¡zåø©íÝ|ÜÄQÞŸ§²<·>Ætûð®-õ ÎÄq›ÁÚ8����IEND®B`‚IMAGE 187 ./arch/connect/Garden_gate/gard_gate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷{J!­k)΄9���d&z���tRNS�@æØf���ZIDATxÚÝ’A À0 öÆÿóèA‡d8aìVƒ ÅA%Ðë”\/p½�Q"]ôf¤@M]#"H¦ä7¦×ÒŽ,!˜wlV€V�ÿ%©s?Ñ#ò�œáZøÜH����IEND®B`‚IMAGE 207 ./arch/connect/Garden_gate/gard_gate.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷R1{J!΄9���ÉH¯J���tRNS�@æØf���nIDATxÚÝQ �!DÝ|÷?óÂÊD®EÐgC‚ôdíÑ+ ý€*̓ApT¦¶l€¡E¼+€äNÀùžSΡ8¿AoÙ<»·gc€6¬´AxzB˜œ$€•VƒŒ2Çæ"dWèt(‚YëO����IEND®B`‚IMAGE 209 ./arch/connect/Garden_gate/gard_gate.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷sJ!­k)΄9���bP„���tRNS�@æØf���pIDATxÚÝ‘Q À0Cm›ûŸy‚¤ê¬ìscÊ ©Rù´ð@¿Ð‰:P•sФz,òô©òÀ–l:š!]žܨÃ9rÀ"3N@ƒõœ /È+¿W ÷Ê7çâfǵ€´)(419 &ù….?¯½ùÖ����IEND®B`‚IMAGE 209 ./arch/connect/Garden_gate/gard_gate.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷R1sJ!΄9���r R���tRNS�@æØf���pIDATxÚÝ’Q À C­ÍýÏ<:i nUƒÁ ùñ™§‚í³Ác‡¡ b@ ™Ä>q0íÄÖËö‰ç„À¬‡�¥ ° ×=>Ê®‚ûrÌCó’� ѯø„>ÕÙ¥ qqÖ b¼fúÚ/æ�]€Ó‰ð}Ì����IEND®B`‚IMAGE 431 ./arch/monster/humanoid/Gnome/gardengnome.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���œPLTE�0s¢C†µc17z©<¯@ƒ²cccï¥Z¥R)®Í""×((?‚±ckB!H‹ºM¾Q“ÁU–Ä[›ÈÌÌÌ���!{,G;~®BkÑ##&g•YYYsRR~~~L޽ 9Z„„kN¿Ä^ŠV—ÅÇœœœ„¹ßZ{É4w¦Õ((2u¤xxx¼¼¼ÅÅÅF‰¸Gй/Ãè„���tRNS�@æØf���ÁIDATx^íŽÇnÃ0w—]½»÷ž^þÿß" ‚“Ȥ}õÁs Ìà‘àäïÛ„º°?þÕâÌt>ž·Ë ç ÏÓúp9�ç`=Ѓy-´î-ˆ¸ø(› ièaZ/¨,?G!—¬§„fï¡ù¿@)ÀŒBÔEú]W½&Ðæk)e¶!"衺o¿!R.9'°ƒø4Ž¢h.)ÍòpåòSTî\AŸ yÙ§àÚ㺇˜¹|ÜúŠ1pÓ-Ü?=_ß?{àß����IEND®B`‚IMAGE 456 ./arch/monster/humanoid/Gnome/gardengnome.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTE��0s¢C†µH‹º7z©<¯c1ï¥ZB!M¾ÅU–Äœœœ���!{ÉcccGйckÇ[›ÈkccL޽¥R)Ú00Qz~~~BkÑ##„„kÚ22a Ìcc¥¥¥çœRN¿P’ÀQ“ÁÒ$$V—Å®?‚±@ƒ²$;;~®Î­JÍ""2u¤„¹ß¯¯¯ç¥R×((µµµ¼¼¼ÌÌÌ,nY™ÇXƒÆs9csB…´!-«^���tRNS�@æØf���¿IDATx^åµr1 %™Žágf† Ãû?W<¾I'¥L“-¾fWž1ü72¨~Ä ç½ÍüŠA•…íÏUsjö»ð„“²œüwmóÞúAœ«¢+„ˆï÷ÏO ¯ˆÚ|^–Þ÷{ä©ë!QÌîÃÖJÅDJúƒAܾ­ Ü"¦é µ â縵h{ §êîA ̦ÓQŽ÷ydï@íç1>ÀYh<ØÈäŒg Ì7Á¯ CÎu·Þ����IEND®B`‚IMAGE 228 ./arch/monster/misc/gargoyle.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V.‹W���ÿÿÿÿÿ�¿¿¿âyI¦���tRNS�@æØf���€IDATx^ÅŽA Ã0 —}‰<‰žà‡ØÐÿ¥:4"é½t$0ƒ¼úE5ÈG [†Z->\ 0ûóàÌjrØ;׋Zm°Ž±oã5ç‚6"Ç1jÒ½2çÌèfeî¦>ë—«aTB722t‡x B~Fæ!XþR*å £AÉgTã%����IEND®B`‚IMAGE 204 ./arch/monster/misc/gargoyle.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V.‹W���ÿÿÿÿÿ�¿¿¿âyI¦���tRNS�@æØf���hIDATx^½Î± Ä0 CQ‚@ösâÂû¯rWŠ „~!|8¢ŠD‰°Œ®g�KR C|·¯‡ôÝûÔ,úmÏÂÞÛñÇ¿Ð�.Ÿ»²P€ËqC¥¨fB_îìX ¯ù,¯Å����IEND®B`‚IMAGE 118 ./arch/connect/Gates/gate_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEï½÷���œŒú•n^���tRNS�@æØf���IDATWc`¦ B€ŒU °YÎ ��, îAIÑ����IEND®B`‚IMAGE 160 ./arch/connect/Gates/gate_1.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEï½÷���!!!œŒ”Œ!ïçŒ)!�4Rë���tRNS�@æØf���9IDAT(Sc`´l‚ �`4F�°€’ °–´P8 ˆ"À:”M€ªaF0 [B ��ûFŠh¾����IEND®B`‚IMAGE 228 ./arch/connect/Gates/gate_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���!!!)!�RRRkZ„„„ŒŒŒ”Œ!œŒµµµçççï½÷ïçŒÿÿÿ(…��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���]IDATxÚíÑA€ DÑE¨Úû_ׯL覑°cÁßö¥)w§ˆk�5ÌÁÖÙ�<Qh7¤ôÀyÁWñ9�YôT¡pÀ l|©ˆšàÜAµì™ot7Õo¾O'EyÛ����IEND®B`‚IMAGE 233 ./arch/connect/Gates/gate_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEï½÷���!!!œŒRRR„„„”Œ!ï猵µµÿÿÿ¥¥¥ÎÎÎ)!�çç猌Œ½ÊÙ"���tRNS�@æØf���jIDATxÚí‘Ù €0 ˜õúÿÏõ TÐJ_·d—!´ÕÏçà³ÐdI…º$˜¦>G*PÈ“À8°›€Xй9–lñ,wÉÉ^`¸ó�ZàZ .pµ ‚щ<¨ãÕÚ.Àö±øÕ›Xˆõ®øþÖû����IEND®B`‚IMAGE 255 ./arch/connect/Gates/gate_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEï½÷���!!!œŒkZRRR„„„ï猵µµÿÿÿ)!�”Œ!ÎÎÎ¥¥¥çç猌ŒÑhƒK���tRNS�@æØf���}IDATxÚí‘Á‚@ ‘µeáÿÿ‰4MÖŠWέi3}É»ý¹äÄ~H‰ƒû<3B0Mçû ;õ›�Ši•ùEŸ€b‹Ì$#TL¤ (K­ ò¦‘&˜^àÿP?ža¦Iý‡}ôû¨axó`,/ j:/úJliv•µI����IEND®B`‚IMAGE 264 ./arch/connect/Gates/gate_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEï½÷!!!)!�)))RRR„„„ŒŒŒ”Œ!œŒ¥¥¥µµµÎÎÎççç���ïçŒÿÿÿ.S¼���tRNS�@æØf���†IDATxÚí’Aà IÚÄÅd²ÿÿmŽÂ£ª·:7äÕ°F”?ßÁ„x¥Üå“`]ÏŒ;@>^ę͵˱\Àæ‡Ü%'® &‚£‚vé ¸žTAsFA`IƒèШ’RAÜRÞ oAºBï0>çŃFçe™ÿƒ€œòK¼×;˜ÿÉÍ����IEND®B`‚IMAGE 270 ./arch/connect/Gates/gate_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEï½÷!!!)!�)))RRR„„„ŒŒŒ”Œ!œŒ¥¥¥µµµÎÎÎççç���ïçŒÿÿÿ.S¼���tRNS�@æØf���ŒIDATxÚÝ’Áƒ0 C ²¦¼ùÿÿv;PU¢v™æ«#çµNú3«ùÏPm`$À+R ˜çûß�À®`umò:q&øØ»Ü%' 0\‡ X÷ Ú@Ä®…,(Ι &Ô ÖT†B–DOPw€´W@ô»láA¡`] _Ö˜øiŠ/m|«¿¤7ùïQÅ7З����IEND®B`‚IMAGE 128 ./arch/connect/Gates/gate_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���{k!sc!”„9cRŸÛÁ#���tRNS�@æØf���IDAT(Sc`î€Q]@Q`T�Y ]@!��>ñ¹×Kf%����IEND®B`‚IMAGE 151 ./arch/connect/Gates/gate_2.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���cR”„9{k!ïçŒsc!)!�sŠF®���tRNS�@æØf���-IDAT(Sc`n€]•Ï(†.PŠ. Š.:Œ‚ÑÐTÐàl�©Õp;Oy����IEND®B`‚IMAGE 173 ./arch/connect/Gates/gate_2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ)!�cRsc!{k!ïçŒ���ˆJå×���tRNS�@æØf���FIDATxÚíб �1 Ã@9‰¹ÿÈ_}˜ Dõ…òvYÁ ¶€j¨  Ú ú¬-€“¬³& Àõ„K<½rÛÍ����IEND®B`‚IMAGE 189 ./arch/connect/Gates/gate_2.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���cR”„9{k!ïçŒsc!)!�sŠF®���tRNS�@æØf���SIDATxÚÍѱ �1 Ã@шãý7þfÕ6ʃØÁ0-�Ó0-�Ó+�L[Á@¿ê àduj{ H H H H H H H ð{ÃGQ[¯ž‘����IEND®B`‚IMAGE 201 ./arch/connect/Gates/gate_2.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���cR”„9{k!ïçŒsc!)!�sŠF®���tRNS�@æØf���_IDATxڅ̱ À@ Ã@ññŽöß8Uª�¦Z˜ß Y÷è@@G�:Ѐ€Ž�tV�èXAÀ÷ŸG�7+8÷,`             ÿ½Têh{š����IEND®B`‚IMAGE 200 ./arch/armour/gauntlets/gauntlet_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ¡¡¡aaaààà���¿¿¿ß�á���tRNS�@æØf���^IDATxÚåÐÁÀ Á›Sÿ'"o‘ðwÏf†ëÜ=R@ö¶‹?‡,'¼_(Ÿ «ÆX>S0²;RÜo^¿™É ?°wspø<ý»9Ñ ö\{ì§ÎÉäÂûÖÉÜ����IEND®B`‚IMAGE 264 ./arch/jewel/gem.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���QPLTEïÆ÷µµµ­­­œœœ½½½ÆÆÆÿÿÿ999BBB”””¥¥¥JJJççç÷÷÷!!!ÞÞÞ{{{„„„ÎÎÎÖÖÖ)))111ïïïRRRkkk¸VPá���tRNS�@æØf���eIDATxÚíÎGÃ@Àf6)Ù Nÿ¨ý�ÏYõ¨"]N²O9ç%ÎGåiá;܃>v¶2¶nºšQðõäÖ ‰ø<Ò_ K¸—èÌè<ž)@‰>Ì5EæRëïÿå,_½„µ4‚¯ñ����IEND®B`‚IMAGE 258 ./arch/jewel/gem.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTEïÆ÷½½½ÆÆÆ¥¥¥­­­BBBœœœÞÞÞ999µµµÿÿÿJJJ!!!ïïï÷÷÷ÎÎ΄„„ŒŒŒÖÖÖ111ççç)))RRRZZZsssF8���tRNS�@æØf���bIDATíÁ·Â@ÀÝsod±‚þ…îc%š.çxõ¿‚¡õ±õ¾òƒ",©~ ×¢íE$ü@J5„&û}AJTÕÆï©fjä­"g4±å‰‹0™fÇÈ\Ýë„ËY~­®«#ƒ¢–����IEND®B`‚IMAGE 167 ./arch/food/gen_mushroom.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷½ït2ó†���tRNSÿ�å·0J���NIDAT[cø ¸‰9æõ ÿs?×3ü«-¦@âëW ñöPB$‹EÛ·wËÄýr†/ âÉ»Ãì /ó~—3¼ÎÛ $ ÛËÑuà"�BZnØ]Ÿ����IEND®B`‚IMAGE 170 ./arch/spell/Rune/generic_rune.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷���€„H���tRNS�@æØf���RIDATxÚÕ1 � Ä.ÿÿ´ÒEOtÑ@§d(§÷�_C0oæE¿Ë÷=  DA§úáDÚêÃÒk&p[bÆÄ¬æ<�\‘ØD_Ñ�å³�q6k|‘����IEND®B`‚IMAGE 299 ./arch/monster/undead/ghast.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE÷ŒïZZZc1„B!”��¥R)½½½Î„9Þ¥!ççç���ÿÿÿÇ ¤Þ���tRNS�@æØf���µIDATxÚ½Aà o—Äøÿÿí⪗�>ôÐ%ŠfdÙ¿¤·vÖÜÝ+£{Dx%ÄKgÏ¡-Úžýl;ÞÍ ÏÝ€ W £›KŽd*+Ad€ %L˜™–Ê$8Å!MDÂñ4<Âć@¤ð0<²ð’–Âpéó˜÷}“ºò/bÞ¸†òm;5Àœqq²ºŒäa`€Ø ÝP ¦$WÖœV6håâá6 vK~ž•¹e;Êxºe$ü5o8"xà-����IEND®B`‚IMAGE 299 ./arch/monster/undead/ghast.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE÷ŒïZZZc1„B!”��¥R)½½½Æs9΄9Þ¥!ççç���ÿÿÿ þú}���tRNS�@æØf���²IDATxÚ½‘Á!DíLaw‘ÿÿÞBÝ[‘&=tLŒñ½ êø%SõÑs3ëŒiînàÏ{Ψ ®{N·îøÐ dÍ3s–’“Ë`)€ Þ‘J˜ XP "2„±(Äv ÂZÐ#väY nv àº.‘˜>NðÕ&ÏP–¿ Ës %Oº„ÝC/^ ‰IáV˜`/ rs©¹ - _ZP7$äî’î÷‡† £¥ÛÇÇó<£ÄbUé����IEND®B`‚IMAGE 294 ./arch/monster/undead/ghast.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE÷ŒïZZZc1„B!”��¥R)½½½Î„9Þ¥!ççç���ÿÿÿÇ ¤Þ���tRNS�@æØf���°IDATxÚ½‘Ëà o׉ñÿÿo7ÐC£ÄDê¡ ¤™×òKšû:ç13ZdfÌ„|©Õªàé5ÚêofP0 à Ô4ò›dÚ0 œ…\’¤ÈzxôtkL2ȼܶ¡¾�üN $Œ¥]®ÁÍ€.ÜÇlßwRCùNÀ&¥. T/99šŒÁYo�¢ša.˜òá¼ç´i8‚gØËwKR‚/ӄ܇HøkÞ²MMGÆF����IEND®B`‚IMAGE 212 ./arch/monster/undead/ghost.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vààà���ÿÿÿ¿¿¿æ™ˆ˜���tRNS�@æØf���sIDATxÚµ’A�!ýÿ›7¦‡ ö²’x0S7µc[¾,_†çÕPQÆ’op9½U%¶Do:&RqöÓqÎÈ‘@² çÖ9<°7œW9 ÝBÃÄ\¼•çœ@¿šàø”°<@™pÜü']à¿Öb$ ftÔ¨����IEND®B`‚IMAGE 225 ./arch/monster/undead/ghost.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà²""���ÿÿÿ¿¿¿†ÅÆ���tRNS�@æØf���zIDATxÚµ‘QÀ C™÷?òB:³˜Ôò³•èÏ«EÑþQZ¶<Z 2aÚlÆ‘'ø±ÎN¯Áy•»q\ •¢wËå©E9pnÂôÞ2í€ïá†s0õΕÀ¸LÈ=AðÃ_õ|›£égÉ¡!šCÙpüSÝ«;½ ›Ü����IEND®B`‚IMAGE 396 ./arch/monster/undead/ghost_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÆÎ÷���ç��Ök1ÆJBBBÿÿÿ„„„ÆÆÆµJÎc!ï��”91111�J�B!å4[���tRNS�@æØf��IDATx^•ÒÛŽƒ@ PœdîÐöÿ¿v¡hfWª¥>ùÈh”.ß{þꘪò Ô\ñ/(%CßÀì.ˆˆj3»ƒ„Rjò¾9ð‘«@Î%'ì@¢ 0.„óÑOü¼LÅæ‚ˆïX×"á@ÔvÐ4 0{‘+cL Öw x‹¦y�&0 Á<~ ÌÇ1à#¨9ã~ æ×V…à¤4XkÊ€©sÂD…Àù¹g™j)ˆãúw$È„qPêpÙÏõ”§Ôã,8˜ÖG“¶m½»ã$X’ùúÖP;¸¯c`?Ï€Þzw°=Á‘å›ü�)ý û}8Þ����IEND®B`‚IMAGE 556 ./arch/monster/giant/giant.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿ"N:2Âr:zK>ŠZNF&¼Ž€–jZ–fZf2nB2¦vj¢R.V'B'`ñ$­���tRNS�@æØf��ªIDATxÚí’ë²›0 „­Æº9‹üþo[)g†ôpþ¶3]“€µŸW$£ö_ÿ¼"‚ýÆïÌìŽïÏ3››Ù àæ©»ÖüܤNÚ¾Csµ;Àzh÷_D&$ÐKoÀ ž€C•DçãYF: .@HX}S8P3 £|ñùåjbÊzù°(¢T ‘I•åk€CÑ œ"’)(­o˜ò§ÁÌE$¹/�Cµ)WŽ Iu®â1�Èç'ÃAå!û ˜!LAåÓlÌ€ž|’ZiËœB•§oÀýð¥î$YvèÛG£A1¢˜ZA­ñ`“]1æÌK ðÀ¶m²íšISB·9ç¶_í1é•`ð/ y zªŸAÙ—ÉQ¶9j ÒÀvLv<ãõÿÌ”Ô×ÈôèQãKÕ!úÐ{¢<.Q)U·]âìÀSh_ãÎpE+M.ø 0°h8ú ¼'œ`ñY«ömB0›¶ :,pí�,qfzNv]ñÏXOÄÀ8ç]Þ bÙ_}C?íÙ΀÷Ëjq£Š4û`n?íïÒoWB¦n’����IEND®B`‚IMAGE 561 ./arch/monster/giant/giant.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿ"wJ>¦vff2Âr:¢R.¾Ž~222nB6†ZJ–fXF&¾Š~‚B&N:2d{X���tRNS�@æØf��¯IDATxÚíTk“£0 Ã4Áìÿÿ·'Ã.ú¸¯77k¦m‚dÉ'~ã_ÖšÚ¼¨ªÞçÎø@°¿T+?¢!Zß *>uàPš5Ôb_òe.ޏyf°(üŽÀ5ßhŒZš—àö‚W$U@æT°× ­Ù�—¾á°¡>MF@ZˆwÁ• –%ƒ2œGÆX!ÃøcÆ|ŸgQŠÊPê¸û²8\§¦U3µ?–ež}ÒQ£ù´&ÜÅgéS6GF7w‰/½»Pƒvqgçg¥»'˜°$NZœÛsìŸk–âY¸ ?¹4J” $ŒÌÝ଄!©0Z”NtOO'$ ç6 ßàí™9L-j'¡­Ä8Ã{Š(¡Ã0ÛÞÝt˜ e(¦+E„é[•ΗÐ`jÀêòó<w…ÅÞS/I~¾ŒØ· qWPw@߈Ÿ õŽk †Óÿ²„áÏ£ÖãýyƇ±µ0¼‹qsÕz¬›¿çšì;®¸pŸ¢[3»â†rœ^öVžF;ýwñœrp3~����IEND®B`‚IMAGE 173 ./arch/monster/animal/giant_bat.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���RIDATxÚåA � sÿÿè¢Hið"ÚH‹å©tAÚ4Fþ[°vCÁ™ÑKìiY{(D¶îÍ,3|5=´7 Á Ð 0B*ü– vJmcn����IEND®B`‚IMAGE 173 ./arch/monster/animal/giant_bat.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���RIDATxÚåŒA À0 ÃbýÿÑ+Ÿ9•ƨN©_AÚ¶p3^c5 f`ï`ë? !¦$ûI.ú½@`]“g„-E—,R:Ä~œÆZuaÆÀê����IEND®B`‚IMAGE 166 ./arch/monster/animal/giant_bat.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���KIDATxœc` p004à`h00,@e¬àhX¢™Vq4­1¸Vi-ZÕ�QKZ‘ת¥YP5š‹À" «˜˜Và°{(�6$ID\ªG����IEND®B`‚IMAGE 1765 ./arch/monster/giant/giant_chief.x11 ‰PNG  ��� IHDR��� ���@���{Žu®���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ’ù¥���tIMEØ,&"³x��rIDAThÞí˜[h×Ç3;+í&éÄQÇ›zjËe³Ú¥)ªJ'Ønã´ÆE´Šò–‡ô‡PT”Š ¤”@E“‚èU­òº›@‰ˆLSdꔄZ‹£*™I"¶ŒœQlygçôawŽf"YÚ–û¢ïåÌž=ó]þßõ ìÒ.íÒ.íÒ.ýŸIÛ)Æ[ � ùʾ½´¥Süqî=í®(pØj—VÛ}�RÒ–N!¥ä ¢_¼ñVL¦q§…hIÈ=÷¤â^2H$Ë7?[wþŽ+Тƒ™L’¹_P½'‰¡'IRJu§DI¿Ó ºN[›IúÞ4m­iùz~P•’=–µó t¤’<ر‡ûÌð§·.#öî%û僜ùw‰žÞž»“cƒýÒ¶m¬ŒEy©¬ÖÁ±qmÇc Jó óàï@é;"8vô¯Ï¼ÎÀX‹éצ±÷Ù¼zù —ß}€}¯Å‰)f}IÑÐxø™be,Ž?;ª5À“‡¾( ù�ö€'p]+³d' ]|ÿÑ¢Ú›ª üôO�(/•›sAhµ½¯&ÔÊX°„zòÇÁ4ÍØûECcÖ—<Ù›’zSÂØäºr5ÿ^™Wÿ‡Ö„+€çyjïo#§èNê¸Ç]×Ý: Cá¢]€¿&D¡,w=W‘xñç¿¢;©SªëàÇh²xž‡ëºëösÙ\,ÝBzû…)û[Ìú2ö�>$µÞ4MZZZ”å+Þ /^¤T¨Þªâ8ô1ׯ_à/x'�[×ȶ$¸éd¾ÑËŠ·¢ø§R©Æ‚Ð4M„1Ÿ»®‹wÃ[;#LeÕâ璉¿-4®®V™õ%êèEymêÑ.(ä äºrX‹Á±qÍÊX8Žƒó¡ƒ±Á¯S.›cqbŠ©‰?Çxô˜7ª ÏóTp†ñ£o¿ã81ßvTs–D»À¶meѩ៩BRwRçêjMøs7«€»ì6׌Laâzîº�r—]ÇQÁöt:NÝÉë‰UN˜Éª[¢‘¾#R´ åWa ÕHŽºLÿãmÞ¨[{®¾–*ECS)·¿µ¦P±0êÞÀYª»-’®›a½‘D…‡-ºF©T ˜õ%x•ÚZ¯‚3>¼0ý/m¤Ï”aØ0”õõCaÄ5tùtº–Ïý†NwR§ßЕèU.z&ꂆڱáïü8•¡uEC£Œ¤\Y³ ßÐéHjœ0kÐw¯V•Ê^…™Ïµå°y[ ÈŸÌ3w~ŽüÉü–5ã‚»ÊAÑJéü¥J@w2Ž@”ÿmp—]Laò_wUíåOæy¿þû hUÏ¿[Rg~óT>€ÎN“/™IFÝ[œ0+AºÔù+ó+púÜmüƒò§Óïhϧ yÖ8õL‘NÖZløüͯ>{·³Óäý_ÿ“R%`T´Äâcl°_†Áíz.C/Mj[ND/wÜ'é®Äúº…FGRãZEÒc\­û;º†1¦ås7«ÚäðtS˜x®·u!z>eÈ0À¢בÔT™T°•*ú½¿5¡ Pˆ€ã8ض³è4–Ÿ<v˜j» ñÊyú ³~PgX]—ÿÑÒUjâF•?ЀšpgMøðäYMßlö ;aõ»'ùä±Ã<òG•àY_²¿5¡ª^©p­"•õ�¯z%<,h¶m#ÚÓgµM§âoç,9pì8žçÅÚ±1ñ{Þô>[Wp6Z£Âo{“Ú¬zž‡mÛªh”—Ê<yíSÅ4L­o9$û2‡0M“ê ?,3cã[Ö }³Y l·¹®œB6¢¹?U(…ktDß–Ñ!3lC/Mniï×z·}{ºm3Š §¡Û1¹ôæ¥;§ÀÂÂBìn^¡vêþ¸.³Ù,aÎ6*<›ÍÖf=c­É¬ÁA 3L¢¨¹ž»ª5¥À¥ÿ\QcøV~ß5üÚø¯M+ÐûP¶½vÿk”¢l;U«¬CßLà¹2>î4ó®úÞ]v)ä X‹3=ÓÔÇ QÿÌ „hØmJèÕ`úµi^~磦˜„1½%7…€½¯Ö£ÇƵÓç.l?çýÚG‡»þ­øó( OjÛª„Û¡5gÑÁs=5nÝué;"C4vi—¥ÿÞàF9ƒ����IEND®B`‚IMAGE 1609 ./arch/monster/giant/giant_chief.x12 ‰PNG  ��� IHDR��� ���@���{Žu®���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ­#½u���tIMEØÇ÷}f��ÖIDAThÞíXOhÛfÿÉ‘»QlQ¼"\1{[gLðË £ó ëŸÅÛn;”·’A=”’@×QFYÃè¡…….ŒB»îK[JKpÆØÔâ £ ¥»ˆ"˜ŠÑ’¥–ýí Ÿ%ÿ‹.½Ô‚eYù~ïýÞï½ï}zÖ³žõ¬g/ºqÛµðŽ;½Þ»k�;ý~\~ð˜{.(/I`à%ö}§ß�ðý.L~;"§à˜Z¡øOÃóüv0 âõpýý¶#ÀÚÚš}ñàñö:°{÷n¼•x£–Ždj6 ߀¯éóžÿÛÁÁA�À¥Å?ìVíZI&ŸOÌOŒ�Bô‚I’ ë:Ʀg¸mg��îýµ�8rþ;œš» ]×[>»% L¦S�né&Ž$c¸”}ˆû“$ 7og‘øü[�xíUFù¹«xŸ÷…ç0|ìsH! û&¦¸®!É8� "�'ö'aEH!‰=÷a"†Ã{“ìÞ‹@á9šú� ôî˜L§HD�$©&I’ý݆qä4 ¢p7'žƒjr ÎOŒO·àñx �°²òýFsL£�Ã,²{gN~!¯ ϱÊ��Ã(v&ÂÉtŠEÁ&ŠZäŽEéwÊÀ½ ?â3î—* ôwTTp4*Ã(º°å’\Šÿáü%[+ý}P-âîª ‚¢À"¢‘ëºÎ/Šä4 9Mcÿ“Ÿ»Ú úèE1Й¢€(\9¯gÂ)º+³?Cá9(<‡!¯ù2T‹ X§s­¶œK“¨,»�j6‹UÃÕÅO ì·SïA☂kï0úOO†Y´Y¬–g[ ¬&ršfçÕ²•¿ïø§ëE™l ™ED¢‚{e¹œ �øèè;,z…çpîß2g³Wp ÀÓIî £½ ³Ò€L6Ë€eÑþ‹Šµ20»^ƨàuôŒPM V›L¦SÄ)<º‘Œí"+ZŽS£àѨ ª”*8m<ž:@+gSÆ÷Ä © 8ÛE�l |íâ¨Õ¶«Z„UÀ’ø}>¬& Û ŒMÏ´ß –ñMfÑ,eÑȨuAe ÎÏ!¯³ëe–ÒŽû@D£ðHo�¦€Î\ ^(<‡QÁ‹Ñêý¡2«¥TÁ’WåÐ2né@^{‚&Àõ‘À ³ÄOAï—*µ²µHco©ö‚M5àÌm³Îæb­¿] ^œ6žbT¨1ÐÕ@‘ÃÈk@e‘8‡¼ž¦àù2î—*8#¾Ä˜Ÿ'tRÀÚvKŽÎ\æ�@­N1NE×SêóeæÈ×ÃR£ðœkŸp¶qϦÓO*éoF9ý¤yô÷!ÒßÇzjDeÉ8V ÓÕÐÚjà€$ ( øÛ?€WJkLx³ë妨"í„KV…û NNÎ_çÚ2022Bè.÷æ'ïaýÝ·ádCµS»Sõ4zZKV…€±é.*Ë ½ -9lï^B�ѤÌîûÿªEpÃ,ÙÑOT;ªE8µfç¾Ýd˜EDe™M¼zAÇ…Å»lZZ¤bDñIˆÈa«‹,MÏl:k4MÁ-ÝtQß³wÃúq¬j †À&#:p8Gô®8 ÙàQYv-DK³Þ>w¶åÃ)ݹZýþËŠ¾å3ßnwN»ŒìÎ¿ïø·%né¦+rz†kµ€óyÃ(ºÏ [q >ÿíÀÏo%úêélvhÇÀ3‹.& vµ^+ë&úœtv¢bç±Í9¸vc 0,÷FBnÕ¤:fàìXšt“ûvv`2"«†‰áDRH··³ýó¹ë¿rôEY¸8~¸+'<4ôÍÇÍLËËËç’:‘מØÇw³»TpôÍG^{Â{–WϲFÏzöbÚ|h•ΔÉm¹����IEND®B`‚IMAGE 369 ./arch/monster/giant/giant_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,-ŠVÒi��c2�c�Í…?�1�cDÿ������Ì�±!!q4Æ���tRNS�@æØf���õIDATxÚ…’Ž!CeÎá*]þÿw)`öhMÌ»¯3…Ç]¬ÎÇ'‘_ µ”Ï/Å¿jCÀ3x"” XSæP’ÙÕdv&0KÆÈõª)a°å*äi ŒÜW¬Áö‚t'ô\x3Ä¢úy7Ì\Ƙî°lW6Y¬áЦ+‚’ $±f„ØA®{^-/M±ÉŽX§h“Oÿ œ"p3ÃŒ­AÈ‚á|ä1Ðu¸ÚèMîŠÒjèSа?PËQ…[Ã(b4 br!B[½ ZÖ±Ú4šçx!hÙ&€wé^ÏFŽ”~ߟôJ)õ?Ñ©+<T>$����IEND®B`‚IMAGE 1762 ./arch/monster/giant/giant_leader.x11 ‰PNG  ��� IHDR��� ���@���{Žu®���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ’ù¥���tIMEØ(¶šÃ-��oIDAThÞí˜Oh×Ç?³Ú•´»£ÙÕž]I–’ÕjaW…ÒÛ·„ AKhe(í¥‘KMã‚/u.>È–T´¸‡¨´äà†¦ìˆÈ¤ƒb,b·²¬XN;]íÊ¡¼ÝÌncKÖëa5O3^YÒ Ë½èË›yó~¿ß÷÷`—vi—vi—véÿLÆNÜÕU+�(t¤±âͼuóŽñTøºR¶ÕÀŠRXñf”Rì¿úÛõÏè“f¾¯±Aµ&â�‘¤A5@Šâ•šýO\€Æ˜±™g1¢‘±h¥ «F RäI D°,“x2ŽÕç_=ÌòÊ •¢Õ¶w^€=Í1Úö´òL[†?\¿H§É>ÛÅ…ÿÎáÃO' F‡_TŽã`gló‹z3vÜ‚4;7 Ë;NQ�sss;zŒ&?`è¥!ìŒÍÄû8ïݘáÆ'Ÿ�ð³ïòÚ{W¥ ÂJðËï};csüä£n^îmWýûûpö9� ½4„”;³æd/ô÷ñý翦ïÉÒ%„•à­W~Àb~±>øZ;U¦vƆ<úÚgÔ¿¿×u1M3ô¾°ÈR8ŒŸQ‘º˜ïsèéë©ÚwfV?÷µñW�Ïóô½oœ'L"¬Dè\)åæaè3)ËkL„ZséI½ßGÂGàÇ¿{›t2I¡\®ŸhyÀó<¤”5÷{²=¡póé§oÿa%ȤLd©zÀ24lU{Ó4illÔš—½2W¯^eie‰‡âº. ¹J¥�?ÿËe¾¸¿DsSŒL‹IñÁ^ør7e¯¬ÏonnÞšš¦‰"ds)%Þ½µ=ÂÔZ½v銶wˆ‘/zÈRE£<kCDJàg4€ã'Ï—^?£®M]C%NÆåª3õôõpâó:Ö}ênkerfa%´cú(nX |ø]× ÙîøÉ3†›wµpþƒgÇj˜§“IòEa%(ܹk�È¢¬¯™ÂDz²ÆdQ⺮v¶Þ¶½¡çéd€[ ÷8Øž¡ºi":=xD‰”Ðv¦Ð…¤i­þx÷?È’«“‹°Êe„•Ð!—IUß-”ËLÎÌàæÝªÙáº1ËÕ_yé£û e©Ât®ÀäÌ|hϯ'®²(‘r ÑÈcµ_M$¾Ç6í±UoÛ^d©B{*E:™¤=•Òé5¸… î š`kQ Ës’~¶SùÚ +AE-Q)/éОJÑ’hÔöÎ'=m†ŠZ¢ð5iØÎØÀgpîÅ«×Kœ;dmš3楤K4ñj®L¡\&LÖ¡ ²ë ‹S˜Ü“÷õ½s‡,æWÿw‰&}ýû›y½çü‰ýp:;M.Æ™œ™ç`{šB¹F`•ëìÌìúœ}÷²1ö“aõ‹‰[F×sÝ*W,rñ‡Y:Y+±þõ7})ông§É+‹ÊeŽöu…üctøEå;·ô$#oŽ›vDÏK}<3ªë #FK¢‘Ï+ènk%_¬Ú;¸ú>ã‡eáÎ]cüÔˆr]S˜xÒÛ< »žëV¾ƒ®%ѨÓ,Šyÿ&ej‡ôp]Çqp?u·?èkC¤âüf¡*D®X …Ú£ä§Þ P·îqÿ³E¨2wטŸçñ&x¹·]e³Yœ§Ú¬æðßþãŸZ££}]Lç lO3+0b€é\A×€`æº.§Æß16슿Ýc«¡cÇñ</TŽ_¿r›ån×$œõV_ó '©*¡çy8Ž£“Æb~‘©/êCýÐ9Ы♘¦xxtlÓ¼Ù¬�èéëÑMÈztóߟk¦þlÑ·%@°Éô ÇÈ›ãëB:ð•mOO-FAævÆ^w®ói꣩''ÀÜÜ\h¶óG¨škœ0›ÍâÇìV™g³Ùj¿]+25-øVÂ_Ï!AÔ¤'C£Z]LÝžÑmøfv_5–«í›ß¼Ö-À@w޳6ÿm•‚lÛ u©\…¾Ç“*ü¢žw#¾íeQÒ¿¿;csáÏêúX!V?3¬f¿º"&½&ÞŸàO·ruâû@pJ® §£Z£‡GÇŒ³ï^Þ~Ì/W«ÝSÿVü(Š�#cãÆ¶2ávÈGÍýÔÅ“žn·ž:<¢|4vi—¶Jÿhæñ~i¤ê…����IEND®B`‚IMAGE 1578 ./arch/monster/giant/giant_leader.x12 ‰PNG  ��� IHDR��� ���@���{Žu®���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� ­#½u���tIMEØ+7açs��·IDAThÞíX]h[UÿÝR—4779Œ´½Í®6Ó™å¡cµäa¥È؆|Øp„QEŸ6F‹²— ZEAE°…:ÙÀ€0˜-%Š`¡LÖΡ鼤'6Œ›47R(\nÏɹùêMg÷²ü!äææÜóûüþçmiK[ÚÒ–‡]¤ÚØçóYìz¸GÆî®.\¾uWz êZyÿ½»« � Èøø—[Ìΰœ3`&ù¢Y³¾s'< (x"†Çc+b(—ËöÅ­»;«Àž={ðÔÀ“•pÄã˜O§á•½u×wüß (Š�¸4÷³}c£r}(0Y0=>f€RA󪪂RŠÑÉ)iÇ=��¿þ¾�8õþG8÷åPJ®Ý&#�ÌÐNÅ£¸”¾³GâPU×gSè׸üS�0ðø^FçgçáéâÁÇA ©8<~AjY¡¡!ëà@ �Я�gÄaE¨!•¯{f Š“Ãq~Ïøöѝ_} �@ó´uL$F¬~- �PÕ ˜ªªöï àà@ ]ñÏÅcmÝá÷éñ1«£UðX, �X\¼Íÿc1fV€Q*ò{ϾûzeDñðÌ��Ã(º#áDbÄ ¿Œ@ÅraSö›yàôÕï±_ÝœiÖ¸ßU0Â1« £è\°!¤[Hu0þåÏ¿�ô}0ÖÖÀ-eAø¹EÌrJ)g<!dt]çÏœŸ¯á@µõ„Ü)@üpļÚ"éNo2ž(ôÊ2V ek뜜â^M¸8š°"šæ`<�̧Ó(%0^|‘LòÿÎ=·3/îʼnd–»?µ¤s¥¢íÅÍôlÊ‚QBF×í¸nØÌ?|æ‚DiAâG*F25‡ˆß‹ˆß‹a “)�®<æÖŃܟÉö^ÞA€7±7Œ"hžòÔ€T:Í5b"¤Òñ˜–è= †»…šªpa£I&#–H<ÖHŽE{¬E=Ù0ðHÄ Í™&RK:˜õL–9[’0¶/ }>‰cÑ À–À'’YkëŽÊGr«@—׋‚Q4Û£“SÍ{AþÎÞNÍÙƒ¥F€\Mà£_ýÅAÅï^YƽÇCêºôkaäïÐ`(Æz0Ü ¢x±^)”yäL¹U82‡¥qC–õ,ä:ÀÕ–ÀÍì*g¼Ê+(kBbÝØ¬[r@Œm½Ê&J_ÐǯÃÝH-é ws´4ôka,ëÀ[7þu¸W–낯ÊÈ™&žÞ¯qLYlRÀËvC^›º,àSŒÈèj`æú•B™+Ò+Ë<4Dñ8ú„XÆ;·š~†I'>ýíïºng`ì;gšè ú÷Yˆh UæEW Uý?v­á3ÿàÄ[¢÷êr šˆ¬®¯®H�,Ñ oN_“šö‚¡¡!‹u¹7<‚"=xåÀ£<ÆÚ:g»ÈzÑ7³« £“SRDÓjjÔLSñ¨Ý½„:Ÿ¾‰o2ÿÔœzß ¼™t6›‚ŒRMã/ÍS|8wƒoÊRëõQËô>†~-ìPxtrjËY£nfhÉáªØ¾¨Ý «Ç±MI~>1pqDoY£ª Ñ4ÇF,5«åxÌض§¬s5úÿê"Ýö™«³Ù.N»nFv±Æ>sAÚ–fhÉa9;Ã5Ú@\oEçYa; TÇ¿¸¸~;Ö×(PíÎz‰f¸o²ÍˆßN£fÄk$­X_£€èN7,mâàÚŠÔÀðØ»´„)ݨH¹öÀÅÑ„ÕJ웽jY‰ÄˆU0J88ƒRñÞlÚÕÃï\ûQb'(æ…OÆN¶¤D‹#{óq=•‚ëX2%–õ¬}|/µ ‰½ùXÖ³|³ûyqu?{´¥-§ü¹ã”‰¨ ����IEND®B`‚IMAGE 700 ./arch/monster/animal/Giant_rat/giantrat.x31 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿ�ÿ!-$?/D8-{% sV7JJJRRRkkk‡‡‰­­­ÞÞÞÿÿÆ÷/î���tRNS�@æØf��:IDATxÚí•érÛ0ƒ½ lÙiýþoÛÌ™4:FnÿVp’#|Ú‹ãÛ¥K—.]ú/’ €´W’Å„§OÇÖßbZ äÌ¿™ ½FT%þÆÅý¥’€|;» ¯¿ÁRAMoÚ ÀNÒ„Y‹Q‚˜�Ž`¬�ó`‚è_­²÷nH6Œ˜„Ì )‘®¤g"¹! ÆøÚMû ÐÖhäÕ?¥$ªÆm£ŒÄ\ÊgÛ.%Ø ©©‡>Û^&'�ÖP“Жˆ ðxXØ™‡�°*?Ȕڎ>®и^)Íý™òKí‘߸¦9¡1RÛH•£Ïö¯HÊŸ¡ÖûõÉ–¯! ´N5w?†g(ìªá`üz€ °J8b—ÐJ'ÊlZ¯œ³§‚Ìj·”¾!G�¸‘½¤n`H`6 (Ž–Îös0�2à0¬Æy,õ¯¢µèRw €�RX‰*Û› ûw €Li”YýÉPt.ð¬+äß'dB€[/Ò�ŽzÐé#??÷éØ%࡚÷(,!EhÀíqàOKÍ3 ©~…ÖŽ ÑìÕçG,Ç~°™zç·›`Uq‰øŒÃž¯(kdÓ(œ¬SfbYjY~Ýy�)=ëIwÝçÖ|¦°pÁ$Ðhf‡ .Â$ÜÇ1 ÿØezjkîĉdù¾/Ïâ,ñ9`åw$†^KÏc·³Vã¸ú² ÞË"Ê7psîoÕ!ý¥´sÕ1û€8¯cøÙõùI¶ã°s,½Ip®—ÞÐoîG=”ê����IEND®B`‚IMAGE 732 ./arch/monster/animal/Giant_rat/giantrat.x32 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿ�ÿ%+)%9);1)r&eRBkkk{{””œµµµÎÞÆÞÞÞÿÿÆ$PP•���tRNS�@æØf��ZIDATxÚí”ݲâ@„gzñç¸çýßv馭MÊ‹½J[VB0â´C‡Ú–Ù÷¹c¸½0Æj¥—tO€d)D�•€¬©CÙ=…H¡¶ `ž°|!!J€�ؤÀO&'L”0èÝ�høšÁºÙpÀ'"™¦Ñ8àú¯å%“zÀÐSæ 2h àp :>Sø@ ßYŸ6BØ:@íA=tŠ3xäy&éŠ޲¸±´Zè˜ÌBxžÞù$:€’äÕv ”|8ͤ ÿ}TÛ5¤åØÿàT†¸9„LïýÀ4-�Àj+™pÔj2|BÈ,€†¶JHÉÅîhDè{>añ;0F-@%Ô²£ ï¥Ú œâo»^¯ Ý"TïVùúX¬—pk—K›’K>õàCU ð�`�§s[H.ªÖ't ¡‰“3íŠ:µm)y*,A€ó©U¼Ï‡P£Y=ïZ°"üZ;45�F À@âª0°�ÐÜw§!}‰@“Ö»0§ «}Ñxä¸Ç)¢ÿü¼GÔuh­^õgƒõD\ÆíúÀlÅê�.Ç|qœo|(R-$„%@©øÛ¤{e²D˜Qföi„Ç»¶zÚÃÛ¦tˆÃÀ4÷óÝ϶¶úy¾-ÀL±X+iÓ?<�žºÕ÷õ ÀË @ØÌë£oÚRæja_±Ê¶S±JÐ]´€õtìx-Îú…µ«°J؈º´¾'Æ›y{»ÎÀºÔ¾WÝ Ñý/ý`ŽëU²¹����IEND®B`‚IMAGE 788 ./arch/monster/animal/Giant_rat/giantrat.x33 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿ�ÿ%+)%9)@3+t$ hVEssw””–­­­½½½ÎÞÆÞÞÞÿÿÆöÙf[���tRNS�@æØf��’IDATxÚí”mSã0 „#i÷ZŠÿÿ¿½®äfð‘ýÊ201Ê>ÖÛdùÕ¯Nª±ÝUÏÿ·Kƒ� ~à²8È”*Áì„ÏSv×3s€Ä]vHî¦ã�Èï€p³c»A"¬Gù»›ÿ‘àd‚s¸üuÁ9˜É_ JªpfwPÉ­ÇðãN$iÀÃj)È,� "ÀF!0õK…ð�ÂM˜’Öb½¼µ´^÷‹W2à:êÔ¤uýøXo·Û<Ø�ÕGV( pûÇ t'äo£ã]PÞÌøq[.òïD¥_r÷„DUL¤>Òëüx_ÖË'¿×åJÓ*cˆOcmqUùï³õÏ—rYp­ë ˆt^—‰²Æ©äzl¬¾Y™n3À6z55K7ëßpèî¨uAÍqŒˆ1Bì6È? •j’*¡Vñ&õw èõ «J9œ /f¤úpùàȾ�„KVR¥±®´¶N�ÕÂgË`¥^�óÖÞŒ;�"¼Š¬_ð1‡ªEªXÝ„Ëu½½=ß¼õpH�ªb�¹-Š ×땇úÿ×À¸Ê ”ë±%0i H@Kw ƒ®—ëÉ—9  ƒÔ;õaväûóùÛBöž—æL-0Bà1¡�ÏQ‡9%|©�ˆÍ“[ñˆ9ÌâˆûóÔ$â¹Ëͦ„=�Ë�û9¥àÝY)ìâ‡�rÆ`ý4 à™ð= ð�î�Gcà]û0�;@#±»Ýõ ¾·ßø÷t6ù¿�ÂN· M÷=úI¿J8Hó@ÑÚÐÏ À+âë�¾äo “~ëù©E¯¥ ŶüêœþÊY¥ÔìÍ����IEND®B`‚IMAGE 703 ./arch/monster/animal/Giant_rat/giantrat.x71 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿ�ÿ!-$?/D8-{% sV7JJJRRRkkk‡‡‰­­­ÞÞÞÿÿÆ÷/î���tRNS�@æØf��=IDATxÚí•árÛ0 ƒMšê$[Þÿm@ʵ±ëx׿ š¶qì¤ê²¼õÖ[o½õ?)3+«*†—àÆŸBû‰EqJP»ûñšɉóOU[ƒÈl¦?•|9ÈÑ{–Êp,¡Ùãd­WšܺÊÿªìp¶ îÀ[Ï�ªžHþVÎ~6}Ëœ½÷AV�&Ÿµá7½5òd{ç A‡@`L‹/O÷ȧÐÇÌ!ÉRI¼!eÀI¶33ŸI¼è¼9 ÛÕû6RÄ[  /!ñ¦¢ð¢2c?AÊH G@{wÓdŒÈa¸Qª½“¦EEQ%¶7[7¡¡@ß!MøÃÀ“3špYÞ.µwÿ¦¾R'ÁòVC•“{R ƒÒ[5°çmOUË$V”&)ŠW1 BègV9 Ø0mp°‚pàEVJ„Õ%QÉ%8 'b~ï0wŒRR÷±iÝ”1È,sò{]®·ß×øƒ{ë£,€XdÀO]ˆ§bhž( ŽxkÛÝ#ŒÙ¦t‘~¯@a9\â±²hHæÝ]hLQyèP—?ëÚÖ51Ñ©EH‘A§³ðûÁ"’­mÞœ0åÉ(}œëCÕ¾LÞ[`¾kÂÓ5ùXNdxâT_œ|žVÏaÃ`»Wº‡4pÐçÇ¡Áþ·þÛ8GÏQ)ÔÌ8ç£ÞW_²ñ²œdì½ýõ„åLÄ¥-î8å÷´u>�ç³Ë[Çú Ø=#*2>����IEND®B`‚IMAGE 735 ./arch/monster/animal/Giant_rat/giantrat.x72 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿ�ÿ%+)%9);1)r&eRBkkk{{””œµµµÎÞÆÞÞÞÿÿÆ$PP•���tRNS�@æØf��]IDATxÚí–moã0 ƒc™<÷e½þÿ{¢ˆ6Eë[²ûV’Ê|D+^°å£>úè'ŠøÉêþâôÞAìÐr „ü%x‰6„ý)¶T1:€Ì± Ãý-ù{X~‘6ZÒíw‚4%„Ðß�²¢F”ßvÈÆ-*G1¨&!Zêæ§�éoQ‚5}¾ˆ²k¥Ê}9Ø *€ˆ€¢ˆ?R®Õä ÚA“ª?k›Ï€(,å—РÉÉÌÄ8’2€¨Ûd<®*f` �@³S¨të)’0lèWk‰µ”ÉN�Cy»vAH Gäí¬�R>x‡@ÍS'©¯ è¤<$ŽL»~RêRûb¨‘àÒÓC8ŸÏËßq Ÿz³ L2Õ–|£�E_ýÖé´\Ø,d©ÀáÒo�ÑÀñ�'Ÿ� t¸ʤeÕX–ƒkAhÿòÕà†Ts�YŸtÈ…¼¥(�FÚö ^uê*½Ý…ø\íy�‹Yè hO‡ƒpm øúÊ”‡dÑ1}¨-R¸ûLçK? ºzoá Ûâ¿fáçâér$n¾ëzÁC…¹Àîš}¾Ð¡�¾û§J~[‚R¿¤e[èwjßÕä[¸/¢�±z€mÀcÊ:¿"°A¨³z»¦ú?V‰ÞÛÎþõ^·}Éoýæû‘ òe<l÷w�ÄË vi L¿ûìõ^šø÷êÍ2À}ý“0+p¾±ù0ç�ò}¿_xcßÿyí?s鼩V ¼ë²g²~Eÿ�ÈnëfAU§����IEND®B`‚IMAGE 783 ./arch/monster/animal/Giant_rat/giantrat.x73 ‰PNG  ��� IHDR���@���@���·ì���0PLTEÿ�ÿ%+)%9)@3+t$ hVEssw””–­­­½½½ÎÞÆÞÞÞÿÿÆöÙf[���tRNS�@æØf��IDATxÚí”ávª@ „I2ÓP­îû¿í%É.çª UÿvôT¶ì|L`úÓŸ6«__D`�Ò_zAB—¿oD¢("Àë�,"ó!Y¤©ãË+@5^¢ˆÆGÚ÷ê"À_!mE°& Bò²¯®"F0S%Am $݉€®©IBKÈúl“€°Ó Q òêf*©y$ø÷ifD.&j�ŒÔTÙ-Cl.—Ë|½Î³‡jQ³Ñ2B.“Vž @§ûpTͬ®�Ãá4]®q›[ŸŒ“9CésØ#œæéçÊÖ/Ò$²ºbi^„’¼üD#f†Ï Õ u;CÕ$´bè´¡3[,c*±DA$|÷Á¸ d€&ÕQzïâÂf:íß’*ÙD€ÎdH NbÜ›� [Ÿ}¬5E¬‡µít Ðc–P3ìý§7ü§¨Ÿ™rO¶›!ˆ¨t�ÊÞ6�³ çÙ"›”4¢�9è�åÛ]¥�MJ PïH×#àû2ŸO¨ÿ·•PÉÇ Â?ÎåcŽiy>Ïì‹Ø1õë@,�)­]ü?I”8V៲ð #û¸Òê8–:´M¤%ÀLAn”/Û÷Cþ@ë•Ǥ‘èæ�Gk`’“Ëã@}ؾ$9’H+S-Tý&‹œüJ3ࡆ ß ¦`EP@:xÛc: PBž7pÔ¸¸ÙÓƒ�Mn¸5G€á�Åt Ø—÷�Ø � w�ò÷�Yt—¤ã×€zs¾KÀ=Áy›òI�Û:I?hÂ|-á˜Ð6O¹Ûô‘Üñ)€Ÿø @BFÐdùš`ú@b“MÚÓ?•ÛÞiÅ����IEND®B`‚IMAGE 182 ./arch/armour/girdle/gir_strcon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���ÿ¥�ÿ×�¯5ß���tRNS�@æØf���[IDATxÚÝ‘Ë À ›üÿG—EÊâh½l>˜1÷:.’j‰xðJà-(qä<¯<¸/¶Ì÷‚Eî·‚¥é»máA)êíá4,7‡15äyӦ̀ÿ(7¸‰�ㆠ>����IEND®B`‚IMAGE 186 ./arch/armour/girdle/gir_strcon.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���ÿ¥�ÿ×�¯5ß���tRNS�@æØf���_IDATxÚÕ‘[ �! MîèE„ÛæwÁ|0CA»ž‹¤½D|øNâ <ðzî<åÞ„±åÜ€ü/X•{D ‚¥ë»€aIlðjX†Wãêçm¦pç¼"Ôkù�Æ{�ïŠÄ z����IEND®B`‚IMAGE 186 ./arch/armour/girdle/girdle_con.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE�����€ÿ$Á´���tRNS�@æØf���_IDATxÚÝ‘1À ëüÿÑ­#¤H'<t©T<@Èàú]$yɸ¹øJœ9ê Ï΢°‰Ì÷B‰¼Þ 5¯ì \°Òýކè'Ãa4_^úïÅebæçåÁr�뫨!N����IEND®B`‚IMAGE 190 ./arch/armour/girdle/girdle_con.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE�����€ÿ$Á´���tRNS�@æØf���cIDATxÚÕ‘A À ›ýÿ£KB›Cº¹Œàª3,¨×qÀ©cq¦q h<ä±^x7bÿÖ–Ñ ó¿0H>‹�E¿²<ˆŽTt®bžÆ¨ˆgðrÕößyUˆ ÷-ªáqZnÏd�÷ç^¼����IEND®B`‚IMAGE 185 ./arch/armour/girdle/girdle_dam.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEï½÷½½½���+Ý:’���tRNS�@æØf���^IDATxÚÝ’1 À0 +ýÿÑ!5X GC—B«!v¸ÃCâës!¹ˆ‹ï.‰»áÜûɳa÷!GÚ�ÏûèOô+WƒÚ�Iq3(>Œ"¸køo%®�á¼4ÿËäfN%™¾����IEND®B`‚IMAGE 187 ./arch/armour/girdle/girdle_dam.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEï½÷½½½���+Ý:’���tRNS�@æØf���`IDATxÚÕ‘Û @!uÿÿ££#̃º¯Z¡Œ¢K<Iw°¸øã2ÜðÞOå¾ù_Huž‹ j’W®&0R|š£H~³ûok8CÎ-¬A½–�~›·— ����IEND®B`‚IMAGE 183 ./arch/armour/girdle/girdle_str.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���ÿ��ÿÀËsº—���tRNS�@æØf���\IDATxÚÝ’A À Ýýÿ£‹R܃—‚î!(3$ iÇER/Þx Jœ9Î ž ÜEaÙ ˜ÿ‹Ü»‚¥é¹m5ð­Åi¸8©CúïoR^)‡¥¹.´ì�áºt����IEND®B`‚IMAGE 187 ./arch/armour/girdle/girdle_str.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���ÿ��ÿÀËsº—���tRNS�@æØf���`IDATxÚÕ’[ À »{ÿC‹´ ˜d n@”">žë"i¿|'qž xwž²nÂØrn@þ¬Ê=¢ÁÒqÝFÀ°v¾Þ 7ŽqtHïÍNùK<pN ê¶,ÂÞ�íCÓ¬÷����IEND®B`‚IMAGE 183 ./arch/armour/girdle/girdle_str.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���ÿ��ÿÀËsº—���tRNS�@æØf���\IDATxÚÝ’A À Ýýÿ£‹R܃—‚î!(3$ iÇER/Þx Jœ9Î ž ÜEaÙ ˜ÿ‹Ü»‚¥é¹m5ð­Åi¸8©CúïoR^)‡¥¹.´ì�áºt����IEND®B`‚IMAGE 187 ./arch/armour/girdle/girdle_str.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���ÿ��ÿÀËsº—���tRNS�@æØf���`IDATxÚÕ’[ À »{ÿC‹´ ˜d n@”">žë"i¿|'qž xwž²nÂØrn@þ¬Ê=¢ÁÒqÝFÀ°v¾Þ 7ŽqtHïÍNùK<pN ê¶,ÂÞ�íCÓ¬÷����IEND®B`‚IMAGE 1536 ./arch/ground/Winter/glacier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÙPLTE���ÿÿÿÿôô^^^ÀÀÀ/�^6ôôô ��Œÿÿ/��ÿÿ¸ÿÿXÿÿëÿÿŒŒŒÿîîXXXééé^�ÑÿÿÀXXôôUÓÿÀŒŒÀÿÿQÿÿŒŒ²=‘ŒXX&z²U«á¿•²jÿÿYôôGÿÿYÿÿâÿÿZ®ÓóÉÓ�„��Jiÿÿ�@š„ÿÿÞÿÿîÿÿﺺ®ÿÿ�=‘Åÿÿjôô|¸¸}¿õ·æÿÿHôô»ÿÿ¼èÿÿÞÞ·Ó��p$$ƒ¿a‘�tÒ�œÓÑÀÀÑôô„Üÿÿºº^®êbÇÿÿýýÿÿæ/ �/}»ŒŒÅ/¥ÿ�Q¥'q²k®šŽ¯û’ÿÿ–ÿÿšš®k®­I=‘žÎœžÿÿ¡Œ½§ÿÿ¨ŒÅª’tIýý¯XX¯•²°Öº²ŒØJçÿ¹Àœk®æmX‹¼ÿÿ¾j‘¿aXvÿÿ¿hÇ¿•Œ��'�–ÿ|ÀÀÀ•ŒVÿVþüW-pÇÿÿÈÿÿÉŒ´ÌÃÿÐa‘ÑXXÑŒŒ|ÿÿd6�ôôÚz§ÝÃÿÞÞÞÞîÛÞîî��ßÿÿ⌌�]ãÿÿç©€uYŸïïÿZ®æïîî�"¸$ÿÿ'¥ÓÿÌïÿÏÿ%$$ÿééÿîÛ��…Œhÿôÿ‰ÿÿ�LŒbïÿ�~#õÿ$$$JÿÿL6x¢áz&®|XX|ll|¤¤MM†NŽÆ�SÌ¿•ÅÀ$$ÀXET¤¤ÀaXÀa¤À€Ì�bÒ€øÒÀÀ­�bøÀÀæ%ôôÅøå%ÿÿ�kÒ‹aXŒ$$ŒXEX8„ŒX‘ŒŒyÑ  ÑÀ­XXEÑÒæ�q²XašŒôô�#�$F�.±ÀÀ�1Ÿ�¤=¤â¸û3–ÿ4õÿXXç÷ÛŒyêÿÿŒŒìÒÓí›Àîîÿ5ÿÿ8q²<ÿèòžÅó$pó•²óÉ­EÿÿgþÿÿŽÛÿ§²ÿ²Æi$$iXXiX‘ÿÒÓªººªîî¬ÿÿ®9¦®lY®lËÿ÷îÿ÷ÿÿúÜGͱ��?��bÝ…œX��âIDATx^5‘c×-;»’Ѷ^Û<¶ÍkÛ¶mÛ¶mÛ¶mÛ¿à&{¯Ó+ùT5Ï3+-Œ1™½7œÖAìB×%a´lY6×¢öÔ ýw¬3mâ*AéÑÑJ8Æ à„àÖÌŒžÔë�^Ø©^«è=Sº’XM)ãÂ\_ãà³9mÀ™Â ?�*Ž3~Üs×»”vßw‡FBä [üGAÒþ Æ‰ðàõêõ ê‘Y›Ha~ààIu‡EÏA¢ÙCIN±Ñ‰×l=}qÒÏ8þÛUAbm(¼—^žù|zÿRYÍ4ļ£0tFbWSV ¨r!&3þ ’„Mú΃?³ù|Ú:¥åÜô/£££Ä $±âÐö*¢ô¥ù‘ ÇÀæºZÃEÑ}H6Z}êIÛíöüE:üeèìì¸iO^³Õþ©ò"œÒŰä¸Y¾ –,H[yþð©”Ùææ“Û‰ULôR§çsçLý5´Ö¦ï>‡¸ ·<–3Õ.èœõœÌÈÐJ?_Ù½~cW+Æ/ÐöÉÎÄÎ�äx‡·Ïúbáà©TJA}fBs/q5¬•WË·gïç æ/¼ÿ‚b“޹³Ûĵжö0äû0¹ù­IiŸ^/¿±{¬ø§ûcV-”lB•滋= ‹S³)3y²9‚ ¯ºç”+ì2œÿÐR¶ê«k~ÔqÓ×ÓP÷öufô/—¬1#ã¥_hoºwóøžT=¯R×ÀW¡BIoíBæØD O ´£±‹êÇ”ý  MH S ‚B°(@-ß!­ ”þFÖ× _‰ÃîÈêŠA©Ê\^å¡N#Æ wÃìO­Âl¹†%Á›@©Ê­üýº n˜2…ZÖZùéOUÁʆ›=û#ʸ2Àìõ9òÚDz.¡øTï:àèós·m{àIHªrey*(\›9vÜà›=íÁö›"[K˜?ýËÀå·ÂŒ=O¸qÊ����IEND®B`‚IMAGE 246 ./arch/armour/gauntlets/gloves.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷µ÷B��c1�œc1Μ1���ÿΜšOys���tRNS�@æØf���IDATx^µÎ±à P7ž$Ÿrˆ, Ö4ArÙ„à÷VùN_úÛƒ³ß¡ÛmA! ¨"ì �¡‹ƒ P˜_(Š0H&Z€÷‚dBN'X™µj@͹Mh@¿ô¢¯ÆD\¼Xl™Á—¿Ü*ãíc¢l»¾$ÑÅÁ6çÜÀ´Â+õ´€É>5U¥!¶óðC����IEND®B`‚IMAGE 247 ./arch/armour/gauntlets/gloves_b.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEHHH���&&&777KKKCÂ���tRNS�@æØf���IDATx^µÎÁÄ Фµgò p'à­ »ý—°ä"1÷p|Ç¿¼8ë"?h‚”× €É Ø/TKÑ€#õÀAcÅ4 • ¸ŽZ=£·ÉŸ½èTD«ÛCSèí¯†®ø8´½È ^ÃÎGuà…¡í7¨Ì°•X&`²à[ó|)h/J����IEND®B`‚IMAGE 247 ./arch/armour/gauntlets/gloves_w.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEìì윜œ¤¤¤³³³ÇÇÇÚÚÚððð£H*ï���tRNS�@æØf���IDATx^µÎÁÄ Фµgò p'à­ »ý—°ä"1÷p|Ç¿¼8ë"?h‚”× €É Ø/TKÑ€#õÀAcÅ4 • ¸ŽZ=£·ÉŸ½èTD«ÛCSèí¯†®ø8´½È ^ÃÎGuà…¡í7¨Ì°•X&`²à[ó|)h/J����IEND®B`‚IMAGE 621 ./arch/gods/items/glovesofsun/glovesofsun.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTE������Ú�ÿ% ²��ý#??�ÿGÿZÿÿ�øÿ…e��á ÿgÿvþ$ÿ‘ÿª�ñÏ�ÿh`��Ü�ß à àÑ�á �g��â ã äæéééÉ�ííð��òó¿�õ””�ø¬�ú!ú!ü$üY¤�ý7�þ]þǹ��ÿ?¿�À�Â�Ã�ÿtÅ É Ê�ÊÊ�ÿ°�ÿÄ�ÿÈÿÐ�ÿÔ�ÿÛ�ÿÝ�ÿÞ�ÿß�ÿë�ÿó�ËV�x\r���tRNS�@æØf��1IDATx^­ÑånÄ@ àŒ½Ác*3333÷ý_§k+ÑRßJµ¢ÈÒ7Ú&Áß'õO:„Ä<ÚÞy×%ŠüjP…¼©‹jÕ8È‹vt±âŒá³c¹ƒú)1"ÓÉ;Öî(ƒƒ˜¥ŒqAû‘cHi)0Q§f®m}‹Ï¥p5¶.εí¦^ñQ¾`n™7çi#op1ßEúÚw¸ÛqfZf>ŸDˆïÓ¥w+uÖ‰á÷áP|'�L-*Ǹ /_y€ˆ ªî;cã1€EÑ—º;R.ŽÖB)I ®} žáNfÞ¨k Ýfw0~ˆšgÌOÞc”긎¹b{£Uòû\ÞdaÃdÐBØÚ=9Ö¾c€ÃC¯0]ûêîÙ\îkø@üŸçR?ý¶����IEND®B`‚IMAGE 631 ./arch/gods/items/glovesofsun/glovesofsun.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���íPLTE���ÿÿ����ÿ% Ú�²��ÿÿ�??�ÿGÿZý#þÇÿ…eÿª�øá ñÿgÿv��þ$ËV�Ï�`��Ü�ß à àÑ�á �g��â ã äæéééÉ�ííð��òó¿�õ””�ø¬�ú!ú!ü$üY¤�ý7�þ]¹��¿�ÿ?À�Â�Ã�ÿhÿtÅ É ÿ‘Ê�ÿ°�ÿÄ�ÿÈÿÐ�ÿÔ�ÿÛ�ÿÝ�ÿÞ�ÿß�ÿë�ÿó�ÊÊ�$E|_���tRNS��v“Í8��7IDATx^­ÑÅŽÄ@ ÐLÙÃ"3333üÿçllõhG“Îm­¨/¯dK• 0¡~åcZ©”úcé†Ú‡¢(kÞ�:З›ètü>¼ AY@0Êøªù\`~Ê„Èëœ;Ö¸n7Âb`Žë„ >ˆ„,&|HDÝíõàeh®Æ7Ô©»Ó¶ŸºdðÀü m-ð®ß!1‚¼‹ðíÏ!wD¼6Ct6…*0ý„ËZ¿sYmM ëC`l`zÉ8®BúÎxývf†ª¹À9aóÉÀ ¨Âõå2ÇÆýÊV(' Ì ÎÝ­G…’„Î"æ¸ÏˆÔž?¦ö9Ñ3i_Ãs ÜÄTõ{«—¹BŠpy[O[^¶/¦½½ìÄú <ÌRšå ¯[_Í}û*¨ÿóüÖ‰ôâX����IEND®B`‚IMAGE 639 ./arch/gods/items/glovesofsun/glovesofsun.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���çPLTE���ÿÿ�ÿë�ÿß����Ú�ÿ% ²��ÿÿ�þÇ??�ÿGÿZý#þ$�á øÿgÿvÿ…eÿ‘ÿª��ñÜ�ß à àÑ�á �g��â ã äæéééÉ�ííð��òó¿�õ””�ø¬�ú!ú!ü$üY¤�ý7�þ]¹��¿�ÿ?À�Â�Ã�ÿhÿtÅ É Ê�ÊÊ�ÿ°�ÿÄ�ÿÈÿÐ�ÿÛ�ÿÝ�ÿÞ�`��Ï�ËV�ߊA���tRNS����³“fš��CIDATx^­‘årÄ0 „v%¡ÌÌÌÌôþÏSKãkorîýêNäÉÌ·’œ)+Ž]™aŠÜI¬Nè¼k_šš¨4  9i ÕjØ`!íÊK6g|F:&äÊO]¥ú1eNŽcýžê°” sTg\ÐAjVT2LÖè™»Û_ÂÍKi®Æ7„sw§©+FeHÿ‚ùÞZ \¿Áf0.‹øõç"€½›`¦µæ³)´`@ü,;ynWk¬Ê`áóøÍ NÓKгlŸˆB…û¼´6Ÿ¼D€Pø¼¼çXqo„` ”òÊ5þÎ*„óœž÷Y”«¡Ýfí·üQ14Ï™ŸYò*s(WÃMÆ­0oTbÈà\ÞÖ‹F«@‹Ee/9ѼL@À,Å‘t¹æ5¶Â弆IÚÿ[ߥ�™H�C«����IEND®B`‚IMAGE 195 ./arch/ground/glue.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÚ¥ ���뇂¬���tRNS�@æØf���hIDATx^˱ Ä0 Fá‡*9¸´s“‡Çð(“¸ ™2 T„tÉ+?ýâqb:jvÿYë!©ÄHæ ²ë·’Š�|Ñž øÈÌm�ªcÕ[¸H5@ú†à§fxTÛñÚüßdãu' ©áÇØ����IEND®B`‚IMAGE 197 ./arch/ground/glue.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���뇂¬���tRNS�@æØf���jIDATxÚÝ‘A�! ËüÿÑ{¨ èêYã(¡ƒÖc ¬â½ «d(±+b‚G 2ƒíâYÊŽÍ {/VBGD;B7+ZŒ%Ø‹Ho3¤]¾œë.PÃ!ÆœõÕÑàN˜‘[µÄ�Ò‹”ì����IEND®B`‚IMAGE 162 ./arch/spell/Rune/glyph.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿý™�H]®���tRNS�ò% ^���IIDATuÁ ‚P Àkjb‹ÍÞת£0 º�wÜjÔ ‚ êã¯ÑWFAÔÛŽíÀw…µF­Œ^ý žAåÞüGé;1’ë����IEND®B`‚IMAGE 291 ./arch/monster/goblin/gnoll.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡Áq8G$²""Í…? R-���@@@d3‚B'¿¿¿½X7 ���tRNS�@æØf���­IDATxÚÅÎAƒ0 ÀPa™ÿÿ·6СMÀÇV“›v¬´ñjà|”=HÖ`æ\8Yö>oZ C€W5²wqÛà%�]b(¹¢$$€‹´­ �йõ 1”dû€vÐ!@fžÇ -’@CïNŠAvÔ$�$š¦©`2‘-³,˺®]9ÀøQø †êBöop3Ð* gG‡ž­ºàôs¬Åw~˜ÍhrlU����IEND®B`‚IMAGE 295 ./arch/monster/goblin/gnoll.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡Áq8G$²""Í…? R-���@@@d3‚B'¿¿¿½X7 ���tRNS�@æØf���±IDATxÚÅ‘ÁÃ0CÛQ¼@ÿÿg©Q›ÁqC‘rðÃ&aûG O 8^¥.�jàÀQÌ@©«à¨fb‚TwCÏ@ò�§)|C F—�Ä€êø"mȺ€ªö^ôl‰v ÃÜ\Ö <¬U{Üj!l…AÀ Èì¡è0 }ßÙõ­µó<ïzÜÉ¢® úLƒÊaèHæ:òþ‰®:¶ÊÁá3l!’q~Zš-C„™p!����IEND®B`‚IMAGE 291 ./arch/monster/goblin/gnoll_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡Áq8G$²""Í…? R-���@@@d3‚B'¿¿¿½X7 ���tRNS�@æØf���­IDATxÚÅÎAƒ0 ÀPa™ÿÿ·6СMÀÇV“›v¬´ñjà|”=HÖ`æ\8Yö>oZ C€W5²wqÛà%�]b(¹¢$$€‹´­ �йõ 1”dû€vÐ!@fžÇ -’@CïNŠAvÔ$�$š¦©`2‘-³,˺®]9ÀøQø †êBöop3Ð* gG‡ž­ºàôs¬Åw~˜ÍhrlU����IEND®B`‚IMAGE 227 ./arch/monster/goblin/gnoll_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ�����ÿÿÿú€rC˜Ù���tRNS�@æØf���‚IDATxÚÕ’€ ùÿ›#O¨qû€7‰»e9]çÄ×´òm6®¨Õ4±^n› >aãV¼ “ѳ ‘КŒ𿠴ŠCÈîx ÆÈ !Üjwó€ òN~…îSÀQ++9ëƒ.†åÕœÂä9ZàQÌ„8òyIrü´gå�ëít>‘î����IEND®B`‚IMAGE 291 ./arch/monster/goblin/gnoll_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡Áq8G$²""Í…? R-���@@@d3‚B'¿¿¿½X7 ���tRNS�@æØf���­IDATxÚÅÎAƒ0 ÀPa™ÿÿ·6СMÀÇV“›v¬´ñjà|”=HÖ`æ\8Yö>oZ C€W5²wqÛà%�]b(¹¢$$€‹´­ �йõ 1”dû€vÐ!@fžÇ -’@CïNŠAvÔ$�$š¦©`2‘-³,˺®]9ÀøQø †êBöop3Ð* gG‡ž­ºàôs¬Åw~˜ÍhrlU����IEND®B`‚IMAGE 463 ./arch/monster/humanoid/Gnome/gnome.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÆPLTE„­RR”cµï¥Zc1œœœZœZ¥c­{½9cccc¥!c­k­)RŒk¥)kµ!kµ)c¥s­1{½){µ9B!ç”Jckk¥1Z{Bkc¥)έJc­!ÿ��Z{BcsRZ”Æs9ŒµckœŒµZ�{RŒ¥R){¥R1�Zks­”„!ïÞÆ­!cŒ9BscccŒcc9ksµk­!���sµ)çœRkccÞ¥R!{Z„Zs„œ!ðuÈ{���tRNS�@æØf���·IDATx^íŒ5¶A ¥¡eF33f¸ÿ¥¼“ú;pÝA——Üq]WcÔ.¥lŒc1!�hº­~´À{%ß?‹QSœ«OþÕ4¯ŒZþþpœÍU¡Œ{¨{xÜ¥±gD ó·ßfæ«,@ôòWKŸà�ĨðPÅöo>ý.ÿ©±Ý©Ÿë Ђí8ɰ•|$)-¼—Øiº¾"èWw$¥¸x@hp{œÔ€ )<ƒ"����IEND®B`‚IMAGE 462 ./arch/monster/humanoid/Gnome/gnome.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÀPLTEZ{BR”c­cµZœZ¥c1ï¥ZZ”œœœ{½9���{µ9ZsJs­ccckµ)sµ)�{k­)kœ9c¥)kµ!)Jk¥1kœ!B!Zc¥R)µ½­Î­JcŒ9B{ïÎ!Æ­!c¥sµ1Œµcï­Jçµ1{½)Æs9cµ„”!Bs„„ŒµZk¥!”„!kµc¥!Þ­9cŒRŒ„­Rc„B��Þ¥Rç¥RZ{{­Rc­!Zk„­ZdÂc}���tRNS�@æØf���¼IDATx^ÝÐÅn1Pw‡q™™1ÌÿÿW™õ^§}ŽR’ûROu0ûoI’ÄÝ{žçUiÁç¤ñìE¿Iu;ŸòË F =t‚—\çTßG�è=,Wˆ�„<'Ó’Ø¡@Äý!–Ç: 7Õ‚ó-ÖE¿z`¾F‰Èˆ€0@‚ïc:æé��Ó°h±·÷zÌ|¿3M ¼¶¯iÖœ F$Ô€ñçÙw-SŠ]uÌÀ ìŸË/ò q €èé����IEND®B`‚IMAGE 852 ./arch/monster/humanoid/Gnome/gnome2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��bPLTE���R”cµï¥Zc1cccc¥!c­Zœkµ!œœœ¥R)B!s­1{µ9{½9RŒk¥)Æs9ç”Jc­!ÿ��c¥ŒµZsµ1ZsJc­„Z1„œ!„­ZcsRŒµc��Z¥�{έJkccçµ11�k¥1kœ9!9�B{k­)Œ­kZ”RŒ)Jï­J{¥R¬�a¬�cµB!´�¾�Æ�ï¥Z¥R)ckc1¾�œÆ�Î�î�3¤�ƒÞ����ÿem¿p¾�îˆÏ‹¾�ŒÆ�Þ�’ Zk�{ç”JcsR¶�c¥)c­!BkkccÆs9Ì+Ìÿk¥)Î�Î�"έJÖ�Ö�$Þ¥Rk¥1çœRkµ!l�lÇ”� »ø�1�cc¬� ™ƒÖ�¾�Zsæ�!Z{!{s­1t�ÿ��|�!æ¤è���2tRNS��������������������������������������������������\B€2��oIDATx^Í‘Uoã@EŒ¦2sǦ233-óþÿŽÆrZ§UïÃHŸîÑÑ•¼–°-W/BèÀø@¨ClH²ïBˆDÄ7¾^ŒH!$ŽO$C­  xŒ¦%Cx8æP€õvüÓ´«êsŒ]AÃÐP@¸u±ý§8ĉă‚}Ø)`Ÿ~¥€½¬ @8Øuþ{m##„íŒÀ…o#9@4*‹ë—ö®Èíu.Ì M`Y™‘©Ÿ˜…ÍóËŒQ1Ó»• HCUÃ*ÿ¿¶ÌÓ’eðNï,–e9NˆiYG V¹b4kÚ5(Ïf÷Ï)ý,›–<ù0{n Ç•1Þ¾ëOÃ@¸úƒ|­Þ®|ŸAªúk'÷9÷)ý>°ïª:;?ÿM†SÀ�X\¨-׿Ô4@`êzÜ,Üõ îPy…íî£0m�EÏ?'Pšb ž%_8÷ m-ásñ¨€����IEND®B`‚IMAGE 855 ./arch/monster/humanoid/Gnome/gnome2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��tPLTE���R”c1ccccµc­¥R)ï¥Zc¥ZœZ¥kœ9kµ!s­œœœB!ZsJ{½9csRk¥)k¥1kµZkkµ)��s­1sµ1{¥Rkœ„Z1„”!„œ!„­ZŒ­kŒµZŒµcc­!ckµŒ1µ½­Æs9Æ­!έJÞ¥RçœRç¥Rçµ1kccï­JïÎ!ÿ��”­)B{�{Z”¬�Æ�´�c1Î�ï¥ZƒÞ�Þ�¢ö�¥R)a¬�¾����c¥)î�3ƒÖ�cµf®gzg¾�kœ9kµ!oÎ�p¾�pÆ�tÆ�{­R{½9|���LŒ�„­ZÖ�Zc“%”¾�œ� œ�¢î��{£,!{c„BcŒ9µ½­¶�»ë-.R�¾�6ÀÿÆ� c­Æ�Æs9c­!έJÖ�-Ø"Þ¥RÞ­9æ�,B!fŒ�ï­Jÿe~Ö�‚¾�ç¥Rçµ1K$ýL���7tRNS�������������������������������������������������������•Šá6��[IDATx^­Õrë0EE¶ÃPfffɦ2333÷ÞŸ¯ãf:ãJMÚ­=¬¥}ŽÀ_ûòsã¼ï-ç[ ç |X¶@!Ä.`«cd € dz ÊÍ‚AO½}†EìËV,g2Eî¦ò¯{à¬ðáŸÏO*…‚ ó˜™KN\)À ’MB¸Ÿ4®«•^±�ÍìíÛ}=@ Ì(¥«÷ÏÿûÛ«Ü|A :¡T_0Ýx®;ïB2Š2•1¶°Éâ/’ä± ŠÒf\àRU]?cº.­5ù¥·,Θ$I@Ji*¥RÆœB¡dì‰Ò·5º¡³Úb/Ï!ŒÅfB[éãæ»-ƒ@ ¬ÇÆÃ‘HzÉa�¥³›ã¸¸2 ¿NÂ! (|AY"¡”N9 ˆ’xD­�Mk¬Â<jÖ¥ù‘˜ûs=BBüùN³q‘ú“€~×ÀçW^.ly%ë����IEND®B`‚IMAGE 575 ./arch/player/race/gnome_p.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��8PLTEcccB!XœS‘ë¢XS•c1[¡w¢M²jYŸ^|BV—Ya©k®)t³5f®S“V›b«e±B%V™_t`q_iy‚΄9ï¥Za2Q{^QV˜[œh§+d«W—c™/æ¥U¥R)ЊIí£XVŠ%n°-€ºH[¡T”]¢©’,Ù‘Mê¢WU›UœZ¡f©%¦”+µˆ<T˜X]¦h²vº4e­c­bHZ‘]šS—+M ΟW¨Ž;k®*ß \¸Jš3¿L[£Zž_›"Z ]£^ ���{{{{¦Og±h°a¬h° [¥`­^§]§wº5ŠÃQb¤!„ª_m³'c¯`š(i±!w­B¶J¤���tRNS�@æØf���µIDAT8Ëc`4©ié ŒŒ¸åÂÂ#"Cq*Œ‰c`Ç­À×Ï?€·^Þ>@yM²Î.®nXYÛ˜ÛÚÙ;8F9aU`lbjÆŸhna‰M–6« ·®ž¾¡‘¬@A6%eU5u Žd‘”’–a`ÅåEaQ±äÜAÀÃËÇ/ („[Aˆb3' �—Ç-Ï"™ðD˜!�ìõxòÒ´����IEND®B`‚IMAGE 546 ./arch/player/race/gnome_p.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��&PLTEcccB!B%XœV›S•Z¡c1w¢M²jYŸ^|BYœYa©k®)t³5f®U—a2b«e±m³'c¯S‘V™_t`q_iy‚ï¥Zî¤Y©Ž,Äs8ë¢XQ{„ª_V˜[œh§+d«í£X „/n°-€ºH[¡T”f¯©’,ê¢W—/Uœ[¥wº5ŠÃQb¤!���g°¦”+X]¦h²vº4e­c­l´%bHg°b3Z‘]šS—+M ΟW¨Ž;œ,ß \¸Jš3W~¿L[£Zž[¡{{{{¦Og±u¸3`š(i±!x¶;]£^ `­e­[¢Z T\Á���tRNS�@æØf���ªIDATxÚ푵Â�_HB‚»»»»»»»ýÿO�=/3lqÍnwðç{Ž'N¿=ïö8—ÇõF<X,Ww`g2Í‘ ÐíõÃÑ ìÉT™©Tkõ6tà#®PšÊdsùF³¾(‰2Ÿù^Ÿ?‹'OMf‹N¨hV§À¼X"•ÉJ@)j-r¼×jϾý÷ò?Êê¦úIF����IEND®B`‚IMAGE 492 ./arch/player/race/gnome_p.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���üPLTE•žŒ„B!^ƒ¥R)B!ï¥Zc1W˜ccc·hU˜^§l±s²#YŸa¨g±q®-t‰_��Vš`®b¯C%l¨£U•^¥b‰���o®¸dž6Yž\e^ U—|°"ˆ·^g[ W™^¡ˆº’¸WOiX›]§c¬¹ƒ«E[¡W™W™`ž!ƒm#èÑtŠ^{{{X›Q%CØMì´>)I]tFbŒ*‡Hí¤XV‘V˜Yš\™ ªW—o²yµ[’'W›e°f®Y¡b¯_¨ìS���tRNS�@æØf���žIDATx^íÎCÖƒQ„ẟcÛ¶m[?ö¿—dégwüœSªo{ðá÷ïŸ÷ÇΗë»ÃñÄåj½ÙÂ0(0™Îæ ¼Àø=èö:ýÁ�jõF³Õ4Š¥r¥ ÈH¥3Y)—§A8Õ¥x"I.x}~I†T•v‡Óåd˜-Vè@`d›,<<ÐbàBð@Q|^O˜æ1ý\{K����IEND®B`‚IMAGE 454 ./arch/player/race/gnome_p.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���äPLTE���c1B!„B!¥R)C%U—cccXU˜{{{^§l±s²#a¨g±q®-ï¥ZXœVš`®b¯^ƒÄs8U˜U•o®¸dž6\ƒ^zU–z±‡ºYž\e^ ��|°"ˆ·^g[ W™x®*¹RX™[¡_«W™8Lƒm#íוžŒtŠ^X›QzrYØMïÇ'V˜YšŒœ,]¤k­]š`¨o²_¢`¬e°X_¨~§UaªZ¡s^œ���tRNS�@æØf���IDATxÚíÎEA�CÑtâî2¸»»;÷¿\ ³fÁ[ÿª*opöëîz»ƒ:/`ÌýáË"Åf»ûn(ÌËÕС2ìÆt{ƒvPi4[µ: ʳPÌ åB)—wÒ™DH$SÑXÜ&à .×BÓÙ“º¨‚8MòRJüœÓŒ |câ¬����IEND®B`‚IMAGE 407 ./arch/player/race/gnome_p.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���«PLTEµ½­R”c­Z¥cµk­)¥R)c1kµ!{½9���ï¥ZckZœc­!{ccc{{{sµ)B!sµ1Þ¥RZ{csc¥cc1�”­)ZkZsZ”RŒcŒcŒ9s­1{½)sµsµk­!9kŒµc”„!ïÞÆ­!kœ9Þ­9÷µBçµ1ç”J{¥Rk¥1c¥!c¥)έJc­!Z„RŒ M3���tRNS�@æØf���šIDATx^íÅÃ0 %Ùc‘™™áÿ¿¬ir~9ô֙î6}Í­‘I’|ˆëÀ M³q»<`‡Av˜OqŒ¼õñ¼?Ë‚0Zo¶;0+‘Å2J©Pô\ÀWXÖÄ0_§3%‚Ñ놣ç«K�æF3h:Dj¦E~IPq «ÚDãÕ¹<ðlìs—_x¿(~7“€U™ÅŽü����IEND®B`‚IMAGE 415 ./arch/player/race/gnome_p.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¨PLTEµ½­R”c­Z¥c1ï¥Zc¥!c¥ZœcµcŒ9{½9sµ1{µ9ckccck¥1¥R)s­1���k¥)Z{BZ{csB!1�RŒ„­Rsµ)Æs9kµ!k­)¥Œ){¥Rsµ„”!sµc­ccs­k¥!ïÞÆ­!kœŒµZZc÷µBçµ1çœRc„B!{�{csRέJ{­Rc­!Æ€D���tRNS�@æØf���¥IDATx^íÌÅA EÑ$Ý=ê‚»»Ûÿÿ L±JU¬Xð¶÷Ôƒï÷Ÿýtù†¯~n ß à¨KÆö¸‡ãéÌ™WDÜlwÀNÆ9°&óÅr¥M‹lšÎÌ5/FBˆ‡Ù,PqÒC4¼¡ âA�1ó ´xçj-‚F´€ÈóMP{ ¨DÔv]¥éi]8­è–ʧâã;å/¥“e xøµÝ ùtL›ú—����IEND®B`‚IMAGE 449 ./arch/player/race/gnome_p.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���áPLTEX B!cccS‘c1—‘¥R)`¬YŸÊ¥H\›Yšc© {{{ ²‡’ k­+wµ:Ås8aBc¬k¨/ï¥Z…˜q[“"U’Q†6b `Œ5Æs9`“-^‚;U™^©`«V˜[Ÿa¢n¯*Z•jŸ4a%q±3TfT‹Z“‚›(i§W`XL]^â£S ¥4m¢6c©¤t3ê¢WY•w²Gf§&Õ‹@Þ™Q!<y´;e£#î¤YË™IT•T“m“Gg©&U•b1.„B!æAÄ���tRNS�@æØf���ŽIDATxÚåÌEC1CQ™™™™™yÿ ê ò2­Ô3õ•ñ—8çÖÀš5Ð@ñzs‘Ûãõ90€ Ca"P*Åa’H¦2ÙÌ{¾ Jå Œ¤®ŠZ½áÀL4[íÝ^0¤FãÉtFìéùb¹a½Ùîö ާófŒÝOôë ’ü€Ä¬cø9_v œew÷����IEND®B`‚IMAGE 440 ./arch/player/race/gnome_p.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÒPLTET“c1T•S‘T‘[ŸB!cccc© ���¥R)—‘^‚;�`¬ ²aBa©k¨/ï¥Z[“"Q†Z| `Œ5Æs9{{{V˜S’X \¢n¯*S“T‘f -€¸Hi¯#Z•Z˜q±3g®!TfT‹r–‚›(i§`«Y‘ZXÆ‚<î¥Ym¢6c©ЋCê¢WY•šŠ/Õ‹@Þ™QYŸÊ¥Hi­&¼žB\›V—m“Gg©&U•H .„B!̳̽���tRNS�@æØf���”IDATx^åÑEÃ@DÑ4™™™™áþWŠ/0åm¤|©w¯VM˜e… &¡€\"¿Ì9'^:Ú&À‚‹]ov�Ï‹'’@:“Í‘±T¾(T¥jÌ­Õe£Ù@´U§Û#sýÁp4žÓÙ|öB-Wë ¶»ýAàDΩÐ÷Çóõ&s¥Ù‡0К~°/%K MìÈΗ����IEND®B`‚IMAGE 317 ./arch/player/stoned/gnome_stoned.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�ÿ[‘"µ���bKGD�ÿ‡Ì¿���èIDAT8ËÍÓ±q! PjpÛuЀø±âŸýX5_וx÷8ÎÎ<GƒÞ| °[òQÞ„¤ß¤X™ÙµÇˆIžûW ’³ÉlQ/�ŽÑ¹çãö �ðÞm¬àQGë·qË=�œ$ï÷îÜÀI±5Ƚ/À�w’T#I-€îtwŠ¡yeHr�ŒIò ÏC0‚ÀšP3³™p�x<Æók0kÖšÇè{@*B^sŒœTDmûÁ#¥¾¥U™òèÊW 3óœpÕ³”-xÔ³”ZWPŽü=â~½O<Âb~'÷.h����IEND®B`‚IMAGE 310 ./arch/monster/goblin/goblin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ���2��d�d3dE R-.‹WÍ…?���ßÄ7ý���tRNS�@æØf���ÉIDATxÚ½’áà ƒK4ïÿÄ“zn®lþÛb¹«ÍÚãG¶¶¸E µ-�pSAIÐ>æ eèúÖSël@ë+R%ÿ"žºÊá-©ÈDÞ0u½ë}4ÊGn\¾qäÜå1 dÂê»Á»¢3'ÏÖß…ô3Ô¡f�Þ ¸M?ŸìdÄŒæyìÇ HÓ]¦µ‘ÌUox›ë¢‚°†ùUÖjzÁ`Ô±ìZÂå×vQþƒÕ¯-Œâ½à±•)‰?ê².´2/P����IEND®B`‚IMAGE 310 ./arch/monster/goblin/goblin.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE����2��d�d3dE R-.‹WÍ…?���c-aW���tRNS�@æØf���ÉIDATxÚ½’ÁrÄ C‘Œ½úÿ/^†ŽgÝåÖ*ñèÉ ã$^m€qE@FèÚ€ŒK%ø5+J!péÛlIÑ÷FÎõ¤œ¡–ˆ}C@¦³6Ñ6©šÏ¶³þøˆÈDšÉü4È@õ ´%_Ì+^s& ßÄô³´  ’Àñóu©JóÔ4Ž¿§ a{eÉl…ú ïc3=”G0y¾ ³wP=0¼𲚠·{¬ã¼ýÕï#ŠÏ†ã*(‰ÔÓeÈ)MaO����IEND®B`‚IMAGE 267 ./arch/monster/goblin/goblin.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�1��d�d3dE²"" R-.‹WÍ…?����2�Å>n<���tRNS�@æØf���›IDATxÚ½Ò1Ž0@lÖþÿá%©¶ºs=K`”„M©BÔ€˜D5ÀC-È �¾ÖÔ Ò^C@�¢t@©EwPÐîa_Z Á½§�a|èÔvº®XîÑh]•Lz{\J¤H5J;â|×kpÛÀ †Kñ$í òˆé›<rþV„fài?€~­@ÄÎ!'Q»§ýk¾§ò„Y³;Ò����IEND®B`‚IMAGE 266 ./arch/monster/goblin/goblin.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�I��2��d�d3dE²"" R-.‹WÍ…?���ûÅ…X���tRNS�@æØf���šIDATxÚ½ÒA’ @I˜�ÿÿð geN»\í‚X°þ¨ ã³ÂF�Ä$¬>lAN�ðÌ)AÔðE �=`j‹zLÐÎA‰¯ -Ð ¯@€ŽX|6è²ítÌH÷h”W@‹ngyi Rjñ¾ã5¸MàæxªÖÔÓ5yÔ|­ÍÀký�ú5#8‹œ„íœë_ë .Úo-9����IEND®B`‚IMAGE 342 ./arch/monster/goblin/goblin.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""Í…? R-.‹W���d3�d��2�dESÅöÍ���tRNS�@æØf���æIDATxÚ½’ᎄ ƒ=ÚN™÷ákØlVtã¿»‘„H¿)T9þ¨äGyNó Ñ´I=¤æOž¯½²ÄlQe~ÓmfH5Æ yÏf·›¤‚Ô­ß ! ‡YIná@@� ±ýÒcÂiÐ倪—/3ú²KhK7u\·(A58ºPw"z†ª£»j#ºBŒBe@+ô¤æR ]97‡è=Toƒ�Ëâ´ aº˜uÕ„'Öw« à ˆøf›ÊPSç¸X‹:ÿg|ò¨u¿¤<nÜï‘¶wb(^ Çš ñŸõ Gµ-ŠfF����IEND®B`‚IMAGE 343 ./arch/monster/goblin/goblin.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""Í…? R-.‹W���d3�d��2�dESÅöÍ���tRNS�@æØf���çIDATxÚ½’ÛŽÄ CgˆËÿÿð˜h%X:âm7-O F}ýQ1®rfà†0#�^ TW‡|ëù:Ë Á ÷À7=zI#E>³ET€ Á�>æ›ÞëLBì�–Cc§2RE-‹9p„§Ïy½Í&â8¡;½5´àïàî&f`T5à<l2TÒõ½™³ÑŒ ê3Ÿ� 9ÜÊ•í°tSµAh‹ ¨Ä0™› >}&£¦I@V¨ûÃf_$—Á~)Ó¬›ÜïÀVÖRÖöÀeçÐú±ÅÞ�q¾®•ñŸõ#« ‹�}����IEND®B`‚IMAGE 260 ./arch/monster/goblin/goblin.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���2��d�d3dE²"" R-.‹WÍ…?���¥`ó(���tRNS�@æØf���”IDATxÚ½‘11a!àýÿ‡c£ëÎÐ%Ó¸˜²@~8{Eêì‘c�½fσ />¢Šµ¼ ¬ÅƇ ÔJBÞÄz&€ì>©~ì=ˆ8Aù&XZúx\¼–‰DùkPjårÏîªA£¹Jã¬+È9p“Ûìf J° éaºÊDíi,èÈÑÇÀà0 RþÌ6Öj[ås����IEND®B`‚IMAGE 257 ./arch/monster/goblin/goblin.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!��2��d�d3dE²"" R-.‹WÍ…?���õHbf���tRNS�@æØf���‘IDATxÚ½Ñ1! CQ,;6ºÿ…wqZ£.Qûß0 ¬ß ÔÝP¦;J |�˜î�Ô5öŽ Hÿ^á]LÀ³­I`70 ÔD÷8u™t¿€mOÇЭKº Ó®Q·O0K:=®ÍtOORƒpñQ¸�=Нf‹u+l©õ;IÁ@Éž€8“иþ¼ßöO·ìÌj����IEND®B`‚IMAGE 342 ./arch/monster/goblin/goblin_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""Í…? R-.‹W���d3�d��2�dESÅöÍ���tRNS�@æØf���æIDATxÚ½’ᎄ ƒ=ÚN™÷ákØlVtã¿»‘„H¿)T9þ¨äGyNó Ñ´I=¤æOž¯½²ÄlQe~ÓmfH5Æ yÏf·›¤‚Ô­ß ! ‡YIná@@� ±ýÒcÂiÐ倪—/3ú²KhK7u\·(A58ºPw"z†ª£»j#ºBŒBe@+ô¤æR ]97‡è=Toƒ�Ëâ´ aº˜uÕ„'Öw« à ˆøf›ÊPSç¸X‹:ÿg|ò¨u¿¤<nÜï‘¶wb(^ Çš ñŸõ Gµ-ŠfF����IEND®B`‚IMAGE 210 ./arch/monster/goblin/goblin_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒú€rÿ������"?���tRNS�@æØf���qIDATxÚÕŽA À ÄÔ™ÿ¿¹b +L=õdDÔvjàEE`ðè gšxCÂÄ?m•wøVï³g€©5½×‚<â†S`iß2(þÝýÈ…>ùYˆ‰Ï` ÁY@ù,å£@ã ú2™¦ ^yÕg����IEND®B`‚IMAGE 223 ./arch/flesh/goblin/goblin_head.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœï÷)ŒR{{{���ÿ��ÿÿÿQ|b���tRNS�@æØf���{IDATxÚÝÑ Ã0 #Ýúÿ¿¼áboT…<¯÷bˆ. ñúcØ ln°9�qL“šAu,Y@!ØÂjˆ 0F_Bâ'”XÑБx¡4Ü÷‚;*«ÒP!x–€ú…lp TÚ°:…còìà!¡…ÎP|!`=77@ƒ »è����IEND®B`‚IMAGE 436 ./arch/monster/goblin/goblin_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���QPLTEÿÿÿ���Z½1!!!c„�)9�ZZZkkkŒŒŒ”cJ¥R)JJJRs�R!c1BBBR)çJc�Îk99R�Rk�„J΄9ÖcB”��ÊÀR4���tRNS�@æØf��IDATx^½’ÉnÃ0CCrF^³vïÿh©%>ôRÚ|ó0´û{ý¡Ï|ØIr?ofiY$ƒÀA‹–÷qÚÞZñ†õY•€ÈX3ø¬ ?àû|NàADìÃ1óɉD?ïŒÐ\GÀ@†£¢ÎW¢00Œã€ÈœÂF´½¼Ž#F½^.f݆t’ ²ËÄ!(é4¿H¢tJAg¨} ¹,-aå­—Oˆ í¿Ú!™Ù�™ Ã]¹ TE ì“j/ZŒ’-`žä¸×Ì ØÐ bâ/ûu5 ”FlÖµ¬‚w}LÍìo0Ð,мïôøŽºK¿'’`÷0X‹í$Lüg~�TÛ0qتm����IEND®B`‚IMAGE 585 ./arch/armour/gauntlets/god_finger.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEÿµÿsZ�kR�cJ�ZB�{Z�{c�Œk�„c�­„�B1�Œc�J9�”s�µ„�çÆçÆ!ÿïJ9)�Æ„�R9�÷ÖRç½9µ”�½Œ�½œ�µŒ�Æ”�Δ�Μ�Î¥�Ö”�Ö¥�Ö­�ޜ祥s�ç½­{�sR�RB�çÆ1ïµ1œc�ç­)ÿÞRÿçkœs�ÿï„Þ­Þ½ç”çœçœ)­k�ç¥!ç­­s�絜k�ç½Æœ�Î{ŒZ�µ{�œ{�ïÎBïÖB÷½J÷ÎJ¥cÖ”!ÿÞJÖœ�ÿÞ{ÿçc”c�½s¥{�ÿïœÕH|Ê���tRNS�@æØf��IDATx^ÕÒÅna�`à·q]ww«»»¿ÿÛ´i“=t™{û%œ ð÷Ä?Á#g× Q]¬K6aªTÏ•‚ÏKªZzÐ1O.°ð¢`­kÙ."Ä1ÓEŸ[ªZ)j<³_ ÊííFÍ(à ©Fý°QÓˆ@Íèú& KƒÞ®,k7¿š7 m´ˆãÔlæÛùçIÅL8ÆŸMºw·¶Ÿº¨£—öžýÞ©V.²g´Œoü­qt¨ß»®O¤Î ‹yT f½.¬^¢ör*xú!¿{ÒÉ)?ìÂcÿÕór$‡‡§G¹Ä2Ð}*œÄ‘IxNâIÈ&G9 ÿË'ƒc£/j����IEND®B`‚IMAGE 585 ./arch/armour/gauntlets/god_finger.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEÿµÿkR�cJ�sZ�{Z�{c�„c�Œk�­„�ZB�J9�Œc�R9�”s�B1�µ„�µŒ�µ”�Æ„�Æ”�Δ�çÆçÆ!÷ÖR9)�ç­)¥s�­{�sR�Μ�Î¥�Ö”�Ö¥�Ö­�Þœç¥ç½9ç½RB�œc�œs�çÆ1ïµ1½Œ�½œ�ÿÞRÿçkÿï„Þ­ÿïJÞ½ç”çœçœ)­k�ç¥!ç­­s�絜k�ç½Æœ�Î{ŒZ�µ{�œ{�ïÎBïÖB÷½J÷ÎJ¥cÖ”!ÿÞJÖœ�ÿÞ{ÿçc”c�½s¥{�ÿ——í���tRNS�@æØf��IDATx^Õ’Ån1CsÃfxÌLefæÿÿ›ŽÔåËLw•z¤¬lÙ–nП³ó«¡Ê¸2…�41.  ¥5Sa}†‚³zO¼˜�úrÕqIÔçÒ$iag~‡†ÞÂ¥’âpî.º»­HP¤§Í8Æ­ˆ1\TC;¹½‹ã9×®€Î÷Óõò´-@AóÜ–é×ëÌc¢½°óYÿá^ÚI˜öFlr$äg/ô®)ÙÖ‹Ç…-ì½Í4¹p)-û ôr°Z&~mýÇÂë·¤;cе°§t5õkÊ©’9x¾† é!Çç'Væ`ŒJ€Ç�;™£P)Øp2£BGjd)ô¿øº-,˜úcG����IEND®B`‚IMAGE 145 ./arch/gods/randomitems/god_grace_limit.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���­��ÿ��ÿcc„ç˜ì���tRNS�@æØf���0IDAT(‘c` '  Âà‚ŒÑ�¦€ ¢ÃÑD ™ÁˆÓ~š��QÞQRë`����IEND®B`‚IMAGE 201 ./arch/spell/Smite/god_power.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���qIDATxÚ­’ À0ÄÎÿztÐ…›Rh`´hjÝœîP vµ–SÁÙÒÒ³ð®&Ûý´É"§÷Øó`U“ ,HýSXí¡>Œ‚¿y@ü]VØåèçmøù,0è8R?…B>pUàfF ùW˜ ê<­UZ­(œ����IEND®B`‚IMAGE 212 ./arch/spell/Smite/god_power.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���|IDATx^5Ì;Â0ÐA4Hn)|H)|,ZK 7€kP%Çq¹+QËÑk>Ík惴Wüx=ó’Š69씫dèÊìÐd6ÃCÁe99\YqNE1ŒÍ¯èÖŒX.€mQaFƒvvS½yz7$òTà 1c”ôo¶sUi­Ïü����IEND®B`‚IMAGE 215 ./arch/spell/Smite/god_power.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATx^5Ç1 1EѶ´鲎aŠl)à w`áB§°°t Ó¥3Bš?$üçƒÍá^KüóÕrkŠ]yG %‡dT« Ÿ™³á8 H¾:}"VJ³Õ¸± ºÁù.‰ú0žÍðg—@VvµW¡ëL†NË‘ŸcH¢™¶*����IEND®B`‚IMAGE 211 ./arch/spell/Smite/god_power.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���{IDATx^MÊ!Â@áßaH¹'!áP•$»8WàUWÙ# ×±ñ ݼá%5˜OLF`ù™`·Lƒ¾ã2j@9^äÁfô$ƒ³ kk9°[CõN§ê\µMýü§‹ìÈöÁ|xš:ú· SŠÅR“ᬔñ•HiVQù0½����IEND®B`‚IMAGE 778 ./arch/monster/misc/Ngolem/gol.x11 ‰PNG  ��� IHDR���@���`���_ëiÛ���-PLTE��i-ŠV��c2�c�Í…?�1�cDÙ¤���ÿÿÿïå‹¿¿¿ŸQ,>þz\���tRNS�@æØf��‹IDATx^åÖ¿jQÆá©§L‘BÐâ0ì¬CÖ ,\Ym-,ƒ`³ .Kvùƒ°a®!Å8N<äÈ%¸ˆI1•.aS¸Í¦¯ÁqöÏœ ¤Ó·¾÷|ŒóïÄ…øV�4±‚äkkÁùQ@lGÞ¸a‰R \X¦.»¾ùŽÉH¿ÛO½±$½ãØPXq àøÐ�Ë@;Ì%ž ºox6Zå©ÙÖôB@O£9py—ÐD²šÇ|…€¢~(ÅŽ#5†ŒbA¢Ô 9Ðõ:К4 7F›À E Š{˜C²“ç#üb²°©›êcГNž{ìæOFÑ"@†ë£ýI¸÷]@ûP� €z}Mà ¾Ö†ôµÉú³ÀÀ /‚ÁD�R1—YMßt´F´�Ðf„¶úT.A߀ð~l@š¿›5@ €‡�!ª×£Ä3Ø+iál²(‹LŰOoÊc¡�í9 �’þðΔ©˜€IðíðÓ”�„Ñ"húátë÷=i;Àap}S�±‹öôKº‘Vt£E€ hÙñ @ 0âSCŸ½êl§bÀÒ¤%Í_6¶g”tê7?½r@v‚¾/@úWån 0©FÛ&¬N€$º«Á®WX— ÐK€Äekfdj*WíeKt÷ëóíK/TÄBö<°™ÿÙ Þ»S±Ús?*&äQp€Ä�PÂ*пÉ·hõEÇ:ÛX€ ZW€$ª�‡AØõ*€®U€dV²!×ïgu«�VàÜ +J÷àÆÀØxu¶?ÂÛÓl±óŸæ¤6cmpÉÞ����IEND®B`‚IMAGE 753 ./arch/monster/misc/Ngolem/gol.x12 ‰PNG  ��� IHDR���@���`���š„Ú���*PLTE�0�-ŠV��c2Í…?�1�cDÙ¤���ÿÿÿïå‹¿¿¿ŸQ,K���tRNS�@æØf��uIDATxÚí”Ñ–â Dײ©žšîüÿﮓ A”<ìÙs¼1!é ÈŸ7oÞ4´òð…4*§ÉØ}§~í=S ]˜d¦ yD€/$õõß@~&׺ú¡AÊÏ-‡®z¨Ñf€eº%`Î,‘@X/'éz�,4.XœZáBÝÈDÃ:5(Öë³æÔ ö½ô+e[¬^agžUà0]ÓÚŒs .hÅàìÊáðGInUiÈú5ifj0¢ì‚G90±‡§®ŠE8£ ‹î ©ª "²¬ÊìÓ©‚Î�ªö‚ÀG|?sA ¹«ºýPËÒêóÃOPÍ÷rïÚ!LR/@ªB‘(ÔÊRXà7Ýg]cÜ‘‹NU ¦>†;XÀè€w{£à)ùE&ÞîÎ Úú[ú©Pk rzJ éX�£ýxqwCÚáBm8õuêÇß½X¶‰2ÍÖžhf5ƒ‘@JhŠ[F f0Eø>t%eDÀˆáÚYè5ÂëÞ7%ÝÆý@À=«mŽV2T�qW’µDzVàdåk%ãÚLÍÃ]2D±‘`ãg?ÄöSÒg RA‡îÓ¯âXÐ÷ø €ëŠg#4WŽ/ N0kô„@¹Õ'µñ¢@ôõׄ a§zFÎ*€PSw˜DÀËÜÀ°íX<Á§Îm%æq’èAHöBˆjìÄQA±yAc^°à À±À†.i^ JS‚ö|\àÎBètHPÀc¢Ëàù »>;©l ð˜€&½Z¯¾qb�]ãQÁ‹k8L;Ã?4Zý›7?ù ¥¶P ¤Ù[ÿ����IEND®B`‚IMAGE 468 ./arch/shop/gold_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ -/Š™d���ŠPLTE�������‹‹�îîíííê‘‘ììììëÙ‘ìÙ@@@ÓÓÓÔÜÜÕÝÝÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßç¶ç·è¸èèèëëëòòòöÖö×üÓýÕýÖÿÓ�ÿÖ�ÿ×�ÿØÿØÿÙÿÛ�ÿï¢ÿð�ÿð&ÿð2ÿÿÿCÁ ���tRNS�@æØf���bKGD-ÍÚA=���¶IDAT8Ëí“[‚ …]Є4±–ònšhyùÿ¿/ÆŠt¦i¦Ç¾7ØÃ.ç0XÖXè;¼Tªä¥ÔvC)C×ã<¿%Q«-!ds 4ÈLA™œ«ª Ý! ˆ2Oø�*ª”ꦆP"”Rf¸"hÇuÁ<"®»öÚ?Fèú)¦ ®†iì/ó%1Ͳ|ÏÞlzEÓÞl“ DÁlø”|¤¿[doliŸKü°^®¼ÿÿ ¼r\¯ Ä[€pO����IEND®B`‚IMAGE 1901 ./arch/jewel/goldbar.111 ‰PNG  ��� IHDR��� ��� ���szzô��4IDATx^½—]ŒœeÇçy?æ™ÝÙÙ™í~ØJ …n[5µH$b"`"Š‘xQˆ`¯¼01bôNcÔ cB¼áBAˆ Š µ Ô-HåÃtÅÒ–¶»ìt»»3»óñ~=ÏÑLb´!hËGÿOÎõùŸÿùxÎáÝ ªØd•¤³Dî2Î+T•,íòä½_ÕGvµþå?ÕÔZôC bÞáÜ)yóÜwèécÐlžÕC÷°çž[ôÍ¿½„s§öÃ!З=KØß=ùæ³$¹Å÷=ªÕ!ª~ƒ™?Wÿôà÷ÕæŠªòA@þÛyžtÙ{ÿíº2û<Å”ÊC@‰,éáKÊÐPD/NiÚ‹Y·íÛ2uÕõ`<Dä}+ÐüÅ];Õ¬N³f¸ÈšZ…0„je5k×32>Àx=bj|–•îÖƒ»~ ™í¡Î¾?ªÊcüP«].Ûr1“kk T†¨ æÔ«–5ã!C£c$¶†ñ,ãe¦¶†¬~š£»ïÔÃ/ý§U}oœ*­¹ƒì~ô%fNXj–BJ ”ɽQòd‘xå$Õ‘ˆ°ìAàÓsUŠ¥SDŸè+»îÖ$éà¬=7ªÊáƒP+´Ø¼®Âü‘£ìyj–¨>‚ø»�ÛkÐjg|< ªWÐbH¯S¤»ØÄ$=r©vÿÊô}7êô¾ûÉl†Swö tf÷i­Q«•¹`¢BEWyæ‰Wé™"Ãc>cㆠ—W­"av³Hb Ëæ>iÜ¡>Ô¢Α¼öcÝ÷Û»´½<V)‘¤»ÈßwïT_›”,͉ã„4NX馌¬dêŠ ¾¶Q1$¹O·ã!yßËXn-5HÛ í•œ…fL¯§ÄÞ#›wÈU×ïDŒÿ®"GüŠ|á1õCEÔYŒ1Xëè¶VIâ˜T.ýè…”Â.iæ“%Š‘˜V“~¡F4‰› K§{tmˆM{ôz–4÷×|’M7üHjðŒy'—÷ýž¸ñ”NTÞÆU ÛÏjSº++ÄqFer’¡j@(+,.äT;DžÅ&9fÂéeKÎN ñò Ö€5cT.ÿš\õùï "g¨a®ÜþeF.ûº[¾´ŸOÏóð|Á ŠÏàE†ê£ÔGëÈê" Ç[¬ÄECÔ6ƒÕn†/!— !§Fè°@ûõ{ô¹ßܦ­Æœsÿ! â±aëv6m¿SNv?%Ëíc”(Ìûd‹s…¨H±<ÀPIX9¹LPˆÀ/ ‚ñ°Z$N,Á"žka<éF~8@!TL|’CÜ®‹'÷¢š¾s÷:K¼²ÿQ‚Þ3:Y_FDÈÓg…ÀË@ €!Mc(”©×3\ܤ{ºEã”R â~ñZkpf’8qD…Œ$5\¼e##[n!¾YŒ!œùõmæÅ'X<²[×OÌø–<4·@‚˜Ñ�?*#N‘b ßï’/£½Üfµ“¦®/³ÕXí ÅÀC½õZÆÚm;P@é ¢Ák䌲üwlúøçXÍ7äÈâÚ½¾~(}Y}¯Œàá’6&, ¹##²ÊFÔ‹@1ŠçûdL…j;”üSŒ_y" ^ˆØeù_KI§µÀô3SÖºv¸¢Ø8ÍO1~¿0€1>Æó襎æì!âÖ<Î*©-÷óï,\´e=ÕËnÀ& Ô1…:&Ø„ü¿ÍȺ˜WŸÝMÜx\/™XD4G]Ρ¼Ð`‚ ^’,¥½ÚdåÄë Ãd”Xå‚ëîB4#O=¼òzŒ)“ær6ëªyc¯îÒ‹jo0TR0 ÆåF¸,Å+ z©²pâ(i{‘ ×~…bm²kËx•õ¤=ÇÒò�ÂYBÕ±¼p‚é§¢j^Ð FûmŠE­Åi†‡*  ™5tËèÆO I›ûà”ǘ›KY·ù&ñ9KˆT•k¿¸“ƒ{×È¡ãO꥓«„ÆÃà ý¶RúO aNÛnàœ–ê,Ì·(L‰˜�á¡Î‚ 3Óû˜›yD7~䃃D|r›á‡H�Îùøå:HÔ/< Æxë-ÇÔ¶[ň‡á!Æ#\þ±Ï0µý.9tj EKšöµØ<UTAÕ9ê\¿õ™{…uS׉`�ÎÀ™óÂ0~áÛoü–4²ÏÊ[s%Áóg-" `ò¾s :G;–ru 9“À{%R¨±ý w`ƾ$¯®’dJÿWu`°à¤€øeææ{l½úæ3ƒù .)U8öÆóyy—n=F­ê£�êc†7sj)B WȆ­ŸÆˆáCªc©qœ'ú…N?|›.Ü¡­ïÐ¥üR÷ïþµ:µçç®Lzm<þ;ö=øM]Ø«¾¶÷çzjî0ªÊysërf^~Š=÷}O÷ï¹WsçÿÂvšÓ˜}“^wé]£ÿ'Y8½�ξÇc����IEND®B`‚IMAGE 2402 ./arch/jewel/goldblock.111 ‰PNG  ��� IHDR��� ��� ���szzô�� )IDATx^µWKo]g]çýô¹¶¯ïõuj'i“Ø ¨PuЂ!Fˆ$¤Néè€ÿ  bÀ€‡ÔR$È�¡V Rª¶J;±¯ï뼟¬oŸÛÐÐ1G::Çßݵ×^ûû޵ì÷þ÷úÅß<Üøü·ñ¢ùü¿¯5€O_\~³«ôš¦!Žc4M…¢¨¡ë:º®…ëZð<¶íaµZði! ‚Mþ®qÝ Ã4´mÃ0Ëà{…³³+ÇWÃ_k:Ö×;Í·ð³»ûò~oðz‡ºÃhtCììLpõêó¸qã3|âò嫸té ¢hÈ„“™ØÚc0˜0¡GpýžÁææe&6 lD»,Köic`8ìs™X_®cãË·_Á½àõî䣰UõLxI2eå&–ËG º‹²ÌPU…T^os-• ‚k òüŒ6¥0–¦³5ƒ+®g>"KÕÓ�I…²®ðΟÿ„ëWÐHÀ$¹ sCÇ+°ùž³³Ù…´`<>ÊLÓbPжÐì”t×\ë¤,[Ò·&Ûbk@Ó'-8>™îýá͇ݵçLöQW|?de1€Š¨÷è<!#‡ò~tt·̇ãøáI+‹Sjæ\Àr¶;|ºô;ÀÞÞ‘Ò„�vÝð¿ üöäkN–dß»óòº©Ã Èª¶ÅÅÅ «Ü`€PZ@YUÉ»b¢cµÆ[‰ô‚LŨkaGY±0—e+®W"\ÛV`²¹¤}Ýxkõ *½Í~ýÈd¿,&+4Àå{Ï$9ûMKIÖ븖 ål“ô6M—¢ì(ÚbÒZìÔÅØ´?®'R¹¦u>`|ýÕm³,Ê÷iJ „¢$›Áv}”Ôוˆ¤:�R …ÅÀ+‰YÉ|½fʨ7ʶm+�� fA+jc¡´!k7ÜAŸœ<Æùù A¸ƒâÐ öíüá9êt,…VV!êçߢxf˜„O©–É IdÛ¶€ara‹âãÝòa} T¿Ö•Iõ{†—à…–$%é%é=°·ªz²5‘žfÙ\€åy±$ Õß„!xëœû±$­k±‘Ø@ †a{¤{A£Á`ŒÎl”º%°ïoH¥tuE& ¢hÂdÊg*cI*eØ3¾=çÓ¥MDß‚ “@ž§‚ S óFCžÅÒÓ´Ù'3¶P8Œ`[È} v•¯ü=íPسX%¢ Æea65qÆþ/„Ͳ,ðèÑ)ÁX@�˜Žãõje‚’¢êÚ —³o4VãÖ€Ì8q+~žI–L–RÙ[re­“TX£6XéRvO¶6.}—dXé§$àQÏÀb‹ã3ûšÐ•¦È$|ÃEk” f`{{‡‰jî ™\Oñ¡mmMèoñ·É86MÁsÀWÂJÏH QM@ÎgÃÍhO0×õ€0W‹ÊÍٓãŠÉè½=²P4%«<ø‹ô6Š¢õxa-8 ßg¿é;OM> œžNEýAàÕ<|x+í„R¤ç C=,¾34$E^6 :¡®”-xEAž=Ƶk×dó¼”i)K5F+Q”—¸wï½õ¸µxÈñ=<Tçƒ)vô£N½Ø"RËÒ ð˜` ôñhоìeÙ+³¬ Y¨›m݈?üðïû˜N§˜Íf’ð9'ÅS©–UK‹\ׯd²CÑ%¼SÇþ[�´É•?Ù|Dßß=ÃñV`[1:°‡D é-êŽéñ=Å|¾äSc.+‡T•¦%(Е¨›:ßÁ Äb±”Y§L[@ÛšíLùTöJoF€çòæxä ]a°)3+W:ÛTl+¢â‚l(í“UÒÒ. x Lȉˆ$ù:–¬±E²¿¬0 ¬7¢ >÷•—l­eC‘ ŠÆTÅåŠxêZ%0UrÒ¿à´q¤ZæP£&šOZgÛJ„®€&PɰTýD�²ØYCd9{´¸8y²õZToÓÖBû /܆sdÉ}t¬ÌwC97Ž®`È‘lsÞc˜VË ¨S€²RƳ, 5Ò�ÙŽ)î{=�n@©¢/]¡ØóL@³e¼ŸÅÛ7Q·\ï9XÞ!–œ÷<ߦ]ŒÝ±°Å$›¬n—þ…2‚¦³€ºZV@MÏœ­ $öfÔà=ýûÒªŒtËY?Ÿ-a;6èÍJv°w°¢zD ìÃ24R:¡ãmS`ŸB×bÛºv˜\Ù�P(Ñ5ö“ï@` ) ©í™�0‚aï^üXVÊ„ ÕѱFgˆ›·§4ö1;ÿ7\ÿÔLgt�Xý‘+ÏU±âœ@ ”… Àg؆�tš]ý­Eôoù¤*šú®´À²¨D(­R+ lùù½WZ ­­ÜrùØF'üŠô YT ­+¡H–Nᇊ,g!K9]^̦A‘×%m¢-Ù.n¥¿y �Œ×~ð¢h?œ_ÌD îÆ&&WB´£íŸÕïŒnAc¯óäãÝ/`8¼‰$S�”ÂmÚì±bÉ*é?P]$´u‡ïCùGŲM˜ÔÆgW¿ò±¾Ì*¯Ó¶î¨\à‹/G ä­¿dRж¤y…ª™qâÔ‡8?û;©­ÉÀ³( Ô5}˜PW`°9Q¡oP;»HÓS™ù¦ÕÙ"uÌ >q™Ëø,ïZ³µœP÷ü1òL‰E±1“â˜Ê.×2¡8¤•�MÛF™#ÎV˜ÏçlK"öcç°-vÿ7U^©´–_TÌ•÷“�´_þø%5•5˜›»»»¨‰TG+ý]t êQ4O4™å¼¨äÃ3Ë3„~ˆ(Ú ƒëï¼VüÈXI `R_Äš$‰lF¯úÕžb ®Zì9¦ï_—‘ñ«å Ð!û‚NóªÊ1½ˆ™´‘q<9‚w†;T±)»B³©¤!Ÿà‹ùË•¤ Ï~z[{SªŠ·ßz@Ó©í5ISù÷Ìé �Ù¸§‹ªÙ ™{î²Z¶kèÀwU©5ÀP&hÈFLmœãæâç4üôõÂúQá¸(Òh����IEND®B`‚IMAGE 227 ./arch/jewel/goldcoin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ !!!���ÿÿÿÿÿ�ÿ×�9Ц���tRNS�@æØf���|IDATxÚÅ“A À ׯøÿ'·AÔ6Rè\w’`| DXp5ËÝÛ�V(B‚»7A¦P°IÀ.(AVº»„Ž@W€È5$ˆd’ÀJ¤“¼ÌSV€™dø¾f€/âÿIb7I¤“˜F¹Óh¤˜€¬Ñƒj¸-ûHâ]����IEND®B`‚IMAGE 804 ./arch/floor/goldflagstone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¨PLTEccc­­­½½½Ôººœœœsss„„„¥¥¥Ó¸¸”””ÙÂÂäÓÓœœŒŒŒÇ¥¥Î°°Ï²²µµµÔ¹¹{{{¿™™Å¡¡ÚÃÃ¹ŽŽÈ§§¿˜˜ÎÎκд´Ñ¶¶À™™»’’žžÖ½½ÖÖÖ½””ÆÆÆÌ¬¬Æ££Ì­­Ö¾¾áÏÏÊ««ççç÷÷÷Ë««Ë¬¬Ï±±ÜÇÇÜÆÆæ××âÐÐéÛÛÞÞÞÕ»»ÛÄÄ·��7IDATx^m’ÕŽ59 c 5ÃA†áùqéýßlÓ90{±¥n)ÖW–bÅNÐrË}¢ô*Úk/Ì%¨Ša6>à§Àˆç^EØ+ÀEü L £Ÿ‚_Zf°%ÀJ½4på„2yaH¬Ø~²¸ Éçðê*�bëBÝÐ,sîG]çþ¨›zVÅOÏw!ü¢ Ú‰¥ÿW]Í"X±72Ïëùð²§;ñdõ.äþźz[îŸ9ÊuÛöÞ(&¡;65-Çð>ŽËY”ëi¤Þ¨zD ‰¢Ø/ÕòHÇëh¡µjDÒWS¢ZÛz1R*2ZôI`¾05Æè¼]8nÞ¨™Í&Áçç�@rómw¨öc÷~V×aºˆ­¾M1λ瑊Á÷m]ý=¬tMôÞ‹¿ ïû± :§Ÿ†}Ç(Ѝ‚Ñ,Ð÷y±Xî7ô»‹;z>»&2òíà^vOÅîðDÁ—†q‡‘\ü€$äB ÄëP×M&×>Á`25Uó-‹ó˜Ë$ Z£»?ëЄé&›oÏarKUSЍ›÷a³/ŠÎ«©®"ªJiN'¾¬ÒûOÑ{f{ݯÌl�î—Ø=†Ã–2Qä±Q?sÈ›ðµÂ¡KKH.äMøÚa¸ ñÑ/o[^nXùPê5ÇRM> h­EÌ9O¦¸Ÿ[4ÊSì}/SîKÕÓÙ«ŠõFEûÄÔãS®ȹ𿜺)ч­u����IEND®B`‚IMAGE 694 ./arch/floor/goldfloor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���–PLTEÈ&Èv&•Y·xz@¿yŒX¦lé«?‚PÓ‹-·g¿…q?zG_7¦rÀy&·r'®p ‚FW.¦_ •X!iBÓ“-i7ŒPrA_.zH×µ{¦`(`Ò’>a!À„&·x'•c!®j ¦bÚ“6Ò‹>ǦqÖ¾Œ·‚'Ù¤G„X0Ð¥r=!Ò·û��ÛIDATx^u“×®1CÉõ­îÝ··ôüÿÏE’áÀØ›ðAÀy8Á1õ¬™2îÌN©$µ¡ªå”¡òá2Ý+Õ³¡›2Z3 0Ÿ¥Î‰ü¾–Þp BþC¶PZ+âG&PU¿Ö_~ôÉÉ 4‚‘ÀÙ¼-Lbç] B¶È¹Š5‡Óª{xM0æÞàJ#õþæä¾n‡µRY9½3°çÛ6žÛˆ‡· `å ®øÔR„ÈéûEÿî¶-[T‚AÝW<sÜ©›ûM¤ÿ;ƒƒVÑáØ-8ÛÏ©ðâ+Ç” ‘ðáËjn—nˆ6³»,cƒ¨µ€BEWöÙw™^Oî{wz³M†Š‹|b?›íÏ$»%Ÿbìê "(!ŸVýf;,xçcÿvœöÚ„¢Š"z\÷ÇåšP¼äet©¡¨’0rõá¹ó~ÌËTEë 5žn5çy³×·W}0b¿yŒ(“,^ˆ]å ·> ú°úÞêþgæ[D°óH ùP—™_|0Sèy\/»å|âƒy¬÷AŸ}p"Ö7žŠjÂg þS|¸ùŠîò.7çÕ‡\UÞ?iÊÕ׺GkU­rõAa„¶Q6Ô)ÿ¬<g V¢����IEND®B`‚IMAGE 719 ./arch/floor/goldfloor2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���±PLTEW.’u>“l5Èv&…^5¦l·x‚PÈ&é«?yR5oH5q?•YŒX¦r®p ·r'zG¿y¿…Ày&‚FÓ‹-_7_.·grAi7•X!iB`¦_ …l5ŒPzS>·x'zHa!®j À„&ǦqwKKÒ’>•c!Ó“-¦b„X0Ö¾ŒÐ¥rÒ‹>¦`(ªVªVy_5×µ{Ù¤G·‚'À´ž��ÙIDATx^m’‡ŽÜ0 DERݽ{{»ÞÓËÿX(]Þ8KÀ ‡Cã x„ð?L$€œk€=Ê Od’̵ÀôÀ0L~OæZ�ÛÄ)n “s-dxÞ'¤çw®Å ¤„ìr…5"ËTAƒ%­õMM£?«B ¹ƒrüÆ ö…,wtUKd‰¿•=;àäë¸éëHåøTÉà1‹ó›E~¿÷š4Eí�9¤„àдKE[cwÆlk)j‡p˜¸êº¬_ómK­Ú/âÍ™"®|‘VjcH}dÀáp@ÉEZR·ï†VÛ¶¼§bþf�€2ºUÓç£i~Ù§üý˜ÆÉà€ˆI’‘ÍÑPj«ŸùïtqÛ,xðÌCtئîºõ5¥=Ý“¹‰‡ŒèFÔ›íXÒOeêÛUw\륛xÈô×Õ¾^õ{²Ú^ñ1º7¤ÝÄCFÚZâºK•*ø˜¨ÝÄCF±墢ëÍÚDéÎxh>)[ؤ|>Z“FíþáÁFʱ®½~c=çA…¢]<¦ºÈC ±Ú÷i_ýÏÃSœç%ÙË<(æAÛHÂEÜÅšx` üžë‰§(ì<×§ Bž¹Ž<ÄŸa#ø¹þ/â(whK$����IEND®B`‚IMAGE 677 ./arch/ground/goldgrass.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTE�Š�ÔººÂœœÅ¡¡Î°°Ï²²Ó¸¸Ô¹¹ÙÂÂäÓÓ�¥�¿™™Ð´´Ñ¶¶Âžž»’’Ç¥¥Ö½½�Í�ÚÃÿ˜˜�ÿ�À™™º²""½””Æ££¹ŽŽÈ§§Ê««Ì¬¬áÏÏÌ­­ÿ×�ϱ±hàÜÆÆÜÇÇË««Ë¬¬Ö¾¾ÛÄÄæ××Õ»»éÛÛâÐÐÕ³DL��ÖIDATx^mSW’å CÄà^ΓgÃý¯· ‡Ëó±íÂ…šÎ1Æ"c,{Á÷cF„bõžv„y#èA'ñX¶b|š%H¿¸E/¨ó—”c|Э(^#}Š-³³"žkƒÉÃZûmáœý«žúÀR ÷oðÉÍ�x¤õ¦û)0³FPŽ»Suï°HØ0¹Ø$úŸwýmî®Äa¤;sƒÑ˜•¿(5OÞƒ8<‹dµðI¤¬å½Ÿ ž8ðLì³™€~W5ú¬ —FŽ æ1ÃT5p辦Áú¡¾ÁLSN1–#ì©qmß)wóï=› ù¼Ì êäŽ ²²Þ~ìúßÕîÅ™À»yvK§$pH U‹O¥* D:“�ÀçIžç®Æ/­äËǃ5¥MšÙûö*·í>åHÍØVÁ†qIñˆ°ÞÀW¥µI͇H² þÔ@žŠ0§ Ø÷G{ãs%õÇÑ«Š8dʲiãɇº“ÒÙCŸq"ï*ý24ù€ ›iž| ïZ‹Ø^Ûªm@ beõ;ý=™ðƒ+=6Ö“ +òyuø¯0»X¨þs=ȵ ÏQ¿æq>óQ¹<5¢õÉ–·º(zYœŠ’щ9bz­Ñsøi2*2y¹A����IEND®B`‚IMAGE 1135 ./arch/jewel/goldround.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTESV Ÿ6±¯F¯³@ce)£¡8²°G––-¶´K·ºj¿½SÃÁ^ÆÅaÉÈdÐÐŒÞß¡ËËnº¸Nhk4eg*¶¹Fœš)º¶i¶¹iœ3¾¼R¡Ÿ.»¾na]"ÅÂX}}QÆÆiÈÇcÊÈ%Î̃ÌÏ~Òφ­«:ÓчÚÙ–ßÞš‡ˆá⤻¾LTWµ³J×Úˆli3ÎÍpÑÑs×Õ‹’’(¼ºPsv>wvE^a$½»Qad'©§6‹‹!ŽŽ$Z] ÍËghj-ÇÃR˜—%ll"žœ+tv8ÌÊfŸ,]`#nn$ÌÏ[ËÉ€ÎÌhÌÊÏÎqÍË‚µ²elk;¨¦5ÑÍ~tsBÑÎ…jm6mp9qr.ÔÕ~ÖÔŠ»·Gpr5ss)ÛÛ—ÛÞŒÜܘÝß´²Irs/qt<ÁÄtÇÃuÄÁWÁÄQQUur<RU¾Ârxzps;ÀÃP¢ /£¡0jl/ÄÇwËÌRÅÈxÍÍK§¥4ÒÌSutC`c&y{ÈË{±®=ÍÉzvuDPNÎÊ{xwF°­`ÊÍ|ÏË|zxG|zI³°c‚ƒµ´RÐÍ„¹µE¸µLÕÒgÒÒtRP…†ÓÓuÒÓ{ÐÓ‚ol6ØÕj×Õpqq'ÕÓ‰ÕÖÛ×lVYÖ×€gi,ØÖŒ×Ö“Ú׎ORÙØ•”“!ÛÜ„—–$ik.sp:¼¹kßÝ“ßàˆPTáß•ÈÁ8äàáàœßà¢Â¿Uã姿鱫ƒ'”���tRNS�@æØf��þIDATx^ÍÏC—e1†Ñ“äØ×¶í²mÛnÛ¶mÛæìÙUWM{õž>ïúV‚ýw*jÚðÊѵrʳâñ¿ò‡Î­–•ø¥=•—'= [â…DùW78qä o“çj…Ÿë9q°¨Iã=“B@ »,|/ø•EOÂ.´XèNE˜-7(&}w úû¹ž®Zžç h3M#B/êÄó¸Ï.È\˜¤IGo%"šs^WùXn=Ï- ’t @�hLe¹A\Dœ¨í5ZÛÀ�peèÞÜ \éc3nŽo‘¹¨«-@/rXWEvP¦º-J’ôüG(õ, ÍL<˜Þuº7ïq¥È ¢<?~+9ÿ;“yu{ ]îþô{2œ²Ð´ÝV›Z×±­Út4žûn‚Q…!Ä¢e ¾Öèõ¬ËÌ•[ACH# ÕwhÐ#R»Û°¬}ÄD�h$¨tZ›~«i€ >|Ær;¯3M­TuU•“NʸÏkÔÇòDôFO9o\8Õ§c€ `6`ù6Q/Ïë¶Õ”–‚Tt;ÌX¥ú¯÷?QgàaD^}ýý#X!ë“zÛØØ›Ù³_B¿”ÆÎaŬÖo7ï6n,i.)½¶´[ÅÉcî]íØ½wÿÔ¶†ÅéÅöéöFìû] `ùUG����IEND®B`‚IMAGE 388 ./arch/spell/Golem/golem.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÆÎ÷„J!”Z9s9c)�œc9¥kBR�„B!k1B�R!�œcB{BZ)�”ZB„J){J)¥kJJ�°Ðן���tRNS�@æØf���öIDATx^ÒÛnÄ PlÏ —d/mÿÿ_ U¶RI–‡ú)’0IÿIîY÷fÜWÀá+€m ‘–Àw·7�¡÷so„¸»!zÍçcF ` ºð8 H·ÑCÎ ˜À,8 !d#§ÞÉŽì'ÈÙ1/ˆ)C"è~^0‚©5É+8�'_½ÃY:À `€ê•,cBéo46©Ö×D:MlÛ¨Ka±ê nÖFk½w¨œUYÙj«IœAª7Òºlãå[WÞŽ7‹K`Šã#.©ƒå Œ_ùfÁ‰Ð¸‹<€®¾>À×.Á}ÿÅÀ'Ó2Ïé^çÒ5íÀü9����IEND®B`‚IMAGE 381 ./arch/spell/Golem/golem.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTEÆÎ÷„J!”Z9s9c)�œc9¥kBR�„B!k1B�R!�œcBZ)�{J)„J)¥kJ”ZBJ�{B»Ö���tRNS�@æØf���ïIDATx^µ’Ûnà D=—]Àv’^þÿ_ r).õS;/+tŽ`,ÿ’ÒsÍmîW‚‘WÖ\¯dþz: ‚�Ü'˜wõtÌÇûO. É΂-H‰0;‡‚'‹0R(æI("‹å£”À«`‚KD:s§Ë÷õºJÑ0\óUГ‚ut:UøZ4²b"|a“ZkàÜ–—ØË¶ \+«»Ð¸œ³êÎGñ‡P亵µUTÌßRôØÇ0ç\ä˜fÎßó˜9,æ1Åyæ1‘šr+Aó 7‘‡€©ðq>?ðƉpÛŸò£×?Ì7w DS����IEND®B`‚IMAGE 366 ./arch/spell/Golem/golem_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÆÎ÷Î)ç1)kœ!Ö)÷91ç1!½!ï9!­!Ö!ç))ï1)ŒzÌYÝ���tRNS�@æØf���ïIDATxÚ’ëjC1 ƒëÙ²l§Ýû?î’rè$Ë`úeЇ|Iÿ‘ª~Ÿ}3æ 0¸Q×3�÷ã HÈoÓ�®sõ¾Òàà‹ò\¦gÀЙ1ªˆp¤ ‘_s@€’bâ5>'ßÈÙ[PM™;GJ ô*¹˜ƒŠ,p�\€ËO$Ûàg�@e‘ £Ù|…«CU2W@uØ­±YjÄt¸Öý1C- VaMK«IŸ!ÈǤÒÞ¤·o]”k_ß~¾¢ç¿eß!¯ À>{i8·_Ÿ“n»ÿ¤G‰Üôßúçè÷î!�����IEND®B`‚IMAGE 352 ./arch/spell/Golem/golem_red.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÆÎ÷kœ!ç1)Î)Ö)ç1!÷91½!ï9!Ö!­!ç))ï1)säÇw���tRNS�@æØf���äIDATxÚµ’ÁŽƒ0 D×3'íÿÿî(Z§]H”÷4F²ÿR­êž›1ïCÄ­à-Ú½€ˆË`N0!¾Uå|Ó_g.Ls¦N‚™ ÒXÊç‘lòtó*ïuè ²™l-TC?ÖG"x=¬Ž|Qp*ì<‘ìÛ×ð 9ÈŽ‰àŸ„1è‹0¾„êY|Á½³[ ƒçQ,ÔŠ/ÿ òÄÍzmtï˜ÏR´Õsã”›Èõd\Û‚ûP.v5¶¡9W~’æLäžÀù*ïÏð™ÑìwÁÜëþwõy¡Î'É����IEND®B`‚IMAGE 242 ./arch/monster/animal/farmyard/goose.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ¦¤•Ö#¾¸¨»Ä¸ËǺ×γÛÕÉäéÞÖ÷÷÷ëÚí÷ùÿïÎÿûëÿÿ÷lVU e~���tRNS�@æØf���pIDATxÚåÊÁà „á\£¦ ïÿ¶)ÍUñÞ~3 ‡ýñ³Æ±Ùݪ¾°V¯Ñ*² )Väº*Rª›âì]Ó,ãy‡‘&˜¸Æ»‘VHŠ`&¦8Ú"°˜ƒ,¸XùqGRˆÐ±"_Ž5wº#¡qûàÝ$²}Ý©X|����IEND®B`‚IMAGE 247 ./arch/monster/animal/farmyard/goose.132 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTEÿ�ÿ­t\Ó¾²§¼Ç³Î̽ÐÏÃÝçáóʘ÷ìØóëç÷÷õçÿÿûûûÿÿ÷ˆˆ|Ž…*���tRNS�@æØf���uIDAT(‘c` +àš€ÊWbz…*Ðqî5š–²jtC’Ñ)  ()¡ Ü9„ÊçuAp88ÅÌ!À»º,Ä%I€!4Ô%,YÀÄ54,ø?’�ÿg×`{d†Ï&ÎöøQ0ðËÇ  ºKA€��íàP—+¼Ü����IEND®B`‚IMAGE 242 ./arch/monster/animal/farmyard/goose.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ¦¤•Ö#¾¸¨»Ä¸ËǺ×γÛÕÉäéÞÖ÷÷÷ëÚí÷ùÿïÎÿûëÿÿ÷lVU e~���tRNS�@æØf���pIDATxÚåÊAƒ0 DQ;Θ$´øþ·%­öí—,Yš'?×6Øú)nA…·q¸ÐÐ\x¾—Òù>ã ÷‚Z*Ô�Ûî¤@Ô©Úw90,²Nr ÀM,ªuf’P%ûz%ÏE BHeÝ;øÇN*š}¨ ·Ÿ����IEND®B`‚IMAGE 244 ./arch/monster/animal/farmyard/goose.172 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTEÿ�ÿ­t\Ó¾²§¼Ç³Î̽ÐÏÃÝçáóʘ÷ìØóëç÷÷õçÿÿûûûÿÿ÷ˆˆ|Ž…*���tRNS�@æØf���rIDAT(‘c` #à\€&°NA U`ß›TíéhZÌÐøL:hJhF2èœEp ý€*ð9Ù HN@sqMßuIÀ,Õ%4IËÓÔÐgdϦ!öHüŸMœÍQ¬ùolŒj1ãרL@ˆ_€Þ��ì2-¹aÙ����IEND®B`‚IMAGE 2279 ./arch/misc/gps.111 ‰PNG  ��� IHDR��� ��� ���üí£���bKGD�ÿ�ÿ�ÿ ½§“��œIDAT%ÁɯdçYàßû g¬ñÖÚ·í+·âˆ0$F€ ÄšyP$Xó¡,Y²AˆM‚ b$+H ·»Ýîv÷«nU:ç|ãû¦mž‡Æa¬ªêÙÿüœ\Ô…æª!ÔZ¡*H«¬tN„9±f0Dk£S6J ˆ (ñ!*E1DŽA+²Ì!gM˜¶S øð£?ÿ‹$‰ ’åÜÝnŽÛŠ›*6Ösµ¶ypçýø¸¶‡Ú°Õuf7+^:Ÿ9”Š9ĹJñnÈ,¿þß6Bp“²m'½ÖÁžÎG¢(ùîjÛ6–ZÚ¢¬íç±ØEû&?h?‰ù=à.ä7ƒ»ÃÜÐᨑFÒµb颞•9r¹š+�Þ;_˜ûœÿý:]lÁÉíò²]7f–ݘ?êî?ê÷û>Á3ΟjÜ2k«¦FMkSHDH…’vQI™5bÌÛÊ�ˆý ­ŽÓÙß<c§g‰Ôú6óµm R+£ò¿j§ð«*>w‰´Ôœr2Ó‡!wãòã]îªv`Êc¨'µÐ¸T~2k €4ºÑîõϽ¢ü_]æÒÆ”¼W%‘­ê¶ Þ¯rãì]Êó„eæê)» )4¹¸ÔJvãM”îÌp©J]QÕ4@·;ð—ë““¶önÕÄß¿´G6jßÍæG‰Ååän×ǧS,*y½¯Z«¿Gd 5éݰ(õD#c#ÌÂ*ÆùN¸5njl2¦ž(�¡˜ñÄo«‰ùøWç*>¼Ú÷[ç7μ}»Õ›nxuïê¾µ ç«¢hЦ¨2ïµ9ª’b¡<§­¦Zãâfh'¿Íª´¥‘Ûôöz¯C®ÿËgü¯Ýl^QÅ’Õf»:^Œe9Bü¾ïÆpqd?œÐ”ù°l'JIçÚu¯¢§ÖÚ¶k}7Óƒ'íðH`l­�üÕ¾øg}<Ä831ìýÿ^çþýÇ¥Ö])æV‹p<¿U¥²Þû»‹£×g3"¸B«ºè §AÊœD¤¯Š5©CNSC¨uQVÀý.üt×<urqÌ}»ýô ?Ýè¿ùææ-†‘vnU7’Q[kIÖƒË�-'Á4…Ë«~Ø%ß<ÏùćÑBæ%G­wQOŒÖ¥0 ^Cà‹Óò»§Ò´æ'Ÿ¥Ÿ¾‚~ÿ²¾¼P£+?»HÉäØí‡6³}ØçÛõ؃N·ËB e%¯ôæ#7!¡°Á(}3š¢T�zçˆH}yØk%”øgÏû¿~æûIUœ¯’¥è¼Kl܈ݻ¾èÜno7¡ëóY§v!i¨˜êÀS^”¨²¥ÀõA $¸Ú³ ù×ëVyVx}þöš‹vªß¿ðÆ´ûÃù2ç"¡gC C ‘i¦Ü²<4ú® 4úäB5ø£¶i#Ãà�!’R_\ÿ]}÷7½¨ÿñtûòmþ§ey‘óiaÌh’ç:FSé»�Œ> ótZèRʳz¼ªmÞÌlÛ{¶èP 2ÈDì<ïM#½ß¿¼yr¸ûþwÊ?8ãŸ=íÿñGØb1·V³Vu–ÄeÒˆ¼_1’5¦ž”­Â�Ó}¸êÏfúÃL'?9å¿|¦~ð½óËÏ_-Ýa÷áÉ«ù/=šìr²:­ìùIêÌz¿D.ʲ#T¶ð>ÞßöMc«ÖJ•÷áߟï¿wRœï"�„Òà‰™² ³ÎéÇ/S8žÈ˜òÛÍþÅ›éîî²H aŸ9hŠZKi¬¿y€„\WÄ>ݾ݋DLíe©Oíõ>œ”q,9D­"ðë;÷ÅÅ„+»ugÞ÷þFWªš¶ Ð1úª!¦YJØ …&Ã1æMÏí¬štùIŒKáf5'Ó'AL$L Ê„Œæ~X®‡2/ÔþðÙþâ¨Hl›l(—z˜7C½( q­«RÿÛ§Ø1ÿη'Ç£«oš�˜Þe•"•�"%;GF¡…T,2K,×Û,È7[7+죩™WõG‡×L½³Â*+ é—ÏÌ ôéÄn!ñ”.›€|2’ñA@@ÑO¾Ì³Ç«ß›% ©q¬ë(]¹8 ãzéÉ<—3̦դ*”Œ1äcŠÓ ùA*¦E8=Ä\ &b"¥ ïÄ$ÿp…Wõê“ÙáIßçÚlæM<ŒÓHnZF£Â‹­g e½8šØqLµû8ô+9UFJ]–�Ìè<Þ!‘à£@‚œƒ<ͦÓËOµ«ngëæêä½W›ÝûmXÎêíþÐy± ã®GµluöyqÒ‡^êòjãTã‚qc"�úš„Þ1B àÕ?ìËo¼Öúùÿõõýo´¿{Zm+(WF)c§5Û̼h»àʺšÄÀ”%Å™!™Áü?‚hQ$�HˆðNbüü6‚@Dø»gñ|F:eFìú!Üß­Ç“²PÆj2ȤNªªë=QãA ¯AŠ�1½#ô€@�ˆ ™ñŸoéüdºœ·Ó¶vBv?ô¯îuŠ*%tá=³1uS0Þy!¥¡ˆ‰Þ!(€ÞÁW�a@-FQÓ£(K¥4 4aûb“[ŸOÙ³\÷¶-)@f?F&€ ¬ øJ†("|�D„!Ò)µ_š‡Cštf‹þÑô˪s§Ch§Tx³Ñd1~t`&aá@„ _KBD ƒ ‚4mqÖÒõz×´f¡«Fi9)FHÉÙõnýêtvXMª¶@ÿýòæÍzHÁ)EBÀn}«”š-ŽðRDÂÉ…0ìf‹£o>Z( Z˜†ý ì Q;›±V�啲Ö*:=¿DZªÊíú®¬ja†�$JΑ$E$î ” >ÞÞ]±Â0tûíaè×뻇]wxxøüÓ«0†qÛÿÑŸüá'úgaPYµÁû_�ø÷‹F5óÚæ����IEND®B`‚IMAGE 143 ./arch/weapon/artifact/Gram/gram.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���4IDATxÚåÍ!À �ÃÀÝþÿhžP›6ýîÁïrµ·åW~Óo¡ÈÉ{¶þ³pr¶à�]zN7Á����IEND®B`‚IMAGE 158 ./arch/weapon/artifact/Gram/gram.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���CIDATxÚÝÏ1À À\ÿÿh$„ԥł¬g'JÝ=lr%ôW½’K}Ã3Sçußî&ëã¢#ôYº'OÈ`�eô$����IEND®B`‚IMAGE 167 ./arch/weapon/artifact/Gram/gram.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���LIDATxÚÝA �! ÄÿÿhAÐ]!؃µ§Òd:ñö€ŸÇR*\ŒÎ]Xó8“åÙúY?C/ãŸÇ^ðíÎ'E¸½?¼?nž Ñ4�i”Zˆ¦����IEND®B`‚IMAGE 161 ./arch/weapon/artifact/Gram/gram.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���FIDATxÚÝA � wúÿ£ƒ… $ªCåÍ]ã:q¢Ns˜tA/†Ç?œž3 lýá:É™¼°ûZV›2ý.À¾ ¼¬ Ê?�e”·9V����IEND®B`‚IMAGE 1722 ./arch/misc/grand_piano_black.x11 ‰PNG  ��� IHDR���@���@����`¹U��IDATx^Å–[l冟oö4³Þxë®ÙNìØØ‰6Is@$¤ ¡E* i (€hEK+$$îP[HT 'U£¶ EE¥§›´ˆT¤ªiUŽiIÀÔqvðâu}ZÇ6vì=þŽF‘<Ze³âyõ]¿ÏþßÎÌÏMÜèÔÑɺy€vs~E7-|™�~<U!ÇnNˆ[Ùi–m`'O=#M†7¨ãï¼Ã(I”S‚A•l7³?ÅQ¤8Ç+'Q½€‡ ±‰mV|”J‚­D)T' ´óî'Lòyš!S@{ù›¨ŒQÞä(#¨Ê¶ÓÍ}TÎ/qœaò”‰Àjà[TÃj±‡z¨L …M¸¨–4V&àc!ªçvB• hb#Õs ø+ЃÚ*\TνÜÃʲ¤Í½YóãßäIÂe âÑ<8A;é@+KÀ€Ú ‡ÐÙHK¹'0ÇŒà˜Â—h-K@ÁCt8(°…v¤¼˜¢•õÔ—'p79ÉkÎ)„é(C@P§Ì æœ@®rV°QÂòqN “o³£D$rF½C¿$ÁVðž*u ¨¯Èj˜AApŒõ|–ä=uJ&9ïà ‹ÇÙ»ä‘Þ ßç…<¤‡yŸÉ›_Hy‰ ‚ƒl¥›Ã|—u%$ j’^G—�:ë8ÀA~Á!~Íî¥)"�2ÍYœ�Á ‹ûø1Opœçy޽,»{Kîá/_EÍXdŒ“åªýHf‰qQjH€0q€]�`–@£¦+9Ê>¾`@ÍÐ#¸¨1B]„줸Ȅ Ôœ]¬Áƒ,�æx4jN˜?ó0»À<ïÖ~ ôŽ_ýb³M@-p–„V³b/~êi¤™µ´okµ ¤²j\—ÃÅ>4°ŠfVÓF¸Æ`øbÛUPoä'r0GÖ¡_l9n $ˆ›É °xŽß2î¶½«NsP£\xñYÅn\f ®›“f›iµ ¤¥Ÿqm **ÖÍxq!yR$ͤ)ÂfÖ€° #Ä <š%WÖGÇÀ‡¥MŽ4)37ýªäéæwn–“â_<ª•XìÇ Žy«6MÆœ,…Rwµ‰vaºK:éUþtQ :3Ь³ØL¶ìµ¹z]Gz²;#y{1«XH/%G¶’b¼XÔ„ëYÁ†áçiºsZöÆŽ °‚: i%CΊ*ÿ`Å‹ ÍŒ,rÌ •á-yÖEƒÔ›)73Kš¼•r‹ÝŒ±ŠÝ„Ø—¾ó 6t$ÀÖ¶k ÌdÈS PÑ/¶ž4ÄÊV¼,r<ÆJþtùÄaÁÂ�©׳?ð=ñf¬RUÑ;аŠ]à¡‘ûy…¿2Çæuäv½zã1TŸQà5ÉyË9l±âÃ@7ã7ì¥À þÈžäEâtð<k zÕKZ¤khµ% d TKRó#¥ÕÞ(ÖðQ @˜Oià6Nósô‘àÆxƒ™Üét_ú¿©O"ñ…Å[3ríb_€Æ ¾‘ñå‹kÖxÑ­x©#eNšÌæ‡ôÓÃz¦ØM WIå>Š_Š÷Å'†Õ9Îq–ØX˜c¬VÝBôIw.˜CÙŠ]f<ø¬(êP´p7½t’ ^¶d/ÙìÐõ+óýsÑqÎ[,`aìã§¼ÍoÜã$ϸ‚ù%ÁõYñÒ·:;£ž•(ö&bø™L8ÿñÌÀlt\]P—¸bªIH+_Q¹È˜„4÷RñR¥Ÿ� M$ÙÂ$¿äm^c/—¬·q=}mvdzpzt$ù2ÀØ`±«Å›ô3)“BQôcò¸+èLJ¡Ñ:ê¯!ƃ¼ÊSæüœ(oÑÊlnzj"ŽÄ?&"&S”„›âœâwð¸mü‡6<¸y˜>zØÊ(iÚ8®®ML¾>6MGeX ‹ØŠ+÷™É5íÑα˺C m,2M?Ë~rõåáØp$šªQc,’£"„â ¿,÷ ld+Q3 Le榮G®EÆ#óÿ“1&3¡úÀîz/pýœÌÏÅâW>˜º2;,ÓL3IbÇy™¿Ü?ã홾0?ÊŒšaÎV\KtŸ±h¨†#Í]ë|ëø\0~¯OëÔâ ïd�Ÿ—€ŒǪ́åÚÿÈ¥8…5(l;����IEND®B`‚IMAGE 1546 ./arch/misc/grand_piano_white.x11 ‰PNG  ��� IHDR���@���@����`¹U��ÑIDATx^½ÙkŒ\e€ñß;g¶{kwi¶-¥-KkKÝ¥r©¡´©”£€ˆl@x‰&¨h „�~h4AI F4ˆx÷‹•HP!‹A ¥YÛ…îv«kvi3ÝÙÙ9g$“Išph³sYŸÎççyOÞsrrÞ°Ç "Y‘ÅÖ:Ãn/Xk½¼éõ²DQIYdVmZõT„ô›‡ ±.”ÜbÚc:ýÁ“˜¬?âíw h×Y™uÎu®3u8>eÏûµäh1ß=Ö8§2­fJÞÙöK –û˜ËõéV;7û£Óê èð^[¬¯KÏn²Dh$ ß'¬Q/½.ñ9+Eõ,u¥K5ÂR·ºHW½K¬i”uÔÐj‘sžžú‹¡qÞe¥Ž:¢n‹D§Íe.¶°æ�½™3uhòy}µ-¡E3è¶É ™š"Ö‡‹‚&Ñæ Kj ÀacšÇ{œZkÀ5VA“8Ër¡¶€qÍäT«uÕð%qÐ4ú¬¨-`»íöš°JTKÀf›=4•>löÄ<é)¯È7-ažOú²3 ÀÎ7è5ÍdµÍ–Ô²ÙMc•\%;ãoÂh¾»§,ÑDvúžgŒ˜œÉ'Ù¯Ñ\Îv§¯ÙâôĉC^‚&ÒætWÛênõ]ý.Ó%'�£žÓl‚v«|ÄW}Ö¾í[.±H”ÞˆZ\ì·åÖÄ,rÔÇÝåßé; .±;˜Uæês«õ¤`ܳÌrB°Ð]®pR:€1;g=€ ÛF=é�qÎnƒÙÇFË´o ÀaOÌ:}~â£æ¦Žü‚hEö‚9§¤rž“Ÿ½€ŒH‹6í:tžÓ‘ˆ‹†í"4]œ5§*î0Sr}‡{µM½*ž²Q“ˆdTGP›R’�]Ö8Ùð;l Êê'T„‘ŒPJŠÇÄ�œéÔtÀ”W ‡eõŠ£ªÊ%± °,ý—LÔã×%ÊfNT ‘ˆÓâ4±;Ý›M žp]˜Q@$[¹Ê•‰«êdæÝk,§€¿Ê‡'WÔ*ÊbU¨•ÐN {Òaݶ9? å´X‹H$¨®VY"©›æÃYiŠþâ}މUW,V(W®Ú‰Ž=Z”]é�¦ýÙ±HKE]+™++×'®ª)‹m³Á¹‚ñ]OPò¢NëÊDbE‰„zÅÕÇ´ÛàKÞí ÃÖ¡mþD[Ø"¢÷¹ÞœDG^sĈ! ís¯‡¼äzã.„[‹éÇ$umyN¹ŽÍUU›°_l»oÚé7ù…û=Š-®-Vå—†=©õ=öê‰ÃÌ´Ž­Øels›nô + xÓ}¶šÒ˜Ÿ(LĹâÚäõò×Ó€h›&­åj½|3Ú¼é;n¶É‹VÈá*{Ñy`b$?Qô¼ç=g$ßçnKÝ™M«OؤUŠ {ŽEø±/Zî?øÛõšr¿ ~‡õ˜Ø_8œ¶«2oä Zé$¿÷tÖñxÜ-™î8%ŽªòÞïS¾¯×¯\ªß?lðsóü [P+Œç‡½äe{rûR‚År¦´?`·!=!KFªâ£ÚÌ÷ŸñC²vèu›N˜‹0}¨8:5:ùFòO{í5”+JòŠCàÔ,ºÛ ¡;['º<hµ_ÚìÓ¾b¡–Zídó�SK#S#…7â0à`®Ðè©Û]º;Ä~*v»¢Çl2†­º´ Ãñ©¡ÉýÉ~ƒ¤Ä <c¬¼ø¤Ì„~a‹QkœŒÉ¡x°8˜Kì€!C¹RÃÇvi¢‡]¾|n‘ŠJ…ÒëFŒ8”›fv.a‡ ós;%&ãx$yµ´wúÕâ Q£Ær“�³päèâxGØY|©xÀ˜1‡SâY xUo>3õxô³ì©œi|ýÀÕ›-2'Ô¯w…gÕKã†â,b³Çÿ�Ví{«1����IEND®B`‚IMAGE 163 ./arch/inorganic/graphite.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���\IDATHKí» � DÕý—ÀˆW‚Ä„gì¸QÓ<†åàQ²àe`W6"Þ?oaé»CnŒK†Ûä†x*vˆ[@"6ˆ€4œ•+z Cròƒ÷¸“+EyÓ|Â_„|Qó7â����IEND®B`‚IMAGE 359 ./arch/ground/grass.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�Š��Í��¥�²""hàÿ×��ÿ�G+>è�� IDATÁÁmTADÑwGâ¯Û…`]ÿÚÍM–#uÈùÁ9õn”&ÞÎ[sÝMÞÑG~4”îÎöÙÌò�ï÷fðq»¥ˆNWlN³±ñõ¢Áø™fÆ#6Ö‹}Á\_¹@`hvï #ÍÓ¯`¿©ÌÓ.úVè ‡ñº}<b³ýäv$ó§9nã ½º¾³›¡¿1JWdžmÓì¦yô_P¤ö-͹»rÙŒÞÍ‘ `Æ ýh´éÏÛ ÐØàÙ®5+Mì[רçjÜÍEãHEÿþ H3ÈÓM׊_‡¦ß\ÊkmuÜ""¯µ¾ašÏ¼2ЦQLƒêqÒ_4x¼ºBÇ®Ðx]þ´¼2ÚcÐEÃ����IEND®B`‚IMAGE 2354 ./arch/ground/smooth/grass_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���0PLTEÒ™·�¥��Š��ÿ�ÿ×�²""hàÃÚÃЋ¥Íœœœ�Í�¼Ö.É���tRNS�@æØf��°IDATx^åšQ’ܸ †AÍ8y‹�®ÆOI5Ç·<À³'Í Ö9ÁÚ·Éñr‚Ôž ‚’}É‹#QdƒBSêtïÄ®²a—]Ÿ?þ€JîjÉ&Á–Ñ {!b/B²¼ G¯y—y?oç#À óužò óá³—ãÁ²y`"a!ËeÖe†/äí|¸qþ:¹a>{aËöž_˜:o¹Ì¶ÙÃòv>Ü8?ù!aÃ7̇Ž>x †ßÔ3óácËeöMöÁð…¼pÛüì¶7̇Y¼EÃêˆ=Y.³.{4|!oç#ü¶ù ÛÙÿrå|ð£ Kï¥còBËevñšo"_ÎÛù›óq/ŽEÞE¯Ç•ó¦üp_ŸDtd4ì…Iè“xyg8€V³xÍ;»¾ÂÕù–5»ùféEïb¿¶˜µÛ˜ÔöBžŽÜ™ Ðj¯y´ë+\oYóÊ�sv¿[úcq=�nær~”Mö¶ŽÔÓËŠã¯^˜™8,^2¯oÀÄ\æ˜ÍúÄ¡É|ã|hØJýŸiÿ»r~¾ÜäM±—ʳ¡e/ôÀ!yá…™Ê蛉©Ìˆ¬ë³�šÄµù°5?ùå1ãÀVî ý™Qç]©þðAQ“:yú(<1ûu~b.òOˆ¡õƒ®Og½pm>Ôç¿×ùP+—ûÿ´pÑšMšÚ3zSÈj…'Ïþ³gö£ðó*+Üsô 6ô<ÿÖ¦õÖÏ\›µb_̇Z n«óyN¤ù¨w,zSt<PP¬úÇG!/}2ñ†}êÿ3Äwmty}ôÚæ›æo,ødæŸú;‰œüêzÁ±<Xõý^zêù€öc*}B�¡(~ð.®O>nf®öGåk|ì¯Þöo“_]/Øbâ2TõÄì~|ã\ç%ú„�^–IÜÄõÉcò3×û‡ýùVý–ü"f®x ¨×bÿ/FŪ7Òçáž)ú‚³ ~”Çäóü™7úãîüº:õ'‰?0ý]òúêµÈ £bÕwä%>mlµDÑg.3?‹O¶™y«ÿîüŠ@ÐþÅo`oúg¯7àêu•y¿­ùGÿ£0á¹l½DŸ™uZ ÄċϫgÞì;óÏc§ýý$ÈE.–d¯!õZÜ™§@ų—þà‡sé¼DŸðŽÊiñyõÌÛýÇíùx&ž¡OýÙÏãša=ÿä!Wô¶ˆeªî{báŠlIÊ|ËT¶bæÅg=óvâÍùÏÕÙ§þÒ#�S(ç;>yp}ü“P›td"ź륺èÍVù_WÏYçKÞîïe{þ:BàÈËÜ/å ?•—÷´Ú|föŠu/Tÿ¢pã¸ÊÓ8–º£èCÉÃV¦¾3®Ãì±sŽúÔŸÑ¥|1ß©)¼©Q¼øA¹ê…™jò³—¼r©}ò+Þêß3Í} ïügÌ^o±>÷G˜9DÖtéc¶“·EDýÑ+×½PUz¡èQùä€6ùE&F€e½yâÜ¿ó'žeö˜}áÎ×÷fî8ÍŸüºÿDPÿ_abR®{ú©æ{‰ÍcÐxÃéÝŽ™”ÿú£(_ô–ÁMÚ™a‚Ù´'b>�Ú«æê”ë>¡oVš`]êÉŸ¯gG¡Ê^yßÿ³¶Ú‰Ñ�'÷sÞ^Ÿþ¥ù'V®ûPu÷D´Ê;*4]ò9ù‰“x_—Mÿ óŸàî”[Ô+W}¨»æ‰y•wÌ¥“ÏÌË—ñk0ØòòI^åªßpÍ(½èÛ~¡Ù'êuZÿN˜…¿W¿È•«~Ã9êi•Ÿx¥“ÏÌLâ…‰¾ƒ-ñÿf¯x•o„}ôCÄßÿí?ùc©Çäs s|k¡£ÿ ¶È|.®ñÍøÈ‹W®ùÌ>1{¡^˜¿ïŸ°åÒþzÆúþ>mÆiÉg–z^áB6æ`ÿúq'º¿_©¼¿^œ¨å·â.åa7?(\ÈÃÄ7^¿ÍÛýxåKûÿÕ<ìç•kyT¸!¯×·gåËçªûÿW󰟇ݼÂV~¸8ÿö뇞~wP®îÿlóê·ó°— [y¼4o¿~ˆûç[•÷÷ ¶yõÛyå_ÎólV“ò\˜?låÿó˜ØWò€àBÉõýwe›W¿‡<,ùöÂü7òæú¯y-sjûïñ®º¿¿›_û–áŠ:/(úíœo°Åx—ò~"Šýªó 6+î¯c&×Öö÷êùg¸µH÷ÿSÏ¿›l3ÔgcÊ¿Äy^Yn½¿>ñµù�7×Ch'h Óï‰+æ‹Ã6Äë¿÷À�n(ÆÁ—«§PnÌ;Ž›1 |ˆ„øÍÅðÅË û%Un Å Z¡…ïªÜÏZ‚0ã=Â÷UŽ˜Ÿr8qßY n–�Ú¸}üí–#<ƒ„¬ç¾í@~o…¬|ßn5ïg`4Âé�„ð ߀ƒGs+¾» ö´ðm–›Áá‰é-N³Çôx_ºÆ[BÁâVu ¼ù7wÐÒ3&n‡ºäÿY­WH'V¯/û¼ÂLÿWôátË éù¯VÔkç×+/´Çmd[îvŠÈx‡Æë—Û²ÿïúï[äxXdG†ä¾ú˦—fÃ-NLÜP�-âÊy\1²õ©ßiÿ_çÏŒàh"h/Å@à5kÞßag}Þ¯Gв[ϳ'\sBÃŽl¿níÉ=3ÁkÖŸÌ~{·Ï§ýü÷ 51žG0üÞz>Nð2Ø~º’‡û•opDðŠÕØývÃcf{^€Ìù4LŒ»Œ‘›Ø¿ÌЮX}º¿îwþ(¼ÃÙžx­¿X–Úyçë-ƒåfbxÒýÿ†š÷BìùËø¿x‡s?ep†¡ÆðšeöÛeãÍù�´ç,—Xû]ÃÍÄð:¥ûýײ=oPe¼ÄÚï†æ‘ÿ ¨¶ ¿(y����IEND®B`‚IMAGE 2842 ./arch/ground/new/grass_br_gr.111 ‰PNG  ��� IHDR��� ��� ���üí£�� áIDATÁWb�àéÃiìC.;¹½WK«bI–e¹`\bÃA OyËK~ˆHäá.ÉÁçΒ쨬%Y+i¹ËÎÝe/3œáôžïÿîŸæ¬µñÕúÕ V2Ý Ã¶`®ýêEn{Ç÷Sµ=Ëèë%ˆg;,�|ßé̱ã>äéî5xóOní ƒ„­=ÈÈÍ™ìA¸…HÞNG{’޲|ý~Ð8ï/šÆI¾tHÞ©0&"­w{Îù WĉœG"Üçp(Ìs59žRåe-[”ŸIBœgmä”bw3¡´³°k`>R…º{©)A|ëóP„Œiò°EÀ,@1XJ3u˜1ZâÇ©æ¶åÙÇdk3Œ.ø(D‘"wÈH>ðâ|\À‚~5Qöçï€8Ѹx™2SØ)ö%$-íe¦E•WX, ߸ŸW JS¨°2•_;ç¼#]ï@àPÔé†7GG2à’Ùö÷HùSIyŒ³åX½ûšÍ$°¡×‹zÖÉòñäD`äy>Z“ g;¤ý ‡8à +A×Í>†Ñ£^f¬HΠ1Q¼¸ôVdÆ}Šð©x2ËÙÁ�‘ r@dRÉ!7]‹1®OÃÏiñ»ÏAì)kµ¸t;í^Ó€9!.§4ºt+Ço³GPopùg¸ë°–ò‘zËö…¹†8ÈÁÁ3˜6Í(‘åÛâ N#ÛœNËÔL|Ù×ìÜL?£Ñ 0åζZßêÊâ3gšeC \½¾¥SÀjň0mÖ;>} ÌÏ»ùƒÛËÕ‹‡ü< ¼ÈŒ#úŒñcÖV)kÓV¤èœù¤VMëˆ*A¢” v¿³TKL2Y4§öþfÔJ”á¿ÿ0>LTÿBØl3 ¢á›1ÞX‘¬ ¤àL­R‚¦™q$Ü@0'¯_­UêÔü*Í ÄÌkÒŠ¶|¼{ºkHDÈr–AiÓvòµ?ujŽîi.„3hœ/èÒ¶8µ/e�7«üÔë›×¾Ò\´;2 ðµô~Qï°‘¥WøFõš·Ô|SWqÊó}|B²sª¤<λ[Xqä?Kó…f¯8ÔFèÁÿøÔñ"eT›á7Né*{b<ÄÐ^¢Ù>#J:ãüçóçŠâht׊av+v¨oÓDcMÄ„«S½®¨³Õˆv§P)Nvâª6ㆉ®+AøîöetTÔX ÒI–:ˆVü7¶Ïûo/¬;…Tc¡ Ç©q'ÉünZY¯Ü;ÙØ¥ùóɬþ”øÓRqV}äøB-Øò³Ô-}Èö/FÔÌõÁ ß½§tù@Xì„L3x–­éï¦é�mç#U‘Þ«À£+áÄåœl²­ýòÖcàù<´÷,òÈê{"“*fÏá‰K‘`—.tqŸ+ëƒUÇ{‚9Èܱe¨³`25ˆ€ßXä¾þ5T®Ëظ`ˆõÓ:¾8ßzµKï¿ ÿµïf'†cȯþÙ/ÒÍË|F?Þƒ•0Ý<“è€Qnžýˆ)ºÌ3å“Â÷ĨÐ~ê-ü·´£Ÿ¹ù­¥i‰HÄjzŸD›roáÿMÈ}ýeïø ¾@euČެZâ˾>Âsb{mµ?žÐàåþw.š€î'ud~s¥5,E¯Àw îÄT´Ðt®Í÷¢H¦"ª™ ¡¬êÛ1éð�„g ¤NX7Çü#0P˜œ¼†ðe'{=˜¯ÎÕ´™€û6à 륅/\ˆåÃýÆóÏ"×oÛ12V…uÝŒ9¦¡!J ¤sZ =+©îA°»ˆm ý×ÁÄ'3?ã©xwôŽŠh„äGýÉ)Ce ÁÜ‹¶MLü$„×F¸8·øûõzXŒÅ’ûpþ|Ï{)òßPª ¤ÜA;™Üäèú¢k=µì'â±OÒS$!,†¿€âmÍöŽÚoX?2ÿAû³R´Rn�-y¸»:8[¬z1).^+.¿‚ßÛ´‰¥ ©«�8~Nx"L,2± X–õ9þ‰ztØU6„„¶-Jhw“¹z|טoÃŒë¨= ŠÞjèÚÆfýb4vüª2·Iwxù…Ò+ëºhZèôgˆ[LëÎáiíÙ.ÎþKC>n_}²RѲK׫ýÓîÆXÃÐÂgɆøO)›  ñCnýF¨bê}Ч[]DâæW2ÐØAzã2<w'mèïöï€Üa¡™2 ¸àÌ<=¶GjÏ@à[×Â|@â²ʹM�Bsß©Oø>‹ÍWéI~(üN¯t¿¦êAÉ9Åê¦;M Gðæ…"‡}Ôdß&ÌB´&ÂÈÛ ûa·~,t£}õ�†^ûÐRêÆ %Œgú‚êÚó¥. ‚ïŠìÙ‹ëktñ�mÝ^á02 øÌü‚$|ã“{¼ Y$çir<cT»ÁIgŒÕƒµg°„pcH›SͤT6ò £¯…ë°ÑZdrW ß>nì¿Sß[¿öKà ôîøÐß¿X%&øòÇu ÃSèentü9i2ìºi͹!cZ¡Ïv΀ÀÛ`y3ÇÑÇ©·J,¾Ø›Wቌ  ÎN—þó ”ÊÚï/.ŧßñ1«þ—å¿§´¶ÑÔÐÙ78|ãÊ– … `úQpYÀ"/õþÄGšõ ÑGø!“¤”bc,wf™øÓñY¨¾è?븥q*øÒz¡úRd„¨ØÜè°iÛ') ›®¦I]o´áo¾Lò¦åYí!´$ŠÐŽ VÚ#åÃ{½ºá³I ~:ø ÉY âÌ`Í#‘”¡•ŽÂûyCÅá‚Y¦£M[Y9ig¹,˜z÷;ÁóØ”|'.RÑh8N -Õ‡2Kà¸Ü«9pCsœÐBt¬Šˆ £Eˆ­#nhfŸÜ2K²FG) ‚»ƒCÁ‡£gˆ1Û�ú®¸[ ¬®üÅßÌš<iªÆ|“µÎÚÀö43]ð2¶âËŸŸ×‘*|:7ÒÖ&ÈÐ`Q0ð2‰* ¤…ʳ…¯¼éé´ÆA BõŸß úÏå»ÞDèKZ{· ~ÝËvö>HZ‘×S_‰Á‡aýÁüåi=¥ócE jHwj Ÿ ×'×ÊÉî4Y+þoÊ.8-Ýݘ¬Zj¦š´7TàO›ºÄ?áØ_Íí5k ü·/΋—Ñ•¡[‰5ËW½HƒïZY–…èñ¥a¡ïœêÖÊ_ªèÑØù¿ÅéœO üBMƒ“›`ÊÄ$\Ä=ÁßtNqkc:}b)_"T?ë ”—¤áµûøòÞc臠7GêsÏ÷Ú Åãs$ÿÌé³2™˜ñmÔŽIâ¿+ñ+¡lÓw(N)`Ó¯â&> 5]7ªÀòuÈÒpÉ’‰ÔX @ß[ðºm*ôTÁ³_A±MŒÔë~è'ø‡3[Aç_ñ L[û/iž´ÔHÝêw^¹¹Ú›U|Kçãª×O?n•ì'V³°psÐ31±> §n.ÆÏ#.*蹨NNd×Gsðþo‘o‹íðkÿáëø<‚–tö3ÌÏçNžG-A‡AÁBr(ˆ- |èCS‘@¡´õ-ÖÛNïwO¢‰í¤÷œæè÷ƒ¼–Å£é(#˜Ð¥Ë\±ç…þ…Þeâ7åp����IEND®B`‚IMAGE 2713 ./arch/ground/new/grassbrown.111 ‰PNG  ��� IHDR��� ��� ���üí£�� `IDATxÚ-–ùWSwÆß,,"‰ V*‚¶u©¨µµÕÚj=imµuÚž¡g¬ŽS bQ;²ïÉMr“Ü$÷’}‚ÕR;­3mgæ×ùcæ9sæœ~!ù.Ï÷}>ÏCŽQ±ài]±¼œ¶g>¼š§ÍüïÒî[écº>edª¾ÀÒr‘Ø©A-&¥)+=*c’x'©¸É3KAb½û—9rNn+EO:G¥ÞQY)¢Ö÷Ö/™ÄÒQÜ@Y·*e¨ö)yž*®Ú¤›óRaR]²Ö¥æॠ½,ªêhÕG û[Yw«QDŽÛ W8––Ø“‹ãêõÊžG¹£YKÁO¼®:m©jš kaE¬‹Õ±vÂ~Ø5jT ö´ Þðmü¿Äï± ÖŠ¬»‰™¯KêvEOc?슽qœ§Á™x…4ʲoA he T‚VP ºeU¹%­U¸/n»Cè�5 É@²ìoöÔçœÅ Ôƒ†PzBUÿæ%3eLU”°R2¢véºXç‡Bˆ }MnM{¹$)Ó Ï~Î¥vã5Ãת"Ó5©ÿ¾%uê.:îÉŸ®xx_Uò·¬úÄËye|‘߉þ?ψŸU$ïÍ Q½ˆØ9þ¦å»`UhžÂÖË+޽E÷vÞT²‘eD’wRÌyÔ3ÔXrSDG³Äz>go<ZþH°H¢óôügZNv I…=Sμ¦é=lÿ¶qƒmˆ.e@¹án£öë'}’Ÿb(c§á¿ì‡¨ÀkæôÒœâûÙJ|S™—àDÁ9‘k¤Æ7]5¥‘G=W#Aòù'Û½ƒêˆÿÈÊ^Ê9(†¶óÞWRjZš¯ÇïóŽ“ùô±ÅoêY1J1Dzþ.S¯Ê<,ÁkûgH˜Ux4†4ÛÊÖú_òÄÛ)Œ }û’yDʳ×=ƒª„£eÅG©XOܲ}œ}B Æf*ûUœ‰R6Ê¥Ž:GO=*Kãïˆ Ø(÷O Õ¹¦÷¼”_úÊe§øôÎwnîθNEÍ;26²Ô÷}UËMlœï{Ç¥¦þÆg+Ûµ"=7u>Ž’”ó¶„ýU¼ïê@¯,<h׋S¸„_51"Oj¥y9&ê³Ä›H¿PÃÏgÓ„·™:‘²KÃÓ»Ël‡ý¾ /äs¾á–=Mž_ S>F®‡²ÈH3Ř+¸uó7Ó3Ê}SâõbŸåÄ9Øñ¾–·UñZöÑB߬«7ˆÊÙÖØÝiæp%WžP,Þ©+ºNaXá¬óëý"ë¤B #î:’·òÕÑJ®Õ;E?%ÅnMgDOùÅFßh]9NÙD;ß5«i+Ý™È}tÿÛÊy!Bîk%ÌÉâ±c¸ O¸ÂˆÛ¡¸yo%@^ý+µNÇÏ¥Œíp`£ßp(ª“TÂu…ôÛ¶aÑ|Ÿ<ªiùùÙk+¾Ž-a¯S»/0.ëøòôÖÚÇ3.Ëe»ác—¶3n¥î¯Ï/qŸA‡éý»=-~‡kªªêrŽ‘{‚ öýy–¨äkLr78ç9^/ui$n]gÚ"®¤):S—˜{™”¬–¨{àÍ N›hZ÷‹Yß% I)#zøçæ©~â¦*e< ™¤Ò¨iuš?1Œîä TJÝÊÚä©è rϨœƒªà¬È1Jñ=ñËÂ3Uéð•°¦©àOÞh-(-“Ä®á¤ëÌ+ìŒd±¿!Í}ºnŽ›ê1š?þHykž‡wwöúVn'-ä .牘ñjÁ£ö×­È3!6QI8[ɼm¾Ûêü¶)ìäcćþ4·P 3'ÌäÅÇš ý÷åç¡÷žGÛ•­yj0ù„Ôc¹¶¿çøÌ-ETÛ.piÙÒ6?¶«è}3h¢²[|úÚqÏ=UÌØb}&ç}yÀ¥¨x%ž™Kឨã?£ø~‰z?R\ûë«qÏNOxðˆuŸÅLyáæØHÇŸY *IH~}.ÞJ¹ÇÄÅÛAïï0ڙņLä‹€XpÎ 73qIÞß×5Þ§µêåBýJ¤6m%N£^e¤k©ž˜ïl ®Ž¾,0Ò ¾V°mjkýEÁŒ6ðþëϳ2˜‘Š>©cz¿{ª>n»�êz& ;Nãø¾÷[¡&<Òœ ¼‘t¶0ÚZ eÑEX«cìô¯6èÇ%[k ¶Æ?ÒXÉ^®Ä«p2œ§¤Àâã(­¬xÕÙ9uÌ$ÍÙ%ë'¸æŒò û‚Í á|ÇÍw”e®Ê@¨­¶ÂÕI}[¹šf†_ÇSA[( iÙ#Ž[�aÒ_pax3â¬Ep7à}ðJx«l¨)g{lWCs4wSUðÉåDx[¼0Þ¯=ò…2;×òÛ¯JŸ¬úKK³ÊJ…0˜L EŒg9Ó[P†™¦l¦v¡_ñ”“à€˜0̦ ŸÐ¤l|p_!x@oY R1¹ Ó‰Ťb^¹¢†|c5Å鴈ί=\[fó)Ǭ<gÁ_p¼ÇÁwpŸYCœøÿ}à8>‚›à)8ëÉãâ6úaí›÷n„ïà>xN„áJx³>ó^óX?%Pl�!À ÐÌ�9ÀÁNéÅú ¾¾‡ûÁ��<�":°–JñÒDKÒä�?@°DW@—$ ¸)ÚXê&p tã@:ðÔû@ÀC—2^BŽƒ\à(–hà)9…YÚà>í>°AC0d5·›¬÷# Dæaq™Ù»É½d0I†Wž¤¥þi±ç¡¤oA]´‚b�ÉL¡ÖͤL÷@²¿JƒÕ 6¸½®2´ÆŠ£Sí!×þñóßr΃ö`>m®·múåÝ× †šç‰5¼è¼«^öËH ä†ñHDeK£©‹ëj‹ï¥m"ä Ò™{†Lø›_èx\ü£¶¯fÙÝa7\ER!¯ZÄY)¤í|Rz=a_B÷0óyÊEH;d’é™”?}D÷gåìû>ÃnÁÒ€¤D^ÂŒÈιén~z§op;îañÆ]Y/!k‘¸È]ʘ¥Ð½”;S eðmÆ^f‘×Hmdw>W;~»¹â­rŒˆ¶wŸåkBæƒÈz$~X÷ÿô_ìUÞý¤Qp]Š-P ï£- 3 9úדü—Ž!YÔV‹:•Òª¿ ‰ó‘shèhÌ •Õ%óþc×_]Ž3© C„¶‚΂æ‚þRÉRÔuÖÔ¿Ã3%gÆÚ&zÛŠ1BßAëA÷!ßT[)ùâ…±ÁÌ�j¡¡3¡9!=C»Go×ì:ßÉ›äc{Ú. é%è[h]è^h`Ú¾ªõЋÞûM¸·áŽÌ9AËïñ*èmho”a·¿xù D÷ij£–¶çÏ «Gì„Ö‡¦…ÈU ¶z΂1Ý2´Úôâ†ÐÑÑqé{·¶E™ní ýuœNÊG» ‘ZtN4OôÏÿž-ÚÖ”/‰����IEND®B`‚IMAGE 522 ./arch/ground/new/grassdark.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���'PLTE���1��c��Ì��ÿ�-ŠVc2cDŸQ,Í…?ÒiÙ¤KÌÄ–��žIDATx^@±NÛP½ßPä.‚{©¦Æº%I³Ulx÷äıñBQ?�ГHÄDxÊÒ‰(ªŠ:y¨Ô Uý�ä¡|U%H ŒxŸö‡ øÆ1ÞÎ÷€ á9I¿iÕÏgo|á§#И�ÒºUÓ¨oµñLp¢Œ$ÚWå1Ÿ(fÌõãÓIl{…Ùºtk8§ÙqFk„ÑÍ›è+%VìKIõÌìÙ“Q¾Ÿ–Ö›þ Kþ�M.r#w8ê@Rkññ¼íu£ׯ1Ú,ŸïŸW݇ [‰ª£fX@Ã% ¢"TNÖÔò¶–ËVl'˜·WΩ\ÈÉu”^óXkI{/–íª~c3ÒøOXÂ#‰fZ€¢CûÂ#î0¥•D+nU6Ú×S£ß-&=‰Ø›YÒ³º-V©Ì•¸ 4vE¤ÁK)5…RÈr‘ƒŽÜ²D-|V«° •9odøMëù/d1Ͳö%qV¯Ê~š!–I*»»AVÐ,fdN±†»1‡óûϾ™RŠ]hÙçŠó ¹ýÃ>¬ž1käê����IEND®B`‚IMAGE 2927 ./arch/ground/smooth/grassdark_S.111 ‰PNG  ��� IHDR������@���[a?��°PLTEÒ™·>r6V»'!€@6qJ}2!š@I{K"€@ »tŸ-!s@^–E-ŠV6—J^|E7qJJ{J/‰/>%OuO/]2:xE$A‡`kgD+k‘4e7«+$G>©%%G%€B†_qzE/b/\m6}JI™:ƒ‡L¡2@q7}IJ˜: zXH„+bw?Kx2cx?z|Aj+UˆPA±@‹:tGj+”ŒLHg4 ¡"t@!§@+µ5pe.s‘,v++¨5>Œ6$TuJ™:lR/„2t‚=I:%r$ru‚=R‰@i†Z1>+I¦:W‡)1S J¦:i4zn:3‚ f‹0až=$nZ~+Cg<�p� ‡\d>Wƒ,fmA‘w"·+$eT '$™ º `w§%A—VH l0‰/YB$¦>h%Xf!L†2K’2?¯>\EC†9]J/•/$`% z"§@"š@+ ‡«+„+J{K%™D†9B± º%`"s@B—7—J4‚ l,¨5dÕ\���tRNS�@æØf�� mIDATxÚíéG†10²%Û€pdgÉb@‚EÀ"‡ÈÆÁ†Y & ››˜8æ¾È1G8üËìô^ÓSÓSÕ=?­u=ßJo×VÕèã[ÓƒFçV¶~gëdvý¶¦ŸùÉõ¼DœÇÃZO‰ó#h?ÿ›¢~p>íçÿÏ›ÿýßîC4²íÞjçþÖÂiMï¾Ú]¸œÇÆ„ç=-¶Ît~*Äדñ¿.¼±‹Fï÷ù?,gÝÞ5ýê+Ù½×ccBÈóŠž[ç}þ¦úþyTÎSA¯§Çÿ8qïŸÿB£»vöÚæ¯óÛÕ•¾¦¿¼ÿîrlLy^ÑÓbëüÀL篞Ç'¾žŒÿ¶½û÷7иô‹_fùæ¯V;×_Ôô¼ûR~³9Þ:!d¾¢§ÅæùÝX/y~|"ëÉøq~~Öéþèâ…þÏïöw4ýô yÖ‹ Ps¡§Åæù!e~’çÿ<¥üÒó Ï ¤ÍOöÃ,åßýÞïû;šþ­íîãñÓB'@]>BO‹íó“0?´¨ïŸÇ£œ_î/4/"ççìí¥¹;ëó›‹ù74=ß\ýæ¥È˜�uç)³ˆÐ“bûü$Ì_§Ìoâh¬ïÿ~ÿ=4/SnWò5¾ÖëdùÚÎZçVXgÄÒW²¯NÏùù%À‹îŨ9GYOAè3ž4Ý:•þ)è?8?>ósþ‹ ÕÞÜÍ9:'óÏOÏoSPŠó¬Ð½˜5çñ¸TO‰qTtëü;?r~FôPýS¦¾ÿðüHŒó³y}ë³[ÏeŸé~£ó2?{æÙ<ïù1AäyJ b ÐB—çe̘²n¢æ§n~ìÈþ)Sßÿð<P$ÆùÙ˜ûäÕký+ݧ°s­.ã±Þ¥ËŸXôbÂÈó”qý:ý+ Î+ù#Ý:?fŠóõócæ Ä÷_Š+óƒÄ8?ç³Õþòò“ý¡ å/eóÙÙõ‹å˜&Äyʸ~ Ç“ò|5Æg¬Ïp~4d Ï/ûÄBå×>ß¿Zæç̇:k+¯  åwWÏ-žûÀ{¥˜FÄyʸ~ ÅyzÁzøŒu´~÷*_y^Zÿ•ù‘ççñλŸè¾ç´ü¥w},_>w~ÓLóy×O¡3epžóÁzxLô¨þ[ÍO ¢ÿ"¦ÄX·å#1ÎÏÉ…Å…S§Ï¼}-ÿ-'Þú¶<›Ǩdîü4¿^õŸÏšêMt{ÿî|‹ù‰@ôïb p(ýWò‘ˆ|ÍïF!Î/Ç@Å¿®ßõ ÖÿÆg¢ÇöŸ>¿ñ<P®÷ TŸ‚[ ôãtÛ>}�Õ/8õ£1Qñ¯©ðÓ·¡ÎÿÆGúñv¿-ƒß'èçãØè¡íˆ|$"_ó»Q±ï `¢â_ãÓäç×øßøLô¤þ—“æGç5€ Ÿ8å¬q~C¿2_÷»Q°ûåØpçƒõýtWÏä§'ôïâ„ù1öó)pqxþÚ~qç3È—ó«~7 v¿î|¸¾ïg+~yPOèßÅ)óÄé8šý|`3Ò#ö˜0xø}�Ì~9FÜùpý¨}‚°׿ì'\_æSÏHo®6??˜_&y@G÷Ë1âû篋úÍ~vÕëŒ~ÿHoØgùHŒû À$¦ÑÏä—qqô>@N·"ýþZɹŸ‡§SPþýøý<J:â<¬û À$Fúùø©ã~Ç¿‡‚çgôÃÍH?¿Ö/·æ‡t¿?¶ý{~»øÁ(Æ:Ltèdx1P÷{”bvµ°‹ôÃíTýðÝiýUN·î¨¿?Œ1ï$æ§ÇÀ(†9<Òy d>0õçG‚Ÿ­ç?KU?üÏ¢¾Ó­~º¶opb¥€š| æ< ºŸmÏ'‚ZŸ&?[ìhûG5nígÛó‰Cßhðóå>�*úŸªçJÌìüpâ~øñÑüp?_óÛjÜÖÏÞ»|é‡GøùÒO§BU?ªq[?{ïò…^¯[ó© üö#§ÞÐÞÏõ㉤y€¸}� m}Aì>íž¿^_÷³ãè6ûù±~<‘È}€ôúÚ×g¨ÏöùK=ÊÏG!åý~{}hSH¯`fõÅóK~þõzk?Ûþ~½n¯O«ú^}~éü2?n�øÙö÷ûñ‰öã¡M}H® e~ÚÎÿ"³{þÒ'ž›Ÿ¯ òëCr}Œ¨÷´›§]}|ìû��îýòh¤í÷~~Ëú¤ÖGAßGøéПO©Ÿ¾!ö:&ÖçI Ñ_ûûùíëS‹Z?€/úK¹ŸA§~¿�ÇÒ\¹?l쬑@ÉFp óûù(¨õ™=Ò—XægܿۇP ï#Ï›k<ÏžÓø~úPßóúÌçÇCα¿`Oæ_è0¬W~þƒ²“£~�·ß1þ3!ò‡ÿÀí#Ì–ñ} Îÿç9pñâÿQôó çGzä>B{žÚˆÐûÀtã*¸~zshñï3pûY9æ˜ÃŒ·¿áb ÆYépÌa¦ g(3Þ‡X¦à‰.ÇDÌ÷œbà÷ËýÈ™NqÌ@ú÷Ó÷ÿQ¸¿ο³Å1W»Œ1ìGœFâ’6Š|Ž9x¼ãPÔîOÜ㘣Â*HrʼÌ1ˆëŒÉr$î}ÿÒÿ¹fÿ�^ò2s;/ÌlÄ>M\$ž»ýp|ñ‚Òýnã.†ßðö8hH?0Îïfèû9dÿÞûüåû¼}Ò¼Œ¨Û(}¿`³ÏQüjMÏ…ž¸ï ûõJþÜ-ßùóá} ?_üÞT/ÍKÁ侂²îå»ßg3ò³Óô5%ß{_ž‰_/qºíþƒ&Î--_ù^| t?žî3î7û:ûå>M¿iÍ?ÿq¿¼ßÀvÿA³v]Ü óÃzÊ÷:ýKìW”÷×[ê5ïßSÏHOþž‚þûòû .VúkÖ3hÒ‡óúçØŸè÷ù7ëW´ü‰þ´¸?î{ Ê÷Òôº÷ùñI×ÝïNÿûåýuU§Y}O@bÖ—ôï%(:jßç§Œ¦£é õ³OQÞ_Wu]¾/¯Þo éçÒó¥¯}/`Eѱéù(ûû}øÖ|õ~�õ~M?ÛVõ§ëïÏÇéï{?û ùþþÞê'æµû ìzF{]ö¿W:ðŽÁüïü?Å:8õQ–°����IEND®B`‚IMAGE 435 ./arch/ground/new/grassmedium.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�Ì��ÿ�-ŠVcDŸQ,Í…?ÒiÙ¤·5TÛ��SIDATx^€-oÛP…Ÿ{šx†ï.ˆÏ}•º†…QÁ4LƒŽµUƒSÑ ãì#?{Âiih9÷ÌÑjÖµÆÞÛç@4î•åØù;<òÛ¢dË ÚP9òO;J*®ð‘TE>©ü;$ßiY_–ær3Ö$kÊ«Xï¸ =3³aM7Û{›‰”`In>B6b´à£+<4夕­Æ×«‹µ[$·…a7 ArßÛ¥(ÉKe÷PÂÛÔ¿0c©·óÌ"ôÒ¸ÚJaÊÃY×ÒÆ–­–/r˜¶N·žv§r¬…’5ë3¯°/Î(ÒyÝ„ …ͯðF¦9ù:Æ0ghYyúA’ål«ŠpgqbàÁeO«°“é*©*G¬µPn:’=ŒîÒuÖWšV>A_e÷+´\}†h!]ï$ež/3érÇ]ØbGÛ”[ –îÿÌI?ôf·\A����IEND®B`‚IMAGE 537 ./arch/ground/grasspond.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��€�Š��d��Í��¥��ÿ���¼ÿ×�²""��ÿhà�O�ÿ�‹‹�Ì��°��É��Œ��¡��—��z����s�ŒhÅó��IDATxÚU’ rä0D¡A²=“ÉwwïÔå e*Á2¦è¦±,r[¤wì+"ÆYÄÊŒüNŸðšO`Tôò£œ‡/Ze¬\žÍ*N ªÂ£’‘‡‡Qæñy«ÄÐîH=/-ÀÿDFAõŒ(a ‡áÿ†×u• €TþRƟГâkΫÌîCüÐ@Ü|@É8¢ð—9yí.§¨ = ̧™B"ýœƒòœó1mÖzÀX“³š@¿ÑZ®y 0Äh€7Ò íBâc½ty®³è™ ‡ðÃÌ” ÂÆ­j+k¸^iolG·Æ& ìû@W{³Ö)8£[(F2Å_fJ CÈ@ÁZ¼‰æÉ&š0œ9ïA>¤б‰zÌ~és\#P‘´ðÝ,E9„ÄÄí,[溻K”îQ#'· —º÷I²zÔ:•*P…­bîð/.,SP¼pŒ„Ke®ŸSÂþ ìVï!tzÓø‚ÜÌ¿Þ{cøÌ–fPh’gu²Õ;ÕÇýÄ!tœ—ûÄsØ ²²����IEND®B`‚IMAGE 138 ./arch/connect/Gates/grate_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa���@@@¿¿¿u!×���tRNS�@æØf���#IDATxœc`ƒ¸¹À!D È!†.ppA�ª9�È ŸÆQva����IEND®B`‚IMAGE 146 ./arch/connect/Gates/grate_1.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���.IDATxœc` 0+ XÀDÀFÆp1ÂQ !Æ@5w�öZ æÒþv����IEND®B`‚IMAGE 153 ./arch/connect/Gates/grate_1.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���5IDATxœc`Ô¬H Œ 8"A`V@@°€‰ @Œ0†C¨Æp0F�ªù�œ' Öc“Ó?����IEND®B`‚IMAGE 156 ./arch/connect/Gates/grate_1.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���8IDATxœc`h€ ‚G$Ì `RAˆÆpH¤&„0†Cˆ€1P-0�df{˜ô=s����IEND®B`‚IMAGE 156 ./arch/connect/Gates/grate_1.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���8IDATxœc`^€ ‚G$Ì `RAˆÆpH?#La ‡c Zx�¦ã ïüŠ����IEND®B`‚IMAGE 156 ./arch/connect/Gates/grate_1.116 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���8IDAT(Sc`D€ ‚G$Ì `RAˆÆp8¤Œ0!l„1BŒ€Z��c­Åí Æ ����IEND®B`‚IMAGE 159 ./arch/connect/Gates/grate_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���;IDATxÚíŽ1 �0ÄÔ³ÿÿrÇ£r ݤ45Ä^cI BJÒ•Wˆê�ªÿ`ÚÒ!ìýÄF±ádÔŸÑL¡����IEND®B`‚IMAGE 156 ./arch/connect/Gates/grate_1.118 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���8IDAT(Sc` `E‚``„ÁÀ ‚�³‚X„T`P�b„1Ž4#La ‡c` ��šµ"jmy����IEND®B`‚IMAGE 115 ./arch/connect/Gates/grate_2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���@@@O&Ë���tRNS�@æØf���IDATxœc` +ÐÂÍЃ1Ô“�.M”&O¤����IEND®B`‚IMAGE 118 ./arch/connect/Gates/grate_2.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���@@@O&Ë���tRNS�@æØf���IDATxœc` +Ђ1´a ]CmPª�.LI6â[����IEND®B`‚IMAGE 130 ./arch/connect/Gates/grate_2.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���@@@O&Ë���tRNS�@æØf���$IDATxœc` +І14a ½(Cí�LÍÔÀjx܃ª�1ªÉ. ú›����IEND®B`‚IMAGE 162 ./arch/connect/Gates/grate_2.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa���@@@}3���tRNS�@æØf���AIDAT(Ïc`bÀÁ�•Ï,ì€Ê7a@04DÓá„f³ð@™îat3˜áŒa†�º èf  8£ 9�}kÔ/–"����IEND®B`‚IMAGE 170 ./arch/connect/Gates/grate_2.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���IIDATxÚíÒ± À@Á•¥þkv}`ð¦b‚ãïP0-ËÑP;;O5ØêÇÝ`}ÆÀ2° \7° ûº††eàÐ Á;Èú�X����IEND®B`‚IMAGE 186 ./arch/connect/Gates/grate_2.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���YIDATxÚÍÒA À@ BQ½ÿ™{‚úgSh¶yè‡Seîã j(ð.8Ûƒ¡`ˆ§!é6$Þ†ôlC|iD}nøÛ ašŠÿ ƒ†x9äá!ˆ‹œ£����IEND®B`‚IMAGE 189 ./arch/connect/Gates/grate_2.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���\IDATxÚµÒÁ Ñqýý×È}Kbò@ù}޲Òô¤à"ÙÏ64b814b814ÓÐÞ3 m¶¡×¯Á)fàïÌ€`ð)Å€@ ~èm�1€˜yyÂt »-¡¼ ����IEND®B`‚IMAGE 199 ./arch/connect/Gates/grate_2.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���fIDATxÚ­Ó1À A;öÿßœ†.ÂÛähW§}¦ŠÖÄé ªx/x¶!CÁƒ¡`ˆÁÐgâiHz ×ÀçÜ‚æ@ðƒAdà[Ø ø-€A`¶Aü#À�!hvpyJ/ÿÌãÔWnÞ����IEND®B`‚IMAGE 138 ./arch/connect/Gates/gratedoor1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���2IDAT8c` `Ä —4!¨©€ßš;Ÿ )xŠøh*YWÁP��SþaË­œ!����IEND®B`‚IMAGE 130 ./arch/connect/Gates/gratedoor2.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���*IDATxœc``¨c`€ÿ`#ˆ`üpžÚÄTâˆ8�"à�¨$"w@ÑŸ����IEND®B`‚IMAGE 241 ./arch/misc/gravestone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���¿¿¿5Ø­’���tRNS�@æØf���‡IDATxÚÅÑ „0Ý^ÿÿ/¥4tWðánP|˜!¬Ç_à"Ó}ÁLϳ #à y×,`‹°x÷-¤Ó@¾±� Wµ”ÏüØ üÈÏéE¿æº!¸÷Àôl`ê«àa P � ˆAù ñòó¤,<¨½à–ãw|Iß m ýÀÔ����IEND®B`‚IMAGE 218 ./arch/misc/gravestone2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���¿¿¿¡ÜÁ”���tRNS�@æØf���yIDATxÚ­A À0×ÿ¿¹ZM=´.$tn2Ã2¶A@„V˜Gëæ?,|ßx=@RÅUþ 0è~¤_T0 <ʳü`d ôŸ4 â=À¤0Θ‡!ì‰nËŸåƒô$Ú�z  Ìó ÿsZù½�©Ý����IEND®B`‚IMAGE 350 ./arch/floor/inlayed/gray-white-h-marble.111 ‰PNG  ��� IHDR��� ��� ����V%(��%IDAT8O}ÒK‘à0 P#C!hMÄHö&*Ñs°d';UãK”êÅ¿áÀÍ 0³×³Š1ñ'Ðà "̤á@¸}@´0IÃcç¶û˜¡‹ˆµÁ~5¿�ˆ�@’·cAô I®˜³ �“$å8³¾ :—òNaðO` óÙ₸¹IzJ\ðj°›ç½ƒµ=?òØBäð×?~óŸC@Ü<I.i˜Møl€w¾RÒ0³é§ys¦ ˜µàìbƒêÏ^£Àôi¦Üÿ˜³ò=þà'?¢@€§ýW¨ûµ(ó¹Ý†ÍÎ×ÒS—àÉ\ îwýO¯ k§r�qó$Ÿ}¦;{éÉSö}Ñ0ËUŸe®:!IZ«€þ’”-È%I?©T ô©oðÀ����IEND®B`‚IMAGE 353 ./arch/floor/inlayed/gray-white-h-marble.112 ‰PNG  ��� IHDR��� ��� ����V%(��(IDAT8Ë…ÓÑæ `+Úþ¬ hc¡Z±Œ½DÍÜÍœ/q†/˜Œ9Ý}pð<÷f,ÿàþf�0’´‰°"ræ~î™H �æîf^ ƒ m β à÷®©Ý´AR%.°Ó æºýÁN†è¸ûÜù.â]¿-. õsÀ ˜±ïâ_QƒùœÁÈ¿DæI·Žéî i1WJ7nÀ´ò¦hÑ߆$é}s=¶Hé3 V.II’dê_ 2wœ$ï½ôA>ñGŒ¾)vz}ÅÐíQµf®$½'¹:¡µº¤Œ-£ŠëˆºoÒg}QqãI®YÝŽ•ɾ®äÙÖèªÈŒýZfчDý/CÊ“ &’ÝXHÂp¢ lÁ ¶g����IEND®B`‚IMAGE 300 ./arch/floor/graymarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE...;;;KKKNNN]]]kkkWÙ@f���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 381 ./arch/monster/humanoid/Dwarf/greater_dwarven_guard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE4V���²""‚��¡¡¡¿¿¿ï§_àààÁq8aaad3 R-ÿÿÿG$ÿ×�Ú¥ ��€!!!Í…?ÿÿ�@@@ºÙ)Ê���tRNS�@æØf���éIDATx^­‘Ûnà D™½¶skûÿ¿ÚÝ UIœ— B:‡Y$ÊGco¸ÚþFøQ]Ö;ØØö‘ÒP'N£a³nfZu×@eðbJ­eJ ™NîNå@ð«_ûk^¨5ø‘�`ÅË |aF„/Ïx7>§»MBïÔuçàu™ã›YÕ°ãk3ÕèÉû¤ <­¹O±j‡°$Ï€™_Þ€‡ ã¾È…!`F¿ÆÜ}'üñF s’‹äÀT�œ–à’ RÏ‚dÂyòYp$$6‡IÀið!„q”¬ød~ª ô¿[ŠP����IEND®B`‚IMAGE 372 ./arch/monster/humanoid/Dwarf/greater_dwarven_guard.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE4V���‚��¡¡¡¿¿¿aaaï§_²""Áq8àààÿÿÿd3 R-��€Ú¥ ÿ×�G$!!!ÿÿ�Í…?½6���tRNS�@æØf���ãIDATxÚ­‘YnÃ0 D9\´xÉÒæþgÍÈm ÔR쟌�‰À{"H>ž8á'üDHîË*³l™G‚º®/0 xRU™#E„O>D8!\ŸdrzšsV9ò%_Ò{.Z+ò‘�`Å[^®¥€)סjåÖî1àêþcÜȧà‘6ã»÷@ß \“›µûl†ÿF­k5K44¦p;a!g¾¬à‘k'´û¿(�èyëï\�¿c/¼x¢ ¸¡q³öFú À}!·ÖÁ¤{¡l‚1Û1ø¦Æe't| À¢p'ÿX…†|2O‹@“ò„â����IEND®B`‚IMAGE 366 ./arch/floor/inlayed/green-beige-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5CoCP~P›€-´–F»§q½ªuοÙÌ¥h“Dk��IDATxÚm’Y’à DeRÄý<=Z)œþ°±úi+LcÌ9ÍIP¿i­ Ñ3z3mb6�>ðX‹·+€|ìÊK¢>ÀZCÌ˵ (ˆœíÀ£;d©&P{kœ>ˆw�ëì°M¢^H3¿¤ è-‘fîï¡îÓ€}ßÄ2Ñ0 ,/À.A*Àí‹x°Re´õR |’ùŠE4'ó‹¸i@E£îÍÀw€Eà·.@x­ò›h�~•/¢ ¢O¬]¶öºUó®…@šáéÔe{?!d¶¨&ÿƒ:›>ŽIĶ¢FŒgNà[ì‘DÜý¨Ýk2ı����IEND®B`‚IMAGE 355 ./arch/floor/inlayed/green-beige-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P›€-´–F»§qοÙÌ¥“Á5���ýIDATxÚÓAvà P 0¸ÿ‹‘„ l: ›D?cóì$�ÇÀ<ø9©ãÿ�7Y€€p\@L¡ ü Zƒ( z�D ©íFƒ¸"è}Œ0ö£àø’�€�íºë g:»ƒgÈ °k/<àXI帄/H³£ì/$æÔäVºÄÜúÒ'ŠW„ ßQZ ÀVÉß­^ —n½f^PIâÈPjkÄ•Ô6cõ..ÐV*©©GÛ¼¼ÏkM¹û³¦8hµ”oì7»6�êUc>ivàïC^ÅæºT¡R·˜uþm¶N°ˆˆƒŸ]°*’ÿa~¼²Ñ2a����IEND®B`‚IMAGE 361 ./arch/floor/inlayed/green-beige-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5CoCP~P›€-´–F»§q½ªuοÙÌ¥h“Dk��IDATxÚ’Ñ®Ä D©:ÌÅÿÿàuEîæ&;…fN¡ BàœXˆ™ˆáw�7 ºÊy„ª<Ɖ‘¨ªtž �ªpMÉŠÄ¥^�3ÎxÆ7€/@H[€à &ÙõDPÌ*£}�Säò@.¨ øÀÀCXz@+±ý!×!@Óçò»È ´�P|ô&K{¢,ôÇöÅ_“ÈâšIÜ£ÊQݱÅô  $‘�¸ü1n@ÃáÙ`õž©ÿkkO!™–uÚ9â§µ�”ÌùâjïmE4}b<XòÌHÄzv焸öˆ~ÿvãFïüôö#?lyíÈØ·¤‡����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/green-beige-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5CoCP~P›€-´–F»§q½ªuοÙÌ¥h“Dk��IDATxÚ…ÒQŽ„0 ÐxÓûx]ê`­ÐhóA«ñk 0ˆŒ1®‹—gõ¦b9gü "þ‚ó¼D$æ¼.pJ$ó î•à:ÔáP>‚ë<¯]cDäÜ%®sTM‰žôX ^ ƒ¹„{P|ùølaZU%a°W×q´Ðwi K„Z$Þ` pŽˆõÙ*P Â95Æp‹pÎÆ°, ¸°xú€B©¯Ì$ÀÜ%Ñ�ñäÌŸöú1ýÄ…V|“Õyæó§* {»y'³çÞ÷ÃàI爨Øv”¬rn[hŒ5¢Ž;ñÌ?OƒûÒBßþ[›ê¨ï0Á����IEND®B`‚IMAGE 366 ./arch/floor/inlayed/green-white-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚmÒYŽÄ P5^¸ÿ§b¼ 2þèN¨‡cÎ9ˆhNBõ?1/=ó?ðF_0,/Xᇼ3¯�?äø?:³Fq9øÒ(Þµ+PˆÜÛYr€ÇÞ<Í~R€:·Ì!`ÞøÖü$Ñ/Á;me ºA—jˆhÛ±4ð÷[° 1 ú~ ZÒ¹îW€‡ÕjFçÑP¦ºn¡¹£}Ä òÉó÷A˜Zô½ ò Dy×T˜+oÑ�yµ/Ñ EuïØº-ëu™å]«$À4ç™Ôeïõ”0³sŒZ‚ü,läxL›ô#ZŒÉqã"ªÿ¤ˆ»ÿ– —:…`õ����IEND®B`‚IMAGE 355 ./arch/floor/inlayed/green-white-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½���ýIDATxÚÓAvà P 0¸ÿ‹‘„ l: ›D?cóì$�ÇÀ<ø9©ãÿ�7Y€€p\@L¡ ü Zƒ( z�D ©íFƒ¸"è}Œ0ö£àø’�€�íºë g:»ƒgÈ °k/<àXI帄/H³£ì/$æÔäVºÄÜúÒ'ŠW„ ßQZ ÀVÉß­^ —n½f^PIâÈPjkÄ•Ô6cõ..ÐV*©©GÛ¼¼ÏkM¹û³¦8hµ”oì7»6�êUc>ivàïC^ÅæºT¡R·˜uþm¶N°ˆˆƒŸ]°*’ÿa~¼²Ñ2a����IEND®B`‚IMAGE 359 ./arch/floor/inlayed/green-white-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚ’áà „©ÑãðýxNd¨Ë’ÝBs_¡ B`ˆá�' :Ê~�„ª\ÆŠ‘¨ªtž �ªpuÉŠ Ä¡ºfñŒo�_€‘– �6�¿˜dÖI@=†ŒvSäðÀ¹ ìs7 µ&Üz@y�mHŽC€¦ÏáW‘h`óQ‹ ͉²ÒoÓM"ˆ+‡¾F•¥}oŒÜ€’Dª]�8üÖN@ÃáÚ`û=Sÿ×RžÒBÒ-/j·uÄO)5�(™óÅUÞ5ʈhúD{0䙑ŸõÌÎ%qÍýþÍÆ5ŒZ?�@ÿh>‚ðÖÍT-‹RQ����IEND®B`‚IMAGE 357 ./arch/floor/inlayed/green-white-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½���ÿIDATxÚ…ÒÑ®Ä Pnc‡ÁÿÿàKu„Ýôayãœk$�šÙ}çR½7Ì9ñ�ß`ŒÕ8ç¹>`Hx欞à¾4a *Ÿ„à5Æ½Ë ð¹K)ºÆˆXMClÕõ�¼€#s‰�4xƒÚâú)àêªh ^u] �~ ݤA‹¾l". á|=‚FxçžgK`€ÏÜi Ì`@çàÜ «EƒÜ ´x_µ@04Wæ œ$Ð%q�¨¼EƒÌk|‹:trqÔ´ÛfœÜ½~ª ]Âà\\ɹÁ:dv¼sq�·µUPBÝÖCgŽ~q÷5`-GèíÿkÓyóçQ»����IEND®B`‚IMAGE 366 ./arch/floor/inlayed/green-white-h-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5CoCP~P„„„œ¥œ½½ÎÆÆÆçççÿÿÿó16��IDATxÚ}ÒQ’Ä Pè"÷?ð‚Úbfª†c¥Ÿh™³ª2©Æ€ç5yô'ðèˆDîĪÂôAž@„w°Ÿ˜ˆôxyȉ¡EùÕqCEµ¬~ç!*Cže ô òP½@û (ö·±D©<û- hÕÜÐ÷á|­}�˜Eœ�Byë#¤¨Ü"íîóà@ï¼›HÁ§Ek×zó³ ZÌèŽe¨Ocö…ùÂyÕ`цâ"?í!^`åÝl}¦QÝb{ä½û>k˜u�æÌ‘àöM©Jåñv�زyÏi‘ÇâÒú^67îØ¤÷ üï4˜DkSüpÌ´"b [����IEND®B`‚IMAGE 368 ./arch/floor/inlayed/green-white-h-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½�� IDATxÚ…ÓYŽÄ0PÇb)¸ÿ'Ø`&é–ÚÁJ=!/ɘ“™çƒù~œÚã_@à' Z"4ÇPŠªÈ`fÍ m�÷˜ÌÌD«DSõ〔 ÄuÑfÏf�ñ-Pä)ðØ_þÞ`í$û5PÿÇ•¢Á]bÎ$à!˜_à-ò¤ „âD€¢Þkà}mî&°âÞù¾e¿ào1Ï¥®-î’ [ùK D vƒe¾ g0¿�Tää-hpoÑ _*°Wl‘'i•«ºY- * D÷â*ñ==æþ¢´sˆXän-¬ òš:êÄÖ-ß©ˆ&pÕ œëQ"ÿ¨?C宸����IEND®B`‚IMAGE 903 ./arch/monster/humanoid/Dragon/green_dragon2.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��­PLTEÿÿÿWE�†aSV Q f�ÆadRVc\gk < Km G dgPmY{sX< B_\F M ]IXq @ 2KJZgkG J C : F ; PO@c^5 W ? *Š @ND? [ZtmN 9 oSS - U£m ] V O ^™c&‚*† RwlEQ b“ O \sxJ{ 9 I #u A U T "} ! <ws@ B aDh  DE Z >ŒYdd[3 _oo}um&!\; Y / €0‰'ÿ�� = $²†—���tRNS�@æØf��ˆIDATx^½ÐS³+A†áµzŒØÎ¶mÛ¶í}lÛüÍ»{’TÍL%w§Î{ýôª¯þ^¥½¦ W‰cU±2oAp×!§Ò­~*ó¶ÖUåèþ!kù@gðàj R2,ICÄ àêˆd”ˆ´ ¿óø=�!†  ²•òHEê v×ú½ LïNKªé¾Ï7�0z|k£ÊÚ~oýS0åÞàÀÙóKr>{}-QPÄÿž|`³I s¯è²âç@QEÝ&ZÀø}9I‡íÛæøGVÐ×Ñó÷õÌ|D@š|‹éðV&HF€¥fUg¯² D{#¼ (ä¾èÒc?ÐèÖ((Ï•„}ŸCÁÀ€!�ìâ‚Ê Yà±_³z pës$ÚT˜il‰?üÐ}ÑZr Ä¦N|§GAì|ã®þyà€eq6^ôêº6ø7 º Oåj‘‹ºdG±ùÚîåÝÇO~G è¥X*sœ+Å'¾Â¿ïry1^1–LU����IEND®B`‚IMAGE 864 ./arch/monster/humanoid/Dragon/green_dragon2.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��˜PLTEÿÿÿBWf�ÆE�†aVRqaSVdPk ; \KcZdOg@^ @ < Yw G C ms T kY M m{Q bg I Y$XPD < W m}uFE Z™ŒJ"} J E_\? S - U = ? _›mN^X@ “ O \s*† wl\c@NDiFSg[c] U dd[ > 9 ! t*Š hK£G J B A ^ &‚s{ DIV Z5 mJ3 2O ; : €0‰'ÿ��ooÑåî!���tRNS�@æØf��vIDATx^­ÏU¯Ü@ €QÛ3á,3ïeffff.333þí;ÛM«(›¨RÕïÕDz ÿRý߀OˆKžÛ±#͸Êù¸Ggãq¾ÆØ*w!}°À9q7‘ŒïÇÕ Õ[ÿ‹Ü}¨¥Ýw,¥Ú¥_0 ‘ùþøá p"c§ëg Ôß^‚=" ‘¿ÆW?*DÝÇMt8C5U±-}2†�w¾±1åù +yr� ß@VºÎ˜R›c囎°©uoYˆÆÀ¥ù×éÉÓg¥È$}˜Ö³eÀ]Äl*Dd³|nבdnpÅAÕÔÒ¿’SÜ4ä�ñ²à�NªvPÈÈj\@!,€¯Âvª¨”ME ÀñÉ—ŽÌÐ:âÒ­ÓⳄ•=Î_iñkÚ‡žè׉fÉT/ÎE‰H›2o·5À¥É´ZÔHª è¡ËàÚv¯Œøc Ïº�]Û@]’ àv÷ÀÿîÓ‚+E+Ÿ����IEND®B`‚IMAGE 831 ./arch/monster/humanoid/Dragon/green_dragon2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿTXE�†VaZB\Sf�Æ]DS[ekd?Q HwfYXvnZ<J MG A!~NkR^=bpgneKP\Z>ÿ��j&1C58 D d]x(m%y/ ^ ; C A YF!|{X\FU/1L%%jO _y /`P9;`|0„0 > N :qRB + B *Ž*:£5T<~F0!{!# ? US 6OfiEC = mC<Tg‚dIYh@Ke$x$G Iî%üÈ���tRNS�@æØf��^IDATx^ÍŽS“,AF3«ª­±í¥mÛ6®m[?|oÇôÆFL×¼nìy='¿H¸QÂ�˜#¬žQ5‘À¯¡"C®W)¥ßÆHQ+[ÈÓW`óË2wA äZ¬í€RÀ‹\¿ÔÑm€ÝãFîš±NÄ”ô³uðÎwœ6¼—z~Ü}<›òýk†5S ;r5©øývÕ>Ò¨Zÿ@4Jp3´g9^ ÿßÑd›úæ·¡R‘üYþòy2îñ^Ï+ œw½ ê¨|¯I&òÔPõT—†< õ½—wDRü‡u�BI‹ð¨�út†îÀÁ’‘ã§ÅœQ ຠ$Y ‡ÏgÀfh+ ô…bû';̘!6ÿé]¯°8¬‡Dâz‚EXáiúèáÇÌ[Œ © ÙÖ‡ñgr%ø mšƒ D$÷_÷§Ö+‚}Î-ļÇãÍ-""a·Köp*eKâ„^����IEND®B`‚IMAGE 810 ./arch/monster/humanoid/Dragon/green_dragon2.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��tPLTEÿÿÿTVXaE�† /Bk]S f[0„0f�ÆSe?KMZ\wbD^nXv!~ZnJ H<kQ ApU= 6CO D yN \%%|G _y ; A¤<"`C<TIe@R ? ÿ��jNg:£5T*Ž*0#YfBq:/FF!|; = ~Fx8j ^ > 1C59X&Y1Ld]*•%g‚d<RPKe$x$Yid(m% B S/OZm A hSEd���tRNS�@æØf��dIDATx^ÍÒEä0€Ñ*S𙆙™™™—™™ñÏ“Öh¤Ä­½ìaêú½”l+ðÿæñ?zófh:jØ]Îùl3~¡DåHáºy+¯ZÓê»Ø<›@#Ceº|ߦû�‰ŸY@»°‚˜”áÔqTàíÚït}Õ‚sP½^¬±¼ýÞYÿº¹“cA±Ð]îV_¸| ßÓ ´Ië*ôÔ¼V¿—}~«T¢:ÀqE¿ê­cµ_<x‹ƒ¯^ʤ±–ëÕžºd—€æÒTo“ýÙçÐñxÖ§ûßWþat.•:¢jçˆâ9‚ÀýÎhqŒÓ4}ÌF�Ò2c‹÷̇ø¡�ƾóü¾ý€Dm6sÖ+Á“Ü•¢R$KÃýÓmÝ4S`F ’©?éöÌy¹4÷Iù‡#"}³›:mgˆT‹®¿ÐHS” ܸ¹€¯&uò ±G����IEND®B`‚IMAGE 903 ./arch/monster/humanoid/Dragon/green_dragon3.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��­PLTEÿÿÿW€�€aSV Q À�ÀadRVc\gk < Km G dgPmY{sX< B_\F M ]IXq @ 2KJZgkG J C : F ; PO@c^5 W ? *Š @ND? [ZtmN 9 oSS - U£m ] V O ^™c&‚*† RwlEQ b“ O \sxJ{ 9 I #u A U T "} ! <ws@ B aDh  DE Z >ŒYdd[3 _oo}um&!\; Y / €0‰'ÿ�� = $h™���tRNS�@æØf��ˆIDATx^½ÐS³+A†áµzŒØÎ¶mÛ¶í}lÛüÍ»{’TÍL%w§Î{ýôª¯þ^¥½¦ W‰cU±2oAp×!§Ò­~*ó¶ÖUåèþ!kù@gðàj R2,ICÄ àêˆd”ˆ´ ¿óø=�!†  ²•òHEê v×ú½ LïNKªé¾Ï7�0z|k£ÊÚ~oýS0åÞàÀÙóKr>{}-QPÄÿž|`³I s¯è²âç@QEÝ&ZÀø}9I‡íÛæøGVÐ×Ñó÷õÌ|D@š|‹éðV&HF€¥fUg¯² D{#¼ (ä¾èÒc?ÐèÖ((Ï•„}ŸCÁÀ€!�ìâ‚Ê Yà±_³z pës$ÚT˜il‰?üÐ}ÑZr Ä¦N|§GAì|ã®þyà€eq6^ôêº6ø7 º Oåj‘‹ºdG±ùÚîåÝÇO~G è¥X*sœ+Å'¾Â¿ïry1^1–LU����IEND®B`‚IMAGE 864 ./arch/monster/humanoid/Dragon/green_dragon3.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��˜PLTEÿÿÿBWÀ�À€�€aVRqaSVdPk ; \KcZdOg@^ @ < Yw G C ms T kY M m{Q bg I Y$XPD < W m}uFE Z™ŒJ"} J E_\? S - U = ? _›mN^X@ “ O \s*† wl\c@NDiFSg[c] U dd[ > 9 ! t*Š hK£G J B A ^ &‚s{ DIV Z5 mJ3 2O ; : €0‰'ÿ��ooƒ~š���tRNS�@æØf��vIDATx^­ÏU¯Ü@ €QÛ3á,3ïeffff.333þí;ÛM«(›¨RÕïÕDz ÿRý߀OˆKžÛ±#͸Êù¸Ggãq¾ÆØ*w!}°À9q7‘ŒïÇÕ Õ[ÿ‹Ü}¨¥Ýw,¥Ú¥_0 ‘ùþøá p"c§ëg Ôß^‚=" ‘¿ÆW?*DÝÇMt8C5U±-}2†�w¾±1åù +yr� ß@VºÎ˜R›c囎°©uoYˆÆÀ¥ù×éÉÓg¥È$}˜Ö³eÀ]Äl*Dd³|nבdnpÅAÕÔÒ¿’SÜ4ä�ñ²à�NªvPÈÈj\@!,€¯Âvª¨”ME ÀñÉ—ŽÌÐ:âÒ­ÓⳄ•=Î_iñkÚ‡žè׉fÉT/ÎE‰H›2o·5À¥É´ZÔHª è¡ËàÚv¯Œøc Ïº�]Û@]’ àv÷ÀÿîÓ‚+E+Ÿ����IEND®B`‚IMAGE 831 ./arch/monster/humanoid/Dragon/green_dragon3.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿTX€�€VaZB\SÀ�À]DS[ekd?Q HwfYXvnZ<J MG A!~NkR^=bpgneKP\Z>ÿ��j&1C58 D d]x(m%y/ ^ ; C A YF!|{X\FU/1L%%jO _y /`P9;`|0„0 > N :qRB + B *Ž*:£5T<~F0!{!# ? US 6OfiEC = mC<Tg‚dIYh@Ke$x$G Ië³LM���tRNS�@æØf��^IDATx^ÍŽS“,AF3«ª­±í¥mÛ6®m[?|oÇôÆFL×¼nìy='¿H¸QÂ�˜#¬žQ5‘À¯¡"C®W)¥ßÆHQ+[ÈÓW`óË2wA äZ¬í€RÀ‹\¿ÔÑm€ÝãFîš±NÄ”ô³uðÎwœ6¼—z~Ü}<›òýk†5S ;r5©øývÕ>Ò¨Zÿ@4Jp3´g9^ ÿßÑd›úæ·¡R‘üYþòy2îñ^Ï+ œw½ ê¨|¯I&òÔPõT—†< õ½—wDRü‡u�BI‹ð¨�út†îÀÁ’‘ã§ÅœQ ຠ$Y ‡ÏgÀfh+ ô…bû';̘!6ÿé]¯°8¬‡Dâz‚EXáiúèáÇÌ[Œ © ÙÖ‡ñgr%ø mšƒ D$÷_÷§Ö+‚}Î-ļÇãÍ-""a·Köp*eKâ„^����IEND®B`‚IMAGE 810 ./arch/monster/humanoid/Dragon/green_dragon3.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��tPLTEÿÿÿTVXa€�€ /Bk]S f[0„0À�ÀSe?KMZ\wbD^nXv!~ZnJ H<kQ ApU= 6CO D yN \%%|G _y ; A¤<"`C<TIe@R ? ÿ��jNg:£5T*Ž*0#YfBq:/FF!|; = ~Fx8j ^ > 1C59X&Y1Ld]*•%g‚d<RPKe$x$Yid(m% B S/OZm A hx7µ±���tRNS�@æØf��dIDATx^ÍÒEä0€Ñ*S𙆙™™™—™™ñÏ“Öh¤Ä­½ìaêú½”l+ðÿæñ?zófh:jØ]Îùl3~¡DåHáºy+¯ZÓê»Ø<›@#Ceº|ߦû�‰ŸY@»°‚˜”áÔqTàíÚït}Õ‚sP½^¬±¼ýÞYÿº¹“cA±Ð]îV_¸| ßÓ ´Ië*ôÔ¼V¿—}~«T¢:ÀqE¿ê­cµ_<x‹ƒ¯^ʤ±–ëÕžºd—€æÒTo“ýÙçÐñxÖ§ûßWþat.•:¢jçˆâ9‚ÀýÎhqŒÓ4}ÌF�Ò2c‹÷̇ø¡�ƾóü¾ý€Dm6sÖ+Á“Ü•¢R$KÃýÓmÝ4S`F ’©?éöÌy¹4÷Iù‡#"}³›:mgˆT‹®¿ÐHS” ܸ¹€¯&uò ±G����IEND®B`‚IMAGE 281 ./arch/armour/mail/greendragonmail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEïµ÷���!!!)))1118ëMÿÿ�ÿÿÿvÈì���tRNS�@æØf���¦IDATxÚÕ’Aƒ0 ©íM6ÿÿp£T9=·s0Qf°8pü ¯òÖ–À ï¶ÆîO}¿1ºG“ôû T�äBþ¹‘ò‚H8÷-[/5§ü3HרZËS€h›�²½w¶"P,(ßÒ—Áé{€Ì/ å+rÅP²ñc |Ý€Qû’ 4·Eà"JïN9vELjOá¼…7úÉœE`öù]ç_â ~XòÇ÷ó}����IEND®B`‚IMAGE 300 ./arch/floor/greenmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE 8 *F*5Z5:]2CoCP~PÕÅ=³���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 304 ./arch/floor/greenmarblelight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEC‰CR®RmÆmtËt˜Ý˜·ç·“:Ø7���ÙIDATxÚ“[nÀ0g»pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/R^ [®˜ø����IEND®B`‚IMAGE 300 ./arch/floor/greenmarblemedium.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTETˆT]•]f¥fj¨cq¶q|À|°Õ q���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 234 ./arch/monster/acid/greenslime.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�Í�.‹W�ÿ�&¾÷.���tRNS�@æØf���ŒIDATxÚÕ‘Q€0C…ÝÿÎÊØÚÚD¿µ&ÄØ× ìøœ²ôfG)y¸ÌØÅ„So]•ô‰*@Gê¹»Ò�ƒ±šU’“÷1f PJ4ÂêM–°ƒ5§ø ï’©;x“Mø˜h føœôbã~Yv],ë¢O¢óÄèM_ˆ¾‹ö¿t×^Ĺnïâ����IEND®B`‚IMAGE 238 ./arch/monster/acid/greenslime.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�Í�.‹W�ÿ�&¾÷.���tRNS�@æØf���IDATxÚÕK€0B-½ÿMó‰{eQÛòÒA®/ ^Œ³®G ‘ÁuO%h"Õ| ®÷† q,*@ƒ"e"eˆ”04†há—=”£‰@øÄ(ÓERíÖ¯´²QØ,*çCèfj…¸Ì¡�®ÑiJ“š Ò‹/½kEIÚÉ·|GûOºÓTÑ�¹\å����IEND®B`‚IMAGE 220 ./arch/monster/dragon/Hatchlings/grey_drag.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���@@@¿¿¿ÃM%;���tRNS�@æØf���~IDATxÚÍQ€0Åf¹ÿ oQྭËLhtýð#pö;y3?¯>@ DÁ¹¸²×8m‰`Ÿ"ýa÷É5oþè‚Ño=úЈaQT 5‡Å‹9xÄT”1´%`o¦”Z„f•@FwLVGúTß‹³Ïù#nÝ\ˆ2����IEND®B`‚IMAGE 221 ./arch/monster/dragon/Hatchlings/grey_drag.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���@@@¿¿¿ÃM%;���tRNS�@æØf���IDATxÚÍ’A À Ûñÿ®vS#lôÜ ˆ8ƒbôúQè¥�¼õ .CZòFÀ+°`§˜p6D€ûhP] [ƒ!ÀÖ`‰.ì¼z1㞬| ‚$ra¢ÒKÎÖ‰4°Š.&W›XÙ ™¹æ\ñ£kA|³ýéÿ䟚<­Œø����IEND®B`‚IMAGE 224 ./arch/monster/dragon/Hatchlings/grey_drag.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���@@@¿¿¿ÃM%;���tRNS�@æØf���‚IDATxÚÍ’K€ uzÿ;›ÒTûÙòhqFS¯cØþ@++ÊÝ@D+ Î`p$ðq”+Î_àÞpMâ°â&Юïj~BÌD@tíǰZðZnôàsZ®¸•ûa!Dµqâ�ú~èÁ'–;Ì?_Ÿ¥›ŠÐÆÇ&ÏËÖˆZ…—_����IEND®B`‚IMAGE 219 ./arch/monster/dragon/Hatchlings/grey_drag.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���@@@¿¿¿ÃM%;���tRNS�@æØf���}IDATxÚÍ’A€ qùÿŸ%M'RñêHt‡ŠÄö34`Ú´FQ0Ôǵ®n)eÞÍÈL§ü è¢Þ°Ïþ•‡p̳Vƒ›iF¾?ÊÁ`ì�Þ eo.Ãržï[©YÐÓ§Yà<hésr YPù§vXë?q¿ª©×,Ç–����IEND®B`‚IMAGE 353 ./arch/monster/undead/grimreaper.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE÷½÷!!!)))111999BBBRRRccc{{{­­­µ!!���ÿÿÿlåÓ���tRNS�@æØf���ßIDATxÚµ‘ËnÃ0 ù&Ó8ôÿÿmVF.ªU¡‡–†O3Ü$úŸiª-g²­ÁÖ½Ëh“Æl„_ýêMB6F|M — ¶Þ&É"pS[u€°GvU¦qÞ9k”[V…zúÌÆ/ÆF,æ¡éS‡]ýä°Ä°çÓ#Bº`šô ¶˜„ø¼˜¡ÂQ4MœoÏÊ~Ü_ôìÁ[Ø«jô+}`4™ªÂ öó~MÔ&•Yô56ˆ†ha×W_!ãâ;|“@GïΣß/øsAûâ?'�öáÏ5&šöÿlÞïð 5„4«����IEND®B`‚IMAGE 359 ./arch/monster/undead/grimreaper.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE÷½÷BBB���999)))!!!111ÿÿÿcccRRRµ!!kkk{{{µµµÖÖÖJJJ­­­_D3+���tRNS�@æØf���ÙIDATx^µ‘ÉnÃ0 ßBR‹“tûÿ-à-è¡£ãÌá Äÿ ðÖwämÑSÒM¡,IžêO=Å­—%©bç™g0r£MBRŽäÊ ÍÍ"íìÆ•4œ&ÛÇÚ³WFŽÑˆ+dTå°S•ëè£ÑÑ l—6X™-ÕåÍfë†õX\T"[T `�×â5ÇÁÀ„/çœE›q�˜¸"önä¹ @êÜp`M‚HuXA6u}o|žU›àû} ~ÞÅÄÇ~ˆÏ¹ö@âí±ãôÇÄ=õ¿Ú7¬À]¶‹����IEND®B`‚IMAGE 353 ./arch/monster/undead/grimreaper.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE÷½÷!!!)))111999BBBRRRccc{{{­­­µ!!���ÿÿÿlåÓ���tRNS�@æØf���ßIDATxÚµ‘ËnÃ0 ù&Ó8ôÿÿmVF.ªU¡‡–†O3Ü$úŸiª-g²­ÁÖ½Ëh“Æl„_ýêMB6F|M — ¶Þ&É"pS[u€°GvU¦qÞ9k”[V…zúÌÆ/ÆF,æ¡éS‡]ýä°Ä°çÓ#Bº`šô ¶˜„ø¼˜¡ÂQ4MœoÏÊ~Ü_ôìÁ[Ø«jô+}`4™ªÂ öó~MÔ&•Yô56ˆ†ha×W_!ãâ;|“@GïΣß/øsAûâ?'�öáÏ5&šöÿlÞïð 5„4«����IEND®B`‚IMAGE 359 ./arch/monster/undead/grimreaper.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE÷½÷BBB���999)))!!!111ÿÿÿcccRRRµ!!kkk{{{µµµÖÖÖJJJ­­­_D3+���tRNS�@æØf���ÙIDATx^µ‘ÉnÃ0 ßBR‹“tûÿ-à-è¡£ãÌá Äÿ ðÖwämÑSÒM¡,IžêO=Å­—%©bç™g0r£MBRŽäÊ ÍÍ"íìÆ•4œ&ÛÇÚ³WFŽÑˆ+dTå°S•ëè£ÑÑ l—6X™-ÕåÍfë†õX\T"[T `�×â5ÇÁÀ„/çœE›q�˜¸"önä¹ @êÜp`M‚HuXA6u}o|žU›àû} ~ÞÅÄÇ~ˆÏ¹ö@âí±ãôÇÄ=õ¿Ú7¬À]¶‹����IEND®B`‚IMAGE 2902 ./arch/monster/animal/gryphon/gryphon.x31 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÃPLTE���»s=¨oE:6-¬¬­’’“¤¤¤‰ˆˆõõõœœ›llmÌÌÌûûûîîîÔÔÔ‚€àààvvvèèè¶¶¶ÄÄľ¾¾PII^^^ÚÚÚ& WUS@/-8##kfb)J86$!@<4cL@.!߯r âÒžÒ¥s2!   j[W úÞ–öÖŠÎXúæ¦öÉy2.&¹‡]˜tXÒbîÆzâ22úÚ’ª]”^:Ú22`E���tRNS�@æØf�� AIDATx^ĘU³óH†÷BR3ƒí †iháÿÿªív25õíU’SSû&ö¥Kjýÿ¿ˆèo5NtC'ý-�ÆXÍ®Ö8Ä·S褟ÇmDDÅcÙocZâö'ÄR‹] Ï+êºÚ‡œ|aå/´»¹XáDH)¸Ru¾œA‰•"L‚¤ß+“JŽˆÁcD“M©3.€f6§‰ºº™qfPT¼åÁKÆ¤ç ‡#EL1ˆ VㄦCN=»„¬) ¥6M"3Éêd“0æ’P‘œÄIÆidGH=5¬ä’šñYÖ–*s É c/C€ b¶ÒŸ´$-=)¤N÷QB˜]=ÉØ”RhOtIžU×(æH1Sá,nmêŒ\3çYÐ5ˆ`­HB¤d5':3 Î Gÿ#yD¥…€Ÿ\¤ ýñÓ’I.•s $„`â(cRr…©èÐEò‘åÎf>­ý²ÖlÈ™ÎÍBÕᘀná„A¬Vˆºu µ D”Œ˜ccçl$,ÐùÝBqÐpbãø8ÆRœŠ]ÉÙÕÐË@ز3 ˆ.)èH?iÔµ[ác& 08–¢IF$Û®¤§‰Ó¹õœ|Â)ȳ'])°‘󘙴Ž!Ù”\¯„9P¹°³=à\‹£Œí7aqrŠeÏ}ÖDÑL§® E¥ š×É4ÑŸâ‘5hç#Æ™Ð̇ž¦FH‚.o¬ÀŠ›„1STY»”JôX#×Âëñ°ýßR¸ _�fm{øçS2;R"Ö«²€B᫳ ÇY‘Œ= !OnÎÅF•aJ6¤âW•‡¼•u" žàvMÁ‰r>@X'ã=°¤%öŠ Y‰èGíРѕ>Ð\Â%-ˆ.ÍÀȼyyB>²†) ¹W…$¥ÞP;Ã\:@Wª8¡0ʨ†QŠ~~å(½Î3d4Ñq†¦ªíuZ"Õ…ÚÁ¦Ì2SU¡L!…‰±c;q%_ºfâ¹pÓ¤‰øvdÑÇÉ‚ÉyIµdN[– …_ øI*–8Ž˜ñº82#¢Ó\rÁÓ[£,:¤ LU¯9%,@'¦DD0Ïç`§J—¬êiÈ[Š�1+¾2Æv#*dÍi.eºnQÝÒIcd¡T4ª›·ÉfJ=B©L‘®Y#…!Ó%ŠÈ8ƒ’ ÊUb¼J"G½ÓÙBt`¤IÌ2B²Œ,Á”$"fªŠ2mͱ¡›0ѵ«ð±Yš¼õÙjaJ,Ž!“BSS‡jJSEºÎ>П’JI§H©\ Œ, ©{HXÇè*ûÎiç\)™ñ8²Œ1FV5Cf2Ì3©=>Þ¼£77tE€NÇ´*hu52É8c4¸4%êZ°»iÖUÅ<ð¸Uêõ4é¢ ‘¦mÝ…åŠ<ó¿ÿ^‰>w ˆÀ"z<BŸð~`ÚŠDàD×DOCC`¤å×?þøôéë×ÏïÏÔŒ V�îýèju2#²QÝæy¦†åRÝ7 á;ýóÓÃçß~ûöíÝÙ;R³¬©ÌG©ÁKÎ+ÔXçÕZÓzX «ïßÕ’Žzxùöí’-/õDOÞ+-¬à&Ž*­\™7:½|=ì›ax¼ß~yyyxx ¢—³³ mgX <KaTuò +qªl2Ý7Z.ÖëÅb¿_>Ýû¿¾¼¼|ùñããùó´f§J‹\æâ™d ‰È…2wºß½nÚo=,—˧wéã»Ç‹Þ©¦Ðå2G¯¤Ajž*#G) “¬ð´»?¬×¯‹æÂóòfu4pI-ØnÉZ»Ñ Øz•š¨·.+íw‡á°Ù/ö›çë%Û$nqrÀ·xräë†æíí‡p8<ÓãõŸH8z>€³¥ªHdó…TÚí֫æåù—æÂõ–…å+Ÿ F 0 `…€åb·86¯‹ÝÝ3-¯è)9YRd1ªš:ãˆB&rs)ïž^7‡×Åb±y~¸r.¸êúz¤bÃ(s¥ ·àh¹kùÝlZ-,VÏt%¬±!KŒ<G� ¹2I’í…¶x}]/¡!¾|¡·} #¾šJö.hPMM‹^ëîÂn³8üJ׌q:Ca>fD QòD÷ûÃbs¸ÛlÖ-×ûýöùJQQŠ)ž%¬ÚY¶Í$r\zZì_gZ”þõü¶ •j¬cA„«-ï7Ãz·Û»õöú ù’³ƒ µd)%0j¾\ï÷›ÖOáýn׫íþZ��ÆUd²ŒQfà@Ta¹\÷c´Ø½oŒhmƒÞôUÕMÁj (!Ul„¡¹ÐêxñôÔÌïžZ2~yÓ›‚çãVòÈdf’#ÀåíúîÃÝf× ÐjîŽÎ±¹üHMGûÿ9éæqT¼N:¤”b–(ý–¤üo­fÔÚ:DámÍÎÃ}Zöa½dâ"E®;f3Î@Xu[H™ÿÿ«öÈNÒ¸Ðä&áã çá|:Y‚®ZÕ›ç:F†ÐÇE�1Lў媣«ˆäþûËhá~Ð^Ö–«Íæ¹iJ´.à‘á·‚‚ÜÅC§Ž ÖÚòIY–ÿ‰ã Y0£�¼t@JÐçô“’y΀ÂPX…Ûçͦ˜‡EDÑOçý½MTtÄ1õ�ûÑÎA)TDGˆ[À^„½‚¹O�œ`•1�'qŒØ@ÅŒ\Ôa�ˆRÛ=×ë5—†!œPù‰=“hb 䌄q•Û‘’ —ð´lž"¨|¾à¤|ðgq+4Üæ9ù>� T¸ÛªmsR§ºð¸G‚¾g:p9 Å]˜§¦!‰¨ˆ ⤠Wr¦ºkó‚‡Pêû雪a¦®b"d68”Š2®U©n«Üõ€ëK/:l¤&'e°º‹ˆ±I!ÉâÀr[çXqñb} àÆfp8®%ˆà’¦ CAˆ[Œ-º+FܨÓOìB¢ ûùw¥ca# B€9H¦LU]Å̸i»Š~rïœSÙ†”;—è™p ¤4©Ë9F*CÌùÆÙÅsNjJÆŒûtTmÆ5]ºùÈײþÝ•ö:¥wy2á›Å­ç¥z¨¹B>«¨ëª I//7�„ ¤BÌ,3‚„ H«­ÜX‚h$ur5“ùr¤×íž'¯»[�fêŽÉUG@òy Û·8xý°ºš`Óö3¾j,�€67¡—›Ãðã±G+W´g•�NúbÐ?¼>ž¯]ª–Š\h’¹z7G,ÞñïÇ]¸¶Vø;Ÿ¡S1c¢C‚—¾¸u5¡´Ë‚©fM¦f'zØ®‹ÿíÿ3ÓO£3?FàøøÕðJ�›0ñ,9 ó§vˆûD¦bú]r ¯ë» ì×»Þ¶D÷ÔÈŒÅÁ˜“w»×mÓt'AŒ ²SQAÈq„ÞI€˜&ý²¿¿|Wˆ¿H—ÿffNIÐ/gÑ����IEND®B`‚IMAGE 2824 ./arch/monster/animal/gryphon/gryphon.x32 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÀPLTE»s=¨oE”^:­®®ÖÖÖ‰ˆˆêêêššš’’“ÂÂÂàààvvv¶¶¶¢¢¢ÊÊÊæææõõõûûûîîî¼¼¼llm~€PII\[Z '¾»…‚€8##lfa@/-J86.! 2! ×¥k cL@ 3.&âÒžA=5¹‡]ÎXõÌ|$!â¸~ úæ¦öÖŠj[WúÚ’â22åÇ•úÞ–›~c˜tXÚ22K*‘H���tRNS�@æØf�� öIDATx^ì˜Ç’+¹EßâfÂ{”¥g›çýX#éÿÿJ(²GEô‚dÇìt‚ .Š‘§2PõêÅü�kpàžø[Bçy½v£ÃË-ÏÜ*0èiï´Ò½pf?¾ÐL1èýI‚? šim:ÃÄ~zI&�|Ú˜ÿDM38eålS²Ñ¬£¿ÁÿÌ:Ih|B“Ò:¨^MZs)¹4r•Ò_«�(†ê“ÅB ’% çA´qŠBD "[ò ¾Î½.œs)Œ'JÁŒ7ZÅ%…ìƒ k®)Ÿ/_a€âÜ(Ë—£'‡Uçú)Ñ+Ï‹ äjÖÁ'›j.õJI›O,¥62�z½—®óe±Ÿ$²ä$“mЏjœ}èØ6ÁÙÂQ§û˜3¡$[f2©E¯9å,SâB`¸VÆÿRœvEòZé)thØ’‹RÖ&i›-ÉÉ\l@Î9ä3¥HÉØ»©5w{îuT@*SŽ•m´5y‹Gaí¹Æå?­'cìÝ Ùtžnùçzú§Ì¶®X-zAOu¶°˜LS%1y”¡@�–ë©ÔºHjJ\ÕÐeŠ6ÉöẠ$“& Eåde]Ú:Z¸¸ŸÓÆ8Uøœ†v<ŽdÈëA«á|D£Ê%/+“´1w—g DÌgJ=µ´1H³,&§ÝÉ«LË]HÉ)ãšEOÄTxb¹å˜’qNwƒà<Dãz´ÐùLJ7,¬ çRØõ±…Ž6“QkêuÞ0wh,¡eª5§’qExÒ>žW¤Ú~ÐðÄ©Z»&/lS8r‰]+[®æ "ϼÄ/8ö½Ì¥X£‚qz3EVE—ØágÔœ³Ìœ8ã A®Ù×sp¥)ȨtÇZìCÍeÝk±éס²PUJ™³Í×À†Hª0ÎSÈËìR“Ø'T€ÅÒÐ%Ëul‚ëÀÛÞÚ)§”¦š|èBoz¡¤•–‘΋7ºq‡Úul;-ú)¸aàJ…´FvÆ X”S/f^] záKNK?DÀ7MÚç²QÔ..Ö`,NÃõ‚¿Ò÷äzÑuR*C‰”ål%€°L¢j+w7”€ b´…T:hðýf‘&í¼ â¼{§Ê¯®YÝy®˜†`ÑEQOº÷§c‘–&(¥X;Ü"XØãŒ×Ó8öJQ§Õ$ƒîÀ°‹ß&—6»Å ò‚É^‡Dœ”V‚6¾pçÐa_r=ÏRn<¼ãOTß+Ž™”Šº™l€Äx o‘s¤Û2@ÉOk^×ZÕR£qAcLVb6À»wŸ~À›oßð‚™:nÜÔ÷udË],@ÄÞç§=c& ÿb›Þ]ùŒ§)­õ°Ñ‘¬µ { !²<—ÜÀ[ šÂðë¯ðÓÂÅ ¬½&¢µ!ÂMlÖ¬Hë0) à#-Õ“Öâþ~TP=æùå÷ßüñ§û‹Ù”óCƒ †„ÒÔS„Tw:8FÀ}?õšÞãó/ßúíûo_¿þpÍYUæR+o†>æš… L:b·³”ѾÂûq§÷ï{<ñøøõëÅEŠšIx+«¾³›  ºÀ¹Qãüp\­¶ãøînÿåñññû÷Åqñ@ƒL XPΉ@¦…°eidÌ«ÃaÕ˜_ßm>?6¾|þüærì ö=ôªÐ¨XÈu�CÚœ“ÌÃÝînû°ÝFÌóüî Þüðæª©ŠZS.²ÖiÒ9S¿Qnï@^¸¿;«»yþ0ϮۡemäQ3£øHVKÆÐ½GiâL¸ÛÇãÃÝîaû/xþz#q%¯ö¤ ›R¢8¯vÇŸÛÕñðï^`�Êu3m¼ÑŽ`yD²5gƒÝî05ÁÃÃ?nM!²deª#çúޤæÂ€õ�/ƒ0¯îWÇ&XíÞ~À|“�Üq)%öNÙÒίaãœ+Ûy÷úa{|XµnøðýæQÈ¥Z¯´ÞÅເœÚ·Ùç] ½Ý®ÚOK/{уÍd×݆“%@F ¾šW­ú‡¦X5¾|yÁk˜R˜=™0 ^«è 6�VK–îÛLz|6\"0ý>ô‚­uY†½GíÜ­Ž«íñmkåÕÂþÙ")v¥ªÉ=!³G[éîÚç¡¥°Û Ï æ‹ ƒñÄäÉDR*P�2‹¹UfÜîîwKšà°n|sI¤‡Ée¢v}ð$èÂ|XÝmÛzº»ßÞŸ <<#øçÌXˆÖæ½Vd;ÙŒóaךxuÿzu¿;¥ðós‚7¸øwÚ+á‚ò! =î>«×¯_¯vͰÝþñœàÓŒKN/S/:mJr  ÃÐC…kF»Û@m²÷¥úÚjG[«Œ¥h<„Æ)3@^ÒùÿÏêP’»µµ‚¢Ç°iúá ‘¦ašÒéítèDZoC0 §¢P¸¯¾Psï§ßš3Ï·o¿|mpLOÍéÔ QB×µÝÒG- ñP³Ò5“@U‘L4ÕWdþúôû[“R‚6X[ø 0ÑRŽÅ]ØL‹â8 xHóösl©%ZÖ |((Žð  ÷œs©¨[ ®êkýŒóÛ[zJ‰hl‡¤ÃÇc µk˜„Pa.5_g…ª»‚JølJ)ÖŠ*8ô]-à–V*ŰÂle©A]µh¼OµçfµO:bŽÔ9èû·—‚K$¹Šcf±‰æÈ-k!˜¦\)Çb*S3 -ú®ëÆÈ¿ *dŒ ß?v-Y3%©Z‚\ÜÑäðþõÑõŸ^q5 ¶.%4‡)·Ô÷!è6‚[UàÚËdê&f wõäù¡fhê€Q7ŽÔS³ë,%$ªjÂÕˆ˜–ŠG‡¦&{¢~¤‘Úã.˜½fÄS3¯wHÓÔM4vDÉ|ßq“XJ.Πͳjc3Bj¦6ƒ(7Ç‚ÀC‹U#¨q¬”œµEÝò^Ìs¤˜‰ˆ «ÇÜõHå¸û{‘«Ö +>fÉù È|;î&æ[ƒ jûúÌ;æU ÁÄ$Wœ_æþÓKxvÀdîe¾­jLÛðòÜÖ¶?¿ï°ÎW_T]ت@Tq% ×?Ò,:<<Ýo´.¥ó¶ 7Óí\ÒC*øò8þ€;¼„ ÔU· íÃk· ¾œpw lª—‹F)KçŠñṯ- ç÷ÏBv7Z âîY±¢—!Ò/ì0(³¬õyeÂEƒá±v.ܯ€p1øÑ•ä{m¶Ê»k�›°\,.…•ÿ ;aø Ø03ÑEOÃ{ü|Ò` f°Q¿ŸÏ/)!ø¤\€ªèÿlgë' �aá?ûwöT÷³ þ7þ}²Eœ�;E����IEND®B`‚IMAGE 2819 ./arch/monster/animal/gryphon/gryphon.x33 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÃPLTE���»s=¨oE”^::6,­®®ÖÖÖ””•õõõœœ›êêê~€àààvvv¶¶¶¤¤¥ÊÊÊîîîÂÂÂæææûûûllm‡‡†ŽŽPII]ZY¼¼¼Â¾»lfa+ 8###@/-J96 ×¥k2! .!âÒž@=4ÎZ!cL@ õÌ|úÞ– º†\$!â¸~ ¡€d2.&n\VöÖŠåÇ•úæ¦Ú22úÚ’˜tXâ22J 4d���tRNS�@æØf�� îIDATx^ì˜Ç²ãÈEßæfYo` Ýóí}“ôÿ_¥[šÑŠd‡vs\!˜'nf²àÍßüÍÍ €ÿkqàNütµxïGǦÉööç-À$ŸüGaù0ÛNvMkÓÜÿœ€‹:ùð§*�'ïx—ÆÀˆ©uÃUIð_ü4‰qä5@T5Úº¤"&gÃÒÜÅ€‚N1¬!„"4ùùFœ³RD¥ˆ¨”»P$>¶~›áDåXÅ·¿i¥÷RwT1Ea9�H&*¥^…î_$FâHr‰Ë°ÞÎK?±˜E)¨\¢ eª`5ˆ“RAhºY)TI¦ˆõVL“tÙäø2­‹æìüÈØÑ Ê1Jë-o‚`t?¦PŠ*"«lªBgNEð?ÛÚ"Â$»Á;Ṯ‡¦V" ¡r í¹!üÚå•¢TfÌVOQ73ËÏ�ra‚“•QÌä¢XNÀ¹«Ö.¯JŒœ6„`­îXpŽ“)G„ˆÌ³sgÏahZ «a况sª•r;8ò<‘§Ó/…‰xœ†&ÒEƒ¶ø C0Fe?ëÎŽ^Fæ9Q•’k¼Us>S�ÒÀÚ¢Ó§ð†õ=%¹æR“nµ ¨ˆÌ²Q±ˆ¨‚aíÙÚ6ˆÊjÇdçƒÆm[ÖÈæhˆªÞ®Ž¬L#.8õºK'ZëË9Y-nCÔ!Ù-ª^åu J±,pùÉJ>±š„Ù&X>&#ü$Y.ZÆFTª@¼³Áù剻ìiAÅËÑÔ ÃØš¹­Aˆki•c¹œŸ�’c§Ú+~nb™Ä}²\ñ"E1@¬µcd†Åt¾ ÄèNÅeç¤ ’Œ·ƒ¢¤†·Ú&/ Hˆ5ƒ,3\:Áë@²0TlÓϲ¬Û%g©ƒ3çFE¥”FÜ\ú&%‘ÎJë%'¥È;ßLM'•Q†!ã´Ïj  ^ð˜y;ÒjÍ"’]›ò˜Æåtx³D¸¹ ØÖ­k^KÀ¦f8•¢¥oZ—X1οœHe`Rw±àÏ4kš.*ò@™¼a‚)�þ¥C¥0£¯xŽ!™‚‰L­'í=ô-§ÎºŽ€ðrb©h”™p¹@ð>±1hiRâERC¼qQEÔ[k‹²b7”òÒäT÷ŠX–ï¼v…M æ² Ša×=N„Ȧ‘ŒE’žuÕ”="žj8À�Þ¾þ€/Ÿ>]¾©E¼ÇFs®Jd£õÒ·ÞƒÐ3c"ŽÑï,›·?±H½¶sÓ<u16…ÌNT€7ݑ׿ÿkºô5–“÷µíZwõJE¡"X‚ˆ‰r4|yÛkîyƒ ~Y9[Ñq"šQÛê¥Ä¤ë:?HÀ£§ã×1hžú× §oøøþýïßÿöÛ/·gyªEÄJ"m}¢Vv¾¡ ðñøÔ6Û~è‡oûÀŸùõó¯ïÞ}ÀCP¢ÄÈ´n‚ˆ¢µž‘ 1„ Tæf³Ý/»û¾û0¿ÂÊÝÝ»wg7)DT¢ Îq™l&£=Oh1[³Å°y½ß/ËnÁó§¯8qwö A)x¬Hk[é’&é)�`f:¥xØÝoï¿m÷ýfƒxáù|Ìæt§Y|/Y«&•…ÈJhÜ.ýö°,Ëfóøêîîîóç ßJbÌ¢¨‡ÇB³–v¶ €XñXnýa[›´}Ôï*¯>òÛK P±Rž8c}ß=ùÜ*=nQªX°ìC5ì›ÍÛ/øòá¸üÝò¶ë)å<v@to`rÎİ»Ý¿9ì—ûåŸøÔ_ÿ€÷NÄvÐcê,Á°ÙD!Æ*Xkvoqs L1™bCÖ6#eÉ Œ˜ˆÂoŽ‚uU¿ÿŠÍU°‘•RBceR'ni‚ sfVÁþPì¶Ÿ¯Œ�ij“íœõÈ"KÄjßÜÖºßîvËÚ#üÜ1h{“FͲ! TÃfÙÕò•jX^½ÂÍÕ†RX)‘ÕŽËà[�»‡Ã~¿¯‚z"íw×GHMã›–$%>¦äìÆÃÃ~ÙÞlï÷KM°Ì?Û¤0–(›j‚`‡×»‡zÕ&Ý×aïv߯o’NÎ1ïh $¹'jèêmûýíó®¡N{wøŽk D¬—)uÖJG-£ßì—å~¿ßUÏm°,_®`ƒ•`Œ`¸$3u@ê7û×Ëöa¹}^ª nRpÝ�~¼‚Î3o­çÎËŽ<ˆ×O‡Úžç皢FØ~ÅåÕÿQAehÚ‘“³Ò$¹Ô ¤ÄáßÅšo‹âHÆofSp,Ër¯‥1›¶­¥ì©i_Õ}ÿouUÝŒžƒQ—»‡—ϯë/±Ûv+XV…qwÀ.©rû5"±C’þù­ýëÛ÷¯__^~,Z›M»hwC@·_[=à3_÷Ñ”R䘄X¹\ Ó˜’* ‘¦Ù9“L�8A¦Åæ`t=âÚ×…®…À„½Ç4çlH{”‰É°&G? µ‡ï‡]-—>ÎË™6M™±ø‚S…”—æÆý‹¢V_¥.«äÅ¡³mbô•zÙŸG‚³e.\d””«»ªg/»JΘcTÒ©Ë›¶C Ë.¬õr�œ„/÷ Ó ©€©qHClV»v9`@ïÓõå�ˆdv¨† QMhšÆ^“)'…&O‹nµ„Þú™ « ÈüPJž22iJc>É¨Ðæ)gÄú€x YH>4áÄ"D€"jŠÑ3åq©´«)G´ãÛ0à @Qp~”Y™‰ÙPT•Y“KY6mÎ+´eÛ™ ò'»‚‘½gHÄä 5±’` 0µ96è`f�ò �DüÀ$@ÁÄ‚F"áò4õ4vk½ào$u@`Bcƒ ¡i›˜ �]J0Ì ˜¼¨îI‚`OU¥9ÇXǾ‹0cW66k6¦K’|*r¡ÁëϹƒÊ•KE°¤PeÓ¿Aßç‚ÄÍ6À}�òÆ•X�OÏÑØ@%öû·;/Ì)79±‚’±ÂYß7 O›;‚ì{ÔSÄ ,”ô¼ ûã¾<#Þf_òoîª$d�V>w€íÏx|ÙÁ1p“ª Á�‰5}p€×_Ýq¹?ïûXÝ Š ÃéCáéÕpÔaOÏ{IYÇóÖO¿z÷¿û ±€*¡|dA€cáƒÁ1’ š4 ‹¼ž¶Ã ˆÊ®9M…dŒÇpùl¤‡Â$TU"ˆ§¬\ëè÷Ão °€’ž3Œû‰b ð8Lç ooûíªÓãYB¨:'ƒü=@ ç7•â¿ûëÅ©ÿàíR`„Êü´����IEND®B`‚IMAGE 2841 ./arch/monster/animal/gryphon/gryphon.x34 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÃPLTE���1.%»s=¨oE:7/’’“¬¬­ÖÖÖ¾¾¾ÌÌÌœœ›õõõàààîîîwvu¶¶¶ÄÄĤ¤¤êêêûûûæææ~'‚‚‚‰ˆˆllmVSSOGFc`_ 2! kfa8##J86@/..!:./ Þ®r$! ÎX Ò¥sâÒž@<0õË{š~d úÞ–gTM¹‡]úæ¦öÖŠâ22úÚ’îÆzª‚dÒb‰Y7Ú221ûxÍ���tRNS�@æØf�� IDATx^Ü—×n+ÙEç¥Âɹ#3nÎw²Ãÿ•«›šd†Èñ¼xéA€(ÔÂÞÅsšüæÿ"ú+‡ ¯è‰¿DsV‘• ›ð?°ÐPt°Ý00!7ÒA4kÇUB¿�3$•8K”1δp{†è‡”Ó¯#Q4]ˆÉ{¶­5ÇIéxƒƒ~#'e«G¾#‘¢Êf2[�®µÚj­-ÅÇkD¨³…ia‚ÝeFa>³FDŒnqˆˆ¯s%P•­­•é‰ZéBÌ €^Äl²âÒDBÂ5%¶D¢!¯g.ý™1t2_(IÕ\ñRå• ôn)Ú®]«¢;qLp,ž¥âú¢Pm©Ö•&1|GtÕž1GvV4—$iÌ&m-’;§cj2ÝÛe¼³<=w ì-Ó©a ÕkeÆ9Gœ˜ÁHA͉­ÕÆ-=Û@’>ÿº‡Ò‰ŽaPFM@'Š"éž"²Óλ¨èÙ[PÚU{)úÒ‘÷�sHI‡Ð§™(91²õëÿxi éŠÛbP×1,ð¸Mâjã1›„‰hyµUQˆÄ·†DWè@¿gÖ®µ–L*ÏDáKáæŠ¯¶4fé¹ó± Mö—÷j­x³‰ t`:ìÆ.jJñV¦ËÓöŠ%Œ£^«Ãå7™1k):#èa”„Õ`}që‰(\,]sévU 'Ƶn-…Ψ0²ï´ d×XABÐ +æÄ„»I“«Y™„ØY‘°Þ«MšjÕÓã¢ökCþé>‹ÈÅ;§º9Ž.N@7B*¾Øâ=;¶é AΑ٠•VÌqZD.™œfÍP¡jEÛµ¤R¹iKWdt|Mc€è`Øæb«š`Bʵ¢##|‘†œä¼~ÛÜ1šÊ$„iÞšª%ˆÙ £3dbâõÐÅåêè<©„´Ác�K‹9æ)M£)®8¦BÙ®§…S¼ñ !(v ÆíÖ„!8ÆTTŠ#1]ŽKå$ùJhcõ­Iš(¤i»…hë`rcâêb&Áª`×]/ø=aŠaUl4:4Ž-{"B™ï½óNÝò±Ñ$í¢³1d qç Bˆ€D‰üz›”²‚«! ³ªvÁÓ¶ËM%¨€Â}ñ‘‘ — Õ­ ÝÔÑ‘. l7›ÉLgŸÇhˆ˜œôï]qi9f·l¥µƒT#ä†\ ÀˆC¬NMé¸,Àºv«@ ‘~ÁL“amÑd ÈÍ!y:[Ñ{©¨2ÓmY¡ZAM˜R=«Ms&¤Y;' ¬#k5ÞÖÑol†°¦ ™µÒ•HÓQU‘%¢o¿{KŸ_½ºÒB0g�#Œ›·6³æDùò¼vˆùŸìÚ Zy¶@E@D¥‡¡Û²Rl"@Þ"¤ V»B_i�ÌÝ?*¢ž« Âd뺄ª° &á`Æ<åD¢�e›Šsôøb ÃD»ïúéË—ï¿ÿáõK(¶zï†nÒÖ[iŠÑ0)š9Y_´nšhú°ùn| ¿}yùÃÏ/þøñís3hO‚÷8Fc=›I¹.ƒ¢‘Tæ%Yåov›yž&zâÝ»Ÿ»¤3-@£‰iÈ&£)»ti/íöçýáa³y»?¾y÷îåË—;q<[@ì8ÐM¦æÑcQ™˜Š³¶•Ri×?<ôÂîñþÓ·ï„7ß~ûùŠOIÞ7k‹·ó¼Åi0á81¥Ë÷8ïmwØŸö§Ó݆h÷øâ³ŠW~é‘é¾ÔÀ<oÆX 0uêD¶V_l¦Ãýùá|ßïw»÷»WóSô«ôøA¶ÍA¬j&çZ³¸ëçÍy¿— ïÿ}îµß¬¼æ!&HŽ7Ô–5 Sߟ¿žOýùüž^Ü$Ð\ؤr‚Š ¸2‘‹Dl­ÍÔdö©ï_ßÓî¶¹Öš¦�©M!DENEàÙí¯÷§M/šÓû—7wäkiÑ@c@ÔU&Û y±ï}:I‚5‚nT\fN±ãæP¤šÄ°ëûûý©¿[ ý›7"¸ÕP+ëˆ ».è˜ˆÚ Êþþ|ww·Çaߟÿ~{„4My£AJsÉÛH^º¿?÷§ó|Úßõ Ç?[RRÕ›mHFÂeEçCß÷KE{‰°n/©K1rލc0“Æ]ÿú´¹;¼>,ïÓC¸ûÝj@„n9§a2G$R¸{ßÝÉ𓌗’>Ýÿ¹Ž4;Ï:‚Á¦@ ›”¿—zÅ!‚ýÝvÜ^lfÆÄl�óa÷p/çX‡…~út«`wIàØ²F0èÖóãi¿9ßõ¯b‘0ÿ]@ä?þ2Œk‚¼$×ÿjÆìz›'‚(ŒSÃ*ô XPwl{½]w¤H£tnúñÿÿ3뺉‹òBœNdk¯æÙ“9³Ê†v]}¨·í0 m›æ€¯§hЬp©©õWŠ÷vIøþÇŸìjüûw¿Øß áö¶»ú`„Á†°†ŸŽ"'9C™YSR6.LI-L·_¬ ?ÿðçÝô°»«·]¶`Úž M€£Šp“É bÀ¤èaªQçwïî¿Üï¶]ETù‘×à, T––ˆªEQL ƒ°IM¾p¬J8¼uvmã1:ßc)#pŠ�1@Ê^_S–º’&ŽQ3Š…÷ÁÚà€ªÇ çÐ2a�"1ÍrñÂÕ§4¥r{¨›†rŒÆök! ]˜@á4ÕT÷aë²,3%¹3”Åþ®ÛVÔš†–þõ<p´Ì®$/nr‚ÃPîíS$UÔa ¢ÁD„ÿrähN)2KŽª©è‘1�êmÌÀhA]và<â´Ù9®šCAbKMYÅ{°PסØRkõGªWÝÕHXÙ 'D±‡'ˆ–öu¡%þ UÍ*@¤˜T½ì£‰Õí€P Dí@Õ�«,¨ï–$‡*Š3„ÀöÊ ̶îÃÊ ³DKz¹q�ˆ0OBYö!�ÔùÌ`… yØX2 aÒ„ïCl½0º>a%�¬FPx×Â_‘‚Ã�t•Öhó¤XâÛ‰ˆ‡‡Õ€<ÁÚ28B„â‚ðôøØ=ÆuDv@b†2Ñg ¯Õ´ŠO/k�âó룫àC°è°yî¦5›ÝÅQî}÷ªl$$]©6ÏílæmCßà2‡ÓƒÊÿWÚ< €·p©ƒdšêËϰyl>u³a\ÚöÍã£Ý¬ý’@ÕÍòÔ¥JÌL˜qªnH„€™àspRöbkÆÑCÁ‰”â\íÓçcúB�b$œl82'Q™ÍËë«Ú5qö€“ÙšÇàåé5t¸Šp¾�^0ÞTðÕu–|é’a…µ¯$D!˜ä”€cO¯Lt&ç3àjÍõÿOúÔE#òÎ����IEND®B`‚IMAGE 2904 ./arch/monster/animal/gryphon/gryphon.x71 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÃPLTE���»s=¨oE¬¬­èèè¾¾¾¤¤¤‰ˆˆõõõœœ›ÌÌÌ’’“ÔÔÔ‚€àààvvvîîîÄÄͶ¶ûûûllmÚÚÚ &PII^^^8##kfb@/-J86WUS)2! .! ߯r$!j[WâÒž@<4 cL@öÖŠ2.&Ò¥s úæ¦úÞ–îÆzÎXöÉy Òbª]â22¹‡]úÚ’Ú22:6-˜tX”^:ÛC‰h���tRNS�@æØf�� CIDATx^̘׮ëÈE 쪎9Êé¤Ãäèôÿ_åné�ƒë'I㼎>gm±ª»Héoÿ×�øËÌÞ`ðW¸Ó* á«Rÿcûj[’šœqi½vák=^¹×cUBxòEçˆÈ_É·ÎØ5pŸ½ZQ|dŽÚk.5…. Âö"‹Êà}ÍÌZ·ñ×¢s[3Cû*'nº‰?¸Åî»·Ób%’*8)MõOÎöD<‚1˜¹fi ¸ÚŽÖ4ó,¤‘U·Ž5N––#9‰Næ óø¾ W€kõ¹éÌ‘«)%gÝéq-—Zd`âE.õC>í ®ó¡ë#3ëÆÃ̤ۙ†nŒe1Þ8ë[¼¾Ë@ð9j¹¿XÇR¨ØªTæm’ªÄvvë‘ì…¤ë; öÜbœ92Çè ù=Ÿ¤µ\R©á¿°:ûr]€¨1Gç<*3è§*×Λ›J@Åò(à…žÜ®í�å¨ù\ùœ9Ž*0�vÖM~+ºL8Ç<Þ¿èÇ©E+®î�ÿ;ëAìž(�_k™]JÉÚÒ'‘šõ¥µ<…éê95ÏvDä~ð� IŘ*ŽŠ{°°k|Eºe ƒJÍš™3Göý#¯“ kÉÌqžÜ¹3ú²DÄÀte„¶‘:ë¡l *Q0.8A…VïÁEžõ8w¬RW—HóÌy´Yë³?¹Ô«®”w$cÓV&…WÐ:lÝ C|^9yYCaJÅíUª.¤ÂÑÛ:%ßZ޾Ý~£nœsfæK!¼ÙMUH![´Õ%‹Nk—OÑ“lut}Šö1öݸ¸d¦:+q "ÆÌ‘ê´5¸prs%s}�´e¯G‹3ÞBxíšóv\*Ò•Q>vƲ©É™×šµ¾¾Hhº[Ϋ3µ&Ë”›„ÖY®•ó¹5C6ÈõÍ]@ö‚ÏS`Æ iŒŠÕ³6ºeÛäz5%“.PÓ±»oµøËMX‚1Ï9²Q“˜d••sìz½HÊÉ»žU0fý9@c†ªEpQÊP#Ž)$³Þ*ÀŽ1Y·ª¦î¿ ö¯ƒ�€$n¾t ™Ðtuëu*iÂWÜ�á™y¬q €£öÑSq™…PS¢Ih–$8Úbîy~D37=€HÕäÈ©ÕQM5%d=hM¾# ÄØÚùŽ�DTιN†¦êš%š°Æ+[tî€.‘ãxUÉ|4FqÓjµvU‹vMwÿí`Žç!œuÛ¢"‰¹Õ •s†gbéª4¯“¨y¬ï p"2kŽÕF:éK*Mû\ÓV\âõ½_A }Öˆº“WÈÌžœ•†´÷æIÔ›ðæÍ7øé͇@Zk„Ždk¤2¥äªÜ&ej)Öûâýõ 8ó!FÿwI´�ú‹#ÛR*id676.LâõYå†"Ÿ€øõ× É…Å±…švöÖ½Ÿ¦m «Û·ñÓ§o¿ýý»ï¾ûvÉ‘ «§gD=< b¶’hrÎLI¹Æš’äÒuøéû¿ùþÓËï¿,>“›þ¹:L@̺S߃�³–ª'{Qü:)ETQuU\ðã§//¸°˜>>ßv ËM³0(r"e“‰öÚƒrí$Â�///_¾ü0½ù°Zmö§Ãâ̖³.þoh–Iµ¬í6ŸsϾ¡xþí·Ÿ¿t~ Ï‹ÓiyÚí– t‹n^ (#C“ñZ»êèbÏ×/Ño>|ƒçýÓbÕn³yØ<.ßàÜå=�KÆHUȨ” Òº~\Nß,Þ-§åÃnw8íAóèÃDVÞ¬d3SP¡ú8˜ï ¿éõÙV‡ýR�øi›L˜Hkw<êÌZsÎwøŸðî°[nÇÃòOš›Ö؈€™]¤÷êx´³[éœ{À]ƒïþuÚœv‡·»ý‚˜cÄJ0 ÄdDÍ–V*8u÷Ï ¼û¸\ö+8,_+4æJªÔpTYIÜçàåÝæ°9=/c\{ F`nÞ1‰)%J¹ϳÅ=þq§ðÐ;ý´ÀœµÇÖÎ(5’3M¶µæ…Ç]?ü°ìµ»àáa96š†a Y+¢T]r¦27ûüøù°ÜŒ€Ínl„%:65òª˜ ø3 À»íiÙÙ=lV‡ÍòðøJ-ÆÕd¡j}kÃÝ¿<lv}=.—$Á¨k™ç"œ SÕ$§m¹÷þ½ëú}Ø?íw«M_G^ƒª5"­Mn¢Ü[ éû÷ûÍ~¿Üíú:Ú-Ô¬"c YA•|­%tÿ],Þ–ç€åóÓéñqøA EÕ¤¤J‘2“#º3�¿l6Ý¿Ü?=?/?»ÅJ�ND2ެ×ólï.Ð�»ð¼Øo>¾]í G¤Œ¬F¦`¶kþÔ·‚^÷s‰Ï«o‡<ƒ)H')0s´³PÓú?¥š_‹ëF Å»+¸—RúR“µóÇöj±ÊTÐT»,øô~ÿOU'uÖ ­7Éq†óCšƒüLr…Œ¿BãðåêºzzÚíªýoß¾}ø¾ÿåg…TÕ7‡™P%¯"ˆ#Dq Ì›z»{ùõe¯‰"l0"Jj§iáN<#HÒúÌ8ßA^r}ì‰úeŸ,;pÅtzü�ÉJ)ÁÈ…ç&,�N+- �×»]](¾!…É$ˆŒ L<[R– X!lúH)3oÕ>  ȶ)+c (ÀŒŒ2aF°Ž¶2¤¦oBÜnÇjHe§É{Ç8E‚ &ÉͲ'@`¤ÿpßGŠ˜SªREpIãÏ™ ÀDÈdûð4uçyÆ*k·Ðô}×u¼Ic[C&ç"Aשª»Cüœ  �ó`+TÜõ3 ¿¡¢92Óh�ïÌHC.¥BpW-M@W�tÜpâq3îRõB�¢TÕŽ‰²ÃíÃèÕÜ,€®¬BS37̃ÃHÎlŽsVÃ^MI3â2?í ‘W�u[m3 mÆj$sSUæì­¦fJD°Ü>p·/l$JépØ2ÑAR*r(QõÀã•ê'¯/îW"ië¾”¶ã9ÒTÄ9½4ÏlÅ_ÍM=…ƒ’6Ih.rGøÃé6�??S±Û´2T RHÜÖ€½î¨T.ü•Éœ¼�äVÀß'>W§÷Å€àj¬(Ë# ô&�ïgÛÃëi ˆªƒÜ!Ip³+1~øñ¯ký×3/_;â!5u#µ-p%‚ø÷O3àÏwþôZÜ….ë 26Wš·ÇŽÎ„æùa³ £…èHe_çQð™Kl¦žPžq€8ßú€\Otñ‹ Ôæa:<ÙuóùäÈÓ €‰ºó¥WWCÐî5|±Ù¢Y&Råûüï ý×,ÝFwÙÓé×·–W‚p«(To_ßßÞ¢XºCÙ”ÌïóŸŽÃ£fûE¶È(‹Wü¯Žír<¼˜Ï½¬|ïܯ�n¼>QÛS ����IEND®B`‚IMAGE 2834 ./arch/monster/animal/gryphon/gryphon.x72 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÀPLTEÚ22»s=¨oE­®®ÖÖÖšššîîˆllmûûûêêê’’“àààvvv¶¶¶¢¢¢ÊÊÊæææõõõ¼¼¼PII\[Z ~€'¾»…‚€J86 8##@/-lfa.!2! A=5×¥kcL@ $!3.&õÌ| åÇ•â¸~âÒžöÖŠÎXj[W›~câ22  úÞ–ú榹‡]˜tXúÚ’”^:Œ¤¯;���tRNS�@æØf�� �IDATx^ì˜×²#Ë­D'"QÞ›vôf›ñþxéÞÿÿ+U7gdBó@R:oÊ ƒ{e(`ƒ|ñçêð瑽¬?ƒú°îXì(%à¿LïO2(í¸ §Á…?ìn6†¨ÚÁ‰åN:G‰øwøÉ¥<�wÒc^KæKñ5W›)L @ ·ÏInlp> kk5íeŒwnàšÓš ¯ÑDÖÔµLø‡n¢³Fn2>%5ñDiÓò¿I÷iƃYÌF‘2×ÓaL-–­SJ±Î Ì$™".2ßÄšMefí$p5^˜*Š/]ꤗ׊_²À½ASry/q2Ž+ùÀÔð¾ØRMYþ|aÄõMÖžœ°Év=ûÖEÞ®?þ† _«(µ6/‰yÏlBS¬5k’’~F/™ó¬KtC…YX1Y|±ÞsÞ@~¡§AñŽ T0øWå*˜¼Ò ‹^øìYm2f~[�Å1§Ù©knk4@¬Øöø"jï«+@ÂW±d^Tßð~ °%sS9Ë08gmý®¥È>¯¯¯�•Òø¢áM™�@‰$OåE‹à¤ØL]Ô>môõsŠùlm5Âúš@ŽXå© jsJsYò€V¸©…±®ÙÛbK©µZ¦ƒš(p>¹Ž$õ=ÓÎ,™YŠÀoÊÕ=ŒZü@­¥ˆºðƒ ƒbJeG©Ùæä8¾ø^ã¬ÔõÌS³I,/(è óF0:>Y ›Â7™¦’Ý-CÂQmåróÐ1¦ªÓ$y—ŒÏ YfŒ`9ÑÿhóL4¾„’]hx¯ºaê¼…Qü6 g5£Ý`Ô\Xµµ ºlœá,dâË„°ú”°h1a,¿!˜ê(v€Ã“©i6§eC§A9Ö9—-Ž3‰¢Ö[ [_f¨‡GrÉʸ0"›4ô: ‰NyJÃíU�Éo3>¡À3ëmRZjŠ)AœóÀƒÃ¢(׺¿u•€“þ2ä*<T';+•ãdHø0>hå:ÏÖÁ¥ûvl<»´¨¢7LF¥‰OÆD7œ´ @nÏ‹­µ=Àí›DçmVÌ9¬¯¬p*$¹-Q*¢Ö˜u÷²…ÈlYr$ R18rDª6:Ja] Qçsæt×24yoš0ðˆÖ jš¸áR¾ .=Öõ®Þc€*}ñb¹¨ HJbàNçºïG¸è„¦» ˜7—ygNˆÐ74‘rŠ{F–\4r~j`ê}ë(åZáÈG$o¹œ8–ùIs|W¼™W¯^âç׿üH@øÂzRR‰§ ™0–»Iwõ»n™Ò‹~ñ%ÿ”ˆ€ñ2ɺ2`²dŒe÷¨õ0Mýwø4 XÿôÓDä6ã€ea`H–Ñ0Õ*D Êm&ç\Jä•ûO¿ýö¿þúëo#‚K|ê_¾ƒ_®‘¡Ç1|HÊEÎ:ÉNÓF­»Häbw~~ûöý‡÷Ÿ>|úoÈé×ýNcÌ¥ÖR;pHÒÉq•r d½ÈÈkÛ oß>=X4ê7o†þK_ø\lÍy@‡Ì‰¥IUQs‹€Í±ÙJ€'�><==}>½Ú÷ýaµ:Æ¼ì Œ:(Hžë4oh‰….òÕ%þËï¿~júúõüçmã·#–™-=)5 II…À1+åL·\Ñ—?¿ÄËí~чÛóêÕdl1Õ[0PgK=®'¥"ó³®7¸|ô¯F6¾;¯ŽÇÇó~LU\ZI‚iÜæDµºaË÷!îšBÛÕa×ï¶+ƺ ̪BªïsF4ã‚{ø{|Üÿy·Z™JñÏ�\§yG•Q¯6NÝÿïÿº:¬Ž»/ÇíëZ«÷è™'ã4([c"ÜÏññËjÕ"Ø­ö+¤Z¢˜a¼P§C m%g–åûøðþ° çývô¬V†Söèbp”t‘<èlLe»+àãóªéðÐm?6F·©‹$‰BTÁ¥X¬©÷Vàóç†ßšÁÃC«ò d·l;6(ü‡?Ú<=®ZŠZ›ÇÝy@ ÇÌ]œ¦”)ffÌýü§Õ¬ãáߵ»t>#tqH–åÎIâ¤tÒZ^cðƒ/üíêáp|8¯V-G;t¬‚"ãRŸ’0]¾:A#~Àÿ·­¶Í`¿ßûC»Gªñ‘ˆsN²£H,F9÷ý$‰ó×9€í¾‘Û,=¼>Ç´HQLaRYòúɽ¸ÓàËn1Ø®ÞíWçÃj{{ 8é‰;ÊYxu†€?Æ7øz8¬Úá·ûfðæq÷p!‘ã)ò?ÔæÊöÂË?~ÁóÜ]ûÖ`ãþáùËóq‡Ä¡'îM¶ŸÙZéáš}xý#ƒ–÷vþÀ»‡þyØ=Ïè-%çaâÃäþÖ¬¶6ŽÄ`xSý€ûæ ƒϺîJš5…¶Hí±ÿÿ_d{ÛIØKÂÁ½}yž‘I°HR}‰\T Ÿ±céÛÜćRš·¯ûG«0eœ¿¡‚ˆ[D;U¹´ �–3ÀœB}‹Ø–~ÿö×[óK@«€EÔÈ\xà! �dg�ÊgÅØÇ í„S)ûòöXI„(¨©«Šp¦Öê”Zbß(€ÀÏ �BЇ�K³/eT lÒÍ\"Q$~ˆ!dЂxŠ1¹p80ߥ!xzjydXW/\çK†³dÍö,åÏù‘eð/cFt‡Û¾4 À^àcI(³pòÃ(´0g ª‰,±P] â”A bm@œkë8ÖùSYœç&™ˆãÖãŸ&!@—‚¥ŽC œ¦/ëw30SSqúô¯Òbƒœºû�7 Î™µ5"j„|sV¢™´qàŸFÈÐâm±­ÍF&œIvv 03MÚM}ï*b‡0vÑtPRq÷ä§‚B€)u"¸IP†& P¼4P}Åšj\¨�DΕ-ù7êжe>ܰ&Ù{L8€)×*ª·>öy~=t5ø'wâWÉ)‘ãᦀ”¤Õ¡n°F=ìz+ÿå%¹ÐÙ–?:°ä3Û­‚éu?__'0BRPãz×Þ‡,äù¶ 4wçÊ,®D·ð¿=ô3¸ÿþr*�#P0•y¸*W*¢ë¸û¹pËËnÚ¸]TæÙ½Ô¢×®¿ýüººï»vëgu%Š^+èŽ̆éy‡¾r®–ÂEDéZþg¾ô¯;8åKuw[ùèî¯Æÿ®zhñ£@"SæàãÊ72·k×Ra Ÿ2CGÖªJ«‘�ŒBv{àé¨ð)ª¦këW‚{ðxŒÿDžð£¦ÍÜËÜ”þyw|ß`¢tC"0¿‹¿Áß–x€>¥Aþ‹w2fø*ùrà¬t¿_ðÿÏ?r6]óõ©î����IEND®B`‚IMAGE 2808 ./arch/monster/animal/gryphon/gryphon.x73 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÃPLTE���»s=¨oE­®®ÖÖÖîîî””•œœ›~€ûûûàààvvv¶¶¶¤¤¥ÊÊʇ‡†ÂÂÂõõõêêêllmPII]ZY¼¼¼ æææŽŽlfa¾»@/-J96#8##+ .!2! $!×¥k!@=4âÒžÎZåÇ•â¸~ ¡€dcL@º†\õÌ|öÖŠ 2.&n\Vúæ¦ â22úÚ’úÞ–:6,”^:˜tXÚ22EvãÎ���tRNS�@æØf�� ãIDATx^ì—×ntÇ„ TOÌáİ‘ñÏA98¼ÿSyÎ.eË€aì® ;}ä¹ ª§zºAÞý_þâ/�üiÊg±òghÛÖ.=s‹÷øÎD½“!';wBý[ §ÃYÈÐ7WÞ¹X '–ú4 ò$€ßŸTq�nSwaIÌŒ£É!—ପäœ(:§Åã?\'ïx)9ë¬+FˆNÞu´^QTÖ3¬°Ñq¸BUåŠ6ŽÈG%=Iuç§èO§Zg¼bÖ˜^DºTg±°ÅKïV„H.á„4+^¦×Ó\aÀ¥ò\g>š±—Kâ|½ˆ6$TJ™§€ ¼¤ê›Ï†ÓåòªÊ›±ŒY¿ hí�”sh„ò11}ޝÂXïéò‘q“3s.&'ƒŠóÝ$RàÚNVøoçì¢�ËÈFm ×K–™Œ"Ëæ%ç¼(;ž•R²~Íß×ï ôÎpªð¹wZ›`®O,*Û°”l½/úýo6áÒâ&óSò<³Õ�yJÒ;×ESÒÙ«²ÖëÇ(6ï Ð8V}^tѺ€1.}ocœ½áÆ„ÿ…½b„™ cÉšS{‘Q ÎFKV 5õ”¨mY#ô¹ö¼~�Œ/œa,9˜R»;æœ G%XaçhbdÉ1ëà'UúœäJˆñâ„òhÎãdˆÆ.ÌV 넲iC¨Yá]ÃtŎú5+|ýÕ¨ôŒ).,%ß{mB/lhì:f,yº~ƒ‚ëÂsù)"j}V6d¢ëT /Œ*ç"²Ö<8qÍ œÆyÉ%gt胖Z°Ð)¡z/’ÑU¸™%Nœ¦ 0çååÈld¹œ"‚„!}²*ЦיË9 æ„ \ºI¾š¸5ÌË3ÊÙ¬{šsÎÀà…†˜’äš-»¶±¨0-)(ß]Ýp¶˜óÖ(0¦˜âc“ß{W I)­´N¸”æwWJ&¿î!0D—ú1ÅI’&Δ²²k¢X [ìäqâZƒ)1]yÝBžFÍ’‹—Jk]g „õýY×Ü]¢a¯[,€b23Õ†’(¥OSc©ið;®6ÀÂø:ÌŽPt6’ šÚ.6Î’·‹=õ&¤Ó�\ ã£>oÀ /œ;+©!¡EJÆ«çÓK+øMl1“Ï“ªg84½Ñ¤|“/\N§ ƒÖWwøññ#~züø`€jтÛª+˜””ó,ñ×ô­1ìŸD4`…›1´ x½ô61®¹ªéó+úŠãİüü³ò4)tÀú”úС†ñfnf¥ÚžðÍ €Fx¡ÚãW‰ï©S9ÅÛ(”šÄä= {¡Áñ›üå×_ýñ þFSóØn›Á˜ÓS¡7ƒdç'A’õ‰uJE¢e!"áúË ðíׯï?¼ÿæÃ/�šï¾ëÚÏí~£Îcî% |ã')H«(éó&ÑË¥MÆ×¯ÏÏ*ïæûoÛv¿;¼yîX(%§Ð¡“ļ™çШÈ8×¹\Ñ<ã•xÿ„ÃîpØlvCÈúÔ„½ôÑôd9 )sTx¸¸ÅO8óeÐnö+»Gœ†5 xY-’“ÑZ‰áŠÙŇÏÏÏïØðô°Öÿæp”æcΦ€z>Ùz-5)ÇÌ ÃÅ×/ïž+Ÿ>½ß×€öÛv»{Ôë3ÀšÆÊØPæ¢ëøê[8Ç5øøÓG ǧm·U¿«úÃ@¹è¬±ïX™FzÛŽ±©Õœg>âú5úùqxûÃÃa³íöÇ£1覾=å@í¤¦xûÜxÿýnMh{8¾`]8Æ ed§Ô«.–Lžp»þ€·Ÿ3تœ˜fb¤¾±Šš’$+,Üd€o÷'ƒ}5 ã™a½³‚|3&Ù4AëÌzvSB¨8v»:‡Ýq¨²døÞQ"²n²“§±è|kÞ½;ë6÷»ÃpÇP�2…E—X›Pž·»ýñ°ß?l6›íá@,@pANN)ŸÈ¦õíúo¿?Ô„Û‡}[WÑöþ¶ç Yú)‘t±ñM“n5x;WõµÇ›‡ûÃËꄞec25³äº, ¿ov»ÝñpØÇMû]}GË€÷R —9ÏœKªêßî?.p¬C¼ÛlöuãÁ÷�Er²Q1$ïm«ÑÝm Û®òõ OÇÃýýËn3´ i$)(nØí ­àS-úX«zzÚm¶ÛûÍ ž¢ôNze3Ç×xn3Áçuºê †§ã¾ý¾Ý¼¤Ä¬¼ð¤ŠM`ij:T^~øá‡ë=PsßU‹jðÐ~î¶ÛÍ=ڮ铔VÉN‰5k6½mÃ0^Ëë®. ʇz2‚°Í@•àÁÛÿÿW#åY†ªC Ø Py‘sH¢9àBNÏYs(x‰Eþ*@çüFìSzyý²y’“S¦ú ”T<ªäÉb�f*HÙ2i˜ß3øí{Ä}Úm^??u’‰–wi}‹EJ)Ê€’]$~áH/fÒRÀÎïÐ>8º ½>VÓˆHl1«f¥š .úXD¸®Ð µJðHû1½lRš”É‘f¸-í_*ȱq‹ˆñ¤XÃã#+sÒò >•Ù‘LC•ËÛaÜ2`_ƒûÝP*óäRæy© “Öó,™›ÃÀŒÖ*Ç1*€Ør‚@×ea5ËdÜœFdm ¶aè1—yè�–¬—PA\bªüΠ±`yÛ€ÆlqðÖt`ÌJT·næX+%cn2#gk| nqD¯`Ω›Pø× ˆÂ|U%_¸ i^£|˜úi*`ÆF«Í¾sM‰”ÞpS�4$tAÒÔÍ0BDYxDôUí+•õˆoäT§r.…,ADq›Ö!3ç·ÃÜœNP™¥”4¿õ™ó)k•·Ã ~ÜT*”¾Ÿé7¨‰©cÙÔê|Hð|—ÌC üB$àæq+ñꃲ ³(¨QY+¸1ÎÇï+ŽçëPeV bðTùf¾|]©Û¯G¸ökv8‹ªFƒé Ø>?ök_Ò·þá'S…ZB¤dJvÿ’œÎ×PRj˜jðƒ¿ÝƲ?=ì¯øÙùʰÚr&»©Cüz¸êY,†kE.ÂO÷äp|€ _‘¤˜¬J4•Ow2‰¬xW2p¼¼+°½4ñrçC(Ì p'ÿpîáý›vO�Žþ¥Å}uMWAf;÷ž”Žçós¬~ç3xäNþÒ¢AûÓ»JþÍŸ&®šš ÿKðzŽF ŸVý����IEND®B`‚IMAGE 2837 ./arch/monster/animal/gryphon/gryphon.x74 ‰PNG  ��� IHDR���`���`���ÕF‡ ���ÀPLTEÚ22»s=¨oE:7/¬¬­õõõÖÖÖœœ›ÌÌÌûûû¾¾¾’’“ààत¤wvu¶¶¶æææÄÄÄîîîêêꉈˆllmc`_~‚‚‚OGFVSS8##J862!  'kfa@/. Þ®r.!gTM:./âÒžÒ¥s @<0õË{$!öÖŠúÞ– úæ¦â22š~dª‚dÎXîÆz1.%úÚ’¹‡]Òb‰Y7 Y¦˜Ö���tRNS�@æØf�� IDATx^ä˜Ç–ãÈD{ï¥÷ KÏòÕv¼•ôÿ¥ÙÝš9G ’£YéØF "ñ²õæÿ�›ò™Xø;´ÃŒÑxïÿ±ú|̡뭴aìü—`··²Š]6‚DŽÙÚèÉ~ÃIüh¥Z7ªGe²p)9¥( c ÂWûìóT#€›äc­•™5k­…µƒì%jbø ªš³ñøW© ^ÐÚE"ßÒ“œŽ+;ù³ûH'o,ˆ‹W\QÖœª0^RdÝPÒæ˜}Ä­ñ¡Y³ÐÆfàbù¢¹$W£7yéH3;’}'Ï-HwR÷V5ñÏyiAÀØä]ª‰u»´>Õ¤£‰hÔÚÛÀ¨jf­Ï«Ã®.üI±+̉Kóp™”s¢z4ˆYõ6ø.‹/¾ìDôtÅ ¹Š¤“©á’•šµ@ÃøÁZ£Š]Ðø3¢‘/401§œ8³Ü@²Êöb0Ì%OáxQ+k>ãÛ}ñ Pq¥hn¬Ù@D“… !(•CËQêÒþücvꊈR:‰WÖiI�€<e+£Yu©0›¡[Œ¿&Ôõ—ïè„PKøR]©V€,‰")†n:úš’S+ü‘pÕðr5UW— Çn¤ íd ešg¬>±d`�nJtqE\]:­žKÌh¨`Ã0¹nR–¼Ó¬¼µÐ|æ¼ ªë.OªãFiWatèCVcÝhärJJµ®ðÝpª»f“Cщ¹6>ocFˆ‘mOF¯]62¨>,c&²§þÐ ³p¢”Ä¥TR¶A£ëâj4Ε$(¢qÉZ-]a°ª‚ËòÃ�#Øj)Ô0ÙÑÍN7ãþ(qBsCˆèå Ù1§Z¹BBÖÞôÓd{£KñCg]´RUOV~6‰…õ5E˜ÄZ3 x);Õ$YtQZsÐpZ’ýpý*€²8O©G…ÕUÙõ¦÷ÆÇZÉJd°8AÙô+¼¹tÙgˆ!ÐÅljî¬$MÕ…)øáØYã„ ÖßvVÁ”ÄyD5�“9N½—“æh‡¡ÏP¬µK¬c×ãú“„ÅÕÂÌ  NR¢lk2¦ëûØ÷X¸ù°…(êi7æPƒ%KdçÕÔÇ‘|0œˆŒSê4�WƒÑ9fÍE3k)±—Ô“Ô6›$Ççc³²|‹8§êš>;À›Î—•´†¤ìçy°gŽhÜhàšÖGDôÆé8Qg­t‚’·‘3744ߦ/„Ö¬ ·{FwIUR !û^â ñ¶ã.‰ÂpškuN­á}ç¥F]­ûÈ_¸¶!|üø-þõûw@–q€´2J8eß÷ý¦ù–w'Þ¹¤¾'",07A@@Ê #s­:;ÖZéÉ\*ÿi0ß?z²žQ474Í @¾³Q “Å0N‘1DÑFs™Áçï¾ûí›o¾ùn`›üüð�ç kN- ¡|Oœ(Ë0’Ñç)ÐÙ_Vv>üòøË§Çß~¯dûVï{ìUR*Vb%IøÐqaÕˆRš÷åK€Þ>â̾ÿõeµzž×û7çÓ­ðŒô“3½Ì2vÄ¢.]·�ß¾ýùøônž·‡ÃæiŸÏ=d'�(’Òw9Ê.‰¯2]:¸ÿý÷¼müôãÓO‡Ãáåå°ך4§ 2µröZöÁNQ¸qÍ×Ò·ï¾ÅÃî~¿Çêe»^¯·»£.å<J¢ïG;õÄl‡—Ê\K¹bÎ>«û×ýþpXß½ÌO;x®U3cmFˆÚ%zß­VJØ÷º.é¶]N¬·‹Á¼Ùö¤Sr+S{iˆÍÝd»›¿éðº¹;¼lž›>%fç0  6Çq5þÃ·Ò ì÷¯Ï»–`³9´ž™ ´°)šFj–¢ u“_×íÚÎëíýaïDa£rÈ4Zò½Ë6ôJkFÜ”�x}>´g_o›Íþi0dbø)…hƒ•1UÍ76„Ÿ>4Öëf±m½)€*@Ó“1bÕá/þÓæíæ°Þ5ƒõÝÝf³Ý˜IYÇ‘2E%´¾]ÿõxXÚîæ»õa³}Âh*âÑ—5$ÉöþxÌ·¼þó¤ßžÛv‹vmƒ¢²& ²h“ÿZAÇÍn1h-=ì^æõÃnß <y)IŠ$bÌcÓ¿ l\ìvëÝ®ÍZ q2�ue?v9KVÁ½¹ <o·ûÝá©ô²Ÿ `³#iI vBÝÞP?­×gýûû– ­ôÞ<uÒGéÃ$‡ÁNMüfðãz ЮÅ`Þl_îWK“N Ô×û›+Z¯w¦¿[ÏÃ|·ùšÀX?Nò¸$øKn\|ŽÇÝÝz·t´¿ßÎÏÏóæîIJô“”’¦”’S"výêßÍ•akëV †×X.ÜÁ¾í2Ç­ÕÙ©k¦r@ µ;¤ÕÿÿW{uNÓÄ…kˆË`¯žÇФcOVâf1WVUAx]ÂCWš<r? íŸ?n÷Nûýïß¿û†·ðþ_-[º‡Á tp•˜ÎÑŸ ˆë14òýÐݾýöc/™Z [\H&K�êÁ,!8)«žº ÒÏKˆ!ºƒ`ÄI4<>f6+ C\7àÁÏ9› þrYÙšµúC‡cšqÒÍó“`p[xQ„€‰œéO,®´¹LéÈ|×µûÜ$*øBÍp«¢ðU•”Î|ФÆÖ&‰cð”›}› Ra7OM“3À†k Y*‚ÅãGEä«“ÊXb¬ó4?å–Ìи`˜ ´\5ºœHÀS^_„Ú…â`››©%6âÑ󟔢ßê&‚¯|I݈øõp˱=çyn[òÓž2GÊ…¸Ùe„WßzhB¨g›Û'‘j�Ú9�ßÌDxuÈúÇž)3±g¯ÕºÈ!ðM‚yjg† ¥<'"RðXßá"U‰’¶€Pîì¾c¢9£» â‚0¨!ˆÎ'×M|ð¦iæ}ž*‚j•L<–ì`ßû6€Ð9†z¡®7 ¬mðÃC¥Rß/ùæâƒ ™o,@_oß/Ç_X™ÔÉÅ2i«àïã¡ÓëËç”Åêá‘“Ë&ßîºwìðÏ /:`IÅÜ-öÚLT¯¤£kãÍÛ‰Ú?ÜÜ/®¯H yšÌôZÃãî΂ñÓÏ d*% Ñ覿RÐïvëÓ½ÜÐ’ïɦMa¹²:<ÞÝ-dÙÜ„>l–\¯Ä_¨¢ú³ªø”Ì…ßùìkÀ'ßÝ1 Õ,lš$»Ÿøä*Ñáí¡—¿^Ÿ§“@³ˆ\”…ÐWø4t¯Çg>•øì¸8ÓWð„¿h§ô ØÊ l -¸—tV¡•wÙõ]§K¾R„¿Î_’ÏârƒÿŸä´…ÿ«ü [½CïCr0ø����IEND®B`‚IMAGE 351 ./arch/ground/Pstone/gstone_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEŸQ,Òi�ÿ�Í…?cDÙ¤�Ì�ûãº%��IDATÁ1nQÀ׃Ó.Ë_›Ž�!´) ù4ù³šëS•™Y,fÑ#Êf,ò·”&°*¥«üÞŒ™5LŽ×mV¡7ÈH„[ÊÒèDÂÇZÈm$›.k«Ò¿®{Gì‘ïÍþçü¬ :n‡Jª•³è®™^ú Ž4’|Éû·îò²y#¬Œ#ù´ É-XO¹Î´@çºRz¯MèäjH銙ÞîQ„H¥ÖZ©ŽHª‹—ìQ%:g ù< 9úùaE}ÌÒy~x­¶~jKhOAS½OÐ9S"•Ï z»ÕçÖÉmäñHÿ{û±¾Î–ƒ÷&×~{Q té.ÿ½.ñ;DYh����IEND®B`‚IMAGE 284 ./arch/spell/Wand/gu_horn.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òi�1�cDÙ¤���þÖ�ÿÿÿÿÿ�ïå‹Àª���tRNS�@æØf���©IDATxÚÍ‘á ! ƒÏ¥¹jÞÿ§gÙ`Õ ƒå`>­Çu^úÎgÀÈÞŒ7b(,oŠÓ޽`Þl él,¥Uß ÝeØV\†Ý�@oÒ ùê±Ò» × �¨ªîÇV®§Kˆ­×£_b\ ûÍU»¿ùÂq~>`ç«ËE¬ûáR•¢?æSÑŸL¿ña¬h1Á¤“Ó_Æ?ÿ�`E�èùª;'*ÇMÿt·����IEND®B`‚IMAGE 305 ./arch/spell/Wand/gu_horn.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òi�1�cDÙ¤���þÖ�ÿÿÿÿÿ�ïå‹Àª���tRNS�@æØf���¾IDATxÚÍQÑÄ ›W Êÿðð¶ÄàËž®ÉâF[*ì:BUãy#ȺÞ 4uçK!I[Bœ›è9D›QJ&±!QØ»¯³n’q…�¤™ Š9ãSšù `yöxm¸Pl._h‚Xd!�½»Eÿý‚OsŸ‚ŸiËZ€¸M?ÌûäUKAøc€»¾ñ>aN„y§æÞ§€¨/(– j-@òƒ«~ê@Ñ"?L¾lÿü ä€< ú3|%î5îó™“����IEND®B`‚IMAGE 318 ./arch/spell/Wand/gu_horn.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òi�1�cDÙ¤���þÖ�ÿÿÿÿÿ�ïå‹Àª���tRNS�@æØf���ËIDATxÚ½’Á!Dkåÿ?¸ k±/í¡“ o0»·*3›[¬ß fsûÚ°è6}µyåË™xQTCrÑ´}^NjШrŠŸ‚pHX+<mtʼ©¨’.ØZÞÆF*X=Ê îw$5?/”$µ„§êÝü2`Ä+Ý’M›L”!ÅÂîõAï¤î¹©èØÊÝêþ=ø‡ÿ�tïîTœ^šùV`h¨e¼*ùu Ó«~Ì_ß�Èüê� Vó«fþ_õ�Ü, ITê˜Ð����IEND®B`‚IMAGE 305 ./arch/spell/Wand/gu_horn.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òi�1�cDÙ¤���þÖ�ÿÿÿÿÿ�ïå‹Àª���tRNS�@æØf���¾IDATxÚ½‘ÁÂ@C]!I—ÿÿ`wl-SD|—¶$%0ÜÞ!ùzüͰøÁP»÷)Ñû|½8ìÝpVl`”/‡à_âÍ5SoâÇÜäXã)Ü>míC1±ôìJ¦…͈»ŸÕ@B 7¦ábˆ-´ú÷ø€"–áüëz;÷.úTlK'[ƒCÚ8Êu}ÄB~@š"¶eÈü2¿vJ~b»>Á¼\×~–‹Øõ6?o`yÂf 3/6dþ_y�¢ ô;én����IEND®B`‚IMAGE 287 ./arch/spell/Wand/gu_horn.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òi�1�cDÙ¤���þÖ�ÿÿÿÿÿ�ïå‹Àª���tRNS�@æØf���¬IDATxÚ½’Á Ã0 C—Ù’ÿÿ¯¤àBÜvØÞ%=¢òªÌƒü¥P©Ù³@¿*ª@Òa)T¬¡]7Ôz6ÁêÍ5Ž|_ßFW ¤pÛ÷¦pËhoЈxŸyHèÀ)¬ýÑCÙ¿â ŠˆÝ�:4Áõ€%Š.¼Ò9€÷ó Ø}¿)¢GdÿŠkRúÓd`é_o€ïâÌ_;8 ³ýצ™9¿øûå+øÁ¹h����IEND®B`‚IMAGE 366 ./arch/monster/humanoid/Guard/guard_hard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vaaa¡¡¡¿¿¿@@@ï§_àààÁq8���d3ÿÿÿ!!!G$Í…?‚B' R-’‘Â���tRNS�@æØf���éIDATx^­ÒÝnà „Ñ™åÏvÚ¾ÿÓv!‰Õ,µRqõØßæ8ô@`¿ŒD@åB$F#$ùÜh­ùº×;ˆ¹dCÃe/Bb $_�‡Æryßœ;öÑåûÞ÷;óq^¡äœz<Bx™@ Ž.‚Jåµçjg7&xâÏÀlÛ@D—}äš^A½ÕèÛkÛ,À× >C¡‹Rš{¶ór³œó]½ËlÑmt€Ø=tJe Š`ĸïŒóáºX€½Ÿ7¬^ ŽAÈV€ÂÐ÷n—Ý ¬�ˆàú¿âÙ “XX‡ýë|ã~&…[�+����IEND®B`‚IMAGE 267 ./arch/wall/cwall/guard_ho_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���¡IDATx^½ÎA à …áw… ˆëôv˜’„™{&xý¢Amí¾?Y~™'þ“L¦°Lá1õ{ƒÙvæöí òt’kà$T t'l0¿åÜ@2úG¸BòTŽò–šK;#›7íbËeÅku…_±‹º’¯˜š¨+¤ë´¢ã†•uˆ²âÂDÑ © �*k(2Þ’êó[è1‹'?ÅÄËJ/=ó•M����IEND®B`‚IMAGE 304 ./arch/wall/cwall/guard_ho_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEap�¡¡¡aaaààà���@@@¿¿¿ÛZ8õ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ6~î»���‘IDAT(ÏÝ‘A ! Eç i\—aö…ˆÛZšÜ ³/8äúU4z„~þJžùŸdaSÞK ­Ïk0@Œ¸ ‰·¡¿&øw¾1*Ôœ|F Z­Ég€j8ÑJÔ|¢zWÎZÄ ø¬G† NÅãEw#Tå4n8/Ç 8Sz­}¦´ZõÇLéµÐ‰~itâ -®P6*¦����IEND®B`‚IMAGE 278 ./arch/wall/cwall/guard_ho_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���¬IDATxÚÝQÑÄ +jåÿÿxJðÀ]N߯YÒ Ôa‚½ô‘”’+±À^Mù² já¥ÃÔC‡N–zì@Ö_;ðÈr>¸ðrß¡ ¨E{W˹¤ZÈ«zâû>ìÛh“ª^IØ^êöäçñœð%=v°Þ+³À s±’„‹°á",!p6l.,ˆ…°\ìÏä.,‚G ô»³ ·¿ ¯;>f����IEND®B`‚IMAGE 303 ./arch/wall/cwall/guard_ho_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���ÅIDATxÚ}“Ñà C‡€üÿ/8J·ì”hŸL/‘ƒ¯[¾×Y¾D½õcÐA–º\ú6èÚ:VZ¦ZœA‹ —ƒ2 Ä@Ðü$ ûœÇcßÛÇ ðŒ�tÌ€‰p��œ „˜:™šÕ "°Ayè¼'Ê,ζ?CÂ$w%h‚„`Cdh‚A‘hàîYˆ Ú%è[zšj³4 5©§:ò<ÂøáÜ·pH¸ Ð-Â8Ã}‹jÕÓë©V‘¡ ­7r uýióÒ����IEND®B`‚IMAGE 404 ./arch/monster/humanoid/Guard/guard_ligh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���QPLTEÆÎ÷Æs9cccÿ÷Æï¥Z¥¥¥½½½c1{{{ïç¥BBBB!ÎÆ„„B!΄9¥R)Î{9œkB„J)��„”cB!!!Ö{9{J)Þ„9çççÎÎÎ˱í¶���tRNS�@æØf���ñIDATx^­ÍYn„0EÑš=0wgÞÿBSˆ„ Š"åùó•ᯣßú Þ—e¹ë™Jùš¯AÞ€Ìr:ï‡<ççÛuGX¢ÈÇ=�œpšn:©%fž™õ Xt°-šÕ=ªþ�û´¨YJ#¯Ï©ÕLôã82G¹¸vöÞ3S$Ítî‚`‰¹÷Ç@9æè�„ീQ°Ø¡÷ðê/p0Õ`p•VQ@Îu€¾OÇ "� h;DJ¼Ïun@$Zœ©ƒ¦ÃÞ¢Ú%ˆT�횆àp7 è°¹¶‡ÁkÃÇ"Û•ÃhEkÿuß(˜ jZ7&œ����IEND®B`‚IMAGE 368 ./arch/monster/humanoid/Guard/guard_med.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4VaaaÁq8¡¡¡ÿÿÿ¿¿¿ààà@@@d3ï§_G$Í…?‚B' R-��€!!!õýØð���tRNS�@æØf���ëIDATx^­ÏÙnÄ †QÿÞX²Lßÿik˜I¥@PU©öåwdýirþUHÜ}yh]Ô–@T« °Ô—½ì¹³̵®@c|òy.:Ä’ªžÌªòÌèã&„±»È°d3³”vmT€¡»I�Û÷]ÕCäpëÝTáŒ{¯Lí«„ìù¶�D¥Dí`¯<�Þ8zùŠ-…œ#8B¥&:Èyì•È,]/P­u�D¸¹“#égBç 8Ä¥;“�S§O'¸Ø#pt€Ï…©—£ºÜt]ÞnîåˆÚáñÊu Ëyúá Ìb¶ÿ:ßO ã­kˆÏ����IEND®B`‚IMAGE 670 ./arch/construct/town/guild.x11 ‰PNG  ��� IHDR���@���@���·ì���3PLTEÿÿÿ���aaaÿ×�¡¡¡¿¿¿@@@ÿ¥�d3 R-G$‚B'Ú¥ ÿÿ�Áq8�Í�}Zw‹���tRNS�@æØf��IDATx^í”ÛŽÛ0 D5CJr.»íÿmE]À:¶KûÒ‡L…#ÒIØë¿0§cÿl…#`²>ûÛc‘à€ŸÜ[,OÁÇ*ŠÏû Ô:ö§”  á„qø  "ê¦Wwð  ²×ú ðÚUk~]”÷³´æ xí|©âu%¤í!Ò�»ô«�.kô+ �' Zÿ•@Kð8›é:�F¿%@O0£HL} '¿€H} kyl¯©$×-,&�‘¥naqH’ë ÖH[X[BQ¶-¬-í[˜[‚'H€Õ ‰´-LÎÀdßÂR€�*2ë––T²%È« ²°nae þ$Êú $kÝÂò Dh3˜~ �K0ÿKð+´¿´õ vÀT9€?L@%XSÚ%xZüš‚'P4ÀcF@âÓ�ØL(ºåÁÄóɨÁrÜp»'xZ´`ù·àŽJ�¤­“r~÷  Û `ºãa€reHŠmF{�5Æö2s?}ÿ ¡‘(Rw*LTÕîÑ<²xØ P‚ yÃmÚ Û‰»~’"¶¾7Š›Çñ`Æ~ûIì\uÀ\ Gjhó# ]à]„áJ¼ßµŸíÄG@T4ußÝ Ê]�èá[ý8’Ã@e‘Ò¼¿`|ì_9œéú(ükú@ N€ÃÁ����IEND®B`‚IMAGE 733 ./arch/construct/town/guild_fant.x11 ‰PNG  ��� IHDR���@���@���·ì���NPLTE������55óOOÿ¥�` ÿ×�L�¡¡¡¿¿¿t!�ûƒƒP)G$B$Ú¥ @@@ )))n.›[-QQQd4!ÿÿ��Í�‹Ü¥‡���tRNS�@æØf��=IDATx^í”Yo$! „»l Ï9sîÿÿ£kO_RþìC E%1ñ§Â5I³Ô¯P¦íü< v�¢³ž¿N×Z‚PÿL¨Þ‚¶¢¾Çg¿GX=@Ïvþ~¿£ëú®ì0v�+‚zôÝãó¨I{�"`#Mp¬W@H€çâ¤áçÁ±y’QÏ…€®ÃóHðÓ5„X ûÀá™ç™€iþH MpÝÛê8�æyM€œ D3À“Ï-ì,üL�‚Ï-Ô`¸¹<‹Î ¸ØBe\ˆ-Tî�>¸¸ƒúÁÍ-Ô•àC`J-Ô•@œ[(+Áø@mO¤-îÀ�D¹…ª� ˆá(¶PS‚&àà4«MàáÅjJ°ob¨ßAp[¨ÞA¤- �MPþ—`OHÿÒê€8ŠŽèÒŠ´HpÑx/‘Ì[$ÀµD€§‹0© :å— s.à„¿¿üE sÎxc‚€ŸR° s'|Z�$�Qª�ª3Þ,`ª©À�ž1•Í�OyÓZv�bóݯDà‘ bsb`xô"’+õ‘Ä›…�&#„p{õv¾†¡å›ç5À3Æ4wƒø÷·úþò'cþdÌLqŠ�@ÇÛ·ö€„VßÒn"˜Ë¼l@ù†f'4[ÀÈHšmÞ@‹¬qvÞ4U’y›7ЮÈV &“ºÙ¯íWö�[Ù6jþ7ýGz¸hAI����IEND®B`‚IMAGE 2402 ./arch/construct/town/guild_northwest.x11 ‰PNG  ��� IHDR���@���@���·ì��ÄPLTE ��.134789 : T% < !=!">"P)#?##A#$B$%C%%E%&F&'G'(H()I))K)*L*u, +M+,N,,P,-Q-.R./S/0T01U11W12X24Z44\4LLL5]56^67_78`88b8:b:B$:d:;e;<f<<h<>h>>j>šD?k?@l@AmABnBCoCCqCDrDEsEFtFGuGIwIIyII{IJ|JK}K›[-KKKKL‚LL„LM…MoooM‡MpppM‰MNŠNNŒNOOO‘OP’PO•O�Í�P–PP˜PPšPQ›QQQQŸQR RR¢RR¤RS¥SS§SS©SS«ST¬TU­UU¯UV°VW±WX²XY³YZ´Z[µ[\¶\\¸\]¹]^º^`º`a»aa½ab¾bc¿cdÀdeÁegÁggÃghÄhiÅijÆjlÆllÈlnÈnnÊnpÊpqËqqÍqrÎruÏuvÐv¬¬¬vÒvyÑy­­­ÿ¥�yÓyzÔzÿ¨|Ô|ë°|Ö|}×}׀؀‚Ø‚‚Ú‚ƒÛƒ…Û…†Ü†ˆÜˆˆÞˆ‰ß‰‹ß‹ŒàŒáŽâŽâ‘㑓㓓哕啖斘昘è˜ÈÈÈšèš›é›éžêžÿ×�ŸëŸÿء롢좤줤恵﫭ﭭñ­¯ñ¯±ñ±²ò²´ò´¶ò¶¶ô¶¸ô¸ºôº¼ô¼½õ½¾ö¾ÀöÀÂöÂÃ÷ÃüÿÅ÷ÅÇ÷ÇÉ÷ÉË÷ËËùËÍùÍÏùÏÑùÑÓùÓÕùÕÕûÕ×û×ÙûÙÛûÛÝûÝßûßáûáãûãåûåçûçèüèêüêìüìîüîïýïñýñóýóõýõ÷ý÷ùýùûýûüþüþþþÿÿÿ���-êÿ¾���tRNS�@æØf���bKGD�ˆH��?IDATXÃí–ËnɆ¿sêÒR—q  Æ8ÍM ÛY¨! ÒÊûl ÄÙðòÙä1Ä¡6~¯l`„NÌ3Єã 1‰<ºðÒ—Ê‚M‰­qœUéÍOVuúÏÿŸ:ÕðÿG6ÿL?mí€m­ÿiqž¸GéJÜç±:’]b ¸mÐX¢nó²&¿Xa+fY*­C¨²¬Ce@ª ª ª¨Þ,Ü0=ä|öƒ²ôU]W”%ï/Ê¢˜_•Hd×uœÄŒQ«Ö4ÉÛ«WŽeBí**k¼tÛ¦¬ãÚꢛFÖYA±¡wL{Ø™5¥Su¨­µºº¾¼º^ÎJ*ãév}ä­1ªFÍÍÆm¥ùìÒv^ *»trîﻨwÏ"9T¢»)LOÙUº_­•©sI\”8gEeMZ;÷1èÖ‹-­\½ ¡°¡¶¥0¿ôQm¢Ž·UBXeßm˜ö~Ì+v‘³¬Ô,«tnͬª´¾ÞõÆl[£�eZºoü>;0êUÀ¢eiÑĆÇ!ùáQYÙ¥ÈEYnk¸ 0ÀäÙ1Nš _7¥®&޽Mw¤‹…8DfA—ª…¶Œáì1)¨´üu¢~Û³ÛñiÒYœwªbÇ…è2Ñ¿·LOúïà�VE»ÚÛ ÖDBj£´“êuâ ã—I]où|ÑbÃWë* êULäé„h«I…±*A¤ªJ[â—¦ƒŒw¬×;êbHˆ;Öú-k\¢cêà?ÔéE$Z.ŒCï·«¬õŠXc I›Øay•ú`,A»³y\±u}«ÕtÐ“× *.Ž“$Ž¢8òQ'‘ïz«@µ(ÆX—ÄÖ*ê6dÃSàì1ˆ±Q«šÂRdËÙhupM<ó1"à‘¸úÛ�Ó?aåÂ1ÁyQªÈç:YQÊ«ÝUº¢.ì^—Û³ »G“Þ8$Š“4¶Šë¢4Žë¬JSU]…5>­Ùqœ“AãB,µ­$ÆFQ$àUVÛÎræUAþ¶}Ë  wFLjǙÊÅQ$@½ªhÂâÊEµJB]ºçnŒée}˜¼Æj5ÎyGVîtñº*®Ë:�¢&ÞJ7dÍY ^"c;±[í ëžgÓ2È÷EÓ ÔøMû�€FÁtâ4­P/Ò¨U\z–©®{´ÚzFÞqQâ“fkT×§S¤†ª¬šn,²yjýѸq¡Žo]ìš)æ6…eí.çÅ:Â&ƒ~6:íCï ìn꣨9¢^ÅÜ(Y\F2OfWeÝêh9c˜¼&MorêD6î^15R„⺠án�†“^γݱvÝ£ÔlúlR;—úº¾'@N6n\h²‡›Zm,/bYv–Uz§<šJ<Y¹E7ëU6¼ÄUbJ ˲¾Gƒ^>†è&7û+ˆn0I‰.çEKÆÕ+YÖ‡ÞÆmad³ 0ïÃ|gYFïÛFX Ï~ÜÎ,Ðnó åE›¹a¡×l;•V Y?ãΗ ¡fSîPï2‹Ì²³ø~¹q»Y€Áý±F´¡¬ÿ²õ¥5Ž”y¢í2Fƒw°j ŸøØUSô%ðê駬|¾·Á`ô€¿òß2ø5À¤0aeèGqoCƒÑ#úïà+àù3|õql3xc^®F¾{¼Jåß㫽�¿{ÄÛ}xLξ{zÐû8¶>¶§à猞<xúà^;ÀÛ“|tø)ÚßdÐ\ïûߌzŸ²~²×.å·ûùðdÒ[99é­ mðÞßw?óýÑI/ÂÑ ½|È'ôrÈóŒÁ)ô†ÀËœÞp¯àíINÎ(‡7ÃÁÿtÌÑY330ÌáÍ×§9Gwì3z™ ó/øÜàïžüòá‹ã ÇG«‘ähï_›*9�_ßâ³'À“£<Ÿ4#mlçÑ åoÞ�'k\ÏŸW#ƒffÀ¦k'dMSjðøW/~ö¿ùö¸¹Á; ¦œôY^®ñ”Ñ“??|ñ’µ`'Ã{-9§@–“B–úEþñG§§YN–¯„"ËiY°fpß³÷Oíñ?öü~?rˆ/Í”'����IEND®B`‚IMAGE 2963 ./arch/construct/town/guild_west.x11 ‰PNG  ��� IHDR���@���@���ªiqÞ�� ZIDATx^í[]lG>{½Þønjç:‰7N݆ڴ”ÌP"õ…ªEð€¬ª¥¨¼¡ñ„yk+Q!^Ò<©­¢¾–H©¢"h ˆ–€í&„4qã¦ø/ŽíëÍ2óŽ×Ó¹¾»•>ÒÑÎîÌÎæ;ç;çÌÌuäÿZ¶e[¶%’ò’ÿ/á+YZ™ši4D:;EšMôØ6duU$Iì5ÏEvìIS‘ZÍöAzzDöì±í;Ýs¼·{·ÞDZE¸Ú÷âãøïÚ¤(++"7oZP´*Ë,X>c›W¾AÑxÆÃûGñî1Ï:: �†ûP~ËkCCR+ãý_<¾Ï¶®^¹~]äÀxØèêÂÀ h�ú•—/‹\»†>¨5Èü¼Èô´ÈÂÆ)˜z^#ŒË2ëÍ;îðÙ¢†Á{0Ô¶i€o|fð1�`1ùì¬RkyôVï' ®ðÆœm߸!23hƒEp#¬07À,€�”}¾k—¥{šâL Mã©ò¼ÀÊŸ¾~±2òï~Vc @‹ð®�€ü‡iŒç9ڣƀççæ 0Œˆy,ÈÅE°�0ÞÓ0Cèí…�Î>OŒjx W(%È€š”Ù}û4À£�Á€2ÏÀ’,Ã=ÂmË‚+W@q„ ‚0±à¢H¿“¦x¦Šç* šJ†à=\<#ÄíÆþØäR1òÜ¢»[c^ÁsŽ`€%‹‚F"ea¶©0(æKS|C=Çè×oR¼{†CÍèˆü €x­žô¨©Ô®×Á-{ 8“"ŒÁ¼�E[éÅ\ð>AÃ85ãås›y1>'å!.Ô` ÿÝ4@<%.û¼xPR©Í„Èx· ²L€Á8==ˆqYнÑÀ�‹6ÆÙ笉Ømú8¼¿j4sÀ¿NmʆðÕ«@~.’èþÜY_Á+õ4ûBà¹40¼Zky­9–9D,C¬nÞ4†1ãv$‰\3sÌàpÉ{L`‰ÑóFg®#̱c:DåÙ‡î“g~õ·¶ ?óí‡eñµß ä¹?Ìɉ³ÊÌÏm]2Á_\"Óªð0)Ÿ˜r¸Ï èc™6à§èµ^€ ÁÍ& 2ƒÏ’þóð‰‚÷ŒÐ’ãÿ”õ¾Pè- KPPàåpÀ«öîµà!}}`‰Ò)»4àèFï5zÃ迌~ÚèÛ ‡~£çŒ"×£€þž �8 Ñšù+§NÈ™×NËâÔ¡XúküiÍô6ó�ÀÚ{î `<pÔüÌ\ç ƒÎðôúNy—^n€þLtË ƒÓ˜ù!£SÅho�ð`ÀZA9l%ô¦_““DWx`´Ñ€¢ŠØ¤º¿>c;OSiƱ,@ bý˜Qä.£(q{© Å];ÙשÞ×+%ÅþÑ¿ "–êý«-½Ìu·®Á)Ì0€Fx†²š$Ê�ôq±ÓE° ½U§v1æ32ãOd€+y}÷G«’9€ž?]È(‡'NÎÓE!­žÖu¹.Œ�HÇ0¸u€¡xGsËÛ¤ÑC•:/X3\dhÜÉ{“Å õþðÐ]òìÇ´ƒU@ήó¸î¸à9�RMSUܣƢÍû ¼ —ȽvL�ŸÀ£“ÞA<ƒÒ(¯{Â9Àg�¨ÿÅGKþB$_;YXø”Oõ:c›9ÀzyeEÛ�滈}�æ>ë¤N¾ct7ÚëÊ_ ë�¡pï2ºÊøœz?”ÕûH~,˜�ñª�’ñK/×èY†gª½½šüpDð4€¾ U‘P˜^í_œ—ëd£Ÿ2š9Ÿ0zÙ÷~˜ þ÷ŽD"#"ã'™´ `9 ÀÅc-Ý’H!rëªq®×| Õ#¸¦h2É-±ÝáX@M´DJÌq+ ¡¨Eˆ×%?ëý³ÖÛO|™á* ÆÈ2Ýáá>M5ù1/xÛXw¯ÄŸ‹.}/i"”ˆêfëàÂ'âõ0ŸÿÒèÁ¥°¾ïQá`E«�ŒCЪz„¥[b‚µßíå=€Ã…d•‰oœ™Îè›Fßg–/¾I&0z¹Fø<ó½ß² èÂgÄ&Cį¤.w€»�©ZOO—‘œZ#íÝÒ÷mc•w‘ dN?½?äç€ ”îj­#âDÏâX¼�–1d‡¸ Ðï‰nªÂ†!{¸É˜}“†hRsñ%aÒÜoý”Øg€˜Ø÷-EÃøGPy®gõ�Î>�§ç7^5ò”Çÿ«Ñûá-ÿ½¼*­¥ÆqµVcB QɈð^@·±ð¶[ƪç}ïjÈðÊvKɺŒ¾@½¡ËaÉ[ j“šüXÁ„pÐszWhõ¸·•…À!îèúXë'yíaƯñºþ«‘¿Þ8 ù<V‚¸÷«€&B,„�ž?b@[âÀ/{a™gô໺2” n…—ÉŽr®ª÷^�èîn¥=3=žù ¥ @Ð)C�“þMæƒ F—´"T7�û� tD«‚W°”m4¼•];´/#9kú Áf¬é—iˆe5�sÁ¦ @ Œy2 \ÿ�Ý UŒÀßÒiÖõk~ŸW”ðJGb¡*ÀÍO8Žý,½*Ðô�tY·Á2Ëäv“YÐ*QVÂ+A‰yÞg€Ú¡½÷v @ì‰A粓÷ãÜ#ÌV4B-°àA5ðª@›âý,í­üÚ”U–¿Wy¨‘1û’›£–Æ_Ós\ÜÜd þ+ª‰þ&ˆk–ž•ÉóLtç)W#uzošíI£&¸Qªð¾[T4´¼xÆDø:ÇF/Òó)™p7 ñ–&GÏ�¥V‚îP´²h)ÏœPF2RýÁƒ¡Üè¤Ì K%¾΂ÇU  ž?Õ ŒÁcñ¢àxëC’¯¿K4¹u‡ŽÃîÒcqýuX&ž”ÛM†¾ ‘¨]ï‡äƒdb|In©Î�<÷(…ú—"úÜ;:Û‚ýQÛ9�±ð¾¾ùHãv\<¡‚`Ì–é§J1€àõ~€±epˆþÑGsÉidŒÙýÌYè.ui �E;7 ¢ÜP m\UùÌlœryƒW‘-Ô¯cÊüñ0€‹“¾ô ;ò3?é·N0n«õG• pÊÐÈý �úß&Ršþ±×Á½�½¯™kK0ó—3�½ÿ„ÁïCžüñÏäÊ¥I¹óà½B Ý{í úÿkãŸÃ©–'N… k…}�ÓN?—ØjXÞkŸÉyÿö¤×ö·/»9ÖöG ÀØ7Ñûnb€+œ¿w®Gú¾rÆÚ°xp¿<öø1>ú˜ãõ¨~/0ÏƆûŒâ;jÈ’R Å>,Ë?–ðÀQ ýÙ}õú/üã€Ëož>&ǧòüà À(γ£_ýÖ‚£h¿~Ç뇪÷+€^/¶}1^™m»ÿé½JÐ*¸‡QÐEܶ˜§ZÕí0·Á˜ÔY]­]ŒqzŸýçü~€ YðÒ‹ÏçñsRø;ì×$Ñf P ­ÊÃÐY H¸Ÿó |ý;?ýe¸?ȱ±;õ€wôÍÓN¿e€³Yhæ÷³±—yGŽŒ¶ìù…Ÿ¸9AyŸZqàå/g^"†äph²hdƒ~ˆûÕ ™ÔRÑl͘c¿××VLN½3!ýC`�æÑ÷‹sáê‡’Ž©šùÃKáñ?gæ·ü•d[¶åß2Ÿ`CâØH����IEND®B`‚IMAGE 336 ./arch/monster/humanoid/Human/guildmaste.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V R-d3��¼ï§_Áq8‚B'��€Í…?ààà¿¿¿���Ú¥ ¾t9ÿÿ�¡¡¡��ÿ ¥R���tRNS�@æØf���ËIDATx^½Ñ;N1 …ÑÜëG^óû_-1)@ƒ'.Ò|G–¥”¿Ìè£û½Ä{7Uí§Zµ…™ê8Þø|¤|ˆô>†Ô¼“"]iwgf`eß„ÈÀ¤ 0�*£8 àêà90C4ºçàMÕ*y]°á}V¯“î-ˆÕ_`_è€opl…$ð ÊÔIrwH„d»ÃŸ€Lú3`+•$wÏ ž4#ý�LÍ1€HÚCpÀî Ñ`?~Í^å8†�ÿ8ŸÓ6AÌXÕu����IEND®B`‚IMAGE 416 ./arch/wall/gwall/gwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��3IDATxÚuSŠ1»¤ÙÉüÿÅ7F†½­©I…þÄl?A¶“&¬- ãfï~ òÛ%Y(CåèZšûÒe”I\R—nÀÃ*?€|Ðu Å €Ô§AUoÈ„ä÷G·N¯°!±ÕÑaC˜ð ᑤø›&;�’—/ÀåÖðX x$Ý)ŽÈÝÁ;@ ŽÈ9m®¹Ô"¯yóu/W_š]g$l„H™m€-â@Â9ÏQ€`ãÕ³Î9°ûñ¤˜&3!lûÌôÆ‹éP­&"˜Ñ,)VÍ€�/�ç±Í‚FÂ>st ‘Iå¹T1x$J·ª)RwKñj@xIòìB¬9¼ˆ*xÀ»I„w•]°úÚU$€Š¤2†X¨ˆ¿¿žÿ³÷ä¦}þ ‹< €Ég]‹����IEND®B`‚IMAGE 422 ./arch/wall/gwall/gwall_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��9IDATx^EϱjÃ0ÆqoORñl)/ ;C³Ú¾¢µ¯(4cDÔ½C^»ßÉ…züûøøih5:QS¦qq¥ mOž§X<#…¶Þ¹y»ðCÛÇ$šƒRÐ.œú¼È)S¥±‡­ú¹ŠpØéU‹N"Ir¡ðM_ذÿ\<=B±ÑL‹Ÿ•t!Ûð2yqn†‚B•'$u" &å%B F#Bu«?_"BÐ.’I26Cp˜…$‡JGXí%waÚït î´IV¾tG¸Ë”Œ® ›ƒ™èÝa+s1i§»•5aŠ¿0%vse“¼¬$^úEÄ`P ý|M'¬@zðóCžï?+‡´pЛZðG8¤vŸ8”Âb¯EZZñciס‡ÿ= /íöxjm¦m8����IEND®B`‚IMAGE 395 ./arch/wall/gwall/gwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��IDATxÚ}RrÃ0 ²möÿPtq³[u5F*B¶Ûu*–1+l¦ž5Á÷ˆ€<Y,í%*¶åKAW«È�“—˜ŠD(u% $·ÀÍ1x ,˜^v.^Eé^…m–"·¹—ŒÁlÞ ¹Yw˜<|Ñtì|뚯ÐiûlÈÌÐUÓý½"}ž£ÇŒ€$Zå¸üµжãJÓÜb¼Sܯ‹8(î+ ½Çô-øü-êŸ7®ž� ^¡¨äÖöއøƒ-€ •‘'¼¹£ÎÔ˜·Ía9Ë›f Èl¸Á³…ÚÌ+îQ€š„r»F„ "‡PqÙ8¹ÈX¬£š’“/G?·±[Þ‚/±&’¤Ð8ìy# .¶CЖ����IEND®B`‚IMAGE 416 ./arch/wall/gwall/gwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��3IDATxÚ}’QŽ„0 CljwÂýO¼²Dù$RUyÄ®ËgfXÝ º‹ìî@Zæ#�Õ]*0Û¥Žv3½VQÈ„ùáNhƒ’˜/VÈ�Š%ëE»€¹ìÃÐeux%�þFãÞ(€èÕg¼¸ì}Š*cUkQ%6ÎÛ.|%Yñz*ă㣄4·+)‰ZÀ$ ²Ÿ#  E©À™dE^ìôSλ¸HÈáÞæ5ÏCT�œÅŸ}>X&öcì„Uø nðx¢–û)ÐÀª`ì!?Ûá2û¬™°h˜Ö¬ärç°÷,¢­@`9‰#l€ö’<|¿‘ª•0]vöž“$ä¬/qVe/�Ÿ'ï±ðó‘‡T-y³O™ᥠn9Ü����IEND®B`‚IMAGE 371 ./arch/wall/gwall/gwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��IDATxÚ]QÃ@ÚYV÷ÿf˜¤¦áìIQéëÝM�IŒ›e}â 3‚4pŽ€é!6„˜²îû0DŠ‘›òޒaÞï†.]'|ÓbdŸmîV;S1gÉÅCEå$<Ú`¬Åîõ¬/!oc 1ÞÃí6LŠ Ð6*Trå{S àW+ =ˆYÜb=¨î²Bô-`ëéd6ÈaÝB¿Ñm’бZúƒâ¡Ô-¡q1JO1Nø½1fA&®ÛI]RüÒƒbî MŽØf öà>Ñ‚â:¥TµÆý‡Ä%=‹ÐGC(ͦvm‚,ùë°SÁ3°Èé¥pªfƒYó M pçîá³����IEND®B`‚IMAGE 424 ./arch/wall/gwall/gwall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���þ¤�±!!V5üM���tRNS�@æØf��8IDATx^=‘AnÄ EsRºÏ°SU³$±ŠzŒYv—Œh9H½nm&ÓíË—ÿËgê-9 I0Ã\ ö©è)¦êé úz§î™ó?زä 0Ë>M݉υ/Ú ¶æ—ÆLá�y¯™‘sË(°ïT½ÍtKd`*~»¶xŽž[ hÆÀÆ¿jÒ"(�3¥’Ô$ý‹5·‘øë-)puh&¤À<Lõ,2çð4]íOîLpÀ[Ñ–†Üeã,*Rª¶(¸sÄS}xQ7õxkYWª.åZ¬f´¬$˜EŠ;Õ]DrK#�À]ž›ŽDÒpNxýÄ‹½‹œÀ/ß<WO¡)zìAÌŒYl£ÅsøúYZP4køx¹Þ¨‚H|˜2ENÐÆ„Ö‚üÚ¸v¹öó]¨Gý¼bsô¸”±P����IEND®B`‚IMAGE 389 ./arch/wall/gwall/gwall_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��IDATx^MŽQn„0 Dó·ßN\ñ Ù ÀìÒu›‹ô�°J•ôÞ“!c½ñ z¿Õ½ï¡ï·Îp'·´©_¯š™N¦Uµù7„C›˜¨‰™Š„Ðô¸3׺8ãÅ—è!„·S‹Ø,M>ŠZ¨ÍãÆ¾Å„²gSè—ŸSŽPË�2L%üú<C8‹ÕY}kqsÁÑxAmz{k!Ý®gõ±¶Ñb€«5VŸµD“¨Ÿò¥`ËXàÓßÐ{¬ ú£aªéÁ¿DËЈU %­Ï-&ÌypÂÁ£¿¶žhát¶˜ó%ƒ¡OÀ �¬ö„9˜WkXÓr¯em‘& –?dXöPFÐãÈŠja” Æ����IEND®B`‚IMAGE 426 ./arch/wall/gwall/gwall_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��=IDATx^-‘A®œ0DÙýuÛÖ'[Ûswem°Äls‡  V¸À<ÕÌH¤§VÕëfº¬¶ŽÇ†&s—ôwºŽªó u ×¶X…~&®iº6N`±–†ÈèaÕÁœ&&dëª{DËéù·0# b?v‘ôœÙÒö¸Ø©™À„À"FÐ1$™ŒOK º³´'ó zÌ'²È.ßÇÇ´PÍÁè¾ Mè‘‘«c&°[ÝÞ�E+ݦ0Ã(náÀwyý@nTýÎÈU™™s 4ùwïâëùDqÍnA0}mô*‹[Èpuz$¼«ü Bõ€*ªÿ€a'ƒšÁ=žñý_ ©;Ø4Wdo‚–ü¼N½â/«àe¢RÄ øMÖ½jðM!°!óÒ†f^ëG¯ªÀðŒµ�™Øñ˜|nÖg£k����IEND®B`‚IMAGE 389 ./arch/wall/gwall/gwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��IDATxÚ}“Q’Ã0C ÖV½ÿ‰e4éGé„ÈäÅÈqý"ùrÂÞ2vH29ÊÁDÏUU(“Ãìå1°@wM›1Ü»‡Ü$ÿn t<€ŸªîÅóšÊ€ Àçžån n™ â˜ˆCV½ ¥C�Š"_ÌòY‚ Cˆ¡R(²$ÞãáQˆ9×Ö$¬Ez÷k0C%ÀØ×“§€ôÍ’í-€_ݳ٠C_›"½¥ê-vÌNqsºÏ$ý&Šiã?{Ÿmpö"ÚÏ `Ëè ¨IvX0“WŸd%�ùÔE–ZsLHgÃ.“Ý—¹µ+½ªËCk}S‡R¾·fð‘Û~+©F@góW,ðuª#ýôIÓ vúf;����IEND®B`‚IMAGE 428 ./arch/wall/gwall/gwall_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��?IDATx^U1ŽÝ0 DÕmMIk‹HmŽ‹ß `às¤JkF˜~/ž‘6MØ~o˜â²lµ¹n²ô|Š­í(F ¬·EÆ‹Bлª5…oÕ¥ú™DÆ~Çk“G– ¸¿?€ÕK¾ùA ª€b;¤þ‘_I2ö‡…@~W¾(`zÙ]¼ 32Ð rÞi!• @š<« iU¿MÚ“…�¯läTÔÀ&?>÷gcæ[añ©lõ˘Mn˜\”?SvEͯŒÍòGÊGA½!:ÔêPƒ™ÅPŸlr³IkÇ0ew3\ßî´˜�XÕVz Ó:€¤˜à8Ós#£eò'dÂû'*ÛÔk&ðb /ÆLï¼GÌbCµ)æ-.¯^zg—Úù"®#zÄ÷ˆ«‡ðÿœ)}¦8ç7¥¿Ôµn]g¡ÙÄ����IEND®B`‚IMAGE 369 ./arch/wall/gwall/gwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��IDATxÚ}“ Ã@CÍjÿÿ‹gªœÜÁ&ìyÉR[„³ˆ0 FÔ©8PÚ-v@Eį2ø f‘d,m@FR ­aPñ#m2ÜKw€Ñ¬ÀL]‡•tH6Ûly‹vŽ­äè-0ß²Î0fíS¶×Àxì�Ç ”;æ–²s§6 Œ1÷”õÀ1Ç8V=æìdc¶žUï·ï`­Ï¥‰‡\ý<á­q®¬]o¹[\4òº ¤C&c<š'5´p5”ǰT5½þëØÝ"¨#r¼‡Æ¦õ&¨nîè´«‰ÂL xùû¾.ð¹¥wBZWïáº}¦iñ¿¼/¸r6à p† £³é����IEND®B`‚IMAGE 425 ./arch/wall/gwall/gwall_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��<IDATx^]OêÜ0 …µ›µbÓ¬cåö› xFn{‡ß&Áà})ôÚ} í¦–ÿ„ñIäDíØß¨ºvÍŸ�mÁúB  ™§=‡¡ýMLéݘÀsÔìªÞEµ¼š[íU‡’l¯v$´šO]°6=Tó÷Ut©GÚŽJ0” µžª¿›»æ¡ÎDx”Ôjõ<˜�=~_lÂ.ßNÙìNð& j;Mè‘H rL2Æ­>”‰‚Ø@$lyµ1à¡~ƒê?á u'Xk³8ÅTæÕfzŽ{–OhPŒ&¨aA€Ú-¿Õš‡…º€ñ|ýB;^êº. k÷—dþœðuE2|D7ì MÑ\!e£…Ay<¢´øç1ZÜ.….ô_v/Þ+Ë­÷*ó<fŸseݯÌÿ–ÈãCø`ñ•Çüôâik¹ÂO����IEND®B`‚IMAGE 391 ./arch/wall/gwall/gwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��IDATxÚUSÑ…0Jæþÿ‹ï˜¦¹S#PN»H^ÜÉ®ßC*dô®ÐÇÌ9p¶Ûæô`4wîÌpº.�`ûPawDr²(“áíRïÊHQ_õÐãçŸÚo+@5¹E›  WBõˆtÖ pf˜5/W}ò1Æ:� ‹—£@i‹÷œ©p9-t‡vâÏ·5ÁØ@¹�éRñˆp/£†Œ�ÝÖ¶CIü§d.“ Ê˨é佈ÿ;à$ígH¬…5Î׳øÙ™„ÐB'Që;·uDvö$$„pz‰ˆèki!Q€öD[,�1í0egÍ�_æþXÌRž¼—õ4[PAàú? ú,…ºÔ±`Úiúð1[ :yKsS����IEND®B`‚IMAGE 426 ./arch/wall/gwall/gwall_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��=IDATx^=AŽä E¹‚)kpI³Æ?Òô–n÷0×褢H .>•2b÷ümžæÓ¢åêÚdë2&’•:’ýå´™€;Ñ»ªU…·ì²ùDVÇ£Éuƒ‘ö °üÿ3TP´!+$‚õ633H' §Ý…c•@Mˆqï A‚n4¹Š°¥¨Ÿ•&õ+xD[&• Tp“ï×~5ñ.ÛÁ„Í—ÐòÛX›ø “§üî´ÈñÑœ"}„å™OˆÞꀩ™Í¥^ž™ê=ŸÜ¤ÖÑÅ;ÕãgŽpýp§…0 ª•å!þìß/Å­~¨Z#9AGð„d×¥ž—iQšl#ÕÈ|Á�XãZuÕù‹/SΈö•ÿ¦ÖmPì{†yµOXDÍCøf2¬±³¿A˜_ì/(…<Ð? øjº×®����IEND®B`‚IMAGE 379 ./arch/wall/gwall/gwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òiíu�c2�1�cD���¹PH)���tRNS�@æØf��IDATxÚuSÃ@ò,›ÿÿñ€hÌ.éeဢv&ªŠ(ÍŒ 6í¬n*ÔÁ©·àSœ)ŠRfë ð@WA¬Zµ1qÛ•i:<,û*4] Ö�æÓê#%=ܹÆjöv‡m;ÑÑqÍmiê1lÛ}2÷,WÌו¹Z™»U:>ÊbŒ}Ã]µðÚé®ú}ç Øl½« ¬Ù;ð¾c¤‹S`bÚ¦²ñø$ºð< Ö¡bG¹¨õIÔðtàø:'Çóßt«¤9èXßQ…ã¶ÅöYn[ªí;XÔiw æöüõq ˆR×A;p[ðV‹* ®ò¨¢_Âßïø;[W×Äyë Â(9����IEND®B`‚IMAGE 417 ./arch/wall/gwall/gwall_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2cD���±!!&j¨���tRNS�@æØf��7IDATx^5‘ím4! „Ý‚ä?øÀs °gQA ¸[ xõ*õÇÞ$Ò£™a,h¿Ðnt~\ž4áý€à�r_ýUlC\ûêŘms;Ԥ΋9¨‡Î íåå¦�Ò�AåÉqê3ßæ@Ÿ&â¬#w{¨¿¹ÉÑ£e#2Íð_'*{JYTåRø€€åæMF¿ƒJL²ÖU}²+báxä©kÁ¯@„nÿ` þ«ž2’(52ìSw¾¯k–â&j‚&š 1˧ô!åÁP»¯ œÿ¡s$Kü"�Wܪ�ô™ñq†2ú&¸%Ï‚ƒZeÑ*­ZAì-~»HØHšèÏbÀ7YRË�ÊèA{éÌ?¿›ÚÑ7í//à927Ñ~�½h‚ùüyõ`;—‚*â����IEND®B`‚IMAGE 435 ./arch/wall/gwall/gwall_xa.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���þ¤�±!!V5üM���tRNS�@æØf��CIDATx^5‘AÊÜ0 …ç Š^Û íÚÒÀtëŒ_çO0ø ]¶)ôº}r(!›/’ß÷œÇèÙ¸T•·¿ì  Xxv•]ZxV€2«²f¼ß1ño|øÚöbä à„Íøi»ôÕWÞZË¢™ËAc‚6p,dzQv°ï’‰#ÑÀË®¥ò†M£õá)² çÏ©¯êcî+gu°œ--|ûmD½Ë.–á‘:QkwJ 0O­mŠa]ÕôCg—ýs!%ýø P,ó>Ü‚¬¶ÛC5é†ÐNñ®Ï‚ÎDt¬®0!¨êt×ß`R­Bˆ�=õ©~Ê©OA(µYŽº‰ƒhÃSìr“‹ÿ¦ASP…Ýÿ…Uã©e=¨ß÷¡vfvu ¿Ömci.6»°¤ü¹¨O1€_§Œ‹Ë¨�P÷ ]r ˜øßÀvy½MÛ����IEND®B`‚IMAGE 433 ./arch/wall/gwall/gwall_xb.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���±!!Ÿ|¡§���tRNS�@æØf��DIDATx^U±NÄ0DÝ]½¶Eêx#QÛq´¾[ä_¡L" ÷€Äo³n"½LÆoâÆ^|‰I8×®²)@(sjA9¯ÕÀ|”€¥/÷GMÔÊ\C’ÏIhsDç÷X°Üs'haí�â‘÷Ø03À@B#šyèûr¦„h8 ІRƒz=l–@ ð¾àZ‰ð¤&ja`¸™å˜Õ$™Í °xHx~å܉âp eæžÞwŠmÓ„-a›…nlÉç‘oBѶxaÄ[ô!êÔœoÓ 3¯•â®ê`�œGÈDÍnÑ%‡.IlÀL‘彜Ô:£@EýÚMõæ±vF6 bÚ4 ˆG®¼hKüQ7ƒŽ¯—E[6wçÉ¿[8ñèdK BYDHªzŒÞFcCbÿÏæÜE¡»Œí|:÷ í­nB0 ‹ø����IEND®B`‚IMAGE 455 ./arch/wall/gwall/gwall_xc.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���þ¤�±!!V5üM���tRNS�@æØf��WIDATx^-‘Aj1Dç - ´–z d)ÕÎ_Ê¿Ãìs“À3„¯aB|ÝT›À€àMUë5ÚÖÙCOÕ´Ÿì•�±—zDr½ åê+ûÜ_˜CµW…ÕЪÉë&òÙÇŽýÑfrÀþmHW±²TàWqˆƒ�þïžB!ˆà„>"=L|F`8"ðx"ši2irz¢¨]…&u7‘ƒ�{€ÅûË^¦‚Š^tºI9%dOø&ŠŽ"™Ë¾Iéû‡ˆ¯ïé=ùú[$csÏ??Qô-¦d¯ k[±‰”3­-\yp“ª]ÄMCG7½F 7…{ôp›¬Ø°¨¥h´põyuö9A¦‡Ü_t7mœé¦4 I>bKSŒ Y�§L^«U‘|lµ‘Îä3úsúë/K‹ak[oõ= 2ÈA°~)ö©kÈÛz°PŠ˜{üø€l£øD^����IEND®B`‚IMAGE 438 ./arch/wall/gwall/gwall_xd.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òiíu�c2�1�cD���þ¤�±!!V5üM���tRNS�@æØf��FIDATx^MÁn„0 D¹õl)gbÔž¯´{lÀ•Õ¿))ßÐkw¥þnÇì¥Añb{f2ô#+—&u­ÊWý(.‡Ô¥Z¸4€2‹°dì7T }Åy©-EÉAÀ„Yù¢K=¢·¬R&®£d.õXÇXN»Qv°,5 *&ND3ÆEJãJqp•:Bç±ËµyE?û…³8ˆ�çQŠ…×%ÒäY–ª>¦ƒÈì©bΧ¢Æ²`©|¥3Ëòq‡ÊtûhÆó>Üi³§‘Ifˆ”žñ¹"3mÑ­TTDõzƟᤊÈâ „pdJÛi}¯»d<¢dg8þv'I»«èN>KÜHãéÔ—pˆÛä�¿»5)æ>¬"\ƒT#kä@CŒùÑTgLÀYo½wŒˆïƒƒ X/ðë ÒJvÁV"£����IEND®B`‚IMAGE 157 ./arch/inorganic/gypsum.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÿÿÿòÃ\ï���tRNS�@æØf���BIDATÓc` …1$ Œ¨P(#-"ĸlZ�Dí¬™!µ™K!Š"£fN3B#WBÔ°Š.…Äš 3:„.�� 7 6Å(ü����IEND®B`‚IMAGE 225 ./arch/monster/goblin/Kobold/h_kobold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEµÆÞ����J�{1)­c�„9BBB„„„ÆÆÆ”J�Z`ê/±���tRNS�@æØf���nIDATxÚíA Ã@ =Z9iöÿa“£½–Ø>XHÆõ«°ZVE@â5¢m½ bÀö©’•{¡iÉŽòœv[ÉÂí‹ÎÖâØv¤#` D) €¦¬°÷zd4žî J‚ÒÔŸï9 íf ÷Ÿ¥����IEND®B`‚IMAGE 240 ./arch/monster/goblin/Kobold/h_kobold.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEµÆÞ�J�Z�{1�{9œJ)­c9­ZBBB„„„���½½½äAC���tRNS�@æØf���zIDATxÚíAà -LÕTùÿkâcQŽ9U 3ÚY⹜ñH޾Ôk|PŸq6�TïJ^¡\8  FA€ô ŽANë€À•éðBx»^+õ2@ 5×_ûž-pA²Ö¤ë5ÙÛÈöX Ð\ÜF5ÿüä H1/¢Ýg����IEND®B`‚IMAGE 221 ./arch/food/haggis.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���c��œc1ΜcZ ÝN���tRNS�@æØf���|IDATx^ÅÎÁÂ0 DQ»ƒ¬H^Ñ@´ª Nÿ5q`@¦°7½ÃµÀïm1°tóI.€‘©@™æc+—œ ¸?.­0b×uŽ‚ÈLeEÌò™{²€Ô¥ybi¸æ<¾ÐèRA7m2Htð7” ¢­~+j÷í{íªNŸ$+����IEND®B`‚IMAGE 284 ./arch/player/stoned/half_orc_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���‚‚‚ÿÿÿ999,,,RRR’’’eee¡¡¡???š•ñò���tRNS�@æØf���©IDATxÚÍ‘AÃ0-µÒÿ?¸`×§*Ü:SrÉx“ñ‹zœB¯`UËݽ1’?ýÙq· âÆÝM‡ãzÐL„{ñ‹†{`Ú…ârH䩽`ÅIŠ˜|÷ç8!x$çzR±gÝHLØù\Bl™ù85‚þÍG'nªF ó´x]Qp›ø|ñn‹0vÿyƒæóÄÍPBm®dXDo0þ«Þ'àÀEÍ9����IEND®B`‚IMAGE 972 ./arch/player/race/halfling.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��vPLTEÿÿÿB!c1���D"f3 7%i4$ yL'p;fD%½|@ŽS)hG%§r>§k8–Y-žl9Ù”N¹x>:(„Z0ÀƒDבMÉsŒ_3Ä„G×›[¨•U9¦uD½…M{T2E*@H%S+o?€K%~^O`UHyU7Y66* ;F"G"N%K(X/T7%< 6 ;K&J%J$G"R+?;D!O'O&M%H!; Æ6ì£X›e4¶v=šd4= 1 - : E!C!A 7 sc[W&|N)™X*è VŸe5›d4†S*1 0 ? I#? 6 >#J8/:@&Å…H¥R)}H%¬l8±u=žd3R0H&AD L%O'R(R(E"/ 1 ?D!>ŒU%ï¥Z•\/L&N)M%M%E K%N&W+Z-U)F#H#R)P(J,¦h,U+<?E"H"J#P'W+X+U*V*\2tVF{{{¶µµJ$8= 4 7> X/X,Y3J+V5$iVM]OIS@6',S0‚U/|P.Y5‰}C+kA"L'c:…Y4<AM$L$S(oN7`5D J"M&J,S)L#N$N'T3X9&L$N%N&V,kG2`D3S)S,U.jD-)‡þà���tRNS�@æØf���bKGD�ˆH���÷IDAT8ËÝÓ½+Pà÷q£K‘ÍÀ`÷5AÊ¢1n)“²ø3Œ6 ™”ºƒIÈb¹ƒŒ,wÅfðQH¹–ëëÞs3*¿é­óœ·Ó{οÄ?§ÐW/­Â@MPà)š Õ‡ìŽ×‰X·ûÀhM°ã(Ûoòc½ä}d&6nÚ?\5XÁæ<xhAèV‘âÚw°¨:ËßAŽ­˜ãþªœuó£Ã{S奺íYä+'9œ)ƒ‹bĘƒªQâ% …äuw}î$ :¿Ày ´ÁuD.S ·ÑÌ]êÉ5â1"¢çȯåªô–�B¼ýÕÇy”Z2!Žž����IEND®B`‚IMAGE 974 ./arch/player/race/halfling.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��vPLTEÿÿÿB!c1���D"f3 7%i4$ yL'p;fD%½|@ŽS)hG%§r>§k8–Y-žl9Ù”N¹x>:(„Z0ÀƒDבMÉsŒ_3Ä„G×›[¨•U9¦uD½…M{T2E*@H%S+o?€K%~^O`UHyU7Y66* ;F"G"N%K(X/T7%< 6 ;K&J%J$G"R+?;D!O'O&M%H!; Æ6ì£X›e4¶v=šd4= 1 - : E!C!A 7 sc[W&|N)™X*è VŸe5›d4†S*1 0 ? I#? 6 >#J8/:@&Å…H¥R)}H%¬l8±u=žd3R0H&AD L%O'R(R(E"/ 1 ?D!>ŒU%ï¥Z•\/L&N)M%M%E K%N&W+Z-U)F#H#R)P(J,¦h,U+<?E"H"J#P'W+X+U*V*\2tVF{{{¶µµJ$8= 4 7> X/X,Y3J+V5$iVM]OIS@6',S0‚U/|P.Y5‰}C+kA"L'c:…Y4<AM$L$S(oN7`5D J"M&J,S)L#N$N'T3X9&L$N%N&V,kG2`D3S)S,U.jD-)‡þà���tRNS�@æØf���bKGD�ˆH���ùIDAT8OÝÌ?+…Àáó¸ù[$‰|a`’²(”˜ J™”ÅÇ0Ú,dRÊ`b°ÜAFƒ Jr¥°\Üë¾ï5ØüÆsžsÄ/ù§àzÒÁÑüô¥‚,ÏQ§?bÅl8`{¤Ò`*؆òûR°å°¦Wu ØðÙDX½nûrJÀ"ÖfÀCƒçËE {\Qw,‚9?º¥èÃë1Mîª œv؈B0ÊÎXþø½bsRn/Š@D dòàâ<bx?J@çZ!û=,­ÐÇÉ Mà,Ôâ1¢—I ¼FD4s“„x‹ˆ¨ç> |UÅKY‰÷·²àGCÑ6!R�´ ����IEND®B`‚IMAGE 726 ./arch/player/race/halfling.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��›PLTEÿÿÿC „B!4 D!ï¥Z: >B!O'í£X> c1; = ; 8 M&D">%4 E"M%L'H&E#1%��5 9 = F(. %ÎN9 ²k5’[.Ë~?Æs96 s>b4šb3ƒK#���C N&S(M%Y1“P&¤f5Ä{@;%j@"4 4 oL'oE%Z,7 8 >l@±p1[.H%/ 0 9 E!C ;"{{{¶µµ/6 I#> ;N&P(B E&J$tB N'I)L%R(X-B#H#K&Ár;¥R)I#CR(X+Ê…EA K. ¥U*«Z-¾w<a?šk=°zAB.#  ¥m;Ÿg7Ä„GJ%D!vK,D H#K%‚F��½O)P)S-’]1K'E!L%R,V2T;.J(I'S.—ù���tRNS�@æØf���éIDATx^åÍ3—„A…áÛǶgmÛ¶mÛ¶ý³÷lÞÕÑfó¤÷=UH]Ÿ_ß?xa¯oï 1öðøô Ú5»¹½»©ð‚]^©*(GÇ'§gçô‰Æâ‰äÁ!‡×çCa�}ýœ@¶ÏÎ9.7¨Àadú´q†Ú1084<2:6NöôŽNMëêîé%‚«n³iMÍ-­°¬pä—”šÍyY&•¬®­o·¶]S6gŸš_X\R�ÿC\ßÐÖ>R™œ–ŸY] ÚòæÞ>D**« bÈ-‡E2H’ðÂü»_€(cdVê����IEND®B`‚IMAGE 735 ./arch/player/race/halfling.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��žPLTEÿÿÿC „B!4 D!: B!>= O'«Z-í£X> c1ï¥ZË~?; ; 8 M&D">%4 E"M%L'H&E#1%��5 9 = ; 6 C N&S(M%“P&¤f5ƒK#²k5Ä{@;%4 ’[.s>ÎNÆs9j@"šb3b49 / 0 9 E!C 4 G&Ár;oL'oE%7 8 >l@±p1Z,[.H%E&tB X-B#;"{{{¶µµ/6 I#> ;N&H#J$K&N'I)L%R(Ê…E¥R)T)I#CR(X+¾w<A K. ¥U*a?���Y1F(. %šk=°zAB.#  ¥m;Ÿg7Ä„GJ%D!vK,D H#K%‚F��½O)P)S-’]1K'E!L%R,V2T;.J(I'S.Æ/¾"���tRNS�@æØf���ïIDATx^å‘C“„Q �ó>mÛkÛ¶mÛ¶÷_Ïìy¾¼ÓÞ¦¯Ý•T*P¸|}ÿüÒü+y{ÿøBŸž_�ç†ÜÞÝ?à~ç’\]kµ¨?>9=;¿À½×çßÛ?8<‚Á!Yo5Úì§ËíÁÖ07o2™-€Fýg³h0<2:6>Q7€†Êªjž¯©mkï�Í¢LÑ‹’Ä·´&’:JæÒ@0ŽDÕê ØR*U¥ùÁÒòÊêšbcóOÈ®èí럜æ80šØæÎ®îüK»lIyQY= и°¾ 4â©4PŠcô@à C‘þ™,¦3)6€Ï����IEND®B`‚IMAGE 611 ./arch/player/race/halfling.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿB!R)J!c1Z1R)9!ï¥Z1!Z)c9!1���99Z)J)R9)))J1Æ{1çœRR9!9!Æs9”R)ŒR)¥R)1J)µµµB1)ÎŒJ¥k9s9œ{�”c1½{BŒR!œc1¥Z)c9sZJ{J!sB!ZJJŒZ)­ŒŒcB)!{{{cB!œZ)µs9{J1ïÖ�ŒkZZZRB9çÎ�¥¥¥ŒŒ„kJµ”�{{sR9ŒsZR1J1)œŒ�„{kœk1¥c1Ö”Jµ{Bµ”ÖŒJÞœR{kZ΄BÖ„BZ9„R)�s��„kJ9Z1!Àzm&���tRNS�@æØf��IDATx^åÌÅnA EQÛÍÜÃLafff†ÿÿ‘hÍHIUz™MÞöþïÞ'Éê±I‹g€ÖºÝ,P~~1_5¡5�÷O¦Ú—‡ t{WìüOÏÎ/:W×7ZÐöñà0ÈŸ0lmÇHÄ’]ooŸiÀj[ !ˆ´66›Dò{çõzuN:±Q²°È°)‚J�Ñ@"&YÆ à�¦©k„è»eŸ Ì5 ô}Ä\ P(Nª`Ég¶MÄÜ€i”>w™1Ä>�e+%‹"›"Ä7Ð-˜7kë\1;ÚåFǪŸÖ.µÝó¦¾.«§ïÈ’sMÇ~ øÓ}�éõ£j„±Ò����IEND®B`‚IMAGE 613 ./arch/player/race/halfling.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿB!Z1ï¥ZR)J!R)c19c9!1���Z)Z)99!J)R9))1)çœR1!9!Æs9J1ŒR)¥R){J!J)µµµB1)ÎŒJ¥k9µs9{J1Æ{1¥c1kJ9R9!ŒR!œc1¥Z)c9”c1½{BsZJZJJ”R)­ŒŒcs9{{{sB!œZ)B)!œ{�ïÖ�ŒkZZZRB9çÎ�¥¥¥ŒŒ„kJµ”�{{sR9ŒsZR1J1)œŒ�„{kœk1ŒZ)Ö”Jµ{Bµ”ÖŒJÞœR{kZ΄BÖ„BZ9„R)�s��„cB!Z1!§³¿¤���tRNS�@æØf��IDATx^åÍÅnÄ@EѪf3 3…™™™ÿÿGâQ”Hq÷8›ìò¶çª þïÞ-+Êò0ðDIf9¬u»† õ”Ÿ_è«îËßÁýÃãÍ ÆnïŠAâéÙùEçêúÆlm·"æ«GÇ'\VÛ!2Æ£]goŸsñÓe½>?'!Œ¯·66›Œ¥ƒJ@X¡ë±ha‘cS¤ �ˆAÿ‰à¾&>?ŽíÀGe—a|bRw;P)ÄB 0\}kŠ».cÜÎPJ5Ÿ­ÚœqD�ƒÃ%­ yÉϵÀ¸Âô Èäâ¨Ñgª‘�Yià�GÙ‡·ÞˆÙñÓ!_ZJ‘~Jþ8ð§û�¦ðGTN����IEND®B`‚IMAGE 681 ./arch/player/race/halfling.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��€PLTEÿÿÿï¥Z>W/c1„B!B!$ §h5¿€E���iB"„]4_@$O,F%@ hE'X3m?J%F"~>I(V7“[0Q*X+<$M3³y@‡T,b27 ^7ªm7qAT)C"J'm9U-X2jXNO(@ +§ÝÁ׺—t U*Æs9¬b0X5$F#: J&M$L%C!C!; 5 4 J$Q(G#O.¥R); 1X.3 V/;Z.d<B'< H#D!> < : T)F"E"0 3 4  ��$ ‹s¼› £Q(…}y^RLVTS9&µ|C¼‚EÒ’T{{{¶µµŽb4î¤Yê Wá™Tˆ[8Ü’GÜŽJÕ—XqO9΄9¶±h5Y9)W/cccášTW0qf`\KA`C5z¼ÿ���tRNS�@æØf���×IDATx^ÝÎC³Q†áƒ™Ø¶mëÒ¶mÛÆ_¿•}ºWYåÝ~OU7éÄ.¯š€1°_Æÿ0ðùÅØ÷ráåõíýƒ!àáñé™#àúæöîx“Ÿœž_p`¯Tkõݽ}~ÐcéL6—/Keñ ŸæÉëÁæÖv£»§·KË+«këà>53;7¿°èA0¦4%`¯úÎî N|@i0šÌ« *µF«Ó8™œ*Ö$•¢{,х͉ Š(hFÚß?Ä$¯RPÎ����IEND®B`‚IMAGE 697 ./arch/player/race/halfling.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‰PLTEÿÿÿ>ï¥ZW/���B!c1<iB"„]4_@$O,F%@ „B!C"U-X2jXNO(@ +§ÝÁ׺—t U*Æs9¬b0X5$F# ��$ ‹s¼› £Q(…}y^RLVTS9&µ|CX3m?J%F"~> I(V7“[0Q*X+$ hE'¼‚EF"E"0 3 4 : M$L%C!C!; 5 4 J$Q(G#O.¥R); 1§h5J'V/¿€EX.m9J&<$M3³y@‡T,b27 ^7ªm7qAT)3 ;Z.d<B'< H#8 D!> < : T)Ò’T{{{¶µµŽb4î¤Yê Wá™Tˆ[8Ü’GÜŽJÕ—XqO9΄9¶±h5Y9)W/cccášTW0qf`\KA`C5ØõS,���tRNS�@æØf���ÞIDATx^ÝÎC“EA †á¤ûÒ¶±mÛ¶m¿üÖTÍò$«YͳýÞJ7ü_ˆ èìüwÿBùÍoLðøôüòŠÌ‰Û»ûÉ—W×7TÍå §‰4d¢±x")SD Gܯς"ͰÓ5ŠãÒî ééíëJKk[{GgW7öŽOšš²±¹µ½³»W”å•U!ÖÖ47¿ —€TYU-jjÉT*KCIiYyhuzƒÑdÆØ¤˜δ¨–mfjµÆjeƒð׊ùF&nÀçi����IEND®B`‚IMAGE 319 ./arch/monster/humanoid/Halfling/halfling2.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE1!�À�@ÿ@W1�€€•Z*­b1Ê9ÔŒH�ÀÀ@ÿÿÞœR��Àï¥Zÿÿÿüè‹���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���®IDATxÚÝÓÁƒ àV(BõýßÖ¿ì »í°?$ûAëAº¾äog"Z�&&¬`.ûžW œv.[Ô–m5$µ—µO@D0Ak…C ¢ª\™—|‚Z �Ë£ò�f¦*ê¥þÔé4Qˆ( é=rUÛg°±ŒxÇ€GLŸ‰zJ[oz`¾ ¡dÀå~’8G€ðþ-ó ˆ{}ˆßþ87 ¡3Än¼Íf����IEND®B`‚IMAGE 297 ./arch/monster/humanoid/Halfling/halfling2.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ$ �À�@ÿ@6!X5!„R)�€€Ò„BÓŽJ�ÀÀ@ÿÿÞœR��Àï¥Z���¼Ë³Ú���tRNS�@æØf���§IDATxÚåŽAà A¿¢hõþ·-Ñ]J즻ÎÓlf Ðß‚ÄÌ'Ï`;‡�È9ƒü¯ãˆRÒ \{¯ORDs­¾U];Bä®KÑfX!�DÛ½è½_R/D,•?ô=¢5»ÒTÜ÷{®n�Øã5‚ìë€\ØÄîy ¢1†İ r}Œæwà!>ù9— Ö<x¤½Hô=¶'F 3s¦oÁ¤ŸòÄ$ì} ����IEND®B`‚IMAGE 291 ./arch/monster/humanoid/Halfling/halfling3.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ1!�s��„W1€€�•Z*­b1Ê9ÔŒHÆÆ�ÿÿBÞœRçœRï¥Z€Ö´���tRNS�@æØf���¡IDATxÚåŽÁ„ k¡­€ ÿÿ·>‘ìA ǽìÄ¨É /Ðß–žÏ"`¶}_Z¤E`)K£–?5Ϥªâ9Ot)… °ªã¡@èŸG‚ç¢<'RªZºÄ[ñ}NÔZû@§o½ˆúA€y3çu€¾îNx@ÔZzûAŒñ ¼¼Çvž<Ì,Ø6±û‡Å÷,ßRÏ·ý”Ihç:½����IEND®B`‚IMAGE 294 ./arch/monster/humanoid/Halfling/halfling3.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���$ �s��„6!X5!„R)€€�Ò„BÓŽJÆÆ�ÿÿBÞœRçœRï¥Z)Åzy���tRNS�@æØf���¤IDATxÚå’1à 5ÀÁüÿ·‘mÒ$2iÒeÛÝÑQ  ²±õV`S�(¥lƒgÚM”Zó” ¹=F»“$QJk¾¤ö~¾ä»®U»Á®`å{1ÆPUªeJéÇ…A¡iCÏCâÀå;Õ �UÓJŠÍ9AÀ[Ž1&œˆÌ9ýàBÄó!¾Hâ‚e ׇË5tç×/º9°¼¬páO}/ä—<^«™"[#����IEND®B`‚IMAGE 290 ./arch/player/stoned/halfling_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ###qqq°°°999YYYfffsssššš†††ÅÅŧ§§²²²à<Á���tRNS�@æØf��� IDATxÚåŽÁà FIÃÿÿmŸÕé!!{éŽ3vH ­<1á-æ²ï² ÊéçrEmâiµ—·'©ª¸ µÂÚ̸�Võq �¯ºVG€¯c×în¦ÖÕøí6K ¢£¢#á­£©ú~÷™uÒ7Ö È<éAä·-Rü‡,lOÀ CO$ð€XbÏò-%ð<ü,ÒOyöÕäK&Œ›����IEND®B`‚IMAGE 221 ./arch/weapon/hammer/hammer_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaÁq8G$!!! R-���@@@d3‚B'}âz���tRNS�@æØf���gIDATxÚíÏ;€0 Q“ð’ûßYÚ­)¨Øö'î¢g[(½w>ȾĮbó¡˜Q+á z})£.ò>ÖU…u] Î#‹FÃyþ%ã9*Wá]ûýSävÈý€x± ÎëÞ7²W����IEND®B`‚IMAGE 213 ./arch/weapon/hammer/hammer_2.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8G$!!! R-���@@@d3‚B'ÍÅY>���tRNS�@æØf���bIDATxÚÝÐ1�!QÔ]G½ÿ7Û¥ÉR™¼)@»1x­$œÁðâ™ œbu,.¦ ’M™q±÷óBzo»�íï R¾o)å~‹v£Ý'sû‰‰û¿Þ›}Xý‰àW����IEND®B`‚IMAGE 182 ./arch/weapon/hammer/hammer_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaÁq8G$ R-���@@@d31/ ���tRNS�@æØf���LIDATxÚíÓAÀ �ÁVÝúÿ‹á¤=;W6AM|²î¼öVø°;æï*ðÅÁÎÜ�½s½¦( ¦ð¡np &7(‚ðó¦ 9KüàÓt—����IEND®B`‚IMAGE 213 ./arch/weapon/hammer/hammer_2.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8G$!!! R-���@@@d3‚B'ÍÅY>���tRNS�@æØf���bIDATxÚÝÐ1�!QÔ]G½ÿ7Û¥ÉR™¼)@»1x­$œÁðâ™ œbu,.¦ ’M™q±÷óBzo»�íï R¾o)å~‹v£Ý'sû‰‰û¿Þ›}Xý‰àW����IEND®B`‚IMAGE 191 ./arch/weapon/hammer/hammer_2.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaÁq8G$ R-���@@@d31/ ���tRNS�@æØf���UIDATxÚå’A €0 Muõÿ?nš9ÆÖC±ÎeH²ý5†s3›t.tGUÑž@ðD¸2!x ™<J‚ž½#i!=Öü¸Ðxç¡€«¨òúE?@”s����IEND®B`‚IMAGE 202 ./arch/weapon/hammer/hammer_2.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8G$ R-���d3‚B'þÅ,V���tRNS�@æØf���]IDATxÚíÓ1€ DQŒøáþ'v&¦Ý; Óþ7“Pо2€ïst,¸‚óZ€D‘Ý âBŒê¨K«ˆ·È^³Ùû¢Ïè òR‚ÜÙ@Ý'Euÿ‹¼h¯æáË"€F����IEND®B`‚IMAGE 167 ./arch/weapon/hammer/hammer_2.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaÁq8G$ R-���@@@d31/ ���tRNS�@æØf���=IDAT(Ïc` °†  —¨Ž $ZŠ P�—„�Q\¬©hf° —¨ à@·%n}ˆ!Û,UW����IEND®B`‚IMAGE 203 ./arch/weapon/hammer/hammer_2.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8G$ R-���d3‚B'þÅ,V���tRNS�@æØf���^IDATxÚåÓ1 €@ DQú³÷?±0¤Í¬Üö¿bXȱõ|¿s1ô‡¡_ü­ÃÐ#ºDÓ ý>Jd·Ÿ³Du#Ôpÿ3ry¡}­@;v)!`D0ߊ.ðâ²(áÃ`����IEND®B`‚IMAGE 185 ./arch/weapon/hammer/hammer_2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaÁq8G$ R-���@@@d31/ ���tRNS�@æØf���OIDATxÚÕÒK � @Áüåýo¥;#ØÛ:íŸdvœÀ ^�Ø’›|Nd€Bb@u9`^€cí I¶dúÍZ`öð üdn�¸£R8í ����IEND®B`‚IMAGE 212 ./arch/weapon/hammer/hammer_2.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8G$!!! R-���@@@d3‚B'ÍÅY>���tRNS�@æØf���aIDATxÚåÐ1À QÑÄUïàÌ&•@gŠ}ÅËéI¯•¤»°Î¾¯y½}8 /ëh_÷‘õw]ºïhoÝ•qûÝ Ý Ð»ÁÒÿ J"`¿è=†qÖUÇB����IEND®B`‚IMAGE 177 ./arch/flesh/human/hand.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���µ½÷ÿÆÎef"/���tRNSÿ�å·0J���UIDATxÚåÓA �1Ávþÿè²aÔì=^»$„¸ÌÛ€ �ˆ@  ß€Þ…ðu•�){öÐoHQ”sžéœݭ¯Ð=7Ví Þý Z +¢ó����IEND®B`‚IMAGE 218 ./arch/weapon/bow/handcrossbow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!�_&p.!‚6'MMMua/dddvtsЉ‰���νÎ\���tRNS�@æØf���jIDATxÚÝ̱€0CÑk[þÿ‡‡¡‹ÐÁI³¾ øêæœucÔð2W]ùMoÛûÖ­þß%ªNëÍ- Íõ#í�ݺDœ ‘u ÔC–wœ¶Äê@>‚»¯†b”` 4l~· 4ðÁ5‚X����IEND®B`‚IMAGE 218 ./arch/weapon/bow/handcrossbow_bone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�1�MMMua/dddvtsЉ‰¼¼¼ÅÅÅÍÍÍ���¸KØÔ���tRNS�@æØf���jIDATxÚÝ̱€0CÑTÚ ÿÿÃÆÓ¡‹ÐÁI³¾ øêÆuî½×ˆ2W]ùMoÛûf^ÿ7‰ªÓ­…ç�¤‡~¤`¸Iä È)²$bõ)NÏ; _bõ @>‚»¯Žb”` 4l~· á ú,ã-����IEND®B`‚IMAGE 214 ./arch/connect/handle.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���@@@¿¿¿”Sâ ���tRNS�@æØf���iIDATxÚíÍA„@DQ‹ºïbv‚q;™ø·¯Ç×ÄýâóÀ³ò=©DOïLáÊ0úJ͞ݪñ©\Á¶ßÝ,œBÏ`mà±àE™c¬ÒÊû‹ULUEÔu.}„“Ðæ‘ß:þ«ù6ʨ����IEND®B`‚IMAGE 223 ./arch/connect/handle.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���@@@¿¿¿”Sâ ���tRNS�@æØf���rIDATxÚíÏ1Ã0 CÑP´(ßÿÄU- C¬ K¦ oÕ7¯{qÎ?ç]Z®&$Y‚©Ÿ±@ýDü4È ¼t z²/ø>áî4jo² $,BD]‹¶À£Îc mA=7‚À¸’t¿<9žåúA…QãôF����IEND®B`‚IMAGE 218 ./arch/flesh/human/hands.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���µ!!½÷ÎÿÆÎþ:\å���tRNSÿÿ�×Ê A���zIDATxÚÍÓA À DÑ_sÿ;âˆièÖlJýu#ãg®h:�1§Ê=Pv78:î Ÿ€ 8�HJž ’¿¨ÏUè€V‰´`îe ÀÞÃ`¿Ù°PñKˆ-q�ºAéÂpfôÀ¹œ+�®}Yý¼·fœšêËÍ����IEND®B`‚IMAGE 186 ./arch/misc/hangingfirepot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�ÿ��SSS€€€ÿ×�ÿÿ�ÿÿÿDDD©ïPt���tRNS�@æØf���PIDATxÚíŒ9€0 Ä|¬ðÿL ·aRG­4²Ž°²‰ˆzƒ3Øðg `öŸÆ/zÜË[ŸKkä…£6H ¤´¾�W¦ ÅÂF–?lq1Ó»ýJ����IEND®B`‚IMAGE 185 ./arch/misc/hangingfirepot.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ��SSS€€€ÿ×�ÿÿ�DDDޏò@���tRNS�@æØf���RIDATxÚíŒ1À0 „|6—ÿ?¹Mw[Uæ°‚ˆŽŒ™ë îàlà?Ò³Ÿ @Òö¸ÀF­72 îP6Ñ%S}a»*úb#¯¿ñ�Î'–ÞkÅ����IEND®B`‚IMAGE 184 ./arch/misc/hangingfirepot.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ��SSS€€€ÿ×�ÿÿ�DDDޏò@���tRNS�@æØf���QIDATxÚíŒ9À0ÄX³âÿOÎÑC2®­VEÇŠŠ‰µê Î`oÀŸ³ÿh` Š6H%÷VwHd0nƒ´…œ}!)3úâ!FnØâßœzsv����IEND®B`‚IMAGE 195 ./arch/misc/hangingfirepot.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�ÿ��SSS€€€ÿ×�ÿÿ�ÿÿÿDDD©ïPt���tRNS�@æØf���YIDATxÚíŽAÀ ÃMÖÿÿx{¦‰3¾ÉVÄHÌÑëd?{wàl@8•=ì?@£Fü@©c°<È“±‚z@Gb jy°üÎPraÆ'ö—#^qÙ ¹è ����IEND®B`‚IMAGE 283 ./arch/weapon/artifact/harakiri.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE÷µ÷���ÿÿÿ½ÞÿïïïÆÆÆÎÎν½½ççç÷÷÷ÞÞÞ¥¥¥­­­„„„ŒŒŒ”””kµÿÖÖÖžŠ+���tRNS�@æØf���“IDATx^ÕÒ»Ã0…a~°síõý_¶¨S!2õÈÃwXå¿ûxçÄG®x?õž;»÷ºÀû9„/ëBq aZ§Ì5ÊtË]pܼÛJs‡((sŸQ7OøànüìJëá ùýv¤­¡£ð¸š)•o·P€Ê£Xß õ>,|G•Ú¯çV½¶fMŸé����IEND®B`‚IMAGE 2449 ./arch/indoor/harpsichord1.x11 ‰PNG  ��� IHDR���@���@���·ì��âPLTE~ ��"$!-.,Š1 klj‡ˆ…¸¹¶Ý×Öêäãÿúøq"897&(%u&t&q)q)=><z*AB@|,* ‚+FGE LMK7%˜7#œ:&[\Zcdb_tvsy{x\‹Š’”‘šœ™§©¦«­ª120ØÒÑj#k$ðëéøóño!~€}0"q#‘1$Œ3'z$!z@7œ3#™7—6(h–;#¡7!z$™= £8( >^ ¥A&`a_jew(V˜rnôç烀tz+"­€y^·Š„–˜•ƒ+Ÿ¡ž£¥¢·¢žO À²®~.θµÖµ°ÂÄÀÄÆÃãÌÉx1"äÖÕêÝÞ1çéæRìîëóõò^’1ýÿü‡( LC ¾Ÿ˜. ’A'°=(¬@#ßáÞ‰urw"©m_6 `¡}yPRO‡)ƒ>4‘Ž«Ž5*353•;)¿‘‰¼”Š0m1 ; O b^½ Ÿ°²¯Ê«¥B.6¼¾»©8%¯5%¦<%PÜúÖÈÄÎÐÌåËÂÞÎɇ5 ©?'ÖØÕѱ«£dXãÞÜ’ZRŠNBãåâC €TQdSgifïñîg'”[NŽ6TVSYWOI¿sÐÀ»œc[°[R¯ŽˆÒÔÑS ÈÊDz‹¹Š|äĽ¢SCV ìÜ׬yr©`QP":ëÔÑÚÜÙɓЕ+!Ƙ‰¾A«i^—P>h4+Ï —‹2Á«¨:%³µ²Óª ŽN:ºaNÚÄÀV20Ž@3> ³1"IKHÈ™‘©dC³ZB¶ž–±lV‡.]T¨rb”VI­4+|%©{ne'"²{kt$ ¨=Inpmz*ʲ«¼„}*,)l1$S[ WH1yÜ���tRNS�@æØf��]IDATx^Õ—S°-Û…÷lkѶmÛ¶mëØ¶m׶ضýžµNêVR©ôÙ½r*ïãë1þšÿìî„ÿ‘P}$wLdöXäèmÞPÜLô6ÅA3kÖ¬?WÙõ‡—3§è¸m¨&ÜÍô¾ótr²r¼{Õ3†PÀ| ÌÙ´)_‡ü:ã<m/lG�ùTÊA½>§È³+gªžŒ�9LÀú±â Kþh6†Í1 .¿½ l~5W1‰½ûþ7Ò¸v¼×òÇx�š`dÝ–Ì»Gޤc*lk¥#žÚg¾*®_åÆ=’?Ž)•/Sq��ñb½ÅÏ'ý4_?Y”¿I‡uðÎà8êÎ×I ¨Ìœ7ÌËÔ†©x²ó=ÅqD¸¨§4àíŸ æ¶dÎæ4–I„ºÜœ—  îÇökã…¹³G3êÏîÚþ;q(wj¤3�Xêk ôÞK †íÙógïþ*ä/©îe8o%àw~Ø Ú‚y óùÙ9ÙªÄÒ1›dÝVpÎp%ÒŸ žÿA^žav­níŽUæÂÒëÂ;ÔMÎ+1´b¯ß¹›§Sæ*rC¶òÂRŸPØÜÀ™0³¢¨Ow”‰BYb‰Ïf敉…2Y§×Ä•pú€ £Ze.·ù$/wPÑ]šqqͰøõ@î)µ•——Jd¡RqŠP©ìPô1Aާ®x–qéªë>‘0d–ø“Ó3D¾|š@¸EØ{É<~aY.¯:+$u ê‹ †÷n¼ËJ§‰B<YÙm±lP——QP”§ß”þúˆ[ƒr`\IûT\¯Éd2±'Sa¦ËÔŸ™Åt[+™›ÐŠmŠ«­ÀÔ÷Il’åxF#†%G•tW÷Ø—˜C=XÐy™©QaáãÏÕý,cW’J©TNîúÊ;Ç'zyÌ?ýmûI +`QDA€ºc~ãØ1[‰*£`\)ò­«=_ù¬C«Q;ßJ2/Õ¿µ†@_ˆ­ô¶>³OQžÉÖ¶boÿP³ Q nºGú÷>U“›[ï`ï°í ;Ðö&×Ì©æ ¶š ­ž˜¹Íè¤*÷¿¶.+âU—\ò²ŽÏ 4Ì–-ß}ñxð$¡1©‰Á®ÚˉÕÂåÕ"Ñí:¿0ÊÞáÀiôœª<×`ÔÄÌ›£¥Ol¼6=2¡¢OXSS#ĺL¬€+?ž)F\3Ã&×Ð@ýž_ØnŒÝ¾î÷…„2E__DgHO¢EÙWÚ3kÖ8¨ÊO+>Úe¶Ù £¿/ºBU2–”iHŸbôÿBA¸'عìk;[Í;ü%¥åÇvßøkßÏKª"ãÙúä>~+�³wøðÉÍ€ÜøøÊ;wŽ•mW¥øëžÛ}cì~ÉŽPJb£êé÷NMt‡¥€}/†~]i¼å••+߬ûáøá$E¢ß\Þ:<<lÎJ«í œ´k§�èô·`¶û/¹çâý7Wþ…÷nÒÚ•"±n¸õ¯ìi ›Š¡æ¶T¶{Ø�”„€þèÏWëR&gS–w”‰}×6zƒŸãˆI Ôa¤SNâ¬C¸Ü)M¿¹:œ˜‹ï¼ðähwX‹FÍ|~XÛ2Žö&„ °z5Û¯¶¶®J«ý}€rüãDFÔÎb‚À8³HÓnK›ÚÓH�ßøÑ÷û‡\Å©_”6j FfŸÜÛ2:zˆX#÷<än>æ…À³£ŸÿÖóEi©4,g¼¥f˜ ×QìA>‰³èk-÷€àAi� Ü.€‚€aÜ åÂùjiU'–Y›vÂÆ +õÇrC^d §iš kµZ“ÕÒPÌrÞbȇÝÍí&Aª ÆÓ-ïaÞfºíF×2¤ü„šÞÇ\lÆùÈC�4-E µÛèdÜãuš-ÿùè &蘈&Q#ÈoéªTdu´œ¡]©qAhmð$ÓMH–’†ÕÔ-²JX54Qˆ×12ám0=x2�K´0Œ=‚õTt$ã¤nÑÍé7G� Ái»Ñ9±ÌÕCÈ*í¿”F9ø`ZfÇ÷¹&˜»ñß&Æí‹ BÖ‚Þ&ÜóŸæÍ�#.‹\�±à9%@ öa±‹CYîBÑG<òÏsÂÿ‹þ _‹‡X÷����IEND®B`‚IMAGE 2564 ./arch/indoor/harpsichord2.x11 ‰PNG  ��� IHDR���@���@���·ì��ëPLTErQ$n7w8p8s:h7q4c3t6l:f6f1q>u=}=;Q*\.h2x4Y0k5^/}8z;^4{A…=€@ƒB„C‡EŽP$˜V# ^%µi#´z4óõòþÿüd9 ²l$q4–—”ëíêŠBK*ƒL$„M’H‘NšN{A!•UšTV ¢Tx>™^(J$žb%ª`­]molg'žg/¨e*«l!¦n(n2«m)‚F­o1¬r$µs!½p$¶v9U,††‚Áy0¼*À}2¼€2¸‚3LJ6Å=IHEÌ9¨ª¦··³Ï²Ö½ŸÄÄÀæÓÈØÚ×ããßòéâ„HŽDúûøƒH!nA¤aX(µn§cŠ<z|y¦r8¦s@­t.•Z…`2µt)³x*“_”`)�¿{)ªMyF“d)žb9¹„,¹ˆJ¸‡VyFÆ/SÇŽ7Á>©’w…O+Ä‘8Ž?Â’]Ë“JÄ›x§cƤyΤ{r?T(˵Ÿ¤fÓÁ©ßƪâÒÀ¤h#¤g*íâÕ˜VX!úñê-/,I)³j*xY4©_ŽO/ ¦^@B?»ŒGŸnWÊ‹/A-¨q1rOˆE™H‡P vi±‘pxM[]ZŸœÃ›LÓšH‰^)À£ƒ‰]1—h3d[P§xN…^H±|,p]¥z`pBÉËÈrI!˜o7Â{"šo2²Eïáε=·gO1iJ%¶i}Z*®ƒoPROœxP<2$gC ¨z/¹aƒd=ŸMx[9œPÅ™E¡~P}K Á™j hN–l³xR‰g7½dS7ͧw®°­Î®‚‡\ ®]®CN>0‘q`z[Ke>h8äй’bIaPB? ‡IYF.h7ŽDµ‹Vd;+–ub¢b:z::džž���tRNS�@æØf��ÇIDATx^Õ—S°%M…ÏÎ̲Žm^Û¶mû¶mÛ¶û·mÛÛ¶ý8uça"&bêïs»cf½¯¯r¯ØˆÒý”^Xxóæk®_Ø´èæÌÇÓó>jjzëÜåâE¯ÍÛüëã9³GVø‰@ùÛÖÎÏý…gÝ•ŸW’“.R4Š­ënüÓü�ÅGf'œ�”�‰,‹LžS G~5ÀÌŠ¶6a0Íq€‹Yi"k^O¸,Vwì�#¦éÄD (@Þ‰¬‰ù�ví(ì©Àˆ®á +§Ïnº ÆïÿpÓ´ÿÐ{@™[ôzÞ¨pÉ`Μ]õ`ü„M ÝvèõzÞaޱöJNû¦øo€PyÝi¤ƒÞ`àì² p.Ì‹Û_ÄÙyf½µÆ&‘ŠÅ(žÃUëÛãü+ÏOo§16Rf³Ùáày޲LWtÆBŠÏD—†DƒÞ<'†ãD�lôw½ýL|þ,rWÉŽÔkú½úy‚ìˆHž:Ô'€�eÞ˜з8x°$I²G‘ãÃÇ">Æ5&PÀ$Ûã¶K`„¡Eߌ¯+/@e‚ÙeÙ)b P ÆêKñå¾_gŒ/qR°1h#`±�ù¼>U^/B¥¥ùñþ†”̶JŽç [5«r»dw¿.ãù3q@t†Ú€8Uo×ëôȲ×óФú”ÜPN\€})×›r¦}¾I¯Û){•º:õÓÙ@Á‘ü¸zúÞŒŒÊU³jnr¶SõzY–€ã$=”÷þÆ8�¯ºÝ¹ë«&'ÕW{MGqH. ˆ°83Ô´"ŽýäËøÚªE)2ËP §ø²%N�¡²nO¨ï~ð'Ÿ øûW. å§È´��HF„HÀÓ§ª &t¼Üµÿ‹{žÞvOÖ||÷áŒÜPPÊγa$ãh1›SSõ1¨ó]nX½ÿ¶C=[Ë5�Ÿ¸½™• "©Í(p@©»in< |¢‰¥})ÓûxX›¶§O3³ôû5|�,Gñ|,ƉŠI°šÚæ+ElWõî5�¿E(Pš)‰Ã@�Àv—  f‡¡&Ñh5`Z¼x±üú?´ºYÄþŽz ,`V*@)‹åH5P ðf½ÞÌXX›Ín³L?}V œ§‹‘IVŠ“d/ZRõ-‚…¦m ª©1 îÒLÒŸì’YÊá0"×dŠÌ0fƒƒ1²ÈD'ÒFÁˆ±ýR§V÷"[n( ˜<q+n¯u?G³´ÔOó Á‚Ö§«ˆN먧@F²ÈI`ÍÝJ‹``V‘ !(¾o§V 1ÑÙÜHLH9Ž8í°ª@�cŒ�V•³GsÕþÀ¥$4¥[h@ê0ª5��)^dm.7"ˆEˆõŸïÚ¹uµÖªý6XëJ'x 0� jåTÝ£x �a}…áÝ»{^®n¨Ö‡Gõ× OÔÛ¤^'†¢(¢xX[�@\PÝs_ûêåUáðÏnÓ\Îîìó*6»ìr)¬Q`(†O+÷u/_ÞnÞþã?ß=pô«Z!Ø\×Û³æÖfbY ÃÆ}åáÝ[Ãáêúð{+÷¾Ð?UÖš4pz¥V'Øí™UÅ„5Z‡U¸7öԞΪsµUµµ/½ÒÚZvGYtllüäc:-aœÞ×îPGØ{¤¼kÿžð¹¬Í—þ¼ìs¯$=èMŠ\9ü| ø†&€ã™ÎõœcÇÚÕ÷u67×7T-}noodøêXo4¹8xxéãŸü|àèmÚJ¨©è^õV{u}yuqeùág??v!y]$Ú¹xæXóö/ïU#h]2ô=MÀ/4Tm^³ù|ñ‹Œ¬‹L]-K‹üfðàÁo|§µL-døÉäÈYm€Î"ž+>Õðö³÷F¯ß=Œ lÞ°÷5‚áÞäÈøÐ·¶½©ÓÖ_Sçïèí"):0¹8ô—Ú /½ûúÕ± ÑHRôÊ™£K×ìš @[¿|-0{ç’¤'Ç’ÇÏ{àÛN__7ý4òúÔÈàöŠ~¹H÷Ùz´àRpÙØ•³Ç–þðþq5‚«£IÉQÕ\|ùcÝÁpMw#Ö„*¶7?wò]5‚M%&Ÿ>úNEÚ‡ÿ2¨'憀µþÇ~7Á’þáä+g/+\ùï –šjØrCÀÌ¥–ÜQ6ÐUãߨõ=Wd$'âø÷x$)922tpù‚ÿ²6Št7Vaðä— þÝÍêøÄŒˆÀ¡»™Ø·�AK�«Õ¬»%miI,ÒýŸèŸ¬o‹óºÊð^����IEND®B`‚IMAGE 2618 ./arch/indoor/harpsichord3.x11 ‰PNG  ��� IHDR���@���@���·ì��ñPLTEfx! (|+–:Ëu#õ÷ôs* ' j$p!ˆ/„2‘/35œ2—5Y : <ž@ª>§Bµ?¡N•U¤X°S°_®d%´h"±k#½i¯n+Àl½p"Án#Àq¿w(u% Æw*Èx#Å{#Æ}.΄6ˇ6q(ýÿûŸ^%¨<”IœEW ¨B…%­@›I��¤KŽWdšQ´F- „+ƒ-«V¡Z"©Z~2a&£`±[molŒ,±b®cb!·eÂae½e“+·jÉca!~<¹r"MLIÇlÌjq" Åp°{4Š<¼v6Ét*R™6‡‡ƒ^ˆB½2ZÁ€-½=µ†PÍ‚+Ñ€+ˆ,¤9n, ¿‹DÉ‹=ÅŽ;•—”Í2ÍŽ9ɘCÁ—_Ê•XÍ–OЗEÈšSÍ™g¨ª¦ÞÀÈÉÅØÚ×áãàëíê¬87 ëÒµíßÍûóíï•z|y»E•i5½9„HÍz’B•TfR3Â%Ÿo3= ņ*-/,œ1AC@Ð…%V¥r. SÆŠF{# D¿ŽQ“9 šyP¦v@?’<É—LŸœ’M§]´t)ÚYx4ÉšZx'Ëj&Ô¦r®°­¼tÏ­Ô¯v̲Œµ·´Ü±ŽÁÁ¼[]Z¢{FJo;å×Ä¢f!ˆSóéÜõìå¶^¯|@¨dg'Ãi4 �°ƒD”zVI Z �Õ¯~вÁ;VÍHÝ»¹—sÞ½ŠËE‹MÝȬ¾T»]ŽêÙ½cXHP>)¡ŽvÒu­e†jG²¥“Ç¢r­œkbVZP@cM8F4”ˆe^3.ÓÏÁáеŒC xM ƒymÆ„$:2(˜b*]F* €tc="‰ºfB���tRNS�@æØf��÷IDATx^Õ•C°&[„oñ·mÛ×¶mÛ¶mµmÛ¶ùlÛC«©^ÍfêuÝž˜˜˜\W~‘••ç”×Iy%ÎÿÀ½U•—·ëÍŸä•*‚âJK‘ö0³7)³±hŒºÇ–žžºÛ‘’L…RórIy’„ÏÚûWpVëJÊ ™ò9˜Çê ¬Õ¬·u¬Èo²ˆ! Å<žw„( ikk[ Àn5´á?±y<¡·(лS )²¯  ·n³ÅÑ9Î܇«ÅüZ6üâXI ½µ£ÃÉÌÙ®3˜ ^œÑ4°@5²«y „µŒÀµk…ÃWf]A‚¤òö6«Ä_,äðÅkç8C°~”ø;ߕ˛Ú’Øb±7£ð`ÀÌè'>è(D–QGö1¶XȱEŒ’¨íÄÁ:¾q´ßV òÂÕB&“ùÊíí$è–räΓ?"BXÛ¹Ú›I¢³2ÄJðË ‹Ã!ˆ‹`¾X|à<@öï=¥ûšh‹¿RÀúžQ•èñj!_È6›)”2òE^^)ABê!Y÷¨:Dà/d3:S�J~>…ÑeK‚rÄt6Êkù¼�p³²¨Ô¨(ŸwŒºl‚ùæÁmq‘Ñ �ÄC.*$Ó¡(ZPš"û1@Æ!Mcc®‹šÅ­§B$M£Ñ øßf—^ F(gd˜N+â)YMMf\$:™•3ϧf\()!t©©´Ò­f…â1�à:³…<få©´\bkhè’¾Ú�Ed R!ˆÎŠEÂ@_™Þ9@ä\Ö%<ˆ…"26CÌóýý¼Î9Q¶êø¶þÁç®z]Vá–ÒÊ„ÌfƒÃáqDB^'› ‡dè›Óe{‡ÓfE4¹8€Ð³ñÚ¿x’Xtº+¿‹ÆØáÏ`p`N'8$ˆÉµY F‹Óa±XUqx$…E/ÅèP>…ÛFîô®eÑh,ZJàjyŒÆ¨É¼€ Ž6›>Íð°žœ­Uª*]~\n:ÀäûïH]ñ’b·ëÌO3«KÊÇ„ÄdãN3C£­R‡Ó©.‹ó;kCâ.·;-ÇGìÆlÝ×H’äà«·Tã’äE-%‹uŒ%ùJ›zz‡Æºµ*DçK3SA ¬,þi¿`(ª8+…HÒôz½ªjd¬{°»Ù”´¡Ò F‚�¹($PÑ‹;ŠË‚4­V­P©ïßW,-#½»R}ΦS2™M§AtZNêÄh|%Ê„„ûêðìe•Þ–WIÉ÷£¸ºÊ *HÇÄÂþ|âuïq<‚ÌWõà4!\ꑞ,<›Î­¯ÏÊÏO¯O§šI ¦À0_ÈžãgôãþqþŠß…J=…wýŽÎsÃÌØÅ˜ßÄåú¥“Ì�Å„Ù"6,ð ßØÛ‹»æcqáÒ“gïÌÏ¿r4?2š¹¿,=½¦)ì2³y?È` OLTïØl3â�6n’Æz ¹G_™Ëα£ÍÔ°¬šš7¸Øé¬ —)UUUÍ[‘ÃÑÁ'>Ü[ÿú|ýþìœ�F´9½éÎë»] ²§EE:+Ò¼¹yäÝáÛ“cx�©YéQª²îÜ©Èac·+*s6(=Ýo4™ =½g®N~qsçõ÷ð�ÊȽ•akÍÝ�™A•>á§Ô§+*´ ¡Òî}Ý㇗oM¸“ë>›XÀ‹ÚРԪ}ŽÖÔ„‘>’%¬óì©ØÓûê‘'­ïü‡ººU}ÉèôÌÒ"n/)×äLõëºë›XõöÓÐu¡{^mºöÕßûn¡—vN÷¡K‹“Ç/záJ³[ÙØ›¸ñ©©Ùf·Ú‹*¶¬¹ýÚwÅî©íÓÅn}øùÖ5Ë?Å*ÀUbWaÕv –jSËØ™7—ÿ<S°Œº/aæÉÞúÅwX«V- ã [Þu´9o¼²é!æ,˜Iž™Yú|òêÅo¾ªK>q ½yb½ç…¯Ø„3#ç†['¿œF·OíœrO£‹“W†¾ùá'îë;§Šg¯£Þú@jÆñ±M7‹'n@/McO¿7þý·§¶Ï¸Q¬Á{“ôúQi÷ÿuÕg'¦g-L^}ëµß Á(ZŒN¹>8÷í—¿÷zž´ÃÃïO/ýzùûÃ×~þ-˜Þ>Õ7‹.~|eìYîàààçZGÎÞ´ü«à:Ú÷ì5n´y‚öܾöV{Õ͹ã호߫e« ùÒê~Vÿ¿# ðªZS7‹5xíê“óµˆ�¶´Þ»1~d“× kÏ“ñŸý '+Qá·EÜü¿ € ü¿èŸLÒÞ8Þ����IEND®B`‚IMAGE 2279 ./arch/indoor/harpsichord4.x11 ‰PNG  ��� IHDR���@���@���·ì�� PLTEEGDæãèæèååàÞáäàãåáÙÞáàÝáçéæèêçäæãßáÞâàäÞàÝéëèêìéÐËÉÖÛݵ²¶Ýßܽ·¶ñóðûýúÃÀÄþÿü¬ª®ÊÈ̶¬²©¢®®¬°®§³¸®´¹¶»¿µ»¼º¾iYlÄÂÆÇÄɰ¦¬ÎÌÐÐÎÒÔÑÖÕÓ×ÙÛ×ÞÙ×{nz€w}‰zŠ|‰†‹‘ˆˆ““‰–“˜‘œ“˜¢‘™ –œ£™Ÿ£œ¨ëîêíïëîðíïñî§£õ÷ô÷ùöøú÷ùûøúüù¨Ÿ¥© ¦»¸½‚u‚šœ™vl~Ú×ÜÉÆËÓÕÒviu|vhS\m`lpfw¥›¡kmjAC@®¤ªóõò[HVÆÃÈ~€_M[ž”šˆŠ‡˜ˆeR`zjr™–”†“–†Ž¼²¸×ÕÙÛÖÔJKIÌÊΔ‹‘ÜÙÞÝÚß+,*˜Ž ‡h\hmZho\j�Ÿ•›„w„N8L»½ºufmxdrÖÑÏQ<P€pxR@N}muÓÐÕxywòôñ„zŒ†x…‘“¸µº_a^¯±®¦š›si{×ÙÖ‘Š•qsp~q}r~gifpcp—¢pbzTVS š¥ËÍʰ®²Z\YgUb¿½Á¾¼À130ÈÊǘ‹˜Œ~‹YI\STR¥§¤jliƒ„‚T<KŽØÖÚcP^ÒÏÔ¡£ zdm•ˆ•iVdŒ|„Ž|hv±³¯molL:Gtaorcj•šÜÞÛ;=:eQjÕ×ÔeOc}gpsur}p|„t{À¾ÂPROššÂÄÁL=O€ÆÈÅ—œreqlYgª¬©²¨®³©¯•—”‘ƒÓÎÍQASÐÒÏ›” z|y]HQ³±µj]jÖÔØ³µ²‡y†aO\¶¸µUCPƒÖ;0���tRNS�@æØf��õIDATx^Õ—ã¯4kÅ{íÇÅ&ŽmÛÖkÛ¶m]Û¶=¶mÛó¯Ìé7“›L&uo÷{2æ—T}[«ö^Ù*ô?"æºsQÇ”R·jàÆ\W©T©ºqF«jòÞ:±âêј{+ê=Eí_úäËEÔÿLåZ‚£–t}ñÍídžAC? ¿[ œÛ¯”1ãùð<è:Ö—[ŽNg%{¸œ˜ïßgõy·«X.bgŸ»v@ûÌ|ãyÌYÙS µ—–‹ÿ!Ðh2Æ,<ÊÅ`É¦Š˜{,O�ð€ÞWZsi¢|US9ûNÔÀxþÐ0}ÍSës0ˆuŒön•…/›Ah2ÚÓd˜)œC Å÷>¿œ…OjÏÓ0†�Ó´¼?{ƒ½gq©^®Øo�f0šÊæ_PÙ®Jé®(?_ÍT{ƒ¾Ï÷ Á¢È®eÛ„ëÞÿÒt«ÚÝifña´a'ÞŒªl×RéÊÊg垥7ÇèfD‚jûO»n–É®4<æÇ—øÐÐäbŽ•¿¬,ëey)Ú:À J<xÆh¤Ö v¤íbÖ»[[Q³Jµ‘†°ˆH3‹ ˆO)Ë6Èm{×KY! ¸i"Mäì/|ìÝ,c8»ÿÏqÖ$8`YK€ EVœW*–•ÁèK}ràûÂr4B�£™YÔ2³?»&–ErS+ú°Ïø>3yí¿Ìn"ßQï4²m qæÑðা§d‘›ÅYs2þ<9¿ØÒ°44̆à{Z—íÜXrM)W¹3]Y<ÐkOŸ!Ò¤áÁó2SIð°hfû§®öru“àHÛÏg?þ;ABÒ€ÿ—xï77Þçʶâ=—ï œÍÇeE{ô)� DÚ3†ÐPÚÕúÖÌw÷r)íç6oÿãåÑÛï £¢rÇ<9P¢iCÐÚÙPØñ‰ÕOIÛ•ùíË?Ø­Ý<škËVñT‘&ø×Jwœßüôb%Áë v}°½w÷× `ÄÃ'‚ –F²ÈBèºÝ››º‹+c’¹±Ôé–«ójAš ­µgS80„W¿kïhZÖWz‘Û«ªîní­"F³hd^dXÛL`߈þþniA˜I.k ú¿ÜYw` ‹„–y ÐÚxk›ƒ{è,ýµ”2ÖPÞ¿ta÷¼·ˆA� Y­žÅÔ}ÄñxãÎ vÞv¼(̳q!ÄìÒšˆ<�e»Ž] ákµUö“BJÇ!@`$„°�¢Ê¾Ëÿ|tk\Úëbé…Õ*Z Ƹcù>H"æ�@ÍtÓÙå-OG\.mæ8¡�6§Zdø~áHiCšœL ¥-ÛÖ?4š/íF¦“AM¼¢Qž©#ÆIƒ�hÔ·öÀc)ɸÍI1òúo¾Gà¦n‹»?‰ GÂÖK¢ýG ‹70׿R9Œç½øÈûÉÕGï¸{]P ÷V4Æw@0q±¤¿cç“åÛv¥bŒÿ.±åèô¬NJšC(ˆåߦ®µ© «šNv”Ô1É2]~`Á3ÉÏ­©_0–(H…ZVëîjëË«’¶t¥2RôƒW“ù‡íKNß�¢{î:çl*ë.‘ïJesÅ;8ܰ/ö™§¦Òy“ àÐûÿH¯ÞÒü‡„vè,XÅ]×¶™Àõu§É#ÍPSëF€y¯}úž»ÒÏMO¬ ³þ³™Œ{¯~%ùB嚪ä}“c#Z;÷­ttMå>ÜD(˜ß^©q®‡÷=³ mœ˜HøNäŽñz0=Õ•œš„v(ô‘ü°[8\ÿÕÌA<£ºÄ{7NM&¿7R3ûi-IŠÐÇq¼FM £Æ"‘~/r¸®鉄G™ùw™üXƒç!-Xyöä ÖDÓ÷,þ­³Y,‹‹û¹úÏ=± ÙüZ¾˜H k‡(p•ŽþÆ–ÕÑŸ§“³ñ;ÿÙ²›ÕeÃúÓÑáÄøˆ'€ÿ¶WYpºÀ Ý2Ž„Ãy,4'sçøç*ÕÜ l;47 ý¿ð/rTŸúv[����IEND®B`‚IMAGE 218 ./arch/flesh/human/head.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷Î��ÿ¥R)µ!!���Ök÷çŒÿ��Íyü¸���tRNS�@æØf���pIDATxÚÝ‘IÀ dùÿ‹+sù·Ó㌤Úñ—^OPí»‰H&Sžû#7 ÜÅ„;\·0"’êÆ¹ø$ú‘Á`âˆõva­Å ¨w ^œ€—Åyg™‚ Ä…×ÔÖUÖâö=¡š@¬Ë����IEND®B`‚IMAGE 306 ./arch/spell/Healing/healing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V�ŠŠ-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�³†ÉŸ���tRNS�@æØf���¹IDATxÚÍ’Ñ„ D‹& êÿ¿wÁ“˜‹¶¯{ŸPÆ™8´TD¤#àŒ‚&(‡§�~jÏ¥ËñËP7D©_©ÕpÎb<Ä‹™�Rf†µçé€ÁûÐAûS:_kt°)éª ÌY’÷³ v�½Â‚™Ý7(_ïi£D·&Q¿A!GQ0 ÝBUz:­Ÿë¹9x˜¦ðh•^‚™²#‚Dj0†¼9dßÕŒð;Æð"Àocù3>ŸX µç7����IEND®B`‚IMAGE 281 ./arch/spell/Healing/healing.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV��c2Í…?�1�cDÙ¤���þÖ�ÿÿ�‡ Èj���tRNS�@æØf��� IDATxÚÍ“Á +Óýÿï5ô ‰´ëÉÄ9²“——n?@Í1?D—\¦0XÐé& SN:œ·}wøÎ`õ:— „Vïg J‹g¥•GôÂÙœºÇÑ£ƒêÒ°ö(5ÖM ´rßÚ0zi‹!R"b>—tÀhÁæàlÍZz®ïjA³ç6ë%Bj�˜ÏMQÈ¿œ?ãX`Ý�X4����IEND®B`‚IMAGE 230 ./arch/spell/Healing/healing.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2Í…?�1�Ù¤���ÿÿ�‹Ò!È���tRNS�@æØf���vIDATxÚÕÑ11ÑØ³ ãû_8Å6fM½4FòÓ—€ÏKKÕ#�:P%ˆ[W… ܹò”À�xÁÂU…$|Õ8WÄ �Ë|®¹VŒì-�ò‹5@ašEÌ|·„{IlÙœÚ è"@lÀö»ÏûÂú1DbÌ—3H����IEND®B`‚IMAGE 209 ./arch/spell/Healing/healing.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��Í…?�1�cDÙ¤���(G\‡���tRNS�@æØf���dIDATx^ÍÌÁ ADÑ&ø²t¦ 6†¾TØ·gÐ|¥¿Î) 7À’£C¢Ã U+„È…ËnT'TÛ ÞÇ£âÃóÓOƒØwBKƒ×‘+ܘۢR›Lý´/»÷ªËé����IEND®B`‚IMAGE 158 ./arch/spell/Healing/healing.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�����s‹²÷���tRNS�@æØf���CIDATxÚíÎ!À@ ÁìüÿÑeeP©ì†ÆŽ<×_0+9wcZë©l÷{ªÄ©þ:md› Ê ç1ÕÀ\Ÿ<% �’(”Šù����IEND®B`‚IMAGE 230 ./arch/flesh/generic/heart.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE½÷Î��ÿµ!!���ÿ��ÛʼK���tRNS�@æØf���…IDATx^½Á à ‘ÜÝÁm ;TÜMAæ"ÿ“y£EP~ÇÆ]À÷y5v*„PDÔK X“ ­›NƒšAsH}Š'þ€æ*Ð".QìÙ\z8j^b·,6ôt*‹Û¼ru‰>ÄJ<hÔ’‰„T0¢}Š|÷­å_¼õRÓãÕû·����IEND®B`‚IMAGE 526 ./arch/wall/bwall/hedge.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEçÆ÷�)B)){J)ŒR1¥c9���)”ZZ9!kBµ91{R­!!!sB¾½Ç���tRNS�@æØf��‰IDATxÚ½QÙŽÜ0 [ÝWŽýÿ¯-=™ÌÝ>W€¥È¢IúúÏAt¥FfR ò|çjÿžÒÌ·•ö˜Õ¬–2s)7Q÷’ÁGk‰pþ�Æ«ŒÉL5ÚÍU è¡ ^ÌîÁeçð2 ž�Á­›1W‡Ü6H˜;“…eRÁ®,ÍyÛ`㌤ —Hå$‚bˆ’ÊM‘ˆx5ÈV¸òãa²á«¬¥Õ« V¦”xÖÜÜyÛ¼¼|¡7µëxDjÐg b…Y´kˆ/ýÀß&©‰ÚÊ-1Å@‘ò¦ í ~ùpHuø�þü…v¢‹—…L0ø7€ˆ`}‘[4F/§sXç["Sõú¿Á¬ÅvÕd¾"V3UÞà.^‹Ãó¸·©v­zëW¡ÿ°‘AÑµí« Úö'�ë:vÊ=cÛ"s<ÎÈ' mÛ�8(ö ´ñœïÛyng‚ᄽëcŽ7çF¨(?@Pù�@—ñcá°€Øú¢Ф•`jÝÆª™×ͯø}û°µÉâצú����IEND®B`‚IMAGE 508 ./arch/wall/bwall/hedge.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE))”Z� sA1œb b91{¬)))ƒR���AJ)œA99´j‰¶ˆ¥��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò��pIDATxÚÍOIr„0 ´µØhƒÿÿ6m`rÊ5¢\XR»—æÔ¿¨ z•~†V?ôY“©j/€J«À*苈Ý�r"4,¼ŒV»�¶‡’¦:lĸUB÷CÅ(-— ƒŠã„á’ˆ¸Â ËâàºèÊi& äé À°öò ®‡@7¯t¡Â*Ö¾´±u £N6äàöõè ´Äu £<„¯ ¹9U±Ñó­IÝ š¤&‡¹²;²©1»UÜ�VrS­Æ¼ú¡Ê‹AÚG¹²ŒÞº%IM¤Û#0tån§ÕÎ8]4E?œ�ÇR´Ä–ÆÞž˜5e½2k+µÒ|<X¹E˜×a¯3"êñŽD1D*cÝöù r¦Ï¤}Çd]·ü Üö™3rÛføŽ¾X ÈsÇæî'}€c>'˜6hì[&T@&Q¢]ôkœX}�D8·×XýÙÝÔ–¨"^äªB:����IEND®B`‚IMAGE 452 ./arch/wall/bwall/hedge.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���¤))9)ƒJ �b9{{ZA)”Z�R9 ½))1œb`¶ZQ���tRNS�@æØf��EIDATxÚÝR’„0£%Ð-‹üÿ¹—º«=ç~pQ†–@ 3Ê?Bf²$dë*ÅnÚ0«WÅIJj˜¦…VMü–È óá-Ù17o øÓ“óE$bÑ‚™ÂÓáš_ÍÍn^EØÖÜ“4ª^ »<¤'¾<ÃWC•2/Øò€ºôì3¦S'âú dV&—¥«´8xáªyòÌÅJ·Ïšê&z¶#‘šŒY•÷¬Ì%`9CÎ( hù½µÑ5„ÓYªò>ýò ÆöI{ä∠Uâë!s–kQ`£§O¤/v{8©åŒûµŠž6(ŇHZ_  yâ=BFÄëæ.£õïã½EgŠh+?æÖŽfÖvPÛúyÝ|` 2N‚zè½õ-Ð9 ‘9ZP` ³vÿÖfŒ™<²È¿ø[þ;m @F˜����IEND®B`‚IMAGE 427 ./arch/wall/hedge/hedge_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V�Í��¥�G$�O��E�����ª��œ�d3�Š��d�‚B'�2�Í•���tRNS�@æØf��/IDATxÚESÂ0[±V7äÿß•r [›&ÆôRøcö¸=üØ€$ÊèÛ�ñLãÅ»€î²fæ�lĵ@ ÁÞf«ˆÅ€øt@E¸¯Ü è ¾'º èÒaièbÀ>fÝ;꜄¨Zô€ ˆyN¶Ñï6ãëd‚2@‰"5¤%D6I{òÙ„è@¡947ß+’„Š\…zˆÇ³€{^Øàƒ ,ÁÓqnó�è¢C ŒBXøžhÑ™Æ\–À$;½ zðUÂÁ ßd^‹ÞT|áO–Ù(€àSò‡j Œl¤´ ÅÝR±µAr@&–®ÿ8hˆ" ŒªÄ̰†ÝŽ ÃüåþsÇR\Éï}ïŠûµFpÎ¹Ï ­Xø?% Ï\²}����IEND®B`‚IMAGE 326 ./arch/wall/hedge/hedge_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�Í��¥��O����d3�Š��d��2�$ư&���tRNS�@æØf���ÙIDATx^UбmÄ0 P—©½AXð`A d‚cñÙ¾5€€øÆNÄ ¬Žø_”–¿óÖU˜î4¦"¢¾ù ]ººƒù„£K1O‘®ÄD\QçÝ«ã!â�ã„—©’“Ó%âL(至óz‚™(­L÷9b.03âËê]ݽë¢ë;_wÝãe2€hêÈDæv‚˜äžÀV¥ˆÀRÍ2 4ƒ"¶¥ni£´@FÅHÔEx¢àÈ ÄVÐŽ ,·X¦ö ÌÐölÛM¾›Ìðõùñ|þ¿(ITj¯óÖ����IEND®B`‚IMAGE 372 ./arch/wall/hedge/hedge_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf��IDATxÚ½S’Ä k-.)ÿð™Hn}Á: ²!vf¯®ÔŠgé~aŒ> ½Bvçþ¶s˜€XŒ{5“„Ü41-𯕻Jf؃# •(laõºð€€!±îÿ1m1ªˆøêëdˆ@$»-¶I+äºA(P‘ÈÔa:.í Ð0ÜÀ؉QµAÚÄ÷hK@6ÜMM˜TfÁàuGÀèáp(€¢1Š¢ ²m…@ÈÔÙ‰AƒHÀú¾ù5zeO†‰Cþ‰RáøˆýLu qD6ý´aßCVÆÃð²~T¾"�Ÿðz7øÆUsÎÏœUóYAëYW‚U+ýà?ûq\Móô^œ����IEND®B`‚IMAGE 375 ./arch/wall/hedge/hedge_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf��IDATxÚµQ[’Ã0« .*÷?ðZ¢?Òß±Œ„€øu#Ó‹F´"!…â!HÌ¡z #’´ÉfÀb ¼€°fDÈÊ65©úÚ¨Z €5 ¢^ÏÓÔÁ]æÇ˜òÖþè!5ƒ¶§ÔdqRµÍAEPCTökÌ¢‚¢cŠì”P�qàZtˆÐŠ:§@´‹¶bù‚Í!bl>‹ÜU¡¢ØÀtèºíŒôÛK€9#gü8. ÊMØ&ДE«Ã9f¢ d\+ŽËÊJ¾û³‡ùk—k‰øæ–vމÃ| e ¦�p» óã~g zïïÞ³Îäyñóõÿø–Td™Y×z����IEND®B`‚IMAGE 301 ./arch/wall/hedge/hedge_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�¥��O��Í��Š��d��2�”Èôs���tRNS�@æØf���ÆIDATx^U±­1 Csî‰ãt½/@D¸ ` Þ„ï"ÿ[Q%¼â‘üùÜ¡Æz6PT%0y²"ûA‚�Q“‚`݉@r¼„´æ 2�ÙvÊ0r±þr‰ÐVØë«úá—U—y¤ä´F‰Šao¦qešù™Æ[¦qe,kC�ÛqYWÌÌ#+s9"ñïè—ÌŽîRJ±s²±f)XSlŸN€ s±!r,X¥ÔôV�Ï-1Î~*å-Þþ `����IEND®B`‚IMAGE 392 ./arch/wall/hedge/hedge_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEorm�¥��O��Í��Š��d��2�:>ë���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ6#“"3���ßIDAT(ÏU‘ÁmC1 C}Ê9D4�ù\£ ‚=Á²€ÿ÷!tÐʪ}Dò™.¥”Û¬jî¹—ϹÍã:\°Uõ„Ë?¿ƒ‹’i«Ö| 6ôÐ:¨—V$ù‚·Ž{òøHĪª=|HHjÕÉŒ FóFöÍ¡§“¬ïØåáˆÁüŠG¬Nµ'I“©±’†¤Nx×Rr’¢KNi\I뵎°BcÅ‚$y1¥íÖ—iÀÓÙé3=3zEnlIdðF:ýC÷ô ¬ËöàÂJí«”7®¤8bAƒµë����IEND®B`‚IMAGE 353 ./arch/wall/hedge/hedge_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í��¥�G$�O����d3�Š��d��2�ȧ~â���tRNS�@æØf���ñIDATxÚÅ’K‚Ã0C—ŒÄý/<••xBÜ}Y°ˆÄ3Ÿü|!ˆ@ÉñÉ 5”Ç;žzÕÀx«1f`3q;ã H¤"ìy2áúë‘MçCZì„bRÕn Ôn×3“1eGŒÝ`)¬+à&…Àd%]81�ñ°n«&ÈJ^«6� à)®=KÍài6à¿.ƒµ.-ÆÀÍ`Ç:»A€i¸Žå?ëþ„ÛŒu,‚½3Ö±ÛÄ:–�½É².ߟ`ž›<$ùê=0},O‘ùûʾi¥y ÈpuÔÞ¤«•-´”ü‚òf()ÂLóûOæ \„•¬i����IEND®B`‚IMAGE 371 ./arch/wall/hedge/hedge_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�Í��¥�G$�O����d3�Š��d��2�ȧ~â���tRNS�@æØf��IDATx^M’AN1 E9š [úú=�'@mŽÐ[0ãÙÖTJÙ"KÐÛ¢h2ìò”ÿl'¹kë–i™¼o»Ì~*>vV,×�Å,$Ð+¸Ü>_ ÀæÈ h-N’¸‚c±âæ0û†èŽb•f²;òšfì4 Ç™ ±CïÔì,'F•by�@ì±9,& ôÚ–13¯¾‚æ0û²‚lŠÂ²M›f"Y—.=–.ýDI;@³öˈd´"t*Aˆûes´i¹ûß `­¸„8H¶¸~ü»u‡?½½ôᎂð|:Ö¿òýï±³:}<v±´ ¨}‡_eÉzzsXJ����IEND®B`‚IMAGE 362 ./arch/wall/hedge/hedge_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf���÷IDATxÚ½R[!CÜ­´÷?p“™îÊðã²r-Z»–¤fdÂCådr­1TÃEØ@HDxôØ0{î'€€ibô“#«Árߥ'|‚|»q’àŒŸÇŒ3°äåÃà Á ÔæÄ*By…C§[bÕ¢¢nTŽ‹PR.ƒ® U‰ÈùÏ›H Sd@çgAh«zUÄæƒ $ô»Þ¢ÔaeêˆãKéƒÒév©4÷˜,xØo\!ñã}o†šp^>Ä,UêôëéÓ×øÒ&äm«Y…庮l€&`î×} óžKwüO¾ ˜åþˆ£����IEND®B`‚IMAGE 456 ./arch/wall/hedge/hedge_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE����Í��¥�G$�O����d3�Š��d�‚B'�2�óoe¼���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛyªu��IDAT(Ï1NÄ@ E]o…Òвn~@AFm…„¸@âÆ.Ñ4ž=ÇB“SbÏ„ àģɛ?ßvˆˆN{)ßÏ`•;êq*—RL„ñp€KP  OÜó€Á’)ˆ5"yÄ@@tÅ™1%eå­{Ä!c;Ç Ër–ã!,ÚÁÆ2q⣢À–¶i A·Ùx’¡Èóýë#{Ԭ˨ÁM=ÒÌr2‹Y<ö6«vÐÐÜcØ×®@U±ÙjЯйiƒVxë'n‡&ô:<I¡Z-ê´qƒšš+B6ë:†Ð{¬Ã‚†…Å|v�õjâZ}XC£`äh‹èÚ®­=å2¾©<–òY^Jy=Àr{_~öýcy£ÿÆ/¿«y„¢¬x����IEND®B`‚IMAGE 361 ./arch/wall/hedge/hedge_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf���öIDATxÚ½PK¢Ã $X›û¸ócÓý{(3ÔÔ?ØÝ7Ì7Å `t5¹á¢�wÁQ½G׈ Æ–¢’K…@’)ªQiA„¦"§©)fjåèi½|0TIˆ2 #Hwý\‚ÿaàMpi¤<ª©+3‡à>Üq,H³]pÕš±ÌÁè$Hxšbw’ÕYœÖ‘ªl—‚$sr¦£\„Gdב´È76€|˜¤y&såc?A…TÜ£\î Îä눆¨(Lg*¹¡“yæñêØ|Õ‰}˜·ša½Ö [ö掭¡Z{?Ï^ûÙï-V$zõ÷ö 盨),™����IEND®B`‚IMAGE 385 ./arch/wall/hedge/hedge_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf��IDATxÚµQÑrÃ0ShS˜ÿÿƒ‡ºK÷>l 28ØÎy·5Ddï̸ðe7«mYIe,ó°ô¤-æ”&\`Ä­•—¼(ÏQ<\W/±ÒMŸDSdÍ Š‚NØv4#T5á飔öôV^;"áYötnAxÁɳ‘Ž:„ ‹Ú+¥€PrY>…De¦N¯fvBû¿Ä:&U˜´‚xC™H²™HC²*Pá4ar&Á7£Z´aÀT*h7Ã$•C1PÓíºà¯…»¹BVÜئ¥í&Á×j$tÅ/Xi°¾V‚ªú©µ¨Wg„`*Ä[öá^{Ù‰ÇýºÏýéÓþå¡éûàÿí¢ƒyâë/����IEND®B`‚IMAGE 381 ./arch/wall/hedge/hedge_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í��¥��O����d3�Š��d�‚B'�2�/|¼³���tRNS�@æØf�� IDATxÚ½S bƒ0 [p‹æÿx’epà ÄÐèðÑöçÖy­£÷Žã8u÷ÓÁ»úp1¸9›Ã°v¬—ƒ +òpYP õ™àK±JÁ0V~}t9L1&¸¢Ë×trÆÁŽñžÃHQOL¢&€—îzA¦ v?&À�•Z�–SŒÃi½2°ˆí]H‹1ˆè>7‚�~O8sxì“wŽD õ7¡›€b†2øëœ9•J&"@êGD\‡ dQðÓA–Õ9¸–ÝEyƒÑHxN3Iñ]i 2<¤½ ®_nT‘DØÉ"¾aïð²zRdæç›ŸLzP•„Y™ÓeëEˆ®aþ$o‡p™„º:ÿ5q §íõÃÚ����IEND®B`‚IMAGE 404 ./arch/wall/hedge/hedge_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í��¥��O����d3�Š��d�‚B'�2�/|¼³���tRNS�@æØf��$IDATxÚ]S vÃ0›CkÆý/< á'/8Ư–Ÿ¤?Ǫ÷<ÏÞÏâµíC¶s“AÚ‹@˜›ÐMØÇíì ‹NrùÌ)§= s¹F˜K\+,ëÆ:â(H°=.—šq¶+ |".BGÀYÊmš€%çbDPEGWtr¬ Eû÷š}¦ !±ð`sU±`õ#B @$-3—RXa+^J¹€Ý]06-1}^øIqä êw!q•‘'~¹ÈÆè+˜A¯Ós�Ê(Šþr†�DuP€ ÿW d·�Nêû¤‰ÐÚ /¬Ôœ<IòUidThHw°_l t‘@Љ ßvÈíUõùÖ§Š„m‹`«r—3¬!¦ÿIÞ ¡2M}ÿX  pD„Cœ����IEND®B`‚IMAGE 407 ./arch/wall/hedge/hedge_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf��$IDATxÚ½Q‚ƒ0à GÆÿ|! ºV¢¦ì,^!®Ó+`ÂKKO¡„¦ïæ=ÄÄ¥@ªØ‹k/¦ÁzOgÇÊÆ›¢KlA ôöNæ1G„]g $1ëšûóÒ+… Œ×šÔJØX@ºU‹ ð©¥dÞgè�w–¸; i¢å Ò±ë€Õ^Üî÷À iB™ú…âØ©8ñ†„ãXmT‘Š•O¯v`PB„PET£©ÑuH€ ‚j€î¥+0Úk&mз�;)UoºlWêðôˆ‰sh_@¨È¨I„hosÿxk{[ï.cèí–™ç'OƒÓ(Zùó$o—eÞ·œfÙI`5óúM @—ÉÐ\Cü;"Ó áR����IEND®B`‚IMAGE 430 ./arch/wall/hedge/hedge_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í��¥�G$�O����d3�Š��d�‚B'�2�Ö)Í���tRNS�@æØf��;IDATxÚ]S¶‚PÃÂØãÿ?ø±­ÐB…+ŒpŒtçȨǣæ®zñ%g¦ …"‚°@‹À w@IHéªpPÉåš¾ê VúÖÑÙ¾‰ôgžŠqÑûñYËcÎ1º–îÖ©¢ë؆lFÇÞÖÈã]¢Â‡­)c '†éýr'Ò#† ì�ö\l¬ ‹QË‚i²0oÐ}ML¾€“IpM¬0Î[Ц;1‚¹¸2¯…AÛ„z…âØ…©¹`xk4ט¨&£îd…]¨’Uà¶°Í¡Ü H± sÅ@J"r0P^­„¸1Úhì¦ ždùTHd³‚£Ç»Fþ�u &‹›(Fž‘ùJs§ÅÙ” =3ºû|õÙM€Å õyŽÿöóÞ¾ÒÊ/axå}ý�:ݦ¦"”üÿÕÜØü4����IEND®B`‚IMAGE 746 ./arch/monster/demon/hellhound.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��#PLTEÿÿÿ���ÿ|�ÿ�ÿú�ó��ÿ˜�ÿè�ÿ$�ÿÞ� P�ÿî�ÿö�ï��ÿr�ÿÈ�ÿô�ÿø�ÿÆ�ÿæ�€@�ÿò�ÿÀ�ÿ®�ÿJ�ÿâ�ÿ>�ÿ’�ÿì�ÿÖ�0�ÿ�ÿ–�ÿ�ÿØ�ÿ�ÿÂ�ÿÚ�ÿT�ÿ^�ÿ¼�ÿ2�ÿ¢�ÿä�ÿ†�ÿ¶�ÿz��� PPÿL�À`�ÿ�s��ÿÐ�ÿp�ÿ²�Û��ÿŒ�ÿ"�ÿš�Ã��ÿê�ÿ¨�ÿx�ÿ�ÿà�?��ÿÄ�ÿ8�ÿ¾�ÿ‚�ÿb�ÿ\�Á��ÿ�ÿ �ÿ¸�ÿV�ÿt�ÿ„�ÿÌ�ÿ¦�‹��ý��ÿ*�ÿÊ�Y��ÿn�ÿ”�ÿÒ�ÿÔ�ÿ0�ÿv�ÿœ�ÿ(�É��ÿl�µ »���tRNS�@æØf��uIDATx^ÍÎÕ®$1 P—í@w3\dfXfffüÿ¯XÝŽF“æy£¼DuR6ý¿ÇçwÆ1Dn¦0€s˜à˜­&’3sšNd‰ ŽUÒ“A”çŸïŸý¤ #€<yEžß|ÿlûc<H”`å2?~þCÄ1 ï¡¢Vâö\ò0Þ?ØUm1KûÖJã¼) `¼¡Q½W«g‘f²ëšýx}£ßÌJZ[ÛX”Û¿V÷;7–b@ªÜj×µ4§|µWù½ü·rº\��WJõõkÛw>~jʯʮ„?,ÍÕ:›ƒ×Ý-ö×+rR sïm¶Þ}÷¨:¿¶÷dh7”Ä@ôãΧ>3-Ý{±õRaâ "‹_¾®*ãRkõ›C1P9 @­UA¾‹P‚W…-€L8/�…ꨡ«€àœC�Ð$ �4 pô �ˆòPDåSŸÿ�7C…ð˜ø����IEND®B`‚IMAGE 733 ./arch/monster/demon/hellhound.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTEÿÿÿ×�����ÿà�é��ÿ’�ÿØ�W��ÿ¨�Ó��ñ��ÿÌ�ÿä�ÿ,�ÿÞ�ÿ �¿����ÿÖ�ÿ:�ÿ�ÿ�ÿ¼�ÿÜ�É��ÿ��«��ÿÆ�Ï��ÿ@�ÿ�Ã��ÿn�ÿ°�0�µ��ÿf�ÿ4�Û��ÿP�ÿ*�å��ÿâ�ÿÔ�ÿ®�ÿ¬�ÿj�ÿ�ÿ$�ÿ\�ÿŒ�ÿÂ�ÿª�·��™��Í��w��ÿÀ�ÿ>�ÿ�ÿž�ÿÐ�÷��Á��Ù��ÿF�‹��ÿŽ�ÿœ�ÿÈ�Ñ��ÿ¸�ÿæ�­��ÿ�¡��ÿš�ÿb�›��ÿl�ÿ&�i��S��¹��ÿ|�ÿ �ÿ6�ÿR�Ç��Ý��ÿ�ÿV�—����ù��ÿ¢�`0�€@�ÿˆ�F/5ç���tRNS�@æØf��bIDATx^Õ‘åŠ$A„+"¥z\WÝ]NÝÝÝ]Þÿ!vŠ¥—é†Ù»¿—PI|•™á¿®x’)!ðzÜã Çï­5À‘£™eYe`ÉH¶ ‘µèŽa"N$"J´,Ý,Ûz\Åòr06ðþóÛzã´YPEbÔ 1¸üìyãý3÷#€p'©šÞ/àîFc³×£ñ8ÝÍ�¨*jKûc“·N4sæ[›êçLméÏ•õÎ)>'P·zÝ¥ksó“K/´°åï×oÞ¾«7ïûøÇjûé·ïí&Tb\YõfmbfñêìùöBe¬�¤Œ.Î=|´-;»/_õ«Ì—�s¯œñæÙVëܵÅ'Ÿ>÷A 2D@ðå+È$15 ˜jñº"�Á$95]q+]š*¦Â$Ü4#ƒ”SæŠê Å" FÌMMÉÿ@R†–CPDr‚ySžRlþ¹¬|Íjy����IEND®B`‚IMAGE 636 ./arch/monster/demon/hellhound.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���äPLTEÿÿÿ���ÿê�ÿš�ÿJ�ÿ,�ÿÆ�©��ÿø�ÿn�ÿú�ÿÈ�ÿî�¿��ÿ¸�ÿð�ÿÐ�ÿü�ÿÂ�ÿ”�Û��ÿ �ÿ¬�ÿè�ÿF�ÿö�ÿÄ�ÿÒ�ÿì�ÿŠ�ÿp�ÿº�ÿÜ�ÿD�·��ÿv�ÿ~�ÿ®�ÿÖ�ÿô�ÿl�ÿÊ�ÿŽ�ÿR�ÿB�ÿV�ÿt�ã��ý��ÿH�ë��ÿ4�ÿL�ÿ`�ÿ†�ÿr�ÿ¨�ÿ¢�ÿœ�ÿò�ÿ8�ÿ¼�ÿâ�ÿ|�ÿ°�ÿ€�ÿ�ÿÎ�ÿ¶�ÿ¦�ÿØ�ÿÞ�ÿ&�0�ÿ˜�ÿà�aÁûä���tRNS�@æØf��FIDATx^ÅÑÅr,1 †Ñþ%Ù ÃÌ afæ‹ïÿ>iO\é.Ï$³Œª´Ò©Ï {?8XwWë„Vß×q]ØÀ—õxé¼»‘_°� ú—ÍVª‰Ð‹«‚G1Òb(5ÍQªb°XÎ=äþ"7e ­`îµ²¿6ÇŸ�„hóŠa.Á\|¥”"À$H-î7Ìß÷“Äd™ÌS«Ä€—�~›ÊÇ”)(•Øù pfïàø,ó__Ö꺑XÊͱÿg¶µ½³+ûº@¼2“ÃêѬ2:†íÆà‹ÎUSõòámX«ßݯ�ýâãÓs†�"ê¶È½—×Áœ`,¹�ƒN»H 2O¾ðˆaøÍ )à$Ðax 4ˆÄLk؋ׂ´ 0€ýb ]&AøV$ã¸AwÞ‡dëIK����IEND®B`‚IMAGE 678 ./arch/monster/demon/hellhound.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÿPLTEÿÿÿ���ÿ�ÿ¼�ÿ~�ÿì�ÿæ�ÿÞ�ÿô�ÿê�ÿÚ�ÿâ�ÿò�ÿÖ�ÿŒ�ÿè�ÿ˜�ÿÊ�ñ��ÿÀ�ÿØ�ÿÄ�ÿ¶�ÿÌ�ÿ’�ÿÆ�ÿÜ�ÿ€�ÿÂ�ÿÐ�ÿî�ÿ|�ÿ„�ÿ¾�ÿh�ÿÈ�ÿ®�ÿÔ�ÿ�ÿ¸�ÿ�ÿv�ÿ”�S��ÿŠ�]��­��ÿÒ�ÿ´�ß��ÿš�ÿð�ÿø�ÿr�ÿ �ÿ‚�å��ÿ�ÿ�ÿB�ÿ²�ÿX�ç��ÿx�ÿ°�ÿ(�ÿz�ÿÎ�ÿ¬�ÿ �ÿà�ÿT�ÿJ�ÿ.�ÿp�ÿV�ÿ–�ÿ¤�ÿö�ÿn�ÿž�ÿD�`0�ÿü�Ý��jý-���tRNS�@æØf��UIDATx^½ÐÕr,1 ÐmI\fæ 3ÃEføÿo‰\™­ $Ù·«§÷©vɹÿ5XÈ,0KŠe¼$ÀçDVà™œ·vþXÂÓy>O:  »Õ™è(xõ‘MlJq°]µb÷÷¤ÖfM  ~3]\­•ÜŠ 6cVG*<¯´·ˆ <œ9 »Àìè8ï×MŽFÏĉ/sÓò<t­nè ¼i¼pmµ×žôˇ_ˆÒÏ!ΰsrZ]ß­_CB Œ‚•ë)ÝÒÝø5IÝ(@¼yÛ˜5‹ÅZëÝûZa®�÷÷C<í±:î|4Î�òó"(å•Âê§ÏY0ôÛ„Ì¿|I@Š�ç¾1K7¾G¥P½ °üH‚Ÿ¿ ­TÁß$�G�ŠZ�û©245@a¦A‡’{‰üS*Iäb}²$û{™V“mÌ&è����IEND®B`‚IMAGE 709 ./arch/monster/demon/hellhound.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ���ÿØ�×��é��ÿ’�ÿà�W��ñ��ÿ¨�ÿÌ�ÿä�Ó��ÿÞ�ÿ �¿��ÿÜ�«��ÿ@�É��ÿ¼�ÿÆ�ÿ:���0�ÿ�ÿ,�Ã��ÿÖ�ÿ°�ù��Ï��Û��ÿŽ�ÿf�ÿ4�­��Í��ÿ¸�›��ÿÀ�ÿŒ�ÿÂ�ÿª�ÿž�ÿÈ�å��ÿn�÷��ÿj�`0�ÿR�ÿœ�ÿ>�µ��ÿÐ�‹��w��™��ÿˆ�ÿ�ÿ\�Ù��ÿ�¡��ÿ¬�ÿ�ÿš�ÿæ�ÿâ�ÿÔ�ÿ®�ÿl�ÿ&�ÿ�ÿ �i��S��¹��ÿ|�ÿ$�Ç��Ý��ÿ�ÿV�ÿ¢�Á��ÿ6�—��€@���ŒX(I���tRNS�@æØf��bIDATx^Í’ån$1„·ªº=3Ëfæ333¿ÿƒÄÚÉ&3·Zå~^K–Ü®OÕeË•ÿ§pÀ!‘N’ñ8¹‰0QçÜúµþä)–ëY–¡%]$š™¢Ï%â`fFéÆQ–-Ȉ€(¤m�÷û—Œ•{DÂÛ(L#ݾãÓ IbK’Ø™ à˜š"¹*]1âHadáèÓƒ//Vef’ÜÉ‚CD!Þš^¹~w±:øn±œ*¿ dÛ·§{³]_¬ÕœF K­?¿µÒ«}6j?¼÷–‹éЀOêó-òáñ ]mpíF’Ì3#Ò¬H¾~õòExþl«»y‡,Ž0èÍ—ÏäÁ~³¹×àî½”ô`.uNúöUáï[8ë<8)„²^ÜHÂÁ<ƾÁOOaùn'c2qÞefg@�PB€B3(7ÿX'y–‹ÜÑ2����IEND®B`‚IMAGE 721 ./arch/monster/demon/hellhound.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿÿˆ�ÿœ�ÿ.����ÿà�ÿ¤�ÿò�ÿæ�ÿÀ�0�ÿö�ÿÌ�ÿÎ�ÿâ�ÿÊ�ÿè�ÿÜ�ÿØ�ÿš�ÿ~�ÿÒ�ÿì�ÿÈ�ÿê�ÿÂ�ÿä�ÿÚ�ÿŽ�ÿ¦�ÿ„�Ï��ÿŠ�ÿÐ�ÿz�Å��ÿª�ÿÞ�ÿÄ�ÿž�ÿ¾�Ë��ÿî�ÿh�ÿ6�ç��ó��ÿf�ÿ�é��ÿp�Ñ����ÿ�A��`0�ÿ†�ÿº�ÿ€�ÿ¶�g��ÿZ�ÿt�ÿ�ÿF�ý��ÿ�ÿ�;��ÿ8�ÿP�ÿ�ÿ’�«��ÿv�Ÿ��ÿ‚�ÿ2�ÿ”�ÿl�}��ÿ¢�ÿ��¯��ÿ¨�ÿô�ÿú�ÿü�ÿ|�ÿ`�Q��´’���tRNS�@æØf��kIDATx^½ÑÕ®ô ànªã®ÇÝÝõww}ÿ÷8t€t’NoϺ $ë#›€÷< íZ•Š AˆZ˜¾P|øL¬eѦñ{Död hV/DxŠ(íM3C¶'ør‡È“ûfsìn´ø�®n‡k©À0r$T¬Ÿhðo|±\BÆÐ‘žŒºBÐÛÇOUBLON V)6à?Ó\²Ñò—>2ëõJDì9Áì1µ{%~õM”ÈõYøz¥'ÊAR–g ©É,þÂyÕI»ï× n’úËû‡FSUÚˆZ`EÞÅøê5 ú¿Z­´È)i� ñå°Žk]\;5 ¸0P9˜_™ÛÜÚÞÙ ê{û3@ܬ²¶4:8<šŽ¿v- Æ·ï pÀT3€ü1Ý‹ @{ZÈf:à±’?§h`f°pàWÜçé’…0[%[à~Ô·UÊ,æ´‰�hyyÁìlî­ ì:¹¾‘ZŒ����IEND®B`‚IMAGE 207 ./arch/armour/helmet/helmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���ÿÿÿ@@@¿¿¿•‹Œ)���tRNS�@æØf���eIDATxÚí‘1À !1Íÿ\'R»€X[#±Üé„DûæÀm±sZIl<ɉky¯(ž3¨�y¤¿<9…PÂÃG¬ÞöoT‚¹k^�còêmû]S~Îü;Ú Ò–5é7����IEND®B`‚IMAGE 188 ./arch/armour/helmet/helmet2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿcccŒŒŒ­­­½½½ÎÎÎïïïˆ/,Ÿ���tRNS�@æØf���RIDATxÚíÌ1À0A8lïÿœà* –Bí­n„ÝZç9Ö‰ñ‰zŸJàTÿg$p‡(x4ÈÜk°†¤ÀP#³صñ¹n¿{�/'{’I@»����IEND®B`‚IMAGE 196 ./arch/armour/helmet/helmet3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿRRRcccccœŒŒŒœœÎÎÎÿÅ@���tRNS�@æØf���ZIDATxÚíŠA À0ÎÿÜ  ¥æ^3¢,î\‡-€u¹RˆˆÔ¡îÓ‡à”} ÁÝÙ €ñ)ÐFb@/Œ†i[Ùë¯Q*™ŠÞ°•> Í“/n…Bxy‹m����IEND®B`‚IMAGE 251 ./arch/armour/helmet/helmet_bri.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���ÂIDATHÇí“Í „ …Ê)€¼S�xñdàÝö>Ëü€šÍ&3k<lâ¼HÉûx€3 OÝ]€í3^Füñ�É>3 !ËRX¥Êj"{Áµ«Ô53pRûÖµr óþ;àÅÚ<�³ž]�X?™/v€$]’À _î ø�pRáG5ÒB쓱‹æÙ ;¢Iì�!ÒáÈL+æ_)*Bn ©\Ý9Y$ÑèíHÚ9* þÒÐ ÒÆ§n­7wëKÆQÞ����IEND®B`‚IMAGE 198 ./arch/armour/helmet/helmetxray.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���IDATHÇí”KÀ Dõ䣵Q‚Tlì(éNX˜¦Î㧦tìØß–¯â1W߀˜˜w £|¡rr+xƧêpò;BûÖS„ßç0•+Dbùàg ZÅæÜ�@'x@è,€ôµäJ ¤6èOPÂl ÐQâW_º !¹Žtó.öГr µf)T'Ö°ˆ����IEND®B`‚IMAGE 200 ./arch/armour/helmet/helmetxray.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���IDATH‰í”AÀ õå>§µQbˆ€4½¹šw¤`-åêêoÕ§Ç3ŒH@È ˆ¶‡”žö&žë ±îßFÈŒJzª*#½cÞí�·ñ3p/ÙÂ<�àSÀ �bÎ" �ÖBX®YŸyœ!F¦`#Ž“ÐkÍ>ìì!ñ*y+Ðæ«½f)T_ QÅ����IEND®B`‚IMAGE 606 ./arch/flesh/generic/hide_black.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÞPLTEÿÿÿ��� ���������������������������������� �� ������#������!�� ������+ 4 �+� ��C(!#�9.�?��( 8 ' #���2�1(��3�',�� �%��8 �,�.�8�'�(���* +�#% B:�+�, 3�:) �ñùôð���tRNS�@æØf��.IDATx^Óåªd1Eá|9Þ®×︻»û¼ÿ ChafýÝ«vA‘„#{@($p¡tÄd€ã%eà89"ȸ¨Á~ƒ›±Ìp peEÜ�œ,§Šù¡e¶˜˜ƒ¸¾&d i›ñb0¸!%y?U­")#Í'atfvD©ûB6nß>v0M‚»÷ྠšvÜJ+ØÌWu׳<ätrºfT%cG23T£]÷WðX õBž*tz�v7Hõžaó¼Êñexá%W+œ¼â5„¬`æ@/?!�Ðmá\ùêYN#XÒ/íÆsÇåº0â¡ÄùÛŸ€Ï޾P(¾¾Á¸†ú¾Ÿm #MhšwÛ+Ô?•å½~Û÷isåÿòõ ‰[[Y����IEND®B`‚IMAGE 1350 ./arch/flesh/generic/hide_brown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¦PLTEÿÿÿ8J"P.N.'6F*&L" bB4J*,>rF6:/ 2V6U:2lJ@@"&(nB26& 2*J.#f>/" j:*B"R**R* N**I&&b6.f>*nJ/\:.6F" N.2vJ:F66BzZRV*"D>" j>-fFHN226 Z2&fJG.Z2!&‚^VrJJnF21#:/f6&]>9bBJ~ZJR.$zVJb>2.\B< rN2V64V*&F""F"F&"bB@nNFjNB2"^2"~ZF"J.*AfB2T2vVRZ. b6"&V&jB*rNAZ6(N&^6/Z*rNNB *"> ~VFvN=.&‚ZZBO*#’nbR2,fF.b:&6J*!mF=. J6>*.Z6.>Ž^N^.6&&:*.dB(V."B&"‚f^dB:b2"J2.^FDV2*F&R:BZ2zR:fNJR.*8"jJFB"B22‚^F0 \:8zJ<J f:*I&Z2.>"jB2V.(^:"f>6N&&jRN2 >"ŠnfB :|ZZ:..N62>**B*@& ;."&^JNZ.&V2vNFb:2R"B*B* 2".6 2F2bFBfJ>Z22^6*F.&†(<ä���tRNS�@æØf��NIDAT8Ëc` 0>QFF ,*™rÁ¢@uÖ†Ê,˜*—³E rÄ“:&`S/ Ôž^­¿QC$s?¦C…½–ɱLÓW°ði>pT‹ïe–(ˆ{nPÓrœa΄i„|Ý>-u>q†BáÀ=sÑlˆY'/©t¶òN˜€¢¤ü ¦L4R))2÷¹Y³³ 23‹5š0B4 ¸É¡›í¡fàÅ)ãÀÄÌU�¥TÖíÕ­(7µ..9S;Ë!¢•Ѥ‚‘QFEwWˆ[¯¥’‘“l÷I•EÙ.P±ëAÑšRäVåêzÝÒ]º^‚=AŒã4ÇUFhØÏSºd Ê#¸êH‡ËQUé8c6¦c“§,2Wƒ¨(åS/½Ð);g©°|j¦öÚhÖƒÜᜢ<@ý¬Å`ây³'éû±ñ¯päÎ/cZ™+œÌ/ê Ž8ˆ =³²D¸e9Ù|(kó\k]휶•Œêy+O¶hM¿užDMQ"X3ƒW)åÂr’lŒÙ¥*}Ëø34Ïí8ÈŒö5›ä|ý¼xøù›lÄEø ¦šµ3¢F’} _¡l¨äå-]ç•t’G0¢G£ø¶ÍlV<Šz\¦\ÊÎfX’KŸQ´¨{¨qÿîíQXR4¯§­˜G¸¶jš“»@>·gz'JµEêéX‚‘\åübA‰’Ѷ;íX5…d1\ 01± +“rÞùw2bÍ’ÙÌŒPÐÈ+Ó¢1ˆ��Bï1Èÿ^����IEND®B`‚IMAGE 671 ./arch/flesh/generic/hide_grey.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�ÿ[‘"µ���bKGD�ÿ‡Ì¿��JIDAT8Ë…“/wÚ`ÆóÙš ±V"€�D„V€h‚b " ‚ˆD L¤ A4Ð"H Tm;=³ž¾ó;û>ïDèšRÎv彿÷þ{ïÃÐÿ³Ë �o/põô—�åàƒ‰´vöL3œ �Nû×™ãô†`‚•}�“‡…èÜ^ŸWý’Ì«Þ.‡íqM¿sÆëß¿lþ @¡y_mg>XŽF6ù)‰À6ÀÆIÿÓl:º½ÑÊ-$°Õ ³œÖÎsM6*±¡ò°„']%™’ÕVno?ýþ;(eèËz¢‡$W¯ä¥Úrq˜Í’=l�øñð‰’¼ÔJª—žÂñ¡ ñ§€P äH˜6?Õ³« -¿‹œl€é��Œx<: ‹7ÅäS¡Ä' áB�(CŽQ’t•7ÔTìd.k©;É8VD%’φR苞>P›æ¢Ë5¾ñ9¥Qq´Z€©‚¡n½k-ŒÒ-q&÷¢”èÜ­Ù(àgþè·¬ùX;×ͮƫìäÑ«”Ÿgc(Å qV,¤¬¾œ,wìz_xm!8Œô^·“I!Íåõå±9oÙåàÉ¡½üìèëaS(5¬éR¸w˰VóÞxÜc#½ÙÊ×m¯� L¦Ša¹šd*fM¿)âþoµxV©š|§b«FµŠ7º@ácÝËH±Y¹Ï'®v�¢ëL¸9Ò«â_°ÕÅÕ@‘ĸúÜa ïBßR–ÿ©dÄZ‹ÂÊ‘g6vi‘}l¬³ uâŸêÚ·Ï€tŒÖ÷Ô����IEND®B`‚IMAGE 310 ./arch/flesh/generic/hide_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���ÿÿÿ÷÷÷„„„=µ���tRNS�@æØf���ÕIDATxÚ’ÛÃ0C'ÿÿͳŒ-¦‘JÓèCi8œæöú+ã>š ¸eyï3ˆôé„ê˜$E 6pu ôÛŽ©ˆ’l|™>Ÿ 'X³Ÿå`z{ªQþbV~E[rÀ²y-÷·Ÿ9 1ý2dïùùå§@Q„>ÝaL¤Àû·0=upe8ˆíÏsöë^A"€‹V¥ &fO÷÷g=yŒöÈ?¯’͹JóFôHs  ¥•Œëšë̪€9ËlXÏÃÀ9&S'¿ÆãLc¥)×����IEND®B`‚IMAGE 202 ./arch/armour/boots/high_boots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'”%5µ���tRNS�@æØf���fIDATxÚÍ’A �! ·ýÿ—$‡téµ9 I¬R|Æ Ô9LD °óŸ +xΑÀ @àO\™ŠÇt¬pm~òë_èsßr ¨–¸@PÞ€`j! öFPNݧp ‰Z¦����IEND®B`‚IMAGE 208 ./arch/armour/boots/high_boots_b.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���‰IDATHÇí”±À DÙYX\üÿÿ¼n-zV°‰Se|¹;ÄDNÍ A@B»70™Ù õ&óîNŒ!Ù�ñR I``ù�…ÂPQ›lHÜßÉ™ìì/Ââ5;É!ëóµßëªÍó;ý'’àéOäd*Ô•€‚Ò]ÁŽ$ïÐ;Ù{ÈÿZÐ|5|íÞ®Â����IEND®B`‚IMAGE 202 ./arch/armour/boots/high_boots_w.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¡¡¡¡¡¡±±±ÇÇǹ¹¹¿¿¿k¸I·���tRNS�@æØf���fIDATxÚÍ’A �! wZýÿ—$‡téµ9 I¬R|Æ Ô9LD °óŸ +xΑÀ @àO\™ŠÇt¬pm~òë_èsßr ¨–¸@PÞ€`j! öFPNݧWL÷n›Ç����IEND®B`‚IMAGE 427 ./arch/monster/angel/highangel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠV��c2�1�cD���þÖ�þ¿Êÿÿÿÿÿ�ïå‹¿¿¿;cj[���tRNS�@æØf��,IDATxÚe“’ƒ0Dm¤¡Ùÿÿܼè1ãØ¸Ïe-Éq—³ññ-ŽVÊrbT€~�Ps@U+ „Þ‚\"�Dz0ÅÚÒ[àN¬‡ð4(Kêª[7R4@ʶé³eH�Œ-è4'J!B8P(¡kËà�.ñ‡sÍàÊz¾Ìo˼¦’Á^Ë\Šá=NlÅ›aEÚÿëåöâµË¸éÆ–!žòkz,ÚðŸèwFg* Wé€ó3¿òzZ à9Øù€˜…\«W:˜ ÆÃç÷r¦A•<|�q•ý² ˆnpÕec3b…Àí3ë,Fàî„ëÝA•rXFýX0Ðæ1Iþ¬}•¤^•{†]2S·‘ JPËßCóoº´0����IEND®B`‚IMAGE 466 ./arch/monster/angel/highangel.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4V¿¿¿�1�cDÙ¤c2���ÿÿ�ïå‹þÖ�ŸQ,ÿÿÿ�Ì���-ŠV�c�Í…?Òi±~¤9���tRNS�@æØf��GIDATx^]“ ŽÅ C±³]ÿÜÿ°#ÓŸN¤ U~²ʬpzy*ÒÏDNJ€�Ýé%V• Æ‘€¸È³ˆõn½ëpxààfj·µcœ\^�„µZÈ—ÛꇌSRB€•WÝá¢l†<–C´’pÔy¡5cʨ5Ò'�’ÍòØ2tâôA\îhú%´ßCÙ÷©ª>€T€|ÔÉÝf_‡ &`²èƒ¨)’>Ã`&1Íd%äí 8z¼ôO{,B¶º�¼ÇÛ×ç‡-@k֯غ,€2„ ïÕ?ЇH³Y�éÀþï|ðˆ�÷ÜäùcË!.%õ0—%Ë¡œ$†÷ÔDÚEñ ̈E@Ò6…ô´MDØ‘.-Q"/!¦¯·|%B·ãýpÌ$—Z” DÜ=éìsÄ\Þ²CÃ~†X ­kß³����IEND®B`‚IMAGE 545 ./arch/monster/angel/highangel.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE4Vc2�1�cDÙ¤���¿¿¿ïå‹ÿÿ�ÿÿÿ�c�-ŠVþÖ�ŸQ,�Ì�þ¿ÊÒi��Í…?MËêd���tRNS�@æØf��“IDATxÚ]SnÄ0 ³¶G’[ÿÿké‘s["^"A 6’:(,%¾ä³pJ”˜ ç&-ªZŠ4éâ[nfr–‹;°-§˜±Ç-°peáÛQš 9‚(âÐ|ïÇ"rDÐŽ3ûLc˜⛞ò+‚Ï <Ãø¬ §\Ðú *¥x“×êÕƒ+P¶ƒ|ÀC@Àêoê󕯯  8SßýЊl{±¥/Èø-ðEL*÷ÅÕI›èáŽr¯/£¾á!€•9Êu<>¯‡K�«þŒr‚`9@õ™+©<ÝzèŒÐIÜ<È©rK¯)àóÅš«/>„!Ó¦ƒ4v§í0�®tì_Îÿ:>»û|;@ÀéuÎÆb” Làiô¸à`¡“Yïó‹!B¸1Ùäo·ùXÁÕg·æ«Ë±x˜ê„SS±!Ø ð¨þú'8²¶‚Pkóz#Œ¸·wj]1.XÒ,W£ºÑ¯ùN¬—ü4ÑÍ )ÀX*ÍÒÄî�ð¯ÿÈ_cyT����IEND®B`‚IMAGE 477 ./arch/monster/angel/highangel.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4V���¿¿¿�1�cDc2ÿÿ�Ù¤ïå‹-ŠVÿÿÿ���c�þÖ�ŸQ,þ¿ÊÍ…? Í[���tRNS�@æØf��UIDATx^]’‹’… CIú�Ÿw÷ÿv©uoe†Ñœ„:¥DùŠ¢ú©Oú9 ÜË]�ŠèÑ¡*»üF ýg®@D8ÜZÚîçèD3Ü–8÷z—°A;±Ø“°Z8¤; fŽ‚èçäšr’Ðv œì™‚@Û¥¯p#c ƒ8õjeXî{lµ&px^ w}uM ). Õ&¼jÛbûaVÿ~ÒjµÔ9sG™°¦þ�ÁzüúÐðÖcç±$iÂeNÀ¤'csÕÌøm$TNµe&¯¸½[øJ ¥kJà”ðûXcýܘ#í&¶éˆ;œ¯óO.Æ¥.xMâéÁvZ«ÚQ¼ÿÂ?µ=A¢µêl#b•û˜�ýЀ ˆÆ¥7ŽrÑ<w\Êö;醮סÇ8Þó8ÎnÑ Ë6Í#tA…Cçˆeè\ôœÑN����IEND®B`‚IMAGE 542 ./arch/monster/angel/highangel.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2�1����¿¿¿cDÿÿÿïå‹Ù¤�c�þÖ�þ¿ÊŸQ,ÿÿ���-ŠVÍ…?œ&ÜÈ���tRNS�@æØf��–IDATxÚMS ’ä óI ÷üÿ³+™.6ê®�–L1 !Úu1\~p9¶û‹¶šAx¿?py„€ÕLõ1j×ú1)– n z´éjZy%p¤õŽ ¯½æŽu@°+j=QROòpjx擆ª,‹Ý:úXngn©¾h÷11ôßÁSà®ÓŸZ÷ÎÓ^ά­fœ5ÓZ2»Ik¸²0c“ÃÏÑ@¹ôDÂt¨¨ ±ã%Ï[õeTóTœUú7ªINAIØ4ÌðKÀ¨ÊC;nÁäö?š.âþZÐÓüÒÅw’@†H+ÃéoÂ8"xÃÕù@>D:J€v’%˯ÃI‡) M¸ž½JðqÝ(ISôVħ‡¦é‰„«‡ûãpxXdzËáÓC 5ɳ¯g•p`Äøÿ èºËàç·rÌ÷¡èˆ<Šû|•‹ïÃ@Î5<îDy©½î×=ö,Nþ˜é> Œ)XÄ$öq2 ŽáY˜x£­o<öF…-žÈ>ȇüò’o­/h����IEND®B`‚IMAGE 426 ./arch/monster/angel/highangel.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,-ŠVc2�c��1�cDÙ¤���þÖ�ÿÿÿ�Ì�ÿÿ�ïå‹¿¿¿ªaTJ���tRNS�@æØf��(IDATxÚuQ’Ä D™#׿þ·]Òó±¤"¯šNDuŠG³UÚ<ÑûŒÜ¾€kx>=(Äœâ¯ê¸µ™È%Ö¤[tüÞã'û@мt¼åwèØ{ÁŸ�NŠëÞû­òzß›qFØgÎÎ}KŸÈù9½x¦]t¾È OfÇ=™÷3ÄT.uOuÇæJ÷Üc±Á\Še‚½pÂoÅì§N%;þ ­Xødh  p\Wx¦Q‚˹P8$ž¥x¨µðóê†Îë@zdÜplÿG¡¸1T�N®@8Ez�*F¹ ©P�€â•€=U�>#Z&W«ÀNM¬×9ÿÈJ M3eä‚«‹È´TÀ7aS*àÖ ¬ ô Â~•°6å-ó2:,����IEND®B`‚IMAGE 465 ./arch/monster/angel/highangel.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4V����1�c2cDÿÿ�¿¿¿Ù¤��ÿÿÿ-ŠVŸQ,þÖ�þ¿ÊÍ…?ïå‹�c�`ȲÇ���tRNS�@æØf��IIDATx^m‘ÛÒÜ ƒ-ùH²»mßÿe;@IÿõèCò€ˆ âm”ÿ‹¯(sô©"Ê~e„�}"~�ãRlèù%ÂíŒP1 ;ÍÕõô¼»ûi&eaêÌ̦À]!PzÂOVHDš£LmIèý –TÍ»ÎѲCW–X@„CpâîòÙ&f¹„tUï­iÞ;‰I !ãà'gÄU3âR×Dåt·QŸu¿]øÃàÊj;°'ô¼~lúÑ™gÝ=Ÿé›.:Å È �Z~ž+äÃAÓ§ôÝÁ—÷ñÛ0c–Àžçéø¾ä¯òt‚ʇߑ®cÂ:<ЍŽ.`Y܇(î7 ÌüÞæÏ’ŠÒùä«Ö;°$"8æ¶é>S_!Qaƒ`nu´x‹ý‰xíÛ-ÀWw7‹x¤ë[† «"Âþð.—Ÿ:xX����IEND®B`‚IMAGE 440 ./arch/monster/angel/highangel.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V�1����cDc2¿¿¿��Ù¤ÿÿÿ-ŠVÿÿ��c�þ¿ÊÍ…?ï募Q,ÕŒq&���tRNS�@æØf��3IDATx^u’árà ƒ-É6$i·½ÿÓîBÜA/|‰>$ƒ13yÿ¢Ý—¾ºû)Ю�{¸L"Þ ßÇAsöPä=#?ÜœÎØˆú¿¿*@:~Â-3[Ð$ d "œ¤wš"Ç 1£%ë»É$#e&âÔÙp­6˜zh ªrÈ É/ v"gi1BV«"rÛ.ëçUrŸ@=sU¸8. äm;‘ÒË¥1Âbr¶ê§ÙJ,zõBN™�òÝ ±¶¥­@.€Ä|ΈªZ FÀŽÿ*âÍA«ýPù !¡ÏMîÕ‚š÷°:D{Xå^: ¨çº�ù>@e \ÆÍr•y×|vµæ¨ÕÍý~Ýsr#ý¢Û¬spïÁÆ<`þõEÙ¯„m:ÔÉØýË4œƒùw����IEND®B`‚IMAGE 234 ./arch/armour/shield/highshield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VÚ¥ ¡¡¡aaa��¼�����€ÿÿ�@@@ÿ×�¿¿¿½ M­���tRNS�@æØf���tIDATxÚí“;€ öƒxÿûÊ Ͳ‰Ñ˜XøºÍL¦‚å4i[ÜIjƒ—C¦˜(9ÅhY+§JÉ9Vc#Àè·ø0î”X#;U†ÀÌ^A{ÿÂÛGâù{øtAÆhZ¨àð‡­ æ¾¸Kî %."Ëà����IEND®B`‚IMAGE 462 ./arch/ground/hills.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTE-ŠVŸQ,Òi�ÿ�Í…?cDÙ¤þÖ�þ¤��Ì�ïå‹™z_‡��eIDATÁ±ŠQ†á/˜dà¯rVv¶Š…½!ˆm”ÅÀ©"xŒÍˆH`m‚$ $wà%X}£³¼•u¼9ŸG„ýÐ<È‚@êÃʬzVê‰lÝrñò–éfŸ‡¦|ÂtßÙ7Wïª÷û7?-ÄŸùm9–žŸt©´¡xñu[m¡Å‹RóCÒäñˆ,Þ‚ì¹e¹Ùï!la‡Q·LAH�)•c{ Œ §R`8‚pßÅéÎ�Îr&¼<”…c¹¼XHÙÒX¼N£RŸ vAѤç¥^]wݨyöäX¶œ -êªE•R�ºTêž“p��@6L»iuÀÁ8[&b´xuûoO¬DÿkÙ\—ÒžHZIÑMˤÀú̽Ù&óÍßí â·&› ~d-eP¤¦”À¨Îza�£] 0†iµÛ‡ŒB@äþËÍÕ¦:_"+î»4S0´(ÐH³½*¨.ÿ·ÇÕÜYûçD����IEND®B`‚IMAGE 2214 ./arch/ground/smooth/hills_S.111 ‰PNG  ��� IHDR������@���[a?���BPLTEÿÿÿÀÀÀ�Ì�-ŠVÙ¤�ÿ�Í…?ŸQ,cDÒiïå‹NNNœœœHHHþ¤�þÖ�///§§§µµµ333¶2ާ���tRNS�@æØf��IDATx^äœaoÛ<„3KR²“´ï{wÿÿ¯^B„ei9¤ŒäC;@ÚÓggV®9²dJ�‚‹ò±p' *Rùê‰þõ|½¿ð¿1ãyü3û’Iù�‘€DÖ¿·?„o¡žxá_Ï×û ÿûòæýÌþ†*”UùëZÖ|CUÍ«¢ò-ÔŽ?Ú1_(HÿáýÃ`æ7Êì¿ÿ›ÙßjD)\”_à s®*³Ü@ù©ñÁþ1_(È}3{e9¿Ë¿ïo X–rÏÊ/ôœœéžjlYsö(?ˆÝñ=ßìÅ|½¿ð§òÍî6:ÎÞ_ç³7ß”�,wÏÊÏžsF~@)%gwBùAêß÷Í^Ìjù×öòmTb{êÿÑÛ_ðBÄÊ%g(Ÿžñ%w�\KÎÙá[ Æÿ ÿˈò+ßòß*úìëýüœÍ<›}ò÷· =ô7mÑŸë8¯Ä/eÄí7ß3�~Ô ¤ØøæU›o‘dǯyÁüÆW¿Á{_ïO“Ê–=×wbËo|Ûß&îßÔíÿ¡y³WÁ;A‹´ù$Øã¹ý,t:kµ7ëŠ�ÁÊŸ§-ólþ#ÿÖ|Žìo-G+Þ:ô?ª÷nÿ‡Œì…CôW¤äk¢¬k)ù7�¼éwAãùx0Žów<ÎØÆËýMIï?Gµþa¾ìßø®oJÕGaÍo*ŸÊÙ³»D£*ÎǾ×a~ãÏq6^÷·ë ò•žúÛ¥þºCÅ�} 4O€¥äOÕ\wI¢jãGØÏ‡à7¬¿ /ìÜõ»ÒãñÚ€öú%R< á(�[°"™PùÈ·´›Óæoj<¢b Cý͈„—öŸ@NúãmºãÑ=¾¦¦m…Ä`Ø_E¦!dúÿ{¢ªb@ãÏ[oþD‹¥ùIªõòuÿÆG; ~—ƒõS7èsYÍX¥~W•N ¦çq›?Ñß"i>öõþ-?è¯ùž¯› •RXrÎî7@�’'0ùâ7¢ê´ã—oÑI v|ÿÃÖ\›VÐ|ÿ8¿ú׎_óaJÄÂRîùSž\šÞ$ƒ‚R²;<xûkþ¾ãÑÉ1`®¿M‹"Aíÿ˜o‡|@ó‘ÿ^}SZx/\};½vR<"QÊZ²Ó=(Ø÷!øø�êþ{Ysû?ä? ûO?%’%WÉ×NóUûŽøYä”O2ÊI€a®tȯKöoùÀ{¯ÿüñÓ'1ú¥Óüôl"O©xÜS$Ù™>Ùÿâþs€îOÊÏñ‡¯èÍ5Ï… ß'Д�n|蟣ÜóçÅŽ¼îïž‚6‚—Àbm>H`ëwÌ73o¶ïÏæoQ£+¯Š)ƒ<ËZVŸ! ±ò°³üê[GïÌŸë_üvsÓûK`?Ÿ�÷'þÓþÏýßi;²MÁ}]MHñ KÎS$I&V>º žÕŸéÿ%w¿yÂäþ"ä8äÃþgþ›U?àÔǯòJ$Â%›â3/]©|çèZ¬9^÷ßN“û­}ºáUÈùüÔöïú5DñQµÑs€¼0ßMHñ|Ÿ$ªöü0·ñáŽcWSZÿÌ�øS|±ø?Õ?ö?M 磟ßö—üóV¶ã…�¬$s6!Å3sŽLØÔõGx2ð£ÿ’dã[�D’Wf;ÿWÀ·€Ê¶üêtæWIß?Êßû¦D”²0çüfB‚¿v=4}¿Ã›aãó dö„„ªÔúg�ñèÛÞÿuÊ·€o&æã¢¯ó›?ö9VÑü`œ}¥½ñrþN,‹»ÿ¾)â;A£ü<é @œKݱ߉íç³Æq¡/žéþ7ø¦DP\UÓü5Üo7�½ü›+¾Ð¸›O$ -k½Í‚ôšÿÇû¦„ÀÀÿ>îÄ<êôáËñßæ“H åS$  æÿñ¾)±F0!ð¿è7Ä|-¯ÆVžÑ|³6¿}m•N’Ôü?Þ~>ÀÕ—¾ÇäOå/ÿ³û_Ï_¾w}ÿ»)Þ¿ÿäæÛ«ù‘?ºÿß—¯¯šjÝ¿¾›¬ ˆxAòþ·íÁçEý5·ß?M¼?ž6«ðþõ½?’o×tžÿäí?-`ôùBAÿ™üÊ€™çØÅ÷çïïo¿ž¯u–owkú†üùçŸ/0›_ùWž`—Þÿñýù{_çîêýÿeünþÇP¾)éç0öM(è?yü_z>€IE÷Ÿ›ýƒççˆûÓEþ¤°Ë¯†ûÎ9_ߟß÷M(è/ôô|„ÎëóÿvÎ`5b¢SyÛn·‡üÿß‹ÓTŒä ֆ̻>Å&_f2ý�¥lì±à$ï™ÿ«O¯Îwta~5ߟŸßúûBçßdî�¨Ðý�®GHuþF=¬<µùm›¸ÿ:­äë´-ð«ï{áþ…B!„B!„ÖÁõÇ~�\ñ;Ÿk!þæóqËïãˆðÆÅ|¼þ-s¥;åówqûî>^_òÆ|ïŒû° éüzà“ýù~s=Ðøzê3[hDÆG<|=ÒùõȾÇ)?O9æï}BÕ'ú Œ¶`Æý «1”_ÿ—÷òó™~#~o¾yFãþ8<==j,Æ`~}üŽàæçɘy¾÷�¾Gêéù,ÆP~ý1þøùy2g²7êÍ’žœÏRŒä×w5êI~>Ó¼Ù®¹·´éWX’_ ¹šäçá3ÍÛ©¿�‹×sÿYJy»Ã¢k`����IEND®B`‚IMAGE 518 ./arch/ground/hillsrocky.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE�1�Í…?ŸQ,-ŠVÙ¤cDc2¿¿¿Òiùq�Ì�ïå‹����c�þ¤��ÿ�)áCG��ŽIDATx^]’ÑŽä0©nÀÎÌîÞýÿ×Þ+é*âÁ¡xhìÈ$ h¿¾ èb°"3ßIaÅk„@U¥ƒüSîØÞ7�—8TFà°½mÃàÛ-‚,-¯»ë¦Á£õîµä-yo?Â(­µli­™Ý¼N_ë[°‰ö’´‘·Ù•æá$ |IÀž²¡ œXÒà›}Ž¿ˆ0IzNÓ–TL¢€Pº¢9ínIæ  h1eMš–¨ HAq– ºt¸( º¡�üAá¶åÍÙ-åLxbÆÛbß_ƒ­<{ök×–W[òÞ¼t¦±ü¹ Ç„ç@G1qãº`WÉùH–b²01™5ZÆøµy¡K LŸÈÊùçyPf0*D¦Ëý<§ò�qB§oÖÏÇ8d^ËkŒg¦›» ;×/rK`Ê_ûëUAIËòÒ�Nàâ!Š’@œß™‰Ý~¬nY©>ÙLL?©g¼ì•#ÜÀ;ª�gZ™.úiþ[a2èˆ.yi}¯çî~•÷?ýÌ _Ã(,*����IEND®B`‚IMAGE 2239 ./arch/ground/smooth/hillsrocky_S.111 ‰PNG  ��� IHDR������@���[a?���TPLTE���ÀÀÀÍ…?ŸQ,cDÙ¤-ŠV¿¿¿c2�1�NNNÒiùq�Ì�ïå‹HHH����c�333µµµþ¤��ÿ�§§§///```œœœ÷…9ú���tRNS�@æØf��IDATx^äšÛrã¸EQ )ù–¾Í̹üÿŽAE´D‰�åÄÓU“‡®ê•El(zU&/)!E�Áã,Û7"�¾ GØãÔLå;üùùþþÙü•oðïO)¥·„ Cgßò€È�cLâqjfí{üùùþþ ~ïþ{øàþE;¶?!ýáq §A �\Sbò85³ò)üƒóýý‰~óþ Ü¿ÿBüãבý)F�—“ˆ rÏ\íápjeåÓ‰öâŸïóß´¿?í×´ø‘:æSÿwïOH‘G˨ãÓ¨ò`”*6§VŠoÎwÏ÷yÏþÕüÊo^Ÿ+‘;ÿl\_òß<Æ‘e`–Q ƒÌò—72s`ò©Àžïózÿ,ùóëþ®ý«¹¿†o'°ÇÇQ„yó½7à6ÍçñƒÍ©•âC}"nµ�‘9ùç,Ôœœ¨ÿÌþ»|–Üù׺Å¿Ú_áÛ 2’™y�Ë bL)þ.§Ž\ ™|Ú3æ9»óâO¼hkîîOêÊþëê™¶ÆoúS³ÿuí[×—¼@.æþ¤ym4üÂ!’ÿ‰‘ÜH‚0 6ÏûîœL|ž^¹NN@=‘ùZûS6ýÏæþÛ¬|j%û^üÛ°~ $D3t]Žtc ¡Å'a{>PüÝv3''³ ÿ×’½?õçÑßpÍþÅ7ߌ ! ™ñý{�a戮çψàÝoò vÏw|ßíO¤ý?´ÿ!D¥[µûwû^8IÀ‰Ìø~xÿó„ÀÌò'ç~üî7yÛóÀñßùþÛÿ*ý‰BØmö_ì¯Àð "0àô÷}„óÓp`Fì1™#0û-NSêó`åïèÅïíþÈþfme÷טýQü쾿@4æôú€/<å‚3†�ÄÙoñ…p}œ¯ÆÒ§mPû~ÿç÷?bìõÇñþÅoîX|3ÐH޳†ï—t«Ÿ/…ÿ¡N4æMüPÿçö?æõö‡×¿øæsBÏ,A„e€ñæ®×ïºòþ<5_ñÎÒµoÿm^¿ÿA¡îOO÷Ÿ|ˆuyÉU‚0ý dÆ÷ý‰"œ¦÷”râeí¯åÛqµOF*ßíÿëãû>·¿ú"¦ïEXÆ Ì2 9‘×¿É žR—wÕ+¿¶ï²Qûd8ÚÿL¯Ìõ³ûëQ&'/AN"ÌìLò} k`8E¨N— 0ÄÙß”×ÿSûÔLÅýþ9áD¯ Zýuþ®áôÏ×Ïàê;0Kp^ƒø~y'O`æS~–GŒù™×:¶~cÎÄõ×0Ÿíðñ¯±?cÝ•Ëþ‡"gMö½�â¿ó}á~…/æ~0ægÞðU,¾õ£»¿@ ·7ðåü‚ýçWý«ù*ðþÆ»?£ÙŸ äŸéÙŸRLîßß÷Ó“·âä·ù.ÑÈÂ'Ç÷û³üœ¿p#�>}ÿêüªÿfþnÿëÌ3Ðì+\øEȾFJbð.?>cêÞ€úßEß¡°øâø~ åë6àü©ûoίúïq¢ºÿ‚ß!-÷_ùå t~(7p—§L@÷̾ÁÛn·ï÷—$šñg¹ÂS§^Ÿ¬4Î/ýmN%5'jûY¨üçÞ½ÐB€dlóæÇ©P|ÿü:ÿ‘¥Gó ù}ÀšÓ67âïpš³áDÔã{ØÂ/ôµ`Œê‹Áò·Š/Îù"i¼‡¿ôßAýšK`Q¾-9Õ¾¦ðj¨,¸Þªîùþ|ÍuË©Ç'/ˆÌ~¡õGƒo€¤òu¨â‹s¾°ŒÌü½é+Ïv¸j†O0àœ}À'/Q€˜Œ¸þÓ7@Œm¤|D‚>ì,|8çŒé²¤Tü¯ÁÉ R¼x÷Šï?ejŨ>5¦+¯-N¦<ç]› Ÿ#,Kÿ+pòÂöÇÞúù&}Ë>o½ï¼¶DÆ4-8ùæü™yJJ)®ü/ÀÉ‹ómú÷‚òWT¿YàÎ×�a±žïÏ\RNIbåN^é�2bûOšÀ½â›=°îà‡¦VçŸN!²Œ<þ™õÿíüïvÎfµ †ÁîdÒ?ZJzhyÿ÷lÊbBa´òÚ ;P}WáÈž°G©ÐÀ‰äû«þÙ~ùWû88ßîÜôª©_à?ûïÕÈ·¯ê»ù“þ�âÏÿ§ü¸ßVý·õt¬Ó|;ÑCþ–âO>é†Àùÿðýîo€ÚýœÅ˜jÚ«€çû™ž÷ç |½üiþ?|ÿâoÚýèß¶ôœ3þáü{Ä?û�WÒ/ðüYþËýëý1KüÛ¦~€ÜÿïßÐùüž¯G:ôÇù³çM÷ŸI¬ôþœÛý#ßMý�%bËç[”çþã~ƒ„ù~@Å¿ýî¨mPÔ­Ù¥öýBüÃý½r‰Ö ÐŸ"þ¥ç¯?@Ýÿ2»ŠºsÿùB!„B!„B!„BÏ·Wt–[ÚU_òù@OìW÷÷™œï¯ê¬¿  ÷œ÷|~ð÷}?²ú>ŸI¹ÂDr0ßîz¤à”î7Xò÷¡yÏç[èx? ?Ü÷7°¿Ï¿–m^àzÑ|û@‡ý�†ØI?¸&Ø_�ï_ó¿ëä}feœ_çÛºçç qœÞÀ~÷ûÙþݦf”_ùv2Oû²ý>_Õù~¸ÿ�Ïsݦf_ùv6ÏûlÌ!:ÞäÿÑ<×mRxþŸåÛ——è¸À9B÷ý˜Îû êIøË‹™rpKƒ����IEND®B`‚IMAGE 263 ./arch/connect/Hole/hole.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,c2Í…?�1�cD���ïå‹%nX���tRNS�@æØf���šIDATxÚÕ’Á„0CmØÿÿ‹™¦íAº§3ékÁ±ÇÿÊÝo ŠJäÛ *-B2ú¾'¡)5³ ?‘éHvòZëa8G¢¡yí%l ìŸ€àF d]¦m¶èšm›Á˜€³1\@· ÀoD@�㩤Ï| ¬¿ðC‹¡òø86©$Så0bšŠÕ]Ÿ+ீZ_¦Rì‡^����IEND®B`‚IMAGE 283 ./arch/connect/Hole/hole.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVc2Í…?�1�cD���ïå‹¿¿¿ÿI&­���tRNS�@æØf���¨IDATxÚÕ’á Ä ƒu©µîýøf%*2ä~]Æ,I¿µƒ-ü¯Ìì;`mÅü<ÜõÂh”¨-ÏÓ6i‚×A @ïTÒ]Jz.Ì�%@¼€+–¤&¹Å¾Eŧ«iÛ“a˜(_ðܺÔoľ¢ŽÈ“"W‹¶T äš*ª¯xo•B°½Š+özBøuÂø Ûñ{ LbăÉà†=†»½w6€ïú�|pö¿@@����IEND®B`‚IMAGE 282 ./arch/connect/Hole/hole.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,c2Í…?�1�cDÙ¤���ïå‹¿¿¿6€�Ú���tRNS�@æØf���§IDATxÚÕ’Ñà E+røÿ<‹"f›1}ÜI õzZjÒë‘AtiX}$Øj6Âp2äãy_vÀd=¬PY¹ª’²Ò*t ±.$JŇ5\_•+kó¬’dø‡‰@€~YEK(ÍņäÛí·q"ò†–E(yh ˆLˆ8Ù„-gÁŽyà, ¶¯ß ׂG^<y&Œþõ‘Ì „3o“×péÿÃ����IEND®B`‚IMAGE 269 ./arch/connect/Hole/hole.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVc2Í…?�1�cD���ïå‹¿¿¿ÿI&­���tRNS�@æØf���šIDATxÚÕ’Ù Ä E;“Ýÿÿà ¤W¤UÄÇ9”lM¡½þwŸ=©æ@¨®'Œ:Xýqm¡B(aõJ›„´ …ÂHbÀèc¸&=eŽYñâ-fX_¡¦jAÊ’5…e™¶’2V¨ýü…`䔂ú¬X³êÃlØ 7Ëë×Â5€&gÂ+ YüëÈà)ø‘°ç²Q†hÎ����IEND®B`‚IMAGE 275 ./arch/connect/Hole/hole.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVc2Í…?�1�cD���ïå‹¿¿¿ÿI&­���tRNS�@æØf��� IDATxÚÕ’Áà D£‚ÿÿÁ%¢Ó†ƒí©ÏÌàL<þf~l„³bºðê¶hÍDЈßÞÒ!ó™š(8D@P` 8P:”ΆM!jòÁhâà Ï€ "àg�èºjRQõt]‚]‡ø UHŸS̬ª6Â;9‡Û×ø ?¸H?ŸŽ…h…Dg/p¹KÉ]Ÿ;ùÝßä¼�HðMvû|����IEND®B`‚IMAGE 266 ./arch/connect/Hole/hole.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,c2Í…?�1�cDÙ¤���ïå‹¿¿¿6€�Ú���tRNS�@æØf���—IDATxÚՒу E±´ØËÿð¦õN2Öwi¸9T-ÿ‹»Ï{4?×'Bì>ÑmjþužÛÀT<`| ÖÚBF!h¢h²5Žy{f½VãÅ¿‘x…mȸRv;Ñ~ÔÞ‚áQN°£Ì§2÷R?Ì‚µp‘ŽÏ…2Àˆ “gÂÕ§ÿ“Œ {I$¬y½oˆ.;)����IEND®B`‚IMAGE 254 ./arch/connect/Hole/hole.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,c2Í…?�1�cD���ïå‹¿¿¿ËE†è���tRNS�@æØf���ŽIDATxÚÕ’ëà F[.òùþ/¼Ju[‰ñ玉D<‚&ÿ‹™=&2ÚŸw„XÝ!SÃHXíë|.ò8¬!hHš… ‘`¢ÑÙÌñ.ªŒ:³æÅ ÏP´Ðä‚¡DÔ+J¢‚¬Z°V£…PãÏ\°.ÊòµpLd*§Ìì WüøŸÕ_¿w Á¶„5/<™g¿¾����IEND®B`‚IMAGE 273 ./arch/connect/Hole/hole.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVc2Í…?�1�cD���ïå‹¿¿¿ÿI&­���tRNS�@æØf���žIDATxÚÕ’[!EÇ"/÷¿àÑ¶ÒÆÏžd�/×`2\ÿ‹ˆl…ÈÒñÄ`§;MÉ‘ ’¼Ý÷£C^…< ÔP±©‚¢Âj0P [cL!ªúA«•âá {ÀFPÑ °7h Ò0€¦Øü5‚ÓG²ºƒ¡<ŠèUWåþ $4¢åµrCÎåì[_ ×BHB93x~ÙÏl×g'ßýsCÎ+� Gùî����IEND®B`‚IMAGE 278 ./arch/connect/Hole/hole.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠVc2Í…?�1�cDÙ¤���ïå‹¿¿¿ç`¿���tRNS�@æØf��� IDATxÚÕ’áà „kØïÿ¾KF±®Î4ý¹Ï(á< nÿ €YÈ‘<0DÖCJ$ÕpyŸi`*R> Ö”ÚH¡RFCà¢p)ŽÞÌ*'Z­– #Q WHôÀ%jƒpI”л¾lÒÃ�—™²;úl×öjJaßS9§`¸®¯b&ÔµaH)TžŽ8ýÏdTúÍ€G†{Þ_CìlT«Ì����IEND®B`‚IMAGE 281 ./arch/connect/Hole/hole.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠVc2Í…?�1�cD���ïå‹¿¿¿ÿI&­���tRNS�@æØf���¦IDATxÚÕ’Q„0UÊzÿ¯±dk³ñs§IIq$¸ý/ª:%jÔ¿ßñºC¦†‘4èW}>0yÖÐÙ¸›‘±Q!¶‚Ð.êx ÙDo 98Ù3-°Û Šl ÃZÑ‚µåÂi<͹¢÷ppçZkL±•±€ÊôP¨S×)‚æGp}ªÂÄVÈT^™y'\qú?“š‰8SKß k>µPõ¨â±����IEND®B`‚IMAGE 472 ./arch/exit/hole1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE@@@�ÿ�aaa�Í��¥�G$²""!!!hà���ÿ×�d3�Š�‚B'LEªu��fIDATxÚMR‚à £­^½8öÿç^i=ºbGB@1Z/k=×wúKßrÑš#gÂ7—âë#œ [ÎJÎl3Mc$è€A 9Ž5=ý¦ÈÌ ¿Ž }唆WZpÅ¸Žƒ5 íÓPµt �Ъ ý–DfHÀÎIþNÉɳ‡<E±.‘ªÉZ£t§!ؤs›ôžƒwÕ/íóJJX°Z¶‹ñEsÖ¡¯c&B|¨¡}èä«„Ô&˜müG ƒžÅ{f$¶Qâi|íBû†à‡žÆ]B« †Æ0=‹E1‚ô>%¦w²áG{3'öuÛ UÐ# j44¼VnŸC GËf°ª~BØnÔæ¿tÎn›5j}njÛÓ´÷”Ït"ƈ†Ú¦úqî¿Û‚Ç%‰º0«‹“‰ÐEv‰ºêû5!qI![(¦;lýªaQ7Yš—w�eS%Í‚tC 'oÜ“«@&Ýw'XÂzø0����IEND®B`‚IMAGE 271 ./arch/connect/Hole/hole_white-any-c-marble.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿���ÈIDAT8ËÝÏÏjÂ`ðyV/^ ‰Ñ ‰ùcë,ØQDzÏËì«ä1¦µZ—B‚sùóãÛ]¸“tI¤¤Ñ«rº;Ú'þlbv<½Ö];¼:›[»LÖi’4p²wÀìý¥Í›¥‡*_T)¼¿ôºü£"Û”íGWà¿örºT¯šlµÁ8dÝÚ%Ë÷͸†,]¬ñ#ü¾›ÝÎ�;W@�h†ØÁ ”#o÷{8I=$²ŒÁp@ Âø/ÀãÁSä ‹kÜÆÝw9����IEND®B`‚IMAGE 194 ./arch/connect/Hole/hole_white-any-c-marble.112 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿���{IDAT8ËÝÐÁ Ã0 CÑ ÿá$½qÁœ´h[½(ê+$‹Ûö_�ø�ðmàN$à5¨¤ì5HV"Ct Ü5+4mc�1ík��¸\“:r)u 0½ôÌ §!e>rpòöI‹Ú ÈÉ In£ï‡üâ=¬žtkŸ����IEND®B`‚IMAGE 224 ./arch/connect/Hole/hole_white-any-c-marble.113 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿���™IDAT8¥Ò;A Ð90Tì"!äbùHp…\ÆW™c˜bvÒ,qAZ¿(.RJ:)ÏËéhÀófÀn6àµ0 8‡w.4àjÀ,å`q@ÿ‚=€À� òÁ¼¨@Ê 0�@ €ØŠÉJôÙ®WÉøÖÓ$�JÃG¡v@Žˆ¶ÖÄPRd�±ŠømI’Ø’ô BÀVuû#)����IEND®B`‚IMAGE 355 ./arch/connect/Hole/hole_white-any-c-marble.114 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��IDAT8Ë…ÒMnÂ0à9+¢ ’P%çWά@Ê¢{_&Wé1\Û$jAÉôm’ŧdÆ~P¼×,sÎ!º˜é9¾@[Ud%Ïš|¾ªCW¶¹ÖìXAÍ·ûº|áû´B±ØIDb8æ¨ ò�‡ñ v!+‘è£ÂVk/ÐZ¼ç�Üø¦Z±´ZãŸXxˆúªÍ®§I‡'�~’Ëõ|2Ó&n€ç$ì-__6¸�ûölz5|ßÌDÊ}W˜QÌh¤jÕ0,`™Ÿv¼‹ù(n,,‰þ†$ˆ- ×¶àškÕ9@Áw‚•_„¡�Œà¡A¬;BÝI�¾î4ðuG„ºÓ@JAƒ“9ÒÀ—“`ú@Zý�×Y?ç‹����IEND®B`‚IMAGE 308 ./arch/spell/Bullet/holy_effect.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ   Œ˜&��� PLTE���Ízó½xÿÿÿĪ,ÿ���tRNS�……!Pß���bKGD Lò���’IDATW}Œ1à CÍ@nðNC‡v&dàô4é¡9em*5™Šô­gÿß³H”ÅÕŒ!îè)‚ð…Zjûpc®`>’HÁµÒN+àaÙ�‹Ï7 Çe9A×1íM8NØ“bû}Y Íu]úÒæ>Цãu5ú6g•�ó|â¾p€ñØ8wö…����IEND®B`‚IMAGE 300 ./arch/spell/Bullet/holy_effect.112 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ   ûŸ5°��� PLTE���Ízó½xÿÿÿĪ,ÿ���tRNS�……!Pß���bKGD Lò���ŠIDATWeޱ„0 ﹪¡ozÕ8¡ž*¹“’×8ØñY{�sÔ´ñÀº£Ÿ/¶‚p,Ó¹¬{»ækiã…'âz=~Áºð*¡SæZÝá”±µ€FψúRp=CŸ­¦=Y¥L«BYsO&¥<Œh–3²êÔ› áGq¹q:Iˆ4‰ ����IEND®B`‚IMAGE 306 ./arch/spell/Bullet/holy_effect.113 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ   eû ��� PLTE���Ízó½xÿÿÿĪ,ÿ���tRNS�……!Pß���bKGD Lò���IDATÁ±uC!0qO^Ÿïáð˜.}Ì?R¨IÍÐm„YÌ ½Ó{�Â9œ“ö^·½×‰IzzREáÙ<;÷Þuï]9Ïvž-x ¡ŽXæ\äùð|^#XK‰úÛ§m`Θ¥&Ñ»6Ö îïÏ>qηwb]8‡ÀºW€ïŽgƒ¸ žÍ?¦;–Y>˜����IEND®B`‚IMAGE 232 ./arch/spell/Bullet/holy_orb.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEï­÷���B9�{c�„k�kR�BBBÿÿÿ„„„ÆÆÆ‰t¨v���tRNS�@æØf���xIDATxÚÕ’Áà Cý€Öíÿÿð¤hœ ²´]6#ÂŽ’èA"k$à}0¯ûð“ ‚ÖÕ<dµ`ÃM~*ÅÀQŠIâ´}¢Ñк°/.õÕÄmöM½rù¹¹’¹¹›y¾¹Uô‡xùíÞü·Ì@����IEND®B`‚IMAGE 186 ./arch/monster/humanoid/Arabic/holy_priest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ðæŒ���ÿÿÿÿ×�Ò–ˆ[���tRNS�@æØf���VIDATxÚÕ‘1 À0 _òÿ/ׯt”=tiÑr‡ Øþ—3ÐÙaXÀéðaè2_OótEk!Œ,É+8ò‹%àô‚à½`Ø+¨\"œ/ç¦ê¾<ö ����IEND®B`‚IMAGE 187 ./arch/monster/humanoid/Arabic/holy_priest.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ðæŒ���ÿÿÿÿ×�Ò–ˆ[���tRNS�@æØf���WIDATxÚÕ‘1À ÄB\þÿå&Š:^2t#n±Å‚ÆÎ3úÝz†§gxb5$_Wû'ìŠÕA9Ò8"p*ÀéáûÀ°/P\ž?ßMÍ}¼ºq?Œ˜9¥����IEND®B`‚IMAGE 187 ./arch/monster/humanoid/Arabic/holy_priest.311 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ðæŒ���ÿÿÿÿ×�Ò–ˆ[���tRNS�@æØf���WIDATxÚÕÑ1À0AÌ&ÿÿrÎB)Š41–iv KŽÿÍÝ×:­`ê9þÀÐ{Á]ß/Õ¥íÄ^¶×F( éA€é=ânìΗï¦Öyó�:—Ssð}����IEND®B`‚IMAGE 212 ./arch/skills/Skill_Tools/holy_symbol.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷µ÷��ÿ1Rµ!!���ÿÖ�ÿÿ�¡)‡m���tRNS�@æØf���mIDATxÚÝ’1À 8óÿ'W¤H,†N­"åd'(×€êÒ@äëìAÂÆ@$ˆB“(áf«®ºxŠUÈ &è"HÙ!±C&0Ö´�A«»èªò#ŒUÈÚ(öç ·@;:8Þäu¬ä=>é����IEND®B`‚IMAGE 287 ./arch/skills/Skill_Tools/holy_symbol_calling.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 8'•|Ÿœ���PLTE������ …1R°&½#œìšÿÿÿí †Z���tRNS�@æØf���bKGDaˆë���sIDAT(Ïc` '@B`d`’HEQ4 &Š&" ˆªš! 0‚µ"4ˆ¸¸ º8"”††І†"ŒiDÒ2TÅP1 µi¨îPAuºKA~ Dñ X€Dt!ABaJU��„Á[Üøv›����IEND®B`‚IMAGE 287 ./arch/skills/Skill_Tools/holy_symbol_dark_path.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 7)Š£›���PLTE������1R='N7&XG;«ƒfÿÿÿ¾¥Œõ���tRNS�@æØf���bKGDaˆë���sIDAT(Ïc` '@F`d`’HEQ4 &Š&" ˆ)šª! 0‚µ"4ˆ¸¸ º8"”††І†"ŒiDÒ2TÅP1 µi¨î0AuºKA~ Dñ X€DtaABaJU��fMïý´ ����IEND®B`‚IMAGE 284 ./arch/skills/Skill_Tools/holy_symbol_great_virtue.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 5�…ØTº���PLTE������1RÞÞÞäï9ÿÿ�ÿÿÿŽßo_���tRNS�@æØf���bKGDaf¸}���sIDAT(‘½± €0 ßð|DÄ(DbƒLà&û@™8TH—'ßëmàÏá2`06 ”‰E^FöêÇ�Œ”“]PÎd>û [ó­µk¤8(@ÚB‘ŠüŠ=jì175˜<Ü“/AÁÊž?ýtn¥Ž²Aöu����IEND®B`‚IMAGE 286 ./arch/skills/Skill_Tools/holy_symbol_probity.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 71æ06���PLTE��������ÿ1Rt·=Ðg³íÿÿÿVèîæ���tRNS�@æØf���bKGDaˆë���rIDAT(Ͻ±€0 å Pч `‡ @‘Üdÿ(§‚C埥“ ü).X0˜ ”³< ÅÏ)'»Aµ’õê'lÍ·Öz¬‘â`Ò¡Š”å{ìQb¹©Áäa L׿�e+Ÿ~ú©n­óŸ p¢M����IEND®B`‚IMAGE 287 ./arch/skills/Skill_Tools/holy_symbol_turning.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 6�®õy���PLTE������1RR-–zV½¨†èè†Ûÿÿÿ‹s24���tRNS�@æØf���bKGDaˆë���sIDAT(Ïc` '@F`d`’HEQ4 &Š&" ˆ)šª! 0‚µ"4ˆ¸¸ º8"”††І†"ŒiDÒ2TÅP1 µi¨î0AuºKA~ Dñ X€DtaABaJU��fMïý´ ����IEND®B`‚IMAGE 308 ./arch/spell/Cone/holy_word.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  –¢²��� PLTE���oE‚¹—Éÿÿÿßp’���tRNS�……!Pß���bKGD Lò���’IDATW}Œ1à CÍ@nðNC‡v&dàô4é¡9em*5™Šô­gÿß³H”ÅÕŒ!îè)‚ð…Zjûpc®`>’HÁµÒN+àaÙ�‹Ï7 Çe9A×1íM8NØ“bû}Y Íu]úÒæ>Цãu5ú6g•�ó|â¾p€ñØ8wö…����IEND®B`‚IMAGE 300 ./arch/spell/Cone/holy_word.112 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  æÈð=��� PLTE���oE‚¹—Éÿÿÿßp’���tRNS�……!Pß���bKGD Lò���ŠIDATWeޱ„0 ﹪¡ozÕ8¡ž*¹“’×8ØñY{�sÔ´ñÀº£Ÿ/¶‚p,Ó¹¬{»ækiã…'âz=~Áºð*¡SæZÝá”±µ€FψúRp=CŸ­¦=Y¥L«BYsO&¥<Œh–3²êÔ› áGq¹q:Iˆ4‰ ����IEND®B`‚IMAGE 306 ./arch/spell/Cone/holy_word.113 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  á¥4$��� PLTE���oE‚¹—Éÿÿÿßp’���tRNS�……!Pß���bKGD Lò���IDATÁ±uC!0qO^Ÿïáð˜.}Ì?R¨IÍÐm„YÌ ½Ó{�Â9œ“ö^·½×‰IzzREáÙ<;÷Þuï]9Ïvž-x ¡ŽXæ\äùð|^#XK‰úÛ§m`Θ¥&Ñ»6Ö îïÏ>qηwb]8‡ÀºW€ïŽgƒ¸ žÍ?¦;–Y>˜����IEND®B`‚IMAGE 308 ./arch/spell/Smite/holy_wrath.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  !3'P3��� PLTE���.9=Cuˆÿÿÿ¼AMØ���tRNS�……!Pß���bKGD Lò���’IDATW}Œ1à CÍ@nðNC‡v&dàô4é¡9em*5™Šô­gÿß³H”ÅÕŒ!îè)‚ð…Zjûpc®`>’HÁµÒN+àaÙ�‹Ï7 Çe9A×1íM8NØ“bû}Y Íu]úÒæ>Цãu5ú6g•�ó|â¾p€ñØ8wö…����IEND®B`‚IMAGE 300 ./arch/spell/Smite/holy_wrath.112 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  !2P`¥��� PLTE���.9=Cuˆÿÿÿ¼AMØ���tRNS�……!Pß���bKGD Lò���ŠIDATWeޱ„0 ﹪¡ozÕ8¡ž*¹“’×8ØñY{�sÔ´ñÀº£Ÿ/¶‚p,Ó¹¬{»ækiã…'âz=~Áºð*¡SæZÝá”±µ€FψúRp=CŸ­¦=Y¥L«BYsO&¥<Œh–3²êÔ› áGq¹q:Iˆ4‰ ����IEND®B`‚IMAGE 306 ./arch/spell/Smite/holy_wrath.113 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  !1É1��� PLTE���.9=Cuˆÿÿÿ¼AMØ���tRNS�……!Pß���bKGD Lò���IDATÁ±uC!0qO^Ÿïáð˜.}Ì?R¨IÍÐm„YÌ ½Ó{�Â9œ“ö^·½×‰IzzREáÙ<;÷Þuï]9Ïvž-x ¡ŽXæ\äùð|^#XK‰úÛ§m`Θ¥&Ñ»6Ö îïÏ>qηwb]8‡ÀºW€ïŽgƒ¸ žÍ?¦;–Y>˜����IEND®B`‚IMAGE 147 ./arch/weapon/artifact/HolyAvenger/holyave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���8IDATxÚíÒ¹ À@ Aú/Úhgw0ÓŸ€ÏÝ"øøù7®üD>Õ/÷ÉýXù2ªò€Gë´��\2cÊh����IEND®B`‚IMAGE 148 ./arch/weapon/artifact/HolyAvenger/holyave.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���9IDATxÚÝÒA � A§ÿ´?h@½Ô\—ntý/“¹~‡÷’ŸÐÏý>y-o%•ü*>àèl¸€�^oo`0����IEND®B`‚IMAGE 154 ./arch/weapon/artifact/HolyAvenger/holyave.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���?IDATxÚÝÒ± � Á\öš.Ò�n_±ÞRêïx»—+Ã~š¡Ÿ²Géž´Oô~²?G~,éÔ¯ã>Á€�b �¡����IEND®B`‚IMAGE 162 ./arch/weapon/artifact/HolyAvenger/holyave.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���GIDATxÚÝÒ1 €@ Ñ}¹ÿ¡ÅÅrÉ·ý)†)2þ=/oqçmùMn£Ïäžõ_ܰ6úÝêëFà-o%•ü*>à§w�Ê€�fÔ¾í����IEND®B`‚IMAGE 167 ./arch/weapon/artifact/HolyAvenger/holyave.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���LIDATxÚÝ’A � ÃÿÿhÑíj+‚-xJÑŒ oÜáÌCrQñœc?Šs<ÉYé…à忪ÀÖûº`÷H./úFÐ~À§ÓÓ€�jÙ@à����IEND®B`‚IMAGE 170 ./arch/weapon/artifact/HolyAvenger/holyave.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���OIDATxÚÝ’A � ÿÿèÀ›.ì­ » ºnž8œÊ:s=÷Ös>šcú£9¦~ûgxû\ÿS ¹äþ€•¯M¥Ÿò>Ü€�n8 Ê����IEND®B`‚IMAGE 174 ./arch/weapon/artifact/HolyAvenger/holyave.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���SIDATxÚÝ’A À@;ùÿ£[ØÃ²:çV5ˆ×¿„§xrUÞta ïœ½éwÿ7ÿÊq´ÛSû·ÀüC`ñ®½0òqHl>ÑütÜå �rSûˆ����IEND®B`‚IMAGE 180 ./arch/weapon/artifact/HolyAvenger/holyave.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���YIDATxÚÕÒK€ P÷?´ÊJ!´¢t7¿´iù´ÉU÷5L½Z]ÒžñVý^÷‰ÜïÂ[í·Oœ¯÷ëÙ~^D¤÷Ñ$¦ü)ÄPQ ¿ZBP~ åà�rw&î ����IEND®B`‚IMAGE 172 ./arch/weapon/artifact/HolyAvenger/holyave.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���QIDATxÚÕ’1�09ÿÿèl6†Å¡e¨‰g…A=%$wÉÂ/aªèÀµÀYßÏMÖóÓPúa?4~{Ä|à:çÆã±?0`‘üKa@_ë�Ù��lÆ1oå����IEND®B`‚IMAGE 164 ./arch/weapon/artifact/HolyAvenger/holyave.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���IIDATxÚÕ’1 � =ÿÿh¡XÄ[:Ô€=“fp4qW „OÒ@ø(à˜¿)çDæÉÛöCûO!—w3›Ù' êüZ ÅÀ�dÔ´Nµ����IEND®B`‚IMAGE 155 ./arch/weapon/artifact/HolyAvenger/holyave.11B ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���@IDATxÚåÒ!�0 BѽÞÿÐó%u[†¨ù"XIÂsxqÉÿ—ü„|Ò±ŸØ-oCŠvˆÔl€ÎyFÀA�b_Š¢š����IEND®B`‚IMAGE 153 ./arch/weapon/artifact/HolyAvenger/holyave.11C ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���>IDATxÚí’¹ �0 }Úè,|à•–õªwÀî†hÂçg<¦ñËGû¡ý–oM‚å§äádÉ÷±�·à�^™J����IEND®B`‚IMAGE 445 ./arch/monster/angel/holyghost.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ZPLTEÆÞ÷ïïçççÞççÖïÆ„ÞÞÎ÷Ö¥÷Þ½÷÷ï÷÷÷ÿÿÿïïï÷ÞµçÞÖ÷çÆ÷çÎ÷Μï½s÷Ö­ï½{ïÆ{ïçÞ÷ÎŒÿïÖ÷ΔÞÞÆ÷ïïÿïÞÿÿ÷��ÿ¤y½«���tRNS�@æØf��IDATx^½’éŠ! „+ñ¶ÏcÎ=Þÿ57Š4CFöÏ&vE™ñ§Ê‰ 8`  wž3¹ÂGá7)‹…ƒÐ;‚ð¤”RÊÑÀã[Z>”€c43MXð‰# Ê ÒÓÐWúØE1çD¬O ãÊü7Ì5‰>á:YìÒ³´Ç ¯ ³"`>;(‡\%‹ô\ר2BsÂe§3`âO™Fà±óCÈR¹Uœùc¨e˜tÞàÁ²Båä¬RºÀ\ÛÓ÷D+–6?» ^+±#+ä^³6õVÈ uB@’ôS|KVò¾ €µñ½z4ÜúŠÂuð/^½²'¿t6X¥Õ|;¹¾Ã¾ú_ë�! ˆM����IEND®B`‚IMAGE 187 ./arch/armour/shield/holyshield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���²""ú€rÿ×�ÿÿÿ¶8æF���tRNS�@æØf���ZIDATxÚÝÎA €0 DÑ&æþgV¿”(t"7ö/ºÉch[+{6�Û½!°LwQ?Šó‘ ®�j"Ä� ÿá{À}˜@‹P€BpŸî:îµhl¦q–¡ö7˜����IEND®B`‚IMAGE 224 ./arch/weapon/sword/hooksword.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���™IDATHÇÕ•Ë€ D·ª KK=6a'ëÁx`FGîï… É|r‚Øh4§â„½Šº5$ Úš¢€FãVák�Óq ˆ ‚g@\þ/x ¬+ÀÌÄìß÷ÄÌD}תê ʶq<Àî꥕ÛÑÊñ±É >žmÒ‰ÏØdŒ/]ÖÉxÚ ^†[Ðu:ðmM¼yv ¸'pbÌmR����IEND®B`‚IMAGE 183 ./arch/spell/Wand/horn.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿ�ÿ¥�Ÿ<���tRNS�@æØf���\IDATx^¥ÉÁ €0 FáS›AJ›ÁŠcd q�©ÿ”ÒDAð¦ïôÁ£?¥êõ/Úˆ­ÛD2&ZÇîPàpTîÐ ’¡ì(&æP«lé +ä ` ŠÔèk'>}ç³¹F¤����IEND®B`‚IMAGE 167 ./arch/spell/Wand/horn2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿ�ÿ¥�Ÿ<���tRNS�@æØf���LIDATxÚí‘A� Ãdÿ´ÎÔD:=Ù–8~ºhyøˆ8*Ô`Ŧƒ±CBí¸¤Í€|5Pn $ÎkN´ñ£™Ñ€�ë'«õ����IEND®B`‚IMAGE 195 ./arch/spell/Wand/horn3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vîv�ÿ¥�wãá���tRNS�@æØf���hIDATxÚí‘1 À0 }úÿ£K¥ÐÅn†®0Ä`q7¤þØ_‘Øtƒ«Sä)“&V7 yøè(RíMáVl¤Ð!=´AG(­ ’ÅÝ!×Ü"CDãÅSsX©“O¹�¤„=t»ì����IEND®B`‚IMAGE 244 ./arch/spell/Wand/horn_base.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ"16óô]��� PLTE���¬¬¬íííÿÿÿ¥¹r���tRNS�@æØf���bKGD Lò���TIDAT•c` "` 2ÄR¡ŒÈ™FX*”‘eDÁÔ¤­„22C!4ã¬%PÆÒƒ-k˜ïÀ6˜¹ bLê¬H¨M˦@í΄ZÀs %��ÜØŠ(����IEND®B`‚IMAGE 246 ./arch/armour/helmet/hornhelmet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaàààðæŒ���ï§_ÿÿÿ@@@¿¿¿wÞ°Ù���tRNS�@æØf���ƒIDATxÚí‘1à 9ˆNXÿp9MŒâ"m²Thw€ÚoBq«‡ø”X[ºk ¾ïøLpùy l¦‡µ­‚)À}÷g€›þpM;„)-‚áÖU@zƒ#_˜A°U ¨uÐW!òeAR—Y9&&Ûíwa³Û1¾â É+sô6ÇV����IEND®B`‚IMAGE 2785 ./arch/monster/animal/farmyard/horse.131 ‰PNG  ��� IHDR���@��� ���¢~„���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÙ 1¥bZ�� aIDAThÞÝ™KŒd×YÇçq_UuouUõc¦=/ÏLlù È†@IÁv(BÀ ±FŠX€Å$ $¤DH 48";J EF#Û3ãÌŒ{îén÷£ºªoÕ}{î¹,f„�Ô·Í„osWçÓÿüîwÎ÷8ŠÿGöɧOëǡޞd%Ðfú>Þ¯| Ž=¶ýìœZüµEÝœï+wóNjÒÃ8Ñß'›=;ì&íg©�À*pâþw�¬ÞÚ.Nm-NÃcIøÇñú|ã°Ž€ø½çŸçÖö¬Ù6¯LÖækk4Gà7¼¿¹ŸTð›}߯«T³mð�ˆÐ 4(ýÔ¹«»Ýé ÛT‡ÿ Êþès §³r)3ÁÓ½þ³RëÌgó“M1O‹ùþûéþk…µWf9wc˜^H±ßËÏ~âÉn!ý©‘gÞÞÞ?þ·#X> <®àÌéÁ¨ÿÔJŸ¾/øîæUÝÐ"žxdHßÈÖrkbH:o¿;^ŸP~öêVyùÈ# IûÅÝ´ül¤ÔÇâÈ?á{º'…*òÊC;ñIg½ªÛ¨ý®®ïxZ]þÓþ›Ã8¾¡uo+&©a$hŸ“Òûi¿å‡"'—”–Á4Ëi–¹õ¹S)å‰ÅnÈ3'99ˆXL:<z|ˆ¯`™ŒÙÝÙfi´È‰å!»yMã÷†¦”ÃÑЪéÿ~U˜ßõ¥L"ßG†]„òhÛ†¨×¡­ M)EwezÚ[L'«¦2?ê Ñ8çJ!›YSÌ3©§üè¸V¯”G¨<¢@â·§˜g¹ZÛØbœ–G O;Í#KC´§iG;ŸSdS¶Ö¯ÑZGn$C/æÜÙsÔ·ÖéeMg9”Ÿy¶7xù¯ÖÖŠ#preôãe^þñ•^²2Œ±„V“a!ZXÀ6 cqéR)”0´6BhÝ8×SئÆ3ZéQ©�DD #´‘ —é&–åå{tŸ•Q‡¨PK]¤äÙ„ÀÓTR4ë;¹lwwÅÊéó$^ƒßbÔïÿ|¿Û¹ÀÚÚßUT ø·V{Á§~îÙÇÅ ŸP9ùlJm ¤¼—”ÚÆ¢1?q‰¥µ†N'Â"¤RxžF ‰R­5R´áî]EJ£ƒ­5žá{ÏóèŽ!<Ÿ¦q8gÑž& TÛXwñÎæþ_¼¾Ïûó¬ŸDj(šR¾3žÓé/F­RâÒ»s$0ðýEkšOx¡Úåd³9yºOmÁ‹:„.MS#¥¥×Ñž¢i4Ýx°SƒÉ3œkq­£E ½�!ÊóRÑA#Zð#Ô%yºG>;@ùU™Ó4­pR´/EþÂ…mÞ�ä^Éá›WéÔ¨ó¢»¼š]!”øô‘Ý2ËŽæä,/ØÞz›@*ŠÂ¢£¼0$ hêÑ´ª±M…ö#´êÐÃsr¹ƒ­-I]æH©ãQÜGkºiiPÔuƒ±ElNk 2)Ë9Rº¹@}iç`÷O¾xi²y_ž®\Iy«lóMX¼ Œ‰gÎÅG@+M´WTlŽ ‰¯ðdDÜ Iâ„n·‡hœ«˜g»”#éÅx~¡tÐ$#d‘Ó¸¸ÎP£”ÂÑP×%:Z@;¨ªÏ÷è—ÈÓ}ÚÖѶížhíÞ}ûö—^|3-¿‡L·6ã¯U¹ý|íÔ/x^ðOG@)Õ)jë™îNZ–}KÇŸ±¸ªéÄ}¤TX“QäSòÒ†HÏÇT9v6A{~Óº–&O‘J£ý�‰ÃÖyž2Ùß%À§íy ãꂽt2ÉŠò ܱ_|q-ýߊ¬´©ùƒ,Ïÿ²Q饣�¡sV8`sKHS888 7(ÐU-Æìì­Óø1#çÈÒšªB)¥4B€ò<„H-ñƒIKK‘0lÓë™{E^+Ð^‡¨Ó ÕÔUñâ[¯m½x!MSaÞØOoi)lê<h„v ŒZÁ‘Í3¦“1JJj›óÊ• d´y•‰XXâýá1‚Æ–4M…kk\ ³è°‡PS—ìM&Héщz̧SêÚQ™©õÕ¶´/]HSûA4‡PY¤!€©á¦ið͹²š“L˜Ë×/ßÞ½–rªµµõgŸ\âì3iÑQ‚Ð!®.°¦¤®+„RXg ”DX‡1%EÝRÕ ¸µ­ÈŠ™Åm·íR|íúÕe @Öâ´¨a]H¦Îr¶( ás® w-åÏ€¯·ïTüL~—ßž»wêɼõO+ð„£­«{¹\kü0íQ×UY2™Õ¤Ù<-è&KŒ§Óݘ¯_¸ˆû?àÀ�m{¯Þi Q¶– ²‘5\ß:˜ßÖî/yyÞH7ùÜÍñö§V¶`µŽºžeë¤SÂ8dÑ C]ÙÉþ¬}m3 Ès=xúÑ€N¼°såÖõvwÆßú ûìÖÂÿ1añ@k/\%=†+gxëß.s6fë¹cÜüÊÚYs·‚/oT|ec›•ÑN¹²2àe 3Ãä‘î¬Øoïsøó8¿2‚áB‚'ª\lùÓ¯9ê‡@ ¸öÞ18¿;™u´­Å´’mÕ>¹*/Þ:pÿÓ"n[nÿ[k2Í€ €Ž†NäCÒ‘ÌæS——éÕ¯²§ÿ°" Ð(÷ή]jÊ9:dqaXá²W/¬M̃ŠxfD¯°„ÓŒv^9a¬Éƒ€×?¬¹Úal Œtµ'*è‰íŠf}¦8pýÝÔu.½c'c„þŽeüîŒzš³uc̵À¡" „\@a@MSµŽëªßY_ßþxjÅV¢Ú÷#b–ºG£å7pqë€Ï}öŠ9“‡@ y ¥…´ùÝw¶îê_Î ™eùíïŒçÓ÷3S´ £ñ¼²À¿øØ­9åìC`$1­d³²´Àé¢å²RÞ7½@ÜW†Gk®¡MaJe7€×k©Ë)¶¾ßå=w@éNð÷^L/’ó^oi0\¾ÖoÕ$IçýD€KÀ àâVi¯û÷3Ïà ƒ\¶¼ìàŸ%”¥Íæ|Ó(¥ÞÊ?>-Ó¥@0 ÕÓÀúý¤XÝ`�@µoû>éb¯c¥ö[RZ%¹¹ô‡aØ}êAXéÅÃ'<˜Ü?’ɇõ÷ß ��b-ƒ•ÑJÐ 6w6wÓ,ÓZùÏ=è3[ »ÓIh€`x½H?è›Å{µ÷$º¨Ûžj›O(¥¥þv'+6U[v‡Iò«Ã$.÷gó×û(ùŸlGá–’ÞÙ²2¯Æaðcý$~¬¿Øyõà ?T�€Yzƒxð˲ƒlþ/'Ž/]ïtz§­µçÝàêþ<Ï5Á™Õ¥ó½(þ¼7ô¯oí¤¯ô»á¯ôuwq5I¾õnšš‡ �­CÖMýëž§~xi8|ýÆú֛Ǣî7Òtö·Ç“»6o|åU†jžù¦oõž/TSDٕɤš�þ‘ÏWU¢ý����IEND®B`‚IMAGE 2833 ./arch/monster/animal/farmyard/horse.171 ‰PNG  ��� IHDR���@��� ���¢~„���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ�� ¤IDAThÞÝ™[Œ%ÇYÇU}9§/ç:—³·Y{;¶7k'$ˆX1"ˆ„(A ñ x� å-Hâ—ñ�á E/EB,?ƒVkb­ Xrãu|ÙÝììzngfΜ[Ÿ¾wW»VPd”ÙõúB>©ÕjUéßÝ¿þW}õUÃÑC~h}°ò çN¯óÖQ;þüZxê¡•àwNtü_™çi{œÔS@0·Žÿwaµck+ÞñN-ùÃÃÙo_ßϾ�l»ÀôÖyûÍë~Ð6“$ºlüÄ�x~€sõµQp¬Èc¾¢ª³qQŸÞl~ÓÕÀ¶*ßu­yÂ÷|ø÷[ò·û°ëëXŸê­‡¶;pCÛŽ¿~ñbþv'ŽÚñìñæ¹ͧî;¶´¥gz.ZØÌKÃk;’,£áX<xb•yixeÎÓñ\Á à2ð2°ï‚ý‹÷ß›Ý7èÛ®¾áérûžy5y«{~¾½€nËç”gÛì·ûóÂþ#–¶ýV¸¥ëú¿ãùìùÀ-¾ßm5GðäËù;à¾Aÿ×—›þßÝ»Ü V|¿ž1²²: ì,6e­hº‡QÊÖ4ã…{&9…ªŒ‹6k¡TÝ è½Ü Wê‘#xQëê¼A<kLžå“¨]×ññÉbqÿtQ>\Õêœ×pîq,Ùï´Û°½*p[Ø®g´Q¦L¢Xšt;Sê¥oo-žº2Þû§(:ºÛŽ4~c}ÝKì곩húÝ0`ýÌÛWH²!f¸Éh´Íñµð‚.aÒéu¹çD͙կ\{ƒƒñX,M±~ò¸ ŸÁ m9NÓAU¡PÕ™Rן×e6ÔuY ©­uË¢ÙóËm¢×íQÕZ) høÔJ !Ñhm×gUQœ-²òs–ê¬ÃüO€ú®œZúÌ<I­žÏEÛ ¨”fs4b{V™Oùºa+M¦­UUbY ‚ Ášöq ŸtŦ³|ayX¶í4:#›©‹ ¥ WèêÛ²°4 ¿×Á˜aÛ´—–ÐJ1ÚÛEÚ¶ ya».®ëb„K¸<0ÈÚ{Éì÷ÖKÿ±µ?~ú®XùÅÜjöã|Ÿ<¹²qU½pýàÊ<ç|’NZ?ùKýÕÁ£ ¯!0¤…±]œ°‹Îh¶a!–maTA/:Ç–ÇrÀXH!–Ę®ë …¢V ß³ix=’h‚R U$`JŠ$¡ÎAèÓ[Zá1¯ÍõÉkÇF¹úðÌ­4ýödVó—Ó†"¸º³³»9NÿæZÎ?¯=¹¾÷Dú„æ«uýf­UUP×>ª,¨«¿ÝÅó|, ¨K ,;Äøª*1F¡«A ‰”×p\—<]`»6¶cvZäªFkhyº ÊRÒ(§ÙØBâP‰º4ö\wyZ–ûwÀ^’µ’ƒ,[”“ôk×ü- ßlÿÆ‹ÓK¿ß þpµ³²§”úrU•¡çÔu‰ïû„íŽçáÚ6ŽÓÅBáX‚º®ÈsòŤ…Óô‘hlÇÆï®âz!rº–¡VÍ–‡­Œp±¥+ê2#KgL ­X¤ 4ÞšlˆUJ~,€#­› ÷cÓÙøžký'ÆúV9ý¹ëÑâA'}¶Õ cmäG›MßUN«»Œí60ÆÐl4±‹ºX`ÙRHÊ<BU)¶ãâ4·vp›-¤ÓÄnx I‘R©Š°µ„ç…8®‡Ð ­ ’hBœGÆ /îÖ(#•¨Í?§JmÝ�Ò©Ÿ©Ku1ŠóÇáÿ¹X:(êªöóU sŒþx;¼Þà4i<§*2ŠdJ¶8 š‘Â`Y]åHi)ÁõB^›ºÊÉ“9ƒå:Ëe6› ŒÂ²],û愚Æs†»›ÌÍ0×§€ʵíÇ“ªÚ¸+�’¤Œã,¿ L~\ßÿœNM\½08îûaÐ~TÚ®Œ‡锪L¨Ê˜(:¤Ùlàùm0`ÛÚ(¤”¸^ˆe;¨ª *"ŠlN­ ”tÙÛß#àJ¥mвd´¿ÃÞî !ás …©=Û~bQUWîÚRøvâÉ(ª:¯¿µˆç¿:ŸŽwqIØí’f1‡Ó)ýå„%®KÇh£Áh”*µ�)Тù”ÙbÊÂØ¼píÀ袟þH'3(­IâÛéb2* ®RZ”UÚ¸«µÀíÆ‹­ËW>¡>ü¯I²8—d‘„Gš,(”&« e™SäÆHŠ<Ak…QŠºVØnéx$YÊþdÂ÷®îñêˆ7 žÖ‡‹—ïùô¹{WZ®M^ÄX6ŠYIUÄ]#ïj9|»qå æC+މ‹Ïzž,¢ ³yÄÎ$&-4«=Ëv0F$1i’¤)Y^%“EÌÕÍm¾»±_^Úáü®âkÀŸÆe¯aë:FÄÑ £1ÆâéKJ ëª7ðê{æ�€‹ÿµuqe•?ÿ™G>ðÕ8ŽV_ßɹƒZèí½þ\à4ì´(\‰ö¤2®R'UïÎóñîŒK‡ xòV¹ p xöÊpŸh»í“ÇÙ„\Ø‘$kÝZù å{:�¾«©¾dø G÷»í/ –r®Æ0„í-~÷“ÉbkR,ì¯åÒ ,:ªÃœÉذìéêþÖ:; è¬Û?÷ð9&û7ØâCfW?,Ïó÷�ÀßïS|e²ÿªªµnûRz®Æ.ñk?;ùá†É¬<ºævΞßÅ667…J¦b´ÈVBjn¾¼ª#¥øwc×%Êò—&q™Æ…¦Ð˜û;4?²DxÇYæ¥ht¾½Üí£YÂö(fsT¯XGÀÈŽê€wÀÕ1—g)ýÕAÍØn4ݱ–­·Uû/Îug´µ°Ø/PV#¶#{À˜½o�Œ†LwççÄ ^¨”å."}æíhîÖ—‡ãᥭýj![ÏUv«š•ºiÀò k¾ÅÜñžxêë1y ðÜ8.êZ±t;;R?®f‹$½‘–L·¦‹¿z}sxµ†XBdCž¿Ÿ��zU%íxiTÔ;ÑM‹Þñ†æ­E\”8 w;µœg2Ã÷HÀ+ŽÍî’|¤Áÿ0æõeà;ÀUVª›¸#e»íaNôúË)z¢ª½8ÉtY÷´ ®ôÑ>î»å€úV!U� °ÕoZçÚиSÁY­Ë=nYÖk»ñn™k¡$ä.HÃSÉûl¼é‚6`;0 [ý‡JÜ©X³|°Ûîô-ÉFÚ®YýÚu‰&5ã[°ß7�„'hõNÈͯ®F³©ŸC÷NéÙ–ûÉ(Iì݃Ý :­^c°4h´ly[®zWæ€Ó§ûë"5äY¾iU£ß j±ˆÿ¸tròþ“Ç¿,1_MF=ËÔókívh´:}8=üÁ8Õê¶ÄÞé—ÿð©S­Žñ¿b„YÞO²o;³ü©¥Nï3'¯¼q'à}Ç—Ï !ó‚àÂÒòÒ7€©lú_h{ÁªúëÀÎmYé¬Ð…\Ïêâßt·|ÚÖòSš7†óÃóuÍÞíêMâôÐGœ÷¥ý/¯nî_[û„ÖõÏãȉÓâ/K­g·£÷?Ö©����IEND®B`‚IMAGE 332 ./arch/construct/house/house1_east.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE8��B$���P)G#ôóÍ1," C"% /, 6< 3qK���tRNS�@æØf���ÇIDATx^Ž à C›„_ÛýîÚœ5‘2P …J~ØÙºòJ ¼¦ @š0] ôõׯ�RÜz%(bR¿þ�EjJU?õ­H½—À¨˜'°UüM`±Š˜�`9 ­f�°œ Y…“%/Ÿ ùûº\BxiQöï½Æa èÊ6ƒ6ûp�xk�Ðq†±1ä\H¡(Þº¸ ¿”B}·vîOê¿]ðï�ð@{{œ»ó �d€|àî3©ÿg>ï”:Ð.����IEND®B`‚IMAGE 329 ./arch/construct/house/house2_east.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE�����t��…��›��º��Á" % , ,3/P)B$ôóÍ���ÿñ2´���tRNS�@æØf���ÇIDATxÚ’Qà CÇíØrÿÛ—DbA5”VòÃÎG]²€g´�”€éÐ×_?)PŠ"‹›füt@R) üY$MÄ%*¹*‚!«X�ìfâÝ �v3Hc«ðB‚${ùH{¾\‚»ï…fñ÷3^ã°Ü_"l4ûôPà%9 —ÆÖ!C¡‚„ˆWéïÔ†ßZã¾k=7÷Ï.ø7�õÀGýž‡ó ÐR�*,à3�pˆÿÀ&‹Dž����IEND®B`‚IMAGE 291 ./arch/construct/house/house_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8�Í�Í…? R-���ÿ×�d3ÿ¥�‚B'ð¦���tRNS�@æØf���³IDATxÚ­’Ñ‚@ Awºçÿÿ°Tí)É¥úà@JÂM¶´aûÖ| ^^ó\î Ëîº`™}Å+A)À¾¸ë úcyÀ#ÀA› †Õ(Âj¬ÀZ” / `5k°´[£Ý£sŠ>!höøš‚%% ´dþ,âz S@Þõv@LÁŒUýL Ù€q ªæùñn{ ".QUD b Ø$&©Þ ŸG¨L˜#Lð HÌö7îé% ¬À����IEND®B`‚IMAGE 303 ./arch/construct/house/house_1_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE�������Í�ƒd3iîc‚B' R-Áq8ÿ¥�ÿ×�ÿÿÿn#íß���tRNS�@æØf���¹IDATxÚ­’áà {ÊÆäýx’V:Âöc_LêåÓãÇçô‰}•š©º0^Y.ƒ:�¯ä]'¨ ‚©€óFiP†h%P3ÑB jˆæ‚ènÈ £¸a”÷(>Em0Š{¼¦ K�(-Mü,Êc €/Lp×ç . 3†­ÚO �Ó6š±ªïÏoÇ 4¬Ùªsq €K=g] úÀ>Âê@�´-1B„¾ð·¼J¿ iHSG����IEND®B`‚IMAGE 276 ./arch/construct/house/house_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í�Í…? R-���ÿ×�d3ÿ¥�Å G^���tRNS�@æØf���ªIDATxÚ­ ! CIãÿÿñ¬+vŒ¢ƒíÝ!BÉ]Û—°æ]@ùì9t6áÔByBE$ÀÅ_pI uÀ¨K\8@‚Œ¨Bà¸$˜ å¶ÀËì¼G?ì1…’ˆ’–Bï“>É·àÇšÐRÄñ0Êa ! lλ³æ~m)x®‡öjà¨$ ÔRèI6p DPý‚óѰØþÆ9÷ „û¦É¤����IEND®B`‚IMAGE 315 ./arch/construct/house/house_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í� R-���@@@ÿ×�d3ÿ¥�¿¿¿É¾“—���tRNS�@æØf���ËIDATxÚ¥’QnÅ Ùf‡fïá†Ñ~ Té G²5&íŸxÏß‚k»V>œ+ש‹‰|혶¯Í.t6 Â^àq0@”“ ˜œ¢;[Aßèhè]9ŒAéæ8…ôçHüÙ›‚tzk¢I¼‡˜‡`ý,±?D‰ê+’g°ï»;(øûÁV(²À÷WQ³`ŠÙ ?ùáψ6AFñ .Ô«ƒÛD%† %`&Xʃ޽:x˜ )hÄÊ+´…«~áWð9?4X B全g����IEND®B`‚IMAGE 652 ./arch/construct/house/house_larg.x11 ‰PNG  ��� IHDR���@��� ���P³c·���sRGB�®Îé���-PLTE�1����c2ŸQ,-ŠV��¿¿¿±!!cDÍ…?ÿÿ�Ù¤ÿÿÿþÖ�»÷)Í���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ ï |_��ØIDAT8ËuSËŽÔ0Lþ`ürXdûÈ)?`É’hù—H–úB>Š78rã´b$Ÿr€/¡ºefØ¡NÛIÙU®8Ã0 ê¿1ôP~F÷Ô.jÃcyv’÷ãꜛÝ%æKv@Õ·¡œzéʶº¨í®Îç‹ ›Ír³¥ýgïž„¡êÙ;ˆÒ‡X«TÒ2ŽÈUÇ<2öj ™ ÏDƒ­ÕàÕpI]ÞÓºð8v ›³1nöÈÐ+�R£aÀ˜m¬31U^n‰a›~%ðú#ÃM_�¾cÁ çn¯ö5&ÐN�Ÿ¾¤kâKòM�mºvQkïyn0‡‘ãZ§¶.4\:8Q²K-‰OÙU¢‚†ªÅ¦€_bdI%—š «G<ÎÅ”; '¢­QVªPkk;X`�¦$ï'�;`øS¹²­`7VÀ�Ô»}H×x¢�¡ÖÄ.°ãa.¹mD­>xª|åÉãÚOäÄ ìN[N5c3HhOð†�.T»í„xÜ϶‡^°h)¦%Ã2›ÀíÎ5¿}úasIÿ«›HêÃï¯^…mûó·wŸËÞN÷S-Ï ":ߌüA±ÅZÖû Œ¯þüátâ¼§BêËj����IEND®B`‚IMAGE 642 ./arch/construct/house/house_larg_west.x11 ‰PNG  ��� IHDR���@��� ���•C޶���0PLTEÿÿÿc2ŸQ,]K"�1�-ŠV��¤Z±!!cDÍ…?ÿÿ�Ù¤νŒþÖ����Ñpók���tRNS�@æØf���IDATxÚ•T’â0 «jÓÐ+]ýÿ·g70°³ˆÔŠ“TÈžÀ’àG€Ÿ±\à ¬ŒñÊ€¦x·\ 4‡à+‹V*hŸ|Úç¤à&¯ †{p­ßŒyq€Oûõ‰‘r›ÁQ¹>΀±þ šµfœ—îë°êæ¡�¡šç÷¹i–ûbð2`¡³ É÷9OZ¬õ}HÐâªÐÇ>çô¾8G_d p_e—òÖ9sô\æ¡@^¤ø30Äå(b³¶½¶W^_ò}^O·ãa®Ì‘aäBÏgÖbõðqܸ~^¹f×8ÀÏ@¹�Ê…á Ù~³v¶ólû“‘¬>dˆA×IÖ/ÑO,C>I˜›/H±Q›Ùm³fÒÈ“$OïuG ÖéKÀÍÑé¼™;éTÚ"¯–‰:±cóAÈUýFØoîFž/Úõ°×èë¼eÎúûš˜®Þ,ä([�{näð‹‰f¾˜v{pê²$ƒ9hˆó±3 ä§nAp‹,R#ÂE¢& ÂÞ69¨úÕÈè6®‹ë8æ*m¹àUÀ%@Œë�OiÒ)±LÌ$pÎ1ªV§RßÒùþsø~ÙWaù¹oñò~‡wËßA;Uö~<\š7ð›÷³sî*Êsþ•´tm°@¶õ+wxøjT'€s½PÙ����IEND®B`‚IMAGE 390 ./arch/construct/house/house_long.x11 ‰PNG  ��� IHDR���@��� ���•C޶���0PLTEÿÿÿ¡¡¡ààà���aaad3 R-@@@Áq8‚B'ÿ×�Ú¥ ÿÿ�ÿ¥��Í�) ø���tRNS�@æØf��IDATxÚ­’‹nà EM;t¤ìÿÿv~0 Šw§‘bA8ºÆ… i³ îBJ[¢´!ýñ7g:ö=÷ÇâãÈ9SÔ€dç1�ÜŒOŸ@8ù98Ý€O¿Ä° èƒ�¬(€\ ÐØ |’Àñ�` „g0‘)ôóM0ñ�  „g0ñÿ!Ø ˜ø �N¦› p.@P ºTø% ­wáH ,åôNðýn• ÚZé»Õ¾oÀ¬¨À*;ß×J¯ªV0 4Øyžò¾VE^}—¶Vkµï'gT^£ ¬waðÜÀAZ0F°&0ü?È(#$V¤£è����IEND®B`‚IMAGE 440 ./arch/construct/house/house_up.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿ½½½{{{ÿÿÿ���„B!BBBcccR)Æs9¥R)c1ÿÖ�ÿ¥�B!ÿÿ�¥ÈG[���tRNS�@æØf��6IDATxÚ“Ñ®ƒ G+‹¶ÿÿ·w1×lè®ÐóPHÏÄIX˜âÌóœtY–9JKRî Ð\P\CJiQQØsg ¬°m<Ö+ÛKû‡z]y¥Äžwâúú%+i{«WØ¿ ÀêÐÆ)v¬—V�}EZ…ú ¤´ ô*p ô*p tZÓ*<pÐSátŠ8ŽâèÏB(³(ZヂFáÏAF%tHi0w÷]0÷»ˆ›…zŠ·Ÿ…úŠÑ»xÿþ.¬Îøs°Zjp×þ®ËØ à¼d îÚƒ4Á�*@ù͵ÏA°k»Õ”(cƒÅ€K�ÔÕvLÔï}>g]mgÀ%¸þÛ©À€ú½ó<ëj;Èj²íT`€D1àéŒ ˆ3ý˜?õ)„ôCŽÏ����IEND®B`‚IMAGE 407 ./arch/construct/house/housesmall.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���*PLTE��¡¡¡�Í�ààà R-ÿ��.‹W���ÿÿÿÿ×�ÿ¥��d�‚B'¿¿¿¿¬Ç-���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ)5Ñ]M���æIDAT(Ï‘1‚@EÙŠzªG°“l±ÀdÏA¸€’Qb·Qhµ±¶´ô64[yg²ÄÂÏ4|þ>>C’üíÃñ} uG˜Ù!2J¨w“8k4ãìáâ„p0=GCFé �Ȉò†[Üe@PBȇŒ««œ½…rQcqQ!—EéS¢¢ Þ˜pÄëq²³þB´Úï«ÒXµX龯6ƒÑ<yØð•Ûf} 9õoF¡owuìßÚ„@žAFwmGD’*uQEa aýL³ì•åyF5uò—¾µ‘qÊŒC)����IEND®B`‚IMAGE 301 ./arch/construct/town/hovels.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE�1����Œ¥¥¥­­­½!!Æ{9ï½÷ïïï°ëF���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ06Ô-!���‹IDAT(Ï¥‘1à dˆhñ_BÁÒøîòìØ°ò¥KF4 »‡"¿á@XT ‘q9Ý#.¯:¤ ŠÚ"ÔNi-§  Ôv‹?σŠ`c„M¡ÐPQM÷çû-¾ EÖý!SˆS\çµñ-p5vŒÅk ÛØ_ù›Ã%@†àÅÿK����IEND®B`‚IMAGE 609 ./arch/construct/town/hovels2.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���PLTE�1����-ŠVc2cD±!!¿¿¿þ¿Êÿÿÿh8®/���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ5 û:6��¯IDATHÇÕ•A’!Eã daOy, 0«9G/û¶Š‘I6Ù –UVòòòxü5:&X-ó÷é8€ÖÑ~œ+‹À)Æçs5R¡ èW”€M!µ2<rçéd¡1pS`à”•éŒ[Sø)°g}¥FÀÓ…V Tr¡Áø 0°g’ü6kì™,x‹]ª©Å>0�`À®�üãF÷äûðì |Ciõ¾¢°½æ SǾÁU,€?uì;KQk" ¨+pIQ›c|}Ï}iWHD¤ÀIõ€ ÔœÙî@Á6œ´¬[ò»@Ã&E€Ï€ÔË„Ç4²haâ cÐϬ ¤W�pÐ0ôy�š©° Xªg<6 ÐTsFžf‹�çPÀPÁ®,Ó›-Ø”,¬o:0`z ¶æ]˜ £h ð±Ô™Þ… Xß01�îÌ(ˆ9½ÓÚVûÈ—’]Êñ#@ûñ%`ynè)} k­U�™6�}–qÖ¢¿¾4^½¾rlÿ!ûæ¿rã`Ùö����IEND®B`‚IMAGE 137 ./arch/system/hp_bars/hpbar_diseased_1.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���+IDATX…íÎA�0À0]Èž¬y�ðH ´ü®·Õέ°3��� Òä¦(x°����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_10.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�×Üj‡¿V����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_11.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�\,yzÖÿ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_12.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�´T=­����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_13.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�ú?8ˆ�%àh´òa����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_14.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�+vrÎkSÊ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_15.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ8ˆ�.AwNþ­c����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_16.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ ؉�‘P ÷§G‘+����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_17.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ°�Bß 7.Ô ~����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_18.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ°�›Ÿ ×¶Ïù!����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_19.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ°�Çÿ 'ª‘g(����IEND®B`‚IMAGE 139 ./arch/system/hp_bars/hpbar_diseased_2.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���-IDATX…íÎA�0À0nº,<0ðH ´ôdõdm´ßFÔÀ©���>%¿Ö2>����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_20.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ?°�Þ/ O= ·����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_21.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿ°�éG cg‘t����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_22.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ°�îÓ mçç����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_diseased_23.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ±�ñ™ rËŽ����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_diseased_24.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ°�R7ò|Šø����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_diseased_25.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��†2¨C©����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_diseased_26.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��Z¦ÒKî����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_diseased_27.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ?`%��†¶"ÂÕß����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_diseased_28.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��œ¾JfC����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_diseased_29.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿÿ`%��§Â^q¹o����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_diseased_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�\Ä€�;¯1œ€Æ����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_diseased_30.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÿÿÿa%��­DhÛÄgž����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_diseased_4.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`� \Ä€�R/Yk£ŠQ����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_diseased_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�\Ä€�]omE@bš����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_diseased_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�:\Ä€�cw¯\Ü‚����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_diseased_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�z\Ä€�eß|ÖhF����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_8.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�úÄ€�Ënü5Ñ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_diseased_9.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ìÿ<¹Ôþ���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�~=<*}ö»����IEND®B`‚IMAGE 137 ./arch/system/hp_bars/hpbar_poisoned_1.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���+IDATX…íÎA�0À0 šéùðH ´T¿¿Õέ°3��� MZ,%Ž����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_10.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�×Üj‡¿V����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_11.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�\,yzÖÿ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_12.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�´T=­����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_13.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�ú?8ˆ�%àh´òa����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_14.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�+vrÎkSÊ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_15.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ8ˆ�.AwNþ­c����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_16.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ ؉�‘P ÷§G‘+����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_17.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ°�Bß 7.Ô ~����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_18.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ°�›Ÿ ×¶Ïù!����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_19.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ°�Çÿ 'ª‘g(����IEND®B`‚IMAGE 139 ./arch/system/hp_bars/hpbar_poisoned_2.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���-IDATX…íÎA�0À0n„iü1ðH ´äTçTo´ßFÔÀ©���>{sJ+pû����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_20.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ?°�Þ/ O= ·����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_21.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿ°�éG cg‘t����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_22.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ°�îÓ mçç����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_23.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ±�ñ™ rËŽ����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_poisoned_24.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ°�R7ò|Šø����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_25.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��†2¨C©����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_26.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��Z¦ÒKî����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_27.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ?`%��†¶"ÂÕß����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_28.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��œ¾JfC����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_29.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿÿ`%��§Â^q¹o����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�\Ä€�;¯1œ€Æ����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_30.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÿÿÿa%��­DhÛÄgž����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_4.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`� \Ä€�R/Yk£ŠQ����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�\Ä€�]omE@bš����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�:\Ä€�cw¯\Ü‚����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�z\Ä€�eß|ÖhF����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_8.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�úÄ€�Ënü5Ñ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_9.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ?žEt©���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�~=<*}ö»����IEND®B`‚IMAGE 137 ./arch/system/hp_bars/hpbar_poisoned_diseased_1.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���+IDATX…íÎA�0À0Û˜˜˜ùðH ´Ôë¿Õέ°3��� I+Ç®5����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_10.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�×Üj‡¿V����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_11.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�\,yzÖÿ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_12.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�´T=­����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_13.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�ú?8ˆ�%àh´òa����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_14.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�+vrÎkSÊ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_15.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ8ˆ�.AwNþ­c����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_16.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ ؉�‘P ÷§G‘+����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_17.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ°�Bß 7.Ô ~����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_18.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ°�›Ÿ ×¶Ïù!����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_19.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ°�Çÿ 'ª‘g(����IEND®B`‚IMAGE 139 ./arch/system/hp_bars/hpbar_poisoned_diseased_2.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���-IDATX…íÎA�0À0n¶1ü1ðH ´dMgMo´ßFÔÀ©���>Z…kofî����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_20.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ?°�Þ/ O= ·����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_21.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿ°�éG cg‘t����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_22.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ°�îÓ mçç����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_poisoned_diseased_23.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ±�ñ™ rËŽ����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_poisoned_diseased_24.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ°�R7ò|Šø����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_diseased_25.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��†2¨C©����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_diseased_26.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��Z¦ÒKî����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_diseased_27.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ?`%��†¶"ÂÕß����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_diseased_28.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿ`%��œ¾JfC����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_poisoned_diseased_29.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÿÿÿ`%��§Â^q¹o����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_diseased_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�\Ä€�;¯1œ€Æ����IEND®B`‚IMAGE 146 ./arch/system/hp_bars/hpbar_poisoned_diseased_30.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���4IDATX…íÎ!� ÅÐùƒGã C?°4øf¯Àa0÷=‰øÕ["üs > I’$IzaU 3—¶����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_diseased_4.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`� \Ä€�R/Yk£ŠQ����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_diseased_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�\Ä€�]omE@bš����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_diseased_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�:\Ä€�cw¯\Ü‚����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_poisoned_diseased_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�z\Ä€�eß|ÖhF����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_8.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�úÄ€�Ënü5Ñ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_poisoned_diseased_9.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���{ÿ¡€[é���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�~=<*}ö»����IEND®B`‚IMAGE 135 ./arch/system/hp_bars/hpbar_standard_1.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���)IDATX…íÎA��ðþåàdÀ#1Ð&LÒWíº x3���À+¼l:����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_standard_10.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�×Üj‡¿V����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_11.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íÎÁ À �ÁÕúR®ýÅ!fþwl}lT½µÏÍ€yóLÀ/���ظ8 Ô2ÇÆ����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_12.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íÎÁ À �ÁÕúR®ýÅ!fþwl}lT½µGÏ­€yëHÀo���Ø· ¾É ����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_13.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íÎÁ À �ÁÕúR®ýÅD™ÿ[Uo­ƒás#`Þ8ðë����6µÐ ¿�óm����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_14.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íα À �Ä@Ã|—ýÂPD‘îú¹>6ªÞZ‡ãç6`Þø}����´œ æ×3����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_standard_15.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�úÿ8ˆ�.AwNþ­c����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_16.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íι� 0Ã|ŒË~°á.ÔûIš$9É.–¬×ì¬ ÿà@û���.²4 B’B����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_17.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íι� 0Ã|ŒË~°á.ÔûIš$9ÉþP´^r³:\å@û���.±� Š\j¥����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_18.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íÎÉ � °À|ŒË~0¢R?ö?GÒl$ÉIvQÙzÍÌŠá´���à¯Ì òÄKê����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_19.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íÎÁ � @t>Çu?AÓ¤Ÿ»7’f#IN² ×K~V ÿr ý����®˜ èÙ¾E����IEND®B`‚IMAGE 136 ./arch/system/hp_bars/hpbar_standard_2.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���*IDATX…íÎA��ðþåàdÀ#1Ð&LÒ“ôE».¢^ ���°€wo*Ô¥þ����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_20.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íÎÁ � Àè|Žë~º‚H¡Ÿ»wH’4Ir’]\º^³³rø‡í���¸­d 梌>����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_21.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íÎÁ � 0t>Çu?]AÍ}Ú7’b-IV2?“\=|Ëò���l¬0 ÂHæ€����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_22.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íα � @t>Çu?ÁX|¾¹« 4Ir’]T¾^™Y1üÃö���\ªü .ŽË����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_23.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íα� 1Ã|ŒË~°G“K#µ.üI³‘$'Ù…ëµÏªã_Ú���¸©È סñ)����IEND®B`‚IMAGE 145 ./arch/system/hp_bars/hpbar_standard_24.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���3IDATX…íα � AÃ|ŒË~0M”æ®uáOš$9É.>Y¯mVÿÐ���À¨”  Â>����IEND®B`‚IMAGE 144 ./arch/system/hp_bars/hpbar_standard_25.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���2IDATX…íα�DÁ£>åê̈øÉnxɽ¤XK’•ÌGã´÷×Ç7Ê���ا` y(T����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_26.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íΡ� ÁÀ|ŒË~àÈÖÜɘ|Òl$ÉIvÑÙz·Yqü# =���€ ¦, #nöà����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_27.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íΡ� ÁÀ|ŒË~`1ØÖܹ¨|Òl$ÉIvááz÷¬:þÐ���À¤ø u{Óâ����IEND®B`‚IMAGE 143 ./arch/system/hp_bars/hpbar_standard_28.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���1IDATX…íΡ� ÁÀ|ŒË~ pèÖÜ©¸|Òl$ÉIvñéz{Vÿh���à£Ä ”Ç ì����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_standard_29.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���/IDATX…íÎ1À ÀÀ}•[eG�¿ÜHjØSõ×7~«ÖíðÉÀø����¢ ¿I×����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_standard_3.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���0IDATX…íαÀ �Ã0Ã}=—ÿÊÊ´ƒ4f‰ëc£ê­u ÏÍ€yóLÀ/���ØÁØ P³Vô����IEND®B`‚IMAGE 139 ./arch/system/hp_bars/hpbar_standard_30.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���-IDATX…íÎ1À ÀÀP}ÈÅ]qðˤ†­ª[g(¾¿‰ðËÀø����?¡\ ÷@­-����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_standard_4.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs�� a�� :ekæ±���0IDATX…íαÀ �Ã0Ã}=—ÿÊδƒ4f‰ëc£ê­uŒÏ­€yëHÀo���ØÀ¤ ›j­¯����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_standard_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�\Ä€�]omE@bš����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_standard_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�:\Ä€�cw¯\Ü‚����IEND®B`‚IMAGE 141 ./arch/system/hp_bars/hpbar_standard_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�z\Ä€�eß|ÖhF����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_standard_8.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�úÄ€�Ënü5Ñ����IEND®B`‚IMAGE 142 ./arch/system/hp_bars/hpbar_standard_9.111 ‰PNG  ��� IHDR��� ��� ���I´è·���sBITÛáOà��� pHYs�� a�� :ekæ±���PLTE���ÿ��ÿ"���tRNS�´ºŸº­���IDAT×c`�ú8ˆ�~=<*}ö»����IEND®B`‚IMAGE 1189 ./arch/player/race/human.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÖPLTEÿÿÿ(ŸO,��+ NB L/ I$]œW,,`.S PE)��F)1O%$ ^�9 ��1^.}?!L#FZ* A4P)N' 6�� & e1��4LRP&d8)1/ I#�� c1#  B/`/RN,JC.N'S(, > 0 ^L#[-��&O&�o) ( fe0J  2�� 8)¢j=  )(- f Q��D `.��/],A ph3 ���B   TZ, AO'  kg3 bCA î¦_ÙQ V OG ME,I#W# !> SKJF'*��$ :b' 1 _ R��'7 JP(q5 jD#Z���YQ WP U–R,��*8 40 /  2�� Y¶g4`.��-_,EVIP, FT)0.m5! hÀn7i1F"  \ [N ^.K h 21»j5 (��3 U B��K#: cH!��6 AR3 OJ."��" /. - ��G#2TX0K7R( )Q(47* &e2•Q3 > T K BK$e2: ò2„���tRNS�@æØf��}IDAT8Ëc`  H7Ã+5J_m'ù 7ÙŸzãQ`²ØÞ~>í^7õo„ã’íxišt8;lWù‡âçµD÷d]Ú{ÿ‰.6ù͉͚ÝÉ[ž©?qq"y=ù÷©»§z–øM´i¦ü©ÕSôpF÷]Zë“yvåGtùyÅS¶?ò«je™4«4×W˜]Á éÛû–°Zohã{³.@d‹º<SŽ käØjú-4Ù–­G“ßvä9ÃBG+Þãs+/83†r¡)(q™AEÁùÕòÙ3µÛ,Ë™ÐäÁ¤KožLËÝ9o« °…Óµ®CܲŒŒŒ:! µåXTÄÎ7»ãpzið1f¸‘¨@@@€Ù­pÆ„sØ#ê€äÕ× Ì·°+HXuHj,Ã*×8ß? ¤`ÆÑH¬ lÜ!él†âulò9ñ2@ŒiÆ“•1¥çó|¨ƒ0•Ô]±è¼ÑÎÊܿћ )p¦±1}�*M~Öàã¼����IEND®B`‚IMAGE 1173 ./arch/player/race/human.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÊPLTEÿÿÿ(ŸO,��+c18î¦_Jq5����� / ��*, T) O. - O%$ ^�9 ��1^.LI$> 0 ^]#[-��&O&�o) ( fe0J œW,)¢j=  )(- f QL0.m5! hÀn7i1F"  \ [N ^.K h 21»j5 (��3 U��J."��" F)1��G#2TK7R( )Q(47* 6 `.��-_,EVIP, F�� & W# !> SKe1��4LRP&C.N' 2�� J/  2�� Y¶g4`/RN,JBI# L N#  B/b A4P)#FZ*��D `.��/],A ph3 ���B ,ÙQ V OG ME,I#`.F'* :' 1 _ R��'7S jD#Z PYQ WP U–R,E)8 40 P(  B��K#: cH!��6 AR3S(  TZ,/ AO'  k bCA d8)1/ N'&e2•Q3 > T K BK$e2: *¢Ä���tRNS�@æØf��yIDAT8Ëc`  X ŠW>À˜;ËüÁqêxôÔñò§`µš ·€.Ù5O{g{\Ò·7Ä!%v¦TÄñ"¿Svy‹Yù%ýs¬ÜNf½‡EþþÔ×ó¶ªÞÖ¸µ=úÜfLùãÉÖÉ›làO•3½`n‹©`‡Í£`­¥…ݵ»î\=•øCAs¨s}GEûŽiÕšBûÑå™s2ä¤LéZ¾±Õ5¯ÊR]ÞÚó1ÃAÙö->{—œ5c`¸›Ž®€í‰Cü³gM»w–±3éé Ëƒ…õפ Â÷¼\ÆÐÆÆ„%׺/šÌÈÈX® T€E~O_˜Ì‰Vof†l˜*^ùJø3+ÝäÜtºf%*Ÿ™t,ó9à VÖ¬5=—G{>f¬ :+•ÁɈ‹«¸›üåÒ‘ Á ½Œ0¥c®¯z³Êfœx‹¾ó*Pæ6–ñØ0WÆšT¤ˆ?[¹ðµÈx,,ÔÍÈ�TMp†Å ˜����IEND®B`‚IMAGE 761 ./arch/player/race/human.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��˜PLTEÿÿÿŸO,],c1 @0 lllÌ?��P&��!t hF#Àn7›››W(��9 i( î¦_�5 @Y,�!��;+ �� % !'D¯rA�� I$a-(I  g, i0 (1È~= @:„YN�� c3# b. p6 ]+ QNŒJ'��F ^²o5f/Z- u33�6��5v>! O U/ \! Q G z E i�� ;+ T R��'FI!��>' ���6��*zm3��Al3  ; y ��¬sA¾l6 ] V |0®uF <ÿÿÿ ��3 ] z U¹yF\,ãZ%0- K Z+[1' l""(צ?ž���tRNS�@æØf��IDATx^½ÏSsA†á,Ž­Ø¶mÛ¶mÛùÛ™ÉíéÝ\¤’÷ö{ª«þ¦×y_¿*!8ÈR¥Lì*#gØéÀ÷ TŽeÇ•Ø=A@_…w¢ðüáä^ÕåŠö£¡{úV‘ÄŒDïp°½|më~Ìð3ì>ðaã<!~6É^PÓÀW)Í)¯s¢N'Kx꺛RQp™9ÂïšÜÔb°C[·*ôf;xiZíÍ{×mc¾¦i€çÊá—æ}§ˆ `WŸž\$"Æ�+’\Ü‘¸”--ŽÛG;ë/>Á°ðBÜZL.—ò˜[“6ª=V³½õÊ3¥›‡nÝS€|€_ø8dðÿ}L,'0†úyÐ����IEND®B`‚IMAGE 836 ./arch/player/race/human.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÝPLTEÿÿÿŸO,c10 lllÌ?��( ��!t h›››Àn7 g��9 iF#E% ] U ]\,ãZ[1'�5 @Y,�!�� + B% UD¯rA�� P4)!'a-(I I$, i0   @(1 @: m„YN�� c3# b. p6 ]+ QNŒJ'��FE$ ^$²o5f/Z- u33 Y�6��5î¦_ O],U(/ " \! Q G B E iv>!+ E#��; T R��'F @I!��>' Y���6��*zm3��Al3È~=  ; y ��¬sA z�� V |0"#®uF <ÿÿÿM% ;��3 U LT'W(LK#g/! z+ ¹yF¾l6%0- K Z+P& l ""(šÕ/¶���tRNS�@æØf��IDATx^½ÎC—A„Ñ—Yh{lÛ¶mÛ¶mÛöoªu¿¬Yõ|ë{â8¦÷ U›"ˆâ8.Ñ1ÀZ³T<%ºC lG¸ßq½<åQКeHú~Úw‘x hw6+´á+) /`'œVgo5 Ï �?Ùþ¥IŽñ ”� %æÎö®c2 ô(8L›<-9Ÿo¼b X Ý5¾±¡‹À�Uþ¦œÑç2&HË·uúx||²Àkv×Û¥kÏ}éR½ ö`]é˜.ÔËx¥ÖÌD9JÁ®¾Ýꭺ“Ã@“ç”÷B°*:Š|qŸf–àK®Q UÞ‡D%`ÕË (‡ƒ¿ˆY þ»_²G4…ú¶×=����IEND®B`‚IMAGE 1074 ./arch/player/race/human.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��sPLTEÿÿÿc1@&fffî¦_í¥^xxxlllÀn7K@@@C!A¿¿¿��/ŸO,;) "BÔR… K ~w ��7S‹o6#½k4b G/��&Ó‹P(Y2$��T???<;;;g2!:"< Gë£\™K* 47?i3 1� JE"- 4  L FS**6$5�;–X+( G בRžžžÆ}>9��OG£ $DM;KÁzF K��' s7!I y ) k/ �. E�t =��B�� O [6+²c3G$-7t8! žÿÿÿØ’SAe3d1 ,X+&‰Q5<D%Cd3!33@ FKL4*X+%  Gw=&��(›››4 t·M ž�@…A#B%  X4d15��+++. o6  -H),>H D..��_z;,F   H)��C��a0]-$: Z93j5! ”!C�Žl/=N'��H8b0$S :��s8!ooo& h6+¥s781¾m7 )698A:�š_/B$= “���J2*? U¶g1��  RµôE���tRNS�@æØf��mIDAT8Ëc` èê·„O¾™÷dñ< x3T<‚yñ(àiÕ4ÒæÁ)ÍÅ“¶—-G‡lUòôý §gaWPLÏÁzqÙîÂóݰÉÏ<ê"YZ˜ÏXs<Å¿'S¾É“Ot×´MæyKg¬”<ï„!ÏÎÄÁÁȸNv›Ž{AÖÚ='0°°ogdfäË wZ=o•c5¦n <ßä>µ ÒËc(`ʳ°d¯X&—®Ž®€“,ϵcßšCñE"r¨òLý,-©º‚âm˼XPp³13Øb%¦ Èh-sŠ•ÍFNF†E±µ 7—,¨´*@UrÅ\3©Ü…¾‰¡~ &0320(l׈8·5IyC-Öˆ²93…+¡œál7ÿ,~¬ §zש‰–νXå™Á “�Õ98@ì°Ê32ÃYë±Ë3Âbƪ€Ó,€‘ Ô�+VWO:r$����IEND®B`‚IMAGE 1033 ./arch/player/race/human.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��UPLTEÿÿÿc1î¦_fff@&��/í¥^xxxlllÀn7A¿¿¿K ŸO,@@@��E;) "BÔR K ~wSz;,F ��_H   -H)ooo(��7S‹ ��:½k4b G/ë£\��T???<;;;g2!:"< G��+++. ��C�� L™K* 47?i3 1 JE"- 4 h6+�� % y FS**6$5X+( G בRžžžÆ}>9��OG£ $DM;KÁzF K��'C!²c37 žÿÿÿj5! ”!C�ŽØ’SAe3d1 ,X+&‰Q5<D6%Cd3!33@ F��Ps781¾m7 )6KX+_/%  Gw=&›››4 t·M ž�@s8!& d1 H)N'��H��&Ó‹P593 U¶g1L4*l8Bb0$ :a0�. E��B6+�� O [ s7!I98A:�š “���J2*?/  ) k RB�t]-$: X Z =��…A#Áð‹Ç���tRNS�@æØf��bIDATx^½ÌS—+A†áÚ8CÛ¶mÛ¶mÛ¶mÛöù]“•™•‹îJîföÕ×ëy«Ñ\ÊA\ "_~è>/PkösÊ… ‚ª7g*¹,F«Ç¹->rtê©ÑäÂÿãP½2|0ÿÖ;-æª4Ac+ 狹"¥¾Îv˜~÷¬øw)ÛyŸpÙöÓ¸AéK; xæ@ƒhÝ3»£ötì=&P‘8!z‘©ÞdÒ˜~Âre®Ä)ªnÓÅ_Çêp†R'ê<·O}Ø¥iÇpâæ=õic¢ùÍ÷oy¤2#PáÒð ¡åÇ^jÚ«I2�Ðe´–ƒ#„¶>B$³�Pðƒ3w?Ýží¡ öh  ",[ƒ UE!ìôªÛ&ÿ{²·;‹u§×k®/mPÒ/Ž!籉¦â¿„•Xèã0ËŸ“߯ñX§nìÈ d‹Æ9ÐŒÉrm\�Œû¼kIKOeš—%����IEND®B`‚IMAGE 893 ./arch/player/race/human.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ¿¿¿��-" + ) @&žžž�|­c1# 1 ,  Áq8 C"U•V6��¼šY,/ ' fffxxxA k fn>4’T*0 ) ooo R-J W!6e2$åžZS*2. * @@@(= Q ,Y+$i:0wC4K(")% ï§_î¦^ˆP<C 7 S('(<HE$>">µj8xRO? ,8,&> X l Q <>>%A 162 Z j @2&8$9'D 1&F [?6"Y,f1c6&"; 0 TM,)V*a0b1,C">S-,a0 J&*36zK6Y5e5$i=-Í…?Ç?Á}?ì¥^ºl6ªj4~@#Q)›[-½o7Àp7È=��p9{?"t; _0y>" ���� '& !'''" ���)��/��&�����3���.�� (G$d3.���#����    ) * :%D"O(U+,¾°þ���tRNS�@æØf���bKGD�ˆH�� IDAT8Ëcd �‰U�¤ÿÙ¡(`Ò?á*8Aà²þ `éï\¯ˆ3~ª€(Ê~æ{/ÄøYç ŠŸ ¦"# \CR ý¦B‘®à4²´ß0¼äÿ¡ÏÀˆ�û1ÃÁì¦ÂÆ-XJñ\Á*ì!W°�‡.¨üÿ™ØdB¤ü\€=²Ì¬ tbM3§ýN ùfÑ]”ëc`(f¬Å•Z ”áJ0ÝPäáR0ª —‚ÙŒŒ©sq¥ÉíQ8íÂÿì@ù0|©z5#c0Þd¿Ž‘1�¯‚Œ ñø`“GR°€ñ? "ü¼I¾�D >!í-î����IEND®B`‚IMAGE 890 ./arch/player/race/human.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��õPLTEÿÿÿÁq81 G$a0ï§_c1d3î¦^ R-žžžDi=-fff3@&¿¿¿‰F&f1"; 0ˆP<{?"oooE% ">,2&V*��#  l 7 [E# !6��& O(* ��½o7) &>��).  W"  X,)ì¥^’T*U+ k����.'''xRO�6">%A_0  ��/ªj4 f36* ) MÍ…?S(' ��zK6c6&$>•V6&Fn>4È=Y,K("/ �� CÇ?e2$S*.e5$+ ��9'��¼)' D"Á}?xxxJ&*0  Z8,�# S-," _0 (?��-:%"UQ), (= T›[-a0šY, 1ÿÿÿ ) Hy?3Y+$­c1@@@2wC4  !?&i:0 ,(<J8$b1't;  åžZ 1�|� Qµj86~@#��p962´$í���tRNS�@æØf��3IDATxÚ½ŽcoQ@gýŒÚ¶mÛ¶mÛ¶mëw6ûÚÜìæån“&íù4É9™øFš×—¤üÝö9“"ôúU4O•¶/V“B­Ó)•¨ˆÍ,'¢É¾aÀ 0pæ]Ó°š-ðš¾ø fÖì¶Ž÷ª:l„_�E­‹Wþé†u‰-ØA…<qüd 8ÂÙþ¼Ä…†ÿƒaSV\?ú“+M‹Á†!›ªÛå2·Hú‚c *3ó¹Üá-Á²À<ôf5©Õ"!<“'¯ëŽÊÀyx™ž$¢px¼¿Y^Êp¾¥æòè@–€õ&ûß.ð  I÷ymÃyŠÒÞÇOÄá4Ç¥j¡1ɱpõpíëäRùO‚$]~18…>ù]€ôOü;ŸÒ­=–bõ=¡����IEND®B`‚IMAGE 348 ./arch/player/stoned/human_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ===|||µµµRRR$$$DDD555��� +++ggg›››   „„„ÿÿÿë¥Y>���tRNS�@æØf���×IDATx^½K’Ä C‘lóO2÷?í˜ê®,d7£eê=ËáOÂùÆ£§Å¡Åã¼Ú[Þ"zn„JÖ˜LÌÒfÝÓ€”H®øq*™\¸4Dº`ìÇ:šžB—KšP«ó¼ — +3ž\÷þ²áÑ ’—”Ç…~ÈÌ?ûä¸piŸ¨VÆÖÈTÃG9¢¿Ag†PêgƒA¢wJq¾Lq\<î,ù·{Ûà5‡Ð¼€+ŸE–ºä|'äpO¶â°yœ9îye�˜>ÿ™_¸4É8‹¥Í����IEND®B`‚IMAGE 167 ./arch/weapon/bow/huntersbow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-���ï§_d3­¹|G���tRNS�@æØf���FIDATxÚíÓ!À@ BÁðËýÏ\[ÑfÅb3Ž0ßÀìÁð˜�0;D�+èÀàħ€Xw èžÑ Ç”ãý¹¿510àM‰����IEND®B`‚IMAGE 478 ./arch/construct/house/hut.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEçÆ÷”J)œR)΄9���ŒJ)֥Ɣc1R)½{9ΜZ)ÿÖ�J!„B!Æ{9÷Î�ÎcÖœ9ïÆ�Z9R9Ök÷Ö�cB�!�ÿ¥�J1½Zµs1ŒB)½”œJ)nö���tRNS�@æØf��#IDATx^­“ÇnÃ0D³•jnéåÿ?2^A>xí (]æáÍ…|zxxËŸu„ )ÝG8Õz(sIRù^Ÿæå‚„xCpï÷ŒH4{Xpö‡Ï¯„Ú–eiê\ßaø�TÕ¦ökÈ8朲Ê7U$0)¨5Roœt[0ÏìPÐ*!uæ””‘ž•šâ Ì� ”‰Hu=W�w~=HÎ¥Œ¦ ÛÀk sͦmà ¨�a?N+€Í "F®T¡ ÚzADdHI2U´þZÐ#2K[ïðâKüU°þDëGçà ÐWAÜívƒÖ;�OH‘-ƒX#%¶D4Ì·þ"ðÄxٞྠ˜ÿ{uÎ/žÔD ÈD����IEND®B`‚IMAGE 676 ./arch/construct/house/hut_hori.x11 ‰PNG  ��� IHDR���@��� ���•C޶���fPLTE9œR)΄9”J)���R)ŒJ)c1Ö¥½{9ÿÖ�ΜZ)Ɣ֜µs1J!ÎcÆ{9÷Î�ÖkïÆ�„B!R9÷Ö�Z9cBÿ¥�J1½Z�!�ŒB)½”œJ)aKÊ¢���tRNS�@æØf��ìIDATx^ÍU×nä@ ‹Êt·­)×ÿÿ'Ï’5.à^" %A&¹|Û—/WüÉú§<PGäÎí–ãœß¹»®{/—äÞí–ã”×ñ™Þyº ¨ø~·çü·zž¦çoÄ›àúØ-2ãR9>æ piøõ9þr„³`åD;ä,ò0 9¶¸ûNÏ*2d…–-»–ƒ×”Ò€JÍßĆõ{üccàÈÁ"@i+¬my2æ™Ò&ð)ù\n«™äKk@¾/  ¹a¿Ôï›Ì.õT®ˆšôíŠoQVDA^¦hõ,Mf"ê %êSðÑ\q9UÆÁ€'þùîS*E9J¯¿e]Ò«ÝÂÀGƒ‰»D‰hQÍ]Øq÷²,kn0ÏQÿP H¿Å-Í¿@†Æ€wÔ‹VDÒ ¬i¶øóÝ­ž09ç•@ÅÒ˜Moªo 0ûÞ;š5^—-MÆxS9¯ú6�ògëåÄàŽ�3Q[X·:GÚàÄ €ÊïÊ8ŽUL$§êeúÆ�AJé”:êÛãÐP˜`!£.ã(]vs±�­Á]w°cƒP3‡`gm�Ð�š4l- `R¹Ô�m† k0ªéÀvKÇü¿ÿj_¬þ¤´#¸ ����IEND®B`‚IMAGE 684 ./arch/construct/house/hut_vert.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���iPLTE��pœR)΄9”J)���R)Ö¥½{9ÿÖ�ŒJ)Z)c1Æ”Æ{9ÎcÖœΜJ!÷Î�„B!9J1÷Ö�R9ïÆ�ÖkZ9�!�½ZcBµs1ŒB)½”œJ)ÿ¥�õm:Õ���tRNS�@æØf��ñIDATx^½•×®Û@ Dò]Ýö­éÿÿ‘ S²òr‘…ìÌÃôéÃnça¹I)!#j}›†TJ(Uê¡È0þ®tAhGè<_¾—ž˜—þEF<¡Ï—¯ß‚0Å<ŽcŽ^BëM.Ÿ…bŒ9Ú_&uÀsJid+ò3F)áœÙ{hIIe@9GhÁL8:Õ Ý$›T-«Ç$šÔYK’´ŠDÄ`ì€PE:1�.³ÞŬEŠ@9; iHÕ}B l*ú·À¬"6Æ´ ´é€zÃVD™`I&4 I:…j&2Nál›�ζ àd›ˆaàq·Mgag¬c7Å Ó¼¹xÀrÄ”°È{ ä8­@x”å(†þ®çþ)osx ›3Â!E’͉ˆ¶ux…ÒM.jˆ‹ÚituêdêQ#ªáøN"j<Ããuomœô€‡ÏnÚ8±`<ÿÌ÷7»2SolÎbÖŠ+³lp€]™—~@™îFM«t1ÊDÈõ?€¤BÁ N÷u¼YDTKW‚ø:�j´Öƒo�«¿2~¼Ú3Úõz½auÐ+qƒøž FÌ@#8ÀÚV‡Àñø=¡ó& ú¯¯òŸ_âß%ê˜óT����IEND®B`‚IMAGE 503 ./arch/ground/Winter/ice.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿÿÿÿX†¤ êç·ÓäøøÇ²ÑÌàà¯ôô-!HžÛc���tRNS�@æØf��‡IDATÁ1o1à×õ™Û}ñ¡ˆ-QZ±~¾÷¬&[B®‚Ñ‘k);ðPa`³”DÊHÅÔËóÀ¥2ö%÷a5–X€Ro£´x6Ú¿­Sœ2¸OHˆ6ÎÉjhŽ=~²: PɉÓp÷¨Õ:lˆðé¬qc°ˆ­y�UFsE„ùîc+!øKUIGBÈåæš7 î½¥BüÐ}¸ä½0ô¯`&˜ò>Èôë»ùŒb!‡_ €øÜXÈeX ;ÓKwÏÌa'‹$ãwh^ÜÎ1ß)p²÷ç`þ“‚Mš?ìðìP‘Ú¨ö}Üik'Wpô_a:ôæ‹á5"&Y[·­5y‚ÁCm{«ŠA­àY\‹h'‚£ÖsÒ¼tÖñ&„µÑ;›h],݉˜ÅÚ˜ÇD±%GªI1—Ì'lÄdH.y øÞ¬)Óß'‰œð8ˆ4–"‘ç„j;#óËìZ ©špÂ;óæÜ7’äLJÊW®À’_JùPyY°¶×æ±����IEND®B`‚IMAGE 1078 ./arch/ground/Winter/ice2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���áPLTEr©È‹¼Õ•ÁÕ€ºÒ¾ØŽ¿Ù’¿ÓÀÚÁÛŽ»Î–ÂÖ™ÆÙŒ½×Š¿Ò‚¸Ê‘¾Òy´Ë»Ó‡¹ÒÃÕ†»Íƒ¾Õ‘Ã܃µÎœÀÕ—Ã×™ÂÝ˜ÄØ„¿Ö•Çà‘¹ÔŽÄÖ}¸Ð†¸Ñˆ½Ðš½Ó²Ì…·Ð‹¸Ë|·Ï”½Ø‰¾Ñ’Äݺ͌¹Ì“ÅÞˆºÓ”Æß‚½Ô‡¼Îƒ¹Ë}¼Ì†ÁÙ}®Çx¹Öp±Îv¶ÔˆÃÛ‘Çپ΀·Ö{ÀÖÊÞÆØœÉÝ›¿Ôv±È…ÄÕx³Êu°Ç°Ét¹ÏÅ×z»Ø{¼Ùv;N��IDATx^%ÒE²,7†Qe ¡š™.3<2ìA®k¢É‘ƒï´mv’À֘ɷß?fßä>�˜š,˜Bƒ¤ªlm­¾#Ò`5ëå|¡—3Dàø òÑ~•u‰ã€z·3’uÝŽ‚ETÄ~ûE^ìçg>ò”Á™zÞøM–°Ø¹ñ©45±Ö0#|1½¥»MV¿~œ=ïÏdzyaÆp×’¶J“FJ7….–‹ù[þ6÷n Ö}ü·mÉGÁ¤yn. œÓñ>< +³Ú¬%e <¦ó ʨ›„Ã/ùM¶=œ|%'e‚Ï”A½ß7 |¼‹b&ø‘@èn!ޱF�fc-ÁØ>7Z#piÃ\ÑøGUÇâV0# Pú~;ÝÈÌôÈ5`f¶Èrÿõ=N’gMèjžG9}¬€•‡ú9Vè;ã˜ÃîîH Z÷Íd�Æ–µ±%4)½ äýŸü¼× ùÆ•ŽSYsju,3gíTjõt{KÜûy7‘¨ð&’j†eYX¥´3ó‹bý~üIfäq¾í¨åÒçhTÖ¶æ„ÑšÉlý4ú ë|¹€½ƒT"НâcôQ œù¼ ‚HìæspŽkgŸ¸±(ÚÖ^}ľƒÑFy¾_êEÈ2[ì‡m?ûØç¼¡Ãjá\È_¿Ï4ÿŽý]cZû’±Œ ÑÜÞìw4H¬VOc}í_¾´U‰Ø@  p?'U·ÇþÈÎöã…ÖF°`å. Q¹Œ(È£óðkÕˆ8;§ÚöÀ¢¨I/ëïÙÕ™H ò<dU%ÇþWt5a’³«ˆ°:„iâi,]Ø Ý& ÷©k¯>4É:í_ûÓ—íàY ¸„7tQüïƒlÍI6\q'}Ï;£¯>ÂtªTߣЀ¤®^ ¢¯]ÿ,Ò䎎>‚=GW½T+Ii"FÁ%뜔ž‡à!  ŽG}‡îÕ1uë¸gk¡Tx¯¯ÿæÇDã–§ÍÕÇu`ÅVøXVo?ûû|ÞID\‚ÄÑÇŽrS%U±/����IEND®B`‚IMAGE 4827 ./arch/monster/elemental/ice_warrior.x11 ‰PNG  ��� IHDR���@���€���Œ_ŸX���sRGB�®Îé��ýPLTE9We$6@!8F#9G#:H$;I%<J&<K'=L(>M)?N#BO$CP%DQ'FS(GT)HU*HV+IW,JX-KY.LZ)M`/M[/N[,Pb1P]2Q^.Rd3R_/Se4S`5Sa1Ug7Uc2Vh3Vi8Vd5Xk:Xf6Yl;Yg7Zm<Zh8[n=[i9\o9]p>]k:^q@_mA`n=atBao?buCbp;d|DcqEcrAex=f~GetHfuCgz?h€Igv@iJhwKix:m„MkzAn€<o†Nl{=p‡Om|Qo~RpAt‹-yŸBuŒTrUs‚EwŽUtƒFxGyWv…Xw†I{’Yx‡D}šJ|“E~›_zƒ`{„]|‹e{ŒJ‚ŸKƒ dˆL„¡e€‰R„œM…¢iN†£hƒŒPˆ¥i„Vˆ RЧk†S‹¨l‡TŒªs†‘U«[¥WެoŠ“v‰•Y®wŠ–[’°sŽ˜\“±z™]”²v‘›d•­_–´}œ`—µ’žg˜±€“Ÿbš·h™²” m™¬j›´ƒ—¢„˜£mž·nŸ¸†š¥ˆ›¦p¢ºŠ¨q£»‹ž©r¤¼s¥½ «Ž¡­u§À£¯‚¦»x©Â‡¦µ‘¤°}ª½z«Ä“¦²¬¿”§³–©µ‚®Ášª°„°Ä™¬¸…±Å­´‡³ÇŽ²ÇŸ¯¶¡°·´É”´Ã’¶Ë£³¹“·Ì¤´º¦¶¼–ºÐ§·½šºÊ›»Ë©¹¿ªºÀž½Í¬¼Ã ¿Ï­½Ä¯¿Æ¢ÂѤÄÔ±ÂȳÃɦÆÖ§Ç×µÅË¨ÈØ·ÇͪÊÚµÈÔ¸ÈΫËÛ¬ÌܺÊÑ»ËÒ²ÎÙÃÌÔ´ÐÛÄÍÕ·ÓÝÀÑ×¾ÒÞÈÐØ¿ÓßÊÒÛÁÕâÑ×ÙÉÚàÒØÚÇÛçËÜâÕÚÜÍÞå×ÜßÙÞáÒâéÛàãÓäêÝãåÕæìàåè×èïÙéðâçêãèëÛëòåêíâëóçíïéîðëðóìñôîóöðöøóøûõúýùûøûýúG[e���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ  ÖTK’��JIDAThÞí™Pš×šÇ“Æ›`‹‰h\¬©—\nÞ%4Õ±¤ÔÌ»…­Á²—÷ÞI1t—h–pMX6”:‰!)†eãÆ·Ñx­8nÖ¬k/upCÝ øc Å—Í Ä !*þ�GÅühofšâ;µì_ùÎ8£Îy>ïyÏyÎsžçy×­{¥WúÖ¡úì³¢ßþî§šÿõ‡å¿rýþDÀßž¹~?ðhöÆ¢¿ù)æ?ÿùÉý¦±#2{ãú¹Ïþå?Öøå{W›Î=øÁÅÆšš §ÿm­öïdî½ôw;ÞÜñá‡'Ž):øÞÿ¾fÀ»ï¿¿ã—™ŒœÜÜýù ²vÀÛoýb'9Op¬X‰h¤ÒlÚÚ�;w¼™úd¶X¥R*•刼$;k­›¶+W$+ÖÔ[ÜþñÉÉIkm€´Tw¿¤ÖâõކB¡ññIÉþµRRH³íž>¯w|fîñã¹GuòµR·³jµ–¾àxäñ“§züĨ]“}.•®ÕÙ¼ÞPhððQ}™r-�5·Ødvx‚CÓQÀÌœ‚¯ZË"¤Òd¼ÓO~xútî¡‚¿– ÐhÇ ‹Ýb0zQs­BÈcs`xM€<‚XQ+"e¤m|mCTÉ)k°ßÄ/Q ˆA_7Æ=ÓÖ5˜%åµJ%„ LÜo~ý¡¯å¶¶µ€FÁâ¥>Ö²ˆL‰­»\ŽXŒiz ŸŒ'@€ÿ£=IÄevu—KÊ»L’³œBU©Ûn3IŇœ#Tó³¨%2³­V(1ÌÝ}žàäÜ“Gs~¹4ƒLøöù9””4©¤T@I!ëu¨Ãå †æÏ͸e¢,rÊæ4î*v+?_(*೩»é̼\(‡#êª]®¡Ñ‡O~øS$hÌã°™0nS\ÜŠöD'edd! ͤ&%Åo.ày½ßÍ|ÿôéÓ™`-ÊØÛ7® àB»iy‡‡ øqÉYµJQ’‡áq£§ñÑ÷ºŒJ_(–²ññ+¿‘"(¬@D­.×V!¹”ÅahTÂb ª™B…©Ó)…ØU�4X"CªªªLm6»ËíAÒMñ$H(4[ÇçÆGÏ2E¥jDg0)”UV‘.,Õh««ë¬í»ÛåB¥ñX2™Í’—Tk…û9MÙârÙ,«’`b±Úí^ïÈH4ŠZÛð©JV“)’î†XÜjê…&¥Ò•í•Id…¦ËŠ:�`áñöv|ÚîݹL¡X"eКnÔ?4ý]hR¼ भ¹Tn6y½‘™Ç@.‘”CW©ôÅR×h Í€ÿ‡&™y+Û'àñY¡0›ýÞ¹HpËE„rs+*¦ò2aÕ>ñ}hœµ` έ,Ë¡G½HXhøÚëµ;”*"$ºû‚A-WƒëÁÛçv÷IaVÚÆ$<L¯(£�™,~?ŠªT�¸<#AÔ®é,6´ËÚÞ%?öÆ €D$+AQs[!(#ƒ “H%rOp:â²ò¶©<U!ˆMJÇ,³OH$l—JP»Éü �EÙ0˜¼Û?:=`Vwåq«4Lú–‰Él¶¾a2äõÓÄÎ+)V(ÔjS[]mS‚Ô[JµZÝf N7TгI×/àØL]}è )“Êå*•ÑÜP+f Ôefs5RQi°yÆÛ•|1~9`¦¼@$22º ¸žLj0˜ÍtÀëBµLDHêPW0àa²oX¿  Á`dQÀÌÐ@b0˜L6‡ÇÛç0汩ž²¢¯/8štÛøÔ<ìkË�xAÀŽ�/›¦Â„tßl¶;üÁÑÐÃ&ˆ¤*Ÿ{¢â€œ½)zÃ,M$ðQ£Ñà“Ç¡ï²á( <ßî †‚6»R(–Ë ‹Åüõ×õ ŸÂá6c–¸<‘(Y®ñzϪ6b’À&Êäڳ÷Yõ¢*‡³“ÞÀlÂâvì9~æã¥�®HÈdU þ!µŸœD†¤òÊZƒ¥Ëë5éªä%¥Š>&C„í;ßùðWŸ>·�eeèõRÚ.a ›€Å&§�?ÊÈb2)óI§oÞ”€ßÆø¨èøù MÍͱ�2%C§ƒˆÁÄÅ-�RRÉT* ³¹ Ên&‡'–R°‰™™?9ùùÅšæÖ–%�,;Ðç`²×¯ÿÙÏâã -‡/ΨPH^ßÞ]ŠÃíÝwüó 5W›;ï:;—<n—ç9�‹%Bp¿D¼W­KTU•*y!aûÞß8ôÉÑSW;ûc^>LEíO~€Èâ’“’ðø\®ÒhBQkÛëõU¥ ú6Þ÷ñ¯÷ìÙ³·æÆ ¯w1@ÊåeS]èO!r\\. §sJêêLƯêkB$ÚOgpó‹NŸ:tîš/ –|‘˜œ² “”D‚(&pØ„¤ä]ÑågFÅ—Jå¥çkæõi“/à‹ |D§b0Ñ8@ÉŠ’·¦a“˹D^vùJóµ–¦?\¿þ奫ƒ1€rÄl6[Ö¥âa8ú|VžP$‘©/×\ºXÓØÔÑÓãtÞîïÜm½át~ñ…óÞD �AÌ&S[€Oᬠ8›¹ïèñ“§.\¹rùJS˵žž›7ov´47]ýòü--­­¾áX€D.ÿ ñ6›Ç•I/]ª©éèé÷ ᩱÀp?ØõΚӧ<x°¨æªo0 ´P„^<ƒa³¸>=qñ �è¼sï¾Ïç»ç½NçÍžžÓ‡ø'ŽŸúüRKÇp` /:ñ<æd(4MËÅ`(™­ÀÔT àìýæêÅs§�Ç9Õz½ÓÙII¡]®étÞ¾ë ÏëÎ�xÞúרÌéE€±ç€Æ//|~´èÓ“—¬VK›6ýÍ/_¹Ù{»8À‹Î€æqyý\ð;%óxÑûö=úûšg¿× ‚2)TJx¤·Ï4_sö&€õl8üÌ‘¸ó�‚û9 ëxÑÁƒ�PXUÝâ¡DÑPh@"a“Þ¾ØÜÚÛ;¼0¯ŠŠŒŒ­àVŽnc­¶µµ¿ßë �ÍŒJæGMÍ·ïMDíó³1€uëvSÓ@±�0›úÜ^ïÐÈ‚¢µÚd�¼{¨¥ùÛ;ó;žZàò`¸á+2‰.R]ƒÃþ�¢øÌÌÌœ„�e½ûisKÿ=à@À~,6°Ù4¸VSv‘ …:]4?€¡!�˜ŽØ"%ó|s‡Ï7~0 ô ˆPa³B«­-‘1èÜýÚjk;H¼Q@T#»ÒÈ´š®}ëóM…£ö³S{m…Ç­ÔÖÕ©&—«ÕvY£€‘g�t+žÊ:ÒÓyÛˆÌÛφc1�1´K*©®¶�3ôV¡€É‚J'zµÙ]·§!ŸÃ9ÕÓyÏ7öÐß±¤:d¨•ºz+¸\·Ä…,–Hˆ _éF rMT“‚çò/:S³Ï�7þk±=L£ó´`û\n°i“.´X–A Äò³~rj¾ Æy;~f?;õŸ1H†÷ë önRƒSu -–$oE7‰Ãð …B!—R ¼ê¼ó055x"6³Èåª f·;zø8q9þM (JU*]½¹MœŒŠ{ûŸÀYþ‡˜‹™ •ížÑàôôÜ£ÉÉç€m„b™J¥7¸‚µ v)5Þ¹ÿ ‹õ"žR,µÚAE�|æÅóÁ]³™ÍB—g|ÎŒÇKJ›_ë‹ìÙéuÕHpæÑÜÌLpÔ`x‘µmápä–7ôĵ-½TÛzðÁü&<x0<xu †E¥•.ÏÌ㇑·‡C}À ˆuùQâv™öšopÁ ¦Âƒ¾šÅLjÏKJ‘r÷ˆ×íRiÙ/*[l"—«)· ·<öÝPqô LM-�|ý—^Vi9 ƒÁðU]uuÔ Ûhô—hÌëÂ~.p„òjYÒrÝw"¼�èw^|éC°ÑÓ××gÖÕò¹9tÞ:ÆR�/Šà ©óc 39o¼<Æ0¤Ïî¾v£ŽÏ¥“ Å»ƒÁÂÙuuz=¸[Ç#?ó‚‰@GãËçÃü.«£¯Ïf5qsrbS� ê íh·ÙÌÍ8âì]¦¾Æ3/�¹,QuU½ÁXQVɦ/lærÚº]^Ý&ÈüÄùíØ<�,áÝs/Z›0xA‰8l.‘˜˜€[H<ÌïêŠÆDùÎ}= €ðØÍ–~¹„……%J%RYÉ!AIØ„XÀë‰<®¾ýˆì“ê{{:Q@d"ðÍË-XG©¬°F›dãµüüe›¥@ªtÕu¢{:;‡àÁTω_/ŠæµÕöàH(2g[–½oé¿©Ôé*áÎw®u‚h>îiùèÝE‘D¯sŽNÎ̵I¤’em¸mry­ÑØÖ¦.Îë­æ�x06üû“‹ÇätY‡"pmJå²>M¡Ö[­vTÉcàp½Ñ;Å×"¦¹Ìèj÷Gf"‘È-•zYcd[š‰å<w�&&nwücl¥m1„BA¿ß¡Q/[Bz¹Îä°µµUðwü¢ñ~ <¸V³¤Ø7À-fÓëõ+T‘Û·©tFÔÞf® ßùË+¾(àgbÇd ’Ûu:Ý2sÌZv…Ñl³ôUBÑ{™—ï ‡}΢½1ƒÒ³êv»©\½¼ÇˆI`Ы­@j ¨ÓµïòÝÁ°- Çvº¥gÏ*•úîå­Þ-8­Übµv•I$Q@Í{>SY옸´i©\&f“ÈËëèd*,©Ó*Ôg¾œù¦¹µ,ÖW0àhd1}%@œ-Ö"Áü_ïp²©åº:¶é€sºl¶n…àðŠ­$WeÒ‰„ .ûW¿;~dé÷ <ÝÔÕå@¾`e�[PéAËÕû!ÒBìÉYÚrÀ#žQËUËæ°Wàè\Ûµ°lÈëz?ø½&ÚŠmVΓ£ŽnK½Jž¾}Å~Éë´+‚üUú´„,Ñ-ÔÕç°Ö¥¯Òþ#h Šæj A,6'r ˜È«}€cmõ>16ǵûƒ“öÕ‡p·þùÞä†x¶XU)MI^u1ÿç�qHYpyæÕǾWz¥ÕõlRÃo}Œ����IEND®B`‚IMAGE 1015 ./arch/misc/icecube.111 ‰PNG  ��� IHDR��� ��� ���szzô��¾IDATxÚí—ÙK”aÆç_h¹ˆVRÈ ,ʲ‚ºiñ"ˆ6"ˆ(¢vJÑ2—Ò,%³„І(³B-J´²ŠÊ¯*ÂÚìiJk´Ôœ™oÞ·óÞ¯÷¥ g¦ /ž»óûžóœóžqI)ÿ«z�z�ºýAÜ”Y=s)æ®Æøyk0Ž4þJ\°“—lÅÜäB,ÏqcÙŽRD “8±¤Šês¸vç®ß}ˆÆ&/^ôáí'Þ‘šš}�éCK+¼¤Ï_Ûá I!! „Äá3WÀÐqÓàlÝ\¯oÀ+*ìëðù%Úü_ßH¤Î @—%á'B)DÅA”T^Š`àȉHÏÎíÂ¥[wñðÉ3ô=-Ѫ Û^+Ñ´‹K|·¤ 0òœt`e•V""€Añ“™»#¦/ä¯oùââm¶øËYÀ`; È~v�A’ °¥¨,|€~ÃÆ`sZ:²óò1vö 4<}ŸSœ^RqÚ  ÓI  2°üH‰õGÃè?<Ûwäb‰›S¯¾žÅ½÷ó×Sqv@· Äp @g@Huùaô‡Uë6"k×TÕ\àÑòÅÍðµ$tÊñ;€°Ž„Ð{`,6¥¤±ýu7nã9š±4«ì@Àt€Ä¨ Ð-`ûõ°ÂèÕ(’·f°WoßÇÇö�/£Tœ­æþwXdÄ�:„4F "HÍȆkñ>^>Ÿ»(H;i€€jAPM%t ,ÝK(�)#H#€=û0À ÀÅ 0Ø.„8„EÎy £<‘äÕ×`Øz#„fœ*�½Ø{=ðî×�f¥Cé8À`¡w€Q\’Röû�Ú~½,c ±„0”YR]fnÈg€n•ãþ©ÔâãpŸ¾‚ƒQXVƒO5À5?¹… ´6ÏA=$n3‚*„ž-àâá ˆAJz¦½øñ~óÿ@–nP!œ}Ó.¬Z @ŸÁqü�?DOßÀXÃ@ðׇH€ûo|}Qy-"=Éø%LÞ–Ø I8U[çÑy $ßN-c•Å'ÎG /¡©üxNV1À£—oá:N]fÈÕ{ ãjwÀ8âˆU· ÛSŽË·êâÁãF4¾óâÍ'º›[ÑDzOB‹ÍmŽÎæ)øë«8>iå`%߬n.á9[ô%ÜóǤ \ý�`•l“å(Ÿ����IEND®B`‚IMAGE 458 ./arch/spell/Cone/icestorm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ½Î19­1c1Bc„Z½„”cJ­­­ïïï11­ÿÿÿ„ÉD���tRNS�@æØf��ZIDATÁ±ŽÓ@†Ñï"¹üo6ž‘;o"c+jGhC™AJ&.³Rl§ ”‘€Y¿-ç� €û4¬:ì[=çÄ Ûì±MR˜-^ÿÕØÑ\‹ò–æw>$X E_ácÔ,LÛ%°(spÖ³ ],À} ädí"sX{€îm‘oXX ¸ew c²aI6 â,—ƒúù¯3ÛqoÁó’öîÕñzâôF[äÓñ õù‹0Ù&™< ÷ÎT£b²ƒ+î©.@ªáa·ÐQðzÖ^œ¦àÏî&û\d›X¾ˆæBû¦zìp-²Ý;¡Ç’€8ÍX^dhÀ\Ðþ˜Ë6�€?€Xæf&–ñ%ỽ­{°^Vô “lx‡õ$KòÙmø+Âr&ÌõW{µ\zê!ÙñtOÐù”ÀµÎM˜ ¦˜Åa�@¥zæ?˳S¶l]*É����IEND®B`‚IMAGE 416 ./arch/spell/Cone/icestorm.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ½Î1c1Z½„”cJ”sBµµµ÷÷÷11µÿÿÿF¶À���tRNS�@æØf��3IDATÁAnÛ0EыƛfP Ûˆ TÚ† #d‡m ‘¾H ¿7`™Ëî9Ð*€®&›0t|MÖd€eè‡[}'™¾€J¤‹âT™­š~¸ýÚ_@û �»RÔ¢„ Ôó8 ýêSÉЯñmŒ?ÐŒîO+½ŸsÆ�íðiUZúXÄþÏúê¸U@4þÂã0LY šfèO³'÷‘œ ¢gzU¯„Had­ï ŸWŸ dtùD%ÒÂvY)ß8—½DC¯okeÍ¥_eÒK�çgs›Ù �(-ÐŸÖ @Ä[Uð8ܪ¸¯ñÑŠÓêøhÅbÖ4–6ÛXDù´ÒXd@÷*"`/…5e�P�q#   ú‘A¶ D¶ÂÐ*hTØÖ�ÐÝ ß þ¦Ñy2ãyË;����IEND®B`‚IMAGE 452 ./arch/spell/Cone/icestorm.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTEÿ½Î1c1Bc„Z½„”cJµµµ½½½÷÷÷11µÿ÷ÿÿÿÿR>���tRNS�@æØf��QIDATÁ1jA†ÑoÍ®¨ÐƧp&…r°ì„#PÓ…"ÆSõ0ÃD¿ØiªŽàxÐ)ý�g'vÎ�б+ø"°Ô]Zuú,«Âbœ&YýðXàÇz³N:Ôý¹Èðy ·"°Ô/ ¥U¿û-K ÐgÙX8prÇΪn꫃]HÔöÝáåM™™³®MÇÙehØ�t¯7…ë×g�ÀbW•µh˜�°$e9§Åh$�@¼h›>g™[ZçôDq‚ª¾ôÖW}Úô ‚¤öYumÏ4p…œ%Æ!ÝÊ K¥—aFÊrh}¾ô¥/TYVaU5眓ˆå¯¢p¯÷(‚SIõ¡|ïâXžÀ.ñ/í2b›à8I|ÛÕ›¥HaïX¨ÚV·×¨7ugàúá¶Þ€ËM&Àf·Ë\'¥H‘,˜�ü “”\,“œ����IEND®B`‚IMAGE 157 ./arch/flesh/demon/icor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���BIDATxÚí1� ©ÿ´J*ÛÅÄÉ „¡ M£ù”a.²À’šÖ¦ô=ÀàpÔUþsÄ)(vT‰k‹hž˜@f:8“ás����IEND®B`‚IMAGE 157 ./arch/flesh/demon/icor.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���BIDATxÚíK � DÕû:D‘‚^A«>ü,fQšO±ä,«‚Å5ïX «p� y=&êSq~±MX€î_HóÄ�=ü9É* ����IEND®B`‚IMAGE 160 ./arch/flesh/demon/icor.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���EIDATxÚí1� -ÿ´QHšXppràb\®Òàh>Å‚R“ÂL¤~óûV€•ÈÞ“Üs¼ã5âNKtRÿbóÄA}:B‹����IEND®B`‚IMAGE 158 ./arch/flesh/demon/icor.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���CIDATxÚí1� ­ÿ´@c1qràBp¸bGó)3К(&”‡?¶‹øl:ïTEÞ1wùß8Š’ðÞ hžX?9##ד����IEND®B`‚IMAGE 156 ./arch/flesh/demon/icor.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���AIDATxÚí1� -ÿ´–“spràRº”ЄÑüJ$KË<”[‚8€霫 ¸ÁH÷ Y›Ë›7&Îl|.»����IEND®B`‚IMAGE 155 ./arch/flesh/demon/icor.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���@IDATxÚíÐ1 � @›ÿ?Z¢ (M'‡žØ%Å€­ü ƒŽ/‡Ìyoà>0tÓ�Š[ƒßØ™_,o:+AlúÝ����IEND®B`‚IMAGE 152 ./arch/flesh/demon/icor.117 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���=IDATxœc` /`Z�eh­‚2–®‚qÍÊ\a¬\–Q²,kTí2ˆÔª¨™m+—­‚I­€š3˜º��ÝÔîK����IEND®B`‚IMAGE 148 ./arch/flesh/demon/icor.118 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���9IDATxœc` Àµ ÊXµj˜fZ™ ap-›•aÌ„Ji®ZºÌX–•Ò‚Iq­Z5gMœ �ûÑ/tš;Ù����IEND®B`‚IMAGE 138 ./arch/flesh/demon/icor.119 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���/IDATxœc`hÀÕ�e¬Z�¡™–®‚ÊÌJƒq®š¹ÌPK]ahÍÊBÓE#��Vö ÐI¯i����IEND®B`‚IMAGE 126 ./arch/flesh/demon/icor.11A ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-�Í�7Q˜���tRNS�@æØf���#IDATxœc`|€kŒžÖ�fpfeBj³VAZ+¸èã� £¡fÆ7����IEND®B`‚IMAGE 114 ./arch/flesh/demon/icor.11B ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V�Í�/êýd���tRNS�@æØf���IDATxœc`  `n�ü€„ü ÁG¶A�œÄ`m‡º$����IEND®B`‚IMAGE 108 ./arch/flesh/demon/icor.11C ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V�Í�/êýd���tRNS�@æØf���IDATxœc` `n�Œ ™�B+³ƒ¸����IEND®B`‚IMAGE 193 ./arch/armour/boots/idaten.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���fIDATxÚÝÌA €0 DÑù¹ÿ¡5¶É(Ýt!þM óT_ŠÕN¬v0Yÿ‚,Î䡃ªžd€‚Û1 ä Æ2Zµ¶ÍãA€Þc˜×w²úS«²Ï¢ž&;p¡_u�»ã7»S¾¦����IEND®B`‚IMAGE 190 ./arch/armour/boots/idaten.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���cIDATxÚÝŽA À0 ìþÿÑ‹)#‡dtíiL,Lô)Øêa!TDàËt#pãJ?É‹]A ÈX ª‚_sô‚m z-hF г€¸—º“KeߤÛy£›ÓÊЯ¸�”Š*6ÖàA����IEND®B`‚IMAGE 314 ./arch/ground/Winter/ihole.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷@@@��À{{{ÀÀÀÿÿÿ@ÿÿ���ÀÿÿŒ gï���tRNS�@æØf���ÍIDATxÚ­“Ûƒ D»zÐþÿ·`$ŒÓ—'—Ù I�_ÿñ×õp%k(ž9Ž@Ž”Á¡»£Îpd³ºr¨î.mºA‚Î܃äV'4Î]©*¨J Ö„å°°öðEßDZ®EŒîöDÍ+eS[¡î¾o:C€é$jyÐÙE(ŽfTM8ã©•Ø ¥šŸ¯N ³- $‚˜3Ò%N & Ýù® {Üö²³ÊÈLœ(ß>“îÅlÒ2ÕÏÛ¦x�8e‘ø�Ĥjäë����IEND®B`‚IMAGE 253 ./arch/monster/demon/imp.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�r‚��y G$c1BBBÿ��²""Ökÿ×����}-„a���tRNS�@æØf���ŠIDATxÚíÁ à ³µ]›ýÿîyXÛ@=uú`ÆHÜ~.ƒ‹TÐÇ@Â9Mª)®‡$Ȳ¦üþ :‰cFÐöÝãÔܼcJ?kÊ@°ÆÔÝÁòô°3Uäê¼?½ ÃÞ†$µ%6]­µz¤ÄÞ8 ÞxÖº½¶5uTJWâÏ÷¼�ì>¸dó����IEND®B`‚IMAGE 252 ./arch/monster/demon/imp.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE��‚��y G$c1BBBÿ��²""½½½ÿ×����ß`[���tRNS�@æØf���‰IDATxÚí1Ã0 ­V¥þÿÁ¥à¤ÂèÒ©7Єuàñ{l+lTî…F½!iÊ«,¯9«Õ÷¶„�L¥ëi Ç‘Õzá¡€g«ó%d€ ›k<gàÓ/_ Ì Èh#Ý‘‡¡Ä“'­` 騎¸-ôÐ⌤_peϹ٣LŠ÷ç{Þ(3/Û- ����IEND®B`‚IMAGE 217 ./arch/readable/imperial.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE"²µ���"²µÿ¥�µ{�÷œ�΄�ÿÿ�ç”�˜ï}���tRNS�@æØf���lIDATxÚåÒË € FáÎ?™¾ÿ‡TÈAÚÖAÐÅǸÐãOáÕÖÑhÄ8=�yYÝf@œ(`„|Zƒ‹`f«�-@, ú  úô´‘í ä�Q“ Fˆ lÞ¿¶é¶û ûÿô™näŠÓ]K)ê����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_cha.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ,&ëœú¶��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒÿ¥�Óx0Ü���tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š99»ƒ€‡—/ «`bô ŒŒFh*]ý²1 øí¡²QÑ1â1Ñv0šÂMˆQŽÁ°¨ÂÈYÓy¨ 1‚1@[0 7ð†ËGc³AÉÐ':ˆÉb>6ª&þÑAl1j1Ñ8¨[D‡°IÄXáR éÍÅÌÊ„]£”–1/‡wHPd´uØ¥ypÅPœ®µ'"ж6ú6¾0€©@TÅÖ 0JP˜ „õ,Ü�flË2††@8ö%Éhîà.X]AÐ�ÚLVéÉÉ£œ����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_con.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  'uªpð��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”R÷”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒÓQ���tRNS�@æØf���bKGD!Äl ���íIDAT8Ëc`J€ `Ê+™;»x€€§· «`bô ŠŠAh*ݲ"‘ ø탠²Ñ1""1v0šÁMQÁ°¨ÂØYÓC¨ "‚"@[0 P0ôËÇ`³AÙÈ7&˜Éb>6j¦1Ál"ê"18hXÆ„²IŠXãR åÃÅÌÊ„]£´¶ /‡8whp0dutÙexpÅP¼ž&'¢Jv¶¶~0€©@LÕÎ 0JP˜ „õ-Ý‘�flË1……ƒ@ö%Åháè ®X]AÐ�µ¤Stù½²����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_damage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ,|û„ö��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’ÁêÂ~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒû����tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š9»x€€§· «`bô ŠŠAh*ݲ‘ ø탠²Ñ1â1v0šÂM°P¶À°¨ÂÈYÓy¨ ‚@[0 7ðËÇ`³AÉÐ7&˜Éb>6ª&1Álj18¨[Æ„²IXXãR éÃÅÌÊ„]£”–1/‡whp0d´uØ¥ypÅPœ®'"Šv¶ú¶~0€©@TÅÎ 0JP˜ „õ,Ý‘�flË2……ƒ@ö%Éhîè ®X]AÐ�‘UŒÊåÓƒ����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_dex.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ©›Å��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒ÷½RÚÉå���tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š99»ƒ€‡—/ «`bô ŒŒFh*]ý²1 øí¡²QÑ1â1Ñv0šÂMˆQŽÁ°¨ÂÈYÓy¨ 1‚1@[0 7ð†ËGc³AÉÐ':ˆÉb>6ª&þÑAl1j1Ñ8¨[D‡°IÄXáR éÍÅÌÊ„]£”–1/‡wHPd´uØ¥ypÅPœ®µ'"ж6ú6¾0€©@TÅÖ 0JP˜ „õ,Ü�flË2††@8ö%Éhîà.X]AÐ�ÚLVéÉÉ£œ����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_enchantment.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ CÞ=6��PLTE������"öê:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒ!97˜���tRNS�@æØf���bKGD!Äl ���íIDAT8Ëc`J€ `Ê+™;»x€€§· «`fô ŠŠAh*Ý²ì‘ 탠²Ñ1ìì1v0šÁM`Waǰ¨ÂØYÓC¨ ìBì@[0 P0ôËÇ`³AÙÈ7&˜Éb>6j¦1Álìêì18hXÆ„²I²[ãR åÃÍÌÊ„]£´¶ §8Ohp0dut9dxqÅP¼ž&?¢Jv¶¶~0€©@LÕÎ 0JP˜ Dõ-Ý‘�flË1……ƒ@ö%Åháè ®X]AÐ�ÉòR²(Ä����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_int.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ -Ýè·p��PLTE������:;2<.?>3JA'XH+ZÞ”^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ð挈ÿ���tRNS�@æØf���bKGD!Äl ���íIDAT8Ëc`J€ `Ê+™;»x€€§· «`fô ŠŠAh*ݲ<‘ 탠²Ñ1<<1v0šÁMàQáÁ°¨ÂØYÓC¨ <B<@[0 P0ôËÇ`³AÙÈ7&˜Éb>6j¦1Ál<ê<18hXÆ„²IòXãR åÃÅÌÊ„]£´¶ ‡8whp0dutÙexqÅP¼ž&'?¢Jv¶¶~0€©@LÕÎ 0JP˜ Dõ-Ý‘�flË1……ƒ@ö%Åháè ®X]AÐ�‰€Rý`eðì����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_pow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ .*ÐÔ��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒÿµÞøÑÝ^���tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š99»ƒ€‡—/ «`bô ŒŒFh*]ý²1 øí¡²QÑ1â1Ñv0šÂMˆQŽÁ°¨ÂÈYÓy¨ 1‚1@[0 7ð†ËGc³AÉÐ':ˆÉb>6ª&þÑAl1j1Ñ8¨[D‡°IÄXáR éÍÅÌÊ„]£”–1/‡wHPd´uØ¥ypÅPœ®µ'"ж6ú6¾0€©@TÅÖ 0JP˜ „õ,Ü�flË2††@8ö%Éhîà.X]AÐ�ÚLVéÉÉ£œ����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_str.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  6P��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒÿ���xp���tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š99»ƒ€‡—/ «`bô ŒŒFh*]ý²1 øí¡²QÑ1â1Ñv0šÂMˆQŽÁ°¨ÂÈYÓy¨ 1‚1@[0 7ð†ËGc³AÉÐ':ˆÉb>6ª&þÑAl1j1Ñ8¨[D‡°IÄXáR éÍÅÌÊ„]£”–1/‡wHPd´uØ¥ypÅPœ®µ'"ж6ú6¾0€©@TÅÖ 0JP˜ „õ,Ü�flË2††@8ö%Éhîà.X]AÐ�ÚLVéÉÉ£œ����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_weight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 1˜eôà��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d¬Ôப°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒÐ÷óÑ���tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š;»x€€§· «`bô ŠŠAh*ݲ‘ ø탠²Ñ1â1v0šÁMÐPÖÀ°¨ÂØYÓyC¨ ‚@[0 7ôËÇ`³AÉÈ7&˜Éb>6ª¦1Álj18¨[Æ„²IhXãR åÃÅÌÊ„]£”¶ /‡whp0dttÙ¥ypÅPœž&'"Šv¶¶~0€©@TÅÎ 0JP˜ „õ-Ý‘�flË2……ƒ@ö%Éháè ®X]AÐ�©OT'¹î����IEND®B`‚IMAGE 664 ./arch/spell/Scroll/improve_wis.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ . ÊÙÐ��PLTE������:;2<.?>3JA'XH+^@$gb<mh?~R'„V)ˆˆˆ\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϦ~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔÞÞÞßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒ$¨š���tRNS�@æØf���bKGD ³k=€���íIDAT8Ëc`J€ `Ê+š99»ƒ€‡—/ «`bô ŒŠAh*]ý²Á‘ øí¡²Ñ1ÁâÁ1v0šÂMVư¨ÂÈYÓy¨ Á‚Á@[0 7ð†ËÇ`³AÉÐ'&ˆÉb>6ª&þ1AlÁjÁ18¨[Ä„²I[áR éÃÅÌÊ„]£”–1/‡whPd´uØ¥ypÅPœ®µ'"ж6ú6¾0€©@TÅÖ 0JP˜ „õ,Ü�flË2†…ƒ@ö%Éhîà.X]AÐ�ª-Vä#}®����IEND®B`‚IMAGE 986 ./arch/misc/infernaldevice_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��kPLTE�����………ˆˆˆŒŒŒœœœ‰‰‰‹‹‹]^]_a_‘‘‘’’’”””–––———˜˜˜™™™‡‡‡   ghf}}}|||)))***"""&&&šššmmmxxxŸŸŸ¢¢¢¤¤¤{{{{{zrrruuuvvv222yyy444777999DDD'''ƒƒƒded‘+!!!lll,,,£££qqq§§§¨¨¨·µQ«««—–1}~}~IIIJJJOOO„„„RRRSSS…†…TTT]]]abaefe---hihjkj111ŸŸ9 Ÿ:ppo¢¢<££=$$$vvu:::vwuxxw<<<yyx???¯®Iz{z±¯K¦¦¦²²LBBB³²M ©©©EEE}}|·¶Q¬¬¬¸·R¹¸S®®®¯¯¯²²²ÊÉdHHH©@ÆX���tRNS�@æØf��IDATx^•“EsQ „Ó‡—yÍÌffffÎÏg2vìÚòÁ}“ôUZÒ‘Ã …s}U3ÛÄÉ‘Á±m…TûsúФ²4ˆ@E!ê¥3ÇçÓñrÙ<ܶ¶Xi´Ÿ˜Ç<îkæÐ>™uYבKXYIö™uè8vã¢d%eÿ XGó3(c)£õ{åóép{@GøÂG䮉ÉénÔ…ï»¶¿C *cúgË‹úâ²a Õ­°�`SC ÁÂʃZµ15ýirbB éê¤ Ç+1Dóä¹wºE•™1•ÔÆ<pîê9�´4óJ³—GZ­¶TêU•;/²Ô jH$i‡µFy4%·ònd!`V’÷/_Å™œR›«äÝ8›˜ ~}]ûñó÷ŠcÍT Öo£”q)¡)dȈÜPCµrÕ°-NA(ãà ¯iÃæs’"«‹Ìâ d¨‡ÈØÑ›Mu©¨¤ZWmáB×)bè"Š×77±þ±»¶Þ©ÔU$†—¤­bg—ˆG´›o!%>Œ,­âšf>ừð k [w)àtN<v8Ÿ^Ï6q{ka~Žräê­ÅE… lÔî›C!“ôºf>÷ÜÀ?•˜µ½õýçDu3ëÈDÜÜ×øB§äÖ±ðŒïA¯ÛTýUb>jVÿQ¯ƒBÞ¯eY޵"<8ü﬿rëDVNÜ­ ����IEND®B`‚IMAGE 567 ./arch/construct/house/inn.x11 ‰PNG  ��� IHDR���@��� ���•C޶���sRGB�®Îé���3PLTE×´Ã���{{{½½½c1BBBççç¥R)ÿÿ�Þ¥!ÿÖ�cccÿ¥�„B!¥¥¥Æs9�Î�ôðœ×���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ;ÿ‰“��pIDATHÇ­•‰’„ DiNA÷øÿ¯Ý$D•*u'PÒƒÒóQùL` #"nE³>šEpÔ"5Üi›O>ñŒýÆÝµØ @ F5HB0ÓúùY`­€ÀŒG}­�À³_@ žþ;w1óóP�W ÞXäX§Ïv¤ €Ó¦ì&`ƒ³ìc�`‚Ó]pô—§r;DŒö¡\ðc½âpR ’¿ˆh-F�\2¸¬@›Â€Rð§ E5x«¥þ¼³Õ€ RâûÀC«°Ïc{!R ðÞ£”’Yì _2'9úNm/TJ2U™SA™&U²^ÒÃ4•š'©ENÓÜF’¿­Š X)@åeƒU-¬öoíDÆÎ9WîF¨YýMeY9ÙPV)@åÖ“»2­sÎJï­@9\àÐ~­µ.pï%‘_§ l÷] !XéÝ uæxÌçâá·' 0b&(����IEND®B`‚IMAGE 519 ./arch/construct/house/inn_fant.x11 ‰PNG  ��� IHDR���@��� ���•C޶���EPLTE������¥R)ÿ��Ñ%%c1ûc!!Þ¥!ÿÖ�ÿÿ�çççÿÿÿ)))ÿ¥�d4!n.{{{½½½BBBÆs9�Î�¥¥¥¦ ÔÞ���tRNS�@æØf��pIDATxÚ­‰ŽÃ C1g.ÒkwÿÿS×™&” 5i  ˜'3êK¢;î}o)«×@ä¸!Þ9z¼1Ái§ñ¸ý!Õ `Dà ”H?°>Ó\'àùšK€)A¼ÅS 0O‡ž àðA�‹æ£Ö àL€”�;üW•ÖÐ{ü~«J�<àv€%}ZúòÅPò¥ËRXÚU$B=�{@@%@Zêø·“ è`,´œÐ °Nã§& z§Ö µÅíÅ ×Ð{‚J_€smÛ6p¹ƒ†Ë0ñ·Ì)•¾À”RÕÐÐuÝìX|!´]×NGâF¹Té SDHXÐMåæjà©�$¹�¸«”ÀcŠÝP4Éõì�ðð·…›„qåY@¢ÜÁÌ0<].“S9À{o9·ÌÜ_<ðÈ�°ÖúÀ¹Ù²„òU™B°œÛ-ë@(@}Oÿ%0HÝÿÖß����IEND®B`‚IMAGE 134 ./arch/flesh/misc/insect_sting.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���µ!!½÷ÎÇìPg���tRNSÿÿ�×Ê A���)IDAT•cX ÅXÁe0@+8D´ÀŒ«X!ŒE«` z»�Æn¤°Y´8Æ����IEND®B`‚IMAGE 184 ./arch/flesh/misc/insect_wing.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����ŒŒ½½½÷ÆçÌ•Š���tRNSÿÿÿ�@*©ô���WIDATWcø $3ØCZýÆŸUPƧeþPF*L$ Ê8g„Aµ[aüá„2­L…04Ó&‚VÍZ¶ôÏ´(fcå ¨34˜¡ŒÃX\H�§z蘜Êû����IEND®B`‚IMAGE 403 ./arch/construct/window/intermediate_window_1.111 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTE���ÄÄÄYYYwwwP$2111o2KKKiRAAAA×××Ú ��*IDATxÚ­“ oà D}fYhúÿÿïNgä™RöÔÆºÈ¼òU{ ò\ðxÓ‚©Ÿ ©Š[ù:þ¢¢·OPNÁwÏy Q‚è|jMP >)g�·I`î^š Ž‚: ˆ•»€%uÔ=^l ¦%ä&ì 4¨ÛD ƒ;4>úÓ`ü˜oÎ�ù{)00úîh­)ÈEÙ®À`Z}i-Ÿa- ˆCt÷H1~÷ޱf ctÝbÒfðê  Çç¤V/B§pöÇ9 ¹')H(X0÷ £ÛR0÷3™ 0ößX±x€VQì®ëÂÛáQZÍ×; F  2þ&!qo⪠£òØO�ï°ÕLý÷‹„÷‹„žõMœûó*ä‚Ïëé����IEND®B`‚IMAGE 225 ./arch/construct/window/intermediate_window_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���ÄÄÄYYYwwwP$2111o2KKKiRAAAA×××Ú ���xIDATxÚí’A€ )X©ðÿÿÚ”‚ÔDk¢Gç2éfÆ\ÀÁ\¢CH Þ‘8Xg2š³4à¸4 Ð9 Ð\ÛDFsJg³7øâUǨÔcæ ”•—&µÎ-�h‹H-Ò�*Ù"uŸŸ|ƒÃûµóóÕ¨æ<����IEND®B`‚IMAGE 123 ./arch/system/inv-curse.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���#IDATxœcøÿþÿñüýÿý@â;ûÿ?”øW  ��¡˜T±FÅÁ����IEND®B`‚IMAGE 116 ./arch/system/inv-damn.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATxœcøÿÿÿñN Äþý·/` ��ÐÉÿŠ:����IEND®B`‚IMAGE 128 ./arch/system/inv-equip.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���(IDATxœc` ðó{ý†ÿÿëÿCˆïöåõ ¢ÈýÿBüþýþ�îh°Ël¹����IEND®B`‚IMAGE 130 ./arch/system/inv-lock.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���*IDAT×c` üøñûÃïÿÿÿAˆÏý}?þƒ Lüûñû•�¡€É@& ����IEND®B`‚IMAGE 125 ./arch/system/inv-magic.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���%IDATxœc` 2ø_ø½†áÿÿïÿÄ0ñN@Åžÿþ^G¬q�üíëáˆÙ����IEND®B`‚IMAGE 125 ./arch/system/inv-unpaid.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���%IDATxœc` 2x¿ÿx=Ãûÿÿÿ£çÿ3üÿÏ%~ïD�BU4;üE����IEND®B`‚IMAGE 886 ./arch/ground/Winter/ipond.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���çPLTEÿÿÿïï÷{„Œïïïççççï÷kkkÞÞÞçç÷ÖÖÖ÷÷÷÷÷ÿœœ¥„”µççï„„”ÞÞï½½½½½Æ¥¥­ÞÞçÖÖ¥sss””œ¥­µµµ½µµµçïïÖÖÞ­µ½ï÷÷„Œ”ŒŒœÎÎÖ{„”¥¥¥ÆÎÎ¥­­ÆÎÖÞÞ÷„„Œss{­­µÎÎÎÎÎÞÎÖÞŒ”œ„¥­ÆÆÆŒŒŒ{{{ÎÖÖ­­­ÎÖçµ½½½ÆÆ½ÆÎïïÿ„Œœœ¥­ÖÞïÞçï­µµ”œ­ÆÆÖÆÆÎÖÖç½ÆÖŒœ¥Œ¥­¥­½”””Œµ½œ¥¥Œ­µ{{„E|Ì��JIDATx^=S…Ú#! $¬JÝõww—s¿÷ž ¡½)»Ý™I0ÆdYF”mvb/»ÙþUZ)Š»ðïð 7DAh6vwY@b‰ÄTYѱ¬¦×¨=€M iÞÕZ¡‚Œ{½7!i �â¨Ë¤ŠEÈ! Þš†Ðu+KS®„—\v<(’w+|Y–³³ƒ=/6ò³ë i ÕA‰X rd²Kžlí[Àë!âD×bùî93¹ bêŠ}À~ÑG´X<«CÞ‰gxñéÃduŒ?Dæ®8V‘Œ÷¬U</¿¿ ÖOÅÑc‹_Ý]J±Æ†=' ‚5îì vÚãvÑ…–_+™$@r„ÕÃÕ¸^ÕËoƒà΋€˜Ckí´ûT".×Ũø0jÑ9‰áÑ4÷å�ñu>z•�õòS‰î”†Tðåkˆ—ýqQ\Ôÿ“ØŽFu_îøÇùhþÔ)~ï¶c–ÞÎCu^âeg^/k XÜî‰À˜|+˜žI„¿Ø?¿â¥jÜćBk%¥g$u.Fxs„Ç8<ÙFȵ›Ì‹ÜÀí`0a»=ïíZÊ Ö�D"€ÜdÜvˆ}Œp?œAxèpòÎ9¼Þ-äÑiµ>w-Å17ñ¨ÄéÄ]ß8Á]+õL�QÀFìõÅŸ 9iM®R.sàxaL.þIiºN½vߨÏLaÙ˜z3¡) ô(çćÉs–åÇúÊ ¨æí³Î"´ºÖ±zcVÇPnãE¿‘¨®<_ˆXc˜(á½L/Ôš_Á����IEND®B`‚IMAGE 118 ./arch/connect/Gates/iron_gate1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vaaa���¤·Y���tRNS�@æØf���IDATxœc`¦`¬�2BA YÎ ��ö¾ ðmüø•����IEND®B`‚IMAGE 143 ./arch/connect/Gates/iron_gate1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���.IDAT8c`£`øì�!Ï„ 04@È3032:FR@ȆÁ��xŠ"Y����IEND®B`‚IMAGE 152 ./arch/connect/Gates/iron_gate1.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���7IDATxœc`Ô.à�â³(!�X€]…‹ ˆ€04„Aˆ€¡:@”aЫ­Ô��W¡¼üÙ›����IEND®B`‚IMAGE 163 ./arch/connect/Gates/iron_gate1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���BIDATxÚí1 �0ñÿo,:ô “áÆçsšÑ=GT 1Tab Z$ -§ -*¸a˜/=£Q'QÂ^P����IEND®B`‚IMAGE 163 ./arch/connect/Gates/iron_gate1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���BIDATxÚí‘1 �0ãÿßÜÑ…¬¥ô “áˆÏsäLÝc¤ 2†LNl‘bK D¢åD°å¢p `˜?]ÂW¿õÒßW����IEND®B`‚IMAGE 164 ./arch/connect/Gates/iron_gate1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���CIDATxÚí’!�0)åÿož„’š‰ .©‚Øò˜˜É¹ä…!E@€hIk¹îhÙõ‚j`¢ø”O8à~WÉ(ŽÞ����IEND®B`‚IMAGE 164 ./arch/connect/Gates/iron_gate1.117 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���CIDATxœc`DÀ@|%� 0£«p„°Æ‚†0`1€Cˆ†J‚08”Œ`0Cˆ�šÁG ��¼¦"OO‚›/����IEND®B`‚IMAGE 164 ./arch/connect/Gates/iron_gate1.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���Öþæ���tRNS�@æØf���CIDATxÚí’1 � “¦ÿ³c•²ŠxÉrÜ #gê=Fê@ÆÉ‰M Rl+H´‚¶ý‚« à ` Ì_½„òäï%Jý­����IEND®B`‚IMAGE 124 ./arch/connect/Gates/iron_gate2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa���@@@}3���tRNS�@æØf���IDATxœc`ÌÆhN #I@ÝûŠ�Öã…3Ÿ¨����IEND®B`‚IMAGE 151 ./arch/connect/Gates/iron_gate2.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa���@@@}3���tRNS�@æØf���6IDAT(Ïc`vÀI€� š�³ º€#º€3A—2CÍ E4G4'tA4E„��\: PsFŠ-����IEND®B`‚IMAGE 174 ./arch/connect/Gates/iron_gate2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���MIDATxÚíα �1 Ã@Éâþ3ÿ\Hõ¬¯ þN1s¸xê�Ò@T€qAHolõ‡©ÀØj ÌlUÀ,ÀV³�;Ì|e_æ“Gø����IEND®B`‚IMAGE 192 ./arch/connect/Gates/iron_gate2.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vaaa���@@@}3���tRNS�@æØf���_IDATx^­Ì±€0�QÞK d €Àþ3Y*פñÊ_œüÙ:70·Ì$ øp<föǸ«:#Ý™*_¨*<éH<¬2rTð0@€EÐ `/<æ :Íð ����IEND®B`‚IMAGE 198 ./arch/connect/Gates/iron_gate2.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���eIDATxڵα À0 A“Ôþ3§ ÒÅïˆê‡xë‡û.˜Û`t j€œ‚@ j@A8`Ã É © ÒÚ%lƒ ú� Æ 4‚W€Æ 4ƒ pÂT@)ø3x�è8~¤����IEND®B`‚IMAGE 205 ./arch/connect/Gates/iron_gate2.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���lIDATxÚ¥Î1Ä@ ÁEðÿ7;82{GÁ‘jªÔç½ÌØäß Ú‚Åx ØEÔ@sÀ†h1„ Xú>Û)áT [àŸ�‚ n j¨� CAh *ÀCAh*€`–@cì¯à¼¡GÒ³p����IEND®B`‚IMAGE 755 ./arch/jewel/ironbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��¬IDATHÇ¥•[WÚP…ç'õ©íj­EŒ„QÄÛÒròÿ_¦ß QñVÁ2ë„$°÷Ù³g2YùTòGî$È'??Ð_ÚÓÅgH‚,$ÒïúS·´¡®Ã¦»ü+ ö´©¿µ…Žjø¾þ�ÜÐ]Ý~ÀwCKT¬E² †î»¬Ž&¬J×ñ£Bü‘¦˜×Ñé‰fNéPœ?ÒdK¿°ïˆý¨,Z@GšC›r/Ñû÷uTRÊy჻tØúLÞI¦’–™iÛØxäû€OêMÑ.´7o¥r']µˆ!Ùƒ¤ ô˜(!2–ŽÄüfÕI_û1’C—™øjCcnŒ]Iν¡“´¸oݱŽùóTrJØG¬ÙÕ÷Õáï) JÎ-%E +wUG‰Äü5#uô©G`’‚ë˜ÄçW:*Nær( �ËÚ”,Ö –JA›«È»³‰vlêì)• +Sé9…%ó¤d�EÝó^m²2½¤KWŠèÛ3÷T–$fc Eê½a»FNq@‚sâV«ç3T¤€¬†N1ò(�Dþ¤´XMŽgÀ/õZÃ˦º•„²ZéRW1\º•]/dÓËœë•^@p£÷úª/^XS±¬Kî]aN¤€#¢ãògìÃz£µƒœzaó:FîDéßöTLns=ÕwžÏkéÒâÖFæ@^SX*°s<˜‘ÆÉj^ϨTÚîAQûPzE ²ïø„N¨þ5%‚Œ¡ÔòËǘ@pމ…†&U Ü8òTŠ‚)ðRo×™—Ö£ n,½x 8CC±îÌ^Ø–Û8òuŠÙfC?È”TÒZÁ™©ØôÝäÊ'—Lé‘ð™7ç=…ýa»\_þË‹M«ÿxÛð¹{¶ÿ_|XŸœk²§����IEND®B`‚IMAGE 441 ./arch/ground/Winter/istone.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE‘‘‘‰‰‰yyyqqqiii€€€ÀÿÿÿÿÿHí÷j��\IDATÁ1oÛ0€ÑCƒ«ëðªHenu$«\ã:AVƒ¬À5€‡¬Oô÷÷ûž\Â×…–ËõÁFãîòî-#mÂFÎ}Ò5Ô`Qמ,º“R›²›9Ãä�¶,xþ”ÞÕØá!þ"Ô™vÈ6¢K(ZZê9˜Zä!LLPÙ9 %¤ñ†?q¥ãù†4#}¶Û êœëq•+ÔL{ºó�³°pT­@ͼËê÷ŠAiBE¸îµ$8ÅÇ¿`âØð¡Ò ìfä X UËDû‚ Í.¯™¤‹+Wý·‘-C}c ˆÃ(‰Þ´4<IÌ“Ù2¦¥ñÎ2” `Ó:¡`¯€�?À?wØ!qRÙ,Ì;Ïܤò~Â&Ýþ·åoä×Ñb!“»GY(}(J TA(Lìr‚Ñ�Òx`PIJ U]³u�¿;^C•îeS›™µ|`ó§ýH"§Ç‹5&����IEND®B`‚IMAGE 748 ./arch/gods/elemental/ixalovh.x11 ‰PNG  ��� IHDR���@���G���€²±T���!PLTEÿ¼'C)�¢Kÿ[~ÿ3åÿ ÿ  »ÍÿóýÿÿÿÿøLÄî���tRNS�@æØf��yIDATxÚå–Ñ®ã DÁ3ÌPþÿƒ7AêÛ…Ü}Xi­FM¥ž#lƒ“ò¯‡+þ‚¢û•frÜ0ì´4\�´ÏÈÛ#‡©Xr“”xkGMn>ZÔêí’ZZi3â(‹!å's E&aïò.Rk5�ªw2Z‹+\¼i˜ƒTõâ%mÖ1kqñH¶h#Úv!-¡ÌÿVH=ƒj¼Û”g­M0´¹�MËc«ä\€/~ϲR·Yð^‚HAgØV¼9“¤$²ºXoxWòÜË:�GD$ngkò‚ ”4l€ »ì}£úº TvqvøOû|Àä‚ÒÓ…½)kÍgœ0"ê^î@ DIÈê=‚Þ¶Á×Ê á`f ØFlHÂ%">n^ÀÜHÀçgA¤à¹Ÿs¸6þúNp~Þ©ÁWžu±”°)(ö· àÌ`ÔÓsTÉ%°ïœÄa»R§ètø®(ã·Ä[N3ƒÅ+º¤:DøX 5‹RÀCŸ&ÐK€ýFÛ).Aúú¶À½[äH~ ¹êMqóšüTPØHóꢿ¼á=Þê&op9Ñ%9ÄCÝ�…!ýÜÐ{Àtˆá>NÎ6ÌaHV÷Y\üzÉ4ú úˆ[`û oC€‡h:<Îp@NAG·”m§üèÛ¸ðÁâo~ >Ú‹n øDpã=)‰"}² dÓp]aåÓàÀ;Ášf¥$ˆ|!Àóde <Î@kY‚7»Y`ú^†qE} ¯%¼¬3áßz¯÷ÿ!þ�ÑÿOr����IEND®B`‚IMAGE 764 ./arch/gods/elemental/ixalovh.x12 ‰PNG  ��� IHDR���@���G���€²±T���0PLTEÿ¼'C)�¢Kÿ[~ÿ3åÿ ÿ  »Íÿóýÿÿÿÿ@`®@0Ì3ð@E’��Þ?kJ���tRNS�@æØf��zIDATxÚå—ÁŽã0 Cc?†t}éÿÿíBm€Îìeíô¸Šf€ð©¢µsüS9¾Søšà/‹Çù’�÷Ì.I½rƒ¼|Ø9™ÉÍ.à|L{&Ùë`ÖýUêóô¼™k R–f?{k±S*ô2”&oõWK,f1<OÛ’¥ËŸÓhä1¤~žý(Æœs½É%Ñ[ïÝv’E7qÒ)‹•ÐÏØYb®B {”äÓ¾òÛÙ¿5 ãýS&½?@ÕØ%4Ù#Q‡l¯˜ô@Oâ»K*‘lK-G\æMBZ!­ýÜR¬Xgï= B¾ÂŸkÅ[’f{& É5…¬ïèçãÊç*oWŠC½mä.½|`Ûœ‹þÇ)UUSé¹0Õ³/ùŸ™—o€*<ÖæôÞG �.ž-±@Òû¹ê¿�Z}ZÓ美LIÐ ’øÐ.¯\œ¥9vI?p lé•Jaæ ­‚ ºV_xtú_Oò°Eò¬@`ß#q©ëÒî´ß€žkÀôl,iØn9.‚z6¶Eûœ1Ú†_×òÙnë€D–uJI»ÚYш]õ'ù ]ž„C\€au¶‘͵N÷åéågÜ$PXdì—÷µ×¦oðx*†Õƒ=Àdž µlräÉàúNƒýy>Çì/Drg C¦wrÇž Fl6 ïÖ™Cι]?åŸaÉþ” Ø÷c—/Ó–¥0öü×oÊ –³÷êÌUýÎ)¼,9ZÇÆÒ6b^÷7T€lϑ뽺°ÕŽí&> ÅF·ÿy@;î+Áß�¦ò¼­Œ‘ã+%Ç£?-2\À}¸4����IEND®B`‚IMAGE 698 ./arch/gods/elemental/ixalovh.x13 ‰PNG  ��� IHDR���@���F���Kîbñ���!PLTEÿ½!B)��¥JÿZ{ÿ1çÿ{¥ÿ½Îÿ÷ÿÿÿÿÿm5h���tRNS�@æØf��GIDATxÚí–ÁŽâ@ D±ËTýÿ¼q7ÒÌj`æ²ÒnAHçð^ÚÆAÜþæˆÔø¡‚À>Ç•´OPó+æåÍŠº²–®L7 €’ ? ñÀVÆ•�÷ûàÀŠL ïÑ,5¨�½î£—wÝø¶@†½LàâË®‚ï¡IÝo ¶ ŒÎ¤‘‹wãKô.+ž‘ %[BX£I0�u è½´eTÂõº<G`TÖp ûã4ÁQ2¤ùïA�eI¥›1|¦öýbo@V tGQEÒu±Äøn" ©n‡¦¼I×ÅG³ÖJøJUHjf8‘YW:èˆOûHd*ÆíÇæ ªr&ˆ,o¦‚ˆúCÃp ú¸¿ÍÛèξlוAkß3¢-Ç@ Î<¾»IEâÄÜÖ›ƒ¤gÇÔ :™Yolâ`gņš—"y†òa¢ÎšG±oËDâUÒ£</H›„žLHâEý|Tæq 8‚oöJÅ|U€ €Êï‚zYB>™UÍÃøM¯šøõ0’´ië» ôÞ(%LTùÜ®‚Üü<»ÊƇe‘UëS~ E,6õ ŽÀýž t„MìˆSÞ6G`/j„c‡´«z¥¡ Yò2`œU ˆe£6o®Yì£Ñ-0Œ5 6 �Íñ_tÊ`§UÛ4ý nÚ<,ÝÖtŠ$ím°u]¢ãDvñòG¼;»¤Oø¨ÌCjÎ7U¶qÐ9ß‘�äí‘”·ÿù·ò °è¨#Ë����IEND®B`‚IMAGE 203 ./arch/jewel/jade_coin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap� XŸU“Å‘¾Ý½ùüùÌI Ê���tRNS�@æØf���aIDATxÚå’Á€0ÅtŒõÿÿX‰ìÄ`‰GíµÍ#Kv|ŒB·nÐ2ß'x{MŠ}�~@_X ÃÐ$ò™lóðh÷!Û€.С˜ø�s ’8a ²ïôK.`z…ÝMuÓ����IEND®B`‚IMAGE 670 ./arch/shop/jade_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 2rv¿���8PLTE�������‹‹�îìììëíëìè çî ææçççèèèçÒ •€ èÒ@@@K—Gc¦`f¨cp¯n„»‚„¼‚†¾„‡©wŠ¿ˆ‹Á‰ŒÁ‰ŒÁŠŽÂŒ‘š›‘đŒēő”Å’”Æ’•Ä‹•Æ“–ÅŒ—™—š ˜¢¦šÊ˜›Ÿ¨œž’Ê›¡ª«£¦u¤—§¢x§Ð¦¨­¸ª°º¬Ó«°¤Œ±¯¬²²²³—cµØ´¶´±·¬ƒ¹¨†º¬•ºÛ¹¼˜P¾¤rÀFÀÂÈáIŪcÇ‘@Ǭ{ȦQÈ«bÉÍÑÌ¢kÌ©QέlίnÏ™OÑŸ=ѦOÓ¤IÓ¥LÓ¯m×®_×ÀtÛ¬_ÛÞåܹ{ݬKÝÚ­à±\àÞ²áâÅóùóôùô÷û÷øûøÿÿÿ!¯'9���tRNS�@æØf���bKGDg[Óé³���ÒIDAT8Ëc`(€@‘çà×RUÕâç`fffãó s4âaeDÑϯª"#©ª*ÀÄÄÄëmîáæjʼnª@KU]ÄNIU h‚¯EdpTx¨B£#£ªš„˜¥¡Š*3“}D´¿{lB ª=ae)gë é8'?c4+D“SÓRÌ4€Vx%Æ$Å;(¢ú‚_S^VVN äHÓ}[n4o ‚¼)ò&3»¶‹.+#¡pb$% …Ä1ÂEèOLŒT4�ÈÅÿ£Y���c¬˜Åá/����IEND®B`‚IMAGE 635 ./arch/shop/jade_converter2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��2PLTE‡©w����‹‹�îìììëíëìè çî ææçççèèèçÒ •€ èÒ@@@K—Gc¦`f¨cp¯n„»‚„¼‚†¾„Š¿ˆ‹Á‰ŒÁ‰ŒÁŠŽÂŒ‘š›‘đŒēő”Å’”Æ’•Ä‹•Æ“–ÅŒ—™—š ˜¢¦šÊ˜›Ÿ¨œž’Ê›¡ª«£¦u¤—§¢x§Ð¦¨­¸ª°º¬Ó«°¤Œ±¯¬²²²³—cµØ´¶´±·¬ƒ¹¨†º¬•ºÛ¹¼˜P¾¤rÀFÀÂÈáIŪcÇ‘@Ǭ{ȦQÈ«bÉÍÑÌ¢kÌ©QέlίnÏ™OÑŸ=ѦOÓ¤IÓ¥LÓ¯m×®_×ÀtÛ¬_ÛÞåܹ{ݬKÝÚ­à±\àÞ²áâÅóùóôùô÷û÷øûø8ï£���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ "š0À���µIDAT8Ëc`(€@‘çà×TQÑäç`fffã‹VFýü*ÊÒ’**LLL¼Ñ¾@͉ª@SEMÄVQEhB´o4 0 12ª¨JˆY(«013A$¡)PÖV’r’Ç®�l…hRJj²©:Ü @ür22²Š G²�e“’¢¹Ñ¼)ò¦ È›Ìì ¸X …#))$Žö(B@b*`¤¢@.–øÍÈ��óöH8 ,����IEND®B`‚IMAGE 1314 ./arch/spell/Wand/jadedragon_figurine.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��©PLTE��H1I1=_=0H03M38U89V9.D.)<)*FkF+?+,A,!.!/E//F/1J11K12K22L25P5(;(7S7*=*;Y;>_>>`>@a@BeBDgDBfB#1#FjF+>+=^==\=&7&KrK=]=*>*-B-6Q6@c@<[<3K35Q5;Z;<Z<InI4P4,B,,@,>^>$.B.5R5?`??a?-C-&5&.E.CeC:X:-@-EiE3L3)5M5JqJ&9&U„UUŠUW‘WvÉvIvI%5%9^9<\<'>\>&6&3N3!,!4N4<`<?^?5O5=`=?_?,?,0E0+@+0F0@b@AbA0G0BcB7Q76R66S6CfCCgCAiA(DhDBjB7T7FiF7U7(9(GkGHlHGmGIlIHmHHnH9U9GpGIoIFrFIpIJpJIqI&IsI7Z72J2LtLKuKJwJLvLIyIKxKOvOKyKLyLKzKNxNOyOJ}JK}KQyQM|MN~NQ|QS{SLLNNP€PLƒLPPR„RT„TS…S-A-V„VU‡UTˆTSŠS<Y<U‹UW‹WYŒYUUVVV‘V%4%ZZY‘Y]]Y“YY”YZ•ZZ—Z^–^]˜]^™^\›\^Ÿ^eœe^¡^a¢a_¥__¦_`¨`b§bl¢lh¦hb«bf©fe«eg¬gg³gu¯ui¸ik¼kk½kŒ§Œk¾kl¾ln½nn¿nu»uw½w½uÅuuÈuuÉu)=){Ç{wËwÇ}Ê}yÍyzÎz|Ð|}Ð}}Ñ}~Ò~ÒÑ҈шƒÖƒ‹Û‹ŒÛŒ `ô0·���tRNS�@æØf��'IDAT}Áw\A�ÐoæiÞÚÞØ¶ÓXµmÛ¶mÛ¶mÛvóKÚ {N’ÍÞ x0øÆ˜>0& ¬V4Š™¯)+Ž’¼‹‘Z‹v{À¨ùC¼qglÓ¹S&6µì„¤a¡=K4\G—SØ> 0Áú œVm{¬ßsŠúX JÛ`š‚~˧«hh+‡Â%=Gø÷§áͤî:®/!ož2êpˆa| q&A4íºö›B&M2àg™?EK1¾]œØ‹w_üA‘+†¡Fïü¨€V«¥qÑÉm9‰ÁÚý  ŒŸl›ÙU\ýËFJ—œF£Y©Sªü&<ö3¹³¶h7 ¡¹¨BG—’æ—÷n³efÚ†¦œº±{ߺ©çc-g:¯ U” £sKé—.ÇõòÛÍë÷l08¯ØóQkÒt�é7ÏE¬üüëä³ç�Åí`ü'$�°AA"ÙóèÃÛï?+(�;…ÑB¯ïtøáÇ/Vm¤�(êЋ®x¾èî“W_ßí8´ õe«j8™yáì‹[늺Tæ¡kZ‘%2¡ôÈh4`,È[¶èø˜±ÎèÐ% x—wo­¥p+ðJ>o9jU‚Q*èxBJ²)ju ñçIjU7®e !Äßl6óƒäd¢|HbQ-QNŒIÿ¶’Z†Gr‰5*›¦NK-T£>>È�¥hœÄSJዌj”xfª&6L����IEND®B`‚IMAGE 499 ./arch/wall/jcity/jcity_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,�ŠŠ-ŠV�ÿ�ÿ��c2�c�Í…?�1�cD����Ì�¿¿¿–‚���tRNS�@æØf��qIDATxÚuS–‚0 ›sÙ…nÿÿ·G¶¡øž—Rž…˜¦nÛ–ÉH‚_3M0Tô5s¼FÏÞ¿æ"°£O€"ú/… (Œ[Eš $ú¾€ ËA{¹�0Ƴ‚Ü Z¡ñ¡Öv†À‰¬­)IOîñy0›QóT`ÌånP´ÿîû"px°Âr!øæþõçRˆkK·T vÓ¦BÝ"k•j­' "ˆÔ"ÈÕ Äd ©’v5[h(Ÿ }È&§Bîð¾÷ 4ŠÃZq(½ ›´B¢ÌE­UGS3ëòk“ä~ê&€&w&98E‹ႺÖ²<Î(ªèðÉ‘y›Â›Œçãù(jø›ä}Š< †¤6MZSĘ¢¶h¾…q²š«Ö:î`‚-|LaµŽªÙÁ³YAõ;–…qÍŸ=:þËIð?àJžq«ÓÔo(*xW0¡ôûƒ£S/íAó ®…¥üþ](»vÌçv����IEND®B`‚IMAGE 514 ./arch/wall/jcity/jcity_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2����1�¿¿¿��-ŠV�Ì��c�cDŸQ,Í…?�ÿ�ùqÿ�ŠŠþ¿Ê›áT���tRNS�@æØf��zIDATx^u’Ù–£0 DS‹¼@z–ÿÿÙ‘pÓSÁ؆:7%‹dÎ1ÆäÁîã’k5e¾:eÈÛÐízf¼Ð>œoȱ I�­Yfr¶¡OZ•iP‡Ý¿Ê0'nÂú á<ÓX„dtBôø–TÎáK‡ÂŒ1Û®BLIˆ`ƒîÏ*D�„ â€ÿ6á;ƒ®*ˆ³vÓy¾…à¸2,Â/É¢ ±{0ç˜C³›ŽRÃóX†TÎ&È©»Š6;A$—¼«üQ¬ ¤¨Ë°MïxœdÈî q€}*ä­j†ÐÀzø£›\ªðBDÞªbw3eàl‹ ãÓÍI‚�¸>ÅZ* ¸»É¦ü‘B8ÑÄI޽øó;Õ´BŽEàýM’”4º]y@]!W†–>Ž"�œã™!wyõ¼M«÷¹Ü¨ºÖX·½x‘tøc"Âß¶û2ˆ±eðVŒØ2moVäº ®½êý?·‚=Ä’����IEND®B`‚IMAGE 493 ./arch/wall/jcity/jcity_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2�1�����c��Ì���-ŠV¿¿¿ŸQ,cDÍ…?�ÿ�ÿ���ŠŠÿ��ÿR`‰ð���tRNS�@æØf��eIDATx^}’ nã0 D5RŸ´ÝÝû_vC)F éÆ4èñX"ÜZ³1 á½ÊP°ó½öcMÏùAÛ€©9Kox$|¦Ù¬„kéÒu×@uÿBë™A„àMÄ£V‚#“`HøÝÀŒjÀÙ†…øb•C××Z•P FC¯¨*ô“l¨„`d$c¨cN‰ÁˆÌj?öà¸ãH‘‚Ì$#‚̬O0L1wÛ š¶¯èÚ´ÎvT§èC/t|-CÆ‚Õ`c ô²ÂDÉ�{’gP. çÞ ^§HkU¤dMy„~à|L2i†·æ‰ Ï$Ã}ãƒìp•3Étÿw_9¤Ì0ÄZ¾&y`J#éÍ)­S=2ó®*’r¿Áþ÷£•°ù¾ *uôÎs f\kÜFðú¥èJ°L›×¥´9…Ͷ¦>« sN]‚Põ©s>ú6<i£Ï'²4¬ƒ Ã>¢!ΣÉÿÄ*«ƒ sè����IEND®B`‚IMAGE 519 ./arch/wall/jcity/jcity_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE������1�c2�c��Ì�-ŠV¿¿¿ŸQ,cD�ÿ��ŠŠÿ��Í…?±!!ÿI;L&���tRNS�@æØf��‚IDATx^uRY®1¤°{^¶ûŸ6ƒMÞGhY…p5à.è%TU渾¹0R.@ k4áøC‘°ùüznlÿÄV òþ•óÕ>Q>±&È$\]BÈ\>±Ö@N±V 13Ùv¬5pÛ÷ÁR\I*sìú0Ί’Ü9.¨áÌÁ„Ú:_ïþd/ÂÒ�±¬…l÷ÀÒ@\£È‘IåœI›®>­!lÒ6Üm†R‰2:ZgC(ÌäJm7Ð[ƒò›¡msµ9V<.‡zw„a4ÞfHlª� ÔgtÕWY3ÙëB €Î$#媾ŸÝæLØúýSØ»À"ÄZâÖHp§ ï.ì9áE° 0n æll UîhêyðÙfÞq³ál³ZR^3kýi3þü€Cq4Øõu3¨ÙûÁåNïþ2}–±Š¸ Á]ïðÀg&ò'�Ì9ó¥?'´×RŒ&|,ÿÞ#3ñ@R€® ó^NHà_nœ” $Ù����IEND®B`‚IMAGE 519 ./arch/wall/jcity/jcity_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2����1��c�-ŠV�Ì���ŸQ,¿¿¿�ŠŠ±!!Í…?ÿ�ÿ�cDÿ��«õ-���tRNS�@æØf��IDATx^m’Ûrà D½Ià$½üÿ϶‚Ämgº˜Æg¤]Äq$’þÝl åá7×o<Ïÿ÷pêÜ ?º*¼¤üu0¡S§ú£¤.Øêròk˜—$ðGC<DÁ›1”‹vÄ: (F• €@à¬à:óÀ£Â˜M4 ù˜ŒÀíQæ’5Hsoô™GRˆbT”2:WÅ6‰nÁ;"%B½<q{° ÷Êèî&mR^ ¿Mº*¼+0õWé9Ñ�…ºvb áäİSŒ}QlIYÆÀnñòÐ�0ç%•qžŽªŠž(D™Äþð0?Áqû^ÃÑ-ÂøËƒ£x»½ÝÞÒ•§º7&~y@„¹äZ&Iþ½‡x¿ˆerNz›D;ÅÒNA€QÛÃnQE`¾�<;d\ï!ù’Z‹€ïŒâýþyÿ„ã5‹(%…g âŽ;ÀÊ= �ÎÅëÉ­Ϙ�õãz“—ö,sÏÂWŠKÙ�ýŒIá XCÎÊ ����IEND®B`‚IMAGE 570 ./arch/wall/jcity/jcity_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��ŸQ,-ŠV�ÿ����c2�c�Í…?�1�cDþ¿Êÿÿÿ�Ì�ïå‹¿¿¿¾:(—���tRNS�@æØf��¸IDATxÚU“’à DC.–ÿÿÛ{¨ÍLI“”q]Öó¦cNw»Í´Å-Dkáj7¹Ñf�ÈÝÔ[“9'€fJž�+›Á®z™²µí0¿.Ø­$Í€@ËÏj@ älÞ†.~S‚�¢F®–€’ü¾jåúäUüªKÃa ¿![$ dN 2´é„:U3v .µT_ ò9R…o‘e1,DÓJèpÒÔ ÛÔoÍ|¬ë› ÉtD‹ó$¨úN’.P5@571zdrï’A<0˜Ì0äÓuk�ø¦¹ŽAGƒÊÏrd«Õ�Œr4˜dD´eƒ6� §ÍŽÏ¼›ÀŒ2M�¶Yò<néiÃôÁ¦8v³»ué}n€Z:ภCp}ºŒq7Ùs×£á˜Õû‡ CÓ¯yŒ:ΩžòDÇm1¡DÆjóõÂÝh<·º¨õžjµŒøk©AÉë; P#±rŸ ò™ükB¶O×f0Öâ/âiN›„ùþˆ¬œS­%ð(fî—j¾çÆï{L4œÃ‚A?s8ÁúN}wñÎá Y^èi/þ´–M«ó����IEND®B`‚IMAGE 536 ./arch/wall/jcity/jcity_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE4Vc2�1�����c�-ŠV�Ì�cD��ŸQ,¿¿¿Í…?�ŠŠÿ���ÿ�±!!ÿ¯/_w±ð¹���tRNS�@æØf��IDATx^uR‰Š\1 {’|ä˜Ù£ÿÿ±Ǽ¥[%†€…ä_×%!ÇïU„'¯Óö­½ÿS‡€í»á ú}£ö Ÿˆ|¿N]¹{ ¾±/Ð'õ†;úÁs¥Ëå`Zs~YZdDæ¹,“ ”�0ÀŒŒÏº¦ÓÒˆà8øz,Ù«ùYu¥@Ðg[33_ýR9,Ë3ÉpV&¥™+3G ™‘f&K^‘]eA #<Är)ÁêG+À¢�÷Çv/Åövp-¨ÞM(íÀ JËbj êõ‹y‚"ÉÝ“¤ö튀õg¤"U.Óo‚wP P ÂËZb'išÏ×™´R0j@pPÍ@K=ýûù=™¥švZ.¬…š–:`¨”.°“µ¦Œ50Êy¬Eë²eï_=€²-š°zez½&ÄÉ·Âí˲í;‡;I<Ö´&pÕVÁ·GEË ÌØãä0gi]gcÁ2:I ×î½ÕoT’üúøú@÷ï_¼1öQÄ&ü|§÷i«����IEND®B`‚IMAGE 548 ./arch/wall/jcity/jcity_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���1�c2����c�-ŠV�Ì�cDŸQ,¿¿¿�ÿ�Í…?±!!�ŠŠÿ��ÿ-Û¿���tRNS�@æØf��ŸIDATx^]“‹në0 CMR’i»ýÿ×^ËQ·õ2M uh(è²€ƒT_¥ë¾›«3 "(ôîñ©Æv'ð1ԯẮs7ªÃú/Á·ÃÓq3˜ø$…± WØ–o‡û1´dÐóùõ¤ÅI€ ÷íLWµÐ‘ÅÊô¥3ÂçõnaP*òý’]á~ý¶I1 Z§xAT 9yjÚv!"’ÐïíÔ¬ƒk1 ‘? ²°€ù6´Þ-0"fƒÁ¶tj*™Ju’.æ• „€È@Ï÷‘ bÿÑÊ? "{ì§ÃàýC«qNª¸oÃIÏ“p ž ´+ *uŽ’ jnül9+7àk5öJpÕA1Ç 5H蔀d€™Úk_ –# $Å.’ºB¯×÷ëÛ¾ÂΫ.>&?öAˆÃ ?J"ÂíÏBp’È�Âj*–âJÈBÔ©‰2ÔB„h °b¨¹wÍãÀ©Ü£¶:çndØmÀÜOb_Ýß "‰ð1(w¨“ Cʪ&I ‘ª¥}ë6ì苈£ÖuJgDQeøðÿà5-����IEND®B`‚IMAGE 513 ./arch/wall/jcity/jcity_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2����1�-ŠV�Ì��c�cD��¿¿¿�ÿ�ŸQ,Í…?�ŠŠÙ¤±!!ÿ•|Éð���tRNS�@æØf��yIDATx^u“‹®Ü C±= Émûÿ?[  í®ªu VœáDQ\ ¾–š$öµÔ85ç÷R›“óŸÃËŸÀ‡8à|‹£Žàd-VIar[­éS$ÞÜ Zæ2»è¶6Ç-Cè°HõMÝ�TОП®4Ü7Dý¹ïšøÜ‡aÏÜ‹{o» T8ii˜D:…9¹ý„D4! ÄÈ`u¿ßbÈÒ2K¯p]i’™Šoš§cñDd1ðÍa÷ƒ ˆÖœ~Œî$½›€(†Ë/ëº"d& €´' y\îu?í÷ ‘õŠ–q:ý©DqCÂd˜Ùò0¸‡÷ëŠÔÏ–5!‹aaT‹Í©??ÃÂÉ¢Ç} ±× ÈÌ‚©’/ÊBŠŒ5¡>¬,CxüЏâˆÓc!d†~GïáûùŒÎž¶OȰš°Ì*;-§Šók½~ÌÝ bõSøÔ°Á—ÙÞEõÙí•Àb0íÿªERÛX1þC.2ÅÑr����IEND®B`‚IMAGE 541 ./arch/wall/jcity/jcity_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2����c��1�-ŠV�Ì�cD��¿¿¿�ÿ�ŸQ,Í…?�ŠŠ¯/_ÿÙ¤-ü7���tRNS�@æØf��•IDATx^…’‹®Ô0Ck{IÚ]àÿ–uÔ]ÄE€¥Ì¤ÒäÄ®rDìà@Bªþ¥Hñˆ ÁŒ`‚ü2@Á„ëq±×©õâÁ$‘®Ü©42s”TT ” Bb†¬•¡%š`,²Y¢7@Ðb¹›@+;ÝÂØ³³–àýLÍ‚N±ëNÁoªè–�¥S�`qKÕ!-Æi÷H<#p]  ÔRö&P°‡$ón{À¦»ßqI‰¥Ü&mÆ€¾S$%§˜£"^òÀÒ„xLˆJ;»ººº£ãö –Þ6„·‡?´„t¢ÛCU©¶0†¤ÆL dULáè:«Ïóì6—ÈȸLõðî?•Zšñ~¥ºTçI"9LàÓ„íaœU/Bð9g† ±ïÈ›pÚÃøþœÙµä“�Ò]øx{Ì6!i™0·Éò¶ÔÑ]ö€Ë€ÛCWõÁzÕ“�?)ÆÕ#|¸6bh8oˆNîgï–»$­½u? jý}ñX k-­»Yø—ôŸlIØŽHxçu—ã'•õ¤ï•Bè����IEND®B`‚IMAGE 464 ./arch/wall/jcity/jcity_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��ŸQ,�ŠŠ-ŠV�ÿ�ÿ���c2�c�Í…?�1�cDÙ¤�Ì�¿¿¿åq(Ì���tRNS�@æØf��NIDATxÚ…S‹Ž!ÄÃ= xãÿÿíØv›¦„ 0aÈ²Š«y÷÷&f–’¬O›óƒÉœ}–½™_„÷Ói%W±'ɧXQ¹ˆ*GÅuÝ^�¤·€-‡áYùÜ€Ö<"Gk†3‘A!EœÄtqTÌSZ3'Nâ¼msg«ˆ•·`§ÎJ0oyxÍTy ÍÕK‡±îP¨]D­B¥¿‚ø¾Ë|Ðl·+@U»nqÊÔâpÏìUè¡8Ž`šÚéâ‹þ8¨7�é­ú0§…*t´ië¼DV‡Hºe4e€ DؤE'EÔ7ñÖNŠŸ_I(;`üy†ZA¢(öbn3â�ujº²Z€?B�ÚÒjª¸�2tÎsÿà bÅm¹vUç&I¥‰wîýƒÉœ^çôý1þþp¾2}håïš;ί¡#7_����IEND®B`‚IMAGE 526 ./arch/wall/jcity/jcity_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE��c2���-ŠV�c��1��Ì�ŸQ,¿¿¿ÿÿÿ�ÿ�cD�ŠŠÿÙ¤þ¿ÊÍ…?›{{���tRNS�@æØf��†IDATx^…“ nÜ0 D9ßd{Óöþ—-)y7$ÈPèaHȲäg©jz ó+`j î$þ­ÐŸ"Â.ÅW§‚iª„¢`>$èÛÁW`j´u*Óåñ&‘ (ºDZ�¹gdÜ�1*ôPÏnáMô@Ñ¥�'Œ©,@ÕÎ�®Èª ¸— æd´ÃTŒQÀªOÎyÌãï¤g;\í\±×v0X™pߤ®‘èNºîÁ=*J÷M¸¿…‚)–Ïèò~“îÒ=Lô¥ùÚ¡ ì½è7²q¶”šv†>‰ T³ZrZE)“Ar?˜fÜÎ>+Àú܉,C§Š÷Ì fÿŠð Är0¢†µCŽÌ3‘ðnQ,�jšå)çÝÂùöH¶»1tÏÖ¥""mµhÅs†"z•Ü?<ÚȬ¶€X”åó¿°´?™rWúǸßܸüò” £¬Ê½ÙŠ)Pb*õ§”9u¾'îÔW•ù‹~ v²!AÔâ³ü<­ò‡ƒ����IEND®B`‚IMAGE 489 ./arch/wall/jcity/jcity_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ŸQ,-ŠVÒi�ÿ����c2�c�Í…?�1�cD�Ì�¿¿¿—@Ù,���tRNS�@æØf��mIDATxÚuRrÅ SÙ/ÚÿÿÝ|®ëí^<jicˆhÃp>†7wgãÇðf—_×çðv]vÝ0w¾ Xz²;T"‡pË€¥ ±ùfðͼ­È±‚.0ÌÆXá…ÚÚ p®qYÒ}ö æ,…Bè�W*$½¿f*ÀØŽ€ 3%Êÿ(|‡Ë ¹–‰À|‚ù©ýzH¹«J8šØÁTÈ’c :œ[!ª„nlöÀ%16©p~Üta+ Í1ˆ1F›BÐ1‹ NÆr‡ûZšé¨]�·‡^÷îפ]cåÃráÛY+«WÄVÐ ãínæ)@ï€ÇÓCõAm«¤wP}Øg±Mžû äywâý'6ÓDÀ«“k{Ð6¡âAh–:ŽÉR¨2¹wÅ8}ð ¾§cò…ã•¡kÎ8§y @²Ù`ûNÎE: VPm³ÚÀj5u'Ÿ¨]ÈÑ9‹„ºö9yøFAÕ76ôÙ����IEND®B`‚IMAGE 561 ./arch/wall/jcity/jcity_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��ŸQ,-ŠV�ÿ����c2�c�Í…?�1�cDþ¿Êÿÿÿ�Ì�ïå‹¿¿¿¾:(—���tRNS�@æØf��¯IDATxÚmS’ã ÛU6.ÿÿíIÜLfWÓB Ž$ÛiËò8Ã+ý „ÙÌ&Ö±¡eº‡ƒÂÝ̪ʈØ1ÄÐ? Ñ?ûÀGq4 Õ7ÃF¬¸™·à!<òŽÓæ¶`ˆ¦(6å<,š¬ãàæÑûöà Úr0a›Ü¢ò¹2¸i5;!(ÌU…ä*×6-У?q[}@°Ì><—ýNx®„ÛôÙ‹­p#¶#­4sÊd‹iS1u¶VU4’gbð)UõôAL-Çéhº”Zá’øËQ‰ÖÿJ ˜W•0´±QÃæ4 Åc%ÈÃQu°ýÁu}ë6 >bI¤úPÂÐåu É ´¬›¡=mÇàw‚«–\ q3|Ç´/Oò¤Dª K¢= 2A…ôð°*î=^ˆï5´9B&<�Œ€Í«‘Ñ;ï_ ˜?&®èU…D©Ú9P5ê¼Æ]…î…˜æ+Áb…üå7CÆœ?s^†dÇy΂¹üâfà)oev޳é‰1²=XÃÕIP$“o°¥·ù.óÁfxÊTÿ�^àEHÕ����IEND®B`‚IMAGE 486 ./arch/wall/jcity/jcity_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��ŸQ,�ŠŠ-ŠVÒi�ÿ����c2�c�Í…?�1�cDÙ¤�Ì�¿¿¿WD›\���tRNS�@æØf��dIDATxÚ}‘’B!Eq10üÿ¿Ý Z;µOG…3—ë“”E»~ž$"Nþeö%k}™´V_9?€ï¯cf<mI^Â_Îda•3«²Õyo½€ˆp*’Kìóœê•÷ ´¦f>[;@C ëU¨¤ýÑßFñA†c§mw…<e^Œ J�*~�-O•'cO-ž‚º«ì[ÕS0õ7Qˆî=­7�{»ª€™;ïPšœe¨º÷ªPðàcD ®¤Ù~ Œ žÿ¥t¬%Æð›�7nóR(€\Å­1jƒ†²°VÿDg ö×´/õ`(Dúêa¿vT ©ý݈a€ë5§”(à Œ蔂H½#"(Ú˜X×ò`^Ý.·"&®zJµ¸ûAl (”×~nÑô؆`ž&^€àÙÜQÿpJìköÕÕâh¸mœ¥$wà} "MjL’����IEND®B`‚IMAGE 556 ./arch/wall/jcity/jcity_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE������Ì�-ŠVc2�1��c�ŸQ,cD�ÿ�¿¿¿��ÿÒiÍ…?ÿÿÿ�ŠŠÿÙ¤þ¿ÊÆ"h ���tRNS�@æØf��žIDATx^m“Ù®Ü0 CMjó2wiûÿÿÚ¡2ÁÅe’‡È¤ȃïÊL²°Üƒwü Xš€p4�üßÁç‡á>ˆ—n  �¿�ϧÕÙÿˆ‚«6ÈŠüzê€[&à ˆ< Ž"_Ô+BÞ¤j�k8HnEÅ"K`ŒªHÉC!íîÍäp¤ )âb*üs¶ƒŒ¡ n @KS¼æ; )¢†âZ Ü)J€¹ƒÖÞ¶¶žD‡#l䥓’ñ×cð.´F¾‰ãñØo•aÉ´¤=%À¾aRšm›f{sïî¥!u°÷СqïMþt#¬{0mÛ§mUî†×Šˆ5!š-ÊÁ¬MŒŸˆä4î¡Å‚¶É>|N‡öèñ³z&@­%#Ñ€ŸãAXÛ~“4øtø1ÂÍQÝ9Ö$kYß–9ñÚj 8¹V];éBÉâ&â)ðå¨ò<%–ÒBÃ|`DÀÝÁBæµU,•€Bïäë©Q¯{1TBx Fú9޺nj2œ“¨«Ç[&`„Ɔƒz~wd‰l����IEND®B`‚IMAGE 2469 ./arch/monster/giant/JessyB/jessyb.x11 ‰PNG  ��� IHDR���€���€���1|ø���PLTE���������1�c2±!!¿¿¿ÿ��FIjä���tRNS�@æØf�� 8IDATx^¥™ÝŠä8…;ß áרGV+t=ì0×!t¿;ôµ@ˆxìå(p•.çl×D“¦!Ñç¿vý¸ÚÃáÉÏoš ß<�Àç'¶¿ À7]�~ÿ×?œ Ôo~þü7€6ó·�pãŸ?ÿ6í à—e�ý7Jð“1ü ÊŸ?þm€¿J@Äïüñ_§ßÐÜoMeà×¾JxîŠ~µŒ2\@šx¸ù¥Üf€Ô™ à§\ÓIÀóæ¼fM4tØ9/€Çð5I'�7â0� ã=àLEÒRK޽u8y>#2QÈg�Š\€H­Aµ§ž;òM3hî��M×ó›jFS­c\Ñ�­iÀ~õ©©N$m¾´0à§M†Á«â ÀÏÄWÀIUKŽê6©2QÚ’P2žhŸçK«³”yÔªZ ^¶¬¥§IB$ÅZÓî#Z¥©ê«ô¹éô<êTTFÓ ³Öw½ŒJ¤Kë»3 å&ª# †ÓL„|À' "k¤‡'€›Q¥j¨R#5TqŒBìúáŠ,¤/­œÈm_¢"¢úܲ2I8Üv±�b¶Üøé¯UÐSw:7 ¡n,( úܰWjS `¼ª?çau�bSõ@EòYu¸©cx˜Þäx¸ZDbZ‰tÁM_ÙW­”¬UK]yÉKš^5 K)dlÙÏX}ÕìTU£M„¢%o *ˆ’ư)s¯š+à©3ãÂêì¹ã‰å¿ª0VÖ'ݪc iæ?Á2‡Ôª�7òx2Džj²oª«OÜpãÀµCÓFBgdg Í¨(…Áåg9c݉îzÀ€6³4Íž¼dö¦æ"Òtw@bÎðRôrB—^ÀÊ0ñüvâ¬à”H4;¤½(mòR�¶NQ5Í<pP^²NV-“R¥¹°IÒî\‰0ÉŸ1ÈG€o<¸,»Š¤&<nÕgÇÆˆ{O~Æ`k`€†Ó0"êœh�î\ I¼•x% Atr°Jkm2ˆ'8|h52×.³ï“*?SÀJ�¬fLœœ|0¿ÉeROÆŠ˜1 V‰X=qLƒ–~§/Ʊ ›˜‚MŽ€ C Ú`eÑt�>SfÔ#ÀN²aW0ãŒZO˜IÎ��1 Œ™¬¡w6žG€+è+ÇÞŽ \O; 7öJß0è§4DqKÁcb™õd³À Óqš‹TÁùBÑ­ÇOÀð©Z‘>© ‰EâðS@/):ödí1+ï­¢ \د í�ªß;B³Åc¦eÅEx@�-ÏA2€î5¢:=�ê¼*pË v¬±›VÖBø¤:7Ï ˜‚óžAnÀ)üp¨¹æ¨}ÓÐòZ`“9& ì °åçEA ‚-#!-ï+[Ç|ßÝL!7 ü´û©€ƒJ†øì³ÎhÝúøP '®~(˜5&«¥ÊŽèh5¢M×fÉ|­ÀOÙènA¦ÔZ0k‡¯Ë­¯`õw¸�Zú¾ÒØ_Ç�ÜNË�Šæçªe4æ[§ �¦qŸZϯTVw$|mÉZJ›5Fƽ¬_šM8g 'd’JYp3(Mì„ CÆfªÎŽM©à XÌÍd=¬5[2·l�¤Aà§)ØäUAå•1ðªeù»0&Îëh~n¦ô¼(àÕ•¦‘›Èª¼ÎxÖþ©4¦¹Ix®šäžص©Ï^‡MÆÜTË8�"¿H˸(`÷ƒÏëqÛž›0Á^€¯HN¼{Û€>ŒO�„C—»ääù“¤Œ¸içN·à œÔÂ=VêV²Ç`;)†ŒäÛHŒýj^ ÐiY°ÉY+Ç~^æùwaÍ×¹è'Þœéd}ì%+NŠáæiG±‰ ´ô¤y$Æ`kEujösxÛÖU[[¯Cð¦5”XUSÉ1•€� �'•1Š!Η<2A‚‹U}ñªUpöFƒ†ç.£²:RËÀ&pVº¨³ï>zŸy°©A@µÆîõ¸!<V}Á³ æÌ¼ h+2: …qä²3Q�öb)ÅmšJD«:aìQ÷t–ÿw1ê<\öAuH¬¼C•¦0ƒmo�pV¬•U]’ã¾ÊG-…ÖófhûöÈÍ ¸aq8îªS—Mo»%&D€¹€íÈè�¢ŽÝÐk3mÌ>, i)¤2+œkòÅ]fسVÁÙÖ&]À ®+òçó#`Öñj›>Û†t`´]@•4΀ØWK[÷ȩ̈Éý¹Q•BÓ[Ì:¹¡¥ÂgÅš´Š8?7®‰ÚŠÎêä%�Œ#•8ž…�ô#`U~â´ÛTe{‰‚—õ}õ…k¼�à8"ö6Õ³„ G…#À|ûð`ˆì=¥µP± dØ®nÜÄx¦Psœ¬>[Žvð¸à™"Öã-ë8KÜ�\ð¾|‹ ´Vœf˜=`ãª5Ï­^c +Þ•bBˆÞ×½2ö6R~œŒ¹Á×Zígë ÖÑ®f€ £ÁYl²rmf€jO^I@ÅÍë@ØÒ2bœÃ�Ʀo12€$è-À¯Üw¸(œ}G‰ ¤ŸMiUïÞ†nTà°�þöiu à_»"›…Ï�tS¸ö~Dѯ³!N ãäã €ý&­· 7¯õ1Wµmõà”ߣ·³WÃ?™¤�šZî�ŽÓî6 }ó2ª¬’»,X)<îkÌ´÷€Œ'·QÊo�Ë…ù€Æiy€§Äß§å¸�‘“¬¿x­ªýK��iã°‘ÞFIû—ÞM—õw�‹Ò—€¸÷šü•‚éokˆVð@™e»ráüþÎI./Cçª�höf�)ã�Ølw¸�` �yïAZ‘¾\ñÜ|È~š»Ì_átr÷{oˆ‹Ðä� ©à¯æêµm9É¿ÏMž—F årþfnÒ2.äKøo'ÂlµÉ5 ¸�î'6éWÀÿÿ×ÈÒ ¨à[d×g§Þoš+® §Öw ¨�þÀk{üµ×}åNpm����IEND®B`‚IMAGE 2354 ./arch/monster/giant/JessyB/jessyb.x12 ‰PNG  ��� IHDR���€���€���1|ø���!PLTE���������1�-ŠVc2cD±!!¿¿¿ÿ��é?‚¶���tRNS�@æØf��¿IDATx^¥—ÁŠí¸†Ïyƒó“Q¼Ë#$GÈ"Ë"F£Èz†á.µ-3.½ÔB þ§LTÓö±!óCß{šÆŸ¿ª’ÝÕǯÇI ÀãWä�ý-€'°ü6€SìÀ7yþ'КwÜ_àÛw‰sÝ�ðN­8+ïyøÃLJ¾"ypo�ýñËÇO.d3À¼¼~ø÷O_ÿz�,ƒ<<áp$|óñÍÇ÷ß¿vô›Ág4�”#àÏùî㇯;,@e2�ÒàÆ`;�€þíOúÚyÊê ล �v…Š$ašLÄ`¦q¨áûŸß�n rJ=QPÌö]¥ÒóðŒ@ß±Ã�pÀ± ƒK8¤N¨ŠÚ<@Î"Àã)ÓŽŠZ–||T­-N@¥ Â`€DáðǯÇcØ„lÀ¼$Y„@°“°78C(Ž=6�(nb› §Ë;àËþ¢ÈXFCø,xJÕ×ã‰À ,@M‡’ÿþËPÝp‰i’‚uˆ€B>(|ùyX’ËX<Ù`ê,¤šÝ¾û×g€æ‰ .wX‚b;Ì�. >—€Üý23Ô (ÞŒQ§‘TÅu ³m-ºê8�@¦ê èbRö%ì ÐÑŠU,# 6D,lÅ ÊÁàs& GG&WM!Ý�•-šAD¼.á)AC‹¹2 }!A' ­êjp]ÂÓî{I¡ I`}O÷ØÍ@£¾Ž€]Ž™²™!íñ}²Å6 b«yøý/;ÀŒ¢Ö¬ö!ºôš€°H“¶|ð*5x¸à³Gˆ$‡ý«Â‹äÈ×±! °¨ˆ�UPU…’=Tr(8jt^dÔ§Žþ àIêBT’´¤eb„ºTÎ(¦ôx4HZ×°eT£)Yïe:Z91eÙ�£p Kñ­h‘JÕéÎÕ@ü§9&²gw¬eû¤¹ö ‘èpc5Ø=Ê`1¶Bt3JKq©ìÒ°h“€¶{#dk]$I‡ª!m¨âX‡K*¬˜Ä£jéY*ék(¤B²`ÐJË�9¼“VPŽp¹Á±˜wÇLä>*dƒKíÌÀ�ÂاC²½b„7¨¬Ìð˜BŽ:Š ,O¬ë �_ rÍ…ûbÔ[°_"ñãKq5HN—v€3þ€ß+Ž- ¬p‰û$ëì ðí¶'‚)("Ö1V}¨ íßHÛŽ&T@ª5N«rMd4)ëô໯›ÁH ׃ %¼>Åõ@2ãÌ�[¤ Í�Õê•V×gCŸ EVƒÓÝ Î|[¤%¥GæÕ@vûݤ^,ŒaÖ8 G¡U–‘­W�cÒ¸âŠV¦Z<]©¤šÍÐ`o¤ @µÍ ¨,$Õ±Õ†…míGÃB3ˆ 6·LÏáB wfÐ^¨#g»cBÌ‘U]‘°ÜAÕiðBäš®n¸RÔ  VÔ|m° «ñ€qQØ^´ž  àÚÀån² „¬€d<ÐÄ�áÒ@¼Ð_@¤/,9Grä ¤×CB&饠êõ@^%Û«¶èÙçàˆˆÇå,BOÀ0(P+!ØwWô@:’-›Gš�ÙGÆ•ÁS2Ð|âãR³—J®; Hæø �¤§—zAdrpäÉ�B²$ \�–4mX<u`}¹l°œlû@H.Qe]2Éd�,\ReÃ\Z”ZÉìl�@Ý ¤8?¼Þ cQ—hOÒ$Uu\·c ºÔ 7bÞаÍiþ?Pð2@Y|ýÎ�ÁÍÐe&Ç^™I±À%¤©¯ës�/Ô‘½‘½zdzj�HH¾Õ+ÀA�èD”µrØ“�ĹÎjÌ©G&œ`Šëo›¾…Ø]!­¸iÀ+@�0ëfµµ³C�@çI@èXÒD·SÀUrö{õ^jdƒ ²¾UÄ0'�ÂBªÖ®;Ö`aW…Ó%©–Ùàð–Ä™±x&�Õ ¶©BVŽÔ3@àšhÝ×Í  Ù‘|LáuÆmÓ5€Ç–2”ø¨íõtdÎ8†ãšQ öOfs~=PYÆ`“æ*Ž©d«-`~½æn‰r�8öHK¦ÃÕjn¾ÕÀŽˆýõqVÎX}9H-µÔFÀ¬Ø§½ÁTäÔ”RKò{‹ð‘jj°î#×=`ê+Ù#Èz(¢ Z eѾÜØÄ‘)pL 9ö Ív&úš°MíÐĺý2|}D°Ÿ1gmî�Iu…$ ɾ8uëæ¹‰�²žu»tö™% p\°Y«û¡°¼°&W²zr<€b�—reÏÃ`†¶H°ÆD38ËTL@ Ë9–’¶�‹]7Ù½,¤B8³ß�ÖN—0lÒpñJ·&T—òvý°�9 rfô+�"©ÕùÄQ@-´Ô‚ @åÐÈt + àڠݸugrW‹69xj`†Ç…$x¹dÚ Îñ†X²Tf°ßÚ ÀeÄ¢`º�€$û[–€+ÀB®õݜԊë;zÊaÀÝ×Âx÷8±ß„•å€z_özáê$"‡ÿ(¬€' žyÝHïæp¾Ý�Zn lNíP-·� pÞ¤r¤³$ °Ü Ø#?góUN9Ùî7I�fÐ!0üÍI†w@H¾’Y}áL}ÓDhp,»ân 8Þ�°S¾Ó¿é™ðÞrÃÞNaUxûI~¥Þõ¼†'Vû Øar <_ —Þ_�.Wç{8]Põÿ<:8½½ü�é�~ ðø¯s�,TñD´����IEND®B`‚IMAGE 2157 ./arch/monster/giant/JessyB/jessyb.x13 ‰PNG  ��� IHDR���€���€���1|ø���!PLTE���������1�-ŠVc2cD±!!¿¿¿ÿ��é?‚¶���tRNS�@æØf��úIDATx^¥˜ÏŠ$¹Æ»Þ ?ìÀrÞü6ø|ð1‹Õè|–a™£G¯—¥:D<¥ÉPNMw¦²«lÇ¡:¡K¿úBñG¡|yyÁò23àôÐô»Ï�~p›Öÿ 0N�·`�û3€& €gXPà €5Í�˜ ƒTàèéLÁ^_gÂbÃr@' øË×ןOn$u£¾s¡O´þôïŸ_ûë€Uó+püðúÃëç×ÏG€ëXŽÙ™þü—O¯?ývR Jo±…3�øçßþħ-PÆî5Þî‹L0�ÖƒÆ~#`Dã¶êLÁç_Î�@,â7Sb!uZË�žbƒàâw€hu’H_ÎU—bõxr&ö U3Àë�4iæÉèxyTvüñCÒÍ[�kG@›C í ¹‚#3„Í[�(nÄ-­M@›�¾žÒ°8 ¡3�Ÿ 7^¶£<Sð‚¿ÿzD×]ÒÄ�ÒpÄ"3Wð‚¯¿,‡4*k_½j…ÙÈJ@®|ú×àÄ©ë.7˜lg/\¸­}íN80€â± ¦à\ß44X%de€KŸŽ œ¯eUMæ½VÔ-X¯÷€P£SeW€Ê ¶H´áÙ(„*A4“–ÒCÂÈ‹ Õg\@ì!Ñm‘j±l€ _(�ÆÒa±³¥T5¸d�ÒŽ ¿ÿõ�³ô€€èÒb 0«…<“|öQU»}2uŸ åà³t,†>+`"„`foŽ· ªÑ˜ƒK¼ ‚‚tVàU•WÕÑíSÍÒªª•l£nƸP´sqúÍj6€ˆ-Ò´FÄ-�­àZA(ëЋ~·äÉ ‰2;öW ´g¿(wÊþ” ±9‘æQ` ÏæD¿;ÂwE©ÆÕW¨6j˜çAÞtigv=¤;*•A¥_å”–IT½„b— w@ÞP1ƒT»Ÿ+€ËNKé6¡ö8l<1Fƒã™×+�­€=¬’jPž)�3@Àް=šIÊYUÐ~.Ø1<ü® K.ßb:ÏFÊ/ËDÄ]A"^KзÆ“õ¿–²+è€KúÎ’Ì�?¾ò`'¾…‘ßµ©‚¯ïf4Np¢ªEYXw³.áyªàÓoüàk,3¹¤ž÷Ú(®_ï€w€XoH *{m°3-³Éþýœ›Z@ÎÚqÝ£˜2€)øØ|õÉ’9v„6ýMzNÔDµçÇ�Nh�\q…E“h-¨64së1�  ¨’R«h²jج?áBFƒÍåÁdõÚCÞ#£ܨ.ž‹¨i.¹ô•<éB®h î5Ôàº+Ž1ågÜ*+c™KXžR@ªlÄé�1*D°<¥�Q}Ñ’ó&%x -Û¸¯ª¾¢`A`oõ Ø-ä@jp6íqŸeX€€Ø% EUw?+]2@`ÂC@Yyåî!ûùÕh÷Hð�Ñ%—ZAÔä àT{HÀuĺ°òê•!ʰ~sƒÂS ”i2t$) ­Ñ…§ö@Yös±¡�$µ¬ñ¡ ¦ ‹Ž($fvZƨZt…—Ç ¼%P·ÉiûÛQ°X§(«Öå™=P—·(4QË»5Ñi{� Azö>Dmâ‘Õ{È ŒBÚñ�{•Y´[%~±À%D¶ˆ\¯Ò~"Xô­‘ ûVFLªŒÚÄz€¨6Ьö›K�çëÆzƒ§<Ç.Þ“D­–@Òa �¾�«*³ä@p…´a7¬Ú˜á¶H¢ŒeúûX÷£t !�©xÓ MÏ2^Ï\�¢t5kãn»¡‘jC5€ë—Ùz’¢;@ àq·µÛ´UDYy™­_[ø>q¼7RuÚÆÍz�D½~3ÆÑDµJ-æC&�Ò!`œ‡Õ£µøóÀDœØŒßƒŠÏ$Eò¦«‡n$ûu¡R)A»§Ã”ͽԽ-E™(°ÌWmv{:8Q æBX–qg�œÝ º Å´AÞUëÍêÅ·Y‘èÞ…µ{9"Œ3"go€Y!XñÊHÙbsÁ[s/ÊrU‰4rÝÂ8¢Ž÷fý1^—2†j؉°ë ³Ã(GUñ�Ê�d‡¬ZòØDC³>Ïñ`Q�‚ºÜB)ÕÝ`2pã Vø 0ÞhÇ€;@`íÔ6˜êEO¾9»Ð ß×@ dĸ]UY”1ŽñS³íAͤà Ú9j2€ž�ÔʸVPwëDòÞ/Ë…Õ®CÎ2ѰÚ-W‡ëØånxÈ©^©bM$š¡í#@€õø%PƒË ãêhÜë`�(R±j-ÀpØ<ÜýŽ€ÂpÚ$—õh“°ù>©xØ›Uí€Z/s‘±Ì€íHãGå¤í#�¬[–K�dø03ã’^¸ÊDäp�L"-˜.goóXú�psW÷…oÀ§:”>� L@ÐÝøC€3( è¡Tg%O˜ì<úÝAÀ<Ð8‰‡ÿ„ÝúUÃ’ÕÌ.¥#Rr’‰`ïÒØœ{¬@û °¿3~ ®jšTÊ$Áæ{þâì6øÐç>Ü€åI@ÑÒ Ë€'ÐŽ€âÒðò”à²ø™Þg¼BøÜ\r³9õy�¨ø�¡ÿS-g»AË����IEND®B`‚IMAGE 348 ./arch/misc/Container/jeweler_bench.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿ�ÿ!!!OOO1œc1ΜÒúœ��ß��œœcÿüÿœœÛÒµíãÅlj¶×���tRNS�@æØf���àIDATxÚÕ’ÁŽƒ0C× ”ÒñüÿïÖ&ƒ*UÛÃ^ú$@Ä8‰øùŒ|O a¢_sä ¬u…Rk-pø¤åðVB2y�!Ç·‹PŸ¶7—ÜÐ)N3‹…Õ‚i!Håé=°*&N3˜Êïe€®Y  ¿<CU(ϱmËé,¸?ehöS pÅØE•ËQ§p:¸a7zWaÙ O¦y¾×ó¼íÜW - ¸`]ñ–!dÿQ|Yã‡ä½Ì¦‡ÿÈ¿b“/yÿOÖvÑ9Òô‡����IEND®B`‚IMAGE 389 ./arch/ground/Wood/jungle_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�2��Í��¥��O�.‹W�Š��d��ÿ�ä§gø��(IDATxÚU’ŽÄ0 1.sÿÿñ)Ùͺ©T £4¨\exH,ÑàÚÔTwä8­î¸²©3Èò,h5t’MA±1¶½¿Šñ¦Î ,\¥Öñ¢P/ øs;NUgø`AÅ{5£´ÁÁï§Übq¬w°qUDWœ¼°êÙ7¥¤4ì]ê,o»“˜ÊRcð9\A–»á;èÁ"9–_AOè¢Æþ/èWèⲿƒ>9o¬Ëþ¢F]öýÊ\·ýýE—ýC¨uÙ?ôˆZ×vè^–‡Ñhiû?zD-Ý ¼èµ¶óÞG†þ‰>èãüŠŸ}Ð×y>»œ¬Ïm@¬© ÷‰Þ‰ë´Ðô«÷%ø©Y_çå¾zïÒ§fRïÞSþÖüL~\L\£����IEND®B`‚IMAGE 409 ./arch/ground/Wood/jungle_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�1��J��c��Œ��¥��Î��ÿ�)ŒR¥R)Æs9<ÙT{��6IDATxÚU’Ž„0 ±sìþÿÃGYÚB¥JŽ…äxŠÒ8°#Q¾¬9¨Û)+ŽKUNû²æ óâcȨ l_Öä„qªTÖä@Dú¯U:Àq�ÕÐŽ€¿Tw—‡À@¦´s­ä ݵ ×é”¶–æ¼mQ&íØ­>±[rÁµK[+Pö¯$¡=ÒXz}`¿@o­TÁoÐ[ {Õß 7tÑ»þý€.^õqœÍÙA¯úÇðŠžõ§ÿd®GýíïP´ë?—Y¡Ñ®ü\f14+¿Þb1·Vå×[,æÖ•ó~‹Å<BPUðz‹Å<ÊÅý<¯Ÿ~2?P@Ÿo¨j2?ðùò\&Ü¡àŠ&HË¿C/²º‹WQÓ÷UýÈê.Þ9Ó2B«õ#«»xÜ:ý‰Ú=Éþ5 RTÄ7����IEND®B`‚IMAGE 2173 ./arch/ground/smooth/jungle_S.111 ‰PNG  ��� IHDR������@���[a?���3PLTEÿÿÿœœœ�d��Š��O��2��Í��¥�.‹W�ÿ�Ð3e‹§ÃÐÃ9Ròk���tRNS�@æØf��øIDATx^äšíŽÛ8 E ’’Òîçû?íʲЦé+'Ìh‘ÁÑ!uƒÖifAUr.Db. ñDBTrSúˆÇ“o1ê?É'ó;ðñüÆüƒù—œ¹§Âe‘kÎ’D¸dnJÿñp°÷g>Îø'æ~?‘©ñ£-M×¼$!fnJÿñp°÷g>Îøæ¿ŸÈ¿p)T¨¬%‚x.TšÒ¿@<ì}Àß™óþùÖWðáü> QITò¯œñô â²*”d}Íñp°÷k>ίàGò{Þý™ù"á|TDô«H•8gAœ×ÄÕ)ý5âa~ïÛ†¿=ç8è¿Üœçs¼ûÃûç—V`~0sµ2çB q–BT˜H_Žõþa-êòÅðùüžáü€ûùq¾|‘•KQþM󃀥U.’è„‹ |íIëŸçk!ºäÑX]«¾Y <ìïyÕ¨ý¥üF~Äíü”ˆ(æ›íæÇù¾ R«óóüÝÒùêƒb.™¸äÌÕ9_"­*¦’¹0¯k™¤–õ;××ÁT]«¾]¡<èïùiÿùC¾—?U#ÌÆúüájÿ>¿2ç£Êö¤àœ^LÔ>ëò#±Ô:ú2r¢‹ñºV}»ÂóÑA¾òå'õ}~ØËç?Wû÷ùã½ÂLUæí±L””’ I-ïS¡Ì÷×Q]«¾]ÑyÂþ±¯üN~Z&j›ßA˜tñù—0¿¯cþ³50¿ ÀœÒ2W"BIœo."çïÕ· :o‚ï|R?.¿ÿ™üëLA~Ð)ÝÉý³%ÝGUDˆDŒ�Ø×‹Èýõ…ö\«þù=é&¸þÓþ½ý¿•òëíý[ÿlE÷Qóóø–B_/"…¼›}­úç¼ ®¿ó9öç÷ÿNþ!“@m~ÿØ?]Ô}T”õH ¶ý~)’Þתoqï¥Â¡¿óÍÀ'¿»ÿ×ó™Y§û§0¿/ã_½¿8€9¾:|Óß/"“<°Èm­ú¼slr¾y>ùýý¿š¿‚žIxÿ ØÿèÁºÊ)ßô‰˜hòQZÚÚðÊ€7>c)|ôyúä/ìÿÅü LùïïßøÁ’îƒ2ÇWqøžßcM™ÛåÓ—#Þ¸QÚ¦ñÎuœ?ØOþÊþ_Ì?í¼½ëCºÊ_¾çï±Ò”YµZêñƽÇÔšÖÏc‡'¿¿Óÿò$Ÿ¬?ºvœØ¿\îÿàŸÆRÔx|où´Çš3·{ÌÝwÃû=gð0u>ÎW[ù+û'Á~jÜø .ßßÌïB8_j9ßÿ·YDÔeŽÔßó÷XSâ~ùôÅbÞ¹•ü=ñ8ÿŒ¿²ÆþέCûþ‡ùUˆçK+ç_ö_P¿G–BŸï|n]Vßâ¼óèÓ#;Ÿé”÷#µí°ñóýç‡ñ¯æ'ëÃо?š?È"+çëŠØKÔà€ý}윷?ôX}3ž:ž�Þ/ø¢ÕùÙþ«eüËùGñ•Ñ÷Góu¦tî|úq%I"ŽŒs~­’g½ý¡W‚ù¥óð÷i½O³œÞß6Ç»é}—ßm¸r]8¿Z²6‹ýõ§>*"&ß0b¿ÕúC¯Øùžƒ{dã.½›D¼¿mÿ·ßC9Žýí“ûkT;ùJ-xdÀ¾ÌkûCïAv¾çÑÀûˆ óÒÞ–˜3à·ýX?GPÿˆ à{ÿS¾ ÚN¾Ûõ:X }ž×ö‡ÞƒFßñ(€ˆó?kÓñÙ“)'ô�ûw´ý8+ÅÎ÷<Ðï¹ï/Ôï’¿‡ÏžLKIà#�ú÷¼5Bb)Á|éüÜ&9ú¾½ï߯à…èkøìÉTü> ö_¸C–Bê‹Ái瑬ßeõ}½‚‘oá ¨~2Íèw±ÿÂ2SQß4ø÷÷éOù‹þlÉßårýÍÏ}å[øì…Láœ,þk?F´¾ç³¾Ëåú?÷åü-ü¿vÎ%'‚¢†©!°âþ· ‚‚ÎDZ¦³ðÛ>YÕÎrFåÉû�âáÐO?X[?_ùR½?_iS>E4Ÿ÷¿ßß‘Ïþ»x8öÓÚØÏWö×úóèyÃþ‘ü"ÆýËmíû‹á>€èLõ×[~ú>Bùœöä/ØßÏ÷ ¾¿/_nŬô×[^8Ég¶'Éþ4Wì_ÏîÈ$j¿ò–~>BùèùÛŸÆ·4¾|1¬¯ö÷å¶~> Fþä£åßçò)üùÌqî_ùO…ùEÍ£ö÷¦~>ÄÌï|Ž[ó)"ù/¾ý£ù7k~œN¿Ÿúùþ¿!†óÌ׿ ×þ%š_ìùqÐî÷Ìõó!N~òå¸ß‹FàûÁük@»ŸO>½œ �È.\°ÿ÷ûC®ä«ßŽ¦Ã¹<êá²/@ß%I’$I’$I’$I’$I’$ �ÿÍ<³3ùczé+hýv ¼rôÆvÿ`ý<¿¿ïAßCóû3è¯kývÐk÷dÀŒ0ö®y€ý~t÷äCñ|ß}é×—Õ~ûØWýù?sÿ`èóà÷Ñ×ûÛç ßgWÈ~»Ç×ýyå¾~ÿ@ñ¶yîçõÒó„ï³-ƒú2ûí._÷ç¥Í5žû­ö„ï³-ƒþºÚo·ÞèMû{Ôk÷Úûç ßg[¦úÿBB÷à¼o@…óüþއâeÖË®`Ü_Wû퓞ýyç}z,ôü¾³¼ð}v„ýý³½v¿`Þßzî·Ü“‡ÿ�Rç·u]ãk����IEND®B`‚IMAGE 504 ./arch/weapon/artifact/Kdagger/k_dagger.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���½PLTE÷µÖ���cBkJR9�ssskJJB1cRZJ1�Z9�sR!ZB{ss{{{œœœ¥)¥¥¥ZRR„Z1{J!{R!c9�R9cB{Z){Z1{s{sR„{„„„{„„„Œ„„”””ZRZµ1ï))sJkZc”„Œ„R)sR1B9)cJ”!�cZZ½1!ZRBcZcRJJ”ŒŒsJ!œŒ”„{{ccZ¥œ¥ccckkkŒ{{½9)çsZcsBP@™���tRNS�@æØf���éIDATx^…ÓÕŽ1 †Ñ|É0C™¹ËÌôþµª´7íì8¾É…~Ù’£Ž e)l‚À"x^YDZ2W0uï$ÁÓ«+MÁ¾ÌÓ ²k”ò,G(§n`‰pï%ÁC™½WX„þb¹ûó|,­Ébž»;”˜Ð¶%ü͘Vßüw[ „eöV¡€út»#ÝÎf/þ9ÔÃS àÇxIß÷/ú‰Ùn›×ËM¡=/ Ã01ž.>›`StàÑ :Ŧg(ÅÀžš–E1އô¸t J(´£%€‰¢Hˆ`¢{W==iĬ¿ÖÄGà%Êrñ]����IEND®B`‚IMAGE 292 ./arch/weapon/misc/kama_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���¡¡¡ª˜X¾ªc¿¿¿Ñ¼m���aaaŒQ¡¡¡ª˜X¾ªc¿¿¿Ñ¼mÿÿÿºØ‡`���tRNS�������UdêX���™IDATxÚ¥“í E§cÜ©­}ÿ·•ÙÆ Ó„“ÛÂò'ø0º-+T°;©˜Êݾ… ì¶»0Tj…YKx¡ô ‚gR *‚ài°IÁõÀGöt=loš²Á˹Á1ýÔ.Ž‚j=,1˜ðSXa2O™l’‚꤄J²I¾æéMž_”fKpŠt¿Þìó.Y^A4 f&^����IEND®B`‚IMAGE 292 ./arch/weapon/misc/kama_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���¡¡¡ª˜X¾ªc¿¿¿Ñ¼m���aaaŒQ¡¡¡ª˜X¾ªc¿¿¿Ñ¼mÿÿÿºØ‡`���tRNS�������UdêX���™IDATxÚµ“Ñ‚0 E§Œ]ÐÖþÿß:hkCˆ›dñ<r.—v é2øðE. ˆ1å£ViþA,Èå¤#°¬‚[ oúiÔ”ÞìË�ECøM8DÌÈÙ½¾­«Ý7@:¤{­Å\õ¼sœ!¦*{äkžñ�·ö‰f Û@‚© ~ÃèÌ�é9Œ ©·ùÏ“¤ñÛÜ¢ßì×k�¤ßx¸î f?„¡ª����IEND®B`‚IMAGE 164 ./arch/weapon/sword/katana_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���d3,5���tRNS�@æØf���CIDATxÚíÓ1À0AÃòÿ7'/gì.5w Šu;.su)¨¿áÛî9ò¾¦XÙû§‰|¦‰œù;’àüsçg+êäFX����IEND®B`‚IMAGE 497 ./arch/construct/keep/keep.x11 ‰PNG  ��� IHDR���@���@���·ì���$PLTEÿÿÿ���½½½BBB{{{œc1΄9��ÿÎΜœ11ÿÎ�‚ÎÈü���tRNS�@æØf��{IDATxÚÍ—nƒ0 „9ò3‘¾ÿûŽdVœÌØ0C§ž„‰÷É8†¦Ë M4˜ãÒc• X«�„v¢hªFºã]� ÝôÃÀÇ 0±N‘1ª�İmÀí€�Åß�«-€õÄOuÐü÷cSÊ_»ØZT.¢ðK�‰�ña€ô«°åÜÎô3 ¦UH U; %€°‘ý� 5H @«â“�~)Ȱ É„C@ì­¼mù¼•e0 ¥°Ÿ‹(dd¾ @ñ}‘ø=*Ž/Òƒ�P n�öè/b—€Û€‡É÷ëÌËåþ€}â.³¯d�Pñöþ@Ï ûÏ%3hˆË€ãN$?çËC1¹Ø�”RÄF*`òO®±_�ü 0 _¯†br1�¶T€Ëo ާ�ÖîˆÈãà©�¤U/7�H9!§—ágAø«=#Wˆ €Ì�é—‚ž@v%Àþ«åHÀ€p&ÀÂ/©W–ÏÓ7$Øõ¡<Ï����IEND®B`‚IMAGE 503 ./arch/construct/keep/keep.x12 ‰PNG  ��� IHDR���@���@���·ì���$PLTEÿÿÿ���½½½BBB{{{œc1΄9��ÿÎΜœ11ÿÎ�‚ÎÈü���tRNS�@æØf��IDATxÚÍ–Ž„ DÙÿÿß“…³p•†T÷²“Xu^º¥º¸/ÞjÉ]‹USÀVÀ§3úQc}âc�àýPe`ˆý ¨€“± ‘!L *è€�‰ÿ Øt©�lºÿ·3ÿ}@ßÄ)%¶57Qø% €`�$ ýý*ìDÛ–Š.�þ0¬B,€JH�³ÐvªçÊX £ëA$±xAë“�þR 3„n¢ð—€pŽò¾Óú(ó 0 ưŸ›(¤7Í|€lû"ñ{” _¤(-¸ ÁÞÄSv�n$Û¿3/cûöù‹´I\©�s@ÁëûƒyÕ¿$H@A,®'‘ýµRNåE§sîSÎÀà\œ±_�Ì0€;PÔ¥â¢S�º€Á¯ ާ�Úc`é�¤E/3�ˆAñ¥øYþb'P˜� ÐüóÈ� €êw0``0ÀÂMï¸ïÓâIØŽ)Lî����IEND®B`‚IMAGE 342 ./arch/construct/keep/keep_sym.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEçÆ÷���½½½111{{{ZZZœR)œœœ��ÿc1sss”””9JJJŒ„„kkµRRRŒŒŒqD`À���tRNS�@æØf���ËIDATxÚ•‘‰ „@ C'=ÆsÏÿÿحଭa7”"ä‘T-|šè3Dã¼JR™¢œ�\À¸)V@„q�¯uÝ€ ì�1ÀW@XA Pvœnp&P’ÀíHLѳ}(@¹&2ÅŠv¤ífÇ ìhfªåè÷ß×oÑû›Šp$Óy| ŠoØ ÞD~£œ€ûBävÌŒù$\ù€ié�_¿Ö[Eó30 Îµ³ É/hº™öÇò«>\³’ª����IEND®B`‚IMAGE 141 ./arch/door/key1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEc��œï÷½½½!Ž���tRNSÿ�å·0J���1IDATWc…Z2` Q(ƒÎ```„0´V-D j…ê `…šèŠÃ 1�ÙZOÖP]|å����IEND®B`‚IMAGE 164 ./arch/door/Locked/key2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���@@@¿¿¿¾‡#ª���tRNS�@æØf���CIDATxÚÝ‘±�1 ƒbüûÏüJÀ½iáN…Î2: 0)\YDyPS@âñ¥PÕ ê¸ïaÃýûÌá¬ãÒ¶�×Üm¿q����IEND®B`‚IMAGE 164 ./arch/door/Locked/key_blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V@@@¿¿¿��ÿ&¥·B���tRNS�@æØf���CIDATxÚÝ‘±�1 ƒb?ûÏüJÀ½iáN…Î2: 0)\YDyPS@âñ¥PÕ ê¸ïaÃýûÌá¬ãŽé)Fv‰‰����IEND®B`‚IMAGE 157 ./arch/door/Locked/key_brown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…? R-ðæŒ¥r"i���tRNS�@æØf���?IDATxÚÝŽ± �0 ƒŠûÿϵz�Ùà ’}–‘2xÀ|¥”VTy) ÃK>·…²¨Hê½ÈÇ7Ü—z‡³Ž8w�‘ø§Ø����IEND®B`‚IMAGE 299 ./arch/door/Locked/key_darkgray.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���PPPuuuPPPuuu«««ÿÿÿ P~—���tRNS���úvÄÞ���bKGDaf¸}���µIDATÁmQ�DÁyu�ÜV!•Î�bå›Aøcé ¦lÂl†­/´®p* ‚«�±ûŸÙ ¶îçi+¤<žN” ÎÙ30ÁÑÓV€~xB€û>/!Ì>Ïy[_d+ûü}.Þ'À¢|ü¾�õWñ> �¿ßÊ ×ÖÞgÛ”ûù ®€Ç}@Á}ß/„²ñxn Û=¾LøP (�¢$ÌfØúB[ÙÔ �Äeóe¡Z%¦qï����IEND®B`‚IMAGE 157 ./arch/door/Locked/key_darkgreen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE L‘L–º–8`8ÿ ´ø���tRNS�@æØf���?IDATxÚÝŽ± �0 ƒJýÿϵz�Ùà ’}–‘2xÀ|¥”VTy) ÃK>·…²¨Hê½ÈÇ7Ü—z‡³Žr�¬àIiØ����IEND®B`‚IMAGE 160 ./arch/door/Locked/key_gray.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���YIDATHÇ퓱� Y–‰ÐQðã°N BWY”ze·7 =À¾“ô] €²�óê�Œ±Rˆ9h [Ä$Doõ½ADÛ•}#id5X§Î’¹Ùýg����IEND®B`‚IMAGE 157 ./arch/door/Locked/key_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE eÁeÇ÷ÇKKt€Fj���tRNS�@æØf���?IDATxÚÝŽ± �0 ƒJýÿϵz�Ùà ’}–‘2xÀ|¥”VTy) ÃK>·…²¨Hê½ÈÇ7Ü—z‡³Žr�¬àIiØ����IEND®B`‚IMAGE 157 ./arch/door/Locked/key_magenta.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEG ²t²éÕé”6“y¯p×���tRNS�@æØf���?IDATxÚÝŽ± �0 ƒJýÿϵz�Ùà ’}–‘2xÀ|¥”VTy) ÃK>·…²¨Hê½ÈÇ7Ü—z‡³Žr�¬àIiØ����IEND®B`‚IMAGE 157 ./arch/door/Locked/key_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE þ((þÀÀÉŸ·���tRNS�@æØf���?IDATxÚÝŽ± �0 ƒJýÿϵz�Ùà ’}–‘2xÀ|¥”VTy) ÃK>·…²¨Hê½ÈÇ7Ü—z‡³Žr�¬àIiØ����IEND®B`‚IMAGE 207 ./arch/misc/Container/key_ring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥ ���¿¿¿£Ë4ð���tRNS�@æØf���qIDATxÚÕ‘A �! Íôÿ^…µRÌâiFÐÚLT°]¦H}ùLY$ k`÷K lÞó¾qމ¿É¤µ[þ’@oÕB2@}E€!$ ›3½")a¾CȰ*!r©sú®±¿p;¨ˆ>7 ø«®ÒÜFC©? ����IEND®B`‚IMAGE 160 ./arch/door/Locked/key_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE²²²ÉÉÉïïïÿÿÿ¨¶ñ���tRNS�@æØf���?IDATxÚÝŽ± �0 ƒjúÿϵz�Ùà ’}–‘2xÀ|¥”VTy) ÃK>·…²¨Hê½ÈÇ7Ü—z‡³Žl�¦ 5ë·����IEND®B`‚IMAGE 188 ./arch/monster/insect/bee/killerbee.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿ×�ÿ¥�KŠþ ���tRNS�@æØf���^IDATWc` ð33€°ÎŸ ™@öÀóþö`þúÃü¯Ab¯Þíÿõn ˆñú{ýº5`)þÃ`)æ¦ö(Úþÿ2®Æ ‹ÀÕ˜Â,å?�e03àd�¦)"'Mmt����IEND®B`‚IMAGE 181 ./arch/monster/insect/bee/killerbee.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿ×�ÿ¥�KŠþ ���tRNS�@æØf���WIDATxœc` 0!„Á e0œ?eØ�S< Æ ÃàÿÚõ‡ù_ƒ¤øvíÿµë�²\ ƒiX܆ÿ Œ«1è"p5¶0ÿ¸©�_ÅYöto(����IEND®B`‚IMAGE 538 ./arch/monster/humanoid/Guard/knight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTE÷Î÷ccc{{{¥¥¥½½½))Œ99µJJJZc9ZZZsss))„RRR))”„„„kkk!!„!!{!!ŒŒŒŒ11¥11œÆs9c1!!cÞ��BBB���œZ)B!ï¥Z))œ99­¥R)11­”””!!œ!!”s!!!„B!ççç))­)){!!¥ROÏL���tRNS�@æØf��>IDATx^­’G’„0 �‘äDΙɳ1üÿ{këk¸­8vWËU(ذplÀì$TêƒãDJp ±/Ì¡ �.˲/œO.à A»BÈZ_@¥ìÚÛ½—É7íH Ô­“ òHTÕíCÝÚNŠOáHˆJNjzL3æm@(³ÉÎU§Ph½ PUÊÖòZGçˆEºô ì_êµÓQ‘?›|-œÃþÃ`¹zéÒ›gÃ&pî-Þí7 Qœ7–¯7„ý‡µ®ó”…í NvAYfíOÛU2u/@Ðþ”UÕYö–DØX¾ X!‘2“2I�s^° {bŒ#ÿ˜óÅ¥�‘£%ÌAZû‡dFcVžpÛÆsÀŒ–²8z‡ÂœlzÂ6l<cÏý×ù&íÔ7€¸����IEND®B`‚IMAGE 547 ./arch/monster/humanoid/Guard/knight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTE÷Î÷ccc{{{¥¥¥JJJ½½½RRR))Œ11œ99µZZZsss„„„kkk))„Z))”ŒŒŒ!!„!!{!!Œ11¥!!cc1Æs9c9Þ��BBB���œZ)11­B!ï¥Z))œ99­¥R)”””!!œ!!”s„B!!!¥ççç))­)){!!!w/È���tRNS�@æØf��GIDATx^­’×’Ã E-ÑÝ{OÏÖòÿ¿·‚dS\ÞVžŒÏ™ 6x“ÛŒ·Z08Á¬s°YãƒãŒ±( Ý%�…XvËÇq\:ÛÀ‚­Pµ§a%€A®tu<µ*þf (Ð æ¨UŒóU:&+ÊjkŽ•VâS,V¨ÞôÛ^3²gT"O{ªÃ€dÚ=²"WñRs QçwÞµ{æÑ·_æUs‚1’»Ö󚆸y!! ÏYø(tí»åÍ=M##ÌÎa�Ÿ°·ý` *?3ârr yžV•.”tB$§Ç˜eZ¦é[,íø$�!V*U*Ž}̈O27 ÀÐ.0 °ÜÈ ÀÀŸÝƒšˆã $�ñI@R'ÉÍãü‰o®‚³ò&µs<©©;±ž WžÜfËBrSçÆÜý×ú�ŠË’ˆZl����IEND®B`‚IMAGE 542 ./arch/monster/humanoid/Guard/knight.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTE÷Î÷ccc{{{½½½¥¥¥))Œ99µ11œJJJc9RRRZZZsss„„„kkk))„Z))”ŒŒŒ!!„!!{!!ŒÆs911¥B!c1!!cÞ�����ï¥Z11­œZ)”””BBB99­¥R)))œ!!œ!!”!!¥!!!„B!ççç))­)){s”tjÔ���tRNS�@æØf��BIDATx^­’ÇnD! �± ¼Þ{Ù¾©åÿ/˜U¤E¼M.1â4£$ÄÖhñÇè_ à 81—RÓ#, =à�\×u[8E`ƒä¦0Xë/+‚ØœHÈFÃùÒ«âSn�YÐç@H¾I’m7ìõy½“@I­Zô²_id? ‰šj1s=¡1ø]n€ÚF †wACžç†n€ß°ÿÐÏA˜@š!æñ} ß¡˜&Ãõ“òìXg÷Âõ;çW³¦)α>f)8±ã• 3IšÕ†ßŸõo¢iªáeZ[Á½Áa' i»ª«ª¯"æ 8O0¡PªRª(¬ wÌ%Jë`fp7n¤˜&Þ?˜ ±(`îʹ,ņÞGbÁÊåÍóå̘ÅÙãæ6`MOpéþX÷_çƒvp‚8×����IEND®B`‚IMAGE 546 ./arch/monster/humanoid/Guard/knight.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTE÷Î÷ccc{{{¥¥¥½½½))Œ11œkkkJJJRRRZZZsss„„„Æs9))„Z))”ŒŒŒ!!„!!{!!Œ11¥!!cc199µÞ��BBB���11­œZ)c9”””ï¥Z99­¥R)B!))œ!!œ!!”!!¥!!!„B!ççç))­)){söæ’���tRNS�@æØf��FIDATx^­’׊Ä0 E#É-½÷é³½üÿï­ì…%'o«€¸‡clÕì8`Ÿ€É6Ü%`› b'ÿ ÛÀt²Àyž·ûÑ ,!h8¹žÞf„P%U{½¥2û¢  ´ÀpU2CA¾�‰ê¦= ×VIñ!| QËq£âò‚DUŒ\OˬaZ ¨®dËy£LZk0f!H/ðˆ‡ÏáE™âQ‡‹ü”^‚ ï9žÐɹLV@zO9ïßøëûPcyNbXN¾3õd ®(NJΗ‚#_PUEûÚªZ†ÐáÃ+@U7ESßYh'@0ψIYH™e–œ? É0q¬.·'ÄGÞtœ¸Dy‹”wyþÇã/ŽÎ·Î ï¸;°óÅåNàHX‹sØbÿµ~�Œ2ÿ/,����IEND®B`‚IMAGE 541 ./arch/monster/humanoid/Guard/knight.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Î÷ccc{{{½½½¥¥¥))Œ99µJJJ!!cc9B!RRRZZZsss))„))”„„„kkk!!„!!{!!ŒŒŒŒÆs911¥11œc1ZÞ��BBB���œZ)ï¥Z99­¥R)11­))œ”””!!œ!!”„B!!!!sçççïÆ÷))­)){!!¥7+ø���tRNS�@æØf��>IDATx^­’Gn!�é&MÎ9ltNÿž¡}°™aí‹qªRÌ7Šý1êìÆÛ,– ¡ø-V@Îù n€ëºú…%´kpᢃպóŠÀ¼¾ŠJýéÜÉì]ø€VP§Afè9%\ÔMQ§~ü…ï(x-g5_æE*,n@p^å³™«Ž¡,KÐÚ ðº’½áN -Ëx°o¸¼©‡A'eq׎uGdãh¸ºâÛ»"…Ÿ<쎆Ofc’­án êXt‰Ç$lnÐ=²ªÊû~¨elo€à>áÈ ª›¼Éóç,ÁÖp7`6B&e.e–ö�'`¹@A‡Ó„m_œ~\ ìÿA`qàLk¶ LÁ4±oo ä‰<O` %1Øñq ¹;Á OŽárÿu>?Ѧ5šJ}����IEND®B`‚IMAGE 1269 ./arch/system/knowledge/knowledge_generic.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sBITÛáOà��� pHYs���s���scÁCþ���tEXtSoftware�www.inkscape.org›î<��PPLTEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”””•••ššš   ¡¡¡¢¢¢£££¤¤¤¥¥¥§§§©©©ªªª«««¬¬¬­­­¯¯¯°°°±±±²²²´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿFæáF���tRNS�-I„—˜ÁÈÚãòóõÕ¨1[��úIDAT8uSûWÚHŽÚ ( Ýî¶»u«  å! "Vò¨\”; )$1Ç$“ûÿÿÖ˜zjO{v~˜9gîùîýî÷qܵ¶Ú ïì„·B›kÜïëE0ŠöJSmE1|ñKx=°Ëf�@oUg7°þs|cÛÕˆwo1D×Ѷ½ñqf@4Ñ¡”>s¬ÈËï#–�EjJÃÓÓÚdå}´"D<ý±¾m ðà2½“JÅsG±k÷m ÌíïuÜ,ÎòùA%“Î&’Õ«Ì–ë‚ðûÛUA`TÙoc?u”-§_‹V¼¥¡óÝÇnƒÝÕ“".¤ÌiJû›? ÷¤IqfÐã/ªx�F¹†÷ÕJµ,‹ïø†+æRtÛD,{òUØ;¯ gµÌɧëŽdyp6¹ZõZ©3³i»Û¾í˘  «·¥ŒzÊ‘/JÂÍ_‰=ëÇš½tÙí^3ä-.¬ÂNs8+i\ä» éU?Þ6¯äi™¢ø5Ìí,`É ÷Û#¾þ^»ýZºrÙ“W1ŠÒlÇO°5üÿ§”¿éTZj9qò¾úIÃ7¦ŸV<ˆë+œ›íægþí¥óÃbºqËŒÌw¿H1Ž“|µWH’ÉlöY,a¯æøE†LÑŠÍi!“(&ã¹b+Q,ÿ¹WAÞë–!(”vÎðs¨gíöÙU®·œUšP=î<¢Ö¢²‡!ÏÙe©|7•=»A¥ƒÙžÃ|ª¹  `8£³Nd¾oðõ/ç×8)(ƒôÇ­€ÈÌËŒ‰ãÞ8õ¦6jÉØ?RÐ�É7`"(hÞíÝ!Úæâ [H<�BO’£–H¥ÃlUEÄIn¿ë)pú“ä<Ñšæ3ÅÛøÛýxf@l4XF6žeOEtt©µTW”¡«�1žeÿh¦�|]Úº–*ÂÂþÙ8¾õlÙs¥Ç}aýb½'óZšºX(šáþnÞÿ·ÿ7Qñ0=”����IEND®B`‚IMAGE 212 ./arch/system/knowledge/knowledge_gods.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷µ÷��ÿ1Rµ!!���ÿÖ�ÿÿ�¡)‡m���tRNS�@æØf���mIDATxÚÝ’1À 8óÿ'W¤H,†N­"åd'(×€êÒ@äëìAÂÆ@$ˆB“(áf«®ºxŠUÈ &è"HÙ!±C&0Ö´�A«»èªò#ŒUÈÚ(öç ·@;:8Þäu¬ä=>é����IEND®B`‚IMAGE 1086 ./arch/system/knowledge/knowledge_messages.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs��Ã��ÃÇo¨d���tIMEÜ +DZ]��hPLTE���()47%:,#H3H6&J:2U:&V*V6XE/YB[NBeK5f;$fF)iS9iWDjPv7 vW8wH&yeMza<„K%…kT†hH‡Y5‰c:‰tXŠRŠqLŠwd‹a,”\3–|d—kE—xW˜T˜f8š„hš‡t›[œq<‘xžk¡]3¢}c£X¥j7¦{T¦Œt§wG§ˆg¨s;ª„Xª“wª—„«‘k¬\¬£•²}S²s³{G´’µŒdµ›„¶ƒK¶ˆX·™v¸‚<º”hº¤‡º¨”»‘\¼¢z¾±ŠÂŒWÂbÆJÃsÄ™hŬ“Ȫ…˧xË´”̲ŠÌÁ©Ð ^ÑrÒœgÒ­ƒÒ®’Öµ‰Ö¼£×º•ØÈµÛÁ›ÜÄ£ÝЩá¼á¾¢â²yåÄ™åʦæÍ±çÜÓëÑ«ëÓ³îñêðΣòÓ©òصóÜÄôìä÷á¼ùôêÿÿÿƒqV���tRNS�@æØf���bKGDwFdù×��BIDAT•ÁiWÓ@àW­¢‚Š â†â¾#ÅâZ+­Ñ±en‚n†;Œ™‰µ.¿ßVÛ‡zÏlYmîþ§-wo¡ŒáÔT˜Â$�TÇ0L,@»rC, ‡Wq½ºˆ!,[üëÞ™iüÁ'ŽÑ}ümnñÒü¶ s™ðuÒâRÓe"ô©� ¿LO€æ¬üðúÂ9 ¼ž{þ ?Í΂ˆlÀå…û�øÎì8Rš<…ãÐŒÕ<'¬å/tn}Tigõ�GkJµ-yÍb)ipå1ú¨þ®Míú&‰×E„…Î)ªUÑW_Y¨6—2?XfŽY´%uÅ„&eM¢ÑÉ»ì%íµVJ+v–Þ¼ ;¶·êTÝ;=;2’n›1¥Ê®‘ûKâìµ]�–²Y ÔêÓ†D"/bGü¾$Ŧsj @ƒo¥žÍ/ȳجOÝL9–Þ¡ÍÐuù�îé÷µ 9ù„´NÅ›ÜÌ*ÓûZ]ëη�H/Š—Ã0^Ô‘tŒ1ù†1ÒéùŽw]q�®D»ÍØNŽW÷žÙܳÿp‘N7"ßÛuY€é~™cmâ53æÅñR|õ=ÿ©ëlÀú\ »H¢³&-V¯¬• SŒÉg™êØî�¶)—NdQšJîE‹/L^x'iϱu�||1$âX´còùZ¾™;8±d�Öµð%*Ѫ½Ò²’z+ >�Yæ�¬´øPU*Ь’$Ôz]WÜ[ôeÎâ·ùÛøÁiÁ–|IPº\’õç3����IEND®B`‚IMAGE 1484 ./arch/system/knowledge/knowledge_monsters.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs���ã���ãæß§���tEXtSoftware�www.inkscape.org›î<��IIDATX…—[ŒVÕÇk­ƒ±\t`¼o«¦8ÎŒ‰Q¼ѦñA‰(‰F£±©I}0ÁVM|@­Aš(Š­¼`¼´U¼EcŒ´ÅØZ#^0-¬€â­óýïÃÙ?¿óÍЕ윜½×^ÿuÛk¯$z `ØhÇ&àˆ±äô 3ž�þ ½ùkÔöž3³S%½Õˆ‘­ì>¬Íà€§²àñÐDàL X�œ&éÍ®œ n?øX \ Lí¢h˜Ÿ\—e|ü¤ß÷<`fÙÚUÀF`…¤mµõI’¾jÿEq™¤ƒÍìå²,7oKúOæ \ì œüTÒ¨Y~p-0½c} pLí¿p÷Åî¾ÁÝ7¹ûFw_ѱ§ø °"Ë>¶¾î5ËÚ1ø°LÒÖÚúaî¾("kϹû¥’N  †ÝýáœÀ�»w›5ÀÚŒUÉȇ2øï©²}¤|º»_  Lˆˆ›kÍìIÿ�&šÙ& åî}±ÄÝŸ1³eT'âî¬Ä#Y‰!�7³áøÇÀuð 6Ø8©,ËwÍl*p.ð# 0³õÀIý@¿¤>IOGÄ î¾<Ã=€{3Æ£Y‰a§:çeín¯'\¶~wIû�s$½¬Rv;YçSJ³²uK€×Í쌔Òl3û@Òß³§–d%þ”±°8ªá8M6³'Üýˆ8ggò¸/r÷äîÊß`&0%"Ît÷ű˜ÛEæà¶Œ€ëÙ Ìu÷À‰kî~½»ÿ-+!wßBG–Gv‘9ø- § ™Ù »ÿX)é…<7+#âv@)¥ © Î×@Ÿ»¯6³ºÜza4z�w_/åx›»_çîŸÖ,Vö΀»_åî£î.à 1.¸h¼\"âlIÀ…’df³€ETÅè`ðC`röÆDIŒRÌl°]MÐIs²,Ë Y¡9T…3»¼,Ë>wÿ9°YÒ~’¦�›Ù+Àͬp÷¥À ÍÎï¡�°àqpVh`ðM«Õº`tttmJéb`š™mu÷‹$ýØÝ_w÷UÀ|w4³FO÷Rà=ªØ_™žÿ?ìà{ØCÒcY¡™)¥#K)Í3³÷%5^㚥”FÜý*ICñ¬¤ÙÙßi.$•±Œª  ff×HÚüµ‡‘=sà33û%ð¤>àÀfv¼™Ðæ3³’~÷ä+˜ >&õ¬eY~df›ÉÀC)¥!`GDÜofíRŒ¤‹Ìl‡¤ýÈ'`¼Ôèw–tðë”Ò$m›0aÂ/RJO�Gë%m(ŠânIôŠw&fL `+°/pž™}$i{q_3ûU«ÕZÙžhµZ[ÜýKàŸu‰­VëÁñXlf3€…TÊv¨º ­Àp0-×ùËÝý/EQ̧£Ÿ‹ˆ³ÌìqàÀ¢(ÎèUõ:*àLàà>ªVØ%­NÎú€kÌlzJéwÀš”Òòˆä»TšÙ&w'¥t”™Å8,ï'·yÀYÀ<I¯Ôµ;.»d¸ ˜—DÄàÐ.ÖÌr÷«#âÜqX¾7Õõ»œ*Iw®u0|VW¢‡Ð=ÉïŠ1Àû3ø]šÒnN�>ÏnlçÄÿ3rÌoîÌàßãiØx"Õm×NÌÆ‡IðTí×Òn–·G¯§Ù\àÀýÀ`5»ö4»€ªz.Ì ÷ZWœW5fv2ð8UÇü9ß6¢c‘2ø‚ þj3çØ®<ø‚]žo†Ç’ÿ?‘bÊaÜ×’����IEND®B`‚IMAGE 2580 ./arch/system/knowledge/knowledge_recipes.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 8"ØØ–���tEXtComment�Created with GIMPW���bKGD�ÿ�ÿ�ÿ ½§“�� oIDATÅÁK¬\çAÀñÿ÷8™3gfîÜ—DZ];N I”&ª*!b!( !U R¤Š ÔtÙM7uGi‘�ÁÄAA4…,xÔ*¨¢­Ò¤ÛÈnÚÆØ¾¾¯™;3gÎÌyŸïû¸ /¬¨m„ÄïÿÏïÃG?ù5Þy~xNŠ‹I’Õ[g.Þ­ëº9¸ù;èwìÚ ßÞ¼vÃá[»õÇ»¼‹ýêó!* ‹<ëm}ð™Õ"û˜Ë'¿VØî ð”ï#…½;Û»½× õ[ý~ÿ{yÕ.¤ïß°M»S7Õ2诛f‘´U^5§¿`Z´_ÿËÏ´üO>óë½Á¹'Ö«2;/dxÉ´ö’â™ Š´³Š0T(©hšÖåó‰ð{1Ö VÉ _ ¶Î£Ì2ÒÙ”r•¤^ïÚ²¼mêæzoMŠUõör|ãÊZì¿¡9ö Ïÿþº!X£Zm–ÉѶ3âÃÈà·Â8:唯Z‰À¢<M±H\z”‰scóBg*¤YMVPÕ ³ñ‚ís9ÝÅr<í AßîƒïHgV³9JpG ù°~ú?þp>_üîÚgŸLó§T8Àï­­XìPd•CH‘o#ƒÞú áG1Å"e±»‡ |ê¢@i¯£¨+µ–ÙÝ]‘NÇt{1Ñú&Gû‡È@“Ç<Kyôôæw=¥ZíO›"û[·,'G ¶O9ô¢uA,Št%töû˜V°Úß¡wò!”±}þAæSz[Ûó„@{„8âµ!¦.YM±mÅd÷E]±¿?!›Nã˜Ãdõ %pZ{|C^r¸¿7lLË2™‹Ùøˆ ã‹ÞhƒîZÏ—(o„ày§pBqîâ9‹”8º»GØë!LËÆ™3ÔYF–&xý˜ÉÁ‹dÆàøÝÎZ'¤ƒAøÝËÿñwN¿öŸ/Þ½ôܧ®TiúŒRå{XεLwîà÷"úkTDL# zx]ŸÕc-´XkÉ®#ê„éÁ˜Z Z,U]€„r™á´e†ç¸Æ1õÜo~J(gNN§É/U«Œp¸×ð:¬1´uI±ZRÕ†<Y0¾q c`>™àyËÝ·éöG„Ý.E>cÿÎ ’ù #R ÚªAy¶i1U‰ß „k›t÷àèòÃëµzóW9{ñ©æ(Y~¢iœ“­mP—ÊÓ$Biê¼ XÌ)“1­Š(–):ê2¾ñZÛ‚ÍYK–i†u©=Êe‚Žn@ xš×´’_HwÔhŽÝyûÖ<Í]0ÜM™“ͦH?ÄJG'êÑë°fÅüPSg3‚ŽC‡=<éшÖ,§)³ù ?ìжRi”çö€£)+„Ò8©‰|õ­@ÒÞ$Çz§Ï–[ç/d¦¬~ˆõqmm ­+²tÊjQ¡}Ÿ­GÃXì3¾»³ å…4i m‹P”¢Î2:€xmD>O°e…Cº¶iéxêÛg6¢–c’cùì°mŠÕG›'‰G#´°Té ›Í .)Ò”ÅáRÃ8+8œÝQô×¶ÐÑ�¡4uºÀ6%~7@ø>«ùÓXL™ÑÄBTÅ*»ú¯/þµå˜äX³˜ÔM–ü‹59Ry®Î–t†tF8­J²vb „ÇôÚ[H,£<‚çûÄë”U ¦! ^é ŸRg9`‘Âa äÉgêÉÑl>ãɱkW¾iâáðÛZ·m]•ÂA•å`@ª€h´…}Ú"'ô 8$Ùä€åÁ>ÑpÀðìyŒshéˆOœdôм0&_ä $M]pj{ãåÇ.ž/¸GrÑk·Âhûõî`ˆ”ÖåG{Loß"?“/8'ñCM7ŽIn¿…­—¨ BkÍÞþ!Ýí ¼ÀÃïF,Ç”É S,é¯ â>mB`¤ø¡èø5÷HîÑZ¦.¿ší!¤~·‡ AI‹Vš|vD2>"O´öIoߦ·y’S/°yj›ÉÞ”fµÂïÆhOãÆŠñÂÖx¡ÏpûNˆÝéÎMÃ=Š{ö¯}§íEë3‹ø¸Ò½N•åøqL¹Zá>^<Äï ¤rtF›(×Ò]ß„|‰î“e%U–P¯R´×ÁY‹êFXcœ©3û’8ð?{ù¿^ÚáÍ}ÂÞZ*ºñÔJ¹æuBÂþ:ÑÆ)lS#ÐQ€p ³D ;‚²l¹óý¢iÐÖ ý2_áœÀJð¢.¸G6›D}úÝðå¾¶w¸ä>Û?ûH £o*[ƑӾB*P ¤¨CM¾˜hQB ”#î*tÓ4%®©ÐÊÃúxžçÈg3×Ö¥hÓ´¥å¥§žx,á>Šûô}ß­Òò‘¿,tG˜ºqÎ4¢) Lmèu<²EÎrzD7›§OÓT9^ا©2ê²Ä‹À¢ƒ�©}êl%<a¿’çåçþýÅ?O¹ä>MM«üh7ètMhG[OÁú©mçG>iÞâ÷†xA ê =ÙxBr8Å:a€ö$BÚ²vÎYg¬8—7mý7§·xÅ}&û7Ý™>µ+¤8jªB Áɪh¼î ¦¶ÎIOp¬ZL1Náu"œÓÖ(ÑÒÖÑhºª Ân$°fæyú%¾ðæ×¾XóŠwØ»þ½âàúåWNÿ™×ój9ÄacåB—îÝa7$ QŠt5ÝéàêœÕr…© '¤žï¡Úê/Î<Øûìå¯~©äÇPü7¯LžxôÑ׫ù-'äY¿= Ã®Hn]wÁ`‹¶HE¯ßc¶³ƒÖÝÑÕô€Ùá>ºÓ®mqeñR(Üï½ö•Xò(~Лם¶³ý›ßß:÷Ø+ýõÙäÆž4mÆ#Q$s⵫ŠZ)È1ù#¤ó;=!\ó¦W¯>ýÖå/_ç§¼o~í‹W‡#ÿóÙøÎ³½nðÇZÊ½Þæ&FøÂXƒT‚xëB8ÂVy6ä 7®¼ü:ïBð>ýÜG#ª¼­ÃõèÓƒñãóñŒhý¤´(“‰U–±뿽ôá ÏÿÉ}¾æ](Þ§›W›ýë¯NÏ}èÒ—ÖTµÒm-Ót»^%ÄÃu4ÿüÜ㛿ý¹?ûÓš÷@ñ¿tû¯Oä翵X$ÿ¦ÃN„<ÇñÝ5¿xö…¿aÁ{$ø?ð‘g?é+)Å”møê—ÿêŸxþËßå§ú,¤ä����IEND®B`‚IMAGE 208 ./arch/monster/goblin/kobold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEµÆÞ���¥R)΄9c1½½½ÖkBBBcB”Ç7���tRNS�@æØf���cIDATxÚí1 À0 +KnóÿWè&]Ûƒ8Ã||ì—¤y¡HÍ ˜i €%2p-²ˆà/;ã™è„\5x°€Èà Ý W‰0^ ‚çž±b=_ 0¡Á?ï¹aw›¤ï’����IEND®B`‚IMAGE 206 ./arch/monster/goblin/kobold.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEµÆÞ���c1¥R)΄9ÖkBBB½½½cBb Ùõ���tRNS�@æØf���aIDATxÚíQ À0C›˜MïâmÅ_ûÞ(-†H\Ÿ» �é!Ñ à Ò€%Rš T•š–œeJ!ñ�¨iއû¥)!Aì0ÉÚ`€¡ÝÌ»�íÓ£ûyÏ@…k—����IEND®B`‚IMAGE 189 ./arch/monster/goblin/kobold_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���_IDATxœc`À´j„¡½{„¡ÿîW˜±nÕ½`ƾUû^€»Víû•Úõ¯*µ}Djݰ¢e«öýýÙu¿¦æ{DÍßû Ú¿ƒUïß÷ï~í¢ �ÔÅ3ÛGϼ§����IEND®B`‚IMAGE 186 ./arch/armour/helmet/kog.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ¾¾¾���vÛ7 ���tRNS�@æØf���\IDATxÚíŽA À þÿÏ6ƒ!‚¡çvQ˜a“öÉŒ'Z8ŒÓƒ™a0Tƒc„ê� ±! R2j…×v Sp˜§¬0xZ ¥0® q_hƒç"äGfã^gPLôÌ ©½����IEND®B`‚IMAGE 609 ./arch/construct/town/l_shop1.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���*PLTE�c����-ŠVc2cDŸQ,±!!¿¿¿ÒiÙ¤þ¤�þÖ�ÿÿ�30 ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �:ôDÞ9��£IDATHÇ­•1nÃ0 �•„0R‚?‘§tÐ5KvNš;È7¼úÞõ¨’”(Ûå¤h€±¤ó‰¢ Û¹hØiô®ÐþÀàGèí&@�?u Epšà¼g  ëvrH†ó3C÷,[+CתT1œYŠYžþqk`¥ª—�S�[ƒ!mBÀ1 >¥P Øp`Ö,€j¼Œ $¯K@†Ã4æ]€!À Èó` Èà�¼‰Z�H'Q Ö°¸2˜5ð.ÀhT0Åà5¬û­áQ°,agÀ”LA¿�éP Еmš‚b JÚ‚h¼? 0¶ÞQzcŒq 0ä ½àáÓÇç KàÞ/�YáBC'™£ =t/C €5�4¼Ò[�¹¦¡9Ï Ò£›ô,šïò ô¡Õà5�›ó!-ÑÿRê½O¹JR£TòIËÀív»r¹Þï_ 1|Pñ€á8À|ÿ¤©ج0ó½9ºpm°I :”ž›*¬[^Á•“ù]wî¡I>k³Ë����IEND®B`‚IMAGE 265 ./arch/exit/Ladder/ladder2_do.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���¢IDATxÚÍ‘ÁB1v÷ÿ?YúJR¡Ï4zr.fBhúøú3Ç1øÑ‡!?>¹Õîôä& Ëb ˆ!nÞL>ŒI1Ð ÊmøDè¥÷ y †âØŒyà–€Ä (`ñ—H€^0<Ö¸ŠÌÍXÔ)èè–`Â(©Á*¦à ÓŸ‚„í‚ ÿÅd êK«o0ƒå;¤Y;pOšÞaúßxaVð‰¶ ����IEND®B`‚IMAGE 130 ./arch/exit/Ladder/ladder2_up.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¡¡¡aaa���i÷1g���tRNS�@æØf���$IDAT8c` 031"Qd( †P€Ó�(uÁ¨ †· h�Uó‡¶<4=����IEND®B`‚IMAGE 261 ./arch/exit/Ladder/ladder_down.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���žIDATxÚÍ’Kà [ÞçþG® HÈNÔl3/f@ ø¼Mþè1`à$M#ì� ß%‚çz3 ëâÇ00¢rÂ^È!…/bÆ0{!Hò Ð!¤7ªO Ó¤ŠŸbCöBb›²(ÁÚ™gP~ Øal¸P¼©Á)–PŽÂ?Õ$ý-— Þ´ú†j ûÙxMŽ~øö/ãYmúÎzu4����IEND®B`‚IMAGE 130 ./arch/exit/Ladder/ladder_up.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¡¡¡aaa���i÷1g���tRNS�@æØf���$IDAT8c` 031"Qd( †P€Ó�(uÁ¨ †· h�Uó‡¶<4=����IEND®B`‚IMAGE 240 ./arch/monster/misc/lamia/lamia.x31 ‰PNG  ��� IHDR���@��� ���•C޶��� PLTEÌ.‹W����Í�YN!~���tRNS�@æØf���’IDATxÚíË Ä0 £Ñÿÿó¢´èZǰì¡2cù1^ýRJ¨ÁG@oLï`´+ïñ ¼}ž~Û@š|Ç óá2ÍÔ9_Æ5 ‚Á uõ„¶eAj®ñ— ôï™yø´Åc›åÂ=>À"•çÄØ-îùd‹“çr ¿Î£ÂG€Õ�ûè,¾¯þW¯74î™6����IEND®B`‚IMAGE 245 ./arch/monster/misc/lamia/lamia.x32 ‰PNG  ��� IHDR���@��� ���ßó–��� PLTEÌ.‹W����Í�YN!~���tRNS�@æØf���—IDAT(Ïc` -`AÌBW‘ÇÔ€"àªÅô�U‰†6ª †eëPùLï^  p=EÓÁ¦ƒ{š€Þ[ dÄÒó—-``X[ŠpçÝ L[ï.€É7¨­,kàº_·uÑ,®Ø®îÒ»p® ÛSß"©�Ý»åµw‘¸ËïÞ/CñØÝïÙ(Î\}oª×¸VÑ2þ�œ¨-À,å����IEND®B`‚IMAGE 247 ./arch/monster/misc/lamia/lamia.x71 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE��.‹W���ÿ×��Í�íÚ% ���tRNS�@æØf���–IDATxÚí“A ! ÓeÿÿÍkd@d;ö0/ºì‹ñò­EÎ1@KΦT €hçÑŽ(”O‹¨°ŒK© "¦ R£PY\[²ÿ¼%A€ÜgSA?’¬Ä²‡#¶�y™}ÃHùÜÀLb›i ¹!˜ù�Ænfðo¬Í¹ Èä~Ãà™_:÷�lÃz³÷Mï‹—?åIQ˜†‰#¥����IEND®B`‚IMAGE 250 ./arch/monster/misc/lamia/lamia.x72 ‰PNG  ��� IHDR���@��� ���P³c·���PLTEA��.‹W���ÿ×��Í�cCÁ’���tRNS�@æØf���™IDATx^Õ‘Q Ä0DÅž âÌz‚‘ÞÿLK(ûµYóÝùÇSTÞ•KβW\G äY¢8 Bo¤ ˆš`¦”é–µB96�6€Œ´ Ð ñµ-g4oÏž:+ “OÑIÆj†;§Þ0L~O; ˆN %,Vf3÷Y]ä=¦¬£c¶>‚ÑÝ‹§AA¯ß®@ÈûòÐZŒ xÂ����IEND®B`‚IMAGE 197 ./arch/misc/lampost.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿaaa���¿¿¿ÿÿ@¡¡¡p¡ì©���tRNS�@æØf���aIDATxÚµŒQ€ Å ƒû_Yæ¢~m/ío›¶×”AïEÚD`úÁòu€-Hý ÈÃɽ ”ï2P^Ì TƒéTçŸPÜÞ~;¸ü~¾‚4ÀNd`Y€‰à¡}Ï7ý"²ƒ(����IEND®B`‚IMAGE 294 ./arch/light/lantern.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿcc�cccŒŒŒœc�œœ�Îc�Μ�Μ1ÎÎ1ÿÎ�ÿÿcÿÿœ���}Û š���tRNS�@æØf���§IDATxÚÕ‘Ñ Ã E½M­ÎØüÿç.±ÙªöPØÕåBŒîñ�˜óÌ3Î�&ÆÁà1p# c `1µÉh‚w¨q›mZW"Et H…gÌHØðU é:8Ù¹–h°»"¼¬Â®÷Àt'„&t{ÈÜz轂Bh¯èÍØwç`“´�ì Œf-å/¤òKäü,±Ëo‚D¯qVðC£Æý[ÞT(埙¤����IEND®B`‚IMAGE 283 ./arch/light/lantern2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿ!!!BBBc��s��œ1�ccc½½½Îc�Μ�ïïïÿœ1ÿÎ�ÿÿc���0J ���tRNS�@æØf���™IDATxÚåAƒ0 ³NØàÿ¿ÅM¤žŒ¥zê|ñh¢¸|œtß»” ‰€1Ò@–€€. è$)‡DiÁº¹1†,¦Ý6¨Äh1{íæÆƒà~#Áïí8Ï]q¢Q‹ÍÂâ‚ISx2¶uM¾¡!¬ï�Ÿî ‘ã]•rXQB®Jªw‘õú¡0q!6>”ÿãÎðg56Þ����IEND®B`‚IMAGE 241 ./arch/light/lantern2_off.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ!!!BBBc��œ1�ccc½½½Îc�ïïïÿœ1���©¿���tRNS�@æØf���{IDATxÚåA Ä0 «D«éÿÿ»&Þ,Ø…ž:à\4;Ço ±ùœL.Œ€õØW3Ç LŒ@*!ë%¶`®ˆ¦³LÞâÌA-DD]‘ù”†Ú¿ÂÞaŒµƒ†»ó#‘&ïû'{a\ÔœÙѯç„E%¤qs¼/Â2•Ä ë����IEND®B`‚IMAGE 220 ./arch/light/lantern_off.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿcccŒŒŒœc�Μ�ÿÎ�ÿÿcÿÿÿ��� `���tRNS�@æØf���lIDATxÚÕ‘Á€ Cm7†ûÿ– é&öú^FIÏ@ó Š�aÜ % Ð!…%›VDKš‘’ŸFa`òJ°B(Ÿ-kVþ“á”{#\ñœ[䞯±ò½ÍG2wÜ×ßOŽ¿åÛɧàÑ}����IEND®B`‚IMAGE 179 ./arch/armour/mail/lapron.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÒi R-���2PE~���tRNS�@æØf���UIDATÓc` p5@ 0:ƒ«Bó3¥�3˜™CÁ f>ƒ‰á'Œaa0¬¸ e0-ƒ2`"Ì©¡ÆLS$ !Õþ,êû? ä�&\<‹§Nò����IEND®B`‚IMAGE 242 ./arch/door/large_hdoor.111 ‰PNG  ��� IHDR���`��� ���Úf���PLTEorm���BBBd3‚B' R-Áq8v‹ÊÆ���tRNS�@æØf���‹IDATxÚí“A Ä0 3Žìÿ?¹K—¥—"J Ðʼn!´|0±ë•Ò(0¹›ý™¥a`vwú³>ä0“oý’0‘œÕ•£ÀìŽ!€Ò(`yÀéËýÝxÂ^,6 Gàìˆ[ ìþXˆîÀ—Õrû»âfã DÑZœà^Ðï¹�à î|h›K����IEND®B`‚IMAGE 310 ./arch/door/large_vdoor.111 ‰PNG  ��� IHDR��� ���`���Kü€ª���PLTEï¥÷���BBBc1„B!Ö{!G¦.·���tRNS�@æØf���ÒIDATxÚíÔAÃ0DQ`îåJ,šn2#Uê¦ Yò„ v|žxâïðù‘TiÀçå€4·ù)+PÕÀf Ê‚Í;<@s• ¹iÁÑõ}ô! -‘�iŒ¤9æ@ša¤³ œé,gAº„û€  ®sÂ…<(±{<(y‹ 8v úK°Ù*ÑT™WR+D{P[À,A[0•žzÚ�ÓÂ×ÂׂÍ;àZX0¢#à :Ž´)�Î?Œ1Ë !sU|����IEND®B`‚IMAGE 411 ./arch/ground/Stone/largestone.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEŸQ,Òic2�c����cDÙ¤þÖ�ÿÿ�¬«>“��;IDATÁ1n1 @Qºm+agÔrƒ¸ŽŒk™V,ø×e cå\ 9wÞë0�¸� �@e6‡h�Ì.aÌ/ãQÆï±Š0ÛÚ=Ï7uß „´|?ûº;¯éˆ /¿Ð®H@:³D!-KŽ…l.ßÊÚ®5'h•ÑWe÷Ú<J“öìI!w º˜á@Õ»9‹Â$Çÿ{;@€šÍYûù¹š"2À°ôÖóZéné4Ëì9�ábù´ L@¼®8?N´fÓ B‘žŽnÞÒÀ¢Hâ{7Ëã nL„8o�À+B|ý¼wˆJ^ ¤˜y~Oplsí[èF!ë¿�ˆ†>—®�Ä>úœ·iNæÑÎKšƒô<Òõv5 O`î—t„`’Žòðbïÿj äÿâ����IEND®B`‚IMAGE 361 ./arch/ground/lava.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEíu�ÿ��þÖ�þ¤�ÿÿ�þ©c§��IDATÁ9 Á‹€:&°'€m1øðçôUšš:9Fhšš:Ùfë¾1Òs™uò°ДÃdÏýP5)ˆÿÌœ$U²ÉòŸªP®zs×e7ì¶C’­–dö?Øòؼº¢M*X—ݰoÕùå»Û»¿Uƒ¤&Éç%Icö| Ouò¹›|½ [Õþðì©KÀÖ©cr¦FyvUýpÔ¹‚ «ª>nV#ß—ÎGõVZ§ñ29«S°æ]‡=9HÕ AÞ,“GS7 °O~z’©PŠ<qÃD]˜DX7_îò®f½úØÂZ'U'¥÷“¤u‰Ršø­#È×äëíoµ‚¨K”æ$=ù?µ,oªѱ����IEND®B`‚IMAGE 365 ./arch/ground/lava.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEíu�ÿ��þÖ�þ¤�ÿÿ�þ©c§��IDATÁ1Á#1À6þ¡H¨Ovv¹¢\êWæçqE±' —ÝÆŽ{Œõ®G˜)\ïJ Eqb9ÙÒ¶—ëÁãAyŽjµ!…âÒ—ÂÛA¶ å~9?@‘æ:Š5€â… '!ìs¢`ƒ‡u¶Ú°6|`—´´»ÓOçG–Eq޶MqÒp븠ÍyérûLöOhC)ÍÍû®)Ó†3/À°ñV]10é¶âñDã;ÊGùÕ…Ù‘ÆvŽ,Nt¼°BW0Ðñp=ÊdWò˜ã*Òe׿J»Û`uº`: ÖåäId“Öl¼¼¯ûÕ|Ë…ƒ´ õ˜à§üâ¯6ëøÄ… �[E§á1æ¾Ð/:.ì>þ����IEND®B`‚IMAGE 361 ./arch/ground/lava.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEíu�ÿ��þÖ�þ¤�ÿÿ�þ©c§��IDATÁqÀ0 Áÿˆ€nL – À±´ü9uW§NŠ) [ªƒ8yMuy`õ2lãdoäQ"‡yÊä àž¬†¨ò°z¹š{k³ä/îGÔ·ì»ã(­:¨ŽHíû ²^²úuú}FÁSæ¹î&o£š[“mB_Ô‡ægêä¡HåkâÕaýêò2ôýX ¨ÄŸ¹ßòRmÈ!ËsB÷à0 \Í\|ÏÇjX K;«OVÃ’$eÄ-“ bo²NßNðæõòê}»Q@ÎGæhœÏ´@“‚GõÒžAõ¦a©JÌê2KªcÖ½õÂ3>Bñ[µ±êX&2«»¾ü²yçuyðT/á¨{ðsÈŽâlò,—Pù\Ä����IEND®B`‚IMAGE 360 ./arch/ground/lava.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEíu�ÿ��þÖ�þ¤�ÿÿ�þ©c§��IDATÁ]1Á»`€m ¼ õï©3BQU?¬:Ö†?UõA”® Ȫª›'_#ݗ΢z ëï4“3ÿRxÍ»‡ør«†¼ùLUÝm€}ÂðÓ“$H…R䑈&êB$Àºùv•·€ìp5ëÕÇÖ:uRz?IºQ—(¥‰ß:‚| Õ[gµDÔe•f`ÆzzurÄ:Ž¿MMl“>kŒô\füØ hÊa²çÇn@Õ¤ þ™9IªdC9n¨~ÀϯžÆÜuɆh;$ÙjIf7lyl^]Ñ&¬ËŸ†íª òãÝí]gÕ �E“Îç%Icv ‚§:ùÜMVoÃVµ?<{ê°ÿ…¶+ñµ`Š ����IEND®B`‚IMAGE 364 ./arch/ground/lava.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEíu�ÿ��þÖ�þ¤�ÿÿ�þ©c§��IDATÁ1EÁO0À+v¡’ààêßÓÍÈAj‚[’ä°£-,ê¬Ù&‡ì`p¸º›«˜É®z¢Ñ„wRýÕñjÔUCÖ­Vi nU=œ¨Av$û›ã¨:d'JmÇ Öý…`ênX‡ìld3vqbÇ=ÄÑ|wˆ�i±uGa@äÁ+Ƿç8±ÁÚÜ6òŽ…€E5ZÕ|„E>¡|jGÊÎ*Ã뤱Þõ‹¢fzW+ÈÚdÍ£ G»u¸c·‰T·ª³!íYeH¥:ÜÃ&Æ@»Ì µ¿|Pµ…àÖÆŸ�Õ ÙP–öQ=àÀe·¯Æ°eÄ€oiäÁñÇ|ùƒ”•A׉C6¤Ü|ãm¤Ýzá;0-Ùò)ÿÏ����IEND®B`‚IMAGE 2072 ./arch/ground/smooth/lava_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���$PLTEÿÿÿþ¤�þÖ�íu�ÿ��ÿÿ�íÞÃívþÖý¦œœœ–2éÚ���tRNS�@æØf��¢IDATx^íšÍŽì¬†q›d‘•ÿ.À¦'Š²Ã ‹,íP7\c® Êh €.·ãïŒ2JÔ%ÍâÑã·^ŽÕšÑÍêéE/Æ­bÓkP zP3&yò]È6–ÏòDÁ×òÞ[¸Øþ »š›«“Ñã ¸Y>ÉŸ¾€KùÆû9~C?Sƒz«£a_� fLf>žÇòYžèG¸Ò}sÄåJ?¾q½ê­b0Kÿûß� fLf~Ãå‰~™ó•|ô›ÀŒ_ègb£jXÿ®¡ ˜š1ÉчÐZ>ËSýì¸{“obÎÿ\,\ègb´¶f�csBÿuZ+Î’-úð¸e*Ï2¦úåqÿ“‘Oý˜÷¾sÀóþêÇÂ/[P3ø¡…*Σè·¶Ì^óœ1dª_ýÏýsôÏ|‘ä¡óŽ£”x¾Íâa?ë5L²âÇûöGëµâ<Ú$ßÅZ½²:#©þGÆ!¿ùýx>bð|Q8&Îç ‡Õ£”Ö²bµ(¥´ÿ¥±—¼åÑ&ùìP¬­òq92Õ¯fä/<#'ìϼcâ|”F_Œîµ®1Áë¢Á”¼ÙäñP†1^æ»$=SýÐå[]ßœ{ɨiÃþÌ×ûƒÇ zœSÉñ< 1Ü•ÙäSÀŠ*_>Oõ—,×WøŽQÓÄýèëýO/1ÃÑgæ^³¦]ïËý!zÈYVÙèñü½+hË|ù<Õo:dŸï ?3jð|óÑþ›÷fnè³P³vq0è‡RÊyµ€3¼d£G¡ü®Ö?ŸòØo™êW32å)Áq¿¬÷#;Ÿ§Ðç¿…÷.ç´®08ßß Öàðà·$8„·d�tóI·–©þ~F¦<%pÖ_ío½ÏSÉãˆÑ 2ãü,`w^/ ö2Mð]<̰ìO¿¡¶Lõë™ð%pæ«ýÜû<… }V.ô^÷;e×§Ÿ‰콘‚—I7–É~Ý%&üLˆ÷ë{Õ}Þç1=Î(F ˆ/Ú{ÓSzÎËTh9¸^,|ÇŸ¦ÞOxù*ÜoóGûc?G÷ �;îý>“jãdýEc9H!¾ xÌ¢¯úw„÷g~­öÇ~œ6zÀ?$ÔpïÉóñɈ¬ßÒzËAÞÄ‚—,÷ÛS?EèB0z¼§þý¸ÿÐ9γÁgÁæu—žL¯gdÒ vð Xvç£pí ø #Ž5:Œymùñ¦¿Üæq¿‰¸8ö#[Ÿ%“Ç1Zý±Ÿ‘I¿P†›þ±ç£píCCðß¿cÉ~×/ –cÞ³Þû»Rø|Ú¾õý8ÑgÑäq�ý€ WüÞ›œº±e3BðŽÐû¾IÃÚylŸïŽúËÞø<æC¥cL&Ÿ­MG‰ú ù‚¿i0£ó©Ár²“ÞÏàáùV0Î×¼Ñýå±›2Þ3ö£Ç$Ó‹ÉdÅ´§U£¾œ—©�¾P·«÷ù Ïk°³Ö—L#øLPùÁöì‹U…'ΗfPv°˜ö´j˜Ñ{ú ïeˆÏµ*ëkÞÜÚ¢.zÆ”‘¾•Ê#3Ÿ®=ñ £`V‰LùÅ{ªÈ· *_¼Ü&>¯a@O0c–yÉsçí2"_²dÍ‹ßR?«Ê_¤?rBè½È[~õÄó“€bÆ#»@í%cTþœãO¦^€Y$2á·#'î°çù›åW¿½>¿j±ÀcxÏ’ô¼Î_dVhõIän_Jùü†œûÁ{‰Ÿ7JØõÌêQÓ*:DÒ¹æë1:?eœûõék¬B ?ÁÄGÜ 3"å»#Çï%Ëÿžýé/.ÂOŸP‡ç÷s‡ý'˜Õ³Â:gxÉó¥7Ö‹$,á§OžÃ' ÍO0;»ž&îßE~ÿ^çÑ£|»è<ľbÿÕþÖçg2 :„©‹Ü,S8É3:Þ«úÙåþó<S¬îû#Üï ù>?#SyyÚL÷Ÿåå›<£ÿ+\Þ÷Ë€Ôý:úüD&óçýïóòRþÂà}ÈÝïË÷ù ™ÎŸõË÷ùóóÓùóáåýÿíè~ÿpÁ3¿!ÿë5ßæÑ“ý;ÎÿÃç%?ŸtÿLÞï.¸ù|Áu~f�ò}ÞåÅŒp”—tþ|âý»D¦î÷»ÃÜå·Lð•xhz—oü~dªæ}?L¿9ß„ûw‰LÜï¿Ûàòìl.ö]ËûóÿB¿æþþ..àF²ïn®üù±$û¾ûáùÌg>ó™Ï|æ3ŸùÌg>£Ü–Ó@³±ÿËiôfá6™ÓÿÁý§/€c¢*AþoŒKnKæèËïà 9Äûÿw/@I0Ý'±ï•«ôȾuêûö=ñ}‚,¢@¾ÿ¾¬Ur¾? ³>ÏèU[ìžsþPß·W|«8Ý׿¹~÷¾+¹ö²Ø‡|;`<žç[¦¾o¿‘Œ˜î볌ã¹às?gýW˜Yfß3xßÓ}}—e(Oû®ðÍ2û¦¡¿ðž¹ãúûŽ§ËŒ}ž7ÜŸ1£˜}çðò¾½Ñ%3Šëï#8^JîXåk^ª}ËvÊxÞoê¾N8Ý×g‚ ¯¹«÷m§œ¾Kúo gœ>5±m ����IEND®B`‚IMAGE 2079 ./arch/ground/smooth/lava_S.112 ‰PNG  ��� IHDR������@���ž‘ÒŒ���!PLTEÿÿÿÿ��íu�þ¤�þÖ�ÿÿ�îÃÃÿìxœœœ‚æŒ���tRNS�@æØf��¬IDATx^íš]Žž8†m@#ÍÇDÊ-ÀßøÊ.iî³³^BV:¶1Û@¤KSêÑg)O?¼çu[tRiÃÒ²jÇ2aÑhó«™_M“2&³Ý÷>[¾Ëý?Ë;oáy?Šê£LØ ô"eL¢_¶ ¾Ëý?ÊgΗžrýýL­–eÂÐꡒнº”1xŸ- ßå‰~„'ýØ·xäÝ£~<ñÏ©L„žFÍ«S)cró˜Ï ßå‰þ%ä'ùÍ{Ì<³üA?k ÑcÊPé飠æ&eLfèýpÃwyªŸ÷×ùlëù7xÐÏZÙé!e˜'9Ûsû€„ƒdŽ~{ Sy0Õߟ÷¯Ì0ìǼóµ…"ì_®ú™ÒZ«”+P5c7KH8Œ¢/}Ø0;æ Æ©þ…è_ç×›_óQ2óý˜æó÷gt~ÚÏÝè>áæF³�H8ÚÁîËý%vÈ{ç™êöùÞÍÇý ÷· ËÄþ, pÒÏF-Û:a j_Pý€˜Ë0šï7¬Hò‹W|eª_–È>yF.??ð–‰ý9h_裥•)�³¡›� æ2Êî><�Æãü²KÇTÿ5 eè•ùùOç{ò�^�)·�•2Yùc¨BN·²û==TF$ùøyª¿æ†ÈÓÀý|çéù«âz,Rn`¡å¬æë$»yüçj6‚Çùøy¢?9�Æ£§�÷WžÍç·zü[&Ì iÚ±i:ëÍ/1oÏæQ4ëqÏoyÌe†©þ¹F¦<%rœ_ç#ÏQúØÏZCاϫ_�•õ­ÕxÜdî}¿ ÕªÌó¶< Sýí‚LyJàü ?™Ÿ;¦ŽýL*½cuà”)°´Vî}y<�6ÂÕêëËXç#¾¤ÎGO€T7ÐÊi„³öÀùJIÂÎzõ}ø¼w„ôua˜ì¯– ß‚ãüiLú±Ïù8v,€êìtóóH95ÿj¬_öBÃÞ ùcò¾dG‹˜{òt2œoògó÷~ÌQ�cÃNw^Õ„*†n¥ñý& ÃûˆÙû’…žì'_sôG!q~໽99�ITÓùX8ÿ¢ö—C b6~—¹a/9Àä½ÕèëU¯ðýø³¹¿ƒxà|¨z/,‡Yïà þadÒkÊäb�h­ß„åͤ¼/1bÙ‚žÀâ– ÃE*2“Çù0ûȰÙø ¹{\úC(¨‘IßP& @eý&,o¶Õ£÷%&,/,‡f­á-ïX÷§ýe,\~Ÿ>Ã~Ç›¿þS@}6`í€ÊúMç %½·„ÞõÁÔêÅyd%¡>ë{ýó>ž[ÆäîûËZy�÷žwºŒGm8üïÔù…*=këS^èþxÛyœGïûÑãv `è‘IO+.ô(­/÷‚Qzp¾Ä@柇YkýÆ'L€÷ ò ÓËÚ·í$òÇýá’CÓÅ´§o´‘/Tøèà|l{^Oj’`|Ê‹}ª‰ú½gÌÿÈΩ<2l*õ~˜aâ�Äg³ SþDñnVóx�èã(¶ç•Z Ð̘áÜfUîž[oŠˆ|Ì%˾Þû©WlV=2åÏœªDyÃGO<?tT3¾± ü•¿gƸŸŸ.9)9—È„¯ÏÜ Äæ¹á£_ŽÏC bó5—¤çiþ!³tMŸ£hIæ8À‡Ë—È¡—Î÷»>�MÓ}³tÍ“5"å/@¼¬—‡~X}ÊB€¨FñLü¬Ý½zDÊ/g.øòÿb?þ' ¯»üóÀ=�|³t@à#_LR/w‘¾-«ßQ¯,»f%A|³»ûyâþ½ ïßÓ<zb½âûû™ÎAì‹æ?íç._“yP²Óåï×7,èûýê&Ïèü}‘ô³Çý÷y&"˜Ü÷o|r¿¯ëëü‚LåëÛ~dºÿ.__äýñ}_Gš_Éü}ÿu~y”°ð¾ßçÏî÷ûëü‚LçïúûëüýþéüýÊâû~v¿:`Í/È¿ùú6žì¯Ùyþ/—ïéüýÚïÿ‘ÉûýÓ…ËGœæ¦õr×Wy…áÓüBçï×vÿÞ#S÷ûç[Èl¾ê=»Êgn>ò³WxÝÿçsÿ^#÷ûW�ÿL–!ó¼Ûÿßéçîþÿû‡…}åâð´_+ù7;_%û¯\¿Ø{½á oxÃÞð†7¼á ß …BÝxÉþ/‹>Áí_Â{¤ËUŒŒAR‚ü¿XJÄœÇ\ '¾' ÿ¯4¿þ^ 5‚V¥™Wcß‘“´`_ºfEÿ Ó¿'ˆ ¼þ^aˆ+xÀ…ÿ~ ú£<š¯¾ö�þÞ·'œ#ÇßÃ=ý½rê—hrN3æsì+Wzßί¹Øï냌å>â{ßýO˜f_³ð¾ÿï÷õu¡¸¹eì{ÂÜ0û¢EpÍ™åô{Ëò1cŸãçÌ(f_¹òøDy3£8ýÁòóŸò”Ì›Ê[Æý~éJîÛõ-ûûú C°ô)×é¼þžÝÊ¥ø/ÙcϳéJäx����IEND®B`‚IMAGE 1662 ./arch/ground/smooth/lava_S.113 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿþ¤�íu�þÖ�ÿ��ÿÿ�¿&&ùøªú6¸���tRNS�@æØf��IDATx^íšQ®«8 †C‹4óØ„.€¤Y@Ó0ïyW³…Ùÿ†ŠÔ€¨Žt¤ª~¹úîgÿŽ"¡ê^e)¯B[°�`Œ¶�]ÉÙðì[Âûóå~„£ûëä‘ߨ/ŒWÐl@¨ÐXªälxö-áýùr?ÂÑýuòÈoìÎÛ¡-ØÂXƒ‹v%góo ïÏ—ûqû›û¬7ö‹•ýBZ­Ú‚5@p A•œ Ͼ%¼7ÏìG8¸¿JþòdÍîoãÍô£f÷‹�ƶk 7o!H¦älxö-á½yf?ÂÞ~!²æÙ·ÈÜþ¨Ñ‹²`¬KÁ ÞhïmÉC6<2Î#Óþ’™ý=ÒúþYW¤µJù8?çûqà=s€!ã jï iü=y7ØÄ]Ÿw0DOYÐþÙ»qlföö÷·‚©”OæóüsòôÐcÙ«n˜p¬}ú+艛®èê´Šž²¨iò—èf~k/¸zæ_ž"ϯgO&Ðck<AÖ+0^æåšGô”… ýɧÖsù—½ý¬©Ÿù÷§(ò“oóó2@ðYÿ€àÝÃ{/äã&£§< ì/|d.ÿ¾·Ÿ5õ3ÿ&Ï?EŸ=`è±4Ü<AÖ[¸5Ö9¥lDOyç¥?ùûr¢‘Ùüý-k–|±–?yzè±¼l<AÖËà,hsm_䢧E5÷ëä— ¨FfóûíýÖìçGŸ £Ç’ÿHOõ*H Üo¨ˆžò$N©_&™ÏßÞÏŠÓ’ï×ò'OŸ/ôXÆÛ† ë-è‡QÀ= =åIÔSÿð'ùEW#óùÛûYùM™}~^ößYoû[TDO9‰ÿÆ~DŸ_�Ÿ_fïŸïŒùÃÖ¸½ ð*b½ÐZFVvˆžòlô Íuˆuä•üý¼¬0ô,ê"¿ž<²@å;~õ Èž‘•ÒÑSžÍIBðVF:òZþÖ~N`>¹€"¿ž<²@Õ(°Y¯-€äd%›è)ã¡1rò‹Ž¼–ÙØÏ ùoæ'n0ÏGK\ ²þŸ7NÖ0DO˜>ƒƒèûEGÞËç|ûºxpsþ4ŸD_ù‘5®ÇóÑ2ÒZ‚¬Þ©~å¢g¨t@#Ûì@kùA­ïÙ}Žý)šObK~¥Â¼Ï\è wÆX‚¬íùžBô”Éïtãmô-ž{äµ|0°º¿/צþ”çÓòæ¾ä¦Mûâz¬è‹Ò ;‚¬ýॠ=e”Ê5“o³þ•ü�ƒZߟ‹:õ§ü4¢RîRÍùUôB$OG0 àAõ¡iyéDOeÕ5“ï³~>ßvpÝêþ õÒŸò¹šóÏ‹—ý±@óY/×Bi™X«“ÏúÙ|cIÛŠÓŠ'—ˆý)?ç4œï?E_”´ávAd½¼¯H€[šG&6˜ä‹þ'TÉÇ|g�ŒLÌû~™*û žz çjôyù¸ñ˜’G&öd“é·rÒÁ.,Áøòªïa~~œÜò¢,ïÍYßo]�ÏÔ:ù×~¸ˆÊ[Ð ËÁ!où}¾Ÿ6=÷fÈ"ëûõçC¥ydªoÉ/|~öMã�·_`Q €Èú~MÆð8O˜j“ü§g¿þ×û¬ùeYÐ! ²~ý¤ydªO“o)§~†køeÙ.û•?æ½’G¦ú<ù¾àÐXo; �·_`QXí/ˆÇ¼ö<ræ«É¿ô7 ìMAp¿À»ßì½ÿÿ y|O™{ÿOùƒæùÿsãÞÿSþ y|¿P•<ò§Í |¿Î˜ä‘?m^�€X/;$ü1óÐoÔCòÈŸ6/ìUl•*¼ú´yÚÍ€SáOŸ6/z±YU_ðgͯo}ë[ßúÖ·¾õ­o}ë[ßúÖ·j¸mò_¯^ï1æË"Ï‹-€á(ûGŸµ¼Ç˜w”ÅOV…,ÿÍxïó×ÞcÌGÆü-/~¦ð}ÿQ6^µ´ç=Ƽ£,~¦ð}ÿQ“uücÞQþá pp”-è@{ÞcÌ;Ê?ûx7åò{ƒ÷óŽ²øÉª´‡£\~oðcÞQþO–2+N·èç����IEND®B`‚IMAGE 1663 ./arch/ground/smooth/lava_S.114 ‰PNG  ��� IHDR������@���ž‘ÒŒ���PLTEÿÿÿÿ��íu�þ¤�þÖ�ÿÿ�¿&&ùøÕúœCX���tRNS�@æØf��IDATx^í›QŽ£:E äé½OḚ̂ÍfIÛ³‚YÁìcB•MDÔRKQüwtªîE–:=#Ò"? -ÔƒñÞßAi?¨œ“åÅׄ÷ó~„³ýeôÈ/ô‹Þ:¨3†_ÓÂWØÓ}ÎÉòâkÂÇûy?ÂÙþ*zäú€:cé§ÓËAŽrN–_>ÞÏû[„×úW,Ÿô‹~¡{iÛŒ•׃UáÆ\“s²¼ø–ðÑ>Óp²¿Šþú`Ãö×B\t˜aû(ýûš±u Œií™s²¼ø+á£}¦á¨_ˆdñ7d®¿Mæ™ èì5ã±0˜/is†dybÜGÆù-3ýaý°Ñ­b>î/ùY?.”L¿PÞAÂ1d/GUGoÁF†:]9OYÐùÅÛiíÁL}Ü̉ùd?Í/ z<Þ÷ Ð æáÀÌ 6S÷à)‹ ¾ ná—úkÁGþjÓürñd=žQkMõ@j£¥†L‚‚§,¾e93—ßõç‚äd=Ëž†SK¦'Èz£ÀøÀÔ™” ƒ§< œÏ|`.¿=êgM±ä£­Òüböô™Ñãéd}×Ï¿QŸK¯šà)‡âu>úõ.³ùý-kÖ|±—?û:}^®@d½3Ê;èÆ[.¿  žrÕ2ï£Ç ˜˜ÍoŸ÷ßXsœ<Z|¾ü÷nGõƒ4~Ìâ]ëà)Ï¢Œócôíú€óùÏûYQ®ùÝ^þìéå¢Ç£{ã ²¾ãµT[yï†à)Ï¢˜çÁD¿êjb>ÿy?+0ßçùÈÁ# ôx�äHõÀ»¯z+ËÎO9Š¿Ó<4z˜=ê‰ùü<ûøù*Ìó|Ê�È= ü SßCçõ•‘•UÁS^Œ×ÖØÙ¯:ðNþÓ~N”˜ïûEk>²dϨGZÀúAZ -#ÿ xÊ‹)¡”ù=ûUÞËÖÏ ’ï‡ETk>òH“Ñã±ÞÒÖÒ)àd¥ xd©†ÎÎ~Õ÷òë'ýŒP$½€Ëšloéón’ô¨hëì|P�ÁS~¨ò Á·«|”Ïùv#.ƒ\òçý(ê*ˬ¯éó27¬ AÖ+sÒÀàÙ‚{|@ëÛäöòí}¿¿Ýô†ù˜?ïGш5¿tvé³7ºÈ\€w ²^V– ƒ§L.Ã2øõÄ{ùìö·ymœùa?Úëš?ù6öùôä¶`�ÚÌz³7bz<e”àÕìëd~'_:€ýþTq>æÇý:\¸o«%¿^ˆèéjðyÁoF Ø3ú1xÊÉÿÇg_'ó|>€‰.÷I}±ÎÇ|@¾,ùÅÌbÓ/¶ýÂ*è[DÖwש”‰ûÈÄ}2Ïæ÷ €¹‰bÇ“Àù˜ŸrÜGNû‹m¿ÐZ©‘õú¶#š¸Llã¢ÏæP<¼ÒNOc™÷kE™Ïg<Ïd~ÞCŸe•ªÏy2zdb+ýfÆ�…q+û@Þõµàç‘CÛ3/òc ë‘õõžìâ>2±ývþ×Mò~e€|฾<õÌÈ/@d}½'½…¸Lu=ÞÈc~ìÕø¡ûf.�´Ad}»'µÖq™ê.z¼€Ç¼©ä¨º`îS¾qˆ¬¿íI€1î#S]ξ¦ç¿$�XÐ?ÀÌ?4äØ"žó�MôÈT³¯3–£r¤wúÞ^€SôgüœÔçÅì7ó lc}æøðûGïÿßhßÇSæÞÿS~£}|O™{ÿOùöñ}ünÀÅ5Ñ#¿Û¾À÷ë܉ïß)¿Í>tbÿXˆùÝö…ò·'å=ò»í ïųsÏüýÝöÅØ> (3_¾Û¾@Ï´¿×þ>ð|àøÀ>ð|àç¡€æ)ÿ»õ:‹x1_gùG^|ëQ ϲ²m2òcÞYßy.=À3þñÒ/ܼƘœçóþ{/À[8Ë&ûúÿkŒy'ù›/@k}–Mö ¯1æeñ§ϲUéÑkŒygù› @s–óï¼Æ˜w–Åwž*žäüû¯1æåÿ±‡}KbE³����IEND®B`‚IMAGE 2075 ./arch/ground/smooth/lava_S.115 ‰PNG  ��� IHDR������@���ž‘ÒŒ���!PLTEÿÿÿíu�þ¤�ÿ��þÖ�ÿÿ�íÞÃÿý¦œœœNšI±���tRNS�@æØf��¨IDATx^íš]ެ¼†Í"åp/� °©‘¾\ÒŒÏý§Qv–%$ mlÊTÛ 4'%êº{úá­×BsFsäft:€¶]¯ @ þhÛ–2&ËÝ7>[[¾ÎÓ~ÂwòÎ;¸ß…ƒZ¯\q¥Ç‡8eL¢—á�ž¯óùp+_:ß{ª·ú±p^ÂO0#À¸‰2&#Îø:O_Àý~ì“«î÷³i€©]¯ÂäÅ<t”1<æ+Ë×yÚßÇ|'¼ÇÒ3+nô3ýT+Pn…ê~ ª˜)c²@ßøO_çi?Ë÷Ë“|úcþ×ÓÀ~¶þjG  ¢Ó+‡NÁL8JVèå–-=Ó<‹8Õ/óý3ÌÓþ8ïüb¡Œûû³~Æõ @yÖ“þxèv Gчf¯ùŠ1äT¿Lôoû›à·ü!Yù~ÌGûëÏ' fû€�I&­õF¥>œ`÷}¨À^òÞyNõCÄ>¿¸ýx¾Äàù‚°œ8Ÿ­3ýŒmÛæ«à0¶zUG^âhµû=½*V‘|žÞ8ÕÏÿDöùƒgÉñû#o9q>‚JSnW>và1}©#ÿyÈî~O™‚â˜ïwé8ÕßÞ«íkbï-™Êï<Ýï=fÐã�MyÌòæu^áÀò˜Ý=~FüñùTÿÔÇ[mßÁg^@Øžîß|´¼4ž‚Sž 5¨i5ÆÜ“lðX¡F#ªcþø|ª’È./¾a©Áó5¹ý•ó}´Ùx:â× ³,´j°¾ø§< 5XQ¸ç÷<öNõ·9åS¢Âý2·¿r>NOg­jbîè|ZÏ@½²ðMŸ›Póò0œêçd7õ)íÇ4Ù_8§Œ§ÓA747§ë;€Í^¦ò¾ÇOö7ü¡G€ÍãÆÒpª¿ä„ïS÷Gžì/¿ø �Pðȵ ®œ`JØyÚ¼ŒŸ÷nZ9xºžö¸"áS²Æý hÜÇ*•(�%Xv>¬Ïü>ô Ö˽аwFµÎ{žLv?zù*Šh?¨ÜþÐS\ÍO–ÒyÕ¤”ЃšÇ`8t è¼7šzÚ¯Ú%pÊ¿Š÷G^“ý¡§xÝÅLJ>ù%T8MBUðø|<_‚¨ {Y3÷ÞfÑoTn™OßN×;ÿê Óa¿õ¡Árœõ> ÖÏÔÖB"'=¤L¥ÚÏÇj}–ƒx-·l¶LÈ Ã⤟ŠÒäq¿Òý& ìG6>JOGÁ¬‰œô2…‚U´Öa9Xñl½Çå•eÉêÁd„áwül²ýýAø|ؾpý8ÁGQôøŸô(‘oxPZ€õá€…á «iõÞzדà½óÈæy™ë?ö†ç1ï+-cr÷ FÑã¶Ië›ïøâ¡9X¿7ÞíÌŸÎ÷¨ýóîotë)/™þ9®­i>xÇØ£ÆÓiu›û @ŸV…à�Ö÷AT�¨+åü‚Ò??Â4Â�JPn2ý0E"•ïô[_(?øø|tÍ;.‘“>­ê�"O >œ_@xÚµûã)K»¤#ýÎ3‹kMå‘™¶)êý2ëéè•gþ3‚>£Ê§8ä €¿` ÏLz€î™`Æ W> @î¾°ÞeòÈ +^¼Üûý ÐIä”Ï9>óCÞð«O<0¯�:Ŭ l÷Qß0–Ê_3c•ßOG?3/�}Öòiâ|eøÕKÂî@ @és–I_ÓüMftþ@Lúœ+ÚV¸|ƒûÁyIØôqP û ft:cƒ˜ô9WÌÖwÇþkó”ÇîÉ»Ãüœºà S^ž½€(ÿöÇ;„7¿ãº1ÀªG5ÂüÌèt¼ë#¼åëO�ã‡]Ð_˜›ßQûç¡[9Ì|ú fW·³‰û÷6¾OäÛ“xï`þ¢ûûïö.ß<] YvüýzÀ:}¿?\äYœ¿Ó_“~v¿?ŸÇ¹4Þ÷ÎÜïÏËy^Æ|çÐþ2Ó•_Nòlêsq¼ïo¢ûwšGŸÍ÷ÈÉüuÿy¾¿¿rßï1w¿/Ïó r:Õ/Ïó×çów¦<ÞÿW¹ûýì‚-ß#ÿó5¿\æÑ'û–ÏÿÃåeœ¿3ûý?rò~?» vùÓ|ÃVçy8Ëó!——qþ΄ûw‰œºÜ”ùØ|‰óä³\¾rû‘sUù~ÌÜÎþþ½AN\oŸm°yöYÛ˜Õ½¼;ÿ7ú§ÒÝÿ#Ý\Pª†ýÎ)Õ½€;ÿ7;¡gÿÃS°ž÷¼ç=ïyÏ{Þóž÷¼ç= µ¾ ”’ý_N!u«/Ãï+\MŒišfÿÍ '"éïà ôÀµñg/@7q½4ûì{e’ö[‡Þ·Èèß'ˆ"zmο¯°òƒ¯#.ü÷š¨Ï1z¨ûá÷¾€¿ÒûvÂáý¾>Š–éï+ Sß}«4c¾$çýîÐûöêœëý¾>ÊXnç<2ößaf˜}wèýÿ Þïë›(“âÇ%cß.ð<ßœÜ÷ι´L¿`¹»ÍØçxÁý³ÿ'_@¹’‚Óï#X†#{ž2}°\2ž÷·ýuÁá¾>%ØzÊ’îk.8ºü7v6¼ëW2����IEND®B`‚IMAGE 385 ./arch/planes/fire/lava/lava_blake_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTEÿ!!‡‡�xzS‰��ÿÿ�¯!!‡--µ$$��� ��� �2QŽó��IDATx^UŒAjAE¿RZôRгÈÞø­7`/54ä >ÎB(årn¬|ÄPÈ„øQPðà}eÑêZfþÊW=øò7¬¼—#8-S¹ƒY: Z:À€Ž[*C!—ú¼–à?T˜ð¶.8õãh|(©q€ÔÎ'^µ»[8P÷t4]Î6 x‚¦w& +ųÞ-VõM•Ê£“¬ëà@x.\úÃÚ׸Ä6Â8®ä%†{ p?¢Ú 8ÁÒ+á<™+¼è;²qqR¼üeR4]»!Myt 8MÇHeÀÊüˆ”J…«pM“©Û[€¡|Í?ºgnT²vÖüù¦ÌTG¬zrËß÷¹·ÔžÊÌ[þ€ApJ§¸Õä����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_blake_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‰��ÿ##‡‡�ÿÿ�%«©e���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_blake_2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‰��ÿ!!‡‡�ÿÿ�ð¿1���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 256 ./arch/planes/fire/lava/lava_blake_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�-ŠVÿ!!‰���1����ÿÿ�‹cSJ���tRNS�@æØf���–IDATxÚ­Ñ1Ä0Ѱ÷¿ñ±‚ØU¦´ž±/ǹ¯CîÜœ� Ÿ»ïÁÓ ,ψl&†dIº j¾a)f yzIHÁS@²0««x �‰–'(õaÛÀ V2X Ï% ²‡-8µÒð{O•„µÿ�Ã눅꫖Ù.‹žŒ·D):­s’ò?E- îðŸ@����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_blake_4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‰��ÿ!!‡‡�ÿÿ�ð¿1���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_blake_5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‰��ÿ!!‡‡�ÿÿ�ð¿1���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 264 ./arch/planes/fire/lava/lava_blake_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�-ŠVÿ!!‰�����ÿÿ�Rãg���tRNS�@æØf���¡IDATxÚ•’QÅ ¸ÿ‘_b!Qš7?6îD—¶Ðê†áزÄ59–sJ•‹Ë·´„{‡KÕœ.j¸ ¢B ð¯@r™ÚÇrhÎ_jŒ<ÁÉYYïa¸vx ö‚ÜÑ9ÉíUrX®y"‚¾AðÊÑä»…EŽ¥¹oqR_ß fV $¿'ˇ7‚¡!¯n› åZ. \+²wÍ����IEND®B`‚IMAGE 247 ./arch/planes/fire/lava/lava_blake_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ‡‡�-ŠVÿ!!‰���1����ÿÿ�‹cSJ���tRNS�@æØf���IDATx^}‘A 1EçB¶½ƒvß’‡½Æ,JNûÓ…œÀô-òEÿñMÎ#ñ,Aâc<¯ÂLü¬BŠF ú¬)|!ñž$‘JáµDWC…2Ñ„V'j•;aðN¡ÔBü]kh‘™¡€J™¸;®ûö1ÙÅú©î"÷0ª »oÍ=®Ý–²W÷ÉŽÍg¨8ÑÓÎ����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_blake_8.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‰��ÿ!!‡‡�ÿÿ�ð¿1���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 248 ./arch/planes/fire/lava/lava_blake_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!‰���1����ÿÿ�S¸šn���tRNS�@æØf���‘IDATxÚ’I„@ ‰ ýÿ'CšXÊ2ÒGWÇ>pô\Ÿï˜ gJéôÙ ^¾©o )õxH0�™—Y¤îçw5g…žÿW˜sê��{ ¡a(�á�€+ÒË X`+\¬œÁ¯aéá\ÑóÆöCث٤ÿ¨‚‡-È# WP„e«¬¬ásØNÎÜj¶ �òa����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_blake_A.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‰��ÿ!!‡‡�ÿÿ�ð¿1���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 240 ./arch/planes/fire/lava/lava_blake_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�-ŠVÿ!!‰�����ÿÿ�Rãg���tRNS�@æØf���‰IDATxÚíÁÃ0CçøÿOn#+¢„rÙy/‡D²cÃçÏ n÷Å…-Ü»IbÒ<•”eÒMzu(þäÑbšáƒ! ØD ³ÿªø= H–;&¼¬8mjžÍWBŸO%LvBBD>¹†8‚0 :¤d€kZÖí«‹¶¿ÌpŸþ 8*6s����IEND®B`‚IMAGE 263 ./arch/planes/fire/lava/lava_blake_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�-ŠVÿ!!‰���1����ÿÿ�‹cSJ���tRNS�@æØf���IDATxÚ…ÑQà ФÎýo<uêˆê ÈBO؀ňíÃ÷ ö`™�<'°öð¿u„ÿJ’�6L[t@ÙòôÜ�þ…TO…7¸'V3Ÿ�€œ¡ÏB€\$=öÀ5¢¿ftÀ(¼€Y\Ñ»è!`H�YR²b<¨¸¤Š‚A.AUé M“¶š‡ø=¢òTO \ßâû����IEND®B`‚IMAGE 235 ./arch/planes/fire/lava/lava_blake_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!‰�����ÿÿ�azL���tRNS�@æØf���‡IDATxÚ¥“A€ íÿÿ²@T⎂‰c8uØb ›“Óý£` š ÏPÀî"’ª†¨r³i&Q_ ¨I]`‡ãœñž ¶ÈÙ~ÂHŸ Dº„x¢œê<$ÐtPœC>›Æ|ÔEúxYR[Z_÷Z€ñG¨PÀÃôaòm.…Z ¥[ÝÝowk¡J½¤����IEND®B`‚IMAGE 243 ./arch/planes/fire/lava/lava_blake_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!‰���1����ÿÿ�S¸šn���tRNS�@æØf���ŒIDATxÚå‘AÄ ƒùÿ“µ©P¬f?Ð9pab „Äwp­ ¶nAì( °É#d‡ág{ÁÒ� øs £tðôU:ئu´wÀÆÊç=Ab‹QÏŠx`ÕW¾ºè )´†"iÿáA¬g/À„þŽÉT[ Ïˆ‚TC¦޶”áSѰ•©ø"?'ø7)#´@����IEND®B`‚IMAGE 199 ./arch/planes/fire/lava/lava_blake_F.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE‡‡�ÿÿ�‰��ÿ!!W¹ï���vIDATÁ1ƒ@À§Bˆˆ�dPÁÞ̧¿"‚("€â&»™à¶ íñd?Ç€�DÁWÔ93  �Á±t‚óéD¡´ØA¥•…‚kFÀu‹š)âzƒ�F�‚¶êÃ"�H+ÈË€-€O@çÅ󧬱WÀ����IEND®B`‚IMAGE 249 ./arch/planes/fire/lava/lava_branch_125.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���•IDATxÚ•’QÂ0 CWÇÜÿÊ@ÙôDM:á¯H~râªÇ”ë¥Q‹<=€ñ' ¨Z�°AÀØ'ŒH@È�iªk©ß@Ý6�òŒ¹Ô /lkTw%X´ø;QCÑÓ¾yW“ àªH k�‹œ·�‡Ì &h|·¬�£àÏI×@b[´L�­žVú /h›”����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_branch_125.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���—IDATxÚ…Q€0Cm·ÝÿÊ&Ê,–,ôgš=ŒëÉÇd�G`¾�× ˆo~ º!~¶À6xÌU‹ãÏÀt°Ì Q�7ô›TeÊB`}€z£iá©€ïb&€ÿm"�¬†¸@¥l�¿/@© ?ÕÌŒ|C1‡fPµâÀ¢?R€ `¦µ¯¯ôP†f‘7bü ‚`>Ý ����IEND®B`‚IMAGE 265 ./arch/planes/fire/lava/lava_branch_135.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ‡‡�ÿ!!‰�����ÿÿ�azL���tRNS�@æØf���¥IDATx^]ÑÁm„P @¤PÁ~¥�p‹g¹Gb+ý÷’¬Xâ:~²e½iš€ŸéÞ ôUÀ yâùC‚*Á~ñª„^R+€¾Ò0Ã�£!@|Ýa>€$‡¾ke  XA-Àã‚<Á~Á>€ °Þ!o¿øfø�DCH(X°…ÚiA Ï �ûЯ° 5Aà] Ø‚ê ‚g—­ÛŸÑðšÁS/¦ç·ú����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_branch_137.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���—IDATxÚÅ’Q Ä0D3Fïåâ¶–¡ñs'EjÑõ“o ݺ3Y€J³²SšŽ7@ÂÝï0z‰DºCl,* �›}í?!€PÉ-z-¢3 KOÛ¶E±ÏCÂìàH84@Ñذ‹–wÑvŽP ªÒ‡r«üà §´´˜O=~þÎòÒ©Åoçã‰ÿG$q �ä¢Jü����IEND®B`‚IMAGE 262 ./arch/planes/fire/lava/lava_branch_145.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���¢IDATxÚ•‘Qà CIbîå©ÐÉk å£Dâá8n…šÅŠùQÀKÌy²O¢C{cÙWì¡ ûø°(d7ÿh Â:?¿ÀsA…:P ï@d‹¾®Ù_‰_AF˜„ø  G@}2æS”j«Øì �³.Ñ Ø /èÀÔBÞ,ˆ[”PÀ=@ F^€î¶ îßA~�Ù OžvyG����IEND®B`‚IMAGE 257 ./arch/planes/fire/lava/lava_branch_145.211 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���IDATx^]ÐÑ Ã Ea¡ Òâ?ÿIÞq6ûïRª—h¼¢C×Öð_¯àf8À­‚QéŽ2ÃGÒN�ë@8ûеÀ‹u¿ |A°Å¦JKÒŠJo%€Çý»ABð|À@Ð'Àxä³H¶ØÀ§;‚5PÈ–¼Æú 5 8à 3 j!÷ôq3ðD¯SôAï&����IEND®B`‚IMAGE 261 ./arch/planes/fire/lava/lava_branch_156.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Ž�����ÿÿ�!Ç���tRNS�@æØf���¡IDATxÚ…‘K„0 C'¹ÿ•) <6U½a‘'ÊÊŒüVÕºt¢ÈÑ�‘P�Íp ¯ÁÊ 3oÁ@=�ÀX•®µ`oÞè8ƒ;L>ä1w¹ñÌz:ÝH’;”¯ÄûP#r&Pdl€[ÀrÊ2ÄÆZŽ¢ï¯´T¡Ð ˆCQ8b3ÖRÈÓK€Æ_Q_8úÃ÷¶%ÿ  A„À(`����IEND®B`‚IMAGE 264 ./arch/planes/fire/lava/lava_branch_156.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���¤IDATxÚ’AÃ0» üÿË•¨@`bÒ=X–=0ÉÇ£"‰ä^ý2€m�)™Ü'à§Rˆ‡†ØaÐÞC¢iZô1Á‚�¬�êZPçP_Énx¤!€yM_6 z”g�<{ÐÔ²[´Œ™±L@~�¢�×è `Ðþb�ÆÍ0sø€ @LóˆQ‡ˆS+¶Q¢™À1Éåc-Ù€4|„8 ±VžJŽ����IEND®B`‚IMAGE 252 ./arch/planes/fire/lava/lava_branch_157.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���˜IDATxÚ“Ñ Å C×´þÿ/u#ÕHïeysCÁ«+ü¨¸^Eü�¼Jà ô€ç8Ý^`O°”ÀKH‡¢ 6�4>�l¾õˆ 4ŒÃº§î4P`Pulñ@C&L�JÓ5êܘ ›di„¦ãp:ÿOPÕ�’m˜”4u%‹¿ÕÖ‰€-@ñ»os± Ú¯‡§Ô����IEND®B`‚IMAGE 269 ./arch/planes/fire/lava/lava_branch_158.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���©IDATxÚ…’QÃ0Cgcîå©LKRp7>*¤¼<ÓW•¢®êÌù`j�±€¨â"ðéºÏ)z™)9 ÀtÌiÐÈÀå0 Ÿ$råà¤1L»Ÿ|Êi¾/ì H« O ´v™Xð†júû›¨F ˆè{8‰•Áž’é ¡¤7ÄÁ¹%Þ HÜ"Ã>!ÚýaV±[x ð  ÒO…����IEND®B`‚IMAGE 252 ./arch/planes/fire/lava/lava_branch_158.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���˜IDATxÚ­Óá €0à<õý_¹lçÔŠ ~\ÎÑ¡÷eÇUÿ¤Ç Ð6$ØÑ_ ¦È ì±ðõÞ•7À²Ç=�3bΔg‘Ô P'ÈùxÆï"‰ŒSÖs2Á…"E˜µK Ðe œ¢ Þ°-iÆ´€™áùÖ@Æ€¿� ôeH»( ] ÿx5á~‚p =½9�����IEND®B`‚IMAGE 252 ./arch/planes/fire/lava/lava_branch_237.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���˜IDATxÚ½’[à ñ#÷¿r7ÁµjM¤ö#ê€ÚH¬ø$s|ò>Á½Vk™‚Z‡“.®�Ô8¿+]t¡²öœRBˆ¨¨A�-¸{ô‹Bc×£¬³ÄacüÛH¨…®Mk{ؘ~(¥L‘`&¸ºísÀ•P‰õ'>¶ÛÀÛs<*ä …¸©ãz’ÈØ]›þÁ …> ;ªrIÐ����IEND®B`‚IMAGE 249 ./arch/planes/fire/lava/lava_branch_237.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���•IDATxÚÅ’AÃ@lþÿå¶l%š¤ÇŽ"åà1(«C‚( XjtZÆ#vïpÄäÛ€åk‘::üÒAæf8 •œ‚Ç0 sÍæÚE…=®$®v›`ÏüÍï’Z¦eÞBë¬ù"¸=]Ò¿–ÏBdb›íPŠë©u¸ŸÛ5)ÿø"x¥„ä#pÝÃLÿÎ B BgÞÛk����IEND®B`‚IMAGE 255 ./arch/planes/fire/lava/lava_branch_347.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��ÿ”����ÿÿ�`ùÝ���tRNS�@æØf���˜IDATxÚÍ“Aà Ù5öÿŸ"[n£@½urHX1þ·~rìŸRb/F¾º",A9 < A)€¨yäC©Ø[" !a4‡Ü‡$Ãl+~í¤Q…»ŠÐâ+ U Ñ­BmÅèo¥…š‡›cÊÞ*¸OŸ–䨼(¡îÃ’f]ˆÆ·Û~A¢¤WçùT¸�ó, ‘ðö›¶����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_branch_347.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��-*����ÿÿ�™t¥÷���tRNS�@æØf���”IDATxÚÍ“Ûà CcCòÿŸ<¦ lÔ°·¹måÓ\©ý¥¼Õ•ïþ±R­äC–·rDÖD7��/R€C €˜ß‘ 2#°R" EbØ"Šä¾H2ös`ï“Ôx»¸ÚE ¾Š¡$jA £°|Þv1mÆ¡ÈM›’{üpä<ÿ®~îÄJÞu«+àÞ]Îmåèúè âœ/Oó����IEND®B`‚IMAGE 248 ./arch/planes/fire/lava/lava_branch_357.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���”IDATxÚÕÒÁƒ Ð%Yÿÿ—+]f£6´çæ 3ð$ŠÄ_$¯1ÁkÚÍk (°â“ŽqN �Ð&“ã°æ»v>{ Ö=¤ð_¡‡€ P«ûÀ«´ÿŸƒn›÷ЈO¸Íñ ›=Pð ¨.Ï0Ò½�fÏûgœ(Ÿ+×™%é’)PBû³Ä—%^› † im×����IEND®B`‚IMAGE 240 ./arch/planes/fire/lava/lava_branch_367.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���ŒIDATxÚÍ“Áƒ0 C»ýÿ_td^¤È»îq1òSC«ÿÊâóœ—C5oXÜM%UàL^Ø©6‘Ä…H&¸ÐwÄ<^!è‘€4Þ  :ùK�`„’tPµså.l ¦žÜ Ç'dÏha]Ðh—uq³ŽðÄúÄ¢„ϪsWmbøÍ …€ C7Ï����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_branch_367.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��-����ÿÿ�‡¼ã[���tRNS�@æØf���”IDATxÚÍ“ÁÄ CMXùÿO®u¨2"u÷¶ÏÞ’ )µåo¨2NÔ:2¨)ÙR¤Èg€æ†.‘H lF̨÷ƒpb(Ô"´“]•¯÷@è»A×à0‚:À•7%ÇP%ƒ!ßÁ¹™¿…}hÀ²—¢Ì;°[m)õÊýT3€ŒÉ‡;¯‹øñ¿Nˆvqr-+ ü_í`����IEND®B`‚IMAGE 242 ./arch/planes/fire/lava/lava_branch_378.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��-+����ÿÿ�UÞ¥i���tRNS�@æØf���‹IDATxÚÅ’Á Ã0 Cm¹êÿrçdž;Ô +{„áèSÈ8aÊç«@­ð½a-±¬�5MbœªbS8ÃlXòÓ�€”6%Ö^‚½Á£ñJ ÝEÐ.ö5ô Ùy¯$®ðÝßvê“ó�SÓ›§‡ÔXwx>°qÒ6ú¿Ëãuhÿâ�†~ Ÿï1Þ����IEND®B`‚IMAGE 250 ./arch/planes/fire/lava/lava_branch_378.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��ÿ{����ÿÿ�: ?���tRNS�@æØf���“IDATxÚ½‘KÃ0‘(ÜÿÈÅ/%Ž?±ÓE;Yx¡yÆ(¢&-EÀ5Ÿ t](€¼¢…#Çô ­Ð»)ô[<”‚¢ ö/¦O¹i¿¶d8fUP¸&Žg„b)8ƒF ±îþ¨(l’_UÍ;àçtdQ­àdÎ<«æöwÿX0{Y2 H¥õ20-_¤á LÒ ÊZär¿����IEND®B`‚IMAGE 449 ./arch/planes/fire/lava/lava_bridge_15.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ&��‡‡�TG:(¯/_ÿ!!Œ��^���²k�:�����#�ÿÿ�Ã/ ���tRNS�@æØf��?IDATxÚ]“Yv…0 Cɳh¬ îþwÛ æG‡ðA„u1ñõ¨wIw·± Yû¤L奦ý0Pˆ;¥’Ö*hg….L¡C%^ jŸ9½ï›ÂÐJžeuêkn«6“‘î*„©MÊÿJkÑ@¾ VEs¨à ›ƒ�(9 ùÛØžˆ<ŒŠ ÁâºA¿ Ÿß fpn-ƒËÀû[Û BÕÝà”²›° 0ÒEazAX‹Ò0ü 9 4ÀóÑ �¹Ö0Ä BJˆ0  ¡Ÿü4jU0p¦;DSPý_äÝk#Wú œJÊû<�Ð`BS0ÔhØgÒ&‚§Hÿm€i‡õêSþwzEØŒîSSµÆÁ!pŒV§Wê9›äÏpQOC×#ª?ÿôú¬ ±ø����IEND®B`‚IMAGE 437 ./arch/planes/fire/lava/lava_bridge_37.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ&��YY�TG:¯/_ÿ!!Œ��^#�:�����#����ÿÿ�íÁÆ���tRNS�@æØf��6IDATxÚ}S®Ä £‡;Ë8ïÿ?÷!zsqÉ«a©„”¯WÝà.?¸/ú&]‚¾{¿“Ìðû¨ô­DÆ+/ÉŽc#ܾµ§¯½ÂQQÂp<{ X© ÚÚƺdU=[äO´ÖÒôTÌ;p¨}‚ìm LŒt¡ÏSІ µ¾/)  +(Ö—F<xµðÖ‰á:Pr«IÈzffÃ¥Odq>ƒ‚]ÀÔ$œ••™èò™u®w¦§ X²2>Ábüÿ´P/€uwQ/-áõGž¨�*-÷ÉCLË,IÕZ«êAµ#E&Úpj#H±&R¦dðhb �ë6N9—:/ t&·†z IŸ'w8¹õªòx K¼=­WÒKà. £ó+?²Uø®þ3Ü_Îÿ f…?«ÐÇ/.4����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_ford_ns.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��ÿ™����ÿÿ�ûü ���tRNS�@æØf���”IDATxÚÕ’AC!B¦üû¹ F©¿¤›nZVF^FÇ_ˆührtSŠ.»GO%@†�M߀ ÒÓК²L…Ò3Ëv €ÆÚQ–àÒ„’„#CÒ7�P�ÜhÏ2à+IdÎP»‘Áý…·.΢.àøzf�¶|ºTã)×íÓ"À_2ýI»™? 'çïÞÖÁ¾‚����IEND®B`‚IMAGE 253 ./arch/planes/fire/lava/lava_ford_we.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���™IDATxÚ“Q Ã0 Cg[¾ÿ•7‚@¸ŽÊÞWA/ŽÜÒÏõ#jœŒ‚ù²Höž� ‘ ¦Ð7a[ ¡)ÆŒ åw¡÷y\€Á5PO¡0a=ó]´¬À´ã½F(w›(v›:Á¼fvB¼�ª2y‡Û1ýÊí×~êvA¢�v Ñçá"´ýq�$é~ÞɪŋûòÌü����IEND®B`‚IMAGE 257 ./arch/planes/fire/lava/lava_river_14.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���IDATxÚ…’ „@ ížäÿ_–„ÎÉJŠJ‰>÷ØŽÙíÀ™ÝÀ8d<'�¸Õ ©{Í�(½"§F¢Ej ¥±[Vh€·EQñÏ�„YÚ­3TÒ—ˆ¢ qâDä髲‚ `Tp~½$8�Y’ý‹õ ê€s,ÖQ‘[ï•�ŸÍ‹@’¹3/QB¿ÊG„,����IEND®B`‚IMAGE 248 ./arch/planes/fire/lava/lava_river_15.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���”IDATxÚ“[ Ã0³¯û_¹I¡Va Õ_âɰ¶âëI×(¤ûú¥»¡ž§Ìä˜áûú¥È%¡FÀèB¢Ü€9v08âh8Ÿ¤¸ý>Ó€£ëa†V¾ Õ5`¢@�ð>Þ€¸jÜ�)rh �‹²ÖGʯ³øCðîÈà—+Ø&†°«åa|�(jÈÎþ|����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_river_16.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���—IDATxÚ“Qà CI0÷¿òÔMâ9óOTåQ»n;ÞÒ줱%#ò�,ÀsÕHy ™Œ`Ÿù uÀúÁä‘¿€KOoI@1 K �JŒ³Kzš´¸�÷æ]W€}‡³  —Z€/F²šÝ –àöÏàÍ(À~Â<k,@=îó(ÊQßϯ 0ª^?S³ô“±����IEND®B`‚IMAGE 241 ./arch/planes/fire/lava/lava_river_25.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���IDATxÚ•‘Û À0CgVÿÿ—m!,©“ùP 9/—ƸßဥÜXÏ¡˜OÆ‚$Ÿ©Ø_—± vH}/=²fŸ: B(/PêßUH(ðöGY!eOƒ2½k€A]�”€ŠS' K æøsJÐÀ�w `; Þ€cºe§¤ž°ôÆd;ƒ­¡>å–ØdçÏ Ù����IEND®B`‚IMAGE 257 ./arch/planes/fire/lava/lava_river_26.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ���1����ÿÿ�Ëí~���tRNS�@æØf���šIDATxÚ•1Ã0 -¦ÖÿŸÜÁØœÔÕ’á.$áÅÛ×óº�ó<Žñµ=Õ*ŠKao SÀþÿ…ÝI†€³µè'Ï8W ^Ø`2·àve‡]ÿYxÌ£»÷Z×xRZèÃRqç¯[PËÿ-˜—0Ñ×n‚ä¤C™÷ÍåÄ‘2À„â‰�lÉAh Pü § 6›ñÁÍ����IEND®B`‚IMAGE 180 ./arch/planes/fire/lava/lava_river_26.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���PIDATxÚíÎ1�!DÑÆû_ÙlÆÆl±[ú*ÄÃÖ8ĦÜ5,6؈Hƒaù²ð1`¸ž9S@T´œ/:®Á Z$q]¿™PÊé0Ѿ����IEND®B`‚IMAGE 166 ./arch/planes/fire/lava/lava_river_26.311 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���BIDAT(‘c`”tg4>‹1ºct>†€!š‘Æª¨F: £h�aŒªU€È5B�j0E�`¨Œ&��h �?¾V¢����IEND®B`‚IMAGE 274 ./arch/planes/fire/lava/lava_river_27.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��ÿˆ����ÿÿ�Kí,¹���tRNS�@æØf���«IDATxÚÅ’Û„@C·eáÿ?Y”I¸¬£[&±g,>S*EùqT“yŠ€yéž?%Þpªî¸F8MBžy9š~*€½@N€Q(y6Àp’‹^@{n{Àk“O�Þ�’O�îܸ¢ñ+“ÚŠ¤,`ÞÃyùèY_@íXõ´ï�ê®Õ߀£ YŽð+€œ²ú ¦-›5Ïá÷€º:Ûª’f—;‘û']þêÚµ����IEND®B`‚IMAGE 262 ./arch/planes/fire/lava/lava_river_36.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���¢IDATxÚ­“Q Ã0 C#K¾ÿ•ÇÁÄñ…¾~”V/¶CÚõ>2~ѯP4òÕ‹³sö'SޤAÈ §4"|·PÙYß‚´¼Øë#I¸ôi ÓE*Ø=A‚Ù×'Jˆ`vGÜ«„™ ‚;£¶l~½O)[ $ÒûNìÒ%¸Öó!}DR ˆ#Õòï£ÕàúØ>­F_ 'WþÈÀ C¹(����IEND®B`‚IMAGE 231 ./arch/planes/fire/lava/lava_river_37.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���ƒIDATxÚÍ’ € Dw§ûÿ_α¸ aõDœÜéæÐ~Io¹ï‡”4;ËEÊ‚Mñ/ ¼‘¤Džœ,û TJ8Ö"!yE².’ôºlxØI=±2„ŠÊ >ÃÕ@B­p" e+,ãò’ßùQ=8â0ô³ªïqΦaß°Z¾ä°����IEND®B`‚IMAGE 265 ./arch/planes/fire/lava/lava_river_38.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ‡‡�ÿ!!Œ��ÿ¡����ÿÿ�­ÔUÄ���tRNS�@æØf���¢IDATx^ÍÁ à Fa_X H¹O^É•h»ÿ 2ˆ$½õI\>éÇBï)=VZeBþœnç l¾ª]�Þ>²‚àu²*ä;ÇTýÅ(kÒq^ðr„“ƒç›#ð ñIA ¤ÈüZ `‘J?Ørðô 0¿7¡m²:FýÛ¤ ‚ÍÍ iÕJoA\u0»€„ÒW&£ð –Rä¾ïiNu Å;����IEND®B`‚IMAGE 253 ./arch/planes/fire/lava/lava_river_47.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ��-����ÿÿ�¹öŠ���tRNS�@æØf���–IDATxÚÕÒÁÂ0 ÐÚÅýÿOÁ¬&³Š¸âjÚåeÉ¢Ž¿ˆ®ÁüDrô(×¼Nœ g‰;öoB²™ 0w¬ "0Á1 �æ¨QÆ:‡ï#âz¤ ä*¼À± SÀà˜Ÿê‚€,¿¶ÈS‹eC¿b¬¾1 ² †¦ô É7»9 ÄÂ#àG3LÐû€ñ‘'Ñü°ˆFÜ����IEND®B`‚IMAGE 251 ./arch/planes/fire/lava/lava_river_48.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!‰���1����ÿÿ�S¸šn���tRNS�@æØf���”IDATxÚ…ÐAÄ0@ kþÿäâ*ñ!=dbÉ•§ÒÒï@2½Å4+  ð,BŒÚ˜+À�ËXuû"ÈÓ×T×C<Ž�R°!Ž!`K�\�v€hX#èZ爊᪔Gž¿Œ SÀ‡V¡7PöT ¿þؼð†Eà!É ²¡K9Áœy!þ6 <qr����IEND®B`‚IMAGE 174 ./arch/planes/fire/lava/lava_river_48.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿ��ÿÿ#‰�����ÏÌw)���tRNS�@æØf���MIDATxÚíÎA À0 AÙÖÿߢ@)´VÈ={„ð¬Y”úµê&òYè7RÀˆH$zÀ÷Iÿv"BÀl8ÀE`¢€,øö€¸ÝNjÏŸÑ7¤����IEND®B`‚IMAGE 169 ./arch/planes/fire/lava/lava_river_48.311 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���EIDATx^í̱ �!Áïá:xD,œ„û¯‰”sFŽÃ‘µßíÞ”Ë9’Ó•8 V!ˆ­ÓJ„ü(kã¸lªRDS«1Æ����IEND®B`‚IMAGE 257 ./arch/planes/fire/lava/lava_river_58.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ‡‡�ÿ!!Œ�����ÿÿ�+í A���tRNS�@æØf���IDATxÚ’1Ä0#ÿÿË7‰Ûñ˜r®{E]+v½�Ù€ûÚƒ  ”èÚé4Î&Ä£F@!Zá® ˜»¢�±C§ót^àôHT`“ XïÉ 2D>¨j$ÁqÎA/jÞS‚nú Ô®ËT˜A…JÀ«Ce(Àn®‘_.J_ÀS¦Š­²°æ¯E~@$©ÒWâƒ����IEND®B`‚IMAGE 201 ./arch/weapon/artifact/Lslasher/lava_s.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿ�������ÿÑ?+���tRNS�@æØf���hIDATxÚÕAÀ  öÿo.fz1éµeôâ.ëúâ€Z@D]mD0P—ø( ЪÀMDHð2Ï·¡jŸqrœ?0ý1<% ‡ÞßÛqo<Ž·`ø•8åF`Ýžu—øñÜð»YÖÁ�á����IEND®B`‚IMAGE 199 ./arch/weapon/artifact/Lslasher/lava_s.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿ�������ÿÑ?+���tRNS�@æØf���fIDATxÚÕ± �1 ýûÏü˜© Š”âà\O|H…®fЮ…e§agÏXƒû¬8^gn`ûGçûÈ÷Õ÷qӹɌxWÅFάOÚÄ3™‡‚ìIpçIñp~äìaQm·ç����IEND®B`‚IMAGE 208 ./arch/weapon/artifact/Lslasher/lava_s.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""ÿ�����ÿÿÿ��ÿ$^U˜���tRNS�@æØf���lIDATxÚÕŽA€@  «ÿÿ²lPO-gÅ&f [ î_4@0(G‘„®¯»¿ ôí2å´@€þz¡¨Ä'¸ÌÍÑ Hýr_ÞýÁÀ³?ÆâS6ÇÌ׊ÜFæJæJ~ ë"‚×ÓÀ[O?ÎØÑXËV5•����IEND®B`‚IMAGE 196 ./arch/planes/fire/lava/lava_sea.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEŒ��ÿ!!‡‡�ÿÿ�h²È!���sIDATÁ± Â0�À3ü#KÉe`7é]x�Fñ “2#0wÀà' €Õ°Á?��ÜÀäÑ�Á·,‡ S ; �•²ç å *¶èˆÈ&`VˆÓì ���±”yÆõƒIv PÿM Ò~Ç‚¡����IEND®B`‚IMAGE 200 ./arch/planes/fire/lava/lava_sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEŒ��ÿ!!‡‡�ÿÿ�h²È!���wIDATxÚ½‘1À09óÿ?W•:$õJ½)@Œ©uXˆBI�b_á<<0{ :Fø·hÕмº®ç°êˆ@çë3ï¼Q†6_iXÇÀ¨#y°i’á†xÂêCZóìÿàeKÛ÷p{÷X?=o0SèúÀ>V�ž«­Ø•����IEND®B`‚IMAGE 204 ./arch/planes/fire/lava/lava_sea.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEŒ��ÿ!!‡‡�ÿÿ�h²È!���{IDATÁË Â@�ÀÙO$ ÈÅ>^ ï°X€E,ˆýxlÂ,Åì@MH� :l“�� %¡o€”°Dzê¬è·®¼¨ @�ÂfÉ:e�«2©ͦ}À*\'”���”äÂ~õw®¾Ç Û'�àÌÎq¶bâo����IEND®B`‚IMAGE 194 ./arch/planes/fire/lava/lava_sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEŒ��ÿ!!‡‡�ÿÿ�h²È!���qIDATxÚ½’á €0„ýÎ÷ç ˆºIkÔ÷CPávêâ b`ZS{ÈRt@UvB=Q¤÷žT+„yà¶åÍW{þñÅÕ5xÀ*º6RÕJõ_&ÖÐk »A%!~ÂÇFQ8½Èl¼6aø‡6/t� ÇžPŽ����IEND®B`‚IMAGE 312 ./arch/planes/fire/lava_well.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿ����0��3 D �! ‰��ÿ!!‡‡�ÿÿ�L����`����3��“ž<›���tRNS�@æØf���¹IDATxÚå’KÃ0 imLŒïÜòˆ¬¦¥ŸUW…e"Y)?€ˆ>[æ dg‹-°ƒs€y&º\Ó1ôèZ›tÕ}âì-æ¥^0^žÁübÏž©¹ëÄÎ `ð‘v¬È z Æðãe )€GQ£u¦ò.^‡HŒQôµ$f¸hÉ~6'±'¡ñCÁ¸÷³äÀ!Bã§RIÅôD§Âjø\8Hî>š|ú#ÝýkË?rV É\ˆæà����IEND®B`‚IMAGE 378 ./arch/wall/lbulletwall/lbull_wall.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òic2�1�cDÙ¤���þÖ�þ¤�ÿÿ�ð»0`���tRNS�@æØf��IDATxÚµ’Ñ–„ C-$-òÿ¼mGؙ٧ ¢‰×Ôz‡}–ïþm°ïJƒð›¡Õ „ûÖ1„6"l}‘rª† ½íÂ$„ÈöK|Œ ¶b=öÏAà’Ów$Ai,Y2PI56…±/UšÏ‹�ª8aË�óÉ$�0Û RoBðzjB…¾I‚“Т!Ûw¨å*ó{1 ºï—: ïß¡°W/ ” VóPqwSh$¥ú¡×ù•!âºïl=ˆÖs˜ÝÒ{¥„K÷ Y°ƒfí:Ržz<¦w!Ì ¤h›7Ip®»ª¢½êjCÓ" ¢æðƒ9bMäþ'!›Ýï\ú����IEND®B`‚IMAGE 388 ./arch/wall/lbulletwall/lbull_wall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…’…0CåWØûßwKÄŽîﺩL;C|-Ù¶ÍÿÖèþoðwÑ�“Cs˜�‡pYí(`}(Æ‘‡n(ƒ²¯è1d»«ZœR¤ Â~^äãLá$4 æSG¿àu ›„£¨+HÐ!wY€ ¢¹'Œz®¿ øD¯)žcFŠ˜=ÞÐ>·)Ô2 y! £ŽEz½\eõ†š¢‹çStìÜ—IÒ : _IRÀš�X¦áÓî„rÜÊ ‚+4¿Y¦w‚à”Ȩ\bÑŠPý0‹£G§Æþ˜B˜Vü®$e—•¡K% H¶¿ M‚�+~!6w%:Ž˜Y@iÈ�Goù!‹‹ý£1ø2d����IEND®B`‚IMAGE 394 ./arch/wall/lbulletwall/lbull_wall.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…’n…0 CÉJì†Üÿ¾ !@û«ý¹‘²ûZ,¶më+Üÿý»2�Ê—@ ŸÐ!ïŠA%�¦�óG$¨€¦¯p{UE%6©€L¾4…éEhhAÃDÐë+‘�ÃÔ;€:¢(tçH@JC–c¡AÂpB@¿ :v¸‘g%v¡ý$I8�ãÞ¯ôJÀ;òå& Ms[Õ¤@én¥™ ž šzøNŸ£ÌM ô×^¿‚æ³ÏööPßÉaŒ½¢«âu¼.IˆÐÚ@ˆñ²›_“ÖÓƒìBÒ>…› gýkÀ¥@î_ D�äv_Œ@ïš|~šyË <´a)bþ/í$Dî3����IEND®B`‚IMAGE 382 ./arch/wall/lbulletwall/lbull_wall.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…’‹²„0Ce+ Øÿÿߥ ×;t_§¢Ž‰AÑã8ì3¡þ6ØwÒ�ÊÃ`¶P€ à³A”ASWLßÑ4HÄ_@0Ò0>&ÀªE]%W­ýU ¨•�DŽ˜=™p)ÀÐU `K0qŸZÜ}´œÈæ †¨-Æã<×¶Àµ%ø"O2¼Ò`5‡I¬‚°’zBZV~µ„w߯sèh›Ã›„Ѹël {:­ý0„éÐddA9Úk&�Q«…8y1çkº‹ÞÏ §\bÕ"'›†Î”š$�™¾C„a(pçw&3}pá;thLùþµåZ×Rå�z(����IEND®B`‚IMAGE 388 ./arch/wall/lbulletwall/lbull_wall.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…’Q–„0ªÁÜÿ¾+yyc⺳-Ñ* Á¼^¯ø[gö ¾«Ⱦ�{ ly¨ ²-p•œ–wyl�–‰­�`Wi§¥¡b”Èlrébæ&ݪyО ™ -Aw� Ðìà“Ckp®7sû6ÏaôòìÐÕ+ÎmŸîyæ#=;ˆtHµ8ø|~ª>sÚÝ÷¸¨ü6;XeØ’ÕA Ž¥|r5TÑ¿jòåˆðSTÔÂßÛ>O0Œµê½ÎÁ¤CG«‹™W *í–R.R\=€Iw %Æ$Ú¯¼©‰î�Ö··ß€N ÂëJ¼áø8{ý…ñ8Þó?ƒâ3¶Ž=·����IEND®B`‚IMAGE 396 ./arch/wall/lbulletwall/lbull_wall.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…’’ƒ0D¥é.ÐüÿÿÖæÎz‹ŽØyA’mÛ컢ú¿ÁÜFÔUIe ¶ƒÔés—û,)Û€¬ƒÓS|¾¼…4H¤’“ñ# ãM€¯ZoQIj×_M`oQ„§(ôŠÀ&j‡a!X”Ôݳpö0• —Æcù ×0^R‚òuJv× jøÕÃÇÔñçß9 zäfÈ tAèéLòXõ$œÕý“/¬ m0`�Œ@­ø$°${ˆì ]æi×"GÔÝtÁû,ä)µ¹õ›õ<°#w¦t¤DùlýMP&ÙgŸ1 ž ƒ’d‹T³ Ò` 0úaFM$ë?¥HíEO����IEND®B`‚IMAGE 401 ./arch/wall/lbulletwall/lbull_wall.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,Òic2�c�Í…?�1�cDÙ¤���þÖ�þ¤�ÿÿ�¶TŠÔ���tRNS�@æØf��IDATxÚ…’nÄ C›ÒÅ—ÿÿÞ…À•£h7C*$»/%êqö·Âý?`ß•P¾Jø$�ƒ, #0T_DŒ€¦¯ðú”f@F@VÕ %e%�tvl´˜.)áߌ~ûÐ+ ƒà%´_ Á’@¤„Ÿ'.º_I›·8“�hßè7âF€Béy\ã͇ŒPÝ¿AASF`÷_+áŒ]i–ý‚M‚ªÍ‰n“¬ho€“°MR�ðí:YÖF+k·™Eµy‹S)¦P-BN½')0 ‰Ð œsÈÏÉìáÕcGUÑ ¬'êCè-~:AøL¸ š’ÿ¢ 3›È˜iƒoƃfà=�´G¹4ý_Ê ÒR¢²����IEND®B`‚IMAGE 383 ./arch/wall/lbulletwall/lbull_wall.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,Òic2�1�cDÙ¤���þÖ�þ¤�ÿÿ�ð»0`���tRNS�@æØf�� IDATxÚ…’ᶃ ƒWHRÆû?ðíjuÊænžä|Ðèãñð{…ûÀ+”ýôð%’N»,V‚TŠó"±Hœc2`°ñ!n„ž~K ×þ³¬#n ؇D‡†¨å4¹½|:³] ôØ”C±9'7êq‡ï hCî9à Bß €¿ú ’ð¾ ƒÈ7HSPæ›ÀÞ³jvRS±kŠó˜ž=(òÎUó¾É"ÜM/‚V_}ýaR:xÑjh #Ä}7œ ÜdV›&/iäÐ3û)ŰÄ1¦mÝ®âN í[`ZüôW‰I ­ì• EÀMÊ„ªâ£"dŒÕcqIÿ°»‚Ý/Qè����IEND®B`‚IMAGE 384 ./arch/wall/lbulletwall/lbull_wall.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf�� IDATxÚ…’[–Ã0CK$(ûßï`jçѺA>rt#8v‡}Wºÿö[~ÍÀ�ƒ@g J”@¸“qˆ@c—JPSôS:º�ö!¦r¸&<›jˆ÷› f|Nyކjÿd£rà[³ ° ÜúlèA€ëp’;V;ÔöTEˆuBŠ|êz‡® Rú-¡À.w8Eåç]øE¯w\»%„ƒ1Ú6ð­Í„Å §S­�™€iS²·9b”ê·D5o熓tìQ.zœƒìRö›P€vã;�’.ýCD%HMYøA&`¦Â@wh¦Èêݲ‚–ÿH C}ôh����IEND®B`‚IMAGE 178 ./arch/spell/Bullet/lbullet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���TIDATxÚ½Ž1€@ ÃÒÜÿÿ R¤n˜!‚ÜÐÁn®ú=¾ƒxŒŠÏ<á6ýÀ‚KAÈYØ0^Gîxªx=RydˆxöIgAVÕþ± ¶A.xÑ€¹�ˆ �ÿ;²"����IEND®B`‚IMAGE 181 ./arch/spell/Bullet/lbullet.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���WIDATxÚÍK� C©ûßY|† oŒ.Ȳ/‘jøV&îº6ØÓ× ;Oqe¨©ÆÓæ¡ÁéPO À›.p±W<ùrÅùA9Ïr¼U‹Š7S>ù����IEND®B`‚IMAGE 169 ./arch/spell/Bullet/lbullet.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½��÷½÷ÿ��É+ï«���tRNSÿÿ�×Ê A���IIDAT•cX ´e4-à3Vp1€ ] 5 Æ% Y-†Ž® -†ELZ Z )(cUL;ª4v<�sö“îNáí����IEND®B`‚IMAGE 175 ./arch/spell/Bullet/lbullet.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���QIDATxÚÍÐ1À0 BQü}ÿ;gp×@¤VQñúJt'dq£„/:x¿‚ ,ˆÂs^ä N^ `~‹'› ¦ÀŠ#PT—¢GHaC2ôŸ,¨ GÁ…Ú����IEND®B`‚IMAGE 177 ./arch/spell/Bullet/lbullet.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���SIDATxÚ½‘1À ðòÿ?wHW¢k{Ô Ö'¬§Â‰ó ŸŸ€Ó�F 55!ÚdôûL �öÜ×øÖB†h)`>¼"@*R¢*2EÀ7±þÖ—ƒ�ÿC$;Ô����IEND®B`‚IMAGE 178 ./arch/spell/Bullet/lbullet.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���TIDATxÚÍ1À0Äçÿ.ʉšJ Í!&œ`ü,JÞÍ�*Nkç­ÙQØîš{§ x! 7Â$µ¶c{3>ƒŸ’  iÂÅ<êV=­c¾fË����IEND®B`‚IMAGE 169 ./arch/spell/Bullet/lbullet.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½��÷½÷ÿ��É+ï«���tRNSÿÿ�×Ê A���IIDAT•cX 4d,àj‚0hÁ !†  \PÆŠ….† J ˜”V”0ht€¤VÙ2,bëbi‡HsÇ�P²•øÂ²œ����IEND®B`‚IMAGE 179 ./arch/spell/Bullet/lbullet.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷½÷½�����ÿ��dÀ‡N���tRNS�@æØf���UIDATxÚÍÐA À0 A{óÿ?ç+J©È! AÔjô9X?¢Q@�+€Š{u@áÅ C¤†’…Ûf±ycN2š,j!ÈÅKââ“<â(ÚƒO����IEND®B`‚IMAGE 215 ./arch/door/Locked/ldoor1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBZ1ŒJ¥c!Ö„1���˜ZÝ ���tRNS�@æØf���pIDATxÚÍ’ÁÀ Cÿÿä9àb%zØa>/˜Ö‚í2¬�ô­ÃØd ŠˆN”J”@úžÀë9€—ƒs�vèÏ™³…z„ÎãRpKCºñ6�u4 ½o|çóôŸ-õ€Ù`²rþÌí*A Eµ?aL����IEND®B`‚IMAGE 191 ./arch/door/Locked/ldoor2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷Z1¥c!Ö„1���Ì^Ò���tRNS�@æØf���^IDATxÚ¥Ó1�!BQ¸ÿ™7ÆÖåÒò2&:®K’¬–(“pwpwy¦wy*8þAt@;aGv߀à=À§&€ÛFàu៎ô ®ý±.½SHûA����IEND®B`‚IMAGE 213 ./arch/door/Locked/ldoor_blue1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷)�ÆBBBsRÿ¥„ÿ���bO²���tRNS�@æØf���qIDATxÚÍ’KÀ DäþW®IãàgÑE}n03N X.C'€¾u(©dÀPQЙCñ¸öãX=p`²sÀí9Q´0A¨]æ#8TÂ^]i€:š.ë�ŸÁø¼…úόŀѠ’9ær÷¸ŠýAX����IEND®B`‚IMAGE 192 ./arch/door/Locked/ldoor_blue2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷)�ÆsRÿ¥„ÿ���êÃK���tRNS�@æØf���_IDATxÚ¥Ò1À0Aûÿ7G"­s[„öFX`Î¥€“ЦPs“m`2  L´É€žª&‚mÁ6øô Ò ;„ÍhºgúÕôÚ ü=xÉ ù¡ pɫӮ š*����IEND®B`‚IMAGE 213 ./arch/door/Locked/ldoor_brown1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBR){B!œZ1���P¾ß0���tRNS�@æØf���qIDATxÚÍ’KÀ DäþW®IãàgÑE}n03N X.C'€¾u(«dÀPQЉBñ¨öãX=P`²sÀí9s´0A¸]æ#8\Â^]y€:š.ë�ŸÁø¼…úόŀѠ’9ærÂñ”(ª����IEND®B`‚IMAGE 192 ./arch/door/Locked/ldoor_brown2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷R){B!œZ1���¼¯ÑZ���tRNS�@æØf���_IDATxÚ¥Ò1À0Aûÿ7G"­s[„öFX`Î¥€“ЦPs“m`2  L´É€žª&‚mÁ6øô Ò ;„ÍhºgúÕôÚ ü=xÉ ù¡ pɫӮ š*����IEND®B`‚IMAGE 215 ./arch/door/Locked/ldoor_white1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷BBBJJJŒŒŒÆÆÆ���ÿÿÿBŠÉ���tRNS�@æØf���pIDATxÚÍ’ÁÀ Cÿÿä9àb%zØa>/˜Ö‚í2´�ô­CYe †ˆ‚N”J”@öžÀë9€—ƒs�vèÏ™³…z„ÎãRpKCºò6�u4 ½o|çóìŸ-õ€Ù ²rþÌí*Ö £&¼EG����IEND®B`‚IMAGE 192 ./arch/door/Locked/ldoor_white2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷JJJÆÆÆ���ÿÿÿ:`ã���tRNS�@æØf���_IDATxÚ¥Ò1À0AÃòÿ7G"­s[„öFX`Î¥€“ЦPs“m`2  L´É€žª&‚mÁ6øô Ò ;„ÍhºgúÕôÚ ü=xÉ ù¡ pÉjŒLNï����IEND®B`‚IMAGE 157 ./arch/inorganic/lead.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���BIDATÓc` …1$ Œ¨P(#-"ĸlZ�Dí¬™!µ™K!Š"£fN3B#WBÔ°Š.…Äš 3:„.�� 7 6Å(ü����IEND®B`‚IMAGE 755 ./arch/jewel/leadbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��¬IDATÁánS�Ðó}÷Þvs&ÎYt¾L_ÂöåLÚ‡ùA ‰!0Ú­í½Ÿ–§8ÇΉ‰3[ƒÎÂýµþ6³u^_ø!ÂÂýÄĵ©Áy-¥Ð8‰c,|^ú`¦w^K%´Òoõ¬ÊÌçÅ3[çu)5€֠<Š'ÂÜ]Ò_zÏk«3Ò 56ÖyS¿Toê.11óS¤­A)ÖVo, zûñX˜»]R®üne_£5zc-JZÕóÚ˜º]üè¥×ÅVë+ôz{Ƹ²Öb«w§Â§’euFÆx±=‡ÆÒ­Òk…wõs­Ì|ª]+-BcpaãH¡Rcc¤—zÏë0¦ÂÜ|-5‘±±Áz¥6Z‰Aj”·õ¬ÞšºÑz°SÆÊÆ;{FW:aPaÀÆ‹:ˆ©0·“§Žb£„#c½¥ ½Æµ¸¨guaj'ñ“èc+4ÒN£ÑZI!‰@Jað¢Þ˜"çúVk„@ alp%5Z¥ B %•mbbg¦¼rQ{B\kÐW6zR/…Ö7ÊÈ~¤æÂÇ±Ö Â •A+©p„0(1qcæÒKU#ôvRJ V¶ ©z¨×htÒ?Ìí93Š)”RBcß¾”h<0(‰µô/séÔQ¬l…”v¶JêåHìl,ÅÄM-½¤ö„P Áà^I¥ãH·X8ð½.–…иÖH½ÒZé"¥[Í5¾ó Vz)•k%RoíÈ\ú ᱓¸r©W7BZy˜¸ËÌÚ¯úÚJÚi¥Á:NÍ‘î4×9³©PH—ž¸–>c!ú:–Ö!]Ú‹4·÷1õÞ«â� g±p-ÝË¡³èâÞÒ£¥{šk}ça¼W¾4÷Qº·…pâi<pãO›cU¶êˆ‡����IEND®B`‚IMAGE 249 ./arch/armour/mail/leather_ar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8Í…? R-���d3‚B'­7À™���tRNS�@æØf���’IDATxÚÕAà Yóÿ'×+;—C¯é ÄŽ`ykÔúؘŽ!—䑸±[¾?ø”fgÙ´ÎiÄ9]«Nˆ)ÒïðW¶`\ù64¿ƒ‘ã}Îw˜>ªÈTjýO™-ˆœ`玪JQBuPÜBïp ßzzwÀv,l˜_ !? yÍàPéß����IEND®B`‚IMAGE 307 ./arch/monster/animal/leech/leech.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`��€�� ��À��ÐÐ�à��àà�ÿÿÿ};…‚���tRNS�@æØf���ÃIDATxÚQÃ0Cë�#÷?ñl¥c¦QmV«~¼‡=þ €žgZ>1� n¬5"ÌGg ½3¤„›µB†;…®‚ wÜÑ7ô—fèŒþO|k�Ä>>¬DèF ì0“Œ ³UP‚ ˜6Gp˜Ø½øIňL¯_  A!ªO ö "[¸¸²Í}cÒØ¨¯ù—0E5¾æ«ó!a¼·—¡¼;1y ƒÆ¤ ʧðn„’Þ_°ðfTŽŸó”*Óð‚øÖ����IEND®B`‚IMAGE 326 ./arch/monster/animal/leech/leech.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������`��€��€€� ��À��ÐÐ�à��àà�ÿÿÿGÊî���tRNS�@æØf���ÓIDATxÚ¥“AŽ! ·vìÿx»-$‚&øGsª¢ÌDš¿û�h(yD å‰tt�Ç/‹ðW'¸W+„ 4¾ @Ú]AC…~ W>† wnf—ÄÍíR�œœ˜Gœˆ>L?Nêz7>e0 aã(ê¤ÄâÇâB^íºÂØ=|ÑÂ6œI¼èŸ$rn£„ã àMcQââ[˜àhIQÇy žPBÂ:Î9þ©�$, ?o®0ÒñÄ2ÆÌYü‰—¡¢¸ìøFÿ€ôË¿!Š®����IEND®B`‚IMAGE 301 ./arch/monster/animal/leech/leech.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE������`��€��€€� ��  �À��ÐÐ�à��àà�ÿÿÿ–¤)†���tRNS�@æØf���·IDATxÚÍ’;v1ÝÌçþ6 †b·‚ ª_ Ióó¿ƒÌÊU…°qÏ, x‡b0`kÁ�^ îÁ¿æK¡‡<xç*Bç]P˜Î"j¬œäU€' ׿ò$©¾ü1BáNa¡q†äœ+¿Ò‚Q ÁÙ8c‹°¡bœŠóUpáþ½›ÞãÝ`Ñ…ÅÀ®·€ù‡ÝJ@§†õ1áJgð,z_Tñ˜o¨^Ñ‚…gPð^›ÃÀºŠ����IEND®B`‚IMAGE 304 ./arch/monster/animal/leech/leech.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`��€�� ��À��ÐÐ�à��àà�ÿÿÿ};…‚���tRNS�@æØf���ÀIDATxÚ‘QÃ0CgÀKîâ5BSÙ,š~øé¡´¯`î¹Æ~cŒ�ž˜˜…“s Óª~"8Þ@†YàÌÀ/ƒÉ°0Ư€E¸àHEޔĕo .‰BP:¡‘†tò¢Ät…zM>I¦ïÈ©SU„ùYSX$ÒÖÌ4G4FíF(Ç‘ØÝ»�™bÈ÷FÄo�iȾ#î9 lõV@!Š `õ9ö¾Cý¯Îù�¢ªÓÒtÒÞ����IEND®B`‚IMAGE 323 ./arch/monster/animal/leech/leech.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE������`��€��€€� ��À��ÐÐ�à��àà�ÿÿÿGÊî���tRNS�@æØf���ÐIDATxÚ¥ÒËÃ0DÑŒ1þÿ‡Ë HΣ¡‹’%G׎ä-ÀÖ Ü½°@8:�ÀñOa˜»¶`ˆZ¸÷ŸC_`¢+´‡°ûŒþDÌ)^ ªZ¢)¨)¾‚JH5 xù ágâîÈy€LÔÞÜ3Äî·¤H’Æh:á%Ѝ‘QøI9Œ¹á”8Èa’Ä ¿ˆk?K$)Sû@\¢4œ™`Í+bÆ�âúʀà XàþA¤žW`_;)1c ÷OBSƒ÷'ÈYëž®ËéO‡����IEND®B`‚IMAGE 300 ./arch/monster/animal/leech/leech.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE������`��€��€€� ��  �À��ÐÐ�à��àà�ÿÿÿ–¤)†���tRNS�@æØf���¶IDATxÚÍÒË!ÐF þÿƒ‹ã¬ÊH·Kï‰Ï×™v^ÌÝ<3€‡Î`& M\ÙηyƒOpbæÞU YäW…õ&­¹Žv 'v -¹Ôs¤X„wð †]„ ÍaKÔ%†‘˜ØSÅ0£N¬L%ñ�ÈìX²�v"N fiØb§Ö†dGŠ{õn1ĉë˜_‹¤ØE—…,ä\ñ㻢<çˆoêkþú����IEND®B`‚IMAGE 161 ./arch/flesh/human/leg.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���½÷Î÷çŒÿ��n:æÙ���tRNSÿ�å·0J���BIDAT•c…*0` gV(CÃÂY ZÕc@E¼` §¢P‘Ps´a Qœ /Ã#á�cøï/� èSH.ö„E����IEND®B`‚IMAGE 218 ./arch/food/leg_mutton.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÁq8G$Í…? R-���d3‚B'ô¤N[���tRNS�@æØf���pIDATxÚÝÐ1C1Q¯½÷¿qb)ü:™–§-X?ÀxÞïï£`ÇmÓ"”A#Èp¶À.`bÓ�ƒLNÀÙNHpä“AûGIv’ ôâC ôD߉v¥ÀHJL䊑\âøˆ5ëÏzKÖ0]¯d����IEND®B`‚IMAGE 373 ./arch/monster/humanoid/Dwarf/lesser_dwarven_guard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE4V�����€¡¡¡¿¿¿��¼aaaï§_Áq8!!!d3@@@ R-G$ÿ×�Ú¥ àààÍ…?ÿÿ� áw���tRNS�@æØf���çIDATxÚ­‘YŽ„0 D]Þ²@¯sÿ»Ž3–Fê¤~ºá½”‘ ¯ÆN¸Ú ?vÕí’S¾(³À¬œ<³/œ³aïÅÌú> Ä”œzçHï4'…HáZ+ÓP¥Jù̉[C=�\ðqƒßÝñû;^ŒÅoCˆ»-B)\4[ðÇ"46MãÇ]Õ0ñK3ÕèçYxZ#ùÛbÓ&a#ÉÀÝÏÚ€— y^¤»¸#¬Bök\@­uþy ckß(�–àº—Ñ 4ð*ÈHx"oþ ƒçÃ"àš<…’ßÌ/† 3©����IEND®B`‚IMAGE 367 ./arch/monster/humanoid/Dwarf/lesser_dwarven_guard.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE4V���¡¡¡��€¿¿¿��¼aaaï§_Áq8!!! R-@@@d3àààÿ×�G$Ú¥ Í…?ÿÿ�“oßš���tRNS�@æØf���áIDATxÚ­‘Ùn„0 E½ffiÿÿ_{MQ¥©3ð2)8:'v¤ÐÇã\ý‚_Uu[h=63AT–ƒÃ˼Š­£ºûXg&Œ!È4 x j­ ÍšÕ÷œ¤wng3/ü–—g)Œ”çTp±r«O¸¨þwðÛDP¯»ñ]Šªsnà*UÍâ<šñ«ÑûÒÍ* ñ›+ŠÂŽ +†üÕzâüa0fÎ<ú+>f<G^a@ÈÜ8¸YÜјóæÇnÑÁ(ÝvÁý7y¦àô*dA…" ü�ÿPž%Z|2?"ñÔ����IEND®B`‚IMAGE 177 ./arch/readable/letter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���VIDATxÚíÐQ € DÑfö¿è¢oØóµ�» ~Qñøkò_µ,KnXºÇš•©æx–’qvÀÉœ1±ÓxÄÓ)öú +ÄíSà8|Êkæ¸ÌpÃMðŽ5–2nÆì����IEND®B`‚IMAGE 206 ./arch/armour/boots/lev_boots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ¡¡¡aaaÁq8G$���¿¿¿®t®€���tRNS�@æØf���aIDATxÚÝÒA €0 DQµîb¡"³H@p%Íê‘™BÝÀès0j>Æ�Œò~®¹ñ¡À±`ÔBJ<¨ù9×FÉÏT`ÔBD`4̽Ñ]ˆñׂ„Ñ$Œ:‰ñöÙÖ› µ<gÌ‘����IEND®B`‚IMAGE 212 ./arch/connect/lever.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���@@@¿¿¿”Sâ ���tRNS�@æØf���gIDATxÚíŽÉÀ0Ä8ÌBÿ’L^à4`=øH3 ~`Þ{×60…âñÒisM°óî®ÀèÝ­nù>0SÓÙkúˆ¦ñÃôkňp˜æHdTêx'¡|¨¸ €FPСá• ÂKûõ����IEND®B`‚IMAGE 214 ./arch/connect/lever.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���@@@¿¿¿”Sâ ���tRNS�@æØf���iIDATxÚíÐË€ DÑ>è´ÿÿÅc\1lte¼$lzIåk¥=¯<ï³–ÞQÙ"“Š˜ ÎÛ(P·6idÞóª %ÀTQ˜éà@µ:Û) «®/:²rÜ�BN 3ù[t�¯Ä¡‘zÜ����IEND®B`‚IMAGE 382 ./arch/monster/undead/lich.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���cPLTE÷Æ÷�����„!)��k¥s)B1JsRR„ZZ!��))9s!){!)!RJc!k!)”�1��s!!ZZZ1œ)1BöMüe���tRNS�@æØf���ÉIDATxÚ½’GÃ@ MIÛÝÓ{þÿÊ`}J�3‡Âë (­°Í/é¼÷@]¼‚ ðÎ9€ñèŽñ«à¼‹”׸Ê9–¡‹-@9$i´+‚&(cª^& "{M¨&QöÚ£†5Lç1×YlÉ2ï‹ÈÌsÅÒp¼à-¼ Ê/‘ãwÀPRPa�¤OšHÃÆ–+Úa+†m;¨fòFÁn½`ë+l–ÓNŸv2rôJ柩Ée@þf® î_óaQ^ÁP1����IEND®B`‚IMAGE 600 ./arch/monster/undead/lich.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÒPLTE÷Æ÷���������k¥s„!))B19RR„ZZ!��s!)�c!œ)1!)JsR){!)c„1c„c�kÎZkÞc!s÷kJ{µc���!�œ11B”�1ŒÎsk!)kŒc1kµJR!R{Rs!!sscs¥RsïcZZZZ{)J!ŒÎ{ŒÖ{�”))”çŒc”1cœ9­R­ÞœÎJ9Öc!c­Bk”Bk¥Bé×ð����tRNS�@æØf��4IDATx^½ÒÅr31…Ѿ݂a03;ÌÌðÃû¿RÆ•,yÆ‹,r·ß)©J%úÉšžçUF�h†:¼Âài­=�•"\èE¸hO‡[: îdNša¨ìà¨Õõ’.J¥ ÛŠ� .j2UÌ™)€Þì´«`3ãCM6;ƒ.×NZ±L¦âX @Ä£=OœÎ踀Á~ø¢˜@Æ>€‡£àq�qAïç³³}ÿó*�9àð¹ýõNó|v+ *\Û[ïovÌY>`ÐEÿ…n”Ø(7¼ôï~ ‡}Ú-�û‘‰�Ðøº}Nß-EuÅf‰©¯ÀÎx‡œ²¨´žLOwäŽ!]9ðÍT¶%#£‘™‹’Rðùι©Ù¸ú3QlXFE_“¥À±¿¸0P•¡æ1����IEND®B`‚IMAGE 814 ./arch/monster/undead/lich.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��YPLTE÷Æ÷���������„!)k¥s9R„ZZ!)B1��!�R))c!k”Bk¥Bœ)1�!�{!)s!)�{¥RJ1ÎïÆB­÷¥„Îk”�1R¥1!Zœ1œç”��sµZsÖcŒ÷„{ÿ{¥ïœœ11c¥Bk!)­ç¥9­!{œZ{­Zçÿç¥Ö”œçŒœÎŒÖc!{µZ{ÖcRÖBJsR„¥ZBÞ1cÖRcÿZkŒc¥ÿœ¥ÿ¥­Rk”kR{JR!„ÆcZZZ„ÿ„ŒÞ{Œç{c„cJ!kœBœÿ”cRJ{”Rµÿ­kœJkœkŒç„Z{)ŒÿŒZ”)”))”Þ„”ÿŒJÿBZÆBZçJZÿR!kÎRs!!sscs„csŒJs­R�sÎZ½œ”ÎJ9cœksïcs÷kæëž���tRNS�@æØf��ƒIDATx^½’µ²\1gΑtq™3ó323333ü?¸´É®«®8p§ÝÑÔà_¨fY”$YM¢ä2ó(Š2’Á"™‰f’¿Q%AkéV“ô”´“–„µ¯Æ”…®“ú.ˆg 8è=ÍbÛˆÔmJ•AðóÒî&HRË=CW·1MÛÀ ú¬þ8!JŽ=FJo;¹.¶•'_œxŒxÚxxûþwçÆ@UWÝ¢šž¯wf÷À×ýŸ¿?�J\©Äj�K×Ñøâ‹ÉåY ¹ ü|±òdŽêóøØi4Žúàѵ¥{7›W½÷íÐ9%áù�‡çÖ™…©#/áN´6n¨÷Û#óÀ©+>¸»X¦•"õÖÆ œú±4ÒÜ|3‰ïŒQº´e¥œ_{°ö CL£§6zÂ*¬«é©«wm-p•_¢¦\ëZ›“‚„ÚÓ±ØnQ‰"Ö…å<µjE°¿sË–\>r×¥üPYüÑþW~•‘"Ñ °W����IEND®B`‚IMAGE 352 ./arch/light/light_bulb_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���$PLTEŸQ,��c2�c��1�cDÙ¤���þÖ�ÿÿ�†††TTTgÜÞÐ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 95Æ'Œ!���¨IDAT(Ï…‘Áà ùÑ®~GÒ@ä Œ*ð äáær˜�–3I4~Ø‹W(„VàË~ñ‰ø"Š|e &€IU ¤¯'5Ëz[a™d�<Ðã¥e½ÁL'03‚,=ÖWðÎñˆ”»à´KL ô[i p‰.tjÐÞ+õ´‚qZZeß8Úìe“óÕ£”§DU8÷Ç?%Rq³Ž÷‚Ëô{†N¾}2ü·.����IEND®B`‚IMAGE 370 ./arch/light/light_bulb_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���*PLTEŸQ,Òi��c2�c��1�cDÙ¤���þÖ��Ì�ÿÿ�†††TTT1$_®���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ :¦ ¥���´IDAT(Ï…‘±à D)[åñœÐË"æi Æ»äÀ£‰p¿uç…p$øò€o|"~�„H†‰"·,Á àA@RUß“š]j;¬äxµt€}³Œ/=mãÒ˜;ŠŒX À<`ƒ•OŽØ0=ø¬¦15Pò¸•Ë•Š0™Ù]¨aòé€f«*˜§¥ªžÇÝæ¬‡¬WZ_~Mâ@—¸Ž’H‰›u|T|MdxÁ¸’P)‘¨K����IEND®B`‚IMAGE 367 ./arch/light/light_bulb_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEŸQ,��c2�c��1�cDÙ¤���þÖ��Ì�ÿÿ�†††TTT˜¤p���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ :¼Ôߨ���´IDAT(Ï…‘Ë Ã D¹m»{‹à•1Ú| €\\T'ü)^q€3 l¹fÀ‡à@24$œ²`‹™hÝ_Ì=Ù 0ßá‰Nú›1­¨ñ–m<b8‹­±vü€HWtpIZ0ƈ>šŠñZ¤µþJÑ€Õ}ˆ®B[­(¶fŠöZªòy4pÙœùÐñë‘ósnD‘Là’L'î$BÉÔkyd|u¿fxë S=VÙ����IEND®B`‚IMAGE 372 ./arch/light/light_bulb_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEŸQ,-ŠV��c2�c��1�cDÙ¤���þÖ�ÿÿ�†††TTTo#l���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ :FÛâ»���¹IDAT(Ï…‘1à )ï‰I^sM¤µS[Êå†Xâ)ü¨,¶œ‹äD»,\{Aƒ/¸âü�B††„S–¢xp7›´î–R´K\+ÒI;@ŠÔxÃk ¬ƒ4ß@ÖXã�c²#G©€©+1h:5S9®­¿²k¬PCÏ]…Gâ³9 Øš)Úk©ÊëÒÀf³æE¿¿9¿}#ŠÄMâNü“%®×òÈ8u¿fø�•G‹FG»ø����IEND®B`‚IMAGE 380 ./arch/wall/lightningwall/light_wall.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ•‘„ „Co<ßÿ}ÐŒ©û™ƒÌš]¾AܶÍ>‡«¿ ö=Â@•/†êº*I£0'§ƒÔ²õ3´÷Æi@è`og(Ô_ ƒLƒ,‘Z\÷À Ô0ÔAˆ:2ôÆa°Aà¡Ãó¹IÈ °š ŒªØ‚#X”}TgTT&!Éù0¦9Ü ¥„¼éÏÕ) ¹˜G}%\'ù¾‡¿ö› W]!WÝ,ßE£¡Â*€¹¥¦»à"âkßKÃÙƒ˜±íœ¾¿Z÷ô‡X=@.‰Ô‹RŠ KÍå0”|\eH‰òˆ<®®ê38~9|;D ãàÕ“‘ã¡¿�LØœešÿ����IEND®B`‚IMAGE 374 ./arch/wall/lightningwall/light_wall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf���IDATxÚ…’Ž„0DÅÊ Èÿÿ凜]»{¯M4aò*ÔmÛì;[òOÀ~“P~š$�ƒ<*0<&Þ_‰ hÖá@>4Rñ$p䆡e •A7l†•0õ³ ¨#¢×•’õ·èç+Ý铇Áºâ £êÔg›ÙC�<ø4´}v‘à8½Xò;¼8§áê"¡ÄÒ€ià«‹vu‘Tr=ɤ ËI&±6�ôØî†J0w–©v7ä5êØÉ]ïÁ@�é@$P†ª;É3<"<WÜosüwþ æ$YBj’H¿¿ „v +)63ÝÉU‚Í€i}·Z}C³þº¨`Òã����IEND®B`‚IMAGE 377 ./arch/wall/lightningwall/light_wall.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…‘’…0CÅJöþ÷]Ñůû7µ3u’>—e±¿îÿû® €ò%0Â'ä¶P €)Àg—ÐôÓoÂFd@* ¿Þ8@׃020A6Côq¬J\>a ºŸT‰“@¥€ñ¶£€³¾ÒI÷O‚Æ¡ŽEÐL·Æš„ꢷ;ÞP<m’ÀwB¢Éìï á`ó®>ÉYšÝß‹€÷¿ùœ?}¶9ôÏmÖ „Auhš‡mEÿàØ¤6‚@œ{§ÏxBî.zÍA6!ùl£á¯| L)÷Ÿ" �òú|ȘiòŸsr‡fÀªõëÉ¥Ðô�ö¢~AcV‡����IEND®B`‚IMAGE 356 ./arch/wall/lightningwall/light_wall.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf���îIDATxÚ…Ñ’ƒ0 k¨WNóÿÿ{c:äÒÃ4äÇãß5Üû@üVýì$ °éP P ZŸ$*àé;½ý—gÀ*`maÏÀþ•@Ô‹ÿ*uÅ f³šQÓxÉš!ù\³©I¸ ¿[lG ¹Ì]äù] MzšØp-{8[Ðe×>µèb$3¬‰ÜïaѼÉ{‚f·Kû…0Ý¡y\ "ü9l~%�Øn†9húÚ^ìÞz?¦™¿ ö4IkÏs“`úèV›Ú°W‚H‘4¾IŸx©öûñÔñôÿ�0u“ÇÌ����IEND®B`‚IMAGE 360 ./arch/wall/lightningwall/light_wall.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf���òIDATxÚ…áš… DcÈ÷ß .îgewÙǃ°m›½³ÿì;�åK H0Èe¡�Àû¢Ê@ÑýŽf@* þ�CcÐÂ@Y`U½ËÎéü(ªD¼Ê7àªâb°Óh„a¸´Y·Î éaäèâgtQp*{_<&¨ÙÍñ˜CB Þ±6ÈwKÃ.ýu’ ù2I7ûë$é7؆a ÙlpT›æN@ ø rî�ÇdÀy0Y«;ôÏ šeî`LU KMiñ§HCÖ§?éä0Óô/î;4–½#þóÍó_+bž‘N#ù����IEND®B`‚IMAGE 380 ./arch/wall/lightningwall/light_wall.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…P‹ƒ0 2vºþÿÿ.ÒæjwÓч^@Lض­Þ#Øÿ‚ú @{”àI�¶, @8Ú‰#1.ÞÑ!„ —À†À²Ì#îP$(é@´Õµ; çOþk“n7=¤üîÙÅâP‡ƒ±áËÁ—yí¡ìsŠàÁž÷9ØË꿈ZÅ/3:í!‡fÎFþLr—Ï+§ißTq‚,é0¹çšB@…{îØýš$:¬/‹Ã%É(Ô�ŒFZ‹¡yæ@{É>»Ï>1‚×ozmÕl8�ú¾ @ÎI!hÒ‘þž CP«ËŸY¼¸µO^´bé:ùHóy_õ[H����IEND®B`‚IMAGE 369 ./arch/wall/lightningwall/light_wall.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf���ûIDATxÚ…Ž„0 7p'Ûÿÿ÷ €Únu{B•l¿^¯ø[‡û ¾«Ⱦö@Ø4Ü P ²MwÀËwZ~Ê+`wÀra¯À>èâ"0ù(ó͸¤[ý\ð¸rP½&BtN þAȆ]¨çŠ­ã-¿„–z“dvBoÒܺÿžÕ½¹‡ 2a› ›¤úë·¬Wµì~“ö±ñ£Lå#¥<F‚wÜw¿„³ù°`ÔÏÕ[ãNê­lÏ´v¶Ò{ˆ@ÊOñø±Mk ÙM�;í• Š`R¶\$7ÊUxÂ9Ïßy¾/ÿŽ¢RD÷¸����IEND®B`‚IMAGE 361 ./arch/wall/lightningwall/light_wall.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf���óIDATxÚ…‹’ƒ0 qÁ«˜üÿÿ^jÜ›ò((†‘Ø`MÓÔ~k¸Ïv¯ » Ì I@Ãv‹J€R}'QOßéq”gÀ*`qaÎÀü“@«#NþZêˆEèF`‘ÚÚ› «VB„ïÇ>žu‰•šâUS¼‘®ÞµÔÿëb¸"A—=`¡út»kOp†qÓd³è÷=<5ÙxlRG_ó7¡*¯†¨)R4ÜÇžÝóé¼ü»IJ†™m¾ëB«¢okìq™ÿ÷€[Hq˜t°"�qå‡H$ÿ\T—F 5O¾âˆPàh5>>•{{MÿT¬¥Øê����IEND®B`‚IMAGE 375 ./arch/wall/lightningwall/light_wall.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚ…‘nÄ0CËå°áøÿÿ]Cj›íf"5•—Bã°¿uºÿì»2�Ê—À0`[¡�S€Çë húŠð%*k§ Hšp€^Â"Œ Äô ýF€ÕÓW{ãüOPWĤ+Ëß�1!~Ñ`ðîãAÐ"DûäíÆ«Úl©ÄNPôù¡Øç]T�î4Á#Ö´?7‚5¡ÿÇ>ÉV0Ù&yü6I/5e4á‘àZjWaª#—b­—^ ‚”TAÀžCùÎ ŽU§ÜEû_È[HúSX„韡=’äð'‘�y|yÌ4ùô £öÐ ˜"û‡Ž.äÛô�QÀ§ûe$T����IEND®B`‚IMAGE 304 ./arch/floor/lightgreenmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEo*8Lk¯{v¶…¿ßÆüýü 3P$���ÙIDATxÚ“[nÀ0g»pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/R^ [®˜ø����IEND®B`‚IMAGE 1731 ./arch/construct/tower/lighthouse.x11 ‰PNG  ��� IHDR��� ���@���LP…œ��èPLTE���òñè÷öíÉÆ·ìãÜæåÜðêéíìãïñî·ªòôðôöóɾ±øúö­›‘º¨‹´¬¥»®œÇ»©V>(fJ@ÐŹÑÉÂÔɼÏ˼ÚÏÂ×ÔÅåÝÕàßÖwXIdaTîêÛfaO‚iVøïèuvb}|byc‚r©œŠýÿüYRLQ;0mnZxw^zwhS;:‹xi|}iS=,—uv~‚a†Œr2%1Œ‚ž}¤›c<p;±§š^B6»©ŸZD6uF´³«¸µ¦Ä²¨dI4fH9˼·Q#�ÎűiOrM"ZQFiO8óëäÒο_TDÙÐÉeVBÛÕÀãØËÝÚËwW%e[PèäÕg\LN2)ƒY*K70R83efSëîêôîíôðámfOlgTih[pm`U:0pr^B?C{†c‰ƒp“ƒsdL;hM1+&(o6[;³¢‡®¥ŸUV8µ¨–@' ZWJN>1`WLrU.lW.BC&Ä´¯qXFtVQX<-o9 ÄÀ²Í¿£ÉÁºB-=-/TA$ÉÈ¿IBB^,JD.^\H2ihO��REApf[pmTK7+èÝÐpBéâÍrm[cFvl^…kMöèé|nMXF>WG9}D dFBD:;x}q]K;`J=†}_ûõô€fúûñ=Å£ª;"-¾ªš87µ®¡½®–oI2Ä­§i,�º´ …eUxLlJAÁ¸žƒl/H3"¿¾µ-F68€4dMQC9*ƒk^v;�YTSÖÆÁÜÅÁ6#jQE3.Q@Cs€cXAEÜÓ¹V8E:EÛ×ÏãÖ×1,?fE‚/�‚Ž€iäÞÝ©xx= îáâz4�›td]W__W‹ŽmG,Š”qôíØ€XVÿéù¨’}£•‹­•Œx[PI"�^IBW-» ’ÿóôúöçw_<ý÷öG/*ýúê\:-õÿúùÿÿb,l„ú���tRNS�@æØf��‰IDATx^íCÔ4GF»ª­±m|´mÛ6~Û¶mÛ±mÛ¶ml3““ÅL÷|«l²ÈÝÞ[Ï{ ùWüÏððcg&·©³Ï ïê:_6‰Ÿ=ãú—Î>ßàB$=¾ëü–Ý~U»ÍvvÎt±Ÿã÷/iµõìÜÛSõ@ê¢`ãŒñE‹ÅfØÙ³d÷–.ÑÀýQ‹,ƒC=у¶ö*ÿã+Á«놢ƒÚ;0ØÞÚúaC¸·§Æý=66æŒqÇŒí²|î½=Ûít»\.÷snçÈÈžÖîpï]µ¸Áét¹®¸\Éî„‘‘#G¢Â‚/ä9ª uÎK)ÏÄ„;!66ö‘ !>]"UT_«;zé£O<OJ¹s‹“Bù Šã'£Ÿ*9z<99Æu%åÄ sh ‘߬xódW‰R¹cÓ¦[ò~é¸ö¢9©14PHÓ£öUOWÞ»C™¸aaÇoæð “6UªTŸžV\œ˜3ðF4$ø’ÖJ×}­:Ýýmw”êô¾iÏÍ ÒæêõêýEª»:ºv¬ÎÉ ¾o ¯Ü€©Úì•«?V*K’V˜Ðf5Ê麃mëKmÆ¿)-5©Ã)’¹Ú—qœ+_¯/ZQ¯6YÈgô‚ÛË›qò<¸ ûIê óÛ%4-—¿` ´‘¤Aëõ $4§×Ó´ÁФ­­Ux…I£QN75ÑGß°Bâ38·þÃ÷ˆˆ÷oBõx �AŒâ`UÆZ ŽEú|�,Â@|6jÀ÷«}ðgÐa`{F¡ºÍ ?½êƒ¼ƒ,4P^o´ø+„׉üÃ…¨‰ì YPS/Ø–­Ða ×yžÄ­b?•FëÙ}<ËóŽxfÛ<N‡A{ÚU2TïBèÆxª³ÂƒM>–u¸èÂ;Ëse:#.³2aú²åS³¹Zë£ „qLx¡³l~®LmÄ@�ýì|APñçYÁfŒ̳<SC¾{M¼v[®l­Ö„Õ ÃS5ä“â`ë}¨#�Å0TN¼ý hYc/Øl""Ô`¯dÎBd¾®)x 0å�Ù[83_Ì:eÖô’}$EQüüÁï¶"B*NÙ50ÇøýsÖaDÄÒÌ;Í_¢7²*‘T´Xc¶ÛÍï=z8‰È²ÊüÊY3—.C&åž–ÎNä¿Ê_˜öía.¯Y����IEND®B`‚IMAGE 1716 ./arch/construct/tower/lighthouse_northwest.x11 ‰PNG  ��� IHDR��� ���@���LP…œ��ñPLTEBtFÛ¾©Õ¶œÜÀ±Ö»¬Q@C×¹¥½“k˜pÙ¾¯Ø¿¶ÁsØÆ»fJ?rTDÈuÇ ƒÅ¢~Ê¡~ϦƒÌ©„pÊpϯ–Ѳ˜@rDظž¯wD²CÙ»§¶‡b½ˆL»Š_‡ÜˆÙÀ·V>(Á–haÁ`´}OU:0´„YS;:,I&¸ˆ]T=,R¬Uµk·Žf¾ŽhW±Y[µ]Ä•ul:M3)Çœt]B7έŽ-R-ZD8XH$Ç¥€qCΦ‰Ï«€dKÖ¿©Ï®cI3eH8yÓy×¶–mJ }×|iO8rS!Q83Û€wXI@j>ˆUF_9cW¬`_H€JQ;0‘摚雸ô¶¾õ¿ÛûÝéüçïýð³„_H2k3 K™Qb[O©RuÏtfEB8b6UA$T&Úx`ºb{Z(^Bà|m?ÌžƒZKgÁhY<-eÉnj70%0@'L„NLŠL¤rUWG9Ó±’Q•O׳ŽxB B-N¢S��Ú¸«{Ù„3W2¸‡VN>0U¦P`J=L7+¿‰fdL;‹à‹ßôOS4hM1T®V£í¦mO)¾oÏùÌÔùÓW8âûÞeS)Æ”höýòx[Pß³¶V8€YF)M)¶xGìûîØ³¡1,?8G,~g+‰`B^)p7mhVCvGExI}i>A?C…eUU,—cSΠ…dÄcšfVbÆk^IB\:-¹]]Í©~J‚LtI]K8Ï«™NŒNe)�G/*>oI2­{Fϲž5Z5xÒwH3"G �L Q½€TlJA~+�dMQ¼‚g6#XSBK70b@Ù¾œ4`:u0¾‡^³Šb»‰X6b<iREÚÁ¸ÛÄ­;e8Q#�Ýú~�ÛÆµ—âqXGX¯Q›ê¥ëŸ½‘^¥ï¨¦ðª°ñ¬®ò³rWQtWLÅ÷ÈÇú˽•sÖûÕ)F$|1 ZE>\¶^X¸X-ôþù²c~���tRNS�@æØf��qIDATx^íC´õH�ÓˆsmóѶm?mÛ¶mŒmÛ¶mÛXMîœYä&y«ÙÌbj[Õ_Ÿnâ_ñ?Û¶½uat»`3™¼)=ã‡÷Fñ›ß½jÑòäôßæXîVÓ×®IÈ‹ÕéaËøê=JOþœ°¾¥ó‰Œ[ªëšü×)2?ÿÌ#ë'vŽû}žg÷GŠ þ7&¾ÜÒb_¼)¼nßW_ìûRæ×\DÚíö«ï¼wù^KwßÁ¾Þ^Y0{A¼½sÑâÕÉÉáꞃýGõD{×3$9f̸O2–¦ž¾þCÑÞõÍÆ_÷¦O:g|ÝÎO{ûº¤ÁÍ^_®æùª›æY]çïþì»#ƒ’«$¾=ƪß/~PßßÝÓûÓ¹ã;¤ïÕÐeK»’ž«ªkŠ_O’ÍÒ Æ÷zèôÒª‚ÁáI“,¸?ûSÍ¥Ò ä-mïÚZ¿'øØp0iÕÂìÛš£ƒvÆ[šV«ÑlysGeeRn¬èm¼$xˆ6zKÐLh¼µ±K3aëÑ3C’`ì“I·,MóTvãÂì¹¹‘óyÒ€pùÌPg3Æ}<÷’`°ªã€•ÏÓR6x­¨™’i«±ýMf¦U5@|³Ä˜!“3Å”v DguȈBzƒ/'RHÀÛ¨œ2ó®hï¤iŸï3%RCQf£Ë%ˆ¡“‰¦Íæ cQQÈ%÷„“欨 †þ\a#70tüÓ„çk¼ Šˆ`S×8=„g)��Peà†8Þ —Uê�z”«¤êjè¥]� €ÊTÈ)±9�ú!¨gUžÊ[©rÀP�¸Ke2@€Å}!�ðv•š/ï�! jo(,b Í»‹C‹gÉý•…Nop  �Ü®Hôl€�BÆ6¥wÆ1E²,BˆÅkg)üîDN`@,(»eAÙåNOÊ ˆÅù€À¹©óË‚ïKô0F+tS'°nêFe0íG^1`9Že!¾ýqYÐ0¿5e†c Üðž¶Ã„Œ¶§õ)ñ4�˜Â©#ÅòàðJ­S,Ų,F'¹~!§le«pk1ÑfM'ìo»K«Ò>Ȫ%T(k˜9_ÛÚª}åŠéÅ„*Gk‹kgfì?JŒÊ¥ “'ÿUþs0Þî4º����IEND®B`‚IMAGE 1458 ./arch/construct/tower/lighthouse_west.x11 ‰PNG  ��� IHDR��� ���@���LP…œ��IPLTE��!÷öãûöåúúêôóÜíçÍïíÓóìÕÝÒ­öòäÑÅ›õ÷é×Ë£÷ùë×Ñ©ûýó�îîV>(ÕÈ›�ÿÿXF>�^^àÕ°ÞÕ¶Ü×°åÛ·ãÞ¹êçÌfJ@rTFôñÖ�‹‹œˆXøóà�¼¼Ä¯p͸yÅ»•ùúðË»ÿÿÿùöÝ|dRXH"ĬzÙÊ©S=,ö‰Ë¸l:ÆÀšÈ–^B6ZD6ÛÑ¥pDdKdI4fH9ßÙ³mJ!åÛ½N2)æà¶çäÁìãÂiO8ðíÎqS#wXIR83óôä‚iVÒÀšQ;0ùõé—uvU:0ž}^:S;:QR6dL;hM1TA$âÔ¶ÓáÈ·„wB 2%1H2^BŒ‚N>1lP,üýï³¢‡ðçÈÓÍ£ØÏ¬z[*ØÔ°K70k4W9j7 WG9@' dFBB?CñëÅB-`J==-/ùñåÁ´k?K7+Ò¾šX<-H3"fR,jQE-~U(ÙÊ—Q@CqXF¤rr„~lŽ€i6#G,F!�oI2¨’}æÔ¸T,]*ƨtæÞ°lJAd*�æâÄdMQVSDìâÎG/*Ѳ—íèÕ̱‚Ì»ˆøôÔ1,?aA|1¿ªo|9ôëÜþêð͸‹p7�Q#���Æ»\:-|,����tVQ=ÊÀ^IBx[P}g-ÐÄsImhW…eUÏÊ¥}j=t1�V8üûæýûó|nMþýê†sdþüö]K;†>f���tRNS�@æØf��IDATx^íC³íJ�FÓˆ¹mûضíKÛ¶m϶mý²—œÜz•äŒîä ­Õ_W/ÄK–,yºla»bDzX,–üà£üOÌÓ å;½÷cg¾H&“ʬÕOíõhè .åGKpP÷êI*ŠËµÕ2pZ³Ú êu—ŠÉþúAý}í~>Ÿ·C+¦þóŠK+ê‹}êÁ9w,¦ÿÀ¥ùbŸúbû¹WôbÄ\OçêÂu¯.h{¿ÁO”¥=Ƨ’úÂ|±fÌäÞwþ±k¤âr‹î—ÛÝo Êr¯:/íÚÚâp¬œ›»Vÿ¸ãË_ûÇ:3Ý91r´gÖqb¥£bÿîŽOû‹ƒ !Ý9Ü385ÓÜ\Q7®zR2oqÞtçÙoÂ{¾ ï9:£zá°!X½>`6 ‡ïv ìî8^W¯Ýï2D*¤Ò[yþø‡£elqHêb#KÓg÷õn*'{ÉyÊËCLÑ�q±l½÷>E ›ËۙPÔ4@”rK¿jè¢0’eð;*à ”*öqŽËåî±J/ÆAo*e(ã„@€ã‚Ánok«3eöDœ“„�ÕÝÍ ÷nM/þ�}Î+„…ø'R€R AZƒŸã}uCˆ� mþª”‚Ô†f¢¿AÁv –é¢×ÖA$C\n7ÐÐNFú!ð›/ÔJ!\�|eA¢°•N? Õ}9 Øc6œÔƒrV–¡ÍJK ~ ­^'"‘\dö?”Æ3’?ŠöuÃlbê˜u *ã')�³‰,KZ}¼Rh¥èQ!ij‡YütU†!i0 �âAN›‚¦[ñLÍšUç³²˜Àï¾c Þ¸W•Ùè Ñ ,Š2ŸÀ7¬ÁæŸ$Í^ùQнpÕôí,©ÙbYV ô£É턉ÉÏ|5Ï€Èó°x°v[£9ؾ<âÄ£˜çy½÷æÍÍ„™¦å%>(b!€0R½Š°°vòûˆj ¿]ÝFØÐÔwdg¤¤$òˇ« [N¶5¶©Þ¶ö$± ßö9Cü_ù»ß¡ãsYïd����IEND®B`‚IMAGE 1041 ./arch/floor/inlayed/lightmagent-green-p-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��žPLTE 8 ×À×P~PïãïÛÆÛäÒäåÔåêÜêíàíîâîÙÃÙØÂØØÁØàÎàáÎáâÏâÜÈÜåÕåæÖæç×ççØçèØèèÙèéÚéêÛêÛÅÛìÞììßìÝÈÝíáíîáîÜÇÜÝÇÝëÝëÞÊÞßËß×Á×>d>=e=ÜÆÜ";"çÖç(D(*G**H*<b<èÚèÞËÞéÛéÙÂÙßÌßàÍàëÞë=b=ÚÃÚáÏáÚÄÚâÐâãÑããÒãäÓ䟧Ÿ¢¥¢¤¨¤£«£µ¶µ»¸»À¼ÀÆÇÆÊÅÊ#>#$>$*I*2F2.L..N.0Q0ÙÄÙ1S1ÚÅÚ:M:2S21T12T/2U23W33X3ÝÉÝÞÉÞ@R@ßÊß5[57[7àËàDUDàÌà:_:9`9ØÔØ$?$'>'#=#)D)âÐå?f?>h>AiA‰¢‰åÓåäÔäQ`QCoCæÕæFqFXfXæ×æIuIVnVJwJåÛåKxK^k^LyLN|NO|O)E)ëÜëêÝêgvga†amƒmlŽl‚‰‚v–v†Œ†ŠœéÞé’©rÜ��.IDATx^u‘S·e1„SÉ&ŽísmcÛ¶mÛú×ÓÁ¹wÏÃÔCw¯Uߪ$fÛ�l!@E÷øÀ\üðÕð*àÀ8Ku³6ùq ­J)ª›™Ý&_9²çêõ¢_ о°5à[=u+ìEþ9ÇL"Iƒ5z#(Íoà1Àuem–‹§ˆÈ<ÎæÇ—ë_$€ Ô¼:­¼…Ç„f¨ á©!û-øLRð|™°ó¹5Ào]&a­BS?8ßµÀFãÅ¢S¥~•óÛ# †ðd¼òÉ©Q½ÇU‚fÀ¦ev‘ßǘÝI˜V»6BbÁÚø’ó#;ÙÚ'¬fŸéÅeþúøM\ØrEK€U2�¥µ2ldnìä>&O´ª 4@#ļ¿•Ýø0ºÿ¨ü†MN-Ì&r˜?™Ô(D¸÷é…ÀåWÓÑ’o0Ìt¦S  ð *uQ'4Ð,fŸ0NcÁâ°Æ4àå’ù¦¿ x°¢&µ3 ¸«jrà´Sê 2.•¤§ÒßË5ÐU‰º–C¾Jý.>\ºc@¤Øº·‘¿û9gh;C+X×âJö™&ö _yÿŽu @ˆS"U¥_þ5Øÿ¨ÿs—S�‚™Bw¥g¦» Â‚šÜ>¿}rðþò"zg(²X*ÐÓêœÜd7ü}þ#àÖ&Ëz¡®/šÉt: ±éáõ¿ë_= 0jк����IEND®B`‚IMAGE 1171 ./arch/floor/inlayed/lightmagent-green-p-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE 8 P~P5Z5*F*CoCO}O!:!äÒäN|N";""<"FpFGqGLxLMzM#=#×À×ç×çèÙè&B&BnBDnD+I+BlB)F)7\7!9!9]9HtHîâîïãï'C'(D(:a:<a<;b;>f>CkC%?%ClC&A&1Q1*G*EnE*H*O|OGrGHsH-L-JuJIvIJvJ-M-LyL.M.M{MN{N 9 0R02U23U34V4ØÁØØÂØÙÃÙàÌàãÑã6Y6åÔå'B'6[6êÜêìßìíàíîáî6\68[8bxb?h?N^N?i?0Q0)G)(C(BmBDlD3T3$>$+H+<O<DpD4U4GpGFqF3V3FrF(E(FsFHrH5V5GtG3X3HuH5W54X44Y4KxK6X6,J,LzL+K+`m`6Z65[57Z7-K-)E)hmh%@%$?$nynoyoz‚zkkv–vŒ‘Œ†˜†˜¥˜£¤£­«­­¬­®­®¶´¶µ¶µ¹µ¹¾º¾Ã¾ÃÊÅÊ:]2ÒÅÒ-N-ÎÈÎ8^8;_;ÚÃÚÏÍÏÜÅÜÜÇÜÔÍÔÝÈÝÕÎÕÞÊÞßËßßÌß;`;áÏáâÏââÐâ.N.=`=åÓå.O.æÖæ.P.çØçèØè=b=éÙééÚéçÜçêÛê=c=êÝêëÞëìÞì<d<>d>>e>?e?/P/hëÛ��2IDATx^mc³æ@Ÿ3¼æ¥mÛ6Ö¶mÛ¶mÛp3“̽©­íO]9©Iˆ½8rü”™%ÈùËÌÆÌî®H¤'*ž}"îчï‹ýõ£{Q¾ëëí‰DDp¸ ÕK;ne½4»"ÝßD1:`ÞyøY‰éXë=ÿñ©UD3­aÌ4ÍÃßßž!bÚâÜ_ÑOlYträÉÍ1yŸ±XßíîÓXJ,a<nÍDéÑ¡‹Ïz‡3³$WöMxVô¹ 6�µR¦8wéîµ³ÇfX^–B€fe¡Äl!%”’"N€nÔ¼—ò¯ÚÀ Œ¶’Rš€ºÜVSQP©‹ $i{yXJØ ÃªÛŒ<Ù Vç Úö6ú/ÃTìô`7M’´¢žÕé5"@«:Cž”¢© efP]úœ Ž˜@K§A.’¬¼u61”âú�sŽ�’Ûþ÷XÂÁ¸ý oKn'7Û«„p&XX ¹ß5ïO­l¶Í)æÎW³ïU•^ßAî‚hRÁÕä–/¤àò ‰@èÇÖ0¹QÆ6m¬¯„¤¸#gN/rL˜®ÃEp×hjÈOâ¿ ,qhŒDEËóÓû§ð—j‰¸Ú58µáü“Z°¯ Q—%‰ñfW"°l–7›�mjg�·­ ­4œÿ €©])­c>×'r[,ƒæ”ÐêØåÉd¥ @ò5—Wu.ýñ����IEND®B`‚IMAGE 1012 ./arch/floor/inlayed/lightmagent-green-p-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ŒPLTE 8 ×À×ïãïäÒäP~PîâîÝÇÝéÚéêÜêëÝëãÑãíáíØÁØÝÈÝÝÉÝÞÊÞßËßáÏáâÐâØÂØäÓäåÕåæÕæçØç×Á×éÛéìßìíàíÙÃÙÚÅÚÛÆÛç×çÚÄÚÛÄÛëÞëÜÇÜÜÈÜÙÂÙîáîàÍàÞÉÞæÖææ×æßÌß$?$èØèèÙèáÎá4U4:b:ãÐãGsGãÒãÛÅÛåÔåßÊßMzM^h^œœœ œŸ¡Ÿ²¨²®­®ª·ªº¶º½¹½Ä½Ä(D((E((F(*G*+I+.M.ÑÊÑ7I7/O/0R02S2ÜÅÜ<M<ÜÆÜ2U2;O;#<#3V3ÞÈÞ@O@7\78]8;_;GXG#=#àÌàßÍß;b;>e>M^MO^OAlAâÐæBlBRaRClCV`VåÓåäÔäDmDEnEFoFGrGçÖç"<"IsIHtHåÚå'='ZkZLyLQvQêÛê&B&èÞèêÝêM{MO}OìÞì(C(fyfkvk‚Š‚Œ‰Œˆˆ8!<��#IDATx^UU“æ: DÕ²Ã33ó,33333ó½|m¹R;s^ÔIŸÈ®Ð»;[‹C…-Í–o³!Ï 2l‰ýq›9 íh [a|@1†2‹l™´+‚a 0{ÙTØwb:"äò2ªÀJ~òº?c :FŸ~ø<±Í2X€¥120è1ݽ¹¤.ìÀ°-*=N…žXL—ÞègŸü|{ºä‰àc*àÙâp>-éçD¯Þ;¡ÿ /щ$(Ÿô-2œrB·7È» è0YŽº[vQd!+|òœà¸ô›¢ƒ•ˆáDK r<r¦(5vŒVëN8ôÓôÓÿC–GÀ\ÂŽ (+èüñùsWôn bŠ ;Ê.C6\Ö/´Ö}%Ä óœ»Š£ ½ÖúÛüm®¢Úfö Òzý mçhÙ1”Ú1�Ÿ™Öïï'2ÏM2ÿèõ´‡¯L …i¢ßöMmÖS@K„ �Û3]#¢#6Uk{U /X üz_â…C@¾"?Ùá„=6´VÇWk9X Ѩ·Q¸*¡v¡3–Å?6;팲Ø~¤×¿Ù :+³K§Sjsf“Aßwys�CÆ+‰‘• RH ’v(w³kÑ×ÐØ†P)?~•×âœéglá5;”rJÑJ¯$ˆ`@{+#,Êf9Y¥†›ô–•¦ëM‚ŸâûN`¾—~%•J @Œ¿¬Z6„to����IEND®B`‚IMAGE 1186 ./arch/floor/inlayed/lightmagent-green-p-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��1PLTE 8 P~PO}O5Z5×À×CoCïãï*I*4Y4!:!6[68_8DmD";"HtHJwJMzMN{N#=#%@%(E(*F*M{M3T3.M."<")G)BkBØÁØ?h?)E))F)7Z7 9 7\79]98^8HsH9_9>d>=e=*G*@j@BjB$?$BnB!9!-M-GqG&A&-N-IvIJvJ.O.LxL0O0+J+0Q0N|NO|O1S12S2¬«¬3X32U2ÙÂÙÛÅÛßÌßåÓååÔåéÛéíàí3W3:`:`m`<b<;c;=b==d=/O/%A%=f=?e??f?>g>@f@?g?>h>@g@/Q/N^NAhA1P1%?%AkA0R0QaQBmBCmCSbS0S02R2CnC'A'DpDEpEFqFErE&B&HrH*H*GtG+H+ItIIuIJuJ2V24V4KvK=P=KwK)@)LyLMyMMzL5V54W4'B'5X5,J,5Y5+K+7Y7SSq{qs}svƒqƒ„ƒ{Ž{ˆŽˆ¤š¤   ”©”©§©,K,°¯°µ­µ¾±¾¼¹¼ÇÂÇÈÆÈËÅË-L-'C'ØÂØ7]7ÙÃÙÚÄÚ9\9ÛÆÛÜÈÜÝÉÝÖÎÖÞÊÞÜÌÜÞËÞ×Ñ×$>$àÍàÛÒÛáÎááÏáâÏâ&@&/N/åÕåç×çèØèèÙèéÚé(F(êÛêêÜêëÞë9`9îâîFWFÃ��,IDATx^}‘c³-1E»“̱KÛ¶ñlÛ¶mÛ¶mþº—¾9SsæË[_vªöJW* œ#"�D (M‡Í²g¶ÿ󑱦�»Í‚¦‘ɼSêdÖ"ó§*•³*w(cþÝ=)¹êÕˆJ®ôÄÄdµMC€w·CUn†éh°®BõöpØ )ÔU‚kP ŠÎyõ¾J£^Á¡VõÁ}x@Kh‚.(м3Àà•Ÿ!C͈ùG‚NØd¸Û óB&ƒs£ÿÐìCŒ¬v¶˜ DÃÈGIÛ¦F³@(É-'Ã?5 â†@ì¨i—ÊGÐq‡~3µ¶„ú¿ïchD¦þŠÐÁ$2µ&[㪠uߊ)¶µÆ¥p,#ºèp®\S’D¢¡¦‰ÆÌ,¥ß\‘Š‚z$<%6Ûœ bŒTWÔ:Ùî]è¼ CYÚê8/)@‡aaL=Óá*o¥]Z;r䋊ÝO¢ˆ[†¾ã4:7kûZÃÀÙ ûòê–Ã.¬Ÿn%}ýH™Më Ñø‹¤0÷Ìùk/o]9·lãø ZøRTÀ–Òì“o,–g¢ÿEr󬃮UØ ¼ØV¸“!DºÉ汃d¼vIc2ï>­à°¿KÜ=$›»"ƒ„!ñÄr}1@â^.pZÑ÷E6?3ú¾’‘!¤vcìO™®>ÂèðoÞSô‹ЧOäñüÓ Ñûv˜ªáŠÏ¢÷‡…—NýÝÿ�yWIj�%z����IEND®B`‚IMAGE 854 ./arch/floor/inlayed/lightmagent-green-p-marble.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE 8 P~P5[5CoCLyLO|O.L.×À×FqF";"N|NAiAïãï*G*IuI$?$*I*JwJ9`9<b<=e=#=#0Q0.N.(D(KxK2S22U23X3)E)7[7àÍàêÜê:_:'>'Q`Qgvgìßì*H*1T1éÚéÀ¼Àµ¶µßÌ߆Œ†ØÔØåÔå3W3éÛé1S1íáí>h>¤¨¤Šîâî>d>ØÂØÙÂÙÙÃÙÚÄÚÛÅÛÜÆÜÞÊÞßÊßßËßàËà=b=àÌàœ‰¢‰áÎááÏáâÐâãÑãäÒääÓ䢥¢åÕåæÕææÖæç×ççØçèÚèDUD#>#?f?ÆÇÆíàíÊÅÊ:M:$>$oD‘���IDATx^uÒÕ¶¤0Ð:q¼Ýݯû¸»»ÿÿ‡LaºïÃÔÃ)Ù«b �#"À†ï» þ B³]€k à6¿8£k€¢2²± Æ9ó ¾K±v½EŠè’˜_'VÈ.oDF„aUÌ^o'R3�…„«ôPï€$q +‘½³–ª°hÏ”`è%GªŠ; ½ ¤ðÀ ä µ  ZôŽ 0×z¼¼Ûñ2…Q¹¸Ôz¹¡!_¥Ö™í¿µ~tJð¢‰n/(I§ÿÍæ•vJ0LçhômØõƒ˜˜ÁM`@e¡>5Ïîhý~¹ý'@#ó@À—úöñÄ‚7{˜•všéŧãñ›OäÄ o³ˆ¤�@Jóøçdóñ¸¸1Xe!¤ße[¦m:Œãq¼)_«Iô8ÉAÆÅˆh?Ž-™ø™ke£<³³ü…åà­ª¸2×\Nm;Š]=h×T@'M šFä'Ä ÕxÔ¯\�ÊéiÈïá³.¿°@­!�cwëëÊ †î !`B¸b%˜[°¹« ¼ßÁ•ÿOY«Uˆ£óÉ mŒ �]TEŽ2†ÏÏßú6dõ‰ŠL£)æ@õ;-ìߺ÷Á5Keèö]Y©^“¸i;‰€Ú»WËØªô|`[0å\XLZì}ù ¨ %¿*šFÏ����IEND®B`‚IMAGE 907 ./arch/floor/inlayed/lightmagent-green-p-marble.122 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��>PLTE 8 ×À×ïãïêÜêäÒäÝÇÝãÑãÛÆÛëÝëíàíîáîîâîéÛéâÐâØÁØìßìÚÄÚ.L.ÜÆÜÜÇÜ.N.ÝÈÝàÍà3X35[5äÓäåÔåæÖæçØçéÚéCoCêÛêP~Pgvgµ¶µíáí×Á×*I*ØÂØèÙèáÎáßÌßÙÃÙç×ç=e=ÚÅÚ(D(ÛÅÛLyLN|N$?$æÕæ'>'v–v¢¥¢èØè7[7ÜÈÜDUDÝÉÝßËß";"ëÞëQ`QàÎà:M:KxKÙÄÙãÒㆌ†ŠàÌàŸ§Ÿ:_:ØÔؤ¨¤âÏâ*H*âÐ廸»À¼À?f?>h>äÔäAiA2S2ÙÂÙçÖç1T1ÚÃÚXfXIuIJwJ2U2^k^$>$êÝê@R@#>#ìÞì*G*‚‰‚0Q0ÞÉÞÞÊÞÞËÞowÏX��IDATx^]Ðå–ã0 `K¶ƒPffî03-33ãû¿À*N=ÍÎýÑÞc}Ç&öÚw¶ Le}žbì(Û+¬®5›çYFÙd(oøökZW«©âôC³ù2¬'0:ØÞg kÍÕÍP½)ÖŸþÛ6�IÓ°îz¸K"«D±PìÍ×S-d"Vmq—÷ZŸï¾ÖcФŠõó-0™†å"Å“ØöÉît΢¼hû°Â�¤ƒaJ�ª<¾jíŸ}}÷ó u¯A /d¬°TPÇ"�p«ý `ÌŽž›K€ÎÆqB•*ÀÛa‚Lí n\ÎmUl·ãWpŠ1`ÍN­¨ a‘‘5ÀÀë V€™¿Ã@‹R�Ä4~' T&KàC·äà2n¸ë1A@-Tú�¹¼† [ظ8Š< W¦¿*äB¨gdHtØø»]¦šP‡ÔöHôËØ“ŒË há¨j0Éuóˆ ÀÕ5ªtHp{`‡ÕO H!Ä¢äÊü ÷q $€€ÿÒ/ub@êA¾æÕ| "…Ḙ(åýË?¡È˜}†\Ï¥D®¾˜c[ÿ0 * ¤P‡ë˪?×ymd�ÌJÇb�r9'Ê£V†Áé<—qµÐs]]!¢ÏÁÔy4§’€Rjðèz¥´ –η/„¨“����IEND®B`‚IMAGE 838 ./arch/floor/inlayed/lightmagent-green-p-marble.123 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE 8 P~PCoCO|O5[5×À×ïãïAiA(D(FqFJwJLyL0Q01S1";"N|N*G*3W39`9?f?>h>.L..N.'>'IuI#=#KxK$?$7[73X3*H*mƒmÀ¼ÀîâîÝÈÝ*I*µ¶µ:_:‰¢‰Ÿ§Ÿ2U2Q`Q=b=ØÁØÚÄÚÛÅÛíàíØÔØáÎáâÐâäÔäéÚéêÜêìßì=e=)E)2S2>d>ÛÆÛÚÅÚlŽl^k^ÜÇÜÜÈÜ@R@ßÌßàÍࢥ¢1T1áÏỸ»äÓä<b<åÔååÕåæÕæçÖççØçÆÇÆêÛêÊÅÊêÝêéÞéëÝë$>$×Á×gvgØÂØE‰Üö��ùIDATx^U’Õ²ä@ C­¦ 3ÏEfXffþÿ?Ù¸¡vG/rY§cwú¾˜·ÄML¬Æ˜ è”ìˆeŒÙR"²uÙ`«PMØ;‰˜™mQΘ  Íh€«÷;H-¹Þª$ÊoD—æòÉŸ¯@“²’@…*MúD´z~¤Wg!8h&à! XDçGúñ/»€ &hÏh½-2)èXß7Ë“…÷#uŸ ÒÏL­SðTàŸ¥è“ñ@“´°>hßzÀ`@D)’˜œâ|ìŠårY €_ÁÈ=P]W\~«óë]‰m>Ù*=1ký´þæÃÅÉ+=w;äQ�ÂÇ:×ÇZëÞDª:ÙæU‚*°èÖ¿.t'‹!Ñ C^Jh}øÎÌ)V<¢d3Ÿ+ ûþWWÆ Ó˜h<�ÜòÃ:Š«³kc^pÇ^« ¸Ý›°9cžrQöO@/�äTç¯mÑí•'Qó–¼°Ï>Þë¼,"»y;.7€ÏÖ‹(}áŸþ±ÅQ`” ä&aN­µ*�UšNJÊ6 ý›mÆq&T“§+ÕP"Ý_—Ã.%Q'ŽýJ‰�l:*²®OÈI)�ªvڑɨb×PžÝߛޤT!|?äÔ§©î˜,B y©pÊF*€%þEÄ"‰4³ ����IEND®B`‚IMAGE 886 ./arch/floor/inlayed/lightmagent-green-p-marble.124 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��/PLTE 8 ×À×ïãïäÒäP~PîâîêÜêâÏâãÑã×Á×éÚéÝÇÝÙÃÙØÁØìÞìäÓäç×çÞÊÞÞËÞßÌßFqFâÐâØÂØv–víáíåÔååÕåæÖæO|OçØçèÙèÚÄÚéÛéêÛêÚÅÚëÝëëÞëîáîìßìíàíÛÆÛÝÉÝLyLÜÈÜßËßÞÉÞ?f?AiA#=#æÕæKxKæ×æ(D(ÜÆÜèØè*G*:M:mƒm2U2†Œ†Ÿ§Ÿ9`9»¸»àÍàáÎáÊÅÊDUD:_:À¼ÀßÊßáÏáCoC*I*IuIãÒãJwJ3W3åÓåÙÂÙ^k^ÚÃÚÙÄÙ2F2.L.ÛÅÛ.N.åÛågvga†a<b<ÝÈÝ>d>$?$‰¢‰2S2¤¨¤£«£àË൶µàÌàQ`Qÿ…��IDATx^…å®ä0 FcŠ0ÌÌt™—™™÷ýŸa㦚ÞùµGªì4G_,3΀#"�¦¦ sá?B] ¥*âP×UÁób! ÏÝ �œDðÐ`„{žÕ§¦éøÕD�ž$Á<["ÑÉO÷©J < Èü û*6+°‚ÇÞŽŒ0Tª‚DbZî±<jÙ"&È=º7p60MX‚Æ4ÀR0õÒÏaÊÈàÊôFØ(¶B¼ƒTÚH…9�ôŠjÅà<;@°g¹x€4¡D;³1LÒrªSê|7ä8ŒÑ„”4¢¢.iˆ¬cö×¥³“uÑ "éјŒg¡»e·!áU}¬…V‚Gj–7ÉOð'%ŠÉuh›5c˜õˆö/Îëa›@Ì«CL`”¬Y-9î+ ^ø¤\,€^ÓŒiϧu‰(ÝM”O…Œ¤7]ú<¦h©žM–ƒãp«éò9ø‹xÝýh-€EMU$2ç¾n¿•?^¿89wÿDH´ìÏ``íN÷ô5cb×?lÚ܈[>@OÌñŽ¿ê›B“q#Ž®´rΫ”œe±ýé@31#á@l°¿çˆK"Á~ ! o´°;ӅĽô;l¯áÃ#Ñ(Äá gT¾˜§OÀŽ…›ïëâÉÙ&›O©¼Û»Œh”O¯Þã?´.w’Ïý����IEND®B`‚IMAGE 304 ./arch/floor/lightmagentamarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE×À×ÝÇÝâÐæäÒäêÜêïãï LäK���ÙIDATxÚ“[nÀ0g»pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/R^ [®˜ø����IEND®B`‚IMAGE 220 ./arch/spell/Bolt/lightning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿhàÿÿÿ��ÿ¯—о���tRNS�@æØf���{IDATxÚ…ÑA A Aµzÿÿæ@`!ŒÆ\cå·ÌB]ó¢äÉòöÌóЪr¹Ò†¾Wž�$] ’V;ÞÈâU'÷/`{I› ªN”oYЙw�E˜@Ïqw¿Š×~(î4Ù W• Pï ð>’¨¹N´Ã����IEND®B`‚IMAGE 232 ./arch/spell/Bolt/lightning.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿhàÿÿÿ��ÿ¯—о���tRNS�@æØf���‡IDATxÚÓAƒ@ CÑüxîæ–ˆˆMpÔÎöƒÆ"ìArœ)�I̤ëyã`=«Shrè>g”#ˆÁªLé¨jÒÜn¿i M`ñä½ à ´ë÷}¹�ÒTIOÄà‡fÀ,ø¶ív!ã]¶€ô±üA™Küýþ(6þÎiU$³Ä����IEND®B`‚IMAGE 211 ./arch/spell/Bolt/lightning.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿhàÿÿÿ��ÿ¯—о���tRNS�@æØf���rIDATxÚíA �! ÓÔÿ¿yc ز§…=:xè$D\>’8ÒA�ë´³f Bµtµºz]"­Q‡»ß pu³ ¦¼‰‡„£^ s€µb?‡¬Y­NQ¦„„ñ†ÍQÚÛw½otd‰Á+X¸üÇÙúÈ·“\ ����IEND®B`‚IMAGE 227 ./arch/spell/Bolt/lightning.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿhàÿÿÿ°Á6���tRNS�@æØf���…IDATxÚÑAÄ0AšþÿŸWŠƒr1°\]1„ 1ªì"{ÿ È\{LM¶)¼SÆM‘ €2ͲÈÕ`DÑ›øZDr~C|ÅÈ ÌË£X"d›€å²©³@1/zýG4§«î‚ oÓ"¡¾_Å)Y‚j ÆXèÛ'TnBŠ����IEND®B`‚IMAGE 216 ./arch/spell/Bolt/lightning.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿhàÿÿÿ��ÿ¯—о���tRNS�@æØf���wIDATxÚ’A1 3Lÿÿæ*òiU-.W&8Ä9O¡œ&•Ÿª/5`K€ °�ÈÔà¸~Ú-îÁô" ý) DL êÉÁ7…ô+B–YvE@+àìÛLûµœO¼MS€ÿ¶Ídšv�,JN3À(úõ¿ÅjÎ;ßdx����IEND®B`‚IMAGE 243 ./arch/spell/Bolt/lightning.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿhàÿÿÿ��ÿ¯—о���tRNS�@æØf���’IDATxÚ“Q À0 B£îþgut?‹)̯Â#Ö ©,�’"&þò2˜9$p 0û›3â‰ÓØb¶Ð&xñz€aܘT;_Àâ~8 ŸÕEðŸ6`k ª—ÈØ4ó¹áÊš&95ÈÝ R½Æº€žËh.—çG·ÿ|!LKî H;ìø<ðRò7Îò÷“NüÝÜI¡fìó����IEND®B`‚IMAGE 203 ./arch/spell/Bolt/lightning.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿhàÿÿÿ°Á6���tRNS�@æØf���mIDATxÚí1À01þÿŸ‹)­• ‘º÷¶s?_A®œ†5vˆ55 ‘™V¼ÅÓ(rBJ5 šjÈEKLJC>i\3§ó»¢·ÁíϬ…<åÍèºðé‹�âp\lÍ~>s޾¼ßÉM����IEND®B`‚IMAGE 237 ./arch/spell/Bolt/lightning.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿhàÿÿÿ��ÿ¯—о���tRNS�@æØf���ŒIDATxÚ…’11Ãâÿo¾9vÒ%@E¡±‰Pb•œ�Ü48f> è¥b 2ân%‘Ú"u=·èKAž­!ÌoÑz©Î‰À°dš'±Ø‹ó–è‘Èÿ’k³Ü.È…°€Ó,ÜŸåG`Þ¢*{ žÅM S\ÝlÌ„ B,¹¹,. ÄFü�ž­FS¨ò����IEND®B`‚IMAGE 181 ./arch/weapon/bow/lightning_bow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���I@ø›���tRNS�@æØf���ZIDATxÚåÁ À Ãlþÿ£G‚ÛÝ·Àd˜Ðƒë³p¿ŸÂ\Ù •Áö1ŒïEB`Ñ £ØØÇ ß× æË…ƒ±À¾pþ ú3‘Ù¯Uéæ=`ýŒ)¹�õËX@Ï����IEND®B`‚IMAGE 413 ./arch/monster/angel/liteangel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf��*IDATxÚe‘rC!D—î—û¸È§2IF÷ÁŽ7(ÀÆP!Dƒfã B—ÍøÃ„: €É©�ƒØv‘f$; .¬ÁIbb 5QC$2½î”·¢ô²¸ÌÀ¡x¶Es€´½÷$üWVk¶àùGw«µÞ<ÔÄ<@³@C¿¦@FXè{š@éT9�Õ¡oÛ½‡÷Êû‹ý,”‡Šœ;TÏ'zlˆße${o2’Bù/E^À³Ý?«¤“^@*áŸfl:Ī=K�¥¯ê.¿'VßS¬NÒ$‰ŸÚ“„CU…¶y/g qˆ3™ËJ½½¦gN(‡Ô°â>&•Ò>€Å0€´ÈüÔ Åª€òè Ž+°hiH¼r_óíQºÅýâ}̼þ£)wÖ’½����IEND®B`‚IMAGE 392 ./arch/monster/angel/liteangel.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf��IDATxÚ…’ŽÃ0¼…ÿ?ø¼„Ûêt£&v¼SŒœ\b×ƒŠ€×EŒc¢Z‚¦ ZÚ‚„¥páõä«X K­Û솦,Ö„ô|Ö0[HxÜ�ëòv#b[¬ïŸìÜ=`xžaW£ˆW¸¬gØâr ¬0]Ý##ž{h4…�Ü~–NKÁ™{NçÑ@z­ÃMÇôi›Þç4†·âd8®2k·õ!ô.Ý&ôM -‘jaz¨Ì§W;b3®K*]áCبìüï !†Î F„+giÁæyž¯ÐB¡™WÙœB΢„Ìu„žÍöÌÏk4ºC;„ù&ÖÿBã`òÿ¶êm’ia@vXÌÿ êë(x«����IEND®B`‚IMAGE 400 ./arch/monster/angel/liteangel.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf��IDATxÚm’ŽÄ DuŽ•ÿÿàC(Ö¬;MceÞ4m„¶-KÁvHä)J9˜êFø™fj¨ý²�; :dÌÀL"5Þo¸0Ú4¡G)M=Cõ¥SVÝKX«ÅkP±9gWÆv.5•!–£è0lƒ¥ Š�„U4¨Y!è´ÏŒN%6]Ê‚›¹”)n-`ãÓŸœ®*—WØ|H o3åÌÎ%_–ý�´êP@½¸ òË”�’8Ɯù7Zá<J Œ ÌêpÌH»ÃFQaï%=–¯ˆhúß� Úñ $¶¨S� .±Ò®~Ûª¨#€ú#ï~ Ãý°Wò ÀAð×ç_5îáß-þßÓä³Õ����IEND®B`‚IMAGE 404 ./arch/monster/angel/liteangel.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿B½Æˆ���tRNS�@æØf��!IDATxÚe‘Ä Cµ–ãèÿðÉLÝšE3yÒn´K2Ø )ŸïR;ä´¡>7vÒÀ² ±5“Ü} ŠÑ¼Žþ·€‰;€ ³/qu`O‹Ü$úä¿!ç"Ü7Í­;5é±¥ R€ÊŠ0rÕæa€òÄ/€¦”Rhžôl÷5rÏ È ¨3é ³e"‘Rä3¸<t"¡ˆÊXrÜÕê/ñ ™@A‘Ò9‹USÝøv¨%.xluJzŸ­Ž•NwÚ}V¦)–Ï·ˆ•×(l\DÕ±2ôÿ)èÄÓ¢Fy|ŠÀ-C×g˜Oðî€)î¿Á=³Ô8®ú° ð?PußÛÈ ‹èþÎÖý¨­¿øqã ¸é´xŠÐAÔñ¢ÅgN²K����IEND®B`‚IMAGE 406 ./arch/monster/chaos/liv_chaos.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4Vÿ��c2�1�ùqÿ�ÿ���þ¿Ê¿¿¿��ÿÝT¨+���tRNS�@æØf�� IDATxÚSÑrà #¸üÿÿÎ’íè®íÃt�’e;´c 7ïÐÙÿÖ+wN:#üôÆÌ±õO‡$1šã$ã$ñ®ì•Ã]é¬r ÁMÆÐJ`‚¶¦cTª;Æ•�9·S £Yð§‘ñU—caá’XwAƒ+ÙvïÞ¡Mƒ *ˆ&ò8{'OÜsm.ª8°à˜‚˜k®k&_þ)`§{]{ž+ Øç( ͽh’u†(ð\3ìã7™ßŽ’DÐiÜW}ÅG`€+Û¢sÝ‹ônUW‘tå‹éå ;SÛ»U€¿â]¹=ˆçºõcóLÇÒU!êÀÀ›l[†(o ySJ ûWAŸès}E˜¶ð»BeñÈÀÿÖþ����IEND®B`‚IMAGE 367 ./arch/monster/chaos/liv_chaos.222 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��ÿ�ÿ���þ¿Ê¿¿¿��ÿy 1“���tRNS�@æØf��IDATxÚµ“AnÅ Cœ|ÿœæoþ¦ª%$ Ëã!?ÿà;A¢´kºQb,¼ �²á9É,TSK‹í£B¹@‡UΟs¹w#À†í!Òà~Ú–Æ2¯¶B<Ñzˆj´æ-ñt¼{ÀÃp³I> úA»®Ã*IÌÜLJËçmcG‚û9-ö%^‚›wçõØôŠ PD»ž‹¤¦:â¤W³)cÙyMóíh§§¸V”€+9)¥o É@~ÂÈ6X&‘LLS™ÈSž]:-…ÔY ¥¦Œ8*‹°,,ÔQ€nšU²¯ \!Âø IøA ~È ÀÍ3ú ����IEND®B`‚IMAGE 374 ./arch/monster/chaos/liv_chaos.333 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��c2ÿ�ÿ���þ¿Ê¿¿¿��ÿ7ëM���tRNS�@æØf��IDATxÚ“Qà CW<R|ÿ › ÁèÇ,Q*òBœ¨}}�B[x?1®G€=Ôã’‰çz2¤I@œ@¨º4�Ýsd¯{œñ(ºâˆÑïÆLŸÃ—§,°«URóp’÷,o�¥ÒLxnÞݳ^Aëºõ ñ³—üæPcéÀHÊ¬î¯¨í¾†bo¤ÔËÄ(;ðt¢´zUºÆë�l°e=–Nl¢Uö¶ïœÃí9ü–�rµ\ uØ—Z˜4 S/“ô ¨e#"ÅrUAUÏ{RëWêsûG›c¸|p!TtåcOŠy“ç8Þë?CGòù›ü«S� lIœ&ú����IEND®B`‚IMAGE 370 ./arch/monster/chaos/liv_chaos.444 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¯/_ÿ��c2ÿ�ÿ���þ¿Ê¿¿¿��ÿ¼{���tRNS�@æØf���ÿIDATxÚ•Rn!{7;þÿƒg+á¹é–¬wjBŠÈkÁ�ìõ+ŒøS I…3y†0\sQBAÍ…_u"÷Sã"t^2$Öy­£éµGç—UÄð°@†K0ò1á}n°r“ T4Dsîê-Xñô¦¦r•@ïdY´ €YËBÜâÛà><ëØ3@ÞâÃòÕÁ|ƒÖ}LAoºˆø}T€p÷þL—UF)teEd?º,hkûC‹¢ EÈ n¹Í£é„<ù— Z. „(AºU1ân3!cû,WàäaÛ|þ˜‰mN.C™Óšå ûpPÍ»æø<gð„:òo|0m y² w ����IEND®B`‚IMAGE 202 ./arch/flesh/generic/liver.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���œï÷µ1cÿ��£,ÊÖ���tRNSÿ�å·0J���kIDATxÚíÒA€ DÑRïgeý&ÆHI`1¯b}ÔA´ê€øŠŒÔ©SY¦ö€Ýmé> xná€tÌ&øò;ŒLåà©i–ƒl‚~„ ?�h3hØ'è”àú¤ γ«”¨TÚ´?����IEND®B`‚IMAGE 269 ./arch/weapon/chained/lmornstar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8àààG$!!! R-���@@@d3‚B'¿¿¿Æi6���tRNS�@æØf���‘IDATxÚÎÁŽB1 CѤf6Ìÿÿ.V·Õ3ˆ»ªt©õ{dvJÌ4£¯Õÿ XqÀû“m×µ¿´+øTuò*¢—”]ÕÉ÷ ¹e¯)E7wôšO^Šnîè…Qô©ì5@rδÀp?r¸tØ-\Ý{€õ·xún.Ü i»‡ïØéOw@íÈígS_õ�b„³‹Ô¨����IEND®B`‚IMAGE 222 ./arch/food/loaf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœï÷���¥R)Ök÷çŒ'NìW���tRNS�@æØf���}IDATxÚÕ’A À@ÄÖ‰ÿsÙRÕ^Ûñ˜“ëgoÀéÁÀ•jcæ±Y¡ YV#AâKÜPDµRäSÑA´B�«dÇ\(‹Àm›*u,ØIócÁ‡r.DS`,Ø€©`…Rh s ù+^^bþíõµ]9èF@+\S����IEND®B`‚IMAGE 177 ./arch/skills/Skill_Tools/lockpicks.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���½½½äÞ7���tRNS�@æØf���VIDATxÚÝÐA À0 Á®þÿè–RöTÙ÷‚3”ëÀØ ÓÞþ{w^ÀÓ™оbVl¢å$| åLà¯-ì*‚a‡ í°Ú§/¢,â´º �{;ºS����IEND®B`‚IMAGE 553 ./arch/monster/misc/lokanth/lokanth.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���`PLTEÆÎ÷�B��J��Z�k1Œ!J¥B�!�)„!!{1Œ)!sR­JR¥B���R�sZ­J�)�c�9Œ)R­B�1�)k�9�1kk�ZµJ9”)J¥99k9{/˜Ñ���tRNS�@æØf��wIDATx^•’׎ãP@éÜæš63Ûþÿ/—«$òl?,¶…¥s» ‚x#:æº_ pO©6! Nf8 §ääaY–·|]§iY•ˆR­;ìÓI‹Ø âžì×ðù£6]$%3)C³áòç÷ W,‰R"#³A—›lW½<¸Ä7¨Ø?S¸š)…A‘lv¹èíŸÔ˜= Î,Œ“.uã.#‘$3"3QlÐE%„ñ*–©æ¦ÞyrG5†‘HeHÔr�Uà‡�+`‚§ü•S>•g‹ûý âˆ9É¥ñ[†ñTNÏEPØ9›)Ûlèp‚Ó'oG°’X‘r±áÛ*Cp)Vû ÅJï ÄÀümUò#xx¶œï%A7aüÈ¥ÍË0ÿìüå*}µ.HÑúöš¤<xiç=F'±ÞaY–½€ãUŠÝ;$k;a¤ÊjГ¶óþ¦G„еÿ�ó›!ãŒÂžYà?â/€£JÇß����IEND®B`‚IMAGE 533 ./arch/monster/misc/lokanth/lokanth.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���]PLTEÆÎ÷�!�1Œ!�J�J¥Bk)„!�Z�R­J�B�!s1Œ)R¥B!{���)��R�Z­JsR­Bc��1�)k1k�9�9Œ)9”)k�9{9kJ¥9œ/ê���tRNS�@æØf��fIDATx^•’‡Š#1 @Õå:=[®ýÿgžÌfIÈ$§‘1ø=I0œƒ}ä¿‚™c½¤Àˆ—àþJnV^w€àœx{=Ùñ…‘G¶u]Ÿòy^–Eu&f¶RN—ƒªJS]W“?íýG­íj&¢µ%iû¯ßœ¨‰)±±°H£õíŽçY•ö+×Xt§;!gƒc“-NÖrã¨ÉÝ1 UnBF%õðXM„Y„6‚~sÌ$!L•Î¥'R@%¿ 0Cab&mÆ©+ÀRo#8¾œs¤Öv a:ê±¾é�>ånº'o=u@8àx÷ïCô.B.›è(rx½Í`˜YÅòĽÊv=b¸üP)ã¦Uêàð L½¦(ÿÿ9À£€‹’ AÛöãékÑúÅ+•gY%} 5}žùtÑ*£Ã4ÞÓYÀ‰‹“”ÑÁ$ ŒÊ %D7z2 ÇéyŽP®{äÄ_Eåü9K����IEND®B`‚IMAGE 553 ./arch/monster/misc/lokanth/lokanth.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���`PLTEÆÎ÷�B��J��Z�k1Œ!J¥B�!�)„!!{1Œ)!sR­JR¥B���R�sZ­J�)�c�9Œ)R­B�1�)k�9�1kk�ZµJ9”)J¥99k9{/˜Ñ���tRNS�@æØf��wIDATx^•’׎ãP@éÜæš63Ûþÿ/—«$òl?,¶…¥s» ‚x#:æº_ pO©6! Nf8 §ääaY–·|]§iY•ˆR­;ìÓI‹Ø âžì×ðù£6]$%3)C³áòç÷ W,‰R"#³A—›lW½<¸Ä7¨Ø?S¸š)…A‘lv¹èíŸÔ˜= Î,Œ“.uã.#‘$3"3QlÐE%„ñ*–©æ¦ÞyrG5†‘HeHÔr�Uà‡�+`‚§ü•S>•g‹ûý âˆ9É¥ñ[†ñTNÏEPØ9›)Ûlèp‚Ó'oG°’X‘r±áÛ*Cp)Vû ÅJï ÄÀümUò#xx¶œï%A7aüÈ¥ÍË0ÿìüå*}µ.HÑúöš¤<xiç=F'±ÞaY–½€ãUŠÝ;$k;a¤ÊjГ¶óþ¦G„еÿ�ó›!ãŒÂžYà?â/€£JÇß����IEND®B`‚IMAGE 533 ./arch/monster/misc/lokanth/lokanth.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���]PLTEÆÎ÷�!�1Œ!�J�J¥Bk)„!�Z�R­J�B�!s1Œ)R¥B!{���)��R�Z­JsR­Bc��1�)k1k�9�9Œ)9”)k�9{9kJ¥9œ/ê���tRNS�@æØf��fIDATx^•’‡Š#1 @Õå:=[®ýÿgžÌfIÈ$§‘1ø=I0œƒ}ä¿‚™c½¤Àˆ—àþJnV^w€àœx{=Ùñ…‘G¶u]Ÿòy^–Eu&f¶RN—ƒªJS]W“?íýG­íj&¢µ%iû¯ßœ¨‰)±±°H£õíŽçY•ö+×Xt§;!gƒc“-NÖrã¨ÉÝ1 UnBF%õðXM„Y„6‚~sÌ$!L•Î¥'R@%¿ 0Cab&mÆ©+ÀRo#8¾œs¤Öv a:ê±¾é�>ånº'o=u@8àx÷ïCô.B.›è(rx½Í`˜YÅòĽÊv=b¸üP)ã¦Uêàð L½¦(ÿÿ9À£€‹’ AÛöãékÑúÅ+•gY%} 5}žùtÑ*£Ã4ÞÓYÀ‰‹“”ÑÁ$ ŒÊ %D7z2 ÇéyŽP®{äÄ_Eåü9K����IEND®B`‚IMAGE 205 ./arch/weapon/bow/longbow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$���ï§_d3‚B'¬›wÇ���tRNS�@æØf���fIDATxÚ¥Ï1�! ÁüÿÉ'V´Ø[¥r:y0Æé;j .b‡™ÒU`æ„\dIFÔý.:‰•À‰N‚ ¿Àu*'�oà • ‚N�‚P9°`E�¼ûÍ0]Û‹K����IEND®B`‚IMAGE 388 ./arch/transport/longship.x11 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������G$d3‚��‚B' R-²""Áq8LÆ€#���tRNS�@æØf��IDATxÚµ’ÑnÄ ã›ýÿ/î²'%x¸ŠvN–¢K<2J®¯ðëˆs…�<T‰úÍ/gÓÉ ªç€ƒ›Žúít@ûå�„ b€ÿý�_ðU�3é6`쯰9°ôIÝÿB˜˜bZ0ãP‚ˆ<Uv¤9Du Ù1õÓ—÷ÕqN1±z¡:²^²? ôÁúÍ1}@ó~­ÈGˆù¤À‚E`*A’‚Rø�KïN�¢°Þ‚�6÷Ø$é¿X ”ð�öàO@˜Õj6 žþ#˜úÜåt®CÁµ K¼p—»œõÅP"-¾O’§ß’ù±µ¶‹‚§¾ÒõÅþð+Ñ2~!7nA–¿[®ÿäs8 u'DD����IEND®B`‚IMAGE 240 ./arch/wall/longtable/longtable_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���†IDATxÚÕ‘Ñ À EÛ–úÿ¼+ ë¡—]Âͼ³†KJp!Iõ ÃdbD"Mh&ƒô„µA.EO‡3ðødCK@ýÞ1(ßxLõŽÐ|H,V*¬?~Yù&¼ v|ks¾¨Mañt‹ZÙð|µh%<ÒØéëÿ ·¬Þy¹~1¬EWK����IEND®B`‚IMAGE 251 ./arch/wall/longtable/longtable_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���‘IDATxÚÕ‘K€ Cý�¹ÿUì$`DÇ¥™nJ^ø”éP¥Rr­T[쎀pK00Ë2 f¥Üˆx䀂*ПJ4ñè/ºƒâ�½B>hQ(~5°— Á&i2€Á‡r?O4ÆñwgbØg .É#>>óV°ºœ×‡³ÕÊ‹ÿ“ Ô«ó• mƒ a–Ÿÿ����IEND®B`‚IMAGE 244 ./arch/wall/longtable/longtable_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���ŠIDATxÚÍ‘ÍÀ ƒ÷øþo¼’ŠË<¬.¥ù˜pt5¥a¡Ê/,<°awÏdÃÐaÙÐN€¶„çñkbþZ1$’X„±U^¦>_ð×±°YžaurË,�­ílÛÖpâkç,¶•†[h ó:Jß›yþÿ�Š7 óÃß^š����IEND®B`‚IMAGE 276 ./arch/wall/longtable/longtable_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���ªIDATxÚÍQ[Ã0 ê6Cîãåa¡(Õ>‡’*5ìäJ4¶Z‡ Xߨ‹o³H±à& ûƒŠWÉ—NO‹Íª ` A�¨‡ÁÊcñïêÁÜéÍŽœÉ[„ui‚Yî­¯™¯¬!®zqa ¨&/Ôô…�fòµ“GˆØõÑ7ÒÞ#øYpÄ-øü“C=ø%xå™ÿ{ý;ï•/™zDcë����IEND®B`‚IMAGE 265 ./arch/wall/longtable/longtable_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEp�G$ŠZ,¦h!®r$¸x'���¾·OL���tRNS�@æØf���¢IDATxÚ•’ Ä0CÛÓæÿ?ù6¨<P»Ûe&4±Ž µ@«èë ÁײûËAô¥ø¹‚³2!´Mik'Bt­ñ ù!…S‰ÀÕ7¶úBNŒ5…tZ¾uÔþcÔp¬Êìß×DÈáÁ¤R0Æ6E”=®œS'“ nR M&Iõ+ÇÀ Áhu+GF˜e'iùy£x‘B0´ù œ‚˜_…ÚFµn_����IEND®B`‚IMAGE 264 ./arch/wall/longtable/longtable_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEp�G$ŠZ,¦h!®r$¸x'���¾·OL���tRNS�@æØf���¡IDATx^]± 1 ¿ò�)2B6КÀºÞßxÿBx ±ÁêJ&¯ß0ñÀ`] , ðl4žÒ�"Á؇eœ–»-¹,Áxm@.o @î¸?4 8x]KgA:JG²Š/5à°˜²àg|þ–*ˆX:\/èÆ€)%xãeé Å(`t…Ù:4`¦«#ã0˲êŠÀd¡Sb "%����IEND®B`‚IMAGE 295 ./arch/wall/longtable/longtable_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���½IDATx^UбmC1 „awé³DÈ ‰&x¼ xí ×B°|ê>ð·GÞêÈ?p¤¡�tÁ¥Ôw¿nJvÐ ?˜ˆ(ü\ûh¼Ëc' g8òÑø(p&“ ¨ßTî] LxÅ5?•÷�€ä€@�—¾°e|TÄBÇÙØÄ®@"=+ 7¿TPRõðû9cT `Úà~›‹-–7 ³æbä´6Ì|5ôÅ–Ûð0JÔ0'T‚þ�³~¤Xsº����IEND®B`‚IMAGE 290 ./arch/wall/longtable/longtable_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���¸IDATx^]‘±ƒ0 EéÜÓd„ ÂXX¯&—BëÇþŠN Ï<}K,ý)Ð0gƒ6ÇÀ tÜz%ÀpjFÜ”rW>“²WŒnõ’RÖ�†e ” 4jëÆ3@Ç€! ÀL)‡bQÕ}¾)Ó,(9ÆWÕ÷ ¸)›+â>¾9»e榚¢Í±9\Ä¿)�ß×¹1 Òå]ʱ\+#Ù\ ¬×ÖI�z“’Ó8 ôR92e€Õ«¢bËá$S����IEND®B`‚IMAGE 226 ./arch/wall/longtable/longtable_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���xIDATxÚÕ’Á€ C§–òÿìVœ�»Ø ØiúR£ÕÌž½P }ùúRd!Ðâ…ë. YR #¿:$µÑJ"ppS-ˆÊm¡/ƒØ\jÑ÷,Äù§}ÖªvH°©zÝÃÎÉáùŸäå“É.Û>‰g����IEND®B`‚IMAGE 268 ./arch/wall/longtable/longtable_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���¢IDATxÚÕ‘Qà C»ÍÏÜÿÆÛhM•ò?« B^lUlí-›úµí#‘½*['¼`H×,"°­ «û‚!ó]"X˜8i0s€¬_�…!}l¸ÎX€‹dÕ¿èö`ОFD,ÎC" ê5{¡â0+ >Öî)Æ›ôÊ&Àý2¢�m¡¼îÕûÛz>jgÊr³ìÿAêT³›7.²y¹tp����IEND®B`‚IMAGE 231 ./arch/wall/longtable/longtable_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���}IDATxÚÍPA„0«.ÐÿÿxCÃÈÁC.Œt’¦k ¬Ð?¸ Ë/ tŽÀ›°0ʧ®•ò)¸%°Hñ<ûÑ£A›€Ž¤ |Óð²FRx<)Peä̯‰T³l@¥ˆṲ́Øë' öuc×è‰üþyæÍÞ“?¯m yò¤����IEND®B`‚IMAGE 234 ./arch/wall/longtable/longtable_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���€IDATxÚÍOËÀ r[ÅÿÿãmÖÖôÒð>¨d¬Àü€úês‚Åiàf€¸Šœ° syéZ(c@¼ÁBâúûÖsƒ4!mJ!ùø7‡§áPxR°Âhzy5X¸ši!"âГbWZac'O‰ì”÷¿Hžìݹ �EÆ‘@é����IEND®B`‚IMAGE 289 ./arch/wall/longtable/longtable_C.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���·IDATx^mŽ»„@ CÉȯ‰+€pXXŠ!¢ý/ìgæ´i¬7o:‡ìÓ¤!ÿ CN·0ùxA±Ì&'ØœÜü dÝ„ú â.VO Ñ{:1æC´àzšdu²†“‘ƒG4±â@} @…΃2I‘€‡q^‘(¼ŒeYÎGÓ¢^€ureÎI¦G™HÖ …pÿ,æÏ©7µ0ÊêÅñ}¡`+BªÐyODaü�Êo´ù™<ž����IEND®B`‚IMAGE 284 ./arch/wall/longtable/longtable_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���²IDATx^P»Ã@sç>Kd�ÏpLàcPmW·~øÜã^â&zªôlÃ�XAÀµm�ÔÉ�K $NVúÙ;þÓÒ¸·§…Å ]B1!J bª1„¯ÂÍ ®P<6δœv Hƒk¢P-QÄÖæùÏPüdÎ=†áë¸ã8Zc.fا¥„{ÔŸK`Éòö— ȯ—ó”–û=æ!Ð8?3.VËÿ³T}r ����IEND®B`‚IMAGE 271 ./arch/wall/longtable/longtable_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���¥IDATx^± Ã0 Õ¹Ï@3ˆð9ùµZ?” (€ÓèÁêÀÕþXácÿ�a¡A‰0x@7MÑLÒU6ÛP 8­ŠÃ”"Y2øNÅFÅZZ „bCE#Q§îTzk½—Zk'ƒtšóSç…yçG)G§EÞ�gÉ]·’Œ ˜O毤xZ 0&»•ë¿­l6ÍoåLð«|Ž^¼°çh�����IEND®B`‚IMAGE 273 ./arch/wall/longtable/longtable_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���G$ŠZ,›d/¦h!®r$¸x'���52T���tRNS�@æØf���§IDATx^±1 •}þM¸�Õ VÀeäÆwp ö½ggÀND0p4€ÚÔàž9¿æ ¢¼hU,ø†âP#L®sĆR°JÐÀËÉÚª$Âi¦R w*qUbÈ  ¢UÌ“¾QùýäÞû$‹LFòÙß4j…©‹Öþ&£´<šæ\Šo¹žñ/@ZʺÁº·¥œUrY7Â[Ê!ð©¼�ÈO»\¢Ó°×����IEND®B`‚IMAGE 201 ./arch/spell/Bullet/loose_magic.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���qIDATxÚ­’ À0ÄÎÿztÐ…›Rh`´hjÝœîP vµ–SÁÙÒÒ³ð®&Ûý´É"§÷Øó`U“ ,HýSXí¡>Œ‚¿y@ü]VØåèçmøù,0è8R?…B>pUàfF ùW˜ ê<­UZ­(œ����IEND®B`‚IMAGE 212 ./arch/spell/Bullet/loose_magic.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���|IDATx^5Ì;Â0ÐA4Hn)|H)|,ZK 7€kP%Çq¹+QËÑk>Ík惴Wüx=ó’Š69씫dèÊìÐd6ÃCÁe99\YqNE1ŒÍ¯èÖŒX.€mQaFƒvvS½yz7$òTà 1c”ôo¶sUi­Ïü����IEND®B`‚IMAGE 215 ./arch/spell/Bullet/loose_magic.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATx^5Ç1 1EѶ´鲎aŠl)à w`áB§°°t Ó¥3Bš?$üçƒÍá^KüóÕrkŠ]yG %‡dT« Ÿ™³á8 H¾:}"VJ³Õ¸± ºÁù.‰ú0žÍðg—@VvµW¡ëL†NË‘ŸcH¢™¶*����IEND®B`‚IMAGE 211 ./arch/spell/Bullet/loose_magic.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���{IDATx^MÊ!Â@áßaH¹'!áP•$»8WàUWÙ# ×±ñ ݼá%5˜OLF`ù™`·Lƒ¾ã2j@9^äÁfô$ƒ³ kk9°[CõN§ê\µMýü§‹ìÈöÁ|xš:ú· SŠÅR“ᬔñ•HiVQù0½����IEND®B`‚IMAGE 619 ./arch/monster/humanoid/lord_e.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÕPLTE÷Þ÷„��Æs9)9„!1k¥R)!1sï¥Z���)Z)9”)Bœ)B¥11kc1!!R!)Z!)c΄99!R!!Z)B”��„!Z)J½)RÆ)RçJ19s1RÎ1ZÞ9c÷JsïÆ��!B½!BÆ))c!RÿÖ�!9„)B­)Jµ)JÆ!1{!Bµ!!!kŒ÷BZ!B­Rs÷R{÷)9œ!9Œ!9”„k�„œ÷!9œ)RÎ)J¥B!9µ!)k)9ŒBsç1ZÎ1)JÖ!JçZ{÷N���tRNS�@æØf��DIDATx^µŽÕnì@Ý=hÆef2Ã…ÿÿ¤ŒwµIÜ^EÊCN?V©f¬_ÙÍÌÜ·<_è‚1# *h© µª©š&‡ 5¢R{$¦ �@B�\HÔ727@ @óø¼$¤{‘UØ®;¸=¦Bš®Ï2é±mdÙô©€¶Ç¤cnåþõæÍÖú D<søØ»÷ܽîA(ÈêñµÆ®<mXDÐJ¤œE›ùè…T@ç¼±‘ãA¹Ò†ÃQ`î(�hÀæüÄ60Ø J0Kë©Ì.åÂý€„ oÛžÛœ»WÍ%@h�§ëLÚ¬ñÚ–Vy£ºòzoF?ˆ‹‰R9§‰ ª-L01/ÐEx²k‰$«¼Ðöjâ¡ÿ©úe…~Xpéâ/ÙJ¥Ò¡œÚ±õƒ½VQÑÝÎÃ����IEND®B`‚IMAGE 614 ./arch/monster/humanoid/lord_e.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÕPLTE÷Þ÷„��ï¥ZÆs9!1k)9„!1s¥R)!R)Z)9”)Bœ)B¥11kc1!!R9΄9!)Z���!)c!!Z!Z)B”J!!!)B­)Jµ)J½)JÆ)RÆ)Rç!R19s1RÎ1ZÞJsï!1{kŒ÷!9„!Bµ!B½!BÆ))c��„ÿÖ�Æ��1B)9Œ!9Œ1ZÎ)9œ9c÷Bsç!9”Rs÷R{÷Z{÷!9œ!9µ!B­„k�„œ÷)J¥!)kBZ)JÖ!Jç)RÎçòN$���tRNS�@æØf��?IDATx^µÕn1Ewf Ëfæ”™ñÿ?©NR)]ï6Rzý2Ò9:’ÙãJ½ƒ|³HöçJKèBRÌ“ý…K\&‡"Ä_� IRB±Ð­Ãf’”wS ”§¢^ÝÚã뜚üD¸|[éŸÆº`…£Ó¶h9ïn£?¼Ð²\ÎL›Íí¹ó9iwnsq0Ëé=Ÿuæs®ô‚D§“Ùˆ·¦þ‹Ž»¬ó™íB„¤ „�5_½šïƒd–c¢ø«¥ ¿ô€±V<,‡Â<uçC ˆY�Uëè¥Ê˜sÚn�P– FÝ‘)¬gÞ¼�¬\@R…5+-wp¦ô‚€$5!ª@®° Ür ˆ"и—.�v…TA_àÅßW«+Ïo¯zy^qõ¥?²¥R©§sÝN?ì †X”ð±k¨����IEND®B`‚IMAGE 178 ./arch/armour/boots/low_boots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'”%5µ���tRNS�@æØf���NIDATxÚåÎ1€PDA÷ÞÿÊ–[ÀL|Õ¸~Š%PŒ$A± @1$PŒ ˜ nÛ‹QlÜÛ…£øêÀ9ŠÏ£˜‘(–Pü¯„t)@ ����IEND®B`‚IMAGE 165 ./arch/weapon/misc/lspear.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaÁq8ààà���@@@‚B'¿¿¿2mÞÌ���tRNS�@æØf���5IDATxÚíɱ� °¢‚òÿÃrA;ê@Öà©âgÒ®wúÃØ#Ž¥Ó_¡ýýŸ>¢žù¡ø‹-Â����IEND®B`‚IMAGE 157 ./arch/inorganic/lstone.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿÿ�ÿ����‡j>���tRNS�@æØf���?IDATWc` %°ÿ�eÜZ¡ù³VC„̳Ví3îFÎZ f|¯ZaØÞÍ‚0ø¿‡×@´ý½ûªÿÿº�"\ÁHÚh����IEND®B`‚IMAGE 184 ./arch/weapon/sword/lsword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà R-���d3¿¿¿_èÒ���tRNS�@æØf���NIDATxÚíÎ1€0 Ac²äÿ?FX´ÞTH)Øv®¸ø6À=~òûŽ˜?†y ÔƒT¯Á\ü§j¬èüâ­ó1ä?îa^‘îÁL |àÝ]³€ÅN¡����IEND®B`‚IMAGE 217 ./arch/misc/Container/luggage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi R-���ÿ×�7ªû���tRNS�@æØf���xIDATxÚå‘A À ­ëÿßÜMIk6„ž W3í;`…ÖÊ4ÀÍ‚( W¢€Gˆ)_±sÜ0¹ã °Áié Q0Ã+–}…í+è+<Q!· P.Ä O½à gœ™^JÄ ¤>S~kÓ‡†M'i,iÿákÁ‚·gK����IEND®B`‚IMAGE 212 ./arch/misc/Container/luggage.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi R-���ÿ×�7ªû���tRNS�@æØf���sIDATxÚå‘Q À0Cuñþg^-ùˆN(ìoìµ°ß ´ö!0¡s‡?Ì*à"Ô\k%<D© äZ;Ó*¤ÁIfžT8•L¿QÀ @@ACÜ9àǽ DÒ+A™;ÞaÓÿ/¯u¸Ãá& 3ön¬N£BÖ����IEND®B`‚IMAGE 207 ./arch/misc/Container/luggage.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiðæŒ���ÿ×�ö˜P ���tRNS�@æØf���nIDATxÚå‘Á€ CWËÿ³{Xq ‰G}(ì%,#¾;jÄÖzËòÀ¸ÖDë`\ÜÆÁL#•*¤¡Jfаëé;yc ƒt,˜�¨  XQÒ+Aô‚9taÃÿ››97“ öÄ8Ü!ÈJÍ3����IEND®B`‚IMAGE 187 ./arch/misc/Container/luggage.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒi���ÿ×�K&Øí���tRNS�@æØf���]IDATxÚå‘A À0ãúÿ?·UhY 9gÈÁÅ! ®£ý0|†îð/x d¦êUÝiç‡xüA&…9ˆDA- €ðNZý ShPm À pD¡ÀsÊî‚Ù$Ï:‡ ¨¸9'}Ï����IEND®B`‚IMAGE 181 ./arch/misc/Container/luggage.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒi���ÿ×�K&Øí���tRNS�@æØf���WIDATxÚí‘Q €Pu½ÿƒ…ã“„~k¾„dQûɨ¹ï(åîÏÆ,ôä ŠP!‚Bí)QÐ0@¸{^¹{˜^`‰¾KÃLÃ%M=ö±bx4é¿����IEND®B`‚IMAGE 187 ./arch/misc/Container/luggage.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒi���ÿ×�K&Øí���tRNS�@æØf���]IDATxÚå‘A À0ãúÿ?·UhY 9gÈÁÅ! ®£ý0|†îð/x d¦êUÝiç‡xüA&…9ˆDA- €ðNZý ShPm À pD¡ÀsÊî‚Ù$Ï:‡ ¨¸9'}Ï����IEND®B`‚IMAGE 203 ./arch/misc/Container/luggage.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒi���ÿ×�K&Øí���tRNS�@æØf���mIDATxÚå‘Q �!Du¼ÿ×Ä™VúÜ}Mø 1û˜àºÃ߀ë#Û‘«èKp‘”‘{¥ $,£+•ûF 7™þF„ € € hƒ î]è#÷.”îfè€ … úß8ÌÁp˜¤aÆþà¶ ÒÖf¹����IEND®B`‚IMAGE 212 ./arch/misc/Container/luggage.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi R-���ÿ×�7ªû���tRNS�@æØf���sIDATxÚå‘Q À0Cuñþg^-ùˆN(ìoìµ°ß ´ö!0¡s‡?Ì*à"Ô\k%<D© äZ;Ó*¤ÁIfžT8•L¿QÀ @@ACÜ9àǽ DÒ+A™;ÞaÓÿ/¯u¸Ãá& 3ön¬N£BÖ����IEND®B`‚IMAGE 276 ./arch/construct/temple/lyth_temple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE �!!!�d�@@@aaa.‹W�Í��ÿ�¡¡¡¿¿¿ààà���ø˜ ���tRNS�@æØf���›IDATxÚÍ“á à „»Ø™­Þû?ï0ÊÉœ‰ý¹ƒBå¾~Q¡Ç¿^\뀂 <4…4)¼t¢¬ƒ.H(Yd*Er `-ÏñZ`!ì_$�~cùÚBPߨú\‡Ì‡ð d±áÿ xMÔ‹äDMÀ Gœz•ú …Ëãô7Ñ¿-£ŸÓ‚ ìÿª}>£Ù)_ùy����IEND®B`‚IMAGE 589 ./arch/monster/giant/mabu.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿ±7²GZöêŽFö¢IÍ_-ú³Vý»\ -ë€*þÄaôœE–*ø¬QÊú†@���tRNS�@æØf��ËIDATxÚÍ“Ñrë0D]«Â ‚øÿ¿-[É–c)íã½;“dlŽv;Û©´¥½”ý=°§”JIû»êŽãÐq¬ì÷›ŽÉäª9»ç\J8•P?r&RÕ\B ƒ”T??ñAʳ@O †]�5iWÆ@sõH«ˆØ‘4Â2ê+ gôú ”Ò°†p¤Z°ÜB­1ÙÎAˆ�ØçâI‰�ˆ€`ŸK@MÄ™€R[Ö`Ø…9ˆÚ��ÇÁÜV€oèTO ÎßÚë=å¬J!€˜m PQ½� @ЈbÌpvÈyëê@¾€Ö+ŸÀàˆP1sÆ,îov�“…ŒÌÈYȘa¾±Lg,îÕÁ]àŒª"#è`�‡`à%žÌD:ÛVçÉB†p½Îø t`„.Ïh¿Þ^ ¹ëv7 8Üó @Ñ£¹Ë @kC,òˆðìà¸:¸/#TÛ>X�y„�è!³C* À ³æ³öÔ)´hR{²A4×EQï„ûË7ÒèWÀ1ó™]ý0¯qÙ'àeý³Áö2ÿ˜áÙOCš `þOÑ� üåwœŸoÐWv¹]ââ_êrœÐ� ����IEND®B`‚IMAGE 606 ./arch/monster/giant/mabu.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿ‚¯>^úÙh&ò¢Fû¹WZö¼SÚn6þÉaêŽ=œ.ø®PþÂ`õCE¸���tRNS�@æØf��ÜIDATxÚ͓Ѷê D+6)Cþÿoo¦ÔŠPûtî,u!³™ÐD—ÿT!„RÂw ü:ùŠq]×[ÿñ J¤”ré—ÊÕùUŸÏ”ž›_uò Ŷ¥´ý�JŒéP¼JYOà2!„xDoÂ8ŒÚ±UÚÅõj<F ºº&†¨–s pú¥a(ÑT(¾#r¨îë'ÁŒUq…ÛÉÅÔÙWT¤ÝbÎô5‰@ª¾jµáv…Zg€ÊUr6S÷›É·æŽp� 5«}bùVΞ7v?/#!Âp±£ay$DŒ=‚K‘1†·G U¦Dü+†KhkWËGÛÒž0š& Ý[À  ÚF:%�,Àk¶Õ¾×·J@L¸JÍ×.Aª‡‹¼^@Õ=ÉÕO”w  ÚJ¤`%èD+Þ—Èøøl%‹ S°l˜ùÊ€Ø4F9�&l€ OéB@ÙéAnÂ!.Í.�€Ô¥âº–€\$h}Ÿ2–9Aqb:t[ï×½5gËù’NtijàD·žK˜õ ó¤²Ù'ÁmÌÔÎÔ9 #ç*r&`Løþ‡¼ËL]ù·Ï<6þ–�ñwúŒ7"«¦…t����IEND®B`‚IMAGE 575 ./arch/monster/giant/mabu.x13 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTEÿÿÿ}ª>ZöâbóšG¾R"û²X«.þ¿aëŠC’&öžJ¼<õ–Cø¨Q ÈØÌ���tRNS�@æØf��½IDATxÚÍ’ár„ ƒ-w\@öÈû¿m³¢U(Þ¿Î4ãˆc>³ËÊò?BHåýÑ%½ß·îK—ëùL3¿É}#ñ%•’¥·”J*ùCBq äÇ#ãñØ2R|) À ”iŸ.„ %ì>ZBêZB—~mB>ãõRRšŒ[ ¥mLà{ú"�IUzÀ_î�õÜÛ¶tÌ-f��(œ"ÀR´.rvàùrÛå‹«”= x*ø ‰pÍÒª»Iׄµ¶V\�\€Ú�’÷«¬‹Èe׬•�4û‚µ”D·É nIÈìÌÈÉ £ ‡2˜¹EÁ>¡MYd›^87�ÍwÃ!€Þ•Ñ Òæ¨Û®Å¶/‹§ß`áû„¸£äµý¬4@µ'-xÀáËh¿”¸Ð4î‚PÂä àF¾OvÀWã °à @°±šÍ€HÖº8ã-µVÚ4Á'I@žOR¾�€óÀ¶RZ¹LKÀŽ™N©þd}j½›—¸+q³„O€˜ø|&ü"h@­L OæX/‡gÜê*[þ 3úã¶ü­¾ìg!~2|%œ����IEND®B`‚IMAGE 198 ./arch/weapon/mace/mace_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaaÁq8G$ R-���@@@d3¿¿¿´j"Å���tRNS�@æØf���VIDATxœc`€�64À†ÆcKCbKHJKHCH+J›Fm†´¢Äi (  :4--€@Jð `KK NCñ~GJpF>ÔqF�%£ °Á-�çú*y³ ´j����IEND®B`‚IMAGE 237 ./arch/weapon/mace/mace_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaÁq8ààà R-���@@@d3‚B'¿¿¿TÏM^���tRNS�@æØf���wIDATxÚíͱB1 CQì<“>òÿÿ‹E×&  *UçJyühùÙàôrò€l|Ù ¡g_pPªrq ¬»wè�V² LpáG͉ Qhƒ]¨ Oܯ§ @çW,RìýZ±Döž{½ïÏß¿ð.˜ÝÁì^æìóÞnUò¯ýéí����IEND®B`‚IMAGE 7323 ./arch/misc/machine.x11 ‰PNG  ��� IHDR���`���€���܈���PLTE ��4*"/ #&$'##)##%"%%))"()'0'*1)1*%7)., /+*+-+--&6/21*60*40090%-2602/42&770G4!<61>6,;65686:8,<8(A7(A63::3F7.D<E;%C<7@>2B>-A=<F=2<?<??7Q=:@BG=>DD<HCBOD(ND4KD>DFCHF9JF4ME:BGIHHANI3WF;[G-YG5ZIVJ%VI5GMOOKLRKETK@TJLKMJMMEOM@YL.QM<VL<YQLdR"WRRjP.]RBQTRVTGXTBUTMOVL\SHcV0[W@bU@gV,jT9dV:_X9eUJ_ZI^YYbYNdYIaYS[[SY[Y][NlYFc`Sj`Ul`PfbPi`[cbZ`caz`4icLfbbtc?ne@odHheXwd7{cCwcPsg8{g0thUrh]rghjjbpjRnjXmj]hjmkjhqic}l-qqisqdypdxpj‚pN~pZƒo]ŠoL{tN|sV}ra‡rF‚tCxta}vExsssus‚rht>|v]€sr}vo{xkwkyyq}}Š~j˜|U’|gˆ~r„€k‚€r‹b€x‡y…Š‚Z‚S‚N“€[—‚Uš†K†€…ŠzŒ‡‡ˆ{†‰†”‡t‰‰Ž‰uŸŒ}˜Ž‚“ž‘[žƒŽ‘Ž‘‘ˆ“‘ƒŽ‹œ“d¥j˜’}œ’t›“Œª“` “˜——˜˜œ˜Š ŸŸ³žx¢ ˜¥ ’³¡d«¢yºžz°¡„«£º¡‹¶¨q¨§¦­¨šª©¡´¨¨½°…®±¯¹±›µ±²·²¤½³“¶³«¶¹¶Þº”¾À¾ÈÀ©Å³ÐÖÄĻׯ‹ÆÈÆÖÑÃØÔ»ÑÔÓÕÕÌèäÕçäÛëåÌäæäðóâôóéòôò=†���tRNS�@æØf��IIDAThÞµšy|Õ•ïU]ÕKuwµÔ«¤ÖÒ-Ù’7Y–eËØNl6Æ€!&á²äeòB ù¼I>yYÈ2e&/LHB �ƒ ˜€‰1/òn˲¬ÕZ{Uïk-]ÛûÃØñÒx6é¿nÕ=}¿Ÿ{î½çÜsêP¸šßõû>²(uU€¯hûÿ±€ûÁ†NùÍ$À½È»äó{ûÎ=Üè¥ßù�Kæ6¢úþþÃÔH6o6Ü2tOl×È5j–ßD�xKÛ��a.õî. ×êL~ʃ)¯êŸ?ñãk4µÜoË"\âéë~ö¦«*a3_g.®üÂ+¯»Áï™Éöþõêýô¹)d1‰¨‡XYû…ÌZ“óaý]¼Í±åä‹+ÂuŸ¬f¬‹R¯PGÝô¬V‘~øC•žÖü G¢É€¤úBÓ8€ýó1Û•¼ Zöf�%-ážr—¢Ed6üçüc��~ó›Þw]Ã,eä›Ï) ßn8óÈù÷ÿ|Ï{ç›ÖžkÙE)á?~w¾ýƒ/+ïP&ηè®pÊ\ôDÿ½I&>®“|±áBkkiïÇ0^$ßp¡Ùú±Ù"’(˺觿ÆØÊ¿.•i]`áEƒ¦Ë H×ðÀ‡¾�Érû©x��œ•�€îØoâùþG?‡“HhRˆêvV}åÒõv+×hWN€Sª?Ë<ðýÛU±æW�„ Šq\ý Úª|ú’¼â‹¿Æœ—SË;wïz}–ù��T<ð3 >wµ€  }®-:ÊoõænÞUn]»ŒïÕ› �À+�ìü �õôÓW7ƒ†{Û«ébíTt¾~Á”È »Ùм|aï†hjOçwNo» €Þ4‡ (ŒF oæÏ&"‘íË×ëj=zïÌV ŽP;¸“$”û] À™}⋵2ºNí�f ¼03“ÝÇæ¯é.͵ï,š£-ïš§«n\eõ]ŠúêÇæ+Dç×�l}ó5Àª§ÆèÛ+ç‡Ö¯U-‹<+êG;MsX‡–]Õ¼}ï» íä �pù�|em-)WåB^MˆT¥#¹}@ßr•瀅 œ“t3k&«œ-£oïÙá[82qÛŸžíPƒW àPß½kÝùGãÔÄS>ó$´ÿãñ_溑‰Èé|¯ó¦2¨s3™dZßݨxfy€o�`‘J7²¿ø@gS™~­RQe��ò_¾ÆãW6Õ8DdÏ� “�%¬È›>lAçý¿»²_"F Ù Î̦Ó/4™=ˆMÏ­Ü@€ª’.züC�Ÿ›Sí-#`é=~Ï9&œ7ü¬ÏmÐ'�$«Ô³û?l r.vé•ýßÿæÔ‘Ï\äºx îpj€šéœüVB?ü£Ç–]àFè©2³þt‘­¤I�†“Ü*ùÎc?c‹Òõ«—¥u”º>ô¼ysëá2ö„pNˆòkhdq{3=ræÞû¿e“ûÞXi }˜¹Þ�Æ_þÎb¯.øË,´ÿÇ߀¯Þ/ë£ð¦öûøÖŸbð>7°ü¡ÏNø‘ŠÌäÜŸ—¯4ë:ž\×#ûÅ*j§wŽ�`Æ'AS7.6xº18.¼¿¨N¸ã®?¿^ðØk‰Òh®ºÎ¾Üë­Ðø=ž-Œg¨.-œ÷ÂÌÖ"2%Ïvåá –íK`ecë-šuÝ‚WË«hÿê ‡Æ{çôþô— $Á‚à{W SéýE™��; œ…£ ÃóǦò®Î®Š-ª¯•’ ï)žò€AÌšàúö>yåI€ÙÈÌ›©Y6X —…£ø¾_›‹ÂLûPÙÒ¾úðÔ¤y’²=ƒöÛ~^š88ãfš¸r™Ö£ÈM.ZÆ"^áÄ Ã/÷ÔyI5ïðÐßÙõ6÷Šrè8~Ê=8j§ÙE”ЄüÈÕ—ïÐ%i7)Vû¬þ°¯bô_«ÿ8ô•§ºº"”WÜ¿š‚ÁX“?4¡¾ñg�µjy€; È,”š+g«\.TŽ5Êa«5”É#ÓºàU—õÖNÕÒ20Ç‘Ë×ëœ)lWËÝ“?�hˆ`w„¯@èúë²öFC´8ŽDÏQë4Í6Úê7¯¨9.á`sbhA…|†ù‚2åjAR`d¦ �˜¨&¯ Ã÷/õ5\nr%-ýmRÛ|z‡ýÔ{è^)ÒÛþ–4ÑB£x´² Ka¶P°Àà@ ؾBAà<'Øê©|ÂȇXölNÆ;¾º¡ãͱIŽèËéÁðe¿u´¤ÿéw%�óe_ÿ"XB³‘&BY1`JŽÎÉ® ÛçB–,æ®Ûu ÃÎU¬Jä`nߘz+œ²Ë0‘“ßX �oÝüèåŽÃU@E²Õíú·e/][ô6}r2ÒLTJ’ŸYÌ–/;)_5\¬¢©§LPNÒì¶Í—H(˜'Û Äj_¸’Ѭ8õó¥ÇÀ5f”²9cÎÕ#§ÌŒ�ò÷” ™¯Ç³êW{ç®uÅ.‹ÄHð“;jªZóÏ ~b¼ÿ©ÇžógͪI3Ú@Si1 a1z É-/”ü¨cq-òÀ{Ïîfö\Þ%Û™|vbÍd‹Ê,nµ4¿œ-0º(¸Z€²€ïi~K¨dOª+÷–pié6Èàß½ÖÚËn%3­*´ D#�[‚™kñg¼‚Ù�‹…ª/šÏ 1°+[eZV,(™J>ÎÀ år¿“a½f“¬AQ¯ùíÉQŽÉ¡¤& ÅÝhôz•€†wZ_ì¶²=Îr*²éûðòAËÝßÅ?Ó;ï‰th¦¶À ÅLñ¢žwWR]Ÿ×¦’¼šë:mƒèr¸ú•¼/BRÉà`9À·/.Lå"ÀÈ€0ëR‰ƦÚZ›‘q{QårÅ3) » =•žÊ–CœIoŒ5KÆ5hÄ•€YÌÜÁÙ…—LP�ç»Ëì—Jõ@| @�#H\£{ª@Ó„?o¢ Õ¬\mshKQK*d‰‘.¬Ê-üDnj=ÙA9î$\#ã /•ˆ—zÒæ½Ž¾ëÒ#-oz^·P~zs)û6”L‚æÂT¤$ë@ç`«Öº°õ±E,Õ‚•kšÆRvÑ ?޶ዃR–Ôøÿj_¿: /ÙªçØºÐëˆÑv³ øªtEU60‡Yk¥1ÌåÀ¶®Ü äºæÎìQ2€ÊVÖ·yuÖWÇÑyú桺×7.¼`,l4HöŽuf™3…íS7S%ÏX¬‰k!¦eRf~0“žâפ*OkÍNƒ’N’éŸs<;׳úDÎó"� f§YƒåˆZ‚s(x€Û·$4¯÷ƒà‚ ©ö¹\ îVӤખ õ¬ì’Àg�?«X~ëP‚`MÕòˆ”“÷t~ž™××±úE�”‘IDÌ´ÐûvÇ •…û~ÐßìékCËŒÏÖ§;‹ L€ÎrøåF¾µ­Ii;Ù0@wó|°GŸ6üÓéÙ¡Pu!dT&8ÞP0èç0*sÊxº�¨ñe:óèI11ƒ,ð³»o3Ò õáŽÒÙAÐ@�×ÛcÞ¹50Ç9ú¡)Ö ¡u)A¿Q'î˜k\Wÿ’ˆÐu!]œèŽe’¶™vQÁ—<K l³ß§üñðõ>§à&ä³á÷ƒ © �%ÞhñÍäT&ÌŽ5¿c%8ª˜P».»ín¬²°L,îq¬¾;#¥‡U~®\Üâ™»ÿm¹:رck`4rxdUþ=-wšÍ“ÃÁîtåÖª'ã�'˜(¢Åw†‰ìbaid1ë4 Hc{#ÿãS 5¢åÁë^/¾¦#Ö“Æ9?d¤ÿý‚ó†ëOô%[/´?›Ì FcY¶ßåÙ¤„ô6ÍhÈ©XOVåXlkWÍÜõÌüÏü±™ˆ©@…/c•½VŸO2ëWÊÇœ%&Ð ¼'BWÈy€Èe!TqÂÌUñ|ʉ(‰$‚Õ_^Sj÷yœ¦lo“` OÄWÍr—$ ªáú 1›Ø&×OÞù”W’˜6ó»Þ¥ñ=ùd[(Æ_ z—IYgrª"Ów²h¹¡;l2檠a[„i/>Ñ|Zk_:Órb,î’Ö›µLd’ Åd{eì÷á/xù¤ˆßþ!'’8­ç‘ߵ§ ÅcCn¾ãÁ§·éô„å"›ÂÞPõØDcvœ]âÙýÕh*ÝŸíËÒ+¶¿¿?çtüðéç¥ènôEiž,–DšU)„$ ÷>wi nd�ÇÆG£Ï`žà5DZ8Ç™‘>å?hr-¶¹6ŽÎIf²Ù5g"AÕ‘B&L:fÖÛÍ’žC0J¤Hè Í@ž�iÔÿF]ìÝÙPâÌup-„ü¢vcpþçƒÞÒer`èFkÃÜxûö¨i¼Á˜CÒwvˆ2BÔYóšªñVçÆ‡ð4~ޝÿàr ¢ªpÞØ’ÐÉ�0ØXzË[¢\:ãŠãÁïµw­<µd¹¦Õ¿æ´°HÀñ/Ge&FË*ç§`Ž~p5zé² õØ4ûRÛ¹\"ÓYªª À(fd5$ÉÑ?Q®ø_ØtôàsßÝw0F˜èÛŠÉ,B!´Êo{¾Ë‰Swõwe§‰2—øÖYo<9ç/ë4¸¹:où²¶„ý챺Kæclaç°ä¶5MŽÊT6CèÁpzô`è¼ëÿ*ùi�YúÔõ©pª �ŽÅŽ\Èxψ„Ú³ *"³Ž¿>ûçÇBÙêê”E¦P™ÀW¸ý„9›¯ $ºÒM‚TËòݳ ™±wÿϹýDYtç»< prµ=W¡%OݶI7¯ˆ‚–W…„F(8HOÓº¸óì(Úl„¬c å{7éMH}Aè”´ž¹ù®žÀ{Øœ †ˆUmñƒ‘4ÔIbàAü¢‡+RþC{Gɺl9ÑhÂ4�P6Ö©‡úão¨�wQ,nðÌÉt1íi”~["z²7IÍŸ|áMg· ‘°b’RÈwYmG ÃÓf¼x F—�§ ÜvJ€|•¹½€Á3­°Zj„¯„ÑÊlëŠ&ßQ¬+¡ëñ ‘ôK #Ü´ù"³�Ÿ��3Ÿ½_*Ñ6à ³IBά|¡wž©ýû«ƒ0!²›¯_E„¯\zjÀÒg~^ÃO (Sú¹‰Â….Õ^ìY[›ÕÞNyo>ûÝ•âÓ/çú>:~Jçš[×v ò¬µvarñ!eÙÐQãt€NF…½•:<¼@ú<Húì™#×WUK×ÃS2£äè94ù`òT™¨¡°…õøÌ}z3!eÚ|‘µ‚¬éx+&�äuqå|0ÅVmz½>žö--DOûŸ&㉷Òë\…ø„Õ`-Кïî!7ªUˆ!‹Åþm@o“¨_ü4¬Ò翘™ßKê–XŸª§ú+×cOŠ~§ÊÜ}ʤ_¼å²·É£î`>ýÀ¡ê[µcÚ„”¿Âb°ø¬8à¢+lø©èZëî­OÀ²ØC7›nzÆ¢9ý•0¬]{x0Q`&0%†|Õë˜àªqêœE�à¿ú‹‰‰U8ÿñýÅŠР鬘Š3ŠX0ËsçR‘?Ý2¹’mvßv$š—[–L„rÉÄt3hŒîR·ìÚ=§˜Üü‹B› ^àŽW�4[‡ºŠ�¬¢w™Û´áÐúãa“mźþh:á>­iâ¢ûÞÙ‰¦µ$Ï?Ú˜§lÌð6]í¢ÄÆŸà³½íÿ|´ +ï|ðšsg�ÆÕG2kâý)ß-ÇÔbÏ÷ ¥¯ ÉCϯ¸»‚О‡÷øg›¸i“‚&ûióDÜßxä'È.«Ý1äì»%ûfç‘yÆâ À*…yÍàJÛÎøõªúÐ肤cFÕ‚He\û랇¿ÞóÎZ¯Ø?HÔ–]ËŒù=bˆiKÐànê]B|µ’  , l0Ù3†:ŠP¾©èˆœÕPìZ±s"lPsÓ6)°£ª¿@žPËÙãfG¶nÆpë>C„§ ˆ2©$Îòbîåþûìù¨-œÑÆx“I¹èàí 1“+0iãM²j±‹.�C3ú1›$Ë¢šš]Úû›+ÀD×KGŠæ†ý�¸yTh˜G¨ÖÆDÑLÖZ‰6N3? Zùkñú&üËëy:I0抉‡)³©¡>�¢¤A ¨ðÛº5 cDo€—fÞt‹G®;Ý6eÄ)›­¡?¼¤è�ù”-›ùÜáT-Ü.á;ÁB¥H E ­‘Ä ’ŒÑiÜ©A0–„壛œbªeik¾:: Ôã-ž¸Ïû޵‘þÉŸzp¤YtzÚ}ÃR¸ûÄüÄi ï¸ñ3É5,'ƒ–@À¤ż孖¥˜i.îæÞò�§°s·E¸uúâøçnÆ™C¯¶°/•Fº«Š@F›j7@–HbDŠR " `%€¤ýcÞÁWCxµ]OŒ¼¯SÊz«Š¶Ö¢IÛ6w‚¿­t¤&vôwÓšæÀä0 s `²_�$HFE.ŸaÁj&Z#P ì„…åôö:)ùÂÕ¬` ~NbjGÏäS•¦ÉÒD$–)©qeÖ8�‚ÓÁ II“~@z謭©FÀpœ®"cç5³½þá¤Q,Ÿ˜æq±÷:÷y»µhÇ sÈl‚)©Ny eE@Ñ÷>�¼Fµì4ÀÉ’`Ò°E-FZ² (ÄӚȔÔw/KÕfê›D†ÙVYm2ñˆr‰¢¡¼NI¨gɽIÇ;§Pàæ[ÍȲ¶“=Ø~V“&/ÜŠ›ü§«Ègòr÷À†ë¶¸˜ÀìE£aÐn#i€4ÌVèHê¹ð(6ìÈ&H¡61û”&qµ³?$º:ªûr@Ê]ë)ìï•nô‚òMi2Øq2«ºƒŸîøCŽhl¥QÝN3ª$©ŽŠ JB¾rÖ`)¡/AÖ ð&’Ђä*òhoül–ÕÚ0å«OÕUGˆ,óüiÚ% ,l2­™ PD†½e¡‹ÉP2æ{Càii fµ(@¸r ž¹=‡~.¿µÞœ óŽñùÆ~ } £Ã¦}™³PX»3—2ƒ0V¶l(˜:! KH¤ý1u0A@gµ’ÅB€\nmßx˜ÓÈ”ÃV§y (¿ûê~‹¥²s‰I‹FC®ö\ D}µV=;8Ñ“‡%,èí9!Çe‘÷‹)Ñ`ÖpV§÷ol¬ÌÑär¬]£˜ÜX>ÊVëµW®ÞŒ[£á@É.hgÜP9•ä„*Â-@ö®… ‘ç �Ú(”?hxcLeMÆ$› ë6y0õ—QDÇÕ‹¾váöxÖ©ãcæm Î*Q³¥™„¾I‚XësÇEN5� Ls¨àhy¶{ ò‚ÓÔ UÜóöV´4Õ'mƒ¼¦ v˜âh-ÇÎoòObbÅ'Ò¼Ym:B1¦tÆÙá©‚ S”†P*1%ý¬òwÓÝkr/U™Œ µ¦÷—w°˜5 _Ü>ÙÅñvä­ò! ©.‰…ô.§_¦âG÷Ç­2–¿ýIèÂĘF£L-Ê_ßw¯yÅ#¶†^ÿÄ|þ¾cƒ¬ÙB Y¿¥Å’|hst ÷|/Ë65é–ÆÖTm¸«ðèkcf# 4Š í™îKöé%øî¥fäà{ ¼Þo‹`‚θٛÐD}éý%¥½9›”Ò¢ª¦¦öú›’£7¿œµT¡Š´Eãb¼øß|r?„Å(޳“Õ'/=QÕˆ‡7Fä‰]“œ­€liA!šå)Žg)'KxŽ-þTÀLÐ’BѲ‚SþûoúG›md¶BxèÞ<=ÛÊäßF¥CmÍpc8KÓ@‚”Ç@Á� v¼ðD^§ñ¡x(…/Â’ÿ:×Ú†Zßã£w:'J%HöBUûjžâ¥b2R Zc²NÑB^á?bU¿_hmD¦1¿ëT¤3ÉYD 1.Ëq± ’F£D©£0ñ¤$¡p5e£>ÃÈýC/}íºyÿ4ŠÞGQ'�HÊ@D`.å\Žóê 7Æ›û^þaÛ©¤óË¿ JWL$R!†AKÑ#E!}-uvCP¿õ‹E¯ÚÓ÷>7’¶Ù2:B=0*’ñ©k-äeîþ¶ãņüªŒ©¶$=(ƒÈqúD(ˆ~ •‚½u?pæ÷éýÈ0 i€Ëë‰*‰œ–ùxJHêé u.R‚�À0ंÊ„á?b\ ®dT!æT™’ 2ÇñZøØ�TIz=!"¬§� ¼0ú‘Ëó>b!_^F©`¼'>n�jÔ9íà4þ†þy¾!A¼d����IEND®B`‚IMAGE 327 ./arch/monster/humanoid/madman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaÁq8G$Í…? R-¡¡¡ï§_��€d3‚B'¿¿¿ŸÂòÌ���tRNS�@æØf���ÎIDATxÚ­’ÁŠÄ0 C“‘-kÆýÿï]ãösYAÍ{(*tý[^×ájÔŠ“q¡“ºæ®`'{wBHê JO!‹¿õ¾¢8ô˜Ò‡QÏ 2{AqøSH(}Ç6ך„$F ª÷‡�Ñéf.ù÷┸æÐÌ’¾N)üùqä…“Yõg!-É3/d~»áø0; Í%.;l^ž §‚8 Ð¥‘wA7À'á·˜~挄{,GŽ{ ÷!yœÃ?ÿË#2¯M±M¬����IEND®B`‚IMAGE 319 ./arch/monster/humanoid/madman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaÁq8G$Í…? R-¡¡¡ï§_��€d3‚B'¿¿¿ŸÂòÌ���tRNS�@æØf���ÆIDATxÚ…ŽÑrÄ0q².äÿ¿·Ü¥ÓL'Æ•ý’ìZ`wÆ<m›ñ¿‘Ü óx²Y§I©s;)%Ú¦Hê+ÔK¯³m�4ëŽKÆ¢@EǼ°ôäPŒ9ÜH¼ÝE©éÌ,l_¡x0Ü3f ÁQœ?ŸO^ÏÖ¥ðq8ÑòÂɤm„ô$w 3÷úÂ}'Íû%?¼¼š‚  @À®-9~"+á·˜±ç†¥�á^–KŽ{,Þ?I„mCþ¾_¶‰{;����IEND®B`‚IMAGE 399 ./arch/monster/humanoid/madman_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEµÆ÷���¥c{9{9c)�9­Ö”­ÿÿÿ!B�{BRR­)¥c„k1B{BZ¥css1R½„œ„„„c)99s½„”k)Bc)B)J� UK¤���tRNS�@æØf���òIDATx^­“ÉŽ„0 D)/IØz™ýÿ¿tÊ0¨%“¾´ÆÎ½—ª\þ}°Ïs<º£OY(æŠ.·1®SQíº)1V+\Cæ?îXC˜ç@ ðÖ<°•Â~eÁœ‚E€2Â`ʈS(ÖN‘³âÜS"}ç1,9 úq¼€' x_Ax(7¬!<’@>É}”S� Á_€vøô-r �8îçáT´ÖÀ²ü^—oÜz= _{ÀÂH%ÏÂ*w‛T¡ë$µ¤Ã!Ÿ²lü =ƒ<$ëÆ©½öS‘çe}ü •C­´è…”����IEND®B`‚IMAGE 826 ./arch/player/class/Warrior/mage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��zPLTERL.,&$24*,&$64"$2,*$:<Z*4:42,*,Z2$><G#%& $�!RLBD*�(*$.,1 ":$�6$N"4.,#""�$�&�'. ,:"4‚>42 ,˜u+^6$Z"4vR$Šb,æ–l#"N.,�N*,N&,�F&$(*=$#�">,.,"� ��:$�$�"V.,r64B&,rN, �!U2 '�) � � ��!�# �"����� �����jN<(#� ��b*4%#¶fl��‰a+B<qM+‡a)V&$J,- e>)BL*$6,6 ,. $5 +b*,B,FDÎjŒJ)')+R., � � � � ��:,�\7T`���tRNS�@æØf��nIDATx^ÍŽE1ýÀØ4ÌËÌLaffffæü÷ô(R¤qÏîm¥ÔŇ*zb{(•J[úëiðiSûýÚÙ6wnmâ['/Ÿÿq÷÷Ïcg†ºúäÈóâÒ×o_N¼*6º=‡øU=õ¤‘’O²¾pnv5ÿôÞôƒ‡ãSI¾ >ÌßÛÚq³ÿâ¥ÁÓ²‹¿òz×Ú@õ#_Ý}ápqg_Æ|‹À–-ò¾£+ºYxñ¹,�3 3ëÌ MMü7@F=âùëËLê�#êÌÂíÞ=lŒe ʶø¾ô.Ö,0j$B;Ï? †ãö_ aŒ:Ž`Æ ö7k”RÊ0¿ïô}‘Éä0­¬”11y/Çâz¨P"°Ôhq§g�ê¸fXJp¼2ŒI¡áÈ"FŠü §,¤ŠT%‡¡sÂc²Z ¡G$|æ‚rYE9#0§²^AÐ~ÞU„xóè†èÂhð/žHÄÆ}¨'°Ïši����IEND®B`‚IMAGE 866 ./arch/player/class/Warrior/mage.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��˜PLTEÿÿÿ.,&$24*,&$64"$2,*$:<& $:42,><*,Z2$*$G#%Z*4�!BDBL�*�(↌:$.,6$"�$�N"4.,1 " � � � ��)+ÎjŒ(*^6$Z"4R.,=$#"#�">,vR$2 ,�RL:$�@$B,FD�.,˜u+1B&,$�""� N.,�#"V.,�NL�#". ,&�''�) � � rN,=#!�# �"<# �!���� �U2 ����jN<(#���b*4%#¶fl��:"4B<qM+� �3�‰a+e>)‡a)*$JTŠb,æ–l5 +b*,V&$J,- N*,N&,�F&$r646,6 ,. $J)':,�E&;’���tRNS�@æØf��xIDATx^½ŽC—%Qoâ²üܶ5¶mÛ¶mãoO½Ó«B÷®'¶ùKC½^_ÔßLƒ¹…õãsmžÜY@·nôÝ}öwìØ½#¥>¾øª·öuxdèê¯Ú`YÐs"†?§> ¦Tâ¢÷Îï™­¼xþæÑË­+ãŠWôÞîã}û·9¹áé…ÓÒ+ø}phskçíC—¯¬¯•×Þ­YÞÛ1Î×÷]:»luwá~ûF¶l‘wÔ^~Aþ˜é À ÈÌzKáÁÏ]šx>@Fý |_ñMƒI€bD]X¸Û¿Ž±lAÙö?ÌúÎþ/‰FD(#`'²4«‡£ö­?B0ñ6ë÷v%è”Rʘ;E†îÈdBL++eDLYàçªhÀW(Xj4Š80€óu”–œ‘å5ŒH¡áÀ" DŽPYH©”ìûÎåƒéhÉw„‘ȳ«ZBQh„ÀPQS”²vS#ï?Ü‹3‹ÿË?g�-i j¾����IEND®B`‚IMAGE 886 ./arch/player/class/Warrior/mage.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��õPLTE4V$ "' &( 'üÃ]$ #E!.-" !E!e)  è—6$ "?  !.-A&?0!Q+) $+# F" 31.,[3)'' %k<,+# !c7!1!uF<Y71Úq,D+A/  <10n=!(/# #%   10ï©S²Z+( #" !,)% !D " J »L#,+ V.& %$ ## " ! "B0 ! #H# B«I#:!84, =-+B!,*+ )( &' %% ## !$!  A!/8$ %! "$  +@+(O'' $!_7I,"I$! !I$}2"  =Y." Ò@9à���tRNS�@æØf��/IDATx^½ÐCwA†áRwضmÛ¶mÛ¶mýÎ$ë©êY%ïö{÷\ð}4[„ypœ 5ÝÒS$àö'×óþä,à¸tñPŽäL0rž~à † Æn0=ÖGrœ rêÎ MÏUq›Ù¹·�“Û:gÕü“Oвq,Þà!G£˜ªK­,=´Öì%ë& qzq ‡{Za†³^šO—|q”JCHí >ˆ€ÐÅ÷É*x¢ÁØÛµ¿Äh´yû*è©MÚÁ «øµÁ$î•U¿·Ø/Œ1 trg§&Wz_Ví¾ÓÑ…i€QŸ¾#'€Õ½ŒÌùO²wiãñò¼‰ [”C[™W(�×£@4³Ng}Vˆù7ðß}Ã'9/¶È;õ����IEND®B`‚IMAGE 927 ./arch/player/class/Warrior/mage.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE4V  $ "( 'Úq,üÃ] ' &$ #.-" !E!e)$ è—6?E!  !,+0!Q+) $+# F" !31.,[3)'' %k<" 1# !c7!uF!10<Y71B!D+A/  <& n=!(/# #% " !  ï©S ²Z+ #B,)% !D " J »L#Y. V.:& %$ ## "& ! "I 0 ! #H# B«I#:!8% =-+,*+ )( &' %% #$ "# !$!  A!8$ %! "/ +@+(O'' $!_7,"I$ ! !=.-I$}2"  =4, •èõ¾���tRNS�@æØf��:IDATx^½ÍC“,A�…Ñ̬ª¦±mÛ¶mÛ¶mÛÆ{?qz¶S•Õ1›ù¶÷D\ðû>kÙÁ¡c0GaAYqb†ðnU/w"6`ï½xþa"9Kº~,D" €\’|­ 8ðG¸+•–Dn¤Ù2ïqâVIÖK_W¢!Ãh/šIcÛŒ‚|v‹§¨‰›lX}Z+eÍ ÅAœŽ …?àp`'°±¦ÀÔ™êÕ�“Ë9Ì;h'{ùrå•jsVÌ,2÷äé¤*6\ãjן¯ÓÑAÌntò¸Ý™ž_ѼUÑÁñ…¢ôrò=ÂÇY[èA™$×}*Œa4`.Lõ èÎY¸îùGQÛ‚qìNXZ ÕxþØë Ks<ˆ.¾û)€­£€5½Zmzg&ˆþ;ð÷}xb@Æš ����IEND®B`‚IMAGE 1007 ./arch/player/class/Warrior/mage.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ãPLTEÖ”Z%#2 ,64)#),),†2.,2,  _"";46,.;#. #;=2464ù·Q6 4  J2GJ;=T%#_.#O)O%;4)#6,..,@Y) E=.#†J# .,%#T";,À˜4;ŒY,2#64Y2,;4. ,@% #"#JG)#Ên4" ) # ;T)#÷·Qc#‰Y)4.#J;,cEGi6# %#;4n@2#@€E@ ,t64EG§n,"6,TΧ,6Et@#@4)J#2_26# ŒTE#å˜QÎi,’O=2,ÊtG ·Œ4)#E,n24.’J4.éQ§J#"£T4€E,@,OG £T=)#÷±Q24O"@,EO#h1,“���tRNS�@æØf��ºIDATx^µ‘SÏQFgçµm¶m[µmÛ¶ÝŸÚ^ôk2h¯Úuõ$ke''‡û/ð?ù“«Û×~§§Äóµéc–Þþªsª¼ß¿˜>ÔnY4›~\ö/ï¤ÑN«ÀÖÛÄÔëS‹× )cpÒºãuÇÔóûŒµ¤,ttk%Q·ÕÔòcN75û- !„M¿÷†‰\·ÉGz�ôù0ê«'] “ÿ¼: ŒPMsù0@î‹Ñ3FPB´ Íç‚;g�Ž7Š$[}˜1«%$RšA ²Æ@„¡Xl:ë €-@G5¾°íJìí¥ÆÇáï‡Ïíï=‚pXï¥S7^žo.Ο û÷t}xðî™>¸¼ð¨at ¸à–nJê“·ô>·ë©÷Sp„ Í…îÀÕßœú`")Ë÷^PØ“³9,U{8=ñ޹¹½®ÏGË@g׆ê}z%;sUuÕ­zJ²GÕÎxNw;ôE¾jx6Úb3²7wÕ|5~å›çÒ‰³·åPhü¢˜¿kOÅ9G…¥_«8ßÏ™‰(ÂæL ‚Ù§Z…èæVâQ«ÊïlU.pEIF¸ÉŽZIzìú����IEND®B`‚IMAGE 1011 ./arch/player/class/Warrior/mage.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ãPLTEÖ”Z%#2 ,64)#),),24.,2,  ";4_"6,..,;#. #;=64†2ù·Q  J2GJ;=.,_.#O)6 4;4)#6,.T)#÷·QT%#.# E=†J# %#;,T"%#À˜4;ŒY,2#64. ,.#% #Ên4"#")# ) #O% Y);4Y)4Y2,c#‰;4T#24i6# £T4)#J;,"O"€E@,E§n,"£T=T2#@ ,t64@@6,Χ,)J#._26# @Et@#å˜Q6n@ÊtGcEG·Œ4)#ŒTE#Îi,’J4’O=@4éQE,n24.€E,@,;JG2,÷±Q§J# OG EGO#Þ6BÈ���tRNS�@æØf��¾IDATx^µ’S“%AFo–Ú}mcÛ¶=kÛ¶m{êÞ—™ˆ®î}œï±Î‰/2«Ê¶#Êù«=Òöh¡[j&.Yr燎U…P¨bâD›•PYŸE"ý¾Z:FV†}ÕÅÔçCwÀ•³\ò~÷Çö¡okš¶à‰ÍÙô¬´»ºFñˆÔ̦݄6ö5u§ ]&_@�Ðç诟t¦çx¾Q5ŒPMóú°À!¾1B€¢}Ö|^ À�À`c/¡H¶ç0ƒ&'ÇcŒR7 #‰Òjç ÂÉäX^Ì¢¬=KAžÛ°ùYò÷†«±¿'¯œ]½fÜ5È·_îiìøt+róÂùν„cFáiéEý2¤pJ”¿ÉêõÝ©7~=°/2LæÅæpïÊà¹Æ‚Œ¢<9H¡Ƨ X ¯ø{ŒBûÌÌa÷ç#w{€N-;Þ§Œ|>?¹KõÖVù»¿ª½ò¿îr…bc4'&•@Ÿ©>Ê?Ä/Ïâ½µË?•htôºT|ì4}–ù²°5o0h3çtpqËÕ+f׃ۧ™ýϧ[Ê|;z&n.Ðm;—Ú­Jì¸(ŠR����IEND®B`‚IMAGE 1003 ./arch/player/class/Warrior/mage.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��CPLTE4V  Øt." ú¼\   a)  M0# !      6gD>    &(' '%'%  ¦D!Z%!  ÷¶Y# ]= !  '&L0 /¼^)D* %   % ³J#U58,  " ,-)aC€X / 0   #Ó6 Z(L/$k* 6 ‡‡5    "   ; ¯h;?%  -!,P1  ]$H G, ”T31=  +(`/  $! A#;J/-,H- ‡="L¡B!P10—j9"'€;w<! )- eC7     d/8ë¦Q],%C)*<(08 !;" <    .D'*( <#%/5ða���tRNS�@æØf��VIDATx^½ÎCcî@�†ÑLðÙFmÛ¶mÛ¶mÛ¶¯íûÓš.ºÊ$»öÝžg€¼Ì„䘼 s¿~¢õmÿ<²hâѸÇä NÊo@ õºÆ22È’ŒÂܼkN¿¿¡ì•”î@üÈ´ekÇãÒÂãé Õý>2I[½Û_£†µH ³FJ½�Ñ9oÑó`bMa¾Õ‡˜ÊeçZôÆP.À#ÈìÖYn/uÕ§| BàKúQY[SíÞñsîízv檠3Ul| uÖÝÁRó›» Å@늂u�@ðwµêݶҩCn nw6æÅ–R0¼àØþ#`AÔÞ/¨ï@úâ{˜kÆ0Œ¸|vÒ%ÿ‡1g£ÂBùÓ9.UÞ°xJ…ƒóßËVíÞ~\¹8ôAkÿæ»|ƒg€ÿd00zX ``2@0†óOC^”>M`ê_·����IEND®B`‚IMAGE 1039 ./arch/player/class/Warrior/mage.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��[PLTE4V D*  Øt.ú¼\a)    M0# !"          gDL &(' '%'%  ¦D!Z%!  ÷¶Y# '&L0 /8%    %  , (" ,-)aC€X / 0   #*6 Z(L/$6 ‡‡5       ;;"Ó"C)*<(08 —j   '7 ?%¯h;. P16 G, 1>$!   ;J/-,H-HA#]= /5!  <  8ë¦Q  d/P10#!<# ¼^) +(`/],6  w<! )-  ‡=" & =     !eC U5€;9"% .%D' ‘9���tRNS�@æØf��bIDATx^ÅÎCw&A†á®þl;¶mÛ¶mÛ¶mÛÛþYÓ9³ÌÛ³Ëɳ½îö0ãûŸ§R¹ÜØÅ"R_ß.&ŠvY°»F%æ3ć}Î#Å’¢Þ= ÿÈÖd}=ºe ’« 7x'Ö¼ô ûŒ¬>�~¹Ò*ÈNnj—Œ}ùuß*íPÖgØö[Wßçp=@O%*·(I¥`:•µd£²ïHCÜ€�£6IƒšÓ¯Ï2§ÿtC}ù¼º9r”# åë<Ç€™¤% =Í]­èWó¦1x7„ûªš‡@6ï½)\hßýA7·"Q­Òü"ñ»rçº8 Q;Â'*0h/ŽßpæO6¬iÁø À½ SOö~Lî©mn½Àèm¿B5~O^E ãÆ¼²#®ïq¼‘…ãZyåñ¸7Ìwß``,Vç,"w¼ ÿ ê[ÈÎß {Œý”3WÅ×H—>����IEND®B`‚IMAGE 300 ./arch/floor/magentamarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEHHg"g‹4‹’9’­Q­¼v¼žÝ_���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 304 ./arch/floor/magentamarblemedium.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEƒ?ƒŽIŽ•Wœ™Z™¢j¢«w« ™~Ò���ÙIDATxÚ“[nÀ0g»pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/R^ [®˜ø����IEND®B`‚IMAGE 169 ./arch/weapon/artifact/magi_staff.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ���æç”���tRNS�@æØf���KIDATxÚÝÎ1À AÛûÿ?Ç:Ñž‰¢4°Í ‚8):nOm”¨õ¬´[’€Erº¿² º €ñ˜¿¡^ þqˆ½8§ff%?pž����IEND®B`‚IMAGE 171 ./arch/weapon/artifact/magi_staff.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿ���æç”���tRNS�@æØf���MIDATxÚÝαÀ CQHþÿŸKS×Ä¥‹¾Á…‹‡:)Nzܼûd��Túaê¹–°c‘Nû+ �d û³Èg¨ß÷¢îµçô�XAbY#ös����IEND®B`‚IMAGE 173 ./arch/weapon/artifact/magi_staff.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ���ÿÿÿ]³ÍÅ���tRNS�@æØf���LIDATxÚÝÐ1À0@÷ÿo.J¢nà­ñB &E™õTýC*GTBL ô7ôUL¯E`÷©D´'viÄqîÇù‹îðbN^Xebך¸Œ����IEND®B`‚IMAGE 208 ./arch/weapon/bow/magic_bow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�BÎ�Zÿs¥ÿ���—Cà���tRNS�@æØf���oIDATxÚ½’A À c2ÿsI©x‘Ý‚¥{Á%câMÀ§D9‚ lº¢)]¡ºBô»!ÂëfEbM³4`ˆìSL›•€š%] wÊé¨4NËг´¹cPì|Ì<ûYÒÅŽ}— `ôËŽþ����IEND®B`‚IMAGE 215 ./arch/weapon/bow/magic_bow.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�BÎ�ZÿBŒÿs¥ÿ���ÿÿÿµ-J–���tRNS�@æØf���pIDATxÚ½Ó1 Ã@ DÑoYß÷?rŠ,®Öš@B¦Rñ@ìˆå“hߊNÂæJ+fÑ2 ›Iˆ2 ‚ n‹4L�w@ƒ¨·{Õ¥ Ï"mðÞrö2ˆÃ4V8 «Ë5¶¶Û>V–pM?Jù]^P@x¨O”Í����IEND®B`‚IMAGE 226 ./arch/weapon/bow/magic_bow.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�ZÿBŒÿcœÿs¥ÿÖçÿ���ÿÿÿåð���tRNS�@æØf���xIDATxÚ­ÓA Ã0 @¹q§ÿÿq &äâ® ­nF‹»¾zð«˜0K!Gœ*G$¡¨$¸6¯TC••••4b,÷QŒ9î²ö÷Øápmö­?žGQIà>i³Y% g×c²ï,±!Pt?Šúß¼ôãtNe����IEND®B`‚IMAGE 227 ./arch/weapon/bow/magic_bow.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�BÎsÿBŒÿs¥ÿ”Æÿ���ÿÿÿvìù=���tRNS�@æØf���yIDATxÚ­Ó „0CѱÖßûßX‚(C²°">M±~Èà_1“`1!å#œ@N ïAT÷‹$¢^�1ô6§Ç�ÜYÆ+euE°¡¥šmîeÄþˆY±±e€ë'P×:ÑÓ÷æô÷é‚únNFæÒê‰A����IEND®B`‚IMAGE 197 ./arch/connect/magic_ear.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE-ŠVÿÿÿ¿¿¿�ŠŠŸL_���tIDATxÚ­“ À C“îþw"Eö L«-bÔO+˜õm.]$¨›õ"A]$¨›õ"A]$¨ Äs{xǹµ€ží“péŒkå7€)$'`ø:²›Ç-ö-ÿEþÍ\¹¢X“©ªS_¤ÎÚéÍ_cÿEf«����IEND®B`‚IMAGE 180 ./arch/spell/MagicMissile/magic_miss.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷��{��ÿZcÿckÿ¶òÔ���tRNS�@æØf���SIDATxÚÝ‘A €0Äÿ¿Y¡B)ô ˆ:ô2KÚ…tûŒS’�ç�JZ²˜J†L%P²xáu+¸Ú¥$70ˆ’$ì]D,Ußÿ‹ç«îÀ§8�º�Þ••ò����IEND®B`‚IMAGE 162 ./arch/spell/MagicMissile/magic_miss.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷Æ÷��{��ÿZcÿckÿ¶òÔ���tRNS�@æØf���AIDAT(Ïc` `@ Âù‚Š`¦ŒQPÉQ@QÆR26RT2Ä¡Ó ,¶`ºc€<ç8d<‡��å›Äk'ä����IEND®B`‚IMAGE 181 ./arch/spell/MagicMissile/magic_miss.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷��{��ÿZcÿckÿ¶òÔ���tRNS�@æØf���TIDATxÚÝÑA À CQ¦÷?sGºÔ…àÐ…nµ „¡^˜ç! ËÂ4K ¼„c„Dߊ׬?uýˆþÃ’Î…Á Ïvü(7Ý|�Þ 'uõ����IEND®B`‚IMAGE 166 ./arch/spell/MagicMissile/magic_miss.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷Æ÷��{��ÿZcÿckÿ¶òÔ���tRNS�@æØf���EIDAT(Ïc` %`@°ÁŠH’`!A„ˆ€ £€°’ L— ²¢’¢±±’¢�² „ 30lÁpÇ ÷œðàð ��ƒB:1~$����IEND®B`‚IMAGE 200 ./arch/spell/MagicMissile/magic_miss.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷��{��„Œ��ÿZcÿ?Ôå÷���tRNS�@æØf���dIDATxÚÍÐÑ €0 CÑÞ™þÿ/«ø ¬,Q0¯Y:8ñÏÐÔ4µXw€’õXGR¸ûéûÀ�}p–Âî'¦½K±ËÇ‹!¬ØˆFltb|!æö%E¬¤Š=úàóOš¯g•pAá£����IEND®B`‚IMAGE 206 ./arch/spell/MagicMissile/magic_miss.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷��{��ÿZcÿ��„Œ¤öÙ;���tRNS�@æØf���jIDATxÚÅ“A €0 þÿËzöºAœ[Û!nŸÃ$ìÓóA6P�•…•»%æžà ±î‘ú ©U¢¯õáÂFï¾Y÷1ô±©É}Œû¨ ´>&ô1­OTÿÿ9ø�éÅ����IEND®B`‚IMAGE 198 ./arch/spell/MagicMissile/magic_miss.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷��{��ÿZcÿŒ��„ˆÀÄ���tRNS�@æØf���bIDATxÚÍ1€0 Äâ¤ýÿ—a`²”f ¯w—ªŽ÷!ö³† Ép¡ècºx~�ž}¿ÕÞÞãB%2æBac:pƒ>d?Ð#áh ÎÆøÌ˜±1ccÆÆŒ ëqlˆ_rý3�ëèsCÒ����IEND®B`‚IMAGE 203 ./arch/spell/MagicMissile/magic_miss.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEïÆ÷��„��ÿŒZcÿ��{º:å ���tRNS�@æØf���gIDATxÚÍ’A À0uþÿåÖ«Â.”:$³¬0$~> ¤‹PI#**•¨~–&@è; »ö"íØ~˜á‡Dûኣýçç§Ñ~6¢cøñ?êÅ’áGqÂ@|Í ÉÐ]5 ����IEND®B`‚IMAGE 378 ./arch/exit/magic_portal/magic_portal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ�ŠŠ-ŠVÿ��c2�c��1�ÿ�����þ¿Êÿÿÿ±!!�íí¿¿¿÷OE���tRNS�@æØf���øIDATxÚ½RIÃ03v¬âåÿ¿­œÌÔ[Ï•‡\’†àþ‹ w9cý†9Àeg,~lï·R^Ϩ{Ÿs–òB~ÎÃÄGNkT!yf€}‘Bey2€Å¾ ¦”nVmŒÅ‚óÆþ‹»êáÍ&vBªöµî@Òw*.H#iòÐ"q"褀ÜîI™2†%”Å"Š(ÐC’ iUpÖ"cFSJúa^|´qy_”N‹‰õËÔ³åwÚY4¼kLA¥üœù<ú<QgÛAštôs5LËq>ajìGw5XCÓßc‘™û=nx¢“�÷O|�W–ç)±����IEND®B`‚IMAGE 383 ./arch/exit/magic_portal/magic_portal.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ�ŠŠ-ŠVÿ��c2�c��1�ÿ�����þ¿Êÿÿÿ±!!�íí¿¿¿÷OE���tRNS�@æØf���ýIDATxÚ½Skƒ0 #}xYÖÇÿÿ·çK;´O§³Z¨ãŽ?†ùþzl¼¡ßû ~¹­ªõQÕ‰7õO“qBìè7 ˆ°šKE ›YºâãœóÌ„A¿+ÁRÑÙNÌì‘`f"×y{M-i˃í"´i4|–è ½ 3I -ЭZ„+"v{˜¿#æBXlW˜5[¦PDÛ‡B4)›Br=JˆÔXУJA‡¬³ÀoÔóÊ©ú¸"ž>¬”9'äÇP[ç ¶ñ,,)ôs 3DÑåÏï’ze—„"¥Ã妧;Ài褅ÝÈùcü/~�»¡¤‚Oˆí����IEND®B`‚IMAGE 379 ./arch/exit/magic_portal/magic_portal.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ�ŠŠ-ŠVÿ��c2�c��1�ÿ�����þ¿Êÿÿÿ±!!�íí¿¿¿÷OE���tRNS�@æØf���ùIDATxÚ½RÑŽ„ £ ݹÊÀÿÿí±ºQA÷írÅ>”6'ü1ôù¾À~‚:;ôôš”Ko=ûË,G{eÓ“¿¡îÀÝ¢ß)ÄÜ_[6tý– ¥Ô:# rn+[)eíloEÐXP+¬Í–¨©�ê)(MƒàmS9°&�ºf`¹‚±*èL°Š< × º�®ƒªœ‡€ªSDì2 u•Ùal9:4N-,ñ2‡ˆ˜‡~” « Û¡H@”‡zUKûK²Å4Zô×Úv�ØmgHá„ÈûBRV—¥öŸÛº‹NIß¶šAýØÇÚÙ ÿ‰_ˆ¶úïµu����IEND®B`‚IMAGE 381 ./arch/exit/magic_portal/magic_portal.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ�ŠŠ-ŠVÿ��c2�c��1�ÿ�����þ¿Êÿÿÿ±!!�íí¿¿¿÷OE���tRNS�@æØf���ûIDATxÚ½Rۮà Ã\¼Ô§ÀÿÿíÈ& Zv^g!Pkã¸i¡*ÇÆôŸ‚|múF2X1+bnòÅýÚP¨»BÆí± o)F*RJ= �Ð0¹ b¶~¾Ñ“{ÔKþüë–£¿^ é#8»´ä$tNAˆK Veð\áŽ\C´›€XkH°_M ¿9ô³æW0X†›Ã7‡èêTxˆÒ'O€#ãµQ¶ÌðÕêþéS<ãÄ!ÅÓø .HfW>PÁcPÑhŠX÷yÅ„yçUÉ–Æ‚¨}få#?`’ÂáÏüš×žC½Á)úñS<X¸9'#����IEND®B`‚IMAGE 369 ./arch/exit/magic_portal/magic_portal.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿŸQ,�ŠŠ-ŠVÿ��c2�c��1�ÿ�����þ¿Êÿÿÿ±!!�íí¿¿¿Bøp���tRNS�@æØf���ìIDATxÚÍ’Á’à C]QZÈÿí&ÛÒÜz¨HNzØÂcû¾Ô¾k/„.•f‘Ÿ}šé¾Ý7/4IçÛÙRmBwO ÷W @eiSÚ…�Ä®�6’o�Ÿ]КC¬Ÿ‡v¥ %"ou€ Í1ň¸ÿÞDó ªºˆ¨“_ø8 \Æ ¨~® ·oBZZ$×àÂþx‡Ü°Œ’>ÎÁÓâµÍsˆÅÄ2òÖäð#@ÊÈyÚK»bH¾tP_’–¼ Pk“5½œ×’}eàÒÕÂSj¿]²œiy­¾fa#JĽ§ZÁƒ����IEND®B`‚IMAGE 382 ./arch/exit/magic_portal/magic_portal.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ����ŠŠ�1�c2±!!-ŠV��¿¿¿�ííÿÿÿÿÿ��þ¿Ê�c��ÿÿŸQ,þôS���tRNS�@æØf���öIDATx^Í’KnÃ0 Dg†ý줽ÿe¸h)>ØÐ‚¤0"þįx�$Ây)îǹ®û¼—{±OçUÝw0ûˆ=‡„S²b÷b ‹À”jmµÖ”ÄÔ°¢¬cÜÆµJôIØëö¨ÓlË5f/§À®Ið€Iµý·*%ÉóáêlãÄÕÏ�%{Ló ò½ƒu«@m1%•v{ ­*c}§×¸%9å^>lÎxÅ)µç�¹céRÖžO1A7£‘&ð¾³oýñe¹Þ¸pWJ)c\DDð`Y–媾“¸†ß¿Ä¿â Ø^ áÂ3ô����IEND®B`‚IMAGE 356 ./arch/exit/magic_portal/magic_portal.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ����ŠŠc2�1��íí-ŠV��ÿÿÿ±!!¿¿¿ÿÿ��þ¿Ê�ÿÿ¯/_ìRXg���tRNS�@æØf���ßIDATx^Í‘Ûn„@ C×v’¹AÛÿÿÚ*E£ÂŒö} <K±ñëã„|Û;8ßà£%»ènQ{¢»†•KŒdäƒö´(s%?$“HµåH†½ÖÚƒÜs69zMõÁöŒ*ß6ê¥Ì„{EKOz)j‰oœn“ׯnO~‚Ž^§º‘8AÚÍ�'›\¾&ϦkO„ÿ·(¾þn@?7ƒyѺzkdôÙ’&mk‚QzªB‚U Ã`Fj®¹îE:ý AiØ$#€‰·E³M^Ó°Ig²t¼SÞþ<ýìÑ$3ЃW����IEND®B`‚IMAGE 380 ./arch/exit/magic_portal/magic_portal.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ�ŠŠ-ŠV�ÿÿÿ��c2�c��1�ÿ�����þ¿Êÿÿÿ±!!�íí¿¿¿1¥ßM���tRNS�@æØf���÷IDATxÚ½’ÛnÄ D±Ó0u¦1üÿ×Ö­6Ñ>ô¡ƒHæà Pþ_üd,äµxÞìàŒp9¿t'ÇàG¡I“¶[Ø«à JHUª`­ @`FGîˆh»àìçÙ· ŸcÐD·°CAìŽìƬ_¶S›5 ‰ïVû P‘Ø“¢[ãð§:›Ükp/”ØÁ{ŠØÏ=‘‹¤JíýåwÝ—û 4ëï.Ö㦵w›µU–ŒÑItU5Ï—g}¨Š¸îÃ0Œvµè¹F\€CöCŒäÓk¨ª¢@ñI¬ ‡<�<û8Fò” s~ÿìÿ]¿UÚ,CdÀ����IEND®B`‚IMAGE 343 ./arch/exit/magic_portal/magic_portal.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ�1�����ŠŠc2±!!¿¿¿���ííÿÿÿÿ-ŠVÿ���c��ÿÿþ¿Êß}���tRNS�@æØf���ÒIDATx^Ý‘KN1 D];éßÀýO 1‹&ͰDâ­"Õs\Qâàë,32~á0H'ÃÇmš”º|{‹M4�ƒ³Aîj0Áçȼ_ PEh9ΩƒVmeî£ÇÔ¡ ëû¶m…öËé„ämPœÁ«Þø%¬Ä"^ò#¢õx ìûu># ¡= 1¿¢Ë5*¬çºI %âÓ(SœâHKdÕXÀù¿lîMJbØq=†·8×ÞÏ‚Gü�Û£¾ s4mâ–ôiå8ü7>�87¯ZMöÔ����IEND®B`‚IMAGE 357 ./arch/exit/magic_portal/magic_portal.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ���c2���1��ŠŠ±!!�íí-ŠV¿¿¿�c�ÿÿÿcDÿ��ÿþ¿Ê�ÿÿ—AÂ���tRNS�@æØf���ÝIDATx^Õ’ËnÄ CǾ/HæÑþÿÏÖAl&d]Uµ„@9Ö•Á¹ý˜‘d ¶O†‰x‰'„”ÔW0QN^ÈrŒ(«b âå—1·­»vfžR óàØî÷N—c½+QAq9Ì¿ã-Ä[4–6‹ðóM˜exLƒû+Öj‡OPXRz„qt&—G`…÷òaå�N=àÃñÕÐʰ” 49Ð;áŽÛó\õ &ÂM< ùf/w̰ÝÄõaí[ (iV…˾¹›‹MºZRËð‹?{™òõ¼ÿâ ›����IEND®B`‚IMAGE 304 ./arch/exit/magic_portal/magic_portal.11B ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ�ŠŠ-ŠVÿ��c2�1�ÿ�����±!!�íí¿¿¿ŠB˜ô���tRNS�@æØf���·IDATxÚÕRI! Ã3àŒÿoÒA½¶DH¶â,¤ß3­x°oèãu?R4ŽÄõŽ9º�‘;Âö`æÜ+yºËݪ©tç“dpi©„%Näæä%mÍS²Ö£)ÜU/µaÈ}o'¸W`@±I(X0)U|$ª¤ @ºÛ-!+èrµYLCÀÃI mõ�%2À™,éÃÂÝ“­eÖ-9‹%žÿÙï—/IsYþÒ^Ck¨õ´ã°����IEND®B`‚IMAGE 262 ./arch/exit/magic_portal/magic_portal.11C ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿŸQ,�ŠŠ-ŠVÿ��c2�c��1����±!!�íí¿¿¿Q­†×���tRNS�@æØf���ŠIDATxÚå‘AÃ@]' eØýÿw«ä”›´s@H cdý&Uz�¤Ð#pUE4³{S±¸<ù<¼öORˆöBlï$í\H`'pØQíxÀ>s˜•‰Ýš“ÍnM x#&—R›9>�6>R6Ø©ÔfD›ŠÂb™…àþA¯¢nãž´þ/ð�ž ,Ã����IEND®B`‚IMAGE 292 ./arch/exit/magic_portal/magic_portal.11D ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ�ŠŠ-ŠV�ÿÿÿ��c2�c��1�ÿ�����±!!�íí¿¿¿ß¢Xš���tRNS�@æØf���¥IDATxÚÕ’Áà CÒá¥&ûÿÏ]íºË¤i/âa™È‡¾aÑH+3 äç÷•g%Qr4Ìit‹41 ën‰£ÍGï.)LÙkô¨¥tÁmwPfêy\!! ‘n» y`ë¥Ôˆm•£…^|F²FR ¯álc˜½wK66®¶‘Išò^‹eéKº³.{£HÝÍïS¯Ïh=Ã=$~Âú.“¯����IEND®B`‚IMAGE 243 ./arch/exit/magic_portal/magic_portal.11E ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿŸQ,�ŠŠ-ŠVÿ��c2�c��1�ÿ�����±!!�íí²mÏ^���tRNS�@æØf���zIDATxÚíRË€ Ó"u–ýÿ÷êôà…áÁ›±aÙ’=ÚÓ'¡WÝäiJ5†å<º3ÜR’Â1]›˜X”vªÉ–’ÍàìU’C±M¤c@a—ÂB[®Rp¯i::­Zr• á¯3zn>}‡Ö& k~t°¯ð#ó‚Bé����IEND®B`‚IMAGE 205 ./arch/exit/magic_portal/magic_portal.11F ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ�ŠŠ-ŠVÿ��c2�1�ÿ�����±!!§Á���tRNS�@æØf���]IDATxÚíÐ;À0P;‰©¹ÿ…ûQWªŽy’™<�Ø>ñ;™¨)a¨+ZuÇZd¤ê rÌ€]bŽð Q r]‘ªÈ¤•õLZ±Ð\aH¸SKÁOwûÛ g;£¶ËÅ����IEND®B`‚IMAGE 193 ./arch/exit/magic_portal/magic_portal.11G ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ�ŠŠ-ŠVÿc2�1����±!!�ííÎv–L���tRNS�@æØf���QIDATÕÁ¡ €@ †ÑÏ4-çX„ÐuÜU !!alä•xþ&áaðð……Ev ±Ó©4'…ìl+…¸¦…µ;)’#IyxPÙf‘ â^Ű ð­%A'����IEND®B`‚IMAGE 152 ./arch/exit/magic_portal/magic_portal.11H ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿc2ÿ�����±!!ᄱ\���tRNS�@æØf���7IDAT(Ïc`r€gŒ¡ÂÀ•ËÀ€"`àbl€ªÑØ@…/ÀÌ(€,À"Àˆn‰‰3Ãð�›¦'ŒU¿p����IEND®B`‚IMAGE 135 ./arch/exit/magic_portal/magic_portal.11I ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿc2ÿ��±!!¼-,t���tRNS�@æØf���)IDATWc` /`t€2Û Ký?Ub}Â`v`8�•ú�Uó‡Î��HÇþæ ûó����IEND®B`‚IMAGE 121 ./arch/exit/magic_portal/magic_portal.11J ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���!IDAT[c` 4€ˆ0§`Z�“`�±`\ �?>Ÿìå06����IEND®B`‚IMAGE 115 ./arch/exit/magic_portal/magic_portal.11K ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDAT[c` 0:� &Áü�H°5Àe¨��Ÿzí7ý^����IEND®B`‚IMAGE 132 ./arch/exit/magic_portal/magic_portal.11L ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���,IDAT[c` 0€ Ábq� f ÁY’à©ùbl %ä�'Ã3Ù_����IEND®B`‚IMAGE 121 ./arch/exit/magic_portal/magic_portal.11M ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���!IDAT[c`À@Ä8‹(À"Xà, (€³��Ã@)7����IEND®B`‚IMAGE 308 ./arch/armour/cloak/magic_resist.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���°0`ÿÿÿ oŸ¯¿%ï _ O#ß Ï ?(ÿ"üW���tRNS�@æØf���¯IDATxÚÍÐ˃0 DÑŒí¼¡íÿm'–Xá°æFYÍ‘IïÊÌàg·ãÊ,Þ¯ÄÀÔ Xø®*“j))‹jYiIqs­¼;PjÕ¦­í�÷öYmÄ,ÜÏÕ§=�ôþÐá7ÄÁÙû3ÀÉö` ÿ‹ZàqŸÑKO••€á…q—€,$˜L$ßÁ1ÄËcÜÀw‰œ‘÷#‚†1¢ÙɃù¿¯ëqœP\y5£����IEND®B`‚IMAGE 186 ./arch/connect/magicmouth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE-ŠVÿÿÿ¿¿¿t]���lIDATxÚ­“ À0ÿÿèuŒ lČҀ¥pG)¨x…˜Ãbà(Μ2/ŽC†ã”áxÉp2GGÃ;�T}kå9èU Ä(ø +?_àø‡ ç’{‘»™ç!OTžÉ<Õy/òfåÝÜjÀ55 2*;¾����IEND®B`‚IMAGE 453 ./arch/planes/fire/magma.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTE���d�d�;��d �d�d �d�d�d�d�d"�d��� ����d�d����d �d �… �O�X�a�d������ �$ ���d� ����� �I�d�& �1�1 �6�9���� ��‰�Ž�Ž�.ÕÂ"���çIDATx^}‘׎! Em`zMïÙÞûþÿÇ­³—ä¼ù,,Ha­Ts-g ô²4*„Þýã|‘Æ„`ûõÕi673-xnõLÞL}Qy§gÆAÃf'¹jsa€/9ÿy)¹ˆû Rû ÓY^_üÝóÂás(‹ !zñÉcÙücà›­½LàR\Hž§Z�å'qÕ›zßYîT€»‘é‰ÚFwðWw$ €ï‚ `à¢{ nTþNš$¹Uqå fDTí²H†ê:Z14tGÌò­O<¨Ö–U&|émSÎä\øè†*DŠÜ\����IEND®B`‚IMAGE 950 ./arch/planes/fire/magma.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��æPLTE���;�����d�‰���d� �d�|��ƒ��ˆC���d"�� ��d���L�d�d���"� ��d���%�(��*��*�]#� �]$�_&�� �d �d � ���d�Œ�Œ��K� �’ �’O�$�¡�w�w%�y��y%�zc�{:� � ��d��� �� �D �d�I�d �1 �1$�2'�3�6�����Q�U �V�W���>��>�~2�~=�;�€��‚>���ƒ#�ƒ;�„>�‡�‡;� �ˆj� �|&�|6�}��}�}8�~�~���=��M�O�m�m!�?�<��<��h%� �e��h�*%�,#��� ��1���-#� � ���i�j0�k �k"�l+�l2�m�� �@�@�A���6�82�X�Z �9��!�� ��n�q��q"�s%�t�v��¦E�§B�ªG�”–��‹IDATx^m’ã£å0Å3).m<Û¶mÛ¶µmÿ鶯ݹùrfr~™´3Aª ©¡c!¦Ùó=\:ŠCwzKË¢œðË?b/Ý�¿ àŒíÛ¾¨k²‡í¢XÌrŽyŒEB\Šò&–¾”Ä ±l‚tOpe àV�Y‚-Ü7PfµöÍû3Es@:D¯çùÿôQ¹·6=º…)Kÿ×v >™7¾žR6ãÚMäzQ'$SÃiYzßX7ὋÔÍòë�‡óãgÉ^Œe@?fܔԿ÷¨v’†žT/œ¿ ýc3–kx™û$¾FÙ F–SP<;öô­ÒVþÝ5 °Yò;¯°2UÙéY¬Ð�;ÞŽùŸ…<2`áVACÀˆñs ²ýÏ»8òÕc‰ûuº ô—ë}ÈTƤJåTH\±é‹„T±ýlÜÊèˆ î°›Ö'EmÅhŸ¼SºXVëãïW(€Én"”)Üc.YŸ7‹Ö?­œ6LéÌ4Ð����IEND®B`‚IMAGE 673 ./arch/planes/fire/magma.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTE�����;��d�d��d�d�d�d�d�d�d �d"�‰����d������ ��� ��������� ��!��"�%�& �*��*%�1�1 �3�6��6�82�9���;�>��?�I�O�Q�U �a�d���d�d �d �d �d� ���� �d� �� �� � ����e��i�m��m�n�q��s%�v��w%�y��y%�zc�|��|&�}��}�~�~2�€��ƒ��ƒ#�ƒ;�‡�ˆj���‰�Ž� �$�§B�ªG�ˆ&U��*IDATx^u’ƒŽ1…«1~¯mÛ¶m{ßÿ¶;(¦&MoÎùns „â/CHku0Í<Ø×�¬©6u~y¤RÂè¿9푼%\�¸ÞX¿¶'îIf*Rh@ÈöÌ %«DgËcxÁ gÛ;&ÂÄ/À&²½¹õòýšöë¢~ýþLçf´� ïž`Ð׋گïçòü•VºìŽ-µ'çuqVcGWÓœ�L–üQ¤ëâ$E_Öô€ÓUùtü`'2†z2À‡iûu\iz»Ê¦�x€j!QžÂ[¤ù¥TÙ?Ðçê>Û—•Ì9õ÷»ªêÛ‚?,9Ž­ÀU¡|WÊtZ‰ì¹N´úL’(€w@Hü¬$BòåiO»H̸vÿÅ?O. b[Y%����IEND®B`‚IMAGE 771 ./arch/planes/fire/magma.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��tPLTE�����d�;��d����d ��d� ����L�]#�d�d� ��d��d�� �d"�… � � � �� ����������� �� �%�*�-#�1�1 �2'�3�6�9���<��<�=�>�?�@�@�A�D ��M�O�Q�V�W�X���]$�_&�a�d�� �d �d �d� �� � ���d� � ��h�h%�i�j0�k �k"�l+�l2�m�q"�s%�t�w�w%�y%�{:�|��|&�|6�}8�~�~=�;�‚>�„>� �…?�‡;�ˆC�Œ�Œ��Ž�K�’ �’O�¡�Z �¦E�í¥ÚÓ��JIDATx^}’e“1†CÖë~îîîîîîîîöçoÒô¶lš_ yB È…{u€Ç‚Ùw¡¬ `' ŸìIa6œTEÚ´ª#�J ‹rqM:vô�&�®)·BuH#\G@@ý§�s*Ê4ÓΗ¶b¼q@jöBƒJàï««e¹©�hîb—IÈdY\˜ò‹z¬¼Æ7ì†?Þ?!�ѼïÍÝ1/Ò ~3ôøFûºÅÖ•ä¼Zg³ï»ØAÔ[΀ì  óùu»:Œ÷F@^>¾î®wÓŽU¹:úyÿ<OÿémÞ¡úÇC AêËÙF{,gޝ�0€Ž:A€4A6©E$¬6ÇÝ Ò›p‚ëâA‹Qœ±~óÔ+:Û¢­ËÛJæ ýöÊxH>¡”qk?Ž*Š•aÙ*’¿°¬­Ñ—˜ô {¹ ìk &Ÿ����IEND®B`‚IMAGE 156 ./arch/misc/magnifier.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���AIDATÓc` ˆ:@hƨƒuÕRƒmÕJClÕJˆ"©Y« Œ4(ClT ®®n Ü VtKÉd°’ìK�hÊ Õ™(����IEND®B`‚IMAGE 183 ./arch/misc/Container/mailbox.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaÁq8G$ R-���@@@‚B'„ß_}���tRNS�@æØf���JIDATxÚí“;€0ÃÊÏíýOÜÎI–,xµ•-í.À³ h ñ.P –e,Ø ‚¯Á£%8Çu˜ÊþxkÀa˜÷«|ÅHðä D$½����IEND®B`‚IMAGE 249 ./arch/monster/humanoid/Human/man.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaÁq8àààG$ R-���ï§_@@@d3‚B'¿¿¿dE„s¬1���tRNS�@æØf���€IDATxÚ½‘1Ã0 ÕHVJªÿo­Ì5=)Ow¸A¶§AHB ÍO%8Bf@* ŸÛñz¯…‹»Ë@ùkðM áYWá\ÀÝk>¬’Ÿêý’=õ dŠCЂ ¦`JÐÜ:¦Ö{B25°B öï}ÈCzpG]����IEND®B`‚IMAGE 296 ./arch/monster/humanoid/Human/man.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VaaaÁq8àààG$ R-���ï§_��€d3‚B'¿¿¿RãÑ���tRNS�@æØf���¯IDATxÚ½ŒAÃ07‰ùÿ{ã*•š•+õÐ=8Rfü²vôcÍOae="úª{ìË‚HÄJ3ð=¶Í=SÄS•ð-3}0w=GîS³˜Ÿo* Ju^¨ûBe©ÞøAS1Pqä‹&ƒs!"n¦5BàÝæ€G�·ŠÂu?>�á3�ë%�<0¿\xqÐÂu¸(ÔïYàfïãÞÀ…‹7âÒ�œÄþçžý›„‚þ����IEND®B`‚IMAGE 260 ./arch/monster/humanoid/Human/man.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡Áq8àààG$Í…? R-��¼���ï§_@@@d3‚B'¿¿¿=O ���tRNS�@æØf���…IDATxÚ½A!5B&(øÿç÷ÎxJúÚÍ”eûÃ4˜€3ÿþ  ÆmaN¬m[@¼Ø6³âõÚV‘` ‘ãEV±ß{OŸA+Ù_·€ý²$«´©Z±¢•(ZûÐ�ÐH૽©fPk³ôôžÎ�|ྠT§çÁ¡ýŸ/£\^¼éœò����IEND®B`‚IMAGE 275 ./arch/monster/humanoid/Human/man2.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE���,,,$$$ R-���BBBšl>ÔÔÔAAAd3333G$­f2ªªª‚B'¥sBdE@@@???!´Fž˜ƒ���tRNS�@æØf���…IDATxÚ½GA &m„Ýÿÿ[\qÏA_«T–éW[×c@>Ž…à'œë @…¥è„—²Ìxyæ‚ópP ”üÆL\ت*%È[¨U3™uó}Œc”¹3[Î…{ D\ $`N0B‹Àw‚M.ì­µ©°C!FÿÞ Íƒ%ÙGÉ����IEND®B`‚IMAGE 320 ./arch/monster/humanoid/Human/man2.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE���???BBB R-¥sB333m@,,,šl>AAA‚B'­f2!´d3ªªªÔÔÔ���G$aaa‘°���tRNS�@æØf���µIDATx^½ŒI‚0™˜õþ‡5@ŒOÒdá¿a¨êÂ/{ÌÃÜçYèó ªC¯ “NÝ‚÷ª=AÅ‹ÀÞ“™‰H=³Á™Žíç÷äˆß£VvÎu #¿ N˜cË(Æýë{çÂ16ÜÇPä*¨ª` áV€z`Ká Š«�œ8BcÔû-Ù…@H‡�Øò4…Âaêa§PÃ)™|YÃ'eñe­j &_[×`i Ëþë^ù õÐø����IEND®B`‚IMAGE 278 ./arch/monster/humanoid/Human/man2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE�  R-???,,,BBBd3AAA­f2333"""¥sBªªªÔÔÔm@@@@‚B'!´���¶Dœ���tRNS�@æØf���ŽIDATx^½ËB! CI[ÞÜ«þÿÏZØ7.=Ã.‡„!ýŠ+gPa�™åx^¼×§†1˜p›‰‘…&Íœèõ "[‘@µÖfM"!ð?ä '—X0§VöËÕA˜zÌ)¤ªÚã\»–RRˆnáEŽÆk­Ù•Ü_sÎ]ÀØ”â_5¬®4^S¹0ôÞñðY x ����IEND®B`‚IMAGE 201 ./arch/spell/Bullet/manaball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���qIDATxÚ­’ À0ÄÎÿztÐ…›Rh`´hjÝœîP vµ–SÁÙÒÒ³ð®&Ûý´É"§÷Øó`U“ ,HýSXí¡>Œ‚¿y@ü]VØåèçmøù,0è8R?…B>pUàfF ùW˜ ê<­UZ­(œ����IEND®B`‚IMAGE 212 ./arch/spell/Bullet/manaball.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���|IDATx^5Ì;Â0ÐA4Hn)|H)|,ZK 7€kP%Çq¹+QËÑk>Ík惴Wüx=ó’Š69씫dèÊìÐd6ÃCÁe99\YqNE1ŒÍ¯èÖŒX.€mQaFƒvvS½yz7$òTà 1c”ôo¶sUi­Ïü����IEND®B`‚IMAGE 215 ./arch/spell/Bullet/manaball.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATx^5Ç1 1EѶ´鲎aŠl)à w`áB§°°t Ó¥3Bš?$üçƒÍá^KüóÕrkŠ]yG %‡dT« Ÿ™³á8 H¾:}"VJ³Õ¸± ºÁù.‰ú0žÍðg—@VvµW¡ëL†NË‘ŸcH¢™¶*����IEND®B`‚IMAGE 211 ./arch/spell/Bullet/manaball.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���{IDATx^MÊ!Â@áßaH¹'!áP•$»8WàUWÙ# ×±ñ ݼá%5˜OLF`ù™`·Lƒ¾ã2j@9^äÁfô$ƒ³ kk9°[CõN§ê\µMýü§‹ìÈöÁ|xš:ú· SŠÅR“ᬔñ•HiVQù0½����IEND®B`‚IMAGE 201 ./arch/spell/Cone/manablast.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���qIDATxÚ­’ À0ÄÎÿztÐ…›Rh`´hjÝœîP vµ–SÁÙÒÒ³ð®&Ûý´É"§÷Øó`U“ ,HýSXí¡>Œ‚¿y@ü]VØåèçmøù,0è8R?…B>pUàfF ùW˜ ê<­UZ­(œ����IEND®B`‚IMAGE 212 ./arch/spell/Cone/manablast.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���|IDATx^5Ì;Â0ÐA4Hn)|H)|,ZK 7€kP%Çq¹+QËÑk>Ík惴Wüx=ó’Š69씫dèÊìÐd6ÃCÁe99\YqNE1ŒÍ¯èÖŒX.€mQaFƒvvS½yz7$òTà 1c”ôo¶sUi­Ïü����IEND®B`‚IMAGE 215 ./arch/spell/Cone/manablast.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���IDATx^5Ç1 1EѶ´鲎aŠl)à w`áB§°°t Ó¥3Bš?$üçƒÍá^KüóÕrkŠ]yG %‡dT« Ÿ™³á8 H¾:}"VJ³Õ¸± ºÁù.‰ú0žÍðg—@VvµW¡ëL†NË‘ŸcH¢™¶*����IEND®B`‚IMAGE 211 ./arch/spell/Cone/manablast.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V���Q¾Tg���tRNS�@æØf���{IDATx^MÊ!Â@áßaH¹'!áP•$»8WàUWÙ# ×±ñ ݼá%5˜OLF`ù™`·Lƒ¾ã2j@9^äÁfô$ƒ³ kk9°[CõN§ê\µMýü§‹ìÈöÁ|xš:ú· SŠÅR“ᬔñ•HiVQù0½����IEND®B`‚IMAGE 313 ./arch/spell/Bolt/manabolt.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;4 ���PLTE���ÿÿÿÿ¤ZÏÚªö��ÿhàW?���tRNS���……M���bKGDf |d���ŒIDAT(ÏeÐÁ 1 @/.!uÑroʼ¯'Ü y„€WöOƒ»6û=즡soÛ <=m”–à¡g?A½zÅs›y3¸] ï}D—t*j„‚a‰¡PâžêkP3Më¾Ø!ƒ©-<,´š’• Ê–#•+L` lá=•ã©>þð’@L½°-����IEND®B`‚IMAGE 338 ./arch/spell/Bolt/manabolt.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;/{Hþ���PLTE���ÿÿÿÿ¤ZÏÚªö��ÿhàW?���tRNS���……M���bKGDf |d���¥IDAT(Ï]QÁ Â@ ‹Ô7 nÐ"Åí›S\æè‰ŠýGàG“»Ÿ-'±}"å)+žÎp¶„ xOã.½t©9Ûã™Hî‰p~M¬3Â-­XÉ8²'VL®lE àVc!2|Ig&Ôä¤É-çœó ]¬3DÿÄÍŽN÷«,l0ùÒÝA†×œžrj ˜åËIbÕ"&„ ¿õ>†•6lšbûüà "ßµÑ����IEND®B`‚IMAGE 299 ./arch/spell/Bolt/manabolt.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;2â}$'���PLTE���ÿÿÿÿ¤ZÏÚªöÚªö��ÿhà'VW���tRNS���……Å$¢„Ë���bKGDf |d���zIDATÕÁÁ Â0DÑ/ð)…¬4[�ÒN!”@ðÁíã$ïÁ/{°N O õ Ë;˜”uc·d5 ÛAc@Z£Û¢IzáIJÛ%Û+>•|B’§@éR´q·£§c ¦±Ö`ÚÖ [±k=Å¡epˆ+_NOþÇñšÅ¾„����IEND®B`‚IMAGE 327 ./arch/spell/Bolt/manabolt.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;3•z±���PLTE���ÿÿÿÿ¤ZÏÚªöhà.¯'ý���tRNS���……M���bKGDf |d���IDAT(Ï]‘Á Ã0 … Þ Ý#(åÝ� Üî¿JŸ±ìŸ ,’FîV^8ôÚF^…Üd/¤篊Ö-èZþAj3¤fI¤ž‹Ãš`ºØÍ©G䇵Hó¢ v+¶E·×3æœÕb‹ˆw J«ç/¼‹(b‰[ò DÆäÐÙ)-ö õ™@Ž`^ë‡Ý5ínm[‹ÈÖFl­þw3"Hæ‹����IEND®B`‚IMAGE 311 ./arch/spell/Bolt/manabolt.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;+†Œç���PLTE���ÿÿÿÿ¤ZÏÚªö��ÿhàW?���tRNS���……M���bKGDf |d���ŠIDAT(Ï]‘Á Ã0 C )¹ú!f69,vÞ'l4ôÿ?¡‡1¨ä[–"Ûf¿Ê2.Ô‡ÞMAB$©‘ š‚§oˆ;([lâv�N®ò%É‚“Izb´y·ÈâúŽÁÑ`P:hGú—Gñ·€i§ ÛwÙr(XÅš¾*&µ,¹‹|S ·ür‘r +ÛÝ����IEND®B`‚IMAGE 340 ./arch/spell/Bolt/manabolt.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;1{tu���PLTE���ÿÿÿÿ¤ZÏÚªö��ÿhàW?���tRNS���……M���bKGDf |d���§IDAT(Ï]Á C! C#ñÅUçˆêˆ3U¼A;�ûÐÛ'›-“øE$>“^FºþHM†#Ó<é:ó™ÆgÒà{Ä<Hn£ÂH÷T‘޽d‚t¬¾ B {‚ÛxÝFbÞ î] 1ÊŠ­ØäеKN,[â^–Œ:A׈ ò£Ó‰¯Ã\lou1ö·R¯xL#dŽp•®¹õI!<Œš'bnòÏ¿����IEND®B`‚IMAGE 283 ./arch/spell/Bolt/manabolt.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;0 sE ���PLTE���ÿ¤ZÏÚªöhàÿÿÿÔLz ���tRNS��……hµ};���bKGDøoéÇ���rIDATÍÁ ƒ@ Á•C )À:S@äkà…¾ÿš<é!3ðÏbpKŸË+øéä&Õs�Ñâ4aiÀæNRÒv”ýž‡Êl«l·Ê'¼¨¼P-»µ¶[‘eí$kN ¬É¥š¥“KTrëdK²tò×¾óáŽ+ k����IEND®B`‚IMAGE 337 ./arch/spell/Bolt/manabolt.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;-ou)Ò���PLTE���ÿ¤ZÏÚªöÚªö��ÿhàÿÿÿ£Í ���tRNS��……ňo…ë���bKGDaˆë���¡IDAT(Ï]Á ! “Ð� œ…wΫ»òŽ”œë¿ˆ<ÁæÇjXnÍcÐ2r£¹¼WªÙ&ú ü¾<Û+‰ÇÒü5д/ˆ²F)k«T2É Ь{1¨ÝÒ¹I™×—\R=¨ì.6+†t)³ç�×´¡ç¬x’„Új,¸5“~^ñ—ƒÚ8$!§gù[R¢`œ,èüéŽãŸF¿����IEND®B`‚IMAGE 1380 ./arch/spell/Bullet/manabullet.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  {°���tEXtComment�Created with GIMPW��¿IDATXÃå×;‹]UðÿÚÏsÎ}ÌÜ;yjA¢1$")ÔF?‚•ßÀB-¬ì,$Ú|€•Úia#J EIP|¡‰¢Q0&ÑdÞwfî¹çµÏÞ{Ù˜Rçfqu»ùóc±Ø{màÿ^4mÀkϾ¦6ÛÕ»úsú@Û•ÃFHªb@~×cYuSçO—â륳Âw÷ìpO¢:óœÔ÷’Gèy¥‰éÂ.3ÿÃÐÌŸèÇ£g×o àüéRŒÝèÎÅâÊÑÈñ^#ìl¤8ˆ¦zYí ¢M}´ ÷6$‡¿ÍôìÇšôû÷<Ù¹öW¹j«�apWðþa#ÍñÈñ#­62•" ÈÚ.:àÙQ³tŒX@™¹âü‹å{GŸÈÊm~|£ê¯çk÷qý”<döfV¤‘‰H@�q-˶0vÜŽ”`Ù_k®a¦ñŒ~àçm&íæp£]>áÉÝft²wÖì²Ve–Xã -eÂÊŒ:4ÀbsÉFøÞª»z„™ïž Pûb®Š“½!º½JšNjR"Š"€$ l(õ–:qÕ_M©Y…Õ;¦šføÚÆGo,9A7†7àƒç–€D1ú6T ×™ `”)KŸWη:ú ÷¤·q¦ºž<0r”Ä0C€A F¥ þr¸·HÓt‰)\|ÞrãÖÝRÃ"VBQ#$‚`ˆ�FŒ|pE‹&"§U¶’©Þ÷S:i·ì˜Þ»F¥­J6käÁq„¤†$<�K@ v±©–ÜäaE1E§…º¨•½8àð#‰¿ïÐCçæôþç”°ßF£j16¾vÄäð ÀÅ‹õe»Ü\NZv%S\QR0£w/O¸HšÁ óÕÄ6'Wó•âzÎŒ&D¤Bb0 ›{r^™’"­ Äþ3}=<{ì©,L}À^}(׺”o®§ž«ÙµæÚpÎÎ×BèŽ÷*µa9„B=Ù'žÛ­¾é¸üÛöŸ�Ž?Ýá=ýý_£D´5Æé¸eÀ.ÂËÒ(#)S½•99†^¼ÿån��R“ý:Ìö=£ R)ÊÃÈ•¼A-*­Fú«„þ|+oØÎ°;;ð~fz/J’> F` ^—¥ŸHï[­Ûô'�-7pû£ ÕaKÉi)ôV!6\FZf3#¨ï@@;áéÀ…kŸ¡öUÓ„êõ–WbB¨¨I‡„z—R“}Ê‘qÿK½|yå#l4Ëðh>©‘cVCä06"Yï«Á{ÝN¿ õÖvm¤” A:Ž],Ôj» s?b™[Õ}Ëj _ðÎ^xõyØÔ@h™8®MÉ›Ý&TRÂä]1ó;xëY Û,)%DTAÂG´*JG|h©ƒ·ž#¶ °¾§Sž9L‘6x8N:˜=‹ ü €[¯=È~;ù·t^H1ÑB–å: Zf<ðJog�„ ¿H-Ø„•ÅøKÙŒ�’´ó8yªÛ(¤¤ ^ŽK¹ÖNžêî<à¢hó/ÚМq¡:»Ù®'OuùŸd(LYuU_àÿ<^ÿÏýŽÿ�Ér­šjôñ����IEND®B`‚IMAGE 1496 ./arch/spell/Bullet/manabullet.121 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  b>šÜ���tEXtComment�Created with GIMPW���bKGD�ÿ�ÿ�ÿ ½§“��3IDATíÁ;l^gðÿó^ÎÍß÷ÙÎ¥FŽ•Ò6m¡A4JE©º@EU"[êÀÀRF¤T]X¾ZH ‚˜:  &ÄB¼°¡.u”¢J ’KK©SÛqì|·sÎ{ÞçyˆP†aS;F]úûûˆv‰Bé.,îxfž€â ì‚ÅòåäxÞÚ'QÓ^½Î«ÃÕµ•÷¯¯Ý_gÕÜÂc„{ô›Ÿü­]nÈ!¡æ(Ir FΚP…:–+êºØTñb ¬~ëÕc5þ Â=xígÇ‚i}ÕÀµ’ÊÎHU„{ \‹\ýÙ$æOoºŸ=’?«ß81§¸ a‡»‹®ßÆ¡õz8GÀ³©Éï+Ìx’RKˆM-Ì£C/P¹ì`…]<GŒ_û¬óîÜ‹O—¸Ãa‡.U«cÞ™Çëžv&™É}»hùI³U¥L¶µ-í-hñ ~Ì›²•þb±{íò3óT¸Í`‡ò̦Qå ’ì% (\ǵý„õ&M½M‹ÔçíÜ·ó–ïäÞø½ªz#á9¡ð\ÌÂô™ÎxÜæ°CŒÔ8 ©56)츴ü„8K (èRâ)ñ-³OY"•\‘«)?EI¼\îÙ¿è†Á(”ÆìÄx‚<+\‹;Ùd“ú,ƒ *µB+‚¼Õ$Íu™¶Ô°KEñHîÆ?9óàÁ uØ7_¹Ð"–‡eÆÂSfò˜¸„IJÊPb‰p"š‘ó(b!“`buHª&4{®ß\Þ§³ºâ°MÝn×ô¥ÚÛèèÉJF‡HŒ%2©!…BQX+d¤H!ä- %TˆG« 2FÉ`0ØQ²ñ‰Ã#Š8 µê+Õʵ¡¨ŒhT� TcÔ¨°Š´"¥RM6ZXX€Á6>˜F2Ü«†ï#gÆrß*3–ƒ­×ÊŒ�ÑF•‚BË(!ôÃ:÷à mdÔDiFʲÔDÚ˜[˜‡mzoÉ~åýÆúNF™tÓÖJÒfˆÄ‡¡®‡(TDcɃ¦o DOÈÑÀiú.‹\N‹ö� uئÎL'7Òrâ[M˜“Ö¨5#îë0öÒ²!V©¨:"$¬",a¨à‘åô Ƚ5¬†—¾Ü¥·9lÃÉ“'½]ÛxÈøÎ§2j™Žî¯kÐHz¶Ò!—2@Å•aD‰Ddo’¾1îFBÅU¯éCúÆ×¾÷ÙeÜáð!ÍΞ²am¹“8<E0eÔ¡Fk¬Ç%_£‚€ÔôŒ±k†}OQ—–LÏSrÝkvÅcìR„^;>twqøNuO%·&ãd¨ŠcQåyíkd 7“R`‰ì‘¿çbzvŒÚLM±4²½[!Æ~¤¸¥³Ñd£c¯>Rã?8l~úâk…Œ×ÆxãKªü|à0S¡zˆhJeD+þ|Êí×Áþuj^±e­? /üøÉø2^¦yÌ 6á°…Å/,Ú*mw–âß¿Âç"ÇŒØ*Rh˜Ò›ŽüUѰû•å=Ž÷±ë¸Ë7ñoŠ-8l¡ÌØ%zûá²|†‰Ç¡&”®ä¦ó ÿKËééÆÄÜ…å•ã _dì€ÃþúÄï¦Ó<|^ˆ§HÍÐ!ûKSoµdòtû§õüûå׿÷Àaßå‡ÞË`ÊX÷¨%›YñïÀ§ô„ÿÜï§OÐv‰Ã&ª[Á›1kÉè;I•˜âçqäÓ'h„]ä° g]]ŽªPà·°TZk.>þR2Â.3ØÄ·¿ówzù?û+ëoß,—Ï]œÛÀG„ð±ÿ£÷àÛ7 �m����IEND®B`‚IMAGE 1349 ./arch/spell/Bullet/manabullet.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  >”M���tEXtComment�Created with GIMPW�� IDATXÃí–Kˆ]ņÿµªví×Ù§OŸîÓé$šDÑ$4¢(‚—Ëʼn©Q|ƒhPDÁ±sާ:p F‚|À½z#1WÓ±“t÷éóØûìz-qà#JäNú›T­õSõ󝶨b‹-þÏÐÅ,vü™ž6“¢išmÖÛ‚:ÓåZ'™[¿êÞ|ô· 8þÆLrâ›§v|‰ÚSè*Ïtisî¬ö’¥O+Õÿ$Z|yà‰"^TŸ½4¥Uw¢š¥û×Üég¬oöºê˜®ËUnSî¬jIO–<ÿ©Šú­®éÿû—"ô_iúÍë3�@cëËÎŒ¾»n2=s¹‹ö:Cé•BÒM(5==КMÊÂl}äMVl°+ÿÝ8vÀäO xòÁ§BÀõ»oÃþ7bØœ£³õÊ¿Ö럷Ö5ÓŸËMY PÅy³M ]‘ Pc›tÝëZ™^%^?µ££(àèáI@þ·ó=jõØ…Ð6Ò2TJøvøyÚÊì‰ÚŽsÎ*·)åÃÊt«~¾ • È&(¤ºày³€õª´¿àÄüܼ„ ×dîtQ"ß%*™IÂÝ6Ö·"È}!ºÝŠ”†J$S]·î¬Å•êÌÄ iñ¡0)å<•ñ,4ó™.wþ΄/>÷r•åÙ®2©† ûáq%r@Xz¨ eÖpé3THÈyÅ *Õo»Y¿NµY#B*$Ft PhN�Mb8³:;ák ‡^ì‡56_¸ÿÙ»š_ÞÀf:èá‘¢¥Ãöh£"fhK”Mæ’¥ÐQ‹*=¤º`EZ (¢t3Åhä|­© xQ¬)`Æ`[úØd¤èšÅ"€ï÷1q¡`†Ž‚U–ƒ¥’àC¤Q\ë ã*k•PIó¡ ž)£&ÅÎÂB`˜I#`Nˆ1 h;J`ª./vë•åãTå_~a²¬¯( Šù)†·LõÆ?l`«&ÌØ‰S$ VO1–5¯]ásß«;jnÓp2æ…P!ð3_ó$l¦^B$Žj¡Üá.DGOIû�)� ´2Å$n^ÒúÉÝ#¿qûLÆ—Ai8Dn½ B^ÅŠ›ËÙžÖpš ÐP¡]+²b¿Ö‘½í¨ÞÇ{{ŸÚ÷Pyò‚Ixôðù `>¿«u“é¨hl}S„ßç’æJ‡æ²Ú!¸<QKéžÙ6³Z™@NLl¥‰§í·heê‰d¸\ìzs©ºäÕ«(Îüa¿ÿðøWk]T& &à¼Û’�wÃZ8uèTûÍÍ`YHÈ•ø©ÒJ%¤˜[™²"ÕF £~ºíX/¼Æš>Ú÷PÑü¥YpäÑ1’ý|R@)-Ÿvÿ¹g#ž>DÂ6QÄDŠF'ŒRuEz¼îø*7Ýw2ox´X¹hÃèÈ#c̶¯#·~‹îŸ.ú½Î׃È17I UÍ®¯ºiÿ>¸öñòÔß2޽R«MwvÉùvoíÇ×x¸íZ™é\²øu/]ø‚ýpà±¢Þú‚m±Åoù Ç7m2JDy����IEND®B`‚IMAGE 1521 ./arch/spell/Bullet/manabullet.141 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  !¹…S ���tEXtComment�Created with GIMPW���bKGD�ÿ�ÿ�ÿ ½§“��LIDATíÁKˆgðÿó¾ïw=s;q&“¤3i"%ÖDm¡6m£èBA:³ÐE$;éB\Èt@ "J7ÚG…¡vJЪ%¥­µ´J23ë9ßùÎùnïó<v!©cÒ•ýý€÷¼çÿá&ýö÷¬gí›zþüùï" ûêcQe3Q4aDZ¶×OýùckIq•çVæ€â62x+Ú5»I˜„GÂ4=á™(©?¿vÏ_î+úñÿMq›¼•bž\ê-‚ÁœòŸ*¢Þ¹µ‰WΆwTX^\qü§AäÒW-Er¬“Ò4“¿¿Þžl¼Ûöíùùe‹ÛÄâ+++zßC)ï²§wÉ‹6ð³¢õ¬¨$ÅŒ0ï=ÔùÇ™…3þÂ… ‚[Dx‹‹jÄå™Mwù =¼±PkuØZkB®:2?S‹M¬fW²bö êN¾ xÓÒÒ’`„ÿâ‡çž Íâ¡Üì|­ì¤3a±SÒm…¬ øo¢ò*‘ÝJMk'­'6FM¼óÀ7ïÎ ¤ØÂ;X^üýˆ„úEÖúËÖ¸éĹ€BSj¦¥æRS• 7‰ÝŒÐz. ôêÍ+}ît-*)J®NÄSý¹¥9›°xó?Ãfªía䤧æT’cÚBÛ¨"mFj®ÆÅû¶?Iª‡˜šãlª×Ä "3åZió¥O~£øéï~Ðà„}øÉwV[iÎÕœ%‹ñ3)w¬!XÈ$—m.š|�  LÀ ÖÏm%EMjvÒpì™ñô“íñ‘—üÊ{¸aŸ~³øâÝÛnõGÞT§×â)s¬iÛ#^ˆ=›ºWK¿`jbU‰K)\Vî}ß1 "_i£O™É_¹^úÒÜÒñ×8ìSÙ ›HûçUØ[Ál_3aTS7*µ$c£¤$TûÚŽ˜.o:fà³TÈ4°jþYņB7¤x“Á>}îÑ“ëàà)ç“çàÍVáóA¿É ßø¾zeˆ±¤VÄ”ÚQwÀN'G1ÏPjÆC+aJÞ1žŒL>½‹k †6ï_uô¯\ëNY”eQ潺ª:Þ£^<¼°²2ÈÀ‹À¶ì˜F4"ÊÎxϱxp‡!$â…}º1™ ž¬µd ´«a%!%g,… K¢JžØTÒxmˆëŒ˜Å¿9 áõÞÕú}1w© †7BJPD"R E(�ÃG¬ ±ÖÒp.ÌÎm6;ugçìw‰qÁÎ=q¯½ïYc2""„"ÚRÒ1µIÑÑXžÝÆ7Yå‹AíëL×úeùòæÕõ�Šk †ð!ï|'0Ñz`«PÁyÂÒ¤�"…d@PøFê:çmîò×Tlz./5¥ùÎ*.qƒ!,aI,·;Æ«n›¥ö=¿ä¾c ¢ì ÉЕ¨‹¸´]©m¾)¦~±�¶~±À¸ŽÃÚýxPŽòßT—k à¤Ëä„Y µÖ˜½°¤œ`ý€,eBöùþn½úõÇ?[áCúôã'*¯úZ Ñ³ÎF«ä¨ã©ä¼Wg¼å{²ÍyÓ‘šËˆ¾aÔ=MŒ? _ïâ&ÿ£_.^œ¥O€üý–ÌΩ‚bFM ÊÄ[ÆÚ‹FÃ'9¦Õ…‡O¸ Â-øõ·.M·âÖ kÌ]dÍ%M*žš]P󺊻äÊpmnéx‰·A¸EÏ|__öF§$e*¤¢M˜I¿—%»[ù½OÜÛàݧ´<¿luY­Î«]ž_¶€öá_¶�¦¼¹„����IEND®B`‚IMAGE 1345 ./arch/spell/Bullet/manabullet.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  o$÷Ò���tEXtComment�Created with GIMPW��œIDATXÃí×ËÜGðoU÷¯™ßÌz6³^;;É;á©XHDˆƒE”KpNH@.Á"R.”CN\9å_à„‘¬"!PÏÝÅ^ïŒw¿G?ª8Ž‘lÆ.Ô¥Õên飪jµøÝëW_þA àì¿§û/¿úÒr€½×EY<ÄLŸ�ý€ßmà{Ù|ýêŠÆÙöÀ™òrfò+ƒ¬þäõ««ì\¿ºZ¥íïh'%½`° ⮚ùØåG+òfšB:ƒˆG¡(è‰öÀϾ¹D¹C�.V§‚¤JT†Öé¥ý].ªÿñÉ7¡¹3¬qû²!&¦¡²JKÇáÄKÀ ôºÆZçÏprʰ*6HøKJ鏬両_ç¦LWŽ /!u}ëño¼tr%°Bú¸ú² Õµ5œŽéfŒÁ40þÛ,ÜUL¡X­Õ"οä¥;ÅdFCó€)PÃ"ÿÜV¾ƒOœûüÉ�®}{ bBë›Ïvº|$h0"‘KÙBFŽrS~­°e~ñÁÏœ  € >NC²&£œ*¦h8I8×k÷b×ôÇŸt'P‚;ÏU²ö#Öf¡²Ã4 SÉ5’&Ûøå ‡ÍþO¨ áSíÃî3”±¢-UR­Í¤O1jðÞÌš¾Òúæáû ¸ö­%(§Ý£´w¥‰ËiôImª¼ãŠIS`ÔB¸÷>¸›‹ƒ§ÞþþšîÛ5ìÎìWGíò+7ú¿=m,•™Rš­¹-LäÎͶóÕÇ®RH;_ßx$­,6ÎÀ¯~ؘE˜]žËÁ°nKRSÓôxhÆ7%an-òéàl½;üp=t“q€ªËçß{£³ŽÃáNLá ¤<ÍÈU;ùùn·8ß;.�°Jêr[¸I¹ËÆšI”þ‰£pðÝ7ÿüÓ§ïñ¾€û AâRvµ™ÆÓîç%€B@¯ V’掦@múØ}l/¬ýòÙu»ª64qù±›©¨º ¹±Æ ˜�˜¨€£€$ÁHÔœ„ËSîtžQî�[“šómÛžÞ¨ #Âa)¡pÖ˜ÿ`­*‚¤DC02b ²uœ»Âñ0X¶¥¾Ú`[;"A†™˜�ƒ@Päl¡ XºEËNKSzcœ'ºË‡îýÆÙˆho«ê ×uíµ•œË!†"p ˆ¨hÚÀÊ}Îû…mØÊ·CDïÎüÞˆaÜÿS6Ê&:0[¾0•¨j#*%Õ^Zžû#DÈÂÚü¯[Ùô—Ãl<Û@†þ1Ê'׈ttäžìe=Þ÷‡Î9— yÜC™8¸Æ¡ì}êħ.0ñßnúvm&o>öÕr±àÒ Uóë­^ºÑ`B‚ýnù„PÜê5fI{2’‰Ey»óÝŒ•ç^üm&~ˈ}G<~ß¾fï¼Öœô±™ß»|Ëï}Ôs{ÆZN ,µçw©+ÞêâzoÙÏnÜèðã§Ÿi.½XÉ}ýþöõ¦dƒZ’–«4ËÂ~¶[‹¶on}ý{Ï·ølÿg·IïB ;“����IEND®B`‚IMAGE 1486 ./arch/spell/Bullet/manabullet.161 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  - ���tEXtComment�Created with GIMPW��)IDATXÃí—KˆåÇŸÛ÷~—sÉ™™ÌŒ‰V;IHl$ÕJŒØ–âe!î \A\‰(È8 ݈Bqg.…]´Ð ,]4¤J‚JS¼$ÑØ8˜I&çÌ9ßùnïåqa ¨©:Ó¤ýo߇÷ù½ÏíøQ?�á¦ÿ-,,�d0�™ “å#/<R_ÊŽ®ÀŽö¾Þd:»¯33qó°[^óÌ“Ïòÿ àg›ÌC¸)úm$Ñ/Ó,¹Êy_ÊV.·ó•çuê¨}ë–Ї`‚!J”Ð÷ËÓzÅr`i~‰aïtKç@ýX¹Ía5§¨gIåõº4¯<úôý]ö,Í/q}ãì ¹Ês} ‡µ{FáܵVÇ3�Xs³iÝþÇ®£7¯ü·;6 ðêÿÚfyõzö7ží¯nG©£ÉFë$"¼šRûŸÛ«]&å§~Ó� °@OÁSúâGå§«MIBMtj§ç wÖ<ºSA÷ F"yQ LDrŠE^nQësõÚðþ¿Ýí7Ü=üAÜoU™ç~OœôŒH'Óî–ZŠíŽ~᤼ÉB¹ƒI8¥vˆ¹]•Ї‘®ý»Ñò&IméKÿàâÁæÛxÉ,=~lºÂñœèx·ªÝYc¾­°¡;¦õ4t9Â)˜N Í1$Ц)çÑRº*@/W¾øÓëï –—úïŠð7�^]8rkŠÛ ¨÷{ð;‚º­VmG!�‚ L’Ûœ`+dÔõ.40Ö5U 'ÕÁ3e†ßÇù7�þøø»³–wÕXÜã|½“Ád¥’pKU¡!Do8”ÚI‹»šqÇ{õx!¼o*Íó€þ=÷N>øà}öû&óE€ÃÏiZä§v7at[`¿•{1´¨#[mÊí’Ç€P`l$6""<Ú§BÜP“Ò‰á™a¹‘jú€¢«Fm&ÚÅJ×Å·Eb³…gµ-=`Š,*"0’XdY-©ß¬´ 7ôÄ8dÉÎýä 4 /Ê2E¢=dÚ.eeQÇlÅŽ™`!c0ET„3Œ�½m¸,m^¨ c ¼šQkíøÞãºa€ùùyÀPeŠš*`ÂH¡AA@�ˆb„ ‚‘ ² Æm�5‚¬ÄÐz;kzŸm´¡}1 —j@Ðà¡A %4Z¨Ç`Ô)aFŒ]DH0Q ‰jH"Š|BÙ‰³7;”¬-..† à2úm“³ç#]¨aœ”:‚ú`¡p„X± 'P{ ÐQÕ´q©B)¼Òuô᯻>ß\@ñÌ©OªÒ­Lvu…9–8�MM &ˆ‡�¦¶•Vý¨p97PVc?XG@Ý$�jzá\®AÞ%æ#"|Ø9œ×<œV‹¨ 0…�Ns; ±PÊÆ©«ê°™¡vq#Úÿâ~+•Y!5¯Ed^CÄÓ6صÜËÒŽÊÚ–#ë놺Ù/ÜÐ)@Jk‚ôIYùz3�_é„w,ÎUKÏ>é+}E™Ï¢‡}Îû™‘[Ÿ©}éɱWq­9tM,ɪäðDÜz§ã`|ÙVæ—ž_·˿à­Õ½·P0{…“Ÿ#Àw)DvÁSSðÇ g6!:~÷£7]>€/õû‡Å)Àt”ÈžV’ì‰%‰LbD¸Rj>%Ž¥=:ñëßýltE> _®]§ã*™¹zÛÔtkzªO0 Öëe~>±iÿŽÅ¹êŠýZ¾nû×½¸Ûß¾~3e÷£¾®ÏÁ·„TmO&^����IEND®B`‚IMAGE 1375 ./arch/spell/Bullet/manabullet.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  2=;Ô���tEXtComment�Created with GIMPW���bKGD�ÿ�ÿ�ÿ ½§“��ºIDATíÁMˆWðÿóœ÷ã~ÍL“Lg¦j‹!~P[‚B1"èÂPÈJPܺq#A‚ÜXÓŠÒEíN»,•.D5¥AíÂ$•&hÓ&MÒÉܹwfî{߯óžs#ÜÅ¥´‹Ò®t~?àÈ‘ÿw„÷pé|•KÚÉ#‡ÝÞ§|p= óN®¯\™ã»§¿Ÿ|ïòŸ—["øÒ¬žÙs7®B¹âº†9rmt>6¬¯jeþ04kÒw6«3Oða–\zªÚtÁ}½v³¯LÚ;ñƒ2Ì2ßE°°c"'P¯òÆKæÓ¿‘Vv�èæ‚3O ðA®ü²Ê¢—/4ãoOÛ»§YÔ0HHêE 1úºm(ÂXwâ*Dšl%§^¾Om½¤`þ  ¡!øR°ìË¿à½þùLub·¸õÝêæã"´’POoØOÂRÆ%¨}på]w»í[)+ J™:׃±Aö¦é²k }%³ù+ýÞ°JŒˆ@�ê])Âö¹>–i,Ä Ùž»ýÙ†Šm›ù„3qQ¶=‘|¼Ž“BÆ#Q¡ß™jÐñü3^ußAHip½îV—Hÿ·}ÝJ¨#´Sàâæ´}®/X ,\|úíS×Ë+Ïv±=™PΟP§ç åV¹‰D˜�˜h\l0‡'j}°êUe;Ôºòs%1d‚åtŸ¡ [ôhõ=¬\p¨öwâU¥&ýÃnR6usë‡?y¢ÐX˜twŒÖD”ïÓHRΣDD‰p"h…±O !`duŠc*ͽÓ.–¨ä $z>t¬c”@…ŸÚP¯Dõïï‰g «JlG‰;ÌtÀ+�®i,ÌâÞŒ¡ M f¤bEŠ4$z4rÍ� >DD­”¨0ô¹ŒhU¶Ú–«XóæaC씣²á5¢X[%ªÈK4ê¶ÚË1zM“q°+QE£H A0Ê'%)xŠ,˜¶ÞÑÌMó"Lm@Ñ!vÑICD7Z‰XEÆ“"'½Ž€7´¢Ëmlþàî!,yþGyÜ(û­¡]ÝZKÖs¶z“� KÚZVÔ¶¾qãòN1io?Ð`–)­I‘òŠÍ6Ô¿öhÿL&ÎØ¨Ô°y0“ÑÉÍ··_�¡PnŸëwXÐXÒøòvÂé¾ ÍFkN©'Lñ_$tuWÚi½£wÊ›¡•:‚£‡¢˜ü|Bé“jëvâˆÄ"ûyïþ‚� ísýK4–ít7ÓýéöÝk†ÚÌf‘ ¸òsÚwwUƒÁ‡CA<Ôd5Æ­e÷ÿøx¾ùûT÷äò틸zã ”RøÙ¯~Š…ïCcIÏÇLüw&¾ßÙ·“M»¨}t2mv¸“–š“«=½òêjoýú‰áÆ«™ÍßÄ=§¾™âƒÒXòùõ¯V37½Øo–qŸšØ†ùzj[ÅÒ�¾ ¡k^;Ÿ¶«—×Ê‹G¿×|„w¹ôdÅlñ¹"L;èv¿PÇùzãK[ù¢ oõìàÅÇúÚË'ϦÂûxý¹z8ï×_Þ'oµ­²,»ÛËúÕɳ©Ç‘#GŽü¯ø9Ô›[çDíE����IEND®B`‚IMAGE 1499 ./arch/spell/Bullet/manabullet.181 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  7TJ×���tEXtComment�Created with GIMPW��6IDATXÃí–[ˆÕÇ×eïý]Îw¾9gÎÌdf2±‰µ!2ÄVZñBEJõAZ‹˜úbKA m¡ ‚/“AZk‹BûÔ” Ú—¡!%Ø0õFŸ,Š4:ñRØ4f&sf¾ë¾¬>ù–jr’@ þ÷†ÍÖíµ�þ_9xïA¼Ôw.èâYÁ³D¾†þFÓä„$u;Ñ*D”+&°ù{¡õú'‡+·Ÿ·­@BÁJ|8åCx»¨‹ãßz|þôeøë¯—¹¯·L¿3|ý~ïÝmÁA¢!NŒ Hí‚-½„ êo„rôžÅ?¸lÏ<uÇ`Ë´ö‡«ïµÖ)ò*J°+ð‚ ¥m¤Ù$ÏÇ#I!¤Gö>þ¥3#@ÿíâÕê9lCu·{pÈŒÖy¦ûªg¦y2Ú¦r5ˆ5%™wnÒ†z^Øß<Óœùðé‹ ¦:ßá¯:͸Îî�í HèRJÛ 'lÂ=Ð*ÒLF�Ð;ð¾‘Bßl=µqbþäpí}�X»P>_{ùÌl1Jݤ±³Ë@2Èy€9Mƒ©@BŠ€‚Bí‚€m¤B-Êj vyþÅÏ Ÿ‡çe¤œˆêXÇêZÅñ¼‘djŒ'9ã Öd ( Ò@ä˄³Š‘ƶkC3£œêíƒ}2jpjëÌ Ç×"Àv£L©$ÕJçB0†ŠkAXC5a!­H�Bn”êþö¯¨‘2°´ \ñk+v*ˆäÄœ’æ ô@Ââ‰Ð‡Z<:b!@ ÄH‘bQ’J>Öíö �Ø‘JG}Ö&6¤ ‡Q‚ 1‘�©Àl$f10F31kÐ!oT9[‘¢‘Û6JqìB#›Tø!z°>@È ÄȤ@‘¥$&ŠzIœuã$ŽÙà Æë[ýn[¿^m~$Ô®xjË2¬·ÕÈéê$l¸U_Ké=Y �<*d¥U§£ó$QY *L:Uí¶·?ûè±™‹Î�Ê’ýçš‹åïüUM¨z«Íº=“vl/äqßÇ6D u(V§ÒÅrU†Õ¤¢âº`N¸ñÃ�ðáH_ñKÞè®­oîZ­OßY¶Ã›à ¢Ä¤*ó Œ6X€(ÑYÚW³œBŸXYñoDC·F,ìSè?=Í=rë·û‹þ oy`ׯ‘_¾ú~ÔúP/; W!bä}ˆ½¸¹:”;ÜlCSË&§Ø£)Þ^Ã\%$q#%Êpj�¼7ò4\ZXRÇë3$æÈCDî¡ ×X)¿Ò@±GÈOëÜH”E*MÇpÚ¶Rù®·,D˜üìÛÜrà’’|ù‰7³PJsnº Å@ÄOÒNþ" |Í@ìK[”Ö5’ëÉõoýÑíï|é²|ÌÂÂ�ì>¶ߟ“Ïå 7çv ‚=º}Öy¶ÎZƒÑ¹múºý×ë=ÏÌþÏ^6ó±ÿ~Ýžms¢ô›"þAçÝÕ ÐØy%—Þ:júèkÍáµÅÅÅð‰ÓpT:²ñï·_¸šW�ÒÍ!xA’ oì«Ê·fzãOϬ®ˆ��À±c”û¿ú'y!§ƒ—”´À!¶ÒLTaãÔ7¾~Çê‘¿üÙ~êF4*{÷¶íJ´<{îšßÅuçç|TD–½´ÿ²¾M6‡…º •ìRøî“w;;_>óÀOï{¡½ß8ïXg—ª²>¡XW$„ŸÄ/žxR×ë­V¬šG{ØÃg|Æÿÿ•ß|Ô· ã����IEND®B`‚IMAGE 615 ./arch/connect/Hole/manhole.111 ‰PNG  ��� IHDR���@���@���·ì���´PLTEb7¨–[{_RH"ª †n+‚o*`b_��h\0‡zR—{*z] ! ¢Ÿw_ —A53'vjC™iŠj}_ Žt"~€}tW++$g]<,,%/.'52'!# ;4€aac`bA:tkOD<mld?@>IA!oNE%€uS…xP†yQcW+XM'’ˆjYN(šŽjZP* ˜¤œƒ[Q+[VD¡£ ¥§¤*)"OI3Æ §A���tRNS�@æØf��aIDATx^í”ÅŽÃ@ÓFÂ233þÿíô¼QVëÓ´s\—"õ©Jy‰ìA‹íYC7Æ}ŒÖ]u†#=¾ÓÁwúë´0EáZZðÊýYóP<½dióÆCĦ§‡ÍþÅÝI–~^# óó«´©YúqSL´l¯ÞÍpçñvÂIÙ�õ^ޝ �ò•ÚˆZ‡álæ²€6­@Í dÒe öìèÄx?l' yˆÚàŸõĹáû7à5ràFŽ— |è«D÷G>ó/�Ÿþ€BÔ㬷Æã1# TÄ´oÀ·jd-m”3¢Ø‚Ohƒ€R®@TÎæÑ$àsÁ:Ÿæ—eW�«dGV)ªh±8Š�JkIÙ!QUR—�*Ü®ŠH­òQò� ðQ€/ TPÂ� ð‚/@þ0µ‘?Îmä/”6¯´˜½c‚ü+zzzzz~�fy]~ªç����IEND®B`‚IMAGE 561 ./arch/connect/Hole/manhole.112 ‰PNG  ��� IHDR���@���@���·ì���¢PLTE*)"RH"¨–[{_†n+‚o*ª  ¢Ÿ‡zR��—A`b_—{*z] w_ vjCŠj™i !}_ Žt"tkO;4A:D<?@>€aac`bIA!NE%!# mldOI3XM'oYN(€uS…xP†yQZP*[Q+~€}[VD’ˆjcW+šŽjtW ˜¤œƒh\052'¡£ ¥§¤ó-–¨���tRNS�@æØf��=IDATx^í”ÅrÅ0 �#É~Xdf†ÿÿµZ×6—(=Ö;¹îŽ]ü"ÂtçÂç�¦ê G&%¢ÈHg‚ô—EéÊ2$@[åôØß—ÏUãoxõ‹í=¿yð°Q5Ðú¯‡_ªæý²œn Þú­ú øó«'u°YY´ˆ·kg�iÖ­0>àR@4$1z…æV°QO ;6p·Ã0¶�â¨1Ò¡b„“ ÕÆàÓn;GT¶øH€(ÛùJ�¸N€LðquÖ¶ªÄ€© v¸^ï­1H¦GìZTø$8éIw|:DÒŠèÙ$}@ â ”|e Ã©Rè0AZ¿Ð^¦!Úë<dð ¨<izª+ÿL&“Éd>FLnfç–����IEND®B`‚IMAGE 440 ./arch/connect/Hole/manhole.113 ‰PNG  ��� IHDR���@���@���·ì���iPLTE!# {_RH"¨–[†n+—{*‚o*ª z] w_ —A‡zR ¢Ÿ`b_}_ ™iŽt"Šj��XM'mldtWh\0o52';4D<NE%’ˆj !šŽj€a¤œƒac`b2ôiI���tRNS�@æØf���ýIDATx^í”GnÅ0 ERÍí—ôÞîÈ<ð ’UÈm40àÕ žaHáVü:—‚§0»u Oâ"*ÚqøÐ?ŽKY$ØZPåúf}YÞ²‚œùŽOŸëc΢äÌVÿîy[¡Cú¶ý~¸ÚTE¦¯ð›¾'²-�A~ð÷f�k–FµPh"Í1Êí{:&è'´D(ˆ¤óÁPP„/‡û”L.-çH$UN§/Û„H1bÃ$R“ñ?h 1‘� Š9xL¨Œø }p Ti9 …*;dõƒ÷0u¼Ç¹ã½P:î+­Ó/Y ÿ–Á`0 ßÉ& Îb_Ü ����IEND®B`‚IMAGE 291 ./arch/connect/Hole/manhole.114 ‰PNG  ��� IHDR���@���@���·ì���0PLTE��tWz] w_ }_ {_€abŠj‚o*†n+oŽt"—{*—A¨–[0ƒ@���tRNS�@æØf���¡IDATxÚí”Á Ã0 Ŷ¤ÞZ¯‰þÿoyPØnv¯Ö]ÂÇâcqCg¡DJ×¹ÄÒX¬DÜ—~%ްÏ*DDS ê»Mwž¯±k„pÀÌ¦ÃØ7¢>˜;°}ÆP!ðéf4Îó wÌ;´A& º!’v'ÐA…Ì3ÈW!¹ ®Bbå øÉÏ”ÿÎùƒ’?iù£š?ëEQEQÅ=¾XW[Ÿ\|F����IEND®B`‚IMAGE 491 ./arch/system/map.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,-ŠVc2�c�Í…?�1�ùqcDÙ¤���ïå‹¿¿¿4Ú³>���tRNS�@æØf��oIDATxÚQA’ä ,°W‰ùÿw×bâÎÌe«¦ì&V! ¾îá«ðÿ„¦¨Òœ¿:1›�ð& ¢û°~b "tgªˆÄ–€Ç&ó€V+É\Ñ6®[óó— U™M˜Ä™]!½ä‡¹9›@¬‘¹YÝM%W:1_ æ4´ê¸ˆtØ{‚LK|Z>B¼«Øš±çr ¾N‚#…K N8_EÚK#D(2ÆJþ0YKá™Éð5Œ_ïI(:*¬Ë ÁÀ=¥Ñ6u$³A`z•&ÌMx�+k`Á£ Á“q`^`çܵÿH`”´g%äÓ†ñžˆ# ´|yÒm~NÏ\âzúpD{Ø´¤ô•ÑñœÈùIA ;’ª ðÊ„ñM†ÓJúû åpˆ ›œ[WûÜ•_ÒyȾªœòéð‡ ÀnC¿¸ç±)31é!«zIbQRw{¸C+âtí»uŠFú±ù ÆhÙq����IEND®B`‚IMAGE 304 ./arch/floor/marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE„„„¡¡¡¿¿¿ÆÆÆçççÿÿÿÑ ÜV���ÙIDATxÚ“[nÀ0g»pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/R^ [®˜ø����IEND®B`‚IMAGE 413 ./arch/floor/marble_blgr.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE�ŠŠ-ŠV¯/_ÿ��c2�1�cD¿¿¿��ÿÂŒ��7IDATÁÁi\Q †Q‘… xÞ[ "²Ë½ð‹¼í€.`JH"oÂçj}Ž (éÊQo¢ÌáoŽŽœçQDL%wåUõ›Xæ|(‰NB}FÛŒ:GGâÛÓøJ9o•pc¾Ô{â�`\ëFŠÈQúiLéýßÏÖNzëa\]"ú}ƒ?û4®Z›(õ/ÐûiÌÑ>},uäK‡1­¼nU¥¾ÑeðQù•¥c•ðm .õÌ mx]jÀ‚é W­U?ÀíGÃÄÑ‘L›nS еá*Y‰Uâ«?µ©³•Lh{ôaµÄÕ óx“޲UësN�ø_jëÞ �@—L%€q�w·ÇÚÀ\òI�ËN vÅÞ�Æ€ïÌ%‘ %SîéÚ–É«"¡µ‰ÕV'ÚÀ,u¾ÔI=g¯¼—’»¾¨CÆq±|����IEND®B`‚IMAGE 290 ./arch/construct/town/market1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE����1�999c1kkkk{{{Œ¥¥¥½!!½½½ïÆ÷ïïïÿÿÿ·Û¸[��� tRNSÿÿÿÿÿÿÿÿÿÿÿ�ßÎÎ���›IDATxÚ•ÎÑÂ0…ácíptîý_×&E-¤ÙÑ ’~þ×fO�âÙ÷Ïúq †BßOÔHxPóÿ�ì¿ÐÀ�<O�X Î8)@@€:�¯³ <+DxSð®ìí ßhô½¡¯™sˆ ì©�ãGDt�zÎ�ÔWÐÌ) ÜÒÀ¤Y@€J`Î[Aº®Í~ÜCn›;*ô����IEND®B`‚IMAGE 306 ./arch/construct/town/market1_east.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE�����t��…��›��º��Á" % , ,3/P)B$ôóÍ���ÿñ2´���tRNS�@æØf���°IDATxÚŽƒ DÕ Žöþÿo ‘æÊ´ÎSBC_¯7™È Àòû-Τt 7†„:2§4óø†Ì¡ÁÑ `+T®89ˆ3 J”Àm¨pŨ€u¾�kûyàü•ƒüüÊ‹œ3Øæ Ëóç}†¼CVÔ*2 õUUJÙò[”åSÀú¹|·,êJ-A–æÐ >íUÔ—OXÓ?í‘Nïb‰¹Ï����IEND®B`‚IMAGE 273 ./arch/construct/town/market2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEïÆ÷���{{{999½!!½½½ÞÞÞJJJÿÿÿkkkŒc1ŒŒŒ�1�sss”””ïï便¥üÝ‹c���tRNS�@æØf���‰IDATx^ÝI Ã0C¥ÿ=%ïÙVdCÁZt×ç,„"ž1~‡ì\Ð,¼eù¡`ÅŒ€Öð/¯Xr!ž†cPµ®J-H¾¦Š#’ÔvÅv–Д±QƒG¸w¶³Ô@1RW4ÅÎëTâ[³`ÀŒ`À*óÃ!Hq”$àšo÷ù™ÎçÕ����IEND®B`‚IMAGE 233 ./arch/construct/town/market2_east.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE����t��…��º��Á" % , ,3�1�/B$ôóÍ���‰ú£���tRNS�@æØf���jIDATxÚÝŽK€0BñS­:ÃýkH\NŠKãk ,()hÀÌñM~Á€i]§‘ é' 4`1€\(éVîÔ•d•â4 ÈÌè}k{d_¢õkk‘YFD<Q‡¢^•Ñ8æ„ãÅ#´IÖÊ6����IEND®B`‚IMAGE 234 ./arch/construct/town/market3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���999kkk{{{Œ½!!½½½ïÆ÷ïïï ^@���tRNSÿÿÿÿÿÿÿ�Þƒ½Y���vIDATxÚ“A À Äbµ;þÿÅ](bñ°ÓXa[‘Á JÅ!œÁ0xîêË[ã¾`„iø‚ PøU(‘Ä,ØBÄ9Ñ.zoœs ‘ýâ˜-ž4â;·`„ AKÞÀš îßÜ‚ ò#G¿ Z����IEND®B`‚IMAGE 274 ./arch/construct/town/market3_east.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE����t��…��º��Á" % , ,3/P)B$ôóÍ���7<šs���tRNS�@æØf���“IDATxÚÝ’Áƒ0 CÓ…²2’üÿçN¦‘Âi9Ï(ÅŠÍSEô²ôé…a^@¤å dBBY–r3H;áùüÁîNt"°]¦¿‚É è³žqÌl£;¸wBÎßA˜ÿÕ’iß U•ÖÖúý±ÈŸ¤¶ÏZ± 9‰ø • Û6òyÁÑS}a Œ'����IEND®B`‚IMAGE 1510 ./arch/ground/marsh.111 ‰PNG  ��� IHDR��� ��� ���üí£��­IDATx^5ÖmŒUÕÇá˨ ‰‰&|ÁÄðÁIÀÚM ƒ@h†)L¤´2EÏi…¾AÇ´w)pžv¤´0„iê)Q˜G¤-ÓJ[Š6Sؤ(¡…hÁ•ø$B¶é?ÙÉÊÉ~]¿½×úßëlFX˰‰…œ;}ÒƘl[‘^ŽsŒ!®ç2úŠÑ¶'(; ±"+wp;Cñ©I§E/«²âÜM_‰1œvoHE5–Õñmœó/sœþ0FÂX‹[¸ŽÍ\ʃ¼»Í ââQ­`b†xâ^^\c°RGÛîdßeŠ#1ZaʤðÇ6eõÞe#Т¡·új80ì^.$#ŒÓÍ®-v&=œ~ÒïÄTBw#§ðÆ~{èpS[‹™ö ÊV—Ö4<E�“íY§}:y¢Ã<V²œV­€;(»=ÎxeÒzÖp˜ÜÝÊ>ÛY"9g€ÓfÔôN¶M…—vž¢ìQ²¸U¢á‰”ûÚŸÿ¸Â^Ù¬?Ó]£PÆ=Ä—Õ°ÒÏ@ÚýôÒ|·­Û^ðß§/ÈNÌx8£4tccô’ôxzÄ›>1|†Øœñí¼ÏÕ|›sù"—3²LÃük´˜YNòÐOã#Zà?´Á$oñIñ1Np*sØÃ«¼ÉÜÈLþ>qíVï¬öú5î|À)Å{8åY�õâ8[î;íôi=ôpSAÞÆlÏ`›ò;xQ)ÜWÕœ %�b7?­`œW,)‹tu u J»c` —Goº\Ą̀‰í¶¥„á÷üZ¸ŽE,aA\DšZ±t3’<1’F‹Yìe‘œ&˜†N¤¨Ä&(»•åìe Ã\ÆR.Œ}#^¤û/w0̉}zè¯÷¸‡¯mwh£]t9¿ÆñÉ\«ähç‹yôò5¤Zù,x–û&©:Lñ.4çætø9—ɶ¬(ûì®Eb-‡˜¦°»ú Fï´nóö?®_r.çùõ^DÖr„ùœ›ÚÒpx•ñ�:4ÜD‡’œÝÆü9¢¦ØÃª�:L¶OR©2u%ýÕÆÂ褑è #Em›èrY•VMiÁxýƒIÅæzî &¦'ñi8ŸÞ*ð±À–2ƒ_ÉœÃ- 1bÖiÍß@H9bä‡c)ýûøƒE«Šo"àT1ƒ¡Þ—Ì?Á�‹ê·²’y\ÀâÀÂ0ïéòOJªfa(ë%²1e¼CýoQö;ÊzÚEêÍ\ÍW27ŒêZ2‘Ûåß¼´Õ_¤—»8Æ:æU@.®ìð̃¾VU´‡iîç·¶6rqÅtéà ^»Ë:V1‡yïkÑp€а”•ÁO—[Æ@$ó†sУÄ{bkðãw!Ÿ¹ÛŒL0ÊÌ¥#ê £ÉogvÃŒé`~É‚ä¦>&Ãðöìe +¹$IŽŠ<L?§žiE1§¸@ÙŸ_WqqÅ$Cºí'{G鋲MPF<”þ Ò/*./fs;ë{dß¡Í%ÉÜz^®˜¾Ÿ&ö$»±‹û³ç¢ºîìb×r5_â¿£ŽLf¥6!}o›÷xŽò˜[YAKfkabµ×Ñ›ÇÌ’éi“må%À«?4DIãÝc«ÝËþ"ã?±†¯0»ÈƒÅ@Ý”ŠÑv°1çŸ+zHì–¢ð'Ê~7ð³Û¨¥8’µ÷fOn0·XXœUÌå«õ*-Y&ßÜæ–±³$úÙ|›ç¸™)ÆåÛ‘ú!êŒxæ3XO¹œ_w ×îCXÈb¾Îó<MÐp³ZÈÈ ¼æN2.‰®nåWuö*^zD-æFp²Å¤uoQ¦ì¯œbŒïÉÓ8…ÔòGSÛœ`U­¬wó ž© G9–7ïA[tåÑ„›!6ñÙOií;ºÕ!ÒÕmë+Sîñ2eovårü™ÂÛþ‰AÂ.côØç����IEND®B`‚IMAGE 4750 ./arch/ground/smooth/marsh_S.111 ‰PNG  ��� IHDR������@���[a?��ÎPLTEÿÿÿžžžÂÂÂ>Â.rFþFŽ^BþJ:626þþn–fBV‚®†–^Š^bZº~">þR¢jNªŠ*ÂÒ²v^vª^z¦Úšb>šÂ¶žþ®&’Ö¾&®ö*îÎJþJ–ÂÆþ²Ê2Â*þæ¶æòâNNNúÞ–þ¶¾‚RþÞJÂ&î–Nöº‚VþÆn^þÚ–ÎrΦÆžÒ’JJJ¶bê’¶rþ’ŽþþŽÂ^²zZþ6ê.þÒªæŽþŠþž6ú¦rúŠ^¾jþrþÖª>þ¢&þþ‚6^*‚¦f"¦²^Ê~ê¢þþVªº’ºvÞŠ¾–Rbþ¦vêÚ†’’’b‚f¶~>ò222bþ ~&†¦†Úªþª€p§���tRNS�@æØf��nIDATx^Ęeì:E#Ûa(flf†ËÌL™™q˜™yþíØ8(§¯F÷ùëÒ:ûl'Šª[‘\ÇãÝf @Ʊ¶Zgc£43KÚúµÿ–f`Ü,e|J4çùù²ùÅx‘þ|—ýÝ Zz2ýÜ´Pif4oÈ8Qû­zôTˆSþèô± êM,ãÓ²ÏÏ—Í/Æ õ ž|ÿ˜ŸAáÉôWÖfæg÷ñˆ„ï[Ä ¸ô+ý…®ÚÍ•RãÍ€ Ÿ÷SP6¿/ÔèùúG¾ËN“é¯Ìy6ÛÚÇÍ- ¯ÚØ!ÿµ¬\ßÛÔ6ÎÃO•ÆT®¯L‰>®+ü$õ}É|9/Öÿóº¼?QŽœ¯(Sû ÿ­¡;œ„0HÎw3òå\‘žwµ¡/«s:×͹ʳààã*YýÖôÙJÅ>oÆTn·ôiÙç­–ù ú’ùRþëoE‰ç†$ŸëSó©³\MìéBªŸ«Lägr%Æ¥Pe¿·øŸ>ÞAÓ¹ÓÆËÀæ‰S¤½ÚP-ôž¶„[Úê´l°µÕÈŸD‘/™/åEûK¸C"ŸÅÍÊ�¥è ü¯ûø‚3\×Nös¹ äöw#9àÁ|éø×oüÐÛý£*ãÚ«Þ'c`©@E´Z¿¬«^•d«–®çäû>çùùrÞÑ õïÉû“ð™)~>c©ü£<}îïïFHôËöÅ~Eú+{«ó¸¼­¡©¼¬¡¹»×þy¦‰Ê'u} Íþÿξ"åÓÏ™8'Ÿù‚çäË¹Š‹ôß.kެ?‰äï?T&òp ÷Oç$ú cýEð”¿åïW¨¿bYަYg*·μ†ëVj–¾èõwê{uËøTÂ%ÉäS 'ôù‚§ó syÄý›Sûƒ¤ˆáNö²Š~ ìÏóS&û¡Ô_ “<÷~å{@ßF çùÏɰ¢ k¹º]¯èß6ÏüâÐ @ øÎåó\‘„Á󩟦¦Æ8ræ3Îý©\Þ¿Îós/€çg�ÿg»è¿vÝ"÷N¨ÁþõìùbŸ» ?Þ?³˜Z¨¿2r�Œ<#ÝÊ%Ç´ŒÎ9<Zîl›„·ü!õ}zÄO)ÒÓZôP䧨¶JyØ-5û!ç('_Q|îHû#ê?G}Pãˆþb€ë"‰ã*Š혟 —ïïïfðSÅú+gN¢þL·3ÉšÇ"8ÛZ½lØ)Ë28·mC‘Söð“q l¾"æ/u‘ðC.ò™?+üÔÉÙ?Í ù �gè‰ö¿Åòo¦•€ç'‹þ•a î¯xÞúï×*K¥ƒj±Â†ál¤|ܯB¥Z=5�@†¿)…^€ÕCúkUHàåNJÁüùþÕAäû„åSsáéßgù[�Õ*û¤ûIKìOýô�²ýc¾âºÙ\Þ_¹ý£¹²æAáÆÄ0’þÔÞIÏê{sè°Nš„Úzã´ï›½[ž‘À]Ê—N§56ß¼àyݘÏ@äƒÅ…šïKN,ØÙ[wèþ)A~j¯¸`/$öÏòdû‡þöPQ†qSpyåõovçfÁÊä~ƒúí‹ ÃÁ;;^Ãó\.¤Zþٙ׿é>ÉäY",lŸûùv…s–Ÿàsyÿío³ýQ°¿“ä÷×È—€ç$÷g>$;Èö>›Ã¥p½rfdµûÀ}îã·ÇDÇ+ºw¦¾÷~йúðÜîw¸ÿì8ýè«çÖ3E(㥥å̯ä”ä|]¾gqdmâg÷¢ý¯UÞ¿T¨ò`Àæ‹ý×ÿq7\€Ë�¶dÿ¨M¨éû“€šªªÚAî ÷MSÕ6u 2^ÖÆÍò¬ Emw0bù-ê'ḎëÍìP ëÈæœíŸ€,ß—œ0¿£gÛßd½«XåÁ`ÞÛ_ôg?£©òý˜¯d½Åú+3t ÚxËÉæÅ}B4­²sm4²×à1|”Bº¶iY™”úïA]×Z¶Åü¬¸÷ Ï}iþ|bÿÚÈ~œþPäçÿàO;ï³û‰ö·¬Ð¯:dò3ž³#éOw)Ô_ÙØ_ê¾k•­ñ|fVq¿i9ÝvùVÏ| ° °±¿Ëýõ4¬·­œn•ÙªÀ¹ŸŸ9ºÏ}É9Æòy±ýwÍw§¿=æ�¦—mžd÷#öúÛÔoZn\ÐeûÇûG&¸ñO÷eçºwÑ+馿՝dà‚¾ªyÍ«:qÚwûÏ=€Â__ óo¥±Íx†ö�šÝRMKø/Ò†÷ö¯?w3!ÈýíÞµ y_Ý@ü~ÒûwL~B<78æ+C7œèKÂ}ÙÙß>ùòš£Ï[™ÍârÿúË7ºˆù&AZë“—,]°Ëú~™å£NÏô–v¶/¼YWçûgÉ—òõ¹ ¾ÿæ'/m9HûëÒûLmí6ðlt?ñýËâþ£ K;å+©U¶Â€x7öHÜŸä\ûÍJI}ÊÆ½ë¸3Hã"þŒzÖ»×qe@þ¸2[ô�UÓ0ó«OY8gŠËÚÚþ¢ùêSY>/ÒŸåïž÷7,ûŒúT —ªg™SŸ¿?ßá÷“ÜŸç³ûw£~}ÊSý„÷râýüý³ÿ à¾ìܺqI=± öçWLý ‹úuæ«&±Î•m€Bæ=PÕ9Í»qÉd~¯ª -Ë„ÎÛÚ’ïó|Šûûñül•îoØç¶m óé7à6Ÿú„Lê„®U¥ý¯1ßd~~ÕÓŸ¯ú÷ß_䛺©ò(€ƃþâ›N}ÆÊÅýÝâ÷—Ë}Ùy´¤ÍœµÚx]Í~ürÿpæ¬Íý/ E1€@­˜ öú¼ºüZègòêr¶ N»åû<Ÿ¹Ïaû© „×Dÿ/É–IÀ`œÏ·Ø|ñ p]£ªº„û.›Æ8»¿JèK%Ð5¿½87éüªj� ç‹þ¡O瀋þhÈ^Ÿ‡~x<ßNÿˉj÷egüý±zÏꪖòxg=ðí¯Ü#š b|¼!ò³yž ÕȯÞc@â[_=eæT:ºy½¯�0î…ù&åÎh] ø"/|Ânô«{Ô7]ÎëÇ8|»¦r_QŸòø·Èîš6åÔ¼šèÏ÷SS<z¤I®ŠþÜgûE‰@Ø_væ¶;U€ƒ<\ÄWÜZÅ=ª¹àhõÏn„~'‡çÙ6PÞÿì¾ïsï³ù]ç•ûpn<º~éâZÅR”xþ¨Òu>Žø~…ÎG¡ÏûéÎç1?ä÷£ýõÈ?ísñÿðø|ÄøÐçùUæSÎç£Èï/¸#8ýY?ôù‹4Ê CC_v3{eAòü¥þÂêñ]÷ˆâyx€ZçÚ™ÜïÝÌæyºK¹C9Ï¿œ ü…Ëtþâó%ï" wÊgî{ßbÛ òšOyó}Ê9·\‘O9í·xÛçåIî8¦Ïù|á@9Ë}1qÂGˆß_ú™óyWæù¯—£ùϧ>ãÇnóüàç ðe�Ü+ƒ\\̨.ÿyx4Ï5- ìU-ô¿ð&ùFŠÛ`~V€˜?¼2 ûywð¿i«Zë»ä™TÊ?ä+!šrá ÷Í\_ÌïGä;™óNçß¾Ø/'_áÿQ>ùòx·Y)£\,÷Ÿž¯:vêU~»Pš»¾¿ù|Š÷fJùþ¿¸Oó³|†õ;Dlþ¥µÆèH]ÖÞ®u"Îó9_¢Ü|-äeß_¡¼#á _QâóŒW—µg>ç·ý|¤F\ìÇóú3ÿ´Ï[Ñþ®ëŽj îOrjúì¥ãÞA–û“úözË=š­ÚׂzMg¾µÞÂIÞýñÜàVsšŸÍŸ÷ãóWpÁ&ÞÛ\6µÝp¾È_Ãú$íg3ŸñV‚çù½€+/òÇ‚KüØþvÈ[‘/úsÓçC×u‡&éGýÙ9þÖÜöwó¹ÜoP¬¥#4­qAä'ðLÀó“_™g¼G÷¿˜É}ßïö’Ö¯[6¨Ä8Ä„¬ß óç'ùZ3ÎK0Ÿô®I8óÇwRùõý¡pÖ_p‘oöç¼áï_e¾a¬G¾";‹Ž¿¹±Ÿ‡‹ú€Ž*jï{ï ?›O‰ÞŒü›Y81¿Ôü‰Eàåã–Ñ"Þ:vÐfß$;Œ;¡ß›ä¤%xÚßáó³¹ÍxŽïÌÔ<±?å–ÏÃù›>›õþÿÚ¹–Þ¦0øÁçlJêìÓR )åUÞê“rA@ .„¸pâq‚N Ž ~.ޭ×Äއשê4žS¥Ñxö[o6RªŸ~�;(¿¿Z;®Õ;åÓIŸS¸jîP¼÷üþþÄG.óS¾?§¿¥_Á½€Ë|ù:ä�å÷/(ýÔ©3ºü?X@zÿ¨Ö]¿†wôŸ‡üxôßaŠüxçùì÷ü JŸ¿9?­òåù�å÷»z]þßÕŠø‹–€4&BWIxø‡šù‰wŸ-,¶ÿ›zÇ~€Ï2_å;�”oOôÓY·|>éýý!ÒðŽþDøÏïï¯òýaçõ'ý§Xïç+q>]æãMÀžo¯ky° ÑÏêx[¿ÀŠÌÇôWzÏù»ûWÐ_]ö @N„ÉþK½§?¬­¨|zÀ ?„̧+½FónþËø ©üÿõjË<°GÍ¿¡í@gÕ/°”ûS@þ\Ç»÷ø Ο+½ßfÿY©‡¢þsü_è×_wó§~î±ÿäï5?œ¤|¹ê5©7ñNþK;å_|~ãúçÝý“~îá/û <ç§|;?`vL¼k>vØŸûú›×.þÔopi>ôô÷ž:l]æÿ}Ñè@1t jl›¿°ûC3hñLú†Õ!éX<5ùøK½Þ¬!Œ\à“! Z02h o†“0LT0B`ˆ0Ψ0æ Ba¬QalQ¡:�€ˆ#w¤*`‡÷þ9T·>sW™Ùöî}ÿØî¹Ù«ßÐö±fzi mTÖKiÂX@ÄØµ7� ÷‚±þ?”œs(3„Ì×ø–-ßnÖ·ö¿sÿ0DÔ¿}šRÖ- Óªƒ€æ/#Ú–ü:åó}ô‚ôFˆ–¸­�ë˜åÛ;?c8(£+@õ`J/Ú¶;@ö'<€ÒBØòëùåûÛmã×LÌ3Ð#æÁØÆØÓ¾4KÇLi)ÿ)ê€48ÀV@©¿à14ç×ùözšôBñÝ|½ÁCñu ¯!©3Ê¢ʪ÷ú§~‚@è}XOþ?s~¥Kχ©ý)%Äa˯yKþ]ôçëMý^åÿ ïŸúò<©¿`Vóü$ÿ?íOý™<—<íO 1#òëÞ’2?Oý�†~Å3=oÖ;>S“QþÿF¶>á•>£I7éÐ郤J œž_×óI>ÞÈS~_û†’|=cf>ôëW ýà úÖ§ï7èêéþþ´œÓþ”Èg.Ëüº/’|¿‰§üü&rA—ôüéuüš¹?a#ý|ê'Ðéú 2öøMLë·æÿ8ïsÎJÄà����IEND®B`‚IMAGE 164 ./arch/weapon/artifact/Masamune/masamune.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���IIDATxÚåѱ � EQ¯ÿÿÑCSz¡-rh9½b¼;Ô#@J@<ûzÊ=“#ù'Ü馸vhqðz÷y9‚ëöÔãÇï³�Й�a0küÂ����IEND®B`‚IMAGE 166 ./arch/weapon/artifact/Masamune/masamune.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���KIDATxÚåÒA À@A{þÿ耰·Œ#¹-ñZØ X—ÉIŽ“à•ö1Ðδ/|¾]6~œÑ;c-Ïãm;œ¿tÏ‚âs]žçïó�ɹ�`jK'����IEND®B`‚IMAGE 159 ./arch/weapon/artifact/Masamune/masamune.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���DIDATxÚåÒ9 �0�A7ÿt<j‹ÛaÅBy|èœÎÙvÖœÆOêêó>¼¬Ã³ÃÉœjÿQÆâA-VwÏóû\ÂÍ�`6Äp����IEND®B`‚IMAGE 143 ./arch/weapon/artifact/Masamune/masamune.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���4IDATxÚåÒ± �0 °(ÿÝjtõ*ìɵ<’Kîµ[ìn.Õ!ÏϦŒ×›tžßs�¨q�RÓ­ü}����IEND®B`‚IMAGE 285 ./arch/monster/animal/Dog/mastif.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ���€@�0�€p `0�ZH°°°À`�Gll PP P�WQÄ���tRNS�@æØf���¤IDATxÚÝ’Á„ dßÿï®Uô¾ïÐf( aùë�ðÄC/|n`öÖÄŒË;¬k¸pÓ–«€èxŽ1R¸Ä‘‹œ3MÛ3…/ÐÞÛóKpІ¯Â¨`Æ A!Y ‡±”Ô Î…?sJ&îlße(ˆ Ì—}©D/ìåE< þË(‚õÂB;CcøÙ«o¸Ü ­QŽ×�óåŽ^?ÅD`����IEND®B`‚IMAGE 285 ./arch/monster/animal/Dog/mastif.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ���€@�0�€p `0�ZH°°°À`�Gll PP P�WQÄ���tRNS�@æØf���¤IDATxÚݒу ;Äûÿïmî*nèiÛçn|X3Ç_Ï'^k5ã ¿7(.lû42/;lÛxç‘Ö¦€qÁGkƒ›ñŸ›œZ¤œœ1SHØgÂÉ1 Ê‹E-,‚Œ£õ$xd”Þ/à%ˆË 2‚W¼r#jXO—… !qÿ,Õò„,¬|Jâœ%øCº¥2âì$h—ôò[žÔÊópx����IEND®B`‚IMAGE 287 ./arch/monster/animal/Dog/mastif.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ���€@�0�€p `0�ZH°°°À`�Gll PP P�WQÄ���tRNS�@æØf���¦IDATxÚÝ’Á Äýÿïõ¹6QÏNB;ÃöÂí¯ñÉçœÍøâ÷))8î*vÞ|ÂqŒ€É+xRÊ0VßJ)toFGÚ¡µFœ º¿Á4vñœ&`ë“U­u$âmÀ‹m€^EºÝkk5 «¬A2|åÈkÀ÷ƒ®~2îý§kà÷ «gE Dœ˜¯¨¿®G#ˆ‚ÙÇ׋[ôÆF©����IEND®B`‚IMAGE 288 ./arch/monster/animal/Dog/mastif.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ���€@�0�€p `0�ZH°°°À`�Gll PP P�WQÄ���tRNS�@æØf���§IDATxÚÝÒQ„0PÓ”fçþçÝÊŠX±=ÀÎ4<‘˜nÿYõÉR Vý¥�ùÙ;Áì»M ‹ j墪µ¶$À›h­'Áò.€Í…'/äb ".òI@$ @Ec‡— ªÐÞ㈪ýnÐÄÀJ›"Ú  Ä¯>�§`³Þ ¼¹�ìþ9ˆþ}‡þLzk?ï1$@|h@>~^6™Â+����IEND®B`‚IMAGE 287 ./arch/monster/animal/Dog/mastif.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ���€@�0�€p `0�ZH°°°À`�Gll PP P�WQÄ���tRNS�@æØf���¦IDATxÚÝÐAà DQ¾#¨¾ÿy+»NµH»îlb<O¥üO°ÜõªµVîúÛþq6à8üaZS˧àü¶Ö†fòœÂë±MÆœbÎtvc"¤¿1ÅÁ,_«Ìb=¶Ñ'л\}~„‹�ö�_‚FŸØXÑÔèŠ %D%@hŸö ØÄ7 d XˆL V`"W_ó#!~Éô©ÊF¼*ç����IEND®B`‚IMAGE 283 ./arch/monster/animal/Dog/mastif.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ���€@�0�€p `0�ZH°°°À`�Gll PP P�WQÄ���tRNS�@æØf���¢IDATxÚÝÒQ Ä P'"*;÷?ïmÚ¸`ç+0¡ÓÿšSO–Rpêä' ‚ ç¹@ÔJ<î£ÖÚ£�]ôÞÁ‹ÀBÒLx^_dâ <;ÐH6J4£8ƒÙ²²z€‚=iúó&�n„‚Y-Àù 8Ðà¤7ÐÁ%P6�rFÌ×�²ÓAÒ@‡¢€÷ìí¡.ô?����IEND®B`‚IMAGE 451 ./arch/indoor/mat.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEÚ“6Èv&È&·g·x¦r¦lŒXz@¿yÓ‹-•Y¿…é«?Ó“-·r'®p Ày&À„&Ò’>•c!¦_ ·x'®j Ǧqa!¦`(`•X!Ù¤G·‚'¦bÒ‹>Ð¥r=!V/ÿ~���tRNS�@æØf��IDATxÚÕ’Gn1Ý=i£²søÿ# Q6®VgÃu 8@5CòáÿJùŠ¥c,¡V1^e•&à†L¨~(RÒOóúr ÄÂÌœÇ €ÁCn¨|Ç/}lÌÄK8{…ÖªozH8Œ¤1“8W­Â._U&ÌÜäNÙM'Ëy¡Àc"½rp&õ¥ “™@©;ÈIc>›q†¡BãM›@‡ÍL¥íAŸdo¶•`4ƒ.JØnÀFÉUÇ;Wè4â‘Ó�ÏU;&g&�ÌÆÁ%¯)PÆÅör^gðÎkºx$uk¯YJK£ˆõO‡R.›Ër ü1ß”£}üÚà����IEND®B`‚IMAGE 1137 ./arch/mapbuilding/mbaltar_none.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE��������V�€W�…V�†W�ƒZ�ˆYŠZ�‡]Ž]�_�‘`�“b˜e�d�že�i�žj¢h¤j�§l�¨m�ªo�«p�®r²p¯s²u�¶s�³v�·t�´w�¹v�¶y�ºw�·z�¹{½yº|�¼}�Á|�¾�Â}�¿€�Ã~�Ä�Å€�Ã�Ç�È‚ɃÌ…�͆�ʉ�щ�ÎŒ�Ó‹׎�Ô�Ø�Ú�Ü’�Ú–�à•ݘá–â—�àš�å™�éœ�ê�ëž�í ï¡�­§”ò£�°©•¯ª•²«–²¬—´¬˜´­—µ­˜´®˜µ¯™¶¯™·¯™ûª�·°š¸°š¸±š¸±›¹±š¹²›º²œº³œ»³œ»´œ¼´¼µ¾¶žÀ·ŸÀ¸ŸÂ¹¡Âº Âº¡Ä¼¡Å¼¢Æ½£Ç½£Ç½¤¿¿¿É¿¤É¿¥ÉÀ¥Ë¦ÍçÎĨÏĨÏÅ©ÐÅ©ÐÆ©ÑÇ©ÑǪÒǪÒȪÓÉ«ÔÉ«ÔɬÔÊ«Öˬ×Ì­ØÍ®ÙήÚϯÛϰÜѱÝѱßÓ²áÕ³áÕ´ã×µä״娶æÙ·çÚ·çÛ·èÛ·èÛ¸éܸéܹéݸêݹëÞ¹íߺìàºíàºíà»ïá¼ïâ»ïâ¼ñã½ñä¾òä¾ôå¾ôæ¿���ÙÈ,I���tRNS�@æØf��IDAT8Ou“¿jæe…Ÿù“|k—+b'ض’^DP¾ ðbLðR¼‚´Zkacca«Ëj·²š|¿wæŒÅ—5›E˜æ=Ì™3¯q‡ñß¼|·ø¤ÚØ€¦êPêšê¾Óó ûÌÒ#3Ó=ÃÂÂÓãÄòØ¿¿õ±o¦»T¥#ÕëëŒÈÏlƒÔZ/‡vµ˜NÀö]6§!-½ýjÀ9UB~ù¼‹^šæ‡{ýBA'öés„ËbºÎáú¥¾gMGæû0§L—Úß[:û1ÓíZO.¯^uhu$Û²ÃnõzÂC‡q:qm»CÂFs ÷:"M·o®ŒÃqäÕå®uñf:G±Nª’-pÍþ®.ÔN$óâ­€òìyhðm­¡“¿Ï°qׯ<4¨^ã‘›“¢\qŒy¬UL{¬›$ tÌð/׫ÄIdk6y�­_VÝâ«ç–©’o‡)š²Ž®îJ*èªÕEúÜ<Ú©}¦¿â5:µN ¶Þøðűw¤8‰i.¯z$¾8ã2~¶vm;ýô±Ï4’èͽtX7“ã£âçxmqꎘÝáFCøY»ž~àëTÒÈ,:,ÂÆ—þ„=vž½ËÄ”Á²¶­óÆñ®g„ŸóÇ;ɪ±n…â°Ëƒizý:�ágOß›vg©UÚm*ýv¼¼™ŸgNLf¨]6ë÷»_if6ãÂ3ÙŒa ͼ~Öÿãwž}yýî½����IEND®B`‚IMAGE 1310 ./arch/mapbuilding/mbbed_save.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ŽPLTEÿÿÿ�����‚B'V�€W�…V�†W�ƒZ�ˆYŠZ�‡]Ž]�_�‘`� R-“b˜e�d�že�i�žj¢h¤j�§l�¨m�ªo�«p�®r²p¯s²u�¶s�³v�·t�´w�¹v�¶y�ºw�·z�¹{½yº|�¼}�Áq8Á|�¾�Â}�¿€�Ã~�Ä�Å€�Ã�Ç�È‚ɃÌ…�͆�ʉ�щ�ÎŒ�Ó‹׎�Ô�Ø�Ú�Ü’�Ú–�à•ݘá–â—�àš�å™�¡¡¡éœ�ê�ëž�í ï¡�­§”ò£�°©•¯ª•²«–²¬—´¬˜´­—µ­˜´®˜µ¯™¶¯™·¯™ûª�·°š¸°š¸±š¸±›¹±š¹²›º²œº³œ»³œ»´œ¼´¼µ½µ½¶¾¶ž¿¶Ÿ¿·žÀ·ŸÀ¸ŸÀ¸ Á¸ Á¹ Â¹¡Âº Âº¡Ãº¡Ã»¡Ä¼¡Ä¼¢Å¼¢Å¼£Æ½£Ç½£Ç½¤Ç¾£Ç¾¤Ç¿£È¿¤¿¿¿É¿¤É¿¥ÉÀ¥ÊÀ¥ËÁ¦Ë¦Ì¦ÍçÍèÎèÎĨÏĨÏŨÏÅ©ÐÅ©ÐÆ©ÑÇ©ÑǪÒǪÑȪÒȪÓÉ«ÔÉ«ÔɬÔÊ«ÕˬÖˬÖË­Ö̬×Ì­ØÍ®ØÎ®ÙήÙίÚϯÛϯÛϰÜаÜѰÜѱÝѱÞÒ±ßÒ²ÞÓ²ßÓ²àÔ²àÔ³áÕ³áÕ´âÖ´âÖµâ×µã×µä״娶äÙ¶åÙ¶æÙ·çÙ¶æÚ·çÚ·çÛ·èÛ·èÛ¸èܸéܸéܹéݸêݹëÞ¹íߺìàºíàºíà»ïá¼ïâ»ïâ¼ñã½ñä¾òä¾ôå¾ôæ¿���žª©���tRNS�@æØf���bKGD�ˆH��1IDATÁ½ŠeàµæœHm"é [ƒ`'b¡¤VVÁ HáXx!–¦ )-½€„±Ð9ó½{­½=39iÄÂç1œþ›á‹ÏµõÂ@ˆ[5ñJ~m_Zzä‘{†……§ÇÎ7ìáÁÇÎGb×b±Š,®'g‘8ʯ:±ÝêõîÜxþk‰9�{bvÑ]b=À­gR5v‘@~{)Œ…ªGëÞóï?á—­¤€öÅ%„h‹q²Qk"ó}`ö0¢ÈûÀÓ§À#½Èõ†+6Xôª|ôæÑ7Po]­p¬â†v´ÖZÄkZ«èÃ{í7 ›Èsœ¬"9·¾¶Ê €&Y8Yµgä£(pK¬(R WSŽpÌ_j€ž:bá¤T\%€{/pQ­?°DÕx$Ë‘ Òú ç¸Åb#:$’@U“Ébã,R=«=�H$Ÿ¥Ç(±{àJ`˜JšbIüùj‰ëˆd7,Òç°ß·|Fßá_Pví¬3¼ñáßÝ4-6àH"ÍÛÈ;g€7àoCÞ8J«ýUíú·O|Fèn°¬ Põu]MŽO¿Œ\-áŽÆì·ƒáwåýò[»îž6O¦E`¼ú²°·ïa4`9­”ƒ7/@Ú/îE_—‚°Tn{l.ëz18 ¿ûòþÈm0f¨V³÷«Ù/7ÌüTÀ“©�ZÞ6õ§pËŽf¼á³¶ƒuô þ§�³ŠÀü‚W����IEND®B`‚IMAGE 1215 ./arch/mapbuilding/mbblackmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¸PLTE���¿¿¿@@@ËÊ£/1-02.34&�2�>C?,0.ÊË¡ÌÊ¢4955:6fmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©ÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢bkkbklckjbljmmLcmj)-(z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm[a\Zb_[acZee^db\ecZfe]ec]ef]fbIPOLONOQE?C?>CDBEBCFACFBHMJQMBgdR\ffhcZ`fe_id_igaiiakkbkiKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’*.-©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂà{€;=8<?:;?>9@@=A=.44ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£05346/782ÎɤÍˤÎË£Î̦Î̧Ðͦ#¢•ñ��ÂIDATx^}’c¯nA …Û™÷ضmÛ¶móÚ¶mÛ¶mÛ¶þÆMÎdOfŸ}﻾4MŸ4k: �A½(EØõB=ðTWg¤±âÙ¨¯í¥N9ÿbð¼³kt¡#�éë%µùšßZÆ9[¸”¡ >îîɲu‘3˜L¥JàI«YfÝÄúæ)ç¬R€ñ5V“¦õ2ÍF>ç•“' ©²îéí¦Ø„¡Õy MvEA¬EäURí0#—â931@âlÌÜý+æ/A²ozTêcï;½¤l¶ŒP¾dÃòÕ[E€ˆ�±`]DlüÀ“®­o“› œ¡ˆ[¶ÍS)š@”·WkUÂJÕ4`ó©ãQKÿ<¦Y.]=»]1æ1ëµ7’?=ˆßÉ—+r¼_õãÏï}a€Èž ð³â¶êçç_§)PÓ"3ÞÞÿ®k/€¶èƒp<dÏ»´WõRŽÈÒCrxÞå×ï?¤¿¼#$#›î½¹²&<õØQ>§ŧøí~x†ÂÍsl»wÀÈ×OÞ= @ˆâ´/HsŸ¿xˆ R —mŒFü ÷›iÖ éOr����IEND®B`‚IMAGE 1208 ./arch/mapbuilding/mbbook.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��§PLTE�������§l�ªo�®r²u�¹v�½yº|�Á|�Ü’�á–àš�_�¶s�´w�¶y�ºw�·z�¢h�]�¾�Ã~�Å€�Ã�È‚щ�׎�à•ˆY²på™�éœ�¬¦“í ¹±—º²˜êìéÎŒ�‘`�Ì…�íïìže�ÈaÚ�·t�Ú–�†W�Â}�¿€�¯s€W�·¯•¸°–Ƀ³v�¼´šÇ¼œÆ¾¤ÓȨâÕãÖ‚ÞÓ³çÙ³èÛ´í߸ïá»Í†�ëîê¨m�¼}�«p�ú Ý˜ÎãÐÅ¥ÑÆ¦‡]ÝЪ»³™�\�À·Â¹Ÿi�V�ê�¶®”Ø�ʉ�ÔÉ©Õʪ×Ë«ÚϯžjÛаÄ�ÞÑ«ÜÑ±åØ„àÓ­Ó‹âÔ®ëž�“béܵëݶìÞ·Ô�ï¡�ñã½òå¾ô濳ª‘d�ãÕ¯å×±æØ²…V�ØÌ¬ŠZ�˜e�Ê¿ ¹{ä׃Ädûª�±¨ò£�â—�ƒZ�Í¢Ž]�ÏĤ¤j�½µ›Òǧ¿¶œÇ�™,N���tRNS�@æØf��¿IDATx^“ã³çJE³OwˆŸmûÚ¶=¶mëÙü£ßÉÜÌ|y5U³R©¤ëì^IKù¾Àç:†Ú³ÙcÛñˆ®&ú:¡Ò;òëTE�$1R’�_’Ûg}~Š]ùâÙ³µÕGËoß¼¾wýêû+óÀ7Pýé9ñ/Ö¸þp‰¹yt4?ÿ÷þÆqÜ¿^='wéùsÏì}‹CÏ@?Ö«Õªbuõñ# éÌýF‡l@°^«¨ûW’8éƒEìˆ_I¡h°~ÿ)‚xüp‰ O&½r¿ly(ÈïW*Õ"Ö–VÀ0?ô·h㤠5Tq+•�~ÁòÊ‚WLzw?pJð(0:À‰@�àñA˜ÌÌJ6ÈÔz±¨¸X¹ÿ“üœži€g[í'E× O·Xp\gðω†8K ìѶËðL²@0$@³9!=ôÝr‹¬ã:’ØØXXÜèÝþh4'Ïãq •+\9\%´¨%©w»G­Vs¢6é­éÑ‹·à"KW.H,ö¤l5&Ï×ð š™í^à�.Ï„$x 6ñò'üDF»w 2M—.ÏíÏÍíÌžúk¦Ù˜œ¨½¬!DŠØÔì©|áFñ?!6œÑâSùî]¬[cº–H$ú^=•†‡‡K¥P¨Ó!E&Ôï2™|Œðî{Qø-@ߨc+-rÝ©\&“qËŒ†ÃåpYMtJPÙ÷§nDàä˜opÙv¬­x<5 uÜÛpâZߦF1ÛÎe37ÒNʱƊ™º …‘šªB ›Öˆ“N§-Çrb1Ç´,ËÔ¥â!Œm¡–Çt#fY¬·˜Ã‘X<jøgFlCßTËåò´·,.™f̉ †Ã¤qF½¦ªšVÖÃæ´išƒÆ´64¡ø@ )yïüI(_ËŽuw>m����IEND®B`‚IMAGE 889 ./arch/mapbuilding/mbbrazier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��˜PLTEŒ\���˜e�ªo�§l�že�ðàÇžj¤o�‘`�¥p�”c®r²u�¾�Ú�Ü’�œh�šb�Óë·z�Ã�dž�щ�˜“Ÿf�¢nŸ™…ç �²¬˜Ç¿¥ÉÁ§Á|�âÙ¾üñ“bÕ¡”‚¾z�¢•ƒº|zwißÁ ÿ¹ââ2µx�Ü—�ÿ†�á–ç›�Š„qÙ¦ µ¨–íª�¦l¸«™ñ®�Þ³FõŸxó›³v�øÖ lô³p¨m�·�ÿ×�Í‹�úãÿâ�›c�ÎŒ�æÝÃÿt�£iä®ÿ£ÐŽ׬@ر2´w�ÿ©�¹±—åµò«/Ѳeÿ9�Ô̱͹bͽ¥ÇÂmË„�äÅ™”€Ö�‹…rÀ�Ä¿jø¹�Ä�þ¸—d�Ç�È‚×Á\åÇ'Ú–�ñe4‘‹xôÇ•c�ÒªÿËÒÅŸûŽ�öÎßÔ;ÑÈ®úÒ õØ�Óʰ«žÛÓw¹{¨sýÚ�Ï¥9âΪ¯s�ý›�ðè1»§„ÿZ�¸©‘õé¢hï6O9���tRNS�@æØf��IDATx^ÍÓE¯!àð©Ëqw½îîîZwww÷þí+›8‹îšNØñd€äåÔˆiÙwÝ.×ugÃáÚ–©jÀu”Üîn·Ë9"ö˜¥ð�CC(98‰Î8€T?¢–dYž\kŽÈP©�R),:ϼýým®sï¨Êƒû˜ŽBÎf¿/7ŸÞ|€áˆËŽ‹;Qäƒànçö§åÐ…†õÃþÈ4òùsƒ3?O??BÃ…è,nD ?éKïÚÎg Nð dG» 9=¸?þ2Ó—®Öl„sXúõcsîZõ]�U¶ ;‡W;ŸµU/%³ðú‚ÝŽ/çï%cåÑ–gZ¡v®áÞ7…F9– @3Q© wu¼Ðˆ=ìI"®ð@ÕM˜†_ÏÌŸí¹R¯ƒH<ð˜ËÄI4ƒǞ j}5?&nÚqŠ<Ð$0¦ $1ŒbQóy` „ð@%FM—$‰MF‹O0J§Oò iYJu:ŘÂ$ßXðñ×?ñ/s�€m5ë®wòã����IEND®B`‚IMAGE 1151 ./arch/mapbuilding/mbbutton.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¾PLTE�¡)-(*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=@@@>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acaaaZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¡¡¡¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂà¿¿¿ÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ!!!øm±���tRNS�@æØf��oIDAT8Ëc` 0±ã—çg–sÃ#/ ÏÉ"bŽ[žƒ[PL\!'—¼(#+—´r˜wNxx%$‚íœ,a"/�YŸŒ§½š¡©&L^U¨èFûªkYÇz8Båõ€àŠªVÚ>¶1q‘Pù¬¬9sPU踙æf§‚dš}w×ð¼êŠF\ ü½RB£’Šëš@ æ`ZÁÀY”P–_XÅðòÜœ9˜ò@‘\ÔÜßÖ5¨^b ±òúÞÙ a (8˜¾vÙ¡>Y¼?yª’³b >RlK:ð)°0›´mó¼|J*×ì;¸s~=GÎß;³xni«<yñ|ÕLÜ*Ú?xzÿÙÜ Jç^¹yúñ£c+qªH_qëÒµ»/lÀ©¢vÿõÛw._=±�§Š‰§nèžuqÓF\ —ŸÝÁÀptžàØrxéÖ“Ûñ(¨Y¿{ï:¼ÛÐ:a>�Ý@”ÿ{ìÿ¨����IEND®B`‚IMAGE 348 ./arch/mapbuilding/mbdwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�aaaààà���@@@¿¿¿¡¡¡b….§���tRNS�@æØf���òIDATxÚu“ƒ0=rÿÿq¹b‹!í:Nœa…@ôJüÍ%frmøÂ+Ùÿ2ZÿB/ô¾Ø  “Ð5á³Rln£„àÌÐóëZ�-Caod�Ô’]4¢Ï¡$m’>ÔYlLW Š)x °ÖgÜ0…éq?ÍIu³Î¸c y¿30 38 |÷8@Ñi±ýhÁÀ˜Ù‡àÙ!— 5C%,+Œ°€%v  ˜‚‘Pþœ‘ Áç,’yŒ§¨BB²Éá:Po?w!eõ”Tô¿mž'€„—' ²ÔíJ����IEND®B`‚IMAGE 429 ./arch/mapbuilding/mbewall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE9��m8B$zM2ˆcG·_4–w[¤Œp²¡„À·˜Í̬ôóÍ���µÕ@���tRNS�@æØf��4IDATxÚu“ŽÃ qp¼Æáÿï½ÝráÚ•"y§hE“¶˜Ìó<gÛi ¹ü0oD¤ÛüJ;‰tz¾™µŠ[›ûOÈXÍþ²A ªú­ÃAØP“#ÉŽ®Kë÷üº®_áJZíJŒ†qŽ*?(,C °áµyH”PóìPXr }/Y"J€¤ðž/€¹“]X9©%Ô|#¼ï±÷®Ýö’u@íˆ.pPxÏÛ–BÙ£æŸz› _Â3·|*¬:Üs¾—dh3â^%8BЉdäü)¬÷ΘOaå÷œBÇ.t„åßÌiPX z $…ә‡6¢×óp_Æœ\m1¡uRïætF{ òº‡àTÚSu)4À)ü�­øÁ½-%,����IEND®B`‚IMAGE 1333 ./arch/mapbuilding/mbfireplace.111 ‰PNG  ��� IHDR��� ��� ���szzô��üIDATx^Í–Û«UUÆs®µ·ûxŽd¨A‘=ô`tƒÀÊ_3òDùYyy±Ë!ӈꡣe…¢†^"¡‡(2ÉÁ^*éR3åÜÚ—µçš³Vc0'+Ž—@¡Æk­97ß·¾1ÆÜÛp%׿jÈO} =ݺ=(úàJðžBgÎËz¯/{ 'ѯ¢”è99�ùåÈÏî€y«¡,áŽ5\S¼ù„äüRä÷ˆz�‚¤?;B>0°6�À{O¯=ÆäÔWƒ›oXÍäÓ‘_Ø Î¥ú´ ɶ1¡c�C>x—ÂG>«j óçÏK÷6ößäã{¡ô�`fKØ ‹Çƒ±M.‡{}Š8sö,?ý|‚sç~ªLÌ·È{*Ûµ™™ZQ†ÆLèêÀ³«V]VÄ©ócœ<w‘Igh‡œ cíä�£ä¿~$î•ÜDXCD>ûn`çž=�œ>y’ïàè±cqmÙðóÜù>3ؼElm�s á«W ³àJéøÜª2@³Ñ�ˆo¾iÓ&�nY°  ê «Ö¾üt;­f‹ÜˆõÁûäÀЀ̦íKó !9�žöîØÁÓ«W³xÑ¢HDY²$ÞWQ‰]ºòEöò·Î§/È[—B–ÞÖ�º‡Rs§Ó‰úfü ?ó2G¿Þ¥Êz–z:ný¾žrFïZ‚ßlóæÍ±£££• *ªëÚ}µ^…ºDÐzzï’!ÀØ̹Aú ³R¤RØVt ŠªÉ´ QЕî}·¨5V2z!èô ÕTË-X gº~;: ^eî\¸0NƒäڔĆ­®»j=X+Ü4 r'cçõÀÉzLï€"èïkÑïŠ [ß}�× (Rô =ý|r'(©:¤½!KÕó““�° Á:À¨ݳ~ã�Úý)å$À×~FU€Oµw*¬36Á§³aÆÊÒXã9³fÀÚDJ{Ý—A`“à\‘ˆž¦ç¶5ƒññ Nÿ"Ž`r@É×¥2`¢QpnKÉ’¼’TÑ)` ©M]€ïöÈœ§e,'Žîç®Åõ¦3ë ú[oÄ¸Ï v6’�u  “˜=(“±I@@àY?c`ðÆ¿Nÿò-EQ0ÕïÑévi”¡ºÆW–´]_È´Cx|é�u hw¡9ë^Céĵ‚1Q€Ìù`K&Á{É}M•7³ßÀx[Öû%8/ÂJÝïÊê¹f'ëJ„µ’ó Œ6 ¡æ€j¦AñÙ}#\7ä ÊgäÐÕ»C-9Ú?lIõr^úCFV,¯Nu#¤?4AÕP8á™ìÂD^ÝL†áÇï•­Fúò’·áÈkb›Œ¥d¨h0`4¬L-·F:=³ÆŠ30²_Èþ°â!AßhÙVøfcú)¶FùTI&ÄzF)ôzÎ�kvGòT‚Ü&‚Âç/¥úÏh@¡ârKdöJìÅ™!«¡ÔýOn¯“GV>(j‡·Ã¾ÄkS}ZžD¢k)køsŒ¥£5òº€å÷ÊàÐúè.&‘b´‰0Š“k!ŽáÊÔ”ÎÃcïMK®<F8w='McIukhf65˜1L‹³ˆÃˆ€åÛù¥\7(ùÿ1jêùÐæ����IEND®B`‚IMAGE 905 ./arch/mapbuilding/mbfirepot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��’PLTE����˜e�ªo�®rže�œh�žj§l�¤o�¥p�”c‘`�‹n¾�Ú�Ü’�®¦µ¨–²u�µx�·z�ƒ~}¦l¾z�šb�Ä�Ã�щ�to\|rg£˜Œç �yod“bÁ¼ºÞàÝ„s›c�¨m�º|Á|�¢h\YLrob‰‹ˆŒ‹ƒÎ‡�•|Í‹�£iÎŒ�•’„œ~˜“ÕHIG³v�Ÿf�Ü—�á–Ÿ¡žç›�…m¢nƒ€rª¬©íª�ñ®�heX¹{wtfÐŽˆ…w™”€Ö�¾Á½ÕÐ)çÎ!¿€�Ÿ’€ÿ{�¡”‚•—”À�—ƒ l š†Ú–�—d�“‡v¨ŸmÈ‚« hµ¢F´¢L¥Ÿ‹Š|Ô#§¡Žli\©£†~xdž�Ë„�¶«Œþn�gdW»¬½µTÜ}̹=¿¸xÿ®�Ê·gï¸ø¹�÷¾ÿ»�ÏÅ]¨s•c� ´w�ÇÉÆëÝßÙ`ÿÜ�þà�ÐÒÏþæ�ÿÿЮà���tRNS�@æØf��¥IDATx^ÍÒÅ®1„Ñ©ßv3÷0ãeff†0333sÞ;7“Ed?@”oãÍQY–œø¯‚š€0œÃ`l¤Xìþ ,Wx‰©pq1œ~&iÈ�ëë˜ ˆ@?ÐÎ6%€ÚÚJâøÖÓ{Ÿ¿‰aqÔj;�g®FñáŸ&‰[ ³ss4TB<qô§W__\¢Q劽 ¤‹%D§ÆŸÜ?öúú8lyÛûÅ!Š¢Ïß¿<»<‰^eáni…"ÅUoçÐã+·'È:-ƒ´…Å+ƒ'2×¼a˜ÊÂÉnŸŽøˆ–¼…Õ¥ÊV– |Ÿzzp¼#Óªö×Ëä+ ½™†ŸÂÌ~s¥\®Ÿ‡úÌd:E›©÷ƒ­o^½ìíÂP€=#(—£ÌÂÇV¥ÿæF³† ,[Tm6W½}}`šH7m$sDÓÓô'—I�ït‹º„ÈŠ·ç·]Cn§ƒg³ËƲΧÑpó2pŒh¯£}B#Í0¹à³š¦1æºÊ—$Ýì59ï2t-ϘúeAŒsnsÓ4L-ïtæ)¡èoHüË~CÐ6Eƒê¦����IEND®B`‚IMAGE 1397 ./arch/mapbuilding/mbfountain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÙPLTE�����¼��ÿ@@@ƒV�„W�†Y�hà‰[�‹[�Œ\�\�aaa]�Ž^�^�_�‘`�’`�”_�’a�“a�•b�•c�–c�˜b�—d�™d�˜e�™e�šf�e�›g�rl]i�ži�Ÿj�¡i�¢i�¡k�£j�¥j�¢l�£l�¤l�¥l�¤m�¦l�¥m�¤n�¨l�¥n�¦n�¦o�ªm�§o�¨o�ªn�©o�©p�«p�ªq�¬p�}uf¯o�«r�¬r�®q�°p�¬s�­s�¯r�±q�®s�°r�¯s�²r�¯t�±s�°t�²s�¯u�±t�³s�°u�ÿ¯v�³t�²u�´t�³u�²v�´u�±w�µu�´v�³w�µv�´w�¶v�³x�µw�·w�´y�¶x�·x�¸x�¸y�¹y�¸z�¹z�¸{�ºz�¹{�¸|�º{�»{�»|�¼|�¹~�¼}�»~�½}�¾}�»�½~�¿~�¾�À�¿€�Á�¾�À€�Á€�¾‚�€�Ã�Â�ƒ�Ä‚�Á„�Ã�‘‡u„�ă�Ń�Å„�†�Ç„�Æ…�Ç…�È…�Ƈ�Ȇ�ȇ�ʆ�ɇ�ˈ�̈�ˉ�͉�ÉŒ�Ί�Í‹�ÏŠ�ÍŒ�˜}ÏŒ�Ñ‹�Ï�ÒŒ�ÐŽ�Ò�Ó�›’ÕŽ�Õ�×�Ó“�Ø‘�×’�Ú‘�Ú“�Û“�Ú”�Ü“�¤™…Ý•�Þ•�ß•�ß–�Ü™�à—�á—�á™�â™�ä™�ãš�å™�åš�âœ�ãœ�å›�æ›�¡¡¡çœ�è�é�èž�éž�èŸ�êž�éŸ�ê �ê¡�°¥ë¢�ì¢�ð¡�ì¤�î¤�³¨“ï¦�ï¨�ð¨�ðª�ð«�ñ«�ó³�õ¾�¿¿¿Îªæ×½éÜÁàààîàÄÿùÛÿþÞÿÿøÿÿüÿÿÿ���¦5Š���tRNS�@æØf���bKGD�ˆH��=IDATÁÁj\U��Ðó^ï fZg”ÐŽâFEwŠø.uiòÙ¹ð®Äˆën¡–"‚ßЕØâB ­bLÚ˜ÉÌ›LfæÝ{ß}ž��� ,�€±�,̛٢º=~ÃjvÝæ®Çì ,Wwvo ÚU—W£[!U`„�ËeeÜ�|V¡ÆòUŸìÝ‘RÚnsŒq}Ô¯×,_é³×7€!Ãï7Ä� c²sAÍÀ3¼7(]VÍTU{úþd±[õò×gF †RŠö¹Xï|:9Ü·s|÷ì­7g÷J±¾Ä¤šïGŸ;>:3j¤™/™ì&õI˜þ4Ù[Ûd¤¶¯\wFÄa<2‹Š-¬s,2HÕÃÓ<u°«‘{Ô¸hsp“VúþË�jœ§žE‡NLy0DîPãí~Pü—íÅx8\L÷!¹Ô÷¨±ÍíÊymÞø9îRQõ =ÔØän®Ý±Þkâa54àÀG¿5bNWºóió  Ýo¾þ ¨‘K*ê׸<›6Ã=rÉÅÝ%ÖOhÜwöÛK€€Üu|ü‡ÑȘNJéøð»_®Oÿ|qÓ¦’bN¥ï*ÄŒRêÉíw»v»iWWÏnbÛÆ mÄ��€€ë®<,Û®ÜÜ4(9¥´i7ÿœ ¸zúín+åA›u)Å6wõø|Œ€ó¿¹'t}1ˆ}›º6¶)µ›Çc¨XúäƒwŒ•aéÊfvZ§õ¦ñÅT,�€1����à%e>äžÁž����IEND®B`‚IMAGE 1277 ./arch/mapbuilding/mbgreenmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��»PLTE)-( 8 5Z5P~PCoC*F*ËÊ£ÊË¡akk9@@=A=/1-HMJQMB:]2IPOLONOQEKSQ02.Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ec,0.fnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|;=8<?:;?>bkibkkbklckjbljmmLcmjfmk05346/782LTQOSR[XCX[JS[ZY]ZW_[V`[>C??C?>CDBEBCFACFB4955:6*.-34&.44Zfe]ec]ef]fbgdR\ffhcZ`fe_idw~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£_igaiiÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ-ÈÎ��ýIDATx^}Óc—&1à2kÛ¶mÛ¶mÛ¶mÛ¶mÛÆÏØI§’·g>ìýÒ}N=]ç¶"!�‰ý‰Òd@‡NÿU2·HžE„Ì@"Ž× ^‚–=<`˜ë¶‹ßºMÃÁ…P�¡l` Z©õ“4)’³˜�f²EÄí+µMX=_Áª5{yàÃ@å¤Ù«elž©[jßß5Eš¦/™;e𝥳Õvf.BYœªYï´¹â–*SÜŠ ]í.»æ2¨¯¿m…á[Ö:E‡N?l´òæèS¸D…QSg‚Q€‡—-Pnì° Š ˆT9kÙÜ…«=0Qh€ˆqÓ–lÚ¾b#Q�­;¼çÆÒd҂צ�4¡ö+W­i\«Ñh;g„�€F/u\°k¾½A�@Hôì¾òÌÉ-³Qš  „ ‡®\?¿$*üÜLò,¾õäó£ëcFD²éw0êçß?6„2’˼»Q¿¾ü¾L4EÆl~ùîáïwöG€²íŠØßûç¯?ÅyzŒHvsfÐZ*M¹úæÃǯîm#El˹²`³âÁÛk‹6>;q\qdŽD²£üÞÇç�n_�¥ýß+ÏÅžº¹ûôý³¦$²\†ÈD,�&½xùØ/”4}Îò­�ÿ�¹Ëo^¡6!����IEND®B`‚IMAGE 715 ./arch/mapbuilding/mbhammer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��›PLTE���¸´®ÅÄ´ "!!!!!"!! "! "##$ #$"#$/!$+')++(.,+..--00/13`##@@?†11™.*VTQ¥64¦;;JQ¤>> !ÆÆ¶ÉǵÇÊ¼ÐÆ¹ÉʾÌÉÄËÌ¿ÌÎÀ®§£«ªœ­©œ«©§­©§¹§‘´©–¯¬¡±ªª¯­¤°¯Ÿ¼¬“®®°¸®—´®¢¾­•¾®“¼¯™Â®”À²™¼´“ƒl¢[Z¦_Y~}z€~~‘‚j„…„ ¹´­Â´™½µ¢»¶¤¶¶¶Àµ£À·¢½¸¦¾¸§¼¸°¼¹«Â¸§Á¹§½¹´¼¼­½¼¬¼»»``_ca_ikl „p•ˆy˜‰wžŠq™{’˜„Ÿy¥’w¦“t™–“ª™{¢š£šŒ§š…¬š€®›½¼º½½¼Æ¼«Â¿¯ÅÁ°ÃóÅòDzÆÂµÉ³­›ƒ°›²›‚©¢™±¢‹¬¤“­¨–¯§—¯¨–ÎÎÏÐÎËÏÏËÏÒÅÙÓËØÔÊÛÕÌÜÕÌÛØÏÝÛÔÞÜÙááßææãyZEø���tRNS�@æØf���ÞIDATx^•ÍC—DQà[¯mÛ¶{lÛ¶mÛüÙ³˜õÍ9m¾ª°Š²×Ë´OÍu;$t2‰©È=Ÿ{šâõI½T¤uÙ¸=[—«”f§£‘qc7.e­î&þ zd,:{uÉ`–W×  ÅÝ Â¢í⌭԰¸NU@09_U (h¡«¦йº>¨¡»þŠÎípéŠÍôÑÙF_¡xº=ìo…b¨'rÎ`â^ß't<™‚"tÿrŠG2~á Kìx€ xÎO â‘ÜÃøåá/ ~~ÿáý*$vï~Ò����IEND®B`‚IMAGE 1165 ./arch/mapbuilding/mbiron_gate1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¸PLTE���!!!)-(*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acaaaZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ���™Õ܉���tRNS�@æØf��ƒIDAT8Ëc` 0sà—`–sÃ#/(ÏÅ*bŽ[ž“GHL\!'—¼(·´r˜wNxù$$‚íœ,Ÿc ü2žöj†¦šz˜�¬@E7ÚW]Ë:ÖÇ ªVÚ>¶1q‘Yhà9Ì:.ÆF&¹Ù©Œ@Q$ Wð\߯Ý5<¯º¢1+‹Žáò Œþ^)¡QIÅuMYzzYpŒ0àyVfA|PBY~a600MdÌH.jîoëš‚ÍËë{g/XˆÕŒ[§¯Yz°O« ``òT%gŬ.€Ú,ÅÞ¹¸» ØÂlÒÖMs[°º�Š+Wï=°cv€_Ïá³wN/šÕ`œ¶êÞ£gOWÎÄæn?vïñÝ'»±»�„Kç\º~êუ+ &da‚ôå7.\¹}ÿÜz° h.�ãÚ}WoÞºxùø|°'°‰'¯íïžu~ã\)=qÙ™í GvâÉn›-Ùrb5ëvíYË€4´N˜¤�¸bË ? ����IEND®B`‚IMAGE 1181 ./arch/mapbuilding/mbiron_gate2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¸PLTE���)-(*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=@@@>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acaaaZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ���Aà\ ���tRNS�@æØf��“IDAT8c`À�BzzbLìøð3 ˹Áå1Ès²ˆ˜ãVÀÁ-(&®•ÏBW ÊÈÊ%­æU€é^ I‡€`;'K°Ï1ÝÀ'ãio fhª V€Å‘*ºÑ¾êZÖ±Ž `¸4T­´}lcâ"…°¹t\ŒLs³SŸcsèÛ¸»†çUW4bsø{¥„F%×5awdÄ%”åVawd$5÷·uMÉÊÂ.ÿüyy}ïì …ôp)Êš¾féÁ>Yò 2Lžªä¬X‚[Ás!)¶ÎŸ€€…Ù¤­›æ¶àpfU®Þ{`Ç4\n�zÁ¯çðÙ;§ÍÀîP¤­º÷èÙÓ•3±ºíÇî=¾ûd7V7€Ã tÎ¥ë§>8ºÓ h ¦/¿qáÊíûçÖ£+€ÇBí¾«7o]¼||>š±0ñäµýݳÎoÜ€êD,$.;³áÈNTP¢qó¡%[NlCQ¥÷‰[³nמµ¨Žd~Cë„y@ �^œ#sª*¾����IEND®B`‚IMAGE 1104 ./arch/mapbuilding/mbiron_gate_inv1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTE!!!ËÊ£���*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acaaaZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’)-(ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ÅÁšÂàÇÚÄÄžÄÅœ¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸ž¸±‡¯´—ÉÃœÆÆœÇÆ¢Ðͦ6ì§���tRNS�@æØf��LIDAT8Ëc` 0sà—`–sÃ#/(ÏÅ*bŽ[ž“GHL\!;—¼è6niå0ïœ&ðòIH:Û9YâRÁ/ãio fhª‰KŠn´¯º–u¬‡#N[4T­´}lcâ"qªÐq162 ÌÉJÅ©B߯Ý5<·ª¼—¯”Ш¤¢ÚFœFdæÇ%”æTâь䦾ÖÎɸU”ÕõÌš¿�_¬N[½äZ¯,ÞˆŸ4EÉY±Ÿ )öŽEíøX˜M|°qN3>%«.]=;¿î'_8·Š´•Œ;žî^1·Š¶ÛŒ;íº�á0a%³Ÿ¸¿}Û­å zØ@ú²ƒöÙzj˜˜j.ï;tøñž;óp)`špoÿ•®™§7¬ÇåÎÄ¥'Î00Ü<‡'86]_¼ùîC< ª×ž¿¸oÄÖ·ôÏe`��ËÊjùmTÂ����IEND®B`‚IMAGE 1123 ./arch/mapbuilding/mbiron_gate_inv2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¸PLTE!!!���aaaËÊ£/1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=@@@>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`Z)-(Zee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||*.-z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›,0.ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧ÐͦXa\Y`_Xb\[a\ϸžÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£Zb_s|w~~|}y~h€lv€‚{€[ac÷{˜���tRNS�@æØf��YIDATx^ÌC—+�áÛI†¶mÛ¶mÛ¶mÛ¶m<Û¶ýþÆl3‹Ûgjý‚KÉL¸¯ñKÙ�4+ƒ€.XØy…„e¢½0 ¨ÂÈ&.ïãèXœ"¢fnž&ú˜à’°7USR×~€…ÿÎÊ ƒíÌë¾¢Á#'ã T|·ÒÔÐr‰ú… U#[kߨ¬ô ¸:üôˆHÊ-¬ñ¡a©q ™€ö÷GbQ]ie3‚HË«éê� ðQ(mÓ#µ’$� ©EÎR6™€SÅP9ÐÓi\Yì)Æ@ÆÔÎþz+ p©>zöõÉ`; à÷$íÖ½»(€²SÚíow¶pÒýúÃã›7NÆ1�Æ>¾|ûåúó9 @Îî»OŸ_½9ëÃ�4\}¿WÕùbaá£O×�Ž7ÐÀÒáðò•Uz@¥ô {vs{èå"€ü’ú^€s»@iú4ƒÞ����IEND®B`‚IMAGE 1177 ./arch/mapbuilding/mblever.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÄPLTE���aaa���¿¿¿@@@¡¡¡!!!ËÊ£05346/)-(>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XC*.-Zee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpitt,0.z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qààà.44–¥¦s|w~~|}y~h€lv€‚{€Zb_[ac7824955:6;=8<?:;?>9@@=A=X[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\jtsprnjtvotskvtputstrkxznyvpyy¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÍˤ/1-¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“02.ÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡34&ÊË¡ÌÊ¢Îɤr|xxzwr|}{{kt||Š›žŒ›š›š–œŒœ›‚¢›s‘˜ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£’œžŸŸ}‘ ¤Ÿ ’ÎË£Î̦Î̧Ðͦ¢£Š££ˆ…h���tRNS�@æØf��ƒIDATx^ÊÓÒ#A�@áîä·mÛ¶mÛ¶mÛ^Û¶mÛ¶^bSÉE²UÓS{nÏþ/õBößè+¡lÏò›TÄVKà¿hm³´ŒªîK‰_¨Qhp¸êêeå,=}Ì­p¢AÑÉB³CK¯ÚªGÝ:{LÆ­„M ‘®vã^W³±ÂOAa�ªlu´u½üJ!‚ˆÿ ðO¦vƒqÑ)BÄð‡sIÿÈ“°ÄTŠ‚ ¾ Êà‡Þ"ƒBb9Åô¹U‡¦=ÏÌýÄ̟ÉJzZ´a#I’Í ¨¯{¶N>S*( q�Âן[lÔÂI„„üœÍÙ$†ú¯ŽZ›˜â‚ŽÙ}vâÄ&€øÀ=úâ‡åMߘ≲]"«~ýÜù0n kNäûǧ¶ˆ5×n/Ý¿7»+Ê·¿¹rãýÝKû±"áÜÍ·ï®^Ÿ_/oÏûsùàx¼må8�3'¾ÃS[Ž,cñûNÙ ØJÎx±Ž;þnšmó™_����IEND®B`‚IMAGE 1276 ./arch/mapbuilding/mblightmagentamarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��»PLTE)-(×À×ÝÇÝäÒäïãïêÜêËÊ£ÊË¡*.-Ðͦ05346/.44,0.âÐæ/1-02.>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbkl7824955:6;=8<?:;?>9@@=A=34&foogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ckjbljÌÊ¢ÎɤÍˤÎË£Î̦Î̧mmLcmjfmkfnneonfoldor—tDË��üIDATx^}ÏS³$AàÊsNݵmÛ¶mÛ¶mÛ¶mÛ¶mãglôîÌ<l¾TGäWÙŠ�‹ "þôJ#�qþÔH”,ã/ …�T3S‚$ÉKz@VX@¿J­”©2÷mÆ€MOd@ •´rºl-ê¶ò� ‚‰(€ªVK¦R£¦>”öÀ‡ ÕÓÿ­X(gáâyü~·”�É^ mý\y˶ÿóÞ�Ć•Á¹s”ÉW¯|»­@ü?Š)Ö¸_ŸîþO´HÁr¿¶ì?fä$1ÑVxаN·æmº ?Yl˜-p¢÷ÀŽM: 0h´@$�zu<eÁôÙK=¢ØFL˜·fã&‰d °bï¶Kó3À�HD‰h°ö7–,Ëú=ËPÓKˆf/ÒÖžµe¦¹ÏbH˜(Ubñ±Ã릲[¦$J°ŒÚsîâÉå"@³¶»€s¯Ü{{góÊ(@Ì “»c>Çû¶kU8`.3®Ç|y÷õL8 ×±0líã·?}¼¶3˜–ÌVæž;^>|ú&Îý€íz"ÑÚNwþÙ«×žÜØ�2ãÜX1Ytëù…9«:¨�Ší°otÞ~÷„ÈÕS¢43�v=ÀÖ¹¼õèÍãÁH&{™�²@Æî?}vŸ ± ¤œÀÄi ׋ürÝ0Ñ®����IEND®B`‚IMAGE 1276 ./arch/mapbuilding/mbmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��»PLTE)-(„„„œ¥œÆÆÆÿÿÿçççËÊ£05346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[Z*.-|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w,0.ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬/1-02.ÊË¡34&.44cmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡]ef]fbgdR\ffhcZ`fe_id_igaiiakkbki­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂཽÎÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£bkkbklckjÌÊ¢ÎɤÍˤÎË£Î̦Î̧ÐͦbljmmL)µ‡º��üIDATx^}ÐÓ’&AàJÔkÛ¶mÛ¶mÛ¶mÛ¶mÛûõWVMÏ\ì¹éŽÈ/3N·"�bf�6‘§Q È^õÿ ®X²Œ5Dx€€I2ETL¾É!�1<*iÊT™û6#@r-H¡*E¦ËÖ¢n+&ˆ`à �£cR§ùܨéÎ?[<ðA86}íO“GMÙ0Ö÷wMÉ�àÛÖ=n[ûZ_¤™‹P¹u|½í:´v�žPmÚÔõûõéî¿D[á�OÚ^³zËþyr’U-ƒ†uº5oÓeHþÂ,!àDï›t>`Pn'�€^]Y8cÎ2L "GùkK•æ„ÀH�+÷—¿² ƒf™³Ò~céò¬³ µs$ÖDìEÚ*³ËβûĘbóÆ%'Ž/JÒL@@çÚwáòé,QÁÿF`Ò`Þµ‡î•Y• M½aßÿÚ³:\fÞ ûññç¹ @)2lݳ×w¿}½±;Ø)Ú®D=w½yòâ}åG‡�k7Gd­¥R¾‹/ß¾{úüVIP€¶œ+Ë6‹ï¼º4wÍã#‡�ÆÏ @nt®pÿóõ3¬tè�ÉÜ¿2»Zîøí“¦$¡¬!� à¼Ïž?À<ðBÊ (8}Q æÊrÝáÝIX����IEND®B`‚IMAGE 1123 ./arch/mapbuilding/mbpedestal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTE�)-(*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂà¿¿¿ÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ���ÈÒ���tRNS�@æØf��_IDAT8Ëc` 0±ã—çg’uÁ#/ ÇÉ"lŠ[žƒ[PTL>3—¼#+—”RˆgNxxÅ%ìümÌq©à“v·ÕSÕ7ÖÀ¥@Y'Ò[MÓ2Úͧ-ê*Z^ÖQ1á8Uh;ùge$?…tºV®Î¡Ù¥u§ �]ÅS_¤àˆ„‚êú§ØU<=•žWœ“Wþ‡‚S§ÒózšÛ'âTpª¤¦kÆÜy§p+85eå¢}Ý2xœ:5a’¢£B!§$ÙÚ´bS�SafÒ¿iý¬ÆSAÁ§e+víÝ:3(á |:œ¾ubþTÜ),eùO/›†[EËá;o?Ú[AÑÌ Wß¿wh)N©K®»tóî™58UTí¾|ýÆù‹GæàTÑwìÊžŽég×­Å¥ ~ñÉ- ·áÉnö/Üxt3•«·ï\…7G×6õÎR�·îÝ71Þ����IEND®B`‚IMAGE 1277 ./arch/mapbuilding/mbpinkmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��»PLTE)-(}ZZ›qj¾……ü¥¥ÝœœËÊ£ÊË¡ÌÊ¢ÎɤÍˤCFACFBHMJbkibkkbklckjblj05346/782.44mmLcmjfmkfnn,0.€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒ/1-Š›žŒ›š›š–œŒœ›‚¢›s‘˜»ˆ™’œžŸŸ}‘ ¤Ÿ ’02.¶³“·´Œ34&ÇÚÄÄžÄÅœ4955:6;=8*.-_id_igaiiakkQMBIPOLONeonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~hOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[zƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qZ`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fb¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—gdR\ffhcZ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂà`fe<?:;?>9@@ÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£=A=>C??C?>CDBEBÎË£Î̦Î̧Ðͦ¤òæ��ýIDATx^}Óc“f1à42ÄÚ¶mÛ¶mÛ¶mÛ¶mÛöþŒ­¼édî̇=_r«úéÔ©T]E�ÄÌ�l"§ÿP ¨”úÿài†o½Ó‹ð�1�ŸõI™ëûYP„�Äå¿þŒî›µ9 �’ЂªDªZÖk-ÀlX`…Š1±I7‹KþØ4€ŸÔ¬“dÅà•kùþ®)�<pY» WéP;™´3sÊâ…ƒ*/©_­}Ç6@"ÀKÓ®^µ¦I¶,=\QÒV8ÀË«ÖJ×*û¸ÑSdU‹ð QÝî-Úv6q*Kˆ8‘9g§¦Gæ2Ö €„� S·¡ÓòΜ[ØEˆ5)÷†­Û8!0’@±ƒ»®çéeÙDfŬ´ß(X¤š~Ãí‰C€5{Q½ôœ³í>±�æ€8w¦À©ã›¦“4Äc\¾Vª(KTðÝLοYæóÃíÅ$"°é¹?,êïŸ}ë‚€€ÀeÖ°__~_  ™"#6¾|÷ 2âöÞx`§h»eÜóþùëOáe�(ÖnŽÈZK¥ WÞ|øøâÕÝ- �m9W–mòß{uÞúrÇŽ*�ŒŸ€ÜÑe÷£’̷γÒþï•w ±'nì<yï´)I(kD€xüá —±…ü!åLž‘o3ó?a›rÝr°Cá����IEND®B`‚IMAGE 347 ./arch/mapbuilding/mbredcwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���ñIDATxÚ}“ ƒ0 C—¸IïãÅ jU<ÍHPð#¿ÂG4[¯§fÛŽÖXÉ—O‹âõò0AqqûæÞþÒE<vs€Ç„Õúª`©â!Ø„·v„à[A‰ èc>](!s@&)Id/ZÓ¶9©¡�ègOPß ðÈlûTÀ0Ü"V&õ @‘fQÂÏ 0Šx ý•ÀQJ%x™¾zH^¸x Vo—]-(ÁÞ²(DR7Àú2éDp7ÂÆ�ã÷Œ„àʉÊÑÛèù&�f8»ÐÉ2ò�¨û³ |;óTA„-ìï VÀ?µÇÝ©ªþ@ {уÕ����IEND®B`‚IMAGE 1487 ./arch/mapbuilding/mbsign.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��OPLTE�������§l�ªo�¹v�½yº|�Á|�Ü’�ú ÎÐÌ®rǼœ_�¶y�ºw�·z�¢h²pˆY¾�Ã~�Å€�Ã�È‚щ�׎�¶s�à•á–àš�å™�éœ�¬¦“í ¸°–¹±—º²˜½µ›²u�ƾ¤ÓȨËÎÊÉÎÑ´w�ÌÑÔÚàâí߸³v�€W�†W�¯sÂ}�¿€�·¯•  ‘`�¼´šže�À·Â¹ŸÉƒÌ…�͆�Ê¿ ÔÉ©ÈÊÇÕʪÊÌÉÎŒ� ÙέÍÏËËÐÒÚϯÚ� ÎÓÖÞÓ³ÒÔÑÐÕØÕ×ÔëݶÜÞÛÚ–�¨m�ïá»V�i�Ó‹«p�Ô�Ø�¼}�Í¢ÐÅ¥ÑÆ¦‡]”T!ݘ×Ë«Ä�Òp,ê�ëž�3·t�Ûаï¡�ÑÓгª‘¶®”jC'žjÕÚÜçÙ³èÛ´éܵ ì޷ʉ� >ñã½òå¾ôæ¿“b;(P±¨»³™G,˜e�¿¶œd�Á¸ž—a"C2T-ȽžÇ�ɾŸW/ ÌÁ¡U;ÎãÏĤf¤j�Ûw+g.ÓxDÔ}3ÉËÈz6^C#ØÌ¬ j1dCšl= “1ŠG—AjV'Üѱ*â—�àÓ­9…V�”JÓÕÒãÕ¯:å×±æØ²ƒZ�¹{ŠZ�ÛÝÚ ò£�Ž]�Ók)9*ûª�@+Êp0øãÙ ���tRNS�@æØf��.IDATx^“ã³/9Eû$iãgÛæµm϶mŒmÛ¶Í?lN¿¹o¾LMÕ¬®®¤kï¬Iš» üÿä4º:vÙï÷ ²ì¨¼³»Óêþ”nä4Q ŒP„1J�†ß›6 ðSŒìc7®][¯/Ÿûú«/Ž\™~mq÷3°a ©ã‡È6¸±ŽùÅ‹³³³Wî«ãí]OC#ü½>•8ÄöÑë×ëËoÔVjgõI]׫KO ÂÓ@O% ƒzýÒòK+µ¥Årijª¤/=¿“îAÄR©X,qZ_¾ðꋵ•ÙŽÑö½<upP#ßPŽÚb©ÃDZƒKæÿÔÏÖP?·0U=ý8€ìp<žˆ a}þ©ÉêÂBµ\<±xâý‚fFÊg5®ÆãQøÎ¡D)+—©þù/§µžÒˆ†ÖlD£0ów½©¾<\-Uçj–. Có D"Ñ¸Š…ó¯ÿ°X.—KÕI}î‘\oWp'aÇØ¶ˆªF!H?˜ÿñ×vJiû8¥ßj¹ûïÉM”¹uLEp'?>611ôÉ»{ OµôZ²Ù6fä±U5…86=2T|eïÃ; -—ËdÓ§ð,°à „Bª ˜ž)^=òÞÕAM{Ð\ŸL›gA ÛåRÁO÷?üã¡g Z¯%—ÍfÒ§’ð=Ñß¿} 0RÜ}ï;ŸýV°är]Ùt²íäÝð3`¡ÒÚ¿e&ļth¤°ëŽ/5Kæ™t[òd¬”#k‚Ü m‡Vø¬hØ,8ú‚ý[`@j6§ÓÙýÀM«»©©Éí¶Z;;)Çœüw>_01ß[wñÖ L8rß\‘¼$Ðßðù¼-Š"‰¶pØvñÎN7pë~ÎÈW@ ÀXV¤‡Í–Ïóæ…#gº×j—å€ßwÀ«x”YA$»hðÀ!Lày¢Ԣx½^I‘»]%I Æ™üV»š¼]’P/+v+v‡-˜"d+k¼Ëåj’„‘(Ú•ÊÑpøöOd3†çÁe„ÅQæòá¼@¸ €€0F¨9Ç(îÿòâÊQ×����IEND®B`‚IMAGE 1089 ./arch/mapbuilding/mbstove.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¬PLTE���,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ)-(*.-¦ ]���tRNS�@æØf��CIDAT8Ëc` <fÅ/ÏË( í„GžO†Iз<'¿°ˆlz�.y¡GÌ Aî!8Màâ³ññ·²3Å¥‚GÒÕZGY×P —E­pOuóH[œ¶¨*™ixXFD…âT¡é ¯gà›‘–ˆS…¶…³cpfYq .Þn aqy•µ8HÍŽö‹)ÌÊ)Å¢)ñ¹u]­ý¸UUuL›=_¬NZ¾`O§Þˆï› o/—O…8K˼f| LŒz7¬QOIɲ»7OÄ£À«}߉ëÇæNÆ­"iéÍ»,™‚[EÓÁ›÷nÜ߆[AÁô³—ŽÞ¹}`1NÉ‹.Ÿ>íÖÉU8UTì¼påê™s‡fáTÑsäâ®¶©§Ö¬Æ¥ váñM û·à Žu{ç¯?¼‚ò•[·¯À±Õ Ý3�xeðÎYKñ����IEND®B`‚IMAGE 1169 ./arch/mapbuilding/mbswall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¯PLTE)��)-(*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ���üBºª���tRNS�@æØf��IDAT8Ëc` 0±£òŸ<Aåó3 ɺà‘ãd6EV€*ÏÁ-(*&Ÿ„Ë�FV.)¥Ï0$¨JxxÅ%ìümÌ!†?C8f`à“v·ÕSÕ7Ö�ÄO 4Ì2eHo5MËh7{ˆ$Ø †�u -/먘p¬6€€¶“¡‘VFòT€p©®•«shvEiv|=’‚# ªëAòO0åÒscâŠsòÊ¡îÄ P†´Äü†žæö‰0×£Ë3<)©éš1wŠ7PchÊÊEûºepÈC'LRtT(Äe�H«$[Û‚VÜ0<13éß´~V#@ÁÏP¶b×Þ­“±�VàÓyàÔÍó§bµ� S–ß¾ÿøÑ²i8<i9|ûÁ­‡;0åÁi‹fž¿rüÞÝCKPR!H]rõìÅwN¯Át)ÔñU»/]»~î‘9¸0ô»¼§cú™ukq司Å'·00ÜÆ€;KnØ¿pãÑÍXB *Woß¹Š†Ú¦ÞÙ@ �ƒ{ôrlþ¯é����IEND®B`‚IMAGE 289 ./arch/mapbuilding/mbwall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�� R-���d3‚B'Áq89Y6���tRNS�@æØf���½IDATxÚ“ Ã@]oýÿ—ëž)æ8,Ò eFI µÿXË^¸8}ÂW@Â_A¡[{,¯qDÔ’ö$QÆë:6p“~y#:0ùîg0iu¤ÏÃ5NùN6�* ®"òD-¸ D2�TÜþ!¢‚‚D^LÞ¼ü¸ÀWkð ô¢Ìƒ>y÷µôœ6Z"f(~Œbò½d <ŠÑ[|™ÃUøá­w Á]xÿTmƒíòÓTÐß{Áðm?ñNÑâydÅ����IEND®B`‚IMAGE 1298 ./arch/mapbuilding/mbwestcwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÁPLTE���¦X½­…���ÕÈ©ìåÔ‡q;`M ËÊ£LONOQEKSQLTQOSR[XC*.-otskvtputstrkxznyvpyy,0.‡”••“w•…/1-±±”±²’¸±‡¯´—¶³“·´Œ³¶“´·•IPOÊË¡ÌÊ¢02.34&)-(Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fbgdR\ffhcZ`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtv;?>9@@=A=>C??C?>CDBEBCFAr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’‰‰‰‡ŒCFBHMJQMB.44‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…05346/7824955:6;=8<?:X[JS[Z¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂàÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£Y]ZW_[V`[ÎɤÍˤÎË£Î̦Z`ZÎ̧ÐͦXa\Y`_Sã¬ì���tRNS�@æØf��ÿIDATx^}“SÛì0F³÷NÒOǶmÛ¶mÛ¶mÛ¶mÛ¶ù+Nwç›fÒ‹³zÑ›Õõ¦Og„ÙC¢!A*”ˆ(½{„Ð2U›Ø@2(#´Š;ž®mÉ�ñ8$}áØÉÖí;$è׌R~À!¢]ž\'²ŸkQ7 ñS|ENž:­R£¦ª”æ‰a Ì™èÚ })\ü/¡_°„O’×ÿ™·lÊZ••)ð„áÏç2ùê•OÑ1i `È_­h‘bû÷í�F0,W³zâcGMÆž`¨aîÍ“u:a … ÐgP§&G <Q!‚T*R @÷î6$õ¢™s—û +àhÐ#'.X·y‹”ŠÒ8ZЪý;®.ŒAé:* €v í,[q¶jÂaÁâç�¥šž{ζÙàF‚›Ð„®QªÄÒŒG7¤A¶À�è¢Fï»x%ËÊ  IóѤj0ÿúÃ÷·®¶Gù?Öž{£¾ýþµg=¡C Ýʬ[Qß?þ8o HÈÞ_ÿìõ½¯9oî6‚÷ Ü—Á^»Þ<yñ>Ç£CF ñŸ!1þÒË·ïž>¿½É<Ï" bÉÝW—ç­}|äp¼@á/¤¼€]v>È,ĬáX@é˜ô×¶g¸“),Xq³]8 þǤ´‹7 ñòpïâ<øP����IEND®B`‚IMAGE 1163 ./arch/mapbuilding/mbwindow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��µPLTE���)-(*.-,0./1-02.34&.4405346/7824955:6;=8<?:;?>9@@=A=>C??C?>CDBEBCFACFBHMJQMBIPOLONOQEKSQLTQOSR[XCX[JS[ZY]ZW_[V`[Z`ZXa\Y`_Xb\[a\Zb_[acZee^db\ecZfe]ec]ef]fbgdR\ff`fe_id_igaiiakkbkibkkbklckjbljmmLcmjfmkfnneonfoldorfoogoogpmeqoqo`kqsjrskrqnrpittjtsprnjtvotskvtputstrkxznyvpyyr|xxzwr|}{{kt||s|w~~|}y~h€lv€‚{€z‚vƒ‡z‚‚{‚‚w„ƒ{‚ƒzƒw„„zƒƒˆƒm……w{‡ˆ|ˆ‰€ˆ‚Œˆf‰Š‚‰‰‡Šx‹‹u†Œƒ~Ž’x€ï‰‰‰‡Œ‡”••“w•…‰–•••zž–l—˜u˜—š—ƒž™qŠ›žŒ›š›š–œŒœ›‚¢›s‘˜’œžŸŸ}‘ ¤Ÿ ’¢£Š££ˆ–¥¦¥¤‡ª¥|¡¤œ¥¥™§¦œ§¢¨¦‡­§©§Žž¬©©¬­«Š««‘­¬‡±«‚³«ƒ®¯ª­‘©®•®¯‘¬®¢®±·°…±±”±²’¸±‡¥ªå¯´—¶³“·´Œ³¶“´·•¸·Žµ¸•½¶Œº¸•º¹“¾¸©»½»º—Á»½½•¾½”¾½œ¾¾š¾¿˜¿¾›Ï¸žÅÁšÂà¿¿¿ÇÚÄÄžÄÅœÉÃœÆÆœÇÆ¢ÇÇÉÆŸÇÇ ÇÈŸÍÅ¡ÉÇ£ÉÈžÈÉ¢ÊÊŸËÉ¢ÎÈ£ËÊ£ÊË¡ÌÊ¢ÎɤÍˤÎË£Î̦Î̧Ðͦ���8úã-���tRNS�@æØf��„IDAT8Ëc` 0±ã—çg’uÆ#/ ÇÉ"lŠ[žƒ[PTL>#—¼#+—”R°G(NxxÅ%l}¬íÍp©à“v³ÑSÕ7Öx†` ”u"¼Ô4-¢\íj6£@¸ us-O«Èè0T ÚŽ†F~™éIØí``x¦kéâ’U^Rwš Ÿ!›ð¬ÆÇ=1(<>¿ª«<óÍ5i91þ±EÙ¹ePÏÝæœNMÈkèinŸˆ)Ï�2(Z\Ý5cî<¬.�Ë3œž²rÑþn¬.xµyÂ$E…‚Ó5˜6Ô€áæg’lm ZŸ¡„"È„gˆÐ3éß´~V#Š ÏäkLJWìÞ·mò3”èD ^ï΃gnŸœ?w K^~÷áÓ'˦áVÑräî£;wâVP8óâµî^ŠSEÊ’ëç/ߺwv N•{®Ü¸yáÒÑ98Uô¿º·cú¹ukq)ˆ[|j+áíx²Û† 7Û‚GAÅê»VáÍѵM½³�·ûÝ% r ����IEND®B`‚IMAGE 538 ./arch/mapbuilding/mbwoodfloor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE{B”Zµ{Æ{)ÆŒ)Î¥s½„!{J„R½{!Ö½Œµs¥Z!ÖŒ)Œ9!¥sÖ”)Öµ{µkΔB¥cÎŒBÞ”1Ö¥J΄!Œ¨ç��ŠIDATx^e“׎1 C©æ2í–ÝMòÿ_ÉeŒÜðAÀ=�r�QÌ¡ÿø…' Âoa®Ò˜åf0ý*�2 Ë[J°»FÂÀ¥âRuÖ¢²ë` e»o�¢ “÷fg‡G|“v©´3XÚ¡‹™XjeË:‹CDÿ²+¾pŽÝO”Sƒcc¾Œr *Gð<¥ó—î²g‘Ùñê,¢ñ½î/ æSU²ï¸Ę̀sMïoa-‰ð}&IÄm:Ì5X]>ž�f�ÖLv•0X¿ðp,4ø<Å¥'~ë—¯*€ M®•¹V(+³‚¤¾Ýܶm1{X ¢•ø–oî#B_ù›ûÙ÷ª´ÐWþf&[5ÐB_ù_ÙB[5fì+ÿv©9÷jà3ÿ½º™ Ægþ,?ãEg|æïl[ÓêCkî#Š6û°{ zþ­ »ÌÛèCITsË¿5áT¬÷AŸ>ÃÔÖ„äÓÂñϯYî&àp“JóÓGþ“·-öÜ}XùOng¬>¬üoŽv8ÿÙk Ë›¡a����IEND®B`‚IMAGE 1337 ./arch/mapbuilding/mbwoodfloor2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÓPLTE)-(’u>“l5yR5…^5oH5zS>…l5wKy_5ËÊ£……w*.-Kz‚ÌÊ¢=A=>C?>CD?C?BEBCFACFBHMJIPOKSQLONLTQOQEOSRQMBS[ZV`[W_[X[JXa\Xb\Y]ZY`_Z`ZZb_ZeeZfe[XC[a\[ac\ec\ff]ec]ef]fb^db_id_ig`feaiiakkbkibkkbklbljckjcmjdoreoneqofmkfnnfolfoogdRgoogpmhcZittjrsjtsjtvkqskrqkvtkxzmmLnrpnyv,0.oI?oS5otsprnputpyyqo`r|xr|}strs|t||v€‚vƒ‡w~~w„ƒw„„xzw.44/1-02.053z‚‚zƒzƒƒ{{k{€{‚‚{‚ƒ{‡ˆ|}y|ˆ‰~Ž’‰Š€l€ˆ‚~h‚‰‰34&46/495†Œƒ‡Šx‡Œ‡”•ˆƒm‰‰‰‰–•Š›ž‹‹uŒˆfŒ›š˜—›šŸ•…‘˜‘ ¤5:6’œž782•“w••z–œŒ–¥¦—˜u™§¦š—ƒœ›‚œ§¢9@@;=8®¯ž–lž™qž¬©Ÿ}Ÿ ’¡¤œ¢›s¢£Š££ˆ¥¤‡¥¥¨¦‡©§Ž©¬©®•©»½ªVªVª¥|ª­‘««‘¬®¢­§­«Š­¬‡®¯‘®±¯´—±«‚±±”±²’³«ƒ³¶“´·•µ¸•¶³“·°…·´Œ¸±‡¸·Žº¸•º¹“»º—½¶Œ½½•¾¸¾½”¾½œ¾¾š¾¿˜¿¾›Á»ÂàÄÄžÄÅœÅÁšÆÆœÇÃšÇÆ¢ÇÇÇÇ ÇÈŸÈÉ¢ÉÃœÉÆŸÉÇ£ÉÈžÊÊŸÊË¡ËÉ¢;?><?:ÍÅ¡ÍˤÎÈ£ÎɤÎË£Î̦Î̧ϸžÐÍ¦è”æÄ��!IDATx^]Òc—ç0ð«´3³¶mÛ¶mÛ¶mÛ¶mÛ¶mïGØ&íÌì?/òâwNûäæ<0*¤0ïD± „$Ä1»ºH¬D)ß$‘ #ÆÏâ%« “ö)côùD”U)FuK‡Xÿ©mRÐ7SÑq&JÕ¡¦0{fòŒÁÁøÐ}AÒ4µªÔ5±Š ’¸ad JÔ¼Õ‰“”¨Q½XÉÂ.)3(¡CMHÐ3 íU_’—)^ mîü™•¶¾"œÉ3P8I¦\õÊeÉX¨EÅR$Ú(¨“ØE@ý%eHW0gÕ¢ [5gߤŸØ‰I•µtÞìùêôŒ=0°˜G¢$¸ÈÙŠ”-ߴ߈a“#š«É v¥ŽÍÚ´ë=f\`Òê\×Ä9nßþ]´Щ×ÀHbf@Ô ã¡}ÛÎãgNž1?Ò,:AOì·ˆ2hð”%ËVF9tæ®Y¿gzÊÐ}°úŸ3+}ý¢­Àî?õÈ¥‡×þg°û¯Vyóå‹ûFìþ…§¹qëÒ†HƒÝ¿ƒ-×=xöéÉŽ¾Áîßóð“ßþþ>ºÅìþµ݉øùý×c°û׎±íù×??âÜ>èìþ‡y÷æí‡ŽƒÝ¿ï©W_¾ýôÅÝíhõxÅýW×–o}|üÕà>»^`ºyVïChÿQ>u}çé{'Ì>„ôå±»Ï?`íƒî?Úg/Þ„ü]G²ÃÍ����IEND®B`‚IMAGE 1225 ./arch/monster/demon/medium_demon/mdemon.x11 ‰PNG  ��� IHDR���@���@���·ì���rPLTE������„��µ!!Ö))ÿ��ïç­Ö­��ƽ„”��­¥kc1”)!çççk��R��çç­½½½¥¥kÞ��çÞ¥ÞÖœÿÿ�½µ{J��B!œ”ZŒŒR¥¥œÆ½Œ¥¥¥µ­sïçµïï­ïﵜœc¥œc fvñ���tRNS�@æØf��IDATx^Ý“é’#7 ƒ$¥>|νgî¼ÿ+„zGn¯×ëÔäW0e©§]øQôÝ*àþz �Wü·p 𮜘Hxàqº€zÐ úÓ-1EX|ªPÜ)4Ò¤”W ÍçÞ|æßžió8W�›i£ÊFcXG)Ó#×ÀÅT‹V74ed†—òCPRŽOŸ2@DðÉÈvq/ £rGxÚQxŒ¢ü�ù–Æ-õóÜÇc)^¸’˜Øóe€7B˜¹„Ï“H"p ¯“Ê\ ÌE7ŒþZ=z†ˆZkæ0' ýþúð|¿sš=ÉÖ¤Ù<Ç%@!À ïþ——çûÝ®PíþÂL„ÌyN€©73CÈÎóx¡°Û"ÈoŸI˜²Ø9V]pu�ðÌw†Dxq$Wü{œþ6³nÜÙÀç—¬ïnx¢87ƒA�3�á!¿�!Àý3~³×× ýÚ�õw¨'g€pŸå§!ñ<ì=`ôÇÉï `"ÀÃWd}_¦H»†�æn’{óGkê [ÈÅX@úöIˆ¯�_ƒ„u`z7ÏYjk!‹Õ`_õ·O�¨ÂºhAË< àox“À�ywÿƒ`lÝ•!°�öÍ»ÏåbÌ¥8¸FÕé¿ÃGãõG„ã àaŸ|öÀ@ŠÐÝ`= AÌwd8(<ÐÏH¤ÛBˆvŠÓ.*µ^ ²íú"Úp½PµvÆ@ÀY%ë% !‡ƒô—ba8n¡©_ç Zïq<*‚1Á–„.ƒ„Ì瀖*?°ÃAã ši@†§Î ºûFh»¤A�áhØÅÇÑróÁƒ¢ŸÂT –wœÝB»â©€¾ÁÇaÈ}àã`Ãh­êH€6¾ 6S…­²eÏ­”á`®«ýnÁ³ þú<+-€›g� r•ÿ©h ð N úpåÃ@vŸ(é_b,„OÑÎ΋ä®Hoåý©x¡]w¡´¥» €Í¦”xR º@?!ÙAb0 ¡mõß �µÖ  ½ûû̦Zõ­ôV÷KÀ*6%ÔÁ5A @Ñ1ŽÀ] :�-‚aå·'ˆ Я÷<Á—/k{O¶$pù Ãp @êî’`€ô|:Ýò_W‹ ÉЙ[`À-~sÍsNßYáÆ�ò·oþqÔLú N�èõ�&pÜz�Í]¿Q ¼Ÿàf@¯Oý»� èÌ[ñS�€ôK€üf ìç�Ôª!4"�Œ~}Q«]ô醋¹÷1¦J�—[®‘þTcÐ?ýI3uwƒ°hE•ùÿ®�EZ*ñÓ ¼����IEND®B`‚IMAGE 1232 ./arch/monster/demon/medium_demon/mdemon.x12 ‰PNG  ��� IHDR���@���@���·ì���rPLTE������µ!!„��Ö))ÿ��ƽ„Öïç­c1­��R��”��”)!­¥kçç­k��¥¥k½µ{ÞÖœçÞ¥½½½çççJ��œ”Zÿÿ�Þ��ŒŒRB!ƽŒµ­s¥¥¥¥œcïçµïï­ïﵜœc¥¥œl®æ¡���tRNS�@æØf�� IDATx^Í”ç’ã8ƒݤ‚Óä¸{1¼ÿ+�ÊeIJ5{?3êûØl·õí? ð“ü°E€Oøml|­Nt4ü”রÿT03@1¢l*Ó†3‡RJ­bµVL¦ÎU~j˜¸q5#¢�-§›øDpêNÞ9“¼‰–’áOnxÅG<¸AMoXÚ?~ã+=“´D­`¦Î Eøž+]ûÂW…<ó¾�†€ÊÞïkÊ+•êƒ Oï b2dë[à¹ó\C Jùà (æ¤Ï Fü0D¹ÔPÊ0 (Ìï6à…‰Hð÷íýÕÕ1‡ê‰å#A¥ Êá-äïîÇʸý*­oH H³ˆ‰¾½cp<6˜Ïg:Þ6Y%PB|àw ~EÆ1!EÔ€ÞžQß‚|ë!nàýÝ-÷H¼hŠƒK"aA­+åÅ<#E\Ýâ3_^„¼4ÁÍðâY"æS®ö HòþzÛ'PÐ!¢¬Ú_^wJ«‡�íED:/þVÖµ°ˆ-²ÿð(Cùç! À7÷h;¬q8x+ n6H€Güæ¿G †N­KçMS„ѶVƒ4 “‹., íFâi%Ð $0ž›VÐòóüBàe‘á;E$h)Qp£(äù†yOjÃb ¤ ž’óÃ×&Š*Δ$±GRàyX”Ú¥ ’ ãèL ¥Êô]„ñM§,ÏPd``’c^ÉxH‹— %¥a!ð¹õÐ>,@’k¸$÷ãYÐN1Ÿw¾Y�—9Ž£Sv»„äy7ÌFc2‹æ¸¦bçd^@Ô)‹#˜L¯£áÝô­€bx%@0§n@„KÞqåuG=CžŠgf†Ù¹ ×ð'Èõ±ë{­=ŸöÙï²í‚ÁØpÐ +¤Â€ØyçÖ»ÐRk? º¡búÉż ¥z‹^E´"C8ºÖh)ÍžNï޾š·àD ó §D$¯Q'ÎÎÛá8èÄó¯s+ÈÔ êqg$í¦�ü'-žÌ ®�Œä&GýFæâ§“ðx­!ðbžWÐÆé#`†(¯nÁÒ€©n™‰óo¬–‹Ààį h˜?Ï׺‚VBQW1§º~ dèûUß¿'€÷xÏsYŒxhû%?Áó5/‚1-ð|@|ˆ̤AC¿…ωWÓ±|“/ ÌïBM¤`;oÁ™·`Û �Pà ÷Í|l`<„IEⲿ²áÓ„ŸxɈ³À7Ãö=l1€¼’€æÛl&‚)ga’÷Ñ$½�›áÝ@/_¸¢®û‹°ªúZ�Ãÿ÷ü kr+¥ç:����IEND®B`‚IMAGE 149 ./arch/connect/Doors/mdoor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEçÆ÷R)���ØÔü���tRNS�@æØf���:IDATxÚí“1 �0ÄÎüÿÑ:âªÐ¬Áà y�¦›Fµø»œŠx Ø?°! ·ÜÿJ¦s�éE�Ïa©pZ����IEND®B`‚IMAGE 149 ./arch/connect/Doors/mdoor.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEçÆ÷R)���ØÔü���tRNS�@æØf���:IDATxÚíÌ1� ÃÀ’ÿ? $oÊÄЬ¹ž–3C&ÅÃâZ`ÅœÃ&Ð $‘ƒáPþ» C�ñëˆËA����IEND®B`‚IMAGE 154 ./arch/connect/Doors/mdoor.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEçÆ÷R)���ØÔü���tRNS�@æØf���?IDATxÚí’1� +ÿ´Ssmâ¢ÑD6z”‰Ø&Y-P�*yºd>ìÁ8Wú · ¸e[ì?Wkyâ L÷ ����IEND®B`‚IMAGE 140 ./arch/connect/Doors/mdoor.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEçÆ÷R)���ØÔü���tRNS�@æØf���1IDATxÚí’1 ��Íÿ?ºQ‚À¥¡ÁÛD¹I<ƒ ¦ –‚ðƒ"¸€[ïÏŒW4g0øS����IEND®B`‚IMAGE 377 ./arch/ground/Stone/mediumston.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTEŸQ,-ŠVÒic2�c�Í…?���cDÙ¤þÖ�ïå‹“Oô—��IDATÁ!ŽTA�ÐJþd§›‹`±ß p ,îË‘Y`º²¦“a7õPkq—ã½ `u@��VBýØTÞU:÷ûm}ènAY×ö5cVs?5–xú’ÀsžãœÖ`Ú×»‚–’†_¾Oø­wëéO‚ 1>}þÛ*­1ެ±…Ûñ6ê ÓT2Ôéè,¯ð(�Ϲ’Õðzp½m¹W¿ 2.·#¨Y9ýÛéÔƒùoà…BÍSB™CQó(/€®zŸlÜ6€x|¸·¬£%T{¶ËXïWP}ž3˜}VV£²Ÿ¶��"€è*…š s¯óìÕ…ÊÕ×}dÍJkóçe%`DP‚n0ëºý-›ú| Çð€����IEND®B`‚IMAGE 400 ./arch/monster/humanoid/Arabic/merchant.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÿÿÿJJJ¥¥¥½½½„„„ï¥Z”””µµµcccJ�c)�½s9œ��ŒŒŒ{{{Æ��œœœsssB!ÆÆÆ���­­­µ)9Z)�ËDGú���tRNS�@æØf���óIDATx^½‘¹rC!™Ùåæ]:ýÿ_ê}V9ˆÀ;í®Ù¢pÆÜ§”0õêu6}úçl!Uïý§ ©>¾µ±¬@5Q줶¯Œ|Qˆ‘Y• Ѻ8(ÄJãz=T0:€"c”ýèrΤ5”+Ê{P3ñ•VÚ‚GwÁg­Ø€yÁ–b7Pê†T”¤Ð‚·…\JÉ„òZX‘‘V ;yÞ×î›;¥`kÕwßôò £®÷gÀ%PDaþÀr_fJ.÷û0hæ5œŒw»Áàb^ÑÚÀ_.Îá\ùßÔZ7åbíÿò  ¸­\å����IEND®B`‚IMAGE 400 ./arch/monster/humanoid/Arabic/merchant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÿÿÿJJJ¥¥¥½½½„„„ï¥Z”””µµµcccJ�c)�½s9œ��ŒŒŒ{{{Æ��œœœsssB!ÆÆÆ���­­­µ)9Z)�ËDGú���tRNS�@æØf���óIDATx^½‘¹rC!™Ùåæ]:ýÿ_ê}V9ˆÀ;í®Ù¢pÆÜ§”0õêu6}úçl!Uïý§ ©>¾µ±¬@5Q줶¯Œ|Qˆ‘Y• Ѻ8(ÄJãz=T0:€"c”ýèrΤ5”+Ê{P3ñ•VÚ‚GwÁg­Ø€yÁ–b7Pê†T”¤Ð‚·…\JÉ„òZX‘‘V ;yÞ×î›;¥`kÕwßôò £®÷gÀ%PDaþÀr_fJ.÷û0hæ5œŒw»Áàb^ÑÚÀ_.Îá\ùßÔZ7åbíÿò  ¸­\å����IEND®B`‚IMAGE 400 ./arch/monster/humanoid/Arabic/merchant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÿÿÿJJJ¥¥¥½½½„„„ï¥Z”””µµµcccJ�c)�½s9œ��ŒŒŒ{{{Æ��œœœsssB!ÆÆÆ���­­­µ)9Z)�ËDGú���tRNS�@æØf���óIDATx^½‘¹rC!™Ùåæ]:ýÿ_ê}V9ˆÀ;í®Ù¢pÆÜ§”0õêu6}úçl!Uïý§ ©>¾µ±¬@5Q줶¯Œ|Qˆ‘Y• Ѻ8(ÄJãz=T0:€"c”ýèrΤ5”+Ê{P3ñ•VÚ‚GwÁg­Ø€yÁ–b7Pê†T”¤Ð‚·…\JÉ„òZX‘‘V ;yÞ×î›;¥`kÕwßôò £®÷gÀ%PDaþÀr_fJ.÷û0hæ5œŒw»Áàb^ÑÚÀ_.Îá\ùßÔZ7åbíÿò  ¸­\å����IEND®B`‚IMAGE 174 ./arch/inorganic/mercury.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿üߺ���tRNS�@æØf���SIDATxÚåI�!­þÿ£M Ñ‹-.·¸˜TÊÏ  ¿§\(ÄŒ+ ; qÖóy\&M‚Áê †k8îÿ¾A’³bP.îÀÑ9Ef$ô{U«A�ÌuÉU����IEND®B`‚IMAGE 507 ./arch/monster/angel/mesangel.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE���-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿gÄŠù���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 93‹Þí��FIDAT(ÏU‘1oÂ0…=e¯"uE™©R%&”Q6¤ý!YÉÜ…nZô<µ)UkÿÊÞÙ©öÝçwÏï!„(îGÑ K'õ‡ð«|ÜÅÓQ²¨»T½Sç4wëåÁFÚøºLnžû' iRq%DÝö=¨S5fу-\ÇJêce?KÛŽmç뉶vhtëQ Ì`ífLYÙoú$籑,í‹„¶ÞÐØ‚Öï(w)¢Ú†‘4|N¾!ie ´¡a–êu ÒXà-�ê7š48º:ÎÀŽ,:8°fCMØ; –ØIê!Å»™Ä1ƒSøRc¿bß3˜£QŸvµ›æ’MÚó×Îr1çðMzëÊOC‚ü ”ä,éÓ|'yøs*¯£1(øBpªúß"bÀ]ËOüþy§¦Bj{����IEND®B`‚IMAGE 477 ./arch/monster/angel/mesangel.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE���-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿gÄŠù���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ¡¦ïO��(IDAT(Ï]Î1ŠÛ@GñWHè>€Q„Üö�^“-Ü©H0I› g—AGH+6°oJÇÍ7§L!í.É”?ÿo€ãuûÐàr�ø:Bóùén€Ç`Ÿ Š]li¾o.7¨?¥Í@uŽm c{�ØïÝžJ×lÌ[€Ÿa龕Ûcø<Ô§_×»—R>¸M¯gKù¢ËFÝës_®÷úc�h&ÍQB-@Õ›#´èfX7²jÉÑÀÅÈšKñ¶ÀTÂ0—(^AÃú°‚ Çu#ÌÙPHSžÍù½H“¿ûø§°;ÅûFJ»¥hG ¥4Í©÷%t·B:_Ô°]‹&5æöãÀ”unÛšÉй[ŽŒPõªó™×W«oߨþ‡É¢Îé NYÕÀ_л¥ò6N[����IEND®B`‚IMAGE 486 ./arch/monster/angel/mesangel.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE���-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿gÄŠù���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ $gª6ý��1IDAT(ÏUбjQ†áY™Ö"° ËÙRlq›jŠHȤ?Œ~Æ;0åa‚¾§3Ýÿ_¥Å˜–ßÃ[}ú\$émJã…$I_W8ôÓ°ÂÞŠ¤Íø¾•Ô™Rl%uggßI›PÊÏ’¤’ô&íµ¿ææòË0ÅUwÙ_·^œ»»ø=9€žÀëˆÜàé ¾õ6GÜ�õ\;*ðþøX€Efð¿€åÖd3€;@‘)ã�Ñ ™u• h<ÉlN£…ÃV2ëîœpXɬ̀»E’YÚ?`s«4j‘$3ø™—B6Án…µÐCfwtÒ 6WËàÔÏKnþ ‹rÃkêÿ‚¤£SSzwÚ–Ô«×`¨ŸN[3�÷ú¿`9ín^?N@àBÒ Ç·B¹At•����IEND®B`‚IMAGE 494 ./arch/monster/angel/mesangel.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���!PLTE���-ŠV��c2�1�cD���þ¿Êÿÿÿ¿¿¿gÄŠù���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ .‡ßã��9IDAT(ÏU‘ÍJ1…/8e¶‚BqWÒ–1]Šn\Ií u%è¦}ŠZÂÌ[8Δެl)¹OéM2S0Yåãœs� õ@ˆ ʈgó~H×9”£”“:q®…õÉD°}§WÏC(§mzfÌYyœö¤-½¤·vóæß©‘˜­è°qö1Ä&¿YCc¤cP bÆ ':ÅŒqTP«iÿñ3,f~½ÑeÈ@kÑ¢{åÁ…Ät}¤ÒEàê>Ôñeëf)Øa pÒÍÂÀ¡%vň%ö`÷#Ñ[|¥&�³Âšëì97V™Klî(ô2àq¢É×é,+ÃVTy�Ÿ»FIËŠJÄ>ÒLÁÒ±Aˆ‡Œ? TŒô5Äð ´okÕýœQe� œ¦°‘30ëÿHfQáwþ §ü/²c����IEND®B`‚IMAGE 351 ./arch/armour/mail/metalrobe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿshh„wwÿÎ�™e�´­­Î™0XOO;66~xuΙ�ÎÉÉ?•‘���tRNS�@æØf���æIDATxÚµÐÁÂ0 Pâ´]3öÿߋݞ¢‰ –�i~Ki^ŠíÔÏÀÝ[:V5Æp¿úìrŸ …;ÈÓ ¢¯ ¬_ŒÞT‘{�ûl "8®ç`M ^ŽìáN€U¥^`R�HU€ÄWbí\ÀÿY0÷£8Á$°ˆ~EÛ×Ìýý~‡i]ÜðhŸI°è÷mú Œ1³Ø›ÓÀt†c‰lø àшòº†ðÀ `˜ŒD -ÞJš"áP¿ê®c ” 60åP¿R-"KýR{ŠTÿ”ý7R¸4 ����IEND®B`‚IMAGE 321 ./arch/spell/Bullet/meteor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEïÎÿ���BBB{{{œœœcBµ!!ÿ��c1½½½ÖÖÖ�1�Ë+[€���tRNS�@æØf���ËIDATxÚÕ’1‚Ã0o™= ’ÿÿ7®";é³.Yâï÷¢#_ªA˜ø€(ì*xꮽ˵å‰�7H9§.~$*«UÊ1S; Õ”¡Ì´µMÐTÀÖ»À(‚Õÿ๘äñFCpNhµQ¹K¬1Kt1ا å&n >¥¡ÃP`¬r×§h…÷ß�µ€ÇA÷{H$ZAö™ý*se;ºI;0猷$¥q}­13qõûsvÎuêà }\9­|_ÚŸË ž.¨_ú±����IEND®B`‚IMAGE 187 ./arch/inorganic/min_oil.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi R-���ÿÿÿGõPÜ���tRNS�@æØf���ZIDATxÚÝ1 À0 Äl«ÿsq:õ(d‰2žÄq"4£µjoGÀÏWfµß»` ÈÞÅ—AJ@o  „ÐÎ\àG!$¼ ûMü!Ì­ø]†ˆ¥p7Ã[ý#..…����IEND®B`‚IMAGE 268 ./arch/wall/mine/mine_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���¥IDATxÚ¥“ ! »n’ÿ?¹‰s¥˜\P 3¬Ç¯=%ù­ ¼ÔìNP»‚“?‘³ÜD;í7(I鑾Áq/¦H/HÛÀ}>l *ÎGŒ=OÀùŸJ(n°#ø—PX ‡Ož-ÌÁS‚º˜Œ�èAð\X™S$…Éëöç) ž‚=„U�›œÈ¡^åâô…âãßgû²O$µl����IEND®B`‚IMAGE 269 ./arch/wall/mine/mine_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���¦IDATxÚ¥Ñá „0 àK“åýù®^GõǦ`@èÈGQ÷6mU {ÀàÍŠæèþ%­·@oe[ ™Úÿit{Ï�w ‰öäg×Kpö‘#S1> ØàÔž`± ²¯ z€ ¬0û H6 YÓ#�p&X'd_à*Ç)3ÁˆØsöÕøjþ=ý‰g�#Ÿî¬Rà æ–ïbÀ����IEND®B`‚IMAGE 286 ./arch/wall/mine/mine_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@¿¿¿  cÚ���tRNS�@æØf���´IDATxڥ˅ C-iâÿÿñ½˜AqA7iÉéC|‹áïÄ&@i`nD øò ”J®�$7@æÈ„V@ ¹$/YÏbìkº`êG¦XJ‰r†JMPZT=¨TP Ä�¬í+ØëÓ:ùž %]c¼ßð1x¨�¸ß:a€Î"�Ä_1E`�Œ Á­-œÔ ö/ëcÞb ܧǙz${%wß@óq õ?ù?I9SFã+����IEND®B`‚IMAGE 265 ./arch/wall/mine/mine_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���!!!@@@aaa¡¡¡¿¿¿F†f���¯IDATxÚ¥‘QÃ0Ccvÿ#o@²NK*•‡úá f R$Çÿ"…3  C‚ jà¼$ñÀS@ ‰ �PØÿ`àø÷�í€@°O�ï>·/dwõfæörZdU¡h²¼o üê_SÛï„ þ~ÊoãKÙ€”ó©+àT@DHþQ-åj`x@ÊѪ<DBúZ²ÜR€çÖtÅ’cvLãê'P¾.¬Äqª7u«F˜U˜Î����IEND®B`‚IMAGE 198 ./arch/wall/mine/mine_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@›Ô©Ô���tRNS�@æØf���eIDATxÚ¥Ð!À0 ÃÀYÑÿß<²Áº ¡= úùnN÷¿oÁd Fw`¸;1á Æ¦‚P& VÀ`¬@£©� ½!´H…P.‘šPA`*�{¤º‰Ä`R§¦O.K¢Ø›_¼vâ JsÔa-����IEND®B`‚IMAGE 175 ./arch/wall/mine/mine_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���!!!@@@aaa?ŒQ±���^IDATxÚ¥“±À@ Â^bÿ3A °kÎï©èû?7@Ô�Ezð M4È�â( {Ȭ±p[t #†:9e@W“"T‹Ä±^·pnÁê!šáô›Bªæ* Ü‚Ú'����IEND®B`‚IMAGE 198 ./arch/wall/mine/mine_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!!���@@@›Ô©Ô���tRNS�@æØf���eIDATxÚ¥Ð!À0 ÃÀYÑÿß<²Áº ¡= úùnN÷¿oÁd Fw`¸;1á Æ¦‚P& VÀ`¬@£©� ½!´H…P.‘šPA`*�{¤º‰Ä`R§¦O.K¢Ø›_¼vâ JsÔa-����IEND®B`‚IMAGE 172 ./arch/wall/mine/mine_7.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�Vô›9ù���eIDAT8Ë¥“A�1Âj%Nbÿ&NÁAgÚw¶ç¨èù@|2€ ¦�(Ò3€¯ÀФ‡Ô Ž¢°‡Ì‹ ‹®aÄPÇ"OÐÕ¤Õ"Y7Ùç¾Ù¹«‡dh†§¿éºêªùj0 (¨‡§����IEND®B`‚IMAGE 218 ./arch/wall/mine/mine_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���vIDATxÚíQ À0CM¬÷¿ò6µ: eì¿ùiLJe|è�øÀb@Å oAÉzËähc0ö èý ´°] Ñ‹¦ˆ‰L€xDh‘ øï´¹4E†O€„6¯—¢—Î߯6�TÁúb˜q60vJà3„ ¸z£]����IEND®B`‚IMAGE 217 ./arch/wall/mine/mine_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���uIDATxÚíK€@ B ÞÿÊj¿ÆdbÜËF /L”õ¢øï�,t<©ð”¬ï8€\òÆÌý�½cr@¶½hj€¸ÈˆK„6©€_ð^@«Ñ>X½ÞŠ^&¿Û�Pû@Åm8ÀÚ¨ú3h ´Æ ö2����IEND®B`‚IMAGE 205 ./arch/wall/mine/mine_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���@@@aaa¡¡¡1Úmà���yIDATxÚíË„0 cgþÿ›’-Ú;s¨Ûê#^^þ†§Ü¾ŒR©zÌ œ9 ò.*ã®ÐJñ›ƒJÛঠóÊ8òÑÉ·5üåZ˜M$;‰‹¶}"Hµ[M ŽyNátOŽ|ðúÏ*L¾MS’“w=žø�(§ƒÕÙ…[����IEND®B`‚IMAGE 200 ./arch/wall/mine/mine_B.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�Vô›9ù���IDAT8OíË ! ]ZZq%®e:}`É~¤Õ»¯$!#' }úô¯xëÛ§²J’4N% Nv„r*ÁyF$pêC­:˜ ºAE×é}yêŽD ,,8n© cËÚëL[hs°f¬>7àõµë–àPÀÃ6u8¯ŸŽÞôw”Á é„<é����IEND®B`‚IMAGE 163 ./arch/wall/mine/mine_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���!!!@@@aaa¡¡¡‘B}g���LIDATxÚíÎ1�! BÁ@àþWv]k±±”öÏÓÔÛÛõ™©J²y�³#�+ƒÕÙý­€íbÿ@Õ`÷ `Šœ=Ž7¬¸Íø­�õÏÀÉ‚����IEND®B`‚IMAGE 152 ./arch/wall/mine/mine_D.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�Vô›9ù���QIDAT8OíÎ1�1@¬œ¬ -8ý"õ‘æËвÃ�¼¼ü°µ¶cW^�mLq§ç$ , Ø€mÌ´“††Ò ìÙzTýp¸Ö9†1*Ø����IEND®B`‚IMAGE 152 ./arch/wall/mine/mine_E.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�Vô›9ù���QIDAT8OíÎ1�1@¬œ¬ -8ý"õ‘æËвÃ�¼¼ü°µ¶cW^�mLq§ç$ , Ø€mÌ´“††Ò ìÙzTýp¸Ö9†1*Ø����IEND®B`‚IMAGE 152 ./arch/wall/mine/mine_F.111 ‰PNG  ��� IHDR��� ��� ����V%(���tRNS�Vô›9ù���QIDAT8OíÎ1�1@¬œ¬ -8ý"õ‘æËвÃ�¼¼ü°µ¶cW^�mLq§ç$ , Ø€mÌ´“††Ò ìÙzTýp¸Ö9†1*Ø����IEND®B`‚IMAGE 194 ./arch/wall/mine/mine_ne.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@@@aaa¡¡¡žÿ“Ï���tRNS�@æØf���^IDATxڭͱ€@ AβûoH^ žK½#¼«øD�D@û€}À/ ¯FFDðܵFT±’<èÊéò û¾ËùJ¥�äì‹ÇiŸ]~����IEND®B`‚IMAGE 185 ./arch/wall/mine/mine_nw.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���@@@aaaÊVñ���tRNS�@æØf���[IDATx^u̱ €P „aSÄ ,ä!N•%ž¸€N¤ ½û¸… ÷§3M¾âîšï,B_ÁAt z0€Y°ímâÊ.ð#á¦õz +õ…LMÜ@Ë/à°LCþCÊ—����IEND®B`‚IMAGE 259 ./arch/wall/mine/mine_se.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@@@aaa¡¡¡žÿ“Ï���tRNS�@æØf���ŸIDATxÚÝ“A… •¶÷¿ò/>µÑ ìÿ,HÈÌ]°í þ!à"h«À~`ó€˜ ¡I °Áþ# ‰}M÷f8íGAwrqøW�¶6�H{C#œ‹îãEØ¿ÕÆžæ â?ºTÝe_DÕ0¿áD« â7]œßÙzP¾ Y*ºÛêœ>->:J°ß:d4öAžÐ˜Z„ùu#����IEND®B`‚IMAGE 286 ./arch/wall/mine/mine_sw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@@@aaa¡¡¡žÿ“Ï���tRNS�@æØf���ºIDATxÚ…ÏQÃ0Pj›û_y¡°%SRêJýHžL° €ë)DØL ÈnÄûˆ€À~ ËTFõ�¤÷@¢úté î=(Hâ�ïOt@ Aq?r`>âV.ù¡Å~””�âD–‚p'óÞÓU[@"Ï|CR*²ûŠlö@(Q/`˜ÉlŠ¢<Š-"�¼Š¾±U\sÇú׈Uü°‘) ¹&ð»™E ލò‡`d¥H †����IEND®B`‚IMAGE 239 ./arch/wall/mine/minedoor_4.x11 ‰PNG  ��� IHDR���@��� ����‡ö!X���bKGD��ª#2���¨IDATHÇí“Á ! ]š[I%®ÅÞ8ØÀ.ÒÞ=ñ'‚IX8:::ú§üÖ”ˆË’�p'IrH=Ú IfÙhð†¯”hÝ5¸päz›ß‡§úÌçàÜ qähä–ò2GTͪÏ\m»%–í´ã°Ø³kš»bÇÑíhÆz¸§cÇQ#Ó¬D÷û™cáK‰&o|»p´d±ß¼MòŽÿü“?å‚(À®—Û����IEND®B`‚IMAGE 406 ./arch/wall/mine/minedoor_4.x12 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1��c��ŠŠ€€€ŸQ,¿¿¿”¦d���tRNS�@æØf��)IDATx^’ÁN1 DÍ0‘&pm%¸ó)SáÞs(—£ÉZ¢2Hà­¼~›7‘ üQÿVV\³ãi9hh@ð»0­ØëX5V¦s c �:ÇêBwÌÎaªš¾²s�8í•«:[À²0JhmíÙ9 JÃꨥÑ9*„éçmâžMQ!¨úE˜²ÆCª˜©Ì¤pËk¦îþ¹KÕª(M„ÈbG•¾­yM*l¦RåPïÌ‘™›qäžSŸ€e>Ù½«‘”s€uÕ¾»û<o‘¤DÉ‚PúpKAqûõ¡6tç^;�¿ JLÑÆkÒ_ ‚ úÎJ—ÀÜæ Ïnè„ ìG,ì-œvÕ0N—<_ìôÂñ³Î�Î _æz›óëõÛ����IEND®B`‚IMAGE 473 ./arch/wall/mine/minedoor_4.x13 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1�cD€€€¯/_¿¿¿ùq |" ���tRNS�@æØf��lIDATx^…‘á­Û0 „Õ z 5�ƒ¼Ò$Ð9£¿™˜¼I:yArÄh Atðà‚ÿÌàc€¿Åm¥Ú�ÆõÛĪh=uø×^Š`{@.ÿ(Ø>.üõíÞ¶jk1ß”( ‚¶÷š²¹k[wó€ýjè}�ðjO‡É_ ß¼Kß;PFèÿü›•¤I.‚Õ—Sk—¹ÙK!ùMKÎZäHÄýœ@/ÌZæ6GGü˰v Ó-—Ç‹ÚÚ!IÅiZc9©b2 ˆ˜B1ša&θße®çeùUH iø Cos< I#ž¥›™sêšôÝæp-£‰ôˆz“hÄòUh–Q¦¤åF¹¬E<çbFÒ¡‰QLm!ìËÅ °pBŸZµbœnÇó¤Ö4Sd¨s­®QDHýY>æÇÒ¢d5ìuo% uÀ-G#ó@µâ/>îr6Ï6����IEND®B`‚IMAGE 457 ./arch/wall/mine/minedoor_4.x14 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE�������1��c�€€€¯/_ÔG���tRNS�@æØf��bIDATxÚS nÅ0à vÿ#o/˜xtQ[¤æCÀ15<X âîÜðdï�òŽ6ùÌ ŠHäŒ2n{œçI‘>.P$Ü�ÀE@88ætDT¤)óJN '©'€C�)€ÿÉ_û ›|%EûòXA NÜr—Ä•ƒ�èÈ#RxÌü˜’Û¡CüB&‚§Â×Òœ¬yåésäM/ó_þe�Çš¸íž%Јð­@æÈ²aÕ‰ÒGaºI\.‡~Ò`Ï ø±¹¨è± D;ÆÁ>(gaÏx3ãÅamjê8SÁ [w¸kÙ¬·Íõž CV^lÙb· Ïu%}’~_  Ü;ß7€¦&£T¼\z235§� eT'®K°ÍkðÀšýï/ëû$øz4FÐl¿¶wîD¥d´ú€ì•C(ÛhoJY°�2~¶EY�ü™”þlSjü�±*!òÆ`����IEND®B`‚IMAGE 447 ./arch/wall/mine/minedoor_4.x15 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1�€€€ƒÍÌE���tRNS�@æØf��^IDATx^m“ã0÷®ST¯w¦½¯ÿšâ 8'ƒD1;XNà5GÄë£7 oÀüdèwÜMLÜ@70­ð­ÛðÕ…îϲG›2ðÍG Tn�®uëð´0”¨˜>ðƒŽY5OíÅ70Ñ^j%Ø@àž±�%wÇa èq30×üœ0ëEÌüÁ ¢ì訴´ó¸S5!1ï&¥Sz`*%HÐèQÃ’”R.‰’ô»$(éL¦vÒ€+è,Ãx.ÉmèvÈ–vÄn!ÿæD³ È%"“W*™W !‰JÈÚ#¬…’ò.QÛÓ¿cPwÉÕC„ëkƒeäUUJëwˆDH“�$°€†¥òV×"­L� ¯ÿšv(Ø%`üEbÅ0NxÍåzïùB5‹uŽ� H)?¾ËÑü®2¬LüwbÖbÏŠ����IEND®B`‚IMAGE 410 ./arch/wall/mine/minedoor_4.x16 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1�€€€ƒÍÌE���tRNS�@æØf��9IDATx^mÒá­â0Eaó*àú¦€e©àrh ¢ÿžv5˜Œ"ÞHù÷å8£x¨Gó:Þ£žÐÌ3Øœ {¤mÓÖºÐï7¸ø(ì ö>âGYoU˜õ¨üÔ`é^óF´Oé¶Àךb«·rûH©ú¹PðO9Ta/p|¯Ž‚½¢ ”ip¹Ëùúæ«Á‘ï‚Å£ÁVñWd0¤  YàÇÆÔÀxoy‘p€½@ ×#”»¤)Ë00–6°"g|OÆq‚e£  úÊq– Cú>A îd}Àf«3°cÅÔ’DâA,Uôz€*Ä/C‚‡þJ³t“¤XÎx "ý'ã3’4§1ã ¨êç¹Ø`Ì߀ € úT!c®{ò $Í]ÿ�€íR‰÷»]����IEND®B`‚IMAGE 418 ./arch/wall/mine/minedoor_4.x17 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1��c�€€€¯/_¿¿¿WÕ~ƒ���tRNS�@æØf��8IDATx^u’ÁmÃ0C¿3Aé~ݫ tLî*º@wèþ(·²#<ÊO¤í@Ïú=Çñ�`jP ´È:ÚÙxÚØa)Ü­-ì.û%#`Ï{É6ÈÝ`�çÍÎ`ø€* ´ÿ™ít6þy‹¼îÀÛˆ‚Sž¼I ýÐ-;ÐÃ0ƒÀVMN†eSÒÀlh§¯yäòÇÌ•E IQ;�å‚”�zI‰ÇˆIIú> |�|�á�ÆÜÁ+ ˆ "Å=—d’ÊÒÝoƒîºJRH(]'€?¢Oµ…\ÉÉàN%!)C ™Þ0�”Åiu¤€ø6k¦R0€D�“¡Õ |1ÒÜú^c �x(SAõw4åW” æ%¢H·úÜÀ¨ÀÕ‚³aÏ/C‰U›… $q����IEND®B`‚IMAGE 356 ./arch/wall/mine/minedoor_4.x18 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1�€€€ƒÍÌE���tRNS�@æØf��IDATx^}ÒámÃ0 „Q:ä3µ€Ú .ç„ì¿SÉéù§N¤ àÌ=>Cåì èhß²¿5 Æ 8Á€¶4lMï€$@#+@ª@û²E· ÔßµÕômüª†;3° öK@ÂŒ×7¹eæãl¸Zó–NÑ •ÆÔ€k»¤5Y¦`ÿ|Ñd,Ά}*ˆ” µ+8l`ÀÒJ„ 1¯iÒ‡ÂvÚ}Û (í#ll±�lÙÎpÊ^žô-eg$S6êhe¤2ÙW€ý´q€ +`GÙQdÚÜc=e˹ÀÚqÀu‹×cþ žVZÁ€k�tøt :k)éi����IEND®B`‚IMAGE 336 ./arch/wall/mine/minedoor_4.x19 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1��ŠŠ€€€¯/_yk���tRNS�@æØf���éIDATx^}‘ÁmÃ@ )WàVÿP)aIþ¨ôßD Y¡ÅÇ}8.y¥£îÕÔѹ0¤EW†÷€¯GLÎ è Óº»kzÃl ’Æ@|ýíˆÀҤ콒FoÃaX†Ôò"½ßbZóºÃÒÆçFo°¸¼äääi˜ÕDt†ì º )Y×p"U%ÿ 7'Æ£àÛ¤1l A1¸p Ép¶BÉO»… ¡ÎOm 6ˆ’ 0¡XJY G¬˜  {$`žÀ£ÄD-`ØHÍZæ{uÀ§öú÷ä6kZ«Gä����IEND®B`‚IMAGE 359 ./arch/wall/mine/minedoor_8.x11 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE����1�€€€¯/_ŸC ��IDATÁH0åL ü–AùƒzÉ×+�`�ßîKà@½WçÐ8Ðõá¦� ]$´û9‡é+A�V‚ããáœlà`"€c~8 ü¶Ÿ�.´¯îáôÇ_+‚¯•���÷�ÇRà#‡N0€ƒ¯}�X6� �AXW�о€õ�°AÀ¯8$„î5GÐ×à@hÿÕ„öÕ9ˆ0+ï8€v�‡n�œ°VŽt*„º? üº"@h_p¡�Ì{`zB ºç�\tzðáÀ^¿°¾:|8á}Wð¾3�v�6øB„NœC»‡ƒÿµ¦ zZùëÕ����IEND®B`‚IMAGE 429 ./arch/wall/mine/minedoor_8.x12 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��c��ŠŠ€€€†×Ú���tRNS�@æØf��FIDATx^U’AjÅ0 ÕÞ`R¤½ÿ =‚ Ê^‹Üÿ %ñ¼Ò`^&O¶ÌJ˜cd/é1�*"mQ€¦¦ œˆ€ °Ìòjô Š« 0*uC +?ãáµ€8#Fºg„ÀªB¡ •õYH·í Ò÷(£¼F3\ ° žsƒƒ«ÎQ5³å)Kúp5„nP\I�BÓ[®Ä¾á°ÑÚî  0êGÕ P•!SúQצ å‘ ŕЀ}y¾Á·×àŠ à܃ šÌ†Þ+dšJß R¨a™ú ~ˆ'Ô0¥Âf é§ —¹ Rc 1ì±Õi‡vcöãÔñ–wèhBl1!Tá€Y­�ÕêX`Ö±<‰A¶¨ 5¶@Ì[/Uü«'uÞ ™·žÅÎÐ1Òˆ–Ø?¢nV€FÎ����IEND®B`‚IMAGE 434 ./arch/wall/mine/minedoor_8.x13 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��c��ŠŠ€€€†×Ú���tRNS�@æØf��KIDATx^e’Á­1 Céà- Ýç°¤„”À�Ü»ûû/!ùÂÞÁ×Í$E^’Åòë¤0ä`d^p8IQëÁ;DKH’%9é©o`Ìlæ2Ô�,§õÙÃÂŒ„…ClA.½ý²H&ƒ§Ã†Ù»…Ÿ¢®˜„CS=Èìµký ,HÈÌop²£@¦€gƒ&¦(¨>£\¯Ö¡ú HFq„Ÿ­(f­âÖ〠3'’  f‹M}f„Õûr>éa,„ °Öifhì7Ž;ℚÐÃ}­CE5Ç� .O±~3€I=¯êPÙkÀôÐ?€n–Pp˜„ÜYûÕGs òS}$\†½5ÈŠÿ@ecL͹NÍ_(ঠŸdÚ’–(`BåxÍ?r¡P—¸æʹm*tñ@ä����IEND®B`‚IMAGE 439 ./arch/wall/mine/minedoor_8.x14 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��ŠŠ€€€¿¿¿´uÉy���tRNS�@æØf��PIDATx^]’Ñã0 DuéàùÈý7Ff1)@@¶€í¿‰Ã‰"œD~xš¡mÉâ: äÇÂ�+ sÃqâ •ÉÏK!I†ä €Ò拤[¬_ ³C±„L€’O\ú± ˜¤œj±ª"ç_ƾ[¯£‡Ã÷oàØ�ž]Æyw+9Æø=) 0Ë(pb˜0þ“6² ”¼‚\ Ýâx,c–q ÀÇÀìZÂ(!7à°l…B+ô©/Ëë,p·ä°ò½B•ÀA‡rì†="àð ¸ë È· !¨u¨ïeÙàÁ† `H g1—±+ß�æÕ‰JOÈýúô©P»@¡øøûµQ“^FÖ©d\~ƒ®HÚø�·zôS×"øiÀòº.С'ÖÞÒÜÆ“d¡Ÿ2½´ È&Ék×1êÄôëà)¿f"ðà����IEND®B`‚IMAGE 461 ./arch/wall/mine/minedoor_8.x15 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��c��ŠŠ€€€¯/_Eq���tRNS�@æØf��cIDATx^M’A®Û0 DÕžà?5T×^ä@`²ç"½ÿ ‹Š f÷0óèÐn’Å1 ùÍ ¤0Œ#0Æ‚íÂÁŠdë|BÌwªIü‚Še“‡¶ÉR¶ËÖôÍV“>OÀ?:dÃ~ H˜[Â!6à.xZ?ñëqü¿9Á† ZûÈ/T‘ ü—š1 ¬ÀجE®/@‡£ÃØ …îÄ3ä喝D| Xñºî ;´¤¿oW Œø)`[ÈöëgVvYuM@X–C¼ï@kDBSÀØ1ºÁ�:.F%:ç §v ƒeÕz×Y•KûƬ€9]Ú ¦Ò¬Éuu”(€I ˆ5ç‹Ê]aX F.Ðúþ,ÿ¬„T}äå{­J[�xC?ÖIpmGv‚cÆkG=Ë­På“„l`A.�í"Ph=Íž„ÆÛ{%ù ÉÀ¾$½Ì4)T•jþçpzøN.KÞ����IEND®B`‚IMAGE 441 ./arch/wall/mine/minedoor_8.x16 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��c�€€€¯/_¿¿¿WÕ~ƒ���tRNS�@æØf��OIDATx^µKŽÜ0 DÕ9A?‡Ê^Á\¤‚êìx#ÌýH -² ½0üü¨*»I{hȯHaè€Ð{AÚÀA)0™íâ‘ ËZ)A�¥Í&C„èïë+n  GUfÒ<# ÀÈŸT{*åeð÷ÔY`„¡„™€ð-¹2Ȧ|íŒrúZ{|L«üÙ€QßFÙØ …Ò¼F–—ñ-ì° ^ËGêëNDX¢3rE!+0Á3 Ù–ÖÆ¯gØQ9# ì¸å0z¶e`ÿ±pÜ$x&~c|µ?É)Ðà"gŒö?‡ë}Uöü'�€¡~€+d&Ð)�§ñ†„C'P¼6¨¿ý0, ‚¸Ø©ì/éü¨ç Ànº˜yèY2µÞ¦28A6X½'ï• ÃÞ¡~÷š\à³0 £Ú¨fù�6¥a®côŒ����IEND®B`‚IMAGE 396 ./arch/wall/mine/minedoor_8.x17 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��ŠŠ€€€¿¿¿´uÉy���tRNS�@æØf��%IDATx^åÏÁÍÛ0„Ñu*ÈGìÞCÀ ¤„ ƹ púo%ÿJ”mRAF:= 1TH äǤ4ÔÀJ¨Z'gec‹Á3ÕR­E¯$çÐÖ`/à�¥yn¢>ï‘›\0ó¼i:é0¡B?•ëÌ€˜iø}Œ F¬0$»ß”s’©´ÜI"â––ÏŒˆø–ήgú¾Ãíî§°%`6Xù0æûÞÀ¶å_;¤ìtGì€-Kþ½ÂÓ4dv¡ilÖhÌ1€Iì &@þa¼žn¼ò/H®�º�Su‘2P àÚ¸M£ ¤ï\�¨ ¨¡>�ý,àêUq¤VcêøvÂ-P,�7°˜ N‹A²Áû_°a ¶…[…ŒŠZð‡@yÀh€¿ØV·ìCGF����IEND®B`‚IMAGE 359 ./arch/wall/mine/minedoor_8.x18 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��c�€€€¯/_ÔG���tRNS�@æØf���IDATx^í“Ím¬!g7‚-4¼;ONÀ!´Õ_�H›,Ö| ýq>¸] âDH/ äã HièO�VBïÆÀ)v›ÌhÜÓÔ•¢½N'PfÈ_–õІL-uúç °¼¼”û(G±5G*PÖò¡Ãª’ç¸ÅH§©§2… Rw'Ø™Ø,ëŒÿ)»¶åq‹ˆkR“V eM¥Àç±S,Ð$þ‘ ghÔT6€Mˆß”¿ðÌ£±çì—A²³@¬ـ¶Îï�LȶÁåcl!9�x“"æ+¸þü·#Õ^~eÛÁ4}•Y$8 ³?²y—˜©dUYâÁ7nKJ”¶.ÿ����IEND®B`‚IMAGE 325 ./arch/wall/mine/minedoor_8.x19 ‰PNG  ��� IHDR��� ���@���‰ h���PLTE�������1��c��ŠŠ€€€¯/_Eq���tRNS�@æØf���ÛIDATx^íÓ=jƒ1„áõ ü FudHî‘# aÜ«ðrÿ¿` ‡ÏéÒ{Xñ°ZU*;æÂ¹>­@?L‹9¡‘ëË®ÆM!ùNœÈeGÙ å 'Ž#+.ç3¬I@…ð¹º8—’Ä(·,•([ÏEÖºÕt}«â=ºƒ¤ s²Ù»ï�3éð¡Vw4—viŒú^y…cîÐã·ªê$=Oœð„Uöé¶jÁðdaÛpúûoÑ4ÄtàqŽvª9Ïळ?€8:sÉ,Gžú~�¯BHA7h ����IEND®B`‚IMAGE 289 ./arch/construct/house/minihouse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VÁq8�Í�G$ R-���ÿÿÿÿ×�d3ÿ¥�‚B'¿¿¿=u^���tRNS�@æØf���«IDATxÚ…Ñ„0=Û-Úþÿÿ"9²9Rö±3åȆc7Ø6tΉÞSŽUÈ…ö‚)ÄG¡ƒ C\ UE­( å…à+)°‚o ØÖ’}aá. RU!®�0ðWÀ2ltŒ>L¡+TpªàÓM!¡µ™Â‚>ñè ×ã]ÊYp‚© xù}KÎY8U€ˆX0.gáýA,Nà@Ùœ}B ø¡å����IEND®B`‚IMAGE 171 ./arch/food/mint.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����Î�µ½÷da4Ë���tRNSÿÿ�×Ê A���NIDATWcX $2–³`ŒiPÆŠ™ªÆJWV¨®¥-PFÃ$¨”“DWfFDW£'Dd›"”±P ªkÁ ˜í˜ŒUZŒUÔc��Fn¡3~^����IEND®B`‚IMAGE 186 ./arch/jewel/mithril.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿÿ���ÿÿÿM°à ���tRNS�@æØf���\IDATxœc` `Úeh¿f~¨ÛÇ·¯Èà¾ýZûö ƒoß»º ‘×´_?€h²«ˆ.ds@vû BꯡB¶û š´a"LûöBÑ~~�ÍA��¿™#VÜÓÉw����IEND®B`‚IMAGE 186 ./arch/jewel/mithril.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿÿ���ÿÿÿM°à ���tRNS�@æØf���\IDATxœc` `Úeh¿f~Ø·o_Áýúµöë@ßÞ=vû6€DžP‹�5Ù‚Õ�D²9 »½P!íçP!»}PMÚ¯¡"Lûö6À@s��,e#ìîßô����IEND®B`‚IMAGE 185 ./arch/jewel/mithril.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿÿ���ÿÿÿM°à ���tRNS�@æØf���[IDATxœc` `Úehßf~ØWÇ·¯Èà~ýZûõ ƒoß»}À"´Ÿ?€h²ÛÛ�ÑÑÅÀT7ç�„a·j´öë× "ûPE€–5 iƒ;ˆ��±# àF6����IEND®B`‚IMAGE 188 ./arch/jewel/mithril.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿ���ÿÿÿM°à ���tRNS�@æØf���^IDATxÚí’] À ƒmzÿ;ϦB 9Àò™þàøÕd(¢ne'¦t„v=â«X=l´%[|Q¨ ˆCKÙ~ ×Á{™`Úg½lW„ qâƒz�ž{ºÙvJú����IEND®B`‚IMAGE 416 ./arch/armour/mail/mithril_ar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ÿ11�ÀÀ1cc@@@ ���œ1�Lÿÿ�ÀÿÿÀÀÀÿÿÿÎææÈ=§���tRNS�@æØf��$IDATxÚm’’„ CÕ5Ehöÿ÷ôvtlt ¶P—S!-7½¦”â¶@=ÒozJà·âæÌèŸð¼ÇÈ‘?"N7‘=ì³ËöÒ0a?Ó{ÀÞCê j‰b¸x{ˆƒ&{Ÿ"¾9´ÎóÀHìÛp‚Ld<¯Ür·ÅTlGx*†ì‘øjÌŠ_�´rÀ4Â@‚c&P¤7ðaNÛµ ¨ÁÇ rÛ3sϘ œÈIby .íª(€õ,QÃßȹ"¾‹p€Mß�lNRGs_ôº–@;ÚÚÖÞôn5 âèýлŽ0­µ¾*”W˜-ÏD’Du°åp«~˜³³j7)êêÆxá.L¨›1ˆ<{9ý’±öaÂØ*1;¸����IEND®B`‚IMAGE 415 ./arch/armour/mail/mithril_ar.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ÿ11�ÀÀ1cc@@@ ���œ1�Lÿÿ�ÀÿÿÀÀÀÿÿÿÎææÈ=§���tRNS�@æØf��#IDATxÚm’Žƒ0 CÃ)­Íÿÿî9a71µF µ~8)áu+¬×CÓRV<6äËú.o|ð©xøƒŒþŽ\÷üq»»z¤¯>X[ÃDùd¾õVï"ä-™ÑKfÃH½$\ÞŠ¬óÀ ŽkdŠ ŒßÃ;ÁI‡*ÜÙ™ð«°m—ïêxÀ!ØÈÔHШÇî^fà-–]ØÜCÃ.$¤ïP²Ð8ä€I�ÓfÚÀØîq÷²�¢¹W‚ý@áÚQ}¬(‘*²ÎV=ܶ%Ðζµ­7?Û0qö~ú¹NDk­oŽP,|‚Fjä$€ôA(¬>Ò"v…Î(hiç@Vã–L}¦1f r eëaE dÚå/™ÒÓþ¡ïz`t����IEND®B`‚IMAGE 415 ./arch/armour/mail/mithril_ar.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ÿ11�ÀÀ1cc@@@ ���œ1�Lÿÿ�ÀÿÿÀÀÀÿÿÿÎææÈ=§���tRNS�@æØf��#IDATxÚm‘ rÄ C621öÞÿº• ÝÉ+f@ð±dÔñжMÊÉúl—>xÉþˆ0™ön#F|[n <Ýä§ÓÖÑ!?BwîF¹g y”dòÐu#n.ŸJ¼cðÈ”ç¯A \ï¡( †DØ¿æ ŒtÉjÁØŠð-£Mï˜o�xt!$7 SIhFØWÆ´'ÖöÔ]upEã_�3)‰›€²8W‰Xµ€Îo„ÂWšD …Ì$5pw%ÐCŸg ô»Ÿýôε×�‰ÛýæZGÞ»Ÿ ‘ʧÌ‘G �2¢^ª‡€,ý€Ð°5 ÙzÎjÜÙH ‰†±íÊi£ÕÃ2‰X³œ~ÉH_ö…àøTy����IEND®B`‚IMAGE 440 ./arch/armour/mail/mithril_ar_ele.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ÿ11�ÀÀ1cc@@@ ���œ1�Lÿÿ�ÀÿÿÀÀÀÿÿÿÎææÈ=§���tRNS�@æØf��<IDATxÚm‘ ’„0Õ"áyÿën'qvu#U¨ðšOÌ2̱åf0Â]˜ßt¹n5¡aË•ü_Ík¦ÇÇ[^³æ/áCMËP81/ä–ª]§˜Û`J)Áh¬ÃÁÝdgVRTIßzÚ¾Uº KÌó‡wÓ–»zsz·O£]`g¥:ñ °DF1ñ‘© BÑìb—øˆòÒ–6ï�AºZìÚvvØ3*ëyÖìóUÛ;Ñ£±®Ì|y�í±ÒOÜÉNE¹:t}p‚l¼b"ÜÔ­˜føQú™¹®¾Ìæå(kY£ð,ï�Äqð|ïÀ1K)Aý*€·_ "üÌ´I—.$e5çÖ¤æf PŸ6°qÈüη떠®Û¨3à”©Ë†£Ï„WYŽ»úÌ {È?ÜÆgêbÙ����IEND®B`‚IMAGE 446 ./arch/armour/mail/mithril_ar_ele.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ÿ11�ÀÀ1cc@@@ ���œ1�Lÿÿ�ÀÿÿÀÀÀÿÿÿÎææÈ=§���tRNS�@æØf��BIDATxÚm’Žƒ0 C‘tŽ»ÿÿÝs<é¶Œ�‘ç¤)éöVJÛ—.ŸSʯÀÔ•ÈÿÏ·düø%ÌüâE&Qf±èhš›2ˆ‰l>Qt¨ä0';'&0S!Å9·NOùB'¬/–BÊrcé…ç«TEX%ƒù³ù U:§‹«vWømh\Œ—nÒ2”"¡ôƒTû«C›Ñ"^à<º—\ù–IcÛÜÃ’!Ú;8IÝ7†"À^¨Ô®ùªH #âÆ°w‹xkòÆÞä^ÀüÚ„fp¨M½™¸1yLz«®†çð ¹ïéVÃxŽ}ìzŽ5_ r<§ž®°p çc (ŸWƒµ,9Û*øìÚâ½sÅ2D#ÆÁ[/ã®èAÕ¸ÅÍ4…äb¹R] ž£qÄý°2}*ÙØüÎc-øšX‘îs7����IEND®B`‚IMAGE 446 ./arch/armour/mail/mithril_ar_ele.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE��ÿ11�ÀÀ1cc@@@ ���œ1�Lÿÿ�ÀÿÿÀÀÀÿÿÿÎææÈ=§���tRNS�@æØf��BIDATxÚm‘Ã0›.Øÿ¿;»Q¥µ'mbç8¶)§¶?]%®²(ÿãÅ…«œ¢ñòŸüG¦ããªá‘‘%ùä MK\\ué¯Cçó<cʤ€J«ô(zjS¸3ÕXtœ*ûfð¨ëžù@lHëß` q1!ýöxlnLêB{2[ w91"í»§¿ ƃ ±N`ÃÝPe4G/õâx$|tIìC=<i¤( çž]=< ¡ À]Bþ”iTè6[šLQÒÂàF‚ùŠ;ÇÕ„v�+þ® Bó¡ù¸8 Ç º5pc´Ñ0ø=hÀ3Äpð»9^\û´1#Ê_xŽ:­´òL[Œ¡jZô–X Ê„`t™¬/‡‡Í)kœ‹mZí”%w‹·ÁsïubÛ×Ër²œ»$_ɧnøî@¤“¢ÐU����IEND®B`‚IMAGE 191 ./arch/weapon/artifact/mjoellnir.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒ R-���ÿÿÿ’¸Œ6���tRNS�@æØf���^IDATxÚÕ1�1òÿ7ÉØ‚õaº]Hý4$~Ž Àók á¹ÎòRû=°¬Áù¥ÒF2°l {HÃûnx®«bì—û.Àôƒ±q%÷“€Ç ÷™ù$äâ?Î÷â­_‰����IEND®B`‚IMAGE 285 ./arch/wall/moat/moat_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���°IDATx^ÍAÂ0 yC…¸cP|o¥ª×Z(àm?ÀPùý8iHB=²{íz%Ÿ6ñNA@UH¶_àEôŽÑpÎÉ‚c¨Þh/³-C (ÍM©¨*i#¾$žã&ð× 3ÃÀü»!Ѷ®€R´¸wIxqâš%HÜ21ßüR@—Ô3ìÀV°®ί¼âºéCÝ [¥®¬CJ´‚µâÒŠ¡#Oþ}�ß¼ZN ’H����IEND®B`‚IMAGE 303 ./arch/wall/moat/moat_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���¿IDATxÚ…‘ÛÃ0C³ùÿÞ¨]¢R )/ñ1)ÒÌÒ¦€äŸ!ßSÒ1|1œE“  Cfé èl°“>Û/òÑX( ²ž€ Ú1§è7|-Êö°oÈù÷ ñÀ$š FG¸Ìó±²çhBrj1Mu¨põE-X¤ ˆãjCþ(Ö [»;VPìòÈ`°ªî4’ÔUíw× ÐûÀÕ†¬¢�µ×Ü3ð_ñþ„ b/ßú\����IEND®B`‚IMAGE 318 ./arch/wall/moat/moat_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���ÎIDATxÚí’ÁŽÃ@CÁ˜5ýÿÞEŠÚî¥Ç%2 &bž¢˜þˆ/¼@U¨ª“Ž6² ¬Níu„±,E@Þ‰ÎJ‘¬±!Ф�%êcrjªý4$bV¢.ÕzƬ½z0Zè:í@rîÏpzcÀåÕLÒ³”iïŸÂåi) …û‰X†ÕÎw`×…8³m‡ )¡2èE±ÕLæ‚4¢• NtIŠaR<žÏÛè ×óuM—±ÎmÝáñŠáò÷ôqý/ü´ÿ1ñ 6óª"2io����IEND®B`‚IMAGE 263 ./arch/wall/moat/moat_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���šIDATxÚíÑŠÃ@ »²<öÿq!4iêÞqÏ7°O;ÈBˆƒŽ UVÁYèxƒUš„îˆJé*\ Ë,×!Üÿ±Ö”@†dX7¡_/pU†à.œ"”VÕx¼¼4—ÌÀ|ÙakÐûP|ÝAÛ–SIÀUeÝ…î]H,ᱤKs‡ƒBÿZØúüåÄA_…SzÏ /OÂÀÏÂ?O6| "Òw“����IEND®B`‚IMAGE 347 ./arch/wall/moat/moat_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���îIDATxÚ•ÏÑr„0 CÑæJ–ùÿ/.„²»d:tj@ð  Ç_×$ø¼Æ+ä£PJ•<ï²jÏ[ÁÝM_1_Ü EcèÎó{)ÄŒ¸ å2އëV�l• s3œ�®hB¯'ІËRñRÉxY·Â ëÇ2,³¬y3œVÃäe2Fz¬H—eH™=Íjˆ¢Cz)±n¡MÚ6w[·4ç*(µ"£ÏI|ˆŸ ¢üX0µübnoGѽ"·—4¦óŒLË<è‡Âa(³ÞÊÍj8ÖØí9 І¿¶ù}‹·aüzÂ%5,ý×P-wò È’ ÊpoI¿����IEND®B`‚IMAGE 311 ./arch/wall/moat/moat_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���ÇIDATxÚ•RAÃ0[ øÿ®˜š(!-Ò|h±Œmø ˜‰eÀ: €ÙF yLÑ4V˜¸Ã_$CÁ;|%È‚ ˆ[9ºk+ à$pfípŸ ƒ`¡¯õˆ\TÄK=àQwÕúæ3¦e… ¦èz*œï.ß¶™L)Ú㲸ÄtÍ&óňz]TOEqíÚâZ¥-)ªæŠïa`ÞC&ðöÓvŽ˜ë&€ºïµIÁ3ÕÞäî¡^V4»¸�÷} .§>Ìa����IEND®B`‚IMAGE 313 ./arch/wall/moat/moat_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���ÌIDATxÚ­‘à DÇyþÿ/b7¦ÛÚ,™ñ¨ /pâí±ôeý "á 0˜ â©¢�æ( L_�¸\0 >%ÐwÙ©ÈÏæ!Á©Ãèâ�Fð<™Œ0=ˆ�M ëŽÞcÏÃ6±úTF¢�y Èfÿ`D4.oAËþRƒF¤-ÚÇõðžë[…üï½_W¨k…Ë•øáÒêaw¨}P{~Þ_ÞÇ®YˆÎæ ÆécIÀ`Ÿ€º¬ã¼A„tZ± ƒ¢¬c����IEND®B`‚IMAGE 285 ./arch/wall/moat/moat_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���°IDATxÚ’AÄ Çqüÿï¡bYZ5'$FÎð™%ů¡D%íÀ*…°RT}B(‹¬ÜîE@"Z‡ €ÒøìKá’¬Ê8; ‰ª¶…ÄÁ:8ˆ!ðñ {JJPx´ð¿CU·gÚž@Š€ØJÒèç°jÑï¼¾ÃËw€×¡ÞKn»ˆèÔ�m‚ím"Îb[8ýº§î ÞÖ” Júñè “Œ ›w����IEND®B`‚IMAGE 337 ./arch/wall/moat/moat_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���áIDATxÚí’ÁŽƒ0 DÉx\‡ÿÿá}&9,U·½ô¸1eG}¨/4ç”–nÙƒ‡kÚ²›k`–T­åá™%EödQåÅ · e™f²!ò¡•ˆêÐ{pÒAþŽmŒîÅD™¨8\CRÆ0³ ט̆2Q†aç÷Ö½™"õ `3¬^ù`øèè±´™TÒ€Uêï7I¢dgá™RÒØ’ŽZ+2|füUY`hΗŽLÕ†óµRn'õ+cŽzÇ’ãvÂù4-ÕbxvD­[Nã§ý¯«~�û¯bg¯����IEND®B`‚IMAGE 315 ./arch/wall/moat/moat_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���ËIDATxÚí‘QŽÃ0D73û_¸‰IÝPGêv>"E<Á3üi†3IʆV ÇW†À T=3)18�ÄI†“½ƒ,ÜN âœ{ä@u�x K]†r0‡]™¥ð–®×€'X§% ûè`›¡,{ |y“œ{Ø÷O-ï3h1€MºJÙ¼ð¹Bfs°ñŠm5,Fm’|Ž<6ÄHf_uh@vÀ£^Á%·soÈ|&€@}Gõ+lJª*ß·pâ�ô#¿ÿŒ¼�HI ny6ù ����IEND®B`‚IMAGE 293 ./arch/wall/moat/moat_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���¸IDATxÚíRËà Kœýÿ/žI#PwAÚvœ[›`…bE•<à À–Å¡òõ¹utI.KÔÕœbAñÔbù^”€g$4Q¤x¤�X×R›{Ë }Ù¸—Å>%Ž0è°„+“�=§*sˆ¢BDÀâ"w�;C=>YFg蘬ÅÁ'Q×Sz&#Ía£ç�%…â¦%2z>bHéulxïØ®<«—}à˜áù…¾ÿiÿ(¼�o¾ öµ¦K����IEND®B`‚IMAGE 311 ./arch/wall/moat/moat_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���ÇIDATx^ÍŽ1ŠÃ0Eç iÒ+;u¦SZ°¬ëÍBnÞHfzaƒú©|Ûe Â{}žô>1ÈPÿ½¢t‚|ȽàÝÇÍ `ÆË:OPVbK’“�îöóAM<Ý× ŸƒØ%%?mR¬¨,÷P —ÛóHdÆP'Ø6’@/2Ô>&/|1kÝp¯ÑnwÛ©R K–ä\"x':Ä&Ø¢*ÔæŽYVª ÷I7Á»ÖŒaöUȉ¿âŸð ®:nµí…����IEND®B`‚IMAGE 362 ./arch/wall/moat/moat_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿��ÿ °52���tRNS�@æØf���ýIDATxÚ­“án1 ƒÇuúþO¼œOeT·?+r|BŸ°SàKœ�P”LJxÕŽê?„`` 1šŽ‚€M"`b¤„h_. œïO›%Åø=– ¶¸ŽÀå×,)@´BMù†óÒæ\K«Væ6¯Áµ…¯Á¹~€­]Y«ƒ‰É�02úY£` àKHéNR¬a ÏÇ0O�xÍ™óä@‰µG¼¸éV>wHp<.ñ„Kî¿Éw‚¨Áx\sºîtÉ;bi­à!eµ¿;ŒŽ8|¾…óHœ:Ìí»ð‘cI¯+ÿÝžJ&+XÒ7æå#Ój����IEND®B`‚IMAGE 349 ./arch/wall/moat/moat_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���íIDATxÚ}“A–€0C§ H¸ÿ…gjµ£EÍÆEóàð'¦8•d8dPD1 ƒðfÈLFPü î”ó®“[7H2«ÃQ`·Ö  æ° “Ù?'dàhQt9ÁÁ� t> l{k†A–¿¦8!gÛ6^JšvC‹˜ïÉügðÁ€Ûšò² Û§hVí»IòEájûoF=’Læ‹á˜ârWÒh3˜ÜŠ!™“âƒa6Š€¬-7Y!±2ëÉŠaF½J ÈíÁ—ÿBK…² ƒ¾Z¢}2¸xcX®&L‚¾œòÎð üŒDvtÚ����IEND®B`‚IMAGE 349 ./arch/wall/moat/moat_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���íIDATxÚ­[ŽÅ CƒÆaÿDÅÕô¶?“ çÁQca|‰� ¤¤´¤t·¦H}1UVÒ©+Ó{�`‹¥àÕ‡EÔP*m÷Ñi‰µ¥³û©Ý{b¹÷g¶Ø2–Ù–i1Ç] „·eFGe+F.ñÎ�êtzùp[›qX©tMäaï\rÔP’0€î塬P’1µÞ¡ªÉîè¤S½ÒòJæ/!`ìz|ÆX÷_€3Š~>áO`Ü'0þVà~ä3@;î�¾ÞO`½Á8Þ‚ç?0ò  Àq¿-àù@’¿ˆÜö<$w����IEND®B`‚IMAGE 342 ./arch/wall/moat/moat_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿��ÿ*ÓaA���tRNS�@æØf���æIDATxÚ…‘Ñrƒ0 å“”•þÿ‡[˜ã¾àán´F~Ðî¤*T°&„JÿºÛÁ+%0ÕÖ¬ü È F”Um.¾�!AÈ$y†ðÒ¥€a‘Šõ†»‡Ø´‚Mñt/#”¡*+UÉÓ?�bÄPÙïCºœtÂQ¸’ÏÜ A¦z½f²Üaߥ©̼OwØWd¡-¿*HB"lÿ ùvòöqš´µwŸÿóJ÷³â&ëµÐ×S¯…óû‰qà_€û`o¾X S7¡»ç¾xé^AÔCA÷ÈX þ¹2tЧï¥ ~�Pé{k°§Í����IEND®B`‚IMAGE 704 ./arch/player/class/Religious/monk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEÿÿÿ‚F,v>$zB$ŽJ,šN,¢R4žN,–J,¢N,n>$f:$b6v:$j6$z>$ŠJ,†F,’J,žR,~B$n:$~B,¦R4¦R,f6$ªR4j6¢R,zB,nnlffdzN<b2rB,bB4‚B$ŽF,’N,^2F&š2¢&‚B,~>$r>$†F$r:$†J,‚N4–N,zztª‚\†B$ŠF,¦"r2Ž*‚J,j:ŠF$Ž:$’.jb\bbdvvtjZTzz|‚*‚:$bRLrf\j:$šR4~bLf6††„–:$f2†R,N*‚‚„†N4†LªV4j>,nRDÒ–\bVLî’P���tRNS�@æØf��cIDATx^Å’EŽ$A Eƒ#™™Š™›yáþ'i©w“ŠªÕHó¶ïë[¶ þ†®Oêgü!0QŽÎt0>íj ûD`ùTþ4H¦ÕŠ@׿}_‹â[Ī7E93R”Ïïn>,n!±¦·w_ïÊ?=(?=UfNÆÉìªr]òÉ22±=Þ;Y$;ôe¶ÿÛC<ñ¦ÎBÂÃŒº#°Ô€}dz(EÊ, åù”QßǾÑIƒv&l¥!Û{ÓäŒý‘Ð×¶»ÝåÅÇ‹´¦½¡¥½^¿¿Ùh"­j©”ZÍ#•ôTà;q¼ZsnÙRòvDñÀåŒ%‰ý,(ÐeŒJr˜$‹¼ß’eÆYEòJðOšçŒs—ó9•ê Á†9¡ó6åq¨„[ªöšØ°eAK¢ŽàJÝOͶPîöj «‚@µé‚ 0sb$<sçm,„�|©™à,Ý.ø·¼gO#"è@ê����IEND®B`‚IMAGE 708 ./arch/player/class/Religious/monk.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ‚F,v>$zB$n>$ŽJ,šN,¢R4žN,j6†F,v:$j6$zB,ŠJ,–J,’J,~B$z>$n:$¢N,¦R4¦R,f6$ªR4b6¢R,†B$ŽF,žR,~B,nnl‚B,–N,rB,bB4ffdb2’N,zN<‚B$r>$†F$r:$†J,‚N4ŠF,f:$r2Ž*^2ª‚\š2¦"F&‚J,Ž:$~>$zztjZTŠF$j:zz|vvt¢&‚‚„šR4‚*j>,bRL‚:$’.–:$jb\f6††„nRDrf\ªV4f2†N4†Lbbd†R,~bLÒ–\bVL,ÌÚ���tRNS�@æØf��mIDATx^ÅÅncQD/Óc&33³ÃfþÿOI2;ÇWÙæljqJ¥Vƒÿ„iÃÆ þ²â# ½P0®a¬Ëߣ9M «Î oß—OÙúÓ$Žº­g¾OÈÏ_Y=T_c›ÚÝêuõ¤ÈKòJpýñp„Ô¯n¯NGöCÒ÷±üô¹5vsAÇï[?N<ÄCoä lÝ<]v7Þ‚p€|IHE”³rÌ)Ϙ~Hs y…õÐ!¥¬tâ(å…´ÌîMÏ s¶úZßžÍçowïv²M´ÞÌùfµº¹Y¯µž$ÁäÂ)õ.˜£½`šÉ‰ÂVNújü"I Á9£"NS¥HjåGï„Qš2¬Èã\ÅqX Ja(XYˆ:sͳBfÂ:¬$\ê2eç/°(«wJ– m‡¹Ds¢šP-ß«¨¢fLÏüæk¯£ò¡åAŒ4›n¯ @B�²¶4,2ð¯x�+l"ó?Ò:����IEND®B`‚IMAGE 888 ./arch/player/class/Religious/monk.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��éPLTEÿÿÿ‘G(€B$p9|= ���G'F&•I(¢P/w<è [z>!G$q9@!‡C$r:o8t:‡B$}>"Š*v;|=!ŒE&s;~?"’H(ˆC%|J4r:…D)ƒB#t;:M'–J*…B$m8m8y>!p:˜K*{>!j6t:~>!£P/ŠD'q:zI0€?"¥Q/¨R1n8©S2k7A"v< £.¥"q9h8z= ~@#G(s9 $ˆD%v;w< žN.‚A$u;s0)A#x= ‡C%™K+ˆD&n8H(?!y<u:‹E'¡O.“H)‚A#w;k7ŠF%c2{=!†C%L0‚B%w=!‚B#«k;ŸN.ŒF'w<!}?"•J)¥Q0šL,|E-eXUliid`b`XWê¢\’H)ŸN-šL+d2nih‰ˆ‡xuue\Z†B$ˆC&D&nfd‡†…phgqQC{= e3zK7}VG„L4”J*µq>é¡[|A&rF1mF6~B&E&M,—I*…H4à™VaVS^WXnF4‰C&L+œL-¢_4gK@k9 ”I*˜K+€@#u< ~>"s:ÈâQ���tRNS�@æØf��=IDATx^µÓ’4A«ª±=kÛ¶mÛ¶mÛüñ¤;±·ÓÕW»y›ñ8à—EYýWcþ÷_Æ¿½~|þÁûû‡Ç§çõ+Ο_\^]ßÜÞÍaÛr#ä>9Åë›ÎƒÃ#7À1¿°èÜÚÞÙÅcã“Ë+«kßBjÅ>4<25=3ëÙA"è´wëzzûúB ·ç,MÍ-­OÐÖÞáå‰òŠJSUu W‹ ð&Ÿ+0ëŠTÈRRZ&åyŽÍÈ4fç “˜+éSX†K4“�Ó%¿œÀ@6:&Ö ¤Ñ9XH3aj¥ÄÅ34„A&ˆˆ„¤}”O‡Ð¤ÖÛp'ø¹TZ=$ñE9´|š>¯°àáãԤ È µúºBÉ©Yu„\@u-íûË”B¡�?Ê9,XÑZF����IEND®B`‚IMAGE 911 ./arch/player/class/Religious/monk.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿj6z>!ŸN-p9t:‡C$|= ˆD%‘G(H(~?"}?"ˆC%”J*q9@!–J*˜K*r:G$£P/¨R1���¢P/s;v;s9 $|=!ŒE&s0}>"’H(ê¢\r:|J4p:{>!…B$m8m8y>!F&~>!M't:•I(A"ŠD'q:zI0€?"¥Q/‡B$‹D&o8n8G(©S2k7‹6‰*i6w< v< v<›M,£.¥"Š*h8z= ~@#…E)‰D&y:q9n8v;c2žN.‚A$u;o8)A#x= ‡C%™K+ˆD&d2w<?!y<u:‹E'¡O.“H)‚A#w;k7ŠF%G'{=!†C%L0‚B%w=!‚B#F$«k;ŸN.ŒF'w<!xL9gWRiTMmM?~A%¸tAè [•J)¥Q0šL,|E-eXUliid`b`XWt;’H)ƒB#šL+e3nih‰ˆ‡xuue\Z†B$ˆC&D&nfd‡†…phgqQC{= €B$zK7}VG„L4…D)µq>é¡[rF1mF6~B&E&M,—I*…H4à™V^WXnF4‰C&L+œL-¢_4k9 ”I*˜K+€@#u< ~>"s:”{b���tRNS�@æØf��-IDATxÚµÊC‚A�Ñ_UmÛîÛ¶mÛ¶mÛ¶}Ź@f­fÞ6þ IÒæ/¹ñûh¼ Þ?>ïáñéù…õŠí—W×7·wéüƒÃ£ã“Ó3êÞ†ì›[ێݽ}Š:G‹Ô²cum}p&&§¦gfçæl€díëGvs‹µÙÞÑÙÕÝÓ‹êUæjSMm]}ƒ¥±©ÑfCq‰®´¬\SaÑ‚>Kc02s%¦ü‚BTOà'ª’’SRÓÈt 0…‘JMtL,ñ€,S…†…AøøJ•þZìàæî!’±ÄrÀ±K¸<©‹+pÂVŽhI X™\6¯<¿Nœðœ=YlºEÚ»àyGeç0€†:¯rÅ‹vP+ øs¿@A?Í‹Ïÿ¸����IEND®B`‚IMAGE 756 ./arch/player/class/Religious/monk.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��/PLTEÿÿÿ‚B$–J,’F,ŽF,z>$žN,~B$®V4¦R4v:$’J,¢N,n:$šN,V.j6j2r:$z:$^.ŽJ,^F<f6~F$~>$‚.¦R,b2F&r>$n6$N*†F,‚>$¢R4†B$v>$^2ŠB$ªR4ŠF,ºŠB,vB$Þ–TšJ,ŠJ,ê¢\Z.^^\^RLŽŽŒfNDV*†ZLº~Df2†R,®rD¶zDžžœî¦\¢zJ4ÂzD„^Z\žR,ÒrN<vvt¦V4ªV4ºrD¦f<†F$ÒŠLІ„Ö’T¶Z4¶‚*~.N&v&–:$v6$Æ‚LŠF$nnl¢R,²n<²V4ffdvrtž"n6’R4šV4žZ47œj0���tRNS�@æØf��sIDATx^½‘Ã’lAË84Ú¶=¶}mß÷†Ù÷©èÅ,&·™ßUà%DQ4Ûä›q‘÷/6vñü¼mÞoœp æç¯¯Ádop0^Ì÷Uþôrþ°0wÇã½£ù¾¢°ËÑôtÖã»Çp6¦}ÙöH§Ž$®wúI’òA“J‰±qm›ñç\­±‡­aCÔ ¿¶BBÖ³~ih£Ê1ýoˆk;©‰R¦ÊoïW†$ÛaáúNàAøÿñø¬m| šNö×ÚðJ”ÿ³jµ– òùW<röûìÇ–ïæ0©ê›²Ù߇‡oºÝ·@Iy™i¹ËÀ¯8šÒ›¶Ï˜ÿ‡²î+ÛÕYÝ«‚цÊ7mMÇUR¹žò‚mZ¹CLÊa&oª&$ßrC^ò'ƒÅ!‘Ž1-*.4)n‹§6ÓBžò…˜C='rîË‚ MAÀŽŽÐÕ P‘�@� ŽÏV`#…£¼*ÏLh)ѵÜW����IEND®B`‚IMAGE 740 ./arch/player/class/Religious/monk.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��&PLTEÿÿÿ~F$‚B$–J,~B$’F,ŽF,¢N,z>$žN,f6j2®V4ŠF,n:$’J,V.¦R4r:$b2ŠB,ŽJ,ªV4^F<v:$z:$^2ê¢\r>$¦R,N*†F,ªR4‚>$¢R4šN,v>$šJ,^.ºj6Þ–T~>$ŠJ,F&†B$n6$^^\^Z\ŽŽŒ¶zDžžœzJ4„†R,º~D‚.¢²V4ÂzDZ.^RL®rDvB$î¦\ŠB$Òž"†F$¶²n<І„vvt’R4f2¶Z4‚*ºrDN&Æ‚L–:$šV4žZ4Ö’Tn6v6$V*†ZLfND¦f<ÒŠLffdvrtnnl¢R,žR,ŠF$rN<t .���tRNS�@æØf��lIDATx^ÍÅrÜPEõ„ ÃÌÌcf3óÿÿ„ÇÙEzÖ«tõÛu•GLEGY<¯ñÉŸ Á.žŸw¢ áåfuºÂÂá¼wZøüýöý‡y\(Ì—³ÅB?½Ýøøø�M&^¶ËÑdŠR)®O@š·óܥƈ…! C�`JP]â8„´Ï¨`”Ò¤`Ö†OEe€ü@øA}Šøw3„ ±Û ùF·Ý‡5üåk¯Ê>´ó]J‚'Ö¿orß¾;¨ŸiŠç`Ó»N„¸|Ìñ›×9ÍÛ0xUx‘,j»½ØÛ»êtžË{.ìŸiï9sF9)7휹ÓoJ[³ÄÈ­ë:Ò\ÏÛ±EjÔqZ}Ï”~ð”W.ï+2ðØ•Æþ,1d‹’�Ðí}_w,$Z§ïÉIuÿYU´Ñ€0´Jz‰¨Åi® wA*ªúëSÚP‡CE¨ñ×^åÿš;Ð…%=­lZ����IEND®B`‚IMAGE 1046 ./arch/player/class/Religious/monk.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‘PLTEÿÿÿG$G$I%d3~?%o8b2b3J%k6p9d2`2j7i5|?"k6e4k5{="’I*†B&g4_2t;!i6y>$–K,šL,~?"d3���Q)p8 |@(v>&‰D'˜K+ŠD'l6$ t: ŽF)‰E(@%‡D'€A%j6b2p7G)”I*’H*ŠF(C&n8_1a2h5_1v;!F)žN.N.ŽF(n7\/\0`2„B$ŸM.£P/›L,‡B'a0[0Z.f3‰C'œL. O/u:^1Z/W.s: ‘F(’G)„@"j5]0c3{I&W-l7ŒE(Š5º«x,[/Y-n6©z&h,m7t;"_.^/m'_0h5e4k7q: Y-W,\.U,u; u;!@$s; m:$jC0S*S+Y,]-{<!€?#q8?#E,oWKjb]ccad3U+X,c2b0r9t:]/p;!sTGhhfƒ~rpmO*n;n8h3p:‘P'v?j4f:$fYSsrp‰‰‡ssqµh3°d1M'g5’Q(»l4§_.}> q7qRC€}z†„qqo¼m5°e2xA!¦^.…I$v<w;i9!vP?yUDe:'i<!XD7gE0¦b/ŠO+‚A#v;"^^\‡bH­c0m9|=#—I,‚@%__]gge{hX¯j97‡q9}>$€€~„}9*hºa1z="e3u;"w<#õ«Á���tRNS�@æØf��3IDAT8­Ó-HžQàçBƒŸøƒ?E0hDP0ˆN ‚IƒF5à .o«Ú¶`,l†/XD›Á⇠8"Ú¶ TÔ Ÿƒ1ƒÈïygñŽ×9÷á#žˆœù±Žÿ‚£Þîý_¹à; íô_'À¦±Øƒ¯æ?õdA‘š¨ ÍЗëq^W}šœ¾.NT¬;mtSš|û£Y°ŠJÄâ2&²`•¥¥„é,X‚íYH¼a¶Ýß¼I-jŸçÀûHxùp:,G Ìø2ëc¤À Uwp°I0EÃøšC ÜU• ¬E Ô<Vl$Á :ÀVú†^š/@)Ú h=o‘Ðuˆå$ˆh1¾?#D4³|P/¸Œ\P�7y@T@9òAðûßÎÜ¿ùŒà™?!¡����IEND®B`‚IMAGE 1021 ./arch/player/class/Religious/monk.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��dPLTEÿÿÿv<i<!n8_1G$k6_1£P/º[/k7¼m5`2i5e4o8t;!|?"k5{="’I*†B&»l4i6–K,šL,~?"d3���Q)p8 |@(‰D'˜K+ŠD'l6$ t: ŽF)@%‡D'€A%j6b2p7G)”I*b2b3a2h5J%v;!F)N.ŽF(n7\/\0`2„B$G$‡B'a0[0Z.f3‰C'œL. O/u:^1Z/W.s: ‘F(’G)„@"j5]0c3{I&W-p9«x,d2Y-n6©z&h,m7t;"_.^/m'_0h5e4I%q: Y-W,\.U,u; u;!@$S*S+Y,]-€?#q8?#E,oWKjb]ccad3U+c2r9t:]/p;!sTGhhfƒ~rpmO*n;n8h3p:‘P'j7§_.}> q7qRC€}z†„qqod3°e2…I$~?%w;i9!vP?yUDe:'k6XD7gE0ŠO+‚A#v;"^^\­c0m9|=#—I,‚@%__]gge{hX¯j97‡q9}>$€€~g4„}9*hºa1_2z="e3’H*l7v?j4f:$fYSsrp‰‰‡ssqµh3°d1M'g5’Q(ŒE(Š5ŠF(ŸM.C&u;"w<#-K¨���tRNS�@æØf��GIDAT8¥Ï=(ÄqÇñïûÐ]îþJ¥””dpò”§dP×u¹ÉCX¸ bЗM‡Dº˜Pnò´\a1¸â›EY è%Ùü?ŠÏö­WßOä—ðWpFÅ ây3îµ`Ûtm¶?j@ {ÞðjÀÚ+CË�fàˆ‹X>D–lî9zM ûiraáÿ"Ðo‡Ð¬óŽ”xö.!˜€À˜Aé ÔM&0Jæ‡í p�ãŠ> ´€ ˜RÎì ,+Éû;HwìyX%h£Ï ÙÅÖ›¨A+_ÙQk-p\û¢©UÌ4VÂÑ»”ŜɂSQ)†¥ç¹äÚ�¸*"¦Éÿ×ùFTW‘insnD²€;Ë®K 2ReÚg<ˆ”_¸S"ÏA¿¤ÉlJ ¨ˆHu᪈¨óð ºÍG!?Q­…����IEND®B`‚IMAGE 230 ./arch/readable/monument.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���|IDATxÚÅAà ¬Éÿœ¸•£Ô*YÁ¡53XKùK Œp(â±}P)@¡aüî3˜€V«Í€OÞª° â¼÷nÞa‚‘`ßÀ&~9.{`<8YÜæ ô°¿‹ ¸®Šå Ô1W Ï…Œ|Mù]ñ¼ YQÇn����IEND®B`‚IMAGE 250 ./arch/weapon/chained/mornstar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8àààG$!!! R-���@@@d3‚B'¿¿¿Æi6���tRNS�@æØf���~IDATxÚµÎ1Ã0 CQÉjë’IïÝ2¦§p}âÁ'á½*a}ŒüÁ<0l€Ï”síçrŒt¡Àz4ÞsmÒº‚ uqZ¹ó uq:×&÷ ë ÒûLz'Yky×® Æ»ƒËï;h¿­Ø®ˆ÷=©³âA¶����IEND®B`‚IMAGE 341 ./arch/construct/temple/mos_temple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE���!!!¡¡¡�d�.‹W@@@�ÿ�aaa���ÿ×�Ú¥ ²""@@@¿¿¿aaaààà!!!´--¸<<€€€ÿÿ�¡¡¡}5%���tRNS��������·çR¡���·IDATxÚ•“ „ EÁYli]f½ÿQ§6 H„f|„Dèó×`Gb8K<ûæÅæM§=‚s9À7�}8¹à„ÐÃÖ6" [Àä` o¬PAêu ’±K¨:0¥”ˆ˜­.Â>�’!´f ø¤T¬…“P ¯gãüS(1Á?hÿWå Îë6m;/Â_÷…¨B©•¼”r-,J ¸›Ð ÐêÕ¹UZŽ­+<ØÓ¨{?{É$­B;Œ5����IEND®B`‚IMAGE 455 ./arch/ground/Mountain/moun_cave1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE����1�)ŒR9kJc1cB{{{œR)½½½Î„9ÿÿÿœñ]1��aIDATx^-ÐAŠ1Ð/S4^j  ³t`2ë,|€ê¶½ $h7r!|„¬â0!ë4}ÊHL´«§_P|Ì=yO—”C!,ü‘æ´`b†©&†sGc…’5ñ²ƒÌ…þ¾‚— @·eò hò X±Ñ�Ϥ’Ù'(öt3ÌôIýÖ£3·èÅ©>Uˆ]¥‚½ˆôŸñd—gXÈ€¶Ä2 aê$Ç Q4FÈñx�¸¼‹öªúõ„� k÷·?¾¨pÞ7`xl—pîã´½½Ãy[ ¸mìøaå@…?Hžeµ7�á{ýè l~¥·D÷«Âhnô–Øo¤£A¡ÿlm¬t†Ø“­"!Yü�¤]¡°«â¹CA¢Í ©@_&Í®ñ?Ȇ„˜lTìH+~^ÁY^–V\ƒñõzi-Z½©U>@63‚ô  0ZîÈÀµ“ {€ð¤����IEND®B`‚IMAGE 418 ./arch/ground/Mountain/moun_cave2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE����1�)ŒRc1cB{{{½½½ÿÿÿ½œz´��EIDATx^=αÓ@Äáqž|µ¥è¨#!Somh¡ ßxož[PôÆ5B¬ÿ}윸_ùiФz”~å{®KOš}‰^…xÞƒS 3éa8”/¢ iêB<V+®œQ-ܧ?† n ÇdÍ}ù}|u‘¨¤¹ÂWr‡3ù})eï@?¥Y.©È7Û ant­ÅFÞoÈöóß:Ë�«.†<á\ÊÒà§3>:/‚*>ºžfA‘€oçë°Ë‹éÔ§WŽ—´CÛ¡|-Frú¿[KÏ­}’q÷Và’ÀH°Ì*C&Ý;ÀÞ!0F@Gð>ëojú €èL"\ÒæÀ€l®À-ä>èáè ’á¬6Ü@»ðôi•Ú¢èmÅ )§íò3^”ì”^ôÞ4nÃ!õïe^ 3d>ƒ RtàIµ—þ_³ªMpúý����IEND®B`‚IMAGE 1543 ./arch/ground/Mountain/mountain1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÖPLTE���¿¿¿c29?/%:::¾¾¾½½½ÿÿÿcDqqq|||†††ÄÄÄÒÒÒ¼¼¼ÇÇÇ´´´¹¹¹ººº‹‹‹¯¯¯‘‘‘šššŸŸŸ°°°²²²³³³zzz···¸¸¸»»»¼»»€€€ÃÃÃtttÉÉÉÎÎÎ………   ~~=<<€®®®}yw€xxx4ËËË~~~ÑÑÑ“““uuu{{{}|{}‚‚‚ƒƒƒŒŒŒ¶¶¶MBB¾½½ÀÀÀüüü% }|||z|{€|z}}}~}|:$#"€~~2#€~5$urrF 4%€€N 6 †„ƒN!††…>&ˆ†„‡‡‡‰ˆˆ‡Œˆ‡‰‰‰ŒŒ‹57K, D.#222Y*›››444U-¤¤¤¦¦¦¨¨¨_2±±±b3b4!¶´³µµµ¶µ´·¶µ><<c4!_5#c5"?>=¼»ºsqp½»»EEE|{{g@0OIG4RQPRRRUUUXXXYYY_YUwYKccc€{{rrr…‚gdbgggjjjqlhrnjrnnoooroorpmqppb2ŠŠ‰ŠŠŠŠˆ<-#V'000sssŽŽŽtsqusq’’’yrp–––˜˜˜W(E-$žžžž41/|xvzyy{yy.ª©¨ª©©«««®«©¬¬¬}yx±®­%0 c6#}{z~{zd6"C><D>=a9'·µµY>CA@1 ¸¸·O"¹¸·bD~}}»ºº}}€}{Q#1+%N3½¼¼^.777^/;99ÁÁÁ‚}b1ÅÅÅ…|;+!ÊÊÊ///ÌÌÌÍÍÍa2ÏÏÏÐÐЂ‚ÚÚÚÜÜÜÝÝÝóóóõõõ‚‚dddxq��ìIDATx^E’c¯µID«jw?:¾¶ùÚöضmÛ¶mÛ¶mÛ¶ÿÁÜ>'“©¤?­•]; UCó¦odx†ˆ’âøÁ¥%IæH‹HU¹µŒ@“†‰4x˜àጀ};ßÔUÖý9Sˆ9Ñàˆ´ÔÅH’¤¯«ùÝ^”ª ŒÈ÷Jõ[?q¶hn½uÒÃ+9ƒÆQ£Ôœ9äIo~v?æ}qþ=MoeÞI¥4õÞ<ÙQޝþå3bîIÏŸÿÀÇÆ€É1^úœ vÖmÊå ó\…³?U54òÇÌ é9~ô±Â¼gæz8à2¾> VãµÆF®šU;]÷Ï9O†f"ƒÁªàHr±yÁˆ]–Û`È›Ì>Ïq±w*„·FsYäÈ Ü˜»á¤d×  0xç3g)2—»ÁnÁbIä€fiæ]Fæs×; SÍsúôª@¤J¥…Þ;Ë}gÞIÆ«*(Óô§â° –r)MexíÕ9ãµþ  L—}µ„8ð —ÞNÐ×{³è÷b¥m0øÕJ\öW1V{nÊvhnZÃà¤Ò k?ËÀ?¿¶÷÷Ï)`tàDoT±Ð£Èežž)Iørç©Dž!’*{´¿±? ß†¥8Ž œ9Cg\ÆÒÏÝA¨ÿúE@Zª¸·Ë^=ý4x`ÆZ Ò`ëícüÚ­6ó fÏ6IÿQÛ~qÕ³Í}1Çå´tËÛv|Ð/Ïjª×¯¯ì‚‚{~å‡:“vÖ·_ùÂ†ë¹ 4‰û§¬s¸)öãN÷m<:ñæ‹/8ù„5Q›Àžò~ïÜ5!Maðéîg]rÅ˧<µú{8â%’Ú‡fÔ]sìÑ– Ûþƒ÷×½wíCáü-Æ’ÚºwÝkÎñ¨’è½¹Ã'Ó6ØÍpÀ©wOê\”´5ÎÊçöeZd€E††Tè¾üÜ[šp`…K÷%A!ôδ§€§'¯ß8@rò‘Eý ûÞ‡;8Ôõ����IEND®B`‚IMAGE 318 ./arch/ground/Weather/mountain1_rivlets.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿ�€€�ŠŠÿ¿¿¿��B£Ô���tRNS�@æØf���ÚIDATÁ±‘Û0�À=bã-#—æÔÿ �Îq¢®ÿV¼ ñ¢6âÄ"vPð •=GY»¸ñ'²ô ‘p,h¯ tàÁ\8ÔŽ@r,uµ«ŒÌ" ~¬Íý;ãÝ¡ç{aæ}Ÿ¿`~ zýû:ÖSd͘›¶Æç¬{ƒŽHw‰ nó"ÁêU¨(ˆÏÄñDÐÞ…þ@æ …ô “µÌÓH ^›NÐ9¡$£>Ã9æ�_èù¾~Ö7h¬ï¬ª »ƒ™«6( ªªlþŒ'»z-é«����IEND®B`‚IMAGE 321 ./arch/ground/Weather/mountain1_snow.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿ�€€@ÿÿÀÿÿ¿¿¿ÿÿÿ¤>ÆJ���tRNS�@æØf���ÝIDATÁ1rÛ0�À9×ÃVЫaOÙƒ¤HtÿÿJv¡½8ûÙÛĤ­F-Àƒ³ÏŒIËZ`ãj�1 ²�Ž çëðpãP«U’cª{ ˜¥gÖÒ ýÆ\ì?Yï€È÷ÄȽ¯oŸ‚¨_Ç|jYãÆâœýsÕ^ ÐÒ.­@Â6njÁêU¨…VÐ>Çg‡ó]ˆ  ±@,̵l0.="ÁkQÀÎN¨I¯OwõÑÁ"ß÷ïüç ó'«êFù·jAPUUÿiü+D Ë����IEND®B`‚IMAGE 1520 ./arch/ground/Mountain/mountain2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¦PLTE��½¿¼~€}b2þÿü¼¾»y{x. "$!<*#ghfuwt+|~{}|ƒ€¹»¸º¼¹»½º' ¾Á½À¾ÁÿÃÅÂ./-^/tvsI š›˜efd{}zz|y Y*- €‚…‡„†ˆ…‡‰†‹ŠŒŽ‘Ž’’”‘¢¤¡©«¨´¶³·¹¶¸º·bDN"sur:(!ÂÄÁvxuÅÇÄÉËÈåçäùûøxzwËÎʃ…‚>_0•—”H ÇÉÆÊÌÉíåˆEñóðnpmuqo)„†ƒ/ˆŠ‡[]Za\[‘“bdaØ¥lnk­¯¬²´±qsprtq&(%'ÄÆÃZ+„~ÔÖÓÏÑÎ`1~].ïïåc3ÓÕÒ(Kˆ‡ŠŒ‰d4yts@"1  R%*’Œ‹fgeœž›^*\- Ù›YC ¥§¤Î„;Õ×Ôª¬©ñäîæ‰íæîçò粫­ªøõ2óë¨îêÇçéæêéàõíªVXUíïë®°­‡‚‚„L ¬®«Ü®(a17%°²®¶±°M!‚}|¶¸µ4'ƒ~}f6i9!B Á¼º9' WYV%*,)P$F) ÊÄÃlgfÆÈÅhjgikhjliÿ¾ÈkmjD+molS&/âà{íá“K- vrpF#%–˜•óé¡ðëš+zut ¢Ÿ6${vu£¥¢ñí·óõbìëâöî«ôî±òî¸ùô‡|wv¬¦¥ñðæûùuøùƒ®¨§ôóêöõìùõæô÷óý÷ö÷ùöúùïýûÞøú÷¨ª§úüùýüó}xwÝV´��IDATx^MÑcïeKÄ᪵zëØúÛ¶5¶m{®mÛ¶mÛ¶m~“›½O&¹•~ùä—î4LÔQ#¤•® Û‘=јÂú¹a³­G ä¶tØÞó]#�„ä›»‡»]5Ž’éºRûŠ6 $%(äZ›[;ö“Fá1’®p³!’qÉåÎÙ¸ÐPàŠìŠTc†mc$“ÍybÉhÛÖ ÅÚ;AQŠGE¹© doË=„ÄÛWÍ–†—?1B’®#ô LÍœ„ÜO#/ýÃPeQP£x©§¯}áS!¨#"òã—ŸЏNÃÔ(I™'(ü»,ªª€øàûw| ˆWîÌÒœwñáRo¿zõ¸Z�•‰ï.0¤(âMms³üçÓW8OWÕvTב_Þ>¿\Ðxå[£k¯ø"¿»ÀÃ}„pT2—Ìû›"<ÙÝÔ|ãW?¥bEl¶ !ÁÝùý3¶Ä\…Šx§_øÓ)õÕ‰àÝj~;ã ¢pEä±{Ÿ$Â2ò×$­™w‰Ó/JNìÈâh�üMŒçI²÷LÛïeìäÿ Ì\6Å`Ý®¼µç~;Û…CIŒgh‘L³]Ê?/Ïù@ÔBæŠ#${S}í=ñ~«‚`ùóÐq­BÈDuwâˆÊžkÄÃñá2Pçh(™\#­ûN¬V€Y® <9š S]¯Ý0Ø$£CPÜ9iÑênj£uµz &%í"@ÛÂI²³¥#{K,´zù©>ÈUnJ$“E bÍÒAr¬³ô—ª@Ä[ºR‰¨½KéƒYg|<hËQϬ;©jÍ›P?_Ò—üáÃHÁ¨�µs®ß¸îÊcÞ¨Ør<†¢~ sÙûß¼·è5c ¨8íù-· É”EëÖ‘ð×Ûˆ1ú£ïV ,-öú„µ~ÑÁù«W^‡æl–ÅâŠôb¤TjŒ>ñÀŠ{dVí&æ –Å¾Sê]>K`siás+§/ŸóúƒL‘ül™Šó®È£’����IEND®B`‚IMAGE 261 ./arch/ground/Weather/mountain2_rivlets.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿ��ÿ��ÿ¿¿¿UŠ:���tRNS�@æØf���¤IDATÁ‘à0 0Ù!ÐÉØ: S÷ü9½JñÄ5¤”�§2§/�£�°D�øèg€ñB~`` & …ý@À/¬:è ÛBA?Р@йh�ì‹@ƒB>4°h|@:úøïô&@Àæ‚@Þ€ùa­¿ ôoîÌ Œã®}D LÅ„ó/ü«Â Ãèx°����IEND®B`‚IMAGE 267 ./arch/ground/Weather/mountain2_snow.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿÀÿÿÿÿÿ�ÀÀ¿¿¿Q€ý���tRNS�@æØf���ªIDATÁ‘à0 0Ù%ÐÉØ8 S÷ü9½^J±âš�RÊJ�§2§/�£�ðt€¯õû€NĆýÂÀ : Œ€³^ôž:˜ Ûƒ ú…4� €ÎE`]4� ð¡õBãz`¢ÿ€oà‹}€nèE€€æ‚ ;`ÑóÃóü]èó›;³ÀÇÜÐGd¦bç_øb¸ÁÄÝ)����IEND®B`‚IMAGE 1059 ./arch/ground/Mountain/mountain3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÂPLTE���{{{½½½���c1''']]]¼¼¼mmmU%‚‚‚···¹¹¹ÃÃÃÿÿÿ¶¶¶¸¸¸ÇÇÇÅÅÅ c2cBƒƒƒˆˆˆ›››QQQªªª¬¬¬´´´µµµV&```jjjZ)ºººppprrrtttÁÁÁ{yyG »»»ÎÎÎÑÑÑ}}}[[[\\\b][_^^eeehhh9mkj<ssswvt{vvxxxyyyB zzy{zz{{x!!!|{{F ~}}~~~~}!€€€‚€| ***„„„†††‡‡‡O"ŒŒŒS#’’’“““ššš    ¤¤¤¥¥¥¦¦¦©©©///«««­«ªK-°­­®®®°®¬±¯®³±±²²²´³±´³³\+Z0+ ¸·¶U7¹¸·FFF¼»»¼¼»HHH½¼¼uC&vD'OOO2ÆÆÆÈÆÆRRRËËËURPÐÐÐWWWÔÔÔÝÝÝåååæååéééìééêêêóóóùùùûûûXXXQ–¼Ö���tRNS�@æØf��IDATx^­“Å®;„SÕm{~†ÃÌÌaffffffæ\¾ï›ckFg”,²I­Zö×­ê²<ë÷H¼~�Ò'…:Ä„ˆ …¼*Ì RøD5žQ(¦ #¹ÉÂK•+*þ¨NŸ«€uˆ§’77ªQQÕ/NÄ®ï,‘ó%‚h׃2@Ây B5MÈ*^Õ¸ø1»$ €¦Îæ�€ƒK–ÅØ]Kr’÷oEàÿ÷Á\kD°xYE�{'Y1Êw ð@ófÀX…Úx µ¾C-h9w!zÕAM’ƒ¨ëTœÍ;@ÅXµ:“»ŸAˆºµ�lˆL¤Ƥ7Ú%7¤ŸOüó[DZQ﯉Õ®khüë ½Œ€jPýoâÒ€{7RÊG$DÄYá¿ד©bÇ+mIµª‚¯oIBÓ*§2ôRcŒBm%@Žwl‹’MKM ˆN)’\‘ÚcO‰$jt } Ù{ÄÂ5Ç‹4HVZÖÔŸÛ7iè?ÚYCdb ¡¬o[4§~°·½Ç†Poä[KÌdV@¶œïÇÔþá¾LnqÙH˜Ð½ïL-_'iËž7 ƒ}³/•×9峚®Òµí[¯v•³É2öhÇó{{çÞ±F0ºzÕ¼F g{RQ.{|r¬Al.8qw©šÛæ§ß™”F¼Âý¯õ}Ê8!­ï d����IEND®B`‚IMAGE 1273 ./arch/ground/Mountain/mountain4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��+PLTE���¿¿¿c2ÿÿÿÞÞÞ' NB9'''ÞçÿÎÎÎssstttÝÝݾ¾¾\,«««ÌÌÌpppÒÒÒqqq¶¶¶fffvvv|||xxxlllÈÈÈ………ÍÍÍcD   {{{`0âââããã" ¹¹¹»»»ÉÉÉuuuR$6+$R'1/.N!K#I,Y)>0(>4+?41Z/F5(`/F5/Z1 Z2D80K8,\4"]5#Y7(g6 ???b8%J>4[:-K?6]? OC:`A5 aDL#»º¹5+#8#ÂÂÂÄÄÄÆÆÆÇÇÇËËËA ?"""5 ÕÕÕÛÛÛ+#'$"ààà% |zx(}||}}}~}}*€‚€€†††ŠŠŠŒŒŒ*‘‘‘”””UJCeN1_ZY\\\___cbbddd oe^gggiiiliejjjnnnqon wpl $  *''äääåååI çççéééííí÷÷÷)((Y*631fdcÜÜÜ~~}~~~D0([+[1yts‚‚‚\,H!kkk*%$™™™¢ŸŸ¥¢¢¥¥¥%¬¬¬¯¬¬­­­®®®´´´–––˜˜˜úúú'&$vú`��‰IDATx^5“c÷m=ÓÌL»÷9ãÚæcÛ¶mÛ¶mÛ¶?Þs§gÝ´}1+¿•É›b8·iN¢s*¢™ÏP¨†Wú0DC—cX%­# €†ô «y1© ª0¹Ó­sºí'y¦”j�:f`0p÷‰Gm–‘ù…È”Ü]ÅØøÇB¹Í(v2ЭRÆÆ¹ô÷§év ÎªªƒI«þþ‚xâ‡.•-àÚ·ßT57­ø~ùøÖ¬_LzX g.}k™8È>ÿôóß삌�‚÷½6î²põ¢ÝN_�4Ü=DûsV,“2¬ž}fJ0–Zv®¸ádãŸÓ›vøA09(£¼ÛOèøó†Þ£¸Jغ§üèþ`d×�±P HªÅÒà‹G\SIFŽ"à¥ô¼å©›WÒ"ÚÈb „KråÙøùíueçîÊ<PÒÈÄ&žTgµHÌQM·>þ,<‘V(0ۆΞø-ÉÛ8 áì� ]ðëä䯽%\Méäí`¡sg¾ Iä§@ÄN�•°j­íôЏé¿Ç&”ÀÚ»r…p:J—M.÷wÂùÜþß*µîÞŸôñ{(€FI“ýÿrìÁ=¦Ò¾—6ìõ2êǃ3¢ïï™áâ>9°$ðzZðìø¨C.:èDŽôäÞ¿À¤§8ýèó5FìùõG“|äÝm—_rUÇæs³ÏÎý à}O鬾tý+WƒR¸sÉßr1é5â«]}õðcß?ì°ùçï>ûðq ‡C#â¯S÷9ó4 lºqÑÔÖã­ä6¨uBýòºªP°zžuH_ÿ{ªO¡?tÆÒ����IEND®B`‚IMAGE 1835 ./arch/ground/Mountain/mountain5.111 ‰PNG  ��� IHDR��� ��� ���üí£��òIDATxÚ}–ylUÇçSÚm÷˜Ù9vvgwvg»W»Gw{ƒH±–J£\­A£‰&$)`‚F´-ZjL*‰x$J<¹C,‚H¬Ä�Q¤EkÚ‚b[(øOýnu-ñ——Ý7oÞû~~¿ß;æ1§OŸ¿}ûÖí¿ñ{óÖ­ÞÞÞ3gÎT©¬Ë#ïsüAµzai²8ªò9·lÙâòGžJ ž¶§Rn†a‚‘êÇÿm̹sç K…mmm===,Ë ‚b2™¼~åѰ411qøËÃKbÒ-´´´¾ÚÖöt±;ƒâ”@†:: Œ¹zýÏããbûöíP¿u»µµudlìAŒÜ°wÉâ €}á;ÕXš·nõyýY™eš ßuuÔ¡H “ _¾rêÔ)<lÞ´iSSÓõÑ1<z½^·Û½tÉ\ÔÉ.ôžó©*/ð¼C¢]²k>µo ¿¡åyt®¨¨øíÒïT(&ª3Ä$Q²Í›7ýŒ1uµó& Ösþ›(çd‡•3;d;ÏsÕÕ³šŸ�åÃÛ G=Q¹@ Yjhh¸öçÞý12ÒÒÒâóùŠÊx4Ú‘î#s+Ë$Ùn±æÈNQÉè{ï´!up_xhVõ  €Ç4`ãÆ×GGÓÉ%�ÜŸ˜f]_u™g·q6³ÃÁCêú—êÉÑñ1J©•£¹¹Ò0MÓî x¹y½S0[­9‚h÷Ôªêù­¨Òsâ4 ¢Ñ` MÙGrH}º}ðîk‘° {Ü)‘мØô’£ C�£:òÆÄ£nüá5‘ú] IÐ’%ÑD0÷U-,/»·PŸU\ñ™„¾õЂ2øÓß!ðþPX§òÕÌ.,‰a0fE£º¯õ΃ÔHŒÿˆ’dH¹Bëø¥Ð´é}vphxˆÁ;š"ê=]Ý@ THš †ë�ÄD`‡Ãéþ¾ïîîf0‘b!Ó¶¢5g¬è†­„ñ‚H(�`,à2�Ñ<¯ÊëÖ­ëøôÓÏëëëKð#É_y×  E-:ƒ6°  0Ÿs +W®Ü½k×Ñ£GqäM(Q(T1(à‘R¥ˆ@£¨¹X—°Pµµ··wvvö÷÷3ä¾QÊô€� 9ÔES � E°léÜšE³V­Zµoß¾ŽŽŽC‡1è ]Ò"ñ-j4’Ð9@íø é$ nð⥇sÙO&íÀi�ÅEŠ€�”qãV‚›FÀ/CÃô ¢µË+—/»3ËWpÂ/ Ùƒ™Ø¿?C1NW§B€›ŽRQ�ˆQTšˆ§"ˆ/˜§¡‚͸"_zpAñêÕ«ëëë§�úbÐ¥q´˜�—ÿ¸NY&€¢(hüi�EÞ3;ý&Ie½a0ŠËæÔ,š¹fÍšµk×Nt÷iú~èY0¿pÉü®“Gõíýø-l"¨K~eaU¹q‡£¹Mv¸—*yV 察4†6éÞY‘gºq�»}çÛ?öõ^EL»>Ø*`¨ª*Ë2åç×á‹øu:š—³(ÙE™S}J^Xž:®1À˜ 2šÏP@¬«ý\Ë꯿ýzÇ­�Ðq„ RűÅÌ!�1¢‰âäxÑnáL3l+Û)™ À¸¡ÁdYËÎä=T¾oï»»wl#*"¦#oiÚ EŠMrŠf~FŽÉ"q%åˆàÎ25˱dãÓ%â<~¸= ÖÕVì|ÿuZ”UZƒT&I¬,JBŽÉœíÍU„Prê›Lg,Eð×?ÉAcÃÅe %13U‹‡˜Û@"„•ŠÅ^89mØSp݆gêüê?ÿ6Tí±).VTe„HN38GéPì:ÙµgÇ6žçíªƒÜ¯KzÂA-V‘Ó¼‚;^êhO'ݯ¼€…ÑóS�<T]ª3·!B–ÖséÊUÔpm9ñÅ Ü´Rų,i.»ÛÁ+’âQq¿Ëá,fž}²À][W‰©Æ×»®¶._VùëÅK(PWÝ\(/|§eI…9{öìè›tÙs¹\5nkލ˜%…µsÐÍ4›²,ÙÙ¬9Ià¶Ázdgðêè|B¢V‡?;;Ûd.¥^ß" îÒc7ÇGÆnà!‘*·X,™ÙYVKf¦•Ï0eÎÈÎÌb¥gŸ­Ç*|N\mp÷hjj‚:Ù† °›ªE3›•1G¾§ÆiÕïØ“@ÚΟ? nŸ^-˜i l32Ìv0J$KKãÚ'Š<{>z^ãc[â öh®="ÚT-ogâEŒê¨ü f«ÝÎÉ����IEND®B`‚IMAGE 1179 ./arch/ground/Mountain/mountain_2.x11 ‰PNG  ��� IHDR���@���@���XGlí���PLTE����1��c�)ŒRc1cB{{{½½½ÿ½Îÿÿÿs¨ÿ��8IDATx^]”A‹ãH…C8[ºæ²÷/Ø»Æ}MãùZMÃô5²_à[5å‰WúKÓ·˜Aøß®#å2Ë!ñ…_<ç’¥'¿§¡4J>8­³sÄ™—¶ì -õÁÛ¶8 Ø{G 9Ðø`‘ÊBÓo¼YåOišEšÊBrlŒèKÈêäɹ)’Žî `N¦:þDiGOrcü!•Šo‘ÔéÏ~­ ÈªÓcKR€­zeì9Ònœ*ËHJSkJ JD ÃA¤-r¬ �bp® Ö£ˆ¬O²3¨ÑH¢m|ð�édA€¢JØQDìOM 4‡P>l@`Ó†H©Ñ9IêÞDShšç_aÓêyøIò’úf¨ó‰Rø"›§¿ão(AÒç39]IæYîKí‡U’¦%y¥ÑŒ¢ùÆBnÎ3/ŸÅG%'š’9ÊÀÔUA¸’Ö ¯grÙê6Õ6½ ìË#¥—›ÑLTò%Š"í+B3–U:“3Õ¶ìÝvœ¯Z7r6½;L?IÛoîÿ£´?srÁr]Ý¡„à‚êgò& Ée—.8å5$¶µ{N|ü wAù%D‚jÕ•3/ÊûcÙ´¢²£)ÆDV–ûx—r �DI­~¯ƒ1÷Wd5àù޳÷\©eíÂ\Θ0‡ã>®9Ó¶^´ƒOuŸ¢“Ðâ‚H7‘¿·U�N$ê½9¿ ™Ãvðé! Á}’RH A¤öŽ¤Ò ï2Û½}›I¢ªøØ£.‚Q:ÖÚÑo‹ÀŠ’y}χ´lþ€Bip‡Ë{>”¦~oPß!¼®yÕ{>ä0‘^Àù ­“€uÏ¢°“;˜â@7¤_H÷|°ÜNôt6N–—9KÓêrü¿‰OoÀέZ¹ïa ¸`Ƀ:\ëò0¨Ÿ®1 0$χ»àp$1ÑòŽ×ëÌ<‚HÛtæïÀf {rý•ãAv5Y ixrÁmT9±„$ž*"±±9Ô“Yvéß:_<(>†lZà׃[#P"§%¾‹<™ì0¦xè8³|Iá5xæÇ÷|hÉ”†Ü³|å¬cêÈý‘ˆ|χÉ}G9^_[’å¯|m-¯—%ž&’MÊ癢T¬=/é<Û’a6šô^J ÛÆv*ZþE_DÎäËšÀŠfÌ«ä\G£šg;¿EÜÁzç—àòÕ LÝLZ솨ăw¨“¤1…(J«ÒÊ&¦ôMP-ßX+'g¦(Cã…þÈí#/*o=ZB‘w4¨³=x<ú6 µÐüTiþ“烴(GºóÓ|ã�i•{Ïi|ãJåÓtcÙ?³Ðn¶òÉ ùüF“Fd+ºð$ô–nnQ'Qþ“…nÑQ�Ï-Yùãiïü?g­ÊŸä°.����IEND®B`‚IMAGE 2480 ./arch/ground/smooth/mountain_S.111 ‰PNG  ��� IHDR������@���[a?���6PLTEÿÿÿ���c2�1���¿¿¿-ŠVcDÿÿÿNNNþ¿Ê///œœœ¯/_HHH333Åbìd���tRNS�@æØf�� (IDATx^äœÑ²ã*E½%“ÓÝwfþÿg'lKN®ï< ½ji³mWÊ}*d±VÜ–[œbZL"L"–Œ >Oî|Å‘ÑMù÷÷7‚¿¯¿ÿ„g   B«ˆ�—->Oî|…3¿+ÿþþÙ÷õG·÷×SÅy L,~ÆoÙáß”+ï>žÎGÎwrß QÁâ´ÒZk±çZ~Æo™=ÎßÛS®ç{ú[¹h},ÎþXNû§Ü†{ßVXÛ“Š@)ÏÞÁ9q&¡wn}Nò½ó5Gë;ûÃâG>§éó|$ Àˆí}Ìø¯#߸þ›‚¥ç‹µ$J*Èà@)½…@ñðe}Ò;?ËFñu¾5_ó%qzßÛßàXr>sØó¦¹óöB߯×*ß@xÕ?¡!·�‘ò°8Þæ3qJMžìœCyäžO~çgÙ(¾Î¯>sâϯ>–å€öý1çû•gæ_Â�1nyµ?j¾µðKï¿]¨tløþþ‹P YÉàÐw.ì~ ŒÏgŒR¸ý�T6© 0›_|L}_Lû0³{,–Þ¯ãà=Xèüµóýýâ”r²ÿÌÿ¸åóîK|+©Ü¸<Îo|–ÙüâCO.ÜטqŸO–o\¿Ÿ^� <>M¹Y �"æ A?¤õT|P½?1Jå§á8ü(2¿øPûÇáKùzÙ>]õûýC (ãØÖ'L¹½°c^`ããý­„ÝÇšŸ¸üf*™³•1ž¿ûq†ó§þ‚¿íïó/kæþÉØ¿á™ù:§G«ü‹qø´èx5¡‡Óhpˆqó'óßó‹Ð `÷¥üK«ôwûºŸÝßöá÷õÓgÍùðWPx¬aõ pâç‹E~Çä!ÉÆ�¼Í2ŸûKážþ'ø¶ëgí…ûü9· DÂgÕqø pàG GyõX ‚ë!GþËo(…7öùx)‡?*¾±ŠnòýëÈ?÷9LúM®?H÷_,_sß_­;eûXAô|pxˆˆP ÏDp*Pò³ß ÜØç Sõ‡qôîƒøm>©Ù?@¤¸¿ÿ’ûO…®_Hù+Õþ½€ÊçÉ'þ&dî) Öý²}”ÿq õêgü!¸ñ5o<_û;Ÿùí|/‰›ýkŽúOyþ|ÿïÜwýzT}O¸em_žÏ”F ‘@>¹~ãk®ß´¿ã‰_÷—�­ñÇ£ýÿg‘8}Ò_ói>Í÷ÿÎ}ׯGÕw°n™íç~ù±ó%¥óï-ޤýŠÇ~_o‡`¸ÿŸÊ¯öŸ:•ËB%¿öst»®:Òøvy̱Ï_—ï�Ln5HìýžÏuTÌ«ßÎ/Ÿï¨üzÿ¡Ô̧uÏÏýuPåö‡í×í¿cÚ~HÛH…8¸U°ˆôþçÄÏôÃo€öÛùÉŸ<Ü?*ÿ¨¿Zj~é4Båöo}kÙ/¶}ª_NZÃí‚VåwÜã·@ûí|.Q4Üåõ×Âl~í †µ|Þª¿Ï×ðÝÐ|;%ü. ¢üŽŸêÅo€ö»ý!þÎQµů÷×Â<¿ö¯aµÊݪßråßý�4ßN‚ߥ ¢üî/ÚΓßï1–< jÿŠ_i~Ó¿Ô蹞òÐaå‹3ìñ%-5°ßÊoÊ0Î|Êþœo~¿¿r'ʧãŒ3&ãL´ßUä³ü¦?²Ðrž¸�…ë*ßX$8å¶_¿¬Eˆ/Ésr¦#û׿SÜo‡¬>>ÆÆ@ùÍv®äo"¡ãºS¢'ûS¾±$â {ü°JŽ”«�(ö~߯áÏùªçsˆiåDïC?g>ª€Kù� ãèâþ)ÿ'�¢ e¾4žÏÞïù™lþ”‡Á|P½@NÞ…šþa�ó( Î L÷§æ{>Â9öù+察\ýj=cç7œ^ÜãÏ8©ùõV¢ˆÉõ|ÀãInÈúsî9 Àû| •VÂøÜ}~Ÿ[_üÌ_‹?ákâÝþXêòópÉðwç/ÀÄßèÐw bL±Ó_áú÷b ÏøÌ>€ wù/û[ X÷ $âçysWý¿9„)Ç‹}×É fØëwŸÞþÃÅŸò“èêÛói%Äg„Ôu‰§8ÿ—ãî>,0ÆnŸ.›¹_ñ1ã.ÿÇœ( þŽ�IYôÀ¿?nŸoŸûœ€ÿlÞ—ù³ûW6ûß“_—óà;ßïÍÇwù<ãÿ»þ7ç£Í‡Âàú èΧOηÿSùÜs\˧úß™jóaåûÏÇû¯€ç|¿3Ë—ù¬0üùzÿöb³ÿ­ùûüÉýûê÷üwÀ<ßÓ;€ÎghŒÄïëÏfÿ»òë|¾ÿ÷ü‹ÿšœo¿~>?é_åóˆÿzñ;ûóž¯ýÜÿ¶|¨ßG@ÿú}�ÿbßùt;øóçû‡'¿øüe>úß–¯Ÿû}�ÿbû|¿' |Ÿ¯1DîìÏoùböÿ>_Ï·¯ÿ-çÛëâñùtøÏ§ÿ6²ýùƒoíÏG><ý¿Ï×óÇ~åÿmçŒV† ¸+¥nûÔüÿ×6TCq4j®Â*¹yVÒ ‡€ñˆ+ô·•æ°¡´óß­³Î­¿Všo0¸¿õ+ìïõ¯´?Ãýñœÿ)öù�ó©5~þ@܇÷õCžØ×‡ý-F0€9:þ>`>奜™÷aê‡<â¯õ û[@ì»Pî׿ –×h>TÿÃózy7"ð¿¶v4_N¨ŸÖ·u2EÏ‚5™$I’$I’$I’$I’¤~îwHë× P9_.³ß¼ Un¿'û]{S—¾· æ©ý<Zße yóZSÿº»Þ#ùu€VÄËœ_ýØÞe OóÈÛ¶ ÿ¨/p>òvóp?Ëâ‘þÿžÞ=ÌÐ}Nó|>¿öý­~ÎkM¸ÿŸ½‡ò4ÿàO¼(ç›èµ,ÜÿßõöXžæ4/ðá<Ì/x“‡û[ì_ï{äÝßè ¯ÁüÝú›øƒ¼Æü'.;¡ _â����IEND®B`‚IMAGE 289 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE¥¥¥ccc½½½{{{c1¥R)B!���ççç΄9ï¥ZÆs9Üܶ���tRNS�@æØf���«IDATxÚå’AÃ0uÁÿÿ¿e"šÊ\{)Œ4ã5Šrüm)�žçÙp º„×VÀ Â¡· û'� ªÉ£‹^ËOrÖ·°0d:Ø0O¡¸(EÑh<¨0`º¹Áa!˜<Þ¸¹sðçÇ%W[ ræ4ÿLH®¹«´ŠßäˆÙ’W‘#•ËÞñ!¸º†ÆÝ“VÇ…$´¹IÏKh9't?b ?®7iÂC†#-¢����IEND®B`‚IMAGE 291 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE½½½ccc¥¥¥{{{c1¥R)B!���ççç΄9ï¥ZÆs9¾)/D���tRNS�@æØf���­IDATxÚÝ’Û 1Ýîñˆæÿÿ·1))!X(}«Â*ÌÄ\Xù󸮊Àî‚§@T,•^µÜ¡Hf¹ÂxäëlÉ9=Nm-yƽ ¤Šˆ@&<bêÐ:í¼âºo cEx8¢óÌýí:¿Þ¼5ÝÍ:W¶ðü,¼®DrÎzˆxȆÉqÅ#?r+'Xr±r‚“ £â³QÓšgGÿY%œ³¾~'›Ó3äË~����IEND®B`‚IMAGE 267 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE¥¥¥ccc{{{ï¥Z��½���B!œœœc1½½½¥R)΄9Æs9„B!S¾ëë���tRNS�@æØf���IDATxÚåÑ1Ã0 CQ¥ª ‚’ïÝ*î*ÇK·r2ð´Øþw�xêbu?\ð÷¾ÜìºÚ.,`7xµç×F½Ù�@‰ˆàjzŒð°P†T¢ï˜Y=mÊ[ ’™ÑöüŠ2Þq’f’§µ ֋꿜Ú€ª¾Ä9ìi§N;À|$¸g?ß)Ò¼RtQ����IEND®B`‚IMAGE 261 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE¥¥¥ccc{{{ï¥Z��½���B!œœœc1½½½¥R)΄9Æs9„B!S¾ëë���tRNS�@æØf���‰IDATxÚå‘1Ã0 ™¨"Ëþÿw«ÈfÙK·Þzjþ’:ùm1½ì³õp­m›Áã¯EÁt/}ëŒ09ÔPéÃPJßÃîÇÁ,P.Eï‘~‰SRO̰„z ´f½\ºúBÜxO¯ ']Ú¾±i8vœ<¨ÃÇ>a‚ßò¢»så¼ýó����IEND®B`‚IMAGE 298 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEzzzb2bbbÆr:ξΆ:¦¦¦¾¾¾î¦ZæÖö¦R*B"†þæ"""tÅœ���tRNS�@æØf���¨IDATxÚÝŽË Ã0 ½ÑbX¢ÐÿÿÛ® ¦4qÜKOáG<sHû3¶m[o3ñføÌY}\RÒ*H:–A• `Ç*H'·A(2œtõI ð»B½¼®A„­FRçÉïö­šò=ð#ˆ¨ÝïÖ躨­ —èÄÁ&ð€¡’WïAzHI“ ¼#/Þøú{øÎyP‡‹úhSo^ÇÜ/fb”hK|/Ú/y#”a¯ë����IEND®B`‚IMAGE 295 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEzzzbbb¦¦¦¾¾¾b2¦R*î¦Z†Ær:ξþæΆ:"""B"´»»ù���tRNS�@æØf���¨IDATxÚÕÌ1Ã0 CQ¥` Puÿã–n/–Ó­@éAðý׎ã¸ßûÐsö*àI¬}‚âÅ Û܃µàÄ8­J¤ô$½\$™+ðÑ“ÎK?ÕÍÕ¡‘ pw!==ÃÖ=PLe$™ÑŒD¼QÀó’Ñt=”ž@ô=$‚dF7SGl:0®Dh-ø\å¶O`ûnÑŠ(õia?Ý Ê7·q����IEND®B`‚IMAGE 267 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEξbbbB#¦R*–J"¡¡¡b2î¦ZΆ:¾zzz¾¾¾Ær:†B"3½(²���tRNS�@æØf���ŒIDATxÚ½“1Ã@Á€áÿ?78=ëHQ²Å53ª“¿ï8îøñü® ðÀËË z´q¡yAK·€¤W•ê*dwæðy· 9BvVÚ"ˆ‡wU–,3 "Æ É5`˜y4T§â›€·0†ðáD0ÄPµ€‘2·S… 7ÜpR<œ ×~ð[_€Ñ<jD'‹����IEND®B`‚IMAGE 266 ./arch/player/class/Warrior/Dwarf/mountain_dwarf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEξbbbB#¦R*–J"¡¡¡b2î¦ZΆ:¾zzz¾¾¾Ær:†B"3½(²���tRNS�@æØf���‹IDATxÚÍ11á´Èþÿsƒu5\‘™ÆÅŒÖ–å߸®'½¿[Ú}‚ä N1ùZ˜ƒ5/h*¦7¤j„IŸM°Š£3Ð\±VE™‘ýG™Û)¤¤»Ïž5Ò`a>ªd?Á;`7¡�ÈvAU±z7 (¿7Ê·¶ÊË`Ï| ù9‡ž[S©gÑ����IEND®B`‚IMAGE 330 ./arch/ground/Weather/mountain_foilage.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿ�ÿ„ô„�ŠŠ�À�¿¿¿­æ:²"���tRNS�@æØf���æIDATÁ1r#!�À†-rl96_ÙÅ8g´šÿ庡<9úÑË (‹² ¹޾¢ %r7�7¾J4€6 D‚9ÕÇó…4àÁ¨À5©r—ì@P—¼ŽdN$+õˆä ʵ¹ÿEy5Ô¯…÷}~2wBË¿ºf-‘ãÆæXý}æ½AC w*{BÀm\DÅœùLdGI(ï:'G‡ã•h4`Üh@Û0X{¼Á8õ�%Às“&Õ õèÄPÉ�AÏwwöÑÁZ¼®ŸõZ Öwdæ…ÝÀˆßÌ ÈÌÌ›ÿ§)'7®����IEND®B`‚IMAGE 631 ./arch/weapon/artifact/mournblade.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTE÷µÖ{{{ŒRœ���1))1)1c1{µ{Æ911„!Æ„s„919ŒZ”9)1B19B9BJ9BœŒœÆkBZ�µ„!­„JœJBR19„kŒ!!!„„„Œ1µŒ9¥ccckJsŒZœŒc”œk­œ{¥)1B)B„1œkBsB�”kRkkkks�½ss{{½{ÆB!B)!!{Î)!)„½B999�„1�J„1¥)�k„RŒ„cŒRRZ1!)„sŒ„{{„{Œc�­Œ)µŒ)½c�µŒ1½c){ŒBœŒJ¥B�scZkB�„ŒcŒk�¥Œk”Œs”Œ{ŒŒ„”ŒŒŒ”Bµ”Zœ”Z¥”cœ”kœ”sœ”{œ””œœZ­œc­k�Æk”œ„œk„¥s­k1{k9sVe“ý���tRNS�@æØf���üIDATx^µÎÅnÄ@DÑi2Ã03†™™™™éÿ?"êŽWñ”7Qj{®ž^ìOó¹Å ‡ ñžY+•ª>v{ýñ’˜ÐãçÉeRM ÷Ï’9{pNïßr«öa¸hܵ:… ú»·­ÎÒqÍ>E¯?Æ58§7Í|Ýí­�Ùz3Oݯ àfeÿ¹Méçog,ðùÊS;‹ÝÙ,_Íu÷v¹„p!øôVù Ó}B+†µs¤g^½þÎŒIËšÕõ_HFÇ6¤£€½ o‹ 4Y¤Ó&r–’Á@HišºáL »2Y°0+ÿ)eHàAÓ' ÒñÔoÿ¸o¼”ØÁ\ßÑ����IEND®B`‚IMAGE 227 ./arch/monster/animal/mouse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���aaaâââÿ�ÿ@@@ ‚Ê(���tRNS�@æØf���yIDATxÚíKƒ0Ĩ§‚ûßæ U>({õiìˆÀöç­ì7kݺ¥s×4÷S`–E @�A=„pÃà±42�}€>GÎÆÉtß8„‹$IãÛ½<È bøUß¶½f"­[p¿/Êut~Eô `#³rÔþeœÇ.Cœw®����IEND®B`‚IMAGE 230 ./arch/monster/animal/mouse.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���aaaâââÿ�ÿ@@@ ‚Ê(���tRNS�@æØf���|IDATxÚíA „0cõ¢ÿÿ±ô4¢1H¼,ìaë2U!šöç ¬áMÔ&¼)¦Í½€É= Æb @C€ !ðÒ�* À5@Ë–³q2—ÿ@lÂE’¤ñçwy ƒŠî©>5hk‰´>ƒ–}”¤^;…õ`#óä¨ý±Ò€=fd¶����IEND®B`‚IMAGE 161 ./arch/monster/animal/mouse_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-ðæŒ¥r"i���tRNS�@æØf���CIDATx^µÁ €0ÃXòâö ¨³Áu9 UÙ ~YÎ#ÛB0¯„q9•£$‡‹îj£ÀŸìyj þbaJYæÅ:Ÿ'cµJÆÔ����IEND®B`‚IMAGE 238 ./arch/monster/misc/mudman.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÚ¥  R-���\Ýk���tRNS�@æØf���IDATWc` 0CšY`ʆak9``cØûa aö(öÚé9@wåÔ¨½€ Þ¼òÒµ Æ­éaÛA ~Ó«é1€ fóYiw€ ²U6‘/uæ0ƒ9t*X†qfYD$."”ë�Q; "ÂY:¢KuZj ˜q}ÛÞ5`F…Ó2�/2)vÍ«É����IEND®B`‚IMAGE 234 ./arch/monster/misc/mudman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÚ¥  R-���\Ýk���tRNS�@æØf���ŒIDATxÚÕ‘Á Ã0 ÄLrÿ §AÄÐ�åCëpÒYëÿè®# ê܈fAQ4Í"ð\…\‰lÔZÆÓ3o´¤÷z*hëI_z B8³ÔÖ‚în9ñ*]OãWÞãÎþ"Ž"`ã'… Wr„Ø`±_¼.=Rëù�!¶òùåæ5����IEND®B`‚IMAGE 490 ./arch/monster/animal/mushman1.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ(%$x���iTXtComment�����Created with GIMPd.e��AIDATXÃí–¿JÄ@Æ¿ ®Ô+ŽTÇÁuÉØ_•J¬îÄBͽƒ±k;+K+ßâì!Õ‘âÄ2„øglÜc]O“5Ùi6L†Ìo¾fCÌŒ.ÍAÇf,@m€h4âÎ�&žÇ*aL§Iõó²lW‰ç±¬~^–„h¬‚S·ï¤i+hÓ] «•ë�Ò¿XQ�=¹žP¾“ígœ¦Ôà;Éu@ˆ €«ú ±±Ó~®» :œM1>Åœ\¬žwªªw³\Æf@4ìžì1€/��p}|EqššB�¸½<�”dù:À�¶ý0z2 íá.v’,]£@Ï£¢Mø�I–ëþ¢îØúM°”ÿèœUøã;/m(@jr�ðÈ�<ÿÙ&´DÀX€ðt‚*Hª0����IEND®B`‚IMAGE 488 ./arch/monster/animal/mushman1.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚcÝyz���iTXtComment�����Created with GIMPd.e��?IDATXÃí–±JÃP†ÿ$\è¨J¦Rè–<€{§LâÔ4.}ÓIœÝœ|‹ºB¦’¡âB@‹·Ü^‹µÉ%¹gI8÷ÀÿÿnBÌŒ.ÃAÇa,@m€h4âÎ�&žÇ:a̧I÷‹²l׉ç±ì~Q–„hì‚Swî¤é(h×·@ «ë�2ÿ²\’Q�]\”grò§)5øÍr$¢àªù¿BìÁ´ßǛ뮋ÎgSŒ‡ƒšë³ùúý¨ªz«Ual”EÃñÕ ø��—÷§©ù%€§»�àñp@I–oƒ � àУwã�2^Ÿc'Éò-ôü0*Ú¸ ? Ér=_Ô½ö)–§·¤¸ÂßöS°*�~Q]ñ½wÀþY� `þ%À\¾/2óÇX����IEND®B`‚IMAGE 507 ./arch/monster/animal/mushman1.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ ã/Ìh���iTXtComment�����Created with GIMPd.e��RIDATXÃí–1KÃPÇ/Hxбf(™J¡[òœÍŠ.ý"H\ú \Ì&În.Šƒ8é§h·BèT:Tc(èsz%D±šÄ$·<¸wp¿ûßqï ¥ušAÍÖ�4�¹‚^OÕàÙ¶ªUWÊÒT0ŠT?N’jðl[éêÇI‚+eaŒ¼}× E[!6½:qºò,€ö?Îç¢T€lòlB}§Û¡Ï0ŠDa€ï$Ï‚¸R®�3íÿ)ÄÆ -‹gÓ\ކô»œÁˆÉÝÎ`„gYëøíÕªu½\Æ¥Í@jÐØ9(€~·óéþêøR„QTþÜ^œ¨~·#¦³Åâæþ‰ƒ½]�( íøÁKé�Ú&¡1-Þ¾P åøA\Å&|˜ÎYœwlý&XË¿t.Rª(@I ´ÓÉ?ÀëŸmÂæGÔ�4� À¿ø�@È8‹~ }����IEND®B`‚IMAGE 512 ./arch/monster/animal/mushman1.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ #Cîš���iTXtComment�����Created with GIMPd.e��WIDATXÃí–¿JÃP‡¿JvÔ %S)dKÀÙNÅ!Ô¥oàP©KŸÀ¥ÙÄÙÍEqNúÍVJ‡Šc ¼]zCˆhÿ$& ¹Ë…{œï÷;‡s¯RRäÒ(x•�%ÀÁ�ýFCв,Y¨MÃÈÌ-úqæë@˲¤R?Cš†‘Úíк+´¥ÛÞ•8®<  Îßf3‘)@2y2¡ºSåP»"5Ào–'Aš†±ôøù®[KÐ5M>t= ºt±ë5w€ÿr‹ãh™f²ZU‹ef=k4N¯] `×kßî®î…Ù7!ÀóÝ €´ë51™Î#ˆ§×w.ÎÏ� c§ÝÿÜ ²KP§7þÈÓ~pàÈi÷E“ð `2(õ�ËCç@eŸ`•¸ÓFjý‘'7öç‌'ØX_ý³IXþˆJ€ ø÷�kÜ\ݾ["Ä����IEND®B`‚IMAGE 500 ./arch/monster/animal/mushman1.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ2.l0¡Ä���iTXtComment�����Created with GIMPd.e��KIDATXÃí–¿KÃ@Ç¿¬'³´™J [ó8·SqúGˆ 矑LJgÿ�Ýêäqê™J6¡AŸÓ•ãÔþ¸„fð<ÞKî}Þ÷Ž»cD„&ÍCÃæ�€5€Cj `Ô¨絩àUé^–ån©îeY"â¼² žíº+ªKÁÖݪ°Þ¹  âOó9«À,nT9µjL²ŒUX%¹ qþ`_o AD+}âûv»¤üþFµZ$gñrÔóß?X7§îlÓ÷€C_�ô{ù»Ë)K²¬þM�·×�@ý^‡¥yA� _^q~2\΀� Æâ­v�eω—æÅç/ ´c±ØÅIø�i^˜ñ…í9°·ÍÇJþ³‹˜iª€C�ïVÛìØ¿\Îb²ý—¹W±p�àß|oÇ#7Dê����IEND®B`‚IMAGE 505 ./arch/monster/animal/mushman1.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ ðU���iTXtComment�����Created with GIMPd.e��PIDATXÃí–±JÃP†¿Z u4K›©º5àÜNÅAtèCˆ ñ1šIqöt³“o‘¶K!t*Ý%8x\zË%B›&µÉ…Ã…{÷|ç?áä*¡ÌeQòª�*€Ü�çIi�}וRðmû`*XEª’ä¸ ô]WtõQ’àÛva¬¼}× E[¡vý tb³ò4€>_.ÕAÒÉÓ µO·Cïa«Â�Û$Oƒø¶ýœ˜ç™!Dd« ‡^«%Ú^‘z]¢·Ñf7ýCÇiìºÓ4•õ=xçw—Ði7ùŸoŸTLJÿ^ï¤Ónªùb%�ÑtÆõEos ÀYw|ìPËtu3P“qhi¢éÌ it:Æ$ü˜/Vfõ�Ÿyç@mŸàùb¥ÙT;‡²–ÿ( ˆ™`-ýéŸMÂêETT�À¿øª6ÂØŸÊ£³����IEND®B`‚IMAGE 507 ./arch/monster/animal/mushman1.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ9§ÆÀ‘���iTXtComment�����Created with GIMPd.e��RIDATXÃí–1KÃPÇ/htÔ%S)tK?€³ŠCÑÅ/à$‚ÆÅOÐÅ:‰³›“trê·Ht „L%Cı„H}N¯Ä(V›˜€ä–÷Žw¿ûßq‰RR¥iTl5@ °6€ÝéÈÊ�ú¦)+U g…© å©Þ‰ãr蛦TÕ;qLÏ0r« ­Ûw’·bÕ·@%NWžPþél& È&Ï&Twªêû¾È ðäYža$€žöÿbe ›Mžu}4"ÜÉkx;pvtµŒßN’Æ]Í ›Ô ±s:”�ÝvëÓýíÉû~ñCp} »í–ð‚P:Oìí~xÀ–5°_ Pæ>Œ5/_(аö¼ŒMøàaÖ?_wlü&Ø B °|)RªH`x-C‘N` l$¶ ë?¢ ¨þ=À;‘‹)'= ;����IEND®B`‚IMAGE 509 ./arch/monster/animal/mushman1.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ 7Kج ���iTXtComment�����Created with GIMPd.e��TIDATXÃí–¿JÃP‡¿J :Ö%S)tÑæœíTŠ.¾€“Ÿ ‹qg7'éÔ©o‘èRJ‡ˆc z]zKŒhÿ$& ¹Ë…s9ßùsO®R’çÒÈy�ÀÖ�V£!sh†ÌUS×SSAK’½Ù*Ð6 ©²w‚�S׫ m[w’´bÕ¿@ŽfPöád"RˆTgªj·=O$øMò8ˆ©ë!PŽÚ×…XY‚³j•÷ryé4ô}Ü~V÷·ßàúü~鿆»Ï¾?K­"ÆáUW4ëµoçO—Âö¼ô›àåá@6ë51O¥óúÆéñÑ—ï�¨´:ÖÇ&�¥uœN.î�„;°º¶;­Ž%²˜„s�ó`?nŸm;J›8ÆS¥È2[w`Ë…ü™( £ÁÒWþl/¢ �(�þ=À'£Ë…ÆîCl����IEND®B`‚IMAGE 193 ./arch/food/mushroom_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æç��ÿ)ŒR½½½���ÿÿÿs1���tRNS�@æØf���]IDATxÚÝ‘AÀ0à 8ÿÿòíÜpÞÜcLŠÄù'°är.¡cÒL¨�EÃóR_ P[™‹ÌøõÍH †wƒ[ây ]Âq‚É Eªj«Ø¿ çÚN8ßã«„8 ¹yù����IEND®B`‚IMAGE 206 ./arch/food/mushroom_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœï÷BBB���µ!!½½½Ökñwâ ���tRNS�@æØf���jIDATxÚå’K! ÅŠ‰ï墰læíGµ`eóâóŸ�D]%ôA!i aÖìò §¢ý™–7à7èÅnQ ¯Ü8ÞbÛŒ'4àeö7AVzLÄä»XÑ£ •ƒ¼è’GÃè¢}üqïã Áÿ¹ŸÌ¤����IEND®B`‚IMAGE 189 ./arch/food/mushroom_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æç��ÿ”ÿ½½½���Žõ;���tRNS�@æØf���\IDATxÚíAÄ@Ãâÿ¿¹ ­¶—™ÌÚptd×—e8qAÂ嶸yh@³ÐÀúQ•ÌRðŠ¥ão0loe`{%Æ>Á$JVâslN¢`&.)¶üÆÜLõ¡ò^Á¸����IEND®B`‚IMAGE 182 ./arch/spell/Golem/mystic_fist.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V R-ðæŒ®*���tRNS�@æØf���[IDATx^­Î±€0P-ÁÆi!M²7 N 7¥æÌ¡áÃËÄØVœÂÞx �ÁȬB6ZŸò¨DQg�fd‡!ÀI!è2³¯w†nð2¾Pž/'`#åuø\����IEND®B`‚IMAGE 181 ./arch/spell/Golem/mystic_fist.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-ðæŒ®*���tRNS�@æØf���ZIDATxÚíÁ �1ÃÎì?tU*ò¨’› þÚÄ÷p�ÿºª Z‡b«Ö© ½`ã­¡ê*ÚÌ!S› 9˜±ºåÞ’¸àÆ… „ÑëJô/8ZÊqäó�Jé¢äV5����IEND®B`‚IMAGE 181 ./arch/spell/Golem/mystic_fist.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-ðæŒ®*���tRNS�@æØf���ZIDATxÚíÁ �1ÃÎì?tU*ò¨’› þÚÄ÷°�ÿºª Z‡b«Ö© ½`ã­¡ê*ÚÌ!S› 9˜±ºåÞ’¸àÆ… „ÑëJô/8ZÊqäò�IH¢Ù»rð����IEND®B`‚IMAGE 252 ./arch/misc/naz_report.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE”ç÷���BB�Œ„)½µR÷çŒÞÖ{JB�{ssk¥œB8Þ„¥���tRNS�@æØf���‰IDATxÚÝ‘Û Ã0 C£I^“ýÿO%í ŽaôµÇI0±ð·G…ßð¹B\D$î 6èß°Rö³ Á!ùÚdޤ•€6Øu:¨�}´ ê!rpe§ÌüAíÿ Q·@ÌìB ¨ÐûÝ ÓͺM%îoS¡xÛ˜/pä&NÚÏy_ «’[í����IEND®B`‚IMAGE 557 ./arch/monster/undead/nazgul.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���´PLTEïÖ÷����)B�Bk�JsZ„ZŒ�!1���Bc�9Z���!9�R„JsR{��1J�9RcŒBc�)�JkJkÿÿÿR„�!�J{cŒc”c„�R{­­­JkcŒ1Jµ!!�!�)9ŒµÎ!k”!kœ)kŒ)k”1BR9„¥!)BZ9„­k”�9cBk�1R�)JÆçÿÖïÿ�Bs�$Ž£™���tRNS�@æØf��'IDATx^µÍE’[AEћşYÌjn3Ãþ÷åI¡’Fö©áÍxÅÿ! Ü’ànu/rkCüAF\79<ȃ\_HQGB[ÉÈ{bÞÔŒ]ùbëá·×ÆŠ­µVMzùûòiºÖéâînª2“qJ€|¢&E›£ÊTýª8ñ„%_X¶í´seÖø–SïóІIç6NšoéÙÁ= Piššnh<gqyW®íãggžá©ØmœË€..ZÕuÆYz*Î!BÈ ·¶ŽW¢$Á+ç6Ô¼%*O‚¶Ö.x!NåágiK^yCÜ÷<q5+zâÔ|Ÿ/V+^Ø5Ÿïk †þj¯Ðè=ï¹$c?¢ÿ¾m|~ïøŠæS<˜±åŸú`Ÿ‹òb����IEND®B`‚IMAGE 593 ./arch/monster/undead/nazgul.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÛPLTEïÖ÷�1J�Bc�Bk����Js��1R�9Z��!�)B�J{�R{�R„�ZŒ�!1BcJkJsRsR{ZŒ�!9ÿÿÿ��1BJ{�BZ�cœR„Z„�k¥Z”cœ�)JsRsZ„ZŒc”Jk!Jk!k”µµµÆ))9Z÷Ö÷�!)�99BJBR�RsR{�)J�9c��c”��!c„!cŒ�kœ!kœBsœB„œkµÞ��k­�1ZcŒc”y����tRNS�@æØf��$IDATx^µÎEr$ADQO,f®ff3kæþ'R¯K™½Óß¾°0Çßôˆä¬Ûp1=ç.ç3ý3â§ /*wåŽÏµnH^–eë<#ÿøé­ÔgyιEÜLå´=þ2ö¯ÛvWµ/ÅH†Ãa@(% ?vT„zé[QW53É1ƒ»00IEÓ>*«÷Õc"jÿ¸·0¿eL>³!>ÑH´Íý,uÍ𡽄Àeó@¬V1%nñˆ¸G3ÑZ¿Áü¦Þ†9®pfkŽ»\ ú u­›¨Z`1ȳg¨KsÇaèw6¯ƒcƒ'¥ ¤È}Ú²Eªñž×ŽH ŽAB"©4}00$‡zû®Ù@Áêz uGгÄ�Î9ô®çŠ›ÞKÛ@����IEND®B`‚IMAGE 378 ./arch/monster/humanoid/necro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��`�`€�€À��@@@ � À @òÄM ÑÔc���tRNS�@æØf�� IDATxÚ‘rƒ0 m#Núÿ‹»‘ŒÆÓδ‚€¢]chÿ,³øËì˜öwš}ó§p,asÎ2à‡欚ѧ&gv°ä0V3*Ì}r÷\>v¿<LpÝ H.Mîr‹þñ„0‚Ý Î]fư D°= džψ—‰ ù…Ý{£¸À9”˜ ¥p³¤„ZÞÇÝ_Ü Šš·Õ»¸AS0"2¿^¨îN×oS ^"= Ó è#RȦ`S¸ç“^¼‰vDÛŸïSÈvqµOÞ´8H*þ£°× n ïÚB”pâÍA>Îô»¼òù UðÃ`”²Úa¬a6­/A 3M´����IEND®B`‚IMAGE 387 ./arch/monster/humanoid/necro.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��`�`€�€À��@@@ � À @òÄM æL)œ���tRNS�@æØf��IDATxÚ‘‹nÃ@àåþÿ‹»‹ž«•ZòBžaŠý³2—=+Fæ¯ãXØnS>ý"^Nè»Iþâ Ü}¸Çá*q=>±CÄúÓ| ¸ÛªÍ«´‡Ï}Þ õ*í~±Ó\œÜV›*—O€LñdpeŠW!3}ß4ˆsäÑNŸôCÂÝÐK¢^ÚÔS¸y0t± Em©²!áâÈ-°¡ ùÖ=.òLåv ]“¼êºÜZÀ’o&—³ó+Ñ‚‘O’ cu€‡Zh(³…ܵol~ãon‰eçïûÔûä†áBÀæ? gäÙ`ðÔÖ-<ñá5‚ÞJzç…š�ª �™Œ.{óPÍŸë °ª @Dô����IEND®B`‚IMAGE 249 ./arch/spell/SpellBook/necromancer_book.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��7�8L�M444€…�¡§�¶½����ú?@���tRNS�@æØf���ŒIDATxÚ½ÓKƒ0 EтӋ÷¿â:}46 mÜ )G‚ðyÜ˜×æusKMÀ; ÒQ{öÑïàè�lŒ!e”›|^íbÿ‡¦s�ƒðß%°ô±�¨p  Q¸!0¶Rž¤€Ôòm‚`×L*/ÍÀ[.}ÔmÛZ Íï“¶–Xÿ7wõô… ¾Œ}����IEND®B`‚IMAGE 163 ./arch/traps/needle.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�����9��U��Ž��ª��ÿ��ÿ·G¢���tRNS�@æØf���9IDAT(Sc`ñ@PP°¦ �Œ)�€éc,AÓ€•RT÷òDZ’Ñø  Ô� šoÊj³~����IEND®B`‚IMAGE 433 ./arch/spell/MovingBall/negaball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ¶îûºòþ¶êø²êö²æôºîþ¨Ùæ®âï«Þì”ÀͺƞÍÜ¢Òà˜ÆÔ¶Â»±Ý���tRNS�@æØf��,IDATx^µSI‚à ³¼±eéÿ_;5 MÚ2Çñ ÉBNпն}µ¾µMÜÒH¦’¯=‡ò¾3ìblù c/G}B×JÔZmíÐ_cú–ÑaIYÕ̲ô¾3Â4‹À;†Œ#à òIÐõûw±MÀû²üoM@¬VîÞT€/¼yl%:“éÂ(Eº€è —¯¶UУ2ø—�Öè4Ñ”ÕO°5"jµ±ÌÃ]„y¸5Ù*hª­{ä1Ý?'HŽs­Dûº\²ü&�F/Zà�ÐF7à.p>•�8Ohjö[Z•Ì<?l».ä`¬FXIÀ½|Æ­49fä@›I>/¾îšxø±‹è|]GV-ÛŒÖ0’J÷çØÚµÞ¤ ôìèC?ÔLðû¬����IEND®B`‚IMAGE 412 ./arch/spell/MovingBall/negaball.222 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ¶îû²æôºòþ²êö¶êøºîþ˜ÆÓ®áð©Úè¡ÑÞ•ÂΑ¾Ì¦Öä›Ê׺ćî4���tRNS�@æØf��IDATx^u’WŽÄ0 CM5·´ûŸv׉’qÆþ x ‚aÔf뺅ŸÊü°ìs`©1KsÐ<ö$D80%hýˆuê /à8ŽM:À^5Ik� €éν,1Zr\ÞÌ0Ï%J¢ë[ MÑ ®{ý–¥Ð°`ì70—Éæ�ÜþçíΊÜåô°êD!˜ñ�˜Þ@ˆií2Æè'uÔ<ÀêID`cF¦rUåç÷TU²7N:�æ¥^Ý2¼-à™¡AÌ@¿*"Q8¢R"2Àhk+Yo Ä¥.á™&ÃËØô2ôòâyfÚÏü¬ˆ|™T‚‹�0ÈGq6A9<ÚHUS½O9ÿç0—B®ãD£õŠze����IEND®B`‚IMAGE 402 ./arch/spell/MovingBall/negaball.333 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿµêø¸îý²æõºòþ­áïœÊסÒÞ‘¾Ê‹¶Â¨Úè—ÃÏŠ²¾ºÆz¢®€¨¶…×gß���tRNS�@æØf�� IDATx^u“YvÄ é–Ø¼%÷?mlÁØxê“WZh›àX.”KC¥„;Ū ÄúªXåò¥¾ ìÒ§ðS³ a°E×òÄf]ØãGsx.‘¤]ÐJ•­}Äï^Sl3Oú *%™PÀQ%r0ün\:÷=ÞàõòŽÒ£&ß zN2„÷%6acšß2EÁM˜’ÞK–©ƒl჌YÈ[±úZŸKä+ê‹yGR¯6ß‚¢šf&a„AÞ„~®x¢ji‚�~°®ðú&WÖYLÀBé8‰#%ªØ§ñXG”‘T²ÙEz9tRü-ŠÿÜ÷—U¶. L`øFZÁ1áãÑý3����IEND®B`‚IMAGE 416 ./arch/spell/MovingBall/negaball.444 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿµêø¸îýªÝêºòþ²æô®âï£Ôà˜ÅҺƉ²¿ ÎÜœÊÖŒ¶Â€®¾’¾ËsC,‘���tRNS�@æØf��IDATx^}“Ù®ƒ0 D3c; Ðåÿ¿öÆ4 —T=HÀÑx%Á9øþ@)Ûㆠh&¯»ðBˆ3ç.lÖR]Ã2%’t¡=­,%ÌÿŒ”† DZ…b—„¸—³ú«5Üj¥§ÐiI)æQb¾ðg‚¾'$èªUá+å°÷Š"B¼å]˜‘+´*´f tµ~úKPVb¾ ˆ¹ T] BŽº@bI€äì+jr«BUÌ÷Ú "äÒ¡z¾×å<¥á×½ƒ¿…’ЇpNcv3P{½q>g‚]˵©R{B¹ ˆk…Ü.+ W.÷bLÝsižz´ÄŽøyU “äÛ1¬$AE•, •þó ½!‚°#•����IEND®B`‚IMAGE 342 ./arch/spell/Bolt/negabolt.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿºòþ²êö¶îú¶êúºîþ®âïªÞí²æò¶êöªÚç¦Úæ¦Öä¢Òß®Þì¢ÖâE$Ú���tRNS�@æØf���ÑIDATx^…“ÙnÅ CcÏYoÿÿkE"Õ¹õóaÛ0=5ƒ$ÜÊ:iÍI’Èô¨0^�Á\$¼”$ü �ìΦôYÕ¡Ôe‰l€`ú„Ød¢¯ðf!Û 2{x( (7€Øe 1&º‰nR1Ê&é˜5p´5ÝÊ&Js™õÝ)�rOÞ呂m8Í¢¶¬#+ÿ›Õn Hd¨º{™„lÃÀìIÙ¦ƒl‚—Êmê—6×ðL_»`Ú °-Íä�äçuÿ<€__䎚e[æ����IEND®B`‚IMAGE 347 ./arch/spell/Bolt/negabolt.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ´èö¸îýºòþ­àî¥Õ⩵›ÉÕŠ´¾¼Év›§RjnFdp""&22j†ŽâŠ|l���tRNS�@æØf���ÖIDATx^u‘IbÄ éE€íÉòÿ׿{ôµd•L—m®Ù^³VJ«°7=5èÝ@¥MÜœ3?`[úåâB�Û7'µåO–3–‚̬gH“!±D/cNä׈z\Û$ô¶x¤à£GŸ^8  ÄhsÄ-sCr[âs ¬˜ŽãÍMM/ÐÂÙ€(‹¨“àoEb]ç°ÀcHÆpF,1Ž]C$ÿèCƒ¨}à_ß59£GòùÊŠ™îÌ[@ ±h¸Eþ{½ÊœžëϲÊÛä‹(6üí&Søº×����IEND®B`‚IMAGE 315 ./arch/spell/Bolt/negabolt.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ¶îú¶êúºîþºòþ²æó²êöªÞê¦Öæ¶êö®âî®âòªÚê¦Öâ®Þì¦Úæ¿ 2s���tRNS�@æØf���¶IDATx^íËN1CãW’y´åÿ¿”Dt¨k8»c[wqËãè¹o÷—úA©.¹UâÛe_ǘuƒÇüì++Æö!3°]×Ab’Ž­7g X؉½—QDZ�*KŽ%ß ; •üÀ¯‚^_X~в°/.»”í$ÖɼõÏ…5ýh‘܆Ÿy &' ;ÆÔNXކ¯¨ŒO‡låB¯à Ö„ç’ÞV›§Æ?Ë����IEND®B`‚IMAGE 367 ./arch/spell/Bolt/negabolt.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ¸îýºòþµêø±åòªÞêœÌÙ¢Ò߆®¹’¾Ëy «r–Ÿ§Øå^^^bbbjŠ–‹ã¬���tRNS�@æØf���êIDATx^uÑÙn1ÐØ@¶YÚÿÿÚ*•RÄ%õó‘gˆ‹­@û(ÿÄ~C­í>˜í’yb[@û TØ¥@SЙÁwSlBh›É\Þa€ˆhË_1 IŒ<¤—8ˆ¡„‹¯u*�³|ŸJºXü —<«bw`IH¨˜ ³¿ ‚FÖPÑA2 -!ÀÁŽŸ T¢»‚ÈÃU‘§‹¿yÞ~Œ2|ð.¶CíWÍÖ$óÓL5¯0ŠÖ bÁþK¸pà¶Úda€ÄÝà«”CEX6ƒQPön%çêUµw]â}Ë)÷u—»)`_ï¸ô Í#üzñ����IEND®B`‚IMAGE 342 ./arch/spell/Bolt/negabolt.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ®âï§Úæ¥Öã¢ÒßžÎÚ²êöºòþ¶îúºîþ®æò®ÞîªÞê¶êú¶êö²æöãt~ø���tRNS�@æØf���ÑIDATxÚ}“ínÅ0CK?ÛkiÞÿi7--ºÒœù/'²°|êDü\—‰šâ—ÈI}c €‡rÔ…ôÀž1î> Ø\}E<ú,4ž�^“f�†  ¾þ$+Fš.{¦ôo#[« käÒkàc­¸Í¤å ¼Ü *aýP—«÷ LÖ½W¶Åé,�iï2Å‘¡`n`�xÚ<­T«¸pµÚ6'§³~ÌrrYè²@çp€Ô½‡ž÷Óß�4‚ãn˜YÇ÷ Ú9oè§!����IEND®B`‚IMAGE 375 ./arch/spell/Bolt/negabolt.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿ£Óᔿˋ´Àƒ«¹nŽ–hŠšR~’­áî²æó¸îüÌÙºòþ§ÚèyªµêøaÐn ���tRNS�@æØf���òIDATxÚ}’ÑrÄ EWMf G,ÿÿµm1ŠI÷>ä!çBȅ׳ÞUI]ÿЦôÉpÊà<òïìÃ`Ÿ9ðÔ?ëär£%+WÚñ‘ÅIC ¯âižcy#nZöò(Ós­— mmÐþê¬ÿBøB¥u4ï#Ö>)™1¹!ë…fcüû?7cÔÓ»i );£м]ÈHÁÌ%«K!VU®|Ïßaý¥¹/ (ûyв.`¿€ªiß`Tä=¿¨…õ´µÜ 0ó{8Â+`£?ònð¹âq…QW€$ÌæˆqHw ™<@Z­Mòì x>Þ_¯gý�ãù mÛÿ����IEND®B`‚IMAGE 194 ./arch/spell/Bolt/negabolt.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿÿÿºñÿ���nQæR���tRNS�@æØf���gIDATxÚå‘1À0±ÿÿèJ¤p¨:u‹'Θ(!qš¤ïvª±%M™8Ž´­ÔBtËK`ÂsÖ®Êï Êš—»Â£´=sôkk`-•¥§±µ "‡éËyÕj����IEND®B`‚IMAGE 359 ./arch/spell/Bolt/negabolt.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÿÿÿžÏÛŽ·Ä‡°¼€§²t– fffbbb©Ûè±åò^^^´ê÷ºòþjŠ”–Ãиîý]���tRNS�@æØf���âIDATxÚu’Ñ„ EŬ þÿk7³h'ð<Xg.×�bØÊèêñÛÚ:Œª"i NŒ¹Ÿg± á�@¸Æ¹2Dº €!\_¡ 8r¼¤# Û ô¶¥§‚Ó*ßÂZ2}a˜ +ÚmPÍ#ˆÝÐKYHÄî¥ÇIh >¤gÉËP6qCL¢A}·1š¥öŠ€7ûÚˆïÊ›•xÏIž×Ò[ƒÉky ö^ó*>)“'¼*=!Ƹ%Õ#±V¿%¢Þì¬ÚöoÌ_ÇEIÙ* cßKÎW‡±~òN ¡•€G¶����IEND®B`‚IMAGE 202 ./arch/monster/animal/Neko/neko.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���oIDATxÚÕ’A À 3ûÿG7†@…ƽôÒ«¢ãO@mF¹¼€ä¯(h›¹ƒ eñ¬£ ”�î ¤¡ˆLŽÓ²=yNo°9 Þ@ /2‰F!#î>£QÎ"h¡Šg ¶ð V>ɸeñÜ[©����IEND®B`‚IMAGE 204 ./arch/monster/animal/Neko/neko.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���qIDATW•Ê1€ Ð’è \ô4¸8389ë�§ÁD™DNiüÿ³k—¾4~Ei#Ø=ÂéÑœ%”ˆ•°ÌŒ¶$iIQùͶ30Ár\¬¸ª”±bä  9ßô… £^péºlâFgð1߯  “?í°����IEND®B`‚IMAGE 203 ./arch/monster/animal/Neko/neko.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���pIDATxÚÕQÀ Cû¼ÿ¡7É>\ùÞÀľTÔŸ°pO��'ÀºEÓ‹3¡n‚"ì»cD �¢�”—Ð~`Þ`•FÀ¢Óx÷mà#{Û�àB§ì¸í'¢¿ˆ h@#0ØFQPõI]· `õ°’����IEND®B`‚IMAGE 199 ./arch/monster/animal/Neko/neko.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���lIDATxÚÕ’Q À C—ÞÿÐkã…ÊûÙÏ UÐ<B¥^'Iò@È‹�1 HqBd‰\à�„MhÂoôSßÈ}F?Ì.˜(¿_j–0}e-Å´€5 3¶ó4@÷<À�Ûøéª~©{T]Î����IEND®B`‚IMAGE 197 ./arch/monster/animal/Neko/neko.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���jIDATxÚÕ‘A À üÿÑŰPh×xðÒ×ÓhLx €ð$€ )[X„€èM|>X8££ÆgÂ8ÎyPÒ“` :‰%€jh€"¸mÞµR�Ìq­�‹ÄÔõV󛮙듺�^ÞS%U=����IEND®B`‚IMAGE 196 ./arch/monster/animal/Neko/neko.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���iIDATxÚÕÐA 1 CQ?ÝÿÐÞt Œ(í¦5(ô±Í? { V ÐIzÄŽ¾!_"|a„˜þLæë¾]NÿFl\ìí 8É*¬Î 7f`s­…yxµÿ°¡¥wÍ0?9vzWæ‰J÷����IEND®B`‚IMAGE 202 ./arch/monster/animal/Neko/neko.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���oIDATxÚÕ‘Q À0CûrÿC¦£ tìkíëøS€Ÿ�WÈ�’²„ƒ<AúHÞJ0·ˆ6‹@Ø“Êrõ`8¸DšYú›°Û'`Ð+ ´Kê,-áþ6X ¬!·�¬O Ò)ò5`æ'ã�€gWóû›����IEND®B`‚IMAGE 198 ./arch/monster/animal/Neko/neko.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���kIDATxÚÕÒK €@ Q«ïh¡DFÒ7pò&ñøS€GÁ§: IoaÐ+Jž„M´lÔ]õ6ò³\¯yOé0Ä´)C^ñ8_€`U„fúܼÞ�Ô¦©ÿµéÆ 3S·����IEND®B`‚IMAGE 215 ./arch/misc/neko_kago.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÿÀË���ÿ¥�ihv(���tRNS�@æØf���yIDATxÚÝ’A €0 Íæÿ–NJ1†´gñ´Ã.„^¿CÒ>73 K}™Ü½S´ ”"`@6f±¼3䀱€Š*$ã,ÀëFJœìɺˆªy,î0jߌÅB‚€¿�Ë€§æ1гâ®C›%Ö[âÀŸäx&’×¾Z3����IEND®B`‚IMAGE 246 ./arch/monster/undead/nightmare.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEç½÷)��{¥µ���ï��ÿ��:‡Ð<���tRNS�@æØf���ŒIDATxÚ•“„ C=êäÿÿøŒáòÜj8)AgÚÕºÝÜG eó¿¤rcPEñPÆàfÝ'xJÝ©ªpxàâ`µc§š‚å )<cS¨Õ•âðiꡞ²B×Ed°”ýįþÔg{µ7Ø…}˜Ÿ¦s¦A·ðMZ× zfÓ[|fÑú¿ù_u ªÛs' ����IEND®B`‚IMAGE 219 ./arch/monster/undead/nightmare.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEç½÷¥���ÿ��„¯rì���tRNS�@æØf���}IDATxÚ“€ DÿÿŸ›:íA.ÑÚ8ò¦xŽœð*W%‰’@?êŽîΨP5Ð5ª¥= ¨ŸÕÒË?:žðí{uÓ¬?©{^܇ Åª³hfZ±wRíÎ'J3]NµDY¬ïżr^bÿú®9tlöüÒw����IEND®B`‚IMAGE 229 ./arch/weapon/sword/nineringsword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���§��@@@Û��tj�~t�Ÿ’�½­�¡¡¡ààà���Ø\¦ù���tRNS�@æØf���rIDATxÚÅAÀ QªâüÿÁMH¯¬åD2³l05pÀ»Fâ] "¢æ¬-$¯Æ\ȼ.xÐÜæ³Nè¼îÏ’y°¡òDÕŸÆÇ…¡¸Aï(î]4oÊÀ›cF ò¹Ô˜2%€^V|¸‘‚î����IEND®B`‚IMAGE 251 ./arch/player/class/Thief/ninja.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���JJJ!!!»’Óg���tRNS�@æØf���—IDATxÚÅ“A Ã0Ä,Íæÿ_.˜Æ‡Ä›B)t¾H ël<þ Ï\Í'o…ÉQZ!�’š‡*„»Hù–6ÕhUD\ŒSˆ*næ�<ƒ°¹)ÉÄ%3»›”«ïÜ•f_IׄݘØoÁ*cº5Hm º*LÚÿdz¦Q'ÁôüAXËé„c}ÛîQèê:.¨1–¨ÿQáh3����IEND®B`‚IMAGE 228 ./arch/player/class/Thief/ninja.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���JJJ “íÄ���tRNS�@æØf���ƒIDATxÚÅ’1 1ÄFšûÿ›CàœkÖnBÈ´±ÎôÌÕ~-pâ([¡´=q6$EÅCÐ[ LÆ@¦� ¾Ø©¡u c©Ÿm:ᦎ<ð<0ò%X³°eËiAÝ ”;ò®Â,€æ(¬¨=òÀ5pŸóÍ ‚9î‚üh/ƒË¹0–ä/����IEND®B`‚IMAGE 270 ./arch/player/class/Thief/ninja.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿ������B!c1œœœ)R)¦Ç“Û���tRNS�@æØf���•IDATxÚÅ“A! ±ƒ¡Ûöÿïm²êŒzªOHžÄ‘ÚÞO è¾L%W>ØÂ'D‰6‚ŒH`>6@*xí��ª9Ë®�"Ô…×{0n‚$:V, ê$´œá®V½æL`íó»§l{@å�â°§ ͈§cëé[àª=ûˆqúÍ)z´Ÿõ¡ ?ò•b×����IEND®B`‚IMAGE 269 ./arch/player/class/Thief/ninja.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ������B!c1œœœ)R)�!¥Ù€U���tRNS�@æØf���ŽIDATxÚÅ‘IÃ0 =d¤4ÝþÿÜí5fŽ“BÿAÎ l±åB1—û·`¿­Ø@¬ È’½@ëX rõÌï‹#ƒ©:x<OY�ãUÅÆ™0š¯¢Ï Õ÷Lûb¢¤ðO€¬±¦Õ± ÔDJÂ[”k$ØÜ#r\ ÝWdè¬!ù�âPVvûµ����IEND®B`‚IMAGE 392 ./arch/player/class/Thief/ninja.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEÿÿÿ!!!JJJ)))RRRBBB111ZZZ999kkkR)¥c9sss{J)ccc„„„ŒR÷÷÷���{{{R9!ÿ­ZÔ¦$���tRNS�@æØf���ëIDATx^Í‘9rÃ@ ÑÀÞËS’ÿ¿ÔK¹Ìr‘+Ž<’éê ÉÌ®ú7X]¼˜¦ä¯€ñþy¿¦¨)¿*”ÕùõÄw,D¥3NTª ßΉ€wʺâ×ä4÷µhk¹8§åГ—qd-Àí}ƹƒi©uáIÜfp0«Uà @ä(XjPÿhÀ‰‚µ>ï¸m¤8šz_¨ãðŒm†NoÍ0ÄBF3l�"NÏc²)Ez ™Ô�!*ÝÞHÍ BÖ®Ÿ÷ÑïÃþ^H]`†Òíw/¤Òé ç|,zùÇùK›´Ð˜����IEND®B`‚IMAGE 391 ./arch/player/class/Thief/ninja.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEÿÿÿ!!!111JJJ999RRRkkk)))BBBZZZccc¥c9sss„„„R)ŒR÷÷÷ÿ­Z���R9!{{{;®p���tRNS�@æØf���íIDATx^ÍŽGnÄ0§'2JþÿSC–4µ¾ºžªÐú“í$hÀ9¥ÜOž£xGé.4Ï1´Ö2÷mÛãíñ;hí LMô£Ú´5ÉÍÔ ÍÈm€f˜¥,À|ƒþø€Oôx®è¥Wט‚"kï”=ÜµÒ @¥PnŸ;Üi… ‡à¶+Ÿ<Ô�¸×UÀ;Ì®<3Nl}'áo-ÉIKavÖARfc½ðÙM®‚œ`¢Ë�Z¿E‚ÆràÇ“ ê:�båÇ®¡®¼‚^-$)4‚ô³ Å+[±|±è-����IEND®B`‚IMAGE 279 ./arch/player/class/Thief/ninja.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿçÆ÷���c1ÆÆÆ1k1!”J)�J!��!o±¬���tRNS�@æØf���•IDATxÚ½“AÃ@WoÒ$[úÿß6ZõÈ¡j}õ`€ö+éT `«òk�IôX–†‘l`m½N¦|¬³½! ØvMû¸òǶ# Ø\Ï3¹;kÑšP H³^í`[Ñ®î`òMR¹lÌÿL•OïÜp”&n©Ð=`S o¾aH¡xµÿë LjFR^º����IEND®B`‚IMAGE 272 ./arch/player/class/Thief/ninja.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ���k1!”J)c1ÆÆÆ1�J!��öà|ù���tRNS�@æØf���”IDATxÚ½Ž1Ã0 Ät¼ÔIãúÿß­d´Ô¡E¹x !_ü˜í~5Y;ÀÖ7D«#›õˆgìÑ8YɶÂ6œ±‚¾KÂÆÄ’×0`Åš‡°‘›"£s}’yMÜ,e°­‘øáFŠ,ÀB¹k z\ Gåi8 -a¢ „£(¢&²£DPûI廤^ñwÞŽÍkþí2����IEND®B`‚IMAGE 401 ./arch/monster/humanoid/Class/ninja_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEçÆ÷111JJJ999BBBRRR!!!)))R)ZZZkkkccc¥c9sss÷÷÷„„„ŒRÿ­ZR9!Z){{{��� ¾¦���tRNS�@æØf���ôIDATx^µÉBÃ0 ­]^“¶lÿÿ¥Èj7\àr™Ñ$Iÿ2iîgü͸+œKá3aÜžngÂø\è5i¡ò£ãЀÈ .x`C,Æñ˜ !dEëݸÅ2ÝVìÌx¯ªXï…àȽ¢ñõu'ÕûB ž °ë!ü,älÁÝY#Ñè>i{¡$‰¦OhžÇ�ÁÞkI´ø‰œ|Î…˜\€YD‘,ÁBh‡( ¥¤8sÏcÛ„@Žú$P$…P–Ü1s\–ú%, -ΰ®ù!<àß…2 |¨Sa^~3¨¦¿Ü;ul®e»����IEND®B`‚IMAGE 403 ./arch/monster/humanoid/Class/ninja_2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTEçÆ÷999111BBBJJJZZZ!!!RRRkkkR)¥c9)))ccc{J)sss÷÷÷„„„ŒRR9!{{{ÿ­Z���çš„Ý���tRNS�@æØf���öIDATx^½Ž·nÄ07/³ÂÃÿ©)¶‰ÇÂ…_±Í †„¿¬„ZgüÓ¸9ÍUTy&äçÇs&l$oН •°¡8¿ÀB¬Äï¼ ‰“‰¨q?7# »XkÆM]ôö�J”ÖÈŒ×è.ñ —œ¹E1~¼¯è®¾-)-Ô ²ÇJ]¸BM vfï‰F„×À’‚�ðÞ…•Œ�¯_Hé¼YZ‹J¥ ÷•”˹z¼¦Ì¥¸  „På(`p¹ªRéõÑŠvº C^EcÊGh\°ÎOiX߇…ðÓóSÐï¬P‰áWÐÓ!Fø×}«ã˧Ûã����IEND®B`‚IMAGE 400 ./arch/monster/humanoid/Class/ninja_2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEçÆ÷JJJBBB999kkk111!!!RRRZZZ)))ccc¥c9sssR)„„„ŒR÷÷÷{{{ÿ­ZR9!���.Üuø���tRNS�@æØf���öIDATxÚÍŽGnÄ0§'2j“Ãÿjze@0—‚¯®›XŦèO¶¥ƒ”[;¾®;£øtîa4¡c ¡žƒëvÛýýþÔJƒê‰ªá£ÈPi8³\Á4c›¢f‹@6‘– 1ÿ4I0Ìâ ”˜‡ÀðÞ{ èÃ3z7w¾h ͸w…óíí"´ÂFa~»¸„®|k q·ˆ² `\—3o ½«»KÐ2KO­}3æ”âKŸl,H‚Ð’Ôúý t= (F‰FPN(º­üÇ“Ør!?ý^@WÁq*(gþ|!ãWP^ŠfL"JÿŠ/Ò•H  ����IEND®B`‚IMAGE 386 ./arch/floor/no_magic.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���c1­)Zµ!!Ök÷½ïÿ��ÿ{sÿ½ÎÿÿÿΨ»M���tRNSÿÿÿÿÿ�³¿¤¿�� IDATxÚ…“’† „1¹]xÿ>Ä_ñ-kˆ¯µŸtR:Êb«o¦€†Žƒ@û¤·‘VNé@z“ HCˆ0Ÿ²GçF Hs5ß2j Hÿ’>iE@“2û‡H‹ˆtÐüB(0êñÉûÝc��}ã^ÆH¸ ÂÈÈÀÌ4Vãò c 0b€ñ1ežoG_€ @á<N›î/®zd ?¿AÈ='5bŽótPÓ¼Oóü›ï:Ðâî]‡ªdI³’‚?€ÌÏÞ”~'€ì~Ø@«BiñBÞ-÷ÚŰêj;ÍêêÛ\àœ‹ûd¡·Ëlöûl–š¬ãxú aÌ”’²3����IEND®B`‚IMAGE 158 ./arch/floor/no_spells.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷½ït2ó†���tRNSÿ�å·0J���EIDAT[cø ˆ»‡ÄÙ½ ¢H\…7­A²íxô>2Øû‘áÞõ½ï!Ä¡ {2ü2ßû—a×÷½wÚ>´0ã·�Îãt k~K«����IEND®B`‚IMAGE 651 ./arch/monster/humanoid/Class/northman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEçÆ÷”9„)ccc1s�!Œ1111{{{½½½cJJŒŒŒ¥{œ!B¥¥¥Æ”!c1ÞÞÞµµ­�ssc�„B!œœœŒ{s”9{�!�RR�ZZk��kk¥!J�BBÆs9ï¥Z��„JJJZ�µ¥¥Œskœ{{�cc�{{B99�JJZ)¥œœœŒŒ­c1„J!µsBB{skZ{ssµœ”{J)„�)œsk1­{½k1½„!{R)ïŒ1ç¥ZcR��BBB„{s{9!!!!)))RRR{{sœœ”ƽ½kkk„„„sssµµµ999ÎŒJµ{J¥ssZsJ)«õ×���tRNS�@æØf��7IDATx^½ÌÅrÄ0 €aKÆp–™ËÌÌÌÜ÷•jÛÎÎ$ëz©N²¿Äþ:ñ8­Öâ…—YNÐOžó쉬€]ó›Û»û‡Ç,Ÿ8;ë÷úƒ«,—øÑíöNN³öößÚQE»‘¯­®ÀŸ¼†U´84ùbÕK A€ Ô˜#Ý—¨¼-¿Š´€D/ŸóÛ %ÅZ¤¥ˆÁ'“ô(&wye† t@6›:˜9â (Vk�RëÊd`Ü|ŽqC9™‚b*8v]nxhœÐ /´þ|=J4î:yHîl ½=îùFÅ|_È- ¡ÉÓAc¦°dœòäÔt…1A<v Õvu ™e:ÂÏ?³/ëßrmƒÙ‚ÒÂh+Ù<.%V‹Ç£ÝVÐgòñ¯ó°+.‰ßŒ����IEND®B`‚IMAGE 642 ./arch/monster/humanoid/Class/northman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���öPLTEçÆ÷”9„){{{s�!Œ1111œ!B¥¥¥�RRcJJcccZ��ZZ�ssc1½½½1¥{ŒŒŒÆ”!„B!�BB”9{�!�ccï¥Zœœœk�Œ{s�kkc�Æs9��„JJJµµ­ÎŒJBµ¥¥Œskœ{{�{{Z�JJçççïŒ1¥œœœŒŒZ){sk{9!{ss{J)¥!J„J!„�)œsk1­{½k1½„!¥ssZ{R)ç¥ZcR��BBBµ{J„{ssJ)!!!)))RRR{{sœœ”ƽ½kkk„„„sssµµµ999ÉÈM���tRNS�@æØf��:IDATx^­ÒUo„P†afŽá¾îuwwwýÿ¦Ã¶Ùfá¶IçŠä}ø¸ÁøëYpœÑ£V¼;­‰²žA$_“ð-‰Ê€qçÜ?<>=¿èû¤á^\^ šƒ‰Û’—ãI¿ß<;/ û‡GǵÀE@é^ Ô€R€»1õ:&@€H§ˆµpi�sPq …Ï6ÛI@ÎQÐÂ6rQNÐ�½…u !”ãbÙf4êr€Xr½<hÚlØA)h·eP¦èÕê�\Ö‘g #AK=Åî˜,4CóZÞL½NݤnÊ-M¯.z6\XZ‰$õ¨Ðþ* [3³s#ÊgUßïfв¾î_ݰ¼OhyÝyM*k_ÔòÚŒ¾5½ Á7®Trµ€¿ÆÞqÚ!:ξƒ����IEND®B`‚IMAGE 203 ./arch/readable/note.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���pIDATxÚÕÑA€ DQ§÷?´~“2Ý3D0öAJ|nŠV&DBz�YŒPQ?BÒbr 0é¨ ˜[(‘û Oßó¹ÇÌM�x˜dÀ¯ ê#ð·¬È]ƒÚô³@ÄtÉWŒ!±’øR/4 ¿'/>i ƒÀI����IEND®B`‚IMAGE 210 ./arch/jewel/nugget_huge.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒiÿ¥�V-öÈ���tRNS�@æØf���wIDATxÚÝ À üÿÑe±+îõ€62M¤ës^©$$ÌM®#Ìí÷0è.`ÀkHù½Ð¦MM�!EÔ…ž@€°s öF%ŽÈÞqÖ(?ðtßSÞ¢}%»Âó@ä“€Jó@`ÎU+ –'æé×W^‰M ����IEND®B`‚IMAGE 275 ./arch/jewel/nugget_lar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,�c��1�cDÙ¤���þÖ�ÿÿ��Ï¿ ���tRNS�@æØf���¦IDATxÚå‘Ñn! ¯‡—™ÿÿâFæ¢êBÒhW‚<^/pü=Í¥Ï@’ùK]•üÏHVù¦^JÔ¼! ˆ‚2¶þH$ Õ±Û#Ò>/ÀÄ«¤ÕÝÒýYXîõ¯¨Ø€²ÚñôP^nZöy{70(Ï-fÞ2x È3EÎq Qa…£‰ýFIBÌ"Çö¥gù#ÎylõP®uü7}eûòòO����IEND®B`‚IMAGE 215 ./arch/jewel/nugget_sma.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�c��1�cDÙ¤���þÖ�ÿÿ�Q• v���tRNS�@æØf���mIDATxÚí‘ÁÀ C•–öÿÿx3šlç½D/@[tý|!ˆ¼Ô!‹—ДÇyÚºtDÏ›‘cÀ,Î9‚m«Î䂚/ƒv¬વRÌZ¾ná´)ÚÚyx‡B�ÖÌf³/‘‘¹~Þó�j›(‘­2:����IEND®B`‚IMAGE 241 ./arch/monster/humanoid/Human/nun.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���666�����ÿ***666EEE[[[wwwÁq8àààï§_ÿÿÿȨJR���tRNS��v“Í8���tIDATxÚ½Ï1Ã0 CQµqø•ľÿu‹¸@7SSÊ•´Oå%ÉõRâA&Ãõdž[1л¾‹1l/kðíqÈü@__8ÉÕ×&p„ÿB 0Á€&<˜P€€ô`Û·´ý8¤݉çréêW)����IEND®B`‚IMAGE 320 ./arch/monster/humanoid/Human/nun.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���îv�Òi R-ÿ¥�666EEE[[[àààï§_***Í…?ÿÿÿwwwÁq8���hàÌ È���tRNS�����Âk±���´IDATxÚ½Ð˃0 DÑP:c›wÿÿgk°i†e ¤{ˆ¬”ætåi^=€·î]wÙ#Â!û ñɺ3r¹8FŒ²pŽ#!3Ìs@Õ Ç8)þ? 0 jçešÀR5Áó¼í1ßBû±–ìYí�³ºiÅ›}Û{!ºí�â. 8Œ©âd«kÀÌ Ë ˆ­>2s]£Õ‡û{XLw/Ó”BN þ9_a3« b×����IEND®B`‚IMAGE 269 ./arch/monster/humanoid/Human/nun.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���îv�ÿ¥������¼***666EEEG$[[[www‚B'Áq8Í…?àààï§_ÿÿÿ6ˆ­ ���tRNS���úvÄÞ���ƒIDATxÚ½ÐAà DQ')öÔ4…Üÿ²5eO¤Jélÿ ä®X)hƒþèNÅ»X®ÀÊŸÀ�Ì�,§Wôgô ätû~|»e@hŸ»c]FÎAo,¯†Èpú¸ç`‹>À]h5J‰>�ÿ$ÿLÁAUݨµ”"’vQàÿû�«cã‚����IEND®B`‚IMAGE 224 ./arch/weapon/chained/nunchacu_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8!!! R-���@@@d3‚B'ùñÑ—���tRNS�@æØf���sIDATxÚÐK €@ ÐTMõþ'ö³‰H;a ˆR_3">Y31L"PEû™ÃýqGFÜWWA2FŸÁýØøÔÀ+Ýû…º7ÔBcø¶S@ÃZ¨À‚Rhâ�‹æÎ$p?ƽð@ Ñ¥¿N¶9D¤·—˜����IEND®B`‚IMAGE 279 ./arch/weapon/chained/nunchacu_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V¡¡¡aaaÁq8!!! R-���@@@d3‚B'¿¿¿6ÒqÎ���tRNS�@æØf���¡IDATxÚ‘Qƒ@wÑ:´{ÿû6 ¢o—’˜h2ð`lz¹·²¼Ùí[ûÍÜËþz†›ýžÕÀª5xbL �,Žàö oí˜3 š@'€ ¢@}ëAè ñªÀ}wp &è%óÔ’ª%%è –¢DgZÊJzCÓ?œ€ ¨N ª3O(d͉¿I^ן.¸©ôü����IEND®B`‚IMAGE 427 ./arch/exit/oakdoor.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTEÞÅv 4G$j6|?#ŽH( R-¨b7±rBºƒLÓWÓ±jçÕðæŒBBBŠÇº���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ! —n���çIDAT(Ïc`À˜]ÀÀ�ÆR-_åAŠPõòòw@P^^á³�¹J@�r� ¸Íy£Vš®tîd X òÜ!u@’Λé`šwJ¥é@‘0¥wÇ!F•AJÕÁƪŸÙᦇiŸ ¼;âÅ×§‡é¼ƒ €äÿT ¼$ðý[ý¸P#JáfÀàfÀlAˆ¡¬šTšQ¢¹ »�ÐPQ4CA¼ú|4[\ ñÜ·¯ùÿ¡ƒ8„ N‡x„P ŰE@  ¯ÀÑŽªu`àˆGfH@Å 8a¦�¸(¼03#öñ����IEND®B`‚IMAGE 238 ./arch/exit/oakdoor_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���BBBc1„B!Ö{!ï¥÷D6×���tRNSÿÿÿÿÿ�³¿¤¿���…IDATxÚ…ÏÑ€ CÑ–Íÿÿe'Ψ©Ty2÷RlúxühG$`�ÈŒ[à³§9Á€‚îq>±dd,o@Õã@ÚÍH:¡»‚ž`Á¬dZ@ÆäÕ= º+¸ºq_  'ðž  'Ж`v z‚yãT7 ú¨î�†Ò�vĆ}{ÚÃõ����IEND®B`‚IMAGE 225 ./arch/exit/oakdoor_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEï¥÷BBBc1„B!µcÖ{!���þ¼�x���tRNS�@æØf���zIDATxÚÍA€ ËÖîÿŸ¬ÖT@‹xðàd$³)ù6¤lÉ4°lÑ=¸4\«-S½‡ºªs_vÞž ÊÄX=fµâqgðô%ðB ÚÂ}€Æô7¤^ñ§¯?éð«·ì“^n ³'Èl€9á…#ä?¬˜é ®ì¯?����IEND®B`‚IMAGE 238 ./arch/door/odoor_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���BBBc1„B!Ö{!ï¥÷D6×���tRNSÿÿÿÿÿ�³¿¤¿���…IDATxÚ…ÏÑ€ CÑ–Íÿÿe'Ψ©Ty2÷RlúxühG$`�ÈŒ[à³§9Á€‚îq>±dd,o@Õã@ÚÍH:¡»‚ž`Á¬dZ@ÆäÕ= º+¸ºq_  'ðž  'Ж`v z‚yãT7 ú¨î�†Ò�vĆ}{ÚÃõ����IEND®B`‚IMAGE 225 ./arch/door/odoor_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEï¥÷BBBc1„B!µcÖ{!���þ¼�x���tRNS�@æØf���zIDATxÚÍA€ ËÖîÿŸ¬ÖT@‹xðàd$³)ù6¤lÉ4°lÑ=¸4\«-S½‡ºªs_vÞž ÊÄX=fµâqgðô%ðB ÚÂ}€Æô7¤^ñ§¯?éð«·ì“^n ³'Èl€9á…#ä?¬˜é ®ì¯?����IEND®B`‚IMAGE 309 ./arch/door/odoor_2_fant_blue-green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE����©&ÊBBB3?ã�¼Ñ%ò8>ÿQ�����”M+á���tRNS�@æØf���ÂIDATxÚÍ’Qà „‹z(þÿ¼BS`‹5{ØÃ.&-~'•KŸK’–’µÂ@ ÍBÀ‡Ã0ΣP;Wcsd>iWj'ÞY{t†¼qß_X÷Nà¸.g¶¥G¥V•+©VˆózËfôê6ìœñ¦ ¸©áæ“üÃq•2£Að4 Íhà3æ—)Û 4¦m=ÍÜÈUæÔ|ÆEH!YRp ÆN§¾ÌàØe`Úe`�óô‰(âWzÒñ?z ÓK°\Ì����IEND®B`‚IMAGE 309 ./arch/door/odoor_2_fant_blue-yellow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�����~��“� ´ #ÍBBB¤œ�¹±�ÚÒ�óë ���pš›���tRNS�@æØf���ÂIDATxÚÍ’Qà „+ê¡üÿ¼BS`‹5{ØÃ.&-~'•KŸK’–’µÂÀ�*•JÀ‡Ã0ÏÁ³R;Wcsd>éPjž'>X{ †¼qß_X÷Nà¸.g¶¥g§Ö•+éVVˆó~Ëfôê6ìœñ¦ ¸©áæ…üÃq•Z¢Að4 •hà3æ—"Û 4¦m#ÍÜÈUæÔ|ÆEH!YRp ÆN§¾ÌàØe`Úe`�åô‰(âWzÒñ?zAƒœ«Ű����IEND®B`‚IMAGE 309 ./arch/door/odoor_2_fant_brown.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�����1��F��? �g�X" BBB€- ��� ��O���tRNS�@æØf���ÂIDATxÚÍ’KÃ0DÃà¾ÿˆ´r¬.ºèÈR‚ߘ˜QŽŸK’–’µÂ@ ÍBÀ‡Ã0Ê£P;Wcsd>iUj'^Y{T†¼qß_X÷Nà¸.g¶¥G§Ö•+éVˆó~Ëfôê6ìœñ¦ ¸©áæ“üÃq•2£Að4 Íhà3æ—)Û 4¦m5ÍÜÈUæÔ|ÆEH!YRp ÆN§¾ÌàØe`Úe`�óô‰(âWzÒñ?z¥Ö À6ÌÇ€����IEND®B`‚IMAGE 309 ./arch/door/odoor_2_fant_red-white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���¼��Ñ��BBBò��ÿ ¼¼¼ÑÑÑòòòÿÿÿ���ášÊ���tRNS�@æØf���ÂIDATxÚÍ’Qà „+ê¡üÿ¼BS`‹5{ØÃ.&-~'•KŸK’–’µÂÀ�•FÀ‡Ã0ÏÁ³Q?Wgsd>éPjž'>X{ †¼qß_X÷Nà¸.g¶¥g¥^•+©V6ˆózËfôê6ìœñ® ¸«áæ…üÃq•V¢Að4 •hà3æ—"Û 4¦m#ÍÜÈUæÔ}ÆEH!YRp ÆN§¾ÌàØe`Úe`�åô‰(âWzÒñ?zQ!˜êÈϬ����IEND®B`‚IMAGE 309 ./arch/door/odoor_2_fant_red-yellow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�����¢��Ã�BBBÜ )µ®�ÊÃëä)ÿýB���FF'š���tRNS�@æØf���ÂIDATxÚÍ’Qà „+ê¡üÿ¼BS`‹5{ØÃ.&-~'•KŸK’–’µÂÀ�*•JÀ‡Ã0ÏÁ³R?Wgsd>éPjž'>X{ †¼qß_X÷Nà¸.g¶¥g£Þ”+iVVˆóvËfôê6ìœñ® ¸«áæ…üÃq•Z¢Að4 •hà3æ—"Û 4¦m#ÍÜÈUæÔ}ÆEH!YRp ÆN§¾ÌàØe`Úe`�åô‰(âWzÒñ?zU¡æö=����IEND®B`‚IMAGE 309 ./arch/connect/Doors/odoorm2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�����1��F��? �g�X" BBB€- ��� ��O���tRNS�@æØf���ÂIDATxÚÍ’KÃ0DÃà¾ÿˆ´r¬.ºèÈR‚ߘ˜QŽŸK’–’µÂ@ ÍBÀ‡Ã0Ê£P;Wcsd>iUj'^Y{T†¼qß_X÷Nà¸.g¶¥G§Ö•+éVˆó~Ëfôê6ìœñ¦ ¸©áæ“üÃq•2£Að4 Íhà3æ—)Û 4¦m5ÍÜÈUæÔ|ÆEH!YRp ÆN§¾ÌàØe`Úe`�óô‰(âWzÒñ?z¥Ö À6ÌÇ€����IEND®B`‚IMAGE 344 ./arch/connect/Doors/odoorm2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���1��F��? �g�X" BBB€- ��� ����D(±���tRNS�@æØf���åIDATxÚÅ’QŽÄ0C¸ÿÇÐÎt’vw])Jõ,„­üü½ü£_0ù¥gLd$ÑÍИ瘒šªøÛ9ðà™*YÇ$ä£8«è`ß9(k‚<Ø/~Ì!_9qm×.–ºxÚÉsZëÛÀn§*£±±š}È2`û£Á _:ŒÔ³ƒÚ¯®±�¿:€aìÞ'¾,›¯š‹VÄ6ðšñÓûÝ;h.a"#´ H­Œ“²®ü]REí6c}G`†ààC{•ð‡¤‹µß:,NÛse/A€oÙw²«Ñÿê¬ ö¦Í%����IEND®B`‚IMAGE 346 ./arch/connect/Doors/odoorm2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���1��F��? �g�X" BBB€- ��� ����D(±���tRNS�@æØf���çIDATxÚ½“ÑjÅ@D먫Îÿpõ^h`í}l!Çœe ùúÿäO>`ÆÉOXDèô¾Û|0•A Éͬ9Ü ù;wž›‡½y´Fî$¢˜+Œ~oúèg²ïçt@ë:90FB×Ö%à š+ÍnAfÑ-ÂU¹–ÀlŸ¡0®Žm(Ìë3Pú4ç«£Î9KðÚ†NÇ?7O4 ºúì±–€Þ^W†Î2WGœN°¹»B?˜ aR•™k‹Í”ÞYa(©‡^ßÑðˆW"õÐëÙiúÇùL‹ cu£K����IEND®B`‚IMAGE 309 ./arch/connect/Doors/odoorm2.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���1��F��? �g�X" BBB€- ��� ����D(±���tRNS�@æØf���ÂIDATxÚÅ“ÁŽAB[±øÿžNÏÕÎÞvˆ·B /©ëŸ5_½¿ÇDÇû:J6cÞÖ ¦Mí†@Ì{jöÈèX@E æj�”DQ}k{µ!°žÍÐèÎrÓm)‹®µ„ Jƒ6Ö’&T%Uî%ÏT™³–T}!¢×~ $ÝÍ^1+í$Qg¥Ä6ò1œ5 F¢­Yº¡ºçœYšPB³3 éx¶×€ƒ;;®7a 3s½j"âÏÏrýV¡ÑY‡����IEND®B`‚IMAGE 309 ./arch/connect/Doors/odoorm2bg.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE����©&ÊBBB3?ã�¼Ñ%ò8>ÿQ�����”M+á���tRNS�@æØf���ÂIDATxÚÍ’Qà „‹z(þÿ¼BS`‹5{ØÃ.&-~'•KŸK’–’µÂ@ ÍBÀ‡Ã0ΣP;Wcsd>iWj'ÞY{t†¼qß_X÷Nà¸.g¶¥G¥V•+©VˆózËfôê6ìœñ¦ ¸©áæ“üÃq•2£Að4 Íhà3æ—)Û 4¦m=ÍÜÈUæÔ|ÆEH!YRp ÆN§¾ÌàØe`Úe`�óô‰(âWzÒñ?z ÓK°\Ì����IEND®B`‚IMAGE 357 ./arch/connect/Doors/odoorm2bg.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���&ÊBBB3?ã�¼Ñ%ò8>ÿQ�����”�©Ð¼Úc���tRNS�@æØf���òIDATxÚÅ’[ŽC! Cò�²ÿP«ÐÛ¿‘&ªT‰c_‹Ÿ?Ÿùš/Xç{ž±ªk‹ÕT?Ä6ÜZ~ö¡ v¢ÅhÒÄ/ÅÔÃ%Òå`?íiN·\›‡»Ü‚Ãu0]Ú>zÈ-0œõÞBö=³ð<2º@gÛŠA@€ô\ÍýÆÏ™…/¦OîL ÁªHO{‘U«Àáæ)Ð1+&…“6Ó‡rš„ Gë·A6%Ohìcð´h¾ê7fE¤;2éÍqÍÉ=ø›o¾;87÷{Q½;ÈëàŠY«>ØÈl-²§Çl“¤ :…Ýôßó Ó“ zN(rÎ����IEND®B`‚IMAGE 342 ./arch/connect/Doors/odoorm2bg.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���&ÊBBB3?ã�¼Ñ%ò8>ÿQ�����”�©Ð¼Úc���tRNS�@æØf���ãIDATxÚÍ’ÉnÄ0 C«}ùÿn¨ (ÆÊÌ©‡ÈÅVDÂ_­üÑ;¬Àêª]­š\-,HHÄò‰›[´,f¹¹^Ü…Ú#ö|7!ñ¸ÇœK ›ë² Ãçc nÊ=€…™[ˆ/ çÁšŒÍX¦^tûdlüÉëà…Ó¾—C†–!nŽ*Âí0ë_<l ¦+õ\œ¯Ió¡2Ÿ yruÐÁ¸ÚH#'׆:¦„ðÊÕfHÜIÂGðªxê�OÀÑ`Õës›ÜõÒ~°ˆàVõÄF©ªõ˶û‡ú1Ï AúrÁò����IEND®B`‚IMAGE 318 ./arch/connect/Doors/odoorm2bg.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���&ÊBBB3?ã�¼Ñ%ò8>ÿQ�����”�©Ð¼Úc���tRNS�@æØf���ËIDATxÚÅAn ccŒ—ÿ?¸²r¬“S¥r¼þ6óÎg^_%ÕåǼšb3`°î‚j¶ÝðâU¤ 6Üuñ¡h­q 5B™8N)’ÈÍ%pAÀ)Æ2-Êá| ”!­ç7ßûÔàqÏ!D@-Ü£€p£[qŒRh†S×Hå`8‰œëÅt¦a=׋ÈLXÂxOBÕ‡“-öóÌU`p7TÍâë!jñ늇zÞÕwXïꙥ߲ôŸó*q¸|ÿ˾����IEND®B`‚IMAGE 309 ./arch/connect/Doors/odoorm2rw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ñ��BBBò��ÿ ¼¼¼ÑÑÑòòòÿÿÿ���¼��nìúž���tRNS�@æØf���ÂIDATxÚÍ’Qà „KõPüÿ?xBS`‹5{ØÃ.&-~'•KŸK’–’µÂ@ BÀ‡Ã0÷ƽP«²92OÚ”š‡;ä‰7Ö!oÜ÷W–Ľ$8®Ë™mià~R=•+9­,çç-›Ñ«Û@j°sÆ«6àê†Éù‡ã*eDƒàiÑÀgÌ/C¶hLÛ Zš1¸‘«Ì ¨úŒ‹(B² "¤àŒN!}™Á±ËÀ´ËÀ$�Æô‰(âWzÒñ?zþ" Ê64Îô����IEND®B`‚IMAGE 347 ./arch/connect/Doors/odoorm2rw.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ñ��BBBò��ÿ ¼¼¼ÑÑÑòòòÿÿÿ���¼��nìúž���tRNS�@æØf���èIDATxÚœˎÃ0 KëíÿÿàJ¶[ÔNr[`yÌ ‹@^øæËa\±ˆ ¡C$›˜˜5âÊÕR�Á‰I%.\gÌ–2Î~S&˜Þ êŹ¸É%v.ê`*«„:õÆMݘàmdçm…RhÞôP²€P3Ô3{l¼ƒçÛ°.Á!÷⾄ÉW²`onk+9O0åjáð[06˜ÍzbºÌ·£n¬AöCÀ Þ|𙸠> l¿19×gàóR»ÛÀÀë¸Ê&ôæåqï"ûH‹‹$IVÙGH’Y$ž•×CüwÞ•Á i[V:����IEND®B`‚IMAGE 340 ./arch/connect/Doors/odoorm2rw.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ñ��BBBò��ÿ ¼¼¼ÑÑÑòòòÿÿÿ���¼��nìúž���tRNS�@æØf���áIDATxÚÅRIŽÃ0 +-kýÿƒË¹ÔJç4@e ‡p1)øõß“÷|‡ÿd¤¦ª«”¨æ³^ÃMÀcú„«y8¶±-§?qsBÏ„Ô4úc{ðlÄ XFË[[ràØ«C®k&Áú¿ S¬øZˆEy4'¹®û!¬ LQy⻣H¸_°ÃÛÆ§¹ïŽÑY!Ò$·Åžc—¼I÷¦KRÚ4ó£ Z·iÐgD¢ôôàö‘x/‰@ð[5wÀz”^$Õï1³z}¸Á1H*«êëS6=¤ç å ¼~>oäÝ krppD����IEND®B`‚IMAGE 326 ./arch/connect/Doors/odoorm2rw.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���BBBò��ÿ ¼¼¼ÑÑÑòòòÿÿÿ���¼��Ñ��Nûm½���tRNS�@æØf���ÓIDATxÚÅ’KŽ! C;ÇÁ÷?ð�½¬Ô®¥1Ëç¬ðù­ú«wž—+û•g¹<0²”ÓcDw‚*̉uRzà3[Ä‹MßN£ÙÓ€†)àr3 û Û¢BÆŠ5T0¢T¨ 0üö$úÁ¥(ÞÇ‘Ï�áÎb ¼YðELIî#ͬŸ¼á"Fj2ÈdftWq <më.Rª¡c[ äw‘+†Ã‹'¹º§Žb…âÐù'-VæHï à:ÑoBÞáwõ—¾kãÿÖ-ömå����IEND®B`‚IMAGE 225 ./arch/connect/Doors/odoorn2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEB!���BBBc1„B!µcÖ{!‚…6���tRNS�@æØf���zIDATxÚÍA€ »líÿŸ¬ÖT@‹xðàd$³)ù4¤šhÉ4¹lÑ=¼4\«-S½§ºª!r_CtÞž ŠÄQ=gµâqgâô%ðB ÚÂ}€Æô7¤^ù§¯?éðª·ì“^n ³'Èl€€9á#ä?¬X@ N€|/����IEND®B`‚IMAGE 279 ./arch/connect/Doors/odoorn2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEB!���BBBc1„B!µcÖ{!‚…6���tRNS�@æØf���°IDATxÚÅ‘QÃ0C îäÍ$kÊH~7§R¥>ÇÂôú½ä£6¹uÀæf0tGb8ÂÃá0iœ˜4yÀ6œd'à<_ÙÓ •3àÁUUZ€R4¼_ ¡p~ qƒ’WY<O XŠÙÓz…icîÖšp ˜-ë¨lØ:"”#TÙ³hŠ)ÜA« #�wKé;š É÷r£d_a IZ D‹5É`×QdÖ Ê³—îÉû����IEND®B`‚IMAGE 296 ./arch/connect/Doors/odoorn2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEB!���BBBc1„B!µcÖ{!‚…6���tRNS�@æØf���ÁIDATxÚµ“ArÄ@ ýÿÉ+áÊ%ƒ½—ʾ´¦\åëÏ+~êk pEW¡ˆˆG5›hÔ,4œ¨“SÝs#bºAÁ·ß½\@#KÀÌø@€ÓmŒŒƒReA²ûA >’Æ)HyÉ6– ®% `®7±M Èû,h5ëYàÎÌx$x|¤Üã#åY'H™­ñ.‹@”0ç.H¦üTUœ‚Ìlñº¯Pª›®+úôúò+ÙüV:üÏõ˜ Ýu6°Ë����IEND®B`‚IMAGE 275 ./arch/connect/Doors/odoorn2.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEB!���BBBc1„B!µcÖ{!‚…6���tRNS�@æØf���¬IDATxÚ¥“KªD1D¯ÖgÿK~šKÏ4Í£+dt*' øü?qrÃ÷B`XßÃ2IÌA67GŽ~o©3Eï‚—×¥cþuJ1rgñÌ™ÏïJk,0˜™]n¦hÙ‹ ³)El\jWÁÑK™1r¸Ú|i=Cx¦Ü\y$ ˆ¹ÀÌDáU`‹Ïœw�=D¢ô«€Åo‹ôÙ‚]ÐxOàë®>¿åŒÉ@7X®����IEND®B`‚IMAGE 372 ./arch/monster/goblin/ogre.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÆÎ÷œscµ„{µŒ{Æ”ŒŒcR{RB���B!c1„B!kB9„ZR!!!cB9¥R)��„Æs9±¿W���tRNS�@æØf���ìIDATx^µŽÉnÃ0CM΢ÍvÒÿÿÙj¢¤@TÅ襼 ><qû—´žëÞ¼ª—�îz—K�ª—@àÓz Ö#.Öìq(Dœ§ P ¤‚9gLf úóœK-h.ïKOa‡ýíÖ}“á<![ƒYô_)½NÊvÏÀqѧTcRï'Dì+¥>€}› XSIõaØ9É–p„ag�3ÑS†E𥔇áX¤¦.û¶Sã:u ¸é¸ºÜLŸ—ku\¨}øA`Ÿ~ _®ÀëK¢¹üÀÁþ=ßOûT_ ����IEND®B`‚IMAGE 372 ./arch/monster/goblin/ogre.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÆÎ÷œscµ„{{RBµŒ{ŒcR���Æ”ŒB!c1„ZRkB9„B!!!!œkc��„¥R)õ Ì���tRNS�@æØf���ïIDATx^ÑÛŠÃ0PKs³¤ÝÿÿÚLèƒãšeõd˜ƒTÒòŸ™ý]„º‚ˆ-À;Þ{€ˆ² |ûõ ,£ >ïBª‚�•à „€ ¨> d@@a:q?`2‚ìãtW2 EÞż`,Y` Àôó‚¥øe¦='p€¸|¤ú™��T÷Vëég±é+X½ÖÚÎ , ¿Ïm4ô¼Ä[Ës.x‚ÎH7óÚ²¤^Œ3(ýE†\\þ×1ÂX±¸±b ¶ Œü² ·DØr¼­€Ÿçˆ~0†Øe´ý9¿ëkÁ`ª`����IEND®B`‚IMAGE 405 ./arch/monster/goblin/ogre_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEÆÎ÷œscµ„{kB9{RBµŒ{Æ”ŒŒcR���RRRB!!!!ccc999BBB„ZRc1111„B!)))¥R)cB9��„Æs9“ÞB¥���tRNS�@æØf���ûIDATx^ÑÉnÃ0 PÍp“ä-kûÿZ9 ÔVÝ¢<˜‡áé?s½Îóoù¡¸Î˜ý|øÇ1@+8èQ�m Æ}®I*fn2� ¸Y€»‚�é`­†°-XsAh­§Ë ¢pW36Ä5¿ÝD é;¸Ã’ bÍ?Ó® )iižyn€[ †aÍsž�ÓVÌ¥´¼Ö2Ní!¥óæ^r9ç:Ï3ÀÓTƵAtÙÉ*e:Y¸Ë#ržÊ£aH ;€ôüv½Ð_?ó.Ðð×â] ÑÀaý-¸`/ îò¢wA�¾×.P{c¬âp�¦¿Ïh¯ õߊ±ô����IEND®B`‚IMAGE 211 ./arch/monster/goblin/ogre_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���ú€r™eÚ2���tRNS�@æØf���uIDATxÚÕAÀ@øÿŸWN†zn'ñÄâù,¶Ü,¹¤Å¨X¸ÊkŽ:dTeùf=+Ø‘;¢Ð¸g¼‘v¡`õ÷‘é²”ë$A,Ô S�†Ð6¼‘ܰ n€¶W„'ÇF,�EŠSÈœ¯ð�ta¢ST²����IEND®B`‚IMAGE 391 ./arch/monster/goblin/ogre_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEÆÎ÷œscµ„{{RBµŒ{Æ”ŒŒcR���kB9B!c1„B!BBB„ZR!!!RRR)))¥R)cB9��„Æs9‹kVÞ���tRNS�@æØf���öIDATx^ÑÉnÃ0P‘³hõ’´ÿÿ­•#@mÕ-:'|â&ügö½µßò[±74»öqÐ îæ ¥$�Ìû(”×\’T<¡ 0U/ÒÀœ3®g0ò—œK-HrOQeGùã‘’"|OhHpùg¸!5¬ë+ð „ÀºŽ<ÆÚ΢m[ÏK)µ†½m“3o`%Ö8@»€Ø�–ÑQÇŠåR”Tòø;XxÉÝc̯†5,œ�Òâk8½õB;nfS nÇæ@¼ƒÛÚ[þ°A óéò�>Û�¾ŸS úÆâvFÛßç mn 8…8Ï����IEND®B`‚IMAGE 319 ./arch/monster/goblin/ogre_r.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÒIDATxÚ‘AÃ@ëÆ€ÿÿâRжÛd³‡Î%A9<®¨Ó‚Ôl‚Ø Ü ‰ƒ;ɾЭ ÊA½Y…¢ŒtΆ°ÃŠÃàg!:€š›#c‹|D¥9A_Á†Œ•x ÎYÈ–?Ÿ ÔT «óvÎÞÅz™Ã;¿R¹ ¡!ÌîúÇŸ }eÔàºq)ÐRP÷haH™»ÊXTH ö¶n„qby� !Lja¼Ÿ…ß^Ú$¨SîxÎG3? ˜[å×:'A=¼�%¿ Ì‚Lñ����IEND®B`‚IMAGE 315 ./arch/monster/goblin/ogre_r.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÎIDATxÚ‘ÑnÄ »½µ=ÿÿÅ…ãRE@¨Ô}�Fc+|­á«úÀ'À²Î€Ï@|Júà  ¬(àé6Ka'l§‹Wô(´J!»_g¬�XªJ«Z.`¾Ý-ý<õO™±‡;õ÷~©ë˜¨‚tµ¸eð²gZ^+î-ÿ¹å鱯;t¦¼C #Dº­{ÀÍn Ƕ1„œŸIVÅølÞÇàšž,íŸ;?�T�«&Ûl¸%3 *’ß2[1 îV¼ÒyÅ—¤ VzbÉ����IEND®B`‚IMAGE 913 ./arch/ground/oil_sea.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��JIDAT8-ÒÝnÛ6Àq>DÄ4)’)Q¤>,Z’%[N¹µ£8FìÔŠY€"È04@¯z™‹]íú{Ä1Û^€<çüàììB¤ªBjS×izùóÏuè ™ú9D@3ˆÑxìÉr}Ü_©(¯š"律ÐÞaòêjs¡#T%Õáù¹›5Eâs.œ!ñù`;ïoU±¼ë4÷Âü긩—箸X Èà%I")Š6[gž0å´*¦UÊàˆœ~~Î8ù ðÐçT¨ns7«ï¥àØËNýúñ~ºùuS‚eê…œ3ÎÂD%ÝîêØ+%¨6óÍÇåt‡^@„Rr†¹/NI´yzœÑ¤Ê²<7yYÈNÌ|³hRÍu©—¸"ïû" tç×-àRkm.·M–¤ÂAž3û´Í|îèµK6@`Œx”i\ÕiûÎóØœ®•àŒR©·\ºÆ^Øl»R)“Ö»Ç?¶«&fögL9—›Oß¿îZ±ÑQ}·Ÿ:3»™lK`ïÃÓ6qñ`‚1ĦNyTU™O»ŽR°iâÔÝž¾¾*Š †úf-9!~jŽ@®¿>4ÊãExîÈÝÇ�b29vÇB¦ hþî”(õ‡ƒ§Ë“åƒÊ„ÚTµN0/WE*|KOàù€[!HUùþØ­HBÛ?¶‡“!ò ë£QAÖG½y·_ÊÅÒØ¥Åj…Æ|øŽD»Ýÿ><O°žÅl<¢¶~ÊùÓ17:R~auø…Õ±JâgÞú·qþò£ ‚€Q_ìoŽq{¿�ßzek[«×÷¶µ:Ù ÁÛÃ$Ž»« øòý®`Éü¿þyýtÀ æpËC2&Š]_(©ã©ÙÜ*H¹°³E•jW–šwvìßÖ$Èmû"_ÅqdÚþ"˦6'zfŽee$ˆëC®M«ªNŠÌ—JƒÓËïý[—S„9§¡êmWøaf`âv1‚˜2Æ1ˆ(e™õ±oSíŒ'�ÒtadR•&@Ó.£ÖbüÃó6âÖÆÀ!ŽlÅ õcÓõ­‘<”õ½¾hÎ1u&ÃQûo9ªÛ‡ÇFq-­`÷E ͉™‹~Š����IEND®B`‚IMAGE 919 ./arch/ground/oil_sea.112 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��PIDAT8O%ÒÉn[U�àÿ?ÿ¹ó`ÇqlÇÍФE(¤RØÄ±Bê°æ•ú¼,�U¨ª@Š‚(Š;ñtç{Î= ¾gøðT#¢Ð‘&¨dÉñÏ‹ŠÉÆ CÆ_ÚUY +x?ìu¥QâÞhÖiÍ}¡š0åÓÛ¬ p›o“µ¿ÿ»ÉC°DŠÕ¥X¹;¯A< =8©îŠ…ßK>ªî{"7Æ}âÝ%8"wáD£)²ª4I°]zê¡–õÅ—B¶É^ĶQí¤®dYÚº+ êzå¾½}õÛÌâ¥OKÅUù7O¦l¨ S/ê/ºtéà•`�Å@›øà´{7‹C!�—ÞS<K@žßpŸk%(É%Wœõ÷už·Œ|¶+ñs`q0,7FHåvf4ó ´;NÿÌ<<tc×…»6 7çïÃIv¯Àh»=A_×]S[ˆQJE¤°ÚXî¤A)Èalr~×p×™<O–3Y= ¹dÜœ‹M§5A`Ûõ5È:ñÆ>5¨S:<ùíGU'ý¼ÁWuÑ ¦qRÝï^F?Í56ñy´Ü*­¸ïã‹‹j¯WŠyN±Ñ‡ðþ¡B€p-7Ɖ}üöÇ×÷ Tt˜&¥ '`)ïŒçSÅC:úU#h%;'0BëñÇ·Z¿·³‡Î i¸‘ÀˆÛÜeÙ€Ý5Át ‹­ÙØñË1vø;ë‰\9xܦpôìèh®Ìà8\Ý'>¾ZâºÒæòÅß³,=«þ*É#´½¤Xɨׅ)EÅûŸ]¹eÝâ¦r"hŒ%Ž%[@šÑƒ½z}ý®J­@ðÆL©zUtìå÷ôሩm ©×*ïÌÛŽ6sÝÎJŸG銭òùŽ{³ö8H‹n@Zµž_JNÉTÜUV·cš­5÷4W^:¬6ÌÊZú®.ûX¡µV‹-¨ÒrÏU· ð^2<¥q¡Erä—p#ËV¦½¬¬™eh;i±‘xMÜeÝ·&tóÖEæLÏ“åbµÉ‘ˆ ÛõE0Œ}+{#ÕPÀÖJ¼iO°®iºóãý*—lÇ'G)GͳDZzŸ|ãdøýãœHë¬6–'®vüz©ÿÿqðÉuÔ럊D����IEND®B`‚IMAGE 916 ./arch/ground/oil_sea.113 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��MIDAT8-ÓÛnœ8Àq¿FÔ¥œ1àÁ6l` 1sbÉH“dÔ(‰’i”´j­ZµÏ^íTûªëÙ]®¸óçïÿ30-ײ¬? ç“ͬêúË–E¡óÎõm?_aHµÛ$„|}½ìT¿nF¤™Y'N˜@Ã0mÖ]Ëme¹0U_¿×㦈¿TY†i‚Ïc)I°X¦ï‚8-罚-sw½]”4Z€Ò%Œ’îñùéùr³Ìšû1߆¸\«l¡ú'@„”åÓÙùÝÇÊŠd¥#µZì~Þå5F$hX•BÂ>­É€œÞÜ.ò¢n¶>=ª FDÍX„j• A ƒÓÇ»"Nh>DXI¤\`^eu&Q2tß©Çl¹N66�ãœÓˆ¶µœŒO¯®rŒŒ!}fŸ9Nˆ€^*Ö»Íj3Ÿß<ÿù¼mKÊÓÐó<”Ìsä–Äq‚ºû‹¦`˜fÃa÷ð¼oÓ†h€8@^àAµ(f–aX.ö>¹ì9Á”‘Àk€@TfÐlýP¾þl«:AËIèµK‚iÅI„²LSn÷Wzž9h+‚õEx&?€áí´]58„Ðvm#¼xû&<Ïqñº,K ÄËùmÿ½/æU«q8¶a88o5^€óf„Uëœ8úîzÊáR»5òB(6û®«zËNèðûûi„¬÷†ÑÖ­ö±‘ŽSµÿþ¶“z±ä^ýz»à´mÛ]#(¦Hl´(•à¡ô,˜Œtý^õ_ÚöÐÆŽ>.Ïú´¹�Ò¢YMw?ïKÉQt²æq>j÷¾ƒôØ¿ÈGj{ýù“„áá.=-`– ;9H�‚~ýx+cœr®ûë!8=ú¨”ÈA€¦ ‚aè:´I¬%z ^uMQ˜P †qýBÏÝÃÝ žDLÕr>ž¼L8xU9Õbt˜L{âÃýU¿ÚÌÚ³›§×W0¢ùT÷ïÒ†d€²ÙAÔ=ìÛ‚1ÞîçcJõ~ó¬ <íbª7¯_–eÉõ(pý8‰‚l&õY~$ÿ÷aÛ>–î+ÉŽýãý™bGÄ6Írw½€¿WžFçj¢\ÖZ@>ß}øÿú8 wÿ�ßüáþTy¬����IEND®B`‚IMAGE 915 ./arch/ground/oil_sea.114 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��LIDATÁÛŽÛD�àÿŸÏØ3qâd“=´U‹´+ua¥ -WH!¥âx�^Š›¾¯À € T\ ÁM“tÙÖñ®í؉=ã9ð}ø�<;ˆË™:ʺbP—Ãï»_¶iB­U¿uZîÖŽ…ñÃm½§vg]½¨¡â†dL?oWWÝâî¦ØW…›}0­ÄaþkøæIh/gu†ß½ìQ0 òœ—yŒŒh›'Åv¬ÓGx܇°ÈHÀy•ºrÁ‚<k×¼Å÷! ø,j¶ZÞ#UMD’¨Y÷wx*íj«„&F“h˜¼ «e†.ÂÒ3|¨\¢Ñ£‰uº7\Þ’Ê�8ÛùlZ0ˆÐî]4- Þ‡W~¦ê¬s„OŒÆ *(£Â‡Iª +†M ç, 9’ë"<¦AêÞzç÷v+Àv�Šd¬ÞlñrK€C³}³[CÊLLòëÀ éÔF4ŽH·x¶ØÜ8¶2Y-«Nçø1Œ±È6-ñ=‡Ç]Þ©‰¤îrú¶Â/mÓ;lðV}å|ã\ˆÉA{‚wðÑÃB±Ma-æj¹ÚRë‚B*:Æ?}þ_’4m’¢g¬üI{>çåŽ0u”uù@ûοv5ì<ñšMÞó½Ü9ÆKT=ÛŒètzxó <}‚@ûdê팬®ûƒ£²èšçŸíñëYWãôHåUf’ÇúÅ£v|ÎËÛ2<]”°8ħݕj 1‹) ÒèoÙ‡Uð2N娾*uŒA„{¾-ù<*oÂñ}fîÂzãbŽ}|n–FÀŒ– Â5 ÁçWtôG%æd0öëÛñ¢ß2¬ØÄu|sïŽ_Ðk$apØIŸS"‘èÀhAš0‡š•EÂwŽÁ"n#K5åyì@eʸüäã?5ëL �™lË!"˜¦16¶÷Á0|‡g‰˜¦ùµð6HÜõ”§&}-X©)cFÌ7/»1ØÂÜZABL{òlý[Ž蘫~‡"qô‹ƒf C$‡½V4¤6ð B„Ä\xg)ŽDµ×úÁ«Îžþü~ÿÏk¼s$’Bqkºé(ˆ·7A4;9ÿºäÓøVO£ä����IEND®B`‚IMAGE 4267 ./arch/ground/smooth/oil_sea_S.111 ‰PNG  ��� IHDR������@����IÔc���tRNS��v“Í8��dIDATxÚí]ÝnÛÆ¶æCˆe‰þ‰Ãÿ?‘¢dJ¦mYÞ•#ËŽ-;A7b8‚ìE 䪽èÎÕ~†>D¯Îó5¤,Ë6‡¤¨]¤àºi’ß|k-ŽÈ!×–a ìõë–EE¸õu+=ïè×ÿ91dE÷T–ÝÅ,*Âé#¯ó‹ð¿Bÿ{ÇÏü-âg,‰åP«]€·d}p²¸86í0ŠûV;µØÆ+N pºrŠçè¯áôñ­Êúëñ1•ãßB_”ŸB}8>Áæ&ñ3at<=Ôå|Ü”$A4Ýèê§Ÿ&½¸ïª+|SPq£]„Ó•×øº,fPjüêúëñ}ø×ã+ÈOþŠrõÈ.?ƒ:{³³QÔ/Â÷/'–ðx1|Œ;ÊÁ±x·�oäH¯ó÷ ð¿B=>æ¿êŽþ:?7?ðÇ|ýœñ ãgî]×6Õþ8_ͪ`ÐúÝȓئðî×úXüø“çÚºÒû'¾ü>æH¯ø¦fê¿•þ*>½ ~?óBÿ)9WÍ5/?Ë\ÐãÏÉoqü 6T,Júר4Ù–ì¿ûÏß’¿4 øŠ9¹8»¾ì /×ðt§œ ò´ žð%k’‹çŒÿˆ¯n­¥õ×âŸäà¥ãÏ Óõ×ýÇYŒSœšÿŸ¦P*~fäɆ.a¦¬-f¦©ˆÖ>Æ– ×t'óã%ìMoö»ùCíwçì}ªŸí�Á™¼ñ—|‚¯óqt_.þò  ÇÏlfëþKY¤8…½?Ýõ2ñ3šf¨ f*›¢ºŽ%«º†EÁž~ùˆnäûaXÀ ƒ0<ø¢}Eâ³\ 8ü‡6þ?ÁŸß=|0ü\"~]ÁÙúÅ¿!ï©ÿôüós2\"~©jö,iV¤’ŒbÏÂÖÀ:BG g³b¢jyNp:NôU?Ž3ü0=öÅø}C{à'úgðð͸œÿ lÿ†¼5ÿ%Ê3ˆ·Š?sæ>ðéeâg°n9î�ø–ƾë)<’…ÞûS¿Tæ:Gr};O³HðôOÏÆ‡¤ ìŠúYòx_j 2ñ[Dßß.þMikþ;vö1GñgÙ?G¥Düðº['ÊGØöûž ½ÐQ53 r—NIUkª&ú¡ëd<ˆ>[]ׯÞ½1᪽ä'úY ¢¨[§¸„ÿ®Oô£­âßô7„×ü§åÿIüYñ~ñ3G!¹ú�>ÇÉF|:˜fà çŸ~)Å!¼¨J©¾gÜ4�Çë/ˆL&ÿîô v¤G>ègæXâžòiþ³ÑŸìmÿ†¬Ø•Öã§ü~ù\ÿø¹I.ŒŸ±Ø‘ƒ÷•'€Ž„Þ½[j¥huI’%Ô}ûï¹}û2XzOÿ‰Œ†—çÝ„Oô)ó7ƒŸå¿ÔIôgÇÛÄ¿!kݱƒ«ù¿äçQ?ñ,+â*O€.¼‰æä¾œº®ÁrË•¢EQ ó'QäÚ¨Åã~:}q#Tù à/Üå‚¡‡màãçˆ>eþgð3f"›ê»Õžýóg®üçYÄR!øÿ .p9ù>)?3= u¬é•'Àb˜À·&‡\÷÷ßQÉ'Š]ì‹“qhÊ8á?;DT/X¼˜ÔœÀ±ÖÙ‰®&ü›)ÑÏÖÈ俈ÿA?æì*ñOÓø7#Ù+ÿ¯!ÿ4~¡ÿ$Óœu~™øåfz÷)6Õª�/ÞÜÞßpFæ¯ÍKÒv'—6‹D««^No‰¾e?°YVÊZ±œÐ~ýÀ÷Ðÿ”­Aá?‹‘ècËÍ*ñƒþ‡» ©OýŸ~øÃâ7÷ø¾œRñ2ñ3ñŸÇ–¬¨^Õ ÿ91aAã©»Všei”¯#+ˆ _ÆŠ‡›ìÓ#¬ Z^œu^Y=Zò=·(k� ÿ©ý91äŽNôw«Æå÷M(ló‰ÿ'…_ì?àGæã…Þ„ƒ£¾ õãª`opÐ÷Z¸6»Sš&YƒÜL8ô#Gú5û¬r õïÉyY†Z·d&|Á$úÙtþ³ø#GƒåÛn±ã·ñFëRÀðßNò¯à¬üûñ÷£\¼ø¶ftã>”£*?PŸvT,+í]´M@Pß^}ýdt‡¨‡`•v„h:Ëûì«») HXò{û´R6ÿ$þáÀÖuYå[‚ª¢JñÛú&àx¯û¿ÌVçF¡ÿ_ïŒÜu~qüÌŇ^³V¯œŒF<Ô*›]:/'&–õðŸOÁˉ-Ëzö= êï _2ƒsðŸ"Aç?÷߇jŽ|0B¬ÄV‰?´ÒÇ7ûbþ࿨‡Iþ}%óu|‘ÿªl?æQ?s2€êrC|WuœôœN«)Buz3žÁüÁ ðùVS¸þíex}¨~Ÿd³¡þ.éaä…'ÄšÿԶѹþíGs{_ý ño¿·}ßJú/ÿ}â¿“äÿ·¬£ ü8ÑÉ4÷ 0(ŒŸ1UÔý«žÆÔÑ®¬êãåíìúJ™_ï›Ë&ü—G\)ç×”_·CêïWÊåû}â?M‚Î_óß`[RâÿÄ ¿~¨†¾aü\CòüO©ƒï¿ M“HÿAâÿüfdj¨!ÿÌËË ÿ×û þë‘™û�rS?óyf›šX½ôyfêX†^ÅM‰©ïM?Í ßéeŸæcÚ3–oMŽN>Ïj rø+}Sì^túnß?Ý;X8ØÐ6‰ÿe*‚Õ+qè¾?ÞAACïH‰ÿîÉdšæßêEYÔþG‹Çç5ÛœŸ|Ê-¼ÇÏÜ~»ì‰SÙ>|½ìKÎ^…z’®©’d|øFøÙ^hÔ ½dç±®+ª(Ú·ßæÔ«vÿÑÿo¡ÔíûÝ^Ïï†ÿZÐ"´Iüß.CèO ‹‰aè÷¡~e)€ÿ*\ Œ„ï@C/|Kémí¹ÿÀ_hÿ¤*?ø9¢%ÚTÄrÕ{º„ÒŸÏúf…W‰Vêû’Ø~˜ý#Ö§±I�à"øO{ùÔÉã?ÆßŸ‚ÿŽøÓ ‰ª*KZùÚ°¸ŒßÊ“¢;NNg&+`…ôþ†Ž–øßO»¢¿<ýš—ôG¼ðFüÓ– Æ$~I‚üQUKÄÏ@}}¶M?@'\Ì\µÒC„/!Y×§®–ý å<:º¾¯…e!¼¡ùßÍã¯N`ïú´ ¡<ô'L–U-Ëvüqéú>ðgä1XD2õ¥,iãæ`üY—Eºé8n0>ÿ!~ú®g®‚±ˆ:ã7BªiÙ®?þßSÿg]Dúlø‡). ƒkêù+?cuá n1¬¼6*M�î†៚Ù@ÕM‹FŽÜ¾«éÀ÷ƒwÿ}·z™­iá«@wzýÅ3)ÏkÎ0äYÅñú¤=`‰ñIþ¦¤+PôŒ¦Â7MÇWŒaŸƒöhl€ñøà áë¸|ÅÚëó,^ê{aêÿãXŠ…"<ô>èû¤ÅîAüO«!Aßu—þÑó·²›ûÏwÓƒêàæþËݬß0‚ ºùúóÝ4Ž3'±áôUì$4 ßÞßÿ|›½ÒÙS ÿ=Ä7;€úûÓ¢+Ôÿ†x‰ÿt;P”•8N]G@¤¿a‰—âÏøÞñ$ü=ƒ |¿ńߑ8ð®€x…à}üÞ¤ã;0¾„8Àô5À£¥ÿ—Z¸HpX°<ž“ñCÀýÑõWˆ??½ }N1ÿró÷`míjÞå«O€¶r5w«ñ=èhƒþ…Ëg‘->gÏÚÅØ³¤V«­\ϳ»‡7 -m݉Òê] ©ßÿý Ào~uÑ…Š,Á‘jsˆÔçWx!?ñø¼�8¯[<DQ&ý³ãÀÿzî"–t=HH‡\H$‚¿]ñçÝv:¾˜âéø³Ôÿ¶FyˆKq[j!Q ~1&ã·Iü®˜òQªß‘ü¥yù{0ŽóáE`õU�+x£nµZ"ôˆPß÷Fê3ÇærªÝ6æØ–�õp/Î^Îqð«v†ž õwóîć¿“ú{RÿçÚVàï{º;ø2ò—¸¸Â ùà!ô'è.Á‘3ñ! Ô>ôG`6ÕïŽÀÐÑØ%8ð%‚Û±-Â÷G„?ðÞYâÉøÞƒÿAìéö0ò5À=h€@p… ý˜mp¤ÿ‹l%þù‰>Û\úró·ZÄ€ kžUž�œ °¬U…É;Ð?€IyŸ¢ož³Šåìßÿý.›±&ÿý-Üz!>¨¿›:ܤ=2#õûeýŸŒ/ à[KÜõÇ€ëx1_Dè® ¢«»sÂ×ts‹„ßœMp =|n�üþãøÿ>|pE 8Ñ7U9éHô‰­%_qƒÃÙ¸GúÌé¡Hú/`ñºò/áŸzÒßpÀäoiÃ8…íÊ矉°Ô¬Ä ¤Íâ]^à2k0±‘ß_°oî kïpÂLøæ|Ô±½»{xiÃOÏêÚÃó¤ÿÀðFÆÒæÃ&üLÚ»ÍÃe‚ßÝ=àeø”?¼¸±âÍ”S|9~KÒ?ƒþCµœØ$üÑΊOðÀžßÞ�ßNüŸ w9ŽOõYèÿæÐa`Ã’üÌÒü§xª?Kú; §(K+ÚŸsñ'ûÏYà·óö·ÿuú»ÍF'ѧí¯'x9ýf%ýÆ®ÒJ÷çgnïn4pÇ.¥ßªöãk(iü­Væ»ËfC)Ögl‰­ê�Ù®æðËíÏY®jv_!Ý¡ë·ÙWÅvȲ«ò xÅã„O™@ì«â G?„*ê7_±*‰Ÿ£¬õš¯øßQö§—0ÜlCCmûJ©ýéýÁñiuýF öÇSùªZB?:ÚF¿$ù£´S”Ð÷GÇÕó¯Büƒã­ô$ çg£ŠÀþs$ Ï(KÈÒûó™Ê÷iïŒê)ýáÙÛQe}ˆ?šÓù%ô¥½ù|´Eü¿ùúÌ}×¶«÷óï}—ÚvTnþ•(†ûxßuéþ—ÑïºVõø%ˆßÎá—Ñß&ÿñ—Ðg4ÃØbo0Ô§óêM%ö§kÌV6€âmžÿÅúPŸß*~ͶÑÇÛé÷asñVúÿï-rðv8ß9�GÝ2~•©­¶Új«­¶Új«­¶Új«­¶Új«­¶Új«­¶Új«­¶Új«­¶Új«­¶Új«­¶ïnºµÎò­ÂzEx¸ >£öýøWè1ÿï|úáû�Þ68S‡ýõ?ßåóþkû÷óñŸ ñiWòï¿ÿÏÿ¸ûï·Àɶ®\œð›myq‘÷ýƒV®œ¾Å®h|Àáû ˆ£øŸç_¡ÿ%ø[lûýë­ÕÎÝ¾Ž pòÿàŠÆ‡Ïä8#/§sºçœ}Oµ«óE'{Hñ?Ï¿"ÿËð¹¿ñù—Èþõ-p®�g’ýõ<|rÍÙ{W„Ã÷Ð6|^ÌûþA®[âR¹ï|7ó"cGзÀáû�Bd=ìŸçÄœMÒ)þšŠ ð"~œ|!ëKô±ùèßëÿ3ñ~”|àÿ�ÙN,ÿg����IEND®B`‚IMAGE 4764 ./arch/ground/smooth/oil_sea_S.112 ‰PNG  ��� IHDR������@����IÔc���tRNS��v“Í8��UIDATxÚí]]sâFÚÕ„ZH¢õ$#KXÂf c&¶Çã¹™xª²Ù©Ênªf«¦*[©Ü½µ·ïU~Æþ¿}ZÂ6FjIˆ$Î}eûèô9§één3LAkÖj ‰†S„ëø0ŒÝÓŸÿïu¯£i¦Ê±-Ä‹E8¥Û4¿ÿ}õ÷ùïÛÅ› +69Ù.ÂÃÉõrlwƒá8°5YD’‚š/¸nNÓMñ‹ðßYÿ™ó‹•üÌç….ÑЋpÞì…×ûû™7 ,ÓĺPCìÁ‹Ã"œ*¼É/ÂoýÍ|⟚?Íß8@¯˜Ÿa¶ËÏüä ‚ŒEäá—ç¦Ò6ÂéÝ»AäcUUcŒµq>¥ oò‹ðß[3ßòOÍ¿ÉçÒl‘?¡üþü*Ÿ9Fªi˜'³(ŸžÌN°ì„áéÈ…Û¬Íýá×\\ó¿R…ŸòÓúeúßE3ÿìÏÌŸæoQÛ"¿™¡P6?Ó¶-EÍ`‘G‹ËÅÅÐyG®7õÿÿÛç…ó¯PrñHs®½ëü´~™þwÑßÈÿærñ»ä¿çåë§ù›Gü¶E~êø–ÈÏhÛ¦ª*9øã/‹kgñƒ¯`®ãLoá]êõ¾¤JVxOñÓÁk/¤õüŸ¡ÿ§ôÿO,–ÔßÈ/É+~&NÉŸò·Á¥ë§ýo±Ž?þ5;¦DÉüLWÅ«²DÇ×ãé?„¼áYÉ„ ` eñ·ƒ ˆúÃï(ÝZÁïùúOpJÿëø±”~*¿„•]óg°)úzÊêG<ƒ¿‘?;Y¹ü ‹±é©ßÙ|ú˜ðE;G‡]Uó1¼T||¹<íé¦ÝÞœSx+|9¦ë?âôþ×ðuj±þF~-î¿DþD?3f÷Ùúiÿ©CðÌžð)ÉÊåg°išº5¼d*6Â7ÌáÕ¹ç• ·Åþå¼×–áÝÚ¾iÐh à§Óö¢ë'8IBéÿOðMöJŸ-•ß^N=ר-yNÚÆAâCþ¬¶Æ§Ù.—Ÿ9hª¦ãÚNÕ€ð]àŸ]×õOÎ?.ðêLWU9}k³Ö�—DlŽéú1ÞÌìÿ‘úC$rš=ì—Ëï˜/Ç®çî’ NÚÖK¼–?k�ø´+@¹üÌT‘Ð1‚ª'�ð9üQètݾ7÷{áâffˆJ. pUBótýV¿dôÿÀ'ú×,s‚*”˯Cÿ=ÃÞ%yJTÎÿ“üé—÷ÏÓ®M¥ò3]NT:§Ÿ¿2ðÛøŸ^)õ+Ê–‡W- ©‰¢ªrGt}‚£‡öÍþ×ø ÿcšNp•ñßÿøõÓìHm4ªçß‚¢nøWˆ~¦•îÿ‘ߦ"¥ò3RKääöéMÕ�øð¯±÷.Tϲ¬±xeÒ¾«‹“±"Ñõ ¾~w°Þ¿µÎd9CÁÕÄɤ-û,ÞàÞûHAÕó—g˜þáIž”‘ßÝÌŸ…>¢¼ËËåg/û¦ÒQT¦b[¼<¾¬D½š7ûå?¡Ä õv žmbÛîUŽ>|·ö׿±ÿÙõÐzàý ¶7ùôüФ Üïõ/ÿ©˜‹ñÁÿtÿ’Á7 ü¯ñieò3êÕôîû¡Þ©z$|££9®~ü8Ä¥xQÔm~ƒŒ£}Àµ§7WIÿBH_ã÷ý0£ÿ‘ÑlpÚa)ÿ/­ŽþkÎÇjù·¿A†ÿSÆo3@7?…ÿÝ”r¯_.?súß×)W=V|]åê-Ä¢fí Ü©¡Ú~äØQ޾Úîæ#RÒ?Ërº½ÎÇZš¬c»ŸÁÏòOÊç†Â‚ÿâ*æ/=~´ÿUù~ó̲ý\ÿ+~|Ê5¶T~&œŽ¢ˆLÅDÀ×”¸þ\¯5ì‹7%‰á«›WCÁÊÑ¿™ž"kóPÿ¶Ú-Rÿ^ñAßÎ8�¿Îâ§óŸ>ÔÏe5êÝ‹ŠùË]·³ü“üHJO®ÿ?žÒŽ(•ŸéB}f“`¦bëzÃÀ2tÜi×xöà =/Í4íðúŸrôðÝ?ÿ–úë…&£‘! ÷|ÐÏ œÍOùÛÔTðñ¿¨üke>x!Ì/4ñ©ÿÈw Üé<ùâ7•‚™ï?áߟvD©üÌÍ—Áɰ+ ¼þ‘ú´¬Éƒ ÖJÔŸ›õë GßꈖŸúë·ÏÝÅÞò<æÇúY½_žeó7óÿ4\ó§_®4qëüý¬§ù©Ï—o5ôÔÿp8„ú¾öäN†TñÎÓþuÂ_ýó­øTÁ2ù™E?àÚ=«z,úÇj«Q›ý|Áv_¡ì0.rôÍš1M&Ì‹8ÁÊŠ¬rÙé)ü§méù2[¯ÍcÿwW¡¾nl—Õj³_ Ï4Òÿ;èÿחøæ诿Ѐ3iÿÄŸ ®.–„U²L~Ƴ¥Føý­ê �üZ³õé,zÛr]9¦ë/.|™õ€MiËæ` õñ¿žýµ“ÊêÁVq}ü¯»|Û²dQÞ*½a~ÎAø¾ƒô¿á_nÔ þÏEo²Ê'JPÿ‡» ÿÀ·yÑ6ãg¬—‹¥ë]Æùi²eò3ÿþÁ먜²E)#ÍÇHóÃéö\w>Rèú}Ï›³([To%Ë\ÀcýÌÞ©ü'íW¢:ý`zsÍ#ÿPÕ`N¥ªn“_å4/$ó#²_†©ß~6|=ð¯ù)¿~ïu:B§N?œÆúPß7dI‘-fÓÿYô::¶×á•,/ðf$¿OÉÏ”ÊÏÜýûC(útÅ�ø øV.8®/a•3/Ƥþ®¨²Œ¾s÷õCÈëYG%ü»| ÚÝ×Û×çûÁÀ~waú¼”Ì/%·iw_ù·?ˆ6ˆñÛP4|èß ÂãÑwKMUý#È;àq‚ŸôGwo4-™_€Õ ÿàêûˇ3ÊI2á½¥äW©ã÷¤!- Õi£êƒ�¤õ/.N³_Ñ}C¢ëwóg>ÊTdíê÷²î›ðJ~ÖQ _"ýoB2&|Õôu$iÇ—àß0HuýÅI+PŸ·ãùGzÌg²øŽ¡|åß´ÿæá4†þðåÅi¯kÚ~°¼²¹6ÆòÊ?ÉFf78V—ð/mNùJÜ¿™ø¿ïøo®ºœ |Q"8ñoHâjüßX‘Öø…¯Ô×§¶"«rÅ@ô/ç9·§êÜ<Òõ]“ÇìoäfDê÷ ?¸œÛ™º„Op¸Ï†÷Tçá4Á ß@X'üiO!ïæÎø­Ç±P_×L¨ï\ÂzÌïeóM‰ðýË™ ’%¡sºô8ŽÔ÷±9¼Ç¾ ù€ÿ¶ýÛ¦Ž×ü·‰?™Ü�?h² ?ºœy÷þWïg üõ n˜¦•èßç#ãGü½õc}M7ñÂWá}^Áüa8­ª�·'+þÖLÏ>_½§êCùÿ8:ŸIuì³37áß¾‘õ‘ðo£cèŸLOqü1•”ï'dzAÌ?\} ulo 4UÛv»6Áãðû™ü‰ï;ú&ùÔ ü�øÆ~þþ}Ó´¸üß1½Ê~ìßÿÓwÄßVu‚~ %Ó Ì—“UþÛá€<6…DÀ€Cÿ¦íÚöÙ$ž1½%ýuœø}Vµcý¼ñ[o‘Õ‹·SMRª�C§7˜þÖ̸¾?¢ê;†x&U6`>ð}o4°I}=}LHøþ``Áü3è_‘„áÎXF¢¢ÃãžáúýÁÀéà¿—U™ãUÀ%^ ‚wWü ‹Ÿ7Ú ÿ~jHŠ&Ÿ~ŒŸ$üQÜ?Áá"!ò 2|¹…žøïEdüDè^c¢ßBŠEð{ÿÑüô¥ø ýó¼Bü9:ð‡'ÖOü%ú\â/güž|†“êºÂ!©â ¥$ü­é¤¾ßdUÿµõÿ¥@ûùë÷„OÕy‰T×3&E~ªñìú‡êºêHM$¶õ1ð§¤X?—Ì.à%A’&x»ÝÜÍåz8Û‚EYç8QPb~C\ÃÁ Kªÿ’O–ø\[1Ʊô!ÿ`âbŽEEâñ!ðÛŠ>‚ù ‰”ôσ?pà íÄÿìHi@Y%ùDú—c}>Á?åŽßú Ø4cxjøÕN�¶õyà‡Û½ëP¬ó,M;ï"Äò”9m§7jÂo‘ùS¨¯oó[<ŠûOêïœ}Þ“$ êïjï]ý#¶i.Æð<„úº3qEqH–c<á³Ù|˜ÿ¡:Ïý‰ÏdÿÌ“æx+>xªúX°Çž$ð(®ÿÇþ[?îß}À'®$¶>ºYùo±8_Œ÷ÎzjÁ<ŸØÿ-áÇþ&¶Ï/ˆõ¡ÔûË¿õ+�¾æ×QÕ»�êóÀl{y oþó·2MèÖN»Ç‘Wü ª(B­}~“zóy+ó¢ðM{zY–;Ž;YŽ}ê÷8ê5¼é/oU^ä@ÿr�ÏóI}} ¸ã^ÂGB_VC‚ÿüfö@þéMdkXþà:™àߪ¢HpÈ—Ô÷'˳~¢ùg$?øÎaüŒ•þY_ë(²²ò¯ q¾ëæHØqÏÞŽ4ÐýÏ�‰þ9øÓcý—Ë—‰¿‚ñ{l3—ã„«T<fn““Z¬mGëh‡.n4?PôWó ¨õy¸‘òqã  ü&¼©X#Êà×`þÀüƒë,gœŒ¬f êãÝ`ñê÷²æô: èvˆÀ?gFC¨Ÿ#ÍíFK˜_`È|'‹oÈ&àÑgø×ãùÈ�|Iæ´ ^kþYNB¬9€þ¿áôÃn˜ðµCà~˜‘ñké'À¯‰ºk‡‹»OcóÞÿ‡×.ùx3­š u£ èßlßÏ¿ˆÇŸøêDð8_Ñø=¶f½vÀrôõñ”ö°þ¼Ñ€ =Lp ­oÿ£ôu‰eá“‘o@ ·ÉñYúV‹ç õkà¿•âë“|¼$5ëà_Ðí4Nô óÃø5šÛ+hWbðÁ7aüY6sßB¥ö°ø*³õ[ÿ~}ú<°Å þëó+és0ã±þ‚µAß3ù²Ð|Ñ´KèÛb«J~5^°�ùQzI%ò_Γõý[ëËqÿI~.ƒú0>Åûü°0E²¾|û‹¼þÜþ¼0¡>¥ù%×§WÖ‡ù-²>þ­NêëV–?®Ôþ�ÿÅú¨•ä—A´ƒ¾üQ¥ñçâýº°?@f~¾Œ>óå‰dýùö˜q\?w92E=ãR[n}zu}¨ßëêô‹#�?KŸ!Ï—ÆE½üäÂm{6¿P_×I~¸SËæO´2ù]‘«¦ÏœÃü‚ñºÿ 6KÌÏð>†L•þ×¾ †•É/µ>}}XúH†ú}6Ÿ¬Ÿ/êä˜î¿¨Ý$ùáá+…_&Ÿƒùzµñqú2•_j�…¬?¯øð_Ç OÖ§+”Ç€e֧邏Äóê÷€—Û@ªšîâlSwÈ߆ú~eýHByþËî`Už8÷B§·+·>¿ºþôUÍÒsü•зµòköŽùmc}5‡_f�]Õ*ç'ëß5ESóð?Z¿›;³„¾¢â]ôÁ?ÞE¿›Ë/¡Õô™ÆòЦlþ„âóbý œ7óç³ê7uuý ·c~n·ü“–¾›þ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛ¾íÛÑ`ý|¬àE|˜«ßýÁîvà ü3EþaÿúÖ¯¿ÏÁ•ü¤�WÍx}Á)ò|ø ìOçO-Àc>ì?Ëÿ ¿þÉúûÜ,Àõœ¬ÿOÖçç]Dž wõ|EþËñÿ¯²þžŽûùøÔ+à“õÿd}=¬Ï7è³~ž ‡rýùOø·d‚<þ_÷X­¯¯Ž;EüûõõÁü†¾ Þ³á°~öG û#ûäùùþ(Ÿïmño þìFÖßç­_U„åãÓ~²¾Ÿ¶Àª=þЬßÏñ7óóý>ì?Ë/³?À³µ^þúõx}ý8Ó»Ž×糬™¹À}{6þ¿B®¿^¾â·òøeöx®yùë×üˆOþY_ëó_´Éú}Êqφ»|½z>î&û+äòËìðLmµþº~½càZ)ö8DbÆþWÊgÂÉþyþ4ÇÍ÷Oø ûãÌÉã;ÿçö>{€°•����IEND®B`‚IMAGE 6144 ./arch/ground/smooth/oil_sea_S.113 ‰PNG  ��� IHDR������@���[a?��PLTE���'''+++...222%%%&&& ((()))!!!---"""///000111$$$333444555666777888999;;;===???***###:::,,,<<<@@@AAABBBCCCFFFGGGIIIKKKMMMPPPJJJEEEDDDLLLHHHNNN>>>SSSVVVWWW^^^```gggTTTnnnYYYZZZ\\\]]]OOOUUUaaacccdddeeehhhlllmmmppp‰‰‰iiisssfffuuuvvvwwwˆˆˆrrrXXXkkk’’’bbbŸŸŸžžžË–‚���tRNS�@æØf��‘IDATx^̜ՒäȲE fÆD†bnfîთþÿ3®‡”™JP–TÕvÆ&læiÙŠí;¬ß¼”\Ýi‹™(ŠëZÄ?©ãóqì%/þµ ²¤}Íx…÷g¤ŽWeòkø£òÿÃýÿïÑù‘þœ%—sÕBÈ=}QÇFÉô´ßÒûcñ£&©¨Ûm+u¼*ó_Õÿîß~tþ¿ÿý939i´è‰ªãfòäó?^ǃ~þ÷ßía,vÛ«áíªÌ~ ÿáüú~íÿ´Ý}lþÏ‘þÜOƒÈ£ºJ¼£:n~R3œL“ñ‘Ðåýñ$4ä³:^•yÀ¯á?œ_ßïOê]ýEúsa¦SC½¿«ã¿Ü½™9ýÛS^A$<Mœ³äôÃý|úKUfµ¿ºÏ<¿¶ß‡7çN8H f‡ûóbN÷¢ÈÃþq¿¾y÷.åÈ”ÍV2;»üíÆ Æu¼*³Òß Ýã?ž_Ûoqûî]ÿý>:¿?;¾§ÿ¡~w¸?hË|ð€þœŠí^ˆQG:UÝãXïè/_ùAÜ_<ÿô¾§©÷òDP«2«üíÔþãùµýUíqôþ×?=:?.†;ýHIôËÙþÒnBãþ\WÖuéãTÆqâ{žŽ$\¼¿ RÕðmL†Ñý<‰*C÷ýÝØmþãùõý¢$p<Ú¼¿éSLÊ¿{ÕÚïWbæäÕý÷3šöçÓõˆ[Ç{N›ª¬ÚšÀkñ  íÈ™f>ÞËA·2tßß-ùCò9®>¿ºŸ—Ćޱý§ôx{¾›”¸²ßçöù~FÓþu]×ë¸1Œ£“ÁÅÕ•OH‡RŒ’Òs+“ôû¸¦I¸2t˯Î/yãüB¬Ì¯í7`ýâçoü?¡¿MU8ÞöטØý¶gjð~\Ãþœ&©88½ªá—óÙ|2xýòîÛÝb®)Y–%«Ýñ:ñ­êÔ]?·äMóÇ+µ*¿®ßøýó›»o÷ô/@‘ÏqÕý7̃ùàë»óŸÎÖ¸¢ßn:ÎNÃþœ/ŠJUõ>ž¦*Ý>锎mÞÞ]Mɤ£Û÷p w°{ vÇßÏ-yÓüµZ™_ÓO½}2ô(!Nß2X~ÁöúïTäƒÿéùÞü÷%ßéWQ`»?ª*Ö°?‡-A°z“q÷³*v»bF,Õ=y3uubèzá[(©äôžØÂ·PŸùVR¹äW}é/yi®óuÁê×÷gþ$”‰¡u»J¦Z\ó³Ý¿™éóOCDÖÅ·xƒ÷*߯aŽŽÔ>©Ù™ ¿ÿšðp±wÞB"Ÿyí‡àos®ö€/ OS©È¯Š,8ÇUÝù¥_ðR,¸.YÃ#,5é8rÑÏB–¦õ¸†g·#Á£ÓÊù¿ÿ¾¶ûŠ­}¿†ý¹ã˜ª„¸D¬]›µ£ÅõU„,«ÝötB½ÂﹺL<,–œkt¨K)žç¾áUPÜ¿›_ú/ÅÕ|ÔuÀ¯9à¹ãv”v;\\]E¼ýš5ØéßDx²ùÓíù‰L\öQ!l÷;[ú1…÷«ˆjØŸ³_&#‚d¹®€’)]éÉÿð,KÓ ¯üãá¬O$„Vœkv°Gaæþ€T9rPÞ_æoúÀ7Ä5Õ÷?ÍFDFHÓDè÷ýgè—YB}Ýþ „.~òæGÛór_¶²BØèwxþ ÿl0Td5ìϹ_æ”ÿªñõ¼I‰¢¨)Ý®†—ÀûR¬Ÿþ)Ÿs®é99Ç^à}™S™×p7X¸+ß/üUþ†˜sâç¹_s˜Ræ×Øý–¨‰Z±^¯÷ú׿ýqdµ5QÜ›òÛÐ/6úž¿ô]ö~REšÿ¿…_w^÷{ùþXlÒÌz/¹<Å–Tú-’ µÆHÎ5>§ÏG£xÊòã±v€÷¦‡òeoå·H| ù›*päͯ™_ß¿¥ØüFðð™Ú^žªÿŨÆÝî¯Þ„Uö>ŠÞ»¸Ú™üv¾¿Ï…~çWs^¾_Õ&Ç]úuÇI€aÌ5û ìù£ÜÿùB†ýx—k~$Ø_ÿü™ù!ì¯÷pøõÏ_öòã¡“FóPk—~ ßþý׋ 7šGZ;5r¿æä~ ý[2‚ù»B4²ev¿† ¿R©îßÂ÷Å�—ñSØÏ qþÌËÅýÍwý´"qå×Å0:>ò|�×û'ñÙ‘‹ÐÕ÷?ž¸ÆCLó«–š½Å0>;ó÷óý9pÙŒv¤³O—}Ï †¼ð!êbØoÈÄÀpü¦óÃ~þ¹ ûóOO’@'¦î_döàŠ8; ±¼ÜÿWÎÄægœ %¯êæ+ýÞo|ì‡ús»Qî]„DD‚Sî‘çmh‰HmÁöyšÌ>?@¼š™ýÛ·ïB¤ðl{½ƒ?\|WN)ì¿W|•9g¥ üîÍù´ôœÜçÁòíüôó¹jIªI ø×ó3'Ÿï°îlæ›gÉ~�óyÑ‚~1eïsª òÆüeþiDa»ÿyÁq›ýöóu ëÆ6G"Oö“?Ô÷/NÏL¿?›\VãzßÍ ßo߆ÑCÄÅ퇡+±ü`ù¿mã ð[¾›îy^»©?š~Ú3%3H˜[Ê©| ûyðW¦/n>Ü K#–ßÏý0¶±¬:ADáþñâæÝKv?ã˜þºÿïoÃx;æóùÅ|~dc‰¸ÛóGÀÁ‡ýý[?´Ù~¿äÛóßþ;ö°lºAì”>ê™Èlõg{ýNE®î‹—7g%Ü㎠ûið[ÉâÅOŸàaª»ÇaGeþØ÷[£Å‹]n¢ŽZ‘‡ñ+ß`~@~é·T$ª‚¿¼/]’uª:CàÆrþ>ÌÿSO q“ˆ òýáÊ‚ÝÌ· Îü ,^|úÔC«û%ÈwÆ¿™ø~4`ï#¤âŠù¡ÿ`ñü_?EHÞà«ù‹ÄÅõ§÷±…0q¶|3~ùò{;ýЪ?Ww°ÌGïo¢ŽÁ=î@—øý«(%¦ë>È‹ßõu$3ÿ6JUÓÛ¢Äó=¼ôe–÷*è¾Éöç½Ü—¡ßÅÝm´•m8áøÂ à~Æß¿ X¾+“A”)˜Ôž¸Àðøî¦•à¥ï0?�.¯û®‹É ¶,¢Ž‹pïÂsÀgüÃmüüþ à›ócàч› C ß–IÒÊJÎú£åü)¡~~¿ â ßD²ÄÇïn"LÌ¢[‘Oñ²ý6è×vuŒ¸ÇÃ컞G Ê4óZDº.«¶a¾O]ª#ÍÚ"KªaT¸.±£¥o†Ñw<(ºéën/ˆcðwhâPîßììôü¸¬‚n&®ë±|ͨŠê¶G˜™Á|ÐϱmJà~à"Ó=b~‘_ô—”̨]ÕÐ]О¼èg$.¥à+pßžßx®§ƒÏòERrÖß^Í~fÃý˜š¥¿¼ß³mƒ ,Ÿ¯ÈwB/Ž—ïWw Â5pš"¾×ûƒ/IˆÇçÐ’8ž N¾ ØÛÚ#$Xòë-!ç'n…ë2]úCèŽá?œ‚¿VUÆ£%'"$ó½žXG©ëêiÁGÀ 鸔°||>Î2L©çÈXÞß÷ !¶¡# Yò9øzîç÷Ÿ€Ïò‹þ’_„mÆSgå÷\Û ”ª €_-‹Ø®·=?éc‰åO ›ƒù0pùü8CªC7øç䘯æ+ò±3Œ£åûÕg‰o»y@%nâÐYzˆ6…õûë—¿|ûò¬Ú®.Ià«[Âxxþò—gÏ*ÜàôêüüÏž=» æßÌŸ^Mgsðn»ªýz2ÕVõ`z5›žÿöìæ×qž|¤[Æpÿ|VÜÿìÛ76Ÿ)ç|2Ãàgþ¸Ïüg¹OÊùDçe\üyÜÏæÿò,fùÀóû1d\5?‚ù0äoðaá/óæO°°áŸßùÐo5_‘?½„þ«÷«;-Çýó?‡&®ÄMücØ_Lô t û÷¾ç#´í!ø¤-áíõ0 ”VÙH"…O B~áoè2Ü~hôƒûóý;Òul‡²(H²Š'oÿ ~ÎOra 똆ÅÊ÷ûÀ× ír.a‰|E@+ß&Ëü#SB2øã‚LÔ ôc~h»,óI¸£;!V²ÍùÙûc˜¯ä¬¿KË÷‘$I×u ÜZúCx¿¢ß'à˜ÍWäKøêýêŽæœ\Oºá*\ï»Ãë‰K%Øj,ÅS ûwQl»£+¶ý&TÝò1Äî/[¬(÷EægtøfÂ|—2ìçÁϹFa»nëD‡û‘G5íÏ/¦.R©Âî×Ü>Û¾³ù%Ës(H–Õc>?>…!øp¿a@?‚/¾LÀgùÐjC<Åì~KŽ’1pæC?gô†qb¨H. ©°1[££7Æ ø[Ü`ùì}ò~!¢®°É™/ÂýcàÌÜ"Ÿ—ý›|$*á¼…´,UÓ*\ï³ý¶ñ)I…¦Nä …íßÞâ5±5o ßÁhS(¸Â£*¿·ò5„D òs?ݼ¿]p)ZxÎúu°$˜ãHBa–òýwÈ_ŒÏ[‚ÈæÏœq!ÍÂ+_ƒûµ¥Ïöïöø’·|è …OqŠÌãÇAÞï·Â[‹HÊ€K–}Ü“‘Åãr~ ‰Yë4BYÖ!2›o‹kŠ>˳T‡ù§„,«ôyžÝ!èÜ.òo—ïWsD¶ŸîÇ”P¯ 7ó“ˆbê¹M\ì¿ÃÅõ¼£±ý{ÒÓɆOtO‡ý||ù|N«|²ögD³˜¿gèóË„ùÀŸÏˆý:ýîg ôàø4¦:p²òÈO=ЦÞtÑsUÂx»Ý»dóåý·ãE/÷ñÚg÷"J¨ã¸48¾¼_‰.¯g+ïQ:à»ÓóU×ó_Í:Š&0®C¾³Å!ÿÉóYGã!ÈÞ.pJ®ùàÏ}›.ó ^ö‡÷ëpuçŽ,K`ûgÙ+p½??ƒÿe7jêBH˲®tÉ|+Ó…Ýh9Àh2èðHV4¶ÿ?àKe™ÕÅà¯ç_óYŸð)™õqÍá~/Šâ0'‹álÄî×2 öó9·4 Éà(ô#¸|1!¿è§Y›|| >–r¿È @öÙýaÁ;¼,‹™’spY?»•ó/ó!^À¯x1¿øqÍá}·âµ/ƒ_ÎÏ|·ÈŸ,úGËþÚGù²Áïh¢¨Á»'U¼æû~Ü5Eiç~'uù]Q¥ÈŸ7Îø¯"zª±ü¶¦¾¿æ.’²¯z*�¯Ío‹å÷ùÍóµ¯Ê2_ŸjÌ—KŸâ”ÿªñŠÖ(_{ªh¥ß¼?ÿ”÷púïÎïý¡Ñï´òý³ ¹ó\ã³þþ<S#ðUíÏ×ôaßçÀ·RÙ›_5Ž?†|,#‘íù’änÍ'¦2ê¯Ë×ó|A@°?oÏþþ@IJœçGØï ©äÍKöû¢„ãµýÃ|K@0óü6ôÇ{=Êû#ðËü±ùrÓߺ8ZDšˆ¸‡œå÷ñmðÍcMÃ%|È÷ùàËѼ•ûÍüý–X°»…iÙ6ÿ•ñn·>¿7¤l~%“̦áôcùEÿ>M!ߥí÷¹×ç;½¾ƒ™ÿ€þ¾…üÕï Ýt¯?¼?ä+ðþÿßÞ™5·m,Q¸g�Ë€° BE‚-‘–-QâÈq¶{åE•­RqR•J*ÿÿw¤{@›¡€™ÀR…8¯_5zyЃFç¨C>@•Fåáû2ôÒÊNõAx›ù=üùÇToI|¡¿þyz—¯›ý¥¨¿@nìRMëúèè&òﻲ?í_–Sï'žÂ¦Vó™ï_¦apq Ý•r™/@ýq~aáwîïvψ×þô^ªýço°>´Â»õ=üù{Þ6ý9ˆ±ÞÂz7ïoE8ÿ+Ì€®z°{ï÷ŸãþÁðþÒßoŸ½6wß¼ïTö¿xóÛaãþqˆó…ÝòDQØßÏ¡¯ÐÎ9äû6Ö?Û¤]ýéÖ¤*ÒCz¿ÖßJëúEƒßärs/Í‹zþkЪ™_Ï9ÒéŒú«æƒäû¿#N–ÐKO>{wa×Ãû§e'›œ.‘ç]9g{Ð_?ß–1¶HÊ‚³6b'ºÅE•Ì9„Þº½Åï{Xý™ŠwøÎOïçÐ]™üûÚŸsϾʹã´öŸuèÏíYá9 zJö/bï/÷·6qE¼G>€ Dþøƒ#ž°ÛèìÏìAý…k•3ª·TówéÏäü./ ‡(@¾ÿcÿ([5Ÿ¹?Ý/Ð[Q:q±?Õ["qïP'ŒRÑ- ¡÷o$|á>ŠíIn‰ª•wôç (?YùãA%s§ž_”ÐKò/hfO„•@«âûljȤyãýEnMš0²Ø:ô—ïã0Ts‡c}r¥÷šßkÿý=ÃNýòçCoñÿùõþ"‚ÿh?æõüÃ÷ßõ` 1FÐJlö§3†k919²Ìýë| îeäÂߪÌ8 Wæì9œoÓ²}ØJÙK5ûÓl#ËÞöóâ¥Ï0Ÿ`˜.²mûow[˜úß§FÅÐU£F5jÔ¨Q£F5jÔ¨ë›ûåpó ô2òœmÇ ùZ&ÆzØi¡þ^9H½Vf.óžèøÐïS>A¥Ý¸V”_ ¿Ï.k¡÷¯'ZNêÀ£+ÐJrsþAUjøÔRä ’cÃ| óüõo%«|Ø]Q>À‡s˜NõVþ~ÐÉÈùï§<Tó«úï_Q¾@“”)ÍG\¹¿Ž“¦6òöþ¼zTßog5óòç«ydà×rˆ“9»L@#â¦ü[„œ)y™ˆTó}äÊ'hÌ®æ£z[q%'Ÿ„a;Ÿ–Åê~»ªÚŸ.Ôü\ËÁT?#þý÷äŸw@%Éô\“Ÿ ó¸®þòkοžòûë9à~Çß?FÌí^³ÕývU¯¯õ¯?]øòXË/ÎŽ¥ÿGÊ?’<@¬âU6É”ù TŸ‡Y þ¾Ì'ˆ(ÿ e¿78_•…ùûûé9Èû`¾A™·ð‹Ó‹õývRùãuþu-§úëçz~ƒ\XáTæ|£Ì? .ýùЮŒònÿÐÕŸÉümþB“Sþ@.(h•oмŽò“© |ƒ¤…Öú~;©%ùïuþõÜÕò¥‘×þþÚ?¿œ¨ó&çŸ_N,eÚ?ùó‰ºÞ·ýÿ¿o àçÔ?¼ËÙ‡ü�Ê' Þ˜_éÞòߢ3ÉOÛøb}Ÿ”ô¯ÿªñ¯'ù ú¤®G_®ôçS~€*ÿ�ùÓ‚Í8¨¸6?Á÷« äÊzÊ'(°ÞÙ¬ß?ÿ0ß ë?&ÞØOÉÕõ>C^5x‘4î·c"ÿú‘Ò¿NüÐ×pùÿ tõÈ÷ÑŸÿ ù~?`[ŠüÉW·Ú9åÌ”õ¾ÏÞç@+¯ó ÂM.óVó1Ì'ØäÝGáÎ7¨d>B{ýáú>;(éow•þuâ.Óð¥¹^úóã·î—ÒŸ?—ù´Hò‡>c<)ó|]½Ì`s. õkþ åÈùœ•¿“Ëýšþ]/ù¦¨wßßçL  k™µ@Y����IEND®B`‚IMAGE 5270 ./arch/ground/smooth/oil_sea_S.114 ‰PNG  ��� IHDR������@���[a?��)PLTE���žžž'''+++$$$###222!!!((()))***%%%---...///111&&&444555888999;;;<<<===???AAA 333,,,"""@@@666BBBCCCEEEFFFGGGIIIPPPSSSddd777000TTTMMMHHHNNNOOO>>>RRR:::KKKVVV___aaaLLLDDDWWWYYY]]]^^^cccJJJfffjjjmmmQQQ[[[lllZZZUUUnnnppp}}}ˆˆˆ’’’–––bbbkkkiiihhh………eee”””ËËËyyy˜˜˜ooovvv>äin���tRNS�@æØf��IDATx^äšÕräH»EIbf3†y~8øþq¾” l•T’=1}sòvÅʽ·Ü¾H U§Ùl‹v€›U<!Æøêȳ£ÿìãeØù¶)aDuTÅËró~r~½ý�þŸîN.ïN†EUܲOW“°˜æ÷¿|¸À¸ÓIÚ¯E£Š—çü<®º¿.¯·ÀWÞŸówð×Ú/üã¤%ÊÁ[µ‚Ó^S#úþ¿>ÜŧAëòãoo"3‘د¬‚Û¥Á}õ‡½üéùµö‡�¾îþ¼¿Ë¿Ò~á›V—bƒ±*,Þ?öËýA_–ÜÙóÑr]þ¼—Ÿ]þ\œó£Å>þôüZûu&|åý;þ~øoÚ/(˜ºÖ;?ÜËç‡óÃ/fÓ·61uJÓ±Ïþ¸òâÆ~5Êrú½Ùü<¼âW~~ŸðU÷çý^>?Ç9ø{ö †aÛšÆÌå^nšËéIÜhõÏïœåÙdöùÃÂW ã*^–ûÐgàç‚«î¯Éëìý¯ï‡þµóó¾û÷|Ÿ (Ïø´ýÆýá…„˜gïá5<fëHÖe÷æf¨iöÒwÜ£[Œõ½\ÃFYîÚ/ÏÏø_ϯÞïr_¨·?ù)¸Ÿ¿'4ßíæoù »…ù«ZOØ/ fèN` VÁía8Ò–j»Œ1w“F¬íå±V–ûÐgˆÅ;Ñ^?Ÿk¹üºû‡µö¯äsz/«¤ùû2§~®d ÒïS\+· *¾áÀeÃÐL;ŠJë6 Ìì0 ƽp>o8Ë¥§ë¦® B3¿”©<6õÕУi¾aGa¸›ÌyiþÖßòLÛæG¾Uc¿ŽMùá¸ÆþBŸóàáºý™­|“ùyaÍë|?̶€.ÔÝ/`Ýqƒh2ØÓøønx~ýþýÍÑq£‰t,¢¢³µ_Æñž\àSƒX8õãÉ >ß æ<Šó·~Æ7Þ&ŸR©Þþé�üêý¥þXxÄÙéïGÓÒïSëûõŠbêí¨¤`wôéÓ¾Æîäd{NÃ4ÌÑÍ•ëzš$á­_Ì[{s%Œ±?„ûÎxö)ws‹™P”ŸùÛü{b–¯C¬Ü/k|ÿ ô¯Ü_IJüSá'×_†ü]ÅÅ:ßÏ-Ωµ_ГnWRˆYQÚz²éÐv’P-¼{önöÀ—Ð_Vä.uÃhÉXç¾ùqA(p³,íoò˜À à™•ûÛÍ®d6ðpÕþòï'¡þÑóý)ä—}Ÿòþ÷ö[ÅAµö RBÞЬÊÞò× œß÷-dhÖ¸Ú%ˆ"•¯<ÍN×"TB>Ñíâ|Bñx#<¸ÿLÚú<?ïsÞ´,îW™ZˆÁþË? õOn?ô¯/äú‹ok»çûúßÛ_Ug¿@)Â!+(áÕ¾ªcd¡àt>u(! ©u“ãÙ-éû)AÏýÂþÀÕ ØÞ?èëÚ=_-ô=G³oÁ¯8ª¨bð-èÿWö[u…‚þ¸x?ç{úoýVYVýÂ$ê늄-ÆÕþ°¯cY"TlK·ÿñ[,[µ´Fxyž^¥ùŠ\$�®6`s?í"Œ7~–¿ëƒŸúg:Ló MÚÒS÷£–\[Pòýã2ø¾þ÷ö—eÕÙ/°ǧW=Œºß O:ìùhvß¡jGõõ¬¤Ù&úr0„ìÅhv*>·€ßï/þgÆ¢[?ËßµÛ;=îWãùñì*V`?EâÓöŸ> •ºÂ›/¹þæ7Ç3ðÑ®�|_ÿÍþéiiZýBÿ÷¾bo;’ð¤ãþÞÇ6<?¿’dÔ•ëZI3ÑçG³y¾vvΗ̹ˆdÒ~%:>Þúi~°«óçqî×è¯ðþMIV)zÒ~ytê HÉ÷wìÔo~[µ?ì/Ë«±_¸0Íù/_.0N„'`ãw’N] Q ÙG‹ñ±¯òwçh1™ÚñýÍvS?¹åïß¿—åïê¤qzÃýÊþ,ë/Aÿv»ý”ýßs¿Ž�ùþñY‰Ïù¾þkòÏ) ¬±_0âÓ³ÖíÇß®#³?ÆO¤ºR0¦?¼"æÙÕ¿¾Yù»Â+bWÿz~XLµnO0Å[ÿŠûÆå®þÃk+ó«ûiÿÐLˆ-[ß”úÕ¿¿¨?ø—ŸïÿŠîí¿öâÙYë²$²Æ~azáG}„¼ÙçQ®éKÜwjKcáâý³»¾£ßúY~^ˆà}{ÒwŒ^tüóÿ Á¿oò|GÞÖ~uÿAÚÿÅhyœÞÿÈý¾?XBÿJáóÈ>ŽnsýòSöP�¾·ÿÚ7aÿR.Žר/— d8vðÇ•ð”CÁ—5ð¯¯üÚ¼Ï_¼œM§ŽH] ÉÆÒÎ sþº}ÌÈCQ‡®†®o|F _’Í¢žùuú#mõzîñ?ƒéÙïƒo€¿_°ƒôþ|›ð•]ø¾þÛý„?³8´Î~a>\:g“×_ÞÂSÎáÝÒ‰¸ÿÏè–y�ï냎ÏçCüO/¿ì´ŸE­Öp–ùû·ƒÖþðò—Ѩ â2ó+û§ûç/¿,Y[¿¯lßç«¿Ÿ›ùï¶@;ØIyùá]z¾ÿ)÷ÃÉá5ø÷ðòþÐoíÏæw}'v«³_8¹^ÄfîÒñ yµ=Ðæzæ£|æ1¦!Y‘N®ÿˆ5Ívwm¦Ë²&혺3r%yã]߀_”Pàkä~…Ô‚ü¦™®g»G—-‚u½?teÔè3ÆqÍïg»¾í®Àú=ð/Óû5¸ÿ~¤«à5eëg‡ó’ýôC+øÑ*¿ ZæWÆkû¦Át\„ëøáÔ7uÓ|”FØ0 úš¤5^·ÂcW7Ø®°Ò \ìDzê;XÖlè?-šÇ™ÿz£u©¹}·‡Qè�€|ð™û»ÄŒu‘ÿˆB†€s©æ÷ãÐ8¡6†æD&÷G÷»Ð™©+]îO0ÛôïH?:öYæƒ`CBàq\´_K°©m|œùSð™QòýªÎݘ†‚E…¼Ú× ÓÀ!Ò²÷õ«ùÝÝX?0™"£]¿Îï mfƒ?éEÜŸ(…¿´ùý‡œ·8€}jäS„™“a?ƒ!Å`:Ž"¿Ks6Xö8?äþç%;âç KÜwùómêÛàOzAæ&“%‹H±O-‰5¯úûóyæë™ïƒÏÇÐ8_÷Zë0Ÿ@ÿô[ñh~8€oB?‹ Ü{Zæ U'}_— !ÒY!¯ö%ð-úHmïëÿX\£ÔG!h'ÿýâ&íõ_#|$œ^ƒ¿º#¾oÚGiš-½ÉxxüåYêË8ÝìHwýøí]œòûš!!÷hÏï?ŽtYt{?÷'÷|¤a„¨ŠÂã¾DdÌyo’õ¿‰R_Ùú’¦±Œoûké<´â|?ã’ETÎï×;Ï|¡êØ?^8®)ËJKžr–ú¶kÈòc=ßa¦a4ì?}×ÕŒq>¿Áìr¿¡›ÆK×5vyè¤~cù£ ý$YÑ5wÜ—DKÁöèôä.ä¾ÖX6~ô×@²‚uoì!QRgxô)ã÷—ð}$ ·À¿¨ÔÂκ_æ_8|¿|’Ýß_ù,ó]ÇÕd؇ݑ¾‚ÑìÓö³3ó½šV+åñ¶ÿús?ãÊÆ‡~¦iÛ¼Ÿnaè—sF§Ÿî¼Ì·…ªC-'.NûúÓþ$V??[<Ú‹=Ìøû>äûãgon|¾‡M‡´“=¾ ¼M‰ŽŸý»€+©/Z^t÷lqÛ× ]DzÉP“J bÿªM¡?ø'p,IÀ*I„ =ņ~mîÃ÷9nè™Lmv%qnöSßÿ†ßoðûÔì* a±'™à7EÊû-N¹ß’ÀnIÄŒù>|²ñ¡fNÆÙª§Éó¡¿³â¼Æ1ï—¬öÏâ<Iï®ö U‡ˆáaO¿káI‡$Ùëö£Eþ¾¯BDðÚéRÈËôË€#’æ£d—g~ÆÚ)¥‹¾Õ%–ªÛšÅ9êªDå\î¶›„PÙs, Ü�>…ûÑê~ø>.µDÅïð 39ÿÉÝ¿ ÷6¥ ‡t©EÌõýP�%áa¤ˆ¿Š¥(è“IJÜ/­òUðÏ3Ÿ4%Ï&¢E€g>ìSIÀ÷¥Œ;”’µû)äÃýgr³ÓDÐú‹ÀÍÆÊ\ãp50¶½b\Ï×5öhñt~$%*M¬3ð1óœ>^:à"å„&$ˆ]ÛáÁ,õ)ô‹ßçhÖʼn«vùû=µ¬‹Ùü-9¿ˆœf®*RÕÀ8ä«Ü—üˆaÍáÜŸ9HÍ8‚ûo×>ô·û¶&¥÷«ª¾òߪЯmü~Ç냾˜rÂû#è'ZþÖŸ¹„Š(Í_õ'‰Ä÷ÜŸ¹’H7þÛõþÆ 8ï§Rª>ð…ªCíÊn„Ÿ¦¯=^Là}ÿ¿?·±º’¦³\þRøïŸe:Í|ƒç+Þá]qu¿ÕåûX8žN}ˈ�o¥¥~#ô<Ïó§G±c"ŒäcΩû°Òã!àprÄÿ~�§>^÷¿ö>÷9GX^û:pÈWÜzA8 À—Î¥Œ«™?ß÷§³ÈÑ•–L²þß@¾šúçýV~’ùY¾Þðy¿ àù†Äûe߯ú÷ú""éû´ðÄó®G bòh¯û]B;]o±è‰‚5;üW*uºþ›Òà¥Ñ{ó®G©*&÷S5å!AÙû»²ìMár8›F² ÷S1å”d\wÓ»ÐÎŽž…HêvÖ>¥ˆŠí6U–ñüÁŒÿý‚¾Ê}Þ_…þm‚—ñt:ƒÙ'ðåM~O$à§÷÷&ƒ 1òWþÍ¢G2ŸâeüÆhvz)(ó}È©JÅB?àà§ýºé~ ©I³IaߦÎ|ø~ÿ×ÎÙ>·Maü*%Y¾“űlGQŒìPhS—¤€ ƒËëd ÃËð2Ìôÿÿ_ÁÞÀ-Þ»S®Ã`è=_ŸÙ{v7þ’Ä¿%6Í$_Þ¯t¾oßRßn˯«z–S—ü4ð>Ô÷ŽÞGòkáÛó¡ÿ8r™›„"¿ªjU÷gϯk·üZî7­ê­øù¡ów»°zºž&TÛ¨…ïçëÍòraàûíùÓËåpè?›?«ÏÖO..Ø_±bÈßVÌš¿¹X/;?€¼_Ëù¡ÿ²¿TÌÿSÌ­ùk¼Þ®vþõr=bõ_×îô‚Rï[øþü·«û|;¹ŸßKFÈ}›JÈ?:?Åó•O»ä_Ñ |4tœø|È/Wç|¼Þ®±œ_î?)ï¾ÛÏé‘=ŸÜò%.’üù£ŸgEÄQW>ý–A}„±töÿ¯_L ÿLäG¨¿ß~ ÷"×ùoÙ\ÖO°|ð­ùªž8ÏŸÅÏßo°ïŸô‘íáBøý“i”@:ò[Χãù9ðñNùáýTæ/ðþÆöüPå_;Î*öõ—óU=qœù<—ù×È7Žíù„eÄM-γÃ:óéLüœ¹|Ë–/"ÆP?ø9´çsÞD,Ëó»çŸô9ä3‘ÿ ʱü¬C¾¬'.*û÷x2Vø÷Æ ï°‰£€?_…iÆx³Äì®|:çÅò&!.z ïsÎGËÜ¿zÒ%Ÿr“>ÿÎ’ó‡ õ®ùPO%÷+ö'Œ¶Ÿ3{>¡ÄUᜟN#<£+ŸNßî(È7Ù]ò…|¿ óóaΡÿóç´C¾ v3PóYùÿšºòéE‘‘ÿ¨õQgš `~òÆJñéÿ@€—————————————————————————W‘7X^/óýÓ9H©û$œ žÿ¿ðó¯á¿5Ñûe©øÁç_€ÿ€fÿ¾4ŒïG¨£îHŸ‡ø|vŸ˜û9`I~ÞÝÿÐä?mùÉç§¡’ü‹¿w÷yšëSÌ¿Vý·ý!`À«¾¾òuÔ×G°ŸƒÕ=ÁÏ›øu‹ÿÞ)7ùŠÿoùü<èë–Ôò÷„}bð%¿o¨/0_ðû»ûAbóíü>ùtý©ý¬F©¼ÿÿþ‘ÁW|?­ ?¾ÿŦ ¸bÅ߯u1þ ¢SÜkïhßÇý¥ºPC½èïªØóå|Uëop[ëû óFìçPµ|¼‰ÿ·øÀïüß¾?�•àRüýü\—?˜üRñûCÝû­Ì·ë/†zl¾®åÏáÍ}÷ ä~VÀç üúØî¯ ¾âÿ¿¯5WËßkÁ„ZúLïÇS¨/šB÷þ‰òÿf@ê~€¸?ÀXÔìe;ó)ï_úñ€B¾èo/}üøÜÏ¡Jðõ~Z|bõÿÏéPðÿ¬) .Åß³ˆü|]½º?6úzå—È|Ð_Öý…¼9Y¾JGí|Õ?ˆÿœSÙòžµû9TYøu»nõ{òý‚¿×åHþžÎ*£›|*ùý;úíý€]Uïͧï_ù1ÜÐö×îﶺÊN5mü,����IEND®B`‚IMAGE 238 ./arch/armour/cloak/oilskin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���VV]ddmss}Œœžž«¬¬»ººËÉÉÚ××êææúmJ ���tRNS�@æØf���uIDATxÚÍÊ9€@ CQ<ÌÃýÏ‹-” §æWQü¶ß•L`W¨ ð ©  ³ Dv“e` Vp?•Xky0.æÁ²�PP¨é@§Pì 4 åAëOÔÚžØkô)€‚È�ÄÓ‚-2àuÿ©äæöóî¦����IEND®B`‚IMAGE 279 ./arch/monster/goblin/ologhi.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cDÙ¤���¿¿¿Ê¹���tRNS�@æØf���§IDATxÚ½ÑÁÄ P;þÿ‡7‹nHE=ô°“4’ö‰˜–ˆþRRþZ“ÖŽà–{TUƳ‘Ýw‚¡*0«dœ‘ú›^/ÂDª(¸?�¸’ОÚÇ$f )GPŽ D”¾ •XŸÐjc´ü®Ö´¬9¨ž©5ö~{QzyV€àxËÚ[N@žÛÊr Pf [0ª¸\”QLäüÇ_ƒ(F>xWœ¹R����IEND®B`‚IMAGE 269 ./arch/monster/goblin/ologhi.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��� IDATx^¥ÐA Â@ …áîæÝ#z�Áµ•Òx0áﺢôض4LSA7f÷¾E^H¥ Kø®©ÛCk €_�Ä`kÈ·f2�Ã4l‚ç>6p)Ї‹XÃèP@ö�îè �Ò|Ù ’_pÂ!Z!} ~r;;B�f!gH¡ÀÊù¸¦,€XÀÂÒ­ÎþÇ &kú •ÂøêþOñ`'����IEND®B`‚IMAGE 192 ./arch/food/onion.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���œï÷µ!!ÿÿÿL÷ß���tRNSÿ�å·0J���aIDATWc… PF«(”! e„ºB<¡`F€DWˆßCÃé]+„a¿û(„¡÷j!˜ò{7”±{ÕFˆÔº]P‘w¿¡ºÖ¯‚0B^ì3b˜  Dv!Ù �°r[ÉjŽX'����IEND®B`‚IMAGE 179 ./arch/food/orange.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœï÷���¥R)ÿ¥�ÿÖ�è%b���tRNS�@æØf���RIDATxÚí‘A À0 êÆÿóÖBÉa™;v®®6$íPÀÄÄ1è`rÝBÊ<"¡äVƒ^ "S•B˜† ï ü»Cް9¥{†FŒÿ6íðäIì‚Sp����IEND®B`‚IMAGE 244 ./arch/monster/goblin/orc.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""Í…? R-���d3‚Ò-ó���tRNS�@æØf���IDATxÚå‘Ñ Ã Íîìÿÿrs -ñòÖ§®(ÊŒëúU<bK̘8À„‹ž¹Èü@±•X×rø˜HF!RÑ^1¶Ôsk`[±UžpÎX %úŒ0 w!m¨Ì�WÑÁ„ ïQ½ rôáÞ•&!ë;‰é*Äð zw¥=çj“ù~ Úð¹×ú·¼�R4©~…Ã����IEND®B`‚IMAGE 226 ./arch/monster/goblin/orc.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""Í…? R-���d3‚Ò-ó���tRNS�@æØf���~IDATxÚåÑ Ã0 [éôÿ¿<\S(ÌIŸÇ w±ÁÇÏÉ —Ø ‰•}‡ÓçšBâ°›BÄj<’]w4(!%À,`‘b1ð€Kd˜PLm @T™0ñ:†þmp=¾xºw“aG—h­V¤¶fÎÍæÏxfÿVŸJ+eø²����IEND®B`‚IMAGE 293 ./arch/monster/goblin/orc_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V!)����c1d3BBB²"" R-Í…?„„„¥GGg__2Ž´º���tRNS�@æØf���¯IDATxÚÕ’AÃ0Ûɶ˜ðÿÿÖU•’\z)flÖ’o?.®¸sÁι?–Ù·ÁÆW€~K‰ˆN€¥ºdC 7Þ¢žölî/ã’‰Ž<\ˆXÙåÃL±†‡æ0=vù…Ö2bò€.Ge!uFžMY'4„±p|ÃÜDóVHL€ áÏ©'}sAñè?…4¨ê9&ªA6²[¶žSƒq|þdð™Òø¯zïR쟯d����IEND®B`‚IMAGE 296 ./arch/monster/goblin/orc_chief.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V!)����c1d3BBB²"" R-Í…?„„„¥GGg__2Ž´º���tRNS�@æØf���²IDATxÚÕÑn„0 ét{ãÿÿßšé$ÎÐçîCbi&xÙ.a{Á<à™ÇÏ÷ã(þŠsß–Éw€¶-f!3{a’‡Z>ÆÇ­—_m?l�É¢ï_$2„Èö/Ø3RvÖÝŧ1ϱݧtB‘88F]Óµ#@n‚‚³ž0˜‚,>øZP�Á• Nžºr V¶.’'À£Ç9Ø£ç¬sÿþv𞡌ÿ•_.û\˜Hë����IEND®B`‚IMAGE 218 ./arch/monster/goblin/orc_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿÿ R-ÿ�����Ì“ZL���tRNS�@æØf���yIDATxÚÕŽA �! kÒÿ¿yKêAˆÝ»ƒe4‚ÃÁCÀí¹ ZÀˆÌQ³ïV ‹í=4剭k…RDûæSP[Ü‚•Í©5*ô„¼Ús€c†‚ÙÄü Äðx&nØ@Þò ûcú>M„/ð é����IEND®B`‚IMAGE 290 ./arch/monster/goblin/orc_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���!)�4Vc1d3BBB²"" R-Í…?„„„Q];«���tRNSÿÿ�×Ê A���°IDATxÚÝÒ Â0 ƒá0Ø»ÿ…Qˆ„ ‹8�ž¦®ËWõ¡rý§£{LÁ¨÷ÛOÀ¨Ÿ§õè:• `ºU²ƒHŽ�É…jõðc€^6€d1@¯Yv„PXwâį—í T@v* (aIr8zv0g )¹�@P¹ Ó`Ôû) O€Þ‚”B¥+Bc›’{ˆÃvÓv€Ì¸Æøžcð¹Û °äÏÀiq 3¾¸u����IEND®B`‚IMAGE 267 ./arch/monster/goblin/orc_leader.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!)����c1d3BBB²"" R-Í…?„„„™y‹���tRNS�@æØf���›IDATxÚåÑ Â0ã¸v·ÿÿÚ£âC¯Ÿ˜ W:~¾øÖ~Ü×Ê/ <“VS~ „ΛÃËQhóÖùäFyYt߇mì¡pòYŽצ›"ÅQᢰ^ØFê yJ¹ Ðå1ç�Ũ’Æk 8y½‹©ÄéoKá`t Q§s8ó´så© fõ¾F´|ndž𠔟_����IEND®B`‚IMAGE 173 ./arch/food/orcchop.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEœï÷Z1¥R)΄9ÿ„sÑ•���tRNS�@æØf���LIDATxÚåÑ;�Qö¿fßÖ4J)4÷!‡òsÀðèÁ½÷Ôe�¶Ñû ²³]n˜D|€ŠWÈZ´ãq)î”ÿ…™òi:²nuæ�¢O����IEND®B`‚IMAGE 619 ./arch/jewel/ore_b.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��$IDATHǽ”=hQ…Ot!dãb²Š(j I‘Æ,¢)*D#AaEü)âDbc!>I¹j¥l—…HL!+Š6o-R‹ é,µ° 6Z|ó³3owfgïãñ†ásï=÷ÌHÿ-vw½_’”“TT^’´£;‚*HÚ©áFcÐB6(Í5Í)~“|D¨ž n}ð†)Ò`BñÞfÈnÃü}ÔÏx„¨Ð“ëÃkå5âW¸ËK¦ø \f¡ÝÊ·”)#æÙÇ~°Êú9Éq<9õ>5¿Eäé¥6rŽiÄcæ°‡Tí-Â`É3S£9!àÆ Mºæ g  J›½ñAEv@r2úÔJáCMHa-@¼ @•)ôµM &RA §ñ÷´Ý£ØH$ˆËPØj‚Å$Ѝ M9m¬ ïÌQEÅuÑë Í´ÑCˆî!*Œ5"ø¡å/Üâ9íåŒf÷Ö!ÆÚk ‡2£Äå4a#qW¡\´…Wg™DôÅ€܄Ш+4îˆøĵˇ 9±v‘Ûœ`…ÈY`±äˆê¸"7µùƒ8OƒÓî°â’]%XÕ·Þr¶"~0”îŠH 1ç÷¸É%Šã~'W¸^Ü‹È1Áldö)®p¢&„6~Rò/ýf$Ýmþ ßõç K,S¢î�ã®Pb”‚«ŠÐ¶ö®P‡ø,i]‹-õ)+AñW¸ûÛ¸6e����IEND®B`‚IMAGE 889 ./arch/jewel/ore_g.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��€PLTE��������������������������������������������������������������������� ���������������������������������������������L_HžÃ³ttUhO$7''8(<O<cv] 9N:��oˆkn„g?V@/B0. uu)<+%+ _rW0"h}bh~e %6&v‘vx“zš‰Š§””µ¤ h|a ':)(;*jfl‚gI]F  7J7q‹nj€e 3%!4$o‰lpŠm4I45J6,?,(<Q<<S<-@.BW@DZC,M`GNaHObI*=,XkR0C11D12G33F3tn#4$ ZmT[lS&7&bv[–·¦–¹¨—º©˜¹¨›À°>U>íÿÊž���'tRNS� !,-5T_e~¢£©¯±¸¾ÃÏÒÓÕ׿çëñúŒê%��IDATx^UÜ@;ff¼Pu÷23‡™™™™ó×#Æ–íÕ¾¤FóôÕC«ä¿XßeX"Ò#+‹¬ê"¬[&«×6[|žÞ"¨ûm³'ÙÙ¹ãÀ—ÚÀèx�+:ö 0ÑÏÌkJt¸ÃÜÔm>¼z©üÇÞ³¦ àÕ*Cç^œ8Þøx³ÙbW~w§16ðªÂ×!ìjnG½1Ž©@vWÔUƒ¾7 P@Áðìqu/A”¸ƒqcº^>( (awG1À ÎÔ˽9!^ªŽÁÈÙ¬é¥a ¿¯N461‰”ÜÁËË”vK`û©Gß3—‚˜œbQªÚŠ—ª*s@v\˜eE(iŽ I‰R{¤¤9Ⱦ7o NÒ¶&ó�IŽÔØ|dF¹?úMŸ Z>G4öº¦×ï%8½Ë…åðÐáÇÛgÏ 9Ò”ŸèiƒrHdôþûUËç½3q¸Ÿ\ɲQ€:KIA ý[£…îüö9pédg����IEND®B`‚IMAGE 915 ./arch/jewel/ore_r.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��•PLTE������������������������������������������������������������������������������������������������������������������`KK²²²zziRR6((9**P>>w``+…qq}ff-!!r[[ 0##B22~ii‚llŽ{{<--UDD N== cLLlUUv__†rr|ee I88 €kkWDD—‡‡ ••Ž||iiZGG^II`JJ‡ssˆttQ@@RAATBB 9++C33D44F66G66aKK4&&J99K::%7((8))&'kk;,,=..?00@00Šuu, 2%%3&&nUU©¤¤ª¦¦«¨¨¬¨¨¬©©¯¯¯nWW‘#pä���'tRNS� !,-5T_e~¢£©¯±¸¾ÃÏÒÓÕ׿çëñúŒê%��†IDATx^UA  33^¨l/3S™™™™áwGjukgF+EJµúé««ä¿X.Í™#Ò" g‹,’æ,›'‹—N×ùÔ³¦ÉJ òô§õžbc“Ý?LJŽÃ XPÜ Ãítï§4EÑÀ:Úóþþù—åßvo„%¯VÛwàÁÙ3G~ž®³)¿»3:Øð¦Â×1ìjnG}t'R쮨«/|»m@¡€‚;á9Ø»êV2‚*(qã\O­¼S(awG1À nÕÊ­9!^ªŽA瑬éÒ°~Wh¬b’”î`æ¥ÍXúúÁÌ¥`ž´1+†˜ªÖ㥪ŠÇÐ" ¯zFÑ�JÊÁŠT¢4É#¤HdÛ_ž3a7é åHÆê=ÝÊÛ¡gzrÀò9¢±e×c½|Ì(½æÛ¡\Ž(̇kßXÈ‘Rr…®Î °B‰¬ƒÖ}`¿&ó9$Áî½—úOôµ“Ë!YV Pc. ¤ÀÙ¾6ÚHþÍ_ÌÉrÐvjÁ)����IEND®B`‚IMAGE 904 ./arch/jewel/ore_y.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‰PLTE���������������������������������������������������������������������%����������1�������������������������������������«¦Xxr/¶À¡ƒy4GMJO��� �fd%’‰A��-�� �«¦Z‚<=LYZAL��mn' *NRde"™F)=�™“Jž–M£ P8H«¦\«°¬¶“­¬n@I WX›’JCK ��›•Lœ”Mwq,�!�˜EJO`]OR[[¤¡Q[\\]][abb_HM¦¡Q§¢Rª£Qª§a�� *gh%ii&mk&OSpk'rn+1�TV,@ˆA��zr-zr/}s.@J ‡}6ˆ~9‰}6JQ�#�%�:H®¸—¯·–¯¹˜±¹˜³½ž�%�¯ž0t���'tRNS� !,-5T_e~¢£©¯±¸¾ÃÏÒÓÕ׿çëñúŒê%��‡IDATx^e1'ff¼PÍÌc8f3333Ó/´gkßîÓ)RÊò§.Ë­–ÿbõÁ‘Y:_dÙªE²|e½Áóæi‡„Ò­_>p”­í9 ||0Øs^Â’¶ž¦÷…r›*ŒÏ\áîõggŠ¿ýÚ(+rZ­2ôåÏÛ{‡*'ß×lËæªTºÇ.•ø4„ŸÊä ˜VFQ%hÍ S3@“‹v ·€*ÉQðãÕ¤f`„œÍZq¯D0’\Ãwx]+vf„ÐÔp‡¾ó­ĦIJr»jcݥ؃wg)l—„͇½J›†÷ÀÄ óÂåj#4534Ì’°åÉ�Ö€ç`M,Yá&)q$°ëòãcSŒyI€tŽ ¬?Ðk¼è¹`O§<;G0vì»aw.:…2G¾fæÂbx¨ðãêà·7¹9bKÎÑÕ7ž›C› ó{?øÏ‘ìaÿÁÛ“§û§ÉÌ!­¬ ÆBR$ÇÙ½1ØHþÍ_# qˆÈãU����IEND®B`‚IMAGE 208 ./arch/jewel/oresmall_b.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE!��{{{½½½ÿÿÿ���½,´���tRNS�@æØf���oIDATx^Í‘Ñ ƒP ûÁ¡ž�2Â�‡Û¦ö‹dƒ6>Y'KyýÙ3S•ÙyÃäÀ^WEI0Þ«r(„Þ-ÂûM>+EÔ}®V8¥d . A@­ó›1b,µ#¤Î_-mhôË|�¼b¹†����IEND®B`‚IMAGE 207 ./arch/jewel/oresmall_g.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������cvež±¢Ûìç97J���tRNS�@æØf���nIDATx^Í‘Ñ ƒP ËœÃÎë,ÀþKµ_$´ùóÉ:YÊëÏØ™™ˆªÎ¢&�Vœì œaÃlhEÔP¿[¤ÖA=N¹€AÆqÝ­PÙÅ=(€ q_Ø„0c©”iwþjiC£_þã w ‚òó&����IEND®B`‚IMAGE 207 ./arch/jewel/oresmall_r.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������xcc±  äää? YÖ���tRNS�@æØf���nIDATx^Í‘Ñ ƒP ËœÃÎë,ÀþKµ_$´ùóÉ:YÊëÏØ™™ˆªÎ¢&�Vœì œaÃlhEÔP¿[¤ÖA=N¹€AÆqÝ­PÙÅ=(€ q_Ø„0c©”iwþjiC£_þã w ‚òó&����IEND®B`‚IMAGE 207 ./arch/jewel/oresmall_y.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������™Ž@¼¸“éïØ>q���tRNS�@æØf���nIDATx^Í‘Ñ ƒP ËœÃÎë,ÀþKµ_$´ùóÉ:YÊëÏØ™™ˆªÎ¢&�Vœì œaÃlhEÔP¿[¤ÖA=N¹€AÆqÝ­PÙÅ=(€ q_Ø„0c©”iwþjiC£_þã w ‚òó&����IEND®B`‚IMAGE 577 ./arch/construct/tower/out_tower.x11 ‰PNG  ��� IHDR���@���@���·ì���$PLTEÿÿÿ���½½½{{{¿AwM BBBccc¥¥¥çççÿÿ@aO^c°+���tRNS�@æØf��ËIDATxÚÍ×nÂ0 P®!nJÿÿç‹…Âì"U»Á:iÜ›—¤›¸]<åTÑ ”^Óm`™€&9…·5ÚÿŲ}¶í‘à}¶í‚<À¢Ï0äú3Y¡{¯óƒ€ÄÀ3�( ‚ €7àþ-@"€�z�D�ß÷ ”ôoúßXË('�æ�dÖ�R¾Ú¾î,àýuU@ó ÐöÒÀû@ü‡€pǰ�°\Š­Âq,9`#¡¾$ZÙ?ë#€ ô~h ™¢!„í[Z˜}ÎÔ"�О˲ilòm#€@ÿ °¾Á-lmÕðºÐॵ¢‘oÌàWA#êÿÈã ¡`ŒèKˆn¸Ëg„õ¹„±þg ´…"NMëC)s;`á)ˆ1<·Ð±]ü œ‚g@C@¤õ,½í‡˜¿ÀÀJây ˆÞÖÏ€?>¾r›]ì_ ²-c+ nà3 AÀnf$ÿ̦0 Ö }ä¾xZÝ+øTý 0�­îu�’H°Zm nA8p�;»úy‡mA\�ˆ jlŠü›Möœz§»Û�ûìç Ïíÿç"S„$©Á����IEND®B`‚IMAGE 214 ./arch/misc/Container/package.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��8 F!X*a,‚B'Áq8Í…?���Äéò5���tRNS�@æØf���iIDATxÚÕRA À0[ÓTýÿ‹w³d2”ÅK i´âñ'X†E—¤lêCp¦$³P$Øø6|N 0M�.¼iLhá=’šÏ@BPþÕ°g“êÕ•†xê蓾0zuÓûq@ ÀöÞ����IEND®B`‚IMAGE 431 ./arch/construct/tower/pagoda_tower_east.x11 ‰PNG  ��� IHDR���@���`���š„Ú���0PLTE�G���…��›��º��Á" % , ,3/ P)B$ôóÍ�����tW§½å���tRNS�@æØf��-IDATxÚí’ÁnÃ0 CÛÙéºÚ¦ÿÿo'#j‰æ X/Ó‹¹ˆ¦Œwù/€1àúþ]Õ€zÈ€Pñ6?µ€Z÷ÎË <™˜Á€ºÀ 4xF,ä€G€+è `4®ÀR�Wp´­?PvV‚à ÅŽÖ btðþ­ÁðPìóƒ©øýD è+`­Ï7Xœ—Ø|¡8à+øÕ<'òr>`­ÐÐZï¤5b¬ù1FG·c?6¯H  „ˆÍSBÄ^€ ƒ £”ðHJ˜¦„)aJ˜¦„)aJ˜þ­„$(!‰IH‚’ „$(! JH‚’ „$(! JH‚’ „„m÷í›/øÁ€×üv¿q^ èÆ¶=nݼÀ°ÀgŽ\_k^n¡—±����IEND®B`‚IMAGE 471 ./arch/construct/Palace/palace.x11 ‰PNG  ��� IHDR���€���`���⤊{���PLTEÿÿÿ���¿¿¿ÿÿÿ­À,���tRNS�@æØf��vIDATxÚí×ÑŠ!DÑܪþÿo^v„8Ùh0v$ÖKÄiè3¢ƒ¹œô†™y  yá¥÷Ïä°' 8€±þ@Iû˜›‘ïœ &æã�ñ0K�ü °ÖhS3ÛóЖÚbࢠØò÷¨±D Z²V¨� ò�€e‹<€EÌí±�°,‘°E6À‚4€%¾`‘$\ú;ïTÀÜþý›ð7Ö$J{kö_³a€™|:Ô;!“òÀš{Ú P.¥3 (·•’þ¸î'jéå“Á=`‘ °jÿË.j&þÅÀ_°à²mÔ‰¶´í?°D6ÀêÛß}GÆ�‚d€­§ç:†>›ÈXêÙßå÷yilÐÝb6]ꀎÒ8€Q@ÝßSî±! $5ƒöIgé `j`CÀÛÒ ˆ÷"wö�¼7°`E>ïDî <,ÌÀ`}î�±8pË^ÛÉÉIÉ {mè|ð¹����IEND®B`‚IMAGE 716 ./arch/player/class/Religious/paladin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���öPLTEçÆ÷ÆÎ½¥��­œ��”��ÖÞ���BBBµ��µµµ½1))Æ��ÆÆÆ­��JJJ­­­)))½½½RRRZZZcccµµµkkk½��s��{{{{Œ�Æ!991œœœ!!!999ŒŒŒc!!”B1119��¥¥­!��­�Z��ÎÎ΄��ÖÖ„cc��­!k!!Œµ�ŒZZBB{��”!½”ZZ”ss9œkkÆ)c��)¥�)¥¥¥„BBR„„„ÞÞÞÞŒ��SfD���tRNS�@æØf��„IDATx^ÅÓÕŽä0PW•9ÌÍLà ËÌüÿ?³ñ<u2Ý«½O–êȾvöORN§Ýý ±vQ¥E’$»µ6ÒÊ«ánÀXo¦ÕÔ-÷¤?¨®V»N²Y…áYþsöXñmØì¶>ñ¼N¦iºòr//~_ÝíyäõòÈ+_ܽ»û>9š~<x߸꺛G½¢ÿ…� âí¯[:l€üdZEæ¨o@Œí6ðÊþAt, :¤cyÙè¸\–ëSå9�Hò¸JoùR‰F„ºV€Bݳí,6Ë1Áó ´âO땯¤� >aÌ?³fc±Ÿ‘®A�Ý·À¹ �¸@cꕘ±V®9#·ð!ή[àReK?�BâãPÐWÜàPƒÓÖê@ª‘1ÆÝ?o‚Ñ—@ƒhW˜ �_^Ô@“^áÙœ‘ÑÑ„+°§ó9�‘6ƒ·‚׬'o¬ý Ÿ cì}?ûOù ú¥¡ä™÷ñ����IEND®B`‚IMAGE 700 ./arch/player/class/Religious/paladin.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTEçÆ÷ÆÎ­µ��½ÖÞ”��œ��BBB¥��­��111­­­µµµ½½½½Æ��JJJÆ!ÆÆÆ)))1))œœœ���991{µµµ{{{½��„��!!!ZZZcccs��­�9��kkkc!!¥¥­RRRZ����Œ�999”ÎÎÎBÖ)Œ��k!!µ�ŒŒZZŒŒŒB)½”!”ss{��œkkÆ)c��!��¥¥¥BÖ„BB„ccÞÞÞÞ„„„Ò–Rô���tRNS�@æØf��€IDATx^½’Õ®1D]mf^¦ËLafúÿ߉­û2³ÙÍ[rž,ÕQ©ÛjöO¨§ÓÓýiÚu÷Y¥iº;ïº.=šT™gÄÝc«IReSûÜÃz’]·ûÂ6INŠ_“dÕFŸ¶²å2½dIUU­WxEôó:ꯒ.BÏ[ís!¾_ß‹·ƒ¼ñVEãÕ¡/Ñí[yܧE³ŠÖ¯Æ‚�2¨¯à›®'á4;in8,VR¹{Öoðêõ‹æÐRJ²’toú3ŒFõâ‹Ãs`&ÉH îœ÷…Ú…<  `Køës9zérÉ­ $åþÇÖ¦�ÈE •B НÎÙ°bîK€»3¥Áò`Άœ9r¸N®¸$éo¶Ç… áø¤IÄ0Âá0Ÿ;€)˜imG$î ~N®)Ј¡À·G¸à€H+i³äg¥DÌ©AÒŸ#°'e H©´¦øµ‚É·)ߨ+.?< ñ»÷þ¨†aÈþÎÝû¿üdmì®×Õ����IEND®B`‚IMAGE 633 ./arch/player/class/Religious/paladin.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÛPLTEçÆ÷999JJJŒ��œ��­��­�µ����{��¥�ŒŒŒZ��ZZZccck��µµµ„��„„„”��!!!¥��RRR)))111­­­µ��911½½½ÆÆÆBBJ��¥¥¥!c��R��½�sssççç”””9ÎÎÎ{{{k�Æ��œœœœ�”�ZRR9��ÖÖÖŒŒ”ZRJs��Z19))JBB199BB��¥¥œ1)!J��kkkJss{)��½��!��1³$_���tRNS�@æØf��LIDATx^Å‘5zäP£†Ì^f¸ÿ‰ì çI‡[iý_Ý`!¸Žº¢½öN{A=¦ñ»;4m=çŸhû>fîÌiñký*œþÀåÌìÆ ¬˜+9)¦H$*ìÏhŠg5L„Èu?àÂÙ9ú³ˆ:»pÃ»Š¨Š27óô2‰ò¥ø‚on8§ ?m6(ÿZ&á¥WQ(Ë,ÒAh¬[Ÿ¦<þ¡0r"ÛX¾:­Ò”¥Öo_ X´Æà¯þU1 ÛM0zx— I++Jv¨Üvu^6ðÒßÏ Á„³ç:L¼½—œŒÿ]`3zûIÃ\7ÓÌ>˜Wp¥OyúÓ9碀ô‘’p6Ï·h †™cJñ7]‡`„÷ënÔ/ŽDÝã¸2¶&Ñ…7‹‰˜€kˆW®{¾oþ/ðí¡‡`jƒ����IEND®B`‚IMAGE 644 ./arch/player/class/Religious/paladin.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÒPLTEçÆ÷¥�����Œ��”��œ��JJJ­��­�ccc999ZZZc��k��sss{��„„„!!!ŒŒŒ)))111911¥�­­­µ��µ�µµµ½½½ÆÆÆRRR„����Z��œ�!R��½�¥¥¥Æ��BBJçççB��ÎÎÎk�kkk”�”””ZRR{{{œœœ9��s��)��ss{JBB9½��!��99B9))1¥¥œZŒŒ”ÖÖÖZRJJ��` ê‹���tRNS�@æØf��`IDATx^½“E’#A �%73ƒ™=<Ë ÿÿÒzovÏôú¶yÍ •¢¢ ^ƒˆàß+%ŒÓt÷qfcš¿—ëöGcÆ<z Ó…ôÎñ½Ânm²¶2}Í×9Ót-)ê3€nèµBd‹ÌŠˆ¶v fpBká™ø3Eò�v÷Âç•Ò¬oâ‡è[™÷r1¯ëSðk·“Iº—ß³ù¼ªD^ó/eÙ¦�Óžû`«fªž½í¥[Xé`Àìv¢7+D7§ #�ûrÀl’oV"¯t`Ý4‡ €ý‘¯> ž+ñAv»àÅ%ªÊ¹¨õÇ-ï¶Ä~Øœûg‚ ­n™$Í¡IÊÖ‚s>!c\ÕˆŽy¢¸]GO?åå^0Á¿^ÞIH-«·á’ ˆÚ1q6òÚ¦P1㛿jñÕ·ÞÃˣȟýiáŽ^Àg4¥)Œ²\ÒµCä•€èzðÿùg6<,»Y~����IEND®B`‚IMAGE 695 ./arch/player/class/Religious/paladin.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ØPLTEçÆ÷!!!911999ZZZsss„„„ŒŒŒœœœ­­­½½½���ççç111RRR��c��ccckkk)))1��{{{�”””¥¥¥B��µµµBBBJ��JJJ!R��9��Z��)��)!!kksÆÆÆs���Œ����”��œ””!��¥��119s�{��)””cc19{k��„cc„„{99ZRRÖÖÖ9skk‹3{���tRNS�@æØf��IDATx^µ’Å®Ü@EÝÌmfæÇæüÿųˆæÙž(›änÏÑ­*©œÿ’Uë¢?Ó\k"%Ïóü<×Zç™Ú*Ú‰çÇ!RíUعçp„Ûûšw5‚3Ü¡Bd!š%Œ%íH¸üš(cÞl‚ÊS ùí¬ cÄb7Bðz(|@ò{Í,`x® Ã-ß@¦ªÀ͘™uh‡”$�`±°u1Æ6ïó%â>’R¢€Ý¹áÛŒÛþŒG|ífJ‚Ü->ÃDYô—|H[ÄùúH¡>])zB3õðv™cpï„ÆÛÇ &uŠà" ˜QÅkÁošµ7qF’¤ÊÖСPξ\µLd”óm'‰©„=ñß”ñ¤uW,`¬  p£8< ‡Óò%,ÂZ¥‹@E_ —O»fMhíÅ77˜†ï–€šÞ•Çñôs¼œÅ³÷?+þcCÚŽž1õýiÙ”õ74šë;ÐçùqbÜ%Õ»ÛÑG¦]ÁïªýÊg‘>Ÿf„QÙþ¯†ó/ó 2"‘Ë ¾����IEND®B`‚IMAGE 704 ./arch/player/class/Religious/paladin.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÕPLTEçÆ÷!!!1��999BBBRRRZZZsss„„„œœœ­­­���çççJJJŒŒŒJ��B��ccckkk)��{{{)))”””��¥¥¥111µµµ½½½911�c��R��9���)!!��!kkss��ÆÆÆ119Œ��œ””Z��9”��!��¥���s{��)99))9„cc„„{k��skk91””cc{�@;���tRNS�@æØf��™IDATx^Å’ÕŽÜ@DÝÌmfÆe†0üÿ'Åû‰Ç;yMê©¥sTª–®ó²0¤ý; ”¢RÚ Ns¥TëmÃzñ´à8T6ó&êÝS8Efm_ƒ€‚_=3­óˆ Å­3æ·—I£µ@ëuX×µ)ÇÂÏ`Ê9­hIýGÐú£ßoê°–‘µ!¡jôÓU›$ˆäDsD¯Iô#·ÕQÅËcßGz[@@"´,ñÇ­ûTJÙ†¼BéÇs-ò;tNòFú)?•ê· èLkm�¨úõË4äº)‚;-Ðú˜R‰p©�eGB<Y±"IÎiRçÙ„‰®Eu&.„_ eÎì6Ï2ZÝXp(˜x3f†Ùœ‡¼d»l ݰƒ°™¸\²ðQ*”v1ô™øÃoáìóÔ{ŽJÑðæ±è[CÀÌ;WO7£ Ç38{ùRÛ× Õõð ÎÎ u9™L=×ëÔÝæé"”RÝÛÚ¸ó…s;£,ðG]8ïÒõƒ÷ü°ëîlçŸæá¸#Üô±'ö����IEND®B`‚IMAGE 564 ./arch/player/class/Religious/paladin.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÀPLTEçÆ÷„„„���!!!)))999JJJRRR��BBBZZZŒŒŒ1��R��111sss{{{„��B��”””œœœÆÆÆJ��c��ccc)B)���9��¥¥¥½½½Z��ÖÖÖ)��Bk��kkks��{��{ssB!!11!1))!��RJJ!­��­­­µ��µµµ)!!ZBBÎÎÎ99BÞÞÞ3çgø���tRNS�@æØf��"IDATx^½ÐÅr#1†QÝ+„F3‡™aæýß*r6±]jï’o«S¿J"¿ºhy\�Ž}€rÎ×õÞÆòßàA¥@º ÌŽTÝ Ë+(5”]¨Ì$x„„83LP)?8k’˜z©{&YZ/TBöãRñAĆ[E9¼Â9H}<sf\¬d¢T|x̲*®Ø¤³É¼õ}RšUMP ²Å¸èˆdÁ éIz@ɳf›T£hC|™Ô-T`†«9ú€à)¸+ {n¿Á]ÔN¼�…Ù¾Æ]á=Ö¨Ù�šÀ§÷ Ka 4pGÄ´žb®Þ/ó éíöf”?­Hº896@pÓ@-ÂUÞö‚¢£ˆôö¨§ÓÿäïûÜW?ûÿ����IEND®B`‚IMAGE 554 ./arch/player/class/Religious/paladin.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTEçÆ÷„„„���)))999JJJRRRZZZc��!!!ŒŒŒBBB)����1��111sss{{{B��”””œœœÆÆÆJ��ccc)�„��)R����¥¥¥½½½Z��9��!)!!99Bkkks��))!{ssBB!!11!RJJ­��µ��µµµ1))!��ÎÎÎÖÖÖÞÞÞZBB:æö���tRNS�@æØf��!IDATxÚÅÅŽC1 Ec‡á1–y˜™þÿ»&­ÔEÛd7Òew®í¿bõMö ÇTÇ‚;0�Ãcc/Æ(âW[Å*˜m¤Ð`…1\€l;ô„*äÎÐYºÞ 'FïÚ•Ï(7B\œ B²aks«.-Ú¥ìùisÇ”Ò0xƒóÓÏjQngñJ²) A‡Vt¶Ø By%Ázr7ª5 aвél3,oY(צ´K/(˜'$(°²Û"äƒ9w…ohÀM#=+À€<[sLí„÷šÁ”»í0úæ)rE‡ÐY¥ë°V¥rÐÁNH˜ÙõÓãóÍÏZ“).ê+ý:Ib"&Z¿¬Iôˆ³µž " rƒÙ|N"œ¥ãñ=ù~†:˜ŽÑ¦(����IEND®B`‚IMAGE 346 ./arch/ground/new/palm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV�ÿ�c2�c�Í…?�1�cDÙ¤����Ì�yØúÀ���tRNS�@æØf���áIDATxÚÅ’ÁŽÄ0C 8îÂÿï†i2›(§‘Ö­ÔŒQ¯/˺N€B±H%hTwpmlåâëÎ!›ÚoMyC\ƒrL­?ˆ·ikEå��%Ä´Gß1ŒDŠ9?4*„†âÖ4åOß\úéŸ!›Tý-ûÛT ²#´ùʈ#ñûÖ \nuÆP-wˆ÷õ(î ÐjR #7€?µ’ Wà©Å£ý©yìÊÎUlýÕb½Äzê-PŠTIÛ=~çîp¤G<�áÀë4Ùõ?úª ÔæŠðO����IEND®B`‚IMAGE 550 ./arch/ground/new/palms.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠVÒi��c2�c�Í…?�1�cDÙ¤����Ì�±!!ó!@Œ���tRNS�@æØf��§IDATxÚM“Ž$!DoTXÜÿÿÜ{…Ó%™ (¡Ì4wóegaÙZúrN`;¤ÚôL¼éþdZ&2ÙÑï€9gbþ¢Ôfä—ÙºÎYÎG°7ò2°ü„•Õ<‚ø­¶>.—n¿Ì85í¾æClµ‰“/ÐRI[Z£maN‹zõY$˜Âú°¥¨îhK›ÉyN²õ°8 ‰§û?œIíîPšýjé0^Úœ}ºAÙì)‹Gî•"zŸMæth[”±·WC_†ÃÚý‘bF|,íÑaN¥Oʼn)/èÒÐX†¬m¯Á¶‡£CâJC ªõoÅ3q¢…õ]²jBÀÌÞ#enšcû–RZÚÜbÅÝ´Cب5'Ï^kÖ VB ‰ÙË1'È•ëÎàE|?àqµ¸FÁ¥«œ/ &qŸwe¹Ê‡û¤Û÷?âÜ4ØÞ6~ÂíÆ†~ñVà }sÝ_!)pçLÀ*ø7‰ßă‚øÆxoVkJêâ·á̓' ÑqNb9½ÿ-˜$.Õ¾ ýaRÿGŸM����IEND®B`‚IMAGE 174 ./arch/monster/animal/panther.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��€ú€r���ϬáÈ���tRNS�@æØf���SIDATxÚíA €@ ÄÆùÿ£ÅA Oö2 V?opø0o>¹ùÎAÑ<{ÙO‚ö/àÃj A g¼œæ` ¬kƒ"A¾Îq°tãKv»?øãfúö����IEND®B`‚IMAGE 176 ./arch/monster/animal/panther.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��Hú€r���0^0$���tRNS�@æØf���UIDATxÚí1À0 ÿ?º’34 ²Ù:åF8aɸ4uEIn¼™ü r’@1,H'°‘ê(8Yð×¢ÒF@uvía70á½ÏÅ) ø“(Ð*ÁCA����IEND®B`‚IMAGE 179 ./arch/monster/animal/panther.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��€���ú€r6®}o���tRNS�@æØf���XIDATxÚí1 À0 -ýÿÑ¥ š‹nzSb2¸~f0†7)|¸ÄÜ=­ÁY�¹mpB^ï * )—p:Âz|DzÖ›ÊhãùP2yÅç¸�¸@c,f����IEND®B`‚IMAGE 173 ./arch/monster/animal/panther.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��€ú€r���ϬáÈ���tRNS�@æØf���RIDATxÚí1 � ÄÎûÿ£éPŠ)èâb@Pˆ©¨ÏŽ…x!ÄÚÃ®ì ½p‘0' N`A ࿦‹¶PP!vXÈ'í u”,=¡7ô„ ·†÷vðµ����IEND®B`‚IMAGE 176 ./arch/monster/animal/panther.172 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��H���ú€rÉ\¬ƒ���tRNS�@æØf���UIDATx^­Î± €0 DQ#Å u\°MFpá-ûâÀYˆ†Š_=¹9Ëoµ‚‚0 /Lè d‘8&±ƒÐ‚¼1,Øp£÷M4Îó6¯ VÐÄg'&ÁÙ–-����IEND®B`‚IMAGE 179 ./arch/monster/animal/panther.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��H���ú€rÉ\¬ƒ���tRNS�@æØf���XIDATxÚí‘A �1ÿt»,¤–Hzèe;D2ˆ`ülà(<¸üÅ Y•Aʰ 9‹tF&¼�Aϸ]ÑÅÆðBÄêP_c…æ+€L8È6ÎB|‚¦Òb����IEND®B`‚IMAGE 224 ./arch/monster/animal/panthergen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���…IDATxÚÍÐQ Ä@ÑTÝÿÐA%²šý&ÐϘësÿry3€ oûÊ.PQd)¥�–}Žóà�#‚袱�êñC¡´_ÓóºgÎKi'Ј1œ�O€ äBo°@ñÞ àÒPo5Æñl0¿À‡÷wÁ3ùs}dnOQU>Üo����IEND®B`‚IMAGE 413 ./arch/monster/elemental/Para/para_air.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��0IDATxÚÕRAŽÄ0Œòÿ/vi£i¯KZ…@1ÆÍë¿YñZýïµÂ¹¬ŸÐ~�<9få ì™Jƒ@7D‚ ª³"1¾ UÅÜæ]ï$³õ`Bª(Oyð±óÔ4äspj>˜|°4ÌUÍÁdT8Ñ Kî2¹·:4qЃ¢P¿ì&²(×V£ŽPERdX)zqžƒÊ°.�D0ï™hÆ5o‹¡B‚Oó‡–¥tP—cƒ÷ìvÛ¬Ù`"ÖRñ4î@€t¸èŠ—%5Qz\È욛ۺÒÓj¶¬N×[™4oë``xtÿØAûÒá¥i¼bAÀIö—;jJ+ÐcËaï¨thÇ4ÃlVX†`/v‚•oß°kâà ð{瘴r_ífògû׫ ²á£����IEND®B`‚IMAGE 404 ./arch/monster/elemental/Para/para_air.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf��*IDATxÚÕ’ÁŽÃ@CÁóÿ¼1¥«J=ôØ7Q2g (ñ{¨ÉözÏ‚s=)sò`¨úZshBaˆ$s£sJø#%¨.ú"W$Ö%L QÍ9 ­À«” ‰¢Z9Ã=¡}­b=ý¾”p€6/·^~�†!ßþØ2 Ài÷«fª‰’¬²@Ã3 ׿2†¢¢1håè®ÃP"‘vD…)0<=xÙ¶1è·i8“~¶óz†°S½Y…T¢ÄˆG€¡Õà™IF„íÅæô ò'&Ù0·Û,¸|³c¾‚’TíÃt*ÛÆÚÖî \k@I°b!&‘WÌ`»…¿èÄ=~Ý8ù9Å&ƬåÈÅ®‘Õ±ÉäÀ´ ØoŽÀ�Œh©ø’?Ū e£„¦Ç����IEND®B`‚IMAGE 417 ./arch/monster/elemental/Para/para_air.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV¯/_��c2�1�cD���¿¿¿-27���tRNS�@æØf��1IDAT­Á±JÃPà_1%sJ¡c=xCÏ[¸4¶[¸´1Ù2X‰»p I8Ymèy[‹‚::ø}À߈HÀo­YŽo1»ä¾wmC5€áÀD9|«íÜ2ªˆÈ'6”–âG7"ÕŽˆj ¢«:Âûùh¤+ÌvJÄH/| èm9ˆWl«í Õ¹g=ñ€Kôõ-/c—~`§5âѺb³Zˆy-ÓÖÌ#.Þ©éK3°Ù„û ›­=yï5D9­tÙÄœ¤“¹âSjF ¯¡²¼µrfy̸áõÓ"ãÄî1Ò€f[i±?XŽcvHt€›:c³4€Mm=BÆr(²f H‘íÅ€ˆˆ �Í©ôÀ±‹÷Ï;Sº$€\Ý™™ÊUÀ—YQ¼ø/6âx ðð±E����IEND®B`‚IMAGE 412 ./arch/monster/elemental/Para/para_air.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��/IDAT­ÁAKAð?¤Ì5J²£¾FöCVô¨Ãz”ÜðÚGÆ]ÞžŸ»ø>vE;ôû&" ¿íM¾…b×øì'F¡�#-BÖæx̦ò%AZÉ* —„Ž{ìˆÈDE¸c&"›wJ*=¤ÓóIØ'ˆ4v?`ÂÞØŸuJnYœàI¼/Æ<Ç.9Þ”àŽu™­j›”\g¦=„¯"Ø'gf 95­Æ»ÔS –Í.]€–¯î´±‚T·÷@§Ò "rf�rÇÞ½jÚó6ëèz”SŒ,.Ê{ É:©Ëgl4–µVHØÌÞÑ› «vmÎm{€;Æø¶æ´&"À…9€™XÊê†H·�äS63ïD$áÛ¨^ÇþÍÞÞgÝÒ;Ô4����IEND®B`‚IMAGE 282 ./arch/monster/elemental/Para/para_earth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,c2Í…?�1�ùqcD���ïå‹¿¿¿@¯Bc���tRNS�@æØf���§IDATxÚí‘m Ã0„ëÎTÝÿÿÁ;5c$¥°ÏcOBK¼ó<þü"¾³�Y®úÂêp8dpŸòT¯L õ;ð¥Av4oqSACNÝ+h?gÄÙØ+hh •úèCÆi³šàcp‚6¦ÏngÔs%p ûpÃM”•„±"ó CRÉNDV`Ž…€ÂŠI)Í'‚QýHÐ{À{ÈÔ–í¶µ„ãdCñ!Vû����IEND®B`‚IMAGE 349 ./arch/monster/elemental/Para/para_earth.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2Í…?�1�ùqcD���ïå‹¿¿¿�Mß���tRNS�@æØf���çIDATxÚí’ÛÂ0D%Bš¤ÿÿ¿. C›éøâ³;JØ.êë¯4§òùbÂÊÃ'¥*ô)ÄúôÅÌâíúÒ_ÞçJ¢†©ÞÒdW"ð+Ñç`´¢Œ^�;káfwÀÃ3�¨çâ™G HùÙÕN‘@˜}⢻Qi«à µ %%¹ä`[/4Ú 0l¨Pòw=Ló`Þ h¶Ú»E…ÌrHîÝ«A\D*†,…O@+‰u¦ã*xà-—)ô À1¾c…&ÌQ^Aë—TÒ ¡Ã:rFž £êÏsH8ðpò°gïü{�õ4 jm¿Ð����IEND®B`‚IMAGE 397 ./arch/monster/elemental/Para/para_earth.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,Òic2Í…?�1�ùqcD���±!!ïå‹¿¿¿lÐâ���tRNS�@æØf��IDATxÚuRrà ‹;AÑØÿ߻ȇmȵJJ‰,¬‹œK À+ÌF±ó) {m ³§ÀÌHê vO q&g>vÀo$RùÑá Þá˜.V™âØ¢8¢%š/Z«.ßÐÏù¾ësf=Ò,Ǧ»• sǪ¿Z{Y¡\‚yc«‡€ÜïPp �ÊåoV ¼¨L¨"ØñÓÚlmk/‘Ÿ2ÞáåuR¢Ì–€¬·€|j•ð@t€NÁ ™³wl^oy|çô€¢;» ÁGa; ¥”ÕTè’§wÇÙHIòðÆQ7Ù_]6Xp;=Väòúí¨ j#ßœ¯:Wjà?_DÈ ÿÔ P+ef����IEND®B`‚IMAGE 379 ./arch/monster/elemental/Para/para_fire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi¯/_c2ùqÿ�����þ¿Ê±!!MÐvz���tRNS�@æØf��IDATxÚ}“ÑŽ…@ B¯m¡üÿﱎ‰F̨xÊ þžbfò÷!2ùm�ô頎§ÕP¾d;gSQÀ‹çlRèã#QU&›!ñ‘-z³œñF« âÐ.‚g"]Z‚xcŸ<ECCÀ6¬3‡sú¹t'T#éÛN¦C&oߢ{X¤M(h¢þ…m@uR©UÕ:¢BÈÝÐB`ªŠª^Á3­:oXGã1©VàT›pßê<†º ‹àk Dy}µGkfO–tQI!M¸Ë^þ.ƒ –+2Å�‹Ò&ìÝ*ÇA]ãëÞÇõ{G׎WŠ–¸_ÖS]±†Ìš¯KÄ»Îénßäão q 5)ú����IEND®B`‚IMAGE 392 ./arch/monster/elemental/Para/para_fire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi¯/_c2ùqÿ�����þ¿Ê±!!MÐvz���tRNS�@æØf��IDATxÚu‘QÃ0CÛ€Á÷?ñ0m§&j¼ŸH<…û„™E¿öDlP�îȩ̈lô«AJ é d:À ;" ¼ëQ™€&L ê²­±"hª¾lÜ;4à ˜·º¿ØÎ ˜dêüŠHÎ+ªpF,Êñm`ˆÁxR…°{SØj0ú(Em1€g“⣠0Rm® ¡6Ð`­hm·¢ß—Á¡‘Šã•3a@†K’mÐ`ÝÝÃ{ZeÈL;=î*eÕ† nŽfê~ PžwžH´!Õ9Gl3eÙ±¤z”Ëð.»~m(k©yèP®÷=Šé’“b¼Ç�¡ÿ‚|%L€ÖÀGJÌ=bC zM a?e‹Î<9·����IEND®B`‚IMAGE 1885 ./arch/monster/elemental/Para/para_ice.111 ‰PNG  ��� IHDR��� ��� ���szzô��$IDATx^íWÝW?wæŽgÆöxì]¯½Î&›tóIè6i³MÓPhZ•xaðÀCyá ‚$xDBêkB"H@…h}ˆj7!¤$ÙM²!»Ùlv×_k{ìÏ÷ܹœG}@i³%B¼t¤£‘í+ÿ>ÎïܹC §¾ ÿÏKø¸�Ÿ0Y fÈÀôB œƒs0#ö_ ;Æ1ČÑr.÷ìѽ‡§vUjSS“šëzÃ[·W7W´ZaÙ�DQ ª"É®'À!ë ìá¦å;�$B>!ªÌ'ö—g^|ñé¯=sìèWËãSÕ‰²D‘ðèþv«ÝÙ±/H®&r6Cµ0 c¸Žë5êÍå›K+®-7þÖ÷™KÙ•Wd*ÍžüÌììÌ·fL)—Í”3nô ˆÐþŒ$ÖJÅü1�ಢJ)ˆ‚�a sLÏAAS‚ …Wì¡óƒ…ÕÞ;ÒC�QÞ}âCÁ-ß“ÍÈ/=»wþ™Ù§¾W­–^Só9MÓ‹¼2Y½4E‘Žþαmœ!pTÍ8�G¢(‚¢T©8éÛV¿Y7<Æý4„¶Ýª$Ÿ~î©ùcÇ~§2Q:­(ª”Ïk\׋ ë*ä5À’AÎi K0Vž�µP}ÖuG‚Hr¸°¤°4ªó2TÈ}?sòÀü§:[(äæÐRÓ° fdð#€ž†TšÏçð· D1Q’ÒâixD˜‡¡í„CÓÞŒX}0†þùSç_xaöl­V™S³9ÐÆÊ —+P@UmÓÕi‹! `a$Q„D$*Á®ë‚e a0v{›­­m\\^iþrÛeíG9‚×*öùýóÇO=[,ÍAL•—ÆÆÈ*PT(gä�®ÇÀ÷\ÕpðC„ÇÀãw±l¬~¿±±¶ñεë+¿ZZ7. Cm«ÉT~ùľùçç>u¶ZŸ¨„=Õ¡Z­B©¨€“Ç” �b€ípp‡6xŽa€€Àa¡+1‰¢tü†õzëÒʵßÜXzðçå–µ‘îÿI ätàä‘ÊgŸž9;>¦ÏePi±4¥‰*èE 1 �Û 1Þ=Tn›&˜¦Qàƒ<ÎÁù‡N×X]½»~UŸ[^ïÞlú,ÔòèÅÃÞ1efÏtù›y=B’eLõ”«“ çEb@kFà= ã¸9¨Üõ}È$ä°"Tn».¯o5¯ß}㟋ëoßìÙÝø!ø£ ÈØ”ÉröU‘WTU²šÎ‹¶\ÎG¶ X€àCTÝ5ú‡~¢8U@°üˆ‡d¶›í›—ß»ñ³…ÅóŸþøgFA/äÄÓÙ¬23ËådÀ%\T!0Eϰß&Ø– ¦›ó"�µ05ßó¢íVçúêúö{ 7 TØéÓ0Î ÀjTÊ�UTP±Äd”¼,ŽÀ{½.ô:p€Ö;žŸ&‘�¤ÅFE"GŽ™zy—JéŽÇã‘ïvœ4˜Œ¶O9 IÉŒ˜}l£ ývz­¸Ö�8¦8O{/£pB%¯>7sp÷ëû*Ú4ã|‡8ôMÿŠÙë$#”ªÂ6“n§Ãº­†ßmÖÉÊÛPßÚÂþi[B§�É.I‘mQ/ð‰J•TjÕÙ‰²vhÇç‚¿Ù~¿v¯^*Wk_ÉçóbÇv»÷۩o©ÕÉò™òäeèPL3˜OIï‚ ‚ªÊ@1;ãå ‡cM¦$Ý©ùc XM—ÿëÊRë§1¿qÉèš/eUl6»×–—ï_Õ”èõù¯ùÕƒ{¦Áó<tÆOCHE1µž EÅìd³Q²ˆØ¤” *²ó‘ˆjîÛ‘a\]ëê­ú_(~Ñ´Û™ô…CZœU²ïÀ ’Q#¶5HZAàaËTyHTäIÛ˜×v I’à;>’å’ŒßvB^Š ° ˆL³ß¢$YIr*ÀövwkëþƒóÃÕЋ¹×ƪ•“Y­<I{ksh œöÈþ'?”rÇ‹õF#jllƒÑõÀ4ÍxùÖÝ?ýö­…¾ù‡¿ÿäÂ_ßc}íþ«oÓèE­zûâvÏùG"扥1nû|-íÛæ ›XŠìf½ýþzÏn0„¸»i½],nLñN[»ykýÜjÇY¡„À XvÀ—û†µhý]„Jı¬A§gÕe§í±Ö¥ÅæÏWîoº³ê¦ßÓ\=ÞÞ½š À¥S‡ËßøÜ™¹ïÖvMî[¹sï×<åÇ«=w üï_L|áÒšñ»Ë ‹ß¿xáò.¾»ô‹ÛÝ‚?¹i¹1‡<"ªTûó蓃§õÉÛñ¿âš´UqzêQ����IEND®B`‚IMAGE 1897 ./arch/monster/elemental/Para/para_ice.112 ‰PNG  ��� IHDR��� ��� ���szzô��0IDATx^í—KŒGÇÿÕUÝ==ÝÓ=}{•dc?b[6Ɔµ#R°sˆ0 A€Šà H.9p '$$$ Aˆ8å„6$vl{×ñÚ³»ãÙ}Ìγ§ß¢¦µ1 B^£Ê%¿®O_—TÒÿÿõW%Uó߉„ÿ‘ 8iŠ~£%ð8G*¢'ÿƒ”g¢˺þ•O?ñ±ï?wæÙ¿ýì׿÷ü3Ï|ùôþCÓEÍ`è'if¨Æ· Þ†°…01™cÒ‘G'öŸ8qà‹ï?W›1M“ù~à>²wúî±úêgà.Ä ïx®ß²ûƒ68O»ÏsÝÀëô]»Ýuzwú¾›#€L†ÜïdÕ0B0;32sàñ©§zhü #“ã³¥J¥˜Ëi\–e$ißó‰ï¹ IÓ@Óõ('Ënœ$JÀm×îÀl­¯®ß˜›«þùÒÍÆ…v¸C ÿ?å…øŒ©*§ŽÎÌ8´÷yËÔÎJFeE&Ãà#cãÕ<?€m÷9é3)°{šçØZ¬¨¦D)dLa°TF ]…®«gr9élú?ýëÍæË�bªNÕqŠ•p|ïØÌÓŸ9úÕ“'}§\±>§‰)+9”+#Ãèˆ-PÆ I*TY“Å;ݦ€ ƒLQ¡ŠLe1—*Ël2 ]ecµ}ÁÓ®tO8M3ñ'FÒ—ž:rîóŸû䋇>zðÝ*ÌrBå|Áâ…ò4Ó˜‚0Â) * š–C±X„)Ö ×•*£(–+°JeŠ%¬"tÓ‚n•ÄÜšÑTZ†€½÷É Bðäá©£GíûÚ¾}3ç }¯h%åV©€œ¦AVUQµ5—$€P€§"@"DV“R(L“$¤�$΂$ EŠ(ŒÚAœº°„s(ðäÁ©Ó§OþîäôäÝÐ EQ¸ªäxÑâB4ÁP…B8F�MÄÀ â8FÙ‘#@–c.!ÏÞy!âý^¯ÔWª‹k¿k9q ¢~ü›8ùpqvvöàýÈ#O¦©TJ%nKóòyF'DVµ™G&B!H€^/‚í¸ˆâ�çneY!œ$‰0çyÜ ÚõZýo—ß~÷·—oÔ_[wãž*°iŽ?6SùÆäDålÞ((…b…¢w†i€*@ÌJC4�€ Øý>ÇFÈ�‡Ä$‰3a7‚V«3¿ººþVýîúß«‹óõNÕMy:ÂôÙoZú§ ÓRuKT^*A7 p  È1 Oõ²ç]7†mÛ|Qe›@º÷éSÄIJA³Ùš_^Z9??·øJµÖ¼±ÖzBšVÁ{0*A“¨d¨Zžëºžíf1²>‹q¯Ï½n„N· ¶û 1¶ A’ ñ8}î·—ªµ?\½ºðÒÍÅÍË=¿§m/ÊòÀü0Ý = i2E€¬IBÆ "7E«ÕBäûð\ ‰ùpd&@Ááù~´´X;ÿ—ó×~~~aó]S¦™èý ò䱤¤Ó½•‘Ò~MÏ«œH$‰Aœ~@ÚÍÙh4ÚÍÍæFè9z«Ù¤I‚‚€gÂ"sŽìIR ì>élmyQ-´·ì…pØ“ |ê¸ÃƒhY‘x È’áyž½¹¾Q]¯×¯V_çÊܯnß^ºæ:½#µê‚%@QU‰‚Šà„ åȾŒã8Rx“FÁÐ…ù‹ë}¿34y?% pÎ}³úãµFçjNe¶v×i wË앟-«ÖpÓõšãÂd*“Á¶û•‚@Ñò¼X%F1=<6Rx+ÝEì�íʆu›·6/%œã}®9§†Æ¦Ç'&òVeªªÂÈç!3 õ€$Q$L†•ËcdlŒûŽS6 ÚCŒ€p€?Ð}€‘÷õÙœSÖøž=´P…ë @Óqš‚ƒˆÌÁ(¢¨0ÍrZæ&cLÒ8ÈîoD)®Ï9¡˜˜ÚƒÊبª‘¡°/pÇ÷\$‰H…ô:-øŽ Nvm€ƒD½¾»¶Z¯ûžÝƒBR øÊrýõ7/^ùáÅ7ÞúÑ­ë×/­Ô–°¼¼ŒåÅER¯Õힻɾk „{!_DZ¿¾R‡Ý툣ÖjÿóÊüK¿õÊÏ^yíŸ\¸pí—KKµ»v¯Kìn;Þhl¾Ñl»—c¾³†`à§µn·_íõº)OÑØØª.­´®9 )ß®Û*Zõ=<á§Â0Y𛝽\Ýrï0B°k@×ç·ÖÝ_‹;¸ÞHmiõÕFËYR¶6ýdã××~qg¹ý/Lì†tSP‚y _³€sTš?øpù„UÈYwj­·ol¹«º´£Âî lsï~¯H„Ø çZ&¾{>ü9ýÀ ü -¶Í8ÆO°D����IEND®B`‚IMAGE 1802 ./arch/monster/elemental/Para/para_ice.113 ‰PNG  ��� IHDR��� ��� ���szzô��ÑIDATXÃíWÛ‹Wÿ­½÷w;÷Ûœ¹Of’&M ©ÆPÒB_|ÁADÐlý›DÄ>¾[}‘*´Ú¤MÒ4É$™™ÌýrÎùÎwæ»ï½—“`ª’„¦P„.ØO ÖúíßZ{ÿÖ¢Æïà«4¯Øþÿ�DÆ"*4bËhºRT!¢Ba�ê…k‹Ž+éµ^½ufeöô«μ¶²¼Ø‹ãtüéÇ·>ùøÖÃÕOö¢!3£*ÄˈŒ,£ë)œi¶{½ÆÜÂÂÔ•Å¥ÙoÏÎÏ^îö§–{Ýn`ŒÎç:+§çþvñþæ{Gѽõ­£õÑ$Kö²Ò6”|&�zò "kÃèz+ýF»Õ®w;­Zwyeþ‹ 3o:®¼�S.{AЯÖëT©V9ð}¥Fš¥…aQ¦é‘f±9™$׎ŽF·Ö×¶¯£x…ǃÏvÂA¨-$ás ‘õmd–q¾4/œ™9{þìÒ·æOÍ¿éÖjgßk{ž3guÙœŒG”$)·º=ÌÎΡ×ï£ZUˆbƒp<F1 ‘F!2mˆ”g¤râ$ɶŒ1cßßÞÚ»¶¹}¸ºñhÿÞ½ÍÁÚN®uC^ßœ®,¿uõÕ_\¸ðÊw۽βÍÒ0-›²@’$Ðe×ÐíO£ßŸF­YC%�J Œ Lš ŒNŽ‘%%� ƒ| «KŽãÑþîÁÍÛ7îþîýÖÿ¸“êDͺT=¿ÜùÉÒRÿç•zµgH°à¹3€\HøRÁS¾ Z«Ã’@’[@.P $JYƒT n¥†8Ëà ‚µqV°5𤕆U)Å‚`³Ä‰:¾¹û®jâL¯Wý~­ÑèÕ ª58® ¥ˆrmPhO|GA*Ÿ”*P(‚ãðƒ�ªÐp¨k Ê¢„) v‚J©Kã0üéêÆà% !eËñ|¸žÇõ \J9�<¡aÉ@H ‚6L†s€øÁ%@:€v�­á(0�k%Øia ØÀó}HêíöL¸U•ö(Žâ‡yŸË³Òq „€f†¶ †`†)Ú�€ç(Xä(ò \VQ©xð|@)ÀS€¯� €°( À1Š-ˆŒ1Hóò0+m¬†9o<|4ø}·¿> à|«›y©_a¡)˜Fi ,Ös „�H�e†,v!”ß÷á¹ø¤ù ˆÀlQ–%Š¢¤<ÏóÞöîêúƒ­wÆÙ†*å§[ñ4ßß…éwgߪ·šKµZ¥å¸®'”#…ìH @3�kà()¬Ñà4ƒ©’'}c,�§$´1¬µ¶E^Dá(|p°³÷ÑÏþùÃkkï r“RãwÀÌ(�,TœúüTõT§]?ÕéÔWÚÆùé©ö•z£¾è~OºžGB²ã(!á( !,Nn+‰HËEž“4i:Æ·Ãñd'Mîom\´3ÜØ¥ãØ2*‚þý>1Í  !IÔ=U=Õ¯ê´kË‹Ë3?X^™ÿQ½Ù¬~pÒ+o,„€1YžóáþáÍõÕ_>XÛ»>ŠâñÁ0Þ§ef¬-‡Úrý?tâ¿´@A(,ì Փ͵ѭ…½ÉÝ^§zq|¸_*b¸R�ô¸ÎpÐÆ ‹)<܆G£è··>L Û§c×ÿ‡H=W¶ÀÒtíb¯]ù^48h%ãŠ<ƒ5ŠŽ�,Ä F½ê;ýÊüOÏ4– óËÏ.º{ÙóÝKÄÆZ­aŒ¢“�– ‚ô|ÔÛ]LÍL_ê÷êç¾”y@B:rªÑ› ‚VÊq JžÈ¬e€H <øA€F§ÇY’tõ`IˆOHüâ�ˆÀ†AA«ËÓÍ&Š,ƒ€ À#JJxž¯R…ãW0>:TJ‰€A/Ï�3(ãñp`ZÍWÁè’’$‰�X×u¥pœ�"!Ù2cÅ L z9@d‡azwg}}·xgßÇhnÝ_ÝüUšækïN÷úÍöçf¯Vê 8JÑÑîöñpœ<þž £ 7ŽÂ?ÍÎG?ƒµîÖ£¿¿ÿÁßÞæëEÞåÓÍäÊëze~q¡_©÷wþz8Lþ©¬žSé-\y6�Æše¡Ia‹p]¿}gë7ww'7"ä–Îʃ@ZV„ø`ð—›·Ö}s3¼.èù=@/º̘«¨6ˆì )Çšù8AÉŒ®'½º×L 3Ù™ä¡}Êÿ¥Œå.ŽR3z‹|*¶C„¨°Q4H£ïçý_¯f_x–ý ƒ¼nkÂÞ����IEND®B`‚IMAGE 1691 ./arch/monster/elemental/Para/para_ice.114 ‰PNG  ��� IHDR��� ��� ���szzô��bIDATXÃí×KWðÿ¹ïztu÷LÏŒ{ÆöŒÇX¶°!†�VVì`‡D„X€ÄñسaË�²€%»,@ BF„‡#ÇñXŽc{ü˜ñLÏ£«»Þuïe1a '¶l¤)G*•n-ª~:uï9÷RòŸà³ †Ï8þÿ�©uH«ÅY¢8¥Eáü ÄÓæÎÁzÀ;0¼< †³sþ+'‡«gÏœ<·¸4´m›¿wumíÝ+7¯®=Üßj< ½8 µ+‘RgO.œŒºA‡q¤%³Ö2!ØÒìüì×—Ž-~ei¸°'I�ïÛþ\ïÁ‘áìÛ+×nýþÎÝ­Ë··&Û;õ v‚éñUP{c±ì¿~aõó¯žýA2;s\›ÀHΨȦTdÓ€k“ÄI—f{‰R¡n[EAÓñ¸ÙßÝ»½·?ùÛÇ;¸¾v÷Ï7îŽÖ7«Ö'‚"€ë£þ3 ¢ó+Ýï>½ø³¸½Ê€lÝ)²Iœ÷bÛ6:Jº˜›ŸÇüÂÉL®ã #òƒN~éØñá7¿pbñôñ¹ŽéË\ÝTeÛ8¢OĽ•#ú§³³É·žˆÐ¶-Ê"‡· TØÁÌ`€^¿0Ž@gBHHÁÁ‰HpÖ‰:цsWO,¾vêÄ©ã]-dSO6&eVy@Bž�0¸d!Áw{ýΙ0Ž˜�Ä9À8´`¢RÐÚ  "ˆ”ÒBÂh .$œ¨…fu0è¿¶¸4wqx¤w¢'QæãìÑveIô$ÀmÈÝÑ™DÍ&B@bÊH¥á‰s­„T0 `�#0¡€Æ€ Ç8çœq-Ål§žëö¢ó¡BÒN²QÞì>°ž¬oýN ì@+vŠ)"‚'gœ3�ë<8¤Ô0ˆ$ `AJÀ˜�\i¨Ã;—Œ fŒ†¡ür[fíÆfú÷'�D@ÖbÇÕî#-\O*¾ ¢��cP‚C ÉÞ9Ôm‹²uà<@ M�$ @ . •‚ÑŒ1 © µ†’"lêÂlÞßúë€a¿r[eÞ^‡³{‘C­å¼”‚ˆˆ#XçP7-š¦A]רÏ$h šh!#”yÆ×ïÜÿÓS+!#½I{#»µÿKÛºõ•Öý¸ˆ—^æáÆ{ä΢)Kd©†ÐRt»!‚�Pp8pÁPÕ ž84j,¶ÿ+#&Ö×£ýêz>-Þ×’âN'x% ´BÌ ÎáAðð ïPUм@YLi’Ni<.©(Õ-£¢ô”feÓ)íïŒv®½·ö»^]K|Z™TDh<Ú˦ïö£Ñoçg¢‹Ý(<EA�Éœ­u€÷(ëÖ9’ðÛãtzÏ:_…FQ†ˆyÕL&édü`ýÁ?.½³ö›Óz[<«VgÎãD¢ÕêòÂ*l“¤“* ÑQ €3‚÷„¢n‘¦cÔyÖÔe{éÒ¥ýb?ÍGF c´4p¾ÈÊ&Ë‹ªÜI‹É‡i5M8Ã3Ö{œY™½xôøüÆ£#u]û¦±pÎÃð HÎж�l‹*ŸJÆÍBž—ã+wvn2zzgü¸Q}j»ò�Ž(šYv¿vâ PÆK¥à8pÎŒ0A€°“xËql–_x?ð8 ~5ŠÔÅ™ÁœbRyAj 0†ÆyèÃ,0!']DIežuÃ@c:|Í‹¡rçl[-ÁææÑZ "@:èh­8GÅ:€µN0¢€�ò/`�×’ ªª ¶·¡×ë“õÈš¦ÝP�ä´’‘Òj+-™÷žyGùx·Ì¦ù޽ä/p þP ‘ú¶¤{{;wî>zóÞýÑëºÝµÎ»N¬—VŽÍþøèÊÑïØþ I%±»µ}w?¿åýAya€ùÝ ÙÞžþJˆ­SãIuùÊ~}m;_7¸ÃD}u{—I-Vã08c›ªÜܽ½µWÜ$zÉIÈ�lîö;Œ~ßÚ7iÙN6K; 7ü`5¸ù[ñû릪ܷu›W®Þ}ó£´ϱ9¥ÿÅɨô '9©¾³¾\ÏêÔᥗáó†!BíÐlNê­ÇŸÍ><oü1S¾…)›"K����IEND®B`‚IMAGE 1637 ./arch/monster/elemental/Para/para_ice.115 ‰PNG  ��� IHDR��� ��� ���szzô��,IDATx^í—KlIÆ¿UuW?==ã±gœØ1dœd;!u؈€–d7+‰ÜaA X'îÐ 7$®ˆ¤.HA›…È&LbÇñs<Ó3î™~UÑîÃj%äµÉ"ö’OúÔjõÿ§}ꪦ‘…¯àƒÃ©§�a®Æ”ÖðLΪRP˜dˆ”Æ“HìWìiŠà8өζ&ŽÎžhÍMM®3GoÜúÛÛ7oÝ}ëΣÎzÀ zÿØQ`tíä¡_ºvæú—_:ÿòç>sñÕ7>þƒë/âg—ž;÷çg¿{êÌÉ×®<¿ðã_\øÎ§ž¹~r¢2*ýþl\˜©_½ü±g¾ÿÜåùŸž?ü'ÇŽM~o¼Q{ÅqíyÎi$‰‡F§·c›Ò<ÖjM}ñÊåù½tõÜ·>}vzaÌ5í²ƒûˆËÉsÿ1 Ô-^{¦Uýæè¨CeIvÚnšeÒ©©ÕQo4Q«WÀMB Ru׳O5ës“Í °óts½µ;™‚dt`€R5‰“‡êæ×ÇD<ˆtœ$°<fQxtµÀ‡ã�` ŒKç0 gy.¤ioŒ~´èÖѪc(·¶úñN @ퟂFš&Õ^·ô»t»!r ØÒ×”§PÐ B)C2Ø®¯Z‡_oÀ­ÚqÚ‘©‰Ï^¼4÷Ú W/|û… ­«­À®ô”:Șּjå|ßš±m¶çÃw€ hÆÆÊsË»cBÂ’¶mATH^­TÜùÆxõ\½êŒóÁ`e¹3ØäD{€LSÏ&åx6]´]Ç3- ¦)Ëâ ¥"‚iº…Gœš‰âÚ‚S@0a€qSfYF#±çMƒ‚,ìÝÆÑ^(”αe Õð<sÖ²m“F8SpN€r¥iB0p�+ù )íÂ,K– œsË4Å1IieØï­EÙæž�Œ€(GGçXô$¯ôÇ-˦i‚qQNa'HÓP¦a“€!�Q˜qÀ0ˆ[àŘQØ4 )µý0ZY o–�{‰ˆ&zçª]ñÅ)Ïw§¤´Êçåx‘z¨< ‡)†1AÁ(§Äe€)€”‚ࢀˆÈŠú]þðÁÚëûˆa©›þ¹ºþ¼V {~å´Ò € Õi’ Cè^‚ ¸®ƒ(TGPq€šPáÐ4 •g7ОËlƒk†h3VƒÇíøõíFƒH§¹¡#…µÊcôz= »ZYz¨þu‘´i£«i¡�â8¡(Š[íþŸºµºoÂLáìÄHíìÜôóLõ§Ò8!½+�Œ1pC Wq’"ŽvÆC¨Ô_~´´ò{!¸çø^½R ¼z½:–ƒÉnØë.Þ»ÿ»[o-þb5J»ïP¶÷#l\¹4ûùÙãzõÞÛG‰H+ dJ#Ó€R€s^fa§"S4¸õÆÛ¿úǃ›Ž#ýêˆëNŒ‡I;ìEÛKËwo?ê<DïU|Ú7§fªß˜žn|Á÷ÜIÇqµãº0 C”!,Íq†XZ¶£aBp}èA{°NÛõ¥Ü;þJCÒ;Ÿä½$ùìÚhE¼¢t>É-[O~¸…<ÏaJ "­F…À ¶ã ˜b!8³9�—Ñ»VY:؆Dª¸6>é¸öT2ê~/Ü}9%YŽM�#<ËP†’H§`ðñpXÞ×åS¤ŸhGd0Ø»!’ÒBšç´¶ºÁE;I²Å4SkRpEåzÀ Û‘§=ß;ÄM©Sä÷Â(&ë�ôoÉ¢œ6WÛé/«;·Ÿ;ƒ$ß;;o®oöÞܤëZCƒÒ`^kºúÕS§g¾>ÖlZC£½Þß “Û©†ô„�¹Fú÷Íô7Û;«dl q¦ân¬¢Xk˜DïZ34´Ê~ÝlV‚jðl–fÑòÊÆV¶¢‡‚ûéòcb2XsG*—gŽ6/ÆIÞ¿}ïñoÿºÚ¿k³ÿ€Ò €q“Ëa®T7ÓiYü�zúkö<ø7%z躋+����IEND®B`‚IMAGE 1688 ./arch/monster/elemental/Para/para_ice.116 ‰PNG  ��� IHDR��� ��� ���szzô��_IDATXÃí×Ëo\Wðïï¼ïsfì±±“Øq-‰H¡lØÁ®±�‰ â`φ-�Ð,ÙuR ¢<R¥MÓ8JÓÄÎÃŽglÏÜ™û¾÷qD"Ò&J*¤þ¤««s7÷£ßyü~‡â¯ÿŸf0|ÊñÿHZ‹¤làà)ÎbÅ)©[äÖ=@<écf-Z8ë�"�p@(Î,D½—OÖÏœ>yvyeÐoš&{ïòÆÆ;—®_Þ¸7Þ­ =? i-֥Μ\:t¢~úa %kÛ– ÁVæç¿¶rlùË+ƒ¥µ0Ž=8×ôºw æßZ»rã·6w/ÞÜ÷êÖÅüé ¦GwA厅²÷­sëß?ûê™ÆósǵñŒäŒòtFy:ó¸6qwh¾;!ª¦Ažç4›LêñþÁ̓ñôï÷îíýñêÆæ_®m޶vÊÆÅ‚,€ë£çþ3 ¢WÖ:ßûüKË?£àUtÑVQžNÃtr¶M­ƒ¸ƒ…ÅE,. ÏÅàÊ1"0"×Bÿ‹Ç޾ñ¹Ë/_ˆLD6µU]nMm ˆ>rt׎èŸÍÏÇßf\8"BÓ4(ò ®­¡üsý>º½ü0�I<ø9“BB ND‚³(ˆ‚/, ίŸX~íÔ‰¥SÇ;ZȺšnO‹´t€<„<`°ñRŒ×»½è´†ðŒâ`Z{0A�©=hmyˆÄ"¥4„0Zƒ ë@ Š߬÷û½×–WÎŽtOt%Šl’Þ–m-‰X ñ¹=:«¯Ï󤂃˜€2Ri8bàœC+!Œ˜�ÀL¨@cÀ„‚eŒsθ–b>Šü³nðН7Ót{”ÕûZG­kÜž'l_+vŠ)"‚gœ3�„Ö:p"H©a H@* A*c<p¥¡ß\J0.˜1zàûòKu‘6Û;É?iƒ=[Ù´°]©ø*ˆ<�ŒA )$#8kQ5 ŠÆ‚sž4€� €¸€T F{0Æ€¤‚ÖJ ¿®2³sg÷o ãÒîYs¶=ðh-¥”DŒ@DŒ¡µUÝ ®kTe…²fpL‚q@1Àc€Q€Ö€§ žæ°PB@0†"KùÖ­;~âIȈp{Ú\KoŒÕ6v«n숉oãÒ Qƒ9@8 v™mQ—ÒDCh © :ž(8,¸`(+GŒ�Õ-†ÿ•GÓÖU£qy5›æïkIay/ûžRHàp1:ÈY”e‰<ËQä3š&3šL Ê KUÃ(/%iNélFã½ÑÞ•÷6~ÿ¯Ë[oŠO:&j‡æâ½Ù;½pô»Å¹à|'ðO‘çA2gK@ÓZÀ9UƒÖZ’pÃI2»ÝZWúF{žQ†ˆåYYO§ÓéäîæÝ^x{ã·&ÕP<í¬N­Ã‰X«õÕ¥u´uœL(ßG¤�gçyÕ I&¨²´®ŠæÂ… ïþrœd#£„1Zg]žušçe1Jòé‡I9‹9ÃS­s8½6þèñÅOFÛGªªruÓÂZÀ 9CÓ�h”ÙL2n–²¬˜\ºµwÑ“+ãÃBõ‰åÊ8¢hnyÐù…ç Œ“JÁ9À>�3#ŒçÁbg|o5 Íês÷áÖƒ@Ÿë/(&•¤Ö�c¨­ƒ>ÌaÜAwQdiÇ÷ä1F8l&ž@pð•=Û6å*\aMÛ‚B€Ô4m p?!´‡¶µ‚y{�¸–¬_–¥7ܽn·G­CZ×Í€ «• ”VK\iÉœsÌYÊ&ûE:Ëö,`é§À‚ø=)D⚺ŸìÝÚ¼ÿÆí;£?UU³ßZg£P¯¬›ÿÉѵ£ßm{s$•ÄþîðÎþ8»ávtÏ ° ·Ÿâ¯Ãáì×BìžOË‹ï~p÷7W†Ù–!À&ê+Ã}&µX}ït[—ÅÎöè­Ýƒü:Ñ .B`'·7ßþ`ô‹ðÆØ$E3Ý)Ú™Øtr�ÖÁ^ÛÎÞ ßß2ei¿c[»séòæ%ÕÈ{†æ”þ7£Â9Äœä\ z¶uÅVZ%†/¼ Ÿ5 *‹zgZí>v5û ð¬ñoØÌÁV¥N(ƒ����IEND®B`‚IMAGE 1802 ./arch/monster/elemental/Para/para_ice.117 ‰PNG  ��� IHDR��� ��� ���szzô��ÑIDATXÃíWÛ‹Wÿ­½÷w;÷Ûœ¹Of’&M ©ÆPÒB_|ÁADÐlý›DÄ>¾[}‘*´Ú¤MÒ4É$™™ÌýrÎùÎwæ»ï½—“`ª’„¦P„.ØO ÖúíßZ{ÿÖ¢Æïà«4¯Øþÿ�DÆ"*4bËhºRT!¢Ba�ê…k‹Ž+éµ^½ufeöô«μ¶²¼Ø‹ãtüéÇ·>ùøÖÃÕOö¢!3£*ÄˈŒ,£ë)œi¶{½ÆÜÂÂÔ•Å¥ÙoÏÎÏ^îö§–{Ýn`ŒÎç:+§çþvñþæ{Gѽõ­£õÑ$Kö²Ò6”|&�zò "kÃèz+ýF»Õ®w;­Zwyeþ‹ 3o:®¼�S.{AЯÖëT©V9ð}¥Fš¥…aQ¦é‘f±9™$׎ŽF·Ö×¶¯£x…ǃÏvÂA¨-$ás ‘õmd–q¾4/œ™9{þìÒ·æOÍ¿éÖjgßk{ž3guÙœŒG”$)·º=ÌÎΡ×ï£ZUˆbƒp<F1 ‘F!2mˆ”g¤râ$ɶŒ1cßßÞÚ»¶¹}¸ºñhÿÞ½ÍÁÚN®uC^ßœ®,¿uõÕ_\¸ðÊw۽βÍÒ0-›²@’$Ðe×ÐíO£ßŸF­YC%�J Œ Lš ŒNŽ‘%%� ƒ| «KŽãÑþîÁÍÛ7îþîýÖÿ¸“êDͺT=¿ÜùÉÒRÿç•zµgH°à¹3€\HøRÁS¾ Z«Ã’@’[@.P $JYƒT n¥†8Ëà ‚µqV°5𤕆U)Å‚`³Ä‰:¾¹û®jâL¯Wý~­ÑèÕ ª58® ¥ˆrmPhO|GA*Ÿ”*P(‚ãðƒ�ªÐp¨k Ê¢„) v‚J©Kã0üéêÆà% !eËñ|¸žÇõ \J9�<¡aÉ@H ‚6L†s€øÁ%@:€v�­á(0�k%Øia ØÀó}HêíöL¸U•ö(Žâ‡yŸË³Òq „€f†¶ †`†)Ú�€ç(Xä(ò \VQ©xð|@)ÀS€¯� €°( À1Š-ˆŒ1Hóò0+m¬†9o<|4ø}·¿> à|«›y©_a¡)˜Fi ,Ös „�H�e†,v!”ß÷á¹ø¤ù ˆÀlQ–%Š¢¤<ÏóÞöîêúƒ­wÆÙ†*å§[ñ4ßß…éwgߪ·šKµZ¥å¸®'”#…ìH @3�kà()¬Ñà4ƒ©’'}c,�§$´1¬µ¶E^Dá(|p°³÷ÑÏþùÃkkï r“RãwÀÌ(�,TœúüTõT§]?ÕéÔWÚÆùé©ö•z£¾è~OºžGB²ã(!á( !,Nn+‰HËEž“4i:Æ·Ãñd'Mîom\´3ÜØ¥ãØ2*‚þý>1Í  !IÔ=U=Õ¯ê´kË‹Ë3?X^™ÿQ½Ù¬~pÒ+o,„€1YžóáþáÍõÕ_>XÛ»>ŠâñÁ0Þ§ef¬-‡Úrý?tâ¿´@A(,ì Փ͵ѭ…½ÉÝ^§zq|¸_*b¸R�ô¸ÎpÐÆ ‹)<܆G£è··>L Û§c×ÿ‡H=W¶ÀÒtíb¯]ù^48h%ãŠ<ƒ5ŠŽ�,Ä F½ê;ýÊüOÏ4– óËÏ.º{ÙóÝKÄÆZ­aŒ¢“�– ‚ô|ÔÛ]LÍL_ê÷êç¾”y@B:rªÑ› ‚VÊq JžÈ¬e€H <øA€F§ÇY’tõ`IˆOHüâ�ˆÀ†AA«ËÓÍ&Š,ƒ€ À#JJxž¯R…ãW0>:TJ‰€A/Ï�3(ãñp`ZÍWÁè’’$‰�X×u¥pœ�"!Ù2cÅ L z9@d‡azwg}}·xgßÇhnÝ_ÝüUšækïN÷úÍöçf¯Vê 8JÑÑîöñpœ<þž £ 7ŽÂ?ÍÎG?ƒµîÖ£¿¿ÿÁßÞæëEÞåÓÍäÊëze~q¡_©÷wþz8Lþ©¬žSé-\y6�Æše¡Ia‹p]¿}gë7ww'7"ä–Îʃ@ZV„ø`ð—›·Ö}s3¼.èù=@/º̘«¨6ˆì )Çšù8AÉŒ®'½º×L 3Ù™ä¡}Êÿ¥Œå.ŽR3z‹|*¶C„¨°Q4H£ïçý_¯f_x–ý ƒ¼nkÂÞ����IEND®B`‚IMAGE 1901 ./arch/monster/elemental/Para/para_ice.118 ‰PNG  ��� IHDR��� ��� ���szzô��4IDATx^íW]ŒW>wþÇ3¶Çëíþ%´ÙD ›4š¦AlZñ#U U#¢U¨P%žðÄâ¡H€„xB< ¡"$Jx¢*ˆ”f¡mØ.l6M6ñz{½ëÏÿÿ\άZP¶h…úÒ#{Æ÷Úßw¾óÝc›”>õuø0ƒû_>"àfXaVœ‚O)d˜V’þÿ 8ÍAOLhÚ3Ÿ}èÑï<wáé¾ñôW¿õü“O~å±…S‡ U€•f9!+J Br)æ½BØØF`Š9«Ü'ŽÍ,œ}ôÄ—N..\ªNMÍ—J%!BïȱÃwin¯8Ž·§txÁÀ2í!ÈL7ð=/ðG–gF®yÛ <DB€Å=O«FÀKó“ó'Ï=qÿÓ_¬ÎL/UªUCQT*Š"¤Y „II–…j¡Ë’ä¥iêð¨ã¡gÛNw{÷ÚúzíOWßi_„©‡$þ»V!ø|I–Î?<¿tâÔ±çË%õ"ÇÁ}¢$’¢®ÓÉ©ieü0Û²(±.´MÕ÷5IäÇó b ’�%Y š&æYá.Æað£¿Üè½�ɰ’ ƒOž?ná Gžeñ¬ãº’ ˆ´bTh¥RjE"H <_E’ÀSdTÃÊúÎñÀ£B<«’#?ˆ=s¼7x¦Ö-·t‹{8ËrðSSzåËOœ¾ôÔSŸ~añ‘‡¾«—‹KÀñ¢V,ÓâÄ$¨¥2`Y¨@ã% ‹¨ª†a@ ÷°}Fõ>0&ªP6*PÄÔËhø^­Œ÷cV‘Å»&ôQr ™>~jöá3gO<ûñãG.éEíXœf<‚Ó’QEUQr  $E¹{~xÌ €ù‰Ã"J p0DTQà8¶ ¥ãz…„§ÄQ<Œ’ÌË °cÂŽÏã'g;þô7ç>6wA× :‰Ê’LR TMä²j D�A�ÀI’ÅùL �wŸ)tïš&1$n™&m6·7no¶7tãNN€m:÷€±tzñÈ·§gªŸWUYÒ‹Eʤ :V,ä2;�ã jï (ì|׃8Á yÿ½0Š-•8 ¾>õwÐl4_¿ºrã×o­µ^E™/s„9•Ÿ~p¾úµ¹™É‹½(éF•êØ;½¤£‰�¦4Ð5È•b 1 À¶MpœUOÁ9¼BÃL$†ƒþðzk»óf«¹û×z­½¼ÞÕÜŒf œ… )d¡X.|F+—e­lP+×t(‚L&uä­3Àôp'w{Ì\H3 8—;ƒ$ÍHˆÑë ®oÕ[—××7_®5z×v­Ðô2 *Ë„¼7 Eލ<ÇëŠZ I®BAÁ@̽>›ãFã1Ð8„p¯ß¬ì½B Í<‰±ÏÖ°^küöí·7^|g³s­n†faoÿ÷ü0íFAЇ,ãH^“<7{ Cˆ ÖÛÜ ‚óì Ìý@Çôƒ ®o6.ÿùòêO.oto”Dø½‚æÎ¤?Z¬œÄ1*QBHñì ºCèìì »Ý^'ò=mÐëñiãG1VÝszšc[dÔïûqo ûöFÄz²Oðtî¬K£¤) ™€gW÷}ÜïöîôÚÛ7omÔþ°ú÷õŸ×nÕW=×<ݨm”¦$Ëù‘ä0³¼÷Ì )3$…þ¬^Ôµao´¼k#ŽÜ[Ê[Ãp-xcóûۭѯ$Y"~˜Øaº»#سë܃ÏMNÈef:ËõAEç—Ð$¢ æÃ†EHè#œ€D7²Å©Éâqh7aŸ0󝯦u:7»6˜ÞÇšR^W…ÃÓ33…rud¬^/òIG€í…\‰É”•LNMÑÀu'JEõ~�aâìK`Ûù~ðüžò˜åé¹C|ç»ç:À£Ü š‘ÁgÊdI’¡Tb#»�£^WNÅõƒÿ"býu¼€fXåÌÜ!¨NÍ�/«„žË~qø€Î% Š7`ޏSˆ˜�›–¿Ón6ß6A"@ÒÖVóo,¯|oùµ7psmí­V£õ­-ØÚÜ$ÍFÚ^—É`@õ£l³Ón[»­&ØãµÁðŸ+×_üÍ++?~ùÕüðʕ՟Õë;¶9&öx˜tÚÝ×zCïjB÷' À'Èã±U3Íñ ;óíN¿Vo VÝ”&<@r«iÿÞ(7Ñ”ž¢´¾~½ñR­ïÝ ˜ã€ÞÜiÑiï¡ïO4êÛ¯´n]Úèiçok;?½½5ü¥¥vÛÇÌ;üþøðþš…”¤Äk‹G'>WÔTmc«ÿúµ¾·­qû#œÀ^$HB$@PVb¥4SsðƒÇGN?tÿÈŒ×Ýóì/����IEND®B`‚IMAGE 1907 ./arch/monster/elemental/Para/para_ice.121 ‰PNG  ��� IHDR��� ��� ���szzô��:IDATx^íW[l\GþçÌœÛîÙûÕ^ïúRßçbÇnÝŠTAUT©*ÄC$@HP©Í H\„x¨„”·¾ AˆPÔ´Mˆ¶ë8q{ØŽ½wïÙÝsþs¢>€„œ‚#^:Ò¿3sΜù¾ÿûõÿ;CÂO½ ÿÏ&|\€O4mö‘ÒX@L)Lhš.|t×õEÀÉ\4þÅçg^øÎ7¾ðڙ׿þ£3?üêw¿uúÉçNäci‡s0ÐþgM-JH>,KG³‘è—ž›}ùŹWOŸþÔ¯N}zîÍécã?. å_92öóÏ<·pöÅÏ/üä…ù¡ÏŽÆ@íGT„}4h£—¶Ã!&Q˜ÏEcƒý™¡‘áüL&¶Ú«ªÒ4p§_ň¢JDb”ë.˜¶­ªAudh¸0Ò”…ɱÚùõõís׋›Wßßk5ÂT8€ïñ`HŽ¥'&t`0·K%N„µà€Ä­\o’Z­*à<@"™ä‰T˜,@·ëB§µÏ2éd26šèûÜàHÿŸ&Šk(ÞÚ*.Wô}HÆþ½Q«w†#r♹'^™=9õÆØØÀ—S™Ô“‚(emÇ–MÓ"]'8†`( Ñx4ìå€ L Œ€Èd€ãr*0–éÉ$<Gæ ùtD¨eî×u£]·Ý!BSý'ƒ'ÇÓ¯=>ö½L®w2‹Ë¡HMU €€(œ5ß$YA`ÉO —3|‡C|ϘIQd 8wE&I¹d2:;4Ðs*ŸOO¦¢M¶ÍfµÙi4\$BÐþñù‰¹ƒgƦ&¦’َƈˆÀªª‚ªH@ ”1(2øÍû 9HB•) .\#—ˆ@ù=eˆ!‰,¡…CÓñTl! F%îèµÖFÃr,Ú36?45Qx¹h(¦E¢¬�<•wÁ´,p¸mƒ‰ø \×à-¢À(—ø¢€MP¦ R2Èh’$ùûqo%%!- M„ƒâ¤ÝÑ÷Ë}…F 3ñÞlèÙT:Ùï±vÌ0M0º]Ðuö÷÷ÁètÀ4 °L$Á$cÙ€‹Á¹Ë1 ‚GI¤¾LŠ Åï‘/|"a"Ë¢~…f¥ú>åÙ™¦ŽVYZ b]Á2:¬­ë¤ÝnÛè]ÛôU°Qû®iùOšstPÜFxh¾”TDB2†KÆ¡„s†B:‘òÎî…ܬ]kto¶ªkjuéÁNùJy¯òÁ΃òJ­Zßì¶;môq¬�~Ems0�܃áAE,$f™h6¾ã ô&¨�H¢çÁTõŽ©«·èæzéÝþŽýʦD @“¨L© ª D59(OôõÆ^Êz^ `Yá2J ¸¡CzÍüÍEé¡§@‚šÑh{�J�,@ßjÍ$ÕJÖV–·ÏŸ»øÚ篾ë‡gGϙ̽™ÉÄOÄcqPß5u¦‚àg¥Ô«À 4’@óRWU}ù p(WkpoóþÚõw¯ÿîÂßnœep@39@!(J…¾Ô„mèéÚ®EBªÂUYŽàœ ~jzA1tÝÜ®ÔÞétÍÛ QÔ‚ª" HˆQ꺶Ӫ՛{kwJ—ß[¼sáf¥]9€Å9L $§&Æû¿vãv_½^ãALWt´ˆò£É’Ÿ ­rÓY¾ñáâÛ7¶ÁZHAR%Ê<…0¶¼cXF˰ÍjÛl>?€„ÚfÓáù\>7í:]¾U*f˜† $ >¸(˾ V¯t61Ÿ*Õ W6êWðŸZP vS¤‚{ÜA¸P<áHį„ÀùÃú/zTд$Ó>>}äèS G¿2$å@Â"â&»†A¨$ƒ’®esÛ± ¥ DE/$ñTzúò08:®ŽLŽ>ŠkY8¸J€ÉŒŠ"áÀT•Db ·ZiÜhÔZ*kc©åÉT$0,�JÛ\Û–r( ´ÍÎín§ã€ã€eX‹k땟‹¥_înoo¸–Eb•¿àA³Ñ€êƒz½Õm – úZ©zîfqõ·,-Ÿ½ú^ñgK·÷þ¼´ZþãjñÖå{n¡ê�ÐØíÀÎÖ=ØÞÙ»ÛìØ»‡‘XÞi_*_Zùsè–u«©ã€«wü5·\|‹M"ˆÅÉ;¸”wwÍr¹¶nÚ®ù(þ뛑Ëò9¾0Ó÷ëc³ÇN¥2=`X¬­Þ}çâÅÅ\[¯ÿòø.&^ï¶Ý•ÒVó­­í½Åݽ½½û¥ûo¯,¯¿ugkÿþøoF:7KÍß_»zëû—.\ûæ_Î_ýöåÅÍßìN°Vú³ò½B8ñ*ÜÇiŸÜŽÿ À’óhe|����IEND®B`‚IMAGE 1869 ./arch/monster/elemental/Para/para_ice.122 ‰PNG  ��� IHDR��� ��� ���szzô��IDATXÃÍ—É\WÅÏw‡7Õ«zUÕÕ]ÝîvÛn ÛØQ"Ü(L ,`Á°DbÁ‚+vìùS`G"„„P$/"¤(2SH<ÆCìvb÷XC×ÐUõ¦{ïÇ¢md#+¶‰‘ù6oõtºçÜ{Ï¡Ú׎W9¯x^9€zÑÆ¥Å| h.ò<)%+±9˜åýÂrMË/9‡Â�B`Ù—"ô”Ê£U ÂV#nž=·öãkÇ^o4êZƒ‹kWo|ðç÷.½ÿñÖ`oÆ@$èÅfŽàô|Ü<±ºp¼ÑL–Ídq¡™´ý0Hf¥UZR«èåf«y¦Z¯/Ea_Iö"ïA¥\X»rû÷ÿ¸¾ù—OFÙ´&ÅóäÌhj¡ß<wä{o¼qêGÇŽ¯¬G•JÛóýŠï© ´N¦œ§SákMZ+()Xapüôé?«Vü7“fíwK7üáúýþí¾q\Ÿ"ý•u8�_Y­}{ý«§µvrõûÍFrDJƒ_f©ô{” ‰AW‘̵ÐhµQŸ«Á b)¡¥JÉ¥¸ŸŸ¯¯µ*ºÈ‡ÓÍí´,üÏ‘Dú+ë¨{ÔX?»ô‹³çNý 17/ãj ^€IÀZ‹4MA T*Tj âjŒ ¬ ”"áƒ8�$(ª'ñ™¥¥Ök­F„¦è|Ò›ì€$z:@¬)9srþ'«ÇŽžª5(Ï„€µì¤”RIB* ©|OÃS˜�&‚ƒ„RcHiÕ^Xœ?¿´Ø<Òò0±Ó´’çÿ¹‡0c>–§Íø¼TÚ7Î!-Jز„³‚ìì¡i$A ­„T0P øž„$˜ †V2J’ê———Ö—Ûõö‚æÙp8éíæÆ<‘þÊ:r‡’³²£ÉÔ$Ù#Ö”a™g¢È3”ESä(òÌp)˜aH*( @ (å# |H¥`™až§Û¹ä|»]=œŽ»£nn è@¡—Ùîl4»’N¦7²4Ý-òL8SÄeQzyž‰4ÏAÎlQ–yi`œƒÒI(I¨„(Ô:¤“€àœÓZŠU?Ð_ ¤õ²áä^/·鯬ã‘Aº™nõf×6·ï÷»Ã¿ŽG7ò"Ë\“ÙUc8kQÇ °˜¡„€ ‚Ë€ÖaÀ÷|(夂”žVm­Å©|rÐïô¦Wÿ ��ê¡K3ÃùÖ8ßÞêL>ìuF˧“="»êyª-„�ƒÁÎÁZ k-œ5°ÆÂZ‡Ì0, !À(¥ø>H)hσÐ$eݳ¨³Ý»øÀî$¼ŸÙÑþ0».ÊbT‹½sQèÏùZAëØZdySæ°Æ��|-!…„RZž)$�P1;È66vþôÌÇHa¯pÓ¥©{o0þqè“Zk µ†V‡ºçelæ�k`Ë¶ÈÆ1ªµ•؇ò€@ŠÌGi ´Ö$̘>€,Ê[;>ÿ%ósãA_Äq…µ äá-(BÈ–”OF\d™+²™,óe‘p«UC +@Τ“Éxk«ûîî0Ýz6�Ëàìêrã§“ÁîÑ,q‘epU ’Âó( c £¡ëïuoN3{qq¡¹4G“z½=5„Š™iÔïoݼvë^¹÷ÛÏfæà9ò�£â‹å¤”Ôâa¿‹¼,a¬„„öCA�SÈ&J³lzéÒ§oòëFµ½0ŸMÉQ?ðC°ßÛ߸zý³‹—vºUAx E^ˆ"ËD…(ÓÌ v !$<?@U`]�A„0 _cþð ÿ¼|ùæÎysçŠ'ˆ|"0¬cXæêÛð™�‚ÆØ²È3׿Áõ:¥y8O+®T*ˆj ˜ÕZ‚¹¶ éo.|pkqs”õÊÈó#K¡úØ{ðÒ’wÓ´¼W‰+G⸂ûv¶G£¬Xs$ |ž›¯Ã €¢�ò©‚‹Ù”ÁKÉ„`oênÝßü:™Û÷4¾swï-[äQµZûeµ½|ìD®Øó€ýÝ1½áp’M^Z(XN/ßÙ{|ýZax²Ñ™ÜŠ$æZ;_[\Y9:\[#®ÃnŠÝíMììvïSÓyi�†…6þÎ`}ËÝ;w—Wn|7®VçâFétJ½N§èõŸÆ/5–良qÿÀ|´³Ó½µ°½ù-g-ò²ÄÞNç£{÷ûï 7}Zzj"úo†È "E¦Z‹Ž )d¿Ó¿òñµ»¿¹üI÷Bé`þ'ÅäñIÒ›÷Ço·ï&··›ÝýÉÆíÑínnÓð9»}Ñrj™!�hA4²Ì•(%_xOº†ñ‹ÿåô_WÎv :v¨����IEND®B`‚IMAGE 1687 ./arch/monster/elemental/Para/para_ice.123 ‰PNG  ��� IHDR��� ��� ���szzô��^IDATXÃÍ—Ë\GÆ¿S[÷Õ·{ºçÑv2±3'eÁ AüdÏ’„v¿�) @‚@ Žclcw2ãG<¯îžé¾ý¸·ï£ê°°-ÅÆvÚXV8ÛRÕùéûªJß¡äÂ{ø&Kà.õ´…Ì1jç�"´a`á‰/`æ]#õ›ßzåüéÓ'Ï6‘Éóâxt”ÞëLJ{ý4-˺n'¡˜{i>ª,'J¾8�3£%‰.|§û³þèû¿ØxíÕóQ#QJ{1÷ùâËÁàøKgm¾¶¾ùìòå«ÿüëß®üùòNÿnÎ@(è ‰†úöÉnòžï«wŠ|NÀaBRžðŒþÞ‰“kN*ÅqI"roé7úQd>è^ºþþ¥ë»nÏŠ,ËY%Í«o?ÚŒX¾uz³õs?Ž[•c”y†|š"£,PZ“ ò<Ö:b Eþw[Íð¼†O†“Þ ´•Gôü� ‚mušê]? 6œsÈf3Ì&)ØÖ Z5¬vO`}=AÅPJCI)”’'Q[ªiz4íJWé¯x‚€µl}*O¾8/ˆ½ª®QV|ßG«ÕB³µ‚$Ià‡�AC Bi ¨‡ÞV(yšM¿V‰ÿ�€’1w•ë²:k´8C�„PJA{&á<Ï@€ˆ HÂ93ÃÝm¶â-#1ƽãÒ>U‰'5†ÒÖÎ({V ^—B€ˆ�!¡ïûÊ€¤ À±€µÎZ3Œoº­V¼¥ÈMioXÖOTâ‰��`A.+y[X;Už‘‚RJhσÖ$,iH%¡ HC²ØÁ9ã›nÒŒ·"éd0îíueƒx*�¨ªù=Ánâ{8§$­ AÐRB)¡4j”Ð0ZB+‚Ö¹ûj8ã{Ýv+Þ ¤›ŽǽƒÒ>ñT€‡V”Ž«EÉwBÍ'’H¾­¥”Ì�ÐZÁh % Ì­4Â@ÀÓ>`v÷ïDú[Š«ét8éJW©Ïø ÄB;+Û±º^[‚sÖ9()!¥@Q;ÔŽ¡•Ö,4@Ë ë$©¹…2Ÿ †ó5Ã.ðÐk9mx3ŽýsÚó�ʲ‚uÌ– !Œ§á@.°Ôu¶XK£+{³jW-P8F·ú­†ú±ïÑÆ¥Ö÷½.‹pJJ(%!…¼ßŒžVp h%a< U]¯ÍÇ£Ãýþìc˨Õ2ÿu,‰6×߯aù“²X˜š™Iyðµ†sÓt b†€ƒßSpJ¢¬ $”!)‘8Fgu5X]kž‹½ƒ¨X¸|)�_ öU}Q ûº‚%ß ŠpB¡ª*d‹†ý>5++m4”Bx¨FY¿B$†Î¡xf yÌ›e ÛŒö´‚­5Â8†i´àÙl†lšb6@ f€ˆ;AqäÑbf‘Íó½þÑìï£ÒMŸ�Åx²¸¹±êτұcFíJ{ˆ£QÂ#„Q„E–¡(ËÙÞ½ÝQV”Ç›Íy6ÇÞîþε«½÷ol÷ÿX2Ã#Z€ˆì¢ŸHå_kµÛ˜ÖZ°¬ý�qÒBL·ÒFY׸wûÎÝþòñ¯¤ö¨{rc«‘ÄÍ<˧·¾¸óá'—>ÿÓ¿ó£‡Ñn9��ÃŒ¯ GÕ¯»]UVuL&³ÎZUm*Ïpg}a�dÍjÜÛÙÆÍw?ºº›^ñ”Ôyeë£y™¥Î=’+Õ²Ñin9ÿlgüÛtZýÃ2{­†þAÜH~Ù}íô©(�¯�(<`>àøð0Mç‹yíàge xÎãIii�I„yÍ‹kû³ë53Vé ÛÙygóÔææñ™-² `ÔÏq°wûƒ[“¼î¿P,æ&"Œ >ܾ}ø‡WnüûÝ(ntíòùœ†ý~9Žn—µ+_ÀƒèÆÇÓúÓƒƒáÍîþîEvEUáp¿ÿé­»G¿—n.ÿ—L¸l‹šÓPQÝHÂSB yÔ?ºrýêöo>û|ðAåP¿T� wÈoÜüÜÛnööÚƒãÙÎ{ioPØ<Xr6 N-3�-ˆRË=ÇPò <|�P3ž»ùÿÅtü]ì$kªìèÄ����IEND®B`‚IMAGE 1533 ./arch/monster/elemental/Para/para_ice.124 ‰PNG  ��� IHDR��� ��� ���szzô��ÄIDATx^í—ë‹]WÆŸwíû>gæÜæÌ¥Îi¦™d’Ø8„&˜4ibª˜¢ëµ H¡)%_ E¡àÿàEúÁb? ­Ö&̤5iÒd:“ä\ö>û\æìûZ˽óE¿˜ÉLÁ^k}yk­g½k-š<uÿM1�ÿ;�ƒ„#`©ŒMh Ëúÿ€@È,_¨Í®<sú?|ák?xñÛ_Zyö죟<2W¶¶a>>€DJœ9P_~úéÓ/}î¿8÷™“?ùüSç~ñ;ß|åÒ¥•Ÿ½¸òÅ‹_Xn”R"’ro$€}­¼´8û\}ºò­0ðç[­¦Ö÷œ²e¨ONÏÔ^8²|è§çÎ?öã§N,\xÈÖ졸Ř?Ž§Ù¢º´¿1ñ=Sgû�)uÀiÙP qÊ –e›G*%ó¨†t4t‡×›1O ¢½ñ€àI¹ï¶+žÓ‘R ELMÏ 2SF¹^G©Z“åÚ”úÐÃãËÇ–¾r¹ñlÃR-!åîqœ˜}ÏÓÃ!‚(†„D*�!Û,ÛF¡8r¥"gæf–,Íwi¾tf<@Rt|?ò’0 È|@£ÑI(èÁ4óm±`'euºþ©‹s_ŸÔë¡»] àÔ…|#Oº5èg19ˆHS$PU@QR ›*Õª¾¸Ø¸pdýœÉˆvíÌó#¬ù#?îzÚ½ž?©T]¢jŒŠ¢mÉj}jañ`ãëÔìF äîN�RrrÂLÏ[¦>©è4ÃËÚTtÝ„¢ŠdˆãišBHÉ£ZM§Ý_óS‘2¢-Å„WWƒP\ G[z.<§“µÒ`EP`š Ó†žÁ,KV«•¹C‡žô‘Ú¶› Œ–tq̶؉|jÄØv"DI¹Täã’sò!ª‹4VNµí']…hç�ùÚ SEvÊ4pRÕ4•s>6ž®ëˆ%ƒƒiè(dÁ!RB%’ +OÍöðo\"Ý1�ðØBíð¾ùÒ x|H7M€�žÄÐZÖW5=b`)„bÎÁ…Èý`ó4.xíî_Z£¤©í @#¢‡kÚWŠ&>‰C³8Y‚i™HâIšÂ0Ìq 0tº–©*À¹ˆ(íjÚ½µÙÙzG‚ÄŽ� …QUÃ/ÛZüY%?f¥Ê•*ìbR¤I;ÈB×ô @ˆ€íä�rP³ïu½Íîë‡m©¸I¢4ŒÓ1-Ò³é2ÆÆQyª•)ð:Íq&&`ÛöØŒŠ®· DI Ý* P´mMa àØ�@<Úª 㪪™‡ °ɲ²T©=à5ïÂm5ÇÛ1¾-5LUAÄ`j^#øˆËàžd-on´ù¥{Nü#¯ü.Žâ#"»PÀâÒa,?Ér®ë¢×ë!IyX†J*âÑèZ§ÝûóV,†; �A*ý+­ðõ·o ^Y½Þ}isÓù¿5Q¦j­†£Ç–pìäiÔggáv=º{÷ï:[Ôs»Éú­Þºòîû¿Z»vïµð_®èz–ÇRâ`Õ8zöÓû_>ñÄãÏ?uŠ>Q<�·nºtõÊåN»åþ±X( ’(ÞzÿêWÿºöÑ;7a0©üóœU<€t"ÜîFWkï­ÿav®~öàâbm¢P‡ç&¸m´ïl~ð§×.ÿ²7J?�AYD[#l'ß=@.ÈMÇ¿rûÆÍ;kÓïN¹ÝÉ… §ÝâN«{Ùé‡ëÝH�`1Úû‰B?Ɔ×óßö\'éuò‡}¸­ÎꇷۿwBÞÿØFý¶þÖítßpZõÛoþý½}}£÷îS*v!FÀõìdð·nÞ)]kMùAì¬77î†<(0ÂýhO>§BJ(Dã–ˆ°ýÿwüÒ!°BpNŒ����IEND®B`‚IMAGE 1411 ./arch/monster/elemental/Para/para_ice.125 ‰PNG  ��� IHDR��� ��� ���szzô��JIDATx^í—]lSeÆÿïùlO»~­=¥[ÛmÙp!ÀØÄ„JbP$Þ`âW¢ÑhPŒšcT.LŒ„.¸ðR½Ð;nô‚@j$~\l“‰CféÚõó|µ§çœ÷õß^£[nhúÜ´É{~}žçÿO_š<wóÅýßîhŽ’Š(-™XxtCØ/󇟯/@ƒ2Ð< dcê Oì~þÍמ:qôW>>úîÁŽ|üÐþ±ÌFÆبupQ“éð྇ÇߞܱõøèHö°šŒ½¸¡O}}ó¶MÇÜ3ñþ#÷ìëSDŤ¬»� •I`0~.Ý{)à—2ÀñТ„Ù®GxIŠo|v÷î­ÇwgŸŠŠNYwˆùȰâƒGâ¢Oa¡XRéôõÅ!žH°xB2™ícc#G¶oI?Ýï䮿E<§™hÚ6s< c@€É’_%eÉþÔØÐpêÕlBo1Ö� ×õ¦)Ö5,Ë‚V³ ødA$ Ë2øÂáK&ãéèc‘ów©l”[f½ih`›:4À¶)0ày�Y@–$ èF0 d3ê®dHN¡S]p�å10š Û4µ:±´´L£Ñr�\à´âxtC ñ¤º- OJHW:àP¢ëf³T­”¡R.‰º¦nÚ11A@B‰’Äz"5QÄe¬{€«ÙY44–Ѝ”V@«×À2 À/µ»€GIE°'Èe3ÉC©Ð„× < –CùE·Õ²Z–—óP¯VÀÐ5°ÌP "H²Œ�XH¿ŸE{cCCƒê”"ÄÑ…Õ”ªHR:—9ŽxMÌ¿˜ÏCe¥ˆ.Ô¡ŽQ8M¯ã‚âó¡dð˨@PêïW÷fÔÀ[‹ažÀ¦¡Ø¾#}Oâ/ "˜õ*”òw@G7†&FÁ1èL‚Жˆ1¸ z³éTdo@ ÁUˆÀB–QÙ¿RÌM´‘àS:m×*+`TJаL0- eZÝé€(£ŠÁpÄ—Lõ>Yünu�.cT¯kT¯U6œ´N$®¶7`§ŒµjLÓÃj¥Ç‡€.ô°^5>*«vÀb-qÊvÅ)žMg.Š@" 4tÁBÐhØNgq‰Œ}6GÃJ†#„¬€åü™ÛeîhÝd§Ç5ÑFAMõC³ޤ�¥Àó<ød $t@@ád`b‚_ °:�å1âÞ±àò­‚s²P0>74ãFú0Žz‹¨ó< „QÀÏF©Õ°Ý¢Ã[Ó_2´rº7}mQÿðÆ|áXa¹4Ãp.3#£SS`š&Ž ý�m@Ã4i¹T½X®ZÓ”Áš�:jÇXhx…k •/g¦ç?É/-•@¹oë8DI0´1j5¢U[_.–ço,~uéòï'–õ9žîü+¢Ü¢æÌ…³7¯ÏÍTîü œç`á‚@]æ¯ÿ–ûá»ï?›:ýÍ[gN_xïÛ‹‹çL—ºÿtÖš.&PeÇÿÄž=ÛmÚLDŸŸÔ+ïê¥éOúeáØÂŠ‘«¹B<·>÷ Än4½¹º¦k•jÔjuø+—¿:;·ôõlAÏQÿöðŽ„50â5z¾PÔFý¡âN‘òììÍ/ænW/`Lë3âÀ’áÍý|%÷Á¹ó¿¾|vêÒ?^Y:UmQ‹üÇ3î]Nï:ÀßG¿wß7Y����IEND®B`‚IMAGE 1533 ./arch/monster/elemental/Para/para_ice.126 ‰PNG  ��� IHDR��� ��� ���szzô��ÄIDATx^í—ë‹]WÆŸwíû>gæÜæÌ¥Îi¦™d’Ø8„&˜4ibª˜¢ëµ H¡)%_ E¡àÿàEúÁb? ­Ö&̤5iÒd:“ä\ö>û\æìûZ˽óE¿˜ÉLÁ^k}yk­g½k-š<uÿM1�ÿ;�ƒ„#`©ŒMh Ëúÿ€@È,_¨Í®<sú?|ák?xñÛ_Zyö죟<2W¶¶a>>€DJœ9P_~úéÓ/}î¿8÷™“?ùüSç~ñ;ß|åÒ¥•Ÿ½¸òÅ‹_Xn”R"’ro$€}­¼´8û\}ºò­0ðç[­¦Ö÷œ²e¨ONÏÔ^8²|è§çÎ?öã§N,\xÈÖ졸Ř?Ž§Ù¢º´¿1ñ=Sgû�)uÀiÙP qÊ –e›G*%ó¨†t4t‡×›1O ¢½ñ€àI¹ï¶+žÓ‘R ELMÏ 2SF¹^G©Z“åÚ”úÐÃãËÇ–¾r¹ñlÃR-!åîqœ˜}ÏÓÃ!‚(†„D*�!Û,ÛF¡8r¥"gæf–,Íwi¾tf<@Rt|?ò’0 È|@£ÑI(èÁ4óm±`'euºþ©‹s_ŸÔë¡»] àÔ…|#Oº5èg19ˆHS$PU@QR ›*Õª¾¸Ø¸pdýœÉˆvíÌó#¬ù#?îzÚ½ž?©T]¢jŒŠ¢mÉj}jañ`ãëÔìF äîN�RrrÂLÏ[¦>©è4ÃËÚTtÝ„¢ŠdˆãišBHÉ£ZM§Ý_óS‘2¢-Å„WWƒP\ G[z.<§“µÒ`EP`š Ó†žÁ,KV«•¹C‡žô‘Ú¶› Œ–tq̶؉|jÄØv"DI¹Täã’sò!ª‹4VNµí']…hç�ùÚ SEvÊ4pRÕ4•s>6ž®ëˆ%ƒƒiè(dÁ!RB%’ +OÍöðo\"Ý1�ðØBíð¾ùÒ x|H7M€�žÄÐZÖW5=b`)„bÎÁ…Èý`ó4.xíî_Z£¤©í @#¢‡kÚWŠ&>‰C³8Y‚i™HâIšÂ0Ìq 0tº–©*À¹ˆ(íjÚ½µÙÙzG‚ÄŽ� …QUÃ/ÛZüY%?f¥Ê•*ìbR¤I;ÈB×ô @ˆ€íä�rP³ïu½Íîë‡m©¸I¢4ŒÓ1-Ò³é2ÆÆQyª•)ð:Íq&&`ÛöØŒŠ®· DI Ý* P´mMa àØ�@<Úª 㪪™‡ °ɲ²T©=à5ïÂm5ÇÛ1¾-5LUAÄ`j^#øˆËàžd-on´ù¥{Nü#¯ü.Žâ#"»PÀâÒa,?Ér®ë¢×ë!IyX†J*âÑèZ§ÝûóV,†; �A*ý+­ðõ·o ^Y½Þ}isÓù¿5Q¦j­†£Ç–pìäiÔggáv=º{÷ï:[Ôs»Éú­Þºòîû¿Z»vïµð_®èz–ÇRâ`Õ8zöÓû_>ñÄãÏ?uŠ>Q<�·nºtõÊåN»åþ±X( ’(ÞzÿêWÿºöÑ;7a0©üóœU<€t"ÜîFWkï­ÿav®~öàâbm¢P‡ç&¸m´ïl~ð§×.ÿ²7J?�AYD[#l'ß=@.ÈMÇ¿rûÆÍ;kÓïN¹ÝÉ… §ÝâN«{Ùé‡ëÝH�`1Úû‰B?Ɔ×óßö\'éuò‡}¸­ÎꇷۿwBÞÿØFý¶þÖítßpZõÛoþý½}}£÷îS*v!FÀõìdð·nÞ)]kMùAì¬77î†<(0ÂýhO>§BJ(Dã–ˆ°ýÿwüÒ!°BpNŒ����IEND®B`‚IMAGE 1687 ./arch/monster/elemental/Para/para_ice.127 ‰PNG  ��� IHDR��� ��� ���szzô��^IDATXÃÍ—Ë\GÆ¿S[÷Õ·{ºçÑv2±3'eÁ AüdÏ’„v¿�) @‚@ Žclcw2ãG<¯îžé¾ý¸·ï£ê°°-ÅÆvÚXV8ÛRÕùéûªJß¡äÂ{ø&Kà.õ´…Ì1jç�"´a`á‰/`æ]#õ›ßzåüéÓ'Ï6‘Éóâxt”ÞëLJ{ý4-˺n'¡˜{i>ª,'J¾8�3£%‰.|§û³þèû¿ØxíÕóQ#QJ{1÷ùâËÁàøKgm¾¶¾ùìòå«ÿüëß®üùòNÿnÎ@(è ‰†úöÉnòžï«wŠ|NÀaBRžðŒþÞ‰“kN*ÅqI"roé7úQd>è^ºþþ¥ë»nÏŠ,ËY%Í«o?ÚŒX¾uz³õs?Ž[•c”y†|š"£,PZ“ ò<Ö:b Eþw[Íð¼†O†“Þ ´•Gôü� ‚mušê]? 6œsÈf3Ì&)ØÖ Z5¬vO`}=AÅPJCI)”’'Q[ªiz4íJWé¯x‚€µl}*O¾8/ˆ½ª®QV|ßG«ÕB³µ‚$Ià‡�AC Bi ¨‡ÞV(yšM¿V‰ÿ�€’1w•ë²:k´8C�„PJA{&á<Ï@€ˆ HÂ93ÃÝm¶â-#1ƽãÒ>U‰'5†ÒÖÎ({V ^—B€ˆ�!¡ïûÊ€¤ À±€µÎZ3Œoº­V¼¥ÈMioXÖOTâ‰��`A.+y[X;Už‘‚RJhσÖ$,iH%¡ HC²ØÁ9ã›nÒŒ·"éd0îíueƒx*�¨ªù=Ánâ{8§$­ AÐRB)¡4j”Ð0ZB+‚Ö¹ûj8ã{Ýv+Þ ¤›ŽǽƒÒ>ñT€‡V”Ž«EÉwBÍ'’H¾­¥”Ì�ÐZÁh % Ì­4Â@ÀÓ>`v÷ïDú[Š«ét8éJW©Ïø ÄB;+Û±º^[‚sÖ9()!¥@Q;ÔŽ¡•Ö,4@Ë ë$©¹…2Ÿ †ó5Ã.ðÐk9mx3ŽýsÚó�ʲ‚uÌ– !Œ§á@.°Ôu¶XK£+{³jW-P8F·ú­†ú±ïÑÆ¥Ö÷½.‹pJJ(%!…¼ßŒžVp h%a< U]¯ÍÇ£Ãýþìc˨Õ2ÿu,‰6×߯aù“²X˜š™Iyðµ†sÓt b†€ƒßSpJ¢¬ $”!)‘8Fgu5X]kž‹½ƒ¨X¸|)�_ öU}Q ûº‚%ß ŠpB¡ª*d‹†ý>5++m4”Bx¨FY¿B$†Î¡xf yÌ›e ÛŒö´‚­5Â8†i´àÙl†lšb6@ f€ˆ;AqäÑbf‘Íó½þÑìï£ÒMŸ�Åx²¸¹±êτұcFíJ{ˆ£QÂ#„Q„E–¡(ËÙÞ½ÝQV”Ç›Íy6ÇÞîþε«½÷ol÷ÿX2Ã#Z€ˆì¢ŸHå_kµÛ˜ÖZ°¬ý�qÒBL·ÒFY׸wûÎÝþòñ¯¤ö¨{rc«‘ÄÍ<˧·¾¸óá'—>ÿÓ¿ó£‡Ñn9��ÃŒ¯ GÕ¯»]UVuL&³ÎZUm*Ïpg}a�dÍjÜÛÙÆÍw?ºº›^ñ”Ôyeë£y™¥Î=’+Õ²Ñin9ÿlgüÛtZýÃ2{­†þAÜH~Ù}íô©(�¯�(<`>àøð0Mç‹yíàge xÎãIii�I„yÍ‹kû³ë53Vé ÛÙygóÔææñ™-² `ÔÏq°wûƒ[“¼î¿P,æ&"Œ >ܾ}ø‡WnüûÝ(ntíòùœ†ý~9Žn—µ+_ÀƒèÆÇÓúÓƒƒáÍîþîEvEUáp¿ÿé­»G¿—n.ÿ—L¸l‹šÓPQÝHÂSB yÔ?ºrýêöo>û|ðAåP¿T� wÈoÜüÜÛnööÚƒãÙÎ{ioPØ<Xr6 N-3�-ˆRË=ÇPò <|�P3ž»ùÿÅtü]ì$kªìèÄ����IEND®B`‚IMAGE 1869 ./arch/monster/elemental/Para/para_ice.128 ‰PNG  ��� IHDR��� ��� ���szzô��IDATXÃÍ—É\WÅÏw‡7Õ«zUÕÕ]ÝîvÛn ÛØQ"Ü(L ,`Á°DbÁ‚+vìùS`G"„„P$/"¤(2SH<ÆCìvb÷XC×ÐUõ¦{ïÇ¢md#+¶‰‘ù6oõtºçÜ{Ï¡Ú׎W9¯x^9€zÑÆ¥Å| h.ò<)%+±9˜åýÂrMË/9‡Â�B`Ù—"ô”Ê£U ÂV#nž=·öãkÇ^o4êZƒ‹kWo|ðç÷.½ÿñÖ`oÆ@$èÅfŽàô|Ü<±ºp¼ÑL–Ídq¡™´ý0Hf¥UZR«èåf«y¦Z¯/Ea_Iö"ïA¥\X»rû÷ÿ¸¾ù—OFÙ´&ÅóäÌhj¡ß<wä{o¼qêGÇŽ¯¬G•JÛóýŠï© ´N¦œ§SákMZ+()Xapüôé?«Vü7“fíwK7üáúýþí¾q\Ÿ"ý•u8�_Y­}{ý«§µvrõûÍFrDJƒ_f©ô{” ‰AW‘̵ÐhµQŸ«Á b)¡¥JÉ¥¸ŸŸ¯¯µ*ºÈ‡ÓÍí´,üÏ‘Dú+ë¨{ÔX?»ô‹³çNý 17/ãj ^€IÀZ‹4MA T*Tj âjŒ ¬ ”"áƒ8�$(ª'ñ™¥¥Ök­F„¦è|Ò›ì€$z:@¬)9srþ'«ÇŽžª5(Ï„€µì¤”RIB* ©|OÃS˜�&‚ƒ„RcHiÕ^Xœ?¿´Ø<Òò0±Ó´’çÿ¹‡0c>–§Íø¼TÚ7Î!-Jز„³‚ìì¡i$A ­„T0P øž„$˜ †V2J’ê———Ö—Ûõö‚æÙp8éíæÆ<‘þÊ:r‡’³²£ÉÔ$Ù#Ö”a™g¢È3”ESä(òÌp)˜aH*( @ (å# |H¥`™až§Û¹ä|»]=œŽ»£nn è@¡—Ùîl4»’N¦7²4Ý-òL8SÄeQzyž‰4ÏAÎlQ–yi`œƒÒI(I¨„(Ô:¤“€àœÓZŠU?Ð_ ¤õ²áä^/·鯬ã‘Aº™nõf×6·ï÷»Ã¿ŽG7ò"Ë\“ÙUc8kQÇ °˜¡„€ ‚Ë€ÖaÀ÷|(夂”žVm­Å©|rÐïô¦Wÿ ��ê¡K3ÃùÖ8ßÞêL>ìuF˧“="»êyª-„�ƒÁÎÁZ k-œ5°ÆÂZ‡Ì0, !À(¥ø>H)hσÐ$eݳ¨³Ý»øÀî$¼ŸÙÑþ0».ÊbT‹½sQèÏùZAëØZdySæ°Æ��|-!…„RZž)$�P1;È66vþôÌÇHa¯pÓ¥©{o0þqè“Zk µ†V‡ºçelæ�k`Ë¶ÈÆ1ªµ•؇ò€@ŠÌGi ´Ö$̘>€,Ê[;>ÿ%ósãA_Äq…µ äá-(BÈ–”OF\d™+²™,óe‘p«UC +@Τ“Éxk«ûîî0Ýz6�Ëàìêrã§“ÁîÑ,q‘epU ’Âó( c £¡ëïuoN3{qq¡¹4G“z½=5„Š™iÔïoݼvë^¹÷ÛÏfæà9ò�£â‹å¤”Ôâa¿‹¼,a¬„„öCA�SÈ&J³lzéÒ§oòëFµ½0ŸMÉQ?ðC°ßÛ߸zý³‹—vºUAx E^ˆ"ËD…(ÓÌ v !$<?@U`]�A„0 _cþð ÿ¼|ùæÎysçŠ'ˆ|"0¬cXæêÛð™�‚ÆØ²È3׿Áõ:¥y8O+®T*ˆj ˜ÕZ‚¹¶ éo.|pkqs”õÊÈó#K¡úØ{ðÒ’wÓ´¼W‰+G⸂ûv¶G£¬Xs$ |ž›¯Ã €¢�ò©‚‹Ù”ÁKÉ„`oênÝßü:™Û÷4¾swï-[äQµZûeµ½|ìD®Øó€ýÝ1½áp’M^Z(XN/ßÙ{|ýZax²Ñ™ÜŠ$æZ;_[\Y9:\[#®ÃnŠÝíMììvïSÓyi�†…6þÎ`}ËÝ;w—Wn|7®VçâFétJ½N§èõŸÆ/5–良qÿÀ|´³Ó½µ°½ù-g-ò²ÄÞNç£{÷ûï 7}Zzj"úo†È "E¦Z‹Ž )d¿Ó¿òñµ»¿¹üI÷Bé`þ'ÅäñIÒ›÷Ço·ï&··›ÝýÉÆíÑínnÓð9»}Ñrj™!�hA4²Ì•(%_xOº†ñ‹ÿåô_WÎv :v¨����IEND®B`‚IMAGE 1630 ./arch/monster/elemental/Para/para_ice.131 ‰PNG  ��� IHDR��� ��� ���szzô��%IDATXÃÅ—Én׆ÿs‡š»ªYÝÍQ“-GÌŽäEl#›¬d•§È*o·Wð6» †!bØ1,!Žlq”(QÙÝlvW5ß{³° Ø2e“$>Ë*Üs>üÿ©sOQøÖïðSÃOâe/ÆZ€1%gŒ†•2�rö¿˜iƒ>ëÚâõ+—–^iuâiÛöh8Þïõ‡û“á¸{Ð<×b®mñƒ~’ï$Y þßhcà3Э«­Ûï¼³þû+W.þ¢… Ûóˆ'e¥zªÈögãÉÓf³É]×å›_mÜÿðÎ?ßÿ|óÙF¯¨ë€]!n_xó»Oˆ°ˆ×n®¯þáò•µß8®iU[ežK£UÀ™^¶mëZ#jÜ ›á›®ïÞ Cÿ­(ò^·I©Q?Ù™UºfDó[`3Ó¶¸ù™V5ŸÎRƒºB–Î@�QÓ,tÑŒ[Ì0¬R†[VtùÊÅÛEY¶úÇI÷?˜[`”â-Ÿn6ëºVŠf“1NŽû(óN"î,¡³²ŠÅåžïL‚sΩ£ë‚çÃd«;)úgQáû�È&TFRùš®‹NšÎød2CÜn#nwDM4Gœ$ 髦ÎüÉ`üÅq^'üG N�‘IK³—ÏŠmUÜÔùUU– Í´Zm¸¾!m€€ZU¥¡Tªªì²ÌV§£ñÆá ½ÿµ¦ç �µA5ÈÌn×ÛL!t~1²Ü h!†ëð=ž i®e9êºBQV~‘ͦý£äãI©fô*œ®��ˆ0®Ð« ½ Uv$W×=ÏgqÃò|8® ×Èrƒ,éJkU{Éàäîþ0Èæø¶©BiSx¼xÛsD+Œ"8^�)¸pÁ9ƒª LU@U%ÊZÐA™¥½g‡ÃO eʹ�À€  }VÝp¤^·]¼ �±ç“YÐFÃÔ5ª²‚Ò œ1 h™ †w÷†ÙSñÎð¼'ri꛿RØŽïƒ[41!aI Äʪ‚V ÚpBK—yÙïïŽK5;ÍŠ3�€2dlÈú׌LÛs]8~�&%,!`Û˜° hU£¬*(­%A·G'£­£“tã´/âÌ�@Ó¦µßüVpÓ\ ø~�!¤°ŽmŒV5ŒÖ0ÆDU6¥ÞÑðÓi¥ÇôÄ™o I†|©ß+BHL&Sô»]ÌÆ Ê<GQä(‹üëùnÛp<¾ï#C¾vaéí•–·®Í9öÃ"q“ÿRk5ã–ñ‚Ò4Åðä(BQø°òÄj0ˆëøUm¢8nÅqøªÜŸ’Ì\�œŒoT±Â™8ޱ|á†ÉÓ$Á4Áò0ËeÛBB m�Ûóᇡ·°ÐxÅd§µÉç² Ö(ÊRI!µ×)^ZƵõ謬a<NP¤S@+”µ$$\ÇAÃuɱc>·%ØÉ°rÿldp#h.܊⢸ƒÎêö¡L§(Ò)˜eà ˆ< yÊ)+Syþl”¤÷f•™Í `@z÷ŽíÇ·ãÎòaÜáaÜ‚p,t–p¸»II’ "a¢F@dKdYŠƒ£þÃû_=|wóaï£ÜØ/Ì‚3�Kð²½Ø)W.]f+Ѷ@Þ–pìŸãã¿ý}«»½»“O§ËÒ²ë£î`gãÁÎ_>ùôÁ_ÿÝ› N[fÏ ��•6f:ËFY^Ô�${>�€1èÃî{w>üìaÃw@P½ÁdðôxzrTÔõË6ésÌ4ʧOŽ6=ørxN«\\„D–8ÚßKövŸÜýדáÑè;ç~h?€MÀñ0}öäÑ£“°µ§“‰‘–ºªhÿñãI·;xZ°Î‘ó\��a˜™­nwôÁJ¯·Æ…ðÃÀ‡ªªúø°÷Y0Û“t¾Œg¾ ¾iĉ2SVÖûž#®Å;ežçûû‡ï~oûO_<Ýû±ì{9çù9­Á« Îå‹K×¥äNw0ûrëpºc$ý�¾à0UÆqÎÂsöÀ·>/h€¹‹À�¨­öQ_éx����IEND®B`‚IMAGE 1443 ./arch/monster/elemental/Para/para_ice.132 ‰PNG  ��� IHDR��� ��� ���szzô��jIDATXÃÅ×IodWðÿ¹Ó{¯†WU®*W{J«“î´Q%¢Š„ذ@lØðø�|”lølØ)(R¡›˜îN‘ݶÛCyªzõæé(»´ír Üí»Òý½sîÑ=‡üÿÿÏ¥.³iV[�€'€ úßBkñÖB£³~kôZ£ÕhfE•Lƒø8˜„Á—ûÓÄWÐ3c½ë~öÁúoß}÷‡¿ìú>K'R½¤,}øð«Gùâþ“‡Ûû§“Ç'Q"ˆÐš#Õ÷_ùÑÑݕ֯nß^þ]·Û^oµš ÍVsÉïuß\][¹wwýÎo¿s÷'·oÖ ‹ø48<ÈÊÒ™#E米ܓ¿îtÜ_TÖ‚™QVò4E…²®«¾1êÍf˽×l{ïPÅgãé³°´¥¼$â\€e -Ëõ¦cZ•…É’Ì€ãzèt|hÇ¡®Y’ËZÑ­, v÷Nâ§×KÄ\Õ0¿gËtMa0`¸´Œ•Õ5 F>Zí¤rÁ$ ˆ‡u‘Òd|öÅa\êQ8@� ‹S*r£lôž×ðZ£åU,.­ ?èÃq R ADÌvÏ‚í½q°aö"€¸hC‘eúÇÓòÓ0Šm^ ¶Du [‚�!�!%Œãr»×­®~>lšÁeRp!€�äPÛAáü©HÓ³*Ï¥)‡I‚¢$D@Y×�3­Ð_h¿Ñk;Âùû�€Aœ[}?‰‹Í$ )Œ"„a„<·`ªÈóEY$Øõ¼×ú½ÆÛ†@× �ôf×ÿœA…3D³�ÓÉaTEªK­ ¡Ùôúƒ…æû %¼k�@ ŠâOâ`šgÑ Y! Ì‚�eQ€À`¶�3\Lj^¯}»id‡¯ À N*±9™³0¦ Ò$A’$ຂ ‘€’Jt{þ[7zÎÝê‚{pi��”¬v¢0>g%iŠ"Ïa«@i £-!¤â¶ï¯íyúZ� `9Ž“êå,GÊ"Cš¥HŠR*8Ž” Æ´ZÍÆhعç;ráÚ"ÀDye9fgI ²5$[[h¥ Œ© ¤ÒPŽ‹î‚ÿz§¡‡|Næ°ãjÙત"‰P—%ØÖ઄µ5˜”6Ú@»·:QÏw×ìUûïÊ„ãºÔlûH’A£Ù)¡ó"Ë •†Ô®çÁÖÚ¾ßéúÞš¦)Y€¿wj¦T»ÞéÂâ J! Ce¢ªQ”5€RÊ@j£¤VãÕ¯Ò\¨@±6Þqw8²Ò‘F!ò4ýOýRA ‰£IBTWö¯øû«¤�-ßçÅåUÜXBp<F…(ÓhûPÆAÕH„ꨶÓÓé'ããðË‚™õ+‚0À•ýa«7oâÖ›pÕl>ßÃÉÑ!ò8¢ÔØÒÅôlloíþmcã›ß?=¿Ñçôó¥À2GQ:-ò¢ } ÜY_?XDp|ˆƒ­Í'A˜>Þz±÷Ù¿¾zöÑý§û_'–Ù\ f»;‡O7¿~4k5Ü~±xÐeY!fgýøó7ïüaï4>Û óÌWæ‚®h.€CÀÉ$ÙßÙÚ:ó»A†¬ƒª,iÿåËhëÅþ“»“}C_]®À漄„IÊÏÆãéŸ—ŽŽV¤RM¿ÕD]–ÕÉÁÑßOãzÎåÜžð»Þƒ°æHÕnÃUmÏÈa‘eÙîîÁGÿxðüÃíé`>]e8­˜ñzϽ¹6jÿ@kéŽOãGÏ¢çÙ9åv­€o’�¢’™ÕV…+®odàʇÀ¿ñÔ³McJÊ����IEND®B`‚IMAGE 1188 ./arch/monster/elemental/Para/para_ice.133 ‰PNG  ��� IHDR��� ��� ���szzô��kIDATx^Å×K‹\Eðÿ©ªûèçc^™qFMHbÀg¢b6è Q\¸D¢¸ˆ q!îÜ)øW.\Á ø*1ÁC23Ý=s{zú}Uuì¾ù1ÜÆ‡Zž_ݪ:·ŠÊOÅÿw=m0`¦#ËåÊ“‡—k9Çí%fö€ÛÅ-_«-½ýâÓ¯¼÷îkŸ~øÑ¹ÏÞyó¥sgŽÝÿ˜'@3ô-㑞õÓÇÏzæä'ÇŸxèç_>µ~êü³ÏüàØ¡¥G{ÖÎP$БƒKëxµX©Ü;ŒÁÀ†¨¼zßÚ™£G¿þ`-·Ô³œ= fƾ¢S]Y]8­¹6ìõ¸µ¹…z=@°µÉltaieá…‡XY_õ¤š�X©úç«…cŽ ò]…r!¼ïÂu|Gq.ïï_^®<?Wp2”¨ZtNòÞþB±Ès ‹X]«âž•2æ—Pž›C¹ZCµZ:TðÕ‚aΠ®tÅ!á¸Ïóó=H� @¹žŸG¡Táùùù}µJnpgqÇk% ŽT²&¥ cC0! ©Ôá#_*òy¿FY/$x¾«*žDl‘À ÀX@åºp\—@”-À•”“’*I’ Šc˜É ıNbk¦éÌ÷Àສd­…ž¢Ã~Œ~_#'ÂL`¬ud=0œá`f()¤r€§³ '�ŒH)…!F“ÔQ $0ÆX‡²Ý„S@Bú±e„ñÃñ5€Öf’I’¤q”�È øŠJž« ®p„€«$<¥ AàI‚§k 2=€«DY ÊQJb¢´83Ò#©­M‹ 0˜D€\±l½´¸RB9NÚ†¥b’R€€Àœ!@�kªÖhˆÀ $–ÓÑ0`@i#’BÂ2ì4Q¦_@$ÚC Â4yZÅè(¥‚R4@¡6ãXÛ#Ó>@6L¸ÉÖÔíÏŸ:`-ˆÒÙCH€`ÝŽ#½GȸB³ÝŒ:aœfFlƒÄ"²•ö¶Ö{Ã+½QÒÈôwL�†Z\kwÆ?ìu{IF©ÜuŠ9ó>˜Âñx·Ñêü¼3Ò½Ìï#C­ÆÎø«öNp=öI‡#“À%@ÁÂ&1ö‚öŸÁ¥Ñ,®d `³“üìô.è8ЧíwwwÍf £á ØV«}µÞènäe v5w[ÛÝKƒÁ¨§žçÂ20Žt:îÆ­æPgv+ö:£­Æææn'Ø¡~¿ñp€~§M[·nõ›Í`#™íÄÐóõVkï»`{{¸·Û¦hÐ¥¨ßÕAcû×öð¦C3€ áæõ›/êõ­/ÛÍÖFk«±}íï__¾òÏçõöøfû4óˆp-¯þô[ýãï/^>ûí…Ko}sá÷÷ü«y1bfüǸë×±f†$@€(afE”3Ì>þ!A?2$ «����IEND®B`‚IMAGE 1341 ./arch/monster/elemental/Para/para_ice.134 ‰PNG  ��� IHDR��� ��� ���szzô��IDATXÃÅ—ËŽ]Õ†ÿZ·}=7Ÿö…v;-aZ [NèˆÂä-2Œ’'`†23„˜F `s –év»ÝÝçtŸë>ûìËZ{U! ·½õ�«>U­ÿ¯*ê¾ú~Éø…CµõÐÒy€€@4�Aôó�TÞDØJƒàB'RiJ)É ~)±7G'“ñÝgGJ[w…h`Ùx\‹µÞ½µ³ûÛß½ôæö¯®nöý°q.&%¯xæ®]çúðà`ïú×÷>úô³ïÞûêt½<¦O à™1T‚vol¿ýêî+znëêï»Ôt’˜šºæÅjEëÕŠóÅŒìKÛÛÿpv6µû“⯖aŸÀxqýæ…篼siØ{- %q %%[\Óp‘gFìl "*E›J@Û¦� `cü±×Ow£$6.ñÕÍDÀd–¢b‰º,¡õu±¦ª¬Ž²eñeÙ`ÝŠ A$I¸DQ¬aR € ŒDœ$Ó’´CÎ5“ãé»{Ç«*æg÷ÏŒn »i'Ú‘Ú(’ìf€PJ!ŒbDqRO—ï}~wô·û‹úÈü„Å“ö˜¨½øF`´PJ"0Z‚�#�#ZIèðèdù÷ï¦å^$¨%'d ß1;Ýn²%„`A)€÷€s€kÀu]/²¼z¤Ú4"#€~?½ÅI ¤D þÇ×€³@žW(Ë UUa1_.–Y™·6 <3.Fj0ÜèÝâ8ÖÆ@b8ÀÕÞÕp¶F±.0›ÎŽëzÑÀŠËƒèúÅþÍ$ŽÈÁ3£qÀº,Q[gV«Œ§“Ù¨°MÕ@O€®l$·ºx[*ÍBi¥ABÂ3ƒ› ne‹Ål<ž¶nxÝ €gF?ýÁ }ͦ+”FFHâB�µµ�{xïamåtv8:;l¸¥}À¤êz››DZ+(£¡à=àA€gW•È–Ùd¹®gOª€ŸTÐOôNê-&ÁZ©à¼5 ˆ�Ïkêbu–¯+·8Ï„},� ]–Z‡&Š L@íš"Bm-²Õ EQU•c×ÚJ&@oZ…$1 ‚$@ Áyº*á ÒP’i €vÖ‚™¡¤I & H !꺆³a·N*u>€Ç¶ a4ÙÚ>Èó|imÝ�k)EI¥‡³567ŸƒÐnµº8Hï Fy~ÜŽ5“xr²øÇ|:ÍË<#¶5UY 7â×Ûpm3ÅpcCÄ¡¡ö>!€“‚¿¹{òç^ïA˜ð-€6¬­»I’’уK!€¥&³ù"+êü<�2غõøa”Ûq6Y~º˜Îÿu6:½·ÌæÏ ­‡q’ q˲ÁÑþ!ßù÷í>ùbÿý¢áª• üàDØŸW£ƒùá¨ûŸÃo_¿yåÍNíh„ ¡ˆél<ž=|8úç´òËŸå0‘ßë¾hül6Ï?Ÿœ¾ÅqD ˜½?xð蓽‡g·Kϵׂ‡cXÙð¸Jc´X[»Ãƒãnßùö/_ìM> ž÷èiŽÓš×R}yëRú² tïlV|}¼ºWyfMçÁÓ݆†'+;:YÍF‚ˆ,3+"œ7ù3§ô}2X=EâÿÇb¶cM‡ ÛR����IEND®B`‚IMAGE 1446 ./arch/monster/elemental/Para/para_ice.135 ‰PNG  ��� IHDR��� ��� ���szzô��mIDATXÃÅ—ËoYÆ¿sï­wU¿»=ö8Ød’A …IÈd X°±Bb;ÿ þŽ™‰ l+6HI#“!àxÚÇn÷ËÝÕ]]¯[÷°0Ê¿Pξª~ç;ßýN]ª}ç#¼ÍxËõÖÔEÈ Cp#r0pTà9j¾Lõ‹Ér5׆kRüÿ�âÊ`ݵ¬‡÷o}x÷î׿·ñîúF­9ãáhútg÷ñ³ÝþŸNN“É4)Ò™® @p]€fF×ôÝ{Û?üö‡w~¾¾ùîý( íÈ÷¨YsLèÉÝÜ^Û=Ïâù¢¿Œ“ƒétñÅþËIÿ0)Óל dàf×ÿÆ­›ï|Ôm×øžCžçB2 EQ£±µV•[•É«^7Ê]?œ§iÞ¿ñþï>ÝéÿêÙ8}üˆs¸ZkûëÍè¡„¢Ùéq«‚�èÔÀvl®ŠJÛõ¼v¯ç ©Öõðýª(òã'Ÿ’V\^À–dG‘w; ÃÐq\f!”`Èöà!‚0‚” ®­ ¥‚¨G½V»~'td=]éñ¥�43Ú¶òëõpÃõ=r¶” Ø� @HÇõP¯Õ(Ë2é lŒÇÏŽŽ&O–yµ¼´rÖšî{õføMeÙB*Å–¥ $@T H! ”"CR£¿¦«ìù*Y ~¿³wühRšÌ¿¬<­uÃ{^lU ¶”„m Ø ¨ PV�ØÀ00-ž=ùãî/^N>Í Ÿ¤:�ÿ²§@3ãFh5¾²ÑyÕ¢I BʳÙÈ @—¦Ò(ò §“ÓÇÓÏã| �’èjQœ1°Þ ?h´÷Â(¢ZB* BœÍŸ5À•†.K¤É³ñx0_«kIBÍŒí@µÞûjç'a=z_Z»®¡,”(²/»¯ç9–³Ój6™2m²kYF%ë-ÿk½^ëøvðü�RY�F…ÖH‹ËdIÓñ8ãýÒ@_€™ñŽ+[›õ×ëáíÀ¸YЪ…¨y@ë Zÿ»ûù ãá¨<NžæÌ|e€”vdßîtjß÷<Ïw=,m˜ �Š€ªÈ±˜Í0?â¤YÿÃxçð¨]³>°]{[X6;®iÙ( #+�cŠÄÒd‰$Y"+J£ ›kYÇ¡¤ Úw]Ï«9~�ß÷`Û ¹6¨P©¬VH1H(eÁœ_ý7+@ÄŽ¥¨>Ea×qàZl%AB@`•åˆã ª7„å)!¯Efv ­C€T š$XH®I`¹",ÏòÝMT•Áx8^ó|§m–ɱ8§^ P¤«´øB¹6•–l΢–,À’@™gà²ÄÆ-4ºò œ-íõÞNw˜\}™¡éèTÿv4šîƳ—iBU‘£È€Õ ÏR4;l÷ôhx ¨ÙžëqS Í{¯3Ò ][ŠrKIǘŠg³x5J¡”4Z€ T�*€žÿí`ÿñ£_¾:] éª# � ÍÉŸ?Ÿþz8Ý}´·wt«Õ®·!Èqlüà[÷ïüÌ0ìdA4žcÿï{ǃÉbtÞ¸ ,"0À“ÕÉóÉêDáAÞÙtzkÝÚOm×C«Ù�'Å«Wƒ½4×éµÿ– "Ø_.( Êrî/çñQ¾˜ßJ$¡2lŽ^¾zÔïÿf˜U±u-xC™ŠãÐÊw-¿(ÊòðŸƒ?<ýËÞÇŸíÆ…’.s9-™Ñrd´Õ ¶<ßîœÆÙáÁ(é†Y] ûKüG fH"0t©w\ér*ÎLzéÀ¿�h¦›ç&‡êp����IEND®B`‚IMAGE 1340 ./arch/monster/elemental/Para/para_ice.136 ‰PNG  ��� IHDR��� ��� ���szzô��IDATXÃÅ—ËŽ]Õ†ÿZ·}=7Ÿö…v;-aZ [NèˆÂä-2Œ’'`†23„˜F `s –év»ÝÝçtŸë>ûìËZ{U! ·½õ�«>U­ÿ¯*ê¾ú~Éø…CµõÐÒy€€@4�Aôó�TÞDØJƒàB'RiJ)É ~)±7G'“ñÝgGJ[w…h`Ùx\‹µÞ½µ³ûÛß½ôæö¯®nöý°q.&%¯xæ®]çúðà`ïú×÷>úô³ïÞûêt½<¦O à™1T‚vol¿ýêî+znëêï»Ôt’˜šºæÅjEëÕŠóÅŒìKÛÛÿpv6µû“⯖aŸÀxqýæ…篼siØ{- %q %%[\Óp‘gFìl "*E›J@Û¦� `cü±×Ow£$6.ñÕÍDÀd–¢b‰º,¡õu±¦ª¬Ž²eñeÙ`ÝŠ A$I¸DQ¬aR € ŒDœ$Ó’´CÎ5“ãé»{Ç«*æg÷ÏŒn »i'Ú‘Ú(’ìf€PJ!ŒbDqRO—ï}~wô·û‹úÈü„Å“ö˜¨½øF`´PJ"0Z‚�#�#ZIèðèdù÷ï¦å^$¨%'d ß1;Ýn²%„`A)€÷€s€kÀu]/²¼z¤Ú4"#€~?½ÅI ¤D þÇ×€³@žW(Ë UUa1_.–Y™·6 <3.Fj0ÜèÝâ8ÖÆ@b8ÀÕÞÕp¶F±.0›ÎŽëzÑÀŠËƒèúÅþÍ$ŽÈÁ3£qÀº,Q[gV«Œ§“Ù¨°MÕ@O€®l$·ºx[*ÍBi¥ABÂ3ƒ› ne‹Ål<ž¶nxÝ €gF?ýÁ }ͦ+”FFHâB�µµ�{xïamåtv8:;l¸¥}À¤êz››DZ+(£¡à=àA€gW•È–Ùd¹®gOª€ŸTÐOôNê-&ÁZ©à¼5 ˆ�Ïkêbu–¯+·8Ï„},� ]–Z‡&Š L@íš"Bm-²Õ EQU•c×ÚJ&@oZ…$1 ‚$@ Áyº*á ÒP’i €vÖ‚™¡¤I & H !꺆³a·N*u>€Ç¶ a4ÙÚ>Èó|i­í €µˆ"ƒ$ŠÒÃÙ››ÏAh·Z]¤w£<?nLjšÉŠ?<9Yüc>äežÛŠª,Ð ñëí ¸¶™b¸±!âÐP{ŸÀIÁßܽ?ùs¯÷ Lø@ÖÖÝ$IÉhÁ¥ÀÒ“Ù|‘u~�lÝz|‰ˆ0Êí8›,?]Lçÿ:Þ[fóç…ÖÃ8IÐ8‰eÙàhÿïüûöŸ|±ÿ~ÑpÕJ~ð"ìÏ«ÑÁüpÔýÏᷯ߼òf'‰v4„PÄt6Ï>ýsZùåÏr˜Èïu_4~6›çŸOÎN߈â8 ¢ÌÞ<xôÉÞóۥg„‚ÚkÁÃ1¬lxÜ ¥1Z¬­ÝáÁñ·ï|û—/ö& ?Ï{ô4ÇiÍŒk©¾¼u)}Ùºw6+¾¾?^Ý«<³¦s‰àénCC„“•¬f#AD–™Λü™ŽSú>¬ž"ñÿã¿c7cMÖ”›����IEND®B`‚IMAGE 1188 ./arch/monster/elemental/Para/para_ice.137 ‰PNG  ��� IHDR��� ��� ���szzô��kIDATx^Å×K‹\Eðÿ©ªûèçc^™qFMHbÀg¢b6è Q\¸D¢¸ˆ q!îÜ)øW.\Á ø*1ÁC23Ý=s{zú}Uuì¾ù1ÜÆ‡Zž_ݪ:·ŠÊOÅÿw=m0`¦#ËåÊ“‡—k9Çí%fö€ÛÅ-_«-½ýâÓ¯¼÷îkŸ~øÑ¹ÏÞyó¥sgŽÝÿ˜'@3ô-㑞õÓÇÏzæä'ÇŸxèç_>µ~êü³ÏüàØ¡¥G{ÖÎP$БƒKëxµX©Ü;ŒÁÀ†¨¼zßÚ™£G¿þ`-·Ô³œ= fƾ¢S]Y]8­¹6ìõ¸µ¹…z=@°µÉltaieá…‡XY_õ¤š�X©úç«…cŽ ò]…r!¼ïÂu|Gq.ïï_^®<?Wp2”¨ZtNòÞþB±Ès ‹X]«âž•2æ—Pž›C¹ZCµZ:TðÕ‚aΠ®tÅ!á¸Ïóó=H� @¹žŸG¡Táùùù}µJnpgqÇk% ŽT²&¥ cC0! ©Ôá#_*òy¿FY/$x¾«*žDl‘À ÀX@åºp\—@”-À•”“’*I’ Šc˜É ıNbk¦éÌ÷Àສd­…ž¢Ã~Œ~_#'ÂL`¬ud=0œá`f()¤r€§³ '�ŒH)…!F“ÔQ $0ÆX‡²Ý„S@Bú±e„ñÃñ5€Öf’I’¤q”�È øŠJž« ®p„€«$<¥ AàI‚§k 2=€«DY ÊQJb¢´83Ò#©­M‹ 0˜D€\±l½´¸RB9NÚ†¥b’R€€Àœ!@�kªÖhˆÀ $–ÓÑ0`@i#’BÂ2ì4Q¦_@$ÚC Â4yZÅè(¥‚R4@¡6ãXÛ#Ó>@6L¸ÉÖÔíÏŸ:`-ˆÒÙCH€`ÝŽ#½GȸB³ÝŒ:aœfFlƒÄ"²•ö¶Ö{Ã+½QÒÈôwL�†Z\kwÆ?ìu{IF©ÜuŠ9ó>˜Âñx·Ñêü¼3Ò½Ìï#C­ÆÎø«öNp=öI‡#“À%@ÁÂ&1ö‚öŸÁ¥Ñ,®d `³“üìô.è8ЧíwwwÍf £á ØV«}µÞènäe v5w[ÛÝKƒÁ¨§žçÂ20Žt:îÆ­æPgv+ö:£­Æææn'Ø¡~¿ñp€~§M[·nõ›Í`#™íÄÐóõVkï»`{{¸·Û¦hÐ¥¨ßÕAcû×öð¦C3€ áæõ›/êõ­/ÛÍÖFk«±}íï__¾òÏçõöøfû4óˆp-¯þô[ýãï/^>ûí…Ko}sá÷÷ü«y1bfüǸë×±f†$@€(afE”3Ì>þ!A?2$ «����IEND®B`‚IMAGE 1443 ./arch/monster/elemental/Para/para_ice.138 ‰PNG  ��� IHDR��� ��� ���szzô��jIDATXÃÅ×IodWðÿ¹Ó{¯†WU®*W{J«“î´Q%¢Š„ذ@lØðø�|”lølØ)(R¡›˜îN‘ݶÛCyªzõæé(»´ír Üí»Òý½sîÑ=‡üÿÿÏ¥.³iV[�€'€ úßBkñÖB£³~kôZ£ÕhfE•Lƒø8˜„Á—ûÓÄWÐ3c½ë~öÁúoß}÷‡¿ìú>K'R½¤,}øð«Gùâþ“‡Ûû§“Ç'Q"ˆÐš#Õ÷_ùÑÑݕ֯nß^þ]·Û^oµš ÍVsÉïuß\][¹wwýÎo¿s÷'·oÖ ‹ø48<ÈÊÒ™#E米ܓ¿îtÜ_TÖ‚™QVò4E…²®«¾1êÍf˽×l{ïPÅgãé³°´¥¼$â\€e -Ëõ¦cZ•…É’Ì€ãzèt|hÇ¡®Y’ËZÑ­, v÷Nâ§×KÄ\Õ0¿gËtMa0`¸´Œ•Õ5 F>Zí¤rÁ$ ˆ‡u‘Òd|öÅa\êQ8@� ‹S*r£lôž×ðZ£åU,.­ ?èÃq R ADÌvÏ‚í½q°aö"€¸hC‘eúÇÓòÓ0Šm^ ¶Du [‚�!�!%Œãr»×­®~>lšÁeRp!€�äPÛAáü©HÓ³*Ï¥)‡I‚¢$D@Y×�3­Ð_h¿Ñk;Âùû�€Aœ[}?‰‹Í$ )Œ"„a„<·`ªÈóEY$Øõ¼×ú½ÆÛ†@× �ôf×ÿœA…3D³�ÓÉaTEªK­ ¡Ùôúƒ…æû %¼k�@ ŠâOâ`šgÑ Y! Ì‚�eQ€À`¶�3\Lj^¯}»id‡¯ À N*±9™³0¦ Ò$A’$ຂ ‘€’Jt{þ[7zÎÝê‚{pi��”¬v¢0>g%iŠ"Ïa«@i £-!¤â¶ï¯íyúZ� `9Ž“êå,GÊ"Cš¥HŠR*8Ž” Æ´ZÍÆhعç;ráÚ"ÀDye9fgI ²5$[[h¥ Œ© ¤ÒPŽ‹î‚ÿz§¡‡|Næ°ãjÙત"‰P—%ØÖ઄µ5˜”6Ú@»·:QÏw×ìUûïÊ„ãºÔlûH’A£Ù)¡ó"Ë •†Ô®çÁÖÚ¾ßéúÞš¦)Y€¿wj¦T»ÞéÂâ J! Ce¢ªQ”5€RÊ@j£¤VãÕ¯Ò\¨@±6Þqw8²Ò‘F!ò4ýOýRA ‰£IBTWö¯øû«¤�-ßçÅåUÜXBp<F…(ÓhûPÆAÕH„ꨶÓÓé'ããðË‚™õ+‚0À•ýa«7oâÖ›pÕl>ßÃÉÑ!ò8¢ÔØÒÅôlloíþmcã›ß?=¿Ñçôó¥À2GQ:-ò¢ } ÜY_?XDp|ˆƒ­Í'A˜>Þz±÷Ù¿¾zöÑý§û_'–Ù\ f»;‡O7¿~4k5Ü~±xÐeY!fgýøó7ïüaï4>Û óÌWæ‚®h.€CÀÉ$ÙßÙÚ:ó»A†¬ƒª,iÿåËhëÅþ“»“}C_]®À漄„IÊÏÆãéŸ—ŽŽV¤RM¿ÕD]–ÕÉÁÑßOãzÎåÜžð»Þƒ°æHÕnÃUmÏÈa‘eÙîîÁGÿxðüÃíé`>]e8­˜ñzϽ¹6jÿ@kéŽOãGÏ¢çÙ9åv­€o’�¢’™ÕV…+®odàʇÀ¿ñÔ³McJÊ����IEND®B`‚IMAGE 1420 ./arch/monster/elemental/Para/para_ice.141 ‰PNG  ��� IHDR��� ��� ���szzô��SIDATx^Í—YoU†¿3ëb{2vm§Nœ´¤IºQ5ˆ¶”E*BeU)Û7Eªªª¢wÜU\ âîz ñ@-ÐJÚJn*4K“6N\Ûãmlg=‡OsSqƒ N€£ùæX²Ž¾ç}Ï™W:DßsþËÁ=È"+ Ða òI-1šM¨ºÄs–þ;�Š5Q~ëÀŽ—Ž{íƒS§Žôî;o;¼w㣠™W¬®.€F�Ë<»gÏö÷vìÚvbßøÈ‰ç=õááןûäŧ·¿‘WEyÕ�lT¯ œºn}îÉþþìY–! ‰á¡Üããã[ßÞ½9·«EÙª�DêwoZ»sÝÈð8ã8¡jV`ê¶ sÓË`ÕkLÓ”ñ-›‡ŽŽçc>c+ íýú¤’Ûº9$“Iîåxžhª ÊB@KÚ¡‘!ãPRâÔP Á\â@2“<˜Ðu9ΰÜ`òIHgû!a¤@Ž%˜¬©Éá¡Ì™¸¼fÅ�Æ ­ Æ`.ùŒaôåUc¢$EøK9à%xY¸n PTEòW Àf�)uC6“Üeèq¢(ØL€��£�”xÑ6ðP fͺ×h»öŠ�tQýZ‰“†óköǾaA”™‚êUEI@H!`)Í]«Þ¿s¯luðQÞ–Á¾m[6 ^“JŒçÁ¥‘õ}�P,(®C<×µ<fð=x¨~Hb££¹RÙôNIQ˜È €É ,°]€V›BÅÚ¶ õFJfsvÙì\¯!ëÀAõ£ycçºõ/kñ˜.ˆh»,, †œ.<|ºÔM“Šæ•bÍ^Hp/b„¿R?¬ ÆØCÙWtC=g¼ ‚(«�è‚„àº� Áq¨V«Ð¨×½Z½=ÛtüNÏIÈcmÐÇòÙƒ¢$j@¨ª ñDDQŒŽˆÍ=ß·kC§Q´Â‰¼M£=PTŸ’¹ÔÀZýUI‘6 ,®©`$ Pµ´—0A2„°Û-h5@}WM'ÕÇFÓ±AÖKXé¸8‚±ºçy ÷•ë'°9ÊP,/D\:- ‚ �Fˆ$IÜ~U&! áb]ãÇT™Ï <Ï0å@”•¨¹<¬±È…®ÝÁ²A–%üÕZ¶_cЃ¸¦BJŒ\dÐ ¤EÛ �c$ð<œNÿã@Ób¸3¼Óéø?Zv¸H Š?F"ªÇW>Ý�_„€(ð ýív AV*§¦i»[ÿªâÍÞ!>¶œ®S§a@DŽ€$ðQþ+Šý\ß-'¢ °rɼ4u«pzºØ¾& dŸ!aM‡»Ü¨µ¿n7êÇî<�ÆðL¾ntbzá$*%óòs_Ÿ«ž÷¢ã½,Ó…ù©…æ§ÓÓ‹Ÿ—¦Ëår`–KÄ,™Qõæ@7’P.UnOLü~ú—ÉâY; þ}õ½!0Suo^¼²ðþ®œ¸ü󷳓¿ÑâòRtèd U3éÌä­sW½{¦êQûsó^¢ø>ļ啖n¾¯”Š£N§±s?I€±’¢’¥ÅB}vvñ§‚åš*GVç^ #.0[ô\Õ´.´-‹bê«V³\™*—›×C¶Ê7#‚UqàÖârë³r±r¦aVç‹…åKS“ _Ü.µgBVÿj†*édÉùæâÄÂÉsç¯9ûÝıK×î|YqÃ.ô0þéå4J@TÍνŽÿûíxõÇܹ‚cqQ ����IEND®B`‚IMAGE 1571 ./arch/monster/elemental/Para/para_ice.142 ‰PNG  ��� IHDR��� ��� ���szzô��êIDATx^ÍW[lg=ÿü³s÷x×»kg¯“µZ;që´±“*iEBQiµAHPJËE*UT RÅE<µ‚öUˆG„ðâå¥UjÔ4 *P'V§ví]ï}f/sý?²óÂ’׎Gúf^Ï÷}ç;ú³OÇÿö�W8A„Òª,éœ1'‰öŸ€'<R8ôâ3~ù/<óío?÷Ügæ7£/h8ñ ë\bøø±â?ñ©ï|öÉs¯<òÐñ—>úðÙ>ôðéW>rbæóYUÒévaL–ðé‡çŸòcçŸúÊg^>qÿ}_TuäÝ)z6c/ÎÝQøÆLÞ8)v° ;DOÀéùÂé3g¿;sGé¬iÛi·Ýbn#¢Ð÷Ðíváv:”JIsiK¾[fø+t[&aé€UZ˜?ôµl>óIUU2Šª' Fp»]4 tº]sv@foË"L(\¹³”{tjjükÄV ;MùY0ô:1Rª ‰½nrJ¹U)ìD‡ÒN?S°î=8=ñ¸aÛãºa¦i8Àe€+º¦Ã0tX¦…ÜøD”ks‰Å{%¨~ÆV3Gg~.7‘_T “,Ë„iè`�üc@€q‚1pEë“ËnLb/+HT_Pyê¾…â'fçJeŒÑ‘1M†ž}ð‚N³ÁZµF§V©mó½œa@„¥£“Ü»xôëÙñܬªi¤hdU“ ŽF@èu\^ÍZ­\ot¶8îÏ0Ùûý¥ìÜ=Ççž¾5ú“œsè†ô ª<˜ïa�j¥ÌÖ®/® î‡x»Ð:ÛÕ’½/ä͉“K³_-NO>–’eESUØö(4ÃH:üBFèv:hÖª´]ÞBµá,¯— [Ž×Þ•‡D˜6dsi¡øT©4ùUM¥S2§Ñô(ƲY˜†Š úž€çð½>zíÜF A“ç‹K+kÕKµ ÂÐHº›-fN•J…/š2%3PzÔF6›ƒfê` ˆ#/ŒÐ÷|´šMÔ«Ûèõú°m;T$©Öv½ž%IÃî-ù`q*sËßµyADª¦c4=ò I‰è "Fèõà4ëèw\È2‡*ßúJâÈdÎ: O ±R¥Q[;-Ë\ÑM Öh²¦ x‘@?ˆx»…®ã€3ÀJ|$]—ÏLdõtÎøÐ 6¢Iwijª ë:¥m†i"$ÀEb8± Dõ]×ë´A�4Ý€>8OY†,1Š‚Àbh PH„‡�²÷>(ÎeH’”T(�ŠcˆÁè[-ÄB`Ķ“Ë &AH~@˶ÿÏ> M ¢n?üÐë{„`a,7är ¦‰Žë¢Ýn„€e@ÓuDæÇ‚ù~P.WZ¿Ýlz+*c»!X\uéÏÛ•öïœf³ëu;,|p�"B"6×q ÈærÈçóPTAµí¬¾¿ù“å÷ë¿i„¢¿«7¡ âáÚ{«Í­¬|ðëòææF»Q ·Ë›ÞÕ Ôj5fš¦ŠEä “PÍÆÐª7®þýêõï½õÎͯ´üÿÓý.¬˜3†åZÿÝðíÕï×Ý ÅâÖœ¬(†ª°sS‡‹Çsw- P0ÁllsT¶*kW®üë§{wãÕšõt‰aü×\!0®òT,„~lZ}ùä©{ž»{ñ›_€nIX½þý嵋?»ðêåVZ^ՆŃ ñ#9öìÒñÒK3Gަ§¦ Šm¬o4.¾~é›zçæ/%°ý &×;ôF£î^ì:Ž<DXß®.W*­«1ís2b�ª®­oº?ßÞªþ¡U«ßØZß|ëÚòÚ/V+•cûÍb‚x¯âýþÍËkÏ¿þÆ•§ÿøÚågß¼róWU?îc:œÆDKþcØ+þßÓñþãßí³Ñúão…Ÿ����IEND®B`‚IMAGE 1792 ./arch/monster/elemental/Para/para_ice.143 ‰PNG  ��� IHDR��� ��� ���szzô��ÇIDATXÃÍ—Ëo\WÇ¿¿sŸsÇwîÛc{ǵó°óTÚ& ‰T@B,²dSÂ]”Vlù/XƒÄ"l**Š@¢xˆEFi“8ÎÃq<c{î§ïûœ‹H©2 Aå·:‹£óýœó;¿s¾?ª|å |‘!ð‡þ"ëêÑ@*T,3"fT„xq�±RÈ FÍÖi¼lžëI–«F0L.ªy‹ 3såriÂvJÓiEFkóƽÕV”'– ÿ V ›¯¬/ž?êë‡/,OMùI´Ÿ´¶[ád}fajºv𔬯iìEý~Öz¸}Ï)ßøùŸÿ¹þ«^¦"èù�RfؼvzîË/½üöÒ±£ßv}¿ ÃÒÊnI•ÊVÎ$Œ8‰É‚£hIš \)×™õ·›íîõþo�ð3DŠQ0㕃þÒÒñù·ÇkãßQDv¡˜Už3”$S×Ì^¯‡á`ÀE‘� Ä{ÞØñ‰jé´µ5ø]¦=À¾bHf\x©zä•3 oMÏL\¶Ç.UxrºŽ’CHbF ABËa#Ërp‰€²$M²L†’!ŸéÄŠ!ã⡉#_ýÒÒææ§¯x¾ïû— ˆ0†’ –SFÙó‘I…~¯‡$ŠH½öͽ ú{®XŠQïÀ@)¸‚ðSsgÎ=öÆKóÓ¯›–Uu=ŸËcè¶©€4˜%VÓ5€4HÒ iò"àÓ[ÛÜØ»ºÝI>þ¬øúRá c^=|éås'8[¯}KÓ “Ëö˜ £äÀ2�¥�©�©â(F»ÓEÁô¨›dÁýõÝ_ܸür'U±3Jö ‰åqǽpþØåWÏž|Ó÷Ï—ta˜†Ážï£2>Í6�4äP™DícØï¡0tT–Æ››­__¿Ý¼º>ȃÏ cF"çf½é‹_;yåÄ饌W½ T²Ù󫨎OÀrJ�R>:þýa†Æêm0¢4Eãþb¡+%ÅnÜzøÓÕ0^+=Aü1€D1ÎÏy —.œxóèò¡×ÇÊ¥9xlÌ…W­¢\ñ@P� ( Ä £´ÑØXG”$hmo£½ÓDµ6{s}#üÙ­þG6ÑÓ?£„‹eÃ=s|ö»‹ 3ß·msNè:;®‡ÊÄ$*Uº(’ ˆS IQ¿‹hЇnšØiµÐÜ~Hó‹G†óݵFç/ô™Gç‰�6‹3åoNMU®X¦1é8{~~uNy šdPÈGïX–Jt‚�½ xØGØé"*Ž.-Ã0í•Û+wïv“>=e÷Ÿ¸:U}ϸl”¬ãºí°[ñP©T`Ù6$€´x4™�ÈLbÐí ×é OcV0u óss¨ÏÖ™”ÊMS§ÿ”÷ÏñìhÄ,Û&Í*A4Ó€i–G9öÚm„aˆ(Šg9XÓ1S¯£V›„’’,[?sòøÁï-V퉑2Éi§-UÌDHÈ0L×L  ´Ûúɰ,M�VÐ…€e— kJJÖ9eÇ<ëXº?2@¢( »Ù{ s3‹†”% Tžƒ$0Ø»Í-n7´»µ‰A° ’9,Ó„nZB€ ! tQûI&GvDL¤´ó÷jw›ׯ¾EB_ÒXÚÉ Gi‡»»›Q¿SîgX¨Õj(9LË‚.  ¤‚¡ œ¡zÁa\„#�ý‚÷?Zm¿“eŸÜ?°¹wÊ«ú\ÈÁ0Úm,/øñÂá…º®\›¨ÂsQ•gŽ ‹¤T³ßþ:̹ÿLžÐ B˜Ê胕½kå»í?Ù†¦Ç¹Ì˜×PGÌzì¸&§gàW\X¶A” ´Ñ ;Ívk'ŠVðÛÎû13ÌÊð±¿@#‚F@ÁPÃL~jrÉûíV«=ìu0¿°€©Y6R1­µÛ;~øÉOVV6¯iº(íuâ»7äéŽX†#9¢DQ·ÖZ 519IÏCRÒ°ÓjªÕ[w~ÿ·Ü{çã½hËӣР @iwÞnïîöë>3³a—èac«³ººñǵ0Þªh €@Ïä²GjL$ƒ!¿ƒkûý¾ôº4»{+­îõ‚ñÜ¡YsgŸ:‰�DB›Uä–Mß¶L}ÐܾuëÁÕëw÷>P ÅóШ½¡d†) ÏWí…™Iw.Ídp»w¯™ÈØ„ÿ9À¿ƒèDÌôüÂÏÝœjD`à…ˆÿ_tÇÿj€xáI2›����IEND®B`‚IMAGE 1916 ./arch/monster/elemental/Para/para_ice.144 ‰PNG  ��� IHDR��� ��� ���szzô��CIDATXÃÕ—Ko\IÇÿ§nÝÛ÷Õ·î¸íØy9q&Nðĉc˜D#f4b$  ÄŽlX Ï€4bƒš,Ò 6Pf˜+qžvüjºÛí~Þî{û¾«X„Ñi;Ñ ³ªE©Î¯Î9UçÈy凸,á3¶ÿO€a’3"ÇPµsG‹Ö\Å6@Ã4{î³øólö„¸6W™Z¾rþ“gN]<qìhqìùãÕ[·oÞºõàúÚvg·gÒáìÓˆ„„ï.Î\½öÊËߟ_8ó»XšÎçóŠL‹Â0”ýé©ÒŸÏoìþ~¿í®£Ôó¼`TïŒú‡AH�òŒ½€'$€Ë§+——^>ý³©™#_UUžSÉ$Ž%ÉŒLËš:~rö[¥‚ùz¥-5gøY–uÚû½µÚNýÆÖöÞÚƒÝîN#LSGùDÉÍ.?;ßBÀa o\8zuùÒéÏÌV¿æ F¡\‘•ê4Še ¹œ É@Œ 3+£I…³c†aœ-•œÏOM•_›ª––ƒé„ݦ»œèÙ�¾S…²i½ºtêõ¥Kó?™9òu§P0ìBQšù̼]ˆ�‚Î8ç�SÀ8GN×a˜¦¢[VÁvìùr)¿bj²âîî´ÃÔåDŸœ‚a&W.™š»ºrî;ÇNL›kꢥkªå¤nÚÈårOj#Ò ¦@Q9Háˆ2Î Žö!H‘aÃ̦ÀØ7ëÍÞß[«µ_§é�Œ…D*$–¦ò¥+羸ð¹ùïNVË_’@%•$ '/5;Õ´ :TˆR Ë€$Iá|´;]¸~€²m"R¶¡!Ç0‚ÌOT&«Õòƒ×s£D~ à "WhåÜôÅåå…ïÍŸ>ö¶íX§ÓL(1éX6ŠÅ¸nBQ5F p ø^wÐǰׅçyP9WU$Iϲ™””„1’(ò³4ëHPÈ') ‰YCÍ]]:ñåÅ¥—~09uä5MWm¤fX2gÙ(˜¦ E% „§@»ÙÆæÆ:,§€8£µ³ ÃΣêÌD&ýÑ(‹FÃ(ˆâ ?nomîþõá£ú†q3"p!% œÔ¥—&ß¾¸xê§““Å+ªÊ™iZÒ´mpÃBΰ`š9¨È�è`ø@c{õmLT*¨ïlaãáZZùÜÁ°ÓÞï~ÐjuWÇž_s‡þ~«=ÜØÝsw¶ÜÐ5Ø“WÀ�gÊúâìlùGfÞZ!U‡édy¢ Õ0ÁTZŽCá€`�W�•Q�Œú=pU…fÚ¸»¶†zm—Î-œ‡®Û·ßÿÛ?ÞY]Ûzo³åÕÂTD‘”�t"|ä�¸A ’ÍWŠÅü’nÙ0òØN†eƒk:¸ÆÀ8 i€B€À Ÿ¡Óé`ìà4Úø©ÀâÒeLLTvÜ}ü‹?^¿÷›zùæ¿iDŸüAãŠ8¡åTÛ4-8¶Ó4E…PT PU@àÀ¨?‚ëºÂ"KAR d[8>]EѶd¿ÛoÕëÕ/ñU9¸‰4‰²vÇQ&„"(D�#(ìÉ­e ô½nq0F’&ˆâY&`X6ÎÌIpäeÑÂÙ³³o­×zZ^äè™�Š6³, ʬ¢£]±ü¤m[LW92!) #ò‡cêu´×Üëíï5¥Ûmka0†D�S8T…A¦ ÆþRˆ\©\.u÷»7·;Þ®Bt@7$B}$oÜ_ßÿ¹š{ü–BìZäy%âZEQs4nô]¯Ñh´šIÐÿFÁѯNÏ£#Õihª b Ò$ƒ�Á°l©ëú\¥¨/êDÉ�ùL�ø·kÞï:î£ëÛµÞ…RÁ*¥™¹Ãq³¹ïÖGAM—´7/œ=RqŠ%¦[ŽT4†a@e Ã4A”¤H„<=K“ …AÍâõ€B Èm7jÕîÔ[Œ©|Ò‚LŽüìLõÍSgçç‹Yž¨ _(Â4 È4Æ`äQw軣Á0Ô ½4öƒ=oo¥És õ©|ñ§ÖY&Fp å vôøI9Q©ÀÌÛ™„?èÑØ÷›÷ïmþ²QÛ»[(X'ÆA¼·^sß ¥”Ú5pK¤Œ½ÁÀs’qމªŠt2¢ÆÎÐ[¿·þî‡77ÞYÝ÷UMÑB!“PH™;Àù¡E©�ÃQ¸ÙnÖƒFm½nŒ�€Û ±þhýÞî¿{§=n8 CÉXJÊù¡# ArfÝ^¿ßmþÓ|¤åd«Q"ЗÛ[·¶÷†£ÿ®,ïúâN§ç¿ïFbÐïR»µ‡½Fc«¶ÓúS/H†/:¨ €�D†šÌÇÊMÃ0ã0l­?ÜùÕ‡wvÛ‰²€Ó‹E€; p’üxI?ylº8/lc·óñ0ê¾høŸ à#K¥'€QpÈJÿÔ&£§ÿñ•þ?=œþ µ9~\¿%],����IEND®B`‚IMAGE 1924 ./arch/monster/elemental/Para/para_ice.145 ‰PNG  ��� IHDR��� ��� ���szzô��KIDATx^í—[lW‡çÌeç¶³—Ù›7ŽcÇŽÝÚ±cǹYN?@ÒJ­<”VE\ZµEBª¸Tå±U…ÚJåÞ}¨ ¸ßD)ÑÐÐ&±I|KâË®½ëÝõzvvî‡]§ µV”4â¥?é̼ÌþŸ¾9gtÑO<ƒÿg(î Ô½�<%$¡ˆâÁ= u U@ê~po¶C»5Nö¦s_úÌÉÇÏ>÷؋ϟ{öµ³g¿øÒ³N=qª?·Ï Ù½°B†Gð‰‘Ήӟ<ú±‰Ñ—ûú»¿a¤“Ïä÷æž;rüЫÓÓcç¦îËŽ©å­}t�ÍA '²“‡G÷?ŸÛ“þ<Çs ¶ë2×󈦩¹ž'¦§}{úHÏãý)5¡„Ôýðî�Ú/ÐyJ¦ó“ã‡û¾ÙÑ‘zP’•ˆÕYG>®®4’™¢Iƒ%Óµ§¯çÌÑ£ƒ/<|úð+L~nª7Õ-RBÌðƒA¸Hç8>(ÿ)Û7ï;3<ÒûÕT:q:‹‰ñD’iz š.#B!€rdEN¤S‰áì„aDû£"a‚ëmL·Á²;@›ÔöC $Uuz¼wêÔÔ¡¯ ö<­ëÚ±ˆᣱ8S4’¢‚Ex!àû�Gx ]ïz-°Ñ“F4–JÞŸIǺØÁ»ö–ÙpJ/ôÅ÷Aèÿê6Ž>4²wðÓÿÚÄÔø«ù½OI²4 ¨*1Ri¦ÇâPUµÝ�!¼�ðC€!œ¦…b©„r­Žñd’uõö“ƒãã=ÇNêÔ©±WNÌ6+RÅc íð�à3¶3ËäõÌáC=èy,›5&åâ<G™"Ë,¢jàE TŒ@”ÈþV5ê Îöêµ*¶·Mð¼P Çu‘УÈ‹Å%NR&e9¢7,{ëÍÙÒO0 �Æózß©‰ox1•Š=( |<¦),CÑ[#ªCTµõT¾ïnu¹ˆÙ‹o£R.¡±]Gáú<¶JP� ³Rq¦ Ä4 ÿ¾n64::4<rà‘=š˜�Ú^b}šîÏ~9“7ž¤H—$É톬ÝXŠÆ!Gc 𢠦ò¥[î<¸±0‡×o`uuï\¸€w/üï!Ë$[•2),¯ Z !‰@6Ÿ§]û»GR %�¼BAöe¤3¹ø£š®'ZMYëQRÀG¤í²$‚r¢�¨2À�l›­Q«@ˆÈ-@3W®´@1::FÉôæüÜÒßêÛ&ST¹3™ˆíµ–ad2„ãxpçQB‚�‘@S$2ÁK‘½’¬´ Thª¶3Ñ/€ò"T à8@ä�›µZ ÍFMÇA¡´ Óõ142†=ûö›×®-½þ‡?^üže{V:¡f;óÉál>s8בíUY»:;ÿËB¥±º¡ï¥„q<P>(<p ð|À¶CÔ «-Ó‚ëz`a€Às! <†ÓTA`W+[…å²¹VóB{®Ò,ª×7ß‹E–~œŠÉ19"HëU³¼¸ílG)‰žxš gÅ/LN¾¼ÿþ¡L:›eѨ¾³ÆA(H+!Hà£Ù´™íºÄr<æ�æ{=wÔÚ®Ãs„使üùâwÎ_^ûQÍ ,Ž|Xx€°õ-ïO7o¬ÿPÕñíFàó„ã�Aà Ïn®8M»R­U;[²zY%Q]G{²Š¢�"ðpš øŽÝ`Ù\ÇHÿÜ×7JÕê?WÌŸ` @�l4ÙÒÅ•_2­ÙŸ—6jDu-0Rc¾_³ÍÂòjyÆ4œqÏíëÎvwõô^‚ç9ˆ‚�ßsAÁÀqª…¦iÌ0âÓ†2©¿µX»@[3–Mo½0SüõåÅò›”êø¡†,ðBÆ6[—¡¤sÐèM¥3\4–`’¢BQD8 +ðÐz˜„ ŒPŽ˜VnÀp<%„Ð]à¶6¥ 'öëO?6ðZn_ndsHi¨Š ßu±¾^$…å›ë+7×ÞxŽ ¢ ®7¯^š¹ùÆìªùv Û¨$ÒtÒ0äL¾FG'ò"<°±Þ$¶ígg–¾{þÂÜ$d¶ pRµáÖŠ¦[#· ß@ÈÖë–Ý0·}J©OjÈð€Àl4ÂëóK¿¹ðÎÂë—JÖŠFÿÛŒòQmÉLË©WK%¿ºQD½RG@¡’•Å…Ê•K×~uÃl7¿7›RBšnX®Õ¶ÌZ©H–ç¯aæÝEÌÍ\b WçÞZ¼^ú«‡; »ê.½\®Zç+µ­O‰Ñ õ}Íz}ua~å'sek!rK÷=2� î“ŲýƒòFõWÕÍÊêêÊÚÜåËsߟ¹Vø2†{k�A¹’÷ ûâÊLÇjý�@‚¥µÚ?¶œMõ¾ýnÿÝA!�O±BÆÚêï&ŸŽÿ k+Øÿ¶ ����IEND®B`‚IMAGE 1916 ./arch/monster/elemental/Para/para_ice.146 ‰PNG  ��� IHDR��� ��� ���szzô��CIDATXÃÕ—Ko\IÇÿ§nÝÛ÷Õ·î¸íØy9q&Nðĉc˜D#f4b$  ÄŽlX Ï€4bƒš,Ò 6Pf˜+qžvüjºÛí~Þî{û¾«X„Ñi;Ñ ³ªE©Î¯Î9UçÈy凸,á3¶ÿO€a’3"ÇPµsG‹Ö\Å6@Ã4{î³øólö„¸6W™Z¾rþ“gN]<qìhqìùãÕ[·oÞºõàúÚvg·gÒáìÓˆ„„ï.Î\½öÊËߟ_8ó»XšÎçóŠL‹Â0”ýé©ÒŸÏoìþ~¿í®£Ôó¼`TïŒú‡AH�òŒ½€'$€Ë§+——^>ý³©™#_UUžSÉ$Ž%ÉŒLËš:~rö[¥‚ùz¥-5gøY–uÚû½µÚNýÆÖöÞÚƒÝîN#LSGùDÉÍ.?;ßBÀa o\8zuùÒéÏÌV¿æ F¡\‘•ê4Še ¹œ É@Œ 3+£I…³c†aœ-•œÏOM•_›ª––ƒé„ݦ»œèÙ�¾S…²i½ºtêõ¥Kó?™9òu§P0ìBQšù̼]ˆ�‚Î8ç�SÀ8GN×a˜¦¢[VÁvìùr)¿bj²âîî´ÃÔåDŸœ‚a&W.™š»ºrî;ÇNL›kꢥkªå¤nÚÈårOj#Ò ¦@Q9Háˆ2Î Žö!H‘aÃ̦ÀØ7ëÍÞß[«µ_§é�Œ…D*$–¦ò¥+羸ð¹ùïNVË_’@%•$ '/5;Õ´ :TˆR Ë€$Iá|´;]¸~€²m"R¶¡!Ç0‚ÌOT&«Õòƒ×s£D~ à "WhåÜôÅåå…ïÍŸ>ö¶íX§ÓL(1éX6ŠÅ¸nBQ5F p ø^wÐǰׅçyP9WU$Iϲ™””„1’(ò³4ëHPÈ') ‰YCÍ]]:ñåÅ¥—~09uä5MWm¤fX2gÙ(˜¦ E% „§@»ÙÆæÆ:,§€8£µ³ ÃΣêÌD&ýÑ(‹FÃ(ˆâ ?nomîþõá£ú†q3"p!% œÔ¥—&ß¾¸xê§““Å+ªÊ™iZÒ´mpÃBΰ`š9¨È�è`ø@c{õmLT*¨ïlaãáZZùÜÁ°ÓÞï~ÐjuWÇž_s‡þ~«=ÜØÝsw¶ÜÐ5Ø“WÀ�gÊúâìlùGfÞZ!U‡édy¢ Õ0ÁTZŽCá€`�W�•Q�Œú=pU…fÚ¸»¶†zm—Î-œ‡®Û·ßÿÛ?ÞY]Ûzo³åÕÂTD‘”�t"|ä�¸A ’ÍWŠÅü’nÙ0òØN†eƒk:¸ÆÀ8 i€B€À Ÿ¡Óé`ìà4Úø©ÀâÒeLLTvÜ}ü‹?^¿÷›zùæ¿iDŸüAãŠ8¡åTÛ4-8¶Ó4E…PT PU@àÀ¨?‚ëºÂ"KAR d[8>]EѶd¿ÛoÕëÕ/ñU9¸‰4‰²vÇQ&„"(D�#(ìÉ­e ô½nq0F’&ˆâY&`X6ÎÌIpäeÑÂÙ³³o­×zZ^äè™�Š6³, ʬ¢£]±ü¤m[LW92!) #ò‡cêu´×Üëíï5¥Ûmka0†D�S8T…A¦ ÆþRˆ\©\.u÷»7·;Þ®Bt@7$B}$oÜ_ßÿ¹š{ü–BìZäy%âZEQs4nô]¯Ñh´šIÐÿFÁѯNÏ£#Õihª b Ò$ƒ�Á°l©ëú\¥¨/êDÉ�ùL�ø·kÞï:î£ëÛµÞ…RÁ*¥™¹Ãq³¹ïÖGAM—´7/œ=RqŠ%¦[ŽT4†a@e Ã4A”¤H„<=K“ …AÍâõ€B Èm7jÕîÔ[Œ©|Ò‚LŽüìLõÍSgçç‹Yž¨ _(Â4 È4Æ`äQw軣Á0Ô ½4öƒ=oo¥És õ©|ñ§ÖY&Fp å vôøI9Q©ÀÌÛ™„?èÑØ÷›÷ïmþ²QÛ»[(X'ÆA¼·^sß ¥”Ú5pK¤Œ½ÁÀs’qމªŠt2¢ÆÎÐ[¿·þî‡77ÞYÝ÷UMÑB!“PH™;Àù¡E©�ÃQ¸ÙnÖƒFm½nŒ�€Û ±þhýÞî¿{§=n8 CÉXJÊù¡# ArfÝ^¿ßmþÓ|¤åd«Q"ЗÛ[·¶÷†£ÿ®,ïúâN§ç¿ïFbÐïR»µ‡½Fc«¶ÓúS/H†/:¨ €�D†šÌÇÊMÃ0ã0l­?ÜùÕ‡wvÛ‰²€Ó‹E€; p’üxI?ylº8/lc·óñ0ê¾høŸ à#K¥'€QpÈJÿÔ&£§ÿñ•þ?=œþ µ9~\¿%],����IEND®B`‚IMAGE 1792 ./arch/monster/elemental/Para/para_ice.147 ‰PNG  ��� IHDR��� ��� ���szzô��ÇIDATXÃÍ—Ëo\WÇ¿¿sŸsÇwîÛc{ǵó°óTÚ& ‰T@B,²dSÂ]”Vlù/XƒÄ"l**Š@¢xˆEFi“8ÎÃq<c{î§ïûœ‹H©2 Aå·:‹£óýœó;¿s¾?ª|å |‘!ð‡þ"ëêÑ@*T,3"fT„xq�±RÈ FÍÖi¼lžëI–«F0L.ªy‹ 3såriÂvJÓiEFkóƽÕV”'– ÿ V ›¯¬/ž?êë‡/,OMùI´Ÿ´¶[ád}fajºv𔬯iìEý~Öz¸}Ï)ßøùŸÿ¹þ«^¦"èù�RfؼvzîË/½üöÒ±£ßv}¿ ÃÒÊnI•ÊVÎ$Œ8‰É‚£hIš \)×™õ·›íîõþo�ð3DŠQ0㕃þÒÒñù·ÇkãßQDv¡˜Už3”$S×Ì^¯‡á`ÀE‘� Ä{ÞØñ‰jé´µ5ø]¦=À¾bHf\x©zä•3 oMÏL\¶Ç.UxrºŽ’CHbF ABËa#Ërp‰€²$M²L†’!ŸéÄŠ!ã⡉#_ýÒÒææ§¯x¾ïû— ˆ0†’ –SFÙó‘I…~¯‡$ŠH½öͽ ú{®XŠQïÀ@)¸‚ðSsgÎ=öÆKóÓ¯›–Uu=ŸËcè¶©€4˜%VÓ5€4HÒ iò"àÓ[ÛÜØ»ºÝI>þ¬øúRá c^=|éås'8[¯}KÓ “Ëö˜ £äÀ2�¥�©�©â(F»ÓEÁô¨›dÁýõÝ_ܸür'U±3Jö ‰åqǽpþØåWÏž|Ó÷Ï—ta˜†Ážï£2>Í6�4äP™DícØï¡0tT–Æ››­__¿Ý¼º>ȃÏ cF"çf½é‹_;yåÄ饌W½ T²Ù󫨎OÀrJ�R>:þýa†Æêm0¢4Eãþb¡+%ÅnÜzøÓÕ0^+=Aü1€D1ÎÏy —.œxóèò¡×ÇÊ¥9xlÌ…W­¢\ñ@P� ( Ä £´ÑØXG”$hmo£½ÓDµ6{s}#üÙ­þG6ÑÓ?£„‹eÃ=s|ö»‹ 3ß·msNè:;®‡ÊÄ$*Uº(’ ˆS IQ¿‹hЇnšØiµÐÜ~Hó‹G†óݵFç/ô™Gç‰�6‹3åoNMU®X¦1é8{~~uNy šdPÈGïX–Jt‚�½ xØGØé"*Ž.-Ã0í•Û+wïv“>=e÷Ÿ¸:U}ϸl”¬ãºí°[ñP©T`Ù6$€´x4™�ÈLbÐí ×é OcV0u óss¨ÏÖ™”ÊMS§ÿ”÷ÏñìhÄ,Û&Í*A4Ó€i–G9öÚm„aˆ(Šg9XÓ1S¯£V›„’’,[?sòøÁï-V퉑2Éi§-UÌDHÈ0L×L  ´Ûúɰ,M�VÐ…€e— kJJÖ9eÇ<ëXº?2@¢( »Ù{ s3‹†”% Tžƒ$0Ø»Í-n7´»µ‰A° ’9,Ó„nZB€ ! tQûI&GvDL¤´ó÷jw›ׯ¾EB_ÒXÚÉ Gi‡»»›Q¿SîgX¨Õj(9LË‚.  ¤‚¡ œ¡zÁa\„#�ý‚÷?Zm¿“eŸÜ?°¹wÊ«ú\ÈÁ0Úm,/øñÂá…º®\›¨ÂsQ•gŽ ‹¤T³ßþ:̹ÿLžÐ B˜Ê胕½kå»í?Ù†¦Ç¹Ì˜×PGÌzì¸&§gàW\X¶A” ´Ñ ;Ívk'ŠVðÛÎû13ÌÊð±¿@#‚F@ÁPÃL~jrÉûíV«=ìu0¿°€©Y6R1­µÛ;~øÉOVV6¯iº(íuâ»7äéŽX†#9¢DQ·ÖZ 519IÏCRÒ°ÓjªÕ[w~ÿ·Ü{çã½hËӣР @iwÞnïîöë>3³a—èac«³ººñǵ0Þªh €@Ïä²GjL$ƒ!¿ƒkûý¾ôº4»{+­îõ‚ñÜ¡YsgŸ:‰�DB›Uä–Mß¶L}ÐܾuëÁÕëw÷>P ÅóШ½¡d†) ÏWí…™Iw.Ídp»w¯™ÈØ„ÿ9À¿ƒèDÌôüÂÏÝœjD`à…ˆÿ_tÇÿj€xáI2›����IEND®B`‚IMAGE 1571 ./arch/monster/elemental/Para/para_ice.148 ‰PNG  ��� IHDR��� ��� ���szzô��êIDATx^ÍW[lg=ÿü³s÷x×»kg¯“µZ;që´±“*iEBQiµAHPJËE*UT RÅE<µ‚öUˆG„ðâå¥UjÔ4 *P'V§ví]ï}f/sý?²óÂ’׎Gúf^Ï÷}ç;ú³OÇÿö�W8A„Òª,éœ1'‰öŸ€'<R8ôâ3~ù/<óío?÷Ügæ7£/h8ñ ë\bøø±â?ñ©ï|öÉs¯<òÐñ—>úðÙ>ôðéW>rbæóYUÒévaL–ðé‡çŸòcçŸúÊg^>qÿ}_TuäÝ)z6c/ÎÝQøÆLÞ8)v° ;DOÀéùÂé3g¿;sGé¬iÛi·Ýbn#¢Ð÷Ðíváv:”JIsiK¾[fø+t[&aé€UZ˜?ôµl>óIUU2Šª' Fp»]4 tº]sv@foË"L(\¹³”{tjjükÄV ;MùY0ô:1Rª ‰½nrJ¹U)ìD‡ÒN?S°î=8=ñ¸aÛãºa¦i8Àe€+º¦Ã0tX¦…ÜøD”ks‰Å{%¨~ÆV3Gg~.7‘_T “,Ë„iè`�üc@€q‚1pEë“ËnLb/+HT_Pyê¾…â'fçJeŒÑ‘1M†ž}ð‚N³ÁZµF§V©mó½œa@„¥£“Ü»xôëÙñܬªi¤hdU“ ŽF@èu\^ÍZ­\ot¶8îÏ0Ùûý¥ìÜ=Ççž¾5ú“œsè†ô ª<˜ïa�j¥ÌÖ®/® î‡x»Ð:ÛÕ’½/ä͉“K³_-NO>–’eESUØö(4ÃH:üBFèv:hÖª´]ÞBµá,¯— [Ž×Þ•‡D˜6dsi¡øT©4ùUM¥S2§Ñô(ƲY˜†Š úž€çð½>zíÜF A“ç‹K+kÕKµ ÂÐHº›-fN•J…/š2%3PzÔF6›ƒfê` ˆ#/ŒÐ÷|´šMÔ«Ûèõú°m;T$©Öv½ž%IÃî-ù`q*sËßµyADª¦c4=ò I‰è "Fèõà4ëèw\È2‡*ßúJâÈdÎ: O ±R¥Q[;-Ë\ÑM Öh²¦ x‘@?ˆx»…®ã€3ÀJ|$]—ÏLdõtÎøÐ 6¢Iwijª ë:¥m†i"$ÀEb8± Dõ]×ë´A�4Ý€>8OY†,1Š‚Àbh PH„‡�²÷>(ÎeH’”T(�ŠcˆÁè[-ÄB`Ķ“Ë &AH~@˶ÿÏ> M ¢n?üÐë{„`a,7är ¦‰Žë¢Ýn„€e@ÓuDæÇ‚ù~P.WZ¿Ýlz+*c»!X\uéÏÛ•öïœf³ëu;,|p�"B"6×q ÈærÈçóPTAµí¬¾¿ù“å÷ë¿i„¢¿«7¡ âáÚ{«Í­¬|ðëòææF»Q ·Ë›ÞÕ Ôj5fš¦ŠEä “PÍÆÐª7®þýêõï½õÎͯ´üÿÓý.¬˜3†åZÿÝðíÕï×Ý ÅâÖœ¬(†ª°sS‡‹Çsw- P0ÁllsT¶*kW®üë§{wãÕšõt‰aü×\!0®òT,„~lZ}ùä©{ž»{ñ›_€nIX½þý嵋?»ðêåVZ^ՆŃ ñ#9öìÒñÒK3Gަ§¦ Šm¬o4.¾~é›zçæ/%°ý &×;ôF£î^ì:Ž<DXß®.W*­«1ís2b�ª®­oº?ßÞªþ¡U«ßØZß|ëÚòÚ/V+•cûÍb‚x¯âýþÍËkÏ¿þÆ•§ÿøÚågß¼róWU?îc:œÆDKþcØ+þßÓñþãßí³Ñúão…Ÿ����IEND®B`‚IMAGE 1766 ./arch/monster/elemental/Para/para_ice.151 ‰PNG  ��� IHDR��� ��� ���szzô��­IDATXÃí—ÉoÜIÇ¿UõÛ·îvÛŽÛŽ‰ãÄÛØI&r˜™ÀÀ9 P¸Â…‡#ÿ ˆH@ ÜM"!4$Ê0I&뤽µ·nw÷¯»kU=q%8L"…uªÃS}?õêÕ[XôÎð:Çk^Æ«>0Vú醑!h óW — ‘)Ú†ˆ\KRÑãö°„&,œ­õµÓg|ß öönûàI™…œ½À@HÞœ®Ô¾öÖÊå…Åùóé©Z:J†ߺ}»7L{o¬-Ÿ_\YøžÅé+y24›O6š¡ëùæo†R§ ìË”D¨†wV§ß|û­Õ,¯.^©Õë§ü00ežKÇ·;R©l¬>V–QÄ1eiÇ5gOÍŽù§6ö?ûçîèCƒý—j ­“¾e]\j|ýÂ…ùŸÌžšz›FP(E:É eiZ®3Ųýƒ ET( F€!Œ‚ÅzÕY¶ö’k HµF©UK`u~|nmuî;³3ã߯Tü¯ÚŽcúAH' Ø®‰4UHGCŒ1Ò^i·­lË„Apf Á]00Ð1�‰ÖŠÐpM~qyfieeî“ӓߊ"ÿ›S“–iRUÈt=˜¶ ×80xMÁRÃA © iš¢×í·úýä‰&"</b­EXóüóK3+óó'/:;wej²ö¶Rªš3'ÏóF„ãBi`˜ @Ó²íà KÄiŽtÐg£Á@íîvþ´ÝÉþ¦$ž±Ò˜vLóâRãÜê¹³ß^\:}Åü3¢*8˜m˜äû™¶fX°<–ãÂ0�©Ÿ¨¢D§ÛEÜ=ÊJ–HGCtÛGŸlíô>8Lõ¡`Ïø†™&4Ã~w}îÊú¥7ÞŸšš¸èº^¤bŒÁq= ®çÁ0mdJCÛâ` €$µÛØßÞÀƒæ&À 4ÆÇ�­Øh8Úߨl_}¼;¼¦‰ÀŸP1˜yáLýÊÒâÉŸVkÑ%âš ‚�aÀñ<8ŽÃ�8T!�H l<~ˆÎîÀ9²¼@„˜™™†ï¹lw{+?Øïþþþ“Îïö2•¸ÏHB�`œµ¹ÙÚÇÆ*—‚ €å…pý�õj„JèC1 Ð€Ò€o¡”%ppÐÆ[7†X=wÕúÒ,G:ŒYž&´½½wýÎýÖÕ‡Ýlëyâ�`ø›Ž"oÁ BX^ˆ RAàp=O\ °LÀP* sEŽÓ‹Ë˜œ¡µÙÄV³‰n¯‡ÚäôíGv~öéVï#‹±ÿ\Œ²R•RJ)„`Â0È2-C€ &�[�‚Y ô“ƒ8Æh4) YØ:è sxˆÃí&,Ó@àýíÃ>¹×ús¢HšÇÄ©jµ{wËd0+t - ¤)'‚UšPRBFIŠ¢(äJ©à`Ðë¢ÛiÃum¬®­!B$ÃÑakçÎGzY™âØ/xc=¶ tÅ·žkW•&[–Ë“K±îw»i·Ûí Öïõ¬d8„, 8ŽZ¥‚‰ñ ÔÇjB@æ©er¾totÓ2gÇy %”wv’ßÒßÞ;h.Õ'Ç]߯H¥³"/²$Ý–e¡«Uï‡Ù¨{ÙulV›˜‚G†#’i�94i¿13ùݳs¼Ûi^ó0C¡‘]ßèÿãîN|Ó· Û1…™I%ÓRË¡ÔÅò¸³þîå…÷ pM€&À Jsض7ÉuœùF£~®"6¯Ë/äþçög(4t‘É™LÿýF� Úx}ªZ«’!<σ°,ã �Œsp˜¾1Ó)åX¯œ™RQñÒ-™Á(¬V"{vnyQ€“ÑÓ‹R1Æ0“3t:½ƒV«ýY¦tùÅâó%�ÃQ–ì'¦gÀ„€RšiYb”æ$Ë´ÒCAº R“¥Ù|¼õëÛZÉä°—nJ’\?im·6'&'N¸Q•Hkî~|ïþæÏw÷{·’´ˆ¹Ö¥mñÃàAkpãn¯hEœ½|WÌ� $Ûè%ûýÓv‚,Íö>½óÙ/?¼ñäêa¦F&cÐD` ÷c,×D/"�Â>¹~¬Q®‘³RíNyYñÎÖþnÞÞüÕã¸è8Ÿ ±Ïc€�öbâ�À^t2ʉ0a‹¨â[ÕQ&»[£ràózé¹Àf q¡ã¸Èb�xâÀÿÀhö€×ð/˜µW6r­T|����IEND®B`‚IMAGE 1801 ./arch/monster/elemental/Para/para_ice.152 ‰PNG  ��� IHDR��� ��� ���szzô��ÐIDATx^í—KŒ[wÅÏÿq_¾öõÛcÇ“™ñ$΋w(iÅC*”J°H ¢‚U#„`Ô°©ÄŠ ¨ÄEl*¡B$¨H…>’¶LÒ„“:ãÌŒ'óòøy}Ÿ¶#KF 0HÝä§k{céŸïÿýͬ~$ÿ ´‚-LJÊÁ –®&5É[~€^Hïû^@ŸèÿcÀ C¡e£ñÏl߉ïžùÜ™<÷ì¿ÿ/~ûkŸ=ùø±b<kHÎ3¦ª|x2™xêÄìîÓî=òä‰]‡N&‹–Âeë>“ò¿ùÕYU°Ã» ‡?ròÀ3³åÒ§ ;&J™T2ÖíÙýDÚZ,• o¶;v%›Ë˜©T¢ G"%†ÐjwºÁòâÒ{WÞ¾þâ+ïÔ^ìúäüG ôÂ-/€.Žíˆ§ž8µçôc|¾TÚñt"z«Õé2Çu ËŠ•K³;¿TšÝñ\¾þ^,}ùapPSÅ‘\.ñôtiâ›;3Æ‘‰|Ð|,M DÉ©©‰Ù©™Âñ‰\êTD—§„de¡(\7£”žÈ#Uá;„n·C ©°®ã¨ëëÐtŠªª”DFé\æØdÞz¢ºÒ»â„°ÿÅ@Ë‘R8;^ˆ'fg&fK³“Ç'§vœJ¤G¥*§CÏ»½.㜑•H+*Ád1ø!à!šrUÓ@\ $x�]Sõˆ®$$Ï@ÚDàœœŒçO-?^Þ3ó©L.sT7i!DaÈß#@4#¡jˆXq$bQ¨*àù�ˆD" ÁƒÝ·Á9ÇÐ÷@¾ÇzíN}­Ñ{»P`"€O”Óœ<¹ïLiwé3‰d|RUf{!yDP… ]G„ H)À…©éàRà€@® „‚ƒÑ5øA€Às0H¾Óg­Æ†}g~é·óõö+‚a„,ǕҾrþ[Åɉ/(º®LfDHªPT\ªRBp6ÚiƤ"ázˆ$Bš Ì×jh4ð\™T šaÀwx.zívëÖ­;çæ®-ü|¾é,HÆ0Ff-ùq+}R‰˜ºiY¤EL±(„¢BJ‰�RpHÎàú!Âáf oݸø.bñ$\×Am©Õˆ"“I#5áûë÷´67«ÕÊüÙ·ænŸ½ºØ¼>#9Gl¹9˜FR7�©Þ‹Xð{nApF}vkkkk ÀG:—G<OAU$4M±a*ÍÍæÍ«s•Ÿ^úKõ×7ýµg¸Ùîy5»go¾W ÂD8ñá jÐs=0 xÞh®¦aàðáäªán½ŽÅÅ4Vï"›Í²]å½´°°üÚåK×~vi®öRµã4cœãAÈÕ–¥V»ûrvbùi!e\w8ŠBœ ô%Ðu}0@ÁÖVWqãöxİ^_@s¥HÅ- Zïµ7þ|åÇçj/o¸;ÂÍßt:ÎÐí×}×éÚý~ßë÷}·owín¯Ó4Ì ¡.‚áÔ0ð™ëhµZØh¶†eƒ\2ŽÝå=˜Ù³fÄlUnÞ~áÜ…¿jù¡§0†‡”Œ¡Òpnn¼U«^«¬œM&"¹XÔÈêš"ç�c`œé»fò§c¦|JÕ4ËLe¡”gg kŒQë©hw:X_®fÔ(S¦UYí¬c Þw# ‰À�øÀè30ÓRŸ|dæ'Ú_Ö Sgw#™ÉÁ4Í‘Æ( 1H «ËKŒˆÿíâÅ«_ÿÍåÛ2ù à>Ƨ^`꼤GÔcŒ,i˜&qÎ!Ø( |ô΄@lØ–Š^ÌåÓûãbþ¼O m]H�E¢H§sÓå}”Ÿœ‚Á¯ç½žPèf ¹âNd&&ô¸eæÎ$¶@bkÀÅqK+NÏÀó<ø¾Ðè!Ñ!!•QköíìnĶo�„n·ßÛX]q Å"tU…ψ¹®‹^§ß 0´Á ! E‘)?¤aImVç—þÞóÉãŒm÷NÈÐs¨º´°X[YZ7jÕÚÜë.ÿèç^}öw/?s៿ùîµkõùÛëw*Õß/,5^�Úv @ÛgóëöùV³¹_Ñ´¨m;˽þÞ/_½T}¡Þz ¯ñ {—Ö*ш«¯´/WVíʸ¶\툰+©8t ð•|!{¨µÙ}ówª¿xwÍ^¯™G•1&X;¤P‹o×À‡YMXqSMtû~ãN×kÅ·Ëÿf¸‡þavܼ:´����IEND®B`‚IMAGE 1829 ./arch/monster/elemental/Para/para_ice.153 ‰PNG  ��� IHDR��� ��� ���szzô��ìIDATXÃí—Û‹äGÇ¿§~õ»_º§»g§{vgö6“¬{‰;Q‚DAßÅ}ñŸðoðÐ ‰AA_D‚‰‰³“ÙlÖ½Íf¦çÞ3Ó·ß½ªŽ"(ˆ»aW‚õVT}ª8‡ó9”¼öc|–!ðÇÿ'ÀXŒ Ðö¤mAãZ£0ü©Ï’ŸfóÔ0Œa|±—4n¬,,_»¶|½×ëv†“iöáÆý{ë7ÞÝ>9L„x1�cm�` Úž+±ë^]îÞ¸vóÊwW®\úFo¾{Ñb¿,+ÕíuvΟëünþ½;o­?Ø_ÛJëR1#±Ä³LÑŒYWRâI»ûAïL³ãún”D~cn®u) ÜËÍ$øšŒÂ[l‰`’åœ+ c{¾»|yiñ\èË[—–Ž~{2Êo§ã¬Ÿæe:šæ“Áét4˜”ù ÒœHñï�cmб-±ú…î•ë×.¿Þl·–‚8šï´›mÛN¤ Ð"ng“‘[¹ÇR²ÆÜšë!Ž|˜Zc23„ðæX%n6n’팥%†)Mób0Ží÷÷>Ø|Ü_»óèðÑæ´ÊCA©a¼”¸3·®/|çúÍ•ï-]^xM:^\jCÒ‚˜YÕÒ"GUp—íf;-D¡Û„cÔ€f‚1Ì,FÒ&°mÙ•–¤ ô0×ièùùÎéù‹½{³Ý¿‰×¿ýñQvßj-®Ú«Ëíï¿róòOf»³_ |Ï—Ò"!,²-Kfh? (i LÃ6jH¸6A±„†€e;¶DZaY$˜ˆ ‰ÀóœóI쯒©¼£ýáû2qD§Ó¿Õ˜i^¢ˆe±í¸ˆLe |fÔJCØs]XžËqàÚ€& Ô€cdKq Çq�6°DÐÆ ªʪ‚©+v\oæÂpôÍî½þÛ’`BèZ¶Çõà8Çç9(5ÃÔ¶²�f(c ³¹Ñ¨„4Ë!a¢(9ˆ¾kÄJH­ +…²,`˜1Óši5c¿%§5Çã»ÙdüåºÙ”•cƒˆ  4†¡4C+SWèïíbóáAèÌõ7g°Óï£V šW_Z¹KË^mÒ"!à„�P×ÌŒªR{Y©÷-1¿šylêУ ÔQJ¹Z)*ËuUu²(P9”ªA¶‹F#í¸°m~ i6ÑíÍ£;×E "Tµk V eQ , ÔeAY–Òèèpÿã;ûåÚGý_[îÂ*&…ÙNGéz–e›ª*§º®•Ò*0Z9F+ÒJØ�DÒFYÈ+…J Ç B°FÜh�DPu £**‹œŠ<C6§ãÓḿտ½qû£Ÿÿù½ûol燒@¨ Ê;‡ù_¶Núë‡ou;ÑâÙ^ëV»\™™i,5f’• {A„¶dîïò~Z#ˆlmcçá= övñê««HfZ7$ªºæ|\ž¤ãéãÁàôƒÝÃõÑpr°pòèÁÖñýÍi•'–�ý'H cF’ðmËmGn«w&^>»pæ«çÎüàì|wIi-†yM†G8ÞݳÁÕ—W°xþ¢žLÒû›Ovþx°³ÿîn°Ö?œ|²9ÌFÄ@Á€/è¿÷‚P*S•:éÎæq¶óuW¶-“U¤tvñ<:ͶmãÂ\ÕÊK �#1<=­6Ÿì­ýþŸÞÝ>yT1à ‚�øôiÛ1æc§5׉¾M*¿RŒO©Î¦ ­àI ±ï" C„¾2e6 :3Ñêb·yÞà—?—0€ÀƒÀ^M’†ð£€ .‚m 0j\×ãÙÙöÂÜlcÅ!¢çö`Yè%­ö™F3a‚ãû€°P†4 !¤%!ÃA,¸á£‹$wª¸xn!‘Äq£‘¸g/\‚ªkhc�PÚÀ"×u„!ü0FZVdÙv“6€â9•Œ1™Ùðø¨"UÕ�ÖšTYLót:ÊÒ4«ŠœªªBUÈÆCÎ'ã‰6¬_€’òÊlö·ú[íNg.LšÌÌ8>¬÷·öÞœfÕãÙK‹ ³?<3?¿E1FÃÓ“ƒÝ£Û¹FöBr`¢è“ã“ìãÑèeé¸QQ”ûn<øÅ;ï?ùÙ~¡³®KÝ×_éunHëGZ)ÿhïàîÁÑd=g†÷”<´Üs«OýƒÒ ¤Úì2¥RõxgûàWkw¶ß|<®NA˜jžŠJm‡®%ª¢Ø¹ï“7þúðèOÌPO}à³NF%3f]+i„N3-ÔéVZO¢©qÅŒ…Øé„ž ö†ÅÞqmjïéUøì�ŸOFŸü¯âïdSƒÕ©â?ø����IEND®B`‚IMAGE 1895 ./arch/monster/elemental/Para/para_ice.154 ‰PNG  ��� IHDR��� ��� ���szzô��.IDATx^íWKŒGþ««ºú=ïÙ§×Ý,ö&V´DɉKD°Ä%BÀ nqD $B€¸ð¸‚ áÄ’-¿äõc³^{½wvwf²óì™îé®î.þ["â±kóÿÒ¯.Uµúûþï«úUM2¯~þŸ¡ü;�ÏôâzÃz"•�5ª¤c7Iþ·‚DŽ@OLëK¯-|â‡_ûì?úÞW¾ùýï~ñßúÜ+¯½|$?â;OìŸU0%U Œ)J,¥œÊš†e¨F¡àœ8}zöÓ‹/:[+Ÿ°3]‘’dJ¹òDþ]ãý¥Ÿ_ÙÜ_á„<ÊggÆÂ©ÙÉãÙbv2“ËLX¶U�Bx!kOS’ŒEq4§ú,ÓÔŒ2êv!ÁªuC›Ÿ›=29èuMˆ£·®W:wb�´ˆNÀ—Æ9Õ^]8òú /ΟŸ;ºhÚö8aªÅ¹ª É8|8pÁ÷8ͤª²4>¦e‚? !ô’*Š}òù¹74¦ð\¾ú›[÷ë*nà;T9˜€†yzÆyý…Oÿ`z"ÿ’„˜†CO ¬L!+L`„ cLåÒÊdÁv²`!87 ¡22‘ù ´AQ¾`åó§Š¥Ü/WïUÿxåa»b+ä_Ȫ$?V0Î:sQ×5`ŒK…1`��z º¢àPÇŠmÈæ @9‡ B‚‚€ÁÓwÐMìœH𙆾˜Ï:ÓS“Å3ù›ë¿ZY¯/Uá0C•$@p¢@IJ$e’iPƘ�¥)°„(JpŽ‚e;dÁõÔ^Љü HRÃ5°Q«Ð׸””Måê—MË85^tÞ9uýÕðô¨Aµ#‹ø¤ì(/—ŠÎ"×°VJý||NÄh‘hÅЇ~€¾Gk‘HÀíù8‚‚ë–i T´%ýAª†®µm}–Bìº-w«Æ#äo°8AcAMNÆ HMi&1>Ca@ˆà{Õ¸}s ö*[ ãš:ܾq6Ö7¡õaŒT!ÛÇâ kÆH Š3Æ&LS=ɤˆ:Mwµ-’”ÄcpÐÊM¿Ü’QØW 1H'‰#Ž J†Ç1è† ¹R Å"X– %W¹†€ÈŠ` XZ—k¶­‚Â(¾c`r M-,3*‡ƒ^­ÑôW€dDà‘$Ù÷£Z³é]sÛýË^ß[E}[ %âÊ8¥(b„U7› ½~zí&ô»<”_!"TK*Æ‘ ‘¤8´•QRŽB_ÛÛm^nãöˆÀã¹ –áÃ^°û°Ö»QÛmo|عAK¥D3t­EBÝ®5À#zî¯Þå¥k°¾² N&ƒ*Yà A*;p´ª€cT‡2ä@I$D¦^«/ï5½•¿Ô Ý0ñ+m»¾×¹âwzK”ˆ£Ù\v.ŸÏÝ0FÊž =žœš‚£ÇO€aZ ‚!ø¨H "P™:²NÓS@Cs·º»ZÙé\dpHp$SÆýBÇkU¶D–¥Ê™cÇIå.Xe8VΧ'd´ë5•Aí ƒ±ÛB§ ô^ŽMæÀ±ÄÐ º¦ÎèèJ –ž³ÕÜ‹ÏU%Þ'½AŸ<O:ª†•1L$QF ±jßíA¾XêwZ«•½¡7üUÈ*¡KDQžëVzþm‘H¡À¡A`,«ÍOM•>ƒ½?‡F¦~2J³GÉØ£¾!15´ÆÌdI©yuió×çÏßøöÒå?½wëæå­»[•Í{k×î,ß{­Òz_H‡*îj]#ÏMMÎØ™Œ$ 76ª< ŽuË#MÛ&\ß9ƒŽL½ûÁÞŸÖ¶®ž¸½q¬\Ê•Û=¯¹þ ±u¯3tÓ¶Ìà "‘R3,›™›m°X„ ÞKˆ�CpÆ50u2¹<ˆ8–ºÆ'Êyã•üÞà/µ~ènß­} )u@Ùþä7"×õÛ­FÝW’ÕÐ09áh,2 ’0q$Ä„«*d³TÆ€«TÍgÍiß ;Ú+®oo­oÔ+÷ï’ÆÞ´›ûP}PY½zñúÏ»ôæÅ ×Þ¾»²²¶»]!jZõ=éÉàÜFžü �v8<€'Hµ±ß»P«Õ狉4„ˆz«Ëk¿ïÒúO^äæ4%³0[øüâbç;ÑÐ_`º‘V‹IöñþǗҮͪû³_ìTªçÖV7ß¹µRýíV_tqö‡qçæýýß-ßZ«²¹uiÐi»ýž{·Ùê¿çEÒ=à‰ÿŒÒ~0i©¥œÅ®'Z;ý°Ë>âgˆëUÑ?6]˜™.žé{AóöZí\u z!øoF eºÃ©2 kC!pP<û7|Fà¯`r_Y•A^����IEND®B`‚IMAGE 1789 ./arch/monster/elemental/Para/para_ice.155 ‰PNG  ��� IHDR��� ��� ���szzô��ÄIDATXÃí×IoÇðm½wOÏp†»Ìµ:”‘K€\r1‚Ür²o9ûKä ä —ÀÐ)Ç\Œ8'íȉ([¤$R‚D â>ûôtÏôôR/9Œah¡B€¼s£ñ«z¯ê½bÁõßàMÇŽÿM@TjDi(/�Cð(/‘hzíÉ×ùx¬ y©q¾æº?ùþÒåµµï­ÎÏÏÖ4»³±ýàæí‡›wúM›³ÿh²$8’à ¡cšE©©æšÊ2¥U¯Ë—./ÿâ‡×®ü²13½ìx¾%Xmfê`z¶ö±ÿÉú>}ÔºwVÄ)@!Ö„µŠå^\½üÖ[³«Õ°2„Á<ã\™†ô•5­ËU˱W”ii–Q6€ƒ`šjmueanÐ혽~üÛ­Îø©ÉØÙ1WjöÂ;?^}ÿÊÛ~5;7³ì9–Í¥´²¢¤t’ñ4ŽPff˜Š¸iQXŸ†ç:Ȳ ÃhHxË+çÞ½¸ß¼Óîx2)Gî+vB˜‹?�xÆVkï_[üÀóÝKÐ¥Íu¡ò4eÙxÄ¢h€4Ma˜ÜJ~¥†0 áz�—Æ4iŸ£\Ôi²wÒ=xUYžª&[Z[ª|0=[¿fZ6I%AŒC zV|ʰà…5ø•žçAHb €�‡ÖJ°t&†ÝÁý£8k‰—¤âàšYšu=Õ˜ZT– .$À¤R�`BÁu=xA®ïõmJÂT� 8`* ) "Î9–L©ƒb˜<>~ â�"XXó<óªTÊ`œC0Î�"1 އˆâÐFiŽN/F2ÎaH ϱ@L Ó1Åš œ÷[Ñíö¤Läs§€T#¡\ï™B‡¶)–”`vY,Ï3E2ÏM&hîcksí£}è²Äáá¾Z¿…ÝÇôú0Ž@>“› ¢1Šããv'Ù*å œ1ô&º™²-YÇœi ¾`p@Ä�ß÷1·°ˆzcŽmÁ0L(ˆï{¨U«` (ò•° Ó²QjQYƒÎêÃî`ã`˜|;ÿIÁ׈æDw:Ýt½×?'ãû H)BÃ4B©Ë‹­v98zQ„V«QÔe)¤H’†iÂô*B‚i ÒùTEýã“áz¦iò¬lŸ��ÅrBy4Ê»‡íÑf§ý=Ÿ¤O•`Žm›sé$5v÷ŽP˜úöîbóö-ìlÝ…ã¸` h­„5Á98´‘OFaû¤³ÞæO9{ àô†b  ™q«Üëw£MÉó?pÏaÈ‚J†` t%8ffgј™C‘gˆ‡ÂÚ*a J)h­Qä™Ûk·?9ŽþA`ú•€oBº…Ö%?¯öå©©)z¦«æç±¸rç–Wa9¢^ƒ^Õj Six®…\Ëò̈úÝÉÞ^ëÓQNƒ3·cM„K×.ͼۘrßɲ‰(² ²,C¡ Žë"*ð\¦¡ ¤D1IÑ::Ä8 °—ÂJˆF½¶RuÎÞŽK� ÷êÅ+Ëï¡LÏqe’T8çœÃ”œ�¢°àÕp*5d“1âAõ™iض‚çyðß±Må2¤gH�õо´raíŠeY4NSpÆ�Æ¿¾-9q€~À *0\»·õ{(òŽ/À¥#´²\w„Ÿ„3 $¤KÛõ<¹¸²†8ILÆcdE%cR!ð=Tª5L¢ßí`ÜkcG¨TªŒë²ô¢öâlï›ÇðÕ�6è èàÉ.›™_„çØHAŒéÉh¥e)…Âq˜iYªSŠ’ðÃ*(Ÿ }rÂtž÷wí|q÷þ“?ïÇÙ@±×�4ˆ³ýÇÛÛ-Ï÷|¿V'�è6[÷·¶v>ÒØ¶ÍÙ¹ùÆõ2Ï~j[]pN¶ea“£É­›·þôÕÆÎïommñ6£o�8ب¨E×1ßÖ¤ÕpE÷6üñ£OîþnýáÑg÷Ö>jnYâsKB[*…¼Ô¬Ýjn~þå¿Ü9ø+#”üeWñ‹".)¦IñT p*Ëøp¿ùÑí'7¶:ãCÅJ‚>ˆÒãA»¿]¤I Ö0 YÏóœ7¾¼ww÷Fsî±çtCvÖ—QF„yGÖ«®éÇywï[¹€‘&ÌÙÒ»ºÒ¸~amñgÊ0Ü';ûûbsÿã(×ãçîðwý4+‰ L[Òg|0.’Xœ̆ßqÆ �ô&å銗 ¦ÿ¾qÀ¿�q÷<fas£����IEND®B`‚IMAGE 1895 ./arch/monster/elemental/Para/para_ice.156 ‰PNG  ��� IHDR��� ��� ���szzô��.IDATx^íWKŒGþ««ºú=ïÙ§×Ý,ö&V´DɉKD°Ä%BÀ nqD $B€¸ð¸‚ áÄ’-¿äõc³^{½wvwf²óì™îé®î.þ["â±kóÿÒ¯.Uµúûþï«úUM2¯~þŸ¡ü;�ÏôâzÃz"•�5ª¤c7Iþ·‚DŽ@OLëK¯-|â‡_ûì?úÞW¾ùýï~ñßúÜ+¯½|$?â;OìŸU0%U Œ)J,¥œÊš†e¨F¡àœ8}zöÓ‹/:[+Ÿ°3]‘’dJ¹òDþ]ãý¥Ÿ_ÙÜ_á„<ÊggÆÂ©ÙÉãÙbv2“ËLX¶U�Bx!kOS’ŒEq4§ú,ÓÔŒ2êv!ÁªuC›Ÿ›=29èuMˆ£·®W:wb�´ˆNÀ—Æ9Õ^]8òú /ΟŸ;ºhÚö8aªÅ¹ª É8|8pÁ÷8ͤª²4>¦e‚? !ô’*Š}òù¹74¦ð\¾ú›[÷ë*nà;T9˜€†yzÆyý…Oÿ`z"ÿ’„˜†CO ¬L!+L`„ cLåÒÊdÁv²`!87 ¡22‘ù ´AQ¾`åó§Š¥Ü/WïUÿxåa»b+ä_Ȫ$?V0Î:sQ×5`ŒK…1`��z º¢àPÇŠmÈæ @9‡ B‚‚€ÁÓwÐMìœH𙆾˜Ï:ÓS“Å3ù›ë¿ZY¯/Uá0C•$@p¢@IJ$e’iPƘ�¥)°„(JpŽ‚e;dÁõÔ^Љü HRÃ5°Q«Ð׸””Måê—MË85^tÞ9uýÕðô¨Aµ#‹ø¤ì(/—ŠÎ"×°VJý||NÄh‘hÅЇ~€¾Gk‘HÀíù8‚‚ë–i T´%ýAª†®µm}–Bìº-w«Æ#äo°8AcAMNÆ HMi&1>Ca@ˆà{Õ¸}s ö*[ ãš:ܾq6Ö7¡õaŒT!ÛÇâ kÆH Š3Æ&LS=ɤˆ:Mwµ-’”ÄcpÐÊM¿Ü’QØW 1H'‰#Ž J†Ç1è† ¹R Å"X– %W¹†€ÈŠ` XZ—k¶­‚Â(¾c`r M-,3*‡ƒ^­ÑôW€dDà‘$Ù÷£Z³é]sÛýË^ß[E}[ %âÊ8¥(b„U7› ½~zí&ô»<”_!"TK*Æ‘ ‘¤8´•QRŽB_ÛÛm^nãöˆÀã¹ –áÃ^°û°Ö»QÛmo|عAK¥D3t­EBÝ®5À#zî¯Þå¥k°¾² N&ƒ*Yà A*;p´ª€cT‡2ä@I$D¦^«/ï5½•¿Ô Ý0ñ+m»¾×¹âwzK”ˆ£Ù\v.ŸÏÝ0FÊž =žœš‚£ÇO€aZ ‚!ø¨H "P™:²NÓS@Cs·º»ZÙé\dpHp$SÆýBÇkU¶D–¥Ê™cÇIå.Xe8VΧ'd´ë5•Aí ƒ±ÛB§ ô^ŽMæÀ±ÄÐ º¦ÎèèJ –ž³ÕÜ‹ÏU%Þ'½AŸ<O:ª†•1L$QF ±jßíA¾XêwZ«•½¡7üUÈ*¡KDQžëVzþm‘H¡À¡A`,«ÍOM•>ƒ½?‡F¦~2J³GÉØ£¾!15´ÆÌdI©yuió×çÏßøöÒå?½wëæå­»[•Í{k×î,ß{­Òz_H‡*îj]#ÏMMÎØ™Œ$ 76ª< ŽuË#MÛ&\ß9ƒŽL½ûÁÞŸÖ¶®ž¸½q¬\Ê•Û=¯¹þ ±u¯3tÓ¶Ìà "‘R3,›™›m°X„ ÞKˆ�CpÆ50u2¹<ˆ8–ºÆ'Êyã•üÞà/µ~ènß­} )u@Ùþä7"×õÛ­FÝW’ÕÐ09áh,2 ’0q$Ä„«*d³TÆ€«TÍgÍiß ;Ú+®oo­oÔ+÷ï’ÆÞ´›ûP}PY½zñúÏ»ôæÅ ×Þ¾»²²¶»]!jZõ=éÉàÜFžü �v8<€'Hµ±ß»P«Õ狉4„ˆz«Ëk¿ïÒúO^äæ4%³0[øüâbç;ÑÐ_`º‘V‹IöñþǗҮͪû³_ìTªçÖV7ß¹µRýíV_tqö‡qçæýýß-ßZ«²¹uiÐi»ýž{·Ùê¿çEÒ=à‰ÿŒÒ~0i©¥œÅ®'Z;ý°Ë>âgˆëUÑ?6]˜™.žé{AóöZí\u z!øoF eºÃ©2 kC!pP<û7|Fà¯`r_Y•A^����IEND®B`‚IMAGE 1829 ./arch/monster/elemental/Para/para_ice.157 ‰PNG  ��� IHDR��� ��� ���szzô��ìIDATXÃí—Û‹äGÇ¿§~õ»_º§»g§{vgö6“¬{‰;Q‚DAßÅ}ñŸðoðÐ ‰AA_D‚‰‰³“ÙlÖ½Íf¦çÞ3Ó·ß½ªŽ"(ˆ»aW‚õVT}ª8‡ó9”¼öc|–!ðÇÿ'ÀXŒ Ðö¤mAãZ£0ü©Ï’ŸfóÔ0Œa|±—4n¬,,_»¶|½×ëv†“iöáÆý{ë7ÞÝ>9L„x1�cm�` Úž+±ë^]îÞ¸vóÊwW®\úFo¾{Ñb¿,+ÕíuvΟëünþ½;o­?Ø_ÛJëR1#±Ä³LÑŒYWRâI»ûAïL³ãún”D~cn®u) ÜËÍ$øšŒÂ[l‰`’åœ+ c{¾»|yiñ\èË[—–Ž~{2Êo§ã¬Ÿæe:šæ“Áét4˜”ù ÒœHñï�cmб-±ú…î•ë×.¿Þl·–‚8šï´›mÛN¤ Ð"ng“‘[¹ÇR²ÆÜšë!Ž|˜Zc23„ðæX%n6n’팥%†)Mób0Ží÷÷>Ø|Ü_»óèðÑæ´ÊCA©a¼”¸3·®/|çúÍ•ï-]^xM:^\jCÒ‚˜YÕÒ"GUp—íf;-D¡Û„cÔ€f‚1Ì,FÒ&°mÙ•–¤ ô0×ièùùÎéù‹½{³Ý¿‰×¿ýñQvßj-®Ú«Ëíï¿róòOf»³_ |Ï—Ò"!,²-Kfh? (i LÃ6jH¸6A±„†€e;¶DZaY$˜ˆ ‰ÀóœóI쯒©¼£ýáû2qD§Ó¿Õ˜i^¢ˆe±í¸ˆLe |fÔJCØs]XžËqàÚ€& Ô€cdKq Çq�6°DÐÆ ªʪ‚©+v\oæÂpôÍî½þÛ’`BèZ¶Çõà8Çç9(5ÃÔ¶²�f(c ³¹Ñ¨„4Ë!a¢(9ˆ¾kÄJH­ +…²,`˜1Óši5c¿%§5Çã»ÙdüåºÙ”•cƒˆ  4†¡4C+SWèïíbóáAèÌõ7g°Óï£V šW_Z¹KË^mÒ"!à„�P×ÌŒªR{Y©÷-1¿šylêУ ÔQJ¹Z)*ËuUu²(P9”ªA¶‹F#í¸°m~ i6ÑíÍ£;×E "Tµk V eQ , ÔeAY–Òèèpÿã;ûåÚGý_[îÂ*&…ÙNGéz–e›ª*§º®•Ò*0Z9F+ÒJØ�DÒFYÈ+…J Ç B°FÜh�DPu £**‹œŠ<C6§ãÓḿտ½qû£Ÿÿù½ûol燒@¨ Ê;‡ù_¶Núë‡ou;ÑâÙ^ëV»\™™i,5f’• {A„¶dîïò~Z#ˆlmcçá= övñê««HfZ7$ªºæ|\ž¤ãéãÁàôƒÝÃõÑpr°pòèÁÖñýÍi•'–�ý'H cF’ðmËmGn«w&^>»pæ«çÎüàì|wIi-†yM†G8ÞݳÁÕ—W°xþ¢žLÒû›Ovþx°³ÿîn°Ö?œ|²9ÌFÄ@Á€/è¿÷‚P*S•:éÎæq¶óuW¶-“U¤tvñ<:ͶmãÂ\ÕÊK �#1<=­6Ÿì­ýþŸÞÝ>yT1à ‚�øôiÛ1æc§5׉¾M*¿RŒO©Î¦ ­àI ±ï" C„¾2e6 :3Ñêb·yÞà—?—0€ÀƒÀ^M’†ð£€ .‚m 0j\×ãÙÙöÂÜlcÅ!¢çö`Yè%­ö™F3a‚ãû€°P†4 !¤%!ÃA,¸á£‹$wª¸xn!‘Äq£‘¸g/\‚ªkhc�PÚÀ"×u„!ü0FZVdÙv“6€â9•Œ1™Ùðø¨"UÕ�ÖšTYLót:ÊÒ4«ŠœªªBUÈÆCÎ'ã‰6¬_€’òÊlö·ú[íNg.LšÌÌ8>¬÷·öÞœfÕãÙK‹ ³?<3?¿E1FÃÓ“ƒÝ£Û¹FöBr`¢è“ã“ìãÑèeé¸QQ”ûn<øÅ;ï?ùÙ~¡³®KÝ×_éunHëGZ)ÿhïàîÁÑd=g†÷”<´Üs«OýƒÒ ¤Úì2¥RõxgûàWkw¶ß|<®NA˜jžŠJm‡®%ª¢Ø¹ï“7þúðèOÌPO}à³NF%3f]+i„N3-ÔéVZO¢©qÅŒ…Øé„ž ö†ÅÞqmjïéUøì�ŸOFŸü¯âïdSƒÕ©â?ø����IEND®B`‚IMAGE 1801 ./arch/monster/elemental/Para/para_ice.158 ‰PNG  ��� IHDR��� ��� ���szzô��ÐIDATx^í—KŒ[wÅÏÿq_¾öõÛcÇ“™ñ$΋w(iÅC*”J°H ¢‚U#„`Ô°©ÄŠ ¨ÄEl*¡B$¨H…>’¶LÒ„“:ãÌŒ'óòøy}Ÿ¶#KF 0HÝä§k{céŸïÿýͬ~$ÿ ´‚-LJÊÁ –®&5É[~€^Hïû^@ŸèÿcÀ C¡e£ñÏl߉ïžùÜ™<÷ì¿ÿ/~ûkŸ=ùø±b<kHÎ3¦ª|x2™xêÄìîÓî=òä‰]‡N&‹–Âeë>“ò¿ùÕYU°Ã» ‡?ròÀ3³åÒ§ ;&J™T2ÖíÙýDÚZ,• o¶;v%›Ë˜©T¢ G"%†ÐjwºÁòâÒ{WÞ¾þâ+ïÔ^ìúäüG ôÂ-/€.Žíˆ§ž8µçôc|¾TÚñt"z«Õé2Çu ËŠ•K³;¿TšÝñ\¾þ^,}ùapPSÅ‘\.ñôtiâ›;3Æ‘‰|Ð|,M DÉ©©‰Ù©™Âñ‰\êTD—§„de¡(\7£”žÈ#Uá;„n·C ©°®ã¨ëëÐtŠªª”DFé\æØdÞz¢ºÒ»â„°ÿÅ@Ë‘R8;^ˆ'fg&fK³“Ç'§vœJ¤G¥*§CÏ»½.㜑•H+*Ád1ø!à!šrUÓ@\ $x�]Sõˆ®$$Ï@ÚDàœœŒçO-?^Þ3ó©L.sT7i!DaÈß#@4#¡jˆXq$bQ¨*àù�ˆD" ÁƒÝ·Á9ÇÐ÷@¾ÇzíN}­Ñ{»P`"€O”Óœ<¹ïLiwé3‰d|RUf{!yDP… ]G„ H)À…©éàRà€@® „‚ƒÑ5øA€Às0H¾Óg­Æ†}g~é·óõö+‚a„,ǕҾrþ[Åɉ/(º®LfDHªPT\ªRBp6ÚiƤ"ázˆ$Bš Ì×jh4ð\™T šaÀwx.zívëÖ­;çæ®-ü|¾é,HÆ0Ff-ùq+}R‰˜ºiY¤EL±(„¢BJ‰�RpHÎàú!Âáf oݸø.bñ$\×Am©Õˆ"“I#5áûë÷´67«ÕÊüÙ·ænŸ½ºØ¼>#9Gl¹9˜FR7�©Þ‹Xð{nApF}vkkkk ÀG:—G<OAU$4M±a*ÍÍæÍ«s•Ÿ^úKõ×7ýµg¸Ùîy5»go¾W ÂD8ñá jÐs=0 xÞh®¦aàðáäªán½ŽÅÅ4Vï"›Í²]å½´°°üÚåK×~vi®öRµã4cœãAÈÕ–¥V»ûrvbùi!e\w8ŠBœ ô%Ðu}0@ÁÖVWqãöxİ^_@s¥HÅ- Zïµ7þ|åÇçj/o¸;ÂÍßt:ÎÐí×}×éÚý~ßë÷}·owín¯Ó4Ì ¡.‚áÔ0ð™ëhµZØh¶†eƒ\2ŽÝå=˜Ù³fÄlUnÞ~áÜ…¿jù¡§0†‡”Œ¡Òpnn¼U«^«¬œM&"¹XÔÈêš"ç�c`œé»fò§c¦|JÕ4ËLe¡”gg kŒQë©hw:X_®fÔ(S¦UYí¬c Þw# ‰À�øÀè30ÓRŸ|dæ'Ú_Ö Sgw#™ÉÁ4Í‘Æ( 1H «ËKŒˆÿíâÅ«_ÿÍåÛ2ù à>Ƨ^`꼤GÔcŒ,i˜&qÎ!Ø( |ô΄@lØ–Š^ÌåÓûãbþ¼O m]H�E¢H§sÓå}”Ÿœ‚Á¯ç½žPèf ¹âNd&&ô¸eæÎ$¶@bkÀÅqK+NÏÀó<ø¾Ðè!Ñ!!•QköíìnĶo�„n·ßÛX]q Å"tU…ψ¹®‹^§ß 0´Á ! E‘)?¤aImVç—þÞóÉãŒm÷NÈÐs¨º´°X[YZ7jÕÚÜë.ÿèç^}öw/?s៿ùîµkõùÛëw*Õß/,5^�Úv @ÛgóëöùV³¹_Ñ´¨m;˽þÞ/_½T}¡Þz ¯ñ {—Ö*ш«¯´/WVíʸ¶\툰+©8t ð•|!{¨µÙ}ówª¿xwÍ^¯™G•1&X;¤P‹o×À‡YMXqSMtû~ãN×kÅ·Ëÿf¸‡þavܼ:´����IEND®B`‚IMAGE 1749 ./arch/monster/elemental/Para/para_ice.161 ‰PNG  ��� IHDR��� ��� ���szzô��œIDATx^í—IŒWÇÿo©µ÷év÷xbÏâñàEcOˆ“#"$b9 HD)\""N åÄ… ·\9s$B!,$„,Œ#GñF<ž±gÆËLwÏÒ=UÝ]ë«÷1]ЏDÄ[ââŸTzïRúÿÞ§OoaåW~Œÿ'ÿÏüLÃü4ƒÉ�E_eOG`¤5ü$ÃPS”Jc¤)ýDádÍußúÆ™ñö·ÞüùOß|ëݽþ7Ο\œ™pKc¹ÿ‰O 4ÁfÀb£81?ך›™>|Üv,‡3!4 Ã`ŽÕjM<öì‰ï6Z­9§P”ÃÑ(8qjîþÝÛwþÒ¼xýý«k;Ÿì¥•<E—3öå“ÍW—–¾?{lúũɿÓ² ÍLC"Έ‚Ñ(ùû  ¢aÊ’J" I#ŒÓr©R<ü…³§2Ò'Í¿½³¶ý·¾ö÷£4íE)¤  œV@˜«§æ›?kM5^5L)Ã0 8‰‘ÁQ’" ¨4](AÚ.•êM– „PÁˆXùØüô÷ªõê ‹KéeFìþ`nõzþJ’á~ßÛîlïw6º^¯¦ÉX&0Cµ(Ï–KÎË–eIiZ”q ¥â(BŽò¹åP­VP*—ḤŲ ‚“ÖãRÎblÖ±íLA$Zë¡„N†ƒÑÞöÎÞúêÊú߯][ûÃÍîðŽD±(IyE:#�Œƒ ›s¤ÐHvåÚ¬B Œ èLC¥cH0¥j \š”$ $#A™vƒCØ®u¤9ÙXbL5 FÕN?xOXGÎ�ð,s«þR¡è•RÀà #4UÐ`ùê×ÍW΄„i˜Pà�ñ\\ Ë‚ë80L+ŸsÄ9ž›,C¸i·6wþ‘ 00ÄzF–ÆRè¦`Ti3MP¦Œ*Máùº6i$‰‚Îã¹HÁ�Τ°, ŽmåáÂ0!MLŽ R‚´fßWë[ÎƤåz9ðƒëZ¥}r4éšÖ™‰Lå?KËA·ÛE÷á}ìîîbs«õuDaˆb±וy)„àà\@ƒœÃ9(•"ØæƒÍ›·noþîßœ1dµ¨‡{{Á‡¾7º¢³Ô· ^³M£&7^©\AÑu0Q)£V¯ƒ˜€çù�iÔk‡`J­ÇAã £ L+è4A†, †l§Ý~xóú꯯ßݹðOCE„¦#«óS¥—Ïzcfæð7+µêlÏ´lnÁÍ…òfÔ5'a;€‡ƒÆ#c:Cš$´Û÷ú;íåÞ¸ýûËWVß¿µv?÷8ÖDÐ�ŽÖÙãoŸy~áÝLˆÓ b n·áH~ÜDëÈ4ŠÕ 8–Á9c�2¥(Š¢¾·ï¯ítv>Z[ß¼tï^ûê­•Í@…Î ñ9pÆÀ¬øiw÷þX­—¿Ôœ¬+Wl+c=¥p÷Ö2Õ2J¥J• ‹cBǽç¯uBÛ›Û—Ö6Ú?ØêßÛôBÏÏ4Šœc>Fâ1( àh³pN'×ö¶öQË òDåS§0;3 A„b¹ Gè´»Ë+Ëë¿ÚXï\\?íø‘çe%Î1¦øÙ­øÑHÆ„àÙ’J£ÓqÓ`¿Ó²áVj¨NMÁ±mã ´±zwãÒåÛ®vƒÕ²ÌÃòð'º¤štDc,7YÇHÓSÊ|ƒ1 ±Z­xæë_[zûõÅçNµ~: 7ˆï¥IºÏ…`ZR•å=bš&ä§»\¡P ù……çÎ啟|ñ……w¦]£þØ÷G5ã Ár˜ÐªeO )AY.�a¶ Ë´P,åg%iZ² ~Þ‘˜°÷Ä`�öc¬÷üì7BXŸ8…âh8 7w{½Á0Œ™e;hM±ù­Ò$F ‹R0ûiT '!¤+[áBt÷K¥Áa´›Þbãzãt±XçU€<Eðöv‡Ñ~F>5Á¼T®¬ïÿÉäžÜU¤Žnþê âÛIý0KνVo4 [.:NÖ÷‚‡±îà<ÑÃDA�ìDË]<·4ûÎÜñ™×,ÛªtÛÛ×.¸üÞGk½ �{‚ <z��ºÞ nô.®ürfmûƒJÉ©´Æê­‡Þ²&€³ÇªÀ““åa‚1i"“1<ÏÞ†ÏþòMWc _����IEND®B`‚IMAGE 1751 ./arch/monster/elemental/Para/para_ice.162 ‰PNG  ��� IHDR��� ��� ���szzô��žIDATx^í—ËWÆ¿sëÖ«»º§§gzf</Û±Ç Æ‰ó‚ad+D„øÂÄŽbÍ‚ üe$³‚H’ „qlOäÇØmÏóÑ=ý¬îzß5ã‘F ` N¢lòIG§tOIßOUçVKåWßÀç)†Ñ�¾Tð…:Ìò +­ÿ³žø©à«G÷>‰8Ž¡54€ 5oôÜé©Ó3Sc“ Q” “86[ý½Íf¿÷´ÃígfÎ,,œ:[¯Ú­V·ýþÝYº³µ¶g¢l°'H4péÔès¯¼rþ§Ÿ9syj²6AW (èÂÍV«³©µôNLŽ?[›¨ÍV*GápbvòæüÒò>¼~ÿÏ×6ºk#G‡»�Ð�ª6«\ùÊÉŸ?ÿâùVÇÆ<˶5 Ü´`Ù ©‘FTR·læºmZ&, ‚­½ÖîÝÛ÷¯.¾û×Kk[ €Etü'PvèìhÙþVÑ6=ƒ ¥i†p8�´ÒY&@ЬX*ÁÉÍÇk5”<2Ks š‚?°8sgNìüþN}÷ŸëÐï¤B—¹ñx�‚†ÒI¢Ð‰ã0˜–h• !²¶í à•PôÊyöPÊAJe Ildª©µ†RžiÙß?17óü…‹Ã¿7íÅ«;××7ö6ý8lÄB•ùQöìK‡¯€ ”N‹¦šs~^Y…,ˆ“ä ^ÌÝœÀËÍ‹…xHŒAi@*­bMŒ†1Y-¿0ræÊÂÂüåsg§ŸŸ©ÎŸ(p%ãd¸f©It@�b…¡ˆÅg¢bzAYY–!I3€�aX¼¢×±¡™" 4DР¨�Œˆi `YæÜÈHéʼn©±oÌM¿Z«8Ó:îlöãÖ#€C1"ø©nfQZgZp 9!¤ÕR´m´»]ìmo‚AñGÍiZ6È ( pÃ80&ƒ6® ƒ›°ÌýuF²›Ï8ŽyÑ Q¶{+‡�G""tcÕøé’L³¦c³SŽeÔÊ• óFF‘E!zÝ=­VÐ åÒÀ�Ód0¹Û¶ópà:JÅâþõÏÁœ-D~¯û_�GOb©À¤wUšmÙœxN}Rjeí××w‹H¥Êaz¹©‰¢7×%Ààû“àyM’¹¿x�ešˆ”Vc·QçøâDð…–·‚·¡XцéO©×3¥‹¹¡.…J¥N Ým8Žgz¦Ø `&�€A€2¡‡TzŠ4H¥™ê3�x@ºÞI–oÝmüJ º:RË౺¹k‹ïb{í!’8 ÛFckk]ì6#t‡@š�ЀÍN€2KI&‘îîµþŸ8Ž¡L~Rol7V8Ëâ‘ñ /)£¾þ�A¿‹Ñ‰)ŒT« Öɡ NÛ‚“‡ƒiš"ðýÎÖúÆÒÒ¿nýææƒö_`3àÜ´÷M‹’ït¶×K®Åõdµ‚±¯]B–Ä(=H©ö Hˆ(i¶™*¥ Êc§™F‰?†ÍÆNóúƒúÖÒr½y§“)q,�Nd$ŸÓ"úr*3=ôû°cÕêA¶ ŒC½¾º~óÖ­µ_úÃd3Íd"… Â8‹âDÄÃD¤ý( ûRÁc Ž ”VQÇÌ(In™PJ ºÜ-¸°Ü8#$a@IN !ª÷Ö[o?ð“ðã~͹ùÿ7)@÷éZ–Šç&�Ì€i>Úó–•gÇÕ³§Ÿ:}嵯ÿôÒK ¯U9£O:’}Rº¦Xf¹¡‚FšfP†ÓqQ(W053‹s_:¯OyêÂøxù²c{Ìäñ"�ý »¾|sfÖžs\w> ãN…5Mäò‚§Ç'ªpm I€{+uŠ‚á(ŒOp¤T![Ù‰Þâ¼Ù+zî‰(JÚà ý¶Y,¯63W¬zÐ&€@£ßi!‚HkÈO À B?SÁ{´XŸ÷„{pEihÏó^¯U^.jÞ^[¥vc×o÷‚•HêôX#Ù“*Öç«ö…K_=ó³^¾øÝÂȨ“†ê÷êï½ý—?¾¹=¸f}v燷;ÉGK×W»|ãöÕÆæFcgkçÚý{[¿Ûl…·M¢Ïþ`báæn¸øî?îýâ½w>üÑßÞ¹þ“Åo6{*þ4$´†ÍˆåY)ý¨gŽ ðyê‹Ãé¿ÍZÈÖÇÕ����IEND®B`‚IMAGE 1719 ./arch/monster/elemental/Para/para_ice.163 ‰PNG  ��� IHDR��� ��� ���szzô��~IDATXÃÅ×IoYðÿ¹÷Ö<¼1ϱqËN' ¦è´D#Á‚]ok6,ù�ìù"ìÙ Roh$H tPǸ39΋8~ïù½ª7ÔxqPš ít'ÊÙ”T%Uýtï¿N¢øÝãuÃk.ñ¬ ­¡4��€Ë msöêµ1Ã…õîÆ©•ÎJ£…–àj’Ìwv{×ûÃÑ`Qœ!²9rc ÄŒ½€�ðÎFçÛßùîÅŸ¬­¯}#n5ýÀ÷µ¦éì“ík·þxãÖÝ[ܲøÊÉn˜Ïæ³on÷¯õû{Y-_d•ž��M—·—O†? ëûZ•ެ SÛâ(Zm7ã në½soO-ËæNËÍÙìÔ¹µ­Õ+Wõ—·.ï̪,dôÅ�ÀãfÕbê[Ež9³41¤5ª²Â|:5 †”Á ˶N›c>›¢¬äʉ^ûüÅ‹oœÕEfÉnÿâ~.3ïî¬^zâ¤CºÛk°÷ÂÐ?mŒAU–X,˜Ïg(² Âh6[hw{ˆ Ø–Ç‚/.[§:ŸŽGók¥6ê je®©ÛŽm.Æ“u c ´1ð|q³…¨ÙB³ÓFss@Œƒ1!ØINºO§›;‡Ù'zq€4T«Z-Ô+œÉ¯º–`­vÂqÑl4„!×…ãz‚AjÀhÀÀ@* CèÙ‚lOËÝtšFRi秈€Lá+•û¼¾…îr£ÓEV”àŒ#ŒcxžÛvÀ¸€c©ÈÁBïüR¯u.ô¸J†ÓíA)kç)™x*àQK‰}XØBoxÆÒ<+&aÏ÷a9.4 pN�µŒÖ€QGÿl«ÓxÃ&™’›Š'Ï€J£^”æ†ÐR‡¾x[Ê:L’$,H)Ñ}8ŽÆ  €Ã – Zx®³Ôn†‘ÇËóÁÝi‘ZmÇsV�`D(5j]›a¯.èkʈã†Z+0ˆ!ƒg3®"m�m ¤Rð\ûd§_jFö²šÎnî&ÅH!ž x„˜I$M[¶{­KÆvWfi‚ÅxY•`‚°lcàŒÜ‚m[`ŒAi¥4!rl~VÕe><H>ž×ºdDŸx„8Ló‰‹|#joçEÁï|º f4\׃°,ãPÚ ÖÄËçÄŒ´1PZ¹²*–¦ãñýƒ´º> ×]߯‰Ø~ÇêÝ8Žl-kphX¶ Ág ÆÀé( œÃ–�xd„n1OõƒéŸs…¹8N¿v°v2ø^§eÿ š'a»›õõup£Á‰0ORJtx‚£ - ¶°@ƒƒ-TU¡Ûë.Ξ?.k ˆ¸@}A×òM]צΈ‚�¾ïA@˜ÏfPêaGÒZÁ›Xs´Bh%AœCÊ4 Ÿ;|¦3j£Ë²*„ð•Ä9¼0†„pEQ"Nq8:„2@[¶e! ]„ ÈÅƒé”æ‹ìp4Jÿ0ÉäÁ±0“YÙÿJí$~àùœsCD¶0Š„!b­a{>ʲ„¬%‡ŒDÄ y†d<ô·û¿¼µ}ð›a¥ó€Ññ�D„Y‰kYi®6ZÎ çR€ Ç…ãpl nƒsI’.>¹ò¯ßÞÞÞt—zë~ÅUžOîl÷ÿô¿ÿçò‡ýÉnpÔ�ÖØ™ÌôÏWW½SÂqÎE)•Ñ n»¦ÕíáDÇC^d€"ËÊí›wß¿²¹w¹Óð¶c9EY—£ÉbÒŸWE,Øç¥ÿ_•F}s¿øµ%‰8«€ny^ðÃÞÊ©¯wzž9Í€‰ SM“ƒûj:I³Á¢ÊFY=~ŸÇþB�N„´Ö‹v’ß "f3¸ 4_ZYþi‘½Ù)B`Rwvnãîݽ;Ã$¿õ¥Æòg¼ŽGóôBšìúÎè¯g¶¶îuz½nrúŒIÓ”öïÝ3ûû£gUŸ½\ÀgÇ6´Ð÷îß^½ßßy Z1©4ÆÃá½ÝÁãBN¦ç�`®0Žóß%‡“oFa´‘Î×·6oÿlóöøƒÚ�áÕ”¾¹Ÿ¿ïÿs»èï® ç[ŸîŒþ¶›ËÅqÇrú²?§…1ð °9…2R󿬼ô>õCE  PF>ÔãÖkÿ;þ/Ú *Å·W,›����IEND®B`‚IMAGE 1517 ./arch/monster/elemental/Para/para_ice.164 ‰PNG  ��� IHDR��� ��� ���szzô��´IDATXÃÅ—KoÇ…Ï­GwO?æArHZ!ZHÙVä †@@‚ld‘M€ü€¬¼ñÿ òâE¼ ##äX²K„h2â›Ò<8=œžž~TuWeaØ+‹“6TÛîÅW÷ž{ê\jþôm¼ÈÃð‚86€±�#4!µ€±Mξ{€™±¸ê ùæk×n__¿zÓ|7ËËÑ“ãÇ6ö†³ª¹HªMÁ¿]�c-º’ÉŸÜYûÍÏñæ;ë7Ö_ ¢¦àÒMO'éíí÷Ÿ=t 3è N6ïoÇ'#mì7©Îó@Xm;?|i%|G ú™R ®Ö Î[Q3¸zûG¯Þ}õέ±„lÇ£[ŸoöÉý÷îÝßþóNª²Ñå�$‚êïë2»=ŽO ¤„V%`ak�¾çEŽçEd 8ÃÚõëWîHŽ×U63ýûûï°ó�p÷Ú_ûÁ‡¾zÕ¯¸M²*ÏP© ×C»ÓFgi ¤”‚“爮*2êõÿ}’WNtq�€`*c}Êßp¾ç¸¤àðý�Q»ƒ ÝA{q€Ì#�,/‹Åao°y<Ltq �™å{'‰ùÓ4͆p\*-ÁCBe,´6Pp¤&Û^XX¹±¾òËņèZk/gD¤OKñ·JãA+€ºÂtš ªkpXÀ<ÁÁ„@EìʵջkËáëê2ø² ÊRÂÊÜ©¼Udi˜ÌrQ Í0„Àu J£T ª,ÂÙi<è÷&÷Jua€/ÄH†,Å‘‡› sKœ¾é6à: ÖÒ¼€V%L¥ežNÙñÑÉ'y5dgˆñ\�PL–[>µ–ÞlÛEžƒ /Ñð< (¥`+ [×(м1è ?}:Ê7è €¹,K[˜^\þÃ0÷C#³»µ‰ÇîáÙáT6jÆ�É9j,ãˆZÍΕ•öCɼK¿†’[ƒiÿ`çð?ª(²ÉtŠÇ˜†(Òª(À p%‡'9®ƒ(ÄÒRëN»ÁWíe’Úà••f»ºÝ:=e‹‹Kˆº«ˆG#Ä£¦Ó)êÊÀXcœs×C«½Ò‰œ›g™â\�K’Ónt½ºý¶Ê¦¾$‹F£ÉiŒ2›a–gPZA öÕ8JéX? à pβ1@ƒ#t¥¹[ëâek­e¶F �F—0U…Zkpb°ÄàJ‰Úsø¾^ó,Gž `V™z2IêèJÛ¶à:–—W9ÊRAWªªCœ 8ŽÃ]GzDæ9}˜  0¶ìõÆŸwÛNêy^(„DE`B ª4ªªF®+@p.�kaÙ�D د˜KœX§ö£$-¶@D`.$L]“'‚àž#áV:+r50g< s€qi·âDÿ…„÷Ìiø™*U"8§JW¨« ‚3HÇp$,€ºÒH&ÓÍá8ÛPöùc0W � ­0Ù:Êþ`høY3ô: ¦ýòz÷w­Vt³, [Õ5‡ 9 ¦5¥“¤¿»ûô‡ÃÙ¶<C…sp"ôrs0ÚŽ$k04Æ쮭][7€L&¸®—òäÔì?Ùýû'ÿÝy÷ ÓùYñeë/o¢ ÌXÛÓÝÃø¯Æ²£Îâùž ]æ8MŒâØîïì=é'ýóê…Ã=#“ÞìáÖöÎF™gp>˜t�"¤…Bš—JÐù™ìÂ�`ªípg¯÷¯þÓ§Ó4B—%tYRš¦Éé$û_i ¿ÓÕL[”½AúÏÞÑñF:Ž©HšŒcÓ?î}Ü$ŸVsd²sóÀymH‹:–FM¹€›å…ÚÝ9üàÁƒÍß?Ú 9·’—ÝŽ•µ8‰ëKÁZz Ó´í fûÊZ+æˆåô¢×óÿً݇?´·[����IEND®B`‚IMAGE 1434 ./arch/monster/elemental/Para/para_ice.165 ‰PNG  ��� IHDR��� ��� ���szzô��aIDATXÃÅ—KoÇ…Ï­êîêîé× _#q$š”m16,ËŒ$H$@Ö^e—M² ¼ðr~‚À°$C Û±d[Q,šŧ$rf8äÌô»»ª¼ mdáHch`_ W](|uëÞsêRð«¿áç †Ÿ9ŒI&JA*Àá€ý4�©ÒиÖš+K ‹AàyIZŒ66ïÞyÔCO`X+›>€Òxýü/ýÛk¹¼úÊÛA³åƒñÁÁîÞ_oÜãåqа¶ýxmoÐïVRœM �À¥ÈZ^}¹ýÞbgþO~àÙÜ ÍMƒ–_^ºrîÂù? Ç¥t<:zsýá½Ïÿ}ïƒ[Ÿ®ÿs'.S—Ñ‹x6®sVÿ1‰Çv¿×ÕJÄH{ŽãX¶}AÖ%H« ‹óWÞ¨W¯ †ªûÕÞ�ô$�\t®ÿߟ@`È×Z¡ñŽešNY䨋¶¢&üÖ Â(‚eš ÆH˜|¾LFÙîÎáí¤ÒÙTÚp”ÕÝÁÑñq)Obp"pÓ ^ 9cÁ ¸~�7Ùl{îÚ|Ë])µž†F%=ªk¬Ù ˆóÓƒ— EuºÒ†iéF¬,ÌúWm"öÂ� ë¥9n3nŒ‹¢Äp4†Ò€†”5Ѝ @ Æá8ŽEU× 1•+P`Å£§ñ­ÍõþÓ}êâøäª®À´4`òïvc0…` N©èåôÍw×>žôa»cZ ¾@¸L!`²SÍ`D09‡- ß6ÈB1-)f|tÓ‡uÚ{'ÉóK®çé¨Ù„6á¤âÐg�–ÉaÛÂ38³93Ò� Ѹ3sî¥O?R»ë°³v²ÌÁÐúT3 F â n2Ðdf1@®žú0­ømC¸'5q誄ÉÙ÷¦tz�L(„“T øÝ«ç/.//® Ì0j"œ›‡ÁùÿlBJ£– ZÉJ+-§°ÙÁÛo]zwe¹ýW™*3~�pR¶¤qväZJdy9Êk•M¥ �€|ƒÉ· «Ù¨ÙÒŽ ˆ"˜–�}€ÖJÖȳ⠯T:µ $YY÷û¥%:1{®¿5 aÛ`Œ 4�"h­P…L“ì(¯U>5€ãRÆ»;OÖ²8®lÇAØl¡á°- œj ”µB^V(ˮ熾eˆ©h°d¿›ÞêõŽv•”…lÇ…"Î�‹iȲ€„üµ«WÞ\é´.ÖÒD�D„£Tß}Òÿ«”:õƒ¯×0Å©NTe h…¥•ýÊåW—æç‚%5­ €a…ƒÝƒìýªÖÿ) ˆÃ�3€²Ò蟌@ÂÅÌœ‡Fà £È¿dh*�8{Ç…Ú¯ŠzOÖ5꺆¡T€.x®ƒv§ f�˜Ûœk]l£ùB/¢¤"²¹53×\ö<7à 2gˆQ»aF�%€4'vrÔ“Ö·>êÇe÷Y‰øQ�RC Çå†ÌÒûñÉðîÞÞ“;ñxä7çæÖ vö­jŽ“Á@o<xxóñQúðY¶0ñ`�ŒƒR¦ÿ¸·söë§· ç÷×/íóíÕÙ…Y§õbq tFÐÍ©ÕÀwaÁg …ÒzX©tk§wswkg}0QR�•”i%+­‘³ç˜â ͆6»Éúý{knomÅ'ƒŒ’t<âà°·Ñ?N6«çhÁªŠX¢ÐIúÔsX«áŠ¥"ͲíÍ­/¿øì«¿þßý•BýÌŸÆxž(kç¼Ë¿¸Üù-¬bg¯wÿ›íÞúvReÏӾϠo•qôÎ����IEND®B`‚IMAGE 1517 ./arch/monster/elemental/Para/para_ice.166 ‰PNG  ��� IHDR��� ��� ���szzô��´IDATXÃÅ—KoÇ…Ï­GwO?æArHZ!ZHÙrä †@@‚ld‘M€ü€¬¼ñÿ òâE¼ ##äX²K„h2â›Ò<8=œžž~TuWeaØ+‹“6TÛîÅW÷ž{ê\jþôm¼ÈÃð‚86€±�#4!µ€±Mξ{€™±¸ê ùæík¯]_¿zÓ|7ËËÑ“ãÇ6ö†³ª¹HªMÁ¿]�c-º’ÉŸÜYûÍÏñæ;ë7ÖoQSp馧“ôáÁÖöûLJϺ†ô'÷Ž7ã“‘6ö›Tçù� ¬¶¾´¾#ýL)Wkç­¨\½ý£Wï¾zçÖØB6ŽãÑ­Ï·?ûäþÆ{÷îoÿy'UYÈèr�’�Aõ÷u™½6ŽO ¤„V%`ak�¾çEŽçEd 8ÃÚõëWîHŽ×U63ýûûï°ó�p÷Ú_ûÁ‡¾zÕ¯¸M²*ÏP© ×C»ÓFgi ¤”‚“爮*2êõÿ}’WNtq�€`*c}Êßp¾ç¸¤àðý�Q»ƒ ÝA{q€Ì#�,/‹Åao°y<Ltq �™å{'‰ùÓ4͆p\*-ÁCBe,´6Pp¤&Û^XX¹±¾òËņèZk/gD¤OKñ·JãA+€ºÂtš ªkpXÀ<ÁÁ„@EìʵջkËáëê2ø² ÊRÂÊÜ©¼Udi˜ÌrQ Í0„Àu J£T ª,ÂÙi<è÷&÷Jua€/ÄH†,Å‘‡› sKœ¾é6à: ÖÒ¼€V%L¥ežNÙñÑÉ'y5dgˆñ\�PL–[>µ–ÞlÛEžƒ /Ñð< (¥`+ [×(м1è ?}:Ê7è €¹,K[˜^\þÃ0÷C#³»µ‰ÇîáÙáT6jÆ�É9j,ãˆZÍΕ•öCɼK¿†’[ƒiÿ`çð?ª(²ÉtŠÇ˜†(Òª(À p%‡'9®ƒ(ÄÒRëN»ÁWíe’Úà••f»ºÝ:=e‹‹Kˆº«ˆG#Ä£¦Ó)êÊÀXcœs×C«½Ò‰œ›g™â\�K’Ónt½ºý¶Ê¦¾$‹F£ÉiŒ2›a–gPZA öÕ8JéX? à pβ1@ƒ#t¥¹[ëâek­e¶F �F—0U…Zkpb°ÄàJ‰Úsø¾^ó,Gž `V™z2IêèJÛ¶à:–—W9ÊRAWªªCœ 8ŽÃ]GzDæ9}˜  0¶ìõÆŸwÛNêy^(„DE`B ª4ªªF®+@p.�kaÙ�D د˜KœX§ö£$-¶@D`.$L]“'‚àž#áV:+r50g< s€qi·âDÿ…„÷Ìiø™*U"8§JW¨« ‚38ŽáHX�u¥‘L¦›Ãq¶¡ìóÇ`®�@Za²u”ýÁÐð³fèuLûåõîïZ­èfY¶ªkH‡ 9 ¦5¥“¤¿»ûô‡ÃÙ¶<C…sp"ôrs0ÚŽ$k04Æ쮭][7€L&¸®—òäÔì?Ùýû'ÿÝy÷ ÓùYñeë/o¢ ÌXÛÓÝÃø¯Æ²£Îâùž ]æ8MŒâØîïì=é'ýóê…Ã=#“ÞìáÖöÎF™gp>˜t�"¤…Bš—JÐù™ìÂ�`ªípg¯÷¯þÓ§Ó4B—%tYRš¦Éé$û_i ¿ÓÕL[”½AúÏÞÑñF:Ž©HšŒcÓ?î}Ü$ŸVsd²sóÀymH‹:–FM¹€›å…ÚÝ9üàÁƒÍß?Ú 9·’—ÝŽ•µ8‰ëKÁZz Ó´í fûÊZ+æˆåô¢×óÿЦي“cà����IEND®B`‚IMAGE 1719 ./arch/monster/elemental/Para/para_ice.167 ‰PNG  ��� IHDR��� ��� ���szzô��~IDATXÃÅ×IoYðÿ¹÷Ö<¼1ϱqËN' ¦è´D#Á‚]ok6,ù�ìù"ìÙ Roh$H tPǸ39΋8~ïù½ª7ÔxqPš ít'ÊÙ”T%Uýtï¿N¢øÝãuÃk.ñ¬ ­¡4��€Ë msöêµ1Ã…õîÆ©•ÎJ£…–àj’Ìwv{×ûÃÑ`Qœ!²9rc ÄŒ½€�ðÎFçÛßùîÅŸ¬­¯}#n5ýÀ÷µ¦éì“ík·þxãÖÝ[ܲøÊÉn˜Ïæ³on÷¯õû{Y-_d•ž��M—·—O†? ëûZ•ެ SÛâ(Zm7ã në½soO-ËæNËÍÙìÔ¹µ­Õ+Wõ—·.ï̪,dôÅ�ÀãfÕbê[Ež9³41¤5ª²Â|:5 †”Á ˶N›c>›¢¬äʉ^ûüÅ‹oœÕEfÉnÿâ~.3ïî¬^zâ¤CºÛk°÷ÂÐ?mŒAU–X,˜Ïg(² Âh6[hw{ˆ Ø–Ç‚/.[§:ŸŽGók¥6ê je®©ÛŽm.Æ“u c ´1ð|q³…¨ÙB³ÓFss@Œƒ1!ØINºO§›;‡Ù'zq€4T«Z-Ô+œÉ¯º–`­vÂqÑl4„!×…ãz‚AjÀhÀÀ@* CèÙ‚lOËÝtšFRi秈€Lá+•û¼¾…îr£ÓEV”àŒ#ŒcxžÛvÀ¸€c©ÈÁBïüR¯u.ô¸J†ÓíA)kç)™x*àQK‰}XØBoxÆÒ<+&aÏ÷a9.4 pN�µŒÖ€QGÿl«ÓxÃ&™’›Š'Ï€J£^”æ†ÐR‡¾x[Ê:L’$,H)Ñ}8ŽÆ  €Ã – Zx®³Ôn†‘ÇËóÁÝi‘ZmÇsV�`D(5j]›a¯.èkʈã†Z+0ˆ!ƒg3®"m�m ¤Rð\ûd§_jFö²šÎnî&ÅH!ž x„˜I$M[¶{­KÆvWfi‚ÅxY•`‚°lcàŒÜ‚m[`ŒAi¥4!rl~VÕe><H>ž×ºdDŸx„8Ló‰‹|#joçEÁï|º f4\׃°,ãPÚ ÖÄËçÄŒ´1PZ¹²*–¦ãñýƒ´º> ×]߯‰Ø~ÇêÝ8Žl-kphX¶ Ág ÆÀé( œÃ–�xd„n1OõƒéŸs…¹8N¿v°v2ø^§eÿ š'a»›õõup£Á‰0ORJtx‚£ - ¶°@ƒƒ-TU¡Ûë.Ξ?.k ˆ¸@}A×òM]צΈ‚�¾ïA@˜ÏfPêaGÒZÁ›Xs´Bh%AœCÊ4 Ÿ;|¦3j£Ë²*„ð•Ä9¼0†„pEQ"Nq8:„2@[¶e! ]„ ÈÅƒé”æ‹ìp4Jÿ0ÉäÁ±0“YÙÿJí$~àùœsCD¶0Š„!b­a{>ʲ„¬%‡ŒDÄ y†d<ô·û¿¼µ}ð›a¥ó€Ññ�D„Y‰kYi®6ZÎ çR€ Ç…ãpl nƒsI’.>¹ò¯ßÞÞÞt—zë~ÅUžOîl÷ÿô¿ÿçò‡ýÉnpÔ�ÖØ™ÌôÏWW½SÂqÎE)•Ñ n»¦ÕíáDÇC^d€"ËÊí›wß¿²¹w¹Óð¶c9EY—£ÉbÒŸWE,Øç¥ÿ_•F}s¿øµ%‰8«€ny^ðÃÞÊ©¯wzž9Í€‰ SM“ƒûj:I³Á¢ÊFY=~ŸÇþB�N„´Ö‹v’ß "f3¸ 4_ZYþi‘½Ù)B`Rwvnãîݽ;Ã$¿õ¥Æòg¼ŽGóôBšìúÎè¯g¶¶îuz½nrúŒIÓ”öïÝ3ûû£gUŸ½\ÀgÇ6´Ð÷îß^½ßßy Z1©4ÆÃá½ÝÁãBN¦ç�`®0Žóß%‡“oFa´‘Î×·6oÿlóöøƒÚ�áÕ”¾¹Ÿ¿ïÿs»èï® ç[ŸîŒþ¶›ËÅqÇrú²?§…1ð °9…2R󿬼ô>õCE  PF>ÔãÖkÿ;þ/Ú *Å·W,›����IEND®B`‚IMAGE 1751 ./arch/monster/elemental/Para/para_ice.168 ‰PNG  ��� IHDR��� ��� ���szzô��žIDATx^í—ËWÆ¿sëÖ«»º§§gzf</Û±Ç Æ‰ó‚ad+D„øÂÄŽbÍ‚ üe$³‚H’ „qlOäÇØmÏóÑ=ý¬îzß5ã‘F ` N¢lòIG§tOIßOUçVKåWßÀç)†Ñ�¾Tð…:Ìò +­ÿ³žø©à«G÷>‰8Ž¡54€ 5oôÜé©Ó3Sc“ Q” “86[ý½Íf¿÷´ÃígfÎ,,œ:[¯Ú­V·ýþÝYº³µ¶g¢l°'H4péÔès¯¼rþ§Ÿ9syj²6AW (èÂÍV«³©µôNLŽ?[›¨ÍV*GápbvòæüÒò>¼~ÿÏ×6ºk#G‡»�Ð�ª6«\ùÊÉŸ?ÿâùVÇÆ<˶5 Ü´`Ù ©‘FTR·læºmZ&, ‚­½ÖîÝÛ÷¯.¾û×Kk[ €Etü'PvèìhÙþVÑ6=ƒ ¥i†p8�´ÒY&@ЬX*ÁÉÍÇk5”<2Ks š‚?°8sgNìüþN}÷ŸëÐï¤B—¹ñx�‚†ÒI¢Ð‰ã0˜–h• !²¶í à•PôÊyöPÊAJe Ildª©µ†RžiÙß?17óü…‹Ã¿7íÅ«;××7ö6ý8lÄB•ùQöìK‡¯€ ”N‹¦šs~^Y…,ˆ“ä ^ÌÝœÀËÍ‹…xHŒAi@*­bMŒ†1Y-¿0ræÊÂÂüåsg§ŸŸ©ÎŸ(p%ãd¸f©It@�b…¡ˆÅg¢bzAYY–!I3€�aX¼¢×±¡™" 4DР¨�Œˆi `YæÜÈHéʼn©±oÌM¿Z«8Ó:îlöãÖ#€C1"ø©nfQZgZp 9!¤ÕR´m´»]ìmo‚AñGÍiZ6È ( pÃ80&ƒ6® ƒ›°ÌýuF²›Ï8ŽyÑ Q¶{+‡�G""tcÕøé’L³¦c³SŽeÔÊ• óFF‘E!zÝ=­VÐ åÒÀ�Ód0¹Û¶ópà:JÅâþõÏÁœ-D~¯û_�GOb©À¤wUšmÙœxN}Rjeí××w‹H¥Êaz¹©‰¢7×%Ààû“àyM’¹¿x�ešˆ”Vc·QçøâDð…–·‚·¡XцéO©×3¥‹¹¡.…J¥N Ým8Žgz¦Ø `&�€A€2¡‡TzŠ4H¥™ê3�x@ºÞI–oÝmüJ º:RË౺¹k‹ïb{í!’8 ÛFckk]ì6#t‡@š�ЀÍN€2KI&‘îîµþŸ8Ž¡L~Rol7V8Ëâ‘ñ /)£¾þ�A¿‹Ñ‰)ŒT« Öɡ NÛ‚“‡ƒiš"ðýÎÖúÆÒÒ¿nýææƒö_`3àÜ´÷M‹’ït¶×K®Åõdµ‚±¯]B–Ä(=H©ö Hˆ(i¶™*¥ Êc§™F‰?†ÍÆNóúƒúÖÒr½y§“)q,�Nd$ŸÓ"úr*3=ôû°cÕêA¶ ŒC½¾º~óÖ­µ_úÃd3Íd"… Â8‹âDÄÃD¤ý( ûRÁc Ž ”VQÇÌ(In™PJ ºÜ-¸°Ü8#$a@IN !ª÷Ö[o?ð“ðã~͹ùÿ7)@÷éZ–Šç&�Ì€i>Úó–•gÇÕ³§Ÿ:}嵯ÿôÒK ¯U9£O:’}Rº¦Xf¹¡‚FšfP†ÓqQ(W053‹s_:¯OyêÂøxù²c{Ìäñ"�ý »¾|sfÖžs\w> ãN…5Mäò‚§Ç'ªpm I€{+uŠ‚á(ŒOp¤T![Ù‰Þâ¼Ù+zî‰(JÚà ý¶Y,¯63W¬zÐ&€@£ßi!‚HkÈO À B?SÁ{´XŸ÷„{pEihÏó^¯U^.jÞ^[¥vc×o÷‚•HêôX#Ù“*Öç«ö…K_=ó³^¾øÝÂȨ“†ê÷êï½ý—?¾¹=¸f}v燷;ÉGK×W»|ãöÕÆæFcgkçÚý{[¿Ûl…·M¢Ïþ`báæn¸øî?îýâ½w>üÑßÞ¹þ“Åo6{*þ4$´†ÍˆåY)ý¨gŽ ðyê‹Ãé¿ÍZÈÖÇÕ����IEND®B`‚IMAGE 1557 ./arch/monster/elemental/Para/para_ice.171 ‰PNG  ��� IHDR��� ��� ���szzô��ÜIDATXÃÅ—[o\WÇÿk_ÎýÌœ9s±Ç1¹8ØŽ” Ò¤mR„ªòÀO<õ ¾âûð†ð€ÄM%¼´P UˆZ;Ž=±Ç·ÏxΜ9÷½yp"•¨ªÇÔUÖãÖÚÚ?ý×e¯Eµ‡?Åë41Ó¤T¨ F7BÇ‘’‹¼Òå³át6)*]ü›˜(õÐß}°þ£Û·×¾Woqy²ýìù£þòá£?=Ù?¬ÿ?7—ï¥CC’÷àÎÒOî¿yççË+×~¸x¥{wuíæÛ÷î­?X_¹ºx½.#›ë¢Èrµ7Ë “Ñ%Xt}ízð³V;¼+m†4P”%1&0øÎÊêwVׯ¿»Ðöo²8:Ü<ž$ÑåØL·–Cñ¾_ó®HÄ* Dӓɳ$¥Ò Œ³5Ûµî9&kèÓÑæÎ89æsBœ �¥ÌšHßs=k]ƒ¦)LÃD#P p<†!áZ†éØÆª*vÜ||˜Vñ<Jœ Phä¼H–MÛ6ËD»Ý†´´›C )MÐ S©²ǽƒãè?JC}m�MTIP~ãjóÏ÷—|ßG³Õ‚å×a;64�‚ƒjè2³¦£ÓO{£ôPœ£Â¹� .UÔrhÅsûAØä~#„ëy0m•þB´* UUÒ].È¡,ÝêÌŽ¿ âü8ÃÈE™y®øÐk„M8¾Ã4!ƒiœyey…4Í ´6k5o­ú¾‘¥['ññ¸Tø²€5ËíŽÿžë»WüzŽëƒ )$ €PEY ª$g¦_÷Öš­`¹áˆ¢ˆâƒÝ8O_…˜ €�¸¦LºÝæ SÙ}Ià¶çƒ É•– H“Ðúì#˜žïÞZè4î¶Nh¤Éþö0|1$s†�Hò2 }›™¾ŸGã°æyàR‚ˆAi ‚� Ò°Á¥Ä‹‡HÖv]û»®%5ž>%Ç/Ktn€X)ÔK;­ÚÛªÊ× ` ‚A2N`!%„àB€sb̲L¹Ê©¨Ï£Ï’rÀ‰æDˆâ,éÆízà= ­^ >“›* ê,h–ä0¤„fàŽeÂ0¤ÉßžŒNúý£è T‰‹|±Òånï`ß5‹Òh6e2› ‡@UªeQÂöZг¼0L€qpË€`¤O›M/ ëË–8äÓBáB�œHOâ|?›Íbê,ØR h]a6PU’,GP€RœÃ÷M8äQ¤–šŠª*²¼ˆµÖlîä:#(3,[Õƒ�Íö Ë‚ÖežÓìt\èª,Ê¢pTUÀ– ºfK” ”e)NƧU¿ô×ÞÞèw“BÅœèb�€sž[ŽWzõ�n=€íz`Œ!™Fz{cóÉñg;¿ï.-ÜlvÚ7Ò(Z›Uª Ožn<ûÛ'ü«Ïž>zù[^X›ZŽ“ÖƒjA×uaH©iÒno7ûèŸÿ2ûpãy·]_\Z —=Ï ’¢*N†§{[;‡ŸoFƒ xY¢W ¬†5mu:ÔîvuÍ÷aš@·tž—×îlî½ñë??þ×ã£øÈ~Òÿ7!Õ• ^•]T€¬Â^©ù§~£©ÚW|tk@Û–CŽ[wÖ;o=|ãÇk Þ5yÖƒ �D°ሔ œdzpt8úÃl:=¶�r_ÈH8ëKa3x³Û©½ÅÏŽ.a"zÅJ�yO| ^½yK»5c\ƒ‰ÂÉ`„Ùé‰{Ôï÷vvGr…âÒ8“j<û\§kJ©›i’#™Fˆ&äÉ”ìö6·L+=»t€—myç³L•mñ5ÆYGU%åiBãÑ(ÚÚìývóùøƒ\!ÿF�� ×P£qòÙlȨ2UY–“ñéÓ­Þo>yÜûÅö$ï‹9†Rú:»a¡5lFâjh«Q³›U¥ãƒá´¿å§ó.(ôº—S†×l¯à¿#çÕ6–+§����IEND®B`‚IMAGE 1466 ./arch/monster/elemental/Para/para_ice.172 ‰PNG  ��� IHDR��� ��� ���szzô��IDATXÃÅ—]G…Ï[U]ÕÝÛÝ3Óž¯Ýe=» &ò…e#ÉBÈHGpâpÉ?àE‚«(øŠHÉEÈE>Vv€5É¢$^³³öÄ;ߟÝ=ÝUÅE¼(r̬q®KêG§ßª÷Šnýëhª F°�^TbÕƒm áz3Š[;õ­Z9d'O;o>éicmÈÙÿ@[‹mW8·oîýìÆ«×~±{åå{—/³ñptð½»oýá·öÿx2ËÑ9 V�p¹¶qí•«­ß¾ôÝÖ뵘ÇU­fóºð~yƒ üéÝûwï}9­ ÁÕwnþ×CŒ€VÍýùËWv~W«®ç*$™.…Û,Ç•«qäÆ|1í<ìN{bÙX €,X«æÞÙÝm¾¦¤âi¶Ät¾Àb:C¶H¡‹¼æ¸ÎuÎl% ?iO²³"ÄJ�ÀfI~³Qþ ŽP Q ÕjA bÜuÖJÆ£Nûñàž¶0«�¬ôÃ,`ç‹åñd<™º€ïû¨Ä1ʵ¥ªDT)£ÇöR­o]nþ´©ÜZ\�a8]ÏI×UŠBßGÉw!@�”|ÏC†hl5oîlWn9º8��ãÌ<Í2ÝVÊ…e …±Ð 5 8 ‡#WÊõ½VýNcCÖÌ .¬|g’£<7GÄ™Vkp�’Ä�k" ×Ul{«~ko»t£¸¨!€¹µÅN$^ÙܪÝKeÇ‘\((—¦³Ù‹4gTrùdzøQÚûO7be� hT"玆ã8g`Üc@žY–"I38BˆÀÛå0I¯3¸×IóLýˆ•,€Zäù•€¿æº²Á¥‚%€˜c Œº(`Œܕʩs½ì»“φK›+*žÃBÏþØšå!¸”Ž€à Ä)(°Ë<‡à¬¶á;/Ùe:éõ¦‡¹>7��äy¡¥YüÀáÅ«¾§(ð}(WÁ€ô„ï)cÈ ÀBpj2›WG½ÑÁ“IvŸsa-€LÛ\™ìj´A·‘à‚Cºˆ 0ÎAD�qh@c ÄNõt6ÉNŸŽ÷Sä\yà«9 ÐH‘[kÝA÷¾çÁq$”’�ã`Œ ÏõÀ9‡p ­½ÖÖj‡­a/éýëmo bÌzA„js ÖŒF#åB*Ë\%á* Í8ä³KùJ•ò¥R bê¥8·D€#„)…šÍü0B’d˜Í¦÷{ .H¾çÁóh#`ò%,iþd–ê…Ź°–�bé ”ÂRµXJ ‡#èÅÉdHd…#©¦b+,È,3Lúý¿?zòzg˜|þüŠXÛ Þß(UæQµ¸± ?ÐÜia9£ýèQrrÜþb:™Ñ|8XöOOö?:xýƒýÏï¶yò|bZ��ç|•ʳÝÝ]Ú¬+à�¦qé²X|ðþÇ¿;zøÑ;Qè{:×Ùd<íu§EþmqmÍ!†³üñd<;`D×€œg`€Pª,êÃíûKƒ\[û¯è2öbÛðLݤè=øó§oú—»íÓŒ:9Ð΀N7ôû”Aç‘â$Ví k; ûà³/ßkíß{°¿ ã*I)Á­Æd4¤4Ë̳}±ÅäL’¹~ôÉaûÊ¥ÊÍM­÷<Ï·D Á`Ôí ff~¡©ø›Ev>˺–ÜsE¬QÓñ¸ÿð‹ã7þÖþýÉt9\5šÓºÝðL©±¨)V¾²]º~)¶‹\Ïž ïö“¶ÇVïç��c-èkÖX wÍÂ*ð:ûðÙ¸¹çhË ÿgýžˆFf³ÜóR����IEND®B`‚IMAGE 1190 ./arch/monster/elemental/Para/para_ice.173 ‰PNG  ��� IHDR��� ��� ���szzô��mIDATx^Å—ËnE†ÿSÕÕÓ—iÛíLq®HH‘Iâx)‹HddØ$ ±ä XðlX€„xÄ>@€BHˆ”(ÉØNlbgÆöŒ=žékÕ¡Ýââ¨Gü­_Gª^üŸª«NÑØ«×ð,ÚÖ0ŒÐ–èæcRàY$ölL>·<¼zþäéæ_??îø‰¦«œb}´�13ÀÀÅӇϼ3á³+׿¿|ï£Ë_½{õòço¾vêí£AÍ@ªg¦Ã#gÏžüø•Ù™+G6O80}èÅs'NÿdnæÀ¥I‹¬‘� cÚ·ks³/]<rìÐ…šm;QÞ¥‡“3‡N½ºVs$� ̽<õÆ‘Ãû®ë©îæ/->½Å:k«0:G0æ |û¹œ¹z€¦+æ‚KJÑlœå¬þx/ƒë×áxun4ƒûþŒ$P¥�93„$_*1--‹êõ�&¦ö5¸c!&&'1Ùh4§šÁ¬#È­ bFsÂ{Þ êûk®×óàØ J�‚ [×qàù>Õ¿aK’•Ô…Àxàîóë~Ós]¶•ˆ@›ŒÂ$`;µ f »R€Ä0Qœg¹6D€€­d¹Ì�™]ëD)+°%Õ*DQº“§i'i“ ŠSä@9ÀYŠ(ŠŠµš¹NO) O! €µ1&K‹¬qa§ß‡@�IŒ4"-ÖLžC …©R�ÀÌH³ išB6H[%\’$ˆ 3()ABTÛ €Üh­A»5ÏËÆClÀ`hc`Ìne@GJr* òaÅÆHæ Ô Hi– °-eIvlåyJz\å'X„À°qØpf+ R)€’J)X–‚°,ײD½|ª®gZ‹,M3ÿw&PP–a)ÈÝZ¨dU;$ižÅq¢Sm—á ­s6»Á¥”D©æW  © æuA…„ƒæ¹HZ°• [J­7tnz•î�ˆ5ý3¦·Ò$6Y–#Óå¡W Ê®D”å™ÞÜÜþss']«~ ÑÔyüdøíöf÷A(KbX‚úuG”¿fo£{oaaõ»Î0ߪÀ0™ÅN|}mmãÇÁÎ@÷z=t7ÖÑïöÑß@À WÀµ–Ú·F2v4¶†ÝõÆÃÄ›¨y>l¯?ô16æ¼¶ç;Ñh†RÃàõvwaÐën;J¢æzH 0´W뵕•µ(Éã‘MÅ‚€öæ`ùQ«Õî,/Q{å¶¾OK ­í'«ë÷5#�°é•âüÜ]ï â~²Á6õ{]¬¬¬Þyø¸{sÈÌØƒ,ìQ)·ï´6¿˜—]cø‚ãyµõnÿÁíÛ­¯Ÿôï׈F{5SD¸»ýýËo­OoÜøëÚOßÿþþ×ÿøð×›ËßtSazæËiÆ €D[šÙ„RÕŒ^ÿ³þêž4à&à ù����IEND®B`‚IMAGE 1416 ./arch/monster/elemental/Para/para_ice.174 ‰PNG  ��� IHDR��� ��� ���szzô��OIDATXÃÅ—K\GÇÿU÷ö}öí¾=íy¶mì1$žÌÄØ‘,K'$J² Á‚]¤ÀÇ@â#DÊ*ß¡ì“(‹0„,À²ǘyôôô}ô}ÖëdѰ‰qwÄYWÕùÕ9UÿëÝ|ÿÏàO:1×¹P(‰Øå•ÀÝŒ\�˵9Ó:ö%W¡ÍÙ÷nlïܼuãÖÎÓW®LNNè7w¿øÃ¯{ÿã?OÊq‡±åäÚ�š°³Fß½}íå×^éíkÏ]¾Õzo’df¿m›÷“O¼›6ºX*@c‹ãÖ³›»Ï¿°ûÖÕk{?Þ¼0ÚÀKÐxrÊ,FÛ+}ïÍØ·~•4ú[&€�ðâ¥Áî‹ßÞýùèò¥—m›Å‡4=u¨mZ$Y†z–‘Õ¨cÑ:€{K«€"ÂÐfÎÆzï• ëßa–w£ˆF«C�鬄P Àê²äJ*Î@�ز�€í¡·»±ÿÀ ‚A/Žikc6*�p<hÒ“ LkA§†¥µÀç k«Ñsñ0~6Œz†]·0 �p °;€[ÐÄSi²e^C›3Þ‹‚-'}/áù •8”ˆ CÈ5¡^šI"„ïE=ÿžضëÁq\t@@*Àh@+ )Z¡Ž„žwf)�ÀSçû×G£µçWî!üÀE×8@�iªnÐÔµ®kq¤ÍR�rC¸{çöv.þpkk󩕸Oýn×ý×D”DÛ ®JÔeYW•x, äÂ�ŠC‹±§¯¬ß]Üz©œ8ŽÑï‡�j À�Rj´MUÎPEÕ¶j Ðbf¤‰ øÖöðæÞ®¯¯~=ê÷)èF°:óK ÔB@ÔÚrÆšªJ«F+ZÐ KöÖ‚í½g.ülckí;añ¨×‡x`�8�A· fYŠ,ËPTMR´:±{r7”D¸àYÑÕíÕmŽÖ^z}× {äøÀ�¥ç‡¯•@Û´(ò EžBJ‰Všq#M²wðµUïÎh´ò“¨ß?×íõÉBã`l^z)šª@ž¦B ãº`ŒgBS»€ËE!%ˆÂ«NÐ¥ >:N®X  š ³4™'÷Y`©1X €ˆ8‘ lÛæ®ë¸bŽÃá:s_uƒ,™"É ø¾˶1ÕÊHM…&R HbuQÊ?5e‘iÑöDFÃbsÉeÓÉuUÁñ<ô£Üâ­`–e‘!°…� ˜˜dêƒãƒÉÎðÜñžë®cX]×PJåÍ,³ z݈ün„AC µ!ÛuEþ�°_˜î~‘”æÃ+ÇéõøÜÊy€§išn¬ ^ýæë/ 7ÖY7V4�”XU–eg† ~”vÃióðoÉ£ý/îþ²ë;¡R¦ulœÿþ[·ï8žÇ]æÐ¬©ë2™æÒ±EtàßáÌ¡I¥ªI¥*�Xó¡Ë4éLOư:ÌÀ\ p´ÿðñÑáé} ½hþ[´Šê,Ë‹4It#h ÇA™gxøpÿtšUgRÁ3B+[Qˆ¦É-¥f¹9:ž>H*9ýJF­F‘fåý<ŸÉªª`DQ—¬ÈÒôäxúYÒèü+¨ ÊÓò£ñÑøÞ,²r–±tzjï?úÝ?Ÿ|^:k~Xîùëÿó`Æ€Y¥!›”3r„âŸ>ùýÝ{ï}þ—ã»Ìœ€õw,ˆrfþ…aß_)*qú×q±ß¢Îà,;¾׎ÎÖe/J±����IEND®B`‚IMAGE 1513 ./arch/monster/elemental/Para/para_ice.175 ‰PNG  ��� IHDR��� ��� ���szzô��°IDATXÃÅ—KsWÇÿ÷v÷ôtÏtO÷ÌÈYŠž£GbŒmÉ&‘aUIU¨‚»¤ŠE‘o�[>_ìXð傲+ÆcYH²¬x4õc¦_·ï=,&a‹h"WNÕ]uu÷¯Î=ÿó?‡¹ïüßdp|áÏúb,¨hÚn¬^ñ;s^+Šu|:ìÿc4‰]Î/`¢¤$x o¿Ñôw¾½¾vçîÍÝõÍît¾qtt,þùøÉ}ïO~÷èøü‰ÆØå$Š`0†½îÜêÎíÍl¿¹þ½­­ÛKËe04Îú!³ªtæýÝîJ³vÚ~=ÌÔðÒ�J�ï,yÛ÷öÞüåÆv÷‡ÍV³=)r¶xJyž#Ž"І}„Ã3§ÂË{–Á:Èp9�%®¼²´à¿?×nü¨bšÍª]'×óÈÔ9²$…,KgÁ`€qŠRªòÒj 'àæûúâBë'nÃmz¾Gí¹6Z-ÎC ™$¸nPR…aú·qAŸ_š kìÚç;Nû†ïûä:. Ý€€" jUÓ�cŒåBƒ¨¼?.)º�E„FE«ùMçVÃoºNÃCÕ²À4@jz¤Ȳ i.Ÿ‡)}¢ˆ}ýF”a¬M×|Ãkù«–ë¡æ¸°, ºp¤Hs‚È3äY†4/ŸM œpv (W„޳rïn÷£­îÛ~»Í Ë&Ò8$� @) Ê<…*2RBö¤¢ükuÂL "ܘ«_ݽ½öÓë7·?XZ^òš¾Oºi‚k€®D@žâ8FEHÓtœ¤âéXRÂÀf(ˆ 3`w©¹yg§û³­·Ö?XXZj;žOÜ0€ŒB�i2AKÓ,M³²7³”D¨0àîz{ïÖ­î/¶¶×~<7?﹞O¦eC7tpÐ @H M%’8‚˜ÄȳiVãDôÚEk@AØYt÷nÝ\ùÕææÊ{ùŽéúM²,vµÝœþÜ� GGò,”‚(ÊóqVžø�âÍW»«­çßs[mÓ¬7ˆ›j¶…zmZõì‹âãIxŽ$™@”%4Î Ky– u>Óh hÕØ¹¶û®ÓpMÓ²I¯T`¸6}Î��†g z½3DQ Y–Ðtºa ÉËW™PÉŒ5@ ƒÿÒˉÀ@È%0)�UÁ(Ä`ÐGÅà ØVD@‘¥2r˜JÊf €†cùép<ŠƒàûµºÃǺNRc“$KJãh4ôy6‰|®WÈ÷<8N“¢„bJ*Áp±ø/�CÓgÏ¿±k‡§lÏöÓ9­b ‘‡ƒ³áÃ㣗²xôÝîú‡ó+k7«Ð«6,C¡V«•`, rf& âñÉ䣸Ù_N^ ¯ÛzLËÃpÿå«àß§ç‰xw÷Úv«sÏ/,Âñ›°¸( "~.‰ŸE�`0Ðó ë§½éwRE0°Ö4×7ßÚøÖÂZW»º¸Œ¦7•$�ÔLy~Ñ+ø¿fd0ƾhy�,Î 85s¡Ñô7ªv™&PÁô€AxØï‡ûô:Çr¥¤ %m.q5Ó@, ö÷¢Ã‹¤ÿB3!¨Wx£nê¦Æ€L 0€W¯ÆÅÑÑËýAZN^ÛbÂè:óçfI€T4uC€M¢ GÁéÔ_€0ƘVHÅŠR¢¤�Q�ápôü¬ü]^�(-ä(M³L•%””HR`êäèäáI/<2ØE5p�"`æÏýÑÓ<0Udˆ¢„½8~ÑÛÿ×ÁÇ'qa†ÐÌÅݯ–�ÆärdqUø {Ù©8 ÃÇŸ<þÃÇþô·/â"š%Ú S…ôÁg½ß—å_žne¢œ<yúòþƒÏ£‡Ï¶hÿ+âæÔz£óK����IEND®B`‚IMAGE 1416 ./arch/monster/elemental/Para/para_ice.176 ‰PNG  ��� IHDR��� ��� ���szzô��OIDATXÃÅ—K\GÇÿU÷ö}öí¾=íy¶mì1$žÌÄØ‘,K'$J² Á‚]¤ÀÇ@â#DÊ*ß¡ì“(‹0„,À²ǘyôôô}ô}ÖëdѰ‰qwÄYWÕùÕ9UÿëÝ|ÿÏàO:1×¹P(‰Øå•ÀÝŒ\�˵9Ó:ö%W¡ÍÙ÷nlïܼuãÖÎÓW®LNNè7w¿øÃ¯{ÿã?OÊq‡±åäÚ�š°³Fß½}íå×^éíkÏ]¾Õzo’df¿m›÷“O¼›6ºX*@c‹ãÖ³›»Ï¿°ûÖÕk{?Þ¼0ÚÀKÐxrÊ,FÛ+}ïÍØ·~•4ú[&€�ðâ¥Áî‹ßÞýùèò¥—m›Å‡4=u¨mZ$Y†z–‘Õ¨cÑ:€{K«€"ÂÐfÎÆzï• ëßa–w£ˆF«C�鬄P Àê²äJ*Î@�ز�€í¡·»±ÿÀ ‚A/Žikc6*�p<hÒ“ LkA§†¥µÀç k«Ñsñ0~6Œz†]·0 �p °;€[ÐÄSi²e^C›3Þ‹‚-'}/áù •8”ˆ CÈ5¡^šI"„ïE=ÿžضëÁq\t@@*Àh@+ )Z¡Ž„žwf)�ÀSçû×G£µçWî!üÀE×8@�iªnÐÔµ®kq¤ÍR�rC¸{çöv.þpkk󩕸Oýn×ý×D”DÛ ®JÔeYW•x, äÂ�ŠC‹±§¯¬ß]Üz©œ8ŽÑï‡�j À�Rj´MUÎPEÕ¶j Ðbf¤‰ øÖöðæÞ®¯¯~=ê÷)èF°:óK ÔB@ÔÚrÆšªJ«F+ZÐ KöÖ‚í½g.ülckí;añ¨×‡x`�8�A· fYŠ,ËPTMR´:±{r7”D¸àYÑÕíÕmŽÖ^z}× {äøÀ�¥ç‡¯•@Û´(ò EžBJ‰Všq#M²wðµUïÎh´ò“¨ß?×íõÉBã`l^z)šª@ž¦B ãº`ŒgBS»€ËE!%ˆÂ«NÐ¥ >:N®X  š ³4™'÷Y`©1X €ˆ8‘ lÛæ®ë¸bŽÃá:s_uƒ,™"É ø¾˶1ÕÊHM…&R HbuQÊ?5e‘iÑöDFÃbsÉeÓÉuUÁñ<ô£Üâ­`–e‘!°…� ˜˜dêƒãƒÉÎðÜñžë®cX]×PJåÍ,³ z݈ün„AC µ!ÛuEþ�°_˜î~‘”æÃ+ÇéõøÜÊy€§išn¬ ^ýæë/ 7ÖY7V4�”XU–eg† ~”vÃióðoÉ£ý/îþ²ë;¡R¦ulœÿþ[·ï8žÇ]æÐ¬©ë2™æÒ±EtàßáÌ¡I¥ªI¥*�Xó¡Ë4éLOư:ÌÀ\ p´ÿðñÑáé} ½hþ[´Šê,Ë‹4It#h ÇA™gxøpÿtšUgRÁ3B+[Qˆ¦É-¥f¹9:ž>H*9ýJF­F‘fåý<ŸÉªª`DQ—¬ÈÒôäxúYÒèü+¨ ÊÓò£ñÑøÞ,²r–±tzjï?úÝ?Ÿ|^:k~Xîùëÿó`Æ€Y¥!›”3r„âŸ>ùýÝ{ï}þ—ã»Ìœ€õw,ˆrfþ…aß_)*qú×q±ß¢Îà,;¾׎ÎÖe/J±����IEND®B`‚IMAGE 1190 ./arch/monster/elemental/Para/para_ice.177 ‰PNG  ��� IHDR��� ��� ���szzô��mIDATx^Å—ËnE†ÿSÕÕÓ—iÛíLq®HH‘Iâx)‹HddØ$ ±ä XðlX€„xÄ>@€BHˆ”(ÉØNlbgÆöŒ=žékÕ¡Ýââ¨Gü­_Gª^üŸª«NÑØ«×ð,ÚÖ0ŒÐ–èæcRàY$ölL>·<¼zþäéæ_??îø‰¦«œb}´�13ÀÀÅӇϼ3á³+׿¿|ï£Ë_½{õòço¾vêí£AÍ@ªg¦Ã#gÏžüø•Ù™+G6O80}èÅs'NÿdnæÀ¥I‹¬‘� cÚ·ks³/]<rìÐ…šm;QÞ¥‡“3‡N½ºVs$� ̽<õÆ‘Ãû®ë©îæ/->½Å:k«0:G0æ |û¹œ¹z€¦+æ‚KJÑlœå¬þx/ƒë×áxun4ƒûþŒ$P¥�93„$_*1--‹êõ�&¦ö5¸c!&&'1Ùh4§šÁ¬#È­ bFsÂ{Þ êûk®×óàØ J�‚ [×qàù>Õ¿aK’•Ô…Àxàîóë~Ós]¶•ˆ@›ŒÂ$`;µ f »R€Ä0Qœg¹6D€€­d¹Ì�™]ëD)+°%Õ*DQº“§i'i“ ŠSä@9ÀYŠ(ŠŠµš¹NO) O! €µ1&K‹¬qa§ß‡@�IŒ4"-ÖLžC …©R�ÀÌH³ išB6H[%\’$ˆ 3()ABTÛ €Üh­A»5ÏËÆClÀ`hc`Ìne@GJr* òaÅÆHæ Ô Hi– °-eIvlåyJz\å'X„À°qØpf+ R)€’J)X–‚°,ײD½|ª®gZ‹,M3ÿw&PP–a)ÈÝZ¨dU;$ižÅq¢Sm—á ­s6»Á¥”D©æW  © æuA…„ƒæ¹HZ°• [J­7tnz•î�ˆ5ý3¦·Ò$6Y–#Óå¡W Ê®D”å™ÞÜÜþss']«~ ÑÔyüdøíöf÷A(KbX‚úuG”¿fo£{oaaõ»Î0ߪÀ0™ÅN|}mmãÇÁÎ@÷z=t7ÖÑïöÑß@À WÀµ–Ú·F2v4¶†ÝõÆÃÄ›¨y>l¯?ô16æ¼¶ç;Ñh†RÃàõvwaÐën;J¢æzH 0´W뵕•µ(Éã‘MÅ‚€öæ`ùQ«Õî,/Q{å¶¾OK ­í'«ë÷5#�°é•âüÜ]ï â~²Á6õ{]¬¬¬Þyø¸{sÈÌØƒ,ìQ)·ï´6¿˜—]cø‚ãyµõnÿÁíÛ­¯Ÿôï׈F{5SD¸»ýýËo­OoÜøëÚOßÿþþ×ÿøð×›ËßtSazæËiÆ €D[šÙ„RÕŒ^ÿ³þêž4à&à ù����IEND®B`‚IMAGE 1467 ./arch/monster/elemental/Para/para_ice.178 ‰PNG  ��� IHDR��� ��� ���szzô��‚IDATXÃÅ—]G…Ï[U]ÕÝÛÝ3Óž¯Ýe=» &ò…e#ÉBÈHGpâpÉ?àE‚«(øŠHÉEÈE>Vv€5É¢$^³³öÄ;ß=_ÝÓ]U\Ä‹"'ÀÌz纤~tú­zÏ¡èÖo°Ž&Ú ` €áE%V=˜hÅ×›QÜÚ©oÕÊ!;y|ÚyûðIOkCÎþw�ÚZl»Â¹}sïg7^½ö‹Ý+/ߨ»|™‡£ƒïÝ}ëo¼µÿÇ“i6α�€Ëµk¯\mýö¥ï¶~X¯Å<®ºh5›×…÷Ë\ˆàOïÞ¿{ïËd´.Wß¹ù_1Z5÷ç/_Ùùu\­ºž«°È Œp) Üf9®\#7æóIçawÒkÌÆJ�dÁZ5÷Îînó5%O³%&³9æ“)²y ]ä5Çu®sf+Ù`øI;ÉΊ+X�›%ùýÍFù'8B)lD%T«Ua.8ˆq×qXk1uÚ÷´…Y`¥f;›/“q’º€ïû¨Ä1ʵ¥ªDT)£ÇöR­o]nþ´©ÜZ\�a8YÏæ‹®«…¾’ïB0€�(øž‡ ÑØjÞÜÙ®Ürtq��Æ™yšeº­” Ë c¡ @k@p@ G86®”ë{­úƆ¬™\XùÎ, ŒòÜc X­ÁH¬ˆ,\W±í­ú­½íÒ⢆�fÖ;‘xes»v;,•GJp¡ \N@šL§3ÌÓœQÉLäÉäð£´÷ŸnÄÊ�@(ШDÎ? ÆpÎÀ¸Æ€<²,Å"Íà!6o—Ã,zÁ½Nšgêß@¬ `Ô"ϯü5ו .,10�Ä$c`DÐEc ¤à®TNëeoÜM>.uþmN¬ @D¨x =ûck–W„TàRB:‚3p¤D À,ó‚³Ú†ï¼d—iÒëMs}n��ÈóBK3ÿËW}OQàûP®‚è+ßS Æ€…àÔd6¯Žz£ƒ'IvŸsa-€LÛ\™ìj´A·‘à‚Cºˆ 0ÎAD�qh@c ÄNõtšd§OÇû©Æâ\yà«9 ÐH‘[kÝA÷¾çÁq$”’�ã`Œ ÏõÀ9‡p ­½ÖÖj‡­aoÑÿú%ÖÛÞĘõ‚Õæ¬5FÊ…T – ¸JÂUšqÈg–ò”*åK¥@ÅÔKqnˆ�GS 4› øa„Å"Ãt:Á¸ßq…tà{<Ï6&_ÁbžæO¦©XXœÛk 6~0—A),Uˆ¥Äp8‚ž'X$C2 +I5[aAf™!é÷ÿ~üèÉëáâóçWÄÚhðþF©2‹ª ÄMøA€æN ËéíG'Çí/&É”fÃA@À²zz´ÿÑÁëì~·=ÏÏ'¦õ��pÎgQ©<ÝÝݥͺ²!�`W.‹ùïü»£‡½…¾§s%ãIÿà¨{ô8-òo‹kk!0œæ“ñô€]s�rž�B©² ¨´ï/ rmí¿¢{ÈØ‹mÃ3uEïÁŸ?}ûÓ¿|ÜmŸfÔÉvtº&ݧ :'±joXÛ ØŸ}ù^kÿÞ{€ýUWIJ n5’ÑÒ,3ÏôÅ“3I"tfúÑ'‡í7*—*77µÞó<߃Q·7˜þuV˜Ù…¦âoØÙ4ë:XrÏu²FMÆãþÃ/Žß<ø[û÷'“åpÕhNëvÃ3¥Æ¢¦XùÊvéú¥8Ø.r={x2¼Ø_´=¶z/87��kA_¶…µp×,¬/ ³Ÿ›{޶ÌðÖ?žFf|^?����IEND®B`‚IMAGE 1359 ./arch/monster/elemental/Para/para_ice.181 ‰PNG  ��� IHDR��� ��� ���szzô��IDATx^Å—[h\åÅ×ï={öì¹¥Éd’¦­/½[¬jÓ"=T”ðR¼@+5¾¢P|QçÁ¾úXÐó ¯*Z}Ñ µZ¥)$i:M¦MÒéä23û~ù.gf| Ø]]ðç{\¿ÍÚëÿñQáÀ üRp ²¸€1ìÞÜßÿøØŽ{Ùw×¶#}ƒD GˆÛà Ù364ýÄûŸ<9þÞ['_;5>þÜ©£Ï<üßǼû_#i-8@Ð5Ž9r*á{¶Œ¾zìÉÇ^yá?í­/ h‡Œlf¬<<ðüŽm›^ß2hîæR&H‰¨3cw•*/{ùég}ÿàá±·ûJæØ�©j­)Ë«Òq‰=yS½O#Rˆ„ÄM…ÊáC»ßØ»o翇†žŠ}§\½² §¦ªXº~ +:ÖVð; É %A(%†tUßzgéÈÈÆg²Y³\,P.—e߆~dsy¤30Æ`5›d·[žãF &×Ï@Ãú‚ `×Ń££ÃÏå‹År¡X”ƒƒƒè+*ð éi$ À–åU›»¼å„”ؘÓûG+¥£ƒýdr9™J§ÁA`�¸MEZOASÆ„eÚ¨Q-�ŠuS1oì×t]×R:RZÇL¡= à\ Šb èմ¢&­Äj¨r)• ¤¨R‚ k È�H@‚ÃC„ñ½ ºf³_¸LhBDŒ#æœ3ÄqŒ0<ѯ;.BßGä{ðÝpÖ Ä‚J„®nù'$˜àŒApÉbˆ8ê ¦£ízpl§áz®´ÝðfÌe˜è]À˜è}µ` ’3øAÇõ`Ù6<Ç…ïû`Q„8[m;ºèqé%@�çà,ïEÀ¸€”²3Ý“C‘$8gn‹ŽHø6YÀºÙ‡1"Æ ¡S ¨Š €B*¥g*›K;¶÷eL[Èä�B.=Ûñ</¨k.„€$‚šÒ¡¥4(Š ­“63[·m>~ÿ®‘¢ä�˜´]×_éÆ ¤�) ”ŽqJ×{0ºž–†iÜÛן?”K«™ä�µ]/ªò(ºæQ‚±¤¨ènFÓ4‘Íe¡¨*IÎ5È#ð%¹Ž//9ŽgÅQôû^ˆb!¥0³&ŒŒ ³ ¹Ö^´#$±z¦éAÕ¤åØÈ‡!8çè*k½X:d€ªuW±³Ú´—$ 0 T.õ¥î¨T4•�×jÁÌf±¡X@!«‚ P»%Ð1Ëío—ÝŸ™„Ô(!�&!m;XÈšÙ•þ¡¡¼„2 Ø­&4…ˆƒÄÊúÔüìü×SÓK_oE³Qr5Tˆ0_·¦¯Vç¦A„á-£¨lÝŽbyËÍ6.Nüzþ›/¿}ó³¯.¼{®Öš ¢dhúlmörmòúÜÕØ·ÛÐu¹¢ UÓäB­ÖøþÇ鉙¦ßÌ(t{Þ‘$wé¦ýÝòââµvã­Öa­¶¡HA†‘Þh¦Õ æÌ“jAOD„z;ž˜›¯ŸÞP*½”Ëç³ÝVt#cdSš’¹­/#ЊQŸ©µ?œ›[ütµÑpÝv‹"ßCFËŒK7€õÆÙf4yaráƒÉÉËŸÌ_©ÎUgfÏÎÌÔþwÓ kÉÛP'Â¥†7yæÜ•wNýӱϿ8;~æüÕê¡ðñ'ô§_ÇBJ¨D½sÚ% ¼þäUÇmä¼2Ï����IEND®B`‚IMAGE 1492 ./arch/monster/elemental/Para/para_ice.182 ‰PNG  ��� IHDR��� ��� ���szzô��›IDATx^Å—IŒWÇÿ_í]Ý]½Ì‚—±Çñ†• v+Qb"!$@B‚PXœƒ…"! ååÀ$9†CX® �KH ¬Dà; Xad™É8Ó±§»§gº§»ÖåÕ{ž–ïWŒÿRI¯Nßï½o'ïÑoâ^JCyÁ~*аtZð»Y1[ùRá¿ÉÀ*T Jòô|úà\û“,Ýwðð‡ó¡ápÈ÷Ö.½viåOÝXÄ6ÑGó¾TÓÛNîŸi;sòø¾ýŧžá[?~æ;_ûÅgÿÉÒGž{`éÐs§NùÁƒGçžôt²?ÄŠ>}ôc‹ç¾púÜ7Î~?ý¥_~öóg~ºxpáé$ʼn^wàGCJâX3móûö¶ÎÎVûJ» QŒ‚-¶Ÿ>½ôì¡c‡Ÿl´šs‚%m 68Œ"YÊï#c0+B€tš×uTK¿€ðèBãðɾ;¿gî)·Vo4›h´g¹ê5Ðj4PwÝ©ÑñöÁd‚8ð9˜„W“Tn–ˆãþ¶3ÿàÒÂ3ûw}µîy­V³Áí™Y4g-xm^³…ºWG¥â€ˆ(MS¶G7»“?l¦êF)€ºN´¸»~fnÞû²W¯µ¼zM˃À 04@7ŒÛÿ Rœ¦1FÃñµaüŽdp)�ÏÒZó³µ'*Õê‚[­²ëV`Ù6 “�´éÇ(DŽ$I‘§)Åa<êö'¿ßðów ˜Qwô™ªW;bT\ÒL ¤°lŽiL¢c?DG"çíqôÚZ/:?.8)U 3jU{Æ­×Ú–e³¡Ðt¶mN‹™DEÇÃÂ8½u{ÿ|/ïYD(PÕ@ó3µÍFm·eY€¦A#‚’;F0ðÃa ðÇ(²Q˜\ïmEo犹T/PÌhÛzsn¦öXű=Ë4àÚËš¦[ÄÂhúìIì¤dQ¨0ÌÞDzc¡€0ïY‡¼†{’I'Ë4±€ö4ÕPT!'1ÂñöÔ ¹(‰Ÿ^ û¥»¡ êêÇ-Û\d€MÓ€íT`˜6RJäB ŽcdQ� €Ö¼ª5»§f¹âr�A³-}ièǶ`ÛÎm�º¦ÁÐ:)²4…eÙ¨8NíãG÷}å¡¥…Ï4t¢R�&ÁÕIíU ‹5ÐM("dBB(É„BJ¤iÖMŽ¥él»•û[íÚã5K¯�¸óy€% ±c„ ÀmRAt"0iÓ³($ê $ p!À b% â’.ÌŹŸ¥)…DV(©�¢iéÕtm„Ó쨸 M‡iš�«t¼í¯¹JKP:‰ä¥Ž–%I‘ƒX¡j[¨»t–Ȳ×I%ÁÌ”ÄI¸5 º %ë�ˆ¸Ñ×nl¿´ÙÛXÇÛ‡‰<ƒ˜^ëïtBJ³Qs.dÞLþ¼¾½U0Ê€X"ºv#üÍÕ«7~øþõÎ…~¯Wt»=lŒ&0³˜Ù»âÎû×——W_¾v­óâòÕõ?ç+· Q¹¡T' “ÑÅåþ«a”€PkÖÜ]ήÝhÏjˆs`´µ5ü÷¿Võ×w×gê†IjDø°úP{˜³ÕñO=¼ïç§9õðÁ£Çxna?²4Ã?ÞøÛÊo_ýËÙËÉ›ÑÝÙ @˜Sg0˜\ôûI¯»ŽÎõU ú]J’DR ƒèî.&‘ÂäæFr~£7¸²3ù†þ2K „‹B…w}3Ò‰pÓ/ÞY]Ûz¥w³÷ÏáæV²¹¹5ìõ‡GAÞÿ¿¬f©Bòîá¯ß¼¼ú½¿_¼òý×/¼õì—W~¶Š îPÿórÊ·GµªN38”ÌŽF(p/¥áë?oÀøÕK%¦����IEND®B`‚IMAGE 1724 ./arch/monster/elemental/Para/para_ice.183 ‰PNG  ��� IHDR��� ��� ���szzô��ƒIDATx^í—[lWÆ¿3³sÙÙ»½±³Á®];©mÒ\å@¨¨Bðñ‰� â ñ‚*UH}és¥¾Q+U@ÀÐ>A$ª$E4! ñ¥ŽoñÚ{ñîÎîÌî\væœÃìXB•ÊšUH鯕æaßùþ—sI{Ÿä�üo 0}Š€sxa˜…éEBF’Š<u(•>ûlat¶˜)Òä„IÙ¿Äí2Ê8Î3éñâP¡PÈi o6Ûn~(›™œ>—MM`D 6Ûmosãѽ·–Þù Ô^J ä?ÐßŰ$’ùÙ≠N}cjzâ3C…á´(мÝ6]IQtUÓŠ"§zÇ2…®mE ‰üE·cn´»¯•;Á¶@ÈDð1MVç?}ä¥3gf^Ÿ(~AM¨: |Îh�BË€±WO)çàxLHêÉñ±C/^Úþuµkm´"øé‚žûÒ¹éo:9õêÈèЗ㉸®§Ó<7\@*—C2$«ð<Íú<ÇA\‘ K8(c* IAŸÉÆs§OM|ïèÑO]N§’“ºžäZ*ÍõLÎàT‚$É �\ÏE/ „þ÷ &NÇDµÚ¸oX½UÂÉ ¬¾í I=vêâs3—5]›Ô’:—5²‡, ` û+Ê+ª¨`Œ¢ÓµIà9¨”«+­U~^6ýÈ mhû9ÿÜüѯÎ8v9—ÏM&t§³9d2Y„i…"½�p½0\ŽãÂïõ><×%ÝŽ…j¹¶º¸¸õæƒÖ‚M¹?HFð¹!-÷ÙŽ]œ{þèåt&uZ àšžB2›G* )ûÒi!ŒÂ±mxŽ^?n=ífkcyùÑ.VÞÞu‚vB ODüø°–ÿüùÙï?ùÜO†òÙ3 EŽv]A&ŸEBÄP€‡A=N·^àGÛê46×w®Ü^Ü}§Ôõ[!üÉ“Ðf³¹xîÂüô¥Ù™‰fÓaÎU™çs9ŒŽŽ"?œ†¦ý3Ý! è9lË„e¶a;6cÄw]oc½tõÎßK¿X3{ õqøã) œ#+ òÜôðÅÉÉÑhZü™¸*]mÏæ”h×Nêïç-ð|tÌV÷\4@i€z½ùàÁòΕ¥†³¡íß,€8’‘ç’ß–UeRMh<•ÍAK÷-W ˆ€„áïïœú=´[-4šMx¶ J)8çè:.+•ÙÚëÞSü0’  «8O(Ç•žH¦B°EU"ËÝö[Ž!ʵ‚›a¸¶Ó‡GrÆúÕïRS“bÌbü@§¡DHH\Qã!X…“!Å"¼�h›6ÚF³ æ{ˆþ±ÙÆ!r+}åäÌá³"! `AסÝ®]¦=—°hž³¨×uPÀµtŒŒFFh¿çy‚¸,AEø”õƒËqy6Õ.$$1`°�!¼aó;»÷ ÅÊ7¥D2 1ÆÃ$nLBË0üj­ÆZUn5öxL’¡g2èÿŠ‚�@’¬@daÄ8@�>*‹ë­7euÍ Lø¢çzÅŽÑ$®Û«ìUj+ŽÛ™ëÙæhËF Š1¡¸˜H"}ÇEQDÏ÷]£eîX=椢?Xoûþ|gûõk×>üþ» ׿ó«_¾wéí·.ýnáúëZGÆ'¤‘gžEþÐòù<´~¡* ¢nc ŽãtêMk—dÁ¿¼”œCŒ2C¢ /êⱯmþʉÎͧ³YžˆÇ!J2<ß'v«‰­ÍMßj1J©¿µQºúþºÑê­ÆÈ`sàñ„àãÎtÜÀÚÞÜ®MOáÈØFF5�*e Z©nÞ»³¸Ðét‚˜(:תW·ƒ~)u)i•Ë{¥µUVÛ-ÁuÊ@¬z­sÿöý·®¿¿ôÚn®¿ò§[k¯ÿíQë¶0|ð+¼–å-íUÊæÖêJF�çDRðpiyíÎݵ߮´½zR pŠàw à„Ö;øc­n]ß«7X­R!Õò.J;•ÍZ³[ áÿÝw@€¦‡•ÝJ÷gZóšÑ4Ú{ÕÚæ£ÍÊï«–Wyê‡É€.°åª÷î_ï–~|óæýݺq˻¿±îã)Ö߆=ΑˆÈ�æ0ÎBð4ëÿÓO\À?�9^Å¡¸f����IEND®B`‚IMAGE 1752 ./arch/monster/elemental/Para/para_ice.184 ‰PNG  ��� IHDR��� ��� ���szzô��ŸIDATXÃÕ—ÛoWÆ¿µ/3sfæ\í8NìÖNœÈ U…J¨„*Uª*ÄE…'àŸà•x䥉—ª-‰ÔJá.‚K±Ý4±Û'ñ5¾Ï™9sÝ{ñÐVª"µuÓ¨ëø~³ÖÚßúF5¾ü#|ž¥ð9×CDÆ–áHI€&úl�rËÈÅÙ±VszòÈøÈ¡NP”fpëÖÊÚêV/ª@`Ëð]¥…RQV”åV?O· à % ¶c5­/œ?wþ¿5}êø×†j‹diñöÍÞîÞ:KÅ– Z‹ºäiXîï÷wW®\]ºte­¿úd�±eXfL5¼úSOŽ?þ©™;ï×?ËR&!¨9Ô:㇞ek‰…d)…lI‚Ñj×­_w·Wü!ýû;?[ÜÍ>82õq³nH³C“3§Æ¾;6>úýV§9í­·8 ë0¦bRû½žØ¿¿‰<ËH¹´ë²ÖJi [ѱ‰±o/¯Ï®öòåŠQ~$@d,ÀÀÙÑzûÉ™ñ¯Lû^§<«½Úp³ÑàF»z«F0•‚ã8D€©P @Hイ†$À’ƒ0l4êµ1G@WæC�ÞÿâóG[©‰C'ŸœxqdtèGË)G+†!×›MA�`   …€’µš-,3*(­Û &K)Ž¢µýýtv`x�<0‚œ¹eœÚ§gÆ¿zzfòùááæ—¤ÖÓLä+¥¸Õlp„Ð5R»°”¨ e¸*f䕬…aFYTdâ½Ý¥Å•W—îõ.– è졪˜Á�žy¬}æÜ™©—Ž=~ì…v»9åh-•vØ«ù\ókЮÇõày¼šÇ¤�⣟$È“i–!ÏsÀT`k(OÓ|sãþõÛ Ý×®Ív_¿ÙË×Â_pªå<qúäáŸLLþf£U•ã±®ùܨ‡hÔC(íÀJ Ïuà8×<$9Eâ8F•eಀ0%åyޏoÞë®ÿþ¿³K¯Ì-m_YK«ôAq�PP\h4¼ox¾†õ;µ�®ï£†ð<™”Öð=‚ë `û» q¶ÈA¶BYdyû; 7o,½|}®û›ùÍø®&B èCPSDpµvX* ¿önË…R ! �Ô”€@šqjÑïõPe ¨*!Ø¢²UUÑÎÎîæ[×o¾üÏk+¿¾—½†øh›V0û³Ð’ղȎçyÎAU‚¬—%Ê÷v$­ ¤1ceH³yžÃš ÄŒª¬`ª i–ÚÕ»ëo\Ÿ¿÷Z÷�â� „­Ø^½³rÿ•fgõGA'y–±ã8`!À À k-J˨Œ$ 2Ìl ²$ɶ6¶ßéö²µš ƒ£ØÐÖÜrÿwn'Iöâ`,~ÜÃÀ÷k¾TZ‚d@z®nC(B�R�˜eY¢ÈR/¨ÉsÓ#ÁÔÜf²èàJ*�DØÎíÞå[Û¯/¯EGZÝ¡Àwƒšç„,„ÀƲhÖåwŽO}iì ãNØlR@Á2Ú ¦ªD§Sÿúё䙥íÁRia|Ž"”åZT¬¯Eźa† À000Œ'†½Ç:\®K=zh6 aÙÁ¾»€0�“R(- ˆ@Ÿä{í“L·œÖÓç&ô¬ïׄ%É´p``k@B3ŃA¾ePô‰aF;Ð'Ž>7tx¤¥q£ÕB­Þ„ã¸@•£ª*dy@^˜()×%=¢D$ÒTœSd;|äw††áù %Š,£h;áÝÝx0H]¶¶õâ¿îÅÅ݃´ÿ@�š8ð>“’F^”h´‡pxH"³ å…^vëÆÂ×®ÎÿÉZë°±[wVî_ÚL«ýƒæDu�£p•ÃEe(Kúœô÷1ð;´·³oߺrío¾ùïŸ^º¹ñŸºº²\E†9ôèB)”B+%!Øb{sÑîV»Ýù¿üùò¯þukãŠC„Üp �ŸDü€KH±1Ôe5ÌdÊ’¶÷{ñùÅßÍ-nþÍ2X<|*ÿx€‚1ˆæZ:H·‹,)tb×»«ÿ˜_þm7)£ú§Q?€eâõ½òbweë—ž<­¤Z›{åÕ·Wvç>­ø�¯\¾±óóåÕdÈXN—öÒMf° Ï�à}›ŽJŽ¢4�áhÿÿœ>ÊúesT–ÇÀw����IEND®B`‚IMAGE 1766 ./arch/monster/elemental/Para/para_ice.185 ‰PNG  ��� IHDR��� ��� ���szzô��­IDATXÃÅ—É]WÆ¿:çÎ÷ö›zx=¼öHÀ18mâbÊ& ;P"„X ˆM–ü#¬²`R  "Ø ±¡;6‰÷d»íÜmûu¿î÷Þ}ÓÎ9Å¢cÛÄvƒK:«££ú*UÕWTxñ <MxÊf=ΣX@3lK@àý�ú†áðÂT¹|pߨÔÄøH¤µéÏÎ]ÛXXklo&z7¦DÁú `Ö£üz:°SÇž:ùâÌ:𕱱Ñ!ÍÜ›Y¸<»v}õƒ8î­¥™êvzI7$Ý­ÎÎ ÉÒÛ;½öz?Ë R<:@×0 _®Í|ißw¿xì™ONp]é¤iŸ ˆŠ£•™g#ïUç=aÙ™ ŒR½n·×è÷úÍõµ›çççWÞ]\m\ÚLuâÝ™‡ÄÊ`ҳıC#Çž=R{}|räµJ¹°Ïó<ö‡J\*)Åd9”ví ¾Y­.߃í¸T,F(TŠÁ·+åà’ï.þüÜüíwRƒô�=ÃІQ´%^¨•ÆgŽN³6=öÃbÁÿ†íy‘ã ŠˆÊ´²a9.¶Dš+HƒÁr\¶l `À÷ý!²¬¯ÇqW­l4ß_ÙIæéNîhfô8RòŠk•g&&†Ÿ¯¼T®_¶lkÚu,Š¢ˆ½ „´Òìp)¢0€mIdš!¤€cY°¤@–çp•Fe¤²¿¹£ÔL?ðüxøÜ‰çüèÐÁÉWü08à¸N‘¤E²Ùñ|Ž¢a"pض„´�h@e)tžß)�‚c "ÀhÖÈ’„²~Ÿî•$U[ áž0€aOVOÞ¨V‡^w}'’ŽÃn" Cv]Âqx.<σëºð]À±€Þ�È’’d€4M‘¤˜†Öšò<G7Žwê·êÿ¼4»ü³•FÿÊ¿ß �Z)²¿x^ä¸>»Aˆ0Œàù>l׃ãypm Š­€n 4[-ô{=dI‚$Ma”‚6šŒRôú;·ë[._ÛøýÊJýï ë­Åžfe߯ ´6B+%ˆ–%áØ6¤eÁ€( ¡$„d¤}ƒ$I`TŽÁ`€<M!Œ†ƒD+êvºÝúíÍs×—ÖÿpõúíÓK7ã+merOìÿhNwâŒ7¶wºç'âölÏ÷HH¶¤€�Ã(…Ä(Û 2D`­�6�3r¥¨ÙlÅWæ—ÞúèÒʯ®¬·æ¹ÉAðÄý»¢tk'��™A_(³íZ’¶“‚|�B+EJåÐJC)…$Ë‘å `†�ƒ™aÌî]»Óõ¥Õ?¿wnñ§ÿXkÍ0öiÇw@@+1ëÝ8ý0K’•å7´RÖ:“àÜ0 l!H0–Ø=D� •¥ˆ›ÍöüìÒ¯Ï-Öÿd}ÆuOî>XŽ³å› •âõæG kÕRÁ­ÃÑB):859üêTmüe¯P"‚�[ ï¦I¥ƒÀ•úøÄ=u#Î6Äã #‡ p+ÕýÖVYmö–¼…Š${¦æŒž<yäTíðç]T†!¥„$B®ò,C’¦ŽãY/ ò°ìÐï… wÊ´Vö8ͳÔÊÀÚ€0ÌHr…4Ë@�ÛÒJsjÀ{£r�ÇGÃý§Nþ‰ãð+AÛóØóø®£5X+¨<ƒ€b;ËMëÞfóØ�†¡ 16ì~§¶âû£ÕjIÃ…R¥R žë w& ”R$-›³Œ?ê¥æÖž(¢ÀH):ß“RŒU§¦¹X.Ãq=äÚPžôÑŠãncs«áZ4œ$ùÆ­Íø/DÇô¤�†PÀ©VœoU«å¯º®KdY\/"´A«Û›+ËËßÿø·ós×Δ†üÉ~’oÏ.mý5g†C{‚aG«#ÁkåáárT(²$ ÝΨ͌¥ùËW/œ>÷æßÎ̽3Ûè7†!•I˜ùQDê4¡Cµb)ú\PªpT,Áµ-Ä; ¬®¬-Ÿy÷›§Ï_~ûj;m,Ü@®`àÙ¢„¡ë‡\ÏG’)j7¶sç~söÂÕß-ÅYë~BsOi4´AÓ±$‘Q´U¯7.~pé—gß[xk±9Ø„'µOfÁ§Œ`4÷—Ê~à–;qweöãËoŸ>;ÿ‹ 7ãÕ'ýù]/Û ™eOT÷W ‡‰Þ­ÎòõnÖ)ˆ½ÛèZD„ÄÔÛkíºaa/¶Y°;œ@Dø_ØSߎÿREô˜¬ÓN����IEND®B`‚IMAGE 1752 ./arch/monster/elemental/Para/para_ice.186 ‰PNG  ��� IHDR��� ��� ���szzô��ŸIDATXÃÕ—ÛoWÆ¿µ/3sfæÜlÇqâ`7qâDn¨’Ð(Tª@@%„T©ªžx€‚W^à‘— $^ª>´H$P+…K¸BšÇM;±}_ãËñœ3gn{ïÅC¨TEjë¦Q+Ö?ðýf­µ¿õj|ñ‡ø,Ká3®GH¬Ó’�Môé�ŽQX‡³ã­æô±C£†¢²²ƒ[·–WW6»‰#ô•–RHEDyYU›½"Û*-7”xt€¾s¯i}áôĹó>ÿÍéSÇ¿2|à@Ã:¤‹ ·ovwv×X*vLÐZÖ•@ á¸·×ÛYXX¾òÖìâ¥+«½åHÐÇè;†cÆT#¨?ýÔÄó矞ùÑ‘‰ñóaÍ ó<c‚šÃ­3a8vŽXH–RÁŽ$­vÝ…uÓóÅﳿ½ûÓ…|þý#S5ë†8;9|læÔøwÆ'ƾ×jÎ@ûðë-Žã:¬5LJc¯Û{÷7Pä9)?€ö}ÖZC)Mqkhl|rü[Kk³+ÝbÉ0ªH¬8;Vo?53ñ¥éããßjGÏé 6Òl4¸Ñn£Þj£Ñ�¬Qð<‚°å „y>HjH|!9ŠãF£^÷´±�ðÞŸ?Üšš<pòøÉÉGdž_ÐZNùZÉ8޹Þl"Š"0�g%�)””¨Õh)à˜aX rì lžQ?IV÷ö²ÙåðÐ fŽqz$jŸž™üò陣ό4¿ µžf¢P)Å­fƒ£(†®…Ú‡# r€±@žç`SÌ(ŒœƒeFU–Tæ9ú»;ë‹ Ë¯.Þë^¬ÐïÛCe˜Á�ž}¢}æÜ™©—Ž=òB»Ýœò´–J{ÔB®…5h?€ç‚�A̓�R�ý£—¦(ÒYž£( À°³TdY±±~ÿÚíùÎkWg;¯ßì«ñïÀ8Õòž<}òà''~½ÑªÇÊ X×BnÔc4ê1”öà¤Fà{ð<‚��$ úý>Lžƒ«ÂVTú½þƽÎÚïþ3»øÊõÅ­+«™É�0‹ Fðµ ã¸Þ`¯ÁC4ãA w€Òa@ð}�ô@¼»“bÐïÁ•ÈTÆ"/Jlßßž¿ycñåk×;¿žÛèßÕDˆ} JkMD_k¥ÒkZ.”   ¦”�²èg½n&OA¦‚`ãŒ1´½½³ñöµ›/ÿãêò¯n÷«nC|¸M+ؽïõÒ•ªÌEÁ‘©@Nƒ« 3€Ì”ÈRÆ Ë‘åŠ¢€³Ä SXcå™[¹»öƵ¹{¯uö!�Š@Øì»·î,Ý¥Ù^ùþaÐ F‘çìyX0‚�0Ã9‡Ê1ŒµkÁìÀÖ"OÓ|s}ëÝN7_­ Úÿ1êYÚ¼¾Ôû9ÄÛiZ¼8ï ã8 ÃZ(•– ‚,HįÛŠ…€”��fFUU(ó,ˆjòÜôh4u}#]ðöq%�H"ln÷ò­­×—V“‹£­åá(ô£ZàÅB1ÀÖ±hÖå·;üÒøç&¼¸Ù¤€$‚c†³Ö14TÿêáÑôÙÅ­Ábå`÷}Ž="TÕjR®­&åše†�` ,ãÉ‘àÄ‘!®Ô¥;0 Çpìˆà, ,À¤*ëªÒ±%Уçù¿öI�Ó-¯õ̹c?ˆ"z. k‘dÃ-$<XØYÄLýÁ Ø´ (z Ä2£éG&ƾ1|p´¥q£ÕB­Þ„çù€)`ŒA^”� ¥]OÒjMÒcJD Må9Eö‰ƒ‡ñÐð‚0¤D™ç”l¥¼½³Ó 2Ÿë%Ýþ_vûåÝý´_�š8 <>“ ÒFQVh´‡qpX"w ¥ùn~ëÆüWßšû£sÎcë6ï,ß¿´‘™½ýæDµ£ð•#¥±”§=N{{„C´»½çÞ¾rõo¾ù¯Ÿ\º¹þïºÚ86‰eŽ=¾PJ%¤ÐJIvØÚXG²³•NgîϺüËÞZ¿â¡°\ÀÇßçRßZê0ÈYf2UEÉ^·cná·×6þê,=•4@É${5d[ežV:uk•¿ÏÎ-ý¦“VIý“¨ïÀ1ñÚnu±³¼ù‹ÀžQR­Î½³üê;Ë;×?©ø¾�ë9/_¾±ý³¥•tØ:Îw³ f° Oà=›N*N’í,�á1hÿÿœ>Îú/z³rX? û����IEND®B`‚IMAGE 1724 ./arch/monster/elemental/Para/para_ice.187 ‰PNG  ��� IHDR��� ��� ���szzô��ƒIDATx^í—[lWÆ¿3³sÙÙ»½±³Á®];©mÒ\å@¨¨Bðñ‰� â ñ‚*UH}és¥¾Q+U@ÀÐ>A$ª$E4! ñ¥ŽoñÚ{ñîÎîÌî\væœÃìXB•ÊšUH鯕æaßùþ—sI{Ÿä�üo 0}Š€sxa˜…éEBF’Š<u(•>ûlat¶˜)Òä„IÙ¿Äí2Ê8Î3éñâP¡PÈi o6Ûn~(›™œ>—MM`D 6Ûmosãѽ·–Þù Ô^J ä?ÐßŰ$’ùÙ≠N}cjzâ3C…á´(мÝ6]IQtUÓŠ"§zÇ2…®mE ‰üE·cn´»¯•;Á¶@ÈDð1MVç?}ä¥3gf^Ÿ(~AM¨: |Îh�BË€±WO)çàxLHêÉñ±C/^Úþuµkm´"øé‚žûÒ¹éo:9õêÈèЗ㉸®§Ó<7\@*—C2$«ð<Íú<ÇA\‘ K8(c* IAŸÉÆs§OM|ïèÑO]N§’“ºžäZ*ÍõLÎàT‚$É �\ÏE/ „þ÷ &NÇDµÚ¸oX½UÂÉ ¬¾í I=vêâs3—5]›Ô’:—5²‡, ` û+Ê+ª¨`Œ¢ÓµIà9¨”«+­U~^6ýÈ mhû9ÿÜüѯÎ8v9—ÏM&t§³9d2Y„i…"½�p½0\ŽãÂïõ><×%ÝŽ…j¹¶º¸¸õæƒÖ‚M¹?HFð¹!-÷ÙŽ]œ{þèåt&uZ àšžB2›G* )ûÒi!ŒÂ±mxŽ^?n=ífkcyùÑ.VÞÞu‚vB ODüø°–ÿüùÙï?ùÜO†òÙ3 EŽv]A&ŸEBÄP€‡A=N·^àGÛê46×w®Ü^Ü}§Ôõ[!üÉ“Ðf³¹xîÂüô¥Ù™‰fÓaÎU™çs9ŒŽŽ"?œ†¦ý3Ý! è9lË„e¶a;6cÄw]oc½tõÎßK¿X3{ õqøã) œ#+ òÜôðÅÉÉÑhZü™¸*]mÏæ”h×Nêïç-ð|tÌV÷\4@i€z½ùàÁòΕ¥†³¡íß,€8’‘ç’ß–UeRMh<•ÍAK÷-W ˆ€„áïïœú=´[-4šMx¶ J)8çè:.+•ÙÚëÞSü0’  «8O(Ç•žH¦B°EU"ËÝö[Ž!ʵ‚›a¸¶Ó‡GrÆúÕïRS“bÌbü@§¡DHH\Qã!X…“!Å"¼�h›6ÚF³ æ{ˆþ±ÙÆ!r+}åäÌá³"! `AסÝ®]¦=—°hž³¨×uPÀµtŒŒFFh¿çy‚¸,AEø”õƒËqy6Õ.$$1`°�!¼aó;»÷ ÅÊ7¥D2 1ÆÃ$nLBË0üj­ÆZUn5öxL’¡g2èÿŠ‚�@’¬@daÄ8@�>*‹ë­7euÍ Lø¢çzÅŽÑ$®Û«ìUj+ŽÛ™ëÙæhËF Š1¡¸˜H"}ÇEQDÏ÷]£eîX=椢?Xoûþ|gûõk×>üþ» ׿ó«_¾wéí·.ýnáúëZGÆ'¤‘gžEþÐòù<´~¡* ¢nc ŽãtêMk—dÁ¿¼”œCŒ2C¢ /êⱯmþʉÎͧ³YžˆÇ!J2<ß'v«‰­ÍMßj1J©¿µQºúþºÑê­ÆÈ`sàñ„àãÎtÜÀÚÞÜ®MOáÈØFF5�*e Z©nÞ»³¸Ðét‚˜(:תW·ƒ~)u)i•Ë{¥µUVÛ-ÁuÊ@¬z­sÿöý·®¿¿ôÚn®¿ò§[k¯ÿíQë¶0|ð+¼–å-íUÊæÖêJF�çDRðpiyíÎݵ߮´½zR pŠàw à„Ö;øc­n]ß«7X­R!Õò.J;•ÍZ³[ áÿÝw@€¦‡•ÝJ÷gZóšÑ4Ú{ÕÚæ£ÍÊï«–Wyê‡É€.°åª÷î_ï–~|óæýݺq˻¿±îã)Ö߆=ΑˆÈ�æ0ÎBð4ëÿÓO\À?�9^Å¡¸f����IEND®B`‚IMAGE 1494 ./arch/monster/elemental/Para/para_ice.188 ‰PNG  ��� IHDR��� ��� ���szzô��IDATx^ÅWIŒWþÞ«µ«»ªº{¦g’ñÄKÆ6&ìØà›„C@šHH@ ç`B H¹ .œ@äÊí á` R”ˆ,x XŠÂxÏx¦—™é­öíÕÏS+w‚+ÆŸêïVõ«Ö·TýUõ3ç“߼GuÀ˼$‡«+lÙ1fM3 æ‰ÿ *îaYB‚Î?Øiêìê‘>“­ ‡CÚºyëòË—×ÿ¼å‘Á؇“€t4s+sçZ×NŸüñw¿ôÔ~øŸ|뙯ÿꉵÇ~úÐÃÇž{xuå¹3§ýè‘ã'…Ê)ˆJxâøâ¡‹_<ñÂ…Ï?ÿ§¿üëÏ}aíg‡W–ŸNœêwwéhÈâ(âš¡}ly¹}¡ÓPT>iI(ˆpîPëè¹ó«Ï=qôI·Õìä$Ø`w@A¢Hò=’ Ežƒs¶ pV¯œ@àÑîÑGN~fq©ó”Õ¨/¸Í&šíyª;.Z® Û²f¤ÓñþtŠÈ÷È›oG©Ø«"`ýG[æÂ©Õß>xpñk¶ã´ZM—Úsópçu8m n³Û±aÕL0‰$IØx4mw'Ü‹ÅíJl…±ÃKöÚâ‚û×±[Žm“¦› 0P ¨àª:Û/gQP’ÄŽ&ï †Ñ›‚@•8:o-vìÏÔíú²U¯“eÕ TðYŠ<CÇÈÒ„Ea8êö¼? ¼l]êÇ ȉ`›Êœ$?¦˜ãš¦¨R€ ¹ H2`F˜x¢(‚Èr×oõ‚K“‚âJw”€FÝméšTIΦ¡3 È Ž1™L ¢xÔí{—z~~Sg •Ô9Øâ|ãTÓµï×¥{pEV)$§$Ìᑬ�7Hc„Aüno/¼–•D•ž%Ú†ÒœŸkœ3MÃ14–iÀÐ5ä¹$öCI"ŠBćÐ÷QEéµq,6UÆPI@ ãè+Žc&Æ™¦i¨×j0Ì BÈ‘'ÒõtŒ0 åE0õ’ëAN^å§¡ a)'uC;D�iš Ý4¡h:BHÂüý|°™âN]Ÿ_jè–_R5 ×ueIWÕšiè0$¹!B䃪0(ÈR¤I]7P3ÍÆGŽ?ðÕ3«ËŸuåA•¨ –ÂÊ%H‡¢\#Éв„ †\Ä’\®C“K®aÕjµ5t¥àÎß(Ë¢@!JRUºt^* (Œƒ8G!׳BÀv]0Q€ŠD`T •¡jPœ¤žŒWr d¢œ9æŒA 𵣄³î¨Y`\¦i�•ÉdìíøY™TëbÉ$(/ûSÿí4™È3pìšÇâP¨D–f0- Š$J"bqû#¿[¢â}�ŒQ/ÀŸÞÛ?¿ÛíÿËŸŒXàùL’Bä@š&pn³Í)$ #Êr‘õw§ÙÙ ¯ªt 0�‘@øÎíàw®};ÑŒÚÅüq»Ù”s˜kqìmoÒæ{›¯ÜÞêÞ``ÞÍÁ‹[“l]e •HÌÚmŠðµ·ú/øa †âDӮ߷pßýhw8¢ íïÿýÖÆoþvcçEMáÆEÀÃÅš À‚QžüôÙ~ù‰G?~öÈñÔY>ˆ4Iñ×_]ÿý ½pesú†t}wæÀÏØæîîô¥A¿÷º;Ø|w{ý.‹ãX¢Ì%ùÝLÂÓíA|iÐÛ½> YàMQ¤1Ê<ŸäyÜõÉHa Û^ñæÆ­ý_ô¶{ÿîïÇ{{ûÃ~øÚ(Èúÿ—Ñ,)ߨ ~ûÆ•ïýýÕëß奫Ͼ~eýç›A>ÅâN @N„ºÂ8(D&g¨$à^‚ãã?¥8éalé Ô����IEND®B`‚IMAGE 373 ./arch/monster/elemental/Para/para_lava.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÒi¯/_c2ùqÿ�����þ¿Ê±!!MÐvz���tRNS�@æØf��IDATx^µKŠÃ0Dµò rƒx?b¼6Ýh§_¬¥@Ddbr€ àc£ ó9À” ®¢KîÕ¤”ÿ€ÇøìMÃǸôÅ`é¿w ØÀ³{æ2ûy¼ë]O±‚%\E™´õZszP0]VSS�ŠÍ£ËgLñÓ 1\)2‚·;àgp¢˜ Ö²U}�ÕàÕÑÂ`úƒ†þIÕ1:4¤¼˜§¦€ Ð5g?©b·ƒGBLMyæýÉåÜå½é´>–Xÿíò(Âj ÖOSLÙn]\@êÌ*°L¯Ñ-CGA…Pã`óö¦T/|çwh“rAZ`vÑ}iwžŒ¡þÁ����IEND®B`‚IMAGE 379 ./arch/monster/elemental/Para/para_lava.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÒi¯/_c2ùqÿ�����þ¿Ê±!!MÐvz���tRNS�@æØf��IDATx^­Î±jÃ@ ÆqM¥/º—x”™‹Äͱõ·=Lî |¸»±ñc÷0†¶{5ÇO’ÿ˜4Ïa¦"/Ã�Ú‡ Ð<pã"W·þr@§l·Å)ïžÁ¸Ã ÖP�àžc®'›¬´‰S&«Ñ™AéÙTsmïà„UÂÖ+€ï07’ÒàFìF´3@Ê•5DŸ¨ÑÑvØ6Ü?κC!€}!Úøo¸Ð Pí ¯о,O=AÕ?†êQÖtmw¸BH‰¤óbžÏ­_¥LZ £èøE‚¤'DèŒ:­„å-¸AVh¤ÇUW­,*­,�ãÄy´JGk$� �X%…öT}ù9Uw†É+ô ����IEND®B`‚IMAGE 383 ./arch/monster/elemental/Para/para_lava.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÒi¯/_c2ùqÿ�����þ¿Ê±!!MÐvz���tRNS�@æØf��IDATx^UÏAjÃ0@QC 7ðJr‚‘u™AëÚóc- ¦Âë Ómh°ñ±Y^$Z>‰?£*N¸êõ¸!¼Ã ®o0#í,ö¾_«¹WÕ®ï7ÖæpE8z¿„€ Ô"`lû|Ⱦ0¨K€NµK¥K¦ |©\.ñO¼*àRº¢°¦®«Ä3ÍÍàÇ3T=Œ>a:mÝѨ©uj„ö€ÚH@ Kª�ÚË‹…0ï@WÈ7uƒË­&$'¯qØàlŠtÊ}?µ¹ð@À›wrkO‰Ö=!N�xÌ+¹1àÓ¶–*<=ˆ˜%¡š'Àü ŸËOȳ¡Q +è\ÈSþ‰—y1ÒápR����IEND®B`‚IMAGE 465 ./arch/monster/elemental/Para/para_light.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��[IDAT=Á±nÛ0лå¨Å)„þŒ§zU†˜™¢ MA*„–‡"Ù‘E‚õÞÝ‹… ?W °|ðé1µ„ÙVæ¢ “#¬æ1DÈ„•Ø•g6n7Ü<™´Å•è�vz°â–À}ŽX±¬ÀäBX±Ú_rƒOL“ø¾tÂ$D‡(sœÿõvö:FâΗÁ”öÕ\š{G,£$óÛ÷öìÛ;o‰;ä7æ/ûÓiÙ-NaÿŠöG zêK)z"Ô›¿JV¨K)gL]« Ð—RÞ5¸k�Yýª&ï‹sé`΄TÐÒÉ|˜};j‚«cu(®ÛåS"Ü¥-÷Z|µ½â¾5´GGûEÉg<6Æ"Fî5ÕHº8Ñ�°·½ÅËq��ð¤æ1)´-€�s*d?àFLQê#á†;:…ž¶øöa7X±üè|jp%âA.ñ¡t„«ŸÎo d&à?”s‡æ˜����IEND®B`‚IMAGE 453 ./arch/monster/elemental/Para/para_light.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�ÿÿ�õv…È���tRNS�@æØf��RIDATx^MޱNÃ0EïbäZµ;ÁD×tÀ5[T)±“­€m™É N¼©±Ü ê_b’ž7½óž®.2½vèıÄ?½Ê‚Å+Ý¥7 ß(ò8J̈oq¬q±—@çÚ§è&ú‘b¸À­—�˜‘TüHøì ûµîl=„ÜfÀöͱXýˆXÙd`º´¯ÛÃpiQ$TÇ“6çóÀ’"µ-á_Ú”Rå—¼Óxy½¾ò~¾…pâôtuɦIJXU�K’Ec“UNär‡öäû¸3Á¸¶vŒRØžMå¹ÖFSÛŠ®5„FmÊmIL±9,J¢°ä…ç»èºTúVÑ�á�bÉ=Ø� .�ºxÂ>i·?aâ¦1ÑmÞ'v#ox“öÍ|§wŸ©„P“`£± DOëÜ$Ì Û(AóæùÒ>‹ÑÑY÷æ����IEND®B`‚IMAGE 456 ./arch/monster/elemental/Para/para_light.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�ÿÿ�õv…È���tRNS�@æØf��UIDATEÁ±Ž›0�€áqŘ *ûUê‹ô®ŒÜµ`ÈvR°åLV%À]O –3v(â-«ªGò}�ƒ©ôngy—ù‘hmy×·“Ëçƒ+Xe^›-¢c%ê°”¼LÜ=šŽ¶ãÎåºsÜ£}*P[Kö‹²Ï@Zç+®%ÙÄ…unôv¥KºÈQëòçFÄVNiæñ™ê¨´â¸ Uô儼@æ¹’Æ÷µþnÛú¤kUŸÏ¹/d;Øû*óÚ³µ±•Æ¢]B%­M* ¹Ì„pÝ ­œ¨Ï%î„*§‹A±R¤öyo™é„Gw á¹þ¤þ˜ãëoyEOì_Ó¯óIΕY4uGß»ä4œkUŒÞQ4@æ›èÑ?Ñøï× tÅÍèø6±Šò `èX .5¬^&ùVs7´J˜¥áfœ]4eY–>ó%ÿü K‹ZŸ#e�����IEND®B`‚IMAGE 175 ./arch/monster/elemental/Para/para_mud.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,c2�1����r«“Þ���tRNS�@æØf���NIDATxÚíÍA ÀPÑçþg®X7Bh×…ÿ¶Žä:Ž_#üŸôyÈs÷ b‚5nPfܳ´Þ]¡Œ7ðPD ºîQQn ÃÉÆ����IEND®B`‚IMAGE 175 ./arch/monster/elemental/Para/para_mud.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,c2�1����r«“Þ���tRNS�@æØf���NIDATxÚíÍA ÀPÑçþg®X7Bh×…ÿ¶Žä:Ž_#üŸôyÈs÷ b‚5nPfܳ´Þ]¡Œ7ðPD ºîQQn ÃÉÆ����IEND®B`‚IMAGE 206 ./arch/monster/elemental/Para/para_mud.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VŸQ,c2���Š<¾k���tRNS�@æØf���pIDATxÚíA€ ¡óÿ?+„X«{ðê„À¡[ÚO�ñ£Sú@ XÒˆ—£$ô‘óUP9"ÿÂ(°çŒò}C-؈¹ŠÅ/œgƒk€ Ïá» «Þƒ á×3Âí24Q 4­£ÏM0×*{$è2k����IEND®B`‚IMAGE 275 ./arch/monster/elemental/Para/para_mud.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,c2Í…?�1�ùqcD���ïå‹tlÜ6���tRNS�@æØf���£IDATxÚíà ›†ùÿ‡G %ÅÒèvR+DNÆpü‡Á^ IpºìÀ:ë0ƒvs¯»€†ï !Xúo‚UHµ¶a­I�Ö„ˆ%É^bm A6p1ô½èäçÜ…ÞÓ‹–ï ³3¥3Ååâ¥Ãæ1ßݶpJô±‚Ë!G½4FÓPÛ)Mà‹À˜ Ï#ŠY¹B1ö¿;$k]äç>����IEND®B`‚IMAGE 292 ./arch/monster/elemental/Para/para_mud.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,c2Í…?�1�ùqcD���ïå‹¿¿¿@¯Bc���tRNS�@æØf���±IDATxÚí’!Dsñÿ?81²¨/èÝÌ ÇΊxן7‡;Â3%}™P. YÌÄñIpÄO`=›ˆÃ¡$—Tj6‹f÷Ÿ§øµäPò§usè‡u�¶˜¤š7ÚÁ«p+*Áv¦6DPÖ!U ŠS”õZÁ¨§"÷!Ù¤¢‘|mÏL‹ëοKMo;š¤"wšñP>p§p÷cëÞâÉ<&Cúa ����IEND®B`‚IMAGE 206 ./arch/monster/elemental/Para/para_water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���gIDATxÚí‘A À ›ÝêÿŸì¶‡4&¥BÏ… nˆÇfóxoò¡ˆ™ÛOº*ô­_g “�˜.°"Q?PWB[ ÑðQà#Ô-AÆyUQ ‘Ì».éIPuúã•ô™úPÞ­¥_����IEND®B`‚IMAGE 276 ./arch/monster/elemental/Para/para_water.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ��c2�����ÿÿaÿ���tRNS�@æØf���­IDATxÚÝ’Qƒ ƒ×fáþGV]ù´p€Å'ÉoRÀÏ¿‰]g�àÉ:@{€Ø­€© âÑ÷ŠX}ïD•`îòË’ñ±©¤žÒ£å° «vAi™ÔÚã˜e'�¬€¢Í!`È@þ�—© ‹ã°¨âx_fˆv�R.7LýÖ”>Ú�f~ÃèoH@,2Ïyb1f¶kJï¿¡Ùý¼/+#¾Š..#•áµÞ˜ø’^”á����IEND®B`‚IMAGE 321 ./arch/monster/elemental/Para/para_water.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ��c2�����ÿÿaÿ���tRNS�@æØf���ÚIDATx^]‘AŠÃ0Ë~À†Ü£ù€5Åä¼O ý€ÄÿÿÃ&¶c…ôÍE«¡Æåˆ"¢—üJú�R ˆñýÄž÷ŒN pãVñ8ú ¯¸ù…^J�Ùqˆ^ÆˆŠ’™ÜWæmö‡ˆ¤Õ+$ŠD/‰×j,"J ^”O�]z5N[žÒ‡Œ€Ë<ü@q>�ÃM'hín@ÆLkeKöý+�ÚäÞz^^æÉ ÝWv}oõy ­4ŽU`ª«…ÔO3wìïë¿äò[¶þÈy‰‰‚RÍ<fØ ����IEND®B`‚IMAGE 236 ./arch/spell/Cone/paralyse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥Ö÷Ök�Þ¥�ïs�ï½�ÿœ9ÿÆ„ÿÿ�ª7Šk���tRNS�@æØf���‚IDATxÚµÐ[€ Q/>Øÿ޽ýj MŒò;'¥°}wô;Ю}„Ý»…f@‘Ý»EáÂçî€Bàkp>G Ý ¢Ÿ!ð’Ìî—HæèWrB+v0à+ІX‚Ù€>!»w‹–�Ù=„I5Ïø ‚BlïÀ Ëý·À —����IEND®B`‚IMAGE 262 ./arch/spell/Cone/paralyse.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE¥Ö÷Ök�Þ¥�ïs�ï½�ïÖ�÷µ�ÿœ9ÿ¥�ÿÿ�ÿÿÿ£Uu»���tRNS�@æØf���“IDATxÚµÐÁƒ0 й¦éàÿ?3¡y[¦U¢~ q—O»´¥Íç«D• X¤øÈ×C¼ >Ò3ÞNÒ Š êê”ï�qX8VÞ%ð@1CEð ^iDWé®/Ó˜b‚¢¯žù2Š~¼”/ R"kïÅáRnÆ1ÝÌyž`Pìà“ZÌ�ÿvìÂ+¶ÞÒ����IEND®B`‚IMAGE 230 ./arch/spell/Cone/paralyse.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¥Ö÷Ök�Þ¥�ïs�ï½�÷µ�ÿÿ�ÿÿÿ)%¥™���tRNS�@æØf���|IDATxÚ½ÓÑ€ …a„¾ÿwò†+mlyûc8«ýxPPÔ�Tƒ[f¿äˆò2ÁAÞ!±wŠMà¢maïxef$ɰ2³ š°ÚayME �jé±BVëöðܘٸ¸M‚ Í{Ú!òw_ÿ÷NóÙjïuk����IEND®B`‚IMAGE 390 ./arch/road/paved/paved_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��-ŠV���c2�1�cD¿¿¿ö2Ý’���tRNS�@æØf��IDATx^E±nä0 D §ØÞÎxL‡í®÷‰„õAò'4þþ m¬OÔÌÈ¡í?%渢¶ÀË“d+ý§Õ‹Uçyçcs£ !³}�û�/0©µ2¹i­¨o™Ñ0P4òtÌWè°…Œé‰³ÐQ^èÈt/}èEgÀ+yKD6° â/M.¾Óþî�ß4íÒ×l0Ö“Û*pÍ<tD;iXà�Ö“ÅÓ‘ÙZ&u¨w•Ì)Pko逇›Íq6Ø”ÛÈül$¹¯õ=©[Å&GÚ³Eƒêù·«……ør[‡g Zän™åŒ‡%hJ¼ÒB"“8Á+ػ؃žc§lq/ýÞhٸ׹r Ð1Y)����IEND®B`‚IMAGE 366 ./arch/road/paved/paved_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf��IDATxÚuRÄ0:×ÿÿøèétkrdTš4©ŸÀø;ÁÑü.è䃧îôŒ»Œ¶~ :â¯hÝâ†=ÏOÁ·­‰úD ¯ ‘¶ÀºÎ}ádØÞBd$UÚ‚Ö¶�÷'š8}8þű¨ +ƒXÞ—œò. ÑnsQzñA°îBŠwágl@jà˜Pó˜>Œ…Z›aÝÎ(ÿ³´úÿöWyÎ"–¿�{õÁf„Ï> w!gRz2ô.,ÖGϼu<2Dv=,îs:y¬Bñ܇ôfÑþìäŽu9w2s”¨2}xnE‰#Ã1‹áÿ,6;Ãþ¨ …òè-�����IEND®B`‚IMAGE 351 ./arch/road/paved/paved_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf���õIDATxÚÍRËÃ0#<ÂÿÿñjÇ ªvž4TèÅ`ÿééüÖa“Jsoó$aYŽèµ™v²EòmŸð§Ç®§q"P”¡æK€°�¦AXXð°©ß”!æ_›ôj#-ô‚Ýè‘VOÈÃq0NÆE»%ee‚¸}b.¶¥½œ™‘NT”æ0Ú_cè4HÏûýÒxˆûþFݬKè²z¿_^±¼úÉo¯w¹/[ÆÜBÐë(‡•ö°ãIu|ìâ¯À<ä$¾¦rÍ.^' S²37Ù³hßû´GjWx `3ƒÂQšÖsSÐ]Ø~— =<zls����IEND®B`‚IMAGE 377 ./arch/road/paved/paved_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf�� IDATxÚµR nA+Æ”ýÿ‹Ë˜eÐ> V8B,ÙCø9<*ƒÛóçEõËI*Û_k€¢Qåöv ¢R$˜±ýÄÀ&›fÍñ#kõ©“éZ"Z¶fé8È;`¢ OjE I¶A}„3÷ð}ÿ´Àxɧu-;_>ºT8x=Œ8Œüéïë¡`opü`<ÌÛ BÈÏI/aß>½A{ œXôRx=ìÁŒl¥·®Z¿½¨®‡¸^TÓA8Ò *ÿ¾ ­ü|ÿŽÂ¬ÚeÁyR�· y=„…‚ï]´öAöLu÷°Ú7”ÆÃÞ$ñ„«ö^¾7IøñD¤÷lá)FTœ*«!¿ãæö à È����IEND®B`‚IMAGE 366 ./arch/road/paved/paved_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf��IDATxÚuRÄ0:×ÿÿøèétkrdTš4©ŸÀø;ÁÑü.è䃧îôŒ»Œ¶~ :â¯hÝâ†=ÏOÁ·­‰úD ¯ ‘¶ÀºÎ}ádØÞBd$UÚ‚Ö¶�÷'š8}8þű¨ +ƒXÞ—œò. ÑnsQzñA°îBŠwágl@jà˜Pó˜>Œ…Z›aÝÎ(ÿ³´úÿöWyÎ"–¿�{õÁf„Ï> w!gRz2ô.,ÖGϼu<2Dv=,îs:y¬Bñ܇ôfÑþìäŽu9w2s”¨2}xnE‰#Ã1‹áÿ,6;Ãþ¨ …òè-�����IEND®B`‚IMAGE 366 ./arch/road/paved/paved_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf��IDATxÚuRÄ0:×ÿÿøèétkrdTš4©ŸÀø;ÁÑü.è䃧îôŒ»Œ¶~ :â¯hÝâ†=ÏOÁ·­‰úD ¯ ‘¶ÀºÎ}ádØÞBd$UÚ‚Ö¶�÷'š8}8þű¨ +ƒXÞ—œò. ÑnsQzñA°îBŠwágl@jà˜Pó˜>Œ…Z›aÝÎ(ÿ³´úÿöWyÎ"–¿�{õÁf„Ï> w!gRz2ô.,ÖGϼu<2Dv=,îs:y¬Bñ܇ôfÑþìäŽu9w2s”¨2}xnE‰#Ã1‹áÿ,6;Ãþ¨ …òè-�����IEND®B`‚IMAGE 370 ./arch/road/paved/paved_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��IDATx^­AjÄ0 Es†0móG©½”β…ì§…žcíMK|ì~aèªo¼x ‡¤îê‹`Q‘“œ ZQk‰µF¦X\C„Œè –Ï»Á°}%‚+# ÁìÌØÁûâCs¼šMieÞ#(€ —ú(MRÜÜ0ƒž’q8 æ¿î/Á–@=ú}ŸÃÛ þ:¸M™KÂ?|ëX ZÄŒ èiˆí&|ÍqhøÏˆÙÁ–Ï[ZíCvzñìôw¤ÖϸéqÓË4Óà Ûe—<Mm(Z öØ¥¢ð{êÚ>E* hÀØ»éý®oÝ/ªp™MœÉ����IEND®B`‚IMAGE 397 ./arch/road/paved/paved_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf�� IDATxÚ]S ’Ã0+ êüÿÅ+s6«)‡]f$0ù\¸>Â+6ǧp”g½.ÂæS�^(Ëar™JçGA×ùP8ËÒ^ÀX5vi…Æ-”t–ž´¼;¦g.Z¹ Ï ššˆlÒätÝûšÃ»ÿJi­¡)Ÿä•“¦ç­Áša¦ M®Rôöäy5ä ´-Šé½zñÔCWÛ{ç¢1ÏQC9Œ†]˜¦¥«¸ Ùÿj‰¸ŠÑ’ñX=7šzðßÒ šÌÏû9ˆµ…Ãu®:AFƒ[K l÷"5 Z~ÖA"î–{,\kØ„>ns.ï„ÿõóUë»ý.f éÌ[´ÿÿmºþ¾Ú=c Žyq:jœgá †ùÓþ\����IEND®B`‚IMAGE 353 ./arch/road/paved/paved_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf���÷IDATxÚÍRËÃ0 ò+Îÿÿñ TM¤' ÛuPûTTðqU¶g´ˆM°ŸFV+€íÍÖ@ƒ……µ…Z‘½æ%ÈÄhP†Z8 ÔË yx¨*#¢ÃCSGK›8»mÔ'¥æg àH ¹ÉQ2X¥|»Ø,:ùU¢gåà’oý*‘9 DÄ·g·'w)×ëåxˆ7{YQgqýÑ‹XØ}åp†Dwå ¿WSþwvYèœRÉyUì¬8gj]÷b¸n¥êý,íÖ;™”|¼gAM køâ¼0k»˜Ce°¢èa5:ü¡Í>›·õ©e¿Çz w¶–����IEND®B`‚IMAGE 393 ./arch/road/paved/paved_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf��IDATx^ANÃ@ Es¡²¥¿ÓÎU¡ëb`º†JYÓiê¸P_ÿ 'À‰þDQþÓsº®ût÷ÔrßÅÔlpGËG¾˜`5åMË;¾P½Ô22£"ALßîøî¾ôlÙýÉx¢Û÷$è©è%©BÇ•„{,$^°'³O2JÞ#WäE<=£–m9‹ÆYw5Lå @¾É€û5|ÞÅ®T;!ÜeXÓ@töˆ ,õˆ‰ì…»´.A°™È©ó.#è0s¸K[DÀYæ07b¹1r®’Ÿ¡‡Ö…ž×ÇZvÓJéA˜„0zX¶V?üyØJnû°ðHôx[GWû¸DücÑwÕI_uP½|uÿ˜_Û|q�G’ÄÅ����IEND®B`‚IMAGE 358 ./arch/road/paved/paved_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ùIDATxÚÍRË®BAcxÈüÿ_ZPNâú&6¶¸hm”_€«+?§ÂgFQ½ß}H@<¸'ù¤sÅÂñJ6Ô¡®–Q‹’†Qà\n%C¡Ì0œ :<Èô¿´…�{»B²½ñœ½Á‚XkÂ.YZê[‹›‚W©C¿mÓgÇQÎTpÊߊ]‚Õ_5\—é½}²<3Œ'„6K` ÉÇïwfiªv˜gß…ô@Û ‚þ9Ê#BZ‰g‹>¹Œ7JðøÌÛ¬/ôôøÚ›lñ€î:"—Þ7¼ÃxñS∧FìÑtzäðL hzdcpíÿǹq  F̉Œ����IEND®B`‚IMAGE 396 ./arch/road/paved/paved_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��IDATx^•AjÃP Du„ β|S­CJ»lŒ»Î¦½F¾m´W Ñ±+}ÓTZæ1#"º¸{q—¿SLes°ïîyX <‹ÕÂyÐu­ý*ºÓµ†Eø�È“ Ü“`ì¾ÏE# ?w*N`Rëôº ª}U*èPþ¤<epGM|æ\Á/܇Hk_'Õ:5ÒzD×(o�µœ«µ1²L°Ø@ Ýi<l ¶½ „ŸæGé !PVimx DÍËgàŠ“%#½‘¥v:C�Hi@’s㿟|¸n’”û¸PtÐuHÊZV…&ã�+»’˜­Kz‘J Ùí»ýÓZuÃöOÉ&Ñ‹tÒ“êkVãðÿù·¥†V¾¹÷Ï����IEND®B`‚IMAGE 372 ./arch/road/paved/paved_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��IDATxÚÍS r1 ‡ƒÿÿâZ2‡Û”YÀl˜•,Èç?˜«+¹¡ÒBƒê¦!OÊÈ/,…m ¦p–LÛÑ×Ô]-Ö)4 IÐ�dA¿ÐaN·ŠCzžª.Aü­àÀÐõm >ØñÔ ÑæéÚ™$ ©÷99œa|ÉM¦­ƒ¤¢Íç(@ƒs)>NˆÝ™®çq1™Z”M‚fž=ëW‡D¶úñR¢èbYîœÍ{Þ];ç…´Z‡º³9çñݨJ‡¹øhâgA|Ü_^ì.-`ÕHƒó˜Y|Ѱ ¿ïïï½›>iAÄÒ@ZŒið÷¿3›n€Í^ÒK‡! V=ß-����IEND®B`‚IMAGE 413 ./arch/road/paved/paved_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��0IDATxÚ]QÃ0j ÎüÿÅàó:;¶¹ðd¸†¬0%ëSÆ9yžÅd“õwfà;¸1Ç"_œõ»á|lñ„E,fÎËÀºÇ>šn½ÿ 4áø›ÃÅ…%,ãò¨Âglâ±Ìs„EFA€Xì„8¡9(‹ÈÌÅ!ˆµ¹säWaoW6[LÄ`C)³öfJ ­Uf÷2ã_‡3»ãƒ¢¸”Pû›|P_G­ù‘W»nÛƈuû™{‹Ó˜¸ýj=–t(ÿG‹ Í-õ¸0"@LÄa ME}s æ[>ñBBlƒ'®zñåÆaÚ!Þ^4t —Î1¼=`óñÁÄ—øÊÖå“<Pn6•©é©p"Ž^hU“ö!íæ‚oi0<Z‡/<µ‡d®ÏC����IEND®B`‚IMAGE 382 ./arch/road/paved/paved_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��IDATxÚÍQQ’C1R£5÷?qu63½À2…˜¼(Ê€›Ú Á±£˜]bÎ=H@< ¸š<ÒyÅ…ã•l˜CÝNF]Œ<Îp3%_B™a8t¨Èô¿´…�ûVú“íC÷kMœK„–¶Z|S”H=äá×6mpv<ŠNZþ§ØuqÂBP"AüÔp]¦÷vöÉòfÏ"lß,KH>ÿß™¥iÖaÞ~ Qö@· Âþ9Ê!O‰Î'úÉw(Áã™·YßVíñó÷&oñÛ 9Ò»°Þa|ö°™L<-ÂíL¤sDz¦@]ß"Ô{¼L*@Âl;X{¨ `æÜÅÈU2±ûîÀwuWùߺÂSìÓ ����IEND®B`‚IMAGE 418 ./arch/road/paved/paved_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��5IDATxÚ]S ŽE!ÃR>ÜÿÄ㫸dJLZ%Ú‡@MP¼œÖHÌ=°¼ü PH€*‡s`‚˜)Ì8\ÅÂØy¨GJÀ˜QÕ[`3c�¬Jº¶y– ƒ_¨�ò$j`Ë Ôj>{ò 8éìU’kÉZº#W —0}FúÖåíÁÖµY@¼ÀÅí׸´ØQ°B9ß» 1ãkWÚ,ñÞ}s@C JÞ ¯+èyLü^?0îw§oýԛȃï/~ü¸<œ)(u8j–Ÿ®)ÒÛé–I{YðÐÄc¿f1rémIø~Ã1PG^è×±Ö{?ŪݳңWòkÂg$5“¤W ý „Ï®E2¹õ•›Ëp^Ôîlî×{ÿFÞÙÜñÚ3û—ŸÕ_����IEND®B`‚IMAGE 172 ./arch/food/pear.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����ÿ�ÆÎ÷ÿÖ�ð}â ���tRNSÿÿ�×Ê A���LIDAT•cX Te¬à‚00AEؽ ŒYc…ìU-0cáU(cq|(„Ñ e´–^E…2²†@ìZ e¬u‚ÚÞ EEï��E'œ(ÛG«H����IEND®B`‚IMAGE 238 ./arch/jewel/pearl.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÀË�ÿÿ�ÿ�ààà¡¡¡ÿÿÿ¿¿¿—©¼���tRNS�@æØf���„IDATxÚÝQË€ s8ºÿÿcg“#TOÆà°>([þ…Þã~‰û¹'´WV×^FÂá52 ‡Wó1¤TQaô2Óãòzÿ-TV­d¸þÐVð½J3L²©l^UÆìT®�éj™<IWËœ•d¶eöå©g°VÞz_'K–÷õ!lS½tP/Å����IEND®B`‚IMAGE 235 ./arch/jewel/pearl.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÿÀË�ÿÿ�ÿ�ààà¡¡¡ÿÿÿ¿¿¿—©¼���tRNS�@æØf���IDATxÚÝQK…@¨åþ7~jI$øWÆnég:]¾…uÍû{n¸¿cCyuÈÀì•"”Wc€ÎÓËÑC¤*¯ 3Îgy=ÿ)UeRªŠaüÐ©Š”Ä^Å-zö¡4‡ªôì]AÑ{¶”¢·ì\é…¬…ê©×ȶ} èÎø»×‹ðR_r,Õ����IEND®B`‚IMAGE 562 ./arch/shop/pearl_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ )6Šžt ���ÛPLTE�������‹‹�îî�ü�íêëÙ‘ìÙ@@@AúþSúOiðip——r¶¶‡®®ŠÎ΋Î΋ÿÈŒüûžžž ãã¤âç¥ââ®®®±²²±³³´þª¸ÞÞ¹»»¹¾¾ººº»¼¼ÆóÇÉÍÍËÌÌÑÕÕÕ×ÖÙÔÙßßßáÊÎâßßãßãäÔåäþþåççæßæç¶ç·ç¿Æè¸öÖö×üÓüîñýÕýÖþèìþõýÿÓ�ÿÖ�ÿ×�ÿØÿØÿÙÿÛ�ÿï¢ÿð�ÿð&ÿð2ÿññÿÿÿ]y â���tRNS�@æØf���bKGDHðÔê���ÃIDAT8Ëc`(€@‘ge3µ³3ece>QI!ffFýlNƆvìL@À+¥  (€¦ÀÔØÌÂÂÒŤ_ZAEM]G ¡€‘“‘ÑÎÀÂÎÎÁÍ–‰™ITAYÏZ‰G‹{WI9Ms}4+ -ìAVÊYé s‹£ú‚ÍÎÅÍÕÙìHUw.Yf4or˜ØÚšp@¼)¦¡%ÁŒ¦€`@çäÇ{! ?10RÑ� Küfd���·ÉÆÞ����IEND®B`‚IMAGE 154 ./arch/connect/pedestal.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���?IDATxœc` !Íb8�¬ F�ˆµjÕª ƪ¥YPƲYPƪ((c%Lj%L1T#HÊÙ Z�r:ÿä;P����IEND®B`‚IMAGE 154 ./arch/connect/pedestal.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿¶V§z���tRNS�@æØf���?IDATxÚíÐ1 �0Á¬ÿtRÁ¨ÄÒÁÊ;,\£Ÿ‹qÄ ]ŸÉ iAójAU/ îÎ÷Õ£ÙõîkŸ %����IEND®B`‚IMAGE 358 ./arch/misc/penta.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE½Þ÷ÿÿ����91��1�µµ�cc�ÖÖ�ÎÎ�ss�½½�„„�kk�ÞÞ�””�ÆÆ�ZR�ŒŒ�{{�¹—¤}���tRNS�@æØf���ÛIDATx^•SY®Ä ;aë2Ûý;¯JT”ÒW©þ�Ç12¥ð¸:þíÂqê!tXî+}�4í¿QÍû¤3›Ù.;©u§ÐÐwÖ8ªâýò`D&èLQæ¹ôÒ Äè –,òIâ)’›©nà6¤,iˆ$9™¸ìdVËT;·`ØæH¢¡7|:7̶³O7hˆHò-@™%¹rŒÊòZõ%‹ C”L‘älsÄRíãˆÚÀø‡.„…ZÕ³:<ܲ÷£dp~ýpxýô”·ï5~óâË‚BrÙ����IEND®B`‚IMAGE 489 ./arch/exit/Pentagram/pentagram.x11 ‰PNG  ��� IHDR���`���`���ØVå{���PLTE������¥g¹Ï���tRNS�@æØf��‘IDATx^µÑ±mA†áwöFçÅ:Á‚Œt#‹.$\» 8Q% ¸J¸’ygoõ�_öhW£ù4ü›È%®Ž \?\àÍÏ |þqo÷Lz窵¬Ù¶Ë–j6=!^Êt"Q Þ±P2{GÁ2¥cÆÒᘒF³ªH`n úe¨ ¬aO°6Ô€68¸ã&  ñ6ÀNdà€Ô0ƒÐPA à,€vÞ?üá]¼ð…ëØ»�¼#'fC Js6t=Q*ª'öJŠú ^IâÁIÔÀŒ#lTH䆨4Pð ÁðgLögÄQ*¯¾Z ~w\ ÆІtÀTO¨5´ÀjäÀ6 –Ž,.Èdj¢P:6%wòÚ¡ÔÈXÇt â #í(µc)¤’;„ŠÍ8ÁG�÷6°@á+KÇ;$î:Ä; Þ7ÜÎ�vÈ�kGÐ 7;Àtp�~5¼¥åSÃËÀdžWO-üÏü$ Oꦭ‹����IEND®B`‚IMAGE 195 ./arch/monster/acid/pet_necro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���@@@¿¿¿ÃM%;���tRNS�@æØf���eIDATxÚåÌ1 AÁÙÒÿÿìÀÁ îƒ3ãÞdØn4 >ñÍDóeýWæm#ÂÍ„õb\& [Ä%H.åýÔÀɉèbzÁ‰ö8XËÖ[[0�ó {4힃aßÁOñ’ŸãLE����IEND®B`‚IMAGE 200 ./arch/monster/acid/pet_necro.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���@@@¿¿¿ÃM%;���tRNS�@æØf���jIDATxÚíQ À Ckzÿ;/eHEÿK«ßCÁøsàÀóh0"Ô¼gY%ÅqV`1P¸ZcBæb�Æixù #Gº~¥Æ](Q¦ÿÐÀäí {ÒPKƒÇÙ^à®aå]øTY£·����IEND®B`‚IMAGE 167 ./arch/inorganic/phil_phos.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ¹‡ƒŒ���tRNS�@æØf���IIDATWc` (ÀYè¢0!Y¨H|(„n(/…1~¿�Q{ÿnDmíWˆ¢Øø»WÀŒÐØ¿5¬¢_¡±–2@A]��ZÔÏYÃË����IEND®B`‚IMAGE 175 ./arch/inorganic/phil_phos.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ¹‡ƒŒ���tRNS�@æØf���QIDATxÚíŽA À æÿ–@Ž»ëIJ¡Ñ[Ɖëƒyn3çwÀlE0­€Dg‰ÀÚ^¾¨&�÷¢[qEI` †rÈHûK0Õ÷â‘õç•l­Ò�Áò÷8w����IEND®B`‚IMAGE 167 ./arch/inorganic/phil_phos.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ¹‡ƒŒ���tRNS�@æØf���IIDATÓc` 0AiL!Q˜ ¬„nˆ…J•—B„¿_€¨½7¢¶ö+DQlüÝ+`Fhì_ˆVѯPƒXKav…0Ð��*§˜­Í7����IEND®B`‚IMAGE 164 ./arch/inorganic/phil_salt.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���IIDATWc` ÀY,è¢0!I¨HT(„vHK…1.›�Q;kfDmæRˆ¢È¨™SÀŒÐÈ•5¬¢K¡±¦2@A]��X» z{Ôc����IEND®B`‚IMAGE 170 ./arch/inorganic/phil_salt.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���OIDATÓc` °ÀYp–šQÍÈ éÀaF…BåÒR!Š—M �3DgÍ 3$3—BEFÍœf„F®„¨a] µ‚5fI]��W· l˜ù¶½����IEND®B`‚IMAGE 164 ./arch/inorganic/phil_salt.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���IIDATÓc` 0BiL!Q˜ ¤„vˆ …J¥¥B„—M €¨53¢6s)DQdÔÌ)`FhäJˆVÑ¥PƒXSav…0Ð��A \u<×5����IEND®B`‚IMAGE 164 ./arch/inorganic/phil_sulphur.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�mkË¢���tRNS�@æØf���IIDATWc` ÀY,è¢0!I¨HT(„vHK…1.›�Q;kfDmæRˆ¢È¨™SÀŒÐÈ•5¬¢K¡±¦2@A]��X» z{Ôc����IEND®B`‚IMAGE 170 ./arch/inorganic/phil_sulphur.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�mkË¢���tRNS�@æØf���OIDATÓc` °ÀYp–šQÍÈ éÀaF…BåÒR!Š—M �3DgÍ 3$3—BEFÍœf„F®„¨a] µ‚5fI]��W· l˜ù¶½����IEND®B`‚IMAGE 164 ./arch/inorganic/phil_sulphur.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�mkË¢���tRNS�@æØf���IIDATÓc` 0BiL!Q˜ ¤„vˆ …J¥¥B„—M €¨53¢6s)DQdÔÌ)`FhäJˆVÑ¥PƒXSav…0Ð��A \u<×5����IEND®B`‚IMAGE 312 ./arch/ground/Pstone/phole_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÿÿŸQ,c2Í…?�1�ùqcD���±!!ïå‹¿¿¿ ì‚���tRNS�@æØf���ÂIDATxÚ¥“ D{{  ÿÿ¿Â 6 “D¯!ë®·öH:3ÌM/08…ì/pe›‡iЉ-`'ØP‹§xÙTç¡|/z¹ÀU�hÙ:¾EPjA’-@R¸7<ê©©fsTªÕoŠÔ³ÏÔ¾=Ž”bn(e±Bí,rÌ”ÅC›9ŠKú©‚W•‚ˆ69uG€"àý–‰¥!³Ou\íciqrM¡§Ý¨Ë`÷ßÈÅ?íã^Äfí·óOäJ±O�³f����IEND®B`‚IMAGE 322 ./arch/ground/Pstone/phole_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷�1�c1cB{{{œR)΄9ïçŒ���ÿ{s¿¡7‹���tRNS�@æØf���ÒIDATxÚ­S[ƒ ¬« íý/Ü@X0dœþ48y¸› ¯ÿ øÇ0,1ÃLÆRt|ã("¡;¸ôt0Šd² …˜nSrÐg�4ÊãEãäf* Ù:Œ€Ò *ašá0ôSëUè‹kë�Ëoy¥œô‡§Òç´ê׉÷’á$Z{Ò` °cp뺷°é-¿:´}‘ „Äc`SRŒx‰ñ#Ð%¹ž|ž!·Zr²¬Ì3Ú÷GF¤{3™í? ýSÙ/€JI’/4Úô$a4����IEND®B`‚IMAGE 466 ./arch/ground/Pstone/phole_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE÷Æ÷�1�)ŒRc1cB{{{œR)µ!!½½½Î„9ÖkïçŒ���ÿ{sHš4���tRNS�@æØf��VIDATxÚESrÃ0›Vãºûÿw'ÉPsnp�…£?Ç"øó9Þ\Ðè÷Âåú}¼†¢rênV¿‚ä¤d¬ZÛŠ¡ô8 +P”¶ô¨.'htm?rJõ5$ÖZØ‹‡cÕAe?kεux®’æãïý›ÄTB5j¥}çFÛzHJɸƒaä#>c$¬"d_Kâc‹€:¡?S”³D°%&»” {_Bˆ¾»Ux„—Yh ÃM3ÆÕ0­²‘Œ(Ǹèžeo ]°d‹ëcÄÝ©h&?§`X–Á9ƒ€`áÞgÓ 2œøÞ8_ßûPå¬Ãý³bý¦@>,űRPSÛ€Ýg/KP—ä5%2œq7›?gã4Ü#®qt2…˜EñtþYm 4±–¿‡†p W„]µÈ’¬à ¥^¾­ïýG¸îÙü<lÈe{����IEND®B`‚IMAGE 157 ./arch/inorganic/phosphor.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÿÿÿòÃ\ï���tRNS�@æØf���BIDATÓc` …1$ Œ¨P(#-"ĸlZ�Dí¬™!µ™K!Š"£fN3B#WBÔ°Š.…Äš 3:„.�� 7 6Å(ü����IEND®B`‚IMAGE 344 ./arch/wall/pier/pier_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���îIDATxÚuRà 3¦6ÿÿñVrÀl×\{DÉD‡!nŠ¥`Ç*Vüb¢Ö%8q3¿@° –õß@Ær ¶ü] ¨y9;4–$°Ûßœˆ�2 S˜Ó€.¿µà~Ê.!ä–¿ @Ï¡~Dp’�ª+ïQƒ"°ô>*|ø2Žèpè9÷ @_aAüG”B@fIë.HÅÃ45è¼G-Ò3ü·À]Þ &_eÝ…óÉ(v[“iMHÓ ¼PmáÑ!ƒâÂöZÙ†%˜®@a5­Í춨T3ò]dþLzå[hÛÚ¿° EFܼd����IEND®B`‚IMAGE 369 ./arch/wall/pier/pier_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf��IDATxÚu‘… C©ÅßûßøÛN\0±A¬¬>t ‹¸tÌk\€iŸu`b–Ðóó*KÄÒÜn(‚ë'0[ +@q«ãq’�*kðè�`êbÅæ8HÏBS{.oÀ{ÿ�@mþ HÜvo›Ý½ñ"‡eÓ­>¾úP­þ­5lÔY�Ôv}_­†ˆ÷At«Âü ð4'„{ åp �áC Óêid2ei·®™++ÏQ-f5ÿI×Ü3[ .È™y ·-@•E‚‘´Ü™EU ÐäB²m•l‰D`�ø!ø)ä ~¶òVÛõΖÕcïDù€§~ÛÔ;°�hl£?™¸ aäš(°����IEND®B`‚IMAGE 349 ./arch/wall/pier/pier_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���óIDATxÚu‘ƒ C‰Ñåÿÿx•6°-'dzäj°#%n’+6|ëÊÍl" lxá<ÎÇCØï«P{‡Äv¾´d8Ng µ»÷£/±··œà.ο ü|Ó« ë-ºá‘s�¹Ý²)0ÖékÎ{L�µ\ÿ¹ŠÀµÜóÉG�q`™ÐêÀq�…ˆ?º ³Á_yiX*2zdØB‰) È¿Z¤ˆZPëcC «Ù³ÈsÓÕÅž»5!AÙ5“!8E€ŽÌæ!âÆà0ààL˜ÕÆ*Ö,¦Ô˜W˜˜³ðùË8´Á «È.Ž7®£ nˆ ����IEND®B`‚IMAGE 362 ./arch/wall/pier/pier_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���IDATxÚu‘ƒ C)®÷¿ñ° !¾ÌX¡Ô¿Z7Ä õÖ1~–˜¿ekÍ"€c["L‡‰Îí6$Ñ7€î̃Øw–¿$TNäœ`ŠÞ÷G °œpÄ{2û€‹Ⱥ°aCÄcÀ;A?Ç(Q"g›Úªº5˜TMlgç· .â ÷| ˆ9pöà¿p ý«‡4Éyú0ä[à‹BªþÂM†)¯È"Hù5¥›çyJ©‘"rQ@.ͪ%ÒQ‘a¯‹"hœºÉl]ÑÄ%*©*%Ö8v—E o„‰È¢š·^½^iUž°Œ–L1ƬýHᅥàÖ ½hþº ¦Æp9����IEND®B`‚IMAGE 323 ./arch/wall/pier/pier_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ÙIDATxÚu’‹ªÆ0ƒû5îäýßøül¤JÃPÁ,:³öÁZaÏ2„+B`A—᪞õ¯ê(z- ÅTkÿ Ø�I#?A‚MÿPHÿ (@šÀ å3ÅŽJÚ«6ÛKHuÿL YÌG˜;ØyNÞ³š,x|¿ƒ jV] BZ.EÁ›²à´ ÔÞ`8Ýü…þް›¹ýÏæEZSo÷¢F˜…&aÊO€ã§§ƒS4½v3üz¡¸9¯¹zÑÉ©Ï5Ðç…C`¼ÎîEfxÚrÉøË» ‹‰OçÚ����IEND®B`‚IMAGE 341 ./arch/wall/pier/pier_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ëIDATx^UAj1 C ]t­o¹Àà‡,fí.Íõ‹@Sƒ3 ôÆ"Rñúø Ü~¿¼¤à$?Æx/‘YCŒ("C›14×ׄ^dvF§Ñƒ§¯„ÜKÞ?æË–¦³î„”/iŽÐ¼ÊÀb(2f…e€§%Ñ7W†z5¦ßÒµ‡}o #IÓ‘èõê7O0¼‡éQe~­Ù�Tt£o޲ÐO-Ѳ·ÈÌ›žRÃòÇ!£6yäÀÈ›ó“Gî+„ñQyjÿj¼û}‚5}Úb@p¨@çÉèß°£öúŸ_Õ;iê¸����IEND®B`‚IMAGE 326 ./arch/wall/pier/pier_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ÜIDATxÚu‘„0C÷ì¼þÿ_r ²qÚh0[¥…Ž€Õà<IÂ?î(I A"„óšÛ#ÖGu¸æ V-“´û“`L`¯Ì™$èÝ£^5Dk_H°~b'°‚®N¢ô!ãàŠúá@±ò(¶AîªYpûiáA ëuRlªì³Í1�ÛV—O ~ À¡ÍæA·K¡Àke“‡,fóñ–ű2 xÜÊ,>œ ˆG¸ÉW¹YÈVú?UpfÁÕÂ(ÈR)G%,à•ESN!ÂäI�ô‚¤ lÀ}|4����IEND®B`‚IMAGE 343 ./arch/wall/pier/pier_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���íIDATx^UÐAŠ! ÐÀ,fý;©ñu€µNñ/Tãõ‡$42¾¨/‘Ž×í'púùòŸ œämŒR‘ÕC”Ç™:ê óŽ`²*sYN£ÓhÈàÂõì�xÿš.Ø-CWß/‚ö#ÍAZ �“‘޹:,Ï<¯%½µ½[ªP¿È£Oª%‘‰îoW?žs;<¤3Lå0ÿôâå�Duus–ƒ®Iß6Ñ6Q§E°>3-Ë‘tÛò&2ûàvhÙ šÓ[ ù)ƒÑäêc–å¸ð®^èåz K&h¼›àXÿÐïr¦ýó”aÕoƒÛï����IEND®B`‚IMAGE 344 ./arch/wall/pier/pier_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1����¨*L·���tRNS�@æØf���ñIDATxÚ…R‹„0£«òÿŸ|)4;sW·PXÇc1hdÚîNF6Î|EÀ 1X'c‡QÖ \f ŒÃÀ²50$GàØîÀ=($3üvÏÀvv¶Øê®&>nWcvi žÞL¾ß®0^+ãÙäzi~ô;Œ˯1¡¯ì5ÅÔl53›lr=õoä?ƒÀ¶ij˜lJà̤u®Ô-xk];#$&éÿ¢"¢Œ r %¥Ñ":µ¬ÓR9*ké´%0F ­‡CÒ›@[�W ÓšU0,ÖôNûT}΋º—ti‡2Œ—™ Ÿ™ãL•����IEND®B`‚IMAGE 339 ./arch/wall/pier/pier_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1����¨*L·���tRNS�@æØf���ìIDATxÚ…R Ž! *þîäEªmwLvɨ G1ëhã>Àh‡cÙrPÄ  uÑ0 ´¿œ >=Ü  [ˆi(f&¤˜;ª¡ÌIƒ-»Ýñ&e‡Œ¬¼vȘ:ß ÏèßoÓÂ^AGŒøŽ~®Ù¸‡†|‰[äÈ<ÊYoQÛ:à5Ôøü)x‡¿±þ7tÐ1ƒÎ£ÞoýÒ¾©C¿�Š˜”_…Ò°¸ÓÀzw*¶ Fl‘±‚8Î�b»Ñe*ƒåPo! ÐXV‹ÌE7D¬fÑ (Õ5tZçR=“èT©i856Dû÷Þ 3s××·����IEND®B`‚IMAGE 339 ./arch/wall/pier/pier_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���éIDATxÚ…R²ƒ0 Ñåÿÿø­$Y|ÝyãZ#õ„ Yw‰x•LïøHœçáE¹ö‹àl0Ë.q´QÎ.á-§LåêÃ>Þjê§ñ pu¶“„w 6NîqŒ>EÍaÕ¾sŒ€e7Œà-ƒå–c*ö£ø—Ïßáh÷†9ø¿$…D*IS5E¤¡7¥3Pÿ_H!ÖVµºÖS\—K4U,ê^„#Èð š2)ÔcstÓPB‡1ôM!}‘b(w†åÚ/â3VåmNà Éü Ÿ«ï«)M»Ah—eʦñ¤é xa(ω����IEND®B`‚IMAGE 336 ./arch/wall/pier/pier_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1����¨*L·���tRNS�@æØf���éIDATxÚ…QB!ÛÄøÿOî Dê¼l'9q äÁ8¦Ö|‚Ú´hðÉù\Dh`Bz!~{ŸÄœC+ÿÞØ†øÌ4ZŽÑ‚ÌóK?@á¨ß ߆g5\ê—€=€£ÕÃÙG·•ûp™Cú ²xíÑäâ×<Ê—g ¼ Š+·H XßâŽÿ ±5}… ¯‡zR£™gÒø0•pS˜î¢ä ‡›‡ÀÃØ”Ê2´˜l…(P”Iae»­MåêðôJØIaiˬHÈ4ˆ,–­¶M«M#à›fÙÌÆ»ö}QÝ·  ¤Mj;‰7= ƒû~Å ����IEND®B`‚IMAGE 328 ./arch/wall/pier/pier_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ÞIDATxÚ’á ƒÂÌû¿±R¶–üÐ3ÓkØ"—\’Xò¥BK—¾*�`@84ÈòŠ9æœ�>£>àØn€1S˜&”Qìéœ`£LÏ+l[<ƾ­£|%‘ ¤WÜ<už¼Ò9ÿôпéÛ yÓ¹ÞÃF ¹0 pîï¢P=tW<Àéôî¡ì<töÀ”üu+õŸ!6Ú’išß. ZÍÖ)b}ý_u}H€:àf¹EGŸ­˜œl½Á ÆÞO³I�—t}(«ú´z¨w …꯸����IEND®B`‚IMAGE 318 ./arch/wall/pier/pier_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1����¨*L·���tRNS�@æØf���×IDATxÚS„ [ÙìÿŸ|aXt 1¹F´š®›ÍO� -ò�B4�ˆäÃb2ZDëJÄ à¦G˜„@…Iî5Œ(è*‡R¥“fÐó•h†&M./h`#0qXJ¿_³ P@G DüïÄùü¯9`~ÍÒyÏ6éS 4íÈרqL‹¬f «õCwpÁZdÜá¨ý…’޾®Âº£ò§qªéþ_¤Áé0d’‚ôÁˆ9̇£f¤:oq¸å‰WÍú¹&œ Á® Ä/����IEND®B`‚IMAGE 324 ./arch/wall/pier/pier_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1����¨*L·���tRNS�@æØf���ÝIDATxÚ…Q!k…ëÿŸ¼`¦·eÍ Ô(­¢ …Ñ)Txô ÉAñÀˆ0AŽÌ¬ÝÌý1ÌL£SÌHïÜd²PÉ…k´¶\Å®>Û²™Á¸÷I.Rj°î‘Òï“ûÎýŠÿs8î0?m ¦uï9äò`Ý}u1˜´b ã ìf m!M6`C† ‰˜ðËO@û�?%©’P¼Evp~’âôе…"¼ ÚC„‚µÖûo¦ÃСÞJa6¨Ð:¯Uª(Žïƒb6xìá>Po•¬|¥À mÔ<µô“@ äኼ����IEND®B`‚IMAGE 329 ./arch/wall/pier/pier_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ßIDATxÚS‹à #jÇÿÿñ�®»W1®iB)“‹†6†-ØÚº¨GÆŽ=÷îœ}–aº.ætJKdžy,>‹hòæ Köõ1“з‚EhÉ7�e ³icþû5óý›€ã»®ÌoÒÞú@˜ú@D¹_} UØÿm‹ß‚%p*rPí¦gòµ{&ŸE؉u í´®…¨èS†Ú�!«A{GGñ§…¾ÆñçŽY$Œp™'¨G¡¾EB';'Âø¬¯ŒYƒû¨þL„CýsÓâ 6 ѼÔt*����IEND®B`‚IMAGE 314 ./arch/misc/pillars.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEï½÷���„„„œœœ{{{ŒŒŒkkk”””cccRRR­­­JJJ999sss)))BBBµµµ¥¥¥ZZZ.¦µ»���tRNS�@æØf���¯IDATx^ÍÓI®ƒ0Ð_=xdÊ¿ÿacgSr³È&ŠR¬žÜ* ^‰`PE³"xžÛˆf¬à€¹Ž‡!€ »eUÏXÁ£V0èÇ6‚ γ좸ƒ+Ó†ü'wÅ(â <ŸŠ�u–6„(n`A‘ä D,¨ÉEÀ Ï÷Òð½G�·&–Ï`ë=¹\à¨%IÚÁ ·™ +˜™ú…€7ÿËoå î> ™:+&����IEND®B`‚IMAGE 367 ./arch/floor/inlayed/pink-beige-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»§q½ªuÝœœÎ¿ü¥¥ÙÌ¥¸\Y²�� IDATxÚmÒ[–Ä PÚÀÙÿ‚§ÂÓÓéúÈC®¡ë"¢kïM„Kß‘µ ¡›~CÞ€ ˜‡ÙVø >`-¶H‚êüŽÎK²;Èú¾àK#Ì+b„vŠú¶3|€[ )OÐûÖ\uˆ˜w€õv�ßIö+ðL³3 1`LD@dÛ)ûÀ�O1ÀC—ƒ`yƒç¤xê¯�÷íSÏ~�[ElÄÌK`Öâf zÓï­PÑì[f€`Ô'_@x­®€z·o1 Y$¾X§™ÎjªuÖÂ0ÍyUú°c=!Ìœ:Fµ€„% [u<–°�¾EÍ1>Nœ¹À_7ðK‰<ûS‰2²!‡3����IEND®B`‚IMAGE 354 ./arch/floor/inlayed/pink-beige-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»§q½ªuÝœœÎ¿ü¥¥ÙÌ¥¸\Y²���üIDATxÚÓÁŽÃ P3xáÿ?x-l ”ËÎÐúiR”TH�c�¶ä57Òñ€¨N@@9. !¨2ë Fƒ: {&°¨Â3D²1 ®èz·%ïh�x€kË�Àrƒ<Iôm gz±dÁ2²öÀn©Ç= |Á÷‰ÔüB÷œþÑ@“ÚÀž{Ÿ5+Rø{æÀâc8pÁ÷¨hµGo˜’8òj!®Ü ˆ%êSœ@f é©ï6ùÚš—òµ¾ž5u)µÚ4ìð¬$ÅÄžm ¬÷¡Í‚sߺp)óˆÍç¶“b`ÕY03‚)þ��žðJ­±����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/pink-beige-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»§q½ªuÝœœÎ¿ü¥¥ÙÌ¥¸\Y²��IDATxÚÒáŽ!`˜«ëû?ðq‚¢mš?Ê&óU¨]!pŒøÇêõ ÿ¸ÙŒã–"3ȾÌ,�ó�`†¨!ubB\ÕÐ{ô0ù¥?€`ÀzÔ�ÀP38Ï{ž–=«³¿èU¤çp_PÍù�à ^<fÀN¹\¬rzÞ|„ï öpähúL0:ëT.úð:D ðtƒõCž êÞˆYÌüFUòhÀ•‹ÜÀÅ}ƒ÷’‘ZìªúRÙ5z½¨£÷Xï¥Ú€ÅrkÙ­ê™zÀ*'ä•À+vè侞9Y—ØKÒïßÜ4‡´¶À“g¤KˆLñ 1e-¤=iT����IEND®B`‚IMAGE 358 ./arch/floor/inlayed/pink-beige-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj›€-¾……´–F»§q½ªuÝœœÎ¿ü¥¥ÙÌ¥¸\Y²���IDATxÚ…ÒArÅ P#¬Öáþ.9N†EµÀüø†o$�^×e6—¬µ±À Æø�_ÐÚúIÀ96˜ë š„€Ïþ«N`]ÚêBÐfZ³Ë�;‚˜¢Ò^ b(°üÒ~À1û/�Hq‚Ü¢ÿnQÀU•(5Óû �~„Ù¾¶Â$œ'Ð%h„WŸÀ}m ðî;¯F°F úàØ`¦D¹(qõÁÐ\™8I¼"‘€Ÿ|Áì?ãKÐC'÷S™È¾ûó§ ÒSÀ¹xvFž{¿xõ Dnk!«>@ U[G =ó×»'øy¬%…îþr%2«ËNÅ����IEND®B`‚IMAGE 304 ./arch/floor/pinkmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE}ZZ›qj¾……»ˆ™Ýœœü¥¥&Ìù���ÙIDATxÚ“[nÀ0g·pÿ+W YùUêü€ãI XÁÜÝÐ݉+¡ø¿À)HÏÒ ÷!(Æ’ß7&‘4‚Ç÷@bhÖ_‘mBÕÄq&³’‚ ©76¿…tR÷q¢wÊu ‰Á[×ç€|„Ó`ðvòW8.m5Ì’îµN ¹ežŽÜ·áTÄÝR„dÜM»OØçf ÎGm6.Ásp òùÓHx=—!te_ꪔd4Åe§‡ü‘´ö !£©¸™ƒctŠ´¨÷™¶—"üä­i!<Æ/ÅÕ È›fØ¥����IEND®B`‚IMAGE 226 ./arch/weapon/other/pipe.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE-ŠV��c2�1����¿¿¿Á?—Á���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ Ë-¨„���FIDAT(Ïc` 5 @å³ ¢‰ ¦ *HCKK¥­Vt@>ª t©TvSšQ XÑ�Ã: =°C)Œ=�æhቨ����IEND®B`‚IMAGE 289 ./arch/food/pipeweed.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTEÿ�ÿ�`��­�vý�“��÷ÿ�Qý�¤þ�þ§Õ�ýýe'�}µ¬f���tRNS�@æØf���«IDATx^ͱª1…á“…`‘F,Äfç´Sû·Bzç>N°Ñ—se5$–û—Ìl-eän÷œKGe‡>EŽÖAüw–€ÚF¯§ a…gÅ_Ñ BVŠ˜LløŒ´ßÝ@äyê ±âI÷øÄ3œ4m_Ý’“®@ñ7ÔNuRÑJÔápŠ(F°ÅçĨôüR1æ¿P±½üÁ'ÅŠkŒ����IEND®B`‚IMAGE 1139 ./arch/monster/humanoid/Human/pir_lass.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÁPLTEÿÿÿ���ï§_ú€rúކú„wùzqù}túˆ~ú‡|û“ù}oøm_÷iZøi[øti÷|rù„}÷peùynø~túˆøteønaøzpøxmøulø‡‚úІûœšüŸ¡û—–ü¢¢û’Œú…zú‚uørgøvlø{t÷ph÷ofù‰ý¯´ý«¯ý­°ü¤¤û”øqcøo`ú†zû‰ú‡ùŠ…÷rjù}wü¤¥ý¬¯ü¥¥ý³¹ý³ºýª­ûކöaRöfW÷gXørdú†{û‘‹ûš—ú‡ƒù…€üš–û•ýµ»ý³¸ü§¨õVG÷eWørcù†{û–ûš˜üª®ý­±ü›˜ü¦§þ¹Áý®³÷sdöcTõZKödUúƒyü©«ý¯³ýµ¼ý·¿ü¢¡úƒw÷i[õ^O÷reø}vûžžû¢ ü¦¨ü Ÿý´»ü©¬ú‰~ÿÿÿ÷j]÷sjùy÷„|ë{~ÐXnàw…÷xÁq8¿¿¿ÌÌÌï¦_õxnöxläfiÖYg¾?cÁCcÏRf...!!!888;;;½tAÂq9Çx=Ò…FVVVccc777ÝPÚŽMï¥_ï _õ£ˆð£l000ß”hï¡iîœ`î¦^ê¡[î ^î _ãVï·€ë¨ià—Vïªnï²xå_åZîŸ^ëž\ï«kìªlä™Xê¦fíªiîªhµ* å™Wé ^ç[Û’RÞ“Tä›V²""âšWë£[äœX±""¸*±(#â™Wë£\ÎIÅ;´% ¸+¶0(ï¦^Á8À6³$ »0¼0Á>í¥^Å<ÉC½1¾4¼0ä‘TgÙhà¼1¼1·)µ'Ã<½2éšY߆O¶(Â9Ä;ÏJÆ=ÕS ÈAÐO º.ÃJít�À7ÎJÃ;îv�õ3Š���tRNS�@æØf��`IDAT8Ë¥‘;,Q†ÿo&d# ‚ÐH4‚ÄvYÍ–*Ñ*4‰xd£‘(ˆÂÒHD«¤Ò#Ht¶(lç±D"+3ŠY³;Õ8ͽ9ç»ÿùϹ(*½+áêm¡hªäòÍ�dSÑÀ@Ç5´G+6$.¡+8è•.ÈG·8â¹á³:¹ÝÉK‡ª&×þUÅ@t‹}I1� V��à´/½‡=²=� Emr¬x¡ÎÕ 0¡­×Z³CÀ*³Ë1fÖƒi?–ì5[K®�i0))¾"-¸ÅEÉ­´• L1U|½*ͯÍaeüFñbS24žñ™xÈ'8îve¦HºÓÉUø8ðt‹@òWüÞi(œ�³»dà¾8ûlÒls«o5°n‚aÖSwï 1¯jÅŸÊvƒw8fx·À‘SÊ8a ,‰pœP‹€èß@ÿ'ð¨ÍU!ŠøÉØ����IEND®B`‚IMAGE 1131 ./arch/monster/humanoid/Human/pir_lass.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¾PLTEÿÿÿ���ï§_ú€rúކú„wùzqù}túˆ~ú‡|û“ù}oøm_÷iZøi[øti÷|rù„}÷peùynø~túˆøteønaøzpøxmøulø‡‚úІûœšüŸ¡û—–ü¢¢û’Œú…zú‚uørgøvlø{t÷ph÷ofù‰ý¯´ý«¯ý­°ü¤¤û”øqcøo`ú†zû‰ú‡ùŠ…÷rjù}wü¤¥ý¬¯ü¥¥ý³¹ý³ºýª­ûކöaRöfW÷gXørdú†{û‘‹ûš—ú‡ƒù…€üš–û•ýµ»ý³¸ü§¨õVG÷eWørcù†{û–ûš˜üª®ý­±ü›˜ü¦§þ¹Áý®³÷sdöcTõZKödUúƒyü©«ý¯³ýµ¼ý·¿ü¢¡úƒw÷i[õ^O÷reø}vûžžû¢ ü¦¨ü Ÿý´»ü©¬ú‰~ÿÿÿ÷j]÷sjùy÷„|ë{~ÐXnàw…÷xÁq8¿¿¿ÌÌÌõxnöxläfiÖYg¾?cÁCcÏRf...!!!888;;;½tAÂq9Çx=Ò…FVVVccc777ÝPÚŽMï _ï¥_õ£ˆð£l000ß”hï¡iîœ`î¦^î ^î _ãVï·€ë¨ià—Vïªnï²xå_åZîŸ^ëž\ï¦_ï«kìªlä™Xê¦fíªiîªhµ* å™Wé ^ç[Û’RÞ“Tä›V²""âšWë£[äœX±""¸*±(#â™Wë£\ÎIÅ;´% ¸+¶0(ï¦^Á8À6³$ »0¼0Á>í¥^Å<ÉC½1¾4¼0ä‘TgÙhà¼1¼1·)µ'Ã<½2éšY߆O¶(Â9Ä;ÏJÆ=ÕS ÈAÐO º.ÃJít�À7ÎJÃ;îv�= T���tRNS�@æØf��[IDAT8¥Ð!HaÆñçCnÌ àÐ"hQ´™‹eÑb° &Ù0(Ó4,cb³˜lV±ØEa`A°Ì$Î!‚(CEÝg¸»m÷íL¾åî¾÷wÏûÞ¡°ªµnéîÞ¿öÉ?Aµžà:n�&na<<á4 0}©pP˜‘.©‡8ãyð«wî`’—?v8U/wcß=̇8–ÐB'ÈÄ >�€·DZ_áÕ¢‚@™X¡¤ø[ÂËP a²Ú÷Áª Š›;Q6öŒÃº üç¼·D.l»Í¼5¥-,õÞÞ•³QÌÑ(VhÕ¾­©±ðXŸâ|8tšÖ³î×ÉMø<ioíõýðšx½°@$Õ^ 6 T~¬‘Q·ûÞ‡€FU6 £>쉶ºøSç¯m]LÄMu02íÓ :ÆØ PÁˆÐÅÿ ~ºÈP!؃¸����IEND®B`‚IMAGE 619 ./arch/monster/humanoid/Class/pirate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÞPLTE�����kkkÖ”Z����@��H��\��c�d��x��0��G��=��l��p��T��|���!kkkÖ”Zççç�µscå �ƒ�!!!i a)½{Z�`����f�ï¥cŒJ!�o��‰��)�—�)11191)BBBJJJ��sBBsR„{Rsh,¥ssµsZ�t��i�½{cÆ„sÆŒkΔk�xÖ”cÞ”k�|��W��‚��¡���90²âì���tRNS����³“fš��8IDATx^½’ÕrÃ0DoÛ+43„9EfføÿªlO;‰â$o=¯{f½’ : �¬€%4p€Õ*®n.W >ößúç°œïÁÃäy™àqIvo1¯-ïEr›Ló|àÒš\HsI)™˜m·kr®0 B.î©+ìO]pέBpÚ„ Áºú�G¸–j ‘ñ;áŽ5˜Ì´$7)1Ôé’ž&PA-SpG òwÙ5Èž¾Qì'zRJG^ÃЂÆV’$iŠˆ£À>HoAHUÞÁ‚m€±K…8.+Ž›;�_‡¬î!Kå,<�xMžô<B ýͪ`ÇZœ´|@Ù¢‚87ÂÎéQ0ó!Ì6ñwJ+¨úÓ¹™ÿ'`� dÅáK6ü&b]AEýùý™Û€•øˆÙ:#‚åóèÊZ–Í����IEND®B`‚IMAGE 698 ./arch/monster/humanoid/Class/pirate.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE���kkkÖ”c�=��C��O��b��u�çççï¥c�3�ÆŒkÖ”Z�5��}����€��‰�����/��=��o��w��G��cççç�3��O���!kkkÖ”Z�5�����c�d��V�!!!)BBBJJJµsc½{Z�Œ�Ö”cå ŒJ!)�b��J�� �€���)11191)999�—���!�sR„{Rs��9¥ssµsZ�n���Z½{cÆ„sÆŒkΔk�u�Þ”k�C��}�ï¥c�‰��+��…�j‚Ĉœ���tRNS������������������•s=?��UIDATx^Í’ÕŽã@o†qá4˜1ÌÃÌL‹ðÿ¿2×r¢€;ó¼eKm©JÖyh*‚2³³ƒ H6gxææîî™x|n}o.˜ùarÛ{úõÊmëÆ=€îŒ ‡ZU“Ýn·'??|_ÛUÏ»=iÉÆÛrÁ+¥¤m¹âA ˳ö—¦}µÊ²„�,Û–Þâ´÷”ÒÒöáJ¥÷ÅÑÎÈ Ïb_ã€ýW¸8+£ ñxAMidýÿ’ˆýÊqÙ×ZñZÉŸ(÷q;2*(¢ßÛÖvi"pböA[D_ã—9'rÀo' NË߈æ6Ö9˜ 墉è{D«¥M‘“u€EieªÁpá~.& œÕýv6e¯\ Š14Û'ÈǞ㊊ (ƒ2xi™ „©?¸0øØ]k£‡­o B¿Eÿ1ï³($Âè¡����IEND®B`‚IMAGE 694 ./arch/misc/social/pirate_hat.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��5PLTEÿÿÿÿÿÿÅÂÅ���ÿúÿöîöîæîƒƒ��A@AJHJbabjej��””žÅÍÊÕÞ™bÞ¡sÞÖÞ��îêö�ÿòöÿòÿÿöÿ)()´¶½��RLJZLRZUZja{�jijjmssDsmssm{sqssq{{y{ƒ]R‹Y1‹””U”eA��”‘œœ™œ¤‘j¤¥¤¬}R¬¥¬¬ª´´‰Z´²´½‰R½¶½ÅZÅ•{��ÅÂÍÍÂÍÍÆÍÍÎÕÕÎÕÕÒÕÕÖÞ  Þ¶ƒ (1ÞÚÞæ²‹æÂƒæÞæîªs�101öº‹öêîöêö949öòÿööÿÿâ¤A8AA<A�J4AJDJîâîƒ}ƒîêîƒiZ‚Må���tRNS�@æØf��/IDATxÚÕ“ÅŽÄ0çu‡™g™™™™™™ÿÿÖV¤X™dgO{Ø’|I•Ú–å„þ!$hàÄ@?x $¼$xAÛj¶X°— Üøb‡BÀ–íEaå2ü'Ñ�ô '‚H,5{^_;ÛlŸ[S‰ã ¢6Ǫ»úfÍ€N®—A¥‡ã½#R…¹ý^~�y$ÃÜÿà`ðñ¢;ÓJ:‘ 0—Š<é@æ,»Öq9•]j`ã©h‡WÓÀép“Å’Õ•<prœtUÊ3ì2?TŽvp|ý¦‚üÈ=Âþä@8z¹cźI*@- |1[Ê›¦©vpUÖsÍ%�–O«{”¼YµG¤µêœ*È4¹è3*HŠ ÑcÏÑoCèù–±é%÷šQ����IEND®B`‚IMAGE 193 ./arch/flesh/misc/pix_dust.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V.‹W�Í�¿¿¿¼gÍ���tRNS�@æØf���cIDATxœc` `„18a q(czTÉÔ?Sj9„Á{ªéêuˆjÉÈò š%­ôïïÌØð+`©¹WK¿€åDcã!y†Þ-3BC V½ 1G€…æ˜3H�lf‰ïÈ����IEND®B`‚IMAGE 220 ./arch/flesh/misc/pix_wing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÆÎ÷Þ¥!ÿÖ�ÿÿ�i·£*���tRNSÿ�å·0J���zIDATxÚÕÓ±€0Ѓëÿ³)=Ë�‰©“2Èoé 졾± Æ€5r¥e+³Z*÷€˜‘=н€{ÏÝí0j„`�Ý+�géÛ‹…ðø^îDwT0 J¯Ï@ îeÿL% (¢‹¿øõ.®_­öUð����IEND®B`‚IMAGE 293 ./arch/monster/misc/pixie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VÁq8�Í�G$ðæŒÍ…? R-.‹W���ï§_d3�d�‚B'�2�{¹·Á���tRNS�@æØf���©IDATxÚíÑ ƒ@ c¼»î^zÿÿ»M ‚’Ô>õ­# 2ã¢Ê :§ÛÖš\ضKÑrÀsјƒ£¸ø¼À·gŽââóBdò¡�‘}Ø89:âq £�‰ðÕGºŸ6ÙÉGõXfsª’,h¦£iG^ˆ‚{_6¨AºÏ`§{SJ/@\Àì”ÒÛNšLHŒ¥fK%¨‘'äÆÓ/Ïož7 îbáÏoxú`4eKP����IEND®B`‚IMAGE 281 ./arch/monster/misc/pixie.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VÁq8�Í�G$ðæŒÍ…? R-.‹W���ï§_d3�d�‚B'�2�{¹·Á���tRNS�@æØf���IDATxÚíŽA Ã0 Çvw­øÿß­â"zÙ¤´ç.!fd_±|×ZµÀ”±qK£žÓœ/N%¼ä²ÀÅ™‚,aØUDriŒÞSØVë3yBðáƒ7F�Ó}ŒRHªA÷k. ÜÛôÒû£«@Œ;½4€¦´ÀÀhš›ï<°ÍÑgqŸ ¥`vàŽ3~Ç'ΛmþûiO(œµÛ����IEND®B`‚IMAGE 202 ./arch/monster/misc/pixie_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vîv�ÿ×�jê •���tRNS�@æØf���oIDATxÚÝÒA À DQîèB ý0ê®J]ˆ“<R*Ž?-èý>[°_…À‚ýRð v`Ðfz'P40­Dö� (ÁBä�ñ L±yöcB â&_FãðÆà#Åøu>="Í¢j����IEND®B`‚IMAGE 501 ./arch/player/race/pl_dragon_bl.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTEÿÿÿ///444222111777000&&&555<<<333;;;,,,999===(((!!!+++***...>>>888::: ???---###)))'''@@@666$$$AAA"""¯��BBBPPPLLLCCC¤êþm���tRNS�@æØf��IDATx^µËGnåP Qù’âÏ9;uÞÿö H€- ²FîpråÛ#W7 Œo4çUâÖ'Z0kÀÏ îòߟ‚5´ …WbfÝæCÌ0Y­fE#Xb&biŽå2Ø?¼Í@I’n³ Ê:Ýø?;–ÒïºNê’/tçO%ò(A‹àt{WUŸÃü’!@WEK¾ò öÛ2Ø1eÇ @(Ž HT›M"@U'´¿ËþœÕOíÀÑÕæ šÀ¤_¬¶uû­ˆs*ê  ƒ^,«µdØÜù,Ñ�Ïe*<2ÑKðU˜û2%cJ0y~û5`¹Æ¸ €æãPÍAp|%–é¾L÷+Û 1…øá����IEND®B`‚IMAGE 502 ./arch/player/race/pl_dragon_bl.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTEÿÿÿ///444222111777000555&&&;;;<<<,,,!!!333999===+++>>>'''---))):::***888@@@ (((...???###AAA"""$$$666LLLCCCBBBPPP¯��¾Ü¸(���tRNS�@æØf��IDATx^­Ï׊#1Fá:¥Ø18ç<›÷ý_o1Ý`lÙ^æÜ‰ÿ£@òɨԾ¼üRC¶’´)Wð{†]ùêÇ*™Øö‡'ÄÜxæ£ܦ ¦v#·nSaJ—@A¸±0"‹Å挛Ó$m<]çÍ7÷á¦E”'M”m¸|×¹«&g!Û 6¸LÕ0žåp¯JouyQ¨ëµY¦»D\ãl[ã³Åø‡½Œ!ßå´@ÓÔ# ªÀ–GPïóöà�°Éù¹nF^%"6˶=JÚ‡¬õ2�$íhòV¯@^€±uy@^w*Bæ7½kúßýƒJÚ£ §¿ÐJÒÀTã¢ÁòT�ªƒ~%ü Sêÿƒ/ëÒ ‘îG 2����IEND®B`‚IMAGE 551 ./arch/player/race/pl_dragon_bl.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ222111555:::333;;;777+++???666444999@@@888<<<)))===...>>>***%%%((('''///BBBAAA&&&!!!CCCDDD""" MMMEEEHHHKKK000,,,¯��---øC+1���tRNS�@æØf��HIDATx^µÑGnä0PU`ŠÛ9‡™ûÏ’Å6›°¼³ÿF�õð‹(V­õÜ� âH„\Ï*ΉK`%¤ Z�¬ G8�‰ßÿ›¹ ºef ôfŠ[à'X×x8Q€×õ(Ë6‘M#Îa=™="[€¹sLñm/Ÿ˜‘šš¤ÖÙ%ÁS®˜¨•Êû#¸I »2· >vPJL0 !D ¦÷¢¬¸Ù:œ«øŽ>ï°×vÌáî¾zЂ-g<6”¦Ý\˜ÀÎ ¹d'æ…¾ô!"�b³òy©Sþޮ;µýÚ¢Î@wá E·i:Lbtô®==ílžöþ/:ÉT¡á¿4=}ñ „S1*/[cZ Õ /ëºïMó;”Â*Ï,£ÍY ΉtñÅŽyyÕ¯çÑ £E‹@����IEND®B`‚IMAGE 546 ./arch/player/race/pl_dragon_bl.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ111222333444;;;777555???999666:::888@@@(((<<<...+++***===///>>>%%%)))CCCDDD---''',,,&&&BBB!!!000AAAEEEHHHMMM ¯��KKK"""ç&hÚ���tRNS�@æØf��CIDATx^­Ñײ£@ P·¤ÉCξycøÿÏ»¶\¼/[«'(ººÐêŸGþHÀ°zžu4&>=+Í ý�¬Ua.ù�ˆ– .ãEY‚CÝŒ 6ßí¼VÈ]‘¾ëKžƒCÞï”Æ ö% �ÃcUk|À€$Ðl<QZLÒéR²ý¹…) Ó¢?k¾Bû¨QB˜ƒ¼\œ ²ˆøÖ€Â†Œí÷!¿|J}}{>ºÌÉ |¬Mzn¿V™ñ³_˜‘ì>Ù î^ôn ~tY݉*Lk?ÙSÑæ¥Æø)/³Åå~Ýb$=L 5/™&œá Tâoø÷ŸxÊÂP�w÷d¹�Ú)›uKÀ¢cÔN5Ö6ã_ØŒSEÑu¶‰‹[%áµ AEO)x!ˆÅ“ÎôP�DHûÿ8Ÿz à‹fê����IEND®B`‚IMAGE 637 ./arch/player/race/pl_dragon_bl.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ºPLTEÿÿÿ000666---444+++555999111333...777###<<<@@@///***:::,,,(((&&&>>>222"""888''')))!!!=== EEE$$$MMMAAADDDQQQ???;;;CCCIIIPPPRRRTTT^^^VVVLLLSSSBBBGGGlll¯��FFF%%%JJJHHHÚ—.{���tRNS�@æØf��qIDATx^½ÏÅ®1†Ñ*353 Ãeãû¿VìUzZ3»(ßÖ§~Éðÿ;ÒFp»iŸDÙMPÖ¬\—œxquÆñ˜X )[ˆ¯—|�\Êj vë’EÃgO"�_îê}´<pv¤¯Š^0†N’Ó!èÏÓùl¿ë¼¨¾[”Ù`’»n³Π=¼bûqUù L»o¬™ƒ{ªQ1¥…Õ*ü/}HG„yŽ ª'­ªçXƒ0â4µB½!h³Ê2D@ߘZxtzŽ<.%áŠ*“Š–í¨�4ÍÔØÕ'M‡~9pŒnr¼­Ž#¡k\ˆa—Ô�Æ]òå뛀XO†hºv5Öô¢œüª«w÷ú¶a¬u·÷�ÍÏ2ûÕÖ@ÑÃ,×™"ÇóË€¿#!„yy®Ð¯–æøq Wr4C£dµæp­41†DqDj 7<‚É-ÜŒóýÝþ}�ì¶$túk����IEND®B`‚IMAGE 605 ./arch/player/race/pl_dragon_bl.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���®PLTEÿÿÿ000$$$---555666999444<<<111333...222+++###))):::***"""777,,,(((@@@>>>///&&& '''!!!AAAQQQDDD===MMM???;;;^^^CCC888EEEPPPRRRIIILLLTTTBBBSSS¯��VVV%%%JJJHHH§~Þâ���tRNS�@æØf��]IDATx^­ÐǪ1„áSGYs˜n Îùý_Ìš‹ M[ƒÁøßÔBHˆþ¥òo@a¯³RVÈ-õ¯€(².Ózˆƒ)5Wº«³§(ȳ^5™Õ»ÌœÄ Èßà¥Ýö_ÈáÃ`|;¯‚Í68$ãíú™`ÊÓ½½€jýÉÔ4 „Z­Î» ªÏÕ´ c u¤‹Hä0óÝî=ÞÝ»W rÆùÆ»þ׋8c¸?<öúD±Þ TM94ˆ€\)òÒùó£5ˆ‰:U s¥v¢Kþ«Q2’ÀG/6€Å¹H$!_!tP‚±ÏbL‰@9Š\Üx¢Ëί‘…mÀ]qö²s0­#ì=rÜM�´xÄ›vó5e®¿Må÷»4öë¤k­}ÙàÇ“•ÐnZÀNÉéÁjŠ´ÎEi!Ú¤ž¢UcÂl{«Ò†®$G–Òè-]÷·{úßýÖµ€½����IEND®B`‚IMAGE 627 ./arch/player/race/pl_dragon_bl.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÏPLTEÿÿÿ222;;;444(((555999666>>>'''%%%333777+++)))###888---000JJJ,,,///...EEE@@@:::FFFVVV<<<===!!!111AAAKKK???GGGCCC&&&LLL***HHH$$$XXXrrrRRRYYY\\\¯��TTThhhlllgggWWWkkkBBB___sssDDD"""IIIËÄa©���tRNS�@æØf��RIDATx^ÍÌÅn#Q„ás.B3£ÃÌ4ôþÏ4W‰œÈí¶f3‹ÔöÿTðÿFÿÑKxþÞ>˜CîX9¸ä.2£iHÂ~ÁŽ£x0 t+‚½=½u¹³�ˆ²ª /gˆ¹ AÛöŒÌøÇ•nÍä똉ÅíCqáøâ=»ÜÝÎK2¹&‰Ì S‘�’MðXäÙ®‡7ЇuQPàsµé‘hÒ=Îï^ß9ž>O6±ÐöOÁË*÷GG‚úÒQÚöjÛKW?~’¬iD­€æCÙίúVV8¶ƒ‘´{à_^QOf€MÓ€aˆ€åb–:1�BÌì‚âižßãøƒ¯qÐDˆl”Æïà°È!Šñ2ˆÀîtÔ8AœY°>g„;ÐRümŽý@kZ”¡¤»�ѱ,ë$)*Îmè#tTÕ''õDPØ'”R„or¯ ¾Ýþ:-¼WÈç����IEND®B`‚IMAGE 627 ./arch/player/race/pl_dragon_bl.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÒPLTEÿÿÿ222333444;;;:::(((555'''///666%%%@@@+++777###)))JJJ---888000,,,999EEE...FFF111===>>>!!!<<<KKK&&&AAA???***$$$GGGLLLVVVlll\\\hhhWWW"""TTTHHH___sssDDDIII¯��gggCCCBBBYYYXXXkkkrrrRRRLWà���tRNS�@æØf��OIDATx^ÍÑÅ’+1 PÉìfæã 3Ãûÿ_zéTR³hÏvjîö«äüj(�¸ÁŸ€ÃÀ÷‘³Íd°‚ÂU4ö83ƒÂCaÇ!Fš˜FÉ`ø�°œ24öé' €oP:ÄB¨,'h6‘�mrpZ…-Ü<éÑpE”º±ñ+óâ2Ïi³Œíú^ÒÑBU…ªI†'ÃA ›®Þ‹fg…{ñùZ·¨xßçùt°^g4Pe‚×½%ÓÇ«k¦ H@ÉÚêrSÞ"×�ˆ`[´? øúG]k�ma¸:“ôœ$v`~¿¢ÅV[=Çž@f¨Û4Ù‚s°jÄjäG˜µ VÉb¹óÁ$é/AQŸÚÓÀWŠæNÜÿ'"jÛO,§ ÜK `´åååe9κçfÑ4 “»Ú,(E„?˜ÿ,9ÃO–����IEND®B`‚IMAGE 986 ./arch/player/race/pl_dragon_bl_spellcasting.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ+4¼ƒQ��ZIDATXÃÝWKNI}™YßCK6´ZƒJ£¾�ë9Ä,ì‹ø"s‘YX°$Ò+`g!$[â#5C]ù‰Y Ì©þ`ª0’cUÝÙñ2^¼ˆhàg°Á`@ƒÁ€žò.ûžÀïÿxGòkÆŒ1°ÖBJÙÊ'jpõW²�¿¿þJ)DQ�(ЂТ g0í8üp÷�¼]ᣔ0Æ@�X\\ÄÎÎ5°½½ýMÔ½^oîÙߟJh£qòç¯0Æ Ëî鸻»Cžç@°¢(ˆˆÀØ=uó8ìõzÇñܳ­­-J’¿ýrÏã7F°Ö‚ˆ°°°€ ØîîîÃR²ªª�À§ÐY¿ß§~¿O�p{{‹n·;s£““�G_^áæææÞ)çR²½½=€UÁææ&EQ„(Š@D°ÖBk}Ïu‚sŽååe\\\ I(¥pyy Î9²,óÎ\DQ„ýý}Ö¸NOO™ÖÖZ!†!‚ ˜x&"$I‚ÕÕU$I‚<ÏÑét¼£²,‘¦)�4>¡‚ããcV–%ªªc azJcÇ0ÆàêêÊk¾^7ÖZ/Å6LóÙív‰sÆ„BÀZ‹ñx �¨ªÊ§ÙÑ´¾¾Naz@N¶uß5¨`ú ǹH½Ó€µÆ�Àõõ58çHÓÔj|€«r!â8†ÆŒF£‰—�XYYqrÃp8ôjrR|¬5Ïí„A€s"BY–7‘R2¢ÿ/˜¦)8ç^ÿa6>Àã¥DD>Ói¬?—e‰áp×KŒ1¨l€ˆ<WPóœÕ9®Ÿ»¬=Æûƒ�ÎÎΘ“RUU¾¨¦m:î³Ký¼BlT„.…Zk¯iÆŽŽŽZÍø6;ÁL:AàGŸ À‘R nJ>”ζÁQ µ†RÊ÷Îy£›>Ì €óósÇ1¹^àºá²¹×ÓZÃMG­58çh³ç=ËV¼±±AKKK~&(¥|ª×ÖÖH)Î9â8Fžç~ްgPײÂ%×ïƒ ð L}ÙwQ0]X®7(¥¦)²,C§Ó™XᤔL)km+º!vø­æTÿísÈôIÖæÏ Ç Û‹xqûP9Þ+»:n@����IEND®B`‚IMAGE 1033 ./arch/player/race/pl_dragon_bl_spellcasting.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ,8útƽ��‰IDATXÃíW=O+G=óµkcka H<\(, 6O)h’Ÿà:ÿ%UÊ”©#EŠ”B)â+«P @è)zX²Á^ïÎÌMfµ6K° è5¹Õ~Þ{î¹sÎÎ_8ؼ/FQDRJ0Æ`Œ�œžžÎœÏS<û¥òÝ7>~¸G–eð<ÖZDQDQQ§Ó¡w�àk�°Öâçäoc „��Ôëõ·e`ww—¢(šìè¯ÆÂg|»ÙÅ{ ccH’�Ðét¦b‚ qÎÇ1+ΙˆÀØã¥â=�øñû´ù•…1w:ÄoG¬µ "Ôj5H)qppÀ^d Š"rEŠÝÆqÌÒ4€œâbüðû?짃5|êUð럵DŽ…&´ÖÓ« Ýn“ïûBàääd õÎÎyž‡n·‹ËËKÖl6‰sŽ ògÜ:ð<‡‡‡S«AºkíØb€íímr$I‚ °··GB<<<@k )Sœ±Wû@»Ý¦J¥"ÊéSJsŽ0 qÕÕUÜÞÞb0€ˆ¦)...æö“1œŸŸ³áp¥¤”BäÇDc îîî��žç!Ë2XkŸ¬YBN^ð}Œ1(¥r‡cŒa4�Ò4ÍÇ•$ °¿¿Oý~¿Ȥr^Ðï÷Á9c B!`­Åh4B–e�€n·›¯øjµ ­5â8f³/àf.„È8¿‚�×××ÃŒ±\ë½^Q‘KDS²677ÉiÞ÷}T*!$ êõ:z½Â0�T«UpÎ1 `­…Rjæâ¥ �€”œs†ÃaNy1†Ã!ˆhÌŠçs©À“{Ac Â0|ÒU±˜;íÜŸà¤fŒÉý¿Xh2¹;wÔÏ#DZÜÜܰV«ENnJ©g_,ëtÖîK?ÇÆh­sKfŒM•xžâ¥�Üܜ׿E±©ö„Íf“–——áy”RFHÓôM‹þ'ZëÜ㉜s¼g”vµµµEAÀ÷}pÎsÍO²°¶¶F¾ïcii)wÑ££#öj��°±±A‹‹‹¹%»ï@ǬÑhP–eX__“©R D„ããc6÷\\]]1§ k-¤”PJ¡ÕjQ­VÃÊÊÊØæ%ŽcæF7‹¼ˆ´,™ó‡2º'÷”¯Þ–—%ÑZ?;ë÷RË\¿nÓŒ‚ãÿøÂñ/È,ÛÁž<r����IEND®B`‚IMAGE 1006 ./arch/player/race/pl_dragon_bl_spellcasting.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ-ŶÇP��nIDATXÃÝWMOäF}Õm{옅(˜C‰XÑö†æœ_eWn‘rÊ?È!‡ˆ Ñ7@Ú!e#>’aϸÝ]{ Ý™a†ÁfY!¥N¶lW½®W¯ª ü¬Ûír·Ûå§|Kø»o¾dõ6Ák-”Rµ|Ч×ßÇ=�øú‹wøê³E� Ë2βŒŸÀ,Ç›ŸÑkÿoß¼1RJ�Àââ"z½W°½½=õÖÖÖÔ³ðõð—½ßFøýJ`÷Õ²ÏûHÓ;:†Ã!Z­V%"Ë2&"Êy/ßç÷§_ÿ¢£·~T+æC”e !Œ18==EQØÙÙ™@)EEQ�€O¡³N§ÃN‡àööív{ à?ÿA�pøç'¸¹¹¹s*”R´»»K�øQlnnrEˆ¢Ì k-ʲ¼KuBååe\\\ Žch­qyy !Ò4õÎ\DQ„½½=ª\'''T–%¬µR" CA0qÍ̈ã«««ˆã­V ÍfÓ;ÊóI’�@åà*8::¢<ÏQˆazJˆ£ÑÆ\]]yÍ»ÚQJ‘µÖK±Žã7ÇÇÇÔn·Y"‚”RJXk1��EQø4;šÖ××9 ChVA?Ô ‚)yý˹”Èx§�k-Œ1�€ëëk!$‰T5ø�WåRJ4 H)aŒÁ`0˜øÈ€••,,, ôû}¯&k-˜ùÑÖ<³A�!˜yžOœD)EÌÿ0I!0 `­E†•ƒO0Æx)1³ÏÀý4Ž_çyŽ~¿×KŒ1X �3{® f9çxü¹ËÚc¼?àì쌜”Š¢ðE5¯%;Z\m8�U'â” Œ1(ËÒkšˆpxxXkÆ×Ù ¦ŠÐÑà(‚�+øL�®ˆ´Ö`fу鬬eYBkíû¿¢ÒIŸ f Àùù95 v½ÀuÃe3W–%ÜttKF=ïY¶â ^ZZò3AkíS½¶¶ÆZk!Ðh4ÐjµüÙßß§g0®e)¥J®ßAà˜ñAÆÌ888 ¢à~a¹Þ µF’$HÓÍfsb…SJ‘ÖÖÚZtUBzßá¼æ4þîsÈôIVççDà…íż¸½¬óÙÎ ¥`����IEND®B`‚IMAGE 1119 ./arch/player/race/pl_dragon_bl_spellcasting.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ1!asa��ßIDATXÃíWËN+G=ÕÓó°=&<¼ƒ ˆØ0Æ+ï²Iò ù™üNùƒ¬Ø°3 bÃ%²öØžGOW—yŒ_\È*)©e[ÓS}úTÕ©2ð_7úLg§§§l¾ßÜܾ[­@§Ó¡@³Ùd!´Ö`.0 MÓÈùù9{ž‡ËËKúT�gggìº.ˆyžC)5w¯ëºH’açŠ~ppÀ–eAJ f†Özáþ<Ïá8‚ àO ¥„çy "h­¡µF†dV‰êW†¤”�P€øj�ÇÇÇLôåŒápˆ(Š0}h†EˆB03’$1ø0“v{{;7Ÿâ8á×0D­VƒëºÃðbe�“1›4­5 óö<<<P–eøî›üþÓ1†Ã!²,{_AÀY–A)…»»»â““ö}RJ(¥ ÇÓ¡�€££#>û–aYnÿôŠ}r�•JišBÃÃCn4��fFÇȲ •J� ”B³Ùän·[qOÕjÀ?þ fÆÝ_•2ÓNß"ö}ŽãÀó<<??�Æã1¤”ˆ¢[[[H’¤¤iÆ~ùñ{þí/LÒ¢øM‚h·ÛoöT«UŒF£‚zÏó µ.˜Ž…J›²Éó¼ä ¶, ëëëȲ kkkèõzˆã®ëÂu]03²,Cš¦ÐZÏea®…aHD˲ „xóÌ÷}ôz=�ÀÓÓÆã1˜¹$ÁRJض "šËîB%4·šåàââ‚�`0À¶mlnn‚ˆðòò‚$I Ñ1ê·(Äs<>>Ò`0€–e•´Ûm®T*X[[C­VƒmÛèv»ÔëõÐï÷ et]BÑÂ<˜ù`gg‡ëõ:|ßGžçsãØjµ˜™quuE�°¿¿Ï»»» "¤iŠ4MaÛ6â8.@AÀK»!¡Z­¾éïÓÖéth²æy^ì×Z#Ïó",A°ari7ô<ŽãÌUµy¥jYV‘RJh­1 ”‚ã83Ûµ˜5Vmll ŽcÄqü®q¬^¯ƒˆÀÌ`fH)á8’$A¿ß/±iXÓ†©å÷΂ý~{{{�¥˜×××´¨±•p§È\ó{™5 Ž¢ÛÛÛ°mÌŒ4M‘eÙÌä5!3Ÿ´¬õN–Ó·v]·PD3–Çc(¥–æÎB).èyeÃ$—é€BˆÒ2YŸ$ ”RKå·4Ö-EøšÕ“¡™T:­5̬°Šö¯$DÓ,L–—a†L­u‘p«Ò¾Òÿ‚ˆŠeKCùd]ÍáKG²é„œÌƒü¿û¿o6qx\·����IEND®B`‚IMAGE 1054 ./arch/player/race/pl_dragon_bl_spellcasting.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ22Îà|��žIDATXÃíWMN3G}ÕÓž{ÌÏF¬Pô X‚;DŸ”cä�Yg‘[ä¹@΀ÄÂñ"„‹H‰„’‰?‚ñx<Ý]ÙÐ-ÏØæ'Ê&%yáq¹ëÕëªW5ÀlÞ¿yx»Ýþessóñööö¼Ê‡Þàðð…0Æ€™Ýó$Iè @®µöƧ§§ß¼+€ƒƒ‚�D­5”R•¾Aàìì¬4–xMðÝÝ]ö<RJ03Œ13ýµÖ8>>æw ¥D† "c`ŒA’$d??1$¥DÇü.�ˆDT™}’$Ôï÷ADB€™‘ç9Þ…ýý}¶ æÙp8ÄÞç¾KDQ„ ^ÀÒW«Õ`ŒRÊ1Qf777TŠÑüíg؉þ@QS× ^š}–eÐZ£ßáyÞÀç ~þM û{ˆ¯¿ü_}ñ×”/•eù¼Ÿ­ííí13C))%šÍ&¤”PJ¡(ŠÒÿØs?~ø„ÍånÿöñÓÕªó£ªàe â8æf³ ß÷1 0�õzJ)§Ýn·4±>áû¥¹BÇ1Û ÖZ;q³çyX]]EÈóišBJé¾[U|¢ÊDUÖDÏó „˜xÞét(MSôû}ÔëuÔëuh­ADð}ße£ wÁãã#²,Uvww‡,Ë0^¾ïC±P›€œÕÃe}kíááabyy½^J)ø¾ïäy4M�/+Ι !A¥Òu»]Š¢ÈéÂýý=F£‘»²71Ðjµ803˜¹}¯×s>iš¢V«a}}J)ŒéªÿW2@Dh4s§\§Ó!c ÎÏÏ)MS `fÇŠ׳ ²@†ð}ÿÅCJk fvµ`ubˆR�¶æÑ÷¼¸<ÏsPJ c ƒ+Ð2•] ”šX³±¥¥%œ™]GäyŽ¢(&@Xà¢lÛ±øÛÞÞæ••À&ày®¯¯éêêŠÊÎeô É<E[[[ãÞÚÚB­VsPÅÔ^\\LÍž)�———¤µvÓ �ŽŽŽ¸ÝnsÙV¼±±V«å4Ãã‚¿I ÇÉÎ…““�f†BDQäÄGk<Ï¡µž©~ã¿ÉEPÚÊ¿šqųY+¥æŠÏÔÒ:o³ÁÆ[Ì‚°¯]Ñ,íóZwᓉÕéiÿßt¸{Ÿ7t^ýjVÖ–ç…öÒàÿ�ü±ø(‹U����IEND®B`‚IMAGE 1125 ./arch/player/race/pl_dragon_bl_spellcasting.133 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ10 Ã"“��åIDATXÃíWMOëF=w<þÊWùˆÔÁ“‚ °À!‹§ìºé²ëöÏôïtÙ}W¨«†XBB<)–H¯%1‰=¶ç¾E±e‡|ñ «öJVy4÷̹gνþëAï¹ÙÉÉ gßonnò½;@¯×£@»Ýf!´Ö`Î1@)•9??gÇqpyyIï àììŒmÛ!MS$I²p­mÛˆ¢¾ïçyÅ[’·Z-6 RJ03´ÖK×§i ˲ày¿ �)%ÇAk ­5|ß§ì)QýÌ”�r_ àøø˜‰þÉñôô„ 0›Ô÷} ‚�D!˜Qe¯¿3Ÿ½½]¨§0 ADøÅ÷Q­VaÛ6|ß¿X@±fÅÐZ#caÑšÁ`@qãÃ7øó§Ø­ü…8Žñj œžžòÑÑO,„€R ®ëÂ4MxžÇó€ RJáÛj„»8Ü~ÊËu’»® ¥„8<<äf³ �`f„aˆ8Žáº.� I´Ûmî÷û¥’üöÇ9ÎÿøÝßØßŒðé³[öY䳂ò<kµ,Ë‚ã8xxx��L§SH)¶··EQnH³ ²øù‡#þõ÷O”XT¿"ˆn·ûbM¥RÁd2Ékê8´Ö%³YiÅžçqvmÒ4-mày† ÄqŒF£ápˆ0 aÛ6lÛ3#Žc(¥ µ^ÈÂBú¾ODÃ0 „xñ®V«a8�îïï1NÁÌ% –RÂ4MÑBv—Þ‚ìTó6¸¸¸ �Ç0M[[[ "<>>"Š¢Üt2÷[Vâ…�îîîh<CÃ0Jt»]v]FÕj¦i¢ßïÓp8Äh4ÊѶm!@DKu0÷Åîî.×ëuÔj5¤iº°ŽN‡™WWW�¼··"‚R J)˜¦‰0 sžçñÊnHD¨T*/úûlôz=*vÀ4MóõZk¤iš—¥hR+»¡ã8°,k®,»ª†aäRBkÉd‚$I`YÖÜv-æU›››Ãa¾j«×ë "03˜RJX–…(Š0JlεâV«ÅÙ]~í,8°¿¿ŸH’ÌŒëëkZÖØJ X–•+7û½*šÍ&A€˜¦ f†R qÏoV²ì“VµÞâ`9{jÛ¶sGÌÆ²étŠ$IVjg©çô<³‘‰+ë€BˆÒ“©>Š"$I²Ò~KcÝJ„Ϫ.–¦ètZkÄqŒ$IÖòþµŒh–…âõÊ@dC¦Ö:ܺ´¯õ¿ ADù“ –åÅ{ý5ÉWþ1™dQoMüdñæ.!qÒŠ����IEND®B`‚IMAGE 1272 ./arch/player/race/pl_dragon_bl_spellcasting.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ4�Pmæz��xIDATXÃí—KoI…¿ê§ÛÆnÇDš8DLFHYÊ$4{þÇü2~ˆM6FQ‚Œ`6‰#¬D~ô³ºªf1Ó-‡<0Íl(©7­®Û§Î=÷Ü[ðcýÏK|Ëæ)%�–eá8¯^½ÿ €Û·oß÷QJQžçÑl6ÑZóúõë…ãZ—ùù­[·L8ŽC–eH)I’„ããcŠ¢àþýû¦üöáÇæ»X__7®ëÒjµ°,‹¥¥%ƒh·ÛcH’)%?6�Žã|_ò<G‚z½ÎÚÚ�Æ:RJâ8&MS¶¶¶ŒÖúò�677Íæææ) …ÄqŒ‚§OŸ €íímEKKK(¥8<<d2™Ðh4¾,Âò'®ë²½½-æÌ\I’†!N‡4MO©~kkˬ¬¬ðîÝ;‚  ÑhpttÄÎÎŽ8—~¿/úý¾Èóœ^¯Wºßï‹2åàû>“Éc Ož<92IÆã1W¯^`6›aŒY,oÞ¼yž“$ ó êõ:Nß÷i6›�Ôj5¤”Eq*èh4b<†!³ÙŒétº¸öööDžçH)¹{÷®)…×h4¸~ýz%¸V«E†ŒÇãS,EAš¦üùü9ÍfÛ¶¿ÎˆºÝ®Y^^Æó<”R!°m¥–eUOQh­ ×/_V±îܹcþøeÈAÜf_þÌt:­Ò¹Pˆ8Ž+䯔RUÉEïû¬­­†!Y–ñèÑ£Š…·oߊƒ¸Ío¿&ü¾¶ÏÆOɹ œëÆŠ¢@1˲PJULdYÆp8Äq´ÖDQtB7{G-œ¿\�vƒ¯÷­5J)\׭臔ͧ·¼¼Œëº§ü£ßï‹ÝÀÝÃà\ú/d Q.¥J)�¤”¤iŠÖšápX¥H)…”Ïó˜/ãK9aY»ó5¬µf2™EyžãyFƒÕÕU,ëŸPes:ÏEpãÆ cYBœ<@Eh­±m› Be£Ñˆz½N\¹r¥JÓYnº�Û¶ÑZ#„¨h/éüøñ£X]]e6›‘$ AÐëõ¸yó&J)vvvÄ`0‹Ð!€Rýó§yÿþ½(©ÔÁx<foo>œi¹Y–]È™�Ê|–ýýó�­V«š„®]»F·Û¥ÝnWûæ—”’étJ¯×3 h4h­+uGQD·Û5sLP¶m³¿¿Ïh4âÓ§OœÕûƒp]÷ÌžqáL¸¾¾nÇÁ÷}ò<¯ºáÑÑÆÇ! CVVVB0NɲìD;ÿܾʂ ¨ôP«ÕªÖêºnõ. Cjµ£ÑˆããcZ­Ö™±.¤øÒüW¯×i6›ÄqL9´Ôj5Š¢@JYUKš¦ìîî~õ”}áHæû>–e1›ÍÐZãy¾ïcÛ6¶mW¢sçR?_ø^pïÞ=Ç1ŽãT6kŒ©ØxñâÅ¥ï oÜØØ0ÿÎ cBðìÙ³oºYýX�.°eÙ:Ä´a����IEND®B`‚IMAGE 1249 ./arch/player/race/pl_dragon_bl_spellcasting.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ5 ©£>%��aIDATXÃí–ËkWÆwfî<dÍØŠ‡ ¤$•›! ò(%Ýu™U]zÛ)]µ‹f“EW“e ID!™¸ŠŒ%’f¤ÌóvfĶgSz``˜Ë=÷»ßùÎwþKqóæM5ëí$¤iºÄíÛ·d|Ê·nÝRI’�`š&ƒÁ�Û¶¹sçŽZ[[†qxúc¸|ù² Ã,ËHÓMÓȲŒ<Ï1 ƒ7n¨<Ï?O .\¸ ÇÁ0 ¢("I”RÔj5²,cgg‡ápÈÜÜÜÉhµZJJ‰çyhšF­Vò,N:U0ƒã88ŽÃx<æêÕ«êÈ�–——MÇ!BP©Th4<þ\„aÈd2a0°¸¸@(¥fcàC –––ö|B0Bpÿþ}ðìÙ3ðòåKƒóóóAÀh4::€Ç‹ý Úí¶ªV«%Ó4‘Râº.EìoÅï¾ÚåLJq]]× >ô±Ýn+€N§#Š÷é\×%Ë2¤”œ>}š”y¾ÿöKuí‹WØ–ãTxø—É/¿oˆ™DØétD$‚wýjå`Û6I’¦éž½?ÿðÏÊ«·.ߴƤYÊ×ÍÑñ» 8< Ãàܹs,--1™Lð<ùùyƒwïÞ-Y’+oú{8ǯ.Ò®HîÙ×g ¥ Z­ÒívEEloo³¹¹‰®ëìîîÒï÷F¼~ýzÏÞ‚òßÖk¬\ë¯Ì¬iõ[–EET«U„4 ¶··™››Ã÷}úý>Qaš&=Ú“/¹g_—+oÿ86€3gÎ(ß÷1 ¥º®söìYvvvB ëz醅%Okè“§a¥RÁq¤”eÒ^¯WŠOïûe¹öwÑQâÀa¤”"MÓRùY–‘e�a’ç9½^¥T¹–$ ¦ir"�ò<'Ë2t]/(Ïs‚ Àó<”RŒÇcZ­[[[�DQ„b •ä£%h6›ÊuÝÒ˻ݮ˜¾ùtlnn–åªV«ï9äA%Ñ¢¿ðý‚öN§#\×ekkKE£Ñˆ7oÞpéÒ%LÓ¤ÛíŠâÖÅúǦâ>0PJ‘$ W®\QÓtú¾ÿ®Õ’)%išòâÅ‹÷¦ßôúL�4M+™˜L&ï)Ýó¼rݶm–——YXX(÷Ñív…mÛ¬¯¯‹™}àüùóÊó<Â0Ä0 \×e8–-f¿ïû,,,Ðï÷‰ã˜§OŸžŒH)I’¤«qS¯×©×ë$I‚çyT*•²# Ã8tüÎÀqâ8&ÏsŠÀ ‚€F£”’<Ï™L&X–UNÍYâPª.^¼¨Ò4¥R©àº.š¦RJlÛ&MS’$!Ïs„<yòDœ�²¬òà^¯GX–…®ëèº^ oÖÛ‰ýÿ‹q†!µZ­ì‚‚µµ5ñYLéf³‰R !«««ÇÊó�ü äž9!Eô×����IEND®B`‚IMAGE 1302 ./arch/player/race/pl_dragon_bl_spellcasting.153 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ4J·2��–IDATXÃí—ÏnWÆwþx<3Ø“˜ ÆˆhŠ,eB$DûlÚȶ¯ê†Ey$(,RU2ŠX™&Ý£XIÛ3ß{çvÓ™:Êœ€Ê†#¬±æÞûÍw¾ó3ð5¾pˆOY|ûöm#¥À²,ÇáåË—âpíÚ5ãyZk”R”J%*• Y–ñêÕ«©÷µNsøÕ«Wïû8ŽCš¦H)I’„ÝÝ]”RܺuËäÏÞ¹sÇ|V�‹‹‹Æu]ªÕ*–e1;;K»Ý333cH’)%÷îÝ3�Žã|^Æã1B„AÀÂÂ�ÆjµRJâ8f4±²²b²,;=€ååe³¼¼|€B!q#„àñãÇ`mmM ‡CfggÑZóáÃöööÃðã"Ìq]—µµ51 `òa¥I’EµZÑht@õ+++f~~ž·oßâû>a²³³Ãúúº8’f³)šÍ¦Ç4⭛ͦÈó˜_�žç±··‡1†û÷ïï™$ ½^³gÏ0 0ÆL—‚ׯ_‹ñxL’$L‚‚€Z­†çyT*�Êå2RJ”R6ív»ôz=¢(b0Ðï÷§×@«Õãñ)%ׯ_7¹ðÂ0äâÅ‹…àªÕ*QÑëõ° ”âÊlŸŸ=£R©`ÛöÉŒ¨^¯›¹¹9J¥Zk„ضÖ˲ŠK)E–eDQÄ‹/н~úþ;Sþ&ð¶Õ9Ö6L‘Ωª`kkKÄq\ 7Æ µ.JN)…çy,,,Eišr÷îÝ‚…_ûSlÅ3üp%æÛp¥o’#8Ò%Œ1(¥B`ŒÁ²,´ÖišÒétp‡,ˇûtã¸.ÿ8wz+β ­5®ëôu:ò擃›››ÃuÝþñË­æ÷ž´„|P¾y"ryh­ÑZ ¥d4‘eN§H‘Ö)%¥R wuôZåƒòÍGOÀ]ý~âLþ怃Y–aYQ†!Õj•ÍÍM�Ò4EñŸ¹­6ʼnSpéÒ%cYBì_;ɲ Û¶ñ}!išÒív ‚�ß÷9sæL‘¦ÃÜt*�¶m“eBˆ‚ö\›››âüùó ’$Á÷}—/_FkÍúúºh·Û⨲›@®þÉ·y÷îÈ)×A¯×£Õj±±±q¨å¦iz, ‡°,«Èÿ¤-çQ­V‹IèÂ… ÔëufffŠu“!¥¤ßïÓh4ÌÔ�Â0$˲BÝÃáz½n&˜@)…mÛ¼ÿžn·Ëöö6‡õþv»-\×=´g;...Çqð<ñx\tÃŒ18ŽCEÌÏÏ#„ ßé¾v>)Ä£4qdú¾_è¡\.­ÕuÝâ¿(Š(—Ët»]vww©V«‡îuœ ÅÇæ¿ ¨T*ÄqL>´”Ëe”RH)‹jF¼yóæÄSö±#™çyX–U˜O©TÂó<lÛÆ¶íBtŽãœêð©¿ nܸaâ8ÆqJ¥RQ!9ÏŸ??õ÷ÅÔ —––Ì¿³Æ„<}úô“¾¬¾À?ey_y�TÝ/����IEND®B`‚IMAGE 1235 ./arch/player/race/pl_dragon_bl_spellcasting.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ66­áa��SIDATXÃí–ÝOiÆ3ogZ:3™~@Ë6® +”6ÐꢗfãnüËö_ÙÿÁÞhLÕh‰!j ®±†¡Óùè;ï^˜v…�VÀ«õ\ÎÇû<ç9Ï{Îñ•¸qã†úžçë§½¼uë–J§Ó�\¹rE,--©z½~a¤´“^ܼySY–ÅÝ»wµf³©¤”A€ëºd2Â0D)E»ÝÖ¾ f³©¦¦¦ˆãß÷‘R¢ë:ŽãJ¥B ¥$Š¢s‘8öÇZ­¦t]GÛ¶q]Ïó( t: Ã@¦i ƒ3“ÐO×u?×Öøõç!aÒét°,‹;wîhív[ó}Ÿ~¿Rç³Cêèƒl6Kã§ßçûôþ˜c¸>DJÉp8äÞ½{ã,}ßçúõë�¼}ûöâH)ùí—>­ŠAÀ_¿ÐŽSi”ùêê*—.]š¬V«)€|>O«ÕÒN5áI177§\×¥Z­R(x÷îÅb‘õõu|ß'—ËÿØu]’$A×u?~¬}õjµªfff0M“ÙÙY677q]—‚ `0 „ T*Ñív±m›V«¥Õj5•ËåBððáCíÄ,--))%†a$ /^ü'ýââ¢*•J\½z•^¯Çææ&Q±»»K.—±Ûí°¶¶¦ÔëueÛ6¦irÿþ}íÄkØh4”mÛlll0==Íþþ>™L†l6‹”’jµJ¹\æÕ«Wd2vvvˆã˜J¥‚mÛ°··‡®ëc Qæ§*A£ÑP#ö…BAMMMQ,‘R’ÏçÉår�xžGÇôû}ÇAJ‰eYlmmñúõë1x¡P@Áƒ´‰nÁH6€ÝÝ]myyYyžÇíÛ·™žžæÑ£G°µµ52#ŽãÀ|qqQ9Žƒ‚0 Ï>ŒÒé4õz?òòåKƒ–eQ.—ØØØÀó<€C'I2îŽOž<ÑÎD`yyYù¾O³ÙĶm¶·· Ãáp@§ÓÑ*• >|àÍ›7ÌÎÎ*€……%„`8’$ÉÙDZiš”Ëež?ŽçyAÀÞÞRJ4ísRív[«T*t:q–£u!û€aÌÏÏ“ÉdÐu$IPJ ŒHŒµgÇq.†@·Ûåýû÷|úô ˲˜™™¡ÛíÇ1×®];vM*ûDt]gìd]×1 ƒÁ`p¬Ì¥RI†qþa4 ¥Ô¡Œ”R„aÈQË—/+¥–eQ,‰¢ˆ$IxöìÙDmþÄVVVÔ¨ö½^!†a ”"Š"R©ÏÜÇ!ŸÏÇ1A$ I’ðôéSí\ |YS!I’`š&¦i’Íf1MsL"Žc¢(—fRðS=Ðn·µ‘ËÇÁu]R©ÛÛÛDQ4&8j<étšT*õÍÒDLWVVÔ—æÌf³‡˜(ŠPJ}Sæß¼%q´Lç]ÏÄÿ7þÞY¡Uæ«����IEND®B`‚IMAGE 1190 ./arch/player/race/pl_dragon_bl_spellcasting.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ8ï´1 ��&IDATXÃí—Mog…ŸwÆžñL& þÀv²B„Ø‘cSè$`ÑÐe»ì?iÿGWý]±cŠÄ"EF‰Q‚L/{>ß¹]T…�Í§Ô w;Wºç=çÞs4ð­þçR§m¼}û¶<þ¼èïõz’ç9®ë""lmm©ó�(¦éþýû’¦)�7nÜ�Û¶©T*(¥ÐZãû¾�gbœÔp÷î]±m›ÍÍM5 ¤R©P*•0 ƒ<Ïɲ Ã0pç\œ`ŸÝÝ]|ß—$IH’„jµJ³Ù$I¦Ó)“ÉáÒ%èv»’eÓéÓ4i4,..E=R�«««bYJ©Ëe ÛíŠa –~ùqpHǼÿžÇ«Ù>(¥hµZ—Ï€ëºô—b¬jVÔX ÿæÏ— dYF·Û¡V«áyõz7oÞ†áåáÏ?¬ÉÃNÂwí}ö"ƒ‡¿í(€ëׯËââ"kkkÔj5F£;;;DQD†˜¦‰iš†Áp8TwîÜ‘<Ï1 ­5GOù�½^O´Ö”ËeD„^+äŸþú蕉~X[[“«W¯bYív›ÑhD–e(¥XXX(dÇh­±mÓ4™ØÜÜT_d ßïËp8Tív[I’Ç1•J×uÑZÇ1Íf“[·n±»»Ëh4" Cò<§Ýnãy‡‡‡ìíížçá8Zë/þŒ~¿/�ÃáP5›Mɲ Çq¨×ëh­Y__§ÕjñêÕ+*• ;;;¤iŠã8dY†Öš/^¨N§#Õj˲N~¢/--‰ã8,//såÊ�‚ MS&“ yžsíÚ5¢(âÉ“'ªÛíJ­VÃ4Mž>}ª.t2¹wïFƒgÏžqxxˆˆ ”*œ/‚âåóóó˜¦IÇ?CÛ¶Y__çÝ»w|øð0 ™››c2™°½½­�|ß—ÙâåyŽRŠ0 ?Ûô3ÑÆÆ†L§SƒžçññãGâ8&˲OúfÁsóæM1M“,ËÈóüâNhY­V‹íím‚ Š"öööÐZf¹[[[Ê4M´Ö—cžïK½^§ÓéP*•˜L&EòÍô?^¯_¿VGuŸEó¹Ǽ}û–ýýýB[Û¶I’䫞Vêÿ€aÛlår™0 ¿Hu³Ù”r¹|ya$"Å‹D!ŽcŽYYYannŽz½N’$…T #ß÷e¦»ÖšƒƒLÓ,r"IJ¥±ÏÏÏS­VIÓ”(ŠÈóœ<ÏO}Š_õ£šÎŲ,,ËÂu],Ë*@¤iJ’$…<gñ¯6ÝdÃ0‚€¥¥%<ÏÃ0Œäìåišžið©²à8×u‹oZëâ*Î3øÔÿÇA—è¼ÿßê[Íêé]'Pãѽ����IEND®B`‚IMAGE 1273 ./arch/player/race/pl_dragon_bl_spellcasting.173 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ:::~¥��yIDATXÃí–ËnWÇ3Ç3{f2¾%Ž,v"BS*6,Xð]vS©»>EÛ‡è®ÐE—Eݰ¡Fȹ lÂà„$ã¹äÌéy iC‚º¡g5ç¢ùÿ¾Ëù¾ŸûÿvàܹsªÑh¼|þüùÊpñâE¥iRÊ? …­'N¼,—Ë·jµÚÇÿ$PÚ~.\P¶mãûþqÿ"¥$ C<Ïò,¢(B)E»ÝÖ>9ÀÌÌŒ2M“B¡@’$A€”]×q]—\.‡)%q BÛK@×u„!pÏóð}ŸJ¥B¯×Ã0 „hšÆp8<4„¾×âB#F×u~îtøò‹¢(¢×ëaÛ6—/_ÖÚí¶ÛÛÛ(¥Ž”�|= V¡À·ç%~óScÛH)I’„+W®dVA@«ÕâØ±cGÈíž$¿Zç¿û-%Ÿ·øk]†!?ýÞÕ ûA˜F–ß¹sçÀ£ð–Ëe–––´}“0ùÕ:¿{n|.¾§§§•çy4›M*• Ož<¡Z­òøñc‚  T*e?ß-ìyiš¢ë:ËËËÚžØO ÙlªññqLÓdrr’ÕÕU¶¶¶ØØØ ßï3B`óóóÊq–––´™™U*•Bpýúumß[púôi%¥Ä0 Ò4åÞ½{Ù^«ÕR,,,°¾¾Îêêj&866–%â`0 X,rõêU `vvV9ŽC¡PÈÖöw»]jµ›››X–E±XDJI³Ù¤^¯óàÁ,ËâÕ«W$IB£ÑÀqœÌº®gB#ËMÓÜWüÌÏÏ+€N§£U*U(¨V«H))—Ë”J%�|ß'I¶··q])%¶mÓï÷yøða&^©TBpíÚ5í@· Óéd_¿~­ÍÍÍ)ß÷¹téµZ7n°µµE¿ß%#®ë†!@&Þjµ”ëº!ˆ¢èp… ŸÏ3;;Ë‹/¸ÿ>ÃáÛ¶©×ë�t»]|ßxÇÅišfÕñæÍ›Ú¡�æææTœ9sÇqX[[#Š"vvv�èõzZ£ÑàÙ³g<zôˆÉÉIpêÔ)%„`gg‡4M_ŠMÓ¤^¯s÷î]|ß' C666R¢ioj·ÛZ£Ñ ×ëeVŽÔ‘{€aœ<y˲Ðu4MQJe�#ˆ‘GFåÙuÝO0 xúô)oÞ¼Á¶mÆÇÇ $IÂÙ³g÷ì@uû�t]gss3Ëd]×1 ƒáp¸§›'&&”aGkF»‡Rê‹”RDQÄû"SSSJ)…mÛT«Uâ8&MSnß¾} ÷Á¾‡Õ(öëëëYWJÇ1¹Ü[v×u)—Ë$IB†¤iJ𦬬¬hGòÀî˜ !HÓÓ41M“b±ˆišD’$Äqœ…æ âÿ˜ív[e¹ëºxžG.—cmm8Ž3ÀQáÉçóär¹~!ˆtqqQíNÎb±˜í¦J©²ü£�ö‚x?LG}žÿ?>ßñ7!Ú$~w ����IEND®B`‚IMAGE 712 ./arch/player/race/pl_dragon_blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTEÿÿÿ /U 0W &D 5` 0Z ;d =g 1Y 3\ 4^ 2^ Cl *O7 2Z(H!; 6_ =d Bn!9 =j @l Cp <e 3Y ?j 9d /V .T6 1U *K 3[ 1T Dr 3` 7`!= 2Y4 2X 0Y -N +N )N +M /Y* -Q-P ?k&EJyIw '@ %@ AnGs 1W/V‡6 0P 8b 'F 5_ 5^"; Dn /V0&„·ZŠ .W0UHu 4Z 2Z"?6 >i <i 3] ,I (H !>\ Ep'G/2 0V )J 7b 7\ 4^ 4Z >h ,LCuÝ ÌÚ���tRNS�@æØf��DIDATx^­ÍÅŽäP @QßÁBfhffdfføÿ_é©Õ“Šj²ê»ðÂ>’åÊ#ŒƒlPÄ&pã<²t$Àö/9ðù+¾ÿ'Àpî:WTüj]ŠÒÙ´ˆLM½=*;ÁêÈ%ÑÞÎtÀÚÆòÓý™ª-”<s’¬tZ¹uw0ÿíÀ{ørfô2ÞÇÇó•Å›Þnôªz-6Tå/+?Ú×ã(ê}‡Â›$•¶¦ê÷x6bXÿÙ&u¿­Mn¶  @ug;XÅØí·Z¯Aðï*dÃw¹ã'}·l2–êþ‡?n‡+PÈxÚo×pŠ”xnµ¾$€¤Z°ÍZœ�’®xMƒ2ÜË›†‡d´ <_eycŠd‰:6ùt«�Ñ$6Œµþ­€8œ,€8 AøŸP—X²»jÝ_Œó{Z©Á‘����IEND®B`‚IMAGE 709 ./arch/player/race/pl_dragon_blue.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��/PLTEÿÿÿ /U &D 0W ;d 0Z 5` Cl =g 1Y 3\!;76 4^ 2^ Dn!9 *O-P 6_ 1U(H„· 7` 3[ 'F @l Bn =d .T 9d ?j 2Z Dr 1T!= /V Cp *K <e 3Y =jGs 0Y -N +N )N/*&E -QJy ?k 4^ /Y An '@ %@ 3` 8b 1W/V‡6 >h 7\ /VIw ,L 5_ 5^";Cu >i0& <iZŠ .W0UHu 4Z 2Z 3]'G )J 0V 7b"? 0P ,I (H !>\ Ep 4Z42 2Y +M 2XŒQ3k���tRNS�@æØf��DIDATx^­ÐÕn1P½Ìaf.3333ÓÿC»ÙTQãMªJ7kÎ}“?š­ö�z�,["ò10¼^¢ÑÏ´ÇW!‹¦H‚ʆ•j ´«èRÂ{FÄi§]…:1t�AÌÿc¡/P«ÝÏ•2»¥a¿ ÑE ½œN‡™Û %>¹ØZËÆ¯×­ƒÜjr–€ÇñðÛ¦0iYgãNAç_éWSõ0ÍÀsï ¥Œ’S,_l@dý6•äb �Å‘>ê¢S¥Z=7€˜æ–šòÌIͨŒ›ñPžvÜ3ÀSœ J=íq¹‘úÒò Ÿ²˜JÛ. ]€¡ ) ¤{ö‚RŸÐ 2oݨX>"�ÑÈÈ>`k>5›Ò Pá+Ü[«¥» ÖÒ<àõïàßò {-+<°����IEND®B`‚IMAGE 994 ./arch/player/race/pl_dragon_blue.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ìPLTEÿÿÿ0T1V0UEr2W:c1U3Y )J4[ )G4Z6]0V4Z5\4\1W<h5] -O &C )I2Y7_3X6^ .P:b 'E %A9b=f2VGt=h .QDp3Y +L<e8_5[An *J3Z3XCp +I9` .R7_Q;g8`8_Bm@l7^5] -OEuBpBo?j=i;i;f=d4Y 7 4Y +K6\9b6_FtFs4ApBo ;f 'F!:;d@j $@>i<iO"9;c:aBmAm:b?h@l"< 4\ /R *K 2X9c9a9a>h<e *HKy4"3Z?kErEq :;cFr2UFqAl5:c8b8`IuDp>lAl -P?i>k1=h8_8^=gEr /SL737]#6N5\2S 5Z8`4Y;e<f7^:e %BGrEr"1F;d<g (L7_ %B %A#Z[f���tRNS�@æØf��¤IDATx^µS“%A„OV5¯Í¡mÛÆÚ¶mÛ¶ýG·k:îtwL?î~/ù_œ¬(ú/èº.¢’Üa Œ†’©víŸ^?S!@§[_ø:Ú¦Á¤öƒ‹à¹‚‘�JX5–÷õeð’`ƒä§\„æ2)Ô×N<{aï°(ÜCΈË__9„ª#’éâ47•DœÁ¾¡ìO~R”|®vd# yäÉfEAÈ;Ë0Û,\œ”*~Ï.ÌÉ" Â@eéív…KM}Œh?EHXÿK;fßÂ!lÙç1çØÑ ò¯Õ—¤o>8=|¯n§“?$¿ô\vô÷Å"¦L­½)½ n‘5sbJƒõ¡Wê¾\S/–�ÖÌï|,Î Ío*_“×U¾$L×@·z½õì™1-/ὓ;Qx lô·[¢È úÞ^kíÏdÑÀçbÛW T\7]Ö­¨ ƒœ�ЂZ÷xwÓªÓ5rfÎGlÜÞ½òòNO€–p­ïÍÕ÷ßG·fe €Üè™ó‡R W�ð@��ýsþÏ;ù½”%š����IEND®B`‚IMAGE 1035 ./arch/player/race/pl_dragon_blue.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE4V0T1V0U2W3Y1U4[4Z0V4Z4\ %A5\ 'E3X1W<h5] &CGt .Q9b -O6] /R:b8`7_Cp )GFq )I +L $@<e?i2Y5[=f6^8_3XAn3Y2V=h *JErDpAp ,K 7@j3Z .R .PBo11X/S=h5:c=g )J:e7]5\>h<e *HKyL73 5Z"3ZErErEq<f7^ %B 0P5];d@kEu ,O>iQ<iO4 4\4?k -OBo6_;f=d<e :BpFt4Y ;f0W *K9`AmIu +K +I 'F@lFs9bBm9a:a8_8^<hBm@l7_;c )G7^Fr2U;c9c2W6\?j>l>k=iAl -P9a;i8`4Y"9"< 2XAl /S;e:b#6N;d2S#!::c 4Y8b?h;g:e8`GrEr"1F8_<g (L7_ %B %ADpÇoþG���tRNS�@æØf��©IDATx^­’Ós5AÄsfV×6bÛ¶m›ŸmÛ¶mÿ‹ÙÌÜok²{ó’J?uuÿªë<œ˜M+kƒ• ›ŒÄ¨ý³Àq»�D_¢õÆÛ9¨Rú£�áÛI& �d£DйI9'pîÒñGr*)›²³ý¥ª†07Üép‚‡ûþZ Ä›c§@ ‡G vOÜ@\05ˆM#ðšiÎócáSB‘‚Y·–Èd9§œ`ºaÏ +þ·…€w&jÑÙ"‡ÕÀ…Ar=7,‡>ë5|z –Kœ!ßчäBFOYi°¿­êÏ®ØWzPÑjÇÔIɾÎ_ÝÞFnýÀô{þ oÿ=—N¬'þúY &óÛár6K®ìfðm ;&]‡Ê~0Ät/ííYâËa—r¨ñ‰foÙ¾W'w ~æ¢âß¹G¿¦"R’ àkzòÕó¶üØL°�u¼tòªûÞpÝáPù\º•¤W€ëçmÕãÇÎ<}!ê´ß€ù¡ïú~Þ¿’Æ‘a-œE\ôš’±ÒkÀ:y´­Õ*8ÀBñûÚ¹å����IEND®B`‚IMAGE 1264 ./arch/player/race/pl_dragon_blue.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÊPLTEÿÿÿ/R )K0T1[2Y ,M6e2\ .P )F -N0W5\6^<u1W &D5_6_ 0R0X;e #;:b #> !:/T "< 7@n4_ ": .R )H8b;e;g ,N ,P ";0U +J $= &B4[2[ +K ,J:a8a;r;b %A 44W2_ 0 +I #;"? 'E7a5a $= !;2XW‰1U /T>n:n>b +K;^ 1>hBnAhJ•*C5Y !71X1\ %@3Q>} *N5d &A G )I 'FT‚<h7g &D !:1T<e 8;d -QUŠ /R- 2X / 5b *I 2Y !7 6@r-F4Y>k6b %@F{<j .W2}§8aIu@j=m,L ,K *KJu %@Fz1Y>z$T9 5 4 .N>j;p 4 ,M )Q…+#&8jP}8eR‡ 7 ,P 'E7_ %B 5^ 1^ $BW‰4\ 0TU… 6 0U‚J/ % 4W2XEnW‰Pž>n-N -M +M 8n<>K<_ +8hI” 7Br 6Bh$g˜ -P +P;h7hK€5X2^ 'EJxDu 'DAnIp -R=k;k *I5^ $;7\W‰>xAp!g› ,L<g *K2W8d7_8_ : 2b4V@{ 6 5R‡>j+F *8gM{ 'E 'DGx .P%X„ ":Ó˜‡K���tRNS�@æØf��ÔIDAT½Ác{›€Ñû‰Ù¦¶ÝÔ\gÛ¶mÛ¶mÛ¶mÛæXöaë›]É·];þ»ƒç]ǽ–ÿ¹ëµ¸3Á’š”›áÓöãB@òïžx¼Ÿ±Ò“c¸P0öböÎV^VTÿ¤&ÎD€sIO@Ýá|pÆx~©ˆCú-àðtJrQcø#Ê, ù¥¿ÏéC€l«žßû…RR*ÀÌ+·Å¿bDs@Œý÷•˜ŠÂá*×—À·C*Õ‰ž¿©aqæ~ÓJHZ’Ÿ5³ž:ˆîV»ª tk¹HûVZuøö~Mf½v½”"»——²‹oJVìÎ,â€Òk_XCdë©r5"‚NŽîö@Dn|QÇvJ2{ùÛt³99-8óëm|“NòÂŒV$±o裘ðËïŠì±‹Jgw¶A"{ßøž~| ‚RÐ’/\1r  “ °zƒ®´�6»s^ ö�…†å«Ûà<oÖ4naŒ¼L(„®XÚ6]ªõ[÷éBŽ_¥Æs6ŠØktÉQéq¡Œ.NÄ0zQªÍO…+-®žLðz¯õ3K)ÜX¥ŠZkÐè=qK¥š|÷ÿÞO$u™Š“<����IEND®B`‚IMAGE 1145 ./arch/player/race/pl_dragon_blue.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��yPLTEÿÿÿ/R $==k ,M -N .P6e1[ )F0T0W5\ +J<u2\/T6^2Y;r;e8a0X;e;b4W ": )H4_;g ,N ";1\0U ,J #>4[2[ #;1W +K &D6_1U /T $= "<2XW‰>h4Y /:n>b +K;^ )K>k:b8b  2Y !7 6@r-F %@F{ 0X5YUŠ@j=m,L ,K -Q ,P7_>} *KJu %@Fz1Y>z$T98d3Q 4 .N;p1XAh"?W‰U…*C 'ET‚-N7a5a 'F !7-@n !:Du *I>n -R 0U2_;d>x5d &A 'E %A %@ 2b7g &D1T 7 #;+#& 2XBn ,M )Q…<h 0R<e8e<j 8 7 ,P 'E7_5_ 5^ 1^ %BP}8j 0T $BG )I‚J/ 4W2XEnW‰ 64\ .R -M +MPž *N<_8hBr 6Bh$g˜ -P +P;h7hJ•2^>nI”Jx %D5^ $;2W:a8_ :<>KAp!g› ,L<gR‡R‡ 0 +I .P 5b4V@{ 6 4>j+F8gM{ 'E 'D !;%X„ ":˜†]����tRNS�@æØf��®IDATx^­ÌcÏå�„á™§=4^ÛÆÚ¶mÛ¶mÛ¶mÛþEÛs’Mš¶'›löþ2_® þ¥/e‹€³ñÀ¹ŒÊ ~\„uã™õ-oëkGÿ¡Ö §§`~þçõó&çõ°E¾óÛß6¨Ûµ¯¯mûŽ:ó¼ê4%rn©™Úô™Ä„hÀ6Ö€ö–GõƒA‚_‡zíÀôå ƒ>Ô*I.»v @úÄ‘õ ƒ¦Þgò´ŒýК:æˆH£?ù¢uë1OÈ‘  s“ qG0$õ„KF‡'m1g0¬Zý¦œÕ/ï&&ÜLt’0wo[µ¼ÁÃWk<wÒJ¤­äww¬\[©Ý >¬ó /§‘Îjæ2\8i÷‚ÙÍ©õiæ)¡Q ´u.ˆlºŠÔK½èêAþæ.ªÀBJ©«¡f£«ûŽ©•ÐËøtM!@úð±û„mD5™›¹»±æªvmY\¢(µ—îýz;%�sg6­šARie_Ù.Å‹îüP3:l((N‚e¦_ÙødíCÏ8Äiç 9p:üˆŸô™ýÿ»ß`s\ÈÍ·¤����IEND®B`‚IMAGE 1122 ./arch/player/race/pl_dragon_blue.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��jPLTEÿÿÿ6]/P*=f/Q&> -N1T0S9a4V3V$:.U0T5Y4X>i3T0Q5XIz#7*G%=?i8`5Z6\Cr'@'? 0S9b9a .R4V-L.G=f+J9` /O,K<f:e:Y )I8`2T1X /R>h)C3U1UP‰+I0 ,L %>"7 1U.O+G)E1T*>I|&<.2@ %?4l£5\%:#9+%>8] /PAr+R}-M &B5ZEtFw=k>k4X 2U(C, 'D'> #=*G8`#Eh$6<hAs1VAr=vªFy4U#90P8`Iv 5X#T‹=v§-N>e)-Fz,J:oŸIz7^)A (E'B#X&@>m6_ˆ9b@m 7Dte@1=f+I9c4W(? %A3ižDsDt-OEm(V‰1T 3 6 91P4h›3U1G4 /Q,I:d)\Iy8a8`'>%>Ao "<8^Cs +I*E*D5\ !: -M<e'AGwEv"67.O* 3T(D`3W-,I0 +KI}9`&=:d +J5YEs )J<dL}<`)H"ItþO ���tRNS�@æØf��¦IDATx^ÍÌS¯dA†áUUÛmûضmÛÚ¶mÛ¶mÿi*=éœôîÝ™›¹˜ïj%ï“ÿnÏÿÒ.°Á­UA{äXVa;ö^4¯õì®™-‚[r+ nh{LdµgÖ_sa¥žcßZ«7ŒKZ©°Ê¸ ã34<Òj•ÀˆI;½òRv¢sô1‡dðp¬vÏ„ƒ•¡È›»Uzÿܘê\›0g^æ2SŽ€k|áÓjþ-íë~,?wOýùËÔp?šñu‘¢##ƒmõë­†ý¿æ¿ÛHçI¦É'xxV˜xcÇùï3B "ã }üYðŸ}ñ†iY„ } ð!ú〠œ|1yú¡oQ„ˆ´C“Å$ë7«äOùÚzXBhÂX,xÑ•ìŸo2Ãé8 �Ž?Œ_ò²ôÆ@°"Ôyôn¸<U�–=éËÝÜSæ@ ’XTö¸Ž‚WÍa’ZùÌ&öÎî´5%Ž1B»ñ¶E�³ÅWgúö.µ†¤Ï8AƒÁºÍ®÷>èéGyq 3[­£!˜0å ,†ÿn¿ÁâW>½,����IEND®B`‚IMAGE 1180 ./arch/player/race/pl_dragon_blue.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE4V/P/Q -N1T0S=f4V0Q$:0T3V9a5Y4X>i3T5XIz3T8`8`5Z8`#7?i ,L9`'? 0S9b3U*G%=6]Cr4V6\'@<h(C9aAs1VAr=vª /P&> 2U=k-N3W,I1T9`%= .R)\#EhAr$6Cs+R} /O -O,K<f:e +I*E 'DEt.O /R5X#T‹2T,M>h)D)C*:oŸIz7^4l£5\ %>"7 1U.O+G5\)8` -M+.G=f+J 6 /Q +J0 +K )JL} )I5YEs-M !:@m>m.P>k-L>e)A1U'B#X7X&@FyAo#9-<d:Y#8 "<7`<e4U &B (E=v§,I:d5Z)E1X*>I|&<:d #=.Ue@1=f+I9c0P(? %A3ižP‰Dt-O "9++I(V‰0,8^Iv 4h›3U'>4X %?Dt4WDsIy8a8`'>%>Em& &B6\Fw 91P1G4%>8]'AGwEv"67.O*Fz,J(D`,L-*G*D.O6_ˆ9bI}9`&=.2@ 71T%:#9  3<`)H"It&¿«¸���tRNS�@æØf��­IDATx^ÍÐã%Að{«»mŒmÛ¶mÛKÛ¶mÛ¶mãoÙÌËK&™êùºÙûõüêä¤àŸž�ÞLáDc¥L¦[eòŸ3ð|õ]Ö ?¢çár²cŽG¾N)çAÞ['ù¬°À{òåÅΛ? 9€GñfÞ*· ®¸´~FìÁOêèuàg˦]Gsˆ/ÕÁ*¡\kËK÷°ú6ß<=RÞ?àï&É®”]·³å ”X®µgÎüU³XÊýÉûðþ¾»À8RÏ0põÇ¡¤ôÄŠñÅ^‚T;uû÷m;ß{1ß3j�‚WR#Þ8æ$¿Eäà“û†S¸ýÂwÖ×yÑ�á»ZEåk—ïöë¹×�(¶'Hœ<»ðw×ë§Š‘xåøC§¶¹a5V})¬Æo6Yà)P§|²t#3 ŽÝÑ@(#jŸf�^5Ûˤ5B¤"C;û¦U»œdã”õj–Z‰äeÕÂíŠsÏ4nº%'�h’/n<Èšèj{N‹©­Q* (¡rb ÂxbÞeùÚ™Ê����IEND®B`‚IMAGE 1104 ./arch/player/race/pl_dragon_blue_spellcasting.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ;Ïi‘��ÐIDATXÃÅ—»o\UÆsî¹Ýõ3ؘÈD ‘‰‚@¤H ¤ˆ wHˆ:ütù\Ò !”LExˆ&ÑÄR–Ê Šx&DZ;Yïã¾ÎP\k³ëÝÄ»¶#OµwϹó}3g¾™sáˆMê òò{+Àp»±vù£Qß÷ö œ~ÿ%=ÿÇ?ñ³¨YTÍÎs/½nüº:Šsèß>u‡×Nü‡æ-¤\A³øÝòÒ²–—–õÐ ìvìоúÍ­Y>|þ&‡?Cœ âiz‚ã—®èñKWV†"PzñG²ŽÎ¼5pí§êï½È©×TS¼§N€Üö}’õu€‹{ayiYU‘¢›ÕUDÀ„ã×JϽ©M¢­MìüÜf u9¨Ã›œ?¢þãÊC‹Ý4««¢É6ô:_¼ ¥Å *€6ï-œëËDëÆ÷…ó°L^ûˆñhVW¥~õ¾ÚS†Ñé7”°‚ *ภÍb@!¬ Æ`Ÿ<I¾ñŒMA½I¾y ŒÅLÌvI#?@l…ÆÚg2t¶oþ ¤mÔeà”ÀFà…ˆ:(OaçO#“xÇæ‘h¦ãH[›Hi`hð´×¿mná’&ƒ„%ÄúˆSÄ\sâ„ü¯ßQMA³Þº‘ S.,eÛýоñD ç”ɹ¢GY 4ËÑV h»Qd)‹"=ùŠŠ_‚ÀôȶÛ÷ î#� ~ Á ‘-’$ZDfÅ&—¦�äµ?ë!Ñ4Ç#÷ˆžÝ©r?ÀLŒ%¸ûµÞ·\;ÞÌBGnùæF„ø(…Þß wœJÜÔ‘×ïõDÒ¬® ê8ŸßâîÕ Ë ,wúÀ^à}4K!MÀç߇,îKc÷oWß"¿»&â8qûF%E“¬´+-»æÂÖ]`ÆvÀ‡‰¾@ü÷5¿²£ëºSå»mw6:Ï.ëv"ö©@³mǘ¨Üi–Íê—#]\†~ð8VW´T¯X/âq&àT—¶‹¹à™‡¦sT°! †¸ 6ã °ì ¾_2}ˆo_ת¡i çÄx †Çe=kCÒ†$CÛ1b<F¹çʵ<ZxUÍÄÓÅ=ÏZ4muRÍ-©¦-0 Ç1SÏtæHãÚçr(ºµ,âªPƒÛ¾S,b+=H¼ˆ£±vYt» K5E³¸¸~—¦1c³˜èâù={5o¡.鸆bÚçP Íë_È^{C¦û²Q>N GlGNàÈí ¶Ã 7íÄ&����IEND®B`‚IMAGE 1146 ./arch/player/race/pl_dragon_blue_spellcasting.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛìoàÆ��úIDATXÃí–Ëk\eÆïw®3Ódr!1uš‚iH,£¶¢Õ…E«nê"]‰¸p)þþ u¥.„"í*+wEª‹€(ÒqQm[0„”\:™ë9ç{]œvÌeÊÌ$n|aàÌ÷ó>Ï{{¾O8„å^xïððGyáÊìA|8ù(ú*|µ”/.ÿ²6t5#ªñ´?þܳÑʯsÿ ቓ—/NÞ9>‘ßæúR?’ëAkåiodæÓ¿þhõæµ##0¿ùÚäøû3Ë þ¶Ê|\@T�‹Ó7„ÿÌÌ™¾‹Ÿôoµ- Óî…Ì©w5[œÕ=Ëo}þó0Ó_¾Â‹oƒj„óÄ(ˆÁnßGð�>î$Ù $Æ¥²8×\ËgUUI—vîdN¾¡æÑêîSSØuÔ& '?^Hé»KÒ6Ùâ¬"NôáfeqN´±EÀõ÷}\½õmê<È’¬¯‚1•Å9)Í!Àgg œ:¯½×£²puëðÔ5~»¾Lmé §ãbzÇvŒF<qs”.K§ýä6Ÿl¶iýÒO¿“f#ª¡µMœ¾Qrg?T-­akuÄÒlÝüFÒл#:¯’É#Ö¢qPrˆ1¸Ã’­5ÜÂ$ñÝÛPº‡6ËTo_—ƒŠÙ®)¨ý~M´² ~Üœ�ñBpBP õÉ%ˆàšTAâ}½Ó¹û箌A‚ Ä Ä*ø[Ù@keÔÆ ZÛÂô ÐóúGšÜ[mIdïä´'°õäÇSr=$ðÑ8A«¥4b Yÿ3­Ÿë a?Z¯SYœ“nÁ[/ƒà‚çCè¦UMÅfh”Æ­Ÿp ¦9ëÉÆ ÙâlÚœ¤:Ð ø¾O¼œFàù˜Þc˜ q<´²…38D²¶’‚¦§<»µq A¶)B‚ïÏÀƒJ¤[jIJ[Í”ï4[Ú„ûöŸ…zÄn 4Ž j ¾Ö"žqg °?*ÝfÜ&x7Ñ·8Œ,J„6"p D;ÒÒÂyó¿›„ºÇ]%¨ß½!™És  Õrª°V‘v}ËãXã­Õñšbىダ·¾¨M'Ý'|l`mÏ€°pZÍÀ $›Ãx!¶¼6Ê´M êP¯@#†Ä‚ïr”Ö2ªp⬚ü’ëAŒ“Î| F¦U‚LßÓM-ßøZM %ñ’šÞ'Óft]4ª6ëŽU£*ÎØó»ô@œ ˆ¥¼pEÞ„æ¥Ò 'qŒ¸âdÈLžSÉ a†'ÇÛÕ˜šTQ›t¥m™¶r&N -Ó½÷Nyèky+'jë¬õQMK×–-Îj'¥0üoÿ±ý H ÌzD����IEND®B`‚IMAGE 1103 ./arch/player/race/pl_dragon_blue_spellcasting.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ!½±àü��ÏIDATXÃÅ—»o\UÆsî¹Ýõ3ǘÈ!²@F‘@$:"îèø $]Dí’ ¡4`:Šð RDKqDá�â¬id½w÷¾ÎP\k³ëÝÄ»¶#OµwϹó}3g¾™sáˆMê öÒ{+Àp«¹véÃQß÷ö œ}UÎ^OÿiŽŸEÍ¢j~6˜{ñùlóúê(~Ì‚¿pfƒ×fÿC‹R­¡yònuiY«KËzèv;ößoßþææ,½ü ‡W IñË´N=Áñ‹—õøÅË+C¨¼ðÎ#YG§ß¸vý÷m>¹r’WÞÕ ï©YƒÛ¾Oº±ðÁžEX]ZVUE¤¬Çx}U0áøÀµÊsoªD“hk ;·UG]êð&gÀhü¸òÐb7ñúªhºCÀ½ÎÏkeñ¼  ñ¢…s}™hÝø¾tV)ê·Áx}U?}*À×{Ê0:õ†Ö0A œ—£y(„5Äì“')6ƒ±)hÄ[7ÁXÌĉ.i¤àˆ­Ñ\û\†.Âö¯?Yu9ø°x!âGàE ªSØùSÈÄ$Þ±y$šé8ÒÖR™¼GíoE㻸4c°‚XqŠXƒ‹·!I)þúÕ 4ï­É1ÕêÈZ¶ÝíßI´pN™œ+{”õ‘0@óm5À€¶›e–Â1Ф,Ò“gTü ¦G¶Ý¾p�ñ+¶‰l™$Ñ2ê,/7¹4 ¨ÿ‰X‰¦Ñ$ ¼@ôìN•ûfb $€<Åݯ÷¾å Øðf:r+¶6Ë ÄG)¥ø(ðþN¸ãT¢°ä¦Ž¢q¯'’x}UP÷ÀÁøøw¯yaµÓöï# yYŠ>8‡ø>äI_»»Æ]Š;›hÚ,ÿHR·ßaäP24ÍÀȺҲk.<`Ýfl|˜èû$_ñk;ºn¢;U¾Ûvg£óìò¡a'bŸ 4ÏÐv‚‰ªf¯5ÒÅeØècueKõÊ%ñ"ø`.EEqY»œ žyh:GòHb°!…toðý’éË@r뚸VÍZ8—"Æ1<.èY‹Ò6¤9ÚNã1Ê=ïP®åÑ«j&ž.ïyÖ¢Y«“êhnI5k±H8Ž™z¦3GšW¿C!Эe¿T…Üö¿åb!¶Öӈī€8šk—ä@G°»°T34OÊëwe3vC<¿g¯-Ô#×PLûŠ!¾ö¥ìµ÷0dº/åãÄpÄväŽÜþ~žÄd¾‡����IEND®B`‚IMAGE 1250 ./arch/player/race/pl_dragon_blue_spellcasting.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ´îÏr��bIDATXÃí—Ïk\UÇ?çÞ÷æMf23MMª%R¬¡J©hJ¥”ŠBÔ…`*ê¶kÁÿÀK±n»Wj²p%ˆ‚mƒP‹(¥H)mӦί—÷æ½{‹—L3™™&1u¥̼w9ç{¿çœï9þëK¥±É£oèÆïÎÕoú¶'Þ_š?)ÿ €úñw€ÏA(pø4îiœxOíDÕ.È#P{ᕉ"‚æ9äÉ:ˆáeË“¸¤s¾µ¼ôQÿÝ^œWŽœQS݇)UÁeÅãÝøx‹ atª4sä¹ôÖ¯‹�fO ”r¬ ÞËh-/ÉÆ3°Ù|žaÂ`¡>¿ðÙž�T¾®ˆm®à:+luÚZ^’¼sŒEL�ª¸µîÆçÙ=3€<ˆu÷ê·cóÉ%mD„O^¹ÂËÁoÌ”z�Ó;PŸ_UyNÁÂø=ñß‹öb\ÒáZ³ÂÛ'Wiæ!­å¥3»b`òØ[Z}ö5Ý|b1¤¨í‡¨J}þ¬Ž"Æž÷i‡ —fY¼ö4¿t¥xGe8uúœfÝõhžRš9 Eôñq»°RÙÙdIÿË_ Ø®>óꇶ2õùÖ‘q4oM¨úü‚†õiLTÁVj¤+7ŠøÆM˸ΠÁ94n#>C½±ÙÖ†}?¡µ¼(›Yغ#¨M‘·ïãòÞº04ÍÑn»PEïlì¨ÔçŠò2v½®XRšžÅõ¢}3$·ÿÄ­µa²å:â=¬uÑ^\>–…¾<l}ÑZ^ŒÁ!X;ôM÷$½}£žøÆïEÔÃZòàHQ–ÁÚñ4�@ïþu\Ò6ÐúîSè5ï"ÑÑC`,yó&>î FÐ ÄÓ'øa FH®ý(Yû‚Ò€©ÓçÔV0ý$¥Ú>LѺtQ²Õëø{7ñ*Ð\Jc‹PÉòvÝ0š=®¶ñ8Auò­ËGîk¼øªWZ—Š>_>|ZKs'A ·!íbJ.n÷Al®€ñBd,¶2µÞßÇw·æO_>ëÿWŸó Î¡.Ã'0†úüB_¤63:€)×°¥‰‘z02iûí6,Z®$ˆP—“w›hÞÔ«EÇÜ.ªÇÞÔð±Cø¸…›»ÇLý °Ô#ê°Œ‰*ø¤MÖ¼50¨l° Q r·ëY0ëÞ¡üÔ)¹Ãû8Gû—¯åam€L€ ŠS�&ªlë<œžÓ|íÑìóH4¢ø,†$¦µ<,B!âÁólP|Ú˜p(/Oâò” qÊeÔyh¯Bžl›;—âþÄX$AˆJ°>í*bÖ¥Ú†`D\ŽO;&cËvÔ ¶ÝaLáDBD@E (oµ¨Ï!Ñ^ y6’ö]_L° …s}ÁXÔØâ½ Yy Þí˜öÝ ú Œ‘bô2à‹üp®ªõKÈ?q¾íD4X2²i»;¸ü¿v»þÂßÍÁo<����IEND®B`‚IMAGE 1232 ./arch/player/race/pl_dragon_blue_spellcasting.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ YÆóO��PIDATXÃí–ËUÆçÞª®êžîˆ@Ägâ#8ÆhPdiÔŒ/¶˜¸’µ… Xjbâ˜&btaÔñdÁ#ÄaL÷ôtw=î=.j¦§«çì<Ë[÷ÖùÎw¾ó€{hãû¾²Öýµ·Æ÷¿¯«];ù{sß;Š Àç  ¾Ú3Ór›…÷ÔVÌýô©ÜU�g¨Tˆšç÷A ›ëø,=Ô:êÇ»’‚Ú㇕J„1x¿ŒrS—!Ap¶LÁf�HPAâq0 ‰— ÐÞœœºÆ|žŒÕÈ“îÙ•¬oN„b굈~…µg¦%ïÌ‚±ˆ @×[XªŒ3w þôŠ(ÈâS?ú®ëÏ#"|þÚ9^~g{%¸º)�K´š0†<GÓÄ‚µ£ž×´‹ëwøùÚ}|xø:Gž¼²ù*hNN©Ïúhž >ÇDMÌ–‰BýýÎPùÔ{õ#1ö„‰ê¼´»ÃÇÏ_ä›K|òÅy)0 ž’ÖŸz]Qæ D˜æ¨D&t-Ô·�ø`ïß¼ùÈuîš;ëŸHÁJçÅÙÛg¦R%Úþµ=“[' §!ˆ¡R1EsZfÝ¿~8™wfçÙCŸýú0wÍZ3ÍÉ)E,»Xbgdé\lHeÛNl<†ë/ܸ aŒÔšhwñê=í §×•ÞR¶g¦c0A8 ²öÌ´´Î)Éˤ훵¶6yŠŠAjc¨XboÃÃ(ïÎá’ˆ-MQO÷ÊŸ¸n ÔƒëC#•ZÁœ¬Oß#;¡OÚØÊØ­³ÒÒÖ,flœÊÖ$³W¡×‡¨QŒQ‡§7�|¥8×Ñ,R­ƒs¥)j_8-•ÆLËÉ[×p½.xcÖ]ᥠD;÷©‰ëàÔDŸüsõŠ¢ds— m _{²c-Þ[ðnäûÑ ‹­m]ìó£µÔ:wJðó¿|%ÙÍKâ“9P„1ê6.ôP¦¡U˜¸­T7<£Ôgà<ÔhãzÆŒQ ª¡Æ‚ó«Ò·R\"!"‚ˆA‚u9ùB ÍSL<V ¢¼ 4O·!Ló~°¦Hƒ:$Œ1(¾?Ïz˜°v ÄpS¶í˜¨ùÆœG»h¸åbL;÷)8‡˜€…?¾—…‹ßIÙÖ4ÀU0AɈ±ÜÂmj¼çvîE¢*ˆâ³.ô»À` çûzhkйø­ˆK íÝãϽ«ÍGµl+®L<Côà>d¬ ’£i½nÑ7Ý —SeA‚æ‹Ç´(KEL1¬‚ ¯etÀe«v¿åßÖ·”S8‘P$Š¡õ9$]4M φ¨_mǵV0¹ ŠÉhlQ¢¨Ò"ò<ïÖŒ|C+Ùàz½8áÄ"Å©rn cnÄùºvÂá*eÏüªôþoë±ÿ�LÒó°+cØÀ����IEND®B`‚IMAGE 1274 ./arch/player/race/pl_dragon_blue_spellcasting.133 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ >l¾³��zIDATXÃí—Ë‹UÆçVUWO÷t÷Lœ‰†HbQB$NˆH(‘èÎŽ¨ 7q+ˆ+ÿ—Á¸uçB‰3ˆ ‚ ]nL2|Ca’ÉÃ~ÕTuÕ½ÇEÍt¦§»33Ž®ôBÑÕ·ç|÷;Ï ÿõ%ÿ¤²ñý'uå½}å|Owíð³@½qñ3ùW�T½¦\ª@ŽÃ%QHíðëêU¸÷ÝÇò¨<óªÊXA³ ²xÄàòŠãظ}¶9?÷noo+ÆKûŽ©)O` e°iþ8;Úß"H)Lï{:YøyÀl)€üR¬'¨³`Sšós²òô ƒËRLÔ«3õ· ¼ÿ¸" hcÛ^d­Ñæüœdí;`<Äø Š]ê¬|Þ¹e¾î\¹02žlÜBDøà…ŸxÞÿ…»�¦6  :SUYFÎÂh™è÷oE»6n£(ÎæüܱM10~à-?õ’®>±’6T¶AX¦:sJ‡ãuI›¯~â‹«»9±g÷Þ:¬NÃÉ£§5ýsÔ¡YBazäÞÇE­\Ki¤Kƹÿ/Þ§»üä‹ïx¥ÉÞ>øGoïÌ'EFѼ6 ª3u ªS˜°„Wª,ÞÈý5 (bÛ‹øÛ÷¢Q q)êÜ�ˆ•uüä1½pþé10ÜBs~VV³°V¯L’µîc³îra¨!š¡V^ëÓ±¡^P©çée¼å¼žícI¼€ÂÔNl7&œ˜&¾u»Ô‚ñ*«ˆs°ÔA»°ÙHzåaíFs~N0ãàyßtÛ’[×0êˆnü–»@,ÅŽ1A<ot�н ·@4¿>#�ÝÆ$#ܾ ŒGÖ¸‰‹ÚˆÔpÆô~ˆ¡�â«ßKÚº ¾~¡OÁäÑÓê•j0õ8…Ê&i^:'é½k¸»7q*ÐX„Rãå®(ËëuÃpç!õjâ—§!ëÒ¼|n¨\íÙ7UÒ¼”÷ù➣ZØûˆA¢$L!ÄF­ˆêL]W^ˆŒ‡Wš\î[ã‡O—öþ«KÁ:PkQ›ââ6Cu¦Þ+R« À+x…±¡õ`hÐöÚm·\1ˆ¢6#ë4Ь‹)–ó޹^ ”¼¬Á#»pQ565Ž™êcàP‡¨E‚"&,áâic¡oPYaÁ0 dvÓ³`Ú¹Mñ‰# 2‹s]°–Ö_ÊÃ[Æãç§�LXZ×x0µW³¥»„;"áˆâÒâˆæü`ZqÙÊï`%<t*G¨ .éôM¸}”DZY‚_ÛÅ"j´îA¯;/މ1*ü�yÚUÄ,—j/�ÏGTÁf¸¤ I<2m‡-] cr# *‚ø~>x«‡º ’í&¥CißôÅä ’7~ÞŒ‡/ßWt!M!KÀÙ Ó¾¡{A„ñ@$½Œ¸<>¬Í Õò%äï_w"êOY%îF.ÿ¯Í®¿�²«òôE}����IEND®B`‚IMAGE 1381 ./arch/player/race/pl_dragon_blue_spellcasting.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ+<GÚc��åIDATXÃí—Kh\UÇß}Í#3“dÆT“6­ñQmQcE°¥] *ºw‚ŠºtåÖ• ¸Ýº APQŠJ}¡D­iª­ibm¦wfî½sçsqíØ´MMRÅgyî9ßùßÿ÷ÿç;ðÿø‡\ÎæÚî§”4£à8à–ð?{e]1­^½án%\@£e´3‡v›`Am÷“zvÍð¾Gþ+ T®¿K­¾+Áq0gfQ“!–JHy¤HŸÝ ¼Ü:wh¿üc T®Ý«â•¡¾ÄAÆèL"Öà(¢iΈ é°éã¹Cûw©WúgS qDÀ²Ák ›÷àhL±±Ó !X„¸Im÷šéeh 6þ ÖƼ0„ØÐZ±ñß|\�Nõ†D¾=t5š¦d‹GÐö,ÅRõï5Ð;Ä*ã{@ΰâïÓ..#õQ¤~-øMüÏ_]‘߯êàèÕÌO}…UîÇ뤻tÿ‡·eUüÉ ñ''D³€êÍôþÚŸœ�Çu±mq   …4O‚j÷¼¼dµhY¦ÐØŠ­†È_FwÛžƒ›‚Öw¢Ý6&lRè/å•+‡q‹e¬ÚUùâb?d!˜îAƒù8ËÇØYn“v–ˆZ§�N®IíŸ?ívÐ4¤¶ëaHÓ© Q»ñÏ\dØW cÕ·@ë8µ{_Y™ª$¢üÊÝ•j• ØÀøšEhbµ]“ë ãÓœþ‘ùŸ&A<Hb²ßÆ,NC0 g¦{{ϦíÙNq8qq‹UJÕÀÒš„sS"Á"¸ÞYHˆv¸îf°’¼*Õí»­ûÔö>Ýc¡=õž¼þÃvžÙû·Ö{̲.ªQ4éæ~‡À¸`» ¢홣`R°3WØöó…ažÿbí<Êž‘Ó$Ç¿´¾:`R0q~ÁLNˆZBüÛˆƒü{¢ØT‡7c;Þõߜóu^ûnŒ÷ßýhÕRì¬Ê€YrŽ¿ºçˆ,D#ˤ´f2@AcԤР XééáýÉVB5yRsΔ!kýŽi/¡q�å*v¥Aÿ–ëÁrrI ’`õ*º�¥­·«X6ÈÊϦ³YŠ:¤4FH»­…“Ø•AÄDÊ›Ð$dµjº&�"˜ T MVØ«süK±7݆i/ QúêŒíÛCcÇ- 1­#oIûè§rvý†ÇC-TÑ$èÍwŽ}&ùØF“�úÈ©ãÌ|ý ‹Sßæ"·gû’,\\âäm&j^Àªl†,†4d`ÛômÝN¡1’ï;@bÚóToº_×Î@yÅ€1ÅdÁiJÃ;{²@!¶ÇòÌ1ÂùDsÓ¹uÏ/íG?±Ku××’•¯Ù§–íA¡qq ˆS [þ%w†]Ä¥8z^–‘œY cüoÈÅúŠÕ4±jb,E±k=ˆ[F,J8õ¬b?ÉìO§ç±ª#u)A^R©}c{Õê«#ý#Ð^Ì'í2ô æ÷A@–‚ ¦Û¢=õκ›ÜK¶dR¬¡â¢Íy43àU¡\ÃrllÇÎß ¸¥ ¾æ¶¼ºëÕèT®¯œ»MÜ2xø‡^ØðgÍ+;îS�kh<÷»eãôÜe½¬þ��ï:•×ÅÐ����IEND®B`‚IMAGE 1324 ./arch/player/race/pl_dragon_blue_spellcasting.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ.g�}/��¬IDATXÃí—ËUÆçÞªî®~ÔôLÓ3 ƒ€Dqd ‘‡ ÆC¢Á ‰‰‰FC"‰Ñ¸qãZWlð'°Ð@ˆ qa\A.T”7Ã�ÍŒ2Twu÷t=®‹b^Œ38ÄÄx–uÏ©ûïœó*ø¯˜Û»ý »éMóï‚Ø°Ó¸nïöƒÝ›wÞõ.Ü´Û6 6+`n@ºˆ»ù=ãß#Ù­»€Âªm†ÆMLBЀÖ0q ¢�$»i—‰fQu?—çW>gÄiÛÁŒV‰ÃQÄ„èò2L ÆÔ®‘q ó ¿ü#©,tô€XHña$U SZŒ´XøÄÓ¨lå´Ñ¬û¸½Ûͬ¸ë^»'i¦åƒ( ©Ò³™ZÿizA³Jõö-Ò¥%hÓôna’†Ü;kþ D~Å–©ÏDCuDã}ú†�x' @½rëÖVgk„þ0Íêï�=³à8 wƒpûv•+ƒ; iÚº!ô§34)Õ/±-7ŸX;k¼„¸ŽÛ·cJÖ*WÆíÛaÄiGÒ.Œ ‚‰q_Ø?áµ>Ø÷ÊM¾ lìL§PØ7§&ôN–±ìc(™WÛFk±Ò‰S¦ ¢Ä£q?ö®ÒÖ¡#⃭YÛ1xϦ–¿™I—¨Î•{–“Ö†Jÿèåë1µq­ ÅUxŸ¿%“cw­¹Ä««¯ðÍ`‰·÷ÿ*sC•M溨;&ø#ç¡ræHŠèÆoÄCç¡~ nŸŸµÞ9=ìòþW½ì^wùè}10ÞýiF=T®Œ(EÛò5Œ\è·L¡«‡Z¥‚ñ=Håñ¾Þ+sÕ•œîÇŒ*¯BkâÑ)ìe}´úAkD[ L« £-ˆSzh66£ê\ÚiÛÁ;uXŒZ§¡U‡Vƒ¦Ð݃¶RÓúg¶�f\F&6˜`» ˜èøØFÅ!Õ«`À´0q£uÈäç§¹eŒ*.Fì,ñ­Ë¨\ÇÄþMtaá¸_ñÑŒœ=‰iù¿‚dÚT~ÚXϩ٥Œ*tA$“�ÄþDáß‘3ß¡óíHªÉvb‚ƬK¢fà?!È„Áx&ºÐ…ù{‰ª•;Ë©F\«þ1@çú§TžÚ¹c2–õØy¡÷%3'�bg‰ª0Ô)<þ¢™L§WÝÑþ¢ˆFêÿ ˆïÚ çsc@¬äS‹ˆ¸9‚X™©ùdÁ#ŽË‚g_&]Z”ÄM²Ú¹c"ŽKµÿ ™»,yÒXù.âÆ0X*·SKôÝ„qu�]Z*?B¶ÜIýÆ 4}¼“ŸÌˆ•I(Ìu#bAPEu¯Au¯ÈG!ÙéŽèV@FÊž“Î Ó ê@„dÛ“Mè]ï:zÙf”í@úUÂ\ÇeqæOŠr+Ÿ7„ T®i[ÊJ@è,äÚ!hBXOFÓÞÉeÞ�ðÏ~)’q1bcF*Ä×L´ ë¢,¶4XÀv˜×e4í_`Ý놨†©¡ŠK“‰3ì,¤ŠxÇ÷È0yM«E[’™Wïè‡÷õžÿ àOÝFïáˆ5=����IEND®B`‚IMAGE 1391 ./arch/player/race/pl_dragon_blue_spellcasting.153 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛUØÌ��ïIDATXÃí—MlTUÇç}ÍGg¦íŒE[(Šø‰c"¢®4~.Œ;5j¢£k÷®\#¸sAâÂĤ1Q£,4ˆMU¬š ¥´ÐáÍÌ{oÞÇ=.žT -¶€qã]Þ{Ϲÿ{Îÿî¹ðÿø‡\ŒqmësJ‚QppKøŸïZ•OëB¯^G£y´3v›`Amë³zzÏàŽ'ÞùW"P¹önµz.ÇÁœ:Šš ±l¤PBÊ EzÜè.à5`óôþÝrÉ"PÙ¸]Å+C}-ˆƒôm 3¹O¬þaDÓ<"&¤ÃšO§÷ïÞ¢^éÒ¦@㈀eƒ×@Öî�Àјbc¦B0 q“ÚÖg4Ó‹à@mä­<r® ±¡5bã¿û”�œüúm‰|{à*4MÉf í£KÕæÀÂ!Vÿ»·äL�‹nŸvÑp©#õà7ñ¿|cQ~w<¡ýÃW13þ5V¹¯§ŸîÜaüß—e#àŠ?6*šToyxáÖþب�8®‹m»ˆS�)Ô yÔP»oç"IÔ¢ujžBc=¶"Ü+·½ó)h}?*ÚmcÂ&Õ‘GÿQnP¹|·Xƪ]‘o.öB‚éžã4˜9Œ3Må6igލuàÈŠ8ÐþõÑnMCj[S€4Ê�õ 7ü•‹ û²A¬ú:h¢vÿ®Å©J"ÁïÜS™¢V©€íŒ¬˜„&öQÛ19:>ÍÉŸ˜ùy ă$&;ö+fv‚£pjrÁötÚv?yŒ/·X¥Tm�Ì­@8=.̂놄h—¾knK ‰À«R½n Ò·bŸÚö¢ÐÿH^Úw¯Þ;Áæú¶ Ø·*ªQ4éæz‡À¸`» ¢í© 0)س‹d+N>ÞÌ“›&xpã4É¡/^_]0)˜8`ÆFE-!þã�ÄA¾‡(6ÕÁµØŽwNýØóá^˜îy~ç/’¼Y¼s©cœe# @–œ¡¯î$ ÑÈÇ2)­© PÐ5)t(V�Øóá^Ùó—ût´º &¯SjΘ2d­c˜öP®bWô®»,'Ç‘´ –¯¢+PZ»Šeƒ,^6YÈRÔ) ¥~0BÚ h?‚]éG¼~¤¼MB–«¦+ â€É@Òd‘¼:‡¾{Ím˜öq4jBO ;¶Ñ¸ñVИÖ÷¤=ñ™œÞAÇC-TÑ$X˜ïü\ò±&&ô‘‡˜úæ[fÇ�̯gû¼QXšâäm&jžãÀª¬…,†4¤ïÊèY…ÆPnw6€$Ä´g¨Þü®<åÆ@“') nZpþ²±=æ§Î&šžÌ¥{viŸøLÄ.AÖ]]KV¾z‡Z¶…ÄmÄ- Nlþ·\v«o˜âðõxYFrê8Qãû–,ÕW,ljeë€ë`)⸈][P¸eÄr¡Ô‡SÂ*ö’ý™àä VuhI_ç#äy™Ú³a»Z=u¤wÚ³ù¤]†žþü=HÈRPÁt[´Ç?Xu“{Þ–LŠ5T\´9ƒf¼*”kXŽíØù_@·tA‡¯¸-¯ny\5:‘óÀ+çjS· ^þþW.øƒ³bÃÊ(€50’ëݲñ÷¾|Q?«ÿÀŸÙ|;e'“Ø����IEND®B`‚IMAGE 1397 ./arch/player/race/pl_dragon_blue_spellcasting.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ¼\ Ô��õIDATXÃí–ÛoTUÆ{ŸËÌt:—ÎtÚábª- ´^ÐÄ*‚’h4ê£Q}ÐøWøäƒÁ7câƒ1šˆx j4š`Ô”@¹ÔB‘¶0g†^˜Ë™sÎ^>ŒD,—–ø¢ëéäìµ÷÷í½Ö·Ö‚ÿºY×r( =#ñÌ’JÝù×Ù‡_’ÞM/@öÖû ·v‹äÖl–›…¡æ[è½ÿE±’yÆ¿z]å×mHs;½âY¨Ïïà.uÓ äV?ò²¶Ý*‘Eš Œ_ ‰h«³m»`Ç ô1A}Q$Ô?c‚h,­-¬ÎVvAùn¾ü(ÊM ,…&ªOáÚ½ úŠ?&Ü倶yº0ÉRç"&¨Òœ8†ÝÑÅÙ=¯)ïÐneª¢‹eDÌ¢r@ÿíöoèDV2ÛÝÏ'Ñ=<zÇ4‘°ÆÄ·o¶oiX¶ænŠ}«nÊñ¯_ AœN^8Â[>åÛÑÔYïÐnU>¼§ že»�Œ؃›]r]`¹aÉ KáÞçäªIøÜã¾yeÓïwn{oè@åè—›ÿº–]9$‰t7…ÁM8Ý+˜úe§k¥“ûš‡•¹…ÒÈ»êïÀVf9HÊ¢´ï}uMæ×=öaùðžgÛ‡Üþ€tV:YK™=}D¶‡ª7†Ô¦1þ4JÙØÅÕD•Óèd¥‘wUn`Xt¦m;œÿá+ðì¹Î;¶‹DÚI &¢|ø³¶sfàaIô¬dùÐC\(OS9uÓ¬ÑðÎàf—a:—‚†°<@ùȪªÍ¢St¼ƒó{ßRóÊ0µþ ‰'2LíÇíî'š=ާÑÉ.ˆún]Obé�g~ÁJ¦h–~¿Nzùí¨d/õê áÔY°í6Pn`X¬lÚíàÜwo©kÖÔú'`öç•“[)º#‹›_a“xz)ÙB˦áA5/bª:U„0@§ò“Ǹpro\çú±´Í¹ïß¾j}h‡`öçÛŽAå”Ê·IX:Áê­ÏëíçØÞÏñkSøçŽ·ÂÒ7„î%òg�þþ èt­mLóâ5•aÏ·ŠAbí}œ+¡&¦ 3X©1Yþ8ÓcûI× SùËâ+QˆRãOáíß©n¼ùµ[¥ê×)ܵ éÁ/ýJب!¡JhNUéÞAf&1uò;ÜâZèºíQ¶‹4}Öb@9Iâ݃œØ÷#Ae”¨1C83Žø¨ÖïÐ.•î 9yô’¦µD ‹ès‡ÅâÜ2¸+–FkHZÚZ$Z hŽ„©U°’=‹lFZÝ›`üô(áôV2O2¿’°<†„ RŸþÇ+.¤1Íÿ¶M8]BüV&+¥ÁMÕ¦ ®LÚ Áî�uc]y^ ¦U»çº`ü*Ê_æ–é[/D«³;×iV!Šð~¤4ÌY÷ƧË‚0¢6sìÊŽã‚*ÊrA+¬ŽœlÕ‰ê³@ˆ„!Þj‘/ JIaÙ6& p’l;ƒNä±bq”Ž¦Ù ª×A|®üªæ2¼{ÓëȵÝÞ(ñbËQ+6Z£Ý$ÆDHP¿9SñeáØð䥬×Vg×%¥MLPƒÈàÜyÃsáuo¸Œ„m·¶²à¡ôûßþ�Ûµ„ÂÌ’™����IEND®B`‚IMAGE 1296 ./arch/player/race/pl_dragon_blue_spellcasting.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ Õ-É��IDATXÃí—ÍkœUÆ÷¾÷L&™™L>Z5©±ÈÔP±jULQ .ªA7".ôÔ¥‹.í¢@ÕâFÝI‹Z1UK¥¢­)I¬™Ä™$óñ¾ï½÷¸ˆ_©Åæ Üô¬Ÿ{ÏsÏÇsÎ…ö?›Ú(°ÿàS²ðÕ‰¿ð¥ê#‚8tºxjÓï«­0 M¾$·(ÜvH�tº24 lDùÎ)A„ÚÙ“›"¢¯¼ÿyÑ©WÎW}w<&*ÕƒÒiÀ mŒØ† Ó»¥\—€[ù…¤1KùÀ”ˆm¢âULq˜ôP·ðÍ%Üê""žOA©2)ÞÆÐª£u@X%(Ü„´Ì~øº(ÞvŸ¨0·‘·l.¥Ê¤„  OöÿÂîpŸ4‰çÏ3ÿÉÑ5ç£÷J <™Á °ƒš|éeÛ˜G…)‚®>ž{ä<óŸæ™›‹Q›Ä“)ÞL¶§@XÜÃÂ_"úεaaüˆ<¸×óÎçxó« ¯M|÷JøBçhaÏAÉö”é»°<BíÒ÷4k3H«(eP&:`ñÜǪÿžg± ð ÿlåuº÷?&ât˜EÄóâŸyuò‡øëÚà[³«Ý7=󯹧KûîþlX »kŒ•Ÿ§¡ °o4ØÅð ¤óh‚KPáÊçÇÕ5#?"+ß~ RCUI•G‘¸Åë}Ï¥•Ç.ì— Ûuºö0rð!~[l°té®Ý�çèÙu+*7H»¹Œ­Ïb—.¢óýèl’˜_ÏW×MA~üˆ�¬|ûJ TDlŒî*ê3<v7ÙÝ.óA.O¼ðDmT®¸¦6¡6ý®*î›SA§ºÀÅ×|õ†¥8³k¿˜lÙÁ*]…l`èÔ.£âU|³Þ‘9„‹–ùõôÛªT™]%І+ŸSÛÒRõ°Øú ·O<Nzp”ó§?"jÕÁ;&S� ©]¤6ý®*U&D÷ ¡µÁǫۢ|²ÕC\žY@Í7°e‚| ·¼Dý›÷@ùÀ” �q¥4>ªS»ªÒ7-D}ÕG¥µé¿ë0ºw€háGl§…Ø”ü…«]›€Å½ˆ2)$ŽÀÚí+¡ sdÊc\øò ÉÒE\g»<‡D ¨õGjgO*¥ â@¶/ÅåOHvà†ª÷¢Mß\Dkˆ-ÿ"�°tá”’Îòº;¶UíÚ<s&m̃M@©n|ÜB©k^´Õixíƒm, ÑZ5+¥!•ŵêà’lÿˆ`º@©ÇâAì/[›s>j¢R™u°ÞáqÁy‚î2¦4Š›àvÆ–‡QùÎ)!À:¼³tš‹`Ò(“!ô$͵ThEÐ5@XF\×^,b-µ¯OlCˆDþh'1x—æz1¦í#HgÖV³�|ÜÁµÛ vþŸR¼®’•¡S¿Lf¨J˜+¡ ¼wHÔÆw–‘¤½)ÇšëHè »øw§'1>ióÔ¦Oli%ßп` cÖŽxï€Í¯á7ì†]m¿ìz £¸KâŠ����IEND®B`‚IMAGE 1385 ./arch/player/race/pl_dragon_blue_spellcasting.173 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛÑè?��éIDATXÃí–ËoTUÇ?çÜ;w^Gg:^}€´¥Ð€Ö$R$Jˆ,ºV7.Œþ®X˜º#&.X"B4h¢‰ DLIC‘g@-´¡¯¹3ôÁ<îÜÇq1th…Ji‰ùíî=¿ßù~ç÷„ÿ»hOSHõ¼£±5…²9<ðŸ³Ëö~¤2»ÞW�ñM;@¢ë-•زO=/ ±ÔAæµ”N2öÓQ‘ÜvPy®ªÎ¢G×@ å9ÀÃ:%ž;Dç›KÝèÁ8ªZÁ³ `WQÒ‡ÖFêè~p,<»¼*âIàxv?Òš”ZC -¾;#ÙŒ5vašÄ-Oc^>½"ò±?žÓæ©s$5ÁZß<»Huüz¨‘{g?æåÓÂ+päQÊ[UÈxÿ¹ 6¢…“ìÙb"ž¥¿ï&Ê®¢œã¿|Q÷Ò«ÜgÝ–WÉ6·­Š€¾ð£póçOãÝ}Ÿ¼¾¡Äá–Û´Fæ8q5cš—O§íèU<ô|ìÒYŒu=ËK´÷*�-ÞBnà¸X2 ~¸éÒÞ¶é¶£Z‡O|7øò³xk F›HuìÂ×ÔÂôøÛÈݾˆ*™h± õËk±õ ¹‹_‹§–arÛÛß䯞}·~ÉæÝª!Õ‚ã‹\ÓÁÜÝ!‚ñ4EsUšÁ³fBGÏvâî"ÃirÇE¢½WÉX3R÷1uá+±d¶Tʵ‘¾ ÊsÉ_ý¾®kCÓ­¬ïÙËýü …;×ðª%*æ(F|^ÃZàäG�È_ûQÔBµOÉH 1uî˜X² #Ý}*Œ132ˆÑ´wn ˆ"ÃàÚ4oê&¸¶ÑßЪ¹¿À*]¿ÎP.ÎâLß]¯%Ú{•oF!&ÏOí‘î>0wåŒð%Z• Å1’-àT D×Чq4Š9Ѝ>À+šÈHIbOÜàþísup™Øˆ&u&ýR,« 殜©+Ú…;"‘= œÜ-:÷¿‡?³‘ç~À*McMÞ¬…¥¹=šÁµf€ïQ2šEJ¯úàÙÊp¡DüìÚÉèH1>ƒS™E‹$ð«N¬©›ÌŒ ÍnAF’‹â«\!$ž59xR<{'’]ûUÑ*“zå�2–ÆÊý‰S)¡ „¢:q]D3ÌNÜ`úöyŒl—h|i·ºªZà8+lÅ€ð… 4upëâoØ…aÜÊ,ÎìʲAÔLÌ˧D4ÓNuâú£š–:ʵµŠY0™?À†Žmhþ(RJ”rAª:‰Ú�š'á• háô*‡ÑC)›ãŒÝÆ™G ' '[qò#(§BdÇ‘'º¸’Á´ô è:ÎLeÕ2Y F·4 ®ýxÒ¦Zz„Xù0ZìŽWëÝóÓð¬"Â,R‹5w+\­¡ =±¯Z×ÅúV¬h!™—¦‡šŽKivt?Bàó,°‹Í�)ÐBi|ñf”[Æ-ÏÊq0/«|õ°”š®ã¹6¾p ]!ƒI4�!ý W­à–Ë ,P,ü_ ÌgxÓöCÊJÔÕ+æ0lÍ�n-6R"0žç¢ìòóÙŠ…cû¡GY/}h *Ý®âÙ%p=Ì¡“ϼ.Û` ]¯™z <P+^J_È ù,˜ ý¿Ô€����IEND®B`‚IMAGE 633 ./arch/player/race/pl_dragon_g.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���óPLTEÿÿÿ[ _ ` ] f d j ` e m J b d A t = U r M rc ? P xj pvk C f R Z <j pZ T \ a _ T 5 [ v^ 8h o + 6 K %q F <½{ F y <sŒV U ] {g "• E V :O N D nb o } L / t^ƒw���tRNS�@æØf��4IDATx^­ÌÅnìPá®Cæaf 3]fæûþOÉV5ñ*µèMúåÉ#NT9ðñ€­�ÒóÚi–Ïrà h¦à¤‹ziâO‚d ƒ‰¾áçð^4wE¤Ûýþ¢’ Öh_r]¾ÝU¬§Çêì¯k ÎDò5w‚öÎ*øøÇ»ú=Û‡h‚lÖ< å¼kwÖÿRGnH¡ {íÑiâÜâÔ¾5 ¯"mûáB‚yÇQøW"Ûèµ� ˜eO¡ ²Âá° "@øß¼CòÍ4ªï³M0À›àk'<zžÒ”A6‹ÂQõn!SñÙªHH¡±nU“b5åµ,)­à¢nRÒØx¡)¯êÖú”‰Úœÿ«Û&@ÇIM ÄÛ¸ÅcÂÜc)ï©Ay·ãÏ ­G����IEND®B`‚IMAGE 629 ./arch/player/race/pl_dragon_g.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEÿÿÿ[ _ ] J d ` j m b f < d = e A tr` x U c r ? M t P j vk T j R _ Z C U [ p\ a <½Z L pV o q F F yo sŒnb V / K  5 6 + "•% ] {g E }{^ h O N D T v :8 f ”R±¹���tRNS�@æØf��3IDATx^­ÏÕn#AῺ‡yÌÌ2Ã"3¼ÿÛd=Ér:v)u{¾›#Ï ?R›AØ�¸°¶vÅìøÛAiÿí®1±G!ö±òŠæ²W‚åÔšïœNE–-§ÙN*q Ôø· ngÿA§óãtÒ=šü1jm3}Uwî»îuÍ3iÕ·÷’ŸíóáÕþ‰`‚y’(Û=¶mEü=G€U•2®÷¿E†ÍJßÜÅr‚®7Tí½UU8úÁžZA^mмv@òy¼^¯h`l< æÙŠ”6nüiz¿¿€¥2„åõ³”ÈèSp!%@̦N#‹@Ö€X¹�YßëZpà"šj×Ó…¸‰Á³&Ž òê"_ÌÀñ#Ëù (@d—zÐ¥6©Ÿ/Ö=Û¥ûMdâ����IEND®B`‚IMAGE 805 ./arch/player/race/pl_dragon_g.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��MPLTEÿÿÿY[_ac[h O wvn\d_mgVgiP b^ :h\L ]xjd H jTxyqXk J srf^nue_G ora = kbl`T qW ~G6PuVk f ? tqvM Q ? E ikiemjwqw(_c G A {%…($„ L N ypZb6m!z&R&Xso Q x%I& Q G F Ñ�„���tRNS�@æØf��†IDATx^µÅrì0DÕWhf 33ócffÆÿ_Æ׌튗ÉÙô¢nW‰] Ƙ *,â¤�ã íÔ~|aFzÜKë—¶#dõYŠÐXžð�QûRžyËͨ§)»,X(”V+ûßâzÂäúưûç{B¸1é‡ñ&<*ÝaB|Cÿ2ϵ.(ÊJ¢ð‰O"ï¼Ñ¢ñAV(6‹�œÕRŽÍ W±8¨óÀ@eôÑ+Mw-{ˆKÀ;Í ,ü,²W  áæ¸çèÁˆûïè±UäH/dðDkëë{ò×’Ö†›è?_—õÐÌ,ú÷¬¡Ì1‹fª³ƒM?«S­}$ šù_à,âäô½“›ïäBɃ‰z³k?¼ÃóÝÆaÿÄÒ¬ˆ ¦:Ýš_PAÑÌ'­½^˽ü=1øê"(º´íØS, �žñйÜíÍi{þÌ«³¡\s¾8?V®Õ„b�/ÏÔÖ³ËEé‚¥�¸MáI±¨�– �¥�véœü–"˜ùágv����IEND®B`‚IMAGE 815 ./arch/player/race/pl_dragon_g.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��YPLTEÿÿÿY[_ac[\vVnmd^_\P eg]b O :ihgjnXG J wxxor^fks_ajkyM Q E ` L U rT H (_dL yqqN uo Q x%I& Q G F Vv6h ? X{%…&R&qqtkG6PXi($„ = pb~c ? W A wumjT ]k fZempsiwl!zb G /÷Â���tRNS�@æØf��„IDATx^­ÐÕn41 àuhx™¡ÈÌÌÌ ?3ÃûC»c)›Îloªúê(þd%ôìqž�„Ð�=-A!ÚÎ xó­(™6œî»`º–gû�@HA$oŽçAÍ“A00m}BévN|�BPê8dxxpL[9óƒRqÄŠŠñ1‚É«„q)ù?i÷Úš¯2h„÷Õ˜ '1†éƒ�§ï²Øî P‡NÅ=8·¿MfóL~Ðoà-&�~é98±S  ªÓë1Š ›ó†‡ñáïíîÚçrÚ¶ú¹Àäv&VóÚã©6 ò?C;ïrî—Çb=¦‚Tg%K¾UDra…¿:ž1ac `«üµþö„ãÓ†,Zlc HV¢âa·!Aò†Ë|q•Ý[îÅ ! 4ꥦ^îd LÔµÓÙìùŸQ}áÈãÂc$2æwóg}s6ÄÒH A홫–æÐâÌæ¬KÈ}@€°ØKÎ=û–#ÿ{²3ª����IEND®B`‚IMAGE 1064 ./arch/player/race/pl_dragon_g.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿWgaSVda ? \ Q RcO]Kkk < VmPs G Y @ dg_mX\{^X< BYF@? Z 9 t M A I ; I 5 Sj[wJgq C : [Z&!\ ] mH¬4 2mm"}Naf!zoQ@ ti“ O F&‚NO G J B "‹^)ŽoEsQ b›^ V ! < ; xJ@NDŒY = $£3 i*Š ™P#yD+„& > 9 ou…S - '.&Uƒh U dd*Ž T c / ‡K1 ) \]s'Ž*† Rtwl4œ&_c{pK W DoJ }u2Ÿ#lid J E g Z; : #up / €}0‰'Ò†“ß���tRNS�@æØf��ºIDATx^½ÐC·d1†á½“c”m]Û6Û¶mÛ¶mÛúƒŒî©³ªf½ú~ÏÎ ðÿóIÚÚ¡xO±±5Ñî+ ö«riG©aâr!Pfޓ΂áΧà~!Ðàܲ’ÑsÜï†l�‘¤˜ ¹ZsŸe¢°üÊõK¸~È\=yÊÄuF@&’½¨¸"¾=\ßìO¦u˜(ì8ú} ]iÞM›çKžÈî?H¶,_¶ŠêSWO?·‚“kcXB›2q„ZØP=8o%æÿ@qëíX(pkãôcLÌ>çƒòt.Zc išF(" +|MðP.ÁñÅo)m;Ôé¿­5íjj½`ïˆ Šå• ù}1Ö¸Þi Óãe ¼¡F#ªÒÚĶJQÃÝo‰ãbl°Ž¬¨søéÊËñIOTœy"X§/à'g®Míy³r+Ó- ¯soöãO�eݬøl¢r�µN°T<WïdžžŠ_#Q <k—NT {u©·j{TsCÂz‘ܲêРP3Ÿ‰¢ôâõpDmƒ"]Ð22¥îMÓ¾úÿ¾¿—J-Ľ³ß����IEND®B`‚IMAGE 981 ./arch/player/race/pl_dragon_g.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��éPLTEÿÿÿWBaSaOgR\qVd_P]kkVKc ? Ydsgm{ @ @? w I S M ^YJm J Z G jI< [\ C ; }u2Ÿ#™3 st@ Y 2^gGcp"‹ D Q < *Š @ND&‚Z T cJ5 mb iiF ! < ; xm[O $XoX^ U ›“ O ‡K1\Q KŒ"}oQP#yD+„& > 9 uoS - '.&Uƒ = h\dd*Ž £Etm]s'Ž*† Rwl4œ&N_{V J W B A ^)ŽlidFE g Z; : p €0‰'‘vŧ���tRNS�@æØf��šIDATx^­ÏSÏdA…á½v·íþlÛcÛ¶mÛ¶­_:ÕLrrº:“Læ½Y7Ï®¤è_jþHI±°êµš£]ÉÑ#R·uMFË“ÈûÛjpÄÖ?öÄÂM ã°Œ‡þK³2Ž[7tñ,>«¹NIÜ]ÒÝ`¹AY°š™“¾Es_œ �˜»ž.ús»ÎÏ$w�A §š¥¨ŸZ òF÷e„Óþ$Û }ñf6çü¾›ÃÛË x>5Š®JÖPY'ÞûHß[»â©:û|=Þ,‹›í#¦� ŠÓS½ñNöí;•(6Ä @m²}y—Öá«ß6éŒhÀµ@ÝêXÅ#½–O'ä×@öÃÿ€á'µ¨MÊ#V°ˆJë=QËûÜ›.miÝ ­×z¹0ŠBòüäû¡ÎỎU+³óL›*{ݶ­6è8C³[îÏXpñL+�ç†ïÖÆL„µä­¬‘Žèvˆ”í|e>п.eOR•®na]ˆHŽªÇÇú¾Òÿî7îÕ<OŸ!Ç»����IEND®B`‚IMAGE 980 ./arch/player/race/pl_dragon_g.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��òPLTEÿÿÿTVXa /Bk]SfD0„0\[?ewZXnXv!~~ZZiygJ MQ OVHK^]AdC<LG pA¤<bNknPKeLB@ŽheR1N 5 A ? sE"#qT#; 6 2i > S UYhO D:£5T-d*\d>_yCbY=m!K!j."RNI>&N eB9:\4hj ^ D | 6l]*Ž*0!{!qI«?0•+!}!f/ O [D¯?XFx(m%--%% B j1C5YXFF!|{; = S/8;¨6*•%\q<Œ8g‚d`<C<TI ; $x$ôŒ¦Ü���tRNS�@æØf��IDATx^ÍÒC“3QÇás.Z¡±mÛ¶ñÚ¶mÛÆ÷œNR©Ôt:5›YÌû{úÔ]4l߯·èN+Aöó´Ý„Ì¿Eø’4 ]"S Ë4WÉÕBvEµµíE©ÜŠº½øÄ3½ “Y®Ðì<‰QÃk£Qì ­›â§Ç«’‡¦ïkŒÓ÷/¬X,/š¥Íù੪—æ"–£bᇒ“a9Cí=µeWöó÷Ün*¼ð‹‰.3žñ/ìËzðá³Ç4óÿá·¯jXeò´,á³ýû'®õ¡óÕ>€Í+ÞóåvÈÁ9 ŠÑïýÍ’ìšµyŸ ßᜪÖ$—¦¨¿ÒtëæJÎ9X 5�wwŸ«ëÈs� p,˜ú_U }òÅùELÔÃXëȨ#Þé�é1aoKÉÑ>pŒ¤³BØŸ7§UÐvàØ)hG\¤«äðÝßù…ÔædR*@$¿:ÇL¥6¯ÇÝòT÷GDúóºíÌË¥RF!°WŠbAâºÂe§aÇm¤)=?a3'Ó����IEND®B`‚IMAGE 1004 ./arch/player/race/pl_dragon_g.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEÿÿÿTXV]aeZBSfDw[?HQ n\kYdXv!~yXpKgRkTAZneM<bO~=^IiVZNJ LT[G <O PKeU/1N 5 2d]x(m%--iCb ^ EYs]UŽ";¨6`C<XI 61C5_I«?y>`S *•%\jD¯?q /A¤< A -d*\%%P!K! O 0•+j\YlqFB@" B 0„0\4hjN h D D:£5T> 0 *Ž*0!{!#; 6X8 ; !}!feB#q:Rh|FF!|{; = S/ > >m9C<Œ8g‚d ? .N +G &L$x$ ú–���tRNS�@æØf��IDATx^ÍÑS³&1€áî$ãÏö±mÛ¶¹¶mÛ¶­ÿxj¾š«MööÔöíûtª«ë:>�p>!ô_Ý-Cv6~Ñ ( »†ÜéRÀrd1hfôÜ[ic¹9B :Kkå#ò~öò“³vðâA†ð´»O!f©G÷u^ÞoÀÃø;Àͺç¯nÏrÜ+ŒÁœù¬XS¦¹\¦ZìËXñ³öŽ`฾$[]ƒÍ®Ÿ·ÊJŠûë·ì)RÈŸŸ?=M÷úÍf ~üš©øÞ5¶)ä¹é!&¥Èð×\ºxæö±»ÄPÃ^PÛŠ¸#Ë¿}ÜT¤"PÓ1ìÚfË»Ñ=@òY€ë…‡çG*w÷�: ÁoáÞÁ¿[†"fPȼý¹RÚºZ’ WHB&Þ,G’àµ�° _U×Ì~í=å]§ ©/Ïj�M†®î ‰¯U§M¦} 6·Äw%Ò[‡=Q[^(˜9àà’ê;¶ÇÏ¢’µÎ %Åëõ+VŠ€B(Â8kRBóù‡/Ð����IEND®B`‚IMAGE 1007 ./arch/player/race/pl_dragon_g_spellcasting.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛýš_��oIDATXÃå—=o\E†Ÿ33÷îÞ»×»6V$bA 54„"JJ•f $äß@EÃß@ˆ&òH€Ž ¥ˆÜA…!a!+ÆïÇýœCq×»^vï‡S FZíŒæÎ¼ï¼ç33ð_/É~¢É~¢ëŽ7›€wº-u~\ÿ¤µ · ox~) ?ŸBØ:Ý)‰ÞÁ@®UN·¥�Þj+ww+öø‚"‡*¨1›7,nKßýþ¦.E }7ž›|&ÎE ûî£c¸õéç¼z:7-Èžyvßi.çN·¥çx‰E²~—Êý? ‡Ï„Ÿ~ͱ‚ÊÓ‡)�/Ö~w0¦x<„³[wbݺ«ˆà•äö¼gß åþ±AbüUQb…ÞÁ@~üàèJ@òa¤ƒI x ¬W£$aë5GÿqEcCÐ'âÀîMmTæàB¨ZBÿËþò&ì;MA ­UhÖ?i‚4¤n{¶¡ý†#îÁ«¿;Åð+²S·—ŸÙý#ñ=Å=H@B+ä}O‘ÃÓ_+¤PlY+sî [B#6›åþƒ‘$·#eJÎAØòJ)Ïj¯ú’‡`pY=®õ^¤ %‹ }Y^˜KD U !4¨Q°…¢ãÙµ�?®g¿W8+èŽPfºøs—»âÄàC âgG]h6^·4w-Ò„ÑQÔ ÉV þꌸ0haCð®J{ÕÌJz™!°m°Ò_ëƒ. >G ,”*øñ:/ãÅzvêUè@§[ѯy¦PÊB1f‚½ð\XÜ|­Ãhø0iÕãÊâ2½2%OÂBÀÎ ]•Ö/Ýe¡ä™bc3a·ìjXãûyúqÇ=U´öÊd瘬*>õ¨¯‰\&çª`K…@3¥‚4ÀzäK€¯KfNá£Tü‰GGŠÉ=beÛãW2É”2…¢„||ÉXÖÕ«–KeKÞÔ¾b¨Á9БN¤n½)Ãq�Ûàn™É9rúU_®…ÀŽ\‚3P?ǽ ¦%3‰¨Šçáôë¾l‚ËŠfŠ)fGÐ=ƒ}É Ì|kGŠVºR¸–b:7¡Þ½Å®_çmpíeÑâ…<Í^Ø6ü_•�¹UšÜH$„C����IEND®B`‚IMAGE 1053 ./arch/player/race/pl_dragon_g_spellcasting.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ+H0æ��IDATXÃí—½‹\eÆç}ßù¸sçcUÖdW1Á –‚ ‚$Ø­Òh³ˆÒBÄ"…@ŠTba!!Úle!"؉Ú±ŽJt-Œ²&ÌlæÎÌýzÅwwvî&ó±ÑÆÓ̽̽çyÎ×óž KØÊŦ®\lê2>dÑ;›¡JMÈ ØT©†Â·}ùWüð~ý³}.ÜÀÛ–jGHzû‰èmE3û5‹¸9âÌ™¼Ð‚ËÛo’&W ÌúªåÄ;m}é«5=í×ÚÙ 'œ½ñ³{û½›BËÂc¯^ãņ§³fÁ@¼ë Ÿª0wÊ€:›¡â\­{µÿÍ÷#{îòoÂé�|WÑX+hªÜ¾>â§Ï#N^jëL=ÐÙ UU‘©6Ï*m0UCïãéÚv6CÕX‘šWt?)šñ䥶þqeWfjÂ{µ^ Ô4 ù¯žþ×C Ï*ìú~³\òPè4û4¸½+$@õ�ð…F‘Â|Oqk–o5U+B²£$±§R+°¢O#YZšç5ATÐXQÒ¡uÚïä¬<íØý1#û Fª˜H¹ûå`a=™˜‚þCñ=…:P©ƒÔ¤¸÷&pû—œ„‚˜*6›nÒyÌM¥¤]Ð’@ Q¡b!éû¢R‘¢©â³qY6¬¿ÛÖèϼ”ÈýDiŠ€þ¬CæÀ9¨Ö„$W²»ŠŽ[b»�sVЇ„,Vz[‘Ì ^*Å­†ê£W…šµBš+>RÂUËïj§ Ñ©?b‘: oåjhs?»Oô@ó\ PŒS£i¶A*‚ïàÑ­¼�j+ë`tÇC4@ç/-i÷®h¼Q/ßKùA‹»žØ3©~É)ÈR%OÀUüøwµSv:*?Æ?àóD?EÀx0©’¥Š10:ôðaç{÷Ù>¡yÇq¢ƒë#imê—EŠ =âŲHç¾ô8ÎR%‰uï|ŸÕñ"àåû€7ÔøŸ<c›I³º' ÕP0uCÜ÷h¤Ç zÏ h¬dH3È<TÔJ£ ^ ´ºn¨¶±BÜõ¥>(mpOqH t¯Î·ùpóå@íã¦ØrèøèmE>(pÏ™ =ÈÁyè^ë/¿÷¿ ;–Çr­†šUÁ<#È¡I±CEsK îË´ÌYŒw¿’t|~–Æ5‹Ì·õÈZ?¨iYèÓm–Rþ·ÿØþ©x« ›áØ����IEND®B`‚IMAGE 1014 ./arch/player/race/pl_dragon_g_spellcasting.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ7,Ëúž��vIDATXÃå—=[E†Ÿ33÷Ú×¾kï²BJV€BÃ?Hƒ@ˆDE³E¶£ £¢¡„ŸÀ· ? ¢D&-tˆ@bÓd±Ãµ}?çP\¯?ÖÞ¬í݈+YžÑ™÷=ç¼ç̹ð_âƒXãƒX7ÝoÎþÚ;-u¾wßnoDB6/>k¾úá=î–†› aWÈûSý[¹Pt÷ÛÚÝŸZÜH¿ß²pã’çà‡¸ÚôTAÙ|ÚÒÝoëKß]Ö•tÞj;çëÑÒw?ÿ?õàwßçŠSº—-Èyv_l®¦î~[qS+·ø¤[?ù*•oî ¤pïh¦ˆ´PÞM¸ô^GÏÔ@|=Ré€ ý/¦ [o¶êÍHA %¹3’eáÑL‘†P‚z_&rLàÁGäñ^TZ`bSƒ•µ5êAb¶®8’_*Û0‚þZ!ìÞTFe.„ª-$'«‹0ùv$:¶hÖ?i‚4¤ž{¶¡ó‚£Õ‚g-~wŠáÿVd§ž¯ >—Éí‘ø¾â‡ H$H ˆ ¡òÄSäðð· )[Öž9Ö†-¡ÑZ¿¬¸ÙIr{$ñµHÙƒÒs6„¼RÊj­ú’‡`cpY½¯ýr¤ %Ë}Z]p ¢ˆj!!4¨Q°…¢ãÓµ�?g÷+œtG(3] |@|­ÎwB+6øÈÁùù]3ÓÆó–æ®Eš0:¬�¨ÁV þ슸4haCð®JûÕœ%ý[™#°m°Ò#_û¿º"ø²Pª\ àÇÿé¢gÇYÏ38¬ÐNSÑox¦PÊB1f‚½ô^XÜ|£Ëhx7i×ûÊâ2=³$OÂB]ÀŽ UÖOÍ‚²PòL±-3a·ª5l°~Q„~Çñ›*Z¯eX—쓃Uŧõ5‘Óܹ.ØJ!ÐL)‡ °ù à›’YðÀðÇTü‘GGŠÉ=båœã-™dJ™BQB>n2VUõ…5¥ñ+‘ÚgLÝ`8БN\ݾ)Ãq�;àž3“{¤÷i"B`6—«@pJò×8Ñ›`Ú2WˆªHpzŸ'r®œ–-Í;RÌŽ {û”A™[kGŠVºV¸Vbºp þ×ËU?»ö"Òt£çä7Äû4{biø¿zþ݉%iCÏ����IEND®B`‚IMAGE 1179 ./arch/player/race/pl_dragon_g_spellcasting.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ß{=š��IDATXÃí—¿o#UÇ?óÞÛõúbgI|ÉÝ QÐP!EtWBHG‰•‚åï ã BH'ŠD‡„®¡¢£¦€ tüP8”äbÇNbï¾}C±¶cÇë8¹;*xÕjw43ï;3ßù.ü×¼HgÍûM?÷¾éM|·Ú©bàð«®ü+ ´¶SÅ<àBù>; “DZÛ©FiÄ“Ïä…&°þѪJS´P�¡ÚÖ5¾ï9Ü=GÂ<OðÕ{+J¦.eP¿88@ð‰„V;½3Iê¹(L*8…¬PȘ¹]«Nz! ˜Ä ¹îÑfÒeÝdûŠß/f‚C™ÌàÀ#V0Îàïgý<W ¦áî~Û_ØOyßƒÈ [?ߥ5¼u½f œ:…?/â"›“ïNÄŸ(¾Wðé9¿¶~¢w&örÕŠAÀ•þ£ó›6ï7µ¶aq5Å…üLq¹R�4ÞkhÔ0|ñNΗ¿;~èw»r%lj)FM×¼×ÔÍuÝÜY×ä¶#?SòPW\RbÚÚžG£¶f1‘ðÉ1ïoó<p‹·hµSoƘ¡Þpÿ9(ËÐ- ¿_¿é=Eò’ª˜ogì_ÕÏèN9ØÜYŸ³‰×"²£œ"/o­‚B6J"Wñq¥]Ðj§ZXÁZÅûÙ$ZíT%’Wjø§y3¡ûÇE¯(ƒ¯‚¨õAO|5ÿ_:†‡»]±V±‘Å™ùoÑåìñ� †£_NÊÈçvQ&1àOÇ¥c8|œáû¾ÒÁ_Ÿ•7Ê2LbH^¯!Vìy†ý€H &,ã… ô¿?“ìï¼üÏ:ØÜYW›ZâWaå¥v$ÿ-g¸ð²ˆWÁZ‹X©ËK·a²•h|Ëm:Š¡ÐyØ©´ÛøxM3Ýe€ÆÝº6·b0÷9¤&½sšnµS]º ·fÁƒ-—pÿÁ‘¸lŠ™sE“Õ| ôCÉ íTÇHN#Z™€mlÝVòAUÓŽŸ5*uˆ`jBÈ•Á±'äŠ]±„ŠËÌ%~ØÐÚk1á8uµäX|Û f´¤ ÁÔ…è†!? Ÿd„ä. »jJesM-Xìç$ï&eý‹r÷{ݯå²Å6ƒ€Žfwü6¾±|U$oÅžzêo׺`�sà”J—l†Šçæh×{¡fî ä ƒÄ/;¢B¡äOÁòÞ¹”ŠÏÉ t"@Œ1¨U$†ÈW¡§ø ǶR¨.3P«àÀD* J*xWŽ^8*>céò¹Qðœ±2é µZvºÍ€ d8Z¿»ÝkË|Y&ÃÄ *% bÕ²~$ÃÇ?!Ï|©$›î?5.,.ÿŸëž�âä4I»ÂÂ����IEND®B`‚IMAGE 1164 ./arch/player/race/pl_dragon_g_spellcasting.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ƒ‡G�� IDATXÃí—Ï‹EÇ?¯ªº§gf³³É¬‰ÆÛ’ƒ‚ÉAâÉs<ˆa%=‰WïÞ¼ä¬÷aƒˆ x<ꃠDñGDtw³3;³;Ó]UÏCÏnfgzfyÔ¥ºªß·¾ïû^½‚ÿ²-ßXúyùÆ’Î[#§qÐ^m)ðàËùµŽŒP·àøóÓõJ_î¤ÎϽ½¨4@DP§¸Á°ë­ýSk¡h1›sç‹o4• L] – g¯>òÔ{gõ_ ‰`Z‚4(ä%í{cÒCÌ#¶f0s*�8HT(TËÓOØÆZG뱂q û€•7WvO`éÚ%>Ùéç¬-z \=§\ùñ5ÚÃg�‰�ìÑg3Cð Ü ÷¿í‹ï+¯¸‚_(xëõïÙJ·¸ÿåý…3°tíŒ;”ü¯8ʽiåƒøî7øaKxùÙ7ŸïO­3“§“q #*r`WHR¦àM5ˆÚY{ï£ wY>¸x÷9_-ªͭՃsifX¸˜±x¹NvÞQì*ÅPW\Vþ­½:ü2pïÖ­¾|ò«åãKá‹C+aûzKƒ¬U¼‡Î2µÚ×[*‰]¨‘5-ƒ~`÷á�20-!n+R”;#UÙJ l¬uÄZÅ&gί¶%»ô6†Ô¶e!+JÚÔ*"2ÅÞ±+a±é)º\ux$?è:¡¬‚ ¤^‚pG/)3Êg7âšvf‰Í×slË’<íþžS ”ÚH2ðÁñ�ð© yhšRÝ!Heˆ6ît¤¹”bRƒ÷0øÃ3è\"DST§-»’©Y(±©êLô½GCr"¥ø¥€FBm%–š°–hc)ȵق¬dÀ8pg-ø'w|•ý}û±¸6ïv%ÿ)ÙŒAje&˜†A¬Tjh.�»`°u{ì;*ŠFH!f‘Ð tF‘šÍ@àV AæÒ7).M‘r˜š eÐõÄB±Íêëxv¶ä`ƒ‹ô¼Ą9 ‚© †¢‰;9¦aöAì7UÝŽ]4e£q k¼šiz!E,›ïÁX¡÷MO:_÷$%š™’3ûŽ81—Rm^­ký¥R `v"ì”Q÷ó®LÞ=S�¶¿Ú ŒšLo`ù%mßœÒ^miíÅ”Æåµ–Póà ¥Ø™ß#®±ÍÎ @ûý–î}3¦jš:^_@ÜB–ùù¿÷íH%[mÙý˜D@DIPïÊô‹» CÅçÓÔÏÊš¹“½y3bÁʾ6Ôj©vš—#CÙîa©{ä—Ѹ�Å *%bU…~ô.¨z@Uø1ÙN–éã:ÿß�þŸå—|«Ü¨����IEND®B`‚IMAGE 1189 ./arch/player/race/pl_dragon_g_spellcasting.133 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ =Æ™��%IDATXÃí—¿o[UÇ?çÞwŸŸ;/‰Û”Q!ÁŠºe¬T!A7¬ ,ý˜ØøØ+Uê±t‚‘ 1 ¥%IÇvb¿wß= /vìä9NÚ2Á]l½wtÎ÷ž_ßïƒÿú‘çé¬ù^SGÿ»_uǾ[íT1°ýEGþ�­T‰�ˆBù<Ûc ­T]êxôù–<W�+,ª4A …ªm£F„ïy¶ïeÂ<KðÅë J¦.eP?;8@ðqB«^ƒz¦r‚I…H!+2¦n×j§ãžÀ@È&1h®GÙê ¤ï6ʺÈ6¿YL‡Ì`Ë#V0‘ÁÞOûy¦L¦»óMof?å=œÖ~^§5¼|>�S©œ8…?*â,›þý¾ø¾â»Ÿ^ÍYyãGn^}<¶?s–n6µq£¡“7'ÐÜ È‚n¤Z¤¿/y/ðõŸÂÇoÿÍOýÀµ¥pö&´©%”ܼÞÔúk�U%ëô�dE‰”3|éÔ–-?ôà“_„— ¾Ý´Ó{à8òã Õj§_Œ1 B½±÷Ç ,C§€üfAüzDè*’—;¡jóµÚ©^[ |ùN¾î>|/³êç t&¬ÞZ9a/;²œ"/�p‹ …‚ÈU§|œ‰ ZíT +X«x? ¢ÕNUœ¼TÃ<Í‹ ß(ºE|D…¬ÚWðÕûÿÔ1ܾÛkë,‘9ùÎ]Q `Øùµ_– @>8²s ˜Ä@4{:NÃრßó•þú¬¼Q¶•aCòj ±Âà¡gØ XpJ0aîÏÐûî@²Çyù6žv°zkEmj‰_†…¥¶îìJþ[ÎðaÀȶ ^k-båDCÏeÃd-Ñø²Å­FCa÷În¥Ý¥—5#й]h¬×µ¹ƒ¼+H_šPtÖt«ê\64DË<Øbv 7oïH”Mlæ\ÑÀ˜šƒ„^�Ser2£•�lÃ`ë¶rT5í迺Rˆ¦&„\ìyB®ØK¨¸Ì �éû ­½öÙn8—‹_0ˆ9$©B0uÁ]0ä{ᣌ¢‚_¢ãÃ.šRÙœS ›9ɵ¤¬Qr¿÷й·'§ÛTôpvGOã ó¹*y3ÖðÄS«†Ô˜ý�ûTnÁQÉF¿R)0¹Þ½0¥p§RÞ0øaAüb„K Jþ¤$¤y½sê*>Zö`0¨SÔéX€cP«H .¯BWñfŽm¥Pg V!ãT@ç@|TŽ^8�*>c.ùœi²à Dˆ•qo¨Õ²Ó hd ÃCú½Û9·Ì—y2L¬ RfA¬ Z–ÂÊðÑGÈÓŸûa2Ù~b ¢0[¸üÎ{þ‚i i¼n����IEND®B`‚IMAGE 1289 ./arch/player/race/pl_dragon_g_spellcasting.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ- <ˆ��‰IDATXÃí—;lU†¿sïÌîz3Þµó²cˆxF4 )¢�ŠH‘(PÒ ‘’ !* BÐ „  H"J$‰ ‰† …(/vìÍξf½;sÅll?²q"hrËÝ9÷üç?ÿùï½poýÏKî$8<ªÄ‚ª‚~>ˆä?>ª-Cš€ÆŠ€Ù% ˆ>„ÙJòàH R¤ÚRtIIêà.€ áÉPf_Ÿú~öø´ÞU�ã‡õJ‚7­¤V`/´¾k‰?#€»¡ØX ß õòÇ×3¦w—í(*YÏuB‘g2¶½%Ÿ±ÝúqŠÎ ˜x-ÔTÒ­¨ µv4\S‚XA�¢W²~Ï}¹ ½füý–4wΡנP.ÜZ„7“¤Eˆ>_п“ë’’ÜPüÁì ˆ>\-¸É“ºã¾ý<‡ …|5O|¹GýÌúÂ4�õÓ‘ÔOG¢±R{y¥êúé,È÷}ð-’ÏöPàOá'«AºÖ€æùÙÖyÄ7bT”±#¹“·lAóTSmÇ áŽ+ &”ê® ùbç0$T$è¯Ý´}¥ƒüás ùƒ…„ÞBot ´¾i‰v+á«YuI/!¿MØñP-û(â.KnFà"„Ÿ®f!‰•ÊÕ2Ï¥‹”K!ä�Ø7²U-©= è˜Åö 5@¬Zžä é‚—@2 Ñ»+=®¼PÑãµ¹rŽSñ8íN´ÜΑ¦ õkG˜7ø~cø=ÃôÃÕ,¢R†+˜=MßXaÁžý¢á³g<áØd´µ1TU\ß!ÞV_éæ;x¨mÃâù6$à9`ael_·~4Ã[ç}R—p|&Ù‚$CÊ ™­(­s}’îðÿ.`•É©�ëÛ5þq“òÏ®x¼÷~góÁÛ8¿Ãô-R22²ŠL›J.1\O›ˆ§!´ ¦’uc£¾Æ€‘lÖ—A©’þíÐëš1€7aÙ¶?R@ZŠtdC @ù颊Ô®Žwó—€+8¸9‘Ý„ÅkM U‹T·\¬lä¦#P+H*¤@:Ut¶~j‰}Ò¢sŠFJ®ŸÚËÌ#“è@i~Õ”ÆÙ¦ŒBÿ†�LÎ Ãꥻ҃ömá £¤MGÿ’ðû/W¹tnI×ÉÙÞœ³‘4SUl®áÖl`vûÐíBíÁ*Õý%*ÓyÔ_›ÇÅŠ›Sª/::€í ª¤´®î¨<^ZÞÀ};@z`s†úÅ:í+1Ñù2XË@ãlStL%¹½;aépIMÎ@ÑèåÉ éÒ1%7k(`Ò<Kó}ÚýÞªã|=_ÙdB° ƲXw]‘’ ¾àWÊà -ño}šó]ÌÔú„n&ÈM•Z>TV¿f°Ó‚›Ï~K‹à×`Я›M‰ŠâÚŽÖ™Ömß²7½’I($¾ÒŸSU\Eð0ÆP0b‡ùŠl)ùÈï‚àD º¨H^ðDŽ壥ŒCôN´å÷ÅÈ•3ƒ7™Ìž=ˆÞŽîèeuoüQµ�÷üð����IEND®B`‚IMAGE 1264 ./arch/player/race/pl_dragon_g_spellcasting.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ7T?ŠM��pIDATXÃí—MŒU…¿[¯jú¿jº{†ihT ‰¢ÆD‘b4Ñ…‘¨³rA`¡‰,]¹ [£ã‚…CbâJ–ì4q'‘à‚ÈÀ Ó3ÃLÿLwÓ]õ®‹êùiÀ™îcb|›Ju½:÷œóî½uþ++8 Nú¯’;5ª+$&O–Nž,oJÈ}HÕ*-AUñ|°ÓŠA >túìŒL~¸ƒŒ@ðF ¦Q¨hK±óB§áuH@ñƒ@#‰6Åq¶ÜÅWÉ ’­+zW!„Äã†({Å¢·!™M>z£/ûêf·¬DFà À‡ÔÎ$r×c×áÞ¨ƒíf›Â['fàÄæY¬ËŠŠ‚ ZTäˆPÿ¾.íZ[ïR[¬“˜ÁX—Öb %Ü?=°"1zÌïûMŒ óqUß« À·ñµqs¹îq ö Ýùö|›v­=˜Õs1Èz…©@qY%aÓ@J‘и0l)¹[Y^‹Èf`ÏÀTÏUÅ4ãÀ}Ç…ÂT n^@`FÀBðåÚ¾;b7Ýi> §ñr©bŠT1u}¨$\*Ljçb|ÏóÀ3HBzg¥HK Óÿî«eùîê 8ó|‹n»½‚÷ù–ª`%¸SÂL—ÒÓ>“Ï•ÐyHo7Œìø‚¯Ö\ø©–äbÅðnÙòÅ“õ­7¢( ØÔÎ×$˜tæ·ÅXñ,_‹›à†®Cùã|å3SÅk‰æÞƒ9]ushVÒi)£Ç|5¼¶Cù`,”žÍáì¨AðÑš • ûÞÿ5õËž,ŸmæÀ†ìrOeÔŒgÐlB=äQ¿Ú7.GIƒ­+aL³?‡Yæ€)\ß…d jD©_é6&`”±>Æ3}ïÝ[A[þ©*¶c/¤½~b€Î¼e$t˜‹jˆöª!„¨ Nnð±`C«‚#95»I Ñ ÅBUdV1¥5óJ/䙹¼ YÅ ²÷—õPG9’QgBPß/]ª €­XlØ¿÷ÏŸIæ ’ì6°-øHþ>,ˆueUÉÈ„¡þc]:³½o}ì¬Ò™Ùûâ6$',]ªÉªêÞóüq_‡"à¤Â^iZ oÆ*V€eŒo[Ц¹+ܸRA¢~·×?Î"ULvÉÂ=³…³Ó‹X‹ñá±·ÇÈ•¨×/téRMŒw~xpl˜„ÙÃiu¶¹0oqR‚Ý.8·z2RtÚâí3˜ýBa<ÃÂÌ2Ѳ°ôÍң隴¥èv!rÁÔÀ=$¸‡§”ƒl1AØ5$IÞçÀC¢@Œ//HB°·ÁÞ糖IŲÕq ½ÒH7âmjUöõ¬Ò¯à`ÊnL JƒW€nÜf\)*JõëÁÛð@CiãbC$BOéÌ*áeÅÎÅÿÇ!鸈‘-©Ⱦqü”¯4À©€Ù-¬ö£40 ճéšÀú!U_ŠG2\¨~RÝÎÿ à/ræÚL«qT¼����IEND®B`‚IMAGE 1305 ./arch/player/race/pl_dragon_g_spellcasting.153 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛá˜BL��™IDATXÃí—;lU†¿sïÌîz_“];/;6(€•ðˆh"(’H‘(PDBP Ò ‘’Š‚ $”!h ÜQ"‘!!E Ѥò"‰{½³»ÞYïÎÜC1›DZ³v4¹åÌœ{þóŸÿüs/Ü_ÿó’{ Ž*‘ ªàŸ‡ÙBùO�Ïj‹Ä ‘â•Álz1„ Âl$yùpY¥"H´©è¢×À?‚cL¼9zzâõ1ýWl:XV¯ xcJbvBódSüqܼb#%x;ÐK_=Äþ» è‚¢’ö\‡y&eÛ[ôÚ‘£%è P‡á7M$Ù8€ê‘@«G‚%ˆtð |5í÷ô—³ÒitÈ>dIbpgzrÅÜÝEx3I’‡ð‹%Ýž\•x^ñdzKèÕ!üp¹àFŽŽèÖ«\ûyÙJ–èR‡Ú‰; Ó�Ô¦B©M…¢‘R}i©êÚTäû>øɦ{H 𗀃à“å ]³Gc¾Iv"ƒuÑ|„Š2t8sì®-h|Õ^ËÑ«;Ê/——@ +•í%²ù þ¶~H H$Ð]¹iëòò‡ÏdãIz³1ÙÎàh~Û]PL¤¯¥ÕŘìfaë£Õô£òÛ-™q |ºœ…8RJWŠ<›ÌQ,`×ÀFTz¬ vRÐ!‹í@b€iµ<È@Ü/†xÂ÷—z\z¾¤Ÿíí1ë<N.9}-ºÕΦ ùë‚0cðý4Æ:ð;†±=•4¢R„mûJ˜¼µÄ‚5ø©m˜¬Æ¼²¥ÉþŠ[ÿª*®ë¯O«¯´³ x¨mÁܹÄà9`vilëß4øüºÏñ?}œsì)n��qŸò\*D+Jól—¸Ý߬22ZÆúv…Ô¦B93o8S7¼7™X-·z~‡éZ¤Ðg¤/dÛ™6”Ll¸‘4íOC IL)íFm*”ãÀñ 9¡‘tÖoR%¹îК2Poزyw�$€4YU]t �ŧó*VP»<ÞÍ8\ .çàæD¶cæ®6ÈU,RÜp‘²š›@­ ‰�IOø§+6lŠ}Ê¢ÓŠ†J¦ ûöïd|ïÚS_7¤~ª!«Ý@�LÆ ý꥽ԃÖ÷-þ`AIŽîEá÷_®pñì ’Ü!gkmÌjÒLT±1¸º[±ÙáC´ ÕG*Tv(eQe)nZ©¼XÖÁlQ%q ]p5Gé‰Â­ Üw=¤6c¨]¨Ñºžë ½• ÔO5D‡Y”õ ‡ j2Ê)^V¬œwà R2†òÃ9L’eq¦K«ÛYö;¿ÝÖå2,Xã ”ÓXwC‘‚ ¾àWÔà ,Ño]3mÌè ]Kk*µx°¨~Õ`Ç7“>KòàW¡×¯N‰ŠâZŽæ‰æºOÙkÉ$b_éN+±*®$øe0Æ3bûùòl(ùÀ÷‚òѲêœ"YÁâ›/òÀ&ß 7|¿8°ôBjðæq“Ú³á;á=ݬî/€¿Kzj ¬����IEND®B`‚IMAGE 1322 ./arch/player/race/pl_dragon_g_spellcasting.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ¹ù¸��ªIDATXÃí–Ëk\UÇ?¿sî½3“dÉÜIÚ˜G›ªmÑ"*ˆ"´ðQ»h"¸p#è âÊ¥h)‚º¨µµ QÄP\h…ÚÒÚJÁ[3i&í$“I23™{ÏÏÅ$iúNRº²?¸‹{^ßïùïïÿw³·›ì}§wgÛPÛhÇŽŽòÜ™¹ã÷‚€Ü€jMq³n‡6õ4ð¥›u¯¥/Ë=%°ñÍjBÃØ‡cRØSPç2«˜¼‡—ƒhpP:T’{B ûån•¬  …²Ã-ê;lÁbI ®îîŠÄ Ãáðmà �cL ´ÏF´ÌþÑ@R‚ø‚X!žŠ)^ sKp^,îãê nÞÑ<×ÄËyŒ|pQJ‡KâÊŽøJŒÆzWðVþ¸œÃ3’lÞÒÿäW<G¼ÿg m(c-ßÒM;úw÷P<Y\7k<Pþ¦¼?r®ÃñîÆY$â´ñÛöãÉo'e…§TüÖoñû"Ao°*°p8Ôp8Ôž7zôŽ"|ë½®¯N%ާÆ÷[ïzºKSù…g ´ ú”Oc6ûLþ6‰N*¶ß2ñù„\lû-D­+O|qu~Õ w†Ú±©ƒ(‘Ùš¢ü{•TOŠú?sDÅÍ8ÄÛ £Óm˜ø|BÂáPÍ€Á†KŸ]’[j ·'­ÚTlÊâœcúhuyqçsšÚ”bó®>¦*SLœ)ãæõ ul_€ô:�¢ �“ßµž+|>T?4˜vaìÀ%¹evíͪŸI2sbšÄP@\r˜¬`s ï‘A2[SŒüz‘dÚ27²�u!ó`éjÕͱ&žcZî ‡CµƒÓf?0.wÌ]{³ P>R‘àá@½œ!1Àø½IÚ íˆQý·ŽTwÙa6ˆÀÏ õ³W~º² n† Ö·Œ:.« Ãò‘ÊòÂ…ó ’y)Ôè|Ä£¯o#¹%Á©ÎWÔÎ5�È<‘ÃÛàÁLËí+Áý õ nÖ­-¬´´¦éx*Åß“‘JŒí´øÛ4Ï5˜91Mz{?/ËnЦâ¬`¦—Þ9;š› v´V›£ï…Ò#4þjP¯5цbÔN5$½5Kõ\…òÏÓ¤K(@~W^%Ѫq´ŽD´,Œv!Ø–ää/ça$"®ÄDňfS‘Å¥C%I?”¥vªq5¦­ M·ÎL¸Òü„0´£ÍZŒ1H¬ø*×ìX*@K$\Y±»þT¼Òªã5Š#E¢b„Í[Ú6uP¿áJ׫™›V Uwwµàšgð…Úåka‰&¥ÄS14oÔVvKVi“Ûœ¸Æ(ÀÑÊÝ‹KL<ï0‰kÁówªs‚-¼!¯zJW×ܺ#z¥[­ØÁÜÄ6I«LטoyÈ‚ÅôÑšWcˆZ¡¸Z·õ@ìZxÑ‚#Èx˜Œ‡ 6a‘„àº#®ÅØ:Ĭþö·%°¤ðî}Ýêw&ð›øúhd[›°ËáæYŵ q¤hmmÒª˜vïë¾zj�¶ÓbÑã†àæ×öîk&p= ëAl…ºø­·)½o÷í?Õ?rŠžÕL����IEND®B`‚IMAGE 1217 ./arch/player/race/pl_dragon_g_spellcasting.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ'å=Õ%��AIDATXÃí—»oUÆçÎÌή½ëÇîì:'vDB@ DDvCˆ‰"QQÑRñ ÑS! h¨°PR"(B¢á!ñ"ˆp¤$¶ãõÆÎƱg÷ÞC1²ƒ‘׎%šiºsæ|÷|÷ûÎ <Šÿ9¤×Ä‘7Gtþ³ùò“³‰” x¨^—�{IÚ÷Î>ÕT³Æ/—À áxc µ‹5ÅCýÒö€˜­ö¾½W¥_˜ûxNªçªª%Ac|Ç ©BÁ`°# ¶àæö¦¥v±¦²¢ÈŠ!<R<ãW=~Ñãn;Ô)»NA2™¨ïxh‚1†àPD4jàL¿wC�*§**ýÒÃQ¶9d2Qrij³Ø¿<†_õtÿè2óÁLÖü¥Š. ÿxü.« v¡¦ 'zΖÚLôw8õÝ�ÚVtEÁC~4Oq¸€9±ðÓº 4¾nÈ®P`½åý':¼V¶ ðåBômýR}¢übY •Õ“UúÆ"æ®6hýÜ„{ ]%™¬ªÄÙl¾X‘·F»6k 를aCçJª]%(xï9Yö|ú¼k\]1WN¿»:œN´8^ÄYŽXüem+C°?«°×-X &g eJÚ”‚òùA]¼Ü”ÂӱƇs° 'ú¦(ühÔKÅñ"c©¹Äü•E\Ó‡ñdDH—Sº3]Ü5G”̰àÚ­OnÉ–w |~P/7¥ðd¬®«„C†ø`:0úÜG Lÿpƒ|)`eº-A†É¼ÀB}ª.•‰Š†ã!¦/;ùf§îÙŠ‹Ïôi8’;ž§¿Ú„–å›-dYð âb¸k™ùp^’ÉDÍaCÌ}4'u “×µ×-O½qŒü‘˜ß¾ú×l£„p(+í^ëRŸªK2™h´Ç ¡Áß󯂒–(ž(pmárW é†ÚKŽ»S‹kþo³|í*>ÌÏ­©Þ÷Á¦FT}µªiºÂè+UdDhÿÕ¦•vѶ¬;Üý X9SQ‰m+Îî‚J¿;–ç×ïÿ„i‹k:쬥ÛUäŠú¥ºH hWwä†f3,(pàÄLÞÐYôc§Dº¹ç7¾iˆ67¾ã¡îÀò\Š/Íbg-t²,S ±©ÃD›Ó«ê`w–‘DBÚ°™ç"‚)(nÉA÷ß� *};Ûˆ›«Àg¾  ¢8nÕcâÍ+Ï«÷BP5„‡ÃL~ëjw¼ kkp¼õ¤·S‚<H,­Ìª%Œ©Dcš*nÙÍ$YïQŠÿ9ç×ò ClÇ“1!&1q€ÄB´[—:‚8è¹ù–ßëa¶n¶ÈÏ GH”5vÎÑIm*šê¶÷´ 6€ÈA0`ÖÄîÚ‚_Í8ßIãžÿ ÖƒBpk´Ü¶ûþ(Ńñ7yëæÅÄ@ÚÙ����IEND®B`‚IMAGE 1326 ./arch/player/race/pl_dragon_g_spellcasting.173 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ:Ÿ ˆ½��®IDATXÃí–Mh\UÇçÞ÷ÞÌäcf’¼Iš˜4mª¶E‹((vÓBÄ‚ØE‹¸Á…w®W.EKÜtQ¥¶ºEÜèÂ…V¨-¶ ck&ɤ™f2™ÌLæ½{\Lš¦ßIJWzà-Þýúÿï¹ÿóÿu³w›ì{¯oWËPËXÛŽ¶bålåäƒ ÷  ZUܼۡ ýøÒͻ׃ÂWäè}«WMhÿx\r{sêœCæÓåáe!šŽäè~¥[%#h]¡èp‹‚ú›³˜À@¨«¹û"qËÆp8|øŒ�ÀÓí7Dc­æÏÕ‘” ¾ Vˆ¯Æޝ„¹#¸/å÷óPy·àhŒ4ð²£]–Âñ‚¸¢#ž‰ÑXïKÞÊ—uxÆCÂÎŽ·Ÿ;ÂLœnEëÊø'ãË·t³Ž=�äOç×Mà¿.Œ\ÄÓ½‹¼ß³À¹’¡àÙŸm¯ýtúÛiYá)¿ù›ÿ>OЬ ,5µçͽ§ßù°ó«¬ÕñÁ„»xàƒÒÁkãÏvjª+EngŽ–AŸâÉYÌfŸéß§ÑiÅX¦OÉÍÀvÀBÔ¼òÔ‘ëó«N¸+Ô¶MmDÙˆôÖÅ?ʤzRÔþ®•7çkHl7,Ž9L·aêð”„áš&¿˜”;j »·]µ¡Ø”Å9Çì7ååÅÏwhjSŠÍ»û¹ZºÊÔÙ"nÁQ»TÃöHŸ º0ý]ó¹ÂBõCƒiÆMÊðs_Fýt’¹S³$†â‚Ãd›5hý ’Þšbô·Ë$Û-•ÑE¨ é‡Û‘¡Z®Òoày0~¨éÞp8T;h1-†‰CrÏ<й/£�Å%  ÔËX¿/Ik®ñ"ÊÿÔ²à®8Ìø]Bí|ÄÌO3ËàfÈ`}ËÄ粪0,ž(-/\¼°(é—C.D<þÆ6’[œùá<q©Nu¤@ú©,Þæšn_ îo0¨gpónmy`¥µk;mϤøkú22'Pб{‚ÆH¹S³´oÏàwɲÛ´¡8+˜YÇäÑ{gGs»ÁÜžœV«ú_Ì!=BýbZµÖë z¦.í[3”GJ™%õDBºvw©$šõ#ŽÖ‘ˆ–…Ñ*Û’œþõŒFÄ¥˜(Ñh(²´£p¬ íd¨ž©_i+hCÁ­3®4?! í@3c +¾Ê ;® k$\Q±9»þT¼ÒÊUò£y¢|„í²´lj£v)ÂÕ•Î×Ò·­@ªîþjÁ Ïà Õ+Zib‰&¥ÄWchܪ­Ì–ŒÒ"w9qQ€£™»—,–˜xÁa7‚w=Ù¡Î 6gð†¼fè9(]]pçŽèÕnµb•© 6 ’l-€…¦‡ŒÉYüA­*q9†¨Š«%pWÄ®ùHç-:‚´‡I{˜Ð`I>P¯9âjŒ­AÌêoW×Þ½¿[ýŽþR_«‘lIbv9Ü<«¸V!Ž­®­CZÓîýÝ×O ÀvXÌz\ÜÂÚÞ}Ín&a=ˆÍ’P—¾õ6¥ÿÛÿö/Í|I{H'����IEND®B`‚IMAGE 576 ./arch/player/race/pl_dragon_r.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÆPLTEÿÿÿl �x�v�p �n �Z �r�r �t�€ �| �v�L �\ �f�†�P �j �ˆ �|�† �` �d �N �„ �„�Š �~ �T�|�b �Œ �R�J �D�x�p�J �h �‚ �Š�Ü�^ �®�”�` �F ��>�f ��H�z�V�d�‚�’�V �Ž�ƒ�®t �ˆ�:�¦��n�\3éœ���tRNS�@æØf��(IDATx^µÌÅRô`Fá>ŸÆÇÝqwù]îÿ¦¨ äBVp½é§^ùôÓ b @~~iÏä¬�î¶<ËÁõóÓ†ï‚.lÁÖ¹v`9™íDÖ Dd8<ÿÑÉ#| …Ü(0ŒVÖ\Ò÷ihq Å2tHW«ïñ¿žÁ å²®ÖFÇý­ÜBž¦H¥‡áü1ÑzùÒ«6•óª- Øs*ÿŽSíõ�À‚¬ Þ"%Íf!ˆ�Ñ…þÛ[´{÷¯›`CÊàaÞä€<c‘r.š÷Þ¶ª jÚC @*mü —€TKM<Pä@jÁ~KMc¤¡#ÛŽZJ4‰1^ƒìÿ½MA× ðaâÜÊIX/€D‡ >v‡¥¹¯Õ^�ŽU¡žñ¶����IEND®B`‚IMAGE 571 ./arch/player/race/pl_dragon_r.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÃPLTEÿÿÿl �v�p �n �t�Z �x�r�€ �| �r �\ �J �v�P �j �ˆ �d �†�L �Š �N �f�` �† �„ �ˆ�|�~ �„�b �R�Ü�Œ �|�D�T�p�‚ �h �x�f �>�V�V �Ž�ƒ�®t �z�:�¦��n��®�’�”��` �^ �H�Š�‚�F �d�w¬(=���tRNS�@æØf��&IDATx^­ÏÕn#AῚÁÌ afξÿS%d%-{µÒÖíùnŽücØ\ï 1°p©Bsñ;a>{è cæÞDR¤¸fb8lW`;¥µ¤ä4Ù¶I!­èrü¸Æ7èõ^ÏòÄ+…ÆÔè§øvtÔuâ'©¥¦‚Gõ±¼JÏÔ”Ò*(¥i½4à§*8°ã벬“Œý]\Œ¢¥f˜ÁBš_{á‚æ¢Ïˆ†êù ¢vÛf�8ðžfëfý„2m¼oèýD¨”'\4®— B^ë`RG*€øÍÂ~=ß�ÙZ:îÈîVÝ`#{š™82¥8m¿¡YÝ ·â¡Í›Z4â@®*½K˜JûÀ×ÿ­/û—½×Æ����IEND®B`‚IMAGE 642 ./arch/player/race/pl_dragon_r.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÉPLTEÿÿÿp �n �x�r �~�p�b�€�v�t�„�Œ �z�|�‚�^ �j �ˆ �ˆ�Š �r�Œ�b �h �€ �H�t�Z�l �Ž �X �Š�„ �†�\�–�† �Ž�”�P �^�œ�Y�ŒL �D �’�¦�N �~ �d �N ��¤�j�V�~�d�t�` �4�4 �v�˜�f �X�V �þRp���tRNS�@æØf��gIDATx^µÕ²ã0D=3b0…9—™–™þÿ£VŠ+±\ñ}Ûí—~è£9UÊþK¤”±Ì+3ˆ1¶w_ùœ�wá}ûÆXo° ù ´'C‡Àâñ>)°Ü‘™?z€¯f 0!s÷)Ýpœâž˜²/‹ðæ,”ô3/d9Lê³\*ÅÐ< éôàê½R¨ËS2h1FÄ1çŠèâD3‘¥Á‘±ÌùöIÁ‹s*žHcrËá–µs57ØÞ®t£ƒâŠýæ—.�]âšâ¥ÜÏÛì»tä<ëì%R/½¡SšG«™³ƒ3ô¼^ç�€Øjþp“øž‡ïluSåÕ˜x”í.§n]˜jY~ØŸØ0�r>X½ˆÃšZÛ·ûüñr–|u � Ù°ð˺ZcÖ "íyž«bàÆ?Êz�âÖÚa=¾à:ø a(窰œX÷ŒiOz!0Ý»!†ùŸç/1܉Jܶ"����IEND®B`‚IMAGE 642 ./arch/player/race/pl_dragon_r.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÏPLTEÿÿÿp �n �v�~�p�z�t�„�x�r �‚�|�Œ �€�j �r�b�ˆ�ˆ �b �t�† �Š �Œ�h �H�”�^ �„ �Z�l �Ž �X �Ž�–�d �\�N �€ �V�Š�` �D �n�h�˜�¤�œ�Y�Œ4 �v�^�†��4�j�~�d�t�X�V �¦�L �P �N �~ �f �’�óàRP���tRNS�@æØf��aIDATx^­ÒÕn,1 ృ0¼Ì¼ef:üþÏÔn"E™f{S_ý²?YVf’o—ø€�†¸r/˜ñTÚ¢ûÀBH.Еâ{ÀXNÈn?"HŒA{b´mjÂnb°>îšÒ¶WOŸ�&¸Éï&V ôKç3Xog†£Ó¸dOrñ¹šVü€3lt]B¶ õˆ20 À 0Ø^Šbu±Br§Ä/Ÿj ~äÐÍ¢*Z ÿdy¼b;€i’µ¨@Äø¥J×8¿<}¥ËœŒs‰tf×U¦¸n.jþ=“m/'´)Þh†­y �¡hçeÀ÷îeq[¤�òA67¢˜Ž èB“� ëyß~G*¢|~ø™þ[¸Ð �dZØôWfËÁ¸$§iš›:ë×¼tË<PTJÙkõ»”°à"/˜P)ͤJÛű@­ W¤Ãü<ȳ?Úÿ­w—ÓÝ^Rô����IEND®B`‚IMAGE 812 ./arch/player/race/pl_dragon_r.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��GPLTEÿÿÿl �v�R�|�v�r�t�Z�h �€�„�j�z�n �ˆ�d �L �f �N �` �x�Œ�d�n�|�p�^�z�€�†�j �‚�R �`�\�T �r �p �‚�J �h�N ��@�b �f�Š�H�P �Œ�¨�V�Z �ˆ�~�l�V �t�°�x�b�È �F�¢�¾�$: �†�’�¬�æ��´�Ž92�Ž� �®�˜�ž�X�”�”�°�\ �J �Š�¸�>�V˜ �š�°�„�¨�´�˜�®�²�@ �š��¤�’�~�X �–�œ�–�¶�žk3���tRNS�@æØf��“IDATx^½ÌŶ1EÑ*Q3“™Ù™)ÌÌÌøÿãH£´{Ù³¬œ¡î.Áÿ¯å•°¸Ž«Øh-÷Ñ·t¿&…5ôüÔ)CÉÒy`Íÿ¼ñˆÕ]®[-�D 6•Î5«Ô¿››¸2Ÿî¿Vz÷¡†¯÷ ”‚hHÍZë½Ò—=ÒÏÐõ€÷’¡é9ohÚ×·G+ò9°ÃßȾ¼Ûy%Açù¹¶žÏ K¼"î†:Kñ%„|½âàŠæz‡7wŸH±lYÐîPÛL™«Œ#ÊfÀ8 %ì?X\…‚0QWÇ]×4+Fµ ÅÐn”ýº¦×ã⣨)hƼÔsVö± ¢À�vütõD“ClMìPAçã#v§!ˆg„„=õðâ¢ýöd“+°ß s 2Ê&ß—�èíá @5†\Tw}\;ÜŸ·,*„|+¡‹òW½™Þ¶²:̉†CDîÕ‰ÌëØ¶mÇJ5Q†e{„óú–e¾þ€ßò-'¹É.²����IEND®B`‚IMAGE 766 ./arch/player/race/pl_dragon_r.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��/PLTEÿÿÿl �V �r�v�v�d �€�t�„�h �n �†�j�z�R�ˆ�|�f �` �Œ�z�p �n�Z�r �€�j �R �\�x�T �^�‚�h�N ��`�t�°�x�d�|�b �‚�p�P �V�L �Š�~�N �J �Z �¨�Œ�È �f�@�†�°�Ž92�Ž�˜�¤�ž�X�”�”�°� �„�Š�¸�>�¢�J �²�ˆ�®�V˜ �P �F�l�´�¨�b�¾�$’�¬�H��®�’�~�X �–�œ�¶�=¢1Ô���tRNS�@æØf��}IDATx^­ÏÕŽ1„áSÇÐÌ=̴̼affæ÷†xV‰4ééQ¤(ÿMÝ|¶eú—6þ*F8 O‡+¾ÛS¾�L0ìëÎzóËn9¸.d};³ú‘¾V z:×V½[z)Og€ú >èÇ÷ÈûX6þ�g‚ p“±qh¨ �¦¨zãÎLž¾µ·h6€`ÒVeã““sÙyPA0¤ +_“iÝ•EÀÌÉò\½òøÂ™G(®QMmŠDxÇ¿Þ,ÄšQ}oÇË—÷îRY÷Ý*ì£nbí& (½J—–d­1xä(”‰v£K�:žemºýÖ<A2‚6€Wöp+›»d'mIB´Sž2Šâ¡"P„¬—žØDÓÛ£ ÕfCp?óî,¨ï¤=˜}†6NŽ”TøÉÁêè«`Ž.$‚æ‹êÃŽöýûÞ÷ÛŽ*§ÏS€_oåOœ&•Ô‰Ò7¥TÚ› `vr¿"ÖhA+/Y*ÕÓâøæçoô¿û ë"e’R����IEND®B`‚IMAGE 747 ./arch/player/race/pl_dragon_r.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��,PLTEÿÿÿ~�t�r�p�„�<�v�x�h �ˆ�^�z�º�l�\�Ž�‚�ˆ�j�X�b�P �€�l �T�T �L �n �˜�v�h�f�š�\ �|�D �Š�X �¢�Z�t�–� ��` �j �V�€�^ �¤�˜�’�x�b � �d �d�f �F�R �z�¢Þ�p�¾�H�8 �@�ð�Æ�X�\�ž�P�†�”�H�¤�2�æ�Œ�D�Ü�´�–�y&Š�°�p �ô�`�ž�œ�n�F �¢�À�r �ä�Ê�1*���tRNS�@æØf��mIDATx^ÍÌÅRíP†ÑÞ¾ãzÜÝ ww»ê.ïÿ$PE’SLÜú­nx¹‰gºÍ ©ÑÜÎjà¥òtŠÉàédvbák$ +U1Yý¢z†ÑÄ^Ýþ ñ@ÕË$*í¥• ä # xÎkyÿªkL†-iÓØYÜÃºË ©?Í>þv:ËÿÔ­¢ ³‡°RWÖ õÕ±*µ~»�_ËîCW_+Ô‹ãw‡¹Û1X,Ôz|­(póFYa ׬IìvƒžQáéªÍ_œ,ç¨æ†÷å =ÈeiõóÔä&z/Ò×gGŸDjy „s¾FhP{éãz“d(p°|ïß~¯þ)Þó}x€™ÞÈÞŸ @W úÑÞRÂ~pNâ@2‚ÌB>�W›¢#=’n´\·ŽK6Òã€RÒÎe¥]Zô²CœPœvJgßm„aŽ-×uD˜ç‰žÀ„·[4" ^œ—f����IEND®B`‚IMAGE 753 ./arch/player/race/pl_dragon_r.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTEÿÿÿp�v�t�r�‚�„�x�l�b�~�h �^�|�\�Ž�z�ˆ�P �€�ˆ�j�h�f�X�T�T �v�l �V�d �š�˜�\ �d�Š�X �¢�Z�t�–� ��@�€�R �` �’�^ �˜�¤�º�L �x� �b �n �D �j �\�Z �ô�`�ž�X�À�r �–�Ê�H�8 �Ü�D�ž�y&¤�<�ð�z�¢8�P�2�Š�°�”�H�†�Æ�æ�¢�ä�f �´�F�œ�n�F �Œ�p �Þ�p�¾�í¹ˆ;���tRNS�@æØf��mIDATx^Í‘Õn+AD»‡–yÍÌÌAff¸Ìôÿ¿Ù²d)³y½J½žÓ¥’þk�h}Ê^㎀t»ÂbÉEbšM-7ÑBÌeÃ=ý&bA¤`kqUÔ�9c$OÜ\( •kG6 âTãv]ý£fÔþKðÕÉŸÚr<¹YN€¥¸dWKF>?µ’¢½Ï]«ÐlR´„.æÜ€«üÖRimÃ?~ ­MÆb'ãñE½aÀíý™±úõs»¥üå …º^ð"ž_Ô´ ØA(L¬mó¬¡"R°3ï]I`OÅ•ß]€!ä܆ÄËÃëG¢-o��&͈o¡3x(¯³ìØID‰ž~'ñÎÁÚ £d mé¨ú_f ð3BpC†?ª=cÊOî˜,(‚¡º”6�Þ}3¡ÒÖ`ª_훩z‰Ý¥ÒJd±j*«8Å•V“g€l õyñ|wäèósÙ Ïãde£A(CxƒyŽˆ"ÞYŽ����IEND®B`‚IMAGE 908 ./arch/player/race/pl_dragon_r_spellcasting.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ82‹º7O��IDATXÃå—±GÆ3ÏÚkû8,„(.ˆ‚ Qæ@¡Œ"”QP¥º:%5 Š]Oƒ(i¡ˆò7PFè„PtJY—ÓÙçìÍŽgR¼]Ù^ÛÇ.wÐð¤ÕÎÎξï›7ß{3 ߺ©ó|üºCü«+í^î¿›ù<'w’˜¼;eßÃv„£Š·½dt]°Ýqw@\ì»þïŒá]¾û>!™¼ÆZé¿åÚ§kø¥¿ê|ÑôÖ¿{±ïùãÍ� .ÿÌÎDi¸åk.Áî€"hµ9lzÄm}ö»Ã�·s%à�\ÐQ¨_ÇgD`oŒ:Ž"ØÊˇ=âÃQÿÌà^w5/O„Tªàï°`Љ<š \$~R„÷{ÄTÁ–æÈ¢´ûJÂzÓÁŸ¶Oa:€÷SÚ1sg΀õÐOàñ¨žÀ5À«TÁVA§¼˜·¢ô[NHÜ0p%™;: 0lI».øR¼<A˜éL•0ŽÛà4ì_çÀÏ–uãgÐ÷ÍSÙT×ó^—¸£À´ÁxèðZÃ$‚í XV�þØ%¦€žÉ<mëÔSíH5X 6“¶2SçD�. )€Qœ d­fà+J•Û¶2°‰èb–?Z|¼©àjKôrPÀX ÞɸOUõ•°À$âàP-ÏdoŒZ$0Œ`Œ”D(Uàc=ð®%—-Ø['éX ãbûPÁA"Ú(S1äõE¸D xp98 úH7ï ë–Ã0ß7¨¥½ÍPý¢gbç*¯Z5å³_ tÖÞrf¸d@_³f³i² oa�\tžÚf…¥)Ù.‡à`Z(Yç›ÃÙ¬Öd¦:3Zªá:˜*øç’Y‰Àïj4“d^j¾œ­õå)·™uU}a§âŸºÄëFʪÉ%"e¨ïvˆÓbØÒ²5—‡’§Çx*.gm­ˆQ·á +ʵ’ÃÊb!J­¢gÇçHÃuÂrEIž:jØéÀ=?/”c§Nö&ËU‹iÕ¡žoPýâØ‹HÓϲuÿçþ1ùªiøMÙÿÔ:§ÑÐÅr����IEND®B`‚IMAGE 950 ./arch/player/race/pl_dragon_r_spellcasting.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ2'ææ��HIDATXÃí—½oEƳ7;{·÷À¸° XFBej*$šE©Pd „Ph\S!J„�!Š+R”6ˆ†ˆtéøÒ\YV€“c×—õÜz_Šwïcß®CÒ0ÒI»;3ïÇó¼ï3s𜇩»q³‹4 !xßí׳UkSúÉkðý¯y08dI`oÂR¿B0µøúõH>ºØåàþˆÿ¼É£¯á½Î­¼Ÿ„¬3>Ó~pÖ‚d³‹Ì~¿û÷!·wS–¯¾Ì¯l{XóÐ4p)«AÁâÌ4|›]$L9´mäÝ7:üò{Â[cD9°,Ð4˜O÷@`³‹Ø §“\rW²ùææ·?b;àÀû>O0^æ‘;6Ò3 á·3™~Üѹ­ ~zŒ¹ÒÒ€WíÉoÁeЉàËÁâµõ¯‰ð@sbòöfà¶suø™C\þ26 y¤kxT8Ý?Gn´‘¥¢,SÑ :FyZ÷ð0„K Üw0°Gx¸uP¿›‚YN÷r¥¡iãçð<xhi`#ÙÑ|íTvöC¯È86J €Íaês"JIÀ^/øÂ!;”r–(Ͱs«l6ƒf®Î†¡f °%'›/X­…þ>¦ªóR%¼ÞFVšàÆ`S°²$9¬Â=kJE¯³ö¿sy¥kQ9žª«-ÍÀ¡—ÂRÎÀ^á|;Rç�¬‡Qç±Lª9/¥�v©±][9M¯Ù5ÚÇ { ùøœ]àúsŒÎk;®™ù¬ò™,Ž÷+ËSäø1xÁ!O/ž5~üžMTµ§(¸“b®ê—8ˆŸpª•eÚ¯q)™;Ž}Ò�œ­f¸_óF4@ø‚Báb÷ôœ-¤WZȺ…Žhk ªßÓtúDR‘UõË*ÃÏüV|­‡¬ ôD«t×” ÌÛÒ àbQ/±¯†Õ:uñ{-äU«òjÇ0’þßi"#ËnZb§zðM… N½”þüXxY¨š;=+–ðf¨2=Y˜#¯r\E ÎŒ´ÌXì€q9ܳwÊs_ËËŒ¤þt®ÿ«n©õ×m*þÏyüÌÿ?¸v î´����IEND®B`‚IMAGE 940 ./arch/player/race/pl_dragon_r_spellcasting.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ2"lâÏ¡��>IDATXÃå—Á‹EÆUSS=Ó3».K<,F1 žsðäQ$'$'sÙ?A<‹x0ïÁ£gQã-ž½"AX"ê°lvzÇÚêž*¯›™é™ÙívA|ÐPÝ5ó¾¯_}ï«jø/‡»wý–»wýÖer¨Ë€÷ãÓGOþBxüÛ�ŸMÚå4—aÿâÕ„§YÁ£Ç;Žìo«ùQ2º)Øþq1yïó_¿øÃ1¯½2àÝ7¯’d_bmI,Êu@76"ðÁp9y=î ÖÏ}óç÷¿þ€WßxŸ½Lk¸Y4ÔÀþ1DÐjsÙî ˆ;úü¹£�¯ç0N �p-‚õavNFÔI„ÁÖ&ïˆwD ü1ƒÛýÕJ<8R©‚' `EX£ ê£ Ä »à½1U°­„y¸(ã¡’²Þðð“…3˜nÁÏSÚ[±7` &ðñ¸Y7h€/NQ.‚¬‚^u1`'ÂM/$^6p%™': °Û‘qSð¥.xpŠ:y˜*!`œtÁk8x¼‡b¶¬›bâ}+›úzÞî÷˜.˜z -È!‹`ûæJÀ·ûÄÐS ™·íbîMž°bD©kÁæ`h+oê½hÀG!ðK”$»\§ø Jå6‡m6]ŒÃòŸoo(¸Ö½–0ÖBáåw¹áZ'ì0‰$8RËo2š  ìF0ÆJ*”*(b3ð¾#—-Ù[/íX/ãâøHÁa"Ú¨Z1äÍE¸D àsðônÞÖ-‡a>š´ð*¾r¨aù$³s•×£^ê¾X tÞÞrnø8`¨Y»·i³ oa�|t žÚvÆÒ–ì ŸCð0-•¬óÍål Öh \„©Þ ‚7\Sÿ§dV*ð­CgRWCÍó‹µ¹]ΈÝ:-$šªú™Šßé_2b«&—ŠT¥~«Gœ–{À¶–­¹:”|rÒn)ÔEÑÊÛuº ‡®´k%‡•E#J­ѧ'—hÃuÂò¥%O=ìjØëÁ=?/T¿zÙÚ,W#¦õ„¸¿Aõm¿ žKÔ¿!žÉ‡É¿Ú†ÿ«øjFÿ R(����IEND®B`‚IMAGE 1019 ./arch/player/race/pl_dragon_r_spellcasting.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ,Iì��IDATXÃí—=U†Ÿ{çz°{ÖŠ¢(D‘…†.? ?QPlE …+DaQ¢(Z¶ A¢@TùôÐЬ"аZE«¬åµ3ž¹‡âÜ‘ÇfC#ì™{uÎ{ß÷| ü×/ó:íµ‘âÿƒ™ínŸÀ¯w‡|ú¯�ø¢…8™�5ðS}?Žf@º Çm˯üòZÜi!‰�Lü’½m _ŸÍû´qþQ©hXðˤ_&3™. 6z*2už Œ0Å]u4ÛiÍ@¼2€O.©î^àÄÀ“\—÷Œ0O ¸�– £y;bÀ—ÈüñÙòxˆ:rü}z—v}K�eÊÊWæÀ™Õ{~bÆnÜ´¼õf—sŸ·ø~ã,è´sI?•¢x¯\ó{H-œ;MÁª�ï I¼gyxè1À·#ÌF�z;ȑџì4Âe ç! ö€(Xº¹«Äö»Ÿ¨RX=E§…\ i íáQxß÷PAø~ †^3"“Å […}³L?[ƒýþÌ@oçå=W#8Ég§NDsh€¯ØØ¨tZˆ‹ÁN5ÈÊ:-$6pÃÁØÃÛÀ¡h€%IØ9¶0–Õ,,Í‚ƒÆN•V;}yíšÀƒðþ¯x`R²T÷Ð0š!˲ceNõT‹ tÉŽsu²ë´Ð<F©·©>o’ÆKÜŽ9Êt1®€èí —­ÒU”©{#Ì£)ð1<5xˆQ0+dXàÃKHV|mÞ@ï Ó;ÃtG˜¿€aå·ç˜§/TŽ+¢qÍJí¯²±€ËáJ0¥ËõûfˆIÓùnçƒÑ¢9 ½>wZHá|m3J¬"g }Õõ¸¦­QiR¾Õß$¤æZ öšÈ»Nƒ°¿E«Úk#×CÓñ¡4,4sDð8ÓnX•ÂUŒ¶Qú¶'p»6ÁÄkù®\ˆž­‰F¬©W¼læëߊ‘“pë MKRgÚUÁB²¹R\0‹FcCm/O¸åS'¹:zÇA=WæúFKóºØYYŠË#— :93›÷³ár RçC“Ü;Ý|Øuë6Øà<.™Œsã"HC‹ž¤öO·›´Íª ÈÖtŒ*°”îfű9í}TÓÄ…áÒw-´Üéfõâ•>Íæ*V)‡ýtùàòÿµíõa}5 ón‰����IEND®B`‚IMAGE 994 ./arch/player/race/pl_dragon_r_spellcasting.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ /ˆ ��tIDATXÃí—A‹EÇU]Ý;gÚ!ˆÄ(DsU–<„€ƒ?€^<íQ–Eæ$â–A¼Åƒ~½xÊA"!èd2ǵº§ž‡WíÌöv·3»9‰MwU½ÿû¿ÿ{¯þËcœ#ãœý®5æ"ކˆ3P B(ôýd±>wœóãȲÿù¬Ù–;¯ñO†H߀5P'ÅúÛᩞ½èlö<Æ?ì#=} A@èXï>Ë‘ç 30²@©Æ½(íÕ¬8»ÉÌ…�8£ÆCã_“æ‘ÑøfFõ1OžSH½ÒѾv&jÀ•ðà÷;Œz�PÑ×7P:ðV™pEóúïç˜gfn¾—ðê+c–ASóÜ  ©…²€GVéw Êß1Oà—ÂÇ¥¼~ÍòæuKq·w»±Ô© ê`„„(ªž+² l,ÖúžêÜ·®[Þ~Gý½u·4g�4*4…ãéé5Wx¢° ¸la) àxÑ\t‡H`ëB—-4ÞˆÃ!’xÃA¾R�÷ ecda4-Ki±•' ŒÛâôû;s̽õÞ °‚AÐ-pt97�€Ç+˜®TéMáø)À4h¬tQ•gŠ-kJkÈ]{‰}¸Rï_Kà~ 'r^€`aYÓÕ¤%$¶‹š6‡èxy9z]¦ð+0·ù«jÓËÛ/ y|ÒŽþ> ?—Ð߃<SMd±A•Þ·2àVð’]®#–_Î1ÞÃW Ìb~ûKöb‹Xõ°MC­�r«›w^@´ Í£@mˆF3«BÚM_]\YÓÐ( ^`Ó4oiǮ˛rGA]]2ˆÎ¾Õú0KàY©¢®@TÀmÓmgc¸Ëx¿‡\s‘¹DëBé´Ž|÷óíÒ-BÐÏt“íè›ãF†|p ¹±§E¯Þ.ålsúúÉÙÞsÀ73Œßh,6…O‡È¸áNw4Dö3xwOËr¹ŸÁÒvßÿU››]©quÀ/j;®6ZàŠÑ´%)6¤T™èpõÍmÛ0œ‰÷»Jñ+êð±œx§…©ÍøVíøTŒReÁ±ÖÆ?Ó¬ïý^ÖÂ,¶ÿá1ÛÜ7©r1¡š©öÿ¦¿¢ hÊ»‘Jõ2½«ñÿÀß©¥h)¥á,����IEND®B`‚IMAGE 1030 ./arch/player/race/pl_dragon_r_spellcasting.133 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 6“8a��˜IDATXÃí—¿‹eÇ?ï»ïŒËfwn9C1XsØ›RÐBÿ+ ±8S kŠÃB,K á8ÁF°H™BÐÚÆÞÊÆ‚E<Žpä–½Ù½dovæ}-žw˜Ù¹ý‘‹•¾ð23ïûò<ß÷ûüø¯õ*…mwqùûÃBöNÄŸÀowcný+�îtpFAê€�ìTÖÇÈNÄAWsûë!?½R�·;¸Hö�&lÍÙ®†oŽguêó(ÿ¸…k*hi°Rê•$¾Š 3@¨äV¤¢<q°7B峪hâl¯S€xi�Ÿ^»[‡ žf¢¼|fo„zªÀx°7f國["óþI½? (2)ü}t—nsM�eÊÊ#5`Ôâ3bÔXÃеëš÷Þý’ç¾èðÃZ Ülã>Ù(”Ü?A… Æ6´ÜÙÄÍò FÅ 8upùuE’Àõ-}så0ìoàö•xøÄÁVn¼M§°©á¹C€ÝÑYÙß½£ÀWe룟3¥êh®:T¯ƒ»Ò›v-<öë Mï„o[‰ˆÔÍ‘¹õyøaðÙäWUg?Àî Ðß8{æR³âÖ‘ÇŒµ�°+Õ‚^gBÐSq²²€^*¸fÄöWGN,rù“c c·˜…Ú(Ø¡ôThÕÓ³{—<ôëX1&%IM -%R ÃðÑTn5OÀŽ¿ÑA&J¶Œ$š'õ:‘ïU¸À//Pû©l†ý ܦú/9aêÞõx û lÏDBÌÞ3ÌðÁ\äwl0+ Œê£vF¨¿€‡~ç÷¨g§bŽ‹Nü Ú•Ü_ec.�“ÁE/ Mêí÷mŒJ’Ùjg½Ð¼8ÅV¾{"I--F‘ä,¡¯º"P+1Mâ` åùÐ\j‚í6î-#N8X£TmwqW|ѱ>´4´36àI*Õ°j Sm0ºJè[·<˜ÀûMÐØL¬ä‘ïˉèd‰´B ½|±-W~#ÄžÂ×$,I`œJ]˜—s“åO5¯ÁÌ ö¹½Üá–oe¢èMÍL˜(IÍË|ga*.·\ÚÛɨ¢ß39Âd@C”Ç&Ü;Z½Ù5Ëh¯<,‰ 3cø=qØ=Z¯ÓV‹: H•3 )MfùLYö•þ ªab|sióø’;]-_¼Ô¯ÙLÆ*ŰÖ7.ÿuÇ?ý{]Íዬ����IEND®B`‚IMAGE 1132 ./arch/player/race/pl_dragon_r_spellcasting.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ&¶ƒ��þIDATXÃí—OhUÇ?oþu:n×aMcëjE ADŠô(=I)"ž<ˆˆQ(R¤ä =åÔCNEA<xÈ¡Hñ =xð  "ņ¤„C\ã8Y&»³óÞóð›e“4 »›‚—>X–Ù÷~ß÷ý}ßß{ðxüÏCdòçg±m ð€¨€Ï’áÖÀ»1¶¢¡ð 3P50éBáÃÜ_ƒ¯ëŒüí*¶æB¤ 5ж°íÀ´; À{#æÙG àr„­˜Ôàp·ÅÕ°PXØ6uàæöz‚ aõ‘hùöÔ\8ÉoLûÐraË@¢aîI¬9I ®œÁ^9#tîÐ4â5É÷|ŠÚÒ0 .üÖ cî�"쉘ÿ»/ ƒÁ{¹nX˜ö ñáúÖ~ÁÍž |· ±¬p«u¸0€…ÔÂ*³ðA¥¿ë…™)Ë%bGvg,Ü~f?Èí6¬ÐAþ7p ¶Q©+»ü¨ÖQsà9+'ËpUGÉíË.waMÁÄ‹›Öõøæ_TË@–çO ˆ–…q ¯•ÿ.€º…†9|{€…̃æ®ÇÌÏ &C€7Oca’‹ÐL©ƒÔ…Ÿ¸« d×ËÀŠ‚]XÍ÷°X¦íòÕ¾~b•š uO>ø±ƒjºe‰u!Ïἑ m ¯˜òÄŒæŸîïð«õýÍ_¸øÉ,I€{@>”_аS®°P "œÕð«‘”ÄNéÿ R ¹'ië±Ðrý­�¸öå}5”V ‡ª¤µ KFò âÿð¼êWÇÞòí¥b}ñþ‘Á{žrè0^©pÕ÷��º¹X( ,•óÒŠ3*z¿FrBcå¥9�jCÖ†ÌJ)Ž»0ëˆ+âCšË»£\t �Oc=õðËM-6(¨•/SËÆ´ô†ñP�å¦ð¼rç¾ô÷½tÞÙA½ ˜Ä@ÍÀ; \èHnýƒZÌÄYG>„ œ¢ì~þóÛ©,š銉Ç»S…NíO×Þîy ‡3 $ßEWúûÁÙmfáÕ�fºpîEgVØz¿2„Ž»`Š~%45\û Ü݆v!L-å°báž¿883TäÞ3Ž7¢*6T¢ô–PKÀÕ®Pú0¼äˆfÖ5¤îþv~˜/ ìc®Ô|` .¡ni¨8økhxP~×ð�¨QÔÇ òX¥^ªbÇ ÔËcVïÐRÓÐöåì׫’TÃÉð§ìcd±ž›Žè¡z ªZh º}ú"5Zðïׯ°ÍBG.”»Žˆ]øxsôûÅÀß‹¥ fÂò&¤àÃ?Ov³z<�þk›îzƒþ����IEND®B`‚IMAGE 1129 ./arch/player/race/pl_dragon_r_spellcasting.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ¡¦YÄ��ûIDATXÃí–AheÇßÌ7³“u³]ÖMK !äÐC©ƒx’¤` EE¥¨ˆHžŠxðz)ñ" =¨‡à¡xOêI1T½‘bI×%Mc“Nfwg¾ÏÛe6Íf»›ZñÁ2Ë÷ͼïÿÞû¿÷ÿà¿b‹#ØÅFþUoùxq„ß.”°Jäîö¾×¨# (ưC©ïaÏÕPï–ø xô¾�8[ÂÖ#ˆ5„6ˆ\h&$ðö1¬éÃs”ß)bË.äÜ2Yˆ-L± ¿4`#Š{�Ìç±Õ´S˜öÀøpÚ‡²’[ ¼ZÀö àüƒ½_ØMóª”]˜ÍÃGÛ¨z[‘ð`Z‹ãäèâL~ÿš6€8¹Ž¸¸#ÏÕ¬+{اfàZsC‡¶À;7ÄI'ˆ…a쨛Èû(s²ltZ¨asOsüû ªøÀTª«n‹ ÃrØÒªý¿m‘…qš‚<Àé?2?gKØ3/y�4~M¸Ù„•ÃÒN÷³º’°ýòÂ0¶žÖ1¯ H£!^dH§]ÚF}þa‹Ç&Uòä¼÷M.§ÖOœpŽÖíÃë ø f Ìi©ÿ¸… kM¸üÐþ,åüü£ùÔuX}z^ù‹þ¢¼ìÁX�·Po”±ß)‰Ø÷a5†PA¼'d<Á˱½¾ao>ûœ÷™÷r´0:Ù_tdØŒº‚vÖ…\¨$0£à*°­¡àÀù?{û¸µD­¦Mûº»®™€¦ ›±pæNÒÞ€QÊŽoiE VŒ´Zhäã•óÎ.êÇzŠ‘IÛÎWY Ђº±•t©™êAèB!é?=kvj;¡…Õk±dÄh¨5²²�œÔðm:˜j‘è@Á9ØÖ•à©aì˜ &z9'µD¯Ó¾Š…”eFmÿ%9€±é¦±—ERµðÅjCeâTKàj §nË€ZQí¨Ûû‡©â¡� N¦f» x¥g€?ýòžpàëœðfŸ6tì@+©wÜ‚-séyÆ@ÑÀk¦º°z9D \ºÝ=I87„­æ Þ"V‡àÚ^z°†µf<˜Ñ0Ù€ßrÒ¢ïÝè õœ')¬ =¸Õ€ã¾üv›0žƒŠUÀ< YÒÿä$¬¸2pLK®Y^l$ðD <‰-l+(¶UsÀKÞ]Sõü1lh¡bä SyÊ D„¬SI_—ÒOþB•)AÍ+M‘çbª~+K{~`)b0´oV°»êLj™í´—\8W\ €Ydúñ¢ô¼Vðúõ£ùùß�þ xxØ›R����IEND®B`‚IMAGE 1148 ./arch/player/race/pl_dragon_r_spellcasting.153 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ LÞ°��IDATXÃí—AhUÇoæÍt²n×e›Æâjð"H-Ez"ŃèŃˆHUDJ҃䠂ñRz…Š/öàÁƒž,ÒŠ„¤„CºÆq²LfggÞóðMØÍ6v7/}°,3oÞûþßÿûß÷ÜÿóPGYüÑIlbÁ�(eða8Üž#x½Š-çiˆ T L¹y0gð}QŒ¿RÁÖ\()ˆ $¶ø3ƒ¤%Ì�\ªb/Uyôžx¹„-˜ÊAûpʃ¥U·YØ6·à³IìÅÀê=Ð4ò¯Ô\8S’gÌzÐtaË@˜ÃüƒXs”œ?Ž=\èìhñüšÄ{!Bmå0 d.ÜlÁFãî�"Ü3RòaázïźnaVCèÁÅ­ý‚›?‰}ø~ªL:°’ÁåæÁÂt�wP‹;¨ØÂ[åŽ×‹;²¨¤ ð!(¶¨:â±põáý ·XË ƒ|7p·Q‘+^¾S뀨9ð˜ÃS…¹Š#Œ¤öîM—Û°¦`òqŸMëùøæ_TÓ@œÂû'DÓ„…ÓÅ×0m¡nàv ßõ°khìjæ~©3€¼4†X„a*B3…"~vàºß¯—»°šv±X„íÊ'øêUj.Lkù ৪aÀo)Ö†4…3F$Ê ž30£¥-<ÔñðËõí×wøôóž=í®éA¶t¿Ø˜Â.(×>d9è6$EX~³"P“BCw²fquëWƒÏï}ò •é×~¸¥†ê/ŽaëZ<ý8B]¨` ш_dÜ7-D®è¦;½Ù4ºP¸êÔ��Ú»ZÈ Ü(^§E)Ž](çûõ0R%4V&M¨¶rˆ­¤â„ O9Rñ Je®_À cX­îžÜÌ¥Ìú jÅdd`ÙÂx.½a"�ýªé@�´.<÷¤¿wÓymõt `B5¯†p¶%a¸üj)–Ê:òy PàdE÷kuÞ_dÓÈHW T¼køñØþpuwÏÃX8˜%ñÎÚÒß{7¨—ÅÛØÂ3>̵áTEÇVØz³<D%œpÁdLhäp6èlp}’L˜º‘Š…ß­Ô‹Þ±£JÞÁ=ãÐ:p®‚ ”(½i ÈÅàj[¨<˜žpD3ë¹Ô‚îvÞ-Ä~šè[Æ]Éyß@µ€º•CÙ߃ju 5ànÓ}’ú0AªÔsì¸é☵wh©åxröÛË’(‡+áð§ìCdU´›Žè¡r *¹Ðæ·;ô•Ôhƾ|0Žmd8rù ðºä@Õ…w7G¿_ ¼ðªdÁ\PÜ„¼ý×ÑnV÷Àâˑ“Õ����IEND®B`‚IMAGE 1086 ./arch/player/race/pl_dragon_r_spellcasting.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ÷Fo��ÐIDATXÃí–?h[WÆ÷é½çý³" ÕSŒê†P<B(º´ÎP<tH©i(!”PB“¡S¡C1C›)C§n-vÈ2trJ†Œ1¦K]Y–UEužžÞ»·ÃÑ¿6R*K†.>‹ôÞ½ï~ßùιç8²ÿ°•)>^™âÛÿ|õ5ßÌóàÃ8àRs1!ÿÃÔ …›yL>—G}vã¨0ãA&‚º XÝ|ÆÈŠ“ÜO[,ebà(ûx`‡0mƒ§À³À×°oÆ#¡úK®W­ôu6˜Ó°f nu×Ë!Ü®ŒFÂêón©}pvï§Ïƶêšõ'>äbpau»‚*GP !3^"‹AÞ†S.{ï}ôIUï›_“¨kø|»ëe%‚å4¼€ýïÅ7-Þ(¨¿~ø)Ò_•9Ó'LF·þßÝžDqRnOÁ…;âÌã¶œÂÌ8ðA æšð³'Sp¿.!™í9¼xÖ°%ù­rw}hçÓ˜y’,x¨ìés¨Æ íÀ|›­Ä½±ƒjƒ{|Yz¯‚KIL` ©„éÝzwsq3?Ø á¡º†õ²`3ßoöäÛ‹L^C2„ëÕþÎ*€+ILþ<¨Á)¶#ÈXµ$ËÏea!‚ï#È4á™߆ŘxZ a« vÐ*Nb ®(¶òÇ`¥; W’’ wê¨E“æl€BfÀ‡ K¼/…p‚¹žøîÏ.øœ+ëzéÕaî„àNäk>êòqÌF�·Rð–«>”øµ%ó»i˜±¡òBž{ÁO)R5=Z!DºeÖ”H_ñ!gÁBBÖÔ`½E¦7¾Û•ý½Ù~ Ÿf0eЮĸij­¾ xÔ@IÂ/uøñ¼3!á;ŸÆxJö…öè¥X®Zî)X.Uï·&X-ŸVwQ§B¦O% h3^/�ÀkÂ9 ²q98Œ€àŸ´P›DQlÜf$wZÁ£†xž·a>›ˆ¼WSýN7$‹·cråÚ½ʺ<{ ï ÑÈͨã Ý ×~®¹Û½öþF{0 œt VðõCÊÀM_La¬&hGJ¬ ¸¶e rX!L{0羆jKÀ O`°FÀÚÒ‡6$ $ÈÇd"òЀ}$T~p†%v†_Ëb¦½î5{Ö€¸'Ú…Îj±pB”8”©¸×®e»Yï*ÈÙ ­Êçˆ÷šƒy~ày —„‚å¨n…kÔ¡ôÈŽìo†ÂmÿÁàp)����IEND®B`‚IMAGE 1062 ./arch/player/race/pl_dragon_r_spellcasting.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ*Œ€5��¸IDATXÃí–ÁkuÇ?¿ßÎÌŽé$ÙnB ¡‘«” J"<• E‹„‚%-ŃHmÅ“§BÁ¢žŠG/ ú”ž=xˆÒ†´hÙn¶kº¬³³3¿çáMÚ4lâf]ð’wšá÷›yï}ßï÷ýà0þç0Ýn¼:‚�_/nr àb qm ÁË›ÝÿëÀ,?‹4®W0ç€c!”2ðŠ;h 8•ÚÁ ñþmçcHdaþȮG‘X ð ¤>$e ÕôàØýç˼ùG6Ú0?‚4hà…�N Õ *)¤Ò¼}’Uɘ Ô2íxê÷¡žÁ… õ»CŠí‘„väW¹#F—ÞdpÔÐpðs Ý×ä熔§r"ö† ðÊ‹–‘‰øåwÃݪ Ì#˜ `"ƒ©"üØP¤ú¦‚•W­¼ôœÁ7°vOX»ë®-n²83ˆóáì L¶á¶ÕGP/èÑx>„X_>Ä\EÒêT`q—\¿\ŒD 2°Mæ/> ßúáûö{�3ße—Î!'Cˆ,L Ür‹þü¸ÿä»õD“EB«ª ŒÊ¸#W"äFóZ9᫦·”¬Ê+Ø*ÀÉ"\ða#…[¢»œ㞪a£ k Œ9ý6ñá“{#ýxáJ¤„ºÑÀœ)"‰20éA¼S†é ¾Í Ô†_ Ä”3-8XÚļ?ŒLÚ}"»îÚ ß‘²…Ó<ï1¬YÕ%Õî_€Úß°PÇÌæÉC •îqO\>Ь'°0/û°C%?[/€rA÷ÝI`)O>‘Ÿõ–ëƒ # 3üd`5ƒZ £ªø<÷ûùdÛ“¼°Z K[ÝσŽF4WBª1ÌJ®Õ–’0pÉŽ!•Kêü]O½>8ada:‚›î<R¶ÿÖVFÛ]½­Ô0žQœôÁŠ?.#SÀÙ ä{Ò H:WüÍ_˜ºyúÿ u·[y×ùè-ùн=ße}Fû•Ûö¦0ƒªë<vÏ<ƒ t8žžUàxb«Ûï Q}‹ˆ a˜òa+gv7èXóübÛà|=‚{mE 4à<u¾À€Ma<Ô©ØtPÏJrWìÑD63•W$ù0–44@ šùí(n~÷É÷µâLöŒ˜Ó!ŒyÚ=-í´ékçMw°Ä]Í‚EF=p­Üù|íÚÑ[⮯åO!‘‚õ5©£·køaÆîø‡´‚ÃKuT����IEND®B`‚IMAGE 1098 ./arch/player/race/pl_dragon_r_spellcasting.173 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 2+ÍK ��ÜIDATXÃí–?hwÇ?¿ÓÝù"ŸlY6ªLkŒLñ`B)méT:Ô‚‡ŠÜbB)%t0:…©˜Œ¡M— :¥d)t©]2„`Œ ]ê(²¬ÈÂ9î~¿OÿšJ©,ºø-:Ýïw¿ï÷½ïû½÷àÄþÃVÆùdeœïþðÕWظžeàã$`)¹4,ÏÇaª×Âõ,&›€å¿PŸa•¦<HÇPµA«»½Ï˜@~”µ‹…tÅ�Bì&mðxÌÑH¨nàÀ‚«ÀU`+}Í­rÖ $­öz1‚›¥ÁHX]Þ-4ÎìÝáü¢ý¤ªÙ|ÀD.î¢n–PÅ DGÌûÅïÎZ8 26Õ7æ—(<3å@ã¾Üi{YŠayLž×ö‘@Ý@Ê‚W_Wåß7´»ô«ží"“ÑçÛ{ð^²?°ü¨Üž®=gzêVÿÞûÐù4øåÅ÷‹)Ì”çS«ÃÏœIÁZU$™î8¼xÚ¨¡ùb{½ïĹ0‚™óÀ·`ÞÀ=-`÷¡œ€r ¶s1l7÷ÚSTܳàë¿ñZ,ù˜Ð€¯„éíj{s~37xÁ=U ›5˜–ý�Û¡ü~»'ß^Jc²ü®–»;«�.û˜ì)¸[YvbH[±$ËÏe`>†cH×á‘‚À†³ ñ´Áã:Øa(?Š™q%b+OzGºµpÙ—¹UEõ0 gCÌ$aÚزÄûB§!8Ã?<kƒç\)XW /—¹%Á­Ž¯¨å1ÌV7Rð¦«Bø£æF`ʆÒsùß ~ÚH‘ªèÁ  ¡[ta]IèKLX0?,ëw+°Ù Ó©ohÀveg¶ŠÀgiL1€¼+?¬A¥Ñt÷k¨·}ø­ ?=‡÷‡D¾ #OɾȼËUóᎂÍ}©zÖ!tÀjø´º‹zkXÈ´ôTmŽÖ �ðêp΂LRŽb üçÍÔ$QD"vÔf$wZÁýšxžµa. ÛHx¿HuHt|<Ý,ÞIÈ•knôb(êîðS˜d‡D7£–7´+\óÕÈÝî´†0ÚƒIàŒ•´‚oúRznújcÕA;Rb½XÀµ-S«ÀŠ`Òƒœ Ê脦½#`¬úÈ߀ï@6!‘§€ R5Àéü¥š~%ƒ™ôÚ×ìQ ’žh:«&Ä¢!‰Ä±LÅv%ÓÎzWÁ„ ºÖ¨|Žx¯9œç‡ž:IØXŽ€ê†\ƒ¥'vbÈ‹rlô1„����IEND®B`‚IMAGE 286 ./arch/player/race/pl_half_orc.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡Áq8àààG$Í…? R-���Í…?d3‚B'¿¿¿áÚ$6���tRNS�@æØf���¥IDATxÚÅAà +²kÈÿß[âÐæ`‹³>yFFP^Šþñ™=wãÜñ(D£žç–«öº¿=Å–‘¸9# “›è D4Aæ[ H<œ‰@âkX9` LÍ9Tx€á0©{‰0+!¦JŒžôô‰…‡ØSn˜ Çl©�‚ÞŒ)o¯®¦|Aãûp!áZf‚®ùoC’6¨¥*Ò5+3ñÚ‘ ß����IEND®B`‚IMAGE 283 ./arch/player/race/pl_half_orc.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡Áq8àààG$Í…? R-���Í…?d3‚B'¿¿¿áÚ$6���tRNS�@æØf���¢IDATxÚÅ“Ñ Å CË‚KZýÿï½è|³to»É! ‚ö'Ió…/U€–ì㈫ò%†•€%À»,&À€ÃïÓwq-÷X>žÍ �¸}Š�!l¼OÀ©¶Z`>�s—sÍË]¼²Ì"¬˜„×�®äšÄ™s»ç@ôþä8‘úZM[^AÑùLŠn™Z§v‹Ïp$äàÇú骗ƒr����IEND®B`‚IMAGE 255 ./arch/player/race/pl_half_orc.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VÁq8àààG$ R-���Í…?À��@@@d3‚B'¿¿¿²A“���tRNS�@æØf���†IDATxÚÍAÃ0WÄ,öÿß[äø˜E½µÃqV#Ÿ@‚­ß|9¸¤Ç/Uˆź¤]ëÍ{=>ñ‚ïö@yc(k!pNºE¨�˜5‰BX8aQ(_�fí༠ç9ˆ&�šE@ŸÊ“Ö¦·pÎ602O@r càù�jFD«p”=����IEND®B`‚IMAGE 257 ./arch/player/race/pl_half_orc.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VÁq8àààG$ R-���Í…?À��@@@d3‚B'¿¿¿²A“���tRNS�@æØf���ˆIDATxÚÍÏ1Ã0 CQBU¤BòýÏ[º³Å. P™þ‹àѽp\_p‹`Ü>`‰N°j‰ž€—¸!߈ž9‚¸øXb¬ªoÑ6Vž`ià÷MAgàQì 3šá-¾Å2Ï}œn�ƒHÑ=Ì xi€Š0 ú‚Ñ-;Cýå‹pwüÝ>“ͼ—o‰����IEND®B`‚IMAGE 298 ./arch/player/race/pl_half_orc.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8àààG$Í…? R-���ï§_À��ÿÿÿ@@@d3‚B'âä6á���tRNS�@æØf���«IDATxÚÍ‘AÃ0­€UªúÿÏ-Øõ©[n•J.‘gXp2~QdSè®j¹»7FòÛïŽøš,nˆÐÝp:¯Ìt@¸¿ i¸§],.‡DžÚ“V€XÉwŽ‚Gr¬'…+àpÔÄ„õ'Ä–™ÏS#àŸ|tBñÀ¦jDñA O‹×·É÷ÿÂmñ¡Æî?oÔ|ž¸J¨ÍU‚ ‹è #ÇÕ ]¥9L.����IEND®B`‚IMAGE 296 ./arch/player/race/pl_half_orc.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8àààG$Í…? R-���ï§_À��ÿÿÿ@@@d3‚B'âä6á���tRNS�@æØf���©IDATxÚÕ‘±„0 C‹¬Äþÿs/¦7Ýpî’è¹qª¶ŸH_¨JCÇ¡ÏÌ1ŸsÖ(x ªx€ôœ)Š@DÚ%‘`wHÓg@ û™– c :˜* 6£Q«P·gf+ AU{VïòɃ©ƒ«Þ}©"Ènºen÷G\͉H¨Ô÷sp}§ç±é,dyé¬6Žî÷ –o÷“Hp7QÍŸéÀzª5êM����IEND®B`‚IMAGE 265 ./arch/player/race/pl_half_orc.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8àààG$ R-À�����Í…?��€d3‚B'ê ~í���tRNS�@æØf���IDATxÚÍ‘1Ã0 €‘r„ýÿï6S7É@§rðrÄI‚ã§\~ ×ý>t…|@ËwF</=h[’n¿¹!ySôR¢(\í*D¹ú²ÝžÀ¢d· < °¥Ý üå@0œÀá›–dG<25ò�b »æBnfÁÚó†kÏÈŒ?Ì"=¨G£»����IEND®B`‚IMAGE 275 ./arch/player/race/pl_half_orc.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8àààG$ R-À�����Í…?��€d3‚B'ê ~í���tRNS�@æØf���—IDATxÚÍ‘ÁÃ0 BS‰9òÿÿwG²kI•|(/D8ãzíIÞû×(¹€K㞨5ð†#ª•ß�’tl"ÓÈŸ47d¦§¾¼¯ äòÁ…Þ©D@¾8¸ Íâ´ß&€¶;�¶o—ˆ–ÛÆß¿çÃ+—|� P_!è‰ ä8ªÈ3=Ÿ€s«Ç£ú ãïôÑm|±Rì����IEND®B`‚IMAGE 811 ./arch/jewel/platbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��äIDATHÇÔÉrE…áïVUWwK²dpxb”!@6¼–,Þ…‡ oØÂa0vXS«‡ªº,º,Ïvç:óÏsÎÍ<±ëù:Ðj ìY}ÅîKÇoç©Ë¾XrØ×ù5ÿS C_Å5V‚ô€­_ò±ÖØHXØð}n­8и‡*µÐb¤ÑÙŽOÅ{ ±‹ÝÉC…Cµ¹pjÓ7Q¼ÓJì:ðs^P˜k¥ÎÈÐLc]¡µ°Ÿ¼CGìÚ÷SúØGŽ„Llªuh¤¨Þ¢#ÒŸî%#ÛfX˜Ù²†35¦æ.Å—Þ4ÜHwr",ÌÍ}f]£P)MtRk`âLí»X{ÍJÌü–)´3[®ÖB§0U››™h„kñõ+yÄ}ÇY"…ÎÌBº®Òj1U Smܰ›/X‰»Žs¨”è„4ÕØ4ÂD­Ðš:ÒD"\‰›ç:¢ó·G9V!{j«‘ÖÍ­é,œ(4ÒY¿#­»ö–!¦CDŽ„N‡B'M­éÌë”æ:%ZìÄöž=å™?Ìr­çJJkΜ(Í{x£ÒºêªøáùgJ<Î ¥VöJª&ÎÌt:•…Jû\Çùw>žx˜CZ…uïùØTK?Ú¶¥õˆ—éÌ=]®¡A(” ¡uh*u*«.k”*/8йï(7Ñ!•J%3‡µR§Vè^,­ü㯫EXfOãÐ̶±NY˜¾€}§~'/!ehh5.k¤BíÈõx#`YqwäVw!¤kcdžqÉ[�ìã¡G¹i(t‚ÞR-TJOmÇÞÛË4žºŸ##Ñ« ”jG®ÄØ­wôoô®En)ú(ÓP¥5‰nñ>�ûÒžä‡}Œidà±/¢\ °´ò¯‡¹n Æ&q½ï„�K'î%…¡'nƳJYÀ…{Nó¢Ö•Ø:¯µ•Ï»a'^¨´ÕË4ŽŒÕ/ÔêÿºmOm˜ã����IEND®B`‚IMAGE 909 ./arch/jewel/platblock.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��FIDATÁÁ‘$G�Ð÷3³ªz¦µ#رÀœ±OðöΫX¡POwWUf~Þ‹ï�üÍ'�����Äw�ø’pH] iªCµZ¥Š*…n†OÑàÿò[L_éMzZS1\¬›pZ„bCƒê×ù#¸:„§Ãpè.†ÓEwÂi꺋DƒÃô­¯ÓTMÅ®¹ªŠ4±K)œ¦Mhpûæû~ãƒ,žÂ†j¸J»&¤w,¨†E誊ƷÛùÇ_)HMRJO!ìNCQué4Q5§Ã¦ý;ò÷ãÏ¡¢ØUaJS ÝaØt‰)4a¢ÝëükÂÓ&vUB8 ¡ é@ ˜º‡UEùÉݪ›wa(¦ašÒD˜ª˜ÒÄhÃjŠiZté¢: ÝRW^¼šR %Buš6E5¬†Ð Õ¦›šÐ­†TMÍbèh] I]èŠbºX Ý*LWU1œB؊ᦡU¤.!U‰]õæ04/ª4ìºæpš6´oÒiQ¤âÅðP¤/ŠÜuÓ¦»8¤ª†¶_†©:qÕ¾›¦t³ê§wiÑE5m-Òû¸V©ëvw?Wt ¡þƒéæ£j(ÒbQÜ4´×ùë0 ‹)ÿST„.t]X\Š"Ýi Úëµ:t„TwEŠS7…‚‹§T„¢;tÅDËŸ½V „ii†©)Ná¢h©) hëï~iè -NÍ4…áÝ‹&…fXTU•¦WiH´ú˜N!5iñI:„Eñ“"ìŠ"…*T‹‚é-ïÅŠ)üÆ´XÝMáŠâE¦P1¬ZyžªP½é.Bu1íH‰�išN¤ÚçU+wBJváfEª(&†DG€Ps~¦Õ{H‰«W$žÂætj‡U7¦Ó&|ûíò8¥T½€°Ú7Sz‘†ªyZ4TáúÚ¸OéV@êá&­BQt/RØHS¼mšµ¬:(*R*‡§® MQí™�â3gk_™)¥©¨º]·ÚL!¥‰¦8¤O”é­}¦&†»ÿúÞnõæU³ªV¯6i·«ù�ñwr8Lª¦ ¥P…T!LÃ5�ø?)½.ððW¼����IEND®B`‚IMAGE 592 ./arch/misc/plate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���óPLTEÿÿÿÕÿüäÿÿ¯«Àéã±ÖÑëÿÿ³ÙÔ÷÷÷éééüÿÿ;HF‚žšÌøóýýýÐý÷óóóÌøóíííÃíç���ÄïéÿÿÿéééÀéãÈóíÕÿüÑþø±ÖÑãããóÿÿîÿÿ­ÒÍÁêåþþþ9EC¶ÛÖ6B@àÿÿ×ÿÿ$+*BPN‚žšüÿÿøøøïïïHWUz”ñÿÿäÿÿ&.-\om«ÏʽäßÜÿÿƒŸœ¯ÕÐôÿÿ~š–¥ÈÄ"*)(.- Ýÿÿ³ÙÔ÷÷÷;HF¯«ëÿÿåÿÿÉêæÕÿúÍ÷ñØÿÿºâÜÒÿùìÿÿªÎÉ¿çâ‹ ���tRNS���������������'§Ã´���ýIDATx^µÏånÃ0†Q'åŒ*Ø™™ñþ¯fÖ×T–,K]4íùé¼–4£:*RÍB ýSsÿÒß§×;g]è±ûôì>Mw´Ö/:ïõíýã³lvAÖ¦åÞwßú  FäëØ:°3Áää|â7Æ=aÊZ+f°“÷ÅE&ajìs)¨!û<NV%2­ÝB7°Ã›Æ·$‚¶{„%”·i>Š"ΣX%C‰òööñá‡Ú£D(1–àÓÉéýKS)vq) ;]]KèìÊó •ªÕ Á”|û²ýÃFÃáŠîÏœQ¡‚ª<Ðl.þö–+¯,MF‡����IEND®B`‚IMAGE 463 ./arch/armour/mail/plate_mail.111 ‰PNG  ��� IHDR��� ��� ���Ùs²��–IDATHÇí•1rƒ0E9ANÀ 8/‘Î*Ó¤JËŒ{€q§î褂qG†ºÀMª ýæïJØ``,w.Â/Œ—ýÏ«Õ"'Éÿõ$×Kš©‰6óœ› •Mjz£ÚAšå²„žŠ8^@:äd7|IØIÒ*q§”·:§©B¤”'Úºl©Ä¼ó¿Áö €c—»­Óîóû‹D*Azݧ›ÅNdÎ\ì,-Þ ¯VZÉ€ƒ”êí-õ ˆ(ÀÕn‘~]Ñ€¶ˆ‘GÜäygg€_h�ð÷­[iá0c�/F�;ßÿ")Ñyž‰Ÿf ›•ˆ•Kî j`KM<á·- ¯%r¤÷�ÆVŒ~Ä;²_žÀ¥‘6è‚–*ú°”V °—I«Y{n\:ï„Aáˆg“'àDyÀ"µ@-ÕøáæxßÿNðö•Aõ §ÂT&0œ>S=°ä{1ÜYYX4À×À–pFÊq`Ž1yiFRQv¾Ò ÛÓDÒçüSúéRj-žëa����IEND®B`‚IMAGE 466 ./arch/shop/platinum_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ .:Ìi®L���ŠPLTE�������‹‹�îîìéìé&–„&éÙ&ê×'—‡'ê×'êÙ@@@ÓÓÓÚÚÚÛÛÛÜÛÔÜÜÜÝÜÕÝÝÝÞÞÞßßßç¶ç·è¸èèèëëëòòòüÓýÕýÖýÖý×ÿÓ�ÿÖ�ÿ×�ÿØÿØÿÙÿÛ�ÿï¢ÿð�ÿð&ÿð2ÿÿÿ€‡t>���tRNS�@æØf���bKGD-ÍÚA=���´IDAT8Ëí“[‚ …4 Ír¥¼¦hyùÿ¿/Æ—Bšfzô{ƒ=ìrƒem 5ŒºC#Î#êBl·Vªvmdœ§ç@{Œñî‘Æq¢˜)ˆ‚�ÏBÝ¡N¯eYõâ%@>B<�Îy˜`—Jµ£ü,h9¡ë—b‘Tmsï„é‚B–çÅqº¤êÇ¡»±™M/½É&R f£o9¡_‚ô‹ì-ís)@l —+ï¿}wž`‹ Ô.EJc����IEND®B`‚IMAGE 515 ./arch/shop/platinum_converter2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 0G-›���±PLTE�������‹‹�îîìéëç&éÙ'—‡'êÙ/™…/š…/æÐ0æÐ@@@K—Gc¦`f¨cp¯n„»‚„¼‚†¾„Š¿ˆ‹Á‰ŒÁ‰ŒÁŠŽÂŒ‘đŒēő”Å’”Æ’•Ä‹•Æ“–ÅŒšÊ˜Ê›§Ð¦¬Ó«µØ´ºÛ¹ÓÓÓÚÚÚÛÛÛÜÛÔÜÜÜÝÜÕÝÝÝÞÞÞßßßèèèëëëòòòóùóôùô÷û÷øûøÿÿÿ=kX…���tRNS�@æØf���bKGD:N Äú���¾IDAT8Ëí“Y‚ …Ô,±½¬ÌÛB«%RjËÿÿc¡/EÚ4Íôè÷÷p/ç0hZ…*C©ëf$Ddê„Ãf�Ì6rÞ<^Ã7Àö¨*ˆ‚#ç"eóÖÎö !p!DÂ1Á0ëu¶k> üUs:ØOà}„¬ŸÓ|Dûr»_7 Õ…Éã$IÙ%ë˱ëŽ<úfÓ 9­Ü&ÍlR}Ë ý¤Ó-d¯lIŸEúc¹,yÿê ¼ò�úzôq����IEND®B`‚IMAGE 709 ./arch/jewel/platround.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�˦;8 ��~IDATHKÝ”_OAÅçû?"©¤u]»¥"mÈ Ôl\ÜJmÑ--‹hŒ_áø›Û­/Ýx3ææÎìNçœ{Ë\ßy_Ã:.¶=pëœ5칎‡ö´æ¼æö\{ós÷_liSeUôTB= PUc ð©¾á?õ\‘îIu¤/:V¢P !êš-w€'zx€eºÁÏÕS_gFöX+ "ÝêJPŒÝš¡ìÙ€³)*VLíj,aMõ‰è]Ö””.Id)A Á@2“?�Ò1’„}f'xF–TàŸÇöàÄ®`m=foë�-åb‚*ð3 Ÿ!é¬cóè-ó–ö)iY^ò%¹f–À)ï½Åð¿%¤Y@PQ` Ò¿5ÏLÇÉÓ3Ëßt¤­E‚²| —yë&úÁôM0ÿvÃ~Åê[;$~·HA+8gõãsÅ>fÿÍ ^[J¾¤Ct´QY  ¢'D#q’·n6‰ŠšQ¶YRªá  ªt·gÙ¦V<ogy_a{Tÿks6*"(s¡šW¹“ÏÀ¾böºÞArhÝè@>¢Áâlre í¼ßmÀ{XŠÇ½e§m’,¸Gjj p9ֽƚ¼·Xc›ƒÖTk*¹B‚ ÓÐ5xS/õÂI9éš*oG<—–¸Ðu+cDÙš¨ˆyŽspJ3ò/¹¥ ìÙð;ãr dþ_HlÈB³Unצ` gØ”1òvËLþ¢ jG¡[M�Å.¯N´ˆµnà1Ï‘vÜÝXCÛ(ñ£œñqýÊZÃ"~¿/Ûv5…æþ[\s%0 Í÷/üÍ ÅfÎ æÖ����IEND®B`‚IMAGE 319 ./arch/misc/platter1_bro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE�� ���¬q¾£Y¿¥^¿¦b¿¨hÀªo½œDît¸–;À«q¿¨j­sův¿¤\Ä®u¿©l¿¦d¿©n¿§f¿¥`¿£Z@Ÿm\���tRNS�@æØf���¨IDATx^íÒIà DQW3{Îxÿ£¦ ´-bE9@ò·¯HMwêö>hÚ;o€5]FïÛ fõn—ÍïW‡7ŸDPËîhг@·oÈèÆúúËÙ³ÚšO vyê€.8{ø:ƒÞ×]#¡FŸñ<ô!€ 2%uta=�u@½WB)¿O]MËÆÅ5ä‰a4*ù|. Rñå?ü\/٠ѯô&É����IEND®B`‚IMAGE 319 ./arch/misc/platter1_cop.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE�� ���ö‘2ï|!ñ€$ñƒ'óˆ*öŽ.åkø”4Øbö0ôŠ+÷“3ø—7ï$ø–6õ‹,ò…(õ-ó†(ñ‚&ï}#™%Ÿ½���tRNS�@æØf���¨IDATx^íÒIà DQW3{Îxÿ£¦ ´-bE9@ò·¯HMwêö>hÚ;o€5]FïÛ fõn—ÍïW‡7ŸDPËîhг@·oÈèÆúúËÙ³ÚšO vyê€.8{ø:ƒÞ×]#¡FŸñ<ô!€ 2%uta=�u@½WB)¿O]MËÆÅ5ä‰a4*ù|. Rñå?ü\/٠ѯô&É����IEND®B`‚IMAGE 336 ./arch/misc/platter1_gol.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���QPLTE������ÿÒÿØ#ÿÞ-ÿèSÿá;ÿçLÿß3ÿà9ÿÝ'ÿá?ÿâGÿçHÿçKñÁ�ÿèOÿÞ)ÿíWÿíXÿí[ÿÝ%ÿà7ÿß1ÿÝ#ÿà5ÿâD…¡e���tRNS�@æØf���­IDATx^íÒGÂ0�DQÆ5½‡vÿƒ2î â�ð·o¶ìË©È}Ð%wÞ�ëRj[S'ØÖE{ëºgëüú¨ðæz²ˆÕÎo G'ŒL)ÐÕŒƒ;dt©Œ½aï^UÌð"s³§}â RÅ× ô1èBbô û=èCr×vÒ:y0ØWHCBÈŸ/{Y”ÇÎKðÉhTòù¹@HÅ—ÿðs½�š ·u® ����IEND®B`‚IMAGE 290 ./arch/misc/platter1_iro.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÛIDATHÇí”K @9‹îøˆ¶ì½ÿpp>3´šèFÓ¼òž Uwõê üq@%É›Ü'Ì3BŽ;„ ºÔnÀµÊ!]�?$&ú¬âšî“ë]X�à*ê.Ùš˜èM\ªn@ σDÝÂ:&†�ê$:F(wa÷[ x!“Nö±�ýw`Äã�ê+\š*r¾À¼’‰BgœÈ›Û¨(¡ã*ׇ9ð|l•{M¢? Éz>‰ôH0…6ºÈ»o¡½¬;õÅküÊ÷àü¨þbàÚIÛ i����IEND®B`‚IMAGE 301 ./arch/misc/platter1_plat.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���æIDATHÇí”A‚0 �ù9ìÔVî¾ÒÐ4 èŒ^t˜½8•]Ç6¥y4ŸÑœ?´KÍ›zx6°3•<ïp" #…NNBÛ*“—�È„¡OËÐ;õ †N‚Kt@Ð*éà„¡g±Ûô”¸~Kº‡uJˆ�ë,zELgŸ‡:@ÿ¡’Y§�ê® ä­ãߎŠ< ƒ@­Mò¸‚«“8XÖU�¨ÓiÓ~kVµ^ÌA(ÐsÀ[WêjÃ~“=‰|Xèy\’wRvB}q¿ò>8_ª¿x„4ë|2â§X����IEND®B`‚IMAGE 320 ./arch/misc/platter1_sil.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ùIDATH‰íÔI‚0ÐÜÿYz4,Ná]ÚN: ™œ ,¨¿"ò>’ö`˲o«.`æËºyÌ$_“à)‹G8C š¤$à“æwu˜ bË8*2|€ôÉ 4ŽáàUd8n²Ã%^Cå*2|†;Ç Dg†W8N®`æÖQ¤Y Å˸À¾;ˆWÿ“ÎÂyêì³e⪠„}Z@üŠawúªÇñA/lÈ£U¡x«W›æ;æ4ó`ˆ ñ>°Sòh'Š7©öyæ,XP˜Ìûüò,ø§ÑÇÜ£Nã_¾¿f+XCÁ0TgÅìÆ;����IEND®B`‚IMAGE 283 ./arch/misc/platter1_tin.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÔIDATHÇí”»à Eó/| ÌýöÛ›‡!i¥fiÝÍâØlÏí»l·à s>”Åy‘µf‚óAEJ|Æ""رÊž¦h¸‡ë ¼�šb``a©Zp[ ¼¦âŠp CŠAPpH ·°G‚T~‚g–¾:Þ;ˆäsA¢D(‚#b­æ V´VQ^ªúÀ‘}`+Üã¢ýI¬×ȳЀ~OFõÙ,ôÓ8¸¡o¦ñ’ÿàþTQðà6(–™µ±����IEND®B`‚IMAGE 249 ./arch/jewel/plt_coin.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���²IDATHÇÕ•Áà i[5¸%jP©63ØÁ!H&ÉÜÇ­d¸CAšÂÏ(š�°ñ(6|€Sñq´È ÈåG÷d Þ à `à™€Õ bF$Ìò[ÀœˆZ~¤;‘ˆÑ Ù•Nß-Tu {©¢ù + îoŸH#Ưý­dôß‚[õ‹O�ø· F’1ðø éÌ^2 @3®ÍtqæÌjën©ï/×'Œß¥L ”L‚����IEND®B`‚IMAGE 188 ./arch/spell/MagicWall/smover/pmarrow.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��Ð�����ÿ¢���tRNS�@æØf���aIDATx^̱ À0Ñ„\3ÆÏ–wÈo‘#M\ùª«»ú>í­Q«1ÝgÞ5côÿ4—„”LÈÄ5È™@BÃe%C¢ÇˆÇ4R´d2Ð`Äz"œô|w„(Ã0Ê����IEND®B`‚IMAGE 186 ./arch/spell/MagicWall/smover/pmarrow.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ø�����ÿùðró���tRNS�@æØf���_IDATx^̱€0 Á—F(¤�‚/ÃãèGt£wäÈmt8ÌÆŽÈ ×½0ß…a‚ýÊ… Sðò·6€F³\£Aš6^=²z˜Úh” ½ñêÑ, GO‡“>ÄB Š-x����IEND®B`‚IMAGE 185 ./arch/spell/MagicWall/smover/pmarrow.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��(�����ÿR3q¶���tRNS�@æØf���^IDATx^Ì¡1 Ñ•ÆxŒ\@À/CM¤ž9ft‹Z^ucÌûƒ[?\Å…è,C2Fö4ÀØàÑêô¨¤0²Ã8£¨¼ñh ñ`“}F«áŒJpFßoú Ú³ª‡����IEND®B`‚IMAGE 179 ./arch/spell/MagicWall/smover/pmarrow.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��������ÿ®aM���tRNS�@æØf���XIDATx^Ì1 1 Ñqd�VP|!q|\ð•ü«MµS½jøXœY7öW‰;q!¤c¬6êÝË£’Ò›ÕaÀ :Þx”HÔ`õ`7̨Jo<úM|é·ô bs[Q›����IEND®B`‚IMAGE 184 ./arch/spell/MagicWall/smover/pmarrow.115 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�� �����ÿéÊÕ#���tRNS�@æØf���]IDATx^Ì1ÃP Ñ•F“Z0Î,D" ãCäÌè:WÞj«ÇËbžSûüp]Ï™ÀÝ—'òŒ<m椡–Ê“Ç3fàÂŒ¡@Z¨ÈC/ µ@eÆÐ -ôÝxÓ c ²%ÑA ����IEND®B`‚IMAGE 648 ./arch/spell/MagicWall/smover/pmarrow.121 ‰PNG  ��� IHDR��� ��� ���szzô��OIDATxÚí•?Ha‡ M!”.q(‚4¥ U°ƒÝ’%[¥ u„à J‹K*š!tÐÄAÈ"¸*:5º—,uqìP»T(•Bà®Ü ¹´Mz1YòÀÛ|Ã}¿ï¿† rÃÜÑ€x‚I¬cQ} nuW¥»¿¤ò7IÖor&Ҙņ4ùžzˆœ§ïw"©“Âgè`Í·x$}¹¢ÓIµ˜÷g‚åˆÈ¨Õ–ðTzóCzùÙ¦>†àmHîŒZdp5êFJ`Uzþ‘z†Ó¸@gñ²5boàPg¬ý7Õ «eibÚÄ<:’w"}}«6Ü íõõâx€þr°':dgñwä'ëJkùP‡¯Õ†·5¼hø{B Œëß<ôXªï¢ÇÀzp+ðá4^ãR í–Áöf¸@7øø"î‡FœÅåö�n]„À¿“¶öq V‡¥WÔûhxcXÅL m…N>PoCXmj/ít8ê’"6B!Ì…fa§ôG8Q»'1„÷›8nÿc’{Œ¯D›‰0 xŠ)„è!öB#Lá1îØr,S—ÔbK2"‡°u= …ˆY]Á,^‹#j÷Ä= ±þˆ^è¯xi«'vcö BLý”8¢„hÍ„;.#„ƒUíy›‰ ïÙÆÌaFíä1¡Žˆ~:¬â>¡¶ìÚnv÷ôF¿'Æp þÛÁfô/„á?`* "†»2ú®ê5<Ç„úˆ=`ö”kV (žr_Íé?ù ÐVí½Ž?Ï(����IEND®B`‚IMAGE 624 ./arch/spell/MagicWall/smover/pmarrow.122 ‰PNG  ��� IHDR��� ��� ���szzô��7IDATxÚí•1K[Q†_—ˆê ƒ‹‡lUˆƒn× ¤è¨‚ P •P3צK!t‰ÿ ¡¥ Y¤H;eì\{?_8/är¹˜äfɇ\¹o¾óå;2dHŸÀX¦S´Iˈ”ÖZ¤múžmö³st…~§ŸÜ7®Í(ÄzL†®Ò*½’yàm°kÀŸQˆ¶Ž£+Zwè!mÑàÕ€¿—�’”ØýÊ�®ÓªD±ÛFJÓ­�³÷À‡7�–¨ð÷ ô¹äBصŽã€F&­µB ÀÈ®ïTjÒ*¶@X†¶é: T w쉈,ÐyzGOiHróF 0/°qÖB/[q>"¯ÆL!7ô 8þ¡ó¶K³¡^Ð\ ä€5]_•@R©`ÑÌ�vzÙ½üÉÀ³sš}oCÚtOyEç‘2ðêðÇ�Û m~ôDÉÓ <Â2nõjê9Äk~~ l˜  ú1ðlœ~¡)…xŠ]Å («qf¨°QÀßýÒªB°~ê ±¤9¡jtÂé?ê…þïã:Žs5fniNBô*ÄÍáY¬àæÄì½&&zÂöiÝ…ð=<O¢!ÖtÛÆ´It¨jl'nzbTÿŽ#zK³ÔÓØNCô+„°D`Xí‚c[wÇ2HL!:¸»ˆA„¨C K71ýÍÀåsŠØÐØÖÝq¢[ôަºÀtgt Loä^Èi§Ú% “ 6����IEND®B`‚IMAGE 643 ./arch/spell/MagicWall/smover/pmarrow.123 ‰PNG  ��� IHDR��� ��� ���szzô��JIDATxÚ핱K[QÆ?ÒŠ¤‚ˆ H1Œ‚Y4‹.:•œ„":!¨ 2S;8ù„7ô/héÐBÁfŠC†Ž•Bé{~p?èã$>óâ’~ÞåqÎǽ瞋®ºê*f=Ã#iŠ ’ÏdPR± <Yfl’uÈDl;1JfÉWr Ì|N›4‘%ƒh³²ä ÙgÁß,! è' d¢©ãxŠE`ø€±AJd¸^~±8¤à¹�ü íÄò)‘3‘ “]_¾»¥PÁ5R‡ôÏ„ßïŽeÜC)Å Ybñ¿À»Ÿ@²¦õ4“WIÞ<"Y“kˆ£EMqrL`ôÈ)0ñž)ö–4IŸ¾{�ÿLëa jÌ$ZÐ99^¿þx¡biÒ %c¢j¾óäÌí„_{B9KЪ äˆg’g™tˬÕÉYëQ\SFÑ¢¶µ]çJ(q\—¡µ²zG¾M²éž&>îüŸ<(’ùÐ÷$à߸ÿ´ê ©¤9&rðƒøc¡‚eR3¦&µuRUcæuEVˆhâù5c&Tì)9!Ã02·£êæ‡UTÙžPò^ÀÿÄ8w· ¤Ý°B‘ Ý&^ÉÄ ©‘y5¦UFmÝ G™5ó· 9¡‰yJñ˜ÌÍjXí¹±Í·Cê hb¢àÞ=½qšÐµ!KˆUº¢š«ÐÄ”¼( yXibÏ=`|E;$ûväÜ+Š+’z$8$ã:mâ\L ¢nwTäÐùØV����IEND®B`‚IMAGE 608 ./arch/spell/MagicWall/smover/pmarrow.124 ‰PNG  ��� IHDR��� ��� ���szzô��'IDATxÚíÕ±kaÇñ‡J-9“IíC°Su*ˆK]²… f ÂmBá@ˆ¤ààP‡Y\tíÚÍòÄÅ)¸dHÉdÿ€ rýBžáá™Äë™Å|<îÐ{÷òÞ«¬²Ê*)ç-^$eä0B ©'£ÇSaНˆ1Js&vPÅôEJ5‘à“-‘ÃM5tñ[Õ±Gj‰)ÊH”5=6ÐÆš`ê2`Ul(ñ<r”t!¢ƒ[x𶬎?Ⱥß÷qй@t°CÌp,òú‡^ß`uŒ`J<e9ï 1%¶0À\)¡ˆ;œã¶Qáæˆ¯1Oœãzèf¡ÏµžÎDU×Ä™#7¸�7}øÂ öÜÍ»80çŸlʱ辗E]Xº0«y ¼Ó›ìsóÇfŠ›œGn°ÐðÉhÌ•Ʀĉ,O‰ Ç]sí;ú(Âi¢+šJÄ=°lž\+q%BLš…¡IR⛬k¼Öré+:A²`‰÷Eîcá©Ì lr~&Ä”ðEÖù( D¡ÄG \šñ+ q†k(µë~·[4(~aÚ›h`€ "Š˜}¢M %üÛ&º¸Òsˆµe”ðe*|#M %.C³0}*˜¡ŒT¢ 󼢺O˜s‡H1úŠšÍê3ážþuzü¶½ÿü&çÐ,½„„¸CðR%.PÄÒÓÂ*a¡ü÷‚Öx†ƒyŽ����IEND®B`‚IMAGE 623 ./arch/spell/MagicWall/smover/pmarrow.125 ‰PNG  ��� IHDR��� ��� ���szzô��6IDATxÚ핱kSQÆ?jA£„N}¶J—(ÒÍ–à:eé"BÀ¡P(”€ƒ`‡VhÑ@ß$]º´@§ŠCòdéT¢¡Î.N.<Ã7\žPyi²äƒ‡—îù޹瞫©¦šê–u_R"èÀžÆ ‚ã{Ø–îþ!¾…:·Y‰§P…K8…i~œ}r×l"Òˆõ6 †o�Ÿ¾ÁJl‚JHåÔŒãhBWZ8 ¾JIxŠJ°y©ðz°,Å$O:”6Y‚MYÖ‰{"³Š 'Û‚>ìðáY¼.i.Hx�Õ๠üo°éJ,©2jVà¥òOb ÖÂÅáY°åDJ™X‚¶{â Ê +8‚†T›e øœZü#‚çÈûþHiÑnÎ*(«ÇÁâ³ÐJˆ)o›xÇÏ÷là¤MØ�G4£ö\.›HJЇõ”‰ýÔó6´MÓ[ùtIJ†5QƒÝ ÙC*Ð%¾–T"‚ï}:ˆÚ�å01¨³Ø¹jPæ·—ºQ1ÉÕõ°RNÉ1T‚¯}=À„+áž´ MY9M|ÿJ‚†PÊDº°ïý/øˆÎAÏS#0ñ<‘~ýfñy¥EO8Æ>¢V ± ~x;þ7‘BLL홑›p%Òছmй¼î‰c8‡ÝÔœXƒ~¶«7ÿé¨C úÐòØ.Á–†Tž‰é»ƒ Ì 8NV :”5  ¸†â¤LÁЬq›¸2«Rÿ�t⟥rS����IEND®B`‚IMAGE 168 ./arch/spell/MagicWall/smover/pmarrow.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��Ð�����ÿ¢���tRNS�@æØf���MIDATÓc` À©0FLÈAÆP€ 94¨ÂP!'¨Tȃ *äÁJà€ Áp)¸b¸v¸p+–¡ŠîÔT ï�.ÏÁçüìÎ����IEND®B`‚IMAGE 169 ./arch/spell/MagicWall/smover/pmarrow.132 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ø�����ÿùðró���tRNS�@æØf���NIDATÓc` À®0†L(Æà€ 9(°ÂP!‡¨CTȉ*äÄ�ò`‚ Áp)¸b¸v„p+`–ÂwÜ©®Þ! �»q)A< 2����IEND®B`‚IMAGE 169 ./arch/spell/MagicWall/smover/pmarrow.133 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��(�����ÿR3q¶���tRNS�@æØf���NIDATÓc` À®0†LȃÆ`‚ %p°ÂP!¨ƒTÈ¡*äÐ�rb€ Áp)„b¸v˜p+à–ÂwÜ©®Þ! �u´åЃœ_����IEND®B`‚IMAGE 168 ./arch/spell/MagicWall/smover/pmarrow.134 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��������ÿ®aM���tRNS�@æØf���MIDATÓc` À®0†LȉÆ€©ò`b…1 B P! "ä �1ÀB P!.S ×7nÜR¸3àƒ;ÕÃ;„��‹ Qˆ/>"����IEND®B`‚IMAGE 169 ./arch/spell/MagicWall/smover/pmarrow.135 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�� �����ÿéÊÕ#���tRNS�@æØf���NIDATÓc` À®0†LÈ¡Æh€ 91´ÂP!&¨T(*”ÀrP€ Áp)¸b¸v¸p+à–ÂpX�ºãˆ�Ï©f6u¿����IEND®B`‚IMAGE 632 ./arch/spell/MagicWall/smover/pmarrow.141 ‰PNG  ��� IHDR��� ��� ���szzô��?IDATxÚí•1hSQ†[Sâ’"¨Š-èÐní’Í"» СÅ¥–6Cq°J!K!kÁÉdp—.»d(è`]Ä"îõƒw$ï¥RSúòºä‡/çò–?çÞÿÜ«shE÷šRÂÂüÖé3æÅï’&6×>Ü|º‡NÖ¼£aؼ(sÓíül$lî/Ã<”¥–“n.'dîïC°-¹5bP’Ô†™>˜ý’–ï`VÃl‹Ú†Ì*ª¤c7FÍ?†º$äFõoU¡C±m»uŽùiòy«¯¥‡âžóÔ» ‡­>‚98–Üséë‘F(Ǹ­.óìÂKLßS© áy„JœioÃh§s· OYÁUÔ4@.Ž9¯BAÑ9æ§äážôâ'‹gXN^2è¨qæl{´s=À­[^ޤ'Ÿl"zÕ¸FÍ…ºõó°­,p‹Qs·G­@“u†š•”‚&ä{þö¤.Áß„—a-<jp ]ÝWl}¥ëqjœzÔLÂ!lKËÙõ£‘_‡fÔÜ_²S­[¦R:ƒÒV7ìaiC ªÁ%ÜGäj|Ï„ÌSð žI_ÈTöΩHCÃn¸–Íù´H;A¶Ó9ærUê„}ßUÅ !«e¨À5K{*”:wêhŠêƒr6çUhpæl»u.Ó]éÚoÛɾ)oiß·3ß±Î1÷o‰Ó7Ö% ”ÕU(ŠÎÍÜÃŒ(aÍ@ÆÌWtÑ@ ôýiÍí½Ñà7ì����IEND®B`‚IMAGE 606 ./arch/spell/MagicWall/smover/pmarrow.142 ‰PNG  ��� IHDR��� ��� ���szzô��%IDATxÚí•1K[a†ß—­ƒºâàV…t0ÛÍ?Rt ¬P0P,*µ„‚è$®K; …ÐåúŠ–‚Ü¥±SÆÎ¶÷ëðæ#XÓx¯K^x¸ä$ä=ß9ß9Wh NŒe,Ìïþàù�va:cóGNú nSzû•Ø)32×±ôí½/[,[™™[Ù}µ¡y[æ(W’TÏÐÜØ³«RIwþ¨¤lîÃ(„°ßa IKPLÉܽ†y8‡ر„Æu©ma$ ó6”¥8ÐÕj¦Qöy(ëJ¹º-JKjÜtÏÏÁ;y<F¬ aZð\z÷DÒ››¼í£˜­x§Ý†pÆw5¯:³AéÿÖ+.9jÂN"6fæy¸§Þz s}¿Xl·/{§Ýð>Wᬷ¹³S-›ˆkëÄnû¦÷‡ `Îãq™¬ç5ïwÏ€Äâ¼’~}"x�“ý$°koµ˜Ü*LyfûÝ=1w‡–À‚s–�±ëi¦á¶ }±Ûèûö»:´z´ä«f:¯>TL,“ºíö¥Ë~2çŒZ²çÐ/©‚ô”ÊiOªbI…ÐKÆæ|Lô¼K1à>ÑTþB`]ƒ*±Û¶d"À(hÙ…ËÉN˜Ç%ž÷ °¨T‚9kÍQe¿8yŒ9¢ЊRÔ$TíÂíYÙ3zÊ@y{®[Ù;fîà ÊX˜0ó5Ý¢ j¨¡þ¡¿’¸Ú%ЇvÞ����IEND®B`‚IMAGE 632 ./arch/spell/MagicWall/smover/pmarrow.143 ‰PNG  ��� IHDR��� ��� ���szzô��?IDATxÚ핱KqDZ¥(©E)C§F¡YR—ºèT,8uJ1ƒ(„Z”"d .‰vÈä 7úXZ(Ø,Bq¸¡cKAz×Ïñ{p¿‡m<î\ò…O~¹;Žïû½÷~ï$ÖáD™‘,¥æŸa¶aú†Ìý¢ÈâþŸA>#ó¢/rôó8"—ðd?#ó{"çàU0_‘P42J»÷(æùXNß<Vþ0?³"¹ß¬å ÍýY(@6D¶¾D>EsÿÜ‚:Tá”r¼e­™çƒm~ —†ù3Ì>²îAàaÌ{Tv®æó0yÅ{ôÂÀ7Öjâ£f×\Ó¾wµ¹ÿš"Ÿ¾ˆL¶™sšÖ¼1| wašàBIä}Ð](\+í:á*³*,ümîýd­@KïH¨<¿îlïÀJä¨Ú §;× cµ›ÒƒNÔ¼Nd÷sÔBiÚ[‘{·u]¹x!òôS½°m¾j—Ž=á  µˆY3r]‚C“=à~,i�sòŸši8Ó¯š£³=HÿFL·»0îÜ;Ôûvã-iY¥å­a²lf;ã5˜pFÃÚñ¥HP5·5;’PeíÐ0C†sÎQ³ÌWa7Ð}²2J¾rQ‡ÄÊéZÕ!Ó…¬™†£æ–¹~#Þ·KЯ$ôœošfSóqÌGó@A©\(KŠš‚9m¸“vv˜½†1I[V·×5í®šûp C’±Ê0¦æërƒ’¾úêëúiäЉ„¤€����IEND®B`‚IMAGE 590 ./arch/spell/MagicWall/smover/pmarrow.144 ‰PNG  ��� IHDR��� ��� ���szzô��IDATxÚíÕ±kaÆñ-”^ˆi&!´S ÁNÕ© Yš%[iÀ¬@¸M(B$…¥¹¡C]»ºJþ€¸8— ì!Âýú=ÞW¸×H[¹ž.>ðñÕsxÎ÷Þ÷U¤Žk«ˆ¹¦Ž>^â…Å”›ø¸Efåú^äþoÎæTþê—)×&N0 ÷¸ÖA#åò7*òú FÑ×b²‰Ã”§ý‡O!¦f#”Ò{æŒF7pŒÌË5‡\Š<ûÆÅ.ž¤T®O±Ž Ú *0zbÒø Žgî–wñWÈS¼-n^à•ä[Õî.¸pÝ”GÑç25ºÊKŸ‘tÚÙjN´‚«éåúYôD‚¨|€\’ò&:â$l›iG¿ÀÇÐŽã_^Å~’ãõäñjŒÛå- '52C®Ý³=ÅN8ÖÌjG}S<5.°5Ë œÃ7,º7QàÀ}æáðñ èÊ"ßí ìâŸRD·8C›Ø¡z /V”åº?QÞâZ“ñQq}x2C2±Ãä#ÛÎîs]E±­®™…kgÁdm$J tÑÀ òf«Å£eÜ™r'-œ"Ybg{ã}^E žyæL»åûb´$…ä°�Vãrt™¼·|¢„Ô²…]ôÑFËürÊM>"‹ÔãÙñGÚrE+˜kJÈÚò:–Yf™eþ’ßqÖx©–Ù6����IEND®B`‚IMAGE 603 ./arch/spell/MagicWall/smover/pmarrow.145 ‰PNG  ��� IHDR��� ��� ���szzô��"IDATxÚí•1K[Q†_j ^%8™ªÅ%ЏU ]‚S–,r¡ 8…@ tÔÅA3„VðNÅÅE@§ŠCò²8IZˆ s—N.îé ç…ä^JÚpon–<ðpI–÷;ç;ç;ˆÁ!½—›H…ßÑ×ôœnŒ'ÜR¥4›v¸p3�ÎÆnò4C›@á@#¥p³C]êÓSú@ž¾aøü¸aØýN÷i=¶¨O‹#Ÿý <ýb`| ÙÄõíóˆ)µg�Mú"¹mçÊÿn^éëÑÏôÙž 4;pêy5¼K ´Ch‹:t ÀíÒZR§ý‚#á]ºM?ê¿)„Y§õƒ{Úû 6|Þ €]‰;d\ºîyÐÑÊû0Ó4gçAÀpÓøÅ»¸ΧåHØQäw…¶d–l18 †à^áÂdèi$Ì‚V¯çfZÁoéÂ8ô–®SÀ9­®f;Çkºj„¶½¥ðßT�JøO6醞Ô3=,yº¥°’îù„Þ€ztÑe[Ø—kµÕÁdõmèañíx­iÈ`Ž sbI¨È`O…-Ò+Ĥ¨¢š*ªkï¹§ÓÎ6­|a.é1bÓ›í5 ™Ž®ÚulÏuBÌ—T0VtÏ=z ªž/BØ+Üö—¿µ“#cU§ýN=¿äÊn\�Ÿh)à€¨çpå 7´Mg2EšSø!ÆÈ &L˜ðþ�þšâŸí·~»����IEND®B`‚IMAGE 190 ./arch/spell/MagicWall/smover/pmarrow.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE��Ð�����ÿ¢���tRNS�@æØf���cIDATxÚÍÎA � Á¤ÿ´§aÁ“=Uºàè—ñaÌdÝ7«EÏMzÏ>“ Üs’Ü¡€� vP@�E,ø`�PQ‹. ðë!hq¹Ë °®Á³�Ä"�³åàT����IEND®B`‚IMAGE 191 ./arch/spell/MagicWall/smover/pmarrow.152 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ø��ÿ��� ÷›���tRNS�@æØf���dIDATWÌ¡Ã0 @Á“‘(4È z™ÌYÇSˆ…´}tüÓ9眃§ˆ—(,™&fTÔÂLra±1DÙ°3x*npñ‹ f3ÌÌžQ±{4Ãn†§®fXÍ0×{Æ~ϯ¾›á[X ¨ñ����IEND®B`‚IMAGE 191 ./arch/spell/MagicWall/smover/pmarrow.153 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��(��ÿ���¡4˜Ê���tRNS�@æØf���dIDAT•Ì¡Ä0 �Áµ‘ tfRˆ`ÊR=®òƒBò‡ÿ´ÖZk¡‚è8“vãÒÒ!ÂÄhÙr¢QèI+¨–TÄÆ™í̽¡GÔFî Õ½pÞ®ãÁ˜oôzã«ýƒ£iþ_����IEND®B`‚IMAGE 187 ./arch/spell/MagicWall/smover/pmarrow.154 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE�����ÿ���]fï1���tRNS�@æØf���`IDATxÚÍÐ!� CQ¶ûxb©˜£fIûC~8¿¤C�ïT¹¯F¨!}¤Í�Ú;ªa1 †Å0` Ò‹¢‰,‚‹`0v ¨$ ‚p–�Â�‘°ï�„=ÿå×W�¹cDÇP����IEND®B`‚IMAGE 190 ./arch/spell/MagicWall/smover/pmarrow.155 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE�� ��ÿ���Í<_���tRNS�@æØf���cIDATxÚÍA � Üÿ´ „"%w²± ®_jK`˜¹'ëŒÄôä̬A� ˆƒ<9t´E´E`aþ¤XHŽ…`¡ýõN0¨€X` �Í‰Ê p¸À‰ä üWßU�½8ðR����IEND®B`‚IMAGE 636 ./arch/spell/MagicWall/smover/pmarrow.161 ‰PNG  ��� IHDR��� ��� ���szzô��CIDATxÚí•1hSQ†S(â’"H([¨C³%K6K¡Ø­( Q\b©J‡ö ÅAÈRèZAp2Ü¥KÁA— ¬‹Q„À{~pÏpyH‰ôåuÉ'¼áž?çÜs®.¡9i:r¨ ©kVªÿ¾`àÞyÚ&&àÖ¥¨F¼'i›ØƒŒLi›Ø–Jeºw7¤^(E X„ëiš(CŸö¯IáÉ_Bx˜†‰ ¹¯¨5ÀX¸OlK÷¥â¯¤MŒAýSá¤:„ÇnD7ñ臿¶D](LP‰$ÛÑ€žôí>'Áo¨Âª%ÌÈäU¢ähAÉ+ù2 Vˆï‰»pù˜‰ý¤.f>ÃÄÝ„"FžÂ‘¬ÄIè'5KÒÎO{pAÏ‹°ûVƒ ‰=Á!O>qØ™ëkø‚x[àWÂÚ±ÑN|YýïV€.d9hŠ$9bZü>Ž™Xª<Ù²ZôîNÍè4 ¦ªÈx‡Þ°ØŠX¶é(xß¶ !dg¬‹§|PY׳æ¡vÍ7a• ¾QOnm÷B{ÀöàfaNƒiêôõœDÏàd=9¶å‹=aË*€5è»LÛÞ:X›p z3$ œ W û~fÓ±�%蹩Ž%+ëªCÅ+„×Ϭ›FÔí‰4ä4–ÀÓ{ëqýcÚaw¢k°y%¬mûNÒ·f¢îNèªPÐ4Ç V‰:lzÓ1t5ÍDʺ"k¤‘F¢þÇïí½3 ºu����IEND®B`‚IMAGE 608 ./arch/spell/MagicWall/smover/pmarrow.162 ‰PNG  ��� IHDR��� ��� ���szzô��'IDATxÚí•¿K[Q†Ÿš.…ÖA—BܪfKþƒBŠN¡‚ EéPqÐ ÒLŵºÔI(„.7ÿA‘BKA²”"vÊØÙöÞ¾‡|p“JÚä^—¼ðp¸—Ë=ï9ß/Т87v¸-ˆC1 ÷~¤mbR\À«¯ÀÏŠtM¼!…ðíð%-5ѾfÓ2QLSÚ& pç-ˆ¶DIëXZ&&ÅDE1/¾‹}ˆ»âQ’&ÆD êÂMÙúVlŠ+±,^&e¢Æ ÝÍäE# UxðZ«U¸AfbyØá؃×O z&ŽÄ©8%'<Eq5̜ȉ–Xê=eXÖz)Þ‹ºŽM—˜ÃªŽÇbûšë¾/ÆÍÄ&KÌ §DÕ1ÿ·mסxd?Î]câR”¼÷ûÞó†›ÿ:ÀæD~}€ð…h»Äº÷ó²8é Á”õ‰ª÷Ý…ãœ>UÍ®á³bÎ \÷2ÿÔÛl^l+Ó™¢ök`ܧŒ'3!bYuTz«!hÙìhؽ b‘>u OÝI²Þf+¢Ý›*Qõ‰8oXëÌ*¢·óþµ ùO}!ô*A9kÉõ ׬l³À6+0€VE¢sÎD×Md\bZul[ŸØÕxv <zi‹¼vÆÝ„ ‡åDÓ¨[ŸÈ1dM‹ç3Q섃cKÌ’˜#!eÅ™ˆÌDÛ±WGòÚ1Ó¢À-)ËH#” þK±Ú%ºÕ9â����IEND®B`‚IMAGE 629 ./arch/spell/MagicWall/smover/pmarrow.163 ‰PNG  ��� IHDR��� ��� ���szzô��<IDATxÚí•¿kSQ†_ÒŠT(AJ+"i:8ÙÌR³ØE'±É¡PÄ B@¸T¡DDÈT\’Ö!“@ p¡þŠƒ¡f)X(îà¨Å\8ßp{P ¹Þë’ á;o¾óýP -Á± ¹kvà ìçmbޤ{¯¤xá?™¸ùF: 1BGz÷LZˆó2Ñ„LñC©_“Ž1pé$k0žú×óxŽe©ð“³"ÅEýF›(P€Û_¹üô •¼L`OšhÛÛ¤ý)ç!Ô¡ãp>KMð_ƒ;І]L½ç¼›…‰º4ö…³¨?*ž…ÛÂD™˜mI?x ÖÿbbÆ“5‘¶EKГž.CdFº0 7<mhœmÑã8ͰZ… qÁE;[Pã‚ïIVuÏTMLÌaŸã%<QB~p˜ö ó*ɉ ajb^ºõC:¹O€Gìœg ]%d-Zò~&ØÔŠ3ð­JЮøðÊ^ð-ïs�½³ó4t[T;ƒ˜°tUe²é·ŽL « ˆüîpS˜ƒÐmQÁ",i@½†Ë ÏDÇû®lY(š÷¶Û¶;ÖClVƒô–úS¿ê]صš0Ñ¢Ì VMØs»CË^cˆa`ê:a‚š 0­;è¹a¥ºœ ©W/D˜°b‹7`Êž£ê \‹®BIÿX3ðäL žÃjbV`^é|€ØLDî9ÔHtGæÚ43i )}&Fi¤ õ ;äÐÍ{`����IEND®B`‚IMAGE 590 ./arch/spell/MagicWall/smover/pmarrow.164 ‰PNG  ��� IHDR��� ��� ���szzô��IDATxÚíÕ1K#Q†áà ²ݵ ˆVFd­6VB°Ù4vËb+2]@…)–u ›4¦Ý6]Dü¦I%i,«ø, Üë+s`˜›Áq’&<LÄûÍÌ™;#›¸SÇ{²¸À2:ã.±€xI•8yù#bO¢D M³C>ŽPJ¬<£ÄVA솛8y²"?‘\‰úØÆXæâÉ=ް†'É™ø‚–Èì9nࣂÌ8KÔ@lJÄìr,£‹JXÄLR%J¸Çw‰Ä¬³èÜâZ‘ÌÄg fï ÍËÐØ¯z¤„YŒæ“ûŠfÀ­ö)aÛHã×°¸EÉ9÷qP±Uxèéñ¯³wÉ4œsMÔã”ðQqþiV]FKØu tß{ôÑÁ\ÃRÐ ñœseJhaÑÓôoÇFJxý/b‹ø6XÀô¢3awá;·|ÀÄÃŨRèà}á<Y¬ÎñR"1^0˜D÷ Üp~[·íU4q†d±‰‘ÒÀ$¼zK ü³ùpŸ`ÇdÛF{¨…Ûùè9Aôj)G9Õ}BîQCKËIŒìs§ ÂP9%òÁLH ”ÑE¥ðÛ/9ô¸ˆ-Ý^µ„,¡ˆ+壀 >5i‚P‚;¡£òXC"™CVKô°“ðíH>ÇZ"&’9™fšiÌ|‡ÖxtûI����IEND®B`‚IMAGE 601 ./arch/spell/MagicWall/smover/pmarrow.165 ‰PNG  ��� IHDR��� ��� ���szzô�� IDATxÚíÕ1K[QÆñ‡V¨±ˆ“i­¸¨·*¡KpÊ’¥¡ƒ JÀ!`ÌlÀLââ¢ÀÉÒ!ùY2IZHÁÎ]:e äôç…¦‡V÷&Yò¹1Ü÷ɽç=Gj÷æPc¨u\`ÍQ‡˜Å иBœI¹)QãQ–Rß%WÖGb4u稠‹¶G".6aå²øˆ[\J_¿HoܰBÌâƒþ[=º‚ôã§ôü[Ü!ž &;4ÉèÑróþuÄ¢,Þ5:8EÕ¾øgžDœ¯£ˆ6æ$÷ Ôq„Rx„(ˆ5×Â,a-hðÔþîáÚ‡pi\Æ1+hIÕ=R>D/|vËg‘GtKzIs×àf'6ÿILÍöø«M؈æ¢nVUXÓ J¨›|â(¸Î¢eÇ\ÅÁ_á­…˜þ³&z\»jðÝ Â³ã^VƸ±� CÔ‘”•MÇið½sÔì�+àbÐ� 4¥OŸ­ÑR¸ Ùë¨ÈÊF´³ÚIJ?Àt†¬cCÖ5|£ÞNpsٚ蟎9¿Y;¶mw±‹2l;¼Žqüâ,õ]'Ѱ]CÛšÕ¬YZ*/ÍgÃGŽº­ èÀ¨Z(¡;;"½Ï~I. ûC,ø5¡;SÅVs%±ï7Bø'q…k4‘Áª†T3hÀaß? åq ›Žáס…H"­1ÕŒ&5©I ±~Z[âŸ@p]����IEND®B`‚IMAGE 165 ./arch/spell/MagicWall/smover/pmarrow.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��Ð�����ÿ¢���tRNS�@æØf���JIDATx^ŽÉ � ÁÄD»Ð®°íÜϸ|å5®µÿªÖG4 Š#€(vv{"öDŒ.PKÃZσ¨|š1P�Q ²Ÿºøž ¯C.ôš����IEND®B`‚IMAGE 166 ./arch/spell/MagicWall/smover/pmarrow.172 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��ø�����ÿùðró���tRNS�@æØf���KIDATx^ŽÁ �!ÄD»Ðޏ޴óûŒËW^“²kïÓ.|W, bÙdG„#ì ì öh¥ãzGU„B«  *åQö2?'^ 7'b…Í����IEND®B`‚IMAGE 166 ./arch/spell/MagicWall/smover/pmarrow.173 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��(�����ÿR3q¶���tRNS�@æØf���KIDATx^ŽÁ �!ÄD»Ðޏ޴óûŒËW^“!°kïÓ.|W b9ÈÙÑŽGØÔ Uçz¨…V @UÊ£ìe~-ü ÏGaR[����IEND®B`‚IMAGE 166 ./arch/spell/MagicWall/smover/pmarrow.174 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��������ÿ®aM���tRNS�@æØf���KIDATx^AÀ ¡‰‰þÂþdÞ˘¹Êi2Xâ¾ÚuDõ!¨ý"€Ús æ@ôDôD<‚-T:îBOxÔ3j,ß¹©}“'çéK����IEND®B`‚IMAGE 167 ./arch/spell/MagicWall/smover/pmarrow.175 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�� �����ÿéÊÕ#���tRNS�@æØf���LIDATx^ŽÁ �1×€tKŠ%ç3œp¯øFeWïã€à$à HÚØ˜1¢[A­8®wT|Šú£*åQz™ ´ §zLhW����IEND®B`‚IMAGE 644 ./arch/spell/MagicWall/smover/pmarrow.181 ‰PNG  ��� IHDR��� ��� ���szzô��KIDATxÚí•1hSQ…‚‚¸¤ƒŠ ´b uh¶fÉf)Ý„€dŠâb¥ÍPÚ7!K¡k ‚“éà.]ºdê .D÷zà?ðÞ Š^úºäƒ›ÜåÜÿÝÿÞ‹1cÆ$à Α§ô˜i%óÊî­oÀÕß�êôŒ<2 háþ5€ºD÷€é7{´JË8C*ª| ? |>åîì8’]¡%œuU.Ü-À?‘³­xôxþÀGÚ¦-H‹ö|Ï*÷ wÇ—ôˆæ¿Ò;�é,í÷ÞqìÒBê¶=çggå 4 /®ƒ_^qþP[ó€©&Ç--*1yÚÓžC• ‰ÑMÄpëˆÑà"ú˜}`‡~¢st ©ªÙrÑpmz-2¿JÑrdnƒ¶"}Ó�êß› )kyÛsWTå wÇC ¸O«ˆá_Ðåð¿«'^ HL�v»®¸M Ž…_æü[Ž"sK´K/"ä:pãT7mbV쨱Ûÿ‰Ÿ¡ÛCs5ÄÃÑ Ã“SÒ9_„ˆVnáî1=àïœæ'é€ÞMÒÖ9nÜs}ömz@KˆáwÓ‡‡´hßι[W·WÃ=÷¹¡ð}ÚM¸°Î*à?‘_š·GŽ ]¯þŠ›ŒT¾fGmæ§ÂGFA×+†ŽZÍÎíÚggå£:°ëÕmè’éÒ q·§gªiw»oÑåð’É \léaY†‡ìÐÜy…ô¤6¬ù² ™³'õćK¶ÌÛsJS„ÿ.‡í½u b����IEND®B`‚IMAGE 615 ./arch/spell/MagicWall/smover/pmarrow.182 ‰PNG  ��� IHDR��� ��� ���szzô��.IDATxÚí•¿KA†¿¨Í SØÖâº(˜B»½ÿ@¸ Õ‘‚’"ÁBCˆW…´Ñ&V‚p¤1ÿAáB@lBS]™:qÇæ-&S„¬›æ^xœývÞq¾c 4Pݵÿ¨—pã0Wú.sÏ -ØÔ÷Š• q™š”å3ë>ô “v‹šƒ¾ÌQöÀÌš=­4à“èÀ<$P¸ZbŒy–°~¦ ›ý<âóÏp[ÐÖ÷!+@›þØÝ©7Ï0 •=‚Y³7OÌþæù5CµˆÞ÷Çt‹Ð‡$x·ÊA´t`ÉìÎkS›2m*·*ÐSÎ#¹º'”Ûƒf§Ä9ÙJº° 0Ó–SuÛ°Ž}Qæ'</f3pm¨ë T7¯¾°¾ƒ3Ë©I¿ ŽœC_XŽÌpÔÇñ7hG¿ÛáÏ„6[U»)ç‘Ü}¸„8%ÛQ¼böÙÝû®I›[óv@l^0¼ Ç´ã×÷fœÌÿI‰ú|öÏœg ÖK™w¢]ã݈I:öžÌo¤-ßçnUÕ~PÇl4:•~ÁãBÌ¥¶2ô¹Z-VÔ EšK “¿*KeÞ…E›i¼¹vcAÁ­éØŠ4U…%带>ßVµäÈyW4³ñê'œ†ŒZí¶Ìc55Û•`b·lóX»Áå´â'\yæU¸ð·šÛñ³]ãµDMéJ.–R5 gâÆæ×" Ú%NHÒ{����IEND®B`‚IMAGE 645 ./arch/spell/MagicWall/smover/pmarrow.183 ‰PNG  ��� IHDR��� ��� ���szzô��LIDATxÚí•ÏKTQÇŽ â!Dã¢U£ÐÛŒ³ÑM®"ÁU A$Á@ ÈD³Üh¶˜•€ ÌBÿ£E‚ ³Â…‹–E½ÛÎûzQÍcx¯Í|á3÷Ç,¾çÞ{ÎyÒW_}u¡aùZ‡÷0åÌOnæžÁ•Hn…±&ª!É@cfŽrH› fÏXìÂ1ÌÁ¤¤¨²<Ð¥{#LÆa‘`¾)² PL!†ÜŠž<ÄÜÃmÿß‚¸|Ìä¬AGdb‹±*ªèY5½öpDÍ£r{ðÔ¯_ć‚þÈ¢mbÈ÷œÀöæã1ó"4c{4˜,O·EÞ|&ˆ,– .ª¼$Ð%ÜbÌ|™[9d¼f{7àJ÷£rüTà´Df/` ¦¥KÍ É¦oîéÉÝ!1³Fl½(ø½ïñè-“8•.5©pöævò¨Ù–æDTáK½­¨\ JLni�ÝkS³ýOr«0Yßµª©Döž@ÓÌa]hÁJ Ù›û“c~e¼ùª¿yô*±¹©-5XÂ5¬GÍ<j¶ 5¿ï‰|r"%0óä¢ÉPçf¼ü—瘀}/®ýæeÌ<±ªÖd ÿ0À‰ß1^{óžU/Ÿpóvíûfþ0 óhk‡Ó:·R;‡*Ô`0¥“›èíÚ^Ýt ¨¥æ•š¹©l½½â;\Væ^KÖÛM¾ÔÒ7÷‰ØúµÃ…«ZçVjékæ@?,\S;œ5™ ”‡ ýª¹RìÚ3Óìdoî5 §½˜ÿ® äÐÀ����IEND®B`‚IMAGE 606 ./arch/spell/MagicWall/smover/pmarrow.184 ‰PNG  ��� IHDR��� ��� ���szzô��%IDATxÚíÕ±KaÆñ bJÒNF$N&S!¸ÔÅMˆ« ÈmÂA@QpÈ zC—,ÉÚÕ-Aütɲ8(Ò? ƒ»~û…¼ýMWŽ».yàã뽞÷îÞ7šEY$FÞã¿å O(¢–ùKy€o˜àç“Cê)J9É6¦Zç—.zb›H-5L¢ò Wæ×ÑÀ@x¨£dRÈqxçRn%àîß~È«hÁÅ—h"Ìç]U^À+Ï{ayÏh£<oàÖgå2vŒñ Ö¢.ñ„\¬‚,çÇ ¦8Baòˆ†h„¯wÕSñæŠÖ‚rx`~—‹ÐîpƒTPE¬ìa½ó ‚z%Š&Œ_¬¹CxêsûÆüþÊ/n1B¬lb`Ÿ}½�8jÎeQ-ëz›ë)ãL|ı㡥‹EWÖüecÆ’úü©U>Äb§×Úp&2^©¢2 詹;tTù?¥îÊ›íö¢¼s•`hªù‹$å³È9ç¨It¹Œ×<5kž§ô30æÓ¯$åašxÆ*¬ø[””ñˆkôñnþ÷{°Hyâ´ççÜ?dt1FM¬ÍËõ†Kž%ô£o¸àZz·§Qn'Jw$³rI S¨ØîRžRް!…ÛÖ9¿ˆv»l¸Ó…þ>¥SœÎ¿dä¨e›èKpà'Úˆ/p²,שàV•gš*F¡$å�b§Öxª”����IEND®B`‚IMAGE 621 ./arch/spell/MagicWall/smover/pmarrow.185 ‰PNG  ��� IHDR��� ��� ���szzô��4IDATxÚ핱K[QÆ6PŸ%8™V‹KŠ[•àòpzK–!(º8¨Ð Af*..útJé ƒÿ€K&I…:»têÈíw¹_àr òà³äƒ—{߃ïÜ{î9W&šh¢š‘1j\ˆŸ}ç47à‹ÈË?«`Ÿß#y圹)#–¾È\ óSpº ¡b»sgnJÞú¼Èጤ ÖÁ;ªÜ¹'Ó�—"ß#¦bGäÍWŒ=Ð�uqš’P1ç§*€-°èÍsà aƒX·  ÎA6ø3çónçkþ$^� °æCÍb¾ƒÀò ôA…A ƒJ­t]ÎÍ%X¤¹NIË›¿WA®¼Hñãø –ÁФT.˜s%³ÀÀrÞZÔß�RRÎ`RÇàZRªÀÛm¾Ê�¦¹öi²ó¶ú·2ÞÂ[Zm°Ã — +T•Ùžš—@ä=ó.;mj­ÛRs·}`ǃ™VfŸñ½‡ñµ·¶ Ê!æÂ&Óc©="óÕZk!æC5XçsÎ[sp 6½ï18 6§êl2³,µˆw`ô@‘æžLMä×Oe¤¦m2¬óƒámgΕ̜ÈýƒÈóTæS®½ÖÙd””¹;öW7Ê<XY¶×ÿh»cÇΟڜŠÙÛ×Toƒ8q9ç±Hg{m±É”*µÑ©és2.HG|XdæY>©µ�ó`-ƒã±˜S+àÚbþa&âŸÒ¢pu����IEND®B`‚IMAGE 229 ./arch/spell/Bullet/poisonbullet.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���‡IDATxÚ’ „0ìÿÿ|¸E"½´`D1CZ·^o$õµd/¨ÙH#ß oiâyPìÐ�ªÚøS„vêΡO#§È+P7}Cͼ…z@QÀù;°à4®Ažƒ+6ƒÂʧw“÷rÖ~\ýt6î?\î|Ñq.ظÎÏbŸ~`ƒm?"����IEND®B`‚IMAGE 267 ./arch/spell/Bullet/poisonbullet.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���­IDATxÚÅ“Aƒ0 ;ãÿÿ¹lRœqªº"!b°çõ ©�<˜�o�£-çví¢Ž‹ïXŒ ö»`•:¹¹­Àá: ¶QÔ%({&¢Ä¸6€B?¦­I”r}>KÕ Æ Ç ˜)f ¤Ù 5¼9-I2‰L¿G)^åµ7ŽQ[‚ëû‘¬W@!€zî¢.€ç^µ÷?´Òt¶Ù÷Þ>œ¥ÿé ^iííô‹����IEND®B`‚IMAGE 208 ./arch/spell/Bullet/poisonbullet.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���rIDATx^•α Ã0 @"¥6 =K÷Z"©=‚+•¯)E1 Èi@µ¿:<’ò<¸èP2ÀzxQ[ˆÓ§g+5PH,½Ÿòîш5¿¯˜ªôaIÜ ê ×–KÜú æó1—L<Ê¢?A'ýLæ����IEND®B`‚IMAGE 227 ./arch/spell/Bullet/poisonbullet.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���…IDATxÚÍ’Aƒ@ ±óÿ?W £¢ÊasZɃÛ[°}%4ka­ÜÖÒøÇ,ø€ÒÜÀûïCÇ÷²ÚÉrUµ1 ‘B µ`qCž#ì`d¡\"$™+ÂêD0û5 T4Š+%‘\*ñ€ÕÏ™qCÆk"¢§Bò˜*júŒ1����IEND®B`‚IMAGE 239 ./arch/spell/Bullet/poisonbullet.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��Í…?cD�����ÿ7™o���tRNS�@æØf���…IDATxÚ¥ÒÑE@Pniÿÿ…’»’Î<ØFxè±³b—wH.uæE__™�¼3|kÞ÷ã °x`Qsy@;…C  ¸ ) 9¨€îäM¸wÀÐ;qj�TßaÂm‡à6î¿J==ÂyÅBf`ž ž‰÷ïnO\X�'–Ã7ÄËóðg����IEND®B`‚IMAGE 222 ./arch/spell/Bullet/poisonbullet.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���€IDATxÚÍ‘A€0]öÿ6bã¤`¼9›ì¨ÿ&"¦0y‰ß…9ì„x¸Ïeâ€AÈ/ÈQn(D bzËv*­ ùBBØÈ7)” bÈ °Ô\A¨‚ì@èV$Z ”!º4QyeÙ…Öì@è×MX…ƒ5µŽÂgNÆê%,;ˆÉ����IEND®B`‚IMAGE 217 ./arch/spell/Bullet/poisonbullet.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���{IDATxÚÕ’A €0Möÿ–’@”]-K¡Ó-õø$ß3’‘Æ7ÃC?ˆÙ �ª0·8^ —Pç—QvUÒ¯ "ÂJlDHQ€ dSx]4¥7#xå2ƒ¨ÛÃ]Ñ®™Ø‡À¦½”æ˜ß¢³}îï?L¬0 ?å›]&”öŸ[����IEND®B`‚IMAGE 217 ./arch/spell/Bullet/poisonbullet.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�������ÿÎQÅ+���tRNS�@æØf���{IDATxÚ½“A €0›ìÿÿ¬KÜ BqŽÍSŠk/$? ‘Q¢21ÆgË}ˆBE�ê˜?C¢Ä%L ºàFËeŒ‚Â8¢7PĆ‚„<rüš>B h—pAhb$ ¤çn•.4# Ærl…„$ÙÎ %|DVÞ£_8�#˜Eê^ß����IEND®B`‚IMAGE 421 ./arch/spell/Bullet/poisoncloud.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷Æ÷��{�1��c��ŒŒ)ŒRc1cB{{{���.±3���tRNS�@æØf��5IDATÁ1j1�ÐAê̺H«UЕ)œs¬å|;ÓÃ.s…œ@Œan›÷|«uiaµZ°�ˆ+ò³.·Ø$½Ó¶1Ûó¿Þ­}íj—jÍU P'I;oÃþïDZÛ~½jc]bçqÈo}<éþ¶N£¤ …<Qò÷«=6e˜ÇºÅÖÛX‡‡s]ÛxµNÓéZØÉ…=þú²ïuÊcíq¬Ú†^}lRw+©£Ÿã4ÁþTÐbæØöøýTì1Åèôõ£¯(z¸iÈWòý•túˆ 8ÇËÄÑå=/µj#Çûº]¢ÖPåÇŸ]›êÚhHw�Ð)È-ºqh•ö§ÅX·kî=|š©ÝZ[ÔN¾à¥J@Jö—ã(Æä! ڨ׶Õ=樦];¶²„ƒ����IEND®B`‚IMAGE 443 ./arch/spell/Bullet/poisoncloud.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE÷Æ÷��{�1��c��ŒŒ1R)ŒRc1cB{{{���”Ç/ž���tRNS�@æØf��HIDATÁ±jA�à/+ÜÁTr(Vs#lÈV©’>…Ï'áÙJNIq>‚BêuÅ9˜§ôû” %§\î­eÁøx€‚ñe[]TíÓb*Ð[ärµ/(›eÈé€ó#Ö¥ÕÚ*@1.©Ÿ¯næ³¾†«ýû)ELHõ-¶eaÿÄm¦�ƒq‘Æy[¥§vgsÄ¿?Sê»Rþƪv§Šõ[æ´›LÖºXŸ³òjj!űED1ÄD*kÝåawØÙ¼/à p^%ûçŒaÖ~—b3KeŒ,µ¨Ó)æ)Ý—í~2ÌÙ ~0<~húÇh÷©÷x½ú”VcLëËÜ[TÝfûkÃázÈ�(qì7³1jNWÁKY¤i¬k;F9å7ŠÍ¸x—Ù]b‹�œ½÷>VÏËK•ÆŸ¦‹©ZÔÕ,kJÓÑ‘����IEND®B`‚IMAGE 431 ./arch/spell/Bullet/poisoncloud.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷Æ÷��{�1��c��ŒŒ)ŒRc1cB{{{���.±3���tRNS�@æØf��?IDATÁ1n1†Ñϸ`'È0u£¨„mŽØ ~+ÛBTl™3ÛS4h€·Í{äð éts€7½��Ö�Ó·ß�ã @‘Jïò®:EÎ~k¤o>bG ¹íîp˜-@‹æ—Ö äêÒÁ“t,"—§w,NAʨ��`?Ôl‹ùwóIþô©ÒoªÑ>)}©•”ÑxzìY � /H^ oL€·štH1T¢gŽ?íLn}OÚcä{€í�è>åd¹M¦X¥Wȵ”Xz#縂9¤#�ˆ†*ê%IkK RzCcíÏ5‰¼bû‹Þˆ…@¿�¬ÀñÜ��È*H$€“þuG1%9°–P+Ò;€à^l4(ÓIw]Êü®9²|\•äüˆ‹``V?ÿ����IEND®B`‚IMAGE 525 ./arch/monster/animal/Bear/polarbear.x31 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE���ÀÀÀ€€€ÿÿÿeeeòððŒ1c��Z˧���tRNS�@æØf��£IDATxÚµ”[vÄ0C‹@Õþw\bŸÔ8íOËÉ×èŽx„ðñ×!ý˜~ÑígænPàŠðŒ´y!d)S$oz-Î:3.$N:]N�; ^ïhݦîH‚Ä0¿€ †C@ŒÌLÚ€aÀ(ÀÄ!w�Hu<o#"¢ˆÄ” tÐéL½{’Â@�»ËaY¨W bêÐ�<õå�Ó(üé†mŸ9P´1€•}Lß« €›ë¹lôå ñ H[&rç#ŽÀL[”ÎDŠ˜¹FR³iÐ$fíÄ Ðå,¢œ.˜5&ฉ Y/3 t¨€öI\E’ôö¢Öœˆl€¬ô!ŠB³q~UÁÀHµ€KÇ~j *šEÝ–Ñ-ÄꢖÑÈ«  d6Ýý.á#2Xþ9âÒOX@FÈ;󪲧¨Ê¤$�g^a�Û¤àlíx=díz¡~ñúBÍÖ'€~áJo5Ì€†ÉÌÛ‰#]뜙™ØW®€böS«O§oÃé¾³x%ð_ñhÿN“9Ù³����IEND®B`‚IMAGE 560 ./arch/monster/animal/Bear/polarbear.x32 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE���ÀÀÀÿÿÿ€€€ãááòððeee��ÐÃ<Ê���tRNS�@æØf��ÆIDATxÚœѶc!C !äÿÿxDìí:jç®yš´O'Û Š¯•ô`úÅ7ÿ+pHøF îîö… Ÿ"©¼ûá®›ïv„në :«Ì ˆs¹¸d;1|'@$N@îD«Ã„CÌL:$sJ&êè°€JPý¿1˯ßõ(â øP°+$N_Igù%] ¤òÀIÈé‰Eè¶EÊ_ÒÙc@ÈE�ÔÈêA*¿‰m&‘^òCXê‘`Q ,hÞ¤Ï1Ô´31U�Œá!_€«ü( 30‰ Þ@Z0(ä$¤4¤‘\ B„»¤ZÜCbíqîϤrh~ìͽœ.$§¤ã638_Øóš!+¿úÐ{m/š}ð¨+›N2$a÷m ¤W:†nóRY~¦ˆ¿Ë;ÀðéW ÉêoYîW7=³pH¶Ïàô$t‰“¨€Š¸×¨«˜ ­ P ˜²Œa÷]•΄ʟëÔË7`¡½¾m§4áK Cw¾ÿDç·tyý°>ÞOBÃ'à|�Ú`üìÁ°­ÍÚ§†dfâã 2±b“zT1•^ÿM�†pûšÆ����IEND®B`‚IMAGE 569 ./arch/monster/animal/Bear/polarbear.x71 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE���ÀÀÀÿÿÿ€€€ãááeeeòðð��7¼o>���tRNS�@æØf��ÏIDATxÚ¥”Ñnë0 C'‘ÿÿgYi¶Øn‡‹Kä!�XÆ’ûõ¯’þðMŸ}··„ ÁIÇ;ßÜéîÐe¦rv&äìç™9ü¢¹Ž@ŧ'Å<dÈò’fHê�`> ¤b`e_JÒ×’™AŠ!€Î½¨R¦˜Êt#õT‰ŽØ¤Ð$òÝ‘wBÇED'ЇÎSÈô éàãaÚ€Ë�j0:å7æVS \~@àú¥‚p'HÃ÷x�a?~€^�ó6\&@»$”ò§"ôû \t& @4À"äzÕ'Ó`!Å´¡dÒâÔ.[ô7UŒ$wb4@@j?†4x÷Ù4´ÜxH9§3¶i÷æ&4/ɨ׾l²ˆuœ˜ã€„ô±ý$±Jf!†måfaâZK[ï_Ù{cv {VÉ#€lÌ™+ 44�fÆ!!¢8g¬è©w“s/û"è¾%Ì)¶_;€˜jdì�3àÎ`. ¯[Ñu‡ÿº@¨ú¢”yJè^6@ûíV¿vb¿ßz½wƬ�ìx-C)Îîц€ýò±S)3“ô“—|�ÒòÇgL6p–Ì’Ä`®Î§„’}ý¿¾ý8 �bgT����IEND®B`‚IMAGE 530 ./arch/monster/animal/Bear/polarbear.x72 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE���ÀÀÀ€€€eeeÿÿÿòððŒ1c��­î6���tRNS�@æØf��¨IDATxÚ¥”Š#1 CÏ’}úÿ?¾È saâeYV3”‚²ãÆýóSIßø¡oüø’(Dfà+?"r‰œªªT‹Í@TnÍÛ«¥ŒÐ”õ(k µ¥) �ú- r/�a{k:‹<Cˆ0E¥[5EXýÎ5Z¢š¨Drì˜#’z�^~€–‰Êº €”ôÅðI¨à\ÀJ¯.„À“@ èðà™Ô@ʈpVxî/–]‰mÏQ©|×�ØÝR@-; <ܧ.”¡ÅëIðžëñ§u”¨LM˹}÷•Ôì ö¥ä°_Ûïõ˜€í#0-íg¡¤4À¡zA»Éa}äþ±|àCð 0!C˜–£°¸÷ïê’Ë~',fJ°šèY $¬N¨+"]ds©. šè&]ã02A …!a×€t‘�Z `H�vrÆP‚¤˜K�0 £ÝÆœ€P.ÃñO¦¿u ðp_:âÂÄumñ�M8`îÁl /?D섬÷µ.E„¤6\9Q:úü{�Ú>3 Òþïõ’„»ÊÇ ����IEND®B`‚IMAGE 213 ./arch/weapon/misc/poleaxe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8!!!���ÿÿÿ@@@‚B'¿¿¿¥»¢Ÿ���tRNS�@æØf���bIDATxÚíÊ1€0 A;†òÿ£qí8=ƒ{Ö6Up«¸#†cuî4®ÂUŒ&P1:×ß@ëáµ?¤‡Oj? ]ÁÂë\>Yº1ňמûýsnÈûmü ‹zhÑ����IEND®B`‚IMAGE 454 ./arch/spell/Misc/polymorph.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2±!!ÿ������ÿ�Òi¯/_ŸQ,�Ì���ÿíu�þ¤�cDÿÿ�Ù¤þÖ����Ê���tRNS�@æØf��>IDATx^eS ’Ã0 H9{îÿ?»–HäxÊtZK‘‰1tºÃ ¿­ •ðÛ€GåUåf~5h ô«¦A»zCP šãiŒÛkÉÑ=ÌàäÇc`™ç—‰¸=þ~ÛDñ2zÜçM Ñ¿Ÿ­€ ÈÞƒËÉ�Ú3_A³íµ%Ävʆ$Åï>ÏÚcC©Î#NŒÑ&!ïLL ÅPp'Ý{Wqaui €Ë d}ò ©í´0[ÿC‡”¥ z8¦ÌÎÚãÚ4°ƒ,–'u»ÈWœÞ›VXþˆA‚}ßrq:LøýhÛœ"ú•‘!$Ÿ`€JêyÏäuóêÝ7£‚:f}Ȥlq$ÊëÊäO¢.™¬³t÷Ð3©(ê‹ÇšµùÉpˆ“ÌY“aÌdjÃ*¡2)íãßnÌ䊆=´ #_Z`ð����IEND®B`‚IMAGE 449 ./arch/spell/Misc/polymorph.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vc2���±!!Òiíu��ÿ�þ¤�ÿ��cD�Ì�ÿÿ�þÖ�¯/_ŸQ,��ÿÙ¤zW^4���tRNS�@æØf��<IDATxÚuS ŽÄ0«!é=Çÿ_»`B³¬´¤Õä0ÌRL é@ùÈ�Á8q¥™={ظCw;âq €�È«á‹Å'ƒ¾FÒ©ª£%r“¡­ë1ŒþóyZy… çú&Ã�™˜54mîFŠ×Ë�í½Ûǵ 'VÜÙ®;Â=)ïk#CÚ æ{ 5TƒqAB°à*ò‘ÌË8à4 ¦Ôa¿ë" §æ\Ê,<èêëÚ‚AUžYPáø’!gŸò/à¬ü}òú;ìbê´urÌ ‡v8Á~¹(;2£pÉ-Ë’命ÏX�Ài>],Õ29;(ª=‹·P ¤jÙ³ûõ?QvÒ]n^ßî>4(;¹°H¿S¡<œP,%Ü%M7=ø³“l~Žºì$ÒÏRÔµêCÉw����IEND®B`‚IMAGE 446 ./arch/spell/Misc/polymorph.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4V±!!���ÿ��c2¯/_��ÿíu�þ¤���ÒicDÿÿ��ÿ�þÖ�ŸQ,�Ì�Ù¤ ¯Ø���tRNS�@æØf��6IDATx^eR Ž! Ã0GÛÝýÿgW ª§•¦•í$NÊÂ|^a³ì ÍåÕ 'Š%'’„`B\xmFø¹¯…Ѓ)ºÞï{ˆ(õÏ«K.¤$2þÃïûçqx½Ž @é©ãš:¢„¡Z«àBUÞ›´ÔZ2 �¸ŽB:Û™¾™ÙüHU ÝbÍç{ÆT1ë’Χp=ëR ªí eb–jk²a¸{dÓÓµ6Y ¦5ÒÍø)A2§-"÷3S„í§wnØK„zØr›bïü8z¨�²DbQq¢$[æeǣ̢)ïµ/`9Z:£äýÅGÑm9e¿`"ólUðRâþ‹ v°b95Á}sD¬P‡åe Ì,Œ<ƒr|¿¦ ù½ Pª}´œ����IEND®B`‚IMAGE 460 ./arch/spell/Misc/polymorph.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V±!!���ÿ��c2íu�þ¤�ÒiþÖ�ÿÿ�cDŸQ,¯/_�Ì��ÿ���ÿÙ¤lRÝž���tRNS�@æØf��GIDATx^]R Ž„0 Ã÷Ììþÿµ+·a cˆ"ÇN]¦(Žæô ˃ÀA`ÇC–À¢XÂ2FçBAïóDZö!á #¾¦Ùzëçs¤cáó9%Ò Èðn½éζ:01ŒUè’Žß°!Íó,¹–„+¨!˾I¨¶¯í»í‹ä+œï ,iVž0 °|+žVNèÇ*>Ú1gãðºí5Ò¼m’î„:Ø–mŸP^Ây¬’»Â…ÿ)›V¥Ëɬ6Z L¹‹¦`R#§÷û”L§ÆŠZÌ†íº´ºA—Û׿øm =½€¨kqôŠ`Â8Åô/?´Çfÿ>R0¢$ž RÂÏÏ+ÒÍ•*Ü^À”9nŸ%½^QHå(Ìû¾ôÔ’qEŠKa‰ÂE ÿ³y¿ê+šyC½ý,=æ?Ï  rQ«����IEND®B`‚IMAGE 275 ./arch/monster/humanoid/Human/postman/postman.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠV��c2�1�cD���þÖ�ïå‹¿¿¿y­‘§���tRNS�@æØf���IDATxÚ½ÐÁ Ã0 жŠuþÿÿYÂ,öa‡éfüÀÂÇWüÊ{ü'ðZ8½kj tß}œ{ ®±°(:Ì[Þ·§Æ¾h‰Ó#JÄlo3„ ©AŒL°%T�_ѲËÐb ºì èd ,×€AD¾?,�(O´õ‡âSÅÖ'Y�hóW@ŒVœpÀV ]”ôÌ…¬ü V>÷O1U ­@õk’����IEND®B`‚IMAGE 284 ./arch/monster/humanoid/Human/postman/postman.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,-ŠV��c2Í…?�1�cDÙ¤���ÿÿ�ïå‹¿¿¿ÓŽÂc���tRNS�@æØf��� IDATxÚ½ÓÁƒ0ÐXB7®åÿ·Íˆ9´Àxê^y îŒí;œiAþx&, XÏ͹!û¸Þ×øÄv \@€ýê;¢3IPž '„ÏÅhÂôC(3ê &j‚P እЩ¬€²cc ˆ¬Z Ô{H¼‡ô³^ôàM²�ò Ur�1¥Xµ¢Û£Z¡„æGòŒh<wÀí¿ó êx Iˆí/����IEND®B`‚IMAGE 275 ./arch/monster/humanoid/Human/postman/postman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV��c2�1�cDÙ¤���ÿÿ�ïå‹¿¿¿çòEì���tRNS�@æØf���šIDATxÚ½“Á1D×Dùÿïµ"&€Æ‹/išt_`–¦Ç7öâ(ø«|öJ` ªR t Aow-y¨Å.MA7,É,õ/$„–ܶ•R @;„Åé„ç׾Šb6]Ä^¸p#Èpárª@�s 82ä<‡±¼@âr]kjAçÐ"",ixÚ›~Ô¿ û—ù´K ?d$O����IEND®B`‚IMAGE 288 ./arch/monster/humanoid/Human/postman/postman.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,-ŠV��c2Í…?�1�cDÙ¤���þÖ��Ì�ÿÿ�ïå‹¿¿¿Ç%æ���tRNS�@æØf���žIDATxÚ½“ÛÃ0CÛzŒÔ»ðÿ[¶hÑ$ Ñ^f©O>Å(Ë·øÒô€¬�À)H1íF2ŠúlŸÿÛ~ `¬¦<­È^æ~Û£?t•€ÑÐq;& @¶ º6s&ø!"(ïìês`•  Å5GÉ|‚�¨#`%«=”`9�!\9`ЋU„ôc%áPÈÆ®|Õ¿ó—y�u| …UŸ ƒ����IEND®B`‚IMAGE 246 ./arch/monster/humanoid/Human/postman/postman_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vc2ÿ�����±!!@1ü���tRNS�@æØf���•IDATxÚÍ’A Ã0 »’þÿæÊã¶1„^ºŽ-ˆ†±yýUrækWlˆUÊØ)#2Uõ‰"�.}€Ê·9P;]’b7 “�´f\ë¨ fÐÕ'õ4CµÀMσͧ+0à¸1Hà (0¬˜¿äŽ>†ê¶œj¦}¨;?¼ðd�f²ð(oÚ£è�æßf����IEND®B`‚IMAGE 203 ./arch/food/potato.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÆÎ÷���Ök÷çŒÿÿÿ Ëáé���tRNS�@æØf���jIDATx^ÍÎÛÃ0ÐfY@È X´Þ§~…„ ¢Ï«Ããó²˜u8~{4pž"ˆ6TŒ¶ÒS0íoð†ctX‰3¸qNHZ2­qA’¹³�ÉHGxJa@]±$0ìù®º¤ê·äUU +YÀ^Þ����IEND®B`‚IMAGE 386 ./arch/spell/Potion/potion_aether.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ;9í'â���iPLTE������kx‘t†žtˆžt¢t§€€‚„ ¶‰’ŸŒ¯ÈŽ¯È±È’’”•› œ¬»œ´ÄŸŸŸ¥R)¥·Á°ÄѲ²µ´´·´ÄδÄϼ¼½ÁÁÄÆs9ÉÉËÏÏÒÕÕÕÞïïææèçï÷ÿÿÿ;Œü‚���tRNS�@æØf���bKGD"]e\¬���…IDAT8ËíQQ‚0 #*"ÊtÚÙRîI/@Ç4¿ÉKÒ¦ª~À?Meú’�@€Ÿ¤€ºóùte°Íž�-Ë££‚g 6“.›î pzJ&—m„›)êgõÚ›EUu: ©eÈDDo¯d`ÌìîžÙ\XD^\xä9¥T8Úú_@#r æ’L����IEND®B`‚IMAGE 166 ./arch/potion/potion_empty.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��¥R)Æs9êêê���yØf+���tRNS�@æØf���EIDATx^Í̱ €�Ñ3Š8B”¿ÿL‚•I¡¥†T¯8¾ž\p¬{‚F“ ã�Rw0°5,¯@Gñ0×C†Ÿï¦$ÚRàëÛ����IEND®B`‚IMAGE 381 ./arch/spell/Potion/potion_fire2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ kzÉ���fPLTE������š š %š"6š"8¡EY¥R)¶¶ ¶¶!¶5>·!,·ƒ‰»?H½NV½OVÁ^cÁ^dÄeeÆs9ÈYYÍ??ÍNNÐ&&Ð//Ò��Ò ÒÒÞïïçï÷ÿÿÿÛ?µ$���tRNS�@æØf���bKGD!Äl ���ƒIDAT8Ëí‘m‚0 ƒ âüB‘)ëÖ­…ûŸÒ Ør�Íß¼OÓ'麟°ã/‹Oàä�*ì  U Åö›î<Y�®¢¥PÆ ë€†‰âº½¾8•iNë–`&0åøxGÈ1‘ôƒŽLô$¶ž¬¢cà`ö€þ"ªªâyníæŽ ìmý—¡aÝs bÓ����IEND®B`‚IMAGE 374 ./arch/spell/Potion/potion_freeze.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTEï½÷����„ÎŒÖ!œç)¥ç1¥çJµïsÆï�k½�R­c½ï”ç�B¥�c­�1{9­ï�kÆRµïZ½ïœÞ�B”„Î÷Æs9Þïïçï÷�ŒÖ�Jœ�Bœ�{Ö1¥ï�ZµJ­ç�„ÖRµç�1ŒZµïBŒR¥kÆïsÆsÆ÷{Î÷�cµ”Öï¥R)¥Þ÷ŒçŒç�c½�kµå™¿Á���tRNS�@æØf���‹IDATx^í‘ÕCA £cxÈfÆþ‹Kñ¥€D¿»ã‘íÑïøÂÛ6là�lÐxW#‰hîž™âqΑö(A `"+L×ñ™¯Ï\é²éú†bËUáÍåf(á5Hí÷æTBš°J-V=£JÖv¨„wrÍtl[NóÀ!'Î̓ÏHÎ?o¼Ñ æ¦â����IEND®B`‚IMAGE 374 ./arch/spell/Potion/potion_heal2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTEï½÷����„ÎŒÖ!œç)¥ç1¥çJµïsÆï�k½�R­c½ï”ç�B¥�c­�1{9­ï�kÆRµïZ½ïœÞ�B”„Î÷Æs9Þïïçï÷�ŒÖ�Jœ�Bœ�{Ö1¥ï�ZµJ­ç�„ÖRµç�1ŒZµïBŒR¥kÆïsÆsÆ÷{Î÷�cµ”Öï¥R)¥Þ÷ŒçŒç�c½�kµå™¿Á���tRNS�@æØf���‹IDATx^í‘ÕCA £cxÈfÆþ‹Kñ¥€D¿»ã‘íÑïøÂÛ6là�lÐxW#‰hîž™âqΑö(A `"+L×ñ™¯Ï\é²éú†bËUáÍåf(á5Hí÷æTBš°J-V=£JÖv¨„wrÍtl[NóÀ!'Î̓ÏHÎ?o¼Ñ æ¦â����IEND®B`‚IMAGE 383 ./arch/spell/Potion/potion_ishock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ !q! Õ���fPLTE������¥R)µÊbµÌb¶±(¶±-¶¿>¶¿@¶ÂJ¸Ìb¾ÐfÆs9ÆÑuÐÙƒÖÞ”×Ê×Ë)×Ì×Ï+×Ô;ÙÚNÞïïçï÷êÙIìÝZíÛAïÛ.ïâtøä8ùà ùáùâ$ÿÿÿñ*Ò‘���tRNS�@æØf���bKGD!Äl ���…IDAT8ËíQQ‚0 # ¢Œ¨@Ö¹­÷?¥°ã�šßä%mÒ4? à€Ǻ§š�@†”Œ>Ù|Q…ŠX,:¤DÂ2ˆN¶=|àr„œ¶}‚™ ôa~[Ë­ú‚qº>®B’ÖÈÚ®NœÙº‡Æx~i¥È{)Ïê˜ÀÑÖø�ÜYÈÖXp'����IEND®B`‚IMAGE 357 ./arch/spell/Potion/potion_mimm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ'å5ñ¥���TPLTE������rx+}2ƒ5ƒ7ƒ92“  Ž•7”8”,˜.-šG=›?G¤mP¤R]¯~e¦fq²Š³€¥R)Æs9ÿÿÿÍDú���tRNS�@æØf���bKGD`Ô¤���}IDAT8Ëí‘Ñ‚@ ƒ ˆÚk žì?¨ Øc�Íkÿ¯I›®ûYóólx·��‚Üx Æ9Ÿ—‡B}Í�ÜÔ–™ˆlùʨ5¾îæä^ëŽÔÁ¹Åëˆ6‘d@?Úä$éYHQ›Ü}IÏìEÍÌ´ñH)¥4Ë®ºþ+ÑDêk%W™����IEND®B`‚IMAGE 367 ./arch/spell/Potion/potion_resist.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ�Y$u���ZPLTE������¥R)¯#ȯ#ʯ<Ó² ¼²²Å´À¸Cׯs9ÈqÞÍ.ÔÏÌÏÎÐ#ÑÑâØ—åàÄãì Òì2ÔíF×íVÙícÛï ÒïÓñâó�Ôÿÿÿ&÷;(���tRNS�@æØf���bKGDëq‘���IDAT8Ëí‘QÂ0ƒç6íªsŠÞÿœ^@ºh^ù?BÈ0ü¬€ƒùºö œz�€+b -%ž7w<R�Ü}a-P©´Rì;€÷yªä^ʎС2Ûóe! ‰ÙÌ‚0*•$£X\E’ܘssUUï<òÒÚÖ-8êú¯@±-Ñ¢ú2˜����IEND®B`‚IMAGE 374 ./arch/spell/Potion/potion_shock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTEï½÷����„ÎŒÖ!œç)¥ç1¥çJµïsÆï�k½�R­c½ï”ç�B¥�c­�1{9­ï�kÆRµïZ½ïœÞ�B”„Î÷Æs9Þïïçï÷�ŒÖ�Jœ�Bœ�{Ö1¥ï�ZµJ­ç�„ÖRµç�1ŒZµïBŒR¥kÆïsÆsÆ÷{Î÷�cµ”Öï¥R)¥Þ÷ŒçŒç�c½�kµå™¿Á���tRNS�@æØf���‹IDATx^í‘ÕCA £cxÈfÆþ‹Kñ¥€D¿»ã‘íÑïøÂÛ6là�lÐxW#‰hîž™âqΑö(A `"+L×ñ™¯Ï\é²éú†bËUáÍåf(á5Hí÷æTBš°J-V=£JÖv¨„wrÍtl[NóÀ!'Î̓ÏHÎ?o¼Ñ æ¦â����IEND®B`‚IMAGE 390 ./arch/spell/Potion/potion_util.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜvvä���lPLTE������F>FCL8M8N)QLQN I9 M; K)R1ehjljl ll!fU$^@0kL0r`0ra:~;rU?zi?|iK~cP‡uP‡vZŠqj”~u¥œ“µ£¥R)Æs9ÿÿÿhŠbR���tRNS�@æØf���bKGD#*bl:���†IDAT8Ëí‘Q‚0 ƒ êPWÚIes2¹ÿ!½€€¼æÿš¶išÍ Xñ—¥Nà[�8Ø€wèzÛ÷D -�âG¯¬,£¦RÞÿÎtÊ¥d˜ Acš?ÉDcLY  íxª/}ZK:âADîæ™í‰˜ùF•G½¿VËÖºÞeèVMà­¥~¨����IEND®B`‚IMAGE 195 ./arch/potion/potioncha.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiÁq8îv�²"" R-���ÿÿÿÿ¥�UY.ð���tRNS�@æØf���VIDATxÚíÁ€@Ä<ÑHÿ›\Æ. ¯äÇ&³ç<™ƒ{ €r³¾.ª£W/}3øÒÓ¤`-}?Mðÿƒj'P¹À(ŸiîðHAõ惣$“u����IEND®B`‚IMAGE 294 ./arch/potion/potioncol.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���]PLTEï½÷���”œÿ­µÿ­Öÿ�ÖŒŒÿkkÿµÎÿ¥µÿssÿ„„ÿ­ÆÿÆs9Öïÿ””ÿÿÿÿZœÿ¥Æÿ¥Îÿ9sÖJ¥ÿ­Îÿ{{ÿœœÿµÖÿ½ÖÿœÎÿ¥R)¥¥ÿÞc@¤���tRNS�@æØf���wIDATx^í‘×CAļ„K/;çþË4 ì¹�[¿Ò0 ì~à‹Ÿ¦~W/�pÀuÎØNÜ·$Øž ^t4[a¤@ªc‰`%ò¢g xpÅmÑâ³ßÌXjøÙMÙ’C-ÜhûxUéò"òè> ºÏŸ³"®ò”-„����IEND®B`‚IMAGE 300 ./arch/potion/potioncon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���`PLTEï½÷���ÞÆÿÖ½ÿœZÿµ„ÿ½Œÿ„9ïŒBïέÿ­sÿ{1ï”R÷½”ÿÆs9ÆœÿœRÿÎ¥ÿÆ¥ÿs!ïïÞÿÖµÿ¥R){)ç„Bï­{ÿµ{ÿsçŒBÿŒJ÷¥cÿ­kÿö‘i×���tRNS�@æØf���zIDATx^í‘ç‚QÀ ¼úõj/ûo©� hþ&wpø]À÷ ƒ_pôàØz]™’íÛvⵌX>—gŒ²c”¦W‘m[0tq–o0AîRUùPÍ V £œÊUª{µåãBÒż·h‚sÈS>÷™`jŸ?oŒgÙ—¡����IEND®B`‚IMAGE 293 ./arch/potion/potiondex.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ZPLTEï½÷���÷½RÖœ1Þ„�çŒ�ïΔք�÷Öœ÷Ö¥ïµJÎs�ï”�çÆŒç­BÞŒ�Þ¥9ïïïÆs9÷÷÷sJ�Î{�Ö{�¥R)­c�÷½Zµk�Æs�÷Þ¥œZ�¡¡¦���tRNS�@æØf���yIDATx^í‘ÇA Å'‡äÔ›LØ À¿JOûð»›³ï¶ÁÕ€èø’YçÍ5æ¨ œÝÓ­SD3x·Á§íøâ;÷i§·cQ„[JUr.Y/ÌU@Ѝî2%á+"h|$–N½‡|„1?­b{ÿ}�Gtëäÿ©š����IEND®B`‚IMAGE 305 ./arch/potion/potionfir.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���cPLTEï½÷���ÿÿÿÿR„¥�1µ�1½�9ïRÿ)kÿ1sÿJ{k�!ÿkœs�!R�÷ZÆs9Ö�BÿB{Þ�BÿJ„çJÿZŒŒ�)c�¥R)ÿc”­�1ÿc{�!„�!ÿ9sÆ�9dM’Ë���tRNS�@æØf���|IDATx^í‘ÕBA Ù͹<W¼ÿ*© G0¿3‘Ëï|ñÃÐ.p¶�€®ÁûªûÇ>É@óu}?%h²YïÓ’JâëÍŠQ‚£FÙ¸-zàÓK¢t™##ƒ6d÷´3}¿ªkv­stCæÊÚ|& ê6>E(g”Ùï%����IEND®B`‚IMAGE 374 ./arch/spell/Potion/potiongen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTEï½÷����„ÎŒÖ!œç)¥ç1¥çJµïsÆï�k½�R­c½ï”ç�B¥�c­�1{9­ï�kÆRµïZ½ïœÞ�B”„Î÷Æs9Þïïçï÷�ŒÖ�Jœ�Bœ�{Ö1¥ï�ZµJ­ç�„ÖRµç�1ŒZµïBŒR¥kÆïsÆsÆ÷{Î÷�cµ”Öï¥R)¥Þ÷ŒçŒç�c½�kµå™¿Á���tRNS�@æØf���‹IDATx^í‘ÕCA £cxÈfÆþ‹Kñ¥€D¿»ã‘íÑïøÂÛ6là�lÐxW#‰hîž™âqΑö(A `"+L×ñ™¯Ï\é²éú†bËUáÍåf(á5Hí÷æTBš°J-V=£JÖv¨„wrÍtl[NóÀ!'Î̓ÏHÎ?o¼Ñ æ¦â����IEND®B`‚IMAGE 213 ./arch/potion/potionhea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿÞï�c��Î��ÿ�)ŒR¥R)Æs9Þ¥!ÿÖ����ÿÿ�ÿÿÿý,fÆ���tRNS�@æØf���_IDATxÚí‘A€ ¥[ÁÅÿÿ×å]¯:ÓLÚŽïBn|ïôÁé’¡[ëÖ(½tʃÆÇò`ä”Ç ºsˆ2Z1ˆzBÆB+®åË©“î!iZúç ÍH¸¯ÐËK����IEND®B`‚IMAGE 199 ./arch/potion/potionhero.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÞï!!!BBBccc{{{¥R)¥¥¥Æs9���ÿÿÿ¸çQ|���tRNS�@æØf���WIDATxÚí‘A€ ÄDpYþÿaó®ŒWM‡Sr)=¾‹ýàçt®Øî¼Z·æ®Ò£O¼|Ç»*ŒÒZrá÷ˆÁS@ kR@úH°ã¥Ñ?o¸±¨¡¢íÙ����IEND®B`‚IMAGE 206 ./arch/potion/potionimp.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÚ¥ Áq8�Í� R-.‹W���ÿÿÿÿÿ�ÿ×��d�ÄNo[���tRNS�@æØf���[IDATxÚíÐ1€0 Aƒ‚óÿséQàÑŒ«ÛÊÇžôÑ[Óœ+ ©8ŸÇPݶ“ƒð½fGAïÝ�€yp!Xz °b;�1·z$Óìž÷^ö�ªZh$1 K����IEND®B`‚IMAGE 284 ./arch/potion/potionint.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���WPLTEï½÷���ZÞ”R½„s9R¥s9ŒZ1„R!{JR¥{)„RZÖ”µÿÖÆs9�c1!sB9”c9„ZRµ{�s1RÎŒZÆŒ�c)B”ccÖ”¥R)J”kJœsJÖŒ¸¯���tRNS�@æØf���sIDATx^í‘GAÃ{ÒFræÿï¤ Îž€®VuÜü.ÐÏY–¾Á½'� ðqJ¤Ï/ÇĘ­À:–á9‰l ÚC’æù†)P_AF¨ûÐ+”�M®E^ ¤³²^ãD(üš­�¹øC±nKî>lÜçÏnnàµ$����IEND®B`‚IMAGE 351 ./arch/potion/potioninv.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŠPLTEï½÷���­k�ç”�¥k�ÿ¥ÿ­ÿµ!ÿµ)ÿ½JÿÆcÿç­ÿ÷çÞŒ�Þ”�œc�ÿÆRµs�ÿÎsÿÞœÆs9ÿçµÿï½ÿïÎÆ{�ÿÿï”c�ÿÎ{ÿÎcÿœ�΄�ÿÖ„ÿÞ”ÖŒ�ÿÞ­ÿç¥ÿ­)œk�¥R)¥c�ÿïÖÿ÷Þïœ�ÿÆZÿÿ÷ÿÿÿ¨‰GØ���tRNS�@æØf���ƒIDATx^í‘ÕCA £c|Œaæôß^*°Hô»;Ù^ün�ž£ëxWN� ÐX,¡÷4ŸœO¯Ÿ®zŽ ØÐ¦ôyTvMÏ —Â5Ã<§%”Ù®ã=õcE·­ñ»Û•§J i}Þk–u¡–wH¥ûL€Ä|þùÈí‡t&����IEND®B`‚IMAGE 218 ./arch/potion/potionmag.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÞï”ÿc)”Œ)Ö¥1ÿ¥R)µ1cÆs9ÿ�ÿ���ÿÿÿFº\ª���tRNS�@æØf���gIDATxÚíÁ€0C¥ÅmÝÿ°$óÚ™xÕNï Çw#=ð޵Π‰Õ7ˆé9€`¦,o)ghÍÏi5´š^@€Œ,Çn¬Ê°nƒ%Ø`ÅÝU›GXöJá?or5¨Yýü����IEND®B`‚IMAGE 385 ./arch/potion/potionpow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¨PLTEï½÷���çœÆÿ1”ÿœÎÿ­ÖÿÞï½kç¥Æï!„ïB”ïZ¥Æs9ÞsÞ{Þœ½ïBœçŒ½ç{ç{ç)„ç1ŒÆ„¥ç”½çœ½Î�cÎ�kÎsÖsÖŒ­¥R)ïc­ïœÆï¥ÎÆk÷„÷Œ÷!Œ÷R¥÷„½÷œÎ÷¥Î÷­Öÿ!”ÞŒµÿB¥ÿR­ÿZ­ÿcµÿkµÿŒÆµcÿ¥Îç�{ÿµÞç�„-‘���tRNS�@æØf���‡IDATx^í‘Õ CAÄžB˜™™¡ÿ΢°×@2¿¶´Ú™àw~N–ù F>˜2îu©dæ5š“6"õ*ÝL)ƒB_ÌÃ:'„‹ÓÍÚ—s‘ ô—g³Ue´S’°¿š ªÒ‰ùq=¤E*¹N€q"¾yÿÖP‰ž"ÏwáDìÏ?øPSŸû™ÿ����IEND®B`‚IMAGE 191 ./arch/potion/potionstr.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEï½÷¥R)µ!!Æs9���ÿ��ÿ„sÿƽ"´´���tRNS�@æØf���UIDATxÚíÑ1€ DQ ÃýolÐ:;Œ­nAó_ßøÎxp:�èsʾÇÝÓµz'xúœIÓ÷@ÍAª!ÊðÂ]“u؇\ÆþtåovkU%GM����IEND®B`‚IMAGE 292 ./arch/potion/potionwis.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ZPLTEï½÷���ÞÞÞ”””½½½ÆÆÆÖÖÖŒŒŒ{{{ïïï­­­çççÆs9¥¥¥ÎÎÎ¥­¥„Œ„µµµkkkœ¥œ”œ”sss¥R)ÎÖÎccc{„{ÞçÞkskckcZkZ"vK·���tRNS�@æØf���xIDATx^í‘Å CA 3^„„þÛŒ´çØ $ÏÇY†ÓïlÎ0ØK�2 ã¼‘œÎ³› ~DãgW£È•ŠÖ`œD¤Ïw~[ÖØ… [êÂC4áéÖH£¡ ¯ä' ¯ yß ½´5ßi&PC±¸ý0Ÿ *¶óÏø±dLŠSÑ����IEND®B`‚IMAGE 248 ./arch/misc/Container/pouch.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÚ¥ Áq8G$!!!Í…? R-���ï§_d3‚B'{Æ"ì���tRNS�@æØf���…IDATxÚåÁÃ@Ä¡þ Ž.ÿÀ$ËswÄõ³x1Ÿ|î½áÁÚ;€a#]û`egó¨bæê=ëø¢™±õ$¬ÌJ\m�!ͲöSZTTì sp/¼¢Æ� ‹vÁ¿/Bº ?8E¸¼¼H@ZwíDÌÂ}1‚)?â)ý¼ó}(ǶT����IEND®B`‚IMAGE 218 ./arch/spell/power_crystal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V@@@¿¿¿ÿÿÿvÓxL���tRNS�@æØf���|IDATxÚÕ’Q À C—ôþw‹QÄZÆØÏh?ä™ñøŽàÕ§&ð6ª7›69У‰>Z%@³ •ö¶8#È‹ ˆÜ“· îPºìÉ�:€ôN*)E¶(�Ü�X‘õ¡2@Ú|ZÒšò¿BGìÿ3c¦VOöä����IEND®B`‚IMAGE 214 ./arch/spell/power_crystal.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V@@@¿¿¿ÿÿÿvÓxL���tRNS�@æØf���xIDATxÚÍ’KÀ yxÿ;·q\P švåKdÃdÄQXû,ÁZ¤ÅFÕI¹‹7Ò i’(4SÅJÀ›ç€$ú‘Ð$†· 5@Íž#r' ©·a(�È@@úE$oyƒû¿!-¬zp’þÇ£smÆZéeóµ����IEND®B`‚IMAGE 212 ./arch/spell/power_crystal.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¿¿¿@@@ÿÿÿ{DR`���tRNS�@æØf���vIDATxÚÕ’1€0 cçÿÉDÅéÄ�7U=ìF_†›=§7xŸs4öIc+R dhâuÞ#¼ e.�ô° -ááyMáo¹ŒkA>*B‚xQ $N ¾u%œ¸îQÁXh 1�Q­?â�#©"r‚p ����IEND®B`‚IMAGE 214 ./arch/spell/power_crystal.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V@@@¿¿¿ÿÿÿvÓxL���tRNS�@æØf���xIDATxÚÍ“Ñ €0 ½úÿÿ¬4•6Ÿ4¸ä8êpÛoB£˜^¡,Ÿ%Ê@Aö»“‹;�ݯ^›™ û˜�(½è‚b¢Ix KA€;`N!”é;Hqð�°4 Êgdˆh�ã¥Ï§ÜßÊÛ«ð}p}\nvÊ����IEND®B`‚IMAGE 199 ./arch/spell/SpellBook/prayer_book.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���������ul¨ dµµµðæŒWàä\���tRNS�þ,–#���_IDATxÚÕ’A À ë¦ûÿ/—(lc°‡¶Ac\Ôí_àB( 7 _MžÇD°( FÑ^ ï2 v?Éàêõðjïá5aèk¶ÿa)ƒ’…]@ÿ©?IJí0æ¬s����IEND®B`‚IMAGE 707 ./arch/spell/Scroll/prepare_weapon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ #%õ ·Ã��8PLTE������222:;2<.?>3GGGJA'RP@TR@US;WT<XH+^@$gb<ljRmh?~R'„V)†‚`ˆˆˆŠˆw‹‰x\+],”p•q–M*–“|–––˜c/˜‘X™P.›•[f0 ™]£œ_¤ZϤ ~¦~¦Ÿa¦¦¦§~¨¡b¨¨¨¬¥d®ª°©g²ªh³«h´¬i¶®j¸w9¸‹¸°k¸±l¹²lº²m¼´n¾¶o¿‘À’Â~<ºqºtûrĔŕŽsÇÀyÈ—È¿tɘ˙̛ÌÄwÍ…?ΜÏÏÆxÑÈzÔ ØÏ~ÙÐÚ¥ ÚÑÛÒ€ÜÓ€ÝÔÞÔßÖ‚âÙ„æÜ†è߈êá‰ëá‰ìâŠïå‹ðæŒ4'>Á���tRNS�@æØf���bKGD*S¾Ôž���÷IDAT8Ëc`J€ `Êë8úú@pX$ «`”a MMGh*Å¢²!) Ä=c¡²iéŠ!év0:ÀMàÕÁ°¨Â6 *ϯ'…éFMk¨ ’"@[0 д‡è—ÔÆâ  ]›ˆô8&/>ýXØG§Ç±±J§ãP`䓞À¦ÄíŠK‰O|:3+ vŒ*¦vœ ‚ qq8 P33çPÂ@nÆ\¢xÈéx¸[¹GÂ�¦y}H$ÀH(Aa*e´tD˜±­Î›˜ÉØS”2£“·/øcuAG ��Th_Vï Ä����IEND®B`‚IMAGE 221 ./arch/misc/Container/present_box_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ž��´Èÿ��ÿÿÿ���Ùbh“���tRNS�@æØf���vIDATxÚÍÒÑ À Й^ÿÿ“—SVÄ—Ý‘΃’ן¢s�ˆÀ“Vâà�<Å˜Ù€Õ ôÜÏÀÚxi­…Ë@ª ·1ÑrA�¢åâ� VG� 8xì6`JËß>å{*ŸônÅznÌ¿ g®¥|n����IEND®B`‚IMAGE 221 ./arch/misc/Container/present_box_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��!º�À¸¿�ËÒ�ßç�öÿ� “±‹R���tRNS�@æØf���vIDATxÚÍÒÑ À Ð]Sÿÿ“—SVÄ—Ý‘΃’ן¢s�ˆÀ“Vâà�<Å˜Ù€Õ ôÜÏÀÚxi­…Ë@ª ·1ÑrA�¢åâ� VG� 8xì6`JËß>å{*ŸônÅzn5«¼8ºn����IEND®B`‚IMAGE 221 ./arch/misc/Container/present_box_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��!1�¿ž��´Èÿ�����)ªƒa���tRNS�@æØf���vIDATxÚÍÒÑ À Ð]Sÿÿ“—SVÄ—Ý‘΃’ן¢s�ˆÀ“Vâà�<Å˜Ù€Õ ôÜÏÀÚxi­…Ë@ª ·1ÑrA�¢åâ� VG� 8xì6`JËß>å{*ŸônÅzn5«¼8ºn����IEND®B`‚IMAGE 222 ./arch/misc/Container/present_box_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��!�ÿðØØØÞÞÞäääÿÿÿ���Ýe4{���tRNS�@æØf���wIDATxÚÍÒK À0ÐNüÜÿÈU(&!4¸élDòJ¼þ3�xDž ´ ß�à(À̬f /àxÖÆKk-\R½ˆ–3-·`°:8�9À1À d°SXþö(ßSù¤w+Ös:¢¶½”ç����IEND®B`‚IMAGE 221 ./arch/misc/Container/present_box_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��!ÿ��Ã�Õ�ê�ÿ����W62ë���tRNS�@æØf���vIDATxÚÍÒÑ À Ð]Sÿÿ“—SVÄ—Ý‘΃’ן¢s�ˆÀ“Vâà�<Å˜Ù€Õ ôÜÏÀÚxi­…Ë@ª ·1ÑrA�¢åâ� VG� 8xì6`JËß>å{*ŸônÅzn5«¼8ºn����IEND®B`‚IMAGE 221 ./arch/misc/Container/present_box_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��!(�›)� ,�©1�¿Ã����³µ£‚���tRNS�@æØf���vIDATxÚÍÒÑ À Ði^ÿÿ“—SVÄ—Ý‘΃’ן¢s�ˆÀ“Vâ �4ÅˆÈ€Õ ôÔÍÀÚxi­…Ë@ª ·1órA�æåâ�VG�`8xì6`JËß>å{*ŸônÅznò g}Ÿ­����IEND®B`‚IMAGE 294 ./arch/jewel/pretty_amethyst.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���””µµÖCÖÿïÿ���þ–5ì���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  :²¯���€IDAT(ÏÍŽËÃ0™q B.�¤Ч�ÙÔ+9ÅÈøÝvg‡àY3³ã½ðÙîâUš™ì$Z`›˜]”ŒÒÖB9V,^l 9éü¬¨ˆ™.!J#Hê× 9ù¨W�Lƒ¥NK”Jí@˜úÀ7HZæœ7~Ä~« ¥.ån+����IEND®B`‚IMAGE 293 ./arch/jewel/pretty_crystal.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE������”””µµµÖÖÖÿÿÿ‡‚���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ *Kù%±���IDAT(ÏÍŽÁ!=lî1d�-@ÔLè¿•œ"nûo3oî53û¼7þŽ«x´a&çÓI†ÓÅ!HØE+ ‹ eìм8`sÖøXA-!J€’ë:!¤‰K_A(4Yzô·D©õêAȹnAx¡äCŒñ·ØÌ9#A¢Ñ����IEND®B`‚IMAGE 311 ./arch/jewel/pretty_emerald.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEap�c9ŒJµcÞsÿŒ���ÿÿÿ â<”���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ³î���‹IDAT(ÏÍŽ1!E'Yà Ñ­çSl <€z€5±×†áúVÞ`÷^^&C´­]k}í¾ÄZoƒØùXï8>š8ãðíbò³YyéƒÇâ¤Øw1 V[ò/P§nf˜&àÞ,°©€q¢Kh©Y BîoÁ™RÈFz ìÈ”sþãMì 8Ù»Îx#����IEND®B`‚IMAGE 291 ./arch/jewel/pretty_ruby.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE������µÞÿÿÿÿ–ø���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 0I÷°×���}IDAT(ÏÍŽÁC!9X@L b<øHûo%§ˆéà¿Ûîì0Ýk¾Ö|ìkõC¤îËñ~D�ù ‘0Åx„èÊð³0-Î=Dª,CÛÈ¿@­3d ˜pA»ö Tc¾R1…çx Cº_PãÚ®# gA;™rÎ|‹}…pºy����IEND®B`‚IMAGE 292 ./arch/jewel/pretty_sapphire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE�����Œ��Î��ÿ���ÿÿÿ.×~���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ò‹ðä���~IDAT(ÏÍŽÑ !Ilà³�°Äöp ý·r_§\ûþf2!�<kæ~¿"›{ "5s“÷u¡•ùˆ$™ƒh\ÄJ:³a;"!Ráªã°¢" m!“0Kíû„N–µ`R¾mœ·DW³~¨ˆµ‡�>Yjdcüñ#öÿÃÇ›õfã����IEND®B`‚IMAGE 255 ./arch/player/class/Religious/priest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í�ðæŒÍ…? R-.‹W���ï§_ÿ×��d��2�L¨¨���tRNS�@æØf���ŒIDATxÚÍ’A1“ìbjþÿà:Ú‹#õT¸ÌÈHˆÑæ¾—¦áã 8~�xžW¢{\¹_yæëÚÝÐȶ ³E9¤ŒVx2'Fc”œˆ^ḖxLn7œð¼dìŒV`a XäŒß´9§k`EØ32(ìrF´\ÆÓ�ûîÊø»¼ÓØ }"VŠ����IEND®B`‚IMAGE 255 ./arch/player/class/Religious/priest.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í�ðæŒÍ…? R-.‹W���ï§_ÿ×��d��2�L¨¨���tRNS�@æØf���ŒIDATxÚÍ91 }¬¨¥ÿÿàÄ!¶3 UX¸™$³ýœë5o_„š0RïLyæýfŽÄy2>αߴ±#~”© 'cÉéÝ2"$˜-5×›GGÁ5Á݈šsasTÄNs© -_Aêßb=Á^Lx:°-1ü âVhß’¢’þ0/Ï)ë¸�����IEND®B`‚IMAGE 277 ./arch/player/class/Religious/priest.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÁq8�Í�ðæŒÍ…?.‹W���ï§_�d��2�ú€r©í §���tRNS�@æØf���¢IDATxÚÕ’A! w;Iÿÿàâl½ôRŸfdBÄõŸ¡rV¬É/<N‚ø: âK§9&OÁ}߯¨J€™ä¦F`sê0B"Aô¼6ÇàEØ‚îÆÛ𼪯ây›dÄ4üÄxÍêT�†áµyöˆ¤)ÏLHð#ŠwƒßQ¿PùÞžwˆÞ:|ú›Ÿ¿³„cÄÏ‘ðü¾w¶Ü´����IEND®B`‚IMAGE 270 ./arch/player/class/Religious/priest.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÁq8�Í�ðæŒÍ…?.‹W���ï§_�d��2�ú€r©í §���tRNS�@æØf���›IDATxÚÕŽ1Ã0 Ǥ¨þÿÁ5“1²³('w Õþ4t¶Âˆqò…ÇN0»ó)œg D ¶ã8*ƒ™(MjaÁ (‚ Ð×¼s^¨ H˜[h%Ϥn£Ì“æ@'#Šý¼ÿãìø«¨“lÀxrIÐõ�gª…„„Ň䎾(3Ìk£›¯@»ßÎc ˆ…ßæ ¤±£«H����IEND®B`‚IMAGE 277 ./arch/player/class/Religious/priest.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VÚ¥ Áq8�Í�ðæŒÍ…?.‹W��¼���ï§_�d��2�uDÖI���tRNS�@æØf���ŸIDATxÚÍA!Q‘mðÿÿšÜ"ž—âÖÍL©¼u€;׮ܸwõ›Áâž UU½w'å£êÓä&ôÞ31b pÀÈS°fF"XU[¼‘4´ÐŒ¹Ç{FUÖùÜã (»Á8ñÀ=�„vb„»µÅ(åŸï?²Øõ…“KØ sŽ ëÂ2á×вaXd\ØA¾$�ä…ós¹{…=áb����IEND®B`‚IMAGE 273 ./arch/player/class/Religious/priest.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VÚ¥ Áq8�Í�ðæŒÍ…?.‹W��¼���ï§_�d��2�uDÖI���tRNS�@æØf���›IDATxÚÍ’K1Åòæ÷¿o!£îÛ6ÊÎÆ RÆ¿�='&t\™´3\;a(s-,"zøi¸/bæF°P 0 ‚Š;‚Ë–Â�<É7ŠyÀĽò#ä8Wn˜‡l\¹C†9/‚¹™ê‰OÌKÀ-W°]løåR ævVh 'PR0±] ¨ŸFÐ}èE/l„ñ›óñOHJ¾;����IEND®B`‚IMAGE 281 ./arch/player/class/Religious/priest.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VÚ¥ Áq8�Í�ðæŒÍ…? R-.‹W��¼���ï§_�d��2�ùî]ù���tRNS�@æØf��� IDATxÚÍ9à ÀVÄòÿ÷Frì&E´t3ìñúuÎ1¸ß³@2r‡Ç¼Øæ±åtÚÇÆFà9ªj±µæ>W©dÇ~¤"�7t‹ê= \æ@ç–ÓO æDW¡*4x¯râq‚S‰¯ë�ÕV/…N8ÁOð€B…¯ÿæ·‚¸WLÅáXˆFOÜPÂè” ‹§ˆÿa¾¡–ø”È‚(����IEND®B`‚IMAGE 282 ./arch/player/class/Religious/priest.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VÚ¥ Áq8�Í�ðæŒÍ…? R-.‹W��¼���ï§_�d��2�ùî]ù���tRNS�@æØf���¡IDATxÚÍË1 —>6¸îÿ/Nı†©´‡¥Þ^¿Î=Æ®£/€æ0<ƒ¶† 'ˆ?ÓÀ‘ÐÚqî’ØhsŽÓ‚µ6k" ~.(Ü`ï° ·x„Pa¸kE×i„G5ô¨À;„¯v ' ÅÞ°7‘?qæLN:‰ƒG¡P8;¦àŒŠê =/C8,—÷ðæ/^7÷�0å����IEND®B`‚IMAGE 256 ./arch/player/class/Religious/priestnew.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V�Í�ðæŒÍ…? R-.‹W���ï§_ÿ×��d��2�L¨¨���tRNS�@æØf���IDATxÚÍ‘AÃ0±DÅÿ\×$·ŠÌôT|Ùá“9Ï©Pq{Šÿ*�P±Ÿ#ð]ˆx}„#f@TãâS„¡’X).„e™Û& Ò] †›Ëæâ>:ÞL@&zÎDË3Iì(¬JžN>L`ß@çh®è;Ðõ„ŠKÁj‹€ÉÔŽþ0o¸« ƒPÂ-����IEND®B`‚IMAGE 277 ./arch/player/class/Religious/priestnew.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÁq8�Í�ðæŒÍ…?.‹W���ï§_�d��2�ú€r©í §���tRNS�@æØf���¢IDATxÚÕ’ÁÃ0ÅVtÿÿÁ«é±$»MêÍ®C¤¼þtÄl…sè „1z>/á8ŽÖ|^|ð=±Üƒ�Ó:ÏtW¦´áT2Bzº0´ænzÉ»@¥ÝÌÔnȪ³ª8‡(¢á÷~’›½CÝ “‘ÜNÁ²@jOȤ±¸BÂ),„º!ƒ�o +¾œ‚-Õ¿Û× ßÂOç>2ëe¿ìD����IEND®B`‚IMAGE 274 ./arch/player/class/Religious/priestnew.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VÚ¥ Áq8�Í�ðæŒÍ…?.‹W��¼���ï§_�d��2�uDÖI���tRNS�@æØf���œIDATxÚÍA!q¶Áÿÿ7jŽÏ¡ÊS·ƒ£üë�w®¦Üx˜ÆÍ`ñ(…GUÃ,(ùxôµ¹ fV Œ‘K€‚³x&NЙ‚wï‚?ê‹;ņ>&='0˜˜ ópl@Û:džD$€ÐÚAÈ‘Þ×åFûåû<ˆ“ç~A)ä¬×„½¡W Â𬸰.‚|9H-�ÈÎOe5sœ����IEND®B`‚IMAGE 281 ./arch/player/class/Religious/priestnew.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VÚ¥ Áq8�Í�ðæŒÍ…? R-.‹W��¼���ï§_�d��2�ùî]ù���tRNS�@æØf��� IDATxÚÍ9à ÀVÄòÿ÷Frì&E´t3ìñúuÎ1¸ß³@2r‡Ç¼Øæ±åtÚÇÆFà9ªj±µæ>W©dÇ~¤"�7t‹ê= \æ@ç–ÓO æDW¡*4x¯râq‚S‰¯ë�ÕV/…N8ÁOð€B…¯ÿæ·‚¸WLÅáXˆFOÜPÂè” ‹§ˆÿa¾¡–ø”È‚(����IEND®B`‚IMAGE 316 ./arch/monster/humanoid/Human/princess.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿã¾£ÿÿ�çßÿ��ÆÿÿÿÿÿhàõÑ­­ççÛÝ?���·^T���tRNS�@æØf���ÆIDATxÚ­Aƒ0 !Á¶DÿÿßÊ>ô‚Í©"Âì’Ž6ëxËu¯kÝ×ÈÅ2÷Ì×p¯7Ý® ¯;(Ø#ç¢ð>4·�¾zîfd ̽áA3s ñV8#˜‡Ð%DÃ*!h„³Zæð½Â>r=gõt%›þC(ê üŠüÎÐr†»Œiqc Þ0 ž‚÷‚“&‡“Àä%eù}jê:jª F¥”¶CÅ*]ÉODüƒ ùÕø<VÿÉ“Da’Ï—r����IEND®B`‚IMAGE 309 ./arch/monster/humanoid/Human/princess.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿã¾£ÿÿ�çßÿ��ÆÿÿÿÿÿhàõÑ­­ççÛÝ?���·^T���tRNS�@æØf���¿IDATxÚ­K!‡Ï3÷¿o@kI`Vér¡Õ­”TÂôĵøâuµ>\²zÏì¼¹ñjýb|!˜î“»�ŒÐs4swÓÆ«`n¢Ua¾ †r4+¼;¥�6¼ (ƒ\JsºÿøÜãÇßIž z‚“|y†%ÔÛÿì=L5Š/;ÐÚKz„Ö:P@@ }F{JTÎ]„ÝÅagPWÈ ^f÷&veñ¢¢èÒ?ò÷Äôb »����IEND®B`‚IMAGE 322 ./arch/monster/humanoid/Human/princess.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿã¾£ÿÿ�çßÿ��ÆÿÿÿÿÿhàõÑ­­ççÛÝ?���·^T���tRNS�@æØf���ÌIDATxÚ­Ñ Ã0ES¯Þìÿÿw*Œ1bú´KË9Õ¦W¹žr/¹eÝG,³Î\ÄÝ—<qs“uäKüqBdºO¹¤ç¤žã0€T¨¹»¡ÃFB•47Eg SUÄIކ»s ‚mÜǨ�šy7 „<˜s¦Ï5€ÐÇØDŒ@ò4üWðz¦e>+½ùQ–Ͷ¶ìœ”Qi0ô\ƒ#ôHU’'ÉQŠóûŒÒ T©ôF¥vt7ýòHÃ_föÓ6BÔGãµõÿÉ$Y_æ����IEND®B`‚IMAGE 610 ./arch/construct/town/prison.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���?PLTE�1������-ŠVcD¿¿¿Ù¤±!!�c�ŸQ,ÿÿÿÒi�Ì�ùqþ¿ÊÍ…?þÖ�ÿÿ�ïå‹@@@ÿS7J���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ #"bô×è��œIDATXý—Ñ’ƒ E½¾l§¾t:ùÿoÝI ÂØè`«ä.Aã¶Ý`Žý&UÀþ1€ºMì¤úâõaƒàÛa4¤@0¶UÀ§Aõ'Vh € ßh·üã4ŒL— Ʀr�€FXD x¾Žã0dP‚y4ˆS(E|¾¾­„ @ðjÀI(�€÷[®… 1PzþŠ«€¨`Äiìú·d@ñ�)…(úþˆ PRyP K‹IÐôj¬X8ŸH•ˆ3€e îñg³@«�K™Øo¶A…q*0ÊÓ$§A§¼IW �¿<=5ŽàAk#WqÀ÷Øî�p‘˜…0ïÍ#Uþx;Äy€yÐ"@äCh¥ÅäÈâfÒ¿€kmpË»’XlñÐ.pô ÌA!¹�©JÖ0_cw�+þ›’D™å”þ.=¼—ÛÉI1ü+@0q·Æ_ÔþW�ÔP$€ùµªà™‚ pÀ 0¦ÐëÏßâ8ýÕ­rüGi8<—ZÝë����IEND®B`‚IMAGE 2015 ./arch/construct/town/prison_fant.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé��§PLTE������óYYöff÷iiørròTTðRRó[[íGGíIIïOOê>>L�òVVòXXëCCõccöddä44÷ggä66÷ooå77ùssùuuú||û»Ÿ‡»¡‰¼¢Š½£‹½¤À¦ŽÁ¨‘Ĭ”ǯ—Í·¡è<<÷kk÷mmǰ™Å­•õ]]ý……³–}л¦ìDDé==ß//ô\\´—~úvv¶™€úxxûyy¹…ö``ëAAûðPP©Šqæ::ðTT¿¥ªtÂ¦Žæ<<ë“t!�ïMMÆ®–¯‘wìFFȰšÊ²œË³¯’yθ¢øppѽ©Ò¾ªà00Ë´Ÿûƒƒ¨‰pýƒƒ°“z²”zß--²•|n.d4!¢ƒhÜ((Þ**µ˜õ__«Žu·š¬vɱ›¥†m·ƒ­wͶŸû}}íKKϹ£Ðº¤¦‡nѼ§§ˆoÞ,,ÔÀ¬Õ¯×ï×Ä±ÙÆ³Ýν©Œs¡‚g!!!îLLÚ((£„i¸œ„ €dÓ¿«¤…jÕÀ­éAA¤†lºž†ÙűþˆˆÛÉ·Ûʹ¡eþŠŠ4X¤/���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ $#Z²q¹��±IDATXÃíWW{ÛFô@€½÷6‰”Hõ.Y…Õ›%¹Ûqï½;ÍéýGgHØ90yÉ÷å!'òBw»³³³‹ã©SÿÚ�ðÉl}W¼_ƒ¦¹s•Ðç ºúädŠæž°t<‡%ý{$æ¥yø«HWÀ#݆÷Z²=w¾Ç34»í‚ë­õÖéá˜ï´¿ÒQŒëÔèÑ™`*üEw.øÑ}œƒjm�ŽP­y£Ÿmì½ÙØ/}Ðø:÷|1·86§Ý}¯ÝMÏA‰vá�ÊüCb:}v#;·¸pváé½µÅêÎ+í•ö6»ÿ6ûë»Ìov1ae�I›ÒKö·+5ö^åÎ|[è`)?y¼]‚mÔ¤);Q”{“](Œ¥ïg&óç¯/t°ä²‹µÛ$f¹?6:Õ"#™ë#;VsZ¹^K/w°4^j¯s°Q¢­ ØÙa€8N§Gž,Ó“å¥ÚÒRËÚX>3†�%Ú €bÎñf±t5{³ø]}õê‡ ,ÅÌòr„dÙí`œã½Fé \ºó`sí¦v¾ð>}ë6ÇR[š,O"ÜCQˆ8‘$α‘ó›éÒäÆf^+nå9–ÒÎÚÒsØZ �Ø•£Äñ¦‘ó%RÔØV®ÍV«ÕÆÞƒƒòz°n@z‡‚Äñˆ‘ó )êé½êóÂýê7éçÞç>oÜ%A+�G¸dúÜ7r^#Em­nj[åÕ6$T¡øš-$Q1iFÎ÷HQ¥Z©^»s©Mq,,& 0B0òb2r~‰•Û.\ÚÑÚtÀ',&Ø›Þ~úƒ¼˜Œœ7HQùòêãÒ»6‹ N¯BXÌ‹ÉÈy™µU}{™{Ö¦Ѝ˜àgCŒš%;´ñb2r^¯g´üùBýVzm«x¢.q1a äbˆ²ão¤º\ÞØ/·÷˜™šnÚ»ëp¼˜>éB&EfÈ¿ ˜àu¹¶^ÅpŽuw¦.dRä6¢bÂÝ¥ÌGEÀ9ÖÝ™ºI‘5LˆŠ .ç ëéç‰àëîL]ȤÈ×ð‰Š ÔØa”ñ¶MŤ»3u!“"3ÔPÅâ0Ä’6B@×uw¦.dRä2Q-€8t;¤)ŽÀŽM={¦.dRd™t 20èR\Êè!8ä--¯Ñ¼ðÓšOÙ¾ ›$â 2È8 \Œ?zCîúx‡Ý¯pÐy4?ÈmazÅÿæñŽ‹ #B¨L!<Óß~Ÿ{ä<ðñ]A1”1É·%T›+1¦—LGdʸվÓtnæR¦@0Ô^¥˜¦º8ƒX„tË¡H‘Eq-éÕB3ê…+Äæ‘ò"…qøˆ´$â3”4"=Žø¸Af<t4xc�)AªÉô¦Ïˆ ãß:â*;Bë´èˆEY�H è‹©˜QÛûè*¥"¡ÒÁåèØBKö [êEÞÏnpšf§ƒêð—üx¤úN¢vô…â¦NÿS*˜NôWTwå3›·Wžˆ K3QŠzü†Oâ‰K’Åci€#`ЗÎvå_:)Ô³ºÞšVÂbM½Ž“xZ1è¢õF�Šô¢¥£3À³@B$Vg¯lÐÅ×ÿ%�1úù’*„Sç0" õIý˜©S¢žÑÑ­[Nš +Álo{}„xìW£ý³ÉÙ~B#ûÂV¼ÔhtG„—¼Ÿ¬—üê _'«Vp!�ÝE°ry…òÍ×G8;•:AãY]ï³4pQîž••+++èë{;%Àc [qý º#Ðæ+dúzŠÀÈi÷¸¸êøvÏe7@)SÏ8íFN#èrJo‚«´Ÿ  ”²ÙþýNQIuðœ0àO™Y@IžË®?t‚¤:Π΀<`³€§¸›w%11 §Ì, y¢¸ûo=>: ˆÇ©ÿÇmü ¹jC)DM}A����IEND®B`‚IMAGE 346 ./arch/monster/humanoid/Human/prisoner.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8G$Í…? R-���ï§_��€@@@d3‚B'¿¿¿KÛÅM���tRNS�@æØf���ÛIDATxڽюà m³µq þÿϽ¸A‡ªÃ}¼•NfXZáF§ðà”‘¡ºøòæñæ"*y¦}½q CÜ]ShB»…ð§?sè‹ïtv"À]ˆöGx Ì’C7Z1¸°º1óÅ}ƒ]¹ r¸ŸxV;GÄý‡Š—°"‚Ýèa‚ƒŠ¼ /ú"8ÐJ¡ÆhW8uÁcÎRóŠÙµªó‰f-Œ›”BO°ö¢Àl ’× Y°†‚»}àØwÍ#Çï ÛÍ TeJÿšTîÃá~ò����IEND®B`‚IMAGE 346 ./arch/monster/humanoid/Human/prisoner.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8G$Í…? R-���ï§_��€@@@d3‚B'¿¿¿KÛÅM���tRNS�@æØf���ÛIDATxڽюà m³µq þÿϽ¸A‡ªÃ}¼•NfXZáF§ðà”‘¡ºøòæñæ"*y¦}½q CÜ]ShB»…ð§?sè‹ïtv"À]ˆöGx Ì’C7Z1¸°º1óÅ}ƒ]¹ r¸ŸxV;GÄý‡Š—°"‚Ýèa‚ƒŠ¼ /ú"8ÐJ¡ÆhW8uÁcÎRóŠÙµªó‰f-Œ›”BO°ö¢Àl ’× Y°†‚»}àØwÍ#Çï ÛÍ TeJÿšTîÃá~ò����IEND®B`‚IMAGE 214 ./arch/spell/Change_Ability/protection.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���{IDATÁ± Ã0�À#4ˆ žBSOˆ¦øRáÊ•x4eî��€€ßÚ5êR<‡º-h .ÜÐpÂ$”®ÔP:H;ÀiÓ¦ ¤7pzi%”G¨ _h¸àÆJê‰cR>áêPÇž ®WÇÂØÜ$+?¾ß����IEND®B`‚IMAGE 211 ./arch/spell/Change_Ability/protection.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���xIDATÁA ƒ@�ÀI»>zT¬ÊX ý”8•����8`ÙÏòšÏ ¹É ÞÍ80àƒ |a¼ZÜ% ¢eC–lÈQ¢!ZŒâ†&.80àƒ÷ÍÒXÖö+xÊÙçöö0'�üaG¯i,¤����IEND®B`‚IMAGE 201 ./arch/spell/Change_Ability/protection.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�����s‹²÷���tRNS�@æØf���nIDATxÚÕ’Ñ À Eçùÿƒà ÎÀ= Í{;Q^Ç+ÚnD<«Ñ�,Ý{ß´(@—êÔR­¤qd Vne‚¥›š–SÍ¿ ÄíïP1»Cû7ò*aòÔ>¥ŽbÙœX§ÓLqæ`:´¢Åÿ7±ü`ʆP����IEND®B`‚IMAGE 207 ./arch/spell/Change_Ability/protection.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�����s‹²÷���tRNS�@æØf���tIDATxÚÝ’QÀ CÇ»ÿ¡·@b\ËØï²~¨¤P¨zü$¦„¸À@äÒÓTun´|õ‡<vúìÉ>25P=å1E$– ´§JÇ[‚)TÈÚE00Ù’³åWy¿ÿ-苞3êæË £Èƒš“ô×p|wK ùÿ|����IEND®B`‚IMAGE 195 ./arch/spell/Change_Ability/protection.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�����s‹²÷���tRNS�@æØf���hIDATxÚå’ÁÀ Cíûÿ^"¦;Tæ}ÖŠ„ÖâøXè 4Aw;W…m{ ÷ÙмYVm28‘ V´Ž °Rê6‚¯ê;œ5@´¯aJëDã¤gám’rXžQ8|‰q–T=ÎÃó:����IEND®B`‚IMAGE 187 ./arch/spell/Change_Ability/protection.116 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�����s‹²÷���tRNS�@æØf���`IDATxœc` ÐZ�¡¹–F5€œa¡†jÚÌ £©3ÌXÖéfLãl˜f„M‚0fÍ ]Y¹* ÌXÊé0 ÌPkj‚hWZ ah†…®€Z ±‹A-r¯��ÎÔ@e.’����IEND®B`‚IMAGE 185 ./arch/spell/Change_Ability/protection.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�����s‹²÷���tRNS�@æØf���^IDATxÚí‘Q À0C—wÿC¯#íÇÐx‚> JÒàsiaÄ* ?+ÐÂ[Ð`´§«Â,ïÖÏAØÐªÂñ'zèxhˆ‰ ÆD&Æ´ø–é,ò5ò±Ü˜NzéxHæƒÿìY����IEND®B`‚IMAGE 321 ./arch/ground/Pstone/pstone_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEŸQ,ÒiÍ…?Ù¤ïå‹ …à���tRNS�@æØf���ÝIDATxÚ]’ À Ñèÿ¿Ü#D"ƒSéRØKСñ ¶¥öuÎW“À5‡Êrÿø£¡¼Ò Óàw#á@ž_­ÎË+¹DP¾UŠ�å»…gè%ø\ø=|SOŽþLal\}°€.÷¿CFímøHåâ( 8aÜ*\Mx[Ñþ®¢ÀÑAˆ[e¿(nÉûàòÛË„1D¥Ô²àa&»bEh×*Ÿ€¶_I¹,ðùyµd%µSlW“€÷¡Ýì_Ö ç.‰Òt‰LRBéa”ȹњ¸Ïç°mÐm´¬����IEND®B`‚IMAGE 2167 ./arch/ground/smooth/pstone_1_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���-PLTEÿÿÿÍ…?ïå‹Ù¤ŸQ,ÒiNNNHHHœœœÀÀÀ///ÿÿÿµµµ333R‚ô���tRNS�@æØf��øIDATx^í[m޹-±À“ €¤™P]¶å‡íñþu’ H #,‚œÀ¹@à=Jî“ìªê?Š­¶v´žd ‚màáÕ«Ç&«›TK†6vDäL´‹û[\‰'ÞxMoý¬û«wÊør*ÌA‡¤nq;ZÕg¼¦·þÖý=`««ü o.ö×1ÇÐà‘þÆš“¼Å•xâC×ôÖß+X÷Î臺ÎøÃúþ°éϾÁCÓŸ¤NÒWâ‰÷^Ó[ÿ¬øC£w€Ìžñœïâ˜Ð¬÷�Žÿ¯Ö_ÓþêL÷Ú5-®Ä(|Ö›|‹;þ5¶ú¿à„=@£W~FœÿϤ—ü- êÕx¡ îß`ž»G}n„?Õj÷T鯚ó­>´þ<ÂpÆ?`“î÷µ½Ô?iµ>DT½_çCÉŽ*,à- ‘ˆ"xæãH©ÔK‹FÀœ?2/—8ãZØß/ú`=zÈi¥_©—úÀ1pˆŒëmc¤^|_¸4à˜¿¢XÅÎ3œù­¸ŸÑ½Éù?áŽÿ'Áú¸Ä¿¹w1Ô¼ œÖè•ú8±œø£ð“ÙßvÀÁÁR g>ޤñ¡¥‰˜ô$ݰ9å“òGáàžÿQÕJX~[ƒG?Õ?¨ÄOìïN¡þ€‡r¼Æ@“–CMâ^ÖôXQr¡ùÎ ë æO¼‹Qš€qÏ_ä%ö�8×/;œävÑjPÏáÜD2my¢}¤‡ø¾%ÓUêß'ÌÄ¿=j¾ò¦ýò}Ü.úûî¤úŸýwë¿ÇAĬ_¼èñž0Ã.Ot8ðІÎCHøð…l$?*òw wëû%÷ ¼¥7I1òÔ²ÿq©~ä–õxí ?î£(•ç ê>@¢ðVBóIùÜ—+´þ'X á-¡«IØÿ“«êçð®9ç o"c»<‘¬§%“A¥fƒiýáË1Ç~}€\d}|8¯÷�Ù;õÅqw=œ‰y3ºiHÌÛ§,ªf$櫇T¿¾Çጿ!fÑ‹¿­ŸquÉ0{€åãŽWÓÊñ* cöŽâ(ë3® ü©>°ê¯”T?8ÖÿŒœk;�Åÿ´þKà+ly¢Ç|¤¶'AÓêE;ÝB3͸[_w«í‚¿à†ë”ú¢ÏöT®é€Ÿ¬? Í[~¤d6Ä…þ`~þ4Yö‡ýHÕ-̸Yb­óüZÛ{.À—@ꋾ¾P�*B=#Æ`Ì ËËFZžžJÆrŸÅ¤‹¬-ðk»“àTŸzû“›ü½aó§ú¢×»é_®©/|)¿ë½Ø×§0ËsÀviz˜µÕ‡ Ù™ÐìÓ¶~<ÜÛ­d=fÊ¥üSýSļÏoî��á·€¾¯½À,2?Í"öx"ægÄ8sDļ/ÓÍ�¤>;¢<Ù‹„€;€MóâHë‹^/šŽ kZªç„ß‚goý—wõp~œë;ÆBx€ÿˆe}æ›®½~x~°àÂä_·.w)_ê Ïïbpâà-×P>…#0ß„¹<ËÓÃ’yS,$àHxßšÑC¨ïæ΋òn,/—/üÑÜ(3벞>¸Éß1�­?ô_‰…•%Fß!‡]d>X òU~ýÄÙ©¯Ç&ò°‰Pv̰øcᯠyÕûg=Íþ(Ç6‚Ú_ò»+l¯ÍòŽh+=•Pù,|B^±¾º~d#Á¶¾«O“�’:úÂ~ö—ÎÚÄ ÚhîÒ%?w¸‰*}lŽ¢ÊgÁ”PtÂ#Ñ#GÉÿ.¸ '€Ê{ø"~¨ù=}á¦z0úÄóxúGáæÅ´å}£tíK}ÂÅÀHͦ|¢åœpÂó~^ñ{p ?,b}úC³˜jyÁ›÷ÍéÀò?R¡· |ƒµžY1÷éyÌÚoÍß2N´|·Þ™}Àð~‘ŒQõ[>Où²j3æ¸6×å;-NʰËû3[„ê3¶|VãœÏkÂãy m$ê°Íð2>yT|ÛLg>wÀÝ”¿£ìÝà àÞç¹r…/ãixR>ãŠGæ?˜üé¡õxÿxõ÷kßÿ¿6= Ñ5ßÿ—øué5§)`¿ÿ/ñ+Óë÷ñ°n$å3þ®ú˜ôá×õý~݆ýþ]ñåú�¿T>éýsýþ’·Â_ŸjþËÓåzøÅúÀzC&Üåþ™Æý­0RÍ#]®‡U½ }±g}�¿¢Ç�ýð§ñ㢈$ÓDïtîêaEŸÃê�Ïù—\ßÿãöþ„s ½–þ¬û7ù¾Ñß÷ô ür`ÃãÿŸÞNÀ-ìÃæ5Æ-nq‹[Üâ·¸Ex)ã¿’AüŸ‚ð]¬Üs‹†×Únës¾ïI ^8ܶDþ×_•»],úßVØÞ¿‰7 ÏÂM=ª±oyßÕ™÷-ƒåÛW`íŒ0SoÃÕàX>ÿ ¢�@¾Àr‰¦ »Ìk½‡ ½ßuÂE¢.>ÿ{e<”XxhñX`ô¦žú[?ÅW~êÅx)¦wÍ ¿« ˜·Ø78û]Н<C¼·ÿy’È7˜Vqéw!¾ö-0Ò¥¸ý½AŒ¡Áã:.ü.Å×Kqû{ƒg`ñ»ÿ›ÇIM÷[����IEND®B`‚IMAGE 362 ./arch/ground/Pstone/pstone_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcDÒiÍ…?ŸQ,Ù¤ïå‹HC·I���tRNS�@æØf��IDATÁËmA@Á>8J@ÖÝÄ|îÆr€fûÝñëüCpU4U`B�ÚÑÓ4š’þ¢ XÄÁUdM|MÒ`Ï¡Ÿê ÏL=ßÁ}Yô% i輿dPõ`3H…¡h|^€ç#íì1_ã"µRc4†€žfP %ýÛ I!—h‘†Í⹘i�OÒ3ÎCi¡à™ä ýýNA!-b¾÷*¼î·iÌÉ‚l¯± …´öU …�í¤• OC!-RÐNÀiª[ÝnúŸÉ £ }‘çÇG !¸ÓbX(hèP@!��ÒMZ„ðo’öûç*Ò°H-Rîa}ÿ©>«¹Â ˜–����IEND®B`‚IMAGE 413 ./arch/ground/Pstone/pstone_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTEcDÒiÍ…?ùqŸQ,Ù¤þÖ�ÿÿ�ïå‹¿¿¿<2ê���tRNS�@æØf��*IDATÁAjA�Тà:d17Ðe,f¿†mziÆ®I­…i³öC¥ ^¶^Ô÷¢œýÒ:ç„(EOxüI#ο³iG†E#@¯‹“Ä¥ßÑG¾à­Eù7A´¨s€êˆøsÝf­(8N“x¾lkºõS2j‹ùÓ¶&½¦}Ú^ž#ç:' ý²Ö¯ÁXî ç>ŸÏšìðN9ÜDo¨@`ÏjÏF §2�Z nò¾Sƒh†q8mëçÑ»&`ô˶.öùiÀ·íšŽu[—zqÿ·qÿr3rÑg½'ûå< úÓº`´^—" Œ{2bh�¢¡w£ÑºÌàÁÜàaŸ>Ÿô¼ŽõGhöïW¼>^¦È¦Ï¯€ù2EAyÕ*­ßu±€žÊžý?jûôÅÝVèb����IEND®B`‚IMAGE 373 ./arch/ground/Pstone/pstone_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcDÒiÍ…?ŸQ,Ù¤þÖ�ÿÿ�S§Sò���tRNS�@æØf��IDATÁ•Û0DÑŸ:™Àž@ì�+Í3€=•´ü)ôÞz½ø ö¯NvÊ"¤SïÑ à$P@dN†À5¦Ñx9 özçáæj×%2(¸!@$ªA3z7@0K"4žÄëNu± ßíúÁ9Œ¦¥ èŠ!9Å Æ YÚ $}Ž¥˜oÍ'T™H2 0}#07ÿË/æ €tÝ1Ù, "­ ‡›o ƒ˜¢¬1çgL9¢ºô”¡iÓt£˜Ñ S×Õ´ÿ%€RX{ç�:ᣊ\ÀôÜÌÛBœä±âÄ‘8 ˜º—–>W«ÏB×B;eOHœÿÀ†t;§ÎsŸ����IEND®B`‚IMAGE 2483 ./arch/ground/smooth/pstone_4_S.111 ‰PNG  ��� IHDR������@���[a?���œPLTEÒ™·Ù¤­e(â°Ê"È€"ºk%Öœ'­w¼z%Ó›ŸQ,M%¸]%LJ*œS"ôɹr-žb"«h«W(וëÇÅx*¶ƒ¶r!¹}É"Ô&ë½Ňࡪo'»Œ·d-Ð~Ò~&ؤÇq!Ƈ*¹l%êÇ꽬e(Ò›»z%Ç€"Äy*Õœ'¶e-Äx*Ó&ŠæÖÄ���tRNS�@æØf��ÅIDATxÚímw·F/ ôZ ]*¦ÕD‘-;qÝÖ}IÛÿÿß*‚K »ì °¡,YºŸ2y0;3{’ç<ƒ%WŸÜ_VîçWš¾rÝ/®6¦ˆ8Ï�k=%6Î_ÖÿsxÞg×/χÀ>ÿç»øÍó³Þ®Ö¡{ÜZÓÝU\¨)!Ï+z[l_ÓÝ—“ÎψÚy¯[ççjýcð›àV¿iºKç¶µ1%äyEñµ½¾>?þÝë¿ÿöõtžÕïû÷ÆùÙv7çÁçƒÓtç»ÎÕÆ”ç½-¶Î¯éþú­?>Ϻy?·ÏÏÛÎ-×ÎZ|tšüÙͺ6¦„<¯èm±y~Eÿ׉çgHå¼_›çgÕ¹7~ÑÝøUÐô‹÷¿†PS sžBo‹ÍóOêÿ,=Ÿæù!ê…úI~ò~Êó×Mó³]…•í KMÿäÝÖUÆÈg€ÐÛbûüú?Jχõ‡çæ§ý•æåHåülºîbyæ½ï^iz·ú\eLÜyR<BoŠíóOé_ ÏY?‘ÉúÃç1`ØÿQ/Í›>u”¯áœ «ÛËwÝmY§gë¼»?ïV[ …î<2çÐeê©1ýç'r{‰Î¨R ýçgHÅüÜåwçï?Ü„€Nðáþ¼å;õ4¦Dæü¨0~žéÖù¡v~äüô¼GEôOʇ¿çú/ÏÄ8?áífáo6¿\n±ÑŸ—ù«ó°>wØ"ò< w1°Ó.Ï˘©nªæ'7?vdÿ¤äûߟÆó“Á8?«Í›Ÿ7!¸+ìlrùçþinSFž'%ö³ÓÄy%¿×­ócfw>??fÔ÷ŸÄ£ùÉ`œŸ·~û·mçCÀˆÌóýÒ9·riÌâ<)±ŸNÄËóã˜!ÝÜÿüù©!hóËþïb¡÷ùÅ÷kú3Àêróc@AËw›Ðu¾Û$1“ˆó¤ÄäΑÝy6Åz 9è(hýž*_y_Zÿ£ùËï×0€[¿ùÓë-¿ þõùÅÙ÷1ÓLŸï�v:÷Üç‡b=õªþgÍO ãþcLÂA·å#1ÎÏ2¬^-œë Z¾?; ~1*ÃóÎçuQS½£^ÙÿŒù©@ôc�¥ÿQ>’^·ïÐFÁ¯ÆÀÈ¿Îï ˆ¿ ™zâÜQ¯í¿}~ãy äïðÉZ?ã|$Õû�¨Ø÷01ò¯Qð³·óÇK~zCÿ­ócàîùý}"«5šŸ/ò‘Tï bßÀÄÈ¿fÈ”ŸñÃs~ú_E¾uß¡i~t@ÑßgO`&ç7õ[¿€†y_�ñ|±þÐÏ¢ÕOoè?Æ óc¤ìïãòüÙ~‰ç9à û�h˜÷°Ï—ëýlÅ//é_úqËü‰:‘ièë÷zÅ~Gœ§a� ë¾�Fâùrýª}‚²^׿ì§\_æ“'êâüÈ¿›Ÿ_ê—”Æ}€¤?áŸgu Œý÷²^Ó¿ì§¿?/ó‘÷€c̤Ÿ_ÈO‰qõ>@G·"ýþ¬Žä€‘?OÂH }~ý~="qžÖýàgüü}<Õ?‘C¿¨Ühù釛‘~~Ö/·æ+zßÓ~Ac~{ b8êàƒÈå“Ä\²§jÀyj‘~¸Œ¿OÏ9‘¨[÷ ôçÇó~Ac~{ ô1|à:ÕIÎ óûX4øÙz~ ‚Œ¿Ï¨[ýtmß )þ"ô‰•þ2ù@æ< ºŸmϧ‚¬¿Ï)?[ìhûÏ5žígÛó©Cߘð³å>€æ·?ט‡óéCÝÐýð4_óÛŸk<×Ï>]¾ôÃ+ü|é§3b¬?×x®Ÿ}º|á‡çuk>#ÜH®që÷æûùµ~<•Lïàªêsë j÷˜÷þõúºŸ]‡›öókýx*‘û�íõ̯Ïç¨?ìû—z•ŸBËý~{}˜Sh¯àÁê‹÷×üþgï8ªÎäçÛë3«>´×GGŸŸo:¿Ì¯Û� ~¶ý~^GAä7Ö‡æúZægîüŽÓ½Ý§ž`óóD~c}h®õûóæóê3ľ�ðÚ£¡ßoÔÝÏŸYŸÖú´!ýý™ó‡å¼úgž&ýxöûùóë“E­ßŽôãóýUìS`'¿_З½HûÆðÓM$~4‚[Ì÷óQPëóðH?^b™ŸCÿ·+…}‚Õ–žÛý1NÎäýô½~òú| â}~Ïžƒ¿à$󇎾^òþïb¸ }?Àîy6‹r¥sÇwÉpÿ@ì#œž½ÿÑÿçb¼gáïtàœoÏÂñ ûó¹:¯Ðp¿ñ3Ä~~â…ï–Hè|€eóÂ÷ÌÞïOc�:ö\nxá{æ t¤ö!.�X¿á…§ˆùû \çä~xðjÁ OéßÓ£ûønQÎ_9^x‚\u0ìG¬‘€Õ.Ÿž!ýKìþÄË¿ùÏO†î凧ËG,×Hâ}ÿä¿þ™ý8»!!ð½óþWˆŽ)<õøU9ö É÷vþ¿¬¹ÿ=Á>O é§S&úÝœþDYîpŸ?ýžÀ`_ ™—žÜþCòû}Ì#Gñ«5½z㾃î×+ùK-ð]yŸ€Ÿ/žw¯'óöß`O¯Ë~âóyÜô~v›~ùNÉÜ—'úõy¢nûþÁ”Nw«å+¿—Àˆ¡|Ÿ�€‘žrè×;+Ê÷ü5ýFè¦ïñK¢nûþÁ´vý.Öú+뻘ÌÿpCpìt+Êýõ™zæþ=yz½ù÷ôçËßOˆ±Òß´¾)}?OÔy¤¨÷×§õ ågîË·ý^‚òûmzî>?Cféרë<R”ûëªÎ´^ú=‰Y÷š¾tŠÎ‘ì}~R4M§×y¤(÷×UE—÷åÕïhzhÏ—þ½ö{Aѱê<V¬÷ÿ­ùê÷ÔïhºŸ«gû;•N¯ó¸÷÷O­kß/°ëgsu¥¿ùúˆ¨ÿÕ`“3:8˜ß����IEND®B`‚IMAGE 439 ./arch/ground/Pstone/pstone_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcDÒiÍ…?ùqŸQ,Ù¤ïå‹¿¿¿(­Rj���tRNS�@æØf��JIDATÁ1ŽA†Ñ’¬]0X>¹G­ÚrŠ66Í?‚­.bS ¹®Í{Öx‡øT`±ð âÀZŨKþ4~Ä#€…Gƒ°Ïõ‘`m­_ÊùÖªÃ.IâX(FI›K£T—Òßî]Þ±5Ø_šüþ–ÒeÞy*§bËÙái¡RyÎT¯|ueÎÛ6µ,aP›ÏmSnwÂ"xÕ]ÛÌ™Ÿ˜Ng)û®T~ï`Äo)s¸rêÚ0(½ùìÇ9oêƒU«¤Ü¦ÆŽÅ@}Æ6·œŽKé™™ÒðaïëOWzz¦´zXèRÊ™·Ù¥ºb! ßò5§¤Ñ0êð#$I’�[ýR\’Ô�kÔ8»Ôû‰Â ±ªïRÐv ƒ¥] :ùãß Ø{µQ­»â`@ z{ªéÔÌáÃ×x P`1j�Á^Qÿþ­o·b¾“����IEND®B`‚IMAGE 246 ./arch/monster/animal/Dog/pup.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���€@�`0�ÀÀÀ@ �   €€€Gllÿÿÿ P�Èh#���tRNS�@æØf���ƒIDATxÚíA C1D3cM¨÷?p'öC?qᦛB_&ñ¡ñç÷@×'!¡7íÞf@THr\0Ü‹ÀØÈ¡;£»Ï<.Aõ0Ldíþ‡� Û�ò\a43~˜(,•Ìš§ Öuw°Ο˜=og�£2ÖR™PFwÆ×xB�ÐÚD]����IEND®B`‚IMAGE 255 ./arch/monster/animal/Dog/pup.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���€@�`0�ÀÀÀ@ �   €€€Gllÿÿÿ P�Èh#���tRNS�@æØf���ŒIDATxÚíŽQ Ã0 C'yN˜ïàÉ.éÀ-„ýŽ %èYøñ×o »œØ�M?¤k‰ó wo Y€Ý�©(¤&ƒ VH] ¼ÀëKY�mÉQ÷@Æ›£•™N0'ÚH$ÌôG_RQŽA¶Ú0ž˜"d㞊T¬4íF�–}¡75Š=Ã����IEND®B`‚IMAGE 258 ./arch/monster/animal/Dog/pup.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���€@�`0�ÀÀÀ@ �   €€€Gllÿÿÿ P�Èh#���tRNS�@æØf���IDATxÚíA Ã0 ½«J¢þÿƒ«…–ØÂS…Ä„ÌD??î<qÌ5@1Ü·\ ºsz± ñù®@Å6T#d'¥øû–”,O€l[RnR8E {�vÈ”oŒ™ `ôÀÞ–„/[Ò�S`%²âÀ)(‘© â\DЋôù ¼�ï!Ú–,å”����IEND®B`‚IMAGE 249 ./arch/monster/animal/Dog/pup.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���€@�`0�ÀÀÀ@ �   €€€Gllÿÿÿ P�Èh#���tRNS�@æØf���†IDATxÚí1Ã0 C*¶QýÿÁ%㡱:dh§ ´ w–�oOî\qâBHüÆY(ç÷\ykÉLá7O¶F¡tX¡¤ñIÝ*àeƒBŽøº‚$…«®@ç'Á_…>üÆU˜Æ@ÌgCý8h °ë·ÉëU×,ñ)TãœíŸyaã.FØ����IEND®B`‚IMAGE 257 ./arch/monster/animal/Dog/pup.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���€@�`0�ÀÀÀ@ �   €€€Gllÿÿÿ P�Èh#���tRNS�@æØf���ŽIDATxÚíÑÁ Ã0 ÐJžcêÿÿàÉ„¶àÆ®c‚„&zćÿüzð©çF@¹¿³wOæ} KŸt'€ ²&9Ÿ)ƒdŸAœôr`™AÖ€’¥Ú VœWZ/0‚FåÙšˆ�ÌŒµ”$t69] Í 6Á®x BÎö?C戹t£¥~ô~u_ä ±;ÞmI����IEND®B`‚IMAGE 255 ./arch/monster/animal/Dog/pup.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿÿÿ���€@�`0�ÀÀÀ@ �   €€€Gllÿÿÿ P�Èh#���tRNS�@æØf���ŒIDATxÚíÍA Ã0 DQÿQlSÝÿÀ•BB£`Ú]é¢l/æÛ¿ŸO»Šè½]sÝ#Wïºìx‚@òò‡x(™|7¸¨»@!ä •¡¬+óTòS¥ØK̉)z]wAÃÌ”':AÍcK�2`Ë}° ‚Í€Æj#Áœ ‘íï–ð] ¿ÚWüÚŠ»‰����IEND®B`‚IMAGE 2946 ./arch/monster/animal/giant_worm/purple_worm.x31 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE�� �    �  �  !#     !   $ ! #!(+& )   ' !&*$$#(#& **(!.,*0"'&% +0-/$-),-.!6(:(7.=4:4>/@4C:F6f"TECF4 891 A1/-D, &"#(, 2*34614,2'4#/'312-:.:& #%#&=+!*(-7,C-E8/B/F00.&E?%',$L3.*)J=N:Q@K;U8/0.OAMFXA`N;76/l%Rx$]%0WI510UD 3;38796 d!B+l V*,)q#TI6./OJIvqpC.ND1,4L6,"9(RG#$YER><3U ;$ ]B:11O$E)#X"M2:6_ J6 :7 fMA>% !e&OKA>?CEB$^YXlgfplj9*…€D8¾¸· 9=dK] OT%MI?DDVR5:<OK(!&hHD715l"\ *s!_r#eJ/ R"5JEDˆ&l* J4A;;!HE?ClBr×���tRNS�@æØf��oIDATx^VƒÓ<Éܪ¶÷£m?Û¶mólÛ¶ígÛÆ_ñf¿x¸8½Ý˘ˆ‰˜˜ÌéÌšªn×4IâÁõõ 2¦Šù SÓ¤¯£¡õtD™è&ÞxÚ>®h¾dÉ0u8x˜¼{øÜ9°Åòæð´¸é×3ŸœyÓömºæMM)ŽÏhtæm„œƒó·Ÿ<ùµ[¤ëÍÛf’«Èü>þð}ðñ9ÞSTŽK<Þ}+µaþTÈÌàCS'¿‘ c|šû–pEP°q~c*uúVð¶'¹°Tx àa>¼ý¦‡SÛS` âü«Þÿ3&Ã…§ TàÏ•`ФœK! ¯å»u¤…; Âµï“«‚"ÉKF15eööS»P¾ˆÊíßü hoHåDU$*„ºÓ2SpH¦^žÜ %‚(Š©Ãl¯x,4F~x]êqQ@ã›Oi–ÁZà•“Ÿ›º&å¸ÏCQK»ö†:Y¦àÝ‘äöÛoºŽ¨jžO6ýeç@ù¢W„ÂSä%kÉÔÌ©qlˆÏÚ_ëªñúCÁ]°€?ÊÌÇklú“+ tôØèS%QÊ,z .ƒÀU膷©wË·7oËæxP¬†ú]…JdätÛœñ× ‘@I†…"FϲB´ʵZ+çO"¥†Å @]…Ãöƒ W'ôË„kc¿IÑU€ò�aS24êÉÆR±È©N@_ÔÇQoÿÁ‹=Û‰ª�Í…t?èmGÖé<(E+‚‚”‘P»aóþrL¢«Xˆ*ÐÆ$e2-‰vSViÑD!¬³LÝA£ 0&Å"m�¢Û’˜šá;‡š)0ýéXŒãíbJ}ÀV.};Q¡€´oÿ',ì]¸¢ÅÔ ã+ˆ pÚ’Ê9›å¾ìÐÒ¥ófµOÔ]Ý“Öþ?ùàŠ&šŒðá†æï’fFPÝñú¶¹»º&†ïš|l[ùWӥļ5Æêz€Ö´$z–73H DYA ל¯lž±ªÎø ëîŽlÇžÓcÿˆS B¬*pË2/�~Ö’íF0 }wÍZ“ÿ2 Ü:V;>2c®¥ RžÊCkjTÐÍØˆ4B9šØ»gÝp¶¿˜Ï°}ggÄjÊênÝ aôE³›ÎÇ=�G#�ª<2ÞtS}uóVTÕ-³oreǪ*ƒ"�b¨¹¾ÝìÔ(� ¬GŽèè¼7a4Ä›­�ªŸã{»×–œyùžóí97„÷ZñÅq‘Ðò¥]/­ÿëΆަ’Þ±Ö“2ÅÏðoÝ}|ÆÅ³;ŽeˆÈ2”¢¦iñÙ%”E"uôÀÐOßøÁó7^9yöæÑ+›F³ÙžU«½Ÿ: *U=w¯93qì�+'™E(í¬`ý¡ûCÚšeãg¼å‘ËmûO N½q|ÎÑmG6ö”…ÿߺ¯N¾øã'šk#¤QúseÍØ{= Êb%ÕëíC5¹N6»û†ÓÞqlýúÓ ;¥i¾Ý3뱋¿¹°&#»#à˜{ea'Úno,kª×L¬…Ò‚ñ #æ1 a`ßÀ©‹ïœž<øéõ7´íûCë‘QÇ)ޝÒÙ/mÀZ3vpKm˜W„¨ÏoûežJZHwWÚ¿ãw×_SdÊ2?;{fr¥LŒ8"¿Z÷O=‚|T‹}-28à9! ÇóÈf<±¦Ö‘É›9°@rÏÆñÙOÝøÆ¨Ô“,?ðj  {t¯uipƒ¨�æA�p3ÔH7WŸ˜µ»ÇK\€åûúJŽ<2hQ˜®‹?vþP–E¸Ïì¼ß;8БÕ%� ¸‰B¯™iyvbx¶ .‘MWf½óD"–ò|¾¶ã·YAiä)²™Õ½;û-€�ä•P°åò¥9}qŸ™V\M«áÂÅu¬üU.šsbw5·fØzwï¼eQfYVc €¼ ª~n|õ]%Œ¦ºÖX”ÓŸm¶K2[j'Æ·hà l§s½»^ 9â. Ô©ºlÕ÷tÇ«M3L\Që95özýÊmñxû‘cÃ Ý ˆ”>SþÂ'‹K¼>‰ ˆ@@’Ò«¿ß°¢}[Ó ÓTTò6ѵcÙ`ÿÄå{†ïܸgÿ¼6D7fg,têLs¿×Çèz¶Ã”4C³Þ»cí3ûÖf[ã÷šT‚|üõ–ļøþiž÷ø¡…iÓ”òVõ4“˜±`Ö3½}Ö³‹c±²çLkAÝìáîëoèªZ˜–5·;�hÚZ½xó•ón¾ð÷£Ç²ã6üQ7�'…Òo_?þDÍ¥ÖŽ×ÖÖ-ïºúŽVí¯ÙUÿûÊtÔÎ\ Šß\Äzã­{[Žf†çV‡yRÖ¡¯Dô–K·ümÙÒòÑØÖõ#³tjïꫵ¤\9žˆÓgƒ&O¹×ªÊS†ˆ@5Ù €€ž kÅU-Úµ¼-Þ>8KË´•Ý[“-1LA¡ò|—ÈéaokŒÅú’ÔŽ(< Ä') ­àYÝÔöÎÙfµš=çÖ§W¶6$ÌŒ„v€S§\"Ceʆ #ˆn¤4ÂøYUåAÒ«UÐhh£.¦.—&¬“™n,TDñ¿»1$�äo~AãD¢P…1[V ‘ò4£G½²¡SƒF�€:þÿQDÞÏ€«é†?슌i0K$ˆD0 Ôvû=>y„éßzšþi��À ªê¿×¦ò>_¹Î¹Q°ù<0Î Ÿ¨à¸¢|J–@#¯óŒ;œßž(#°2¥€uZ!*!€*¯ 6£'úâ!‚Hˆc Dø,á_uCû;LùÙ����IEND®B`‚IMAGE 2950 ./arch/monster/animal/giant_worm/purple_worm.x71 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE�� �    �  �  !#      ! $ ! # !(+& )   ' !&*$$#(#& *(!*.,*0"'&% +0-/$-),-6(:(7.=4:4>/@4C:F6f"TECF.!&",A1 D,89#(1 /-/2* 34614,2'4#/'312-:.:&%#&=+4  #7,!*C-E8(-B/F0/E?0.&.*)J=N:Q@K;U8/0.OAMFXA`N;76%'l%Rx$],$OJIvqp796l V;38q#TUD*,) ./ND d!BI6+,"3%0L3WI510D8)L6#$9( #RG<3$ YER>% !U ;6 ]B:11O$E:7X"M2:6_ J$A>fM1,e&OKA>?9*4CEBC.^YXlgfplj…€?C 9=dK] OT%MI?DDVR5:<OK(!&hHD715l"\ *s!_r#eJ/ R"5JEDˆ&l* J4A;;!HE¾¸·W�`���tRNS�@æØf��sIDATx^VcÓ4Y}2/ÊnÛýж׶mÛÛ¶m[KÛÆ¯ØîÙ‰ÝÝ™Ýî9Q÷Ë='²NUæÉ’Â�¢¢PòŠaØV*RmMÿ |Á\ÏX⦨íê3Šà8{öÐ{äPðÐ4¨ŽR,ŸO\±éû{¯žùÈÌ_l’Ÿ‘l±oÀ•Ë^<qbïÜ |–KfRC+ÎAxö“ï»ãî»0<—\Cf^ò„S”�ú#¯ž˜¾/8“0Ü8wcøù÷6z–ã€â¹$ø¼~}8Ü<]Rðé르üüÃ×Ì• „÷†ï¾úÒ4,@Ñì/ Ê@X˜„sOý$HªXÁ.:£ßžËÍ$O'rðòÁe-ü45ÝȺœç‡7º‚þíR†r|¥€ÚÏ…eY9 RpÓ‰à‹Ó 5qË1N¶ý®ä�tù®ðõ%­P¨Æ»CzÊu&çÑLÂWLŸýä¡`¥Wîüã&’Ðurý՗…z˜”2¡”·®ç•ÎÀƒr®|žž9½ÌQÄB<È-N£eO+‡;~H]Wà\-š*X Eµ&‡XšÝ¶ùÛ½[½–Y%HPp+�Ï”Ü@=‰Ç'æt¤ÕL"Ä}þ'ƒÄ‹RŒ¤Jz£Ê£çbÍLíT Vï×xÈLÔúrH¹Š™º£iR5,Åö�Š´¨éÔi½8ÃK_Ô‡�ÈHqsh®?ÜaBÊ •R`:))ÁÊý›o2PÉ(R,¿„êªÝ™hÍh4ÒLA—‹+©­¥ÖpƒÆM?Èr¸D!KÏЀ¶ _7R§)N ž†ÝºrAÿ‚ûïÜPV•xki5Ð £§ûni˜ìœ?oéÒáìë PÛ<§z™!�Cdð+·=<õÆÈdÏà¾Eñ¤.im˼emM~Ñ¡-+/þ?«aõ–‘¶ê%u~Eâ4µ¶}‰Ö: À×Xkç%”ÿ!!ÚëÖ~kx±˜t)˜â)�½Ëo ÔÄ$4þ×ñS{º²]É/3ë³#ë÷HPº)¢KK"C©~í°JEŠÈœE[F'êǯ à—…H[mcKÚ«¡LpS@òÄ—´,\lj„%Õ›*êb[Î ð/ xN[¼ÉJÜÜÝ5x.®z8p�jtÛm!D�¤VÍê®US¶cêÿÝø’Fíºöñþ²–þ¦ÚðTÏÒJJµøì¸ã ŠIy¦sɽϞ*[×ëýÜç]³º/›k¹jìÊ3SW]þÂwßüÑðýïô*9-[7 )Õ8"VXÇvœ¹°åØîkÿ¥à¯èÛzxÛ‘9—™:¾²ãöGo|èôÄòºz RèãPŠWu—rUŒ¨üÜÑÉÓ£«ßí«aŸñ•î§6l8úþc“§nÚåÝ¥uÉ µe±Š� 8}/ÇlN%ÀÒ–€ÜLÜõmOþ३×v®ÿÌJQ Ÿ:õö…“ƒ%ËòĬW-©*2T£d4¶Ä¢1oÒ…Ý ÈYY{þ—ÆßžßçÊóuêôÝ~ïwì¿­º7ª …ŠjÊ•òEýõÛ/ÆìzØõÔÂòœ_L<чÛ;~ £‰å”Yƒ?»rj´½%æÉpEPDÈAmHbFTD·ùµõ?wçQuÕÔé3?ÎTh¹€ Þ¾Ýó'U·¥-ª%Ì¢¶eèVÇkzL�ÞðÚ¹JÌ)x(co^þô‰­žœ `/™¼g´3c{ a$ �ÅÌv y?î¶_äÙÛ–ÄRŸ~u ÎУ‡ËV"”°´=0Û,]Z©º�æy�`àrf íì_“áHÅf&e'ÕU/æ,qüºÇ2Õi.—è†VöÆšø¢ÆšY*�áçÜO sSÏòyýïî:çI@ µ»Ï • ¹VDôðõÎ796’â·íÚxï¹o¯~8®ºòiܹK!*X±±çöyÒ.?ä`l_œ¬oµ•—jÊΘ“]lqV¢3Û^Ù²­seÓwn)·TÈÀ$ªø¼e³ï<ÿ‚iûòáŠ4ƒ#GwNÌ6ºV5>>~r´×À| Pûæx{vÝÁg×½ÿ²cX†bweMSóyg´>ŠuÛ$A4;æíß³õº‘{oŸœ1´|GO‚{DÌY’4Ôô‚šžÉkoèYØ0˱¬ˆÅfßã ô?;Ö–„–6óæ�ª¶^pÛ1ï¼ßï›/ÍŠ•y£˜ÊzRÑtõo÷ÕM¬{è§·ô¬hX÷JWû­uONÜðV:¤ˆ�ÉhÊJjNöè‘¿œ¿rÞU›g×îj ‰(`i©âÔôtŸì™5tîñwZ[í=¾ñÖíi+ÊD�8Eè¯]42˜=Òz =îå‹íˇ• ”2ɶʲu7WtdŒùCñŽû†W W/Ž9<ãA@€¤jPÉ ª±Jko¥GŠP뻂¬ �n*;ÑÔ¾*ݸèbŸÝîl›sÀ°M.VQ@‘¹]4âãŽf¸DŸßþ·²ÌðÓÒì@×V'Q®š¶¥š[CQZep#`* ê:OinJ1‰èFEòsªRíŸq- �nPóQÓR½Q3CEÚ Lui¶Æ(#²`H)@� ?0ŸKk™È�E”|žTÒE!‚n7(Ë4ËÖäü¢+Y¦ÁAL‰(ÿç¶ ËFÈ«ˆ.�†IÁ¬ôùDý³ ºŽ �€_”õ€RªrI£ùPò'5Ñ›áß ed™þe«‚¬¦¹$]Ôщ\ôZ2ä·z’; "ü¡rë…´Ô·����IEND®B`‚IMAGE 157 ./arch/inorganic/pyrite.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿ×�06e���tRNS�@æØf���BIDATÓc` …1$ Œ¨P(#-"ĸlZ�Dí¬™!µ™K!Š"£fN3B#WBÔ°Š.…Äš 3:„.�� 7 6Å(ü����IEND®B`‚IMAGE 229 ./arch/spell/SpellBook/pyro_book.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE������u""¨#¨ dÑ%%îv�òÿ��ÿ¥�ÿ×�ÿÿÿ|=2t���tRNS�@æØf���oIDATxÚÕ’A€ -H¥ûÿ+©¶=xÑ!„ÃN,Ÿ‚nؼÔšóríʳPÆÐÅ43jÐØ4=·IùN@"€c̉ФKØ�l=Ôpn‘?·Å´쇪þJV78Gü ;×õTtj@����IEND®B`‚IMAGE 514 ./arch/monster/humanoid/pyro_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE4VÙ¤cDÒi���c2�1�þ¤�ÿ��ŸQ,þÖ�ÿÿ�±!!íu�Í…?¿¿¿�Ì���-ŠVÿÿÿü„r ���tRNS�@æØf��qIDATxÚ}’Y’Â0 DÑ.;60ËýÏ:’œ (P%?î—n)ÖåT,­µ1ø|ú Œ÷�‡î—þIoäoz`D‹š>„_c8D0Û¶Þ·é6O’õТ’1VÀR faæ§a8tHÝ€ˆš)|0¢<aVJ`yð‘O À,ô,Ø †ÃKä*-`>€Ö€BVI¢Èy¿�Kƒúþ~“ûO½’ÐF­™i÷ï_©6 €eÁ� ôNAÜTo¡¨"—(r´ ©’€Ý!€Ð“ÐÒ‡ÛÒçî�Юt"p§®g‡†Ø1 �Åg¶Z6™þª€ÊÚ0Rª åÀ¸µ•¤9"VÙÂ~c6ìPÿXþìÛã.Ä!"P„±Jy„¾¥ÃŒbUŒ`añZšc«8,Ö˜Dæ'ÐgíÃN [r¸tKý¼•E@Äç_á?K?ˆù¹F†õêÃ-ò!^ñµÏ+ùðCþC®Éê²����IEND®B`‚IMAGE 334 ./arch/monster/humanoid/pyromaniac.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠV��c2�c��1�cDÙ¤ÿ�����ÿÿÿ±!!¿¿¿ u���tRNS�@æØf���ÏIDATxÚ­ÒÛŠ! Ð]cmÓÖÿîzÑæa˜jh°sL¤ñçÛ±™Àüj;Ѿù‰Å9Ay­ R0p) ˆ(¨öåTëÆ×¯#2ýÝÀ¹³þÜÊŸ5±™äi¨;‘P2„´Z+ÀdàÃç¡ØÊ& c´Ê êz‹†7s ¹ô$¶Ä (øn`+î \פµÚð8àC¾=騱PJ¾®]4â�ñn“$G=¾Ÿ úS$ }Tåñ����IEND®B`‚IMAGE 340 ./arch/monster/humanoid/pyromaniac.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V¿¿¿c2����1���-ŠVÙ¤±!!cDÿÿÿÿ��ŸQ,ÿÿ�Òi�c�ö)šr���tRNS�@æØf���ÏIDATx^­ÒÛj!ÐÔ¥Õ¹ì&ÿÿµF´‘}©×>v‰øõßñ?û˜Ÿ¬Î ãD¼Îöï¾€�4�Û{kqI¨„„ D{¿ÜB2*gà¶ÇPQ+¢½ÜƒÅ¦ét‡o¶mÉwªf`ó¤MW°r/ØÎó$QM8È=áXh›¥²22àµbã‡×ì%“`ŒÄvÞ%…tÊÔÒÁôM¶+8È>(ÆKæP¢;X‹€Ê0^µ@X—àkR5Ì—"Ï× g1ý\$ o¯‰ ˜����IEND®B`‚IMAGE 349 ./arch/monster/humanoid/pyromaniac.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4Vc2¿¿¿�1����cD-ŠV��ÿÿÿÿ��±!!Ù¤þÖ�þ¿Êÿÿ�þ¤�ŸQ,eƒûC���tRNS�@æØf���ÕIDATx^­ÎëŠÄ „Ñ©ªn5·½¼ÿË®1³Û„ýÈ€‡ÒÇ?壸y¸;Gy¿|ïn.½xne?ì © œ¸|cA+(ñ/°ýø]h’w“@?ߟ $™¯°ïx£ÁÏo(�ºXÕ�Áº¹ÃÅŠZİ®+ÀêàÇÂe‘_Ø:77ÔþÁbƒçBÄÆ,Èý•@Þ€à¢HbLø³­7%ùP6?2gbàN€j×q€5À+Á�÷Šó¹Ç[ P>ýµ0 ï2‡lö����IEND®B`‚IMAGE 337 ./arch/monster/humanoid/pyromaniac.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,-ŠVÒi��c2�1�cDÙ¤ÿ�����þÖ�ÿÿÿ±!!¿¿¿äÑpº���tRNS�@æØf���ÏIDATxÚ­ÑÑRÅ P%²AÒvÿÿo ·×(¹yrÜÎô¡9,LyûïØ#�ϩ֟ Veú1Ì’P!%ƒqè"Âú{f:>ÇPEÌMïÇ¡±EgÞ" ¼ Ý™?©a Ø}†Û5IÀ0¯µ² £ãå˜slž<OŠÝ p-бªzCƒf°Ä…êon›øn‰Ž™:( ä˜çõO`\x~3¦†Šn‡L¢ JéÛV[¨EºÑ‚4ù™×"ÏkSL¿�s³æ‹.õÂ����IEND®B`‚IMAGE 7523 ./arch/monster/misc/quaathu/quaathu.x11 ‰PNG  ��� IHDR���à���À���o×���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ 6%Ž=æÚ���iTXtComment�����Created with GIMPd.e��ºIDATxÚíÏkœGšÇ«{zì5ƒä¢ö,8‰ƒAÉ2 = ŒAÐÿ@.{0D—ñë–É) ؆9ÍÌÍ x/ èKþ€i0ìF0"‡!±Ëböa-åÐÄòîzãÙLïÁ]¯Ÿ®®OU=õë}ß‚Æ?Ôê~ßzëSßçyê©§:¿ùÍ#æÒ¶–6Ùp÷Œµ­mm[l¿ü%ê}]Ÿ/úmO·­m­ëû-„ù´ñ¨?m{¡a�¶­…°m-€mk[slÍÐ<”o¸~ÞvD«€mk[ÛnýéO¨÷õšêÿ wÏ:í0i[hM˽º‡1ÃÆ'«¯L¶š@Ø^Ê…ÐÉÝZÚÌnð ×ÏÖâï«ÓÀmý¿2ÍÑnÉðù ¾:Bضò ì• Ÿ žƒ½¾3îUÖÍÍà™Èüí¶cvK‡ïæÎx¾ãÁ>ûõW_±_õ;ì³ãÁ~-M·œ–8|¢;Ð.S©[¯Døx»ÿüÝdï.¨‡mgçaõGÛsê'È‘TȺ¨„? Þ×3+£UBIëüñŸWý}°;õ§k+ìúµ«ìÒwg æ'‡ƒ§ƒ’Ù½t¢€73}ûQTÀñÉj’%–ñ¨_Á­£mvëÎìß–:h‚úvHʽ÷øÒ¿Û8ÚžS=|1LQ¨ßŒ×ØÁÞ€}3^óúÞœH¿ÿýOkeê5A‡»gNvzêÙìö[ï0Æ®*!tö©)ˆL!ö^+„‹™¶¶r‘åÀ÷™Šjß6!cûàs0%d è H*…¨K»u稲>ZóÓ2ƒUÂ\:R¥€%4×JZõN¨2pìÈ,>€¥uÔ½ÇØo¯½Â_ f†ÞºsÄöp!G:©!¬¯õûì,©a*ƒiPÈ¢“” 5\?_€®N&¿"_l—! >`‰ ãгq*3­˜Â÷×Õ?â÷s2¹ÒRVW�_) <>C„øUµÊК Å* Î”™›B•9:GT÷Ýun¹›¡ªI7¤_] |y¹O>ÀC"€MÈ•Ì}·µÁ|Öñ¨? •ôP¼øäé3çÍÔ˜¦hI³IMe1…±h�}“ÄM>aH8ÚàDþ¦§ÄÆÈírßlT ‹‚6í¶ŒÃZ"Ô“rñ5aøZàËËý¹]6~ î}!ש±®{?%NXºÍÜpý–*@×…¶-|•ìÚÔ‡ÉAYêêæš(.>SYÿóMÜ|S7„“Òí©AŠl ?ÐFYÚÒöm}å…ÖÏÎÍô|•*8`GÛìx°_mê>f¯¶¸ì Ø­;GdÖFšl00 †cÅHP*)úârDî*%b겡ºœÖ�uãW¶§”«"uëÂ|:Y^�QfÚÅX±õm–#øòƒË Fu¿§“e)à¥C8õÙÚÊÅœùYŠú‰Š BɃ0Âñ¨?僃›¦‹¯léDæÙéd™Ý~ˆÚÓÓdéj1LQÕ¶/W³ædreîYåb*Ãk*Eýt—­«2ëLj¨˜½£+"¿^]^(„*øœš#~Œz¢XîžuTJšÚôÔMÞ¹^R´®êÁÚ‚˜Ú4õY„bLSJÅ~-1":õ+øÄÈgNæ'>Wׄ@ˆ:Ce `ü@Œéiºn¬"RÜ£¨^”™X}/Ö]_y±ùÌÉü4Á—…š@Ĩbl5Ä( õÙ!Ô J߀L,…ð¹Üg.~Ÿm, :€"ˆ¶QÓ32Æô1KC vÞ‡ÔÆ29U÷?«Oš½é ÁKaþ;ç‚Ú‚Z ©+¤Ù>WTí”·PgʆO5 KðûRªlétJz£ÜWEÁæê³…Êa•lÆØ\NèÜŒ°£}+kóÊÒˆ>SÞ¿Øç”U²1æfN>ŸîÌHx˜±BUIl7„¨ˆX³”J1{CÎ̦¶n[TØf)ÆÜÌ9àbÚã§ú=ÌX!KÆ&½éDþ!Ì •¥¤Å03(‚2º(³xâPÆl=Pö{^‚p–Eî𕸙 È~@¬Ñ©!ѧã`NhJ¤ Êp1Ÿ¯SCÏs'Pj‘|ðzCN¸}ý(o�eƒÊ´†H¡†Œ¢wʸBhšì(ý½\àƒwègûòrŸ½¼Ü'Ý@ÙbmT0gSÔE g�t”þŒK"²E`75x¶ðÙFkù„þñ—_ùÑÐ6Hã3xM*hópd¯˜þ B¸›ÞwIÂàI­z¾àaÜÕÏ?þò òý§dË®æ™jÉÂ5„>õ§÷Ÿ²Ûo½£]–00Í¢­¹ã³ ˯Tõ‡B¶$ ™c×SÀ'Nb¾ÐajÃÊÔï_ÿ}Jª~É�;–Bø™Œ±…t]ásyŸÍàÇ(¿'„Œ1ç5AÌZd*øl ÃV¹Ã�MÏ­¥Mò-wI„L ¡‹ Ú,ÖÛ¨!Å¢­¨†šDeæ‡îtê—>ÝB:Ùw äÊG­~Q}@“¨Ê‰tñ£†»g­¥Í —ž}„õ ;²Ÿkƒ*ÁGáãQ5C€1ŒÚgq0û<�Š€ Dì/>‘Q,„º` ü~lVM ørO ¼„lYæåRdtÄ^–Àœ;H±<Ф‚BMP3¯Tðø„ºê^v•±eæhî*è*%„®Ÿa:’<tÖPð| n©Ô¯q§#É”ÐeAY¦‚¹Aè‘~Wý]eŠj�E‡õC˜Ÿ¡²W\¢Ó)Õ/[�¡R¤VñŽL!Â$UA按erRªT<ÛÏÔ½7†úe   B_Ìò•µÀcRí¶w]HWe&Ù‚§[~ˆ©~Œr8Ëéd¹Z÷âÚÌLÃݳ\<ÈeÎÌE®Ri6\?ÿ·ñÉê¯ ôÎødu*Ö …QÛœ“Ó) Õ’¬S¿‹îE8Ü=ëŒGý…AäÒî=~Àn³×‹ó¾š°ÌÁ¯|'(ÆòªÅ).¦ùk[äÆb©_ö&¨8È|LQ±c}‚1¨ë‘¸f¨b¹Â)Ha`‰±?ª}üåAò=‹P¶‹ÂBªˆ(Fá|+nSîèæÁŽL}áÖWZãt̲þÅ( „ÐG5xùBŸˆ¨K}QT‘ˆeC�’x®ægì35Š:¢Z\tyا“幈hèuA 5̵ÆIŒësÝi;>B§œ„QAäp¨f·Ù€yòô»~íª2*"(€²Î`šÈ”b†6ù©!O•Œû¾T—¢£¢.ËâûÏ«¨h,}~€øŸÃݳ¿K^LèB÷5Üåžbr+Re*h!‡fÈè–&²™|^ƒø“ñ¨ÿgÆØ»ÃݳÿC(µÓU=Ñ¥„¯8Ò”eÈä'j1À~Æû/jÿkå¯ ËªãÏc5^Ý,Uॠ諂UÇ þ`1“м_4åçf?ë8@ԯ˭…(°Ô(�¥¾ ãâñ½Çªå‰¾`H¿rèþZŸº—Œ±Ku0µéY´ *ª Œ®å+¸ –Þ$N1ï×´,à£Øß—“éY �©ö о`]Z©)Áé ‹,µ�@¨+èd«‚1A]¥”k…Ê—‹éY�agÂ<MŒuÐeŠÁ+K\(i2q½VX×3v¢uc�”™£¶'.åôP¨áƒ•µ›¤~°¢unÊW;�¡9*®–t^uS<®³úA“––Èq’íÖqЩ lˆ*Ó³îê'šœ9¬õéZ¥éÉœâÌ ÓùôãQzóF§¨u@Ý UžQÓ…vñW“ÓµîP BÕìÊöKú|ÚS”j ˜>èSÏÅ%áÜ4©7@,ˆÒŽ,p€šà««ú½¼Ü—¦•¹èãu¤·#ˆµÐB¥:f<h1àÕQý òù./ÈŠÛÖ£å}o b#�tQÈ­ìæ~ê¤~â™}”ðL®8¯Ãç€=’®Q�Šv¾ ˆ: SAi[ô�~ôõ#osSæïAð(7âæ�Õg6@ÙA¡F1º Àœ&› ̶ù*ìß@ fl©šm$€ª03ÕY±~î°Q*±Ô°€Eá¤8½Øtñ{éªnvö4MØä³\”T ²ø˜œÎ¦iSô59}”­Žëoàé"¡Êì‹A–ÔéiYLíïÕ9ÅfÒáÐa"b¹”¹W{�C—ѳ±I*(»WYxßål JL˼Ú<W¸ê¡Nõ@Á(»Ï€ñ8Q8ËífŨ{©Öä0³zPv.ð™ ¬S‹ ñÉ?E(@�4™Á¯:‚Àç `}ˆÐ ›¾7ÖwÅ]—@½¾Z'ƒ�˜útTß“»ÊÀöÍxmáÿÞžF·0Ä~äêGÝ·u3KÉ�ŒujN)a·o›ÿøöùûŸhç½O?¨þ.¾W÷3ÄÖA˜õ!ú\º*zÛ´ ‘©’#|2èĦƒÇÿ¹ d¨¤6Iß±­ßüÒ”ðZ˜ÂŸ Rnê'"hZB 0�RB袆%¹ ²Ê1ï­çU2m¬`E. Sßp¥¡øüýO |ïÓPð¨šÏï¦ôyCŽxj,•”*`ÈÝÔ3ž«’åb~Šðéà°UB¬¿gzï›ÃÓ$»:r²°B™´s�¦È"¡�°tø¾¯¡aq1G±MüìÏßÿ$Šùiû<0@¤4—mÀ\�°$ŸÎEýrðýàCRùz!!ÄFIcìð³£×|–<JhÆ ¹Øí:1° €¥Â§ZN°1©ÔNáágFé¯� =6TÁž®­lÃuž’ª,çbZ‹þžNÉdJg|Ù|üYÀþÊ& 9ÆÄ¼pnã¬R{g:*Õï`o0÷ï[wެlqŸh)µ§V?|±TNõ]*%Œ¹ôJ©vêû+�UðöcŒmm+A¤ì!ÌÏàÓ­ëa!tù=ÓïÈ|>Å  vTuèÉ4T”Õ`#€>Ø6޶Q�æ¦~¡Rã°F<}ü=ßEù|¾Ø*Hùümž91/h¼{÷mÆc;;Qú�XŠé)û\Ìv$B ÓÒÂ÷>ý J´3TÔ˘ÏÝ7• §<ž ¾™ƒÇAT}æâ]oÚÅl >‰Ÿ+«3)sÄßžjw,è‚'Ô~ã›ÃÓ,às jØŒ—ñ'bßñ`¿z©šñ|@îûíì<¬@Ô} «3Š5=m?;ÄÀZ[¹P~®M$Y¢K$Ô&bzøÙ‡ÕwcUŽPaßOU ÓÄØ‰é³µ�rÜ8Úž „°µ±¦gJøtç­»\›¨ˆF„¶*xøÙ‡Õ ;›sµ_¹5ì5ÅÚ¤Íუô;vÏ:=<ƒ½A¡ŒnŸc£©²KU.ì½OV+}ýDQY©Òõ8„¹©¦éš°ï£rc |:ñšË„±u.9œM(¹7>Yv Ùù ž¦—®zx¬äìVŒ«‹„¹¾zp÷îÛlgçaŸ,�3§€Ø‹»uçˆì Ÿíù{)Á ¡Ê¾~š¯ECÚ™,ûËô»<^"ƒ¶´G±Ëà6¡Ð¬éÔÙ&õ¥Ò§˜ˆ|> âÆÑ6;ì£â&Ý3y]ÔOuÞ:|uƒOwnC“š1=o¸T©d¬'Fe(ëvæÖà±ÆOž>c÷?`·ßzg¾t90±TÊ×ÔÃVR¨`î b-Åù18­vC,ìˆÏ±æKð„ɧÉðñ€“JýÛ‰È}ŠçÙk‹2‰0Þ¼ñz?á¥ïβ…LÖtà‰÷["|”ÉÄ%lð©Q?6EøŒ�ª`„ æÔž<}ÆchâŸ&ðTðå ž : (l Ę£ØØÂÚÊÅÜsûí/ÞÍvÒ·|V�ªT¶ûÏ¥?æŸ[K›z»]qÚN©àa} ±‰è²g [ü{EK€QT=Õ}«ŒÔ9FV¥’Á—ª¸l¨à‡o D–dZ’Á*¡î9‰V ´l®_»Z„+¤R½ �dPT+ÅŸI±›` ¢i²”©bŽ ÊÀÃÜ_£�Ôùz%°iqÔft*UÏO¢¬…†kn6@•¯'šœ7ot²÷/l@ TA×ïÆø†6ÅlU Êþ}ÇP cn6@UÑ)øðù{J�ÐEBœ*…š@t=rÌw}ÇÐA?—òõµáœuÚxÔŸ®­\°ë×®î¶I]ÇvÍPëœÃ3(ès½µPWb_|Т9S€XC×Å‘)ÖGTU®k«€èua†Ø}�ÔÕ‚É•Á¨¢È¶g*´�fnªü hzòf iÝ0Öb¾)2J½a ªØø‡®`¦4©Z¯tðljɨ²`lÁ³Y¬±•7žjGQ³F;p÷ Óþ|®'äY �ÙË,߇ƒuêmj¼øšX¡ÏÈe/'ÌI=,³ÓÉ2™"2¦ß«ˆië+/¤–Ê\ì Œ½£*#‡Mu2-äúš’9ÁÓA ¡ö¾ ª|ÙÊ b/5l”ÀÙvT?•ùÙîyóV¡@tc<êOU×Àœ+=Ä^. aÍ Õ–"×ëS©_ˆÔ´’wS(x¨ó\¡•S™*†±gëwQvöÉäŠÓŒèÓ pq^¥~!T/¥šºÌa®þ®#ôW•æé¨?¥„°Ç/„ú|x¢‰ÐÅrxEødêW×:'TÇpe¥Ê„0ÀŒ(ˆâ8¢øncM˜`"AÈ.ºsøbf½Ä8Y•€à `Îe8BŒ%lR‡ï÷7n;\tO‘r:/SµÛ#D•ì\ 9™»dWÙ´n“àƒÿ.­¾¦©L&_x²ßÐjîžu8\§“e6>Ys¯Ä3ß[� ´Ží£¯±¦¶X“ƒDX¨×Â^’í¢;6‘‹2˜ QL®T{Ø Ÿª†í?ʾ¤ŽNbƒ5°?E1×Ó˜ ¹0øâšlmsu p|²Êî??d[K›ÒT/Ù ç•ëT‘lI†ê´'TÅ4_5v`Sâ¤ñ5aàÒ6øbSö/6€:þ€ù#~¾úù×V.~|:YþÞPEë�öUU5ÌgPlgJ]w±�bÕÏVÕbG?úúÛZÚDUóÊmðŸÿp|²úRç‹RDQCYž„â³àm}å…öººu‡ëûñbóÐcÇObá3—À{ÿvöçÿ ×Ï»ÃõóŸó÷œN–ٽǪßáÕÅy¥¯ ø²cÀrz¦@ _È?,³“Ém€¦öQPSÂunG.«LN…“5•ï7õ/1ƾA8½þ<\?¿¢ âPBèú»ØsìMoJù§ƒ°¶�Ú¨_®Y|yakió —A0ûëËÙ$ô­ðùÿË{ÆR?ïÁï¸ D޷¤øÃñ¨_Äl7ÊñÜÞïþá§o ×Ï»"<­'] ß=û”­¥Í¹<]¡ ˆ©ú67"¾Áûcì/Õƒ©» êºî— >Æ»ýÖ;ÿ´¾òâ_fæ¢oë ŸÓ‘}.\ß‚RáõkW+KÈ"Êq4Ÿðjo‚––vÆýÐûÏÙÚÊÅ¥õ•÷H~äññeŒ}þÍ?÷ª_àJ(š¤¾fic!·Ö­+|¥¤Á ËÖÒfG¡Šÿà«§¦�‚ D³4…)Ú˜È÷‹a~ú¬U¾Þïþ¾ÌÿH ˜bgw ³ë¯ß…ƒX²欂µòe‘ÏœÍÏWà‘L62¶“ɧPžiÃ!„Ù3Ož> âb&ìÄÇ}ÁX¹¢Sjû cѽÿü 篟­­\L]ÔÌ, (ôîžYAÈ£¤üó`†Ê2ÀÔzµY»Í¹*]·Žða²^`º“Ï¢/Ù©… ˆ’IF§Ï™¤D_¿ ‰k¦Œëž½@øtY/<Ÿ`Ó x’ Ý—cø5¾maãjƒ4>~¡mþ§KÚ`N냵R@|Ðd1=¸På"Tyœ³öh"b&l¤w¸{¦¬>Ç32|Ô¦²ùDI}jކüŽ@Ç ‹¨xѯ˜œ*ø �.ægêsd©lb” bL?-ì–Ÿ*è‚15C6ÉiR²Ø”A(KêÆ‚óùÖqi<€˜ KJð&'‰ú¹4Ѥê#¨„2ß0·uCÑ'Lb¯.ðÅ\ƒòðõà‹©~ªå~=×¹Â2EÌ-§FT[L Ÿ*˜|=q°¯­\,Ôq;§Ñ@YÀ\uŠˆQCŠÚ3ðå2¾b+a¯…Ï>^&ÂVùT,|âq* ˜j¨:2ÛôlcžˆT”ÂY)eYy“Ééz,ZÌÀ‹N)‚1¾jHíŠËNeŒ½^ØÍ>>`sƒÏÆä4©Ÿ­éi×4pd¦k耕jÝ0VÆÄvsßøÍvýÚÕꥂÏ×þ·Ï&ØbR?ødßoÉä †RA“rC©¡ Dt€& „½ÜÀã¿yãõØÂ”ŒÑò/Å’C.¾ É7<,WƒÅø¡,—Ý!üÂn.àAÅãð]úîL{tt¬ÅvLF‹úù6ÛO“/DYj£†!­ž~a7ø\À‹±ƒAܽàq$ö‚úù˜ž25s‰2?4F†JÕB«f1�Bøl/VÅ<úQÁ§òM35Õ6¥Õеì æ^1Zr‡ñïb™"®¾ž®¥8•kÂærm|}“«³Ê74ŰÀÁv<دþ¾q´ÍöìÖ£ ÷›Lù ­S=W3Ów/õ¼=Ñ Åø+6Ù4©Ô0D^)‡ïx°_½T0ÖÀ”æŽ ¾êzÀŠ aúVg†Æö}ÌRÛ±áãíîÝ·ÙÝ»oG¿ÇìRÑd¶w`3à{6«‘Y"|TædNf¨Yjk’ªàcŒ±‡s&híkvŠkŸÌœ,Õ Åª¡K:›Ì¼”ÁÚÿË@UgÙ€è’Lí³Àîã£QP&34gù}Rå•rø6޶£Â—¥ 4 8„Ô¦A,Õ‹‘yÂMµœÍIJa&¬L¢É4•¥Xàe©€üæyÇð™ItŽ)ÌQ¸ÈaÀ$í×ÜÏG 0KMgY@E•¾Lc¦1&(„ÚçÐumԋ치¡Pmù÷”p>•"b•±N÷]T-ÙñãQª2ÀÄ…R›äÕ¨¹Ÿ"ØÂw›¾ŠY% ÉéºÊl²3æKóEµçÑRÞ|¶²…:>[P„ë`oàìÿñ'ÅY T¾ 8à)ÍÑÔ•fÏa½/´¸˜Mƒ[¶XØQ`ÒNª€¡M$^*ÅÓ x€T*È¿g¦htuQ¿þoèq“ @ŒZ'ðL&Ÿ!�p’ã�ʪ±QíÎo[AêÈ\P/eQ]¶‹ŸÂ4ä÷Ï2¢*òWÛ `e”‘àŸQR6‹*RImœN–«Ï”)o®Gw5¡%Â@§Ùf¿ŸlД”F&[˜·9óÎ6 Ëi[A> ¯Ó\rÞ&\’XØ%ÿÚg ѯÝáú¹t²ký¿*` rUAnŠ®­\°ÓÉr(Uúöê úîødõ{•¥ÑÂ×plR3Z¨aàß'‚7Wy °°mñoÁkl[Û׺m´­m-€mk[#ÛÿÑkJYßAãá����IEND®B`‚IMAGE 8326 ./arch/monster/misc/quaathu/quaathu.x12 ‰PNG  ��� IHDR���à���À���o×���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ  IL…>���iTXtComment�����Created with GIMPd.e��ÝIDATxÚí¿‹]G–Çë>b ¸Û‰tƶád ‚÷l2ÀŒ`¥Ì³Ñ@Ã68›É$ƒ"/tàÄÀ>0˜L3‘W8è¤D- j/kä`ïzuçÜóΩ:õ»î}· ‘ÔݺïÞºõ©ïùQuªùãÿ¡|Ú·ÕâèBMmjS[o'¿ûè÷f!²<Þ™zzjS h³Ð LÖÓ¦w±�N­N—Ç;íÔ€S›ÚÔR8™>u(ßbïÕÔ“N­'ó³p»û·¿‰~o¾¯QJM)”©eÐ–Ž˜ <›¶<Ûn•RÍòxg4"`R¿Aèe‚Þ¹q»:ø{¯D>ÐêwÚ±ù®ðÙ'_p8æèlÈðù¸±B¸R÷© Âùáã|¾“GæÎ¸ ͵Q˜£Ë³í¶å£&´Éßæ!œ >8èNtð=;øJýáûïÕ³ƒ¯º/F5­«ßVt/kîÀ”¦Ra&hf§RJ}úaCªž†íÁƒºïíŸbõ+6H–Ç;ÝW„¶6-϶‹Â§'Bâ!Ýšÿúð—•ÛÄÐê÷é‡zçÍi~j5x>b°&OOÀA¸Ø{µŠËgs‘_}ÍÅÑE“@ ´6öOÕÝû§ð¾&ê †vH©Ýݺ2úwû§‡=Õ£àËiŠB…øi¹«N¨Ÿ–»^K[ä77|TûóŸÿ…ëç©á ÌâèÂËD(9›=~þT}ñþ'¶ ‹ì9€¥ ÈP qòèŸ aûlS¾³„ÙijxŸim÷Wè:èJ›÷n}œâ²Ù‚X!BT¯3ïö^5Ú”.ÕîÞ?í¬Éüt ÂH;¨†Ž|üüitu*©Rø8v±÷ª)©2‹£‹·*~¶Ý™ü½€×o‚Ö—\ßMPHÔw“G‡bs™ƒ¶R¾âïO»2`R˜sQÀ!5Ô3³P!’™¡úó±Bp&š�¾fw목é½,Ž.ºç€ Niˆ‘(õñll‚0åŒåÚý9ÂWC¤Sò¼g—×'Ê6Q¡âéA,š¡©¥øû…oj>à°ð]çÀ „РxI׈Z>›\ã:øj^skÚKš²ÏG©€¶.„6‰/H @rs¥ vïç®8 ƒS<ðKÿ<U•Áû€¿^Ûñ\`&çQÉÀœ’ØyàãÞOJ­€/^¾N=ø“ED]ƒ“ßWvÄ n<€±vh˜f¾\*ÛÏšZ¸ß—Ë”dfqtÑ,wZÓzÐ?PÁ&8«Dv2™Ôb®Ö>p¦§i37\4±<ÞicX%3ÝYøkÈ~`¬Y*— âûåvz ­Õþ¦q7rÿáûï{pÆ4EçÜÍp®¦0òãçOÕ=õ±úàýwS› £«¤–«ímýÒY$C0=ß.<Pû§‡½ÝÏÔÛ-n'ÔÝû§Ñ¬ í¶Ë³í !ÙjT2ÇNý”i ˆ‹ÿ6„ÉÛ4AS{Jµ*Æn=ðüòf{~yßhCšd«ýk¥:Vûúß¿^ÛYÛÏþBf'ß*– ž_Þì™h5ùo¡ðaÓs(êGA¨Õ0U›ãÁ¼ÙªÔ‘óJ€h2CMðá< ÐdbŠr }!<»¼Þ™z1'‰Xæg-êgËùÙ/)ÜÛPê�–nµ69/ašº˜¡:2 ׆JׇbS4åsb+Ä2a±TazBøjR¾ÚVäà ¹žQ±?(07ˆú~C7çBMÛ–R@ˆý@li¸šN¥ÀÓ}Q³ù)]u”óžg¦˜‚Ãi1G“lM’(œDcB(V:¿ÂMYUO÷ÝÞÖ/k‘ÏÒæ§tò*1YÌ8Uá‡Ô,϶­ æRC©Jrmƒ’ê[é@ÊefAø|Ÿ³ÓÓ#V¹ ç;­:Õb.5LQ É¤>£&ßÎdrr÷µ<Û |x¬.Pz@bJ5Œ] ‰š@lJã«‚ÔNyíþ!¹"_jÊÆ+UÚïƒ}dš |Uï×k;Þ»pÄ�šLÑ^}J!ˆ)ƒ4‰Jº´ S ªïñÖ®ôCì:,6ð°ÏWZýD÷ zßýئBHclŠ(5KcÛ¬”bfŽ”‘¨ чÉ+zK|½Ò=!Åð“MùX8Æ¢-ÆŽ: ø‡’½I .E Êà(³m2ÓŸËý^Є€Î²¨>8¦lïÚw,høb©ŸR‰¶#Á¡_"—˜Åú¼D˜Œ·-I‹¸M‰›5ƒ¶/é%jg—×;\žm·úû¸Q޶‘Îä.&§DµKÀçr4y¬à‹²Em&ÄÂáÖePi5”jaojPÁ˜Aœ‡]ì½j{¯“®ú¹qJníðá Kø{mèL:À}2ö %&•ÏàÅ*X ÂXþ ³¢áÒܲAß`Œ$o–;Ø<—h-ezÆzîl%)\‚4®ƒ×E]^õ•Óä 4 —Ú§6¿¯ÕÃÁ•Šçø“˜žÎ�†š¡.Aß–ª h€qû! ÆHÒSb“Ô6˜àÏ$$¹ž>—àŠtR•^‹È÷E?ĵiÛVÜ8°2Cš€VJ)2¸�®ïô¾ýù‰ºwëíö$éþ@ ¾ˆ¿ôÒ 8z¡3zä62¨ÆØîAŸr[¾ÐàŠ`õ’5 ÇD<›ØÏ_´* :pJèjÂ…ª tƒ®ƒœ¤—˜¤&“n&ö1=sÁÓÔä,Ÿ¸3ÉÎ]¬¢,¡†ÌÒÁKù‚±– Y‚ÉLQ‰_È@#V“陾Ø>^Œ@Û‹—¯{KSœª© ÊäÓ™Zcd\@´ †Ð•?6( nIï'|%Ò RõÃÖTªæ `Œ@ŒíE‡¬è Ö°¦RAÇÖªé B—Ù½åe«ëåüµgP¿¦�sl‘¡ÌQ×ω–ˆ¬’Ñ!ävÑ›ÔX›Tß/¥êE¿¾Ûa¬"õKi~Ï\uNs/ÏI"†0Æ Î”Â\jS«žËö"®orªŸ·˜Ò ÅJè{Âjm*È@˜¼¬µM©’ç®x®`s¿›Ký”òXŒ³ž%4‘ö¶~éTÐ¥S\jç„pñ¶O)A› ©ß™cÍX½.Æûhqø`Úáñó§zÌd±øæŽ/¼)Q "õý¾U‰×ÖÚ¡]Â:À„qa¢<èzµQ¯F'ø¼$¦ 1Fb|Žë5$ïçürªŸ· šj–“úƒ>¦h _Ðw©1PBëÊTQ²J+Äò÷œq¿¯•˜óÙâ³X1‡ Â<—« %õCÕÏÄ[˜”2ŸDdZiäcòIÀZÊ}½gt�C‚#!*a¬¤ªÄts©¸ Zpd”:‰(2—A8Dðk( |p‡Ç̶daJÿç¾\T#¶êS_TDˆ]]³Iiµ¸Ö`Én[&xÉá÷áþZ]4Þ%)48ÂëäPÂåñNTp ^Àƒ\rED1„¶#±qdÔ60r€?+‡â…,M´ít /)û¬üZ12÷¡á"]9jBr¡u‰ #¢9ÓÒ¾Aµe:ÓÈT3'õI´¹k¯pÐIÇ–ä÷PÊ!zà…;m [dóP84™«ÑUP–èNZ-Ÿ[ }LW¤ˆFœFÔJ«¢•V:—~f–›Eóý¨ÉŠ/À~ŽMõòtÉ•ÐÅ*è’Ȇ»%¤ç –j„i AüÏìo€ ‹‰i*¥‘#è‚¢áÑáƒuëu‚Ò&¸RŽÅ¹AÇ"QÝn í|W²[ "±¿ð|0:ý?'G¹\ŸE™ž0˜—¾åÙ¶¾`ÔfŠbc«¡¯ jõ¾sã¶zñòªz´ùˆ.æ'•ôÏ>(‘®0™ž)”O:ÞƒñPQ•Î’í Ù²4¤ÔÙÅÞ"ekaÍÐRêSª¥4=—Ç;-ìGhvJÚ< ¤?ÈAS }׉ÂÙph*X£Â¤n¾¾-³ÐZÅ‚þ[âóEW@%DIà†îôUÁšŽ]Þ¤æsŒT¾˜¦'V>芹LÔš0.BC`´t’«àkñ سmèꇕ/´Q?j¼ºø}=;XZÔ÷¹šŸ¶Nv}\ÙË¥¦(¬'š Ÿ–t`ºÔº2€Òg‚VÌ‹—¯±?Z£•\àcz&‘ó%3žäÁ–Ç;=à¥%õô}J'‹ Àüê'Ý×MNjsm(|x>ð%0ÄÔ>ì0ªò÷PS F:¡üzm‡¯ç5©^v�M â– �Ÿ:†28Ç¡DõL&§¯òé@ åïÅ€/;€&'ÖeM€Ö4¨Mê0vq„óñó§êÞ­5Þà™ž9¾à€N�] 4šÛ\ ©UZÂ<c@†29‰Äw¼5ÕKýzcÂÄj�ô4æ6Ÿ´ôà€.5LuÈß´È%.ÃÇNÎ @Åti!Á¡Rƒ|È�úìˆ0@ÚøBgªëîÖU#™À]A,€žÐv°kCMÜRÝ4Ôêƾ/Ÿ9÷Ù†s6DŸØF!\µ.·ƒ_¤+Œ¥<õ¹5Âg»'I‘¯T>?µ€Úw!„\¢† ê°Ö¤ÜìV«º˜s5€çºs Ä]à`ÇQÍH{ÉI‘ºöFèZãD"„›’‹ Ÿ-•‚ÌÀÖd©˜šöèGOSå<(7Íô..är.ü¦è¢z‚<¦)êè<xá‘Þ ™žËåÙ\�M&§ëà’»ÝDmyR‰ê¡~Ž^OˆX¿Y´Ïæž×lé¡v¾7M c¨ž-0„© ¼Ñ+ íL=Ø6McªžÁÿë|@ŸÅ5‚7Z�)ðRÀ`ËÁmŠú™žæÕ|û×ÔŒq¢ð`çµ,•œcãssÞ‡ÀøH•ÍxTú(Œ|2k[jà•2ótûi¹»ö½ýÏëþþÍg_ª÷ç~jáa*šÌÏ«^Æb® ¹bpbë\Y+yû÷Qß|ö¥ñÿ@�5„œ\ÓкBÈm Njþ�ÂT5a¬jUËvžÚ „÷öïÿ²ösñ廬°ÄÞIß²%£P¢rc_k0ió+ZÍÖh¦;išÁhƒ.ÅË‹¹î±t´«„„6ÈôÏm CrÌQÝЊ|Y,] «a/efJ! QA×VZ s¾+cd;˜b�¹üZ _!TÑ|”¬õûi¹+†«$„¥�¬©ˆ«‰+…•Ð*Hž_síB°ôŒÎùz,>Æhï-ΕO­Éµ°AÙФr9g"—šúaø8¸r€U‹ú¹¾!–”\mEÛÖú¡fïÿÉѾùìK6à’³á{xòõçUŽƒT¾ÜÏ:§ÔoH¯X«6J t¬r5¨œž|ý¹Ú”–cbîíG]©áœS¿¡8Ç5Ìœ®/™J°—V;?„p“vt„<«M=qy cÓ¶moÏüÅ“G½‹Ü½šÔyvéŒ\ÁšÔð•V=œ‘O0Æ}Å’@àœS? ß³ƒ¯”RJíŸvßÓ J ¥R©!Á§ƒ.ß,óúz.Álç쯔¦Úµ`¨€kê§áƒmÿôpM cÍP)Õ/תÛÄDíb( !õóÔ©‡Ü�¦ªCjº.,êZÆr÷O»¿?|øQ§ˆØ4Íé£ùšž)ýøÅ}¦þ™ï! Œþ’VLÀáã}Þ{-j]R„úÂïÜŸþ;Ç  Må¸ úvbŠM¦)LOXï…º.„š-{¯Ô{‹ó AŽ·…š´úzO¾þ¼‹|Ö|qÖg|áÉUz<9tßô׬gÄk|ðà‡î{¦ ú:£Rõ«Áï³Õ%±½(¨†±ÔÆBÎ,•² ’þ~h@Ð¥áØ‰íÚ3ÓjÜ?=왣)líе®äz!!ƒÂdjºFOMëKm6ÁjkÒûÊUÊÃ_÷G °áLQ ˆ9^N fQÌ#Ñ\üB‰ÂÙ~B¨ÍM˜n vµcK¢6¥­É?—¸®íáú¸‰I¼ºµ :*ì@…Ü„2|˳m§3 \úÄ!u`šÔƒîkò§~ß©ËYøºH’ûÁÙ •CÇ Èª e–n|ºqðqÑ2W%ÄØLMÛÖ%}M¬t!ïËWM\U-Řò¹&Žp»>·) Ií†p*b» 50Mê—ó¼;½Š†ƒŽ[»™²bÀ&ž…aRD„áÔ* ·©Nøéw6u2R-;µSùÉ’ç›N„’¹idŸ]4s•é üõÚÛ?ßys1ºÒϦۋ—¯ÕãçOÕ½[“G S—ܯä�?»¼ÎšÞ5%Ðkk&ÓSï†XÛÍÐÝ­+õÁûïv?*Œ8 ¼óË›jwëªwŽ�ÀM<ûÁt6¢Ëò¬É¢Ú6@l¿ýù‰ºwëãnÖ #žRJ=~þTݹq¡Z¼!À—â´\é¥6Sy:7q½ °@øïÝ­+Ä!5<ùm%³}­õM©kÂpPê+JLW-J©µqW«EF‰Áw?¶kðä`„ â?k�š•ÔŸPñG ~6NùjU?i $öþ9á½Rj`*y AÄ0Ö�"†NGù}Î�rªÈ)dé? g÷:B? ¼šMÏ©[€ÊÖ8H LS0NK€ÁûÓßÿJ¹4ƣѢ”¦7Yª™ê2Rª' 0ÔèÔÌÕÙLHjb£–¶™Þ—TmÖWl8!x/^¾Æ“~Æ¡ñ:sF<žÍܬ=x Y"WB½1œÐdu…ЦŠDmÁ–Ê5ÒîO:j�)e x®~Y µPIè!´™§\'…»ãjnÀ˜æ¬¢”RŸ~Ø .çi‹RÖR-Z¢„ž R-ÇàvV½*ìÕL,x^|0ÄE¶sëK«:!µ *ô ”È'1Ûâ þô–°$t„ŸÒ%ᇠô s¨ OÒŸ5=©ÜåÈ΃¯@ ^ièVyÀž©`‰“b]U0e=M—Ò"RStì fPªxg—×£}&•$’¿½åg.�ÚÖA–Š@¦2Cm×ðÝAÁý?пÑ! 1 ªH^L*Gw8Ü~å²ðÜuñqî�HJ3Tšw”¼ké/ð½&fÕ�dR�%¦&ÑâN–^—ëXj燼څ1 ðÔ�º€êa¨…dK?å„1 €S“€ûL.ˆÕÏfz†BTB9“.õ¹>ï ƒ(X¼í­†N«Ÿƒ@_ðbÖm”v·ïs7A‰ôŠd`—~תÐ/t¦'pž˜ûì” FÐfn"ó­ñ ¼À Šo§pꌽ"¦är°*˜³š‹†DHq®Ðä7§OæÛZÑÍ#ðÎ.¯[w.ÄŽ^AøLê—b¶¯Ik=Ö›SCãr¶i ¬ŒÆ%}!ÄuA} ­­Ãv·®NÅr:¼|”ú¥\C°¤zÛÔ0vÒÞbl5äjˆ•Ï_“BÅ;·|%r �K.š°ÀÜ zû€x3ëÚ ®põNºç„¯Ô`°Ö5¤¶`\.Ó(°ˆ|oó›s)Õ^ |]+ßP[émYº„ÅùåÍ®zsܪŸ.0�¢ky¼C~¾¾7=¾Àï³ Pô½­Õõi6Ó ²Öë” ¾áMDÛÄß+%ÏlqsÓâ ÂVKÁ>«€¶={µ™Ÿ¦Ü«T“2Hïs÷åzކѶÁÚ”ëå­åc¶û?Dî³lE¨‚MС¼|Üq.% L+ÿk)QH¬MmÀ÷ÛZîσç6ðÙ5 ’Šm”IËÇïéõ—ó¢ú…®ù¬¡$û¿ÿ÷?º²»[W‹/kɤô‹%`Q'…‚(QÇØ– Ìk£I Ò$1A‡ª~>¿R¹=¥W\˜œ…©óô`ÑuS^¼|­>xÿÝÞ¹ 1žÍ&×~¥VÉ@óª£)†á ¾¾ž õÏ`†‚ÐÛyRl êç’ † h¨x ¶)û.ôa;X À}7J©ÒÕÃ5ˆ!jèk!tƒ60‚­±åñN‹pgpÍ´r ¾òyƒ|À!¤$ê7„3î–gÛkðqï‚*µa¸t£”j%j˜Rý$¦¥3À«P¿Ä=¢à”‚MM|D`’’:8óÓEýj†R=á MN+¾ƒôÎÛbb5t1–0¡/Tž ÜK[à±¹8ºP³Xæg¥P¯Èg-àÙT/ÖÀ^ÁÚ€/õøùÓžYªat9…ª†~é¶8ºè¾¨6ó½0™s©pù™4òY­¹ù6šÒ¯3*h€-<H´b5„. V` UaµAu_Ï|¤vß[v6ÕÓàí[¿ ¸ìÿqÁƒBtУêÏkjX;ˆµûö3WøØrw•¨Þr4õ#Tšöÿh4&¤fi�bçÃpf餂 \ï´6øjõý†*ª§”šá½“+(Z‰ÒÛÞ§‚Ôà ²j¨AÔJX«vÕ !œKf xªßÚ~¿MdYE#½}\TYSÁóË›­VA©¡#y ¥+àgÃhi¬~‰Ýï5¬\²h«áYsÅbÊô´-­ª¡’5J¨·>Ö… &˜ˆÇIyøî¹÷‰ ìú™: ,4o(-gè›»±E)*€.ÐÕZ"œ+5Á ÓZϳ$ÌíÙ` ­�àQ‹½WÞ6ãªð>ôõt¤T©U_ýó°LŸU4Ò¾÷])ƒ·(Õ0žçø¸æ”»‹sÂG™žÒJg©VÆhðˆåd×”Ro|Ími‹Yò«!^Îæ aLëFk1GçµætáJ J^RÊ—cHª¿Áf¡ä¤A&­‚±‚R„vþ!·”Mb–úLzA¾f*80tÆ Ë;o.¢,è¥|Üž0ø >ægéœ,NY`%tÉæT%-�>6è²Ø{Õ}»OÁr2õ«©qyC˜;´-g+ñŽàØ(âl ð™JË×¢z|¡êW1„Æ•4„Åî½à$=|RÃ%;ÐÂ=GNõó©BË7TŠÞêßYå=2§)æc€/v²=d Hv/à€ÈÚI±Bõ;¿¼é“PϦˆ(wÈFJcM ®ç6²~a¤’†£°tYy©òIà3P¤ðå*D)5„û õ{ Ý¡ó2g¾p6ðrÂç:kúìÛ+¸Ÿ²5¥"RMø‡½…ÝØ7Œåâ ŒŠ;˜083«>�^•ÊÁ³ÁÇ©Ÿ«éi×R‰ÔÞe¡Wј"¥15¾ ¦†pV+x”ê™àÓê:Ë…˜œ>'ópAø¨ÿÃÖÞ4  ÕJ’fµ3"W ¦)…"ßø> ¦Ž ÊD/¿0Ÿ~Ø(¥úÓAš©ô)QCÊ¡–íY„o¨ZIƒ5±-߅ܱýÁyýà)ÒÔŒ}‚mÌ@‹«ú…6—íE5åAi´ºVgKý®Ež µ¢¥ê ßÑ9sFÒÜž‹ú…˜ž¸Ù+Yïƒ/øäb®ˆlJm) íz˜@L=&R¬ž×Ÿm‡B)Å‹Q™Lºq6`ðöÊ "èûIÔ¯ÔNSʪ!1¶Yzòè ÷ï»÷O“?w &¨>×%c´Ø%K-œ6©Ÿ.£^K¡-N 9³4B ܳƒ¯º¿ïŸª“GÉ!,u9“ÞwEC¨úÅ„/GÃûýêפ^žæ !-Åf©6I]ß¹†ïÙÁWÝã(Ä~_mÛ±^c[]¬­óÔÒ”ôçLàéO{¹Cßœ!„O·‡?*òŒóÒðá™ ›¹lqì÷ Mý  îmý¢`é IåšÌP— Í‹—¯ÕãçOÕ¿ýDd’JáÛ?==€,|”-ž Ä!ç .iø8õÃÏÆjª B.HsçÆmõâ啸 l^>xð _ŽñVýZPhŸŸ<: 2–òù¬l ñÑR P]zPŸ‹—¼ágÁ¾ÃnùÓßÿ´”mÿô0+|ÅPÒ>üH=xðC¡Í4ðZáð”Ì*ÓƒòûÆÐ¸•4Ð,UÊž® ÆRNw§:�ïÞ?U'Ôþé¡1 3<¬}¾”&gŽ­C:âi:}à…·œÌR]&‘2K!x.ã(Å$V­ ª; ÛçÐ ´@ùrIbƒgƒ¯¦³;r™¥:wˆÍÒ»÷O{_Ÿµ›¶-“ Xï´&s‘ g|U°T¤î„·uMõÀ¬Ýp×Õ÷Eø‹ƒƒ‘[WüíÏOÔ¿ýÄ ±©ß(csæ(244¬;±d¤Sû‚&µriøV±%vÔþáw?¾ýǧÊVÐä8Š¡¨úM†¢x¦oФ>.Ê·»uÕ¬ò‚xp²Uý„Lëô8k¬NJNŽgÌ€Œm1´Äßý»V¸‰ªÆFíΡýÄjZñ LªÞ«Š-(Qºp?gÿ9ÀŸü`õÅy©m€Ýá$‘ËH < 6ÃÉóø`îyÏ/oöÖ†Ž9G8´V<OgrÙl+8N«ê°;•˜ç¶]™à³=«Íäà+ÛŠal>N rêà€pm—üÊA“ÂçÇÛ¿¨É.æ.ý© DÇ•¯ jStwëJ_Þ$UIG2cô“ÉÒ˜àÛpܤfËÁá’ÁàÓ›WØÓ‹™�œ�¦eÓx“ :µ´&ùÙ¤€S›ÚÔ@›M]0µ©•kÿ)´åñ•àÉH����IEND®B`‚IMAGE 188 ./arch/weapon/club/quarters.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷B!c1„B!¥R)Æs9���29Îæ���tRNS�@æØf���UIDATxÚÕÌAÀ0 Al'ûÿ'7é½XªUå:€ÎÀzD%Î+²¦°}b–—+dŒñüÀý_àöd÷Èù4.–Ó¹^;g÷ÿ½c}Ïì¢qŽæÐõžFˆL����IEND®B`‚IMAGE 187 ./arch/readable/quarto.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?���ÿ×�d3Pç4Ë���tRNS�@æØf���WIDATxÚÕ’Y � ËåþW.! ü©ÆèkÊÙþ ^`ú ˜ˆD±°ÏÇ‚"�XöD˜K*¤aS¹rd¯(g¸/øß<ÎC¥…Á ]ç¡~ˆ̤@ÀAç����IEND®B`‚IMAGE 1282 ./arch/system/quests/quest_darcap_elemental.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��ýPLTE 6Iäääççç' Ù7òòòmmmMMMìììðððaaaeeeàààyyyoÜÐ! &4f‰TP âââÞÞÞ]]]•9uuuèèè)¨äQQQÔÉ 555qqqå ÊÁ<<<êêê}}}IIIEEEAAA°°°Á·º (¤ÞÜÜÜUUUìá$$•ÉÆ ˜:ÖÖÖ000øê%YYY¼¼¼---))) IÙÙÙÿñ&ÀÀÀ999%%%ÎÎÎ U ÒÒÒ¸¸¸ª ºººì !þù(¼³ …´ÌÌÌ é ªªªJd²²²ØØØ­­­q™ÐÐÐÊÊÊ :á œ;ÂÂÂ"Š»úì&y¤'žÖ)§áBYÔÔÔŠŠŠÅÅÅ’’’Š4ÆÆÆ5¬¬¬µµµ&Ô§§§ÈÈÈhhhÿô'¶¶¶·­‚1%"””” ¥¥¥–––Z 96 ÿò&’‰   —üî&‚ñ !„„„™™™#‘Ĥ¤¤[{q+Œ† ›››%šÐˆˆˆÑ éÜ#y.£›l’ÿö'k(ŽŽŽ…~kkk! ††† ¢¢¢F š‘*¬é%}©(£Ü‚‚‚CCCÿú(ßÔ"“8Trÿþ((slgb`$%˜Íñå$«£lf× ûï&~wa[!,"ŽÀ&žÕ'¢Û  �Pl'¡ÚvŸûñ&­ C?  * åØ".,Ú  ‚¯Ü òè%öê%÷í&_ß ÷é%ÿ÷(õè%&œÓ%œÒ�}/¿¿¿€€€þþþýýýûûûúúúüüüøøøôôôîîîùùùöööõõõ÷÷÷öè%Þ ïïï÷è%‘7&›Ò¾¾¾'Ÿ×öé%öë%ÎÇ XwÝ ���ÿÿÿ!=_d���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÜ 98,þæ��qIDAT8Ë…“;n1DJ@×p$AŸ@aº€a85àH:Ä^@É&J­.âp9É„0 xâzä¬8³k¹‚dª›Íªˆ&v�°‹£‘.�l€Oé ý�¶IRÂ6<Ìó�'J¶m'}Xæå&¶°d½-òXö`k_eUé� V-Õ„mïl""’Ýô§vï"ßZ’|Ùu%çœ/ËÍ D¨»®K?¥ç ¹Ü"©ðýþ¼ûÓIÈ¥jüre¸¾þ>HC΃ SíÈ?ºÁ’‡ü:õ ¬ù Û· þ Ø—ØŒ¥Dÿ2•(€³Úäã ÷[ú¦Ia ÃŒRÏö¾/ ØŠ°ë ÆãùFÚÂÄ —IRG}w>Zrß÷uÔåÃÓLL³ÏªŠ€Ó§cß½¾ªŠyÚëa!˜ª‡"É÷$èqxÔLø°^Èþ«—ư%[6Z ‘¤•Yk±§å/öŸYû/„rùR ÔëA����IEND®B`‚IMAGE 1067 ./arch/system/quests/quest_darcap_temple_justice.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé��� pHYs���¥���¥pÄÞU���tIMEÜ #N¤m���bKGD�ÿ‡Ì¿��¯IDATHÇÍ”oLÔuÇ?N§>ÐÍ-5¶zècÓÚjÑ|Ró [kÙd.tl 5ŒiµU ÃtáÒHGç%ljwwpÿÿð_ÀóŽûÇÿ R ŒnæÝïÕƒÀUCåÚÚz¿Þûîó~ï-òßiÿ6£®tàêQ·Û¿ÀÓ¶÷â§Ò¶Çm`q™)&Ì0iÅ⊗_Á �þ)Y¿aëÇMLÐG.ÎǶÆ÷ƒÕšH)C�´Ó„aAVÇÅŸÈôaI¼œø2|×–¶0xèP:¢àî½7_Z±A®zèž<ãâ碩k깿B|ßκyíäžÒk~$ ³*çdܳ¾¶"ƒkö3ÔR×!kõ/VÌ*YWÕ¡æjÛ ðŒ½7c“Ô+_Ñkìx0©DŽ0+CTGïya|¯—ëDDôg1ªDD 5¨±»_gvfˆ9,|ò¶ˆˆVÛ«j‘}‰ƒ —é"ó«çàï½lšppM¡ˆHNjý£grREDT…àvxç–gœW›©¦eòÝWDŽ'Ï?Y*Òü“ãÉ"o½ê/@Çù‚g࿘o¦…ï³ED´ÁFîÓA?ýx1úEDNgi r~ÏëËì!ìX;e­ÈÆÍêÈT1QAÞ…›Edª§Œ1òª–Á&7ÇÎâ}ž""’–®ÕR‹×q`ŠÉ9’Œ•Ð=´÷ŸüšÌ¡½.’òNACHqóW¹™BÛ¶K¤Ô`õÈš¿ÍÇZ™˜ÿè}UaÕo(a˜e Q†ÐÑ%¢Ö$}01÷Ú§“•Ú:ÖG?Nò&ïŒÓŒžN\ ‡?u8ÛÇÛÇÎôCúÛ7(£-¹¿3‹»cY©"rl÷ý…**hÃB+1ŒžüLVýÙÌÅæ­:n‡È§h¥™."Çv‹ªÞC-t3ôx”Ÿ·cÓr)íØ”!8ÛÀ4Q\€½Zì£><�Ì0K„o{+­%ŽJë5g±³ÄQi-³—ÙKå6£Ýh¯´~Œ>=ì-lXGE×k¤mñÒzL 5„¹D33ü@€*,œÂ 2Ç/‹[C¢)‚›èä'¦q£�FúPqjæPŽ‘.ÚÑ n.¢zÑIRBSo)ʱ¡ÿý\±ú›ç¿sÅŽÇ`¥° $%ˆHR‚úJCÀ4j¶L\ÉbL4[]#ΎŸ“ä ?�¼üÒÑC����IEND®B`‚IMAGE 2431 ./arch/system/quests/quest_generic.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ´LÒ��ÿIDATXÃå—ÙŽ%iuF׎?æáÄ™òäPUy2é&éÂ]Õ-ÓBØ’-KFnû’—@‚{ßúM|m_Û–Ÿ� $0ÂT7åê.*Ç3qbŽø}DÖ# ±Ÿ`éû–>ißú À—?ýWkvw‹ç{t‡Ç-m™“¬Wl–3:½ý£SÖóËéʶ º=h4uYE>~èáz.EÙP-¦kSæ%iz@k!Ц©Q¦‰!€|ç~Rýq$ðÛŸþÛßÏnqü€°;Àw-êtÏìþùýQ7ælü“ëk&·oq»1½£#<Ó$?ä8®Iù¸¶IšW B¼È£È ’ýE‹eÙÒS™(¥À0øÎç?þO@‹þ¶Õ(Ýû6Y–Ñjèu#luBw8$=ìË3âŽI]UXO–8ŽÁpãú.nØ!jZvË%”`Ô¶¡©ÈòË´P¦¢m[Dk�1Ú¦!Ë+&Ó;n&kò¢&ŽF]›MÚ²>¬Ùìvdû[×X¹0Yn1hØ QàE-Yš“m´f³IhÅàPi‚Чx®m)ôï0¤©¹¾_p?[éFD~ùë¯õ‹«s>{ù!‡´¢˜ê¦ÕL'SvÛ bÝIJ;l“œÞ2%=mȵ”U¥mË¢Êr6›DòªÑ¿½ž£l“WÏäùÕ…öCÑuõÐ4 yQq~q&oo'üüW¯ä»~Å—OØlw„¡/Іâ0 ®ZeÊÍdÉÍtÃ!+yù|Là™²ß軑¬7 ÝAÌøÙ1ÿý«7²Zm¹Ÿ-u}þì[çRž­”¡¸“ÖèCRÈÕå™ö<´¬ :R”µ^­w #ƒ³ñ@rmê뇕ġe™deMVU:O ±-S{žËx|Âb±/ðõ_|rÉ«×&¢LÙïSíX¶(Ïyð_÷"G^ýâkÐð?ø+ÛáÍ×w$ÉŽí>¥úì¶kꪢߋ¹úàœ—_é$-¸¾É»Û)ǃ€ªnPÊÂ4-ò²ââ¬Gx9d±I˜.÷쓜³Íï%0¼¨‹æDð<‡A?æüé)MU….a˜†!U­Éó¥L:¡EØdUËr›p4ˆ?é!ºá7ÜÞ¯ÈòÕÖ(áéY^/ ¦e=&`;ޏAÈèx(Åý”ºjäb|Îz½AÚˆ»d¹M9 8]0ìwÄsMÊ¢”ÍfOU·¬–K‰C‡ßz"iV0™oÏd>ÙÊr²"IRžû’8 †`�´Zë~¯K7Žt^”„§ iµeÚ0£Q_z±öO7Ú`z›”TM­‡]_?ÿæ9½~¬ÛF“$©.ËJ£µ¶¤Å½Þ¦Úvmм¬´i+Ú¶y¬@ GÊ”2ű-«ÌçK²<Ƕ,S”2iŠMkòÕ»©mC9R·à¸>ý—ŸÊf¹æw×©šš»‡%óùŠožŸHØãf›Òê–4+Ä÷j<×–?�,×îg¾xýN¿úòk £H_^ŒyþáXŠªÁqm†Ã¾^ÜßàxA¤§“™¼½bÛ&Œ}L´<Kž>=ÖËÕ–º,%òf»ŒM’ë}Z2[lıݲ“0t°LÍéÉ€0ñý€¿û›ïqþô”_ù;ºÝ€~/b»^ðîÝ”°Óe8è°Ý0MÅÙIŸínÏ›,C׆e³ÚUìÓ…ðìlÈØ²¸›n0NG1¾çÂûCä»ÒXÅrzzÄéqWºë›²,&Ï3&S1 E^–ÜÝM$Ï3ŽçÇ]¶ûœ›Û‰ø–¢Ê*‰:=z½·7t# CFƒ˜°ÓÁ÷ \ Í{Sœ§‰ÎɳTWE*?ûÙÿèÍ7žñùß~F‹!~êO>þˆ<ËÙ¬çrsw¯·'ã³¾.Ê˲äìt¨ ÝÊ|•hß5 :˜m.Ê4uS7x®EU7ÒÔ®ªJ Ó|”p¿ZHÓjleˆk8Ž-¦cÓ�EÓÔø®¥I¶ Þ/ç1öİ}î–8–’ÉtÁít%…6@WòŠÀ7¥‡8¶‰k)D-ÐÖí£„M]êªÑ2],uV´rr2ÒŸ~òQ'¦ª)²D'ëÛÍŠ‡»éÇž®«ZÒÚÐËņ¶jeüäD{a$ýÑ©N+¦@ëD~óú>Äø¾‡mÛRÖZ;®ËR ìvlÏ'OS¾ø¿k¼Àçø¨Ç°¿c»4yJ‘È÷[|%”iFME«| :Ÿ7×s²¢á“ߦwY/Xwm”aðóÿýм¨ùÆxÄl½ÅµM<Ç~tàúf*–ë"mÃÛw·ôâˆÏr²CÂ÷^^e9Uk`š&†ʪ¤m`¶{+ã‹§œŸõyõú–¼¨°•I…lVs³9Û}ÊvW2-v\ºáCäiñXA‘—ÜÎÖ/ÿô£’æÈÃ|E?ðÕí†CVÊø|DZV$Éž¸ @šìÈö4^¾øH\Û¦ªkùÍoX/æDvÃÃÝLÎ!ßÿô3¶IÎ|¾““~Œx JÅ×wKýòê™|x6ÐOÎFè¦àÝý\üHë~Ѷ5Ž%Òjt£Ñ€(ð©ZÑ–¥Äuýäôˆ8°pÚD"­ÐUÉþ‰!ZòZÄxoßåâxÄ ŽQ†„¡Ãa—quy†e»ÒÔ¯¿ºfµ;Ðï„ÒéÄD¡Òb5ÀQ-(CžtIS&ìVsšf$»ÅŠÙdÅÇŽÀ°Å¶m,Ë|oˆ<‡nèòô¤OÕj…ÖBÛˆ˶QF‡$=ÐëÅ<=ðäd„:´meh,ËF”Âò"”RçB?4š]dsÜõ°Ã.ÛLÓÔ5îûZ¦ñyQ•´Á²l´nec˜.e¶§,K”e3è÷1Dð‹²nðÄĶ5‡ÕQ";¨p:B]Ti†f%û¼Ä¢Äó#2RVõÑkö_ÿòÏÖð¨íº†¢@m]ÒÖ†( Óäv²¤iZz€~¯K”ÔùÓ²AÛ°‚.užPç{@³[,Øo¶X~Vlªª@)ŧ?øQõ'ÿóÿWH’<¼½ÁW����IEND®B`‚IMAGE 1651 ./arch/system/quests/quest_lake_country_undead_catacomb.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ 3."Å»À���tEXtComment�Created with GIMPW���bKGD�ÿ�ÿ�ÿ ½§“��ÎIDATXýU LSWnoKk)}@yZy•GÒ"må)¢Ã‰âcEQœ¸ «¼D„ ™âœN#“È1>6£N£!n£f1Ñ)hÌÂÆÄbéQDasÜý‡œ&Í–% “|9÷œžžÿû¿ÿûïe0&p Ó4ãM}'E?¡)ú)ͤ7ÑŒI4§{^0‡®#Ï7(pà'“}¢‡‰IMW-ݬáÛÏ%wÕW5×\^=Ô„¼¹7y^>xJÑ­¯r¢?iJYr~°Ñì×ר9yúô�EÎŒì¦8iì±ÁFäßwóñ$*phîË[sýpfåñI'Ð=ÜË o=OÏ‹76Ö-Ûùn‰D”P(d ìì*@¼Äb1F··wWü¼$”·%I½=vTUU1^>·ûÕyqÆk§Œû¯¡€Þ;] zkëÄ’˜ê)ïóׄ ÂõKPnn²·wx¤ªéý(º©WWš˜ã\þÑ+C»T¯:# M œ½­­ím¤Î KÔÜ|ÕÔ䢅i hñºŒÃôÎßôw¦¨}³¶µ4­ÿþç·Ç;R†Ž´»Ò-ì SAá§0Éü|Ì­­'ÍÉÉ:d0$!Šâ g±ã7mk‘ÓõC†Ksv<,¾úˆ>õ<wxïÝP 0˜3R®N‹Ö>ŠˆP¡ŒŒ¹¨¸øª˜¥®ßî֗͹[;tDRÞ{^QÝ×~°dàõ¦[zº¢•Á™cJ1Y{ØLö±@dtsqoÐN×ß ø¨ `1ª¬ÌGþþ^H!óm«‹ÚQºôEƒ¡øUÃü¢ÞâC{þøìv(牀F£Ù<µ?)%•í.é*ØšßfX³´Í/ÀǤV¡MW"™Ü‰„B¤ 1¯ú0ýå|Ÿ„žgzïœ:ýŒÞÞŽ³w†à6c*H$|j2CYY©ˆMÙt-\»¬sIAf—§L†f-zÏ©AÅÏŠ1«cµÊ×™B¦u¿ùóZ·ÃùÞÛ-wÄ–àcuý`rZb³9=eÒó³Ó犄7çÏ~œ²bÙ^(Fá1:sé®OW*•—W”~tɆ⶜N÷2‹w!05žà#s‚äÇRNn.•I…2H¹W¥ »©‰Š0ÏY–Š ë3Í%_µ‡GFœìž»zQ-O$¾ eùuÜý¯[–J¥ú1zfÌ^‰D²ï ‚•î?„êÔ­ ïÏ4}uèó¶¤å©Wõ|>ß  [äëë{Ø5!}o'°«Í,ÊÚïýrËË;™^œu!Í0÷ÊÇeÙgbç%“Ëå—ño@‚i­à¸‹Å™¹n)ôú¼eggW¦ÕiF'Æœ-Ü^xxyþÊcáê#°_$epœ˜6ðe˜ wä[ “pvt:³9§.D¶/<^_ å2¾ 瘌w5‚ƒƒid\½Ê˜Q¨ ­š×¦f4b‘hqØl‰ãÊÚÀ±ÿ,3Œ 6{­±|Í!7W·³X¿€ý\nþÜ3¦à` ‘] ðAæÅX.—›û5ß–ß�k9¨RA²wH°q#‘$¨Ñ¡¬jMùpÆ|\v€ cÃ)rttLƒ&òx¼ü}辘¬'À‰€Gî£FK€Gä¶'âÀá€H€NâäX³á`ŽR¯Ú�{1„„PÂȽˆ¬Ñ°ÈŽƒ;ùd„À4B`ºŽîÎ É3& ˆ"ç05ÀŸ@jU†QÕKî†ëŠkM.Ô‘ ÖuDú«2XÖx!¾‘UY£5 fëJ²WBqíÉF²Ô“µ–”Gi)þŠ“3®ÄÌÿ«8ÄÅØL ‚�Ü„„š¯ý…•g| bDþh;ÁºlÒ‚bâ Ü^î$”<KIëù5öŽ1°™V ü‹Àßì –¹à8����IEND®B`‚IMAGE 408 ./arch/system/quests/quest_scorn_CoffeeGoose.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE���¦¤•Ö#¾¸¨»Ä¸ËǺ×γÛÕÉäéÞÖ÷÷÷ëÚí÷ùÿïÎÿûëÿÿ÷lV-y©\���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛœ=L���ÔIDAT(Ïc` ð½èèÞŠÌøÿÿñ'ÿA@Ú®@þÿÇPù_õ`Ïÿÿï®x·ÞL&ðþÿ†¼Ù0ýÿå€dFü¨@ÿÿb öÿ‡Tàá“ôÃméªåSR’Fqì““6 8Þ:Ô¥�ÎãšSjˆ$½¶5Ø5TIƒk¨kh0²€©khh ²�¿°‹‹àdK>š8Š~@x(((†ÿã? †ª¢¨ÐØ€*°ÿ¿ªŽúÿÿÐ~£ <ÜŒuïˆf�d¶I Â)’p����IEND®B`‚IMAGE 869 ./arch/system/quests/quest_scorn_aristocracy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sBITÛáOà��� pHYs��Ì��Ì¿ó½e���tEXtSoftware�www.inkscape.org›î<��¡PLTEÿÿÿ�'N7[� S�#Wpzq|Žv}‹x~ŒžšœŸ ¤  ¥ %!;86F?<FDAGDBRJGSLGXNIXRPXSPXbu[UR]WR_ZXbYSb_]d\Xe^Yh]VlaZmeamhfmjhojgpu‚qlirnlti`ypizto|xv~{y€um€{w„‚xrƒƒƒ†ƒˆ}ˆ…‚Š|s‹}t‹…‹‹‹Œ…†‚އƒ‰…Š’ƒz–‘Ž—””š——œšš•Žž›š¡–Ž¢ Ÿ¤¢ ¥¤£¦££§¦¨§§©¨¦¥¨¨¨ª§¦¬©©¬«ª®ª¨¯§¢°¨¤°©¤°¬ª±®­²«¦²¯­²²²³³³´±°´´´µ²°¶¯«·´²·¶µ¸²®¸µ³¸¶µ¸·¶¹µ³¹¶´¹¸¸ºµ²»¶³»¶´»¸¶¼¸¶½¸¶½¹¶½¹·½»¸¾¼º¾¾¾¿º¸¿¼»¿½»À¼ºÀ½»À¾¼À¾½À¿¾ÀÀÀÁ¾¼Á¾½Á¿¾Â¿½ÂÀ¾ÃÀ¿ÄÂÁÄÄÄÅÃÂÆÄÃÇÆÅÊÉÉÊÊÊÌÌÌ|œ–ñ��� tRNS� (,¸¹ÀÃýýýÁŒ)+��IDAT8Ëc`@�f 50`fÀ˜ ºÀÀ`x+`)`Á*ÍÈÎåÝÕÑØØÑåÅÉÆ„EkDhvŽktq@y~p’ÅPÀÂï–žêÂÍg0€¯ü¶Rea±Ìæç<˜¨ƒZ U›˜+ŠJò×´&¦ÁÕ :Üý åM5Ü’²"};°(¨ò«ÌÐUÕR°â)´lÄ¢ 1ªÁXÃLOW¿¢›‚ÇdíX[i9qÙt'lVt•·ÛuzH‰È(é´—#9îMŸ’¶uk+‹º¶|/„7áÅ_ïYÛÐPëỶ(8àˆ.Èm22jÊ- `ÅLlœ^]Ee]Þ\ìŒäD÷ˆIöX³?�òê´‰Nˆ����IEND®B`‚IMAGE 1426 ./arch/system/quests/quest_scorn_gates.111 ‰PNG  ��� IHDR��� ��� ���szzô���sBIT|dˆ��� pHYs��b��b8z™Û���tEXtSoftware�www.inkscape.org›î<��IDATXÃÅ—[lTU†¿}:÷™vJ;zѦ´ÐTC‘mly@bb >H¤NML”7Ë’õÅÅÄAL ’ÆB¢"—šÒ‚¦µ¥L;eÚ¹œËÞ>ÌÁèH[j8ÉŸµ“söYÿYký{­#”R<ÉË1Û ;vìÐnݺµÜ4Í IJÙ¯iÚQÃ0:öíÛ7:Û÷‰ÙD ‰lôx<ß—ä——WRQñ4‰D‚h´ÁÁ¨ŠÅbG3™Ì–¤æ@$y'^øiSÓFQR²�ŸÏ�]·×¹xñçÎu^‹ÅbëÛÛÛûç@kkëÇ55µÛ×­{™âb6w.— ˲Ðu¥†!éêºJgçñxÿš#GŽt=êÝÚ£hkk[YUUó~cc Á !¡PˆÂ€ÇOII¿ß’ººš›7ƒÁÝâ^ˆ§…Ÿ­Xñ‚ðz𦠅èíröì)£ø|ª«ëhn^GAA###TT”²dI]ÃÚµk_~˜3H$Ò¸hÑâ5ÅÅX–E8æÊ•^ü&uùòå=}}}'ÊÊÊ••]­##à ›7¿F À0FY¶l5½½Ý !~RJ¥çêëW&Á` ccIÚŸîèèx¯»»{¿R*nGi/p8^øJKËzb±EEÔÖ>ólCCC#plN5Vû|^¤”ƒAΜ9KOOÏ÷ÝÝÝ?Þs ”2ÚΟ?‰ÇÇ)((� ÊÊ*ñz½/Í:_o+õ÷«Š²ÂòõA+ÃíÎ'qgˆ?/œ¶F¯ÿvlצb¹÷õpéÔ=oWÀ/ƒ ¾»zé÷­K—ÖÒŸˆ‘ï†B·|ndž’òÌH†»ß¨þªª,ù¦×‹˜¯ãV)Åõ¨sàΈ޸½ývOÎìÝ^²|©g۪ͭ8>P* äÖ^cßWökzjÿºR¾çó®O„›Ô”¯¾@ÊPµEåE8µ|<2cC·­a¯m Ì»“÷Ç»§—2—ãqöÔ� 1-©ì”˜I°’¹;‹ ÔÄÍÛiJK qÝ=Ã'²dÈq²:ЧòÉQ„–M3eЂ”£ž;÷ÐÂïóðÖ– ¬*]±“¹ Á)§å¦=œ/@&ÁJƒ•²í§Îœ§/:ÀD2Íács<7¤5CÞKL¥ƒÒ'­ÔAcøvæ¾-wFÇ‘Chf"·¤9ÃHªlέ4ÈôýÖJƒ1Dc­ÀëšÜÚRŸ?™M[()gF@¡ì‚Ë€•™¢„t6*E…ÿo––MVÔ†Åÿ9¥\˜)¤M2�J·5n‚21ïÞáò€õoÍ\¸6 ®¸¹1«^à`z瘠'éº6FʘTÓ¯7%˜>ð8s"×ÜópJ BØÎû¾L"2ãl|j2¤N!!>!Wn&gH@) ÛùÇL€Šƒ7N}ý õÜœFënЦo!*9ýõ�<”R õƒüð€È1yzö‘0€ö iÆíXN‡]S×c¶ÄÙ¤Àá�§óÉü)¥À•÷ŸÒ™ëLðHJr#1’À+Á Ì£wA|hˆ¤n=r"Úµ¥òl}uêE·'o À¨6ñÅé±wéM~©”²rB8›ªýë|n­J1?c™’–<q=yÉ0¸ª”›óÏéÿqýlÚ°äºb����IEND®B`‚IMAGE 881 ./arch/system/quests/quest_scorn_hero.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs��<��<M›É���tIMEÜ NùË��ñIDATXíÖ[ˆUUðßi¦¦éåTRiw}ˆ²Ân”t1"D…1 ¢ ¢‡nÔC…=äcD(AHvÂP¢ ‰—²¡ Bæ8fXÔt5òôòß°ÙœqÎÞç|°Ù{­õíõý×·þß-¦·sð&±¨Ãø@Þ-,Å Ì)ÏÕ£}„µøc¥þ¶b ·`3ÚøËK~oUÚµì|ü‹ácW$`ñü‡ÇpRÅï ¼ÖÀÍ™üÌc×–‚ÿÔv"†°*ãÏ6°(lÁ©•±“þM˜_òß@/ã�¾¯p¢–‹?â�^Ìjö¦o…U¶e £½’ðýʤmü„çñpVº·%…ÏáS²wIS�Ov�pkÅg;°ÿàHö¿…gJ$}½ €;+ÁàÒi*¦ð™ÖãW¬Æ øzº ­iúÃ>üŸoO™MDœâ·ˆÍå¸&„»/~§g‹ŠÀg䟮ízüŽÙi/‹.<÷òÝÆÆè‚�û@Ÿìd,)µVÒ8‚{£’#é›mZÙE†kÙ0>ÃÎc7áÓøLâ´´ŸÆ G›ü˜‚$Í £ÿ° ò}váÏ´·E€>Fñ�®jºúÅÙëM»ãáÀúÔx+d¼'Ľ;Ä|¿`;Ni àÁTÂPÚ—å{,Uл¿ˆR¶ñ]J³/¶ä(Ê,Ü;’ ø OЀ>Û¬‹Àü•r,N˫ӷ�ge‹íWÁ÷uæÉˆÔ—x¤ä¿1ãã¼~�ØÞ!xõY—U_˜Ì<—SóP„­±ÛEðò3ŽÁü{|´aCS€ëjÅÅ%¢^PÔÀTƒ¬§æ u´Á.&;Ø�@A¼ý¹Mé%ß4�°§WÖß…O0/퉚D<»W�ßâÇÜ€áÁ·õ£îwçVTœé»k�뀵¹j_„WkßÚ%¯f´!¼[sßߎðô͆sÏ;<CàC¹ž5Zy7§ÕÜlÇ•¹jäÖ3n¼ì§º ë…Ø©����IEND®B`‚IMAGE 3025 ./arch/system/quests/quest_scorn_kelthior.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé��� pHYs��.#��.#x¥?v���tIMEÜ ;ÎçÓø���bKGD�ÿ�ÿ�ÿ ½§“�� QIDATÁiŒœåaÀñÿó<ï5×;×^³3ÞÓKL0§!qÁ pB ‡è‘CM“¯•ªª_h›Tj¥Jm£*ª*Ѫ­(jšªéAiB1—l(c0¶±Û»ÞÝÙÝٹ罞:R"ù þ~‚ÿ§K 'Ëöþ@¿ÒêGÂ0˜öüÀpˆ[†–J6ÂÀÞ¶ìì(:uø®;ÎsU¥R¡P(ðIŸ`ñò23³“”WÊn¹Öx¥Üì–­ý0ž uˆ©ŽÒ¨ hS‘7@D¡î «™±ÕÁC‡n¿4ÿ#ø¯žxëi•Js·ïãGh¯ß[§ŽQ]Y$ß9ÀðÜ~âv !À‘® ø}ÝQ¶AHÉÿ}àÈ !wù‚k\¾´ÈìÞμfzmsó ÛÍúÂÒ­^_(ËàÕ¿ù#&FbØNœÐ Y+¯‘+ÍRº÷8–¢ä„He„-°€hУXä©/ßøæçߘÿ€Ã‡nâ ®1»w†ÖÖÖõ¯YøÐЧèzº'„°hnï5ÊÔ:ŠüÐ(Gú ^§Ç› UAUO£¢>°°dˆ6Z:fIQm·~:ÿîÙ?>t`ÿw¹†ä§OŸ-¼|vé´OjIdÚ"ZIvWÎáÄFÐf‚âu·S^ëreµ…´è0$ºí½^DØ"¦=¼fH9"B§ô•Æà_~mþ^®!¹ª\^Ck­Öw§Ç²q³h¡ ”¡BÚË‹¨í:vÌerxŠ=n–'Ž;TDI…y8 ›¤›e,å0b Š›„¿EšCц– ½íñêûg.ì}îØküŒäªR©È‰ã¯?å䇆ë­ )Aƒç‡8†ÆT37ÂÒ bbf/ÄÛ››ÔZMì‘qtè³M½Fjm$ã Òn–TÌ&‘ŒñQµùÌC_¼›úNÉUZë ±Ø·ui¡”(ºR  ?ŒLÏQ,å*–(o-QmW ¦oCYZ™xH¡±ú-Ö76ÙêD,m´Øî˜J ÛCQ—x2þ¹ùSgÏæ2\uüøñŸŒ‹è0k}Aµ= x)è "´–¹IŽ<ô(Cé$B([UÚ¦MØíCäO'ÑÂæÜ…+L_7ÁÊ™ELÝ'3<Æ@+’–hZìèc‹åi­ŸSï¼{ª˜K§ÿ<IDâ¥ù·x罓8¦¤±³ÎæÊE>?•!n…ÇÀçÊò¯¿wSj„ßa}£†#F''h”+ˆ( 8=Íx>éÄq—ÈŠ¡êNwÏ/‰Zuã˜ì´Û7v•aÔ:ñöåËôÚ ¢È#TšlÎ%WÈ‚err¹Ž”¶¥Hº n¾åVîùì$ÙÆî¼nš 1ã‚7_;Áx±Àçï<Àg¦‹¤3 ^ˆeÁÑ÷:A ªËWD׋î7bi÷‰¦'Åâåó,—¯™AX;l®lÒŠÇÈæ’B#“’³W8òKwBâû;ä숛>Jog‰'î9Äs¯gîúY¶uÜñq”7€0ÄŒ'èìveÄÓ?~™Î @™1:íöo¨¯?ñø“¡“*.­.cÛYŒ¨á8$RIœT Óv°ãIšµ5ÜÉ)¢N—ÖÂ]|Ÿ‰né“ÎÙ®.qËÍw²Ýó° Ë0À$0,¤– ­î�z=”irñâ2cc¹œ·c·|pñ$+‹™ÛwÊ p,…i˜$- މÔÒ˜¢]XÛY&ëì?ü À‰'Ð:$7:ÉÖÆYnŸÚÇjÃÉY8øÄU»~ðôs(Çåá£wày>[õ]!7Ö­s>ÔʱX¾ü>2ÃP)}aF‚ŽâÄl”ßÂl „!B$R B Rža«±IÑ5° p{Ð…~À»­Òéùdr.?zö´? ¾ÓĨ5Ú$R9±ÝîS*LÐõ%­Ö&RC&ÅMšÈ( yiž!7ÃèY’©‰d–0ŒÒ H™@IÍHv˜Íʹáë z´–œ[ßb¥²C³Ù$T ”Åz­CaHatwwt:åŠP&1Í4ÍZJe“Dv˜fƒ‘\@j°Îäp‘Òì$ 0ìA^¿iÚÔDˆ›)±^9O:S‚¶oPœœdxx™FeÓ¶°…O¯ÛE&âf¥^Ý ·[ã•ûgN{‰l.CÚorC¬ƒ½þ>7LÌ1>;C$MLÇE*eØDa„!5BBy€€P¢„¤X˜¥¾q†Pt}_X¸n‚v½Ž×ï±²¼ª‡òYÔ}G¿xp¹îÝxö× íûnÚG´»Ë#wïgttiš”fæ h`9Y”’(e…J‚Ö‘VÊ"Ò!  B)©Ìõæs…N‡±Ñ<ù|ž‰Ñ<{çæÄÞÉÒ%iXæ‹^·ÆÜ]w3wÛM(íqîäl–ËdÒ9Òq—úö6m""B†!BB¯·K¤5R)ÂÐG‡ž×ÃPŠÐï@0’˳µú&·ìÍõ»Œg†²ùœÍp6õ¬±§Txûƒ+Ëa6‘ÝÈíõK¬Uvøðô{Ä3F yzƒÆ®Q…L®@ «è(ŽeƉÂ�ôÑ‘Dk¼°!c‘ÀÐ œ!–¶XZ©à÷ê!´‘È`ëð?ä#_yäüL>VY[)‹Ýím|-)Œ2¿°D½²ÆÂ ½žG>“O²²¸€L4&J‚R&„ K( R@"Š|ªµ2‘áÅg/m0ÀáµùzÍzôo}íÉU_þÒc¿¬„¢]ßÖ"9„;9KŸá¥×ÿ‡å3´ÛtZ lÛ&ϱze¯ïƒT%ÑRã‡~F Q†A€¦ï{lGyÞXÜÄ´ZhÜÜ0±˜#¾ùëÿž¢#ø¹?ùþ_¼tþòêýqwHÚ…±K Ô×Ö)9Mî¹ë>Æ'÷O&°ãqz.‘d²iý&ÒL¡ …F†N“ÅÅ5–.Ùvw‰”Þ?w›Ø®®_|òw~ëºJ¥Šàª“ïbÿì\éOŸúëÕ¥Ïkc|B¸¹aº.çÎ b.ýÝöÝzbÖeoa@2Q 8–Æ÷=B¯AåJƒV&÷Naf¼t|z³I m¢öS3S¬×:—Ɉ_}ô¡û¦'J¯r•àÿþ_/Üþìÿa~§j3µG$2yŒÞÎ^äú÷1½ÿf–[Ü{0ÎfÛ¡9L¥5YË@x=¼þ�c(ÆZ}Àùô½‘_§4–¤Ùsµ›IŠGŽÞúÛw:ðWüœâÿú/ÿ´þÔß?Ó|ýø _ ½€ ×Ô“3s«/àäÆX]¬bçÇj¨ô|vvklmlrjÝbK;\^^¢œ^¨ÓªVɘ5´×cꆛôN¥,{ðÈÓ‡?wðI®¡¸ÆOŸ‘ûî½ë­'ÿà»o¯.^øÚÖn(„ ɤmœä0åõ‘¡Úin,25pò{ÈÇ»Ä[§¹îêQ†Ñl#á’Môɧ¤¾°Ô~áîo?pô®ïﻇÖÖ~Að ´Ö¥o}çwU×ÊŸÍÉâÅëõÚFGØ®I>2hÔØò Äb1Ƈ3³.™¢ÕtøçOÏwmJ…ä¥?ûÞï?,MûCð ~üŸ?áñ¯>È‹¯ž8úwûÌ·ÛuË)á…’X2ÐÃzY8q“ í[™í‘+Íè|Òý¶ImWi#j_}øß¼ûð¡ò)Ÿ¢¼±Iil­µúþþò©Íolmn>¾¾±]¨íná�~ÉÆpÓ.£ã{–§&öÓÑà¿þk½#„ð—W×™Ü3Î'ù?-tjtŽï�š����IEND®B`‚IMAGE 217 ./arch/player/race/quetzalcoatl.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿM(­���tRNS�@æØf���~IDATxÚÍQ À C×ÜÿÐ#-šªßFÁâ{#ó{&�wLGpo._B�i¬¯]`Ò€ Üè<¯»¡’î”p4PÑ +ê7\‘F^øÀŘ¡ 0# Í¢sf˜ »æd[KfÐæ(ªZ•˜`ÍwA|4î¼ÿäCù¾=8����IEND®B`‚IMAGE 213 ./arch/player/race/quetzalcoatl.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îîÿ«h¦e���tRNS�@æØf���zIDATxÚÍAÀ0ÃÀÿô6)eçæTÕi‰‹B àœ$i^†4ñl£a›Öb¿Fäb¤^è_¡„Õ Øj0Q¿ó$»¦˜ñÂΑA. :z/G9 :˜A‚Mò-2¼×ÄטýP‘ ÌÝÂë7AãŒ{UÜ“•ã+Zzð����IEND®B`‚IMAGE 221 ./arch/player/race/quetzalcoatl.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îîÿ«h¦e���tRNS�@æØf���‚IDATxÚÍ‘QÀ CGïè¥lÌ"2í1ô™w#�ìT X*Ÿ|ÌX „÷4,>èÓV€³O%hü@Y3ï*÷sÕ€ñóöCD55îLJµ!‘g»³‡P´øÐô æû’!^,'Ô,Hš¦ TbãkÈót»ÜŸŽÖr����IEND®B`‚IMAGE 215 ./arch/player/race/quetzalcoatl.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�îîÿ«h¦e���tRNS�@æØf���|IDATxÚÍ’AÀ ÿ?ºjPÝH¯n‚Ý¢]¦h"µØ­ ÂÛ³WÛ„¦ïBL/*¿�Âi§Ìé~jÿB0GÊDü¿‡‚à=] ŠÁ °Ì¦@ $ÄÏï He|±Å<±Í@샖Jãè0‚"ô^_§“ç+Þh&����IEND®B`‚IMAGE 920 ./arch/ground/quicksilver_sea.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��QIDAT8-ÒakÛ8Àq}Ó½+%B0„À0a„0c‚E0ÆÄ˜‡R‡-¤.ihÒe0¶^íÝ:Ø‹÷b§ÞÝžçùÿÀÙÙ9„HU…Ô¦®ÓôòçŸëÐ2õ!rˆ€f£ñØ“åú¸¿RQ^5EÊ}¡1¼ÃäÕÕæB1F¨JªÃós7kŠÄç\8CâóÁ wÞß,ªby×iî…ùÕqS/3Î]q±@ÀK’DRm¶Î<aÊiUL«”Á9ýüœqòà¡Ï©PÝþæþnVß5JÁ±—þúõãýtóë¦ËÔ 9gœ…‰JºÝÕ±WJPmæ›Ëé½€ ¥ä s_œ’hóô8£I•eynò²þ˜ùfѤšëR;.qEÞ÷Eè4ί[À¥ÖÚ\n›,I…ƒ<göi›ùÜ#Ðk—l€Àñ(+Ò¸ªÓ<öç±9]+Á¥Ro9¸tŒ½°Ùv¥R&­w<lWMÌìϘr $".7Ÿ¾ݵ&b£!¢ún?u fv52Ø–ÀÞ‡§mââÁcˆMò¨ª2Ÿv¥`ÓÅ©» <}}=T õÍZrBüÔ8\}h”Æ‹ðÜ‘»Ädr6쎄LÐüÝ);Pê.N—'Ë• µ©j6`^®ŠTø–žÀó·> Bªòý±[‘„¶l#&Cä 8ÖG£<‚¬zÿòn¿”‹¥±K‹Õ ùð‰v»ÿ}xž4`=‹ÙxDmý”;ó§cnt¤üÂêð «c ”ÄϼõoãüåG£,¾Øßâö~¾õÊÖ¶V¯ïmÿju²A‚·;‡IwWðåû]Á’ùýóúé†Ìá–‡d,L»¾PRÇS³¹Ura f‹*Õ®,5îìØ¿­IÛö1D¾ŠãÈ´ýE–MmNôÌ7Ê>ÊH׆\›<VU™/•§—ßú·þ.§sO "BÕÛ®ðÃÌ,ÀÄ;ìb1eŒ92bQÊ2ëcߦÚO�¤éÂȤ*M€¦]F­Äø‡çmÄ­ ŒCÙþŠêǦë[#y(ë#z}=2МcêL†£ößþrU·â:ZZÁîÝÚƒï`½����IEND®B`‚IMAGE 920 ./arch/ground/quicksilver_sea.112 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��QIDAT8-ÓÑkã8`ýËK^¡pÅŒAcŒÀc$‚"ÁÄØËÄ8æ’Ð8›l“´éC»\Ë.e»Ü²Çqêr !˜ñû ûý ˆ0Wëjœ4ïßL‚0Ô‚—ÈÆ`w[ŒðÐò¤^ö 9*êE!C#â£á'k^»ˆðªŽ±-&úôòºLçE,‹œ>‚½Ocð-qa¤ká»\·Ï÷e•1Ji¹`,lÁ¢‚‹Y;Û̘§´næé\8ìo<ê0û\û‹ª;t»:3ÏÊ £Ç_ÿ¼vê­"„ŒIA %qQ¤ÝIu/™Ï¬ µç¦¼I5QÆLGbŽça›·__´ÍÓXEQåõ3€Œ‘Öcj:Ñ0c¦eW‡}3‰„Ì‹Û5`B˜!ëã:ML'æâü°¸ž©Ô·n‚ÞŠ$‘j¹H’$›­Ÿ>+}\F”zØ eƒ–b ¼˜k5Jò´^äÝ=l8ö™g9Ô# »¬yýþåzê. öóêUB˜úh È%v<·9±ô^ûȆòîZÄ:OB¼Z¹tN…x~5é§›?5±»9Í%gæoÙ Çöù¯š¡JÙ 7~zª™…bÕœ/¬p šo”‰?¢ÖàA4ì÷. ´¸Œ˜ÌµL*PTM¡Bÿwþƒþ@±k}ø¸>µ ŠÁ(­‹˜G,pû6ìõÜí.$¼žsÇ’Jß{§·ê#/ôÊ Ãöí.´|JœÉa8Î@—_QxÑß¼?h^<#„ư(³fRI™ü¿vãÅYÚnû.‰õÞøÈ²ý¼¿¤Ca¦Ûó²¼)3E™äÄóiœ§é¶öÁóûc‰£46÷Bgóç}H)‹<BB¨…9@a¾Û5J˜ôËÛ£´<ã66>|1eàì°U>¥> êϹ54�“ÕáÇÍ Î3}4¾©GÌøiI¡gxŒÔjex\Uë3¨Õ¤ìÎmDˆoHú6ÏBAT̯Wy:Ö+eÒ7‰)2tŒ…ñq“}ø@�DwK­ÓÈ‘‹”`ˆJŒu_!hC€‘3pÖ§RD¿ó_Ý-§Üø uÒO·ïwl³üŠºæÃ?¬HI½3>¢ÿ}¨§ÿ�§¿Vù¥p����IEND®B`‚IMAGE 922 ./arch/ground/quicksilver_sea.113 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��SIDAT8-Óï‹£8Àñü½óf9„EAA$ ‚„"!$C‘qˆ--­ô3…ÎNÙa~ugº{½Ýy7{0/.½;_ù.Ožï'À´\˲þ0<œO6³Z¨»[…Î'×·ý|…A"Õn“xòõݲSýº‘ff]8a ôAZwY,·•åÂTÝüùóº7E|øx«² ÓßÇR0’`±L?qZÎ{5[æîþ~¿)i´�¥K%ÝËñõøe³Ìš§1߆¸\«l¡úW@„”åÓÙõã·oÊŠd¥#µZìÞó#4¬J!a ŸÖd@.ïyQ7Û¯Ç$Àˆ¡‹P­r!„apùòXÄ Í‡+ ‚” Ì«¬®Ó$J†Nà;õ¸`‚ "×ÉÆ`œsѶ–“ñåímŽñ€1¤Ï ã+Ç Ð AÅz·Ymæãëûã_Çm[Rž†žç¡dž{ ·¬ ŽÔ=Ý4Ã4»çã¾M#¢â�yÕ¢D˜Y†a¹ØKøäKÏ ¦Œ^ü�¢2ƒfûûMùú³­êj-?&¡×.Q¦'È2M¹ÝßJèyæ ­Öá™ü †ÓvÕàBÛµðæý§ð<Ç <Äë²,%§ÿòÛþg_Ì«VãplÃppÞj¼�×ֹͫpôÝõ”‡C¥vkä…Plö]Wõ —*Ðáã×e„¬Ï†ÑÖ­ö±‘ŽSµÿuÛI½Xro¿ßpÚ¶í®S$6ÚG”Jð\zLFº~¯úm{h cg_®ú´yzÒ¢YMwoO¥ä(:Yó8ŸNµ'߈Azî_ä#µ½û~”0<<¦—eÌ’a' @Я_dŒSÎu=ħg•¹ дáB0 ]‡6‰u DOÁ«¢®) JÁ#®Cè¡ë¹{xrÁ“ˆ©ZÎǓӄƒ“Ê©£ÀdÚF¨èoûÕfÖ^Ý¿žN`Dó©îߥ! É�e%²ƒ8"¨{Þ·c 8¼ÝÏ9Æ”êý æYAxÚÄTo^¿,Ë’ëQàúqÙLê³üHþïö},Ý?V’û3Æû+ÅÎ>ˆmšåîn3�+O£s5Q.k- ŸoÏ>ü}\„»�Zº¨ÙMäf*����IEND®B`‚IMAGE 921 ./arch/ground/quicksilver_sea.114 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��RIDAT8%Óï‡#IÇñú3÷ÁýóäŒ#Bk¢)JkJÑâ+ŠR¢”ÖªµÖ¦µŽŽŽD“5™Ž6ÉfÍÍ^d³æÇw–1³O®³û|”ïûUȲ:½0Ë&r±¿MÃòå1‚¸èþf1 XPTßÌꩇ©Ö§ý²çJ}z}¹èvíÎEO¢Çz~þ¸À²üôßˬÚ䃛·÷¯¥²™þ=D& µÎOO÷ÓÈÈ´Ê&‘Ï’æ~ÏG7߀’‚OîvÛÝ—/ÍêcH”À¤¯L8:îÓ2@R†!çJÅ«º ÑÝnfâѲyx9e})�Ú…hzT§:Ô~r<N9ãÌ$·kQ-…É% §en8å±k—׉ÖZ‚c+ŽhHÐaQä‹q±Ý&ŽS!”èSBX™y„Iòr1›ÞžžŽ·×E0B\:ºŒ¬ɲnªÔJ Õü¸O’”3‘/e Ûq£jšúÊàŽmc^Ì>kb)å€R…˜íQ9äÞêíŸÌí¹SÛ³º–çaX Œ]Ô£ùf»2˜›ä“Hp“îíÖÄEËi$Àg÷:lýþ^ùv(€Î'“,Íò=Ò÷ófWuºØíºééïFŠm«CÀŒ—‹%?"Ûü—̧N»Ô¹ì™¬oõð™G¬ jûo_ŸÛþv×î^Z¢^·>Ú§’`s\®Â Éj3¬ßÞ?û{Þº ùÂýpáÉ|ÿzVWYQ–6s3/¯¿ÿ;%gâìcÙú@8!Ôç&ÌûlRJ¥­íî¡Õq­ ÚÍbS.w=?–Úþ­*TñMS`Ú úp˜ð¾NR•nV}B˜yB©Ž´æàs†‚ (V™Jí„•°A)$ «ªÐ@9š-…TÃs`V¥Øc:0‚«_>Êív†‹µ§n?-V†D˜¤år6ÛžNÇ|Žâç,L¤Ï� ›§ì'ùm]&ÐÃá0D¶•‹Ï§Ú!­ M-‡õ©®Ò–>éØˆØ¿ê·ÇÅ4ˆÝZT÷nÎ>\BÚ…¼ ×QȽ¬6ÔíQ ®çåÍvÅl— B°ã7Ùd\¤y±jÆ‘ìƒOœ³}ÏÅvÇ"ÂŒ“<˜5›}٧έ'ûú?—¤H” ’����IEND®B`‚IMAGE 4288 ./arch/ground/smooth/quicksilver_sea_S.111 ‰PNG  ��� IHDR������@���[a?��PLTE<<<xxxƒƒƒŒŒŒ………{{{sss}}}ŠŠŠ€€€‘‘‘”””–––˜˜˜šššœœœžžž¡¡¡£££¥¥¥©©©ªªª®®®°°°µµµ¼¼¼ÎÎά¬¬ˆˆˆqqq²²²§§§···¹¹¹jjjÂÂÂÅÅÅÆÆÆÊÊÊvvvÑÑÑ×××ÌÌÌÃÃÃllloooººº´´´½½½¿¿¿ÒÒÒÓÓÓÕÕÕÖÖÖÁÁÁØØØÙÙÙáááâââàààhhhÚÚÚÏÏÏÍÍÍÛÛÛäääèèèìììíííîîîþþþÝÝÝéééãããÔÔÔÉÉÉóóófffüüüæææõõõÈÈÈøøøëëëñññêêêÞÞÞööö___\(���tRNS�@æØf��`IDATx^ÌšÕrìÜ’„µHÈ Í f¦Íø#œ™÷‘©%u{·mQË3§nÓ_efõ#–„ºùã·¢ˆêt+‰ ;|ÿæ_ÿ=7eÕð5Q<""ªÓËwù:½½ÿná?¢¿`S‘¡þ²FïËÆ`¾¾<´œ(IcŸh=„úâä˜Öèåι^áŸéÕþõz³þ5úëýkúÕܧÞ€LÏÈ}ú Qr¸87äjÝ¢TÁ–—\ÿü󬛯žFˆ*+™,ëôrçÞqõýõþ5ýþÿûW÷«ºO½ÿ#rýƒnÚ_@½ÓÎûq×é'W3›Èft¸^ŒÇ!=õl„DrT£O*¬wùÓj½½ÃþÂÿyA¨ñßå+ïBµ±A³þÂWÏs,-žVé[A Ã$&>•wÿú¯€à_~ö=ÇPãi0ä—ºòK…õ–ÿ¨Ð¿~½“þFM£¬¿ðÂÿ)\é¿“_«ºO.Tô/3hÔ_ ¦F0uËõ§BjYb_ÞýãÏo™0ÐmàUkvùþöª;ºÚÑÿ>\üù~På zÎS{V¢×ìßÕ·ÔS½aÿY…Þ¸^î¿›Ÿ9Osý©PÔ¿Ì¡Qaì˦A‰ÐtÖËR±ý„'„jz–7[nôðtqw2¬¶>®Ä¯¹q�® Uûsô§ü}mÖŸ’×÷ö›Ýü´Èõz§yô&ý]75•­GÕMà ”ÍÐ VœÅç_Bì%AE5dFÑÙg•û«T*ŠÀu�ÊöoùL†æú`ôWƒþ†JÀÿ•ý÷åŸæ/¿O=_îѤ¿€4Ð ½ž'„já8õmbl¥§ôÔ¨Ó©5ÛwÃiæ¯iZ�€~ž/÷Ǧžóÿ—0×£ÓfùÁ?|eÿ=¹üT.ü¬Ù<òåMú İ]¯\nÂÛvxsž¯JHVº‚& êÝœÉÄýpº(: ×sàÙ~8º"æ|î_d OO(ð úÛÜ?x]ÿ=±Ýü®S €^•ËW¸4è/ôE÷k?}Dœ öÝdäG®¦[Qä6âTбf/´Ì?òÜä%�z‡lýá»–J6|î_䀱aù½€û'¯êï퉑üùýËú—N΋¨Â¥Aá¦'!$—ÊMxÆd3=˜ ,+ôG«OÿlÄaB¨„5šû[iç%�:Á;ˆ%äûÎR—nøÜ¿ðÆ”ß ¿È¸ÿìô5ý÷¤RîöçBYÿÒÙò6œ¯áž~ÚŽ” ?~¹_MC‡á£F\R™¢.øË$øøÏû__�”P¥ûãûÑèêb˜ñxî/gZ1_ŸŸö2ÿÎákúïIíæÇ=Ò.ÿ†¯°á|Ý0Q1ùMh;C†úLþíó×c‘1‘5Â’$”¥ù c¶D}‰üöóóФè/â²päx’é üK,qÆ×Œ$й¿GZõÏü÷¾Ÿõ˜_‘ÈŠ­wú—ê «¸÷œóu³8 ¢BÛYOC x{vΆûÛ:¡Í°¹¡+ ñÂõ|Y2Éøg€¢h~¸~R¦0Ñ~?7´Œ¿[pÿbŒ¯í¿õO™Ó¦?÷ßû~Îcþ[¸?ç[åç÷[LËõ&ýõnñð)µ4¡åõ‡ûàMwl½•ôUCìhvåˆÛCíjqÏým'}~%Q¤Eÿ‰LYþ±å}ü?{d|mÿuæOL?µÚôÿ7{¢Oó/Þ|JMAø¾~àCrµ(Õ›ôÒ¬j~™^ÏÏ,Jˆ¯M&D=nŠ…†Æv˜r^&ªOŽÅ§€&#ÛO‹~WÑH6¼Ïy[.öÈùš¹ù>3åžÁýÚö—UcD<~’nß.?è7ß«õÚ4Ñà&vˆÖZÎéà,öUˆˆ-Å·1jþ~7;cø'®ªõ¸| Àû÷ìLqŠ`„úÔÊxÅâþžf2Pðï‹-û;„새ìG~'»¿JŠî_ŸúÇI•|ݘÃ4v MZŽÙMcW#²º<B{` –7ºþòÉŽ¶Fˆ&=°åŽ.¿~*¤-YAʆïžÄ%9_3Üß1 Y“úЦ¡VýƒìA.ÒüÛû«@mþË/f·Ê+ç«w¼‰Æ©ßþ5àâÍ`< ¡êÙ^\z5³ˆlDœ?žÈÏ€«™#ËFX“8ã©^@þ‹Œo”? ”Ègc$R±Mÿ4ÔŹ\móc#ÊïAuù5Ù/ªr¾n柊üNh9ó®ÛëcxÞ  ü Ì—úÇÊíï/ëŃa2/¦ãi@(ñ£9Ï_æÁù&ùÅIïö÷Ÿ|ÂN?¯ãý÷¸ß¯q`;–¶Éðü.åüïE@Mþ›ÌÝÊ¿�¾f, Mäà'¡íX:’Ãì}|¿y{­®nO,S3þ%p­^ÜŽ‹awvÉù«'<™EÆ× ø÷i–æF_¾ 4ÓØ³?›Ðà§4¾~¨ºN1Ýä_Ý-M0ð/óï~�ýoÇ–Uex|ÍüÕq,{¥z=oDv¢d_Pçïû7‹O+λÝâŸùpQBx{v3ÿ«ãf'(åkü-MqºÉÁ»“ààôlíSß§ÿÛR»Û�8 VÉÙ;WÓÍò{óÙ"¿¿ÝM:Ä‹üÉÙÚTkv8ÿ\ù�_7÷ß®ºØZÏ›/W1uOÃýIC×(5ß|ã|\ —À1 UÃØ¹ÿ¶âp)_›ÿÛeD‡q0ìvƒx0ú¼6MìÑòGØK ˆ¢ †÷ûkÓÔ ¡<¿¦Slf¼›A7ú±‚Pš1Ïó¿Ö·•4îç�_a |Ýàìõ¾ýP5^ubËØŸ´{öÀ¦¸|dèetêÛt ùW%=Î×÷;ßõÃ`qi!¬i2ÕƒÆ-ð¦¿íW†ë†Ñ¢c‰ Q Õ‚1äïéYþ8ÿºÁåþ›Ÿ_÷Ó´¨‡çÓI^*ëO)ܯԕóuïëOh?½hÝñ4Ò (’)Üx:)\@VÊàtø”)²Ý•åf|ÍàîíÁP#DB½›…+Ššm;n0mü¾|ÇÕˆŒ‘<-<ØÏ`g("Ãr]/œ@~èexO%£Þôƒ‹fÙŽÌÒ ðŸçï "äþ<×±2�¾Ä·IÁÂ/(´»®&iƒzšnØœ?°HáͰì28ñbO7€Âw%ùàaTˆs^ÜíÆëàO1ÖÝQ$‰ªëÇž»Õky¸ôç¼b|ÔÀùw‹|¿jŽb&Û\ØïFÀVƤ¼jŸÆ’H6þ~”çÿá©ZI„qAqcðø;]èÿô5$Œ=/ϼP7w_ÿzXœ•ëõüç‡N;Þ4Ã0¹ûòï‡EšzE€„ãRz™f$¿þû~Qhpªqþ#ô뜥}úèšvfÓý„÷?§.îʘ†=WAL6·z#¾³å‚]_AJÆŸšBpþ¾“r¾G™úPA’ÊõØ‚ü£»|¿KG ôPôd“ãØ#tÅö%†³ýèÁøö ôÏög¹2¦ZY>Î u³Ô¯WCIh=Kõzåµã}‡/ÁÿÒ“Š‘m©¿,¥/§¾Mûý¥z»€.õûúúb(!„)¡§ áýÅùcЯ/‡Hd\GšÃÂ;zùs^R@— [B Æ2ÿ>¢sÚ çoW–a¿aS)”rý×G~5\æûq®çþ<ÿR¿KÄrÝ¡}„™ë—S¾Éû{8çQîߣAž/»_Ý0¤¾ê mGTüñPk…²‰ˆ™Èüq¨y£ÂݬâµÛ!Lì+ c~ê€ÎeÌùš•$‘¼Y@C"ËßÿÙ’a ü‰ox£A £`£ã­^ÏCÂp<ב;  Zÿt1÷ŽCо* Aç<åºCØç|0ö¹¨ç÷ûÛüaêÎ( tÐ}ŒBLÝ!âhú‡ÄÎò™¿x¼É²ûÕ CÑz/´¦(¢h·!%¾ Laeþè´Âô_)b‰V¹Ž1ôƒ÷wËÀŠá³¿Ïßÿ³ý ÞÞè^0ÝÈõf<F øƒ®)ØðÂéçuÚ¥˜ó=ÐÅL'k^|l<áðèªÂuîoi2èç¹?Ï×ßðªžw¦]‹ï_œã!ðDBù€çþCæûÏòýBÝŒÞ2EY ­'0ÜŽ›¤wÒ#Ia¨p³Yý}Á‰õÙô-ƒêÀ[«ñDQðòèèüÊA"µ‡ÎèÞß-ÍôÇæ[¤¯FÇŒ±åÑñùæû;¹xxÈõfü$ç§ ÷A7ù‘•óLÙîïSø|?`j¶›Zœ¿Ýð¹Ú£‹û‡3à,gtĘ”û‹ˆð|«{à‰éŒ@×;ùýs=÷ï<dùÜü~ÿÛÎÙµ¶ CaøÈ–”5vÛI“:ë”ÄÌÞ·ŒA.F ƒå¦ƒ}Ü òÿÿÈj÷ÖÒ¥aœçöáõ{$_y¿€ì÷˧|mÚo¹þ}[½“RŸ—·ëoú«ýX±>¯†|ÕV\Ùõ+p¢?Ÿ_©xH·ÕKã�È~{dÈÛíçR8öÃþÌ&¹¾¿–g¢ý\2çp…}¾öòÉ[Ü?cŽýíYFÝù…ª5~4ŒeyèöÓÝÛz¹>èÖW¬öÓoÖ»Oîý•Zú|YôŸþzQôï Xô_—;÷û*µ\ï¼ú]m›c nȰb|{<[ëý|p&”Œßµó[õo?Jp¤;Ñèóýü¾iÜûewG?œ6Y6WF§ëY¦³vûù9¸#O›™~~›þÍ,u??:fÈãýøýãç÷é‡8IBpg'k±Ÿƒë0‰Móãýq̽Î'ܧ?ô뿉“ ÒÿŸSä!x‘Ãë’GžçàÕ!‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ˆIêçͧèn1¿Ä&@ýÛ©Ö¦©×üx.˜$YÌ}< ¾ßïÿû |ûŽøÓoÄcùþýl¾óp¹¼¿M¹B½ Äwù¶~óñ‹éý…ù¸óLë‘ïw¾™˜rÈ|ÈüVù.U aÐ!âAH³ïò\y9@ êE~72,oò«Å8Ûjæ×̇ÌoŸp¹ðnÝà ÄC¿_? „SЂù ` Ë#^Êé›ÏÓkïÃÅ2/’‡«‰‡¿›=@¿_¿ª„hyö?µ¾Dü óýû û!3íæ3äÄ#ù¢àk‚‰Mq¾Io����IEND®B`‚IMAGE 4733 ./arch/ground/smooth/quicksilver_sea_S.112 ‰PNG  ��� IHDR������@���[a?��PLTE<<<ŒŒŒ–––£££”””žžž………šššœœœ‘‘‘ŠŠŠ¥¥¥§§§©©©ªªª®®®°°°²²²···ººº¼¼¼ÁÁÁÂÂÂÆÆÆ¡¡¡}}}ˆˆˆ´´´µµµ{{{˜˜˜½½½ƒƒƒ¬¬¬ÃÃÃxxxÈÈÈÉÉÉÊÊÊÍÍÍÓÓÓ×××ÚÚÚÔÔÔsssÎÎÎÝÝÝ¿¿¿¹¹¹ÖÖÖÅÅÅÙÙÙÏÏÏÒÒÒÞÞÞßßßáááâââèèèãããÌÌÌqqqØØØàààÑÑÑÕÕÕÛÛÛçççéééìììíííôôôõõõöööòòòïïïÜÜÜ€€€ðððëëëùùùüüüþþþøøøûûûùõ˜���tRNS�@æØf��)IDATx^ìœÕzìHšE$fNf63d(ìî™÷•ùCÊ<¶SŠ”Ò®ª¯/F·ë[±÷ŽÛH[ªúãqSAÔö«¸EÚIÚfßÿçC§aš3”’iÄ}1yþÿïoã!ªWœ˛ÕÜÆ“yì™*EXCƒ7Æ°Š‹r ¾€¿4ÿ¿t?ýoÙ/}]ZØN'.­â²ÓIn¾|= §±ë8ÄÒÇH9|Ó®âÂàm_À_š_{?ýG÷ß½ßzæ~IÚo¿ôG ë*¡È¯âÇWŽÖ³“Åý»QÆØhNˆ9¯à að¶/à/ͯ½õîßöÂü}öç çk»þ~é1ÇvÎÒÝ|q~pNT?IfÓpš`e0>ûñ*±“o;¹}?ñ!_À_š_{ÿÁ?¹¿èoçŽ÷Øï”$ÔÝ/õ<W£Ô‰—»yº<^^L"ˆ÷ÕîÀzõ¿ÿþºôI°¾“§˜ ƒŸú/æ/ϯÞÿöxù—ìßx»ó‹þSþûK#jî—LB<‡1m�Ëù%ÒˆÑÏw’tös3ìÆqø”ÏFÂD”›r¾0?çâó‹<ÓùUû± ¾ öúm¹âübÿíÜÇü”ï/¨¹_2BS±˜?²½øõK"Û¡›Óé}î3ÌïP¥Ü‹ã8íOî±®Ëù ø¢üœ‹Ïßæ?EA~Å~L´—î/±ùV¡Á|à%þÖþòeõöK !Ö·…|·>ç>U‰Ú23"˜aFNŽW³Žåxýøí•À[óÕ\œŸsñù[ü±*Èï7³þ5öçù¥ûKÊó‹ý âO^Úú‰/XVo¿DDZÜɱ�×òmgr}äGûÇgžªª´1yÛ;iðÙ¢wˆÄù9AtþÆÏø¶½ÎWjí÷&Ç‹0°_¶¿¾Sì_"¬¹ ö‘/ª]o¿t8`Žx¾�×òðæADçWŸV~r}d1¦Rc‡SâNÄùïgBñü'>äuÈ7½I¿Þ~ßy=Âà%û÷pŠýK„œ û?øDRo¿´`é ;à:¾ÀŸ&þ0臓y¿“,olªíÔ€3Œ‘Åù××BñüŸçu¨†Îôzû-èß±½—쯯¤µúç\ØÿÁ—1õöKCƒjÙ×o\Çïð?¿?ÕºM…ª˜¨“Ë€Uh !J3NÅùœ£Ó°}þÆÏó-êœkà×èߘÿúíóÁ)k6Ÿ¿…mõ×x~i&îÿà÷1õöK¸E µ7»à:¾þ ß%’E±—ïJ-齜kXœÏ¹Š”Çç»}]UK“^^öpu©xvK:w©†ž¿¿¾álõ×už_쿽¿Èséå9õöKË×}GkhLÄ«ýSðU-íŒÃƒÿJ°¬w{5<Ï!*ñ‚ëù*ñ£ÇópþÁÍÄ]ûy~‰m“̯µ_ÃÚ(8 ?üø×söïwú/¶úk%¾SÑÿ‘_To¿Ä®÷N¬†�×ôí†é‡¤{ØþôiBjyi:üŽìÓùÀÍö)?ß@YOý’ó§ö i€_§ÿk·aAÿñ¡ÿi ÿõ÷7*é?³àþ¶„Œïè¿ñß-î˃êí—fÿùàóçc®ë[Ìè¶‚ãÃf-Ïf^”ú^º#?J¼ ÝÒøùŠbXÞcŸ˜EÙ"^Ÿû5úw ßÖèßBÆþËï¯Yè¿y¾ß€ïì¿öSðË“êí—âÑ,ö5 pµŸ‚ojÙûswÜô.ÞÖ“÷·ï'º»#ÿv1CnÉû¼Ûkª·ñ!ß3‹2ðîWï?‚|•"UCÍÃîðâ™ûë ]¯Ø?ßpñ~vö_ûÉd& «µ_†ÓØ·ñj»¶E½±¬öÎj›Ž—ÜüúyG¾Ÿ¼ûãKA»0±=ÚTßø_"놗ùÕýÓØsLýâý—ÏØýÍ:Âáýì¤Oû§‘o“F£÷X˜Â�gwÿÜ¿_”Vk¿tûËè|Ò'LzæwóKÊß§US]Ó\졺ZÏŽwä» êFë7Ó` ÓÎê*ó³ü²€ã£Ì¯ÜÿÇäQ²øåÚ¤{ï‡þ¬ZÈîç—ßLô´ÿd2‰3ÕdžWÅþ÷×™ï&à ëì—–ý£îø@Ä«ýÖj޾ß&vüi/ÕK’ÉrG¾3Šf«¢FlÇNçDË}È7Ê×ç~Å· #UéŽÏ²þ÷×6¢Ìqìýö£ñøàG•ÿÎßêö±<8„üG‚\*öçýtJò�îŸd÷'Œ¬³_ =ÜlÚwÿà:þxЀ÷é_—}Ý ZÍÅùË‹(ZMK4­§:£¼¯ýn€È¯ìà±æÀÊûÏo†rÏuUªî³òmîïÈæ|›Ÿ¿Õ_mv9ÿcÙ¹\ï£ØI—’´Ý|O¦ž£ñ€‹ãå*³ý¢Ø:û¥ï_Â3´P€kù™Q²Øß Φš8¿†g­DsMcìFq�<Ë ô+¾<5úñâö(=K£63=SelŸýÌ0Ãdq'¢1œM>Œ"Ÿ‘‡þ°ÿÇŸa£¡7úÉâÕ,Ë'ijU¬©®´Ýÿ(ýžxÀ-U’°Æáß ö¯ýªïþû«DçïÓ^ÃaðÝg¸D7Lq>&Ì v©ÇÖ˜ª]nÜ{•È�_ñ nÞ»Qž÷ãQ8¹¿° ! cÆ)Å–ØgŒßôwã(NŸ¬ù]BíÎãÞïW&cý‘ |$“œŸ÷§÷oM“pÎÛêýúð9WÁ‡À‡þ‚ý¹/U}ÈŒùë´íxµß¿¸˜ùÎ3|ÍŠl,ÎjÎ)Á¥¢j¶áý^µ"cÆ}�ó}ÛH%ÜgNd!lžCÛæ¯ëï\¢Q•xœ›§VæKe¾okÀ7ý—û·Þ&úýä«‹YgèxQ¼ºöŒ!êº?ßy¾ï¹ì!XËÎwòþ›Lðß^ |Š9çýmL×÷÷³ôÇ|©ê£ýã…§©LðJ?:>ó5öߤÑçŽL´ÔtRþ~Ÿûññ™§øœûÄنܷ±¸¿è�f´1ÿ qlÓ÷}Î1±2¿Sî;|ØàiXÃzc¶ ƒ¿ïg’ó¯Â>ð?öá|ϱȣþ=ÞO…züx pŸóƒpÓó6 ýúœÛŽãrÿa¿?ÆÏ²|Ór¸TõÝ¥Éõœ¢ÒR\ퟯý½ÍÐ;IÞß óƒ 8I¯îJUß;: ù6+ È|à'Ð1•Râr?ß_ÎáüÌ?]ñ|Œ^8ÒÌó‚¡Ç¹’p¿_ê_F‘ÿ3ß!„e~ ¾½á¹Ÿ$×G&ø˜6œpÄîgý#è¿xý ŸYœÛQŒY?çõe°î?I’ͦ:®÷Ï;â<:_dçÏ-’÷ƒ|…¹mž¿ñ«§ÝNº¼[˜X“žõMüÎèŒû{›ÙûþT˜âÛ>ðRUµãôü(œŽÜ6_/$ÜF#·“,_À> #L¨©ˆjV<9éØAÔüN ýÕp,Ó†ÍùpíÇe~ œ÷›xmÞ߯š‰Á—ÁÏøyîOóóc SYCv¤¶Ð“þ¸I5à:áù-¤¹À7ýßB>fœË¼Ÿ¬ñ~¾þdägùy¿<ßÈúîOð!þº®SéY_KËý½uþ¾?P0ÿC¤u›-T.ýö'÷Å1øLPâw‘‚ÔŒÃ>Æóñ�Ñž5ÁÏ7”VÆ‘ŒuŒá¼×kL9vúŸßWZ#ã†Au-ó›ô‡‚ ÞàûT¬[à=ÍžgýUȇý£Ë€2¥–IüžfMá÷ ydäùÐO¾ÞËûœjÍ&œÏ÷kˆŸ¯fùrÎ?îOðµörîùIIÏú”.¼ÏƒŸì+†7 íÊŠ(ŸøïR¤ÈJ¹<»e¹ßâ¿X8.Ä—ø-eûò÷wûê`éˆað;ï8)g9w½8 ,ê_TGRUÎ×¾Rî“xW–yþ¥ë%'Ü? ñÏß„kŸß÷Ý›‡X—‘<ïß’•ü|ò_˜¶8ŸÞæýa_3Û—ñÎQ£–¡çýïÀÏû]z^Òßä#”õ+ÜŸèCHÿ]?»IŸûHe½ þÈÛÓKÃfxöý7U”? Æœ3NÒ° üZ£H÷®nS©ÌÿñQ•©þ{oqœº&Q~p¹šG¶ÖÐHÚi†‹™L È?¹Vö¾>îd<Ì}¤—ù*K8ÿþ‘!û·©g ü#àøÀóþ”rûò÷ýËÕQ?χý|?…ýWpvžÜlhª¶îÏôlßMê:?8ú8?5!?ë�œòü+ègeù¯W¯ó~…û}aè-Å<ðj`à–â¤ûi ³f³ýJŸÿ¾@ü>¯šíˆ4‡àt)vZâá÷gmÃ@Ȱϧî`l˜ía¼üï÷ªéwM8ÿ  ¿á¤{ÐDf0LWü÷ êOß/úœ;À›Mž¯ èo¥SîÛÀ¹oõ87ùùŠ‘âŒàüß «=LrßlƒØ~uvÊï¯eƒ?¦Và%ËûÏs'ïüC`À>ÙIGvk¬[§Ãôú9½Íï/²ûçý&Ïží+ÜŸðtLJŠ!þûøª¿oo6á…!Ëð¿+ߊ"ËXnÂîÀËò›­–,Wæ¡ ü}óù>ãA÷úë–Wä_½î¯9€ýÞ¾¯°Xi"Ø7€ûWj—í—[¨Öÿpõ¡Jû~›¿O?‹=Zâ£5ÿ»ò ¦¡îŃ|—–úª>x3ðjä{´õœý*j¾Q`ÿö#Õ+rÚ¬±ÿø,ÒçÜ¿šŸï7À/ÉïB¿Ê_–µÓ‰+íýeî}]:Øž¦®èïÿÿ¶üÞXnÁù_?Zü}Ý-ëgÔÈö¯ÎG­|¿jÒä[àO+óEû¾.‡ØNK÷Ëœÿ_;ç×Û4Fñ'q¼6­¯M²t…nüQƒtL-ðöb°  B|ÿoƒ]wWÔK¬)¹x~·GGç8·ÑyÀÇö&JÌþþÅîÿy>LRŸü-ãûôðüç+&y½´ÿP>è|¶ð߈’Tû›äKiÞ ù+qÌûódØ,ÖLˆÅÖÝÅ”?ÊAª”ª  gYù}>àYvzÐïÓÃóÿ¯L~ÔW*;쯲ʛ¿tõ÷óɾŸ)åðóþùeJ6ʇŠU:¿¯ýÍó!5ûó±]¦'fŸžÆß§‡çW1òÿÞèGÞˆ›¾¿%#ÕO÷ûóUóüIaý½pÊ !ï‹Êø…KÇ÷éáù¯u>§éwDþH½_Œß?ÊBò¹öäƒäB@c^nD*8¦?vþc"(?å,$_÷g!ùW\„å3”S!Ô=†ö_ûóƒ ¬/Ê¿”X ߯ýAùÒ“ßAAAAAAAI,1™[÷£˜}ÿã² Ó%àÈOÿëÐavû{DO=ú­GçJë±�”õ[U¢ý¸Õq$ÎP?t»¿GtåÑ¥GÏ¢‡}>¸iOÏ%ÞÏöõCgÙïïÝz‰ëuë»ý¿Ù×ë}~ÆÁEkz]àýöý½þ î‡Î²ß×7×Ç>ö°ï×ûzpÑš¾gù¼pô³ýsÝ÷—¯P¿ù>¥ÎñýúO¿Áõzn÷ýûû.ZÓïÌ~éw]âýïŒÞÃüöût–¾_gE˜³»}~¯§ìý�­éÅ— í7³ºÏùÍ÷é*“߯W¨î÷Ofv_Ÿ$ƒÏÏÌ~ߑӚžOñ~³§¸žÛû ˆß~ŸŽr.ðûüç Õýþ‡}½Þÿ'ö~ÀaÚÒÍ}¤ŸÖs¼¿ñOG÷×cÌ?¾ÿ_”hT~ÔQ����IEND®B`‚IMAGE 6098 ./arch/ground/smooth/quicksilver_sea_S.113 ‰PNG  ��� IHDR������@���[a?�� PLTE<<<ŒŒŒ–––œœœ¥¥¥………ˆˆˆŠŠŠ{{{‘‘‘}}}ššš€€€žžž¡¡¡£££ƒƒƒ§§§©©©ªªª¬¬¬®®®°°°²²²µµµ¹¹¹¼¼¼”””´´´···sss˜˜˜xxx½½½¿¿¿ÁÁÁÂÂÂÆÆÆÈÈÈÊÊÊÍÍÍÏÏÏÓÓÓÅÅÅÌÌÌÉÉɺººÎÎÎÑÑÑÃÃÃÖÖÖÙÙÙÚÚÚáááâââæææèèèììì×××vvvÝÝÝßßßàààÒÒÒØØØãããåååjjjoooëëëÜÜÜíííøøøéééïïïðððñññçççüüü÷÷÷qqqêêêÛÛÛúúúîîîùùù???äääO‡:À���tRNS�@æØf��uIDATx^ÌœÕ’äØ’Eu@ÌŒÁ Éœ… Í—fæÿ¿düH¡�EJ™m·­ÕÛ²åÛ·¬Þ¼¢¸º×“lI’þÑáIpYÇçãÄOßüsAYÿb ªÌH¯Ê<æ×ðåÿ—ûÿï‹óÿ&ý9-N¯æwþ¦ŽŸŒÒéy¿eôÇÒg]ÖP§ÓSëxUæ1¿†¿(ÿ¿Ü¿÷âüÿ=úsV2r³xÑ–lTÇ­ôÕ×ÿ¼Oý0û¿ßic,uzÿ¨á½ªÌ#~ ÿÓùõýžÛÿu¯óÒüŸÿ&ý¹Ÿ±O ø'uÜú"fV4™¦ã“�¡«ÿùãUd*§u¼*óˆ_Ãÿt~}¿¿¨?<tý7éÏE¶AMctÿPÇ{ø0?qûw ¦‚ŠHtžº§éùýÓ|ú[Ufµ¿zÈÿ|~m¿ûMxH gÇû aÎðãØÇÁ²Žßß~ú”JJl)V+^ýr$ã:^•Yéo‡ð?Ÿ_Ûoq÷éSÿý}½8¿?[>ÑÿX?Ž;Þ´U> xFNÃN;¨Ž#ƒjÞ21ºÆÙÛw§A˜ôßîÛºö$OE­*³ÊßMÝã>¿¶¡š3ŽŸÓÿæ§ç‡áÙp¯)é‘~9;Ò_ÞOhÜŸë(†aºuœ*8Iß7’ųûÛ0ÓÌÀÁd?ÍÓ¸2ôÐßÝå>¿¾_œ†®O›÷·ŠÉàEùïZ‡ýJÌü£¼ºÿaFÓþœhy>ñêxÛMKS4G=„Ô§]ÅÖ­Áç'¹;èT†úû±%N>ÇÕçW÷óÓÄ40vþ’þÿÀ÷ÒWÎßâÜ!?ÌhÚŸ£žç™J7‡I|98»¾éRŠ1BrvÁÛ²ñ×uW†îøÕù%oœ_ˆ•ùµýl~òíCðôw¨¦�Ç»þ§bþîN ¾×°?§ËϯkøÕ|6Ÿ Þ¿}øþ°F¦gÉ<Ï+ÚÄAOp¬M¾:uß?Ì-yÓüñZ­Ê¯ëw~ÿâöáûý Päs\uÿ-óh>øÆþþç³ ®è·?¡Ž³×°?H’ˆ2M{Šg™†Gw¯ú!%¦ë8£7CKA éÎ\Æ]ì‰ÝósKÞ4£Væ×ôÓF_ }Jˆ[Åw –_°ƒþ‡ùÌÿv°ÿðcÉ÷úUØíªŠ5ìÏa^ùö$BÜSï4„JŽd^ó.?L=ƒ˜†Qø<J+9}"¶ðyÔg>ŸVD®8ÇUÏ/ý/ÍM¾!òýúþÌŸD 1õNGµ5žkþvû7l£bÿi„ȦøoðýÄÊï×°?'ˆÇ.ê]ÖÜL†?~IxªÔ¾h!IȈ²ñ#ðw9WûÀ‡ç™\äWEœãªæC~é¼ nÈüðËMú‡®RÌç¯ëm®áÛïßHà¥ø¼rÿ¿®„Ý~Çbk¿_ÃþÜ2¡!‘jÏf½xqs#žïu‡mƒP¿ðÛž¡K%ç=êQJão¹oúBÁó÷óK¿à¥¸Þz.ø5|¢t½®ÚëE‹ëëXÐa~³{ý›¯"¶¶»?QˆgÀ] .„Ý~GbK?¡ðý*¢öçœw§£Éˆ E©+ ÚjG~õÇ|ž×u‘Çk9œõ‰ŒÐšsÍö’8Š¢Ü !çqÊùeþ¶|KÜpÀq}ÿåh6" Bº.Áü?Ã|›ë ì÷o tð«°?ÚÝ”û oÂV¿ãûoù§ƒÙ "«aÎ{œ»Pþ‹.Ôð'm$I’®v::^ÿ±8?«Âk!ç\Ówy2NüМSEÐp/Ü�˜¿“þ:KÌ9 †óܯyÌG™ ûël>/é’^œ×kăþµ……`ó=]’ö‡üôË…­~Ç÷/}}?¹"-ø½ðëÞû~;¿KMÚÂÙh§W瘗K¿EÒ¡þYÇIÀ¹ÆïüÛh”LY~2ÖðöôX¾â¯ýI–¿­Gþü†ùõý[Ú€í/cÞÖÚësGà¿Õ¸»ýµ§ƒ°Æ¾j´Ï®÷ö¿—ßïsa«ßÑýµœ—߯ê’ã­üºă4Äp?æšý üQîÿ|¦À}¼Ã52ܯþÊüî׸üæçǃüdèfñ<Ò{¥*w¿ÿr¶åÆóXïefî×¼ÜÏ KA°GŒGŽÂæëò+•êþ-üT p¿†û¼˜ô÷ïÂþ‰R Øêwl¼ïg‰k¿î-†ñòÄGÊ\ï_&§'B×?þxå™Ï1­/zfµÃäô48ÌæÀ+Þ“N®ú¾ILxáCþÔÃpÿÞ’‰‰}à"øM÷‡ûü7îç¯ÒÐ –៘_DdµŸá‹8=‰°²ºÿWîÂögœ %¯êö+ý¾ßø$< æN£þܧIˆ„çÜ ßLj—Ö‚ëó4}}†x=?±úw?EHØõzßß|_‘A)Ü¿×|»§¥ üáÃÅ´ô¼ÜÀóëüôë…ÆËšE ø7óS7ßï¸înç[§éa�ó‰‡~ eßç\•­ýËüó˜Âuÿë‚ã¶ûæ<6Ì]Ž$&ß×÷/^Û­ ?›\UãzßT¬0¿oßEñsÄÅÝý­Ø‘Y~8‚ü_vñøÐÉ<?N¼,M ?k[²¦Ì¿+å,X.á>>ðÊôårq{'þ#‹Y~?÷£ÄÁŠæ†1…ùãÅí§·l>ãUÀ¿Óÿ×Q²›û‡ý‚b¿ v°L¼ÝýcààÃýþc9ì¾_òÝýïþøX±¼0qKµ-dµú³ƒ~—‹¢?W÷ÈÙÛÛÓ0ˆSîeÏ‚û4ø­tñ槇gx˜Þ2êjÌAk´x³ÏQÜÕ*“#aí›ÌCÈ/ý–†DB5ðWóÒeÅ š;n®öïÃþ?µE…/ ’!?`Ü*æï`¾Spæ‡É`ñæá¡ÖóeÈwÇ¿A<`ß'AHÃûCÿÁâÛ?Š‘²Å×û‰‹›‡û„G˜¸;¾•¼}ùí½~hÝŸ«{XâûÛ¸kr/{Ð%¹gÄò¼gyqxæßÅ™fù»BœúoàC“@”‹W¾ÂòÞ…]sË·Øý¼û ô;{¸‹w²M—"œœù!Ìgüþ]Èò=… b[ÅĤ.ðÔŽ€'·­Œ�/}—ù!peÓßô<L ÏÃt=„Ûg¾Ëü¼_ü|þðíý1pøþa—˜£´e—œõG«ý3Bƒ|¾(á-ßBŠ,$ŸncL¬¢[‘Oñªý5Ïñ Œ¸—=Óê{¾O ²uëZ˜Æ†¡hŽi’~@=j ßbËšiV¸qâ•o™¦Ùw}(ºí^;LðwiêRæowvÛA \Ñ@·RÏóY¾n 4UsMÇ'Ì-Œ`?èç:%0¸ÄtŸ8…_äýeÕ6ZG3 Ï'´í/ú™©G)øª\ÂÀw÷·¾çà³|‰”œõwÖûƒo;0S«ôWó}Ç1 ²óýŠ|7ò“dõýêDx&Î2$TâzŸ`ðe øâZš$“Áåã€}[‡b„D^y¿#äüÒ«p=S¡+Ý1üÁøUc<^q‚!BF°ßû Ïs”zž‘|œ®G ËÇcÛÆ”ú®‰ÌÕü~@qLɈW.À7r?Ÿ >Ë/ú‹Hy?Vvòùî Îç<Ç$”j2,€ßyž8ž¿»?éšc™åO —ƒù°påbi#Í¥[üë�ò ì×ûùØ&ñêûÕ½Ç4p¼< 7ñMh„x=G›ÂùýýÛß¾?>¶#Ç3d|mG/ÞþöøXá†ç×çà³ó;øg‘Äürøõt6ÅO“¡Ò.§šN¯gÓóå€ñïg°¿óüå‰ÁËÃüù¬˜ÿøý;ÛÏRr>™að3Ü/æ3Ÿ ”ó‰!(¸øç0?ßÿ1aùÀóùX@ ®ÚÁ~ò·ø°ðWù"ó'XÜò/n‹|˜¿Þ¯ÈŸ^Aÿ•ÏÕ½–Àýù_C Wâ&þî×# =g€áþÞ÷=bFŽ3ò‘¼#|¼†”Ò*ɤð©I"È/ü-]ùàGŽiB¿áêþŽ ;‘"‰²¢áÉÇŸóËÜGXƦQWåóû>ðÐ3I補ËX&Ä�_ÑÚwÈ*ÿÍÈ’‘¾Ë¸¨mý˜9ËÁ~2în„U{{ÿøÇö+9ëïÑòûȲlίü!û~à³ýŠ|_¿º§»—7×€n¸ ×ûÞðfâB æKÉÔG„Âý]’zÞèš]¿ Õv|DL©sä—-|œûóm:ü0a¾‰Kîóàç\§p]w bÀ|äS]g÷󳩇4ª²ùº×g×w¶¿Ìû.’D™çÛ̧Òç×p#æ›&ô)øbá+|–ý§ÄSÌæó*p”Ž3ú¹£ŒSC2pIÌÄ­ý{:}˜0NÀßá&Ëgß'ïgÂ#ê‰ÛœùÌg¾èùB²êßä—A’Í[H·3-«Âõ>»o‹¶‘LlêÄ.RÙý]xA—Zó–¨ ]Œ¶…‚«ªòÛk_GHÒ!?÷³íù½‚‹HÕ£ Ö¯‹eÑÇ2B³üË¿B>øRrÑ%¶¿íŽÛé<^û:Ì×W>»¿;§àëHÙñ¡ˆT!ò–1ŽCà_j-bÙ.óβ­ ^Àåþ2’ìÖyŒl»K¶ß×U|–/Ù™ûOCñ|é ›#èÜ)òï•߯æIì>ÝO(¡~næ§1ÅÔ÷š:¸¸G‹›yWg÷÷´m-Ÿ¾÷ùäêÛœVùdãψ΋°Û4¶öW󛕇ùýæ³z¸<O¨œ¬}ò³A›b†©?]´=0Þ뵯Ø~y?ÆàáxÑÎ}¼ñÙüAL u]†§ÀWóÕøêfÖåó~15¨ ¾7½hSm³ÿõ¬«ê"ãä»;ò_}›uuò‡ìûÂ�·äj‘>ðÜwè*ŸàUø~]®îý~Âó"»?+^Rëýø6ÌP¼¸©s2"!ݶ;òóy[G<öâգɠ+ EÕÙýÿˆ/#dÛ|ƒ¿ÙÃg}" ¤Úüç ‡ù~'QMÃÙˆÍ×mîó9çu)>à8 N#˜¾dK_ôÓy‘í~0¾˹_ä‹¢@ Øü¨à]AQ$[Í9¸,Ÿ^ÊýWù/bÈOÖ¼Ø_ú¼áð}·’¯€_îÏ|¯ÈŸ,ú'«þúgåªÁÿ K’pì]Vñšß÷㎤«j/÷«8©ËïH’¤ªEþ¼q¾(|‘Ðkå÷tµðƒ ÷lÑÑkxm~O*Ÿß<_ÿ¢®ò%éµÎ|¥ô)΄/º êòõת^úÍû ¯…à÷ ÿþþnÑ_ýÿ�­üþ,ÊÞü ×øm~nk1øšÈîçú¼ßçÀç3ÅŸ_7Ž_B>VÄî÷aÊ|YöÏwö“2u€×åy¾("¸Ÿ7gÿþ@Š’çǸìÏKîû’Œãµý£|^D°óüôÇ2ûþFœ÷Gà—ùc ò•üûÿ{gÖܶ Ea�$c“â&¤H*¦G¶']·©í6Ýœtº¦Ë´Óéÿÿ%½P’Ê$Rã©x^¿¹<À}ÈC slѰä¬zVEû”ôÑ:ÿæ3VÕQÄ>Àùtœª³œï!øý &ðÀÎå|M7ù/ÈaFÿféâù'S?µ5Çü=úËû»ÁßÛ÷7÷s�7ûgÍqÆp¾Çýçì ý×ýKþ°uØ?øOìúš<°8KI/­óç8Çq¸Ù/Ð#Ÿ¿ÄyGäãûòõ/ó$|qÝò—BÜèÒÌå|ú¥5æ÷á÷_,æ.쟑M!·ñ¼È“8fü)±WÎD¿€ð?i¸¸³ÿÀ¾ÀkåÓí$óç×0Ÿ8ÉÝùùü½pÿ_<˜w`^ÁÍ÷wR8ÿkè°¶~0ñƒw÷ŸÂýãáþ"ßï>¿¶w—û ÿ‹8¿›´öï%p¾Ä®€W•ËàýœôäÏc±|߆÷õMj›OwfM•áûý0'—ó§-~[þÅÌþa^VòüWöÖ2_ÖGŒ¥ù¼FÅùlú jîó“é¥'Ÿ¼½*À?aÿùÃâdó�OWÀK›ý‡Í%£{¤¿~ºYx`‘-*Fý'«|ºÃxSÆÔ?êïsßaü©Š[üŸœßω½ ñû¼?c¡{^2ßïô¯-ü™[W¡OIO ÿÊ aÿâþÎ&n÷èpÉ�a>þàÅqÈ]ÚÁ­óù±;ÈŸ΢ÆyGu~*ΰª5öˆ÷ðOã¸ÛŸ6þ¸¿Œ“ÞJóY�þ8ïð,¸Cý$͹]?@†ïßdà…ûÐsg¥Ã›Nn™Ïæ.¿/óñʳ¿/ÏÏý¬Å/ðþÔq'ëð,îïe¼ŒÉ M½t ûç¥3kÃÔ¡Sbá/ÞÇÉPM}óY”Ùkv¯þ“=Ã?Vþæóû›³o"yž’ÿéþ‘Çäù‡ßŸDAH¶¥ø�­Äæ|:õÉp­f¦D–Ù_>àqgáóSø[ù{”‘á*ü=Ÿ±müI1![©x¥£æ|:ßÊݘÉ6û¿Š(ô SÌx±­ÿvûw¹Éÿ>5ʳ5jÔ¨Q£F5jÔ¨Q£F]ÝÞ/'·¯‰^F^Òí¸¡Ÿ@ïoâÄ8OvZŸ¿WND¾^+#—ýOt|è÷±Ÿ ÑÞ¹VØ_ ßÏ.ëTŸ_Ï´eÁÓsS¿UÿA³ÐðSͼ¢_�•- ç;5Ÿ?DÿN²î' »+ìçÙpNæs='ë|?ÑÉÈ)æïç,Qóóý÷ϱ_ M9ž¹òþ:Žš»À»ýYs,÷·³ªÃóùjžxÈ´œ¤À1œ½ÈˆFÈMý.OUòEÆsÍ÷Ïd?Á¦êd}>œwûQrTì³Y’tóù¢ZïoW%óù—\Í/µœ˜ækäÇ¿Çü¼OT€–kúDÿ�ÓÍa¿�¥ç_Ÿùþ]^8ö',? ˜¹|QÕëýíªÎV2?¯ä§¾ZjùÅsÙðö$¾¯ò<¬âM1+”ý 8_&E¬þ¾è'H±ÿ ã~×p¾¦H Ì÷·î§çDìú À¿Í/ž^´ö·[ 1¯Ë¯k9Î_½Ôó[àÜIæ"?ÿ¥²ÿ�¸Ìï+ŒŠ™¾?a.óýËTÛ¿ÐæØ?PrlZ÷´÷£ãøÉœc¿AÖÁc§µ¿ÝÒ ó÷ºüzhùÊÈe¾_æçW3uÿÁ~vùé‹™£lûÇ|þi¦žÜão_À÷ݘ(ø%ú'w9}߀ýwùªÔsœw¢7LŠò.~ÚÚÏnɘ_GþVðA󙜇\®Èçc€ªÿ�øYE§ü¨¸¶?!Šš àÊyì'¨`ÞßœŸ\¾?_ ó·î§ä„ÊùˆoZ¼ÊZûÛ1a~ýP™_G~i¸øûºyàÈç?>‘ý®£è/üq3@'ÇþZ9Eô]¿é䲟 Ùä²?@žB?Á&wp?Nd¿A#úºçZûÙ%‰|{ Ì¯#¨†¯Ìó"Ÿï½ ¾ùüi´ç)ú ß(ey­ì?ˆ4ó²?€N7Ìàa?8Ÿ¿Î÷K¾q¿6'ÿü=SÌïöó/`æ“O5Ãõ˜����IEND®B`‚IMAGE 5230 ./arch/ground/smooth/quicksilver_sea_S.114 ‰PNG  ��� IHDR������@���[a?��PLTE<<<üüü………ŒŒŒ–––ƒƒƒ¥¥¥{{{‘‘‘”””}}}šššœœœžžž£££ŠŠŠ©©©ªªª°°°²²²µµµ···¹¹¹¼¼¼¿¿¿ˆˆˆ®®®€€€xxx˜˜˜§§§sss½½½vvvÁÁÁÂÂÂÅÅÅÈÈÈÊÊÊÓÓÓÖÖÖæææ¬¬¬ÆÆÆ¡¡¡ÏÏÏÉÉÉ×××ÑÑÑÒÒÒ´´´ÃÃúººÙÙÙâââãããÍÍÍìììÎÎÎÕÕÕàààáááÔÔÔÚÚÚåååoooçççêêêëëëhhhÌÌÌùùùÜÜÜllläääÝÝÝÞÞÞ[[[qqqíííôôô÷÷÷ØØØúúúûûûWWWöööéééèèèòòòðððÿÿÿyp7���tRNS�@æØf��IDATx^äšÕräJ›EIbf3šé Ã3ïÿó¥T`«¤’ì§o&oW¯Ü{«»Ãi¡ê´Z]ÕH«Š‹ÈX^yvt÷Ÿi„ýŸZÁTÇU¼,7ïWðç×Ûàÿé~áôöâthQ\Å-ût~5{iþþÛÝ9!ý¾Øý¬U¼48ççqÕýuy½ý�¾òþœ¿‡¿Ö~áß§mU¾$œþõ™Ñïÿ½»ˆÏ‚öí7¼‹LQbß± n—?õ“¿ò—ç×Úøºûóþ>ÿJû…ÚMJ ƪx0ÿøípá^ì²äN¿5FÑí¯ùåí¯¥Á9?šâ/ϯµ_gÂWÞ¿çæ€ÿ¡ý‚B˜¡k½‡“ƒ|ðp2;yõj:ùb#S§H1ûòû+/îæQ§,÷©ß›ÎrÁkþOåç÷ _uÞïåósœƒf¿`¶­iÌlä¦Ù˜œÆöâáäÂi\ާ?ÞÍ}ÅÐ ©âe¹O}~.¸êþš¼Î~Ðÿþ~è_;?ïë°ÿÀ÷Ù‚ò|€/Û/²žK˜yöNpÇc¶Že]von†šf7|Ç=º'D?È5b”ånüòüŒÿýüêý.÷…zû3PŸ‚ÇùBóýñ~þŽ?²[˜¿®õ‚ýf†îfÜF£a­‘ˆÑ±Ë3HSìÄÚA¾Šµ²Ü§>Ã,Þ‹Þòúù\Ëå×Ý?¬µ ŸÓGù;%Í?”9ñsý#—~ŸâZ¹ýPñý 6:†fÚQTZ·cf‡a°ì…³YÇi4<]7u#šù¥I屩Ÿ„Mó ; ÃýdÎKówþŽgÚ.?ò­ûub²È—5öúœO×Îlçû›ÌÏ ^çû¶üûp¡î~èŽDãÁ¾À—ÇëoŽŽ;-¬ ¡_nü2~LäŸÈ"©ñÃ~0ç©Pœ¿ó3¾õ¶ù”JõöOàWï/õ—Â3Î^?š”~ŸZ߯WSo¿@%…¸£7o5vÇ§ÓØs:¦¹2G7W®ëi’Dv~1oÌ•!þˆ î;Ëé›8ÜÏ®fBQ~æïò‰Y¾Œ µr¿¬ñý§Ð¿rËòÏ„gœ\ò÷ý5Wë|?·8§Ö~A›MIAfEisèɦC»¢Hµðâí‡é_Â{¼Q‘ÛÐ £-û äÇ¡ÀͲü¿Íb7€clVîï¶š’…ØÀ#UûË¿ŸŒ„úGÏ÷§_ö}Êû?ÚoÕÚ/H"ÂzG³*{ó‹¿áì±oac¥YàIaŠ ¼ò´úM QeùH·‹ó%Ë­ðäþKiçóü¼Ïy˲¸_qdjaûo¿ùE¨rû¡}!×_…|[Û8?ÔÿÑþ²¨:ûJ1![A ¯ö` g³‰CQ­›ÏnK¿O†|îöžlÁîþÁB×ùI¡ï9šur~ÅIÔ„€oAÿ¿³ßª+ô'Åû9?Ðç·Ë²êìÆÑBW$Œh1®ö‡ È¢jWºÿãX¶jið"ò<?¼Jó¹H�\mÁö~ÚÄ„lý,ß?õ+Îd˜æ#*v¥—îÇm¹¶ äûÇe>ðCýí/˪³_`¯ŽÏ®z7^tØ·£éI~Ÿ&ýě׳ÄVéÁx²W£éU¨ø2Ü~¿?ÿeʦ;?Ëß·»ˆ8=îWãÛãéU¬À~ŠÕ—í?{*u…wŸrýÍާàã}ø¡þÛý“³Ò´û…ÅŸ Åú?õ%áEÇýsAlx~~/ɸ)׵ˍÏŽ<fó|'ìï œ7˜ó`˨û^u|²óÓü`_çÏãܯÑ_áý[’œPü¢ýr#è×°’ïïØ©ßú©jþ<Ù_–Wc¿pnš³ß>" /:ÁÖï‹ýº¦¶æËc;^çï ÎÑ|<±ãÇ›ûÝ–~zÏß¿·~/Ëß×Qçì†û•ýYÖ_‚þÝn÷%ûç~òýãËŸóCý7>ä?üVXc¿`Äg—íûoþ¸ŽÌ"ü_”êJÁ’þõ™—Wÿúaíï ï‘\ýëÛÇÀb‰uJ(ÙùWÜ7n÷õ¿>[™_Ý?Hû‡¦ˆlÙzþþ£Ô¯øýEýÁ¿…ü|ÿ÷ô`ÿ¿Š§—íÛ’Èû…ɹ-0ö¦?ŽŠpM_â¾S[2 çß^,ýÞÏòóBïÛã…c<ñ¢ã_ÿgˆÙú “ç;ò~D°ñ«ûÒþ¯Fãôþgî÷ýAúW ?Žìãè>×ß1 ?õ§Oàûo|óö7äâÈeýrƆcß_ /9|Yÿúʯ-Áû÷ìÕëédâ¨Ôµ°l4ì¼0ã¯ÛÇ =uèjèúÖgò%Ù,úà™_§?ÖÖ¯çð3˜þœý>øø‡;HïÏ÷·_Ù÷ê¿Ûø÷3‹CëìfÆs9>yýéC ¼äœ\4œˆûÿ‰ža™+x_´Iü0:à¿yýi¯ý4j·‡ÓœÈß¿²ÚøÃÈoD£‚ˆÛ̯ìŸîŸ½þ4dmó¾¾Ú½ÏW?7ó?쀶ÚKy}÷!½?ßÿŒûáøäüÇxyè·ñ§³‹…N »ÕÙ/œ^Ïc0·áx…¼Ú¿h s=óY>óÓ°¬H§×ßÇšf»û6ÓeY“öLݹ’¼õ®oÀ/J(ð5ô¸BjAþ@ÓL׳ݣÛ6"º¾º2î,ã¸æ÷³]ßöÎÖ`ýžøÀéýÜÿ¸?Öð‡š²ó³ÃyÉ~úáµüh_P-ó«Nç3‰}Ó`:)Âuüp⛺i>KCl MÒ:ŸÛᱫl_Xk.q"=õ"k6ôŸÍãÌÿ¼ÕšÔܽÛÃ(t�@>øL‡ýMdƺÊÿŠB†s©æ÷ãÐD¤6†æD&÷G÷;×™©+Mî Ûö_X?:öYæƒ-CBàq\´_‰©m}’ùð™QòýªÎجLCÁ˜âB^íë†i ¡giÙûúÕìâb©¯L¦Èxßï…'³‹B›Ùà{÷Çʪð‡6¿ÿ„ó6°/‰|Š s2ìGKð!d¬L'Àqä7fNÇ  Ãç'Ü_q^²#îqΈÄ}—?ߦ¾ þ¸d¾a2Y²ûÔ’XÇ1Ⱥ¿?›e¾žù>øÌq óM¡½Ú„ùúw ßšG³“Á�|úYçÞÓ2_¨:éûºŒ’. yµ/oÑgjCx_ÿ÷ü:¥>–Â{ùç7Áè ÿ*Ùà+¤ áìüõýó}“FXÓl!è—ÃSà¯/S_&éþcGB¸ëÇ_.┇Ü×à ¹G{~ÿ%p¬ËØ¢»û¹?~äc`L/$$Î{ã¬ÿM”úÊΗ4e|×_Kçá5âû—,”pþ¸ÞCæ UǾ;w\S–•¶.¼ä4>ú¶kÈòs=ßa¦a®:öGßu5,’Ïï°Õje—ûÝ\­:»†ëû<tR¿Ó¸s¡Ÿ$+ºæ.’j)Ä^„Ü×:Î︖¢{K«’¢8ã77¸ß€ï#I¤ þ¹D¥6q6ý2ÿÜáûàãìþÅÚg™ï:®&Ã>âŽ<ð⌦o†°Ÿ­ÌÌ÷¶>nYí”Ç»þ èÏýŒ+[ú™¦mó~ƤM _Z̽¹ð2ߪµœpy2?[è/û Z‹hùvþl/öãïûï/ß¾»wòù1Ôø6ð.E^ù\I}Õò¢‹·óû…nè:‘M†[TR0xü÷]šõ?u€I.RIBlè)6ôër¾ÏpCÇØdI«) ˜ss‘úø7ü~ƒßïàVSQ‹=É¿¥Ò´ß÷ÛøÀ- ™1ß§‚¶>ô#ÌÉ8[÷ï·x>ôwÖœ÷Ï8áýÄõþ©£ÃÁœ‹éýÃõ~¡ê 5<é)êÏ-$¼è 1{Ý~¶Èß÷„ ¾BûM„ y™~ûÍpŒÒ|,îóÌϸB»*Eªt¾°šÈJt[³8ÇÍ%œËÍn !*{ŽEÀ'p?^ßߧߤ–ªø >b&ç¿xàoúwáÞ–tî øsÈÜܰžDŠújQŠƒ- ÃýÒ:?ÿ!óQKòl¤ZxæÃ¾‰|_ÚϸC)Úø°ŸB>Ü)·ú- ý ¿ Üì¬}À5þQ‡Û+Æõ|]cÏÏfG’˜PѺŸ0ÏÙãà¥ÎSލˆ‚Èѵ=LSŸB¿˜ñ}ŽfŸºI“¿ßSË:ŸÎ¾P•óóÈYó`ê&*M ‚C~Â}ÉÑÎý©ƒ“Œc¸ÿ~ãC{akRz’èkÿKýºVÀïw¼ø§à«)G¼?†~ªåïü©‹¨ŠÓüu$J|øÀý©+©tëÙìï€ó~ ¥É_¨:Ѧ¬‘NXŒkúÚóEÞ÷ÿü±Õ”4åòÿ—ª)ï”é4ó ž¯hd73¿ ×ó}, Ï 'Gƒ…NdŒ€·SŽS¿ zžçù“£Ø11Áò çÔ‚}Dé„ñp8>â¿?@RŸlúƒ¿{Ÿûœc"o|8ä+ î½ œLàË çRƓ̂ïû“iäèJ[FYÿ ?IýŒó~k_Ìü,_ïø¼_ð|CJûe\¨:ó¥ïÓ χ‚Šâ³½æÏ"í7½ù¼§ZÖìñï¨ÔoúïJƒû”öUï݇¥‰*ÜO“”‡gïïJ£7„átzÉ2ÜOÕ”S”qÝL.Bg8=zb©Ùßø”bªv»TiÄcðSþû ø ÷yÿúwiÄ“eè ¦oÀ—·ù=ŸÞß‚Î|È_û7óÊ|J=ð;£éÙU¤àÌ÷!_¥ U×|ý€ƒŸök¦û-œˆ­…}Û~$óáûý_;gûÜ6„ñëI–eéNrDz娱SDÓº)/Å SÞ^f€áÿÿKØ»¸à½;å: †Þóõ™Õ³»ñÇú-±©/ùòA¥óí|ûŽšøv[~]Õý|œ¸ä'ÁŒ ¾wò’_ ßžý§‘Ëü»8ùUU«z¼?{~]»å×r¿IUïÄß¿Û}€õóÍ4¦ÚF-|?ßlWWKßoÏŸ^­†C‡ü~ÿâe½Ø¼¸¼ZbÿÅJ!W1kþör³Œíü�òüZÎý/‘ý%bþoSnÍßàõvµóoV›É«—ï7tºÐ J½oáûóß®Còíä|~/!÷ l*!ÿäâÏW>í’½ Aùdè8?ðù_®gÎùx½]c9¿Ü\>šýz˜ŸÒ{>¹ã}J\$ùó'?½Ê*Š ˆ£®|úƒúcé쿯_N !ò#Ô_ƒo¿Šû�‘ëüwl.ë'X>øÖ|UOœçÏRŠç‹÷ìû'd{¸~ÿlÅŽ| Ãùt<?>Þ)ÿ)<?‘ùK¼¿±=?Tù·ŽóŸ‹ýAýÕSÇ|UOç_B>Ïeþ-ò©=Ÿ°Œ¸©åÏyV`XCg>‰ßÇ™Ëg°lùø"b õƒŸC{>çMIJ<¿þÙ€C>ù£ËÏ:äËzâ¢rð€Ç!cE¿¿0Žy‡ýNüù:L2Æ›fwåÓ9/V71qÑ3x>ç|´ºÁýë]ò!7±àóï-9ù§PïšõÄQr¿bÂaûYØó %® çøtá]ùtªøvGA¾Éî’/ àû]  ˜ŸsýG˜?§òe°»˜êœ÷sÈÿ×Ô•O/ŠŒüG5›¨:ÓL�ó“·VŠOÿ¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼šˆ¼ÅòzÉQJÝ áÔXðüÿ­€ŸÿáDï—¥âÿŸo<~þcb˜ýGÒ0>?Bu?@ú<Äç³ûļ@ØÏKòóîþG&ÿyËÿK>? õäŸü½»ÏÃÐ\Ÿ`þ­ê¿íþêëë!_G}} û9Z=ü¼‰_·øïœs“¯øÿ–ÏσnI-OˆÑ'ÿTòû†úó¿¿¿?Ä!6ßÞàþ¹˜OןÚßÑj”ÈûÿoàŸ|Å÷Ó°ðSÁ÷o ‚+UüýFSQéÒ^{@û|Ü_©ûÐ_{àÀ—óU­¿Åý]­ï/̱ŸcÕZðñ&þßâ¿oð÷| øþ�8T‚Kñ÷ó ]N ü oðKÅïuÏo}d¾})ÔcóÍtý+jî#¸_ ÷s´>fà×Çvmðÿü}­øû¨!¸Zþ^ &ÔÒgz8žB}ѺçŸ)ÿoô§îˆûŒEMÁ^·1Ÿòñþ¥ŸÎ(ä‹þÒÇÏÞÝÊý«Z¾žkljñI!|:ü?kJ‚Kñ÷,"?_W¯î$¾^ù%>_Öý…¼9[=Äæ_õÏÿŠSÙòî·û9VYøu»aõ{ðý‚¿×åHþžö+£Ÿš|*ùý{úíý€}U̧ï_ù)ÜÐö×îïwЦÁš/r|����IEND®B`‚IMAGE 247 ./arch/misc/Container/quiver.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8Í…? R-���ï§_‚B'�2�>&¤���tRNS�@æØf���IDATxÚ­ÓAƒ0 A0éÿ?Æ€Rö2Î-º¹¦UºÀö¿QÍœŠš5éù¨é„={WM\BÒ{_Ó#t/Ìà°×sp—÷ªï· Èøö¶½5äÜ?²NèpŸ Ñpß÷ `?7‰n xŸÀ;wïa@»B!ï¼Bxu ïBǯ»,'ìXK/þõ����IEND®B`‚IMAGE 194 ./arch/misc/r_foot.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V¾¾¾���ÿÿÿÊ]G���tRNS�@æØf���dIDATxÚå1 À0 íÓÿÿܦºÔÊZˆ†xÈq®6ÿÝl�:J £„Aq‡`h¡f*Š ±§4<Za4ÔfÅìÀ‰5ø(ÞáÞˆ-�Ô¹�ê`g¡¹Å ����IEND®B`‚IMAGE 385 ./arch/construct/town/r_house1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTE-ŠVŸQ,��c2�c�Í…?�1�cDÙ¤���þÖ�þ¿Êÿÿÿÿÿ�±!!¿¿¿BBBœ�š���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ'ƒ‚É���·IDAT8Ë•“AÅ DýîœÆDïÙ/ˆ‚–šv,:/”A áµàË�ÙQ…iàøEÖ,:* ”{‡˜1ý¯�'P ù;@ÿ?Õäì ÍÇ(ñ“|î@eàé4›WA#»€f<âƒÏ|©c àJX«ݧ¶Î5 Y¦*�ÝîRø䮜üô¦Öìÿšú(=`6×q$ ¶= ú`cØ7© öϯz�>á&ÈZº����IEND®B`‚IMAGE 415 ./arch/construct/town/r_house2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���0PLTE-ŠVŸQ,¯/_��c2�c��1�cDÙ¤���þ¿Êÿÿÿÿÿ�¿¿¿{{{¿­êÓ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ1¿¥ì���ÛIDAT(Ïmѱ‚0`æn]y�ÞW&`³©õ=.\SvbÄ»k{˜è $|ô¿¶\Óü)·× àQËñ»ù©¥ÚJˆ ù(뮫\6®H‰”Až7PðÁy† � ïoÀ & x¬3 ¬¾65Q¶u_ÐHT‹F<Ô£—¦¯rCZ±(¤${¬t17!u‚è:jJí)1·O”»En®=ö?H ‚úKÁ)€DÎ='hÄÑZÒ‡X{ ÷ž<• §£¯0Ž6÷SiQNÁå<=³Ïþ©û9C=³c����IEND®B`‚IMAGE 203 ./arch/misc/Container/r_sack.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒi R-���2PE~���tRNS�@æØf���mIDATxÚÕ’A �! mòÿ?/¤9ÔàÙ\g0´¸^ w"¯"!#r�Ï‚¸ &ÞCÀ-ž;hî'òV‘ ᪣ÁÆf ÀMƒAB| v.-ðh¸"Ïцø€î0wz Cüòm×{ù�õÐ�Õ~Á����IEND®B`‚IMAGE 348 ./arch/monster/demon/raas.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE÷Æ÷!!!!)))1!)!!1!!)9!!BBB)B))ÿ911óˆWl���tRNS�@æØf���ÔIDATx^½Î»ŽÃ0 DQÏ )ɼþÿg—Dà¦7Ø&;…š{púƈyù=rï3¯ëèkm«Ù/ྙû+JÐEÜk¼m�žä³Q­ôîn$%B7J§>†3A Ž2çHÿó=æ$FwB‰H—@ÐÌËh˜Bo‰x�@^MZˆè¹# =— héÍ™C¤ÚC˜B÷è„ ôÓjÜ H3œÐ´Q Â~Cé¹·Ó;V°Ë½‚Ú¯ÿ� .+úßö3¥:B����IEND®B`‚IMAGE 369 ./arch/monster/demon/raas.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE÷Æ÷!!!���!1!!1!))))BBB9!!))!!ÿ911B))Úc���tRNS�@æØf���ãIDATx^½ËInÄ0ÁΪ&©m6ûÿµÌ‹ -ÌÉy Tt|ÜÓå~Ìè9@¥ƒÜçy~ò&¨;[æÇüu´6�Y"Ö{ËüÚlyg6•²~¯ ÀƯ˜Ñ&\î‹$û¯ oA`Z™ °‘oP£Ö¬‰DØ– ”rœ,ô{j)Ä©‚Ñ2'² ” >ƒµ H[X{;@q.·H@Ü0Èñ´nPÅ`:Ø#Þëç b\kMðŸ;2€ÆàѸ,‰�IÑÇ;ÐÌpúŒ÷+�Äà0Äã€ø×~�Iýn Û����IEND®B`‚IMAGE 873 ./arch/ground/Weather/rain.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ  nmŽ���iTXtComment�����Created with GIMPd.e��ÀIDATXÃWA®«0 œ<¤¶[NPÎõV‰M{.nÀ²­T6°ð_ü:obœP$$HO°ÇÁµ~ãt{àZ¿EDÀ÷g§ÛjËktÞÎY?Þøµ~§àêLo×1uÄ÷¨xW¼#p9ç¨y v ûTÝPc·Ð 5ôšÖ}³È<nAÇæq‹s�Ð7 �D›¾YtæqC7Ô2[øØEÝPcZÛÐ7 ÎxâgZ[¼~/Ñù<nè›E¦µ›šÇ-ÚäÀíF„×ï%nXÁ?þÿì8|JªÜ;‡“ ÊùgRZ‚Z[Ë^'—‰Ë~Þä¸åF©D\’å"cK·P-‘€IxçZ9ªc¯ôÈçȸa³¢Ä‹¼ú¶%lç<蜻³’ª½+ç5–ÔÖo<·ܳ+U“Úe5›wë9µÜñÆíœç×­[»ËÒy:â<Ïk@«_,Ó¤tV•eUBõþ� *±_n¢!¥Ðz|²¼IRà³#W€Ç—?¼W&ì2­mrºïϘž¾Y@Ð0ŸïO¼ÖK’=lèYæq ¯õ’Œ')(•SNç=­wžÅ®·‘¬èŒŽ_âɤ„R¢Ùyí'¦µ çûs÷åÝP €0vré•ÒQo÷Eï·SQÅL�½p['¶þ¿-Ùÿ(Álˆ5ŒL°¾Ylg$¥´õÍI >'ºaëÔ;í2µî:ár]’ˆÀ‡/„&9ës²\hÉã{‘$dš •hÖžã5ÝP‹v¿¦“N0*«çœÏøàŒç®üìå{å»û@¯‰°Ç«—ó\#ê1_Ssº=þ§€%–Ãå îÜ"»Æù‘‰r¯ïƒg”/*Í<¯@¶õ¼�€ub«>*þ-ãœË¸=œ,8óèCÚ°ãPéØ-µi¶¿÷úG¯Ÿ°vÿ�Ž›¢7ëâ����IEND®B`‚IMAGE 264 ./arch/ground/Weather/rain.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ  9’äâ���iTXtComment�����Created with GIMPd.e���_IDATXÃc`£€Ž@õËÿ³„(ˉQ„OÍ ´œjqC—øMý´jªZNj"PË釣¹cÐ%¯Ò4¡ ¨å´(­ƒGna5´JÊ‘›©eùÈMlƒ>¥ãs �M _t¼fUé����IEND®B`‚IMAGE 245 ./arch/ground/Weather/rain.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ  †«æQ���iTXtComment�����Created with GIMPd.e���LIDATXÃc`£`ŒuÖ/ÿ̪YŽÏ AiùЊ¿ÑÔO‹ ¦ªy¤&µœnq8š;FÁð©F‡åƒÖÁ#·°^%åˆJ�O«?£Ø§����IEND®B`‚IMAGE 235 ./arch/ground/Weather/rain.114 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ "5ÑÆ���iTXtComment�����Created with GIMPd.e���BIDATXÃc`£`Œ‚Q0 ¨ÔY¿ü0K¨f9>ƒ¥åC+þFSÿ ·œÔD8 –Ó-GsÇ(-HFCkØV�èc5•Ê ����IEND®B`‚IMAGE 710 ./arch/ground/Weather/rain1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��nPLTE���������   $!%"& $&$(*&,!*-2$/27.18*4<5?D-;B9@HFOUHOWFOX;R_>Va:Tb>KXBRaq”Al}HYgNfpP\g*}›dks^lyjqyG¤Ä<„¥G…Zs†7Žª=ް.’¹;˜´^‰ž8˜¼±î$§Ú�—î�šï�¨ò�©ò�ªò�À÷�Âø ·íµí­á#¦Ù'¥Ô,±Ù7—ÁIž¿aÄëb‘§�ì�í�’í�”î�•î�˜î�™î�›ï� ð�£ñ�¤ò�¦ñ�§ñ�©ó�«ò�·ö§ñªñ±ð¸ò­ò¹ô ¥í"ªÝ(¢Ó(°×:¯ÜV¾ìY¿ìb”®0c:«���\tRNS� $'*-.3577:?DGGHKOVW_dfmn|Œ“–šž ¡¤«¬®³»¼ËÍÐâãääæëíïñøýýþþþþþþþþþþþþþþþþþ§ê ˆ���«IDAT8Ëc`£€†€“ÆfĦ@JB˜GSCM†[H”C–‰›AÌÉVÏ1ÚÝXY×ÊD–]‰¸Š©™}pHP@`xd˜g„‘$ªy ‡²¨Š‚ ?ßôô<7C4Dô+ Ë‹’â⽓R³K-¥Ñ!¨ãQœ“ã“™–’‘ï¬Å‹áL.%m¯¬ÜPsëW9vìA¡hgÃÀÀÌ/ ®Ê1d¢�e™fÚ´����IEND®B`‚IMAGE 917 ./arch/ground/Weather/rain2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��àPLTE���    # $!$ "$ $"%(#&)$&)%(+"$)#%*')-(*.(/3+.4,05+.5.25 ) *$=G3@H*ER/EM2GPBGK"p‹-asJOVKPYOT\SZ_xIo|7iz;j{ExŒ^dlbhs?ƒ¢?†£$“½L€—#™Ä3‹±4•².“»T€“Z‚š1¡Ã7–½7ž¿K˜µQ©]†Ÿ@¡Æ7“º®èfÂä�‰ë�Œë�Œì�’í�”î�–î�žð� ð�§ò�©ó�ªó�¬ó�¯ô�¾÷ ð®ò±òžï±ò ºð+«Ñ,œÌ0¯Ó5½ñ:Àñ< È?žÅC£ÈMŸ¿W¹ìYÅí�Œì�Žì�‘í�•î�–î�—î�˜ï�™ï�šï�›ï�œï�žð�Ÿð� ð� ñ�¢ñ�£ñ�§ò�©ó�¯ô�±ô�º÷�¾ø©ò¹õ®ò ©í­æ©à¦Û­ä'µñ.­Ò.­î/¤Ñ4»ì:¨È=Â?¦Ì@ŸÅH¤ÇLœ¾M–¶PލQšºZ˜°[™°cÅí´ñÇø���ptRNS�  ##/////17;;;????EGGGGJMOOS__aacegszƒƒ‰››ŸŸŸŸ··¸¸¿¿¿××ßâçççíððó÷÷÷÷÷úûüüþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþKÿ���ôIDAT8Ëc`¬mô!,MLY67ßÄd/-~WAv yNËÜ„Èððˆè¾ÝÍ3-8Ð(eeƇ‡Õ6ÕT4´NQDW —Z\ZR\ßá)a‡šY@FLTTT´»¨có„wvNJ\\Û´éSýT°úRJFÎaî¼ÙʲÒR8C‚™••…ÔÐc“Â-+ldbžšînj,Œ]^4-š[&ˆ`“çsn®,¯(+)©œ8߉‹ñ ÍÕuM5E…Uý“$°(`Ôµíµ·rìjlì±ÓcÂf‡—*/ƒ¨áœYÚ܃4…�JZ=bš»_����IEND®B`‚IMAGE 684 ./arch/ground/Weather/rain3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��žPLTEBJ`]djx€‹}„’|„Œmt„DNT[eoahuW]j`kr8Š¥¥Ô¬â­ã­âªà[’emwINY;DIJMV5‹­3Å6žÉ3˜Â'_qCT\:Wc*l‚6 Ç¬ã¬ð�¬ó0§Õ8¡Ê8Œ°JQV?HLVŠœl•¯¬ç�²õ²ó8­Öbž·U£Á-®Ü�©ó�£ñ�¡ñ�®ô­çkš®\¡\Š¢�Æù�¶ö�¨ò�¥ò�­ô�³õ�±õ�«ó�¤ñ�›ï�•î�”î�µöb¡CHLh—¨�ð�œð�Œì�†ê�„ê�…ê�ì�“í�˜ï¦ïpÊìi”­HLU^Œ£�–î�—î�’í�‘í�í�šï-ªíiÀìvËì^‰£AEN6LX@£À�¦ò6´î^¿ìoÇì8¾î?•»6JW^luªà¨ï�¯ôPÃïjÇê[¼ßÀ\bprz‹�µõ±äR_ol}t†’u†˜}Ž˜€” G¬É¼è–¡vˆ˜o‘T^l5KWX†žb‘¨i—¨c’¨_Ž¥Ot‡BJ`l‹_^���tRNS�@æØf���¼IDAT8Ëcd �GŒ8åH ðÃ6 èw ÍÅo‘ˆ0"˜1· ÔA³٠¾:W`чdÂ{Îÿ\_ywA¸ddäûýŸýû'~&v˜YŒÏ¥×@„>)`füÿ†—¨à?Ó3iFÆÛjŒ   ¯3þCò»4ÄŒépGf12žCc°|R8ÿàD ¿i_Qª bèÛ•ñ+#c=¶¸h‚(«lé�80'!¼j¼#����IEND®B`‚IMAGE 1293 ./arch/ground/Weather/rain4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¾PLTE���     "# $!$ "$#/5&16),2,05 )15<37?58?59@7;B8<B;>B;?B3@H/EM2GP'_q:Wc;DI?HLAENCHLCT\HLUJMVJQV5KW6JW6LX"p‹-asJOVKPYOT\SZ_*l‚DNTINYIo|ExŒW]j]dj8Š¥T^l[eo`krahuemwÀ\bpR_o^luOt‡[’?ƒ¢?†£$“½BJ`#™Ä3‹±4•²5‹­8Œ°mt„x€‹|„Œ}„’1¡Ã¥Ô[¼ß3˜Â�Œì�’í�›ï�ð�¨ò�©ó�¯ô�µõ�Æùªà¬ã±ä+«Ñ,œÌ0¯Ói—¨rz‹�„ê�…ê�†ê�Œì�ì�Žì�í�‘í�“í�”î�•î�–î�—î�˜ï�™ï�šï�›ï�œï�œð�ð�žð�Ÿð� ñ�¡ñ�£ñ�¤ñ�¥ò�¦ò�§ò�¨ò�©ó�«ó�¬ó�­ô�®ô�¯ô�±ô�±õ�²õ�³õ�µö�¶ö�Æù²ó¨ï¬ð ©í¬ç­çªà¦ïªà¬â¼è­â­ã©à¦Û'µñ-ªí-®Ü.­Ò.­î/¤Ñ0§Õ3Å4»ì6žÉ6 Ç6´î8¡Ê8­Ö8¾î?•»@£ÀG¬ÉM–¶PÃïQšºU£ÁVŠœX†ž\Š¢\¡^‰£^Œ£^¿ì_Ž¥b¡b‘¨bž·c’¨cÅíh—¨i”­iÀìjÇêkš®l}l•¯o‘oÇìpÊìt†’u†˜vˆ˜vËì}Ž˜€” –¡,À ���|tRNS� ##(((//0033333337;;;?????[[[_crrrrrrrrsƒƒŒŒŒŒŒŒŒŒŒŒŽŽŽ››ŸŸŸŸ£££·¿ÁÁËËËËËËÌÌÎÎÖÖ××ßæçççèèòòòòóôôùþþþþþþþþþþþþþþþþþ=+ v��‚IDAT8Ëc`$6eiܲ2ή^å•én.2Øåå* A`þ‚}޲Øäæ÷tuw¶·÷ìº/ˆEâÎù&ÍšØ\ߨ»m·ŒFQ[c¼ãV͘±%Ú˜ ›Üê rN§Nòò¬šŽž®¦V9^1 I©ˆË׫®žµ“’”åESàÿàéó——-+^¶ìø‹çOß cEUàWV„ JªY²|¡!™wNΟ ù3¡`ÅÚp~˜¼¼ýÑ#/œÞyý0yæÒcbP–>»½½§»¹©©9§¥­½£½µµæÒeµ¡ ¬o-}´®³¥¡¶¦¦.»µgòÔ¾6°‚›úP–W–.™9mr+´åN½pñÜiÓ¦œÓ‚*àR=wÍ¢y“`JÁ¢§¯^¾hÑêûgTØa®ä4·M:´g¬,=ànje’µo¢r8xG®ß´yC†_ Ès>A B̨A%œœš–â‹$+DŸä�í6¤k?H����IEND®B`‚IMAGE 1644 ./arch/ground/Weather/rain5.111 ‰PNG  ��� IHDR��� ��� ���szzô��3IDATx^íV]oW~ßsÎì|íìÌz½þöÆvãĉ#Û5I’R!E¡’R‰/õŽ"!qÃ5ü„Äÿ BB ‰;$*rQAÓi›F“Øqâx½ëÝݯs㙵Ö2X´å6ÏêÑŒvÎyŸç}Þ³«Ï‹çxŽçxJ™fæó£C¥ò©‘±ÉÕRylÉ̦ö¿ÿBõà3 —S cÓçgçÏ\{aq図Ëç¯W–^zmâì‹×‹SskZ¾0Ì(¡ %LUU[É©cLD"…� û�‘&…LM×ìá§¾<séêµSKç;NYsM]ÅÄ.ÍvÉÖÓÞd}Ë+¸U/òZnÇõn³ù´Yßy¸·³}¯Y«~ê¹ÍÍ0 ZRJñ? ä-§2:=³V®Ì® OLžîY[üðìåÙ]£¬�p ( Šô8!Oû %̇°ýÚÕ¨·¹~oýƒ¿¾õè£Û¿íºÍ-�)5@˜¢-½üõŸU¾öúOZ#³ÎžnÃ3mjÌʶ H÷gWøO4¾„Ù}N„àtj±óðƒ?½õëêí¿ü&êuöþ›¤9ÍÌÏ.¬LûÍŸÒµW¯m+Cú®O@Fû‚r .ÓO¶W©„ÄÌ Á„¬¸ Å÷ÿxÓýý¯~ÞÚøä–"† úP5£èœ~ñ•òÕï|÷… /_¢–©vºj>¤ÂØïZ„Ý $e? ‰@<ªƒvòâ*ûó*>yðúÞ ŒéÎÔÜ—Æ/ãñó_½¢YÃöãÅ=W‚ì@(³ÎvKgØäb`"KA* {²`N-Ì3ã;@bŠSιµkÆò¥5s¨l×}F6@¶z¤�‘ÈÄÅŠƒ¨ñÈ0£êB¦ëcP@?±°*œÒDتoƒ”‚JX¡XšÎÏ,,ÉáÉRçÈz¡Öà¾Ìºå!‘t¶)&<bHÊ,…8!?tX¹Ìxbaœòl~ŠûkAB“ù;šik P×gP"*²â,H˜‰* Ù>Là`ö3!Ä, H€®3j‡†¥õ�“ eù¸YÝ¥Íg~l0C(�R�Á³Â’fœšÂiÆ~Bƒné>I–žìE„0§QNŒŒ ΣFõÙ=ëî{7+¥RE?Ágü¬ê1¥ ýʾÍ„‘(„C90”€ýÊ )DÉ•ÉðÐù‘À‘€Hx€´5G±Ì#Ï1E5˜ž·s •€(iA i—˜u€(€&¡=( †–xÞb (Ó½œR<HJACÁ.ïþáíèÉ£{é!L]DZ_ßyú‘xÿVPÁETÉÓ•ž=o„9‹üþ‰”Ãýâ„)º‘µ£!Þ%Žô™!ÒÈ`'gcL)„„I$ …Pyüqsíù=™àБô»ÝÚöæ£ÄǨrB÷ÂÞ¼9Ïíi+$ ¤E¤”D` ÔȬSk‚»»^Ðã>€Œ)A¤‘jЋ9Óš!F± ‘P*9Xíj;þäïï†ÍÚ ©>08‚Ýêö?oߺÙ«í~¥@­₺ÒÖl�)×ã^`%âfà‚llïÕ­õÀk4IäÇ‘Œ‘¤Ó!4K¦1Η-Ç×)!’ŠP’íõ§îý;·ü¶[yŒ8ŽºõÝ;žW=gXÓ‹NtFçÊ;j=$ö¼¦ÙktínÛ›;[>ìµ÷žuÃÀOÃF >U!6‹C% Ã…°m) }¯×¸ÿ¯¿y›îÆA�@ßÀ1ü^cãÎ{¿sԧή¼RtÆG÷¨ÊëΆl×wˆßb¸³µl<¸ãîÕò ð@ À‘½049JɌѮ"ò0ÛzëþÝwºÍÝÇ�BÀgšykìÌâò«¯¾ö‹o½ñ£·/ÞøÁ/+/]ùþìò…×Ož9w}xdlQÕ4) €yËž:}vå{K«ßœ_8wc|ªrÑÈ[“„R�| V°JefîÊìÉSWm§8£¨ZAÓ’¢äòûÏá(cºnäGTÍ(%¢*d )¿(‘ì ^@ÿ<Ç¿û:Ïê+Æ����IEND®B`‚IMAGE 425 ./arch/random/randomArti.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE÷½ï�1�c1cBŒR�œR)ÖkÞ¥ïs����ÿ¥�ÿÆcÿÖ�ÿÞœNíh���tRNS�@æØf��-IDATxÚ­’Á’ƒ`ƒ YˆÐîû¿îV=tOÍŒxðƒ„ÁÇ7ôóv >êù²…Ъ íZŠß€g–™Z� Ù²PšPdŠylùÖÒ»]м`Š  Q„Á(FcáÊeæËàEdÛ°hXMgÚäK¶M®Lýµç`Ï·þîW€�lrVŠè޼‡Dçht“ñ¤ß€$»þ̬÷ 0TYþ%ßN@Dôþ°™OŒÖš¢´ëýÇßUU7 Hˆ1vÿ$Yå¤EÄîËyre°É'ÓÜÆ•$ĵ�ãlätQ»XPã­Mg Ø$Zð1Áü³zºwYÀì Üz·¹üü À\‹ ­wÏÙoá' Epk£éNZQ¤žÀïÀó³_Д_|ž€°W����IEND®B`‚IMAGE 305 ./arch/random/randomBow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE����1�c1cBŒR�œR)ÖkÞ¥÷½ïÿ¥�ÿÆcÿÞœ.†ÄÉ��� tRNSÿÿÿÿÿÿÿÿ�SOx���³IDATxÚ’A! “¸!e÷ÿÿ­>5 TµdqŒÈû _€×F¥.}¡ûˆ8�°=�c‚#]5'©é ˜ 1*]€oÚv @L0«€ Á¶éšÐ'á2];p7ɧ”á0¡3¡tž¯Áe î¶Ew±™‚÷� êQ§m¹ŠÀD,êM‚wn­NÁ×\Ó5>VÑå©ÃñO"þüÕ÷J®µØë |�~=”SD<¼����IEND®B`‚IMAGE 341 ./arch/random/randomFood.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE÷½ï�1�c1cBŒR�œR)ÖkÞ¥ïs����ÿ¥�ÿÆcÿÖ�ÿÞœNíh���tRNS�@æØf���ÙIDATxÚµ’ÁŽ1 CqLàÿwIg‘V–ëªêž•Ë7tý È­î¿@môü�î€p’δ „±ÊáŠ5�õÃDúxª¡¸+r»^—~‚=!ÔF§N€eB£úP"¨r´_Ð' “;,élÅ5ÒÑ }T ‡1ûøhéPñîPÎ!«uÔ%/'¦ U8H©•ç4"A«" GOM*d™Qå©P÷q^÷�ì–h±Y9™Zs»“Ñ.HNÀIñxnôî{]¾ ×ô¦o^4����IEND®B`‚IMAGE 326 ./arch/random/randomGem.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE����1�c1cBŒR�œR)ÖkÞ¥ïs�÷½ïÿ¥�ÿÆcÿÖ�ÿÞœrõH}��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï���ÁIDATxÚµÒKÂ0 ᇱCû_›Ï&%… ©Ršg»RŠó—üNy,sym‘Û_�u’fâ�‹5[ W€Æ(´î`®#ægT=êÌ=xµN²gyî q ªa9ƒ+¡ "»:‰1ƒ|WÊj7JOÀQ•¼ç‡A°~/tÔŒaœ�\ϯD4ÓW .Kf œÁ¦Õ»ÀȇžA sÔ2ïó=HÉ)’rÅ¿þÉ5¸-ò—uç;¸øQäé=����IEND®B`‚IMAGE 316 ./arch/random/randomMin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE÷½ï�1�c1cBŒR�œR)ÖkÞ¥ïs����ÿ¥�ÿÆcÿÖ�ÿÞœNíh���tRNS�@æØf���ÀIDATxÚÍÒAnÃ0 DÑ §z˜æþ×­0’Ø^yÑ¿~�%J·+ú9i>ìþ}Ðã?‚*UÚÎ3Ìcˆž"©}@S¦ íB "…)¾AEVY•4eäHÒ¥aºÌaÌü}4<Ð\E  ¬óí¬FvÁϰl ÂY¶ÙK)Pª ÈNP©b'Ò‘o‡DxXà˜Gߢi/ë[ÔÄËÎÔ­ç˜8ØäDI:yòa„@^ÿåG½Àý¸ÛýÛº룵Ù����IEND®B`‚IMAGE 309 ./arch/random/randomPlt.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE����1�c1cBŒR�œR)ÖkÞ¥÷½ïÿ¥�ÿÆcÿÞœ.†ÄÉ��� tRNSÿÿÿÿÿÿÿÿ�SOx���·IDATxÚÓAnÃ0 DÑOM‡,“ûß·ìMjÉÎ_?P" ñûÐ7à禰íu‚ž 2ݽÿRä8H¹eÊ‘ õ-@ Æ ¤�uç18ÙL˜e€ F­@É-ÛµÚ4H&/À€»H« aDZ‚¹N˜¹–Ö`’5J„j :îÞpf·Ô½uì/vàLãÔ=(+oA'O@uz{‡Í³ï:ÁkßWŸ÷¡?‚ýüœß����IEND®B`‚IMAGE 291 ./arch/random/randomPoti.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE����1�c1cBŒR�œR)ÖkÞ¥ïs�÷½ïÿ¥�ÿÆcÿÖ�ÿÞœrõH}��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï���žIDATxÚÒAƒ0 Dѱ§¶)Ðû_·BNÛv¨øë§QÁó¢ÀcR´m¬M¯{ f TT4zà8ò ¹°ß^Ø]7=�=j `NˆF ”FdÕBÈ”X 4|ò3pYL¾ *à†ÙB€äìçÂVŒ$Šk†ÐÇ!X(]SÔÀÆ!hÞþnªèìE¥ºñª_]lm ¦]ƒ7×~&º*����IEND®B`‚IMAGE 399 ./arch/random/randomRead.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE����1�c1cBŒR�œR)ÖkÞ¥ïs�÷½ïÿ¥�ÿÆcÿÖ�ÿÞœrõH}��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï�� IDATxÚ“nƒP Cd‰YºÞÿºó‡VZ¨Xë| =Ù ¾ßèàë�.u{�}¡û_€%‘uìcd3’mH ë @Í+–r™ ÌŠ2T†yÈ: øDT³¹-¯DgO€`—»y»Ew¢' ~è’vNëý®B"›ŽèjYÃìVÓV§²×˜(¿$0ˆ‡e#^dw.Ö]ükBsõ·Ä&ÎÕîpËM®È>– ˜Y»y<¨z¤v–ÕöNÖþ)¤ÀÐ-ÊÕpX–X½Ìx L€@T±–('3Á€uÌ´ö òg>d­Ù걸Í×¼_è Ü®õÑÏûF¿&*"³”*‰����IEND®B`‚IMAGE 307 ./arch/random/randomScro.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE����1�c1cBŒR�œR)ÖkÞ¥÷½ïÿ¥�ÿÆcÿÖ�ÿÞœUVb��� tRNSÿÿÿÿÿÿÿÿ�SOx���²IDATxÚÓÛƒ0 PÇ^šqùÿïªfÚCS†0~9*A¼ÿäx]d�,³'Ø9Ÿ¸F#h´(AS p¶„4ÚµI1óÑÔÀ ¢ŸÐ&ð„”Å Òh0X¾pôzH[*›5êÛ �e{h„ê!]ý’ƒ"f!ÏÏå!ø Ðâè7ï·´ß å #f®r£§Œ4R«•ËsãÑVŸ«$Ø×¹÷ó^ç£Ô?ºn½Ÿ����IEND®B`‚IMAGE 357 ./arch/random/randomShie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE����1��c�c1cBŒR�œR)ÖkÞ¥ïs�÷½ïÿ¥�ÿÆcÿÖ�ÿÞœpÈ¿Ý��� tRNSÿÿÿÿÿÿÿÿÿÿ�JOò���ÜIDATxÚSÑrÂ0 ³fMö6àÿ?w©K¹6i€CõÅÖI¾F±ßx‡ðý+Á¦¸Ü Ü>#ä½u:æ@ë¶à‘�“‹”³ºÑí@H×ÞFý¨`ÜÍÉ ¡Û‡9<,’âRýÜæbœY˜öúŸï@® ë ±ù×pu¿š(‰Y+°¿ ¡dZ¡õú2ÿR‘t¢@£¨Ç£‚hZ-˜l¥!aPùgëC`®Í_â:(¤H”¿`ʳÈÑ ÁVÎI&3 íË'¡ÍøÉS}›`#\æxëñ¾À?6› ó'›Tv����IEND®B`‚IMAGE 420 ./arch/random/randomSpel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE����1��c�c1cBŒR�œR)ÖkÞ¥÷½ïÿ¥�ÿÆcÿÖ�ÿÞœåõ¼��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï��IDATxÚ“Ñrƒ0Ï=U§*äÿ·=‡‡Nšj†ñ‹n &¾Þä?Àçy�ñ2·p½„3i»¯û ìB©  ªxekÐ{jT_'àíÛD2PZ�4KF¯&h¯ÀFÔ¬fx@n>°ÏÝ*„tðá”9´õS³A K­µl“ ú€n  x–ðæ 1T±Jî9ÚG¿Ý¡Zr ¨ÁÙ  ¢`ÝE8¡vðl`\F(XQ@Í&ùâÀœ cDtqèû ^UX´3ÎׯÑ3µ�Cª€ù}b*”.vaÒ&Ÿ TO9&¸>ê滟çðlÐz&’+Ά0¸˜û«ìÀíuþõó¾É7-èMo\$n����IEND®B`‚IMAGE 325 ./arch/random/randomTali.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE����1�c1cBŒR�œR)ÖkÞ¥÷½ïÿ¥�ÿÆcÿÖ�ÿÞœUVb��� tRNSÿÿÿÿÿÿÿÿ�SOx���ÄIDATxÚÓÑ‚0DÑÝŽ3#âÿ¯ 5¤I·z áå¤Ù´%î?úÜ}@”=:ØŠžS`Éò(ãxTÐX�‚ûÁ6€S` ¯Dh ’×,[¶h:uh�B/à¾ÂÛZ‚²d6€í4"#áqH\£ ©£mýhÓ­NZŸ€ùaµÈÌóeqšIÉS`P¦û, ”™´R%`F°»Bf,V0`óý©î$ X\Zd$—·Z–gàYÕÁ£î¿ŸwÝ ï¬û³<uç����IEND®B`‚IMAGE 269 ./arch/random/randomTrea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE����1�c1cBŒR�œR)ÖkÞ¥÷½ïÿ¥�ÿÆcÿÞœ.†ÄÉ��� tRNSÿÿÿÿÿÿÿÿ�SOx���IDATxÚÒAƒ0 DÑo»x¸ÿ}Û¨YƦâ³}¡$¼oú¼š~€²sQt=ê€Ü¾ŸJÁ,²� À B{`€F2Å86ÇÓa¿�¾–bÂ'P¹°J J pƒÈz¡>‡U€kÔ@N¨½¬Ì-8¢2,Uƒä›å   ƒCÝOzÄÃGÛƒ«j³n‚¾{ðÐ'œÀ†ƒ����IEND®B`‚IMAGE 334 ./arch/random/randomWeal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE����1�c1cBŒR�œR)ÖkÞ¥ïs�÷½ïÿ¥�ÿÆcÿÞœ'ÄY†��� tRNSÿÿÿÿÿÿÿÿÿ�²Ì,Ï���ÌIDATxÚµ“ÁÂ0 C'£ãÿ¿—ÒVL™Zà‚•ÃOÊs•áþ%¿�·é�–9Pyü Â63­�'UGÔ²ˆ>L1HYÌ€ « >�¨I4]ÁÍ�X¹C£EžF˜ÊQG†ýrQW‡Ü¿ilÉ!÷w ÛY3÷7¯•C’AQ$¡p6‡¸ ýè…Í¡\ÜÞýUA– ô}ô÷ðÝËè}÷ô¢dèáêä/Ä´¾Éð¨e<VÀ±ÎO?ï—<_ÖfË‘����IEND®B`‚IMAGE 285 ./arch/random/randomWeap.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE÷½ï�1�c1cBŒR�œR)ÖkÞ¥ïs����ÿ¥�ÿÆcÿÞœº½Š���tRNS�@æØf���¤IDATxÚµ’AÃ0cT nòÿ÷VêñãSª« y8žÐk£�z©ó| ]ÿš4l�/íÖË\8o("Âoô-3_ðÜbæCÅ‹š#Ÿ~f>ý Ô]"ßV?‰Ö5òc>Ú©™Ÿ£ÿp˜Ï@ø7¢k`ôgˆ.£OÆg–�â Vì ·¿=¹¹Uó½9Ú«Ð�ÎZÇúÂþÅÆyÍ����IEND®B`‚IMAGE 171 ./arch/random/random_tree_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�1����ŒR�ÿ¥�ÿÆcÿÞœC7���tRNS�@æØf���GIDATxÚÝα�0EQ¯åÿ¹’NÏÄÐÞËHG«(�hš`“l�5€O‹äaàB¼Ø<ù:ð8ÈF€±(O:óÇ Tlê����IEND®B`‚IMAGE 190 ./arch/weapon/sword/rapier.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ–XõÆ�ËÓÓ@€emc���tRNS�@æØf���ZIDATxÚåÏ1À0CÑ:äßÿÊ¥a6ªH•ê%Ã_ï¹ñ˜wv~úþ/J¹Ù¬`×­gn>0Ö}l@„R3�BMÉâ|m Ð"lÍèý˜NÕ $Ô����IEND®B`‚IMAGE 727 ./arch/monster/humanoid/Dragon/red_dragon2.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿl �v�e�Ìd �Z�h �v�j�R�ˆ�|�f �` �x�… ÿÿÿÀ€�^�z�N �z�p �n�T �†�L �„�€�|�j �‚�V �d�Œ�r�J �h�N ��n �t�R �f�\�l�°�p�P �~�V�Š�x�r �b �t�`�’�~�®�Œ�Ž9�”�°�b�X �–�°�¨�¨�H�š�Z �„�†�¤�@�¸�ˆ�J �˜�>�VŽ�‚�ž�X�”�¶�€ÿ€’�¬�Ð×ËÀ���tRNS�@æØf��nIDATx^½ÐÕŽ,!†Ñ½R—Vwww·ãnïÿ©„©tßÌwû/ Þ¾jzUÎÃöö±b¾ºüle¡°ˆ‹â&ct\Gu»ÐØîØéñ ÅÑnép™�ˆ¨V—»^ì‡4ið˜‘ùõ(ôüœí5lˆƒ±Š\>AT=ú¯Iv$�Š’0ï- Ìô�ýä¡R)¦5ùֻϯ9Øÿú§?“ÁµYmJ‰Õìyâ¿Þ;Or¹1óRsòm.Ä®J^ƒÁNû·.µ‚¥å!ò@®ƒ.ì‘,¥OŒ‰ ¶+N‰Ý÷Ô°É>©PPßãµgNò‚VªÂ‘¢Þºa "UЛ�¼�>$À¢£ÛÜQ 8¯„R°sï¾XËÙ˜¶êK±ûñ¡R†Ò1.â@¹¡ÝC¬Q^üF2Ãþލ™¥5Ù.t]Où¨Y†-­êc¢i¥.l­^?;¸‚ÿß3Ö€!’îñ¾����IEND®B`‚IMAGE 691 ./arch/monster/humanoid/Dragon/red_dragon2.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿl �d �v�V �e�Ìh �v�j�R�ˆ�f �` �r�… ÿT �Œ�^�t�z�P �„�p �n�Z�b �|�€�€�j �Œ�f�\�x�†�r �d�N �x��n �z�ÿÿÀ°�L �t�h�`�V�~�|�J �‚�Z �Ž�‚�ž�X�”�H�J �Ž9>�V¤�„�¨�b�€ÿ€ˆ�l�†�¸�®�¬��˜�P �~�Š�’�¨�’�”�–�°�R �@�¯Ðs}���tRNS�@æØf��YIDATx^­ÏÕŽã@@Ѫ3…™™i˜™yþÿOÖŽÉë´5Òhîk.uÁwÚú $\‘Š|Ýk×¥Zœ0ÁqŒTsÅ—W1Ø7ivjb*Ù›8½y35ûMFŽ�ò’ÇòtñM£ÿÀR0HùŽë°¤o/ $¨éƒsLN¯âI†èF ‰­{ï–¿Æ-BH0¤q,h½ pËI4 cùdz§kké1d–ŒÌyÞì–}¡a˜~àÚ`gf¨)ñwîe! €¨Áˆzã¾…"ñ§QD޷ܤXi´2TÜ^IccÉP/Q@ÕŸ[†aq$)&�_8�¶Ó–¢¾– XÌ‚ìP·«Üÿc tÉ¢Ùâ^« ›©Ù1_‹¾HTžõ.r?ñŠªªïÖQÖŠÔ4AØ¥¢0–rê sµo•åb¢cŸ¿à§û-`悼Š����IEND®B`‚IMAGE 660 ./arch/monster/humanoid/Dragon/red_dragon2.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���üPLTEÿÿÿ~�t�r�p�„�ˆ�e�Ì… ÿ<�z�º�Ž�j�‚�x�v�\�h �^�ÿÿÀf�P �b�V�T�X�v�h�D�d �š�T �˜�ˆ�˜�Š�€�¢�Z�t�–� ��\ �|�l�y&b �L �j �ž�P�2�H�Œ�¤�X �†�æ�¢�ä�^ �F�€�€ÿ€Þ�¾�H�8 �` �Æ�¤�\�X�`�ž�F �x�À�l � �n �’�zh¡m���tRNS�@æØf��FIDATx^ÍÎÅrÃ@EÑ1š™ÙaffþÿÉDŽËKªl²ÈÛÞS] 7÷—n2¨Cî:µ³X¹:=Å$X:9¾÷ð„M’…—+OYR½ÃhbÏœ­8ø cu’�uÌ6¥e †‘,{Ç™êùÑâ°‡–`vjœ·.p€¢<qôŸYˆÑ‹Ý}.ïx©ÎæauìW£~pÓ”²6`ðPâóî#­º6~_G£¡”]ã–©ä¡öâ´ïÃV¥"¤Ü•2p0ï©ÞiÂÒ„¥”ªq®zi_©&4 «y½ë_ @4Mƒb@h"€‚^‘Ò„* "}Iêßà)Dp®6I ÌØ> ˜‹ay¤O"Óㆉô8 ”ì^³ñ6Ø%W…BqÖnl<¶L„!E¸mÎíè4Ñw1¡ðïö ‚–ð‹5ü����IEND®B`‚IMAGE 672 ./arch/monster/humanoid/Dragon/red_dragon2.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿp�t�„�e�Ì… ÿr�‚�v�b�h �^�|�z�l�~�\�x�Ž�j�ÿÿÀˆ�€�V�ˆ�X�v�h�d �š�f�˜�\ �˜�Š�¢�Z�t�–��T�T �P �º�l �8�D�Z �x� �n �X�ž�P�d�2�H�y&´�’�X �<�æ�¢�ä�^ �L �Œ�@ÿ@Þ�p�¾�H�8 �b �Æ�¤�\�¤�`�ž�F � �À�F�€�†�` �Ω]Ó���tRNS�@æØf��FIDATx^ÍÎÅn$AÐÌÂfîaf033óòÿÿÉnÏôÊÒTùj9®ñ2”ð©1�ÀüCÄG ¢0ã/êÔZ‡Ø ˆã¨Ä®8ßôO±´ 0«íM‰Ú¾qµ€Qq¨]À0ê Vƒžß¾%¶îyL¼éuw­Z~Þi€ºFZV­�ŒÑáé:õÁ€ C}š÷×V/ZŒ•N9'Ýé}­¤ò}Þ²`ywÅbgCÎodH çw(,„1Î_8·ƒz A¡jŸðñ •ß® x Šn_í3d�°l Ô>”u}òÀæB˜ƒo `É $l&î·…æÉ&ØÞO›DyBô…7C½iF¾K¢ˆFKaÔ\ÿ>@H&²¹õÖŽüü\F'M¥‘×ZÑ7ˆ@ø‚ù áïz' if����IEND®B`‚IMAGE 223 ./arch/wall/cwall-red/redcityport_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEh�` 55Ü""óOO���oË ���tRNS�@æØf���{IDATx^…б 0 DQ7 ÙÀE8K,À\Àû¯‚DÜQà2zú¶¯!€ûõïaúz8H…A”7ÒØ´©bOç²LpYƒ[EOÛÒkÛ«¡¢[ESDÄ11�&è‚&LŒÿ¿ž¥âxƒ¿ €‰Oã ÜQ5¨H¿)����IEND®B`‚IMAGE 236 ./arch/wall/cwall-red/redcityport_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEh�Ü""óOOûƒƒýÃÃ���‘‰-n���tRNS�@æØf���ˆIDATxÚÝQIÀ KYþÿåV:SïFà`4l¸~�ä�Èópàå\ƒ}Ðj¶Äæ¥H­&K Çþ¿›¦0Ô¤˜jD÷6 s÷>¿ ¢Èp§ªî´€ @O™Ü PÙÂ,À]¤ ôùѨY /³‹-C¿Ô±‹Ác$Z7? à ¼’¥×6£†>����IEND®B`‚IMAGE 305 ./arch/wall/cwall-red/redcwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������` 55Ü""óOOûƒƒýÃÃÿÿÿ øã���tRNS�@æØf���ÄIDATxÚ•“ÛÃ0C ¶ÉÿÿñJÓ)€¦¹ŠZ‰#Ì%½Šlëd[bJå{�Œ©üâ&ÂÂÄ|Œna]…Æ—ïà æ}†ÇîR$Í¢|žCVàÄ™d 85ïÂ�én[ª�A0ÖŠûP]¨;¬ÙW�—´¤`c@:õ:´�@= õ õ:D@ £A.}[èí�yZ¨€vë>=�‰™ÿ̨ŒAdHŠá¾³l¡�<[h‰D–TîAý«ÿÕÂÚà…º&����IEND®B`‚IMAGE 311 ./arch/wall/cwall-red/redcwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���ÍIDATxÚ•’à DËÝ)ÿÿÇCéb2X—15ò ô:rã^žºŠü”{`ô íï'�nÀÚ‡Æb]o%Ñ.®åqn�KÞÄW ã=àø‘Áí9ƒ²J‘Ë­ì±0⹓fÔ÷Y¸ Í<¥ ±Æœ#6Õ½€�a ‘ý `’¦4ØAÜ-�PÛC½H¥C×PB58 IïF`�yJ¨€²‚» qå?=*m9$å+Á2…ðL¡%2¥üz$uý©» +j&Ú*����IEND®B`‚IMAGE 363 ./arch/wall/cwall-red/redcwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��IDATxÚSA’Ã0+›ÿÿxA{“©/UêN>øÂç÷±p¡x†ü½‰<\âÄáà ù8$Îß:t# CØÁ ;®¯ V6A^PŒWN™qx‡ =Ì9æL×ô±I· ûw̧kU@¤tͧ®ÐxFä„ÁJ€®;€*ŒI9ç¤�ít üyˆ - ¥ ,#õ©€a[¤°RÎÒg ÏtÓ#PåËs ³¡·ÜSPBØ#Z²¿J B ÐØƒ’̽±Ö`�.ï;Î-tüMÀ¾…Ë7 G¸¶ÝÐ/ø* ½Ò‚é����IEND®B`‚IMAGE 367 ./arch/wall/cwall-red/redcwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��IDATxÚ•“áà ƒ+‰òþo<Rº 7ÿ,vÛÝüH¯×–hyªllÀ´=SÄ Ãµ%é÷×á’Ÿý}«pBËÃìÐ !@jþ:$ÀPÜšC Í!á>¨ì’jóÛPúÖZsÕAX›$9É °ÜE”ÇSÌ€1<E_œñ�KUñ «ð×SO€°àT™ú\¡@û l\Q èÜ@O‚€À"ÿ€Hð€2£À'aú”ýîÂUN«²××; òÛÂÜ ;BSz[°wáÆì@U™Ð»p3*»gTµÇ;Y6oÊ-\g�ï-\GBˆZPêYûPÿéh' ôꎽ¦����IEND®B`‚IMAGE 303 ./arch/wall/cwall-red/redcwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���ÅIDATxÚ…‘Ar1ƒšþÿãˆÛB-s°]ê’dÏÏÇÔÌ6ù™9j©§×(zzsès*é¯ï·†Å?q£ï@é‹CÅí0ºæ– 8mâ~ë t¾ä�AÞÿÂDÔL~ñ¼ï¡+@"íMªØ(Ò-- �Ï[Qä ´¿ ‰Ö�h‡EõØB¸_\¡IŽIN€®™<tu€/{Ð $+ÀSœ& èp$Ðí0M—¿á Ù `Ó����IEND®B`‚IMAGE 188 ./arch/wall/cwall-red/redcwall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEh�` 55Ü""óOO���oË ���tRNS�@æØf���XIDATx^•Á €0 »ŠG8À¤°ÿ,H<øšgt:;÷plûx¦§_‹‰‚0ú…Ó¡p8Sˆ”?=P8Ü9P}1‘Âáþ–õ”$ú¯Ë뎅¦„¹7AãÃ'����IEND®B`‚IMAGE 366 ./arch/wall/cwall-red/redcwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��IDATxÚu’[¶„0/tö¿ãá!sr‡xü¡¬õï*ïºÓ¶®ˆWË ó€#˸ûUCÜ€yâ Ü:"¬ è~Œ:úz>�9 }í-‰�f¡ã=˜-[ï z¼I£‘ à÷[¤  ;@ñ.&¹h/�'žš>93BÁpƒêxÖ9 éN¨{èó²o�„-—2„ ¸òg‚”Á2!3^ Ž6”>o(HÍ0¾·pQ™Û°úÚÚ 2†Ùb�‚ m g‹™„ a×Þ²ÿÌ ×ï d‚Tñ/�st Hˆm¸‘z~îª/ç1 ˆ×¥Dì����IEND®B`‚IMAGE 372 ./arch/wall/cwall-red/redcwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf�� IDATxÚm“ à C—ØÔ÷¿ñ0釨 H“àñLØö{JU]« HoªD‰·\þ| ¸ô xyU# ÂC½ßP8 ®܆8k”ÍPp¢ îU]€®†:ÐÞaÎcûC²½äà àó]X`à D¨Š&Ž @Î1O]û¤#ö ˜Â™pôd‘ÒÔ{Ž'�Ì5…@c%ðìwB,Ãp‚3¶€H¡ Öo]ÈÇ™n—{ŠD¸ GÍ;"+!.CïBI°² dëB™$Æò4Üõ<  ¯Ÿ<à„XÄ'€!r3tB€|ÍБuþmèÿ—áA— úqQ@����IEND®B`‚IMAGE 348 ./arch/wall/cwall-red/redcwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���òIDATxÚ…“ŽÃ CØ!ÿÿÇ«Ýf*eս˜+ÆÐþý¤NöB—óäER* ­/‚‚П—ºiÅ.(BOaÔ!¨,\ ¸ñíÐ,OijŠ­Cm8%Ó)朩¡)j<ÎL OýV<Nrv “5Àõ.ŽuRC‚�ƨJÀöªÔð˜p}Ýd"@7%`A;xÑbœdº¾¦ÈÂ�/ lq3P; éz§ðô�^ý*ðn@Æb ÚÀÙ²m ÀA´}Ë}$7A}‰ áf>£�7{yß±ÜÂO–[Ø(I¡¶úûWý?ìÛ ³ñ—5e����IEND®B`‚IMAGE 347 ./arch/wall/cwall-red/redcwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���ñIDATxÚ•’Q’à Cƒ%G÷¿ñ® 1tÝŸ´‰_e rmiÀKKW—F¸œKRC.Yþí,}üxªˆˆð’Í ¥ðp+¢N�µ tDwè3¤à:T)îûNoKßÎLo+í$íðþ?5À~™y3ý ` -ñx4@Àóü~Põ=d à4$P€Ìí b¼É¬úN‘Â�Ÿì)ûÏHV½RÌ �>ò�ø6 £7Ø)„A¾Ê`§Ðˆ�z„J!®öûh*‚„½êŒÚû é1¡Kh·Ð�œ·Ð%#Ž ª7déú¯~�òø kX6î����IEND®B`‚IMAGE 213 ./arch/wall/cwall-red/redcwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEh�Ü""óOOûƒƒýÃÃ���‘‰-n���tRNS�@æØf���qIDATxÚÝ‘Q À C³êîåi(Âhý6ÆH'{kîÐÛÑñÔ Ìbõ=Ì¥AOOîÝä Ã27ª÷·1fl/YæŠÐOô4â‰NçÄÖÖ¼OaÍÿOax›ÂÁ¬tÀÀYé!ÌJÇÁï¾BÒÁ««$¼����IEND®B`‚IMAGE 376 ./arch/wall/cwall-red/redcwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��IDATxÚ•“Q’à C%G÷¿ñFÀxšŸ}ÐiG…44à¡Eü¢‘^®Å‡E‰!/ÿV˜ÁèÛ`yÒÍ ÂC.¦%7JØLð!óTX‹Aœ‘Ù+Lsàíè¦9ÔpJ¯cþ4q]Wyõç0õ ËÓ”²=É©»ÂÞ_àë.ÖJTÕE+·!1´ ÖJðÕ� ÷½? ÈÓ¢Ö2Á¹Í9·æô r¼È‚¶\'E ·cw(hË'EÉõg¡[i)æ �îå-E d> ,ö‚Ï·#”nµ§ÐÈN—ï)Ä•Àgžšd’˜;èÍy_AÀ;΢#¼n!¾ 8·_ÈGp×o´ˆÿòîM2.ŧ����IEND®B`‚IMAGE 352 ./arch/wall/cwall-red/redcwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���öIDATxÚu’ ƒ@C aåþ7.Aö£ŒÑ™:å5 [M~«æxÜú@œ#ŠŸ€ƒâÃÇ<5‰¸—C¼�(ŠX€m©.‡ÀºtDwè‚søÚ⺮Á›riçÀ’ƒ75\ûIÒ¡~?\`ý¿ˆçËøM� ˆT›€P„Ùž?K‡*‚sî‹0!o6P1s7h58·Ar#°#*€þL:Ô|o‘ €�NÀf€™r¼fÄÈIsµ‚Þ Ò*ý2@ßžR5Ã@›CÊ÷[‚Þ¡ h9t�y–ÚŠ$+îèÑ¡++6‡?Ò WÙÅØs����IEND®B`‚IMAGE 355 ./arch/wall/cwall-red/redcwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���ùIDATxÚm“ ƒ0 C—ØÁ÷¿ñæRºBp+ÈÃNø|þRÀK§>]Št¹NIH„\²|î,½¾<´ˆˆðBÐM%Lbü+s9ì�Ö2аݡ÷P‚ëКâ8Žò¶ôöÈò¶JÙŸ¤æý¥�û»¨ªƒåc)âp @âg¶×÷&KÈKò¼X€Æv¤D¤\¿OQB`pwà˜²¿Â®ß¦�¤`‡à@¦GÀÓáJ@U4‡š#ä™Ía&<òé ¡Lõr:ôïõüJÐ{˜à„Ä+�O‚ì“à·):ÈÞÃó÷o_K §oÛpK����IEND®B`‚IMAGE 382 ./arch/wall/cwall-red/redcwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��IDATxÚuR®Å  ¯÷¿ñ§2]̾Õd ÔÒnŽØÙ¸P¨– ç…@z¹ô'n &Z„ñ!ð@CaÄ ÷­ÐG`/÷C¡Éñ®S¡É§‡Nйßï—Úíø™U/“©-$ýø’©z)¬óIC¼ÿBRÈz†*EpÀŒ`wjÄ;�Ž:µúÝyM&áŽâQyÁìòÎÜràQ§áäS΢ “W "ty§HJ_L Óaa§˜€€V¨â‘"YMW,…8STcFµ­ð;Rм'ØV8ST1z€·Â ·~·{²þ(lŒ‰Rî[‚åásš ‚Ká_”~Q(+À´ˆ­ð¥üêA˜? ˜Ö鞟(����IEND®B`‚IMAGE 386 ./arch/wall/cwall-red/redcwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��IDATxÚmS„ cëfÿÿã£ì@A ‰IWºU´Ý A‹…öÍU·„£J‚žo‡! ~ D”âKÀ€eÆ¢7$ñWH ´¸á¾J ²ÖrßJÜðPì%>gHBupj×u¥¶Àý=dv¾E¤¶ôíM¦øî0Ï' qß… äýbºÀ3‚Uiñh�G?5ëU¹‡L‘¤ò‚Yt“ÏØšÀ-‚ 8ù§s¥HÂ0tDHPôJ‘”¿:ØpHux¤�D9ˆ|¦H"ÂÓ!ö„‰ -‡kKAóê`ÓáHÁ@T/‡n^·{² üï°°¾×úJ0ghÝ‚.‡O”>NÀËá-1ø{†ó÷9ü�È‚Vš*»����IEND®B`‚IMAGE 203 ./arch/wall/cwall-red/redcwall_w_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEh�c!!’44Ñ%%ôVV��� &•o���tRNS�@æØf���gIDAT(ÏÁ €0 ³JF°À¤-û¯‚ø ÖyPÈ3²îœ˜Ý�ê~Ø3á@c·(pI>$T† ƒjXfzÀ…AaD²HJ¬Ñ/N,µm¢!×’ŸoI‰lIŒ×¯;0æ›^ 7¼éÐg»����IEND®B`‚IMAGE 215 ./arch/wall/cwall-red/redcwall_w_0.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEh�c!!’44Ñ%%ôVV��� &•o���tRNS�@æØf���sIDATx^•Á …0 C³x[t`€ŸöwÿU8@¥>FOÏI슓,ÛÏî8È¿šA&!¢#œŠ‡b CË—=ˆàPp8YkG€eoˆ¢”ÖdO*—r¸µµié™^ûÉÇ· "¿ˆñסyÇĦ'“Á7Z\9 ����IEND®B`‚IMAGE 219 ./arch/wall/cwall-red/redcwall_w_0.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEh�c!!’44Ñ%%ôVV��� &•o���tRNS�@æØf���wIDATx^•Á A SDè °Ñ5€¸?ÞÜöß ØõÖÏh4Nï@ÝŸñ‰89 Ò"'B ;ÒôXË?{ ÍAsè}"r¿ñMq¯Ç�DÇåж]549C¤êX»Å ¥Í ýþzrݱ°é <ž6ðXIn����IEND®B`‚IMAGE 233 ./arch/wall/cwall-red/redcwall_w_0.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��3c!!’44Ñ%%ôVV���ë|ê!���tRNS�@æØf���‚IDATx^•Á 1 Ý ØÇ°Fi�ï‹“sÿ% ñˆóìs4Zo"ŸÉþ<dÄ@ž@#’¡Äd5w uh¾Âqå÷DêPºG`¥ì/‰ÎG¤«ß¢ ÎûîØvÙ$¦±ÎÀŠÖëHÖi—¯E2Ú—±þuèÿÃX/}`•A]×’Å����IEND®B`‚IMAGE 233 ./arch/wall/cwall-red/redcwall_w_0.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��3c!!’44Ñ%%ôVV���ë|ê!���tRNS�@æØf���‚IDATx^•Á 1 Ý ØÇ°Fi�ï‹“sÿ% ñˆóìs4Zo"ŸÉþ<dÄ@ž@#’¡Äd5w uh¾Âqå÷DêPºG`¥ì/‰ÎG¤«ß¢ ÎûîØvÙ$¦±ÎÀŠÖëHÖi—¯E2Ú—±þuèÿÃX/}`•A]×’Å����IEND®B`‚IMAGE 245 ./arch/wall/cwall-red/redcwall_w_0.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��3c!!’44Ñ%%ôVV���ë|ê!���tRNS�@æØf���ŽIDATxÚµSÛ Å0³óÿŸ|܆ìa¤Â³Ð—¤1^jwÐq"ƒöŒ"ÄEHBÀc¯€ƒ"ÚC bð<t¡b×"“¦ú�W8¯«p4þLAù¾=0‘¤€ë ÉàÚã Sì2à6:%Îó* R:èYЛójXÃVǸÿouås£Â‹ñÉE¯PÒ(����IEND®B`‚IMAGE 246 ./arch/wall/cwall-red/redcwall_w_0.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��3c!!’44Ñ%%ôVV���ë|ê!���tRNS�@æØf���IDATxÚ¥’1€@ cBøÿ“½¡±‘¤8,AXÇÄ'&ô]Œ1K6L 57@Û †Zja(Aù‰»Áð¢ûøŽ!íûb`›~Mhš Ò÷C;  >oEöèƒHPcF< z[-Þý4~f`cÈüÏ2ê\’ÃÁÜ_u-W-¨á‚akÀÜðÇðüñ=£äz����IEND®B`‚IMAGE 257 ./arch/wall/cwall-red/redcwall_w_0.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��3c!!’44Ñ%%ôVV���ë|ê!���tRNS�@æØf���šIDATxÚ•SÑ! r”òÿŸ<Ã-·—£nhªI)bÒ®/z‰]Zê"4¡ˆšhJV�MÑFôP€º©<”ôΧ'äúG/B#ÕÛíŸ<ˆ1¯½‡z±©TÎÕ˜ê—,0Q6Ö�Þg‚æ4}ËYhô�+ÌßD ›Öœn9ãÿ®Ögpjš‹âa²ðÃd8+<yx-,Ù[ó5����IEND®B`‚IMAGE 256 ./arch/wall/cwall-red/redcwall_w_0.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEh�c!!’44Ñ%%ôVV��� &•o���tRNS�@æØf���œIDATxÚ“Ñ!-¥ÿÿËGÐć³dÙ/3VbdÝØŸ˜¡õ(!¶4B1'°U9,Τ–ë¡9Š›‚JfssÄÀ¹…æ6Êä ÄÄU?åy;Š-ðµµb ÐY¤HMÃèz™1s¨–/sèAé·®çÏÔòxQ˜ú€vÞô<ÚóêÝàŒ“EáÃd™„ÏÓýêá�†1@¢����IEND®B`‚IMAGE 274 ./arch/wall/cwall-red/redcwall_w_0.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�@c!!n&&’44Ñ%%ôVV���¥#§���tRNS�@æØf���¨IDATxÚ…“QÀ C•Qzÿ/ê’~�Ž}˜øJÛlÙÐа"œ£šÉZàXÎ4pØ|‘¸:Ì!ž;8#L<upÊ¿Œ EË1èê_FPûÕè”twˆuôñ% £}É:@"’]B6¬CB¡Å6êÏÂåP¡6å*¡ó6¸¶ÔÑ ÝYô+·âú¹ù£qøMÁAƒùýß„c ­Àðã`ÙáÃ[ Õ^����IEND®B`‚IMAGE 237 ./arch/wall/cwall-red/redcwall_w_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ƒ11Ñ%%ôVVûýÑÑ���vÝù���tRNS�@æØf���†IDATxÚÝQ[Ã0 "&Ùý¼Œ¡¡fѲïRŒmYõCÁ=ð8�<�¬ßužw]«Ê@²‹ühIm¸þ_‰]@|qb°Iû[]À×€æØ¤_º›¤ß´jŠŠÊ%º"&mž*Ár|m¯ÈòÜ_‘öâæŠÌq‡4.¯Þ¦Ï´å-œÅýñÜ·ÀÊ� '‘ƒÞ����IEND®B`‚IMAGE 289 ./arch/wall/cwall-red/redcwall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE��� & 3@ƒ11Ñ%%ôVVûýÑÑ���é ¢×���tRNS�@æØf���«IDATxÚÝOíà Ëæ0¨ïÿ¾ʤöz·ÿM#òqMÏÀë=QÊÇ @&¼*ÅFÐ3Ýåù÷¶Šã:WŒ3„Ž èÍÙm*dg¦{ds ÉV=ƒõ¿E’+ZWãD×ÚÈ_Þb€Í@7'R/‚°ôì°zÆpµ€¥—NÕÅ·-Rþ~‹‰o·HyãÝéU^HaÆÓë¼Ó ᨲ‰ñx¾9nE|b‘����IEND®B`‚IMAGE 286 ./arch/wall/cwall-red/redcwall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE��� @n&&ƒ11Ñ%%ôVVûýÑÑ���£7*-���tRNS�@æØf���«IDATxÚÝOAà ËfÂÿ<7Ím÷¦$¬¡àx¥Â.ß C®szƒçÑ9.ï^¥ .ï!-‘d:…©’-‹ 5ïŸœŠ•4¶Ù•‰}¿Tä¹_ãŽBŒ>É䋨¤¤ P@~Æ`é äý#»2®©mq(íËÜ·ˆ­<¥mQØzJÛÂì­ô-|ŽªóÂ1¦tF·{‹c¬ÊšÈ?À#ð~*Rö †����IEND®B`‚IMAGE 293 ./arch/wall/cwall-red/redcwall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���@Vn&&ƒ11’44Ñ%%ôVVûýÑÑ���›OJ®���tRNS�@æØf���¯IDATxÚÝOÑà cv,*ÿÿ¿kºœà]ïö¼¥`1jöˆ‚[®„Î+gëkºÐ^HÖJ-…À³pöˆŠë3OŒ+&<h€"™lr0:I¥é=1¨–ï6fgœ˜ÝÃíS3–ƒG5`¨I%àÀ¸š\zL8XA®\l饓Ë5§ ´BÅ>…ÔÔøÍ)ϸ›"}´ËŸ¥0ÔºM‘ÂÚÒâ lì'ñ·ñ?®����IEND®B`‚IMAGE 325 ./arch/wall/cwall-red/redcwall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE!�� & 3@KVÑ%%ôVVûýÑÑ���áJO���tRNS�@æØf���ÌIDATxÚÝOAÃ0cëHºÿ¿wAhSo;Ì…Tù<žÄ¶½R¶mÞ’y‚f_gC&Ö§k�]f£^èšÐ@8P¢úpâ.hCÂ"Žz`Lb¤›4"û2àÅL©ûDì@ÝgˆÓƒÀ9 ^Ɇ,؄-å4™éþ™¥&Íߪ„bCÚ0J‰Tí-J&.cÑÞ‚ˆ NÒÞ‚X'\+èe‹ÖA²úÕ +ë8 ä­P¬‹ò¾\+ýÖU¹™û1>®u¸â{����IEND®B`‚IMAGE 326 ./arch/wall/cwall-red/redcwall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE!�� & 3@Kn&&Ñ%%ôVVûýÑÑ���e ‹z���tRNS�@æØf���ÍIDATxÚÝOу0c"k¨ûÿï0h«w;ßö°Xª$„þÍÀ¼ïÌ+½;á%ÒµKŠzN ƒ¥ñu™P,ùlŠ"Kƒ@$¶àC³hˆ²3¾d³,Á`g"(ÿw<gƒ1Y ~¨žs€1Y Ptð°Ð‡r-Á5 UcÉî³*øS"+]xÀÀ,hHÕé¢d´¡5VÍtº0Ä ¨ŸL§‹š»Ñao½º˜:È,_å"FÖêXÊÅЩl’ôºsú­*tÓ÷c¼¬öó0\¶s����IEND®B`‚IMAGE 335 ./arch/wall/cwall-red/redcwall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE�� & 3@Kc!!y++Ñ%%ôVVûýÑÑ���ß®���tRNS�@æØf���ÓIDATxÚÝPтà 㬸ÝÿÿîÒ‘Ö{¸·=,‚-„¨}~ q¥ìDe’°ÊÎ×Ì[ OÝ ”7„NÙ ”·s€£Öê×sdŠ ¢á+ß<‰sÈNÛ žDË^6¢­"¬8h ï"LDVh€_å2½ÍþÁXCö³×ËÍó{8c¹…·F:\ªË’nwÜ]á²…ºQ$ÿ/^¶ tƒ®[Ld4“Ú‚Ö¡ÑW÷SGÑLÚã˜ù�}³kÎåá³îÃxèk¼†ùÝ����IEND®B`‚IMAGE 320 ./arch/wall/cwall-red/redcwall_w_1.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE��� & 3@ƒ11Ñ%%ôVVûýÑÑ���é ¢×���tRNS�@æØf���ÊIDATxÚÝÁà C3ÜÖ ûÿÿ]™XP¥Ýv˜È‹jŒü‡Í…£Ý $âÍÀD”ñáf ˆLN¶{®Ò€Ã%›¼é¤Iw™vÎ3À¸¤ÂÆA  âcQ½N8Ÿ@¬ë(ëØ È4pe@ä%}Š%³é %&ˆs-““W¸®õ-2ÁGŠü›ùq\)\sçàºÇ’búPTš×jf /ó6ç¶ Þ)–OžVSž_$)üBñ QŠVïÌUUcýP/°8Vî¢H$����IEND®B`‚IMAGE 329 ./arch/wall/cwall-red/redcwall_w_1.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���& 3@º,,Ñ%%ôVVûýÑÑ ¢ö <���tRNS�@æØf���ÖIDATxÚÝ‘ÁŽÄ C¡qèÿð:ÔC3ÍuÝR©}&ƪüÝ-T³$ ¬×%¯^ó`ÜLKC8˜Ó{W­¸õÖ›LÊgmPÌ)�( ÈCÆ~s-Løç°Q “ĆQ Ø:¤Yep¦3Â}äˆ_-ÞÅŧ…ñ®H°[Pœ`‰h´Õ‘à´@føTxZð¦aá×Ì€Ó"‹(éš\@œ™£&#-O�%÷ÝöW´¨6¾ñÉ-[XÔ"cG½eiÊUè!–ë›Æç„_õqy¸D����IEND®B`‚IMAGE 225 ./arch/wall/cwall-red/redcwindow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��` @@@55Ü""aaaóOO���A×ãŒ���tRNS�@æØf���tIDATxÚÕÓ1A CÑ16›ÿ#AA³85™6zúÅä|åýȘs3ÈŸ…ÉGîB¹Š½ÁPÌT!BÔ¬Þ€Nm`tª�çjó¸ªÀü‰ðܲ¤ hÐ"dpX~5(®B´4d¿¬.ì×}×ðÌ[8îZKŠ����IEND®B`‚IMAGE 239 ./arch/wall/cwall-red/redcwindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�Ü""óOOûƒƒ¿¿¿ýÃÃ���Òx¯É���tRNS�@æØf���…IDATxÚÝ‘Q… W»¸÷¿ñkI!¡È¿ÓB¢2Tñ t�v�v½¹ïð8Œvê+.ÉÞVö\˜çµÁð±hR k‰ò�C°Ë]‘†’7Q€ì†]ÞØ»ÁµµŒ)œ[K¥À)`)…`N!þ‘‚œBÆ÷+ÿb>Í—Ð|‚è *†¿;����IEND®B`‚IMAGE 266 ./arch/wall/cwall-red/redguard_ho_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf��� IDATx^½Î1à …áw•NÌD•8@Œ¸@p.¸³³øúD@K÷þÊøÅü'›MaÂsê÷†Ÿ"í;i£ÔÀF¨Àè΄ÁñȹÇõp/©•=¬µäNAæÈÚÅ‘ËJÔ.ꊼ|u%ïÞ5QWH—iEÇ .+Éëe%…!ˆ`¦A]f�Ô–.Pºl¼%ÕÇ·ÐkÞOŠ7yÉs·Øo.¡����IEND®B`‚IMAGE 316 ./arch/wall/cwall-red/redguard_ho_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ "Ë›���IDAT(ÏÝ‘Á Â0 E»BOœ;‚+&�G]�§ çŠE„×'QbGb¾þ)zñÿ²5•ýµ4áÐñ¾õĈûqúkB÷áãÈÍÉgÄ@Õ”|F@¬ÆŒàÄÍ'AOÒBQœÀDZ âs^?œa3‚H.òórªˆ3¥×ÚfJ«UÌ”^ œè—'¾ƒ“zûÕ‰¨€����IEND®B`‚IMAGE 278 ./arch/wall/cwall-red/redguard_ho_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���¬IDATxÚÝQÑÄ «‚öÿÿxJðÀ]N߯YÒ Ôa‚EÊHª¤ÃJ,°Td^6A^:LA=t(¤Ôc²þÚ@/€ÊùàÂë}‡>Ð,ú»ZÎ%›…¾ª'¾ïsÀ¾@ë:£5¯$l¯æöäçñœð%=v°Þ+³À s±’†‹°á",!Ðp6n.,ˆ…°\ìÏä.,‚G Ðô»³ Îì ­Å†Ê$����IEND®B`‚IMAGE 302 ./arch/wall/cwall-red/redguard_ho_8.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEap�` 55Ü""óOOûƒƒýÃÃ���=°Ò÷���tRNS�@æØf���ÄIDATx^]‘±à D³u†¥3³Q¥î)U É:CüûÅi¬n<=îNf8”�`‰u�úª¯‘Át„ƒn{TI†«Þª$Ã@Cd6u)µ„U-‘ïº#’î2’m R] iÛíÐ-AÔÌ!NåöÃ…/VB\âÏØÆ}]ž³D0ÓÓ{1˜(1Ä Lì3í«†w¼NÿW/oU‚ÌrÜ’®ó*³Ž"/OÀœ-‹d|[ê²ÿßG_—‰Á±>lju˜kEu����IEND®B`‚IMAGE 300 ./arch/floor/redmarble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÚ::ñHHÿXXÿ[[ÿiiÿxx­Î*q���ÕIDATxÚÓÑ®Ä EQ8söÿÿò$WTÔLryÁ–UZj ˆ€ˆ¨ÜÉÿ'°ÿ’ÀЏD[U¨<¶ÐðÚ�lFôŽ9 dFlS9€æR @ük’ê·‰©¼�'µ©VÛCÀn�¡v¬œ›€w]ë0QN@¯[k"Å-èé÷Ðï¨ï{Pæ–D‹ È ø- «=¯˜'-'N±Yκ½>ª”<–�feäõG*À».È T6ËV4E1ëœÛÙ|VƒÁKÔfø:å_ñ ˜����IEND®B`‚IMAGE 186 ./arch/armour/shield/reflector.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V���ÿÿÿ@@@¿¿¿®É[����tRNS�@æØf���VIDATx^ÍÏÁ À DÑ`Ì]†´”߀‡í¿•\lÀ9>Øeæ:,jÂEàò1(Ä3odVÙE~SÍ «A¹B^±§Àõ€Ñö¦û_{x~ƆY3����IEND®B`‚IMAGE 185 ./arch/armour/shield/reflector.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ@@@¿¿¿®É[����tRNS�@æØf���UIDATxÚí‘1À0ËaþÿåVtèR)sn=Ë$pþ�¼–�§%i!Áè#ª*† ^ŸU‚¹ +‡ ôÐ . ~ƒ˜fØotÀ/‚/°Þ¤¿Åꚇ-n3îiú����IEND®B`‚IMAGE 189 ./arch/armour/shield/reflector.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ@@@¿¿¿®É[����tRNS�@æØf���YIDATxÚíAÀ0Úþÿå‘U»5TÚ¹7[1.;Hö:B‰×EúDH€ìü´__A&h”žû Öø ¾8|{¤Èõ«¦PÐ}òølééË/§ê‡bšn����IEND®B`‚IMAGE 206 ./arch/weapon/bow/reflexbow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�� I a% k)���)G~���tRNS�@æØf���gIDATxÚ¥Ó1�!CÑ †ûy™¥ö[HûB†=Œmñä=ñ°½7is-gf¹U*`éäÃgv¯XèÑË~Û±Øù>]ÝäSÀnò)`7û´S€Ýàž¸/ÿ@Q}ŽÓ€?Ïì¹Z-BýA����IEND®B`‚IMAGE 220 ./arch/weapon/bow/reflexbow_bone.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE~~~��� ›››¶¶¶ÃÃÃÈÈÈÿÿÿaZT„���tRNS�@æØf���oIDATxÚ¥Ó±À QÐCþÿÄڥÐö-™kbO©¡åP<©Ô¡Åò+†Â‘ÍØìæÍw_Y ¾×ùª`¸_ä)¾×°Ït„Î÷ +Þ ÐSÑŽA9èJÁþžûãœ> ~�ðç÷þK°Ò¬7����IEND®B`‚IMAGE 277 ./arch/flesh/misc/residue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE÷Öœ¥¥­­­µ­µµµµµµµ½½½½œ¥­{„Œ¥­­{„”„Œ”s{Œ”œ¥µ½½œœ¥çççk{„„Œœks„JRkÆÆÆs„ŒŒŒœ…lz���tRNS�@æØf���xIDATxÚíY 1D“^'{2›Þÿ¤‚"C¼€Ìû}Õ]ææÙC é—s!ÚŠ„‹aŸ}ª‘DU 3åÉ»JzÑZMÃ}çõl úDô¢}‚·¡¹‘òM8Ó±>ÙæOƒ}˜‘õ=€ËÀvÞâ¸þÙb27#/âîL0Ì:����IEND®B`‚IMAGE 3585 ./arch/monster/angel/retributioner.x11 ‰PNG  ��� IHDR���@���`���š„Ú��ßPLTE���ttt   &&$,,,4448>><DDDLLKUTT\\\dddlll|||„„„ŒŒŒ”””œœœ¼¼¼´´´ ' / 1  ::<" ’ŽŒ?¢¢¤¦¦¤¬¬¬""%ÃÃÄÌÌÌÔÔÔK%D"ÛÛÝ:53'>#>+"²®¬rnl2$2.,,%"ÒÎÌØÔ‰àÜ—LDAwM3zzdE,$„ZL<:2‰…,І„‹S.32l^ M-š’œxgTMIra¡17..¥xP¦rLZ4ª¢®Šdb^ @4*k=$½¹?¾“h¿¼blE-ÅÂiÉÄ>CC/ΞlÐËBÐÌmnK? ÖÒ_tD(ÙÕt.-ßÛ‰( [.B>]D2_:!Ž`DbB4Œ<K=1“a<“mOcUG–fDd4š–<dJDœ~peb eb¢yff>($":2¦‚\¦‚tNN©¥7ªf4R-¬¨Jpl0®zTRC<®²ô°‚X°¬p²Ž|²®DSN³®'tZHµ~Oº‚Tº®º²0¼¸R;; vVHvr$U5'ºý/zR,zv<ƾ@ƾ\Ç›oÈ”hÈ zzHÉÅLÊÆlÌʈFBÍ¢t{ulÎÆ@|bTVT<Ò¦xÒÊÒΔ~N,ÓÍT~^T‚~ XZ<IFˆ_GÞÖtÞÚ|‰Z9àÔ‰fPâÚTââæèälìäXðê`õò±öòúöÄ>=¢š,*$F2)«„r‹$ZZ,­~Tff 6, 7$JF^VšjD²¬šn\nj~‚Ä‚V<JF,Öª|ÖÎd¸Œ`T>4b]\†~ÝÓ)JJ,좞|¾ŽdUR vn4Š‚æÞ|æâœÂºDêæ„êêìvrŠŠl¦ž4D=7úö´¨~ln4���tRNS�@æØf�� ÐIDATx^í—c—|IÆ+¯m—í¶ñ·mÛÛ¶mÛ¶½¶m`#«gºU½{ÎìˉîÓ/ª:~ùä7ó†þašŸði æÿN0k1õ§Sç‡éÁpCŒÿ2‰h‰ã¹b#B’ŠRÉðÔ“ ‹¼0[(Qã�5VFCL‰0Y^’¥¾AÓœT3 ÙEŽ/±Q¢‚dK‚, ¥ð$�NR,ä8šhH0“l‘OI)žˆ7?‰0,QâÁ$ª! ZRGL„›u5Ûx1Ž €s<fi~¶´cþ9kCM D2ÉAàpäš›ÿ|ïö O •4×Ë罌VŠ®ÿÇ-Û¶lY¾¾9!޲œ�„â·6í;4<|èµ×ý¦Z.T«Õ�¹ü‘¡¡¡Cütë„AªK�,ì4uÆÃ^~ýu` —ßi«@~[%§ÏyôÁ}ûö ß÷ÒxùP‘,rÂ68°í¸9ËoÞýèUå¶*�ÚàoPºæÂ§^ðàîá «&eù{>pËA¬î¸«¨–€ êïÏ5“¡Ðöç¶œ €æˆdé’‡w]Êã†yùiÇ߯T0ÁžýÚ<whN¨9!l즟<ù«ùxh8Éq½\¾øeìã?ÙšiÚÀÊÀ¸ë…í³yš~aÉp]ÇÍÊØÈ¹é`ÛîÅ�h‚(ªa"|Ý“›Ö²%è†dRµÛõ+ï€U·wdwï~©¹¬ÅF©Å/<É‹,e.4û ÛË{^!çUôô`è’ƒÍ�Ñ"íª4{pû®¯ã±  J0\dµ]Ñæ"wEš¦¾zièÐж‰~BP‹–'h©ëöíZ~²co‡%C·®øõã¤â­·oºw÷ÐÐ6Ä5q`PAœ\ñ÷Ðu»vm¿ùÎï^`šÌVÙÞ¼¹èhú•-׬¿uýú¼-ÑML –*pžßýw7ïßþù¯ÐÄÚWïP<¿\Î_~¶ôò+È–¼î dpo8ª›çó¸j•J¹ ³Omà­BÙG3OB^®Û÷KRæ M„²;–¦8° @¥R P}â‰Çk¹raéQO¸¿\©T5Í·ùÆe—4˜ý‚�È‚o¯8üÃ+·*®ïîX:·ÀçÐU± =$⽪“‡¶­E¢lñL|å9ª€rì ÏÕ@`t5ò ¶èâ³u¯3ª@ßkšûã’Ö§º_lPPÎÈôòá³÷Ï›÷¥”怄ÚÀÅ@]fB$‹%vViÀrõ78Ü"ûOXuÑE«Ïád+&�WA¥9Ž%Š’çbªåÀU‰É‡³èùïܰòƶÒ4¯Z °ïÝ…—e®T¤JšÓ ¬­1„3ÀdÏ~õ²¯­»ç«ÃÑRJÑ‘íd ÉŠ¦p‚*ðºíy¹œ—sC¹ü˜­ã°ÿÖý'¯Ü¼yç3?0/JÏÖTYQuC×d û¯:€4MU©˜ ï=ê·«:'ìÿùc.ÛüÓu›w>~ÿ [ÓEŲtÍ@eB¨à«kéª$\˜mWTU9阖:€(rìÝ7>ðøÎ•«VžwåªyyAµ]ϵR?áTAó y×q,™•tËq]×Z:F¯!yÅõë~üÌÓŸ?áÝž‚q°øÓMVt/ÀOÖ%ͶB3æ:ÖQu@ÊéÎ;øÏw÷êÕG/Ó½RJQK8› h6Lq)y¸¬ù>Ív,]74ÃBÇ× |9(¸ºÜß•ŽPx :\KdY6<¨)EÉö`ý@ÒÇ6 d£M®Ï‚`å+e_ésõ~“`à)HhO²l4œä5¥d–4ËÉå çë–ëy6àmÐç›D·£PGÔ´‡‹NPkç_ðØ^ª$H’”’ŒeX–ãå Þ\•¯Üœ_ñMÓîaGyše ZNù‹5wÞtF¿ª#]æ-×ùŽºOçÆ(0‚JÞ49nôh,Ò•ásXsç›oÞ4¾jü\ÐðþmÇÍCA 9£8  UÅpëW –Ý›$˜Î;îXtøûkîzû½÷ßü3³«·Ýväg¼|l¾^FÉÑ«Ú�ÊQ‚‹qÊ‹Ÿ}ûý?|ïŒì)‹zu`¹Ž;(d„z'«mFÕˆ ã!=}8’`ÄlçáÏÿòÝ>ú׻ׯŽhQl[G.„çLê[þúNÕñpRa‚I'i&–&I2ü·gÿòÁGÜw‘èêÁ´!:7E^¨mmåJ*ôA$‹Å@@"I_\üÂÿ´åZ&›†ðtá)° ÕÈW*…i£€\›×®æ`DŒD‚$"­‹zϽöÛ¯tŒØ¥Î€´ð©|‘–ýj0ª@©¸A!¨xÀÄã1øE" “èÚ:ë„YÓ¿id"2S34!< ‚âÚªæG=È#9Èe¼ ù1bLcŒÙ»gÁ’Ÿ¿l&AFDqC¥é Á²`2ýJŽ7œ¾O�m&å‚A)lŒÁêq1›dÇô%§Ÿõ—tši±EÜ€0€× ¯ZV屇+_„—’4ÍD,ƒòe#dÇžeWŸúº%·6á±Ýê)¶ÇÑ…”_ ‡ÆFÛŸHÄâY1†9öä%g-ûÞ’§ÅÉX� ?e]×Aª†$Y—‰q€$ƒÁb­-Ov½¸dÖô·Þzñ­§:j�ÁAàíà6,øÕ6ñã˜$ã1±µ¥¥EŒìigþÔ¬e ö\¿§ƒŒÔ¸ñÙRvñ4× H€õŸmii&}ü¬Û~vì¬Ûfv‰ƒð�Lb>¨@x†6`âÄù-Ù–ÖÖ8ƒ;Š€ß"oýL�¬a¨ö()Ãúžehcò “¤µõ[[ÁÀñÉ+ Ç•x–`âÙ¥Á, ç»ï"C¿>È„|°/Û*F€—`‚4 ¢D1¸/HɘX< ÆBž°ì ÈÏ‚$.H:’ ý Έm8žÛ2zW MˆY0 Zò#µ`̾¥JªŸId[a_&o9ØÉŒ¥Mx$ ÔP?0�²Èt hJä”ÀDj�Æ”Ïó\/çÙRh| ’iè>œc@´D6ÀÐ’ Zû�ÈIÙ†*ælUM†Œµ¶ÀOVÄ©!üôé’léýðe @˜'(ªéƒÀ�œT?ðé”å*²²—Áã¡fMqþøú‚`{$S$.<ãBÍ,„Z”Ú‘ë¢v ˆ@ ›8}Ú^(] o`,@@§§$Åά𦀢êXj“`Hs`!gØ–V$)<eX\³à‘ë¹j4<ñ}}!¯!]¦$ô%E4w€U\|ÔöOÓ’3Ž3 C†¦Iw ݺ|ùDcâ¼Ü§(4ÀTù²¬»ž&h“œíðM±Ÿ MEÁ0ztµoÚäÒ¤Á¤µ³ôT€’bÃÕ)†ÉÖÆiYG=*Ìss€bxÝÝA·R©Fêú§á›®ÒÞÑ`¸Ýø>îé} ù½+ÝBšÐ±¢ önÓm+ÍŒâ7¨OXj¿È7L³½|Fe§¨±fL+6ÿz©ãhÒ”.‡ÚÛ{§(¤¬Ê2ú´ñY|ŸÅ�Ž? ¹Ðf›i����IEND®B`‚IMAGE 194 ./arch/talisman/ring.110 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ��²""�îîÿ×�ÿ¥�ú€röµ¨¸���tRNS�@æØf���[IDATxÚí’Á À0Žëþ#÷õS`€ÖŒl#X?Þ�ô¼JËÇiôÝWŸjظ j&u„”ÔÆ”È©/OS/F…)C¹e¿ÅBE³;F*LÿðIÜÅ#âcbp����IEND®B`‚IMAGE 234 ./arch/talisman/ring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8`-‘Í…?Ú¥ ï§_£2ÿÿÿÿÿÿ�ÿ×�ŒktÃ���tRNS�@æØf���zIDATxÚÝÁÃ0C xIüÿ?¼ iêªö°[­ïÉà‰Q†xÌGr£$fÐÁ ÿ fñbÕÌVt˜N¿B . Ü Ëâ_A77‰E8­†°úá• }q C3Ã}|©HÞ[ï"6†OÁÅäµáÞ¼E`—ˆäx^ÞÉ8àµk¢����IEND®B`‚IMAGE 234 ./arch/talisman/ring.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�Áq8Í…?Ú¥ ï§_ÿÿÿÿÿ�ÿ×��d�<ÇEX���tRNS�@æØf���zIDATxÚÝÁÃ0Cðóÿ?¼DÓÔUö°[­ïÉà‰Ñ /ð˜d¡,L§Ñÿ fþbÖÌ–t˜N¿D . sÜ Ûâ_A77‰M8­†°úá™ }qC3#b|«X¼·ÞEFL!D…Ñ¢¹£Šûâx^ÞÒ˜ý‚¼ôY����IEND®B`‚IMAGE 234 ./arch/talisman/ring.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8ÿÍ…?��¼Ú¥ ï§_ÿÿÿÿÿ�ÿ×�±ÎÙ4���tRNS�@æØf���zIDATxÚÝÁÃ0CMÀKüÿ?¼ iêªö°[­ïÉà‰Q†xÌGr£$¦ÓèÎ ÿ fþbÕÌVt˜N¿B . sÜ Ëâ_A77‰E8­†°úá• }q C3#b|©HÞ[ï"6FL!ÄäµÑ¢¹c÷äx^Þ�Í����IEND®B`‚IMAGE 234 ./arch/talisman/ring.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8²""Í…?ÿ��Ú¥ ï§_ÿÿÿÿÿ�ÿ×�Oo���tRNS�@æØf���zIDATxÚÝÁÃ0C Ä þÿ^¢iꪄö°[­ïÉà‰Ñ /pŽG²P&fÐÁ‚³xq×̶é0~¸4,p+,‹ÝÜ$á´Ja5ôÃ;Aúâ.l ¤{|©˜¼·ÞE†ÁE…áÞ¼E JÄäx^Þÿ ò ìB¿����IEND®B`‚IMAGE 234 ./arch/talisman/ring.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8�Í�Í…?Ú¥ ï§_ÿÿÿÿÿ�ÿ×��d�èS©���tRNS�@æØf���zIDATxÚÝAà ×x¯ÿÿášHUá$‡Þ2 <#ÀÑ„:j±èýÔtÝyâ±cæ/6^ß³5o˜·& . sÜËàß@7Kp…°úñ.>zšBE½¯€9"ç"Ú"S9¶ŠÊ÷9rÈgøžÇ‘ÞÙ}tçc����IEND®B`‚IMAGE 234 ./arch/talisman/ring.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8ÿÍ…?��¼Ú¥ ï§_ÿÿÿÿÿ�ÿ×�±ÎÙ4���tRNS�@æØf���zIDATxÚÝKà Ÿßý/\‰¨N²è.#XÀŒŒÀá ntÖŠ¢÷C‡…„Y\xìˆØ'OH3Cx:5Aà¶Ãc°\üðáÍÀœ®’X þøDSoDS°Èbúu„kúØÊ@[¸Óu«húæ'êJ3\a;x_¢÷pöQ����IEND®B`‚IMAGE 229 ./arch/talisman/ring.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�aaaààà¡¡¡ÿÿÿ�d�¿¿¿°~Á���tRNS�@æØf���xIDATxÚÝÍA! CQ‡ÄÄ÷?qAU5Ê¢»‰X�ÿ ðÄÑþÈ1É ™™F§7ý½q7rÑuí}ñ†ëv:*Üpåâ_ÀßD·«ªÐW¬€ôÉØˆÈŒÑ…5˜½·ÞElD¢‘Ù²ÙÕ ñÙñ¼yh®µ%/Ö²����IEND®B`‚IMAGE 945 ./arch/talisman/ring_acid.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  1§àÛ��1IDATXÃí–ÏoEÇ?cogš¤Pŵw×ÜëDEBjÓk¤rɤ•ªJ dqà/0‘›ƒ{è¥H#5‚Vpq¤ •KU¸àFHP•½VÅvc’Òm~LlÇëáP;8ýáØ&y§ÑîÌ|¿oÞ{ß÷àÐí?6ÑëÁhJ÷}€¯ñ©ì8¶ôþ5 Ða@™÷ãÇ/´Ýÿ+++ÌëñÀ°åز|`¢)=�›Y,� X+þI@ `š&ËËË{öÏëñ°áØòÉ?"Ð�úçF³¦i’Ï穪 ¥â²+D"™L†3“gÈår�X–Õ$±æØR¾ê~­çZ+xÂ1€ut¶œYYß½¬Ú¯j}UBÆ �b2™×ã‘hJw[®wõ-ñšYÌ$Ü p[n´;÷ÖíwkAk¬õ%,`õe9ákãy04‘žn‚R;p�Ç–Þõ«ßˆRvõyG_{Ùþv†þÞäñeɱeµÓ¤ýzá†(æ'—Ë“É,p¤[éél8fÖý0Ø“X¨=Vݨ·¬½^ðï»9V(š•áï–ÀA˜o?'ÚØiYzêÑfÜ-Ëp»%°+1™Ì÷àý Àää$óz<ü*1jG`{´~õ…ê²g¨kãw²¡P ÚIŒ^¨çûS·ÌfUE™ïÒ7UCš÷½6~çQC?L`³W)®<+2’§Þcf‡¶ûÓý|öäƒ0°îØr³üÛS?Ö¶=‰a,--ŽÛ®+ŠÑÑ“?¼S:~P8Œ1f0è; @Äz“·/ŸàAü›µ§Têe à “ÉpgF[ºí0´}dµ ”Ç?Ñʇ@P£€išœ¾ò \-(|uA±R ®<îfî²Zx ƒlì—/tC~úþ‰ôôZÀDSZðg??‹×R¨*?_ø…ß=¤ð°Hò⥎f ­ÃÄÞº?uË"=«ø·© ¡PWA|,`–/þ@rî’8pI‹¦ô@4¥£)ýäùOßSïÇ.(ê(>B¡P‰DBõro/3a³«U»@íÐþ—ö2#DJ‘Îdƒ����IEND®B`‚IMAGE 1048 ./arch/talisman/ring_acid.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ [À)��˜IDATXÃí–_h[uÇ?÷&i“4Ϳަ]âfkkÝ QÐ!(ó&*Hº7‘Á|’Êú`eþ¥ˆ¶2ç‹惠h@”)ŠÌJéˆ":Ô›mÝðënL»¦MnnoÓ5ÉõÁ›Ñ‡%ÍÍ&úÐ/\ø=ü~ç|Ϲç|ÏMlâ?†ÐìÃhÂݸV@V€‚×ËÿhÂÝlBOµ=ÿ­ˆ€(Ø�±S¸¤ñëõ Y9®/_Ñ„ÛH@ß>ÏÁ“*¸ƒ­ä²*-B+]¡gS38i»òæ¨kì6`VŽëKõl‹ F½èÝïyùdgH@Íjä³yNÿzš™Ô9R§Î�VÒŠÂÞ•áŸþh¼¦ DîÐ6äOúB.ff9¢> ¤Í¯R &öÍC•ík„ÂáH¤š‰Àïµ2!lön`ëw< pH=p°,�ª׋W{›Ü]êØê ‰pÔ5~»Ú}{àÛ¶O&Ù ‡Ô·›FÔz“ãzY&!ì}z¼Ñ»Þ–\´RÝÕ ‰ÿ\;¿‘óõøeð¸}>½P­‡$Ðaµ½Û§“ÝÝ]¼©>{«×5+-+Çõ²`úªG ²î¼ÚŒX¥îû*–ÉÌ‘V”šõ&6hk­IÁËö5Vm:€Ó*RƒÅZ«‹€¿b+ÚÒÕTôêáIýà¹&¢¾h,ʧÎw1g…%W*þ²Pä­÷Ç S‰>øFn:ü™$I�Ë@Þ*ÜÙ]'vf2s(Š‚.ñM”LiÞHº{^ì{ç{€÷´ÑÙZìuÚ¨M¸ç Š¢Î’0}Í`¿ç%Íûu€7òÏô˜O3;ÀØÀ‡é|i‘@§Ÿ©É)p‘6»Hµ< L£=½?ÝyÆÛéÁ×é£ÃßÇæÇ%¸é ðèÄcvOö}Ìüjš²Q¢wK²,sD½Ã”í¼×-ÿLí>ߪ·#V”(qÙ(â :xâ£8—È/$y<¸‡ö I’åùKÀ’93òµ|ØQ4'"·L? 8 l~ÃLJ)¯S‡ÊÛðçý[ȱ¤hLõ0ç®i0±8³kr[áÂ*êÜ2…œN¥FxîzínŒaƒÙSV.T˜ê?6—‘ìu[ÉÌzð᛿»÷GÁø|äKx*¯ÀÐá!¾Ø1°ºZÝ m@KU¬. ›ØÄÿÚj8V ����IEND®B`‚IMAGE 510 ./arch/talisman/ring_combat.117 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  HvB��~IDATXÃí–?nƒ0Æ?Pö¨!K"D„¥ 9s…¨c¥(GÉÞœ!U]rL†¬XyèÝ SGw)¤ùc¢ å'!! ü}þì÷�èèøï8M_L’D13–Ë¥sW¥p† "”÷išÖž35âÚŠ‡a� "03”RHÓJ)�@žçÈóqk“9{¶âD„ù|~nu�‚ ��Äq¬¯%áØÄ~A¸ÆjµÒ¥ !ÄÅípM&³€(ŠfFëgÀ†ÒĵóàšDi³z[Ü{6™j 1ððJ„·0m*§RÞV†MMd¾¯3ß?ôƒFŽÑ^Jcãߨ¯UqÏQ„ïÁ�oÓ©.<﬑ÙLž§¿² c!ù¾¾ÉÀ¹®– ‡º(Š?׈ûÉÄx«z¦õüºXèO"¼0ƒœzª“Š UÆŸv;§µ2|ï÷ëâÛ-ˆèðO��J)ðfƒÑ “­üT¿rRÊšp•õzm<o£_–d5qáŽŽŽ’Ñ9ÆfôuÊ€����IEND®B`‚IMAGE 1195 ./arch/talisman/ring_doom.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 3-ë÷��+IDATXÃí•_ˆ”UÆçû;;Îîü_Qkl› II‰béFò¢ð¢èBÒÖRËjÕZ“B‹(X RHL±6¥¼k%‹@ƒÂŠºYw¿ÌYwÇYwf÷›¿Ù™ï_7³庎ÝìÎ÷qÞó>çyÏû˜Å,þgˆFRé° ¨@3Ð Ì<@ªÈ`g Ó½m©tX®UÝëz |y@ø¥·ó=ß÷ð}I’)•MŽ~}øIIY lÆ0­[&J‡@Ò*Û÷øøs7mØ|Äó|â‰8ù±<�ñDœóý º®'8ðÙGוÉÃܼÞþÒLÛ‹V,; Ì{áùÎ#ÑX €B>OÁgÀàÏ‹0 TM¥Pg$›e}Ç–³õý“@â–H¥ÃÍVÙ^ìy~ë+›¶öE¢QÆÍqö}²{•ëxF¹T+U+®=u˜Õ«Wg%I0Á|’É8¶]›R¢ \ÈæD£–‹µ¥¯¿¶£Ïó]ö|ܳBÓåAàjÆ0 ÓÅ­Y»ÆO$b”ËE¢Ñ{÷>®ªR.;T>×P <×=¸¬½ g×{+4]>›1Ì¡%8ôù!16V@Çqð\_³mon½ƒnŽ@*–Ç‹L}»®Wœî"MG¢X,‘¥cíÆ>Ïõµ’Y4¢@`Ù’ö“‰d’žß}®yùF=C×ÈÒµC»Žm„€îûת1Yq¬F ôööŠÜèe††2H’˜ƒ@ÿçåñÒà´˲Pdß÷Ã’$¤F’xïYrÃÙ›ä;\Û&㺾.+Âj„@uj²îÙÇER}3´€²¼­­o¾íÛÔdYÊ5B`RQwC‡®®m™pLO×­yF®TîÚÒÙu$‰ÕÿøŒŽ\-ß4Œaº?ÿvæ‘üXžá‘aŠE“î·Þ,NT…£zdº¸P‹ÇôǶum¬Õlñév®âüõÖßPVE•²š¦â86Å’É¥á /¿z®)¢g×;íª*_ •²ëzNåªv]¿mǛݧòù1|ƒƒý @–Åï²òoùoÆŠ@ê¾»—öƒMDcQñ$š¦£j S ynÝ�vïù€Ñ+cT'+Ì …ºx‘¯Ž}[Qä_‚!õdÆ0Ë ·ZÝùŒP¨™Ps3šªá:«Œ$`çÎ7�8pp/›;»Ðu•æ–F†Gp\E‘~ †Ô§K>c ¦î|yhùÊ !dMMAöï߇$ îL%Ñ4€Ñ\˲°‡S§O< iY`‚Û5›Œaš?üô]K¹d¡H:±hYVBfÑý XûÌzV®Z‚ ±h+§NŸhú3†yy¦÷CÜŠ½uttø�ÅêyŽ}y†§žngñ½ÒÝÝ-˜Å,fÑ þ8öÁQÀµy����IEND®B`‚IMAGE 1253 ./arch/talisman/ring_doom.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 3:@x0��eIDATXÃí•]ˆTeÇï{>fvç윙q¿Tv–$¡lMHB/óBÐ…ÒÚ>Ö¯"…U" r#QŠ‚È2X6Z+q%7‚ Œ$¤,1*"ÉÆuG]uwfÎì|Ÿ¯.vó¦]Ù.ºhÿpà\œç<¿÷yž÷ÿÀ¼æõKÔÐÞa*€4�Í@ð�9ýX@(�v"n¹ÿ ½ÃT*e×p]o±Sñ–xžßºõéýBÀÇ÷}¤TÈr|öùà#š®$€ ®'âVaÎ�íf°TpÚKEç>¿µûÉm‡=¢±éT˜z¾t „ °pá"Ž{÷¡éÊL�×q«4Óÿå�²™r[±hw‹žêÚvØŒD�Ȥ3d&-†G†¹zõ —GFÐ4•t:Ãå‘Ý´í»JÙ M@ãœ*kªkª”ÝÕ@ãö­;ú¦‰•µ8Úßå¹Þ…|Þ.»¶ï* mذáœÐÒÚ‚XÛ±ùðXßZ]WÒRñDÜÊÔ DbÁŽãuî~®§Ïó]ú?8²>dè¿�ùDÜJÍD7nÚx3‹PÈç0Íx<dh®_ɯ¥дrŃ}�GŽ^2ôÓ‰¸ue–ä�.:9Ô˜Je@(8®ƒçúõÅ¢³dúU jÒðñÃ�Bܘmf€˜:9Ô’ËåŸ`Ëæ®>Çö"“V9R=€*£+;W-ˆñÎ{ouÙo¢FË« Ö#åô¡}¤ëøÑj©ˆ ïO$D©Tt µšÖàà`t|bŒÑÑQ¤uÿ8èl�Bp«_>¾˜£Ó6‹%T©�~XJ)«­€ëûܲPß# ¨B©5»ªŠ»<Ç&nÀóÐUªð\ÿÖÀmÙüÄGŠ"5äVTM6éAµ³­­¯¾>u()ŠLV=„®ëÝœòz°+6=={†ÍX £½Ã V“Rܳcû3o‡Ã¾Í窰+^æ§ŸÏnL§Ò$“7¿ÉK/¼òg6S^fF‘YÂtM—Kë uÝ®]»¾­T><ˆÀRü:c›nÛC]Æu]Ãq²“Yâ—.òìÎÝçCF˜7Þ<°F ÆlÛŽãI|ßR´ïݳïD:Â02Ÿê‡"΂jb2S©m´w˜Áüdeù²¥ËÏ나“Xtº l†injfïž}�¼¼ÿE&R)*åõõ!F¯]ã‹SŸ¿®iꆩ™ˆ[¹š·a"n•ò“öo!£a k®ãP,äð=C‡�pèµWéÝ�]× $“É©ÕTϦ~f¶äU­ãRÑÉÿ~ñLjRªE`4400ð>ª*Y´x€ÀÄø8cÉ먚Â÷çN?PoègômÛ\ÍJÄ- ¾ ¯Yµ.5iimAU§’.[¾½=ϳvýý„ÃzŸö7OoÌ;ºçœ®»»ÛÈ–ÿàä±3lzl5÷Þý0½½½suÌyÍ묿�B€Æ+ä÷å����IEND®B`‚IMAGE 264 ./arch/talisman/ring_drain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE����j�x](Š�†h�“r!q,—e3°7½�c$~�"v/¤�¼’�%�^�¡}�®‡�n�X¬CÊS���tRNS�@æØf���tIDATx^íÊ9Â@DÑÞg·YïUZ#$÷8$TR~²«wv#!â Êl,D£¡³‹´<I”o^R Eæt÷¶Äú8‚La+û^ $;ë¾¥Öêš{>ùWA,ü?fŠ7éñïÂÉ,ê< Ž/h $~&kû����IEND®B`‚IMAGE 256 ./arch/talisman/ring_drain.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE����j�x](Š,—�†h�“r!q�"v3°7½$~e/¤�^�¡}�¼’�®‡�%1g´-���tRNS�@æØf���uIDATx^íÊ91 DQíò6 Üÿ°¸ª$’À:é?Ù>ût#!â êUY¤bÆlv×Tì¤Æ‡È!f©@e–Ûl¶Á Î°Õó¬„Õ#ð>·¶Ö¦æžwþ]Eü#p‡T¼HÏÿ)†?°j\Aìߪò¡­ß ����IEND®B`‚IMAGE 256 ./arch/talisman/ring_drain.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE���!q$~�x](Š,—�†h�“r3°7½�c/¤e�¡}�®‡�¼’�n�X11»e���tRNS�@æØf���xIDATxÚí‘Ù B1 D;Y»ÜÍÿÿYƒ"m|õA¥!Ì)¦ü$[ð)˜d9`%Fgrñ8b}•ߨ\tßUÝ—F7=Æ8†Š_‹2Iõ<k-*†Y�Å][k1„VÂûö!Œ)Ï ©êõY×x²å}?(fîýï²y©����IEND®B`‚IMAGE 249 ./arch/talisman/ring_drain.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE���(Š$~,—�†h�“r!q/¤7½e�j�x]�¡}3°�®‡�"v�^lÂs���tRNS�@æØf���tIDATx^í’9Ã0 µ¼tÚÉÿ_k—iœ)Th¦ @•[Ò“+Î|„X"rRŒ)ð°ÁüsšC×Ru§Å0@ë¾×ªðp JÝÞ…yä¹µÖR@Xðÿ& õ<àëèǵpŸÅ±Í~ù:Ó^\£N½È����IEND®B`‚IMAGE 497 ./arch/talisman/ring_fighting.117 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 5Û“��qIDATXÃí–1nÂ0…_¢îTŒ(2²¥îE½€¹�@%{Å,K½F…½tí”Õ¶|‰ŽîR£±ˆ¡ù¦(JòÞÿÇþŸ‘‘ÿN1ôÅý~Žïyï±ÙlŠ»ˆÂ”RXk¯µÖçR”¹â”R�€µÞ{(¥ µ†R �`Œ1RÊòͧ\qk-–Ëå¹ê�B��RÊÐ׉"§í„;l·ÛM0Æ.þŽ2åc9â� „(¼÷¸ùÈ!šè[eJ+sªÏ¥¼çiwá!Þcì:©Cåœóë¶áPMU…¦ªó`ãEôÅy²‰Ù_ÛûvPr^„ÀÏtŠ÷Å"œJˆs.8ç³֘1†¦ªÂUY „(â4<LÇÌçs(¥ðzË8þ\¯Ã·µxÛíÜl£”J>$§áÇd²ZÁ{BÈá,Ð6…1¨ë:©¸¬ÛN9Îy§â6©âƒdqKB:â9Â###‘_o[¸ËÅtÿ®����IEND®B`‚IMAGE 924 ./arch/talisman/ring_fire.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 0&{Ùã��IDATXÃí–OhÔhÆÉÌØjW£3šéd”žzóXp]<ôzRw ‹ˆŠPð (^¬«Ë"È+x©` Az€=(EÍ"ÒÑ9È®L“Z1þë?;Ó${hF§ m'íêÅ>o>ò>ß÷<ïû~°ŠïÂJ jn#Ð�̺ôé›P5÷`#« Ïï ]šú*TÍ€F qü`áƒ(ÎÿnÛ6ýƒíY`2$âýoª;îÌF�d¹Ç@Q2<|hÎ[ß?ؾ-$±¨,bÉ7�›:s…‘L&ÀØ+ ÷Í?<~4À_CwùÓ¼X–…eYt춨š»~E' jîÆpçÅL&C©T¢§¯u+ðÎÐ¥ríÚ|þhàÓ€,gQ¥zYà­¡K‘ ¨š+M¹B §¯U&€‹é{8"Ø&·„ò(ô¶7ºd/G‚¦dâb5¹ 8†.½[Ê\×{¯ £Îßµ¡Xè¡È‚š÷Éz\]ÅXåRÜq쪊À†È’‰_-Y–éékÍå(%kè’'0³d.qýcÿ±H%j³«\lr˲–U†‰šw?Êñ× ¾€œÑú� ªš»n¹Â’ô£¨TI‡&Z¿œa×ÖÖVíB$s&ú"{ÇîWaSª{JþvzâM:®†¦"K0V¹u^~6Qg®ð>¿KâòÙ‰é°dLÀÐ%O¦çź~y6}çÎÝ@ÕÜdøÌ#ôâÅpðäi1H¥Ò˜æçå-d⺦á¡|W ËE!µµßQ„Û›y}p'1¿LêÖs<‚�Òé¹äáî}àƒ¡KãK•É"µ: ̲\ñ<tZæù¡ý¬oæÇ{øýœù�Ó4±mh5tÉ©·NDoï5!Ÿ?Ì”lIÊØ'�ñ`®Aš·ûaÏÏØ¶M©TdhøÈæðbŠ |!q,ðýA Öøã´ííÀü©…]ûöqż(Ì24|"^oãŠ|'T57–ŠŸ› ¹–šâÁÍìÙŸã|c ÝÝÝ+¾ä®bßþh™?úa¶àj����IEND®B`‚IMAGE 1048 ./arch/talisman/ring_fire.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 08ÖÞm��˜IDATXÃí–]h[eÆïÉi›5-¶=MÎI¢mÝ…ìªcuvÔQm§/ÜpÈ$d›n ^ˆ ÞÐ[…AAÔÉ¢WÒé`lÁ¹C«`ÇØ`-³ùNÓXû‘4ÉÉñb'%Œ~äPwµ>pàpxÏû<ÿçÿñ¾°‹‡b§øü;Ð�¬…‚Jþ ðù36`àÜ€ äͧ,�óµŠÉ&©ë¥çf“ªþ–å2Ù…8cáþ>`X4E-n%FX w'žŸ¹®ë‚v§‹ùt �MSùkz{}a}ýX¸ÿ ð¯) µ#>¦è868sÉåÒH§’ÔÉ:ÙlŒX4‚÷1/“áIì%‰àñx+n,ISˆ~ÿÞr ä]@ÇñÁÙKN—F:`t¼ëpžX¨¶·N:eè†UëB’Ê}ê׉¦¯*ØŒ%|þÌ“À¾ãƒ³ßŒŽwn�³ESÁðkonO7EÝŽÛÝÁX¸ÿ•¹û×JÛ°·Åöy…üE`˜ÙŠà—ŸŠxì’(Uó8̪M€ÙßF•OÑPP‰„‚J¹–ºI?’ñ¿‰Å¢ õ^�š:+8ÚlçCnµ™Ñ±ÎÃÀœ•– ]ùõL.ÉŠ�» D `V³%$‹:’É$±X´ò©lE@µ]b»¼o‚öª:7ÌIY³€\Õ»ÍçÏ4Zœš@Ke&�¹‚ØJ@¶’¿¡Þ«×ïEc ­€èé9PHË-’¶(¢‚¨rì…C?ßõù3Xˆ¾ñÝ3+jšZ�ó¥w:RÉ9b±(eCâÌ+7ÿ1Ûs+òV ý½³+·.^Þ׬K­ßng$q¯ C°š—yýå[¹s¯þÂÈ7û½@É<pŠæÝx{9ž[8W®ü�ô,lVÄ¢;›ù“%Uõ jÒÚæF×v»N÷ãnR§²&iùø{ê $ 4Mcjjª}ΜžK–S`Ö²,B”Ñu™\^&_°ÑÔìáæ[o²";éüb‚–Ë_Ó¦¨ëä‰D²’÷éÍÈk: ¾º0"†‡OeC¦P²¡(NæçØŒ"{ì‚𵟨z€ùt‚x<ÂÈÉ.ó�Òÿ·ÑððYCQ÷ãtíÅ<O±LßÀ&ÇCz–‘/6©ÄwO5„‚JáÝ Uùý’Ägê*×¾½ÈÀ‰“|`ï&ìø’»‹]<|øB(_ä›”ÛÒ����IEND®B`‚IMAGE 181 ./arch/talisman/ring_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���kŽ#ÿ¥�ÿ×�Ù@���tRNS�@æØf���WIDATxÚíŠ1€@ îÎÿÿŒJ¦S ç¡jd¯_RUošjxÔTé.˜½d_³oí@Ìì¤oì]D�ØÁзñŠ€˜ö�ñGÁö˜ð™¬CrÅâCšâî*����IEND®B`‚IMAGE 930 ./arch/talisman/ring_ice.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ &2}›‚¤��"IDATXÃí–ËkYÅU]‰éX1FbŒ}MµQ[P‚3T\;qáŸ0A” "¸Ì€.l®Œ…]ÄÅ,† ŠLm™´y@2".Ê…]¦«“˜M*vÒ¯ra•FÓ‰B¾Õår/çÜïqÎ…µX‹ÿ9¤r/:z¤ X–mç€Õ0W€£G@¨äÑ3Ý“R>ÿÉ™„mÓÖߣóÀ¼j˜¹U!àèØÈc§¢q€&Mã¥eá¯c±Ø'wÚú{¶3…²!¾Øäƒ7i�/-‹ñ䇸{h˜¿bq%˲°,‹{ÇÎŽõŽ©);ŽÙl�ðÁã ›ý×Ïo²€£fÚ?¼½Ý ºYš·6¢yD½’¼úR& Ð|p€–ÞÎZÕ0ç eídû¯îžÆÍ�hšF[ÏÕ0§Ê)ÛÕÐêƒo*àÆÍ[Òóääò­ªr{`y†æJÓ«1ÅN$ü~ˆ—E «¡5‚–ÞÎp1#õYT||Æ—+­|E‘“/O ‡» î®ÐjòW$ Óêr JX]"JádÉ\¯v^Õ”Z€ƒ‡qôká²ä–åîÞ±³žM`6Ú¡@º,W&ƒ ÛÆò4ôtwÊó…B媛ö%=ý¯Ë" æb‰`f‘u)9³ÄØ©èü£þß]GÔý›cÆŸ=ug£}³Bß Ò+’TÄkÄ¥†ŸÆ›êB°YÛŽ«¼ñm;wqç‰@Îg8ºo)Ÿ×EAl`€–ÞNÍsÄ·ÿe r9$RJ%y9€’Z@^Z¤IÓ0Fj¨LÏÑqÄå—sID(ô<aÛ�K++Do.O oí¢5 lQ[̓Øn”ŠÙŠ �~¨fðáìd’‰£w‹‘ï‚TÃL)G§þ’ûãôúLŠl LF­&KÓ};Îýá:þy6ÏHp€L@¡c쮪æBijU˜ÈŒ££ðŠÚ‹Ó?ÏHî(¿Ÿ`oËîŽÍqáðcÚ‡þßäSêý@Î7)G(À:ïÈ’j˜Ùµ?ÿZ|ñÜ[B²Ò/¿����IEND®B`‚IMAGE 1120 ./arch/talisman/ring_ice.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ' L‚ {��àIDATXÃí–]L[eÇo¿(åð5²Pz‹l]ÀŒ‘MãB¼Ãl½Ø…·šé$&fjbb\Ì0óB¯‰Óoˆ&b/ÍŒÆXÉØâ&°d€€K3c7)-¥kÚÓ¾^ð–°GË6oä¹<9ïóÿ?Ïÿù‚mû¿›ØÊ#Ãçu¥€c `�w5 óÈ (Ð2À©>.œ³,°¬�&Óü¥ùµå ^ ”Å XŒŸhÿMdå=ÿ…#Z{»[T&᥇ʀáójÀ.åLL¼tz�À£ëü™!k³S[WÇõÁA¬f !WIµöv¢ŠLLó–7òoÙ¼¨SÑ‹‰—ÛÜûH—VŒ/Œ%¸4<BÿQ. ³ì*ãÖÌÁp„¾£mW€* ()8†Ï[�4 =~â½K5{¼gç9øé»ÕJcCóR¹7¯¶µÉbiòDïÎ)s’Ì�¡²ð 5À3�“/¾s.UVEs×™r͈o&Ûkm¯Èý;+pdLt‡ÖÞîCŠ@$/ TÅ;dWEù¬ÃIs×™ù€|Öý¥˜œ‰’kî‹TËæ]N ÄV¦Ó/dV|´M…#„BSôi�„áó–æK p¶ªi Úí¦¹ëýÝ… eö”°  Ö”.É—€ù¦¬åÃÙ¡ÝÓáSSSÿZs–Ç8æm�RÜk-H‚û ÓU €àñè¹o2_éUöä§c¯Õò)H€§也¿hÉÅ‘Up2£rg˘üøü[aÕžyˆvôÝîêµ€€d!5:=7²/‰0}ç6¶tŠov&ÕnØtyE;z¦YIòäW-ëZ8S»@ÒDPœ^ÆeD±& FÞèH\þî[©6äýÀÖà丌vôDu]g¸ÿ×\ô+€¹Q+‹<6aã'UMWëª*©®©¡¼ÞKÖ¹Úε{öòý˜Ž%›æXS‘Í€”èºÎÕ_.Òôù-À‚Jý‚æ$ jCÍ0€¹,°l³#……¢Ø<¶xŒ]µµø‡Jq¤âœ<"9úö4ºÇ³ ~±Ùà_¨È“ji%¶z„OÍ8KÓ(,¦‰»l‘þËõØJ’˜öb�7º¸Ö×ËìÛ„¦CŸ8ÿ”ªzCɹµ‹Hó’†Ï85?Öð±”§—ÉXk‘šk&Eç7Aú®W2:™àw{?YaáøäùFu I͈>ôI¦öøMÃGQôÎ…æ?ÓÜäëÐIö7×óÃHœög¯ðµ ëæEˆ=®«ØªÆj&WÙ†ÏkSGªHK[X`Û¶mÿ½ý_Mìª(����IEND®B`‚IMAGE 308 ./arch/armour/mail/ring_mail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���ÿÿÿ@@@¿¿¿!¡à ���tRNS�@æØf���ÄIDATxÚ½’AŽƒP C±óÇïáQ(C"DÕM;FÊ‚<뉈ퟣ#/×ô"×ZÒmÙ¬Ô,D—u2“‹ö*Äx"Ê$,ExÁšû˜.Eax"ý`ìÝî×T÷‰@!ݯ ÀgœŠt?bü!­ ÙIyU`G ã‚‘™­hDç¥BZQ‡ԇ܄äTXõvDI Åy¤8ëá pU´ÿ•‚ïx§p_ý ß+|*à…ú‘Ñ@ÿØ#ê}G#Ûó jü ™´M/����IEND®B`‚IMAGE 343 ./arch/armour/mail/ring_mail2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa!!!���@@@¿¿¿  cÚ���tRNS�@æØf���íIDATx^‘ÁjÃ0D}¨? Zê{4‰îÙM÷ª³!Þ‚? ýè:6¶{*tnû˜aF¨ù·Ìõëf:6Òjéô`ýr×LIŸg2T•B‘Àt~žc% ÒdrÒÒAÀNÞ'ƒVu˜€¾iÕÏ”˜J ¦Ø7o7T@"C8¸ÃƬÉ#¥ñbÓ["�ú˜jv«Àæ—µ'-ð–ØÛ²=+¼…|ÖÆœ’ÄË× N:¿e9 '[äú .as ¶ˆJ!¦ã5ì¸sK\AUx$ðæ&Ùêhìéºßmÿqë×ý­E®=4RIrc����IEND®B`‚IMAGE 909 ./arch/talisman/ring_saint.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ "AÄ¢�� IDATXÃí–ÁoGÆãÍ:‰âÆI@*x㉊Z*Ôm%sàÀ€„8E=UPµ (W›ö\›ãVBB¢9#*5ª¥Ö›¨HF>RvŒ¢&Š6×Þ ïR  ÞM‹zñwZí¼ÝùÞ÷½yo >þgˆ¸”=i�&xCØ.ÐΧ•ÿŸ({r’~­ä¾¾Þh6ç¾z‰D ØÊ§Õο&Pöd ÷k%•YêªNøì8Î+ñ/ñõýH$"n> Løµ’ÊÊ,�uõˆF£I¥âàT–©üê€(·ŽrêΕP!¬û"Êžök%7+³ÔÝ&Æ©¹‘|Zm¿»í i€ÜL¦KæÎ7PÂ&€?cY°>ä×J«�ÆÉ9 4{×ìì¬ÎMg0‡[È©lh‡Î§ÏbX`üPüdÑÁ897<‰RÙ¶m‹‡štZÉžöö"à'Ì]0žd°µhmÛÿh¢Ô‹z± \Ÿ?Ó9òî$Ɖ¯ß ŽU,h-ö²4²'äpº?i›q ض-º*0ã(`Š¿ÐÀÖÛhʼnˆk:Jñí¡â¸ ¥ _µÔˆÔí«õ&˜:ýñéð¶öJ¢×@ º…æú½_7Û«~Êž<”ñ••±Â×OãZÐ>_üe²Ùè‘ø ÿÞwˆ™e¼Åµ yMÒ?‹E kýÕè–~¾¥—––ô~žÿî®èŒ·¸fYV8 4°±_ ‰rŽÞ,|êY“¤œÄ²Ž‚? ~Šééc uØÕ-ž­~¢ëšeY8'lÝ^>­6Ú É§Õæ¶7D§•$a¶`` ’kdgÞÁ8ò#m½Á„y–õßaYÖ‹Íëî:ù´ª¿iópTöDµZ½–›:^4; ˜ãð1D׉ã}z”ÚÊËÎoTïÞçËËó‘îFÔóT­V¯MçŽÑ 1Hîƒî$ì/У<öøéfеÕÅÂ7‚·…²'‡>ÿ⢾ôÕ½üô”nì|¯W¶?Ò…BA÷¯Ø}ôq<ÿ*EÉñpj����IEND®B`‚IMAGE 955 ./arch/talisman/ring_saint.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ /?uÞ¥��;IDATXÃí–ÝkUÆggwÃ$&;»;ÛNZ%”"´l¡Œÿ÷" V[ðB/C.Jo/,… S¼•z#­Û¢­i»iB5´h“ifö£¬Él“4›ììñ"»uc2“*ÞìgΜsÞçý8Ï;ÐAÿ3DØ 9ÏP€n  ˆ� oŽ|`xdª¶ÿ¯hN÷§GÚ¸¦X*’yíü±æk½I¤hªöÂ3ÈyF7-Ãi=MÁ-Ðçóù§ö´ñYSµË› €'ÆÓz€‚S¢X(sóFž[7¦¿>ô£8ЏދóÉV„ÀÈyFÏŽ"óŒ$0Ü2^˜« 0Uûk³Ù¬B2¼?ž‘>Dt­=€éu!äý ?=: Œœ>L™ª½´Õ¾l6+‡†užë¯²g¯ÖNâ–©Ú«aR ~ûÉ‘ Deäôq ´q�˲ÄÌ}—¯wÛÜnG GDYX4Uû~Ð[cY–˜ùÝÅyº"¡|y樭 ¦Q^üÔVÂj†”Ëp,0œg(±®:¬²,‡%`Y–(J¸Žž�ÛàÁê!Å‘€ßdó +Û)!@Ïè­©Z¨Í�8—ß½B´Ú¡>r¨u oVG[Úø‹‰dîû“…¦.ê9ÏØ­UÏÞL%S­éùÍšÓVÖ^ÿpü@©´^D"Vÿ}¶Ðód²zîA›xÕJ¨h²µ¥l+ƒ.‡K?^—®|%sžßÄëäÝÙË2Y=ç$SZ{ƒ*ÿ“€éé‹¿â¦3ƒdöô£iÐèÿytÝ ž¸MCÖ¨U†b=Â)m/“ù»-ï€SµWvÔ MÕ.xåu…H¬Ñ%ˆÍ£eâD¯²&çéUãõ!‘HH$˜œÇ[�¸·•ñP?$ïœx[<e÷P// ¢¿ôѼ&}Êqü«8¿öó°\aö·*¯¾uQ5U»ú¬½à >?ÿ…øe|•{“‚¢ ŠØE„]Tü¯YôïPñ¿áÊw¹s-ÎG'?AŒï9Ïè~ïÔ›òýÞ×—^–ÎÊùóò!966&é ƒv€?ŠëR›œóq+����IEND®B`‚IMAGE 532 ./arch/talisman/ring_strife.117 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ “$èa��”IDATXÃí–?jÃ0ÅŸMç„ÚYŒ™J‡xËæÜ¡{Èz€ŒY25g†ÒkØÎµCðj‘±K§ŒêR™:ää8d¨`0ÂÖ{zÒ÷! ¥å¿cÔý1Žcq8Æ9Çt:5nj@ û¾Æä{š¦•ïT˜ºâ¾ï�càœ#I¤iŠ$I��yž#ÏsDQ$Tæ|ÐgŒa2™œZ��×u�Q‰KI:±Ÿ®0›Í„4A9»¦Êd:â�@)58çhü è M\:¦J”:«×że“ù›Â] Ü= !ä:ªMåa^W†uMdŽ#2Ç)ûA-‡‡h†Ê&¿±_ª 冔boYxDaÛ'|(l[|g„ sq•S]-îõD1‹¢(Êçkµ}αñ¼f«€Rjì- ŸŒá…s0£šªçyðŽˆ>®×ÆÓn×̼w»q8[.Ë;�lƒ�Ïó9úGL6r!‘­ùµÓÁ6Êqy, åykõxY’®ëVÄu„[ZZ$?ò(‡H²ñ����IEND®B`‚IMAGE 536 ./arch/talisman/ring_war.117 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ *RL��˜IDATXÃíV=kÂ@~’vŒ”p6¥³Žâ_:‹þ ×lý ÒÅßP’,®2tÉÅ[Á¡dèT®C1ÖœFšBBxïžçž{ß÷(Qâ¿C9v çybóçý~_9«€”Ø0 0Æ~A‰Ë+D•%7 �Àç¾ï#ø¾�ˆ¢QÁu]‘gÎkYrÆ:Î®Õ � „��\ׇœPdlßCœÁ`0©JéÞíPóL&C�Žã(œsž2HEÊ5•2«—…zÎ&³îÂE\Ü”ÒÓäm*Û`šæiex¬ˆP×E¨ë«~p”€Í$ššfn_ÛUPnîŸÕ*žZ-kÚN!/í¶ˆ5M|„!”"Ôuq’€]]Í«ÕDÇž:ç˜6›Åǯݮxc œƒ)?ÃæI‚›á0w5™`Nf3Ü.—Jaeø\©dÈ¿z=�À¶Wï…mcž$¨¯Åz!Y?åîÇã­1ï£,ËR ß‚m%IY]D�H—(Q"Å79‘ÌH7Tªº����IEND®B`‚IMAGE 868 ./arch/talisman/ring_woe.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 21αxù��äIDATXÃí–OHQÇ?ÏÕèÿT”ÖLó<,FET—¤ðT¸ç¨k1ÏAê Géx.Ò$„ƒŠA·ǨC]Š`½i'6[uR×LÝé²#ë¶íήT—ýÞ¼™÷¾ßß÷÷~ß7P‹ZüçÕ.”q-4�uyÓY`I9þÊ_! ãÚf` P§÷®Wø>é%¹Ý×Ýœ#²Ì*Çÿ±n¹l5`ëÞ»Ÿ�LÓÄu]±=a¯Y“#²¤K‘¨‹˜ü®Ü4M�\×ÅûâaÛ6¯&°m!J)”R\½Òý ˆ{d\ÛXµ2®i€‚»Ÿ]:¯uìüÂÌ,Ë –——hljDJ3_‰`ªØÙ¤7BÙ;»: åø^9Ò—._ ÷ì& @J’˜WŽŸ®´;ÚZ!¸¦¢ÔkðÁ ø:ù­0¿ÍÕœüE?ËèB©T*ÿ<„ŠF# ãZ¬­5¡tC§³«£˜­Ô+êc ù*ˆœoDV ÿã¬rüL¥„ç%QJý¯ºaÅ¥@²ùÝR¬~‘ ,�)e±=ËX W¯t«bõ‹ÐÂ;Ož:™oÏK‘ šÆõ®Þ… ØöxhlÒÐðy¦˜•¬óËWc¦—ôPJñsq‘ÑÑ‘ J)d\Ûöxhl:ç͹„æŠvJ™½üÕâY2™yúnÝ_Þ´i ‰DB“}äé‹åL&ƒaè ÿ¶O5wÁ®¶ÖDZ7t¤”„’6lØ@KËÚÛÏðìÙsææf ²YŒýö¸f?£ÿûzZÍÅbˆ®{›šho?ŒÛ\»q]ß· žô’ä.¡ù’fU]9þÊCgHX–Ô×7 „@ß§sáâù5ß}xÿ{ÜÆó<\×åÑ“{Û•ãÏ®ÇÖD¿H¥¾’þ6ÍÔôÌêüñ&§Ïæà¡C¼~ó†ÉÉ47oÞQÀ«þ'´,+�ø¾ø‘wïÞrôè1Ž´œ¥§§GP‹ZÔ¢ÂøV¬0éFÔŽ_����IEND®B`‚IMAGE 1042 ./arch/talisman/ring_woe.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ 3 ÿ¨ñ&��’IDATXÃí–ßK[gÇ?‰‰ç¸4&Ô““fv‘µÐ* Ch c½Ù.vµþ£#ƒ Ê–bv37Û‹´«Ó$õƋ֕½ÞÕ(¥Ý…Ƙ2WMw´žùcj4y£FÓ“wቤCmŽì&_xáœÃû>Ï÷}~|Ÿ5Ôð?Ãa÷@8â«Ü€P`Nk `Ȇ®‰Ò¿&`9m�š€£€7ë~X*¾h{9½Äð½ÛïYž9`A×DþП ÊÎ;?ùò¾iš¨A•¥Å%�Ô Êøøo–EG<^¾¹“<kEf˜Ó5±µ—}gh@¹t±ë¾Pvn»´D:³ÂïOxúÇSžLLP/Id3‚ù…>ŠvŽXöÖyûG|^ hü,vy¤Iiby%Mràú[À4®¼Y4Ý. Ô J Єa</G¢�LëšÈÚ%ðºÒÕ;R2KôÜè> ̺&V÷;wრۊr”­­<¡P¨LbM×ĸÝø;ÚÏ�ôÜè> üªkâσœÜýî®#^Å媯ü쵊¹:•_Fn¿BÚÄêj¦²�d;;ÚϹÖÛuÈÚÕ WûŸY–ì¨ÜlÔËûahhÈ1??ÇôôÀKÀª&àü/¤¶T*bš%,ÅtÙqbVvË^T…ˆy0M‚Áà.; å‡?Œ?Þ+|UÈwKKk Ã÷nŸ·¤YØ!°[ñ†a»øÅf8âk²¤¹x¯'’ŠZ~ŸÓ5±Y5]¥ŸGž^ük]ŸAˆ,=‰4 D"ñÉሯµçj2S(ì=o¥saÏNyÉ-V�Œ¢A6—áÙÌñK—g</_}ýù kÚÖrÊ­þo'Óéeœ.'£c¿”íÌk‡™2>u¢cÒïoD (ÕcH’Œ[’h~µ™xg €þþ$b-Gak¿ßOjb’;ß¾<FuM¬Ûn5Kù4YnÀ]/áªsQ,ÙX_£ÎñÎOmzûú¸5x•YÚq>™b}c`˜ÚÏy5)`çæ'ÿ™Žw²ù|—;ÏçãæÍ¾öÍÍÎ’J¥Èd2‘ãÁ£Þ°ò~ ‚ºª)g]~l|óô»¹F¯Yòìïd[ˆ+‰¯°º"ê_áÁ£aÕš˜/UOÇaÔ-nä )ÆÆFikk§õøÛ$ 5ÔPƒMü +Ljï9£h¡����IEND®B`‚IMAGE 257 ./arch/river/river_14.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���IDATxÚ…’ „@ ížäÿ_–„ÎÉJŠJ‰>÷ØŽÙíÀ™ÝÀ8d<'�¸Õ ©{Í�(½"§F¢Ej ¥±[Vh€·EQñÏ�„YÚ­3TÒ—ˆ¢ qâDä髲‚ `Tp~½$8�Y’ý‹õ ê€s,ÖQ‘[ï•�ŸÍ‹@’¹3/QB¿ÊG„,����IEND®B`‚IMAGE 248 ./arch/river/river_15.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���”IDATxÚ“[ Ã0³¯û_¹I¡Va Õ_âɰ¶âëI×(¤ûú¥»¡ž§Ìä˜áûú¥È%¡FÀèB¢Ü€9v08âh8Ÿ¤¸ý>Ó€£ëa†V¾ Õ5`¢@�ð>Þ€¸jÜ�)rh �‹²ÖGʯ³øCðîÈà—+Ø&†°«åa|�(jÈÎþ|����IEND®B`‚IMAGE 251 ./arch/river/river_16.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���—IDATxÚ“Qà CI0÷¿òÔMâ9óOTåQ»n;ÞÒ줱%#ò�,ÀsÕHy ™Œ`Ÿù uÀúÁä‘¿€KOoI@1 K �JŒ³Kzš´¸�÷æ]W€}‡³  —Z€/F²šÝ –àöÏàÍ(À~Â<k,@=îó(ÊQßϯ 0ª^?S³ô“±����IEND®B`‚IMAGE 241 ./arch/river/river_25.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���IDATxÚ•‘Û À0CgVÿÿ—m!,©“ùP 9/—ƸßဥÜXÏ¡˜OÆ‚$Ÿ©Ø_—± vH}/=²fŸ: B(/PêßUH(ðöGY!eOƒ2½k€A]�”€ŠS' K æøsJÐÀ�w `; Þ€cºe§¤ž°ôÆd;ƒ­¡>å–ØdçÏ Ù����IEND®B`‚IMAGE 257 ./arch/river/river_26.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���šIDATxÚ•1Ã0 -¦ÖÿŸÜÁØœÔÕ’á.$áÅÛ×óº�ó<Žñµ=Õ*ŠKao SÀþÿ…ÝI†€³µè'Ï8W ^Ø`2·àve‡]ÿYxÌ£»÷Z×xRZèÃRqç¯[PËÿ-˜—0Ñ×n‚ä¤C™÷ÍåÄ‘2À„â‰�lÉAh Pü § 6›ñÁÍ����IEND®B`‚IMAGE 180 ./arch/river/river_26.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���PIDATxÚíÎ1�!DÑÆû_ÙlÆÆl±[ú*ÄÃÖ8ĦÜ5,6؈Hƒaù²ð1`¸ž9S@T´œ/:®Á Z$q]¿™PÊé0Ѿ����IEND®B`‚IMAGE 166 ./arch/river/river_26.311 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���BIDATxœc`”tg4>‹1ºct>†€!š‘Æª¨F: £h�aŒªU€È5B�j0E�`¨Œ&��h �…$F����IEND®B`‚IMAGE 274 ./arch/river/river_27.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���«IDATxÚÅ’Û„@C·eáÿ?Y”I¸¬£[&±g,>S*EùqT“yŠ€yéž?%Þpªî¸F8MBžy9š~*€½@N€Q(y6Àp’‹^@{n{Àk“O�Þ�’O�îܸ¢ñ+“ÚŠ¤,`ÞÃyùèY_@íXõ´ï�ê®Õ߀£ YŽð+€œ²ú ¦-›5Ïá÷€º:Ûª’f—;‘û']þêÚµ����IEND®B`‚IMAGE 262 ./arch/river/river_36.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���¢IDATxÚ­“Q Ã0 C#K¾ÿ•ÇÁÄñ…¾~”V/¶CÚõ>2~ѯP4òÕ‹³sö'SޤAÈ §4"|·PÙYß‚´¼Øë#I¸ôi ÓE*Ø=A‚Ù×'Jˆ`vGÜ«„™ ‚;£¶l~½O)[ $ÒûNìÒ%¸Öó!}DR ˆ#Õòï£ÕàúØ>­F_ 'WþÈÀ C¹(����IEND®B`‚IMAGE 231 ./arch/river/river_37.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���ƒIDATxÚÍ’ € Dw§ûÿ_α¸ aõDœÜéæÐ~Io¹ï‡”4;ËEÊ‚Mñ/ ¼‘¤Džœ,û TJ8Ö"!yE².’ôºlxØI=±2„ŠÊ >ÃÕ@B­p" e+,ãò’ßùQ=8â0ô³ªïqΦaß°Z¾ä°����IEND®B`‚IMAGE 265 ./arch/river/river_38.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���¢IDATx^ÍÁ à Fa_X H¹O^É•h»ÿ 2ˆ$½õI\>éÇBï)=VZeBþœnç l¾ª]�Þ>²‚àu²*ä;ÇTýÅ(kÒq^ðr„“ƒç›#ð ñIA ¤ÈüZ `‘J?Ørðô 0¿7¡m²:FýÛ¤ ‚ÍÍ iÕJoA\u0»€„ÒW&£ð –Rä¾ïiNu Å;����IEND®B`‚IMAGE 253 ./arch/river/river_47.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���–IDATxÚÕÒÁÂ0 ÐÚÅýÿOÁ¬&³Š¸âjÚåeÉ¢Ž¿ˆ®ÁüDrô(×¼Nœ g‰;öoB²™ 0w¬ "0Á1 �æ¨QÆ:‡ï#âz¤ ä*¼À± SÀà˜Ÿê‚€,¿¶ÈS‹eC¿b¬¾1 ² †¦ô É7»9 ÄÂ#àG3LÐû€ñ‘'Ñü°ˆFÜ����IEND®B`‚IMAGE 251 ./arch/river/river_48.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ���1������ÿø—&s���tRNS�@æØf���”IDATxÚ…ÐAÄ0@ kþÿäâ*ñ!=dbÉ•§ÒÒï@2½Å4+  ð,BŒÚ˜+À�ËXuû"ÈÓ×T×C<Ž�R°!Ž!`K�\�v€hX#èZ爊᪔Gž¿Œ SÀ‡V¡7PöT ¿þؼð†Eà!É ²¡K9Áœy!þ6 <qr����IEND®B`‚IMAGE 169 ./arch/river/river_48.211 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ�����6~Ék���tRNS�@æØf���HIDATx^íÌ1€PÄÐ-¾¾ˆ„=ÿšè¸Ùc¤|EôTp Ê2\ ØpCOj‚ ;  ŠÖÙ½ ôÝß Ð öŒµ�k����IEND®B`‚IMAGE 169 ./arch/river/river_48.311 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���EIDATx^í̱ �!Áïá:xD,œ„û¯‰”sFŽÃ‘µßíÞ”Ë9’Ó•8 V!ˆ­ÓJ„ü(kã¸lªRDS«1Æ����IEND®B`‚IMAGE 257 ./arch/river/river_58.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ŠŠÿ�������ÿ;D"T���tRNS�@æØf���IDATxÚ’1Ä0#ÿÿË7‰Ûñ˜r®{E]+v½�Ù€ûÚƒ  ”èÚé4Î&Ä£F@!Zá® ˜»¢�±C§ót^àôHT`“ XïÉ 2D>¨j$ÁqÎA/jÞS‚nú Ô®ËT˜A…JÀ«Ce(Àn®‘_.J_ÀS¦Š­²°æ¯E~@$©ÒWâƒ����IEND®B`‚IMAGE 699 ./arch/construct/town/rl_house1.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���0PLTEY���.9B[[[k]„„{ˆ’K&–¤¤�¥ªªª®!!ßß�÷÷÷:Õׯ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ * ê£Û��÷IDATHÇ••MJÄ0€§=Uƒµ¯ÒnŠg+êrV‚7p)½»¹†[oá¸ÍA\ Á•Pó~Ò&Ó6ƒoS’//_^Óv6ûć 8š¦< ÌÇM3=Þ`”%œNä/ég˜q¸á˜ôŒ9­00† wÍÝìpÈ×;òuØ!^®Ã;¨• ;DKv@ è«„â+å9�Ç…8-Å7¬(¡�Ïkºþõëàg¨<îkˆß™®†¸80P P$È2×Át,DJ�ȶ.sbð˜w@>îÐW[ Ī–£up�5Z‡¹ ìÐe€ ‡JòËp¨~¡ 8ÀÒœ³‘© GÏxùègHœ3ùD?~†´_¢0+è$E`®l|È9M8yM[m]0´üoð8Ô­þ²€†šš¬ÊçÅt½em;G—óûšZí�f>�è¯ûšš]ifYaó�Ô<@²€ÛÃ–ÊÆöŸÀø;¯^Z~®…­—l-opŠÂÖ‹½Z¥ Ø@€fñ úÓ�Þw©u¥ ‚ `Z[…N¡‹ŒÓJHaãŽxVa̽܇­—imšÊ3ŒšÓJ}GâìÎܲÃ;7^ÿ7‹üf)\����IEND®B`‚IMAGE 1435 ./arch/construct/town/rl_house2.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé��õPLTEBBB���ÆÆÆÿÿÿ�Ö��Þ��ç�­­­µµµ�Æ��Î�B!��!�1119�Œ��9�JJJRRRRcccs¥¥¥�ï��ÿ�½½½��ÎÎÎ!1��­!!sss„!9��B�RZZZRZZZZc)k1�„���{!!!„„„”””œœœ¥R))�)))­Z1�”�µ!!µZ1�1�999�÷÷÷ÿÿ�J����s�kkkRB9�)�ZZcZccc���kZJZkB1)���J�sJ9sks�R�1�{{{11��k�199œJ!�!¥�{��B99B9B��BBJ1RƽÆ�)�1ÖÖÖÞÞÞRJJ�µ��1��)9�÷�ckk)!!skZkkcckckkk)kkcBJBkksBJJs1))1Z1!�œ�„9„{sR!Œ{ŒŒ„„ŒŒŒ”Œ”1!)””œ!œ”œRR����Z!Z!)­Z)Z)Z)1Z1ZBZµ­µ1c1½­½�!BZZ�ZZR9)9)B!J!ççç÷÷�BB1BcRcJ9J)19{s{J91J«rþ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  '¼­ÚÛ��IDATXÃÍ—Ïj1Æ=«?­†4·Àní-!>Ö¥=l1¸ í¡‡^šK RÚK¥ï‘C g­¤‘ÖÚ•ÖÖ†:¶#ÌO3Ÿ>­´³E]×ßF}f£n_ÁY=ëE ,/�Vöó>áìz›™oöÏê*,`l‡ãÓו¯@¯Úh-`0Wzn÷s ŸÞ �K?·«€P-`µp;,hÎßUÐú¢ êhP¡²P¤5h}~`\ƒ �Ÿ?Y€q ntþ r£Œ`ãMQØ Æ4 Jó•H€éÈ’KÉ…´ùOÑ�–¥âè�Ó5@Y DÅ'j …ÎG×A–ýx\绦kÀ6f •¼|Š4ÀÀi 'h�îQÊÌo—àÝ1äû�Öëõ‘ ç¹ØÅ%gk`ò-�P¡¨W`�Å"W h PFrÑiþ^ °K ½èW1Oƒ�Àm:W;@†ÏL¾ñ Ö€|ô<×p‡x§S€*Kô;)׸ ತÞfû@êu—܆ $#åû@ïÿÊômMX ¥h+\BîóÀîÓ»-dª¤É+%WÂ)QÊi>°æ)¹ê¤ì240�¥(?n!˜¹Ñ@÷O‰V/bÿ\¸  É :�7:¸e<…]sèn>pqk ¤T´‡Ìä ­¼èN&ˆ¯M‘N�]¾•CW°é޶@|éK¬‚ïߪ©·ómXÁ æI€ïß´£5ðùÉ{ç|h  O—?€ÔBUb¯€k§£m~�ø%ªJ˜Ÿ¤²|�çä7F€=aóÏÏm"[Ÿ¿ŒÍ«ótã‰þÏM°ï’ÏØ–*9a4~îè�p w[êÆàžMŸÿo�÷ákňÛ-‹=0� þ@úe‰±Ø&¾ù8€¦i€Åè\>B*Ý� <�Úaø!5ó‚%<`â>*�R�sjǰ- Håÿi¾%—0ìU€$LZï×®ƒ(ì«aïY6ûâ/,°ÐN47D����IEND®B`‚IMAGE 1103 ./arch/construct/town/rl_house3.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���WPLTE�1�c1���{{{½½½œR)ÿÿÿœœœ��{)ŒRcBsJ�Š��¥��ÿ�΄9�Í�Þ¥ÿ×�ÿ½Î„c)J{)µ!!�c�Ök²""ÿÖ�hàÿÿ�XÕ­š���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ %3 ¥Õ��dIDATXíWa“«0¬@“™S;½~»¹ÿÿ?,$&i­öÍÅÓj+›e!„»\þrЇã…ý4Ñùc€ úš¿ˆ¦ê�f œŽÐس1˜ÏRPg's¸�ü>Ÿ#b08ï|Àt�æÁtnþ'$ò)ƒ^bq'ç¨=Ðÿj@’À ›ãÍ1FAð5�×ðÔü=S NÏ?h �c‰}¨B(‰Ë9š5°$ƒÓþ˜�8ëÿ¨yù  €€œ+!¯4 â$�y3: , %;í*Éïë^‰ö40x ¤¡pÌV.Ü<ò…§<0àÁ\>ìâ'¾´T¡] t-ŸãRo|$HÀûØZ6žÏÛß2²e/<„îsñ´«)‘%Ê®L±"˜°c]/ík`1D2Ò÷wäÍ:¨HÁ‘ª;d jÿA™ DB¿ÓÀ�ž«ýì±a�È~H0 �@¶ Àá@Ã`Wö%#^œ*<'¤Òž†ÌÉv¹ !%Q8¡¨3¬QÀÓ\°^߬r›\�%$á‰<X×u¹-÷Uÿ˜³úãc �y· ÀÝ/ |_îöÅEóPƒõ¡Ö£pÕUèøQòDÚò@Û©ë‹(Øl>¸óæ’=Ó‰t¯Ž0ÕŠd�ðþGgý-.¬ða)ÑpÒ4_ý@‰ëEÔ÷Aànö™Ðú»l�uö8ˆ:o«)¦‡‰๠€Aoo­wÜæT¿-ˆ™•@cEì¶ËE"üVþŠê ¬p¡&f»W´,wË›rõrV‚‚HÔ}F‰ñæNOBK†E§÷<(‰„ªÌQñR|Ž ðú‚|ælîÂÍ5ðÅ`õ‚£òÙfui ÊÁ0�¯X\ ÔçpgEµìYj–OP�P-½Ô´¹‡ƒKÅãò,[Ÿû‚Ayéy¤ºo}®÷)‹Ÿôœs¬Á­Eð=3.‹¯VGM¥Žo�Ü5 õÒ˜ÄH\z�^¢aæqsÀŠwÙ¶ó´ LKÚz…Tû‡€Âyo Š}6/§¦{òªqÀ�ج{B. äŒäËáu«…pGàR7„Ò#¹}¦h1¸þoõ €A?6€ýAöÿ?  4Ì*~eÓ����IEND®B`‚IMAGE 1121 ./arch/construct/town/rl_house_west.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���TPLTE�1���b2¤Z]K"Q)·¢aνŒdBtJ_][µ²®ÿÖ��¥��Š�ÿÿ�Í��ÿ�›™ÿ×�µ ߥ²""Õk…c*hàb�[ŒCý*ð@���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ �9ß*º��yIDATXíWr«0 ›±›l´0ÚÞín÷þÿ?Ÿe'!ÀhC·l ÐbE’ÞÞþ²Ñá¶ ïýÑ*¾;E¨ãEãÐÚ4~ Àt2„Fò]·d@’ø-K��Níù'ÝV àÌ€^b`�)¾aüÄâ èE$…A÷Š* þŠ08_y )ÏB£ƒY�NS=€�6ñÝÊ% s#*ƒV+t^.J£q9è6(Àç§´Ž¿ò@´˜ºöñ— Ô3±iùÑMcd€Ì-ðº mj¹x€:@Œø ÁÏí:}¹bP{ ðìÕ i´ÜÉ|©J÷<ðß½ž%ÐùǾT¼ïÎEC‰œ:? Ù‹¨äy×Ìå Íó‰õ:W…y€¹æ¬Üh/¢Ý´ï`Qö9­Í`ÈÏ’/l7í{� Bµ¨­*õ)£²'ˆ¼ïA`gðañf�“ãF?òÀî±øc|r�8Á.-;$^ïíñ…A„-‘Ÿy�Ü@x…A<ý¨œ—¡`^%ƒj0lnðÀ ïßZ½ÓÉy4�°ßØ�žÖÁ0 ãuœýïû[ß÷~y±h:ƒý¹&ï�pî§q£1X{@[†»FßAázîoge íKA<?±Ôâå‡,`´û`txHP(\c&Wu€p™wiœ©ÿÒQ¿³„Á4ŒéÑÅÙÿ”nÚš¨÷ ñ·„†ïÑÄ=(á±0ñ:À1ýƒ‰&ÁA‚/ ÕèaáÁ¤ƒcLÕ$Þz%d ‰ìí•‹K¢éVþšw`¸§µ5aõ¨X�ŒêCªMÃ9'…’�`®Æt˜bN# $tx¯/$[#íf…­‹´O[ÙfA£€û\Â5y€Ùj+Žð»¯|1ïpBx2™(ˆ8*Ç8o‘x•žmC}üÂCÊ&ÏÓø@ÊŠ—Ž:ê¼MmØl�¤ÚçÚì Ê0›½BL5ªv°½¦×?XýíEòíÕ3Óº…ê·¥²ˆþ8¤ô\�€,6 è‚§µ~[Ò¶.íŒ@gµ3o¸¾¬ßv(uÁçiU>åê®$”ÓÈk�ïÛŽ`°±Ú=Y·ˆÇ^Ñ¸Ù»Š€)s³ \Õ@¨ÅI&`�eß4÷ðŠ¿s7¼‹ÿÝÿ"&1GkÌÙ<����IEND®B`‚IMAGE 204 ./arch/food/roast_bird.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷c��œc1���ΜcÞ¥!X%—���tRNS�@æØf���hIDATxÚíÎ;€0 Ðú“û_ ¤NõÆ„p‡~J²> z~5°‹>QȈ%Ú&Tv¤Ir‚=ŽÈ;ƒ1}„ÒlqcÐì;ÀøI¹’¼ XJàálÑNÕT¡tµþ¼ž ò Ì�d����IEND®B`‚IMAGE 356 ./arch/armour/mail/robe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÞÎ÷s��­��Þ��ÿ��ÿccÿœœœc�Îc)Μ�Μ1ÿÎ�ÿÎ1ñÞnþ���tRNS�@æØf���èIDATxÚµ‘Ñ‚0½ë^)‚ÿÿ»î&öb˜i›?aÅ{DÄk ¤ê½GlÃ~üÑH=n‘@‰ ÎzlD+åÜïâ8pwãŠS`t ¨ÈëåeƒgÈ�©¾^i,�òb�*ÊÀÍ•í³µô';ï§â4æ>6ßkžýú$º› Î X4O;C¬«éŸCAïíRº<hK¨¸`:Â󾋶Ðu«`Aôjb?¢¢„ Þ¦k1 ä3(¿ ƒ<bø˜¨ùd6Vú j+ÊÅ5oö°(i5ŸÉ����IEND®B`‚IMAGE 370 ./arch/armour/mail/robe2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿÿÿ–––-ŠVÉÉÉD„^ÿÿÿ[8„wwCÁx<£`�1��c�4‡N=ªeh}���tRNS�@æØf���óIDATxÚ­’AŽ„0 §ã8¬ãÀÿŸ»mƒ”Ñ$»§)$TÉV€×Wù_ùÛWU!ØjÒ28X<”7_*ù±®r°HjÅ[ÀªfÆî¾5`úè;ƒÃ}úøt3é±dx ?DkîC�¯Ï�B2 K@{xžñ™}ûIp‡´ZKÊm€Ú¼ñM�»@¥¶&bç¹â Š3¼ÎÞ? D�¤j}™1d�éÅL¯K³˜ž@2½Tî`~LzPó"kAxgD ×æÏÉÀs ÝôO k@À ×H° à ƒ#}² ¸S¯�ði·„ü.¿ùà‡%6����IEND®B`‚IMAGE 407 ./arch/armour/mail/robe_midnight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTEÞÎ÷��J������{��BBc))k1�{R�1��B)k))BJJZ¥¥½11k÷÷÷111�„)1”¥¥ÎÞÞÞRR„ÎÎÞ;1šù���tRNS�@æØf���÷IDATx^µ‘GvÃ0 ýQX$¹¥çþÍìhb™Yj†àxú'ôAò�f¶LG¨Þ»Ys}ñÍ øeB!P²Dp`?õFâ$‘z¯ƒyÜM-¢oꮃ=G„§Ða@x˜1@¨ðã„Û}0׊ø³$¨¥¹Îú“Í]“@E¼ÉÂlx(]›6Q†î­›±?®‘f]u{л âwÄF·n81¤/À¶ø¬ó}”‚zÝ`ýÐ$@µZ° fÐyp~6 PÎ…�õ=¹C�ñzÓ@º3 ¾/áƒÙ"äò%¢©g ’Ú =œóì‹•ìæc…����IEND®B`‚IMAGE 449 ./arch/armour/mail/robe_midnight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEÞÎ÷��J�{�����))kœœ���1�{B)kR�1��¥¥½RRR„­¥���!ïï÷99RJR¥ÞÞïJJ„ÆÆÖ99sJJZ�„ccc��Z!!sksµ)))11kÿÿÿ߯„���tRNS�@æØf��IDATx^µÑ×n„0„á9Ç ¶¦÷úþ7R´`_æ¿d>l!6ÿ”<W�ɹ€@–RÈœVÀ2‰ð} ±�¦æ p�À/,€¥¬Ú›ÊÃn¹CïÖ¬>-%[ìÐNÍu²ÕÚA  MBëÞ?´¯¸ Þr�{7‡šs²€ÛÆÕŒœ$úÀÜSöYlñ£l›-» ¦”30±ù¿ôÜÒvk8*(Å/…ªw� §B\ІµG`ªGÜÝ÷?7F„Ý–Û=l�öàDÔÈX»�ñžw¸�ÔÃ#ºàtBÍìåÕº`wÓöVï¿ûÓµ» w÷ñÚÄh÷±v¸EŠ ����IEND®B`‚IMAGE 429 ./arch/armour/mail/robe_midnight.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���`PLTEÞÎ÷��J������{çç���R�{1�B)k))k1��Rœœ�JJ„¥¥½11k÷÷÷ZJR¥cJ„ÞÞïRR„�„J��9RccŒÞÞç111ÎÎÞÙY‰���tRNS�@æØf���ûIDATx^µ‘ÇvÃ0 ³�ØTÜÒûÿÿeV°.¦Ácæäç“òêáŸÐ+á÷`f%2\ÕZÍZÖ;ßÌ€zt’âÁ�».Ð܈ÿ’ˆüöäz÷¦E4gí<è­š{ íp3på¾?á|a€]uÁi†ÿ³A0¯¢R8P€O&¤ eq "¹IaÖ½(]8“(ÃÌÀdìog$Ë¢[ Ø‚Z¥+”ÎïðE§j¸-öå”>a}ÞŽx9Æ{¤„ã÷«O+t¬³Ïj£ aµ€ÆÁa/, ‰�óÛàa�òõˆ0ð%¨6Âàõݽ !Ÿ":ô \»Ñ‘ó†ë Èÿâ����IEND®B`‚IMAGE 394 ./arch/misc/rock.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷½÷999BBBZZZ{{{½½½���ñ»°���tRNS�@æØf�� IDATx^m‘A®Ú@DÙq€/à_dÆ@JÖhÜåµcêý-sý¸!Y%%Íæ©ª»5µûŸž›öï÷û¨séàÎü"Ï i¢ ™`Äëõž‰Î|bÎ8º1.¤6ðˆÕ*Xm«/�aÓn?–ºÈð L9¢¬E· 9tïÖ ‹B°Y«;¾B«o‡;G2Àİ̀ɤt¨Â£Bp$ïhMø¬%ä’|àKÀÅ´ ,Z# Ñ€t\âl1n 0”¢ö]Kɵrû˜Ÿ}zœútznàÕZmu¬ïÿ¹âh?e½€æà”%ä ©ó`©³Ð"³d"×ZÁM7}E‚Ý/pE4ùôn¶” ¯î0üíúþ§îLü£ßo*”9êeg|����IEND®B`‚IMAGE 190 ./arch/inorganic/rock2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷���{{{½½½ÿÿÿ¨`n���tRNS�@æØf���]IDATxÚíA€@  øÿ7»¶1zÞá8“P›?�/^£O 1€„L˜‚k8Ð{ \r]‘wÊ…\==­Û pMYˆGóà‚°§_4 .«75ƒJ°ùÎ -¾jþao����IEND®B`‚IMAGE 216 ./arch/spell/Wand/rod_heavy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡�ÿÿaaa���ÿÿ�@@@ÿ×�¿¿¿¢2ˆB���tRNS�@æØf���hIDATxÚíÌ1ÃPЂ1ðïáRU™*³tНÏöëÉ¿ádå®j®ŠvçÂ�ÒÜ,Q°;ì S0€…»õº{ضóÛÝrãÏ:%c8¿ëßB„7 x Eë«P<Н‹'¾wÞ^Ó Y|ïW����IEND®B`‚IMAGE 215 ./arch/spell/Wand/rod_heavy.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡�ÿÿaaa���ÿÿ�@@@ÿ×�¿¿¿¢2ˆB���tRNS�@æØf���gIDATxÚíÌ9„@ CÑñ¢¶|ÿ c&j›€ˆ*~úJú}= ÕÈ wôáK»%Ѳ™ S°åK%‹Ñ¬uäµz&G¿aª ¶sÍ~½Ì¸YW€»ÖzÏÚs…䟛‹‰+¿»KFUh³å����IEND®B`‚IMAGE 213 ./arch/spell/Wand/rod_heavy.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡�ÿÿaaa���ÿÿ�@@@ÿ×�¿¿¿¢2ˆB���tRNS�@æØf���eIDATxÚíÐ1€@DQ™îa1¶ V&þö8þÞÆjäå�{vG¨²e«4$ÙLTE"…[†]œÅÜ2l戞×ÙñÀKMbâ0Éø¾›»Ç�=WtjÏÝ™=ß+&®XüíN7›úÕŰò����IEND®B`‚IMAGE 206 ./arch/spell/Wand/rod_light.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VÚ¥ ¡¡¡�ÿÿaaa���ÿÿ�@@@ÿ×�¿¿¿õ³���tRNS�@æØf���[IDAT(Ïc`’ -߆ʟl†*b¤•€Ì6×Z†¢ÞHsY’|¸‘ ?Ø…/l¤Ž"‰®Þ™Ï–Úl¤‚Äg`kCQèÈZ†ê© tO²%Ð? é‘³» ����IEND®B`‚IMAGE 208 ./arch/spell/Wand/rod_light.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VÚ¥ ¡¡¡�ÿÿaaa���ÿÿ�@@@ÿ×�¿¿¿õ³���tRNS�@æØf���]IDAT(Ïc`’ -߆Êw 6C•7ÒJ@æ[j-Câ—).K@’1ÒBᛣð§i¢È‡£«7Aæ³¥6©#ñØÚPÔ:²–¡z*Ý“l ôh�ÑÇV8����IEND®B`‚IMAGE 208 ./arch/spell/Wand/rod_light.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VÚ¥ ¡¡¡�ÿÿaaa���ÿÿ�@@@ÿ×�¿¿¿õ³���tRNS�@æØf���]IDATxœc`’ -ß†Ê 6C•4ÒJ@æ›k-C⻩,K@’7ÒBá[¢ðKƒQäCÐÕ›#óÙR›4‘ø lm(êY(|† tO²¡ñé�D’Œ$w'����IEND®B`‚IMAGE 186 ./arch/construct/roof/roof_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTERRR���===RRR{{{ÿ‰çÙ���tRNS�@æØf���YIDATx^ÕÐÁ €Pк|Y�œ@;‚ì?“$Ú“ —¾„4 ’áòW‡%|#å[c?H‰ªÑ!af+;$Ff·3nz(¿{ÐòÙÐÓµÅ,k ‰„Vþî6D����IEND®B`‚IMAGE 186 ./arch/construct/roof/roof_1blue.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE�����i==RR™{{±¡_Ã���tRNS�@æØf���YIDATx^ÕÐÁ €Pк|Y�œ@;‚ì?“$Ú“ —¾„4 ’áòW‡%|#å[c?H‰ªÑ!af+;$Ff·3nz(¿{ÐòÙÐÓµÅ,k ‰„Vþî6D����IEND®B`‚IMAGE 186 ./arch/construct/roof/roof_1green.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE����d =‰DR–X{®É{ç™���tRNS�@æØf���YIDATx^ÕÐÁ €Pк|Y�œ@;‚ì?“$Ú“ —¾„4 ’áòW‡%|#å[c?H‰ªÑ!af+;$Ff·3nz(¿{ÐòÙÐÓµÅ,k ‰„Vþî6D����IEND®B`‚IMAGE 194 ./arch/construct/roof/roof_1red.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEG00s�����G00s��™��ŒjYæ���tRNS��v“Í8���]IDATx^ÕÐA €P Ђÿ™ P Ì¿–@O �.}ÉÒìPt«¿:,n)ß»ÛAJdf÷ ‰ÖÚÊ ‰QíðÛ€Êï´…|6´…Äxm1KL׃<54x¼¢ƒô1����IEND®B`‚IMAGE 157 ./arch/construct/roof/roof_2.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���===RRR{{{ Âïk���LIDATWcXµÄj3Сb± „‘D¦Ø­a†ÿýÿƒ0ÛZÄ¡ ¥«–PŸqÍ*„Ä5«¦0@\óÿ#Ô5l�Ât†¾u¦gù����IEND®B`‚IMAGE 157 ./arch/construct/roof/roof_2blue.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��i==RR™{{±Û¸ÍØ���LIDATWcXµÄj3Сb± „‘D¦Ø­a†ÿýÿƒ0ÛZÄ¡ ¥«–PŸqÍ*„Ä5«¦0@\óÿ#Ô5l�Ât†¾u¦gù����IEND®B`‚IMAGE 157 ./arch/construct/roof/roof_2green.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�d =‰DR–X{®³œ7‚���LIDATWcXµÄj3Сb± „‘D¦Ø­a†ÿýÿƒ0ÛZÄ¡ ¥«–PŸqÍ*„Ä5«¦0@\óÿ#Ô5l�Ât†¾u¦gù����IEND®B`‚IMAGE 157 ./arch/construct/roof/roof_2red.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���G00s��™��ÝÀSg���LIDATWcXµÄj3Сb± „‘D¦Ø­a†ÿýÿƒ0ÛZÄ¡ ¥«–PŸqÍ*„Ä5«¦0@\óÿ#Ô5l�Ât†¾u¦gù����IEND®B`‚IMAGE 171 ./arch/food/root.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���¥R)ÆÎ÷ïs�úu@d���tRNSÿÿ�×Ê A���KIDAT•cX ´e,Ђ2Ÿ‚2z¡Œ¶Póˆšî@t-`2‚0˜¸xÀŒVF‹›ÀŒU ŒÀRZ‹)A]]P+PÓñ�¨†¡;é|-j����IEND®B`‚IMAGE 170 ./arch/food/rose_black.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE¡��333¥R))ŒR���·èƒ���tRNS�@æØf���IIDATxÚݱ À0�Âøÿ›«<�[‡°ba¡Çôþ 8‡º0€í`«gÚ—HÚ†W màVVëP‰¼¯2‰ øÇ[ù�á��Ì12²����IEND®B`‚IMAGE 170 ./arch/food/rose_pink.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE �¥R))ŒRÿ���aØ���tRNS�@æØf���IIDATxÚݱ À0�€øÿ›«<�[‡°ba¡Çôþ 8‡º0€í`«gÚ—HÚ†W màVVëP‰¼¯2‰ øÇ[ù�Ç\�µKð»����IEND®B`‚IMAGE 170 ./arch/food/rose_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷)ŒR¥R)���ÿ��Ÿ;Á���tRNS�@æØf���IIDATxÚݱ À0�Â�çÿ›«<�[‡°ba¡Çôþ 8‡º0€í¨gÚ—°Û†äT màVQëcS¶²¯2‰ äÇ[ù�¡�ªðG°}����IEND®B`‚IMAGE 170 ./arch/food/rose_wh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷)ŒR¥R)���ÿÿÿ!Óà���tRNS�@æØf���IIDATxÚݱ À0�Â�çÿ›«<�[‡°ba¡Çôþ 8‡º0€í¨gÚ—°Û†äT màVQëcS¶²¯2‰ äÇ[ù�¡�ªðG°}����IEND®B`‚IMAGE 170 ./arch/food/rose_yel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷)ŒR¥R)���ÿÿ� <m���tRNS�@æØf���IIDATxÚݱ À0�Â�çÿ›«<�[‡°ba¡Çôþ 8‡º0€í¨gÚ—°Û†äT màVQëcS¶²¯2‰ äÇ[ù�¡�ªðG°}����IEND®B`‚IMAGE 343 ./arch/wall/rough/rough_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1����¿¿¿1Ú <���tRNS�@æØf���íIDATx^]Ð1SÃ0 †aMýÀ‘ݤÑÎAØ›‹½.¬½4ù¼+vô÷±¯ôêæÝôL’è?œzàL÷°´;à°‡¸ƒ¡{€Ã¥Gê ÈM‚k7˜J(Ëì÷à0ù޹¹ÎÀ ‡ùÈó“X‚¯)ÀzŒ„©~ã•×€S ÿªèb^iêÍm¼qH¿"Õ›#Á d¤f­&k]�Ü»MçÕð¬0¾9ПTe�œ&›ÀkÊúçˆ\‚¥í?—o{ 9̬( LÒw¶ß©Æ;Ð|4¿bKÚ+ ¸;Ð=Œ�J8àÆÀ…Èe¸Š4����IEND®B`‚IMAGE 275 ./arch/wall/rough/rough_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���¦IDATxÚ’AŽÃ0 ãUòÿ/Þ�MEعj@I–/l%i¿9~±I¢I0‰?ì4 -‚Ju/ørrÒ÷B#˜”öbJH§!Ûz´ü Ô($Ï-ÃSc/Æs[åQà?j¬MyLð‰Ò$u'Üv£ B©m‹… ‹$¯­p*ÁéýEä$È>6ø hùFhZךÇ_··¾êŠ çÀ¶þQ����IEND®B`‚IMAGE 294 ./arch/wall/rough/rough_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���¹IDATxÚÕ‘ËŽ1ív³ÝÿÿÅÁ ÉL”Ç%{Ø-@PKÿ]8‹ïù%Aß ó£@‚$èF/ˆ-x’Fð~œp´ëìú%%,ׄËÉzXý®AtÂÁ‰¢kÔôN\tl¶ÀØá–h½.¸ÐEd�DCð°” ›QÓO”€~W QsÓn =Ξ |°Ø‘¹Ä!ˆ˜D[ÁJ¡�CÉÐ aÄÓWêãÊ‹[ãp@«±IŽF����IEND®B`‚IMAGE 306 ./arch/wall/rough/rough_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÅIDATxÚÍ‘AnÃ0 £Ñ²Üÿ¿8!㢑 åÜÑIÞ¸0 ™~Y,Á*è(ä[È̃’¾Bx|2&Õᤤ\Ìü`ëàîpÔAã(LŒ¦9 .tÛ§êŠ0þëÀ*„< !”MX‹€m}nTö.Œ Ì,¯ýU Ø’‰Îï/4„à(ŒYÖLv¡—ÙE]„›•�Øàœ?ì‚0ïQÈhì#äÊ}q/9ú+=Ÿr•±ø‚ßì%Á×a [¸ñ¸±åÿ…'®ã HX2¶R����IEND®B`‚IMAGE 275 ./arch/wall/rough/rough_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���¦IDATxÚ}“AÄ0cÖþÿ‹7mÕCUá9Æ#‰8Þh]<G_£gA'4“�£t1ä4ôð¹L¸GÁÐPB‚]°ghÑÐÜDÅp…`·z mÁ€½†øžbƒòCJÐ%8 ‹@ª zà ”OzÔÍ2g¡A„­0¹¹{HB{Qé`?ƒ?ƒIh Æ,ä&ï½Éï€fØÍöIϽy/ï^J Ðñi¶����IEND®B`‚IMAGE 281 ./arch/wall/rough/rough_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���¬IDATxÚ}“[j1 wÊ­UÝÿÄÉ„°„0Rƒ¿\nëùú«Ž«o½Ô­\f�º;Ø¿z�ê €û}:ÐPèû|~xŠðGÌ�ƒ ¬‹áþ&.˜>i* ÑÍ…Í¡48ê[QY�P‡€jÎØ Ž¢ïÉAµÐšcPÔÌi¢z-”ž¸Ï(ºÊ[ŒÓJ¦$”jèÍAt‚r¶‘k%Y€c³nwiþm÷uÙ †„����IEND®B`‚IMAGE 308 ./arch/wall/rough/rough_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÇIDATxÚÍ’AnÄ0 ×µšÿ¿¸uÁÊq“s øbŽöëß©¦ýtúsÚ Zµ�f_ Ü€ÓÎ�¨«ž÷wÀ0ÄÂÊ’ÜmUërh‰‘xÍÀ%‡á[3�–"‚ ëWÝï@2óÚ‡Ö¾HC~æçé@E b€?€Òdô$t7àRSÌLKÈÃZ‡5C!«v9û‡ñ€ó¨©±ý¨ˆþ’PRÕàr–Ù€žSÞÝåE~�ÌTÞÉ”;ð¯â¾Ü!ö����IEND®B`‚IMAGE 316 ./arch/wall/rough/rough_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÏIDATxÚ…ÓAnÄ0 CÑš¢ªÿ<Í0¤²âƒdGÐWœ=ljàB8@æƒMÏ D݃ y¨ É;ÀÄù ôZz�¦ µnÁBwf Z‚:c�u ú7o|ùKä3 ï ËXœõ!Ái;ò¬ k··t¼ßAßÈR¿€Út�‹Y–^(/˜%—ÀûŠv‘` €Þ`¿"z4@mð]í¾ Ë°[´Ö‡qÏÙâ&pÎâãâÀ3Êô @~®ÿ¶›ÜîÎÆm§vþ����IEND®B`‚IMAGE 296 ./arch/wall/rough/rough_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���»IDATxÚÕ’A C!C¿1Óäþ'n~+tÑmÐ Ã3èõ/ÒÔYŸ/úM `J"�Bl£Á’�Â6ŒÅ`»Á,¼œôV«±OÀð§ÐÇ6vºã<ÌÕð€w™ ËP€HØžªan�ºþp¿ógxdŽ‚Q}õ&€$¬û©ÌPéW¸°\á$á:†ÜIfÏXno ‹oª‘*�’,6‘‡!Ô¡�@Eh±CëO–}�»:üú1=ÈHj ësí����IEND®B`‚IMAGE 305 ./arch/wall/rough/rough_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÄIDATxÚÍ‘Ñn„0 ɺ»ÿÿÅ-&*äÄñÚŽ„bÙ“µP^ v~(ïÌÖ ‚Á“¡HЃ ¸¼³%ð&øÿ XÃBó'ÂÚl¡²ÚÅ)$ÙˆŠ„¡®‡Œz<…•=ä*h(ƒDS”²&ðEJÙ¿¦HÆEh¼7·ÞÆ~j°9nj›õ¯€f@ïÎPŒT>äÎ!(FÏÏŒb®"‘•EXþ¿uø P„ÔE�´ ¾kÍùòš"Oáž×;³ý?ùu]ç"œ ����IEND®B`‚IMAGE 307 ./arch/wall/rough/rough_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÆIDATxÚÝ’Ñj1 cE®üÿ_|+;w°×½Úaƒ˜µ dýô¿!€C"˜n1Ÿ³UUbâªd˜Õ Öôß Ë—k›µQ>/ ¹Œ€/T²*G€‹Æ <½M–·F€,ä9³¼ä– |è5Üó¿³–à@ç2Ñz\–]{sM·®PWfuGPÜï&±ÌsΔÙa!)A‡Àh‚r´$w‡j<òÀB¡)Cݹ=ÝÜÌý–þð¼×oó�ïG[îÒ����IEND®B`‚IMAGE 321 ./arch/wall/rough/rough_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÔIDATx^­Ï1OÃ@ @aoÝ£JÌ=Â3BjW¢d.ÌüˆR9+NN}?›è¸¡˜ày±>y±ü´™ÈfRª°\MœíRNêÝŒ``öI°*VÒhµ ãþJx÷h©µð:†´N+|i«Ë–x�Ç]@©±]GXf .†#ø{Ö¬Ð3AÈýÜã Q•AÀM³žc K„¡Ü°SL‘@œp’ò7 x~„ü¡ÔMäœ ܪwðg$4MÒ]KMÚ[,ß& ¿¶©Û¿õ ɤúã¢û����IEND®B`‚IMAGE 277 ./arch/wall/rough/rough_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���¨IDATxÚÝÑ11 DQò=Ásÿc¢]­" T|ÉJód¹ýGùªïAÕ@ëw�‘™B3“l¬I½’‹u`ì+:PÈ×TpÇS®y½a•`]Sn伋ª¹Ü�:¬ 5;ÀFé ÌÀ£Ÿ ÄqŠšΔiû pÛ�Õ`!ÛA‰˜xu°„ÚžnÆTÿ‹«c º6t3mB@øÙ|äjÿ‹¡€«¯ÓtI����IEND®B`‚IMAGE 300 ./arch/wall/rough/rough_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���¿IDATx^¥Ñ± Â0`·îÅ'¨Ü,‚³Òîö |[+—Õk‚ÿcKÔ„¤ŽþSø¸#¹Üæ“ÊÂ3_Ã1+€-žœË¤+`8æM~‡—0 ù”>±iY'ÀƒZr[â»�Bˆ$p‡…ÈÅ“ï³ À÷ â´¡›ùx-0ÁúBe!ÔN-jÈ$œ D[¬€4umȠͦ5gT#�É~½ânˆ³D¹Aq¹9ì~6çWpx"£þúmSê����IEND®B`‚IMAGE 306 ./arch/wall/rough/rough_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���ÅIDATxÚÝ’Ûn…0ɬ÷¬ÿÿ‹Ë6Ñ! ^žÛ‘ü€4Ø äøÔ/ü QUBYEÝ¡Û+±‡äÖ.ÒjÁxc/‘Ý‚BÜi®~{ ¼pʽOaÒ‰­9/¸>ýЙ—óý3- U04V…LÊélTmxÄlp$š„XSôÜP¸… U7ígx$ïcªýT0ÐŒׇÆýoŠ Ü ZÜ祿¨7Ï»«ÐSx*¹ _Ð3„~ÂM~/¤íÂ×.¨©Â#�����IEND®B`‚IMAGE 334 ./arch/wall/rough/rough_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf���áIDATxÚÅ“ÑŽÄ ‹qÎþÿ/¾ÍF(í¡òz#ñR¦mÂõ@ò‡Pr-v¯‚Jô¢(`ƒ° J† ¨©ߎîpê$$ÿ"€‡D0$è tÙ06 š0S0|jh§ÀIO8WÒùv ø³Dð‘�—P+k‚@ ÐRÔû•q¡ZŒLYR :>BÍHZ€‘k`X%À 'ÐÚ¿BeÒý6w Æ 0A¤ÆH!0žÝ$â{m¬µ{/þ 5UÿZ‡¹ŸUàýê…Ƀ@'qJØn÷/q}ý| ¦����IEND®B`‚IMAGE 345 ./arch/armour/shield/round_shiel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8àààG$!!! R-���@@@d3‚B'¿¿¿Æi6���tRNS�@æØf���ÝIDATxÚÍ“Yn1 Cc)^%ßÿº!- N¦NóW”À@†ßg¿ý¿tæ7ZÊ(僊ԡ±ªj+ýÄÍ HÞðµ=D|-ZëÁйCHŽX£p-(^„1œíÞß ÌÁ‚èð£@¾N!*!\ À ‚qá¡Ö:""k¨Š¼±™1Ršó¥<123hÎhøz ÛXOQã.x¿.:�ÉÏ‚¹(¸‘S؆Ñx¾‹æQð&xC\eb± ¶ámEÓ$Þ|!HÊGN£s_fæøðÙÒ™¤ýËñÇy�’úv-r����IEND®B`‚IMAGE 264 ./arch/transport/rowboat.x11 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE������G$d3‚B' R-Áq83}AK���tRNS�@æØf���¡IDATxÚí”Á Ã0 C'ËÉÿòœ(Ã…ÜPÊô]tÉ1qûº öÌ_<3\¹ÄÊ-WJ'Ù%‚Ór›0Ìcž+‘ýUà‘…o£À'CÌœ” 0ƒ0’™ .” 0dAްsxQ ÿBŠ"ðIxÌÔ+ c ƒ¶Ä•Z0 Ü#:õàH$K/Yg½eÊÆÎ·Ô–8S³ïv fþý/ñá~Þ{|$éû=����IEND®B`‚IMAGE 417 ./arch/ground/Pstone/rstone_3.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEŸQ,Òi¯/_íu�Í…?ùqÙ¤ÿ��±!!4P3B���tRNS�@æØf��4IDATÁ±NQ�À5 :JÏ%Háhr­ƒ8…$NЦɵ~BÉliK õgg&66Zò¹¡u#|ÞÄÃS-~øÛª/Fýû`P"³aÝ4ð+>rUX–˜b*àÊ9bžçhËÑûq?ÍÛ{~+yþðó-ö'óSÑ?›<™ç稘¢X°›Þn+Èa½rµ:TôQõ†ÔR´†E8�½þ´]-²ìcÍ]ëêüþ±4´¸ðácޮܥ&àGNóv°‹Ë|gΦy;„’Íá¶ØO/×5èQ™ÕõÛ§3Až^7ô1§:}¤7ØUéñÞÑu¬ñwh¥Œ¤`o Ä.†@Æs‘­W< ¡Ù}yCJ1ŸÅúBÆ«âtG|¼Z®ô%c—ƒôrØUþa½”žt����IEND®B`‚IMAGE 407 ./arch/ground/Pstone/rstone_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEŸQ,Òi¯/_Í…?ùqÿ��±!!)!A/���tRNS�@æØf��0IDATÁ1Ž1EÁ?+4c °6—±Ç’=r< ^ÇM,š÷?‚«´ Ò“3Q›ŒhF¢åi�†'8%ÃpixGe$«€Ô«Å (µ«a0Á]É¢Íuyâõë—«N#jkŒãpeMæñ×þ¼›H,¶$FêÛ*Ú|LÜGQ:Jw~¼ŠCØ$IzÏ3 5J"¶Ò€ŽÀ;3þÞ @ �×åxît0u7cÈ&‚Ž$a,}œúÓ½1”^S&s½ÝKK¥”’…A ©YGœz6&®ë+­¸þû—O�Íùóíg9 éŽ`R•àI2Ïjl)/p^ŽeóÖ›v ðk³ïçåµt/ ¼MÐû%J£�‰#ý?·Ç€ø^b·����IEND®B`‚IMAGE 308 ./arch/misc/rubble1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷½÷{{{½½½���ÿÿÿWÐ$ª���tRNS�@æØf���ÓIDATxÚ­’A–„0B~îæi^T,Çe³°Œ"Xùü^ >¤€mÞxãÐÈÀÛÄâË É ./Ú.+@�¾¼ÈÆ¡/¸¼öƦW’á5fz=ƒºŠàÁ-Xש§�@f5ÖNPµ°ÅÁÓRÐs¥ µ³cÈ’Îbæ»óK ú g¯—Ë‚qJùûeáàç${YˆL¬¼WÑFV”tž·*´6[“ ò~žãP¢ ÏpÈÏ#Áî†ï pâÕJB¡ ÎÉP<ø<º¬àø™'áɤt����IEND®B`‚IMAGE 245 ./arch/jewel/ruby.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""‚��ÿ��ÿWWú€r¥­¤���tRNS�@æØf���‘IDATxÚÕA1Äjœýÿ—«MI%rÙKÕ¹¡±HÌë¿b@¨ú˜¤ï `p8~�õ´Áü�×à aTßH‰G!J‰;äšv_ª¿‰ØÆï‚Ô0\�ëŠÙGl@Ö\ξ>˜@Iì*ÀØ€º<ÍÌ›—fÕÚÀÀg€é™@GpoiÑD™1çŸç Ê«ƒrz¶/����IEND®B`‚IMAGE 268 ./arch/jewel/ruby.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²""‚��ÿ��ÿWWÿ¥�ú€r9$žï���tRNS�@æØf���¥IDATxÚÕ’AÂ0 oÈÿŸÌ:2¡E5.ˆ©zˆ<¶âmoÿ…B¦©ÇM ÃO/`æGAR'Ø�\¿ŒP ººj‰¯ vØ™\¤DˆÐ!ª®e•¨9 ÒT A’‰è%°R^;æá]à<çM'²/"pC {‰ä´fÀœ~ õÙ¢Ï,à>P#°Þ٠㺠6 êÊ×H˜Ýÿ{¡��Ïgîó����IEND®B`‚IMAGE 549 ./arch/shop/ruby_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ,&ê^���ØPLTE�������‹‹�ìì�îîíêëÙ‘ìÙ@@@��€����‚��…††‰ŠŽ,,Ž<<”?@”BB–22›««##«$$¬<<­°""±!!±""³��³""´##·%%»'(ÁÃÃÃÅ×àbXçe\ç¶ç·è¸ê íïöÖö×üÓýÕýÖþþÿÓ�ÿÖ�ÿ×�ÿØÿØÿÙÿÛ�ÿï¢ÿð�ÿð&ÿð2ÿÿÿ‰Û{’���tRNS�@æØf���bKGDG`½É{���¹IDAT8Ëc`(€@‘ge3³³3cceA�FýlN†úúvìL@ ÂÅ'¬,¦ÀÌÐÜÂÂÒŨS”‡KJQ^¡€‘“‘ÑNßÂÎÎÁÍ–‰…‰‹WH@K]S‹{WA~Ui9=4+ ,ìAVÈ*Iɨ銡ú‚ÍÎÅÍÕÙìH+ck f4or˜ÚÚšràð&öpb$% 9¹1ÂEèOLŒT4�ÈÅÿ£Y���o“øB^a¸����IEND®B`‚IMAGE 291 ./arch/jewel/ruby_exceptional.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE������µÞÿÿÿÿ–ø���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ %$*T<���}IDAT(ÏÍŽÁà yP@HÉ¡4 £ U`Lÿ­äD:ðývgG£”î5Ÿs¼vö9û&r÷é|?" \UCd1l¢+èõ aZ=ŠŒ@›•_ (KЃíX'(¥¯ ©˜ÒK¼ÅSº¤´c Ò³²íœJ)|‹}HÇ̆MÎä����IEND®B`‚IMAGE 212 ./arch/jewel/ruby_flawless.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEBkk���µÞÿÿÿÿŒ±ö5���tRNS�@æØf���pIDATxÚíαÀ CÑ`‰ýWŽŸ+‘ PCñ>ÏÝiäöPÜ'‡¨µÒ?àfé8f¬ªÒMPsà{æbáÕ¸J‡ÌîÅ Àvh´G0ÿ' çÛsr f{nI5g0{îÎ{;fjŒ÷hÂ����IEND®B`‚IMAGE 947 ./arch/gods/elemental/ruggilli.x11 ‰PNG  ��� IHDR���@���@���XGlí���*PLTE�0�c2±!!ÿ��ŸQ,Ù¤�1�Òiíu�cDþÖ�þ¤�ÿÿ����j�Ê ���tRNS�@æØf��7IDATx^­•=ÝT†”–®}Bs$îŒP¬¬NáÐ5öº i L °ËîJˆŽí-ˆ¥ÈµWwH¢[E\6Ûd Ú% UD{ û˜Ehþ »¢ãRñÓÌ£w^kì±ú›ªgžôÒK’s ×½¦ àØžлÁ„Ú&{V]®"=nä Žu2€Dç^ž¤“ßÞu”I ˆ )šöl4X¥zb]üªç:r®¸ø|8–ÔºÁØ^@_~ ¡ɵÛÅÓî,âX¹a²ƒµ×MΫ“¾ø!·Éx�HlŒ2*Zׄvìû;Û# ¨çÖïÔΆ2 ò; âoÈFu ŸÊ¤ÙÛ5*ÊàNo@›µÌÆDX´# d`Ë èl¬™;m|@Ò”y$ƒ òå(#“vé•.»Ä'LškΡÿk?Ió!÷‡dmÖÿ¨‹¶hiøýêGûEûéÖK‹âWæ‘òôüÇ/ìCÇožgÉ¿cöŠÆO¤½ªmÊ™7 5nAúÏýb}¹øÎ¤·‘Ý(§k¯œ6ܰÖõõŠÍãâ3}Ø&[̯Ío6\ív‘ë%æº(™ï[$Ykˆ�‘‹ª½_ûÛãåy¹:"M®7l|ÀM6¸Z-™prqŸ| ªaX”«Õ5„K§Ì¢7¸\ýòõÁ|{uB¹ò…ͼxüóöûÍjsë3ã‚Í/¶O«wV›—îu~€o™¸<^¾wx¯œ‰G€ÀÞ.ð’¨ù„½÷Á)WÌŠfÓ¢yûeÿLÆÈXW¸Ö”íÑÈr˜11TmÞy�¥žÓëè;Dl€Sšá.Zký h‰ºp .îÂ-ö3¸„0—?äLÙÒsP½ð¸ÆZõª¹›OßEDŽÞ寮Úí| ¶€ÀÉÜÅ á38c~TΛªÉU@ŽWs>Xµ×!$àï¯ðÉ|Šrˆ(ÛDf"Æ Cž2åš9=…ƒ\_Íðk_To„îƒàÎnd—_½›‡�Ò„oÖÚª€DœÁt ¢‚ŠEâsÌJ§þ[Þ¿ùÙúö5Ÿ‘kç°����IEND®B`‚IMAGE 943 ./arch/gods/elemental/ruggilli.x12 ‰PNG  ��� IHDR���@���@���XGlí���-PLTE��ÿ��±!!c2�1�þÖ�cDíu�ŸQ,Ù¤ÿÿ�Òiþ¤��c����LÚ@���tRNS�@æØf��0IDATx^µÔÁkEð¡Ÿç…ç]¦6,™Yb| ßΔªæ ôø¢õk ‚xÈÍÂöœK‹[o iiñ’Çä#—¯4ÄK#!hþ‰Ý™ Êû7¸ö¸³|Î?žaÞwñ?$áÿ¸þw ïÞ a[°éRÕ¢| Ê´e­íÄ4#¡XˆAZæ­R£.rù5H@޽ó1 šKpRXAättD’×lÒ$ÔÌp*ƒ„<@3CImFQƒ‚á@õ åÆ1×"Î�NQ͹ðËÂÄ 8†6hA¡FBºÈ"àú˜jfÐH”iÜ@”^NP'yÍRÇ[.TþÆ=ªEÉÀ™‰ƒ²ÎÛÂzêÞ"À1Ãqx v\ú¢ ¸Ñ ùbB¬´ñŽ»âŠão­_î³Wr:³LšåÄâèúöc\8 8[GSl�·tð¡úËJ@¢Û@\on¯U+¶!é:s£)pV-<Yü*3^wæàµH$̇³ôù]IMwݬ˜›_(¿³°éŒòËÑ&òòŸŸÝeÓâžc%=:i²1¾y¨œjAOÍ M²Ož9kzMKܘ�Ïî¨àê°:!wqXa6Fj"d.PÃÙlº:¯zŽ@þÎ>-´` ´‡4\¦r¢WfÓ©’+Ñ¨Û„í«…ƒ¯ݪ>âR劙×nmÏöÎ6×ý^.âp©éÁló½êS¿Ä \›Fióp÷³Ï˜eÜ`êPbC¾Z{^m(/ãiXf[(åó³ ¬rhHKLV/‘+Ž@(Øgc',J@÷ý°s-qŽ¥» TÄIœªÔÓßbñ>~Êû@qsL¿ï•¿¾†�(zp‡™/'Ðu ¬Áù÷Å:‹„?®6F1ðe¶uU‹DpýçýÝž†Db‚‚Y°ó–ú@“mIåZb<àb‘¼]Uds•—Å»/)ƒÕ§«×*E Ik‡?ö4ÐÞ|m *àôK7 §·»—ÝÞ4ŠA²6¯²sYf§KÇç}ÀJ‰‰ KW_üZ‹ž%é8@Т/Ìf8*�Ä¢?üêçc jÑ1°ÖƺП¿£ÁU�¯¹Óò����IEND®B`‚IMAGE 909 ./arch/gods/elemental/ruggilli.x13 ‰PNG  ��� IHDR���@���@���XGlí���-PLTE��±!!c2ÿ��Òiíu�Ù¤þÖ�þ¤��1�cDÿÿ�ŸQ,�c����Vû†���tRNS�@æØf��IDATx^­”Ák$EÆ;sóÒPõLËR¤§O‚ûêK1 + 1jamÇ x‚1,,Ȉˆ,„vL`Ï^=èUö"ë9EƒGW—Þ´þ'¬'ûái¿kÿê{¯¾÷º²W­\›Ðý/`m’´ÖØ€+wD wÁÝ9”ˆ@©ÉdYè¢)d#;BõùqÑÅ5`’ÐCLi0]iRžxHdfâ.:“åd†ÀøÝ÷GôÞÛJ±ë[!‚“§)^>)xã=øš²|óÔ•ÕiŠsü±zþ_`´®ØÆ7?wý·íÉO‡ 3ÎrÚéÿ¾)Æ6·ÌÀ¡fûZÙe6¡àvàÀ0µ;¹J)õÄØT4]®Âñ]¢É €±ÉYwÁÅYsÿÞiRÃ8w}*TáÛÝß¿¢ÎuÒe¨ƒê¤"Ì�°…‰à¾&XÖÂÊt%”2€ »³©É†² Mpvóf8‹äÊj¾€Â\Î"p¬ægí~=œE=¢:î6³ùÂUK˜ñp𬠠šOõf;­…}&À·˜ø£³ -ýSToµø¬ñ@Ó¸L `TƒƒÆM€%@Õ€ŸA_`Ÿ“�€Ï>arÆ_¨Z°iÂâ‘"æ×[ (|óÑãÕž*wŸ-aÀ¾9üE)¡äeÕn_·!V«ÒES5¿üê|õ«9¹^j%”°íÑÏç×{úòñ c@´þòzµO_^¹Nè! g«z¶š¶Iè!Ò¬ahÑ\A %ÁpŠn0k”�Þn� ö-aºÄKÀ‰¯- PðíXˆ²$|X) ðS€¸÷¶¾³JÙ‚¶•äp5iêôR¥zH €wR—«4Ú>Â;“Mc«C¨.¬t‹Wr¯5ÇžXÚ�` Ñ•¶tâN’o ÌŠ>Ý—�KÛ³``ýR=jÐäkM@C~ë‰�ô¬Mª£éÙ÷“F�TR4öþ!>¾].j`[ÐÊW|ÿ¶Ù³’ƒíÕÒ+£Xg’N0wI*JY&"YúW]öªôW¨f5·%û����IEND®B`‚IMAGE 476 ./arch/construct/tower/ruined_tower.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���*PLTE������!!!@@@G$aaad3‚B' R-¡¡¡¿¿¿Áq8ààà1u{���tRNS�@æØf��`IDATxÚí’Ñn„0 ;@0qàÿ·kBª#á®Ï•ºº·™s¼2_ÿù_ðÎGÌòA]Ö=ó¯ËºåÌ;|Ý4g\ygä •KàAåâï„‹gÎ |à(yŠžï›dq #_YA\‘p7hÿÿá÷ÔýPÃÓ€½‚oˆK #xåoÙï„xl°]¸ã!\¼MèfB¨<Zˆß„y&8äš!Ñ6¸ÂœR‚v§þs˜ Å„"t˜Ä-™‘‘Ï“^p—à^Žàã¦ÅQJ'0M“„ÙJ2"Þ Žýl6/DŽr38HFMñƒn€*`‰+^J?@p§”C¿£X7 6„ÄUÁ­ôB0¬Uàá ÁZ…'0·«Bé9âqï+4Ž÷¤ö‡G…‘×+”Va¸Óë(ǰq…ä•ë ·”V…¨ÀX¡å¬@MTîtJZFÔRñÍ7x¼ÖÕ-kæ����IEND®B`‚IMAGE 389 ./arch/exit/ruins.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE���+++999@@@GGGNNNUUUcccjjjqqq¿¿¿;ž0û���tRNS�@æØf��IDATx^!nÄ0D¿oà‘v Ìr†¥]º¬‹‚,å %‘‚r†bKÕ‚J ër‡2ƒ¡í$?Õî(Ö×<iÆß‘Œ<¡¸MlójŒKœÆ Z\ÄÜÎË´â†\ñ)q9¼ø 0‚ €K>/Á¥‘–'hGy;W]Q_Ë¢sè ¨«úøZu>a�4Ág(Xë0%`ÖÈá|ï›4ý DÀpì£FÀȶ\ƒÖg7moáKÌxòùë›{<@“>ß ‘h5"€€–-¿,ÕŸkbpýãµ*‚†�a5–‡{0­àG u*+ñde§½Ñ³ÞÀ*ø?$xRZþ|gvnÝ×����IEND®B`‚IMAGE 160 ./arch/spell/Rune/rune_antimagic.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE{{{÷Þ÷zWXõ���tRNSÿ�å·0J���GIDAT[cø ø‰ÿêëþר¹{lĽj ñþ;øþHü¾$l÷�ÕÉUÔC0"VV Ö6�dÄP‚–�_Iqx9~I����IEND®B`‚IMAGE 158 ./arch/spell/Rune/rune_blast.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Þ÷Þ¥!˜Š?€���tRNS�@æØf���FIDAT[c`À X@ˆ`Œ ò�Œ`„Ë2Á£ëø$Ø›ª%80p8ø½á@;?Pœ‰l(��ïÐ rQÀ/»����IEND®B`‚IMAGE 145 ./arch/spell/Rune/rune_blightning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷ÿÿ�­8¶×���tRNS�@æØf���9IDATxÚÕÌ1 � AóÿO‹…ÍE؃³IÚY²â&q1 DAßuæ^g~þzIÝ!@ÿ{îĹۯ°�L­Êã����IEND®B`‚IMAGE 158 ./arch/spell/Rune/rune_bomb.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Þ÷ïs�&(Âà���tRNS�@æØf���FIDAT[}˹ €0�Áñ#9$¥¼+Å uP ""&ÞåS‡ ÊLdàJCmOÒߎ cKÖD†’ûiÌ cIj›þݓΠÎw¯‘g����IEND®B`‚IMAGE 161 ./arch/spell/Rune/rune_confusion.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Þ÷���€„H���tRNS�@æØf���IIDAT™c`À €Xx³� ±@ÌØ�$˜A<Á!ä þʤ”ü�ò˜‚T0d™àêX l�ãù·�r€ Œ¦ñi����IEND®B`‚IMAGE 186 ./arch/spell/Rune/rune_death.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷Þ÷)ŽS´���tRNSÿ�å·0J���aIDATÁ¡Qa€Á½ CY)%"& ÿR(‰ÄÆ] ˆ˜ÌÁc·™™ ‚ü.sVÇ®q•Ç]¦•ãç³íŽÝ%;A¾9}ëeÍ9=W¶›Ú^µy—!– ù#'‚ øŠb="#LÁ����IEND®B`‚IMAGE 134 ./arch/spell/Rune/rune_fire.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Þ÷ÿ��>K¥���tRNS�@æØf���.IDAT[c` 4|�õ?€„…ˆo€…H@% ‡üÿ ì˜?0070 �ù 7†¸Ù����IEND®B`‚IMAGE 153 ./arch/spell/Rune/rune_fireball.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Þ÷ÿ��>K¥���tRNS�@æØf���AIDAT[c` H�±ã aß$dd`b  Â�D$À‰@Ì"˜€H`©`n``l�J³A�„ñÖø����IEND®B`‚IMAGE 133 ./arch/spell/Rune/rune_frost.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE”ÿ÷Þ÷<ˆTc���tRNSÿ�å·0J���,IDAT™cø Äõ@âŸ=Œ8_ $މî(`.X¬!6€+»¯uw$Ôøµ����IEND®B`‚IMAGE 135 ./arch/spell/Rune/rune_heal.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�ÿ�÷Þ÷ãê”8���tRNSÿ�å·0J���.IDAT[cø èÄ?ñ§…�‹=;$°ÃX`10ñÃSN¡ Àt � 'wG„Ò[����IEND®B`‚IMAGE 153 ./arch/spell/Rune/rune_lightning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷ÿÿ�­8¶×���tRNS�@æØf���AIDATxÚÕÑ1 �0ÁÝÿ:e‰H ¯RnÀBæEm‹g °ÍΣ[y\å(w@(9ÜþÇßžÿýÈ,ÒÞ�Wh›xÙ����IEND®B`‚IMAGE 168 ./arch/spell/Misc/rune_mark.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷Þ÷)ŽS´���tRNSÿ�å·0J���OIDAT[cø èÄüŸ@¢ÆÂI0€•ü…jûù¯þ<úz{†v5@1¹B q.H<sßüÄ/ùÿ øAŠ\ñD`º�ö:kU|³‡1����IEND®B`‚IMAGE 155 ./arch/spell/Rune/rune_paralysis.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Þ÷ÿÖ�é~)<���tRNS�@æØf���CIDAT[uÉ¡€0�ÁÅÇD¾ ˆOG)‘’ÒÉ# 3œXsüpbòËbÔ¢‚vû3:21¹ÝKÀ­°•ßn¨œ ÞK¡ÕR����IEND®B`‚IMAGE 160 ./arch/spell/Rune/rune_paralysis.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEïs�÷Þ÷ÿÖ�*¡z���tRNSÿ�å·0J���DIDATWc…‘¸I¡¡SAŒ¨†•h" 50FØRCjr–„‘¶€iªL ’.¨90“Öb± Ía¡¤3�£+XO‚J°����IEND®B`‚IMAGE 166 ./arch/spell/Rune/rune_pcloud.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE)ŒR÷Þ÷?ð���tRNSÿ�å·0J���MIDAT[cúL @€I(€ˆ!�ûŸ¨ÀÄpÈŽé§ã&–@1æŸ ìLS8@X ç Áb18Àt0Àõ2¡jƒ�šQ=™¶EÍ����IEND®B`‚IMAGE 144 ./arch/spell/Rune/rune_shock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷ÿÿ�­8¶×���tRNS�@æØf���8IDAT8c`¶€Ð…`âH�CŠ 6°ÛŽË(&á”% ÅòPl�ÃH0€Æòƒ��É×�MÙi����IEND®B`‚IMAGE 136 ./arch/spell/Rune/rune_sp_res.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE�Î�÷Þ÷«���tRNSÿ�å·0J���/IDAT[cø D=øg#ÀÜÏé@â3Œû#©M/X NÐõþG'�´,níéi€����IEND®B`‚IMAGE 172 ./arch/spell/Rune/rune_sum_earth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷¥R)•Gy���tRNS�@æØf���TIDATxÚÕÁ � C{ÿÿÓ’‡`îàÉ¡Aø¨Í³O€ì ’"Ï Js Ôè}f1“yÈB%æ1 >)Â$„o>¼¢%@nP§D\wèç-�s{d+����IEND®B`‚IMAGE 172 ./arch/spell/Rune/rune_sum_fire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷ÿ��>K¥���tRNS�@æØf���TIDATxÚÕÁ � C{ÿÿÓ’‡`îàÉ¡Aø¨Í³O€ì ’"Ï Js Ôè}f1“yÈB%æ1 >)Â$„o>¼¢%@nP§D\wèç-�s{d+����IEND®B`‚IMAGE 172 ./arch/spell/Rune/rune_sum_water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷��ÿ­†Å���tRNS�@æØf���TIDATxÚÕÁ � C{ÿÿÓ’‡`îàÉ¡Aø¨Í³O€ì ’"Ï Js Ôè}f1“yÈB%æ1 >)Â$„o>¼¢%@nP§D\wèç-�s{d+����IEND®B`‚IMAGE 172 ./arch/spell/Rune/rune_summon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷���€„H���tRNS�@æØf���TIDATxÚÕÁ � C{ÿÿÓ’‡`îàÉ¡Aø¨Í³O€ì ’"Ï Js Ôè}f1“yÈB%æ1 >)Â$„o>¼¢%@nP§D\wèç-�s{d+����IEND®B`‚IMAGE 172 ./arch/spell/Rune/rune_summon_air.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Þ÷ÿÿÿ€:YZ���tRNS�@æØf���TIDATxÚÕÁ � C{ÿÿÓ’‡`îàÉ¡Aø¨Í³O€ì ’"Ï Js Ôè}f1“yÈB%æ1 >)Â$„o>¼¢%@nP§D\wèç-�s{d+����IEND®B`‚IMAGE 136 ./arch/spell/Rune/rune_transfer.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE”ÿ÷Þ÷<ˆTc���tRNSÿ�å·0J���/IDAT[cø D=øg#ÀÜÏé@â3Œû#©M/X NÐõþG'�´,níéi€����IEND®B`‚IMAGE 270 ./arch/monster/acid/rustmonste.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���DDDeeeºººUUUªªª™e����e0�Ιe4žW���tRNS�@æØf���›IDATxÚ½A!ÅìJëÿœÀê)À)•±8M×8Ð~)€ÒŸª‹Ú/ >6Fœ_È€ÝCrà!ú‹|Ð~ÝÀ!z¿-"! Ñ/ò;¬%ˆ¤‹:“žBt+!P­È ÷w PÂ;0§ŒM€ l‚€Öœ@M1àjO¾¿ðTPñ€ ƒ“„#½>l?îêñù§k)h×N- î ò”����IEND®B`‚IMAGE 275 ./arch/monster/acid/rustmonste.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���ªªªeee���Ιee0�™e�UUUºººDDD#—-å���tRNS�@æØf��� IDATxÚÍÐÁà ÐPRøÿ‰»Ë œK…TɘÖ^¹pLݽ᣶Ö>Øæ‹P÷Âó4Í#q3 WÀà÷2.`ÅèwL1 ã¾  $a0:þ@ðü÷ÅH¦Œ×o` JAìÕ€Z ¶- †`ÏX ð1­(ÈÍT€s²ƒ#ten †rѶ«ƒzÓ®/5¤Qâ‘ ����IEND®B`‚IMAGE 268 ./arch/monster/acid/rustmonste.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���eeeºººUUUªªª™e����e0�ΙeDDDæ~ X���tRNS�@æØf���™IDATxÚÕ’Aà Ó$0ÿpm™Fª0¾õÐÌYvÊñ ”¼‹4j#6)ü䳉@gÿÆÀkÏ p^çžž$àcòMÅ98 å!U´÷êpZr™Ò‚‡(9©ˆdîç­‘½¤A›àiDÔ;7¶F ‚ÍIbÀ›Ôïû®ˆg̳ýÊòr±„¯)±üŸÞ,¯÷‚{[f����IEND®B`‚IMAGE 273 ./arch/monster/acid/rustmonste.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���ªªªeee���Ιee0�™e�UUUºººDDD#—-å���tRNS�@æØf���žIDATxÚÍÏÁà PìFˆþÿ„žØæØ)/y;+Êÿ ÌìÑUu¾û¥1Óž½Üç Á‹]´V^¹æ¯ÿy�X÷Úåg ´‚{o@àìNîÀÚM&bæ©RˆzRYc Nn�öRG?ás‚TT{º èùÒYÀÍåCIA¸'Ž »"O yƒ‡j9žˆÚèóhÛ³ä÷óÉ/‚=°/����IEND®B`‚IMAGE 560 ./arch/construct/Snow/s_barn.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������{{{›^²""½½½ÿ��ÿÿ�ÿÿÿã1×+���tRNS�@æØf��ÃIDATxÚåUÁ²ƒ0tcI÷ÿ¿¸L*‚µâéͼM4“Ã. b²üyÀqNp›..1Mw´!1I—7SôÙ€y÷ƒ,“…€‘ä½Å4_ŽJ(óÉfdÙ„˜¨_»—eª§äeJ�Ø(!y™ !ü ¤äñ8'/ï—:œV¯ó1ÄäÛ”€:`D“š绀C<dÐ)Î;‰« O)9ÐaÉž¬ Ül$Z A@B|I¸9à¡DÊHˆ˜°¯°ûn1—ª¶Bµ$™ØSˆ¨oå€;48æC|•j#}?•[½ätÌ÷ÁùKäôV~…dVƒ ±½³ëØ8½Côé½³¨5Ò]1^¶âº¸7’NJÀŒ>Ö®ãZ€î�[hâùÜȵ@³{Áb¢+ÿ9<ØÌ ËyãwG¥!i3 ÌÍ@å^@ˆ‡QŽ€Â߈&yÜ÷Üû¶­; .‘: û°dØáÉÀ©Pä¢ÐÃ)}]±F©À1ܪ|Ñ@.ÆjûHR @¶î`€ÌHzÐøäØ,ÂÎÐ�²¦µ–ƒ¹ý,è¾U����IEND®B`‚IMAGE 641 ./arch/construct/Snow/s_barrack_u.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���'PLTE„B!���ccc!!!BBB„RR1{{{½½½ÿÿÿ)))RRRÞ¥!®q[v���tRNS�@æØf��IDATxÚ•’Û0D»2)ìÝýÿ÷v…eˆâ4)‰c)<ÁBðä×ÿð7nRÈw0 ÷ßݲŒòÆrûx“›arÁyº ‹kÿ:~AÈõsbQÀ+‰Ç¼Ô-"q6�¢%ÜE‚\Q" �Á6¤¿! œ¯)pÒº;Ð"cïFåíFy6öûÞ‡c˜òÞû0Ï×,,hë¥`5*ÞõA«SC™3]EP¬«Hƒw f‘ ,²ŽÐÀ:JÐî”P@¼ÌƒWjneRCÔHî [ýÕò·NFl�«Qqÿ¹?¤¡€å¹`ˆÉîdp3ÇÀ6’ásqé쑜kŸÔ%Ò¸=Þˆibö* ܲª"§º¦i³¥P€ÑÀ¨0; =ö°Am G®bœòýÉ:¿Šé´ŒØ€ê´ÉDl%€X"bÌŸË$y¥pwé˰48Í´Q†ó¢Õƒ“O–1\\aæ‡SW?YðÅ/Û^Ú/@ç ã›ßãùE]kh§‚7#{/”!M`ª×Ç|×¢�C  ÅºÛ‚Š€Œ‹hÑ÷”ÀTÜüÞíº»,3 åÁ¾Wr%X €ðN �0­À‡2\v&02"ÚÆö¿ŠiL‹Z1XÀgûýƒ&Nh�Sš����IEND®B`‚IMAGE 641 ./arch/construct/Snow/s_barrack_u.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���'PLTE„B!���ccc!!!BBB„RR1{{{½½½ÿÿÿ)))RRRÞ¥!®q[v���tRNS�@æØf��IDATxÚ•’Û0D»2)ìÝýÿ÷v…eˆâ4)‰c)<ÁBðä×ÿð7nRÈw0 ÷ßݲŒòÆrûx“›arÁyº ‹kÿ:~AÈõsbQÀ+‰Ç¼Ô-"q6�¢%ÜE‚\Q" �Á6¤¿! œ¯)pÒº;Ð"cïFåíFy6öûÞ‡c˜òÞû0Ï×,,hë¥`5*ÞõA«SC™3]EP¬«Hƒw f‘ ,²ŽÐÀ:JÐî”P@¼ÌƒWjneRCÔHî [ýÕò·NFl�«Qqÿ¹?¤¡€å¹`ˆÉîdp3ÇÀ6’ásqé쑜kŸÔ%Ò¸=Þˆibö* ܲª"§º¦i³¥P€ÑÀ¨0; =ö°Am G®bœòýÉ:¿Šé´ŒØ€ê´ÉDl%€X"bÌŸË$y¥pwé˰48Í´Q†ó¢Õƒ“O–1\\aæ‡SW?YðÅ/Û^Ú/@ç ã›ßãùE]kh§‚7#{/”!M`ª×Ç|×¢�C  ÅºÛ‚Š€Œ‹hÑ÷”ÀTÜüÞíº»,3 åÁ¾Wr%X €ðN �0­À‡2\v&02"ÚÆö¿ŠiL‹Z1XÀgûýƒ&Nh�Sš����IEND®B`‚IMAGE 249 ./arch/road/s_bridge/s_bridge1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEp� ¿¿¿���Í…? R-d3ÑžÀ\���tRNS�@æØf���’IDATxÚÕ“Q„0Dzÿ#Pl¬¦ÝdýñÉdZÅÿèˆP…ˆ(Å»µî ÊL-‘ÕMD¿H–Èê&D„™]°ë_vh¼ÀÌí‘ã�æîöåÃÛ<sgà6w�a s+^ÜÁg{à>Ù_Þá_T=±7 +E˜Ás ~¶¼Ÿ.Îs\¨sB© êűb!† ÔRûà����IEND®B`‚IMAGE 262 ./arch/road/s_bridge/s_bridge1a.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEp� Í…? R-d3¿¿¿���”8å×���tRNS�@æØf���ŸIDATxÚ½’YÃ0DÍzÿ#×܉eõ£}HŒ"ðXaÔ;Tád�Í”sP‘Ë$0i†;-‚LÂRØX 2qi;ÒÞp'ø‰l@D„}!­’ Ä^LÞ­¾ÍÐé¼½ÿ$ƒ:» ¼þ m2ðÚ(ÞdxoÔ.Ãi£ô_ÕsTÃ…õÏ”bˆ›‹$Ãã9ŒD¼­Ê8ñýÉ @§@¹U����IEND®B`‚IMAGE 264 ./arch/road/s_bridge/s_bridge1b.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEp� d3¿¿¿���Í…? R-¤ƒ›À���tRNS�@æØf���¡IDATxÚµ“á ! ƒ½$íû?ò´›ÓÖÁÁ¾VîGC ’k ­„ÊüJ:€u¨6,²«GSèd£I`î!Ò\P{H×Û‰™Û ¾©ÀÝ-Ê=øµU&¸úà•‡á/ÊþçÁmP=¥ùç%(J3Q•òy¢n‘JºGª`Ô¯D‰Õ† Ùr¨¸bÎóúŸUœö€ b³ôÐê����IEND®B`‚IMAGE 244 ./arch/road/s_bridge/s_bridge2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcma R-Í…?���¿¿¿pÁi���tRNS�@æØf���IDATx^…‘Ñ Ã0 õá ò–¼ Pö_¥XX¥Š IþÞåPˆàè!"cªL/H<³phðŒž &êli8ðéHééh°:!õÚA°•¾Þùò�\ÔüX‚íh\Ò×äÛñÞ ¦“Þ¨_9Agz^ì~ «W¯ÊI–椆ÁRü†}�ÃhP¼;Á����IEND®B`‚IMAGE 235 ./arch/road/s_bridge/s_bridge2a.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcma¿¿¿ R-Í…?���ê¡°¾���tRNS�@æØf���‡IDATx^ÍÁ à C9°�ÒÏAZÉ�égÿUŠQPšªçúbËÂH-àšò沕Pd+eï6l%ø!;S&B4Aч·Ú†vÚ#%’O´©½CCUÔQÀ' =NPtÚGbÖ(œå„Z@Å è±*~œ0–¸¥ÇäÅ{R¿¿ôþ—˜LªŠ}õ6ˆYfO¯����IEND®B`‚IMAGE 241 ./arch/road/s_bridge/s_bridge2b.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcma R-Í…?���¿¿¿µŽÑÂ���tRNS�@æØf���IDATx^ÝÑ ! C‘:A`‘+V&È1AÂþ«ÜPÝ õç“üd—C J]ije¡7*Ó‚À À7pÄr*JÇŽ¤Ãêé�¶z'@+ï/P5VÖæ+üvà¢cz À÷tyN?Ί\ªÖ…‹_Š %ç½°Q^笴™à‘òßù�‰+PîR­ò����IEND®B`‚IMAGE 361 ./arch/construct/Snow/s_bungalow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE����Î�1RB!c1„B!”””¥R)½½½Æs9ÆÆÆÿ¥�ÿÖ�ÿÿÿK‡Ý���tRNSÿÿ�×Ê A���ëIDATxÚ…ÑÑŽƒ0 DÑÛBÂTdþÿw7ÆB”�Ýy –rdÇ‚÷Mê!DžÈØ<�°lªÍ�!€,WÛ VŸGña;F�Þƒý�ôP¤@÷ o«´�þySÃzÖ\S÷kº´6Žìo¼ÙBlkvô lQ`¤.#lS&¾ÿE½@5¯1È:p€,^–…Ó#-؆yöÜcNÀ†‚ÁŸL?9 dó#P€‰y @ïl½Y×–Õ� Ù—õÕÈ#Ⱦ­ßgu€Üò£ž‘0Ù–rN?ÐbÆefìüήSÙ¬±����IEND®B`‚IMAGE 944 ./arch/construct/Snow/s_castle.x11 ‰PNG  ��� IHDR���@���@���·ì���BPLTE������ÿÿÿ{{{½½½111¥¥¥ZZZ�1�œR)œœœŒŒŒÞ��Œ„„”””9JJJRRRÎkssssc1¥¨f¢���tRNS�@æØf��IDATx^­–‰®ë6 Ds†”åmÝþÿW SxeÅhÐvbÉ1 iÅàmÀíÁÝ}‘ø˜ˆ¶mQøˆl›­I[>"FÔ%çŸâ·-�Ý€®ßC]+#…/ ÌDOâ*àçXÇN[.%q„,€;8Ö°}¾Œ".Ø Ü)´`oƒˆOî†mÛGt@ À(âdÀG¼kH—ÆŽa–Ä“�xÛ›4’Ÿ\G fæ|Žôm33*߀)ðüýçϧƒÈm2á &FxO #‰ï €Í7µðØ[ß�‰@T z$èùZ œ h»µ6 7añ­3(™‘‰|—ôGȰ· .R@Tª‰|?Ð âÜU¾Oê% ž.“0‚¨I@CÀèˆ|”%P]{ÃìÜ)òÍ)†µ]n  º7N]ÀC!^–GIžKØpw›0òƒ­»É:mzn;I¼Íè‘",ÑД²êA `4¯QÂ* Ñƒ|Š6ìhÇãŠ9Äs¾ÂY4Ñ,²ã\Ë;”›aI|k ¿�¦N›òs/²n…Væ»óy_ÏA"ãBþUà·?}ÞÁÞ[¨sÕDþçkÞQ/ @Ùν€Š8Ièq<]ê¢E„Ó[¨Éå²q>5¹ØU<’8 P“ kÔ ›ˆ_Ï5x€�QB柈e÷Y€Ç¯ÇPÃåD[`{å¿x<†�êÞÏBØÝÈød௯p%q™…*Þÿq¬ËAb"N󈣨\}iÜ=äÖ #ެ!#–Ï÷XöfÄ1âÈ—p?uÏu=âÜkÄ‘Ÿ¿F…»%ñ<äÕˆs…îïG7³)ÿ�vØtuȺ¼�¿)6ˆ«Ì¯/�-xEÄÛ…ú0 ìxF?4ðã™f{F_W8w@Aaä§}Ü_ >퀤</‰+4tèwÔe`†¤5®™ îu»˜Ã cT»IÎÂÌñýfþ"ÿÄßðè"Û'UWH����IEND®B`‚IMAGE 678 ./arch/construct/Snow/s_church.x11 ‰PNG  ��� IHDR���@���@���XGlí���PLTE������‚B'¡¡¡¿¿¿Ú¥ àààÿ×�ÿÿÿ/õª=���tRNS�@æØf��6IDATx^­’1‹1…½åuŒ|¨XÅ–‡‹-¶\8!¦tãÞ…YT†ü x0ïß&s뤰dBžT¼½aÞ®þE´þ‹/òÚ‡ðú¥¼ô!W¬Ÿû eyê›àõ ß�È ÖÖ<, †< 0Oìn @-bl]€b�€ÐC‘^�®·| €0Fm�‚E,àFDE¡h;¢ëƒ¹é¾jLUÂp—`lD¸x0óÊ�ã#Ðíb_Ÿí¡hRŸDt‘„°O #W@ïƒÙ&áVDpÜ%h1€€ˆÈ?îáÍ€´Ôí!ÞË#0Ä`U!ž© »€EâᥠAabò¢â* RXªÙõ ;–òŒ ènÄõ“"4€Þ‰Âª"5€þA”Rš0U›þ�¸Aª²$Ú¢�¹ÙªºÀ.|.ÀtLMÞÛ¤²õ‚k{QP€²÷g|¶�pé’ uDpýïªnh�Ò;aó)Ï:˵þíCÀÛÒ%]¼Ö]Ä tn(T@Ü{_çYKž‹¯!Ùóé’SÊS Ä@(@¹jt‘íí‰r±Cu.å”¦ÍÆåô묫.¢G¹a³ßx‹À#ðC>g=ï?öT²Ï²ªDî2'JçG�ñ]NÞ>Þ±=V +‰î|zŸ póöX*  i{LÓþÛwJÓÉM«€'ˆ�/5àfË’P²%T@*È_@º¥Ü�ˆ�!“‡Ðª©Ë`õ?õAn}~ȇ6����IEND®B`‚IMAGE 495 ./arch/construct/Snow/s_citytower.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���?PLTE �ÿÿÿ¡¡¡���¿¿¿aaa@@@½½½ààà!!!{{{øøøÿ¥�ÿ×�îîîÔÔÔâââéééG$‚B'sç¸l���tRNS�@æØf��^IDATx^íÉnÄ çõx›%ùÿoM3Â;9”w­¢QÝ>bÿùC~Åòù?ŸO\ €ãûýJ�ç㧆<|ëû U8òè¼ú÷Î]ˆ§Bå¾—t|,<^ …Oh„žÇ"´vïÇÌÛçUèÿ€8™o‹ñµï‹S|­0H.ȱ{ž…z  8‚—9�ðûâ©°,&µa<ð3“]€4 X3oÜ&™3À¼2¨êQÌŒœ3‘"u|˜ÁJâ a,ó¼8O‚s`R™—E’j/¬ ±,Εºƒs6f�B dªI‘’òi‚Ù– Äûà œ¤M�ú„Ôèœ×¡IšP…š@)QI¨“!l ¬Ú%乌åÛ'%¡N¶£ÌkB %ajB�6.”„Î “MPàv&€Ê¡w$¯òn™ß>t?Þ e¡œÜ����IEND®B`‚IMAGE 945 ./arch/construct/Snow/s_guild.x11 ‰PNG  ��� IHDR���@���@���·ì���9PLTE������ÿÿÿ¡¡¡aaa¿¿¿ÿ×�½½½@@@ÿ¥� R-d3{{{Ú¥ G$�Í�ÿÿ�Áq8tñóâ���tRNS�@æØf��&IDATx^í•ërã0…}�]l'i»ïÿ°+ti:éÌþÜÓÆÇ•Ìg„P³ú/üNkü ê”õZ¦€—€ä»«âzè Àq4$ i(äFå“]ÿ ¬�À6ùÝ$#®�œ'†<¯—ºÆµà;€G×+ŠB #Æ. ?·Lœ3˜C!„qÊ Ð�ê‹&v° ýN[fY¯Õb¤þ%°`›*êñrØO*×1Sà‹ysVr@>@j�þr@rk�–€–VÞtõÛïcn©HÖõ`:F�^õ¤ š`€Ö%SÛª¥×€,¹î øüt®Ö*x¢EÄ®€µûÝFÝ.�±k ´p[cé¶@Sò ˆDâ^wN¤áë9vë�Ø£öÁ¡€ñ(KH#Ì™vä¶ £×ÖãLÚ¯]�Öxß@sôM¤ÈRw”Úäº]�‰à¶ ¸øo,¡k£˜ �ô8ß¹&�²HÝÌïsA·¡‘['‚@­«²žea좻@x®1Í”ääfÈw; ~Þª¡°G­A4ÀÏrˆ®N$t€4YZsr€Äë. ýôÝžF*€(Ǩ­Œ^ ±xsÃöXžÿé]9@b–Ü�-Õd>lÛë C¸’/>¥¡”©¡Ýº/iü¼mMžÖ , �`pSó:V.¢>ƒ‡f@ôǤæî·zu¡Ï� p˜ÌÜý6hë2x(�tYvÍÏËiG<R�–ؾG,NÓx‘Çå‡f€C…ý#âß:@I�ù¬‰EŠ0ÿ s*œê„:o~€’€jiUïøæ²XpüFØ:@fœ¿¶€,Bý˜5q?DÀAPÄ3TÂÌ̓zâÛ €ˆ1Þ;—ÖG"uÄg@f„wGñÏOõ€³B› m&Ì U á! Pç PѨhõ@u÷"<]p¿[¼ÔwÁ¶·3ß|X©æŒm¡Öמª Òâ›2­�a)bý%5á' ÑóZ�èD&�>åƒívûQß?AÔÍþcý$Ã6:IÇ&����IEND®B`‚IMAGE 428 ./arch/construct/town/s_house1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���-PLTEŸQ,-ŠV��c2�1�cDÙ¤���þÖ�þ¿Êÿÿÿ�Ì�±!!¿¿¿nÍ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ÷���ëIDAT(Ï]1ŽÅ D)s”Ä…›œg·Œ¾,íHœ)×HA³M**Îðm YýÅ(<1cL&K¯0„©}ì#•ßÈ×ÙÁký<²Ü«� ]hb¹8Ò�é^QH¸Pä�)ØWÏXÚ-B$j SÄER ¤vƒ€‚ÈšZ*z) ÞÍ‘ªÚY쳌¥Ðÿ Ü»$v<¢ø,žQ`5çTϬíhõ<qôÊa€ü/Çù£«ýx9°õkå0ÁÐ�M;ÈæÈ˜@›iæ·GÐÁõ8&p‡‚Ìd˜À#fSöó-ToÜåã4È©����IEND®B`‚IMAGE 787 ./arch/construct/Snow/s_inn.x11 ‰PNG  ��� IHDR���@��� ���•C޶���sRGB�®Îé���?PLTE.mo½½½���ÿÿÿµb1c1‡‡‡¥R)„B!BBBÿÖ�”””çççÞ¥!ÿ¥�ÿÿ�{{{B�BÆs9Æÿÿ�Î�Þw’Ú���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ®þ*"��@IDATHÇ­UÙ–ì   f1I÷,ÿÿ­ŠÝópçœËé6— 4Ëò‹•e_þjèe?O<ñŸ,¬OˆD€ Ë'±î¢ ©òÚ+hÏ`È)'îÛËŽ¼ ¡­&Ÿ«³ÁXøWÓPØ%!ø£5‚$E(¾¥ж‚9QƒK­+ ·…h¶yÜ Ä}!që¤Ò'sÐ`"RõaèP#À¾¦ñÓÛ¥‡¸ÕN“ e¼0‹ô<¹øN“«Ö ƒ3D€F0m̾”B[Þ’×Æë  „—t …è_eŒ*9LŽÛ[Ó¯Ö X&•|¡HÂSÑÞŠ&ŽÃ¨�%ا4"ž³ákUA–$¶¨†MGÔSÙ›»†®‹E@)·*PÏ»ôØÖ¢7'öóä¥àE ¯âI�)^ÆÇQp‚xÐ z3§&ÈQÂ^üÒ”xW0\õ#$aÙ•�%ê–«‘´Á‘Êñ4‚/¹LR‚ÔŒRŠèSèÓÌ÷øuÆ•È$7¶U†Z®ëJ« Ð/D"NcÎxÇ%ÀwoÛ¶®‚¸“-Ä _¨¬ï§«¸"=†„�Q<ÆÇãP èFŽdÜÈ\Hɰ’õL +£[Ð Ø[ÞþºZ(Û†Õ÷¡ ã}ß:H@T°ïRH¢:°™ßbâ${âøãÒsJ`I€õIë�ø/‰�¤àåf­JýÅ<yŽA{æ'ŸßÌ•8výžÐÞ*ýKyöùx»ª–ÿc?ƒH (ë¡����IEND®B`‚IMAGE 1345 ./arch/construct/Snow/s_lighthouse.x11 ‰PNG  ��� IHDR��� ���@���LP…œ�� PLTE`J=ïñîýÿü÷öíòñèäÞÝìãÜæåÜðêéíìãÉÆ·òôðôöóøúöåÝÕÛ×Ï©œŠwXI‚iVàßÖV>(îêÛ·ª¿¾µóëäɾ±øïèfJ@ÐŹÑÉÂÏ˼ÚÏÂÛÕÀ^B6»®œ¤›Ë¼·ÙÐÉÄ´¯ôîí¸µ¦´¬¥WG9dI4ÒοIJ¨×ÔÅhM1iO8ãØËQ#�N2)‹xi—uv‰ƒp“ƒsŒ‚ž}Ç»©ëîêR83­›‘®¥Ÿ±§šº¨‹Q;0U:0´³«^,èÝÐöèéS;:S=,X<-c<^IBK7+fH9ÉÈ¿èäÕÔɼ=úûñÉÁºÎűqXFtVQƒY*^\JD.BC&éâÍ2%1îá⻩Ÿo6dFB›tÿéù‚rôðá@' £•‹K70o9 dL;ÄÀ²TA$��³¢‡» ’ÜÓ¹N>1efSµ¨–ãÖ×V8Å£ª]K;µ®¡=-/Ä­§rm[º´ x[PG,1,?…eUmnZrM"‚/�UV8jQEB-lJA6#3.ZD6ÿóôúöç}|bz4�ƒl/|nM[;€4€XVH287i,�Á¸žI"�dMQ©xxIBBC9*p;Í¿£lW.B?CŠ”q= pBÖÆÁÜÅÁûõôý÷ö­•ŒXF>\:-‘á¢ÿ���tRNS�@æØf��åIDATx^íŽC¿íHG³wUŒC×¶móÙ¶m›mÛüޝ’ß½Ý'Éy=éIzMתÿ.î_ñ?Û¶]ý»{ ñx<-oñ[<<Ï_+¥¿'¦0 �n?EÖßÃÐõû®àá×<è¨u¬Ä�o]�3`lr÷¬Þò,ˆ Ú½ßCxÆš·pøÝò`ÍG\óÞ/þÚ×±d°9Ç˯<-òÝž¡|Î32eú™þ|{qç{šj†§Ÿ£uàæÿÀâ Ÿ‡ž÷kŽ-ƒ§�W.ûÚ³Eížoj âÇÁi8Òú§Ï�ð­oI$"ONÔÖFr#ÌJQp4Ìe¿½“Ø?7×7œØ?‚ùØ@QÐu†Ï$ÇëÏZûŽ´Îä^šïñï�€ó@ÒXÜ4s7\h¯(ˆEwqˆÊŒ%⬠qÀtôCŒmÜ©¯(O“œÂp›2Ñuú+ADm~{?¤óùs `"cz½``A&›E]]½œ=è C,#67‡cþÌˬ]sm…X:#†�¡ÐYóÛv\W2" (J w°¹p2%Š¿ËˆfÁ¼“¶A¥A¯M"ùÍp²½P•\ XE¢Çå²RË%@¡ò—ÿºP¥äÃ4¢Ñh¹{`Ç`OZ ½q¢ë•nº}gX)×^£®ézœ ®/¾Ø1K Äßµªzvú[Ÿ´U+éÙÕŒš—E×…wî­N" D•$Ãé[vvÆêD¡’yÒ¤óÂVĽÕIC •” ‡µÇŽ�±£ztQؼ¦«QyÏŠ3`'—BTVU¢ò/®àÓ±ˆ’$ ª •¢ôåçÎà¸t1 I’D…K³È9˜}”å© §’Ü[…®àôa¯\)€D~ˆcœDLQuRŠSú*…§9h&õ)Û[áóû}ï"ó%ùî!âOßì³iï!nåþ«¼ÕtníÆ‚ãö����IEND®B`‚IMAGE 741 ./arch/monster/elemental/Shadow/s_mastif.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ¶îúºîþºòþºîúºêö¶êú"""&&&***...222666>>>šššžžž––– ²êöŽŽŽ:::ºêúFFF²æòJJJnnnrrrvvv‚‚‚†††’’’¦Ö⢢¢ªªª®®®^^^bbb²âòšÊÖ~~~®ÞêžÊÖŠŠŠ®ÚæjjjNNNZZZžÎÞbjjBBBªÎÚ¶æò¶êö¶âî®âî®Þ榦¦RRRªÚæ®®²ºæò²²²²êú††Šzzzºâê¾æî¦Ú梢¦vz~²âê²âî¦ÆÎºâîºÚâ²Þê¦Öæ²æö¾îúVVV¢ÊÖ¶ÞêªÖâÎãÞ���tRNS�@æØf��…IDATx^Õ‘Urì0E-03{˜™ƒÌ yÿ‰`l¥j’¼þ=§o_•¤ÿxä²¢(åù7�é ù#¡ ùà_ïóæƒÞ5æPL~ä^9,øw‰ãN'I0ç_dˆNrNØšF‘Šÿª0í¤×Û.ccB“HÕ ƒ'ü…|X0[ŽU×uÃÄ<a8æ°C£U™– Ö.˜÷R %»�ãœÿ™°<›Qº,žýùäÅô°e9ŽûS+ȇrŠ·äíWªBX@’n˜6ǵí7Âi.è”—¼Jíü÷ÎHt8˜¬²ï oŸàÑx¯^ݨ� ËÆS¼Uo<ãBxaAhÚ.Fhg¼ÕhÞµÚéFGh¹�H)¨7f­å2Ï<¤Á46m¶ÚY×D‡ã\p=|C~{vÛ ýà騎Xb”*ÛämÓvý³'¸� WCš$-²Ðï†Ã˸¢Fš†ÝêuC²?¸ÆXÌÈýyèÈo~S¦'ŠÀšô±hð O7,œö¦€=����IEND®B`‚IMAGE 700 ./arch/monster/elemental/Shadow/s_mastif.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���öPLTEÿÿÿºîþºòþ&&&ºêöºîú ¶æò¶îú...222¶îþ666¶êúvvvŠŠŠ¢¢¢¾æî"""ºâî***²æòªÞî>>>²âî:::BBBJJJFFFRRRVVV^^^bbbZZZfffnnnrrr¾îúzzz~~~‚‚‚†††¶êöŽŽŽ’’’ššš–––žžžžÒÞ¦¦¦ªªª®Þê²êúªÚåNNNšÎÞ²êö®âîjjjºêò²Þê¦ÖâRVZ¢ÎÚžÒâ¶æî¦ÒÚžÎÚšžž®ÞîÂâìžÊÖ¾êöªª®®®®–ì‰���tRNS�@æØf��tIDATx^Õ“å–à FD]êîî¾îîûþ/³ ¤IzÚ>ÀÎ?r/ßÀp"üç’$õN’Žs]„BèÏC>Ìs�¹Ñ?Ä?ĨxÄg2½›BKQ‰|HÊ¢< ù)Eœæ …38fºO£pöâjµzZ½æèÞD@5- ßA;H¥ (`Ä/*‡ƒ”N‘Œaò#X\P…'3ŠiÛ˜ /A JóÐW#„dLÝÑu‡ORÝ €!9cÒÍE+¼W)€b¦].V*Õ}:Ó͔֪—õ† ÷ ÑcÛe f+þLRÄÀ¨V­7ÚÍN§ëÄ„}bØãz»ÕéöÜ*ìE¶e ç»îp4¾ö" H½¹í¹Ã±7EN\˜°ÆöÐuGÞt6îMŠ}{P¾˜/ã‚$òb¡oƒñtñî¯Ý×Л-–ëÍO|2B ”Yìě͗þæ©ÂŽýaß_ÃbÇ )x«÷u-þ�]Ì(qàDL¬����IEND®B`‚IMAGE 733 ./arch/monster/elemental/Shadow/s_mastif.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿºòþ¶îúºîúºîþRRRFFF>>>"""¶êö...¶êú¶îþZZZNNNjjj¢ÒÞfff666®®®ŽŽŽ***JJJ222žÎÚzzz–––~~~ºêö’’’VVVžžž&&&bbb :::^^^®ÞꊊŠnnnºæò‚‚‚rrr²æö¶æò²êö†††vvv²æò¦¦¦BBBºêúªÚê¾æò²âò¦Ö⪪ª6:>šÊÖ²²²¾âênrr¢¢¢¾êöÂÞærvzz‚‚¶¶¶²âî¦ÒÞ®âî¦ÊÖ®âò¢Òâ¶Þæ²Þꦦª¾âî¶âî¦ÖæÍŒ[���tRNS�@æØf��†IDATx^ՒŲÜ@ E­333Óc¦0ÃÿJd÷¸:×¼}´s£+«ZÊÿ\ŒµÛ/¯p QÁQN‰(~„o>š1M°Ìxsµü+!e¬Ñ¨ß·4!üdÚ ¯#ÔÒ´R<ãñ³üÓËzö¾ž"íZZIUíXXˆqå$9жªö@Lø&¶B*z5Œ.©Þ âÂÁZ¢×Š(ö:�^Â?Ÿ&ÎÕ¢ä 6{r¯beìÆf±ëæïÖŠ¬›½€á­åÇcÓ J*×BŽØ4ª¡þwÂï½ Ú>7ªz7:’g? 9pÓõ`2ÌeœÔbãÞP ƒInþtÒØ¤oàæÁ׃a†;w3øWÈ’JÍô}äo6+všRøs îøhnÞX‚×iözrϱ@IÍ4º“̪åQ§÷üãŒ_$¯XP¼¼vs«ÖŽ*×g·…Bøåz9Y©ò…Þ$B;¶h®Ã?(6©²¥ŒñÊ{G[»¤ŽËëu€ƒ�ÿ�i,){üÙ}����IEND®B`‚IMAGE 744 ./arch/monster/elemental/Shadow/s_mastif.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ¶îúºîþºòþºîúºêö²êö ¶êú"""&&&***222666>>>ššš–––žžž...ºêú¦Öâ:::šÊÖFFF²æòJJJnnnrrr‚‚‚†††’’’ŽŽŽ¢¢¢ªªª²âò®®®¶æò®Þê²âî®âî¶êöžÊÖZZZ^^^bbb®ÚæBBBvvvŠŠŠ~~~¦ÆÎNNN¾îú¦¦¦vz~jjj®®²bjjºâêžÎÞºâî¶âî²êú††ŠºÚâ®Þæ¶Þꢢ¦RRR²âê¦Öæzzz¾æî¦Úæ²æöVVV²ÞêªÚæªÎÚ¢ÊÖºæò²²²ªÖâ‰yî ���tRNS�@æØf��ˆIDATx^ÕÑU®ä0ÐÂŒÍÌü˜‡÷¿‘);‰ÓRw/`®òù¤nY‘þ—TE©ÈŸw™`ô}¸ 8MeÇ9ÁyÔí¸Èl IEšö‚ñ¦Ê]ˆ^.gT.ËÙË2u I¤Ò¾¬ê÷Õê€Bå…BmË4M=)ó*^†Ó¼ÉF ’cSgUQŠR‚¥\Pxl ŒÎ¶à‡´6†›´‰WŒ­¯žë:“‘àùYš#¿æ¹@¸Ài×Ày+%%Û‚ž Ì €ö÷¾½k5üf^×*Ú·û@Ž|âÂŒ Œ @¯:íkF(¥%ÇÂK¨½î§ãÎõÁ!Ô+ÙÞלœtO;m¤JyÞØ²ýA¯{¬²:ä@ LX¾ƒ°ÿ| ÿû‰ú^ £Ëazu¸ñy£ç|‰¥8¿™LFà ¬$É -#Š JÿŒ`Fد2¨aÊÀoQd gâœB‡q`ü¯¬B–¤ù€*óØË9����IEND®B`‚IMAGE 700 ./arch/monster/elemental/Shadow/s_mastif.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���öPLTEÿÿÿºîþ&&&¶îúºêöºîú ºòþ¶æò...222¶îþ666¶êúvvvŠŠŠ¢¢¢¾îú"""¾æî***ºâî²æò>>>²âî:::BBBJJJFFFRRRVVV^^^bbbZZZfffnnnrrrªÞîzzz~~~‚‚‚†††¶êöŽŽŽ’’’ššš–––žžžžÒÞ¦¦¦ªªªÂâì¾êö²êúºêò®ÞêNNN²êö®âîjjjªÚå¦Öâ²ÞêRVZžÒâšÎÞ®ÞîžÎÚšžž¶æî¢ÎÚžÊÖ¦ÒÚªª®®®®Ú²���tRNS�@æØf��tIDATx^Õ“eŽÃ0„c‡ÊÌ̼ÌÌ{ÿËì3(nÕö�;ÊŸ§ù4KÿEŠra)Êq¡‘|ÌWÁ§Êöàsõä„^F!¯ëšvÚí’I²ï …<c໌ý‰šSS4!išœÑ!§ÿ½ú\­^î³´Ldè’ˆ „щHtc:£ŽÆI‚ð=T6¥áyB”a½4Mc€›bcú²ìËNcl’yòÀðñÌnbœ4ô"H X¨V*ŲçØ6Æ„à@)äFýªZÆqèÄ{€¤¶š'”=XÊäÀ£�ün§Ól7êÕ2lœd¾/ Yƒ ×í´ÚuÖ¶1õåÒp= ƒ�sÉu={/@òÑ4ƒÞí )ì8@HžÏ¦á(è>@aø4a² ,ç Ï´w=ÖÑûb:¼Ñ‚¯©_ýÙ¬—‹Y8ü¢‡Ý,ô»‰–óYHûÊeâ"¤î<ŽuÈ/…ÙB`Ê Q •ûC3~Ø:)����IEND®B`‚IMAGE 730 ./arch/monster/elemental/Shadow/s_mastif.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿºòþ¶îúºîúºîþ...RRRFFF¢ÒÞ>>>¶êö666¶êú¶îþZZZNNNjjjfff®®®222–––***JJJ^^^žÎÚzzzºêö~~~"""’’’VVVžžž&&& bbb:::ŽŽŽ†††¦¦¦²êönnn¶æòºæòrrr‚‚‚¾êö®Þê¾æòŠŠŠ²æò¶¶¶vvv²æöºêúBBB²âò¦¦ª¾âª²âî¦ÒÞrvz¦ÖâÂÞæz‚‚¢¢¢ªÚênrr¶Þæ²Þê®âî6:>®âò¢ÒâšÊÖ¦ÊÖ²²²¾âê¶âî¦Ö榭N ���tRNS�@æØf��ƒIDATx^ÕÒŲã0P·ÀÌd†ÇÌ<ÌôÿŸ2íȪ¤âÉÛÏ]õU—¤ü79j·{�É['"tëy™½­çeŽÿ WUÇã !ßV`ÿô�02 WdM Ú@ؽ�]]!qձпØn~·›ïÏCl¼þ%:†Hô‘›WÉ.l˳_”hµa °Ê(æœ@?ÊE�çäÆsJk8¦–wx ά‰«/¾¦!éb‘ežÖ�µœéÔ¯ä‹ ð²>ÁŒë–ƒ®]žàM¢¾Y·nrÒÕ ðg$餙±åp@!Àg{öZ—vÓF×ê’Rœ½my<™Df¾6,?oµ7;cÞ3Š0t*5bo�:T{¶vS 7SÀR|’àš/îÞ <t’Fßr*„.Á£,˲‡Å­B烴;~ ,Áo �.~fü«Bg‡—IdZž@†3FwZá-»ÂÖ´% zóÏ[ü˜„ÀÁ[ývŽò/%Z*4+_«ñ����IEND®B`‚IMAGE 479 ./arch/ground/Mountain/s_moun_cave.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE����1�)ŒR9kJc1cB{{{œR)½½½Î„9ÿÿÿœñ]1��yIDATx^-ËAªÛ0ÆñOa0Á+¼(Y¥ðxë.r�Ù &dUhà¿Aèo×RÄ #tå×sÊŽ¡ßFèÇ ªS›õûíy[\T5ȧ:ßæÛo\5BSV\­èsUX ¢úAï5ê1ê*UÅ˃cÌájàç (gàµÁ  >hNŒã+:B]kfÆ‘ãüÁwþ[‹jMÜÕcÆÙæ=~#?£%¢ö3ž|?€Ý4ÃoÅËH Fg?:5@wSDß4 ÓéD°Å‚ü$ßz￞á�äÕWÛóù‹'÷E ê²ÞÝ¥m®ús/‚’/ª‹#‡¨RH:}0X1¤‰”÷®ú¬x|Õu+ª_Völ`éVìUËŠ ìýaðQKÒŽÑ´Exj@¢Ö#0ì‚$v*)¬S…€Axô "IÒãŠ@=ó[óH1 ¸÷؉pH—éåA@µAÿš‘׆Èmæ1fHñô ¶‰™"Éylëy²»Gè¥"\;H����IEND®B`‚IMAGE 648 ./arch/ground/Mountain/s_mountain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE'5-UP<€Z6<<Œww{„Œ„”˜©«yjµµµ½ÁÁáÐÓÞÞÞÚÿÿÿÞçÿÿÿ³’7Q��IDATxÚ’ ŽÄ0C PŸ,÷¿íš¡Óª©ŸF@ƒê ¡û{c6;lÎÄ>[Ôýæ½¼Gç¸&73ˆÁ àUÎ$ˆþ%ˆ¬7‰ej|f"&¯r @ˆtŽ=Ü~À¢¸½Æü»!Gœm;ÚùËÄ›ÞóÜÇ:Þ\½z,AÙ~6cÒ07ð°·8Ì)ÙoæßsèoüÀÓ†"þ"=„í¡WÚ³YÁ1‘æ‡ôpÚÝçë °7ÓI|#,ö?1³û9Ût]ã^�XÝ  7I¨¹¡$º*ÓÝänÀ,‚HV¾êÞ½(±¿¦áƒ%âÖ™‰lRVŠBn…B—ÿ)P-!—â7Í7Î=ó<>Rq‡=2d€•–ÝfƱågšßSeÕ7‡¼„lñÉd5ÒåAÏ…¡9ÝÙb•ô¢4Ö†{|Çw”雇«™€<7b}^>èñÞû-“ˆHû~ì9 b¢úíJ]§p'ÛH/¤t\¦†½9¬¡SN—Ù@O%xcÚ»ú*q°X£E âêÉ «Ü‘e±ŠwwxZìk²{¿ìx“칚޳+Óvꊔgvè\Ù<ݹ_¨½+QfÌEèþíʰ0é—½e»`_G½™H`W~LçupCé� ^f¦˜"[)r7C%DNÛoªŠøqüâkˆÿWx `C—3ë����IEND®B`‚IMAGE 604 ./arch/transport/s_ship.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTE������G$d3‚B' R-¿¿¿Í…?ààà >Ôn���tRNS�@æØf��ìIDATxÚí”®›0ƒq‚¼ÿ ˜ w R¥M“®ù©êrìºüèÿPá×ÿáøáøÛëÝØÖ/V!|±ìÛ1&€óF Ò¦ó²; —»“�SmZvs`¾ìî`®2èˆ8êÜ™kU¡êÜy~YçÎüŽ¢:wž?ÿª3ç±gP?8s(üàLUÚQ8q&�›®7ç1À’—›3—\ÿ#æ<ÈWЊºátÇ…ö²nÉ{6ÇêKT7^oް’çI(ª‹�Pòå˜P’à<¢.W  ÈyÀs§JC¨ÃS­uÇçv€Ú¶ã<˹.á ÀÊN �þ®Ò‰k‘ª îó#ÔÔ*O«Î=e/ â;AiUe½Mfwô »[ÙŒ�û@ÐëF‚�H3˜8Vj×4Ô‡�¬äE§ù H¥€Ä|°2fU¦M_š>K>>¬ïúÆ$ˆGõ –$ Êjì|auåüx ¡ p… ¼{Žx)׋T¡°‚@Ó æ-`×FHo ‚ð7A~J�ÔéBÐâPºø=@Û! ÷º³ªßÀ›à‡h‚ßr«ó…ÎXKYb[\�*Ç= ju¨ñN‚7á™–ýQ¿�%ý'ÅA����IEND®B`‚IMAGE 331 ./arch/construct/town/s_shop1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEçÆ÷���ÿÖ�Þ¥BBB½½½{{{cBŒ{Jµ„ÿÿÿÆÆÆ”„Zc1R1„ZœR)ÆŒ!0½ž���tRNS�@æØf���ÃIDATx^¥ÓÙŠÃ0Q×Õæ%ÛüÿϦ’ÑøŠaÊ÷A~òrƼaß}GAžtœ€@Ú]yÿðø P|9§°]Aü 8 &ÀÕ�ៀЀ¯ƒ5 0¯^Àžþé`f¥˜*ˆ¬ÆC{aCËÏfj<:XÊ$–B ˜N °I,5Ü~ƒ€þ>¦Hßm¿« sÊh© RŠÜêÞAåu×{¢Â®�è¨áÖ¾pÇzW ]¹ýó_ýmo×(ù jÇg����IEND®B`‚IMAGE 279 ./arch/construct/town/s_shop2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEçÆ÷���ÿÖ�c1œR)Þ¥”„ZBBB½½½{{{JBBÿÿÿŒ{JÆÆÆ÷ûä���tRNS�@æØf���›IDATxÚ½Kà ûšlAîÝO² ü²êlgdŒ?¯Á˜Ê‡ž[ë@Ü0AB‡†}`¾ YªÂÀü#ð¯óÓD?ýx¬ƒ¸ <â.¸6AÜå›=d?¦ ¾#ìÅ;�«�^ij@‚ž½Š( t䮸3ì ø@†ŠwϠ฀ íî|á˜ídzÄñž¥!Ú…­ ����IEND®B`‚IMAGE 610 ./arch/construct/tower/s_tower1.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���]PLTE������BBB{{{ŒŒŒµµµRRRcccsss999„„„­­­JJJ½½½ZZZ!!!”””œœœ¥¥¥kkk)))ÆÆÆÎÎΜR)c1111ÿÿÿJBB)Ž%ó���tRNS�@æØf��³IDATx^Ý’Çv!Õ‰&§÷$ÿÿg8G^5òÚf{‹êî|üóà/yÎ?à­û€8¹0�²!^F�ÀÓÎk"�|g³‡Ed�ïl]ൔՂº^»ÏËV.á¨N˜,1¯rÝ—:r½_×}_«PÍ×rßw\¤ RˆJ`ò¦ V¶)R¹®’4�¢?ÀØMŠðn5àD<bt´1Zî ºìôó¡ ²£Òæô|öˆDAJÙtà8Q,âÔ/€Û�1¨¹NÈx‘¤ 0˜¹­(Eè—*°ÆÌÔ¬·”Ípf‘­ ô_™™Í‘TWœ+Qåú,¼«€Çó4|}.ÌÊðå!6ˮގøå=(ùéýÔ[Bµ…8·GLÃ7ð›€Y’ÚÂyvˆ„<¨ÑwA)š�¾k¡Qèú„¬ °Õˆ9…dk®½ÆŠ.¨D«{:�aTcϽ‡?5j‚ˆqBdæ "DÔkÔ7h±´C“ DDŠ©Ñ!N_Ï „P�ãó<‘Z ªáÕr™�DxÚ„>@Eš�`t Ôøÿ=¿Iõ`ç/}X����IEND®B`‚IMAGE 719 ./arch/construct/tower/s_tower2.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���¢PLTE���BBB���999{{{µµµÆœ�{c�ÿÎ!)))„„„”s�¥„�­­­JJJ½”�½½½kR�Μ�ç­�ÿÎsssÿÖ1ÿÖBZZZ­„�œR)ŒŒŒ!!!B!!ÿÆ�œ{�Ö¥�c1¥¥¥„k�cJ�µŒ�Œs�cccï½�RRRJ9{Z�JBB1119)RB�”””ÿÿ­ÿÿÎ}=���tRNS�@æØf��ÛIDATx^Ý“ÇvÝ0  °«÷®×«kêÿÿZ@½ãä¬nïh�ñ>ýóñ/yY~Ià[ò€òœäë�bùv5Õ€øýrÞ›z7ò�^^K»Ï«¦©V€×2NrS;Wß]ÏoÏ®kŒd'œã«1uÓõÝ5”ô= º¾ïj)¯]ß÷nÅÐxÁ.—LŽçU½#ÀVp÷Šë:·ã�”"D{{n\cö1�¡”ÉX]ß,—‹h³¶Åå<±‚¬UQšžZ>ß�¥"]'ø0¨(šµnÙ?  ~€Öú8 Ü ÈT4ÿÔ)+¸ÄvëWÔ…Vï¬ ¶v« ã[*m’Æ6<½³�•@EÚ0 ]qC„1¦ê~9³gA`M÷»2†ytø!�Zà-{"¤æ>„@&„¿¨€ ‰éê^0Ï:e[‚E@-Eœ�·´Â"( N€Ÿ5êYkµV#´Ë„Œ@D–Fér(혃_“1ŽÆ€¯‘5ø)5Œá$À�@’!J©¥F~kÔÀ@I”ª(4{ %Óµ@�Ó4Iåk`€GŸëa@‰“Ÿ° à (äÏ:(þÏü!áU—Íó����IEND®B`‚IMAGE 492 ./arch/construct/tower/s_tower2_top.x11 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���“PLTE������BBBkR�{c�{{{”s�µµµ½”�Æœ�ç­�ÿÎÿÎ!ÿÖ1¥„�sssÿÖBJJJcJ�)))Μ�„„„ÿÆ�999¥¥¥­­­Œs�œ{�½½½B!!„k�­„�{Z�Ö¥�ŒŒŒµŒ�RRRJ9JBB!!!ï½�”””111cccZZZ9)RB�hi)"���tRNS�@æØf��IDATx^Õ‘GvÃ0  ö^ÔåÚKzîºP^d9ë`ûƒÏÇÅ¿€?rJŸð½ŠO�»¨æ�z8ëv�øªwkmú=@}¥l­ZkÛàJETÚ8gV€Ö›öõñÅy«za'ÎZë³?¢Zö‹Àçì ìKn\ÎÙÍbì$èU@r�¡ZÓÀiTð>)zç½ë1�ÂÐ�[½XgõZ`À!Mqßž ˇ IUJð˜*¨ï–Ë1áù} „óNn6#¼òÉ»î$eB_P.L¤”‚t;Šw§W¹Dµ`Û*M $¿¡ÁØ–?€ ÿ%Ê¢"÷Òp¼¡�еfMÕߊ?DS+ö_Ð����IEND®B`‚IMAGE 1108 ./arch/ground/Winter/s_tree_5.x11 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ûPLTE'Q&æèåêìéçðëîðííïëéëèäîéØâÝëîêãåáâìçëñææôç„›ïñîêôïðòïñóðèêçáäàÚéÜe`ßéäàêåãêß7Ÿ3áëæßáÞáðã{’xV°Xâñä_²aãòåH#w¬yj¸n¡Ž]ÚXfÜaÙÛ×íôéÝßÜc3ÙèÛßíáFØDàïâa´céóîfŸf£Q,nrÚäßåøã}”zX¯Q:…9ÝëÞStSVwV‚›‡ÜïÚ%/„‰èïääëà%O%HIG/²)ãíèæí↩†K©Dw¼sçîãÀ~H©KZÛ`^ÛY’ºBgAâöáŠÄ‰¤¶¢pÞk’È”†à„“ᔺȼÕ×ÔJ«MÚÜÙÛÝÚ[]Z”ÆŒ<z=ª¸¬uß{•Ë—–̘€à}OpP‡á…„âŒB»C8ƒ7•ä—–÷’±è²ÑÓТ÷¡ÓÕÒÔÖÓ >ØÚÖi¢i��€—}X²ZÛâ×Y³[#™#ÝäÙÛåàDcEIHd´]1[/6Õ7…žŠ3ÖAUVTl¶gx­z@“dy®{\Ã[åìák¹oM‘Ln¹i<¤7m»q‡ª‡ßòÞ/1.±…EÚN^‘a–¨•®ŸˆRÙN—©–PÚWSÚO>¨Bl‰n_’b•³—F¨J„ÃorChB7u9pŽsj™Òˆ���tRNS�@æØf��IDATx^’C³$a�ûSÛ=¶gÛ¶¹¶mÛ¶ý3w=ofÞaóšYQE•öS›aµ qíqÄ�ì.ï“€ÿèþXNö9h\‰ß(ãwûÖ<óc+Öö’úXÒÀ–‹¢Ñ÷¥üјaÌÚÙ`úϲ%ü²%f‡°mÈ5Ä&â·Šu«Ïî˜4oëèp±ý*HŸðÀ$o­íC…¾×:„ê,M¿¸öÆ+©jWáz­çª³_W¡ùàQÜ9³C2ûk¶«û›Zªc4†`F¬Ât…· Xåÿd›‡ºÛ�"V4MJŒçLþ² p Â+¢qòMNÁš®îÊç_›‚ã¿ì´œ¦C¹ŸDL¹#õ¦ §…F@–‰¢a4ù|p°öë}Qôš‚ì;Ë7D¿50V0A(åøT¯Bó½ÓLWƒqh‰ÃЦ+L"¾‡YÈ›‚uÉ Á/éX!¶;Œ‘iS0Å`ÈmÓþMcD#ŽpÊÈœÕ\wsNà c ÷]«:˜§ÌܶO,2‡‡˜Üœ¤køzX¼dƒ z<‘Sw…HDձР¿údoO£áï~ö‰ˆzE•0E¿> Qt¨¹î|(ô¬ÒÿÀIm¤çJ… *Ï6ú+Hõ}}T™LM3àÛ?OKÀ¾{T1§35™ÌòÔ—ë)Ušp8LýíƒW&cƒ“ß����IEND®B`‚IMAGE 1377 ./arch/ground/Winter/s_tree_5_christmas.x11 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÓPLTEBr>�ùû�™à‘ò­åÅàá±îïêdh˜žàå’â—Œò—‘µ·Ú®¾Ø¿Å›µ¾æ¸¿áŠç­Þ¼¯ýÕ�“ï­:¼DâÖ–ÔÒÖâÚ‘ëô�ÛäŽêâŒ�øCòû�ÜâÍ×àèëÝÐäî’åäÛéê±ëñîí©ãìÓÝòÜf/H#ÓÈÕê׉ãå’ÿ@eÔb¥²n§ºR\i¢Gw¤è—씇ð—oƒÚ@E|œÄÆß¨¢k€4F”f»¶á/²)g•4K©Dº¾îŽçžŸz^àܦõÑ”äªè¹°ì»©š:ù´ç¿~}ÏÖÁp“ÙÕ³{”qz«2S·^ÚÑÐM×bx«L™™YèÜŽÖØÕŠ‹Ýr¬rÕâµæÛ­§šsçîãàÜË� ÿŒ¦‚B×Hy1íáªØä×Û…‹:l>”šéŸ¶?ØÐÉ+\éè׎Â6Ùïááëæhr/š¾;†dI‡¦â¹L™( BNC=“0 œŸÈZÕ[*~\wŒÿ��;ƒ¡ìÜN†xd{˜¦¢ÀYU3½˜¸³²P\ßL„º¦>’“z€Sª¹mK‘|–ÄjtBKŠ­"gv떆ƣ„Jsδ„Ð~€v”¨Åh?m¯Á‡åª€¤Ù8­qE½jS½»¿»j_UU^·º×ª¿áoî†È½žà®³2G ²|%é»kªÞ_†”/¾Ä¹y•OU”·ê¼ŒT§X@Z“hž_wŠ¢—ˆYT¿39qY��½á•ËÏÙ˜ôªpdëÒˆ³}T¦ƒcâ׉ÖÓÄ[²6L¯wlœ´Š6ÍÖ×b­^‰¢2v¡n“MA|›ƒwa$§˜!ìÕ«§I*”™dYiXãæ†KÈ?–R-¸òÂmcj>”œsïä‡Ôáâââ¸<Ö/Üßßy¤ŸŸ—~×ãÝ%ßQ‘¯-àò‡mÁ=Œ•Öìðˆ 6VsY€(àìÙ*•(­¢J™ªXEwކ³n•–驤kÂɯ ���tRNS�@æØf��<IDAT8Ëc`ÀØóðyyö8<ÒñÊÂcÔqË»X™‘iÇ%íÏôü¡ùmò«$‚cÍÎÊûb•ž¥#ÎËâw SDòp6ùˆ¹âº›#9b$ý™°È[™îS’â7ºpÚZQÿP5†täó°=.Ó¥ýµOÖî.wˆ6G—gÈz-"“ÈÇ)°4­%}ãS9%TùkÒlÎf+võ3¾ßÙ¸APYEw5ªïKeš0q;ÉN)¾ËaÁÈroo,3Šó³ÖÚ\ž%ä-ÝËWÏ›ÆÄÅ‹¢ ¸æÉ6ûl>yêJrª©¬nüž¡÷‘ä5‹´™½8 ¥ø9›N©©ª¨‹Ê†ˆ]JBRð¬@rž‘ ÛþfFæ«2*qqWD-5Ìèr•ŒðqžØÊ¹PM¤íz"‡qBF*’ÆiâêŠó™„¼ÙÂ×ñ³>°dv¬B$[ù7J*ÂÜïdwi(ò0q'é…Šß î¼4”RÍQfu›ÄÎîÁc ïÄÏíŽlEºFÎ-é™ìììœlJ))2.&LžH ’EYù˜yóóX3VʩʸŠws…"‡“žž…×ZÖŬ‚,‚l³Õb–TvH(£DE2kOç"!YÑ(Žîs6+p2²( &ûв›ÚÞ!buK¸™ú²Xl0R[—pÐÁGr…Â\ç­ÂÌWËJ™xÎæær¼õË×°³ÃLš/¶zèˆ\t`Z/fƒ%Án×<§¹EÇúUö„lì@KK‹��¾i˜AUðK&����IEND®B`‚IMAGE 195 ./arch/food/s_weasel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��ÿÒi���WHà���tRNS�@æØf���eIDATxÚÕ‘ÁÀ B)üÿ?o&%١岓Oà£*®S}¶RböË^A¯¶Ž³ JÓyÓ7ßý"…]:šÛÏ!Ð|ûœ ®ßîX.ˆ’æ/*ªÈo}*ûJ|A ªù?�¸Yn>7M����IEND®B`‚IMAGE 1268 ./arch/monster/elemental/Shadow/s_wyvern.x31 ‰PNG  ��� IHDR���@��� ���•C޶��RPLTE������  !!!"""###$$$%%%&&&'''((()))***,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª¬¬¬­­­®®®¯¯¯°°°±±±²²²´´´µµµ¶¶¶···¹¹¹ººººñÿ»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÔÔÔ~´ú¨���tRNS�@æØf���bKGDÿ-Þ��CIDATHÇ•»®Ô0†=qnÛ€·ò´ˆ‚QÒð^DAGM‡hð�ˆŠ‰Š!¡¸áA(’‰ø; 3¶ÙݳdÏfãd7Ž¢ÿ›fØ„!Ù’5x#Ï``.ͦ:ØE˜80°L“æ¿Bæ 0ݯ8:Í`„ûç‹ßDõúFÀ!ácüåæÃößlÈ0£â×0ôÞ{ç¼ëhô=žøg7�òv¨Åû¿,‹<C@G�$ø.2èü³j È;©�ð6A${VÕUU9†�ç[2á}—ŽþçP¾£É]ÒgeüÞ=)ëªFBÉy6 ]GOÌÆýH ¤H–ïé³¼à%¯q”eÁ36P ¿6L¾¯–$l¦}ŸóœEõ”úTÒ¶4¬k¿Å¹½${”£ž�‹Cž…*b$ö¨m­5Ùƒ¯ã�B</€âê tÚ@ÉÇàÆó0,Žq@là‡*d€5ú.T�ƒcxm´6O×=‡ñõ÷±.C 8@hºo]”+<Ì—æT@Z;”öÍcüƒßbo”Rú3Û™ÂIÊêpÓ·Å‚½PúÓ$@`\ ºPA£­R7ѺŒÂ$�".¸ø¨X�u]¬Ì‰©;’dœ·–keÔ9›ª<è[eôµ9Ûº¼ˆ;6Ê\õa‘ç°ì—ÑGó>mò¬w{¨Äèóý€…³¨7;ô{2§wؘöÊL@ÚrÇ?í4þô”:¡çà����IEND®B`‚IMAGE 1288 ./arch/monster/elemental/Shadow/s_wyvern.x32 ‰PNG  ��� IHDR���@��� ���•C޶��LPLTE������  """###$$$%%%&&&'''((()))***+++,,,---...000111222333444555666777888:::;;;<<<===>>>???AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllnnnooopppqqqrrrssstttuuuwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±´´´µµµ¶¶¶···¹¹¹ººººñÿ»»»¼¼¼¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÇÇÇÈÈÈÉÉÉÊÊÊÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕ.TP���tRNS�@æØf���bKGDÿ-Þ��]IDATHÇ¥”»nÔ@†Ï™«Wd%²Pò¼�y'B”y�"Dƒ’ ÑÑ":H³ó.t<%âËÜÌ;ë˜e½^X{%{­ù¿ùÏm�¦/ƒˆö¹Z‚ÙO¿Ÿ‰} ×úÿÃô„ &Ä.„ãÕË2ïˆ�ùî�³¦7-°gा—ÃrÍ$nÛz-€NöÇße.ÆÅï• ‹ðØ;ë½ Þ‡Ãñ.I4ðZki)96‘ÄÂ9AzºüíH”z;Àœ'y–i% x§¬sdîàBˆXßdUl0ž)=K�rÀ !K�G¼¯Èއ`๔bFûÏÈ€N€˜bÐŽòÐ2*çÛÿ]F§|!¤<ÔYbP‚-À%5Aœ%/ÖÚ¯«*÷g,ã3!Õ‰)¥¤`�”º¤õtK+8ÃWð`ÕH¢W?E¼Å´˜)¥æ)‡š�ä�RIì¬t‚€ ÀÛ›æÀ®æ'È$²9;àíçϤ×JrŽ5(‹­ûÚÖUUVÕYN¢|•DsB†B"¾ëµ]h%•›&Ä´·åi÷dç ÄæIÇù8üÚÇ5§’'MéêÚVUõàSñ½º�Ôe÷’´ô›ÊPØÖ}Y|øV}Y 6m}™o›E vsŠáˆV›7Í`Ë§æ™ ÇèGÝÓ4Óêüeü§‰5,‚% ѵ0žHSй×P¯àW]åƒ v'ñ õð&ý”³,üøQ—÷7jÊ ÜsëàîX¡·;0*á­«G‹Å¶rëêý²_2y¬wc1Þ-¿¹Bq¦½Ç$����IEND®B`‚IMAGE 1264 ./arch/monster/elemental/Shadow/s_wyvern.x71 ‰PNG  ��� IHDR���@��� ���•C޶��RPLTE������  !!!"""###$$$%%%&&&'''((()))***,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª¬¬¬­­­®®®¯¯¯°°°±±±²²²´´´µµµ¶¶¶···¹¹¹ººººñÿ»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÔÔÔ~´ú¨���tRNS�@æØf���bKGDÿ-Þ��?IDATHÇ•=¯Ó0…íØŽ?@pÅ‚ÄÂŒü–THˆ ‰ ñ`�± 6f6DóX beäK–&Ns^7·M.¶qÚ4Usžœ÷¼¶ËÙÄ(ñ^°%+ØîÁ'õ‹ô¹œ Øèg:8Lÿ d½~Ï ¶�(!(›_r°~î2]oû:(G¢ñ—=|`º°AÅ¡€“ƒ€Å¾�-2 œ %•’Rf<Þž„”é\PÇ„SÒµZHÒ �èÚÆßAH|=ÒÕëb�8›IÑ’Ÿƒ"2CÛÔu]Õ‚Ä7cŒ,Ø+Þ›åœdZ­_4¤œw!x諺òpãÐu±#ÂKÒÝàÛ x>©r®åTg]h¼¯0`Ǧíˆ_ô%•Ç�8¸+ÓH”uYP‰à›&´!<2�\|Æ­sPd‚ ʰkS+€Ð>õd  –?5F›Þ†LX¨VñÞß?ÑR>èÌCc­±0)Ì r€ R õµ‰±,.ëp$„‚™šcH!øêêäœdpÙ:çn±7°‘ÃDW©„ˆäûç”�®Xw•€X bšˆ¬ûýßå0�,鯒½uNÃåˆ9Í¿îZL£ )]½wº‰iÉ¿‡oªïœqö(h-Õ÷Ý[ÊÔ¶þÁ§OgˆáG1ïå£qæˆ)Xø6ÇòÙš3 )üœ�­Œ’¿Šy�°,”V«Ù€O¹1´²Ûb ß4ÙÎ>þÑÙéƒô’²����IEND®B`‚IMAGE 1293 ./arch/monster/elemental/Shadow/s_wyvern.x72 ‰PNG  ��� IHDR���@��� ���•C޶��LPLTE������  """###$$$%%%&&&'''((()))***+++,,,---...000111222333444555666777888:::;;;<<<===>>>???AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllnnnooopppqqqrrrssstttuuuwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±´´´µµµ¶¶¶···¹¹¹ººººñÿ»»»¼¼¼¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÇÇÇÈÈÈÉÉÉÊÊÊÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕ.TP���tRNS�@æØf���bKGDÿ-Þ��bIDATHÇ¥•=o1ÇŸ}¶ï®”ÒŠ‰…ÁÆw °¡~$–– Ì00"ÔÜ'`CbC |�$ÔÒÔBlß‹y'mœ&é¥éE§ÜIþÿüÞ| æ\å=€~:/6G êç�h{¸„ƒ èg‚ýK8(OäЇ J­‹PMi2.ä1Dˆ_»M°h¿ ˜xñà#gp' ‚§BH¼yîÛڹ͹ P›‚ã%„HS$…oªÊkí“™å¬à 竨Æ_JúTð$÷Mí¬1Æ:»Ý;p…| mÓöÁ�¬hƒcÖ™íé@F€>%~ƒŒ_ jAÛS ps3@êªzyÁà´Ž7¤DÞ’öG}�ämB°c«ª>hÞL ظo>‡gR)ÄH!ÉBŠÙ„•¶®œ£³ïªz¯1íÛ(’1€JþJk¥Z@Á²àÀ‘ÜÚ_ιÝú_û×ûw' v: =(_h!Bªa˜Ò„)ß4Æ`Íݰp«9nZ_µ~'ô›˜ã×Y–‘ŠspÆ4–±’ãn¤„mzïjßâÓN/žÆ-½ž?�ø¨µÆ\¤…�ÊMÕŽ ¡¦Ç÷,:îèG�ÈÆ!s*‚ÜŸÓÂåðï~ ¸­ãâòSž#@¥V!9è˜Æ2ÜzV—_ò,S:]¡–Þíçéé3ô:hÆŸ‹"[_³<SW ÀB².Âìcý[°�«\ÀÞ2� ç{¦ÖˆÐòŽ4Îý´ÁoMÝðã¥�Ä8Ä¡5O\oIÀ-%&–u0ìµÎïÂ-sî}"Ï&¡����IEND®B`‚IMAGE 180 ./arch/weapon/sword/sabre.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà���@@@d3­ Kž���tRNS�@æØf���PIDATxÚÕÓ1À0ÀÀ‡ÿ¹QQÇš)¬g)aà:~èœÆƒ™ßÁÌ+˜xpžÓùB}ü ñ*>·B÷{_O/Ȭ¼þaþ_@¢§€œÈ6—¡K&¾-����IEND®B`‚IMAGE 277 ./arch/misc/Container/sack.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$Í…? R-���ï§_d3‚B'iñ޼���tRNS�@æØf���¨IDATxÚÍ‘IÃ0 F”ùÿ×•ß T× ³¼~t$÷ÜÌÈ-—î|XwÑÄû À ôÉ4€câ¡0$’ÆÆ’§aæwËGp9ÜŽ£,>qH$#ù4ÚBœ>Âä‹p-ȲP…µ`Ú’›í ¯¯}¬|‡¾P…²p¶y‚Ÿgš¡‘|=ao¨ðjŠrñîý»{¾óð†¤àå����IEND®B`‚IMAGE 292 ./arch/monster/humanoid/Human/sage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE��€aaaÁq8àààÍ…? R-���ï§_¡¡¡d3¿¿¿òæ+H���tRNS�@æØf���®IDATxÚÍ‘Aƒ@Xp‰ÿÿof*šC‚X•SF/n7£…㧘­;¾:c’ÏFØ'³·y hS^îK3kþŽH–\„4Sµ€…J"•°©�°ü¢gJ‚ð¡âRjÁ 'á*R X¿aÞ#Ðà>ô³ Àù™âÉ1ð%Äxí7¦«N®§ððr‘¯b9…º@ZA™ƒgU�ª7o�§S0a„0ÌÜUÂÑ%"Æ¿å 6îË÷F����IEND®B`‚IMAGE 244 ./arch/monster/humanoid/Human/sage.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���d3aaa R-Áq8Í…?¡¡¡ï§_¿¿¿ààà��€ËRƒ���tRNS�@æØf���~IDATxÚÍÏ1€ DQ4–xÿûº¢m–mLAóß(oÆ•G¤ø%ò�…;0BõZ{+ ú¬û$ ôÎ#f­ñ‚|Ÿ@b;€¤Ï+¬8LÿÁRPo°µ¤/@eÿÊÓsàzAcQ œA£Ð€Âð£90Xñ7[¿Ü����IEND®B`‚IMAGE 320 ./arch/monster/humanoid/Human/sage.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaÁq8àààÍ…? R-���ï§_��€d3¿¿¿Æ[#���tRNS�@æØf���ÇIDATxÚ½‘Ñ Ã0EÕm¶üÿ÷îÞÀ´6ƒ=ì¦Pê9ÑÊOqßøØ ¾æ¬ÁS6BGnØÑ°¢÷9Uk¾>Ì´äf¢Gk•�lT­„Ee¾*µF§ V î¨d`B-àöû#"¤$8i‘.B®Z&'È8ÏX£ß‚\^4yB@ÊfЧxÂ{ ˜Åok»±þ5ZðáBX ‹» ãîg!žžŸb¦‡lÃ_ñ×¼�à,xÿ�wŒ����IEND®B`‚IMAGE 239 ./arch/monster/humanoid/Human/sage.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���d3aaa R-Áq8Í…?¡¡¡ï§_¿¿¿ààà��€ËRƒ���tRNS�@æØf���yIDATxÚÍÁ€ C±cPõÿÿ×±³”D.6!Þ£ ʇ¾à¼®SÉ•p®.‰º‚“E ' % ÖÞwH‰#òôX£b>œYk³‚üB)¯qš~„­„£å$»BÝ¼ÏøZˆ˜Å®„’©Ü¥àžÂ¿ò�aÌ®Î����IEND®B`‚IMAGE 241 ./arch/weapon/misc/sai_1.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ªIDATHÇݔـ0D)ŠÒJ*I-TŠæð : aFGá—·‹�x/"$/NÅ9'iŽxä”%´A'8ib/`ÇŨÅs™ 'ù£Œxpàµ<ùð¶kãø¹{,éÀéÞ8@xøµD[” ÜëÝÑà;‰®ù²À ¼�îg‘Sÿˆ×YfA­Eà\ˆ,gAúûSaä­ ¾ÀȃOxu9{«Àø±F“߯bÔøK zqF����IEND®B`‚IMAGE 239 ./arch/weapon/misc/sai_2.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���¨IDATHÇÝÔÛ €0P†ê�®Â$̤Õ>ŒRi„òc„ø¡I·µ ^ø?äÚÊ”Q!ìÉ2+û2< vePˆ²¼_!<_H!ʳá‚úý"Ñ·¹…ÀÚÓ‰ØRpŒ`A ¶£á=ÃEÜç^ˆmzàBîk9-ÃÛ¬- û𞀇¹£ï—Ó¶¯œ{j—Ÿ8ßÞõ-ü)`üÙ.¥Îð—ÚWøKÊÑë'����IEND®B`‚IMAGE 299 ./arch/monster/humanoid/Human/sailor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VÁq8G$Í…? R-��¼���ï§_��€d3‚B'4ò<���tRNS�@æØf���¸IDATxÚ½Q Ã0 C­Ú©²ÜÿÀSÖÐÁl2ö3Qjˆž$û]­÷ÞÚÿ ÑH¶Ý;{ß�¹ˆ°Zñˆg�5ó€DœÊÄ�å;9úò�¸Ó1óH�äH®C$�xÙ¡´.# Àb‰æŽ”×&¹óÏ’°SÙ)¡žfâ«`ìCz¸ìq‰¸ó:eÃ*°ê‚uK`ùV6ÜÁMÃý<F]pÄ»ªòÏÃv€ü#³u‰¨è¿ê ‘£’!ïÈ�����IEND®B`‚IMAGE 157 ./arch/inorganic/salt.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���BIDATÓc` …1$ Œ¨P(#-"ĸlZ�Dí¬™!µ™K!Š"£fN3B#WBÔ°Š.…Äš 3:„.�� 7 6Å(ü����IEND®B`‚IMAGE 248 ./arch/armour/boots/sandals.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,c2Í…?�1�ùqcD���±!!ïå‹¿¿¿a´uð���tRNS�@æØf���‚IDATxÚíA Ã0 »¥Ú:ÿÿoSÇ!µÁ9·Ð„tû󵀯Î6’/TÁž8Öƒ?…ˆ„î.Áâ&D”’=¤Ÿ‹m$=V©PÁ˜Œc…ˆ�²Ù§@K¯!\÷ì>fk£Ü·Ñ;í–CÊÙ@gz¢(ÙSŽòò7 _{_@z����IEND®B`‚IMAGE 172 ./arch/monster/misc/sandy.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���TIDATÁ± ƒ0�À=Ä…‘hÒ1F*ä„!^ †(„Qr��è( Zì#¦ ãL�X  ÎÀ³$Çü>7ÛÕø¾«¾f¥ƒ–��þ,š /¦~����IEND®B`‚IMAGE 144 ./arch/monster/misc/sandy.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���8IDATÁA� �°Éñð‰ ˆB4¢»��7aÁ`�Ä#��}! ÐÀ`À,d�Àç­+2wó@����IEND®B`‚IMAGE 153 ./arch/monster/misc/sandy.113 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���AIDATÁÁ€0�°È¡ÇÓnÐGa4FqT���$ hœ‡«õ"1�lœÚHÀ DS Á�z �Àwö®¬¹ê����IEND®B`‚IMAGE 164 ./arch/monster/misc/sandy.114 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���LIDATÁ± € �ÀÓ !VÒRQ0„%ƒX8ÊÇÉÅQ¼��@‚�#³¼Î­²�£t$Àö¤`VôŒ»Mö+˜ ��üS£åÌP ����IEND®B`‚IMAGE 173 ./arch/monster/misc/sandy.115 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE4V R-E”j¤���tRNS�@æØf���UIDATÁ± EP�Ðóå¥ZC!jDTw … 6¸õŸÊ*6q��� $L ¿çĶ ¿©€S;¢�êIŽËŒk†mPu‘tH(��àÍ’ ï§Ò‚R����IEND®B`‚IMAGE 245 ./arch/jewel/sapphire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��¼ÿhà��€��ÿ-SÎV���tRNS�@æØf���‘IDATxÚÕA Ä0 ÄVõÿ//7I!¾ô²ìÜÌ'òç¿b@¨6}d�éúô�=`¨Ýë\ƒFÂhú P¯B9L%�N’kÚ}¹û$bŸ ™SÀp¬+V±€»æ‚z0ûù ŒÀJâ©¡Œm¨ËÓJÞ|jJs³²ø°<8#-ŽQ2Öüó|L Ð0ÐóB����IEND®B`‚IMAGE 268 ./arch/jewel/sapphire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��¼ÿhà��€�îî��ÿb(×z���tRNS�@æØf���¥IDATxÚÕ’AÂ0 ™ÄìÿŸÌ:2¡E5.ˆ©zˆ<¶âmoÿ…B¦©ÇM ÓO/`ÆGAR'Ø�\¿ŒP ººj‰¯ vØ™\¤DˆÐ!ª®e•¨9 ÒP A’‰è%°R^;æá]à<ç '²/"pC {‰ä´˜fÀœ~ õÙ˜¢Ï,à>Q#°ÞÑ ãº 6 êÊ×H˜Ýÿ{×´0£Éƒ����IEND®B`‚IMAGE 291 ./arch/jewel/sapphire_exceptional.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE�����Œ��Î��ÿ���ÿÿÿ.×~���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  áçh²���}IDAT(ÏÍŽÑ Ã -±@î6Ê�Æ J,@*ö_%_wƒ¼¿;,=k>çõŠìsÖ Rõéú>w üͲEÒ̆ ª õX˜dGÝ" )Ölàâ%ÔYK['6ˆú H؆zßo©qõ¶*@i! OÖ™zïüˆÝØ’ŸWç3����IEND®B`‚IMAGE 212 ./arch/jewel/sapphire_flawless.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEBkk��Œ��Î��ÿ���ÿÿÿ4©)³���tRNS�@æØf���pIDATxÚíαÀ CÑX‚ýWŽŸ+‘ PCñ>ÏÝiäöPÜ'‡¨µÒ?àfé8f¬ªÒMPsà{æbáÕ¸J‡ÌîÅ Àvh´G0ÿ' çÛsr f{nI5g0{îÎ{™ö5|ßì����IEND®B`‚IMAGE 354 ./arch/misc/Container/sarcophagus.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÐÐÐ���DDD���fffUUU333111$$$"""h[ªT���tRNS��v“Í8���îIDATxÚm“j†@ ƒÿ¥íÛû?ð’–á(‰ ùBÅÏÅ«¯Q\H%9"B.*“·ŠAÁDDp²ý,´)/mDDÍl ¾AŒ¿‰8Ð<Bqk¥ hZÇ]«àÐiÅ×y ¡’Wö‚Žª5XÀÁÑ]rWPB¢ñsLø[âTÀêÈ¢/°[ÖÔØþ”Ài‰NØ�0%x:�T¡c\Bw€tuX„€¤MÈ•$òŽÿVX»ìþW €T:&!çû•IȃÂó žÇˆ8ôÀ+Ÿ,¨‡mÀ�5ßñð@øŸÿ”)¶w¦����IEND®B`‚IMAGE 244 ./arch/weapon/other/saw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿcc1111µÎÎÿœcÿÎcÎÎÿæææÿææÅ¡òê���tRNS�@æØf���‡IDATxÚåÒ±à CÑF2ÈÿÿŵȊ=t­2\NÞÂç×Á›<"V`pïÁäU/ØV]êð÷ Ü\pÿ½›‹p+âêÜÏOgn¦€è|“b W¯¥òå¦Ï]Gæ›g:'÷áÎO\,nœ2w.åæ©w}å袹õÃ2_’Z÷`ž1Ìÿ¼/¦ôŸ¯_Ê����IEND®B`‚IMAGE 294 ./arch/armour/mail/scale_mail.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡aaaÁq8àààÍ…? R-���ÿÿÿd3‚B'¿¿¿ó���tRNS�@æØf���­IDATxÚÕრƒ©S ”÷Þ%¶Œ‰Ûí¯‹GáÈwi%ÝH5S~Îãüv¡(?RâÅâª&&«¨6* ”ku;ü¦ô‚)m�«™ >ýŪDB”�(ïa„n€DŸÁ oàÿá€aEÂȇœP|ì)t{=¿sØC®ëô˜„ݰmnN@ß1Ã'`šÁÿ+±ä—è_“Ò"ÝJOy ×ãÚ·r����IEND®B`‚IMAGE 231 ./arch/misc/Container/schest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��EEEVVVfffwwwÚ¥ ÿ×�ÿÿ����7Aîî���tRNS�@æØf���wIDATxÚÍ’A À »QSûÿ—.ÔXØ ÇNŽ3(D߀ŒLƒáaEFP4 ·­ ÊýTÍ: gÐäD }½Mƒc3Èý˜&‚®ñsƒ»÷6PÁu³g; LÁKwŸ  WD¾I—¸ °þñÿáMq߉õ¶����IEND®B`‚IMAGE 198 ./arch/weapon/sword/scimitar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@d3‡Àÿb���tRNS�@æØf���\IDATxÚÕÓ1À DQŒ|¹ÿ[Ö‚*Û¾?ŒVÓ£p íÓiÐ>œžgÐqç_ 寸 ᧘Oz]¤«ÂÁ.”Gµ‡*ÒÏ;„ï¢äo¬±rì?7f·7����IEND®B`‚IMAGE 334 ./arch/monster/animal/scorpi_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vc2ÿ�����±!!@1ü���tRNS�@æØf���íIDATxÚ}“à =nÿÿæVÏ&ÆÚîd$ rIÛ1ÂF’ÛËr†/×€ª’Þ_¦(ÇW- ›“aŽ›p¨u³Ó3/Ͷ(®� ÉÎcIk2{ÐBÛÖ p%?KøPV;«¿üóÛ…_h+õN 't™BG]òØhsúsÏŠl­Ð¡®Ê‹vmŒ%P²gÇ� Ôüœ-ª©­L&ns‚ÒRñsk59o]ÏÈRüHÉÀ°iÒ¥`‰1¿kk­‡L{Æ©\_7V]þŽèü›‚|ØZ)> é÷ŽŸWÁ¼Àwpø«/{ó3™™•'6����IEND®B`‚IMAGE 168 ./arch/monster/animal/scorpion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���PIDATxÚÕÑ1� CÑþû_ÚÅàBÛÙN$HD}x½¶a Oiæ÷zåT‡ÌÝÉÜÊ!ax°¿,1ïÆ´fñ·¨(¥»~Íýë�€cx&_����IEND®B`‚IMAGE 170 ./arch/monster/animal/scorpion.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���Q¾Tg���tRNS�@æØf���RIDATxÚå1� éÿ?í  †Ó2»8\OÄø6’¥3ŽÎ³¹œ…¢ÉèÙ¥î •«ònQðt€]A;Ö ÃçËás³‹É…Åís 8Ǽšý�„OM©/����IEND®B`‚IMAGE 479 ./arch/spell/Scroll/scroll.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÆPLTEÿÿÿ���ðæŒÚ¥ ɘØÏ~ÝÔÛÒ€¦~Å•f0 ™]£œ_~R'¦Ÿa§~¨¡b¬¥d°©g²ªh³«h¶®j¸w9¸°k¸±l¹²l¼´n¾¶o¿‘À’Â~<„V)ŽsÈ—È¿t\+˙̛ÌÄwÍ…?ΜÏÏÆyÑÈzÔ ],Ù¤ ÙДpìâŠÚÑ•qÜÓ€˜c/ßÖ‚ãÙ„æÜ†èÞ‡è߈êá‰ëቘ‘Xí㊛•[ºqÕÌ|P5Gµ���tRNS�@æØf���ÇIDATxÚÕ’Çà D=¸$Nï½÷Þ{ÏÿÿT@–å%>'ïÀyZ„öWÀÍÃ5£7Œg:~¡‹©µfàš€ï2±(…8Z–ŒÁa %ª! ‹Ô,o §«ÄŠà%!hT0`²¢BH”–Î਄T%ÄáKÇôkÇ'd:æBܳ“#�òL<sï³{•Í›7†�a¶àèèTØ&mÝ|PaŽBcèdBÖé"¸ªÔõ¶áÐ'-Ô%~‡ðãªa����IEND®B`‚IMAGE 224 ./arch/readable/scroll_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ðæŒÍ…? R-���d3]K¯R���tRNS�@æØf���yIDATxÚ½’á € „mµ{ÿG1ºË&} þðsÓö®œ÷7_'aaX0†î"¤a�¬Ï¾ö¡BTÀ°£ŽfÈ÷W�o2 fîkòlD¡Šà3a.…ìQ¬*ä3Õ}z x!Ì|j-PTàŒBûŽæ¤feWšÐ����IEND®B`‚IMAGE 465 ./arch/skills/Skill_Scrolls/scroll_alchemy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 4(™E«¥���ŠPLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäääëëëì¤^î¯qî²wïµ}ðº…òĘóóóôЭøøøùëÝùùùúíáûûûüúùüüüýýýþþþÿÿÿû)¹J���tRNS�@æØf���bKGDâµ=º���³IDAT8ËÝ’Ù Ew‹UÇ¥n(jÄ¥ÿÿ÷|éTqÆG=¯9aBnˆþ ŽêM·™op‡ÎáIYFÂʰu=\�8ìL­„CðÀåf�€£oŒ«Ö­Ñ?@Äy%ˆ~3#ñ` �V'V£ �1°&!LN²ÑH³»ƒˆ#¨…K•Z~¸Ýíy„‹lð¼ð‰Â:ûaÆi^_”á=´¸Ÿùðw'÷ã<�'Õ$ô• Í3����IEND®B`‚IMAGE 483 ./arch/skills/Skill_Scrolls/scroll_bargaining.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 9g޼���¥PLTE������%%%&&&(((AAAJJJccckkkë\ƒƒƒ„„„…ìa‡ìcŠìhŒíj’’’””””íu˜˜˜˜îy™î{šî}šï|›î}œï~   ¤ðŠ¦ðŒ¨¨¨©ñ«ñ“µµµ¼¼¼ÆÆÆÎÎÎÐÐÐÙ÷ÎÚøÐÜøÓáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿú—ØQ���tRNS�@æØf���bKGD6G¿ˆÑ���ªIDAT8ËÝ’GÂ0 EýéŠ %ôBo–¸ÿÑX°Hϰ„·ýo$Ë’Rÿ©<¿cáÙJ¸2SŒ1B8¾óý.ŠˆŒriÙ ƒÑt¶0²‚VDA¢Ä¢®SðÏÜŠŸøAhŸ¸é {jdN©ôüFu§°~r5;WÐ[¦±«€>0¹: X®X¤?2‡Mh#–u·—)·ùH dÒ÷P@ͳÁw'÷ã¼�·c-¶ðŠ����IEND®B`‚IMAGE 472 ./arch/skills/Skill_Scrolls/scroll_bowyer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 4/!>���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäääëëëóóóøøøùùùûûûüüüý~~ý––ý··ýËËýýýþþþ''þ,,þ11þ22þ??þþþÿ��ÿÿÿàìT���tRNS�@æØf���bKGDâµ=º���´IDAT8ËÝ’ÉÂ0 D=ÊR6±ï4%ÚòÿÇ!HÚ q„wõ‹5±-òO „W¯¡×wè¸bl¬å‹4- K·î fdvxSü“ÙÅè§€Ò7†$©¢©j ‚Þãåé¨+2Šº+’ªPçjÉ`ME*F[[\Iæ!ar³Ì cT B2·$©5 ’… Zh4[þ #Lg.¥eí>/+Æþ]`êßCíŽ ¾;¹ç"+!™˜oßú����IEND®B`‚IMAGE 489 ./arch/skills/Skill_Scrolls/scroll_climbing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  Ä«î}���¥PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¦ðŒ§ð¨¨¨ªñ±òš²ò›³ò´òžµµµµòŸ¸ò£¼¼¼¼ó¨½ôªÆÆÆÆõµÊõºËõ¼ÎÎÎÎõÀÐÐÐÑöÄÙ÷Îáááãããäääæææëëëóóóöüôøøøùùùûûûûüúüüüýýýþþþÿÿÿ/Rø+���tRNS�@æØf���bKGD6G¿ˆÑ���°IDAT8ËÝ’Ù‚0 EsQQ©¸ ˆ‚ î»¶øÿŸæƒ3Å.:㣞ל6™›ý0Ðê%øMO5àâ˜ç¢€sCتu]p q[úqÆ“ñÃçÛ4IÒ®zí¢A´² þ^-¸Ehì¤ÌM¬u-™Mè¥LmÂø^1²ŒÀ–ùû‰ÀØæ³€Jµ¦ é`’©˺|^–‹ë« ¸~eÔ=|wr?Î.À,þ(ãR����IEND®B`‚IMAGE 500 ./arch/skills/Skill_Scrolls/scroll_disarm_traps.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  3 Þ ¾���«PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼Áb–Äg™Äh™ÆožÆpžÆÆÆÉv£Ë{¦Ì}¨Í~©Îƒ¬ÎÎÎÐÐÐÒŒ²Ö˜¹×š»×›»Ù ¿Þ¬ÇÞ­Èá³Ìáááâ·Îã¹ÐãããäääæææçÃ×ëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿøŠˆ���tRNS�@æØf���bKGD8 ¥Ö���µIDAT8ËÝ’ÇÂ@CÇtXBïB½ãåÿ¿Œh7K$Žð®¶F–="ÿ"Xz^É `:ÁIk¾¹Ý"†­©Û†2æ‚�µ—8&ië"¨œOI²ç6x{M&d;ŒFwš$'lÑe€*I’ëYÓ•Q ªçgÄeメ~×ìûþ`Øqé5Òd¸Y¸[(µÒ15 Îæ ì"è&‘±.ñcepÕÆXö?¤/˜à»—ûqª”-•Sj¯����IEND®B`‚IMAGE 484 ./arch/skills/Skill_Scrolls/scroll_evocation.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ �4!àP���PLTE������%%%&&&((((ê<—ëAAAJJJQ¢íQ£í]©îccckkkv¶ñ~ºñƒƒƒ„„„’’’’Äó’Åó”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐÓçùÔçúØéùáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿí!v���tRNS�@æØf���bKGD/#Ô ���ÀIDAT8ËÝ’É D3Q¢·Ä÷ˆqWÀÿÿ;«T`rð¨]EqèÇÔÐ3QôO‚@žß‚bê(s èÂY)ù–°WÃÚzÉÈø>C%kbB ºÉ¥”Œi‹Ssù¾&ææ±´åP{4MÓ‡�“Ö—¤,“£�ùìdësŠýÒ�‹Ë«CXÝMP,Á} lžAò¦ùN5mrêôŽü cXW®‚a]Ýa†Ó¼}RøûІqæ ¾[¹×Üè$±[Ž`Ð����IEND®B`‚IMAGE 488 ./arch/skills/Skill_Scrolls/scroll_find_traps.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ �G¬È���œPLTE������%%%&&&(((<ÙºAAAJJJaàÇccckkk{äЀåÑ‚æÒƒƒƒ„„„„æÓ’’’“騔””•éÙ˜˜˜œêÛœëÛ   ¨¨¨¨íß²ïãµµµ¼¼¼ÁñèÆÆÆËóëÌóìÎÎÎÐÐÐ×õïáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿŸ±+X���tRNS�@æØf���bKGD37Õ|^���¸IDAT8ËÝ’É‚@D»TWÀ}ÜÄ}©ñÿÿ̓1f†‘Ä£¾k½t*Ý-òO ‡•—Ñ턦'­ùævË ;3·…R²`‚�óW–$$í\c’Ó5É(r ݃æ¨1 •ÊWtöšd³÷A@<<’$›­,ptÄ“ó³ãlé¹…Å]“•RAæªo4éyžR#÷€x« Ö$@µV7°YÂ*5ÉëR|,WmËþ‡ Ú¡ ¾{¹ç Š)¸ ÃI����IEND®B`‚IMAGE 526 ./arch/skills/Skill_Scrolls/scroll_hiding.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  )î§Ã…���ÀPLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐá€ÉáááãããäääåÐæ”ÒæææèœÕ飨館饨ê¤Ùê¥Ùë©Ûë°Ýëëëì¯Ýì²Þí²Þí´ßîºâóóóôÔìôÖíõ×íõØîõÛï÷âò÷ãò÷äóøåóøæóøøøùùùûôùûùúûûûüüüýýýþþþÿÿÿÇ}ðò���tRNS�@æØf���bKGD?>c0u���ºIDAT8ËÝ’Ç‚0EyØAìØ{{oyñÿÿÊ$ÈŒK=Û{÷Mû'@AÊ#`e Ñ€8,(EB¡æË¯Dt°½ü¸ÛË+Y@¼u Ï3åœ9\®6Í9: V‹•ØzˆmT*p!]w[NGëa�fvüjXiôÕ)¹?¿g˜œ‚…âƒ~\“+”)†`šÕpb‰¤€¼HJ¶ˆr¬‹xLõšw¿€Dþ‡(¤ øîå~œ'h 1¹Å(æ����IEND®B`‚IMAGE 457 ./arch/skills/Skill_Scrolls/scroll_jewelry.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 4-é/_*���PLTE�������ØÿÛþ%%%&&&(((1ßþ?áþAAAJJJccckkk~êý~êþƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨µµµ¼¼¼ÆÆÆËõýÎÎÎÐÐÐáááãããäääëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿ/ñp'���tRNS�@æØf���bKGD Ö˜���´IDAT8ËÝ’Ë E¬¶V£ÅªãƒúV.þÿºè¢Å—z¶9dÂMˆþ ŽêC®—•opÉWçÐam$œüz(dÜ�é”pޘ͔@�pôuûRÚ.6êVȦgF"âÅ€QF¤W`½º�’&O››S€"Õa÷t•+IŒ �LoŽD¬õÑ¥ƒ&bO¦aïŸhY÷ÏË*ùñ.À†÷0âyåÃßÜóµÓ"X#§ %����IEND®B`‚IMAGE 465 ./arch/skills/Skill_Scrolls/scroll_jumping.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ "±¬���ŠPLTE������%%%&&&(((@ïÄAAAJJJRðÉ[ñÌ]ñÌccceñÏkkkƒƒƒ„„„’’’”””˜˜˜žõàžöà   ¨¨¨²÷æµµµºøè¼¼¼ÆÆÆÎÎÎÐÐÐ×úñáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿ«þP9���tRNS�@æØf���bKGD-ÍÚA=���³IDAT8ËÝ’ÛÁ0†»%ª”FêÐÆ™l¼ÿëI 9´3.ù.³_2v7Šþ ðpê(¦¹m@g)ñž°·ë®C¥Î#„dŒù/¨+}3ãˆëþ\ à}cOƒk)$G‚d¡Z˜´À ÐÙÉ<€:"†„åÅÔÓ2,lî¯F”)†"ÐZ6÷Q×é®]€Þpdá62†meã ëÚ>¬nŸ wº0Îm໕ûqøç%š£ð(����IEND®B`‚IMAGE 479 ./arch/skills/Skill_Scrolls/scroll_karate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ (Qyy���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨µµµ¼¼¼ÆÆÆÎÎÎÏ„èÐÐÐÓêÖ–ëØ›ìÚ¢íܨîáááãããäääæÀòæææëëëìÒõóåøóóóøñúøøøùùùûûûüüüýýýþþþÿÿÿd˜[���tRNS�@æØf���bKGDâµ=º���¾IDAT8ËÝ’Ë‚0 D ¾AÔãÔ€ZQ)þÿç™t¡¶ —:Û¹N“Á? <9~’‰¥È& ç¶Õ/5ìÙW¤ªbßBHÙÏ @Ìü*¹àd¤Óz£�ï3s7ÆR‹@r4%µPñÁ�ÛL žžL@©3á• Ì/däÔ¯BXÞé Å)E!Uˆ×ÏAÖµïÚσæ9õCKî CX¥¶¼e]íeúÛ¼½ºqÿCF‘-øîËý¸>Ã%&k×<Ô����IEND®B`‚IMAGE 462 ./arch/skills/Skill_Scrolls/scroll_literacy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ �Vú³c���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÅtÔÆÆÆÍ‰ÚÎÎÎÏŽÜÐÐÐÛ«äá¸èáááãããäääæææëëëîÚòòâôóóóøøøùùùûûûüüüýýýþþþÿÿÿ¥Ûæ���tRNS�@æØf���bKGD*S¾Ôž���¹IDAT8ËÝ’IÂ0 EãÊX¨©™†þpÿ²¨2€Äž”•Ÿ,çÛJýàÕ;”2× ”ŽÖâIÓÂÖ­ûBBå£Z×aE4�‘»@Á7¦�¸°‰ ùÞŠ�FVŽ ”¢Ñ΀ªˆ ¤'€ �6bÂìn_W HÕŽA¯-�0ÇrTŠ´Þ´Iš7õú?È„–¥K°¬óçe¥tyÐø÷Ð¥aæBßÜsïô"42É(����IEND®B`‚IMAGE 472 ./arch/skills/Skill_Scrolls/scroll_missile_weapon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ -!”���ŠPLTE������Y%%%&&&(((4i™AAAJJJJy¤V‚ªccckkkƒƒƒ„„„Ž«Æ’’’”””˜˜˜   £ºÐ¤ZϨ¨¨®ÃÖµµµ¼¼¼ÆÆÆÎÎÎÐÐÐÑÜçáááãããäääæææçìòëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿÜŒRä���tRNS�@æØf���bKGD Ö˜���ºIDAT8ËÝ’GÂ0 E#‡æ�± ehÁôb™û_Ë Å…Kx oþÏIYöO@D7 z”¾8ƒ/´Ž„ åÊAy(äPÛœqãѶäœ~fôðBa˜[cL™â(˜¢±Pí¨„(&*0Ø’À[*-€(ŸÝk¤„éÉæ¢)aq5®âdŸª WÏA¦rm>šæÔîö<ÂAæ°¬}¢eýeÆÛ¼¼ ¨Ã{hB¿ôïNîǹç«#¹.tSB����IEND®B`‚IMAGE 472 ./arch/skills/Skill_Scrolls/scroll_one_handed_weapon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ )&~I���PLTE������%%%&&&(((AAAJJJb©ìccch¬ìkkkq±í€¹ïƒƒƒ„„„ˆ¾ð’’’”””˜˜˜    Êò¤ZϨ¨¨¯Òô¯Óôµµµ¼¼¼ÆÆÆÎÎÎÐÐÐÖçøÞìùáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿ˜šØ���tRNS�@æØf���bKGD Ö˜���·IDAT8ËÝ’ÛNBA E[ËM8€g¸Šg ÿÿy¼u.šø¨ëµ+M³wEþZÍot6O§†Þé1F>iÛBØF |Ìs¡£kÀ Í̆®Ü ªO�Œ–+Èç"º�À‚¨ ³}\?ÔNî"à°º ÍÃ&îzGMx|ƒ€÷uáù| Ê{j'4¯ñûE´i6? Úí ò ;ú²N)Ê:¥e–m¾hó¸ÕûqŠþîåþ8¼·%Í{ úB����IEND®B`‚IMAGE 464 ./arch/skills/Skill_Scrolls/scroll_oratory.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  -���„PLTE������%%%&&&(((AAAJJJccckkkqM{~^‡ƒƒƒ„„„Œo”’’’”””˜˜˜   ¨¨¨©”¯µµµ·¥¼¼¼¼ÄµÈÆÆÆÎÎÎÐÐÐáÚãáááãããäääæææëëëïëðóóóøøøùùùûûûüüüýýýþþþÿÿÿ‰×—1���tRNS�@æØf���bKGD+$¹ä���¸IDAT8ËÝ’ËRQ P%# #òž¾üÿÿ±¢ðΨb©½=]©TNDþZÐÈ»:g sCŸt›êº–—ܨ ¡£ `¶b0-'ˆêÇY0whæ"úXÆa´J¸ãNX±‚ˆèëOÂ= ´ZMÖfX´ ï;ˆgpo> ,�ÂZV¨¾Òõ;ŠhU}ßô±×Ïh²£óENQÖ>/³lóð[ nþþ sô¾—ûãœ�ê"U‹¬q����IEND®B`‚IMAGE 461 ./arch/skills/Skill_Scrolls/scroll_praying.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ �„U;���‡PLTE������%%%&&&(((AAAC–SJJJU ccccgªtkkkq¯}ƒƒƒ„„„’’’“½›”””–Àž˜˜˜ŸÉ§    É¨ Ê¨¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐ×èÚØèÛáááãããæææóóóøøøùùùûûûüüüýýýþþþÿÿÿ:¼T¼���tRNS�@æØf���bKGD,ºÝq«���²IDAT8ËÝ’IÂ0 Eëi ¡¥ %L…0Çáþç#‰ C+±„·ýO¶e;Iþ ðòT3‡Â5 ƒ‹RøFÊ@8¹¹/¤Ð RaBÆ"ô›W„Äx~®%¢ ¶�çQ¡:+ÛƒèV&ÓÏsb¡¡�åb^ׂ˜ò±µ°¾ê€3l¶³Ò’ka¯Ú÷hòòØ-À`8rð™Â®q Žuë>V÷O¥ÿ}.ðÝËý8O±’"õ5ôìZ����IEND®B`‚IMAGE 475 ./arch/skills/Skill_Scrolls/scroll_punching.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ +Èp(¡���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäääæææëëëïŽ@ñ£eò©oóóóôºŒõÅžöÅž÷аøÕºøøøùùùúç×ûòêûûûüüüýýýþþþÿÿÿ¤æƒ���tRNS�@æØf���bKGDâµ=º���ºIDAT8ËÝ’ÉÂ0 D=ìP6±o P(tÂÿ$ i@âï:OÖȶÈ?A^E¯ïÑñ 4°sŽOŠ¢$,ý<*˜‘ÖXUÍc“4‡4Uk,æ"’¤UR5 ½µ#©jÓHAwåHæfϨ€d°!©–[u$£ã½UãÂäêLN’̲X…dþXÔù,ÜûE‹�õfË#\dÓ™OéX§ÏÇjàò*°ÿ¡†vÇß½Üsµ%M¸ºùm����IEND®B`‚IMAGE 470 ./arch/skills/Skill_Scrolls/scroll_pyromancy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;7“ÕºŸ���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐ+ÐÐÐÔ?0ØTFÙTFÛ_Ráááâuãããäääæ”‹æææê¨¡ëëëóÓÏóóóôÓÐøèæøøøùùùûûûüüüýýýþþþÿÿÿ_-¤9���tRNS�@æØf���bKGD.TÓ‡���µIDAT8ËÝ’ÉÂ0 DíÊÞB€BØÂ’ ÿÿyKÒ´Gx×y²F¶‰þ .áå Nû‰kpÌGkñƘ’°vs_ˆ8N;�P*0˜Ç/a©�?'â!�-äZ…tk¥ %äÁ„Þf!¥Ì”ƒ½ÖZJêPGb1:�Š9*„ÉÍâÙ3TAÌlõ‰XˆU½À­vÇÁ_dÄÓÌ¥t¬Ký±b¾~ 0þ?4¹›¸ðw/÷ãÜE $šr×`u����IEND®B`‚IMAGE 479 ./arch/skills/Skill_Scrolls/scroll_sense_curse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  ØÔã‡���PLTE������%%%&&&(((AAAFŽçJJJccccŸêi£ëkkks©ìƒƒƒ„„„‰¶ïºï’’’”””˜˜˜   ¡Åñ¡Åò¢Æò¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐÙçøÝéùáááãããäääæææëëëóóóøøøøúüùùùûûûüüüýýýþþþÿÿÿ7€JJ���tRNS�@æØf���bKGD/#Ô ���»IDAT8ËÝ’GNCAûÃ`Ìšd†œ~ ÷¿ @ò#±„Ú¾’:šý'ÔPåZÌKCS=å àÀ86Â]<¸`l„‰–@8å‹Z0é@J�un¦“Ïòû;q°x8sàæ%Ŷ3Óá}�ô ÇøÁ÷ =áü¢§4 ô…Ë÷ 㬛›†ë k·`†ÛŸmmïÔ‹œèjYÒëu¥DçXS½­ Œõ?ljo^¢ß½Üçwé%¢‰ ¸����IEND®B`‚IMAGE 475 ./arch/skills/Skill_Scrolls/scroll_sense_magic.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  F°v$���ŠPLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐ9ÐÐÐØ¯_ÛµjàÀáááãããäääæÌšæÍ›æææëëëóóóôêÖôê×õìÛøøøùùùûúøûûûüüüýýýþþþÿÿÿ¸DÒ���tRNS�@æØf���bKGD-ÍÚA=���½IDAT8ËÝ’ÇR1çp&,´$d¶åÿÿ=.@Y+™*ŽÐ×éªyÌþªÔ´8+˜—†ÆzÎH1&€¾¯„û ÄðÐWÂH+ v|2LZBŒ| ªÆ¸ `{ë‹õ&�o[Bª"˜™NrH�mAîüé+ƒod4¹Ëð‘ÔyÚÂÕ.Cô¡kÖMî&ÃÁ-˜œ»ûYÐÉdZ0\äH׫’êX¯{-Çë}_ þñfóýîåþ8ÖA$�nryD����IEND®B`‚IMAGE 525 ./arch/skills/Skill_Scrolls/scroll_set_traps.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ =e6"���½PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäääæææëëëï°sð²wð¶}ð¶~ð·ð¹‚ñ·€ñ¸‚ñ¹„ñº†ñ»†ñ»‡ñ¼ˆñ¾Œò¾Œò¿ò¿ŽòÀ‘òÁ‘óÆšóóóôͧõÏ«õЭöÜÁ÷ÛÀ÷ÞÅøøøùçÖùùùûûûüüüýýýþþþÿÿÿ+û—���tRNS�@æØf���bKGD>Id�ã���¼IDAT8Ëݒׂ0EYTT;vE±÷ŠÿÿY&–Ñ™ñQÏcöLænÑ´$„zì4‡É`ÀŠ|’Pá뢠ƒó,ÎÖŠhÈ<â~DŽŀ µ‘¥Ïþ˜ #µ`×h¿}Äe_ŽÀ„Tõ–²³Å®J�+S¿gœÌ{ŠŒTÈ]L‡j¡p!Øh¶\ÏÛ *‚U"ŸçÈêV9\€X<Á!R‡¢Ã#-ë¾,Îïâ=D!iòÀw'÷ã\:0úë:¸����IEND®B`‚IMAGE 453 ./arch/skills/Skill_Scrolls/scroll_singing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  p*5ƒ���~PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÞÐÐÐØ¯äáááãããäääæÍíæææêÖðëëëóóóôêöøóùøøøùùùûûûüüüýýýþþþÿÿÿt}Þ���tRNS�@æØf���bKGD)Ê·…$���³IDAT8ËÝ’]Á0 †—aXÍ÷¦˜M‡¶þÿ”Ômcç¸ä=½Jžä¼M’$ÿ$ˆäPÌ=å>œ­5/i?)”ï:ÊVL4¹ÆpÓ£¤ úÆÃuõJò@q²à«b ÌŽÛS¹T �bÑ’?©0°º8àé„6wëŠ à,ˆý<GÊ‹}?�£ñÄS8ȶ¥¯hY×þeep{ŒïaÓÜ|wr?®á!fég—Æ����IEND®B`‚IMAGE 473 ./arch/skills/Skill_Scrolls/scroll_smithing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 41ý.e���PLTE������%%%&&&(((AAAJJJV¢mcccfª{kkkp°ƒv³‰¸‘ƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨©Ï´©Ïµµµµ¹ØÂ¼¼¼ÂÜÊÆÆÆÎÎÎÐÐÐÜëàáááãããäääëëëìôîóóóøøøùùùûûûüüüýýýþþþÿÿÿž¶Ø=���tRNS�@æØf���bKGD|Ѩ���¸IDAT8ËÝ’IÂ0 Eí-ƒCKA˜ÃP†þpÿ㱨$i‘X“²ò‹å‰èŸà�/Þâ|ìºÇ|¶/Ê2nÜ"ÞËebžŠ_/€¢€hÀ�Ú˜V?•1a"Î�Fz뚉ˆGG�ZŒRµg“ uõj…ÙÅ& „ÕÝB‹HC ÙÎ0sƒ†ÙÞ6šˆ¹Óí;øƒŒx³u –uý¼¬˜oïJÿÚ<L]ø»“ûq)%T&Ùm����IEND®B`‚IMAGE 482 ./arch/skills/Skill_Scrolls/scroll_sorcery.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ �žÄF���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼½»Ã2ÁÆÆÆÉHÇÍUËÎÎÎЀÏÐÐÐÑeÐÓƒÒÔoÓÖwÕÜŒÛÝÜáááãããæææðÑðñÖñóóóøøøùùùû÷ûûûûüüüýýýþþþÿÿÿ34Ðã���tRNS�@æØf���bKGD/#Ô ���¾IDAT8ËÝ’Ù EMÝ[ëZlëVâR·‚ÿÿw’Ž3 Ag|ÔûÀË9aHB£ñO‡7!Z m:pÔZ=SULØéKY3¬¹+«rC<-|7˜GNM-'‡”`mŒ *e0y!ÞkBDö ÄB (3ɈFk)¥X sJå&'j1CïH˜Ýô£7ÂR¿Ÿ#ñhûY€v·gÅd�óÜ[ÖÙ^&ßæõUP•ûZÐíÀw_îÇsd@%DH£,/����IEND®B`‚IMAGE 502 ./arch/skills/Skill_Scrolls/scroll_stealing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ,a¡[���±PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””—îy˜˜˜šï|žïžï‚Ÿïƒ    ï„¡ð…¡ð†£ðˆ¤ðŠ§ð¨¨¨®ñ–°ò™±òš²ò›´òžµµµµòŸ·ó¢¸ó£¹ó¤¹ó¥¼¼¼¼ó©Äõ³ÆÆÆÎÎÎÐÐÐáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿÐïk���tRNS�@æØf���bKGD:N Äú���±IDAT8Ëݒׂ0E÷Ú%b+6;öÂÆÿÿ0!„8㣞×=“¹Ù»Dÿ4Ró<캂¥(á&%ÇD‘&œ$Oó´CÈìÆ˜3{ƒX€öó¸ÿI°/ræš"jg¹uÌDóÊ<œ˜2ÄèÎÜí­áû™Âæ%y½l5ÚŽ»ËŠ Ò¼G"qü, X®(¤™Ã>TÑÊz¨eêm>“Gé{( j©à»“ûqÞy;/@xÉ»Ÿ����IEND®B`‚IMAGE 468 ./arch/skills/Skill_Scrolls/scroll_summoning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ;(Ý·j���‡PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäЙå¼OåÑšçÂ`éÈpéÈqëëëîÖ•ñܦóóóôæ¿øðÚøøøùñÛùùùûûûüüüýýýþþþÿÿÿ›�Î ���tRNS�@æØf���bKGD,ºÝq«���¹IDAT8ËÝ’× E³±'ÆKD’U,,þÿ÷ ø ”8ã£Þ†‡sh»$É?‚x¼ÅÄIæЇ£RôŠ”°UT=ae¸/¤P14™wЗ\ n~ғϵ13‹Ñ.bB±¿ˆ†!²±’a¼ã\Sãà! ŸÖö ÄØ+0?Û'rj–w[(çZX«ö:žo> Ð ø…LaUº šuu›vóö.ôÿCF™øîËýx’›#i€ßÛ}����IEND®B`‚IMAGE 472 ./arch/skills/Skill_Scrolls/scroll_thaumaturgy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ /ý+Ž:���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐ×£Ù¨&Ú«.Þ´Dà¹QáááãããäääåÄlæææéÏŠêЊëëëóóóõëÐöíÕøøøùùùûûûüú÷üüüýýýþþþÿÿÿÕo¨Ÿ���tRNS�@æØf���bKGD.TÓ‡���·IDAT8ËÝ’É! DÓîŠû.¸ ʸLãÿž ƒVyÔwÈ¥_¥ ‰È?Q^E¯Ð 4pôžOŠ¢$lÂ<*˜‘ùnaHºDÆä5§±Îj’q.‚á£ùr•1-ôöžtÚh—x‚ˆ »õ¤v4&)@ tš|””0:ÑZçìʾ&7ŸY­mò“"Psÿ~Ž"PjýY@½Ù ˆYÁtRZÖù󲸼 ,â{¨¡Ý Áw'÷ãÜ!s$ö€’‘À����IEND®B`‚IMAGE 469 ./arch/skills/Skill_Scrolls/scroll_throwing.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ÏZô���ŠPLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐÕ))×33Ø==ÜRRÝTTß^^áááãããäääå}}æææè’’é““ëëëóóóõÓÓøøøùùùûûûüüüýýýþþþÿÿÿJ~���tRNS�@æØf���bKGD-ÍÚA=���·IDAT8ËÝ’IÂ0 %vv³3` cþÿ=9€CGèëtɲ$‘B+y]ûÄ7´¥gçø¤(*ÂÖÏC¡¦YY�¨VÕ I˜Ü�{a.¢#+K†Q¡p4 Ë"BoçÈ#�FM‡'’\/¢¿Ñt|!iÍíazwÄÒ’ŒµÎ]Ù ‰htãÞZDµÙîx„ƒ¬é,ó©,ëúyY-½½ ,Â{hh7ñÑïNîÇy�E$Š®J$Ò����IEND®B`‚IMAGE 457 ./arch/skills/Skill_Scrolls/scroll_two_handed_weapon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ &¶ÁT���„PLTE������%%%&&&(((AAAJJJccckkkn’³|œºƒƒƒ„„„ЦÁ‘¬Å’’’”””˜˜˜   ¤Zϧ½Ð¨¨¨µµµµÇؼ¼¼ÆÆÆÎÎÎÐÐÐàèîáááãããäääæææëëëóóóøøøùùùûûûüüüýýýþþþÿÿÿK*ò���tRNS�@æØf���bKGDåØù£���±IDAT8ËÝ’Ë E;U«ÅR[5*Zñ­€ÿÿ24F°‰K= îÜ $É?^ÞƒzJ(¨œÑ/” „=Í}!…ÆîWUîàÁ ¶äÊ ’ãñ—ÚÏ­1ÇLˆvÅ„úhZED* 0981 œ°D.]˜°¼Ø�CÉdTXߟƒ:V¡ÜšÏsļÜu 0Žþ SØ4”౮ݕÁí]ÐÊÿ}øîËý8Ý"ê¹h����IEND®B`‚IMAGE 479 ./arch/skills/Skill_Scrolls/scroll_use_magic_item.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ û‡áñ���™PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäääæææêJ•ëëëîo«îp«îq¬îs­ît­ï}²ðµðƒ¶ð„·ð…¸ñ½ò”Àò•Àóóóøøøùùùûûûüûüüüüýýýþþþÿÿÿ9Kh���tRNS�@æØf���bKGD2@ÒLÈ���²IDAT8ËÝ’Ç‚0Eì vìŠQ{&þÿÇ™€œ”…K}˼›éž÷OCš_¨CPêpKqn�ÓÒ?J_|ˆ_n¶a–²ÈrOI’)Àh£§Þwì]ƒ Dó¼ˆuQ¢hÏr ]Ù»K•"=X»T@ÿ"¿o÷膱`èò%0xGt'Â=h5§Z£I¤Ò‡QLe,ëJ—inóö ×ï¡ ­€ ¾;¹×‚(Î+¦×����IEND®B`‚IMAGE 472 ./arch/skills/Skill_Scrolls/scroll_woodsman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 4+�Lú���PLTE������%%%&&&(((AAAJJJccckkkƒƒƒ„„„’’’”””˜˜˜   ¤ZϨ¨¨µµµ¼¼¼ÆÆÆÎÎÎÐÐÐáááãããäääëëëóóóøøøùùùûûûüüüý~íý½õýËöýýýþáþ$âþ'âþ1äþ?åþeêþ~íþþþÿ�Þÿÿÿt±[���tRNS�@æØf���bKGDâµ=º���·IDAT8ËÝ’Û1 E“q7Ëýn:9CPþÿó<`¶úà‘ýšÝ³Ò$Dÿxõg}‡®kp“7Ö¢"Ïai©ê¾ð (¦Šð›à1PF_!|c�…”& âìñRÊ£„=÷V�Dõ¬ø$p:Xè p£­5W5&7 ˆÑ“ùÜB:ò H6>h"æF«íà2áéÌ%XÖÎ]f¸Íý»€Ü¿‡:wº.üÝÉý8w¾w ÷Ši ����IEND®B`‚IMAGE 346 ./arch/readable/scrollr.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEÿÿÿ���þþþýýýüüü„„„’’’ÎÎÎ%%%ÐÐÐ&&&(((”””˜˜˜   ¨¨¨µµµ¼¼¼ÆÆÆAAAJJJáááãããäääæææëëëóóóøøøùùùûûûccckkkƒƒƒÿÿÿbR™¯���tRNS�@æØf���œIDATx^ݒǪ1 �3’·¥÷^^ùÿ ^”aAî;ا„A ¼gB3wÔ¾`ÏUD?¤TÇÞc¾:Z�µK°F”× ²÷°„,ûC ‚æ,ï EÁô$jDÕâ"(  DÁê&Ø+ã`ó/ÙõyŒ³7¢ÕAÌÆ»Ÿ_> cÛzŠeÝÝ2ƒm>,°¢ö3þj_¿ÜxOßhî9„����IEND®B`‚IMAGE 235 ./arch/weapon/misc/scythe_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE�������@ �`0�lllx<�€@�………‘‘‘ P�À`�ÐÐÐÿÿÿZzZ ���tRNS�@æØf���lIDATxÚÅA €0 wÛÕ¨ÕÿW¡"BIs(â\gB<LoÐr\ô2jȶAÐl+à4·_& ¥&Õð’ê RÕ»hV×ï²ø<â˰Wþò>³`±ÜŸ¾üßd æõç¼I‘ïþ¤ïOÆžSX›Rì����IEND®B`‚IMAGE 240 ./arch/connect/Doors/sdoor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEçÆ÷sss{{{„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÚÚÚ���lB×Ù���tRNS�@æØf���wIDATxÚÍ“AC!CåGl ¹ÿyë¾Ó°m¶ï‘QGÖw¤å¢›ËcR'dæÉÊø]bÕåF�¶àFË í Ðݶàœ9NrO‚ã{pãx>áØïàðˆ9 8Ó ¯áŠ²Ë Øe ú°Û Ræ/Ǹ+ëßóôFéë"æ����IEND®B`‚IMAGE 315 ./arch/connect/Doors/sdoor.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEçÆ÷cccsss{{{„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÊÊÊÚÚÚ���ZFfº���tRNS�@æØf���¼IDATxÚÍ’±’1Å.ƒeÿÿçfÙ™t"Õ©ØF‹Š7þû‰sÓÊ_¤:p­š¾º‡mò« Èaoqbµ* GU²:wH©ye@/«2ÌYÜ]%#¯qJL'i©ä²•¿cîX§Û@SÑ&`C\ yž&/çr Ѹ?ýˆš¬Õ0«+•ÛÊÀP‹mön6˜›PU)áD„y»2Y>ÕyË–”ÿœ7*Æ n[êÜ!����IEND®B`‚IMAGE 352 ./arch/connect/Doors/sdoor.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEçÆ÷cccsss{{{„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÊÊÊÚÚÚ���çççl^ß���tRNS�@æØf���ÞIDATxÚÍRAŽ1Ûq˜2ÿÿmÃlªJC¶·J냅bÇÌÏ×à¿øCxヶ:’ÚˆÞ NŽ1Ha£²Øz g&`ÜÆ$ÊLaf’€&SL’xªL­ µàdPU¦yÔbc£hŠ€¨áØ@AÆsNúõÙÚ°nÆsJž€0q!wϺTR†ÑÑí<ÝK2؃€£+&Ü·K,r7Ý8ÄÞ£zÖ!¸˜ËKZýC®{¸¬þñº‡°ú§×=ÜVÿŠÀnË«ÿ‹ó-»Gÿï;ÏXïÿO}Xå™Ói����IEND®B`‚IMAGE 364 ./arch/connect/Doors/sdoor.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEçÆ÷cccsss{{{‚‚‚ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÊÊÊÛÛÛ���ççç»Ð*���tRNS�@æØf���êIDATxÚÍ’ÁŽÃ0D<cÒôÿÿ¶Ãaá®v¯ÃÈhÈsdx|™®_Tó¿;.\>§˜ÇlИڜum�îè“&Âú*€”±”5VÛ ž]ò¤é�¦~xï �ë 03HBžíˆ a]�ye§Qjá' #I X6mÐ-£>cD O¶@¹BpHkʲ�´‰ÁCίWk|c©€xŠû9ÌS!ƆýÕ̃ùç#"Ã1œs¯€õ±‚�|Ladd´©rˆ¶±Öüï}¨€5ÿ{ `ÍÿÞ‡ Xó_ûP®5ÿ{þ_æÇWé 2÷9E6›����IEND®B`‚IMAGE 1762 ./arch/ground/sea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��µPLTE&‚*J¦.Nª&B¢">ž2V®*Jª":ž2R®&Bž6–2Rª">š*F¢":š.Rª6Z²2Vª>j¶&>¢*F¦Fn¾&>š6V®.N®6š&Fž:–:Z²"Bž*B¦2–*Fª.R¦Bj¶">–*Fž:^²:š:b®>f¶.R®.N¦.J¦.Vª&F¢Bjº6V²Bfº&>ž&F¦2Nª*J¢6Z®2Z®">¢:b²6’2š*N¦6^².J¢6’NzÂ.‹2’:b¶&Bš*JžJvÂV†ÊV~Æ2V¦*‚R~¾>bºN‚Ê2Z².N¢.Rž>^®:Zª2’2ZªFvÂ2š6VªBnÂ6Ž6Zª2R¶*B¢6–^ŠÍ2V²":–JzÂ>b¶Fr¾&Fš6^®Br²Rz¿:Z®:^¶:^®*F®.JªBb¶*N¢6Z¶Bf°FnÂ*Ž*Jš>bªrªÒ:bº>^¶VŠÒ’Âæ^–Ò.Jž>fºNr¾>n²"B”NvÂN~ÆBf¶2R¦2–^†Ê*’&Bª>b²:f².J®FrÂ2Ž>^²Jn¶:fº&J¢&>¦N~¾NzÆ:ž&B¦>f¾.R²:’fŽÎFjºJz¾JrÂNzÎFrÆ2Ž.ŽNzÊjšÖ2N²6RªFj¶V†Ò^žÆFf¶vžÚ‚®Þz¦ÖJzº*J®Fb²FrÊ":’2Š6V¶VzÂ6^¶z®ÒFj¾R‚Ê*ŽV‚Æ.V²:^º"Bš^šØBnº:Žj’ÐbŽÊ*Fš6Zº2R²V‚¾RzÆFvºN~Ê.’>f®Rr¾Bn¾JvÆn–Ê.‚f–ÚNvºBn²Jrº">¦BfÆ.šBj¿*Š~ªÞ:^¾Jnºb’Ê:f®V‚Âr–ÖJr¾R~Â~ºÒfšÎN~Âj¦ÎBn¶">’/eƒ¨��èIDATx^ Ò¢eG�к¶mÛÆ·mÛjÛ¶ímÛ¶m̬#Ùß5|ŸëÉ&œa|ið¥5䩞¹Új<d!Mt”›i3Ó´=¾¸fG¨=^ßn8AâPÂlΙ×9b"À€ÃΪªö-(ë~môtM3‰ ÅþÿòeÊÞî7œº¸,twÏ’‡Ël>±¨¾ÿeá”AÒº#G†ÍÆoK»À™øGW>—„8Ä1 ò[1²%Éq|ìÃw^PªAèDÝC[˜¸ƒ¢(.ê»±»rûŒ{æi–»çõ8�îC¶9ÒHš­¶úâ¶÷lgož„!kÅ~j\_ß]h1™ŒUt?¼gæî ê•¤lZfÅÉå€ Â-†U0Ž[.-¦-XFÖ$ALœ£ÃvŠBÀA:¶k`u䨄D’&‚gíOZ)«¨Zý‹ p’$ t&L2%‰B‚i_‡Ò&2H”`ÀúñE‚Véº&<F€Q¶góæsʽj,òç)€³Ué@óÖÚÝ Go=ñ¸xGMಙfQu)Žâ€Ö·&OΞP==9­6»4ÚÖÆ¬Âò\õw2–wíC†‰Î…ÿýõ³‡áõ4‘‘yGTEù±MçBÊÚM‰à¢×yúyº¸c–«à]Ù†þí×V²¥è#ƒH0 ŽŠMÎ~鋚íZ‚ÐfÊwVP>Fßõ$¸yìÙååúÞõsØ’âŒ‹Ï çÊ; *Jhs¥Š1Ä;Fœs>ŽC¦^+×ëtæ[ާ¿éóQ»ž-îkŸ¹2#½YkÞ¿’ìë3Ì{<¡B"èè=\V;=‚–^çn¹ºäW?úÔUÌëƒ|Ö”èKøÃâ%™•`»Èeo¿¬®{pËo¡ãÓ;EÇ6G”§|‘O»1>52²;g":ÊïKÚ¾Zíþ8)›iéýO&‚È9ÿŠ8¦¯m}˜€”ê’ºR g'çWYbäé(‚(bÑ(@Ï`5“b‚Ë{5˜òf>« EQŽ™Øø6l´¼uÊJŸeÙ7ãí휋Uàù8æÜëq °ŸÐ²S Pf8¹œUQ­ÖzB$†a±@2pÏ»:ƒ7î]3‘Óé¯Y-°K‚ÖSÕ•“²T%ïoá«ßîyÕÙÊŽñ,Bð&…œwÙÑ|¨¹ö¹ë›�‘3÷hùóø‹^ÆF±<µ’ JK—vî‹“Ë@]ûÍÐõˆßä²1d¤&ö;8ËRhâ|Û† e9ص.ãžÒ¢&<Vž{·& öæóºRqnYSîrÑýÿoƒõ´æ_ó����IEND®B`‚IMAGE 1784 ./arch/ground/sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÊPLTE*†*J¦&B¢*F¢">ž":š&F¢*F¦2R¦2V®2Rª.Rª6Z®*J¢.Nª&B¦&Bž&>ž6–&>¢2Vª*N¤2R®":–6^²:^²":ž2V²6Z²*Jª"B–.N¦6Z¶:^¶Bn¾:š*Fª">š.J¢&Bš:^º2Z®.J¦6^®2š:–&Fž*Fž6š*B¢&>š>bº:b®6Zª.VžNzÆ*Bš>j¶2–"Bž>–>f².N®6V²Bj¾Br¶&F¦2N®">¢:bº2–.N²:b²>fº.ŠJ~¾:b¶2R²6V®6Vª>jº>b².J®">–2’&BªJrº.R¦Bjº>f¶>b¶>b¾Bfº.–:Z®:^®.N¢>^²:ž2ž.ŽBbµFrÂFvÂFj¾2Nª*Ž:f¶Fjº"B¢6–Bj¶>j®2V¦>^®*"FŽ.R¢f¢ÜR~¾&F–:’">’V‚Ð>^º*JšFn²&’&FšN~Î2N¦6’Z†ÂV‚ÂJvÂ*NªJj¶Fv¶&FªFr¾2ŠR~Æ^ŽÊJrÆZ†Ê:Z´Rz¾"6šbŽÈ:ZªBnº.’*Nš6šFn¾:fº.JªBj²*JžJvÆ2R¢2V¶.’JvÊ6^ª6ŠNzÊR~ÂJv¾6Rª">¦6VžjŽÒbŠÊ’ºæbšÒBr¾RzÆj’Ίºæ.F¦n¦ÎZ–Öj–Ò"B¦6^ºNf²^ŠÊZŽÒ2‚Jn¾Jn´JzºN‚ÂfŽÎ.R²z®ÒJr¶FrÆFj¶2š~²âFnÂ&B–fšâZ~ÂZ‚Ä6V¶Fn¶JzÂV†ÎZŠÎBf¶Bb®2Zª2R¶R‚ÆNjº.Šr¦ÎNvÊBf²^ŠÒ~ºÒNrº*F®ržÖ^ŠÎ2ŽJzÆ2N²FrºJv¸VŽÒFnÆJrÂ~¦Þ6Z¦Þ:Ò¢��éIDATx^ ÊÓ‚m7��Ð$ÛÖ±mmÛ¶çÚ¶mÛªmÛ¶íþCû¾@gýÜeÕ)B0ø¨bW¨ØpîÑWž£{<¯¨Õ)‚�—ñx:e­+Ý98ÆÒm#fήU„ß«.ÛD†[çú:pÙ±Ý;vÍÓñ-NAp8ÖœªÞêÆÖ›˜�âÆd!ؙވ,NìÞžcr— Ô¥™_¤ö>õÎÐÒÝ}Ö’dªÜ\d”³†ú£á]Ò“'VåtÛÀ¢ '÷=iÄ0”›ŽÑuž¿Õ5Î3ñVßÖQôÐ??Ý \Ú(†#$ëù0söÃì=Ïì9ÈoNÆeÆôÁª¢Ú2à¸&i•JG ó…gš‘ ÛÊñ<?’·øw)¥I2 °öŠ—ívÛ%2ôÚz`±¡ª5ÏÚY¨ lÊ— ¤(è¾æi1Pʲ£ÿµ¬'¨(Š?íÓ² ¸ØóYÔ¦"Ñ Šf·m˜ »2.˜Íà‹I¤2 „öš®T0AóQ¦‡ã³ùú¿|QwöD@¾ ×@ûšŽôä¼ÇVžm–††Tÿ)TÊ!•X¾\ÆXq; â:k~ ÓZ3‹©–4¦*Äl(Z{ ‹× ä¤V°«Ÿß~üé9Ä·éÞR>@’$,iܲÈ=¯¯û.}+_[³î@#Š[b #æÌ ¿|¥ú~C9ÀÅ1ÍUßx•…>ŸV9q&VíÍïœ<µ?_•!„ç›À[‡f§¦è–6¾ÄNiÇü„W½:‰L}ýáDÇ6¢¼) ;õ0mCaý™…sÁÚ}¯=‚'k3GÆ·ôèñ—~²;uQòÎÔ—ïö#W“obr²åÂ{›Lá9`¼S¾üÃÁùü‘¶î>ÙX€AŽq»L01]ZÂ0Å`ºo ‡×w&¿xø¾{öéŠvÓGõé~%bž¾æ™f îdÖéÕñB<¨g‹þøvÑÉL3c‡FJ‚Ë€Í×î_):V§¶…3o{lMåihEù_È~? Ê£3—αz(†M·oŠ ýdRÁeÊðyÙ¯ø, Õ ŠâH.Y:&Ä I¡È÷yúX'…“Žäh-è¦fQÒÚ)j+*J˜õfÎÚʸµÅrºöì­ü‰®B‚('+žŠË§Mý¶etµÑàXªZU î˜JD… §QšÅ»Æ‘7üùñÁ æ¤ØP~ ¹BÖf¦™q&ô<§G)Uʼn¬Oœcy ËûìZOC£1‰Ìà߃ïGrse©Ö°ÿî_¿é’€LóÙŽümŠïŠm~΃;yHÚí‚å¶þ›Œ&UµXþà ø ¿ìŽ ����IEND®B`‚IMAGE 1756 ./arch/ground/sea.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¬PLTE*‚*J¦*Jª">š*N¦*F¢.Jª":š*J¢">ž.Nª&Bž*F¦&F¢2V®&B¢2Vª*B¢2Zª*Fž:–>j¶6Z®2–.N®>fº6’2Nª":ž":–2V²&>ž.N¢&B¦6Z²6–&>¢.J¦:^²2R®6š*Fª.N¦"6–2Rª:š>f¶.Rª&Bš2’6Zª">¢&F¦>^±.J¢Nv¾6ŽFn¾.Ž6^²Fj¹Bj¾2V¦:’R~ÂJvÆJrº.Jž.R®:ž2Ž*“6b²R‚Æ&B–bŽÍ2’&JžNzÂ.’6V®6V²2R²Bf¾2V¶BnºR~Æ&Fª:^º&Fž">’6’"B˜:^®Bj²&>š>f²"Bž.Ž">–.R¦:b²>bº.Š>b¶Bjº.N²Bn¾NzÆ6Vª>b²:Z²Fr¾*B¦6Z¶.’Bj¶2R¦2–:b¶*Jn¸Bš:^¾:f¶*FšNr¾2Z®:b¿bŠÊvªÚ"B¢6Rª2N®R†Ê*JšFf¶Nvº6R²Jv¾6ž:V°.Fª.Rž:Z¶RzÂ":£6V¦>j¾VŠÒJrÄN‚Ä*ŠFrºBfº&B­N~Æ^ŽÒ.V®6^ª:b®Fnº.V¢BjÂ*J®ZŠÄZ’ØV‚Æ>–6^¶.–6^®:bºJvÂ*N¢2Z²N~Ê*F²Jz¾:š2†Bb²fšÎFrÂZ†ÎV‚Â2š>^¶nžÒVv¾^ŠÊ>Z¶.šf–ÒJj¶R‚ΆÂâ6’2R¢*JžJb²6Z¦nšÖV~ÄNz¾2V¢^†Ê2R¶6V¶6ZºR†¾*Nž6ŠZ†ÆZŠÒr¢Úf’Ö2N²z¦ÚN~¾.‚Fn¶:Z®"B¦2ŠR~ÊJzÆ:¦ì–‘è��ëIDATx^ Ñ¢-G�Ъ¦qmÛ|¶mÛ6¿mÛ¶Û¶í™$k8`0V­ÑÄήuˆ“NnmfìµUëºóûßõß>øK“FfÕ}$kÍšxéüøxÿ 3öøñ™Ï­7vÕÕU£Öàì”äˆgçß9¶¼E½Òß{ëõ4C ä~ÙØ˜$˜#@ˆpI\ÜÕTò¢©3ãËñ:ÆI>ÚþkZ1t~ü¥ôþ–­kÌà9NȘž>=532—3t Hí‘rG Òi}˜‘˜ŽHö–g*&0ÜÚÁSTýììµjÈ:¡ IÁcåæçÂ[üâÓÑáaùƒ©é7T+ä G`O’xn¸@eˆRA æ§b´ çq uù‚RDÄY´£›mŠhÈÔAùIC@²Â0Šnx¯¡y놆“Ïøl"Ò¦w Å«‚Û` Ð,6§šÈ¸îWÍŸ9uê-W¬*ؾ@€�.Bü¿¦Ôg¯Û;·‹€ðqQ<£öص¸Ë™m2@çu*½õ:Í·iÊÊbz‘i?­3$“>Ž5…ÄX‹Ö\9wésÆøª×kÁ%5eJ7UF£5kNö‘d´-pƺ¼M=…ËãÙe¢¶#IH`Äew;ˆ$Ál{SoL¯N׬µlÞþ³6`ÒëMJ§vÿ×æÆ¯ˆ§àᢙ‰äov3Ѽç»bšƒmŽtÄ4šÌÌX‰¯ñ!ÈÉ9ßþÚWç\rùzGW—‰thêb$%©Â+Š>Ϊòž•ÊŠ÷ß9äL,•-•Þµ·c¬pCЗ¢T|ó¶ª*àOyåÓm{aðÏwߘðøyœ3‚›þFÁ¹å«åYv0ÉVrG²üý˽ûì"ÉâcŸjýgjt½¢BI‹!pvHŽ›¬×ÝÙás/¶zÌZûƒf¦ûÈìøü™Ý@ÐÞ¼à¼7Ò-åÊU­w&$|ËíÜY$Zœ8ï7ÖBÓtaX¢xÂÃËÃ,Ò<y,ö] æ°:rSËáhºƒêëDˆ“8ãa²ž@™Qün“I ¡\ªZ"iœ 0¤bö£‹F[.í¿ÙÖŠRYò?w8¬®w†XŠy“‘£SmT=»ûöíGáO¾�Ö‘÷^N›¥h£ÅÆÉàdbU?T)S>K{+ˆøðá=@s)VJ54=<d¨ñq"MóJ*ï*•þzRsÁ ¨E¯×» ÕìKïŒ áRŠÞ@&w(¯{ $BcÝî'‡mÁ0„ g«|GÒà[¬>Q¸¯Pø 8H–+Þßlnüæèh†{±X<^bÔÄVe)ù?59”Ç¿â´þ«s_S����IEND®B`‚IMAGE 1735 ./arch/ground/sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE v&B¢">ž*Jª&>ž*J¢*F¦.N¦*J¦6–&F¢":š.Nª6š*F¢">š&Bž6V®.J¦2’2Rª&B¦2–*Fž:ž&Fž2Zª:b¶6Z².R¦":ž2V®.N®6Z¶&Bš&>š.Rª:š2R²"Bž6Z®:’":–2R®6’:–*Jž>f¶6V¶6Vª2Vª6ž*Nª*B¢*Š&F¦.Jª2V¦2R¦&>¢>f²6’*Bž:^®*N¢2’BnºBf¶Fn¾:Z²6ŽV‚ÂV†ÊFnº*Fª"B–2Nª":’2Ž":¢:b®:^²6^²2V²6V²JzÆ.J¢6Zª">¢:^¾NvÆ.N¢:b²FrÂ:bº>jº:f¶Bjº.–JvÂ.Ž>b²6^®>š>b¶R~ÊBj¾"BšFj¾j–Î6b®Bj²6ZºFf².R®Jv¾>fº:b¾VŠÂ">–Bj¶>b¾.Fš^’ÊV‚Ê>f¾Fjº>^²RzÂ6^ªNzÆFr¾Rz¾:^¶2–JrºR‚Ê2ž>n®2ŽBfºBf®">’^ŠÆ>bºFnÂ6R®.VªBb¶&FªR†Ê.N².J®:^ºjšÒJr¾>’Fv¾>j¶&~.’6šFrºNvÂ2R¢JrÂ:Z®BjÂ2N®^ŽÎVŽÖbŽÎ.’JvÆBr¾6ŽFfºZŽÒjžÎNv¾.‚JrÆV†Î^ŽÊ>–Z‚ÊV†ÂNr¾2J¢‚²Þ*†JzÂR‚ÎV‚ÒJzÎ6Vºr²Ö6^¶.Nž>b®Jn¶NzÊ2Jª‚ºÚ6Z¾ †>f®2N¦R~ÆJn¾JvÊ2Z²~²â>^®JnÂ:ZªN‚Ê.J².ŠFj¶z®ÚJvºV~ÆnžÒ×ÏÂ��âIDATx^ ÒÖmI��ÑÌcûÚ6˶mÛx¶mÛ6š¶m¿Ò5£ ÔÉÉý=nU¥‰µüœuˉf3ùæfCÀÈhkwŠ1/¹}g~J6ç§Vì}í-§Ý¨¿©fg{¼×ËBRe7Ê ©ÏkjNM—ür¬æ¿e‹™ o~îÓ]Õ´„+”\û¸ÇQòr³õa Ù³Óâµ»üa1H8Pˆ²OŽuõï©Io¦$Ä3S'Sÿ”'@‚:ˆ Åàxœœ^kI^ôV$ÚÓæ’k¶¾1a0í±_Œ,ˆÈlÈû>oîà IÐÎdFêV¸@0ZСQPrL‚ÜÆ¡9 4†M¸Ú)ˆ¢Î¥€[Ýár]Ú4|tÛ43§ž€ ¡F†YŠCQõ›2Ó²5aY~û÷Ç/¼ý[[³‡ÁÄm{*X#¿¿ÁÝ<;v¶Íÿ‡“0ÅÍ•ÏZª´n¡ · ‹ ……Ÿ†ŽÏ´åD^Õy”ÎÅÝf5ŠÐ0 Ò´O(5żÅaä}v–ï\³k¡ùÏf–ŽzN{E`‡Ö¤üRWØyNˆgMK£"—cðøÐ›‘a½½"]įª¹ü$ÂÆšBnð»Vº:;¬û&¦d”�‰ºW’öpõËÑŒñCÉÝ#|výZw¡otÝGõ]`Û>™ô¾x6õíê‘›E¾~¦—ŽNªnÅ$ÒªäX ® U}þ3Û@áúšî·ôúñìIÄ<8Z¾’DÚ° 잸ï.ÿû]¨žÛs|ìAÖ!69ÜÞ ÇS{—=éŠecÝ”·ðÀK'îh–!ÛFÎÍW)œÍ’\]¯~·dêZe‡ƒƒ&äd^áÄD×3ó%2m2H,X^wÅâµõLýºóQm0�(Aã¤x)nKœú$K€ØpõÕ3‰“^òŒ¥5—0˜éЄ,"7Å%Àà¯7ߘ•#d.YÞmÜÂÜ K½f«FAзNWRKól»ƒfE ‰P~Jºú¾¶®ê"‘% ¥©  †%j”«ÚgG¿wþüù¹Ö»ñ( ©ƒõÜiYC ¥ÁŠíG;ýN”¢â]§FÒ@³nêßú—–sîÄг«¡¦V±ú ¨ÌŒl5r‘ey®õ7R,+«ŽFYJ‘|1Úfazý›×Àv+¡׳Ý^d(ޣܶé|»•`ˆ&KV],´ IhòÒÊŽG¢|ÇCªWWà‹éŸb¿úyXTUÅœþ¾K+«\'ïUœlô…ŠšË2Z¾\ü¢¿Š¦yþuï/ SQ����IEND®B`‚IMAGE 1347 ./arch/ground/sea_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��CPLTE&N¦2V®">¢.Nª&B¢*J¦":ž6š&Bž6–*Fž.N¦">š*F¢":š.Rª6Z²2Vª">ž2R®Fn¾&>š&F¦&Fž6Zª*B¦2–Bj¶">–.J¦:^²:š:b®>f¶2Rª:fº.VªBfº&F¢*Jª2Nª6Z®2Z®:–:b²2š*N¦6^²:^®.J¢.Jª.R¦"BžBjºvF&Br²6’>j¶&>ž2’.‹:b¶2ZªV~ÆR~¾>bº6Vª*J¢.N¢Nr¾>^®*Fª6V²2š*F¦FnÂN~Æ.R®*B¢6V®6Z¶2V².N®>b¶:^¶Fr¾Rz¿:Z²>^²:Z®&>¦*F®V†Ê.R²Bb¶Fjº2ŽBnÂ^ŠÍ*‚2Z²6ŽJvÂ.Rž&BšNvÂVŠÒFvÂ^–ÒN~¾>fº*N¢N‚Ê>n²2’^šØ":–FrÆ:Ž6–’ÂæJn¶:Zª^žÆ*Jž":’2V¦Fj¾Bf¶>bªFvº"Bš^†Ê*’2R¦6^®Bf°bŽÊJz¾FrÂ&>¢.JžJrº&J¢Bn²BfÆBnº&Fšb’Ê">¦*Ž>f¾~ºÒJr¾Bn¶.J®r–ÖNzÆ:ž.Ž‚®ÞFb²*Ž2–>b²fšÎf–Ú*Jš2ŠJzºVzÂ6^¶:’n–Ê2ŽV†ÒV‚ÂJrÂNzÎjšÖz¦Ö.V²NzÊ2R¶fŽÎFf¶*Fš6RªR~ÂRr¾Bn¾N~ÂNzÂ*¨Ú–���tRNS�@æØf��®IDATx^…ÓCm[�à^ÛÖ¡mmÛ¶íkÛ¶ígÛ?íÎéî›ÜƒJ*U”–¥èc éIÒèn|ÐR—ú8ÒRFFµx>ª¬ø®ÒV~a'ˆ®¬ôF|oÿ3Кd¬ã÷¿Ò‘mfØû÷oïEÞ‹²öˆˆš@±­Mj°â§ƒv/EëKMý°T¶ž±ÊÁä!s4A{ § k6û`T$Ñé’³~ÞšùÓÍû«EQ d‚pó°ÇÓ065€`®JDQXΑê8Ü w¸®ôˆ …ã£öß>YMVy„tà §Ýç>Œ¢¼xþ°²�“g#Ušò[ÐÎük]^~¦Ü*á9À,BÎÍÕÑ%ðH“Ÿ~™w~¥' € Ôúõ6cMM!‡Ôc] öN.´hgÌÑÇïîÚì\€äP…«—*V¦<PŽž­ªq´™oÜ'cuýìnÎ’™[¿¼‘¿v UûoÒj÷†¿Æ0<;SúMÉî<ØwåÄøøñêSC Þ<láBB¥%QŒáy0m¢Y¹³¿4 Ñè'©/oMÙb’1P(‰$QÔÉô¸þ͆ojj ×fKEjÜTa œü`­œžˆ›:^}1Úh”NøºfkŒVkŒÍ¾8ÓQñòàSøëêUÌÌíÚ•qi5„‰ö®_´þãËef«ecQ.¯îy»Sô—‹åþèZ_ogƒZ6·4 æû„6ÜÖ ”ûÂY•»½Xbe@YF'%†ùÃ[_ÏZ˜fOØ Ì'Órd¯^eTDmâ8I¨�àäï¸ômKO† { Î!L¼#DZÕÜäœÑvÛ\ËìåãtÛŽƒ…ôM8÷Üós ƒ.ÞqOÉâÐ;¾w˜G{Z±óšŸ¼ÿÿ‰#—O‚‘����IEND®B`‚IMAGE 1379 ./arch/ground/sea_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��LPLTEZ’Ö2V®.Nª&B¢">ž.J¦*J¦Bfº":ž6š&Bž2Rª.N¦">š*F¢":š.Rª6Z²*N¦vF&6–*F¦Fn¾.Vª&Fž:–&F¢*B¦2–">–*FžJvÂ:^²:š>f¶>j¶.R®&F¦&>ž*Jª">¢*J¢6Z®2V²2Z®>b¶2Vª:b²6’2R®.J¢&>¢*Fª.Jª.R¦6Vª2š6’&FšBb¶NzÂBj¶&‚:^¶*N¢.‹2V¦:b®>bº2’Br²V†ÊN‚Ê.N¢Bjº&J¢6V²2š2’BnÂ>^®:Zª2Nª.RžRz¿2Zª6ZªBf¶6V®.N®^ŠÍ":–&>šFr¾:Z®6^²NzÆ:ž6Ž.R²>n²FjºJz¾2Ž2R¦:Z²^–ÒN~¾:^®*F®JrÂJzº2R².JžrªÒR‚Ê&Bš:bº"Bž&B¦*‚‚®ÞJr¾VŠÒfšÎ":’2ŠBj¿6^®"Bš*Fš.J®*B¢Nr¾N~ÊBn¾>bª*Jž&>¦2–N~Æ*JšjšÖ6–.V²R~¾Jn¶6Z¶N~ÂBf°b’Ê^šØBnº>^²>fº*J®V~ÆJvÆ*Žn–Ê2ŽVzÂ6^¶NvÂ">¦:b¶’ÂæRzÆ.ŽBn²BfÆFnÂFrÂ~ºÒ:ŽNzÊ>b²>^¶6Rª:fº2R¶r–ÖNzÎFj¾JzÂ:’FrÊBn¶JrºNvº^†ÊFrÆ*Ž2Z²Fb²6Zºð“Eý���tRNS�@æØf��ÅIDATx^ÕÐc¯fg€á>ÛökÛö±mÛÖØ¶m³¶í?Ö³Ï̤Í4í÷YßVrå^ÉzëÍycþ”.ïmø/ o’ë¾0 á\4*ƒ!Ùç“§WýisÕD1 zíÐú:€‰&&‚g-}×G³üO#+F(¡£ƒá¨(H&D:µ¥"ý7 ”}oÄ£H]ç÷í›Ðö žW@Þî×5,Õ?Ù?x@üÔ¦ûÞ¬°Œ¼rðjÏ ÑÚš'I¿g:ÔÝM_wæ‹} €h_ùqÿM'ÍKàåVï…‚Ï'^ä_jÆU·½ù7%y¢‡«åñÝSwç*âッTRk>îyŸñ™ò!AñÝ•Ûj)†„T [\\•;=2š³>)_ÙFP^‚Ìj‡áÂÃqpÑ'•½Þ<o}úA»3‰X lr¡£gHV¿ˆa:Á`&Íç*‚íí‹åNgÓxÀhÍ}VRøðú7å² ÕW†f3èÀOf›Á˜lXdh‹8íÊÒÂ:ø2ÉÅß;2pÏ;_ãB磋¢u‹ÕËS þà‡o¾+R 33uxŸžB™`éO7ªO]u¿çF †SZ¡æ–nA­‹†{£½á•åÑòkiÏ®”ß ÃW-�Û¨à$÷ Ðþ*ÅGŒÇ½GGvl†v¦ÿ<¦˜Ëíêèà¬Æ'u{¿Ó.@(A²E:µÀ¥RìÕ˜­bK��tâx‚†Œ>©º¯S-|‰A~ÿs–äa63H(êÌÛ£®p� %ì'Õ??eqÞ¶7²Ã< ¼I“âÃDjj¨ß¶¦Ì­$?é»ì† U0ŠT ;öóÕbµpÎŒ­á¨Éa9N'pÞ‚Z¹t¦)2Ù½ukÉâ:¸«."“¯¥E;ñ®-ˆ5»%I_HŽV:Šü\˜f,†—Ò����IEND®B`‚IMAGE 1379 ./arch/ground/sea_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��aPLTE*Jš*J¦&F¦.Nª&B¢">ž2V®&>ž":ž2R®&Bž2Rª">š":š.Rª6Z²2Vª6š.N¦&>¢*F¦Fn¾Fr¾&Fž">¢6–.R¦Bj¶">–*Fž:^²:š>f¶.J¦.Vª*F¢&F¢Bjº*N¢BnÂ*J¢6Z®2Z®>b¶>j¶6’*N¦6’:Z²2–*Fª:^¶6^®2’6V®:–*JªBfºvF&2R¦.JªNzÂ:fº.R®:b®":–2š.‹2ZªBr²2’:ZªV†Ê2Nª6VªN~Æ2V².RžNvÂJzÂBf¶&>š*B¦:b².J®.N®6Zª:Z®6–:^®*F®.J¢.R²:’6^²:bºN‚ÊBf°>bª>fº&‚2–>b²:f²Rz¿:žrªÒ2ŽNzÆ6Ž6Z¶NzÎ*JžVŠÒ2Ž:b¶R~¾>bº>^¶Bn¶2R²*‚Jn¶">’Jrº&J¢6V²FvÂNvº"Bž*B¢6V¶2N²6Rª2Z²2šN~¾jšÖ":’2ŠFj¶^ŠÍ6Zº&FšvžÚr–ÖN~Ê>f®JvÂ&>¦fšÎR‚Êb’ÊNzÊ&BšNr¾Bb¶JnºFjº.š2V¦Bj¿&B¦V‚¾^–Ò‚®ÞV‚ÆFvºV~Æ"B”>f¾VzÂ6^¶JvÆ.Jž>^®n–ÊJz¾JrÂ*ŽFb².Žj’Ð2R¶:f®*J®R~ÂFrÆFrÊN~Â*ŽfŽÎ~ªÞBn¾Jr¾’ÂæFf¶:ŽBn²BfÆ^†Ê&BªJzºuÚ¥u���tRNS�@æØf��°IDATx^…ÓS“%MàmǶmŽmÛ¶Ö¶mÛög›¿j÷ætôÎLÄVÝ>™‘YïšÕNVtV€ñìÇ[(Üñ¥n;Iï0!ôW áÂçCËÀŸß+ “0¬VMMuGöÝ =û¤œ,Z”8ì±rˆ¯/¹ðà±")6õԸa¬¢81Úvòë_Ïþ+nP£{¢;úû°T´í¹µqôîžü_WqÈÎzky¾ûuM ØûŸL&ý½ê(ÚæßÄ�D }õÝz’„E#úx‚hÅZßù“RKÂHIâúÈ·- ¬”ÇËsl�X>¯J¡ã(ÃiQŸ¹b!–ó×­[7¯hNZ@5Ą̂nÌ idîÄqîÚEë@DC#0b’·§… ð#GJ%5Ø_ßÐ@-¢AÛÚ{~š1MäÀ–ËWÍ“Ò0�‘‰°Ò‚nžw„ ŠŒ»¾Ðôݘ¶%S`ÛÂØ;g „}÷ \KA{{+.ùÇ%meë+¤”ê€ÈÑ.4_~ÉÄ”v—–Uâ$†KJC‰¸(& ùWYJ¥ŠÌ^þã2÷!úÝ—÷fúÔ/§„gJ"NËŽ™ÍŽA·ÝP;YP{!d“_¾¸I©ÖËIÝ–Ý\¿_K±r<}ôǹ [õögxmÀRšyõãRÓ™&Ѳ¤ÝΑâß<þŠÃµn; Ã2›Å©­Û[Η{{Ž*c‹Qð¾LÁ°Ä0è@?-öýb£|C[¡}ÑÓíÈ'ÒDËÓÁÔØl6²—Ðg¬mb Å€@QÔÊ dO‹;«&—.¿פȵ”~¯¨'Œç. œeZå2ÆT¢G‚Žáê+ï7¯ ®ÓäDÂ鮽Ûo²«';šïðÍ4Ì΄eŸÿmCŸË_Üh¦����IEND®B`‚IMAGE 1437 ./arch/ground/sea_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��pPLTE&N¦vF&">¢.Nª&B¢2V®":ž2R®&Bž6–2–2Rª.N¦">š&F¢":š.Rª6Z²2Vª*J¦&F¦Fn¾6V®6š&Fž:Z²*B¦">ž.R¦Bj¶">–*Fž:š>f¶.J¦>j¶*F¢Bfº&>ž*Jª2Nª*J¢6Z®2Z®6’2š6^².J¢.Vª6VªBjº&>šBnÂ"Bž:^²&>¢.N®Rz¿*Fª:–&Bš:^¶V~Æ*‚2Zª2V¦:b®>bº6–>^®":–Fr¾2Ž:fº6V²2š2’*N¦6^®6Z¶:^®2Z²2V²>b¶2’&BªBr².‹>^²*F®*F¦2R¦.R²:’Fjº6’.Jª:f²6ZªNzÂBf°R~¾VŠÒV†ÊFvÂ>bªNr¾*Ž:b²NzÆ>b².N¢.RžNvÂN~¾*N¢*JžN‚Ê^ŠÍ.R®6Ž>fº’ÂæN~Æ.Jž>f¾2Ž2R¶.Ž:ZªFf¶^–Ò‚®Þz®Òf–Ú*J®:f®Bn²":’2ŠVzÂ6^¶BfÆ~ªÞBf¶V‚Æ~ºÒ*Š2–Jrº">’*Ž^†Ê*’z¦ÖRr¾Jn¶:b¶V‚¾.š"BšjšÖNzÊb’ÊBb¶JvÂ.J®j¦ÎJzÂFj¶:Z®.’>f®FrÂn–ÊBn¶r–ÖJr¾&B¦&J¢fšÎfŽÎ&FšBn¾JvÆ&‚vžÚ&>¦Bj¿FnÂ:žFb²:^º:ŽJzº*B¢:^¾Jnº>^¶Jz¾V‚ÂNzÎR~ÂFrÆ6RªN~Âj’ÐFvº]+®³���tRNS�@æØf��ÛIDATx^ÕÍã’\ †áÞ¶›¶mŒmÛ¶'¶mÛ¶më–Îî$]S5wõ÷{ê]  âN¨%èK7{&O|ÿskzíÜøFª/éßê}"C €$3Û|ì›åx·ªN7ˆy>4 $"W¾ÈÀzXÌL¢t¤SUþûœ­²ò±8óèØ˜ÕÀœ<¨kj’ÁâbYØ¿>c¢µ©ˆúôŸªp“†AíÔT-™znBÞ§>9/ò^ÉI…EÉnD°.TÀ”hcýÛÏÞ*ËŸ<Ly-8Ž;ýñä[Ïê¯n‡8‚q¾ñï/e�µ€0Èì5Ò^Ó¦íö5@’–1"¿Ì-U ¬×§`<Rýã‘þ¿Y>Åi¤Ýaz]©êËÈ€…ºtÇ“óȪ£F”$ §{ºkÍx¡@('¡,¤v½Ó#b˜åóô? F6Ô·–Î^”(ò0ÁBX”òDo“$^9¥2 ìF »g%ÚÊÛ*ÅC¼à82?¿¦º©¶+A÷­ �¦Œî;³°åB<†ãW. /¾# Æ�¬Ã€B¡�6üOç‡Ñ––F*G»77©¤Í¹÷kÃY �A„tç{¿d£¸‚“0W™ÅÀíȯkqݽÂã5>vè@ú£ÇˆÈrÎÙÊYƒý¶'8á¾p.€n¡ævî­d_Õ£šÕ+{[qšÊBr¡@^®Š-½‰LeåBµ¡^w£šÐDkýý]A;ð§? ”hµäq˵ëI[Ä`.a"#u¹�ˆò%¤†¼»ÇŸLêÊl¶xØÇZbë3 í2¸/öOÚÕß]GÐm ´ÏÞ,Œ:ÅN>¯.?{ø}êÝËQ‹›Ãi×çÀ��-n§ý¦Gf«?ó;ú»b>€"(š@¥XèÜn(ëÈ+ XœwHPýÕL°?¹çκ {Ú¼»Ç] ¯ºûeµ¶ E����IEND®B`‚IMAGE 1445 ./arch/ground/sea_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��IPLTE&‚.Nª&B¢2V®">š&F¦">ž.J¦">¢":ž2R®6š&Bž2Rª.N¦*J¦*F¢":š.Rª6Z²2Vª*Jª.Vª>j¶*F¦Fn¾6V®:–&Fž"Bž6–*B¦.R¦Bj¶*Fž:^²:š>f¶":–Fr¾.R®6^®&F¢Br²Bfº2Nª*J¢6Z®2Z®&>ž6’*N¦6^².J¢2ZªBnÂ">–2Z²*JžJvÂ.N¢N~¾2V¦:b®R~¾>bº>^®&>¢Rz¿6Vª&>šV†ÊBjº6Z¶.N®:^¶*N¢.‹:Z²6Zª2V²6–>b¶2–*Fª2š.Jª:^®*F®2’.R²:’FjºNzÂ:b²N‚ÊFrÂ6V²2šV~Æ*Ž2’*‚:b¶2R¶’Âæ^–Ò>fº&B¦Bf°^ŠÍJzÂBf¶>bªBj¿"Bš^†ÊNvÂ2Ž.J®.Rž>n²>^²:Z®:ZªVŠÒ&Bš2R¦NzÆ>b²:f²Bb¶N~ÆJz¾NzÎ2Ž6’6Rª~ºÒBn¶Ff¶fŽÎ‚®Þ:bº.Ž">¦*B¢FrÊFj¾Jn¶^šØ*J®Bnº6Ž":’2ŠVzÂ6^¶*Jš.V²">’*Ž*Fš:fºFvºBn²2R²BfÆ:Žn–Ê&Fš2–Nr¾Bn¾JvÆJrº&J¢&>¦jšÖr–ÖJr¾Fj¶fšÎFb²NzÊJnºb’ÊJzºV‚Â.JžR~ÂFrÆ>^¶N~Â2N².'N$���tRNS�@æØf�� IDATx^•’S“ei�χcãڶѶmslÛ¶–¶m¿loßéÝíØ˜—É×Ìz¨Š"‹Tsûðiδ—z”´mù¥5Tމ鏀ßXXþO_ZòINWÉ~÷7[ñm;„ŒóòåÞÐR²" ™ö"®.cÖ9’=þÏïS~A”LoÍõc;ö$Zb@ucåÛ¼Ÿ ®÷J)ß;¾¦oV"@vb/šù±õÐzàñ¸ PjùùjâV\ËvÆŠY|Hrö¡uÃ}ÀdšœŸe&Ѳ¥ÍeÀã£cµB5 §A?°'WÇ Žó°*®ù3â ž;¿o}èŽÎ,f²†®dY3.œµùtæØj`šeÝÝÎòxhYÔ€¦[®ž;wÑvÐN“ ¥®ù1|ž1¯ìî9–D&êÆË/é?4˜&ܘ‚TÐz¢83Ïvž¶²›7Oñ<CΞ<)ö¡‚R؂յ‹+é™;ßýU‡[•¹ä€?×-Ð苽Ã\%è9Ú–ŽÏF_¼é.}Ò©Ì©Áüö÷\ÌßÌ=¿V‚£zÛíÎw%2~ÂÃò[Y–Ïo:¾mNÄ~ðW%X}æÊ•æ®CgдõË :565´r,?us. £• pFRøÑC§sâ†ÿÕ÷kB%ªÖKÚ;÷ß«.Y6kŽ ~âãÁLMÍð@(Ô[LÇý]—–zb±,Qáµ–Öý‹Ó´ýûWQT’%oV—Òô&}Þâµµ ¤äŸ8bßr××Iíì‡_éþ_ý9U’Ÿ=}ý�±Æ©S‰äˆS ¥Œïó}-Ÿf,‰º®ÊgBØ¡ÐÕàÚîç€&šlÙ(ggš"}“äÞ&¡•$ª4Dô´Rˆö#Ûï…|wü©¥ˆãÞ®Iâ!. ã·RííJ[M…  4@³<&ÖéÀÝB£·Yb)™C™õ"'‚¸©@ü `˜'1¯B<ÝϺBýŽˆ%›–‰ „^4â°Š!«z¬j0\KUç7ðz�4Š Â`F“ÞM< ‘K6$7Ñ~âqø,ÍšL¶a����IEND®B`‚IMAGE 5627 ./arch/ground/smooth/sea_S.111 ‰PNG  ��� IHDR������@���[a?��÷PLTEÿÿÿJvÊj’Ò&B¢.Nª2V®":š">ž2R®">š6–*F¢*J¦&Bž:š6Z²*Jª.Rª&>¢:^²2–&F¦:–6š&Fž":ž.Jª2Rª>j¶*F¦.N®.N¦6’&F¢*J¢6V®">¢6Z®&>ž2–.R¦2V²2Vª:^®"Bž*N¦.J¦2Nª&B¦6V²6Ž*Fª2Zª:b¶":–:b®2š6ZªBj¶>b².J¢2Z®JvÂ>f¶*Fž&FšFn¾&J¢">–.R®&>šBfº6^²*B¦:b²6^®BjºNzÆ.R².Vª2š.N¢2R¦JrÂNzÂ:^¶*B¢:Z²>b¶6b²RzÆ^†ÊV†ÊFvÂ*JžN~ÆrªÒBr².‚Fr¾FrÂN~Á>bºR~¾2’:bºBf¶>^®2R²6Z¶>fºJnºFnÂR‚Ê*Fš&Bš.ŠN‚Ê*N¢2R¶*Jš:Zª>^²6’2Ž6Zº.J®6–>fÂ2’*F®Fjº">¦Bn²>^¶Jz¾:^ª*BšBb¶BjÂ:Z®6Vª*‚.R¢:fºFn¶>n²"B’Bn¾Fj¾^ŠÒBb²2V¦&:šV†ÒJn¶6V¶^–Ò^ŠÊFrÊBj¾VŠÒfŽÎNvº&N¦Bf²N~Ê.Ž:’V~Æ*ŽNvÂ:^º2N²*Š&>¦Jr¾">’Bn¹2†6Rª2ŽNzÎbŽÊJzÂ2Z²R~Â^ŠÎ:f²*J®SzÂ>bªZ†ÊJrº.šRz¾R~Æ*’FrÆ–¾êBf®V‚Âz®Ò.’*ŽNr¾"BšfšÎjšÖFrº.V²f–ÚFf¶"B–Fb²:Ž6^¶n–ÊFj¶‚®Þ.RžV‚ÆZ’Ö6Ž^šÖ&BªV‚¾vªÖ.Fž>f®6R¦~ºÒ^šÚ^žÆb’ÊJvÆbžÖB–z¦Öj’ÎNzÊ:^¾vžÚ~ªÞj¦Î&‚Z†ÆFn²r–ÖZ‚ÂRr¾¶¶¶’Âæ õÐÆ���tRNS�@æØf��²IDATx^ÌœC˜åìÖ†s]17meÛ¶Ú¶m[mÛ¶qhÛøicð¿IªúTW%;ÙéÉYÓ§î÷^Ϫaw Rš•7¼0TåWʃ¦b½sßsÿì%nú·¯žNÿ¦”èþÚ‰ÏfJ)—7Ïæ•ríþ¿ÜþÐ_DhÈLQm„B:¾ý}›rwmš<Hè‹p‡Ù<dþú¿ánÇÝ ¹¼YÌóø…\Á¯˜«ë¯_¿_¡ŸÂ}ýÅ�r,¤?TÝÔFv\ÉŸ³#©–§¿²®±¬× °äËO=Åáä“%“7ß ”Ë›…¼|Ú¿IB-ä ~¥|ƒªþv ý5øeûÙî£à¿Š”ý™VÛJ-Y2Þ©Ë›W×ŽÕøìéºÐ÷ßiéº)Ãaû{ï3§?9ô…üÖ<j>ÿûiÿ[r¹‚_)¿UUÿµ²¹f?)øgñòÞùýÒuý¡sÿóÈ÷Ðv$_>$™l%ÞŽ ê‹ãõŠ?üö+-!Or íê’Êó¨A¾MäQBÒr…÷·)úÕõw!ys¹þÐ<ÿµp^ÿìýóÝG òô—¨êõ|úþo$'Ÿ_¼ñlùÖ•½F‘BðßïÊ5±,KGún›•Ó?ýÇý—EùÜ Ÿæ‡›dr…÷gç3”„_¡ÿ—\¾¦<¹êþ¸¼÷ü„”9(æ×Rýå ªúC ×5a#¤v^Ú³ aìä5|“Kã¾\Í’š5ÓyMm[W›_½®ÖÕpHô¿ˆK¹øÊó¾È‹ùlîj~×’CÊý÷ÛÃÀýý¡Âffà7ÂR€˜Ëгú/•U¨éá8l±¤!̓‡áîî4ÌÖUž[¶âµ@¼þJ2YöºkÎYÈ“–RK‘ðK»kXBÀç�~ÿ-Ë /äsP1/2•÷/*õðþëí_ î#ö~Ëi)@Ìeù«ýåjúCp W< i6€¼=¹ÑëKÛO†KÑ÷Ú$à „2XŽÃH˜eyÿ¯^/€€ùïw™¦"/úçà 'YVÜŸö%¶ð~ýuõ/÷‡?4. ¹¬ø*/ïPÓúœ*Ò#ò± Þ’E¼H¨sÕTÒåêv`d[õ5`[¿ëûïu|NÁL&ã uJ�|.sÞ_ga¼BàE¿”�ä_¼bOÖÇû·__ÿ±Yû{ô>i@ÈåÍ3|‹Šþ]–4Àö¡“¨¦1èÒÕ£:C†aTq5W }7ÆÒõ(Ñm£t>�ròêj³ÞoOŽh©Ñ‰¼è—2¸à(F*VkJ&Û?q}ý Änî›éŸL"BI¹þ²3Ã籨葌þ䋤yȬþ¤ƒê°×¯mìqŃνL‡f-aç€yÿiŠ´‡æ çØYH$¾ÿðÃý-CÓ¼è—2XÂ@À*÷ýÉÆ­×Ó¿@ª¥SÜãû¿ÿ"Èõ—i>›G£¢?TjmkK£{ ­£?Dî î¹ñ³‰÷ñïVèTaŽ£ž£¥¥OµµáÄ¿^üì<€Ïõ×bàýHÃàSfŠœæy?,í ­¥€Wî/úí¼žþRæ«ýy?+2ýåGìOåѨèQ”/uï§!­ó{ëpäÞzUæ!›-liO¨Â|MA·›ä¬EíMݼ®v˜ç¹I›Ã÷Û×4CÏðÀ³´ÃMb€Wì?Ìû»¹¡*Mý)±ÔÕýQT6uó§’€Ø_~Þf•·¨é±4AèL)Hëäh¤Rg¾õ7.ÌJ9u›Õ•÷÷Mæê`š@u©M<?àsbÞsz¢s¼)Ú1Ã{&h”ÐI;D^¹?ð§nþÖ›.-ý'øþ…Þ/Ú±‹ïÿÐd.Ë…ûkÚð4KËçjúC/-¾cm0pÔ iœm-üÉvSë3þºo,¤Ubçö®÷ãG÷Áý üû^óÌÀë÷ÁcóQÎCÉÖi¾hMËbÀËœù}À+÷_$ô_ðØ3~-ý[D¾ feI£Ðß ú} î¿—çÿw öÏ3Î}E˶}t‡l®¦?´e ¡[û§wþÒ8Göñü§g|ËÑn¥;á"¯×›8òÝâïÏxŠ®¢áEž¿o>jó¿°òõ~#b�yñ$ï—v¸^a&¿{ð¯ûi¥è¨–þ“bÿBÿ »…ýÛ…þ‰bžPÜy>ñã|¹rhõèí/Þue¤qV¯æùЇ“¨ÓcäTc›ÍﯰÏ}±ýöž½ëʇ— dîïy}Ü>.c°Ña£�ðnàýÒŠõ"¯0‚ìù5ÄS¤¹¤äIŒÙŸxnû¨À×J�Êû ÛGóä*úC‹z.û°½Ò8ïš.ûhnþÑJk �Œ"ƒ¹Ô§<²èÓå ÃÍ/¯œG6ü]Išlù7ùè°¿ŒCä†÷`¸õåÝV»ýØaMýÁý nk¬#I¾ÿy°ÿâýÙæI�Šû¿ùÈ»‹zòþ€b3Ádœ3C‡Më™Á¸Õl«ŠÄýñÎOÿ£«+ä…Ó™½ƒžŸÜ9¶¸··‘„ƒ¥<ßÛ…zÙ(³WF!ðÊûü©Olfj¯îöÛÆ í§ÜO5ÐÓØØ×´/ýcíõ¾"°‘ç­f©”öïê|8ŸM§Ø²[zþ·´8!có/­\÷À)g6T‡n¸tã Á3ãÏÎÚ/Å]4Mgï*娥Ê9^¹ÿ&àÏÖ½öÃZBÂÚŸÚ_Èýœ b¨×ùèLHú'Û-Ü4Ÿ•öçy•O§ÜZÖdÌOvÈæÊ|‡zò›¡§V è^òÅýÍçžüdòùÀo¼Õü–4Üaôñü?5Ÿë¯¬³È)^EÿVÞÿÙϾô_†?ù¶®©Àþ ¿+ª�ðþ÷t;ëèh‡q7<øè×_)òOKóûÿäÛs'ŸÐ®Øª¬qŸ9ãŽ@Z§Ç}Ë-+:«íl¡`Q8ðs)·ûÌŠ!Z  ³{ã2t�. ãM™`¼¬/§ðð¼Â˜Ü5gVÔ„h;ã+ÛØðåÚU‘[¾S_Há~(­¨®ùøñWèÜ+ÞNÛa8l¤}Ãqž_áFílP‚˜×ÿñžW"WSœf†G*Ýù”Êý¡½kîÿ;'¤yš{ÏÝÿkÄà*œœ€=0›^z~ à“’€ÇÊÀF<Ú ÁQÜü çf¯à7’eWÊ’ÉÞ5«Æ·tÒ_¸_ÒTPðz}ý‚5«LG,ü¿ã'àR'[y¿ÓåJ†ÊÊþ\¼È(0sûGê+Á~Ó‚îînǛΟË#Uîá§Ë–¬‚´þb²aµ.,œÌœÖq:xÿêÈ^IÀsä(.Go@°þÇ^Üqº~‰Œ ] x5ý["Á ÒÞŽ¶,ñ aÆiBu òtÙªÕ‘ ´ç‚¾Ü�Ú2ê‹u.ñ&â솄>¬?âu|ÿÞ É=¶ü­�°8®Ý Õ5CuhV,¥OŸ9þ›ÈY«ŠþÐ+åL‡´OK¹/M’¤”"íñJàgIÛ)yÜæÁ9Ñ;Ž‘xåwʳlTZ`ãyåý6M¶]¸qSª©ÂaÉ ®©skORm‰Ûøû‘m;”¢$ya¤rSЊ{2™\´q« õ1wSdÓBÿŒl©<´b=B„L[M„qÌÛÃ&“#À~¦$Ÿ·í\�x¡¿ìý”æT- !íÓÒC£dT ФzSOMÑp¸g¥€Êjùÿ¯í£Èù©ƒÛz<i™ý3<jÊ#•¹À§ªS›NÕŒá(ËúF ²Ãc Pt0¢3ÌäJü‡§j8Å÷‘ø<ϧdšõÅã†{ˆjuÚ‹Þ¹à�xÜ&£¬ÏGH2Èû]: øqÿY•1Œ1د‹ßOŸYP}þ ð>~Íý“‘.—ÐO¸ŸÒüòáíSåHó¼yàM(š–ýðŸ2DOK„é‰ûeéÇZ bàïÙ~±\ú<ÿË{VMMðÓaÜ6;tW·>†¢å¼tj q„룈DžwPÖ]ÁÚÕÓ¹/äÛÞÆu ŠÛ,_Ý9$ò˽w‡O;lX€D¼b¾ ä”XÀç«§Æ·aÀïå(¬yiÏg¦÷Ÿ6â6.Ð!äâûµ‚œßôGø~B/ÞÏÏŠû ÷SšÍ0öjI¤yŠ-ØaüžÅ;^:K¸×KÚ[¤€Å;FÏÊÒÈm{~ñÙöñâ�w¸DRз‡çÑ"ìõ’Ž?´˜†Iët`Ĺ 2¸÷ìølôìfXô/&+0,c¥8‡ÍäÊ|®xµ¤£±¥g¸ƒ²bQžbVk‹<´c‡àçÿ ô«&© v`°'qm»2·ìø…ÀƒýAž9†ÁF .5â€OgÄý‹‹8 läý6ƒïvÀž(Vam#‘¾‹O„÷…~Éû=FRì'ðÒඪª!iÇPU•Í¡ =ðè½søÐÐPÇ1R�È ²4GšÝöxNðK ÈËâûæ¡!ŽÓHÕûX_damÔz~`l[m¯Š sØb3‚€<ržÉ•xƒûãlLûæ ñš®8kŽ$3°:a#{E¿{„جC3ìpÄÅDm”ÙæÐ=ÊóÂýlž¸P]ˆa‡ë ,øÅý©È9ø]!]"ÓÌóaŽZÏáÕn»S|ý@¿bÞ_?¤¯òHiÂV›™½iÜ33j!o\¾¼ßd [Í1çèq)`ùò±Ic^þÙq<\A™³’þŸ~܈sæÎÑKN IÒºµacñï/4•êÝ[7.ÿj¿)jäÌ1fôxnk›@Ð [‹³»®æo)ð sC±ìè%_€¬° ¨û¥­ Ï…&¾¯“^þ;Þ_‹9|Èh³Ò±±¡³Ø¹“ö0}ŽŸ‹|î÷PäQòì4ú~ÈGEÀ‹vŽvÞÇìù+Aþ»1σýÝNôüÅú]´ØO¼ŸÒtìï}o'iž쯬ÜY¡…Dvs”¿äÖ½©÷šm29G•äãœÿW·¶öV6Kú½€÷—€ýÀûØ„3Q|jáXCDß:ñÙKr¡;}_·ñþý©žfŽ´M¿²pl4´z‘øLnUàÁûà~=v+Väܧ;Õß?ªc˜/ȇ¯\ÙÍì×ÓlźîÓõõ/làßÏÄí'êBwzwø{Áý0ä- ûGCŒg “±û‡CAЯc¿©§™"'œ›u§Æ>hÐ1­Þ8믻Ìç¶CÂûv›£ûýDqßgc¼¿Ý+ö›¾ŸÒÜpà Uù¾Wø¾?¶ò†ÝUf¿lN©ðÇÌšüŸæý€—ñò5>Wó÷ÌëµøO€~±C7€þU'´û…ýAšFì¿r¨j}Pr5÷‡bëýy¿Wø¾ŠÅüX@6w(ú¢Hm~È[0~9ì§ä:vŒÂhmþ( ;b‡bþ Þ¨Â_£üšýX,f¦ÚhT:Wq¨ž¾O×6àûó²&²”NU}Ÿ¢¯Õ¿öøM`Y^·á’¢ÿJÓõùCv’ü¦ÜßPá÷#5û7¿©Œþ #²¿ŸÿoçŒA›Š¢0|ª¦Ñ´ú*‡B¡ˆÃßS¨VD)V˳(”¨`· O¥ƒ¢ ‘n‚ J R! bgq©$“ºiÁAQA§8™“¬ïs¹éCþoýø9ÿ½û9¤±0××àýt+Þ,_¨ö5†“­Ñ~ú½¹' ²fy²;?­gÞà>@£Ìy+F_úߢôùd2?šá¼ýû«3Ã{Ò¼þÿñ–÷dK<­ŸiÖd?=ü“=|Ÿ •Þ56»à0?\i yƒù+Üßa¾Øßä>@­ýƒì™ª Ö`?½NNÌ®ÕÚ¿¯Ï¯=wy{JÎë÷ üU§ÿÿ ÍÿßùêM“[isñ®“ |`Ó�����������������������ŽønžÔüÑ:ÉÔÏk~DöDª÷òi–û¹ô×ó”arÛÇ/ºxÒ}oŸtÙ1Ï÷òZ¿æ)»töçßFª—P<çïïä4²?–êÇä<ûW'“ïý”þæyÊ0•³ñCAO*žü%ÙWºûû;Åûª?þhŸŸàû�ÅÁÄþB?±¿y~ˆ²Kw?ÞÁO+žØç½bA¼_ ù<ûÈ>ïí*íÝݱèçêùÿÎy”YîÍRiÔÁͳàýþÞþ=¥ÒóýÂýƒJùZ¡_É‹¾|¼´#ÁóÜOÈ7¯äƒN¾pð/ÄšØo¦&����IEND®B`‚IMAGE 6104 ./arch/ground/smooth/sea_S.112 ‰PNG  ��� IHDR������@���[a?��úPLTEÿÿÿ*†Fv¶"FŽ2ZªZ–Ö.VžBr¶VŽÒ>–^ŠÊ*Nš6b®N‚Â6Š~²â.N²J~¾.R¢2V¦bšÒ"B¢&F¦Bnº*N¦fŽÎ>^®r¦ÎN~Î6Z¦Br¾’ºæR‚ÆJz¾*FžFj¹f¢ÜbŽÉ&Bª~ºÒJvÆ>bº6š"B¦Fn¶.R²Jn²>^º2Ž:Z²2‚">žV‚ÒBf¶6Zª:b®ŠºæJrÂFrÂ^ŽÊ&F–2N®Jr®Bb®.F¦.N¢2V¢NvÂV‚ÎJzÂ2R²FnºR~Æ2ŠFrº2š>VªNvÊ"6šj–ÒFn²RzÆ*N¢:b²6–Bbµ">’Jv¾2–.’ZŽÒJzÆJzº>f¾.J®2N².R¦ZŠÎ*Fš>f¶">–2V¶Jv·.Š6Vž6V®Fj¾R~Â:Z®:žJr¶V†ÎJzÊ:Z¶Jj¾jŽÒ6b²FrÆ">¦2R¶*†Nrº.Nª^ŠÎ2NªFnÆZ†ÊNjºNn¾*Š&Fš^ŠÒ&B–.–JvÊ*J¦*F¢2–&B¢2R¦*J¢:–&Bž2V²":šJn¶6^®&B¦.Rª"B–NzÇ6^²&>ž6–V‚Â6Vª:Zª:^¶">š.N¦6’*BšJr»6š>fº&>š>^²Jj¶.Š*F¦&Fª&F¢&Bš:b¶&Fž2Z®6Z®":–:^º2Rª:fº2R®*’.N®*B¢.J¦6^ª~¦Þ>j®6V¶:^²j’ÎržÖ2N¦Fn¾"BžRz¾bŠÊ.Ž:^®*Ž>b¶Bj²&’>jºBn²2V®JvÂ6^º&>¢*Jžfšâ*F®Bj¶6Z¶*Fª">¢Bj¾>b²6Z²FnÂR~¾":žZ†Â2š>j¶:f¶:šNf².Jª.J¢2Vª*JªFvÂZ‚ÃFr¾2’>b¾2R¢Jn¾Bfº*Jš6Rª*Nª6V²Bn¾.’:bºJrÆ>f²2žn¦Îz®ÒBjºH '���tRNS�@æØf��ŒIDATx^ìEoÃPß¿7C˜™™¡ÈÌÌÌÌ RU5½øÉÞ¸®¢º×ѧÑ,‚î<:\¦"[‚øR¬²˜¯”ŠoïWL:>`µQ¯Q„¸ŒßËp­þÿ~à.ÓŠ ÁˆO]‡ ÌêP§ñxfYÝ{ÞòX"3¾ q9/¶¸3ö»›¥1­LÚ”,„u�Øíý;GY‡‡eM&î‘¢¢ÞóÉB\V,Ùë�®Ñ÷Ÿ6´Ÿ¢€~ê—ý©ëG\®Þ 'oáùCgdËlqÝó¼Áªo¿‰Å÷çn!.+–î®Ñ÷ íÇöR¯^Mÿ÷ä‹×Öõ÷#‡ßß+pIšPæ –˜|r[<F!?bIeî ۃΠ³? ð5Yqmûq®Ý÷³D#û±=)õTôw üêíG £gÓ9r¶ªÌIÚ"™àÃús0U´dš³¹_ºÚº .+®qÌsí~¸Ÿ­ú¬Òÿ³Söã{©—SѯôßOZÎ>¸‰ó@ã›Më&í„ÃÑôb(Á dÏv ñ&Å<uƒ©iRÇá#�7åJ¾G/.d×+i½µd{÷K€p†­„%[U,yŠn@\À² îð—RÕxI4…X„´SÏÜûîʘH»Þ•2y‡?žù½¿çyÇ3üÁ,ˆÒéZq”¦É§‚µ÷Ýû“{W¹:sd´õq©¼y‚Ìq9¹Ó_Ìÿð—¯sr^!¼¬æ ÷'å&íWÞŸSà”Ïeö§ôKbåýÉýg£Ó½ÏT ½_R¡r?‚Ò¦ààìíòùÝaˆž2¸\þ+bJEžÞ)|þ[×´Sù• v“×DÊhÅœ�¼œ_ÌåïOÎ~åýí‘Ñç¿ä~)^ÆŸÚ?…œÊ•yéeêö#d�¯).®‰Éæ ¸À/Å0¬Æ„b܉G&Bµ˜ÎÝwåJcCMÈá0³vRÞ/æò÷1¸Mò+îájLcЙTìý’ûÓx¾äþ¥5)àd.=ànž•Y¦n?òAµ Ã0O&Vdz,Öþö­6Kì–,×ÚGÌÍ4M[¼U_—Äœü—Êû…Ü�ÙûE^ô§Ð¢ß¡r¿aÙÛCm_jÿ"õÌ…”þ€˜;”ßÏ.cQ·¹T;£)Î:™X¼G§ó·‡V¸ýy‹Š>©Ú™çÒÙ§Á@ÞƒAÊ{SÖ/ä¤�HÞŸàE*ü$ x5ûËíVÎÜÞþeö§Á$÷wÚ$�!—ï‡×»d,êö#”¡fæB¦9W&VÇÛzWS´ÖlæüþÞ×¶£ "Ób¾!_C-u¨¼_ȃ @â~‘OøSññÊC^¹¿iSè*¨ýûÝê‘Éý½Œ%rùþwÞÏ“ѨÛÔ·Ä}mL¬†ïØ:úµvÆM‡1–ÙDû™`º0Ê“(ƒÏŒÉûIÔ†÷ÔLÉ÷Oñ‚?7’(x5ûsAÿç{@ÿÌ÷§$õ·X$÷ó‰ý2g’ŸÉl—ѨÛPƈ¹`>ÇÉÄjx}Áü6îü̺‘†òr·»Íž"†"džPвQFŸŒÿØ%ÌóSÈÝ÷{¦xè_'aˆœ¢�¯fÿ;ë´Ü¶™á‘&óýê‰ÛÉýÝkSùHb¿Ü™ä³¬niºýˆ£ÓÇfëŸúg¹\™ÇØZýSßÿã÷¾YLmÊ:¨Ÿra*8Ìéoò» ŽzYËDû~ü.dê~»Ý>ÉCÉ, :^9ï2ä•÷k¬ÀÿÇUßtS‡™îWÿ~7’úËñ Ÿ˜®¿È㌕©ÛÌÿÁ<Ì10Éðìü_çȳ›Ür®çŸÖß&ø°*îæò±.v&ñô4þ®ˆ–/@âý#Œ¯½pŠÿuFJÜ?ö3ò*öÃþ3£^ØÿÝîWÿ~Æäþûò `?gO@>m‘oY÷ʾ<i‘ºýHi#wû±]?—‰•ù¥ÚÛ­ÿ¹cÙ Z¶¸aĦŠk`ØÕñÒiü†]-MÂÀýüØØûŸ=32É›¡?®f"¯¼_{â±]¿©ÅŠ)Ël¿ú÷Iî_ÊÅo¿>–0ôý!Ï^õœ,mŒK›HUû‘ŠæWUéßF2<ÿV´ðmîxŒ¥Ë-Ϩ;»óxi÷4þÔ½´;ã™-ï­ÛúfLòŸï¬Z6+žÑ¹]à•÷ÿ+ð ŸÇ¼hšEe°_ýû¡–”þ+?ëáÝÚ”÷a¦íyvi÷ÊvÊÉTíGöùwŸªÐ7‘ Ïÿnkæ½™u|ñâs÷l^ùªjÒ<÷Ì=¼oÿÜ3ß{x_ ¶Í­,,)ï*ùgwŸ2HÀ]>³À+îoÚ­«`s·fã7}pÏæG^]þ~Ø³àž¬_Méï²4õ›ÏÝ ”€_µÓ÷<Èì+Ü-gSµ!ˆ«ãÑ&¼Éð°dÌm²Zõ«}ŠÒi ?ÚÛêÜ/ç‡ùÅ&çþ*Çu¾ '/µåÿIàYâjNTJpùO¯¼ÜmÕ¸«~ufY® zÁýéïÇ‹û”¾\KM¤ö×þÓ¾¿ "ÑßB“vkB�ùÖƒŽË ÕìGø±#×_ZµÎ…dxêÆÈëo®šïòç¿™ORi¡ŸÏâœ=Óø/D£\O*ÆùÛ9ÜàÙsòºº±­k^’ì¹(ðÊýÀ?ßu¶êÍ>‚"í>w[{»'­ý°ȯ€ûI*€ûÌÉýk^ZuÚ媺 €9’ÚŸ Pss“ûŠfÌàj¨±\Y¥šýÈÊѨ9üÙr\&Væ·Í2£ÇÇð]O~÷átÙWWrNyÿÊ·o½Ê9%0kNGG‡õìÊk€oüxÔ¬C%‹¼Â)ꋚ©scøú'¿ûŸ®ýýƒã¼¥ÄêHk?쟻þÉi€-cø?‚÷ù³ÜOu|¡ÿÑmQ]ø³-0ÿåQ(±vtЂ$÷ÿeÑ}¿4Æw”@ä?ùʾZœVÍ~äØœ‚’æWš0™X ÿS¯øŒdú¬AåäýAÂPëæ$0.fÀp»×4ùËszïÿ;Èò ç¼Ø¿Â؉Eóþ÷åu•{¹ÁÕï‡ý]€·Ê�½÷7¿Òk0’V.ÿhþå+ýSý­p/à "ÆÎ ôÏ©<ÁÅpƒÁkB’û»AþøºBƒ×|РrWd÷'x¥óTïƒ-ÐY­™þÔ ¼.'ÞDRy¿)h",)Nc"‚áÁ`ÐDZPGï£-( _?}Àÿ~/§6mjrVÞ;g…ÇäÕ(L *Ë‹ýP±­Ûº¾(òzá~«5§–»ÏÕä,üñœ'Ñ?Á?ÿз5'Gx¿4ÇåÑhˆ J'÷y«³éÞ[®RÖK€Ÿm¤, ÿ´û•ÿÓô>úyŸ¾$Ó€°¦éڢьx"¶c ,ï ¹h! ¥¯¿�òR¶Žb]®å@†ý-JŽH¶Xàw°aô¿6øÌÎG[rÚn'Q .毳Èð0§`ÿ¼hIθÓÿãݤa*÷6­½–çŽ`ãý­G[Æ7¡vœ†ýÅ\ü½kWsGrzœ­€ßDkˆ ‰ï€9ì?éÔ9¯c,šÜ”Ä5(äÞ&°ßm¸ÓÍŽ“Ø/Á#Jç² P2· Éì\ñcÍ4ooÎ-©”÷£B.Ip[5 ¿TR9ᯠƒHóþ Ð¥Iƒ~îÜ’©e5CÞ‘ y¤é\ýÜw+ø:ÃXkÛéß%îyRŠ·‹þóB‡¼-¬Á0L:vk›ùk¢Ü¶á³%|î3`:W^¢¿ã’ø1 öZønIyXãþPÞÐïÌ>{¢âôÃïFýBÛnÝ|Áüàþ@0@F`?ŠbžØO|?¥3q'µDÜ’±2¿‚%‚O›ÌÛ5ïÖžnYwÈ»Û%Ñ>sccwžO¬°?-!yØ@;È ³ÕJÂÀ£åNôqPÈý8´HC-È)Lg.Žs'–Ý}?”âK…~{–Až°X%z‘/y_;¼_ôß?ÕŒFôV]0Œéöǵð?ôöûÙ`ÐÒˆ$ünVÛ'Þ/ò+XAi‡ØÕ¹{8nÙ°Þÿ­!‡ý-B?ú{>Õž¸‹Wþ2Èz׳[-¦%(’ÑÑ&ø´I·sFåÞlY¿ÁÃE+›²%QWŸKop;£•þlýÙÓ�|ª ò€üã]n šP[ØDaƒ6Þq�¼Ù5Üóg/QƒKÂ]BfŒd¤©æÓó ‡ý¡ÿ&úÚ’ºrÊÔ…5¢ ï04Á\ä¯Ã÷‰„‰%a†Òtv 2ÆzƒØß}�òv=›. äÃú%ún€ïóÚ”›Œ9;Â6м?áwV¶f¯)„ûQØ'xÐáëÅ}‰÷S:a[5ÞvN‡dtÊm Ot>÷7VõÈúg<ø×ß(–†Ûë!?/_fʘò�´Kðo‡««Ë™@¼_[ ø.šîò²d¸Ë¸½ÓõÜO^\_Un¨fª‰Æö9JS^üæ“üˆßL y^qØVV]Mj÷„Ì$OuÑ(å áý¤È÷ïC–únšâyå½ÊÃþÀ¿øË@N4úµnÀ¡?FR”±¹Sì¿¿¼¬îk[ÁC?1„|§s-xxc£a?: òŠúuN¾ŸÒqš—Œ4€ ýíÒ¹2oø‹é‚ª-ÿÔð„œß8Hä[ß½" ÛŒ](õüS•Î¥³GÊHð…WBKÁ>[Ùßk¹F+™ã2ç!üÖáóÎÒ„¿;ò¸®3ÇåÎ!`>ÉR¼ öxóìÅ#Õ ootqZænx¿˜WNôƒ÷9T¶œØsѩՂ¼3ÇiÆHà·$øFáýˆþ‹ñ8§ÕŽwZæ”·1bÿóNØ¿l øãÇÜyþ0ji9x?°1ìW8…~Ìäû)S×›oÍÛk!™…<äðairžg^þþ?ü}p¡ŒßýÌËÏ‚Ü$ƒ·º!ÿ·þ…&ꉬ9ÏZ)þo{–`ßPK¥•µ7Û{¸cnœôyŠ$Z£Ï¬yp ôÿ¢Ò‡Ù›‰îJÑ8æØJš@žà³$yTè .¤Žo¾Õ²×7€Ó ¿qð 7ùEþ"a2Â}­WW³(¡ãn½÷9Ž€û=O¬ö¿–òçüÖÕvà/ýiÜwd+MTŠý»Å}-~+†7ã /|ý’hwyÜ¿¼ÐîìáòáýÀùÄû)¬­m;Ìô€t»�Ïéa«—ýðX)ÃÔ ’’~˜ç<–ç?)µ•×…ÉÚ‚ë͇I¾䄹-ûà&ÇOÎßxæi-†ÇÆYʶzÏÓÇJËëê½fW6àÉÿýôäü––7]˜¦¦ÆóIÞ-ÃÜ 6ÜíÍoÙxä51öo¼ö¾æ1c V ò3Bë1€ôóÀý¹nà_n ÆvÄ¿(d`cã8e׉¼¸o“‘h<9Ñr¦È…Ùc5€,ûá6› ²;`¿×CÀï‡ýð©÷Sü>þ­÷–/¦.ydr…ïÛy‘çe¿oÿŠü¿Ñ›ØlÂ÷ñ‡6¥ø;@0‡—…ýßÒÀ_Zšæþ Ó02"ú«Þ KÉßV§èð FÃ~$½£«Á~øßÚ²øÝûGóŠ~äz½‘AYç'HºGüþü/Ùõ]€“ûþÿ«òw~ï M|Ψž42Žx^*°å-“*–1€ÅšþþŸ}` Í<cüG)ù–7@®è¯­ï2¢x¿t³å-MèÖèu°ÅB©üò÷Þ0i'Ôüÿ�÷å:hý\$íómðý9kÐ�žtÏ•ûþÿ+óÿö©y·W_Ò÷Îê<è�þÔ~×çå”ýú­d&þÃ×çµã¸¾`V.à%ý¿èÆUúݽ?¼¾Ÿ¥Cfÿme?b¤‚D˜Š^CÒ?â÷é| )þ¦u~œÕ@J„yIž]ø?RôC5š3ðßÄM¿üö°4ϨÙoDí™ùÅûáûQ¼[ŠÞÿÿÛ9{'º( ŸBˆ ‚($º)ìÔb‘Ae A¿ ëÿk!j£¢ê‚•ØÈÇ6GsÕŒJdãAÄ àFÖYÄBÉ ƒcV±‹µSpæÆé¼çÈ\†™â<íÃ;çÜéß“cÛ—o ƒß?/{ùößóeßG8°shxjòÜÕÆÜ]¡Øo˜œª2ÒxQ 5¦“;î–‘|'G¿¿\i„ò>ÀØÈ繂Py(Zï—d›5…×??¿ÆË?®)ýlÄóg¿øyùGýý áçûù¶¢O°›žÞÿK5eCýýV+•jî ÿ~hÛõå„äSež—¯*󣩑Î_—íµÓõ¼z~¶®YŸ°!$^?ß/ÙïwÅ| ÷¹v=ohÌÇ0,å8†3xí|Ó6JXÞ4�ÛŸÆ4®ii½¿kk½ßqÒZóAÐA‘A==¿ ˜†x¨5¿$,½÷—,½÷—Ðýé8ž Ã0 Ã0 Ã0 Ã0 Ã0 Ã0 Ã0æmÓáò ûý‘2®ç ü8ågp Föç5üŽÉw3€——ûC÷3¥'òW2E4ɥ߯Ò?’ýþgB€šø|pŸ�õ/i?~ËŸþ½Ú¿Ãýÿ„úÿżm"×ëâñrt¿`2¿ÏCb‘ýûââ½+ûõýû "6Ü'@ýÚ¿Å¿‰e ï¯ëûMd¿ß…ýò~€‚ؼ¼Oàí‡ù½z^þŸÄbàýõ‚Cx"A¿³µRÞP›—÷ ä~~õòÿ$•Ú_§ý5*ôÿÈûªú{:.ì§çWaß—ÿ'¡l8ƒö×i?„û ß?0}qPÞ¨*Åå‡r÷ýh}ßEòOýÿóæ“ð눊����IEND®B`‚IMAGE 8048 ./arch/ground/smooth/sea_S.113 ‰PNG  ��� IHDR������@���[a?��úPLTEÿÿÿFv²"B–.V¢Z’Ê*Jš6^ªJz¾"B¢>–†Ââ2R²RvÂ6Z¶nšÖ.N®*F¯"FžV~ÂBfÆ*B¢R‚ÎJr¶žžž:Zª>^®*Nž>b®:š:¦2†2Rª6V²R†Êr¢Ú&Jž^ŽÒ6šf’Ö.J²>Z¶Bf¶R†¾bŽÎ:b¶BjÂFn²Nvº6VºZ’Ö:Z®Jrº2R¢.V®Nz¾Fj»JvÆfšÎ:Z¶VŠÒ>^¸2–6Z¦Fn¶JzÆV†ºV‚Â2Š2V¢R~É6V¶">–:b®Z†Î>f¾2Ž>f¶2R¶&>ž*J®":£:V²bŠÊJn¾Bj¾f–Ò:Z²Fv¾Ff¶:^º2š&Fª"B¦6R²Vv¾&B–Jj¶2Rž2Z²6ZºV‚ÊV~ÆZ’Ú:bº6^¶>^²2Vª2V®.Nª*J¢2Zª6Zª>fº&Fž">ž6Z®2V².N¦6–*B¦>b²NzÆBjº&B¢&>¢.J¢":ž*N¦":š.N¢"6–2Z®>b¶6Z²:b²*Fž*F¦&F¢NzÂ6Vª6^®:^®.Rª&>šFj¶z¦Ú">š.R¦N~Ç6ž.RžZŠÅBj².Š*JªR~Â:ž>bº:’.’.N³:f¶:^²&BžBf¾^†Ê2’*F¢Bn¾&B¦Nv¾.Jª2’>f²Bj¶2–ZŠÒnžÒvªÚ.š*Jž>j¶.FªbŽÊ2R®6V¦*Fª.Ž6Š’’’Bb²&Bš6V®*&B®2V¶:V®N~¾Nr¾Jv¾~®Þ6’":–*’:^¾2V¦.J¦R‚ÆJb²JvÂ*Š2Nª.‚FrºFnºFn¿.–^ŠÊ:šZ†Æ:b¿BfºJrÃ2N²">’RzÂ6^²2R¦.ŽFr¾6’:–6’*J¦N‚ÃJn·>j¾*N¢.Jž*‚V‚Æ.’"BFrÂ&F¦V†Â.R®">¢6b²6RªBnºBš2N®¥ÒS3���tRNS�@æØf��$IDATx^Ìão4QFïß;ÆÚ¶UÛ¶Í×¶mÛIÓ¦MwÛ{÷—™É¾ÙçëÉ““ƒ -tŽŒt_^3X[ÏBüÝÝ Æ™y3 =\¼ú2?‘Ði…8ÎIú\•¿ÂýoUû«¤LrÒÕ¡lùzÏqßÐr”v¾wžzzû¯ãyKË`Ƈ8ÎIú\•¿Âý1Õþ¥êèGzÚÏNùTÃ'ˆ?öÊO†jkÆú¯xož©«£hðÎIø\£îo°(îÿ­Úÿ¹Jú}ë±þëüðâÍ+öhÓ0ß&06×¥ñtÿW¶‹]íÇ9 €kõƒ}I{%úñ;™Þ®Ž~T»•f›¿„CÑ7Ìæû½ÑÀ3žc$ç§=Nk£Êó�sâÿER ×ìû¼×ÌJû)µþFC"÷sÿ±M ­õëÒ4qŠ™,PòŸ¯/Xœ=n1̲«&Óõï‘òüNçÄþ‹¥®Õ÷Ý\LY¿O­ÿ¼(²,Mê×ú"÷#„öý»ýÈÚ±9̸ Þ7vþÒmFoŸË5e³\¬×|«Ëo(ËGå8'î_j=Ƶûá¾vݼ¢þHZ¿(pñÒ¾úCŠï÷˜‘Ãö;Žü;œ›}pçÇU(`êsLz*W‚ˆœ%—”LLš4ÁÍ5Ë…´Ô¤¼9ÒÁÚÅöêŜ׶Ù²V–{«˜k°‰¶•2¨s±Up±1=˜ &ø€4­ ±ä “Ð"T(3÷{V²õ¶¶d?ÿ~üy¾ßïã¿ü¡¬ûE8ûÔX6Ž-åªT¾Ð3Ћãv;gÐáN¢Vfá¦ãb—Å%šé§Ç ß?ûüìûÚé‘Of´ß/‹Î*Ÿã8;–Öß•„÷Å¡ðþÌŒ\÷‹0®Ï§ÎÂ+­¤‹ej"l‘³ÛIB¨ÁuÇ©× vûtÜ\04צÇ&øLòE¢ò…÷‘ªHÍV=ƒýÆÙî'$ŠŒþd#:.JåÂß¿\÷‹(ÖcǰlÜᆊ´<Wtæ…ƒ‹ün42 iï½g†Ë#÷䣂¡)¾p~‚çœó³ï3¼[TzàÜgrßÞ?ËýBýÃ$Ü—Ò)“ ¤ä¸_TéPÉYvZn$XCEOÝåõÊ#=—¾xé¥÷æï^efUFù~bZn¤"©i¾@|‚çœ?¡ ågÛÇ ­[ÿTõ‘£é<ãþX¾Hä õK2§Ìÿ‘@c ìK/•ÆåBÃrÜ/òxÈý]ŠÞiø2ï5Eo¤ïùŸ¼Yqßc羺©¹òïŸ_®j ÆëÅäÔ<¨'Ýâ)bSýŽÌÜÏ5RÌϲ¯FUyùô·sB<Å@ù1–Ñ/3@ ÿ«¯2ú+Àß3Á3ö ´Náû»„†å¸_D„a£©zŒ˜ö«ªó KÔ{ö¬s”Ä~ö§êhÔO“ ù×Âò>a>MlÌ÷` òÈ8‰„ïOøqž0'¹³«²îçýæ±qÒŽúë-˜(÷“º?7Á³:£¿¾©ú*a™R÷e}?øþI„Þ/Çý"–4<(Ûùµå‡§¯½ü»XãF¹\åR›ðÀh`k/+[ó݆^ÙüKi<û;€ÿ%CÁge;…"c\$¸ò~œ'Dž÷ÊZ¾l£(IÖ(þ×¾~ØÐŽú›¥&\”ãIߟ“ ’IN¤ô‡üï_úú‚Âýq!uß± Ÿ4ÔÔ½_ŽûEÑÚZÂ0/]œ­y]³‡ ÝMc\”ó<Ò–¸O7vv˜['xn/'uü“fŒŽ‚OtÌBŒˆÝŸžŸðc<!òüñç/8¤öhöý®ÆÎ€xéé—QIo·Úç¡s[¶?A¡À‹ TZxÿ%7žßå‰ ©û¦ˆMòkU]¨÷‹š¿j%ÛÇו„²•÷žTþ¯Ç ÑÑ@¸¾°4á[‰u%'&xŽ/WZšŸ_zðßšÕrÙ:çïñ€¿?=?îÇó“Džc[Jµù¯=~öý–eõëœÎxÿ@Ø©„ÉìÒ÷ç œþÇ<zI—>¥ÿ ä¯[ç yOÆ„”}SõOò«[ÉeY9îý± ßjý xÇÀÖìýCNoû¦ü|šuz“¾³~pÚõv¬á¹(×sÜ)¡Omÿã‹ùÖáWЧà¯mŸpJþHÌçïHã|$æg9È×]X¼ZýO”t¶÷ßÕZ˜’N¯óx1cÖÁ‡BÞvÿ­+¥ÿÛZÌöÊé¥[;æ…ľiú'ù/jáýÒFþ!§ý¢ºõu«›_n5sY Q”ÞÙé¤ðÊ„?èXýrÙÊ`SÓßôÀE9ÎPÜJÈw¬¾ç˜‚ãSå÷(c~<¿U—¬ò|ØÜÆ€Ÿå ¿ù­+u;›þ*ÿLB„:; ^yôÈ0ÎdqÓöO¤û½!f¡¾3µÝàŽÕ÷Ê*‚Ày!eßý™I¿¢n}5¼Ÿ@žÒ–Ó~Ñwö~ûnï¾ñÓ7D¹œ5 MéþÖáÞ ßøéïTÄ­³#kD¹ó·ÿþ±ß/ß»rx+ägŽþãï|'#ÿgVû”º«œ‰ùñüÇ~WŸä>¥Õ—3xÕiäg9àßÝúðUã·Îž]sÍtS©×«Nþ~aGxýt1ˆ{ÏŽŒPÛÒû·hî¶Åüx!™OÑ?Ù_îX9ÜöÄ÷‹>þë?Ĥ¢YlÉ_øñ›œtå[ÿ\çÃfbÖµÞ*ò |ü‡~=hÏÈ—®þ®ÉŸ&¹èûRóÃŒ8ï'ò“ä‡fiÅÑ2äçÔÐÀ÷Wë,nZŠUš×´¹¤¦º²;—ûþÏ§Š€û=RÍ[Ÿút.ó1_zÿ_ù}o}~T„Ä>¡ýÀ±Jñ¤ßçXúè ãýžÈi¿H.¶V–í5ôˆfy(ñðù²!Ý‘º_>mb™ˆ­¾ˆD$zRºgé®ç^Vï`XIºFc¦{k×Þ> ŒùT,ßväè/Ï$䵇¬0¥øÂ‡!Á·©[‡lʺ£O›HŠuñ÷¿wÛò2¤DÎN­‡ÁïGùšÌ�ä[Ѿ'€ï%ÖâJí/ ³Ã{àý‰|à"Q‚£þéù47P‘äçIä¤uOëPfróPöýü¹¨Øã¢¸¹+߯9ø;]”n®ãÊKß[;±eÅË_<²ÖxQQ‰‡w?·òMe*Þݲâò¼gÌð&Õzæ�G~;Ÿß`ƒüÅ Y‹ÍÙ·«ùòßW¦oÝ×Âsð÷t3 ¶Ö£¨¿¯¨T¹<•Z{ÍnÇŠËÿÃû{p¡+ü‰ýG?^œ¾òc¾ä¡çöÿéÚ±S…d¢ÿe´å‚sM¼ïKå©ý‹ÿ{­O[HF,ºÄþß_Ñ`›j_öÿÉÆ°×ûû·­Íî¨ _ï¯÷ö—ŽÊó;«gà5ˆ‰z’Ķù0ýÞë‡M•œ¶è´™¦9ÂâwWÅ|å÷ß¹þe²OÒwïÞ$U¼¯-\Ôߟ‘.n ëiù‹êûïÜ^ú÷\ççG‡ÍÛ0¼j·Xå¦ÅÈ÷×÷·ÜN/üqø±ý××ßiª¬ª¾ò—Äýb¸Ÿ[Ô_?T¼þzŸËïü¼î|Mr­õs?uG}¾JyñľxÿXâÎóUÕ?yççƒÃ®$?¨öa‹P¿Ciû¤ ñýÙÿgæÃâ‡E³;¬Š!ˆ#ÅÊJÜœ‰GZî[}j+g! ‚P·TÞ4§ –ߘO*p'|½…ãx¿RÊA>Ã,½®¬ìNø„ç,bï³,û®§d«ïºï³ªÁ@þ.¾¿Îî–YŒ㈓Ø�ïçDâf]ª? ?±¿Æ`°DŸ³ÖDÄ-t?ò¿Í¿•ÙXU¼ÿ€Õ>Aï¿áHe·Å`F}6–˜àý è|t¿Õ÷#¿`Môo)n®ÄcÝ&òÉø~Q¶3ï˜Iç)<eD³;²c«½¦™z|šÕ¤¦ÙF¶»¦¯°z =QIHŸ*hqq#ùÐ<÷ [×ÇûÀeo0@>•äÓ˜Ú†üns gÒ 9:y_TwWº­É%F¾ùØò]LWßKv‘v+tûlCZ™˜ 2›]CXa!-fBÀ-N¤ñþ6Ž÷cûýµìo­édÁ‹ôa&t?ïÃ>Œ®eN„ðV±“´G/Lê_c¦MÏãÀ»FÑýç±ýÐúÓb ñÄ=Iû»Á2`…œ˜Õ#å£~ð?ö~ÙN4j‰0á…xp¯hVÇŒ„q5•Ô ´Òs¯^ZþÚã~Žö[ÀÓU¥ù¯Þ[¾åõM›\ÜZðvÌÝO“Ñ(ÙH1.ð'UƒéÅ‚sx_¥é¼Æ�å îí£T.ÈÀá8Vðö©s._DGe.²QÂÐ óïRm´Ýî‘YÐýÏœ{õ2Ü>P†kÐÜE>~4æ¿ ¾ŸŽíWà»5>#SëÁ8ÜŶð÷#ßœbð ¦"¢—q‰þ‹8¸ŸeÀçûŒ ¸l‚OôwA†Û=ßg$ ß.“%önB>II(®Þú¡üx¿øûe;7HŠ2Rø€Fg÷o²”|«¦o&Zφ Ï>»áÈoçÎÃII€ »†5}dŠðȳÿú‰òû?pë”J%øÀ|ÿ‡ÐåÓRMѤZÝóaÏÞ¯ZÕÝÍRpðª>–Џ†z®Ô)ëzz|Áû«Ì8ørŠÃ ŸRá6Çú+uO<¡ì9óȳË_h®ú¡ùK€C?–RYÀ¿^7ˆüGâù7yŸ¶V‘L¯Å6T|P»ùݬD¾•÷qÜŸÒß ¾DNáXU‘˜bpl’?‚|èï‚þp?¦®²Ø’ügÿ¤ü-øÐO2q,_Ùý¦~¿ô¿¶×þèðA¨„yvÿ[?:¼ 'UîXK_ù»ÕÒc~zî¼]à/iP5ªjkS„”Úý.Û<![L¶Ä}[7äÿ&–/N¸äŽoŽûˆ/Á ‚¨­%ƒùã%FE¯‹Ýñ—Ó«}~?½O¶Ê±ö7‡—vwÓ,wuÜÛ¡`,dø÷훸}²)ûÖK‡—t„»–äb~ »ã•ÓRðmóøýK!ú³\~ý§kÀ¯œ^}ßïçöuïÛçâë½£×Ú&úC?Ùª¸¯R‘и>ÎQn¢?ôSA>º_Ÿð£ð~ûñ~ˆÇóÍIûEÙÎÆOo9CxѯVTŠfs¼à—ƒ¿½¢ËYÒ‡Ãa]‘ÛDʽÎrNû«&_ŠÐõùì²~¹Î„‘ß7ÆÉ¢ï­ð‹ÀOê^(‘ ?j‘—tŽ”;qÄǸh”¤ˆ¨…‘„a 8g·Èå·n9»ÿF¡Žº£.f¡|ôó“ryçqç xÅMÓ໢øäóùà»P¾Ïï÷»UmQIÂa eîw·{?íŒóûvšv3(¢¿=J†¼·xÿU¸ŸÛD“*†ça´Ÿ£-r=ôå[9ð㜿|n“»]~븳|¢Ÿ%(´?óý„Ï ¹q#UB›¬»E³9Ÿhà‘ä%œfx7“«Ãå¨uYdáÜ'_:£ÉÛ(—빦a<Y Æ¹h^ÇÜ'ÿSÐgyŸ Ͻð×3}õ!Þ—îNpRn$¸(ÿ†>·úÑp¿Â¨ØQ˜ÕR./L5Úe‘Ïæ>ù× ¦zyõ?+:®µmå9k¤N Ï}òÉ }ã½àÒ†9ð]•Ã\ž„·ËòP>ìoQú`ø'm Ƭ¶q¤ÝúÏ“‡÷ù îŸÓùÖx–çEäÆUr¬ÉŠò#Ч öÇû{%zºi.ÇtŠ$ÿÁ…¨¼ôk†~|~%ìƒý™ï'|6KÖ<¸wG=˜h6g\òþǶc¤Ýãñäêø Ý%ï;÷ÜxºX7.Yi-ò“v ›ô7Ýïwïúíâ§Ï¨ýB~?æ.qò|s¿äx¤UM“\Rÿ耿üß-V“›õåЫµcv‡)ë4‹»ö~­÷xמÅgNkÝîðû½­Û޹Q¾Ç¦¼¬Á,îM…µ%Ç¿»±àtéøfª¼Æ±Íïæ0ù}Ò];Àû|>ìïÒÒn?†aœMy¯x8Ê_P\üxï½f·c>¯Á\d¬ÿžÅß=]ºÙ^Ó;´s1OÓ)'xÜW×o–C¾6è>:gU>oâ9z¿»ð~E›ÝÆ5¨?¼Ÿ‡ãóѾØþÅð¾›³ÿ4¦úê–-§ò ñì>ëÛr üw·çê8»Œâ¿ùè«á°qTOô˜¶tK~iÁö+1ÜØUn/ù棯×ëCB~òßyôUýh@?ʰôXé3[ ÿ$÷:KÄK>�®7†F=¶eK~þ3?;pÅQás/3RÞr9pt ¤úkÁ_qÈQ0F.[g,éÒ‹—|~8–/d€—jóŸy»ùøyË)¯S/ÞÁ߀þ,}µôTðí‡&ž—�‡|äëõTñ×òß.h†|¸{W|?p´Þÿ5ðßÝ~òã|¢ÿg|ÿ"Ä_â‡Ñý ÇeÐKþ3bùF ìí“èõ¢lg}¾Ü{ò¢Þ-üùø,Ÿï·Œtv}êužü³œ<(ij>¿|ü÷O¢ü/sÌç ÿÏÎö6¬#GŽC~9ïOò q­ñö±ìù#^È¿˜ûþÄý¿Þ¿‚½à%®žäã¨ßº6^­³dË¿åt:cùW!?çý¡?wAþÕA²ÓYò¼ø‰|êW<Ì:f鮪6I/ÿ]T7‹r>“Ÿ?wì*«b)ðë® NÒ™|>½lמ^Š Ý»2¸+çø‹Ÿ-\(?y««-èXÒ¢aà£üÄ )=ä·éÙòw´@ÿ6]Åúä;GF ŸßàXÚRÕ`u¦C·?^1)ŒtDùEØÏ9²¿¿F%auŽ{WªE9ç_üLÁ„:Ïv1ºÖ²]U½ToÐqïzuR>ì—Ÿ…~ºÖÿoç|cÛªÎ0~šXT«ÍLédÉÙ‚¥ AÙÄ臢¬ÝÊŸ€»O-‚ò%H Ú×mâø:]np/Î\_7(¸u€xä’x*J"ÇáÔv2ã²`„&–¶ælRYãšF K¼ç´Ú°{ï¹çÚBò?_zïsÞ÷C”~d&1ñ• ÑßnüÑydE—òçYA€ù`A­í°O‡y,EÇ6¼=³ºººÕéõÆ/ß»ñH wÀžÏçèÀ¥ÂÜ"øá5Ÿ-†\ÔŸî߇ƒ“s‹Oþ¾öýà¿Õ™Ïrø÷áÒ¤:ö¤…û,Ê®Sïônõd‚HïGæ¿;r¬ž>½5ÎÕ0QQb1Û=A>Ý’.çÏ÷N¨ækûøó鞸"ÅìUð/Y²ê„3)½ þqõò|ÿ2‡ÿ S©’ífð‚×{¤ã äû³ÝÔ߉%üaÿúûT~ÜôþNŸªÚm¤Ÿ_‰{jÖVñßý�‚SíB?}_EâðG¿<r,•-I$ŸnM~š÷>wüX¶®ÔÎ[ÉçÔ±”¶î¿æßûîM·=wü˜‡÷×s¿6Åã?|8• »Á”Û:ï‡àûƒ°ÿü&ðJ1|…¿¸aï"‡ÿ¦áÔÅR9fmýŽ£a¿8>öîèî¿X¨¿ôÎáæ_²%—ݪèAVùó-OOý3·œP&<ñZÊÏOÙr¹=‚Uÿ±Ýû>:üù|ªº>—PEï•|ÃþÇRÕärÙ'z…(¿µ&‘üýØÓpuýß'è¼ïÀ>ÿ~Ûö!·÷"K²ûÎÁý<Fö÷c¡vúæà>\ý�Rçâ€?4ƒ¬ëßí ÆÒ‹v˜Oêpž|zÌݹb…f°uÿÙ—? c#+ª?¤›Ÿz™ÇÞþ’Cüê‡|þà…YØÿ‹´»Ó éÞoö0W?A§' þÈ¢<‘Àý#ŸÄÒô~RÝýWö�çñGX]Èæ‹j@~c¬Tpv´¨i:œ+Ÿ®(Z~´1ÿµJ®+1-ï5šçñ¯(N¯“ôX±ÆX<÷š‚Aüu (ê¾OQ+¦þXQ¾4dYç¦ý38¦Âýá~"®£X�>Äál¸˜;QCJ‚ªÌü³Í“O·%Å<jPÉ øc170÷¯f„Á¸ó¢$Y³ð=»¾´¿÷xQãûkB—5$’ÿÇUMÌßæÑ«áY’‡?*Øq5*šOÇÆý<ù|{¦9fþ5hîŸÖh>ߺyú‚$Ÿ¿¿áû8ü¥æög÷;˜û#Ï5¡„wGÑ-bŽ|þ`îÁPÙÃ0õß³£8"—Ó í^‡ÊùH¦)ÿ±H3÷%¼‘¢»„m¨)-0çÍóéJSíæï—B§ ÚH’Ò¤?š;ÀBãþÍ«­ ÷@[mµÕV[mµÕV[mµÕV[mµ%9¾_Ž.Ä–)O;›ãì~“÷™qd:ZZìüzóÑ|=SæÜãƒüý‹7ú}šÿg SÎé`ß§•Eòó ,±9ÈŒ«$_˜òšqÚpæ•›Œùò2sòÿw]ÐC´?€åÏæT´ÿ@—ØÝŒûµ„šŸgð*›£l–ÍQ–æëýˆ%É”¯AþþÌŸVŒç~æ|"ùý{ö‡y:nƒÈ~å„®¿cܯ%Ô¥²óë]ÝlÞ§¦™ù@¾1ÄÁ÷ ®$ yDÆ<Núô÷§ïƒï°ÆAv7ð(|_‡ODŒûµ‚þþÒ‡Ìü:äó™¥Ìçi¾?©”!ŸŒD8P¯H²,?¦2ž—eƼœô'Ô²?}Ÿ ó2ë÷7áèž-t?ø¾ÿã~­¡“׳óëgòkÞcó“—óõÑ(Íßc#ÂAȘ§å°ÃaØŸƒïËÆßŸ^p‘þýÉûT2_PãÈGÐ_°úàû:|~þ$ã~­ ó³SÅ+¿~í/ª,~þÄT–É!Ÿ!ùzš¿ßàsõü#¾äïüŒùÛYóÅKܪ³SÐ/àƒ÷érzG×nÎnÏAþ÷Çï˜eܯ4)ËÌüz©Ää¥BHdñIÈÇ{I!�äûWÿòº ýºFÀ{§§ŒÚqO-‘þƒÏŒú€Z/™7(eíþƒ×q×\&ï‡÷ɼBxý}XœÎC?€|@——Œûµ€$Ùñ‡d7#¿îp¬a— GC—Ã~MI¿‘æëåeРÿ€p— ù{AÿA~×Y—ø?ag×ÌCÿ€A‹ö ¸z´ÑxmÿÝŸ¾Ìk9܇ɑƒö�¿]cÉfܯ$Ð|½q~½8ÔÃâÛЫ§Yó¶\ÏéÞ1èØ6²«Ô;ð¯HfFË=+àWAcë"�Ðã᥷¦F“’á|¡·|h03¤ 2àã}J§ùú>:¨åaˆÉQqùÕ¥iØï„7­;_Ì1îׂü=3¿Þ3í²ïfp˜7ç$,}BúÖ­»äÿÕï7p+Ù�ð‡7§ô¸«ã-ü"ô'ÎwÀ÷ï#ó×Ì'Hÿ@ ùú>«Ûj9ì§ÇÑwçwÓþ‚ðÙ Þüôÿïó-èáÉþµ ����IEND®B`‚IMAGE 6824 ./arch/ground/smooth/sea_S.114 ‰PNG  ��� IHDR������@���[a?��ñPLTEÿÿÿ vFr¶>’r²Ö>n®>f®6^ªJzÂ*N¢6ž:^¾žžž2V¦:’ÊÎÚ.‚6’’’’JrÆFj²‚ºÚ6^¶Z‚Â2R¢":’*Fš*†Fv¾>b®.Š:ZªV†Î:b¾.J¢R~ÎFf²Bfºz®Ú.Jª2’JvÆ:š>–VŠÂ2V¶6šJrºFnº.’FjºbŽÊ6Z¾2Z²NzÆBfÂ2N¦Z†Æ>b¾FnÂBr¾R†Ê:^¶~²â2V²*FªJj¶.VªNv¾VŠÒ">¢2Rª:Z®6ZºJn¾R~Ç6R®2Jª2Nª>f².–nžÎ">–&Fª"BšJr¾:b®Ffº:^º.Ž6V²NrÆ>bº‚²ßR‚ÎV~Ê2žFrÂjžÎ6’2J¢Bb¶">’:Z²Fj¶Bn¾>f¾.N²ZŠÆ&Bª.R®b’ÊV‚Ò:bºJnÂ>j¾6VºFvÂZ†ÎV~Æ.J²^ŽÎN‚ÊJrÂ.šbŽÎ&B¢*J¢&>ž">ž*F¢*J¦.J¦*F¦&Bž.N¦6Vª2’Bnº2–2R®.Rª&>š6Z²Bf®V‚Â.Nª*BžFr¾2VªBjº:^®>jº:b¶"Bž.Fš6^®>f¶.N®6V®6^².ŽNvÆ2Zª>b²6Z®&F¦*B¢V‚Ê.’2’6–*Jžj–Î.Nž:ž2R²&F¢.N¢Jn¶:b²:^²2R¦V†Ê6Ž^’ÊNr¾*Š*Jª&Bš>fº":–>b¶ †6Z¶2V®Frº:–Bj²2Ž6ŽNzÊ*Fž":š.J®Bf¶Jv¾&~2–V†Â2ŽFj¾JzÆ2N®jšÒJvº^ŽÊFn¾6Zª&>¢ZŽÒ&B¦JvÂ">š^ŠÆZ‚ÊNvÂJzÎ"B–6šBj¶.R¦>^®Rz¾R‚ÊnžÒ":žRzÂ&FžVŽÔ6V¶JvÊ6b®>^²":¢Bj¾>j¶BjÂ*Nª:f¶>š¸ŽŒì���tRNS�@æØf��eIDATx^äÅn+QÏ—ƒ™™ÂÌÌÌÌÌù­¢,Å×¹>‘&žMz[j• °“É•¶½A#ÆõòÐÑŸ—½÷ÄÂ]§×F‹¡æK™Ç8ÍKþ®É÷|Ô~èLÄŽ'yÖñ‰³_™xºË0u»Ó{h6ýý6ëoÆ©bâOâÒ¿6~²@ï~âOb³^ý ©bÝrÝœãíÎÕ»LÄãpÞ7®ÿeæ‡Ã3M߯8á ULþ®Á÷OèÜOþ^»~è©WXIŒwcüKê‡Ë%Æ¿§í›?y‹çSÐúÏîØ:Ï#ÜMÿƒY×îÇû³ sÅá�5ê‡èø�ÇY®Êó²Ìzƒ¾”g7à ‹ oûïnP Û¦„GiÞò¿Ë „¸Ä5ûñþ}NA×~òÏ~‚?ÚôCVdŽQ¥ª\ÄV–mP#CÁ¯ ÖŽÅh›ö_- ¾êüÔGó–ÿIúLˆK\»ïWÞ£àÍþ@Å¿Âÿ’?º�^ïäÔ|£›ªÓ<ž=̪mO³æ¨Wt¶• ‚-‹ ƒCME*Nñ¨5[1bqfì.3ëκ¬÷Þä&7¤ù§—þ¡qJø—T¸CÓi»î!!=­±L¯Åº£3§dÃÕb\NÌV`ØÂ«}~7ICs“Ü4ÏÛÏù<ßçû{q_¤•ˆQ?Üe'äír2É¡¡Žó6•o+ßvy8N ©·Ì[kîöëòòýº\¹‹|â“/hA¾`qùâýËu„Ü*—Ö?²äóàÖü<¡‚û…ùi¾”oËšÿI‚Ñ_bôªÝ´§ŸÊÇÕ$†QSq½k„&=ìt ŽÛ°‰ùæéüÜw8Wî"ŸÖ{)¿ Zt¿#M/Öß1q؃QTAýS�ò½%?­ðùù2¹Ìû­,çûd_‘Ñ?DÞ?{AºÝÑöxŦœçÒíÊññ–ÖÞêŸþÌ7¿£ÞˆÙ †©M6áçædîØ—ûä|~ÅxËVa2â9óÓ~š'´4§}¾ú«m •cÝôÏêó|`òg îokhÉR¼÷SV¤z$Ú_¢µôú¶¸Fò}°æ»¸Ïö^ùèßþ÷¿_¾~[tÒî%¸ s:åçâÜ…<¹<ïëgï³N8öô ƒç…\û‘ŸÎ_ðø´žïOa¾-]#ÓûŽˆ÷²TÉFp?½¥+çûò~óêl1…õ—8¬ïÇf.ù‡ò°\òW¹÷tï©ü×ÃÆøÀñÙõ¶©«R¾12“•ëóæ… >ËØý%šia.â A˜ŸòÓù·ˆI® õÓ¢ýŸÃàãÞ]'Ú_�Òý%K˜ÌûQ~Î÷?ÈÏžSP‰—TE,Ú�+Rà¦^m%i1›evƒæ÷Ò>¨•6 øc"¹©Ic£Àg^”¾ÎƳ„'rå§ýdþ"3Å„xÿêÏyÛÛÅú Aº¿¤ðÑfÞùB?ÉsßKsö ‚úK8&!Kâ«E |ï?•)pûÎ[}Fa,‰KÿøéRE,Ñœ.:“,|½¬´òYœôfÍ·[mÜ‚°hÿäƒ)?•¿ØLòçÀë/Kô¿þ½”3|>÷:‚û!÷ žç¹?ÝŸÍ%Þæ¦ãü%Wk¦%ÅM s²ñªoj¶kvXf6‚B4Ø}(¨(-a:5ôM6¡;¨ˆÄ€¦>µßc”ÓÞ´ò¯ dàÝ,`ñû¡ÿÐ75ïº<Å÷¿P¡Ëê˸ŸÏÏ" É}º¿"W–xÁFN1Ä»÷JŠ•JÇÈ"W¾÷‡wcÁû¤~}AšFé»xÕ%7ªˆcff.^ÕøŒ `a¿qp¼a<í£ü,¾ÒQwñ„ |‘ A3C¬¼÷o-¶?ø ÎÌû!?{àš<÷/ô1¹²ÄûÃô½qW›®é܃²Ò¬Xܯ¹K |x§¶ôùWæþéíý…YG™ðÏÊ6Uþ³ïó¾Ùcã:î\ñúÏÓ ±ß¨ˆYÌGÓ>ŸÏ mà7x_dÆPÿ€ôNYé¿¿2Wdtó c0ã~ÈÿN‘þÂYèÿm9Ó/6©› éW·ˆF%EÍOë4´íÕ=6F—ý×IY¡–ÙoðsZ³n¢ï—.ýê´Pˆ7iÍÔÄÙ[À#/Ê7#7UŒöhÚGùÑW…º!Î1È/¤¿ ú›¢«O¾(+®î/hd7¹Ìû«[Pþô�<ßý ý+”´:WòŦfÿìžn3m|÷ç’¢fWçìô D‡¶?úÞ³[ •ÜÃ7:*J¼\`Ê=» ò›MB¡83uû-à·mƵËógŽêŽ/ø[ùüÛ„zGIñ¾ÈÌ¢þ4n¼íçŸ=Öæ‰ÓÏžÛLC…mKæýîÎ]à7›6f o�ÏwÿBÿ‹àç D¾Ø|~q«ÿã‡_úÉã¤ERÌl8¿ÕßñðK¿÷Y"¯*í»ï¯Î¦<ý›wîXµŸ÷…ðÿùÍ;‹>a¯Ù_ïþ¿þ™ØÜ‚ÿö*ȇû…úýÞíÿ'ä?üÕ㾓ìk¯¿Þ]Dÿ)ô~â¼}Ùâû¡äOu€?ž!�Ï{ªÿÅý(?G$òņ¾Ú]s¶½æé/ÿ$)fä½_#ÿ1ð­Ki#môðqw»/L÷vð~¦`£{ËÝíõáEë56Öýòò¶_î•÷v× Û²ôŠ&}‘1Õu×l·Mÿöé~kµ³I,µÇÞ1è/*|ùôsvNŸq?ô¯ë¸ûDÞ/ã|àùî§Sý鱎Ž>[öHòÅÆ(onþãìà-)fˆ8>ÚóÀŠYå,]Üp±cä9&>EìþÑæ>šÍ:z\ˆ³‹E½Go*ﻘòãÔjÈ/oÞž%#å‹ÌÎ8äßXQ£”c¥'=t×ö‹KéO•”7Ÿ€þù…ÙAå<Æ÷OQÁTÉhsóŠŽ x¾ûW¥ú³UµúgÞ›+?z«NuŸØý“/³aq¿f×°-záÄ/¾}{ å%¢×Ÿhè§®t¾þ¯OìÏðhß‚?Rê1 ÓÓtÒóà•šýu6\¾È ´»7½0Ö¹íí9îÄ0Š:¨§MNÚ¿s÷ê¿ëWi@ îqç‡n'–qø ÊÏôa¼džûiÓBêÊG½6“;k7ÞŠÚ¹zÙæî 8YÜÀéä.-û»CÇM¸i)Ú¨^o”Óó$椸&ä £\îÃ…pŠÀæ] ß࡜ÎM˲ýC[ß:¶h?‰ün×^ÒN·Ÿ81ŠcFO”ãzcaý©èþ‰ÜdKð]ê[ýeÿqèx>ßNoé½õ~¹^—ÌOûü�OÝ/¸Ï”êcNŒƒþÝn‰p¾ØPúÕ“Ÿî™°Ò$.b¼øÍÉO[]V“aIšÏKª»Ô$æÕs“÷¹¬>¡pÜ<‹‹aòvÞ×´B^¼iòþÖ, %¶„§€cƒñèƒz–á«ÍŸŽuMd=¦�îuRæ³Öc¤º "qÔÌÕ%'Ñ~~3øí$ø.Z7}x?¼Ï<ð`ÄÕû±ôý6KÜŸôÁÆ)¨ìžºñDq Ý—êORÞÕàO¨MdŽ÷›²Êp½Ïçä¹u÷IŠD–¤)ʲõšó»ÛÊn ŸàX¡¿Þq~wYVÛ`B~ƒ{Å[e-•acÖß»ÆËxú!�ûÙ#[´B~8_SÙà8Ÿìo$ ?Ûce÷)£IãXS þ]e Nq9z¬_¿ õÁþØ‘ ð%È7ÐÈoXðIŒ‹@>pÏ<q?ðýë×ßx3í#~ø°Q|.u¿$\Ÿ ã9ìÇRýwݵ¾ŒïïŒ!ñi _"6Fè †w¹õ’b†£tø%KÔî¸üÌæËÍËñ Î©c#Œ·ª|« [óòmÿåžåSZãXE0KÂæÍ¼Ïb:– z ån#Çêô¤m¢M2ÖwýŽÍϼüPÏò)ø1…"nèÚú¾Žãô¸i¢m¤ïúuØÿòåžè�ì×Á~ÌpÀ-!¼|¹ytà>»“ƒ÷‹“åŽ÷9Öû»ÚF`?òB>‹îc¨ª[õD€Ò“®¶#Àùû›£à¦}½©Ë=Ò‹îKÞòYçÖˆó÷%ýžòûX¾?VÒµUogoíÿL—ˆi¨?DPõ].ƒ¤˜1Ua±VO/Õ#ñè†ÝÝjƒ #B„¶ ò†þüÄ¡®<þrä!ËÂIùåCUz]ˆ i—ËÀÝ×4Uåî[WÝ6Hûpðÿ܉ü©"i«ÒÈš¦L[§»«5ƒóÀÿvù†ÎCê¡*/ì'éç\8äùºêDÂÔÆ »•›LÔ5"dhìš0°A´ü6+ø¨_'pÃAð´|iÓT‰{z/Ÿý‘ße0¼Jø°Àä®î^‰xò~”¯Kæ7!û§“þòÏ;u¡þfl´ºŒàóÕaÿaàxâýÄF­Ù·êƒ§Ô;ú˜¤˜Q;6{o¯zÉžÊ7?s¦ÖTkZ¿{¯†®÷Ôgäûæ#gÌZmíÉZY ]³é»ž² xˆäý`»cßw_=EׇX ¾¿§'µÁKlÕ‘AÕ|‰¬¶Ö,Uk*W}µ—®ßaì'€+‘ìlÕÈ Ê×.;ù¼VÚîhý´Ç³£?f'çh¥~V‚¸Mv²ö£Öl:þŽþú°ŽðùbfiÀ¯ —”0'kµA›£ò»÷öÚ<;êa?I#~IX¡?òµ6M%¼ïÇŸœ5Ÿ pÀ“÷KmïSõž$Ÿ”ìIí™çOI­šM«¾zJíñÀýv|m“ŸÅÑ}%‰÷›ã¡R6ÂÐÃn“¤¨q…NÇØ=¼d1îqÞþèg+ÜÎÓ1”ÁäÏàÞˆçÒ)àWýì#·3ÂF"´€c ÿ®P$¢ˆÀþþ'¥Z¦©Êà¼Ñ*(Üs‰Ï•*àþwôâZ;ŽS7#RE<îIùhÿð÷MþÉSZ­–3àÇHYàÈït‡NƒxØ=äŸD~� *0ÜËïwa¥±H¤q䂉;uêC­–%IJœŠ'ó1x¿”/Kq­"yÿ.W¨ôtd-ºŸçL€Ä“¾×û£›W\p–*wG›&OIeÚ&wêð½É÷›u£eÆÂâ¶ì¸ ÿyK jÉbHw“ÝØ³wò#L•M-à\ÀÔ³2—® ql  |È·Ì\Çûߟ¾ÖÂÀ~m4ÈiÜýµZN”–†T:…bcâàC£r=ðª£#£râ•R•JÇ®Jð†ßd$iÚà‰’*ÄaÿP2_Æà£Vƒ|Ò?zd”$fxÿæÐ÷Wòýf‚Cà{Ix´gÔ ³”ª ì‡þ)ßä5 ¾¼GmЭ-Õ%ú¸/ˆîG÷/?’òo‡¶¾ ö3UQš6’>”xiÊ_)›7ƒRΫ“Ï•IŠ›°Bº“ É—.ÖÚ?¾çɺðȧ0ù\Åbú7–Zbï=/í˹Ør†àý7çìÙòÁÿúž'÷yˆc¾¹–qå ÒU=;ò…ÑV±Ú™3¡»ïyr,žƒüOÖTT¬TjÎÖŒØÈ$'V&|à„OSÖ Tjú:Fá~UP;SƒýuàK9 ü–Š9¥r¢ï‘FV)´–3¡•/=¹/ìî…~¼?Ñ×qõ°ÇE¤–ÚØJä{I¿aN¹F9]S׎x0ˆîîýv,äÓ´ŒÏ ®Qž}£Îšð¡ÿÝ÷¼Ôú&ô?±_£é›…û “ð!_"6“f³ ôI‘cž4ôš²%{/üîXÃD,GkÍ:ßaþïwlœ‰D,9ƒJú“2Ý<ä }àŠˆÅ<©UÁþ} m𳇯Y釓§J¯þÁC°Ÿn–©|Ê–ÊõÀw÷µ6*´²Iséµ/€7D‡ýà—5´·îžnÿ܃àÕ°¾Äà›CrMKeCƒ£µ³|©ö(â/<t¬"ùµfè7ØÒ‚üýÕ >Súñ¾E>ðɤ?îh}¶ºµ=¨=üÚùûØ|%ä78Î>[=ÖÔ&|Øýøþªù¹²²qt_w+­ÊOú‘Èÿ·sv¡m•aíF×ÂTœÌ‚Z•@æF3†Î›i¼©uÚ‰zÓ‹é° ïÆ9ÉÉÉIæšvD[·~×Ú¦s¢mL?0i«-éÇ:]ØXÂФ QA²^ù¼9§­4ïÇÉ)btïÿöÇsþÏóp„äÿð_�È—Û÷8ùö”³/¶é§çÛMø_ˆôkEûßp~]ÂÏwö£øïÓ²ép–çý§ÕÖæâç?õ£öñi_ªæ·­4÷ö—_ŠëO®çÏö{@Éß°Qæ÷¤%~2èHop}úyú}�^¾?ÚÛäH4Óóý\ÿÑnø[¸gÌ­û/%& õNg,<ËõŽB½f+Þÿ|,æv}ëÜhÓzºÝÝŽOž>fο—\ÏW,–ÿÑÑ eÎXÖ„?RíêüeÆûÏÎ÷'kÕòé{ °Ù|º×ï_¸<q1P´ÿÞ ð—jíª çãI¼ 8×?î,@ÿÅûwÀó[’¯_…úÉ�œë¯Rêùþ‡ßœ‘Úãj$¿¿OHû9næ>@…æcqN¾¿cw£&ǽ´ˆ|¾[‰û _¬Öž˜»²Ø1Ÿ»·‡Ä;Ï<Ë÷Ÿ¯w`ÜÂüs0?äóÕ70þ}ÿµ3óõVößÿ•Å0ž?Nôï8ó3ßM=föw|B~¿²í³©aȧ» ¨ù|>ø»Û•âý5¹*PözW×p®ÝCª×ªü2ìÏŸ?ëV|æ—•™—q½ê}¼*²RYÍõ×ë­ì¿Ê(«îšj‚ýy”AßöLFlå•üùQ@FÖ„óç{Æ3­²Dúœ5ŸÏ—¥ÕA·•wðÝ6œï‘¥ð*q™[áû _?"I~ þ¿¼zO~þMòüÛŽîÊðüóõ�¬Ì¿kh(ƒûÔ$U-ÜìÁO¯òçGadQ?ÿ.£%}#ï·’°Ù|:Ô5»‘éùø‘såÍdl˘ð—Z"ÝàËU=óKQ—Ç}©‰Àñ~LøG‘E«_Ó<xúÂÌþQYU6.©¹œW ©Ù|ºW ¶Ì†EåºU6ãAhP²`—친OÁ÷ dòh^¾¿íHÝÞ0£?<ÿ¿&³ùtÅÿúÊgÇ�î ̹=G×±p>ý0’tK(þ·|ÿÄ]¨$¥ß@ÏM0 dàÿ[A~~üP ù~´‘ïgÞ7@ ›ßkâ~‘è÷ý2Á{°ŸÖOo´Î!¿Oçz¾çëõü¼J3ÙÈßïˆ'ØÜAâúý€Íþ”ù– N¨Ç¼‚Õß c°Ÿ’Õ.È׿Ãʯs8ä÷Y\–/Bþòõª”Ï÷ÏR\Œü=�G ®àú£ÞMâÆý�—_Õù,y¾r6os?­¿Ã_ãý”¬¼8_ÏȯÇ9<‡óûT>\ Ïw:7óý5aŠ pœ¿¯§ÙóœžÖïÔÕÔÓŸOäÆý€Š Þ_}x;×çK¼†ÌOAý J¡ÝN¼ŸR•däãiüW× ¿O玽þÛIÏ÷Ó¢zþ¾.Šê<†|þ+k¾ lÞHý­çÛâäùýËÆþJVùü<#ÿo‚ï£ó›;8ßóùòÅg#X|yšÅ@½ÍUÇá”ùôûÓòX]h{ÿ0ßÝÀþÉóghý%=žu}?%ªe§;ŸŸ§àF6‡ú'oÇ|çû“—¨v=oÿ 1¸œZïXÀõû›o÷ß¼°jô÷ ómqòüGõþr…ý;³ú~JU¯¿#‘H§­rÈïóøñiÈ÷;óùþê—5#‚Åsû|¾êŠåúý€Íûø¾ÀLá|Ž-NšîPû[|¯ïç/`ú>Ý›©²ƒ����IEND®B`‚IMAGE 1549 ./arch/ground/sea_ne.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTE�ÿÿ">š:š":š":ž6š">ž&>ž&Bž&B¢&F¦*F¢*J¦.J¦*N¦.Nª.Rª2Rª2R®2V®6Z²&>¢Bfº&Fž&F¢*Fž":–*F¦*J¢*Jª2š">–6’6’.R¦">¢.R®6–.N¦.Vª2Vª2–6V²2Z®6Z®:–:^²:b²>f¶*B¦>j¶Fn¾Fr¾:Z²6^®:^¶>b¶.N®2–2Ž&Fš.J¢2V²6Vª6V®.‹.Jª6Zª*N¢.J®:Zª:Z®2’6Ž6^²2š:b®>^®:ž:bº"Bž&>š*Fª.RžBj¶BjºBnÂBr²6–JvÂJzÂNzÂNzÆ^ŠÍ:f²*B¢2Nª&J¢*JžN‚Ê:^®rªÒ.R²:Ž>^¶>bª2V¦JrÂBb¶>f®Bf¶>fºBf°2’2ZªFjºBn²"B”*‚ 8‰>b²6Z¶.N¢Rz¿V†ÊVŠÒ2R¦bŽÊfŽÎ2Ž~ªÞ‚®Þ":’*Ž2Z²*F®1P§NzÊNzÎRzÆ2R²V‚¾2„*J®Bn¶6V¶.šb’Ê^–Òj’Ð^šØ(Cœ>f¾&B¦&@ %>˜-‹,r2R¶BfÆ*Jš:]™Bj¿Fj¶2N²+y+JBnºBn¾6Zº">¦7]®Jn¶FnÂJnº&BªJrºFrÆJr¾FrÊ.JžNr¾FvÂJxµ6^¶NvºJvÆNvÂJz¾#A”Qx¼Oz¸.Ž*Ž:’1U©5T¨"BšN~¾N~ÂVzÂN~ÆR~¾N~ÊV~Æ.V²:b¶R‚ÊV‚Æ+I…V†Ò^†Ê6V *Fš:f®>bº&>¦/v+P :fºn–ÊfšÎjšÖr–ÖvžÚFb²2Š&Bš’Âæf„kõ���tRNS�@æØf�� IDATx^…Ìc›g��áó¼´qlÛZÛ¶Û6KÛ¶mÛ¶ñ?Òn6I“6í|¾¯ÑÝ¡ûŸä– ÿø/ÐyõwÙæë¿¹á¬`“ãÒ®àÐÄÄ gUé/XeÚ‡P’òí¿‚Ï~ÞÅm4ðÂ|®mpÍ}ÿŽ'—/{÷Á9Ùô Ÿ™}ô©3ª>t„¢FúR9¹6¨ †3�Iö¡ŠB¬Eâ&ðU*._w:èþríoM&Œ$\™·jí�F’’ôÚi€à¤¨ô¥v†á%Žý :`ÌM±U«Óc»v½“R^ã‰ÏOk½ÂH xƒ¯ú‡ÏQþZŠYeí¹S ‚AêÖš“·‰½½‹)7ŠÚZ[‘“€‘²ýcKe–èÆyMb`o—ýpñ 0JÞxîpÖ=¿¦y³‚›èO”{MÇ<×.€Knç‹¢hZ·¯z³EWP$Yo |_\�yijrØP'uÕ¶! }m®‘—½¾�Æ÷Žïhß]¢v¬<1pÓÓÆÒ ^­^RF^uðá\nçèÖJ£ÁÒÒŸH䳑º’ Œ ÇY]©ÅJˆµø”°ËÇø<ò†·©bk6Œ¿4FÊFÎ}ìYÍGÀ¸ñq£òã÷ ‚öÓïÞ¯zãeç<pÕ±´J’„ÁRyx0¹»míÃ}KèkµÁy€ã”™$q·z Õ³-Ÿys.¼>°>ð‹å<ÀêïééâÏï,ˆ4†OºÜ#i¹èáh‹’¹å/÷—ay!–X“§8«@t{ûÔ�`]wþ ¶6Ô¶qV/J-Š_–e‰Áßr×v¢¨*ý‰Nwù{1©‚±„S™gˆ¨)Ö�FÁ½n7/<ðéÝÒíœíç0» ‚UsFH�›ÀöØ] {s)L…tÂÊûŸiˆÃ‹Œ©#8¹BæyÏÖm Úš]´¨·£Ð_ÓCÙ6¬Iâ¤J²Ú &Xaºf/UW6–;ôç™f"Ãç¥C!kCËÚâ7o:f›®—å‘™����IEND®B`‚IMAGE 1549 ./arch/ground/sea_nw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTE�ÿÿ">š:š":š":ž6š">ž&>ž&>¢&Bž&B¢&F¦*F¢*J¦.J¦*N¦.Nª.Rª2Rª2R®2V®6Z²&F¢6’*Fž">–*F¦*J¢6–*Jª2–">¢.N¦:–.R¦2š.R®":–6’.Vª2Vª*B¦6V²2Z®6Zª6Z®&Fž:Z²6^®:^²:b²>f¶Bfº>j¶Fn¾Fr¾.Rž.‹2Ž6–2R¦2Ž*‚2š&>š*Fª2V²6Vª6V®*Jž2Zª2’"B”2–.J¢:Zª:Z®"Bž.Jª6^²*N¢:^¶>^®:b®.J®:bº>b²>b¶:ž.N¢6ŽBj¶BjºBnÂBr²&Fš.N®JrÂJvÂJzÂNzÂNzÆRz¿^ŠÍ:b¶*J®&@ 2R¶:f²Bb¶:]™>fºBf°>f¾Bf¶2V¦6Z¶BfÆ&J¢6V Bj¿Fj¶Fjº7]®2Nª,rJn¶FnÂ:^®2’*B¢*ŽQx¼>^¶.R².šNzÊNzÎN‚ÊV‚¾V†ÊVŠÒ>bªbŽÊfŽÎb’ÊrªÒ.V²*Ž>f®:fºFb².Jž&Bš/v 8‰&B¦(Cœ&Bª6V¶2Š2Z²:Ž%>˜+P Bn²Bn¶BnºBn¾:’+y+I…*Fš6ZºJnº">¦JrºFrÆJr¾FrÊ1P§Nr¾FvÂJxµ#A”NvºJvÆNvÂJz¾2N²6^¶Oz¸2„":’-‹"Bš*F®RzÆN~¾N~ÂVzÂN~ÆR~¾N~ÊV~Æ*Jš2R²R‚ÊV‚Æ&>¦V†Ò^†Ê+J1U©5T¨.Ž:f®^–Òj’Ð^šØn–ÊfšÎjšÖr–ÖvžÚ>bº~ªÞ‚®Þ’ÂæfÒCŽ���tRNS�@æØf�� IDATx^…Ìc›]g�…áónÛûض1¶m›±mÛµmÛ¶më´LÚiÚ¤ëëý\Kó?»ûbøÛ‹× êö«_ˆ]¾ºûBþä²e…ÖæƒÞºÿÔ[U™F <—ý0[õoݺr¤3.ÀfÀlþúç?9ŸŸxøHN`£À©ìºÿík÷žçZ1Té÷‡•xfp’¦_½ž þé·(ÉÌO~–äÖDoE¡$©…ü™,Âoäœ$…yj¯ZõeÙ4ò«"ϲ¢¿¨1;¨JŽ€SIID5óÖñãÓÙ5UmÃà>òïà™´bÁŠo|I=4á»Ëj…AÆ.Ë_Ž”–ºPÔF¨ÈË“Ö)<S½)`¨þœßþÝé”;Ì0+§ÛõxÉ)û§‡b2;ïK܉ {Í Í0µ0¤+Xùl›Î‹/^JMÍûn³ÓÚ®�‚^Š ¨®$¿`w-i—Æ„çn˜>?Ѥ´?‚`W¡+7BâêòÖz(wûY¿Ž½9ßZ‹õϯN5`h(ꘙ=5{6VÔZß޵§RC­&­¾²gêX<æü…Ù--\ÕonQÜvÖî ©vTdœ’hœ t_¼Rõî/¿þ¿ý^Õ_©ÇaÒž~ú‘Ó£“sÁH:%9{dðÁUwF2#7Uš´$E ׿œ ¾DÉçÕøkB»^ϵ¯+§¯%l8EiÿÓWäTûǔìC¼®L»Ç©·û}¡¹ü¾.ìÿ´àÞm Œ~›’X“Jˆ‡ `Ô—Ôhîa”‘ýεvceEQ|j«, Z ßnìÑœüxgoR°Ù�(L–1Äì «å2![!'ÞùJ¤áâCêŽD?ðÀ€Bà€‘€!㇎û`|¿qYKQ¸Ïr‰[” …'Û""K¢f/šžÚ±\Ô`P½•OsȰG’Óé §gÊ[†zûòΜ™Ššº÷’£(°ƒÙé×&"ì7ÏG½ MËÇò!È<ð;á˱42 øm����IEND®B`‚IMAGE 1551 ./arch/ground/sea_se.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTEp¿":ž">š":š6š:š">ž&>ž&>¢&Bž&B¢&F¦*F¢*J¦.J¦*N¦.Nª.Rª2Rª2R®2V®6Z²&Fž&F¢2š*Fž6’*F¦*J¢">–*Jª6’6–.N¦">¢.R¦.‹.R®:–2–2Vª":–6V²2Z®6Z®*B¦:^²:b²>f¶Bfº>j¶Fn¾Fr¾2’"Bž*Fª2–.Vª6Ž&Fš2V²6Vª6V®.J¢2Ž6Zª.Jª*N¢:Zª:Z®:Z²6^®6^².J®:^¶>^®:b®2š>bª:bº>b¶:f²Bb¶:ž>fºBf¶&>š.N®Bj¶BjºBnÂBr².Rž6–JvÂJzÂNzÂNzÆ^ŠÍ"B”2’2Nª>b²2Zª*Ž2N²+y*‚Bf°:]™2R¦6Z¶.R²6ZºFjº*B¢2Ž&J¢:^®JrÂ2V¦.N¢Qx¼Oz¸*Jž>^¶Rz¿N‚ÊV†ÊVŠÒ,rrªÒ6^¶1P§*Fš*Ž">¦#A”2„":’-‹:b¶*F®2R²*Jš:f®>bº2R¶1U©>f®:fºFb²5T¨"Bš.V²>f¾+J6V &>¦BfÆ.Ž.JžBj¿Fj¶&@ Bn²Bn¶BnºBn¾&Bš*J®6V¶Jn¶FnÂJnº/vJrºFrÆJr¾FrÊ2Z²Nr¾FvÂJxµ.šNvºJvÆNvÂJz¾&B¦(Cœ&Bª 8‰+P 2ŠNzÊNzÎRzÆN~¾N~ÂVzÂN~ÆR~¾N~ÊV~Æ:ŽV‚¾R‚ÊV‚Æ%>˜V†Ò^†Ê7]®:’bŽÊfŽÎb’Ê^–Òj’Ð^šØn–ÊfšÎjšÖr–ÖvžÚ+I…~ªÞ‚®Þ’Âæf=-¢Û���tRNS�@æØf�� IDATx^}ÊcƒžG��ÀÝ}l¿¶í³mÛmµmÛ¶mÛîÿH{¹6MÛd>(÷D`¤¿©Æf’¤à6!1ýú\>s%I¼¢3}Ñ@7Ï929Ð;V_Â[ÅXv:«©[œDRÌîÂ¥ ”þûžnBÐæÁAI40’^©Ërð×�†w…-ìÛñáÁcéŒmObEXíJÝ™q–×b\ |ýnJ«ñ\áü½LÈGê‹áè,ŸON÷ÞÿÉ`yc]§ä2˪Öj”麮 $ôîôïb†Mó?.«@8e%•JéË$—|GDz3"‹¯�m›JŠå {zUž¤¶˜‡ÝÒÃy}$(ñ£°ü¢8;ËR>úy®dC{áíñ‘ñH™ªÈß‚?ùDžfYÆì¨zl"—¸«síC£ ¯È˜ê² a¦bæµGŸÉzŒ²Þl5~ø®QÉþøÛ¯ïU_}“{!ØÕŸÛhÄD‡×ˆû½‚7¨o~ëÊj±~óüž… Ç[ZÎ.¯²š­c™L{óøx¢¡4Œ‡C X0ÿåüþŽõ5(ä$k2ã7žf­ ›L¡Àûì ÇB{Ù,8¤¸4`™²`Ä öz½©û*p̽«äÕË-ÝXãÆ!<‡É63ç½}÷b˜e/½‡²¹ž,_ã&°"~ÿã5ž•ÛRÁÛƒ 5ÍíÓEf˜²¶g5ó„05óÕ÷w€E¥†r·ìå%}ƒ:9Y¹‘óḥ« ‚¿¸ÚìÉ’Èþ¼lúUãÜWjI—ž}üÀH'Våçz;g(²¢¦3×,‚«£ùÆõE$ňħƒã†/^{wQ”dáÍ:'Â`RÓ.ÿÀ2Œsª²7ժɂ¹$—Ö?' é/นÑ\‹^‰TÅ38‘í‰Ýï<°]÷#“ <ò$ø—Oúå›[yäÁä–ΉÁÏÀTç?úàòèVÈiÆËàÿ,±=Užêë;œDϵW4—Ÿ÷àap20ùÒ9¿ƒSX Ní(mů¡åÑN����IEND®B`‚IMAGE 1551 ./arch/ground/sea_sw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTE�ÿÿ">š:š":š":ž6š">ž&>ž&>¢&Bž&B¢&F¦*F¢*J¦.J¦*N¦.Nª.Rª2Rª2R®2V®6Z²*B¦&Fž&F¢2š*Fž6’*F¦*J¢">–*Jª6’.Jª*N¢6–.N¦">¢.N®.R¦&>š.R®.‹:–2Vª2–6V²2Z®6Z®":–:^²:b²>b¶>f¶Bfº>j¶Fn¾Fr¾6–2’2V²6Vª6V®.J®2–6Zª"Bž6Ž:Zª:Z®:Z²6^®6^²*Fª:^¶>^®:b®.Rž2Ž&FšBf¶2š.J¢Bj¶BjºFjºBnÂBr²:ž.VªJvÂJzÂNzÂNzÆ^ŠÍ.N¢2’>^¶*‚.Jž>bª:bº>b²2Ž:f²Bb¶>f®2Nª>fºBf°>f¾2Zª1P§">¦*B¢,r:]™2R¦6Z¶.R²Jn¶"B”JrÂNr¾7]®&J¢*Jž:^®Rz¿N‚ÊV†ÊVŠÒ2V¦rªÒ-‹2N²:Ž:’#A”.Ž+y:b¶*F®2R²*Jš:f®>bº2R¶1U©5T¨:fºFb²":’.V²+J6V "Bš&>¦.šBfÆ&@ &BšBj¿Fj¶*J®Bn²Bn¶BnºBn¾6V¶2Š2Z²*ŽFnÂJnº&B¦JrºFrÆJr¾FrÊ(Cœ&BªFvÂJxµ2„NvºJvÆNvÂJz¾+P Qx¼Oz¸/v6Zº*ŽNzÊNzÎRzÆN~¾N~ÂVzÂN~ÆR~¾N~ÊV~Æ 8‰V‚¾R‚ÊV‚Æ%>˜V†Ò^†Ê+I…6^¶bŽÊfŽÎb’Ê^–Òj’Ð^šØn–ÊfšÎjšÖr–ÖvžÚ*Fš~ªÞ‚®Þ’Âæfa"žæ���tRNS�@æØf�� IDATx^…ÊcƒfU��às®íûÚ¶9¶m/mÛȶmÛ¶móT³³M[m=Ÿ°ë‚lW/Nœ‰DiúÕ‰¿/,ŠFë@óª@A¼€@êâüî‚`@›µ0QH®Ý=”ë>vlª…˜9Þ£cÎ+Ã’¤Ui"íIÉ<{­l~rç*$X´§Ñ‘¿=³�¦QÈ`¨ÁF¡HÚAˆC‡¿¿{øì£{sYÉïßq”î�æÒûÏ-“v¾Jͼý%�ŸpCô‚àQFðª¦iãz›ªH&§ØUß´�pUák:;9Úœâ-Ó—ÏÈ’€á°w< ~·µ¬Û91ÐJŠ®i3IpJnÙùRCû‹µøÃ×’¬ŒÇ’b’^+wlogï§ü$ÃØX’œ £…z#-øRƒ¬ëº#U½»Ún¢†âOp6¸Î¾¦æŸù¾ 7}ónYb!QÚWxêáW&{'gÃó3Ãn¡æò7†µ°÷“ºÏ.$ôÅ "ÛÀ,9ÇãužÔÈHKG>?Ôf7Yª—OnmMJÇÃ#LÑï±|zýH~€pDáÀ¶Îƒ3ŸÏ€ã.]Ú¬¹m×"¨¹ÂYˆÑ$†›­•i&Ü1ž»ÕÇšj ~†á®Å‘ +iŸN¿s.ÜÎì{É;°ç W‰"®ÅkŸñ¸¬ä-3S`Îmß~‘WШåÕB‡… Ñ‚¶hz¨EåÁ X¿Çý쎪îne»&rûo*B©zº 9‰ž»®Ð_ž?3î…C ¶Zç|¸:ŸUdIÖ‹o92]ê«X?ŽÑ`ÞÆT2¦Ë"Ï˱mM¥A]aH 2à/.QU†BGýëå ÍéÊ×]'ùPË/Šñ¼¤¶erUšfÀÉLr²:«×Z‹ƒ“,{Þ£þæñ‡•%ÞƒÚûÞZzô1+ø‡½kG»Z%Ô ¹›¿úé‡Á¿yVWYlEzõ{”jÀ)œµreE¼á:ë.p*[^8­±å²õËÀøõ‰w øçüjX° ‹¾è{����IEND®B`‚IMAGE 238 ./arch/armour/cloak/serp_cloak.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE����_��o������Ÿ��¯��¿��Ï��ß��ï��ÿ�ͬ ���tRNS�@æØf���uIDATxÚÍÊ9€@ CQ†Ù`ðýÏ‹-” §æWQü¶ß•L`W¨ ð ©  ³ Dv“e` Vp?•Xky0.æÁ²�PP¨é@§Pì 4 åAëOÔÚžØkô)€‚È�ÄÓ‚-2àuÿ©º¾ Pº´½:����IEND®B`‚IMAGE 286 ./arch/monster/misc/serpmen/serp_man.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4VŸQ,-ŠV��c2�c��1�����Ì�¿¿¿5ݾ���tRNS�@æØf���«IDATxÚÍ’Á à DÓ5ÎÌúÿ\·a°Æré€"¾‡#âö—QÏšSKGôWý!¸c-�·‚z�jÉ]Z po1‚EÇìI¤j"̬J˜Pšh"ìÆÒI;…m8¥jGMœHŸ‰†^ĘüªŠm°µ¢Ì—�(.1ôçRDOUú‰ Á ðªî”n€Á˜Éz0ÆÄp&œÑ“põcŸc×#a¤o" ¡‘a ����IEND®B`‚IMAGE 290 ./arch/monster/misc/serpmen/serp_man.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠVc2�c��1�cD����Ì�±!!¿¿¿´l���tRNS�@æØf���¯IDATxÚÍ’Aà »Éº¦üÿÁ5!„®¶‡^ê—ÙHðøÓ°%Å�ÈDx=KA&xã\rdœŠû^Ø’ÔÃB ¸ß}LP Ânp3˜“'f`[-x#˜‰W�v ½h6x­‰8ñ‡ÀcB Tlð(˜ñhPnÛ%æ~W ýXÐåþ†R"œÇ/UO.2ç;\'|Ü£ú:²£3˜ cCø'!æ Œ~ N+Íy����IEND®B`‚IMAGE 292 ./arch/monster/misc/serpmen/serp_man.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V�ŠŠ-ŠV��c2�c��1�����Ì�±!!¿¿¿oÔV���tRNS�@æØf���®IDATxÚÍÓÁ®Ã DÑv<7}ÿÿ¿UJ¡ŠQu÷¼Bø`f·ÿV�ë.†hy¬Xƒ–Ö·À ŸD!’”s#eú�i8ƒN e‡Ø“ 8¹ïŽ ;˜5€3mÚß{B!ÎLˆØ²‚[Z8Àk³‘yõ9Þ3UÁ¨¶‘6å}Lä­ùÞà L#ø€Š$!_‚Ž,Ôƒ”‰Ë> À ŒúÌÉ?‚õ÷{aØ 19õ*‚����IEND®B`‚IMAGE 299 ./arch/monster/misc/serpmen/serp_man.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV��c2�c��1�cD����Ì�±!!¿¿¿ãµ¾‚���tRNS�@æØf���²IDATxÚÍÓÑj…@ „ávÖÍœßúþÏÛål1˜Þ6 󹓽ðã_ 9mn·KŸ_�IÐv$è…éö G�Z5åú0R†€kKïúy‚ È—ØuLKQJNaŽc\'âÌÇÜ�–p挡H@È TÁÚc ïŽx�À€°¦á¸£×†”ÀX2°@E’HDÍOä-¦]¿?›O5†uŠ© ¬^Aÿ{¼þÍð Þ wÔ~Öd����IEND®B`‚IMAGE 309 ./arch/monster/misc/serpmen/serp_priest.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠV��c2�c��1�cD���þ¿Êÿÿÿ�Ì�ïå‹¿¿¿µ8Ïh���tRNS�@æØf���¶IDATxÚÍÑÑÂ0ÐYdȘüÿçz;¬1cÔWïS“{BIXþ0Ú3«ET j°>n»L€ìë �:ÿ nQ¤ì›»j9¾¹™9`µ Y\·#z Z€V‚§!N9)K€½ Ï€8†c†ãV'p¼õÞD1À+œGˆC˜eT&�Ô~ ÈX>V€º�;}ˆD„PÇ› „ƒ0Å)xo©‘ R–”ªzö6¶®¦����IEND®B`‚IMAGE 302 ./arch/monster/misc/serpmen/serp_priest.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2�c��1�cD���ÿÿÿ�Ì�±!!ïå‹¿¿¿ û!1���tRNS�@æØf���²IDATxÚÍÒÁ‚0„a;.Ë€Îû¿®ÓMÔmÏþ!á0 —¿‹½åžÉ\æyÛÏ`æ¶nœÁ¶|7”SàAûFN@@®% w0)Õoà+ p/À‡h[ —Ü•%ðB°Iñ žwIV‡šµ+O2à FÕI¾®d €.LÀêË’BHÀ{€6€aV;…«†8t&K€>÷«xÞE$¼O¿ú>ëó{}�@› (ôÑBS����IEND®B`‚IMAGE 229 ./arch/weapon/sword/serp_sword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Îï�­¥�ïïcccsssœœœÎÎÎ���°N���tRNS�@æØf���{IDATxÚµÓ1Ã0 Áœ-sþÿã¨I‘À¢ŠÀl—,äëá¡§´t\W·06|âª~¡ly/XÖxŒiP:¿¯*Z¿_l㽿#Zbã/´þ“Võ…¾ÿ =€œ°æ"‰%?HXæ'Ab•ÿtê&.4¿à;æÖaÿÌØàý^/x����IEND®B`‚IMAGE 322 ./arch/monster/giant/serpent/serpent.x31 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTE���������1��c��ŠŠ-ŠVc2cD±!!ÿ��éU”���tRNS�@æØf���ÌIDATxÚí’у E=^m§ûÿÿ]bgC|Ð=zcL¹À–þ)ÄÍýv 3Ó­ó‹ä\XÕ<]#€mZ7. ò»�p—kœ.ÀWâ*© HBâ ð^!�F¯8pðˆ•�“õˆ³:‡j’ÚCµ¶b÷T>ý�ŽÏ!8£ÖöÞm@zOÚŒ¾J¸ÛÈšrec“¦!Å[:B½º´5ÍCâÕõ2ëTæøý® ‘ìÙl™‡uAtìi /š@iº:€=Jú�oÖVI‰~-����IEND®B`‚IMAGE 306 ./arch/monster/giant/serpent/serpent.x32 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE���������1��c�-ŠVc2±!!ÿ��…§‚Ÿ���tRNS�@æØf���ÂIDATxÚí“Á„ D}E÷ÿxµ¤+’Ýàe¾ ´ÉÔ¶ƒËÃ_Ü,`º¥—™nT@²$fû³fôÉM ›åSï7:w¿,`ß),t@*]Ñf«8ó:õ×.ýlŽjËSgöL³LU¡\œ‹=Wn;âÑ`¡ õjw4ô+€õóðjÊ->!â<iEmªÑQqÑ*4´7Ô¤~pOŸç²<ö—á”kÉn!cÀœÖ}Áï? Á(-–‡‡ž7k­Tz¾€É����IEND®B`‚IMAGE 309 ./arch/monster/giant/serpent/serpent.x71 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTE���������1��c��ŠŠ-ŠVc2cD±!!ÿ��éU”���tRNS�@æØf���¿IDATxÚí’Aƒ0 ;ÙÖnéÿÿ[)2qP(•¡F¬à]g ·‹8©·s23_Óú€)9Ö€Ùùe 1cPÃËUär?îEB Xëeß˾ào¿uE÷÷Û_–¬%«ý|™jæá"ûe£/RB¤Mˆl$ Ñ7\"ïô+sMY+FŒûvº—)¢ÃºëØÆ(0eÙP? ñ,·h®ÚûÑ¡ôLJ€¶!óøâbð˜DÃÎ×l����IEND®B`‚IMAGE 310 ./arch/monster/giant/serpent/serpent.x72 ‰PNG  ��� IHDR���@��� ���•C޶���!PLTE���������1��c�-ŠVc2cD±!!ÿ��Bï3ç���tRNS�@æØf���ÃIDATxÚí”Aƒ Ey|CKïàj#ê‚ÑUg|‡$$ù!cxø[€› Lá2“._F’͈kâeö¶\ïÜJ sĈ\Ž Q¿4‰ÎµÐŸmà�'ç֩ɺǭN]mÚ!åÏz(³•T û÷¢^ʉ-|ò+í´E?ot:;+ÿDª~€êkãNE¼ìKU¿º JýD8€ÔJÔª\”Q­FïxÑRS`|û ,4ÆhÕ<ð§ì• áááœ/KêXì*0T����IEND®B`‚IMAGE 178 ./arch/flesh/misc/serpent_skin.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Æç)ŒR¥Ând���tRNS�@æØf���ZIDATx^…À¡ Â@�Ðw G(î6�‡i$‰D²B]Y„üIÈ_…ÔßL@xþQúÌúy¢?‚— s VŸÆvHŽoœw¸Âî°‡C¢Þ (ÓKCM?}çóç ¤jÜ����IEND®B`‚IMAGE 595 ./arch/player/race/serpentman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���öPLTE��ES €OB*hž���)`q.M,� BJL �# $�H& &� ($�)*� ���(/02 )22�334�27 2;: 4>BB B C ?F ?F�82LK L PT4T]] �)"�&º6k&���tRNS�@æØf�� IDATx^½ÕR„1 F›¤òë*îîîîî¼ÿ˶ÃÀÒîÞ0ðÝdÚs’OüM±3ϲ ;ò<ϳ_ l´¯Àƒê6mĪÖú^ê«sŒs¼Õ>ˆ1NØõäù,bŒœxöa„›÷åkÇ 4¡`ˆp`oßrXeá''»3tzÈë�GHr!6¦j¼u÷lë\Qu ŠZ(7šs[�åô° "¹\[�Дöް1ÆÕäâæú ™Š;F©³JÿnRòùh¦ÕüÛØ±Øé.‰¸!ì¸Qê…G£±TZ…‚C}£'ÃVH_S ‚ªâ‚¤Éƒä1R’©nz£…3ö!æ>ß)?¿%E#¿N‰ÿÍåaBò–����IEND®B`‚IMAGE 607 ./arch/player/race/serpentman.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���üPLTE� €SžL*h*dEO)`h,�Mq BJL*� �. & &� ($��)��� �(.�/00���� )22�334�27 29;: 4>BBB B C ?F ?HF )�K L PTT]]  �)"�#@ìÛ���tRNS�@æØf��IDATx^µÅrÅ0 �-É~Xdfffføÿiäi;™ªI/í^tØ•5VÿƒÖºÚGQ¤+}–ÅÑ/AVè(.?ûµMÍ”y¬cnS ൱†ÁøGOÆ3åéq䑵5ƒ €. ÓF�öìîñn I@¨úNŒm;wˆ�ÒƒZ¯ß[ë\C)€ZÜng]»ÎùwÏãmzÃ9ºqÇ>Ü­Ì:g :ò€ý`sln}5Jü—ýբߺ˜yMº&S¿M¬SUäibôyøTí,^éjž å#I`„WáÕy˜Vk¾?e”8{_xJØB¹Ÿe‰¾RUò€<¦þ”wO÷>„ú=¾����IEND®B`‚IMAGE 560 ./arch/player/race/serpentman.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÞPLTEU*d {6�:�VB, A&f� |<lll"� ]�›››!((�*�+#&.0(344�6 �6����:<<�#(">� ! ;2% #(iA�B�EFF�FHJLOQ S \  ]V i q t �"�   ÿÿÿ9 Îo���tRNS�@æØf���IDATx^ÍÕn1EçΘ–Befffæÿÿ¡ÆVÔdÕ]ç©Rä뜫¡¿Á9·�·K¯JïÁQTy×gê‚»æ__´ωµ|¾üxˆP¦µöõrz‡Húû ð »²I‚™IˆHŸ‡ü>ÛD{�J÷X»æ"PÄE{0@/h²�EăžrHÈf™”xOl¹\@DÜÜ(%ÿc*á=ÜÔÂñ…ò©�T†ò.­ôéôL)0Sæ}ñ@xQÐmkéd~ƒêHÍòÛáúÕcVÕæMÄëÏ ÝˆyÓÑci4H÷!5šâ õ††ZÓäž ½–‹����IEND®B`‚IMAGE 583 ./arch/player/race/serpentman.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���íPLTE 6�*dV z< _RB, � {›››:�"� ]�ÿÿÿlll (�% *�+ "#+#&.0(4�6J �6�: !<<�#(">� ;2%AABA�B�6E B F�FHJLOQ SVM \ V � g i q t"�  ���!£ÑÞ%���tRNS�@æØf��IDATx^ÍÎÕn1…á93c{7œ23333¿ÿãt”XUÔ®sSUêgOÖÐß`¾;d•Ó»š0Ð(wAUC \?1Ï™PÍ"ðÈYÆG+Am/Q3ð|2¶šÚéÔ>X™REûfȘ‡ í�¾TŠ`áœ3PçnEQ{`ÞèõÔ¼½\[”<3¯ ¶Aã 8j ˸Üö˜3æÈ2aÄNòñ¼ŠxU¥v. 礞ßîÀ„åA1¥èËôvû?�0Ó÷TpQŸÙŸXjñŸ@ôv¿½øJ‰lÇ,–Ï(De RMQ}¯ôæi�E^½¡. Œýˆ u"Bÿ°O—2Já;����IEND®B`‚IMAGE 737 ./arch/player/race/serpentman.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��\PLTEÿ�ÿ*dCGSm €ž0�;5&‚ `�(� F – $fff¿¿¿[ž c%ÿd� :&�)��)�,.� ) - 1 �58<�; ; @� > ?.6 )e-;)i+e7&+++)!g'$^F($bG- p-!kH�70> -!sH /!sK/!u(*X.#o>'K HL =+ K  O  T� X S 5A3�8B8@@@ k  t w z ~ € … Ž� “ '�£����!  ÿÿÿõ¤ „���tRNS�@æØf��3IDATx^½ÎESÆ0àxêö9îîîîîîîúÿgHép  å{ÙÃ>“7àObšfüNDâeŒÄ‚,ÏF€nYú ”³ð/Ä,ˆ�ë“ݶ‚…v]÷QÀíe’ª¶MÈ"DWƬ¤�ªúœxÜ–rÍæ:»rW,¹# a­ÌMõ¦J(E( H:˜73>ÛvÃ2$º[BÈõ†Ú_öψœ ä8ïÃ}»és34J]Çu·âîõcDh@-ØO[ÕŽ ž�”‡À×¼ÃÆ…éTŽc�x@ µÂÒ:±Ã¢þ%ðÐèV½µø{Î¬Ž¾ A�š6S5OÅù# ÍFåjó(ÏStEŒ­Q=F}­|7ŒÏZ¶ 𠨉²5éŽñ7'9€ƒ0>þ.þ9VZ ÎD`����IEND®B`‚IMAGE 732 ./arch/player/race/serpentman.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��\PLTE�*dSmfff(�7&G FK $0� €žŸ :G `�  €�”% -ž5&‚[ÿd�¿¿¿,.� �; )  1 8 7;%X ; @� >(b ? )e-;)i+e+++)!g'$^FF�($b&'X -!kH�70-!s IH /!sK(*X"1F� H GLC KC P� O  T� X S 5A3 '8B8@@@ kt� t w ~�� ‹ Ž�!  ���£&�xxx)›››)ÿÿÿ÷àŸj���tRNS�@æØf��.IDATx^ÍÍÕn1†ÑÛËæ2333333÷ý¥&«(’³nî*õ¿ôwä?™ªª¥;É®4 ¦IJ‚t"̓((M˜êo`{VÖs'L B ¯,¶ë:!Ë0òâS [£ˆÍÏ©—}xƒ°%ãHO¯sµ€?â R3s¡r;FˆOD©M帛™Z¨¹7c^ç‰×ûîzXº"~€”ºÌeÌ”E%ÔÐë¬úøñ\¹X£V18µ“™M»tªº¯)°|�mÄm>äàäÙ€U,0‰p[Ñíø5´ þ’èÖ>uäº#)u ÜtãðV¨2yˆ ûfSëîÌ”ÝACúâëmG�ýõú{@Œ±Jânä?–$®ÐâÞs^ˆ€ÿj?ÐÐ!sª *����IEND®B`‚IMAGE 580 ./arch/player/race/serpentman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���üPLTEC …ž&$Z<4x5&‚m D�30jk fffxxxÿd�žžž ! &� A>B@@@ g D(*�.� , - , 1 2!( 8 1'''6 =/8�����;?@7167?'+S? &.J=$� � DFK R  R�%A; X  �l b8 �ooo &� °2{���tRNS�@æØf���öIDATx^Í’En1ý^Û3Ÿ)ÌÌÌÌÌtÿ»Äö"Ñä{œU¤Ô¶JÝ-Ùêo €˜¯ ™æG”š3A¥úí»ïûÄúÁ«+’Äzž\ͱmE¯-êuïwOßFuɤ©òð«¨TŸ7ºúc«dŽ·7½È,J„$VÇŒ1çóNT—“gÆt�ç©Ú(L<j½úÙD X™Ñax€x×Úûp û;ëÞ‡k„Ö‹÷�zà|ð„ƒa8܆^üfyi°Ù¸%ÑÂ{±g1ÿ¿ìaäbJåÜ¡ø¢b^wAEA™ñ LÄ=~ñq BýO>büZ[ …����IEND®B`‚IMAGE 540 ./arch/player/race/serpentman.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÕPLTEC € …ž<4xS5&‚�(*d&$ZfffxxxžžžD�ÿd� R *�  ! &  .� , - 1 2!( 8 1'''6�/8 ";?@7167? &.J=$ DFK� 30j%A; X �@@@l ��ooo$�ˆÕb$���tRNS�@æØf���õIDATxÚÍ’ÇNQ E}m¿é% ½Bï½÷–ÿÿ$œEL˜y¬8Ûst76ý Àç;*â+D;ªÒ<ª!ÍÁÅ݆˜ßûd98ž˜[Jo\u {|Ö›2~X ¬(Š" IywyË9U‹,ÏÃP•oWNœ Xg ­îKšª¡ZI µvÖ,à//J‘$¤ÏóGû惡£Êj°Qã àÆB?™Þ\€QJÃ@ñìL¹^ŠjýÀuû5††snßOÑ RÿI‹¸\õ}EOýÈã-8¹zùˆÀ /ŒØëÁ~O¿xèò 9' ­èXP����IEND®B`‚IMAGE 331 ./arch/monster/misc/serpmen/serpman_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,-ŠVÒi¯/_��c2Í…?�1�ùqcD���þ¿Êïå‹¿¿¿w¡ú���tRNS�@æØf���ÉIDATxÚí‘ÁjÄ0 D;™fGÞ*ÿÿÛ•ˆ¶,=JO}Ľg„ÉÛ?¿O>óó µ´ßL^.o\(µ’Ë IO:ùR´/è):óÙSIrê"å_ëäEÉö‡ÍÚo„“‹[Íl¨]¢‡šŸŒL˜>¤0(2¬ Þ¼î.ÿ€; ÄäA ¼Ã¡4áò‰¦*Ú3ÈÍA FhxÔ]/•ö�ž·ýþôÈf2‚ëL¿‚FhÿÍo?‹>¯úbNÿšRÜH©·l����IEND®B`‚IMAGE 150 ./arch/exit/sewer_access.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���]IDATHÇc`Ã,ý·ÿ·c°ˆaà h‡ µ#)$Ìf�™…wÿO ‰ 6�d‚$‰gÇ€=ö¹´Sj�< (2 R(öÂЃá”6;‚Q��Vìåg¤ÄãÒ����IEND®B`‚IMAGE 158 ./arch/exit/sewer_access.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���eIDATHÇ핱 À@ =höÑ$šÊd¥I>ÈoH“ÂVaÌ}ÅG,E¥ Ê÷¨‹Â=èú@6M@˜´�)€v�”�ìuÚÌÛGü´ÂX ca,üËÂó/~¿›�,�À0·Ú×íT*O����IEND®B`‚IMAGE 898 ./arch/floor/sewerfloor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE>J\FVdJVdFRdJZlN^lNZlJZdRblNZdRbtJRdR^lBN\NblBRdJVlFNdVftFVlFR\J^lVjtN^dNVdBNdFZlR^tBR\RftVblZjtR^dVflZftFZdZj|FV\VbtRZlRZdRflV^l^r|FRlBJ\>N\JV\ïe ��­IDATx^5’G²\G»|»çýxÿIÝÿvê¡BXÔQØdºOEßÏõ´„€´Ñù|ùò�@áÓ!òë|®±öË8V͈!óZñ"¶„U®™£,2]>‰:"2\7ÂWV ªÞÕ&ƒ\ò2Ù`hµ…j�Å0?œ´¨"â½´ ÷‰¹Ô@ˆ£„p{¸øÒSÉ$Ã}BVC4,_PM¼[N|½ç¿™dž#°¢.rv(ƉaØ•q–}¬ïù¢$ÑË>„“wUCpOÌÑ÷j+µÐ®ŒÂÁ” ÉmOªC«ûúx» .5@,D©êÆÎ¹ß0©Ä©ÿ¹r¶dž”©pUU9—p¬ç¹ôᮥO©ân74þlÎm¤Ybß?|-ÄcÕ=—Ì’ÛTýÞ\jdžäx<²r~žAEO7¯Y¨IÁ?„U¢™à˜R– ýWÖâè ÷½ uöD͘B¨\Ï/€üm¿X®D"±Hãúy1ˆ·[½¼ý7"«zíâó šZ=îÞ/]Wmä(¨6 Åï¹Ô‹GËE&»\ž49f€ŠÕ€±àõ(†!d¿˜Aë„‘�­Ø‰òíy]$‹‚È à&fCä•×q AöùÅ'ÿõ¿wv7ÌšÙ4/á¤úí÷ÆÌ-‹ô.ÊpY„¤Î¹´ùd:ùeÃnÇe\¼„µ½ÂÚ"#Òa$²DÀSñCX5D¬@¸[嶦©ˆ¡ùÏ÷æOI¸i€ª­€-‘ê^ú¯î/S4€ÆU…?¾ý(ÌVã3g–ùN…GœåØÏó"o«I5‡×Mðû£ð'Êó¤Ç9˜KÏEX®Þ—«û;ä‡ðTGD&Lÿ¸ ¨¼Ÿ¯˜>¾qhdî§a_ü�¢îŸõ_Üb/̺WŒÆ����IEND®B`‚IMAGE 329 ./arch/weapon/chained/sflail_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���aaaÁq8àààG$!!! R-���@@@d3‚B'¿¿¿¡¡¡¢���tRNS�@æØf���ÍIDATxÚµ’AnÃ0wéV&ãîÿ¿[¢‘j ŠÔSiø4”‡ÿò.qÏâ–gÖ7r[à'YæZòOškÉ/rjá\'©¨¨…ÿ:…TZú*Œkég4… KD ¿ZøÍåÇ%½÷‡YU ÇìG[­üÍhÔf?ÍÃì7vÐo1ûa(áfèßäG&lŠzõ;?…̾dº¿É…¾OÞdÿo°`,é ùp/aÿÃóæNKú^ù½Ýʉ%± €Øçyüi‡ >Òt²����IEND®B`‚IMAGE 1869 ./arch/ground/smooth/sgrass.111 ‰PNG  ��� IHDR������@���[a?���QPLTE����Í�ÿ×��¥��Í��¥��Š��Í�ÿ×�hà�ÿ��Š��Š��¥��Í�ÿ×��¥��Š��Í�²""�Š��¥��Í��ÿ�ÿ×�²""hàä¾;z���tRNS�99UUUUUUªªªªÇÇÇÇ?„Ç��—IDATx^äšëŽã(…‘zÒ=»›dgw»ûýtø¨0P‚&Ú£E:ùªNaÌÍqÚÃqiz ¾|öùS梦ó™žÑ×óëõCxiý'žÑ_P¿‹ô[Ðt„ýôùÒY— 4<£¯ç×ë‡ðÒú/5?ÐÃkêwè1^Ó£ßñÑÇÝç4{ðšÎgnxN_ϯ×߯¯ Ççêwîퟙú]ØCøLQd½äõ9fLÿP »šÎgnxN_ϯ׃ðÂúÏ|'ƒ7åÇéçÝ\¿CÀ é_!÷)x Ç”£é|æ†gõõüzý½°^¢ùü Ïê? ù¯B|}ð±DÒtì¹ßñ5=M[t.?t9¾®Ûê¿AX®¿Á0a[ÿ]Þ³ÿ‹Xÿ0xí ùò¯Ÿ.eÝùu˜&3Q¥+ãOéÊà9Ý9.>xèå&¶º±~kõ;ëõGë¿DÿMýŒqðò•G“wôÄRnËã?èa÷›+Eñ<§?�6~ÍS+œucý÷õúƒ³_ÿýÿyæ¥öÕ­lÅ#›ù½lF|Äœ¥6jùxNOÀÏaü3ÿw~®ú¿\ÿÔù¿uÀEôâÅöµôÅÜÙÌãÖähy7zÕÉÇžÓ ð6ˆ/óÐÍþ—럀:ÿ@ö_ó¼³™s�F6óŸifÄqT~TUÒ'<£#ÊÛ]üßã‡n÷¿XÿÓûwÓþ+^l_ÕÌgéF\3Ÿ›¡lVc0Ž=é±Ïè¦N|ú„ÿµú'˜Þÿ}ÚÅ‹íkéÁ›~f¬ó>ø€1)ì–xåä<§WÀ)þ—¯ùÞìÿ¶RÿÒû¿Íú¯x±}u7åÁâYùTÓVöª¶ 6ðœ^¯})~.ŽøQ¾CŸñ¿R¿hüƒŸõ_ñ”ö“Ö“l"3Žq¦Ó!d�Ïé5ðâ—‡®âùvžò¿P¿èýƒ·û']È Þ²ŠÝ´{¦óÔƒÍæÁszƒÐf ìßÃÐçü?_¿hüƒÿõÖ�šÿŠž/½"ìDÙÆclf¶ÿÒY0xN-º©ïó}úœÿßž­ß ôþ‘¿4ÿ?ÎôÞö2²™÷ó硹nðœ>r¯moíþ¯°Þ~aì° Ðü/¶¯éPra�ž£8·…ÏéìºâGýÿÐWý›y âüw÷ñÃ9Ù?t©Ä DýeHÔüë<æ€hGcÁsºp Jü0zѧý3s˜Êë�â÷þ»û˜Â ü'FâÅ}–i»² �Ÿê|¼L ŸÉ?xNp6‰E?ôIÿ!_×'ê×�Šßûoïc~A]tvY@<ŸÒr_£üÒÄÌss]'à9}DÞÒÓºW¼Î?¿±Òyhâ7þã)íGký_êgÍsIÁËÎÖà‹µ92מӇè=$†x!þ”ÿˆ%z¸Í×ç.~ã¤_]ë¿ÒÓê`›Ãô—Y:¿16´} xFçßu×<Â?ýÆ ÓÊÏu&>ùuŠ#ñL·³¿ dg;/ϽHÏèü·æåøôÃ7|À[æ£e¡Oó½ -¾¬Sý2O#VÇë·Az§ôyœdŸ:É _¡æõø§ß|ü Ä“¾Ó„ }‘GW•â«:�ÏñÖçÐoò¬§óON\~è üöš7ÄǯgÄî£'žô¼7oôe~]wn·Ü†}åuøy<[ŽL~è —ø¡w߯§¿= ßD7-ž|Ô~Ó¦óÓdÙÂpù¡ y‰íÛ}?}<ÆÈ }ݺ×¾ªóód¥¸üМxEGZ9¥ë{èN»0f0ßü<ú/ø±Îâïwâ‡ú9>Á`Âüºí€šÿæoä£÷”ã¡ ˆ¿êññhì£ã÷ÐÿoçìYb(øIqîìËÇÿÿ¡)BòH!dï"¤b\ æ©?f·ßØíûGï³ïþ] YßùÆ}ö º€°ßüè}öÝ¿ëqþõ둟¼Ï¾ûw­÷íöƒ÷Ùw¥¢%^þúöØÏÝgß}»ùíÛû±ûì»/Ð2k#?{Ÿ}ù3Ügòÿsö>û:´ÅíHü¬}öë�������������xMšÒ§}Ÿ?‘Ðã}_µ×LÜïûŸŸbz¼ï«öË[Ä<ïû{^}êñ¾¯Úk&î÷K½ûyEôxßWí5÷û¥Þý¼"z¼ï«öš‰ûýZï~^=Þ÷U{Åýz©ÏÞ/èñ¾¯Úk,î×K}ö~A÷}ÕþEcÔSl@ë"����IEND®B`‚IMAGE 2998 ./arch/ground/smooth/sgrass_S.111 ‰PNG  ��� IHDR������@���[a?���WPLTE����¥��Š��Í��ÿ�ÿ×�²""hà�Í�ÿ×��¥��Í��Š��Í��¥�ÿ×��Š��Í��¥�ÿ×��¥�²""�¥��Š��Í�ÿ×��ÿ�²""hàÛ‡W���tRNS��������99UUUUªªªªÇÇgÔ7Ï�� øIDATx^äœ ã6†óv¸k{Ûû ädþÿï<˜’;–zænQ`ÓÍâ݇|)Ë’–öìåÝ'›àX7Ë–Ê÷äßœËfïô~f6<;=? Gêwág׿æièðSê¿dÓÀ±~³%ì=å%ßüåX?2 žˆÐ#õ»ð³ëÿcÅÓБŸRÿe™1òFO9MË×”§äi&Kïô~fÖ<ûüø=R?‡z<?¢þïéú¥!+Ûø*cP¿2ÏÑQD!RÿÅ&³»YÒC½Ö<gžÿ±»e›’¾Ñs?3®É;½ðýø1=Rÿ•C+%¾ ŒˆŠÊ>?"*>æ³®U×nà++žÌJ¿‚("ü¯õ/K¦Péß²ÝQõ_–££Ï gÝ>ÍçÜ2Öþ òUg§mfË“l{]½—§ÃNÔ/z¤ûW>P`\®/õóa[Ý+ï×›ú»úH+ÿ¶þí•K‰lžÿàèùDëèû¼›¿Þ• Öº ­ÎTvNÃò*>#›üÎoò’Q=R¿_­÷õ×Ñ/ñ‘mý®ÛnÉý{/,IWþiå]ù/ù}ü±Qt[3CʨÿbþI·ž›ƒK=w~&… ïÛI± |¦ ¢Ç™%[JŽÓÊ_¶;/¾Ä/;`ÍŸë­¾ä¥P(ð)‹©¤«Ã‹%ø—úQR¾D?¢ÆÊÿ>¿Bß?›ú;…% ÔñUÕ¢Þÿ�D_y3…¢ß’2Êp+ óäwžVþ9‹û2ðÐ5~nSºU¾¤~p%ÿ¢‡êG4V?úE »Ä?¢L²ö¿¥ïMýñ½É–ïý6·@GŽò6%ED—= Ñ7¤Ÿ-œÇ¬5HKÿÀl’uür,üö¯5ú{ÒEùÆoÕ£œ€TŠ¿Êï�íû—uý=gY42J¡W”Ÿ,•Kƒ(ÀUTÞßKÛ¦–þ\Þx‰o÷ÕÖŸÔlÇ/zÌ?#=̧ÜEŸþ3íIràÿºª¿ïŒp@éÈA>ÛãÃêõ‘!°¨’˜Án~Òjkâ?†}°Ä¿9e…oï¾UÖå{õ_O0e|ªÿ~@Žü¯êï9K9–Ü}i/JÏ)©‰*©Þ¥MUòh)×üÒÒ§õ�do•ø>ý“ëwŒæ8U=è_DùVýr‚ññ©þœ—?›¿éÈ~òÝ)2‘rdßL»Qb|6K°¤0ˆ'J6s^¡UÀK/ÛÔK±Éì3ÝLk-ƒUú„oÔ†…ÿuüÿ¹Dý¯øþ¡Á- “z‰b¼%›à†(#Ñ ÕP3s¡ù¥—=à¯Ò|y>mnƒUûgøFýœ»þ¢‹ÿîø+ÇþŸ¼öœiä PwÑ^¢?;!eɤtC4†ŽÔ¤(tštör,ôø¹Ü´®§L{¡«zÜ¿¨|½~ÂÀ€¨ ÿηîT8ö_ù~n›p>rнIîÈA¾4ˆ0Μ'yoÍ93kö‚xÓ]g¨Ôï¿Î·=¼èQÿ ÀWë å„ôðïü2{ý?yé6±sh p½¢¼¯ÍÖíÿõ{Á3¯Ö„Z½|óuîiÍóEúgDùZýñ¢…‘‡çI™éàÿß›�¿åè³€£'¢QÞ’!7¿=ÃhvÖy¥§7Z @+Û:AÑ£þkƒùRýJüöÇ0yøw^² /À;ÿO¾;¾Ñ-`:8m†ùäéFÈ'[ÎCOßQjIÅ_XøÑZó(zÔ¿(¢Œ _©$0BÝÿÎëëQî÷Ëåÿ'ßïÛ»y”»þc|½FR£yò«Y«�É Þ­<´Û­®ý‹Ö=@=_ªñ“¾ø7Ó×5x¾­ÓÞ¿óõûƒ§ŸÐù@ e¬#Çx¯ƒOÎu¯îßyhé´W&L¼Õ¯üМ½Rô €D@Î×Ï;àßüðï¼Ú6€í÷þ _3=ø¾YBïÖ2:r/íTì :/ÚÒµó¬Fµðí!(z°~­ƒ[¿œ¯ŸãL«øIaÚø÷=MÔ¬®ÿõñЫÿÊ—±âÁ÷¯ê/+‰¨uä¿´äO‘ªHN•§¡gz(µÿRxÚÎ\ù×ziDaDÎÖOÒ> )—ÍßF$ÛÆ¿%u哇C.¯þ‘‡¿Ë…ß7‹ó‘=ŒùÆÀMœ$«<Ò°ßï„ɰþs¸Ðäƒþ‘Á’RßÁBʶçMº 0€ÉÊóïGØ•Ošn®×ë/CÒ¢ï6€Å߃Ǡó¼=þV°!m9Êᢨ‰ÚÂï󗻬sÙù¶ùª·®‹Š.«}Í_Góê#++6ŸAò†W®íy.Ô«{O7Q¿qÿ•G²÷23<~ÚÖ¯�³?EfýÁ‹š¬¦@Ñ’â|¨•yÅ¾Õ ¾Ûy~ôAéó‡0>Ÿ°Nfªs|6ï|üÛœwmÉo6ù–uÚ>ýVÑ¢oxàÃõ•˜D+?ëŒHiÇ ›ø~õÍý¯x°Iž›"6mjÆY×%þ“Gò•µžO&÷}¡An|ë…t;MföàÙévÐ &—»o8¿Š?òå1qʉñ%¿•·s¬ê¶Ä×2f^ê=JFÌ6¼¨Ü�$O¢³€(½ø[Éi¨|Ryê\.Ôø-Ýë' TÝREXl °É5šrˆw§ÉŸì O[ïÑêCZxhlýß4 ·ô‚<eëwzˆwE›¼ëM¾ä]<ŒIE¥Œ_¨•ù™²MÒ”ÃüxšTŸüü©ÕÉé@ÊOþG³ð?[r"åÂýuýÅ-zh>UóršÄW±GþÜÖð'ÿN¯i²­"ýz¤ëkеå0ÏiRÝm7Õ»¸üùä›zÞÆ¯É&[6ä_C=ÎL݇QÞÎóš’[®f;úA€'ÿ#?[Ý0«ç/¡‡ÿ~€ó+�ÿ|?.óçóÛ_(?{ÞÎäç|~{“Ÿs?Àù{_týóé =üóùΟϟWù‡¿^þäúÿoüÓ*¿tëÿo;gŒëF QÍЛÄMŠ”~’ûŸ3°-[|’ŠÅ[ð[=Cm?ÜØ �Îýt«ÿ>–ßó†_νo`øÿ“OÑ8ßíÿc¦ ç~¼åó9›ïÌ ÞÿŽ÷Á§ÿ¿éø}�–€¿ý|³y»5_{¾ÐØCù”¹|íù4z5}¿,½_ýÿ¸_¦�Ðûí†ìç·é|mÞþ�ÚÖ÷ë3Ÿ¢†Çæ÷÷|ëÿ¼�”I@êÓõóçóku÷¹þþ8_ÿÖüÁû�(Ó°êxÙ¯z`-ÿXÉ— ÿûáåÝ@Y@ê ®óokù\ÌçZ~{s¾ÔÛ¥ü²økågþ~’$I’$I’$I’$I’$I’$I’$Iõ}Óµùøøãn¯í7í¿=½ú¾\—þ%Ϩß~€y¼¾bùÚÔ÷­Ž§(ª½ŸVh{ø^•/—¥÷ëM‡Âó�ø¾—&Ý“?¾ Ôñ ë«Sá~w�xx{ªjîwùrYx[mýé~�ýû[=€î~jx¾¼5w¾ûrYô×)‘§¸þÔŸ§÷ "ßæ|ë}æ<»×¯ŸÏÓŸïÿï² è¯‹þÜŸ‚û½�€Zû™ó ¸ûþ|÷å²0è¯×î׿{žÿ¾Á^PÔØßœ§œ<_E _.Kï¯ïöÑýƒîu—7óÙ÷óúïóòô�Š-b Ñ„����IEND®B`‚IMAGE 977 ./arch/monster/elemental/Shadow/shadow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÑPLTEºñÿºñÿ¹ðþ¹ïý���vvvaaa&&&---555,,,ºðþVVV$$$fff```hhhMMM222WWWsss)))}}}lllššš777¤¤¤œœœ***·íû………444:::‰‰‰===]]]‘‘‘666†††·ìú²ãï<<<%%%pppkkkiii–––FFF\\\“““!!!000BBBYYYAAAyyy___;;;eee¸îü ƒƒƒmmmwww„„„???IIITTTNNNUUU°ãñ‹‹‹QQQtttžžž...€€€ ®Ýé´éöµëøEEEzzz qqqHHHKKKŽŽŽ´ê÷¶ìú¦¦¦jjjªªª­­­111uuuLLLCCC»ñÿ###ŒŒŒ˜˜˜°äñ¹ðý’’’rrrddd|||·îý±çõ(((999+++333 DDD¯âï¸ïücccˆˆˆ///"""^^^¹ìø[[[¬àîŠŠŠ   ­Ýë§§§n}���tRNS�@æØf��®IDATx^•ÓcÓä@๷“ mÛxmÛ6×¶mÛþµÛ™JWm’©TíùÒÎÓHWGW'V�Ði€ã8 AkM��^S u7ù„°ž  <a“Q^™”vOsNÞ?kÍ|Õ;ŸÐŒ¦RÏÆfŸ�òù­ùÙ¹Þ\£¾Ý’m;걕t!2ð‹P@ûáÜè˜ýÅË©×ÛÇâý« ÀG3{|øÄ¨Sê]îþaS³Z¤»[É8o&½´÷¹.øŠ ”À‡ŸƒW ×=>¡Céms¿àü㧃χ®ù„ð |oîŽ�ˆ"ÁF½áStü´Mó€ý‘Ÿ±n[§ÝbZ][Ÿìäˆc—.K€‰Ä@Ð;Õ³Svï6!`-òw0Ö¾òŒLŸ Ùæòèm§¹Âé Ö}HvcuÁá?pë¶Ü¡_a,ܵN†'îíxCAÐ[zKÞu„~t§f�¦ ™=#àLä¬rþWNŒ¥Jð››_0ÇAõ«Õ€1:Cúº––+ñßD! sü<(Ð (Ž "ê{XkÃä/FÛDS-����IEND®B`‚IMAGE 627 ./arch/monster/elemental/Shadow/shadow.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÏPLTEÿÿÿºòþºîþ¶îú¶îþrrr¢¢¢fffvvvzzzŠŠŠ’’’nnnšššbbb‚‚‚JJJ¶êú:::–––&&&~~~²êö>>>666^^^jjjFFFVVV®®®ZZZBBBRRR†††žžž ¦¦¦...^bfªÞê®âîºîúªÚæ²æò¦Ö⎎Ž***²²²222¶êö¦ÎÚ‚††NNN¢¦ªªÖ枢¦žÊÖºêú²æö"""ªªª¶æòåâ± ���tRNS�@æØf��RIDATx^åz„@ EI2ƒûº»UÝ]Þÿ™šneË×û÷œÜä‹V¨hG a…¤U¼ÒhËj¡ T!ܵA⯠wñë1#Šü‚A•qF{g<­oµVãÍÁÇÕMmͧGYÅs‚W Rþ8ê¦w»=ÿ$7ß8Læ{¦§ÛÛŠ/Ra<4ÒùÀÔ­fSß›tÿûûº.È €ðãQÐG{Ḹ$p6ƒí}€ãÖý% –dÊyÞ³$¸þËz½†¼ t;ï·B�aœN® ¨x-š+ŽI ÄদÞt2’ø‚Ngß»²Ìc¢Æaw&Aø{ ΕP"ö­…»eሠÐm~–¸ º3”¦:þSiÅqøÆXzxY7vW�PÚ�˜ÜhLâ]‰€�’Ægidá#%$BÙÉTíÿùy#½óÐlD����IEND®B`‚IMAGE 2434 ./arch/monster/dragon/Shadow_Dra/shadow_dragon.x31 ‰PNG  ��� IHDR���`���@���Òê‚<���sRGB�®Îé��ÓPLTE1!!                          ! " " $ $ % & ' ( '()**+,../0.012 356 !"#678$8"9#$3%&:$;%&='(%'('A?)*+*+B,-- . / ,!!/!!0!!.""0""1""0##2##3##4##2$$3$$4$$2%%3%%4%%5%%5&&6&&7&&W6''7''8''5((6((7((9((:((7)):));))<**=**=++>++?++>,,?,,<--@,,=--P((@--=..A-->..A..B..B//C//D00E00F11C22j((C33D33H22E33I33J44G55G66K55K66H77L66I77M77M88N88O99L::P::Q;;R<<R==S==T>>Q??U??V@@YBBVEE\FFz??{??~AA`JJ”ƒƒÝ××WO¡����tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ�$¶Äæ��IDATXÃí˜û{ÓTdz— •Ú­Ì¡0u•QÆÄ)*ȆÄxÇCqN6`êÁ*A»ª‹‘hí”X´U¢´X‰óR­iãÏ´cc‚í¼ÿ žtë¶µ{ö ÏÞöéN’·ßÏyó¾ï9ébÔFíD·ÆÆÞ‘#`õæ&}42€&l±äMb]ãÈÜ Åóf”®j®-¿fMÓˆš¯4™ ÅKšÖo¬(,Oï»ä¼š« sLUµ+®-¿pŠyEz�ÝŽAÖét°'ë„©MU9Æ;Ö,­½ºÈ˜fd?§¨ª¦*²"ñ¬ÃûrP^d(\t÷²e‹KÊïÍ1¤ H9DZ¼¿â±˜¦Êt8zN?=o|®±Ð\usÕô_=?¯$½$¤D-ž´X,ŠcQ IJ†\“qbñÔ9W,yì™Ê’9ée9…ä„)úKQð@ÕïÔª5×O*(˜8¥¸´Â|v~AQ‰9Í<ô=ÑX2ƒ"K2â! ˆJsA± ¤¢´ta<ùÔbsæ_¼»[èqÄâ²ä‡z–7.2 ‹òóMSÌÄߟ‘?}VÆ€h<®×Q" jTë)¥ÇoÃ�ƒ17''7¿ÿùèY™¸¨ª‹ëq(JLc{ϯ(4 ¹¹¹§”bÂ_éöB @ÁÚÝúmƒ¸Ê&;¡©v’Á€c8÷’‹g­¯šæZ“àPR_M€Ôd#KKŠó F£©¸‚¸ÿñªÌ™Gà‰õè'8qÙÙ{þ‰rÓxƒaü¤Êui¯•ý{p´d±ÊlòY‰Ýr “y¸úz¡Æõ~îêêÂyp‘©kIÃ×'\rgÏôµ¸¦É q™rºÝÎŒ�Çø‡$÷™$áwXtàë6Ö(€][­ÃÖ§€ŠE$ƒ‚hµµšaYšN?€£ôENàÜe]^¿ÀûýÇó`ëö´;M™7€n2ôrŽóx8·È¹\.'6—‹uºX®ÝŲ6@ +�—[Wwó~¯Ÿw{¼Ÿ—óê!øn|žáìí`8�èöùßåyÁˇx>àõ <òóB@;x¯‡õú}.[Ú�Kïz ¸ì÷}pèPà@¿„"HÅNQÐÁ^&]€Å¢×ÅB¶¾Ð¶g¯Ûã| I"‹+U’EY±¼êŒx;xž¶§  ,Û\�2Û[žÛ¶™v¿#8pPþ•㸒# ~ÂP;•ˆŒ¬ Î@ À0 õhÄßwÛ6oß¾rõ†×ág®¸Ÿw;q=Š"ÞŽQg€·ž°_VÂ2@¶² 5„.ÁÇûxŽeí/R+o².\¸zßÖ'[b9î`XŠ lRX’‰HbHŠhšÄP@cTeHuÔåã÷óøFxýb'·µ7<»ïÕ­ ßjh`¸÷?†°|…‘p~P¦lVx€¡�ŸÓ‰Ž(i½ñœ/_ÞñÈ­ßÞà _Ë�hÜbÜl!üáõxœ ’cr°ÕJ’’`ðBú¶§–?Ù°õÇåOm™»«~²Ýý^.È34E'Œñ�ÖiC1­$9Ä%ûØÏöá‚êwÖ>¸é–Õ- ßàp;Û¾B@H`o£h¤b@ß–0¢+Üÿ:ygu}}}u¶ÍÖF×ч½¯RhMS6ZT#Gê®30# �ÁŽž^ É 5kkîÛµÀb ´aE†îÿXI2¢ªÉ:A“$ý_øÄ±cÌì¹YË^{:´ZµØP¢ÉMüq|ÂáH$Üéçã±ýŒ>G‹+û¢ß&l:ïÒãùY‹ªH´õé½ÒËìöžý–$³ëÇeUçÍü÷8Ž4TbQ·Z﯉!nlGª‰¼+oÂ7çgÇpÕ´hT†4E™Ù™[¶Ì>iÀÉ8”hL•HƒŒ�—Í/{»fxј&SŠa€¬²šiß âÃÀX7ˆá‡Ž �y;oŸÿû´¼qƒ¸n»3šÿ‡e-Xðé×;Çf ¦Od2ÿ¬¬±;.Ÿü^Mõu?ý2�„xú€¬µYßÏ|mÌUy5c«O)GŒ€Õ5ÔÕÕ½2úo·Q;áí?üJ¹Ai(šÖ����IEND®B`‚IMAGE 2440 ./arch/monster/dragon/Shadow_Dra/shadow_dragon.x61 ‰PNG  ��� IHDR���`���@���Òê‚<���sRGB�®Îé��ÐPLTE                          ! " " $ $ % & ' ( '()**+,../0.012 356 !"#678$8"9#$3%&:$;%&='(%'('A?)*+*+B,-- . / ,!!/!!0!!.""0""1""0##2##3##4##2$$3$$4$$2%%3%%4%%5%%5&&6&&7&&W6''7''8''5((6((7((9((:((7)):));))<**=**=++>++?++>,,?,,<--@,,=--P((@--=..A-->..A..B..B//C//D00E00F11C22j((C33D33H22E33I33J44G55G66K55K66H77L66I77M77M88N88O99L::P::Q;;R<<R==S==T>>Q??U??V@@YBBVEE\FFz??{??~AA`JJ”ƒƒÝ××豪e���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ7 Ÿy��$IDATXÃí—û{ÓTÇ;ÀËŠJíVêPŠºÊ(c2EÙð‚x/ àØ`Sœ“ ˜:ä┢]ÔÕH´‡ƒfJ,Ú*QR¬Äy©Ö´ñ‚™VclL°3÷¿Á“v° žmM÷ðƒÏ³·Mû4M¿Ÿó^Oj2Ú¨ÚpÖØxRµO–¾.ÛÔŒŽ¦¦“Xgzs©®?IfArÔoZ{mYMóê’™¶«š‡Õwêf PVP¾q}ÓÒ"‹­ ²ù¸ï(/I‘^/ V:¦^\vÝÊšJ[neSc:#G в$+ª¢Èô@ z`-¼¦fÙÚ;­–²¾$@’¤X-™ìAUè¯o0–ÜûÊŠ—,_~Ïâó„ùO§O’$ä$EEú)SùþúÆ�ÅóŸÿjãŒÊ[*V³eæò”¼WAIhZR–RÆE�ŒØÜâŠg_zåÜiE“¬¶É7¬]­ÇFAº²ŒÂ/¥Ö¯%˜¬KÔQ\hÏ?×Q^R4u’ÝnwT˜L�²‚$J2Z*B==É )[Ž¢ÓOµšf—””Û­vëâzŽaH”’šš$ª¡d2‘5`öŒü³>þÛä˜jËÏ/,@€Û·¦ HM(š¾|Y?”ÄÀ5�8ç±?ÑkI¾97×lµXí+õ—ªÉ²œdÉM`,!ýûf³Ùb±Ô4õv¥ â—“)}Dè,=@6­fýìK/;­ßb™\¼¬÷,©¤V®¤“};*Üú€©¼ÈfµZò‹ž8zÚ+¥ƒ£¨z•2Ç;£ãz]Åä Ë[YEïOTºP"BðÄyj”à°Y,æ~SÒéCñïîîÖ]’Ï4rBïö{Ý©@RU}íÈ$±_†G@Ðå½~7ðPú@ò1Q”ÐSâ#œ ÀGLpµ¡ß�ŠÀAæ‚å¹H„xEA?ÍÑü ã.à8Åø)’ �Ͳ4 ±\(৆¦:�¥º€ãÐæë )Ÿ—òù¼È|>Íûýl(bý:Äï‘n€Qòw†ƒº:d ËFÙ�Dz~ú.o5 �:@1¶“çÂв, „i‡þ xà ¼„ª¬µUÏYk«Q�æ †8–ã»xžâÒÂú“¦x1ù$büûö¶¿ÐælÙA@àÛÞê6 l 3ï>&#ÏK<ªT!JÓô¯Ò¡ƒÈƒ7üøæíÏ­YµcÇflìÅF�œeÃá.A–AŠË] ºW‘ãhç”xU—wÏÏô¾Ïàë¹n^å~ÑCQ4dƒ\w†ú0&ºb²Š¡,@þB\Œ¢iêá–']_ì_³èFgËv'áCä{€ vs9€ QÌMˆª£¼‹‚(ÆP„!ùü}šhhxkѶW÷?ûåy7¹Ž%Ø)x½Aî jHV`î¸Ç¡Ls1^ˆ j€½-A¸÷ÛÛÝùòŠ·5ô¯ gü'��G ËÕ‘4I ¼ ê�†‰¢6vã¡û Åx¦Ôïž·å©wª.Ú€ h98|à„µ!(qóR€!ð”é³txýdK´¬¹uÓCuõUw lg¬;£Y/ ¸»Ý€B@¤z×ã!I¼oǰ1UõõÕxº:# ÈP^Â…Ç17Žc}#GÞ`ía¬uáîû«ëæŒ%SgYŽ éf¦®û hIUxÂyâ.ærÁ3ëY‘3oŒOŸN‖dC]±xüHæú8'i …l\~Á¦‰¿]2&=æœÀãÉp£ìÛŒqAI¨äêgåU匯¿Ûy¬z2�ôQô0ðrB“!>ØåÉ1~31Ïø~ôfõqBU‡ZÖ)s¶l9;Ë¿²n7¥„LévuõÛ¥ r²‘8/¢¢‘Äõ»éÕ¥»ŒÉ¡,»%UKC^6>oúï î(ý0' ��èц\θ]_ºpáG;Çåd%ØaRÿ—Ÿ®¯ª~oÊ;¿Ï©ËÆ“NÜ…ñ¥§U«Î»zìk³j³È2LA†ïœWjkkM£6jÿoû®¶ WKÉ����IEND®B`‚IMAGE 346 ./arch/monster/animal/shadowtiger/shadowtiger.x31 ‰PNG  ��� IHDR���@���@���·ì��� PLTEøú€r���™èË���tRNS�@æØf���üIDATxÚí•Aà ]öÿ®8`Kfˆ8äÂT*m"k¨].¥Ñ?§/ —j'×´6ˆ£ #ç ‚ ÄËÈLP †é½Üw‘³Œ þš:ÔskðH!ý8BžE±¨ ¬ïD7r Ã(\ÐZ› d0( ö�u–&µÖjÓº�–� Õp@…&À*”±¢þÌPêÚ졨·j>耾à [x³‰à9f=F,Xo‹^ë�,H‡©¥s²4ø8¢ÂfAˆÐÁKAä眔�÷’NÚ(( )÷ ú[gS�õ»ÂÁy‚Óœ¾Øå2ã¢> ®ŽªkÄ����IEND®B`‚IMAGE 336 ./arch/monster/animal/shadowtiger/shadowtiger.x32 ‰PNG  ��� IHDR���@���@���·ì��� PLTEøú€r���™èË���tRNS�@æØf���òIDATxÚí•Ñ Â0Ïìÿÿ³Iš\'x}É ¦HwnšZ“ˆž>Wß7P?ôJ}áèýÌ3ÿ00Á ]{>Iî§ìª4¼H;„Û)ò"} iŠçëì_‰ßËöLèŇ´v½IIBÛ8Ô9uÈ]šÔZ²{i�¶� ÙÉ`@쥻Yæ3©Ï„u_ë2\ dóÀ€�‹'4é¨cË|| �!Âg®D�÷ççÃý„àuþ57Ô³Ú € äu"°Á˜±$ <Bt:(€ëHr ¿ ¬�êUõÔ oâäd•/'µ ½B I¼����IEND®B`‚IMAGE 334 ./arch/monster/animal/shadowtiger/shadowtiger.x33 ‰PNG  ��� IHDR���@���@���·ì��� PLTEøú€r���™èË���tRNS�@æØf���ðIDATxÚí”Ñ ! ·îÿÿsáÄ8‚øæ<z¸Ó1Hõò²ŽcäS•_qñÜÀÃÊ_?ƒ÷ ²tÏmL 3ŒÀ\ÑH°rWwI¸íßýDŒ` hØô}â=¬Þ[¥õ¥èCpŒ`��Ë@ÀŒQ1ƒVÌÀlð•[k–€P|Á[��àMh�’À&Ú"h ‘\”µw‘TŠ`À€áŸæÀ@Â2€.2�ÈAЧ äÎ(ƒÏ0@ô�–·Ž0'h™ø)!ð(áE­´›a3ôw‡€sV`ƒû„û�½¼Ìòò ÎI&Š=����IEND®B`‚IMAGE 211 ./arch/monster/animal/shadowtiger/shadowtiger.x34 ‰PNG  ��� IHDR���@���@���§ã���PLTE�����âÇÃ���tRNS�@æØf���{IDATx^Ý̱ 1DÑïÕL@U\i¢*FòŠ“®�~²ÒóÈü ñ;ÄnpRK0;cÝÈ�ñd Az®;1-h§¥Þ.º­Ÿ”»z<SW�s-ìÆ"o@5 D—þW‹úŽ]û<6qŽRt2ø×>àÐ\wUËŒ����IEND®B`‚IMAGE 341 ./arch/monster/animal/shadowtiger/shadowtiger.x71 ‰PNG  ��� IHDR���@���@���·ì��� PLTEÂú€r���ö‡6®���tRNS�@æØf���÷IDATxÚí“AŽƒ@©ÿÿ9R¤ÄÒvƒæ°*‡î èᡇþÄÇäXÕDøsHsÂLGþ+赕èŸ0ƒ¿¤¿&åÅ™ 3€éw1+ð‚rwì&ð…8N2PqoÈXÀZœ ‹+\@AhÀ~ƒ^°Ö‚EAà ÁÚ¨ B>5PJ¸%@Õt7G0a†Ô�éfÞ†á0žá¨SAßEsã—*ÿ“™.šêò¹‚÷Fáeø|êsoCä]”p3¯gô›å`z÷BêóóÐa¯qÔççÎJ”|ÉEA läµ%àËvþŸVèááo⣠®ïåê����IEND®B`‚IMAGE 338 ./arch/monster/animal/shadowtiger/shadowtiger.x72 ‰PNG  ��� IHDR���@���@���·ì��� PLTEÂú€r���ö‡6®���tRNS�@æØf���ôIDATxÚí”ÑŽƒ0}ñÿÿóI'ÑÑ)ì:J„ú¼@O¼M‹^^欸yŽhÐÌ.Fº:ÃÖâ– ’Ï xŠ —›<øC˜¬Ìƒ(ºœ%Á=ͻϸÙ<sõ¶ìl°‡í1\s‰RƒŒ¼)³=Ò`ŒajÝ\áO0h !Ÿ(¤8[€fSÅî>Bƒæ%¸™‡Å ìåU§j†›Þ¢�CFa'3Û ”ó�¯D¾4Ì¿{ IÀ“ðï½Î±ãþË"ØNà}ÜçóìC™·8¦}P‘4%¦ü”‹‚XlpבÀÇù/ Pèå"¿k³ ½üÙY����IEND®B`‚IMAGE 338 ./arch/monster/animal/shadowtiger/shadowtiger.x73 ‰PNG  ��� IHDR���@���@���·ì��� PLTEÂú€r���ö‡6®���tRNS�@æØf���ôIDATxÚí”Á ÂP cæÿÿY¨”(K³±¹v=´gØ„WãÉ“ïPwú˜…Pí0âQžíÓØ &A ¡L]Î\lSžÊÅ’¨ûVðúªÇñ­Ü´¼þiçùšƒã£Ï5�I“i6ñÜD3ÈïdÖ”ók$3É4 :Ci8ÇãýIHw œ r³ÁÜÐü ¡°¢Éì ¸VtÁ— fͶA0Ìb‹ÂÛ µÜäÍ)¯F ~f«kg0‚h'ྠ¢¼Ž0šAyêÚñõ _7~†N. g6Xð±pfÍoû>yòGÞ5b ÎϺƒ����IEND®B`‚IMAGE 206 ./arch/monster/animal/shadowtiger/shadowtiger.x74 ‰PNG  ��� IHDR���@���@���§ã���PLTE�����âÇÃ���tRNS�@æØf���vIDATx^ÝŒ!AÄr[+ZŽàCò„AâyÐòsªèZqEdÒ3üœ¿1¡J_ÓR‹ƒJ°ˆa–€‡’˜˜fTw�ºž4HòK¸µf”/ù¬Z1^ ŒÌŠBselጞG×y<LÌÆÎWÍ´‹ %ª¨WY����IEND®B`‚IMAGE 1116 ./arch/ground/shallow_sea.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEYgÔSdÊSjÊP^ËJ_ÇP`Å^pÍYiÎ^tÓPdËJYÇYoÎFTÁShÏ^uÍSbÏ^nÓk}ÖJZ¿gyÖPfÅYmÔbyÑP[ÅfwÏbtÑFZÁg~ÖAO¼br×lƒÛt†ßg}ÜTfÃbx×s†ØXoÇLaÍXjÇS^ÊE[È@VÃq‚Ú@PÃEUºJ`¿s‚Øl~ÛAU¼ETÈqŠÚo‚à^sÚk„ÖblÑOa¾z‹ãƒ—àXbÇy‹ÜbsËpƒÓtßl}ãƒ“à†–ÝfrÏtßAQ¶‡šä™âgqÖ‚•çboËT^ÃâlƒãfÏèy‡Üz“ãYdÎpŠÓAW¶ANÊ~’Û’â^hÍo‡àïš8,�� IDATx^ÐUÎe9 àØa:Èp™ùghæaÆý¯dÒã§XŠªäà”r³@&Bä?^ú4OPªQº'R›ì´ÚÌÐJ,N…æyÿ²Ë‡ôïKB)3\[U­êÇ·“Ém®¢é¾Þ�¡ŒRÃVZÌlEBÆTú(ošÅþ—KùFÖߣךj­QDÍ4öUHJZE,hf="hÎd4½¹ùI`xI5oóJ;o‘ÅoçµÑÖzÛüÎËºŽ¡JÇ+,õRH)’Hˆ˜þ?5£(¥.|Ô·’h•êû©²¾àÚ'%è Ä@¹·½ÖŒ rc2ùñéå»÷ÏÁ#ÃVa £umX6%šòB„íŸ4=/΋}#¼M„õÖzä€$ÊÇßæ/øCžVk\À¬¬¦Ó¼•>–6¹#rÞÎïÇy´æ”ÒX³•žéj²ÈG_Qçùœôy ”¥`Έ&OHs9*–-A¨8«)§µá!˜áŒgÎuÆlO@Ì–Ëþ~3¾–ÅwV5Ânðæ­¥î0pÃ`P]>ÞîÇ­ˆ^½7Òl·n7ܬ Ôn¸ÏïT>šç—´ºfÂ\ed`PÂ)£(’%Ú(°eÛÇÇã08RBÄšë¯Ú%škÇETA·sWÇÝàtœHOÖ «~Z•šw[ø0ùùü:wÕ u›XâµN”L<å`•°š…”WOo„æý¤ìså \[(˜aÔŽúÊ…QÔV•%,»vDJY°, pÕHÉ€V¨fÜ·²&Û{¥´â]FA&¡x�|UÚl*Öµ1T£”Ë(Š”‡, .Û>OÆÄÆÌP*Xþú´·Ì»£éL·Ûef‘¶¤`/ãhý›.@Ê<m¢âú:œyè*H]‘áÓ§?b_Ý/^žƒòQZë)5Ùñ08c¶$s‡?i½iÏïžÿZìÓ¦U"ÞhÙŽFË€Ä,{¯Ÿ?þ2i×¥"\ê.ä~öÿ¦/H/€hmÒ&¹ÉŒ©%!À¸H¿¼/ªñάKåÃŽ����IEND®B`‚IMAGE 1106 ./arch/ground/shallow_sea.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEP^ËYiÎJ_ÇSdÊP`Å^pÍSjÊ^tÓYoÎJYÇJZ¿PdË^uÍPfÅbx×YmÔJ`¿ShÏk}ÖbtÑ^nÓSbÏgyÖbyÑfwÏXjÇFTÁAO¼FZÁLaÍg~ÖETÈlƒÛ^sÚt†ßbsËTfÃg}ÜEUºl~Ûq‚ÚS^ÊE[È@VÃAU¼@PÃbr×s†ØgqÖƒ“à’âXoÇtßL[ÍYgÔk„ÖOa¾blÑfÏTkÃo‚àz‹ãXbÇy‡ÜpƒÓSnÏqŠÚpŠÓo‡àbwßtßlƒãy‹Ü^yÓgwÜu‡äz“ãs‚Ø‚•熖ÝOg¾FNÁƒ—à~’Û‡šäl}ã§Ga3�� IDATx^RÕŽl9 ´Ãp˜±™y˜ç2ÃòÿÿʦKJœr¤�FòÛ˜Î|J1ã¼ø²$E&PŠå(!Dýz&¨P(üÈW^P NR]=<>_F)h̾“åa,¢Pr0zžLž¿ËlZ–Üs šÀü™Ê<c{UUßN–õ`Éù8tÒS ÖZÁ½jžÌß<¥¤”穚4‹v–1JÑ›¿ÿÈ¥5fiZUŠSMà0þ/ÐÚ*«êƒ¢î…7ú8&LX?Aˆ\N9Ïá K)èe‚Dõ)‹Á\ªØg6ÆZÈ)™R3c´ÈÀõùåëÅ—©4ÎÓÆ5W@¯M’ü:þz³Jy¬¸ªkŒElYNé �ˆnšu‘”µÎQšóyp1Ç[>–aHa¸Lk�yÎzß§åõ1yÀšËOE*¹m�Î&ˆ¬Š¤�=‹ü˜ó˜,n˜ÖÀØÖ6·–hÆØpØ4›Þæè—œÂ‡»Ñq4Îï p 7q¾mwOWM»Ý·Á쌅ÏÏÏ«LyåÝ]…7z3löY—§:ß·-¸Ó>=È ,¾'ɉû$ré8˜5ƒÆ½AE x†Ty51ºaîÚv¿ßºÿ¶˜PžT‚t ¦¦%5»Åb×î n>ˆm˜.AHI·¡éËÕ šfÛù>NCˆT€rA;i(¹²dã_M_®S´ìîGFºa× ¡ÑZ»&ÀÓ" é=›¹ô¹ç•éUîb€M3lÄ=1ìÊ)q»– äòqT¤xC´é`h4ÉY®2eû)uÁú›­iç)0+P Ç=YÏô¹ „è³ú|oºsí¥L&?_F!Ù9ý;m¢Îín´î´í ü\yµ°þ+b±ª<8ük»ß·gÏè�:òîÛÅ×Urà¯B ¿é®Ûµ‡³™`Ì,š\üýÏñmrJ¥ª©½M ‰þ¬®iÔ8™"½ø÷÷ïÉT¨T1£}'ƒÔ2•ƒ/óŒÒj¾P*•<CF´vŠ©žL.߯éúØÿPÀ׬j����IEND®B`‚IMAGE 1082 ./arch/ground/shallow_sea.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEWlÔSdÊYiÎ\mÓ\oÍSjÊ\rÓYoÎN_ÅI]ÆN]ËNcËIWÆFTÁ\tÍSbÏNdÅShÏbx×`xÑXjÇfwÏgyÖ`sÑk}ÖJZ¿FZÁE[ÈJ`Í@VÃETÈ?T¼?N¼br×XoÇlƒÛReÃl~ÛJ`¿g~Ö]qÚt†ßEUºXbÇg}Ü@PÃ`kÑesÈ’âoÚy‹ÜgwÜWfÔs†Øo‚àarÊ}èRjÃo‡àFNÁM_¼oˆÚpƒÓSnÏgqÖS^ÊfÏs‚Økâtßy‡Ü‚‘߆–ÝpŠÓMd¼z†ãNdÑUjÖz“㈚ë*4{5��IDATx^RÕ’-9 sš™û0óeX†ÿÿ›õ¬R©2É’Šñ*˜PÆŠëmUPNÄ\¬—‰$ˆl:b. 6‘ ’bûEÈÅåÛãÏå–’P2m,Jç„p)¶ËÇýþñNЧ4 X¶ˆwwJ d¢•¤AÀHhHäyþði¿ÎŠŠ± •Sd9Y„–³ ?U§mH)„(D�ÜŒsZ£|ÿ|Ë1 N?~cãŒÐ²LS)¹sÞ×zR˜ÈXæ¿ £]Ý´:X¾ÎJe‘ŠwÅÝú Q‰bó«5æ„`xÆ•Ž"þ™1Ö¥Œ#ec‚°µ84Úp$¥­çœÅíoýí:Á1W¼¤ñ*•Òºþ@×>®uÈ®¾ÿrS²*³ì}ˆíì;`®s¨olÉW°�KNëdF$&„Î%½Çö= ;Ý™0T]dqúó¡ºÌÒ"™f~ð…_ÚhNòäbšNopŒP¨°x¡¾6ÄÖéN©ah¼WÖû©UN¡õªšÌÄ(q?/77´óý4MJÖg ÙƒBé²Ê‰ƒ®ýyª£«D†~šÆFtp&LŠ»ªÊî6þ�¥oƒQ âÿM;A°|Êœk¼úã0N0z8Cdì?Žëæ ešâzGˆ´ÎrÉ­ƒ/–/÷Ï7_¾M_«U¤¼3ÖêZ%Õim‰`$Ru´xºý³DQTí©®};46}}Føå僶tNJd?¨‡…€ÃÂjðà1G¬ÊDš”üæ ˆ.·%rÚû¦naò/iÕßàâ ±2ˆÕ“óm=x¯ EŸŒ=±ØÖ~œ­ëöà[çZ§BF)_ÄéõŸë%Óãtvà!`Øc  1¿'E•ªúé|ž”'Fй‹IdS¸¤L’{bUÝ€ÆkÛw-› ÈÙ|ÿT•%•™1h7‹Å ó#výôV»zƒúJ‚J9‡ñ†§é. N¯;ó~›Ð…RÆ•b:–÷G§Xµ¿ÞWÒ(W7/üŽ“MÖ `vš����IEND®B`‚IMAGE 1060 ./arch/ground/shallow_sea.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���êPLTESdÊYiÎ\mÓ\oÍSjÊ\rÓYoÎI]ÆN_ÅN]ËNcËIWÆJZ¿FTÁFZÁShÏ`sÑNdÅbx×WlÔSbÏ?T¼`xÑE[È?N¼@VÃ@PÃETÈJ`¿XoÇgyÖl~Ût†ßlƒÛReÃJ`ÍXjÇWfÔEUºg~Ök}Ö\tÍarÊo‡ày‹Üs†Øo|ÚoÚpƒÓM_¼kyÎE[ºbr×g}ÜfÏoˆÚo‚àtßJYÍXbÇfwÏy‡Ü?P¶gwÜkâewÈ`kÑNdÑMd¼gqÖFNÁuŒäS^Ê}ès‚Ø’âz“ãpŠÓ ’‹��õIDATx^Oešd9 ³ÃœÇXÌÕÈ Ã³|ÿëlZþò'–d P:û:ßf„!¿›Í—…Às)-€±|’‹c1Ûÿâbúýáéy¹'X%&9¡, ˆLðýòi±xú’>›æH7S%A!šŒ=)Vãqööíüj1Ç›¥œ 1‚”YÅ~yÕ¼Ýî÷ ‚s^ðc+£¬•¼!Ën®f” ’,+!ÀY_»Í¯ÓÓ9œÑüǵ´.Éšå£RÈ‘9NðpÚ|ŽLvˆÂÔD憉ìâ’‹JAÄr•Ö9£Bk[«@LÁrøc¦#SìŽ0ˆ •œ¸kqOüd±Åê¦Sg9ee9ÝDŒ�fž£u;ú Yi» Íý|ÆËKNø´õ¾•†q[éuJP<Ÿ_|ÇDÜÏ "ÌÎ{?j<8 øV¤•Öò3pI¢rηI¿ó?´+MÆÊµRé¦÷V§:¾ë½}‘ Ö Ük†Z¥dCW³ËK¢Û¡î:#d×Ûµö-üxé‡Ç‹7”mëû¡s6™`¾ûèÕZWv[ÿÝP°Ö'e—Zù®º„ÞjÙ ³6ØŸ?wu×cŸ]ïB=týsµ¤M»açÓ*Hˆ"Ù%Ô~ Ì‚w,[üuú¦CÛ;c”J=´I–ÖºV€NãJ:EOÞß³R]/OÉÄ…Ôwµÿº˜oC#Ü7R­è‘ÒŒg£ƒ·²b 0™ä,53`Ø”ò‡å>C•ÜGïG©!W0È×-DHxµbÒÎûÐz‰«Ðà I¡ý®¾•R¶~´/¶µë¸E¦BSJáŸ%µ~H¥¬KÝ}Jß*Í02†wÅÝù¿PáìêÛQµc?ôà uß% Á"B^1w )ÑËJà²Îw]hÛ¶KðÒ&‡tÜqRn´ÞfE&Vlà ôý0™È°«ÿXq4Λ�oÄþ) y}½™s廡˜–ÖYq•¢‡÷³çÕjm­MJèÿB~IXDÖ:����IEND®B`‚IMAGE 4385 ./arch/ground/smooth/shallow_sea_S.111 ‰PNG  ��� IHDR������@���[a?��PLTE� �SdÊN]ËYiÎNcËIWÆSjÊYoÎ\rÓN_ÅI]ÆNdÅJZ¿ShÏ`sÑXjÇ\mÓ\oÍgyÖ`xÑWlÔFTÁ?N¼J`¿lƒÛg~ÖReÃk}ÖXoÇ\tÍl~ÛFZÁ@VÃbx×@PÃSbÏS^ÊoÚfwÏE[ÈWfÔ?T¼ETÈJ`Íbr×]qÚo‚àt†ßg}Üs†Øy‹Üs‚Øk„Ö~’Û\gÍEUº‚•ço‡àpƒÓtßarÊ™âkâ`kÑXbÇâM_¼’âz“ãfrÏMd¼?P¶†–Ý‚•ßfÏtßz‹ã‚‘ßy‡Ü‡šäk|âoˆÚ?U¶gqÖˆšëYdÎANÊ¢¢¢}èpŠÓ°9Ön���tRNS�@æØf��ÁIDATx^Ì™eŸÛÊž„Õ b42Ã0Ó¥Ýýþ_d»¥ÌŒ3#¹må¾8õ¶æéªú'q~q,“–@@(L¾œ,]ж@AFoú­NPÄ:3“_¼Í›üúùßýÖßb¿…0qlð§m (CÔnج7ŠZÿä¬û¶óÞu“ÐàW'þŽüÜ7äýýöüïÏ7ì3ÜÇœ¯€ÜÏÉCö[J"�ÚícÆã£c΢Œ·š'§§'ïÍÈ|P¼ÅÄK¢sÿ{óÿFû«÷Ã} ù÷ÈÖŒ}÷[PBH;}¹™B»Í‚^/DˆÜ^4ŸŸÏ~ï'/ßüpGôOà´ÊÿoæWïƒÖ}¿eò_lñ;Ýùåûí·  °1ÝåßÓ°7?뜵bÎPȽ#εO¦”b ñSßã;¢5ß+òii¾öw½¯}s¾y?±ÝéWí·žä ïÌßêwݧ0vì¯ 0ï×b�Kæ¢jÿñçÒ_ýR�P„š)u�´åóâpW¶ö‹| *|ÃûÛþU’oظ]°Ãß{ ^¿Õ?ðË’ ¿òþ|U‚y¿yÀ¡o¬}õRJg0Øæ©œôG„`Æ\6ÿêKÊ;³xwô,¸›çOތʲ´oíx¿à ›»÷¥ÍöØOuþ÷ï·ÓV2) ¿‚ÞÞ_aܯü.cÈPÖÀ#¯Âps )BØv ¤ÛkqùAég•öPñþ¯ýGhá{HìµßUùß»ÿPn«¿‹ªïSÅ?ì¯Î0î×’À ãM|Èy«uÆ™k ìÀS01ƒÂe-Œy¾þ—M  |™Oßð×ùUïË}ö{:ßû¾ý­¹­þ½ŠûïîÇÓꌜ7‰Raøô2óŽƒ~ùõâ·?Ž€K%ÝïO$Ä‘N?ÏwnNß—�Ê?+€GïS€-ÞqÊ!Š7÷—d¡ó/¾oÿ¡ØCIœr€8;ûåÁŽÍ›„±„¡U_JèÜt:—ç—ç³yèîÅ1†\!�Pù¶âÉÍS ÷÷Y2÷Ž/òËPñáic¶!AïÚOÄúOÎï_µ¿Rw÷Û‘¢÷›îäYdÕVÀ5ÿnú6êÄ>õ�í½8¹“e’pÿ[ôNOåÇ[Hlï'ñÙYtÏóªþî1Å›ûc¯úÏþ©þ·ýµQµ¿Rσ1z¿I,Š£f³eÕмÑUsÎ}!œ`¹Á{aÑ?‘Ïx+ŠYtÔj6#NÅÓj|¾ÅôûmŸžßóy~î•óæþ#¯û×ßðýúû#/jÖë¯y¯»k¡æM†j|]]�!B)%çÑ^$ Û?ìh4bX(¦ø1�ü#»ë=âÔûÁr‚á=ßÒùå(ç jB½¿ò„̼Þèýîû·Ž\q~ßÐ_ó£hǽsÞ$ÊÂ6ª«0ìn'x?l¦ ²Hm•1†R<9â‚E<1DHqÇÛTåƒòŒ‚7ˆ¢<_Àš¿t¾}èýÄ}ì³�,jõ_¤ ¬Ú7ðw)©Ï°çVM‘D­«çÍc œÉ1ÚËèó>ƒ‹ñ˜ ‹:WÏÏŽwU~:ÎJ)H³{^çÊ3 Þ »|ÕŸÔßß<ˆÃûþÙ‚HösGñÿsx¸f„Àj_ó&MÔ1‰ßë[54ïòþ/'³¦ööÅR…9Ó8F“,ˤÏû—'³o,KÛ^ÙW™sDä+ÿŠåùåoû5ÿôdÖ¯½ßç‡ ýç^¸ƒ7÷5b`µÃ×¼Iƒl¸øVM¥Ù*“Šï¾åÑÑè�,« ¡ö«ü¶ÏzÞ·€ò×�Ê2˜ÈAÁÃ)Qù'È Þ ¯ùÔï©þ5÷ AðC¨÷gvùýÍý§BíßákÞ¤L‚7Ъ©$`í†itÁÆ«ñz8Î~È@*_€äp›¦Ã¬â#ìÃmΧYšéüŠŒ‚7¨Èw x—†½:ûõý ùpßœe2ßi `ì?N³ÌÞ•¥x“�ÀÖ³jj2ÁSÖãŒÄ­Æ8 r'xƒãœ=‡'rKááj˜ó!_Qðù¡êIºaýú~{^Ü ïû3¨|}ÿ 0õwC½WšâMBP浬šò)�(>k’Ã8GØ'ˆQ ˜×êGO�€°T\6MïÂã„ùÓªŒœ7¨«óã³þˆc1 4~yè~W߯µïýâÓÿ}ž¦E Ëù³æ¨ 0ôÇ<a”îŠS¼IàÀc¡UW.¶ŽBŠA Z§3�Š?J·o&ƒ´~0 :/C'uA;¨ŠÈyƒ&*ÿ1W¼eî”8öaûmu¿$@{!²á@„¯ÞíÏ)°mŇnéùžöÇòÁí¨û¥ì T¼I@®ÆÂEV]2Lm1p(Øëñ^ì1@n3áúIùÇeÌ*è·aO=ǾÎ×Foî¿ÊläÀR�Ž̘ä÷sÙ�‘8ð¢˜Ù AuÄq·àý„Ú%Ä“þáÑÖw{<ß/wE*Þ$™® ³jK’4]"äNΛGR’õ‚!VõÿÙ¤îö‚¸qw#iªŒjÞ ¿dŒÚÒqlßóFø€BÝ1†l  ÜíÅêý �í¼K÷'šG¾ ç¸ûzçqÆ5oŠšùþuº#tIŒHÇãS«¾WœcÃI:Ã4]_yA;(?¹3t*×Ù8é9iš’çU9oÐú…Ça€S"1J˜+Ý%¸€ù~Á”Û);‡ ,]—b¬"l0çVíÏy¬|—I¨|�DÙ~†å)¸˜§÷¯+W¦®o’ÿaM¤U_>!D`Z],~ºèw5Ù`€Jà§ÓfœŽÓµæ}Aªnïä¼A:_`À|Æ{=N1¹ÍV·òÃöIÌ÷›NX·ÛëUP·†½^è’fÙ-‘Žêïg®æ1pýPÿ€‹IºZ ¤ÐläqÿWÂr ûI9HÓTíï ²¨ÚoÍ›” )…U_áDP”ó^àC Jœw¼*تž_qænHEGó¡ «þæÊó_J•ϽèäÓ¯ý@õ7K çÞ7óPJÕŸG³OŸfOr4O6S”ðÖì×OÍD¦«luK¤t†ÃAÁo$Qù¼õüÓ¯³@¦ã,ËNc‘‹þ™Ÿ>62Vý2Ç!‹4ßÿ*D›Ç÷ÏT3Ýo¡yË¤Ï Üü9³jk‚äÏf-ÕØ˜µƒ~³×­ø&gUIgr3̲ÛÏ7mögi€Øh>¾i'of=ßà:S¼>¶ê¿ì7CߥmŸ¡èÅ<Äëõx|ç›øÕgÖ¾yÓ éD Wñ=LÖéP½  •å<Sû4ï#4ïÌ{`½VÃÇ„ª¦ù“fº ­ýóW˜T_¦è? ­B��íÿ¬ú‘t¬ÐÞ?Œ|µ_¿_ÔÓù _é~p]u¿GKþ‘U[Ù?ü zè`AÖÙJñ®7+RB•ô`œ-”tPñ-˜â×+U£Ñ‹ó‹ËÎý‡†df*±Îû»qçòbÅ Pê‡7[¾‰_d*� èÅåÅeÿ3S¸˜;IWªŸÊWý\4Wü¬ï…>õi˜ �¥s«úoñ§¿Ï:óU>B.d‘æýUÊ*r>;¿8iyŒ¶U?4ÁÊdÙBÿ”ÞïýâPç³Á¢_~?“œáø?P«®œt<†²Új/ÿ³À+(Õż®M}�©âK”Ou†º_Û{~ýúýù¬yœ½ÃSt<Š™â}Jô~1ý|úñ·ëß/;ó˜'.¸÷ßx ȸðÏ?þôþü2š+Mq¢|¤ûÑâ¾Ø;½þé½ú5ž{^ DÁè¨k·}äûåÔ»TùŠïNñ’¼¼Ñb•¯ßïDE¿%?ò˜ÝVòýBõûøZ½¯ó—�ݯû%¿ŸIÓ†#n^¼¶êj"‰¸™Õ!ã^t½*ͮˀ°õ¼ó®š÷Âèy(¾"Ÿ+>ï©ü?þëÙ¹ç‡<KL˜ àÅaô&ÿ–:ÿõ<;ECAƒ;ßÄŸè|å7 Þ¼%\Â…hð¸Èo8ÿì_ÚOø"ì(_RÏãgo:jCÜ\}Tüé×|A�>P¼l¿­óµ¯x¸(_ó­7Åýt¿ïòvò~Ǽ¸ŸI€Ú6µj«Qï|úƒÎ¯T~»MKý×?ÚqsÿñvÜBÚþRÉÏ›-Ô¾.ÞòBâB&h ¯ò[!ýÒ¦]ð ñQÿNî|ߎ¯úøbû! z\]’ ˆ”h‰Þ ¬ügšøâ‡½0äŒ 2Xâ¢;ì\ÿTðmÛgŒó @6QÐ]"¤|Ý_÷v»Ûã¡z /P¢ü©âlÏóýºË“<_¿_ô+îgÒ,€„`«†üÎõçßßÏzÇÁÕ¾9_*¾VþÏ×ÞÅÇY°!åü»Îµ·OþÆiÔËo©÷/f!!ލØïí·_ÚV-]{/Õ~•_þI¯òÏùD@R+ŸZ³åT@L*ý¿öÈ×|-ñ£h¶Wð.E3S¾æaÝ|¯ó š@nÊý"ß¼_Àšù#½_áRVܧó×ÿ·sn-NA®¾TÆnfL"1êf×ÛÝĈë AÜUD„"èÿÿ)N›×t×0õ°ƒœïõ£úœî@ž†"‰ÖÄ:Fë\ã#gÆWûv³óÛÈÃó7›Öpv~ïúä³"¿Y4ž/êàûùM»yÆïîþ>2çò[9ŸüŽ#{FðÞ[®ù¸]½ ÖˆùkŒíòCíÏ^Ì7!fçeŒµ6Ü Ùy9ßæè5÷çB¾üþ,+> ß Á†œ}xúáJ~€‘&¿ô:í‘Ï;Íý¯³ÍÏ÷¹°ª÷·Y‘O³i£ùή`ŸÏf$P‘гÊùR9ßÍýç ×D]~˪ûOòÿo*sB* Ý,^W`Þºq�����������������������€ï¯užÄùUEeª(y.zñüâÇÙ©Ÿ¦¿<O#†ùr¥ñįùoAD¤óÏ’ß•}cE½Ëõ?ô“ûž§ñíÝíR቟æ—_OÍâãš²<‘üaADÖ ç'ÿ.-p8æ„~Bÿ^ó[1ÛGÅýKÁSZ ‘<˜¦"ù_ËΟg½p~ò[ãÎ×™þ™~BÿþóÏh¼¸?(|%xJÞpZð`)K/Ϫù?–½ÔOésï754ZºU^ÜQûUZ°`ê´€²üuÙ¯¯óõ·þqì‡~ùy¥¿Õù—“¿<°(#»äÑ����IEND®B`‚IMAGE 4889 ./arch/ground/smooth/shallow_sea_S.112 ‰PNG  ��� IHDR������@���[a?��PLTE �P`ÅJ_ÇSdÊYoÎYiÎPdËJYÇ^pÍSjÊ^tÓShÏPfÅFTÁbtÑJZ¿^uÍFZÁ^nÓXjÇP^ËTfÃAO¼bx×YmÔgyÖg~ÖS^Êk}Öl~ÛETÈbyÑAU¼q‚ÚSbÏE[ÈYgÔ@VÃXoÇJ`¿LaÍt†ßEUºfwÏbr×^sÚ@PÃbsËXbÇz“ãz‹ãgqÖs†ØL[ÍlƒÛs‚ØTkÃg}ÜOa¾FNÁy‹Üy‡ÜSnÏ~’Ûƒ“àpƒÓ’â‚•çqŠÚblÑo‚àtßgwÜo‡àk„Ö^yÓfφ–ݙ⃗àtßbwßlƒãOg¾臚䈚ë^mÚpŠÓXdÁl}ãz†ãu‡äí)Ý���tRNS�@æØf��°IDATx^ì›Õ’Ëš…+ŠA̬f&3ãf803ïÿóg©e·¥*UIž½ã\L†ï¾ør­•jÛáË*: ÂñM*N'„ER6~ë4ÛH1}Øè\×T½ˆçÄ®û|×üÿß_pfóVEEYWÎÌ¡A­Ñ¼Ðtúö‡wﯯ½DøE</wÍ/à»æÿ‡îþŸ±ßBü™îiYÀ)cŠêæõ»½½wttÒëÉ�DÏ ^ñeß5¿ô~ú·î¾yoÇý–µÝ~Kक8ª x’ f—/÷:q³#åѸ€×sƒW|]ÀwÍ/½_þ­û×üÕÜÎ6ûŠá÷vùý–xNxÂIç\Éàà®}×üPªµ® /àInðŠO øwçíSçþu5Wo³?#¡ì~Ëݯî3Ž/à„°àîÍ›¤"$f‘çPI°¿™ œ¼âóþÝù…ûìÿ“ýKosþº¿šëm±?3¢ä~ëðè¿jBpº?h•`ዹ ®?aèŒXcéS›üKÃwدy¹)?7ßð‚ûWxªeçïg±Ìç9û×ú­¸ùù«ý Ýô>_Aöþ̈’û­:“úDÖY>0&J1B[PJ¾&æð¯<ˆžÅS™KS>¥47?åî_å_ÄŒüâý6Oæß»?ÃÎÉç«ýëkæWžá»ßË^Vn¿¥u£yç1’Ë7ë4õ5µÄmV'<’'*¢´âûBE9^ÊÅŒÑüü”o¼ÿ!çÕÕüâýCîVbÿ"?sf@vþj®‰_xfë‡~-gY¹ý–ïÓ_ž<ùùÇ\Ê?òâÇW5b+¤<­ˆ=DHø>¦w4ÉÓ¼ŽD~þ‚ƒ{ÿÒ¾æßçÏÊîÞàêûö—wÈZÿ áž¿ËI)·ßJ’ù•ßøt“ƒËøÂo·o.ož<iSIã˜ÙÊæhH6h)oq‚òóSž¤BöýKßä¯ëÀI%IÊí9¸¹Ù|Ïþ-œõþ‚çöà礔Ûoaậv§–ƒËùv/Vª¢‰jwwµÃ:²ñF ¸Ô:¢Ãüü”“{!ãþ¥Ÿæ¯ëcy¤ëuRn£¥Èwìgå•FÉþ†çVúâc7'¦Ü~«Ûù!8}„’<^ì7Ob”$ÉpˆæŽCzï/ÛoY, 4©môê¸ùù†ó/ëVï_úi~–þkÃÓü2ûQ2çŒàÄÙy?ÚBY퀿> åùý—¾ÛiæÄ”Ûo%<_<@±Ïá <Ê4Þ2’$s4+Ôl)‡Âý‘ü|Ã%ÿª<¼ßyèC~F‚´ñ~MòRû9BB¨×Øy?*o¬öG èë~Ê7ô_ú gç”ÛoA8N¼û�ú_ Á‡œcêvKxs>¤HÓÛ ùõ$y |½ßuGKßäg>2üûÓO� g8$xÇýsTZXíÛ3÷¾©ÿÂ'¡œìrû­}úô¦óÏ¡ÈãÅþõåõÑð‘ÏY+¹²‡“j)/qûÕjµÆ7ä~û­”Þß¿ý8`K‘Ÿuur ~©ýGûìŸ,™_Ù»í'¢´°ÖÿÓGx?!ØŠ�|e&~vP¹ýV?LøÞ/ƒN.ö}žüòîÝ ¢AïÓ§v%D)¯âRò¸ZÝO‡ÇÕêŠ÷ºî±ë/ý4ÿ—u¹Õ»ˆ_fÿ/ï:-eïå˶Óþ-ÞO¬õw³?’+ðý—~ˆxvR¹ýVB*nX;Ы·ou­×øÐn_Hã’b ¡Ü ùȼªá™»o´î½Ÿæë²ßB‰ñ ÷§¾×8¬ÝµÛž$x‡ýJ–}?IVû/÷×jëï³±ÿ¿ŸVj¿µ?›qifíxÂÙ,Q2b„1ö…ûh«§›„ò ÷×´ßû0úx49^ø&ŸdÈÀ©_pÜ™ŸÅJ ù¡ûè÷­÷#ú«2‚»øÛþ£}Ó? ÿ›·_Ç›ú/¹Ø÷gyi¥ö[DQ©)ÇÖŽ)hªp¸èIø[¨ºiódC~�|¾fíï÷«}W55>Jó³]ø§¢¨Öu…»}$ø“‰;Ùr¿6ýÝbAzð>û+ý9I}È(„ðÓõþ=N–A©Ÿ`¢hn`™ýÓfMïþÏ@æ_'8ï^m¥ÎëŒ ù pµ®¹“ЩpÔÆWWË Eêöï5;½:A¾ Þû?-×u}g›ýí´¿_$øª·÷Çà0q¿íOu3õÇ8„'Özÿ½?n.ë.ŒOÁ÷š¹‘eö[RR†P…Z;J©bZR¾­ÛuÃ0?…Ý0ìfhãNó½Ä>ø.¥àgàÔ/ìÏ"›#N#úŒ\ùŽ<yòßz›%”ÖMÿº–¸_×m›ûÏßÛ_Fà·èÛ:ãø~m¡ö{ËZíÏA¿sÏ,}VX^l™ý–+FÂFXäñb_Æ‘ÀÉö®®›ŸïM‡À3´)­==Ub”ú @®_pÂPtB·h¯qHÙïiî/¿ßô‡ý$ÊDʉ%PåA×í†à;#.5Ê"oºg­ö÷j=à˜RZÖ½º£¼ýK¿ðw¡pc,f޵Û¹]W=Â>ÚÁ£Q˜ŸÏ®°ðÃ,OêF§é±Ä|þ#×w• Ïñ ^ÀívC_!ßoM½ZÍc„ð˜Âý×MCEèæû,ÁÀ¡ô÷}n½Ú·)7 c$|'î1Ήb_û 7ìŠÔw¦Úp•šR]ë4ôj¯WÓÀÁL?o|%„I÷€ûXDÆ‘µÛéúÑîàCû®›Ÿïîf¾?Bu:›˜ÏÞüøaD�9þ(ˆ¬¢¤.S$Ìb>'´^çØ¶‡„pB–4å]‘úV¶ß5Üõ¡?²ÀøL-–ö‰9ÁŠÕSn®WêK3a_‘„³ˆr<+‚È�üÉ}ÿe&åˆÙŠ8$&ÈßO}±/`?¡_º› ´_öû­oá„R*ƒÀÚí ®˜bÜÁw…+Fùù#óø"Óœ¸Ž+ºB€o?›ÈñEKÙ”ÁI`ó% ûîè |H !ŒNyÄ\„ýê>F8t]±äùþ(å¦ÿ='­VCŒÁÀ‰Š§°ïD²DLöá~,FËþ¡]q2§:"Æñ~µÎf³p⎰¸ïO™'Úææ~w†Ex þ¸Àì7ý ïCþ#<Zö¿Ä�‹ôÝÍÙÙÀÚ鈄iÝÞ;;ÛÞtç¹ùB„‚Ïq¦ ,F¢+Ò¿;™Ô©auïÃàì|a×€ôé]W˜Ã1Æà{Þœ_Gøqurü8ôñh’r-|™ãÇXyÍÁùù€¢ |�}žþ‹/æò;ƒ³³ë�»ÇÇ“¾ð}qßÿ ! ûµn Î_]Gbð±xü´ÿœ0Ëê|„~»n¿ìÏpê ðÉÜøRß7ý÷«ý‘?Kû-߯蜤:%*f¶µÓ9±âN̶6«ýêñˆçæWÍ “l'“ªñ»Éù `C^å þþ:ˆ‰"dÌ^\t'ýÉq%“¾á£Vê~zðò‡�BpÞ?^øv¦_5¼›œ]K D1ÖhÈD„î1 %aäsÃ/ÀwºÝÇ /ûOº$ݯHÌL?ÉG!à…oŽÏÏ¡¿â’Þ´ºáñqê»à¦ýIå¾_"Ìýi¿åû ¦Ÿ~:è\Hk§âgŸ_<tzÛŠ£‘0óòÌSdËðÑÁ1O01ùOo�dú7í÷®íÑÓÛ8f”%ÈÃ~µ ùæþ~ÊoÚµúi%¦tl'H×p.üi¦ù.¦†w<ߪ)9£%7û÷wz¹UL¦÷‡îÃþÆ4=ªnUÌÆŒ'À÷Sn|èôâ©É‡ûŸIà/ýþ²ÿ’O³ïû-}«èø3gvóüœ˗»þŸÀÊlïÅ‹'O·ãSŽ'Õ~^¾Šc2s]7[žV*ñ)û}Uf—¯~z`݇?ÑSþüçç—7í‹CMYBÆG Í~¿÷Ýþ?r€ÿtvù²Ýð"¦Z||xèNˆŸú<Ëw”á'¡?Þ{þâùå ÝèET‘ÖX×4«¤Ü}¼ïcý`_§}ái^×5ï¾ÿñqßÇï½úùÉå øZÆI‹o7ý#bòÏžÂýÞ[ódzSÇø#x?‘î7ý5/¢Œð´øË÷+8Ä{õç?^?=±­ÝŽò^üùüxK¯ù±!OOwyùÍßî"BîrtÝüØ”|òÿ|½çYþé¿€ÿôã?^ï(ªY" ' Ç=/j¼ëDäôà¿øéõ¯/ObªëŽ/8!·3eøÇ›|ÙN€ï'È¿ôõÆ|EÈ£¸§¼Ò¸«œ�7ï#5E¾p!Hé´ÿé¿ þ#ð %½q2ä–+{ÀM³ïägxŸ´s„ ¸ñßî?Ÿqás’öù~EÇ™4‚(¶v;Ž¢Ô ‚º½öä|¯M*ô´’“ÿäÕÓÆ)a¤•ë_¶ã[vZ©ÜT¿$Ëð+c‚*1ÕQ #–àPˆ+›±S‘Èöû3ð+©? ´E6¾Àˆ16DÄð=àüWÀoÇÊq¦S‘ŒðÎÐ’“¨Òr¦’Fö%X�2f£ŠlCÿø°_:’чÉöÞbÿ©Sy6¥ð<u•1ŸB¿Šáà”î7ýg~šö3|ù~EA©ñÐqœ^ðýv»øxXÉý~û_”Õ:ׇ„qI]ñUßÖ½ÞµéW”Ï‘Ž™é¿ÕQZ÷L>EÆ·9¯¬óOÃâüDˆaÝ&·¶;Gµ‹ÁµgÃ~A ßIÖö´=E —”p¥µ¶=‹ïŸ‹ªXÙ4ïûÿUþ`oÐ9t°¨EÉòßÝõJ|=ÚO8WÄfÛï×ñÈO*·1aLeð/Ο!çö”¨íó÷Þ4k\À~‡Ä$fëü·ëR_Ç„EGŸµµõ‘y�Äitäi÷ýÿ¿,¿žÀ>æL×´—ᲇpa¾ 4úìõvÊï 8ÜÖ½ÏY>ôÃÅù¦ÿQ­¶}>ìóöÍûÕ2ó%ä ñ¿íœÉnÛ0E)R)ª’k‰‰‡ÄEÕ‰«¸c‚;¡EÒvS )ºHþÿCª!Ý…ï$ yñÎöââ\¾b„0{.¿/”ºzÎ¥‰E,éÃûtÿüPébðUlž<æg‡J¨ŸË >ˆcGriŒ lþ+üþr‹�¿¿í~mߘGý ¥4êg²A8þ L…1ö>¼O÷÷ë0:6’K~léë÷s)WB8ù•J‘|åã7ï¯ÿŠKnëë÷³ñrY‡1sB‰@ÖGY=±å’oÕŸŒÆÙ¦Îlþ(ÁýÙ²>ŠŒ›?£ÓºÞÔaàî¯ë¬ýQ2ªêMf÷ ÜÏfúv-™#<¼YëÛ‰µïÓýýÁt6)g>þóâ~‚îX€ûÝèûsîá¿)n×Üùþáωòó³4šæÌ™RMÓ©¶ç'jËþ0J§/}üŸS¥Ýýaã½îßœ_{ÞßËÏ´b>¨\Í ¼Àý¿Îó‰—?×3èíêå×ë׈�‚ ‚ ‚ ‚ ‚ ‚ ‚ $<ßçMŽöAÚ}ÿvɰܳžay†èw˜näÏüÉöý dÀü.«ÀóUmŽ÷%Øg»K¿¿ßv.àÑÁpy>ßÜ 9ÛYúý<wÎË ëËnß©|ñ˪,/+)¡óIÙåH_rö9ÛYúý¼Ùb¾ÿߟÆ{VÍ`ùÃþÎ%’ãwpnØÎò°ŸwÎ%Ö¯Ú|9æ'ºý~€ÁrYIð|UŸ#ý£ îï³¥ÝÏûõË8geÒíûåiÜ?ÀÂ`y’ÄàùÊ>ûÙf3úÀû O³¿÷ës$¿DòÙu·ïŸ÷ûýyiñ –_/šýÿÙÌïà\ì]9ð>Ãó±Ýßûu4ÿ‚õ/ú}ÿŸò¤û~@j •»èÎ�9|þ¶_@ýþ}þ!£±ýz-����IEND®B`‚IMAGE 6358 ./arch/ground/smooth/shallow_sea_S.113 ‰PNG  ��� IHDR������@���[a?��PLTE�� tßYiÎSjÊYoÎN_ÅIWÆI]ÆSdÊNcËN]ËFTÁ\rÓ\tÍShÏ\mÓ`sÑ`xÑFZÁ\oÍXjÇJZ¿NdÅWlÔE[È@VÃ?N¼SbÏJ`ÍJ`¿br×?T¼k}ÖETÈ@PÃEUºbx×gyÖl~ÛReÃWfÔfwÏg~ÖXbÇt†ßRjÃo‚ày‹ÜoÚarÊM_¼lƒÛFNÁXoÇg}Üs†ØS^Êo‡àSnÏ`kÑNdÑtßgwÜesÈz“ãs‚Ø]qÚMd¼pƒÓ’â}èkâoˆÚfÏgqÖˆšëâUjÖ†–Ý|||y‡ÜpŠÓ yðˆˆˆz†ã‚‘ß›ëä5���tRNS�@æØf��IDATx^Ì›å’ãX³E‡AÈ`æB†fž/¾ÿ£Ü<R·å²å’«&îÄäßÝ+w.Ùá w„­®É\±J…@^-ºò_–'ã…‡‘=\,oçeh@»ò¶Î}|Gþ¢þÿgÿÿ|qÿ_Äß:˜ œRâÌ»òÅÉï6¹÷ÛŇÛõHÄ•ìÊÛ:÷ñù‹úÿŸýÓ÷ÿë¯áoï6Aû¤+¿½8;»øh{×AàDñ½ûõ#%vWÞÚÙÎw丿ÛïÙþèÅý8þkø[*]Ïq"ÔëÊrãããW?ž-ãÅ8ŠÞy‹¯¹×Ö¹‡ïÈÿh§ßy¶¿ûÒþeäü5ü-‰Ñ}OâÈéÊÆ'CˆmÛ ÛÉ\¡cêéœó¶Îv~£t7ÿãý~''Ë?ÇƉžò·ÿDëøìçK,Ó•?üúëo"Fžï!˜1=Kð“¹Nâ¶ÎV~³t'ÿãýÝ~WÇNü§øCé±í÷Ÿïñ³¬ýý€ÕýUá3ü­k*qIW~ü¶â, sîܾR§þƌǟžÊ—ŸÚ:ÛøÇ­[ùïïö $ãìÏñ·8;|“¶ûùU¶§?Ún8ØßòHæ*Õ•ÃH¸#$FN„)OÓó·GÞ×'rü6ŠìÖÒ]~»v+ÿÃýÝ~Šs‰Ñsü1~a¿í¦;~M\ñûòvÿÝŽCý­¥OÜ4íÈ©tQ&¤=ÅΑIÈ“öüä©\Ù‹“ÖÒ^l×6ùsú-kO·9J‰Þsüû/õ'Dlû!ÒÄ­~äßäû^¿Cý­³ËÿýçO‹Ž|.\L±ï¹+·G)çÉ·$Š2˜ý9¥œå¬µt‡ßímòƒûkp_·_àc÷§ì…þ< vîë¸ÕokA“ï}ýô·4Ìõ—WO柾üûÊÜŒ8FHÙ—f¨Qx"WJ±=ló»½M~h?ú޶õwú"Ù=ŠŸð¯ƒºD‹ÿ&¾·ßUjÛÿÕÕñ:nñÛØÊ¯ÛÄô·Šõú8ÆOåã"š?,çà ¹yCß;êq¦‹'rÑçºØSûˆßÒÞä‡ö¯ÑÖþ?!pJðóÛòG„鯳ÿÝ‚–~ÔCîÎýŸ=;~-yÕ&v ¿ÕëS¥þ!¨zú_Ñ~*EðáÕøQ°˜( ‹Šç}ÕkËåì‰Úš×šÏj©¬s°ß³¿áë¼!×ýz|ÇÔ¼¤}%{ógË!²ŸÇþ‡(&;÷»=NÓïÀc¿îçGû²íæÆ¿Cൢ<YÐqöñüê)ÕçáfY³­ùÇ[¹Õ9ÀO˜¤ªêoÕ¬sËjÛý _ç ø=gªd·¿áù´x‡„Rœqa8Ûþ|¢£­û9Þpñì·§ößúA ¿ÅûŠQF{Ú’ñ>¥“I¨5B¨¢¨yÓÏdO4¹uÐèY©Á+Å8o»³Ê)õþíþoüº¿MÞS£¢ÌA¬ÓßðTÀ~Î9U‰Ö!@‡Oã@õD‡Éãû£<=è¯G~ûNiø¾YÒRu ¿µJÊÐIÕ©*DQŽÎ¯®¼¾.¦eùïÑxE¿çÖaSJ’ŒB¶ ÊN‡-€ÉsVÍþ¦Í×ý É˲¤$™2Öí|ÏË$eƯ<ÿu‰ú“bÚ-°í�PLGço–ÙãûMN½LÁS¨Æ¯òoŸMž¹;ú[J©÷IäßþØ-À›ÀiIú) â[Ðï«Þ‚8ÁíøU¹uè”e©yßð$Ú—«æIÃþÍþ»†‡þë ò9éé²…ÀwLÕïE×·?šý9øØêS Ýnûw??Är6ÑÓ»û¡?¸½š£ xä·ïþ†W}Ñ{h{|ú¿ò·FLõ拇ñøÛžAíÝD5ï÷YÅ#чÜ:xÊÒ¼Ï+þ÷‡öÊöõC¶æ¡ÿöÑýŠR]ÖÓ¥dø|½û‘àI8»+§ÕGkì´ƒÝôþé"ØOÛï?Ÿ?^TÀf¾ïþ ~Äú½ù¼¥ï@«°#‚#'¦Ö!3•Û=_m$ÈuÌX¨é3ëð)tO{jdúwâ)ä#¨Ûî/Ê|R©Õ|Ý!Ê6YˆGE¨ ß1À»øüY®Ó›€Ó¼˜Â‚©ÃNÆŸ?ýi ûÃÉͳrT–as¿ñ÷*:“ ØôÛs¿Þà‹!¾Mì0Ëó\6Qb½pl"x8ã$Üû²(KL;syØÒ/8䂨»ïëœI—à”×|ÝŸ;Ø€1Á’• ßq¿¾£À‹¤„'6*4ëÅ÷nʧf¿}¨¿ˆ}àWí‹^‘bëþ s]RâøBhüÚï/B.qÃ{Äå“–ç.øaþV� õÂYØ‚‡ ûg?_ýþZ?Tƒp°x09XÂÜàÃVLé||²%t•Rͤªùå·þàìç/ ¬™’’' ¿gæ'†§!þÙOW ªu‘¬DÚŸ0Eå a‹ñÉÜÛSà×þ?}ù}·àxÁXâÃ}Ÿ^ÃþŠæ~ãï š�ÿáç_MnYk?ã¿Ó¯%„ZóËÛ ‚û“ÝfÕí_O_¥‘ç×ÜzÙp.‘¡”&éýõsÀd¢ÅoÿÕï«È#ñk¶%‘'ZËàÍÏ;\šŽßxT‡aÅ®ú‡þöx¢óIhxE[ÛÃ0Ïsqüø”ØYõÍý—Þ!™ŽÏ¢$ÉÍþà—Ÿ)—­†—_ûópÇ?‹7†÷<;Ny’FÕþ­ûû\› Áù¥OÖyíOùZü_×—ÿc£=iø_>«¾"ï2ÔâWû[]sŽÓ˜"Ã…õ²çç7à8œû™¤Ïáx¨'á�ð4¥’,æs²›O¸Ø%mßTå9ÐO™$Ãù°áíÀ!‚N Ÿb¼úï´ûH0­ó ðÂøgþ|x$)ÅNÙŽر :Ì—øxám 4ü7ÿCÏðëÏU̵'\BýLfÃÅ0ƒüü:жï‡ýà¿ çâÝ£ÜðxU7‘¤é îsš<a²~~Þ|ǯöVר4íÓ{?˜[/¥”¤±Ì¡ó9gm •oäûÀ?Ø$Là ï’Áí‰}D+^OúJ‚ûƒ†?ñ3Ƶ6<¤RQâ› ÉmDy¢CÍ€O­ü}"¤(r`¿¤ø$7û)} ¼ë4~ ¯ _û;A¸BâSÙ‹[ÈèÁ~à%ìG×ÁÜF°#Û~t?O%ì•ß;MþÀ§’Ròí>‰cÇ^4ü$§J®8¿w€¯Ý¾õÓoþÜê„"òžHî¶Ç‡òôHˆg`䡦ÈCˆI\Þ;Â;"4G^ K’ÑäGÐð[ùˆOJ¦óŠÇÂ$“[~ƒb¢' rûø¿§.ÂBâ+•‘ÁHOB뜻ž‹¢ g﹋\!Eµ…Ô<«yãŸA?ð LSà‹$OܼÙ/!x,¨"÷#È ðàïbÈ{Mþ'ÐùJ¸’ò ž™ýìÇpŸáÝoýZçëç×1.rœkI¦­ÍÛû(ºŽ\™èg}à¼G<Obß;‘ccÉg[ßY{‘ç á¶°Œ³œÖ¼ûúÇv_³Yƒ3–3Zñ½³ßLÊs+Ôš™á‚Øðøk'ÿ²œ%< GÞE6݃Ÿã`ÁÂr4ã7|›¯ü$M&œ…ÓŠ¯óŠw'‚úg öÏ&÷c×û%7ýƒË×yåÞ†~È5§ ú×¼Ù#'òöW÷­ûéúùuŒýpñùòÖ£ºhÏ»ù7ŸºøhZ>SÔ¼å©kÛ˳ϗKzë;«€\¶¾ƒ' hxWPÁý—¿ux¡œÁH³?EÄ_¼º¼¼Ê¨¾•w ZOÌó‘= ùüñøH…NrÆLC]„„t=ûä×ËË Â§£r4Ê“†ÿ¿ßzünV–EV|^÷ÇÀgÃñÕçÏð|fÓQ1J8ËGº¹_!Û_¾©ügEQLÙ Yç•¿kîƒû ׺,ïÂÏ‹5c Ïïü–ø›ûêþµ¿y~]c>X2t<>ެ+|„ãcG>ƒ‚‡Uj…2*{2ÅÐÿãq¤ØÖ÷ݾ‹ÒÖ¥Ó²â)"Tqî4^n®‡—Ëð\,Ñ‘ñs õ¨(K®ŠfTô ÿüëœNôT—S“ÊbZjfú{B¸Æï7GN&wÓ†ŸÖ¼ñGpÿo‘̵ÖU~7½‘6÷ )EŒ€‡þÉÖO§\mÞß“æù?;¯'y1mòÚßìG¦üòðÎ$k¾•æ]Rçæ>]ûM¿û§Ý/Jìbø<FÄzÉàžÀÃì`(ÏõNq‰‘+ ŸãûÇ|Y‚Â�»mxÈj¾àò­kúqŽcÒÀ,Ï+žb ‰ƒ(†ý訧(³2©sÃÇo]ŒÁÿ“(CJ%¡•“<O*î{+„áWq!W6ü¨¬ûÁß ˆXáe®¢<Ô³Q˜³ü–=ØãûÈëIš$`²Æÿ¾'ð<ÂçñÛ¡¼æ±ëºòö“£ê§� _θtµŸ¹¯î/!Ï›ç×1Åh¤¿|ÏY/ãóåDZïÛèôPdziY²››ÁìNëW_‹À;Ú+Ì'v2håqÅO“›A2›Íô—ñxaîoòÓšçɠʯÆsß#Xˆ#{¸)ÆõßÔ„òÙ¨0y�¹’|úhuŸJVwIrÃ�×à·Ú¯÷¿ñðÐþ3³nG§¯å‘7„\ÄB°Q ü`0+ô øãª_efZß?²›ÓPðêj±ðß‘Xmæ…ááþÑ ú+?à‘ßðeÉon’ÑÝH¿2¹¹ï[?ø7ϯk¦ÿ<ó1ñeÌzÉ{å£Ì'ŠåâPæäâct/®l°#ÿH&lÍ?\<D§§Ç¿›µñ‹Š?¾È¸.§;»FÀ«ûÞ, ÿ‹Ã§eñ·ÚöKyƒ};ðÉÃÅ"§‹ Bg%ø_ÇÄ?J¡Åñ<ìèäͲê·ù¨¿kx•$°Ô<ä Ó_í#Èó\Š wNÞ|¬yè/!GÄ&Ð_ç¶­ïgõþ8²‘éoò†¿39±‘bÀóM~±´™.GÐïÂýpß÷þ¨ñ¿+­®ñm;Š)cŒ¿ì›à;Ï‹0å9ãô`þ§WãHöY®ÏbGv„R–˜~TÇ—?}EYBþŸœDZm/¦ßägÏ&À{vDñc°ÿè”¾ŽÆ—ç‰o{ž <ä½#$5ù«“Hr&çñ/‹«¼jxUó¤æïð'5O]„z òÿüj¾öÃU?s :­÷¯sB"Ïó°da÷‘£:¯ï¯yÇö2·~}N ê5|Ÿ2}~Ùv­ï3ý ŸTϯk¼ž4ãîû}|Çïû’«•®Gš®gý>¿'S*Ê"òñ—û¿úÃår\ÏMèÑ©H%ðpÓÿuq{;G8s9íôwåJ˜~Ì÷ÿ}y[÷<W¬R)°Eóæ¾ùÒô#÷�W *L?<ÿçø‰KЀ¹2­î²ù–?"ô[=#x†?¤žõïÏ11‚ޤ$Z§Ïù}º‹B"¬P\ÿá×Û€)1ÆW÷;›÷-ªÿAIèù!þCÿ½s|hýô¿3ý<Å0ÈÅ)¥÷΢¹ïêäBG^¢DW?†þX¤7«Ø9Xÿ úý·.ɸ1ðØ<¿x³ßø»(K”ü¿vΨ9m#ŠÂêîJìJ«]`²-ÇÆÁƒc‰Á MmÇ­§õ´ÉKÿÿOé]Á´¤Õ ¦3<è¾~s÷Ü{=Ã0ƒÏ)|Œ?6¸B %¡S¦–þxÙÐ_ˆ ê¿ý%ü霃¾@eõÕý¾|lœp"º¦D¦Ì|Q¬ßHõ1©ßÛŠ7êjšêûHòsÝ#ÅWçŸbÄgmaµ?An¿½N£Õïàý“Çótþ¸¾â>&sà³¶E>@Ò¦„‡aH|ß)U ÿ9÷ÝvÌ• ÑJ»½?=qµ>}VN>”2¦´Ný+•Ο¬qÂã œêSŸi}‚>± [íþ¼ÓYêsê2%¹$ù ’Ë Š‹÷÷Y̹"„:öEz}Øô±dî¥ç'+çƒùÈc|A­òÈ”R¬xÃ)WÚ~ìk:Ƙ¬öÛûÓ)è'ôïKê#êÃû ϧ ÌnrØ& J0RáÉÐþ‹¯þÐýìŸÞGDmè'Ìnÿ)ô#%K-*‰>¥÷¥XÌAíï7QÛé;ƒ1øËñeØwÊ–çG­hð^†çUjëOï_F˜&aÿcYýZ«tpýò¢çŸmÎ×úó¦Xðö§˜÷ŸÇöÒR¬Ö‚ý/ŸõüYõ¯ZÍ®>ÌÏ0y_nùPûK›]п~zT„Õ¢­VÓ&`àÒ 4'_òõx×ïL&.%h®¾fœÏÊŸ~Ï(B„|ý^^_öúãɽϘ“A&ïÙåÀ�ïR?eÑ7.ý÷÷“c¸_¤2õïlò }êåªÝFð>ìï¶ó¯âˆêù,ôEbñÉ÷-êjNä '‚ù™XùÓ9è³íô¼_O¿æõK ýXïï–³Z­çDq®b̘›9¶ÚŸˆd›ýÝ6¼O¹”ú~lBlVù�Ã:¡¾ëlU>?ïtúY&·ñ§÷êŠ:[–Ÿ÷ÒùsŠõ; ßöiÙ_B^½:ð<Ðï ¡ß÷ö'¬½ÝúÇ¾ì ‡æw7¡þaбÐw¾¿ÜÙ¶ÀIñöíà_ÏáþôÑèi{ýšçý425Xä€þKï./Î|ö×ó?9;ì¿Ûý½tþó¼»|�g‡òšA³9ÉÇ…ì$ï{ggóYì0ù~»•:ý hËù=Ð7 `“àìT7Æù-üù;©:Q‹õ[ctÛûÁáŽúÁn÷‚íõw¯ª놪ªªªªªªªªªªªªªªªªªj8Ü›ŠL¯…\Òݸ æ+âNa¿³×þùÿ•;à¯/ð¬r 3ñmß§˜¯`¿‚ñ`?f¾Ï>WÓì_̪˜3ŒÍ3rðï3uÞ3ðšñ}àTfîwP0_³x~¦õ3I-XÜo«©ýõ5oš¹c ¸~=®ˆ»>óßMyýÜÀ]óûi¾@Î~z>×p‡ <×ÿ­ù‹ûímAßè_?;3sðß¹ãA<‚ˆ’FÏb1W1#¸&r9‰™Aa²ÈØÜOûÿB1ô³Ìû˜8”Î/ˆ&$ƒŸµ‚åýöµÜËÔ?/ò¹2r‡iìOT”FhªI˜ÿLÊ sê|€ºÔþû<®ýùùýˆ„‹|u°Ü¥ý‚­s·€; áʥє„a÷jhy¿}­…Ém¹Ÿ #o $€Þ{~e-OGó‡±4ä<úùù ¼wk|?Í'¸Ž7úÙb~Â;‹ù‚ÍýÜI°ýî:ƒ{žo¸ß>”Î95ú×NMðÑ¡‘ƒ-Ô]äÐdáÿÏÖN‘€|‚¡„R ù føB�wòÞg"ÕßX@ÏïRxýû˜¸NXðª1Šßdð£CÃýö¡Íþõƒ×F™¾§FÞ<ÒÜÅB`ŒMùÀ“¡WQ^¦ÔÔ(Ń”;¹¼¡6ùÒÿ®õÑÚ}L øQÓe"YÜ3Üo*Šh òýëØÌ£· 1ÅÀiíõkÐêÞ¤ù½“œüƒîÍaw<ÖÜÉæpÇÛq~~B·{Œ?ú»Îøí„“Õüƒ�æ‡,Êå|š¯ÝÇÀõ}‚�gÞAúð&Ç5ÜoêËL‚¿>ß¿~mæ³/=iô¿é/óà“ðßüš%¥y¤8ñ½¼üÈ0ô/óðœþÛ &|Ï]æœê~µÊgú>®ïCiöƒ”Œ¬þCÃýö žF=ÂŽóýëOßÌüa¤ýõùÞGÀ›ÁUúóù^3/ÿ€s®„枟Éë\IlÈOR)”öçðPÆÈ­­ð4Ÿ`9—ŠDküî“Á•~Wó„Yý·î÷7é}Þ·Èý”����IEND®B`‚IMAGE 5399 ./arch/ground/smooth/shallow_sea_S.114 ‰PNG  ��� IHDR������@���[a?���ùPLTE���ˆˆˆ|||SjÊN_ÅIWÆI]ÆJZ¿YiÎ\oÍSdÊYoÎNcËShÏFTÁ\mÓ\rÓE[È?N¼FZÁ?T¼NdÅSbÏN]Ë`sÑ@VÃ`xÑETÈWlÔbx×J`¿XjÇg~ÖgyÖEUº\tÍ@PÃJ`ÍWfÔReÃg}ÜFNÁXoÇoÚarÊM_¼E[ºt†ßS^ÊXbÇk}Öy‹Übr×JYÍlƒÛl~ÛfwÏo‚à?P¶gqÖo|ÚoˆÚNdÑkâs†ØfÏpƒÓ’ây‡ÜgwÜkyÎo‡àewÈMd¼pŠÓuŒäz†ãz“ã`kÑtßs‚Ø}ètßtà´h���tRNS�@æØf��ÌIDATx^ä˜×n+K²D(oÛzOyo·wÇû¹ÿÿ17«[%²É¦x0ûeRÐSpeD$ ¯i¤”ÜbÔ¤º^Ž|ăëÑÝmOñ.O)Ţפ¯ó]æôý·ëÂÿh¡´ŸªI¯I ßêð¯/oþ¾ú<'ÿX £šôµÆKü²Ü´[}»þ |çþKü²l¾WOqŽT0¼mÒßœ½ùLÛí‰rÕõ¹Rí"hÒ×/óMúîþÍý ¾oÿe~UÿNý=1™žåó›Éèþ—Ï_ÏîøO—B>×ZùÝ"hÐןö%?W“Múîþ[õ×ÒûÎý—ùyƒîyÿ¥þ^oxûµ}?ܿۨï_îÛRAô‚I×dB%RA“¾Î÷%?î—Œú¿õoîßÛß÷¾kÿe~¸ì¿¤;á¿Óß+ŠŸ¾Ž>}™lÔ?|HJÎý¢èµ•’ŒØ„ Þýüæn³þóÝ:ß—üѽ@KÆ ý_ú7÷ÿñè·/â_÷÷¼­ýëø ÷yÖûƒ¸[ïÊWíßÚ˜P²ArJXSÔ¾ý€ñ@¦<øñòò˱^mÔùåÕ:ß|[S²â_éÿÚ¿¹ÿ—ߊœbo»þ•Pã_ Ïý7˜.åÿ�<^{ŸÂí‡:ÿBWêý½\ÃO>£r“®)•ˆs™Jîû÷iª‘*ÞÿSøf“~(³Î÷ŸçX¢ëR¿Ã–ü¦tÿˆ©F[õÀß©ÏüHé¿É“®äÇtí}êW,ñBÍý›ci”¹\WÞ•©–Yž§H(¥ –êPWüZ]’ ¶Ž'@¥?×ú¼&€Ó×ú/ø…^a ÿ€ËæþZŸŸËl‹þu|©¿TÂÍž5ùõ2ð¨7ßÏñ ÁÝÇÛö÷~åÔÞ× Œ®}$Ì1í³µ/Ü“.øz  ¾NO?¤ã’§²̪±ÓK ÞÁWú÷ä¶wÚÜ_JÄP;0²¹_ù{¯˜åüü×Þg«ûÔÙl×ß;<d¤›ÿaÔí 7Rêüb©ó|Á×ëáFß<'ÄZJÿ‰Q¢&Ó+ Î¿âþÏÀÊ¿cã5öG”] Ó‡ª±Vùsï³”ŸëþQßæ~A½ÏVý½ç!B{ª!´hïß‚®1œw?˜Ëg<Ù“rEÏ›|IÇÚÁÎ_Ê=Õ«1=_ç¿àü_N·6é༹? ‘óß¿kè_¯Wþ©·ýøKù1A5üƒ¾>ÿóûÕmÕßëÌ32Ë¥lÌý÷ç÷OÔ >Ÿ¥Zö@ÿ‹KÑŽz 7Žmµ¬þØiOs-u ?Æö x±_|åÿ’ΓçÀ7õïf„æR÷Îμ]¦ô×Rn ¬æ'T×àNÏ6ä_ðxÕ6ý=F¥x×óùÚÍ<¿ïÁW“çciº¾Ù ­·¤ÆÎ¿=òë�ÐóE¹Å~̘]ð•ÿ lm2¶o˜>‘b4VíÞäómnw%¿Õö]oÈ¿àçë¼¶é瘟””®ujæ3© aܱ±µ$ß kÙЛ<Ÿ9^KZÐ9[ÄzÚ/³ÜF/x©WyKn(v|Ã`è¯%¡4Çdçþ’n Ôä—õ<è›ò?ñi¶¶›ã›†]]Mo²­z½™/xŽgRN£ùÛQZõ§–ä™%ìÂççô¦�=·áB¨öçá4‰¢_ù¯Ò4j‘™ã†\s¸“”­é[´kÈ¿åtWòƒ?ð¦¡ÿê<ñ×j­›ã›æãMýóõžR¯7ó­é‡÷÷œ†¡mM·¥¢hÌÎs}œM££¯÷«@ìô,{&Àþˆ· …ì‚/ýVqËHîøæüIôõúC~;Ý©ôòo5Óƒšü‰ãù �ú¦üO<™N?¯ós|Ó¨Aœ|(ĦÞN£ÐiòO[HBlr°-U“„R‰Áiò¹uŸ™¶H®ž ‰cØyŽí3¾ô/ê-J¾aô?ƒü´»µ;õ?*„ÜHÞ®äïÂýkùé¢í<ݱäh¡ã›æíñ_JHçä×qÜÌLj˜üúë8Ùú|QËÆI+ŠÏß¶'×=?Iµú<}‰M;@Eoü¹ó§5xœLK¾9¿pùíÉ äŸN;¯ï?ûŬGSøN_æœ;³˜¬äO6æ¯xŽ£ ðd¥ã›¦“¤ªhËÓ¤•x»LœPÑnËñt<޶†(\!‰¬Uˆv",‚¶Œ—§O}ô²ZSi”ÑÏxçÜ®{’Šoîïò³–M¢¤ûÑkûcw?ÛØ$IZ,™ßP |PHÛZ‰mÊ¿èïøöKÇ7M›öÙ·ÿ{wN¬·ËX†Š³ÿü|ŸÇñö $ ;DIÊðßþy· JX¨$~ jŒ-ÉsýÈkb™ÿRñù‰Ëôò·Xº§óö¿¦?ûýçûóÍÀ»œØVœ¦ùR~ |ñû*ú¦ü¼„–ο޴ä›Fˆ¦azxüÕ·ËÂìQ†Åñg¯ Â޽ùýÓ<~¨Áñáñ20útv7£%ðögÿ„ÅGž4f5Êo̯ø^nSqüÃñs<<ói‡a(·í¯à~ ò?;_.éa¹?ÇËùן,ñ0 ¯Ï‡öñ~c¡ç˜Õ¿ô%ß4ˆ+yWtSJ‘·Ënä~›Ë>~omL4ÚC)2&»ëù¯�4C0+dð±Оá<ÛïÕ8^Lž@–ý‘‘·…J1E˜ h\Âþ­Š £\þcô¸œKú’¿½)Üçx"D1y‘oú£»žXðå€^“¿š¶Û_ñnŒÒû×J×D“«|í0j<“òÂÛeúýµ ¥¥|fã#¹Öãõ#kÐ\¦¸†Å„±Š¸OC§âŸ6 %‚ÑíâČ殿ó/¸„ånG…ÂÖƒ¾U(�¼É4ºà"pÇ´:ç®Nt9Á—ÛaÀŸòc q*Ÿx A‡P̆¶S׿ä)yêOñ †þ\ÖÜVòMÍ. ‚þo—™Ò‹¹4Rjù*¬c)÷•$QD3ðGu¼Ï³¸UO‡Ž*ëLç’×8P^ò-{Á~‰0íŠþÃÆÐùƒ§ã12Eð‹•`Sk;¤cò9ž»|ëÎÍ2#AÇ!œw…×êXfo|^òY†æN7Ï”ê· |•ßïêôçFΟxÐÝwZû˜ß3Oí*v?ò‹Üýa¿ÖÒ,eT÷kšã‰‘Ä&ɘõ½]æØ7šÚqòJŒKÌNÉ!<ºþ@’8JÆ”.q|(Ä>vü±@à_ã€ã’Ÿ\—ý(&±µá !ÎTWÒø”(xó}„™’˜ÐŸÀP©º†Æ1QBŽw:õ––þ0ƒ”ÆQ3ØŸ<ð\�ÏN)ðŸï‘S·ŸöÁŸÜPÄËü¬ìoRzZñaâtRêè!1gG)}ÔgÊøMÆQrJOhü²ÿ©ã½¦¹ºíâ$ŠZ­ÿøíV;F¯å24/zÁÑŸßn>€ [öç×½ëÏnàƒ^ñÏŸù¤ÕZÕªø«;ŸÚƒ(9ˆcZkÝýÒŒ›‹¬ <øÔŽ£È†¬_þé ÖG†½ö‡’oÙ(:`Œ:øü!_ñ#ðW·>9pŒcòÀß`àaáø?o»ô`<,#$nÙxœ#Å3ÄÇ[ðÎߺý ›ù[¥©‡aÅ—ý¯Áÿ“(ó%!Ø2X® çÆÌ«û5Íœ.ï'çÎAâí2}ýe‚_Í™¹Ì3ÞÇüÛ"ïtì’¿’i†ØÉz~OÔïÏÍý×_„^Ñ9/y<ç÷_Û“¼[;"œÃ-£id±Q27†dæÝû_DN@®t÷ÄÞ:bý9o—zÜ9¢%y–r%µ1ý“r¿Ð¡=°­iµ?™:^•<¾à÷ïÛ‡`ŸL£èo!@‹šyÅ›‹Ñ#(ø—:)óWþ®‰AvúA-xÄœ?ä;'—ç6rSÃî×4˜a"…2¹·Ó`Bnö”꾤H™,Å”aŒÏò|I×JI®ÃO©æ\J þ34P+º-yØOÞ;s“cÇI†a 7nÝ;ktŠû”¢CÞÍ4%aE–„aôöm¥K |©Ï¹ÎIl#àAwO&ÕˆgºÜ¼ ûY <#$ž:ðZSJ1R°_æ„ÀK;>rO¶4àsöŒ·ãÈVzTåwþäúÍ3]ê #O<WFC:C‡†—ý,ô[ðÕýš¦“~à« éí6„>¿x5Øgñx|0ÇŒù~—K¹¬Óxœ¬Ã =‰Ç­d<¶}&¾ºÞñ-;Ÿ2ȧйž_¿ ø¯h0 žÂü-#¾¯¤<‡'58LB’´Zò%öÀççîOè$étÚb¸OÆ0¶ôRσQ €—2ž±>ðc×OH™ó¢w­*ÞF¤ßgNNâ>óùÂ<èvZå/ýûй|žøÔ$±Œ ßçÀC>^ò¤ôï×4{¨àš…Zz»Ü xJÂ׃Ð"juØž ÀŸi½$ØÂK¯}Â&ø#YÌsB@Xå£iÈ$‚ý„hy‚ÚÅdÿhøéΗ?½ *ÿ¡@9 ¢èöߌÄÅÅýûR?™Û¯‘ˆšë ß܉ à'4)÷£½ ›‡!ì7A!†ŸöÞ÷¯öO­óWiû© Úbøfÿ;ƒûÛ€´@ïô¡¿*yj‚ödxô£ÓåOw~ðGôs¼i·'£O ÞVþòÅL˾¹&.ßO~™¿ºóš†cÂÉ3oÇA9%„âWsÒÏS23+:‘Á½ðýµÆî Ý@ ÈÏ(õêø¶ðB@ι$Z¼?»úa¤äì&fØé§Ç¥ÞÍp*Þ_};»TÚ1NWB ÒR7Àc,ÞÿqõyÈA‡¥YÐóa^Þï‚Ï%Öâòà…¦„Uû1À¼qüWg—\ÏHöOz~ ìr¼ÛŸ‹Ë¿‡ý3RæïúŽg„–þ$/÷W<Ëeé_åŸ9žž‹Ë?®ÎöU>£!{èÿÿíœ[sÛ6…‘‚€ EºE–¥DªhäÔ·ÚjÛ;5¹t2í´“ÿÿcº�%=@1Ó©Úà¼~ZžÝÕðA3:‹lŠã×LÀ–o?‰â$…z·úG¸©éþþ)˽‹ Å1îÍ×3âyó9·úG'¡)›ííOòù|Î'‘xÇk¥~ þAPÛý5õ61ã]P1?Ni­™?³Ï…£Ü;9Õ/Ê–ïO¢ü”ï·.�{ÁIC÷÷¯ÓŒ5˜4PŸ>ëçvŒ½y~ºÿ €8-YCH‚=Ï;åJ½Èi²ëÆî¯©·+-a¿b~/oø¬‡sØÕQ‚1ÍôÜžïO"šµ œÏ‡.ëª}±·Ý€•QÖD¬ÇñSÊJ» ÀsFø*üà -{úOÁ?³ûkêíÊÈf~ÜÔå£z_³Aó#ž¥ÌÄ-ù~Î9ådªÐáùü´f¬(–{ûãM>ž1Φ…Êã¢æÏ()¦ûûG9øg<eƒY—LáËÒÊê¿©Gãüa~€Åø«ógufõGU{¿æ¨Ëï¯ÖU¥ÐÁùôjuõíhÿÅÍJäãUøÏâAþ/„ÿóþÏr̪E»^WeûöFõ†øwõ£ö_ärÿP¿hÛ›vÜüèçÓ&þ²\­*œOŸ¯ÖÏÎÐþÿ»÷7Uþ}ü²ùj€ùúî#ìïܼüø¾­ÊdzEoý1ü´ûËz4F!~rwwS• y_«ó_ßþ8ä>�©.þçO”U}xp>Ÿ±ß>ThŒÏ›öÍJ«ýüvк*<oÄ8y'òùUÜW¾8'­ÝHŒJ7ßiû;ìÿQ€@åïø€ùQ„ÆJäÓ ‰ž½th>Â+EQ ‘¢IlÂüe}1ê?Ñ«×Y=½’ýû}|ý>£Vÿ+ôY‘~gÅüÿš†æÓ‹x‰þ£òKbÂR Ïúr%óéÿ€“““““““““““““““““““““““““Ó‘¾`9‰˜åà:Hu÷PŽÍŸþ¿„˜>ƒ§LÏ7ù~$òùýEþ€ž#dæ�#O4îò~€©¿”Ù9ôgìç€%ó÷ãyhâuâç"ߟ‹•ÎDæÿ‘^%OÌ<>1qÒϽî~@™ ¡QÍ||ÃÕzɹ©?_Ü8X=éò÷ú O̼ÁÀË×"¿ˆpºïh“¿ ág‚# ‡/Èø|•'»û´¿?˜¯ã©Ÿýaè¯|+ös°"]¾]Ë™…“¨0ð YOvù~íKºÍß#3G:mîøßêëïûøæ~ÀüšÌzû#d{_ Òs9ß­¦?e‡¥§ADˆ!¿>1s¨Ç·x7Û|Ãj¢ñéò÷¤FFÎLÜÎH¬áaÐq¥yß ÷Îkú—¼Iv÷zŒc,÷s°òD¾]Ÿ_-<˜‡&>|"ï„>Í–Ú?Ïvù{vŒœèùeÂóI|¥á“ ÿøò~À¶?ÅWK¥ÿî¾@ÿ‚óÔ_ÊþÔtõ|îËýªx`̯ÿjá(³ó]¾¿}í».ØÈµõ‘àá±¾>’üÓú»®¿IןïGñVûÿ~²ë_7Ÿô÷CÕ?xÚíçPud̯۹ïY9ßåûƒ`ªó‘ù{ßKL< ô‹úàýós¨Wyw? Î¶÷¦ŒM{æË´ýç³:eXöW¨ýùS¹Ÿ¿ôÄ<€Cq����IEND®B`‚IMAGE 312 ./arch/weapon/axe/shaxe_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���@@@���@@@G$aaad3‚B' R-¡¡¡¿¿¿Áq8ÿÿÿ„<wU���tRNS���úvÄÞ���·IDATxÚÍÏÑD0 …aõW”®÷ÝP"{½¹(ã;ÍÃÛp½À{ ¥ãY ÁN¡¹Ð±Q²³»OŒ‘[…Èm)@s—)µ’3§»¿ u‘Šù‡;‹êšRR·@Ÿ˜[�ª ìG[ ".pö”z¹@F 0),à˜Á ªw¦,l英w²»{ŸXÄî+ÆýÍñ÷ç…|:ó²Þ>ûþu‹<Xëú»ÿ[ÿÐúÃqýnà§È/cMº‘—����IEND®B`‚IMAGE 260 ./arch/monster/animal/farmyard/sheep.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿÿ�™ÌÌÌ���Ç gY���tRNS�@æØf���£IDATxÚÕQ€0CYàþgj×ñ!&~ZÍ&ã­Eû³zë®Ôˆ„—ndàËcÊ€Il ²bëxÔË2Ã*Á8‚CA&`IH'p2ó:ÊAÄ–„(¥n`ËÕNõ h´g‹�ZÖ=M‘ó…€øk{€Ü™²�t ÜXX#šcjK¸©Ïx�œ€ª€N^ÒàG±ûƒß Ø]³Äš|†…œ����IEND®B`‚IMAGE 261 ./arch/monster/animal/farmyard/sheep.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÿÿÿ�™ÌÌÌ���Ç gY���tRNS�@æØf���¤IDATxÚÕ‘AÀ 1ðÿ7§¢b"—žº$¦f‡…¶òªìæº2¯­]@›2¢�ŒöÛæ–®~ Éìè& \X§/åO9�6iS;`ø–RÈ9_q§�æ lHÉØ!•~$‚)ÆyY ൱Æxå�%GxÆ�Þ@_Áì@Üð€nA<ŸÕ+Ý>\¯�DµJöê)U�…Ä‹šª“ |����IEND®B`‚IMAGE 280 ./arch/flesh/misc/sheepskin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÿÿÿÿ�™ÌÌÌ���Ùê$���tRNS�@æØf���·IDATxÚ’ …P B ýÿo~¼¡Yy/$Çmìî°Hòú;"0¥Dðm ò”ÖÄßv5†JÂäW5ÜEpâpxPSÉKhâ €tò>ƒ×£îr`¦·ã=BÖ,�™õ q˜{<’L0á^4™ ð÷|Ì�·°€×ØXœ )S `?„=Ñ— O’ß· ÑmvfmÛsÕ*nm€Aéò‹0wmÀ•òóU?4ÎDO¦ß����IEND®B`‚IMAGE 149 ./arch/spell/Bullet/Shell/shell.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V-ŠVc2�1����ÿÿÿ¿¿¿ë2 Y���tRNS�@æØf���+IDAT(Ïc`b€544�¿@ˆ’i(Š@pš*À"WTPÕÐP­ž��væ ä°¡����IEND®B`‚IMAGE 155 ./arch/spell/Bullet/Shell/shell.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V��c2�1����ÿÿÿ¿¿¿Z¬¸}���tRNS�@æØf���1IDAT(Ïc`v€54U ÔØU$8MU ] °ÜU ¨ÍÔÐP4 µÃ/0ž` .eiäŒ����IEND®B`‚IMAGE 155 ./arch/spell/Bullet/Shell/shell.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V��c2�1����ÿÿÿ¿¿¿Z¬¸}���tRNS�@æØf���1IDAT(Ïc`v€54U ÔØU$8MU ] °ÜU ¨ÍÔÐP4 µÃ/0ž` .eiäŒ����IEND®B`‚IMAGE 155 ./arch/spell/Bullet/Shell/shell.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V��c2�1����ÿÿÿ¿¿¿Z¬¸}���tRNS�@æØf���1IDAT(Ïc`v€54U ÔØU$8MU ] °ÜU ¨ÍÔÐP4 µÃ/0ž` .eiäŒ����IEND®B`‚IMAGE 155 ./arch/spell/Bullet/Shell/shell.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V��c2�1����ÿÿÿ¿¿¿Z¬¸}���tRNS�@æØf���1IDAT(Ïc`v€54U ÔØU$8MU ] °ÜU ¨ÍÔÐP4 µÃ/0ž` .eiäŒ����IEND®B`‚IMAGE 151 ./arch/spell/Bullet/Shell/shell.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2�1����þ¿Êÿÿÿ¿¿¿¬z���tRNS�@æØf���-IDATxœc`~€ÅÅ•ï¬äâ€"àžNHÀ´MÀQMÀÅU€ÁÍÚa�8ÇÍÃcö����IEND®B`‚IMAGE 151 ./arch/spell/Bullet/Shell/shell.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2�1����þ¿Êÿÿÿ¿¿¿¬z���tRNS�@æØf���-IDATxœc`~€ÅÅ•ï¬äâ€"àžNHÀ´MÀQMÀÅU€ÁÍÚa�8ÇÍÃcö����IEND®B`‚IMAGE 151 ./arch/spell/Bullet/Shell/shell.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4Vc2�1����þ¿Êÿÿÿ¿¿¿¬z���tRNS�@æØf���-IDATxœc`~€ÅÅ•ï¬äâ€"àžNHÀ´MÀQMÀÅU€ÁÍÚa�8ÇÍÃcö����IEND®B`‚IMAGE 155 ./arch/spell/Bullet/Shell/shell.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V��c2�1����ÿÿÿ¿¿¿Z¬¸}���tRNS�@æØf���1IDAT(Ïc`v€54U ÔØU$8MU ] °ÜU ¨ÍÔÐP4 µÃ/0ž` .eiäŒ����IEND®B`‚IMAGE 1056 ./arch/spell/Wand/shellhorn1.111 ‰PNG  ��� IHDR��� ��� ���szzô��çIDATxÚí–mlSUÇÿ½m·‘ ‰‰F£‰~P>ðMHŒðE"*ÁdBÀ7–ðÒ² gˆd1Ä©‰Ý‚Ca³’¹F$Á°2‚2¾l!&b”8ŒmŒŒ.ÝF·Þsïyy<½Å6µt-÷‹_z’NÏKÏó;Ïyžs.J¥TˆèÿT  �0I˜² L‹ˆA’„ ©$â¦ÀfÃ⤄–®))“sL2 S †Ó†"Éä<•úMª8€‘X/ÌWô¯¢ãã8þë­¬¾¤Žœ¥Áñ8N÷õ#Ôr&g|í{üØó‡ÃmÛbÅpni‰ä‚éEç¼;@ÿ5PöêIz²úKz¸º#Ý—3g}Á¦NLÄM!‹JÁ”Üšq�òÉ»®=«m¼uƒP%ß¶ùêF³Æ–½ÿ=F¢Pt÷8T ”RAYZN]Î0–FþÕátÛóv잀åïÜÉjoüô,›ÃæJª�JAئM†ö®KØÞA¸óì w‘±ô“ŒñšÉ¼ò×hØPnÔÕ{JØJΠ¤€mÛàBÓrR·•’8öÓo(«jK‘QoçžÖcj¸'od½ÙÜ .…–åî8vîw”U·g<PËr�Œ’¼Ú¸7x󞞉›’”;€+CS¨H/æÓ^@(AžmÓ„­ºÞ2IFj×yõCßuH!Üaáõ]'É—Ê€¼2ÞøŽ¼«÷SÅ+­ä]¶'udu4ww”‚_÷‚g¨¢œØ¸64Å›¾ ïš#™”\¾?ex6¸âsz¬æ,U¶Œ’wŸ ÏÖáô¼%Ç'©²î ŽÅœ¸Z¦x�R‚Ï :Ǿö Xj¢yä]Ô@ÆâfòW¥<S¾#J4Zdì0³<3gå*_µ—>>|ÊII.8·î€s vR‚ÐêèìAÙÂ]äYäxaVùºâÙõôrý:Ý{Ó\º} ”¾…Ÿk ÏÂÖÙã"ØFFàpNÿ‚.ÓÁ‹c¸‹ƒ v�J “1lnìÐhÉo|ãWäÙphVÀÊígè#ýÀ —šº_{!ßžµß<ï*?Ï7På’u®>"œ£èîëw ÜÈ?ù}Š+_r !¹…ó—®„0ªÚ2ÙÓ/’ÿ‘gè¡'ÐæÚ:¾—�Êy;L;¿GncSc¤à®}Á=^û-Õ·ž£?‡Æ` ¡åö[.ýÖ;0œãÚhM‘îïú™vŸèÃÑž¿p{j\°»¥rÒÐ¥7’’ZdrWv¹7cÒ“&„H@ $-Ø*ûÿ¥òcçË_¥2ik����IEND®B`‚IMAGE 216 ./arch/spell/Wand/shellhorn2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE ��ÎhKì‹l���Ο¼ø���tRNS�@æØf���zIDATxÚ’A€@ m÷ÿ–Tö`V@.f‚ÔxýOÞ•xªÚó,„ àAHï�FGØ€ø ~hW0å[B®¯Ùq3Ÿô)ð䈜Éç¹öÍQ"éí}ygOÁôÈCÅ'eÃäòÖµôïÝZàTd!—M6(ÄÜj~ùÍÙG����IEND®B`‚IMAGE 232 ./arch/armour/shield/shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���Ö|^D���tRNS�@æØf���„IDATxÚÝ’A €0M\ÿÿe)] ž¼˜^‚M=þ¤k§8[6.�Ï#ã²ÁC’qÙ0%ã¾i(jßP4Ô®¡Ê’qÙ >¸°ZÆðÔ â-D°¼ŸK°ÃÈ`IfzVtCæ\„%‚P7'!YŽ< ùŒ<‰¸a*~÷"~× ºÿ6!®Y����IEND®B`‚IMAGE 279 ./arch/armour/shield/shield2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿ�ÿc��cccs��sssŒŒŒœ��­��­­­½��Î��ÎÎÎÞ��ïïïÿ����ëÏ]���tRNS�@æØf���•IDATxÚ½Ó̓ Eአø7çýßÖ4d2Å›hMÙÞ/6¼þàaNé†@É7¶ fNt>`ÝÍö%P+ÌKË,„ã`!u 3ô`ø„è¾;H7ÀŸ öH(D€¶KB€$ø. ’h€ÜvM8(4ñTß5ÑÀ@f±kB€&.hâòDMÖ¯Ï ('¶§át ����IEND®B`‚IMAGE 411 ./arch/armour/gauntlets/shining_finger.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEÿµÿ���ccc)))111999BBBZZZ!!ŒŒŒ”””µµµkkk­­­sss„„„JJJRRR¥¥¥!!!)!)½½½ÆÆÆÎÎÎÖÖÖÞÞÞ„ï÷œœœçç猄Œœ”œ{{{kck›r���tRNS�@æØf���ÝIDATx^Õ’ÇnÄ@ CMizqïew“üÿ?Æ |[래D£âïiÿ}‚€Ó”` "Ø5³5€àA±õ&…ûüÑb Êþû^ì7Õl[¢fXӒϵH8PÕ#{¡„†B?{!Ä‘š·¥òÍñFìçÞ˜"ëù¹•Šé~ ð4uˬU¥GPQ÷ZyÛeÆí7�¿r,©âãͿʃ‰ÛZÚŠt(Ÿkí»¯ÆIWÑ-[´¹I o)1­½NÉ}@ÑÇ6!=$¿€y ÀBÎ|'úWÅÿÒ7öq ý2\Í‘����IEND®B`‚IMAGE 410 ./arch/armour/gauntlets/shining_finger.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���lPLTEÿµÿ���ccc)))111999BBBZZZ!!ŒŒŒ”””µµµ­­­ssskkk„„„RRR!!!¥¥¥)!)½½½ÆÆÆÎÎÎÖÖÖÞÞÞJJJŒ„Œçç眜œœ”œ„ï÷{{{kck×<™���tRNS�@æØf���ÜIDATx^Õ’ÇNDA Ýöäðb»¤ÿÿG$´'˜YnHôµKÕ›þ<o¿Ï(੘P•�S'b Pv`J¬7Á(”7&X8(ûEP‘àNìɬ@5‡5'û¶«)ÈCh^Z_&�š9äø>rpl†×ckü|•K½Þ¬„Q¼dYúmժъ7‚ŠzÔÊÛ¾|ë�rkcæF®Ú'ÀÄc϶÷£ È÷½óýÇìŠ+Dè·#ÚvN •,û¨Sr¯ r0Æ3!½Ôz‚¹ ÀªsJT�ÐÿÊ'Æ 0ll����IEND®B`‚IMAGE 1500 ./arch/misc/shipswheel.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ -�cZ@��\IDATXý—kŒTåÇÏ{n3³3Ãζ ,X0*Æb)¡µV"kXCRI/êÆRmª-M“ºŠúES$½}h­©&M©—VMŒ¥iL«1KÚpÙmˆn[‚AØ‚Pº.·eawgæÌ9ç½ôƒ11Z.ËŽþ¿½'ç}ó;ïó.GxŸœs\ˆîýú—æiâýÓߎ2‰È‡ž©ómúÞšër=_ílyo½é»·Ý¬ë§ß:i‚üó½àŒ˜|)pî\]�iOëÙˆµ0^«4à¬7ÐÓÝu-ÀæWû3Ïó­m9MÓM™Óƒ:lÁ¡j€œÍ=Ý]ß0Úü*«%wiçv=ÞRA„RÎ#•ˆÐãþŸ=ßûø=Ý«î³YòËY/õyqD³âs SýQ²Ædš,IQJ´Î›/cïéh+æHRÃÂåW°çïXѹ„e—bŒcÁO×ûn fZ&L«1¾uw{¾·9M4J)’Ì<ü‹Ü‹sŒS/mؽsˆE˯`ñҘɌ4 zàY-ø¸){�eÛ2—Žóù'ÅŒµÌ›SYq÷¾eŸUÆþ³V×Í(¾£’+†H(“âÀM `ó+c¿yy€“ÇGËX‹ï+€»¬/ÿY2÷²öZ# 0&§«D© õ(…¢ÚÝŒ,XÙÓÝu›éR" ÑÑŸ|{«çÌ$�ö¿ýr¦“™6GÃ(@œ/G$%:ÿø[ÓèéîÚl¶J… �q³áéÕ&3cÕ×rÍš[o¸Þ9Ø·çƒ{Ùµgµ6þ÷´�žØò×MÀkíã‰Úö\.´3Ê¥·´1÷ˆ8¬sÌjŸÑñâw€¨k„í[0<tŒò™:ðá ˜rxOß¿åÆ¯8ëþPn‰ÆEäÔØØÄU ã˜U)±dùBvl}'†{ï»¶"=>·êáh!.½4<g)~ð–UÅ4N£BT«v§hw•rDëÜO0°óM´1x>äUBý$¦…k@OÛ„�±®‡žï}9‰“ÖZ#ÅeêjgmVˆ{k§OÖôI”F YA•¥­Ð¤^�` ß4Yö„3v qés¾ïMú¾7ßW-åi¶æÝk êŽ+oxH]¶b½ü¿2|Q�žÇcÊã~`ðºÕöóι6Ùßµ >mÅ»Dyà>½}»›ÛŒÞ¯ï¬¾®�\ î÷àæ‡¾Ð‹UƒSÕ”e_¸’=ÿ8„vrã3¯ömkê@ðTï@xäR?P¸À£¨8<¸–Õ7}†;n_N¥5›6|Pa„VZéÚDK[<iDE)‰f]òI}apçGðë?4žêؼRžÿ¹Ñõ?ºùt1ÀC@BN~©ÿ#ñÀ96ËÞ×~n½| ¹Z•,¨pù×IÓ=p6=‚HTH°&E)}QgL@²R©J+%£¢z¤?F�qní›_Ë̱ãå©W}ÔØ‰@T'âó†”ýq‹ø%l ¾&œçs°ÿI‡\Ø8v&ÿ?ûÈ›M\3”¸JDcb‚\T¤‘·ó©ŽÏdñÒ;pº©&<ØÿÛ,;RA´Ã/æ0³ugq•<> =ñ¨¸“ìx<kz.¿~ŠÊKÑÕ·ñ’It\ ¨e‘C\„ ¤#U ñÐVÞÚöìyÃáO)ü÷)éRGv´ãõ>êÿmÐrÌ”epægÒ½øVQš¹oA'!)88{lý){ЉÌÃÉÐ.í¨÷kA{3E4g)µr‹®¾SÞý;B¯5O«îïÌÕý*¹q˧oz¤(›\ì6b§R ÿoo;p$ym����IEND®B`‚IMAGE 273 ./arch/weapon/chained/shootingstar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8àààG$!!! R-���@@@d3‚B'¿¿¿Æi6���tRNS�@æØf���•IDATxÚÅÏA1 Ф¨‘¨÷¿®tf粕í'6~R1§jlPÞàtß ¬Cô‚»Wë¾–9 ʰѽ½Òl�â Ÿ:ž’1fÜ cÜ`7÷F¥s éGäkå‡v„\»`Gøx1åm~"?)‰óÒoäI¹öã¶²ÂztKÕr®Hµà|Ü7ù»GW8»BŽþÜv÷LY²Ž����IEND®B`‚IMAGE 222 ./arch/shop/Floors/shop_alchemy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEàààÿÿÿ�îî����‹‹¿¿¿   ûýµ���„IDATxÚí“á € ƒÍ]¾ÿ#w×TÈkýnŠ‹6<øÀrRÒ‹ïС|[ðMI×óéã:éû‚žOŸó°(q@{‰šŸ ㉃ڔ‡µ8€‘‰z^Ù@â€;¯Õx2‡È]½ñÎÁÓX&8°ábAs°Ô‚%8,ÿÿwA¿�@è #ì<m����IEND®B`‚IMAGE 227 ./arch/shop/Floors/shop_amule.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���àààÿÿÿÿ×�¿¿¿   XäW%���ŒIDATxÚí“Q€0C‹Øû_Ù «Fx»šµø’aOÙäØíÔ6ùwÁ¶Ôäоɡq“´oò‹^*À‡P8€fFÒ‡(Àˆ™ƒœ(²àg äêŒIší«Y8¬û••ƒòTÃAùÈ!rW£çp¬çp¯°–ƒþ5>ZÒÄá%Ýÿï"ý�®‚ filõr����IEND®B`‚IMAGE 208 ./arch/shop/Floors/shop_armou.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���àààÿÿÿ¿¿¿   wÍ(æ���|IDATx^ÍÑÁ Ã@@‘¨3. \6Û€ 꿦€YÄ_ùE `a`QUçZœclkŸÃ6ç\‹¾NÑésèëôv }Gqpìö5wÛ¾GŠƒ¦-+"¬8è×ûøXqЪ¢G‹Ãè_M_w:qüÁ_¾ìEȳ(N����IEND®B`‚IMAGE 232 ./arch/shop/Floors/shop_books.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEààà R-ÿÿÿÿ×����¿¿¿   {/@���ŽIDATxÚí“ Ã0 ëEóÿŸ<ÙÆkWWäÁ •ˆá Ç»$ýà ½”o <%é½Oy?'}_è}Ê¿ûpÓà�ÿ8'ó¼`p`Á#7ãdap¨‚…²08À;Ï708àÌWœù2&÷KîlU®8D£sÅ!ó Å#Ó¸­g7õ÷ÿQþ£í ØûáûD����IEND®B`‚IMAGE 455 ./arch/mapbuilding/shop_building.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTE���x€ï¥ªåààà¿¿¿ÿÿÿ[ZY]fbbj}fotfpphqy’dagoªpvuovÏowØqyËx‚›‡‹u}äw~ÚH/0{‚Ýyꈈ{‚王†|„æ‡ÕŽŽŽ‡‰¼¨‹y››–Çž ²¬¢”®¢“¦¦”¥¨¥¨«<AJ¶µ”¾´£¾º’»¹¬Â½­Â¾°DIbÌÆ¡ÈÆ»INKOON´ª˜¬­¦«¬°¶¬›x€êw~èx€àxê›3ÓN���ËIDATxÚí“UÃ0D=›¤ÌÌÌÌ|ÿsÕ­«mÇÊ:?#­ž¼ò³,lËÔ¶ÞqL XŽŠ©ï3´àã  ð>C³á‰æAî"Žõ»�"|Bäø¾D™i’ ¡y„Í>–…L¨š ¤#áx@ ž»¢©üuÐIÜ�ß—�ÜsÝ!æhI@÷@©/íW“îA«[uѯÄó_` <FÛsäç»5dʳÓ~XdsÜ#Õºïcé~Ãóÿ¿Pý”yN2Ã����IEND®B`‚IMAGE 114 ./arch/shop/Floors/shop_empty.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE¿¿¿àààÿÿÿ%¦¹���$IDATWc``„BÑ0D0²VA \ TFÁ€*Éb¦æ��¸ð=a˜?]ß����IEND®B`‚IMAGE 222 ./arch/shop/Floors/shop_food.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEàààÍ…?ÿÿÿÿ×�   ¿¿¿���~ŒC���„IDATxÚí“ €0 ÖüÿÉÖ•L]ˆ~À0ÌX \öŠí%×™Õõ'«b›ï¹æu¶¿¾çz¼‡)âñÄ"¿}Ö7 ÄHâá¶vâ1æ­E€ç3°Õ< ÀqŸÔCÝN@=\€xp€z(âÍc<ÜU{ ÔÞÿÿEõ`Þ ­ÇJ½ý����IEND®B`‚IMAGE 230 ./arch/shop/Floors/shop_gems.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEàààÍ…?ÿÿÿÿ×����¿¿¿   ³•x,���ŒIDATxÚí“ €0 ­‹ûÿ“í+¸.ì†i†=œx\ŒìÃ×È©z øbdçyªóu²÷@ž§ú=SŠôOP< û³±Añà€ÏÀËâ!�Ž(ø À,óÅÖÕ |¿òsù|�]x° =F”‡Tá¦äóÿ¿`ß/¤ ÿé®����IEND®B`‚IMAGE 230 ./arch/shop/Floors/shop_gener.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEàààÍ…?ÿÿÿÿ×����¿¿¿   ³•x,���ŒIDATxÚí“ €0 ­‹ûÿ“í+¸.ì†i†=œx\ŒìÃ×È©z øbdçyªóu²÷@ž§ú=SŠôOP< û³±Añà€ÏÀËâ!�Ž(ø À,óÅÖÕ |¿òsù|�]x° =F”‡Tá¦äóÿ¿`ß/¤ ÿé®����IEND®B`‚IMAGE 171 ./arch/shop/Floors/shop_mat.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÚ¥ ���dE$Õ���tRNS�@æØf���MIDATxœc` ÐZ+çÿ‚o µ¡@P ™þµþjH$þëÿ¯`‘Úð«µ`U$þ<DMøßxˆ.˜9p“avQ��»1)cù����IEND®B`‚IMAGE 222 ./arch/shop/Floors/shop_mineral.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEàààÿÿÿ�îî����‹‹¿¿¿   ûýµ���„IDATxÚí“á € ƒÍ]¾ÿ#w×TÈkýnŠ‹6<øÀrRÒ‹ïС|[ðMI×óéã:éû‚žOŸó°(q@{‰šŸ ㉃ڔ‡µ8€‘‰z^Ù@â€;¯Õx2‡È]½ñÎÁÓX&8°ábAs°Ô‚%8,ÿÿwA¿�@è #ì<m����IEND®B`‚IMAGE 221 ./arch/shop/Floors/shop_potio.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��€ààà���ÿÿÿ¿¿¿��ÿ   ‘šõ���ƒIDATxÚí“Q À CkÕÝÿÈ“ØÈ´/°|,£}èx0k3Eµµ‚TÕw ÔÕÆûTS}xŸêåÁ$þlqÎ?Àxb‡Oð¬ yÀ,€äß��qÎ%<xìƒðì{ë�’‡à<€ò€½ö€(»jᑎpþÿ³_gÔ C¯óu����IEND®B`‚IMAGE 234 ./arch/shop/Floors/shop_ring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE!!!Ú¥ Áq8ààà���‰*Öÿÿÿÿ×�¿¿¿   ŒŒŒ§>£���„IDATxÚí“A À µ†®úÿ×+Ô%xê­9q…Cf’êSÏ©z¤“Qôûì ¯gïý>{zÀçå8(måðÞÀyh@™i€ó°Î8:"ÎÆÜHÀy�çµ’€óÐh °Ñ̤‡A°¿ð°¨áaÉsþÿ ö!¬ºé~Ï����IEND®B`‚IMAGE 223 ./arch/shop/Floors/shop_scrol.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���àààÿÿÿ¿¿¿   wÍ(æ���‹IDATx^ÍÑ Å0Ð#8À·d�qƒ,¸ÿL_¤XK¨p{ïÕƒÅ|ô¼‹CU{Ëä å]ä²%¸®äyVâé~²•ƒ¦[4VŽ(è´r›¨•# …•ƒb1D¬QèˆÉí0¥î€Ê oŽ_,ž¨xwð wGÞíÀuùþÈ¿üÇ«A•x•–Õ����IEND®B`‚IMAGE 223 ./arch/shop/Floors/shop_speci.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���àààÍ…?ÿÿÿÿ×�¿¿¿   ½žöâ���…IDATxÚí“Ñ Ã0 /éêÿÿäyŒf {ž ½’ÊI9(·²&r¯Ê5ñ¹°.e"ý\'}[çs¡Ÿë< Ç<-˜"ïõ®0Yˆ“,˜‡*¼"/ÌšMˆæ Ió ÑÍŽ îá³ ªjlóпaöÀïºêÁÃÉW=gýÿ_ˆo»œ ÙF§à�����IEND®B`‚IMAGE 218 ./arch/shop/Floors/shop_throw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Áq8àààÿÿÿ¿¿¿|åñf���†IDATxÚí“À ýÿ›‡Õ‘JüÀº%5õ¢£Éd¦¬s™ß©Î÷5.8®ñ;€ûÌ[µó=oòºˆ½XõàÉ„ Ðåêï¨OT_à“À0oîà*À=€¼¸|dÛÃÚ {0Ïó³sй‡*äÿ‘þ�ÔY ÷0§wÎ����IEND®B`‚IMAGE 239 ./arch/shop/Floors/shop_wands.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�d��Í�àààÍ…?ÿÿÿ���¿¿¿   SËŽ���tRNS�@æØf���…IDATxÚí“Q €0 CËjìýolÝŒPkð¾3Lpð@ÛC¥íc²©üŒm¡ÒxŸJãçT~xŸÊÛ4ˆšD>g7hr ËAóöžG4âçÍJhÀÞg {(}(îÚCé…ç@z¸zᡨÈ«‡|ÿÿ+øÀÖ.0£)����IEND®B`‚IMAGE 210 ./arch/shop/Floors/shop_weapo.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���àààÿÿÿ¿¿¿   wÍ(æ���~IDATx^ÍÑá1„áq¶œ+ः“6¼ý×ô1–4ð-ógVcŒ¯F_kwÍYܽ÷íµ£=pÎb¯åÐ>;‚uiG´fK;â˜iÇ*4ÓŽ�ò%íˆ+H;ôBÚpdq¤Du �ªC§ªcÓ«(í³ãþòã—E¿M&÷ï����IEND®B`‚IMAGE 186 ./arch/weapon/misc/shovel_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠVc2�1����¿¿¿F2s���tRNS�@æØf���SIDATxÚÍÐQ À@Ñ­vöþG.ô�a¡Ôß<0º~5€äQÀ!xC ç˜y”à·L{ØÉ±‚ó¿zwwÕìê ¨mÏêÉë“y�ð.ΣyùÈ����IEND®B`‚IMAGE 211 ./arch/weapon/misc/shovel_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��c2�1����þ¿Êÿÿÿ¿¿¿®—<���tRNS�@æØf���fIDATxÚÍÒA€0DÑ"Œrÿ+q퇸0²hóÒ�éúUIjrÒ `^ç Ð �‚ƒ‘X\Ó>º‘±›¤áVÂvžG¦„êù¨ü„o—P=˜× ƒ¦9Y6Ë ŸüõI÷JÔuÅmS����IEND®B`‚IMAGE 205 ./arch/weapon/misc/shovel_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V��c2�1����ÿÿÿ¿¿¿Z¬¸}���tRNS�@æØf���cIDATxÚÍÒA €@ CQcçOîcaö“Š‚Øm¤…¿ É£€—`…@ÎÀDrô¢o¹»5šƒ,ˆÂ]”lKc+dÏiûŠa{PžŠàT�K`UÈÍŒºóÇ'súOÕsþ<¤����IEND®B`‚IMAGE 230 ./arch/weapon/misc/shovel_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���ÿÿÿ¿¿¿=ï!“���tRNS�@æØf���vIDATxÚÍÒÁ€ P-ÅÒÿÿaÁ‹·LŒ$;õ%@³íWGR‘§Bz ®pNž@/@ "W¥µVàNæÐb Ž%ÞnF�6†=Lé Ð+¼ãºŸFX­Ž¦î‰â²ºˆÒÌàb?تýè |rN®­ݧ۹����IEND®B`‚IMAGE 227 ./arch/weapon/misc/shovel_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1����ÿÿÿ¿¿¿Œuà���tRNS�@æØf���vIDATxÚÍÒÁ 1„á¬1¿óþOÜzê¥ ¥9ù!¨YÀ×±ºø:ð� brvktX ðA·“T8@V5Eè2N„:Á÷aº}IïL 8Á:;I•’Î0Æéª’Ç&ìÌ;ÿcý$/Âpuµaj*����IEND®B`‚IMAGE 361 ./arch/construct/temple/shrine.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V¡¡¡�ÿÿààà�¼¼ R-����^^ÿÿÿ�îî�‹‹¿¿¿ª.�Ø���tRNS�@æØf���ðIDATxړრƒ‡‚'êû?ïZ:¹“‘lMH ýì]øú_6ÓÃß©s?¡RÊqë1NÈ_-ø‹�H ?”@?v…„>ì)p¶ ú<¶$�r ¿¯µ>„÷1@„…L Ô€@÷¹bl¹ˆt Šp Ý@é kRkýÏ=A-ä‹€" %»Í€Á'1,9¤Vs"_’ß‚ï- ;åj¯8`À•s½,C¸Y哾HÌL…xå @B¨ñHzÐ÷ˆmgÛ6Ó#`<òõ€ïÀºA>¡ <ô,    P ûùÛþ«7S?p)XG����IEND®B`‚IMAGE 408 ./arch/construct/temple/shrine_east.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE� ��t��…��›��º��Á" % , ,3/P)B$ôóÍ���# ¾a���tRNS�@æØf��IDATxÚí‘Ñrƒ0 I ¤´²ýÿ[)Z¬k:yîäì2·>)òòÖ[ÿZ-Ó¸ë~¶ Ó&@×àßF`Û J�A7]9°™ÌŸ{�1‘0€ä s-É¥ 1A‰ˆ&(åÚêbto�T«îHð“Õ�Î#P¥D[u±{$p>4”(xyž2¿—øà|€¥¶ú%fx‚4‘òK"ÖdP5¿V­TtëÇÓ?––Дû0wà ô@@å-H(”HD—”ˆÑ/‰Í‹Ç—”Éh6/~z“iI.)&µ¨âtÇcÿ,> ü�÷ (ûñýØ€�\DÀ—CÀ‹@®Óÿ})3­,Ê»����IEND®B`‚IMAGE 410 ./arch/construct/temple/shrine_east_r.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���0PLTE�����t��…��›��º��Á" % , ,3/Ô��B$ôóÍ���U˜e���tRNS�@æØf��IDATxÚí‘Ñrà Ô8u+àÿÿ¶’µFÁ0<gr0v2·:ɰ|ôÑ[«Îtîýº_taê�èêü[¤äHøCºéšÉdþ8ˆ‰„ÎÇ�ÜIh1ÎÀwI´@$p‚’O ®.Îé  jÕ ^Y  =%¤ðúU»Í@õ¡®E6ÀÛpÈüÖâ‹ú�-(e¶ú-Fx‚T‘ü$²P1¿í”uëÃ?:,¡ÐÜï€qO` ü¨3€„L‹™Hà’Fñí’Ø¼x,qI39�ÍæÅ_ò?-Ý%É¡8©EwPŠìûcû? ü�÷ mÿ}l@W�þ4 ~ è^æ:ý?q3›Æõ����IEND®B`‚IMAGE 210 ./arch/weapon/misc/sickle_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@ �`0�€@�ÐÐÐÿÿÿ*‚Uæ���tRNS�@æØf���hIDATxÚ½A€0Ùøÿ“•ìÅÕ¤*έ $ØDäZGâÍ£Ï3°íýZTÑ|³ãYdÈâ#üVäE—ŸS‹J’¶t ׂdY‚á®…@gœ¨6r1Püz"oÛæ�ªéÞÄžê����IEND®B`‚IMAGE 171 ./arch/weapon/sword/sicklesword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE.en¡¡¡ààà���G$ÿ¤���tRNS�@æØf���GIDATxÚÝ’1� +žÿÿ²1Ž:oí¥@‚. :&L¸œÚ�ìå‚„ø¢¢.æ%7‰Ðø†’žèØp2°¤Mi ����IEND®B`‚IMAGE 1089 ./arch/monster/humanoid/siegfried.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��pPLTE�����¾‚dµy]µ]1 E�\]�ef�qr�vxŸR,�°Z0³]1�‘��„¿¿¿�tv¤[8�…‡ Q"l?�km�np wCK'J- O!�NN�NOO- M-�SSP1�TUQ1�UVR4{A�uwO)�vw+vw%vJ�||M �rs�…ˆ:$€'N�‡ˆ�=><!�Œ ‰‰�Œ�qs+œZ¯uZ¬vZ3š\@–`­v]´wZ¬y_+¢]�Fšf¼zZª¬�«®§¨�¬¯�±³½c�JL«­4®g�¶¸!®°°°ÉŠj ÊÊ�ÏÑG- M@ J�>?�YZX+ ‹K�Ž�W>�Z[h9h5�yzk5x@X3�?@<&�{}=$�no  %on�strqh7e>�jk�jll5�wyŸP(¡P'sp�xy, ’’(“R$–R�š©pV/”Y%˜T 1 ¡S,�{|�moo2�XX��X6�^^ �¶`6!N�‘“ ‘*ŽW‘’d5�|}�|~a=�fgg0g4�hjS3�WX�454!¨V.�pq�pr•–³qR—™�_`�_a£T,�`b"xF|>�~€§U-�€�ab”L)ªX/c.�„…'~N%L®Z/�cea6¯Z0`<@&"oC�ˆŠ&ƒMI)ÅǶ¶¶¼¼¼D+é<Ë���tRNS�@æØf��IDATx^µÓC—%A†áŒ¬º´Ñ¶mÛ¶mÛ¶{lÛ¶mþ¥¹³™EUžêÕ¼ÛïYF ÿ˜ãž¹ÀÄ>¸q‰ dª±¹)é5�šÆ˜ šsǽ¤Ã$´dæQì6è+>·ün+(¨gú­T”}» "\çD§£ž …×µ–yÑ¡7 ëòÞ5w¿)•v¹ÄnËa€çÎZÑØ“ !@yß~V \­·ÛÑ̶ÅX ¿(%¿Ÿ¿(2ÐÝÚ‹%²{©EAã«“µåˆ‘<Å<­PTr<€Éòå, {ìýL—p�4z8€%ˆ]UÓºÓ��˜L€iD¨ûwå¨×?¯ŒËØàJˆËSþþŽGhŒØÙ|ê=ÿñµÑXÝŽˆó~Äúøƒ/o<=m;Q´¼l]Œ ;øý!"ŠúÉ3K¨ó,Ÿ_—ô׳AdbFBkÃv"¾Í웕Õ*yW)�8Ÿ`G à»ÿ¢HW9|FDÀÝ*[éDZ‡î����IEND®B`‚IMAGE 1031 ./arch/monster/humanoid/siegfried.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��=PLTE���¾‚dh5ŸR,µy]µ]1�\]�ef�qr�tv�vxE�¤[8°Z0 Q"�‘¿¿¿ �npl?�qs�rs:$³]1M J- O!�NN�NOO- M-�SSR4�WX�XXX6�^^�_`�_a wCd5�fgg0g4�hj�jkk5l5{A��„�pq�pr �kmD+on+�uw,K'¡S,�{|�{}%vJ�||�=>"xF|>�~€§U-<!�…‡���Œ ‰‰�Œ�¶`6 ‹K�Ž�I!N�‘“ ‘*ŽW‘’ ’’(“R3š\@–`­v]´wZ¬y_ JFšf¼zZª¬�«®§¨�¬¯«­4®g�¶¸!®°°°ÉŠj ÊÊ�JL&ƒM�|~—™£T,¯uZ¬vZ�vw c.�jl+¢]�€h9/”Y%˜T•–³qR�moo2¨V.ªX/�>?�„…®Z/�?@�…ˆ¯Z0<&€'N�‡ˆvw�wyŸP(¡P'sp�xy 1 x@�no��TUP1�YZX+�`b�ab�Z[X3$–R�š©pV”L)�ce�yz`<�±³½c=$�strq�45�UVO)�|}�ÏÑ)ÅǶ¶¶¼¼¼�ˆŠ’L���tRNS�@æØf��xIDATx^µ“C“-AF+«uiclÛ¶mÛ¶ùlÛ¶Íßöîew½ž‰‰˜o“‹sò[e¢ƒ 8#ŽÅ €µUˆ‹qâÿ®©’�8c²ðtd#SõåÍÑ7J,¿„üîDÔ‹×Ç­Ö¼ëgU²¡…1>/¼K^ùD*MM–›ÞW]:Âãç¾ý8ò÷³NçðmÖ’Û6ÌNùÊeÑ[í+I}î±gÍà$O8ùóŠIáÑb¸™þ¶:õ¼¤ùÍQ¸úûCÔGs Z³ØË0 4œ™8ƒx±÷8ÑK†é^(Gšv )ýþJ½ �†r¨Å4"„ºHù�€^˜#àmÊÍ––f4¦d�ãi¾žm{x;ß»€Ã‚xŠ ûèg6÷Å"ÒÅÔuvFt½óKHp¿ƒHFYFÿ8B—›ŽÆbD0¼�FãY¤Rù¨Ë뚇µÚ›äSdwVæBC‘xÅ1@ì)`ׯٻ�ûÈùü[Qy×Xín����IEND®B`‚IMAGE 203 ./arch/readable/sign.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���ÿÿÿd3]J-���tRNS�@æØf���gIDATxÚÕ‘í €0E—§½ÿ+—?D–nBÑQØÇu·µOè¬uDÈ…Œ¡`‹0èûÓ«×Ñ]4'hظʜ²M/Èu¢]Rƒsúô#F¨ÿ9.~r¢‹-þiЂA�5x…Åÿ£ùxœ����IEND®B`‚IMAGE 176 ./arch/readable/sign_e.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���ÿÿÿd3]J-���tRNS�@æØf���LIDATxÚíA �1S§ýÿ—–BÕîi…¨cÔ¡ ´…V±À†žƒ¼kö9ìÀôlÿõ¡B Œh!“|w~ *hèT`8å‰/%o����IEND®B`‚IMAGE 178 ./arch/readable/sign_w.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���ÿÿÿd3]J-���tRNS�@æØf���NIDATxÚíŽ1� ‘êÿ¿¬†˜2œH¼0�-U)Ê@®Cá>ÄÉ=^Æ.k¬¨ËŽJ¯7HþÀý‹C›rŒ ¼ûOÄ2À€rLáà¸þLÀë����IEND®B`‚IMAGE 419 ./arch/shop/silver_converter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ ¾V®���oPLTE�������‹‹�îîìéìé&–„&éÙ&ê×'—‡'ê×'êÙ@@@®®®¿¿¿àààç¶ç·è¸üÓýÕýÖýÖý×ÿÓ�ÿÖ�ÿ×�ÿØÿØÿÙÿÛ�ÿï¢ÿð�ÿð&ÿð2ÿÿÿpfh���tRNS�@æØf���bKGD$´ù™��� IDAT8Ëí“[‚ „åbšˆ†GóöÿÿcXvÒjšéÑï Xv¢hA¶@ë±P3Æxâ�\ Ú/TPGJé¡«´.AbÊg‡BW©»H¶(£  @;ùÏ‚fôï(ë¶¹ö§ª<. Ã4öù3Ò{Li½·’“o=‘_ŠÌN«îÑTȹ?„áÆûï_à™· 6³ »“����IEND®B`‚IMAGE 854 ./arch/jewel/silverbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��IDATHÇÕénSàyÔ>@ÕVB !!˜¬dqLˆí,×K|ñrm MbIX• ûQ¾þIEØ3¿çÌÌ9£3boâUìÅwÆ ÞÄ„ã–í~H?ÞÆ´_üê¨[±ýoí>åg?:æ¬1CfíÆàðåÿFÎÇŒ8ã”!F ëÆÞá@ÞÆ¢!#rrÎ8/¯dQÞ˜KÞ~}•AL)ÛpÑ¢y³ŠjŠòjªJzÑÿò{qÔr:V­*[5«ªí²D¢¤èõçuD'ô“ãÊÊ ¦%zz*òÊÊœWÝO/3ˆe&:ሲŽTSÏ6U””Í:cÊóO­ò* –Ì›tÎoæ\sÕU]©º†’š’grZò±.íX±jUɪ¢9rÚ®èH¥Ê65”̘0fÈ ÓvÞç#¼u‰Äš kòf$2™5©¦ME3fÍ6dȰõƒºìÅV,XWSSÙÏ5+–5¬Ë´T,XÚ8mذSf<ùŸÒAôc;.EѦT]"Q—ØWÓÓQ³à‚ESFsΈqãî½Se/#‰e ©ªDu?×T\ÑR6mθsÎÉ9cܨšGvŠÙn,ªKÕU$**R©LObÉ”qc¦œuÞ¤e;¶½0xân,K¤ª6UUµµµ5]4-'gÆycfܶã¡gúÕßQŠ ‰DŦ–LWÓ’ ãÆLÊI=öÀ#Ïý㣻Ü4òR u5U©¶žž– “¦MËÛ±ížgž{ê§Ýë±`]ºŸm©L¦#5/g˶{îzfÛuŸ±·§Qˆ‚TK[Sê²®LWKݶ;n¹ë‰kuøØâ’˜³©©µÏC¦«§é¦þòØ–»_ò‰~ìÅ•¸ *ÓÕ–Étue¶\wÇMý¯9U?îÇ‚U—µ4�Üt_æÅaür/£KZ:Zû�ºí†æa=»»‘ƬTWGWÇ ÷Ô½ýÓïÇ͘—èêêº%³õmo'¢O¢  ÓuÓšþ÷|ÎבļTÍÃÃÿ¡°¿Ç¬ïéÿŽxõ^ÿÿ�È–hÁvŽ«~����IEND®B`‚IMAGE 1053 ./arch/jewel/silverblock.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��ÖIDATÁ»Ž%G�ÐSÕÕÝ÷53;ë}`³BH¼+$H|©b¾ƒàH ‰ ¬„d!X!Öc{wgæ>úYUœ¾�ð?÷C������á �|^«à$›DÕÆVç¨spPuh ¸3y|éï~ç};c²µUÜÛJ²drkÆ•ÆÅ^4«’+$èýÚûúAðÜIôàÖlq4¹1‹ž],¢³l4ºQ‘àdõ™ï©‚“lÔZ%¶^j%ÕŠGE\dW’ Þ~üÏÿýÂ'¾´÷AãFÕY¼”mDÕת=:³½hÐéø¬¿üþWïlmDY‘Ý‹¢£³EÒe«ª×œ\Kÿå7Ë£^Õ8ê-‚ «U0:›\¬(‚Õ`#X‘¾iòß’(¸w#;[u6¢Ft6it¢êˆÕཽñ­o$w‹$˜­f«E± ZuE•e«ˆÔ¡J&;A#›ìŒŠ[‹ÙhQd£N|$Z)£Ñ¹XÝhtf{‹`cÒ¹1ZmEƒƒEÖ[õv&Ò(b#D“V+»±³D‹zÉì,j<:iÌîôH=²Qq²³Q´"ŽZ¯œÌ¶n³N1y0Ù8¹X=Gz|Wv±“TÉS‹wZÙçOßeWwfÕIõ±Î鸙üXgÀ £ÙE×Å¢¸s08Ü©vzIÒ˶ R¨á<í{ÅdrôHFÕ,êÌþ¥ÊÞú‘Ö,©v¶Z_鑞•7ûŸ™Ì¶VYëß’V‚É ±óÒQ+‰’ÁÅjÒ"=ß·N&4²Vã^c+J.F‹(¨n<(’(©<yf¶×ƒhu… ˜Ì&ÙF2ˆžHzDժт´ÿé/MFPí zÙ*š}íÖFmÌöZ^‘=SM*R?dƒ÷Y¯Øz­:‰¶’·Ñ£¤UD­Fg«Åê©\’ƒ`+¨¢ßÊvöÞY5ž#y†¤eQ‡I«:ø 5CÜëWF7'²GYA±ZœQ4¢þÍAj/A#+¢“GÁW®PthP-²`DU$„’ߺKPD¼ð EðAtãlÐ#:Ùe h¬.®”‡W =Ί¬s‹*¸víäè­·VÅSÅQgヽ :Ñó§¦K–½¶A5*ªÆâ JZ£[EãÚÅ*žtkéãÞ’N0¡*’£³{ƒNc£ÑjLØŽåS üI]¶é¥, ¨²¬Ñö®­¢ªXU[³ìu�Òêûig²ñ(¢Å{'ÁGžI²¤5¸÷ Ùþù'Ÿ„¿Rgg«€ ÓK‚"k´¢ª“DQƒÕìE�àÿP¨Ï³D­Â����IEND®B`‚IMAGE 288 ./arch/jewel/silvercoin.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ÙIDATHÇÅ”Á„ D©„jRäV±-P…žídöX^ ‰¾¹)ù8c:Ó39¯2X[€ŒŒRåCŒñ2ÈF¨ã„‚‚oՀǛûå"ÌÓ¿È ç€OE\U —˜A ÿ6>#ûl‰Ðu E™V�ìß ©ÈkÇÀëþ}/<`jô­'1n]ëM I¸kíµÐ‹–béã‡;ÐBŠlŸ €€×ŽÀk‡H¡æsבAÝÇo‡’ÂÑG›†rM=è>}?oÑvÊdû´ws±ç~ÃZü+¯ê}ÀíΆõ·J4����IEND®B`‚IMAGE 776 ./arch/jewel/silverround.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�˦;8 ��ÁIDATHKÝ”]KTQ†÷ÏQ¤ a$†<MØø•!I‚Á¢héE3èhÃ̈¦HSǯÑ,“Ì"è¢?òöìåt5ê]Äbsöa¿ÏZ{­uŽ Ý¦óÞ‚e\Òîkåݰ=â½öÔâ²xÂMº öý}ïþk@·:QT÷¨W·ô(¦#½ÃÏõÿ©ÇÐ Qô^‹ZÑe@e‰“˵€�ñG½F¼0Ô^Òº6µf°»j ÐwhÄ!²KV—<í#ßÖ.^"@MçÈ}Ò%í Ë"Ë©Hô×GªèAc@‚„÷„ÄòVTF[@²Ü3Jc¯¸ïR£€(|;$¶{a¨e„óHY¥4C.‘ú€ò5¤o‰½©%‹êW±3@¼Ïkš’v© �AZá¬!™µÊzÛDSø¾¯<yí‘C ªÀ2ÈWk¾cYfU�³T=hÝWw- Kþçí³~0}§úd­üJ[O¸úÖ–‰_¨—APÍ ÄÕÏ ÷Cî¿™Á3ë‹/i™<RdY'ƒ¨îõO­ÿYªà'ñ”¢†Ú i“NY#ƒZ@Œî®³i™®V;°V-âöœêÏb)ö¨§aCŒòäˆíÛæžV’obP/€Ìâs¼[eOD=µsÐÉ–rH±1ÍÖâI,'-ºog +ª­.ÀÝÑ„Z©ð ›“×3l‚õ<×$È—p`‹Ú\]@‡åP0ù„žê ¯ (äjxnopíH[)cž¿ÏqÖyüj”s41äüí®! ŸooÝþ€ß—UÄiû|&~ÈâfÍ�n”¾oÑÿ‡Ø9³w_2“¿èÅ#jDq×�b”á­èI¯ú¹šøˆç>¸ëذ†˜þcæ2äçú+õ»>wS€r ÅÍý¿8án 0‹›î_üeúýšd„����IEND®B`‚IMAGE 331 ./arch/monster/undead/Skeletal_mage/skeletalmage.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE�µZ�Ök�ç{1Rÿ”BBBccc{{{¥¥¥½½½çççÿÿÿ«0¥G���tRNSÿÿÿ�@*©ô���ÒIDATxÚ¥’ÑŽÃ áp×ûÿÿ{›¢)&ô¡+$¬x2±¥”ö%+À•�§²Ü_|yÊYCŠÅ'ªU;@²ØkktwRŠl`¸á­”‰LCí¬oxD:¦:Õ:êvÞ¶0s=â0¬€bªý4ÜV›â§�·Îú#€h°$@!¤8^ÖÆVËp§ý…EX6ÀcÄja5~X´Tž$òáBpÜO�‰q?�¡þÖ1îk�¼ŠXŒI®�y·�¹¦²È &`“ßÞÁ¦&"����IEND®B`‚IMAGE 330 ./arch/monster/undead/Skeletal_mage/skeletalmage.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE�µZ�Ök�ç{1Rÿ”BBBccc{{{¥¥¥½½½çççÿÿÿ«0¥G���tRNSÿÿÿ�@*©ô���ÑIDATxÚ¥’Aƒ0 &ݸÞÿÿ·Kh$p!=tÉİú#W€++�Ne¸?ùô•A _ï�Ü-‰Ý”âЊ˜ $A€[ É yØNíßÀè©“°óܧ £ö®êSP‘ 6•!À>·#P¢[%¤�uËÑ`­E¸�çvtÇ«•Ó'J4«pÇXñ-Ô8-©'Ÿ+Z‘1PÈÑ/V€à‡»ùåHìõÍ—†ˆ½öÈ@zŒK€‘ÈÈ»È%0ý“Í@N0Ëü¼¥ރ����IEND®B`‚IMAGE 329 ./arch/monster/undead/Skeletal_mage/skeletalmage.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�µZ�Ök1Rÿ”BBBccc{{{¥¥¥½½½çççÿÿÿ©V“Œ���tRNSÿÿ�×Ê A���ÔIDATxÚ­’Ûn! DmœaÖóÿ\/Ù¦aKèK òÑpÖþ`%°Ø  Š@>ôà.÷g�Fuó»€C$¥á!·_E*#Ž#ÜìÐ D%2cN¨~ 8Gëê‘á“ÐÕš A­<ÂÚ]àwÀIø|M뽕1¸®ù.˜CÑÚÀ«ÿ#˜²›@éÚÁ旌Ȥ‹:ÇÕ™<ÃAÐò?X9¤K¡€„⣀Գ~$\u-dõ· ™ÏÚs-@¯I.ålÞ…ÊÝ Ò^xßvù’3©½Pü«ðºÔ É'OÅÔ����IEND®B`‚IMAGE 270 ./arch/monster/undead/skeleton.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaaààà!!!¡¡¡ÿÿÿ@@@¿¿¿!Z5���tRNS�@æØf���¡IDATxÚ½±„0É"£ÿÿŇè»F¤¸â¶!É û%‘™¸`,ØÙ§ )›ÒëòAD@oB"I›ˆžã¶³‰FHîH'·õê Õ>ukx äÂZ¡Œäíµßó2’¯e¯B¬u,]G'Êpr£©ð�¸IÃU€õ‘sÍ7tÏž{ò±ÁýšË{A|Þ ¸?86 0 øÃâØ_ó¶÷¢|pœ����IEND®B`‚IMAGE 273 ./arch/monster/undead/skeleton.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaaààà!!!¡¡¡ÿÿÿ@@@¿¿¿!Z5���tRNS�@æØf���¤IDATxÚ½‘Aà aOòÿw‹Ò^p|è¡#EfdŒ_HÓy%¦prv#¤Ä¾!¥'¥‹Ì„$Ÿ+ÈÚ#’"°$$ÆÜƒu†XøÊçg@Ìá8ŽÃ;mðÖÊܽSóÖA.í« ×,-‰·P½#æ6…È8¨Qpwè^kö턈±˜Q⻉2ðq{C0Ú�ú€ØÚŽ`ü•%ÆëÀÂ����IEND®B`‚IMAGE 270 ./arch/monster/undead/skeleton_chief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaaààà!!!¡¡¡ÿÿÿ@@@¿¿¿!Z5���tRNS�@æØf���¡IDATxÚ½±„0É"£ÿÿŇè»F¤¸â¶!É û%‘™¸`,ØÙ§ )›ÒëòAD@oB"I›ˆžã¶³‰FHîH'·õê Õ>ukx äÂZ¡Œäíµßó2’¯e¯B¬u,]G'Êpr£©ð�¸IÃU€õ‘sÍ7tÏž{ò±ÁýšË{A|Þ ¸?86 0 øÃâØ_ó¶÷¢|pœ����IEND®B`‚IMAGE 270 ./arch/monster/undead/skeleton_leader.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaaààà!!!¡¡¡ÿÿÿ@@@¿¿¿!Z5���tRNS�@æØf���¡IDATxÚ½±„0É"£ÿÿŇè»F¤¸â¶!É û%‘™¸`,ØÙ§ )›ÒëòAD@oB"I›ˆžã¶³‰FHîH'·õê Õ>ukx äÂZ¡Œäíµßó2’¯e¯B¬u,]G'Êpr£©ð�¸IÃU€õ‘sÍ7tÏž{ò±ÁýšË{A|Þ ¸?86 0 øÃâØ_ó¶÷¢|pœ����IEND®B`‚IMAGE 199 ./arch/flesh/human/skin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷¥R)���÷çŒÿ��*���tRNS�@æØf���fIDATxÚå’1À ÄÈ%ÿs•â!ÃÁZ Ø ±¾‰š«ÍÈÔÙfû´3°<Axá/Á|h;¹@¨c�’="Faü t9 \ é]�î’ÐE៹šR»—Û©B;„üÔñÇrcÔF����IEND®B`‚IMAGE 2282 ./arch/monster/undead/skree/skree.x31 ‰PNG  ��� IHDR���@���@���·ì��ÓPLTE������������� ������ ��� ���$#���&$���(&������53���74 ���<9# ���IF*������PL.VS2���]Y6������jf>���xsF���‡N���Œ†Q���’ŒU������ ™]'''jf>’ŒU������ ª¢c���´¬i‡N ���¥ž`¹±k���…M��� ‡N���È¿t���ÉÁu���ÕÌ| ™]���ÜÒ€74 ’ŒUÉÁu������á׃$$$���PL.���“V���,,,���555îä‹���***000:::@@@ ,,,111555PL.ðæŒ>>>444;;;<9#UUU'''EEE((( ooottt ´¬i---$$$???xsFá׃###GGGOOOVVVZ99___hhhjf>jjj ™] yyyŒ,,<<<¨$$+++ÅBNNN ÿ¥�PPPTTT"""VS2<WWW74 [[[\\\]Y6-cccdddf66%%%AAAr22C??CCCxxx(&F>>€//…’ŒUJ>=¡š^¡›_¢?#¢œ`JJJ¨V!²""²TK@<µ®p¸,¹±kLI3È¿tɤÉÁu܆ÜÒ€MMMåy é߈í©666ñºøÇüÏ�OH:踪„���utRNS�&(((**/88::???MMOUU\cccooqq”››››¢ªªªªªª¯±±±±´¿¿¿¿ÄÄÄÄÆÆÏÏÏÔÔÔÖÖÖâââââééééééééééëïïïïðð÷÷ùùùýýýß (��QIDATx^¥ÖWUp4 K4&Â`t0#Æ¢¶XE(I”Dg­,Û¾½Ñ{Oï½7kï½÷Þ{ùÞ}o2%Ãd üÏÙìÀ½wçÞ·YÞ)¹F¹‚ÉA8Ik>ƒ>wÑFMkú|ÙÃYÃ(�ìH€Õ«ªÎðÜKñx|›=, ]Uµ¨Dô1Ã1S5ýÀû0Ž &‚¤P 2ë�û0-` @Ü®Ñ,úŸ}ÈóÑÜ�õ"�È }8Ú—›ÀÌ<º”Ï\÷ü€¢=€hän>Ãk``Å`[Ûr7`D‰Gd�׼ݳÁˆèúɹûzÚ¯ÐÄùýÏÿ¯. »»ûE[#ö×®w{C$°БL&{ÚÚ–P $`"Ëx�Ñ¢îvn"YÙÑ¡i ê]Çë;‚Œ¤¡sõ`]2Ù¡)ž <vÄØIŠD¨dÒ©±Ÿ/[özà…÷üâ=-"׎`@Ýù˜Ö¼œvº´š�fBá§¾üûç¯^~s CÎFððšn|«*|‘’ ª šÖÒ€õ‡VmûëŸ?¾ýçÚû‡ÞÂãi�Àg¤ ]¦õoûm÷îI¤¡w„}ºû­è�ãx^Ø¥(ª†&©q³Ò€ÀªOwìøˆÒ)õµ#yé¶o| ¬ˆ/–iÐÞØ+§í-[Þ¥£ï c¼€13D½ek쉪[5{zCø{Ù�€Dz1±!$;`n ²4¤4iu f�h‚Ò7ßK’¤4I䵚• |,kÌyé\uÝÊ%‘¥-Y®ãæ*8Ѹh®M$6‡ FÜ“‹åz 0�¬u n‘VÉËçÓ?'“mäö¥YŸJuàuÉ*aä�à ¹IÓENô!XR)Iê³É?¥Jœ šgúöíéÝØÑ¦0˜|¹\/·„‚âÜ!èM˜‰xû®bÏ©6„µë×?™h¥š ˜3Î@°³_ï½Ð¶æÕžN�_© <d?ýþ]W×f °i Ö'Q¶�R3÷ö"•بâ1•ÀúI x 4¾:@€fßim]øC_ßž½À RŸùßê}ö-5•pÀ8Æru péÜÿñ'Ÿ]2ž�ÎúÔæ ˜ÀÙ÷�°ôšQÖœ:º/®»ù–[󤀽^M¡€íLÀú}+Ðú0X£Øån3Ö^\$9¼Gκ13`íÅûg¢:Ø#a‚”ÖØ÷€[dÇg"Ð8ËòzÃä3ѰÒjÜñ*6Ûè÷Vð^˜ÂxX#9#:¡\»O�¼<�Z£¹÷­qwX¶7Ë0¼°ÎBkF*xúËÎt�Ö^0wïîÃdŽ«3žCÞU#Ý "o•„sx~þÁ3AË�Ö ¨q0÷a¾c25|®Ñ“š8û\U>ÕT0èpÕt'º«7þñóW—••Í›]œcÎh½¯‡ŽÎ:,Ç Ì¹Ýïä”ÑYYÓk±ŒQ¤y3€mÊʳüÅ&`ÆŸ*Gª|Ðýá®$õQ pÚµ. °< Œ.…KË/ãçÇb@w'וH¼ðKʨï´iÅ9ç-€Î�>:N8+¹a€ôšqkM¥î„;üµ©cˆPè?êb€ú˜ˆ€;ן”ŸŸ×¡ýA!ÏŠÓRýŠñ'̾¸SFÏkÌÇžÚºpöTR_­ÜÖ’<€c‹ŠŠŽg0ã¬ù>^9±¦gL4îýs/àð|̳óÃËÈÿ�ê$RÐÝSš����IEND®B`‚IMAGE 2215 ./arch/monster/undead/skree/skree.x32 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE���������������� ������ ��� ����$#������(&���������74 ���74 <9#���IF*������PL.VS2���]Y6���<9#id=���jf>���xsF<9#���‡N���Œ†Q������ ™]jf>���������´¬i (&���¹±k���������xsFÈ¿t���ÉÁu������ÜÒ€74 d_:’ŒU¥ž` ���$$$74 á׃���'''���’ŒUé߈���,,,´¬i���îä‹���@@@***000:::111 OOOUUU´¬iðæŒÜÒ€EEE 444<9#<<<>>>PL.'''oooyyy ,,, ###%%%;;;555...AAABBBC??CCCJJJ ™]"""KKK$$$Z99dddf66jf>lll888 Œ†Q(((¨$$¸1åy ???ÿ×�&&&R<:RRRSSSTTT999VS2VVVXXX[[[\\\]Y6_33___b66('ie=jjj+++�qqqr22tttwS.w^.yV-yc--+{{{---…M‡NˆƒV—‘^¢?#¢G#333IF*¹±kÈ¿tÓgÕÌ| åš íˆí­NNNÿ±�74 $½xý���mtRNS�&(**/8::??????MMOOUUU\ccccoooqqq”›ªªªª¯±±±¿¿¿¿¿ÄÄÄÆÏÔÔÔÔÖÖâéééééééëïïïïðð÷÷÷÷ùùùýýÆ€g��(IDATx^½–‡—ÔTÆ£Ž8£‚À–`AÌè‚EdguW3(P4ƒmTÅr_êôº½Wzï½Ú{ï½÷ÞË_áËÜ!y»Ýe8Ç99'ùÍû¾{ßÍãúQ‘øÀœË¸£FÏAY(`ØÙò(sð)„ �Ä£¬×4%(º ¬I¥ÔpxÂÈ‚�qÃh$mmO’˜à*�Ñè[. ‡Ê;B:lKï:Ša~(�ß‘<a9 s£ª�¨�PÈA%Î;É}Ì |³ê ëâàзTCëî�Øö½6‹� ŧRM�*yÚ�iÙãmï=ê HȳúÏAz²•È 4p÷»ÿ«× x¹µu•hè/Zž2ÔPo@*õN{û³©$bªš&Cœ�ÐÒ ½  µµºz9!K‘eY5Ä @e„l†²b1•loO"«æ¾��á°�ìÖb0ž§ÙW%“յʧ†ÙÕ�f;ÌJI­~fy‚IO-�ú_~éƒ6¯$PÂás˜»`}{5Ñòy44˜õßEvýþçžÇVÆd�§|{s�@/êŸس™fN9øV'·&´TŠ7@§VK=×’®Å;sþ7~ûóß|HÝ(5Z„̓mfÚ‚[˜‡wª¨PS7´l#„¼û;}ï\æà�(‘ÎF#ŒZ c?Ù¸k×+P×EäP„æà��ƒh€Òu=Ša°;S5³r�l_§iÝ5�P£™Š�*þÅWŠ¢! fä²BxLš©nz!I†ªÆª|3 ù+IêžÔ–Í»›LªîÒü{ˆöõÍV\€îæxBè½Ù¾¨úLÛ\añèØ0,@íÑè~ÐaJ‘9#�{“Ÿ¬Ù�ãEDü³#~MVH—ƬšŽö-ˆ+dÙ— WS^ñ šË~(›–'lIg^ü-¡†TB:ã�`”Û…vBÿ‰è"i83æ—nz@(‘¤…¹5d³Owt¼Mû"6À²!Qÿ!’�`ÍíûµšUo@P4µˆ"—qèè|$ê°æ£y>T¯¾žù1ý9˜9!àz,™+8‡R’o!PÏùoBù-f\½ví/?5ïð!Ëb²Ý¢%9kssÞm[£†ÐçïËfïgX¿„Èv£O_/€õ¼ÛZ&úË)¨Ö*z_ÀåQ`.8éóÇÙ�v.. 3�ì‘‹®A�h&³ñühعØÀž‰rÙ¸9êYª´¨4<?2�vK3g"Æ++̤?�ž �˜ƒ3 ¡ªM ¸@™í—;kîg@¹$=¤j6 <Èúån>×ã9¥ �æW:�¨$ÀnwT…¹tl6'@É̸–gùL¦Nç¸1Ô 5±Ð @ß2ö‚U÷|“gx½Þ‹s3âÊb;$Ë#[ ™ñ-I8ÙãZn—L w¨© �‘à<Ìx9Vƒ”ˆ§Óõp“ßÂ!€I"ö»Ugw( }ù³[+**üÃÑÆúμ¥S¯ê(ŸÜçX®4p¢�„ƒ�z5[�¶þøïŽ€Ñ_éŒéܼŽÈêh_À˜ ?4×ç&íÄXë{¢:XBÅñN€læAIº-xx¢™ñÙ_ÍVEÀÀB€ýÓ_´„ R.þîô=èßïÏÝóüi§å‹¸A«üŠ|}'Oå Ô™VÂÿ7à?« &\R����IEND®B`‚IMAGE 2146 ./arch/monster/undead/skree/skree.x33 ‰PNG  ��� IHDR���@���@���·ì��»PLTE������������� ��������� ���  ���$#���&$���(&-+���53���74 ���<9#74 ���������PL.<9#VS2���������id=���������jf>���Œ†Q���’ŒU��� ™]'''(&jf>������™’Y���´¬i(&���¹±k������ ‡N������ÉÁu������ÜÒ€<9# ÉÁu74 ��� ���á׃$$$-+������é߈ÜÒ€'''���FC(������000:::@@@***,,,PL.ðæŒ AAA''' OOO111444555;;;<<<EEE UUUoootttÜÒ€jjj74 ²""fffCCC$$$JJJNNN777S;;TTT888\88cccdddid=###yyy‡NŒ,,Œ†Q•)) ™]¥ž`>>>ËM???øšI==IIIKA<KG+1 OG:P,,333!!!53VS2WWW666]Y6$# %%%9 jf> kkklll; (&uuuvvvxsFxxx<9#{{{(((…M===,Ÿ&&---B??ª##ª-...´'!´¬iÈ¿tDDDË^Ôg/,,ÝrÝ‘G>>GGGøÇ˜^HN���htRNS�&((**/88::??JMOUUU\cjooq”››ªªªªªªª¯±±±¿¿¿¿ÄÄÄÆÆÏÏÏÏÏÔÔÖÖââéééééééëëëïïïïïð÷÷÷÷ùùýo‹Á ��îIDATx^½–‡wÛTÆ %•™¶‡ C(˜ 2«-2¤ e”¶È)H€&P¸ÚòÌÞ{wï½7{ï½÷Þ{üÜ'+‘cÉŽ1¾sÞѹ¶ÎOçûžî}¢RjÖ­wQÿJ¼®2 ãÊEßhE¡„>&3€ T­QÓd�:sÀÊžžŽUPâÊ  ®i‘å‹\™ZÔvÍÐÈÜLrpкE‹IÉ Ïü �!ЮÌýg.h†)B€6ª‘ôrÈ¢c:PA°�$‡“éãÒð ÍRó€ÀLìʪ$€O›•›/™�ÀŠrc÷ag�‘¼€Ií‚ÝÒñî{/Ø�?ÕŽæ Š§¥$°;vuÈö vv[FD&eÿ¯m¬uônJÀ¡h¨°âƒÞîÚ´�pD CöW|´«#=�JW�ÁÔ’Óäs JS<.Ôô¸m\ÙøΖ.I’„—“|$mýŸ-rìËc« €ébª¿ööã²¼ è”d€â{T²ebQŽi‰�ª‡Éjÿõ‘o¿ßGFr’÷B/�P@%Kþ|ø¯ŸM�pÉoÞ¤5IðpܲŘk úêSøfß-¤W*’åàu°ŸÂQ…¥¢,oÓcŠ 4­Ûóû/‡=ªaF@rH (¡Ëƒ]ZÛ�˜Ä64óåoG>Wk`R�@'7Áœ{†‡2�’&¦lߢ(j³$�(†¤dÌçu7~—&IÒšÆÍ†iŒÙçyì}ë7w×nïÒz @)«ë:ºk·IP§cŸà2$KFN–Xëøâu|mñP @jMÁ‚ü&ýG�âkw|‡þ[a¾+‹¢8ŽI«{ÞTBžé0´w7DMã]>n_‹o©õég@(õ`EQæ²|ÆylÕë{Ãýdfl°@ÇÎ?V_|.å…qc¾nõÎzਅUC}/÷GÕWØ#¡À¨ ½¶‘nbþ9#«¾0Þ Ë(áP<‚7 ¢’¾"ý‘gæ 5€ZÓàIï[Ok½v” D³£‹(ž ÄæþŒÔñ|Å ^Û¢%KLW˜óù`¨¯ïùÎÎÎþ€å7aYÄþèQ»û#‘HØÈqU  K´‚€¼³5ò؃דœ,€à J=ñ�ìý¼«ªL@ñbƒ°ÿë.ÄÊ ØªÄ?Ö yž?Á¨yÌaÏRiˆ«¶ÝoÔ4OÈçp&&èªLÌp‘"!G@]^ }`ÉØ{ü^N��ãpY=AÙÚ==@@r˜ßËS}¹XÏâÇhfi@•í�Ü{3‡)ÞsÝç0KfO‹‰xœ”K˜mXžñž“&çR‹î=�ðärÓR¼o¯ò»S�P}_ ¦+΀3gÞä À9pà‡Ý¨ôùÊP£Õæw�]<Ó}åûðñ;�mâÓ _íõz«?)cYÖcK gùOl�ùümþÊÈéÙµ¨Ú—äÛ8ʶf£]‘ˆ oRÀݾû;ÁzlÊ-¨$€)S�φÃýðaä¥p{ùe,{<å¬KÏ œÅ㈺“¿Ýﯞ7ùX*ÀdRxÉ5å_³52¯€ø;?3�uÁÞj7EÞIT†ò»Íâü —ÚÕt§%i����IEND®B`‚IMAGE 2291 ./arch/monster/undead/skree/skree.x71 ‰PNG  ��� IHDR���@���@���·ì��ÓPLTE������������� ������ ��� ���$#���&$���(&������53���74 ���<9# ���IF*������PL.VS2���]Y6������jf>���xsF������‡NŒ†Q���’ŒU������ ™]'''jf>’ŒU������ ª¢c���´¬i‡N ���¥ž`¹±k���…M��� ‡N���È¿t���ÉÁu���ÕÌ| ™]���ÜÒ€74 ’ŒUÉÁu������á׃$$$���PL.���“V���,,,���555îä‹���000:::@@@*** ,,,111555PL.UUUðæŒ>>>444;;;<9#'''(((EEE ooottt---´¬iNNN$$$??? ###xsF ™]á׃VVVZ99___hhhjf>jjj+++yyy<<<Œ,, ¨$$ÅBGGGOOOÿ¥�PPPTTT<VS2-WWW%%%[[[\\\]Y6cccdddf66(&AAAC??r22CCC"""xxxF>>666€//…J>=’ŒUJJJ¡š^¡›_¢?#¢œ`K@<¨V!²""²TLI3µ®p¸,¹±kMMMÈ¿tɤÉÁu܆ÜÒ€74 åy é߈í©OH:ñºøÇüÏ�±žhY���utRNS�&(((**/88::???MMOUU\cccooqq”››››¢ªªªªªª¯±±±±´¿¿¿¿ÄÄÄÄÆÆÏÏÏÔÔÔÖÖÖâââââééééééééééëïïïïðð÷÷ùùùýýýß (��ZIDATx^­–‡sÜDÆâ„$ÜQÁÁ‘ œ „$@i¡èÀ@08 8µ8ÚS¿ÞϽ×ÔÞ{¡öÞ{ï½—?'íN$îls“oF£íìOúÞ¾÷V®!Å\!]3ÝU¸¼gf‘-Päv‡³Š²õ¢±…¾@RP*_`F5Àúõмó‚ÁàKÏ (§Epm¯Ò/ËÍ…�¼šB$Çb_€ÿyDbpÅÿÛÿ2…h‹� Ãtï¤áF»AÿT*��¸ËM4ŒœàV¾ (€]üïçîŽDó�Â’X2D<ŽœL²/'`M"Ñ¿ ˜AýŸ¢i‘¼€ooèÀɺ|1À êßbÿÅŽŽ õûüýñN†€"€½‰Dg2™lµ ©ßÒÎæ©ýJ�MÓvÊõŠÒÚºv›¡^;@VEr¼Æ¼žû )­Éä&G bú¼(6OíƒQÞûâÇ÷Ÿ ¼¶oßGV@-£« ÑH¦ŒÏ•û=¸~Ùë/õóß_>‘Ùw¡¦œìК¬òX¯ L®ÚïjÜÿ¾ý㟿v­ aê¥^–@=â®Ä-îØð0_’«öEÃÿŸû÷ÿ¶‹ÄAÕ ÿ&À  çsÕ~—Ø"éù÷ùž=Ÿ®Ã{½”èdIRðZÊs\1ú¢ov<åsøO·Iþ¼³cÇŠPÛ{š1'ˆ‚«`ú·±;ûTÞá¤P»bÕv9 V…¶7jœq&ÀÙûíɶÇ”1 ’gy�a)0Þ+6H¢(~ý¢> À¶UiB+#¹u�ûŸ‘!Þoüˆ„`ëAZȲ<dT5Ò¸2²wí&ya9í^¯ÛjA Ê�ЖJ­�MëD2©¬ p^JlSDÖ´Î$€€Æ{`iûæîÕÝ¿Q-S%¾›|VÅ*½öÝ' hJƒú– �,jŠ?¹bÅF ª9Ç[F¿iÏÕσQìB8Ô¨fÔ˧�s†°»­í»ß¢‡x¾Ü ÐÒ)÷XÚø…÷ ZWK³wX�ñõYà6<PÏaŸ1t ˜€ÍÝÝ?¬njz MaJ @ß3äýÀ‘ÚÃ8€*UmL¸ä³O>¾ŸÕÅC;žž ôÏÍ%>)!C¾Šªfй±·Þróu¤ÞëГX”àýž³� œ•íq²·6òÀðt¯M€¤Xã2@¸ÉX1FºJ†¸ñ,Ük;@\föC'�ûBm9OâÑ#Iáë?S=öü�êרþ™H)� ÿLéöü�ôKrÀÚ+« €ŒƒØ'kÊó0€wôJ¨ãy:6ÎDŒ‘`Òì�Z®Ösôè�Ìà*IÎÛÏJ;€c˜Ñ9�ÔkËNuúçÔ¾Ùl€¹^/` ˜:Ôã9ý[>™HpÄ•c?=¤7X¤8bD�L¥ 0Ów°G,¯¥žGsµƒp`F–Í_TQQqõóáM¯�í‰5,K�sÆÞGàç/žír9õ¿ÿövÀÈÃ]c³æ­+ó†÷Rý‘/å×gì€2¿ËWayF�¤çÇbK¸Ë|—–ŽqÀ ¾‰Àµ³&ê�§+)€Ò–߀ß~Ô‰ÿôi.;àÕX~ÞȲYÓhœR¿�ü·ÑžÈ?ØŒ´‹=ÏÉ×»œrƒËàüÑþ‰ÆúcS‹ýwðü}©Tk–-9УSÔoœÆ¥,•*%wPÌ N(--=.@ ´ÝF‹8Íœ¿ºé´ñ®áhË^p.˲´–ŸmÜ|‹ÎÇþQ¸ÈŽ ÀfQx¿n¢�����IEND®B`‚IMAGE 2217 ./arch/monster/undead/skree/skree.x72 ‰PNG  ��� IHDR���@���@���·ì��ÁPLTE���������������� ������ ��� ����$#������(&���������74 ���74 <9#���IF*������PL.VS2���]Y6���<9#id=���jf>���xsF<9#������‡NŒ†Q������ ™]jf>���������´¬i (&���¹±k���������xsFÈ¿t���ÉÁu������ÜÒ€74 d_:’ŒU¥ž` ���$$$74 á׃������'''’ŒUé߈���,,,´¬i���îä‹���@@@***000:::111 OOOUUU´¬iðæŒÜÒ€EEE444<9#<<<>>>'''PL.,,,oooyyy KKK###%%%???AAABBBC??CCC...JJJ ™] """555Z99dddf66lll$$$888Œ†Q;;;¨$$ ¸1(((åy ÿ×�jf>NNN�R<:RRRSSSTTT74 VS2VVVXXX[[[\\\]Y6_33___b66999ie=&&&jjj('qqqr22tttwS.w^.yV-yc-{{{ …M‡NˆƒV+++—‘^¢?#¢G#-+---¹±kÈ¿tÓgÕÌ|IF*åš íˆí­ÿ±�333ÂÉÂ���mtRNS�&(**/8::??????MMOOUUU\ccccoooqqq”›ªªªª¯±±±¿¿¿¿¿ÄÄÄÆÏÔÔÔÔÖÖâéééééééëïïïïðð÷÷÷÷ùùùýýÆ€g��*IDATx^­—‡“ÛTÆ $pH¸ËÑBáJBG’óÁÈPÈ¡ „²OÕ½_ï5½÷^è½÷Þ{ïí¯`å'!ù°|œ'ߌGcÍìïéÛÝ÷´rŒ¤Y îåÊÅjË.T)PR %»…3.À�A‰žâÖçü¢, ˜0%’‰uÅJ¦Äy¼»›´ªj �"T_D"à)Âÿí›(àû½ o­½=ž¼ �Áàb–­øß€#œÇŸ#†D  €'ÕÈ=á„ÀFbäjä|0óä¿wØ�°/úøúâk ³4%C¾°ÿyBÌðú»Ý­å û— ±€@ºžà ûo!†Ötu½ô_À@Æö|ò5AIŠR@<ñLOÏÛ‰D. (©¯´“?¾@áÕÝ„¬Ìd¶uSå�”0t¶ €�­ÿ%¬B¢§'N4­Ze€ŠWÀ¬ù�ÛµþU¿3ñøk95­QyƒŸ)ÉçãA&«·~øþ‹¡¡hn¸i´Bâàʧ3oã@ˆ®~tß¿í!혇–‚? `ôÉ$Ó3°t¡@ï[÷:„�-bˆàÏ`! XáÉë?,÷‰X¿~ÿë§o6gó°¨4bNåN¸–«G@Xn‰o‹ïôäõOW$ï8ðõ;xÝÑš‚ÕþP(°˜u²Zuº‰èÉã?H{?^Þ³g3Y®ªm`QXmí Ãäêü�ê =›¢µV"Š¢�•œ½g @oª^7Y¿ü<`¬,kêC@߆VYÞ¸7?€¹¸Ÿ’›vìz¨þì'ñ‡™ëi�H’Ú#ñç·Hs§éqì$óø6›¦7Õ ºð~ׄ0':ÉÚÄÿæ‹–þpäv" _%“»ž¤ÁÜdؾîãøŠ€¶÷Ëg€‚û@”¬� 0.ÐIˆ”b½Jêþ¹šjXŽ~1fT ¡¢AGÖ1°ÔSfî�a¬ûý½O¥ÓÙõ—ð|% ðÜ–M–c|¿,S Rß%ÎR�€Bï©õ ½‘ûà” ÞãÇ7è>Kþzí-@ù¦ŒöFŒÎ-£€ò‹ÂXÆiò›�{°ãǟׯ¿B«÷µú»sK<¼õô9+h>Š»Æ�Lº-¾})57›‹…Ùk¥ÙòB”Œ<p§á;à¡W³åB¬y1G¡oz&R¿¹t8@%?“U™°ÎƒóÑ3§€+/ÀZçB›Ìó0PRM=ªçÑ#ZÓ¼Zg¦ó<4VϦÌÜXg&Üʶ�ôo  3cA€ÑóãϰÌIÕ0ab“$Åì�õ‹‘Ðp¢Ëuö 9s²¿ÖÈÒý<_k@š hû¡ŽÍíjÐ ØÂÑ>x¶ù¼‰Ç왺g+€¹ úæV�T\–ÝûºÝî9Óuÿz_= ¯Kó¦k¯éŸÏW5Öå:A‹Þ’Á¨€åžÝÈçNṘ àÀîDZ^ïõhN&¿å*‹¸RÞººº›>EÒscÝ.Ú'ôL¤sÃpç«réºúŸoQí0Àå'ùªÜ>ë<a÷1æ2ûÁ èÀ`ÀBaÀù‡";ý‹³çTÑ<]WpL·”À]´GÆOÍžàÍ¿3ŠÏ?AOÒ§iëO}Àç»™çïK¥Gþ•¼)šïh�åÌɧžÂ0L‰ðÒ<Ü™¼ÿ¡™Óõ~¹¤ÖQ¼p:^ àœÎ P”¡7 ����IEND®B`‚IMAGE 2146 ./arch/monster/undead/skree/skree.x73 ‰PNG  ��� IHDR���@���@���·ì��»PLTE������������� ��������� ���  ���$#���&$���(&-+���53���74 ���<9#74 ���������PL.<9#VS2���������id=���������jf>���Œ†Q���’ŒU��� ™]'''(&jf>������™’Y���´¬i(&���¹±k������ ‡N���ÉÁu���������ÜÒ€<9# ÉÁu74 ��� ���á׃$$$-+������é߈ÜÒ€'''���FC(������000:::@@@ðæŒ***,,,PL. AAAOOO 111444555 '''EEEUUUoooÜÒ€<<<²"" fffttt74 CCCJJJNNN###$$$S;;TTT777\88cccddd888id=jjj???yyy‡NŒ,,Œ†Q•)) ™]¥ž`ËM;;;>>>øšGGGI==III/,,KA<KG+OG:1 P,, 33353VS2WWW!!!]Y6666$#jf>9 kkklll%%%; uuuvvvxsFxxx{{{<9#…M(&===((( Ÿ&&,ª##ª-B??´'!´¬iÈ¿t---Ë^ÔgDDDÝrÝ‘...G>>øÇ_ Ûe���htRNS�&((**/88::??JMOUUU\cjooq”››ªªªªªªª¯±±±¿¿¿¿ÄÄÄÆÆÏÏÏÏÏÔÔÖÖââéééééééëëëïïïïïð÷÷÷÷ùùýo‹Á ��îIDATx^¥Ö‡wÛTp•¤%•™¶… @(˜ 2³ CÚPF)En@_(¼ÚòÎÞ³{ï½7sï½÷Þ{|ï½Q*;Šâ žstr,ÿ¬çæê•™l¹÷Ž«ßáxž×-É/0†-—£ÑºÈÝlŽ?€P £ÎÐópå°¶½»{…_€»HU›WoÛfø°ÿô%MŸÞì`A3Òß"û�¸éZŸ ÄAŽÍ üëþxýv�ä¸\Áó쨱ìɤ¿@ 0g³4£Ø¼¼¼Ép™É¾—ܪ5}á¬Õ"e=Æò³T,îlïªS£ÂˆýO‹Fû§~w/}ð~{ÿˆ�uÊwít ¶ï:8Z`ÓÒá€TÝ2²©®¥-v C{R оë“ÅîEŒÇâúJ%P‡L*å�²  Y¨xy¢8KV¥§È;u+ÒöÁd@àp£V/z�§”ôªêÓï½eé«i¨ h=Ym~x½¡^ß_ t„íûñûçëÛ®1ð €d¿%ÿZýe€6ðëÿ~£ê äp�°8¯þUd¯7ÿ½ï;žy·ê“GèLÐ’ D1€€ÒhlÚü(pžý;:ôÛŸ{Ö5.h°²FU£ÅŒˆõº·é�QÈxêèÑ?¾Æ¿‡ñµå‡ŽX%[>25 <²pá{ʲm l!ä ÐÐh(J#?lܸŽÎb%®h4XMiÒ5­‡7@û)xhV6PÖ¤ºÚ·X–PÄs;R]›×? ØsƒŸä`<�4²-�†§5ð}òZr{Â2¢4ZìÞ» &âÚÛÝ«”¸$Š “ÃÍ„\‡¿nH@l!÷zgbï›5ÂySz±o°X1P!ÃËÏé¼½ÌÙ7é@| îûÈWzCçë=ËjncDX´sU[Ú/®„ø¯FeÚ{ Ë–B&€ûžè¡ÝDº@jÆZðœ`W†!@}R‡zÅî_€€ò‹·< äp7ÅDL¹€ìûmûpäÙ@^Ï™FÆÎõ-ÎU‘!e�­­­/öô,ƒ‡¤Bû«Ê®™7oåEÇ€* ×)H˜¦¹°+ÓîÎfqöг.@úÝøÚæÖÏDй€hUI^€¹ð†g÷ÓÏÏ)³š« pF¤ \§w&ÀKÒì/Ñ}r‚$aG†'ëÀ8á=�Ï<éšpf¢X˜hJz™}i¸)C˜¥[^� ùL÷„r?DÚ*Ùœ¬€ûvuÎa8O@"ÏýüÐDûwò°€ñ�&MYžÏŸSrnpíO÷„Põ4`>Ϧ뽸6“?þ$ìïTr¹'2ùãÈÑ: Y ™=�#%a&D,Èán^„ÀÜP¨Ý?À¹0<pËÔ3]�M@„¹ŸÕƒÁk?#‚ºXù%|xenÉÔ‹KéLp}G¨v6ÃäžnV‡ï” ‡ä–À5§†Ïœ‰. ˆJ‰iQÎ Ð$ÂŒÀÄ ¨.Ê÷”@냡û¼�š3.õxãxA¸ìranâóSèL$^9nüŒÚpø.é¾€ñ¦¤ýç“u*šan½®Ð0ŽÞ+LImðŠ ßA ì¢}ÿ�ÔßÔW ?4����IEND®B`‚IMAGE 773 ./arch/monster/undead/skree/skree_claw.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��MPLTE������������������������������������������������������ ���������������� ����������������������¯¯����74 éé�’ŒU¥ž`���´¬iðæŒÜÒ€ýü á׃ ***000:::<9# ™] õî]óëkôíaûø# @@@IF*KG+OOPL.UU�]Y6ªª�»¹#ËÈ#'''(((âÙ„âÝFåâ*æä çáUèç ðæˆ ðçƒðç„ñçñè€òêt,,,óëlóìi---�õïWøó>øô:úö.555666J*ä���,tRNS�(*/8:?MOUco”›¢ª±±¿ÄÄÆÏÔÖééïïð÷ù{Ci��;IDATx^ÕWOAFG…QÑEì(Џ‚xg¶Ñ{·÷Þ{/ÿÿÑìàŠY_L<o“s2_rÑÿ¢[h‚È.Œ±�jT–žbýØÞÀ‰§T–ñ» H©|ä@)½)±½ÝŸÃô¿È%’[;q%ÊÎ ¯/§CΦï)ñ¡<îKébô(»VKeU]›´í§’Êr8”qªÛbc ¿X‹H†®PÍЗÕç£9xü`"Æ8Wo·…y~›Û\Èò!ã”Ï€èZXgud8<A2c˜ 1\åþá„È9.Œú|Þ1ÄßYYî벋®>Qt¡hsÂ̯"¶¶A–_Ò2г탌×Ê“iª1-3Ðkå‡7͆½¾O­ÈrHl³¯C%Ddžþ”OZéF£mF”����IEND®B`‚IMAGE 566 ./arch/monster/undead/skull.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���œPLTE”ÿÿ­­­„„„���µµµŒŒŒccc½½½ÆÆÆÎÎÎÖÖÖÞÞÞïïœ)”””{{{½½Æssskkk¥¥¥çççBBB÷÷÷JJJZZc!!!””œ)))999JJRRRRZZZkkc))111111911B919!!1!){{„„{„œœ¥9BJZRR1)!1)19­×«���tRNS�@æØf��HIDATxÚ½ÑÇrƒ@EQº'G2rpÎÿÿoÉV•äË—å;5½ ùÓü¥ßfT†\%>KAH­1JŠ© ktB)cêºÖZQ?œ2µµ³Ù̆À(è�.ÉÔÇ åÆ�ݘÙó ie‘VR×a;g5M÷1(SG•±ß¢V²òØÍ‚R*•6ZZ þ'¸_•ˆªª: �C Þ_Ö›’Aà 2ìŒ7C|ãæÖ/ XGÌxOo$‰À‡o–LΗsΚ²œßõa…ßt•¥ŒU¼á 2ý%£”„ù<dœ¥THY9›�Ò¥¬k JÑyîwÉ„ëG,$†¯œî‰ è rÜ`›L#Ý“CÚ·¤ %×"<C‹éö«`½Ågj•Í#Ym]# ²z Eû˜ö„$ÿÝ'§—3:¦…����IEND®B`‚IMAGE 678 ./arch/monster/undead/skull.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���üPLTE”ÿÿ„„„ŒŒŒ���œœœ­­­µµµ½½½ÆÆÆÎÎÎÖÖÖÞÞÞïïï)kkksss½¥¥{{{½½Æ¥¥¥”””JJJçççccc÷÷÷BBB””œJJRZZZ½œœRRRµ��¥Œ”))1ÆBBkkcÿ��!!1œœ¥µBBµ­­999{ZZ{cc½µµ9BJ{{„„RRÆZZÆ¥¥Æ­­„{„!)Ö{{Ö­­ÖÆÆŒ!­BB)19s))!1””cc”ŒŒ!!!11B­{{­¥¥kR)))R111Zœ!!œ”œZRRŒRR¥„„119ZZc*Ù¿���tRNS�@æØf��XIDATx^ÍÏÅRí@†Qv»ÆýøÁÝݹîöþïBªèf î—ῪweîM³O½6Ê„‹Ó‰3Ê…RZk)xWà.¥ÖEQ(%YGàQ© cªª2.jÛ„ˆ*ž™/pÞ’´¨ÌÃE³Æëa– U˜j–‘,[òA&µy…©õÀôßNPÎRiÅ9K{Ï^î�dm8n9!£(šüôÀÕöh èÇü^Ä…\;9ž¿œø7þ¾³ŸÃý‹ãß�ñƧÅñWìÿç…­×Ñéêõê.ªƒÍó³ïn÷…ä©9xÿçCY—·ÑÛ[%ÕR ê�Ià<.QƸà4Ži‚^�åMȘÖ*Iì´sÁæ( ¿A(À}Û»' °»J@ㆮ(c0À€õšÙÞ£XaFšÄÛ½#ýâòø÷¹¼½M¾,a<÷ßu:ps†,­����IEND®B`‚IMAGE 336 ./arch/monster/undead/skull_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���9��999U��UUUqqqª��ÿ��ŽŽŽªªªÆÆÆâââÿÿÿÓ£ý ���tRNS�@æØf���ÎIDATxÚ­’ËÂ0 YÀ¸Ðmüÿ‹CD¶TâÀ\ºGv«øòG̃W®‡*�FBDÅó}Sfñ•Àò=]<zœÔ B‚2!a„304® ,£ú,aü›¾ATZEYÂl¨ø›,ÁÇãŽ:Jy'¼^Ï&(ÿ ü8Â8þÈBÝÅè7Ç—Åž%$ŸÖÑÚ¯òELd,Yñ¶z,…´ÝN†{@û­íDÍ? 9†åDø´°G á D-´§Î%˜eÁX¿„„–Â4e:„Îß%Š) cPü����IEND®B`‚IMAGE 328 ./arch/weapon/artifact/skullcleav.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE÷½ï���1!Jµ!!ÞJJÿÿÿ9)RZJk„„Œ„B9RŒ„”ŒŒ””Œ”„{„9)JJBcJ9ZB�œc9¥{R½R9s”sÎQ‘It���tRNS�@æØf���±IDATx^µ“Y Ã0 3òš=]ïÔÒ€*¨ƒJ¡çÃȃý"ãîg€N¬p°Ž~ïõP™jó8¨®㌠L% ˜Ðä2aœVÁ‘õôÚ‚Z²ì@J d'MÁ²©žC…m9pÙF¨ÅL° î_ø}h;é:i}çz¬f Â]zÜûŽW°B 1\è,CC“¡Å2(Êpö§ ÁÏ@ Á AŒŽ`ç+Œ°?R­ Æ����IEND®B`‚IMAGE 342 ./arch/weapon/artifact/skullcleav.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE÷½ï���1!Jµ!!ÞJJÿÿÿ9)RZJk„„„ŒJBcJ9ZB9R9)J„{„”Œ”Œ„”ŒŒ”B�œc9¥{R½çÞ�R9s”sÎD@cÏ���tRNS�@æØf���¼IDATx^µ“I Ã@ S=›×ìËÿØ:(Ø’²ƒº‘Ú|ø°¼ðAÇ^¢ƒ~-bŠ× Nçiq°èÓù´:¸´*pÃTÛo0Î’p$ÍãÚ‚¾UPJµ-)8UÒC¢ØcgÕáˆd P0=¬j#´vlò »_±»‡¸ÉLGܤïgêðZ¼m^êØ¼ï|×#äts%â"!CÄ38ÉpÝ1¤½ i;9¥Íä¼aðç+Þ,ÆÅŒu����IEND®B`‚IMAGE 346 ./arch/weapon/artifact/skullcleav.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE÷½ï���1!Jµ!!ÞJJçÞ�9)RÿÿÿZJk„{„„„ŒŒ„”ŒŒ””Œ”9)JB9RJ9ZJBc„c9¥{R½R9s”sÎB�œCÊÈ ���tRNS�@æØf���ÀIDATx^µ“é à „;ã™ûèõþoZjÐ¥lP í$?dçs¬äò3y!…Ç« ô¥ˆ÷B`–L ûË0côLF�ú8B¬3IˆHÎki>zÒ%$„lGú˜S ÛüQCHÏAû­û�œso�Hk¤]é–*Ãq%Có+šsГ´ØO&)sÇÝìš¾m<¸£zßöˆ¯k®âhI-•AK2ˆþ’áÙ�L+ƒ©g€5¦ÖV�ùq¾Ò Õ"åL)t����IEND®B`‚IMAGE 345 ./arch/weapon/artifact/skullcleav.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE÷½ï���1!JZJkµ!!ÞJJçÞ�9)Rÿÿÿ„„Œ„”Œ”B9RJ9ZŒ„”JBc9)JŒŒ”„{„c9¥R9sB�œ”sÎ{R½£K���tRNS�@æØf���¿IDATx^µ“Ù®ƒ0 ;'+tïÝþÿO+£Z ªÔ;ð�ÎÈ98âð1`}Øü:Ëí ¦^¤Ë“/§Õ`]?]ŽÝàŠ`#€J¸c η,aHùvî-˜B‘²$¨µ‚Ú[ k ×¢µ]j”ëc+ä¼,BίÂBÛB½ƒË ¾ƒeÅîü$3~’6w¾ãŒÕüió«™áy§?°‚‡¿8 ° —ÁcŒÉð³#Ľ qœã0) ûqÞâ ÿkÝ¢MÃ����IEND®B`‚IMAGE 84 ./arch/misc/sky/sky.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE1Ø(CA‘��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 174 ./arch/ground/sky/sky.x11 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs��*��*Ðp���tIMEÙ %0°1Ææ���.IDATXÃíÎA��°£)‰á³%Xevó¨óL@@@@@@@@@@@@@@à�ÓIçäz|����IEND®B`‚IMAGE 573 ./arch/floor/slate_b.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��öIDATÁA¢Ü6 DA^*¦”­ÑÚŠÝð6óÇ÷¿CªÖ7£L¤mÌ s Ý ½~†~Ð4‡øÀñî¬á‚ [ÃÄ1½J'V–LIÕpªŽc«d‰äy¾»/!ÿö•s´¡¶‡ê,Þp^ŸŸ÷”«*ÕWÂ×ú|Z>>Îá=õùч £½Ü;v:Âñ+‘à±_™5‰í�ષ )ÛíX°ÀRŽý©‚\D¹XùÁul»¶Ý­£‹äèë‹$A[ :˜ÒƦþ¹Ö€JDGà»´S[®R}ôÉC«¬RIU ¼þ½¶üãÄûB[/.© !«uŽ#y‹Bµý±eÇ"™^üzß÷”«jkÿ.~dÙ_—Òk×{,¨ºj—eŽ´+{VI§ýÚµ÷I\ÊH\Úx)Òîë—j™`rpæ»°ui+7z•Ð;$ã¬.B ëxúiâsxènX-ª@Âq?3~ì¤ÿ}šžå¨Òþ‰3L:“ë~únüxu±[ÚªXIý7~šûî!Y:w…àwî¾™?ñ·—hC¹iÇ’Žn˜?mÓk‚/õüýÈ—‰Ì Øé^rÁäõ\¥¸„'ŸL¯(&‘c+z O÷,‡Ä“|DZeÓÓ9“~²è áKÛUÐLKIˆÿæþ*pÈ«g����IEND®B`‚IMAGE 508 ./arch/floor/slate_r.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���$PLTE¸""º""º$$¾**¿++À++Ã22Æ22Ç33Ê::Ê==Ê??µèÚE��“IDATÁAnÓPЇÄqÉцDþ4ꌟík`„jË‘¹L+?û¦"G®Ø@Å<¨lÝqŽ=M‡ -·ø‰m]Øß¢®Bˆ#n/&Ø”EdÓ,ŸÇ’­h,©.ó[yp¨1®¾‚Þßoºˆõ!µVz7vßûy:ãÎ~×ã¨}wýœ{/£ K Ní!ÎÂÙm–è¯6è5ÈaðÔ}Žæ 3;‚¼’ÖjÊÈ1ÂÎ�ZxÉéï3Ø„À 1,Ùge4àúÓ/’‡h¯³£„˜Å’!9iu'Ü!¤å£KÐÉ>vÝ&_Çü3yìéƒ-:G¾X¸ï……ðÎBùÏÖ¯Ôï“#Fqñ"-1‘,7®_FbyYÒ‰Ù ü-M­®(X a÷àOVõΔ€ø¤inç—ÍŠ­ÝÄ:&q˜¾©Ù®&оqÇêòA -6u«™ƒ_V'63Ûïþ±^’[P*fÕxXT@Æùñdè¢|ðžv&j>ÎrGµk ­óœÛ>UKÈõS«Y·p8Û����IEND®B`‚IMAGE 469 ./arch/floor/slate_w.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��ŽIDATÁ±a1 Ä@õ_ÂS ± Áää=sž‹k€†ˆ\Ø Ü@Î[؆�(:0V8KAA±¬*«Ã`T<HèÀt*€&oR€bûµ3t¹t<ŒÌ8 ÎLÛºéXçû‚ãè0Óߤ`†:¦T#¨(® 9«ª�Ø=-ØjTà€@õë†]ìÄâø�±GµK†B‡‚ó�€ M¡ô¯€³@ƒ `C5%ÚC€þøBKÓÐ à¹UøT*(ZO˜Q° ¡ËOQÝ~33mwÕÍCôÙ(æTÏtWW‹ Õ wOÃtàW]5j´�EáA¨Ô.aAD¦Ýw¡‹Â ƒ’¨¢«'4ÈÜ$è ! œ@7�j²»òTs²Gi�ê©Ë×ºÉ Æ“¦E+š%špo=�ñ¶ˆ¢¸¹ìêËmˆº¢‘ »QrV,†ì߇¡Däjr\ Öq«Y€×ÏÍY�EQÅHÜd¢®¾UE€ÍÆYYùƒG´ÂFýh§’G–Áð����IEND®B`‚IMAGE 189 ./arch/monster/humanoid/Arabic/slave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ðæŒ���ÿÿÿ]Bkï���tRNS�@æØf���\IDATxÚÕ1�! à Îÿß|1· °€ÅQ•²„›‡ÞÛf4a!†´:Ð8Pz¶¤( ˆÊ£�¢üwG›ÄÛV·§dõ.Ÿ 9 (UFÈAI8Ï{|»[„ñ ����IEND®B`‚IMAGE 168 ./arch/system/mood_floors/sleep_floor.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷½ïÎŒ�Ǽa¨���tRNS�@æØf���PIDAT×c`À,,€Ä;Æì Ì Œ L 6@‰ì@DØ7€ `À'Þ=ÀÀ(¨ÀÀ,8Sᢠ˜ ”˜{]-�o¶ Ë€iÐ����IEND®B`‚IMAGE 182 ./arch/wall/slevel/slevel_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���YIDATxÚÝQA� Rþÿè6Q3¥S‡`éAP¶LÝ“2XtÔ/Ò 2‰‘ü+x|rÜmð¨äŠWìà ò7±‘:…’ƒã ÊŸ¡qGQÄ hK‰…íA7Ûio����IEND®B`‚IMAGE 174 ./arch/wall/slevel/slevel_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���QIDATxÚÝŽQ � Cs÷?tRPÄÑ—Ð5œ$DùÓñ‰Ú¾L ˆ$Áú;èkïà|Ø•|8J¢qÔƒØèPl¯¡Ä èý© ˜ãÏ|^BA����IEND®B`‚IMAGE 164 ./arch/wall/slevel/slevel_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÿÆ÷¥†šU���tRNSÿ�å·0J���KIDATxÚíŽA � ÃÌÿ?-;ˆÂdQ¼Úàe­Ýš yG1ªˆ/dAEVLû€7°’õo€ûTdbZ#ÿ™†6<ÜPú4i0Áª¿AÙ™×Û����IEND®B`‚IMAGE 148 ./arch/wall/slevel/slevel_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���ÿÆ÷¥†šU���tRNSÿ�å·0J���;IDAT[c``ÿÿŸ!4H€YZËa,*‰-`�®U«B€A ÈÒ³VÁĘ@,U‹ .¦b��Î¥>Þ–eñ����IEND®B`‚IMAGE 157 ./arch/wall/slevel/slevel_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���@IDAT8c` ˜`üʘ rL¸•0⳪• ¢+Fa`BH–à @U@” Œ¨n ÃÊÝÀ0ê†Q7ÐÙ � ¦å¸]ž����IEND®B`‚IMAGE 139 ./arch/wall/slevel/slevel_5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���.IDATÓc```ÐZµjAƒ’’±H.ÂÑÑQd ¬.ÒI„šŽ!¤�"«ZSdXŠ����IEND®B`‚IMAGE 144 ./arch/wall/slevel/slevel_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���3IDAT8c` ˜`¢”1áVÂH„…LH°ƒ1²82Ù ä™0ê†Q7 17��LC°F¿w����IEND®B`‚IMAGE 115 ./arch/wall/slevel/slevel_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���ÿÆ÷¥†šU���tRNSÿ�å·0J���IDATc``ÿÿŸ!4H€YZËa¬Á!�qiLN‹€;����IEND®B`‚IMAGE 162 ./arch/wall/slevel/slevel_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���EIDATxÚí‘1 �0Õÿ?ZÈOnØ%ᬬ‚žíBBz‚ž‚ß)j¥ÄØòLˆOX_Ó'Øçgûñz ¹L@5Q²qa|ls����IEND®B`‚IMAGE 157 ./arch/wall/slevel/slevel_9.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���@IDATÓcX : ŒE è"Š „ÕÀE:‰PC®0)0t€ACƒÀD:`" "58u)1 D`��…$|WÔ¬éï����IEND®B`‚IMAGE 127 ./arch/wall/slevel/slevel_A.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���"IDAT•cd€Fƒ ·\ñª`Àmï€1”h&³ �S{ áx´‘����IEND®B`‚IMAGE 115 ./arch/wall/slevel/slevel_B.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���ÿÆ÷¥†šU���tRNSÿ�å·0J���IDAT[cüÏÀÀÀH;‚D¬¡$³@z8ë³»k@ ����IEND®B`‚IMAGE 139 ./arch/wall/slevel/slevel_C.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���.IDATÓc`€(``‚�˜ˆ"T„¡ª’Ia,è€2ÁE:1D:†´�̦ƒIq&x����IEND®B`‚IMAGE 126 ./arch/wall/slevel/slevel_D.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���!IDATÓcX : ŒE è"Š „ÕÀE:‰P3”D�?Dž#ÂuËã����IEND®B`‚IMAGE 117 ./arch/wall/slevel/slevel_E.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����1�ÿÆ÷Ã[l���tRNSÿÿ�×Ê A���IDATWcd€Fƒ ·\ñª‘Â��{ú©—ñ����IEND®B`‚IMAGE 97 ./arch/wall/slevel/slevel_F.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÆ÷§›@���tRNS�@æØf��� IDATc`Ü��� �"# ³����IEND®B`‚IMAGE 157 ./arch/misc/slicingknife.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��)d3aaa R-¢¢¢¿¿¿���¿‰j���tRNS�@æØf���6IDATxÚíʱ � ÄÀ‚÷™:M^¢"n}jîo˜8p%2xF #Xµ@FHúå¡“\ƒ����IEND®B`‚IMAGE 219 ./arch/monster/acid/slime.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�Í�“Éyà���tRNS�@æØf���€IDATxÚÕ’IÃ0 Ä2úÿ£kTô@÷ÞFc9Jž¿#oöê{^nñL0PÃ9J­h >ƒƒ²Ì— o"-âü³…-uoB­x懕nBãô5%�U$LÒ´pŸVÁ¶pà¬V†Ôß{o©£\ õ ý¶Wãù5^¿jVJ ����IEND®B`‚IMAGE 212 ./arch/monster/acid/slime.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�Í�“Éyà���tRNS�@æØf���yIDATxÚÕÑ €0 ÄìýÿG+ÁC;¯ï. Ktõøuñ쓆×þë%Žk Ä‚ù.” 7I ÒZø ! Àò5jÁ2¡{àSJ½xž• ¶S@ä AÓš %~Çøg“¿2$RÔ5ÌÒ vå×Î9Ã~ »����IEND®B`‚IMAGE 208 ./arch/monster/acid/slime.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V.‹W�Í�“Éyà���tRNS�@æØf���uIDATxÚÕ9À@Cþÿè¼–¥÷‰ ŠYq\?LMT"¿§t œq”x1š³CǺà…ê»CkZÖBñähˆŽóaZcû+YEe=Ãx&P50·æaÃFâ~&8änp— ÈWðHžþ¹<?µVN±����IEND®B`‚IMAGE 235 ./arch/monster/acid/slimecrawler/slimecrawler.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@h(`€@€` À `ðÀ€ÿÿÿÿÿÿ4g���tRNS�@æØf���~IDATxÚíÁ !Cgÿÿ;“i ÖÃ^÷©ˆäÐ×ÃÀC®£ ò¿D¦À&OÆ ¨Ì·¨ò™#˜ê1'>ãd´Ôðl�XqÝaœÕš³û|»‡;úàfç`8Ow´¿„Ÿ7Ù`)(vŸ_…éWlÀÅ2öÞ/£gT^š����IEND®B`‚IMAGE 256 ./arch/monster/acid/slimecrawler/slimecrawler.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@h(`€@€` À `ðÀ€ÿÿÿÿÿÿ4g���tRNS�@æØf���“IDATxÚí’˃0 »~þÿwãâˆJ$¸ôÐu¸„Ù Rxýó«ˆÀ °'`ÎÁN ØTM–„«P!t¬ú"T˜Ò±è >ÀUŸD)HX€ùî«Ô G‰,ç~ ú+„q4€Ù¯)Å�ûfy¼ÿ¬r Wë3Áý¹Ú¡}þ<©€ƒspù4ç™,nfO´ú о@*ù(Ê����IEND®B`‚IMAGE 260 ./arch/monster/acid/slimecrawler/slimecrawler.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������@h(`€@€` À `ðÀ€ÿÿÿÿÿÿ4g���tRNS�@æØf���—IDATxÚíÏÁà Ð:qÂÿÿqC …v"•¶ëÂC¬gØþóÕ�?àŽ—�ù&¤ÜÌ3TÒ‘jnÌ�!Õ±D‚Pb D€4Ç Ðƒ#°D•Œñ IJ*æ4•vÈp¬ÜÐJÄ-˜(µ *!ºÓ¾œ@ë2ûµîØö”ñö‹Ö6JOe'r¡é ÌìwCñËn����IEND®B`‚IMAGE 243 ./arch/connect/Casino/slotmachine1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÀ��ÀÀÀÿÿ@@ÿ@�À�ÿÿÿ«@¬@E’���ÊŒz‰���tRNS�@æØf���ƒIDATxÚ½’A €0 £6Õýÿ‡ šm*"Úƒ;L/Úg@ÀBé�ío Ì8w =Iˆ½íAºlñy:¶mŠc­M ¶|¬I�ä H‚;)àð¤€0b.X[ˆ§~q`—ÐÎùodÀ’ $¨� "@‚‚ÀFû“òÑ¡É&\����IEND®B`‚IMAGE 240 ./arch/connect/Casino/slotmachine1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÀ��ÀÀÀÿÿ@@ÿ@�À�ÿÿÿ��ÿ���”­ ���tRNS�@æØf���ƒIDATxÚµ‘Q€ C'2íýOì ‰£XõC}…Зò},Ô üwþ,(_‚q°°î×SŒvšÇ<®#Ÿb„ÕNG ù:ÁŠ®ÀágRð ¡¼€NP”‚dA ±jå Ƹ}e3�Y`$È‚T ª�vPàØSC ÷À>`Ú^:sÿ����IEND®B`‚IMAGE 243 ./arch/connect/Casino/slotmachine2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÀ��ÀÀÀÿÿ@ÿ€€ÿÿÿ��ÿ«@¬���‰x†Ý���tRNS�@æØf���†IDATxÚ½’Ñ Ã o­ûÿ_œ3”êšK)TÄ&/‰ŸAƒ å†üVàFàãe{Á0‚5Y T´|~öY«×m  ¿y\·c¤ý' c €¸Ã)àn…œ.T°!ä*E7;ñÖñü·6"ØÀ\@Á! Œ]!þÉ 4z OêèÁT����IEND®B`‚IMAGE 239 ./arch/connect/Casino/slotmachine2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÀ��ÀÀÀÿÿ@ÿ€€ÿÿÿ«@¬���ˆZJß���tRNS�@æØf���…IDATxÚµÑAà CÑ1¡üû߸ H…!V³hj 1gA<L2¨—$Àߺ&iþêÙ· õcõãÖÚøÚç:Æ5mÌW�ö,@Âe)ºfɃò3€¸”¶`¤Zó"ƒ}|>å)ÀD¶`W€+ >—dBÜ5Lð=Äy†Q .è����IEND®B`‚IMAGE 246 ./arch/connect/Casino/slotmachine3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÿ@@À��ÀÀÀÿÿ@ØÖ@@ÿÿÿÿ«@¬���†f˜À���tRNS�@æØf���†IDATxÚ½’Q Â07Úì:÷¿°.X’MDDh(}Ãä§ö3T¡_ ìß lî¼wß ‚!àÄ‹õ(h-ˆ#·GË#Ö@~[œoÇ@ÞÀ$¸£˜Ž_a hûç‚  20Ü{¯‰ë<ÿ- V‚ AŠ (‚ °]ÁþÉDŒ3ƒK¾®����IEND®B`‚IMAGE 239 ./arch/connect/Casino/slotmachine3.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿÿ@@ÀÀÀÿÿ@ØÖ@@ÿÿÿÿ«@¬���ÍD¼!���tRNS�@æØf���‚IDATxÚµÍQ €0 Ð:WÍýOl‹` ú¡WÆúˆöY  _B�¿ø3¡ý9s>O9Öýv.˜óu n�ä0�w¨TA�¿¦€k€ö�Pi dAøzç¼Î“»]�²ÀÈ‚ª€€*€*\öÔPà>°² 0`¶ðàc����IEND®B`‚IMAGE 434 ./arch/spell/Cone/slow.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ-ŠV���c2�1�cDþ¿Ê��¿¿¿±›B���tRNS�@æØf��BIDATx^=Ï1OAEá£z=‰”ný¼Sâe‹”1Y‰i—EbÿK“Îý6tσ#qÿm"ç+ns«€À²»¸˜Ž?ƒ‹SðÚ}·™³4^y¶¢ ð<’{†¡Ø7O£´d¬NØ›YwOë7{HË´Hè&ª» 0Ï�ÒmAB­$ú.°çM¼Ï`}i# ù¤Ý¨ƒÀÜ3æaþW†ýñ±\˜[ýºˆ\‚³c¾ÞXEeÅïbÛö­qÀ}ûYS3îŽõ ¡I#�pÙ}À]9?…4ñþe îrOþ¤¼O9½rض ›[�Ö "�«ÓTó¦º<'w°vÊ?t;ä›EÔ†õl]І½LÏ %°@@îÎ'÷ S í†"Ö7¿úbÝ]pì�ÔΪ ®¥?ìwn íË����IEND®B`‚IMAGE 433 ./arch/spell/Cone/slow.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ-ŠV���c2�1�cDþ¿Ê��¿¿¿±›B���tRNS�@æØf��AIDATx^M±ŠADß-Ó¹g£Ñ <áÝZ`‡²NÆ“jÜüC9T.pÚ-æêo}ãØ*éâQ` E·£0!L×g—N@ýÄjÔbøbå6:‹vR_äLIëLLãüoþi¼n“>î“k  ÷Õ1°*·BƒnûœäØ”àoÅœ€¦cAò³C/‰1ƒ>y]0Æ]ÃÃWéš&]Òº#tÍ!¡À™×Ì\n͘è'Liñ² ñý¡ê>Û‡¾HÑðx'Õ�5–-Ó=Ѱ ïæ`€Óø‘yØòûâÝãλoÿgVzɶKÜ2ô;2³tàD ÜQf¡í“E€Ýb¨Ë{‡Ùz—¦Gõ¿–Ø÷´§¯mMw¥”kGóÔf †Ûv—ÒvÐôæ³OXl†ðs(�«À$L>Ç?y‰k´×¨ï����IEND®B`‚IMAGE 433 ./arch/spell/Cone/slow.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ-ŠV���c2�1�cDþ¿Ê��¿¿¿±›B���tRNS�@æØf��AIDATÁ±nÛ@DÑ‚€ñê°Q·­o©ˆÊ$VÁ–’ þ…ÛôlÔ=/ˆÄó·9‡l®l’l%¤ç´¾¦×wðéLýh§sÆZ÷Õ¾J²ôÆóŒ I-¤r�è½õïcý �d/Py¾�Û}k ÃÖ $I†è Àû®'TÛÜf2Þ²ŸV"n·þô´8û§Åþ! `„ ;†PØu¥’QÇ%[ÿq+¶M[{ôëËl+°¤lH¥èˆä©/D~è…Xßãyf,ÁuŽ_B»§¶ûQH*]¤Tº`Xˆkã È ¡òd/ÄTŒÞ–Ø’”’$I¢þÝøüÝ>®³ÂWßiHŽˆ/ç²/@ücœ.þšÀ eÈ]*!ĵí÷õe¨à¸2�â@$‘�àÿmrŽö®\����IEND®B`‚IMAGE 396 ./arch/monster/giant/slug/slug.x31 ‰PNG  ��� IHDR���@��� ���•C޶���*PLTE�������1��c�-ŠVc2cDŸQ,¯/_±!!¿¿¿Í…?ùq @L ���tRNS�@æØf��IDATxÚí”ënà FgׯÐÚïÿºÃ¸êHÄ¥é¤ýÚ"!Á‡"åëŸ'pøµ *¼ûPÜ«gðâ}ðV°—œž0óÅݘYsyË/ºq±@­ 8K›jG1Þ ²O‹Y‘?ÖÏöD×�Öâ³Î֣;PÀOæVnGJ˳2€ƒ¥MVo'¤Å(y±‹8ö¼Ü&ëê2TfëPœdx12lˆÄç é-¥Ä07¤™AÍH³à,ƒˆ‰áI&!@Äè%[�o$¢öPÓ‡I»Š$Ø”÷AY%ïDáâÿ1KÖÚˆš$ÇòWŒÈ7b@D¿Õïs Îû2‡ºOÀ7Šóênš§Â����IEND®B`‚IMAGE 365 ./arch/monster/giant/slug/slug.x32 ‰PNG  ��� IHDR���@��� ���•C޶���'PLTE�������1��c�-ŠVc2cDŸQ,¯/_¿¿¿Í…?ùq…ÀÙ���tRNS�@æØf���ôIDATxÚí”ÁŽÃ0Dk× ðÿß[šu¤Ô ¶í¡Ò>EQdÃ0 ”Ë?Í™ï? 8_-à¼ÉAzQ‹‡A-"€‰â·�‹Šú•Š1*¨9ð˜Ó˜í„ôTáÇ€x·v‡­Hê¡9.O»Âb+ó2"Ž ìï°@g:ØÄwÑpÄáÔºlB㪋ճZ€ ‘ÆX„"Û $=³1N÷vˆÕA…&+P¥^®¶Ÿ`åG[ FÙ±Ý"ë6У”P‚hI·mòӽ¾Ò³uI‹§{Í4ˆ† Ò¡h=l¸Ö@+z{<Er­×ÿÕóës<<ÉŽ „����IEND®B`‚IMAGE 395 ./arch/monster/giant/slug/slug.x71 ‰PNG  ��� IHDR���@��� ���•C޶���-PLTE�������1��c�-ŠVc2cDŸQ,¯/_±!!¿¿¿Í…?ùqÿ��d—â���tRNS�@æØf�� IDATxÚí“ݲƒ „LLÒ†¾ÿãBÓΈåg¼97ýt`v¢Þ~\à•oÖ Ài=ïP¹lðaEMDÍÒÕt¹‰6KñPÑü²&·G˜Ä#ä­RbNM�Æúw¼Jø¸C̹µö Ö„E @P!ò‘•ÑHï'O¹¡:ˆ{MjZ3sƒZÌ Šè3ª~´ý3vqê~Ÿ|Mz0 ž©1猩»Úèa™Gúý\�8°#óÏÅk 4Æ~>¬üÆÛ×=`sþEBf¯…=ò§gÞRìÅcG6.G¿c”oÑ )cQ š÷"Ðþ�s*—ß;z?U÷ßMŠìË„ú_ æüÄõ9yZ����IEND®B`‚IMAGE 349 ./arch/monster/giant/slug/slug.x72 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTE�������1��c�-ŠVc2cDŸQ,¯/_Í…?ùqWå5���tRNS�@æØf���çIDATxÚí”ÛjÃ0»ŠNörþÿëÚlR$¿JçÁÆÈ3³ò×?7ƒ¼ÞBNþB`ûZcº´°G6é1`á Ø�=pÜW>“ i‹0çDæû;Û¸ÖBÃMdê$±Wn€)‚I8²í‹€H9=å…±a0¿Z˜Ù�G¼îò‚ïè£(“�|‹²¡ ‘Éä¨rÍc6ÝIµU"\d;û¨œQëö$ž…¢JeVHú»FÁóÑ5Ô†¯¿9ÐþT6¬vú>P¡ZY5ªÚߨù©�‚ìq¾Ò¾IÊ¿Øó ßùc}Ê����IEND®B`‚IMAGE 235 ./arch/monster/giant/slug/slug_slime.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE¦¥›ÛÛÛHüÀ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 5É'^���NIDATÓc` ˆ@hÆÐPƒ55Õ˜ aˆ†† 2Äà"SC¡Ša"Œa¡ ŒÈ©kXX�L Aá ¸í¬¡KP]È Bª/}Ó.{Ž����IEND®B`‚IMAGE 566 ./arch/construct/town/slum1.x11 ‰PNG  ��� IHDR��� ���@���‰ h���sRGB�®Îé���$PLTE������1�-ŠVc2cDŸQ,±!!¿¿¿þ¿ÊÿÿÿT58Z���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  ]Ú��~IDAT8Ë•’Íi1 …7%<ÁÆÕtØ6ö²2 Ó€!, ©ÂÇàæòdyþ 9DÃàñ7’ž$ûv›†i·�ÉP ’EsÐSÄ]²êÞ  Âb Yr9UæÝ¬UvW†,ØBð±®µPe©Ü «�,TÏ`aêqõ(g¬yï… Ršg·„\P–pòàÿ™°‘MÖ°¹dÌb†àΩxë&+%duE {ép°p„2T"w«Íƒ¢w«#Öh pî~.Ü`<Êz‰q`$õÂd¨ÐáA€<£t·¸CþÓƒ#t;�d<;ÀŃÍ özs¬­O¥× ZÚ@]¿{| €j µÞV¦ÂˆÔãë Ðûûó�–¡é N²ŸÀéòSõõÜíWÀJ¿/p*~;ŽœSÅÊ2].RóßhRÃØ³ fÈ–£ö~MZ½KéIÇ,xÔëÒ�Ý»…}ˆj2\E4m–Ê#š«Œ1Øõöa+{ÉÍ{Ý����IEND®B`‚IMAGE 600 ./arch/construct/town/slum2.x11 ‰PNG  ��� IHDR��� ���@���‰ h���sRGB�®Îé���!PLTE������1�-ŠVc2cD±!!¿¿¿þ¿Êÿÿÿúù¼���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ IœCå��£IDAT8ËRKŠÃ0 õÜ`b\|ƒ çÈ&‹î 9C ½…7]ø”óžä2%óaDm9²ôôžÜ$'KÿhiOŸÄªZÍÞ,Y[^á³4Õ„´]ò,#†g4ÃZdx­†0Ìd‘¯V£,Ó³D?_EO­X‚Å3ºdïâÞmä±L ‚Ù½B‹¹§Ï¶T™Åvv#RÏ•Ÿ»eÁ"¨1k¡H%(Šq£Pç@bð \Rp€ùL´¥˜…8„�êºÅ1ˆŸ²Ô}–µÊ.¡DÚÎpNsÀž%Ît¾9ˆ¿Ë´Úr¨}~4æïò’Á7€6€V/P'µ�ŠY`”@Yá”C@-)R4抗5Ïð‡ª aþ?DÆÀê¸Æ<ÆÉÒ(Ø‘5z™Žó —uð2ñö‚@?ÖÑ;£ôc+®£x*6>¶Õá<­Ÿ ç¶ßþüÛɸ>âx=nÛý‘ä2Æ*’ïî?h™F–؃: 4 ¯„8¿r†(éEB97já•s›j]yÈwŒáÊc›ò©<¶ÉÕÿ.ÿy¼¿qÿ%ÊA€ në����IEND®B`‚IMAGE 569 ./arch/construct/town/slum3.x11 ‰PNG  ��� IHDR��� ���@���‰ h���sRGB�®Îé���$PLTE������1�-ŠVc2cD¯/_±!!¿¿¿þ¿Êÿÿÿ¾Xo���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ )e2Ú^��IDAT8Ë’QjÄ0 D}„LQÉi úð5%Ðcö { –\®3’“x¡5IÒx$;ÉÛJ)ýä"&Ò"XÉVÔ".)Y«¹˜eD•F òeP˜Ñ oÕÂŒ¨Í·ÿ««¬A:ļ @ üÜ/ñF°¦¾‹ÇäF5"3L‡Djжû t©B[%|˜[Í]Ôè¡F(þˆx/ˆdà¥y··Df˜r™pbÔ1jTA¾ ã5Â:f2Da¹>S ý\tœ‹Ž] § `áó8Áu.<l`³0õQÞ€‡MÑ;#¼ø…iqP¥å\Æ[ý‘w옗ƒ¾ò9V‚ÅÁq|n� = á5&<ú¨`ÆÇ¾…F�h‹+Fżm€éæyÉ~¯m€ç÷>�r–Pös‹NfQY`#—-8å‡ñØÔr½a'£‚%ý¹_€Ýž­GIíoàè;Á2zÁÔúŸ€—DÎÆ°~ºük"¸^œ����IEND®B`‚IMAGE 307 ./arch/armour/shield/small_shie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE÷µ÷��!!!1��111BBBRRRcccsssŒŒŒœœœ½½½ÎÎÎïïï���-¶S���tRNS�@æØf���±IDATxÚåÒAn1 CÑhhRSËÎÜÿ¶a‘E(¹@Cx÷߯†o߸ã¹Ïy­]sÎä¸ï"€ü%ï{ºKiÑû®„û–0˜ $ÜÁ!‹ãµ¯ÂáÊP)-^@ÂËYÉ`;�HÖ}ýd@Àì�«jž¨ƒ ˆô“áŽl€X½+0É�/\ˆðI?w xî œQÝ Þ‰ÐÏÞDz’ø×ûwqtn½ý¨· 2$bè����IEND®B`‚IMAGE 171 ./arch/misc/smallicecube.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE �ÿÿ¿¿¿ÿÿÿ®,|†���tRNS�@æØf���MIDATxÚí‘1� iùÿŸ5Dâb˜¹µ§% C 4Wª ã;Ì^£D–•€+Èûô*ð1¤Ià&ªMû"Ó[ñ CÀë æoì:����IEND®B`‚IMAGE 1253 ./arch/exit/smallpark.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��gPLTEGÁ<¤3Œ 2‹ 3Ž 5‘ 6” 6“ 5’ 5‘ 5 4 4Ž 6’ 9ž=¦=¥=¤=£8™ 4 4Ž 1… / *q &g 0‚ 5 2‰ 1‰ 1… 0„ 0ƒ / /€ .~ .} -| -{ ,y ,x +v +u *t *r )q )p (n (m 'k 'i &h %f 2ˆ -z ,w *s )o (l %e 6“ 1† 2Š 6” 4 .| ,x ,w +v +t +t -{ . $d $c 7• $bD¾?¹[¾1z¹aC½#a#`6’ :¶8º…¸s­±²E¿#_FÁCÀ¶¯±´A»"^k¼J˜µ‘<½1¹7»DÀ"]"\0¹°'µB¿(µ°²@¾![ ³¯>½@º<¶!Z4 9¼/¸)¶ Y X4Œ !³I½ Qªe[–± W3‹ P­Y]Åb…íVU3Š T¤}c„òT lR¨l`ŠÜSY +¶K¸1V ŒRW B´GÀJ¼%L¶8Ud V ;¡2‡ =· U[ \ 8— >¸W P7— 1„ Aº8² _ L7– 1ƒ QJK:´6°<µ8²PI6• 0 9²7°B¼OH&i :²NFGD½@®7” ,{ %d :B³xéz��9IDAT¥ÁOKTQ�Æáß{9÷œ{CWÙXàè*WAŸ ÐÿÅ dТ´\mÜÕÊ`C†» „h‘ ÖÆ•eeÔ®Ð,$E ËÂÉ›pº#P-zø¡_„êÞchú xOÀN6K]3Mp�24�Î90íoޝH'^«ùSëfsCFúü±M)¢û-ù“X `1! ·¯¯úû©±ÎB@!I ¥&JQS,Bä"0,dY�+˜+<Ì‚,)ƒ¶˜„#üEIÓeÀɃA|¡fXR •E[n e”!bßaIF1z ƤM‰Ô¶$X…P ¶ دw¹qSxƒá©„#e°[X~ %¼‡XBy0Ø&ìåÄ%`wC¾‡P•¡<Ø‚ÆI™p—ØÃ5F “ǘ\…;•Ü(¡ ô\õÞOA¨äÞå€ìÖV¨P0ÌdÂ(ŠcòX{Àa¸r›ë WÉÁ%ö|óÞçÏÌ[Iˆƒ‡Xß(ÌcòãÀ°¤Åü|Aè\@)“)Å"vÇ’Šã(‚»ƒ­bÉ-uUI”·‡v1ŒäaPË$.!5<Ñtÿ¬Ž€rµZ¦Ç‡Ê»q(P=�œs=@ÇÒRZX ì{¶üÜ-]]-¤^P÷r&Žœí^9õê´Et:רÈF13Ô4ÄíÛZxx9à 0Èï&¸Ï5ðì�3ìY__?™ëôkQ»ø?�±Fœ E6É����IEND®B`‚IMAGE 295 ./arch/ground/Stone/smallstone.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEïçŒÞ¥””””c΄9½½½ccc×âkx���ÍIDATÁÁmÛPÀÙ/ê¾\� Æ> x`”»šHÿ-dÆP© £H•5¬~;ˆMx[ºÜ=õó.|9¡o²„]à6ém/xéªGP¾�÷35J“†õpÛá`c£qŠRHk¤T e=�Ö÷3Ãá° šìÄ/¯Ø Q¥�¥ûF¥á¶cý‹4kjÖ{¶²¡Û ê:ù€Š ƒ+ÀÖõö 8¢>ý¼©¯¾|GÓ … ¯òg â�Ä:•4�á ÒüØ¿Ûë¬ò����IEND®B`‚IMAGE 437 ./arch/monster/troll/smallt_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4V�1����-ŠV�c�c2ŸQ,�Ì���cDÒiÙ¤�ÿ�þÖ�íu�±!!¿¿¿3ÜÒ¿���tRNS�@æØf��-IDATx^…‘ n„@ Ck;É�»ýÝÿ²‡þ(‹j)d$¿ &<EÀ5O�Û8t½�”ìÚˆ®X@ál‹Ë´$*Œ=��•‹xÎAêl‚R<X”´|r 23 ¸+£ß±®ÛV‡Iö’D,½±ÒöIð[YeBiÀ:�L7e¯B*°à†Î²pM¼‘ÔÐ1"f'Ù!I¯Û¶’c ˜=ÀÀÍ“!Í/Ió¶Ñ×€öUBºm•rF(‚\`{'êkdš¿–CÅ]ù¾6aକl1 ‡8þ%nÑR@Á8L°˜÷!)B#0†þ�Py$Hß×_€`¶7M‡|v†³Èð¾»þ®'Xö/�Xq5 ®µF€¼°‰z¹Û¾òMÜy T²ü�í&Ü55)Ä����IEND®B`‚IMAGE 428 ./arch/monster/troll/smallt_green.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V����1�-ŠV�c�c2ŸQ,cDÒi�Ì���íu��ÿ�¿¿¿Í…?Ù¤h¥Ž���tRNS�@æØf��'IDATx^mëš„ C'iËEç²ïÿ´›¢ë:J>äÏ9êã+ Có‘à*¬ SÂTàb"ùÑ&À0˜WI¼70)šøzò$‘1©“w°‡ Âp7R¨oq©Óg@‰Š˜ÓAR!!Z×/Ž#î|/#© Àòö˯�|¨Í>‹³ÐG¬ wmKàrƒ s{³W ×¥I˜ŒQûkë2 ÷€å3:�”<ïN(Ó‚M舨¯²û]@m%êOrºJn#´ÖLõɵ]¢•VlPzÏœD/Õ]KINàÄÕ^Ì�E_ç ”ʨ? RJ{Zò¡3Óý¸¡”g{¶*~4Òý4BË”?Žý| £ÿàÙp*ë2ø.¸‹ó_ø0ªë P ^����IEND®B`‚IMAGE 227 ./arch/construct/house/smalltemple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���|IDATxÚÍÒK À P5Ÿû¹MH0Ø ÙtÀ…Îø°åˆÛÜIï ©% © à$µ�+A àâé«@¸„µ¼ç"PÖð¿7ˆ%@«#Ä·á{Á´–I�6™#XiØŠã¹mgà¥?8ô+Pd°½ À.Þ^') ìÖù����IEND®B`‚IMAGE 218 ./arch/construct/house/smalltemple2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���@@@¿¿¿”Sâ ���tRNS�@æØf���mIDATxÚÍ“Á À C]ÔÔÿÿâ¡H›6÷Àƒæ‘öbú ÜáB[C/ ¬°Ð Ü1 À²†³ÀU =‡ÂDô-ˆü@€A |DF+ýÌg¿¦3Aä“_ƒ' yÀ Ô¯ÒÜnõÚ ����IEND®B`‚IMAGE 556 ./arch/monster/troll/smalltroll.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEÿÿÿ„!�k!�B��”1�¥J�µJ����Z�ÖZ¥1�çkÆZ��”)�R���)��ÆJ�­JÆR�R��çk÷{ÖZ�ÆJRB�”J!Z�Z!�Ökk1�ZB�R!�Ök�í [���tRNS�@æØf��qIDATx^•׎Ü0Ù“IåÍ—œþÿ#MY~8r n” ª!“žB¿:À3Fe?9D)ü‰VÌŒ`&DOƒƒ˜Á�@ÔÏs"Ž rº€§‚¨˜‚ñƳªÍèçA>Ã0šjêÁÌû¡y¸ßrgüªƒàucRù ±¯ß´o@à‘b—÷׳¼¾·�ªay¼<nšû3Íû¸ˆf؈Vx{ƒˆÕè~ƒvïöq{œ,SMrc˜‰ŽÂQòÉÆlRpù‚®åK‰…Jef�fP˲,R~Œf¶™µ¼˜Óe¸ß‡¬²P¿j1 …ØÎÇ‚%FkRø$6ÜZfæ“”~ɧÉNùEËÇ8ÏP¤r^}3³B¾’KS„ľM¾^¯[}Á¤ "ìë2¹¯î‘Ï\3Ò6ª,¾nWfOVô³0�³»XuݧuKIôŒ¦c™œ?îß+™S炤¿ÆôO#ýO~“%]îM¥Þ����IEND®B`‚IMAGE 553 ./arch/monster/troll/smalltroll.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���iPLTEÿÿÿ„!�B��k!�”1�µJ�¥J�Z�ÆZ���ÖZ¥1�çk)����R���”)�ÆR�­JÆJ�÷{R��ÖZ�ÆJZ!�çk”J!Z�RB�ÖkÖk�R!�k1�ZB�N�‹���tRNS�@æØf��nIDATx^­‘çŽÞ E¹S)î_ÛšöþÐf£çgÆ#°t×hÆâÏþ³œ1×n‡ìµ™9œ9·ó§ÖŒ*2Ÿ o FÚâ‰Ü¹\Eãƒê„Ç/fºF€;Ãé2M·—¬f=uw"j‹É3‹þüÕ ´Úfb;ÞÞ/òþfãä"R4Çãñbè�fTC³ 4ÞÆ;î¼·ã"–£eÊñú ­e¢™ˆÇ·>"×ÇU#3— î¸B, yÉUˆØÇ!žŠ¯\TŠ*ÌÔz^²®R¾GU­oã E@|L·Û”MVŽ}›@‚‹6 V¿JÇÒ":µ –è²wB UXôšŸ¬<ϱá7TN[šUµpÚ8¡Tšài^Òv¿Ïus‘¯Ü2‰PÚÖ%¥-¥Tì«0{LÖ´Íw¢Ä.èîXB˜cKMiÙæ d˜t#¢ûêkI„O|æ‰ÿk„ÿY¿ÂåJ, ”����IEND®B`‚IMAGE 327 ./arch/shop/smith.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8G$Í…? R-���ï§_��€ÿ×�d3‚B'þž„X���tRNS�@æØf���ËIDATxÚ½’ÁŽÃ D¡x˜¶üÿïvŒTU…„Ãv¶”÷d+@ùKš³ç™­ i+è¡ÇV�ö@çˆ|‘ 8uø‚# ʬF‡ÌC%´.0B„’Íæ„nÂ"�E„»¸,@ž2tÄ<�¹³=[æiaÞ eÀ”J‰å/ïü\¥4ñNg²¦ +ÁÍÂ%/ì)8§‚IË~Å[±Ð¯s'Í=ïçŽfa‹PÍk=>|îµ²Zø¾úã—ßo™ï‡6æ¿Âñ¯y­Ÿ ·1kië����IEND®B`‚IMAGE 315 ./arch/monster/animal/snake.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEïÆ÷�¥��„����ÆÆ�R¥RÿB��Æ�¥)�÷ÆJÿÿ„�c�ÿÿœÿçc�c1ÿ��Bkkÿ„„sç�À_4x���tRNS�@æØf���°IDATx^åKvÄ Sj¾öÌäsÿÃF?o‚½ÏK±QS¨yûÇ4 qeah£•®òÖ}hZø¯è?±ƒýõmä­®þxÿì}¦n¯ßþÃúèç¶ð>“DÃþ’Üú¯×}ßú¾ ¸ì‹A;Ÿ�åȤZ´Oæ­Eq€bíø¨hÁ¶äIx�REql+¸&<…D±Ö¹ÍIH"E$r>ždWOÎ]ñL Ƹ"&¶†o€eˆÕx����IEND®B`‚IMAGE 321 ./arch/monster/animal/snake.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEïÆ÷�¥��„����ÿB�ÆÆ�R¥R�Æ�¥)�ÿÿ„÷ÆJ�c��c1ÿÿœÿçcÿ��Bkkÿ„„sç�†|4;���tRNS�@æØf���¶IDATx^Ռˎà Åð¹—gúšùÿm!Qa=ãBǘð)@áÊÂР©ÎRm4õ¿&ÑBh•¢Yo¦V»¸øâùÓÚ>´Œ&þuèP3R˜qöeåkNË>RXù;°î¹ÝÖ}×Ë 0‘NïÅ |=bvm;àÙ8%÷Œ6l0 @?eFŒ1# º7“ãc6³GÆÏŽÏ¶ïœ™ERHvŒ#=¯8´ÓÇftº½Â:áïð³_ü‹*kë����IEND®B`‚IMAGE 314 ./arch/monster/animal/snake.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEïÆ÷�¥��„����ÆÆ�÷ÆJ�Æ�ÿÿ„¥)�ÿB�R¥Rÿÿœ�c�ÿçcÿ��Bkk�c1ÿ„„sç�/Q×â���tRNS�@æØf���¯IDATxÚÝIƒ0 �;¶³QèöÿÇÖqz@bé¹)`1ƒsùO*P‘#Mh8(2%•D•]ÿRúdˆìxT%•>ݞ)±²õ—»ëAÊl'(Õƒ3Ìxœù«q¾Áê—œ{sŽÿà(Ár“9€Ö‹81w׌ÌÚ™‰‚mŸ04bÚ¸CA¼„¶äOÞ¥ÛþS5¦i$“‹ø{1]ûmúWx³ìzi·Æ����IEND®B`‚IMAGE 522 ./arch/ground/Winter/snow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ÷÷÷ïïï÷÷ÿï÷÷çççïï÷ÞÞÞÞÞ÷çï÷ïïÿçç÷ÞÞïÞç÷ï÷ÿÖÖÖÖÞïÖÖï÷[“+��IDATÁa90P£µô_lÞ·!ЍÌúTƒ¨ÚRˆYO÷ûACcI0Ìpë}~’j‘Y¦™ï?óF÷ÊÎ}2„°¡{òy>Ûù—®K4sj}öóµÖGÏÁó1c¢ÒµÎ[îyO!½Í×¹µ+Û—KJ•FÛÌudËŒý~û‰JÖ}ͤ©ßsgÕZ7+™uýe^1EÆͼ%’o÷ ‚ÌJ\EDhB›wͨ,4 @Bö:]G¦*ùd™p<»*‘¯ýŸI¢]½íܱ·ÚtŸÏº]ÊûV¶L>¯üíW+eÍÓ”šZ`vþõýKÛÞî¿ß0—Y¶®¯“Ù÷·A¬uóËŒÚãêÛÕœO…¤ïv4w¦6ëè9SZè? dÑJÆiJƒÎÏý¯‚A“X+úæfE“V´,Cë¬Tp A‚Ü´Säû‹fýH âÉܨ1Ëd­ßëxW‹,æ¹—k²"Ç¥HÜY‰ØŠç#šBP •J—Ä)i#˜ÿy¯ü3OÎRÈ����IEND®B`‚IMAGE 402 ./arch/ground/Winter/snow2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEêèèÿÿÿ@@@ÀÿÿÀÀÀ 8Ÿ†��8IDATÁ1râ@„Ñnk”÷gr6—L<£-û�”ï‡}O6æÝæŒV@Œ Cƒ‡õãºÖ¼»<Ô:¨ÃÉkoû‰|*±k‹*`§dl®ïi˜W:w‘ÇG¥)}•IÔki}x>oGûÎÚŸJX¤ÖrÔ–·aÖeü1ð²ÙKh†®ådàš/)4l+fœz„§+òžau{Hý†Øaa¦ …})»å.²¿/–“;¨îæU,ÏjCcšéñѸ ößUj*ªÝ0ºìêJ]+ý<ÅÈçôË™â2ˆN»æg¿Y|l4 MCñ9Gì²ÖÊ‹'ïžp„es ²ÉMò]¨Q“Ã.nþEž[tdãvåsOÜv2-Wwër·ûèÌŸóZõ#\*ê3ߘÈd±?ÇrBüô40ØrȽÆ����IEND®B`‚IMAGE 308 ./arch/ground/Winter/snow3.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEeÿÿâââÿÿÿTºàj���æIDATÁÁJÃ@àÿÄ ÉMQ¡ïa{³4¡;7¡3¸û …zK0CwŽÅ]˜}J¿yÉšö±Õð즘õ¸ö/\ ½~{Š­Í“XwA§»kˆF 4”&AÑv]bFÈ·4… ƒ76D{2PXD% z÷-gä_m'£ >UÎ}¡ÍíÓý×̳»]ðXÌ} 'Pý˱† fÙ¯²Vð:ÜS²=çüV“ve›ÛL”šhE6IµJàCüú_qsÙÕ ¬KOâÎ5 ŽÒyÍ•æ­Å jS)qZAN㡵Ouü²ð0����IEND®B`‚IMAGE 281 ./arch/ground/Winter/snow4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿÀÿÿÿÿÿ]-V`���tRNS�@æØf���¾IDATÁ1JCQ@Ñ›‡8 ø…UHô-Ãؘ"Kø«xbe¡R”É]¥ç`XáUêÛÜY¯ e²þhV;šæ£òÄh¹³X‘o„ÉÂ×ϳËÕËŠ®X½ÜĤÜË<ó^„îh"©lŠð<ËvÐoGáý‘ ‹æ ºÍMÉõœLLšìÙXÌ6Ì Cµ:ãd5]ØÆ² ݳžk;›wtÇYe²�‹³%³›qâ³zÖ_N¶úñfWi[ÉZ}����IEND®B`‚IMAGE 294 ./arch/ground/Winter/snow5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿ�ÿïççÿÿÿÀÿÿ—…2���tRNS�@æØf���ÈIDATÁ1JÄ`†á×!ÊDRˆ…'©ÄR,ÖÖÚCÈVa .,Ëâ†TÃÁ⬬r Ÿ‡¬¤æ Œ.éÐ^ã"V̰C`܈û:±££¹ZÿÁ�¾§ ,À¨ãÛ%ü= èð9F¼õ­æ–�ØÂ#Ô‰¾� Fù”Í�“à*¡“H×(-Fu˜30 >x6GÍÈp‘�öκånª¯­Ô<¹®x^àŒ‚­èw$ù›Œlú°ny*¾_ópÂJ2³­í����IEND®B`‚IMAGE 1334 ./arch/ground/smooth/snow5_S.111 ‰PNG  ��� IHDR������@���Ñ',��� PLTE���Àÿÿïççÿÿÿ£•���tRNS�@æØf��ØIDATx^í˜ÏjG‡ µ ‹Õ0†èž9 ÐB|lØ&'ß’C`eñ9?†\ .²‹eÁ9øAVÇ‚Iuwõô¥£rQ]>}ýë_±ìˆ]Hãœpv0ö 1åôyîã#¹p›òsƒIÔDôžO”˜]Øä+û7FØëÃè„„æL0%JÌ.lò•ýqÄÄ6—Q‰ ÔdDæc!HžXöÛ='fÛ—óv?À+'$øv¾‡c¢Äì‘@ Üëà/w’§~»‡^.}ÊÞ!¤Ù,´šlâpÓá.æŠs¦Ïçm?»Õh5,}¡ìÝäý2£°p}‚Al\„sUåý>侤×öA¡GíX¨äJ"öÈ~_²•}˜›ó§w—�¿ˆ]~7 Áw�þügöwÀ9{º¿¯ûÈ}/î¿ö÷ý^é_²ËFf߀V˜ÔHn�øü€Æç Ð”}ÝöS]aчÔ\ ÚFf,–C'¹ìî`†@YWö窯ìŒ"ÊJ?ÞŸvüÀÞ™æcUç‚ +σ«ûðƒx~×ÂÂçû¼`¾2fƒ÷c/û¯{ýx¸gB Þ…}ÁûC˜… Œ$a×í×÷uî}ÓÔ éSí‹h�ëýÄÌù©¹¯¡p+ûlÙ‡²sDv…Èèæ¤T«Ã¿:=È¡™mã;W»)äǹ)Ÿ!v¬ûƒ+îórE¹uã²Sõ¡¾agè7^œvì[Mìé>Ê}qíw|oƒÄnB½Ÿr¿ÿÂb_ÌõF¦cS†Paù.ž\ê+ô÷È»Ù,®¹¯‹¾®òƒEîkÏ÷ÅÛ¾ê~äìÔx¹œ³­~xÿ3~ʯç3Ê>#Nò'Aí•ÛJ5F#Ëôy¤Ü×åB>“޶ZoÙCý~ñÞÿs‡…ºQ`¼;q·Ü×ÒÆ·¨58ñPbf_7êÏ>û£š¾ZÉq)L¿dÿXë´÷¸œ¢^O!W_'àånF`Y>(Óþü+øæ¯Óô!<gÜçóó_ÜùÔ¨ÒQcdr¹AƒÉú¾Ãn˜a_<b';j Î}fáí è;Ö9¿™]èß 7¦ôù<ø¸sÙæ9 ;~q–.üíœ à×ÐB‘£ðÀ“^ûϦãê}8–.üH0$¢j²ïAΙw©×¾£=¿Šn®j×L÷“³šÛÆ!Í>"ûPémÌÍmíúv? B¢Õ„Ú¿‡4o¡šo©qŒÌ.œáǪæ¾ð–É¿DBGGíÁaõ¾ˆCßglÜù=•ç ¿.ct‘ö½ Ò|ÿÏ#9ä\ckö䜊Øú¼Úc™˜F 2¥\<ÍܰÊÅWç „I•pu®ê\|u¯Ê9ÞWçÍC+ÞËâwíïÍ÷yè}ÿ$6ÙÓßo«>Œõ…Æ%ïOç¾êäêÑ}Ò\? [_±§›çïý«AÏOO§õü¿£ÎMðŒg<ãÏxž‹ÿ¸/¾~ï(ìbê¸pмœ¬pú {WÎØZ×-c/ÒŽÄIúOÝ£ë°Ê×ÏEg áE°n†c³Zî’K¯GX7æJ¸‰Ôɯœ2±¦ôÒº¡Ûšzñô;B&ÖÔ&Þ#¾꾇°r^´lGx;wèb/¸b:¡øßñsAyñÚL����IEND®B`‚IMAGE 804 ./arch/ground/Weather/snow_c.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ &4´ÃC1���iTXtComment�����Created with GIMPd.e��{IDATXÃ¥W»ŽÂ@ Ð…)Ðòð]T÷IiÂwñ)$hHá+`÷&ƒ½ÉéVŠòXïk<;03«;øÎWÝö8VwÔmµ­Û>÷ÏÍ#ß-Ý?ŒÕ=_¼xú¦6KuìÌÌÀ'0oRîO£…£Íè¡<rÓÁâóN鹯CK¿×mõõ¹€^mÕ5#N›�ä{׌¸÷ö¶³Óæ‘ûv—!?Àõ¹5P{Ï®qø®æïšñeÀ'H¤ŠÞùDŒŽø5µ F®H”Ne¿lrvq¾{!J7P ]ga“œ"À0F„‹6‘2pÑϧ çÂ…&}¾¼‰ºíQŒwO #ŽD¢¤ÖC-‚ÓAÂT¼»"g2¬¥I½ÅK!'JøKB '$œ¢jxF!Íh˜Ö¬Z·ó^;|Wù¹kFì.CVNVL¶¹>·8mY Ó<<�Ù«ì÷üèAëñÉËÆ“–ŒÂæAëå|ݨ¸g"4¥Ö(覜t›³«*#kC&TN:8"¦ól‘ ø%6{ÐG‰&Ê!|8/´?v%§³™ÚKú#×f ÏIn×ÿITÜ¿NñÏñÊ1`Å’hEª~,W8ÔN›v—!¿§gÖ•™M>êFØø]šé:–„)õq)Ç"t}n±» \ÞÁ‡¿EŒ/Ü'!ú­J‚å…hÝöøR¨¹b½÷/?bø€Rûšs€Ú¦*<Û«LzE„¦WOÊÉæêÌIE4—ÛKé9øí28Oáýnüí!‘Ž0¹Æd·ñ4ÁxÒ¼ä§Æ)nmÍ‚Åÿ›Œar;ïó¥ÄÓ¢„ž �~�ÐÙêA¶����IEND®B`‚IMAGE 279 ./arch/ground/Weather/snow_c.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ ,(Z-÷ô���iTXtComment�����Created with GIMPd.e���nIDATXÃíV±�!ŠþÿŸ¹Õ­^—¡K›"¢ÖÚÃä}¥$$¬—c…lDâ/Iìê+�ä0W¸ÑóœÑ阞ɥ \¾JË)Pê,[ôSqm# dF®aPEHuÛÓ®äm„W˜Ñ;¿m!ªü�ƒ±ËAˆH<3����IEND®B`‚IMAGE 256 ./arch/ground/Weather/snow_c.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ ,ñüÊ­���iTXtComment�����Created with GIMPd.e���WIDATXÃí”1� ­ÿÿs]™4 z ¤i«c!D�$igªˆÕî[%,;‰x-^‡�àrééµr@y*ϲ]Ú1£Ž‡ÆHCZ‘UÐV~û%ßì,?Å“tÌù³`����IEND®B`‚IMAGE 250 ./arch/ground/Weather/snow_c.114 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ +%kÝŽ���iTXtComment�����Created with GIMPd.e���QIDATXÃí•)�  ÿÿs°¢åÜ5¨Ni’B)���Øvn½ÄºÂÓH“.{*Í6—¤»ÂÅê}¡�~âçuÏúˆýg¤ØèŽmA~6  lˆs”‰ÊyW����IEND®B`‚IMAGE 273 ./arch/spell/Bullet/snowball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠVÿ��c2�1�cDÿ�ÿ���þ¿Êÿÿÿ¿¿¿��ÿžÐÙ���tRNS�@æØf���•IDATxÚí’I1 Ä†ÎØàiåÿß%pÆ©‚3º¶â¥œãÏodÄ&­ LUu‚À6¨y/<£ú(p1_ Ó+_ŽÇƒü¸�0¹ì9š +^p‘M û¸›¡d‡˜¨ª[Ô§<áèî©auyÊ:ô‚Œhs ¡](å)·‚¨ÈJ6B¢ ªÿN§oGO¡pì…"w›ãžî›óMLjÒ����IEND®B`‚IMAGE 272 ./arch/spell/Bullet/snowball.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V-ŠVÿ��c2�1�ÿ�ÿ���þ¿Êÿÿÿ¿¿¿��ÿøÊ���tRNS�@æØf���—IDATxÚí’1ŽAíÆìBÿ¯­M=³ÁE¸$¢.¤âñão™7iUbªj'lƒ6ûÂaƒQ-ìá3a¶ÂEœµˆKÀ&—BŒ û¹È³;ìbY¢dwÛÌt³8…°‰Æd}ï+¢ch^Ë‚çÀx{ÅÏDgm¹cNž›üRzlHªDçÍ#”®?¸áõ©÷_yY"»»$kõ����IEND®B`‚IMAGE 259 ./arch/spell/Bullet/snowball.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V-ŠVÿ��c2�1����þ¿Êÿÿÿ¿¿¿��ÿ ´í“���tRNS�@æØf���IDATxÚí‘11 Í9öŽÿÿ_®!(èi«ŒV޽ýù yòF€½x‘”G€ÑÒ‘q‰ÀÜ‚Y0S¶Gw¹Ü£f> 3öKfì!c»‚2î9{(/ÀÖQT³?ý=2Ï~ÓÝs[ج)Wn+!!å–÷jÙÃJ }¾ÅŸ¯¹Á’Ù(Ÿ����IEND®B`‚IMAGE 278 ./arch/spell/Bullet/snowball.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠV¯/_ÿ��c2�1�ÿ�ÿ���þ¿Êÿÿÿ¿¿¿��ÿ»˜Èž���tRNS�@æØf���—IDATxÚí’AnÃ@ ÄÜ(Š-©ÿ?7…ϲ{P^E ƒÙݾˆÚ?£~¹1ö°ŒËñDäÏå¾ÒÉ^³Pe6ù†GÍYjÙ-àRc"5SLÁn<åÝ­ˆ5UÅbAëã!Љû6’y^€QØbuËJñ5 öÂvYÇ,@k‹uÕ8ªg3%àÍ«V‰·ÿ¢Ž×¾ý3ðsÓX¹¢° ����IEND®B`‚IMAGE 258 ./arch/spell/Bullet/snowball.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V-ŠVÿ��c2�1����þ¿Êÿÿÿ¿¿¿��ÿ ´í“���tRNS�@æØf���ŒIDATxÚíÒ;1Ñ]V€¦¹ÿ}ý‰‘CwüjJ%éúuùmXà3põ <aq·ÀÌñì�¤gÞX¿¶Âv ÀÀ5,Y¨?Cš,§…+vø6,,£ {$‡Â2�$ ½£PÕs±©â)Õ>¡G`�aÙ=[{º¨\ˆùS†¯ëß¡É)‚ûsu����IEND®B`‚IMAGE 268 ./arch/spell/Bullet/snowball.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V-ŠVÿ��c2�1�ÿ�ÿ���þ¿Êÿÿÿ¿¿¿��ÿøÊ���tRNS�@æØf���“IDATxÚí’AÃ0SˆØáÿï­£cz¯Ô9p™`ä㇉1¿ê˜XD´cùÁh½á¶˜Ýx¼*!:¯*OÑ­`È+½|×a·¿”~1˜-‰$ìØúBF<ûß>Ý¥‚×nÉK¤Äþ‰'IÝ^hˆ U’²š#JÀ ´’p„µWDJ°þbÕ£gœãø³á ×Ìä.%o5����IEND®B`‚IMAGE 255 ./arch/spell/Bullet/snowball.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V-ŠVÿ��c2�1����þ¿Êÿÿÿ¿¿¿��ÿ ´í“���tRNS�@æØf���‰IDATxÚí‘A Ã0 “µ%yÇÿÿoKs nC¡Ð[tÒ€VÒvóêàZ�—B cåV)W˜Í¶B –~Ž6çÄÆöþž'0s`z¤ŒbÍv› ƒ¢¤ìB: Á1EªÈȳÓöË ¼¬\ Úa¢ïQë i¯g}¼ä�êû/n~àûùµÍŽÚ����IEND®B`‚IMAGE 268 ./arch/spell/Bullet/snowball.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4Vÿ��c2�1�ÿ�ÿ���þ¿Êÿÿÿ¿¿¿��ÿæ3â���tRNS�@æØf���–IDATxÚí’1B1…ŸHÞrÿûšh :ccã]6/äöç;æÑŸF Dô†$Fwß‹]³ ލÏçÖÚ’•Â`áÇiÉS:Rm\ìtÕ0æä%¬<…'\žžX=‡íìò{ºUÆAÚJBõHÄÏnVÒî$®Ó fŒvg†ÉÂæ›­†qÝzb³¥O_«~ĺ◤²����IEND®B`‚IMAGE 396 ./arch/ground/Winter/snowroad.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE‘‘‘‰‰‰yyyqqqiii€€€ÀÿÿÿÿÿHí÷j��/IDATÁÍnÓ@�ÀOX•¯(ð�m¬h¯6øÌŸzE6©¯@ {µw³™×g&Œ¸÷tý%ž]VÕJ•]Õ66؆¼ÄÎ~LÖTzÍÓ 2W¡ùôgè›’”-L´³µ¨¬SPR¹ç:ÖT'oZ¾ëùwyÚ­S¦gJò°ˆ®æañëmÉÍ_i‹ûQÝ?Yâö{§‡LCl‡·I¥tcP)•Óíg®'ÁU›îèmç,v-•“Lˆ®Ù˜“¾T²0¨–º`Uˆ^UfC_¤Òy‰fîÉÔTöÕ!×…B¦…ÔŽ&êGÞpxØ«»Ùš"Ϭ^în9§ø¶ª§ôú^—,Þ3ͬpê/SP†±`ÔŒ“;¨:„ŽsRFQÒ¦îA±¢$ê9/Êwõüì?ÍpÀ—ÍìËÁ����IEND®B`‚IMAGE 335 ./arch/ground/Winter/snowroad2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE‘‘‘‰‰‰yyyqqqiii€€€ÀÿÿÿÿÿHí÷j���òIDATÁAKÛ1�Јþ¯¢°]KKͽÓå>ïu]®‚\kBò¾þÞ >áû ÁjصçŘ*lÄ5ãÀ GÙaƒÉùG83/à—¤Äªžú$ˆ……Û °ÎïîêÞ"p(£¨ÒˆÆ,vð|Z6À,÷É€Ü! ×†õ7)6VÅÍÉýP„�ú‹ÄU˜ÒUÇ FaÖFŽ»†á°õÕ >6EmRO!c:Ò� ß{ …¸Ì#È-Þjƒ? Jkñƒ /Û×9 ÷§†y$¦Ûà±&N ÄjŒ= ¨Ñ£¸$°ÆϯÏ(x̘����IEND®B`‚IMAGE 250 ./arch/player/class/Wizardry/sorcerer.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ///:::€�����À��ï§_NNNUºS���tRNS�@æØf���IDATxÚ½’AÄ 1„úÿ?^'Uo8+íJ*qðÈÑñ�Øçs’m.þÊÀðD 6UÀd†È¯¹ J™î~¹…;@B…ÉK˜Zgá)‰ã×U’€;'ïA‡aï½öZíKAt9»§Êœé|) |AA É™Ë (A»û2&qYÑ 2FGˆÑ’«|�½b¥"����IEND®B`‚IMAGE 253 ./arch/player/class/Wizardry/sorcerer.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ���ï§_...LLL<<<ÿ@@À��î>Ƥ���tRNS�@æØf���“IDATxÚÍ’A Å C&©÷¿qMËçoš)tÕ "ä‰qÆñB€øà«% À3`#« 4ç @è °F«�åœ>…ä› Aç ù›¥"~—€ UšÎW…Të}ŸsÁ�Ì«SÛ[M]+I‘ˆ¾ ¨(.¡ût 4Àµ„„rˆ ج[¿ F¼©û6Øø¦&òeÊ*œ����IEND®B`‚IMAGE 299 ./arch/player/class/Wizardry/sorcerer.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ���ï§_hàÁq8...<<<LLLÍ…?d3€��ÿ@@ùJm—���tRNS�@æØf���µIDATxÚµAƒ0 ×’€üÿ¿µéV¹ugÈeÇ0ž ™Ã¡²’|1E…/ÚG†/¯xÍa¢Ø‘ØÈ¼n¼EB"ìG $YßhFL‚ÄqH"x|ôyÂl‘·¤øòÇÑZbOËx&癹ֵ®kõ}™ùsKv¿ym‹ö”ë)jLð.h �dªÃ€ À èÇ,îÃM(SÌÂíØŒá‚[êÍ?ð:ç?ÓFo����IEND®B`‚IMAGE 303 ./arch/player/class/Wizardry/sorcerer.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ���ï§_hàÁq8...<<<LLLÍ…?d3€��ÿ@@ùJm—���tRNS�@æØf���¹IDATxÚ­‘Kà C±ƒ0Ÿûß·rhÉÄnÕ†ôF »Ü%"�J$AsAbÂm³$ƒ>T5‹€zÄ@”B ªjÍz�µ¶Ð¦Ÿõ+¶æ-M¢!ÌŒŒþ¶=ä�Õ;my"€VhALÒ;ÀúnïzY½"½«žö;µÖ 0/æ¢æÊ±8Éæ<YIÀ\Ó qÀò!Å„/ ø¬"�èÃE ŸÀVû PÑ'EöÁ3Ô¯Dù£^5!RV����IEND®B`‚IMAGE 301 ./arch/player/class/Wizardry/sorcerer.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ���ï§_�YvÁq8...LLL<<<Í…?d3€��ÿ@@½Û"���tRNS�@æØf���·IDATxÚ½ŽA! “' üÿ¿uØ[—Оj!„4#ly€J ”\ކšÙÁ�ìe¯Ã E3³ÓN¥Ð´‚�Okp¯øNõ=¿:°´€ˆ«G¤á;AAZáŽÐZò ¡ÀÜÌ’<bûÁ°Ö«p#\6c°a  Òï™sR,”MVÁÜX ˜>kAs<[(HÙà<• ˆ£€LòZœ>Ð5¥ ª_ÞÙ’¯côCþš7M ç$CÄ����IEND®B`‚IMAGE 308 ./arch/player/class/Wizardry/sorcerer.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ���ï§_hàÁq8...LLL<<<Í…?d3€��ÿ@@Ý7‘Ø���tRNS�@æØf���¾IDATxÚÍÐÁà Ð:à ¥ÿÿ¿sèvX8ϪJU?"Äñ 38–AÌp/¨¬f¶ ½ìEl@Ó„ V»A¥5º×ý7ˆð²È6aTÇ$ W�úé”È¥úÇÞõ®Aö½Ÿ'}1¡µY3/ifªÇ5†‡_ùèû°6W¢Üð ÎÓ†¶ Œ1‡›Ä3ÙSó? ¾èð—@Þw¤ÇkÆ03û%îà>W��³\(¹2�JP|ÿMÞ¨Ìý2É����IEND®B`‚IMAGE 278 ./arch/player/class/Wizardry/sorcerer.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ���ï§_hàÁq8...<<<LLLÍ…?d3€��ÿ@@ùJm—���tRNS�@æØf��� IDATxÚ½11 cs’ ÷ÿÿb玥 @ñ¤ÙeâñK°²á$%«d&ŠÇ°Â#³¹*Àð9 =?8€Øk°iÔqT²„”d„èz57PñôkÌÌ@]Ž÷#KÀF˜sž5Ã&æ)2¼�N‰ð<wB€äN /A® iq ¦�E×À¨ià+Ðý‚œ€;%ØlÓò»jü3o° &š6v����IEND®B`‚IMAGE 283 ./arch/player/class/Wizardry/sorcerer.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ���ï§_hà......<<<LLLÍ…?d3€��ÿ@@&RÃÎ���tRNS�@æØf���¥IDATxÚÍ1Ã0 ĬÔ<¥ñÿÿ[©Š¹ ÊÅ€IXòøŠyç$ùdÛ6Pf|Ý>÷O𨢽 …)öÓû`î“¶ ‘"’€«ïe–ï$H®ÿßRí3/· ½D¸5…T^Ã!ÚƒóÚ †ãXG-»– æ±* n& °¤¼ „ò&ˆ3À 2%HzÓNè¢ÀMh¯òøh\ç9þŠg53×ÚÂå����IEND®B`‚IMAGE 215 ./arch/spell/SpellBook/sorcerer_book.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…? R-���d3Ò;E���tRNS�@æØf���sIDATxÚ½“Q À C—ØÜÿÊÛ*ÊÖI¾Jò (õ؈}ˆ¹Ê{çº> ’Øj,Pjmm)zS&H‰ÐY$Á?#�¤îJTÁ+ žaùù;ÌW.+Ñ—ºæ]¢Qè¹7ØüÛìã{çÉdÖCƒ����IEND®B`‚IMAGE 350 ./arch/ground/Winter/spalm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE!��ÿÿÿ�c��1�-ŠV�Ì�Ù¤cDŸQ,c2Í…?���‘m;Ô���tRNS�@æØf���åIDATxÚÅ’ÁŽÄ CKº äÿ¿w0£E…éi¤5‡HÍÔãËòÔP¤È�G)E°nd;$ bhrÂY†´B”˜L<—²Ç•ä6ŠÄˆBäF8&µ„{~P•ùü2r£¨Æe8õ¼Íëk@Å®B ì6¡{Ú*]……dòðÙ_=¤Z#á}¡~ûC®Rõç,iºÞCœLjX@´Z l€zõ¼�Ç \f½¹p†Aø­ßÌìò¶÷wg•=FàÓ£lͺM±+><çLx,ø�DŽ'€òãô 52J£ü����IEND®B`‚IMAGE 330 ./arch/ground/Winter/spalms1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE!���1�ÿÿÿ�c�-ŠV�Ì�Ù¤cDŸQ,Í…?c2���ùWIR���tRNS�@æØf���ÑIDATxÚåÎQŽÃ PÚ�sÿóî@Rµê†ÿ•ö)аã’ÅL™Üõ¢”BdV˜nú%¸œ%'nŸU-ˆ/töZDñ&Xͽô{¦­·q»’ ×±>ÊY%Áĵž?§Éš”˜•t¨)N`N$=ä".*Î¥²ZY̹÷’>Öç£R‹yÖâ6Æi KN6È•z0A0_4@?4B‡Žd(•ñ¡†ZŠÑFkrø½·ˆÖ[ïtx± 6ÆyaÄŽz³®ØKü5?=)†µã9¸����IEND®B`‚IMAGE 386 ./arch/ground/Winter/spalms2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE!���1�ÿÿÿ�c�-ŠV�Ì�Ù¤ŸQ,cDÍ…?c2���ë�¨���tRNS�@æØf�� IDATxÚ‘Á–Å CK‚ó¬òÿß; u<]¼lJN¯(äúZæ:Ì–¸ `6U¥�eüKf1 q›ÔF‡§’MÈŒ(¤BÍN3®ÐÀ‰³™çvšêÔ„†ù›ÙX~>Qa˜¸¸G]ÓQ@¢¥Øû*æ”ó?À± "ê”D5מJÐ,GA*lh|¨¼Ý¿xÓØÖK‰·g×{ûFA‹SZGÐ3­3ŠÌ§(Š:|òkÕZî16ƒçä«Ã\ÀÝD¢£wÑÉ·*ÄôZ­•è‘vO¾÷n ¨­õΨÊeµï•k7X¹:Õšó^% ÿs|κ6»>É_sò5''¾Ö/  9¬q;¬����IEND®B`‚IMAGE 219 ./arch/spell/Cone/sparkshower.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Ök�Þ¥�ïs�ï½�ÿœ9ÿÆ„ÿÿ�ÿÿÿÜCnÝ���tRNS�@æØf���nIDATxÚ½‘Q À0C7cÐûŸxþµ°b¶VèW¨ÇïÜ6`� òèTžE๢ƒž  ÒÚ[€d[‰ ²ó3²>ÞLu01Åábæ³b•ÇL`‘ç n©yåY„› ƒìÐM>öÐ+>[ÓûÛsq6����IEND®B`‚IMAGE 245 ./arch/spell/Cone/sparkshower.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���Ök�Þ¥�ïs�ï½�ïÖ�÷µ�ÿœ9ÿ¥�ÿÿ�ÿÿÿE²RN���tRNS�@æØf���‚IDATxÚµÑ C! C­‰qíÿð@Ctö‚¬öxHSOÍÛá-@ç@z8÷Hkwòs®%†û&;÷�á„E1ïÛJÔ¯¢SÀ@‘Ô<¼IÂÔÇj8fx­){vEÖC™ž´‹†rì°½ÎÆ÷}8왡ä’+þ0¿ã¿ƒQ›ñ`P����IEND®B`‚IMAGE 217 ./arch/spell/Cone/sparkshower.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Ök�Þ¥�ïs�ï½�÷µ�ÿÿ�ÿÿÿQ]���tRNS�@æØf���oIDATxÚÍ“Q €0 C-¯Ýîcƒ?"hƒ Áþæ%K7¶ýib9s�­Ÿ M?éSÄÙ4]Bºi¶ÈqC8 pÕGG¤ô)"ïÕî[9BÒ$¼ìn V/Šj j<�!{i³RH˜„f}qøêkíÿÈ4 —����IEND®B`‚IMAGE 183 ./arch/weapon/misc/spear.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,��c2�1����¿¿¿²çáó���tRNS�@æØf���MIDATxÚí1€@ î%õýÿÇDìd` ¯vÚõjèž`GÚ[!ØfÉWu½Ä­¶&ì¯yôë±Ç¾È÷‹ÿâ}ƒ}Xæø=í›����IEND®B`‚IMAGE 191 ./arch/weapon/misc/spear.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,��c2�1����¿¿¿²çáó���tRNS�@æØf���UIDATxÚÝ‘A€@ ¡²ôÿ?V^ØCMœ+$LZ<±„ˆ…ÈjÙ¸ºœóîTЕ—œn‚§],E 2æ°v’Æp‚Û‰¹äØa?ñý%ÿñ Éx™ WÐ}—n����IEND®B`‚IMAGE 183 ./arch/weapon/misc/spear.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,��c2�1����¿¿¿²çáó���tRNS�@æØf���MIDATxÚí1€@ î%õýÿÇDìd` ¯vÚõjèž`GÚ[!ØfÉWu½Ä­¶&ì¯yôë±Ç¾È÷‹ÿâ}ƒ}Xæø=í›����IEND®B`‚IMAGE 163 ./arch/weapon/misc/spear.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,c2�1�ùq���¿¿¿E���tRNS�@æØf���9IDAT(Sc`) Å D¦!€zIZC²!¨—á ¼¼¤BÔ‹ PÍPb Ãð�"N_öÒ„G����IEND®B`‚IMAGE 194 ./arch/weapon/misc/spear.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,��c2Í…?�1�cD���¿¿¿º[«���tRNS�@æØf���RIDATxÚÝÁ À0 KS¼ÿÂÍøQ)jÂ×'89þQ�©h ‰€_!AÆÇœã1�ªóÀ¢°ñ¸IY¬®bÞ‹v#³òŠð%fb“¼™â¶üm ¶����IEND®B`‚IMAGE 182 ./arch/weapon/misc/spear.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òic2�1����¿¿¿+‘7Y���tRNS�@æØf���LIDATxœc`€€·–‚&"‚&(Hº tDt-)&ÃÇ‚†²% ¦¡°¨—— °–—»¡j)/B3#½Í–$5tkÈ�(­e|µkG����IEND®B`‚IMAGE 181 ./arch/weapon/misc/spear.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,-ŠVc2�1����¿¿¿-à$>���tRNS�@æØf���KIDATxÚåŽÁ€@ ƒÐÇÎ¥€}ëÈw!›zydÄv ¹š n¡âìM~1ß=´{âö[Ìou£’aÁÿ{à¢ÂŒ â“úl.ÌéV"@����IEND®B`‚IMAGE 171 ./arch/weapon/misc/spear.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,-ŠVÒic2�1����¿¿¿ùö@ë���tRNS�@æØf���>IDAT(Sc`Þ€=µ�…_^Úa^@¹âŽSQ8� ”Zt˜ÂH·r‡i „‚Ê+ÂQÌ�ZÀ0<� ×L½­����IEND®B`‚IMAGE 187 ./arch/weapon/misc/spear.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,¯/_c2�1����¿¿¿£k���tRNS�@æØf���QIDATxÚåŽÁÀ0 ÂŒ‹ñþ7À7½ê­Õ5¨{¬ÀÞÊ,hc?v: Pe‚²@aPƒÉ/@oäd,ýWG…Aª¯ð�<à°÷-����IEND®B`‚IMAGE 218 ./arch/gods/items/spear_ixalovh.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���aaa(+õààà���@@@B‰Õ¿¿¿ø¡¡¡Ÿ}âG���tRNS�@æØf���gIDATxÚÅÎÁ€0кáÖùÿ,f†rð°&\xÀÒì=ñ­Kv¯Ò¡ÖF¯Ò‹i§A„œþíßÚ mzYèp.p9HåF¤ÎàAå ¼Ž?fÎÄÁÄA Yí0wÄO@‹ê^ÔL����IEND®B`‚IMAGE 213 ./arch/gods/items/spear_ixalovh.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���(+õààà���@@@B‰Õ¿¿¿ø¡¡¡aaa;¬���tRNS�@æØf���bIDATxÚåÐ1€0 CQ—Ð~àþ¦Š©32`ÉÓ“<XŸf…_ÃòôÍúy8WôclÖ[X‡X a<¹7Xxî/ÊÅãâÕ³Ó±p=.Ü?©.ÞÂ;d÷½ë¿®Hw)üR&D����IEND®B`‚IMAGE 214 ./arch/gods/items/spear_ixalovh.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE���(+õààà���@@@B‰Õ¿¿¿ø¡¡¡aaa;¬���tRNS�@æØf���cIDATxÚÝÉAƒ0CÑ nò¡÷?p'°‰R¿¼°ôâÕ>cáßa9}³~ìÎC}›õ¦Ò! Þ¡Ö5‚œ§ÜpQyît¨<8=o‘hšJå}:9ãÓø…Îão=”î[øœ˜¦wѨ����IEND®B`‚IMAGE 321 ./arch/monster/undead/spectre.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTEÆ÷Öc1�����sRcŒ)œÎ„9ï¥ZÿÿÿÆs9Þ¥!Î9Î��J¥R)��„999k!„ I���tRNS�@æØf���¼IDATx^½É 1 Cå%Ë,]þÿk+b(epRè¡Ö-O‘âà—QÈ’ ¥K¾¡M3ŒÜ©y‹…M¹Bf Uá°Á-å½{8ÈŸ©<§ƒr”dÁJŽ’%¨T‡OI¤ò|’¾ÁÙpž'lä†#Ò©¼t§üŠom;¡L?†hW;Äu)xoðŒ„ô¼[ö‰ñGƒç¿¬AcË„4Py;\áË¥¾qÎÄQ%xHñÀz”úë¼�dÀ:vѲ“����IEND®B`‚IMAGE 203 ./arch/spell/SummonMonster/speedball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷­��ÿ��ÿ„„ÿÿÿ¬�ͳ���tRNS�@æØf���jIDATxÚÕ’A €0 $ÿ³ìâA´©`/:zØ¡¤i¶/ª@°& fqˆVql˜å†N¨£hò¬T l„ó�®ígs»¡œùŒCBEfêhºT¥.Úgf‰|ž¯þ –f}iÈcáœàÁz����IEND®B`‚IMAGE 197 ./arch/spell/SummonMonster/speedball.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷Æ÷­��ÿ��ÿ„„ÿÿÿ¬�ͳ���tRNS�@æØf���dIDATx^ÍÐÑ À EQÜ�º'°N ì?Sùj±ÐÞÄœ/>Œ_“ “H<ºAPQºDʈ°ÀÀHP`Ó&4zm+D Œ€‘Áí¬ èèÕkãæ>ÁÛ¦û-Ûµûü§ �" ÓÐc£ù����IEND®B`‚IMAGE 189 ./arch/armour/boots/speedboots.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ¥���� R-+Óÿ���tRNS�@æØf���\IDATxÚíÍÉ �1CQ0î¿æ‰XnX)`ÂõY{'7÷›£2Ú]g"â8r¶:Éh÷Õ³Ð`LF :cb�Öjåt=¦³2›Ç'³ªõâÜdÚEFòdì—÷umñï8Î����IEND®B`‚IMAGE 187 ./arch/armour/boots/speedboots.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ¥���� R-+Óÿ���tRNS�@æØf���ZIDATxÚíÍA€PCÁOÛûŸYaG5q«Ý>2œï<ä¸ïð ÉHÁ2””B3k/a˜‡±jÁ@}µæêþ€ª®f¶dfÚ‡{‘fúÊø<Ìùä.j^íÚ«Œ€����IEND®B`‚IMAGE 185 ./arch/armour/boots/speedboots.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿÿ�ÿ¥���� R-+Óÿ���tRNS�@æØf���XIDATxÚíÍ1€@ÁcØÿ¿YK¸ŒÕÈH7ªYÿ^<äð13‰À2)) ˜˜ú%ã�e3at+ º‚!_½Œ¤b¦H›™òq/Îm¦»a|nf}r\Vê®}_����IEND®B`‚IMAGE 406 ./arch/wall/speedbwall/speedbwall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf�� IDATxÚ“r„ D/êî²æÿÿ·hOOÛéL`2ë øê´ßyý§ ýÉ-GÁœ‘Q #©è41 ¨,ºRéŽÊ…Þ9Ya*`¬­hb#ÂNÖš¦BUZ$ù  †Åigp|ö°Û‚< ê¦ü^ÔH:{PlìÓò ˆ6ÈéͤÓÑ€«;Ðd¹ °•ׯhAl È÷}P#Ù'Aâ¶“rŠ`õ¸íCÉT5%õy©2ÉÏgázÍ.ˬH†ó|Ü¥0\vvO„È‹‚¬è£úìaÝëFÙûˆ:)Œ‹è£•hÓÛCø*…!ð„ÈéJ?Aª~¢|ÄZèÉ^ÝÖìÂø7A¬GÁJùÓZûe=™.V%����IEND®B`‚IMAGE 403 ./arch/wall/speedbwall/speedbwall.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�þ¤�ÿÿ�6LBø���tRNS�@æØf��IDATxÚS‹nÄ »´ÄÆ—ÿÿßAB·õqÓLD X–ík¢Æë?„þ'þ ¸q„µ¬F%8` ÁŒ„Hå`h�E�•`w÷Z™–Bá»I¬ñP¨ó&‹«BÉo 0w…-Õ¥ð–èÔÀ›BŘDƒà<{@›[ˆ°$]Ö©PÓ//fm0¨£_Þ<hëdzh4çùVH¬íO7I84Ì…WSÂÁ™º}x rrœ¤v{‹Úæivr($V1°¨†ÃCÂYåïhˆ“‡ >ßÇ”a:{0˜Y}˜+øKaöŠ5èüñ`z@2X x$X Ð3�¦ÿ@ˆ`³ýÕoŒ÷Êi¡þÍê_9;ÆðÞ¿�x¥¯¿âi����IEND®B`‚IMAGE 266 ./arch/spell/MoodChange/spell_aggravation.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ1îØù��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTEŠ Ê&ýÖ�)/­ á���cIDATW…Ì» À0 P˜F¸žÂ¨ Ê(i!ûh—ÆÁÖµ‰¯¹úЃú¦‹g¶4NuÂÜ<FµbG=SÜ–¹ã<÷(œ`_œ‹Ê®:(*¦€JàûÏIÈ~xjG�¶Ù����IEND®B`‚IMAGE 340 ./arch/spell/Misc/spell_alchemy.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ%–\|½��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê!!!&ý@@@aaa¡¡¡&h´œ���žIDAT(SÐ=ƒ0 à'"`æVPw¤(@â�¨ÈÌ™ÜÞ€Þ ×îO¨oó7ø‹ L=cñU†û@h* h XD\ÜE ¼v ¢ ܽ%= Œ"÷ŸCºBäôU�Fo@Ž Æ-ÃÙÔËK%81°«Õ ˜"§¤Á­È÷'Þ}¾oaÔæòz xxgþƒ¡f?¯kPªÛNyÛ����IEND®B`‚IMAGE 608 ./arch/spell/AnimateWeapon/spell_animate_weapon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑqCUš��� pHYs��t��tk$³Ö���gAMA��± üa���íPLTE���Š È É Ê Á È ¹ Ç ÉÂÆÉˆÆ¶¿Ã±Å ¢ ¶ Ä · º ¾¶}c‚PÁ­"»"±"s$#'%•&ý&¿&!Š'#k'#m)$ƒ.'®.*.-C10F4-·4.Ÿ6060¬666=6²=7¬@=€@@@BBEC=³EBuHFkIIIMLaOMRNšROUU\YV’`]—aaaaakgggonxwvˆzzz¡¡¡¿¿¿ààà~¥“Ç���ØIDAT8Ëœǂ0E{ï½ì½+6Àÿÿa$À ;íÜ›yÉ™@âÀ¢ÏÈ�¢ó/�$‰ �Odÿ @ñ’ðM�Ò7ªÏ²æÀ×^Æ»ÐæÏ^÷}׫€u~q2Ú®ò6 �}Àó§[ƒ,AŸ¹«Y€¸¿RÉ>BA×Gå#‘A0"îD(q]k�È>!Ò*§gS?ÛUàú›ÛcÎj€H ÷צ»ó¡çÑJ—Ï‘ãê¥(m'ƒ”ÅÒ†|?þ µÀ¢Ï|�™É5 0åâ����IEND®B`‚IMAGE 332 ./arch/spell/Rune/spell_antimagic_rune.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ3�ȵs��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE������1�Š Ê&ý-ŠVc2cD¿¿¿ Ç] ���IDAT(ÏcE hü`†P`LO .N3Y\Øœ%ž3UÜDî)@Bd38ÜP q)G6´R€“…mB`æÇ™,•Ó‘&8Md‘œ„`It˜â¤‚d¨C‰‹ ²-å3¦# ¸‹xÎd‘@(` 8 Y 4NÜÅʼnÞaŠ"`Œ ‚Ñ�NÚ‰´Š-=»����IEND®B`‚IMAGE 329 ./arch/spell/Change_Ability/spell_armour.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ.}ZI��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýd3‚B' R-Áq8Í…?¾1~e���“IDAT(‘c0F h|Cc% HC%%˜€[hhhZYzyZTÀ54Ä-=(Rq  ”§Ã\\C]ÓÊËÒË Z”TÜ€f”W¤W0AÜ\BBÃ2ÚJÖª�ͨhBr‡ H Š�ÈÐ"%|Z@†âׂn¨B�rx00@|OÓ@FD †h�Y‹Zc°ädV����IEND®B`‚IMAGE 429 ./arch/spell/Bullet/spell_asteroid.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÜ'Œ×#å���-PLTE�1�Š Ê'u&ý.0ò6[›==uSBcQx{{žœœù½½½ÖÖÖÿÿÿ™áPÃ���bKGDo½0O���ùIDAT(Ï•Ñ=NÃ0ðHÌ ½B}?•“¥RoPUs•tˆäŒ¡*R-CÕgojo™?_�Ü»0’•ÿö~zÃûHfƒ$ƒzšÌƽŒ®À¤ûÓšÿ�+ÐÞtÀR´Ôèwè�•% Ûy„´g õó#0™KçëÝë±1šE ¬¬ å?n›—Oþ ¥¶A“Ž O™%¤pé: :¿±žºãˆî²pq-”*³u.(ÞÎ5tœã¾ŽÞ?Tq—íê( @„Ų°ö yÜ…å;å\sXDƒ,QO«Þ q ü#ÿóQ£~’é�¾� ç™Ñí¥0›����IEND®B`‚IMAGE 422 ./arch/spell/MovingBall/spell_ball_lightning.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ)5~%0P��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE����1��c�Š Ê&ýc2cDŸQ,ÒiÙ¤ïå‹þ¤�þÖ�ÿÿ�ÿÿÿÃ"”���ÛIDAT(ÏcE hü`†P`L’�# š@º@ª�{UÑrT… ("ȶ°/(½\&àÀàÂ!p÷öÛ˜¡îR.Rwoï½ ·Å±|yíÝÛ»_•ÀªÄßÞ½û~︡…ì¯÷î½»÷ \À!}íþÛ·ï"T¸/¨Ý}ûí.„ÓÊegßþý &àÈ(â¾hÕí[0‡¹×Hˆ¯]P%âÀQÁÞµ¨KD|ŠC Ì/@Âqù*$ÏŒD€T,D BÇ%h,ÄF”1*`F��œ! 4GºÊq����IEND®B`‚IMAGE 283 ./arch/spell/Cone/spell_banishment.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ,è¼Þ���� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����1��c��Ì� Š Ê'ücDŸQ,Ù¤gV���bIDAT(ScHC hü†´PàB_�Vü@ˆL€B; Y‘´0°OŸÉ€*PT>Åñé3 ¦Ï@QÁÀ$ŽlÐhÖb8 ‹_``à\PC š��­@¢l4ˆf¥����IEND®B`‚IMAGE 854 ./arch/spell/BlessCurse/spell_bless.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ 0 Dèe›��� pHYs��t��tk$³Ö���gAMA��± üa��ÇIDATHÇíÕKHTQðï8Oµqòc>Ò1ËÒQ3!Ê""+°V½ )Š0ˆ0ˆˆ Ú¸s.[º‰%V.[˜ Âdæ3ÇydÌŒãǽsÏ}´è–ÓŒ‹uVy¹Î=‹ïwþçrÎ!BRù”ö.—8Ç][ž.FU° l @!s�@ô€fë�Â#ß)›f´Æ`ð«ÆÈÙx*‰o¶9 ÇÚáôzUƒ†r$üC%Eø0 K¾ äxW0u†pÙª¦åã¶Êú’:Ḛ̂Þy2@DÈXVvx9G:;zîâä®Z+šªN„݃4è‡XkE@€$`Öù’¹úþ–L É�„¢¥ßx}_«Ú?,„C•‰¯‚Ò—(Æíþ· ÛY’Pä”;O[rYr*¡4ªÿa~2Ò»çÏe% œÑßÍ<U¬› ƒFM™®ÍTù¤ Þîóž¥C$1€ÇÍù7Ìæ< £„Ò8àï (&œÁNóâØ…Ä*ЮâÑXA›¥0ƒJKç£y¸ý´“Ÿî¹ÍC•�  àÁ±ýð~ƒš@B¬ÿòXòEžGl=wÄ„�P\ê×=.«)Ù©] i}úè{XöÕÚšðOn!ϸê#å9$zé£Káÿ`X¯¿Í>½èp[ò–Ñ1´ëZmµQ£Š„ØE³{BÝ+/î‡D}â;YBÓ�yB6ì-UKqéQm˜ߨ&:›ÝsGIrG…>€ö^mkv¥Ø¤ÉúéœhZxiš|Õ&Ëšä»BÎõ©›I™¥ô@¶N«‰Ú½\ž•Ч¹ÉÞÝöw—åàŽך j>£e*·R[XjÈÍÓé%Ë 7çóŒòßûŽ1óDÖlúFKÂd—óTF6MÁè%{¹´l†˜±}éÿçÀoCì])” R—à\90‰UÊŸ����IEND®B`‚IMAGE 409 ./arch/spell/MagicWall/spell_build_bullet_wall.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑRQ-'��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE����1��c�Š Ê&ýc2cDŸQ,ÒiÙ¤þ¤�þÖ�ÿÿ�yáÑŸ���ÔIDAT(ScE hü`†P`Lœ€°@ØÀD n\Ë Ê;€°�*à.µJö „ xH­’ ‡©à ¬9µ.PÒRsý"B€§¼üŒÔr„¡UEUk¤"jΜªYÀ¾&µŠ÷ÌÙ5׫®#dÑ­­AqP  U jÕr°À„-ååííå0[<¸VÔ¬^sæîÙ0«Ö€´œm€ ¤×¬Y1bœgÎ@ÓˈŽBƨ€!M��𠵓ŒüJ ����IEND®B`‚IMAGE 345 ./arch/spell/MagicWall/spell_build_director.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑz»%��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�������ÿŠ Êÿ&ý¿¿¿ùqŸLeö��� IDAT(Sб Â@ P;ºlO±A’‡H)¤¡GBˆ–‰)€Üù*ÄïüdË–iëB]½Ò)Óï Ì·’A÷ ôÀ˜`ØÝ[ ‚†§3¨ÂùŒø ër‡@€twAËÑ‚`4ù±ƒAæu-‹ùðžùf ˆUˆPs†4êæÞB%½P­ƒ™ý”Ÿ<sñ/L9´vðÙ™z¡ÝÕ;����IEND®B`‚IMAGE 398 ./arch/spell/MagicWall/spell_build_fireball_wall.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑàu/^��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE����1��c�Š Ê&ýc2cDŸQ,ÒiÙ¤þÖ�ÿÿ�?p!É���ÌIDAT(ScE hü`†P`Lœ€°@ØÀD n\Ë Ê;€°�*à.µJf7l„ xH­’ l‡©àB¨BÓàÙ½cõŽí †J¯Z^½pùq$Õ‹Ú'®†›‘4cGù „Y@3P åZUîŽ*Ï2„µËüÕ» ÊËÚÛ+ÊáîàZQ½j÷™ÓgvÀÜQ±j5ب@zõj°ÀîÐã„(ؽ»�*ÀX(.&&&˜&.@t40F Áh�¤"³í5•_ï����IEND®B`‚IMAGE 396 ./arch/spell/MagicWall/spell_build_lightning_wall.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ�ôts��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE����1��c�Š Ê&ýc2cDŸQ,Ù¤þÖ�ÿÿ�°z¿���ÍIDAT(S•л‚0àjL”¸è&ø®¼�ƒQwÂ3ua+89&¶Ún8ˆ€—³7ÊÅE&¾ôü=) AƒÛ^ÜßÀC:Þ4kDÁÎ"!NøjØÛt "¹†ƒM Es¢ÎkÓ…˜Ð·9äg( ˆŽ"eÄŒÈÒjÌ œè€¬Ú´Sʯ…’õöˆåbÏöZÂd-`EI‚ÍÈýJ¡†ºZ4{DT޼oŽ1“�™o¦�„FK¬;¾_ýopûAþ�>€ªª|/����IEND®B`‚IMAGE 340 ./arch/spell/Swarm/spell_bullet_storm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ)âaj��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ý½��ÿ��«]š���§IDAT(S]‘Á !-+@Ötp¢”pô_K°¾`dlÇèØ_�@_ þ�‚x�Ø$¥0klg¦G�ÇA @"òRh"·+ÖÓAtʘÓ5f"]*M×À†ØrÄ„M�o8FFšÀ³$‘\±MIªØx=`ùµwÕ©Ý�ù,Óç"[Ë­íÏklµþ?ºð,19>­Ücë����IEND®B`‚IMAGE 312 ./arch/spell/Swarm/spell_bullet_swarm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"vçéb��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ý½��ÿ��«]š���‹IDAT(SÏË Ã0 ƒa‚hÈÄ¿A:BÝ–l¥±ŽÕͨ‡u¶R{:0€}Bþ�A<!�6I% $ÆšGϘÀqÐHDž‰�›ÈåZë1¡ZH<ιsI*sÿÅ– %p›Œô„É HÒàÕa{w¸ä³ …¶¶ê?Ø×ÒÑà ¥þ< “ÔÈ����IEND®B`‚IMAGE 299 ./arch/spell/Cone/spell_burning_hands.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ2iðë��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýÚ¥ ÿ×�ÿÿ�ÉÖ/���~IDAT(S½Î± 1@·°ç§ë�Ù€ì+ÀÂ×+Â;ÿßlGhE¹”£_åÆWÊ/¡à 3KsÚ ´Uä Á$ (gðõt•�šþ:i€>cN<½ÓÞk 6ÀBЦ‚üÙ„²TkèlM@¤Èß ¹Žþá-Š•$¥ ����IEND®B`‚IMAGE 381 ./arch/spell/Golem/spell_call_holy_servant.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ*W;Ê��� pHYs��t��tk$³Ö���gAMA��± üa���9PLTE������1��c� Š Ê'ü-ŠVc2cDŸQ,±!!Í…?ÒiÙ¤íu�þÖ�ÿ��DòSJ���©IDAT8˵ÒAnÃ0 DÑ)kYœ/«NsÿÃf ¢(·ó�’¢´ß”nòMûÞŠÚî@û-š$©�ªA“Ž|Ï‚ãûQ=ŸPè8—@’¤”\I0¦ÓýÄ�ŸyÙ""ÎD®† ÜûÌŒõäWLŠw�(@Ðùœ¬oñ!ƒXÙÒ{ dƒGµ¦Á£¯�ä -”XPl¡úïþ/°•¥›|{ÁÐ øPB����IEND®B`‚IMAGE 321 ./arch/spell/Bolt/spell_cancellation.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ.6)Lö��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýc2±!!ÿ��JFÂg���‘IDAT(SµÌ; Ã0„áAØé}ƒeÒ_À,Njak!bÝÿiëцüÝ~°ƒ¥ Ý=caÓô ˆéÀ6�Òj OЦÆ�¿£AD‚˜þÐDÑ2ª.‡p\/.ç_ûµ!·m ùÔ ?Ã/ éÒÃÜ× F?¨¬bN¢€Dr$+XÉ¡å§/˜Jÿ‚© soHtJ+åA•è����IEND®B`‚IMAGE 355 ./arch/spell/Disease/spell_cause_anthrax.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ*8´*äú��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���§IDAT(‘…ѱ Ã0ÐÏ@¤óæC¸ÚxŒ`Z!¨Q«òÊŒZS¦H,K"Á¿Óã8ÝIX‡`8/XÙeú@0C sñ0iàR^fy�40£ä€g)Þ¬‡¾ås Ü­6õ–I¶ Ùg^Ã&û`°,tAŽÑ2Ȱ\¸럃“;¤D$å J%có„JRõRÊX›LX™¢¦Zòëç¦>XxðW2ôßqn����IEND®B`‚IMAGE 352 ./arch/spell/Disease/spell_cause_black_death.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ,#hŠ��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���¤IDAT(‘…н 1 à‡À`ÒÝǃàúðáx… p[—*3BjO™"¹)$y?dY2² ÜyB¦Éð� PÅÆ¡r€S¨68ÀˆÞ¡î½GU ¶ýõ Âekµ‘¡Ì´Øx.³¬ƒA›0ÙGÈ"n¹ruëÿ‡ n+Ôšj%)oHL\¸ì?–ÈO¨•?+\Ö%™+4Lž-AYSä©ë ����IEND®B`‚IMAGE 388 ./arch/spell/Disease/spell_cause_cold.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ;\/À��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��{�{�1� Š Ê'ü)ŒRc1{{{½½½ÿÿÿÛ‘´���ÈIDAT(‘­1 Â@ESx�WɦRØ{Œ|HÖ6xÁ"vÁ­ ˆ‰v±QoiãŽfëünß0l½Þ;¶d5HÆ󤫤QÄúmâ©€àP¸/Ygz�j/ ‰zƺ)«†t½ }AºdeK¦“HIWêµ ßXUÕÔá"€7ÄOšIƒ[Òx •]Ì– ¿å"àÞˆƒÁ Ø«›Øb~ É9Ò²´û¤®Áš˜€.tÒ¬��ì̘W÷Àj˜ ÷À×¹Ì9.ù����IEND®B`‚IMAGE 309 ./arch/spell/Bullet/spell_cause_critical_wounds.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ5ƒQ��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE Š Ê'üÿ�� ]û���ŽIDATW]; A@çˆiÄJ<…l5$GI9M™Jr Ëa³Ž–Øøx~Ðöªh•Ÿí+.g ?C€„ Ý¹tâ*]g�2 M£ìevà0¦›„!ÛšRt]Í„pæaF3îYqÜÓLñ4Š3ï±ßk3ÙÚb9$A ÿÞ‘ó_÷Vq«üÿ¨wÏN‚¿¦����IEND®B`‚IMAGE 353 ./arch/spell/Disease/spell_cause_flu.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ+2Mä<¥��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���¥IDAT(υѽ 1 à‡À`ÒÝǃ ú¸2Âð À[—*3BjO™"¹ ry?„-Y˜]àÎfv~�ÐÌp„±E˜àÒ^fÕ0¢5d‡gkѬ‡¾íó Âm»4Z%CZ6¨±òšYƒUaH²·IÜpéîÆÿA<V(…¥dR¾ T*óþcJR• O+”Úí¥d–|¶¹¡&oYaW2ú/³+����IEND®B`‚IMAGE 294 ./arch/spell/Bullet/spell_cause_heavy_wounds.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ+s—]&��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE Š Ê'üÿ�� ]û���IDATWEÍ= €0 ÐÑ%d ž¢8•zQ<KpòŽR›?Ì’GòµI‡Wò¾§´r€~° ¡Nî[LÙ2•7[ÕxÞ|…e|mU�OÁ¯.¿…0¨SиéØú':Ù8ð‚”e ø$ch޵FFš`I^³÷Æåq“áD¸î����IEND®B`‚IMAGE 349 ./arch/spell/Disease/spell_cause_leprosy.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ*�œ(\d��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���¡IDAT(ÏÑ1 Ã0 ÐÀ`ºåáCñr!|… ‹W{„Î:e‡6‰-(éßô0¶$cv«'Ìì2ü� ¨¢…Ñ"T¸ØKµ:@#Ì žfQµ‡þìó Âm¿4j%C^v¨±òšÙƒVaÈr´YÜpùîÆ?‡ ”²’”/$&¦v§‰ü ÖR,+KiÁÿÜГƒ7W#‚I����IEND®B`‚IMAGE 285 ./arch/spell/Bullet/spell_cause_light_wounds.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑól^x��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE Š Ê'üÿ�� ]û���vIDATW…Í=€0ÐÑ…0OÑ8=ŠK£ñ4.ÄÉc8šÚò£n²ðÂ!¬VÁúH5vD½àŠ„2!82EÝè´å¬ÐàçÙ"ìÛK£p«èüj·_­‚ f.gìx&øC}$)˜‚ÕhýªànSßÜã����IEND®B`‚IMAGE 284 ./arch/spell/Swarm/spell_cause_many_wounds.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ(ó…=Ý��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE Š Ê'üÿ�� ]û���uIDATWeŽ1 À EsÄ.!“äâ$ô(] ¥÷'é)¥-æ+”þ%Ï—„H'B¨íܳ|ÁýŒL¯Ñ@gK §ajáÌj&xk倭šú°“‹û°¼o[—×}H&‰Í¸S’c?þLÃ_ØYQ!)l'`:ƒ:����IEND®B`‚IMAGE 288 ./arch/spell/Bullet/spell_cause_medium_wounds.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ ¡šØÛ��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE Š Ê'üÿ�� ]û���yIDATWuÍ= €0 ÐÑ%d ž¢8=Š‹(žÆ%8‰§p”jÒEð[òÈOfK°:…4•‚ÑAXP;Û¦@¦XvZ:l9—PëçÙF˜ê³Œà"hüjµ¿j¿BÁÈ÷* ŽÓ:o€"ÿcOÈËŠ>X:«ôÍrQéü]Ö����IEND®B`‚IMAGE 1118 ./arch/spell/Disease/spell_cause_rabies.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�Ñ�%^ ð˜���tIMEÑ�3ܦ¹��� pHYs��t��tk$³Ö��OPLTE����� �� ���  Š   Ê  (+,5&--6%%%%%+%5'/'A'ü(=+> ,A14 2?55656A7& 7/ ;=A =W@'@- @3 @@ @F J/J6 J9 J? L6 N? O: OWQ= QC QU QV Qb U8UHXF[Q`E`HbMc;cDdaeMgAgJjIjS l:lRlXldljmXoG,pj ta uBuLujvDvPvVvVvWv[vjwOwa wd xlyWz\zk{R|L„P"…o‰c‰f‰j ‹‘k‘q’W$”Y!”\!•r—`—ˆ›gžtŸ„ ¢c#¢{¢~¢¢„¢‡£„¤„¦€ ¨v©l©t©ª{¬‡°Œ °´•·—ĘÆ­CÉ›ʧ Î¥ ×¥×±×»ܰ ß­ ๠ìÑVìÙVíà„ïÞ;ïå‹ïæ’ðà’ñé òæˆòçtôÉôßVöÝEöâEöâwöç…öì¥÷Ü<÷òeøÝMùÏùßúÞUúá"úé"úé‚ûØûß&ü×üä*ýÖýÞþÏ�þÖ�þØ�þÛ�þÝ/þå�þå_þçþê_þí�þü_[ôN•��IDAT8ËcP �Ès�pãtVÀÃgtu`ÄT#cq:…«c*¨õ‡±Ø ’•DQ0q²2;'ir3 z—µ› FfÉF”ë0!)Pñ1çªðäf¶ë™ºýä/õx¯àV$ÂòiÓS˜,fìÓês˜K¬‘Ý éoZêѽ{ÇÒÕ»÷îÙÝ#2ñREq$³M´ÝÛ–­Z¶áàî)Ê ¿ªé£Tþ¡}»™·`ëî]ɘÅÊÉÝ>wÎüE[nÞ±{¦wKƒà kV.[¾bûº.=L:… u3wnÚ¸gíâY˜qÁäë:±ºwɺݻ×Ïî”ÂPÀl—©Á^,Ú¿n]WP¦#šã¸< Û¾l16¹p]Q¦š@nîtM$š’üÜÚŽ¾†ÐoËàr‹ÔBMûLu(Ë(ª¹*§HUol®8Äf–h³¦–1E~4$ùaFi&ù àO“•‰Œø¨ºÐ9_pà ä9�ÌLŽÆmÉ/œ����IEND®B`‚IMAGE 351 ./arch/spell/Disease/spell_cause_red_death.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ,×Åë†��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���£IDAT(ÏÑ= Ã0 à‡À`ºåáAñr!|… ‹V{„Î>e‡6‰-èÏÛüadIÆìwž0³Ëð€`†ÆaÒÀ©>ÌŠ40¢Vä€{­Ñ¬‡þêë„Ë^4Z!C^v(±ðœÙƒaÈr´YÜpùêÆÿ AÜ6P¥*IyCbbâzl,‘ÿ€²WƒºR×ôåç†>˜<€¨WÍ=\É����IEND®B`‚IMAGE 356 ./arch/spell/Disease/spell_cause_smallpox.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ*–º��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���¨IDAT(Ï…Ñ= Ã0 à‡À`ºåáAñr!|…À‹W{„Î>e‡6±-hªÍBÖV0ï+‡˜~�0TÑÃ\=T:¸Ô—j1€fÔ …4xÖêUG3P?ßÀÝŽ¢^ éâv@ñ…׸ÉÞ´]”Ö:@F1ÃÅ»ÿ?81ðØ!g†”HùB`` ©m,Lý’É ´œ½F̉9Ÿ]n‹7¾yXYš÷Ðo����IEND®B`‚IMAGE 350 ./arch/spell/Disease/spell_cause_typhoid.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ+b‹@"��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���¢IDAT(Ïѽ 1 à‡À`ÒÝǃàú¸2Âð À[—*3BjM™"¹ òó:}[’1»ÀÕfv>�ÐTq„Ñ"Tp²‡js€Œ0ƒBv¸›EÕú°×3—íÒ¨ yÙ ÅÆs^dm Ú„!ËÞ:@fqÃå«ÿ7qp[¡VÖZHyCbb)eßX"ɵþR¬…©~û¹¡&Oï‰XO£€Ö2����IEND®B`‚IMAGE 350 ./arch/spell/Disease/spell_cause_white_death.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ*%×,ˆ#��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE��� Š Ê'üµ!!÷çŒÿ��ÿ@@ÿ„sÿÆÎÿÿÿÈÀ¶Ì���¢IDAT(ϕѽ 1 à‡À`ÒÝǃ ú¸2Âð À[—*3BjO™"¹ ’×éÃØ’ŒÙ®ž0³Ëð€`†#Œ-Âä�§ö0«p€­Á ;Ü[‹f=ô'Ð^Ï \¶K£U2¤eƒ+Ïi‘µ1X†${ë�™Ä —®nüßÄÁm…R´h!å JefÞ7¦$sþ´–LÕo?7ôÁäà …YéÍ-&_����IEND®B`‚IMAGE 290 ./arch/spell/Misc/spell_charging.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ-+x\Æ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýd3 R-Áq8þ~�QÂ-���rIDAT(‘­Á À0YQñŽ2 R€Ø‰>•âwýó ;š ?hr}"È4!’̬œ- ¹ú„xô XÌa±5P@A¬§^pD¿V¬1oÿQ~ƒò È�ÀY‰Ýøw@ þÎó*E»vò����IEND®B`‚IMAGE 719 ./arch/spell/Change_Ability/spell_charisma.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑœû��� pHYs��t��tk$³Ö���gAMA��± üa��PPLTEWŠ ¹ Ê É ³ÂÈ ? ¿ ÂÁˆÂÅ¿}"˜$»%²%›&³&ý("’*$ /(¤/)™1+§3,±5&.5/³8"¯82­82®?0§?9µA;·C=¬H(1H1™I2šI8 JD³MAIN-£O.¤P�(RPrTIRU8œUSuY;š]EH`T\aM’cbƒeQ–ec…j^gjhŠkSVo[|pdmr^zw*€t}u~€¡uzcx‘†Ž–Š“›MV›kqœNX4O„‰£@T§CX©XpªB^³]j´(Ï’PÓ–EÔ–FÕGAÖF?ÖGAÖGBÖHB×HC×IC×IDÚI<ÛH<ÛK<Ý%,ÝsSÞ&,à!àtRó~Gó¬:õ®8øQ,ûƒBþ"þS)ÿ@@ÿS(ÿ…@§5³Q���äIDAT8Ëc#�È30ãŒCM¿’­(”)l¯Éª€EÈÐ58=DCÔC3‚=…Øá tü“²òóó³Ò`�ÌK Ô…)0óŠËÉËË ˆŠ‰‰Ž ‹rs<,` dŒLü’³ƒd ¬ÝÝœìLµÕR²}môåànà·öñÖã‘TPQV”–pp1—âDö¯–%ÂwlΪÜèÞäbBò?+ߌ¬\ �8äB0~` bH.Ì, ¹pƒrq˜�Å0#°¹» [!>c¨T (F¼€€<#�ôRJ4\<Ü����IEND®B`‚IMAGE 658 ./arch/spell/MoodChange/spell_charm_monsters.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ$a¶@¼��� pHYs��t��tk$³Ö���gAMA��± üa���üPLTE������1��ŠŠŠ È Ê Á È Á Ä È ‰ÂÉÃÂȼ ¢ Â È È · ¾º¶g¿}‹™— $!—!p#¸#»# #p&ý&¿,%©,&§,(u-ŠV.*v.+o/.>0/20004-·60¬74{:3¯@;’@@@@@JA>C=³IE‹IGiMI›MLaOMoOOOSO›TSg\Y£`^‰c2eb–gggggkjius—zzz{z‰ŸQ,Í…?Òiíu�ùquÿ���ûIDAT8ËcÐ �ȳ�°á,CJ^ @ lnþ¸­``v’n 8ÝàRÀU ˆ®€h##È`KD]ì´%P01ƒƒ[�HXÌÛÇÃV‰Å°4Ä%l|Æ&æö–r¬(ŽdÖ[÷‡”ž0Š‚@°’/øÕeQè‚L@ñ¦¸r@é0¸¹!‡ª’#™€ÒºpݼB@BÆÝYC�§²›ˆ–«¯&B?ÈnXL°Kê›:xz™ñ!ƒ9ˆ ¬€GÑÈÂÑÙF5¨ÁÌ5In< †SYž@Šât©š/` Ï�.%8ºµö€m����IEND®B`‚IMAGE 1233 ./arch/spell/Cone/spell_color_spray.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑL0¿��� pHYs��t��tk$³Ö���gAMA��± üa��BIDATHǵ–[oGÇÿ³3³³ëÝøÛq.”PR…‚Š*ÁC/¼ñ úÔoÅéw¨ÄB-½ DÕ–V$4±“ØŽ½ïÎm§&(U q¨rÞæhÎüô?çŒÎ!ÛiìÌ„8æK?,ê+<(�è2L{ªΑ·Äîöï½ì÷xÓ%?PËëÃÚòhéR_Ô$�93³–öÛãqG•þ› î/¤À¯•­µÑå/zW÷£F ŸF¢&9%¤høºî3@7δ4•6Î+E­ÕqïJ¿wueó Þ™�H†Mê‘DmÚõ/œ�(µtœéQ¦•qç�ø¡55òzgR«çs§J—ÐÔUÇ] @.«9)+­2ö<E†[Çsà´n%.f¼2�ÓÂÌud¥MËó�Vn_N?I†Í¹'6MÔodzv4aDaQ’ÎÂp„¸×Ýu6 ·³GãCÚCôòI</²m„ãÕ¶òZÁN[ ˜'%«`Ù¨Þ:˜†‚†¥á ܧôgÛ7ÍJ?+®ˆxª%ŒI¼69ŠØñלO"¯¤²AØ‹;Í útQ@×ÞîŒí:3:eíY7F4ÑÁ´(’÷êGATôDµÄTh^A㘫¦¨z1?žE >²O7/Õ¾ù ãìyMî?ÉÞ'k#´çAœB79šž[ql œˈ`ž ¸Z¨Èîè1€bøAýù£¶@{˃*ž¦A9$ÞK¶à5œØÔ´ÔVšÊVÿè7ï-€†×ÿ(¤@&ûc„9â)‚\ñ"eÅКAIû;Ê‚ƒ4>ž…3í—Ú_HÁM÷t­¥¥Öó£EÚs»ÙIˆ®haY*ƒ±Œ÷Š:I;IY{1îYãl�ƒ½K¿ö£0Óz®Ti½¥Žÿ,6]Öp€#ÎÈ0)ê‡EN»ãéÊLû;ãî mjëØ»)~ñãM£Ôà%åõaúˆŽ±Šb©‚“²6™vYÒÉ']ZÆ¥ö²F¡|iÙÙ€[îq+R~É4@�­’¥¤³E’ïÕ6üÒFz´–'mL;Ðþ9ƒùÜ{@À aªê•Ó¤þ”Þ.Ò‹-Ë �hd:ÀÉ·Z°ŽýÙï´ÖPÆXkç <§´®nèÙZü…G¦÷¦ü4EN…°Ue¬=ùPÙu÷íâ3ù?�öyà‚:éÑW„B7Ü3 ûî€ ì]c¿ÎY˜ªz"� Ew| ýwÜr›~îÕjL{*?�$r…ª…ýëîÑ»zd�Î c”1c­>Å FÁóÿÏ^ô¾”ªñ…ûi ¾=éQ5Aë ùì>¹» €Ì7»ïE«||5:Ú /d™åy^9+!Ø> Û9ê‹<}Æ^4Ð˃É2p §‹p~ópÁvá�v:_¥`·ïâü Ã@$æ í\R����IEND®B`‚IMAGE 432 ./arch/spell/Bullet/spell_comet.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�Ñ�+ÝÝ›���tIMEÑ�8Œbº5��� pHYs��t��tk$³Ö���*PLTE���1�Š Ê&ý-ŠVc2cD¯/_±!!¿¿¿ÿ��’P>a���øIDAT(SÑ?JÄ@ÇñXí›-Ì#8 N—„Ü`É-,tBÐ4Þ`Ó„À+=ý‚,‚ |+YHáe,òÇM ñ×͇7ðæ7Q±J´:ï¢"_$!Y€ˆˆ$çk81t—3ˆÙBÐ×ÇðRŸfèî¯àX÷#d¦õËÒ'ØæëZo›dÛôJp¡j$O£"7¬‚¢a€˜à à*(uðþä`¼"ÇGma?@æZG(ö0…–p3î‘I}z¼H2¾åÐoàS~‚Û²ƒ°ùž&r± úò–ÌILZ;ÍäáBDþø†ßü Òe¢Ý ~�œ)¸„Ë����IEND®B`‚IMAGE 761 ./arch/spell/MoodChange/spell_command_undead.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ9"(§\��� pHYs��t��tk$³Ö���gAMA��± üa��\PLTE��� Š Ç É Ê Á É É Ê¾ÉÉ›‹ ÆÇÇ ÄÀ ¤ǯ ¹¾Á·Å #²#¹#¿$6&n'ü(À )Á+À-'.·'.À /¸/¼0 *0Á2»3¿+7°7À 8­;Š7?Ž;@¾Bº;C«2C³=Cµ=S·3YbW[­\œ]wY`qa_Jfq\h¡h³0j„Cj¥k¡ileUl¥n‘moª_utx“€šrƒM„‹z…ÆŠ”ŠÌ!Žª.Ÿz‘ƒq”ª ™h<›Ÿmœ¤Ožµ9¡N,¢n)©y­‹?¯O"±`+±b-´³8¿¿¿ÀÄ'É}8Ê„7ÌïÍLÒ€*×~/ßË,àààêv-òS"üN#þ(þM#ÿM#ÿÚ&ÿÿÿ³ÖA��IDAT8ËcP"�È3°àŒƒNAR~@éâb Šñ[‘Ç $Ð €ÆggãqH?XA6vI/‚”dãR�¶¤®€Í 0Ø hP™„àp$D~dboB¬à·V5ð³âÕQFQ UÀb“©+˜æÏé”á-‡ð&Ü‚Ñy©òZYEÉ–9¹v˜áÀÂç“+ á̪‘¦ˆäMx8Z8x²¹z1‰ÛŠÀd#)àÕÓttww±‘1G jx<˜ÅæùªàNrênéùq Ò¸°k‡DÙóàK´læ^jÌxS5—$)Éž/` Ï�^SF á-����IEND®B`‚IMAGE 381 ./arch/spell/MoodChange/spell_conflict.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ�+MJÆâ��� pHYs��t��tk$³Ö���gAMA��± üa���9PLTE������1��ŠŠ Š Ê'ü-ŠVaaac2ŸQ,¡¡¡¿¿¿Í…?Òiàààíu�ùqØÉÛ-���©IDAT8ËÕ’Kƒ0DŸà$¢µ¿û¶‹ôƒmÕµlçf ”bGï)EÕ 0ƒM�Óú¸‡D°êa¼‡¤5�Œ®)7`îîîFœ“>“^pwƒæ¤Õ0³0é)`¾.S\&e“ÃÌWÌZI1[^T­"–ý)¦U¨¼ã=û3€°0žø^Ôès Æà’âfMþ»jI´‹/î~¬O»NPJ¿Yìèý˜hùAE˜����IEND®B`‚IMAGE 1069 ./arch/spell/Change_Ability/spell_confusion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"I]›‡��� pHYs��t��tk$³Ö���gAMA��± üa��IPLTEŠ Ê d« e™AjO{S¹<cZ‹>e@lA^FfašAuFiGmi”D]\¡‹·AcHe;fD^g~u ?jBb_Šh‹sš˜¢>iAbB\JbCW]tgor¤€zB]Wy‡~EeNu_v`p‹} 8_ Ki ev uŠ v w ‚Œ!8\!?f!Li"E`"a•"bl"xT"”C#8b#:Y#Rp#w¬$I]$^w$ƒ’%J^%d”%k‡&ý&5`&7q&8d&c`(;X(t’)KW)e…)s†*Bi*Cp*F^*IY+8U,8b,;\,C“,Iv,ˆ›-5d-Bƒ-L .LW.O”.[y.[‡.gN.uš/@[/PN0Af16X1>Y2N3<W3z“5qŽ6P„6Q6ˆ:6Žh7E‡7Zg8F¢8Rj9uP:SW:W…:ma;>r;V;o<;x=fU>CZ>C\?W¾C9yCqfDZ–DgiE†FmNFwrF{ŽFˆ[FŽYH^¨I_™IpeI‡šM<MmAPekPgGP‚ƒQ3RQS{TD[V„YWR¢XA¥Xk™Zw]7Œ]Ž8`Fƒ`x]aT¦b9mb~@e˜[fT}f¦Žg?Og‡=i”En•9oEQpS_q5eq9Pq€BrR¢v…ow4€w;–zIW|O”}ŒC‡OYˆM†‰•_‹ER‹U[OR‘Mn“Uµ™T«ó9œ£��IIDAT8ËÍ’C“DQ …ûŒmÛ¶mÛ¶mÛ¶mÛö/›7]½º¯«{;Y$9•¯*ɽa„r1·:€ƒ1þ#ПÉJzŠHÀw¨_ߺßgªŠÏ^0 �Ãöê\zýUöA¶p²¤\MåR®–N^|./è3ŒUªf§% ý xOÆ è ö±Ú¹é¢ä+•¶…¡ )>AJ,Ñ×”±6v̰­Rᦔ· ý”<¬\‘§!w`ïûg‡DÖ3£z0×ñ0K�ú^žºTèÔŒ–GG5pÛE�µ”3¹¤Ð:é‚x²E÷öÆGY£Mm°ù¬¹ÍóU !¢q…ùPì+'…  Cþ‹v¦~"pðÜ‚ù; ¹Í 6‚,ç�‰o»1‡€˜œÀÏî`’NϦ-ÿ}ÕlgãVÿ¹÷o¦†Š2����IEND®B`‚IMAGE 377 ./arch/spell/Misc/spell_consecrate.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ 44xììŽ��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE��� Š Ê'ü@@@aaa¡¡¡¿¿¿Ú¥ ÿÿ�ÿÿÿ¾G;£���ºIDAT(‘­Ñ1 Â0€áŸBK«“7ˆ½AéDÁñ-†ÜÀµƒ„€KÖ8y¡—sÐW°àÖËÇ#/ÚQŒÎ mýÓb20‰|¿ßqÍ"‡ðê˜ pãÒ÷O*ÀnÎGø‚˜?¶÷(O¡S0…DŠÕz§w+‘<8t‹±’ȃGßa¬%¥”®‘ZA* " e ’ÙÄù®Š¥óµ‚õœ ÎwÎQ@«‡-ŸþNLþ KÚÅo4#x<kYA¨\T����IEND®B`‚IMAGE 716 ./arch/spell/Change_Ability/spell_constitution.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ—"O%��� pHYs��t��tk$³Ö���gAMA��± üa��PPLTEWŠ ¹ Ê É ³ÂÈ ? ¿ ÂÁˆÂÅ¿}"˜$»%²%›&³&ý("’*$ /(¤/)™1+§3,±5&.5/³8"¯82­82®?0§?9µA;·C=¬H(1H1™I2šI8 JD³MAIN-£O.¤P�(RPrTIRU8œUSuY;š]EH`T\aM’cbƒeQ–ec…j^gjhŠkSVo[|pdmr^zw*€t}u~€¡uzcx‘†Ž–Š“›MV›kqœNX4O„‰£@T§CX©XpªB^³]j´(Ï’PÓ–EÔ–FÕGAÖF?ÖGAÖGBÖHB×HC×IC×IDÚI<ÛH<ÛK<Ý%,ÝsSÞ&,à!àtRó~Gó¬:õ®8øQ,ûƒBþ"þS)ÿ@@ÿS(ÿ…@§5³Q���áIDAT8Ëc#�È30ãŒCM¿’­(”)l¯Éª€EÈÐ58=DCÔC3‚=…Øá tü“²òóó³Ò`�ÌK Ô…)0óŠËÉËË ˆŠ‰‰Ž ‹rs<,` dŒLü’³ƒd ¬ÝÝœìLµÕR²}môåànà·öñÖã‘TPQV”–pp1—âDö¯–%ÂwlΪÜèÞäbBò?+ߌ¬\ À§ Šñ*€"˜aÆ¡+€V…W3V¹ø0C=uC.ŒO¥€bÄ È3�\vGÔ…Ë~����IEND®B`‚IMAGE 368 ./arch/spell/Cone/spell_counterspell.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ2ójõz��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE������1��ŠŠŠ Êÿ&ý-ŠVc2A¯.«���´IDAT(SÏ1 ƒ0†á8ÄY‡t—âÞ¥=0ÂJ'Q"uÜ Ý{ ÏÙáWšdì·åAC^µ&SÉyQ+Ñš�\ ˜,ø,úâåF€hËé}€ ˜µ€Áµ(ü6Ш•{=Ý�[ŒÚÊ/Ùé ôªg¿Ãæ æüƒÇTÕe~Á kÔŠS¹ÞK:º+Rr<¬3{IÐ"%HIX[Ì:¿ !HI�R€”„wP¥ ûšxjIà @|¦SÅáv����IEND®B`‚IMAGE 337 ./arch/spell/MagicWall/spell_counterwall.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ 4/ãý=��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE������1��ŠŠŠ Êÿ&ý-ŠVc2ÏlQS���˜IDAT(Ïc(G hü†òPàBE V4� t-¬H@N0k€\ „Z2™ÅÌ`6d`fH@6”CØLLÅÅ´4fd� €Š ‰4 aC „�ƒAG*\@Xx"³Ah€*L€Á 1p²_Ø"„€8=€ÒÐѨ .¨€¡M��}¢èJ‡˜j����IEND®B`‚IMAGE 423 ./arch/spell/Bomb/spell_create_bomb.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�Ñ� Súþ3���tIMEÑ�ⵃ��� pHYs��t��tk$³Ö���{PLTE Š Ê  #  +!"# &ý- 12891%<<1?C FMDQUC;Y `elb,vv-}#~#…xkš€P±ؽ›���žIDAT8˽ÒÇ1 ÐÙ!¦—Ð{¯ÿÿ…ˆ6°ÄÎ1§H~²”‘á3Afîà½q_ =6pX€ ö£Åå1!¡eÿ|=(EÔw½ÙPD„dÔ6ƒðR@L0ı‰O€W¨öÀ2É&ÉVæÉªAnçÕï€ÅúÖ5Aç~¤ Ó¦ ˜øÄoAPns¨G[ÝoÌ¿3ƒÌÜ=ã‰É™����IEND®B`‚IMAGE 1463 ./arch/spell/MagicWall/spell_create_earth_wall.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�Ñ�||á���tIMEÑ� §¦ŠS��� pHYs��t��tk$³Ö��5IDATHÇÝVíOSw¾VA-®XP9眛Ùà7·ŒEƒhŒM6K¤Æ¨ë ­ã]Ñ©¼´¼ôJ"ÈXŒn§qŒ!`¡µ¥”ÒBÅZ± òfÔ™%{º‹Œm×ã‹ÍÉ͹§·ç9ç9ÏïÜ×ü¾ F,hv/ƹ€å ÍÿnÈþªœËø(/kÇ?š,8’ð÷Ï?"Ô­ ‰›ž|è¥�Dgw:;È{êõÑ‘"!7-“Ÿs–'rósŽÂùæ4FE(ૌ‚ÔÌ$M +ŒyÜíùÔB<·ÓÎú-QNƒÿ³^bÚìN½E¹û´¬gw‰©ž%–– äQŽ6ÿóÒméi¼ÌÇùü„ù�Rø;,AS¦EÀèS•îØáû›•�À“nÂÕ½ÌÚ¬,Þm× øÐÀ¼Rfk]P·Rš÷uº 5u^€/¹‡*‹>˜´x¡^Ýõ÷ÎáÁAêiñ¤‡pjÉ ñÞ!sªÇ‘ÇæÅcÝð—à™~n')%ó˜  =®÷BùŽÛ¤XÄæÄ#¯›“›¢I£‡]ðüÞŸ·/"ÎŽ€aÃJ¥l×É“|AÚñD^ü|� ñ†¥zòiï"Cýæ¼ì¯P>ð×aùüÓ™ìs"Cj¦íK,<�Š §ù�J‹ö™n„–Iöâǽ­!¢œÃ(ó‘Ác²“c2PÙÝ}¼ˆL™#~²|Nrª�m¢Ùñî�°Ü féo%/–EÍæ¥˜q÷d&f#øvÜàS(ÜGOQ~^œ]íægúއþÆf¥4 Š30Qé_�¨ZKº:=(–ÀáåŠpmÝfJE4Iòã†Û}QÝýÖÀê’=÷Ôkÿ]o¿:àGåöA5,¹ iW[ŽîéU”q‚©,ÌÑâW«øØüóFqÞAJE¸"5åÔ)ÃTä\È#ÓÑB£ƒ”csÆRZlÍ!Ô PãcÓâa­ßl:§†ïXF4÷ÈàY_³µ¯‘&ñãi�Dyqc]¾ŽÛ«/VDÜmFH1¢÷«)Žœ=T7”fÒÈÒ2Úd"ýË¥1}*RYƒ­PRÀn_á2-Ñ-GÞ™3a&Ðâh× j<î9[ýj–TÄÉÊ¢“iVZt_ éй…4fdÞ¹\&‰´4®GÎvr°„~ZI»Šuµ* “À-¬_x¥<üô)AjÝ“¹Ø‹cÞS]0Æ;¼± r£}©è€Tè¶êâ˜ÚÒ]ººwªe1bviÁþ %ŸêÞÆIÆê¦éàLf4Ö–{ÁYÖ¦×+$1 ö 9H,dë¯oÿæÚ®koýP¾ÛÚ-Øn…8T«Z¿ydâ1. �–„Ë´ ´Þi~ãRy„©éMœ¸!‰«½iâØÌ£fÿï+#,hæ2y9Ûüðþ¡¡H*Š0ú@EJYLOó†iËb».°V±kPü¨ˆi÷Ó{»º<¨VMš–`W_­Ã.*Å'^s4�9§#­ kÏË¢¡w¨ÐeôT­TJ>³©ƒð"{ƒÚ×~ªÚnm ¦¼Vµ G¶FVvúNšw²<wkwÃ:´lúuÓå²lk[H•øÃÞ_Bê™]>v «V±GwåÝÑvP„=š{*ÖT¿ ŽRüþKý«@òB6Ä“•u¼LÂ.)䤤ð‹ âäE±%±Ð; ÍàèVÊ>WˆcÓR“ä…8¯ö/êf!ŒXÐì°?�‰„È*{Vo����IEND®B`‚IMAGE 475 ./arch/spell/MagicWall/spell_create_fire_wall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ �28¢��� pHYs��t��tk$³Ö���gAMA��± üa���EPLTE���Š Ê &ýbbsc2s{ƒƒƒ{‹ƒbœ”b±!!´¤AÅ´1Õ´)Þ½ æÅíu�öÕ�þ¤�þÖ�ÿ��ÿæ�KÀû7���ûIDAT8OÍÒÁnÃ0 PemcEv,™‰øÿŸºsml½ ãU2Xž"æ›<Ÿ_¿dûSðzÏ JÓbfª¦V´Øã€=°-ÐÊëœ` 8IÌ@&U��¶2ƒ‚SjÝÇn�hŒuƒŠŒ¼SD¤/(㙵î€/ŠÓlÏë¾îÌD/:ƒÞ!™™9RÐ×’dƒïy¼rïK…²Á#GÞYe½¢à¤7²Žu§Û  UU2s?Žõ‰èF" $b¾Bz 1"hKÁhw¢#&@Ì›†‡†{÷cú`Ñ¢ªªjG×Ç~ʿۯ‘óíüâJž����IEND®B`‚IMAGE 338 ./arch/spell/Misc/spell_create_food.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ#ÓíÅ ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE��� Š Ê'üG$d3‚B' R-Áq8Í…?îçÄ ���™IDAT(S•ÐÁ à P Á�ÙÀeƒ(+Àõ!½õfŽ95dÆí! 1–zÈ¿ý'}Y2L* ú“ï2hxÜ4 Ü[C5 •Ð- 'èhõÀÑb@¤9 €@3¯¾†ç‹‹�?ÌÅ4À@\J¾ÀÆÄû±8aËuë íõX4ÈEÆô;z‚%f#À1x Î~÷ëÿ`裂/»¨VO„«ò����IEND®B`‚IMAGE 505 ./arch/spell/MagicWall/spell_create_frost_wall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ƒlU‘��� pHYs��t��tk$³Ö���gAMA��± üa���ZPLTE�������ÿ�1�Š Ê ÿ&ý-ŠVbbsc2s{ƒƒƒ{‹ƒbœ”bŸQ,¯/_´¤A¿¿¿Å´1Õ´)Þ½ æÅöÕ�þ¿Êÿ�ÿÿæ�ÿÿÿí¦Z��IDAT8OÍÒÍRÃ0 `“„¦?¶*°bkÃêý_“ —:C{cØ«¾‘W3NçI/æK:ŸßŸdùSp}ÌNB•¬ª"*š%ëéd€Í 0“ÕQóõl•¬ ØHŒ@šfü„5 cc*)QPéÇ 2—RÊ€ì‡ )­±Æ%¥ôC‡Ü©É& Û­�-˲÷ö_“M´cI²âbkÜÚ¡ƒ@XÑK¬{XÜŽWdlì•´=¦Ýæ®#€33+÷ãÙÑ”dаBÂÇ+¤C6t`~«twꡃ€ WGïDƒ€ h¯âÝÅ{oý>ü0K–JÑ{“Ó�~Ë¿ËÓ¤ó勊(Âèä����IEND®B`‚IMAGE 914 ./arch/spell/Misc/spell_create_missile.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ)"¸ÑÅ(��� pHYs��t��tk$³Ö���gAMA��± üa��›PLTE���IJQR‚ЋР¢ ª ² ³  à Ê 2ž º É e e ´ f ½®Éžµ˜()( ’ F!È$¼$‡%—&ý(( È(((*&w***,$Ä-%Í-'"/+l///0>0>0(È33352r5556.Î</'<0'<:Z=#=*>6Ï?:š@;›@@@BBBD=ÆD=ÇDDDGGGIIYLEÆLLLM-OHÒOJ«OL}QM­QQQSMÆSSSXRËYTµYYY[H:\4*\5]4*]5*][„_[«_]`ZÓa:b`bareb“eeejc_jd_k>kD)rrrtr£vqÓwsÃwww}yÂ~|¬~~~†††ˆ†§Š†×ŒŒŒ•••˜˜˜šZ,š˜¸š˜Àššš Ÿ¯¢¢¢£¡Ò¦¦¦´´´µ³Ü¶¶¶»ºÓ½¼Í¾¾¾¿¿¿ÀÀÀÏÏÏ;Ïe‚��\IDAT8ËcÐ$�Ès�ðãä)+ §@Ü» Å—Ÿ_PM‡•’¦b~~eÇÚì X£›øÕSJë °*`‹²ãÊTµcu§'b.ghÄêHN»v~~^±tE GRC›O+4ááÒHlEWÀíÃ2?Ý„‹Ÿß"³!MÈ}@б\‘HéÔwX¡*@¸Äc(‹Gv¤ªŠû¸•Ê™P|!—‹ä>~.“t”¸PÍ÷Hð‰á÷ʸÛ4R5²lÝ3ìÌ+e=!îSH—àCQÐVæãSælÖæ]ÎP v zzPȰ,2 4L·qÎC¸Y·²pNj¤}µ.’ûP|¡­ ô@x°_N,Â}‘Åjfp–ØÌic(÷™hEœ\´Êõ’Üp*PÍ O—®‘Ç“ì¹LÒœ]ñæ î )òr^À@@ž�it¯ì û%����IEND®B`‚IMAGE 400 ./arch/spell/MagicWall/spell_create_pool_of_chaos.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ'äи7��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE�������ÿ�1�Š Êÿ&ýc2¿¿¿ùqþ¿Êÿ�ÿ JÓ“���ËIDAT(‘‘±ma… )%D¢ÿÈE”5<�ü ¸ð–¼GFp—52DæI‘pg_é×ñ =à×`W_àZ:> ’«ª V0­Ò&o -Ñ’cëÁÓR­AÀ¡‚c4˜†¯Cqá?€BîCIÚTÅÝÕJÛÕß]4°;º|(7óëöéC×[èôámZ´¸û·Tƒ‰îBÒ‹‘à ½�÷¦©<m2Ú"Zê:¶Ò@B†l€SBí>Óàÿ ïBÎÃó9> .;ð ͡诘����IEND®B`‚IMAGE 330 ./arch/spell/Healing/spell_cure_blindness.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"$[$p��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE������1� Š Ê'ü-ŠVc2±!!¿¿¿À��ùqþ¿Êÿ��ÿÿÿ¸N#���IDAT(ÏcE hü`†P`L‰€ ª�Çÿ{,Èýìß ð,ï¯bAàÿȨøY€ý×wd®i]3ê5þ7 Yû“¿Ã(ó­÷n4Ý»w£xoqÁØ‚.à‚.àf(š@[¶pºKQC0š��µ”ÇËÖc}����IEND®B`‚IMAGE 724 ./arch/spell/Healing/spell_cure_confusion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑYų��� pHYs��t��tk$³Ö���gAMA��± üa��SPLTE Š Êb¡`•>cU||šG…@gHkIuLhObo›OSfVmm–_”r€^uOsQzRm?TEe >o ?u VU n‘ vŽ"Er"Wa"_{"‰|#xz#‘N$ER$G^$G‚$Ub$pž%:b%VK%~…'9m'ü(7`*4f*mˆ*n†+7W+;g,b‚-5`-:X-BŒ-I‰-Jq-Y€.az/<W/>Y/`~0=m1UT2Ly2]f3Di3Oe4€”7=V7=c8n]:ot:xG;VT<ea=?t=lw?U¨ABrAkeB>•DyZE<vEF\E\šF;UG_ŸH`]PZQzBS9NTA‰W9„WW¤XGŒ]„Ob}Cb….hƒMk4_lLYplu<|u„?vLXxW€yG–yLYzDXÀ��ã`}b���æIDAT8Ë­ÑECBQ†áóŠ­`w`\»;À,ìîvþÿÊ…Û¹ç¸àÛγøfÆxŽ×Üx–˜ÜƒF¼™X8Ö@i’¦Ãá·Í±S^64®§}†ž¯¾?ôó#½{ŒïóÔº+i#¬ê%˺F—ª%îÓ·èØòCÜÞ}e5ÐÒƒ‰ÖZNX¾ÖÀN?k�œ­êV/ˆBçÜlóŒÞ# ¶2UñºŠ" <ìòzΔ“ç÷¬§û5…Ź~·ˆXˆø? ¸€ˆµ¤½¾KüûŽK{\ó_„î>øcM»‡����IEND®B`‚IMAGE 307 ./arch/spell/Healing/spell_cure_disease.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"õ™Ÿ9��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE������1� Š Ê'ü-ŠVc2¿¿¿À��Ún{���wIDAT(ÏcE hü`†P`L]§TÂö dŽ3gT” :fÌœÙÞ‚*Ð9C!ÀÀÑÆ1³É u¦ ª;€×*4U«V¡x-qÁX‚.à‚.à…f(š@[–p pf5F Áh�˜“uÉÍ����IEND®B`‚IMAGE 351 ./arch/spell/Healing/spell_cure_poison.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ%ÞSt×��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE������1��c� Š Ê'ü-ŠVc2cDÀ��–zÍ���£IDAT(‘± à E_Sĵ[;Š ®ýˆ|€5<,Î!³b»ú)YüÊŽy¾,¹›‡Ç¹WXX€½gX°Ëx„IX þëy“‹O²®ÔQ.hÖLZýôKìÀÉYÞ¨ô.”{iv×!“Z_ÁÕ´x|x”Ž�¬.ÝÒbŒ'µSF«r=ûýØh­u nx�ÈAdRæÀÖzÇq_:ö™?Ũ¨3?“€����IEND®B`‚IMAGE 815 ./arch/spell/BlessCurse/spell_curse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ / Ë�ói��� pHYs��t��tk$³Ö���gAMA��± üa��JPLTE������������� � ���������$�(�)�*�+�-�/�0�346789:;<=>?@ACDEFGIMOPRTVWYZ[\]aceklmopqrsw|}€ƒ…†ˆ‰‹ Š  • — š › œ  ž ¢ ¦ « ¬ ­ ¯ ° ± ² ¶ · ½ ¿ À Á Â Ä Å Ç È É Ê'ü¥Ê G��JIDAT8½Ðë3Qð·­¬µˆRä¶Ä:.å­ˆ6)lʦ”KåØÚvýÿ_eš‘iÏœÆϧ3óþfÎû¼ð9$0d®tI‰òw`¨ÔCu:¸ÍP¾=-è4P7¸ ÈgÈ&S€.#hd cŒÕŒ€Uq/­>xˆ ´Ìóüø‰À¹´ÕÍúl°Ðí4ïó²�0ßDŒôŽßîO¦ã÷•X²˜8ÇÞæîÓ]lr„A¯;àd´ª¿dWÜ!·€•°eI£½’…ï‘4Çòù©feÌæL#¾Ú:Ï‘ï±Û"ma\Ž$  àoh0Þ©“@s•žãû0’MÝ’À¥ã"}4+‹ŒçæP·Í¿š8mtÍ„+(Ö¬ ìs½rFÁÇÉVp,Vú4bkÚ è¨Øì§Sü Ü�æ7P¨!så Ã/qlÄüj¾����IEND®B`‚IMAGE 267 ./arch/spell/Golem/spell_dancing_sword.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ,vå)��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýd3¡¡¡$™Þ>���[IDAT(Ïc0F h|Cc% H™�š€A6%B „ f" °¡;,�Ô„�šç` ` lhÞge@`APpaE`qP@SAµh€ ¢C4�¯nCA,'õû����IEND®B`‚IMAGE 352 ./arch/spell/Change_Ability/spell_dark_vision.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ;fÿæ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE������1�Š Ê&ýc2cD¿¿¿‡€Õd���§IDAT(‘Ï1 Ã0 Ð_0ÅÝr„n=@. A79@Ç\£ƒ‰·NAÿ¶â8²!PMöãKH˜»B÷Ÿ0kSã%:ˆ)x_xXH>+må€P!®™¶UP‰f«m8[îv{ÇäL/šKDfrsC¤e;[ É!¸Õcæ'ø[@{àŽ+ï GZU°ƒâø#”= )Pg”êHh þ½„}Ó±-Lü�¼ƒÌ÷KMN����IEND®B`‚IMAGE 280 ./arch/spell/MagicWall/spell_darkness.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEѹp}Ò��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����1� Š Ê'üc2ŸQ,¿¿¿†¾ƒ���bIDAT(ÏcpA h|'c Doü¬¥¨ áeh…(¬©Ì(¶0°3  °†¢ 0°2 8Ì€5�M 4�Åé ̨â h¬Ì¦`Äࢄ œÐ�´¦b``àd‡����IEND®B`‚IMAGE 626 ./arch/spell/Misc/spell_daylight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑIé¦��� pHYs��t��tk$³Ö���gAMA��± üa���äPLTE����1� Š È Ê Ÿ ǺÆÉ¿­¶¾ ŵ º ‰‹­ Æ ¤µ½® = ´ ¼!8 !½"»"Á%q!'ü([%+¨$,X*0s,3@33x/4ž.4·-5:55‰07›28|4:…6:´4;V:@\>C³=Q[PRšNT^SVSY’Vc2cDckcc‚ac•adicoŽmt~tŸQ,¯/_±!!¿¿¿ÒiÙ¤íu�ùqþ¤�þ¿ÊþÖ�ÿ�� ¨Y���óIDAT8Ë…Ò×ZÃ0` ´ì½WÊÞ6¦Ð½ÿûpCš…mÝú·lLjA`=BO¢�B€~�ÉÒ¨^&x¬%�V’2•;ª@%YH¥ŸžädW]$©(K¿` ÆZr�tZQÉ·û’à'•y^ARú�aL»Ý��’b˜G§ËÃ�ð¸x{¼Ù¯�’¥³ç×VO.;#}�€Ï2Õ™ÉA­?ÏÜYTûólÞ µíƒ -c–ž¯`vwzñðéu«ñiÿ2´~|u÷r¿aœ`eÿà|gÒ8Ûžøoš¥Œ¶ 'â8òõè :aûª–@����IEND®B`‚IMAGE 302 ./arch/spell/Change_Ability/spell_defense.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ5(f��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE�����€��¼ Š Ê'ü@@@aaa¡¡¡¿¿¿Ú¥ ÿ×�ÿÿ�œÎ¿Û���iIDAT(ScE hü`†P`L´€CGG Š�Glj$†Š'nN@H«èèèœÅ‚H/ïèè˜É‚GEZ¡F‡Š–B‰¡™øTÐK é~!Ýû @¶’�ˆ !‰Š(cTÀŒ&��7Θqª[6����IEND®B`‚IMAGE 302 ./arch/spell/Misc/spell_destruction.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ/B��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýÿ��ÿÿ�ÿÿÿð³Å���IDAT(S­Î± A DÑmaäN×õ‡ Lôß xa79&óÓÈö8·Œm>Æ©%ãGˆ¸ò¨””ÙÅ€$øjÔ�©pC�äÙˆ*@@6Ü12nÀðYZ ÜÈ÷Y“²¡A ÙE5HÔÜ!I ð¢æë]É^ùŒ-Ç6?l¾1˜ºÚø����IEND®B`‚IMAGE 623 ./arch/spell/Detect/spell_detect_curse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ,gBG;��� pHYs��t��tk$³Ö���gAMA��± üa���ÿPLTE��������� � ���� �!�"�$�%�(�-�.�0�2�378:;>CDJKMNOPRVXYZ\]_aejkmpqrt|}~‚Š‹Ž Š  ’ ” — š œ ¢ £ ¦ © ­ ± ± µ ¶ · ½ À Á Â Å È É Ê'üÈ}¸���ÕIDAT8Ëc!�È[ãÖƒLAc~^b^øØrYàU¤'!„O—Ž ² p.Æ@ i)Ëlìädgê•«€(ðPàãeaÔ––r·Qä–ó€(€`¨þæzvºbüò¬l†þ(vÀÜä £&£")`„äGª2iHKy˜£Ê#øð‰ºŠ3éšxãR`Ïi a$Ì®n…K¾–G°·—rvþRú¾@*ÀXÐ {Hú9Bœ<i™`†®‚`k¼€€¼5�9'©pàd����IEND®B`‚IMAGE 337 ./arch/spell/Detect/spell_detect_evil.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ BZ’«��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE������1��ŠŠ Š Êÿ'ü-ŠVc2Þ‚å���˜IDAT(Ïc(G hü†òPàB5 t€Vt-b¡¬S€!’€Qh ™  ˆÇÀ `Nd0f)```€˜!˜–… ¤M�PNK›À W˜–( Ò3 P… 4ˆA\œÊ(Š, ô)š_‚XÑY©¦$ „0”» †4�ê«¢{ÓÐó”����IEND®B`‚IMAGE 302 ./arch/spell/Detect/spell_detect_magic.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ µ¨zë��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýc2±!!ÿ��JFÂg���~IDAT(S½ÍÁ ƒ0 @QËJrgë+ 6ˆ:@…  èþ#ô@RŠàßüdÙ2¹ÄÍ£LÜž„âáå!«éYÉ=7] ˆÈ RCR@h€Õ}°R? `í1ézþvIíb¸àm7�Z6¿ƒážŒ¾ä&CãäOæ����IEND®B`‚IMAGE 353 ./arch/spell/Detect/spell_detect_monster.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ7<å5ž��� pHYs��t��tk$³Ö���gAMA��± üa���-PLTE������1��ŠŠŠ Ê&ý-ŠVc2ŸQ,Í…?Òiíu�ùq¢ÁÖ¦���™IDAT(ϵÐ1 Â@Ðod° aÄlár€ð›€]Hm—6Í‚D¼‚Ê©,’ÀÎöùÝ<†?ì¢/‚bîÐË¥Ù .( ‚MX'Ž®ã—”«ÃÙZIÄcøHlÙ8Æ€:‰F[Kï¦V’°Á¬¥ÛÙÁ8J¢­pðV¼á%ÁA;jr{&}¯9ÐÛÿ“ h|Ððû9¡1ZzŒ“����IEND®B`‚IMAGE 718 ./arch/spell/Change_Ability/spell_dexterity.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ8ß�Æs��� pHYs��t��tk$³Ö���gAMA��± üa��PPLTEWŠ ¹ Ê É ³ÂÈ ? ¿ ÂÁˆÂÅ¿}"˜$»%²%›&³&ý("’*$ /(¤/)™1+§3,±5&.5/³8"¯82­82®?0§?9µA;·C=¬H(1H1™I2šI8 JD³MAIN-£O.¤P�(RPrTIRU8œUSuY;š]EH`T\aM’cbƒeQ–ec…j^gjhŠkSVo[|pdmr^zw*€t}u~€¡uzcx‘†Ž–Š“›MV›kqœNX4O„‰£@T§CX©XpªB^³]j´(Ï’PÓ–EÔ–FÕGAÖF?ÖGAÖGBÖHB×HC×IC×IDÚI<ÛH<ÛK<Ý%,ÝsSÞ&,à!àtRó~Gó¬:õ®8øQ,ûƒBþ"þS)ÿ@@ÿS(ÿ…@§5³Q���ãIDAT8Ëc#�È30ãŒCM¿’­(”)l¯Éª€EÈÐ58=DCÔC3‚=…Øá tü“²òóó³Ò`�ÌK Ô…)0óŠËÉËË ˆŠ‰‰Ž ‹rs<,` dŒLü’³ƒd ¬ÝÝœìLµÕR²}môåànà·öñÖã‘TPQV”–pp1—âDö¯–%ÂwlΪÜèÞäbBò?+ßPŒ¬\ ÀoB.áW�Á¹’b"†¸:¨y˜ `ŽÉÅá˜;0L€ûÂÀ⊊/` Ï�–ËH\˜•VW����IEND®B`‚IMAGE 1077 ./arch/spell/Misc/spell_dimension_door.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ$œÔ¹Æ��� pHYs��t��tk$³Ö���gAMA��± üa��¦IDATxÚåVKlEžÙÙ¯íƉãGRÇÅTšÒÄ4´%-4%†S¥‚„¸ $T‰HÜ*¡^z,.E8 ‚š jA*R[éƒ4I%Ü4ÔñcmgíÄöú±ö®÷Ù õŠí ZªÄj¥ýþÇ7ÿÿÏ?3ð¹´ò!Zêa?'ÍÑ {ó±{WÀå–Gðÿ$@Pk’Þ˜ûòØG÷,`¤4iE6£¡>èíúøà&•ÑCу3±3—&¸îÇCàì¬øž¿õx¬ŽŠ‚˜Íe³0aŠÿD–x¨—¢6Rú’ëJH« N²„Ó¦90”U©T¨¥˜T{’˜P¶F€¡rØ:ûÒïì½aüŠ"f“ɰU˜]Þy—r™~I8 iÂúg‡/œ~·Ûš€@o*E»ˆÈGÎóozˆi}Ÿð%:r{ôÓcßLLLA?{$æØçn5D © xÛûOÿ|^ý*2ö}ilUw׋€B⾟޳_lCUQ£rz»‰»]«/ôÅaÍRÝX%G†æ,˜7p]YÊe |8ÿ±ãÜpÇ…h¸3<Ÿ±ç~ÍÈÛ–9‰—rz±$‚²$ƒ‹³NIF.Õˆ„à©j–5Ù~ 7]4àê§H‡¼f]y}`òF&žvnÀ W¼0Û[,TØtbžyPÕ¥ŒwÁœl/Móa]¶6(²ªR3—ûÆ‘ê÷Oâöb™6q¡Ú {dÔ’T‚Ët}CÍuÞ‰ØI¡<´Æ7.r’q;k}S.U;+<µ‘: ]ùew*Q…°V,’q¯Ñ¦hmçËt2¶?ŸyU×èxƒæ‰öïó€¶ÊΖ‹Û}Îâñg¦<ˆ6ôˆFU I¾¯CãŠFìxJdbؘÄÃró<Ø´E…íës·R°WÎÌÚ +ü&v-ôvE¨J0±næ§ñfg,Ä´¿óŒÞZñV0ßkñ®+ÎfohÞ˜ Ÿ£ÿô/µ‘S- ÍÏf{¾uu0*º}k§±Lë›#—ã¤ñ)óìfš SŒ‹¤ÄA,îé 3øÊÞÀ²¬EÿzƒMìÓu¸©!ˆ&wSI"ï†FltÊ=QÈ¿ûrn™ _Ý/òƒ÷R§)ðwÌÿ°XìC¯Ôfg^LÅŸmÆûÀzµáõßÝwBmÎR'3ÿ�¬·äòô–Lž¼[ÅG°QsßhUƸuÜ”“£ paÖ����IEND®B`‚IMAGE 312 ./arch/spell/Misc/spell_disarm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ35O{qP��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�����Š Ê&ýßßËQ���ŽIDAT(SÑÁ € …á¿a7p‚š·qÿ™<P@8Ù_^Ó<[±o-uþ†€²Bµ/‡dLÀ‹„Q:´¸Y‡híŠ#áòz‚²˳<¢tyƒc$ÊÖâ#‘-2¡èÀ6v,ÖÇŽÕÃGG‚Q$E×ÇŠ¤˜ï!àÒ¬:_y£_u®Å½Á Ä\X*€Îá����IEND®B`‚IMAGE 428 ./arch/spell/MovingBall/spell_divine_shock.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"+ú‹ÌS��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE����1��c� Š Ê'üc2cDŸQ,ÒiÙ¤ïå‹þ¿ÊþÖ�ÿÿ�ÿÿÿž�PŽ���áIDAT(SmÑA ‚@€álY Lx /`0`´b B !¼C !°M'oáJoôy*>˜…èûI´²xIÄgã­ƒÇ/(‚ 'pn߯{¡!IWʸ`t„mÞ<¥lÅFçLVÝÙá/Á¯«¤˜¬=Vu-„q+«¥*EAÞ¤]) \ÆŠG6¤ôp‰ß˜2nÁ>$锦˜ûÐ)ú”/¤èSº’#@ʧÍ …ÚNWg>ÀûiRèSü]Ë ÁO&kÕ¤tL¬ÿ9o>$\ÀK±£æehe����IEND®B`‚IMAGE 365 ./arch/spell/Cone/spell_dragonbreath.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ.Èò„��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýÚ¥ ÿ×�ÿÿ�ÉÖ/���ÀIDAT(‘ÑÁ ! @ZX­ï¥˸�d( úo%\r¯øç‘fIÏ[¥[ÿHOüTúh�€¼á(`ë ÈXÀPuƒï‰Ê0dÛÐ]I] È€ÀöFä ¬º`ú«öšûžè^ZÐ0ZÌ´öz5Cæ µ s8ÎÕYsaoã%qå! ‚sÁüzmp*�_À º´u†‡Ød– 4p ž!³+�·+u;/þû£Ò­·þ â9}³$£z����IEND®B`‚IMAGE 601 ./arch/spell/Misc/spell_earth_to_dust.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ âÌRø��� pHYs��t��tk$³Ö���gAMA��± üa���BPLTE����1�Š Ê )&ý99Jbbsc2s{ƒƒƒs””s¤”Z¤œR±!!´¤AÅ´1Õ´ Õ½ æÅöÕ�öæ�g½��|IDAT8O‘Av1Dñ¨-¢M#ªîÕ,{z±S[þS}¼ÿùaþ÷÷ñMÿäCDnÀÓtz =†Úwàˆ©kÍéz,¾lþ:u ùt§/;ϵN[ç2?Ý–Ê ½A²v9Ð`¹>+<ûÄlžBDî’n@£›hy9¾€c8£Õ‘µåíMDÄn[X]¥ Öý·@æýf׺�–uµ|*|s£ˆÈ&¸ºX""¢ÏΫ¹}5«éQ)"k=L“a ¼š^íaz— Ø`±‹È�C»d`Wì&÷Þ+Kûw�½ˆš¡Á´cÜ�U]YÍÌDïj¹æ ˜–Þݵ›ìBÛ«wË-šÛªm=·p»*‚WF&ɪˆ~Ì«#›»Ñ^¼ßÁ›Ž«‰?‘d3n’ó¼xÍ;›:Fíª¬—5çÙ>Ç ¯ã˜,÷ 0¦cŒé®cŒ¡î¡ãøWþx|ùaþø  Ó!:¨û����IEND®B`‚IMAGE 235 ./arch/spell/spell_evocation.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE)ŒR­¥c))Îÿÿÿ���‰¦íä���—IDATxÚ­“Q€0CmçýÏlDÆŠ`²c"}Ò…mǯB¨·“zŸ¤¿€Þv "f+@fb•m|ž7/�ïÃÅG§kd�S ˆ’wÜÓ!"¬€}gÀ‹º„A€ °$ü,½�žfa ¢_ƒù{€н@$è¨tËP_ç¬'š¢r²; »òûþÅQ…û«.ªþ°% *È����IEND®B`‚IMAGE 353 ./arch/spell/Cone/spell_face_of_death.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ#­x��� pHYs��t��tk$³Ö���gAMA��± üa���-PLTE������1� Š Ê'ü-ŠVc2cD¿¿¿ùqþ¿Êÿ��ÿÿÿŒº¤���™IDAT(‘cE hü`†P`L¤� ˆí�¢ˆ``�‹�)<@!ö²²"$w0è½zõY€}Ý»w¯ 0¾9sæ²�Çë»{ï-B`z}÷ì=dLëÞ­{³�Å–wëPlqàz·î ² ö…é À‚9©î•Š_€Ne@`aܘAHF¼  £†`4�Qs†ñJ 3����IEND®B`‚IMAGE 330 ./arch/spell/Misc/spell_faery_fire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ/2:ÿ<x��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�����Š Ê&ýc2±!!ÿ��5!é���—IDAT(‘•Ð1 Ã0 …awm1½@Nàðƒ»‡@PšÙPJWo¹~—Øžš·ùÉ’dn"Í{’™*Ãßà+�Ò–Tpz€àC ÊÖg‡Qá^ö ý³øVéÀ:5¼…´(8‹¶°Ã qÙr9£[—4¸5ד¦¿Ÿb¹˜R¦? ${UëGåÒžðñnáäÕÏÁPG¦~È cïÐ¥9����IEND®B`‚IMAGE 1236 ./arch/spell/Cone/spell_fear.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ1òY¨¼��� pHYs��t��tk$³Ö���gAMA��± üa��EIDATHÇcP“þKSÄ@SÓ9˜º ð0¢:š>@°1&2 F!ªY À2ÍßLsß¶Í‘@kk«”„'7Ó&ˆ CŒÓTEYI p2Í"ÊÉ€5‹çß¼yóÿGÿàùÛÿ×Þ¿?++‹±¢†§&91àØ‘#§‘€µƒ7‡@7((쟿bsaø>C£×3&ol/Þfj𳫥º«š]¨â|gWß{îýû÷ï?¸vý𕵲?°[ ¬¬|tõ¦‹!aG--n<~¯´ê¨‰Ñ©½ªëªÙYAp1mðòòz±y×Jã=É/¶í?[ì¶^ÃûѺÝœŒÓX £¥´âÀ¦ïGýÝ¿ûαÓïOŸü¿ÏÏ;«›«Ù¹À°nðŠôz±|õ±(ó½®ÑïÝëyÓ×ëÜÖ=„-à`¯·3T|pýÒÏŸ?ÛÚÚV¯^ýõë×ööv Qn¦½ ˜7xù{½xðèû«{Ÿ<ÿùèùÇ ·ÿ=vûömWWW€â±@:ÎvïÞ½‡zôèQsg3Z2Ævq^΋çÏß¹Ñ]”öäÉ“·oßE5›Ñ˜t.\¸råʵk×zùë£YÀÉ4OUP=+ÄóÍ›7›7o>zô(0VØ IÈÉ@ €ÉILLLZZZV˜3³0ºeÚl?²·`Vã¦M›888¨_T01HûªJ32p9*Hð34eÓ  ÷Y$ÜA$ ¹³°ºSÓ99ÕiÓ¦mÙ„[îoÙ¤rÝ ™¤°‘#'2bcL#`°àœ;wîó{þ¿ýÊþ?}ûþòѺ:½@Ÿ¡D2§»¬\ÁÒ¥KwìØ1 Vo^­j$ÃÃR@À‚#GŽ\›³àjJÎß›®oݱ§$ëý¦=]]]ÀàBN¦úV>»vïúÿ9¼,úqûÑÞÍkÕäðZ ÅpzíêË>[íÚý(%a³ŠâÇEë -�f´€€€ÏûNŸ¯ ÜS3åÍÑóצ†ïЬ9xð ¡¡!¼Ý~ôщóŸæÎøüñã÷õÛïoXûúõë¹S'¢YP\\|l÷¾újç}ý¯nÞ¸ÓBû°¹íýó ýðZ�¬Ë€àÁƒ@/OªÎßµk±dB›žŽ0cº.ß~´mÖõE[¾¼zóìàì» ¶Þ?{‘€€ˆ—½:::úÅ‹«̾uëVçÖÙ ª\\‹c˜›i§ˆ GOOÐú‹§ÏLŸ<å×É«Ÿ?^Øß&'ÂOÀ`q¨'Éuíìñ5Ölß²9((ˆ‹i9Žœ¬Ü^[ÿpÿñ}ûö‹Å¶ }Œ¢œ„+.¦ULüê‘ ‘L² >æº@/ã²�Rý^1kÊÃä„í!LTQ´ƒƒ±ޏ™à²@”Ÿ',ÈRA^ xr®¤¦"Pã (‹†¬-MM"�\u;ÿNGhà����IEND®B`‚IMAGE 302 ./arch/spell/Smite/spell_finger_of_death.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ,•Ë*E��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE����1� Š Ê'ü-ŠVc2cD¿¿¿ùqþ¿Êÿ��ÿÿÿda1?���iIDAT(ScpA h|'c 4€@Ä %A @&„„ 0ƒ@$Ô ¶Ð Ƚ{FBªÎl„‘Y° 0 à¼Û #!¶0Þd`€P†�ˆÄîR0ˆ”Pƒš��ÙŠlñá Z����IEND®B`‚IMAGE 297 ./arch/spell/Bolt/spell_firebolt.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ 5ÀŒG1��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýÚ¥ ÿ×�ÿÿ�ÉÖ/���|IDAT(SÅϱ ! …aV°žéO·å0€ p:nÿU"Œ›P¥J\|’!éÜ&mû‘Nú˜ô»ð"ƒ…€+[8î,× ¡‡Rê¸Ârë½Úr mÊꊇjãaue½‡¸ˆôÐÃ�Ý-ô;” ´üú· i›cÛßó°0ß›‰W����IEND®B`‚IMAGE 253 ./arch/spell/Rune/spell_firetrap.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÜ91¢Æ$Ñ���PLTEŠ Ê&ýêííOã銡���tIDAT(ÏÑÁ Ä@ @· ¼„t`Ö ˜Uÿ5Ýï.N?zYq[Âî+nHâÒaä1hƒ¤Aë I(ô Ÿ„6z’Pè°~„B�¬óÂ`ðeÀ]Öà.yò"Oé×Ù§trl—5ñÏra¹ìþ�å,ÊâÁï����IEND®B`‚IMAGE 365 ./arch/spell/Aura/spell_flaming_aura.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ0,–U‘��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'üÚ¥ ÿ×�ÿÿ�® ’É���ÀIDAT(‘ÑÁ ! @ZX­ï¥˸�d( úo%\r¯øç‘fIÏ[¥[ÿHOüTúh�€¼á(`ë ÈXÀPuƒï‰Ê0dÛÐ]I] È€ÀöFä ¬º`ú«öšûžè^ZÐ0ZÌ´öz5Cæ µ s8ÎÕYsaoã%qå! ‚sÁüzmp*�_À º´u†‡Ød– 4p ž!³+�·+u;/þû£Ò­·þ â9}³$£z����IEND®B`‚IMAGE 356 ./arch/spell/Bolt/spell_forked_lightning.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ- Û(èÿ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE��ÿ Š Êhàÿ'üÿÿÿò_Øß���´IDAT(‘mÑÍ Â0 àˆ Ø�^#h£à<ùÞC�ëí?‡¶±ð-ŸdÇ?eOQÒ{+;†¸gxþ—á `šO¨ »S‹&W@·«Ëâ2ϲC«HI”â�ªK”$ß:%b¡Œ°»‚˜<ÎÆ*šK†F;;}£<®ÖMV‡Yª, 矌9zJqYJháAþ®U1€waÉ/´˜ÓÖ×HP•ïâÿu£l ¾©édT`tÏí����IEND®B`‚IMAGE 335 ./arch/spell/Bolt/spell_frostbolt.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑO„*��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE������1�Š Ê&ý-ŠVc2¿¿¿ÿÿÿ z\���“IDAT(SÍ1‚@E1Žà ì¹À/&q© =… à�[£±³à ‰p^7/?oÐlÀæ®ÑØŠrGân•öq´áå‚ô` <æŸ�$vâb¼éDé}ñ¨s3>S﫦Jb;ÉàmÀ Ÿ´4N@ t€7xh!¾à$ZÁdË—v$Ê5¨7â òø„ïä8T����IEND®B`‚IMAGE 239 ./arch/spell/Rune/spell_glyph.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÜ �v; Š��� PLTE Š Ê'üñœ�Gfµç���iIDATÓuÏ1 €0 ÐÑÁIrŠÎõ(.‚xŸàI:JmBRë_þ#”…ÓÞìh™Æà�I |./²"!×ZZ *è=îH†D²ØPHH­Èvl;ðŠà¾üÿ/Í xVïSArÓzg°.����IEND®B`‚IMAGE 346 ./arch/spell/Change_Ability/spell_haste.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ72°<7r��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE����1�Š Ê&ýc2cDŸQ,ÒiÙ¤íu�þ¤�þÖ�ÿÿ�5>c���•IDAT(‘cpA h|'c D[Nf4J4é“ÌÜɆړ 9È¡9Ç8Ï  XËr&ðœ-F°‡%”§F( ·Å€½=¼¼@I b:P�á†òŽÒðJ$öÙÛ·# °†ŠFu”#™ÁÚ¹=�Å/ ÌÆ¨Ìt d„€*`pB��Ep£†iB7����IEND®B`‚IMAGE 366 ./arch/spell/Healing/spell_heal.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ Â%Ïa��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����� Š Ê'üc2±!!À��ÿ��0YK7���¸IDAT(SÎ1ƒ0 Ð*{æ œ R†îˆ¸ƒ3»\ k^H(Q§zËÓ÷15ƒæ=bŠ—¸5ÐÙ�:! A–ÅP ëfÏœ+â N²CðÂÅ èI9%==æ9³”Rˆib’1¨©°Õ_ÌØ¨ ?b†úežB‰è}&@$ÆV!â¡Þ«õô|¬oåŽû+®›¼ø„=ó ¹ú–a]Øæ'Ô•ÿ!^Æa¸Æ>ÔcYûK]*����IEND®B`‚IMAGE 351 ./arch/spell/Bullet/spell_hellfire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ+¡ƒÓJ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýÚ¥ ÿ×�ÿÿ�ÉÖ/���²IDAT(SË ! Diad¸¯Ò[�‚€Øí¿•€ùm¸%¾ñäaf¬^Û¨í}¨¾Fý˜Í�DHÐÌv€@ÄÐà¼fe›}§=®÷åú†‰wäÌ­ûÖß©,[Z.–’w±(0y䚤'.hI– Z’éR€$™.E/Iš óUô’D$šb¬úšD\`Xô5ɸGk’çF“ÇÅZ“z“%ñUÿܘóPÛÛûí|8JEç@����IEND®B`‚IMAGE 389 ./arch/spell/Change_Ability/spell_heroism.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ6 hF˜��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE����1�Š Ê&ýc2cDŸQ,ÒiÙ¤íu�þ¤�þÖ�ÿÿ�5>c���ÀIDAT(‘µÐ± ÂPàØì„l ŽD£]È–Z),ÒV’FpA\" "á¿äž<ÝÅ"yÆÄVÿî>î8ø­¤«3ÇVB­¸?…å)­‰(¬ œÁ~r›õ)¯Àþy,ŽMY}a¡X‰:¢†1˜YôCJó%‡fFa ƒ†´¡Êì L¡0R+~BÉæ½Á¢ Œ�¾ š“Ñ àêð¶�Pš>¼^†Ë°U½JÿÐzn;VÜûžcææü����IEND®B`‚IMAGE 326 ./arch/spell/Bullet/spell_holy_orb.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ:hkQ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����1��c��Ì� Š Ê'ücDŸQ,Ù¤gV���IDAT(SÅÎ!Ã0 ЯJÖ46ÖÑ¡áÝ¡pAnPW#•ñHa‡¢Üv?IIÒ•nŸùÉ_6Æ*¨æ£+ÒýTÒ€#PIÈ�†cL®ôË#v®¯Kª(N>pf«lðœWÂ|·ε>Lp½™‡$€lëÙÞÛš–/(nS•|6žÿþØîõ"ÿƒ® † >1Ï™§œàT����IEND®B`‚IMAGE 313 ./arch/spell/BlessCurse/spell_holy_possession.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ 3+º¥w¼��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE�����€��¼��ÿ Š Êhà'üÚ¥ ÿ×�ÿÿ�÷œå ���}IDAT(Ïc(G hü†òPàBMTA΢ȉJœ E‘ÄŒ9¥"• †È@3„800°Â"f‚À,„@äªU+W­ZÅŠ[ †-¡B@‡©©âq¦_BC9„R,Àµ€zÑÂPî‚ JÐ�oß§ÜŽûh����IEND®B`‚IMAGE 321 ./arch/spell/Cone/spell_holy_word.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ;$.Í���� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�� Š Ê'ü-ŠVc2¿¿¿ä"ÕÍ���ŽIDAT(SÅ1à E7È ÐSlæ(7`éÎÐìQ[vÔ†ëw�‰„´oóÓ÷—mÖ3Ì‹Y¹0ýN D V‘vH¯ô¨bÖgBúªp€Ã¶—F�i¥;HV`«âV€GÉ -‘µ„Ý“ÞÚWð [i„- Hi—>Ás=À3ŸV,®ÿræbºb–A|c(N¿­mϸ����IEND®B`‚IMAGE 362 ./arch/spell/Smite/spell_holy_wrath.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ$Ç®¥��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����1��c��Ì� Š Ê'ücDŸQ,Ù¤gV���±IDAT(Sϱ Â0Æñ!ˆ›[]œ}‡>ÀuÈ”ÎÅ¥ÜìâX§Ð·õ’;è%"x[~äÈ?˜šAs1Åjú?B9à€P€dä˜GW†×=ï\žç²B8¦Mnƒy eXn\ Æ.m3âÀœ m²M'~Û :I \g úl~Þ…e²0M‡ÿK´nÚí@»w°n¥Û­h·íöPºh·ƒ¯0í®ÀF ¯c^*âÙïD����IEND®B`‚IMAGE 328 ./arch/spell/Cone/spell_icestorm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ±'l��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE������1�Š Ê&ý-ŠVc2¿¿¿ÿÿÿ z\���ŒIDAT(‘cE hü`†P`LG ‡ î--. îêHZ8Ü<™V! 88L(ª˜d'KE‡»’�C‡BÀ©b §KÅD„€G gƒK ²wx-àT`qX€¤‚Å‘…s‚’;TØX¬uáPábq™Dï $ `Œ ‚Ñ�Q‡±¸sç����IEND®B`‚IMAGE 688 ./arch/spell/Misc/spell_identify.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑnëú¾��� pHYs��t��tk$³Ö���gAMA��± üa��&PLTE���Š € ¦ § ¨ ­ ° ± ˆ µ ¶ · ½ ¿ À Á ¡ £ § Œ |  Ä Å Ç È É Ê ¤ „  © t  2 ¬ b"# Á ª9H$6Cb#QA$,"5$ž%f<^r*:!!'" W"!+#‹# `#!S##1$#2%"f&ý''-)(6.-C11;65?==@@@CDAxDDJEEKGGMIHMÿ@@iùa‹���ïIDAT8Ëc!�È3ÈãÌXëIáP Å%êã£éæeí¡/‡©@ÄÆ1(ÊŽ¶âÁP i Ï…�&Êè 8´Á Qþr¨ ä,½Áò`nR¨ ¸,`†Cĺ¢YÁeŒ"/¯$Ц@Æ=E–º#ÔüÀ%ï«*_šËb(àׄè7’`—ÄÔ2Bœêqöv.ž¶N²8"‹O•…U€gl*2Jã‹n3&q¼éWÇT¯Yg¼)*À$NG&B‰DB *h¦ ‘l_—³00ã ä™ïæî®Þ¹����IEND®B`‚IMAGE 1021 ./arch/spell/Misc/spell_improved_invisibility.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ8~Få��� pHYs��t��tk$³Ö���gAMA��± üa��nIDATxÚÝVËoEßÙ÷{½~ŪíÆM“¦MJèC€J!Q‰ •9õÚâ?à/àÎ ‰ˆKťܢ *’¤¶ëÄÞ×öú±Î¾gØÈU¡ØÞ|á»ìÌ|3ßo¾ß÷˜—ò!6KÁgj½¦}NŽF mã?·`?Ì܃ÿ=��MŸ5ÇÈ ºLÖ»soç@uª©óf'áÚ„dlãÓ�es¶¬šsçzÖÐl¾®ñõêµ¾¹Ÿ[0*´SÓ”$Q*cC"$ÓuQÙ†¨æx ­öV¯}CS\¥é¤MA�4~4n5U�VHÊVR?ñò£Cë²ï¬Æñà²!Ü÷„¶þžkÝ}ýævÌSÿ"MA©T*‹g€‚ü;E÷O.‰Òá›ëåwßß/o/Ä8=�7EõQ&÷ÛÁÞ�p†µ9Î+-Ö—Ûs9P«ÿúC9�¾Ë)_Љç$%•–¾%VI�A`8Vô ¿þ¼TÙ͸.q&’"öá\à©¶ÅxN¶Ó.tZ©À?Å4EAßÇcÀE§÷)lÐäý«aòi~ðÑN¯ëTž‰M=yh%"ާzÀØÖÛÊU„¨©$D-+•¶sùý\ÁÐ5w÷émïVàË/´*ùePpD Ä8€dÚÀ%#™}‚á[M]lTï{áf\€Ë«íµ›[{5ÔØ—´½EÏ•Ç{%¥šÈ|kèo GD)ù³è3°´ �¼àóÂB'•}‰›¾?píüz먞;qù¹®1Øä^t,µªR«ÞˆœpƒåêRò¡csQÆí—e)n~sÃÄ^µUØCÅl­˜ÍWֺNjmp‚~<ÍÛ>ívr£i,pÂ!3J>†õ®®<¿üâ<½“->ôìu ±ï,,Õ^»n`(Yy&Ç@4÷g&·1쯋’“Î ç,Yf¿ÿîÚßÄ–”þ‚ÜTÚ•W«*%Reweóñ•®ÉÅÀ©_Ù¯”$Q˜?PUC…è|yç¼ÕgGz£›ž£vÜó#ÙÒ/¶L¾d~ � / {·y¶\/߃PpÉs™Ú+ƒÖ'<÷;¼Õn^?ÕBœ:@Ý*3êNã"ÕZ°ÿXŸþd_Â÷Ô j²´äI´YÈQ4¢àYäo½p£åúñ¢����IEND®B`‚IMAGE 299 ./arch/spell/Smite/spell_insect_plague.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ:xº¸ò��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����1� Š Ê'üc2cDŸQ,ÃäzÝ���xIDAT(Ï¥Î1 Â`„ÑO¶Hër‚ÕÅ „Ü $ÿÒ æú‚n¶P0Ó̓a,¡ô1vé+\ÿ· àt›}&>ßîMS‚¦¦9g O0Üâ ¾îXÄåd €N–&MZõH°hÝ4%àõû Žá=ýý> žI~d¾aR5����IEND®B`‚IMAGE 813 ./arch/spell/Misc/spell_invisible.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ߯kâ��� pHYs��t��tk$³Ö���gAMA��± üa��žIDATxÚå–MOA�†gf¿fÛ.[Ú.6B0FƒCR$Æ›^ôæŸðgø'Œå¢75!ô@ˆ1`„�…eÒv·Kw·íÎŽk/RdéÚÄÄ7s˜Ù™yŸ}g2“£Y:)ÔQ÷‚öŒ jûÚÒ_wwÁBÇü?�„(ËzíØ0ƒÆnèS;ÒTQ¯åRÒ®%( õs¡�±¸;8\Qúj×Fk'¦].{ššÔöõÒÕº“�F‚š &¨Cäa±ÖÓ”W*eVÝž6JyJÙH€õ¯òÑḜ¬Ò$¤ÑÙJÈë�X¼ +ÙW�ŒâCJÅö¶Åª….¿M„r‰®ñ”òEˆ­"¸!u¿¯×‘m<n¹V¡�¿Éó˜ªÞç–˧û^sâ[^üè˜sÔSÎŽtÜf¼¨>0Šª²Âç–c¢4ÏãÍʬ[ŸÉt˜$¥üȈҺ/º=Dôæ8#ðW"�à¹÷Ǒɩ½ÛwŠÛ›Ù6,WJõ, ¦q¶+!ÙÓsk³÷6¬îûzWëé4§<^K÷Ï‹"2Žïž†ž€¥·88¬ ½ý®•¬®d ¿$�Öyñœy#ˆuò&­dwI’íL™J¹bŒÇ;Žôá]ny)K)¸ �0ø%–>!†@äqqhìy<Îá_‚».«î*Ë‹×w¶2Ô;÷¾k  pq‹�úñ¹àB§uâr'¦¬î ¶FŽÓwÁ¶àå]K"Ü îúÍf#y¼BÌ Î¶3Ž%;v „Óy{�©{ËÖŸ2pã%ÄËG„!MÃ�~Ê#ŠYz¼œœúÖ†õÅ�_” ÕòŒeN‡3¼$ X.·)·àßx¶DÑéïÈN%ðßÀKðñfþcáܬ����IEND®B`‚IMAGE 668 ./arch/spell/Misc/spell_invisible_to_undead.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ?ô:Ñ��� pHYs��t��tk$³Ö���gAMA��± üa���öPLTE��� Š Ã È Ê ª Á ÈŽ»¾ÆÈȽ ™ › «¼²ÀÂj˜–¸!!!$@"$ž&z!&~!',''ü(¥")))-g*-¢'.c+1111X/1®*3¸,4€15Q45°.999;>;=9?‰;CfAH\GJJJJ‹GK«FNŽJOOOO¨KQ•MRRRV¥RX˜UZZZ]b]ccceychŽfkkkwww{{{„„„ŒŒŒ”””œœœ¥¥¥­­­µµµÆÆÆÎÎÎÖÖÖÞÞÞÒðõÉ�� IDAT8Ò×Vƒ@Ð+zlØ{Á†QÇŠ-v%± C™ÿÿ’(rÁÃZðp7g˜Y[ª™[亨ˆeÛ¶í*@”ŸbˆäljRñ ± ª,ÓIƒoP:ËríD¢ò<×àø2ŒUăf#A v›²©Sé%ì. "'Lc1ð8Ò'Ïà @Ëû–º»ÀŒºs@�÷χså†?‰×¯öÍbÿAÅêÉÕíјzïvî�–çË FÖwJ f–îú pñÄ7Ln�›§E`̇×¶¯ßßf Àü‚‰½ËÇÖÃJé¯þÍèÖùÙþ4x€…ÝΓ#S5 —ÿ«2T3·~�f¬8 ¥&€‹����IEND®B`‚IMAGE 361 ./arch/spell/Change_Ability/spell_iron_skin.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ95°Û_��� pHYs��t��tk$³Ö���gAMA��± üa���-PLTE��� Š Ê'üaaad3‚B' R-¡¡¡¿¿¿Áq8Í…?àààÿÿÿ¯_���¡IDAT(‘c0F h|Cc% HO�%%˜€GZZúÌ]«: ai©‘U]+ºV½ ¤†¥ÎêZ±ªk T 4,-|æ®]+ Z”TÃÒÓfî*`‚ (D„¦–Wt­XаV%sÖ¬·—Ü¡’6sŠ€jØÌU/6)áÓ4´¿ ¡k‘U($00ð2!‡Ä÷4 dATÀ`ˆ&��*Tië´š©Ó����IEND®B`‚IMAGE 350 ./arch/spell/Bullet/spell_large_fireball.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ=ùN��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTEŠ Ê&ýc2±!!íu�þ¤�þÖ�ÿ��ÿ@@ÿÿ�a€x���¢IDAT(S­ÎÍ ƒ0Æñ¬ðbíMÜ ‚:@-Á{м–$ú¬à®ÙƒÕ|Kÿ·çÇ kŠX±kÖPûø*ÕfÀ¹{ˆ $ŒKn“EaÓðÞEÏNwÚ‹* Ó0â}]æ°*À ÈÙÀBDའÆ'Õ¢­à0ýñÊ•ˆˆî:ÿØ-¥@P”÷a]sHÖ¬¨.öžä@X„ƃß����IEND®B`‚IMAGE 467 ./arch/spell/Cone/spell_large_icestorm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ#ö%5��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE������1�Š Ê&ý-ŠVc2cD¿¿¿ÿÿÿù¿dË��IDAT(Su‘1j1EŸ—!B[®\¤ˆë½À&µÙ®¶2xs‚t ªcXì*]`}¹’ /ÉïæÁŸÿG¢ˆÉ¼¦µ5‚ÊÌØŠÛ›ZCk,UŒ‘ˆTÖÐÚçA÷ÆÙ«cŸ-cÖÅí{uðéã2dà;wÂ|÷t‹Å´N«ãC¨CN¥‡EcnÞ™æêd>Eˆ>]-,  ,•XYôýc©¾Ø¹½nÌ\ØÍsõÔS'Ñx—²%¾¸è;yô>Ÿ¸ âå|6ÀH¤¤œ“«Rõåwºß* gŠE]R€]b³Î´©$7åUÔ ˜Æò@£è°:ð#úÄÌ/þù¨ hnÅz~ÁP‚­H…)����IEND®B`‚IMAGE 736 ./arch/spell/Bolt/spell_large_lightning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ )šçŽ��� pHYs��t��tk$³Ö���gAMA��± üa��PLTE )7/89;!=#?$@Š&S 'T -a 5_ 6_ 7i Ê 9t :~ >oGHT›N¨YŸZŸU­\»*?^½b·d¹k¾l¿iÏjÏlãuÏxãyÛyí{ï~ßEoéˆù‹ûÿ&ý(€í+–ÿ-b›.gŸ///7Žó9˜û9ÿ:ÿ@@@B‰ÏFùH¤ÿOˆ¿R•íT¡÷U¡÷U«ÿV«ÿ___cqn§ßq´ûr¹ÿ€ÀÿŠµßŽÇÿ‘˜ŸšÅïœÌýœÎÿªÕÿÁÈÏÄÙ÷ÆãÿÇãÿÔêÿâñÿãñÿñøÿÿ@@ÿÿÿH`À~��(IDAT8Ë¥ÓÙVÂ0àR¨R,h ˆÖ 1‚[ÝÁ q©,Á@ ©óþa{%iê9þ·ó3“L¢]ÄD‹©[@ŠXÞšº \1í¼ÌÞp­‚b†ì^Ð¥U2{9ñ\UœÂ¼å@N Ñ C€MÀóê‹ùð29}"�´—mH¬23]ò(øŒ léMâk„6z>sñîZBÞïQꉶ®og¤»Ø<GÚÊÒ?äËz š”9xŽj›NƒÑÊŒ$Ï +Žâ=< hm=4ˆ @Ý9{|Ou Ÿî�cC Œ®;>�g¬/¨Èº[½°K±#zs”6kŽsò‚”s(¹3äwKQ LjŸ~@Æ…_æ??ËRF‹©[?5ß{p¯Œ*Í����IEND®B`‚IMAGE 325 ./arch/spell/Bullet/spell_large_manaball.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑFàôl��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�������ÿŠ Ê&ýÿ@@—¬ŽÀ���•IDAT(SÎÁ ƒ@ DѿȰ©�Ü ø0¢h;ˆè¿„œ�ïrHææ§±lÚ†ùMS—& x€uO¸J'`Á ",:D™ »!¨+d(îó ‚É}» ¸ûš÷Zî+/¯55Ääs^QLîKZ £Ôô˜Â€ô˜$ ò)L’6Ú~  Rþ„ýìÇ14ºl´­ï¾‹ènÊ©v’a����IEND®B`‚IMAGE 387 ./arch/spell/Bullet/spell_large_snowstorm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ;–ÛúÚ��� pHYs��t��tk$³Ö���gAMA��± üa���3PLTE����ÿ�1�Š Êÿ&ý-ŠVc2ŸQ,¯/_¿¿¿þ¿Êÿ�ÿÿ@@ÿÿÿùh%^���µIDAT8˽ÑÁƒ „a¢DI»ÈÿþOÛ›:åÒi®|³6iL¼ÏiYòÃÌe�Å(!ÔA;˜"þºEœr¿ƒ¾ÁzªÌ¨JÇ.'.¹ ¹`ç¢Þb3“Ìê5YÀ7¨`ꂼ `ŽJï!Ü+˜  rT3Q](õ¬"SUžú�L²ë/ÚФkí”!à«É3ÈGü ˜Ry½sÿ�´ÖÚȃ„ùqÒà}þ�%5„ÐN����IEND®B`‚IMAGE 702 ./arch/spell/SummonMonster/spell_large_speedball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEѾ0¸â��� pHYs��t��tk$³Ö���gAMA��± üa��8PLTEŠ Ê ÉÆÄÁ¸´%«&ý*¤/ž3˜@ˆE…H~J|M}Qu[f\ed_eZgXj\kRk\vPy@}@~;…9Š�*Ž;’� ˜�›�£� ©�¯��±��³��´�¶��¹��¼��¿��Ì��Í� Ï��Ö��×��Ù��ä��å��ç��ê��ë�ï��ò��ö��ú��ÿ��ÿÿÿ ÿ ÿÿÿÿ ÿ!!ÿ))ÿ00ÿ55ÿ::ÿ>>ÿBBÿCCÿEEÿFFÿPPÿWWÿ[[ÿ^^ÿffÿhhÿttÿ~~ÿ‰‰ÿÿœœÿ¤¤ÿ¨¨ÿªªÿ²²ÿ¶¶ÿººÿ¼¼ÿÕÕÿääÿååÿððÿÿÿlJ"î���ëIDAT8Ëcà$�É0â ´Q B@—~26*x¨ê¨‰ãVÀ¡mlggg®ÍÇ„]¯¡˜aW dgèeçng§U¤¥[bŒcd²·­†nA=Mk;;ÏX—¤� %êzܨ D¤t­BÀNðs·Ó4RA³‚•[ÎÚ)-Ì?4Ø'Å×N™› ›#í£#ãÓSƒܰ;’QÌÌ5"...ÊÃBG@ é›`¥/ÅŒ¢ÀΦ€‰]T[[[ž…‡‘…¢€ß@¿l U#m€�% (Í8 ø!y�i¿-䪇œ·����IEND®B`‚IMAGE 303 ./arch/spell/Golem/spell_lesser_golem.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÜ%5Cܽ•���PLTE����1�Š Ê&ý‘U+°a;á˜tÿÿÿûÁ���bKGD†Þ•z���IDAT(ÏÑ1 1 Àƒü{`pÜÒ¥U%·—Æú~Š@,¹K¶ó aáÚ‚í}âbÉñ� @RlIy$xa›#qçŽë!XÐGDÄžŠè³%�È›ÂÝ*�ÃX:fâ)–K)7f« &t”M½©XY¬}>ñ ÖX&þºË‚£çoÀ=dÜŽ T™����IEND®B`‚IMAGE 306 ./arch/spell/Change_Ability/spell_levitate.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ެŸ��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE���Š Ê&ýG$aaa¡¡¡¿¿¿Áq8Ú¥ P§!Ã���vIDAT(S½Ë» €@„áaáB;X¦± 0;ÐÐØH.²‘±UÞz`$úgóÁ ˆB´s¼•} U („€¤„VgÐ’Ú‹ë']fØFqëa`?èN  g3ðôžÍda¶Þ�AB,„~ƒìò.†©LêMÐ|C����IEND®B`‚IMAGE 306 ./arch/spell/Bullet/spell_lg_magic_bullet.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ’p/8��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ý½��ÿ��ÿ@@�ºZ¤���‚IDAT(‘mÐÑ „0 P+b6°²ê Á-pì?)P.ñá¿>YnU4 ä¼ yÉŒF7…"'ð¯a¹rLpƒ� èXG”,ƒEcå£WˆöÝ1B ¤Ã÷¾¦=?ðX¦M€Ÿ5Lã–}¿¨>L>¨À\ƒEà�E«?VøÀPG����IEND®B`‚IMAGE 362 ./arch/spell/Misc/spell_light.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ67W›z��� pHYs��t��tk$³Ö���gAMA��± üa���9PLTE����1� Š Ê'üc2cDŸQ,¯/_±!!¿¿¿ÒiÙ¤íu�ùqþ¤�þ¿ÊþÖ�ÿ��¨2„Ä���–IDAT8˵ÓA DÑ/ÐÑ1j°ïXW.L2da¥·óª Švæ…Öê å�G@c€ùÕͰ!BJaÛÝߎ-°-Û1�‹ý~ÙfÏLKÜ—‘6Ôé‚r °<=óC¢»Ü·dßÐ>�¦ŸÇ\Е!D¾0€ ߨþØö¯ þÎú8µÐZ†ƒyù�Ÿ–³ôþI¹����IEND®B`‚IMAGE 280 ./arch/spell/Bullet/spell_magic_bullet.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑoÖB��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ý½��ÿ��«]š���kIDAT(Ï•ÑÁ €0Ðt�7Ù tGðàþ³x±ÐŸ^4·>B -zqnè.9>–´l(KCSç‰Ù2�£3@$XÀÑ0càd,��å¶„ýL¸t—Q;®ý÷/ G ZÀA?{oÎ->����IEND®B`‚IMAGE 659 ./arch/spell/Misc/spell_magic_drain.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ8 t‡�Å��� pHYs��t��tk$³Ö���gAMA��± üa���üPLTEŠ É Ê È Ê Ÿ ¡ºÂȳ¼¥Èµ È È º ® ²‰¹¨ÁE7²Á™ ¼!‘"³"Á#»&ý&#]'µ'%V(%[)$ƒ*'T,%§,&§00041`62~6285|:9O>;z>=O?5�@;”C=³HG\LH˜MI›MLbSO›TG�YXa\Y£_P�dU�dcneeiiY�jY�jh“mk‘mlo^�omštt~ub�zg�k�”}�©Ž�¿¡�Ô²�éÄ�ÿ×�ÙŒ~���üIDAT8O½‘éVƒ0Fñs·ußê¾/­mÕm][¥j“B|ÿw1¥È<ÞI†ÀÜÌbd`eÕµ€¬¿lØv89á>Š�¾ƒCÀw�…´`çç©”Œ�GÈ^Ä  {^HŠà¿$(¥|˜að¥àaîñæleˆ óïÏ·§ù„� zøÀÈæv©V?O ý¯ï†W‹ËÆiÆÿÁâEÆqïßBKC×Ù%Ž^®Íí6åéã…«·×=Sètt]/_6žš˜B·«ÓØZ¹R=ßDBp]Áp§·¢±Ÿ}€‰+pü—`¥“UÿaGG?Š����IEND®B`‚IMAGE 301 ./arch/spell/Misc/spell_magic_mapping.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ�Œx’��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýd3 R-Í…?Ú¥ ðæŒ˜1���wIDAT(Sޱ À ­H€ 7@¬@á2S¤N—6… R ¦@â:N�D˜s€ˆnUx(l¿ØïÂ¥B &"Ô d!ê„M0ã‚gI¾V?†Ìßè‰ ?NL‰ÛM0Âg¡ušTT4¬ ×ÁˆA¢j‰T0=ë����IEND®B`‚IMAGE 307 ./arch/spell/MagicMissile/spell_magic_missile.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ8‹…��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�L�Š Ê&ýFQ���‰IDAT(S…ÐÑ À Ð#,€q' ¹ ÷Ÿ©b#ô£üù©9Ì2(ç“iÆ úŠn ^6 Ȱ3ˆèF ð½’ÞÜuÁ%IoíRLG_�t]ØÊÏJ��Ó¸Xãc¢W,À$¥l°F¤õܾyÜzT!J8€FÜiYÅ”ÿŸÅ����IEND®B`‚IMAGE 263 ./arch/spell/Rune/spell_magic_rune.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ`‡šL��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE���Š Ê&ý¢zÅ_���`IDATWmϱ À@ÐOJ'9nŸìs£ØÂß'£¤ „¤ðkqÜo|*âS úâ!IòXcºà€ N ÙA´À�pXìñMS°À™ð–`!oYÕžÂâ ÷Á%üžÂ—ëìs£ô����IEND®B`‚IMAGE 379 ./arch/spell/Healing/spell_major_healing.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ2ADÇ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����� Š Ê'üc2±!!À��ÿ��0YK7���ÅIDAT(‘u‘±mÅ0 Ï0ÈÚ3x*Ôx�¦ j¥°pá6£§ð—õ-$¯ÓáH$Û†÷‹->²þó�&`î�&‚"X­…¦TEè%†UÍv�ÔRPh`ל½ ûžEÕZS¬xV±bpqÓrÿRŠfnÕ¯µß&Y䧈XÑrƒÈ—»‹_ƒ¥óÖ$—¸²¥ó<b ºW¶t¤#¾Vr\ëƒù î¦'x÷ø�ç9ÜåSøórë3¼ð !ìbIp¼G����IEND®B`‚IMAGE 345 ./arch/spell/Cone/spell_mana_blast.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ:#sʽ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ý­��ÿ��ÿ„„ÿÿÿçú#È���©IDAT(‘…‘Ñ Ã Y‘¢l€Lˆü`Ê.ûÐ4jª¾?Ÿ„}6æXb–z7‡b~¿þ\�O`à5`J(@ˆ)ƒ BïÒž$áë¾M‘íæ Ëc·Ý]”GsQ¸i)8‡Ç'áöÝã™äîQ#טåìSJ.I²Wr±Ö>å"ä­k7%Z¾AíÒ€Z¿¥³d_ê7HmA`ñuÉX����IEND®B`‚IMAGE 305 ./arch/spell/Bolt/spell_manabolt.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ�QÆb��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�������ÿŠ Ê&ý {•Î���„IDAT(SÎÁ „0 DÑä’­�Ü ø0 úo… »q‚´ææ§±lÎ)LóÁ©!ûK�`Äzé†�,ø‚‹Q*a‚¶A†â^;÷ìÅÝ· ¸·Ò¯H|¼µÔ‹×¼¢XÜ×´Fié1…é1I@ä+R˜ô} ÇG#m¼b6)����IEND®B`‚IMAGE 278 ./arch/spell/Misc/spell_marking_rune.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ Ы��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE���Š Ê&ý¢zÅ_���oIDATWcø Pú/ïU`°™Ñ´ ˆ@Œ&T’ HÚ¡XÑ´j…Öª@FƒÁd0p­ÐZ�VôB ¢kÁ .0c…†‚D»†Ô©L`À „Ha2Àh>ý  W¡ �¥›9Óü0á����IEND®B`‚IMAGE 868 ./arch/spell/Cone/spell_mass_confusion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ")4‹Ù��� pHYs��t��tk$³Ö���gAMA��± üa��wPLTEŠ Ê_’a›J†M}sžCbS¤FfRh`•]†t–}vGqHpKrcliDcAqh“€StYos¤}ˆ A\ lu!:^!bl!h!D"E{"n’#Bn#Vq#Yx#e{$E^$Sq%CU%C]%Ll%gs%|‘&ý'>b'^p(}])dP*I•*]}*r‘+9b+;b,Dv,F›,Jw,KO,T`-\ˆ.6V.Wf.Zs/K{2Ze2uŽ3=W3N—4;W4Hš5>r5“6=W6Py7Et7f`9Sh9p_:8|:UŽ<WT=7b>s|AE]ApCAsTB5nB;~CvLD„YFFŸGJqH_gLBZLG\MQ™Nc£NjVO|WP;S5sSœTF[TM—XtEX‚bZw.[<‰_ƒ3dGVfI‰f‹@gG‰m3TvAwwMqw…Cw†`zCO|ET|NV‹S©'¯˜ ��RIDAT8Ë­“gSÂ@EsíXP±;ö†]Š ¢X°bAbÁ‚Ê7Ál²2Îø¾ìLÞɼ3wßr£:ÅéõE�9ŠûW JŽ�(Þ¬ÅÉîÍìN|o1�Þ¸€Ùý×Ï»ó'戕õÎù9<Ïà g `x5uÝâ‡Ów¦¤ÉX:ÒßžWŒµi}Ésk¦PV‰û _LÜJÔW­^ðö•k‡ØêêŶ5¾2ptˆåôØË _2"þx¾p¨izÉdt(_°‰j>IÍ`wšEµ_ßTBb¼%’t½j”’/¢uYDÍ*©_·hÔˆ¯‡’¤£”|!úbrC¡F™J úZŽ× ÍÕ%* Fé I½@Q9ò@¥ûêåh¨ ÷ŠÒÃÞɸF-°} ÐjÙ@Ì¥Æ^{Jí¯‡Ë]zýœlgù‰3Р����IEND®B`‚IMAGE 355 ./arch/spell/Bullet/spell_medium_fireball.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ kW Á��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTEŠ Ê&ýc2±!!íu�þ¤�þÖ�ÿ��ÿ@@ÿÿ�a€x���§IDAT(S­Î? ƒ0Åñ\áa†fo x … –àô×bÔ·:ö½f—jþ,íÐïö>ü E’Hv. D‰¿K!ÓuRN×2‚Šv çq`óËйÉCukLc\y@Ænìz>ÀiéÉA{�IÞ@µX,=ÈÖÎÖÙjV£´íþŠp1óþµá H²F ÆJ)ýؾ€Iy²ßBB¸Àtq”����IEND®B`‚IMAGE 376 ./arch/spell/Healing/spell_medium_healing.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"\¯T£��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����� Š Ê'üc2±!!À��ÿ��0YK7���ÂIDAT(S}Ï1ƒ0 Ð*{æ œ�);â�îàÌî�`ÈÚ£×B Rë-O??¦Ûàv1…Ët¿ Çã í� " @Ï È² 4-Àì™zE<ÁQvè½p1ZRŽQk¢Å<Gb–R 1LR ôªD*lç+fì œ _b†úf'¼„"Ñ»&@$ÆvBÀS½W÷ņ´/ë·rÇÒº Á‹3¬ÃŽÌñ— ¹úq…m2¤zξõ•.ãÐ]ã > <b…9ìŠ����IEND®B`‚IMAGE 330 ./arch/spell/Bullet/spell_medium_manaball.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEѵY…$��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�������ÿŠ Ê&ýÿ@@—¬ŽÀ���šIDAT(S…ÎÁ „0 DÑäÈV�n! ø0¢”ý—°'H+íÜü4–M}„ǼS5¤P%/°â wé‚�,¸@„Å�H3a ‚¼BÉ}n ˜Ü°’»¯=àžS»"ññœ»†˜|îW“ûÒ­„‘r÷˜Â€î1I@ôW¤0I*ÔíÜÎtn‡îü„ãx‚þÀu¥5†jÃþ€/üo´úÊ·Œ����IEND®B`‚IMAGE 401 ./arch/spell/Bullet/spell_medium_snowstorm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ9¦æ¦��� pHYs��t��tk$³Ö���gAMA��± üa���3PLTE����ÿ�1�Š Êÿ&ý-ŠVc2ŸQ,¯/_¿¿¿þ¿Êÿ�ÿÿ@@ÿÿÿùh%^���ÃIDAT8½Ðრ`:évÌ{ÿ§]ÁEAXöc§3&ýìZÜm7¨±“ðW¦€Ž:(h“F¥ªÜ¯@‚*è…ézñ”'9_ ïAØg9�@„ý¸‰ãA=À§5 b¬bb"“ÆZ Îö%KJ“Ô�Ñ6©È&ˆšË*¹ÌêÚ�>ÞVSÔýy‹¥¾—g²’å|K©-+«‡y>É#ˆ{ûã_¬WÍäR|ækð¾TºqƒzxÛÞ4ù¥±‘����IEND®B`‚IMAGE 409 ./arch/spell/Swarm/spell_meteor_swarm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÒ 2ƒæ½Ì��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE�����c2Š Ê&ý-ŠV±!!»Mÿ��þN�¿¿¿›¦3Q���×IDAT(SÏ­ƒ0Àñ fá¹ sK%€© X ì¦ç+nïPA0dµ÷Pëõø*jçøÁõO¡; œž[è¤7¥åC=ôÚ)ë¾W4“`Æ2²º˜ÐA=Øö˜‡FÚU•Àä nEOÚJPd¤!}ÑhJDaÌÀFh)›"2H*Æ_L7 b4ãM˜¨äX˜'ß1&WLÅ‹‹à[‹ÛåÖ"Ý€a)î°w¨¸x�.î ¹x�éŠGØç/(ýö?ˆì² W4øí����IEND®B`‚IMAGE 365 ./arch/spell/Healing/spell_minor_healing.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ”x#��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����� Š Ê'üc2±!!À��ÿ��0YK7���·IDAT(S­Î1ƒ0 Ð=sN‰q�wpfw€ 0tíÑë&M‘Øê§ŸÏÇÚšïët¹ñú: Ù€Nˆ€A}7è€Ù3çñGɼp7RŽQÏÄ€m‹Ä,¥b™¤ÀT‰TØê_ÌØ¨ ±A}Y…§P$zŸ ‰±U˜ðPïÕ<l>òX•;^GšBðâ/Ì r&Ü U÷µ£Þ¿àrãõ°4ðs!`í¶‹ßß����IEND®B`‚IMAGE 321 ./arch/spell/Swarm/spell_missile_swarm.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÒ  Q íØ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýZcÿckÿÿ‰½¹���”IDAT(‘•‘É 1  B ¸‚,Ü€Né¿–<´‡½Èð§H]è7áVoè^Ô Ÿ ø­‘¶ù ãI+O  ä(ãY]bð=¨@[ã‘nèt ƒ ½ƒ†)sXöÜv‡ùetV $.Ê\,u×y{Ú%P�Y�m[$ÜÐ÷@[¦®«O¯l«°ÝÀ T>¶Wq����IEND®B`‚IMAGE 364 ./arch/spell/Golem/spell_mystic_fist.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ'Rú��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE����1�Š Ê&ýc2cDŸQ,¿¿¿Í…?Ù¤ïå‹ùqSù£���§IDAT(S½Ï1‚@…áIᆠ ¥0†Ø7„Ø+ëf{{6ä?€Ç±¶××Í—7ÉŒäA$˜3ÉÓU’_‚TM´‚ØŽ ØkeáöC8‘h†‘ñ ÚôNY*ò·ºàÐôXgZFß°ê¡ÀÃsð+G{naÑ(µê�h&Ú¾†ú^”óaiu@7»ås›m¼ïó7HÖ‘,€ z˜hŽúE����IEND®B`‚IMAGE 248 ./arch/spell/spell_necromancy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���L�M)ŒRÿÿÿœ;j���§IDATxÚ•Ó À ÐÄÞÿΣ6˜B7†âÍc;±~ÚÀi8='©Á=é`Ç" xÙÔ åDv |œ<"A„¦;ðE^œ%Ö[ÄVºC.ä|õš7­¢Ð³È¸c0¾âÀPW^`}ƒ5ù PuŠ kD/ÖÙª^ÇVn çÞç”7a 1ÀËo§¸:8ÃüÞ+ð�ÒTÇ­Æç_����IEND®B`‚IMAGE 528 ./arch/spell/Misc/spell_nightfall.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ6zȹ��� pHYs��t��tk$³Ö���gAMA��± üa���¥PLTE����1� Š Á È Ê Â ÈŠÄÇÇ¾ÈÆÈÆ¢ §~ ¹k¬¹"¹',''y#'ü(–#,&0_.0z,1X/6£09E89¶2>:CeAC„?J{GKWJLªGOžKP™L[mZ[ŒY_”\c2czbd†bŸQ,¿¿¿Mñ°���ÐIDAT8˽’ÇÂ0 D7&¦‡ÞÁôš Îÿ'à'fØ«žv% r„œ:ƒ<Cìÿ��à� I�@Rz€î|_Zf�  Ò��À7(‘‚ (�@Ù†A±-�Õþ J�Dª- Šš?RKþŸv§uÐüUÁ½ï‡¥Ä¡4÷u;í`ió;þ|ÝNœ:2ï­r>jr5Åç£ÇÎËÅñyiòt{8mZÜìÐUª)?ù•]OûÉT1Á2…œ:{éM)/MÌ����IEND®B`‚IMAGE 718 ./arch/spell/MoodChange/spell_pacify.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ; KTc%��� pHYs��t��tk$³Ö���gAMA��± üa��#PLTE������1��ŠŠ~‰ Š ‘ ­ x ² µ ¹ ¾ Á f Ä Æ È É Ê È½Â¥sw¸µV¬!d!«#§'ü-ŠV0‹1Œ5m 6W6m 7u <rAXCŠ I3JfKeWNY„[F^.�a7b7bJc2f*�i$�j �m�p�p �qp‰kŠ/K˜W™\œIžD*ŸQ, L3£&"£'#¤H8¥&#®K:¶MB¹6%»JB¼JBÀ;(ÁKFÃD:ÅB;ÆF)ÉD=ËD?ÌC?Í…?Ò8+Òiâ50å41íu�ùq/)l��IDAT8ËcP"�ȳˆàlƒI^ @ "æî¸­``H0’æ 8Ý`R ‚KÐ FF3ܱ+`b&ó(\&€¥ .ÁîHfe°õî8}–Âí e o*:¸Øéˆ¡”2Pƒ9È¢zaÁÁÁ¡NÂHŽdJC!¢êáhl`ánƬ€ŒAÀ(ÎWVDDÚ*8H’®Àd74&Lã<ø™GËsÁăƒ9ž ¤@?6PWN\Ë6Ø“ ) ÀØ×HOkK?uVì FÑ9$00À[›…WŠSÑÔP“bçÁ“äùøø„K²)`à ȳ�}:\<TÚL¹����IEND®B`‚IMAGE 330 ./arch/spell/Cone/spell_paralyze.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ燠w��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ýÖk�Þ¥�ïs�ï½�ÿœ9ÿÆ„ÿÿ�jô°Ã���‘IDAT(ÏcPB h|%AÀ@¬€!A`B¡ =Â0CÓЙ¡Æ†‚¦p¦SAzLѵ˜¢*nˆêÑð`aÓrF¸_ŒCÃ;ÊCƒ‘<g^QlA×âæˆf X I 3Åa"i3§¥ ¸ÔeæG$ß´ € E 1ABø#Š ( ñŒ”4…ÍØ‘-����IEND®B`‚IMAGE 712 ./arch/spell/Cone/spell_peace.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ7ìŠÞò��� pHYs��t��tk$³Ö���gAMA��± üa��PLTE�� � ����������� �!�$�%�'�*�+�,�-�.�3467=DGIMPRTVZ]_egklmpqty{|}€‚ƒ…†‡Š Š ’ – — ˜ œ ž ¡ £ ¥ ¦ § ¨ © ª ¬ ± ´ µ ¶ · º » ¼ ¿ À Á Â Å È É Ê'üÿÿÿçƵ��IDAT8Ëcˆ&�È[DáÖÔWJ@•„^ÁR*‘øèK9ˆ¸àQà+h£"ŽEA¸–‚ž‘±£ºxLŒ;Ÿ™­‘‘¦¼Š‚ !F~~~1a«˜˜uaa~~>•+,Ø c²˜7ª"Ty\‘ä-¸íÐé/*‰wäÕ‹Äð…-³\´l¦7˜®P÷ÇPàÊ¥ˆäqåp4!2âÈžpä5BU©Íbàêhl –57wvUåvDQ ÄÌÎÆÆËª ”—ãäbcã`RB ¨H/WWW·@Á˜{>'? ÇÕ[d‹ëÄȪEâ‰n1S1_|é!\–Y’ó4  u²'O5^À@@Þ�~<ëê_ªB����IEND®B`‚IMAGE 1269 ./arch/spell/Rune/spell_pentagram.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÜ1%pÅz¤��%PLTE��%;<BHiiinxy€‰ŠŠ €  ™ ¡ ¦ ± ¡  �  µ ¸ » ¼ Á Á »  à Ä Æ Ç È Ê Æ66 n��NN��� �#"#"#$%%�&ý&&�'"='$<'$=''�'/�'9=((�(F�**�73�>>�AA�AM�AZ�DD�EC�EE�E^�II�LG�LL�NI�NN�ON�OO�OU�QQ�TT�US�UU�Uw�XP�`\�a\�jf�mj�pp�qq�qquu�vv�ww�xx�{{�}v�}|�}}��€�€€�€˜��ƒ„�……††�ˆˆ�ŒŠŒŒŒ��•”�——�š��ž�¢¢�¢³�£¢�¨§�©§�¬ª�­­°®�°°�°±�²²�²¾�ÆÆ�ÇÇ�ÈÇ�ÈÈ�ÈÉ�ËË�ÌÌ�ÌÔ�ÐÐ�ÑÑ�ÔÔ�×Õ�×Ö××ר�ØÖ�ØØÚÚ�ÜÜ�ßÞ�ààçç�êê�ëêìëìì�îí�îî�îõ�ïï�ðð�ñî�ññ�óó�õõ�øøùù�úú�úûüü�üý�üýýýþþÿÿ�ûRzã��VIDAT8Ë“ûWQÇñ… 낸ŠI¡¸·R1,03¥ÈG©¨ie¯IËM)Ó¤‡QYh+“²‡™•¨Ywîß×.J‚™œÓ÷§9w>gΙïˆD‘(J^Îèt-/níE(U‹™—Å RnPMV/^àµ6¦üHÄN cœ}aÁÎ=Ü(‰¤îaørì`ªh~^”zøègðôKÉ{ŒûÕÛPL ƒv¨MFøÙ/ ÄÃPÀf#”0>11ž€P6[�ž-k�å#+TŒ÷Ûíþx!bp• Ê<Wœ+Ìa—¿µÕ¿{'æÏáå* ª)¢d4­ˆ{8e³M=ŠSдŒ*š©U­�:ƒw´·Ãátõ\yM&'É«Ë=.§££wÔkÐFj–àæ@çàb[ssÛâ`çÀ,ÕŒ€E´fÒN哯7*ÏâR†)Åç*¯'ùT;1kC€C†2ôð!pšAhë™oïAŸdŽ0à-4Fˆ�0§š¦×(³Šàz†©Ç¤*CÚÐ'9_!¯ïîmÜÒ‚ïÜëËã+(88²=Ô¦¯< i*~ÔLˆï‚íW…e•ûìÑ­Ê Õj„ö½´½*¼­{³!u5XU¡Q7áY›öÜõ‰+a˜’‹¯½HcM³¸Q¾,”ЕœƒPNr@:2BwJĺõ…äVÒŠÏ’†H¡<‰ë CžÅ†¬û”Àr„a‚–›>^Ư‘_j™u†ÝÒ Lë㼸1ÀN±dÛß?q’úŸÃù÷éÉ7•(J^þú )„L—m����IEND®B`‚IMAGE 264 ./arch/spell/Misc/spell_perceive_self.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ tǼÈ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE��� Š Ê4V'ü¼–Ë���^IDAT(S½ÊÁ À0 ÁC®À([Z0¸ÿšò°œÄ&Ï}4œú–¶¿©³Ti‚Ë�b EóàA1(Áð7�O�dópÍA¸ÝÀW�<úõº¦¶Á Ž_Cƒ:Mµ����IEND®B`‚IMAGE 347 ./arch/spell/Bullet/spell_poison_cloud.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ�8&/8A™��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE������1��c�Š Ê&ý-ŠVc2cDBÈtœ���¢IDAT(Sµ1 „@ Eã,2­ö!²{‚½€\‚ë¬í"ˆ×Þn2Úûº<Âÿ Ìà2O0ë‰þ>A ‰ ¡M‚d‘ICíë.a b:rÅ­RÉ ŽE ‹£ŠØ&JYÈV`à-JßzãØy ŒXÜјN{ ËøÛ,zƧSêÏ@}‰CÑ"È>ý—7«ˆ`ñ‹s—èÏÀtµM›zˆ«_����IEND®B`‚IMAGE 453 ./arch/spell/MovingBall/spell_poison_fog.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ *¿ºžG��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE�����{�1��c��ŒŒ Š Ê'ü)ŒRc1cB{{{_3¢��IDAT(SmŽ1j1EµJ7ÁC:1Å2î‚«œ 7p/O࣠·²ŠeÖ•q\ç9_ ­6ØäwóxógÌñ!æa>˜#î²3G ñ'Y‡ÑrV€¸ÙÈ’¹tœˆûýº8¤¢6ð¾ä1^çø-^g2™Ì^ùBC5âK ¾“¡!=oÙjXª«ݬ-X9éªq&É£UZÀ׊«éÕÒþkºDe£A‡ öR¼ulÕ´³äÐ\r±L¯©Xz ›"“È&£¦‚ôÝsºð­u@ún+N}�g´×5_ÄÍ$ ž r+ýT€)Y?¯üå?°»9<€_c ±½}¨z����IEND®B`‚IMAGE 465 ./arch/spell/Misc/spell_polymorph.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ -.±O��� pHYs��t��tk$³Ö���gAMA��± üa���<PLTE�������ÿ�Ì��ÿ�Š Ê&ýc2cDŸQ,¯/_±!!ÒiÙ¤íu�þ¤�þÖ�ÿ��ÿÿ�‘OÏ ���úIDAT8•’Ûv‚PC£ÂJÔv÷ÿÿµ,/í<Á"$“d4¼½ùÞkêÅôÿXn’-­�’ª í%@6€¸Jƒ�`P�,Û–J\º5€Û× @JätÞ�øþàÜ.+@ˆ ]‡«L²^RÂR »&U’´µéfó¼ *M9Iâ9–;ÀÍw¤™Z& ›ñpýfË%#Æñ÷¸&×K†>âL¹-Ú’p:CU¼«[äzn…*Þ܃¤jÔÎæüËyQÓþ«c÷uÏB�åìënBä0BéAÝ3`§ãÜÖ½’غðÜÄÀãù 9zó½ÿý¾?é ����IEND®B`‚IMAGE 221 ./arch/spell/spell_praying.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE)ŒR„k�ÿÿÿ1)„„„ ª/O���‰IDATxÚ­“Q €0 C­ÛýϬYб¬Ÿ†Ô¼»Õë¨â“±¡Þ¿S$Z{¼êí¦O¤�|I ’¨~T @Ô€µ�d¡$ A‚YP–ÚD­ŒÚÂÞ�tæÄ“倖?Ê>¤mÓ”?jYþºýÀ(¤9?´BÈÐ ûã´’{RZ~„^µB����IEND®B`‚IMAGE 344 ./arch/spell/Misc/spell_probe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ)á50ê��� pHYs��t��tk$³Ö���gAMA��± üa���EPLTE�����-�.CDZ[pq‡Š ž µ Ê [&ý>��E��T��~��Å��é��šÀ69���xIDAT8OíÎ9Ã0 CÑ›Rʆ•õþGMcÎ"Nz£Å‚Ô }¡VuRv �à8rH’@zîn‡É¹=K;ÒÀùd“‘–\î×´p”¤Ô¶×~3af>Î0|’<Ê0οÀ&!vð'(Ýôåg®3òu€g`����IEND®B`‚IMAGE 346 ./arch/spell/Change_Ability/spell_protection_from_attack.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ14l€4��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE��� Š Ê'ü@@@G$aaa‚B'¡¡¡¿¿¿àààÿ@@…(q���˜IDAT(S…ÐÁ Ã0 PaJ ½eaHOº„,“2A辆\2Bé:k¨º6ÁùºT7=ûƒirCniŠ0=�9èo„ç�xyG€û–„Ðí T\¡T4àZÑàV+.ðJ¼„ùq�ð̘ÎÕP1ûÑD-£¨ƒ,`šOEK¤BÓ_¨]9¡= “¡Ç¡ÑÁægý¾®����IEND®B`‚IMAGE 287 ./arch/spell/Change_Ability/spell_protection_from_cancellation.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ3†=“Ä��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'üÿ��ÿ@@xNù���uIDAT(‘•ŽÁ À0 ½‚°(Ù xƒöŸ©Ò6V¥þé8 Û3ɇ ´³`~¾_€és5r¯d6ój4b�ȸ{3î¼üE*ØŒg#È�F‘D”€K4 + QQ@ÁYoåï¨>fr‡äË8,—B!£����IEND®B`‚IMAGE 436 ./arch/spell/Change_Ability/spell_protection_from_cold.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ, ¶d ��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE��{�{�1� Š Ê'ü)ŒRc1{{{½½½ÿ@@ÿÿÿæ{…���õIDAT(Sm±JÄ@†·ð\$K*!…ý¾@F~H²–Ç>ˆpEì Žc‡±ÝjºØ¨ogáeC‚7ÿ|Ã(¿‰ÚÌ;届ý”¨ .øjìS£-ÌOS\'Pü´óJ=6�½O`È'ÆÃ!IYdºü»¡ ¨îY‡Žé˜¤dz}„¾£å¬î4â”�?ÑMjð™ >qN¿4¯DÀâ�ràcH3Þæ³õ3Üž2šU×…}9e/sƒ 1cF°Ê;‘º�<5¸�,±ÊC\¸¸E«<D¢‹pÑŰN"Dâ²2ƒEºŠUÞ®£vð çHŸÞÄíȃ����IEND®B`‚IMAGE 819 ./arch/spell/Change_Ability/spell_protection_from_confusion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ2óK›��� pHYs��t��tk$³Ö���gAMA��± üa��ePLTE Š ÊkskÎoÁsk„­Œs¥”„ŽŒ!1!!cZ!kk!sc!{{!„„!Œœ!”œ!œ„!œ½!¥Œ'ü)sc)ƒÖ)Œs)”R)œ¥)ŸÀ)¥¥)­œ)½„.ªƒ.²Ã1J!1sB1{F1{Z1ŒZ1”c1œk1¥s1­Z1µk1µœ1½Z1½”9Œ19œZ9œc9¥kBR!BŒRB¥ZB½kBÆZBÖkJœJJÞŒR9)R”BR¥1R¥RZ”BZœJZ½ZZÞscœ9c¥Rc­Bcµ!c½9cÖck­Bk½RkÎRkÖcoÅBsc)s­1sÆJ{B!{c1{s1{{1{{B{œ{¥!{¥B{ïs„B9„k1„ÎR„ç9„çBŒ91Œc1Œ{9ŒŒB”¥R”½9”ÆJœc1œ­1œ½BœÖB¥”B¥ÎB­B1­­J­½R­ÆJµ9)µJ9µŒBµçcÆkB΄Bÿ@@ë׊¦��3IDAT8Ë…“gSÂ@@ó,ذ¡FÁ®(v±w{¯ØÅÞ *êý~?ä&„$$;7³·³ï¶Íž¢ºˆâæWTQ ÀqË2@шfö™¡#¸$n ÐSaž g" í4UCA™)ì,-ƒmx½¥õPn`m&ñçÍ–"¶6(̪´éxYŸÇ8y�èêÎ0�V6 �Ø¡7�xrj¬Àv,öÌ}ÿP峦؛ڇěf4æC9Âãµ!Uµ€?àãN% öE&4=ÐiÓÅ/$oNa´üéÀÕÙ7pþÊ0C¦ï�É›ƒOXŸ›…ñT !„ð¥-Àt$mpØI!´#Am ãé€ô ßë„ÀÐý)`S¤Ë×SœÅÍÿ/õOãh®a����IEND®B`‚IMAGE 358 ./arch/spell/Change_Ability/spell_protection_from_depletion.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ4ÀÊI(��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE������1� Š Ê'ü-ŠVÍ…?Ù¤ÿ@@ÿÿ�œ‘xÔ���§IDAT(SÍ-Â1 ð.™�·%K€sì[òÔì?ó Q\‚p†ª:t/‡ ì Ïõ—×–êZæ*¦Äÿ![ä/0¡CòÙD„DãJrÈvïü G ã £ªÎvÈ'U½…æpW½¸ÐÀ]ŸD¶öŒ_€Ýyã Z£ˆ ç@ ‹ /ð.FªáÂ(\¸&(Âá¾ò~tJ¤çжÀ Z “±j¬¼����IEND®B`‚IMAGE 273 ./arch/spell/Change_Ability/spell_protection_from_draining.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ0¾|XQ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'ü½½½ÿ@@=‘á|���gIDAT(Ï¥Ïa À `¯ y€èâ ï¦Uc´Þ Øæ?¿žbT úL…§¢? �Év`¦ëÆšôÉZ­ŸîxŒ¼ú¾Dl€C<*ŠœÁáõU¼GNà $¼…ÆÈc)FPúåÿ-Q¤52����IEND®B`‚IMAGE 336 ./arch/spell/Change_Ability/spell_protection_from_electricity.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ-¦¨J��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Êhàÿ'üÿ@@ÿÿÿ þñÀ��� IDAT(SmÏ= Æ0`¯ð6˜½º‡@æ¹€ƒhÞÿßú£|n>¼jB=…þ Wô’•Ømõ°Øµ:À>4ÅA­Íê6›§îwœ‹ÁÐJþBF»¾;�lóò ‹]R!1Z­îû5›‡V­8Hë6�¢ÎªO(Bž#Ê¢ª`Ì Q‡ª°€…å8`¨Ê;rûÔQ§PG躞?÷]º!����IEND®B`‚IMAGE 368 ./arch/spell/Change_Ability/spell_protection_from_fire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ-,ÍЦ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'üÚ¥ ÿ@@ÿ×�ÿÿ�Þ>���ÀIDAT(SmÎM ! `¯ðˆv]æAt/äAƽ zÿ#tѪ3Ò·ËGþ̱ÅlõÛxÄ È …[@©-• »kAQêì2Mè¸u€©“ƒÞ¡qdžÀs.¾xù«öeŽDŸ[«Ôǵ²Wç 'ëlt ½ý•Öc¡1Oˆ|qàÈ(�( ¬+�NüÀŠ`å@lØ´Á·Ñ˜"É&ØdÓ<ÀJ‚HZ#ÖÒGŒ9Ì–÷V�ªÞ>FÑ}Áƒ����IEND®B`‚IMAGE 324 ./arch/spell/Change_Ability/spell_protection_from_magic.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ54pƦO��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�������ÿ Š Ê'üÿ@@]#<Ù���”IDAT(‘uÐÑ 1ÐR@¶«! x0¤%ˆý—pÇ&èqó—‡J+é}c1dü‡š%‚ ¤æ¨R€¤¶kƒJ%µ½Êï’hXIÊäj+ñëÚ°çåÐÓr”+hWL÷x± OswNKð-Xt·iœ6mL7ºÛiyà X#w‚3Ô‚ÚjEi����IEND®B`‚IMAGE 329 ./arch/spell/Change_Ability/spell_protection_from_paralysis.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ.%±†®X��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'üÖk�Þ¥�ïs�ï½�ÿ@@ÿœ9ÿÿ�o‹Ï���IDAT(‘cPB h|%AÀ€SÀ] €éTC,ÆHÂÁ‚¨ 3„CѬ5íF0Žè5Dv)†€ (pA74ÍÅZ‘´™ÓQÜá23Ís.xH¼¼œ€€`¹xa9PP¼M�¢,P^”/+¢ˆ—‚!´À†¢;Œ ( ñÆó=ô¼5pâ����IEND®B`‚IMAGE 420 ./arch/spell/Change_Ability/spell_protection_from_poison.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ+/Z'��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE�����{�1��c��ŒŒ Š Ê'ü)ŒRc1cB{{{ÿ@@êŽ ð���âIDAT(Sm1Î!…×-&–~£¡ ”ÆÊx{œbBAkl ņõ–žÂ#Pq(Y7@ØøBHøxÌ{t÷…ºÅùÖÝ©ÑezP `€Öc/3è‘§¡8ì­t+i3PLŠëض ÒN½•Ïàô/GÅi_c×.-ík¬ed¥­±¤v“Odà±cÿÕÁŸÐTpLÅGW\m#>`I™~âA—êW9$Œu(ÐúJõÐ Ëæ'&Fªú(š4afãÄnMøZf@ 01L¦ú$ƒ:´Q—VÝm>Ô.Îg÷ò7¹����IEND®B`‚IMAGE 444 ./arch/spell/Change_Ability/spell_protection_from_slow.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ.ôYò-��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE������1� Š Ê'ü-ŠVc2cD¿¿¿þ¿Êÿ@@äѰ���úIDAT(S]±jÃ0†E1…vÎÒ5Jµæ<ÚB c;C c¡˜irŒ HY½¤³F=TeÙºÔþ7}÷ßÿŸØ~!¶xïØfÚN�ÝñPB;ßUîMè“ÆÎÐJmÑ”«MB)¨)㮀uݲbΔ®Óîé’3úC5TÙC?B�mìg?•dª©vÔonQZ‰d"‡þ:Ûgä†C0ñ*ìVœ_Nï>:úK-xk\o¨6•ÄLÊx¸òòÚj�2�Ëí£4HÃJ>D(ýŒÆ‚Sé“e02øÁt[Éà:SÛ¹Ønþ�î4ºÛOv™-����IEND®B`‚IMAGE 255 ./arch/spell/spell_pyromancy.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���)ŒRÿ��ÿÿ�ÿÿÿmݱÐ���«IDATxÚ•Ó €0Ð¥ûÿoŽ›§'HÄ$‚y¯5¶ZÏO]«@±ˆ€rwçMbõ˜ ˆ�c‚$ ¨-*Ðr7\öŒ ò•b€½¢BX@ˆjàu1ÖS %€ñ˜ù�60@k�ç2ŸÀ·òO€m0€o8ƒl<¸Ö8�ÚÔS< KP[Õϱ7…rís™KP 0>û2†ºúq†¹üyêŠ0ˆ€ÛÚs����IEND®B`‚IMAGE 276 ./arch/spell/Change_Ability/spell_rage.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ!`­v´��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE��� Š Ê'üÿÆÎ —Ÿ���jIDAT(ϵл €0 „áSäØÀbÄWüûÏD…bGÐÁuùËK´¼{Ëö1d‡TŒ J7H? ÄÓ@„=! SKpÿD�`¶M�4G€Ç„¸ XuýD£ßC¿ù¶ \ô›FÀ3‚X����IEND®B`‚IMAGE 354 ./arch/spell/RaiseDead/spell_raise_dead.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ!10âÅš��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE������1� Š Ê'ü-ŠVc2¿¿¿À��ïå‹ùq£ü@]��� IDAT(‘cE hü`†P`ŒO@]EÀAºM U…ƒ`ª€c‡ �²¡‚E%AJàÜ‚hbÝ@$ÆÙÝ;6" pn<½‘q"BÀ±{ÇHZ»w‹8 *(!Ø]â‚äAA×PQƒ‘A5€Xð¡×^«V-Á/@Ø kQC0š��D•ˆÕ”'ºŽ����IEND®B`‚IMAGE 329 ./arch/spell/Healing/spell_regenerate_spellpoints.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ  §µ+Ó��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'ü@@@¿¿¿ÿÿÿ>º(���œIDAT(SŽÑ 1 C³‚p(·éikÿUúqGr m©þüÐnÇ–¶Ývà-í# ‘ÈÕHÄy~SΜNkˆN2fã Èö@äTdy çF·åš Ð]µ@ T=Ö]åK¡­7 YÖɶÆóM¨Hú®”]7;È äM9[Ð.þE§]D"¯ÇÐI«±òh[Ûýž¾?MÍ7±Ë����IEND®B`‚IMAGE 1088 ./arch/spell/Change_Ability/spell_regeneration.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ 1TEñ��� pHYs��t��tk$³Ö���gAMA��± üa��±IDATHÇÕÖËoUUÇñïZûœûârÛB‘G-¡2@ƒÄDM ‰!ÆQ&ŽúGð0pê@â+'J`˜ƒF)¥µè“ÛÞWï9gÿŒ‰ƒ[=Ùƒ3ØYŸ¬½×ÞkÛ±üi¶óóm>{v>Ùü»}uþ‰G/.mÿleRÈ(OYº`õ«N›Aÿ°:Ϩ=¡Î˜°�˜8xÉŽ|eÏ”‘‡Mò ^ÖB5¿ûlœþ hÕã�åY;|Î]ŽÇsUÃ÷1m«†C€$ÚX;M¯qu:ûåT>óvÌê²é=Ûu&ÙyÑOY8]óÒ~ж¹ñpI$@ðÒýäô祟Ϸ XÎð§!™a¼Rª%aUÖ€‹)Ê!€ÃŸRÄöâ¯ü˜N|ã[êçCzÙ÷§I'IVå],3í³8„Š¿‚ñ¾Ÿü2ŒÜ°Á@X#ùÂ<·ýÕR·¢Ùa‹  Bb †=$¼z?üÌåßÜ–­š„>ÈXÀ›2‰Žì %£g*A9¶Epà–—›ƒ€ê¯¤9µ4Ùå²›&É¡ ûˆÃQtDŠRDG›«Œ¯ycÆ�Éœ%¢l¶YmÙ=ù¼|ëÂE­bŠüá�JF~Ü¢‚jF�Á*~‡Ðƒ¶íµXE ².–€#X¶Õ©A@~H**Aµ°%yKa ">MŒpOÖ”uD&ºØ†XÀŽ :Éýc¤ßR#º¹Ë€hŸÃG‰¼Fµ˜¢%yëbm¼"Ö±N-ë=�GÕKÔÊŠÑÚF*îás ;a·Å>¾MP4Œ6dP°2úa(ëMh�Ð=ªx•©b¼¢̬CÒ*~C–X6 -!¬nqÔ-b¶áœ1v‡•©J,[ fzÙf¤P7XÁ¦b¸#ïa-|:X€«*~=Q\yW[º*Ö^ÖÒ;q.ëyTBÃÄ î~WX–õ¡ÀûX˰«#\øÖî-_×wß‹µë>}­?Fi,1ƒ†¥6¶‚ç$MâÅ‹¸Y×Å7˜{AÐb…›gò§¾óö¹Örx¾’VPÙŠuÙ"a_—/+A?Oögß/Üpb…»oÅæ õ.híZ±·öõ-VSÑt[l°¸+®¿–µß,Šº¿'wÇ5ûqq»ÃŽÛÅÈuKV-Bo„æñØ; X{M(j¬MjmRÿ¹gËÿ¯ÿe6ߑەÁìÙùíËãøµ§&pö´����IEND®B`‚IMAGE 367 ./arch/spell/RaiseDead/spell_reincarnation.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"W¦†��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE������1� Š Ê'ü-ŠVc2¿¿¿À��ïå‹ùq£ü@]���­IDAT(S…Î= Â@àYH#6y$à<@.° S¥ ¹ƒðé¶Jm»Õt马½”άA_7óGc*êF6é~Á•Ž$Ûáqµ"jVà1Íh„@­àˆN)Pàîi¥EÁay.nþ@HëöjÄ¥ik¼ZŠéÆêÔˆ³Ç PEÞéhä>3³0sŸ÷¡É,"Ü‹ä]ø¿ãëlgCC/aÞÍÔõº¸����IEND®B`‚IMAGE 352 ./arch/spell/Misc/spell_remove_curse.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ:ÔÃeí��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE����1� Š Ê'üc2cDŸQ,À��ÒiÙ¤þ¤�þÖ�y¶%Ÿ���žIDAT(‘•Ï1Â0 PK ,ìÝz‚”/%¶*ÇàÁ‹ïÁرræäP H`Gb¨·<}ýØ”»¡î=SF˜qìœÒ¦aJ¯ýÕ%·ÖÚâàbV˳ó�3³ÕC©µ­1Qbb1³»‡4ØqóqU`õ €ª~A `† $t°¸Ra 8�Ôu|@%üâ÷ˆ›ž(qhîà …ï§ ™����IEND®B`‚IMAGE 343 ./arch/spell/Misc/spell_remove_damnation.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEшÙ��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE����1� Š Ê'üc2cDŸQ,À��ÒiÙ¤þ¤�þÖ�y¶%Ÿ���•IDAT(S•Ï1Â0 ÐH ,ìÝz‚”/%¶*Çà=‚߃±c'ä,Ìɡ؊èпùéK¶Cjšy .ý.88¸OÄ/ ÝßÇ»iœµÖÙÀMµäWjªª‹…\J]|#ûƬª“…Øé{ŸÛaˆ‰ð 1‰o0,°¦¿@ ül1wÀåRïÆ>ÀS‡R€ Ìä����IEND®B`‚IMAGE 371 ./arch/spell/Healing/spell_restoration.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ,:*g��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����� Š Ê'üc2±!!À��ÿ��0YK7���½IDAT(S•Î1Ž„0DÑPwÌ8¥&q€Þ {|Ò=ú`<Me~*—Íòó›Ån™OHŒ€± . ’"x­…ê"ô+ŽWÍ~@j)(4˜$4çè‰uÍ¢êm/‘U¼¥‘p-×+¥hVáj ºµöƯKùë D¼h¹Àø‰‰ëë–�—\lfyíûf–t儽uØl·cˆñ£qæÚø„íõ=Ø}Ôn™Yæ{x?à{xcá8Ûw•����IEND®B`‚IMAGE 361 ./arch/spell/RaiseDead/spell_resurrection.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"ÓÇÙ��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE������1� Š Ê'ü-ŠVc2¿¿¿À��ïå‹ùq£ü@]���§IDAT(‘cE hü`†P`ŒO@]EÀAºM U…ƒ`ª€c‡ �²¡‚E%AJàÜ‚hbÝ@$ÆÙÝ;6" pn<½‘q"BÀ±{ÇHZ»w‹8 *(!Ø]â‚äAA×PQƒ‘A5€Xð¡× c¯U«–¸¬Zµ ·�a30¬5F Áh�Ý ŒÑqòvÀ����IEND®B`‚IMAGE 305 ./arch/spell/Smite/spell_retributive_strike.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ#²Ný(��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����� Š Ê'ü^ï]é���‡IDAT(SÝ € „¯aˆ8A ÷ŸI 5ý1&ÞSùr½+¸’Þ'®´d@0Ó 3ùPst.ëE „Z²t”Þ4×’2ò6³ †@uH×X€fÔm,7EË1¼á°GÖ¢Ÿ³–1Q�kÁ]:uÔ^Ž¥_`™À ëšZ‚„°_����IEND®B`‚IMAGE 378 ./arch/spell/Rune/spell_rune_of_blasting.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ.4ß»ò��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE����1�Š Ê&ýc2cDŸQ,Í…?ÒiÙ¤þÖ�é«Î���»IDAT(‘cpA h|'c „KÀ@�MÀlš€a:ºâ…̨Œ+Ñ ²&£ ¤£ 0$ £ H £9 ÝZ³‰è è“bFˆJ````FqéªYËaU@žTÕR°�³Û4Á,ac±U`tfƒå‚Æ ¿˜AÒÂv%g-66\XµŠ™(`ÀH\]j,¹rÕb Ù[Ä@[†@Œ ï3 … % „ œÐ�]÷q"¡ûŒ����IEND®B`‚IMAGE 272 ./arch/spell/Rune/spell_rune_of_death.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ/7_©’ã��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTE���Š Ê&ý¢zÅ_���iIDATWmÏÁ €0 ÐONòGé>î“QrJöq/‚hmZ¡ê'w$ÁÙ‚Öì^³ 0©×Œ„TL�Ò ¥FÐxšŒúöBG”5€€Å®L½"ܳôãSƒ>ø<ØæÖ† eì -M����IEND®B`‚IMAGE 308 ./arch/spell/Rune/spell_rune_of_fire.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ >Æ8Ò��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýc2±!!ÿ��JFÂg���„IDAT(ϵÐ= €0 à‡HvoP‚/à¢s›YDsÿ#Ø*þeé¢)úÑо¢5³oÐò«ªÏ�©(öü NU‚èdèœæi4·ÐdÁgÀ-æ¥õÊ™n¾�; œâ$è#ˆê—ìÐILâ÷|á!=²Ÿ#ŒòOÎ@õ.46]7H¸Øja‡����IEND®B`‚IMAGE 372 ./arch/spell/Rune/spell_rune_of_frost.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ"tê$â��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE������1��ŠŠŠ Êÿ&ý-ŠVc2ÏlQS���»IDAT(‘¥‘± Â0†¯HÀ±´tk‡ nqÉø�Wå cJàÇ(tö|_Iÿí>Ž»ÿ¿£¥õL‹d:þ˜ 0Øp;™ œ€Í0)v0Lôƒ3ÜÔIÛ8ã ƒ—|컵ßë`ã ‡Êq†HU¹P÷*5d>î;맃 akºè¡é}£ñÞ2¢‘³•uâÃðmR¬ë$ ð`ê’ø.M+"¬/*¿ØX»éO9梹�O˜Ÿ¾ô„˜¬����IEND®B`‚IMAGE 234 ./arch/spell/Rune/spell_rune_of_magic_drain.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ1&àšçù��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTEŠ Ê&ý½½½Í&©ˆ���CIDATWcX PzÃÒP0@e\…2¿¢3àR_¯_3ÂÿÿÿŠ*‚Pÿ—°9xì‚k'ÉR|v¡út4@i�ò£s;N|J‹����IEND®B`‚IMAGE 371 ./arch/spell/Rune/spell_rune_of_shocking.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ-1$1M��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE����1��c��Ì��ÿ�Š Ê&ýc2cDŸQ,Ù¤þÖ�ÿÿ�-¹B]���®IDAT(Ïc(G hüR†ò4JŠ@ª@âîÓPÄ’sïî¾í½{ïÝi`„»wïÞddÔ½{ "0÷¶¤ PuæÙ»×àf$îž™ »{ÂÐÙ;’'Ùlá¼»[Å™wÑÆ}M@v'š�ïTITÄh¾•¼†&°öšÀ5TÄ[b¨ŒÙP¤a  œÑ™™M€ƒÄˆ E ¥h�WÐ9+rÊ0����IEND®B`‚IMAGE 234 ./arch/spell/Rune/spell_rune_of_transference.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ19m’ê ��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTEŠ Ê”ÿ&ý.-s���CIDAT•cø PúÃ×P0@eL…2–¢3àRK§M3ÂV­ZŠ*‚Pµ’°9xì‚k'ÉR|v¡úô€Ò�ñ™wf¸´©”����IEND®B`‚IMAGE 292 ./arch/spell/Aura/spell_sanctuary.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ6vBjt��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE Š Ê'ü²""ú€rÿ×�ÿÿÿ)`£g���tIDAT(‘¥ÑÁ À PV .`ÜÀ¨hº�éûPªƒIÛãþA!˜€™=T¯àÒÌ‚s„ÐXP›…KCkW«ŽÞ»�,™7Jðt¼G „[HU—ÔQ! iàÂ-`™ ÙGŽþL¼™oÙÒ7שj;—����IEND®B`‚IMAGE 753 ./arch/spell/Cone/spell_shockwave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ 0,qÁ"��� pHYs��t��tk$³Ö���gAMA��± üa��kPLTEŠ È Ê É Ä Ä ’ÇÉǽ Å ™ ¿ ÈÀÀÀÂÄ Àˆ:_&ý(!½)°)((*#§, ®--(z/(¬//<0³0*«2+ª5+§:¥:+£>')A>tDˆDBFMžT’TTT`|b>@b^¤cccf`biebkjŽrrrtFŽwuoyV|_|VQy‘€(nƒ‚…M†$9‹M‹kX=E”.I€sŸ�$¸_bº�'»4:½4¿ƒ^ÀšSÎO@Ï��Ñ•KÔ&ÔOFÙ��Ù¦BÛÜß��àoEä��è<0é��ï��ðôô’Fõ#ùü,ü?þº/ÿ��ÿÿ$ÿ,ÿ:ÿB ÿI"ÿP%ÿX(ÿ_*ÿn0ÿv2ÿ}5ÿ‹:ÿ’=ÿ™@ÿ¦9ÿ­6ÿÿ�¢­1���ëIDAT8Ëc$�É0á )H#  ¯‚4 ÒÀ Òð*H# �*p*HƒLœì0è&ÈX;9¸xhà ¨@sƒ†[XTDH€HX7zHªšøÄÇFE¸2CT`*²KLOŠñĺÑY™éIáÒ8(çåfg%Å©cW êYXŸ—ã-輻]EJqQa¿&—ŒV"¾e¥%Å‘†âl*Xð»§–—%Ø(ñ2±ð`W`ëè¬#ƈ+ÉqÙ[šê+°âN“RfæÆZÜø­°¢,µ“=0à„äWHƒ^ú©����IEND®B`‚IMAGE 303 ./arch/spell/Detect/spell_show_invisible.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ-;h$n��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE��� Š Ê'ü¿¿¿àààÿÿÿ¤Ó���IDAT(S­ÎË �!Pbvàônì€(Áþ‹Xðå,7_œ¨fÀ¼ ÔxH(7Á�òA.Ÿ@‰{G€È¬opåKpa‚dZÒ‚ù#E‰P‡£TAkíˆlJݺa.9@ï8O_‡n` 8;7\ó>¨þ(~d3J"2€#����IEND®B`‚IMAGE 251 ./arch/spell/Rune/spell_sigil.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÜ7ô’Xß���PLTEŠ Ê&ý&Ÿå&Þå7Ä lȧ���oIDAT(Ï­ÐÁ €0 ЬðI½—n´Ú¤qÿU<ˆhöä¿ý $TB(ôL.ô¬âá¡¶.o`CS¨ Ü3ßÐ� ˆ Ø€kIÝ=°é肪pÀæŽKcÑ9 oáÝ$ýùÉs ú î1,ŽBžº?����IEND®B`‚IMAGE 399 ./arch/spell/Cone/spell_slow.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ32àŒW��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE������1�Š Ê&ý-ŠVc2cD¿¿¿þ¿Ê^·…Ú���ÐIDAT(S­Ž± Â@ †)‚Î.®¥ Þê tÈe £Ž"Ž>‚KnjËA¹¸vѧS‹9´£øoùH¾üjÝ‹êÍ+µ†¯,þ€Œe†ó^ÀŽ7ÆVkNZ,£"$ ‘´Á1ˆ Îk@½»”kËÓ«8Úìå'Ÿ ¸zYøcûÔÅ;Ê{Õïò…,™n)lØSãg¨]"�Á=[a=ÐÌ«ma,o!7ºtÆrBÔ=y9Å1ºétå>ôðÚ08>òX|G­zàï—¥š0ã9����IEND®B`‚IMAGE 297 ./arch/spell/Bullet/spell_sm_bullet.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE���Š Ê&ý½��ÿ��ÿ@@�ºZ¤���bKGD�ˆH��� pHYs��t��tk$³Ö���tIMEÜ)YYl`���IDAT(Ïeα Ä0 @BÈÙ€Pá>ð"¿ÀÙ„W"[°ôì| i£— œtMÙÑYA¥B’ø×kÅR, ‚$ XGVPXIV Và\ j[à³;ÁF˜Ø3¨xòÂݼ3¡éípx¶+®|}åsÎQïp¯´ñ±6®ä¯¯°çà(ð¼À>zf›WS����IEND®B`‚IMAGE 749 ./arch/spell/Bolt/spell_sm_lightning.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ .jr-��� pHYs��t��tk$³Ö���gAMA��± üa��PLTE )7/89;!=#?$@Š&S 'T -a 5_ 6_ 7i Ê 9t :~ >oGHT›N¨YŸZŸU­\»*?^½b·d¹k¾l¿iÏjÏlãuÏxãyÛyí{ï~ßEoéˆù‹ûÿ&ý(€í+–ÿ-b›.gŸ///7Žó9˜û9ÿ:ÿ@@@B‰ÏFùH¤ÿOˆ¿R•íT¡÷U¡÷U«ÿV«ÿ___cqn§ßq´ûr¹ÿ€ÀÿŠµßŽÇÿ‘˜ŸšÅïœÌýœÎÿªÕÿÁÈÏÄÙ÷ÆãÿÇãÿÔêÿâñÿãñÿñøÿÿ@@ÿÿÿH`À~��5IDAT8ËÓiSÂ0àR¨R,h ˆâb¯zƒ âQ94‚ÑZ÷ÿÿ «JgÒÔñýºÏÌîvSå8$JHÝð�’ÄøàðXWeà”ÓLKÀä9§‘‘ÌÜôº4ÊÓÁC&OÞÀ¹+K¶Ð/8ýL0H`°íêl:�Ün �íâyS"‹Ll .c=Sø%ñB+—Yxc)"3OW(¶Ãœ¦ª®%„·È!eáH©Ïâc=xMŠìœìš¹£¥ ˆè—r’÷pã¸@+ËÁ F Ôš2}àÃËl¨Rx±zk?à»8ZÛÅ-€3ÖõƒQ²¬½Úùê’m·øjý5®W(ì¥|CŽ“b E×ûürο…¯ŠmÑw"rm—‚pÍýY†4JHÝøW½},‚Æ/e����IEND®B`‚IMAGE 361 ./arch/spell/Bullet/spell_small_fireball.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ õ3˜b��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTEŠ Ê&ýc2±!!íu�þ¤�þÖ�ÿ��ÿ@@ÿÿ�a€x���­IDAT(S­Î± ƒ0P¯ð…‹Ð!6@b„"e€Yô,Daà·”L5S °Ïu~wO>ÿSyÍ™Ê!¢þ.†¤ªh== %í$Vîã@ó×йÉCùjLc\á[Ø]Ïϸ-=9T@’oP.– ºµ³uÁ‹d5« ÿдíÕ²ï�f>ïH Ðd �€p® ˆR9„-›€4†£V®HPQ²hþ}êCÐéFÚb����IEND®B`‚IMAGE 329 ./arch/spell/Bullet/spell_small_manaball.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ)ãêA��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�������ÿŠ Ê&ýÿ@@—¬ŽÀ���™IDAT(‘eÑÁ à …ៈB'H¼Bðá‰"6¨²ÿ=TI øÆ'C‚á|ÒÔÅA“L;ðž¤ÈΠ³wàˆ´âù§ì!™­/³ òÉÌö˜•ôv‘øX)!C,¶Æùb¶…Ϥ“g ö߉Ç.’?Ï¿jUW¿ä:mýúŽßPÇ’æ’áÒ£Î~wVn’* @����IEND®B`‚IMAGE 401 ./arch/spell/Bullet/spell_small_snowstorm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑÐÅC“��� pHYs��t��tk$³Ö���gAMA��± üa���3PLTE����ÿ�1�Š Êÿ&ý-ŠVc2ŸQ,¯/_¿¿¿þ¿Êÿ�ÿÿ@@ÿÿÿùh%^���ÃIDAT8˽ÑA’à DQd#eóïÚ,R;1†ÝhÁ^Ô¤mRir¾¦m˃Zÿ”e³BôKä Ÿw (B˜Sî{pÃwxÜ*3ªÒÑË „KîB.øˆsPb7“Ìê%YÀw¨`ê‚üÀ•Þ_„p¯`‚.ÈQÍDu¡Ô²ŠLUyé0É.S´ÖÚ{!I¿9´œó{ÉYÀ%ÉvNÿ¸þë‰ckIå ¾ÉÍo¶h3pŒ9zb�Öa¥ÉùúvUÆ/O÷z����IEND®B`‚IMAGE 722 ./arch/spell/SummonMonster/spell_small_speedball.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ Ú["��� pHYs��t��tk$³Ö���gAMA��± üa��8PLTEŠ Ê ÉÆÄÁ¸´%«&ý*¤/ž3˜@ˆE…H~J|M}Qu[f\ed_eZgXj\kRk\vPy@}@~;…9Š�*Ž;’� ˜�›�£� ©�¯��±��³��´�¶��¹��¼��¿��Ì��Í� Ï��Ö��×��Ù��ä��å��ç��ê��ë�ï��ò��ö��ú��ÿ��ÿÿÿ ÿ ÿÿÿÿ ÿ!!ÿ))ÿ00ÿ55ÿ::ÿ>>ÿBBÿCCÿEEÿFFÿPPÿWWÿ[[ÿ^^ÿffÿhhÿttÿ~~ÿ‰‰ÿÿœœÿ¤¤ÿ¨¨ÿªªÿ²²ÿ¶¶ÿººÿ¼¼ÿÕÕÿääÿååÿððÿÿÿlJ"î���ÿIDAT8Ëcà$�É0â ´Q B@—~26*x¨ê¨‰ãVÀ¡mlggg®ÍÇ„]¯¡˜aW dgèeçng§U¤¥[bŒcd²·­†nA=Mk;;ÏX—¤� %êzܨ D¤t­BÀNðs·Ó4RA³‚•[ÎÚ)-Ì?4Ø'Å×N™› ›#í£#ãÓSƒܰ;’QÌÌ5"...ÊÃBG@ é›`¥/ÅŒC»¨¶¶¶<; jPƒ]Ž'² Á ã7ÆTÀÈȈ03Á [€=ÉÙáT‚ðXÝÀȈßX­  ø|Á€’�®1ñJ����IEND®B`‚IMAGE 249 ./arch/spell/spell_sorcery.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE)ŒR΄9÷çŒÿÿÿ���_3¾t���¥IDATxÚ­“QÄ Dw`ïæYœ¶ƒ4Mõ½`Dûy5Ø9bfæfV¯Èˆ[P¥0…ÈÝàôU¸!1p àŽDpÿFü!`'ñ2Ðé¨"̽jä…O­8רÍû ð…E°zAlW€…äÏ}ò ¹‹{+[0öaì$ØIP<•Èúâ lÕõõB—QœÂâŒÜlȵÏ?ކôÍü�G€&IÙ_����IEND®B`‚IMAGE 295 ./arch/spell/Cone/spell_spark_shower.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÛ#0Ì‚ù���PLTEŠ Ê&ýÖk�Þ¥�ïs�ï½�ÿœ9ÿÿ�ÿÿÿ‰ü¤Õ���IDAT(‘cPB h|%AAAaA8`� ¢ ˆ DE íl ŪB§0[DÑÄÑ]€øE´¼U…xE9Š€h{g{+NŽèf8¢Ù"˜ˆæ‘4§»µ9¢8]$cF ² —´Î™m)ŽxTÀÍÄm ÔHŽÈ @àÀ€� ¨��4óÇh8ñ����IEND®B`‚IMAGE 1184 ./arch/spell/Cone/spell_spiderweb.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ3¹÷Ö×��� pHYs��t��tk$³Ö���gAMA��± üa��ÚPLTE������������ �� �� ���������������������!�"�$�%�(�$�%�(�,�.�1�4�6�6�8�:�;�>�?�@�A�B�C�F�G�H�I�C�G�J�L�M�N�O�P�Q�R�T�Z�\�Y�[�\�]�^�`�a�b�c�d�e�g�h�i�j�k�g�h�hl�ln�pq�st�u�v�wx�{�w{�|}~‚�†‰�Š�‹�‹†‹Ž’–�–™£� Š › œ  ž   ¡ £ ¤ ¥� ¦ ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ ¸ º º » ¼ ½ ¾ ¿ Á Â Ã Ä Æ É Ê'üÐh (��+IDAT8…“í[Ò`ÆŸLk´LÅ$l«0ga©Ù´F ¥".+š–™=.­4¨.,éU]¡yû¿öA/Av¥÷—óáü®ó~ÈÖ"ø#dk û(’˜m£KÛ¶á{1€cѯÀ´³q�ºC¦ '{¥KwEQÎ]ËÍÚ_Ó KqMÓ|WϘR0uÐKŸËG‚™S{€Ì’û7B̳¥…RouuEpösPÕ~1?¯ZÝ7t À“[qàºú~ •a@ cƃUy¨š jŸ(|vû2€””‘ÊöØWðÖB&v€íë`jŒÒLIYY I#gXËÇw‹Ä•‚_kÎq”r VÍ/”{°˜svÜ–].k§¯v,ëù¹ŽN; ‰~jb<Ï[êv€xÛ&R¤£››-ï¶¾ÎÂó| cÃëÑâ½ÌGïÁÖoÀ­¾N«‹èè õË�™×hÇ„ãÃ9ŽJí-šæ˜¢.˜òK†qšá(å˜4î^8T0‡{wÜÕK?€Tí¼Í6_›š …“ TŠ ˆ7?   °<|¨ù]ˆl¿˜�¾Ä!Q¦TIàUóÛL~É$ÝvÀ¨¯HNÚl“ÉäèS°¦›¬É_ ¿ŒÑ®óæ«^óiÚ,¥³¡Š˜„¸>E‘].ù/0k7«íÑ5 ëõf`ñ‚9Â_/²¯ÈþÈ?8nÊÙë~o{����IEND®B`‚IMAGE 378 ./arch/spell/AnimateWeapon/spell_staff_to_snake.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ'Õ‘Y¤��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE������1��c��ŠŠ Š Ê'ü-ŠVG$c2d3‚B' R-Áq8‹ÚÉ���¯IDAT(SÎ!1Ð $“ŽÀ 'ØpÅú7ج-«&ƒ{ÔsdÏP…F´d;+|×—??¥iZ½Gšàrý òò éíA2;ÐTü†dvP Ô­°�;Ðpˆ=­ßÐdæ@2ëܦ¢û[·!™ƒ1th ©À€Î $3],ZMaÆÉ¬dFˆãí¡Â®�!ZdâvÂ@0ó_ÇñßüWWðý&É¥4½z“����IEND®B`‚IMAGE 355 ./arch/spell/Bolt/spell_steambolt.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ1¿l��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE���Š Ê&ýc2¯/_±!!¿¿¿Òiùqþ¿Êÿ��ÿÿÿ³Ïn���žIDAT(Sc0F h|Cc% H+vvv…YVÑãÊâà!Á*LÝuB‚µ0„s¹'°@H°÷.öpw ÖÂPÁÂà°B2ÊÙ—ð:0@H°—v×–%bKP1„ka÷RkMa‡`kYÜÙ $X…»NÉv q‡ »C „,"Îû# ˆ  Ñ�¿Y[ý<?����IEND®B`‚IMAGE 726 ./arch/spell/Change_Ability/spell_strength.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑtÑû*��� pHYs��t��tk$³Ö���gAMA��± üa��PPLTEWŠ ¹ Ê É ³ÂÈ ? ¿ ÂÁˆÂÅ¿}"˜$»%²%›&³&ý("’*$ /(¤/)™1+§3,±5&.5/³8"¯82­82®?0§?9µA;·C=¬H(1H1™I2šI8 JD³MAIN-£O.¤P�(RPrTIRU8œUSuY;š]EH`T\aM’cbƒeQ–ec…j^gjhŠkSVo[|pdmr^zw*€t}u~€¡uzcx‘†Ž–Š“›MV›kqœNX4O„‰£@T§CX©XpªB^³]j´(Ï’PÓ–EÔ–FÕGAÖF?ÖGAÖGBÖHB×HC×IC×IDÚI<ÛH<ÛK<Ý%,ÝsSÞ&,à!àtRó~Gó¬:õ®8øQ,ûƒBþ"þS)ÿ@@ÿS(ÿ…@§5³Q���ëIDAT8Ëc#�È30ãŒCM¿’­(”)l¯Éª€EÈÐ58=DCÔC3‚=…Øá tü“²òóó³Ò`�ÌK Ô…)0óŠËÉËË ˆŠ‰‰Ž ‹rs<,` dŒLü’³ƒd ¬ÝÝœìLµÕR²}môåànà·öñÖã‘TPQV”–pp1—âDö¯–%ÂwlΪÜèÞäbBò?+ߌ¬Ü\æ\| rÁJ0Õ +�“ R6.Ê\f„ ¹¹Ø‰dE.V+rá6+`6åÂì R@1â 䘀F´½>¥J����IEND®B`‚IMAGE 377 ./arch/spell/Golem/spell_summon_air_elemental.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑšúè��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE��¼��ÿŠ Êhàÿ&ýaaa¡¡¡¿¿¿àààÿÿÿðvG{���·IDAT(‘…K Ä @I°ª`˜nH=ÔÀJ¨$ a$ÔØÂ¦|/ûn<^†8IJ>Ä©&¶G@fœ ƒ@Шºà2DU ¶­ N!fzá~ b‰c”WˆjÖcË1uF¼¤f�Ú÷n,ô‚èóº"qpßüpS&&ºUŸ‘ï‡ÇQán –k¶¢Làádzÿˆ”˜§?…ºÝ âYàZ(^ÅÿBMb›Ç"¾È¬†×U1����IEND®B`‚IMAGE 1329 ./arch/spell/Golem/spell_summon_avatar.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�Ñ�� $ß���tIMEÑ�CßBh��� pHYs��t��tk$³Ö��©PLTE����� �� ������7�  , Š   Ê*1 (+5)&&-3�%%%+%1' ', 'A'ü(:(V(Y14 2#2?556)656A7& 7/ 8) ;$;6;==* @- @3 @D J3 J6 J9 KGL6 OZQ= QO QP QU QV U5XRY6\B_[ _m `7`=`>`E`HcQ eZfIgFgJgTjS l:l=lOlQlRlWl^ldmR mXpdpp rGrTrWuLv;v]xZ~J†‰faŽ{ ‘k‘q‘x‘‡ •r–i–p˜y ˜z ˜‰ wŸuŸ~ Ÿ‚Ÿ„ ŸŠ Ÿ“  m¢z¢{¢~¢¢„¢‡¤€ ¤ˆ ©l©t©©„«o«r«w«† ¬¬‡¬“° ±†²‘´¬µ¬·—·¡·¨¹š»¢¾¾¬�¿~ ¿— ¿™ ¿š ¿ ¿¨ ¿­ ¿® Á‰›éĘÄ¢ijŕţƇƖȚɛʣʤ ʾ Ë¢˨̡̡Υ КШ д ÕÕ¢Õ©×»تغÙ¤Ú¤ܪ ܯݪß­߸à·๠àÍ àÐ â•æ¶æ½ç¾ë¼íÀ ðÒ ñÄôÉõØõàõèùÏùßúîûÒüñþÖ�þÛ�þå�þê�I(ÄÍ��úIDAT8ËcP"�Èsðáܤ*HÞ×ã*¤õG`W`½jIµ#Ÿýy ØgÞÝæÉdw¦H›v>>]Ÿå˪.±asO 5ä;}{‚8VGrdlÔ’ŠÓoD`ú‚I‘Éhá&kv>žÎ«~L0a ˜«µùxœƒ—¬µæ <X"·ª ¡éôÝ­ÊþGO…-²ñ?Ô&ÂåÒ` ²®àî­nßmçNæOݱzÃÅš¤ŽþËÒ|¢õSà úVºsjn-“[ñèáíi{j£¢¥ùø‚vºÁ$dl×eiedêyp–€™5Y®@Ïp¿_—SÕí»÷o]»±ÀŒ‰ÇÿÈ/p_4yðMòbu<>qÛ­‰‘i+÷ª*“G„ƒžÝ™>•Ä–ÌXÉÆ»Ûgì>xo¾BAzu;ỎJ!þ€]–[¼ùt×—Zlš­W £iÂx!O›/è@Ž4kË->}FÓ¨\ä¸àÈhfä+¼ÇǨZ¾U™‘±Y`õ<s>ï‹××ù0ò™››ƒÅt‘0jFK37UGmݦ+M219œ eTnÝÚ ‹#Ñ V’@ï›k꬘°)`ÔgaN]<!<~îYìÉ>¥¹ét±³Ô¬Í¶dfì ¸ñòÜ�a´À(ñÎ����IEND®B`‚IMAGE 391 ./arch/spell/SummonMonster/spell_summon_cult_monsters.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ ®õK��� pHYs��t��tk$³Ö���gAMA��± üa���<PLTE�����€ Š Ê'ü@@@G$aaad3‚�� R-¡¡¡²""¿¿¿Áq8Ú¥ àààï§_ÿ×�¦Å ���°IDAT8˽ÒAƒ Ð_h%îׯ¶î‚lÚf¡Ì䌸O “~0/*Ì@ü6 `æs¹{àÁ\ì¥Iu?Ä­B¾Ak· ã†\€ºU�›JâĹ×Þu÷Áª"\{­¢ 5ælg¨ 'xÀúV¶mu�•s?КRK¡àd( ÍY4GÄ82,”ÝiRÄòúÔ ÜôéÁŸ~ÚŸpY˜ôÃQPÆÄ0+����IEND®B`‚IMAGE 371 ./arch/spell/Golem/spell_summon_devil.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ)³Eoë��� pHYs��t��tk$³Ö���gAMA��± üa���*PLTE���Š Ê&ýG$aaad3‚��’(  R-¡¡¡²""ÿ��ÿÿ�¾_U���®IDAT(‘c0F h|Cc% H‰�º€ÂT†=LÈìåì×O# 0°ï>]„PØu”ýÌv„�ûžÒ¨šÝÕÇY£–—o€ (ìæŽÚº»|\@ý +ƒO5Âõ=Q î»!j\\’Ô†–G1°�¸á¥Ó•*:‘=uh ’�ë$ k’@ÈŸ;ê<`Ç¢PÁ!ÊC€ *`0D��R¦]/Ð/ÓH����IEND®B`‚IMAGE 690 ./arch/spell/Golem/spell_summon_earth_elemental.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ(@^—Ü��� pHYs��t��tk$³Ö���gAMA��± üa���ÕPLTE����1�Š Ê&ýZ9c1cBcB!cR!kc1sJsJ!sR!sZ!sZ){J{R!{R){Z{Z!{Z){c1{k!{k1„R)„Z!„Z)„Z1„c„c)„c1„cB„k!„k)„k1„k9„s)„s9„sBŒB!ŒZ!ŒZ)ŒZ1Œc!Œc)Œc1Œk!Œk1Œs)ŒsBŒ{1”Z”k1”k9”s1”„Rœk1œk9œs9œsBœ{B¥k9¥{¥{B¥„J­„Jµ!!µ”RÎsRœëî��BIDAT8½ÒËZÂ0бGðR‹–‰ÄJÄ(q�ÛØT/ïÿH.t¶ÀÆÏ;g17¨ml¨P«‰5 þ�ºÎ�Ö�´æSùÕ�â,v\¬�¾Ë\ä@€2ˆØM‰ÕF¢»K |G Q ‰šN²êweH׋€Â†Sü0?>Ë&çÜŸŸ˜Ñ @¦Ççéôôꨕ~°í¤ÓE¢wnþ:£ÖíËü-ñlÆ‹€S@*tžÜ*?ºDÀå)�EŽõx/å§}ß3f«b�Â5¹‘O‡Ó°zQèUx¡2y7Æ*�PÈ"ÏM¢3ª;¹¥‚z–Ù@¸w'ˆy»ÇZW�ß´„B Öd}ˆPN+!Ķ »Ž$•®Iš"!„�”Z7âH¼âïî1±Šë¿2Xú8ei+¦"ÿ‚µ õà >Ñ+élôˆ����IEND®B`‚IMAGE 403 ./arch/spell/Golem/spell_summon_fire_elemental.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑáø’��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE���Š Ê&ýc2±!!íu�þ¤�þÖ�ÿ��ç@k���ÚIDAT(SÏ=ŠÃ0`Ö…ÊÜ@©Hrcv w°…/à. EpP'BòÆsÛ-lË—y0Å|ÅüˆË.bןÅE¿äø>˜n®¶«µÝ@Ý+®uåÜ ¶‘ƒ–¼‚më/v§¶S ¨þƒ9K. eO·øl 0 ‰ñ3˜j∃ûœÁJ"ïÃsÙbœ~hôyÕ( zŒå}â„a Ïf½C¦t½çæõÉã½<W!c(ßZ׃Ǽ‚-¦h%AÂ6Cõ §2ãÞƒãkÄy‹q †o ����IEND®B`‚IMAGE 344 ./arch/spell/SummonMonster/spell_summon_fog.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ 8UjZú��� pHYs��t��tk$³Ö���gAMA��± üa���PLTEŠ Ê&ý¡¡¡àààÿÿÿ*8T ���¨IDAT(S1à E¹ÂS!s”›T2ÝQcv¤Ä÷?B‡à$eªú™üŒ¿¿Ã2( õ¾~ŠÑhx°¡;ïþ£`(†úH”Fí PŒL<RV*¹¤ K(›{$´?Q ŠR/ ¾·¯=ÚÑ=/„F>=ž ´x÷ÀØ“‡²B¦xt*;‚ÒN c»¢'ãÜî!dôÊ{Tq€uâkïú„AóP�.Ñ;RfT–\����IEND®B`‚IMAGE 319 ./arch/spell/Golem/spell_summon_golem.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ;mÖ˜��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE����1�Š Ê&ýc2cDŸQ,¤8Ç���ŒIDAT(SÐ1 Ã@ À…CÜ?üÁþÀøjĵéÒÚÅ¡ï§ØÒuÉv!„c –yÇÁ’í�€¤Øj$å•àÂÒ#qæ!ÖCð@ðð TDŸ-€�3¸[`XŬ@¼ÅòRʉYÁ*¨@G åRo*–�Þ¾O¼ÁKãΰÕ`_àIíceÌË����IEND®B`‚IMAGE 364 ./arch/spell/SummonMonster/spell_summon_pet_monster.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ/8M_"��� pHYs��t��tk$³Ö���gAMA��± üa���$PLTE������1�Š Ê&ý-ŠVc2¿¿¿þ¿ÊÿÿÿIfÕ½���­IDAT(‘¥Ñ1‚@…á¿ØDi=…Ö\`‹½¡÷†ŽÐ ¤Vz`BærvÎ.¥¾n¾d2“òMØÔ¹‹’þ K u /†Êã@a¥4¸Ê›/<ÄC…BßÎð6Ú’5L © }­°—Ù¸£‚=‰œ :Å."³±‚ˆxx†°.ìV…¾—¶;SÆF Üc¼6„'dºÝMɰÁîRðÏ_Ò8dø�²9 P8a����IEND®B`‚IMAGE 427 ./arch/spell/Golem/spell_summon_water_elemental.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ8£QC��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE�������ÿ�1��ŠŠ�íí�ÿÿŠ Êÿ&ý-ŠVc2cD¿¿¿Œ2���àIDAT(SÑ1 Â@Ð 6Ú9!ŠS¦´ón™J69IÚˆŠ ÄâŸ@°÷�^D/`áœ5®itº}ÌæÏlÌ©U¦u>šÓú«ò¿`w§˜È˜–Œ–ˆF|”1•}«¡eÈ~ ›ÁìÂÂÈ0­a{žÝˆ‘KyÚGÀÐ+ôžãÚ-¸DbÅÅvÔ§®£˜T`™Èz£Q(ô4~G/јø«2öA¯HÒ@¡gn>Z<ô¡-öoX$Âs„pëW/”éjœ~�ծá'äßeŽ-x³¯ò>ßäÑ1����IEND®B`‚IMAGE 250 ./arch/spell/spell_summoner.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE)ŒR1)ïœ�ÿÿÿ���}f<q���¦IDATxÚ­“ÑÅ CÝÿói º^ßÖ,fÚ# s×§ŠÑÑ–þû™É„Û 8B{€ÒNhyEͯÕzŒˆ�4s�÷#àÄ7…Yé�¬µ5²‚PóPG×:´W ‰)! ž#@EèŒ:Eì­@!§ÆÈ©À€¨)€oÊ V­ßÑ/„|õyèìf0¾ñíçÇ5î§úeº<q%����IEND®B`‚IMAGE 392 ./arch/spell/Bolt/spell_sunspear.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ‘›¦é��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE����1��c��Ì� Š Ê'üc2cDŸQ,ÒiÙ¤ïå‹þÖ�ÿÿ�ÿÿÿãÅvæ���½IDAT(ÏcHC hü†´PàB¤@�š@Ä4`t®‹ }¬žÓ@"p+L `ßþ?û¶†´ÂeÎ ˆ†F\Eh‰ÞÒòÉ–@¢ïB (À°ïµ�\ È”Þ÷n7’_:«÷½{÷î¶(\@Q÷Ý»× ¬H¾åè{-„ðÜ ¡d 7ÈZއ_‚.ÕÛÿç5+’_BdÎÍØŠæ$¡Á 2IÂæ‚ RÐ�ä^¸+Ô5ç����IEND®B`‚IMAGE 481 ./arch/spell/TownPortal/spell_town_portal.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÒ4&}N��� pHYs��t��tk$³Ö���gAMA��± üa���9PLTE������1��ŠŠ�íí�ÿÿŠ Êÿ&ý-ŠVc2¯/_±!!¿¿¿þ¿Êÿ��ÿÿÿÚB÷„�� IDAT8O•ÓÛrƒ0 еVÅ Q+ñÿllƒ i3݆±Îø†Àö!øP_°m¹@FOYþ ZÊ„€)åx»rÖîÀ �§ª®rî€; $FCAÛÄ�mjáê.îd8@›PV³¨µ†‘¸âBîQk­5v¶}ÌÀ=}É^[v¨¹¿.aLÑA“�3 Ê¨×Gˆ.à *PCH<gP@Ê D¹.aLñõqÒë&õ<EÒvÝ3ðï ˆÞOQ iý¢Œ÷ d�^@K‘H¿^õè*"÷u4©Ô•‚÷3¸ƒÜwëú¥iGï¬C\àOLyúÚ£|ý/ò\û ä³”O°ô�8žg°-çÜÊØóÆ����IEND®B`‚IMAGE 241 ./arch/spell/Misc/spell_transference.111 ‰PNG  ��� IHDR��� ��� ���’g���tEXtCreation Time�ÑÃD(ø���tIMEÑ9ymË��� pHYs��t��tk$³Ö���gAMA��± üa��� PLTEŠ Ê&ý½½½Í&©ˆ���JIDATWcX PzÃÒP0@fĆˆQ D( ˜T|l-õÿÿ²Bûÿ«@„ß|vÁµ“d)»Ð}º€  4�õºmãN:Ïê����IEND®B`‚IMAGE 347 ./arch/spell/Cone/spell_turn_undead.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ5ÚÑF��� pHYs��t��tk$³Ö���gAMA��± üa���!PLTE���1� Š Ê'ü-ŠVc2¿¿¿þ¿ÊÿÿÿD½¸³���ŸIDAT(‘cpA h|'c D¶@²1Œ„4ÃHˆ@Ç c‹b 0[llY "‘ªÚ‘L›-šA$’-@3l13 4#ÜabV¬€kIìh36ON_^ŒP!l,ÑŒ¦¥¢YÀRl¨!ÂÃ6µæwˆµg4ìV‚ @  c¨s`­èË(uüJ¨€Á M��Á{vŠDÕý����IEND®B`‚IMAGE 452 ./arch/spell/Bullet/spell_vitriol.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEѹe³þ��� pHYs��t��tk$³Ö���gAMA��± üa���xPLTE���ÿ�÷ q ð ©é Š " b á â Ê4 S à Ó <%E+„+¥+Å+E+Ä+N11½1V6¶6"hA%pF% F'ü(yL(™L+‚Q+’Q.‹W[l$e���±IDAT8Ëå’Ý‚ FYM 1²„J%yÿ7ì ˜Aïë»Ý3‡a¿EÃAÐÁœ¢a(wB @…<É”Gç+cI×x 8�Ò§Íù@dÑÉÀæš@’½Íˆ·6Tйom(`ªQÖÉÀ6?aˆ2ÌNNnm3À¯ÎN¦ëu`[¾ÉÇ»m]®Ûj“º¾åm‰Ûº ŽýöV¶HY‹-Öæb£t´t7è`N¿éCÕo83����IEND®B`‚IMAGE 535 ./arch/spell/Cone/spell_vitriol_splash.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑCjŽ��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE�����/��?��ÿ�˜÷ 1 ð )é Š " b â Ê4 T ” à Ó Ì%E+„+…+¥+Å+E+e+Ä+N1½1V6†6¶6"hA"§A"¨A%pF% F'ü(yL(™L+’Q.‹W/‘ª°���ïIDAT8ËÍ’ÉRÃ0Dh<(ÈŠF€â€y‘ñÊÿn¶°«8¥¯ýjz¶h<Ptà'Ñ8òŽ’{ÎÌLÌ óóó…‹ îÝð»èÄK®à ³zbÅÌüòêAåEVYAy~z Døé*ÑItÖn‘jˆ8€lh ´¢e&��V{ZÔ·vÖ�€ªmÕ¨Õb Ήʘu¥Ô�„¶øT)$Pý�C¾mò Ñ qÛ÷¥ôÛ1Õ$:5Ý„øRt›M`Õç¡®}:ÈY9RœÛ9fo¸ÿVûC)ÝóÓþHvøÉ?ÐO®‘H����IEND®B`‚IMAGE 363 ./arch/spell/MagicWall/spell_wall_of_thorns.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ$€ vÚ��� pHYs��t��tk$³Ö���gAMA��± üa���0PLTE������1��c� Š Ê'ü-ŠVc2cDŸQ,¯/_Í…?Ù¤ùqƒbÚ��� IDAT(ÏcHC hü†´PàBSU¡­(Q¡ªÈA‘SW¬šŠ$¥£‰¬"*²#èÒ\d+8f¬@ÒÔ¹r͉U]€ö¨9]?ÁÆB¦õF0Ýh]…0cÑÂIs*Ö"iQ½uç„ÞÊ©C¯ê®é-ÒBvúÒ5_cw/Eö\ÌÒÈà©ÈM¨ÞšÐ0-€–Ò6Ô]PC š��TȺѾõ����IEND®B`‚IMAGE 398 ./arch/spell/Cone/spell_wave.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs��t��tk$³Ö���tIMEÛ\‹æE���'PLTE�����„��Î��ÿ�JÆ�kÎ�ïï Š Ê”ÿ'üJ¥ÿÿÿÿ@j1€���íIDAT(SÑ1‹Â0à®âô •„º¤ƒÐ±›óM: Þà8¡¿À¹ºXè`äRòBwÁñV] 7DîO]TlÒN¾KÈÃËøœ{ z÷SpÞw²yò4ãØt`xl`ŒƒèZ£f^㯾f$üö;^8Ø Øk¡˜×ªq<±ò æ—\Jé„FœD2¥#o(Å÷G¸×ˆQ!9øÉ,|‰ Tꃽ 8 ²lÉôÊ|}LìµåLz$°RÂè;%YáP!6´6´ é3dÓésh±+v6ö(Új³×¶úæGmº N=ø‚âüz¬Æ•����IEND®B`‚IMAGE 970 ./arch/spell/Cone/spell_windstorm.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ18/`��� pHYs��t��tk$³Ö���gAMA��± üa��;IDATxÚÝVËOAž}´¥´¥-PJ¡ < j¹`< LŒ‰‰‰‰á‚HŒñ¤‰‰'/¼j¼ø/Æp1z〉% PL% < ´ÛÇt·ÝÇìθPB(ÐvQzñ;lf&»ß7óí÷›ê˜ê¥]RöÅ'a6ÛZ:»6Rúüì¿Npù83ÓC¥<¤"ªÅþà! èì¦át‡ݫz÷PtWñvGŸ»ÎN%|ôf{ß·÷‚b)ë¾ÜfÚí·Ýb¨ŠíÝ}îĽºñ¬ˆîýdŸ´³WϘû†à:QÔ’Xß’L+Ý_/÷#,­SÏur}P÷=»Žì?(.àÆntW[Xqqu·;} OøÞ*�­ï>|:îK¤MÕj/t’L¡¬é{}Ï+Àb{g⣀ÙÁwWnÞ×¢hýãܽ§22…ø%^¦$h™Ouz |ä!¦¥-£óg)G mùrUòh8ø¾%p¾†ö޾¼Ð}Í…œPÒj¥F "1&SI�xâX;çdÇ ¯²ÈRŽ@3T¬“¯‰ÄX,ßF‡Z}]^§_à4APU‘à8&1bJƒ²ëK_“’k¾p–r5I6­ÚC2/ MÞß sn‹`ð*é+qÕ%lÆ”¯§Æ{g{ce³´‘ß=YÊøÜò©e½r­ :8„6ÿc°ÜZAkVÌ«6UCi͉py6Û ©š¾H{f¦o d)G€·¥€ ¤prþÒO;q´„NvÄO•)&¤(å2É$•rAR3qUŒÅàâr4ØØæí 7O eiŸ:À4Æ,irµÐTíŠVäT„_Œ¤—9am-µƒ‘X’ƒZ[ϺèVPy·Š¶L»X–œ#0S*ä^ …HIDPf<„¯‡Íc) Ce‘Ê(­" ž«Š$,ñx —©L#¯Ì¸ð4ýõ`u°!ÛmÏ0œ%*”ñR™X`*Fë`'$Z VNc0ZƱË£uP”h{í»<1ZÆÍÝåÉÁêÀˆ¹<9˜@>¢¢çŒQ|DEÏ£ƉŠdï‘¥ÀÆÎ«ßKEÀ„n\:Îx����IEND®B`‚IMAGE 384 ./arch/spell/Cone/spell_wonder.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑ4|HZ™��� pHYs��t��tk$³Ö���gAMA��± üa���'PLTE������1��c�Š Ê&ý-ŠVc2±!!¿¿¿ÿ��øsú���¾IDAT(SuÍ1 Â@П@H)O  K:±ñ9ÀXð�!õº"QlÒØä 6)Cð6i$‡²‰ÙÝA÷”,`½@)dÿw(4 0vpá´l‘¼ t@`€�8pØh†h]¥ˆ{³ÈÕr�f¡#qŸ8©¸og�œáiIÖ[?Ôúª¤”P >vòÛb¥«ÚZTy´@øJœ-¨+µ±AŠ©~ŽŸ•_¹AÁàðOŸa‘#����IEND®B`‚IMAGE 1257 ./arch/spell/Misc/spell_word_of_recall.111 ‰PNG  ��� IHDR��� ��� ���üí£���tEXtCreation Time�ÑÃD(ø���tIMEÑ T«��� pHYs��t��tk$³Ö���gAMA��± üa��ZIDATHÇcPÿ#CSÄ@SÓ9»˜ ðœb¢:š>Œ-:Â$~�„$€è ³Ä!’<ÄÂw’(+xœEâ0T${�ª˜ÿ8Ñ”¦0Qa8gÄ~Ùž÷²¯Èå`ñˉ2«ô´÷I�e=×i®)VЀIJö¼@•@õ>ÝŒDY |„i ãg–ÿŠÿ %þ;)ü RÝ’¥9N«ú!9 û-•9qÓTþ©eAj€ê≳�èÙ“Ú,ÿ%x ¦Mù—¬½·ZÎüZÕò@Ž[ÌfÕ¹½¬ÐûŸ¬°C‚gv3Qhl`z¨Ìþ_Sä¿¥ H?Д“ÿ­æ7昇îW;Ê9{Ö×iÖ@8Ä JM‘lÈÑ€ÓÓeLŸ¹?YIüñQú­ñ¿ÄdÖl‡ÿ«-Þo1¼¾Mçß& $ÊFk| Tüc,qÙ‚ è{ÂxÌ`¾c-2»8tu®é—|3§Ø‚LÜeðÿ”Ù@ xÉ¥rYUÑ{s¬¯Û (o'‚À)b‹ëÓór²'X~è09èj ¹wþ?‘�‘@ö&“³Žt”dD�/œ;gF»Î:.ÂX®3š>}z^oNriRDXXuŠñÇ9¶P €¦ÿg�‘` ¶÷yÙ%''ç÷äN]4µ¾³Nv§(a ,Öég¬H•= ¢²I6ªÌf³áŸ9öX}ðb®UG™¡{Ìaó}™SÓäwˆ°�KE¥;8A‘±†ût½*þ8øYg¼¸ONk7P}Ð,>ßɬ,Ð]Åt[€aŸ;gu ÏÃ(9´Tò¡¦¢ÓiÒåí<÷ ¸û X`¼˜éÃOŽ?Úèù�èÞ/síîÏ· ôj>�ªêšæEÈÿVÆŒ  r)'ƒL)1|Úl¸zZܬ õ»ûlþԃ܎š“º6é0ˆÄkAL ã†ç ÈeДijýµS§N0aBCUé†J“Ÿ±êheP×n©Ýx-¨`¼ÀÀ�´ã-(  vœñ–*w+///^T¿,º¬¶4+9iR¼Á7;iˆé@•oÁºŽr3h/ÇmïI¦ZWÆ# @;‚퀄Õe;áªûèÞ¹Ãbü'Y-W'ä…M Óú¦' ™·`õ@]{8Œæá¶@è0Kv´h³›%W§û4K®vü«ÜD6øJ.Sq›¯uÇ –œÝ Árë½ÅWº/°å›fÅÝcÁÙdÆÔk=U�§Â'¸rú²€9ÓÕÕUCCÃÍÍ È.--mooŸ9s¦ßt/ˆ2þ#l5󫀂UUU999±±±ÞÞÞ–––@-@õÀ‚`à,à;Éb°YSw±ºÒtiñ¥2@¶É*=ë¦NÛ­U·ÉÁ‚ˆÙl—PÐlá2-í…ª*³äd'‹µ�ÕËî­ŠQ ì`€·Ri„hj:�´I0kl·åƒ����IEND®B`‚IMAGE 380 ./arch/spell/Cone/spell_wrathful_eye.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���tEXtCreation Time�ÑÃD(ø���tIMEÑ:6ÿ&��� pHYs��t��tk$³Ö���gAMA��± üa���3PLTE������1��c� Š Ê'ü-ŠVc2¯/_±!!¿¿¿ùqþ¿Êÿ��ÿÿÿ¹ZK†���®IDAT8ËÕÒÁÂ0 PÖ5¦nñÿ-@Lt0qÄ×<Éj¬ÁÁ|Áº–/YþàžO�@ʾlÍ (]w@™5d¥òI^�€ÍÀ êÃz¶l�»T#"h'°í¨@…%›>?@ï;ÀÉ‘¨a shŠPö½ È&I«uN¯(@K2(Yšÿ¡�)«†œ&v@)�»d³}ÜE6IÚîó·uÿ÷U/_ƒƒùr%ÝÊüâ����IEND®B`‚IMAGE 319 ./arch/spell/Change_Ability/spell_xray.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���tEXtCreation Time�ÑÃD(ø���tIMEÑÁiÂ…��� pHYs��t��tk$³Ö���gAMA��± üa���PLTE������1�Š Ê&ýc2cD¿¿¿‡€Õd���†IDAT(Ͻ± Ã0 ?€0GH—¼� m`x€”^Ã… v©þ¶édJø;þ >±OÂ4oØó õ^ ˜€”‚ü!‚ƒä»Ì+¤¤½uUÜ«7\‘§?¾R¢ƒåC¡‘-,}‘n~E2’K §‹ñL±‹ËéÞ'¯£°MàñÈŠ´©ÙJ<����IEND®B`‚IMAGE 442 ./arch/monster/misc/sphinx.x31 ‰PNG  ��� IHDR���@��� ���•C޶���!PLTE���c2�c�Í…?�1�cDÙ¤���ïå‹¿¿¿Òû†���tRNS�@æØf��GIDATxÚ‘Û’„ C§%™„üÿ¯«:ØÕÓVYNàñ_¤*‚ÔÊã2Z©n»›¸@›0¹Àn&!Š7:Hhãg Å[4(ÎuU˜@i½eax9€-fçr�ÌÏh¶Ç:s®ÐA£Ší‘>ù0cW¶/ZˆèÔ`ûŒ ʤKתC #o°Sh Fá$! ­ŒÎw4LUš°ñ(ý­…×™T_Žý_Ú Ö™Àu¦Œ 8—ÐOÅïðta‹^IfnàÎÑ ì܈™·Þ•0Äk4HŠ“Zù¦¡´H`³ƒª"ãð´¥Zw72! j¶·…àÞŠÖâ0xa7ب¥@€[‹Bhó§Ø»ÛÔ;mkÒRÓ÷Ü5ŸiшqH˜¬û#`¾bÎ1¿a´áàÞ����IEND®B`‚IMAGE 476 ./arch/monster/misc/sphinx.x71 ‰PNG  ��� IHDR���@��� ���•C޶���*PLTE�0�-ŠVc2�c�Í…?�1�ùqcDÙ¤���ïå‹¿¿¿ŸQ,R ���tRNS�@æØf��`IDATxÚ•Žƒ0 Coõ¼¸üÿïát7VNàŠ ˆôjK|ýQfT‹ùuA %*ò2�v·»2¯0’P0(»W H„�¹ë ‚lýÝìÓjÝH’r<D¹õHBœÀ„¢%ëÀnLÞîl˜úÖAn5È‹Àl f>+;}P6¢œ°q�æÈ¢8ƒ÷ƒ9ÔØƒ™@Fž„-šhÌT¿ä ¨ðš‰Iu¡ª hl�yÈ#bj»ó_=¡ @t/kþ¶'2ì'øÖ:Æ€ñw¿]g<ï`߃!Ì#�…ºÆÔàîÌÀÌ·þ ˜×[XUD ×éSëUÖ³‚Ã*/Ÿ‚”Ï üf­8ˆêv· ®%4�IqzöªÏ?þYÖÖ¥,Q}Ùÿ�ᆙð®"s±Ž§'<`„æ™Âcûï˸¨ö¥äpYø³*Ýd²Ÿ����IEND®B`‚IMAGE 1314 ./arch/monster/insect/spider/spider.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��CPLTEUUU•••™™™ššš›››œœœ“““˜˜˜‡‡‡’’’VVV^^^___dddiiiuuuyyy‹‹‹sss‘‘‘bbb~~~\\\eee‰‰‰ŠŠŠ}}}ŽŽŽZZZ†††[[[vvvaaa–––———|||‚‚‚ƒƒƒ„„„›œœ€€€cccooorrrˆˆˆUWWtttWWWŒ‡‡ŒŒŒŒŒdaawwwxxx_bb{{{```“‰‰fff”””gggww–——hhhXXXjjj‚kkklll›nnnœ››………£““¦’’¨[[¨••«’’¯¶rr¼††À‚‚ÃÌooØhhÞbb���    $$$999HHH000BBB!!!%%%((()))+++,,,///***444===>>>???AAARRRDDDGGG TTT��� ��2223334 4"""666688777###; ;;;<<<&--�EEEFFF� KKKLLLNNNOOOQQQ---SBB...U k}33~‡Ž²""³<<¹VVº%%Þ++ê//ëDDð??ñAAò33c"¦���]tRNS���������������������������������������������������������������������������������������������Jdž*��1IDATx^}Òc“cAàéëØÛZÛ¶½Ý7¶±µmÛþi›ÙªÌ$“›=ÕßÞ§úTW¿yÔ\@òµTfÒ� x<¼awiN@ŠåóU}Õt�JÇâr|ÙÓÆ\ þ|% pM¿6WEq¯´†QW¾sƒ¦]Û_]­Ö,ºûzÝîŠ#Gߟq[àÛ/'7qC§~}»Ð½O?~ŸØ› øENÿù|Ñf»ýáûÏãÙ´hl鱯ïî[O.}<¸?YH¤~Ì¿zù¦N›7à={nÅæäœiØG¤¬ ;,Y0j÷<úàš.áµ­ÅÒ�¥œöL^é€Èˆàƒ‰²±ñh¸WŽÏ #xem0BÃ… ¤�.—¬,ªFI€Ð èŒiªê×4³@æîHäE§B,Ë"ä{Ø"“ŒGò± ›GÐ〬å_XŒÜqB—d�¦Yt«=9·M&£Í!tuÇEåd P€ÄÊ·uYŒ&½Uo6aôE‹JKÏû eš­v§cJoîQUà$2P?7X퓾6§Áz½²JW\Hf�@hoZ N_{Ðí0@w¨§k'“HñÔ\þHÈ ýñ¾p`HGe€ !з <¾—:ñªÅâÚ �x×ú¥åë»ÍvoÈ»„Ÿ¼qþÂ4F[‚­®a¡T6rY¨À²6ªDVH)ú£u¦x:Q ÈMÖˆoÄfÞ£V 8·ºâYlajÀ 0…ÿ/ ’âÈ_.û¡J’,����IEND®B`‚IMAGE 1282 ./arch/monster/insect/spider/spider.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��.PLTEUWW•••–––———˜˜˜™™™›››{{{|||}}}„„„………‡‡‡ŽŽŽ‘‘‘’’’^^^cccppptttwwwšššyyy›œœœœœzzzŠŠŠŒŒŒsssWWW```xxxaaabbbZZZeeeggghhhjjj†††[[[ˆˆˆVVVXXX‰‰‰\\\‹‹‹lllooo]]]ddd~vv~~~€€€‚‚‚™œœƒyyšœœƒƒƒYYYœ››vttœ››wuužšš¤””§””¨””¬bb¬’’¯´oo»……À‚‚ÃÉiiØhhÞbb���  $$$+++---;;;BBBMMMNNN"""%%%&&&(((///333444999===AAADDDFFFGGGKKK!!!QQQ� 000222 !!4 4888 ::::<<; #<<<###@))@@@� ��EEE&'''''HHHIIIJJJ'..LLL***OOO�SSSTTTU VVVk|00~‡ ް22²""¹VVº%%Þ++ê//ëDDð??ñAAò33ú€šp���UtRNS�������������������������������������������������������������������������������������-ó¡ý��.IDATx^…ÓS“$A�àmíYgÛ¶ª=¶×6ζmÿîj÷âvº÷:âò!_êëÌÊì¨O1’‚Å=Ò(ÊhÛDÂÜ r*#Ý?ÖõÎG”n½VëèûÆMÊ�[Ö®`M¦`VD]« ÃÍõ+0Eà^¿ãô¥êš’G×7¸•+ì?ðöv„¯>ÙçV»þør™¦øöóðvØð°çدOg8îÉ»¯ßÁm¨Q) àjvüüæ¹_8qöýÞ]Ûˆò)ƒPf¯qoYy—“â­+[7¢«FI�¹º÷¢EmÐÝ F“Q¾£\gÍ‚ÇFi‹¦à3÷_f�£A|dHW](!¸úÅIàOp :ê(sxqɤI³°À i˜’ù¥öæ{eòªÖj]£MÓ ÃÐôðPêÂ,ðh³™¾þÀ°3Á€.X¥ !fAY^„†åb¡PŒc?=V¿ÀYœ‚Ð-®œ—K°±ÏïãC1~Jµ“¯šÀu7� >þ©—TøY¥cðf"øÓv‚š H½%ʼnɈ�95JRr /ÄA„ëjKMˆ@ŒƒA«^^­‰t>Ø|>ïNF#ùŠÐm#d`y>g7´< DCm熮ZK‹¼âÕ¦ºTÏëÚêŠÉñR'‚rà!<hC{ÖnFqC婿¥1›²ýŒšnWe+U܃ՅýT~›N¤¸9øOüU£ÀÂRDWr����IEND®B`‚IMAGE 1288 ./arch/monster/insect/spider/spider.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��=PLTEUWW™™™“““›››œœœtttxxxyyyzzz{{{‰‰‰ŠŠŠ’’’•••———˜˜˜]]]šššaaappphhh–––€€€ZZZmmm‘‘‘[[[|||”””~~~rrrbbb‚‚‚„„„†††fffYYYmoonnnƒƒƒWWWXXXˆˆˆsssddd‹ˆˆ‹‹‹ŒŒŒvvvwwweeeVVVggg{pphgg^^^}}}–˜˜~vvkkk˜™™~€€™šš}}›šš~~›œœlll```žšš¢‘‘§””¨””­““®°hh°jj»……Á„„Ã~~ÉiiØhhÞbb���   !!!***---444EEENNNQQQ,,,000###888;;;???DDD'''IIIJJJMMM((()))++++22� ��...///1--1112224 4555666777:::; �;==<<<?''@@@� """FFF$$$KKK&''PPP SSSTTTU UUUkx&&~‰%%ް33²""¹VVº$$Þ,,ê//ìGGï==ñAAò33jZƒ\���YtRNS�����������������������������������������������������������������������������������������÷¼È:��!IDATx^•“c“$A†·5´±6ζm£ª9¶±öžmÛ¶ñÛnfâv{¯»¿Üû¡"#ò‰¬¬Ì·*ˆ¿Â ç^�1S¡+ˆS©—MÝ ¬T@30R%`²¤ )òžõ’W4ŸXTxMÇ  ‘´÷/© FÔ::¬•lr㊥OnXš*ŽÞZ²š¬°s×›ãA?xùaÿ޵f\ l;ðýó5o¿ÿúcß"¶üùñI^xûåÛÞ …61°eϧ××=ìÝóïvo2Z‰ˆ›\¿ò1އ^·¦ØŒ<Pž~yÖ9&ѽÖçàÈrČ󀡡±(ë² €±lv©UN3¨Âñ¢0®œrVv¤Št–lò÷²”‚°xÜ{aÊ‚¡I�¶Êe¶>BÈq„¡L¤§'�ÜX­i™2€ó—ÅA�®Vêø&±iOûÓ)¶˜')Ÿ"ý U¨³ã“žÙÚ �›�~Êçö¸iÅšæ™ÿ™¤¾Ñe²->KÑ&À>sÓ=rá6»U^öy˜ÃÑHÀëétˆÖmnÙ|“r{ÑT"ÈzÓ 0€Ï}�“�c±‡]á�C¿ªøkÉçM¶¦3c‘_ñPôâ©“r¡ôZÚ¶p0±³‡K'ôn—å’Ýµíµ–|Wûü…ÈQXsß¡éu(¢78î ©QDìIõ*Uuùc•'&ájlÜB8¢A¶ë¿€?Ÿð–ËXDå†����IEND®B`‚IMAGE 1302 ./arch/monster/insect/spider/spider.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��=PLTEUWW–––———˜˜˜™™™ššš›››œœœttt………†††ŠŠŠ‘‘‘’’’•••ccchhhppp„„„zzz›œœ{{{|||‡‡‡www}}}yyyŽŽŽWWW‰‰‰ZZZŒŒŒjjj[[[]]]vvvgggxxx^^^```aaabbbeee€€€ˆˆˆoooddd‹‹‹rrrsss~vv~~~XXX”””vtt‚‚‚ƒyyƒƒƒ™œœ\\\šœœwuuYYYœ››VVVœ››lllžšš¤””§””¨””¬bb¬’’¯´oo»……À‚‚ÃÉiiØhhÞbb���  $$$---;;;BBBMMMNNN+++%%%&&&(((///000444999<<<AAADDDFFFGGGKKK!!!***���2223334 4555666888� :<<; """#===@))@@@### EEE&''HHHIIIJJJ'''LLL'..� OOOQQQSSSTTTU VVVk|00~‡ ް22²""¹VVº%%Þ++ê//ëDDð??ñAAò33 !!µ4¶���XtRNS����������������������������������������������������������������������������������������Ñõ²��0IDATx^…Óc“$Aàmbl-mœmÛ¨öØ^ÛGÛ¶mü¶ë»Ûé™èˆ{?ä§§2#«¢Šˆ\Pœ”*„òä�©5¯Ä¥j²cÊ€pe«¤Ãª‹ Ê�1^¯—ú8û'tÊ�®é(–@["£WhË%3ŒèëFfÊÀ¶jí¯ MÍE®®°)wصûõá ¼x¿§M l;ðíÓEš>ýîË÷}›' Áöƒ?>œdÙ£o>ÝK:5&$†“[ö||uŒΟz»cëF”*ÓÊ�©¯m3ØÖ/¸ÃŠ1ññå¥k E£WæÈ�ÞÚw¶ÁQªºå ÅB\ç|•q<”w Ô)À%î>O�ÚOƒÈè°ÎÔB¨ Žg}ÀtX£Ê]VD¶®+^ݤдTbéYTõƒûÚ€ÔYíË,%cMÓ ÃÐôàpJÒ™@X’‰þÀ¸ÿ†ÝR—L1:*Ó¢4˜aܬßãñ³nÀgÇëʱܨjsã†TÔí÷„ù0çñsOíóàü·@aÃòk€ã}áf˜;dÅK3îå}·£‘€—ÏR(YpgCÜí D'{‚‚¤KàÌD@힊ˆ@Œ€¡ŠV<@ÍÁ®{ëÎù"Gb¡`º¬üœ‹å…éUÚþÄòLݬҖԘ*óG¬T×ï}YÑT69¡Á ¸p ”€LIJ!¥Ç«Û•ÖT'\0ùg\½Y£4Æxz{\ùob†Üíäƒÿä7&Çš¡Ó˜0����IEND®B`‚IMAGE 1287 ./arch/monster/insect/spider/spider.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTEUUUššš”””›››œœœ———ŒŒŒ………‡‡‡‘‘‘“““hhh•••{{{„„„]]]dddXXX___ooo‹‹‹ŠŠŠ™™™rrrjjjtttvvvwww’’’xxxzzzggg–––}}}˜˜˜~~~ˆˆˆiii‰‰‰mmmWWWzss^^^ppp|||ŽŽŽqqq[\\€€€sss‚‚„{{„‚‚```„……uuu†††šœœ†‡‡›œœ›aaa››lllž˜˜ž››Ÿ‚‚ ™™¡™™«®²ˆˆ²½„„¾ƒƒÆ~~Ënn���   ###%%%...222777;;;<<<IIIJJJRRRSSS !!!///555999 ???BBBDDDEEEGGG&&&KKKMMMNNN )))/333444�666�8889; �< === AAA"""CCC$$$FFFHHH'(((LLL+..NQQOOOOQSS---TTTu33„77—LL›!!Ÿ""·GG¹&&ÝPPß--ßGGãXXç..çSSò??õ55U¿»o���StRNS�����������������������������������������������������������������������������������ÿqß¾��,IDATx^µÓUo1àØ3³Ì¼aæ”™™ÙƒËÌfN™™™™ùÇu’n›I7RŸrž,OÖµt]@ü's aø,�8œª —›õM³� Ó`›ˆíëµñ¶HL‡ƒD7ì:ppÇSµTŒ--Å�ª�¯¼Z³ïûgz%V$¯X§¬P™¬ ÑZ·÷Ëç÷‡ïd þtL&¸A×qµXTM·­Xùêå9„²zK ¹N�¤oPÑþæ%G/žr@Î>4È �`zzXefì‘gÈk·Ÿüæõ<åŒgâš G)D!WÚf»üîÛ§Ýp€ò1Ä:ÐdzŽt_øøóëb&PðõTÈVæîÛCûw @\®¨<Îw,K’$ëºõhÕ¶-ÿ�¤†øí']|Mº\2¬Á…û µ#䙬)×étz=™Íb�ÿÑÖÁ‰›DR§#¦ig Õ8 6ª±†d'åµsL{ŠëñNt¤PXo‘à¹`‘QZ~uÒÜõaŸÍÍu4šBˆ>f©Ëå‚Á°?…hŽñÆm­ÜPbqy‰J£ÈÍ€k/ õ™¢¬›yî»ãöwo‰¤fúŠªZ±«°ÑíŒÛ7_ZÜgC™`''°¨>:~ÔO%ŘÖéŽKó–V;¹ÌºÚ—-©u¥·öÊ–.lJd&JDÁ×y�Ô&ÊD pmnú|�‹ÉqÞásü7óó ³—n9 Ío����IEND®B`‚IMAGE 1283 ./arch/monster/insect/spider/spider.122 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��1PLTEVVVœœœ˜˜˜™™™ššš›››ttt„„„………†††ˆˆˆŒŒŒoooŽŽŽ’’’“““–––sssyyy{{{]]]eeeuuu‘‘‘bbb”””xxx•••nnn———‰‰‰ŠŠŠzzz```›œœaaalll‡‡‡___YYYppp‹‹‹rrr\^^ŽŒŒWWWdddvvvwww^^^eggfffhhh|||}}}—™™~~~jbb‚‚‚ƒƒƒ„{{›œjjj››kkkž››žžžžŸšš ™™¡™™©‹‹®²ˆˆ²½„„¾ƒƒÆ~~Ìqq��� EEE !!!---///222777AAATTT%%%+++111333555;;; BBBHHHIIIJJJMMMPPPRRR UUU0 000�666 9:::; �<<<<===>>>???@@@ BDDDDD"""GGG$$$�(((KKKLLL***OOOO.�� u33‚33›!!WWŸ""·GGº((ÝPPß--ßGGãXXç..çSSò??õ66^Œ���UtRNS�������������������������������������������������������������������������������������-ó¡ý��,IDATx^­Óó“\Að›yZg+¶m;ý¸¶÷l#¶mÛúë²Iöeë6u¹ªT¾¿ögjz¦º ðùG€¨’ª¿dXXPKMaAä°‚üÐÚ ãõxËÊY-#ÊH;:2×ïÜ`õ ¶ E‘ˆ¦±*–VPxï—¯oO=Ô#ŒLæÍÅ2@„Mƒµ}*Ùºçã‡7OZ qYyü.#¼&1So²³ÑZjÝógg�Âv³=Ö© e@YÆÂ ŒµRʹGOÞvœ…ÇÇžö)* pÍ „K­ 迤ÓyüÁË«•$Ê5IZº |/ ÀÃ-ŠW^}~¿kÂ3QYa3øð#ž#çÞ}û´;¦ð6Íu~…õx½>¸o‡ ¥µL+²™;ÀåbYÖ±%ó¶oª—­¾Á5·G2eÖáà2á¥åe$m2ÒY Y6~ºíg™ &yžOBSOjiåŒ9¦ì4iTmŒËù^·[�x�A<a¡³€(fõèU.éôºý^Oo$5_Š)*äV 'ÒàokHôy…hU­b(”ä"é|W4 ‚7J‰Ðíã:zëTôï015j›î²Ëh = ¶ŒÆDp§+‰‰CX¥&Aôîë %+ê¤øx5žYÞêt^¬F˜®`¦ëé<€ÑÚè ²´õ’fÒ½PƪͷtU“Ca¥("òAN1¥o$Д«÷¿ÁwòĬä„����IEND®B`‚IMAGE 1259 ./arch/monster/insect/spider/spider.123 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��.PLTEVVV{{{˜˜˜™™™ššš›››œœœ___ŽŽŽŠŠŠwww“““”””•••–––———xxxyyy^^^~~~‰‰‰eee’’’ŒŒŒkkkmmmsss‘‘‘[[[]]]XXXZZZ|||ddd‚‚‚„„„………ggghhhoqq‡‡‡‡ppprrr‹ŠŠ‹‹‹srrZ\\Žmmuuu‰‰vvvf^^WWW\\\iiijjj}}}bbblll€€€\^^ƒƒƒ›œœ›„{{nnnžœœ¡™™ªŒŒ¬ŽŽ²ˆˆ²¸}}¾ƒƒÅ||Írr���   '''***---BBBHHHQQQ///LLLEEEAAA000;;;>>>@@@+++IIIKKK%%%$$$�,,, .../��1111444666888:..:::; <<<<===�CCCDDD�FFF !!!"""###MMMOPPP#&&SSSu33‚33›!!žYYŸ!!±77º((ÝPPß..ßGGãZZç..çSSñ==õ66 %%è^á���TtRNS������������������������������������������������������������������������������������þ$�Ù��IDATx^­ÓSw$Qà¾åj±¡m§Ð¶[cÛ¶mü»IMºú!½:y™ýz¿‡½×ºGAÏ’"@G ­¡‘š ªš';ð�e>ñLYÐQ’À6zç’LÂD�bc“Tlë®—þéT®P¥»0IìûùëÓ¹¬N¢@$ÍŽ$ÐÞo_?ž±km´Í³S�•Ô«põ)èª'èío^_xl±š˜®˜E›ë€]ÌXK×Ç ¥Vn¾vòAà6œI¼ì¾ÙÐBNÊtnlh´ C6§Û}ôù»·+Ë› ù’&Ok«�øDñÑû_v“ùˆF,_ü‹¿·çúçßß÷äg¢’æ¶´< ¹ðþðå‡öÏÑÉ�¯è?Ÿn³'€ãxžç¸þöË-fe@έŽÃÙa�Ž"“¾Úº{㊠ºrþ _zŽ8œ®É8€¸dΗÔX·Ø°Žq¸<>Ÿ×ëêM¤f½\ÒX–LŽ2BÄéÂwB‚ßïX³É¦G2 ›,©Ø€Ë+tߊAÁ,›Ê¼ÂH J¯4µŽ‰^!‰ {Ü�#%)ÑÔÉÃÑ#¾ÕöUFÛª¦ý„ xkèþ2-¡cjŒô4€ðÖ㮄’j¹ #Ó]— ¦UEG›XÑŒ¡(0¬-«¬¨YG´V‹=f½ÍÿþJF•çop'@����IEND®B`‚IMAGE 1283 ./arch/monster/insect/spider/spider.124 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��1PLTEVVVœœœ˜˜˜™™™ššš›››ttt„„„………†††ˆˆˆŒŒŒoooŽŽŽ’’’“““–––sssyyy{{{]]]eeeuuu‘‘‘bbb”””xxx•••nnn———‰‰‰ŠŠŠzzz```›œœaaalll‡‡‡___YYYppp‹‹‹rrr\^^ŽŒŒWWWdddvvvwww^^^eggfffhhh|||}}}—™™~~~jbb‚‚‚ƒƒƒ„{{›œjjj››kkkž››žžžžŸšš ™™¡™™©‹‹®²ˆˆ²½„„¾ƒƒÆ~~Ìqq��� EEE !!!---///222777AAATTT%%%+++111333555;;; BBBHHHIIIJJJMMMPPPRRR UUU0 000�666 9:::; �<<<<===>>>???@@@ BDDDDD"""GGG$$$�(((KKKLLL***OOOO.�� u33‚33›!!WWŸ""·GGº((ÝPPß--ßGGãXXç..çSSò??õ66^Œ���UtRNS�������������������������������������������������������������������������������������-ó¡ý��,IDATx^­Óó“\Að›yZg+¶m;ý¸¶÷l#¶mÛúë²Iöeë6u¹ªT¾¿ögjz¦º ðùG€¨’ª¿dXXPKMaAä°‚üÐÚ ãõxËÊY-#ÊH;:2×ïÜ`õ ¶ E‘ˆ¦±*–VPxï—¯oO=Ô#ŒLæÍÅ2@„Mƒµ}*Ùºçã‡7OZ qYyü.#¼&1So²³ÑZjÝógg�Âv³=Ö© e@YÆÂ ŒµRʹGOÞvœ…ÇÇžö)* pÍ „K­ 迤ÓyüÁË«•$Ê5IZº |/ ÀÃ-ŠW^}~¿kÂ3QYa3øð#ž#çÞ}û´;¦ð6Íu~…õx½>¸o‡ ¥µL+²™;ÀåbYÖ±%ó¶oª—­¾Á5·G2eÖáà2á¥åe$m2ÒY Y6~ºíg™ &yžOBSOjiåŒ9¦ì4iTmŒËù^·[�x�A<a¡³€(fõèU.éôºý^Oo$5_Š)*äV 'ÒàokHôy…hU­b(”ä"é|W4 ‚7J‰Ðíã:zëTôï015j›î²Ëh = ¶ŒÆDp§+‰‰CX¥&Aôîë %+ê¤øx5žYÞêt^¬F˜®`¦ëé<€ÑÚè ²´õ’fÒ½PƪͷtU“Ca¥("òAN1¥o$Д«÷¿ÁwòĬä„����IEND®B`‚IMAGE 1285 ./arch/monster/insect/spider/spider.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTEUUUŽŽŽ’’’•••˜˜˜™™™›››xxx‚‚‚………†††‹‹‹ŒŒŒ‘‘‘“““”””]]]–––———lllšššoooœœœvvv^^^\\\dddkkkVVVnnnYYYuuu```ccczzz|||WWW€€€eeeƒƒƒfffiii›œœˆˆˆ››‰‰‰ggg‰„„tttŠŠŠŠ‹‹ssshhhwwwaaayyyjhh{{{Z[[~~~[[[—‰‰mmm˜™™___ZZZ„„„pppœššrrr‡‡‡‡‰‰žžžŸšš šš¥ee©‹‹­­‘‘®®»††¼yyÃÐeeÝcc��� !!!"""###&&&,,,CCCDDDEEEKKKTTT666222///>>>???@@@BBB%%%)))GGGIII...UUU�333777888999<<<=== AB �(((FFFHHH+++,��LLLMMMP66PPPQQQRRR!!V__EEu##~€SS„·$$¹00¹99»))×::ãZZäYYè//ì>>ò@@ô00é¹sú���ZtRNS������������������������������������������������������������������������������������������ùŠ÷��#IDATx^½ÓS“\Qð¹Û³¶Û¶q.ƶ½öƶmûÃåÎ"ÙTÝ$oû9ýð«êSÕÝ<ý2ï€ÀTØ¿�ë”5 f�ºuÄߦ֫ʑ?�IDZr’Èuiw”å+Ts..ôÜ©€XÁ¢ËAÞãP´PÔ €d-¤…æT`Ü^½s[gû/ —¡Øª~çu›&@´æÅûÞ= äÍ4º*,Œ �¦,yáºcß?ï“Ë=Á¤5{l(‹‚Ùx3k_¾ÿúéÍ“û›àR Ø ¦’àwœ.ðüíë{©s½u0 LT�€$Éñ©l n\zÚÖaè“LÏbÅ9îóY­EY­lÁ¾¾Ÿ@[6 Ó@p×G™-Úf·Ñ³™vytt‰~—J: ˆ-gÌ´íšÓ 1.‡Ýîzvùê•“•MâõÖhY@ ÛÓNŸÃé '’'ü.àuŸ~õñÝ‹ë½ÅÔ˜/µh¹ÎÄ› Ç‘€Ç;˜yøáÇ·½+«+›EÚ©Y,;¥Oú)Æd‚ÃÔE]ׂ#_Ž܈(Ô3³)aËý‰ü@(x6ˆ.ÄÛ÷:Ð9gX˜T­ÚììÖ÷DFën†–b…4‚óbi&œ5dÈF@5# 4Éëž>Зó«„Hk0¦iŒ˜Ê9€×âzA &cuνՄ¢ûV­ GdØ_ïBÁøüßæOc¿Ç1tvœ����IEND®B`‚IMAGE 1276 ./arch/monster/insect/spider/spider.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEVVV‡‡‡ŠŠŠ˜˜˜™™™›››œœœ}}}€€€‚‚‚„„„ZZZ‰‰‰‹‹‹‘‘‘”””•••–––———šššsss’’’››ppp___```aaaŽŽŽ{{{nnncccŒŒŒrrriii›œœ›fff|||xxx ššuuuvvvddd‘‘zzz’]]]“““ggghhh~~~—‰‰YYYkkkmmmƒƒƒXXX………[[[ˆˆˆœqqqbbbžžž\\\¢``¨ŠŠ­ŽŽ­­‘‘®»††½zzÃÐeeÝcc��� """DDD 333@@@CCCFFFGGG ###NNN%%%---000777<<<(((!!!+++HHHKKK$$$PPPTTT&&&)))***,,,-�� ...�555666999:::;;;>>> ABBBBEEE�IIILLLMMM OOO'''QQQRRRSSSUUUVVSSWWW\GG__EEu##~~QQ„·$$¹00¹;;»))×::ãZZäYYè//ì>>ò@@ô00ZZ���QtRNS���������������������������������������������������������������������������������aQb��&IDATx^½ÓS“$Aà.¢mµm;ËmccmÛ¶í?·Õ31Ûѽ±3/{^n=|™qâF¥Œ˜&ÿø”€Ä4 A8ù€SÉ8D,suå�×êLÒ)ƒœQó‰¨X›dæÙˆ@œ¥¾ RH Šaöö½Mú P7È×Öwõ/GK�¶Jcª¼NÉѪý@&ƒTíÚF›­á7@òCU³ÀæŽ@|%ï®A¶îÚÑJNk£= ¹��ü:Ã’Ý?¾lÖ,nV )•D6æbªƒ`2Ìíù¯>|ûü6¶o¤sx.B)‚P §ïÞ:¾ÚñdÈ2°ºû�x<ž¾ñx¤Opýñáj=ªƒõ{ z=}4íõúý~¯—¦ “ZŠ‹"僴?‰$\W"'XŸ;Á×áÅMVu„®óŒ/äXw&ÃÞ¸uñÂÑ¥0jBMd¨Ç87ífr!!{ò \¾»¯?½y,Y±h¦¼PÒ°~D¼y–Ms¡~¡ëš»${ññç÷MÏ¢Y~°•€VåTSÝa:—|A&¨BæíüºgËeK¥-tÀ ­±žOÇŠ—9Aì�ç”­Û·ÙÇ'J’8¡‰ƒaÅèÁÀ‘g6ä¨üãR'Ûía2÷v=·<ò NÈXP¹–†&ÅDg4E;U0^ H+ ã²vpÖ*)eé ÅTVœ]3åñB6íËúïàÆ™c¿h^ ����IEND®B`‚IMAGE 1247 ./arch/monster/insect/spider/spider.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��+PLTEVVV›››———œœœxxx]]]„„„†††‡‡‡ˆˆˆ‰‰‰‹‹‹ŽŽŽ’’’aaa˜˜˜™™™šššrrr›œœ[[[{{{ŠŠŠ››ppp“““”””•••–––XXXvvvYYYƒƒƒZZZŒŒŒcccjjj‚‚‚___```tttuuu\\\wwwbbbŒŒzzzWWW~~~ddd€€€—‰‰eeefffgii„……›xx…}}………›hhh^^^nnn ››£……¤……«‹‹­»††¿~~ÃÐeeÝbb��� """###%%%***111:::<<<BBBLLLRRR+++555444777;;;===>>>AAACCCEEEGGGHHHIIIKKK)))SSSTTT'''222333 666888999!! !!!???AB�C@@�,,,-��MMMNNNOOOQQQ///000V]_EEeRRu""zJJ~„›UU·##¹00»))»AA×::ãZZäZZè//ë::ò@@ô00†ï‘¤���OtRNS�������������������������������������������������������������������������������)r��IDATx^½“SseQ…³®m…ÆØ¶Õ—¶ÛÛ¶mþ¼¹˜$U™›äejÖËî‡o¯îZÕ]†/  óRƒG"u  ðQÞÝ¡iL§Œ¥$õ BÔ «*9‘vþl€@8â$”rcÆ$MøËAU/@dôèq…\èÏäS"^ êévC Õ+ÆuÛM&]~´"PÅmÛÈK±†,´Mž…,×í?t`7ŽI…|, C¦·6EC�][‹­?üóëÞ•‹†:‡·†”¥}ƒ÷`J·ÓÜ—¿yïÝ Éy‹ 3r²ðüÝÛûq­H†s D½�E DåJ¸~çÄ.1ÔêqjÀj¥i—ËEÓ¹"÷ZCœ™$ 2cu™-Æf·1³™a=æœM'‰i#fÆvÁé Üô±»½zëÚ•»uÒ?�¡h>ãñ‚Ãé †Â],;N¿þôáÅù¼*Dä�d85Ô:âgݾà¥ÐI¿Ç?²üÕç_?Þ߸çÖ*ò€p1©u‚›q¿ÛvyÙŠƒßŽìÛ¼¦?ÒI¢\ ¤^‡è°¾ìA–í9Þ†¾M[·ì1áÕFNy1(\¦œäHª+e噞D³ò)xc<”OP3µ0rM¬ >[ÚÂÑ?j"±’[È$„õ‚ 6ÇÚ*ÃØ“ šû.µ¸Eª™ÿpЂ—õÿßôÛjV"á����IEND®B`‚IMAGE 1276 ./arch/monster/insect/spider/spider.134 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEVVV‡‡‡ŠŠŠ˜˜˜™™™›››œœœ}}}€€€‚‚‚„„„ZZZ‰‰‰‹‹‹‘‘‘”””•••–––———šššsss’’’››ppp___```aaaŽŽŽ{{{nnncccŒŒŒrrriii›œœ›fff|||xxx ššuuuvvvddd‘‘zzz’]]]“““ggghhh~~~—‰‰YYYkkkmmmƒƒƒXXX………[[[ˆˆˆœqqqbbbžžž\\\¢``¨ŠŠ­ŽŽ­­‘‘®»††½zzÃÐeeÝcc��� """DDD 333@@@CCCFFFGGG ###NNN%%%---000777<<<(((!!!+++HHHKKK$$$PPPTTT&&&)))***,,,-�� ...�555666999:::;;;>>> ABBBBEEE�IIILLLMMM OOO'''QQQRRRSSSUUUVVSSWWW\GG__EEu##~~QQ„·$$¹00¹;;»))×::ãZZäYYè//ì>>ò@@ô00ZZ���QtRNS���������������������������������������������������������������������������������aQb��&IDATx^½ÓS“$Aà.¢mµm;ËmccmÛ¶í?·Õ31Ûѽ±3/{^n=|™qâF¥Œ˜&ÿø”€Ä4 A8ù€SÉ8D,suå�×êLÒ)ƒœQó‰¨X›dæÙˆ@œ¥¾ RH Šaöö½Mú P7È×Öwõ/GK�¶Jcª¼NÉѪý@&ƒTíÚF›­á7@òCU³ÀæŽ@|%ï®A¶îÚÑJNk£= ¹��ü:Ã’Ý?¾lÖ,nV )•D6æbªƒ`2Ìíù¯>|ûü6¶o¤sx.B)‚P §ïÞ:¾ÚñdÈ2°ºû�x<ž¾ñx¤Opýñáj=ªƒõ{ z=}4íõúý~¯—¦ “ZŠ‹"僴?‰$\W"'XŸ;Á×áÅMVu„®óŒ/äXw&ÃÞ¸uñÂÑ¥0jBMd¨Ç87ífr!!{ò \¾»¯?½y,Y±h¦¼PÒ°~D¼y–Ms¡~¡ëš»${ññç÷MÏ¢Y~°•€VåTSÝa:—|A&¨BæíüºgËeK¥-tÀ ­±žOÇŠ—9Aì�ç”­Û·ÙÇ'J’8¡‰ƒaÅèÁÀ‘g6ä¨üãR'Ûía2÷v=·<ò NÈXP¹–†&ÅDg4E;U0^ H+ ã²vpÖ*)eé ÅTVœ]3åñB6íËúïàÆ™c¿h^ ����IEND®B`‚IMAGE 1293 ./arch/monster/insect/spider/spider.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEWWW˜˜˜™™™ššš›››œœœxxxyyyˆˆˆŠŠŠŒŒŒŽŽŽaaa”””•••–––———gggiiiooowwwvvv………]]]„„„eee‰‰‰ssstttuuufffZZZ’’’```jjj|||~~~€€€lllmmmddd›œœ†††‡‡‡žššqhh}}}Žqqq‘ŒŒ‘‘‘€€“““rrrhhh‚‚‚ƒƒƒccc™‹‹____``š››[[[nqq^^^››œœ{{{‹‹‹¡˜˜¥––¦••§••ª’’¬‘‘¸€€¿‚‚ÃÉllÔllÚeeÜbb���  !!!'''RRR))):::AAAPPP+++111777@@@BBBDDDGGGKKKLLLMMMQQQ"""SSS�)(( ,,,---...� 222444555666888999 <<<===???  CCC EEE ��HHH !&&N%%%&$$S&&&UUUVae&&m11rUUw{&&•LLš!!º**À((ÈRRÚCCÛWWá//ã66î..ò??ø00ÿñùJ���WtRNS���������������������������������������������������������������������������������������A3‚��1IDATx^…ÒóÓ1ðËúl¾¶QÛ¶›ÕÑxm³¶mÛî?×\gn÷ÚÎöž_2“ùdò$óU1y’€¢� ¬Ê€ò¬ ˜Âzƒ"°l¢úB¦ˆ¢È2R{>©¡”®(mSY[¡T’>1Úì~ M¸(h›aÃE�ŒM¯µý�Ö‡^†g›q£zõN7žÐ£# çÞhy*‰–LÀ¬1u‡ÙÄ ìµk PêŽ~´Ê$#|öbknIÂU½ÀcYŽãX™s·\KÝs·R³•Q÷q¼ <ϱ!ì½§'´rIryª]ðú2ñ  a`8?MK€¬óCÞE1à÷ Ë+K4.M¥ÍÂØÐ™ÐE±§ýa‘àÈú…;·­e$€MÆM-δØ3ظŠô~÷eÿ®& ØœÓKy/Ñ™D4|-o¿ÿþcïF 0Ys&NME¢Ãí¢À²ðÅÇÏ»7É€úqU<âº{y?zpèÉ«9ór�Y–„cóS¾Ø³‚ûðèÍ)Ûfª0˜+`º¡1!N×¼|óàH8’r\I–‘20źê&àM2«>}ýðüä¸w«°H€ÒÕ×î 6¢1Ùqðç··KH íèªÌ™(+±DÕWƒlëžû^_¯Æf/Åe€BÖ¬Ó!ÐÔº}ëâÎKÎ:ƒ�@賃ˆoîœéwâÒ3ÿ N;ì…¤"@¡yhó$/øM'£FòÕ¥ø����IEND®B`‚IMAGE 1299 ./arch/monster/insect/spider/spider.142 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTEVVV™™™———‹‹‹›››œœœ………ššš{{{“““ccc˜˜˜yyyiiipppttt–––„„„ZZZzzz’’’‰‰‰dddŠŠŠeeeŒŒŒ```ŽŽŽkkk\\\~~~€€€WWWqqq›œœ^^^†††ˆˆˆvvvžšš„……lllnnnaaaYYYssssuu]]]uuuXXXwwwxxx‘‘‘‘effggg•••hhh|||}}}™‹‹i_____ikkjjj‚‚‚””››œœƒƒƒ[[[žžž¥––¦••§••ª’’¬‘‘¶~~¿‚‚ÃÆffÔllÚeeÜbb���  !!!"""&&&+++@@@CCCFFF  ###%%%444'''((()(()))000222555???GGGKKKNNNSSS�,,,---... �� 6667779<<;;;"$$AAABBBDDDHHHIIIJJJMMMN OOOPPPRRRS� Vae&&eCCj**wy""•LLš!!º**À((ÈRRÙ@@ÛWWá//â55î..ò??ø00A½°²���ZtRNS������������������������������������������������������������������������������������������ùŠ÷��1IDATx^…Ñc“Qà½í¡±¶Û¶·»ÇöÚvhÛ¶ñãÒ=•L÷le6çë}êÔ¹õæPÿ‰ à Bdv€JË,Feo°õ­Å4Kçf¤Ñiʼn‘.K6À Î¼,Ø]‘Òÿ«ãuõÓp²†Bº[=†f�¤®b/Nµ@Tµ;·:’ŒZH9@ZYàÁÝZ‚Û9y2€0bg¥¶R™H¸•o ×GNÁŸøZ!”OàE´Šù 0[yΰð"F$ÍåJý¦ÈàTCzŽç’,ëp8XV0cáH€ Ó² úi»ÃÃqœÇã`}àNh•xzCE4˜�ÎÙ/ÆÉ9X°ßY¨Â¥‘˜1æïñƒËíNð¼ÛåäÜhÉoAWÍ]7/ çù¶ø˜W ‰È¢û÷ÔJ€)ŦïâÛb7üÍ‚€þÞ÷_¨Í¼…ò‚�쿽½Õg>üøyx{0ßwuÚ½ö[qžcYxùéËÁr€ˆœZÐåæ{¼.á?܉go6ÎÁÈåA˜l¼ì .Á¹G£<¸-7JlKÌ›oê>[¨^õêíëíÞ§&íàõJÆŽ>EõxHAmøüíã‹ç“4©1Ê5ÒÈ’²ù*}ç0öÿõý]¯I8eÞã]j P: Ypo ’j:tìÈë+b+QBŠ@ ¦xbÄk›önÛÜa-¡RÉS1¢Ì»(&È™ £êÚvÍ,€ÒUj—èfiÖ! Ìšß.R áEÙEƒ����IEND®B`‚IMAGE 1262 ./arch/monster/insect/spider/spider.143 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��(PLTEUXXœœœ›››ššš‹‹‹™™™vvvwww‚‚‚–––ŒŒŒ’’’———˜˜˜rrr___eeejjjqqqpppfffXXXtttŽŽŽŠŠŠ•••„„„[[[xxxyyy}}}‘‘‘“““”””sssrttƒƒƒ………‡‡‡ˆˆˆ›œœiiiccclllŽŠŠmmmzzz{{{‘aaa~~~b[[ZZZVVV\\\ggg˜„„†††uuušŒŒšuww›šš‰‰‰^^^vww››YYY¥••¥––ª’’¬‘‘°ii³yyÃÅeeÔllÙddÜaa��� """  !!!>>>JJJGGG555BBB$$$%%%&&&'''(((***+++///444777;;;EEE LLLNNNQQQSSS)))-++---�/00000222666 �� <<< ???@@@�DDD###� HHH KKKKMMMMMN RRRS)((VZNNaa==fj22wy""•LLš!!º**À((ÉTTØ::ÛWWá//â55ï//ò@@ø22ÔòÏ���TtRNS������������������������������������������������������������������������������������þ$�Ù��!IDATx^…Òc³#A€áÛ=ˆíkk󾁾µµmÛæßÛd«63Ùì;_û©Sݧºÿ' @Zea µ˜j‘N9/@%Wã*r‰Y9hBÝrk¢c£�¥3ª¶úâ*LÉ«êò¢:ûêÍpßѺ*/#þHcêrÍŽCŸ}‹-ÀÚÔHÖѸÚ8�àª_‰f]S1þ�¢ÕhÕzáw|ªúíÅæät#‘ŠDw8Ù|+­ýpI‘ˆ\g™vÂX¦ 8ÝÞÑ ã2­x‡©c.Â0‚ 0LÚ8Sa—kQà²AeYvtT`2SFdésh¬]�žP&+0] D9{(-±Ïbn÷EŽsÇ<,$KòVM*®ÃeŽ÷}i2oXº{W[ÀºÊó~x*N =}÷åàž¶€ªg¼ü°Óuz'ÇàÂûï?öoÏT'ð¼ÏùÈϱ />~Þ·I^Þƒƒ¡XÏ1`=!öÚ“WÏ(I€<ê/_í<»ãîɇ·Än¸zrÙ¹©EzWļíõ›÷¼¾Ç²õ¶#'Œµâ„²øQ}ÍP°}篞ݼÓL`µ9¹L#eEù⦹ÐìÚÃ?¿½=.'3O§ÔÒ?IÖ•’U‰3+ö:ðò”Bºj1DS•›îÜXä’"ÈHŸ—¡‰ ¿–+#5¸КëéB�;*špA€é¬ýbÑ9Ä÷-V����IEND®B`‚IMAGE 1299 ./arch/monster/insect/spider/spider.144 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTEVVV™™™———‹‹‹›››œœœ………ššš{{{“““ccc˜˜˜yyyiiipppttt–––„„„ZZZzzz’’’‰‰‰dddŠŠŠeeeŒŒŒ```ŽŽŽkkk\\\~~~€€€WWWqqq›œœ^^^†††ˆˆˆvvvžšš„……lllnnnaaaYYYssssuu]]]uuuXXXwwwxxx‘‘‘‘effggg•••hhh|||}}}™‹‹i_____ikkjjj‚‚‚””››œœƒƒƒ[[[žžž¥––¦••§••ª’’¬‘‘¶~~¿‚‚ÃÆffÔllÚeeÜbb���  !!!"""&&&+++@@@CCCFFF  ###%%%444'''((()(()))000222555???GGGKKKNNNSSS�,,,---... �� 6667779<<;;;"$$AAABBBDDDHHHIIIJJJMMMN OOOPPPRRRS� Vae&&eCCj**wy""•LLš!!º**À((ÈRRÙ@@ÛWWá//â55î..ò??ø00A½°²���ZtRNS������������������������������������������������������������������������������������������ùŠ÷��1IDATx^…Ñc“Qà½í¡±¶Û¶·»ÇöÚvhÛ¶ñãÒ=•L÷le6çë}êÔ¹õæPÿ‰ à Bdv€JË,Feo°õ­Å4Kçf¤Ñiʼn‘.K6À Î¼,Ø]‘Òÿ«ãuõÓp²†Bº[=†f�¤®b/Nµ@Tµ;·:’ŒZH9@ZYàÁÝZ‚Û9y2€0bg¥¶R™H¸•o ×GNÁŸøZ!”OàE´Šù 0[yΰð"F$ÍåJý¦ÈàTCzŽç’,ëp8XV0cáH€ Ó² úi»ÃÃqœÇã`}àNh•xzCE4˜�ÎÙ/ÆÉ9X°ßY¨Â¥‘˜1æïñƒËíNð¼ÛåäÜhÉoAWÍ]7/ çù¶ø˜W ‰È¢û÷ÔJ€)ŦïâÛb7üÍ‚€þÞ÷_¨Í¼…ò‚�쿽½Õg>üøyx{0ßwuÚ½ö[qžcYxùéËÁr€ˆœZÐåæ{¼.á?܉go6ÎÁÈåA˜l¼ì .Á¹G£<¸-7JlKÌ›oê>[¨^õêíëíÞ§&íàõJÆŽ>EõxHAmøüíã‹ç“4©1Ê5ÒÈ’²ù*}ç0öÿõý]¯I8eÞã]j P: Ypo ’j:tìÈë+b+QBŠ@ ¦xbÄk›önÛÜa-¡RÉS1¢Ì»(&È™ £êÚvÍ,€ÒUj—èfiÖ! Ìšß.R áEÙEƒ����IEND®B`‚IMAGE 1326 ./arch/monster/insect/spider/spider.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��FPLTEUUU›››™™™ššš‘‘‘œœœ˜˜˜‡‡‡’’’•••–––———~~~€€€›œœ†††WWW{{{”””]]]ppp‚‚‚ƒƒƒ„„„………bbbcccŠŠŠ‹‹‹ŒŒŒdddeeehhhjjjllloooxxxqqqvvvŽŽŽyyyYYY|||\\\VVV```žšš‰‰‰___wwwfffŒŒ_aazzzŽ[[[‘‹‹kkkaaa“““mmmyynnnXXXZZZ^^^rrrsssuuuˆssˆˆˆ‰ž››¤——§••¨‰‰¬‘‘®‘‘¹ˆˆ½„„ÀƒƒÆiiÕmmÝcc���  ;;;QQQSSS!!!+++NNNOOO%%%"""### 666999<<<===>>>AAACCCEEEHHHJJJ$$$TTT744888�:::& &++'''???@@$$@@@(((BBB)))DDD FFFGGGG,,,III...KKKMKKN////33PPP222R444555UUUklr44žKK¬))¼%%¼XXÄ((É))ÔWWÜ--à]]ãZZì99ó33õ77ù22$''½ Cå���YtRNS�����������������������������������������������������������������������������������������÷¼È:��>IDATx^uÒc·#MðÛÃØ¹¶­µmóyjûÚ¶×¶m›ßl'»'›Ì&÷ÿ®NýN÷©îJ¢â‚%çàÑ*`têCE"€!a@†á›& ¡8@ë‹©$QtZHdVÆ2»¿­.ÍZ^:f@æÆuø¿€ — ´ö·ù|`!µžBZ0]²†Îmâ!œ¡üI÷ÅjÙ˜zõ\mJ° þ¤Ø@…  Ê�Ö‘¸î¤2€uûýSáN8�~AÉ�Jߺ#sŽw1 Ã2Œ Æ”˜ `”Vg¶3¬(…e™'ò0­© jìѰ''²ƒefMèJ†zE–:ív[§ ôù³2‰PM‚cúöpƒK°9øÞaƒA€7°"ÖÖLä§n(ij–úoïpŽVùOŽäF�‘§ÌÈ÷OƒÝéž 5·;a T¥ØR¤ŠŽ¹ i�x[§Ç7ÝÒkçá’GZôh³›/_{–R7ÚÑ1Ûrd¦áF—$b“ L”*“uä&7g³qÌÙÒ¬nWÄ�Zo–F2.¿ûû­áçú%KC}•( ("\÷¾~qUä¸ã/ß\µæ–)niwÿ÷õýcÞÍŸ{ûíË~uöüÿãÓsoŸ÷Þ‡ïŸ÷%ZûúCß\ïñxO½:|`W"`¬ß~þt“eャ;)c"@¡Tß ™r_/ñD€(î*C˜vóSÓ<�m;³X‡ô•ó�Ê|e$ƒ¬9QŽÏðê•é´ÁªÁd@&Ô8F±}ê+¸¦üé.����IEND®B`‚IMAGE 1339 ./arch/monster/insect/spider/spider.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��OPLTEVVVœœœŒŒŒššš›››___•••˜˜˜™™™ŽŽŽ’’’”””‹‹‹–––‡‡‡xxx„„„†††pppuuu‘‘‘jjj€€€```eee………fffhhhˆˆˆŠŠŠiiiYYYkkknnnƒƒƒqqq“““sss[[[vvv———WWWzzz{{{|||›œœœ››}}}~~~žšš^^^~vvXXX\\\xx‚‚‚•——tttaaab``˜™™†qqwwwlllyyy›‰‰‰mmmœ]]]ooož››Ÿšš¤——§••©‹‹¬‘‘­¹ˆˆ½„„ÀƒƒÄeeÕmmÝcc���   ...AAABBBCCCHHH ###$$$(((!!! 000 +++,,,)))111555;;;DDDEEEIIIKKKLLLQQQSSSTTT///333444$''6667778889==%%%<<<===@@@@A$$& &&&'''',,FFFGGGG ***JJJ�,((MMMNOOORRRR---UUUVVVkkrŒ11 NN¬))¼%%¼XXÄ((É))ÔWWÜ--à]]ãZZì99ó33õ77ù22cô¬���YtRNS�����������������������������������������������������������������������������������������÷¼È:��BIDATx^m’c“$A„§1×¶u¶mWkl.mãhÛ¶v=»±·=1Ÿ*"Ÿz£2ßR@2ÂÑù³€¥ €S h ‹².š‘d�Õ)&ª…r¶ÅúR“&ˆWÕE/.—T®ß8íì+*Gi"ÀI]¡Z¥à¢‘æÎž³VUö¼•h½ï$V5Õâ:aÒçuv×%L 64×Ñã`VÑó@X¢L�Ðì‚É!0¯Ø¤M|„ÀÓ<�¶¸�èʇ‘¤˜dZ›aal °OŽi©]‡(A`ºRVÀjJà¬_èËrÇ:àéõ¿Ú¢üલñkvÑçFC!ë(ft}2 ˆ~º€ÖÀYí|o·Úîï_hYMÌM0ž‘1lbPô]n'ooô›5tN¡‘šà ¯`©)Ðfoìˆ=}Ùh»éË2HwAÖgd§yƒ·º†"ƒmŒ€ŽþtZ’Ñæz@÷ØHû±öÁÖ¦ÓØëþàÉÔJbj|¡‘x{˜µZYƯSg¤Ü ç©$EöNÖ®\3Ó58µ¼v©©2"@7^‰nÝóáÍ]Ë>x÷ùÀNJ\QgvþõåßÃ_úôû群/'FÞ}äï÷·îf÷ã¯~ì•ûö ¿}¼ít¹¯¾?´‡PÓ°îÊ'¥ç.®­‘ -ÖB„)šKAr�® kpOmY¦• Œ³,¢¡÷båò�|+(ö_žÎ'åb¬T)ÖcFH@`:^YŒJ€°êGö,‹j����IEND®B`‚IMAGE 1286 ./arch/monster/insect/spider/spider.153 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEVVV›››———™™™œœœ•••ƒƒƒ………ŽŽŽ“““}}}xxx˜˜˜{{{ccc~~~|||bbb–––ŠŠŠ‹‹‹aaa]]]XXX‡‡‡www___ŒŒŒ```ddd‘‘‘’’’eee”””kkkšššlllmmmooouuuZZZ›œœ[[[yyy‰zzgggwxxhhhiiizzzyyWWW^^^eccnnn€€€xx˜””YYY™””™˜˜‚„„pgg›ššt[[†††fffœˆˆˆž››Ÿšš©ŒŒ¬‘‘­¹ˆˆ½„„À]]À‚‚ÕnnÛ__���  !!!111333EEESSS ...;;; ### $$$000555:::===???AAAGGGIIIJJJKKKOOO ///222488666888999::>>�$ @$''DDD%%%F& &&&'''***LLLNNNN+++OQQPPPQQQRRRR TTTklr‰&&£UUª$$¼%%¼XXÄ''É''ÑOOÜ--à]]ãZZì::ó33õ55ù22---,,,ÙçÉ•���VtRNS��������������������������������������������������������������������������������������#’��+IDATx^…Òc“$Mð­j µí£mÙ›KgÛ¶Íçùr7¸èØé¸û¿ÊˆüUDfEæQÿÈ,€)á¿*•e$Q É)ž©)„©ZmY ‘ÈKÊ'ÞÊÒR…y…/tNGfk¥Ïh<æ½ÑÓ3Fê³@mønHÅcQ•š Ä\€L~à!~8p¶óÊö,@Usð'v€ Óªì!Qc€3€X`¡ e½‘u2 #0ŒÓ]œ_`S“x6Àtq²kOF˜ÛÓS£Ñ{&4g Ý ,+Š"kÀÉäUI�×—X’}±?çúE€ÎÿG´5i$€Scà�‘sð.ÞÁÙ̶*‚”†ÄêõñÉ~ØÝÇ;ØÞõ•uÍ*B”Êã5}ñ®„Ç{z¨‹–ên¯—@ù䤶!!>|²»#®Î;©4ê%@®Q*¯ÃŒ¯ïøXGÌõ_¡N«Õš jjÖtMÌÓVäe9ŽeF¶e&Ÿó“š <Ú´2ý×pmí–Öœ“³V<\°çí«çv–½ôúÃÝ9�­~<ïð÷Oùõýoûr�Ök—ùõ奻Ç}ÿÓϯ{s�…É ‡>¿»™»o½9¸—ÜÙïX·õü©àò–‹—7ol•”"êo®¦io¢œ’Ö™ ¦ð²àÝv$pþøˆ"ÉùÝ‹H€L'Z4é¢4RDËͰÓbÈ<,¨Óéå�¢Iœ)Kà7•3›å‘µ����IEND®B`‚IMAGE 1339 ./arch/monster/insect/spider/spider.154 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��OPLTEVVVœœœŒŒŒššš›››___•••˜˜˜™™™ŽŽŽ’’’”””‹‹‹–––‡‡‡xxx„„„†††pppuuu‘‘‘jjj€€€```eee………fffhhhˆˆˆŠŠŠiiiYYYkkknnnƒƒƒqqq“““sss[[[vvv———WWWzzz{{{|||›œœœ››}}}~~~žšš^^^~vvXXX\\\xx‚‚‚•——tttaaab``˜™™†qqwwwlllyyy›‰‰‰mmmœ]]]ooož››Ÿšš¤——§••©‹‹¬‘‘­¹ˆˆ½„„ÀƒƒÄeeÕmmÝcc���   ...AAABBBCCCHHH ###$$$(((!!! 000 +++,,,)))111555;;;DDDEEEIIIKKKLLLQQQSSSTTT///333444$''6667778889==%%%<<<===@@@@A$$& &&&'''',,FFFGGGG ***JJJ�,((MMMNOOORRRR---UUUVVVkkrŒ11 NN¬))¼%%¼XXÄ((É))ÔWWÜ--à]]ãZZì99ó33õ77ù22cô¬���YtRNS�����������������������������������������������������������������������������������������÷¼È:��BIDATx^m’c“$A„§1×¶u¶mWkl.mãhÛ¶v=»±·=1Ÿ*"Ÿz£2ßR@2ÂÑù³€¥ €S h ‹².š‘d�Õ)&ª…r¶ÅúR“&ˆWÕE/.—T®ß8íì+*Gi"ÀI]¡Z¥à¢‘æÎž³VUö¼•h½ï$V5Õâ:aÒçuv×%L 64×Ñã`VÑó@X¢L�Ðì‚É!0¯Ø¤M|„ÀÓ<�¶¸�èʇ‘¤˜dZ›aal °OŽi©]‡(A`ºRVÀjJà¬_èËrÇ:àéõ¿Ú¢üલñkvÑçFC!ë(ft}2 ˆ~º€ÖÀYí|o·Úîï_hYMÌM0ž‘1lbPô]n'ooô›5tN¡‘šà ¯`©)Ðfoìˆ=}Ùh»éË2HwAÖgd§yƒ·º†"ƒmŒ€ŽþtZ’Ñæz@÷ØHû±öÁÖ¦ÓØëþàÉÔJbj|¡‘x{˜µZYƯSg¤Ü ç©$EöNÖ®\3Ó58µ¼v©©2"@7^‰nÝóáÍ]Ë>x÷ùÀNJ\QgvþõåßÃ_úôû群/'FÞ}äï÷·îf÷ã¯~ì•ûö ¿}¼ít¹¯¾?´‡PÓ°îÊ'¥ç.®­‘ -ÖB„)šKAr�® kpOmY¦• Œ³,¢¡÷båò�|+(ö_žÎ'åb¬T)ÖcFH@`:^YŒJ€°êGö,‹j����IEND®B`‚IMAGE 1309 ./arch/monster/insect/spider/spider.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��FPLTEVVV–––———˜˜˜šššœœœ•••„„„‰‰‰ŒŒŒ‘‘‘“““”””]]]nnnuuuzzz™™™{{{›››|||~~~………†††‡‡‡fffŠŠŠ‹‹‹gggiiiŽŽŽjjjZZZ’’’ttt[[[vvvyyy\\\XXX^^^```cccƒƒƒddd¤——‹xxxXZZ___YYYaaakkklll‚‚”‹‹‚‚‚mmmbbbppps__sssˆ„„ˆˆˆ›\^^WWWžššŸšš¡™™¢˜˜eee§””©””¸ˆˆ¹‡‡ÀttÐhhÑppÔll×iiÝbb���  !!!'''---///666@@@QQQRRR """###&&& (((111555777888999:::===GGGHHHIIIKKKOOO***+++,,,000222 ;;;<<<>>>???�AAAADDDFFF#&&$$$JJJ��LLLNNN�PPP(SSST##UUUVWnpuz&&~CC~TT˜((´((¾XXÉ**Ô[[Þ--ß..ß77î55÷33÷44µjš���WtRNS���������������������������������������������������������������������������������������A3‚��/IDATx^µ“ãs%QÄs‡Ïfl{mÛ<3϶b›KÛ¶müg;ÙÍKf“M¥j«¶¿öïžsnWu 5‹þ õh�’\- %Ò�B=pW§%‹:UÚé€BA"IÜW” ¼A1 U”¯Î*4*Gà!›O°l/4ÜÖÑ™ýàÔCsMB“( šáF€Îªnø¥`euõÜš…©úß�"é¼TU À×�ãê‹FXkÔ8ॠ†ÊUËã'aR#ç« ôø ¢D3À”ùm�`2uŒ)pO(%&ŽÄÒ4Qp4ºÇì@€a˜� E™é©ÄDŠÒ�p6c¶p2ƒïø¹ž®Ê �iu10Ì––:NV€�ÿð2’uVY=c±69ÝN‡àbqr‘ˆLµŽÚ²t^Øa©³»ýG¼.ô0'xIîØûá ˜,v—¿!ØêrŽÐF]»ïÇ—�MîÃlŸÍã´'dˆ ÚÝß>>ã~ofF}ϵ.hÓèy�"–¼}÷ê¬ÙÚbpÄ\œÏÚžÊ&D¨{/<¼sßÙzn¬/ö³%¢ëÐ.äMôªÈ‰uœztåå›5Eõ¬Ï?vT0 [CùrB;ñüýçOÛ4¡3jjíã*Þ LÙ-äödœ~ýõûþíš[”V,§xÔRBž¿¹jמ á!ÉÔ^à4¶2q)T6gÓfŠ’ ´Ó‹#S¶÷爓µ¡¦dnz.>kõþðSÓ¥ã[ÉÈ����IEND®B`‚IMAGE 1317 ./arch/monster/insect/spider/spider.162 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��@PLTEVVVšššœœœ™™™›››–––˜˜˜‡‡‡€€€’’’•••aaacccwww{{{}}}‰‰‰sss~~~ŽŽŽ‹‹‹‚‚‚………†††pppˆˆˆ\\\qqqŒŒŒ]]]uuuvvvZZZ”””xxx———“““|||dddiiimmmnnn```wxxŠŠŠjjjyyyzzzkkkYYY‘‘‘bbbo[[ooobcc€prrXXX™‘‘ƒƒƒ^^^fff›œœ›hhhˆ……žššž››žžž¡™™¢˜˜£––¤——¦””©””¸ˆˆ¹‡‡ÀttÎddÑppÔll×iiÝbb���!!!%%%'''111EEEFFFIIISSS888###@@@ (((,,,.../// BBBDDD """GGG LLLOOO$$$)+++�000 222333444555666999:::<<<>>>A��� HHH ##JJJ�MMM" PPPRRR VWY..npuxKKz&&~CC—""´((¾ZZÉ**Ô[[Þ--ß..ß77í22÷33÷44E<®���XtRNS����������������������������������������������������������������������������������������Ñõ²��<IDATx^ÓS“$AàÎÌRÛcÛ³¶m#«ªmsl®mÛ¶ñ×¶&¦z¶c;z6vOD>å÷pî¸ø—ü+@ $Ê@^³Œ Œ2"W=ÒêPQ6@4G½5вc@"e§³¸ä²_›*jšêÙØëÇ®•�ªÁo:v·±E6á‰xU9€Ló—ù8Œ{Ïua1^ɬÂJ­¤�ÐÏY5ÅéqtË'¥ÚJ&rS�‹m"8P5OÒ #&P>ôEOõ_pN|;,Ë:âáü:-v@¹£ Ÿ ¾Y;/ÄŽ=O 3뱤´AS_éÆ6‡ ±b;Æ“™X²¶"Ȩ},oí3q¦¶Œ/ t]ó?Î'Å)ÖÀÍË—ö·óƒ#\ïÅCæ6kL[ª,×倩=ìØûñ¶ð#æÞ„×e6™Ãú0}Q[÷ýüúc[ç¾ÓcvºðÐ9J[5Ú²ûû§gÂôv¶ÝÅ™Ï%p@CLDæÌxóþõ»5Îã³A7Ô©†p° h‰ø½}Ãä:Ž/Ö¹n£òœ0�À¼'¤nLÚNÞºþêÝ:º°ãH+•;“¥JRªžâ"šÖ&O?ÿðåó6”;ŒC Pj(˜Mez1÷ÑÛo?öo‡µkÝ1)Äï)rR� õ½…»öìÜ�ካ£Læ]TÎ\Y²~\ !eÌ#2@…:XD‰Xh—¤áûåÕÓ^mC é�$ÿûº”Eš,´ |C����IEND®B`‚IMAGE 1326 ./arch/monster/insect/spider/spider.163 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��UPLTEUUUœœœ˜˜˜ššš›››ŒŒŒwwwaaaŽŽŽ”””•••___™™™yyy{{{‰‰‰‹‹‹uuu–––———‚‚‚………†††dddŠŠŠeeeiiijjjkkknnnoooqqqsssVVV```xxxXXXccc|||~~~€€€ƒƒƒ„„„mmmYYY‡‡‡ˆ„„ˆˆˆ‰ˆˆZZZpppabbrrr\\\ttt]]]^^^‘‡‡‘‘‘’’’“““ggghhhy{{—_^^ijjWWWš••_``›œœllllnnž››Ÿ‘‘¡™™£––¦””©ss©””¹‡‡¼mmÀ^^Ì__ÑppÔll×hhÝbb���###$$$---555GGGBBBLLL"""AAA''' ))) ///000333 666!!!EEEKKKNNNTTT (((***+))+++-!!...!!111222444��888;;;===>>>@@@A�CCCDDD�HHHJJJ%%%%((OOOQQQSSS&&&VW]DD^66nn99pux~CC– ´((É**Ô[[Þ--ß..ß44í22÷33÷55ˆwŒƒ���^tRNS���������������������������������������������������������������������������������������������� óáÝ��*IDATx^Ó$Að­j޵¶½gÛ¶ùckmûlÛ¶Ïu=“Î\n6³—ì?•J%ï—”ò’ð2€(iP(1H«a©É™dB’Ý™Ÿ58O“ S@¬,©/Mpù£ÆÒg " Œ)i&s*p5òkTq�¥d0LÍêƒç!’>‹þTÕ—³+ì9íSh FFk€ƒXŽßYX¥$b@œŸû¤¤45‰‘@‹k訿8Eˆ2¥ÏŸz*Z6›9Ž3[n”õ÷æªe@¦œs�Heޤðp¹È¨œÆÊ[ zÀaÑÌ –)ÍÚËŒ:$Šéò+ò’BœÐÜcµ[ë�¼µà¼Ï¤Ê@·iÕ¢•+FœBGƒ½íä-[ݨ¯pn°÷Â2µ ¨™;öïym¡ÁÖæîkµYG½Ëé´¬LË�m;ðûû�±ÇÞXf¨.ä�BIÅ^á-{~y!Ýžç-CöNm…úfÑ2@„I¿þí§÷—øÈÙ½áz!¤]·ñ*8“É(@KŠû=ŽÓ'.Þ´¶Þƒ»s&iŸƒ»RYýÔg ¢€˜í=ìÏf ¯‹‡Þx÷q:V\ƒ³å­_Œ£€¬É3(S1ayùùÛ×í§0¬B:ù»ID Ò•ûðã×ÁÒ’Hö…gŒí æñ«ÝûvmŽà¥†jM<@êîÕk·â QLmRßí7Ž×YôƒÚ"b<`Ö¦áñ€.‡`wÿ/Ÿ³Nà/È����IEND®B`‚IMAGE 1317 ./arch/monster/insect/spider/spider.164 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��@PLTEVVVšššœœœ™™™›››–––˜˜˜‡‡‡€€€’’’•••aaacccwww{{{}}}‰‰‰sss~~~ŽŽŽ‹‹‹‚‚‚………†††pppˆˆˆ\\\qqqŒŒŒ]]]uuuvvvZZZ”””xxx———“““|||dddiiimmmnnn```wxxŠŠŠjjjyyyzzzkkkYYY‘‘‘bbbo[[ooobcc€prrXXX™‘‘ƒƒƒ^^^fff›œœ›hhhˆ……žššž››žžž¡™™¢˜˜£––¤——¦””©””¸ˆˆ¹‡‡ÀttÎddÑppÔll×iiÝbb���!!!%%%'''111EEEFFFIIISSS888###@@@ (((,,,.../// BBBDDD """GGG LLLOOO$$$)+++�000 222333444555666999:::<<<>>>A��� HHH ##JJJ�MMM" PPPRRR VWY..npuxKKz&&~CC—""´((¾ZZÉ**Ô[[Þ--ß..ß77í22÷33÷44E<®���XtRNS����������������������������������������������������������������������������������������Ñõ²��<IDATx^ÓS“$AàÎÌRÛcÛ³¶m#«ªmsl®mÛ¶ñ×¶&¦z¶c;z6vOD>å÷pî¸ø—ü+@ $Ê@^³Œ Œ2"W=ÒêPQ6@4G½5вc@"e§³¸ä²_›*jšêÙØëÇ®•�ªÁo:v·±E6á‰xU9€Ló—ù8Œ{Ïua1^ɬÂJ­¤�ÐÏY5ÅéqtË'¥ÚJ&rS�‹m"8P5OÒ #&P>ôEOõ_pN|;,Ë:âáü:-v@¹£ Ÿ ¾Y;/ÄŽ=O 3뱤´AS_éÆ6‡ ±b;Æ“™X²¶"Ȩ},oí3q¦¶Œ/ t]ó?Î'Å)ÖÀÍË—ö·óƒ#\ïÅCæ6kL[ª,×倩=ìØûñ¶ð#æÞ„×e6™Ãú0}Q[÷ýüúc[ç¾ÓcvºðÐ9J[5Ú²ûû§gÂôv¶ÝÅ™Ï%p@CLDæÌxóþõ»5Îã³A7Ô©†p° h‰ø½}Ãä:Ž/Ö¹n£òœ0�À¼'¤nLÚNÞºþêÝ:º°ãH+•;“¥JRªžâ"šÖ&O?ÿðåó6”;ŒC Pj(˜Mez1÷ÑÛo?öo‡µkÝ1)Äï)rR� õ½…»öìÜ�ካ£Læ]TÎ\Y²~\ !eÌ#2@…:XD‰Xh—¤áûåÕÓ^mC é�$ÿûº”Eš,´ |C����IEND®B`‚IMAGE 1304 ./arch/monster/insect/spider/spider.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��@PLTEVVV›››˜˜˜™™™ŽŽŽœœœ———‚‚‚†††‹‹‹ddd‘‘‘’’’jjjkkkšššvvv|||€€€mmm“““hhh›œœXXX„„„YYY‡‡‡ˆˆˆ‰‰‰iiiŒŒŒ\\\```”””ooopppxxxsssaaa~~~yyyzzzbbbœœcccdff{{{‹‹eee}}}fffgggqjj”‚xx•••–ˆˆ–––hee—˜˜ƒƒƒttt………uuu___œ››ZZZœWWWŠŠŠŸ—— ™™¡™™¢dd°³ŒŒ³¼ƒƒ¾„„¿ƒƒÇbbÌvvÓhh���   ---///000333===???MMMOOO###$$$%%%&&&+++>>>;;;<<< ,,,AAACCCDDDGGGHHH!!!QQQ***,,)) ...499666888:::!@@@"BBB"""IIIKKK ((()))RRRSSSTTTVVV[@@^_g{‚,,†Ÿ""°$$²PP½77Ò**åYYæTTçLLé//í22ô33õ::/«ˆ���ZtRNS������������������������������������������������������������������������������������������ùŠ÷��-IDATx^½“S—\AF§ê²mŒmƶm‹¶9¶Û¶mþµt÷L2™¤'ó’•ýT{­úê;uRèiøç¦ F§0MÒX:¿T‡¦P¦^«X‚GrŒQRmóË$u(C9:)‰ÿ¼‚YØz|mÏ›Êàm6YH]�Ò•^ØTPÑÂe“I„œ>Ôûab0›DÌ/‚™ÞZm¦uÊë…^¥ìº¨GT‰aLˆ§Ù¸sÿž-+å£ ú]�¾ àQ-/o›‰bFT™–]vàÛ§í+Tmð“HMpA<ƒºòaKSðÉ»Ïï_œ¯wÁ‡ªŒqzЛ’_wìé«ç— †{�¸’‘Y Y-'²†à8n·£y‡ús&檱qj9+ç¬u:9Îjµr±cóÉXlž–TŒ:íB«ÅnµÙò‚…¿k·Y¹ƒ&.%¾ˆRuúæá«'Än[7ïj÷žøn°4w©(„ShJvîžïÈË7¯Ÿ]îô[„‹Þ†z(XNF£¾‘T+j©DS¸dß×/o ˆ.ñ–Ç3Ü#XÎÎÉUEF6(U#õú½?ìž%–Fó»6_©È(fɳضkÇâMVÞiN/ËÔ\ƒû&FÓ4WÏ[×ábiÔæ×"LTôq 5ÆIãNëì(f$áÚ¡XA˜¨ÌÎ/œ,”¥‘Œ¬ÃkŠ?#’!~ÿ“j𖧆gým/ÈÍk(4ífýoá;c±¤ãcܵ¥����IEND®B`‚IMAGE 1290 ./arch/monster/insect/spider/spider.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEUUU™™™˜˜˜‰‰‰›››œœœ“““ššš’’’”””–––———wwwyyy………ƒƒƒbbb{{{zzz‘‘‘•••|||XXXiiinnnŠŠŠ‹‹‹ŒŒŒoooŽŽŽqqqvvvVVVaaa›œœ```‡‡‡}}}€€€‚‚‚cccfff„„„ˆˆˆœlll ™™¡™™]]]maammm~~~___dddphhpppYYY˜——sss™˜˜†††tttšœœggg[[[xxxjjjœœzwwkkkލmm°ŽŽ³ŒŒ³¼‚‚¾ƒƒ¾……ÌvvÓgg���  +++...;;;QQQ@@@GGG::: """%%% 222555777999 <<<HHHAAACCCDDDEEEOOO///KKKLLLNNN888RRRUUU666!!!!"###===>>>???$$$%&&&'''***,333499SSST66^_g}$$~†Ÿ""°##²OO½66ÁUUÒ**åXXæTTèOOé//í22ó22õ::iuRê���VtRNS��������������������������������������������������������������������������������������#’��/IDATx^½“Uo[A„½ÍÌ3s‘™ö‚™Ùafæ™™™áÏuc¹iëVé[FZéŒôi5Òœ# þ£�%— Á2€P]¼»û7�p±˜ÆóoÀ1UÒ’é�V‰™×f›;+È6ˆÓ�!±+ GtŠI8´¹­³:=ƒ\ÙcŠ x.£ˆ×ÿQõûj¥…M>óD^ÉQ š|ëe´ž\ä´AŠÕ=y¢agu#œk‡¶y-1fT ªšŸ^8pðÔ÷χö+Fð§N×wWâ ¦ô‡n?~÷åËk¡3ð—Úâ—Ê3`„ªÆ´ùúÓWÏÏB$[Jhì×ÉS!™9 /@·Ûfs÷¥ä¶Á1=Xꂎ@Çp^‡×Ëq Ãphìë-Iv(�IÄkeVÆnt± W—ÕÎpa"ù^¦¨(ÙñðÞó÷y§Ýéòøš¬ËÙe )0€�CÁ\¨§ýîË7¯Ÿ=š´²MÍW/úyÖá› Œh!ÀÊ5fV¿ÿöõíFÓü€‡ïôû;âl"º§°5ª¢ ¤Œ–H·ÿôñØ6Ñ Ìx&nu7ªr×Í͈–ºh8r¸¾¨¼—ÞöÜÊP¯ò7ïÅrs2h¤ôdÅžKõev,TÃáL€áÔ ²FaŒ¨i´MH(\;5Y'KÛR×vs ®îæ5r `YJ5–TXD”)Ì&í_[ 0 j‡°ä‰—=®ômþ�u´¢n N˜ê����IEND®B`‚IMAGE 1285 ./arch/monster/insect/spider/spider.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��FPLTEVVV’’’˜˜˜™™™ššš›››œœœ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ“““•••–––———```rrruuuzzzwww}}}kkk___eeettt›œœ‘‘‘xxxyyybbb|||YYYƒƒƒ†††[[[aaapppWWW³ŒŒ‚‚‚ƒssooo„„„phh‡‡‡ˆˆˆZZZqooqqqbeessscccdddvvvXXXhhh”””xzziii—––jjj|zz™——^^^l``š›››““~uu~~~›€€€ ™™¡™™©oo°ŽŽmmm¼‚‚½„„¾ƒƒÉqqÑcc���  ###$$$&&&'''JJJSSS(((  %%%+++...///000111333???@@@BBBCCC KKKLLLNNNOOOPPPQQQRRRTTT !4116666;;777888:::;;;<<<>>>""""AAADDDEEEFFFGGGHHHIIIM)))))***,^_g}$$~†Ÿ""°##²OO»00ÁUUÒ**åXXæTTèOOé//í22ó22õ::ˆ€±#���XtRNS����������������������������������������������������������������������������������������Ñõ²��IDATx^͓ӓ\aÄ÷zl¯­Ø¶íœË±µ¶­Ø¶më?ËÌÍnej7yK¥Ÿ¾‡_Õéîïœ ò/úï�ŠÔ"èŸ�¼Ø6lUNP$®Í: 2„š  pyÞ>‹ÔØ mf\Pü7�5 Æ UŸ7ßýÒ¤™’u¹: T -Ae«·.Xt<ׯ‚oEVQ¾‹¾*MfÏF³rså¡[VwŒ@üh[ íKe M@ —¡‘™‡|Ù³>óLˆ²Úv ZéˆïÞû¯_?Ïä‚~D–2‰IôwŸ½~q ¼�Îq@s¦„ø•Bvž€ËåtºËå„n 5S= ^𡝠Ð4Ã0tâ §æNô@!C‚ƒ»Óà`ìŽZ–k`ã;ã¼®LT¢ËÉ#/Üodk{٪˾&ÇöÆÙˆ"¨Šsmgn¿zûæùÓv?pu¾„}7M¡Øb, èV¶„k:7}øþíÝS†»ÊÝÈóžjŽ”ûä¤XÔà’¬’µ?Ú¿(÷ÓÁ0+ÔŸ¨«®˜q+dÀ’#´9(Anß]¹wW6i ð……£î1ãYᆬ<0 šüÍl1)vÑ`¬gJål§lÙ«:}'ÍšåEt)èê˜Mêté+G®4o“÷@?‚ZòÅšÒ£¯O±*jæP¸› çå›0tVéNlº» 4EªâßžÞOð!¢ëjk¹”����IEND®B`‚IMAGE 1290 ./arch/monster/insect/spider/spider.174 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��4PLTEUUU™™™˜˜˜‰‰‰›››œœœ“““ššš’’’”””–––———wwwyyy………ƒƒƒbbb{{{zzz‘‘‘•••|||XXXiiinnnŠŠŠ‹‹‹ŒŒŒoooŽŽŽqqqvvvVVVaaa›œœ```‡‡‡}}}€€€‚‚‚cccfff„„„ˆˆˆœlll ™™¡™™]]]maammm~~~___dddphhpppYYY˜——sss™˜˜†††tttšœœggg[[[xxxjjjœœzwwkkkލmm°ŽŽ³ŒŒ³¼‚‚¾ƒƒ¾……ÌvvÓgg���  +++...;;;QQQ@@@GGG::: """%%% 222555777999 <<<HHHAAACCCDDDEEEOOO///KKKLLLNNN888RRRUUU666!!!!"###===>>>???$$$%&&&'''***,333499SSST66^_g}$$~†Ÿ""°##²OO½66ÁUUÒ**åXXæTTèOOé//í22ó22õ::iuRê���VtRNS��������������������������������������������������������������������������������������#’��/IDATx^½“Uo[A„½ÍÌ3s‘™ö‚™Ùafæ™™™áÏuc¹iëVé[FZéŒôi5Òœ# þ£�%— Á2€P]¼»û7�p±˜ÆóoÀ1UÒ’é�V‰™×f›;+È6ˆÓ�!±+ GtŠI8´¹­³:=ƒ\ÙcŠ x.£ˆ×ÿQõûj¥…M>óD^ÉQ š|ëe´ž\ä´AŠÕ=y¢agu#œk‡¶y-1fT ªšŸ^8pðÔ÷χö+Fð§N×wWâ ¦ô‡n?~÷åËk¡3ð—Úâ—Ê3`„ªÆ´ùúÓWÏÏB$[Jhì×ÉS!™9 /@·Ûfs÷¥ä¶Á1=Xꂎ@Çp^‡×Ëq Ãphìë-Iv(�IÄkeVÆnt± W—ÕÎpa"ù^¦¨(ÙñðÞó÷y§Ýéòøš¬ËÙe )0€�CÁ\¨§ýîË7¯Ÿ=š´²MÍW/úyÖá› Œh!ÀÊ5fV¿ÿöõíFÓü€‡ïôû;âl"º§°5ª¢ ¤Œ–H·ÿôñØ6Ñ Ìx&nu7ªr×Í͈–ºh8r¸¾¨¼—ÞöÜÊP¯ò7ïÅrs2h¤ôdÅžKõev,TÃáL€áÔ ²FaŒ¨i´MH(\;5Y'KÛR×vs ®îæ5r `YJ5–TXD”)Ì&í_[ 0 j‡°ä‰—=®ômþ�u´¢n N˜ê����IEND®B`‚IMAGE 1299 ./arch/monster/insect/spider/spider.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��=PLTEUUUššš›››œœœ™™™———{{{‰‰‰ŒŒŒŽŽŽ‘‘‘’’’“““”””www˜˜˜ZZZhhhŠŠŠjjjsssuuu|||€€€‚‚‚„„„………†††ccc–––‹‹‹dddgggWWWVVViiikkknnnoooqqq]]]^^^```xxxyyy›œœzzzbbb¤——~~~ŽnnYYYtttlllƒƒƒ••••mmmbdd…††eee™ššpppfffrrr‹ŒŒœœ}}}ž—— —— šš¡šš®³ŒŒÀ~~ËjjËwwÍssÎttÐffÖkk���  """---111222333;;;QQQ###SSS EEE***+++,,,NNN///444777:::???CCCDDDIIIKKKRRR&&... 555666!999!!!<<<AAABDD%%%&&&'''FFFHHH)))JJJLLLN##*,,��TTTTTUUU^ln||WW€UU‰66!!·WWÀ((Æ))Ý--ä11äAAì11ô;;õ::[Û›9���XtRNS����������������������������������������������������������������������������������������Ñõ²��-IDATx^•Óc—Q཭±±¶ÍضUÝ=¶±¶Û¶mü¶ôÓäÌ&y??·NÕ¹UiÄ_ò�á>'Àr*2òI”Pƞˣ"ò;@…RÎ ¢Ô’¦š#Wµ´œÈœÉùµµvµ‚–Þ¹ÿÀNÎã•Óå‰!È'ÏY~ôõ§/{·H:ÍÊŒt9T¥þúÂìvxöîý›eH[eJ6 ]JÇ’�«÷´ÓpþÁÓÛ+óF ¼^gªæRÔ<f«Ói…ÁâvÚ[³® ÆÄÂ1ç/xõä.ÛjgÍ1@háiÖSB°q×Ç·÷Úhà2ÞÐm‹I”[÷|þðü¬×c Š ‹ù ;öí~qç¦hšþ4 À¨MbÍæ-V„-æDƯšü ¬J¯/Hóƒ“an3GàP±,Ùž�Ë�ò³³³,Ã8±H%˜BV7 úh{«Ãd²±'‘JŠïA™Ÿ——[5dr˜\}ž6‡…“å•ÍbˆP6<:Úbnoô^›Ép¼ó±T�¨L] ¾NGlÊw¬·ß<¯Ðá ‰�ÝumIFÜçòxÜVwDœØRÐ6ÅkDÛµ¸øF¿åŠ×:±ûmí©P'ž¨"­%ºé2uª»O˜$;pUš ¨Ë [) æ¦XúõˆjymTƒ§�„¬ö–Ïênà›üCd©Y”²I.øÿ]÷W[N›|Wp ����IEND®B`‚IMAGE 1280 ./arch/monster/insect/spider/spider.182 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��(PLTEUUUœœœ“““™™™›››‘‘‘ššš˜˜˜^^^ccc”””}}}———€€€„„„ŒŒŒhhh………•••ddd†††ˆˆˆ‰‰‰‹‹‹VVVnnnŽŽŽoooppp’’’rrrsssyyyzzz{{{```YYYaaabbb‚‚‚|||›œœWWWiiijjjwwwkkk‘‘}ZZZ\\\]]]XXX–––eee„††ttttuu‡‡‡vvvweeœœŠŠŠž–– ™™ šš¡™™¢••¢™™¤——®³ŒŒ½cc¿||ËjjËwwÎssÎttÏddÖkk���  444>>>GGGHHHPPP999 """###$$$'''(((LLL+++///JJJ555***;;;BBBEEENNNOOO<<<777888#''===& ???@@@AAACCCDDD �*,,III---!111!!!QQQRRRSSSTTTTT]>>^lnxGG||WW‡22 À((Æ))Ý..ä11äAAì22ô;;õ88*·ÒF���VtRNS��������������������������������������������������������������������������������������#’��1IDATx^…ÏÓw$A‡áTµÆFlsmÛÞ¯1¶'´µmÛø÷v&ɦÓ9›ì{QWÏùêü2ðšH&[hËòsH´  óÚzõ³·þ H³²µZ>s+»d˜Ë8yiûÁ×ÔÔ ) ŒF*õ=xæìQ̬ê¬Uo.$‘èõ Œ˜â«Ÿþ>u€*ò_Ȫ|Vªecû‚Ô Ã»¯ßŽíÕ*¡¯Îd›Îe½öX¹r˜…Ë/Þ¾^—3k‚f YÅÐGÀ%ìöLTµÃ«üˆ�#rë®Ooîò®$cO�†º<•V2s÷ñ_^^œò;YH%ŒBw=–€ý'}ÿpnPðÀl®^’€†#§O|¼7b–egÄ´ž¢hB¸aß¡µeW<\º´ñF‹‹ò2 `„-«ã`©- ®ÆQˆï˜«5Ê>ð¼Ãáà)ÐK%ÿ º\ä`¤’.·Íæä=vv`§Q=¿‚ÒÇ!Ñ© ûܶæ1!ævò\¨Ü(gæWn‰ªêsõ“1›×7ØÖ³%ÁÙÚ”+®°Ð2ÒÚ%ÀÍqock‹œ»Þ;a¢®i"w¨öi‹O|àä´/�”î Nj´ºó.o§¿©Úœþ_ ÏCª= ®èàn›º+)¼ FžM¤\éTÿ¶ÜÈC$ªT¸¯‡ƒ´Àšž ÚÂp0k© ˆÎ,–+º ‰ 0c¨#%`qˆ¢°,Ûì’2[®å¹����IEND®B`‚IMAGE 1279 ./arch/monster/insect/spider/spider.183 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��:PLTEWWWœœœ›››ššš˜˜˜„„„‡‡‡ŠŠŠŽŽŽ———™™™qqq|||’’’ddd^^^€€€}}}~~~“““ƒƒƒbbbaaa†††eeefffŒŒŒhhhggg\\\jjj‘‘‘nnn”””•••–––YYYrrrssstttxxx___```›œœ„„eggpppZZZcccruu\]]‚‚‚[[[•uuu………†……vvvwxxˆˆˆ›™™‰‰‰mmm‹‹‹y{{žrrŸ““ ™™ šš¢””¢™™®¼xx½ccËjjËwwÍ``ÍrrÎttÔhh���  ...EEEPPP 444:::!!! ;;;###"""$$$%%%***===>>>???@@@BBBCCCFFFGGGJJJQQQ*,,,,,---""///111222666777888 ))�&&&'!!'''HHHIII(((KKKLLLMMMNNN*%%SSSTTTTTVVV^^@@iSSlnq;;||WW…++À((Æ))Ý..ä11ä??ë11ô;;õ99œa…n���VtRNS��������������������������������������������������������������������������������������#’��IDATx^}Òó“#AÀñíQh,mãlÛ~£Ø\ÛÞ³mÛæÿv“½ºL¦*É÷×þT½~Õ…ýO¥,ÈŒ€ª8ݠΈæþ‡J” rþ„ Cž`ÄÒSKvîY¿q•. @ÕW>>¶ce¤@‰WÖâ( d+(„!¢ñÉ—_Ž,.+ÑŒ„Èò€†Äˆê�¼ÿöýÀš—×»)E + ßÏjÒhxúüÝ›í«™°¶ž¾ V£ Þ¹t˜A«uМ¡{[Æ¡C‘¡\ñöóë¬Ã΂Ïö3Cp/[ºÅæý?¿¾¸ékÑ d¶€’‚݇~ÿøxuÊë„y–«,Úwôà§ã=V izAŒæIFb×^²iÄÉÄ‹ײ‰`!$+ÏóÂ. —ç -€Hƒ—gY›ÍÆò茔ÖI^³¸´ÝÑÆq!Öi¥cákÏ*E€È¢[™ôµqsQï@[ˆe:J·æ©�é„ó±†üNÎå™êàìή™Ò-xàf?ÿÀdœnÎÕÕ=Üîf¢çcÝå¤8b“¡HžÝÚÕ>¸îñzÝÐ45W™U" j)Js¦U}L¬üùëpœÀ%kâ¹cpv­¥Õq®üUôq¶Ì^¬¨)™€ ¬Å§W¥ø“êm¹”ëï0+&úµXÃ…ËÎ×Éüws’$ªP‰ÉFôª´�áñ/¨ÀRq”dî/ùö’¢g™Ÿ����IEND®B`‚IMAGE 1290 ./arch/monster/insect/spider/spider.184 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��.PLTEUUUœœœ“““™™™›››‘‘‘———ŒŒŒ^^^hhh”””˜˜˜pppššš€€€„„„‰‰‰………|||‡‡‡ccc•••ooo```ŽŽŽsssyyyzzz’’’{{{‹‹‹}}}–––†††bbbYYY‚‚‚ddd›œœVVVnnntttŠŠŠtuuvvvweewwwZZZ[[[‘‘\\\eee]]]}iiikkklllXXX___„††WWWrrraaaœœˆˆˆž–– ™™ šš¡™™¢••¢™™¤——®³ŒŒ½cc¿||ËjjËwwÎssÎttÏddÖkk���  444999>>>GGGHHHPPP<<<JJJ"""###$$$'''***+++///555;;; BBBEEELLLNNNOOO!111!!!777888#''===???@@@AAA& DDD((()))III*,, ---�QQQRRRSSSTTTTT]>>^lnxGG||WW‡22 À((Æ))Ý..ä11äAAì22ô;;õ88ÝÍ©���XtRNS����������������������������������������������������������������������������������������Ñõ²��3IDATx^…Ïãs%KÇñtŽ­ØÆÒ¶{ŸÁ¡ØæÚ¶mþw{N%›É¤6Ùï‹~õ©§ë—ƒÿÑ @Zíâ€)n2“h@7¶%Ó·þH‹²µV“U¹eóÀL²ÉËËÂX±zg’J&£2oÁÙwÿý“ª»5ê*‰D@¯Ê‘c¤×Ýüôã×ÉýTAàBuùÓjä¯oßD†axûåëÑ=ŒzëTöDµ(Ûµ3ÊÃ,ÜþæÕóÄlqYD€´¥CO—r8R0QØ/›: Z$ŒÈm+>¾~Ì»x<04îuæ1’™»Ž}ÿüâöÅ€‹…LÂ%è²b Øwâç·÷WÓ‚¦s'åHŸ:þáAX–…l #EÑ„pÃÞƒkНx¹lYã‹ë ë `„óW†Á 3[8Ü£SΫ+•½äy§ÓÉ3 3±Uó u‰2ÄAÏ ¸=v»‹÷:Øþåæ²Ù”1 ©ÎXaÔï± ÍÏEJdýì źxžµÂ8Ùl÷ùÓmcÍöpuG¶Tˆ+òi-i`ªÏ7ÚÚèã¯''TôÜÚʘÓ©yÒâ?â& Íà9€2Ü€ôd%c8ïöÝ ŒÕZ²ÿK€éY$o©—vp·Tý]åž^³›È8й¤"öÈ€E I¿ÙsO®‰†Lh@Y»×2Šh¨z¡ ˆ®×i‰íãr DXoª#%`~ˆ¢°,Úo@Q”´ C»#����IEND®B`‚IMAGE 255 ./arch/monster/insect/spider/spider_web.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷µ÷¯‡áØ���tRNSÿ�å·0J���¦IDATcúûï=ã¿ÿ L v L <L Lÿ+j,†¦÷¸˜Þ°U(0YœùÅÁ”ßÙ ÈäÌò³’‰ûïB)&A[ó LŒ3¸zEw111ü2`fz§r4–Iõžï<¦»\O€¦üeW`â_!ïÀôÿÉw¦¿÷—1Ý­õ`gºéðï<S‡Ð…L—d10±þt8ÀÄØð¨ÃéHÛC ñÐÁ�"â7ýæ¼ º����IEND®B`‚IMAGE 254 ./arch/monster/insect/spider/spider_web.112 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���÷µ÷¯‡áØ���tRNSÿ�å·0J���¥IDATcúûïß&ÆÕ L u<@¢§Hì`l`úÿ/G‰MÇ•éO”(“ÍÆ,¦¶B&ç}ú ˜Ø*”˜˜¾ab*(�êPKaeºí׺›Éû޵ Ó®/@£vå00ý¿ñÓék_q ÓÞ¶L-ž1`log18ÿž‰éÑ—L w]01*2�Mqzz€‰±öÅø¨·ÁÁ�hª5|@X¥Ï����IEND®B`‚IMAGE 179 ./arch/connect/Gates/spike.110 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���lIDATH‰íϱ €0 DÑÛ#ŠdÉE Ff"ö`†P„(}BIãý³ DQ4¦ÍFµÚ(b±QD±‘„Þ+@}G@ŠÚ ‘h8ô"”¾DÜu¢TÉ�¢“»ù0÷þŽc*0ôþÀ ´~,ö����IEND®B`‚IMAGE 216 ./arch/connect/Gates/spike.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���‘IDATH‰íÒ±Â0 Fá j4²Ë ÀìÁ Â&ŽB‘9Ü ×ï“ω”RÕ÷€µû¹±X»ŸÊu%°r?¢R¹¤�„O�{Ïã€KJçW¶ð(á§Àö×sû1Pç�×§õÐK^Ž}Ʊÿ@tLÞ‘vLÏG¢Ãù±lüŸèÜ.—û·gøŠì����IEND®B`‚IMAGE 214 ./arch/connect/Gates/spike.112 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���IDATH‰íÒ±à …á·‹ j42¥ðÞ#3ü)ÀB%Óèr©~߃é‡d ·Ÿ©@n?•+ @¬ÇŽ/CT*ç Ä —(”u@ììS¼]'Ü¿±M€Å“z¸r¤s¼¬àÊËäGÏxÇø¢ý 0yGÚš,‰¶ãÄVÃÿ‰Î¤úæ_ÙÜvÙ����IEND®B`‚IMAGE 222 ./arch/connect/Gates/spike.113 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���—IDATHÇíÒ¡Ã0 …á·Hïz` ¢‘;@çèá/pÒ¸A– Lò„ß'IWòa20w?o¦óö#DðŽÃÚz†p‰B¡4€§n`eEÁó t.±°œ�ëLâ~ª—,pû‚à1 øFü•�ÔÔWJîvâ�Ô¿¿&ß:&Ë}òNÔI×ÄFËWzóp¾ÑŸ/lW����IEND®B`‚IMAGE 225 ./arch/connect/Gates/spike.114 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���šIDATHÇíÒ± 1 …á·H àÂ… 5ÙeÈÙ#3ü)lsgHa]Š#pOõûdƒ¤+ÿNÎÝÏ›“�Ú«#Ç@¸n¢òÀ:á…BÙz™LÞÕ­fy"‘&ÀÖ“¸#*•gJ¸ý Ìõ\ß�á �â1¡;Äh}LÞ‘6&‹]ò Ú„ëbGËWVó¡…ÂV75ŠL����IEND®B`‚IMAGE 224 ./arch/connect/Gates/spike.115 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���™IDATHÇíÒ±à DÑmD3š! ¸äJ¦×á>TÃw�XòŒŽD‰vã}G€ôäI4Ü ÜuŸÖƒ�á8>�Âsð>÷á¥w�z™LFTÞ‹.‘H¤Àæ“ØÙ/óB‰ÛÈq@T*¯UÀõ®� ï<‘)±0ˆÐüý˜¼#­&‹ýäA´†ç'b«ã'³ù�S*µ¸ÜÂ����IEND®B`‚IMAGE 219 ./arch/connect/Gates/spike.116 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���”IDATHÇíÒ± Ã0 DÑÛ#0`À… l8r†ÈÙ#3ü¢lH!ª 设'”ffþ-üàèØØ£#Â0 ñB éK”h<õöh–!\b‹V Ñ ˜ÄÊŠ¸ó  d…åìyàv™oyÀ¥/€p¥€ÇºƒFœ€ú߯€É©5Yî’Q›žŸˆŽgzóÒ¶«Ïþ"ì����IEND®B`‚IMAGE 213 ./arch/connect/Gates/spike.117 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���ŽIDATH‰íÓ± € ÐÛØPPXØ82¥8{8âñ…ÄŠ;6ÜoùOÌ)QŸ>}Ú&–èÊ ¢ARaF¨"`*9)íu‡PÜq-’ „�0œ\wü"B`L©€“C:ìc`À*�^㮑P7�TŸR„uŸ²QÐÿ ° {ïÔž³þ|þüŠTÁ¤Fª™����IEND®B`‚IMAGE 209 ./arch/connect/Gates/spike.118 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���ŠIDATH‰íÓ± € ÐÛØXPXÐ82¥8{0à ±ãÎDþ¯ÿC£�ÌÌÌô¹ºñÁ•#iàjAEàÎÍT%úç–›)'&p«%à!€)Œ˜Ÿ†°¦6ÀÊ%4§‘… À0 üŒ€á¨~¥ˆçÄ/w¡ºøÔk 0ö|_zþÜꤹ$~]uN����IEND®B`‚IMAGE 207 ./arch/connect/Gates/spike.119 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���ˆIDATH‰íÓ± € п‡1!¡ °°qd†p÷`†9<-¹#цÿëÿÄ ÀÈÈH[HjoR=’«ÔBÐ"}íó …‰ _ËÀM(�Wê‰Ï„ ˜s/åAL�%B}-Pœ�Êkäù,€éSz�õ<â@êù*`M缈¹ûÀÇÏ?G±XNïe����IEND®B`‚IMAGE 261 ./arch/connect/Gates/spike.120 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���¾IDATHÇÕ”Kƒ0 D}(’¥,XtÁ†ûߨgx]Ü &tèGPfgežlg‚™ð%±&üÙ0Ÿp½Ú´Xú4 ¡÷ÌSèQGÁC bϸ„*„|- ¡b»ʬ5Bߎã¬BÜâ d2ŽcÑÅØÞB‡H"“1|¤ØHix�ÖöW£`\1r�ê<>™K7Æ `#‰-sÔª·°Ô&Ù,Ô>2KyhTsú¶¹Ùö þ®’ºÄ½ÝÜ�µ3¤6Š˜����IEND®B`‚IMAGE 197 ./arch/connect/Gates/spike.121 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���~IDATH‰íÓ1€ Àû11±°°°ñɾÈðŽl ãV£ ·õ@d̘1}®| v$v„!†TD}E8",%-a�朖0SLK— a !e ¯1E¢�õ”�â9ûú'0Á÷êS®_O׿x¥’ãË ¯����IEND®B`‚IMAGE 190 ./arch/connect/Gates/spike.122 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD��ª#2���wIDATH‰c`£`þÃ!yšMàtC€ôá#þkÃ!’ÄkW‡CòŒø¯ …¨F`€¢A’²@ˆj‰H£AªhF@ 1F@ +)Ià #9¿EÎ ää…·d衞v XÂpi@  «ý�îc¥ê¨Öb����IEND®B`‚IMAGE 586 ./arch/traps/spiked_pit.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���íPLTE���xsF–W¥ž`úqFC)ZV4A>&PM/#"gc<ni@('‚|Kª¢c´¬i¹°k¾µn75 ÍÄwÒÉz20}wH‡R-+‰ƒOŒ…Qd_:<9#›”Z ™]id=¦ŸaJF+¯§f´¬hsnCuoD<:#_[7‡N×Í}ÜÒ€á׃æÜ†¡š^KG+…MKH,PL.'%42‰S[X5_Z763a\8£œ_(&;8"" jf=kf>*(qlA,*toCÈ¿tDA( ÓÊ{ytF{vG2/yJðæŒñw.���tRNS�@æØf�� IDATx^íÑÅrÄ0EQ?™i˜™ÃÌÌÿÿ9±<±©Ê2˹ëS­jµô»mø£ 0Ñ•sÓ²F$ͲnŠV�‡Ïåúýs¾ïW*¾ÛÝi)ÍÙðΰ<£¥yç\U¹ç2Å!éCø8P  0ö¸*DZ,ÇÜï§ sÚÌÀ´Jß÷Ð[,zr¬V0í':h›®î/WŸ$é³Ò‚t†XàkµH­g�Z¢ùT�‚HÒ‹V€×9Ž»²s!À£þ$Èæ´*@ðE¨Õ F H¶Ø½\±¦�âà8ð\k  ¸D£ÅXßK"`¬Mge}ó¸> ëq’0<+Uï&þ±mßAŠÜ.›p����IEND®B`‚IMAGE 459 ./arch/armour/shield/spiked_shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE���!!!B!BBBRRRc1ccc{{{„B!¥R)¥¥¥½½½Æs9Þ½÷ççç¯UhØ���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿ�EÀÜÈ��?IDATxÚ…“Ñ’ƒ0E!14«ÿÿ¹{6ãèC™IÉpŽÐ¦QÎñðžL3¿…‚2/K%BAŒ{‡žð$k­·–RÔ­„¢Ä¡‘$êÛm„nC‘Q“–Pœu+Ás –Pxx7óÜ컜Šê ªBÞ†;…Ãc§ øŽÐjÐ\;…Þ}8…¿dR‚;¹u9 ÝKÀC Ï+A!@‹;ù 0bãr†TUíf™�³›À‚˜Y®Y›Cæ”nß�K6¯Ìs^׭ïï�¡À:êWpWE ª%¸¡ó‚¯!t~¦0ÜŒ”|/¡Îz„±þ‹Ý£ì+ ß›¹©ø³ï™˜\×´R‚ׇŸÛýF!®lÔyP‰ãy» Ù$œTøÄûÍÒtÅK`%À‚Oaã²XOáGüZõ"â÷Ê����IEND®B`‚IMAGE 115 ./arch/connect/Gates/spikes.110 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿ¡¡¡���>ÂÓê���tRNS�@æØf���IDATWc`‚€ )`ˆ��a�š=Ù€í����IEND®B`‚IMAGE 179 ./arch/connect/Gates/spikes.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���OIDATxÚÕ‘1 À0 Èúÿ—Cè JTˆédÁ ^!G%´(˜%‡G:Ú x”àk( rÄF:zž“/Š ðûU nÀr›Ãmó<.b����IEND®B`‚IMAGE 178 ./arch/connect/Gates/spikes.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���NIDATxÚÕ‘1 � «1ÿÿ²ˆC#èR0pC—#¤‘ZT‹ÒŠG:¾p'(Ái( ZÙˆt¤æÊ…ÇHU¾Àn€Ç°Ü¦&­{Jiš����IEND®B`‚IMAGE 183 ./arch/connect/Gates/spikes.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���SIDATxÚÝÑQ À PÛ4÷¿²ˆ° ËÇúé%w…–‚´†§ZO*Œ; ¨ ©ðEµ/ÓQAÅIcî=’‡FÁZñã¯Òy…Ñ›�Ö×LÍEùý„ô����IEND®B`‚IMAGE 174 ./arch/connect/Gates/spikes.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���JIDATxÚí1 � ­±ÿÿ²º¤Ž.%-IŸ=\J¥¤˜–®|.Àƒ£(´e S“Åfy¥O¿y€ì�›@ºJ.[”’”����IEND®B`‚IMAGE 163 ./arch/connect/Gates/spikes.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���?IDATxÚíÐ1 � CѶiïe7;$ “úá­¡Ô~‡+©CH]ºÖ¥\4€tFŬæ0yïQë í6�ø”ª$æpÎ����IEND®B`‚IMAGE 156 ./arch/connect/Gates/spikes.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���8IDAT8c`C °âÀ0À̄à #vŒ0€+¦šÌ@ÅØ0).`ÆŠQŠ  (Ì€Â�ô,2Ú^Å����IEND®B`‚IMAGE 147 ./arch/connect/Gates/spikes.117 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���/IDATxœc`é � ‚�³‚X,`€€`Ž1B!F#àÐr�‡q‘ÜC$É����IEND®B`‚IMAGE 138 ./arch/connect/Gates/spikes.118 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���&IDATxœc`�+#$ÌŽPE@°�‹0-‡�œð¹·I����IEND®B`‚IMAGE 129 ./arch/connect/Gates/spikes.119 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡���@@@¿¿¿~5í���tRNS�@æØf���IDATxœc`”æ`„(# X€E‡–Ã�sKåÝŒÈ����IEND®B`‚IMAGE 186 ./arch/connect/Spinner/spinner.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���_IDATx^•Ï1 À0ÐÏŸ$§N=¦ô$SOÙh‹Ž¥JàŒü Ÿi‰“ØŒ ˆq€P!L$0IlúbXÂýrŸuS5õªútçžÕÓ™ÙöÎý‹ï¸|Ùê $����IEND®B`‚IMAGE 195 ./arch/connect/Spinner/spinner.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���hIDATx^•Ï; 0 P¡Éø¦SŽ)r’ŒiNÙ(-¤c«éáÿfÍ72¨ƒhH#7˽!£ÚF$a=ú Åi¬çš®,¤¾gîÖ½SA #6BF4(ˆpÔ]÷‹ŸòBÀ&;ÿï÷����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDAT•ÁÁ ÂP 0+§èOqBLùÔIz,’– ÀæOçákuÅmoO—Ò–ËÒ&è´3U³ª bkxŒF¬¼d½Ï4Î}E#£[kLUe0UfÐ-ôH)·]žnË_çá7>øª“¸™”����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDATÁ± Ä0 0B•à)WóIRú=å“������îÖTÀ7(cCk ––`¾.ƒéjƒÔÛ±§bå4R¿«‘³¢qíшwiŒWSò º¥‚nÔ˜ŸyÀ²Ü����øçØÚA2r����IEND®B`‚IMAGE 197 ./arch/connect/Spinner/spinner.115 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���jIDATx^•Ï1 Ã@ DÑa*¡SWKN9¸ 9Å’jSf¥5Æeò«‡ªþí3T¡ u"„=aˆô ØôDôrŸ ¼£YÁw-w-ô­^بD@jq‚}˜¾ƒ–ά]›¯/~ë ’·j„-a����IEND®B`‚IMAGE 198 ./arch/connect/Spinner/spinner.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���kIDATxÚÕ’A À0 Ã6ýÿÑ;„bZavÝrr‘!¦Îõ»a¦ã]-Ë@¢ß vá|^”aYG '[8ËvÄŒ\ ÷Âet$† Éu„ôG¡êJ ÐÊR‚‚Ô·ùU]¿É·«þÚ<&>Ü ����IEND®B`‚IMAGE 197 ./arch/connect/Spinner/spinner.117 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���jIDATx^•ϱ Ã0 ÐC“ÐWT¥è˜¯™L¾²²]B KrÜð6ð4G_0HLtˆˆTQ½‚ ‘…¥°©t°OÄÚ†…w.ÈöƒšÅD2|à†dÁA‚ÿG¯{°ýÜ|~q/_jÜ|Á����IEND®B`‚IMAGE 200 ./arch/connect/Spinner/spinner.118 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���mIDATÁ± BAÀa£åªXŒ¾Vù0«8ŒŽ_¥3������î,pÔUº K ZF0fl\fÖàÎ4òªwq4â¹5â{4²VíF¦³Ìظ̴iAK JªÀ– p����Àä¨"åtZ����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.119 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDATÁ±mA0b£ÅU1p$u9±ªøððUš�����ð^à8×~`Æìˆb5ŠH<ˆô¯m½gºèü®E}‹z=Ó»h¶sñ×à#¬¬be£3à© N§À{����ÿfÿn.;Ý$����IEND®B`‚IMAGE 198 ./arch/connect/Spinner/spinner.11A ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���kIDATÁ± Ä0 0B•à)Tæ3å!e¦pidÊ'�����|XVÀÑT›‚.#è2‚‘ÔÆ˜\ƒc’Ƴ×ÒÈz·Fü¶FÜo©'w#Ýã`vÁ­Û M Ú” Œì8`¥|����ð‡Ïn«{íz����IEND®B`‚IMAGE 197 ./arch/connect/Spinner/spinner.11B ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���jIDATÁ± 1 0B•à)„¯™òI\:ž2$�����€{€å Øæ…SÐ-‚.©`Jz0¾ö žÒ¸Vk䬭‘ú]øä4â›:HÕhÌ[m0é2Xº­%(ã{¼`M¸����ðÛ8V˜¯Ã����IEND®B`‚IMAGE 196 ./arch/connect/Spinner/spinner.11C ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���iIDAT•ÁÁ ÂP 0+§èOqBLùÔIz,’– ÀæOçákÙâ¶ËÓ¥"åÒ#tKSeSUÄÖñs_ÑÈzŸiÄÊë@<F#¶Ö˜Ue0SeÐi –6AiËmoO·Õ_çá7‡ª®GÍ����IEND®B`‚IMAGE 194 ./arch/connect/Spinner/spinner.11D ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿÿ���°rhŒ���tRNS�@æØf���gIDATx^•ϱ 1ÑÑUX¹Ì¯­Ä¡ÏUž qº7Ñ � þílºäqcáY± 1„\…b‚$ æ ¢ñCºáó=»AZûÎÜ­{gLáBXØ@"FAIµ‚ÙÈï¯úü`&J¨ä^����IEND®B`‚IMAGE 344 ./arch/misc/spinningwheel.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEÿÿÿÿÿÿ R-¿c7Ïl>¢~mG$‚B'ëëë•••aaa���±Í5õ���tRNS�@æØf���ßIDATxÚÍ“ÁŽƒ0 ÁIí’ÌÿïÚ8%Rº‡½ìH¤½C$¶ÿ|·¨·Zó³Nkx²ônqT¤ÐÚg ’Ó`âo j¦þåÇ‹H3™l3(¼’96¬2Dï#H’AÏ£_¨˜eÀñ<sð—Gþ\ ÄöÐcoW á%¼eß[±x¡¸RCN Ñ_E!¡ëðæózÝ.î(H18åÛð©ÍpZÊô5R¨“ÓWØî˜,AIoÜ ¤c[€éI¿(æå¯9=üö7ýÍ#öAc˜����IEND®B`‚IMAGE 181 ./arch/monster/insect/ant/spit_ant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²"" R-���.°&Ù���tRNS�@æØf���TIDATxÚíÐÑ @PÌþÿ7V¼L›’'Æ^¥9©+½Ûv&�„�-!ÈËÊ HR!à)þ ÁãªÆÆ¯È¾7®ð¡|tV«…Mã[€~®¤Ö‹IWìrŽ����IEND®B`‚IMAGE 179 ./arch/monster/insect/ant/spit_ant.132 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V�ÿ�²"" R-���.°&Ù���tRNS�@æØf���RIDATx^ÕÎÁ €0 CÑHñ&,ê/Ðý§"*5åÀÕöélF/éýXÀ¡Bƒd� Ã!‡# 67Ä�BNnþ!©[Ü ÙšAW7Ë ' Tƨ����IEND®B`‚IMAGE 184 ./arch/monster/insect/ant/spit_ant.133 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²"" R-���.°&Ù���tRNS�@æØf���WIDATxÚíÐQ À Pg{ÿ3¡CŒ~ŒýˆQÌCÐr\ü;س50@×À¢/$/Oc܈*×Dðà ÄOð)²ÇŒ¡â$Rdëª'H¡ÐÍiÚåFƒÖ·P����IEND®B`‚IMAGE 179 ./arch/monster/insect/ant/spit_ant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²"" R-���.°&Ù���tRNS�@æØf���RIDATxÚí1 À0 Ä’ÊÿsA¼\=:µç#H8ëË©™>æ-À(�ÉèW`9,»"ç°¤„?V]§4¦½Ì­NæíÜr©×¸äÏ+9שJ©Â����IEND®B`‚IMAGE 181 ./arch/monster/insect/ant/spit_ant.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²"" R-���.°&Ù���tRNS�@æØf���TIDATxÚíA À cwÿÿæ²m¢½Õ5‘à íÇá‚Òv�S ½¶© à2$ +Ç£v:ìè‡ÃèwöÒtTaX+ãK¡9YXûæ|^ÝòNX„ß����IEND®B`‚IMAGE 182 ./arch/monster/insect/ant/spit_ant.173 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�²"" R-���.°&Ù���tRNS�@æØf���UIDATxÚíŽA À S7ÿsaL‚ ^JW4šEûnüLð Aª©4àϪŒk`™NWl)Wc†˜Ž ó¾¦qFjÀ°2>œ”C)å#®äךEåïœ����IEND®B`‚IMAGE 161 ./arch/spell/Bomb/splint.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vîv����ÿÿÿÿ×�ˆ¯’���tRNS�@æØf���@IDATxÚí1� ¥øÿ7kkéfâÀ¥Û‘Í#p¨ýÕ@nf�òe}(0ûo­ ·öHƾ‰i>e]i˜‰ã€����IEND®B`‚IMAGE 287 ./arch/monster/humanoid/Elf/spock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷7(<3+�€€zP2ÿÿ€Ãx>Ìœo�ÀÀ��ÑwË{���tRNS�@æØf���¯IDATxÚ­’Q‚0 “—˜Ðû_ØW;Ú†QÇåØmèt_häÚ_ 2£IE„'!e‘„¾†E©mÛ,êåFÏ"3m[/ß±GX{r[Ñ7°ûe~~„Lg˜!8w!›ÏGD­ÊȘOGZƒòþºzª Ð}b댠ûÅü¼½ý&8T SJq„Xy8ô9©ä*�|Übé1fù*À4¬ŸòOîTï žü¡×����IEND®B`‚IMAGE 282 ./arch/monster/humanoid/Elf/spock.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷7(<3+�€€zP2ÿÿ€Ãx>Ìœo�ÀÀ��ÑwË{���tRNS�@æØf���ªIDATxÚ½Á1áµòÊÿÿ°TÒ5*Äă³º3 »ò |ó}1-Ò\¬)Ì&AL3i á{¢hõXkX}„‚äêõ.öT­^·U´ýéË`Ò®-#(~ß+‘Ï€ѱd×/ðáÝ¡ñÀwÎ÷@v ê€æFÊ;~È•Î68§>¨‹tTÅQî8o*Ÿ÷JôK€ Íè‚3ÌÒc>§ÚãŒe ˜ÿÄ;pèq3¤����IEND®B`‚IMAGE 183 ./arch/weapon/sword/ssword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡ààà R-���d3¿¿¿_èÒ���tRNS�@æØf���MIDATxÚåÎ1À CÑ4ðËýoŒjuY#ñ×çÁÑ:À{>|p§Î?ùÎ5»Á:üG•N**ù«|Nóïá\‘Þƒ•.ïÛW0fô����IEND®B`‚IMAGE 196 ./arch/weapon/sword/ssword_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaàààG$���@@@‚B'¿¿¿Ì!O£���tRNS�@æØf���TIDATxÚåÎA€0DQ@ý•û_XìÚÛ&þí›l稤î4î4~òK‡ÆÒk0¤× ý_„#܈J9ï"aå× d&+¯Á<óÍL¡½kÂ6î'"¥€ß«¤����IEND®B`‚IMAGE 252 ./arch/spell/Wand/staff.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ ÒiÁq8G$²""ðæŒÍ…? R-ÿ�����ÿÿÿÿÿ�d3‚B'­?Ö���tRNS�@æØf���}IDATxÚÅ‘AÄ —8h$ÿîòÛõ§)?/ŽGn£~ß·JŒ-ŸËm ÷-ϧ |mùL…ñÍýþÖBÈËïÌÀ3¥`ÿñ¯âÏ÷|!oÜ?3ýÒE¼êÙ?ÞýY>ïWG¿ÓÿU ¤ò1P>jˆÿ�>TŠ<����IEND®B`‚IMAGE 258 ./arch/spell/Wand/staff.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ ÒiÁq8G$²""ðæŒÍ…? R-ÿ�����ÿÿÿÿÿ�d3‚B'­?Ö���tRNS�@æØf���ƒIDATxÚµ‘Á! C!›ƒô_î)X<21ÏÕ <¼þ7©ãp‘l‰„Ñ¿ü¾‘u�M‰šÏ…¶ÈŠï °JnFSEÍ#8ëû{Z.xÎ0|o2¼Ññ7ãÇ÷|ZÞ}¿<ô“—ãª÷þqÛ¿åûû9¬?Üÿ)¤|ïÇõ”LÛ¢«Þ����IEND®B`‚IMAGE 263 ./arch/spell/Wand/staff.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ ÒiÁq8G$²""ðæŒÍ…? R-ÿ�����ÿÿÿÿÿ�d3‚B'­?Ö���tRNS�@æØf���ˆIDATxÚ¥‘K!Caù´ÎýÛ”{BÕŒåî%„(ýzüÞ^€¸@/»ˆcîÏ#u §¢‰-¼AFœ/‹Ë®jD5æäTq3 *ýsš^NOÿÂ\ ðsT ûÌÿ¨ý¹_çÇý'žŸ›ùªñßøÛý~Ãùº Áÿ£°Û qŠÈ_ £Qy¼žj����IEND®B`‚IMAGE 274 ./arch/spell/Wand/staff.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ ÒiÁq8G$²""ðæŒÍ…? R-ÿ�����ÿÿÿÿÿ�d3‚B'­?Ö���tRNS�@æØf���“IDATxÚ…‘Á!C¡ÊYíÿn©éi‰Œž^Då¹l_V#O-²¿ŒøÍ†°ÒÁšø¾M†•ME#æÐIfÄzw˜UŒˆW;ñ3wGHéïÝ‘¼ô÷ô_?.‡¾àÜßÀø Nùy¿“”wÞ?úñlð÷oüýÏÇEýý? ßù¨À—ˆ ü…tÓ?íÊ����IEND®B`‚IMAGE 267 ./arch/spell/Wand/staff.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ ÒiÁq8G$²""ðæŒÍ…? R-ÿ�����ÿÿÿÿÿ�d3‚B'­?Ö���tRNS�@æØf���ŒIDATxÚ…‘K! C›‚q§÷?n£Ñ,ÁXbËã>{á=WA^kBrCJñ�ÆÀ9Í`ˆqé68òõ3æ‘÷E7{8öÜýœ_«óåØòô7áON|-Òµ¿Pñ/]òû|7?%¯º.xéOųýÅ¿è÷wÏ&ýMý_ø³Ÿ,H¿*H)þÌ1¥¼è­����IEND®B`‚IMAGE 315 ./arch/exit/Up_down/stair2_do.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!! R-���@@@d3‚B'¿¿¿ÜÊB���tRNS�@æØf���ËIDATxÚ­ÐÑŠÃ0 DÑJÊÈÝÿÿáv›Á^þ¬âÀ=ˆ×<Ì»2~V1Ðõp¿,€3##æöïËÞ#;I(vN >ŸÙ7d ™îÜÞÉ-ѳûÆÖI� Ê :‚õê,Pø ™4]Éo0hVw° SÙ@Õg‡G�¨è„×.qo Üq€Sè‡,Ä~€NàÜß©”%¼�cŒ%^7@¡1°hŒ²`·XÀÂÝ"k w L ößÃùfXÿw>C ´±ëGz����IEND®B`‚IMAGE 215 ./arch/exit/Up_down/stair2_up.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!! R-���‚B'¿¿¿2Öš¶���tRNS�@æØf���mIDATxÚí1€0  ÄðÿCE¬ÄaaäÚíN‰Á0ÿ¶.„‚,Æ{ Ò?¸ DAÎ>‚¨“®@ÈÛtÐ>u>-m ‹¶ B°öœ˜ ù>Ø',<hÁ‹6PDM…Ÿ9¹†1IMÞˆ����IEND®B`‚IMAGE 311 ./arch/exit/Up_down/stair3_do.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!! R-���@@@d3‚B'¿¿¿ÜÊB���tRNS�@æØf���ÇIDATxÚ­ÏÑŽƒ0CQ2³6»ÿÿõ³ŠÜBÔ',•î¢ÇÃÃÜ—Z£joTÉ’ ïŠ5‰º.åæ{S/å:¦i‹ÖïÝo§nRôZ—E�9Ÿ]¥ Î11Çfù4$ò…®=gÃoÐ5ƒbÀ:+×|>ûøûÚé€m·ØƒŸß 0pmãXíÁÛƒü¶:®‚Õ8Ïs‰c,æ"ˆ³#Ü#ˆH¨^"=Nù7-yg\ŸÝ o £í܇Š����IEND®B`‚IMAGE 564 ./arch/exit/Up_down/stair3_gstone_do.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��íIDATHKÍ“×JA†çUöò¢‹ Ö"b‚A,W‚zcK°F½,Á†E‰Äv">Úï?eK¶ÄäÎ9ìÎYØï›3MˆÿÜà‹6›‚r°‘gäíhªA›‘3 ™·"1`Î'qpÝ7W¸#Úæ‘¹¥2ËÔp…ÝX…Û»Î-W!PEo1 …ëÂ)h•mBâÆ.^"îøÞòù%‚P%ÜrÏS¶:û¿ïöûø$.'Pf%¯!…;¶,zWòìkªü ú!°P%ÐZYÃÞ Þ²’€À”m"aVB©¡n_øæ—_ƒg”B(\D…'ãZ Çÿa6>Ó*fÅX£ 9ž%´€9L1ËR3Çïlk‚<æqÍÙžá;Ìvpƒ"NqœB·Ýå; ¶ŽcjްÅwØ B Ov—ìkÜÀj 8 àA‚áœÉ> óéàoõK¸lM –<¸Äû)IcCŒà&Æ(H"Å‹xÄF öó@/5a<FD^¹ºƒ§Ü‡'ž€ÉHAH!0«jèfæÜÁ¾«1x@!¬¢ÇLʼnwMðE’¨,~›}§ZNyëàJ!Œ ‹Ù"§Q "EIôÚG7õ«,óÌm`¼-ØkðÅ?n¿)}žÎ½(����IEND®B`‚IMAGE 542 ./arch/exit/Up_down/stair3_gstone_up.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��×IDATHÇíÔ]KTQÆñóUüR]£Î9ûœ}ΞsŠ.º  ",D’#j´Ô^HÐè“ýºçÕ¼Öº~þ{?Ï^kgÙx *A¥–Ùs,óιKÖ¬9ðS6·t4:JA%³o[&ûk€L©T ¢®Ì™Íȳ̲¨‚;‚ÌÇqÀüÔQmEP‰ª1ùŽÍ9¥¨ÑèÉQP‹#€O~8Ÿ‰Ðˆ¢‹¢ZW.ŒÈ÷<ñÔ3og ä Aqi$È¥À…_Ž\ø: hËÕ¢FÔÒX‘¿¶a_ö§§%PêZ%•jÂÿPØSjM肨-é*Då˜<黯¯ò` iëè(4JA£tmz(•’¤V©ÕŠù¢/ŽìûàÄw�Q©«¥–ô$ù˜ÿçyc݆=/mŒ!$Q©­QêIþ§öè mQW4cÔÑ–«ôT’$éMK¡­Ñ(&â[uKÜÓW+.}æ2WJõàÐÀÀ¡]§vΘÄKHkÌÿ‘Çvl:væ…u[¶æ.õŒ�ÏøæÔgÇŽæÿ WåQO.ɯ¤?ðð&€Û’¤T)äšaþ×|lÙ‚aO¼kÙ²J_Dåõ€É×v[°zcù$êýkõp”Î }sÞ����IEND®B`‚IMAGE 215 ./arch/exit/Up_down/stair3_up.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa!!! R-���‚B'¿¿¿2Öš¶���tRNS�@æØf���mIDATxÚí1€0  ÄðÿCE¬ÄaaäÚíN‰Á0ÿ¶.„‚,Æ{ Ò?¸ DAÎ>‚¨“®@ÈÛtÐ>u>-m ‹¶ B°öœ˜ ù>Ø',<hÁ‹6PDM…Ÿ9¹†1IMÞˆ����IEND®B`‚IMAGE 718 ./arch/exit/Up_down/stair3_ystone_do.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE������`M ¨”bhU&mY)r^,€j6k7‡q;ˆr<¦XcP#´¢x½­…óŶ‘ɺ•}g34)ƒm9dQ$F7Œu>wAšƒL¤V¦ŽV]K§Y¨“`oZ)©•eª–f«˜kp[*·¦}¸§~»ªq\+±Š^L s_-Ǹ“xc0ÏÀРŽxB®œp±Ÿu!!!ª—h«—ii5©”c² vzDµ¤{·¥{—€It`.¹¨›„M»«ƒ¼¬„œ…N¾®†bO"„n:ijކp:Æ·’{e1ȹ”§‘]§’_ZHÒÅ¤ÔÆ¦ÕÈ©Á°‰¯žuÊ»–¡ŠS¢‹T³¡wyClX(£ŒU¿®‡þĉ���tRNS�@æØf��nIDATxÚ­“Õr1 E+{™7ÌÌœ233ÃÿÿH¥d²ÝlÒ<åŽí—sF–Gã•%FY@U¦ëª:ßAŠ1 Æf@¨Žä´!À™JŒÎ0ÃЧ¸JT9a2À±ÚÜÏ©:]ÀcÛü‚O 8Q€Ûf­ÒàÇâS ]x5­¶å\q_‡DW1øº¶m·qý Œ(EìKìÜðšér¯ÄÛ�·ÛCãá±;6ÀÇe�\ð2{x’#ñˆ¦iq%4‚\Ѷû—ŠékÊAÿ¬ò­ã\5wP¾@@u¸–ûðÒ-/¦Ò$PÀ/´�3x7OJÙuä~!chˆû¢Xй;G``9åz^lu$‰^4bFŠ?›×R^*uÏ Æ=$?*aõ9tŽBЀ„=ä©ã (dß¼…fyD<h$ï„ Óíù¹7£ {‰¬Íü÷3  ‡éÔáÅ_o¹ù{¬4z«Ý߉����IEND®B`‚IMAGE 658 ./arch/exit/Up_down/stair3_ystone_up.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���äPLTE������v?yC’|FŽxBwAŠt>zD‘{EŒu>–H‰s=”}F•~Gó„n:ȹ”ˆr<¯žu´¢x½­…—€IÄ³ŽšƒLɺ•ÏÁŸÔƦÕǧ¸§~Ǹ“™‚K‡q;̽šµ¤{»ª»«ƒ†p:Р«˜kĵÏÀ¦XÕÈ©±Ÿuœ…NοœÅ¶‘Æ·’² v4){e1ÑᛄMÊ»–˼—˼™¨‘Z¨“`¾®†¬šn¿¯‰·¦}k7º©€¨”bª–f˜Jž‡P­›o±ŠÒŤò‹®œr¢‹T×Ê«bpþÀ���tRNS�@æØf��\IDATx^åÑU®ä@ÐøRA¨™ódf†ýïgFªŽ’HÙÁø×G%«nÖ¤¤ó5¾oßÞ^ßÉúAJ#Åò�€™'®p9ÃðVŠô…ðpÐðý‚”uߟÍzÆ!䎘<'ðüǶ+˜ì+G©Ÿ~ûí]GÀEŠ>09I`÷g¼;i¨pžÂ"õ§K�`V³¨6 �ä6BûID\HÙö½¬¾®ôw ¤(ËŒ‚&PQ¨~¾o™ˆWïcê/^Ž—nž^7�lÕÈK.ŽøU¿~s5?šî„­–K³ M³!\J ,œæ*"y;¢!6 žÜ[ùHŠÞµÕ|‡u}XŸoÎ7'ýs,õãOg³õåÝúêô´2t&noîo^¬Ç}¥žs'�P¿DL£ 9RßÿàÙd¢+&6dÃ�tÔé‡Uö?å/—±)®6¸å����IEND®B`‚IMAGE 170 ./arch/exit/Up_down/stair_down.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���FIDAT(Ïc` pA@×PApD�Ê£ ¸(¡�åQ\ŒQ€ò¨.¨*€ò¨.¨*\\ÐB‡®�z4P�e«S^G´1����IEND®B`‚IMAGE 173 ./arch/exit/Up_down/stair_down_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���IIDATxÚ½ÏI �0CÑÉý¯ÜuRé[‚ŽO(3ô<ßPúbÀÖ ¢@±pÛ›O-€bÁ4ÀöÀR   ãfŽL‘‡M–����IEND®B`‚IMAGE 168 ./arch/exit/Up_down/stair_down_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���DIDATxÚíÌ1€0Á&ÿÿ2‡DɹD)ØÖ#=Ò÷€ó%2à¨:€˜³ˆ€ô€X«ˆà{PePþ}c.Oà’yßà2����IEND®B`‚IMAGE 179 ./arch/exit/Up_down/stair_down_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@p¼öÝ���tRNS�@æØf���LIDATxÚ½Ì;� Qÿ÷?²…1+²Ä@á«'“>éméCð`¶pp¢Á€` ñ„‚› ª4~�wÀˆ hÎÀ€ SžÀðþ˜æÈ 9úN����IEND®B`‚IMAGE 173 ./arch/exit/Up_down/stair_down_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa���@@@Ȭ@t���tRNS�@æØf���IIDATxÚÍÒ!� CQ`åþW† ¬¢f?™{©Z+þÝ`>: ï4€ XÆÐ�6`9ˆÐ�6`jAØ€© `–ž~û-©± Ëhp[Ü����IEND®B`‚IMAGE 288 ./arch/exit/Up_down/stair_up.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEet-¡¡¡aaa���@@@ »æ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8)†×���}IDAT(Ï­ÒÁ € …á&Lи.�<6Ðýg²Á®¾_ÒÿQ�ÙyÀ¼ÃÅœ L¦*ð3î3óÁ›©xÍ„ûÍxLuÀÿà¡Ä“W� \Q–W™¥ÁÈ轘 š(4ãA2‰Íò íÀ/=Î>4.ÌF…����IEND®B`‚IMAGE 255 ./arch/exit/Up_down/stair_up_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEet-¡¡¡aaa���@@@ »æ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 6¶È���\IDAT(Ïc`�fc�ñŒá@«�³3!g4CMLTàÀ�¬Iv#0» YÂì‚f‰ º%XŒ `‚n‰ É–%@ ¸ŒÑ,!IXÐ#ÝtK�›8~hn”‚����IEND®B`‚IMAGE 261 ./arch/exit/Up_down/stair_up_2.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE¡¡¡���aaar Rk���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 89×H›|���eIDATÓϱ À0DQ”’]àe2Šk{©Œ‘Êäàpž¾DHÎ5¹EÛ Ö*P0"aD†„ +èÌBß…õÝ ËŸD÷Âr¿ÂƸˆ€kÑ3äxî[ƒÔÅ����IEND®B`‚IMAGE 179 ./arch/exit/Up_down/stair_up_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa���@@@}3���tRNS�@æØf���RIDATxÚ½Í1�! ÁpáÿoFB€(b³ÕmëQÿ”u×þUý Tt}ƒÕîª ì ^/²Ue`wÜ΀Ù!Ð;rÇ@íÔm�Ç]2ð‚°����IEND®B`‚IMAGE 288 ./arch/exit/Up_down/stair_up_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEet-¡¡¡aaa���@@@ »æ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  ùºˆD���}IDAT(Ï­ÒÁ € …á&Lи.�<6Ðýg²Á®¾_ÒÿQ�ÙyÀ¼ÃÅœ L¦*ð3î3óÁ›©xÍ„ûÍxLuÀÿà¡Ä“W� \Q–W™¥ÁÈ轘 š(4ãA2‰Íò íÀ/=Î>4.ÌF…����IEND®B`‚IMAGE 190 ./arch/weapon/misc/stake.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VðæŒ���U^ Ø���tRNS�@æØf���cIDATxÚÕ1�!þÿèË!-XØ(›Ø€Ìê¼&ZÅÇ/&p€á>4©BH É ™(V¬H~‡¨¥A¥ÜVh&¨~•)«eN*¼DƒP …²qP¡§ÉŒ™‹ô¼½<#Kï����IEND®B`‚IMAGE 167 ./arch/monster/misc/stalker.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V��€ÿÿÿ­0’���tRNS�@æØf���LIDATÓc` >`ŠÌ\�fˆ04°‚PÌ ÁÀÀ aÌÌœ€ª‹Œ@Úgf& J120@XÓ"Ð,€ 4w&º;XX` Û/�¼Ã:·Æ_}����IEND®B`‚IMAGE 165 ./arch/monster/misc/stalker.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€ÿÿÿ­0’���tRNS�@æØf���JIDATxÚíÐA À0DÑùÿþ‡.dg‘Bâ*Ð'¢®Ìo—®NêñFsWXÒúAr„²weU¦|¿sŒ2:¢’ ”ÌHnô�Òº�f#ö.4����IEND®B`‚IMAGE 186 ./arch/monster/misc/stalkergen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V��€ÿÿÿ­0’���tRNS�@æØf���_IDATxÚÕÏA Ã0 DÑùÿþ‡îÂ4I™¢…³IØÈ’ñ༉¢pîþŽIáZ›&Ã…nRcêATL›Q!b¹BŠ®¥Ù@*ã"fUüÿfÇ6…d„™Ižç˜è�¯Ü;ä����IEND®B`‚IMAGE 281 ./arch/misc/statue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà!!!���@@@¿¿¿”Sâ ���tRNS�@æØf���¬IDATxÚ}Ò1Ã0 CÑŠj)ßÿÄ¥å!C(sÉð>Èç:^hÁ‘ ¼•×@®@>íCÀgƒg DY¯j*=½§$…¥¹€`õ'hr°(‡ÐòRqX_‹Èí˜|1“ÄÈû é}ýÚwÀÛí<>rlÀR@‰Œ>ÈÖžõWàþ1ïO�ò0M°Ü ¹ ¾¡¡ÀPp&÷AÄq¾ˆó¹ÙÎö)¡á?ªT8¿u �����IEND®B`‚IMAGE 288 ./arch/misc/statue2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa!!!���@@@�2�¿¿¿ö#Ü|���tRNS�@æØf���³IDATxÚµŒ1ƒ@ c„ÿÿâøœË@ÙÂÜÌ.z]±IØêKr» ’nIÆŠD½œƒ¥´�¬Ááƒç€À²,@NoóBDuÍ7D¬«P¦÷@­¿Þƒöáûœ¨·EûŸ9à¦öpßJ'ö} H!¯¼8¼ Ó{ À8¤û€ò‘Ìë@ú 4¿/H¸”u|¡|“??xÀ8PþqÐ^ómÀð`r˜1ÿÂI¾i4x����IEND®B`‚IMAGE 302 ./arch/misc/statue2_bronze.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE����!�@*@@@aHd)¡‡I¡¡¡¿©q¿¿¿���´‘MÌ���tRNS�@æØf���¸IDATxÚµŒAÂ0i–zIüÿÿ⬂Zp9p`Tm+ÍÔ·+¶lz“ܾHÎ�nIfC‡¾ø vé�Ð’Ó'?û¾}y›d*Ð5_ÙZ@$–÷ J¿¼åÓ÷¹ˆÚÚÿnQî+€tDZoö{ÌÄýÓô`y"Q'I÷�ò98®­ Æ ùcAÙ÷ †Ît¯`ñÇà ø8!ÿsPþ>1/hø€‹ëÀüÏÁóOÿÀ÷»q$����IEND®B`‚IMAGE 302 ./arch/misc/statue2_gold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���B-�@@@€Z�Â’�¡¡¡¿¿¿þÅ�ÿÞCýí���:(�uƒ»���tRNS�@æØf���¸IDATxÚµŒAÂ0)âûÿÿ⬂Zp9p`Tm+ÍÔ·+öìz“Ü¿HÎ�ƒnIæ†}ð4é�°%§O~ZkÀXÞæ™ tÍDn[@$–÷ J¿¼åÓ÷¹ˆÚÚÿìîQî+€ôÀ±oöGÌÄýÓô`y"Q'I÷�òÙÙ¯­÷ z§ùcAÙ÷ ºNt¯`ñÇà ø8!ÿsPþ>1/hø€‹ëÀüÏÁóO/ �Ð&#����IEND®B`‚IMAGE 295 ./arch/misc/statue_bronze.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���>-@@@jSaaat2¬’R¡¡¡¿¿¿ààà���:ÿô���tRNS�@æØf���±IDATxÚ…ÓAÂ0 CQÀMl£ûßÅéÀFÚtñþ¸ÓEÇá@ËàhÙÇÀÆ1 3 ·Ayà»ÎÇ0w¢›t³"ãSû  ¢q*€Ãê8º` ;Qr²Ø¤gÂÇrï<yð> ×@{>ËW€Ós$äü¼ è$—^ @¡AWiMúßàº&zßÁ6CËgÖ‚.ƒwDð@0Åd°G×AÄvºˆû ýïXŽò.à¾P )ÇF6=����IEND®B`‚IMAGE 374 ./arch/misc/statue_gargoyle.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE÷½ï���BBB{{{ccc„„„¥¥¥ZZZ½½½sssœœœ”””111RRR!!!çççÛÝ;���tRNS�@æØf���ñIDATx^uÐIŽÄ ÑŠ�Ý÷?mã¿i••Âlâ)‘ü*º¨£¯P@­½wÄ"\[ú» Ós©[²öÌ)ðð§w¥`»=W ~ws G Y`¶m±Ùí°�õ°ý<¶ã´ý¶ „ïvÙavtL ò¼’{ö0„í‡åܯ¾‚‡a– —ß„Plgmœàmcà3jÝGÿ‰0ç£kîB pF`� Ý_À©q�›•¡A½‘¢[8ߺ@„;"P§{k�M½¿­Í­/|z ZS(EÓ êµàé¨%Uþ}ÁÙ] ±q����IEND®B`‚IMAGE 302 ./arch/misc/statue_gold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE)��M<@@@aaa‡iÆ¡¡¡¡¿¿¿þÔààà���€ä‹���tRNS�@æØf���µIDATxÚ…ÏAÂ0 CQuãßÿ¼(ñ lä Mï;y‡-C e }P΀ÞÛ›�ßu>†Eä›m2~µÊ §l?£‹�zó¼ÌÉ¢HŸ1–Gç“çè‚òuÐ>ŸÛdžX`¦|ÁÏ»€22ÈPX@WkÒÿ×ugïÜ™Å)‚å·{®9]owçg Š›A®÷rºðúC¹*r{–7I þ�΂ ÈÞ»IB����IEND®B`‚IMAGE 416 ./arch/misc/statue_knight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���TPLTEÿ½Î���BBBccc½½½{{{„„„)¥¥¥kkkÆÆÆJJJ”””111ZZZ)))œœœµµµ!!!­­­999ŒŒŒ�1)))!!kks9119“©=6���tRNS�@æØf���úIDATxÚµŽÉrà =«vÛYÿÿ?ódŒ�åªôQêfàRBåžèR#¯_Lîz§_ršô<€ú¦¾à;–ÛF½ÀûÅ9šZß& ßšÒrûŒqM© ˆƒ ù+šË¹½"æÍÂ<ÓN˜Ï‚Ó!l“¹422h“€nž¢ÖƒÇûá™7ޏdžÜ _/ÏÂOÕ|@ÀËc>^"õ|ªº?!Àù¡ñ¬Ê£0³�ºÀ·G€ÕŒ kïAÖ}e= ò³ÊJ­G�µÌÃYðÎ ÆqTj=‚‚ J:_ à» ;ánPèûqá~P øCPrô?÷‚ tÞrö?����IEND®B`‚IMAGE 885 ./arch/misc/statue_ruined.x11 ‰PNG  ��� IHDR���@���@����.���tRNS�AwH¼>���bKGD�A«VR4�� IDATXÃí—¿nÛ0ÆýH÷4Àµ Ðg èЩ‡� JeŠ¢-2ˆS¢-£Cf¯Ú: ]üB½;Š"%KqROEs€áXæ÷ÓwH+«õ™±z<þÀ…Öú€–8pÑQœÐíl´þ¯R°ÉAëÛ§P¢°Þ> õ@´Pïå¢}4Àkß  ¢'�Údé$Àkݰë°9vp8t½‚ôÖ¶V�µ}\ ¼>ú:2ÀîµnEßF7§T¤Œ}ØhÑAcK»p}â­£^ï÷5°Åi&€À!zßmy;BlPï(Ù aÑ#�2"ªí–Fb×_xÈ‹DïózVïJý’§2À[,�;³3±bO�ŠDÏå3;n�´í<À©€%ÀãL²O ÜC� ÖŽ2кªˆ`ªta @z„g}°Cù(6 ¨6ƒ>¨Y@óZ9 ¹!wƒô¬87qÐ47º·O�õô  iü8ày ÅÒþTO˜š¿P3�Òû›X™Egªª*½Éý @=¾lIï/© Ø;pÁUë9 ½ÐÀ.�ßøÛ*2¿Q×øþ:A ëͤ‚9ßl^’(-ëõàÀ„°*ÇŠ.TXê ú£.Ž}1@N„; Ãhz¸š8WÌA4 z™á* ò…Q&u߯€ èø­1Xk'�Ç›!ëÛ6é'€¸™xâí TN�¬Oƒ‰!Lœ°¾ßVÀ €õtÖk�PƒÑ0lË‚Z�(€ï¹q;‡ùpòÛí÷û €µûù­ywá1‘�E àÇÇ÷õ›�eëb�¸ÅÇŸ_ê¦útMIÐÑ qvÒC ây;�êϯ®.åHlÀ ’+Nitã½pûëúm¿x±âHê ä0ѯW¿?|6Óè6Ù6�p (ö¯àÙ( ÄlÖ�råfÝÌ(Gyð8HàSý0º'̺YÌý½ð  0\ñX/}³ø”ÿÛ?]�­YìãQXø����IEND®B`‚IMAGE 568 ./arch/spell/Bolt/steam.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE4VŸQ,Òi¯/_��c2Í…?�1�ùqÿ�����þ¿Êÿÿÿ±!!¿¿¿`ˆsç���tRNS�@æØf��¶IDATÁÁjQàƒ 7ynJ ÆdÞÁE}…2•‹Í‘ë»"e "³˜[†‹Èç‡3 ‹àºҥH-&Wn ‹€¦¿HD\A’H °€£X"¹�M!wmÌšBŽ.´å9˜æ¸ËˆD´ëÌÏÊ´â’]$¢Â—ßïÿ|ŽZÔ>0Ý›£ÀôÜ"qûŽãóÃ÷7oZýEÄ6ˆ_ÏfX1g.°ïS_=÷WjäBn8äÝNS×~t¼¸yìOΡd_^³öòØRɉ×w4™ï+uV0È=wÜOê¢[:r†~kò÷a(ôÔ;#èÃ"”ãÓ×¥”Þ3¥,~ßJLÇ žiü©Ý¢s¡ÐæìÕçy ïV<²/‹Å³å€<tâkçìm¨œRªåz^»?;5ª¬äBî'gU¿­ =­JMÓo_VË…;iìâÆo=úwyµpRE"Qæ¬6L µ0qÓo+mµÙÌÓ*˜•y¥IDƒ‰y´2±{ut³r6jZu9zquVn7Üq��œ}±–yH“<‰ÿk8Üì°.l����IEND®B`‚IMAGE 538 ./arch/spell/Bolt/steam.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VŸQ,Òi¯/_��c2Í…?�1�ùqÿ�����þ¿Êÿÿÿ±!!¿¿¿`ˆsç���tRNS�@æØf��˜IDATxÚm“ŽÜ0DwiîõÌx‡ÿÿÛ²›k¥Žœ`bc?nÑ õövÿ“Ð@ÿMèHÊ©Lëaëòý•à´dw…¯âÙ†XF„p 1Ï–‘ZNxA&¥p—»ÑeÚÔ×ù!’Q²ùëD;…ᨣ«^Ý¥ˆnV^Ë >0Æ.µÐÓ¦åšv­lQIÛiµ×´Ý¸E"vA:±EzýöˆôÕ,¯âx-3±¨'qpu!zó]ò¯zíÔdì`Î{(¢4ˆ väÞÑ:²ƒù�ó Žøª•k¯5¯ã>“ÜR»‹Ç:alˆ°>7Ëý«}xF;‰…îQÈÝå'Øjó]Á©Ú•{µ+j›ØŒŽÑ‡9¹ƒ¯ÀhŽCºö}ÔÍÌt['’mù‰=üº¬i±AÒ²ºB:g(ÎÜ-ØÆ¹ê}�Â<_Oì-\-D æƒBýÉ+Ú6\ykè¥ù‘©ˆ™Ç»Â'çz2ÇÏSz:<íéu}ÁÏ»ì±ÙWïïw’twh晨nÐÚn†ž} ¸ìå»ÎýI!" Ú¡Ñ����IEND®B`‚IMAGE 927 ./arch/jewel/steelbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��XIDATH‰ÕÍkf�ðçoèÿ°»Aƒ9FEÚ¡bK[ZR" )!!¡XB¨”–†`X)-†J%-‘)ΡӃàaëaàsÙ.:qÌ©Éý·Cü¨ß:ÞóûãyŸ¯7zâÅéÄ“xíèùˆóÊõQ_ÓþdÇõv$ìÖk¿Ï݉vt>èÄ“è·Ë½F¶Ç˜#ž^ŸÙe·}9è ½úÜþ€8¢'z¢ ŸÚ£×e̘1aÐÙ÷Æ=щ!eeÃú WÕT•1mZIÖoÑy=ÑŽ½>1fÁ˜„²Š9E êf••LÊ{üÖºD'~a{í6`VZQYÊŒSÖT$•L™0ê§·ä#:1-+í€>ý¦,š·ªiSܼ¬¬’¤Cþy"­dVΠ~‡MZ³jËIÇ-X0£¦*'aÔ—¶_‹#~‰¼œcjŠF$¤4Ôµ,©›±¨®"-%)eŸ!÷_ÊGÜŠQGÍûZÑ)YYÓæ¬)›Ó°`Æ“ÒÆLè×ç‡u‰v܉!Ó Ž[vTJNEŤªŠ…§5)›’4`Ô„A_ØçÁS":щ¿âF,YQ’TpÌ‚¬ª“fMËË*Ê:ä ¤Œaôº­üolG^IÝ¢)% UU'Ì+IÉHJë7"iÒˆy[Ú;‡©·cRYMM^FVAMÝš UYƒ öKÈ›ö ÎéìçNܼœ††œ¬Œ’y kV¤MvDFŸ”ÓκâÒN ‹<Œ›1eYC^ZÖ‚ªešŠ&1(kRÍEgµ\vÕ+}Õ‰vÜŠœe‹JÒŠæÔ­:mÓ¢”´”’®¸âšs.¼ tŸòGä̪*)«ª«h:ã¢5ãNøÖu7l»lñu ‹ü×£ ¢`Þ’y5k¶œÓ´èŒug]õ£ ÚñF »â¶cBQÊq«–¬h9mCͺ–M×´ÜÎÛ€n6~„Œ) KNX·¡eESÓ†oÔ<o¤·¸ I9KššÖ´¬kYµnÎÃxð¬GoƸ¢e«V­[·¥eÙÏÏfáÝÀ³ÂÈX¶â”“Îû^ùù²}/Ð}ÊŸ1nJÃI›Î;ã΋q~?ÐEDÚº.™õb+} Ðý|¶cHÅ1÷ã�Ï {Ø”[ñ#€n6îÇ£—Öê|LL”§*¥„����IEND®B`‚IMAGE 2143 ./arch/ground/steppe.111 ‰PNG  ��� IHDR��� ��� ���üí£��&IDATxÚ]–wP”GÆ÷ß Wáîà %BibÂQ¤ˆ b"ŠJD¬ Á†ƨb4j4–{ÄØ¢1Fc7£1uÓœdœ˜Ì—ßÎ:7Ž7;7ß}·ûì³ïû¼Ï»â›ÍŽëëíWÖÙù>^Þñü¨dí’Gû!F»ãÕ®Di—£äÏÏ#ÿ:äÖŽ‡ïšøNNÌ;œÚ‰pùþF”ö•G;¡äÍŸûÃ?äb€ׄÞÙì÷¶:îmq<>âE» ¢\ü¥çö&ÇŽÙÁk&›—7µ.µ]}Ï~o«óŸ£îß÷…É ç#åø"R;"@ßowžZÂÃ/;]Ìyt0Œï_÷† ˆKv<,˜Ð߸³°=o>^b]7Õ¼´ÊØ4Ú¸¨Ò°yFÐEÖÓ+C _Ö]÷`—‹É¬g&cû¬`þ…ОFËço‡ð�÷3«B.¼Ê9äêÈã_6–÷Л“±°WdK¶DožhÞ¿ÀZ”8ª·^-¸Q%Õ`2*Ì\Qmš›.„hêÉL^n[í½TiÞCwi­½&Õ‘f×9+2&¦9¡¿~ZBgsöMä”Ä·A~Z�1}f™¾ªSèÀdÿªªª·úEg–úíGeá 38WN’ÿ¸d{ï„vËÆY¶±.hS^ÐÒ,OA¬…ÜÎ* Ò®E‘O…ÇÚt§Š!èó{F íxûòë''¿‘åa²­R-Èò€Ú߇ÝlÞ$óÈb+‘Ý;ßBÞ«v,\»­Ð}Y¢ob;N9/3Bh¾y.í¦]€#´ÛÑœü÷I8º¹Ññp‹42¶æ¿8²§~Oq’à'A›S¡OòëþBmA ôßÍ1ÃãP“•)±rÜE½#O7t~ÒêÖ®?U°@—>j3º†å¥¼ÒKl™í\s(ú‘©çûë÷¤Ž Õ•èÊmDÿþ6)YtÅ)Ï®y–Oß´ý{E HØHÒbu®ïàÝâÚˆLÁ:ù£<¶á%Wà!‡&(CÌ8"QÝÇ¡Q-¡f‚düK,uªt,4z¨ìšêñ[ß2ìtkJ¬Ùu>]vÏK& Å3ˆ,ÐätçºÜØòãÉ"Aæ/Ê»¡ ¨uxEKp^ôÐÍe 9=\†A©w®6Ç[ßìUÒ%@Õæšæc¾â¢P²ÛA¨kl›ê !TÖMÇ¿( ôI¹¦5bG… ôÀ@Ìãƒ3l°*Û ÷¦2ËÝ DæY Á½Wû¶H I@—¤Šc1BÏŠ˜8µX‡œ3ãÛNïÖߤÐOŒH’ù1FôŒT⮵®(‡$£cÂ:¹E—È]¥GûÕgè& d~·ÔʺÝÚ ;Ä€5Êpÿ4õ¡3Adˆ oUä³»‡vºQâá=šû{ñ‚ñm1±æX„òjþfHñÞÑÅŽÈ€Vù?·M`$H /ŸÄvœi²X¡ãÛœ• áÇZ]]É# ìt·Ú)˜o>,ñš”Nd&?ì :ù²&»£?GöTdpMЕY`†lNU$1û¢’xP&&¨i¸K!~­}çE�å !¢\øœ’ÜPð…øÊ—£[rb :eí§˜ãÒÐóY8³«›,⣕í›ÅSCo@¿”5\@gÞÃû /~6ïCˆ8% ‡rÅ@¤28'€Ç¥âžÔ»¡¢ºSã+†%cŒä•ÁùH¾ è&âcû”ÅK™G˜@µCè@StèJ=ÐØ¤â¾°ÔBd˜ïëNóFV¾f$)B2É8h%s‚Î ™Ã8±ÜÆ<âÃ9TÜ Y%UêÄÄšREZ l`€|w×$Q²'ãÒ¨ 8å´¡º1¹ŒúR*Cö©-3ƒUGd%VŒ qJÙºïz'”å 'âN|Jºê : VH>®s ôƒö9Ñ`ü’8͵S̾Ê`14±¶µ.6 ž(ÂçÁ 3Ø›ÖÍ9xf ï¹H`PbL–áp‰tž›‹»ËXÍü²2eÊ@SU_7®Ÿè‘Ò—v%ŒÎ2Ô盡ÿlï$€Ä�¹sù€8 IÌĺ'U‚¾ŒŠ0l’KÑœ¢`à¸^ÐQw¶'ŸÜ3&¤ºðK$ñÙÈN·Æ§3|ôØÑàÔ�ü)ãKâ~Hu¶Qöd8Í@KuƒÍ=õÄTÉŸ˜"b:6›ñ@ãœ?,øÚØ4rëCWµÒÙÛg%È Ý¥d faœ• ÀïS«|ø¹ëwÎKÒÐ1¥:qG<ØŽZÝ*ž«64"âiú³äÅ#PŽ(ISAW­F¡û¨¨ZáVá+C¸¿`‚¤fôAff•ë‘MŸ„§ò¯ïÆ$ÐUgFÇÜAèÀêf†G)t&ÓΈ5F"2á=/Z›Ë|HZLÙ€“ÒCtvÔ†ä¹"€Nè¸Up¥àÒ›ìß´h?\~|^@ŠÇ¸“*j¥’¿ò+ªâ4ç“I'É›‹ ‡ýœ«GÌͶVg :ËŠ-‰·A„Í£z.°žZnk®1Ï¡Çè1ºµ¢„ñó-ò&ŠÒÐ:*?PšøaQÜÑᢵɶqŒmKµeû$˞˴|£²î‹£S.T¦Ðp~;æ¹±ÁuµÙu¶Éqxžõ`£eÿ\KËXó†áŽ}Síl‡­77Û×ÔOÉ3¾°ÜZ—ïZ^»qˆ{[‘óYe8Ä:ñE����IEND®B`‚IMAGE 4024 ./arch/ground/smooth/steppe_S.111 ‰PNG  ��� IHDR������@���[a?��PLTEÿÿÿªZ"švjJ¶z~bþŠ&Æf6†J"¦¦¦òz"ÚŽB¶j&îÂ&Ön:¦j†N®vº†ÊަV"®Z.’Z.nNêv"¢bªrzVšnšV&~B"ª~Æ’...rJÒj:vVzZ¶‚žrÖ¢ò¶"þÂ&þÒ&®‚bBÆ–þÆ&¶ŠþÎ&ŠF&þÞ*⪎jÒž¢zZ>þÚ*NNNæ®"Ú¢"¾Žþæ*þÖ*¾’’nþÊ&ÊšºŽî²"Ê–þê.–J*~>"ê®"žvöº"B. Â’†fÒjª‚vRê²"²†î¶"’’’þâ*Þ¦žN*šN*b2Ú¦J2Ξ‚B"‚b^>R6z^ºŠ:& Κr:ªV.Šjj6žzŽJ&V:JJJžR*þ¾&’J&²Z2¦~†ZfFú¾"n6^B~^222nJú~"®†¾b6ŽF&Âb6ŠbF2þò.vZrNv:"rVºv:žžž~V¶†V>N6N&¶¶¶Ún†F&þþnnn–ržN>* ¢R.n:²‚úº"F²r6Æ‚>B"F.J&nRÞÒ‚bF–N*:* >º^ƾrîâŠ"f>¦RÞªv>"R:Îj:îv"¦V.z>"þÖòº"jF¾¢:Âbº^2^.Ún:âr"6& vNšN~>¾z:šr¢š^Z.f6¶^2ʆ>zRâª"ŽbŠ^jR~~~ÒÆzÞÖ‚þÒ*bâr>ʪƒC%5���tRNS�@æØf�� çIDATxÚíœù{TÕ€?¥[ÛÚÚÚÚªhµµgîì3™-™¹I&3 Ù ! !{BB €1Qа¨qÁ]´Ú Ñ*´E+R«µ‹µPÏÜÜ;w™sæœ;ó ¤0ï¯ïóžï;}üá\`‘Dí{×Z^Âò_[«ê„Ï7„k©ÕU%X,5aH²<P1ôŸÿ|öý¾0óu=Íþþ𥯮ªÔ*x’6–‰V"ßKm‚ÇSåªI†É‹¥­åŠ¡§øüç³ïÏð…™ß®í Þqeî¨Îã9°=úYÞ¿nÊíØ`Ox,dsw¸›«ûËCOóùÏgߟá ‚vçv�σfî(ì:`ÿ›÷9­›å{ÎÅ6?…PÄnGŸírŽV‹ÞØÈò@ÅÐÓ}þóÙ÷§ú‚Í×÷Z鹿fÉÆÔýa£=0ð§ßƒîË;7n÷¸Bc6ÿžzŸ™ ýõôΖ*†žîóŸÏ¾?Õç>0ôù†žêÛ9æ—@ʃŠâ[€…ÝÞÑ»ëxÔ|‡åG?Û¾£/?õïê ýöñÑ%Ìò¨,ùtÏðäóÙžóþ O;Ÿäuù“@Ƹ?Ñïßžõþ�€=±�‹6ÁU×ö‰¶Vš‡4B©AbíËn¯Ó;:çÜ­ëúIžö-(®ô4@;_é_&UFÏ{º•vÆý¥ùÀA»q0’uÃý!5ŸÐ÷H=ƒR0:ÚZZ€ƒD°{ëÇFŸ³¹»Þõ¾ªëwn·<ï«ÓAéi�hçK>s½Úý9þpéù°t¾¶L÷Và!c0’uÿöÌûƒì'*¬°°ºZÛ»³¡Là>ÜÚðEßרk"ÕS{6ù¦KÞR ÙÀ~u‰Géi0äóõ}™6W=0Ðíf)ÑôbW–±™Ïº¿Ô³~¿³RÏ"Añú—{ÆÉš¿¯Œ‡„§ËË­ƒH´ .köÒe]½ÞQzš ùüì½âÍìHÈãþ‚ý!“ìûãžã÷+Á= $Ú†·~úvWYó÷±ÊÍ®Šõ¥k›­þà¶Aa‚UV”:ÒÓ<¤ ž¯ë3sÙ›Û?û?™ûƒéýqÏøý¬rÏ`ìÌkÎ׎üûÃI²æï{bÍ;¬žòî¿|ìg—YVúbÛ¶F¥§yX"ó|‹®ÏÌeojÿ|îüdî_fzæýAîYŒÔv:sÏ8`÷k„¿ót$"ÖÖïw÷…BìÒÕAc6¥§yP0œNèúÌ\ö¦öÏãþÀiÿ2³ûë{ ÷,Û2TÿþÎÉ}dÍß—–—WEw$øÇ.‡ƒ§Œ4¼øØcJOóF{~ei{ÈDö¦öÏãþüaÜ›Þ_ÛÓßG…íR°©²²jý#dÍ߯.u!ÔtêX°¯+Ä—~2P?dSúL<¤Ñœ/úê,¾€¶ÏÌeojÿ<îÏ÷_ozMDÐÆãëZBKÅúGv_êmÿ=¸u¼s¬õEÎôŸ=ΡÍ÷T<¨¤ÏoðYK±×öÀè9÷ÏýþÜyÿG|ô°ö×ô@dû O Ÿ/áY½zÇ!ŠæîÑlçÀó¨}›CäLC;Î ´ù{÷9%Z†@:?`ýª{®Þôþ9Þ8¡í߈@kMDäžEØâ*YaÓ(š»·‹þúÅÙ±5B•¼é7=ï£Ì·Ø7­•¼1ÂçǪV”öéù Gñæ÷ÏíþÀEûêþ"èaí¯ö@fík†Ÿ‹Ž µÙþ»Q4wt¸;zØ‹U?îàMý6[ …2_|±väÁÈãWyùCiŸžzæeo~|~.÷¤ó)ûë¶P<PP{ m²m®>kɌݾð:Es÷Û¢ñФ#îs§ÏÚÇ”ù#Ñ¡u’'üǯüá½^É«=d"{óûW•=¼è„ñ|b,äóõû“{ï€ìAEêÇa µ§ÿÐZHp@âþNŠæî;ú±±ÖÊÍü©ÃñJO’2�zû$Oèv4ÛAìÓ=½éý¥ø| °äÉ=dG=_·?±Ç¾  Jj4¯„’À¢ÕvoùÇ[(š»÷G§šÜñ¹�ép»[ß|ˆ:ÿÈ’'•ãh­m÷MŸå|³ûO—”4o@kŒäi=dÁp¾º¿n>HÌK@ö £ö€Ñö@Áí^ü?$ú£Ý[ÖP4wlzL•A[%ªs)=ÍÓñY[`JÓg?è`¯Ýß9øÞK%%®ÂçS ì�{3÷'œ¯ÛŸäË@ö°„Î0ïIy`±â­É[„›îo^AÖü½kzÆ\ÙºbïOUº§xrë@>QÛg?((^Ùßy~û¹C%B!|>`äùÆýd/aè!òùêþ,Ù{ 1sþ ¼?‹Æ‰ Ö•‡œΑ5?4W™Ùç<P“î)žÜ¶-Ìj{ÆùFõ>µ×ì?0زò£o‰¼šcOíÁë|¶޾ °G¨oÌÛzägØ·� ü!ÖC;/ú“5ê0Yv‰ƒŸM~7ÝS<%>YÕöìóñ~ãiõ˨ګþÄŠŽ‰¯~p!—<½sö�ÐÎ:¿0þرhWöªDD F‡.•5ßz¯É2Ö’«:Ÿì)qûá>mÏ>ïç“þ‚Åmþî¨Ú«þ´PRz–ìùû«ïE›ÿÛϺûúû#IdžH$~fx×B¼¨ù{Óe_oè´ÏªÎ'{Zsh{ÈÄa<¿!9Qá©‹ 18|y¸/víúìÝÕwoèKß×À¢²»öxgçÚ^±’¨ù{Óe<ôüôYŸ:Ÿìiõd\Ó—‘Ž7ž«³LÏØã#û:C“׬vtŽ™Åжéº0ûÏЭ?655:ÙOÔü½é²Á'¬|©óÉžšÏjz–—ÎoÛžxkñòÖ_½±µ¾þž£c×®ÿ¸¾~êèâl×¾;ÀâÄÍwÿð¾#­:ɺ€}ÐüùíßS{²§æíãjOòó†óí‰íçn»÷Æn¿ÿÆÚ -Þ®Q?My±……/ÎãßEß]·þèÅ;žwɺ€½ëá;ïþÉ jOö@GíË8ο¿ôû‘þßÖ÷À]?ÿÖ·uü¦ù:ð?½á`‘ìÞ—¯/:ô÷ýýIµ'ûâü«8?Àñ}�_ré}9˜&YÓf±X”žæ‹ó¯Úü–ÄYŽïDä÷å`šXêýy@éi¾8ÿêÌO®Nöó}@¸¿?ÿÌ#½?Wzš/Î盽&ñf¿à¼9Æ36Øñ}:›7ñûó-YzÉl>†1®Ú|ó÷¯ ºCyüþ¸7jÞïì>Ñqt×~ÈéýùR¥ú·yi>½o/ðüP¶ùœïóåß/:õΘcéüt9~ ‘zŸ9áÜ]ƒâRßr:Nó…›Qægñ…¼öù^þûã߯ÉÝ×ïßdpÞQàû>@‰G˜@®X©G‰šç™yÎ̲›?7÷*Ï|å÷k<ñùÙ櫽Ñyåùì÷ñ‘U3«k`q'Õ©Ïs>fùÍÿÀÂ=Õ"@¬ÂÕ9ͬZÜ)âžèÅxAý)È$]ÿÔ"Õ3çC^ ¹_~ó—©ùîJ�„r™âõ§qO"LDœ„<Áïó‹©€+ƒmøä§o{{rîÏ@‘ÿoð÷�&¡ÈõŠÓ9 EŠ)R¤H‘"EйÞÀߨm…"×+¯_¾ï†"×- î†Ø)’bílñßW’_¯«…cj�²Ùp­ƒßÇÕá`qÓJ˜qAθ7rZl øüiÈBó ÝüjäÃýrgžñ~ýÉ,¿Í0zHùFႲÐ(�0¼uåg=k?�Òùø~iI}@•¨oLÛÃüý€ÛU‹R¿ÈßX¾¬©ï×Ù¿çë§—¾="’:KýÅ(�»_AóÌý.Rï'÷Qí÷Å^×ûÕÔð}€eË|¬e}¿žÍïÁïß¹zùý¼(È~è³O½Ïgõôý.îGññY¿ÞǃQÍ"úï,[nêû¶«WßÏ,�ÙÃ/Ä™}CR¨ ÷¬ýâúû¹«©^ nº¬÷çk¿°lSïÛë|öÚ÷ó@Bö€)¨gï§qÒû~1-ƒpPï;÷w¾ZtßX†¨ï÷÷Ý ì•÷ó7Ó¾ x€ÂzÚ~d?utLõì>xÏÁËßX® éýz½ô~þ\è0~?DÒ ì)û‘=~ÿ/{vÿ ùû Ê÷–-òûöÂyõýüÒûy ’öP`OÙ/ÿ ü}€6²ÇßøçãþÒnyæÓ����IEND®B`‚IMAGE 1988 ./arch/ground/steppelight.111 ‰PNG  ��� IHDR��� ��� ���üí£��‹IDATxÚe–ùsgÇß µe!déÐi§í:ÕV1Æ2ÜvFm©*Z&µ bÏIˆ7qs“¸‰D\„›õK¤±¤a‚QÔVKiQªêôó>yG5óÌ;oî{žó|Ï÷|Ï9qzõg÷®¯e=º»^d§H•\i9"R+R#Bål¨Èvõµ¨mm?·Û-RfZÊa‘z‘ s5‹ð{ž<ÉøûáÆ›—o\ZýÇíTãŸÇ›Ì2ŠìQ½ÒÂ;ߪ÷Ï)ÈùÞ‘>¶ÞÅyž)ǃåp7‘/žãàrí”u¹måÓûrssoo ²U$WÄiཨ¨èÀ²)*’//²øåÔñÅ{ʦemú&=e̺đƒÛϱuljXxí⪬¬¬ís»Šx´¥6>žá .¶®hŒï}õ|Â…–8ž­9æÛÚÚ*ÏÖ†ÈÈÈ<çÄÒm×øaúàVJllìéÆ%D×ëÕ–é“ãââŠÜ“Y 5Ñ,ö¶4-;R7Ÿ'Ýù%Ù<€£Žmòw9¾]±ü PGDDØl¶´´´æ£‹N8üqjò#Ù* ùØ[8,X:½]jò(Ð,ÑÉ3·'°ÎнsÝŸ¿¥ÉÓÍFÛÖ@¬yîóÌH Û™1n„ 111PDZ›—ƒ6¤5Ò=å½piа ó&%))I»f °HÉ™Ä>¿^I2“,²M)¤G EN°Y{`yX³M$G¸á¤ieo!˜p]â{š^ØBªpR¿ìc—ËeˆTk‘¡ ä•;£Kaa!xî%“N~Á; æÛ–/5{Ð’˜!i_ë(AÓx(ïÀ÷OMMe»©®2°8`?Ê»˜¨OLL¼VÒ™ÄB=eMé äª6ÕÏíúnÙ¡+í_º)„X ëôr�„�îE5ȪTâÅx5i–à‡gAAˆ~JêÃW€D*âF©)R'¾nB~wꈕkAl4´kÏÊN¤ =dD¶Ç5´þ˜@È�lÎ Ij[u (ŸÏ—73r@C Bcþì ÊÊJb‚eYÁ»Æm äHÛô@Vk–ôâ‰Yª&¨å±ÊpËä÷ôñÎ9=Ñ:dê 'VÌtÜÆÆ‰ïRVè–I¨É.xa@Ìx¯¿e!Ò²Ê@°OÎP=ZxväX–DiDÏŒ$h fµCÚ•{fU&wj;mWeU%µp}fõžúõ~ØXÅ/R¤JëNÔISbüpÄ6©z3ªöF‚%7¦{ˆ�8fAˆO¤¥­­­!!Ìò¤™¶vôŽ¢Žù°À½R”‹zö{:gp*-’¿ñýÛEGGTÑA´Z^¹êè!GÃÍF},¸|Þ‡øålö€kÍê3gÎ\>Ê¥²âãã3Ñ1m˜XÉm©í±k0çq ÝLÔ³q£´³ 0W5ƒFyØýĉFM!Äôñ&)å°ôôtŠYw…#öO¤pˆ©×ŸÃ”‚˳³³)š[e]xr O“xÀŽõª�¬ÊØŸÔ ¼ü‹¨(ÀKçâá]I LíòZ­[ „²gx�Ÿ§Iä¨!S®¥òZe âнžjÞyb¬òï£jÁ¤Œ{‡$Ñ•–ÏF,g²LŠÈŒœ ‘ó¡ °€C‹Uö1~ºS²ø¤³ª9ª½‡‡‡§¤¤` {êô,±7`Ji ç5!Z•±jÕªªE½0…(¤ù² Š‡‰ì#Rât:ìŠxŸ9ƒwáGJ à�œŒPâe0mbæ}>erßÙÓØ—Ú6¦†SœD°$�QJó§1i“õ+BldñÎâ~HïœD ¡Ù€Û¸’Ößn·ÓÔì#º'%|…k†03;º}q¬9‡õð#o�gƒy€ìeÜß: j­c•TQU;Wt>T+Ë|SEœLàJ¬¥ªYúµÊá.=&¥)˜në+Å«³óhܧÜøÔâ2û#ŠG]jíÆ¡Ám@¤€7ÕμR9\®„ñ %%%'OždŽªŽô!M _Oœ²H’Î𬍍pÏÂ8çή.†Ôt%ä—ÞÏ„pCp(ŠEuuu¸ 8PMÛGMYäèñ‰1âA ºÕÃ*#„T£ºÇû‚ ä¯ûðk6mò€=B¤—(ïÕP.,­fiÕ ãVA’I˜î”$žÿ÷aš!ÞÃéþ<)÷ââb_|(ňwÍ jÖPF÷°¦ øAÎÙ¥Êe‡žôuå0F¢¢¢øi!ƒˆàÎ¯ë‡Ø ôU(,´OœÐDùæHÐØÐ½õMÎ@ãö‰o M"?~<Ó áã;‚ÅŽÀ‚ÙîÒ©˜†.ÏáåµZá–0Öÿlr_¥šíO*ƒÈ¹Aö Ø„é¤ÿP“À?å €>ÑLøÄ “™ l€¿ ¨Ì¨öôAfÚ§àZƒöNÎ^F@BØO‘L´¨”îR2­Q#¾V·b½‡ÃQ:¯+–äC<®Ü(E Ýcvåºn÷<]ÀN")æ!a4ù K_����IEND®B`‚IMAGE 380 ./arch/floor/stfloor.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���-ŠV��c2�1�cD¿¿¿\ —&��IDATx^51kA F?”Û~9noŸç¢ÖlsíFázc'¿Ámô÷33pHz¨úx’ªZULVëTžL½ÔüBÚ ~÷;ZìxIÙj«Ô`ÖF7š¨ª­<½ê©¨ÒÁæ¿àïÆ —$;´4 Å"ÓŒ‰ÎODùä²ôŒ4|¿<2bpŒ‰g`çF¨Ò+õÑ™ÊnoiÀÆ?×Egíšz¿Šlg ±_ª*fÌ-~Ào˜’­â›„NWÐFÿ ‡mÌŸ—­Ó…¯ã~ÄOoL. h0]æ¦JOŸ"ÉHé·Üž Üø ú-ê2H -ý.‘4lÁwxFL ²è5:-V0 ¿»ôº´?v¼ ôbû©æd÷�À����IEND®B`‚IMAGE 165 ./arch/weapon/artifact/Sting/sting.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿ�����¿¿¿G=e���tRNS�@æØf���AIDATxÚíÍ1� BQm¿÷¿²ÑèX\e}ÚÏC"†ópOÞ+ÇíAìOÃýƒöFâ´¯—’·‹FæQø©3²�Þs”S2����IEND®B`‚IMAGE 175 ./arch/weapon/artifact/Sting/sting.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿ�����¿¿¿G=e���tRNS�@æØf���KIDATxÚíŒA� Ãæÿ¿,B<Z #Ù¥+íåô8ÂU³~pƒÉíâÃòuó%òkA~-‡È>r‰ý(qrX¸oƒŸs&ã�ò…qgf����IEND®B`‚IMAGE 182 ./arch/weapon/artifact/Sting/sting.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿ�����¿¿¿G=e���tRNS�@æØf���RIDATxÚí1À0ãþÿ˵2rÙ«‰å| ¬ggŸÅ7À—´Ã•"ùÒŧÒž|ß|{‘ß ð;v8ýÐåøÈmæYqshT…?s^Ø�ìû0‹¿����IEND®B`‚IMAGE 181 ./arch/weapon/artifact/Sting/sting.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÚ¥ ÿ�����¿¿¿G=e���tRNS�@æØf���QIDATxÚíŒ1À à —þÿË Hˆ)Ab¬šÛ°Mûîú¸³•Iþ�x¼Ò'Ç¡d¦w=õ{r÷ÎØ½3R¯±áÄÉ–¸¨78y0ª Â?¿ì�õªKÞº����IEND®B`‚IMAGE 89 ./arch/system/stipple.111 ‰PNG  ��� IHDR��� ��� ����[GY���tRNS��v“Í8���IDATxœc†U@À0(Y�¸?Á{j¡’����IEND®B`‚IMAGE 88 ./arch/system/stipple.112 ‰PNG  ��� IHDR������ ����PK@Ø���tRNS��v“Í8���IDATcd```,GÂø�a¡<2ŽC����IEND®B`‚IMAGE 305 ./arch/indoor/stolking_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEïÆ÷���¥R)΄9B!”��ÿ��Æ��k9­k)k��„��ÿÿ�ÿJ�ÿc ª���tRNS�@æØf���²IDATxÚ•“Ûà ƒˆØ\úÿŸ[‰Zì€v²yÜ“ûöP|ð øžìH©ÂÀHç}Ì®³ðž ì2P¸Ê@>Àø´W“€%È/7Ùl�uÀ¨‘�‚Yð6z]àeÀf¡{ Ä.ƒ´ Àð õ“Ò ÒpMADÒSˆ7A¦Nö‚ˆ¨/S¼ è¶â½ ½ñ6hž‹÷‚:À:`¤ºAÀ?ÿÜÛ#>; å îŠ)����IEND®B`‚IMAGE 305 ./arch/indoor/stolking_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEïÆ÷���¥R)΄9B!”��ÿ��Æ��k9­k)k��„��ÿÿ�ÿJ�ÿc ª���tRNS�@æØf���²IDATxÚ•“Ûà ƒˆØ\úÿŸ[‰Zì€v²yÜ“ûöP|ð øžìH©ÂÀHç}Ì®³ðž ì2P¸Ê@>Àø´W“€%È/7Ùl�uÀ¨‘�‚Yð6z]àeÀf¡{ Ä.ƒ´ Àð õ“Ò ÒpMADÒSˆ7A¦Nö‚ˆ¨/S¼ è¶â½ ½ñ6hž‹÷‚:À:`¤ºAÀ?ÿÜÛ#>; å îŠ)����IEND®B`‚IMAGE 217 ./arch/weapon/axe/stoneaxe.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8Í…? R-���@@@‚B'¿¿¿èp<é���tRNS�@æØf���fIDATxÚíÓA€ DQ;E[¹ÿíØ¥Ð·úlúB€„m%‹Êùy´ÂXÌÝaÃýÆÕ]]Ä@•@³�$�&�7@λØô½‹L¯"L(¼~É쟬-²åß}‡â?‘M5ð����IEND®B`‚IMAGE 525 ./arch/wall/bwall/stoneblock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEæÅÕ´)s{ƒœ”b‹ƒbRRj���Å´999AöÕ�ƒƒƒ ))Õ½9´¤Abbjÿæ�¶ü!|���tRNSÿÿÿÿÿÿ�KF��…IDATxÚ…“Û–ê0@¹4Mƒþÿoˆè™‡³m±espÿ!ìÿH{2 Ëþ(æñ*`O7I„/fIC˜é"~HûZ„¾<´Ô£Êš$o@ã=2¬œ¦»ƒ/#¢À˜áaäk-5ÓPÓ’â€FLN—�QViOŠH ˆ¤L²~Ke¶º+¿=ÑÊ\5éòÙ�7rRÜ»[¤€ºS¸v‘æ+¶clÂQ¨k(�°-€áÓæ Øæòv< ›U„šˆuæI¡Žô@TåDp`ìDØ)tå:»T/ÐtÉæTøoŸ†g½,é=´ää×  MçÞÒZóò’0œŸÊ"]C:«*"ÆQS]ß9T¼·\bÀr]‚z5P�p¨BFYÚmN÷ɳÒfòw9Ù¶tŠ™GYõ,ܾ[e‘u8ˆ-Á´}»åŠ@u`=ßË©—!7q;€×fÕ©¨`ãÒãxÀGT÷ùo¾hì1v|îgïÐõ½_2îþð"Ø7baF����IEND®B`‚IMAGE 490 ./arch/wall/bwall/stoneblock.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEƒ{{Õ½ Õ´)s{ƒ999���œ”jÅ´1öÕ�ƒƒ{æÅ )A´¤Jbbjÿæ�[#¬ž���tRNSÿÿÿÿÿ�³¿¤¿��cIDATxÚ…’Ѳà Dz7!üÿß^h¦ncÐñtÒò÷C¸¿h$pÝ'ƒSظǘ€šr À¼ž¡ùÓÐ'Е̎r™ðéÑrÞŒž)@V!dñ±vš™BŒ”ùq€™6£@ÅéA· 09N-¨åp)é úT˜–¨!L´2ŠhÙ)ÈÎbbò¦p?^ÖOpü:�ØgR–C�…¤®/O#¾³ÈÓU‹‹xjNP}úÚëj¤<€M«ÆR×®n‡[£Ëªd Zi=Û´¬råB•·Íb}¶‰=‹tuµ€íàuê‘ä¶"F:Äð!Uê|ù¾, ÃÜ‚ —Š ü]êL1ö4E¤6¥¨ñ¶rš't¦•™[çŸÓ™•B¸?Ä$fûgâú�ÜÄŒ�*î» çõšÀè Xùºª±R}0Ü£_Ýu }Ÿ'à_”ÀâÍÛ!Ò®Ùý¬����IEND®B`‚IMAGE 505 ./arch/wall/bwall/stoneblock.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEœ”b999öÞ�æÅs{ƒ���¤œbÕ½ öÍ�ƒƒ{))A½¤AZbsÿî�rª;���tRNSÿÿÿÿÿÿ�KF��qIDATxÚ“Ž¬0FEèEäýßv«kîÍþ|ÍΪãl¿äÀ±ÿŸíl'ƒý³x[}†eF/{v8oà0BR!¶ÚÕŒ†%0Ø=È=sÉм–pû\VãÐ ª¡ªIhø°#eà�ˆì"`•b ØnÃj(’v …a ,cHª¨Š¨[ó10¶¸K0ôˆì ™U4x<WpeB½¨v ºmÎ8Œ•¥Z7C¢u›÷eT¼UCŒÒ0/Ã&¨«£p] { à.k8¹Sõ#f)¸Ï�¡=D@{ JïG­õÍnë:C¯ÅŽmB©nó¸ hꢕuŸ |œ)1jah(±Ùc(œtÅúÍeX€†œWL¤«'ñŒq·Ó_!r8’h±G1"º×1£¬÷ëwF2GíåÙoÜ»qÇ™Sۃث¿ éØZ]æ‘[ýç ˜ß¥ÊÀ'ï½do†v����IEND®B`‚IMAGE 463 ./arch/wall/bwall/stoneblock.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE¤œJ½¤9JJb¤”R””j{{{Í´1öÕ����‹ƒsæÅ¤œsbbsÿæ�}kG–��� tRNSÿÿÿÿÿÿÿÿ�SOx��EIDATxÚ“nà D ö|ÔøÿÿvÆ^BÐTm×`¨üzgåõõ‡>}ÿrèï·?s­ºUZ(¶<Õ'P‡0 /ÌzâõzmZØæ‡šW&%+:bÒ——·´bì2”NMvܼ̼ïÖ±q˜Õp …ƒ °h{U¹z�ù;‡ˆÜ,f¸"ÔÂB5gQ±ˆpe„”|Éh‹ œ”ó¥œ/µ/‡¦¬Ènb wx�B±üÑ@µ¯Ü>h¢€ÈÓA‘ñ†£ g€ŽmËt:`°¼¸‘@êrø}ÝE1µ«>dß"ˆ6C¡fÆ Ä :L ×å�ÃpÈx8 i’"9DžÿC¯B®³¯± ¹¦ê$nSçfÐv_–ËB"-£¼ÔžÀzo²Ìšç ðç·¶W/Ög`iq?_¿aý"•yÒÏ6����IEND®B`‚IMAGE 397 ./arch/wall/bwall/stoneblock.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���RZj¬œJÍ´1JRbœ”b½´RAAJƒƒsöÍ�{{{ͽA½¤JbbZöÞ�ÊV���tRNS�@æØf�� IDATxÚÕ’ÛŽÃ0Dí»!\üÿ»š–ìöißv*”9šJÚÿ‘¶††{7¸—?¬Nžøkøö…í‡Ok-Z|Ʋ&Ö„ðÝr üE³þKçýd[2xsä³—Š+"�|Òò¬‘@ªÏ4(†§Ñ8¬† }{½'81À´ø@K*CÊêWÐÁé¾Ê0êE8ý^�â^�µ<Ã{Âr†@å �®o²€Gs‚q…–’+ELé yI­/K®CcA"Ad{éĽ3ÏÌ€gÝ èc®K ±Â¯wï�³³0˜Þ€¦Øý‹5;Uí´µ�|V+úÐîú Üõø¢(ªÚæ����IEND®B`‚IMAGE 297 ./arch/road/stonebridge/stonebridge_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���ÅIDATx^…AŽÅ C»á�ê¹HÕì;îøþW™o˜Àò›E¢§Ù9$Rewår•ÝñVÙ]ñ«£7•Õ0…ÐRv«ÕNÄs�~Y‡ÎN} BÀ>€.àìkBÛ rb�Ó;Û´;'Ã_ôoàZ Mà2jk"}Xß´.ï îÀyzÿ™��ìï\ê…0MP€A®p|FÚæé´=Îö=¹³ÄkU¼©Óëñ\y›Q8²å¶í]9KœÙsŒÞ����IEND®B`‚IMAGE 241 ./arch/road/stonebridge/stonebridge_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcma R-Í…?���¿¿¿µŽÑÂ���tRNS�@æØf���IDATx^ÝÑ ! C‘:A`‘+V&È1AÂþ«ÜPÝ õç“üd—C J]ije¡7*Ó‚À À7pÄr*JÇŽ¤Ãêé�¶z'@+ï/P5VÖæ+üvà¢cz À÷tyN?Ί\ªÖ…‹_Š %ç½°Q^笴™à‘òßù�‰+PîR­ò����IEND®B`‚IMAGE 244 ./arch/road/stonebridge/stonebridge_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEd3Í…? R-¿¿¿���aùiS���tRNS�@æØf���IDATxÚ½’Q€ C‘n÷¿²0FÜHˆ‰ïÚ¬–—ÜH+˜±3`‹›ƒ DÕDˆÃH¨@õ©ø�‰•"…&Á s’ •p‡kÈ3¬ájä˾%È1ä¸C¬pš?wàÆ²CÿƒË„¾Q¦„3ôZ&ì6ŠÿÚ(¼u Š<ŸgГÃtŽdлyI;n©ÛYþ»t)����IEND®B`‚IMAGE 301 ./arch/road/stonebridge/stonebridge_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���ÉIDATxÚQÄ à ÿÿòUë oÌìºh3hJƒfá^­·ÆÓ'Ï’™àù±”‚ pS€Ñ¯ ‡”áè!3âtØG<…ô�QC¶K�ÿ3ƒ‘¼ŽX0“GÝC'x_»ÌUëü:j†.“«`á,˜Ò/¨«îÄžÁ_2ÔU/õ¿89°…"èD:èm£U¨½m< $°ÓŠ'X€ïD9|4‡ØiE”ã9ƒè¾»H#“\¤ }„èZ4doø�X6 Dˆ\­����IEND®B`‚IMAGE 235 ./arch/road/stonebridge/stonebridge_4.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcma¿¿¿ R-Í…?���ê¡°¾���tRNS�@æØf���‡IDATx^ÍÁ à C9°�ÒÏAZÉ�égÿUŠQPšªçúbËÂH-àšò沕Pd+eï6l%ø!;S&B4Aч·Ú†vÚ#%’O´©½CCUÔQÀ' =NPtÚGbÖ(œå„Z@Å è±*~œ0–¸¥ÇäÅ{R¿¿ôþ—˜LªŠ}õ6ˆYfO¯����IEND®B`‚IMAGE 244 ./arch/road/stonebridge/stonebridge_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEcma R-Í…?���¿¿¿pÁi���tRNS�@æØf���IDATx^…‘Ñ Ã0 õá ò–¼ Pö_¥XX¥Š IþÞåPˆàè!"cªL/H<³phðŒž &êli8ðéHééh°:!õÚA°•¾Þùò�\ÔüX‚íh\Ò×äÛñÞ ¦“Þ¨_9Agz^ì~ «W¯ÊI–椆ÁRü†}�ÃhP¼;Á����IEND®B`‚IMAGE 296 ./arch/road/stonebridge/stonebridge_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���ÄIDATxÚ…’ à C‡kßÿÊSœ°tˆRW/Yý„”ú<IÂ@ÐVñd@ÌÖ9n8È‚¤¹ZÞpÌ(vuGÔŒš˜‹>Ï*y«ò‰n16J#@·¸Rã¦SÀ±‚ ×TŸÊlêP¡ÎnM�ç 5C'{ž+¤ºú€WØ>,n6p¨ vrŒßRªò&Пp⌨?ª˜ðùßb䣣¯v-&ä+ÂÀ¡…^fPVÀ#Ð>ìŒB4ø‰j ÚUÁBÖ����IEND®B`‚IMAGE 280 ./arch/road/stonebridge/stonebridge_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���´IDATx^m‘Ñ Ä0 CõÓ‚éÅàÈ!^À ýW¹«{n/áü)¤‡•RD¤ìn�Ø}Pâv Áè)X©):�7êäh0e¯WäÚqÜÐr }üclìßH9§%{´Ö$ªFõr;XõiŸ°™NŒ’ñ G_5«K2ÆÊÈêMÂá+ƒ¶ôàÒccÍê¹X”‹uúÏbó@nãŠäÈjy6eí�§ˆ­ Ÿ_éÁ0ÞÅÜð%iKÜTÉ'����IEND®B`‚IMAGE 242 ./arch/road/stonebridge/stonebridge_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEd3¿¿¿���Í…? R- 'eÞ���tRNS�@æØf���ŽIDATxÚ“AÃ0‘”üÿË%LMê1ôÀöÅ tí…µPuPÒÙ�ˆC@«”«½(8UƒÀ§ùaí! R)`…äþ…vr}¹Ÿ‹6PðÑ™)äôØÃž+¤2èºD- m¢Ö<ç‰Ú"U%j”`ÔÿD‰Â‚´Úƒ5+Ö;ã½ÿ³Šc>Å‘J.����IEND®B`‚IMAGE 300 ./arch/road/stonebridge/stonebridge_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���ÈIDATx^eá©Æ EC¡ˆtx¸AIþKhö_å]ë'mñZ¬®‘(,$rÊ9§Ã�N×Èwˆž ¢i9™'ðÙø€â�·s�6q~KõTQ€4¥‹#Ýy©¹â{Ý#ý’1¬Žä§°6†£v˸úÚ¸zã%‰ˆöi8�½3—3Oâmß´ñbÃ/µ6^LÜØ0ó|1•e ú:<î†36,¢�Œ{¨ @W6B6ÚÙ°rhd²Ñ’/‹Q4,3Í����IEND®B`‚IMAGE 239 ./arch/road/stonebridge/stonebridge_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE·¢a���Í…? R-¿¿¿Ä™çò���tRNS�@æØf���‹IDATxÚÕSÑÄ +½õÿyבùp\²§k$Ô Å{Ä�H 1!)È YÒìÁaRÑ"Ò¯,M*Z„$ÖhÂæ¿ìá€ÏÂáäl2;¸Ö]ûdvØ»=3›ºÜä)Ì®|wßnstøåŽe˜R‘KÁ{ ¶ª/÷:ð:Œ6øà˜pç( ³j¾ø����IEND®B`‚IMAGE 277 ./arch/road/stonebridge/stonebridge_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEd3Í…? R-���¿¿¿)'›+���tRNS�@æØf���±IDATxÚ½R[!+‚÷¿òb CV“ÁýÙŽ‚µƒF�fÓÌĪÞg¦€ˆ!¨).'vA�sŠ;,â³w0“Õˆ*‘!p[íü“‚éE°å)4L^Ô  0”c­ðÒ¡,‚Vpç çîŠz‡—¹‡R'ù±kP/ê!üxQIØÉ·•„½’} ¹# ÍAâIB Y@è|¦žY<ëøB®‹3#°!ŽõY ¼¯í����IEND®B`‚IMAGE 274 ./arch/road/stonebridge/stonebridge_C.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���®IDATx^…Ñ Ã0 Dµ‚1Y@Ho`¤ÿ"rû¯ÒØI¨¦íd8žŽCôG�aRU2­Ìæì,!0 'h�…¶ÉNì,±ï8@VM̤n¿iøsÎ¥A ”¨ä²)w-á'1åщô"Ò'Á-£´”椛ŒÕß=R3 ÷ùwStåÔÞnhÀpâÔ/§¥~1Áœ†£©x#*C1vÅ´"q1ƒà¡Ø ¤¡P`c•|è����IEND®B`‚IMAGE 265 ./arch/road/stonebridge/stonebridge_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���¥IDATx^}’Ñ ! DmA‚ „XÀ’$6.ý·r®W×ãÆ¿ÇdC°jd &­¡¢bЕ¨»åÀr’ ¢uDz6Ð3ÀJŠk¨!i zè‘»–f¾féè/áí¸¸éÈX�<†Ó12øNÕOÇgö˜ÕgÀÿÖ5ªÏÅ–ÕÇbº­^„赺ÊÙ7-¦ë¦X³m'¤/ ¶ÿ³Ø]­I©{Ûº³����IEND®B`‚IMAGE 264 ./arch/road/stonebridge/stonebridge_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEd3Í…? R-���¿¿¿)'›+���tRNS�@æØf���¤IDATx^…á Å „³BÀ,àÛ@] p Éþ«<›Gèk-ôÄûq|Ñ#ô.ÜD^&³‹ ‹ïŠŠ‚b]´±…3ùtq—é3üá~ÕÚjÜO»ÿ,ÈÈÙÄv¢Å'÷Ø#·g×@¨õãŒÜ˜£…FnL3ÈIj±1uôô6݈‰cäˆÊ$¶‚¿#ÑK ¤¸ ‚A²˜}÷ð`¨Û2Ä����IEND®B`‚IMAGE 272 ./arch/road/stonebridge/stonebridge_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEnit R-Í…?¿¿¿���ÿ˜¹¾���tRNS�@æØf���¬IDATx^…’ Ä0E]!Hf€’ ‚. üýW9jïÚN ç×È'D0¸0sÙÜ(ÀpÏØ$�ŽH�€´ZTÑUæ�æLÞZ€jâW‹ÕJ:T4@9ÀЗåÔ{ßãðyöUxÖNe_g=/^{ÿ}ãuFÐ{Üw]éX9òr,]¿ó§c’Àm:æš&‹!žž¢ ªÖðÓb$~NŽÀ÷;D ÛVP+&qô����IEND®B`‚IMAGE 226 ./arch/weapon/hammer/stonehamme.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V¡¡¡aaaÁq8ààà!!!Í…? R-���ï§_@@@‚B'¿¿¿ÊÞn���tRNS�@æØf���fIDATxÚíÐ1€0 ÁaCøÿw‘-D¾–W‘vŠSÊè¾ ²OæÈÀbl•w°^¢6Š’ \ˆ¥ -|ŸÑ[w¤Ý—bFÚ}©9Hº¿=„êq�Õ¨~ÿû‡wPož›ï¢����IEND®B`‚IMAGE 609 ./arch/shop/store_alch.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���'PLTE������²""¿¿¿ R-ÿÿÿÍ…?ÿ×���€ÿÿ�@@@ÿ;^ÿ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ (‡`;Å��¦IDATHÇí•Anà EdÌ”*j7ô.ê,q‚TÙw6(Û¬zËÛ¬ºîM;¶Câ^ #Ë™˜ÇøÜu¨šØ+Àé¨ô:@‚«�d…_ØP@ îåôt†ÛƒØÛƒù8¾ °Â'ÜK<õûÓH€ñʪ²‚�~èÁ•W  %ðV…++0°ô“ÈP}î&?.§û²‚•ú% ç ØRÀQ–Á Å* , î¶ Gž€œk`ChfQØÀ�.. ¥ÓcÀÕÿädΰ(°å‘¶zõ?šaµDYÈCìµBd.Ì,õ³Hcl_^‹ú]ª3­Eÿ¦£ ;©@[ÛŸÿQ•gÃõ:’sœ§y’ë¡´‡Kœ&iâÛ|¦»¯Ž´Ïî¿�ÓL߀8F.11Â@.A¶Æ([w} ’ĸo�i"ÞàœùÁ*€+Pà&ã Ï�uÀÀ7# 4´€e M7¯ê @¼`ð€TÁFY¢(g•ªð?`ÓÓÒ¦¯æS §õýOÁ#º? Lªë»×—Ù����IEND®B`‚IMAGE 629 ./arch/shop/store_armo.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���!PLTE��������€@@@ R-²""¿¿¿Í…?ÿÿ�ÿÿÿô•ý���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ  ë¾õY��ÍIDATHÇ픽jÃ0Çå7ð¿ÒÑ“÷ÝJ™5øDJ;‹ ‚nʤ55OÙ;I޾B²t*=lct?ýïN'‰±?e–]f R�@zƒA4i+4ïIâ°S2¬÷ªN�Ý5Aa«d ´\‹5·,%ÐíoA Q¯—8ÂÌ l• )|l ì7—°JÍñ;®³%àKèn’] pnºÏÜê8*¸©6€“Iíf ú81‘DÀ2�¹¼X<P¨f@À¶€‹yQ€» \"à\î?ž)@QEœw…B `KÈÜxƒ)p©½À ø%É�ŸùÐËAßkæR… r¯™‹‚ͱT€PExXÚ‹b?Å�Ç, ÈÇï†v0¹Å§bµ"àdF3™iœ¦iÌ€ó™ãÈDžÓäÌèôú!`Ä‰Þ :¹=æÁ+ØÄ$÷K;?Ì‘U-_†±¨ŽO"ÐÙÆQò+‰¾^A`„–£KÐ+j̼Ž=ÓGZ ·Àõ�Œ€7º†Å¥Æ=Ã^®`IÑm*7£²Ð…ƒƒ¡>Q‘ñR?¨~HÖ Ó^Ôt'{¡bÿö«öƒÙcS®����IEND®B`‚IMAGE 1687 ./arch/shop/store_armo_east.x11 ‰PNG  ��� IHDR���@���@���·ì��ÙPLTE��������°B$P)" % ,/ @@@¿¿¿ôóÍ��Á��º�®`o��k3��,/'• ©RSRz\semfk�¬�­««/ H I€ O{bc|||}}}~~~el\rªRy Efmgk��¯deef, [r[t€€€�­¤bn D‚�{{{aQI'–��twww Qy0 :‰Vw£ PzTw =†hXP‚‚‚„„„………““†’’’“““˜“••™˜ƒ™™™ 9:ÈÇ®ÈÈ´ÎÍ­×Ö´Ø×µÜÛ¸âá¾ìëÆ*”+’ 45 GHOP G PQ 7‹ CC$— 67&–€A#%& N{ KKefdm¨¨œ 99 :; I~ �®�¯�_`¤]s`a^p^q^rbb E‚ EƒNN{?"glhjhkhl GG��› >† >‡ <‡TxUxVvcofC3£fgz>")) engh[\%%(”ijžkM?jOCgVN›T1TU+“ ?† IJ @„ ;‰ DE'( @A AA`qQz ?@ cm 9‰ L} §u< QySxSy § 9Š :Šgj,,gh AB60-eF7��… DD CCWXcdh5EEDXv]]]^YuZs|_Qtttuuqvvvœ!™"˜ NO F‚ªªªµµ˜gWO Bƒ LL C‚\/ zzzóòÌÿÿÿ'''Œ2x���tRNS�@æØf��lIDATx^í•ã³$=Æ÷$=ÖµmÛwmÛ¶mÛ¶mÛ~mÛ¶ß¿`;“™JeÓw2½÷ÓVí“™ž/ýürž“:“:O‰@UíüV«j±»ÅjµÙl𤵣ÿ­›�šB²x�K�¼Í-�b&µ~‹å?äß�Æ »¢O‚ÀàÀ`î àp83úFØ,6R€{÷FŠPå5»ö%||X‘ý‰›. nu‰<jžv/éª+wîËÙGìlQ#@ÄP¯EYÖן¾s{ðª‘Gò³åñ‹(‚æ ûî£á¥¿-¼¸v¢ �Í €‹p3rIóW& SŒÄš�!roÒºüÙ+ÞhUE€ò€ÂE@å;ãG¿´yåÔV i(€?…û‰ƒNÌ7úô¢J'ï(˜‹�û{Düläò¼Ðë'éðâçUO)ý%s[hÁÉ{�vÌG8»ñÜ'Y¯-Ž?8à$= �>Â岘ÐÆ!ˆ™F€òØù…Íê!‹ÛuáùÕ HÒí±½ÐúÌøòM)9~Í`>4‹º~{‹[wå³ F ˆÂ“ù(6¥ri„tÄ1k÷µo3ë.jâÆ©’ö€7êÅ‚ðæ{rT�Ð{ä§°5"<"¼ wÄûU¿6AÈ{/øêæ#¼Õ²õ©«!. öû+ì^ö€EøK…Ä<×°81 .»¸ÈOá÷è ­ÞKò*»ôÌB®éÉ—š{ÈÝ :fÁÌìZ »|õ� Ø“Þ zfA@€|Äì  (�úf™‰[¡½³�ÈëŒ)BÏ,P;q§†ðãØæL¬ÒS î ©|Ÿ8åòy à”~œ ýÀö—K«÷ú{Àå— ´z@Ùòý*XN]šèïþž÷Ä tJ�( (˜—1Ä`2™M†#¾³¥MƒŸÛ48zä¬JQˆ›¿]f“Ñl0ƒ &C ¶ÿôåßm3¾ªßá;ê Ô/”0À€n_tþ1=½}×?ìÚ� ¿�BŒ&€íý:Ö¯ÈHm—z¨ó �̉ÌŒÇþÙ¸"­qÚëËX8 ˆ�Ìn�IÔ³Kwk§^;X�½€þŸ8¹÷?¸F€>ñægz2Uöˆ\;ž>����IEND®B`‚IMAGE 693 ./arch/shop/store_armo_fant.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���0PLTE����€�Á'''P)@@@d4!B$†Q›[-Í…?¿¿¿çß�ÿÿÿ���ÜõFB���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ  1ÍgÅõ��þIDATHÇí•¿KÃ@Çó”‚P\;¸q!or)Åÿ!Ów‡Ž™2¹HÁ¿Âíð ƒ[éÐ8R«Ïww1÷#¢Nâ—ô5$Ÿ|ß»÷È%Šþ”ÐS�T ö q ø³‚ÒÔCw®ÃîÞË@|zÇ…5˜.xé´ÚÍ8X‡[.\@&4ž"ÐUqÚªÅÕ5ØñË­—!Ià–s[ÂÙÌsÐÀb¶µ]Ú=<ºë” 8çWÝÁE�ÕI¨ÒË€yT'06@“„š§bŒ™3 ©€Ö@ÝjÍÜI}퀃@ M¬cæ” :øÔAÆÀÔ`Îè�½U¸m]#‡h+™s¿‘šôÔ(ŒASp(Ìy0«¶r¹2ë“v« €IzÃT@ë kì;€]…=¼·æ£‘Ž\�;I{_¼þ hòP¥HÆFé(ei:LÓtÄó�I ¹P:ê¿ Bhäy>Îç­ó¼ð�•!UÒ)0‰—A5zqìhùzX;´¡ð÷ʲÉÓê˜1àBêù@Mèêh²&”sQëPâÆYZ )VãëÉ:/å`³±�fXNnÆk¶ÙƒYô¶Ù:« ÏX¸&{ÁA¹Ã4ù3–°l ¼jº»­–™.exOê�„êœ6áÅï>ƒè_¿ªwâf—ÖùW����IEND®B`‚IMAGE 629 ./arch/shop/store_bow.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���!PLTE�Ì����@@@ R-²""¿¿¿Ú¥ ÿ×�ÿÿ�ÿÿÿÑñ9���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 3ËVæ-��ÍIDATHÇ핽nƒ0ÇÉÚ‰“�£nÉЇè ugpå1 Ö;“g$¯}ƒdõSöζÀ>¢TÝsBƉ÷¿°)Чe;+ÐsËÔÜ€;…>W8B® *&ï·Ww¹¬L•ºã7hw½\‹8mÞŸoo¤–!ÌétL›PÓZÝfg�=$ÀÁçnY } ˆÊÉÕ0‰Qú4‚¨ÎÐ×XªwÇçµwîiSY¦¨QäðóšÄD äT{… �`¢ÜW�Bž óhþR@�vU¤m @r…´‘`Lȼ"TÁ€¨`0á½¶:f.& Sœ3 x‰f“Ü)`«cX FÛU­Ž þuÛ+«ð¾ìaR«E-¹•¬Qñ%Ø.<ÚþL–Ûœí\3Ye•T‹•8Ò­UJIè¾,ÊfO@"` ÉH¡ÂœæqŽE°�¨"¥Â5ÀŸ%p7cÐ.vÆ}ËÉκA`îp©È#x`øA êÎ+ðâ¶H´ñßfýhY8Wä�ž+¾´²cð0[4Já𠽡¥`¡¼ó) #{}Êç'2µ_õ\_n¹€V����IEND®B`‚IMAGE 759 ./arch/shop/store_gems.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���0PLTE��ÿÿÿ���ccc¥¥¥½½½c1Þ¥!ÿÖ�ÿÿ�{{{B!ÿ¥�„B!µ!!BBB½]Q;���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� ÒÝ~ü���tIMEÛ6aLÌ��3IDATHÇíT=nÛ0x÷êWÒ0›>@7!\:²ü€�܄ ͋÷ E$ÈžÁçR ³ö.:�·ÎéÇ?¶eíÐ'ð#!=>>>,Š02gõrðJx™pÑL+,Ë�Ó ‰À>7ó&˜mÆ“ð›N&¸mÆ&¶/\)×D™ØþUM0cëfÒö%t€öºî[úH]PÚ®›ÍïSÀcå»@àkÛ6›3À—ÊweXáÞÞŒøã&+0ýËÞ<D Á»z²0RH„ãO{]o&wyün×õ´@ ܶu7H0öfVA£½›õ€Ú^Ì*˜µÅ~潋!$ÙL[ØDÂñé…ãó[2á‡ÛDHr."à; ší̯ $_ºó³£ÎÀ¢ÏQç¤ RºPz醨s ôÖ“RR¡¢N ë{úB*ÎɾÈQz EˆåW— ÏYAžy,‹õì-GQkTþ1蛯ôT:Ý/W¨•ñ^úF•úKâVEŽZøy&N 5h}ÍW¢Pt#)@ a¤APZéöV*+?Â厸:_³F›U{à¸z8E…X»¬XÜ3ôºÝ ³zØ{Ö^�)`É‹x}{Ø_°ò#å F•Ò.4…‚Fú°«9ê"ŸMö“}qDˆ@)¤$y}:Ôü B•áS(§<R ,m&b¨¬øR‡tJž0T����IEND®B`‚IMAGE 763 ./arch/shop/store_gene.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���*PLTE�����d3G$aaa@@@¿¿¿¡¡¡ÿ×�‚B'ÿ¥�Ú¥ ÿÿ�Oö 3���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ !‘£¨Á��JIDATHÇíT1nÛ0o Ú²¾íMÖ¬sBè5 R{ È3:)P!ðâ±cÍ 2{÷r—~’¢[Šºvè#øI@OO=ï_†ïž“h2úAøŽ0‡&~G Ã -$ñ¸ "âþË”–7yk’¸oböJ…v@Ä}³/¡”ÖáI÷Bš=šÁ2qÓã%fø£0±Œ?.Aߤ –¢‰W _¥4¤/ÉSOÞN°WñÜó`-d÷SОB CØü·Ñbv—»ïÉ28ÂD‡a¶âiTá!KžG=dLLGø2éÅÐÂ~Ìí‹‹=¼&ñ°……%`’㠛ߟyh »oblH€d,\"û‹ÂcŸ“üP8^Ÿm›$ë<Ðú²=õÂÅ�HI%Ô ëºýo¦ÂÅ�P#E4![;…c HAF-AêjM²uÒYè–Р-At påÑþÛdz'Fo9²¾g¥Òm_ê®+¶}©òö~YS\·¢Ö]WÅëBqéÛ€§ºU¦WfžV<uWØ]*¼‘ÔžR\ÁÌrbu„{¦XsyÞ zVLVTñÜ]³Àø¼9C:?HåjEy*‰ÝÙ†jÞœÂýüý%–°œ A•>ñ<CÈBv8ŸxŽ¥z¦4+ß÷ˆš3 %•X*3cçU)óÜy`hŸÚ§¡¡…«]@›t:ìz…@ù!pU:ìšPñÖèÀA4•xÿÑá¥ì²SŸ®äf����IEND®B`‚IMAGE 824 ./arch/shop/store_gene_fant.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���HPLTE�����55óOOÿ×�` ¡¡¡t!�L�ûƒƒÿ¥�9G$¿¿¿))) @@@Ú¥ n.d4!QQQP)ÿÿ�Òó :���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ !3:r•˜��iIDATXÃíWY‚«0 ea‡ÒYïÓg9èkY~k†‰›b!Ë&¤oK Çlÿ Üx�p;t¬ãÛßö‚\ÈF�®¨�¯�;¢ÄúþVôy°Ê` ã8¢(zAè‘fàÀkã(¡?øÉr€!॑Á¦›àÉÀ`xz` ž>-ŒˆˆF�†ç|Å|Ñ`ÑøÖ‘ÁðŠBñ],4®1­ÃŒÖ `Ð8aÐîÐ Q`Ñ�Þ5Ô`ƒŸ™d UÀK 2:K“>*œ#@°Z…C†”'�N3ðÒ‰†U8­AèÄö¼Ò‰fGü‡€0°®áã|’�5hœ28W„؉H'ÚÃä [ù,è¢z¶LÁ_d  �犠Kê#»ßð\Ôñ@y<µlQïü¦ «çtÊÅÓÆé_¯Ï6ôò‘â‘xÓm„ÛbF+"¥"+#ºÎ´[¶)ă~Z…nË`·‚º=ë:]ÖÏîÒ$¾“5©®m=Ÿâýt2ßé[OqŒ~6¹ðV^ÖÌ'‡8F?\m°DÉÀÖL-p¤7qç&7|¿0š�œswcðÈu™3@ùY"|¿Þ$óY×J˜ ¹¿?ñøˆsUY~•eE_d•UYЛ‘¯†i“'Ä!Á_¢¾ÄhàÒÊ`÷»Þ¶ž<M`šcxõYÀ2ƒ,ž­L¶ÁH0yÇ9H¼( ÿ %X¯¨ç¨ {~žC5)P!– oåMã¬ú‰ ªb r€Mãäý”( %XÅïø­³(3Çû'âÛRûØÄOœÓC> ����IEND®B`‚IMAGE 994 ./arch/shop/store_gene_west.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���*PLTE�����?[%d3eOŽs4¡¡¡Â°€ÛÍ£ô®üÿÿ¨ÿØ—ZÏÊ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ "Ä?‡¿��1IDATHÇíU;nã0µn`"1Ev— Òg¡ , n\°Á-\¨R­"„X¤p#ˆ¥[_!UŠÛ¤Há`aØwÙþlÁž`IxHØOóyó4ìJÈ÷kaB()܆›ìz-µlÃï eF›>z@;x8€ŠjÿÚ®·Pc¢ª¨ô¡ ¡}§ƒ‡dReÚ?„‘ƒP%dˆI&ýCÒôº×º5´¯§$’PBµ �ºzcøMßáŒFÿ°Ûaº£ÊF…íR½¨")“ÌFÅü\ªÒœUÁÄ¡Êdˆ¡}| £ó�Z!†ôñ!Ž/3‘âã1lýÚD*к*’²Ø=2[²ŒþI{Õ@y5ÔV€,£w)l¾À¦…˜°“¬Â¸4[ÇÂA´oÔûאָӈíNø{ñôJ½¥:°ĺ²!’åK5ýÌBꎭÁiÃVoÈ$&QüÑ["\Ë?â ¬&1Š?\ýV+f}{Õàa ÷9,ŠÅœ"µôGg q!~–bWÑ zü²¬8@É‹‰ˆŠ ²Þ@N+`2t;ËzsD-%0ºí‹Þ«§×¨¨“°bË—˜ Š: +æ°ú]&QQ'aÅ–ŸåAEEµ$0¹d0…¾<grU“'E¡ïî² YîÄ?&LR–m]Öß$—Š»ærÕÎÃC©Ø°&PHZØMJRÒÀÑŒ‡«RQ:;nú6­›:­Sø9Ååå¼äŠ÷Å›º Ò4­Ý‹Åç’·� ü†¸ü˜Læ *Ÿ¶[ªÓ/9Žà궤‚Bå×"=`~ÇuBðCL F[ãßm�0®ãŒ Æž„„)?C§ žŒ=à¶Ì4øÖ¸Œ»å7p€;®ùqŸÉõqÏúo×ùü>É„q9;n™˜=o©Ãx€œ¶‰«#YdxΆÙó†0Ùužßä÷fœŒFPf|¿ÝÈ5˜¾Å[‹�¦ÇãQ⨖ÀX»²7L— ééCÃí­E�¾žÉ³9îT{ßÜ÷z§9îU‹�%}ßý#â?ÚdôÅõÞf¨nªO����IEND®B`‚IMAGE 886 ./arch/shop/store_magi.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���3PLTE™*���aaa@@@‚B'¿¿¿¡¡¡ R-Áq8ÿ×�àààd3ÿ¥�!!!G$hà {I´���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8N–~��¯IDATXÃí—Á®³: „Ïg;qxÿ§½ $JÿæšR,•™z< ÿ&ø Àà”¥< pJ$ÊŠ@'V‚Â<)$ž<Qø–�£ÁŸHXžKÀì7 ˆü$“'Ú¤ ú½èhÐo%�S#PÓï$À4 Ýz¦È7`¦!m5šhÕûƒÓ4Lú¸5^KnH`š_Jh0‘ZïJØðC*]ˆZ妄>•õ«vS{|%ˆvo8þ˜ŠÚ½µÀ†O¥U€ÚÍA:âKéºRXþ8`ù>—À¾+|;N%À‚RYºÂyœJ€ ŸV|G9 N$� >”Òu]åìÉ |jørQÁ§`dØáK¹. œ¸�cHW”O€×òèÞWpU�ŸM„ZÍ„#¾\G+&"°IX&Ž«Q8n2`¬fb" ^J)̱'€q´QLTT€œs0ÏÌó¼\€™8'qWU÷Ü÷9· €AÅ<Ïó¾0Ž£‰©ŠfȾ+  ä’À4‹òzU<÷»|ÀÌnãh&¢jê™W­ôûÎ[øI`"êJ­•ì=7âÌÀsFÝ=NõvÝr‘ $ç>ç¾Ï ¢êËé¢ÛuËUù´@V 4£"§J»îò ´Y€{ÈQ÷Ð¥©û[ïôQj­T#U%¥”PëÀ›Dt%–HlWE¥yxnºlKÔ݃ÀUþŽ‹Þ÷¾XಮÞ^]vc<Úº òf©H Ë–¨ˆPk(Ø= FÛVAJ)‘û]çÁuMš�Ž›HQ5Y~¦ï3zœœm€N:ÛØ° ¥„gðã䬴Y`¼èÚ |éĽUÔÜ…è€òè],„?}Ÿ»*î[Š¿ÿãAüŽy/u¶i����IEND®B`‚IMAGE 1105 ./arch/shop/store_magi_east.x11 ‰PNG  ��� IHDR���@���@���·ì��MPLTEA�����›B$P)��º��Á% ��t,3/ /—�š~|NôóÍ" ŽA$, GFoMLlmkX�º·�¿¼&ÿü�™���…���c �‘™"!��$#� �ŽŒ;+*�,+���#"…%$„)(‚�,+€/.~10}54zGF�:9wf5CBrDCq��WU�KJm�–_]�RQiVTfdb�ge�][b^\aqo�ge\kiY •nlXyw�omWzxPVT�€~M„‚J‡…H‹‰FŒŠE’B ž�¡Ÿ�Ÿ: ž9¡Ÿ9¨¦4®«1·´� ”¼¹�·´+º·)À½�»¸)�ÅÂ#ËÈ�ÑÎéæ ûø�� ’=ü¸���tRNS�@æØf��²IDATx^­•eÏä0 „wœ´Ëô2333333ßÿÿxëK_y“´I{ºiÔ­´òã»Rk"ü‹j6`¥êå�ÒŠ À¤¨Tß°ij¥«�0 ¤¢”|¹€ µÑ \ÌUžAIEŒ �¤¡²noEÐ¥ °"èò ª;ð#(Tt:TÙw©(‚(zB[P ¸ØA BÜ‚8€Á2p“ˆfz¾Ù¼�aî÷þv¶Îß½ÙÒyâ)z�‰h/ˆö.¼zòàá÷õthé8õΜ“Ö³‹‹?Šø�Â&³ ÀÝùÏ4÷qÎn;Ë S_ßâÍfÈ  •;õ?¿Î¿Û©ûâ щ~¿û‰ˆÞ¦=¯eàG�×¾ä‡Þ‘wÂO:™€.Ö}Ø2¾ TÑîÌÑô—ûÄÚpõe¦ŽÊP$Z³;›ÿ¯ÛKüpéѲé/Lÿ›°P¡à:HýïJøuÊDð¾+Ü#î@"ÈwEêCÄDÈòå¨2 e1?0…Ü-p©�Ê:!®‹ƒø"Ðp· Ýà|Z"ÈP(Ç Õ*�‰Ê~Sd�$|L‡¤ðØø&ýŒƒ° `ú'Ò‚ ! ã[àÜIHw `f Œ’à±g@ð[$aA¶À”Œ+-⬕åDÐÐZIkìˆhT.[àúÁ` Ø‹=hc1 �¹€ÉˆL}ÍÄÏ©OJLP"äL .�™Av+7Á >B @pUr‚2D$ÄAe9�g¬zgØl·ÚÍV}Ø©+[Z£6¦ìIÉ­Yo›õÖSÊþ“ë〩 €œú!:õæ_@ ^�Ê’�Ú °å|-´3@ÀÀÿT”Sÿ£¬‚2¢%°Ø����IEND®B`‚IMAGE 1096 ./arch/shop/store_magi_fant.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���lPLTE>n���Ü""O¯]` 55E}LóOO23vnoqÑ|–è #|}+U0ûƒƒÿ×�3WX#C“*L¬"Yt!�.BBÈøÎ333)))FiÜýÃÃÿ¥�L�n.d4!+JÍ‚B'<“2���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ !­©2b��HIDATXÃíWÙ¶¢0´CöÕ·{ÿÿÇ©N¢Â9ˆó2QHΑªTW5¨›Í¿ôÚŽ/Àçó™Úv…‚ÍpGÐÒ<Ãm  XAàáVÁ‡$i€¯)Á¬/¤ü®Rê«Hªu%t½BJ¬)èBâóи»Ð)>-è]fäRŸ•@tŒvu¼ÝÚk¤¥ø ‘°ù±ÞEu|ÙZ(€n΃%%@ú‘·¯›mZR©²\\Bš,¼XDXÒÒ þ¸‹ŽuÅp ËœYÊ…%P¿}œm/aØ) ¹¬‘èyûËÅ) Xv/Po,>ìRXØH0°>Fȯi² BÎÑmì_ö¹Ê§éè  çÉ×d DÜ>uÅW°Ý†œãô˜,ý[{|ÓáC¾tbÐD àåüú l޾râM%ÈããßÎ(x/¤$4Mç€ÍqF@;‘Q‰G7Z0ãÛv^Â3Üòœâ¡ÎqN�½›ež+zÆ·óƒž à *PJõ!¸ŽsžO)U®µ ²x¶zÌŒ1ð•¬t®qãeOÓÔ À¥{ð›Ÿ_ ªJ´VÆA`Lz:¥Å À2>ÜëáϱŒ?äZ ¡ƒÔØýMQô<t ™"8r%eƒۭ$S\G¼‘ðyô rD¹0ÝÊ’®#f,|!ð~(©HN´`LEØOX(Œ1þà©›ûµRè4½"@7(!Œ;xêæ~-½G »(¥üÁS7ãûÈ­'"†ˆuÚrX³]·Úÿìy=ðÁ)%Ì~–`~¡Ý÷ûßýþNf,à=DhÅzÜhð/HPÄ!ððÜé"H±+Ô:X¿ ¿ÿÜÁÐ…6C­QirºèÇÝÄfw¸Ž�ûüÃ'R£6®¤Ôy€àæCIPà»T)ß,ýxîc›M%sKQè€þ`Pz9Ï~w vÐ:p €„\Co®‡¿^¹ž:ÇMÓøŸ±J jfDÉ!:§k Áùò@\Ã3+ qN,»‹z@¡w  UÿÅŒw YûnNܧ›ÿcÅø 7ˆq£zJP����IEND®B`‚IMAGE 1072 ./arch/shop/store_magi_northwest.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���fPLTEÕ-���­­­ÈÈÈrrrÿØpppzÔz|Ô|LLLa½aåååÿÿÿNNN+M+<h<?k?IyIÿ¨-Q-P’PW±W)))ˆÜˆV°V0T0—KšDKK : u, FtF7#R#���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  1©G��6IDATXÃí—Ùr«0DÓl0Þ³óÿ?y{F›!!NÕ}Šb[Jœ>ôô(žžþÆÿ¸?Ô¿È8¼8.›Íæ¶y „ËåBýíG�TàPÿ àÀ+¸Ý¾hF]N¨pÐ ôðß�$ãÈ;€µpê‹·û@q] "�PY:èôÎÀ"@Ôµ0š¼ô͆Mª¡ƒ/îèuS7ç²D —@b×:Ðãç¢oÎ9 HªõÐäª/Ë\- J°:Õ A�¹T6IW;€ê›’z:ÐX�Žk3ðz]ôyž7$X›¦v¥xýÙêZbHªT\¬sàôâ dâªTÚ¸Ö×k¢ÏåèÕJ€Ó;¹#À}hW9À Nîõº–øø8¡è•€ƒîR gó€“Σ ‚^îz°è� þ„óØ^z‚cl–ÔŸöXÒ{Ä¢žú¢'] üÛ!\È<aÙp…è÷ûw È¡©éUpüs€T¿×Ïó3nçLÆN/ŠS@Š ^Ç3óúÍM ˜8öÞ'Àß…n×ü¾Â¦E‘aN/÷ÁÑËF�À ²,º$BÑcqL�4àA® \Ð.Œ!€úkq¥>Ê¢È(=Žcˆ^�Âp¿à$Ÿ³€,3&"ÁÄÛí@ß*±u?­ÿl±ÃHe Äj 6ˆþ$h{È" ˆbfp<¦ ‡^ßÞAäóÖ´�É/*"㘦U0á=@&â~HYÁ+Ær $Äãß2…¹[[;Ó‚,Žiž-àn°IbÜ[¦0wë$Á} ²Ð‚ˆ¬µþ-S˜ë™D} >µñìêR÷º2ÓlcˆaÉ3%!ñ qWB' LZóŸi2èú…Uý+äË0ßÚõ²n¡µ8�{ð4¸˜íÖ¸HØ®¯À를 gAìòa x3¶~³t ÉŸ(_ÁàR �9 ðöù&gñv¼d}ÖŽ®%®Ôð¦-HÆ;§Û@3 ( ° -0ã6Pׂ S€´ ‚ÓÇëÏ¢žÀ„"<ô8$ À�¿|¢úåCÙß³é#ãàTu³ Ãêï����IEND®B`‚IMAGE 1017 ./arch/shop/store_magi_west.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���ZPLTE�Ñ����|uFš“d£Ž[¼¬†ÔǪÿ؃o?�ÎÇòÓWQ)ëåÕ\L$ÿÿÿ�T\�ÿÿ�w‚�‹‹´¯Ž3)� ª�¼¼ÿ¨�^^�îîšD—Ku, hà,mdñ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ  *M‰h�� IDATXÃí—é’›0„w$8Ía¯7áý_3=# †¼Uùµò!¹ìþÔs ?ãz'õŸ<úÏcx>Ÿíó-€†a€¾= Ò¼èßôx"‚¶= R�½D ÛŸ(EN=ðþ—ËI�• &½3p  t;8 @´úŽÒåIÒ¦S«R©éT¸Í¢"ü TÚžp�qÓ0"��=ç€Õ 3º"÷×[©”µê ·{Ó5Ý=Ï)—Ÿ „–]q û¬ïîÞAi¹ŒG0 +DŸç…·ÀMTs z&0 �ì®Kuȉ¾Ë¡‡ƒi£ÈÁ>Àë±;ë‹¢è@èÃpG_Í8ýÝš†ÓðÜy°ë€ÈéÙAŽ0ØCN}DpŒç>`ÒKX_D<b×úÎéÜ êÃAæ ûˆnäõ÷X¬É)¸|¼H�‘^ä;g5.r(®–jbÀ¿õÏV´2ð¨kº/ÿjã'¾0a°¶®3ÚÒóÿàâé �€²,#šB€)ÑÓîX`�Cä’Æ ¿Õ7èMfŒzš¦Äz0ÃMø¿o²,I�H’´ª"ý(ÄÑ=Fÿ>Ò…ú00&²�ë‡ ¡q†ìj“"‡%x˜õã „ßÛ pþLm’”ÖÒ"‚í¾‘ôƒE[% g@_¯Wÿâ)ÌÓZ©di ó(J©´¾ºOažÖZÓk ²PJ)ÿâ)ÌÑz£f.±O ‡=˹—Õue`]‚*%6Ìù´ h¿`÷ô ÐUV%Hñc˜ ºy¡Dÿ‹øË °]Øõ²i!±8�jð±¸$U•¸p²'Ý×sx WAÊÛ'\ü*ß,Ó‚ó” : ÀW}ýþ⫸Š2Ϲ‹9�¥g‰+ô�|I ô²s¦ÚÈ€”À¸×e焚JPÒà"§O_E3%)0ôÖí’/€„è›wTß¼)û¹7}gükRŸbIã����IEND®B`‚IMAGE 572 ./arch/shop/store_weap.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���!PLTE������@@@ R-²""¿¿¿Ú¥ ÿ×�ÿÿ�ÿÿÿá«���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ 8Ð9ð��‡IDATHÇ핽nƒ0…“ªÀUÓ­bìå"EÝQeÉk”ŠÉ³$¯y…ŽyÊž Qâ{©Ì ä?Îý1˜Íæ)!Z¨P@§%-UZ¤€…C'�³æ`Ê|[_ÊÇßöU¥�å°“Æ—‡ªîÏgR�ÑNŠÒì@]rì0¦€)6Õ÷ÞÚ.�@ðA¨¬V‘FàF)ƒJ93°ƒ6 ø¼1°H"ê5�”m ƒ´‘äý² ¤€¬ƒ°¬BY¿V…_«­Î-æä9­En1ñYq’™ÏWCÔ éÞp¹ ÑEgÝ-F> àýÝ4Ñ9gyàó8ºXˆígÜü<“£�^ RÙ~†‚Ø^|>Ç ù&F"¸Xë0G¸[˜@ý yP3ÆP÷¤!†¾Ž˜ªO5!BÛ¶8]�”ÇÃø¼þ>€æv÷‡Ð-^®× p(øé' m�îb9¦Èâ"·i™k@së OÍB‘Å?¿Þ²ïïBñüE¦ú ÎúЈ$����IEND®B`‚IMAGE 916 ./arch/shop/store_weap_east.x11 ‰PNG  ��� IHDR���@���@���·ì���ÞPLTE�����B$ƒ��`�0��›ƒ� G$000P)d3 R-€€€Áq8ÀÀÿ��t,��Á‚B'% " ��º/ 3`��ôóÍ/, ///‹��I'L&†hr --- ��…" R*Z.^0??IFB@V>4g8&DDH]C@PP[ ��cfLD^VY$$$}oˆ˜nt@ # ="Žœ’’±™˜µ––Èž—·§›Ä´²å¿¿¿Œ��F#ÂØzA���tRNS�@æØf��dIDATx^­”wã0„322„S<fffüÿèV–.ŠäÚ–|7Þ''î›og½mgR˜¢Ö©�×]/0wd�&€.'­æs°v×a¥š_&@"ð|ô’~s`„Cÿ~FK‚ ˆi ¨k‚P#$ö3ø™a0Až @À¬ pÄÔ€½Êùp‚ à  ™@!èWž‹»™À!è©¶9/#Ó¶Œ«õ÷�£Õ·…é ´,ú£w 0}Œ—™ànA¼ßóBÏÝB~îè+/Ù` "@(qSwñC[C¶Í=*/<ûE}ñU<ï&`j„n‚0 m¨ÚíÀg"‹ÿ.<°îß‚™ lË7Œo!Í©(ˆ· v²ù?lÁ÷Û-¨µËÏüÜñ“žŒnÁî÷p` V‹C[€êþ-`m£-`mWÝÿ²¿­º œúS]´¬„î@d—2X;Ê|‰Du*3³ @‚$aº–Ç«f³Ý4ÛåêxÉt%I“Q¸ÿˆÄÔÑ,7«f¹]qÀ ÓÈýœôbÝ?Ãþ(zÓt?U?‹O �Ó¤�8¢ª�⫯®ÜÛº¶°‘�ù ~‚ü&£�Qšž§o¿=-ðàÆû[Ð�VŠ]~óõSUDn¿Kï`æ¨O¾¾ö¢*x*W�xùøáoògà�À5@ô忥»RdYY–Qæ<Á‚:WE DYDL�deAnºeÎHÔ7«P–"€»–þí ‘ßYªóDYvv×þWØH¿����IEND®B`‚IMAGE 611 ./arch/shop/store_weap_fant.x11 ‰PNG  ��� IHDR���@���@���XGlí���sRGB�®Îé���-PLTEL;é'''P)_/;d4!'3ײ""B$›[-2ÿE¿¿¿ÿÿ�ÿÿÿ���^™B¨���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ "búÄ^��¢IDATHÇí•1nƒ0†9¥ŒQ%†°½-KÏÑ,20$=Þ#OH³t*K†îGè RA¤Ê(´ï }†VáÙUh¤v©úƒŒ…>þÿÙÆàyJY@e }hôm•¨1@„"ÇU©C`O况�þø†;ˆ0 ñ*ïi·Ûõ‹hÜpaÙO À¯zç†Z ¨F=ï¨)YBˆ÷¨0²åóp làŒC[8hƒ¾SÄ…CÓÀ'²• 8£¸ÔÁ1¨.vø…QxßÄÀb~�g¶¿jeËÚ:–q¼”«xI]V’LHѤSEðjMRë%¤ÛµJ9 ¥\û˜’LK0À!°ÅP*E3Í�Y‚dÒä(eò2¥óB'8M‘c�ÙÍì1€¼)%}8ËP«æµ!ßÙC¶PiñTÔ¥ØïO�%äH¶³íu¶MÑ`â½íŸOÐÙÂ<›nmxýŵ2‹£ŽT¶N©[“{ªµ4€<R sPW[@75ЖÐõéæ¿‚¶„ÏwAxÿúQ½¥lì£ûnS^����IEND®B`‚IMAGE 206 ./arch/weapon/artifact/stormbring.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷µÖ���{{{JBRÆÆÆÃ†ª���tRNS�@æØf���mIDATxÚÅÑAÄ Ð>™ûŸyJÃf27MJb\¼b<Þ-6fž=Î2º­‡Ýg×ïÆ1ÏríÍùVyœèÎ!Û›ùÉ•ÜÌ/WzL_(+Ò§ÀàÛ€—ë½^ÛyݳüsyE»þ)ðëS�Çóõû€t¡öD����IEND®B`‚IMAGE 396 ./arch/misc/Container/stove.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���!��!!!>N\f*”k!”JJÿ¨ÿ��É”Z”””ÀÀÀÿÿ�éµxµ”µÿ�ÿ'^¿���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���ûIDATxÚ½ŽÑ²Ã D7WŒBuúÿ[0Pì´y½'ƒ³‡àù¦”’—#\§R ‡/ÍyÎRDè)¥V1R°|˜&³žÊÊÅ4xÌ•ù�Î9ThTyQ£á ,£­Ÿ ždóØ1Csj%6B€,!èTi²>øà¹NжT3Rˆ›†ÎÚ‚º  CÖÙõ†2î—ê·]ðM ›k›qóM_ø~± ¿IáqÃÖðïWsî BÈ,ö²�è£÷baŒÖ[È‚%䂆½µhH!ú8µ²À…üƒÖˆ)Ä‚“!ÜÂ-ÿ&¼�[Z ÚP“Œ´����IEND®B`‚IMAGE 396 ./arch/misc/Container/stove.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���!��!!!>N\f*”k!”JJÿ¨ÿ��É”Z”””ÀÀÀÿÿ�éµxµ”µÿ�ÿ'^¿���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���ûIDATxÚ½[r! ‡�+$Cùþ·õð^œìošB¨5à½ðÞï‹›ôJ|‡N�c_KñÞ,\fÞÇh•-ÔþU h@Pe%MðB.)Þ N5ª:0„L…BˆÚˆ3á 34Cا %Ôˆâî‚õOXsˆ‘™¬ û 1åÂ!`ôy"Lá‡02‰Ë<SO!£i]€pãîRæbýŸR?õ} 2žyÜÒ)üÁ!<°„×·„—ýÞìWá9` ;�[@°D²Ìûæ€äTV@ö@JT$‡%¬,é G�…�vfâÖÀ`Lá%<òoÂ9Þ ËzÂj����IEND®B`‚IMAGE 400 ./arch/misc/Container/stove.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE���!��!!!>N\f*”k!”JJÿ¨ÿ��É”Z”””ÀÀÀÿÿ�éµxµ”µÿ�ÿ'^¿���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]���ÿIDATxÚ½Ž[–Ä DÉ€"¶žÙÿn§¢øèLûÛ7GƒáR†~'̼×(¨ï€ohpù» D}«•9g‰93‡o–À+@† ‰vÐî «5VÎd—Y0»Š DC�$X#x.ÀU·QÁœÄªÜõÚ…Ü3°#!@�. ß'ÿHjxèM ï£HÁ»02 ¥V#…Â.Ì‚’¶êqErA}¬‡€øÖ§ò.¨§@óê!|bLáu`Kxåÿ ý&œ\XÔØº@s€´hJ㼄1ÐÖ¨4º°Š–KñS˜ªw„¬�Ö¤$B#q sÀYC80…#_þ�JÌ Ô¥èËõ����IEND®B`‚IMAGE 465 ./arch/floor/strangefloor.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿��ŠIDAT8Ë]’½JAF¿&5¢i A}�[ ; k_ÀÎÚÖF{KÑF±³KE°Q v)òŸìÌ&;;s-Bâî½Õ {ØËî9‚àÁÕë ¦ãŒ>·g“›¼óµõÿçÖÆñJø €�@9XŠßöø˜ql#•¯/ÃG$…PFŒ&Ê�^Èù!²Møáˆ ¥ jý½¯ûŽHt´)8Õµ#c”RuØ _²¦�Ðy´zú¾38у¥™ùUuTUÈãâ¹WkmäTˋŅËÓ—Ìc¿ó]uøiÂ/¼ïd*…Biú¥õÊñøt ""J\OÎ�…H ź;›øQš4à‡a«˜�¢(ʵ“@l]¡‘�°ýZAþg- ˆô§F90“³Ù�öw·7—^±õ”Þ¸IîŸ÷¡FÌ¿d}(Íü Ö‡ ˜ÉúP=欵Éüƒõ¡ˆûç}pÿ¼Éýó>$÷ÏûÜ?ïCrÿ¼Éýó>$÷ÏûÜ?ïã¦ktÄ7����IEND®B`‚IMAGE 865 ./arch/construct/hold/stronghold.x11 ‰PNG  ��� IHDR���`���`���¶j ���sRGB�®Îé���'PLTE������1��c��Ì�-ŠVc2cDŸQ,¿¿¿Í…?Ù¤ñ)pÏ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ¹ôØe��¦IDATXÃŘKŽÛ0 †­˜] F7=ªº"t î ^¡G˜9TIÅÍ$âOc<MQa¬A¬|áS2éeùÛAk¾„n–ôû…X…;X"xwŒŠ– Û]I°F æ@Í�U¨“ �¿54€˾ (öèªn2º´¬³€Ú÷�²+7W”,Ê|1'@]iS q«ö/z¢™„ˆ/mc³›JX‚GaQØÝ4PØê`÷`â1 T)FyÛ„I€M3@€FmË~?¶`@=À–:ömy!z h€¡ÑKÙh×È÷YÀÀ²šÎ€€ñw ?OFßL˜Œ–ÇŸè¨Á­Òr @àÇ™—~ÚÉs)íZàü¾¸Ù§�Jon÷Cý×@»´–/xéÅn}Iþ³[À_‹¥@Y‘—¨mP[ØÕ´Ùó‹«%^Ï`CìQý\pº—¬ñqø)d”d€vÀ8üzÄšï�øpÓÒx. Ú--¨ãü®½c f�g�WŽ€Ç®ÃìS×"J°òDÇ“pºÄ ÔBz÷½yQ[â©Â:�…Ìí:^$Òˆ}›‘ÚMYY€s‡F¸ ­Z&”àÅð4G–ê‰tÛ=ßßišQ›`@ß ïoô<Ûwµæ½ýšgöð¯Ðð~àyþ^Q©ž9–êãn08íuXð¬y û17Ƈ ”´'r/ödsyJ$Ù}Ü?¾žÛ£˜HËG"  û¸”4LQ˜Mà4lØ„±Û“ÞSP]† ‡ûŽOuø;ôË([á½£%? [úÆtýÅŽ¼5{'£è5N¡ü­ÏãÒo/¶2jƸòñ����IEND®B`‚IMAGE 2073 ./arch/construct/hold/stronghold_east.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��&PLTE��L�›��œœœ®��t!�µ��¿��n.d4!ˆˆˆ‰‰‰‹‹‹•••™™™©©©¹¹¹ÃÃÃÄÄÄÆÆÆ���B$­­­P))))ôóÍLLL��ºÈÈȧ§§£££¬¬¬¡¡¡®®®°°°³³³µµµ···¸¸¸��Ápppåå妦¦ººº±±±²²²   ¤¤¤A$¯¯¯¢¢¢«««´´´¶¶¶ŸŸŸ��·��›»»»¾¾¾��t��…¨¨¨›››žžžœœœ———ÀÀÀÁÁÁ“““ŽŽŽ¥¥¥��°��c’’’¼¼¼½½½ŒŒŒ‘‘‘ªªª”””¿¿¿‚‚‚„„„†††–––‡‡‡˜˜˜f5ššš;9]J���tRNS�@æØf��¡IDATx^¬˜…ŽëL …ï[œpŠÌ°Ìp™zÿ—øÇÓDQjÏŽ¥îÉ4Ú•âœ|ÇUý„ ’ØU{¸©7} 0©{èôd0Aí²k…>“ÉÖ¢ºL$Ðr‚¢е‡@È &$\ëô°WTÖA#1P°5‚jãn\‡(ÔIõr ˆJRFà;¤@É "­ŠAu1¥ò­ %Eƒ‚Ó(§e & 1íp |ŒRD@ ±@ÑÀ’"7G±ˆ€ Þy¸X‚2ÁÈ 2€õ/�HD(Þ±À:@f .ïˆ ´51ƒŒ Ê'ÈQ-JQ¤qØ ¬'(žRŠ$A¤ËQ]µûg ¥(BVÀùùAÙ�´TüfA±Îhèþiš°8(€1ôHùýã8™Æuƒs2(¨d R €*€”¥(�.¼« à�Y’M“ÅÄ�„]øU2[gØÄ'�„) ›U#œ‚¥HPV‘05XÅx.¥H³%ž0C` á, ÑÂS¤,Ejé›Ì�Ð6ÃÜ~Ö@M/š¡ àIBhAÜàR–¢½èù À¸1kĸo/¥*Rl›€žŸ�à¾Óþ€á~UÄ ¨„èö }{¸âU¤~ dzÏ‚ý³M!ïE*�'A¼MÐØ„oÖK„`½Hµ/S„c“#ô{Çë9:¬Šö$°%:¦wàrÐê ûBAƒàÞ`Žg!–Ýã£ùâ VEûdg3³ðctÜê¼í_EÜÀv¡gÞ—ùº9ÒÇ­"L`ŒÖhÔ o©Ù=raÜ@ûèjÕüÞE“U‘ºÉ…þþ³è­Ö­ÁW‘j *YøÜŸ»MjvƒÝ*‚F,l^÷NzÔìX!×ÈKpv7ê½h§Š«–àÓ¼ýBêEȵò|ýw`z©&8k™^$Ž–Ô¼œS/b£%�7Âû9õ"i´ä'ÐŒÔд½H-)4#5ü¶½H-y¥©½H-ýç“f¤¶íEòhéŸDn±É£¥ŸDn©9FKxk}\K3RÃ_ÍÞÊ1“zë“È-4;8fRn™[hvŽ™”_"7ovpͤŸ$nž"$®™ý¸Mé:ìÉþ_ždnÖì9fR~ÝH-›ºfR�™›$±c&åÛ‘›$qæšIUÏZ¨ž ™›¸gR)�›!Ùóöï,¹ùÀ"qΤ€!HïaÕé%HM:IÜÜ CVΤ*EðêõÀí·W�‹ÃS�½Ë�–‡dÕêBæÞÝiRŒÊB‰"\½�p:¼ðüéŒú?;�6¿.aÌé[2÷ÿXoÚ0 Y¬í`„m7ïG•„„¡£Q¨RhC»FBHel‹úý?ÅÎÙ6½eÙFøÞ=[g½?ž²ï©Ñ í‹Ù¸ªÇwi=Yvß8S¶ ¦7öÔAÒö[m~½¦îMu˜¿¢§õ/–þ°}®5MgÍkõę̈'k‰tLK¡<5´žždm¥IfݧV<ÚöÄrn.&2)”§†ó‘'¾êÜÅ3ãÑ4ÌÌdsp±aV,“õIO"ÚZ4nÞ§ÍØ1Üv‰ÉdRø�DHO µh?êñCX[X«Åbpúíg0;Œü¡L ıÚS;¦côðó~Ïp;KÃY>6ü•–¬šñ#iȤpFО·¤°n3è D­0ŠÌ‰Õ8O]»Ù ºÛ7ÜŒY» @Ø~(…žš§c0Æp@ÌâK÷ÒuZÁ¨ýÚŸûQËê\ºøïv(X±§–g÷ø W› {ײ,|±Û `J¡§Ætî*è˜êqÅw\TœÑ¨Z}þ7ªÕêv(˜Rä©é˜…þôt8E™{˜¼D™‹BµR*UŽù¤~·¶@Á”"OMÏÛËÃQqÊX¹rRAU" `ŠRà©á3ÂÙ’Ì©X¿t§² E@Á¥ÀSc<ÍË[&ÉÜ?û1¿EY" `X°ÀSc¹m‘·L’9¡‚O­Çx:.Ì“dîh×AŠ€€ õ)O­¯3þqŒ$s»¨‚Oñ3xù“–dNÝvà™ EL¨Oyjù_tCè�AÀþM¿_—#ˆÄÃ`²§Æúüº¸í0˜ì©õóðFЉ‡Ãþg3 ûñ 0\©±v����IEND®B`‚IMAGE 3637 ./arch/construct/hold/stronghold_fant.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��1PLTE���BBL�%%CXWt!�44Zonn.@@@d4!}#|DDrZJJMM‰2aaaÞ,,ß--ß//à00á11â44ä44æ88cc¿æ<<ê>>éAAëAAìDD†ppíGGîLLïOOðPP €dŸcóYY¡e¡‚g¢ƒh£„i¤…jõ__¤†l¥†m¦‡n§ˆoõcc ˆˆ¨‰p©Šq©Œsªt«Žu¬v­w÷mm¯‘w¯’yøpp°“z²”z²•|³–}´—~µ˜¶™€úxx·š¡¡¡¸œ„·ƒ¹…û}}ºž†»Ÿ‡»¡‰ûƒƒ¼¢Š½£‹½¤¿¥À¦ŽþˆˆÂ¦ŽÁ¨‘ª’ë“Ĭ”Å­•Æ®–ý““ǯ—ǰ™È°šÉ±›Ê²œË³Ë´ŸÍ¶ŸÍ·¡Î¸¢Ï¹£Ðº¤Ð»¦¿¿¿Ñ¼§Ñ½©Ò¾ªÓ¿«ÔÀ¬ÕÀ­Õ¯×ï×ıÙÅ±ÙÆ³ÛÉ·ÛʹÝνþÌÌààà���„„„!!!sssRRR{{{111kkkcccä66JJJûp((999ZZZ?÷oo)))ûöffŒŒŒùss÷ggùuuýƒƒBBB÷iiý……æ::è<<ú||ô\\å77õ]]òVVíIIöddÞ**íKKúvvó[[­33ïMMûyyëCC÷kkðRRðTTòTTÚ((ö``Ü((òXXìFFørré==ýþŠŠÕ� ���tRNS�@æØf�� ²IDATx^Ä’Çj1Dýå¥09mÎysÎ_ç²fhãƒ0îCà=T-´÷ïΟYàL¬‰%Öß uYÚÈêmiÚÑa9±‘R‘ÀzZÏu²Je‚@@=-è4Õi'$¥Lõ³šdÆ·4A_ÅëcAëÉ0cvP/Ë‘šä„U>»(õ² ÃšÌb¢F©À4X_ uH²Ìâ¯.Aõµ€YY¢»(ðÍS¶ä*¨ÉÌÆ1Q×ÅÀÍÈåÂ%z._]žÈ–|ZØ‘¶~M·,’õÀê>a¾\ �¦Ë.ózØcÊ–¼�QGVìRÿè�ù À`”3ÇGûL´o˜ÛÃ%3y¸•¬Ÿh(3kI:´¯T„Å&¹{>›¯ÖOó«îñ{;?èóY/oóÒéÛf,[òEÑÉ]²¬òÛÈ–¼@qY§p»å° >¯úŸ6®,ZȨ²k¤ö‡š~.I[)Æ1°‰–qÇöÈŽ¿ÆÆÆc° !M›èìj¥]©‹$ÔRÑ6©Z«àXQâþyûîÃÏ oàùç{ÏÜsÏ=÷Zó+ú|¾r[»­ÝS×šQJ¯Võ%C_,¯É£äl<¬×ë`@¸ù6qWKUX½[XÓo-U/FGÆ£ãá1mا º$Ê®TÀF½îþK�V–§ôˆòyA¿479Þ©Eý†£ãT”}þ‡,¿§îñx@/—ËAÏ\ÉL}Ö«ñÕÛ±¯#7“ZŒ:NEÙJˆj­Õ@­–{ð€å¯®kw¢«wÕx2¬"ó±ékñN-Ñ:Ä(ûüY©V@®Æ^.WË!>ŽEÂÁȵÙÊL6ª¡Œ’êÔb¢Cˆ²8 € O®î9� ¤Ò‘TJ­*³+©´²4o$2‰„YK= °(P«á¬3"7<µƒ« GÙ2‰ycÞ(¦õ ª?ýI({ዳ–zÌÈÀUÞ‚ó$Tóìâðl/k¾8éצ“>åú½”¿]b—âœ/¡ü \Éæó§4¯ÏŠ1-]ŠQ-ze21 E´Øt2t]ÁOw®„ê94ð'fg‹*ŸÒ¼–—¢I5šdèÕÕò’Qг¥R@“óœ'¡z®†-ìa-³ª¯Ý:­ùÂ¥¹üH2gèc¾èPu8ñÑX*R^(gxœ}- 1†M<…æÎ’§5.e‹ZÉÈZÚ‘\¿>7>£ú@q¶ù;“ÑC� Õ…Õ¨DózFeƒ–vøƒ«åB5SÅÙ˜zr4úlCIÌ)1™æ§’Á©YÍÒŽÔúÈüЇPœ€òw$4úøÇ �™é%_B®ùåŠ~ßÒŽkÙ¬ªÎ©*(N Hhóƒß÷PCtq1›L̯Dó_YÚ‘™QÓÁ’¿�Š{E°Ñv¡jÏQì?19™_‰æ'%Ó‡C> å<ØÜy/Žpòå©¥&Î~¢-ÓGq6�à¢&àQØÞÀ¿<<àg?Ñ–éãqvõ:I¨ŽÃ-VÀþU샾\P¼|¢-Óгh­¤/wŸ5ŽžïÜ+ÅË'Ú2} 8Û«š$TÇÓ£O½ƒ£ð¢H^!(^>Ñ–éÅÙ_È|Å4vw·jÉ´Bä‚âåm™>PÜ™G8žŽÿobïïdZÅ[Ì+ÅË'Ú2} ¸³ïü÷ÞÝß™l4·d˜WŠ—O´eúÀãÎxkÓ»½µGfׄʼBP¼|¢-ÓŠ;à÷ßv®îÙq%ÂâåmÙ8 ¸³ÞØÛ™Øbf‡¤¢ÊŒ ø.z/o±²eã€âÎîÁìnž˜©(•ßõÚåË]/o1ÃXËßkmÁì¤ozGn™§AP|×kï_îbs]¶äô¥ý _{ãàð\€·ÿÖdf7èÅspÅs€1uö KÎJÚâ} ¸s(j?j6ޏi ‚âyó+Éeµ¸ØÞbY¼O4;Y»ñ——™Ý±wM ‚âù †”1%¨··˜fñ>ð8´ÒÈ�~õž˜Ý1�¢AP<ß¡a횪©!µ½Åüïk™BO¿ `›aœZAñ—æØ-/߈-'Šš‘‘J!“·x{…ýÐÓãèwÊ�^'³ãSpjÅeÙ (S@ü³›Ÿèá°/°0–´xÐíèéís»e�ÜìàÝÄ8µ‚â“:$ùŽ“_3Ø$jº{{½}n'lÍÎò×L8²¦è¬Ü¥—^3DM7}~¯ËíìwÃÎìž¡‰6µÂ‘eÐ!é¿N3.»f:ù.gÿ€vf�mj…#+O‡dUa›BvÍ�,}£»×áècp:acv‡x“ZáÈš&êã 3Œ~͈<ÌÏïsºú‰"¹Ù5˜ÔŠGQÑ‚jæäš.xˆŸ?0à„Üì¶ C­p¸õ+ñRt‘:Íÿ?t¼f~ÏOs 7;  “Úaáp!굋ÁY?ušÿ0½5¸·ÛÁôér9¬„~Ò©Ììö@Ϥö¾p¸˜ÔS§ùÿÓûp*?• 1»-`j—…ÃŤž:-x@ãÕërô9]n‚è—ê¿6�>îmjÇ…ÃŤž:-xÐÝÛÊïjç—¸Þyø5Á<²™ÔóN/v¼�éÓdˆëTâ× —x�¦Ñ‡‹I=ït¢ã}ÕÊß'æ~áÿÖPOIÓ@ž €I�£�Q€Q€­�Àrµ;Àu*�°ñê«xq’’´úÿF¬`·m#  &t‹vÓ& ׂ½6à“/¾ÈÑØcÑC޼ö²@t+Ð5*X Û¬åç˜*l•RÙi¿®Ã•H n¼¼åÌã¾ys�@¿.8umq…Ÿyñ+âCàøÀO„ÅϨNÁXðYuCN§Ÿ&h€€8ptëƒS2 Q‹ï¹J…@ â#±íÖ§ïw1+ž`ä¢ÅÈEk×¥µ—û¿ŽûwW'“ÓãéÛÍó÷­ìü éÊXÐáð' m¥†"Zk‘(Il„<ÝÍg£V~8ËGÝNç2?}·ÿ„ÿ=øí@1rQÚŠá…'åûÇ?Rd;“lÒšÈöä`[ž’’`½X°Ý¹h«Â{! cp|ܹšâäpv’žf½þlœ&Žôš¤p¤¸&z~€ð¼H­F.‰2q[‹‡óôfŒ‹|ëââàåßv¯ï^ÏIÏH GŠ*L”XÄ ’`!! a4ÿÔ$Ø9øx=c4Þyl]¶®²oFŽt“¤p¤¸/“ (”ØÝP„ Â02¦ñôh<N.ó‡»Y¯srÛ½Ýî ²^K\®€* ‹H\'!e-»àŒCHšJº×Ûëu_÷ß Þ¦Gùã^/]) J‚„mER+!e%v #¼øs»{û17í^@¡¨Î¢°ÙjQ&A¶(¡°NBš­ë$ÔéÓqÎ{ó¦ùšÏ›À¬,ЊP…‰±BÂu$”X¶’X|È_Òæn.¯]ÓÍæF³ÙÀEYx•þ*L”0^SB‰å]‹Êq¨H6ýß ¸É¥¡ ù ÛŠ=KFü߈¯yƲcWl®Xƒ|ãyƒ…}”V´”P$nÄžP­ÍÔN)ÅYY“ÄÂûÑX:޳Ÿà«°…-%ÄÜûS;hž46ảWm®°4h8ûXXÑŠ„bñJÈ¥v 8+emÄã&`é8Ya?h,&Ðpö1/  9fJÈG€@qV2ìÅØÂ'°tÚÜÖÊÜ>Ì (ÃD!'!j§´á¸¬5"*Çq6÷nen)\a&rºRJÈG ´¢¡­EH‚µž2L …ð"Ä÷?P†©±†J°ÚsÒ&%¬$äg€>"¼ß&’ƒè•„ü Ð"â…÷‡‰C¢‹�kœ<ð5Ÿ„ÿ(Ý>yêxº����IEND®B`‚IMAGE 3239 ./arch/construct/hold/stronghold_fant_symmetrical.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��òPLTE)))L�t!�n.d4!Þ,,ß--ß//à00á11â44ê>>éAAëAAìDDíGGúxxûƒƒþˆˆ���¼¢ŠÀ¦Ž»Ÿ‡Ç¯—p((­33Í·¡­w÷oo²•|³–}¶™€«Žuæ88»¡‰XW½£‹½¤44Z¦ŽÁ¨‘ë“Ĭ”Å­•Æ®–ý““ǰ™È°šÊ²œË³öddθ¢Ð»¦©ŒsͶŸ÷iiɱ›¿¥cc¿DDrMM‰ðRRòTT·ƒ¹…ºž†óYYûó[[ô\\ö``§ˆoõcc?©Šqöffúvv÷ggªt}#|on÷kk÷mm¯‘w%%C¯’y°“zË´Ÿ²”zørr2Ϲ£Ðº¤ðPPѽ©Ò¾ªÔÀ¬´—~ùuuûyyú||ä66¡‚gøppûBBðTTõ__¤†lùssýƒƒ¥†m ˆˆý……ïMM¦‡nµ˜òVVòXXÕÀ­Õ¯×Ä±ÙÆ³þÌÌ·šZJJ¬víKK €dŸcå77¸œ„æ::¨‰pѼ§Âª’ëCCÓ¿«¢ƒhè<<×iõ]]Ýν¤…jìFFíII¡eû}}îLL!!!þŠŠïOOÚ((ýÙűÜ((ÛÉ·Ûʹ†ppÞ**é==Ë ÿ���tRNS�@æØf�� cIDATx^¤Xå¶ë¼Üï0Á233mfff<ÌŒ3Óe†÷¼¶Óf»§Î^]ù¥ÉDÒHrÕ÷>°4è�5 ÓÞQ`gcïÿ"�‡ênx+´Ú[˜öŒÂo�6ü!ÿr£!g¯(b¸±qëÖ†ß_o,í5¦½¡þhX†üþP}i¯&0í …¿�ôCB·B¡eâëÒû%áýQ`–!êéòR£¶'p¶'uÔO>ÿ\_Zj4¨³¼ ½£€–e½i)\(�TgþzˆxJ]Øä«-¿aYoYîŒÚ|23þ)FY•"ÕYËW–¯Ø9cÏïÀÎ{þ—=ÇÄ( ‚i i¹Ì½ÿÚ§Ï�Œÿõ€Ýó…{�Ê7¬,*1JD`˜_ëÄ×s¡VÛÃè#�÷ÎFÜÿèW�pü£À³ÿ\Pò‰Û"”•Óuay™³Äw?^øåñçãŸ>ÿüë›órŒæn.Œ>šuÒòß~¼/F‰дi`Ùô•*ÝŽ%v@›Ñ4`–¦%”Y¢¥ò/å—òkéøuÔ–>¶ecGuÛ¦VJÇb”8@3Ú´®ë`ÆLÑ�~òý+üJŽ}™>z•>V_l~L.ݳòƒ¢ü€² PV hºî@-à`Sõ)_¤¥ÙÅêÕ'ƒë‹—¾HÿdìèDõY; é^Ýë¥Æ@2™„´ÿ0¾ù;·Z¨½ þÝ÷MäÒ[“(+ 1_s9bšË%ß¼!–…ùûÀÑ+©q+vßPpëiõÒ—@“í(ë÷OW½ÄdŽœd2—DuÝô¹¾§§ùD@¶¹âJôÒ“<Êš`†hÞ¤îˆ1 Dc¾hT*(§ј²=d ÇÃaÓ—Kö�@P 8âÃU&Ô¼¹ ô·‘ßmÈ–‰©ßJžØÏ®Ä·Ÿí´|áØƒ¶0Ü`)è&¡œ—Ü{Û»šÏ¬{ä­HQyûa{6õ}à$€ùy‚{Ó]B3¸ ”O¤RšW‡Ò™ Ë©/j~=<érùäàVÄõVÁ}Šë*!= áô4ó±r·CórÌ D¤@„°ŽJÛ¶´šÈfíªÛ¶.c€à¼Ý$¤'sÐ0†ãø‘zü¢Sóé'ƒ©Éˆ=EØg‹ë…áOf£¾Òp)>Œ9‚³v )!!MÇ×=ÎA{¤Sóîl"#gm .‘“·ƒ‹;R»g SBÐõ�Åᣀ@ój\uÅ+N.çQ)]ˆç1µkNBúÔïq%<¨EšßŒ87Oe.ѓɡëÃû@qBê€)!M_XßÚ.†ÅšßÏ«?qéxšHHÒ $áļ„ôgcÈ!P©$"Q£~šÿ’KG|GŠ9³ž4(®OL µº!x~¸‚N=áë¾I£~š_TV¬úF^ï…¦O`ý0¾<º} Òг®h®úNL�&!šB�œ9�°/wOÚYÅYW4W} gÅ ëTB:N9¿s/oW¼¸¢¹êÅY0 ± ô?ŸX¯hS¼¸¢¹êÃõ‰¨„˜wF§0‚ ímŠW4W} ¸>«ÃF ÍÅ\nœ6-ímŠW4W} ¸+/áÔѵ±?Ц•yAzE›âÅÍU(®ïªC Êk‡»g�â¤W´)^\Ñ\õá®&Ðõ³¹±Ç¤iíB"½¢MñâŠæªוàFùq?iZTEw›âÅÍM0\—•׿¦Æð UQ~§Mñ«ô¼;ÅJÜÄÁuË>ïpü™6;ª¢h¬Mñ«<|¸úî³ÙŽS¯›ו`êQÎhv, mŠ_ýàßWI]—¸wcžp±5q°Ò@Ûu”'Gð, †â¦xF0+~ƽ3ãz(ŽS½X¦»ý¬iÑ0PÅ50ųTR‘})SiM±O¸ÞÇ7;‚¬ÌMÜ9?Ä.h¢’±]bŠg3ÔéR¾ *Nµ5Åd®÷âƒËtž6»Û�ŠA8‰Û.1ųê–ŸJ²ä’ZSÌÃõ>0úZ(1AùÎ.°µ¹½bÛ%¦ø'ƒd†–ö¿ î‡3²-´ùòéxŠë}Ç¡¬<˜Æq‡­OØöŠî5˜â¯'È µ+›v{õî7?«nwÑ><ázm(1ÁíÑ5Œ8šË%s{ʼnӋ$›qâÛÌ;(q’ÏI³CËÒÜ^*Ù¤Éü+RãÂÛLʪÙM´–W~s{e¨ÄF/’ž·¤ÆE·™N”U³Zbn¯ •¤èE² I!¸ÍØ;Pb‚òÚ Ú?¤V[‚¡’-úêðN\1n3ü >*@‰=p�¦eYE7G ½OvJqã6ÃÝà#'”E.×oÜþ͘:4ôÕl B3Íþ?´zŸGˆö"–ÄcêÐÐË?8O=4ÓìÿC³÷U¢"”˜€[¿Õ/÷oÆÔ1CO3Íþ?4{Ÿ*D 4nýÆíߌ©c†žfšë}.Iˆðë7nÿfL3ô4Ó\ïˈQÓæúÍ´l©È =ËtÅì}wÅ(¨©¹~3÷cÍ‹‹z–é°ÙûÄ(¡LÙÊ…­ßxK€H� =�z�A…>ÉØÄ(=ÚtkýfîßÊ]§b”hè3CMG»e÷Å) @]µP�L9�Xè¾8‡ºzk§™û7f �ÿ+ÅêYÛ†¢¨%'mj×íYð¢ å.Z* ®d\#›R¼eÈ"»¤8$€µhƒÁìJ†äö½'År}+d¨-÷žwÞåÜw†¯‹‚Ó‡5Q9lþ•Ú/N‡ÖhÑtZÃÎmeöPwg¤øú©í­í0®Ûס¾?¶[w—“ú`(›Ú™ ÷܆ã:u‡jNû²F¤è1Tî�»ÔŽ"Ùa:ú‹š×aÓk¹NÜØQ¤+A Ij¡£p¹˜EjÖåÌ{ž`nWçóöÙ‡·ƒÕ¨}•ÞRHRôª`…ÈèR�ŠÐh¿¬Â âIc9­.âêrᾉiEB’ŽÀPy d‘‹Ð+QÀît'Ž3¶—£0ð›ýA¿æOÝ Nª�Y�C§v™räyämƒmÐꮬÓÛi§k_lo¯�†Ê`³Kí"Íd˜8½¯ ú/^riõäFùi¡R¯ƒ¡òØd©‘Zߎss$—?@/ë@øZVÄP(Lí SΙx²Ï„Í=WêÒ.4]?Ñu ó×Â;U¼B&)±°s¹‘¾u qø‰ xÉ©=‚¡“ye+%ÏÅÌlN>ƒ'y¼VÖ´ÔŠÀQ¥¢ÔŽ¢ˆÔ2dŽ£ìâ|½,Ò>Òª8µ‚‘±osÒ~ ¥ hÊ>’8ªT”Ú‘è•r!sWÚ´TMÙGR�C¡T”Ú ”¡ sasÕ=Ô{P†bðÔÎ ©™ÈGÚÜÝžêQ¨Š°ÔdŽúPl�žÚ‰nÑg¬3t€b0–Ú‹>"Þ˜ÚGá˜fv|(CX[ñ—­?6nh¡‚» ����IEND®B`‚IMAGE 2666 ./arch/construct/hold/stronghold_northwest.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��)PLTE��)))d3LLLRRRKKppp{{{‚‚‚„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹V°VŒŒŒŽŽŽ‘‘‘”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦¨¨¨©©©ªªª«««¬¬¬­­­¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÎÎÎÏÏÏÒÒÒååå���a½a|Ô|?k?P’P+M+-Q- : ’’’§§§···<h<®®®“““þuÒ����tRNS�@æØf��ïIDATx^¤ÎAnÄ@Ñ\²€n{f’Üÿle„D²¡_²ôJæãßÄô`^lЖÎ+Ø{îè¼ ·C› 4xXqAÛ¶DJçUÊ­!m©ÛJçURÓ”"ZTU† ª V¤4q¹Ä_¥ƒªJ[RU­ØyÅ-×e÷-t\qIs)b&ª•Ž+~¥SI©…+¸dÂÛ:¬8á–«—³Šó<°· [é°â<ÜýKÎ*py°Ê-…+py|RePÞ[?€¾êO!¤[Ç7å~¯ÜG._¹ß¹Ï¾jðÓŠõw'ŠdѤ3θ;ÓÛ=;ÝIH'j4QågAAYŒN2 Ó½;¹û;Ðäûˆ­*¢àž]<Ǫ÷¾WïÝâ\à�lçׯß™×(ߘÌL€å�®Ì(Œ*®%à;¿~G!�|üÌ—�Üx`qÑ�ûÀð­ÏÀõAATÀÁA’aéó‘\>ªGÒy÷D94ïÖž“Àœ/“¹MA­;uQU’@­v�¾sƒ€Ê'U PÛ¯Õêx¹ó“rÖR\9ž‡I˜|Ñn¿Œioß,]?p§ÁmaTIökõzX' à7õ/æçÄþÙ»ùìݺ÷þòXjêMé,ùÔH8zAT9@­^«×`µ‹ë WUN=í¬INÉã¨ÓÜä¢ý™£#Už�Ý)ÔA�{Â0„Öt΋CÉ]’›Ðø¢þbmr žÑ‘‹*k!ž+!€ðáî\Þ%¿ê7Ÿ5bIJ[•ËÙä¢?£c+ªôý4UR }„ ÉP¥ž:ç݉ž}GorY£#U°Ï�jBXö (c[µ¥".ƶâËé˜æ:— ºÐ(ð¸ðᵦ…¬ dß{ØÛSä`f»GZËú“£Qw•KÝ&À>àð#¨j!"ì{pÁß¶Ýó³N+¹´ÊðüºÿªßéðXÜCu íc ˜Oâ8×ó®ìÍŒÄö –‹;ï˜Oý¾š—V¨`Áâ*[¨BÂDqöA9Éõ|bK¾niºEÑ—7xîÄ÷Û®t'TµP=$HáÖ¹qoïó=ï=Žâ'«Sô³†~¸üdþt6Vƒ(p"WžÀs Ñ I4‘´z£¶•ïyÉŸÌ?˜dŽÃºŽš]­WšÀ¦…Ð5®�DËèF/èy×qûδ—9ŽVï&ð–Î4®`ÓB]Ñøb(æH1ŠzþÂê]ˆIæ8ÆwOòaôA‹+  dZÈPÌ1�çÒo˜Å==wËÇ`2Ñ´‘¦Åd[Èî #èÓéħó[Ðó?gŽÃéjvÏoy`q{Å�µ• … £þÄ–y¨>¥ó[Ðó‚éÃUÀà- °-2D¤ÌÇþÂeW>Ñ™écq%�à-Äþˆm�œ¹ôÔæW>Ñ™éãqeuú¤Ž«D‡<s0g>ÿ<ãW>Ñ™é‹+H¯¤kO—Ä‘€3o û|âÊ':3}àqe.�k¡:š¢¥É}2Ræ�î#à†Môöä&:3}`qå>�¿b$ÏKˆÂD‹1_;' ›è7ßžž¾ÉMtfúÀâ^1t�4Á|]2ÑšÝgœ“›è7ßþîôMn¢3Ó÷ª¡ƒÓö„¶i_¶-焞8ÓÄQËl¬õÇÎt-XÜ«†zÒÀŸHbì`Û9Qf÷ü ¦ñºÖfÓ•þü”éZÄN…¡ƒ'™¶é@žy9ç$ê:\ýz}åÊPzîJ’L×bVeèàQNÛtwNzW?)h‰Ö×VúÓÊt-* D¼Má8'~ª~Áõ•qmÎ’ 6uî9q¦kQièàkS@)pNz©úµ•‹v›œü"¸’ÔhGgV¦k« ´M!:'´æL0¸:mÝCÏS]mè Õ˜Yã~¿Ð9¡5g‚ÁÕiëJ§zCŸl9¶ºb¡sBk΃«ÓÖ=”Šø††Ç–“J¡sBkÎcI'"Úº‡Ò‹aCï#kl÷Šª¬ô„MDz­¿½Ò‹aC½Žg“bç„ÝŬôjB'"½‡Öß^übØÅÐÁ¡lÄ%Î »‹Yé„NÄ꺧ß_ApËZ¨˜V‘Ø;'üû“•>9¦±º‡¬Tûh •ÐÊ‹]TâœðïÏuéÙIó/¿TûܾSH«Hì’bçä ÿþ\—žlkߎ†¥ç$ÕÿuéÕdKûv4tpÖ*tNÆw©þ¯K¿ /µoWCýb¿e0Iõ]úäø¥öíjèà¤Øo¨þ ûg¥@K€ÂÀކN™sbUY^»:(ô[v±¼P@kw¿Å¬¶¼€­Ýý–f¥åuq‰<­Ýý¿ ÇÖLJöX_|8¹hE'[ .r´v÷[DåR5[¢6›f;I|Ñ^ö·@‘§µ«ß‚œMŽDm)’ZiHr¿A¶A‘£Uí·Â6c8'ªŽ©6š*v[£AÔ”8h‡‚‚ƒb?G«Òo òÀ©œŸ(oxOå¯ß›™ì¤ .EŽVµß"°LÉÚòSg4@sÐ>žªÍÓs5z×ä ((8(ös´*ýZÎ4UQ7º.ùâùl'SÏôÉ0Š[„/€/ G«Òo!!Û*€( Qzq/¶ Ó±n†‹¡nˆ“^¬d§Uå·°JR&Bˆ?t¦÷¤|hµÑèLm]�€ñ¾•d£Uí·áŸUbQÅq'1UÇy4;�¾¡?x™äiUú-4Ñ~¤2÷Öÿ£ò=Wœß?ÿìÌr´ªý–ðZbËdÿfõË. G«ÚoyH»9|)sœzúË. Gk¯Êo¡­LøY½T`•@v9ZÕ~ ­'Ý)ädnEJf9Z{U~ ¡¬šØ(N*sÏôÑÌ, Ok¯Êo¡eäóŽâp™['àd£Eɾî·„%KBl'•¹Uï2 yZ9€œßR'BzV;=9Z)Ûr¿…¢o/;«jZ¯na톄 ·ñÿB ¢âõÿ-ðgï¿{^¥õú† ßž½¨õ����IEND®B`‚IMAGE 3368 ./arch/construct/hold/stronghold_west.x11 ‰PNG  ��� IHDR���`���`���ÕF‡ ��îPLTE���¿¿¿d3„Jž†KŸ‡M ˆN¡ŠP¢ŠQª“\ª”]«”]¬–`¬—`­—a®˜b²ži´ kµ¡l¸¥q¼¨v½©w½ªx¾«y¾«z¿¬zÁ®~Á¯Æ´„Æ´…ȶ‡È·‡Ê¹ŠÊ¹‹Ì»Ï¿’ÐÀ“ÐÁ”ÒÖ���¯©“±«•´¯š¼·¢Ã¾«¼¬†£Ž[¦Ÿˆ½¸£¯ª•§ ‰¾¸¤òÓÀº¦²¬–²­˜Á»§Ã½©Ÿ˜Ä¿¬´®˜ª£ŒÆÂ°ƒo?¶°š¶±œ\L$¸³ž¹´Ÿºµ »¶¡¡šƒÔǪÈIJ®¨’¿¹¥ž—€Á¼©Â°�T\�w‚«¦ÅÀ­–¹¦sÆÁ®š“|º¦tœ•~Éųɸ‰�ÎÇ­§‘¢›„¨¡ŠÌǶ£œ…¥ž‡3)ËÇµÌ»Žµ¡m� ª½«yÏʹ°€Ã±©¢‹¿¬{ijƒÄ²‚ëåÕ¤†Â¯À®}˜‘z¬–_º§t³ži»§u»¨uųƒÅ³„Å´„´ŸkƵ†È·ˆ”t”””£ŒS˺Œ¨’ZÐÀ”À­|ÍȷξÀ®|«¤·¢o¶¢n·£pÐ̼ÑÁ•¸¤q—w’‹p–v¶£oƵ…º§uÁ®}·²ÖÓÄ´ l“‹q¹¥r›”} ™‚¾¬zRRRÇñͽ¬¦µ l³žj—‘yÊÆ´•Žu¤TÎɸÁ¯~™’{¬—aÌ¼Ž¹¤r¤Uͽ»¨vª”\ξ‘ξ’ο’¶¡mϾ‘Ÿ†L¼©vʺ‹¼©wǵ†Ç¶†Ç¶‡Ç¶ŒÓĘÓÏ¿©’[ÕÆš¦V¸¥rÇ·‡Ç·Œ¿­|²œh¿¿¿²hÈ·‰§‘XÉ·‰œƒHɸŠÉº¤ŒS”Œrº¦sšF©“[´ŸlË»¢‹R…J­˜a­˜b{{{ñ‚¦W®˜c®™cIJƒ¼ªw¶¡nª•^¯šd¦X½ªy™€D°›e¾ªyÐ˺·£oƵ‡Æµ‰°›f°œfÓÐÁ¸¤p±œg«•^¿­{ÿ푟���tRNS��v“Í8�� çIDATx^¤XÓ—,O¼÷¿‰ÆØ6×¶ymÛ6¶Í϶mÛöÛ×YÝ3S;]Ý»çL=ô¼DTfåTDÖÉu¶ �}Ä€ÖY�ЄÐÖY¬§‡À"hë,Âõº70˜À-³ {{z7LL`‚‡¶Æâ3 ²wC@Ú ­²ÚДJÀ”LË,†$,A&hë,0dÔr1•³eC²<zMØÖX0tlO”´Êt$å2¡˜²1A[au$Õ’!ÀúõëÁ}é‡ÿŠYâý¡#ÐÀÀÖ ö= ¶ö°ï÷Ø÷ e`r¿ÿ·^º àÐOøÈ™ÝÐýƒ§lyå@ÌïOPɰ¸xÀGO¼À¹ÿü �¶wÀͯ/8½ñª‰es€…Ê#¿|öƒ§¯ýòÀg½ôèÏ÷==þ‰Ãïùß[»/ÞØsñˆtó§?|ÎIJ9@.·�†l`±Ú³ÄrÕ\.•ȽÒhLR'=ñ Êåº<v=ïð9"…¶”ÚåP;¢cf–uª¹…t: Ô à!ï¿2›”ÂSþ¶Mþ1u¦+u'4ÜêLŽ*{]À²KçÒiPb¨NõJùåÑÎÄc‰Wû¦:g‘?É¢ÃIJ9€†t¥].hU*ÈÅÇ‹sßNª©DÛ…ð_¼/dgqÑabY^!:«Ó©AÎÊÎ2µ¨¼jÛ$'²I©ì ïÚšhœ%dDGËrÿí¨.-•ŠS[•г‚ÄT2ìMº½[§ãó¥âð¥|ã,õèàYÖª 窤]U@R¾àÍçå”4=”/H]“ŽL1“©Ÿ¥=h,0^e§Ý?¬2çrV‚íVÌL:&Á‚ú¢+Üò•^|f¾v.zØQª�ñè�öWÈ骎ãã`»5ßùàTLÙ•.?¾"zÄórh1„qâí\ý Uq@4^òxLw^ôÃJ!¦³¨ñ©Ì°ÏçU»²¾ËÎoÕ+”®àþ‰ééà#Òó¦;¯’‘PVeµè©¶h—ï–"‘²štL)ŒçZí ¥+N\Â~ŒÛÔ±ó÷¿ÚçΖ=ZôÑÐÉÔÞÌíѼ7Ú-¶Ïæ�ÆÒ*t÷^ƒs÷•³æ;ŸŒ”‚JÄQâþŽìâå¾Îyy�ijܿq…p`ÛÏ�´§ÚÛB‚;¯U_±ÃÍý1w[ÔŸ*ÆA<»�Æ:ðì¶×ñyH™>),ºósY÷Ü´ÂýùÅáÉ“íxA<a�Ú¿q…ž8ôÊ�Å]]ñï«qÇÖRI–ûdÄà¯Ðáçþ½_@¨££”ÍëúÜù§¸¿£8/Ü‘˜Ä['«¹Pç=¶ç1ËœôëúÜù)ú@¼uÂEÈ…*.éþ3F° =ó|×JгV4§>âY�s!Ò1–Ž'Ž�`™'‡ËLqÖŠæÔÇxVÒir¡4¶\ÚˆÁ3GñM°Ì㛂LqÖŠæÔâY0ZÒ{¿±ñʳoŒºWÄ.û˜â¬Í©ij|¶“ ¥±oyó¯¿óð6 BÏ<%gHqÖŠæÔâÙ¼©Å\¿tþ™–žy¢}¾HгV4§>ÏöŽ}Û®¾»ãàÉ´ô̽Š[&ÅY+šSˆgÿÎÿÉ?´yDZ»÷¾€e>”ˆ0ÅY+šSÏ6ÀW·|nÏ}2»¿ƒe®Üq3ÅY+šSˆgàæ›ÝG»™ÙÁðŠhÿƒáþLÐZÑ\Çñì|àþæhf‡_@Ï|¸,͕ˉçIѳ´š»X”ë8 žýðÜ?Æ·f·²æ¤èÙ'OšmîbǘçºÑq@<û�?|â†av+kNŠž}ò§§fµNåö(Ä2µŽâÙxçwÇ5³;6‚ÏbeÍIÑ,À¨<ý ·g¼Àyˆ·J‰®¼oéøµe2-ò¢ÆË=K«Ã3”í—ƒµ.v›ó>0žm€O jf÷›Á3Çð7ò¢ÆË¡¦è°Û'=–Üj­‹)œ÷x¶pvD7»«�ÆŠ�fJ�Õ¼¦èLRÙ*+²O®u±ç} žý ö3³Ã~…/ÕçoTsR4¯ Åá ;¼qÑÃyãÙŽñ#2;àmü›¿QÍIѼ.^¸¥&“åöÑ,ç}ij êf‡‘íMó·ZÍ©í°'ö>¯––Ù}¿yþV«9µÖãÄÞ×”–¥Ùm4Íßj5§¶ÃzœÐûšÓ²4;˜çoFÍ©í°'ò>SZVf·E03j@¥gЍ½fø¼9- ³ƒ`þfø?•ž)ÂxÍð/xAZb³ûšpþ¦û?•ž)¢öš™ixŸ -±ÙÎßtÿ§Ò3EÔ^3Ùº÷ Ó™ÝAñüM÷ÿFé×L¨î}´Df·G<Óý¿^z“÷‰Ó˜Ý_-æoºÿ×Koò¾5ŽñÛ‹ço†ÿ×Kßì}k âa‹©áEõÒ7{ßZÇ‚ø½xjh^@+=�*=€°D_-,�¬q,h5ë^mpºÖ± ÄS»5 N!HkíS»Ý«NSZÿoÅ\^›ˆÂ(Z­6>R«cã+jµzVwþ…‚«éª«‚—b”J›Á01ZpÀÆ $b6E€ Ó…deA|EP!ÐEE´”F(Ý\w~½yp“¹#zïò ÷ü>¾á,ŽÿÖÎѧõep,ÿ­Ý©‡óñéùÒhv.~elp£þ-µÑcú ËkçË^Á©x#…ØžkÕă5oîÌp)8–ßÖÎBf÷“%$«ÙäJ¶ÜÈ~ndzMÁ°ô­°·,läãñDéNŽFÙÔ‰ÉB.åd¥iL!M1Á°´­e [¢l~0VrHÇ‚éôÔÀé—ÅÚëó‘¦éq2…4ÃÒ·væÖ¤ÂFujµvà9öæªC?ƒ%'8t0¹îHÓA2…4ÅÃÒ¶v´åæ¨^øp.¾·æmÎÜ#£Ñâ§F"ŸtC)@ `XÚÖN‘˜(FÙXtÝ›3GMŸÍåÃö/,º†"€ci[;Z0‘˜¶ík£«K;C¡\êã®R¥�3ÛC E�ÃÒ·v´å®“”8oo¹”8‘HºXÐGQE�ÇÒ¶v¦E(Ä‚¯±й•K;(æ(qÐߺ³Š�†¥oí,!WŒîÄA_ûª–¾µ³›³Õsèï\U�à èZ;aÛBîª;q€ö�ª�†¥oíhÍô¥Éb®CÀ°ºÖN­ÄéÄ\ Ž"€ct­mWÆZ‰Ó޹Î�E�Ãêç­qаÂB+q:1×`]83`­Ý¸0›»òuV6oíȃ^g»ò‰Å xk7N¯ Fò_° -4Ïÿä üÝù3Öoª´ÛçŒ ����IEND®B`‚IMAGE 342 ./arch/construct/hold/stronghsym.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEçÆ÷���œœœ9�{)�BBBccc{{{sssRRR999Æ��‰Ù’ù���tRNS�@æØf���àIDATxÚu“ƒ0D=:ì˜ÿÿ¿k õ¤ÝŽdÉ“'ÚàÚk#F­+1€ˆ˜îÄ™ýbPy) Š^8F-Þ(¬•:-OÀ):åþ‰»/Ny€µP”úæ3~kôÑ¿®« šúxFEzÍX&@ âû !èÌT4Ãé! ö}§4!ö²Í>¡>'LJ‚ï/„ s›â1§# 8)8Q˜Û¬QÜ&…8Ü(u¢0ûÉý]Øðh©òÿƒÄëUPµSâƒtAœ¶ÝÀ7`üJK)`ŸÂÈoúd=Ä €]����IEND®B`‚IMAGE 187 ./arch/wall/stwall/stwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���]IDATxÚí“1 @! C›ôþw–á/6'‡Ô%¯ô-ÆM¨ �èÇ‘zÛ û{5ºÈ€wØë5žì+àÙ@}YÖ€ ð¼k ‚Î@™úOãîÇú,…¼«Ó)÷•����IEND®B`‚IMAGE 218 ./arch/wall/stwall/stwall_1.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���|IDATx^5Ì1 ! …áÕjak«Å“dº ;0ÞhÅJP˜Ô– æ¥ûÈÏ U&Úx}6䩲Áéî@©ŽØ‘´"õhŸÚV½ðy,¬fÂj4¤lÕl«zf$&K*~/Ã7TFf�Ž œ&@€ï®ä—æ—àØë?±‡K?Mp!����IEND®B`‚IMAGE 236 ./arch/wall/stwall/stwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���ŽIDATxÚ½“QÀ C-ÜÿΛÉl­Êö7(I ¼`lÿž8ÕGH°_�òtiò3™=ºŒ4]@Á@Ÿ êC’£ÁÙ‡à‰©–¯ÉVˆ@­ AácÙÁ^ˆÀçSEàý©$(|ÀçKE€‚A¯P1D¾ùà+T Ú³«vÀìÚ>|4Žcvmñq~ø°:y:#ß•����IEND®B`‚IMAGE 253 ./arch/wall/stwall/stwall_3.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���ŸIDATx^uͱ „0ÐýÉ´)…³°·9¿"¤ˆ•\>ÉNÁ€ÛZI.»ñÊÛj`Þ$D™‘†¦†÷±Ô:~%|6žáÅ,ür½„n†S*¶P=_Y朌52ovÓ1K‚‡Vc>ÅžjÙ™µ …„G!úr*DÿÚ Yež ie>Þ&N?ãnq›ùÊ—XcÕÌ…ª‡W=ú_BªpA¯@����IEND®B`‚IMAGE 209 ./arch/wall/stwall/stwall_4.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���sIDATx^eα Å „ሒ]#½2]<£Pºˆ„Gr—7CùHªOúÉÛóʹ嫺0ˆö½è‰]`ª/‚›æJ¬dBLŽ ù«ºhâˆL?x¢ ÇL†B/¦áÒ3PŽ™,x˜:;ÓtÂðàŽ2@ýž$ç����IEND®B`‚IMAGE 206 ./arch/wall/stwall/stwall_5.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���pIDATWE¡À@¯ÒÈHJH)¸àž’¸§†޼c†½=�à% �ðO�x³z¥Wö°*g5lQ ëxls¥uÍ“º)\ÁÁOŠšÇT”°b—˜{ÆsÌÂÔþF¸Z;fz3/{”v1\x©Á^����IEND®B`‚IMAGE 248 ./arch/wall/stwall/stwall_6.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���šIDATx^…Ρà ॲ2·¾ 9Ñdx {Š’ýAR W\ÏV5,øýêwîöç¦#1Ç0ðÑŠXÞWí#“伬f²ÛÕ³ WO¢eÙ΢ö†»qqmø"TþI¥Ù6ÂðtÀEÏ7#3›Ò3’3KF`&Á¦„›7@lC*Åù¶9äÜÇËÂé[Hhø}<Yé?åÆ����IEND®B`‚IMAGE 250 ./arch/wall/stwall/stwall_7.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���œIDATxœ5!Ä E¹$¶²¢XR·ÌÀ‘âרªn�õ†yÿó !tIìô›'$ðe)µ*ÀÆXO…&1›Ãòy$ÁáhÏã7·”œýfÇëòf‚ã0Ø<ÕHf¦âå).Õ`Bwúrp9  ݱ…£G¤Œž]ÐFi8:~¯ÏØ¢§dƒ¦oÕ›i—ùw^@^3}”ö°†ê����IEND®B`‚IMAGE 241 ./arch/wall/stwall/stwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���“IDATxÚ½“A€0øÿŸ7f"=p³©°É¢LEõÃÊe)£S<Û Ù[QÑ¡³òÞªŠªÎNÈܸËâû˜”èkñé‚Í'sp~/ †)L�CœÂ›/ZO.˜oûš§t¤ƒ6_ó-t„�†c–Ãñ5P°ù¢?C€€Y Œ×g³ ›ïYÛ£_׿;[y e¢����IEND®B`‚IMAGE 235 ./arch/wall/stwall/stwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���IDATxÚőۀ0C×òÿÿ쌘" {õ,’vŽËz!ÁÈCW‡‚8ØÇ ¤ƒøQRÈ� ø„ÒúDl¡Ôj0d(÷ôŸÚ¥^Îä¦FÝÛÌO6é5”Dz©JÌ0êª!*6…¾ië²]ô) | ŸrÃôΰ…i¦Û.ÜpÒ}ƒA¬_¸�E2¦dxD����IEND®B`‚IMAGE 230 ./arch/wall/stwall/stwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���ˆIDATxÚ½’Û À0CýÿSÊÙhÁ§MŒWfR˜~°L.UÊθݫ(0Tfº|†³†äó¶wke´4ì-žØFÛIgr¢Îljöäç¨'!@‡ÌA`x4ì-A… #6Ð� \höÖöøÆYü а߯¬a†¿óüÓ~oê{,wÚnt����IEND®B`‚IMAGE 249 ./arch/wall/stwall/stwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���›IDATxÚµP[Ä œÇýïÜØ¥’")_;"Á0�H”ãˆ*VâÇ™fSA hoŽ;p[°BA’Ö²`… \¬Ph�~_·¯O"4ó<- yBÜC)IŽŠ^<'A)~J y¢g†ð–å±¼ÊZÇÀòDÊæ•’ _³‡vD+{òD·¶=TýðÙC­C~÷Põ·‡àÿ¸�“¼ì ›����IEND®B`‚IMAGE 253 ./arch/wall/stwall/stwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���ŸIDATxÚ½‘Ñ Å0 B¯úÿÿ|)as‰í×AÈ)÷ûàðpž�HÖåÞ��¨Ë½I‚T—{=„D¼ÕšËÀTG�1WÆ~ÄJÝ•ÔNÂ5€9_$¥î*ªçB" K„ ‰î�o9H„ C·rpÛœ"[ õ*¡+GtÀs­vÕÓÁîã-`°ü»¨¡×L`»æ;óR•xh����IEND®B`‚IMAGE 266 ./arch/wall/stwall/stwall_D.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���¬IDATx^5½ Ä Ç}ÉàæØA8w;´OÑ¥p…ÎGj'»5« ÜåL¼fúAþ$J©€¸)žmøÃ{ˆ<Sƒu6„ÞC6¦A)t|¾·†Wtªì‚ìadÐKÉyEç*”$¼N¼Ê-O4¶5`×ÌE£—ñÜyeCœtÍôÄ^¡“€ƒRb¸Ä~PE죓œ®sïw¹ûÀÄ.žôÀ 𾿑~lýy_Y|:Û����IEND®B`‚IMAGE 276 ./arch/wall/stwall/stwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���¶IDATxÚ½‘A„PCi{ÿ;›h±5³›.øIÁPžõñ‡Š ™â'NARüÄ) RŠŸ8 Úß‹$Äv +<ÐN=ûºìÔº‘ð�‰d˜ ôÌ0ˆÐ̰ˆ$F†™`g˜Hy…¬º¯L‚k…U³/ æ`åwŸá`Õ`�A›Ãf Ía3Àæ°àƒCô@ûY¡æˆù»ÓD„ƒIíoå HÕ"½ÀgÖÝôŠ×¾ M€ÒRÔ‹;����IEND®B`‚IMAGE 289 ./arch/wall/stwall/stwall_F.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���ÃIDATxœ-бŠÃ0 `½¤ðæ1Cà¼;pîSd1T£ ‚ó#å¦d«Ö@ ¨VRM?ò‡…�¬JàEÃ7ü­W¯"Uƺ°Tȸå@˜á°ÿÃ~í¸ wã“z§œÜ„yC-¸Á"£$–Ìkdˆ94Bìa‹êAdd%ÿǧ’=�Ã<í%Ì€uåØ ËˆÞfÏËD MÝdŒšÜTá—ÞæT-oëfJ»?e|í+åÐMê Ö¥mš|(@ûÑrï®ÊWh×Y>|Ò—[þ§����IEND®B`‚IMAGE 187 ./arch/wall/stwall/stwall_door_0.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE������¿¿¿ƒ"½+���tRNS�@æØf���]IDATÓc``X—w Ž€ŒÃ�ÌXûŽÖ½2–=€2æ]€I€IÁó 4ÃZc ƒTÀ‡Á°ƒ1Ô`Œ840ÖALË`ºç¡3ä` =ãLWP�²XZâ>Ä����IEND®B`‚IMAGE 197 ./arch/wall/stwall/stwall_door_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE������¿¿¿ƒ"½+���tRNS�@æØf���gIDATxÚ½‘Q À Úöþw û´o ¶ü6j@ý€oš€ÍQ�ˆÉQȂįöùr †"L»ŒmŠ@jd  ÃŽ†«$^@ÃŽz­^ª°û†Õ\feAxôK´‚¡ÁÞè{.ý`u{Šä����IEND®B`‚IMAGE 268 ./arch/connect/stwallsec.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���¨IDATxÚ½’Áà Cíšüÿ/“jt‚…ÓöT[Í;@v1$z ±Ð2äéĦ@D=fÍ[T.(¿p³æéì Â!'DÝpW° ƒ¯¨6‡œ`i`‡ÒÀdèûâ  µA:Tˆ‘ë“6sBzæ™=D†8>Ù +ò–<ßB ãZ˜¹xµþjà¬_{!¡i$&/.h‚ßóã{õ†Îf����IEND®B`‚IMAGE 273 ./arch/connect/stwallsec.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���­IDATxÚ½’Aƒ0 ½¬÷ÿ_.#,J§vdÒDx‰?@63$<wŸ @ôìhr�! s÷©uC&ëwŸ¨†bv€ñâ0;à, $¯Xm@¼x–nX¸Ÿ7 ^<‚ÄsA7ðÊQP Fã?}wz¢üxúî´w­%¨ïNt¿qA1VÈœosnжåv¥½`Ÿ»-÷a2ÈaL}ø�›ø=s®qpý`����IEND®B`‚IMAGE 289 ./arch/connect/stwallsec.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���½IDATxÚ½’Q„0Dû_yéPÂj›úµûR±É ¼Xåè»8À`ÍMp+ðMÄÝÁ¬¹ùÙÁLó “57¤C²kPyÉ! `×0p0pçˆÃÈKÁÑ€‰Þ¡Í�Z8O¬O®&@˜×Õ'W9$Ÿ�ê“#ïiÐú„å€ÜW%5œE»Â™§C°æ4h6iWE8GøS¡ œ?íuÙu§s~‡‘Yl£Akb40ÌMmä÷|�´0¾õõ"����IEND®B`‚IMAGE 294 ./arch/connect/stwallsec.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���ÂIDATxÚ½’AÄ cLþÿå'’…@{Û¥ôàˆL£Æ Í+ªî|2€ä®E>™ ÕâÎg¾ÜÀº¡¹ó‰r(^ |ϼVà‰ 2="µ/ï­& œëñÞ*G€ öÞd ‡Û@È`;ôퟋš€è¼4|"+G”ó#ŸaÐ'!ƒvlÐmà6ÃâÎe`Ò 6xzNƒÔO;Æ'ε‡O±³1W±�d'դנ‰ßóIíÁ®ºÔ²����IEND®B`‚IMAGE 302 ./arch/connect/stwallsec.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���ÊIDATxÚ½‘QÃ0Cqû_y 9Y»Ïí)A•ì%O™ýßxŠY@-‚{n@úZ$ °ÌD-rÏ#ŸTð>aðævh²lÇz n{^[Ö+‡±<�u¬WÁM þI#]Q%MÁÈÞykh"Wƒ79 ÊApM ˆÍOòTb“c¿B,ô‘G.9ø® bÛÌ–A;è zCí@Ž\r¨Òl°ïÿBŸk×׉òz‡•G±2~²ÐÀ…NÈ|p¸°ßó5*iñg¼¯����IEND®B`‚IMAGE 296 ./arch/connect/stwallsec.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���ÄIDATxÚ½‘Qƒ0 CmœÜÿÊkc4 ŸÛSÜãâHáI†Ä)¹_A dk×¢é]™AÝÍ]ƒf{fªRhÎöÌT ~3ºSE{0½I?O`ôiJg—ˆü܃^bAºÂZR>ÑW v@â«»‹é['(ó —H±ݘ‰d0+x• ’ŠuÂ'>è¥q@¯d0àý8àý ÞoÁàõ '“â …ÕŽ£Ž+Ñ'‡­×°µ£VÉP‚deq>¬¦€ßó¹$ %ᥥ����IEND®B`‚IMAGE 308 ./arch/connect/stwallsec.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V!!!���@@@¿¿¿7â´ó���tRNS�@æØf���ÐIDATxÚµ‘AÃ0Á ÿÿrMG ¡öµ+‘Ö†1±·tjøKrUürÀS^Q‰:Ûz¦'‘N•u7òÑÝœ«O¦XwKŽu®’ƒáôCF™Ê!Böò}Œ`‚[?îâ‡d �Af`4"¶eOë7sùn.tñC[6w@4A1péX5ÿ²eªÑôð!h†Û_À±ÞÁØ08ýÎ&€A:|šAÜAÎ~õ¤l§µbMµ_ ^~|UÞÚ%z¦IerÔ²ÿëÝà ۿ¯ˆ����IEND®B`‚IMAGE 240 ./arch/connect/stwallsec.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���¿¿¿O¸�Ù���tRNS�@æØf���’IDATxÚ½’Q À0C½ÿÇêÆëJ‡_›´ÒXÕ)ÂãÄê’”qß`\’ÊLð„³ÕP eðtiV�_AMÝ Çe^|!Á[!<ëë©[FÁVˆÖ?X¿EEéÚ¶šºÅˆgÐ~ m›#XMÝzŸè|^(ö:úd�jêÏÍKO¢_Úïí�êÿ+U®U����IEND®B`‚IMAGE 213 ./arch/wall/stwall/stwindow_0.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTEÿÿÿ���¿¿¿NGˆð���tRNS�@æØf���wIDATx^5± A ])%\ 4Aî G°ÅðHŸ 9€;×€ïf#ͬmf¨áf¬<7 ?\­ü ÷rÆ_t/tì“q¼©ü­pÑJ 6V±…óŽ«Ñ‹©¤ªð,ÂGPƒ«U\A TXÙ*tÇKM ö~®oZw¬8&¿����IEND®B`‚IMAGE 264 ./arch/wall/stwall/stwindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÿÿÿ���¿¿¿NGˆð���tRNS�@æØf���ªIDATxÚ½QQC! zÿ;/%’¾4{ñkCkÔÒ€.€DOeãd©'³q ‰ª¢g6Ž!ï΋¬ûHp 4Ö±„Zp%bJ,<G¿kɶõ~Ù’M[Õ^ô::AÉØº(Kp±¯Úƒk–¸Féô"ÍYˆNÈ©jÚtršŽ‘Êuøôiv*ÒxpºYO<=<ÝÌ¿ëÿ¸èãaç]€ßã¾ÑO³(����IEND®B`‚IMAGE 150 ./arch/skills/Skill_Tools/stylus.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÒi R-���2PE~���tRNS�@æØf���8IDATxÚå̱ �0 Aà÷ß9˜ÂM”|{½P<0:„²‡Áí¬<ÎÅÿªNuªkv®ÂBw�Q¸ ¨ªø&����IEND®B`‚IMAGE 157 ./arch/inorganic/sulphur.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�mkË¢���tRNS�@æØf���BIDATÓc` …1$ Œ¨P(#-"ĸlZ�Dí¬™!µ™K!Š"£fN3B#WBÔ°Š.…Äš 3:„.�� 7 6Å(ü����IEND®B`‚IMAGE 211 ./arch/spell/SpellBook/summoner_book.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������3* ¼å˜ èš�ðæŒÿÔ‘{���tRNS�@æØf���iIDATxÚÕ’K€ Dé ñþ7–¶›1a¥¯óÒðkŸÂpÞ[ó>…q§à•K-DêCtH«2’O{›t�H^B@"„(-@ ‘aûúÞŸ›!ÁN‚?Ô (o¢ê ÿô¸�öõ@ï~è{����IEND®B`‚IMAGE 338 ./arch/spell/Bolt/sunspear.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�ÿÿÿ�Ì�ÿÿ�ïå‹-pK���tRNS�@æØf���ÖIDATxÚ­“ÛŽÃ D›–¹˜ÿÿÝFmh(DTZ­ß{<nÿW¶ç�õ06y®àžá‰ «”fÄö’â~¿QÄ Z`S¨¬k …x¼q < ¨”�|è`VJRó ÁѨpcZ£hà[Ü+`[; t^�®H±×•÷$(E-‘à7°<¶ˆ,¨c¤\$_†ÄL|‰LîæŸçåjMf7¶€-Áç”@·#XŠx¶ÈýzGˆÊ7Hï<(ä:ÂWÒgm*Íó`ú2ÓÚüùoÎë x [¦ÝX����IEND®B`‚IMAGE 351 ./arch/spell/Bolt/sunspear.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,Òic2�c��1�cDÙ¤���þÖ�ÿÿÿ�Ì�ÿÿ�ïå‹-pK���tRNS�@æØf���ãIDATxÚµSÁnÅ {¬Ø4ùÿß]­¢-Z{˜–C„À‰£|Ž íóÀ  ëð®í`&=r€¿¨$ XÑC… g€–êŠÞÃ%ˆÉH;±ÃÌ ¯yÊ*Õ{£*-£ ÎY‹Û8+„¹…ÀÝËäìeŠî„Ù•âè�)ö™Ú…DÎ'ÅþÞ·¬ÂIɲf}Fȇ®¤ÎŒêžÜkÞMŒÐî;nÿ/á<æìÔª‹Qw€ÙWƒÏ÷:àÇ•Ÿ8j㹚¢| QÄ×Ù=[Ö¨¼8�ȽUþOQÙ^Co›µ¶ÿÚÍowÐ iª‘V����IEND®B`‚IMAGE 334 ./arch/spell/Bolt/sunspear.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,�c��1�cDÙ¤���þÖ�ÿÿÿÿÿ�ïå‹¿¿¿c &���tRNS�@æØf���ØIDATxÚ͓Ѳà D¯î.ÉÒÿÿßš¤­m̘×˃ÃÈXÿþ“‘q,S BÂŒ�maR_n&oþ®>�ëU…æI±Ôˆ7° å*[¼KZ8èÐ5)5¦PtÀ«Ëøñq”Ž‹Ñ e®«$\‹¨Üâk;UÄÑYÞã"K½›¢uñžÁ®t?åšÂiþäo›œí•æl@×8ïC¦p9 ¢€E¹é*yˆÀ V+¾¡€Ø«ïeºnN¼.Çaêfïé»Q0€» ºž#*£Ë!äH����IEND®B`‚IMAGE 195 ./arch/wall/swall/swall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���jIDATxÚ¥‘A �1ÇÿºxÙ@\Û”€’ÁJ ú@c“ÀPÁ @Χ٧Ív;ŠÏCƒ_p ¨䚣¬À�+PÞa@“/š/ÒX¾jÁ Ð×*wÀd€­·�ñ Äp�©0<o¼£]����IEND®B`‚IMAGE 143 ./arch/wall/swall/swall_1.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���6IDAT[cøÿiù†ÿŸ‰¯Á "Ä¥Dl=Œø#>í‡_ëaħÿ0â+œø '¾C �ÜûrÍÊ!œ����IEND®B`‚IMAGE 146 ./arch/wall/swall/swall_1_half.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���9IDAT[cøÿiù†ÿŸ‰¯Á "ÄÅ&¶F|‡Ÿöȯõ0âÓñN|†ßáÄ¢�î$vÿišö©����IEND®B`‚IMAGE 151 ./arch/wall/swall/swall_2.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���>IDAT[cüÏÀÀÀˆ›¸"f!±D0‚ˆ ñïŒøû�Fü>�#¾7Àˆw 0â.œØ "ðZ$�J±(pya0����IEND®B`‚IMAGE 156 ./arch/wall/swall/swall_2_half.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���CIDATxÚÝ“± �0 ÃÔÿŸî–†`М<IàÉÉf*™S%s^e! ´d¡×¸ 6à‚pîÆ]°„O!ä‹g]mŒ‘x“b¬����IEND®B`‚IMAGE 172 ./arch/wall/swall/swall_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEçÆ÷���Ó¡���tRNS�@æØf���TIDAT[c`à```à\k@Ä !¶J H¬Kq߉ wýº 7PJp-R‚¼..P‚«£Jð B .%%(ÁRÂÿh>��€`…]•Ô����IEND®B`‚IMAGE 138 ./arch/wall/swall/swall_4.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���1IDAT[cúL ¿` ˆø�ç~‚‹]€‹m‚‰ý€‰ý‡‹ý…‹ýÆ"ÆL¢�û—‹8×jŒ����IEND®B`‚IMAGE 136 ./arch/wall/swall/swall_4_half.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���/IDAT[cüÏÀÀÀÄ@ñ N°€ˆpî'¸Ø¸Ø&˜Øÿ�˜Ø¸Ø_¸Øo¨�c¼ݼ£©����IEND®B`‚IMAGE 117 ./arch/wall/swall/swall_5.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���IDATcøÿiù†ÿŸ‰¯Á "Ä4b�mömÁŒ=§N����IEND®B`‚IMAGE 158 ./arch/wall/swall/swall_55.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���EIDAT[cúL ¿` ˆø�ç~‚‹]€‹m‚‰ý€‰ý‡‹ý�±€Äï 0Öß‹ù�\¬.Æ�cýƒ³X ,�G¡5ßÍ Â����IEND®B`‚IMAGE 182 ./arch/wall/swall/swall_6.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���]IDAT[cúL @€ƒøwHüÙ$~T� ®U@â«+`/ïAÄ/ºï ˆu¤ãˆµiTì¿?LÝÿ0uý€êþÅúü&À�UǼ‰,�›H"‹>3š����IEND®B`‚IMAGE 167 ./arch/wall/swall/swall_7.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���NIDAT[cøÿiù†ÿŸ‰¯Á "ÄEˆ…Þ3A\A ±z7À�RWä.{$¼)¹ Uüiñnbºàr‚ê0à°*�5ŠfÁˆGð����IEND®B`‚IMAGE 134 ./arch/wall/swall/swall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷���Ó¡���tRNS�@æØf���.IDATxÚ呱 ��ƒèÿO{²%ajÂR®3fFALtÿ@÷ ææcÅW�Ë“����IEND®B`‚IMAGE 160 ./arch/wall/swall/swall_8_half.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���GIDATxÚÕ“1 �0 õÿŸn¶¢·8Ý‘NWÐf@e„ˆ…á�·/õE ¾Ô7¬ ÄWAðÄçôÇ <9DŽsɶ����IEND®B`‚IMAGE 187 ./arch/wall/swall/swall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���bIDATxÚÕA €@ “ÿZµ‰‡âÉ”\v‡¦‘!Éçð±Ò àXшøzƒ|™ÃXù¶ÆØÊÑ�H°J up;�ýD, XYs dÍ%5×@쀬™�U‡~¨&Ì…._����IEND®B`‚IMAGE 137 ./arch/wall/swall/swall_A.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���0IDAT[cüÏÀÀÀˆ“¸ "f‚A±D0€ˆrñNÜ…»áD9au x-�ê¶sßœ����IEND®B`‚IMAGE 158 ./arch/wall/swall/swall_AA.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���EIDATxÚÕ“1 �@ ¼ÿúF)¨u­)NÅ[v-€ô€šå¨À}$ßÁ—÷m`©çûÀzj÷'ïÜòXá¼G����IEND®B`‚IMAGE 187 ./arch/wall/swall/swall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���bIDATxÚÕA �1“ÿº°XˆÃžñ`2T+C’¿¢¹ƒ$pK.@¬øyƒ<Í¢'ß‚f¾67„×8NŒÖ’w -è�geîpμ� /yÚ‚¬_¢Wå¢'€u›ÎE‘ú����IEND®B`‚IMAGE 174 ./arch/wall/swall/swall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷���Ó¡���tRNS�@æØf���VIDATxÚÝÁ � CÝÿÿtAÖFÔ©;mL-~T ÀÕ>˜ä„Ñ@ðî H¤_*·‰ ÿaîÀ|H„oΨwR�NPÐ&P¾ <ÞaŸ�ä³ô³ƒ����IEND®B`‚IMAGE 171 ./arch/wall/swall/swall_D.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���RIDAT[cøÿiù†ÿŸ‰¯Á "Ä…‰Ý½ ›9Qü?ƒ �û†Ý›€b ÌÿÊKêÞ=Z"`êî^ )YUW^LH{áb�{„_æj·Ð����IEND®B`‚IMAGE 185 ./arch/wall/swall/swall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���çÆ÷·³h���tRNSÿ�å·0J���`IDATxÚÕA À0 äÿz— KkÆNs1„F$­±è/�žŒàÉ�]6È( ©¯MÔ3�ÎÅ3u°¸¡_¾QÃíJ´(9ðÈ¡Êëäí ¸V¿|ÃkÙ‚ñ¦½����IEND®B`‚IMAGE 179 ./arch/wall/swall/swall_F.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE���çÆ÷·³h���tRNSÿ�å·0J���ZIDAT[cøÿiù†ÿŸ‰¯Á "Ä…‰Ý½z—aæDÁ™ ‚Œ‚ »7­ÞÍ�å¥áå ï-{$¼ª ¼ Q¼{ÓâÝ@bán ’àrêÀ�›½p1�.ÖW|Ýc����IEND®B`‚IMAGE 437 ./arch/ground/swamp.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��-ŠV�ÿ�ÿ�ŠŠ�c��Ì��íí��ÿ¯öû›��RIDATÁ1ŽA@ÑÚ€€°4”J¾­eÔ±d‘¹´Ójæ½í/�;V¾-«k@ÓBT{Á+•!ÛÖu0ðµõŸ]ü/7ÏÙÙæw$ÎÙ©yUlýÔzŽ˜þHngaØÝ;hz“`ÿµ„w]{1dÖýo½œÍGº‹²?FÛ(M#W½ÈxulÔÓ¹ïâ|v7ßÈy¤"MiºdWôêI•/¸&(”àÕ| €½qê„ìéeéL¿÷“#d…:z{Ss{A€â”åÛMîÍì‹V~]ÒÙÔ>¤’n!jåpÀSQÿýõ<€asÆP{‘Á€õ­-ï»Wê6Áua±ðj °‘¾Y HÉÒ°z dó.¤OçÙkCr Fbfj kR¾žI–Ìëáõ³€²û`¬ yÉWЧ–ËŒŒÿÏ$£t•Dµ ����IEND®B`‚IMAGE 2890 ./arch/ground/smooth/swamp_S.111 ‰PNG  ��� IHDR������@���[a?���3PLTEÿÿÿ�Ì�-ŠV�ŠŠ�ÿ�ÿ��ÿ���c��ííÌ.‹WÌ���œœœf¹6é���tRNS�@æØf�� ÅIDATx^äœÛnÜ:E÷¥¤vÎ\ÿÿkg@R.P¢ºº}` wb¿,­Ú,IpüÒAQ:¾*Ì4ÁVűÈ_ð/õóþÿùrÿo²?$É ‘bŃl_Tÿfí¬8¹ó þ¥þßlÿÌ¿ýAR¶7Sÿlöé_fűÈ_ð¿Ý_ï÷íûg~—ý!þ"IOùI¿6Ioôf²âXäÆŸ8€‰Wý¨ûëý¾{ÿLµòïéÏX›(CÏ9E’–(?$Rön‰Ç"põ‘›—¼ìPö×û½´?€Ûý›R÷cå'­îï;U¤‡mW|<ZÜÕÚ>v“›N1V‹PÀÅÇå¨ç'°æ(2ϯ8-�·ûw¥îï=ëýÓoÿ<ðÆþ ½ï»_äÜEço™´IÊW¾îpòWTó“w%9€ƒ£È<¿àÜïŸÔý'?AuW¼iÊ‚ì¯b‘Þ+¾ `‰¦6C29ønCWŽUÀì_jr~ò>39€ƒ£ÈiþsÞÁÓý»®ûO~‚›ù®ï÷BYýEè ÷ŠóµÚM­'(Q<¸%úà98V±Îþ¥–8ÍoÞ4?ùñjƒ‡"Óù+¾è¯8îrö“¤¿àUÿ€9e¶‘Þ+Þ¼‘¡ÞB…¥ƒ‹a\²¾.µ0ù3^ÌϽr~òÜÅÆ¢s™Î_ðy¿¯ï¯ÕýÑõüƒ†Œ+pcö Ž* nÖ^ñ Âeµ’}“é}grvŽ#c|\rš?@ïž|�AæJ¬ú3§ó?áƒ~|}Žýf?1pÞOø8¨…+Ç"ƒ£Š¸‹Ú÷Š›¢,z# z7%‘žjãXçäã’Ëüz¿ýÙÄ6oð1 /î·æÈ õw¶ØÞ&7ÏÿÉùÉòùÀ}Æì¯:G["m•W)¨±´ühÝén6Ž2Ýg°û apà˜ß�³¿óÅù)¥l‰UçG‘Ö¿öÇ[WŒh|q~M/�>, S–~ÆÜ¿ˆ6R¯{<&’ `̾HRêeÈ™ì>éøœßêF¿Ò¿œŸ¡ôÑÒüçû«âä½ÿêçüÄ7!°<¿˜w@çÙÅùd÷û7#ç£ÊxQ(Q”=®ŽÙ[dã¥0špÿ¢vàs~ök÷ìS“8ù�šÿ|¡I¹ò|~/çÏýÒ?8Ö9ûI쉿¶SëG0IZä©q¼j[ä¥ÔxŸóqôïž}!c±ÏO£Ø?4º Ä_¹…=öààXçì'iÊä× »WÇ´€N>I¦ñjä‡ÈáßñÇ|’,N>™bHÂÁ±Îòü¸Oí×6°cy~FòiÿLVœ}dàÑößîWaKàµ(bûå…/õï—Ã݇Ë' El�D‘“¯¼ræ˜<9ßOíF‘ÙÇÓ ~Ü¿ëùǀƗû3ûõ ƒ_CO¿\@掗äoé½çÒ;yÛO;yégƒO¾aòÅÔÇv~cø(2ùx’=ûøXßÇÍkÎçÏ›»ñì#ƒæƒ£ )‰ÕË^û&ÃoMe뮟`kq¿!‘ÔäD&¹Vï•nÏOòί÷ÇM$æ/÷½?çOýc �çþä×ýO}êóçÕU/@í‹$ù–Hþs×§Á"þÏ/)õoéß]´ðÑвßÊŸ¥§ù¸ O>.¼÷ör2ŸâªÿsÌ¥Ÿ$¸Ü_×[wpTéÓvORû~÷ù#$ù¡ôg̶ÕCÏ4m1ýkïÄÏðâçùyÃqÍÒÇ”‰ƒȉÛþÎÝûÎçï|u¾ëÂ'GFýo]í³ç OAYÜÒç™àv5MoöäcÊ™wHžý=€l.8NYúYá {næ“É[Ùõü-Ëý‘¹ì‡*dýÔ¾$ßñ$ö¤? "‰ÕÌ 7FúML™8ó² ùÔO7'¸æïú_ç�pÛ¿ð±ùžÌüµŸ�(Rù©xKôx©Ó?ñÛ(³}> €]ð‡’û¦3ÏóË–|³¿ð¿ƒ�¸÷Q¥¾¨ö½‘”øùÖ©õѤÆsI"³ä½ÉÓŸúÿà=U¨P\Xø6)Çd“ésb²Eseµ ÞÏ™äó|~0$òæÀ›>ª”H E*Ÿ|Ïl“éŸD4¾r›68ÉË €äÓ|R$÷Ý?ˆ£ nvE*_/K’ P¶ï|›¯õf¦Óù“OóI¹ýùAUBñØDRD‘Êy�íÇ1øØoú»;¿õ}ñ+NÃ"G•ÏŸ!»P¤òùª£ ©=éOüÛ_ü‹ÿzï8$#ü“8ªPdHZ^ü->¥ -ÊJŸÇ�'·Þð+Þ¢ÝþIüoÿÿ�o|¾Éßéïìÿþýõ‡ôן¯³ü|zR%ÿ–~­û3ßÛÏuú_Ûoõx¥ÿíœÁŽã: «I%ûÞeÿÿs0fCx,‹¢36ŒEêÚàÐÒ$9$èzÛp¤ßα~>|»“W÷ ¹ß 8éü±`÷üu?� J<«~:‡úùTØöãYq`¿1‰KÊöSÞÏ<’*÷Ÿ÷ã©â�;ý~$s¨õó©ñ½ßÉkûUú!Ë~z?$÷_ôHÔY÷×;XêçSdÏ/ùïÒ~1M§¿¿÷|§Ü¼Z»ç¯ûÀ(²îïÓ§ÒÏk¿[Ê~€â÷ß?ºŸ ñ¤Þ½?Õü�$úéì0ßÏ?¼8_óИeÓß§ƒÙIç7ú0ð’€C¬úù}d:o?¤û)ø0 lúù=¦ýÔèû "6Xrfý�¤dý}úLöó9ʲŸó~�p§Dœß¹öüf˜ Øñ D—tÎÀæ�ÑOï2ÓÏç8ϧÄüÍ™Dð·Ÿÿî~Ѝ-~€eÿ„¿`z?&ŽàÏ©y‰£@ýï«âG0g YÈ"ìíýT ˆûe¯\Ùþ÷ñ_üS¸Ç¦ÈÌA�«1Óø­d✌Ò1 ¸˜« 'ñAæ¯þ>×#‘`ˆSøÐõó)bÖ.z‰ˆóøà­úýYø 8 ­!fœË“¨‘¸“jèû~#�“q*Œ"nÖŒŸBf#dù q.jQ¨¾è0÷çiçæ¤wmÉ­ úý|Ä6UŒ€Ùpæ¹äÍŠç3ÅýÜ›¤¿îoæD¿>»Aiì?@’vòâ+Ðñ|lyy/}É‘íÍcýÆ<÷&é¯Ûû¹ÚÔ³”ûêíê˜/>ŸcMøWîÏnÿ ü�(rpÂp;ĹœNÃ\(Ÿ×Ü µÜ°Ÿ ù`¾“€¶’?øæˆhý#ßW1þˆynˆ À“pš‹ì€ÑŸßçËДû9HÖÌóç'úÿ!Ž|¡¿_b!æ%‚•à†HBÉ;\Ù;ÜÀò|Á3¿Ò„ÿ` Øþ|O­…Èæ¾ñtç%C¹Œ€˜ç–H’1ì¯Ë†9Œæÿ@î7€&ý7ôh<b4ß?ß+' ×ÿßìe=ïÄ<÷$ﯫ5ØÏ¥Æh^,¼º“3~)ÉS¿‚’|}>ǥȿAÿ~"Wr¿÷"í¯'¹å9ÀË�4¥~ƒ$Oæ)åÛ~ÿ|ƒy˜˜ç–¤ýõ$÷‰VýyL‰ß€$ÿÑù¡ß�÷qμ[’ô×³Ü ó™¿ rºÌÏóù!¿/Úü<×R÷œgþ‚+óäù²œ#ó�fÉgâØD5����IEND®B`‚IMAGE 634 ./arch/player/class/Warrior/swashbuckl.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���äPLTEççç��µ��­��Œ��œ��¥��Î��½��Æ�����Þ��”��ÿ��J�½��ï����Ö)))!!!���1¥��kkkÞ�¥J1„��R��„��ç!ŒB)��{��÷��Îççç½�ï¥Z­�k¥9�)œZR�B1Z�”„ç¥cR)J1!„Æs9�Î��)”œ��c1”��s��k��Z1!!µJ1½RRRÆÆÆZZZ999sss‹•KÛ���tRNS�@æØf��DIDATx^µEnÄ@D›ÉÌf33çþ÷‰O”ÈÝŠ”EÞ¦õ~Iüˆ~ïmL¢€±Þ-Ê ”Ê)/{³€ aêp¨÷íOÁž02KpKÚŸq(8.jÂÙF•òRB]¤ {ÇUÎäÅLJÇqjÂÍü©ä-]YÐh‚úÀyÈ8€Ì²pCÊÖuÓ« ”r.„úûνœ{¼¾€‘€,„áÔv:X[ rH…ï-Ñåš�0ê!‚ gamŒ–› Ý­ ¶ ‚d0@Ëm ÑÛiíºý~ßu÷ÈáÐ äšà„اz/¿P£ñå0 ª¬³8}�&¥™…#y§Yò86¬”ŠÊÓÑë›±V©ŠŠ|‰‚øÝ$ª­dõK^„ùÇ*ÍÂê‡02} e°^J£ð=œ$æ'sð_|�®¿ãh4{à����IEND®B`‚IMAGE 632 ./arch/player/class/Warrior/swashbuckl.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���çPLTEççç��µ��­��œ��¥��Î��½��Æ�����Ö��Þ��Œ��ÿ��J�½��ï����”!!!)))�½����ÎkkkÞ�¥��R��„��ç!��÷ççç����{�ŒB)1¥­¥�k�”„J1„9œZR�B1Z1!„ç¥cR)J”œï¥Z��c!µ��s1”J1½��))Æs91!��k��ZRRRÆÆÆZZZ999sss�)�Îß>Nä���tRNS�@æØf��?IDATx^­ÕŽÃ0¯Â\f^ff¦ÿÿžuZå%q+­´órdÍØ†?ƒðf9cŠ�`†PF(§|‚u0r92¸q>Ñ”q‹Ù‚ÛЛÀ=‚9œöËAq–·ˆêájÐZíD>L¤t]·<]éÁ~Í“šú–_öpt€˜m;u)×MŸ—‚»æ=a[A;zñ^o˜pJÁÅ8b²FA¿Ýöy% ”sÄAзE×¶¡„ƒ&á̲PäàÚ”!¨³;u"‚éõÈÞ>T88l|{Ýn×óŽOHt UdAx~q †*Nr¯ 0ú,Nó NÁÈL©x®ï'é³Ñ¿©DÅÈyš˜}¨ZJBÌA(5z³tͳUð>øøü2ùLÊPæ"S£×A¶zÍÌ o@û"ÀF†Cø_~M¡^¸8Y����IEND®B`‚IMAGE 471 ./arch/player/class/Warrior/swashbuckl.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���±PLTEçÆ÷�����Î��¥��Æ��Ö��Þ��œkkk��ÿ��÷��„�!!!��ç��çççÆ��½ï¥Z��Œ!��!)��Æ„½��­ï��µ��k���”!Þ�¥){�ÿ)!11199{B)­BBBJJJR)ZZZ��JsR”„ZZ”kœÖ”s�œ��R��ch3¨���tRNS�@æØf���ÔIDATx^­ÐEnA EQC!4„03ãþ–RÆíj)ʾ#Y2ü%Ê3S,íQi¦861SlïGÁ¶ª˜*0"Sœ‹ûYøÆâk•Öz÷*ïV§Öè�¬½´3­Œ¤ð¢Ù½�`ubí§¢}ï¥|-dÚC�®¾_öȤ«÷¹�ðt{}7¤óñÌÝ$ßîM.<eÙ{ëù&¸æä\È`-D ƒp]P¨yt(Õ¹€E€XOõÄŽË)€utõþ½k2 ù~œÁ¦����IEND®B`‚IMAGE 447 ./arch/player/class/Warrior/swashbuckl.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ŸPLTEçÆ÷�����Î��Æ��Ö��Þ�¥��¥��÷��ç��ÿ�����„!!!��œÆ��!)kkkÖ”s��ççç��½��ŒBBB!„ZZJJJ9111sR”��µ!Þ�ÿ){��R��k„½ÆR)ZZZï��J��­�”ï¥ZKë-™���tRNS�@æØf���ÎIDATx^­EnQ Ýaø3…™ñþg‹#e—±GŠRÛ*·é/F rΦÖ|m]6ZpáëZ øA¥›®Ë¦S�žøý8Î$2„ÜüüG¬¶¿ëœwsÑ_®TÞŠžƒ³f'úÅíßm¸—<mnöÁšðmG=a±ÆWÏkÁðvg|¹Zs1æg`NÊåj;:pècLñ‘ ±ãé,¦þ$Á×,å�@ì x ‰ÊÀ+ú“4)4)ªž€v*XNxMhõ¢iè¿ù¤� 1’ÞV����IEND®B`‚IMAGE 663 ./arch/player/class/Warrior/swashbuckl.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���óPLTEççç�����Æ��Þ��­��¥��Î��Ö��”��½��œ��„��µ��ç!çççÖ”Z���J1œ��{kkk)½{Z��½{cŒJ!!!!µsc��ZJJJï¥c��c!µÆ�)��Œ­¥ssBBB��ïÞ”kZ1„��sR„kJk111{RsÖ”cÆŒk!œÆ„s�­Î”kµ){µsZ­kB��!�c!Î�Þ��kcB”�Œ9”91)�œ)!¥R9”!”��9½999WÝÜl���tRNS�@æØf��RIDATx^ÍÕr5!gPY—ã®q÷üî.ïÿ4a³IUaïÓPÅÅ×À‡ébÑL~†ÃÀJ¶§ †‚1CB ~ÚŒmŸí4@Éôº{Ð=‚fþöóÛ&Aq¾zÓ{;þ>)äø<†á_ƒŠ3ÑÖð„^‹1‚sÑ_†­ÉŽ›ß0!¸!”"εøçäL ¡×’F¨‚.ÿk"ÔWÙFäÚ‰è·MAjɹ2JÉjÁ*ZÃkÉc|×VÊ0ó>|\:“HÓ4I°¢ßÇ5€ûޤ6ÏGXñàw‹l ížUÂiyp‘^‚Caˆ³| `Þé¸bÞIªc‚x¥cÄh±F†˜ÕÁ¦ß'Ù^U·UNj’'y>Úû‰u³ÿq ÏÁ¼¬ëì+%xˆ‹ìA°†'/ªáÔ‚Å›Çnæ⬠/˜;·˜ÁN�©U����IEND®B`‚IMAGE 658 ./arch/player/class/Warrior/swashbuckl.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���óPLTEççç�����Æ��Þ��­��¥��Î��Ö��”��½��œ��çççç��„ŒJ!��{��µ!�Ö”Z��kkkJ1œ�­­ï¥c!µ){��Z)�µscBBB��cÆ��Œ!!!½{Z��{RsµµsZ½­kB9”��kÞ”k!”½{c½JJJkJkR9”Δk)Ö”cÆŒkÆ„s91)!¥¥ssZ1„!Î�ÞsR„sBB)!œ111�ccB”�Œ�œ��9��½ô:O#���tRNS�@æØf��MIDATx^½Ån+A�»a™Ìì033çñÿM<’ȳ^½[êÒ‡*ÍtƒKÐYZŠCa`%+V¡`ÌXVøˆ±•ûçÀƒ (éÜt÷»¡š?k‡Í‹ª RŠon­íVù=Åcñs4z wT‘âFÊZxJâø ì1Š3Þ½ü“BÇo®¯×ŸàÑú%Z“†ãÓ‚+e(E$œk±íT®~.©'Œú-hË ¤–œ+Î4"Tã»NÐng<ÁH)ÃÌXö–Á!Ë2ßÇ ëë˜y|j¹oý*ZŽ�Ž…,Eáû6x׸ Úñ¤w p•]»>Aìå6"�4‹Âñéí0€MÀN¾è­Ž_Ó¯¬˜/°×Çé&Ãtú¼?·Á Ÿ˜B™=Þyq¡O>]$ywÖ:¾LŽ8ø_‘À·ò2‘yy^Wr����IEND®B`‚IMAGE 555 ./arch/player/class/Warrior/swashbuckl.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���äPLTEçÆ÷��”��kZZZ���çççï¥Z��œ��„�µÎ��”��Z��µ��½Æs9��Þ��k�„¥�÷��B��Ö)��Jï��ç��R�)111��c1�Œ��­�­��c9R��¥Þ�J�½”œ�Î�Ö!s�{)91k1sB99Z)Z��Œçk1Rs9!„JsŒc¥­c1�µÆ{BÎŒcÞ”Z��s���œE¯DM���tRNS�@æØf���õIDATx^½ŽÅn1Ýæažeæ 23ÃÿÿO,eoq;·Ô¥UÒkbç+ÜGŒú9ô.­­^l‚³~]EŽ`¬ÓhNÁë¸HÃ4ðÞ‹BCŠÛ±ÿ¦µ”ÐûǧÕtù;&ù<>½á;Í2°-ÁUu{qÉOúmÛ¬PBõZü%,›mßÌž…jñ`gÑ¢2ÂúÅ”û~œgœØÑZmÑ|pÜ$xÐçébPÖ@0`½Êw9êù^ >B9èJI0®>»^0�ó&˜ÞÀŽÐ€%R&žñö&Âs,ñ®œ4¸<¸=3šgÀd‡ü7ßïr6ÔÖ����IEND®B`‚IMAGE 587 ./arch/player/class/Warrior/swashbuckl.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÿPLTEÿÿÿZZZï¥Z�����œ����kÎ�”Æs9��Œ��R��”��Z��c��½��Þ��„�„��­�µ�ïççç¥��µ��J�Ö��Ö){)��B���­c1��ç��½)!s�÷�Œ111­c1Œc¥�œ”�µ)ZÞ”Zç��¥Z)Z�Bk��)�Æ„1!{RÞ�Îs9!B!)99œ�J�{ÎŒcÆ{BB99��{��s��1k1sk1R„Jsb€€@���tRNS�@æØf���úIDATx^½ŒÅrC1ÀÖð˜™ÂÌeffîÿK“[§ãõ±ºJ#³‘AбëF)~÷y¤é’ E]}fH-ÓM_Ð@ÙÜ1Mj§ØbÏQ(e¬,ÑÀøø\÷:ÝæŒ÷Ï'A˜ƒ äÙÒ¬·÷zÞ(A�¡Í¦Wko¥Á¤¡ˆü2ضÛaשôX½ÞtÅñ«Ã#@ …eÅÇ'5Ü׬¸><E4%Å™á÷/Æ€pyuíÆý b€Án¼êön€ Øáˆáƒ'ž½ŽøõŒe*Ÿ/p¿BýI$|åqs™,Pþ 2Ø™Ïä^]j¤Ê¦ðÿü�¦Ärð����IEND®B`‚IMAGE 195 ./arch/weapon/sword/sword_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaààà���@@@¿¿¿0ûaŠ���tRNS�@æØf���YIDATxÚíŽ1€0ÃèÉÿL¤›/ ¨^:Ø©îØ &úS"û’¿øý>ÏàyÛCØnâÞÁ=ï;¨"ß_µ°IÆý$Á|€ŸI·Ÿìû댃<,äêÊ6¾Þ����IEND®B`‚IMAGE 198 ./arch/weapon/sword/sword_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaàààG$���@@@‚B'¿¿¿Ì!O£���tRNS�@æØf���VIDATxÚíÎ!€0 DÑ&Àosÿ ³I·¢Š¾‰x+ÒvBY?"Xx°ð“ß?è°ðŽu ºu 2ñÿer3PÎAƒ‚™_¨*f®¼óãóð®ûhÝú–)`GÌ|����IEND®B`‚IMAGE 198 ./arch/weapon/sword/sword_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaàààG$���@@@‚B'¿¿¿Ì!O£���tRNS�@æØf���VIDATxÚíÎ1€0 Á``ƒÿÿᜨɹH…”m\Ìn+¡¬Ÿ~±ý‡…w¬kЭkýOz 7å4H˜ùý�™ÉÌ5ÐoæuÞrm¡EcS„����IEND®B`‚IMAGE 204 ./arch/weapon/sword/sword_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaàààG$���@@@‚B'¿¿¿Ì!O£���tRNS�@æØf���\IDATxÚíÎ1À CÑ&m?äþ®%昉­^2<q Šõ;‚øýœÓ8»=¸½l`÷*Œ~¿ ™øÿgrSPœƒ ¿¨*h\Ž—÷ïëiðîó׸@ÿ³����IEND®B`‚IMAGE 157 ./arch/weapon/sword/t_dagger.101 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaàààG$���‚B' ~n���tRNS�@æØf���6IDATxœc`â€5]@¯@(ˆ†‚D ÄÅÅEH "aii)ÂÆ`Š] a[°9lH�6Ò ^wSS����IEND®B`‚IMAGE 154 ./arch/weapon/sword/t_dagger.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaàààG$���‚B' ~n���tRNS�@æØf���3IDATxœc` ` $d:\XCƒLC‘½Ç*(¡!®¡¨’Šf(MBC¨�.%¶¡©k����IEND®B`‚IMAGE 166 ./arch/weapon/sword/t_dagger.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaàààG$���d3‚B';¢šQ���tRNS�@æØf���<IDATxÚåÍÁ � ÅPD«ûolX ž ½>ÂÖî9q“O—'êuñÞÇ}‘îû¸×Šx™|(׈Î]Ó¨o˜Ê>����IEND®B`‚IMAGE 157 ./arch/weapon/sword/t_dagger.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaàààG$���‚B' ~n���tRNS�@æØf���6IDATxœc`â€5]@¯@(ˆ†‚D ÄÅÅEH "aii)ÂÆ`Š] a[°9lH�6Ò ^wSS����IEND®B`‚IMAGE 166 ./arch/weapon/sword/t_dagger.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaàààG$���d3‚B';¢šQ���tRNS�@æØf���<IDATxÚåʱ€0Ä@ñFÐÇ̸€»+ÕrZ¶ÿšÿýlaNû‘?8.óŸk™>E@üN€ÊQ}­oØdkß����IEND®B`‚IMAGE 155 ./arch/weapon/sword/t_dagger.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaàààG$���‚B' ~n���tRNS�@æØf���4IDAT(Sc`  EI¥½�khˆkh�²€  „™¢¨``2EáiÖ�B”��4Ѷlg‰¸����IEND®B`‚IMAGE 167 ./arch/weapon/sword/t_dagger.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaàààG$���d3‚B';¢šQ���tRNS�@æØf���=IDATxÚåʱ � ÄÀ'Á°ÿÆHéùÔ·g}OîV¾67œ×὎ÎÃûHï"°.u®G]¤wú¹·oÙBH����IEND®B`‚IMAGE 155 ./arch/weapon/sword/t_dagger.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VaaaàààG$���‚B' ~n���tRNS�@æØf���4IDATxœc` 4�M @(‚_ ]\\\!Æ``è–––Š] ¶àpØ�ŒÙ—¶È_����IEND®B`‚IMAGE 167 ./arch/weapon/sword/t_dagger.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaàààG$���d3‚B';¢šQ���tRNS�@æØf���=IDATxÚåʹ� Ã@óúïæ P À‰78` ôöœÀÅ]õ‹¨ßÅÆÿ¹6ö‰‹ŠI<òYÔ^o˜½¿S����IEND®B`‚IMAGE 595 ./arch/construct/town/t_house1.x11 ‰PNG  ��� IHDR���@���@���·ì���sRGB�®Îé���9PLTEcDc2�1����¿¿¿ÿÿ�±!!ÿÿÿÙ¤��þ¿ÊŸQ,-ŠVþÖ��c�ïå‹@@@¿¿¿ ›-���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ5ÿ´��†IDATXÃÍ—Ûn! ¡§\úÒÿÿÙ.acL„a#•ª‘Eñt�;Éóï4CΊ_9ýg �:‡qÿVçÀòÝ•¯r`�ç {H�«t ù_®(èù9W ¬º”’;1@Ì íóÝëxÒ`©–ë&@*$í=€=ƒ+‘è΀�H¬÷B*áÎ@Û °Ó éþŽ *À•÷ƒVk+g ¨«D¨n¡(w ,˜w•ø Á} Úwå`uŸLŸ28:õÎ Œhv Ü©Á«õŸî 0P~Iêñx½ÆiH"ÈùÞ—bH"#àþWBH'9 ÔRH"#ÒßÉÒ!¤“@–ÆiH"#î뉳NrÀ<KÀˆ€õ!�6ª°Ýà�´é„Pºðpxˆ±«øßo×îe†´FD÷%¿Ä øÉ£ÌÀ·Ff�’ïñ.ß[�0@õÊžä·Öˆ0K�Ì�`�ÖE²€ØG›€áañL`xÚ¾–“:#3ò3÷F#E&ó¾Aâ����IEND®B`‚IMAGE 472 ./arch/construct/town/t_house2.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ���ÿÿÿ¿¿¿�‹‹�îî�ÿÿÚ¥ ÿ×�½½½LrF���tRNS�@æØf��hIDATxÚí“aoƒ0 D¹´ÜÆÿÿÃõ-G XfUªªÚd¾¼Ç¥ Ëçr"hÅ�O¸MÜeÝuxVYrI(‹Ç|™Ay ã÷!°Ð2ÎÞ †ìåÌà64ƒ•_)™)·€}:/ ÁÈ?žh€½%eÁ¶Ö(ëš Ž›uT O7Њ¼F°ú^“m!ˆÓkü``.X•—!ø£A(¼Á€›@Pã%ŒŠv<•ïG[Øáß ,´ž âׄ!ß7ˆð¨A.8ãåz ã©|lAÿz㣯ødæ æ («Ç5ÁÈÓ°" “Ìõ ð]–· i€ô–`™!¨óÀòž‚V⣠œ3Ú%­%ÏŠ”û§­øw¡>€à€T�ã!1Áþe¤ÏÎç‚mÛB€N€T€|V�§$rÁX�Æûs&0ÞΪaÕ,ÿ™ ·!»ß )F����IEND®B`‚IMAGE 506 ./arch/construct/town/t_house2_fant.x11 ‰PNG  ��� IHDR���@���@���·ì���3PLTE���ðTT÷gg÷kk������ ÿ�7d7ÿ�¤~N†Q ¡ùùÉ P)B$d4!›[-øÝ=þ���tRNS����ê‚´ ×��qIDATx^í”ÛŽÃ DénÈ­íÿíb•F;¶FT}Yí$QüâÃÁDI/�Št]Ü~•àTÒ—¸©„Q°@Û÷˜Ÿ!�ˆx×�ƒ <ÚB€–Ø€ï^ÒŠÀ gXÁ°�¨Œ px¡r†€nÀí'€@ >€& h!§`Íó ÀÌ)`ù(šA�>Ä"�{ª¯ÿx`ki+ˆ3hÀÞ35Í€úì2q 4BÕ H$€$6¸>\9žž!�»¤Ñ°Èq�o\_tD 0�/:ÂÇ2@�Ò  �é#'À�9 ãqªÀB5¯Ï�ôýç5â'È�ƒ×œï9Wè`´æ{ƒttª€íÏÚëZ °[°mVpälýÖ¼6H7À+¸v�Xl�}Õ�’0ví¨¾€N�°‚k°ð¼ 9šôüç³NMˆtúŒ����IEND®B`‚IMAGE 190 ./arch/misc/t_rock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ¿¿¿‚C���tRNS�@æØf���]IDATxÚí1€0Óÿ¿™6BbàNæ:£-elþ�/Þ„Ö'p`“™.¸ÆAím4å ª"ïò*¼ª§×ÒŠ­NšsVñäábyIØM €¦®àfô0l¾sü‰s9u7‘����IEND®B`‚IMAGE 209 ./arch/weapon/misc/t_star1.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���ŠIDATH‰ÕÕÁ€ DÑm•î(‹NÖƒ FŒGýÏàE`÷!øo€ÞD¬èè „HùsÂPçB "CÊ‘®HôêØé‡eŸÑVª¯ŒÔ A¤[= ¾æf©vza2¢?¢ÄCC‡qS± ¾Ì§Ç ñ4�èMùÀúÿ À÷s�oø1䘉6Ü����IEND®B`‚IMAGE 191 ./arch/indoor/table_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���‚B'Óÿ{ß���tRNS�@æØf���^IDATxÚÝ‘Q À C×%÷?óÔ~¤ƒ²*Â`‹Uh}$ Ç¯„T8��Ûò"ÇÁ� p(˜GÐÍGµgg€î ˆÀþC¥ª°ò—&\“âþõê4ù’.¥TÝfÊ ����IEND®B`‚IMAGE 224 ./arch/indoor/table_1x2.111 ‰PNG  ��� IHDR��� ���@���LP…œ���PLTE��� R-���‚B'G$Çe���tRNS�@æØf���IDATxÚíUÑ �!ëfÿÿÍwj"¢½Ä¹¢¤ öÒ¨1–à‰�å ú–n"¾hM>qH˜Aâk‡¹ ˜§Š€ýÍ›o |ìP @šÔ=<"¯º.0[O9u0¢‹ê¢º¨#‹@ñÏ›¢tøsÂß``ãÆoÏ/Êb ŒNVè����IEND®B`‚IMAGE 198 ./arch/indoor/table_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���‚B'Óÿ{ß���tRNS�@æØf���eIDATxÚ½’Q À Cפ÷?ó~ e†Ð ‡A¤àãY‹×Ñp‰x„*�²–ÐŒ�¤^¡@z£�Ôn�k`d7‰—€ô8ÏaždûÓénrìÁö_±d2ðû Pj~B ¥þ+7Ð0ùרK¼����IEND®B`‚IMAGE 236 ./arch/indoor/table_2x1.111 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE��� R-���‚B'G$Çe���tRNS�@æØf���‹IDATxÚí”Á Ä0BÍÿó–¾Ã°=4Î!‡µaECèÕí]}ƒïc{ýµ4 e rM*˜\ æzÉ YMwØ\1§èjIˆÐ rƒKz^"E×˪?å>ƒ¯XÃEWKZV!@˜@MĉÓ+ õÿ� zd‡à˜<ÌÆµ}����IEND®B`‚IMAGE 259 ./arch/indoor/table_2x2.111 ‰PNG  ��� IHDR���@���@���·ì���PLTE��� R-���‚B'G$Çe���tRNS�@æØf���¢IDATxÚíWA €0 ÛÒýÿÍŽE­Â<¸ô ÒNj($¤–˜Âzíuµ@~€€õÃÇ̪ç¡Q�š]�+}±±Ï‡l\„š4 þNo8ös�/8Ð 0’ÈØ·¾‚å8›­j§ÃñþÖ B>²B)ƒ”AÊϘ÷AÞ¤I(Ñ‚þÙ•^i"? è¸ÂwÚ³ÎæÔä����IEND®B`‚IMAGE 211 ./arch/indoor/table_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���‚B'Óÿ{ß���tRNS�@æØf���rIDATxÚÕ’Q €0 C;“ûŸYk,¡´ûY”Y–G†6j}ÀU ò�ŸG/éj€&¡°TÁ77%P îs:BtÄ�ùeÂ0ÀP…–¬è¯zDl¶l®¨Õ%`øG.‘©Ünü#4þüÜÞ¤éEh3k…©����IEND®B`‚IMAGE 214 ./arch/indoor/table_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-���‚B'!Jóm���tRNS�@æØf���xIDATxÚµ“ € CÝîÿÿ9Hr\ã‡P¶ç²‘mˆ®–DüÅìˆ1 �‰1`óQ�]á œ'‘6 êȀäÕWÄ!°®:”s#AºU”Ë<@š¬Wõï@€÷iw?Ûøb?[¥=J›d¿Vvºõ4KÓ`H8¹ã����IEND®B`‚IMAGE 1260 ./arch/indoor/table_burl_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��[PLTE���sB)¼l3���¬^*´^/´d,´e6¼d+´k+´l4{B)½r>¼x<¼€DÄ€D¬Y$´Y-k9!c1!´d"{B!s1!„J)„J1¼e6ŒJ1ŒR9´r4´w4¾r4”ZB¤X#Äx;¤Y,Ä€MĈṄJc9)¬Y,´X#´^!¤c2Äm=ÌR¬Y4¤^5{J){J1¬d1”R9¬c$k1!„B1k9)„J9s91„R1„R9ŒR1kB)œ^7œR.¼m=ÄKŒZ9¤R#¬P”X6Ìr4¼yE”Z1¼;ÄyF”Z9Ä<„:Z1!¼‡D¼ˆM1›^)Ô‡IœY5ÄTk9ÔS¤Y5¹b2t9#J1!¤Q,~;Z)!¦Q/y<$œX,{91Z1~<#ƒ<–]6«T.¦V4)sB1yB"–a5c1„@c1–b;¤^+{B1~C)”cB›a:1ˆC!ŒB¼X$œcB¬^5ŒB$ˆFs))ÄV,k1¼Z0œfL¹].¼^$ŒF'¹^3¼^,!œA¤k3s1¤k<ŒH(¬k,•F¬k4Äb*9ŒJ)¬l>•F'¾g8¬r1´l=¹k7ŒK(¬r@ƒN19!Äl2œE$”LœG$”L$´w<´xE¼x3Çp@´vT´~1B!”J1y4”M-´€CœL$J)´€OŒS,œL(¼MR)!´‡N¡L'”R.‘T,Ì‚CćCœR"´Vp9¼L”W"ŒZ)¼^~4‘X,Ì‘\¦N+Ę]Ì—[Ô˜Z”W,?yÀ���tRNS�@æØf��?IDATx^­ÒC“.K੪¶û³mŒmÛ<¶mÛ¶mÛ6îÏ:=Ý»žˆYÜ\V>ñfFEfŒ­Ðè¥úè£ÔÍý?Ql°CO¢J”'ÔSÔ�¦»ûådÀ6Õ8³¬¹³Ì7 (ŒThÀ5oï¥PöµÕë´z ²E"…F³ÙÌnGêôñÕ˜Äp$ËŠÊmôá;)À^Ð�ñäžä#hHÊyx Àð\#(h`†š¥$̘@˜rHŽ‹IR ïLx0|Ùƒ#=&!Ä;0æx†Ž÷Ü ¿cròhß�+�=Ø7¤ZŸKh† .wg-UÒ4å¬{|¿‚,7Ä%Ó Aäìgï¼)% œ`Ê@k^#„HÖ(Å”Ýàžô}'« Ž/ÃdÊêàp~Žˆ¢é×â‰mé]‹ßöºÇ§&Êö’ûÃ#„IJšdïà_n!¶_ŨڵíGd*7WÐ~2Ų·81ÔL­Ã+¯cÆ37}MGHý囃n¡ZHÃ1Æßàá+rpS%¥®­òA±­ÈJ½%¶2›³4äg-/îÔÀÏ%3Ëžhj]¹Þi³z½V‹Á@a³^<íÿ󻺫Zä!Ï}™ º lyÛT0zi /ñìà«o?‡Ä$I¦É*’oñ‹<Ñ/òâ\¤wÉow¨ãõû?ÆiŸžë‚…·Õ€×tûKÏi+~é‚Uê4sŠnöi-`ª~À¡ÝH³:}õùÿ©jnjÚY!l����IEND®B`‚IMAGE 234 ./arch/indoor/table_cw_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�� R y’’)µ6���bäc=���tRNS�@æØf���ƒIDATxÚÕ’AÀ u‘ýÿ“[(Æ6ÑÊ¡—N™¬,9¸&]ÁP™s xô‚è “|I ¬¤BÚ‰6bKÞX[J@Óží§m˜`ýeBJ(dO\åñ„ñ’ Û1>‘ô4·ÿaÍ.ÉYÝŒëMÿg}¿þˆ™T 0J?b����IEND®B`‚IMAGE 211 ./arch/weapon/misc/taifu_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaa R-���@@@d3‚B'¿¿¿€„~Ø���tRNS�@æØf���cIDATxÚíÒ1Â0@l2 üÿÃ(vá"áhÒ°ÕI#­O:ß. j¿w_¼ùûÏJOE¿FâóûŒêý¥“˜Ó©?žf‡8õmÛ-‘æ †)ËW¦_Yß½ˆW§ðuŠ‹ò#¸ù(º"¹����IEND®B`‚IMAGE 191 ./arch/skills/Skill_Tools/talisman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V²"" R-.‹W���ÿ×�ÿ–‰í���tRNS�@æØf���[IDATxÚÕ‘1€0 !qþÿeÌ:#u«ÇÜÉU“c³ÔäFBãªJv°€ °ñ,)ü°­úpÞe¼†Â½|NN·ú‡ºƒ 9G <†9æ»åí1´’²F����IEND®B`‚IMAGE 273 ./arch/skills/Skill_Tools/talisman_evocation.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEܪ“���PLTE������§I=à R-»·ïÿ×�ÿÿÿÁÅØÀ���tRNS�@æØf���bKGDaˆë���eIDAT(Ïc` pqqq@æ³�y"(@Ì肬L"©ègt@6E EÀM�&‚f £š€ºSP=ƒât°wQýjŠâ}ÖàäPT35SèZ€†  °†2Ð��Òw 8ÏìÜ����IEND®B`‚IMAGE 273 ./arch/skills/Skill_Tools/talisman_pyromancy.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜÅIŽ���PLTE������ R-§MMÒássýÿÿÿÞJü���tRNS�@æØf���bKGDaˆë���eIDAT(Ïc` PRRR@æ3yB(@̨„¬L"©ègT@6E E@M�&„f £š€ºSP=ƒât°wQýêŠâ}Ö“PTçdWèZ€†  °†2Ð��T°¼a,@����IEND®B`‚IMAGE 273 ./arch/skills/Skill_Tools/talisman_sorcery.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ4ã("���PLTE������ R-²""ºè|%èÆ%ÿÿÿUfn���tRNS�@æØf���bKGDaˆë���eIDAT(Ïc` PRRR@æ3yB(@̨„¬L"©ègT@6E E@M�&„f £š€ºSP=ƒât°wQýšŠâ}Ö0·PT“TèZ€†  °†2Ð��¨¨ Hƒîh����IEND®B`‚IMAGE 273 ./arch/skills/Skill_Tools/talisman_summoning.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÜ7H¯���PLTE������rS4 R-Í~1ïÿ×�ÿÿÿ‹¢���tRNS�@æØf���bKGDaˆë���eIDAT(Ïc` 0666@æ3yÂ(@ÌhŒ¬L"©èg4@6E 3EÀ�M�&ÂŒf £š€0ºS P=ƒât°wQýâ}§$Tµ0èZ€†:  °¸0Ð��žÇ ,^n‘´����IEND®B`‚IMAGE 298 ./arch/misc/Container/tanbench.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿc11{{{„B!œœœ¥R)½½½ÞÞÞ���´¡Þ���tRNS�@æØf���½IDATxÚ•“Qà Dm’Ê»ÿ‰»S*|ôƒ&»"3ìŒï_Ⱥ §âÀ‘g7ð‡9ðbiue ¸ánˆd€Ÿ̦ñeÀYlÎËŒ²5éf¥!À.©S±Ù…Tcz¬ ˜O§«H®¨ç¢¢~E(Oì^¢<jVýæùÚ%˜íÇ"vAsa"‡iX6š£¶;Ûd™çd"Çfào •QàÒ6yÿ·Zy%he úNNÃDÞ6éñj§3áí‹@����IEND®B`‚IMAGE 399 ./arch/construct/house/tavern.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���'PLTEÿÿ�¡¡¡aaa�Í�ààà���ÿÿÿ@@@ÿ×�ÿ¥�‚B'¿¿¿��ÿ/Ì���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ)7?ƒ<a���áIDAT(ÏQ± ƒ0Ä…pñu$vH™ÂN“&Fþ$¤†lÀ�(b�º,@CGÁ~ù7c”"çkxÎw¯s’ü�\çAÀßRÝX"T½¹D«òà V¨sÌ^ÙbŒªõ?f4°íÎ:"Óf ‚Œ‚)Dª V€…M /ÞÆ!ºxQ‘6;EjãE)%nLN“^qázFx•þ –Æè º çÊ&¸/ çâx#>‡^sçÌ»%êÇÐÿdLºqò 7‡T‹E"µ.ùEéßQš´¦IþÂkQn"€™5N����IEND®B`‚IMAGE 145 ./arch/gods/items/tear.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�����ÿ�‹‹�ÿÿå—ßà���tRNS�@æØf���3IDAT•c` `Â`p5@Ü   ý0Æ (cÿ (cß4tÆ®0(ce”¡šn2m��Ìæ —.è&����IEND®B`‚IMAGE 140 ./arch/gods/items/tear.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����‹‹�ÿÿÁ+K†���tRNS�@æØf���1IDATÓc` `Ä`°:ÀP†(œe„¦À+¡Œ0#j)Œ1Ê A7™6��r½ÍA£v����IEND®B`‚IMAGE 145 ./arch/gods/items/tear.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�����ÿ�‹‹�ÿÿå—ßà���tRNS�@æØf���3IDAT•c` `Â`p5@œ   Õ#ʘºʘ¶1ë”±ú”¡ÿÝdÚ��Ã, VžÂ����IEND®B`‚IMAGE 140 ./arch/gods/items/tear.114 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE�����ÿ�‹‹ÿ{ô���tRNS�@æØf���1IDATÓc` `Â`p5À   -8c”±jŒe¬„1–FÁP†æ t“i�3 }b³) ����IEND®B`‚IMAGE 280 ./arch/exit/teleporter.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿ�ÿ×�OÍÇ���tRNS�@æØf���ºIDATxÚ½’QÃ0C1ÜÿÎÕ‡²ýÖRAÅ/n”4^VþÛ)¹ì~" rùêxJÎÀ~iñN´ˆ+3[Œ(ÎV€†YRF€‰³�>|fê�ú,mV—‰p�˜+€DàÌ  -¬P¸ŽYµl@k-íd'ìOÜ€šú߀wI@û¤ø éŠ(öÔMW8`_VµÔàëVn¨a]÷¬”¡âZÏO¹×zƒŒm#”íÅ»ú�#ýô‘ðÖ����IEND®B`‚IMAGE 281 ./arch/exit/teleporter.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿ�ÿ×�OÍÇ���tRNS�@æØf���»IDATxÚ½R[1½ÿ+Œ«Ml—™°1&ö2¢ð_v¡-[Î'Ì~Z$KGY–N, åá—&U@UЊOÐüw ‚Ë<%h®\®þ ?:<D€…⦄ô§‰à;)y ’Æ > ú©1‹—! šÊYaEØÕÃÕ$ðm 6ÛL²Þf×’£— ¬QGm¤G½ë¹pø:næ¨ØuáJ&OÀ@ÑÒÖu)¨»,}[ˆ‘·¥`ïâ:‘þ7‘˧����IEND®B`‚IMAGE 272 ./arch/exit/teleporter.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿÿÿÿ�ÿ×�OÍÇ���tRNS�@æØf���²IDATxÚ½’QÃ0CI|ÿ;¯<¢Xˆõ·Vƒ6üð’fñ±tônoddØþ"e/žB†i®•%‘l4_‘n ‚D+qe?JFÙk4·Ðv0ãbñ¢àU‘Â`›[‹E`¶b’¥6€&¯™:f-Ò&àŸ˜ÀÜ$}óŒÝâc:‚ø»¼GߥBç ~Õã²ôh^ôYóº!×åÍ÷ŸlñŒyˆƒÛ~G퉔â[ý�$¯ó7öÞ����IEND®B`‚IMAGE 526 ./arch/construct/temple/temple1.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEÿÿÿ����‹‹ÿÿÿ�îî@@@�ÿÿ¿¿¿²""ˆEä£���tRNS�@æØf��žIDATxÚí”ÁŽÂ0 ýì&”ÿÿáuÜš«‰V{Z^O(Ì0(Ré»ÿ2€WÝøõÁp–ñ¢ˆ`Û£;ÏÒbÞŠèÞ `±3¤<—Íùnh;Îæ‚Šö`_I P!\îøã Ó�©P: ~èSXdÎÃg6Þ "i@0`üf†¬�AÀíQÞ æH¯è¼ŒwÃD€.ˆüË0ï‚Î{=3žŸ ŒwÁÉÃ\€QyÎ hDƒó+‚‹‚% ¼dI |,XÇÉÆìŠn(ÆÛ¿m/^lv– ”(›ô5Ãà+rA/³³Dp¾÷.wže·Ð&׃.»Ù÷z`Ç© Š 8ü6¦èw9Þ_@èÌåî²lHg@…ße¸¿$€<@{»¯qúyG@Pq³$€< B®–Àê/šGc†ÁY�5¨·‚$@';·ÿÑÜ v@Ÿ­ˆ<m*0~QÐøãÇŸ! ›(ï‚Àçà¼X�-ï]@ë3Þ¶ÎûŸèoAúÞÐJ¡ü«µç����IEND®B`‚IMAGE 2596 ./arch/construct/temple/temple2.x11 ‰PNG  ��� IHDR���@���@���·ì��ýPLTEÿÿÿÀÀ@99A>>ýýÌÌ––:77´´ëèè……¢þþôññ?22—’’ŽŽiiPP¤¤œŠŠ,--BBBþþþ™ššžzzØØ,##ššfggÊþþààHHžž„||<<ÒÒ–ŽŽŸ~~ž‚‚™ŸŸ ÷ööž††yrr¬ˆˆˆ‚‚‰‹‹""¯±±þþ$ýýŸ’’6$$˜þþãþþJFFz{{gþþýýR::îþþÕÒÒvZZXRR¨¤¤haa—~~¾þþŠŠ66G>>onn›ŽŽººQQQRBBÆÆVýý11\[[+ýý–––Fþþ£šš5üüss#""úºåààXVVŸ––=þþ¡¢¢æælhh``~~**:>>FBB¦žž£††zvv£‚‚ ¹µµ®œœZZ×þþ’zzîî‡šš‚““ªþþ­­&66ÁKK $$ýúú}}ŽŠŠµþþüü¹\\˜®®ööþþVV_TTOÏÎÎ.††CŠŠòòNFFØ××prrÆÆÆ3..¯ªª’’abbs__H88êê’††JNN4ÀÀzŠŠ¯¦¦‚nnJÃÃBBXIIêÖÖ€‚‚ž››ÏÈȆrrqvvjVV&ÎÎ://nþþ,ÊBBzžžÊÖÖwwºRRüü2ŽŽJ††ššwiiÍ::<ââ6††z¨¨ Å¿¿ p¦¦RLÔÔnnrþþ""88*ºº"JJª Ö:ººZî*vvrºº&ªªNššFrr¾bb ¢ÒÒ&žž¶ffª>>^ææžžªºº"ff¬‚‚¢FF...^––jÖÖZÊÊ’ZZºjj¾^ŠŠ&®***ÃÃ’ªª–‚‚nˆˆ^>>šººwVVZššN22®®ÆVV^¶¶ŽººrÒí���tRNS�@æØf��ÕIDATx^í‘Sd[Fó?LÛ6ʶmÛ6Û¶mÛº¶mmÛVÌ>ÕÓ]=;ïÜ~˜·»vUäK~+ÖÉûD| 4î,ùäƒu�páµ»Öˆ‘E.ÀÜ`q+�,¹‡Â«QõûY˜‡²óUÐYyÙ!8ZR�JÇY]ó—<™îP/Q ÄÈKмI—}N×\ro7 Üu9Oœ?uî"¦³A©©Tß4ÙKTLºn<„  ÷Ž%Yß(8æ1¦,qp,©ˆkÖ!jàÚ±¹í_N)Ì£^î0³¬Ù¬üâóÆÅu1xAoSéÄs%4o[XóP:•@ "XûWwŸMh~/¨žÜ '''NªOÎßÓšY¶Œá>¾9ø} úF´·ON> w±SåÐ*Ú覴`ÿ;‘‘>à©.o%Û9îD¨ßL }Jü Ìî™)/^ÙÔ€j%op‚#Àa_ß8’¡Pˆ˜S]ÕQœÕ‘B§.y§Š°‚®ÔéBm9ðÛoô·O‚{—Ý^¯Œ™W¹mÄP²X\œe}ÆhûùŒ+Ð Gkµd+¿ ÖÂew]¾\æªßÈ ·Û¿R¼2y¥x‹íw3Kq‚×ÈCåüÈÀ ÖŒ)]eÊ9+؈ýDÛÊÍñKÒ­Y[¾<ƒ=Jsj)Š~?„ö Xï²7˜Ùcr–8å ­ÉÉKÚtuÖ¬—¼¸ÐL§iµÁ‚dHS� #e1f–•ËkmúØþââ:­KÇ€-�Ë¡3”6XÐ’˜ØŸk7BçZ—””ÈËäô*[|N‚nÀzÍ€/h¸�*xB¢,©QyáÝ »ˆ;@.W¡=a|/g %þg^l®L ø2J^]oo°-b9A‰£Ö]e«eÚŠã­ñßy¼hf)^Š. @Š*++³ÁU_V¯`¡ DªZ†q3L‡8YLÿÓà ÿ˜$"A⃽ ʨ#±Œ°1L‚5½ù-CQøhE‘$He²ÄJµú#°ÑŒöè·»jHEWmµmº…¯o*DAêD°�€P?¬ÙÌ rí4ôéè†"Ÿ:Ô åH •!*O3³hÏ¢›±ŠfiÍF<]äõ…Oý!´�ÊÉÀ÷¾­Fœ>wî H€n›€®bÜÛ/2x³kŸ¯XŒp²OY;^E‚)uø¹_?‹ rÆÈØÛÙŸþõ-ƒÁ÷·1åSÖ¼ œ„ÆN‚‹ÿ¬W‡#¦ÎíÛ·ONÌs—V¼ßG 3!ÿuFTn:½øûjä˜AìÛûáC/{½ô|>ßoÌ‚SïYW‡°HeÜ¡KØ}âyyy¹M^Þ‰½f÷]ÂzŒ ´œB'\}– é‹!$5/£/,_‡+àÒVàØ5ʱԹô¿ý: °?cœ–"ɈóÝQÂ=´r@[5?>9ÚÝd–#ATn÷Å[§Cyu5È0r ^È—î:¿‡JIjbxAOŸóÀ®w³^Z®VoB/HøÉú²½ÉŸ‡šìüM×°‚8’œ¨ì¹9ZñÚ+ Ålóx<•èI<ê±U›ëÀ$=ц/Ȥ´» „ÎÂÓ…� ‡®Ë‰ îç,Ç~:=Lœ7Ñ[ÀÏ/ô8‡#f:U¶ýª'ˆL&C³jû#)4˜Ð/à“ãÕ“K„ç¢ `ðÒú±eˆÛ̼îx’¦Q�Šlò %MÔ,p4fÀ=\hÌ@áM‰/?+tNŸ¶ðM0‘Ÿß—?G5z·‘BiÔ5´Ç¢é“j¯GàwéH zè{Ò#W`øuIˆ}@Sñº°àø¦&¾¶/5ÕÄ1ÛÕÕõþû]Aâ�zÉüÌ~a¨�ª:zÏa%­šßW ‹õP�Y˘8ž»aOá€'õz®d@çŽÇ† FóÒ®;¯ÏeΕ–õpxüeÀCË‚°°Á ÄÁ=ݰ �x†?>Ü&Ô› óÛLO§¥Xêzxÿ“T­%V(Y ç? ½-ú5/r<6¥÷7%wÃüz<Z­sOŽÐ¯f›<kžÞºuëÞ~ûÛ3OÂ`f)°Ãûûâ`µzëµ^¯¯�øÌ/ÏÀ™=9†m=ºÃ‡,ðJ\ö·Ó/×/÷?�oþöš¸Xvg¾ö¢ŸC>ûC �ïþ�¨ž NÀ»O ééTúƒxÙÅ»o ÷Ñ? ¢ù ßùèàýù”"¸³N´ ����IEND®B`‚IMAGE 721 ./arch/construct/temple/temple_ruin.x11 ‰PNG  ��� IHDR���@���@���·ì���*PLTEÿ�ÿ€���€�€€���€€�€�€€ÀÀÀ€€€ÿ���ÿ�����ÿÿÿÿÿ¥µ®ê���tRNS�@æØf��UIDATxÚíUírÛ0 ³Õ†D ùý_wGÈR›u·Ýí_Ð4NêâC$>^xá?‰âÞi˜ÿÈ/8xß«˜]‰ãÀOÐ=V|²_àÍX¸ùÖ¯J€ÆLÀ›ý$‘ü΢°ÞŸÍ™ÎúÕ½B�û‰ßmþ�E Ó‰gû¥P ߘ̋ü³±,Ê›ýªðˆ¸øŸ ´än+Ø2¿5€ä­PÑÔñd.ñ)ùm�ð.ãs„„êlg@îŸö”@ö ’)¢±Ÿ|Z_üŽ½Â£¥�ÔK)Èþž#¾s¿JBÈ Ó[â¯ÞG!eŒ@8ä¯ê­šó*A‹‡ª , €)Áè&ô©€Ä>A´7 ¢Sf6ÀÅ/v"£ ¶€Dò'»Þ‰ ÒRAì)’ ¸QîDžæRÀ/QïDòLúïPîD’vÒGölhàÅ“)éu@hÑòŒà„û¶§¸z³™"{“ýs"õw œÏ·`4Нþ�EvÖû5ŽòÎx‡¾ó4îøÇp`ò,Zt:ý9ûgÜ (€É×­çTf²ÞäN@ÎÙƒ<½®\ç±O0@c/]'Í·|šØiòM½-4÷2�Ó îMË'R ™<ÿ†Øó 0†±$àMH ìgöºyòÁ$¯º3x8W¼¿¡ù€›?%rè’§�k3‰_ìõ‹\N 3@ k¸¼qòù˜J\¹n: ?èªÀñ‡@‹s-ø^-ùYü¿[|î÷ãÀ/ü8^x¡ÂI€9²ßm����IEND®B`‚IMAGE 271 ./arch/misc/ten_kilo.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE��)MMMXXXddd„„„ŒŒŒœœœ¥¥¥­­­µµµÆÆÆÎÎÎÖÖÖÞÞÞ���³½Ì���tRNS�@æØf���IDATxÚÅ“Á Ä D7ikÕÖùÿÏ­ŽzHRXv@=¼Çh~þŒDxqâÀÀMÑ7_�Â:AxšÆó€Öðäo‚ÅÛ‰¸`9`b‹S¨#Ûꨖ’÷Dn U‹PðxÑ,I‚,bßpöªWp ,H›ø‚3‡@ ¦Ñùà~ ÀÛ§úy.‚ úä W����IEND®B`‚IMAGE 152 ./arch/monster/misc/tentacle/tentacle.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������j~ ~$¾¾¾ÿÿÿ¶¯á���tRNS�@æØf���1IDAT(Sc`ô‚‚¨|ÆÐDTÑDTa¨|b”ÑTQ„\\ÐD˜p��¯rLOä *����IEND®B`‚IMAGE 172 ./arch/monster/misc/tentacle/tentacle.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������j~ ~$¾¾¾ÿÿÿÿÿÿ5ÖÖ���tRNS�@æØf���BIDATxÚíAÀ ÃjÒñÿ'³¬ÕÁ _m%qÙ4~âùçL`N mᦵ·ú@P™ß Œ—T ª ¿X.Õ�åy¯™����IEND®B`‚IMAGE 196 ./arch/monster/misc/tentacle/tentacle.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������j~ ~$¾¾¾ÿÿÿÿÿÿ5ÖÖ���tRNS�@æØf���ZIDATxÚÕÎA À DQÒäþGnH7T(Hg'ÿ¿=Ýq÷ÌÝÍ"¢ˆì�D,V}þ$Yž‡z „8pâ èîœ=ðx%P+p5QÙ* Ò›dììÎ’õƒÆ÷����IEND®B`‚IMAGE 148 ./arch/monster/misc/tentacle/tentacle2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������€€�¾¾¾àà�ÿÿÿú³Rõ���tRNS�@æØf���0IDAT(Sc`ô‚‚¨|Fã@Tá@T¦¨|bT0Q„\\ÐD˜p��[N¦g ¡����IEND®B`‚IMAGE 179 ./arch/monster/misc/tentacle/tentacle2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������€€���¾¾¾àà�ð��ÿÿÿÿÿÿ•Ù���tRNS�@æØf���FIDATxÚíŽÁ �! Ãj Üþ_Y Šà…¿q¢ØãPäZ>îâDs¬4tAËû$ï«/„‘Hh‡٠ǶøY ç»~����IEND®B`‚IMAGE 217 ./arch/monster/misc/tentacle/tentacle2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������€€���¾¾¾àà�ð��ÿÿÿÿÿÿ•Ù���tRNS�@æØf���lIDATxÚÕŽA À0»šMþÿãj ƒFJ.íaðúå0·á$Ç@ÎEZk¦¤>Sqí‚ç“Ȁ˷aa½†®ÆGµ ý¨à¼´¸¨V©íe‚@†!þ„Gc›cæ•©Ø®7»–]àXf����IEND®B`‚IMAGE 143 ./arch/monster/misc/tentacle/tentaclehook.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������¾¾¾Ð��ÿÿÿn6×���tRNS�@æØf���.IDAT(Sc` Œ‚‚(|fdc'%%EEAA!d%Æ@#Šža�~;™¶Oi²����IEND®B`‚IMAGE 404 ./arch/misc/Container/thaumaturg_desk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE"!!çççB!L/+sB)sss�cΉE#¥R)èàšÿÖ�ÿÿ�¢¢¢ÿ�ÿ‰‹gè���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ�à#]��IDATxÚ… ’à …ì ’EÄÿ»#;œ¤ËWiš2ÕºB=dv§•— Ä`hƒrðè¢`äæL¶¢"9?8'»(¤îxö~Gn¹ J„”‰Æþ‘§hÃX”ØÃ3I9ȵ JCƒ¥œ-ò#Wâ¢)AA>„îH1QQM >ˆ‡Ð1-fÚ˜ "-“PéÄ}ßQ.O{ž+®!$v=œÖ¯ 8ÕqìgΥܲãØQk…9Þo[L¾k¸eŸùÕ€·嗰5_ß>.áÌ©i¾ëÖ‚!|¦^ÂÖôÆ(�³ß˜q˜+}L5Ì•6†ðßÂ?©c¬����IEND®B`‚IMAGE 921 ./arch/misc/thewheel/thewheel_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��\PLTE���G$ddd¼t#FDDOOO›c"´e´l!¼m"´s#–\¼u.¼{*¼|5Ä|+Ä‚78´t-¤_¬h›c+¬`¬g´e‚KˆR´e%´lVVœT –W[866Ät#d3¤Z ¬ZÄ}6Ä‚+‚B'ć3̈3Ä“A–c*‚H¢h)PˆS¼{Äu.PP R-¼}D¼‚+¬n$¼‚6”F´m-Ì‚+Ì‚4¬t#Ĉ>¬a¢h"¼n-¬n–]%¤Z›u4–b¢t)–b!œ`ˆM¬t-ˆX|=‚T¤`–c6W$–h"œTl0Äzˆ\$´‚5´^›h+|C›k(ˆHÌ|4|C´ˆ<¤i$\$v8œM Ì>›m<¢l0̈<ÄŽ3ÄŠLÄŽ@ÌŽ:ˆXÌ’4ÔŽ;Ì”BÄšC›q3„a´���tRNS�@æØf��ëIDATx^“U¯Ü0FÇÆef¦ËÌPfff¦ÿ/Õ±S·»½}éQ$kr¾ØyÓl`ANf?p0ÅüIêæ zlz‰Cˆå‹YÝôg=Ɖñ €°š•Âr`<ë©X¾kFÂfãi‘(ÞúrïÂ&R˜¢g›‘ÐFßE`ôQ<„˜…À oøø‹3_F¢¡u«Á,K5Ðxóãù%àœ·Ç}Âu�êõTFúG"zõ®±íÀ¸ûÀq–ÄÆ[[ XKl§rãÖ«jºz�÷õ¢/‹)!®ÿjèé•ÎA¡N»#ë•i¦ y|ÑDœ$Ä00Ò-ßÔu=‡P«…Ð`8 zAa >á˜DJÄ"%³TRjk6§f‡:â»n—kårøûˆñ—{․! óý¦ô‰T*ÌVív»ÏÏÞ½HhZÖß{n¿plL&ÝÝב¸샠°#nNõ³a@znWÜé×Á¡ÕÄ]jõW+.˜Ó|—fb4StÇçÎï £6YD«É¬110Qàp}8öÙéa<A#7½¯RåUâtD ©¼Jtãè*k×’0CúT%™Óåó)°ò0K«ŸŸ_ÎaU‡¿-Ì3Ò³^ñ_ùŸ33¾Xá����IEND®B`‚IMAGE 1405 ./arch/misc/thewheel/thewheel_short.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��²PLTEB(b^]ceb·p ¶p(UPOXSRTUS_ZYH"”T`b_bdaib[J0&Ÿ\ª_¢d!¬b¥g+ªk'±k#²l·k%MNL¿q$Áy)º9Å|,¶u"¼z0±q-­h›_£Q,LHGœT ‘W”Yx>“Y[vB—[Ž`%wdP‡a6A/(< d'>:9±e¶d]TIªk [VU¹fWYVˆP¨o)±l+Z6ªq2£s=ŽO‘Q\^[´t)ŽT¼t¸r1¹s*c3^`]Äz"Q*Á~,‘VÄ€.¾‚4Ä6Â…8Ć1É„2̆-Ã7ª[ybD{fMµy$¶{5°};›Z½{)¨džV¿}2zE›_"\E4’RY>4Šc2 h"¢V-¡c¦g^3PKJˆZ&¨j&¬l¥m.£e¦j3d_^ƒB$dYIb3˜b‚eID$©Z”d"ŠQ˜b#¦]xkU}< W.¤a ‰iA®^¯_”NjC!{@ ›i!jZQG;7¡^¡n&ULAgG-X[*ƒA”XbJ9dJ4¹g$™SšT]L>—VšvC²qp_P™vIlJ&»n C>=®t'™T#­t-¬w'PROšX ºs#¬x0ŽZ"I<8¢TmI6¨{0¯v=³x+Âs²x1h6 ¹w$½u%°{+Às-¹w,·w:Äv({_BcQ>¹}(HCBR4f?»~!\UO¢Y–E €bAp={P"º„4K0!bWGÊ€0~RoT>˜KƒW)¢k+ªf%¾ˆ?Ë‚@•`'Ë;¥\Ä’@J5*SLF–h9‡kT™i.|X3“k:tDœk)Ê‘:O:.¯iÌ“CŘ=Çãd���tRNS�@æØf��yIDATx^}ÑS]]ðÙǶ}bÛ¶mÛ¨mÛ¶mÛ¶ùšß£];ç—&MÓÿÍ\̬çfa0†H$º/‹À0þH¢(Êùªâß½CåÇ„÷ü#¹Ö2CºŒ) ©«Œ Ö ÷z´�n¡7(ÍÝZ5Ê8[§$ÙÌáíÀ�bÊDÓ¥,«K{–Ç™Ñ/IØó‰ä«3¥ÿ¨~týHóÔ.› ‘Bjˆ`µ¤Hyq~¼¥ ß¼ÿ ò÷#Ò¯bÖÛÐ^6$ߌ¯ÞwÁüe¼ˆej-ˆ×íBÐNåðy§ŠQT(P6hœÃ$—'W’ðlª?æ²(ÛÝå.hy½­ Š4£¬,îk6– ºùüîiE%ÅE9µÌN E_øå× ôY ð ÈÈàgךÌÌ‘ i¬³Ž¾0~¬ŽÄ®à`>xu޶¯�Ï$ [Ä㇘ zæ!­wã쀀Ø:ú´í9L’’9LÛkyýϦÀü(f° ĪèB#IÅÙ)ŸBÉòö’Ì•²LoIc!ÁåR™ ©’»\sGjåiOM�z=Ý“xëiú½1] 7µJe˜)55{½˜Z[˜FC’ÉŠq‚›ù<€v;ËÞ>Y&�êsú`º¡�šž=æ02á W,¸5Ú´× Qy„ÿ …~rõ¤ÈÏ+�,Ž.(&ÅCO_|³å9›GqZÉ�*[ PpYåá‰tÜHáú£&KPQ˜¿-ƒqØwN¦k´Ä»3lQ\;¾—q|B  F&ó¥¾*ÿ Cã:(ø=”ËÕqñã~xôÀ ?5\ÿ’ŒeÒY¸����IEND®B`‚IMAGE 1385 ./arch/misc/thewheel/thewheel_short.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE\2cebe`_UQOSTR^YX]_\_a^NIHbdaRML X›^´m´r ¶u*¾v&Ãz+º~1Á~+VXU¬m)XTR¤r7ªk ³g!¶v2ºx&­hª`a\[¿}9ZSMZ1Nc3O:.ŒS“S˜RC>=ŸQ a6ac`raR’]–[¡Yž]"«[ œ`#£`šd$¡cšd,¦bf¯d¥g# i)¥g+pHG"¥m.±k©o"D¯o$ºm‡D ¸q ³s(«w/¹r*»s$J$ºs+ƒB$¾vÀx(I^QL­4F1&¾€,É/½‡7¹l&ŽYªex\@T0\#YMH¬t;f5Æ9Ň2mI6²m,ˆb=~iPJ=9ŒX Ã%¿‚5·v#¡i#Œ_1GCAa7#›Zµc­b¶d!s@xIG&§p7kD"“X‡N< c©j&¨^–g2“S›i!}Y4h^S›NNPMzE˜j;1O<4—n6Ÿj7ˆqRy\:–Ur^E]7€[0M?6“qC¯j!f:©k.A!µitE£p(DFCgM7 p:“XVD1°p³m%KFEp=taM¡u1›Y¯p,r>¬r,µo'£Q,\SHm@©v4½p"–E YD=fT@¥WK0"pf[¥[ ¾q+±w1Âs‰b1›_wS/z? ¾v.²}-ŽO Æv!N'¾{ ¼z/ŒNhI¾|1Z\YT&‹RT,Ä|3¹ƒ3PaG+Ä6½†/ǃ1ˆUÉ„*Ê?K4R*½ˆFË4͈.ÉŠ6Ç”;jBp>!ši ùúÉ���tRNS�@æØf��zIDATx^}ÎSs%]Çá÷±íÛ¶mÛ¶=¶mÛ¶mû5?ËôîJª’L2ÏÍïbí½ja¯°ˆdäa"ŠÇ붉ØÝtC„¼´å‰„û7J$Õ‹Ä|ŠÂ4]££\áH>áî­WÄúõLQog>4/q�ÄokÓ‹®Êå˜D­><˜_ò C©>>˘€m1:’š¿IÒ;Ò€¹)×*ÖaÜ&ÚžmWá?�Ⲃ‘èïMcßk+[Cៀ¤ì[ Vp(°´^ca)'ìòào2µ¥ˆ¢Áª¸ýQúá9¬3 .�£]£ò´€¸gø÷€!jÁ©#6}®§Ü5[Rç|êE`Þ.¾µùú»y,ôû=kW]õWRvèñÞÆÞb ˆÄ7Iþ<'§Ïxcˆ»êt’.ùY°àç˜Å<ˆ}VےϤqµ«@ô÷&;<][©ˆ+ÊbGÒ,ÒÈË”ånÏÏq¼{¬âæ@æ¯`ï€àò9Î/R•2kV&d Ký;6½/Q)3‡+[’ÁàpèO¹Q Tg{ï°5*zA’2W~CƒÅ¥Äå †tŠÎr©‰| —†lS"°8|X.¯Ì€o§ DU«X�¸ú39ç¿´Ô XÑÐâ Ec܆¤x€¾ŒK�¾ü†O`&Dϱ–¨0äòŒ]þš€™Ì'„G•-ûÖŒŸï€˜zµ“‡ÚÒtMˆÎöGé‹‘˜Âõ<WûÚv™¬¬Ì[hKyÇt½bmmvP„M3Åçrð§œsèŽ>¸Xòn©3èeæ,¸Ì¼à§f›h²“LÝ1õ����IEND®B`‚IMAGE 1395 ./arch/misc/thewheel/thewheel_short.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��¦PLTEV.gba½u%«l(YUTZVUQb^\^`]`b_ac`˜Wc3ceb•Z›_"—b)­c±a¤g* n,®i(UVT²k¬s,·p(STRÂ~,¿‚5¢dQ)…MO)^YXŠQqV@‰Q[]ZtX<J/ ’R—QA51^4=ŸR i7h7 NB>kbWj=REA¡Y”^ X!‡a6 ]…bBªZ §] YD=¦\œ`™cJLJPLJ¦b!žg(wC ZLB§h—i:E§h°e¤k%UQO¯i!EƒC%@!·k³m%°p%¸l&ºmŠF ·p ®t&¶p/³s(¶t"±w)¿q$¯v6»t,\SH¼y·{&½{0º~1H#¾-Á4Å'M&€<Ã…1»Š8½t¨z6¾{)¶j$§c–\%¿w'ha[¼…5É€7´h¹~8Ä{+Ã{2®nXSR®o2“XY!§o(n9¤f#›j(VOIP)ŒTD@?`:ACAXŽR6ŠpFži6‰qLHªk“nN;)"¤l-šT954W?)s_F+=$¦n/x]FY0¡p5r>šX œsAVXU´n•uL²m,@<:}< ™X²qŠ]/£Q,°q-˜\¼o^WQ¡v?¥WjSFNIH¹r"aXM{dFžl$žg ©{0µu1yeR¹w$H:1ÄtÁs-´y3jWDµz-¹x-lX?H)|W-tE²‚0…S2½|8xgX ^i6€U'¦]jQ}W'º„;¨cÉ0žc,Ä‚7YLH¿‡0`M5¬bÊ…+ʆ4Æ“:É‘AŘ=˜K‰b1vc›ã���tRNS�@æØf��{IDATx^ÐS“]…áÕýÚöضmÛ¶m…¶mÛ¶mã3þIÒ»&3“·&'¹Nžƒ{Wu­†¹BŒâ§|#Ó”¹óøB¡ÓHfžîSD;ùpx¶«»aÆWÈ£üm¸�6¹Ù<LÌŸñ‡'¦ú?Ù1ÆÙD×oï¥Üÿ<5˜”^Um¿íUø)Òë�’½•`ÂÈÈ5À®™ P7T(Z|.Ãv¢ß±ÐØ®iÿÀ†û•$,óLŒ9³—uÇßÀÁj%î_øB—„ ÉíºjQ™RÉä&ýÔÿ<‚#ñ·ck¬ èlÐÞ^›+ÂÇ•OÀàS‰]ƒÿXÔC® È*rÄ_&ºwP“~t¶0có¼÷z}iÏF×”œÖœW:gX2a޾ù9s’CƒwÉã^º†)v{ˆ½½Hâão?þ¨‡”"®×3±8GF™‹,žÛÔoB¬·zXétáÃC¼XÅ„Ë%GA(‡‹­³ÜÝE.½cC£tgÂMŠìŒ?1‹9…¹…•ÜMÙš!¢x+ÅcJ†|¤•õÓ©ðV•¥Ú%å1Ÿ:¹Ô‡-�cÇ>~lk\¿ÎâE,–G•_�cýﶈŽ$"‹@<G_HË[þ$á˜,[+1‚éÙŸ  šeª%#×ÎÆ8¶ÑQ@°èÛ̬ŠÏÝ@[[=¾3Æ^¯ªüÖƒtÝd·Ú`à˜twV’ŽNÈ!õsŽ¡Ô˜"z6]j =á ÂGQ[ðƒ¹–ª<_>5³&�=¡Z‰V 3ÞGìÙ­àEi¦B‘Éã˜U2aŒì‹rÈá¦ëÇ1éWü¬ÁÈ™ôtµ����IEND®B`‚IMAGE 1416 ./arch/misc/thewheel/thewheel_short.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��µPLTEO4+`a_c3gbaUQP]XWƒB$VWU’SOKJš^¢_¢e!¬b#®c³g®i ¸q!±v)¼u,ºy.Ä{+¿ƒ<·k%²lbda`[Z¿w'›`*«fN'­bPRO’S ac`m:”YNB>”YtaM„^4–\&£ZG&©Z ›_"{gSLNK¥a¨^¥f™i. h"¬m*®n#§p7®o+±q&¼n!¶p(®u.»s#¶v2¹w%H#º})¾|*Ç~5·‡<Lj4“S¨j-½u£Q,¨o)®j(q`QN9-„G ±f ¶p/»2Â-Á4Œd-›l7Äv0ZVUŸ]”^X/ǃ)ǃ1±q-žl+›NŸS+žh(Ä{#¶€0RML> ²bQKEX9!†iLxCXKG¥vFj8šSŽY…Hšd$_5le^ŒHJ=9~bE˜a¦x-‰G#843ª[|P¢_ŠLWYVM \>%ŽJ qU9UˆnD™M¢f)¢itW6mY@O."—m/±eªf%\^[c\V m%¢k+V(g7f:‘qI¹fŸo3¡o.b^\±k"‰VKFE·jWE3´i*}Y4°oµnt?¥r1~= H5.¢r<q^K¯tºm' R #\2\</ @!kbV¨v;D+"´t)uFUNH«x6qH ²x2H<7‹])§{CgL1¯{2˜X$=1-·{.¯|@pdTT+Á}œZxcJ…`;D@?³ƒ1_PGÃ%¾}?¾,]RCzU+pU?ˆP¡YË|/º„4ZSMÀƒ6§X\SHQ=6}LÁ‰2tM0Ë;Ê‘:ĘDža‡O«l8©j&t(c���tRNS�@æØf��IDATx^}Ñc-M†á§º{ÛöضmÛ¶ŽmÛ¶mÛ6_Ûø'ÝÌdö93×—{%UYI¥àÌ€‘¹b‡*¡ßj±xÜËÀ\ž.S)«¦{ ÆÜØyØu9œFà¯À–Ùwîö}5C<¾õÿ CÓÌïb�Xû›8>UQD<0Ä×Ê–€õ ü�÷Ÿ%ûh E‡ô^š¨+)CÇõ@1=´¢=¥ž²&;ÔÔ�@Ü;OoÉà £1ÈÏþ ¨3@z…fîëÚeoÀ9fLb³+ëÏNØ•¥�>¤ïƒ¤Jk'ý —™3;õ߉çÙf�&UV‚Õò´ü0I×31(@žVìfW\'X|4Í¥ÁÅñ/xº6n„ÜÏúãûÛeʳã=Ó(*ððàgígîEOnÊÕóZêw‘¢º}’×¹f É¿žpýÁwuuõ^qÉÔœ†îsÿ¹¨e²ÌLƒ-oå[BÀ*¼o]Ý©´¾g çGæFÉÿ.žFÀ²'5‚®2-X_¦4ƒóè#͵ýqj"ÛRÓ‘ºÅq‰R¯³†ÿŽà`®›fh£hò íÑL¨ÓÀòŠxNäØ)€:CC ý ô€TÛø@Ê{=x¯¬VÉw3(a›]¯qº¼ 8ù£<·P‘‡`2Ø +â�´D5;¶-Ù¸=<0̆læÃ'™Ý�ÿ¥ç" bB ‰Uó!ïè�Ëe¡ †€q«Q®ßš �gN‰ˆÃøÉ¥6›áe×î1½“J1…ÀÉ8©\^èKhBÇî —Âg¨YmÒ¯ÝD"Ñ…²ràŒ{"FE ó1ª‘Î?ûÆ’Aéï]O����IEND®B`‚IMAGE 933 ./arch/misc/thewheel/thewheel_tall.x11 ‰PNG  ��� IHDR��� ���@���LP…œ��\PLTEkG$ddd¼t#FDD–\›c"´e´l!¼m"´s#OOO¼u.¼{*¼|5Ä|+Ä‚78´t-¤_‚K›c+¬`¬g´e¬hˆR´e%´lVVœT –W[866Ät#d3¤Z ¬ZÄ}6Ä‚+‚B'ć3̈3Ä“A–c*¬n$”F‚HP¼{Äu.ˆSPP¼}D¼‚+¢h)¼‚6 R-´m-Ì‚+Ì‚4¬t#Ĉ>¬a¢h"¼n-¤ZW$–b›u4–b!¢t)œ`ˆX|=¬t-‚T|C¤`–c6œT–h"ˆ\$l0ˆHÄz´^´‚5›h+|C›k(v8\$Ì|4¤i$´ˆ<œM ˆXˆM›m<Ì>¢l0–]%̈<ÄŽ3ÄŠLÄŽ@ÌŽ:›q3Ì’4ÔŽ;Ì”BÄšC¬nY÷c���tRNS�@æØf��÷IDATx^í“U¯Ü@ F=æ,33\d†2333þ©iÚÝ^©o}¨ö(’åœ/ެL`’1¤áxö}SÌ®„f£ûþ¦Ö-„¬d!£Þ´Ç8=*iXͯT ÆÓžŠzùmƒÅ¢OzŒDóÚ“³ëÿžÈaŠžnr¡¿gøQ<€ˆeß n¾ÿð•‰ÓŸ‡b¡u³n™f¼@àå§']€³îó¡cÔj¹´ôDôÒ }Û†Qç1€m/‰Áss X ·y)Ÿ¼ö¬’ªÀ­ ÄÃBNˆ«?º¡}F¨ÝjË~uY SÜza F",0ÒLÏÐ4-‹P³‰P0è÷»~á8@<Â0ˆ ‰IŠF±¨¢*ŒªhˆA”šRª–JÁ¯W@„k;Ì$õh‚ç5¤s¹ SQZ­–ìÇ{wyQÕŒ.Ÿw^þ»>?ßÙ}ÅÅyù¢Û½­çº©]ñMï9.UÞg©ÙÛ*;`Cõ+D¨¦è¶Ç<œÙð YDQµÄáÃõE`(§&ŒÅ”{¸î~N@c'NðÀH?œDìãDÇÖŽ Œ€¿6¾’€)Roʉ¬&œ¾™„iš½äÂJ ÌüXaÁÄzÚÇü-ðߘ �æÿ3fü�>:ïnWpë����IEND®B`‚IMAGE 1422 ./arch/misc/thewheel/thewheel_tall.x12 ‰PNG  ��� IHDR��� ���@���LP…œ��²PLTEB(b^]ceb·p UPOXSRTUS_ZYH"”T`b_bdaJ0&£Q,Ÿ\ª_¢d!¬b¥g+­hªk'±k#²l·k%MNL±q-¶p(¿q$º9Å|,¼z0¶u"Áy)ib[›_d_^Y>4LHGœT ‘W”Yx>“Y[PKJvBybD›Z—[Ž`%wdP‡a6¢V-zE{fM›_"< d'>:9 h"±e¶d]TIªk [VU¹fWYVˆP¨o)±l+Z6ªq2£s=ŽO\^[´t)ŽT¼t¸r1¹s*µy$¶{5°};c3½{)^`]Äz"¿}2Q*Á~,‘VÄ€.¾‚4Ä6Â…8Ć1É„2ª[A/(\E4ˆZ&¦g^3̆-Ã7¬l¦j3¡c’R£e¥m.¨džV¡^‘Q¨j&Šc2dYIb3˜b‚eID$©Z”d"ŠQ˜b#¦]xkU}< W.¤a ‰iA®^¯_”NjC!{@ ›i!jZQG;7–h9‡kT™i.|X3“k:tDœk)J5*SLFªf%ƒW)¢k+ƒB$¡n&ULAgG-X[*ƒA”XbJ9dJ4¹g$™SšT]L>—VšvC²qp_P™vIlJ&»n C>=®t'™T#­t-¬w'PROšX ºs#¬x0ŽZ"I<8¢TmI6¨{0¯v=³x+Âs²x1h6 ¹w$½u%°{+Às-¹w,·w:Äv({_BcQ>¹}(HCBR4f?»~!\UO¢Y–E €bAp={P"º„4K0!bWGÊ€0~RoT>˜K¾ˆ?Ë‚@•`'Ë;¥\Ä’@Ê‘:Ì“CŘ=O:.¯ià†ð���tRNS�@æØf��ŠIDATx^íÑCwfYà}ïgÛŽmÛ¶m–mÛ¶mÛ¶6ÿG÷¹ÉJ§*U³Tå™ìÁÞç|ЉD/e‰èÇŠ,Š¢\ï+þN4YÑWyP‚Ï_âC¦IG²„¢>u¡¹ÜÕä9C�¸GM£·Ùû ‡ׇ›@D‰÷rx‡Ð‹ƒ &~§ ÄÖŽ–ó~é6ôÈú¬&¹þZÇŸ�ŠÞ<<×<¹U%C·$!µ#Ä¥ß`°æÈùáºóÏÿñ—?È æ$0:ÿ)fLR c]yö㌢·¬À*ómŒÔè@dº‚q¥@àÏêTͯ‘ çÎã”kMrcv‰�ÁžÜTxº=£ºÅ…¦H3Ì`á¹mw£ Ïo›RßÞP_YÂ,¦˜ K–†¡Ë<oDq1¿¢Äbcu*¤i®zæÂXg=‰#±±11|2ð<Ôi»�@”c:iØ"?Öf7±ÎèBgFD¤ 7¢Ë˜cg™A-žÅR­•û;­ |ÅOfÅÈ@lI©3“ÔSœÃòñ ”Æ�_éé*©ÑòiR*­$¸\ª uv«{U§n”<ï½ÅÀd¡—a¸Ê¼7ç+á¡ÑB©Œ·äæVìtÁ¯Õ’dS%ð°ÝídtjNpF7¯2 �Í S0ÕÞ�áÞrèRt“«íV<j9.F<Ñ´‰G¡‡\3!iÍæP €…)µ ¤xí„ÿìûÈæQ2€Z•ÔÞU{y£7=7I¸ˆùÆä‰b„ÕÕÈħ8ìg—óµº]Ž£¥4[”Ï_)ð—É‚¨ù-CßÁ†dŽ,ãrõ\üß?f ùRÿùÖ€øj øEJ¡Èö£Š����IEND®B`‚IMAGE 1407 ./arch/misc/thewheel/thewheel_tall.x13 ‰PNG  ��� IHDR��� ���@���LP…œ��PLTE\2cebe`_UQOSTRXTR^YXa\[]_\RMLbda X›^ª`­hªk ´m´r ¾v&Ãz+º~1Á~+¶v2ºx&NIH¬m)³g!¤r7VXU¶u*_a^¿}9‡NZ1Nc3ŒS“S˜RC>=ŸQ a6ŒX ac`“Xa7#raR’]–[¡YŒ_1<ž]"«[ œ`#¨^£`šd$¡c cšd,¦bs@f¯d¥g# i)¥g+pH¶d!G"¥m.±k©o"D¯o$§p7‡D ºm¸q ³s(«w/¹r*»s$ƒB$ºs+xII­4Àx(^QLZSMF1&¾€,Ã%É/½‡7Æ9Ň2x\@\#›ZGCA¹l&T0·v#~iP¿‚5J$mI6G&f5¡i#kD"²m,ŽY¾v¬t;µcªeO:.ˆb=©j&­bJ=9T,YMH›N“S˜j;}Y4h^S—n6Ÿj7ˆqRaG+N'K4NPMy\:–U“qC¯j!r^E©k.T&µitE£p(€[0zE p:R*‹R°p³m%O<41“X¡u1M?6¯p,f:¬r,µo']7taM›Y©v4½p"gM7£Q,DFCVD1KFEp=\SH¾q+±w1Âs¥Wr>pf[¥[ ¾v.²}-‰b1Æv!›_¾{ ¼z/–E m@¾|1K0"fT@YD=wS/hIÄ|3¹ƒ3z? ›i!–g2ši ˆUPA!jBŽO Ä6½†/ǃ1p>!É„*Ê?ŒNZ\Y½ˆFË4͈.ÉŠ6Ç”;_S���tRNS�@æØf��IDATx^íÏS“-IàUul»mÛ¶mÛöµmÛ¶mslÏo™Ê:§#n÷t?݈‰yèïeGÆÚ¹"ÓøÆ' ³S|~ˆ,içÈ]1fðVÀ/n–HÚ¾ ) Ó ååqƒøHô\üZÄ[«ÃÍŽú+¡9‹@lX]\÷J¥b“´ÚSÀ‡ØÆG`Xš  ”x=Ã$lI3‘±]÷ŽE€Sþíyk`³®1Tõ7€Ìòû`ä„аúa©úã[~DÍF–¿¿ª ŒcŽÕ3›ÁÚSGÙ*Z<‡ozÿˆ6™Ó—…‡ƒÑ Óx×:€x“iùvŸ%eá‰C²v÷;ΑÀŸ-õ†B¿uFžŒˆ›õÀW>Aa^‘Áûû¾lûQ§VÆŸ:v±»Þ�"'ßCRêê:ैñP[Ì~NuVÁ.}ÌBÆx°|>~ßKfæø éÎëdt%Ûg•bp$cØ@u©rlke™ËóŒkóî-*ý Å-\!gþ¯…j¥< {³K*¤Áß¹Œ¼kÔ¨K+Z{ Ààpè¥Þ*…@œIîôø <%ua®zLõ’CƒÅ¥D£ LöÝ£R3¹–(9#¢Ä`q„|°Ü^è n ˆ®Å"XqyizòœŸŠ K€hû–;(6›r³”�ÚK.�ÈÎþág0#¢0)ÕOÞ¨A‚Û¶üË"{�Žz’OJLV¨{.[錴f­ ŸŠŽÐôÒ'ç×^¥Ï'c ÷ë\»ß«dÊÎÎ�£€ò=‹éüûkDvãåQI²”ËÁ¿¸–]BHêÑå’%+y˜?“[¹˜±Àjöü³üÿs ùfΜ�Þ¤…Œ½íÜ����IEND®B`‚IMAGE 1406 ./arch/misc/thewheel/thewheel_tall.x14 ‰PNG  ��� IHDR��� ���@���LP…œ��£PLTEV.gba½u%ac`YUTZVU[]ZQb^\^`]`b_c3ceb•Z›_"—b)­c«l(²k¬s,»t,STR®i(UVTÂ~,¿‚5¤g*±a˜W n,¢dO)^YXŠQqV@J/ tX<—Q^4=i7h7 “XY!NB>kbWREAJLJ X!‡a6 ]…bBªZ PLJ¦\wC ZLBžg(¤f#EH@!ŠF ·k³m%°p%¸l&ºmXSR·p ®t&·p(¶p/³s(¶t"±w)¿q$¯v6\SHH#¼y½{0º~1¹~8Ä{+Q)€<¼…5Ã…1¨z6¾{)§c¶j$´hn9¤k%ªkYD=½t™cha[‡O°eÅ'§o(”^§hœ`§] ·{&¿w'M&¾-»Š8Á4¦b!j=®o2—i:®nUQOƒB$ŸR EÉ€7Ã{2’R…D&¡Y¯i!ŒT=$šTŠpFži6‰qLY0H:1“nNs_F¤l-r>žl$x]F}< NIHšX ¦n/^WQjSF¡p5H)™XœsAŠ]/´n•uL²m,£Q,˜\aXM²q¥W2°q-–\%¼o˜K¡v?{dFtE‰b1¹r"i6D@?…SYLHXŽR6©{0µu1€U'¹w$}W'ÄtÁs-´y3`M5µz-¹x-xgX ^954VOI²‚0|W-¦]½|8A51FBAÊ…+ʆ4Æ“:É‘AŘ=žc,VXUW?)+Ä‚7›j(¿‡0jQ`:¨cP)§h¬bžg º„;ACAÉ0;)"jWDyeRb“ü���tRNS�@æØf��‰IDATx^íÐC“&M†á§ª^ÛlÛ¶mÛ¶¡mÛ¶mŸŸ2Q3Ý=oôlg1Ñ׿,îŒÌ8 K‰(ÂW5y‡´˜ck„ Ã`"IÒ–£Š'/®Àny,x3ÊÇ–àÁ3Ûíañ£ÌÂT§Gx¾ŽC ʺÞ.埥äÚlÃâ³]ÇH/í°ÁOö³ ¯�ödë €˜E[Çì&ú-£Àf]Ù�kîf‘ð·—hb™;ɰîÕìÕ€Hq¹ d@œd’Y~ÙØ ™ÙÌæ>}Þg#‚+ñ)ëGåÜ¿CA@YY^¬Îñ–>KH…•—¾6æCnZã‚—ºrS{‡t3ö¾æ/µ:­j‰óìèÞè6ŒÚ°ÁS=ð”N#þÛäíƒ÷ƒk]Åî¹n$áá×È?. £yvÌ<¾Ûa±8ZFk@DÜ ·õµ‚À“€âÜ®Å*UWõœ�\mZƆu)A˜«“£"]r]¬æUÎSD7„®¤(òÔ‘av$Æ&fñCuéQ¿X…›”ñ»3OQ XòUÐ’ÞC×ÁÝ”þ»}Gû|çþ_¼8"°Ö¿÷ö¨l þM™Š‹gÀú÷¶—+©T{ªóiFë vÉ@pô-Ø>þV“ 4* ydÉ:|ÂÑòDìùôMv­Ì*€’’||¦ þ?; âq¿ä ²·ujü÷1é¿á:‘4,éc°/e)=è4CàózGϵ_h³1Åy ©¤œH¨ ä1z=,¸ïpHâêE÷Ò* \‹Jv¼-ç€\goÕì€éú>Xúúïõ‚™ @ú·2cÆGÉϧÏP©����IEND®B`‚IMAGE 1440 ./arch/misc/thewheel/thewheel_tall.x15 ‰PNG  ��� IHDR��� ���@���LP…œ��µPLTEO4+`a_gbaUQPc3PROƒB$VWU]XW`[Z’SN'bdaOKJš^¢_›`*­b¢e!¬b#®c«f³g®i ²l·k%¸q!±v)¼u,ºy.Ä{+¿ƒ<¿w'm:šSŽYac`NB>”YG&q`Q”YtaM„^4ŸS+£Q,le^~bE–\&£ZLNK©Z Ÿ]˜aŒd-›_"{gSxCRML¥a¨^šd$XKG> ¥f™i. h"X/N9-²bH#¨o)¬m*®n#ZVU§p7®o+±q&±q-¼n!¶p(X9!¦x-®u.¥vFJ=9»s#½u¶v2¹w%›N“Sj8º})¾|*Ä{#¶€0U»2Â-Á4Ç~5·‡<’S ǃ)ǃ1Lj4†iLQKE¶p/¨j-®j(”^›l7±f …HŒH_5„G Äv0žl+ª[|P¢_ŠLWYVM Q=6f:ŽJ qU9pU?ˆPžh(ˆnDzU+¢f)¢i™MtW6mY@—m/±eªf%T+\^[ m%¢k+c\VV(©j&«l\>%843‘qI¹fŸo3¡o.b^\±k"‰VO."·jKFEWE3t?~= q^K¢r< R ¯tºm'8‰G#\<H5.#kbV\2¨v;/ ´t)uFUNH«x6g7²x2‹])gL1§{C˜X$¯{2@!pdT·{.¯|@H<7œZÁ}xcJ…`;D+"_PG³ƒ1]RCÃ%¾}?¾,¡YZSMË|/º„4§XÀƒ6\SH=1-}LtM0Á‰2D@?Ë;Ê‘:ĘDža´i*}Y4°oµn‡O¥r1qH Ã_+U���tRNS�@æØf��™IDATx^í‘Ó“o†{fŽmkmÛ¶mÛŽmÛ¶mÛ¶õãß‘óÍlíf÷$7¹H¥*ûܼ]õ¼Õ5_ Ç�?F ë-lÏöbù÷üQ¡BæïaÇ ?½áoñ< ,O)¬\{ã|Öl?ŽuñªÀ¡lj·4,|§ØÕ+uÄlagž7á0 —«Oš£á;΃[¯ô(�‘S®#sG,>¸bfa:X › hL=ùÔ‡VvüFc!@{Zó'€ÎT5òe5šqï“gݧüÆë?V‚HÖ �˶…�ß_k’²ãddgWêŸqÆú�4ר�À&¬¶–c®&5„éâz|¼$ÍEI¤HYn"“…±îI�gg<7†+_ ‘º t »Pÿáù¹6Ù^k«xÍaôãÂnAA`Ák®Ÿ‘(Ç¿ˆ+=A£E8å/× ùo³È‡>u^Ðյʼn3ª·$(&âÈ®R(¬«3˜ æÞÃpT˜¯ÓÅq->kɤ Qíђϱy)D9”U¨«‚w†ÈT@òúNúZQ&Ênõ?¾SS3öI* õ;È\æ§M4‡&£àC”(_½ö‘7$*×@Y®I¢1<ô�mã-�(|¤Š;l6kƒ h W‘^‡´¯º `ÏK-Pн™¶¬>@…9ièæÑéò)ÓV¬+‚~béD>œe¸S>Ú�žUÇ&³0G€ðư©¹ ©¨�7Ã1ø‚ž«Q~8õòûw31& ÁE"0™ ·ƒ7…·zÉÕ ©;Ã(H$ÎæÅxÊæPá_`í «`:Édjû·ÄR£'Â, n?í- ¿é¸ýñ7�ä#Œðõo—"±Z7û����IEND®B`‚IMAGE 539 ./arch/player/class/Thief/thief.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���œPLTEÿÿÿ�B�9�BBB!R!9�9�B1J!))�))1!1�J�!���)!�1���)!�9!Z1��11!))ZZZZcZ)1)!!!19!kskB!JZ!!191119}2*ï���tRNS�@æØf��-IDATx^½Çr„0y3£D ›³sÎþÿóhk/Àâƒî¢t [OÉŸ¨«»_ìjUk½íÜÊeÖµqµÉ2ýFŒsX;Ü»G“ÙÌŽeXWµsN›³Áí’Ò·ºªªúòœ¿™Î€‡4Ïóçb²ú¯éŽ�0žvÃàújâ=" *gà Ÿ/¼åz¤yÄ‚#åE?¸8ì‰DƒÅS i<§7ÀûyÏ¿¼Ò)�ƒ¹ E/xOãÛGÏ‘MQvƒ°<(®p+”6OžX¢‹£ áÐÂÇ#V­„® Q¼è8‹zÁF€¶Õ@OxM˜“.ñ@¢ãBÂêÐSwˆ$úÁyQZ'm’Û-˵”&ç ^ùn>‘Œ ZÄ­äùJæÀ^J»����IEND®B`‚IMAGE 522 ./arch/player/class/Thief/thief.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTEÿÿÿ�B�9�BB�9B!R!9�B�JJ!))�)11)�!�1��)!)11!1B�9!19�!!ZcZZZZ!!)1)���!19!!ksk!111JZ!��9RBŨ˜þ���tRNS�@æØf��IDATx^ÍEr1 D§%?sî¸h\•ÅPY¥ËåÍ{nÉٟҔϿÐÙ¬±ÎY;ùÚû™ÏŸ4ë›çz&¬÷*87!\ûG›»ÜM aQê^Q|sKõëyS–e3Ê/Wsà¡.Šâi3ÆßV€ j>äWgÆ  Õb(ë%ŒÂàênÀëbƒ$p›åý@Øîˆ˜wë>ßï §�‚úßx9áÄ™õÈqSu…÷ºm@�CD¨Þw…£°ˆ6¤‹cÛ.'#HŠpkE ]$ÅÇV“ú1ª 7Œ*ÌÝŽ©$Z.$,qdC!@…(DªgÝ”I¢¡¬—sÛ’F˜žH»SÌ'‘òA¾NiTPÃdÿ-ß¹ ”ÐÂ����IEND®B`‚IMAGE 528 ./arch/player/class/Thief/thief.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¨PLTEÿÿÿ�19B!1�1�)�9�9�B1���R)J!cccZ))!!!9!)))1)!9�))c1�)!!½½½19s„sµµµ)1�!)�)����k{k!!!!HÉB���tRNS�@æØf��IDATx^½’ÅrÃ0EõÄlv¡ÌøÿVi•©#¥3Yô.¼9ǺO€. Å”Ò.Ï1¦‹BHŽÃ‚PZÔ¤È�MêeN�Æ\`\Er  >h uMRcBh¢ÑáB‰QC:IöK!„RJÀËëL뇄 ! ìѬFzT]ðØ¡”¸[3ÕúD8¡`jAhÈãü|`eÚ”ª9‡ð{ׯ;TU·w¿ ‘‹{³qn½Ú†)‡›à â€Þ¸¾?i=ŒK¥žwÞÛ½µfRUoÃkŒ쬵=JbÁ»q­C™€óþmmN’}n¼1y.·_Þ{”߇͉êŠM¹\^ÆÂJƒþ??Dqà#áÃ)����IEND®B`‚IMAGE 504 ./arch/player/class/Thief/thief.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���™PLTEÿÿÿ�1�1�99�91����BB!R)Z)ccc)9!!!!�)�!11)c1)))J!)!Æs91!!)!½½½)��9)�)9�!!�)! 1c���tRNS�@æØf�� IDATx^½‘ÅRD1�3}n뎻üÿÇ1[pám²PèC.ÝS1õ¬¶Ö¶i¯µ?†’Á<X›å!KPK/’P­3­×Y?öxaÅæyˆ€�P‹VGçI@¬mm÷Ñy`Dœ"1ïc³!OäáöSTß<+àáùË_æ §¢ˆx@0�—T#¯˜„Wé¸ã¢yÅÞ#€,7åÀËU[UÕÉ ÷ž°p%ój3© }ïé€Î5»åò~6»;ýð[lšB5ÍUìÁà¶ÁŽU�ò/%sW$ï'»ŽK•‚ ½ ι3Ù¼O†‰JBÄmÖª3xµ^,Ô9~ü”¬õÏ|�¡O� v����IEND®B`‚IMAGE 621 ./arch/player/class/Thief/thief.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÌPLTEÿÿÿc1����!1B!9!!!�)„B!R)Jk1!�1)��J!!B999Z1s9!{B!9!)))RB!99)Z)�91��9��111kkkÿÿÿ�B�9����BBB{9!)­µ­!!ÆÆÆ1))1)��œœœÆs9{{{J)!œR)Ž .€���tRNS�@æØf��OIDATxÚ­‘j1E=3êÛwÝ{ïŽÞûýï­!+ëB¾@¼ÇJIKÖñ,å¯üà¨r-ƒA½é—õ׃r9ˆãø˜p+Ë£zÜhįżš¤C9Èࡘ‹JšjÙl4¹.äí6Q(¢÷çÝ µ 8@¨«šC¡@ H)+1°MÜ(c:ùIß(L™K5bVr9 1ÆËg|R!`eùºf{l€9‚èéô){<«ô+ï÷7w[DcÊ$K{CGHo¶‘"Ì9:=÷‰ÙK×€ ÉLhqÀ£]²©°}Äã|î|¢Çù¨F9^+¡£CÞ=åüì\XqΠzÕî¡y3~Á ã6l|_ñ¢’#L¼AëmÁ=+„Kàž-pŒúéÄK&ã%«Ú ný¯Ú½€ãçÕ÷ tºŽc”þ3BÍ6cå²M����IEND®B`‚IMAGE 621 ./arch/player/class/Thief/thief.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÌPLTEÿÿÿ�!���B!9c11!!!k1!BJ�1)„B!R)���)�9{B!!J!9!9R999111B!9s9!Z11�9)))Z))kkkÿÿÿ9�BÆÆÆBBB�1)œœœ1))œR)���!!!{9!J)����­µ­{{{Æs9��)ó�Q���tRNS�@æØf��OIDATx^½Å¶Ü0§Ahf3<æ0çÿÿ)ò[$Ç0Yd‘«…Zª:·Gÿ’±X«¿`!6êC’žU~Št².“Z3Æë´®SÏóÎ ïE}Z{«•÷q˜ûQ|!6‘> sSűåª9È·[æÀ„ÏßoÞð ÀŒˆô% o‡¸FÖÚI„® úÜ2jkÍÍŒ=µFÒöÎâŒÉI]ËD¤©ÙÑŒYÈø‘ô|¦‘\:KX^Þ^9ðŠ_ªeÕæ_¯B­¬;JDY¼¸èlÈŠoS‹ªá*•™Y´yQq9cFdKÄ&3Ò´ÿày†ôóãúºÅ§E^|ú¬-rƒçÚȰ³!øB˜Á[�ÂcûÓŽ°€¢�Ú=U¹+èVLÆïà\„|Ú5N¥R£PFy´ßÈ÷{‚JÔï)õ£TÒû\ý™ûFóÙ~ü×üþ¾G ����IEND®B`‚IMAGE 609 ./arch/player/class/Thief/thief.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���áPLTEÿÿÿ�)�!B!�����9!!!Z1��1�19J!c1�1)BBBZ)��!1���1ï¥Z!111�B”J)!)�9J)��1!)!ÖÖÖsR))999�1çœZsB!!µk1½½½½s1çççÆŒJkJ!ZJ)))J1ÞœRc9R)�9)„B!�)!B�)))�!‰E­���tRNS�@æØf��.IDATx^ÅÅn%1E»ÊìfzÌLafüÿŠGó6QÛ½È&×’7ç”}UÞ2Öë/k„2dñ’±ã4fiÖ¬.…~Úss¼»Œ›/Ì…BéEìo>«›=àˆ"y|pðIhìД¶hd@ÅÀv”æ<ÿ1 C¯b�µVp‚¬´ŸOB®SÔ¹³Šq=7×F¡91‚%2DSin,F]|�­l|üôœh­Ûk³‰W›0óß»ëE''DÖ J%ý2Ùrí¬|Ë9(à< ± eÂA#Ðâ·•³tÒÑÂñ@še ƒ•ö²4A©zŽô»]AÌŽˆKˆÙŸ‚’ÈÉM &‹¿5<ó¼U9ñaçœÿï;ò—7­Ò3å ����IEND®B`‚IMAGE 595 ./arch/player/class/Thief/thief.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÞPLTEÿÿÿ�)�!B!�����1!!!)9J!c1Z1�91�9�1��)��!Z))!���1ï¥Z!111)))J)½½½��1!”J)1BBB999kJ!çœZsB!çççZJJ1½s1R)ÆŒJ!B�1)�B�9)„B!!µk1sR)k9�)))�!!)ÞœRc9}8 K���tRNS�@æØf��#IDATx^½ŽÅVE1 �›Ô{ÝŸº îîöÿ?ÄeÅ9– ¦Ë™¤! å|“5ˆ/å~ƒsâæÒçAØÙóÃïàþ"‚;€½£c¿sʼ"2vçG3{@©¨¤Rñ[·K¶‹ù´ uÁX“)²Ípÿ`�mªùUõÉNÖ£”R0FÓÝ\Æ×ĆÐ�;c0T¢= 3 õ39ÆŽÀKAбAD»Ç3=˜À”JU؃áû‡1­•TêÆêq}­ÎÛ9b\ÚüTë$ó’…jió !¨¦BTXZoä^"¨ÑcX>Y|Àg£¶1ГhÛ„aäQ P5Æ– H fXíûÄE6™H…:Ÿ?#*·¯/‰°|ù͇X”Ê­ë€K÷üäÿù1ÅÙ/¯a����IEND®B`‚IMAGE 375 ./arch/ground/thorns.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE¥Î÷��{�1��c�)ŒRc1cB{{{œR)���­)Z½½½Î„9Þ¥ÿ{s>'¨r���tRNS�@æØf���øIDATxÚÕRËŽ„0 Ël“6ðÿŸ»vÀ”ÙóZJˆ°qÂþ!ò7=BÔÈÐMY˜u8§æ2qÝ,ì¦ýÓÝÍÈzB»Øïü›¬ªù¼G7¢ … ¸QÓ�XzÊ©œmˆh  âf@Œ´»º†È1h.×°°ŒÑ ü6C�«¥ˆâ£¢dÔé Y¼’§дŽÏÄùûBšÂ…›Sm´ÜÖT9ÓU ¼[®ºò.KWFmáØUmÏð)oxåî¡ Ÿõ.°òPÕPµjGU¹­›l4u3Ѷ…SA °o@�þõ§´ žF §+ÎEàæÿ¬“AºŠ����IEND®B`‚IMAGE 184 ./arch/weapon/bow/thunder_bolt.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE1R1!�÷½)„c�Ö¥v ¶c���tRNS�@æØf���WIDATxÚÝ1 À0 Ä"'ÿs ñ`(…h^nü dy.”$Ï(ož³²Á}”N”¬+Òî@Ñ*éUüWÝEº}Š@I‡@±§œÞª†ññµ,¾Öl6����IEND®B`‚IMAGE 171 ./arch/weapon/bow/thunder_bolt.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,c2Í…?�1�cDÙ¤���þÖ�ÿÿ�«’á���tRNS�@æØf���;IDAT(Ïc` '(/@( Àî–„ª‡µ³ÑE€¥¹ U‹¨(ª †Rt[ Њ‡ Œ�h��+* –ýœ(ƒ����IEND®B`‚IMAGE 182 ./arch/weapon/bow/thunder_bolt.121 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òic2�1�cDÙ¤���þÖ�ÿÿ�ù$a„���tRNS�@æØf���FIDATxœc`|€5�•_ê†*P.ÑR€"àØÙŠª£hF ŸÝUUG±I ª€±9ª Ìh|öbTbsT0L`(f��ƒ£ 2ÐìûB����IEND®B`‚IMAGE 167 ./arch/weapon/bow/thunder_bolt.131 ‰PNG  ��� IHDR��� ��� ���TgÇ���!PLTE4VŸQ,Òic2�1�cDÙ¤���þÖ�þ¤�ÿÿ�ð»0`���tRNS�@æØf���4IDAT(Sc`À%Îd/‰©å0C [–0±…¡(f„¥0 ‚òr†á�м òœïgø����IEND®B`‚IMAGE 182 ./arch/weapon/bow/thunder_bolt.141 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òic2�1�cDÙ¤���þÖ�ÿÿ�ù$a„���tRNS�@æØf���FIDATxœc`v ]À¸]…qª�{±šfs SÐEÊÅËQa/UB3·hFª€kg+ª@ID*šW·�4‹XÑè�Æ: ‡V¦{����IEND®B`‚IMAGE 169 ./arch/weapon/bow/thunder_bolt.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,c2�1�cDÙ¤���þÖ�ÿÿ�ŒÈÎ���tRNS�@æØf���<IDATxœc`ì -M@]@ ]@…t-´P‘""Œ*`Z‚*ÚŒ*ê†f¨«š€#ºµÆèÔ� GdÇÑ6����IEND®B`‚IMAGE 178 ./arch/weapon/bow/thunder_bolt.161 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,c2�1�cDÙ¤���þÖ�ÿÿ�ŒÈÎ���tRNS�@æØf���EIDATxœc`Ž€)•Ï–¤€*¤„¦B) Í%tP5¤%‰¡ ¤ ©¡ð™Å Q0W„¢ $•;£ 8: ZêÂ0à��QË ­|2ŸÓ����IEND®B`‚IMAGE 161 ./arch/weapon/bow/thunder_bolt.171 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,c2�1�cDÙ¤���þÖ�ÿÿ�ŒÈÎ���tRNS�@æØf���4IDAT(Ïc`q€--U€9Ô…Ÿ"Z*¢j0ÔÐV!'d4ãrç4@jb0, �¹>ïÎYƒB����IEND®B`‚IMAGE 179 ./arch/weapon/bow/thunder_bolt.181 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VŸQ,Òic2�1�cDÙ¤���þÖ�ÿÿ�ù$a„���tRNS�@æØf���CIDATxœc`D ] ,´�U $#U„µsª�KD£ªGÑr4CÜ…ÑŒe/6@³™ÙÝ-Æè"åâ„MAS1ô��­© 2]ù±����IEND®B`‚IMAGE 535 ./arch/floor/tile.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTE9)?->,@-@.A.B/<*=+?-<+;*B.@-B/C/C/D0D0E1ùùùA.B.C0>,?,@,I3²²²=+>+A/B/=,@.C/>+A-C0A-A.;)D1E0@,F2F2G2H2H3<)J4@-ÖÖÖ;)¿–Ø’��-IDATx^]ÒÕŽC1 ÐŒ—Ê]fÆÿÿ´U·“>Ø/G‘F‰eÇlUÁsÏfûs¨ñŒ:ÚÒS`GõTb ¥ ˜è­º!‹ozCZšíø_{jiOŸÚÕ6)ö2¥Éõ%B×ßÂg™“]’Æ9,iO3šÄÖô•>ÓS`PÝŸÓ4tE­žCC=I½ «f<–Єz*ùCºÌª4ýý,šµàã­,L3ô/å…â:îßêÿ{¨T…^ÖRm5ÄÀ•šCI§˜Õ žZýDN…†øf ho�EXɉ•r×®©ì´y’…dq÷4Ð’ŠQñ‰ÎzwT¢zïT”>¾t@?Ѩ€¥0jÿ + ƒÊð-ç2tX ¨kH±Ã¡þ�²Yƒp­Ã����IEND®B`‚IMAGE 535 ./arch/floor/tile_tan.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���¥PLTE9)?->,@-@.A.B/<*=+?-<+;*B.@-B/C/C/D0D0E1ýýôA.B.C0>,?,@,I3ÎÍ•=+>+A/B/=,@.C/>+A-C0A-A.;)D1E0@,F2F2G2H2H3<)J4@-êéÁ;)І![��-IDATx^]ÒÕŽC1 ÐŒ—Ê]fÆÿÿ´U·“>Ø/G‘F‰eÇlUÁsÏfûs¨ñŒ:ÚÒS`GõTb ¥ ˜è­º!‹ozCZšíø_{jiOŸÚÕ6)ö2¥Éõ%B×ßÂg™“]’Æ9,iO3šÄÖô•>ÓS`PÝŸÓ4tE­žCC=I½ «f<–Єz*ùCºÌª4ýý,šµàã­,L3ô/å…â:îßêÿ{¨T…^ÖRm5ÄÀ•šCI§˜Õ žZýDN…†øf ho�EXɉ•r×®©ì´y’…dq÷4Ð’ŠQñ‰ÎzwT¢zïT”>¾t@?Ѩ€¥0jÿ + ƒÊð-ç2tX ¨kH±Ã¡þ�²Yƒp­Ã����IEND®B`‚IMAGE 112 ./arch/floor/tile_white.111 ‰PNG  ��� IHDR��� ��� ����V%(���bKGD�ÿ‡Ì¿���)IDAT8OcØ×pÑ ›®ÁO\ôÐPpí'à¢FÃa4FÃ�Í+W^«v¸T����IEND®B`‚IMAGE 352 ./arch/wall/timberwall/timberwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���öIDATxÚm“ŽÅ DÂýo¼Eêú'y¡¶Ô¢ã’A mÜ">ú$X “ØÐìßF(¹""~DÜVÀŠ2PüT%P0Ý÷¢Ò·ˆu~”—¿Çª?µK„ÐÎUÃ2£¨–ÿ¬:Òa¾ˆà®#féâ/œO€où¼H`Uƒ’1Ù è:ŒÃb} (8|­p.ÎÁþ ñþé3pnîXc6ŸAcì 'iãÜAô…®Þ«-IòHjôÌã00 AŒnÓ‚nwŸ¦~Ô3÷­AõƼ4×*æ½TÀÈãZE¬kåyèœò„†#ôÓ 2/äfI����IEND®B`‚IMAGE 321 ./arch/wall/timberwall/timberwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���×IDATxÚ’Ñn„0 o;ûÿÿø®Æ*Uª¥YŒ3øuV*R&RC¾.µ¤”YºÔ- ôZ¨áX„àx ö‰½m¡b KÅ6ƒµø?3l°$pÌ$(fXŠÝC X(Φ«üËwL¨<¿{pÑžþòsQ óìÁ,µ‡bzèdaãšåôy1C_<à†ûÐøxÒ'ÃCCnGªà›U 6QÈÅ’»Á܇Bâ Ì}(æyy`Œ8<$ä ô/¸;x†÷G8j����IEND®B`‚IMAGE 321 ./arch/wall/timberwall/timberwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���×IDATxÚ­YÃ0CQ…áþ7njÇŽ»ü”™7±†Íþù!†P$ïLw ààÂhxÃ@Gk6&ƒzòöNöw ÔsgLÈöe†LT3øv†jîÀðt’½C;ð}†@Ý ì*¡Ÿ'@(? è-½PŽ®ëþbÕ–uŸ(LãGlBúÂ8=H/9ÃRØÅ¥aÝà"ŤÛZÁC”†4h1öO®÷(máY}÷[nTÁ/,kŠÊ¯»Ø²?'ëk˜÷]/w˜÷§Wn$9`‚ly‚´üö+ž/h §-´µl����IEND®B`‚IMAGE 312 ./arch/wall/timberwall/timberwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ÎIDATxÚQjÄ0 3}’uÿ7©cÕ‚…}0ègHÌ\îŠk›C ζ"CüH¸xPÄ.¸¹Hyw!dæÂÌ“AeEÀpÝ„xß± 2& ñÜò¤dý?oé0Žð¿C .^šø×$ó‘]nlx°%,Ž•Q; ìø$»tl›‰-ºIüÑulL@G‡„·Gjë;¡tˆ³Ã $åm:¬z.Ô«Í{†„D’C Õîú´_¼Lö«Ý����IEND®B`‚IMAGE 305 ./arch/wall/timberwall/timberwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÄIDATxÚ¥“Kn!ÅÆ×çþ'Φ5-h²HIo÷–¡^Ë43ökäk6…–”7ÇIAa[ˆdd)tË×ÔZ�²/Ö‚-hÔŽ¡…’g†$ª -o“”Ú34(Át°2HäÁCw7Þ éðPnÚàã!+"ÎûkaHLÂ|ôД„=@v ©—‡-CÓC=x•CÆõJ]<Œð£G3y+D5aÞB óä¡>òüÇÃ}/V-ôµ¿«tcnÉp����IEND®B`‚IMAGE 303 ./arch/wall/timberwall/timberwall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÂIDATxÚµ“QnD! wº’ûŸ¸-Eì[(zR¥FòŸÌ`¯)²‹„!ëq™EظÌ0Ì òTš ùnh& @ ºn(#šDÒµHå2¹dš_ª™aÙ`ð#ÐÈ=h×!C#W¹qè†&ùʰsƒ?qðƒ;éÒß9D×àtÇ!÷ Ø sæ6˜}`pÈ#îûÀìCª[‡Á)îú°^3‹oÿ….<ö¡$Êø¿>Þbžëõ->;³ u£w…4����IEND®B`‚IMAGE 322 ./arch/wall/timberwall/timberwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÕIDATxÚµ’QjÄ0CWÉšûŸ¸éØ[gÆPèGÂ!H¼äõŠª30p+øñà%À˜>ˆ¢#`ŒAàÇg »¹îÉ£À&„íŠ:˜·¼7t$e€L¨AH{ƒÑ&Þ”×ÙPÉÁL;ЂB<8+ƒµ­mØ èô ÀÌ�wG : ˆGWÁH4Òh(bÙ Y“9J \ïà òà0ßyõ¿çÙÿ9~á ¾/ãªò^þp²ôWbç‡Ûû{3¢qX6‰ùüú»ÎN6±Ÿ����IEND®B`‚IMAGE 315 ./arch/wall/timberwall/timberwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÎIDATxÚÒ Ã@ÐfKÔÿÿâõ°pž=:6!#ÅîÑcNÀâ¹€+Œ£Œ£`(³N¼Iq…µ`tù$rìZJFH‘q¬8‰uj‚ñLó=jB&ïç®…üóþØ‹ƒß€î0 FÌlÀþv`sàûÙÁÉÕAÓ!;ñäY ¼;¨Dƒ0ÂóF+Q<oµ¿Ù$k4ðÙÆý÷ s;wqÀtÈl”yëÅAwywˆæÝ!šƒ¥Ã‹jç< bžÀx~����IEND®B`‚IMAGE 292 ./arch/wall/timberwall/timberwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ºIDATxÚ­ ! C›¥6ÿÿÇó*×Ý)sƒ-ðHÅblíw郌!ï1€ð †½²¡qƒ¸¹çþgÆì‰Å|WÎË¢³z'2â(Àä£>"à–¿8Dß`ŒüÏJ$4 lUËŽÃOHC=ê/g÷èP²¼q «'”]^ˆÉÁlWÍ=‘ µøÍZçùïVc†o– ‚'œ}$ÎîNeBía²q@jçjPÓ;ÙWzàW ÏI‡¨����IEND®B`‚IMAGE 335 ./arch/wall/timberwall/timberwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���åIDATxÚ•“ŽÃ0CãšÀÿÿña‘AuÕª;KO¦ÅZÛÖ(àcp`¬›6 @Ú(1‚—3l }=ˆ ®º`’€°ä’7~\7y6§|È€cÞ Lâ6ÓÿÌ0çòqŽ~f3ù#w›o3ü€öâaبz¨@¨(ìø /‹�¿à ÔoÀ\.öà+Å=®y\è¹A9Ë÷ ‡}÷%@š@»P¿V}°qø}ÿ©Õ~ÛÃ'kΤn°›³ƒÞÃÜ=é”®ÏLwoæOI 6ÈM œˆ/ZÕÿE V/’����IEND®B`‚IMAGE 283 ./arch/wall/timberwall/timberwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���±IDATxÚ­ÓრàÞ®\ßÿtƒŠ?¶&_®JÚ¨ý^ñPF{¾ax(« 7Làfÿy}ÏX2™.טÆT]%ÔhX2ûv<q䂾a^P2\ –Ù[»8a“½alê3YSyß^ðÂKv‡´d2yÐQn9À9I`c¼¦bÍÔÕqÉœ -ᘉ®œÃY|äW‚¬ÄÒ!žÿͧzð /ÇEA����IEND®B`‚IMAGE 335 ./arch/wall/timberwall/timberwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òi¯/_c2Í…?�1�cD��� z���tRNS�@æØf���âIDATxÚ ŽÄ0Cq×|îâ©Û$T:HO„±u²à<°ìhà”Ž2«$q$Ï�â‚UÆ,"�2•ßðR?9¤‹\jx IéKl½¹_Ú7ì¤ô—z¯t»ÅrÔÞû{æéÃ~Kû d€MµBÏC@ya‰¢O|ècàwŒÏE4êÙU°›,Õ=lPP¯á¬A áAiç1sóuNÞ8W->4øWv/à?û𦿗CM›?'w/ ÛÿÅô´£ÿ¾ã"H8•`aåeõö°Õ §„ p����IEND®B`‚IMAGE 306 ./arch/wall/timberwall/timberwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���a$ä™���tRNS�@æØf���ÈIDATxÚ¥’Qƒ0 C›9uîã5”,-,ìc‘ž\AÖƒöÿØó´DJZh}áqæBG…?‚ï÷‰ºCò«Ã,ÉxÇ–ï×n¹và òÞ㠃̭¥*4Ó ÌPƒ:’™]|ÁÏ+¼t€‰rýâ]tÃ>¾L“ÀFæ÷Ó±ðí˜Ø™šÿÃöž¹L¨ÖC¼áA’ô€Â pú“ÄRüo\=(À™•ƒÎ¼y ˆFðîÁŽéƒÂCÎâAG~noK² ˆU‘Ýe����IEND®B`‚IMAGE 344 ./arch/wall/timberwall/timberwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ëIDATxÚ•“j1 C«UŽýÿ_<™xNΰŽ2TÔ:õú:ð€QŒ×5 HƒäŒ qN¼`1¡ ôО,€ôÜ72h‰wjã¥iø4¾ ‹3õ ƒƒ¹(â‘aò¯ }—œwÒà•ͤÃ÷Ì€O ¾©½§Nä×#ÁÞcô´l+ÀBzíÍÈÀ€yÁd¨ó¤XMý&‚2 ?w¤§tFۆжxÔ:Cž°Žæ¥÷tÜ=°{]8‰Ô¿{¨Ç|Bô°ŠzÀ¼ÏÑà Gﻇdöàp.!ÝñýoªŠÙÙë}ø:ïÃ7×ß Í_)þ����IEND®B`‚IMAGE 308 ./arch/wall/timberwall/timberwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òic2Í…?�1�cD���Ÿüí‰���tRNS�@æØf���ÇIDATxÚ­ÁÂ0 Cc°“üÿC;º¶•Xzò!U=û=ù%ÆH×@haþÀ¹À\ÌùŸbì(]o8±Q<Ä“³Fô�•žá½­è*4;÷ÂaTR Ìž·$$P‰L( tÔÈèÐ rº‘aÿ\££Ï‚}‡Ý!çF¾Zû ’—âÕoaW­Jõ@çæ•1ç…^x`ÃW8 ÏÁâAdônÄðT=$µõÁC�I68\Ô¤e7ŽÂÓfЇ‡{� ° Zõò€����IEND®B`‚IMAGE 362 ./arch/wall/timberwall/timberwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VŸQ,Òi¯/_c2Í…?�1�cD���O–[ ���tRNS�@æØf���úIDATxÚ’ŠÃ@DæfÔÿÿáÛìÝB9:ðЖ€“×Ú$ q  `Ú¢ãHšåA\ÁÀ7Ì4F¸q€Œ½o¸§„×BMô4üŸý€³‰º?X`¾Ø=ºCóÞã›s—ŸºXÔgÍýyæôP³9=ìeSû„×>!8nð·gw ÒI=hÑ¿Cu`Ô~ Æ„¢àüž&2:D.¼©w¼lAH¨@åD JBΙj'’›ºZÔœÀò0àô@oƒÆƒ¾óàЉV^í!¡ÆŽ,>,.�Þ·ìúàA ðxdއ3iÙi§‡´É¸�X¤ý~¡ôó����IEND®B`‚IMAGE 799 ./arch/jewel/tinbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��ØIDATHÇ•”kKã`…çõoì—]v•­–z¡•`CCI±H‹?ˆ¬„þÎÙg&±µÛÈðæÖžóž93ïHCÖ±”¿ò,…4¾ïàm=Ô¡¾~dõPÈ«úSë6uÊ{=’Ý þ'ÚÒ?ÚADz.A)þà¦ëð6÷¦æ¨ØGâ—Wéj3`[û²ú(9Ýë‡ïè™F˜××ÒC Ö‰Žy:ÿ¯·ï@¿±oÆ~!T ™&ÐF| õe§¸s9"ï80qð@`çÄö¥},Ÿ'Á°ÊýÏ|ßðe•@¡):†öñ“Tè¼ZØ.'t^9DæBéH߬:Ñ?$“S—ú꺚 ¦$áÛÄI:|µî8DÇb+I(á±f×ÈWŸ¿G(Èy¶tJ‹&Vîц§Òã¯11®bD=†�G¤¼÷Hñ Iñ|_逩…œJÀ²6%åÕ:ÁR‰!èòxw¶pî-;EÕÊÏÉÐ),™µ’1)NPôÄëÕbÅzG—n¦‚~°=O¥$1s("ï Û5pŠ6 .ˆ']®³QÌQ²˜8Eæ‘XV££×ÀïôA ÙªéRž$¤¬VºÈUL�çnåÀ¡-§Iô^o!xÔ}×WKÖ k*ʺ$ÞæD4 ú.Îþ¬­i©\ya“*2w"÷»õëÔáF°Ð«åx{-nmd$…¥»Áƒ9i\R‡‡ÔfT$]÷ ­|Ƚ"©ÎØw|J',w4|¨žC1®ä竘Bpƒ‰©ÒØMPºq‹gžJºA0žë“Ÿ‡=#Óz4ÄÒ‹7‚k4¤ÕqÚ;¶ /lÇmÌ|]a`¼ú5&¿¥2#•¨Rpm*V3¡A©ãÞ'—Ìè‘õH©I`:^(lÏÛÝÆX«MPöBlZm´újø<oÕq±<A],ž«����IEND®B`‚IMAGE 223 ./arch/misc/tissu.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ��ÿ$ÔX���tRNS�@æØf���IDATxÚÕ’QÀ C­ÜÿÎ[ ³É ÛïÖLÞ qü.�òÐЈ�+&jÊ`2.$%‡¸’ Øœ¼€ÆÉVXK1„ wA«¸Œäþ 9ÙÆÞ"t9—Ú‹’»A–¥6F ^–ÚS-BÜ…tÈ=HAÔ§ðù|xÿ¶Æø`Pavqb­Ü����IEND®B`‚IMAGE 2398 ./arch/monster/giant/Titan/titan.x31 ‰PNG  ��� IHDR���`���`���ÕF‡ ��>PLTE������JJJRRRccckkk{{{„„„”””sss999BBBZZZ!!!)))111ŒŒŒœœœ¥¥¥­­­µµµ½½½ÆÆÆÿ��ÿÿÿÎÎÎ@@@ïïï÷÷÷Æ��ÿÿÎ1œ��Þ��WWW�1�^^^IIIÞœ�ç��çççï��ï½&&&R9�{Z�ÿ��½��ÖÖÖœR)\\\fff```„qqqŒs9!÷��aaat="Î��œ!!ÿ!!Ôi4Ök1µ!!ZZRDDD½!![[[�!�ÆŒ�]]]���Ö��„!B„B!c1cB�ÞÞÞŒ!!VVV�)�ggghhhjjj÷½kŸQ,¥¥))ÿXXXÿ))ÿ„„ÿœœÿÎ)mmmµ��$Å&���tRNS�@æØf��ÎIDATx^í–#K„ÅÐæáYf|̇ÌÌ ÿÿ\f·½³ckìÙWZéNz![j©¥ø*2;«jô?®¯„ë�r™çÒåyþ%ü¯ c—•› ™½|3÷A{²åy]þ²¨‚;–J/ÕõƒãB»u™»!Î35{u}Àûïß}¼Ã_¬ü Ê£)ÜÒ?¼¼€µPæEQÏkÍ›.c7�y휣„@ 4x¨wûßíw7Ö_oʲO&‹Å?æ‹Åâèø¨¸5`€ÇòW�ßbY–cò_üs±xptôZ�u-�6+õƒ}…PæUˆBf™ÒÞë×`�x|w�¨œ ��2¡÷þŠ`À®•T {šü§­@¡Q´RJÈõ Ë´u]c†7BGÔù>À×±Á,#j§£ôÖ2Àʶ�À7]g"¿ ¿ŽµêËþŸm dë:hçÆ €©PÌX¾q&:ç0Ãy(*“À!d¹òðp�œaðϘh£áœ…ïò,à 0@eÆ>ÌpVÔ+ÿLAZ&³lVb�ØÀúqå½±k€!àu Ë�–5ÞëâJ�ϰÍ-2òï ³EµÖu½=²jÇúoÝiË^B) ÚX’É(A¨¤(o‚Ufà -„ÈŸ_¹þ[¸I„›¸L…È2™µuQEš\%e²ÊñðáŸÑ«æ‘1äõééâJ�Ûß9¼ �2ÈL¡”yU(ä·$»U8Ñݸqÿ“Å ÓÓÓgϾcOÏwà ¯C•‚ö¦5^ ¨x|•Ey"³ŸêŸy³÷È>;ß�‡¸ý Z»‡1MÝ‚ýC$Þß”Œx!%¡Ì+€m\Ó|í|Ç'48üýú´áå{càÜlÜñ Fîì©´V"P�΢ыWÁúëÕ€[«�‡¿»óîw¡>”¼ì&+ò"ˆa{&e'’¤žc:]’,šÆ9wu€Ö?Õ¿Å»�×G{Xç¦EpMA²x­Å’Ùs3=&a³0Â*À­;ïýèS|ø}}\9vãÆ`@_ï•|„“ŒýŸO§äÎ ®¤ûûùÎmˆ|ûðo?hÿ÷>ü5Ùƒ?Œ¢ì¬ÑÖþ>{qÂi ™Í¬/Íó=�|üÎÇ�BPÐZyôí¸Æ€T—O­½þþ(� ˜`f€ù²5» 4Â;ß�0Â� Wï:ã9µu(ïÉ ÿUÿ‚Ðìa2Ìò6ýÛfo�0(@@+i˜ÆëZ« xÒV¢<;£E«³³³ºÆ‰âgøål ̨Åû;Àþ, ‚ãs댫}Z Y–g¤¨* À�ý=`º4`®Ðþ�Làqê 0Z³}[ßëG $á“û7V´™-Ù¿i®€äRŠ!w¥}R¯€Å_B±`0›Q}`÷دáòŒ¤bAP䑪Ã�ö!€yÞ3ð.t}ˆüëüiŒÔ�ä_‘ÿ0†emCbÀ›ëH¼‹Þ‹Qd%‹ „�tïìò߯öIY•÷V3¦Þ¿Ï�‰n�ÐŒ!Åõ“¼Zw@sá†pKøÁŸ�<Ã_RÜ!VP€ˆqp0žÃÌ{@“�(sžuo|€þ¤Ád ÃõA’?·¸ï�7€:,bõ'|«PXbU—€�TžÈ�žÃq#ag|Ž‘RüP]Ì€‘÷¡EÆ{`Óü9�õr=Bþê�0™.-Òü¹ÅyÁëå«„â�{0>Àð%ù£­~“Wq˜2V”¼Ó¡i`îO€b¸¬hÏZTÔÀÅ¥� !Q@2Àx­W�!Aþ¶šÄ�ð0U%‡»„V‘/tèÖ& � A{HFTÜ‚PU|wæXS�Rš?Ÿê€1ô $cUá…‚ÉþRA’-§X æ"AêúÁ6ÆZ‹ †}ðîIòú¥@¦|_˜ ¡ µIõGŒ2xoù¶` à€…µøès™ì/ ¤ –ü»Ž�Ð=Â2?¹ñÅùy’äúhÂxÌþè'ÁXæ5 ¥Ø@b»qÎz¸ãTøñdìFiB„R^Ã:²ëB`CHŠä&“q²ÿäoÇ”¨1 ½lr€ä?YôõÑREA &ÓI—ì_A“ÿœ�Î…� TÀ[Êä’žü笵}a�X©"üd6ë Œaÿ5 ð” (‚‚±¨ \xñ`+¨f6ï’åT•Å¥ºE‰ÌNç³4�BÚóápy4båæ/ÆHmA¦¼u4—² P“ùÁ<ÑŸKí p‰+2o ›éÔ¥VH(m¸B·G›�kAJÀg¡s›ã I€¦iÒ‡lÕá �\úCP€mî±òÄM´PJy»m1€Sý‚ôÜalWN› �”¼'{l�úÓ,}B¦¼W Øp •NÐ*¥áB¸vû£Ò¿!(íµM7n·¯`‚"( ¤ˆ—ß¸í½ BJ©”T‰�Íëwå¶IÉW]KrI�å­½b§)%¿Lí2€ö x™iß×£·¤r¸6bô¶ÔßLµÇè­©,9D;z‹jI£ÿ;}¥ÿ ·®l-ë»ñ����IEND®B`‚IMAGE 2422 ./arch/monster/giant/Titan/titan.x32 ‰PNG  ��� IHDR���`���`���ÕF‡ ��)PLTE������)))999BBBJJJRRRccckkk„„„”””sss{{{ZZZ!!!ŒŒŒ111œœœ¥¥¥­­­µµµ½½½ÆÆÆ÷÷÷ÿ��ïïï{Z�ÎÎÎÿÿÿÿÿÎ1Î��Þ��Þœ�çççï����R9�½��œ��ÿŒ!!Æ��ŒB!ÆŒ�ï½÷��„„B!ÖÖÖs9Œç��k1µ!!cB�­R)��µ��Æc1µZ)1ks{½!!1)!��{9!9���!�Îc1„!BÖ��J!�R)ÞÞÞ�)��1�ZZR”J!)ZZc÷½œ!!œJ)c1¥ÿÿ!!ÿ))ÿ„„ÿœœÿÎ)¥))¥R)&Kü"���tRNS�@æØf��ûIDATx^í–esåHÖ„;‹YxÙØLøÌÌÌð¾ÿÿGì9’ÝîöHî˜QûÃnLƽ¬ÎGyRUª;ÿ úR•­*«ªº�ÇJvqglùð ð¿¿’Š{ëü™x“€FTñÒ»}q›>¹�Ÿ s០Ž6 ˆg!§‹ç|N€¨¤GûÝ~ÿ ‡_@›¸¨š#5 %ðá ™²gÝDh®„èWëõáðÏÝáp8Ú €8�p3Õ @Z±"ÿÃÉ¿‡GG/pS€2è€Áe€Ö ‚¨:¥-Åù”üK0p¥8Wæýá*"X�& ªxðw\@ËÄÚR=fó‚ñµµ–ö@sÀ‡Ø·yüÅxÆ šæB£‰^Û‚­ë@RÛ÷Yóôõºq=´˜Hàˆ0ŸÀغíáÛØ3�¹c€Ü²R³ncDߣMpmm ¦:`Í­¨R¹„Ô¶}ƒæ[€?9ë#¡Ñ¶©¯Šš�4ø=}o�)Jh[vŠ1X…æÂ¿8Ø0\(Bš �éGþqçôõ.¥.Á(…—e BNÉË)�>ýÖ<�€,äÏÈŽ%„�ª®“ à�L(ݤ>˜�ÖV@e|¤\(ê¬1ª«¤’Rˆ2þà1•™öÁ¾‰Y{8g«ªnd§m)F“·)Öh¥ð j´)ÅjU ÃûËd‚ÿÇ´=ŒE)¶@TÊtJÚßZv3Zàáÿ‚$XjPszz˜¼=™�(°Å�–�²ãåË„£oùïÝûä½Ã¨ÓÓÓgϾNŸNýð#`Âß9ø”뜜e¥ÉŸ÷7gµ’â-[~ê?HùR¼ ³ �dÀá3XrOȹmj@T’ïžoß{g”ÄËå€Ðƶýûd�íj¤Æõ )gĸ]õVVR™q{&3àiyŒÊ¹eým*@ÓI]Š5^‘s”[ôë>ZI2v�$ïÞÕÔ€%¹GØlÎHäãt�峑ªÑTb'ÊÀû„ãFªhËþTÈ»’ïQÞìIDØ!Ç9@Ýi~î ,Iʪü�Ã|¢XÅU�I€KÿT†�…ým6äÎ žeüùOUàœ¬¬ª¨DWšÎzWØüXHчìшãÑŸbùwþøx^ðûœ·Ûvgùûó�è’Œ”5Š2óî;C½ëØf°%îÛàÿÝ|õ˜[€M¶ØÕyº”i:o%:ÝxøîcŸ“+¨;#ÎÏ U|~~Þ(�Ö Ÿý†¾u;€í³®šFkej[•4<þm»jï €ú¸3Vˆs’�ºŽpLCÚoÏ€-WÜÎù³ *í}Í'5êØ]D1'v¯ëæþ°Ä ï}r÷ùs À�ÿc`s–Áþ<¡95?ÿö÷ÀRеá#½gÿÇ|Q�ÿ§äe�Ÿ‘·gìßÎh>ý0ÞT]Eþð5Ô+M0€ý5¥`ÀvKóAx=àíŸà ¨1±nªc­©�äß1€¥Dl‘À»Ð¼ðÑÜ ÷µ6E°(ÁÀŽ‹.³BhIó€ù÷«~,:qÿb9‡‡Ôñ�0€Üyÿ׿2Ñ<®ºË<¿É.Xô#�»=^çÏ fŽ-Ü€1 8Àh}|Ì�Ä=ÒèÏ�ö¿9Á/g�¢â5pÙÀáá½÷Å`·Ú!gì&�Sf+à¨a£»'Ü1!±Þ#ó|0ú1Õ 4È_­Àç‡=.æÿÅ5º«5`9U 5eBØîû/ À¯z{¹Œ}þ„+PÚ`»Â"®¸’ìÆG ÇßU’�Xoö‹üQw¿®:=®2–¶J2�á¤ßa|‚–ø@އŸXÆ›@Åžœ c©¿…EG�Ë€œ¼'À¸Ñ!ž eeÑ€€„Üuv<Kx§ù@7®h±Ì¿(Ÿ`ÑqªëøÌ΀!RXø�Ö:�9ÓG‘rfT7&(>/óç�°ô![Nq)dƒ'Ö,ô·Å¥BÀ•?î,ò‡ÖV¥Äs@¾Íûß°Öù…ó10Ö)ê1ö1 €€ ·ìó2m`Jõ+$À¶ßµ ýH)‡¸R*†”^ |¡ïckð³{zútÉýùäAþëU¯Ô€£Zi,t!*PC û;VkTýjÕ·Ùƒ˜ãÈâz½"ÿ…‚�ùo¶Ã|ÈŸPƒÂR�:xòß FÏØº6”`½Y÷Ë$òßõ!$\PA€hfqy�´ÞnûŒœ®zg�H‹R9ä)¯Ì ”ï Pq @×½Ü&´¶®ÝÒä–V¬¬OÃWzÑ%lv'Ûe�h­ µû^¹ ]àâîÓÕR€2vØð*×Ö n½;Ù-­€x®òÀ””áÛÍ&. @NÜ�û_„7ðÖpÎ ãØÆ.}DkÅ´ñº¿a@\ºˆgo9 ×ÚºD¹–ŠKÉ1 ½Þ�5“Û¸x@Î/ÅXfB.‡Å�8χ”¶ï¯ûÖ7± YÇ·ßÆ®û/³v9ÀóýG‰’KobBãRš CœÇRPO’µÖ9ëp+| $šÑ-,OZ¾5@ácã­˜0qç¶ç}"ÀmIQß¹EÕ¤;ÿuúRÿõÀ®Ÿ`‘³����IEND®B`‚IMAGE 2498 ./arch/monster/giant/Titan/titan.x33 ‰PNG  ��� IHDR���`���`���ÕF‡ ��DPLTE������111999BBBJJJRRRccc{{{„„„”””ssskkk)))ZZZ!!!ŒŒŒœœœ¥¥¥­­­µµµ½½½ÆÆÆ÷÷÷ÿ��ÎÎÎïïïÿÿÿÿÿÎ1{Z�œ��Î��Œ!!Þ��Þœ�ï��½��Æ��R9�ççç„B!ÿ��„œJ!ÖÖÖ��¥R)ç����­R)ï½!))÷��÷½ŒR){B!�1�Æc1ÆŒ�)œJ)c1cB�µ��µ!!µZ)��)19½!!½Z))B){911))�!�199„!BÖ��9)!911�ÞÞÞB!ŒJ!��!œ!!�)�œR)RRZ¥ÿÿ!!ÿ))ÿ„„ÿœœÿÎ)¥))ZZR2âw”���tRNS�@æØf��,IDATx^í˜UwäÈ„7ŠYØl¦ef¼ÌÌÌôÿßo¦äžu»mÇš}Ù³1Ýã:'¾Ê eIêç¾ úJµ­këºþb�dë"ãÊØêµgÀcÿNüºH×Öåc·]|†€NÔñy¥WëÊ-úäž�æÄß@.ƒOãⳈºq¸^­×ÏûüD�Î�ê.ÆH (EdŒðÐ]ÐÑÏæóÍæ_«Ífs¸>�ñÚ�Ôi h!ÄŒü7ÿÞlž?<<U€»À`[@k†AÔRic«Êå”ò©p �àj"X�& Šxðw€ËÄÆR=®Ñ ˜ŒÒXk`tÛrˆ}ëÇ“5:ƒú©B£‹YÛ‚mš@¤¶ï½æúfݹZ<}¶i{ä6ö €— (KVj£×mŒè{´ ®m¬ÁSTU»„Ô¶}ƒæ–�¼×!FB£mR_Wê4�W˜"ªÐ¶ìc° ݉å`Ãð×H€Js�þâ œ×eJ>lÁ(…Ó2aÁ§”Ë.€õ$P*ògŠd !€ZÊ‚Â�.€ •$«§ ”¨Möä+ª@IkŒ’uQ¥Q ÙSŸ‰øJþ°¶iê¦+RÓäMÞ¦²FçÇ¿$x‡N›ª²ZÕJíùׯ9�—ÙÃ9[×¾2Rû?Ën À· kÑÕ‚¤X¤[§�Žt�€± ¿ª&@‘<¾ÆVD4¦Ü¿ÿ7ˆuGG›}@}�¨@v €e¥ÉŸÏ7gµ*x˜?¸{÷Í÷6£ŽŽŽ^|ñ{áèÖÎŒ:–¹Ðß9ä䟜uáÝóösv†Ó}h«Ÿå’ߊ'.¼H€ý]àOî Þ·]ƒReÆã™T�,ãüc@hiþAþW0É{ĸœõ¶©Œ�)»wôP�Ç‘1ˆ÷ÁúûÀÔ�.èOÕ-úy-0¦äì;…°$÷‹cR�¹ÇÈì «?ÄùýÉ !ÆEQäO€­ªÆ¸CoùÅšD„|ܰð£¿|{� ý‰bgm�Џ9ú5úþ§T@Eþ/½´X;3¸—ñŸä¿'|ôÉ×÷æÏ’=ø²(¢>£Sâžù?Ý7Þ¿‰‡òÚûå2„Õ±éBÀoÞx;î’òÄï<¶¤FqãFE߸q£#á!O°ðÀÒ«ãÆoØ^øäÃ-V$mÀ»½O®ªÐÜ”Æ qƒ$˜?DÌ€ùðÇÓ·iÏ/€…¿ö*H„ªk¥yZuhÛY×eWñýëÞ0b‚„÷Þ¼}ç:.i½<–q{? ŸýÒá•Ȫ–ÅÚ¿ò8!„è ›G]y�6ÿU¥¼L0 ÿX{°?wè\5¨KWÛ"sJ—Ñ*%À“aÓ4jM0€ýµR夀ìá—ÇìO#pYƧŠ:!­sºRTz"圹mÔŸú¦Ö� ò—c`¹¤þ <Pº¢„ÐE›JÉN:>]ÒÉ‚N”{šV‹;¤N¦˜÷A,áÀ§Ð…8ŸlÖ2•–•ʼ}Waìß#!Ž“#è}ʘýÇ©ö¬ZÒe�èZ(úHmŒ(Pä^#¼{TËmy¸/ª2� wàR,ej“ZkYd)þNsçˆ:&à�£õÍaŠ-ú€Õ—ù³PkÙÈ"dóîO ¼ò9»5ÏÀ6Íý»/ @\#þk\êÏ‚®R2I¾‹3hŽxH€ „–ƈ±š­à=VWtEvø°7" 4xŒV€˜¯á¹?x¢?«ûî¯^øèõ=ÈÏgÀr?9¬Aþ—$¼jŸW�ßêívŒ½ó€#Кš†°\‡«úïŸÚÛˆ‡W%n—g|[qü'`¹ÂUýÇSû �üS-õ8e,m‡1ÖÀ|±D¸²?ŸÚo¿±C�Êø°’Ëd3úÆ+ˆý¯(üöûØ?XHXø”3$(؃x<? 8S�¼”v|–ÈNtã” yeàš‚Ê –’#PRò3û8 ÿÐbš?ßïé£HÞ3J2`蟡“üa­ƒ%[®b+x3ÎqöSý+°‹!`ë?ÂðÀÀiþÖ ripÿ\€\Á$hmUJoµ�i„`^þ¦µ.OÛ¿±Nòï{~ùøBõþ9ûIþÚÀº”êg=�p d:›Ï¢Â·í4ïw¦T )KbbœÏg¼øó»¼ukÂþá\Ê‘öÛ+¥À=3€ÀáÚöã›MèçýlÖ·>c€jCÌóžpÓf‹eÀПŒJ€§ ‘ÉE€•¶mc�H“‰üW=B [¬V O¦ ‘æËeïá=ûoÚ:¸vIà‰€¢|ð€,À©²´E«ƒåä (L�Rì\¹º‚‹«×fÓ�PÊæÄ'DÄÎhØFÁÍW«éT.…H#°0UòÈíb'Æ,“g�v¸¶JáY\¤PÆeÏúx‡kж-Q§PþØår]Ã_' æ$á]�†;d§ûƒöýa¹®é€ι´× `¸L qP6íïÐÚ¥é�Î(>ôÎ�¬1T‚˘F�¿V;´8›¼µÎYLkËãÙ% CÒ´áòð~ß7gÙÂRabÊ°Ž·ßÆÙ¾‹¨ˆí'2ï?ŠóLÄøÐ5±Cãav>ÃïG˜8Åh.Ä ÁEÐú§†ôÜ—O_é+ý)Ï´$QË{Ý����IEND®B`‚IMAGE 2398 ./arch/monster/giant/Titan/titan.x71 ‰PNG  ��� IHDR���`���`���ÕF‡ ��>PLTE������JJJRRRccckkk{{{„„„”””sss999BBBZZZ!!!)))111ŒŒŒœœœ¥¥¥­­­µµµ½½½ÆÆÆÿ��ÿÿÿÎÎÎ@@@ïïï÷÷÷Æ��ÿÿÎ1œ��Þ��WWW�1�^^^IIIÞœ�ç��çççï��ï½&&&R9�{Z�ÿ��½��ÖÖÖœR)\\\fff```„qqqŒs9!÷��aaat="Î��œ!!ÿ!!Ôi4Ök1µ!!ZZRDDD½!![[[�!�ÆŒ�]]]���Ö��„!B„B!c1cB�ÞÞÞŒ!!VVV�)�ggghhhjjj÷½kŸQ,¥¥))ÿXXXÿ))ÿ„„ÿœœÿÎ)mmmµ��$Å&���tRNS�@æØf��ÎIDATx^í–#K„ÅÐæáYf|̇ÌÌ ÿÿ\f·½³ckìÙWZéNz![j©¥ø*2;«jô?®¯„ë�r™çÒåyþ%ü¯ c—•› ™½|3÷A{²åy]þ²¨‚;–J/ÕõƒãB»u™»!Î35{u}Àûïß}¼Ã_¬ü Ê£)ÜÒ?¼¼€µPæEQÏkÍ›.c7�y휣„@ 4x¨wûßíw7Ö_oʲO&‹Å?æ‹Åâèø¨¸5`€ÇòW�ßbY–cò_üs±xptôZ�u-�6+õƒ}…PæUˆBf™ÒÞë×`�x|w�¨œ ��2¡÷þŠ`À®•T {šü§­@¡Q´RJÈõ Ë´u]c†7BGÔù>À×±Á,#j§£ôÖ2Àʶ�À7]g"¿ ¿ŽµêËþŸm dë:hçÆ €©PÌX¾q&:ç0Ãy(*“À!d¹òðp�œaðϘh£áœ…ïò,à 0@eÆ>ÌpVÔ+ÿLAZ&³lVb�ØÀúqå½±k€!àu Ë�–5ÞëâJ�ϰÍ-2òï ³EµÖu½=²jÇúoÝiË^B) ÚX’É(A¨¤(o‚Ufà -„ÈŸ_¹þ[¸I„›¸L…È2™µuQEš\%e²ÊñðáŸÑ«æ‘1äõééâJ�Ûß9¼ �2ÈL¡”yU(ä·$»U8Ñݸqÿ“Å ÓÓÓgϾcOÏwà ¯C•‚ö¦5^ ¨x|•Ey"³ŸêŸy³÷È>;ß�‡¸ý Z»‡1MÝ‚ýC$Þß”Œx!%¡Ì+€m\Ó|í|Ç'48üýú´áå{càÜlÜñ Fîì©´V"P�΢ыWÁúëÕ€[«�‡¿»óîw¡>”¼ì&+ò"ˆa{&e'’¤žc:]’,šÆ9wu€Ö?Õ¿Å»�×G{Xç¦EpMA²x­Å’Ùs3=&a³0Â*À­;ïýèS|ø}}\9vãÆ`@_ï•|„“ŒýŸO§äÎ ®¤ûûùÎmˆ|ûðo?hÿ÷>ü5Ùƒ?Œ¢ì¬ÑÖþ>{qÂi ™Í¬/Íó=�|üÎÇ�BPÐZyôí¸Æ€T—O­½þþ(� ˜`f€ù²5» 4Â;ß�0Â� Wï:ã9µu(ïÉ ÿUÿ‚Ðìa2Ìò6ýÛfo�0(@@+i˜ÆëZ« xÒV¢<;£E«³³³ºÆ‰âgøål ̨Åû;Àþ, ‚ãs댫}Z Y–g¤¨* À�ý=`º4`®Ðþ�Làqê 0Z³}[ßëG $á“û7V´™-Ù¿i®€äRŠ!w¥}R¯€Å_B±`0›Q}`÷دáòŒ¤bAP䑪Ã�ö!€yÞ3ð.t}ˆüëüiŒÔ�ä_‘ÿ0†emCbÀ›ëH¼‹Þ‹Qd%‹ „�tïìò߯öIY•÷V3¦Þ¿Ï�‰n�ÐŒ!Åõ“¼Zw@sá†pKøÁŸ�<Ã_RÜ!VP€ˆqp0žÃÌ{@“�(sžuo|€þ¤Ád ÃõA’?·¸ï�7€:,bõ'|«PXbU—€�TžÈ�žÃq#ag|Ž‘RüP]Ì€‘÷¡EÆ{`Óü9�õr=Bþê�0™.-Òü¹ÅyÁëå«„â�{0>Àð%ù£­~“Wq˜2V”¼Ó¡i`îO€b¸¬hÏZTÔÀÅ¥� !Q@2Àx­W�!Aþ¶šÄ�ð0U%‡»„V‘/tèÖ& � A{HFTÜ‚PU|wæXS�Rš?Ÿê€1ô $cUá…‚ÉþRA’-§X æ"AêúÁ6ÆZ‹ †}ðîIòú¥@¦|_˜ ¡ µIõGŒ2xoù¶` à€…µøès™ì/ ¤ –ü»Ž�Ð=Â2?¹ñÅùy’äúhÂxÌþè'ÁXæ5 ¥Ø@b»qÎz¸ãTøñdìFiB„R^Ã:²ëB`CHŠä&“q²ÿäoÇ”¨1 ½lr€ä?YôõÑREA &ÓI—ì_A“ÿœ�Î…� TÀ[Êä’žü笵}a�X©"üd6ë Œaÿ5 ð” (‚‚±¨ \xñ`+¨f6ï’åT•Å¥ºE‰ÌNç³4�BÚóápy4båæ/ÆHmA¦¼u4—² P“ùÁ<ÑŸKí p‰+2o ›éÔ¥VH(m¸B·G›�kAJÀg¡s›ã I€¦iÒ‡lÕá �\úCP€mî±òÄM´PJy»m1€Sý‚ôÜalWN› �”¼'{l�úÓ,}B¦¼W Øp •NÐ*¥áB¸vû£Ò¿!(íµM7n·¯`‚"( ¤ˆ—ß¸í½ BJ©”T‰�Íëwå¶IÉW]KrI�å­½b§)%¿Lí2€ö x™iß×£·¤r¸6bô¶ÔßLµÇè­©,9D;z‹jI£ÿ;}¥ÿ ·®l-ë»ñ����IEND®B`‚IMAGE 2422 ./arch/monster/giant/Titan/titan.x72 ‰PNG  ��� IHDR���`���`���ÕF‡ ��)PLTE������)))999BBBJJJRRRccckkk„„„”””sss{{{ZZZ!!!ŒŒŒ111œœœ¥¥¥­­­µµµ½½½ÆÆÆ÷÷÷ÿ��ïïï{Z�ÎÎÎÿÿÿÿÿÎ1Î��Þ��Þœ�çççï����R9�½��œ��ÿŒ!!Æ��ŒB!ÆŒ�ï½÷��„„B!ÖÖÖs9Œç��k1µ!!cB�­R)��µ��Æc1µZ)1ks{½!!1)!��{9!9���!�Îc1„!BÖ��J!�R)ÞÞÞ�)��1�ZZR”J!)ZZc÷½œ!!œJ)c1¥ÿÿ!!ÿ))ÿ„„ÿœœÿÎ)¥))¥R)&Kü"���tRNS�@æØf��ûIDATx^í–esåHÖ„;‹YxÙØLøÌÌÌð¾ÿÿGì9’ÝîöHî˜QûÃnLƽ¬ÎGyRUª;ÿ úR•­*«ªº�ÇJvqglùð ð¿¿’Š{ëü™x“€FTñÒ»}q›>¹�Ÿ s០Ž6 ˆg!§‹ç|N€¨¤GûÝ~ÿ ‡_@›¸¨š#5 %ðá ™²gÝDh®„èWëõáðÏÝáp8Ú €8�p3Õ @Z±"ÿÃÉ¿‡GG/pS€2è€Áe€Ö ‚¨:¥-Åù”üK0p¥8Wæýá*"X�& ªxðw\@ËÄÚR=fó‚ñµµ–ö@sÀ‡Ø·yüÅxÆ šæB£‰^Û‚­ë@RÛ÷Yóôõºq=´˜Hàˆ0ŸÀغíáÛØ3�¹c€Ü²R³ncDߣMpmm ¦:`Í­¨R¹„Ô¶}ƒæ[€?9ë#¡Ñ¶©¯Šš�4ø=}o�)Jh[vŠ1X…æÂ¿8Ø0\(Bš �éGþqçôõ.¥.Á(…—e BNÉË)�>ýÖ<�€,äÏÈŽ%„�ª®“ à�L(ݤ>˜�ÖV@e|¤\(ê¬1ª«¤’Rˆ2þà1•™öÁ¾‰Y{8g«ªnd§m)F“·)Öh¥ð j´)ÅjU ÃûËd‚ÿÇ´=ŒE)¶@TÊtJÚßZv3Zàáÿ‚$XjPszz˜¼=™�(°Å�–�²ãåË„£oùïÝûä½Ã¨ÓÓÓgϾNŸNýð#`Âß9ø”뜜e¥ÉŸ÷7gµ’â-[~ê?HùR¼ ³ �dÀá3XrOȹmj@T’ïžoß{g”ÄËå€Ðƶýûd�íj¤Æõ )gĸ]õVVR™q{&3àiyŒÊ¹eým*@ÓI]Š5^‘s”[ôë>ZI2v�$ïÞÕÔ€%¹GØlÎHäãt�峑ªÑTb'ÊÀû„ãFªhËþTÈ»’ïQÞìIDØ!Ç9@Ýi~î ,Iʪü�Ã|¢XÅU�I€KÿT†�…ým6äÎ žeüùOUàœ¬¬ª¨DWšÎzWØüXHчìшãÑŸbùwþøx^ðûœ·Ûvgùûó�è’Œ”5Š2óî;C½ëØf°%îÛàÿÝ|õ˜[€M¶ØÕyº”i:o%:ÝxøîcŸ“+¨;#ÎÏ U|~~Þ(�Ö Ÿý†¾u;€í³®šFkej[•4<þm»jï €ú¸3Vˆs’�ºŽpLCÚoÏ€-WÜÎù³ *í}Í'5êØ]D1'v¯ëæþ°Ä ï}r÷ùs À�ÿc`s–Áþ<¡95?ÿö÷ÀRеá#½gÿÇ|Q�ÿ§äe�Ÿ‘·gìßÎh>ý0ÞT]Eþð5Ô+M0€ý5¥`ÀvKóAx=àíŸà ¨1±nªc­©�äß1€¥Dl‘À»Ð¼ðÑÜ ÷µ6E°(ÁÀŽ‹.³BhIó€ù÷«~,:qÿb9‡‡Ôñ�0€Üyÿ׿2Ñ<®ºË<¿É.Xô#�»=^çÏ fŽ-Ü€1 8Àh}|Ì�Ä=ÒèÏ�ö¿9Á/g�¢â5pÙÀáá½÷Å`·Ú!gì&�Sf+à¨a£»'Ü1!±Þ#ó|0ú1Õ 4È_­Àç‡=.æÿÅ5º«5`9U 5eBØîû/ À¯z{¹Œ}þ„+PÚ`»Â"®¸’ìÆG ÇßU’�Xoö‹üQw¿®:=®2–¶J2�á¤ßa|‚–ø@އŸXÆ›@Åžœ c©¿…EG�Ë€œ¼'À¸Ñ!ž eeÑ€€„Üuv<Kx§ù@7®h±Ì¿(Ÿ`ÑqªëøÌ΀!RXø�Ö:�9ÓG‘rfT7&(>/óç�°ô![Nq)dƒ'Ö,ô·Å¥BÀ•?î,ò‡ÖV¥Äs@¾Íûß°Öù…ó10Ö)ê1ö1 €€ ·ìó2m`Jõ+$À¶ßµ ýH)‡¸R*†”^ |¡ïckð³{zútÉýùäAþëU¯Ô€£Zi,t!*PC û;VkTýjÕ·Ùƒ˜ãÈâz½"ÿ…‚�ùo¶Ã|ÈŸPƒÂR�:xòß FÏØº6”`½Y÷Ë$òßõ!$\PA€hfqy�´ÞnûŒœ®zg�H‹R9ä)¯Ì ”ï Pq @×½Ü&´¶®ÝÒä–V¬¬OÃWzÑ%lv'Ûe�h­ µû^¹ ]àâîÓÕR€2vØð*×Ö n½;Ù-­€x®òÀ””áÛÍ&. @NÜ�û_„7ðÖpÎ ãØÆ.}DkÅ´ñº¿a@\ºˆgo9 ×ÚºD¹–ŠKÉ1 ½Þ�5“Û¸x@Î/ÅXfB.‡Å�8χ”¶ï¯ûÖ7± YÇ·ßÆ®û/³v9ÀóýG‰’KobBãRš CœÇRPO’µÖ9ëp+| $šÑ-,OZ¾5@ácã­˜0qç¶ç}"ÀmIQß¹EÕ¤;ÿuúRÿõÀ®Ÿ`‘³����IEND®B`‚IMAGE 2498 ./arch/monster/giant/Titan/titan.x73 ‰PNG  ��� IHDR���`���`���ÕF‡ ��DPLTE������111999BBBJJJRRRccc{{{„„„”””ssskkk)))ZZZ!!!ŒŒŒœœœ¥¥¥­­­µµµ½½½ÆÆÆ÷÷÷ÿ��ÎÎÎïïïÿÿÿÿÿÎ1{Z�œ��Î��Œ!!Þ��Þœ�ï��½��Æ��R9�ççç„B!ÿ��„œJ!ÖÖÖ��¥R)ç����­R)ï½!))÷��÷½ŒR){B!�1�Æc1ÆŒ�)œJ)c1cB�µ��µ!!µZ)��)19½!!½Z))B){911))�!�199„!BÖ��9)!911�ÞÞÞB!ŒJ!��!œ!!�)�œR)RRZ¥ÿÿ!!ÿ))ÿ„„ÿœœÿÎ)¥))ZZR2âw”���tRNS�@æØf��,IDATx^í˜UwäÈ„7ŠYØl¦ef¼ÌÌÌôÿßo¦äžu»mÇš}Ù³1Ýã:'¾Ê eIêç¾ úJµ­këºþb�dë"ãÊØêµgÀcÿNüºH×Öåc·]|†€NÔñy¥WëÊ-úäž�æÄß@.ƒOãⳈºq¸^­×ÏûüD�Î�ê.ÆH (EdŒðÐ]ÐÑÏæóÍæ_«Ífs¸>�ñÚ�Ôi h!ÄŒü7ÿÞlž?<<U€»À`[@k†AÔRic«Êå”ò©p �àj"X�& Šxðw€ËÄÆR=®Ñ ˜ŒÒXk`tÛrˆ}ëÇ“5:ƒú©B£‹YÛ‚mš@¤¶ï½æúfݹZ<}¶i{ä6ö €— (KVj£×mŒè{´ ®m¬ÁSTU»„Ô¶}ƒæ–�¼×!FB£mR_Wê4�W˜"ªÐ¶ìc° ݉å`Ãð×H€Js�þâ œ×eJ>lÁ(…Ó2aÁ§”Ë.€õ$P*ògŠd !€ZÊ‚Â�.€ •$«§ ”¨Möä+ª@IkŒ’uQ¥Q ÙSŸ‰øJþ°¶iê¦+RÓäMÞ¦²FçÇ¿$x‡N›ª²ZÕJíùׯ9�—ÙÃ9[×¾2Rû?Ën À· kÑÕ‚¤X¤[§�Žt�€± ¿ª&@‘<¾ÆVD4¦Ü¿ÿ7ˆuGG›}@}�¨@v €e¥ÉŸÏ7gµ*x˜?¸{÷Í÷6£ŽŽŽ^|ñ{áèÖÎŒ:–¹Ðß9ä䟜uáÝóösv†Ó}h«Ÿå’ߊ'.¼H€ý]àOî Þ·]ƒReÆã™T�,ãüc@hiþAþW0É{ĸœõ¶©Œ�)»wôP�Ç‘1ˆ÷ÁúûÀÔ�.èOÕ-úy-0¦äì;…°$÷‹cR�¹ÇÈì «?ÄùýÉ !ÆEQäO€­ªÆ¸CoùÅšD„|ܰð£¿|{� ý‰bgm�Џ9ú5úþ§T@Eþ/½´X;3¸—ñŸä¿'|ôÉ×÷æÏ’=ø²(¢>£Sâžù?Ý7Þ¿‰‡òÚûå2„Õ±éBÀoÞx;î’òÄï<¶¤FqãFE߸q£#á!O°ðÀÒ«ãÆoØ^øäÃ-V$mÀ»½O®ªÐÜ”Æ qƒ$˜?DÌ€ùðÇÓ·iÏ/€…¿ö*H„ªk¥yZuhÛY×eWñýëÞ0b‚„÷Þ¼}ç:.i½<–q{? ŸýÒá•Ȫ–ÅÚ¿ò8!„è ›G]y�6ÿU¥¼L0 ÿX{°?wè\5¨KWÛ"sJ—Ñ*%À“aÓ4jM0€ýµR夀ìá—ÇìO#pYƧŠ:!­sºRTz"圹mÔŸú¦Ö� ò—c`¹¤þ <Pº¢„ÐE›JÉN:>]ÒÉ‚N”{šV‹;¤N¦˜÷A,áÀ§Ð…8ŸlÖ2•–•ʼ}Waìß#!Ž“#è}ʘýÇ©ö¬ZÒe�èZ(úHmŒ(Pä^#¼{TËmy¸/ª2� wàR,ej“ZkYd)þNsçˆ:&à�£õÍaŠ-ú€Õ—ù³PkÙÈ"dóîO ¼ò9»5ÏÀ6Íý»/ @\#þk\êÏ‚®R2I¾‹3hŽxH€ „–ƈ±š­à=VWtEvø°7" 4xŒV€˜¯á¹?x¢?«ûî¯^øèõ=ÈÏgÀr?9¬Aþ—$¼jŸW�ßêívŒ½ó€#Кš†°\‡«úïŸÚÛˆ‡W%n—g|[qü'`¹ÂUýÇSû �üS-õ8e,m‡1ÖÀ|±D¸²?ŸÚo¿±C�Êø°’Ëd3úÆ+ˆý¯(üöûØ?XHXø”3$(؃x<? 8S�¼”v|–ÈNtã” yeàš‚Ê –’#PRò3û8 ÿÐbš?ßïé£HÞ3J2`蟡“üa­ƒ%[®b+x3ÎqöSý+°‹!`ë?ÂðÀÀiþÖ ripÿ\€\Á$hmUJoµ�i„`^þ¦µ.OÛ¿±Nòï{~ùøBõþ9ûIþÚÀº”êg=�p d:›Ï¢Â·í4ïw¦T )KbbœÏg¼øó»¼ukÂþá\Ê‘öÛ+¥À=3€ÀáÚöã›MèçýlÖ·>c€jCÌóžpÓf‹eÀПŒJ€§ ‘ÉE€•¶mc�H“‰üW=B [¬V O¦ ‘æËeïá=ûoÚ:¸vIà‰€¢|ð€,À©²´E«ƒåä (L�Rì\¹º‚‹«×fÓ�PÊæÄ'DÄÎhØFÁÍW«éT.…H#°0UòÈíb'Æ,“g�v¸¶JáY\¤PÆeÏúx‡kж-Q§PþØår]Ã_' æ$á]�†;d§ûƒöýa¹®é€ι´× `¸L qP6íïÐÚ¥é�Î(>ôÎ�¬1T‚˘F�¿V;´8›¼µÎYLkËãÙ% CÒ´áòð~ß7gÙÂRabÊ°Ž·ßÆÙ¾‹¨ˆí'2ï?ŠóLÄøÐ5±Cãav>ÃïG˜8Åh.Ä ÁEÐú§†ôÜ—O_é+ý)Ï´$QË{Ý����IEND®B`‚IMAGE 1069 ./arch/food/tomato.111 ‰PNG  ��� IHDR��� ��� ���szzô��ôIDATxÚíÔÛO“ð^8¤å+ð•Bœz ,”•ÒÉÁµ ãP=¨ŒŽˆ“ 2·ˆA*D'4€e %LaHÎÀÊ¡RÇèP†l£Œ—yµ4ÙÍ2/öŒ¿aE“þnÞËçÉ›¼/ÅËËëµ¢Gx¸æœµßâní®r7µ4ÕS^%CÉîÅ´%*ªö°Œ{s¡I‰ê¨Õ¿ÛÑ^m¦¾ÔpÇÑsìSQyy^2tÚ·a4d 8OµB “TŠž7UO{“³Ì]újyC}#{KÃù™ì…2ÃôJy&ÆöÅÂ’)FF†Q¡¨b3ÑÎaa@Š~©ÖY8yðÈôñcæ­)ñH«`¬Éï­é¢±Q—1³¹p¤c,†Žo„~›“ÄH”?ÃaãóaM+B§®Nîq¸½ÄÀ_Ô&θt"ü¦Âõ®LVÓx¤$ð ÎsR*f%&DnFÐqE ›DŽÓ Ú3µµ‡“<[}ž&w9OŠu}8\…¸´¡p„ãçt&«èXH a>Ö1 átŒ„‘ eÃÆ‹„%&ãߊÒ÷Û(ž˜5t¯æ ±VÌÁzé<;^‰gñk‘?e„`)•„3‡„ÀÝH:FÅA¸Ê!ac±qV¤DåÎ’ŽÿÞØØ\{/KûâI¡kz>~o=÷ŒZ»à2¥b9‡‡uœŠ�8¤&ŘPðp=Œ^gù 8¥0xP ¡©v*=ÿÅr~<ÖMJüÑÝŠ¿æWàÆú¡B,íááA ‰û2*ìb_ÜÆU =LN“ÑhŽ×vP<1‘óž{!+kejlTk7·p  uXÑ%⡚ §*³14L ¨ á&7� ]Ÿ1âÑW^ïY{MËì\z*~1c­¢�ËùÑXÔpñc2óoc.)vY&"6Ï‘CàIG/ÁDëöp#bŸ^ûÔâÙwÓ¢žÌÑcÉXŒ'ûð0C€ Ü—p(‚a—³pGÂÄm6!?\¦º ó6!ê9IfЧF«;}¿N7œÖdÿã,,À÷ê8Øã˜˜ŠöǤ„Äw‘ Üâ"ÐOeà¢Zvd?·WJ([e$1×ò­Jƒ;*Æe‡à?Ã,É \òcâÂl´mÀ•ù¼-½TMÙJC Zꗻʺo$eã†H†ë|®„ðp™äÀæÇÃyŸ´ÒdŸWê7lúš4ÊËp¢±9û«£;úÕÌô%—á‚pÚ¹iø<¦�킜ñÎäQ^…QÛ$ÿ‹C]êNU¥úLÌ~õ%½Y}ûD›âååõºú/üëZ!y9����IEND®B`‚IMAGE 1544 ./arch/food/tomato_big.111 ‰PNG  ��� IHDR��� ��� ���szzô��ÏIDATx^í–m¬×eÇ?÷}ÿ~ÿßÿœO$‚È-‡Z&°)ÅÒŠ^H¸Ö’6[[nÍEЋF†ä2–K`5ËÔÄdµÊ1²µZ ¢³‡™XÚ¦òàÎçüÏÿwß÷u]}]$š½ð³}v½ýîºï]×Åÿ-·lØÈ[Ɔ[oãÏü™­?z€Í÷maÏO‘Ræ-á‹7ßÈe³{íÁÿœ»¿Ÿ=¶ë!{øñ5öÀöGŒ €gf/˜ÇÂ÷-dÛýwÙý»Ù»g7Oìÿ [î\Ïí÷Üaÿó�ŸøèjzçÏ!KàÈ‹‡(òš#ó™3s6zr+®y]}ÅŶùËß´}?ÝÅ›Å11ìxô1öüþ!{öï‡é]0—jÊ$FNœ Ñ]Òw´Ÿ¾#|PK¦M'vÎeþêϹ•kn¸0Ø¿þ^{÷ãÛ2`éì.áå?>ËäZ8º÷o4O ±dx”EuÆõŸ¦kð%úùžmýä:ÛðõvÞxfÛoÑ_n²žêž ³3 Ÿâ˜tq¼è¡ÿdäô?OR¶³³Ð=}¥SRrè`x4Á¢qjÙ»¸ë;w8þÿ†§6?JÇŽ[­jŒâCÂêQDŒŽª‡ýCÌm3:iw+¹ ¨”BÝ®iµvR:Ë&õ˹hÆ�Î9Às¿zypUåÁ—X6òÐYȵ€Õ—Í`„RÈfXHŽ †z° ¸ª ÑÕÅð øÍÖ_sÝÍŸø¤$œÙ¶ÅzçÕæA]/J¼,c ˜âÍQ†‡bIpœ8<ȃı~lÝnk×®ûÇ„8´ãIºþŠŸÚÀ‡ÖmÈŠo¨o@6¼D¼f-ͧ†L<^=ÁR̸$ žÉîGú&]<a€Á}OÛ4/8'HLИŒ›y ¡ê ¿úª‚w Ë_ZgP‡óŽ€‚÷xê1Èæj Ú ½ôÊÄOÐ~ñyBÙ‰ªb©&4;(/¿ŽÉ×|‰îK¯§˜úN¬jް²€2@(!x�Ì9ÊÎ’æŒ.|à xC®ê˜ûÆ6nü–u¥Ô®Qa…£œº€Ž_ ùþ%TÓçјµˆPõ`E…‡`à Ì|3àË*ðS¨GÆh œž jdyMÁÜBc:Ö9ƒÆÌY  “)ºz¡š†©Cb1r‘œ0p†æLicÎjŽ<V“cýÆî¼ûv7J'*Fmš½ÈÙ†wþ;zŒ 5ԇij¨NÀ2ØëÕ!¦˜ i$ÏÖäV3¯‚d£»wúÄs€Þùľç)´ å@YVÔ‡~Ç©¾W°©O<‡ Ç2š=* 1‡áPu QIµ!âI©"æ’$žyK/…½˜²ô ÒÎ}¨f\˜†º‘Öë!¬®‘œÉ1js¸BÑ”K¤ìIÑÈ’RÔ3å³÷~ÃM8ˆ–¯¿Áj19¢¬êA¬DÚmòØi\i×HV²BA¦$%ˆµ‘ZBŒJL” jmŒ¨¾ãÜ·¡^ùaZc%í¡b-“¨#Ķj#I «GkOl¥q…ºrd¼BL%)D-i[`H…OmÚpîËhå¾ê~±üFóýGë׊úD…Ç�ÅÅ„¨#Çq“ŽˆÙm\ DmP[ƒQõ\öùëY¼jÅ›_Ç;¯²IÕUÐtk!Õ-H IFІŠ#eˆ¯™<1;’6Ó&ƒ4˜ò¡Å¬ß½Ý×=pðgû9|Ïw­‹Wñ®Eë6¹®Ñ¤Ädh†,Ä\Äi0D'3W.ç+;èþë“lÛ²›¬Ùˆ[XCrBs$e%‹!Ù‘RAÔq­bØuòÞµ«ùô¦[ܹ oÑWW—pxûʳǰ4‚™"9“"¨¥ R1õª+Y·÷~wÁR€k¯ý_ûÌ;¼û zü8õà 1gº/šÅü\Ϊoßä8ÞæmþŠ;eê¶›Û����IEND®B`‚IMAGE 250 ./arch/readable/tome.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���B!kBs9!”��”ç÷¥R)¥k)΄9ÎŒBÖ”R÷猘×–���tRNSÿÿÿÿÿ�³¿¤¿���IDATxÚÅÓ € ÐY©sþÿÿ¶‘DN⊢n¢‚DTŠ /Óš)¹t€ ,šmÍféû€ I­hĪؘ˜Ð)ÂE Ú¬+'@¤[ü€œÁ]LÏo=| ðh‰ªÅTæªÕz›8ÀÕeàßÄ>ï Æ¥­f²Ž����IEND®B`‚IMAGE 194 ./arch/flesh/generic/tongue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE���µ!!ÆÎ÷ÿ��_±SD���tRNSÿÿ�×Ê A���bIDATxÚåÓ1� CÑÜÿÎF%2ã,ƒƒ/ÅEü‘ß�Ë9Œ{ØšÀ‚=-Èþ˜à,Ò¯Øw%tEÄ!¡À!EŠh.BA%…€ÊLÑ?²à (þ‹Ù„²0ÍA¼����IEND®B`‚IMAGE 178 ./arch/flesh/human/tooth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷�ŒŒ���ÿ��ÿÿÿâŒiè���tRNS�@æØf���QIDATxÚíÑ1 À@ A[Ñÿßœ³®^iBär§sý{<IXJ“ bJr7�·Smžªf0[9€Å¤¿¤D‰ÄNºì´@Êñ[Ù‚úênX=°€?óŽ����IEND®B`‚IMAGE 239 ./arch/talisman/tooth_charm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷���ÿÿÿ�ŒŒÿ��Š���tRNS�@æØf���ŽIDATxÚ­[Ã0 ÃÂh÷?ó`aE {B>6hdÜÖë è‘5b|¯'÷áÓž÷{¹&ô‚HY˜GH“…¶û¿ &tƒSDÆ^¹$2oÁ 5„qò‹µæ=ÏAÀ¥6bbÂÞ¼‚`TO²P¼¦ŒOX? ™ŸEÂØHY(ZZLRLÜíø›ßÈ~\(©8®����IEND®B`‚IMAGE 581 ./arch/gods/items/torc.111 ‰PNG  ��� IHDR��� ��� ���szzô�� IDATX…c`£`(Aºÿ‰Á4³ôÿ†ÿzäþ_X-úO»üÿ›»ÿïëÿk§ XüÎ^ÿ~2RÏ1 ÞÞãø¿¹TåÿÁ>Ùÿ[ÊTþ_Ý(ò—Üÿ[{ÿŸ]*ñÿá)ÞÿG§Iÿ¿w˜ÿÿ‘É2ÿŸ]âù¿«AñÿÏ/Ì”9¤ñãSöÿg—Hü¿¸Jìÿ‘‰²ÿ|b!* nïü¿½Féÿ§lä;¤éÅUîÿ7vÿ_¥M´A0uËãµþoÈWGù¸ÌõeK¹Êr’5#™ñê:é€ùâÊ‘¤=­ò! ÔÈu@0]‘ Å+4Ÿ)å°«IA•,Û¡`Cžªðö<¥v ™IrÀÎ<Ű}­òF”XËã4Yo´Ï^¬û‡$|šÅ¶heœæJ°8DçÿÃþÓÛÓ•¶‘ä€'}¼K?¡ÔkcÕÿ?ëçù¿>AíÍ¢P]¢5þYÄôïv›àÇMI*¯ÉÉF°„÷¤—÷ÿ½ò²á±éï×›„?ü^Èô—Øz�^l/eøÿ¨‡ïÿÙJ‰ÿ›’TÉsÀ«)œÿ.Öˆýz9‰ûÈ@lx“’†ØÏÌ@Ÿó�-Vù¤H†üâx[ªò¿?‹ÿ ü‡Ëò_ EÀÂUbÿ?Ì`³©R!!+†ï0C.U3ÝÚ£`Œ‚Q0ì�–ÛÑР����IEND®B`‚IMAGE 175 ./arch/misc/torch_cyan.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿÿ���ÿÿÿÿÿ�8ù›z���tRNS�@æØf���KIDATxÚݱ À0 ÃTÒùÿå¦(kÛ έÉÃIºðmo` ñ@Ö¾A�]%bXÚ:Ô. ­!ŽõM4nRyþÌ£¹w^±�ùkг����IEND®B`‚IMAGE 175 ./arch/misc/torch_cyan.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿÿ���ÿÿÿÿÿ�8ù›z���tRNS�@æØf���KIDATxÚÝÁ À@ÃRö_¹ºàwuæéˆr/ÄÜ/¨?cžE;> È‚‘@ í`7LA=X€b éV?Õ§@Ì7QŸ?û´¹—c�ú´—,÷����IEND®B`‚IMAGE 175 ./arch/misc/torch_indigo.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�����€ÿÿÿ��ÿK-$���tRNS�@æØf���KIDATxÚݱ À0 ÃTÒùÿå¦(kÛ έã‰ëI»ðmop´ñhÖ¾aTX%b\Ð:€.ˆ­! õMÔ4NRyþ̹w^_ J™`����IEND®B`‚IMAGE 175 ./arch/misc/torch_indigo.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�����€ÿÿÿ��ÿK-$���tRNS�@æØf���KIDATxÚÝÁ À@ÃÒö_¹ºàwuæéˆr/ÄÜ/¨?cžE;> È‚‘@ í`7LA=X€b éV?Õ§@Ì7QŸ?û´¹—a` ëÆ����IEND®B`‚IMAGE 366 ./arch/light/torch_lit1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���uPLTE���ÿ��U��ª��F# ÿªªÒiÿª�ªqqÆ88ÿU�Æqqâqq8��ÿÿ�u:ÿqq��ÿ88]/ ��U9�Žqqq��Æ��ÿUU99�â��ªª�UU�ÿ8�ÿÿÿÆ8�ÿÿUÿU‰}uÆqÿ�åzÌ���tRNS�@æØf���§IDATx^ÅÑÇ®1†Q~ÀezIïõÞ÷Ä$ÊÖfVÑ|ëc0ý¢‘ÉŽaÀÀ—[ Å—+6€ØØŸ¼ÏíÑ °c,9ÀÀ寏<öXµ#ïW@Òà{Õ®J‚‘¥תտP2Ô…œª@°¾³�DÁç.û\Šú¯Ê÷Ü0†F¤M ŽerA•Œ–½#+×/ÉJÃÄû 4ç|R¥ÙzyéŽ( ÌË����IEND®B`‚IMAGE 357 ./arch/light/torch_lit2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���oPLTE���ÿ��ª��U��F# ÿUUÿÿÿ��8��ªq�Æ��]/ ÿ8�Æq�ÒiÿU�âq�ÿª�u:ÿq�q��ÿ��Žq�‰}ÿU9��UUUÆ8�Æ999ÿÿ�ÿÿUªªªÿ�D7Š]���tRNS�@æØf���¤IDATxÚÅ’ÇÃ0õ�IîÝé=ùÿoŒœ³á–ñ^YigÜŸÈsgCdÏ‘°þ§¡¶„|¦áVÂìƒF¿{bUáÓ!Ë€r^õ9 Û€Ö†WBTG€$b õõÞ …²M4-  ,?t$àkT÷ÀM!hîAüéȘz"å$¤õ ­Ÿð­ˆ3¨Fï,üX™sií÷©ï¶ì;·_Óç¸xÓØ����IEND®B`‚IMAGE 283 ./arch/light/torch_unlit.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTEªªª 6G$G%Y.k7cA0UUUŽI( R-ªeD£oVµx[¿‹sߏÿÿÿŠcm4���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ :{ Òw���QIDAT8ËíRÁ€0Òa³eéÿÿíúvÜ¡¸ >E¾ U¥c ¿²¡¡îg="Ë™2ÀØ 4¦ïÆÀ׿i±¾Ðoö×ÃV ?&bâj,nàØ����IEND®B`‚IMAGE 175 ./arch/misc/torch_vermilion.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiÿ��  ð���ÿÿÿQ—ñþ���tRNS�@æØf���KIDATxÚݱ À0 ÃÔþÿå¦(kÛ έÉÃIºðmo` ñ@Ö¾A�]%bXÚ:Ô. ­!ŽõM4nRyþÌ£¹w^®GABºÇÒ����IEND®B`‚IMAGE 175 ./arch/misc/torch_vermilion.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒiÿ��  ð���ÿÿÿQ—ñþ���tRNS�@æØf���KIDATxÚÝÁ À@ÃRö_¹ºàwuæéˆr/Äܨ?cžA;> È‚…•@ íb7lA=X€b éT?Õ§@Ì7QŸ?û´¹—¦;>å º����IEND®B`‚IMAGE 592 ./arch/construct/tower/tower_a.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���ZPLTE������BBB{{{µµµ999RRRZZZsssJJJ„„„ŒŒŒ¥¥¥­­­½½½cccœR)œœœkkk)))!!!c1”””111çççïïïJBBÇŠrü���tRNS�@æØf��¤IDATx^ÝGb1 ‰9LÞ ùÿß41¾‚òÙÆµ›Uÿü�ü%óÃ-ðCÜâæ�ÁÒ¬�ÐÞÑSÞv°ó÷%èC*%M —¸%P®5;°ò¦ï)½*j¦!º(îl:@| àÞ9Û…}ä¹öÞë„°ŒBQÀš‘¸òÆ@&`QÄV™ëF`.y�ºW©…¼³ 'âÑÚ²§ÑÊÅaˆ!À=¥ZK°óK‰÷^ìÂÑSJ™9˜ù0¨€™Ú�ÁH)¿¸Ú€órúEîL¿ì‚ Ã]ˆf.qHX&�ŒwN6àRAι³ÃYÁçÄÓ>‚ƒ 7ð6@䔆avÿgE²íÒêü‚žÔÀÁœ7€Ù¾48åôn�䒙ɼ0܆hN‡£kª‹ùC€!PH$0HDxÄ#ìvé¿êÀœƒÁß)ž aCô¨B�MÃ?¾ŠU�Y‡À0¨©A£ÞÙ<6Oí¹>ir%Dlëº6"Í-ÂSsö“4XÕ s@€÷ ÓŠÎãÿßÝ AÐx����IEND®B`‚IMAGE 440 ./arch/construct/tower/tower_tob.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTEçÆ÷���¥¥¥ccc{{{!!!BBB½½½RRRkkk„„„sss111999JJJ)))çç猌ŒZZZÆc9„B!Î{ZO���tRNS�@æØf��IDATx^“éNÆ D½;í·¸¼ÿ›:@¡Xôß9(\^þB~….d¡+j¶m!f¥q­7+› 1¥¸ÀV žYuÈjµz+à1§”éŠïØAÖG: v/; ÐЄ…¸CAkH«Pߥ )iž ¢b|Ûå«AOÂÁŸBDCÊ‘¦|"zCž£ƒ‡±‡y p?Ñ0ÎAçs„# à]xL—Þð£ÆR`N`Ho@–çD” B$ð“0i9\㮢ÊÔÂÞ¯‚³x¾ßñùyà¨/ (ðžÏêç›ì‚S/JŒûyVÚþÔ ÓBXb7A”u ¾ ŠzíÂj0 ñf˜ç«gI#ÀÌ'n„s¢\7����IEND®B`‚IMAGE 504 ./arch/construct/tower/tower_tob_fant.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���cPLTE���Ñ­Ð>>���!!!cccBBB111jissst!�{{{„„„2kkkRRR¬R«999>>JJJ¥¥¥L�n.ŒŒŒd4!ZZZ)))¸Š¸½½½Ñ­Ðççç:¤ˆ���tRNS���úvÄÞ��AIDATx^“×VÃ0D»«.×’øÿ¯d$›¤˜Ø×{=þ5„Ù'ï+T­•}¹ïÛÆzÚÅãxeÝ«¶ ¡y5€?xÔ¸Xï_âqäñªÁ‚¥ßø„ÖŸ‚P-ð\O@BjÎà )!@x{+½òI’‚/‚H³ï'ùNð•°ñK !í"؆~rZùÔŠ@È ¶Úx»v(—�gÒ™_°žƒ/˜áˆZð,œÒe|0¾%À¨†Á É ˜*�X‰te*·0(%&FO$iª'—8ƒwâýÒÜR`Å1Æyrîì=:*/R©h:/øÞ-çÅQw/¯š•‰Fù;ðr\ |ÖoÅD,o"!*CDbGKny-�GO.7@Çoó³A·ÿÏÌωï*Ûþ8_—u{Sxtá����IEND®B`‚IMAGE 389 ./arch/construct/tower/tower_tob_northwest.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE�����|Ô|?k?{{{a½a+M+¥¥¥BBBP’Pccc„B!<h<-Q-KKV°V!!!½½½ : Î{ZÆc9è“ë2���tRNS�@æØf���ôIDATx^uÍÉrÄ á´X½Í–¼ÿ³Fåü¸|]âg:Àž#A¸ã•‰óÀ4Zã$�£WvÑ-!˜ys·ˆÓÀIñÄNLÜ d  ¸ êz! AuÕ`."®+8}©EŒAº º^PÖŸDú ¹¡¸puªW®Å5à§/sÿ¸æ¶>8´°àÆQ?X®º@ýعõæZо€¯à…ù¾?``s ŠïM€ç³ ²°¢î9 Š·¢ r^3£·aA†öôÁºzŸW8ùm~«Î'OYR¯7<Û¶©k0)­ðû§ÁÛ«ƒ”Øt$Ôg£î›ÿ!(ãŸì®����IEND®B`‚IMAGE 471 ./arch/exit/Town/town_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��ŸQ,�ŠŠ-ŠV���c2�c�Í…?�1�cDÙ¤ÿ��±!!ïå‹¿¿¿CW" ���tRNS�@æØf��UIDATxÚuS–Â0cØÒÓòÿ{|îæi ¶,2|“cé,Û>äc-‰õ£‹U¯EHÉ‚zì0Zz¼ˆMLU¸šº…uÖÌ–aè~L5Bƒ±r»šO k5´Be 7btLoŒ&­€ñx*�BÒ´™ ’;Ü}öcÆM©î§‚éZ±†Õý¶m,ɧÎ x×&¼;r.:'O…”èÆž U:9}%0ßüªÐF+Z(v*|Áû ûÛ ÎIš›§£ohÿÞâžx8JŽûÛ¥Fï%¼÷ÐPû«�#¸í<u5\ç@ä/ÜÝëÔºöPM¸Ý 7xݳ<%¼Â &¹* ß`ÙëAÜhô“ü†î¡�C»•—©PÊ` cvAï¥? ®¡áôÐ ôs¯TPDh44í²Eˆeb¸Ð,—ÀÀ¤ÇúCåã81€����IEND®B`‚IMAGE 448 ./arch/exit/Town/town_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��ŸQ,-ŠV¯/_���c2�c�Í…?�1�cDÙ¤ÿ��±!!ïå‹¿¿¿½JJ¤���tRNS�@æØf��>IDATxÚmR‹¶Â0cDÑmýÿ¿½4lÕé X ¼Îì±ã)Yþ·Ö÷=9û«¿°?RÒ\b{"ÂSb˜_ë†dúÿÖ@ïÒó¸Äæî2(ƒX„ØwÀå*¥,-B^·eº‹@†§Q©;÷¡Kùq”ð6®÷m]W*m´vdpÑOˆàúU·òóõÞ"X6n¡J¤—ÜvÇYb['¡S¸ Û‹[=œ ËHä‹Rš~âº:mÌ|2”¡  tGÀ»~"ÎÐNÚ},MŒêA€Fí$¹!.‰3ƒj¤ú±0µØgæ+P[*17Iy¨2°%¥\‹âÇ"¨¯Z\ú³2\A—è5Åx›®ù úŒéN:<•ppXsÖ}Ðཡ³# d—„æQÓ`Œ¡¡SÂӥŪ,ótÎñ&����IEND®B`‚IMAGE 487 ./arch/exit/Town/town_2.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE�����c2�1�¿¿¿-ŠVcDï勱!!Í…?ŸQ,�c�Ù¤ÿ��¯/_ùqSF(���tRNS�@æØf��bIDATx^uQÛrì0³ØN²Ûöÿ¿öp1{¦•#ˆ¢dÈÊóüšï½Ç¾·ì·½¥ˆt—¹�Ç©£ëåª(B�•«®þë&~âÑÔN– s3ñ`É'EÜ HâP|ü|ûÍ'Ø“l}'Ižÿpš,×LAôcõã%ôÓ¡ˆ6LmÛ¢å ÐlS%ÎÐ`:è¯0àˆn ñ'Àt˜Ž•(u€©Ý{ÿèqÀœ¯ˆ£(kõ �´FCOI‚ªëÌÀDm×”Ô`åðüW¦Ãgë=O¡Ex äçu]EÀ‹ÁÉtØrÇ›HA­{ÎÐ܉4j†Û~”õâ›|]d;È’D 5CÒë8`ÕÞ*B"©ÇÇwXMB\©Œ(há@×ɧ¦Fž°!4£yL15¯)6+‹;˜CL*5š e(¡~ (8’«óÁŒ%ûÝl]Æ8����IEND®B`‚IMAGE 457 ./arch/exit/Town/town_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE�����c2�1�Í…?ŸQ,cD¿¿¿ïå‹Ù¤Òi±!!-ŠV�c�¯/_ùqÔI">���tRNS�@æØf��DIDATx^uR Ž„0 ÃIzqÌîÿ_»Nˆvœªqƒ‹±ÄV†´YõŸ^ÆØúØeONö~ŸÉ:U>Ö‚Þ[£@Ú¯©@ìDÇ: 矲5é]:wv(Ô{Œ.ô €8æ@pª±ÅD²áS‘Ø`ó zêÉåäçä"‰7œ„:؇®!0\ äPÄ”¡V˜¸ÀYÝ÷ýhXÏeÈp®i£ºMª�ÔÔð²àÖ„ƒˆè„‡­î‡†à3JYö¤�ŒkåP2ƒ¦EŒç ê•)œ: Â‘)”Ìq+4Ž…“ZŽruŰËL¡ëº±‡5‹œ¤¤`"á² È$h¥ÔRã ˜™"ÖâÀûÊõNaÜl "TZDðŸ§Lñ w ý*‹à‰˜e §úàçùšW >X € ú¶@ É_Žã¶÷XùgÉ"—%Ⱥ����IEND®B`‚IMAGE 476 ./arch/exit/Town/town_3.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE��c2����1�cD¿¿¿-ŠVÙ¤±!!Í…?ŸQ,�c�Òi�ŠŠïå‹��ÿþ¤�þÖ�íu��Ì�ùq‡@­Ø���tRNS�@æØf��HIDATx^}’é®ì0ƒ±MÒeÖ³Ü÷ÕH£(óã| b¡ ËUäq Š�ùœ¹åidh²8Ýuª¸:¯TóBƒbGW¯©& Ç…Éd^H}�ý@ŠK‘¯aÁNnƒaá#¦½ßÑ<€Çþ³ÿŒ—h6Yn¥ÜˆÕ‚ kE ¸àãí& ùøúz)HËÎ-„‹:Cá3EÖ²–“k¬€×Ú™x{>[‹3EðV0äÒ²0SdvÉ B9-BÔ�}ù 3BÊ ¡i”¸¤Àűèa±þëwè|‡nþÞ£2ö䶦¸'=f¹•hÎÙ•K©”{YR€¼ÿ6Ô³ïû÷þ]¦E¢`èÒ DH7Ð 9·>BÌå?sÖÍëV}«ðŠkZu–›«z½:çÄ«ëe~k(£@Q&øë?´*³‹ˆ����IEND®B`‚IMAGE 539 ./arch/exit/Town/town_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE�����c2�1��c�ŸQ,cDÒi�ŠŠ-ŠVÍ…?íu�ÿ±!!ïå‹¿¿¿þ¿Ê�Ì��ÿ�ÿ�ÿÙ¤¯/_�ííùqU¼[ˆ���tRNS�@æØf��~IDATx^m’‰rÃ0Dµ€ßÎÕöÿ¿´²¦Ét‘¶ž×HZªåÿœŽã\¥ŽiZ®4î-"ÐkTž‘æJÂb‰LˆÌ�,'¢óô?WÃÊ€ºÎøÌh˜)�@ð!pa« (¦VÞµ—æXµfÞÙŠµ±jo*¯°}™Eª¿a©Õ€ÂX ¦oÕÄ �‹6OXæç3ФœDk}w€+#ár€LÓ<`#½yýÕ¶olì‚…Ž©<Ç!ab;Ẏƒk ùÙ÷¨Nr`õp>0À,,At¯€`àt‘wUâ8®�J{Oj¾«²…q9€‰hfïIvÁö««ÿs�Äö¹­,í€Èú‰è*ú,�ˆ•H¾çG6 \­î²1rF?j8¬=š_Ìаq*í]ûŸÚx c•OÀ¬0¥+fŽ&¹:�¤m‘`€Ïg�ouðùÜn·¤iÛ6ÒKs‚L üuµÐ:ç\����IEND®B`‚IMAGE 516 ./arch/exit/Town/town_4.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE�����c2ŸQ,�1�ÒicD¯/_íu�ùqÍ…?ïå‹¿¿¿±!!Ù¤�ŠŠ�ííþ¿Ê�c�-ŠVÿ�ÿÿ��~ >b���tRNS�@æØf��mIDATx^…Qëšå #µ×sfööþºûùkg6´…b µ>þÏ|^—]çÕ¯÷ýî*”ô®ÇDEëVR{$у¸1ó|¯þè?O»{F=”u­ÜGܦ•„«˜Óð´’ þš»˜hÂ^¡Â餷¥€Å€ Þ¤ð;a¬6€@1Èã<‡K)ÇtÀÎd� š£¶Í¶R üE¨„sc)àÒÔ Š�ðØŽîˆnæô¸—ØFn1mb’ˆRp‚QMmA:ù’9ÁWÉi³=XSj E¸­})€˜ãfÑ@èj»lúðÚ—|½t'` N…wk‘Ö„?„daÂ3jÀÙŠŸ.Þš–‚>‡Á½\ 5='^}wí¡{*0@–%"CSšäçð-A.æüÖoñG!ÇEĘ |þ‹ 1Ÿ‰4Ð Ó…w/ˆ ð€æpý‘‹œÀÿô����IEND®B`‚IMAGE 525 ./arch/exit/Town/town_4.311 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��c2����1�ŸQ,Òi�ŠŠcD¿¿¿±!!þÖ��c�-ŠVíu��Ì�Ù¤�ííùqÿÿ�ÿ¯/_Í…?¤ÚÚ¡���tRNS�@æØf��vIDATx^U’ ŽÜ0 CMJþæ33»mïÔJZ¡u(ad èPI!©µ‚R¬ØX.VDïýPHil…¿rÖ ÜFS‚}"ê­©­ |q¦ƒ!Q~ðN ÿs¨iàD:‘ü=ÿ;€.8J—͸â+Sðý>ÞÇ¡PårÁXŠ’ô/¯! „5 †š1•"ãc0óZÕ%@ê÷qoª2îxf!§Pó!7 S` ˜œU,¨ÞO׊í+ÙŸA¬F쉡°äÓ¼.ø]NåL ¶vµÖ„!rs�)E¤0¿‡ˆ P²}L´Â)Å=Â@ÂVŸ«Ì=`À;²)¦ˆðÞ¡å+1twس+…ÖØ7 ˜•Û®ó|Eí{�GÈ÷0x†ä¹B ‘¤¸ˆ' ¬À�Ηiw�MBâL ÅZÀN\Dq" 3ÿ×Òe¢OÌÞç Ÿev›è0€ÓÔó'g ÔZz‡¿Pˆâ僡Oò˜IñXB°����IEND®B`‚IMAGE 539 ./arch/exit/Town/town_4.411 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE�����c2ŸQ,�1�Òi-ŠVcD¿¿¿�ŠŠíu�Ù¤þÖ�Í…?±!!ïå‹�c�¯/_�ííÿÿ��ÿÿþ¿Êþ¤�ùq%*D���tRNS�@æØf��~IDATx^mR[rä0Э§g&É>ïÒ•º¤r¶L5þÀ´±•Já$äúyÁ ˆDà™>¶a€¤0XK…mºõH`ÐWBØ w‡%à"Kg~§ò7 â„7‹;a¯ð…1GhpÞÙX ü;DňrJäy†ÔѰw*T VX…ÁäÑbDZ3öŠÖ{ÏРê•k'Oàuµˆdâº*� ,MÙ>%¸~^Â�‘°Þ÷¿8†ÇeraÁž„q†»\ò) §ÅI€¢ðt…L~y‡xrΣ<-‹„!�ÔðPÿï¬F‹üžzÙ9{w‹ªj"˜ÍâKæn¦;6[BÄD(,MÕiÁúç±ZÈ9‡ö_Ý^w {ÔºZT,ȉ÷•PïÕj5 ç‚{¨îó  ”Æ™ƒ§…+Æ÷g2t]÷ 6±[€ ¼5XÀ<äbil¥´\ZÚš[É¥Ù3Q(­´Ï(›SЖÁ- ´5Ò¤1ùùö×I@‡����IEND®B`‚IMAGE 529 ./arch/exit/Town/town_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE�����c2�1�cDÒiŸQ,�c�Í…?-ŠV¯/_þÖ�¿¿¿Ù¤�Ì�ùqþ¤�íu�±!!þ¿Ê§…���tRNS�@æØf��€IDATx^u’ë–ã ƒ#É@®íìåýŸu‘Íü™Ó;ä;¸ÙxR<A¢ãSÜØ7Lm‚>Emû3—ósÜ�õÇêÏÇhžsô¾u'NÖ³'L€�Â+!PŽñ:^¥ÃceK®ÁÿU:Ì8bª%3 `È÷$9u®Æ=êªçdÚßïw÷½ jh �bÝb[N%°O-�>B.ÑŸNøØ ¼w ûû pfMTWòšUðq#;ÒÚh­Õ&´béNØk)V¢ªWÌßBÓ!»Ž6db¯N•ò€�•õèâu‘&³†²§ÜЂìµïÊ¡ýíw1µ!»ªý½ 4pTWy]]{¡²mU!¤/\¤Õõ „çfYÛØËaê—g)hÂlÓᇎœKß!QR@âÇ7Ùüžýš£–QDXépàêÏWÎçë¡ ¸nŪ)zZôû}ýY«|þNƒÇ¿rhBñD0L‚¦«7����IEND®B`‚IMAGE 503 ./arch/exit/Town/town_5.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE������1�c2Ù¤cDŸQ,-ŠV¿¿¿Òi�ŠŠþÖ�±!!�c�ÿÿ�ÿÿÿ�ííþ¤�ÿÍ…?�Ì��ÿÿþ¿Ê¯/_&Z���tRNS�@æØf��ZIDATx^…’‰Žä0D©â°«™=þÿK»3£(iÍ>JA 2¶"DaÐ ÝóäîTý®U�"ŽÌ’r¯A1mj Mkfƒ'Èܲ/½/ÍšYKzŽâ>q/S‰X53 ««î^¨¦U­¾’@R.õ„ Žj|Å¿øL‹½ÿ;Å/”H„/ù™O²’² nKð|žóããñ c#ƒgÃDá&”ðˆR<ÞL�çy–ÛrKüê'€ù÷œWl Ã77ažù!ô(©(‘”þŽ3¥÷Åýé¾ø{ŠO?ýj"C¨P†_™¨ëª«lƒ7ŽòZMùµõ`ñ �0ð È;Ö'芯7`ºN ´?’:¢wŽ‘µ¢;äp‚Ø#Õ'‰&¶cæDb_¶�¬Ý¿éŽ#¦aŽöçž¶ÌÆÝð\<b7@ïÕš6KA½CaiX^Ô¬¶—‰c/Ë?K_D4ªF°����IEND®B`‚IMAGE 547 ./arch/exit/Town/town_5.311 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE������1�c2ŸQ,cDÒi-ŠVÙ¤¿¿¿�ŠŠ±!!Í…?�c�þÖ�¯/_�ííÿ�ÿ��ÿÕ-ÿc���tRNS�@æØf��•IDATx^}’ nã0 D9CR?ÛI»{ÿ»îP5lôIÈPBðlÑ2GƒøÛlNa|—4Xóåmaùx—ËmµÕT¬Êõ#‡/Z­5Ë6>F3®ESŒJ˜ p€t@…BE-öÚQ†ùÍuÿ¼")Ãü…4Rôù?=EÈ2<Œ¼ÿ3ú­v&ûLÈð)j7¡ŠÞ£_Áž¾ÌŒ$¼tQ”Ùát_/y£´ð)T§#’ûÇçQÀ5˜³+¯ë ΰmàq`Î�¢÷ðm`ÐC†Ç‚Ñ@È0å@ªÜ*PV2#3§PÜ=‰Ü»3w«cÞ<5¾ËW«A\ßã»~zæ^_2§άjÑöÙŸ3Ò}Ô:A{ M/ B²æ” 8†ã0ö¬>œç‰²Aì–SIª÷#Î2hex&@uŒd|ÂáF¨HԀ敾Pܧ T‚Ißãùžä2ëâ—;é6_¼¾ÅëNÒrÆÌ¹·ÝÍ‘¥6¨}67µšøø#,;í¯°ûNF?{tIæ5y7ͰOñ«‰ù(Ä����IEND®B`‚IMAGE 575 ./arch/exit/Town/town_5.411 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE���1����c2ŸQ,cDÙ¤Òi�ŠŠ-ŠV¯/_Í…?¿¿¿þÖ��c�ùqÿ±!!ÿÿ�xË–p���tRNS�@æØf��±IDATx^ES ²ã0Câcç×¾·{ÿ»nDœYÑÁ‚¡8RS#9ª’>é%NGU 2ÿ~>¨Š˜®¤“UD|ž¨*ÐI£2é^ÝÊ5P™ãqÆyF¨8Ö†ÆgåE*#3DWqG6Ë;¢Vs¼�€š_‘¡A¬gHûݨÌã<~"3œ˜>Ÿ ‰ÍnìÆ‘ˆpwd‘n¹¯g V¶Lgž"`oøh¿76ž ?ó‡½aN]x4M<§®µøùÄ+?‡z7]Ú„±ÄËÒzùók&Zs_|| ž+ÂýðãpÏÊ ¡}À¶o[«Hxƒ(âOÞ,™û ­F'†K½˜d†µ‡à^ Ç#Ú‡}{®¨ Ò)ÔȦÎ,Yù:YR.ÙUcQi}¼c‰Ž£ÎuÚˆöá¡ÑÉÞØ7iþʇésæÌ,nzEzCB‚• °Ü¹»T˜mfÏ@+ÚnD‚þ߇M°,S`®wD�•u6óUôZ[ÿG·uv½‹®þäµÏ˯ËuÚ5ï¤zv½_æv]×¼CYP^I§ù„›>tsºäºJõæÿ�tÇ«,Ûã����IEND®B`‚IMAGE 496 ./arch/exit/Town/town_5.511 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE��ŸQ,-ŠVÒi���c2�c�Í…?�1�cDÙ¤þÖ�þ¿Êÿÿÿïå‹¿¿¿/ý€V���tRNS�@æØf��kIDATxÚu“‹²Â0D¡ì’\›ÿÿÚ Ä>Ô‘dRËÜi©q‡·Ö\ULj§É@üŒäªJ½u?YûC ‘ÜBÕ7‚P,„‘d(A]CÐSP’¤P[D‚‘4–á2(g(.µ#ØT$ÑÃdø0TÖ©]5†3ر6“9ä©s«såC€ö;J`³á·`àÇÀnîïußPTâi£›ù½®²‹s´Rëe3³Ï:+|ßÑšz5få~*4{2ÜPG <­}8ÿEÿ&D¢åÃ9ÃÍ,èR„ò¡jó"LQ·÷ Žò¡Ï6½Õd7½|�3ß Œm!O8�ÆwÂèÝn>˜Ææ~0>46äjWÌŸïÃZëܶX” ¢}d“×ýµÉTÔ,Dó™m˜w«<‰EÕ÷° $~~z’y‹Ê2^QV0â~ìhŒ’HñT”Í™Y-üb##øš“H’����IEND®B`‚IMAGE 550 ./arch/exit/Town/town_5.611 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE�����c2�1�cDÙ¤ŸQ,¯/_Òi¿¿¿�c�ÿ�ÿÍ…?±!!þÖ���ÿíu�ÿ��ùq�Ì�-ŠVk„ðf���tRNS�@æØf��’IDATx^}’‰Žã0 CEê°sôœÙÿÿÕ5tw€�ó¬š.šR´Z#( L÷¶7Üxš=7¬€$ïö2�{>Ÿ«‘¯ÞûëE9Øk¨ðá€áX¬ÐY½¼'egÈ,R ˜-2{T 23&Y¾*¤Ó 2¯¨Eþ†ò7úÕA!~èÅ¡‡óH¹Í‡Cÿѳ¾¾nŒòþÈljբÓA8¦3‘pG(ÃÛIÈdóc eØ|ûþÞ´¼E°ÝIF(à*ƒyª¡:L�ÛÇ!·Ê©CzÊí�=/œ· ‡¶ó‹yhd>>s˜K½ë£ó·ˆ wº{èQ¿ßß÷ˆbÛÛÇ ‚'s¼“ˆ„µfÒÅ6­FTv æ€ñüGýG©q¿ÝÑö%�l‚^ AdFLê¨F6çP1ÖÐç-H‚ =Å#ÅG9”&œ=¯Äpp× QÀøOèº&¡‚ŸÊY‹TŸ¯¶¬–eYGq=ÔÖ…+Oûº¨>¯ šr£ë�%Ñ[Ìô¿=©�üS����IEND®B`‚IMAGE 498 ./arch/exit/Town/town_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE��c2�1����ŸQ,cD-ŠV�ŠŠÙ¤¿¿¿ÒiÍ…?þ¤�ùq�ííÿ��ÿÿ�ÿ�c�±!!¥È•X���tRNS�@æØf��aIDATx^mR ’#! C’¡\³Çÿߺ5“­–©¶“V$iØ@lÔuÕzS¢Q¼êl]'ú™íº7‰ý4úyÙ­-«÷Ö=tÔ°>› ë ©Úê&Ä}âv¿Â",\Ü c`¼ À[! ˆ“©©¡¸‹Äß8ßÿJÈ `n“ñŒ•ûþ„ 6j¥ptI�”CjÆ(·I¨o‹5[”‚εMʰqÔ“ÀçÌàÀa¬éîÉ£øVF_§y|œÃÔŽú¡>ŽzP·Çq˜v¤Hü<jH„²h;bKü1#ÀR„YŠŒl–ˆ±ïSÁ„ñH“ST6 £A¯})(p³Å´ œ]¶ eë2Xó¶yYAû:‡ ¬ûfV*t¨2ü�‚jºúËõŸ_¬»�TEŸ„Ê îߨ`B« !í¯Ýkÿ2A&š«” E£±ò·ñ­_^Ö‘ J@ÿ�ˆ¼F%„í����IEND®B`‚IMAGE 527 ./arch/exit/Town/town_6.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE��c2�1����cDŸQ,¿¿¿Í…?Òi-ŠVùqþ¿Ê�ŠŠÙ¤ÿ�ÿ¯/_�c��Ì�íu��ííÿA¬t¸���tRNS�@æØf��{IDATx^}R‹’Ü0CØN²¯»kÿÿWkˆ÷v:½­°ä0Ô„]xçM¢&Œ?ûÝ:ZWÇþ£—õÖ[ëmÚ¿žÖöÖv´féö† Šg Sµ±‚å(tØøÆVî/Þ:gÂ1ÞYîHÄ:û†OÂnnؽ2à2D&Àz¿äº�ùqÓ¶¹y 0�‚1D,@áÖÃ>æn:+piî G7»ÔÇ¥©*Ègý\·àÙCÃaÑÕ’o çå­Ó$,)Ï)H‘I©ð¬P#¿„ð“yÚ$¥äx+fM1þ÷ì½81ê(©a×òXðÐÇ„ä×ß™À( ¶Ûn??>?xNAÒ(Ej ŠB "éü¿®izªøJ«‚={س‚ËzöPBÑ 4ÖT5V œSl[¼^ã¶UüÐÍy¯¤» Gb¼Pÿ$XV$KÉûý.ŒAÇã˜Ì¢°^µ`K€­æ1b½¨?Œ¡QñŠ€����IEND®B`‚IMAGE 498 ./arch/exit/Town/town_6.311 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE��c2����1�ŸQ,cD¿¿¿Í…?�c�Òi-ŠVÿ��ÿÿÿ±!!�ŠŠ�Ì�þ¿Êÿ�ÿùq¯/_Ù¤íu�Y$���tRNS�@æØf��[IDATx^}’‡Žk!C±M»=Éî{ÿÿ© ÄH[bu0%LuÍÜ‚.ñ¢.^Bª5‘ŸÇ#J5×Öz¸t5Ã¥: ƒP«hò‚Õ¦‚jWj“›!è„_•Ð42¼‘Þz(H°–~rÜbDï[+ÈuÊﱩħä)›œÀ¡ @f% ‰l€Rbo±€vHÆr/ƒÄXÐ×bwmf QŽcP„Eˆ­bÈrxÙ*d.ÛbäRßÂy"a•rJ4‚ß{ÎpÙŒÈí^oñQ«W‘ Gþã-<d>4ÿCž×«—Af†eÁü™ÅX6'$-7ÜÁ�CyÄåvú�ûG¦Ò¼I7€Ü÷SÏ ©ú[L0õ+øñ£ø-Ãú–à¦AFÐâxžž!edxÈnXœÀ°uÂ{ÑOÒ×ÿ¯«mñ/©E0BÏè’ ¾�¿PTòP����IEND®B`‚IMAGE 499 ./arch/exit/Town/town_6.411 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE��c2����1�¿¿¿ŸQ,cDÍ…?ùqÒi¯/_ÿ�ÿÿÿÿ-ŠVþ¿Ê�c��Ì��ÿ���ÿíu�Â>¢ ���tRNS�@æØf��bIDATx^u nì0 CEj±³ÎöïÖoÙé´ƒºŒ(0ñDYöm'JQbñmñp�=`*û¾K”ä²”e[ «’PPjÈŽAØ€ ß´äY)Î16Eû‘-ÈÑCéÑ hþâlï}ªô å§–ò¡ )+ òË�hÙ«ý"ø½éÑ*" õw/Y_€ûcèŽÌ`*ªÊ, ƒr<¤ö »Y–ÕîpP¿ PS9.Y‹ð|>îχ²Ä ‡fý£™£TÛyfHBųVd ^‚d†jg­§¡&!å>ʯ-ªÑªÜÎjôÉM¦A­â`5–O]7iÆÛ{ćÞ#$ ’[Ìc„Z ³ lXÁ9êW'!3Ã:Öîû¿å#’Pf‚ÀG<ä%HƒÌ J¾^¢}gPš×qÉ'ÀD  Öuý—/ôm`'p÷@|=?„PÃKÕVu&ª¡����IEND®B`‚IMAGE 572 ./arch/exit/Town/town_6.511 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���HPLTE��c2���cD�1�ŸQ,Í…?�c�±!!Ù¤Òi¿¿¿¯/_ÿ���Ì�ùqíu�þÖ�-ŠV�ŠŠÿÿ�ÿ�ÿþ¤�1 T���tRNS�@æØf��¢IDATx^]R‹’í 3 ¨mÏs÷>þÿO/`{fî:D‹AIïÎaTï0¼÷î¤Þ~4Ò|wŽaÃÐbã[ xû»^nFZ*€ ‘AºóTè^Há“%­äT¨åkﯞØÃ“\Ê„Z¹§'‚\,p)˜ÍÔ‹{Æ¥àð‚ÐÝ~% µïûRpÃ]lfáè¤äu‡¹;3™ÿ©ÜÓ¨„#ˆ#àt³Káëo–0¯žÃŠ;SƒÊÛÊtu!TTê„L¸zÿ4ßO–üê‚Ùs–)HRwð1žeèÒþµ‡Kݶí±=JA6 7IÏCpØÖ@Z‚æ°L¢ÎÙ,r<ݨ¯ßa¦NnG–¨Þ—»cÑz]Äç=p�Á\’Ë…üÇ~ÐϦ1 5^s¨‰”‚pÿ“¸£Û¾AÌ@)¨ÝËÀN"@P“†,²@3 u°¦sÍ¡j�nä–`Rœ%_Û¢ü¨07a“ø&Œ+"#8¯u›¼}Ï[»Mܰb®ñ‰™0oÿc¦_±afyX §)†–#üù$ÂdÄ(K����IEND®B`‚IMAGE 513 ./arch/exit/Town/town_6.611 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE��c2cDŸQ,�1����ÒiÍ…?¿¿¿ÿÿ�Ù¤-ŠVíu��c�ùq��ÿþÖ�xg´]���tRNS�@æØf��yIDATx^m“‹Îë ƒc'zÛö¿ÿË++m¥ TŸ<7tÖüp?p ÚøªE¦™éL,aZ;ÚŒ) 3r-5²M  2ìKZ&²t98ìó¹ jqL…}4äÈ¡Lß㡳,šƯ"¥„ÆFü�ÍKÊr`Œÿh{o*Äbà7pi†,�|þ*‚œn€ÜÈqfpíœéN^þÁµšÊ*ÓÏ™ëºC€. Ý@$ו!•a:Ä 82þVÎNYÀ¯Cu¸~b<3g'QñtÈäßÌ`Ú›)‹ËÁ‘ ±ÅÙI÷ à‘!ÈÚ ï>(BL�ÁÕ#Ï õ­µG_’ìêƒãÎ0ȿ׶éÈë-™ dð5; Tn ‘¥†$0¿‘>Z­)¯qþ³RB|뮯#²2dOmaª@U˜ Õè{ZÇÒ{ß—ŽŽ ¶÷E5UÓ–©^Š®]Í*uÓó{“0h…Õâ?w±Àò*$����IEND®B`‚IMAGE 456 ./arch/exit/Town/town_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE���1����c2-ŠV�c�¿¿¿ÒicD�Ì�ŸQ,�ÿ�Ù¤íu�±!!ùq��ÿ�ŠŠþ¤�¯/_˜Å~���tRNS�@æØf��7IDATxÚR‰nÅ0Ƥ×;·ýÿ·’©R5=CK“ºæHE‹B Ui¼Š¢&tˆ«1.j‹ßÊu¶l¹Œ¡¯ÅÍL,B>ÌtNO‚P÷„ýBØÏËè¢úDؼ*uX*ðý–w@þ^×Çcí–E’âÆ8 PØwHIô¥êsóK5@éIa]]>rŒ.ÀD ª+ƒëœCÍkvNÎIž¦pšÃL ›c¯náPÁí¾†!y^dN’ wvô8ÜŸÇ1tkà(RÓ‡‚§ø¾;²’Ú;ù«ÁßnÈ|ÝsôõÖvоH…FDŠSãÙ$©¯cP·ýŒŠÄ翈9,ºeŠÈ (¤*J2ªÙY*(¥|•ÍïÕ€V§½lyåxưò¸SaIÐÅ–_DlÍÌLb����IEND®B`‚IMAGE 435 ./arch/exit/Town/town_7.211 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE��c2����c��1�¿¿¿¯/_�ÿ�ŸQ,�Ì�-ŠVùqÒiÿ�ÿíu�±!!cD)v´n���tRNS�@æØf��+IDATx^R‹rÃ0Cœg÷øÿŸÆÎÅn×Û”ú¨Nèptâ :ïji ˆ5Ö*jGÁnépÕ•¥xq/àa æ¥ÕÉâ8PIÒ€hµ$‰‘Æk æ„^[¾Èþþ-Ч¾êÚXz ›¦½/j•m2ZµàG Ôˆ[‘µVQ6¹, õ6`#Æ,&˜®á°NxuØÌL‡€‰êa½G1µÍ_rD@zƒ˜3Pû"®€ÌmöÕBæ„APm™M K ºÝ]ï=�ÄÒöžá$çÌ — á¾Í^_w/ïðþ›4í,`ÿzC|‰'~ßÇ­+äôRê rûÜú]dž'Ácc» /g)~qÈ}o?âiéN ”Ú����IEND®B`‚IMAGE 501 ./arch/exit/Town/town_7.311 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE�����c2�1��c�¿¿¿cDÙ¤�Ì�±!!ŸQ,-ŠV¯/_ÿ���ÿ�Í…?ïå‹ùqÿ�ÿÒiU¨¸���tRNS�@æØf��dIDATx^}R‰rë@C¬¯\=þÿ[,î›fšV¬-2ÈX£Øˆ�/àol€0½æ‹c`ðò’a#FÄHDÖO–EFؤ³iŠ .鹓€AÛþ€sØß2ÿBžØç™‘V5$'‹`*¼<|œ¸jS¼·HæúX×C½ 0o› êdPHA»ÚõZ—iÇ¢`IÀ}öý=KÀu]?±¹­ÿ¨ØJ!”@+–/È¢¦ÍæIKêÓƒÿÇ·€½!ÖyÆ}R{À„ü×ÿb¿Ýê, ÔÜÍô@r' ¿o¾DD*ݧõl–™d×|`D\*+œ9Ü% %hlªöynlÁè$auj%Ó$oû>7¸4%·Àa–Ã=Qî®Â—r,†¯‚è$ý¬Ÿhl'xaF-{Zp6"(Ψi¬ž òš?ŽÇq ?ûã³p°6òýú>s HÁ+É,ÏY¸dj����IEND®B`‚IMAGE 478 ./arch/exit/Town/town_7.411 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE���1�c2�c�����Ì�-ŠVÙ¤ŸQ,ÒiùqcD¯/_þ¤��ŠŠ�ÿ�íu�±!!V���tRNS�@æØf��SIDATxÚµSÉvÄ C^€,“Yþÿc+l&“öО*Œ‰¢Ø¼PÌÌÝÕ€´t9;AÝ™­VŪÑj`Ç‘„Œ&ÎÏ Ð•ƒVóáL½tbîœðYƒÂ$ À €–ü ™¬û±î+È@¹Ÿ@(<”~H@†\ö: „T8HØ“Àtc( öu¥­ õ:> ÜäL…Rɱ;h³ &%êH¸1l¾u^£çur~ýŠŠÂEqý‹àÿNP\à[ rzï’sÛÔUåD”bI´áÙ‰ŽU³ÐÌ…û X&:_{v(cهݛÐnm»-ýÖÛ‚=‘ a!¡õ­m} …Ë Ù¬¶´Û³5êœ ‰T`› dL˜Î*å,’Œ+üq‰ß7Kcøõéz³6F0ó¯y0ÏZ«ÔJ-Ý^}飇ÄkúVÅÁ>����IEND®B`‚IMAGE 431 ./arch/exit/Town/town_7.511 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE�����c2�c��1�¿¿¿ÿÿÿ-ŠV�Ì�ŸQ,Òi��ÿþ¿ÊcD�ÿ�±!!¯/_íu�F_q4���tRNS�@æØf��$IDATx^­“ÛRÃ0 Dµ«‹K[àÿ?$°CóÆÊ3«ØgVz‰¨‚TP}ù‘ªŠ¯ïÁ3„[6À‘šMñL°å¨X·mu+`y!Óm]ßÝ€Z ‹]�¥ê`fòŒ€Mòzœ�GWízMuµ0[‹–*Ú�<Ì‘À¨  0Ú™° ˆˆ–§ýºÛd|z�SÔ„:ÉPžJóroÂ8%DÆkS–ÇýuB‰À½@{üÙù ™ ¼#2Ès"4wð¥=G˜‰ùRÙI¢ßèûªóÅ­»Yú‚[÷ ”,ÏП \éß�”›]ß»˜øLØ!)̰‹L€«¢ªv0`ßÓŸó±}—tE²ï†@új©zˆegB����IEND®B`‚IMAGE 476 ./arch/exit/Town/town_7.611 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTE������1��c��Ì�c2cD�ŠŠ¿¿¿�ÿ�ŸQ,Òi-ŠV�ííÿ٤ͅ?ùq¯/_�ÿÿ$UÏ*���tRNS�@æØf��KIDATx^}“ÙŽã Eë.ØYz™ùÿo³´•I+9”©ŽàJà¨È&—¤y´J¹1’ÉÊSHt_—¯ ,nŸƒ+‡¾×¬sD½òZëgÊÝ`ÃDVlYQ‰D¬Îê’•%‚ ù7âVÃoPnüO `4Ï ]”ºµGV[u ä½}´^í~|ÔÈ s+œÀAý›nY¶eüh÷£ÆhÔÈPU²¤¦ÇÊXü{L´˜\ÔÈ†Öæ$ ¥Àèµ&‹vz¢›õ0:!1“~IÈØ Þ b)ô+p†|d?"$n3ƒž°¥ÒÌ#ÄÉÙmaË�gHq÷¾ïcÔº `î ð Ì» 1èÀ:á|2É)Ì#~0GþðB ES^ý'ƒ ŽÂh gé4žYè—Œ7y¹@û»ÿ Û$å_½gøþ.×Û•ÿì����IEND®B`‚IMAGE 530 ./arch/exit/Town/town_7.711 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���BPLTE��ŸQ,�ŠŠ-ŠVÒi¯/_�ÿ�ÿ���c2�c�Í…?�1�ùqcDÿ�ÿÿ���Ì�±!!�íí¿¿¿HÕ› ���tRNS�@æØf��~IDATxÚeS‹rƒ0 s e³‚×--ÿÿ«“Œ{Û˜ì#ŠOç`î>‡{ÄÄ w>&ƒÀj<†4ø)HSÐÃü•a%–3Ãh>HÑ{O”FQÐ)™M‚ñ6Gaþ°¢™Ayaü¦([¨Ï3îQT±jr<ߟôEyb™š´eYjŠeYéjrç¢ɉ™œ YöÀÞŸÄâ)Èú V‰ŒÆ0N39qvnÕäŸéç¿=Äø³†Ë¥2xBa5I ÅjŠÇ— ,Œ†Gk¸sÛ'ñ@æÁTòuÛF£@\€#2m•ó«IÕýà  )PzYRÓ¢:«ïÁ\vÝÃ…½òq]ƒÎú¢øŒ×ð!~ÙÚ~k·vÒ¶kxµ‡;hw 44@/#hõ_À$ÈɲDò¶Ó#Ûþ±oÐP%"ôÐ"] ‹ †èŽÕayÊWuG@g÷ýÀA_{ÇAç}=z—ã°ÇÑÓäõ(*7ô0å“ÃÄäz1ý¨&-ÿÖ¼*����IEND®B`‚IMAGE 459 ./arch/exit/Town/town_7.811 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTE�����c2�c��1�¿¿¿ŸQ,íu�þ¿Ê�Ì�Òi��ÿ-ŠV¯/_ùq�ÿ�cD±!!©cÐ"���tRNS�@æØf��@IDATx^’nƒ0ƒÏöÝ…¿þlïÿ°+]“NªæA¢Û X‹�³ ËK�§¶¶65B;°mÐ/ ¦uV£—Ìbph+Vr¥g„AcÄãõ‡LÒ¢JÀÒG|MœªCÍm³m(`Ã7Ñp�Ø*b €ý‚Iå–^:‡)öYit/®€z¡7 â ìÑ ÷‘Y„lQuÎ{B`+"¬0 çŒñ[´uÀmÎ~› ·Ð@»(`pP”à ¨ˆ?—ûø<–žT€_ õÀZí¶Óù¾MtçÀœg‡º­ çÀ¼¾u ÙX@•´+8v pv( JC”ô¯@Ñ<]tÌŽu#4Тî:‚µNМyñd&“îåž–ÏuËL?¯¼DÔsz4 ¬4g`ŒÚ>âEL›‡­����IEND®B`‚IMAGE 532 ./arch/exit/Town/town_7.911 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE���1����c2�c�-ŠV�Ì�¿¿¿ŸQ,¯/_cDÙ¤ÿÿ�ÿÍ…?ùq�ÿ��ŠŠ±!!ïå‹Òi��ÿyê‘���tRNS�@æØf��}IDATx^u‘Ù’+! C-ÙzI2s·ÿÿÔkWMå!b9t±´¢9çyJÒ.»àŽã:’º àÎç¿çÄëÏmœŽû¾äÒ>!•d�uûžÏgMØ—å7Ž;7ÊR9~cNð¥ÃgòJ—‰èAŸ©9§¼¾H—˜ŸT·ðéó“ÊÃ÷ûžÐ]Mdz—”«êåÁ²Ô@fóš?¿NKs6Æàöðëñˆ]î B•ÞÁyyÕX ¨ªLb€Û Q°€çëd2·Á£$Gù©•¡ýš (!ZAþ\¨P|«ï¿SéQçð.oDéÞ§A¶·‡Ví¸ŽãudPÂö`jY­æ¥;(é[˜ˆ-ËjóÛI(*( ;¶:Éø“"Òo1Ô–­e†¹³&<É`yPZ™ g¨iö[ÈòT :‡Ï*À.wµê  š jÓ”bº†E·t‰­â°%›6£eÝ Ý5ME¨¢‚¨ÈƒAHAVÿè´öÔ¤`”����IEND®B`‚IMAGE 104 ./arch/traps/trap.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE��ù;ÓŠ]���tRNS�@æØf���IDATc\Å�Œƒ’�‚ ± ±¡����IEND®B`‚IMAGE 217 ./arch/connect/Hole/trapdoor_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ-ŠV��c2�1����ÿÿÿ¿¿¿óZm ���tRNS�@æØf���lIDATxÚí‘KÀ DuJqîâªñ¤uÕ¥O8ƒ„„pø5¼¹û·­Ò´aO_¢ä}ë"‡á3•…&õkTå"£€M[H­ç3AÊo˜ ¾H"ºä»ŒµÇ{.@F­o3*=tƒ°¯Ý¸ÂaåÌŽýï~tS����IEND®B`‚IMAGE 373 ./arch/connect/Hole/trapdoor_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V-ŠV��c2�1�cD���¿¿¿ÓQãÀ���tRNS�@æØf��IDATxÚÕRÁnÅ0 ÆÔùÿ/ÞsÂ*4i‡g©8ŠQÓõï R¨Ÿ%YÔuÔÕ^/ £ÍÜ×I‡ü<jš*6’Åò½î:±ûÐ+/h‹ 0x8•Çr1¡²°q ×á\u}tgóF‚tUµAgaÍg£“Ò‚�¦½“€ '–àhsß$ŒÄK»rLŒm<½Æ ‹ÕƃºÛ¤U^2®çsüŸë6§ú+cÇuÎ5bJ ç¾tcêL Y1ˆy<3NÅÚ/@•ºÔ¤x÷�(ä¨$|{JɶÏü/±·¬¥Åí†öoˆvlK¥z¬yB¨È)Ï4Ç/ ÒËÀ&_ Û`qŽ‚����IEND®B`‚IMAGE 121 ./arch/connect/Hole/trapdoor_3.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���!IDAT×c` (€)YŠ B%àЕgb!Ú.�Pj�ïd­ÍT����IEND®B`‚IMAGE 192 ./arch/connect/Hole/trapdoor_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿc2ÿ�����±!!ᄱ\���tRNS�@æØf���_IDATxÚí‘1À0ûÿoN31uŒ—û€ØÕÿ©6jËÂéDBÂÓã#Wð>ÙZ!”v3è2h- !`|�¥èÖ�›\'ÑrÇSÏŸuUµ�¸Ž|]€Ø����IEND®B`‚IMAGE 508 ./arch/ground/Wood/tree_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTE����1��J��c��Œ��¥��Î��ÿ�kçB!c1cB¥R)µ!!Æs9ÿÖ�©IªÜ��‡IDATÁ=ra `ÅdÒr�fý9uXïºa2ƒ½úä6±õŠÒüHÚª,à ¡à‚Ðåié¶çy(�˜FÑ(5ö¦/ø¶;ô!‚hçjƒ“Ò Oúº¢2Cní$4‹ì:)Õþ �©Ç™ï¸f¦g #àŽÏ‡ºW‹!˜0¿äuëÆ™*B{¼ºOlžSfl„ä~{Õ”8fN™±AŠgNG=¶¥H•È̽òïÕ#§1Õ@8oW•¯%§qL ,ËnµŠÌ1ó} ’–‡# ™9Ùz)ëؘ9¡‚ôÃ¥Ôâc¦Cƒ¤páxZ~‹Aƒ°Xî|™\s ««ÎÝçš“ñbÛ4M…t«wòR¸6Ú…:WKÕÈŠÔ�Aî¯Í¹gTéEƒÒ–†7 ã~hœæÓÐ�Nx÷víCZq!ï¿ÿÜÄM Q! üüõ�3(ôëãß‚{õ%¨ù§9DÔ«üI¤ûâsï†����IEND®B`‚IMAGE 504 ./arch/ground/Wood/tree_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTEG$�ÿ��Í��¥����²""�O� R-.‹Whàÿ×�d3�Š��d��2�dE{‚ü��ƒIDATÁ1®Qà³YÁÜ£æðïœP•†XPÁ žK±›ÖÒÎÆù!ä0õ\‹WPÝÁ¿O@vèªÈäÚgW}O ¨ЕW:ODëÒb놎uŠÜR:’3ZœÎ/$ n ×Î_×/‘Y�ôtåcàk:®«ý8’=)=:üÐÓô§ »I¡k뺞Æ_]·›éZ†ˆ›ƒ²…Ûé> e¼ï©£ ÏØ å6ÝÎMb†€zºµ0h1SÁÕT¦:ì­”‹«Ð›ÏµXù¼IGBàO÷áÊ¡Æ1§ˆëò>XXlå•«°]Öë#âºÛÒÑU�ÿ·ƈd%¨ Xcˆ@N|“!ÊÓþ1·H%ffbºd¼ðé|¾Z¢›�Ë(c”›¥&»B@_ÓŒÚ,Þ®BpÍx”±(¼#„®«Ã-ZÖ �A Ö[,há6#Åõ»þåÁYvSŠ+ðëÛd)}�ÐAÔßòÓóÏÇÞMé7ý-ŠNI·#ÿ°Hîü´F›����IEND®B`‚IMAGE 442 ./arch/ground/Wood/tree_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���2�G$�O��d�d3dE�Š��¥� R-�Í�Áq8�ÿ����¢­¹���tRNS�@æØf��>IDATxÚ}“ rÂ@ C¤V„û_·þ”MÛ´ÕìÀ€ž¼&ÛwÛzRÒ–üÕd;¤ÄÉ¢te¥òý€R ¼È¡ãǯï!¡Šc¤ò‹¿é)‘a¥Õ}Â:}/—uÄ‘­p9ºùñ‰ðÕ@Ù€²Š'€5ÂLÀÜÃ@¦—¿CÉé9F‡Íuiºgpz}VÈòÑwˆôÇþO€ gýJ郒hJI¸NȵÊ$äRyœ! û%„|N9{b(ê¸ê/» @!¦/yftèÕa'ÕŽ©à�iË\ËD©36á©·0›�ÜŠžd†\RWUFÖÎ"ÐßK´Šºþi èQ5+×`‡Z´©ëCõÎ*g]¶‹n··ûdöRU_·Ûãq~ü­ÃýqÛþÓ㯋n*У����IEND®B`‚IMAGE 470 ./arch/ground/Wood/tree_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4V�Š��¥��Í��O��d�²""�2��ÿ�‚��ÿ�����Áq8G$ R-d3dEœ1I���tRNS�@æØf��QIDATx^}“í®1 CçØIÚÎ~\ÞÿiQX–½çgmYN”¯Ds|â–€!"ÿ'I;<þ•#‘„�$œãM_,Ùf¾:nëN@«NÛÆ^ã/nT¦…Ëce^ú™adpc)®ˆdÒ:|ºQ^óAD`)í˰âZ8�kï¡MJí€`±Ê[n<¥Ý’`E¦JÂXÝ¡Êb— V•¨Ç?íéyþ1·ŠLB–e×n©9®ŽJn<-_†83Ð/ì¹ Ú†Ñ†¥ÀÈÖ^%v«Î4öžsNW;!#’("m@ÝQò©ß›Î¤%^¦jZ†®°K4HÂ%É’‘â2à�V©qO"ç˹†¡°l$½åˆ~ê³»ôk"�ƒ¤bë9‚fÕ9ÇxÿT?2 ”åx“Çãëù̦Óß _ûýøD'<ïã;îŸ~ªõ µ™WX&����IEND®B`‚IMAGE 390 ./arch/ground/Wood/tree_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE���2�G$�O��d�d3dE�Š��¥� R-.‹W�Í��ÿ����ƒña���tRNS�@æØf�� IDATxÚ’Krƒ@ D‘G¸å4ÜÿºyQ²™1x‘†Ò‚þH*±ÝAÚ>A§üE~J85Âò-:ñÛwñÂBqm?‡’‰¯ã3ycŒ¼âG³’†í {Þ ~çñ+ò¯ƒË+ߤ)¦Ãa×êÇ)ì½¢)ǼN‘/#¬ªIÐnS±¿µl(„"ª VA7ï he“@JŠ@ŽäÜBO"Ù ãgM-ä¶waþÖx:BO×tF¦ædì† ž´lM‚¾R×N÷Q^-CˆZ ÈŽU«�6ú–„Ðú«ñ½÷°U6ü‚9/ ¿"ž‚m¸X±ï/!õuõÃî¯}?C`»ÆãñØþƒo*Ó ßk´‡����IEND®B`‚IMAGE 1380 ./arch/ground/Winter/tree_5_christmas.x11 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÐPLTE�!z�ùlF ‹�Ÿ"q�eFô�s�pwR]}�‚JRc�>��¥� Nu•D�·BŸ�Â�c3Î#…¡�{¯�òü�H`th��Uu Vp{¤�� ÿo¸�Á��n{�’G[|Ä�{Î�ÿÑ��~�tD �IY .E�~,� /ucrH#I Bg�…��„.o�;xEDtrQ�T- Ao„�. �‘�yt}U�Hq�Uk��“<ke�› Š Hx:|VC(PTv��š+O’�›���$vƒf�~i�z�¦ ¡£Q,N„DŠc}B��·�€x�ˆ'� dr…N™��`GQr�¿V™s‹�ü�R �_�m*¹�ÎV¨p›{2S¬�k¥r¤ �Û$ÿ���ßQH�K¿�w©��ç�oCHÊ��Î�y·�óC�u�úDsÎ�iÖ�w��‚Ì�ÿ@sÞ�üÎ�(wéò�ñù�DX¥P@P?D0={>�@x�w#hk47NiqCv��.ÕS�­�:…9� So\�0ŠV�«)n|‰;�¬6’=Hu�2�d~4¢hL¯c�MG§>�xD�òUU�>zH�}ˆ�A§��Pv¥u�^™ krÉAEC¬�yL�a9�ž�&G ½Q‰�v˜�uN CXKn��xb›5¦‹�>mUCQ#��8�I�„NqZ:F;EÅ+ÓD!>4te³8ó�bbmÂ�r`€n ÿ��‚/�{�O–‰/�r;Zí�ðÏ�NP, üÖ�v�cEUP�ˆO�*~ßÊÉY���tRNS�@æØf��BIDAT8Ëc`À˜™ð3³:<Ò׸¹‹8â–¯à}°RCþ .éû|ö­e«%jq)HâÓ4àÚ~j‡gVé˜K¶l u&NlòA ¬%S×rpe˜2b‘ôdŸ|÷ ‹KÚ¼E…œ0¤;pJ(öžgÉÃÍÝŒ&=sšÞ†øNIß”éVºÖŽÎïjAU°›5Ù¶o¿ˆ¸ ãõpŸ.•êÚæ¥(ò'Y{$Þ±;³4Ìub T0êåẋ,5È´8êm‹œ´ˆÓ"B©VOÙ0!Ég¶rèÉž‰ROÞÄüø¶Th£x¥L4rd¼>»j£\I÷ ¹|Ej[=ÄÄæîBRðR7ib°P²„;£`¯d>¿@¹ø…Iën")°˜ò¼*ÛÁvs¿\MÕ«-¾çU—1*»!)`<¶È‹Ÿû!û-–pùŒÐ؈҃Nl¢H ‚Ù”ü³¤m¼›Òß;—]º!,Ù š&ü¬RjöÜ,¥“•ì]yòÂ]´]ª‘œc®Q4­cVRébòªIg­ÜË.“ƒ¤€C˜ÅÇn¹£¾¥‚]‹”Z[§b¾M�r@6µûË2r²”³0) µ=»¼Â}-s JT4†1q2 ·ûs$ªò.®XbÄ(놚/tf˜ÌRÍž½‡5+´Œ‡YE¹Æ=¹HÆòvôHFÝ‘ÖÒòÐÇHOËßd†øIÖ×ÏIõɽ' €™ÅÄ"]ã5Ô=w*p ,À’`5Å"ÅÄdx=ÙS°cccr��[¤‘Á3Û>����IEND®B`‚IMAGE 292 ./arch/ground/Wood/tree_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÁq8G$ R-���d3‚B'dEtAaí���tRNS�@æØf���ºIDATÁAQAÀÜ ôŒ‚ž&Ø÷8@îH@?™���o���ÀAÀ¥»¥�D¦¥�\e—p*¤òhÀÌ”Ô|6€”ì³²�™€i÷>€bfå®)à¢3s*S 5:w‰ŠÉoI�MîcíZ@“ß™93@–¼viÀÌÔ<µ8•¹Ô4€™'“×W6€¼jN» #�s´ ÷<8À÷_½@>¾¤Ÿ�ä}�VðÀ´}ÊÄ����IEND®B`‚IMAGE 539 ./arch/ground/Wood/treed_hills.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEïæŒÿÖ�Þ¥�ÿ�΄:Ök{{{�Î�)ŒRœR)�¥��Œ�cBc1�c��J��1����d@ºT�� IDAT8O]ÓA¶Ü DQì~%•#èýo6wòÝaÀPpQ€@èâÒŘ0‘�HÁHšÀ¦$&Ü]p·<Ï3Ïã3UÛŸQ SWº­ã8‚åU.;ByåëÝmæÐ|µíÂå¸^ÊwÛôÁdu»ªªpâÔu¬öçÔ±Ûîb‚Í/B’Þ«w{­’è¶»\Ÿâ½Úq ­î®ÂÔ¬Ö}Ív»½ÖDäꮪ¢ Œb¯í¾ƒgæêjÀ¬ÄÄÛÛ.<wGwwÙÀ#àím/›.«Û®*ª Mm·Ý˜ °ÛvÙ.Zš°ðnwÕ–ÄþlQ]’fÀLãÆ·XÝk­Õ!Ê„¸ôÛÛ…�H21Ü&.½Rçø2Ï<ƻےò8žBdæq7H| Ò_¾@| MàÁˆÿ„Æ_ÀýI~„FŒ_H‚/¡9|w†ÿ…|pê)t|ó…ȼžBèÉ7ïwЀ|Bü².kÜ|Ûú”ê§çu敯ßÞ¾HwE‹9ÉÌ”î5c ˆ»È5ï]2SC’€Fðwó$ñƒ‘5����IEND®B`‚IMAGE 584 ./arch/construct/Treehouse/treefort.x11 ‰PNG  ��� IHDR���@��� ���•C޶���-PLTE�������2��O��d��Š��¥��Í��ÿ�G$d3dE R-Áq8ÿÿ@ig¦T���tRNS�@æØf��ÉIDATxÚ”‹®›@ DïbÐÐÿÿÜÙ!KQUA&8ãÇm~þ–ÙéÁMî’~Xæ_q™""¥LK¿ËI UqM¿Í¥4Á’•©ÇŽ–”à–”é~™# É=C ªÃO¿Ì—EP·T¨¡kùï-Vs·Å/òE”03‘Õ3§Á.qd=a (¥6…Çe¾˜0¤ÐrP¹“NX­Ðä½ãÉKp#a:¼ “Wpxã§Â0Ûø=,ºA0ЇOÞýϹI"²rµ³ï|ïoâÉ‘,cC#"`mÀ½ó±V1ñäÈHàHðx;(÷á$èþŸ¹$¾Ž2kŸ5è¸u]é¯ñ‰³GsYʈ—ÔMæ“wÁª· ½ƒÅ]é\½Î=£Oš§×üsج¤ˆ¨ ÑõCëÖŸƒc¸3PÏÇñ´*k¨ÃáéÛž@ãÀk ¼°ãŸÚL)»F 8Û;Á˜È< Yš›¨8ÉC¸ªü£uäÉ{Âr3±0¨Êãý7—·"N S òH\ú?OøIþËy ¢Yãþ&>×׋Î0Êu›cXŸÛ6oos*¼¶ç÷q–¿ã�,£j³õ¶����IEND®B`‚IMAGE 550 ./arch/construct/Treehouse/treefort2.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���-PLTE�������2��O��d��Š��¥��Í��ÿ�G$d3dE R-Áq8ÿÿ@ig¦T���tRNS�@æØf��§IDATxÚíTÑnƒ@ #ÄI®¬ìÿ?wNàzk×cïÓ¬S©dŸqˆäåªË%`f â-mjîf¯’¼DÖÜ>?x^Ôä‚'ÂÚ‹`¥3y#Y°<™˜˜áFª|øãúš,4¬"`1ÝJþˆPæí” -TÕx C Ž (èß!Eð«ZŠÌÉõ9š÷WC±ù“|kõ–GHòZ¤ÃÎ�íI`*ªïþ=¥7œCÒѰuºÅ*›|Šz‚TŒ) 4i?i7¾dÛ¶]<l(Æ.  ¢MÅ1©u‡°ÈM? œüئjïíû6Mr:Æ(–r—Qß² ZC¡IÐ%*ÝIIŒÇ`Eg‚ÁJ6'E:ù8€I êò·Ûv—ly#ØnrOŒì¯²%ÈO°_§ƒÎe ó~ i™÷ƒˆüÒòß²ˆÖ.ú@‹y?T^DLûA�ÆE?Tà}—Y?ó’–i?�B�Ó~ÀwýP Ó‚Fïú³«~¸ >ï‡}_æ Ã}¿-WØg_RO*¯®Í����IEND®B`‚IMAGE 452 ./arch/construct/Treehouse/treefort3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ�2��O��d�G$d3dE�Š��¥��Í��ÿ� R-Áq8ÿÿ@���™€5���tRNS�@æØf��EIDATxÚ}‘nÃ0 ©©4ÓÿŸ;Quc´ëF^iSÚ^e¶ý+°Õ1ÿhÃ@2€‹wD*D‰Ä,“u"p¼{�@¦„ AîA”(„XÀ¾Ëu ô"±Úíå?žÐáÇDü€Š03é °«Â£€9At^þn–§MTÜ5@oW?ò£o!®�76á˜8^�XšÑ¹ò >Kš†i†ž ¯}`Ï‘ßi”dM`=B@ÉdsŠ[SðcœÉÀ"Ö.ÜÌ¡„.*BM fÎIk�èÎ@}ëâF¬Õ8ºÑ8ÇÙ�Ò�تќŸ ]jG(»ÝSña2�xC:ª¥Õ¦¾Ý«Ü^ä»jêJââ’¥äz m¿t»{ŽR:Û`Üò.å›±rHò?ëü+à@† ÄmÖ-����IEND®B`‚IMAGE 466 ./arch/construct/Treehouse/treehouse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEÿ�ÿ�2��O��d�G$d3dE�Š��¥��Í��ÿ� R-Áq8ÿÿ@���™€5���tRNS�@æØf��SIDATxÚ}‘ ŽÄ CKRÖÐarÿãî¶t¾kEj;–¶g˜mÿÂ%m”ùGZ¦RJ•jµú&aVE€oõ7žA“p jÕñ"H8à r@µú“‰Br¯EPÇ_¿ÆSgݪFÄ ‚\Û%øa˜? tO231åK`k…¹‚óˆ0(‹O&D€;÷8°[tsg�¸Q+dçmÜÐàûþ~< da8ÈŠqFèŸ7:”„¢‚; B®÷Pʽg*‘#¢µx¸”!�FDFιETäWÈÈÀç y�÷‡·p"öžMò‰~°Ó!­ž«úT@«øzL£e#ãTÔ1OÆë±L’ÙÜ"¢s- "Aâ9¦â~GăÂ*S’zZÑÖüµ‰(y†…Gû"H¦È ¸Ã¿ÀHE�ÛÞ°ïùvcY„búƒ ï­mßííÛhß ~ð£‚Ö“OÆ����IEND®B`‚IMAGE 169 ./arch/weapon/misc/trident.101 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���NIDATxÚÕÐ1� BQïh‰iÜ «7û0u} Mè˜)èso®w 3oÝÏ„5Ç Žgö`}O…o¶^yÓ£ž|á}(H –üËÙç �q­•¶����IEND®B`‚IMAGE 155 ./arch/weapon/misc/trident.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���@IDATxœc` 8@iÆ P†kDˆÑÁ!�Ì`upªu€JB¤CC º¦@ b `@gL ’nÜD�æ y(kM¾����IEND®B`‚IMAGE 171 ./arch/weapon/misc/trident.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���PIDATxÚÝ1À ÄâüÿÑE4ÎÂRNl>Ÿ€øi€®1Ž´^B"\>¶àׄâ4Ï„O˜>{Ô·Ï\DýÊy Ñ;?qßÊ×FÜœæ��iì:ÑU����IEND®B`‚IMAGE 148 ./arch/weapon/misc/trident.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���9IDATxœc` -`„1 ¡PÍè �$YCCCD€ ÑÈ™ÓB#‘EàjPtÁÍ™Œ°‹Š��ÅlοN»����IEND®B`‚IMAGE 165 ./arch/weapon/misc/trident.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���JIDATxÚÝ‘A �0ÃÿÿèÁÀ£Ëm°‰·†ª5_˜^œ!p_ÈPF\óÈn „ {À¨71ér =ež`Í”‹ê±ZΊ�i@3Ù0����IEND®B`‚IMAGE 151 ./arch/weapon/misc/trident.151 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���<IDATxœc` 8@iÆ�"¨$c¸NXÏ b „Ê98@¤XB RP)×4“á¾ �ù¹ yiÊb����IEND®B`‚IMAGE 169 ./arch/weapon/misc/trident.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���NIDATxÚÝ1 �1 âüÿÑGÉЩòrKk² “z;xƒû4î§‚vü ×ÖÿöõaŽ®0?ì¾’öñ‚aèû­¡7—†Á>óÊ|ÎØ�i¥ Ź����IEND®B`‚IMAGE 148 ./arch/weapon/misc/trident.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���9IDATxœc` !p€ÒŒ®Pk(LˆJ³0BEDXCCC€ŒÔÐii©!È"p5p]psà&Ãí¢2��i9À0Ü����IEND®B`‚IMAGE 170 ./arch/weapon/misc/trident.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V�ÿ�ÿÿÿŠ ã£���tRNS�@æØf���OIDATxÚÝA � wüÿ£ƒ$:µ{ jñæ8¨ú/€ë!a†‹æŒÁhaE8 š€ãt81rè"¼q;grÓA ’„JÈŽ¼†ÞÉ�Øæ�iß¼§†����IEND®B`‚IMAGE 2280 ./arch/monster/troll/Troll/troll.x11 ‰PNG  ��� IHDR���@���@���·ì��4PLTE���ÿÿÿc„�BB�c”�sµ�JZ�Jk�Z{�Z¥�99�cŒ����kŒ�kœ�k¥�s¥�s­�BJ�sÆ�ŒÖk”�ZŒ��c{���cœ�c¥�c­�BR�JR�!�))�k­�k½�Rc�Rk�s­Zs�s½�11�{µ{½�{Æ�{Æ„Î�„ÖZ„�œï9Z�RR�s”�sœ�BZ�JJ�Rs�R{�!!�9B�{µ�cµ�k„�{½Jc�19�{Î�„ÆZ”�J{cs�kµ�œ÷œÿ{¥�J„�9R�ZŒ{Î{Ö�{Ö„­�R”�Zk�sµ„Ö„Þ„çŒÎkœŒÞŒÞ”Þ”÷s½)1�¥ÿ1s�Œï�J1sÎ�Js�RZ�Bc�kÆ�Bs�„Æ�k�c”„Ö��Z1ZZ�Zc�9J�„ïc½�ŒÖ�1)�{”�ŒçJ{�”Þ”ç”ï!�9cR�1B�¥ï¥÷1RsÖ�!9�Œç{œ�B„�cŒŒïZ­�ck�B¥�JB�1J�1J1R�Z�k�1Œ�Js91�{ç�s�„½�J{J��1!R�k”!{��B)9k�9kŒµ�ŒÆ�k­R„�R„ŒÞ�RŒ�kÖ�s„�B9�Rœ��))9�)J�”ç�s­”ç�R1)�”ÿBk�Bk9�R�Zœ�B”�<•Q‘���tRNS��v“Í8��aIDATx^µ“#K„{³ªÌÌŒÃÌ´ÌÌ™™á˜™™™ùÏ]¶=7¶î©{ÞiuéVÙ²_DFÙÜ‘C†Ã!ÃctŽÍá�”xÏÁçÿ�  ƒ‡Û2ȇh‡ïù¯ Abïà#Ïp$@†ÁæV…Tï3F€`ÂÀòÁ+xbgl¹f{„ÀFùÉ€3OÎA”·‰LÒBäÇw¨ ÃÖ2µÜ¯ž®”Ð|¢R)ÎÈ™ñ >ö¯ð%ašÔÈ9R$<!P$„_!ПLNΔVm²€¦@,bˆd¢tn›¶Â{ßïÍ$ͶCˆ¶ÇJø td¤H>.¤g†ú•Ëîúzu‡$ÄÔ‚:Ù£;¶^âúSw{×ZçËII’–ŒýîÀ{x‘¬¢ü ym÷í?^X9ŸDÂ'—€ÿ†ñù4¿*dÈ„”/ôÞîõzZ–’ÎJÀ~ üYžY%ÑâLM&© ¯¾óÎí½—:íÆN2�u¸?ü ©ArÜë½ÞîKÝ&KJgÇ~ ðC}®FjbúeiÇ*—Ëõ•F»Íè± Œ%ˆÇ‰HDᬔ§ô "elóûÿøÂ�Àh‡2#GyITŒTÃøö·~ó÷¿R“>òÍïÝwçÐؾè½h‚R:eZì çkOÞ÷æ±r>ò柞ü  |52u]G@õùSŸ~ì±-tWÎÞùâw¿äØO T„‡„ h˜@¡ Öv;-ÇiŸºtéaiÅ4I ‘.Õ ;7“S†Ž�šj¹WÛ6,Ö¼xÚš‡^£ †ôÁöŒ@rÜ6KR€»¿eB€àhâ\7däóy¶X-¤hX¡)Çu¥D—uæ´êJØ¿1ØÜ`æMJ¢Tt°$)Å wwë�A|GÓB¡É|µÊ0ÄN¡À, õðÜOæf‹%°^Ý»Ž5t�T9Ø>ÁÖO=Ñdì¤k|¿ß_À¼Ü{ÍÕƒašo4òÝ"_Q¬öÕßã?°uråJ8Üë* Õ/þåA�0è¦Th5h‘È|Ô|Ôu›Uv¾ÕÁ{HPÝÔ@w¾z:œß@4c¥Ó2+¶¼–Ž~ôëͪaZÖÍõNÓÒC“S€¾ùs=ð)8ºñ#3ÊÛé´ ™‹ØÅ¤i±*Ó! �X0@^‹p´nF3v¦T½ZÝ108c,E¾ˆßpAþa‰‚F+é…ô,Þ…ó‹÷Z TXž–ð»Í3+È?´œx.¥ˆ‚-ËÓ]¶qùê³Ï^»æv6 )ƒ–ì…iÑØI%!ÀwÎÓ®`"$œWz»8½Þu·*%0-P¶#ý:�Õ™®i¸L¦›t^ÚÝÛ»}{·÷‘NàšHÜtRÿ �P»Þà€/Rƒuv÷þ§[Ìœ„bšð·Ö±M_}"‰«F·£÷î­UkÑÜèÜ,›Æ;sf²dÛe£mP?�/KI @)§ª‘g¨Å.÷v_zX ƒ"åÍ£¡±+Z³J5_@±´IqÊý@UÕøqæ\u_¹¸nm†©‘ÏkšmOTŒ†¥-ûn€bŠ(L Fú¬Ýl»îCô×ì e#ä_Á”¦mGQÿÓÏec1UÍβöÏžwÛMf¡?nÛÓŠ’0:4CÔóÿ†!r·ÈÍ2‡í0f†P¯"@Pjøêë!ˆ*¨ÿCVÍdÖ"‘x$’ý]ÿ!Q{ñ—çúó15¶ö> @Q(zt‚zþ–Ëe#^—òÄSr.—‹GÖ¼ ø@«Ìz�¨e@íX$‹ÅãÈÀÓû¤ª`2�Àtõ�¨A+$†î éß"ÁcÄð¦¨� Ï9­K­õ¤ò´< ¬Åçsóñ[/¨êë[œ"N™‰° !9® ÀÈAë~)b:‹„lŽLLÏUÝB¶iR˜‚ ¬ g¦èV6rœU“^Øz5Y~!>¿†zŒ|*Žú�ê°-¡gT•¼E­}“-'‹Gr{TRe üvX~Q�Ô«$3òØÊzˆ?öÄÀæÐÂô½óŒ9ñôO ô£ ±ÏÿxhAñ…=û tñÎêµq¬`n_�ÞpãÉ3™Åx‚·Æzž7¾ü‹7>ºD/ÁT„{ ÄTu¾ÆwOj¨¿»;Áýÿæß=Jç¢Í]V����IEND®B`‚IMAGE 2240 ./arch/monster/troll/Troll/troll.x12 ‰PNG  ��� IHDR���@���@���·ì��@PLTE���BB�c„�c”�sµ�JZ�Jk�Rk�Zs�Z¥�cŒ����cœ�kŒ�k”�kœ�k¥�s¥�BJ�{ÆŒÖ99�c{�BR�))�Jc�11�c¥�c­�RR�Rc���k­�k½�Z{�s­�Z„�s½�sÆ�{½�{Æ�ZŒ�„Î��JJ�Rs�R{�s”�sœ�!�s­9B�Js�cµ�sÆ{µk„�9Z�Z”�„ÆJR�„΄քތÎ19�”ïœïœ÷Zk�)1�{µ�cs�kœ{½)9�!!�{Î�{Î{Ö�„Æ�kµ�9R�ZZ�BZ�Bc„çJsJsŒÞŒÞ”÷RZ�s½œÿk”Bc�ŒçJ{�k”J„�9Rkµ{Ö„­�R�1s�Rœ�„ïZc�c½�k�Bk{­”Þ”Þ�Z1sÎ�sÖ�{¥�{­�¥ÿRsŒÞ�Bs�R{„Ök¥1Œ�!�ŒÆ�„½�1�kÎ�sµ!9�!R�!{��1Z„Bk�{”�{œ��B!Zœ�J�Z­�B„�BŒ�JB�)J�cŒ1)��J1�R)Jc{ç�1J�1J„½1R�1RkŒ�R1„Ö�J{��JŒ�J¥�91��)9�ŒÖ�9J�R�Z�k�kÖ�ŒçŒï”Îs„�9k�”ç�R{R”�”ÿs¥B9�s��!êy†���tRNS�@æØf��.IDATx^Ý•óÓ;[ÆÓ}ÎØŠm½¶ýµíïµm¬mÛ¶íý×¶göÝÔÝ»•Iî¯Û'59•ªçó´’$Æ  ×àí­DÒÁ‚‰“n�€~lÂ@>¸C}ëöô ãò ’q ‡B1%dDQ¼,Ò‘8’¨ � ećY¶¤j‹¤çSb ‹Â8öŠle„�ž’%H�åÛ°å5ZÙ DùSÅðJOdHŽã€4k ÌÏKt7m°“‚ˆ]ÜÁü"À„@è@§×n!ÐYNÀXö HÁ¸t=¹ãŸi=¼˜Ïé–Ƙ- ©CF�(�‡½ý›ÞçrŠ¢,r›Ècm@  QË„óoÝ}íµ½íÍ¥f•¢¢Çà?j!EÞI…�$xç>ÅÁ­«Û~‡ç”'”±¶(˜�©Å &óÞòssÏ-Ÿl÷69{ðs?ŠDê(¨ÿ LÐeA©³…Õ‹bq¾öÇ_þêqŒª 1AÎi€/g³ ݯ4­ô§?û8sØÂg>õÕÏz÷!+ÔUz­¼ø•Çœ[foì{/Ž„Lj(òE$Põ|ïÜŸyæó‹gý“O<þë¼û³#ý#5Ô˜ŒÍ8u~ÞßôZ­Þ¹«W_R¨ŒšB$2IÓ±,‹�ÍMßß<ß®óÎöËK›¿GeT dY¼W”Ñ`Œ©Lç›þ&Ï1D“7½½ƒe®Ø@SS8=c[! ßò·–ª9W,çäÞÝŒMÁ”Åši±°zÎm0¥åûÞ¢¢b ggÏŸÁ¸É©†iW*~¬Yͳ®Êògý冴P¼}[:²²¼ý×ßY1EÀ—¢Êm^åaäÆ,¾í›…�RÔ§õõGì¸ N†iNWšMNIÐw×ë|ël#Hÿ}ÞͨΚݿè1�äLT¯ó3ç¾ßiò%O3tÐÙÁ"ÆéͰ5Vi·+¢ «õÞ?õ:ÕêÒÃ'r¹n-9ó*&bMD¦+U¯ÍŠIç¼ïSMÏóÎz6&qÅŒ% k4аÛ[ž#»Án*ùÉ÷uš6íò—άóJn­«Zñ�ì*]|eý½NRpS)ÑpÚÔ‹i"4¹‰ª¢(ž‹!à´a?­£éX¤ßd´šÍ 6³¨¥Ü®3Skù ùOcŒÿ u_GƒÉ©ùÔ$Í¢õ›—½6©«¼Â$ú¬Á«J iã"ÃZ½Üàë;7ž|òæMk½š·™ä)õN+6¦“þ8¢(&~"ê­ç÷(ö÷_ð›ŠN¸¢îy1=@=GFÉ#H…‰F®ußÁ]ú;8ØÿíVÛfF°×;6@ñ~%Ç‘%ŠÌæ[w#ÿG<îLc15/˜ÎŒ¡€¢´Æ0ê¯:š© ·¶îÌ9ö"ôÑiÉuelו¡�SP†Ö´Ò/XïìÜ÷¥Aó¯8¯˜¸rmnnø&âŒa?ñ iZÿâZë†ÿüö™úZ—Ùv×ȸnA6t]pLê©Ê@+­ò^§çûëœümÃHïº.Œ)C+¸Qý·þÔl¹¬i³“¼÷¶Ÿû½¯†±Úw]UUqø P% õÏj%úTEz’·øÎ“ôZŸ¦H�k(€É“ňþMÛØ-•ú¥ÒìWï­ŸøÃ‘ÕÕ²VÞuEQEs(€ë,®h}á¨VNÏ–Â^…K… N÷K!�™:€Õ§[ž‰D¸çÊ725·\*—Ëý>1èÞ4�F] P”–ï„�Ø`6“¡Lîó©SDezR¦¢! ÝµD“–ì»Ù ÏYò|DØíŸNŸîÍjÚ{®'Ä…ºš XÆã¢Hz�å›ÕR³D˜MC¡�_�M»N&kЍ|kå¸8Mð‚ ¿ 3†ˆ×BD6²§³»×£,UQœ¾ty=žÇèm$E©Ü/¥ñpÔáããZ¹t‘7ûþOªÿЮ0p©×4�Vƒ ¾½0R7Ðÿô$À ïŸÂWß5ŽßQ"ý¥KÿíGEÌcMÄ1ô•#ý›²h—N€g!”þ§Þë”ÃîXMxèk‡³|3á›W>†‰ÿÛø§¥Û»Uæ����IEND®B`‚IMAGE 2237 ./arch/monster/troll/Troll/troll.x13 ‰PNG  ��� IHDR���@���@���·ì��1PLTE���c„�BB�c”�sµ�Jk�JZ�Z{�Z¥�99�cŒ����kŒ�kœ�k¥�s¥�s­�BJ�sÆ�ŒÖc{�cœ��k”�9Z���BR�c¥�c­�JR�!�))�Rc�k­�k½�Rk�Zs�11�s½�Z„�{µ{½�{Æ�{Æ„Î�„ÖZŒ�œïs­RR�s”�sœ�BZ�JJ�Rs�R{�!!�9B�{µ�cµ�k„�{½Jc�19�{Î�„ÆZ”�J{cs�kµ�œ÷œÿ1s�)1�kœZŒ{Î{Ö�{Ö„­�sµJ„�s½„Ö„Þ„çŒÎR”�ŒÞŒÞ”Þ”÷{¥�Zk�9R�¥ÿk�1)�kÆ�Bc�Bs��J1„Æ�c”9J�„Ö�ZZ�Zc��Z1c½�„ï!�ŒÖ�sÎ�{”�9cŒçŒï”ÞJs�”ç”ïJ{�1B�1RR�¥ï¥÷RZ�B9��1�B))9�)J�sÖ��){œ�Bk�BkZœ��R1Z­�ck�B„�B”�B¥�JB�cŒ{ç�)�„½�9�1J�1J1R�R�JsZ�1Œ�J{Œµ�ŒÆ�k”91�k�ŒÞ�s�J�k­ŒçŒï!9�!R�!{�”ç�kÖ�”çs„�R„�”ÿR„RŒ�9k�Rœ�s­9kEe.���tRNS�@æØf��:IDATx^µ•³#ßųšFl×6Ƕÿ¶m>Û¶m}º·;™;wª^¥o¦¦ÞîäUë·ÖÞ}º;4J‘; ®÷\dðÚ[p½W5Ê|åícd¹£%{Ÿ1ªØ_öû2b†}%·C+ü5Žê=ƈ„þûý#bgl¹bx£h÷cÍ‘ëà 6‘I’×à}a”îžZ¦’ûà©r ÍÇËåü´œ ΰG¿Mø™PâS¤B®“<<!½Øgrr¦´b“y4bC$ã¥ë[Žár{n&i¶Bt °4²oÊ“¯ñäô@¿|Á][«n“T˜˜òF°÷Ý“¼$ôõÇ_é]nKI’´È�}F‚ÿD²‚ò#äwÿ|vùT _Xß%@;ˆ/$…N!2v¶÷n¯×;Û*²´tQ‚®!!$ËÓ+3ÄËOWd’>ûú{ïÝܽz¾Ónl§Ò@ð ÷J˜&Â%ǽÒëí\=Îm²”tž€0Ðç*¤"&ß”¶­±±±úr£Ýfôô—NîJH‘ˆü¢T ¯Ånp‘2¶ñÏïýàÐH=L“iñÊK¢b¤Æï?üÔ·>CMúð¯>zäÐ 8Ag<h˜R:iZì ç—O?òÎé±:}øÏ?=B(_ñ¢¦®ë¨>ü+·n}yñ˜»|ñÐÏÿðC8hReþ/ƒ† fm·Órœöñóç”–Mó€©Q j³³01iè é–{©ýhÃbÍs'ø±yàiäbTïwϘáp´YŠDÙ -‚�KgkQ£P(°…j1M» M;®ë,†Á[Ò™Óª+ÝÀ§éwn°"ó+-Qª÷g°()àa†Wvêá§šNªU†!¶‹EfY¨wgÿ:;“/õúî•à1UîtfkÇŸh2vÌ5¸‹ÅV8˜zo¸z0 K F¡–ÊŠÕ¾ôG¼[Ç–t»µÙšZýÜß~�ƒnHÅVƒæ‰,x森۬²S­ž‡0ÕM tçë'ÂÃÍXî´Ì²-¯&½O³Y5LË:³ÖiZztbRÐ7þ�¾×Öbz‚LrÍ\ÀYL˜«2<�Àéõ®×ꦗ±3¥2èÕê¶ÁcaÈ yüÇ0]‰‚FËÉùä ž çOŸl5P]dZÂÿJ´À¬ ÿèRø™´"r[–§jlýÂ¥gŸ½|Ùí¬Ó-ÙóS¢±NA€ÿö\ 5nÂÃΫ½¬^ïŠ[•˜Àæ”mKÿ �xÚÓ5B(“©¥œ—wvwoÞÜéý¦Ó0¨æÂgœôç�Tg:l„@ÈSƒuvvûþ'ZÌœ€|’µÖØð=�á¶êmy¡ÐÛ‡W¬pµsfÌ4ÙÉ“%Û.+ëmƒ�SJQ�JCªyœZìBoçå¥.(RÁ¼-»¬5«T È—6(6@CÿQU5qƒ9—ÜWÏ­Y]Š7M³íñ²Ñ°´¥¡ ‹" ¨‘k7Û®»ÎбU» Ƙ>‚IMÛòPÿ÷ïdãqUÍΰö/žwÛMf¡,aÛSŠ6fhF©ïÿ#5Bäv‘›aÛfÌŒ¢^E�W:|#×£à)¨ÿwVÍdV#‘D$’ýDì!Q{ñ/×csq5¾ú;@@€<Ïût‚zá°Ïe#þ,åñ'Çå\.—ˆ¬ú @�­<ã ’.ÚñH<O$«ÿMU}ÀD�€éÔó¨AË$ŽîóÉ‘à3â¸r®À$€â3N+êäRk-¥<%÷ «‰¹Ü\âðªúÜfH'Ípw ,9® :šƒÖ RÄd Ù'_%ªº‰lÓ4¤.…!€®ÎONÒÍl䫦ü(°ù"*²ü@bnõŒB:Ýõ†�ê°ÅyôqU%oѽ{ΦŠ‰'"¹ÇÏ žÓ`XK/r@½J2û›Yñoí{À,Z˜0tž4§"¾þɾ~?Cü»¿XP<¢w“ž3‚zín¬`vÏïP@ùòL¦oqw‚·pî£ÕKßÿ‹—¼¶D.?Á<”ù}pCÎUÝW† êïƒðög†þõ_VÆÜt뎕t����IEND®B`‚IMAGE 1123 ./arch/player/race/troll_p.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��CPLTEÿÿÿB"f2b2G$f6^2vB$6 N'I%S)P(F#E#M'H$L&U+K%T*O'O(K&P(n:$r>j6J&n:zB$Q)r>$H%R+b6> U*N*rB$. V.zF$d3n>$[1r:$^.].F$\.a/\-W-m:$V+v>$M'R*K&M&‚J$J&Y,V,C"~F$J&>. 6BS'E"Z.&  `/j8M&_/V)d1H$Q*b1_.D"[0I%L&b3Y,`6J.O(O)[/Q+g7W+[2^1c2o;"O)* c3i5T+i5 c3d5]2F$Q*P0 –Z4Y.f4T)Y-I$^/e3g; X-i9r=!^2e2b0Q(g3Y.`1‚F,p<!R+V-S*V,P*P)R,R*L'`3i5i5g6ŽR,x@!W.N(G%I%8>V*_/\-Q)r:c1D#n<#^>,2 q@!E"Y+>e7_2ŠN,T*Z-X,k7f3w@#P+>"J2$f>$M'V,J*X-Z0P)Ð LY���tRNS�@æØf��ÎIDATx^ÅPS¯n1l·÷gÛæ¡mÛ6®mÛ¶mÛüi§É÷pvzúx“;i“ÉZ³fM þ9(�`FŠQd*+(ˆX9¡ !"m�R*`T!J”ÀäÑã ÷ˆ9È ÜÂ'Ï}e=Û²RdË—œ9K+Õ?5aÁÀ†-[ãÛ5ÅZµÈ”"ÆÎ×)3‹_¼{/GA<ËÈèeå2â?¤wtùÆrmY¯º?äÏ®[_d2k,ª 3‘±¨?wâä©ài½™)‘)̰²[bem×®Wäd™n<ÐYëe¤9çëܼUÁLÃjýЗß4˜‚¶Çb®vw§Ètiƒ¦¢nì<Ë[ <}ÞwµrÔ»|åÆM›Táò{Ž9Ù¥º5îBãÚÁÞä.ßn Q\ ³|©æöî“íÏ=ðÚsøˆ4c´ª ÔÉ!ßäÔô̬ºpñÒå+• ÿ[t‘‘ÈÍ[·áñî½ûδ‡$£QðÔñL¨ ^¾jÑö76W*ƒÄ…«„šú†F$ >5Y«°óÜ×Z¡îÇÏ_ß@(å†ï¼-Ñ„H«‡x|4·„í)ÒLá½TÙÕ1Àzšÿ óÄ-Y? ³Å����IEND®B`‚IMAGE 1118 ./arch/player/race/troll_p.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTEÿÿÿB"vB$V,G$f6r>j6^2n:f26 b2E#M'H$L&J&U+\.K%T*^.O'O(K&n:$N'R+I%S)zB$Q)v>$H%n>$P(b6‚J$> J&N*rB$. V.~F$F#BU*V+[1r>$R*M'c2`6P(‚F,V,M&C"a/F$Y,r:$d3\-W->. zF$Z.J.H$K&J*S*V,f4X,Y-H$x@!W.N(Q)D#T)`/X-e7^1m:$i5T+I%P+X-Z0^.R,R*j8P*_/V)d1P)E"T*b3Y,O)c3Q*P0 –Z4Z-].i5 c3[0^/e3g; `1n6i9r=!^2e2b0Q(J&o;"k7M&w@#Q*O)[/Q+g7W+L'`3i5i5g6ŽR,_.q@!* G%I%8>_/\-d5r:c1]2p<!P)D"Y+>L&_2ŠN,6F$S'E"f3I$Y.O(O&J2$f>$M'[2R+V-&  Úk9q���tRNS�@æØf��ÕIDATx^½Qc³A<3³ÄµmóÙ6bÛ¶mÛ¶mãÇesS7yoïV>¥Òº¦¦û ëÀ?‡�€Há!”ŠÅÿ°�ZÔT„dšHЀM@T-¨|çýÑUS]ír/å"üt\v?ðŒÜàUY£É;}ñr)>xøhžÒª xøâí¨¶1º~½ÖE@5 ³Íý+Vnô ¥j=bi3Ù(³Ç’=$.Aß¾g,³µè Ç´—¬ ¢þòµÒîx¢«Õ¼©§¨w›º“fÆ‘ivP ž°56(brü´Žõí&û„‰ÆÚIfåŽÒ|¶»Û·hfžXf™gÏ™;OÃu‰u*‚~²¤™ZªÏÛ+— O’0ÃÓÕÆÍ«ü®ìêàšµëÖoz Lãº(+q»÷ø«l[¶n –owï€?_¤¢.º‹‹ÅnÏÞŽ}eûœ9{îü(âb’ÆQà ŽŸ8yê´E¸y‹o½ÓX4¤3™#ñÔ•Têêµëè† „§Œî ‘gXæÞ$æ:c±GÅ.€×=ÎÌÓi™?b&$væ^¾’ ‰Vƒƒß’lO—(ö½O}€ΔèƒñB¨çŸÈ�¨夂!ðW|(nX:K€ÿŒºÌX±é¥����IEND®B`‚IMAGE 1140 ./arch/player/race/troll_p.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��FPLTEÞÞÞV*Q(n:~F$ŠN,s<#vB$f6’R,j:$r>$ŽR,zB$F"B" L&E# r>[/R(F# v>$’V,~J$†J$~J,j:2 Bb2. : F&>b6–V4‚F(rB$vjdT(N&6 M&f:N(K%: H$S(6n:$R*B"~>$g4O(M'S)F$G$ V*R,‚J$\0v> j6S)†J,W)\/X.}F(T+q@_/Z.ƒH#G$l>!L&j4k;t?…K)[0{?!S)]2]2d4C" G# N'e3t>!ƒJ'J(u=#q=#O'c2‚F$o9!o:!W+L'T(^-g5„G%D" I&Q+Y-]1g4D" `1o;j8q9p<"d6P)q;"_/e4k<V*f7R)J*M&Y*b2l7g;!d8@"M%m8yF ŽN,J%F$^.g5zA$…I+N&Q':B"h8ˆM'S(El:o<_7n="i5i5yE#r;"I%F&H&^/j>$‚F,l9 2 >"xA#†N,p>"N.& J&V.d4>GY-2 vF$j6~B$f4‚BB –†z±���tRNS�@æØf��ÜIDATx^­‘S³&A †“ÆmÛgmÛ¶mÛ¶mÛæ?Ûê»oæ\lÕ>•‹T½éäMþرŒ"Ü+$IÚ‰u^è¸bCC£Fo÷|YÜ@¨| Ð[ìÝ÷À1â!>ò±ºs¯‰“S¦N›Ï¡ˆ…ˆÕ« ®Y»ný†-[·…£¿ó…ý §G÷ýc·nß½w?a_A‚~ªëÿ˜Ÿ<}ñúí§Ïi(âg;b'8ˆ 2”>"m[±²¡k·1BÆŽ?Áà“(•ýö4V†¦Ï˜IfÍž3wM4+´ç"›‰ÅK`é²ådÅÊUª*+Zï„>ÀPmKtñnô²is©Á˨\T曉Ƶd×î=ŒÇtM‰¸ 6$‡9j*ÓË€ê¶3HÇORqò”_>­ÆãΟ8ƒgÏ¿pQ×¹ÁÊÀÉ¥ËW®^“®ÌÏcZ³SÇ7«’wJKJ5YSFHYõKŽD¢šÉtpCÊ&›rϘ¬˜±çàF¾ée2SUŸ|U`oÜô––»÷™l*›WÌ(¸ð!mê¹L>•ÊÂàÂGi­}ú~`ß¾ƒ 9j* `Ƹn³~µ‰$ÌE¥Ëjým‰¤FfðÿøñßTš…RÎí����IEND®B`‚IMAGE 1106 ./arch/player/race/troll_p.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��7PLTEÞÞÞV*Q(~F$s<#ŠN,n:vB$’R,r>$ŽR,zB$F"j:$2 L&E# f6[/R(F# ’V,v>$†J$~J,~J$B" Bj:F&>b6b2N(N&K%B"6 H$–V4f:M&vjd: . : 6S(T(n:$R*rB$~>$j6S)F&H&^/l9 xA#p>"d4>Gq;"N.& _/f4g4O(W)\/X.}F(T+q@_/Z.V*F$G$ L&j4k;t?…K)f7{?!yE#r;"r>I%C" G# N'e3u=#Y-ƒH#‚J$‚F$o9!o:!W+L'T(^-g5M'\0v>[0†J,S)D" `1o;‚F(S)]2]2P)d4q=#e4k<G$c2D" J*M&Y*b2l7g;!I&@"M%m8yF ŽN,J%F$^.g5zA$…I+N&Q':B"h8ˆM'S(EQ+Y-_7]1g4j8q9p<"l>!O'R,V*j>$‚F,b:R)2 d8†N,l:o<n="i5J&V.i52 vF$j6~B$d6‚BB XÉ€˜���tRNS�@æØf��ÉIDATx^­ÐSÓd1à·“bl´±´mÛ¶mÛ¶mãÇí|U{sf3[µOªrÓI ÿŽ  *'y!D?B9ÁW<ˆªÂÞûèGrÁB¸ €ˆàL¾Ò`pìÔ镘A³ü!ª]½fÝÖà¶í;w)(°¨v?£c·nß½wÿÁÃhÂõýϡ䓧/ƒ¯ß¾{ÿásÚ]@  …Ë»vc¡î=zöêݧo ÜÄ ÁDC’lè06|ÄHeÔè1…*«7~B’±‰“&O1•iªª¹6 j. Ïž3—ÍÓum¾šn ¨‹»zX²Ë–¯`+W™J{Àƒµic½©»†ØàÛèglÓf%f¨Z jJÄÕCóŽÒ6p÷Sç†y鸗١ÃGŽžÖãñ:t2\kÇO0ÖròÔLÅäí($ p†Îž;ᢡÄ<­¸tùÊÕkâºÉ-^ ºq³Ò{gKu5·¸! Rv}ƒ­E" +öÂN5z›2ϸ–ão ó"ÛôÊÛPYï X H8ŽÓÖ–ë? Õ¨ò($²Žó±Ä22©,ÿú rŸ<ÜSñ…›ßs˨V�ˆ*ù[®¤ÃþÙ£Û®øeã?û ¦{Oæ•æ«����IEND®B`‚IMAGE 439 ./arch/player/race/troll_p.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���B!Z1s9)�9J!R)”R)œZ1{BŒJ!9RJBè (���tRNS�@æØf��5IDATxÚ­Û’Ã0CíH Ô†öÿÿvE:ÝÙ8}\âÛDdÜÖÀgœË7™ õyûJÀ5�´»ŽÊwºÕ�wÂOÂHsrU«¼™;rŒ$ys &”?çLE¬D£’eN䪺»™Õ’ñ@$^�å¨ìc7äx¾2^Ï\ @óˆHY Yð ,bfPÔzÇÀ™®Yé7"“’*˜8–ó“>rÈI\ô¤´0?Ug¬=$Gú†²]*=ÛV”¤Ó D’Í0f…�Ì+€ ™zäàæ#r}¦Ö{åfy2¢ è9ÔD>vçR�”nGßS~ s)P€÷½÷Ãl׿—gžlaýغ˜òÊ¿À$C€ºëÇnf]]'/2Üçû¢bôGç%ªÇ÷¾Ú]7~NÄÝJÿ%ÚÆ½ü4ǃ ð����IEND®B`‚IMAGE 438 ./arch/player/race/troll_p.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���B!Z1s9)�9J!R)”R)œZ1{BŒJ!9RJBè (���tRNS�@æØf��4IDATxÚ•‘‹nÄ0MØΰwÿÿ·Åq+}•ª®òRf08iÑïC?ÑÄ(6¹ëo‚6oêª6ù-l7SøN§a®e`¨îõÖÔÜ•½ÀGV7D+‰½U 7Æ4Úw3«Ëvãn×iÊ|hR_Ü'P˜g&ÙŸ/æë¹ �ªFD`ìC¤È!0ÁÀ*(4RBÃhKâ§¼3´ÂX»2Ío!˜Dß–�:ýÐ!’sä•ywò~âÆ™jÚc¤å&$æÉ)àðXe"EæÉ4ëÉý;6aN>NWYÜ.9YQ¹TVE3q9E.³³nŽm2M®CÊ©™ïœvŽÝÉuš™4’ïB�)³«H9c×Ü~„ˆÍ7"G+¡:,| Ú#ýÓhÿÉ(ŠÃ+z����IEND®B`‚IMAGE 685 ./arch/player/race/troll_p.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ðPLTEÞÞÞB" ~F$j:n:f6n>N&Z.b2†J$v>V*^2‚J$r>zF$N*r>$b2F" 2 zB^.ŠR,ŽR,zB$J& vBj6B"^2^.. n6†J,: Z2V.†N$~B$f:*R*’R,F& ^6~BR:–V,Z.B > J" ŠN,. ~J$~J,~N,bFFJV&v6Z&b6rBn>$šZ4J&>" 6 ’V,b.b6†N,6 fFv>$vB$ªÝ™���tRNS�@æØf��kIDATx^’Õn«1„½Fø™9Ì\æfzÿ·iÒËĉÔ3òݬ¾ñúO)µ}'}uÒGŽTr‹‰ŽØZS[ÅaL¼Rc&ªÌŽL€§ í»|e&»wt³"Aþ`ø¨¥/´èÓŸëuïÜ1�¸¬\¼~¼ýU†™€¥±Uoêùºì#³¥¥Ç pD€ º£Ô*µk]ÁrnWÄŠ”ºö=ZÅÒ˜Àæ$-g>QÙn]Ãd«'øú³G�K8ØhÃhí§ôcáòˆÃ„0$i_{mZú$ªbÑÙŸ€Îq±À Á…«*[ ý�þ5¨¿“)ãg}vr?"ݮʋ”1’—¼ņ6“o’ÐNû§ÇÏ2™%ÉÕ{ùá“÷Åd£ûÙÅåà⹓âFƒß7ÉÍ¥dã[‚v‡ÄB2ü÷Õ7ˆs=wˆG‘YqÔ09¬1ÛÐúñ®‡‰è@ �b„,ŒÑI…}½E/ œj®„Ò����IEND®B`‚IMAGE 684 ./arch/player/race/troll_p.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���óPLTEÞÞÞB" ~F$j:n:f6n>r>N&Z.b2†J$F" ‚J$r>$zF$N*b2V*j62 zBŽR,zB$J& vBv>ŠR,^2^.*†J,Z2V.^.~B$†N$R*’R,F& ^6~BŠN,FJ. : B B"J" >" –V,Z.n6b6. > ~J,~J$~N,^2R:6 šZ4v>$’V,n>$b6f:Z&bFJ&6 b.V&†N,v6fFrBvB$PÞ"í���tRNS�@æØf��gIDATx^­‘Å®Ü@E]ÍddfxÌ A†ÿÿš8YŽÛ³ˆr%¯Îñ­V•óQªùöò&û zRÉF ;°Ö$RÂŽŽ)Ï5¢¢èGÆ.lÉÐe«(�ÀÂÉã õ/€í™È½õ*²ý±Y_œ÷œ¶Q©˜»hýñî[îõ,[“å=ïÏõº ¢ŽUy²Ò3ôD`ã·„T¹v«XΣÂR±Â¹.}N #•Rí!tŽÓlqæcÕo¨j-“†´œ¢Í³öÆ�KhÄ””~J~¢ŒA(gg×N‡š?Pv6 #&»ÿ³Ñe D)®sUDbwB_œå›l:y¸äŒžƒl¯úêJÕYúA¾{ËY16íc ’Ï“¯“ÅÂzÌ$$ɉ¤³;üIYŽyó28º><’½6ÔbÜ>$×̉ó×hÇFôhü‡;¶0ÆBâtÆ„q…P'†ã/ß/¼¡Û)€qþw~Ô:Ð(Yw����IEND®B`‚IMAGE 438 ./arch/player/stoned/troll_stoned.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÿÿÿ���999 YYYFFF+++iii CCC(((aaaNNN222>>>¸‚���tRNS�@æØf��4IDATxÚ•‘‹nÄ0 lr1wÿÿ·Åq+}•ª®òRf08iÑïC?ÑÄ,6¹ëo‚6oêª6ù-lF7SúN§a®eiNªîõÖÔܽƒäGV7F*ɽžUL7Ä4Úw3«Ëvã‡nçaŠ|jB_Ø'Pšg&Ð/äë± $“ªFD@ìC¤ˆ! ‰à*�,4RB€ÃhKâ§¼#´‚X»2Ío!`ß– ;üÒ!s䕃y]wà~ÂÆ‘jÚc¤Å&$Èæ‰)ðòXE2Eæ4ë‰ý;6A<'VYÜN9PQ9UVNe3q9DN³£nÎm2MÎKÊ©“™ïÁvŒÝÉy˜™4�ïB)³«H9cר~„ˆÍ7"W+¡:,| Ú#BýÓhÿÉ%{ Ž2«Eº����IEND®B`‚IMAGE 151 ./arch/inorganic/true_lead.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V¿¿¿üߺ���tRNS�@æØf���<IDATxœc` àZµÂP Í‚0¦†.ÓL¡aÓ JV…A¡‘'6FLMLdT$«b2Ì*Z�ä ºåà����IEND®B`‚IMAGE 303 ./arch/traps/tspikes.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���?PLTEs.m+++UUU@@@***TTTjjj”””¿¿¿qqqccc222(mž���tRNS�@æØf���žIDATx^µÎY Ã0 PoÙºÝÿ¬mêPÜÄ %ó#Ð<Ü9‰¾4ž|l€¤ @¬8ºÐ�Q­i�ƒ ØÓå^$ýH˜Ë„¶øÄ×]P–k�: ú¼üò¸±Ïy³¬�*�ú6Àýö‘ y’ 8¾0 0Ð<kà€H6À\“¢¤é]iÀ tÛ D`E<RAÂÿz¶%����IEND®B`‚IMAGE 228 ./arch/armour/mail/tunic.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VàààðæŒÍ…?���ï§_t€ ˜���tRNS�@æØf���€IDATxÚÍÑÑ € �CÑ\óÿ¹É¬dXAOîMîöõFí5Wí‘Ð]bNTO�pÚöŽÂi—po"»HHd÷öžDv\c|@‚€#`‚v¿5Aa@iGX4`¡n@ÆO  Mžò¾ÂõÀ'ø}ä:ˆoaoÆu­ÕˤÀS>����IEND®B`‚IMAGE 185 ./arch/armour/helmet/turban.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V���ÿÿÿ@@@¿¿¿ó’���tRNS�@æØf���XIDATxÚí1À@Ãpàÿo®Dét [§Ö“ñI�VŸ™°z$áíEb|k•dh%lÂ÷Kk f8ýS·¡…�Tî7íO€YÀxû)a¡‰Ÿ¸�¾É;ì,"����IEND®B`‚IMAGE 272 ./arch/transport/turningboat.x11 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���©IDATxÚí”A C! D'ñþGn"Ý|3)ä-\ó3ØŠ¢ø Pó1oy7É�w›†ë‡ò!.†ÿ82ùH LpqK0Æà\2¯80HöÎãXÇ®)t¼7ÓÜÇHò¹ƒäWÌAR)’Cã%Áý@ëÁþ$z° fä)/°+‚e€©MXR7hè½ù|´,˜´¢(ŽyÝú$RQôs����IEND®B`‚IMAGE 344 ./arch/transport/turningboat.x21 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���ñIDATxÚí•AŽÃ0 MSÔÿŸ¼ˆPWAO¡ ì¥&rhÙÈ8999ùÏ ¾ý�"¾âØÄUü¶ èâ ™ŸÓ‡7󥀚·*Ì‹'ï<0<H²y-Þ)r3È@b¬ÌV @ϵ€>ÿYЇ|…U½Ïµ¬€Eµòvfš·ІÜáä2LH6qk¤ŸX$Ó ¢ H‹‡b%‹2-¾_ðÌâ Ð<fñu? Þ<”Y¼LàÍGÍnfN p„$Ú<0‹g„�0÷ Y÷Ÿ{’Ñçï¾ücœœœübþ�Åù;™‚•¤����IEND®B`‚IMAGE 270 ./arch/transport/turningboat.x31 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���§IDATxÚíÔÁ Ã0 Ð(ròÿŸ<ÛIqa·”m ü.ºT¢¡¡íC8#=Pgx°@,;Ûp“äP+¡.—‡£6ÏymÄÛï2HúÝÄY1Ò¥ èrè$# ¤ èˆ8Â7€dhÏ Jœöi`Z2 ¦ïâÎuÁ€ôQ¸>8Â*{=·ŸÎiõ ÔØEO˜v8a<ÿþ—XJ)¥”R¾ïƒb$§1}����IEND®B`‚IMAGE 345 ./arch/transport/turningboat.x41 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���òIDATxÚí“ArÃ0 Ä-Éÿ?9JjÚî-ëSg*Œ¯ÀH"=6›ÍBr ÖÇÍ/×gN®ÂC?“ø>™GBU¶DœÓLÅÁ§ ™Oà^íø](VÁ¹ Š{A%ð– )NT’À[&"8ü©E& gdô&xÛÈ[éó Áp`I3êÇ$¯@ J‹~ʲ bpúsù2 ZzeBûÇ[~%÷ÒC&\« Èd\UÏÂ/Ì:fù¨ ®Y¸I•о]PUqÍ¿D}fAÏ¢ Ã…$‰¦OàÿYMüè†ï÷5è<‚“ñŒÍf³ùÓ¼�J~3õñ;����IEND®B`‚IMAGE 276 ./arch/transport/turningboat.x51 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���­IDATxÚíÔÁà PLþÿ“7†4‹[çS|èÉB£¶J僽ßW f�((}÷Ä)àŸ‰Ë÷,�w '€Ð3Cø¬å‡ÀÃÌ6`¶ßËÊ4Ð °ýË|Þ£÷¹7†p‡kÛõ@“�æàßK (s°Êl@râª9 �cÎÏBô?…û ìk@¨@ÃY€û¢€– ØW…V©TnÌ ïA$±}ëù����IEND®B`‚IMAGE 346 ./arch/transport/turningboat.x61 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���óIDATxÚí”Aƒ0 QdëÿOnì–4GìÎô”e8pXÅ ×áp8TAð‹OrtÈÔA#Z Џ‘€¡•�Lß ˆ»‘ º¹a^0ª>$ºÃ‚L¨úp!ü•€Âìé;0–O•íß¾6ßK2}r%}‰>Å5@­? 0Ë„Î9ˆœŒšŸ`õÏ åßõåòMY÷%Zà$Š•?çŽwÿòÅ’O}Üíéߟ°®‡‹¤ÿI—<Z€íí9ïUh[A²�Ø–�HbË_ý_¥ˆÍßû«$ì?o*Nàé·XÇãê{ü.€Ó?‡¿ò¼Žìˆ����IEND®B`‚IMAGE 271 ./arch/transport/turningboat.x71 ‰PNG  ��� IHDR���@���A���VëRI���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���¨IDATxÚíÔÁ Ã0 Ð(²óÿŸ<OiF` ¯6 ~AA¢¾¤•;\yÏ`AyºÜ=(N´}mÏï6f;}23¼®²ÉÑíH<CG~»…Y|¥ $*¢Ç='$vm�– @i_Hö==ùƒ Opw].ˆŠ” Ð.ïÀÖÏGM÷™v„˜®?'ÿëe)¥”RÊo<�œ¢$Â[ÁØ����IEND®B`‚IMAGE 345 ./arch/transport/turningboat.x81 ‰PNG  ��� IHDR���@���@���·ì���PLTEorm���G$d3‚B' R-Áq8Eêû���tRNS�@æØf���òIDATxÚí“An!»0îÿ?9³Ìh`oin‰¨7—,¬ŽÃápøïÛ@çfWÐ?€ñž¢ß�6ì6`ï”À‹ ƒíþ¾3 VƒÀ&#%Û—À™RÄŽA UŸ|*tïF>uÿä†aôùiH¶Ô‡¶l‘•¿„Ñ¿-[dŠÂ LÍ-d¢�Hs‹ìÍîDð»…v.+%_è♢wS€=§ ùTÀÝÿE¢PàÙBî þ{CŽÒ^ ¢Ràñm –)VƒQ"s\Ö­�óŠ×0ó4ÏZ=?ïŸÍ¼b"ˆ"R‡?ÛD|¥¢����IEND®B`‚IMAGE 303 ./arch/spell/Cone/turnundead.111 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE Ê���ÿÿÿv���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ (7Ô+²���’IDATW}Œ1à CÍ@nðNC‡v&dàô4é¡9em*5™Šô­gÿß³H”ÅÕŒ!îè)‚ð…Zjûpc®`>’HÁµÒN+àaÙ�‹Ï7 Çe9A×1íM8NØ“bû}Y Íu]úÒæ>Цãu5ú6g•�ó|â¾p€ñØ8wö…����IEND®B`‚IMAGE 295 ./arch/spell/Cone/turnundead.112 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE Ê���ÿÿÿv���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ +6.!’���ŠIDATWeޱ„0 ﹪¡ozÕ8¡ž*¹“’×8ØñY{�sÔ´ñÀº£Ÿ/¶‚p,Ó¹¬{»ækiã…'âz=~Áºð*¡SæZÝá”±µ€FψúRp=CŸ­¦=Y¥L«BYsO&¥<Œh–3²êÔ› áGq¹q:Iˆ4‰ ����IEND®B`‚IMAGE 301 ./arch/spell/Cone/turnundead.113 ‰PNG  ��� IHDR��� ��� ���’g���sRGB�®Îé��� PLTE Ê���ÿÿÿv���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ .0º5Eâ���IDATÁ±uC!0qO^Ÿïáð˜.}Ì?R¨IÍÐm„YÌ ½Ó{�Â9œ“ö^·½×‰IzzREáÙ<;÷Þuï]9Ïvž-x ¡ŽXæ\äùð|^#XK‰úÛ§m`Θ¥&Ñ»6Ö îïÏ>qηwb]8‡ÀºW€ïŽgƒ¸ žÍ?¦;–Y>˜����IEND®B`‚IMAGE 219 ./arch/flesh/misc/u_horn.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���'PLTE���000888@@@HHHPPPXXX```hhhpppxxxÿÿÿ¢Å���tRNS�@æØf���bIDAT(‘c` 7`dDå `¨`fD•gu@SŠÆg?†lŠ�çŒT«N¢ò¹w/@uÁšÓ¨é\½Õ†ÎS PÒ+Pd9s¼ÙÝ&¡é¨v*»†¡ ˜8 zžI™aÐ�Ú,bžfñ5����IEND®B`‚IMAGE 233 ./arch/flesh/misc/u_horn.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���000888@@@HHHPPPXXX```hhhpppxxxÿÿÿ¢Å���tRNS�@æØf���pIDATxÚí‘Û ƒ1ƒmµõмÿó®üìr†Ý¼‘„ˆòËw˜)ƒøò•§2I,ª½8Þ±ïÒ&2ÃYÓ*$ßsŠ(à~d]‚´ D¹Þ=½o�<újkm'ÏšOBzMU3úê9õÍÿëƒ^.è˜ut����IEND®B`‚IMAGE 246 ./arch/flesh/misc/u_horn.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���000888@@@HHHPPPXXX```hhhpppxxxÿÿÿ¢Å���tRNS�@æØf���}IDATxÚåQ[ À0«­­zÿóÎÁ¾â~ ´"‰i°íàó î¾èeš WÍ>ÜhD…Çd@ÝX³¶—XÙ@…™ÊÕ�{÷°,P±÷ö*€GìbjžxW¢ž ÅÑ Á!Š žsIÃú¥ÀR0˜Ë¯î}`°öá�K)Œ¢����IEND®B`‚IMAGE 236 ./arch/flesh/misc/u_horn.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE���000888@@@HHHPPPXXX```hhhpppxxxÿÿÿ¢Å���tRNS�@æØf���sIDATxÚå’IÀ SÈ‚ÿÿÞ.÷X=Vª%’‡9äÃ9îEº{;ØíW'ô:zׯÉõŽ%$™áÞè«"=±÷.æ/`“:².C?1DU?ÓåÈÞo�<ú^mÎåäÉÆCHO U3aC_‰æ/h›ç1����IEND®B`‚IMAGE 223 ./arch/flesh/misc/u_horn.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���'PLTE���000888@@@HHHPPPXXX```hhhpppxxxÿÿÿ¢Å���tRNS�@æØf���fIDAT(Ïc` .`B$ @@9VyfT3XÐ4¤¢i`?†ÊçœQ€ªaÕIT»¸w/@Õ±æ4*¿sõnT:O-@1"½â$Š–3ÇPLBÓQTv ‡BÀÄU“2ÑAD7��Ü{bÆ)´����IEND®B`‚IMAGE 189 ./arch/food/uf6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���¥R)Æs9ƪƒËËË���¦×è‚���tRNS�@æØf���YIDATxÚí’1À ÄÁÿÿrT‰)˜:ô"&[H‰Ïœ3'. H@êÉÈ–U^t­ ow£ø6’¶ÜúÂ:ÖPƒsš ^n ‡»Ñ ÊÏ?AW âÏMP «TÏ����IEND®B`‚IMAGE 157 ./arch/inorganic/uf6pile.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE��øÆªƒ���Ö8þ5���tRNS�@æØf���BIDATÓc` Ђ1Ô Œ¥« Œ™³ BL‘™ jSÓV@ÔN‹‚(Z¶4-ÌXµ, ¢†K+ j×,˜Ñ+è�úüMæU•´����IEND®B`‚IMAGE 166 ./arch/weapon/artifact/Usword/uk_sd.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���KIDATxÚÕ± � Ãjþ?šJƘ£NµHSA¿¸AeD`D# 4) ÎnŒ°çMB!mÁÛ²©a¶ú‡¥`wœ¤o˜Ï5�j?µ¬¸����IEND®B`‚IMAGE 180 ./arch/weapon/artifact/Usword/uk_sd.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���YIDATxÚÕÑ1 À0 A­ÿÿè œ\§[¸Ò N¸. …DSŒˆ™Š0�èÈ“ˆà²!¦®‡˜®å¹VwxÙLE¬Zcý}Ú‚\P*¨kò�àƒ�rºÖÑö����IEND®B`‚IMAGE 189 ./arch/weapon/artifact/Usword/uk_sd.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���bIDATxÚÕ‘1 À0 Ä¢þÿÑÅ´æ†Æ¢k !à åLÖAÃÂ^!*3êÆœ"’ ÁdaêœiŒ€¾Åƒæg`¿F«³í7ÃËZÚÄU€ÕØäÓÚ1PÈ+ )‘…™ñÑ�zSFƳ����IEND®B`‚IMAGE 186 ./arch/weapon/artifact/Usword/uk_sd.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���_IDATxÚÕÑK À0 Q¿ÞÿÐ]„Ô"ï3d0©‹PÖ…e úž2&lck’!µ(˜šèÉ=­J U¦† …ùOÒ´þp|ïQF<“�gÃgœ3|»ØÒBê^ñÑ�zé}Ìn����IEND®B`‚IMAGE 186 ./arch/weapon/artifact/Usword/uk_sd.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���_IDATxÚÕÒA €@ CÑ>ïhWBqjÆ¥f5O&Ö÷äÙЀ£äT±‹ÐüÈ3PEêЈH¥Ò\4v�_v ¯e¿kY÷˜|'±(;bÎÐ^¡™©‡þÓotñÑ�z‚Œç����IEND®B`‚IMAGE 179 ./arch/weapon/artifact/Usword/uk_sd.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���XIDATxÚÕÒA A AUþÿè°§„…ô\7ºº±[Ãìyñ{ 9f¬CÚØ8XŽ`£>DSõ~ªîÍA\Hº-ç¶hÙAÿ/)Š&wì"BCyø¾ô7yàƒ�r³â·‰����IEND®B`‚IMAGE 176 ./arch/weapon/artifact/Usword/uk_sd.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���ÿÿÿ@i$/���tRNS�@æØf���UIDATxÚÕÏA ÀPQ_ïè.JA*ëŸ8˜±ŠÒGP*•³�^B$2�©éÙf—B#Â…ƒÐ,ß²‹,;¶³Ò%вë­EóÈMÇäØc�n{›c����IEND®B`‚IMAGE 113 ./arch/floor/unholy_ground.111 ‰PNG  ��� IHDR��� ��� ���I´è·���PLTE÷Æ÷���У ���tRNS�@æØf���IDAT[c`@�æÔ'˜ÿÿ?€N¡ �TVM˜âHˆ����IEND®B`‚IMAGE 498 ./arch/monster/misc/Unicorn/unicorn.x31 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE����c2�1����þ¿Êÿÿÿ¿¿¿-ŠVæ¿­µ���tRNS�@æØf��‚IDATxڔᒄ ƒ‰iÖðþ/|”½Óe†ü ØÝ~m`´ìˆH¹/TŠ�ªl+²ÒF[@FˆUû�NŸ–ñt-Š|ÞÀ¬‚í,÷ÉBŸ}ó*ð™ À€s Xõ‡åçိÄr®ž›å›Ô+2^€#ý³ÕvÆ�H ¯*‚Sü?AS/¼�ËûöðŠ&Í3Õ³ÿPÂGE´Ô!F23wÉXÄ»‰¡[pßû®Ï'~s€1B2U}¾UW`ßÍŒ®Ï¬º}|޲<d|kf±ð ©ÌÈÆk„±�dgkr¾ ¬tÆX��C·“×ã·qkÉsÞ‡ºuZeð&ôÓ—¶¯AX¶ø_ÏãØ©ì+x£\~¾Ã“‡ÿýì…$ƒAõ2µyŽš«þæ‚IØìA#…| °7ðëõúv«Û¹ò{·`wçê=Þ=‘œ9¿ŽßþeO½³rœI.>…ësð!žî�K…Ãÿ®T%¶ÝÁPÉý7ÿ?Ʊô¿¸†^����IEND®B`‚IMAGE 504 ./arch/monster/misc/Unicorn/unicorn.x32 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�a���c2�1����þ¿Êÿÿÿ¿¿¿-ŠVÀ&,���tRNS�@æØf��ˆIDATx^m’AkÛ@…Õ`ݫڮ”sÿ@ ¨7…Pðq…¼ srzL~¯G'Á39—B~nw‚$ÖßaXÄ·ûfe)zªŠ3dÇvé²”¯ª÷%MÈ¿O…ÜÇê½þè àïüŽSañëRµW ºJfB=ĺ{ˆÀ“°…Ÿ·å«½@VöÅð¾|«¬‡/P ‘µ}1ªþü»³¼ýV`÷Áo͘¿i…7¦n 8²ÉFöYç¿EÐp6ú;9ZæÌ„V•†Md.䢨|‚a)«lB» x«1ÃTð”À,M˜p5¦¬À3a±¾+ ŒœŠ"Kh1ÂÛ,¥Pƒ»$€�kœ¶[áç4Al îâŽ68%Oô¶@j¯xv a*Xþà}º|wQ�4LŸ×l®„M6gQ"°±]öІ®L§\Lð‚µ+%-”þ÷±yrá/O×ôtÓc…c¬)^ÂÝ(X{)èÏÖÃþ²¿ãµ œÿ(qÅópa ����IEND®B`‚IMAGE 528 ./arch/monster/misc/Unicorn/unicorn.x33 ‰PNG  ��� IHDR���@��� ���P³c·���!PLTE�����c2�1�cD���þ¿Êÿÿÿ¿¿¿-ŠV¿_&‰���tRNS�@æØf��IDATx^mѱjÜ@…áIÖ¨ØJ9»#·@:™¹8l›'…0 wé–tŠ Ÿ[â{· ©ò–‰¬‘%±:àãç2Rç»ÑÚëÔo.¶Þª¥}ÌþÈUžì¢T–Á‘ÛN+þµ Ò»JÔ®/nµT MÅʯwYÿ™€jí4»ÄÆuà Q8M@% 9và-H€¦…œ ¢¿`À¾ àag]s§Ôû[0ú íÉ0ˆŸ[ë†+Ê !f¢¸vñ²d§Â>¡›øTo{àu ¯†Õ aü4xÅ*’ñ_8ƒMMnZ«"çìø’ïŠUi« PK»x¼afM¶�„0¹·g æ¾Ðò³ˆÏ.0!Ðhü<}f€KÐoašƒ5Æ%ŒonO÷3°:�W�²²,] Š#>Î ðZxÖ¯Rxk~Ì +C"á"5M1¯ñ´ÎÞijB¾<ÊÉVs°>ÄŠ›ëAÔTDúz^8Ú|ŒîÃ+Loû€ gà"'»‚ àKÀ?ÞŽu¦K����IEND®B`‚IMAGE 499 ./arch/monster/misc/Unicorn/unicorn.x71 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE����c2�1����þ¿Êÿÿÿ¿¿¿-ŠV¯ÿý���tRNS�@æØf��ƒIDATxÚ•Uެ0R†ùÿ~-gÏ»ó5Û%Q 3VÝÂf#[rCNƶ ž`3(ÀÂiµ°×:TÜN‡Ž—IuÖÕØp¨[4˜'ä-XÏ`¶)Ùõw0'³4ÔY‰ý ÿ.‹“d¤.ù×!¨Ñîû>Y”;O›–ô;Ôan”ç#C–÷ è†k6ší:ªaÑá÷v«ü³5M¶té)‡Ò‚³¾ LFpOèÌÀ®�#Âþƒý5Òßx9ÐKò¤øGûOH Ïw§5•'JAÑOwA&-œIòD^ŽrOÂIú+Õïì´lÎ_'t£øEÜÞàênê‡Áð(ý™Aé®ùÛÁµd ! ƒ½ôP¨ô÷qˆï™²Ž Q(�1‚“é½Aô¨ü¼vÆFk L({ï6áÐÚ L&6¿¿øãúÂËéµ4Þ<D¯$ÛVÀÔÚ9ºèÊòkU?>ŽØêê¹û`öæs@#Å@¸+ý/£òcf£&êëÂ9•ÿs£?ùˆ„����IEND®B`‚IMAGE 508 ./arch/monster/misc/Unicorn/unicorn.x72 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE����c2�1����þ¿Êÿÿÿ¿¿¿-ŠV¯ÿý���tRNS�@æØf��ŒIDATx^uÒ±nÛ0`"âÒ-SƒŒE¥Ú Ã@àÍH9T/`£àÿ UVþ³Ö¢mЭpÔzÛŠ‚Púä‡ãÝÆæ­1&ú¦S3ý¾ €åê·%À“³î¡H¿¨s¸ÝHc•�¨µjîÁý*=¥# "¨‰­Yeâ<<€@Ðy8)DÀðQ·á¤y.{É'Ž5 ë6ýx¨ î½ ´_‡ƒ+J{™LÂ0<‘|¾Ae6€·ä¡§½¼8Á[ €ªm¶¡þ˜? ¨ÄÛÌÞïQ=Cl[39Þr¨H] ¾[Ä‘ìÚLÒ÷]úþ¥X™iÖÌb3„( D9(ëu‡Š�±�l‡‹±Ä‰aig€²²7ÐZÇ•ÖspÚY"u.t$”ë„Õn؈b±B‡Ê²ô³_<(Wó)J«ãü�ž0ïògi ˆ àø2tøÅöUüÛw<»¿¥YJ±÷ @}õº lçÁPçÍ2Ø„ŽHÍÿƒöçè»ýö¸"Ë¥„����IEND®B`‚IMAGE 532 ./arch/monster/misc/Unicorn/unicorn.x73 ‰PNG  ��� IHDR���@��� ���•C޶���!PLTE�����c2�1�cD���þ¿Êÿÿÿ¿¿¿-ŠVé!r���tRNS�@æØf��¡IDATxÚ•”r#! CwM…„þÿƒ/rGoÉ&yé„L=[6 ¬êòX,ù܉ãc É8aE³-â,_@TM¤X ¨¯:¾Àd;‚"©L§…ü@m‰;¶!Ùås¢ïÓøË<пÃë!- bïMšBÑ}8ýÏ&˜¬T‘_d°*PR_ü7>ÿ#Wü€‹ÂÐX=(š1Q±¯e:Yg¦MKȈ†Mý+Ò<ÌèóÅÊúìè¦êcæ5@8œ5¥À´á¼tÂ"Ç-àBµ-gLk¤–Ý]¦Ò§‹ÏFà"Œj¸eÜÀã÷íDîÈ«Ú{Z¢×GÓ®¥¿ ~1Ÿ½ EÚïïå¿ð²]ñ[Az+€ÙÁ\lÿŸƒßù�eŸ.¯ELtþàfU�×,ÀÜÒnü…9‰2%?17ÁzSÅIzø ¯=câŽî2(N~þï:Õs`*îžõ§@\®I<xÞ ]@ëx×§@¼öÐF¾|Â&F*j;Þ΂Ê&»^<Bd¼Ød�˜l½<uîAĉ‹hž<ü¹¦÷âÁºOÈJ����IEND®B`‚IMAGE 8458 ./arch/construct/town/university.x11 ‰PNG  ��� IHDR��� ���€���»½’)��ƒPLTEÿÿÿj #x<®2¢R.~Æ‚ÎÎ F –F´c5ŠêŠKK² ’þ’ëˆG&¢¢2†\-ÝÝ~z‚¦*2¶j6*–Nâ⺺úútK' *bb®®®¾r:–пV^Uvv 8Ý76Æ îîî*¦Njj^ÇUÕ¿ÕN2„„:̆?"V:66ÜŽD¶Þ ŽŽŽþÖš®^2"š"ºººR"VVÄU ¶v6ŽZ"ú¢Nf3ÀÀÀ’R€~~¦ Îj:Æ|<ÐVVPG,nònV¢BZB"EE¹»ªªþþþ¢¦hj4‰‰`±¢ÞÞððÒÖÎÎ’úúigh82/:öönõô¼øñÆÆÆ%«¦©òòNöö "¼¼œšœÖÖ֖ª@@@êêêòòò&&#Tƒ]Þââ¶²¶vvn^:"6.PMKÊÊÊ:jV6𒂆‚ã³cG���tRNS�@æØf��5IDATx^ìÑ7rÅ0 P`ŽÊñçìŽn©]y·Ý‚ØìÏóŸÆ¤Öd�¥Fõ ”²Wφ!#ò ¾ 2\¯çhÛ´µCMãÛ¥mÞ:'Ö{!º†ó P*ðS˹]ŸP‚禼mˆ€R)m]§€� suS3 €Ä°É÷ E´n¾À–÷'‰‰{-üâCK31€ÆàE\íH1z$ò-�ÑÛÔ«ѸÄg4 7-1y ª8šÝN`̈R Æ&Э×ÛâqhßoQåºïî÷ãg²/¿ï^œ2²¼<μ{JÖoû3ç%¯*œ×ô‡nþ@¨|áÔ.—}•þOǬ Ã@†»ti§!k@‹ÇNÁÝRD@ÐåÖ)ƒð`ìžlT!â€zwè$9™ôÞþñ,76úHåâ 2>ø¨p¢bb‹LÊGçÞït±BŒ¡ktúE¸G¦ˆå’ô[Ú'lïX.*çD[(´È8iN0¯Wc²o9?’Ü ÐÈøÆÙûšÿ€’îèâ1Ócñ2eÏ s@YÕԨؙvsZéðL$h·y=Üs§#ÑæEUˆØSçç4Á–:¾ƒi;ZoœnšçËÛösûõÏóJÿPî-i£Kû?.®E¾úAÝ.xö`¡lEWY”KÜ44À! å²Õšjm÷­!ÕÛœ¤‘” lþôßL‚Ú‹ÛO‡†ËºÀó>3óÌÌbñÙzøY0¦tÿ,¬âJòÙÑ �<!šÎÿ� Ö·Ò"7B€m«ÇbµDâ‡ÿjõ.'èéJ¥ã/<úë/�š#…ë±ÿËfb±òf­™ÏÍ @9¶~�P™gÈqÈ 'cõr6WÍU«Õ|3žƒgͪ÷ªZmæÜ£ÙÌ×TNà¦ç*¾Ê–¿UŒ<ú_߉2J;e¨år nWwWþ3UBêÁf³™ Ç F8ûŸ’vRצlDºNzX—Ê4ÝLé<¤›ax®â†›t°Z¥éT³.þŸÐçFezŽmE66&�“¥ñš¶i曹fóâÈåš)8¼§+•%Ý|.Ÿ¢›Ïbíá„êrÜ�Žd}Ðfl~@Ƶ|E>‡–Ç#ŸoŽSpŸCkæ¢C]°Oç:þL¦‰'&MJƒŠeÄÂÁ\¸FÃzâp¤Ü#ÌŃ4,3•ÊfËê‚Íp°™/–zŽ‘”9ùŽ´¾6t\܈ŒØ%Ñxª¦S9ä1žŠÃ³T¢,3 ÿµÙ¤ãÍfýÄß™_;´ÀÃZâ€Ñ(* 2à>WCt¤€2`0ÏÃSx¬ÕËÑ:ùO°Šœši("¦þ ¯ëš8eLÑE•DS�) �î‹Rt´.Åb$»YKá÷¦R.À‡þÎç€ßŸ‰�à@RlJq¤D<•OÅWÞ ëWÃ�>/UÍÕ†õ � £·ŸÍ@Pˆ¢Îpö?<Á–1IÈÐræ›)Dw#&N'b±z4JèD–z©«¶½×Y8 ø|l±XŒ´"­ê¶.¦-™R¨rýHxÝ@‡ñÈ…i×3‰X t3S%øö2©7Ð98Ô8]$jüXƒ‚†³1© £¤Y+›fÔý’:‘ŒáÂi·jd"­L«yœ• SÔ8²ä,Z½¤p}Y¤J*‘­Ó®¦Âƒ»•]¿ýzÑŒvš‡ µ ²`&RyLB`/Ÿ‚^eëA°(©¦¢5X}*ßL,–J¾Š¿µ6·`F6Z¥R‰� •¤buXkº¤ÅÁ»aX)†tˆÜt?c0Ž¸Ë•P2?ÐA"iÀŸìäô4¸³E1FیŢ4À£ ëÜÍD-›Ž‹l ´Ö™{`7Ð C|•¤ÄÍh=\€)�˜¢«@Ô®zÌ]nbÐÕÁ™JhZ”‘ÁDŽ ¬'EcÝ0¥uI2 ³Ñ gÀ&]­Å9öEZ­B‰t|6Àbš´Zâp`ò [òSW:ˆïKÁþN�´Ç`è…$™€èâ—:ù‚A}$Z¶ /my�jõð]¸Ä,×ÜTI…m@¿ºj�À9Ö8K4— 1D£ws¨éñ0è`<•¢é|8QGþ<€À'¸Bÿ =aÐÖM^˜XªÑ•Ñ�0NcØGUR*¶¶á–Yv9Pdß´˜t³QÒ®H5!ƪžÆäð1œÊo–/>òRËÓ¡³0�etÚJßR 8y†È¾tq<úVîN‡ZàØLëyô—•åeÆB Ð ‘>N†,«åS(RžPU‡«ÏPÀ³åàÄ²È �¤]?7cÐÔ‰"(ë„=½MHøA<‚ Ò‹!WYZËÁ`êykb™’Ú7 5'fÃPµsÁ`¼¬AZSqx Ci'Y€vÉ`c0�Ý,¾Q š a´ßîÜ%#}D�à× ¢nÁÅ‹¡¢‹‰-4s¿\â3“ºIÎ,{-[õšÔB÷‰÷�Ç1SCz7óõJé ’Õãüú€´mIjÇ`˜Î=ËåêÒó©‰)ÊÇ•B¡€•؉QW F–$~7CA1›ñp³š-ׂµ/cS}¦rãD€DÐû÷×»Šnˆ _ƒ¹x9ë¬*p[uï§ØåÙ ôÅúпK–-e«ˆŠF€-4�„tŽÓô&T¸/]L£ú<›©”n‘Ť+¿Ý3‰&Ø£ó@¨/à—ºÄ+ZÒIr ¿JiS¬çn_Ì€¢áÃÕ“fBô¬y1˜C·y tûAA"`gR6°vƒ)èà¢fZ±aÉš#¯2«Ðu1�3cKäz‹¿´,Æ „ Äà­²XtÔ2Aj2O¼OÌÓA,vY^A3–,ÛÊs@‡VœšiɶÃéz¿¯Û¶Þ?{»/tk¬ÎÐôÕj½Z ÜbŸÝ<‹%Á3]“òàû„Ì¥ÊæÜÔó•••«œf1{S+®=—È3"ÚJWzŠ£Y‚`9” ÖMzc»ü´/k1Ä º˜¹)ƒ°r¬mZ2ƒ Ö¾ÖÁ&È ê`±Å¶2+«I‡Aƒè°¸UDMÞr nI1,•»„ô–“^`F¤ ~•$Mì \¼MOÌdln@&>¹r±ƒ�°0—i­(¼µªi ¥@“ä4B n%N žÜ{B Aýõ>!Bû>䜣5#ö @ŒÁ0èàôm²ø¸:‚dDŸyÈ.]ƒIdCjL­Z@ ´8Îâd¨ó¦ �AH üt�ŽîÜ[€ä `í À<v3›3xiØLfºm ’ܵ1½{y¡Ô|…=™£8ÙRVÑK#iΩžõÇýß×%¿sg}È;Üyb¶©h3ðËJÇRŸ¹Y%‘' ²Ø¥„Fej2¸éû¦lƒ ¶Ð*~Yµ(†c¦Ð>îñ"áôѨ/ŒÖB¶`NêB†5ä8iüÆÅØÉ^õƒÌìZl&4=àC�x}-ÎGÏBì2û¸0µ žå¦X×Z>UÕ­‘¸$ˆcs<¤t²>$éÓ4Õ3—dÎs±·àš×ͤâaÔÁÒ-²øD­Z䵫] uíª‡Ý¦!ÔÊdØÖʪÌÉ ÔB …Z…ò8ÐáÄ%è  ƒr_èƒ(X" »`_' vG©ÛÕâã"\�w‰ºø»ÌÇsÏÊn7“€–fÀ��ÄZ|²D‚ ñ¼"²èðKÂÏ8¡×6tàÕr‘Á8ÎÈ¥Ž¹Q "@è<Ïøôв9þ»n¦™šè ü_¨ƒ…�×Íðs¢<è’‘.ÿ±N×מ2è'EHwC®BÚ›‹ã4¤Ü­tð¸Õ °È ÁÙÜ?Æ ÈL�œÂb‡�¡™ñºE`Ú¿Þ%†åüþ+!:u÷§1á“écc ¿ÓÁT8—+ߪZ… 0ˆé ÒWNA€Í8(CÞA¤ ä¸ ÚÄ´»?= #Eüí'Bdçî¿� †»²%Í„¿ˆ“ÞU-¾ƒ/IúŠ8ÑA„ýRsÏÀÅ�(Á$áV§@ È *ò=ƹ§+úÝ»Kþ{¿‘´3h:g{ ^99‹.†½”™Ûd1À`Ÿköw1ˆÁ2Xle³P‹å$0˜¹èf!½~gLIãÁx%=ZÇQôŽ˜Åê· }°B}›ŒxYl‹CêŒÖ‡5b01ˆ�ÙÌŠBq”‚1Øõôa¯F™ÒP¥¸ÑPêš‚hJãq’‘8“¬öe?Xçn9·<îP±1£ðʱ,·Y§ó¨ƒØ,0I’¶Å¸Yœ)d|1YtËJZúgYŒ%È c1bZ£ bÚÌ…Ì|=ßXå ƒPÂØ‰b bÇêÂ˶MÐêõ&´ åE‹Qf™ó:êLaÖ§‚:E9>8hEÛš˜UM[–b_Êþd0…¥î†Y앺e™è )ë—:Íf¥6'€i£`ÝÓAŒ;79ˆ/K]rÜívÕã.>À<ªÝÈ©\7uêkúÁ/çâÇ`$„�“ò…FU’î ž)„ÔòAÜQžá!1ÁØÏ؇+F¾²éô@ª—Ƕý5À¨+3°-÷ŸzåVY\2ÀÅ]¨ƒÏ0˜»Éâó¬¯gëedš(upóDˆx [þÎÚüÜ<ŠOd—”£Áìµ AÐÅ·®Å(3š¨�ƒÏbꦦ Ä4ßäQz„~fêq¨hÍf¦<¼6Áéó•Ö*•³9„—‰L5Œ e�z*X»¬Å¹ŒÏsñûÁ ÊLŸ‡nf@Ê›†Òc~ï’¡Õ¡ºR"”B…€ƒ |¸Â®<zTA8»ò(ðhÅ×9­ø*eÜw]ytnÎD£YQæ$lX£ßè Ìî·˜Idƒ¨ó-+‰Î›'ªdIdó§;DRø»ÿ&DдµP13‰A¨u` s¾p677§É««ö#¶Ð¨tÅ œ›X]Õ•p4ÖÖ¿ªÅµ ™‰ãLr#T&1xtÙn'Ý0öd f‹38apPi`JÌc "ñ²’=^[(ùÈ<dÈ£ŸÆ …VçHkcÕÖèhÌÐåI%©}]‹sXên£ƒÝH1P(-ò¢ª%G±  Ž%ʹÕ•ZB€âôl t:ƒíš,?º\ªLûY8[ò×Çç~ÿœßÏFZÜ\ÿ(ç¢eו䛙Ä=Õ¾Ýþà1› °n?¨9¢‚pxóÉ´cý.!º«4ç%ö+Ù‚+ÔJ’“÷ü¥9_å²­|^[›Ÿ÷‡6<•‘W˜–mÛ¶ k_OuqÜò‚]þÒ túb&Aó#Í <å“$iÈs"Y³�³6í ‹Í'S óñygÚvŠiƒ*è_èÌ7|>6’)¶Š‘‡I±nPŒfˆúUeáLùòtP¹¬ÅžÌÈ%i‚k½¥¥“žÐ럜¸ø„˜$ƒt(Ø~;Ÿ ßFqºÏ!Læææ­b±£J#š¶§ƒW¥ŒóAÁ|êv1ˆ•ÄÍbm¤LÔùD4 ªwuBÝ7ë Ê̪œd¦ ;ËŠ¯ø€ÁsÿZgÍW ç\ŸïS±Å1öƒôe㦪YQI tð¦3‰ÍÈ^% °-ÔAGʘt>KÔ‘¶$èž×…¾ò$bpŠÑlù+g»§}¡H„-"vÙï÷—|¥³9às#²;(Ž9”¹¬çb:˜É®§‹ƒDtð–3 $12“"…sO¯Ï'èa=:²údIrIÛõTH¦EÖ?PñŸCØØx�ÎûŸúý•Îü\��n,–eÓcŽÖëõMNû6Ãõ—œÍ(êà­öfЬÛFÉôÜûlÆãÃDÔP´'?@ơĠLc[Pê>²O‡Nçæ—ü ÌŸ®ùO§ý™ùL$R„fÁÒ$b¸1%%“4[×eÅ¡t]w6iú¶s±×Ž ¹}çW�8’èÍD31Ò\¡N*Ç…"Ëf Ù�f±Û²¾Ý£EОJK\¼B¸\,¸B8ÝÖF]�Å3Á˜Ê'¡Ÿ=á4ž‡€at™ÊÆÈDo</@cÀS÷ï< •¦kCºš€1èþ}":Ÿ0…Á½B2œfMe d·jÏÙâFþè>Kk˜1P‡$ .•HY¹^ïDf’”FieqºÍó±é‰Þ,‹YÌâ1¡8é·»d,tkÕZ¶*µ“éàð±Þ…jˆ{ ¸õaÛ8“@YØ@€]†´€?>í,ž6J•ÖÈ`ûAÓttYkK"H‚f÷áNÖÑúB_,ݦì¢Ü†ŽÕ¤-­KcCèÆëts“gÄ¡¡õÑnc¾1Ëâi‡†¿ñ‹¢Ø$ ŠŸî? ̳E? ¹©œvü<Ï ky©­XšÁË:àlxô—„<;„Q%Ó¸M ²ÔA±¿¤hŠB¥¹M‰N¤å^*ƒn·r6 öôÏíÝÝéŠa` Â’‡Y™e#Ël{ÈâóååÀEGÍKæÈˆôéá»v;Géô(- zzdhBϬ»7îfP¨±ˆMqÈf"¦fUBFÛ˜ŒEQ%„l=Ý!;¢h[±¦€¶ûts;j÷`C¥P¸ÌºI½ �¥Áˆ€í¼%Gké‘j‚`QKˆ±¯¥bã:H]Î$E™Eâ™JÆ0þŒ»Ä³1!¡'á¶¶Fo{6Ñ5eªÅ~Šçî±”«à ïLÄÏb˺;j·eAA€G;æöAhßùéRIòï!Xà [lL‹²|óZ¼ÀDu-ãdžqŸ¶ ó­cXòðom zoÞ2D·\cÊ4–á‹taíØ_(6æçØ ,ud¬iˆowçhõàÍ;{ú5Ô”ñ¿»d<ƒ=€Æ$Éÿ•ÅœÇ Ù]Ø©l=Í€š!È#Ë6Ç= PoíÂu)�p?‰ ~d½°ðè=™õZÉÌÍà 3 15Šìt·¶^Þ¼;4ưwÍÿgx']€AýRÉñÎÖÂËÌb²EŽàëŸBGŤ§X–/\ >q,ñ[[»pUÙÞÁþÁÁþ'�h}dgYäüÒŠÅÂo¿¬< DX– wMÉLŸÃµ>ð®ƒýýƒý½3€ÌðÃ?‘¡p ìs1Ù:êá\ãb/wŽº;Ÿ·_nOœÌiš¥-/?ÇMè�±ÚéGpMÊ»ýý‡Ââ3x¶ÓÃߘEkÀ<ðœŽÿRl¹¨#‹¢c¢ww¶>8ü°/œ|>VÍ6ç¨ã¡I9•YØ»C€¨ƒ.À­£#ÿöË—×ËŒ„©öz/[{êqªª¯Ú«hºB’Œ*\’òápÿƒðþð`›è|rê‘÷³™ ™Xéù³üV üp¾‰ì‚PÒ}õòõ¾ðFxw°ÿó%x†ëˆ\e1ØÑ«÷xÙÚ‹ë+ÉÑN÷ï7ûBïÝ‹W€®8Kææ>=ǹÍÒ>¦ôAÉw𒘟÷÷ßõz/I_=XÝ,t£êf3W]'kD"­QÖ†dëÕöÛmÈ`¸Þëðç]¾¤J�pÚ[ 2ˆ—­½†ËÖß¼¼à§-ø;?\W÷tÖWòôpº SïC ˆ­ Û/Þþ"cpŒŒ,4Pe¼A³&‰fµI'õz¢¢¤^wÎ ªÞâª>ì|8xxÆŸð÷סŽòkØ[ba¸ÈbU¸l ¢çýw�ñü/7wyÙÚ‹—³¾S�¸p^�þ©¢¥ �8ÞÚß�º¯÷WIy\^Lѹ&žs¬Òùj"–•È@§L¸T .CúpøáðàçúÈaÖý �ª¥ ‹µýŠAH@¼*ìÃþëíï;jtñ1„ʰ×/žfÇ!â‡øßØø+©QiÉ–uƒt^l¿}ýÚM’½‡ñ€Ñ—�7«t3ÆÓt> „—a÷Õ[¼Ö ®ÉÜ?سÛ"óäžÌ— ¹—�uÇ ðþõ‹ë”?ou_½úðÁzK g§]?ÆH¤ˆ¿Ó:é².µíí¿ÁY‡û'Ÿ h_1l4¢S0á&~]lPSÛ¿üû@x×ÛÛ;\2Èï?ÝUG8<dpc uÐsññÎñ–KÑë—o¯Ýú8?ÚÁµ¾?ÿœ?õÏ­ÍÁú°-Þ`}mÜ ?k _€Þ½ÿ{ïaO°Hð+£I½‰´¥è¸ûó‹0�ÈÎHöàB¯÷Þìí' Gix‹—:.ÞÝxñ º†AY6Ž>c޾}ñg‘=?=_~|V�|ÉÉÀ`Z>|‚L¸.þ6›`©f<˜Ç ÔœË`Þuðþõûƒ©CcG&Ï‹^ÛÅÑ¡Áí¨e7‹ç^C/€ƒktP¶4C|øyo{{ûÏ?[…Óŵ§‚ƒnb„:<,R— Qlyïåö”ÌéºN}f"5›@"n»¿B&Û‘x]fäϯþ¶a:cŒ à’üQ&€BÅÂ~qup¨ííý÷Å6\¶v-@#mÙ‡ýóR¡ˆ©ßét!\"¤Élg\ ®t&If÷ê—$IãoctÐý n9‰A†Î³³3ix¼x†ï2Õ±ïU#üì傃تÔ*^¶¶u}7£'»"t¸ÿ,”µûÇþe&5´YƒÂ3´ŠFÁ  Rw™êਫªJH,«Á–U ÏHåÃt“P”H)Šû.÷NVB¥P©jDŠxcÙH£#Â( ÷]¼lÏþÃLb‰mª/êt©¥SŸvF¥جo¡ÍCàJ¸°Ž¦éDybõ4´Ëp´›u°rbÓuñèld _˜nTB€!–ÀðÁ·ðÿÛ7{Ùm(�§ ÛÜ" CŠ®AS˜-niέbÔLyÚ’ £bвðZ?zŽç'»C®–}€ûyçØòÑ}£ƒ kµež9c}�­*—üc'»±…+œ%ʹI-X¿µà~®”rôZ Yï´›sû)çþ¤‰E”"AÚýH!tó«#ášíVò¬=¤(IDž¯È³¼ÓYŸØ%¹Äy¥ÿËçc)v˜Êd!Á.cSʸÿ õú;â2Bk²§@¦ •$¨ îåïÕIpÝ{0KåŠzÜ\ž¨8nÆhó:‡ˆ- ǃ†o‡£†V9:½Y ŠIMãÈÃÐ%ÓÀ•ÞDä¤öräI,�Wù±îm¯ÍY™ díŠú$­…´1¨E(üðôÂùñp0`x;ýfÙ§qK;QM»Ú“àNPx¢° FQ»'i˜÷e¬@ À¾<K+¾¿w¤IÉ^¡o“/Þú”|²÷󾉨¡ÿòò¢’:g�'|ů¨œ�V7¶L«~‹ œÀˆ‰Ç5vPÖ¨bŒJ]"m÷Ýçxm:~&A·Î®Uó–\L3ï„Úƒ“ _Àˆ©"8ªY4�ƒ1Š1:•å¶€ºîÿ[RššwºÎC«é‚ÆK¨Ì�š­¨ Æ“ØÈß-?o–õôèðžÊ»a´…7ìöІº2@âN{HÕÛN”|L˜¨%åR€[h¹jáÒ(u`'µUIp':®<„kG ìÚøÁà`”ùAò*h);ÚÅKà¼X`§EìŒDd@ôˆ£@|›¥ÉmlhVK~h¡ ÐòƒÇê&~­ ÁT^=íìòü²µ9 ƈ† 1ï‚D‹àìMpáJðãñÛ¤¿?ŸzôµäÌ� ±*¨´žçÚÌòÄKÊǧÌùáéØX/ æŽgÁÎ 58vÙ.hà ªlÀ¿8χ§\¬Pd±þ¸33`š_çXÀà¯RëøÇºAY¶Û·¬ë˜8q�Ë™}Õ™e7Á…A¡€€O_Yþ>Í :„ ƒX,�«N Š© ¬zE£TÑ œ9ÙyãÎ�$&ú38‘] 61“ ¢ÒŽ" ž+~ã æºàÒ‡`ܲ=Wl°¶„Iè@íÀñä™6¯Øøåœ“6”7ÁgÓîýÇZ[lࢶ‚ÊÂÀ)~ðènà±¢Œ˜Ÿ…Õl�Â(Äíì\ä-„mÅyC¡”¹ š6p#�ÁXÅ/mÂ`ÝsiCYæ~"Ú(Ü ƒ~‹'ÖxËW>L½&?Œ(qæý°Ej̸¢2=ÕéXùò0c“rãôHsy BqÛR¾.È-$çu~c½µâŠÈ[xǶ➊÷%s^c\ï y-²’÷ƒŸwˆq½T}$Îr6üüKÜ´ëyäð.ßrU1<F¬vU ¥t•Eä¼ÔÓòñIS×O5¼#põA×]àÃbò¼~]󤯭›&ÊÏ N¾ÒЛòùcYøzÝ·=¨Wü\y}Š—Ý¿àŸüä_ÜÛ@Ó»ÜW����IEND®B`‚IMAGE 394 ./arch/misc/unluck.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4V-ŠVÒi¯/_��c2�1�ùqcDÿ�����þ¿Êÿÿÿ±!!¿¿¿T�ÕU���tRNS�@æØf��IDATxÚ­’ánà „Ë5FìÞû¿míº²ºEìÇ´“BîÆÛÿêtý ([€ ö�hŽìÄ ³G•¿‘B÷g'$&lž‚"®õ­ …sõN@8Ä5>\!š©+ûQ~„p@íXkiõ£€F€¦÷åzLO);ò¯:×tùà5 €u°IfÓË[üu/áÛ×)4HkMÍ{yDt™ xС�ˆÅ”¼mཇû˜@ Ùi¼†ë˜Z©|¢ÙŸPÄ0#…ªQÉçò³ãj ïåc|³ëÄÖ„-×ß®À€©œþöQXGø£üKÊÀÇþ7E2dþžçÑ5eWx����IEND®B`‚IMAGE 252 ./arch/monster/goblin/Kobold/unusual_kobold.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEµÆÞ����)))RRRZZZBBB„„„½½½�!BÿBŽÒ{���tRNS�@æØf���€IDATxÚíA1cgÓd÷ÿß--ÇÆ=HX#¥ÝÇj·pÔ@µ]àYÔÛ%VÆ™w¯@HgN«À…+‡Qœd§ÿÈâì™WhN)ä”ÔNØÀîîx“› ˜•±¿÷8ªf@¨º 0ÊcŸñh?AÖŸ/^çË™0����IEND®B`‚IMAGE 240 ./arch/monster/goblin/Kobold/unusual_kobold.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEµÆÞ���)))ZZZBBB„„„RRRÆÆÆBÿB�!îQI���tRNS�@æØf���tIDATxÚíPAÃ0 2˜¦nÖüÿ»‹ª\‰Ôë4,ÃÁKį‹,€¹{ÃؾHil 7nsjWĤè g€]¤d#X½—R‡‹¨,U)}„Ø@ÛÚ `•©(Á9A�&…WábæW1s©3™óÇ{|ǼeY5O����IEND®B`‚IMAGE 163 ./arch/inorganic/uranium.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿���\IDATHKí» � DÙÈý§ÃˆW‚Ä„gì¸QÓ<†åàQ²àe`W6"Þ?oaé»CnŒK†Ûä†x*vˆ[@"6ˆ€4œ•+z Cròƒ÷¸“+EyÓ|Âq uÏ?&¨����IEND®B`‚IMAGE 684 ./arch/jewel/uraniumbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��eIDATHÇUÛ–¢@ ̯ìÃΙ‹7D™×^›ÿÿœl¥ºuuGgTs@äP•J%D‘³O+ÙI'?軎õð I�<Ó}Õ7íê ¿Ã£Ù þ zÚ׎fÐÑ>ï#÷;rwõð¯j¨¸‹ä 9@]dîóœk#ÇUq-ĪƒyÊ�*IP"&¸šþ¤#È›þB6‡ PYd€z­@ëxw[G+µ| î8P<Üé1»cÅ”r£˜Vưl@ó^ñ°åõ�ÿI 4E]›k¥ìd¤9Hz jÙk•t#:ÒcwÜW?¼Äº CÐô©À”T¸I2Þï€$Óæ²” -tëN‘ÓƒáXN$ÈXF‡í¾ÐdFŠØ´æü¿ÆÓÊщ ŽZ¦ë£ŽbµV¹t¶I˜RAŽÒrؘõÒÈ-ÿ•ÒÂJ'cRLXÐQɄօ!¡½4«]<Û`JÏš0yRq$1kP8–`Y3R P`ƒØj{I±„ —(¢#>ÅøDÏ l4ü?TÛäFtÁh<ûá¡a@°+]ëŠ{½òb[cã•,Ãs°<ìEÎìKÀ-®Œv9[¥ðt¢æ·½3 ѹÞx?72ˆWÉ*QÔlªÁ8ÖúÃw;ÊÉøäCÍŽxdµXCÉò»=aKu ŠIÊ\Ÿbø&z ?mª +±P]¨0‚¾·÷ìK›Ñnœ2ƒsõ÷îìÀÆf´Ñó°ÊÇ–þ±±QÁÂT<úßdÍÍesP=ñ××Ê3ÚÜ/ÿkc³çòŸ/ŸÝEþ¿‘»`Ñׇ����IEND®B`‚IMAGE 274 ./arch/armour/shield/uw_shield.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VÚ¥ ²""ÿ�������€ÿÿ�@@@ÿ×�ú€r��ÿ.Ú=7���tRNS�@æØf���œIDATxÚÝÒQÄ PTØÞÿ¾;àOc§ؘøÁ1±ýUâÞ{w÷‘y�‘ˆµ"j!@+2+„š©\Kü¾Tí£@�Éó�ý=ÐÀlw  ‡,0ù[hZo.·p°Ïj†ñ® Àr’Ѩ˜ Ô4Fã`wx±; €‰UÀªþ&�Øð1„>ñþ¯Ž:ùšíó¿a3j»ã����IEND®B`‚IMAGE 246 ./arch/weapon/artifact/UW_Sword/uw_sword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�”)�çBB÷�Rÿ„œs�µÿ„���n ‘Y���tRNS�@æØf���ŒIDATxÚÅÐÁ€ P´@ÿÿ%.ÃŒN=xpcòJ'–?óL½Ã¹2opÞÍó¼W>ú¶�Ñ×ôŽÅ!qYúc@÷ëh?ÞÎCyþ}âçQØÃ ÙK.\‰ÂØ/Ò]/g”ý20ö«û]r÷¹÷6ìÎiî×Õa Î$`>H;æÁs�#M¯ñ¸£����IEND®B`‚IMAGE 247 ./arch/weapon/artifact/UW_Sword/uw_sword.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�”)�çBB÷�RÿRRÿ„œs�µÿ„���´âÌ���tRNS�@æØf���ŠIDATxÚÅQ€ CÑ"öþ'Vqd™Œ_îI^ó:L? 2Ú•ìòžÞ80^ëœx Øá|y \7øÊ‘¤bÊíp?Þú1ïòe?Š_œ¿ŸäÈïK0p¨‚±_4ŽáûysÇÚþŸð:É€p‹HÀxáõë Û­(³¨¼"q¨øûOAž:‰—����IEND®B`‚IMAGE 248 ./arch/weapon/artifact/UW_Sword/uw_sword.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�”)�çBB÷�Rÿ„sÿÆœs�µÿ„���¤<Ÿ}���tRNS�@æØf���‹IDATxÚ¥Qƒ0 C»šïâEª²¶<T©Â ôŒ¤ìK¯ ]v¤|>¼üû¨^̸"@ýüSÁ¿Í‘œ€C3×KŽƒnöãäì+Èo‹»x=Ÿí‰s0x̧!ôç"Àȇ ùh™æ—ÀCý[×%ò ÉOçÉYáÆs]ÊçÄý`h<3¼¯š1Dû#t����IEND®B`‚IMAGE 236 ./arch/weapon/artifact/UW_Sword/uw_sword.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�”)�çBB÷�Rÿ„œs�µÿ„���n ‘Y���tRNS�@æØf���‚IDATxÚÅ‘AÀ ­hçÿ?nb4U’¦‡îAã²€é_A€ Ï8k.3/9›+?2Ö/w øü½_".A~ÀÕRðòûíóSút¾ª�«_6ÿÎÔßî¨|S€p?ÜóC§ÌùbxSrÅÏ+cå6‚Îû¸¶Iê±µñ†lÃøAŽàÂÓ0����IEND®B`‚IMAGE 237 ./arch/weapon/artifact/UW_Sword/uw_sword.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿµÿ�”)�çBB÷�RÿRRÿ„œs�µÿ„���´âÌ���tRNS�@æØf���€IDATxÚÅÎA€ DQ¤¨ÿþ'Ö4jÓ0ÈÂ…]Þ0¥ü; ¯íáU‚뛟\W^}©ï Ì:—p›õOÜ>zIèÞ{ÀÚcð¿¶·;€Ü  öçO.úE„[‘¡¼_m‰ýÊ}”„ûŒ};mä¸ß'Ø’#îN²Ã/?Ì–… M£½õ����IEND®B`‚IMAGE 215 ./arch/spell/Bullet/v_pool.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����ÿ�.‹WV¬Àq���tRNS�@æØf���|IDATxÚÝ‘Á À ñí?t¥:ˆÂ�­UòÈ«ãsb.PÃqr‘B¾–J‘AÔP¤÷  ¡H²I.+,½C«6óœT^.,6>6ö6)ýŸŽ"TDÃIM¡áG€W̫ԀXùWéüÙØ b°îÖé+Ž*qG����IEND®B`‚IMAGE 210 ./arch/spell/Bullet/v_pool.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE����ÿ�.‹WV¬Àq���tRNS�@æØf���wIDATxÚÝ‘Ñ €0 ›ûÿÚ ˜ß5Ì ¼[Æ´¾b=¢ˆØ˜Y}«[9 ŠÔO EHh$\£ì‚‰yÝÿ a˜ã.¢wEÜÿ8¡"(ÂÂ{ò g0pø {+YàWtû¿„÷€'¢`Uÿ• ¹Š x����IEND®B`‚IMAGE 170 ./arch/spell/Bullet/v_splash.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����ÿ�.‹WV¬Àq���tRNS�@æØf���OIDAT•c` %Êh�ÓLS£€Œ¡¡P‘°0ˆghj”¶ˆL…0ØBgAÕD¥A\iYP‘U³ æ,[a0ti@ PÛ9¨à�æròæî„Ü����IEND®B`‚IMAGE 168 ./arch/spell/Bullet/v_splash.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE����ÿ�.‹WV¬Àq���tRNS�@æØf���MIDAT•c` %P[¡™¦FA¡© PFØ0ƒ34¢ˆ-2lT$ *5-ÊH]a°…EA´s®Z5gÙ"¨ÉZJP††Ôv*ø��íŶ…Cžý����IEND®B`‚IMAGE 310 ./arch/monster/undead/vampire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE÷Ö÷�9999ccc{{{¥¥¥½½½Þ��çççïïï���ÿÿ1ÿÿÿm»ˆ���tRNS�@æØf���½IDATxÚµ’Aƒ0 ‹I!,ûÿ÷vmÚF†S»9Äb&6‚<þ(÷ü΀ ’¬vpåêâe*WS|À¶‘›v+ølW‚BÃ;¡!Ÿ—0M‚»ïYhóäAþÃTœAÓB':\Í‚Ž|××l,]¹)ÂÒŸ€ì3§øHê�úÓáÅ?ˆ·Œ¸À’#œrçZáå�ˆ¸Q ο“2 Ÿ]Eæ6¾@ˆÅez}W‡j%Gv#¹-’QÙ¿Ì q ºjÁqÉ����IEND®B`‚IMAGE 283 ./arch/monster/undead/vampire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE÷Ö÷�9999ccc{{{¥¥¥½½½Þ��çççïïï���ÿÿ1ÿÿÿm»ˆ���tRNS�@æØf���¢IDATxÚµ’Á ƒ@›huïÿ¿·±]ð’í^Ú‰0ƒºàã/ÈÌü¸-«Jbn.Q{ížA`ÊŒÞBIÇQuxüBÊo‚Uæƒ,2°<=È,V§(�„Z© &¿]%‚w¡­Ù ö£`kO/‘ü 0 fàaB yp{Âûõ ³€“o b@u`orП•ÿU_=eôê'ºïCêò­ OT°µ����IEND®B`‚IMAGE 350 ./arch/monster/undead/vampiregen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE����R­Z)„��„9„„„”Bœ��µR!Æ��ÆÆÆÖk1ï­”ÿ��ÿÿÿíÇðŒ���tRNSÿ�å·0J���ÞIDATxÚ…’ƒ DŸx¡4^ùÿÏ­„±{CêÜbÄa_6ƒl‹ÂcõËñÑ7€–€ÅŸ�Xü�ˆG€ü À¬Â¯÷ÀT( }øà •ÕÏ�ðØý1üš�€×ž/€š�†ö¨hÂoHá·ðî€ZÃ_€  ÓJö¸4@@ׄ/ _¿Iü/à›‘º€ ~00FÕælJˆÏN¡`Øx×ÎÕ®[^½ÚYŽ·Ñå"¡7k~®ßs×�ÝÂ?ìèçrlë#tI0œY&W@œEßU¾�óT»ôPø ÈMâöÏ����IEND®B`‚IMAGE 177 ./arch/monster/humanoid/Arabic/veiled_woman.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�ðæŒÿ��.‹W���¶×[J���tRNS�@æØf���MIDATxÚݱ À0 ÃÂ:üÿå"È.žZ ^HÖúcì¸N…§°ã9‚Q ŠFÑ´K•ªBOîN`· S,œŠÌ—'‘ßó½¼è…(ã‰����IEND®B`‚IMAGE 177 ./arch/monster/humanoid/Arabic/veiled_woman2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi���ÿÿÿ¿¿¿��ÿò¶³S���tRNS�@æØf���MIDATxÚݱ À0 ÃR2þÿå"È.žZ ^HÖúcè8L…§¤ã¹(Q0 DA„´Q KÁªOîNp· SÁ,œŠÌ'‘ßó½¼0Þ1&¿ò����IEND®B`‚IMAGE 174 ./arch/monster/humanoid/Arabic/veiled_woman3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ����°0`ÿÿ�µì•���tRNS�@æØf���MIDATxÚÝŽ1À ÄŠÿ¿¹ ÇЉZQ–³’{þr͆`ªütTrE’òIÈ^ ôû£Ž%/bÞ0IùÚwñœ‘_EÆŽþ����IEND®B`‚IMAGE 177 ./arch/potion/vial_blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!�¿õ$$þ¥R)ffþÆs9ÐÐþÿÿÿ���SÚÍC���tRNS�@æØf���AIDATxÚíŽ)� Ã`—+ÿÿ0×JÄ&Óiy0~ tÐt@�Ò¯¥œÙu0CûÕƧ ¼Ï;@ù\brlºžl����IEND®B`‚IMAGE 177 ./arch/potion/vial_cyan.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!�¥R)�¾ÀÆs9�óö#üÿfüþÔúúÿÿÿ���Q,õñ���tRNS�@æØf���AIDATxÚíŽ)� À]ŽüÿÃH\+A›L§åYÀøtPu@Ò¯¥œÏ9t0Sû–ÍÆwxßï<8�ås‰ –Fϸ£e€����IEND®B`‚IMAGE 151 ./arch/potion/vial_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¥R)Æs9ËËË���Q~W���tRNS�@æØf���6IDATxÚíŽA� Âpëÿßlü�g¢ 7Hƒ®B_…,?@€í%/8y]ÐQÐùÐgˆ ™ß�¢ï²C·����IEND®B`‚IMAGE 177 ./arch/potion/vial_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¥R)¿Æs9õ$þ$fþfÐþÐÿÿÿ���³àd���tRNS�@æØf���AIDATxÚíŽ)� À]ŽüÿÃH\+A›L§åYÀøtPu@Ò¯¥œÏ9t0Sû–ÍÆwxßï<8�ås‰ –Fϸ£e€����IEND®B`‚IMAGE 177 ./arch/potion/vial_magenta.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!�À�¾ö�ó¥R)ÿ#üÆs9þfüúÔúÿÿÿ���â±»t���tRNS�@æØf���AIDATxÚíŽ)� Ã`¹6ÿÿ0×JÄ&Óiy0~ tÐt@�ÒgêçcM¬Ð¾F5ñÝÞ÷;@ù\bmÛºg3I����IEND®B`‚IMAGE 177 ./arch/potion/vial_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�!�¿õþ$$¥R)Æs9þffþÐÐÿÿÿ���Éþkò���tRNS�@æØf���AIDATxÚíŽ)� Ã`—+ÿÿ0×JÄ&Óiy0¾wtÐt@�Ò¯¥œ9t0CûÕƧ ¼Ï;@ù\bk!¸g¦³ ����IEND®B`‚IMAGE 177 ./arch/potion/vial_water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¥R)”ÿÆs9B¥ÿ�ÿÿçççÿÿÿ���kç9þx���tRNS�@æØf���AIDATxÚíŽ)� Ã`—#üÿÃH\+A›L§åYÀøLtPu@�ÒÏ©œÑu0BûËÆ7xßî<8�ås‰ êd÷1µ����IEND®B`‚IMAGE 177 ./arch/potion/vial_yellow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¥R)Æs9¾À�óö�üÿ#üþfúúÔÿÿÿ���6)šÞ���tRNS�@æØf���AIDATxÚíŽ)� À]ŽüÿÃH\+A›L§åYÀøÖÐAÕ H¿–p>çÐÁLí#ÃÆwxßï<8�ås‰ ­-ÜËiö÷����IEND®B`‚IMAGE 907 ./arch/player/race/viking.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÈPLTEÿÿÿR*B&$3N*F"N&F&¢¢¤F&B"V*N&B"F"FV&b2$þþü’’”J&žžœB&F&$M-^:,‚‚„>f2J&ŠŠŒbNLN.$J*4²ª¬ââäRN&$R.6C >*$^^\V><bbdrrt¾¾¼V^>L~fdzvt~~|8 j6JB<2F,^.V*$^.$îîì^.,Z*R*4FFD4>! R>?K,ªqB›g@B$>"vuwa][’ŠŒmH.žh<R/âš\F"^BDU)7VVTzrlÞšd664Ò’dM'V.ªª¬9¦¢œZ.¦¦¤5òòô;J4; N5î¦\zz|5F.$NA M%fRLvfd^6,‚jlŠnl¢jLDB@^J*QJF¢™—RFDvRT’ztŠzt††„V>ZFD>$ÞÞÜB"$ššœC#RŽZ49E%6$C#;7>NNL:.$RRTÊÊÌêêìj>,Ì’ØÂ���tRNS�@æØf��qIDATx^½ÌC›+a†áªm†6ƶmÛ¶mÛú»§¯YeÒìfîM-ž÷*Ø?O¼ª}…¦¦´?î,|'ÁÓÈ›¸tXòÿù Õ´< ç÷WË ékiínݳ¼½VôÐå_Žþ~¯|WD]Ìb@–•·¤²RJß«Ç4¦[ˆÈ¸Bܽç zÑù‘J1†²«Ÿß±‹qnUÌUtÇÕkbÊB‡j±:̺:­o0D¦iˆ,À+GNPzJásŽÌ(ïgÎ~þú~ÿ É)9,+z@Iù`aeuíÒäÔ4!$&2Ñë4ÊÍÌÎݧôÁÃG™—™æ×oܼó6ù‰ì¦°¸$u—¥t~/ì[¿�.WÚó¥x›ÔVÂÑhGg×Ñ[·?y ^ÅöÓ/ öüÞ¼ ž>˜‰@¬5½½És_À$̘wNl„’å\·¤=:††sPS©wj²íP[³ Ûë?j8üÃ4äƒ����IEND®B`‚IMAGE 888 ./arch/player/race/viking.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÅPLTEÿÿÿR*N*3B&$B"N&¢¢¤N&B"F"F"b2$V*V&F&’’”‚‚„B&F&^F>f2žžœŠŠŒbNLV><M-~~|:,R^^\j6ââäN&$>J&F&$²ª¬J&bbd¾¾¼J*4þþürrtM%R.62N.$V7vuwa][A F,^.V*$^.$F"^.,Z*R*4v:$b2j>,’ztŠzt9VVT664>$C#;7¢™—RFD>ÞÞÜÊÊÌM'K,vfd^6,ªqB›g@J*QJFR/5^>LB"$VJòòôU)††„E%¦¦¤fRL>"mH.žh<^BDzrlÞšdâš\î¦\]ACZFD; fZ\zz|NNL95;FFD’ŠŒC >*$4Ò’dJB<^.<îîìRRTªª¬F.$JR:.$8 N6$>! R>?êêìššœNC#¢jLŽZ4~fdzvt¦¢œ‚jlŠnlvRTˆ, 8���tRNS�@æØf��aIDATx^ÍÐS“$A†á<YvµmmÛ¶m®mÛ¿wjfû¦·³.7bÞÛç‹‘‰þO7ŸÝí7Å¢h8ìÑ-Æ¢h¼x:fážsúøGdVfýõI×M~œ)÷ôšpŸÀX_¼6"!E!µþ­¼œäÔEc´ HØlÂ2Mð7 �°(ÐùN5­c�ãF:1Øòª-ÑX`EIA¼Á­Ûe÷%Œ—BE®?<Û¤î˜çpBx;ØÙÝ[Xµò˜eYQK(§É™Ù9êýš¦“IÚF3¬öÏ+ºýþ*j~xÄ{êõíoOMóé'«k¸€ûçI|ý†œ§np–® ê><"øçÊ'KßüüõûOg×£cÂÀn_Y£`Èîp RÎPåË8BÁ˜Z‡ˆ½r8—ÐÐXHôˆëí»+ˆEZ‰ìªÏ^–åÂÀ%7· l>jkG×· -Y6À_[8|����IEND®B`‚IMAGE 934 ./arch/player/race/viking.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��%PLTEÿÿÿTG?M$F#¿¿¿J$¡¡¡U'W*¢¢¢¾½½Q'ÿÿÿÌ?H#c1aaaO$U&H(K#yyy_+P+U(qqq`(›™˜Ñ’U^-ggg]+[+Y)S(S)Q&ZU#·r8i4H#E!D!O,+\-g${xwG(#Y!M&q3MMMM$L$e2b0Q%¿¶¶J$nYL_4].àààM*R+A%h3E"]0Bi[*Z*M,åŸZO'd1ÂÂÂX*8/*J&¼¼¼`T&G82–’¡Z.î¦_IÏÁ´322T(S(Q$='¤¤¤£££TE;[-\+Z)ooE#S3&kXN)#!SW)cV'L&‚‚‚¢[.ŸO,I`SP<T)Q$I$^M:Fl!].„xs^,\*O,S)_,X:*Àn7\\\g3E"NZZZxD%XXXVVVY,@Q)V(N%M%B"[NEDDDX.V*W(W$n6UJtlißßßP$j23&†{wPA8Y+P(W%P&‹‚~M"Mf1c$ÅŠNZ,C%³³³hXO???G#£<Lž���tRNS�@æØf��/IDATx^½ŽS“Å@¿Irí¥mÛ¶mÛ¶mÛ¶ß·µÏw&yÛ~í®SpH‹s¿,2õfÑá¹:["í=�`°Þ·$à"-ë@‰ ž¨Ã«ÙŽÊÏ")! Êj"‹Wß ´VÎÔdySŠ1ÁM©âu;¼ÒÀÏ…EÀ†ŠâE$à¹0µö^£m{"Ôó^ÌÇæLhÒ…Ï÷PIz”¤)·Òß”ødàƒÝªvˇ»q¡u²‘’Q/ÐÍWtк^_õÈê’Lj¸#ÔØ8½ßr[ÓÙ… úQOðÙèãµ½ŸËq_Ý7: 7>Æ�ÓÞnç:1Ùü Öð2PLô´ã³Ç‚…ëpÜɰ0Ôšý l8Ù+´BÁé9Ž„þþŸ_‹CM¢±6����IEND®B`‚IMAGE 977 ./arch/player/race/viking.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��=PLTEÿÿÿ¡¡¡F#M$TG?¿¿¿O$MU'àààW*¢¢¢¾½½Q'ÿÿÿÌ?H#c1aaaJ$E"K#yyy_+P+U(qqqz<"›™˜Ñ’U^-ggg]+[+Y)S(S)Q&ZU#·r8i4H#E!D!O,+\-g${xwG(#Y!M&q3MMMM$L$e2b0???Q%¿¶¶J$nYL_4].J&N*M*R+A%h3E"]0Bi[*Z*M,åŸZO'L"d1ÂÂÂX*8/*£££V*¼¼¼`T&G82–’¡Z.IÏÁ´322T(S(Q$='¤¤¤G#_,TE;[-\+Z)ooE#S3&kXN)#!W)cV'L&‚‚‚L$¢[.ŸO,I`SP<T)Q$I$^M:Fl!].„xs^,\*O,S)\,X:*H(NZZZxD%XXXVVVY,@Q)V(N%[NEM%B"‹‚~DDDX.V*W(W$n6UI#JtlißßßP$j23&†{wPA8Y+P(W%P&N&`(M"f1Z,c$ÅŠNU&C%J³³³hXOG"Sg3\\\qØr���tRNS�@æØf��BIDATx^½ÎCwÅP†á]µmÛ¶mÛ¶mÛ¶íþ¶bØäÜÌúMßgíµÕ€n4}š«í¯»þéJµ\ŵß@û³sn¢Za|ŠÛOP€lóø³)é%[�X~Y`ÎäLϤ£ iÅ#5±š�0F¸2kEê hÑ¡žû“DAˆ8qå ËÙԠRq«;ø¡uåyáÉþ·Ÿ¤ÓÜMÝñq‘ê"ßuÖJô/χ8†Ñ@CB~úì9¯Ò9ZÚ?;e"’ØâxuUäØzrÝY^HK+ Ätáí^û«'ê¦.VÛò¼g™á6Á&@¹·½Ž6Ë ›`ê¡23ôúȃë¨9“id7á� @l úÂvæ�TÈzE}ê=7tËÈb1m§´'¾þ{_LIò‚u¤H����IEND®B`‚IMAGE 1237 ./arch/player/race/viking.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��ÖPLTE4VL/#ªxßÞÞn7 l5R7,z$"b2¡¡¡V1!! ƒxs9x<#w<"v:!l7!ù÷÷¢ž›\.N.!g‰‰‰š–ƒ)'a;-¤xF##\7(ØÕÓŠyv? |;#: n6qqq†J&I%K7.Q6*Ja1kkko" SA9{xt‰rnT*aaaaÁq8___x'"P]/|xxP)"v;#DAAu;"SSS¶wDS/\£u@&a5"g4u_IIIGGGeB3öööZ-3q9!zqoxM+999d2c2`.{>$d"cU+«b2àààS)T#k7E"_0m! ^0!!!r?(9w<#{*'P'="v$"‚A'B"¨˜Z.s:"¼¼¼N'mK=Xt$#¸€ d1[-(µ”}?%X.U*S! o8!J'a__l6I%G#Z2 o"!`1µ±®Fç [S*`l:!j6”}s˜Žûúù<"~|{\/ŒŒŒ|Q-˜zw'%f4€€€e2~~~‰xvï§_~@%X-¹©¤T)��€°¦¥o7 bT n7f:!c/(I$vK*c2b2a2`0]#"s='V-S)B>< œq8$a0?³K[,6t:!R)@O'º¸¸ÿÿÿ¼n6f3d3|{{~?$?oÕÑÏY,óóóYJ%ÛÙØH#d3K5-r$" žž;¿¼*...`ÊŠM&&&b1`1C!_/ N-aOLD*P(‚&$N&ýüü‚B'i"¿¿¿X+t;#r9!|spZL&J$e4d2³³³‚%¤_���tRNS�@æØf��­IDAT8Ëc` ìÇÊDShÆí‰Sža¿÷U5‰ü“Nâ´ä†‰½äeÝé¸äU6Ùn_0{Ç]ò·Îw75ݾ‡¼o†ÑÊX¦%Îe Xåû×s¼;íc½Yf«èn9,òŒoר±î=û8nljƇ-…òúµCSw ÖןInÑñÂPpoF¨M•e÷¢WªG^̸£….¨Å¯fZnðùyåüsJ f$>ðE•_5ñƒÐ¹sš9gú^V,YÞ‘·ÚÅUŹ®÷7ϵ2 wûÙ°Äohҩ܉ª RÝ­çøþsÁÒÉë\Ŷ]JáóEQ0sÂÆ} OÎKºµÅÍ-âŠo¶†ª†çQûLäÏã9wîÜ\__®¥¾h fËåM8åŸs>çäõõ]qÝMƒÕ}ÿ:NyN üó×¾¾“Ñåd‹–)›%â ¨ ®…ë™÷Ê?¿¸ÐpÊ,`´¢K3T¿É,f1ÄŸ%¤a‹ií=SèµÍ¤°ÈŸSŽ ƒ°Œ-Ža3àÜÓPÖ©6'lòçžÂ˜AYYXåÏaQ‹¬à2‹ \ª©�¦­ó¹Åž����IEND®B`‚IMAGE 742 ./arch/player/race/viking.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTE1Rc1c1!9R)k1!s9!{{{Z1J!J)!cccJ1)s!!B!{B!Z)ŒŒŒ¥¥¥½½½c!JJJk!!!!!JJ!{)!Z„B!9!µµ­cJJï¥ZB!!s9){9!)))÷÷÷R)!k!R1B!kJ9��„B)œœœsJ)Æs9Z1){J){R)Œ{sc))œsœ{{œŒŒœœ”R!¥s¥{¥œœR!!­{µ{Jµ¥¥c9!µµµ½k1½„!c9)cB1ƽ½ÎŒJÞÞÞç¥ZïŒ19!cRÿÿÿ999„J!„{s„„„ŒsksZZ1!kkk{skc„)!{{s��Z))sss{!!B)R1)RRRBBBZ!!{ss1N@���tRNS�@æØf��bIDATx^µÅnd1D}¯é172„™™™‡™éÿ!Vf¢¤ŸÝ‹,¦VÉç¸Lžš½êÆ3wºðÀ5axèKœÄÃdP†ÜŸ×Nß¾4˜úé×îd{²P {=;Û¾¸6ó&í0ä;‡GŸmó�Ê,o¢ÅæLÎ*,ˆ¢ ƒ ]pœPÁ¹ Œœè\f©ƒ‡"Bø‘ã«×h¡Ç¡"CËÉó¦à€�ˆPØLÀ}„[òy *8WCÀÞ€EiŸ7<ÏC<îvÑo4ýÂeK!–ð ‘}§ä„vK’ÄEe F”ŽíÓÜR7Idš¤É JgÎîùƒóÎMd¢xú‡ÒyÅsB§¶´(ïηÔ8yŸ««2Þ{µ²H4¬âWý¯ªüΊþbÈvÍ÷ïJV%¦ØßªÖÊ5ÇÞzö¯ÕëF¡Ý7ìô[TÝÄñ‘ŒÉË-Ó% ÛI3åâ����IEND®B`‚IMAGE 927 ./arch/player/race/viking.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ3@ ;75PPPd34B!A!:G$F"9R+ÈÈÈK'W.>ï§_O+\06ááá8L(³³³? C"e3d7aU%sss²€0C&J;-8!F1)<Y/Žb4º:n8"Àq7Q ?$: c2P(Yg4N·o1_8K4*a0GGGJZ-ŸŸŸ???îîîC%c2<:$;CsJTTSQ-9‚ZZk7!@.$:3S+B"ÀÀÀY,®„iB"@ I3*H&Y.L)E(]:?"a1žžžM5*qGššš”””\/U,œg<5?‚‚‚KL=#«}X$#1rrrE'c2F2);;a T+«k)^^^>#6Š_X*[.I(H(U+[0IR+<<<R+ééé=Y.<d2D(d@^/CU,5Q(F%?$™X- y\5•L)M0P)O(L(E'f4B#E&E$ûûûP-B%K- V-ܶ���tRNS�@æØf��FIDATx^ÅC—,A3Ëm»Ç¶mÛ¶mÛ¶m?ýÈ׳ëéʪYNl#ÎwÏ(’� Ó—`'1–è­üÅhoÓœM@YO8&È[·x&|ËÚÚ©r®Àín6Ò!K®7qÜ(¨_<pɦœK~!&V^š“·äz ݲÿèÒhŠ®*–⟢²Óƒ-jõRée|Z~¬m¨±oü7Æ*¨{…BaÜ^“íÍth/ÿ�$©ºnH†úç¿®W¡ü)õÄ FvÒùŽ H\(`ÒâðñMW”‡R¡†Ù™ÉRíÛ5*`pÏDÕªÈùB@žö×½NE€ Øa´Ç¼B€¤êÌØî¤Šà 2üQ%¶o`8<ô3Á@®1½Ño±œÐâ¸éˆ)‹ææ4,¯ð!q ¼ˆSbø=Móëï‚OÀOð Ò>ÒõùúP����IEND®B`‚IMAGE 900 ./arch/player/race/viking.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��òPLTEÿÿÿ3B#;75G$d34@ F"9ÈÈÈC"? K'>A!8:B!6PPPR+sJ5P)E&e32aO+sss²€0C&J;-8!F1)d7Žb4º:Áq8Àq7Q ?$: U%YN·o1L(K4*c2GGGJZ-K- _8???îîîC%c2V-a0:$ŸŸŸDC<TTSQ-‚ZZk7!;Y/B"ÀÀÀ®„iB"9Y.L)E(@.$?"a1žžžW.qGššš”””\/U,œg<5?‚‚‚KS+H&$#1rrrE'c2F2);a T+«k)^^^>#6Š_X*P-]:I(H(ûûû\0[0IR+@@@M5*ééé=<dáááD(d@>"C«}XQ(F%?$™X- y\5¿¿¿ï§_³³³<<<@ I3*<àààB%Z)•L)M0[.O(L(E'f4ý/m���tRNS�@æØf��@IDATx^½ÏS“,A†á¬j¹¶mÛ¶mÛ¶mãøüϹ눮©¹Û÷ö{"2He‚ƒ2’©àjb°m¼.ó5/ZÓÕíT+2àÿ0T¬9y–=™h^[>öusò©Þ$Šý¬ÕŽÒà³ñÑ{�PŠõu+©¥—TDŸAxßüùíÖØÒàÑš3 JÑ×^™àlíGÜ\ÏÖõ§â¹§§;½¾ˆS¿3¬Xþ{äT!ÂÂÇ-I]•Ôë®�«ZIÒ긩]? ‘±„L¿mÙz|K™™¼´€&‡¢€x™$ÏÄÀEB`XuÒጵ0ͯґI$ïP†]E–"^5„±m%ï¼ üØl ˆ <_�2‡€ÖElPSÅDÒŸKß>;¶àûûé@ãᛤ����IEND®B`‚IMAGE 524 ./arch/wall/jcity/village_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VŸQ,-ŠVÒi�ÿ���c2�c�Í…?�1�cD����Ì�¿¿¿ˆ%hi���tRNS�@æØf��IDATxÚ]“rà +°+ ÿn÷ uCÏ`[ë;I¯'áé;¸0<t…€Ï¬òvu#.ÛÏ'J…Cõv¸Ç·_TPÆ�ÐåþFèíežßµBnÀº7ƒìØÔúÃHÊç¿Tü=²ÍYj-mf8»Ž§„¶ànt‰äPŽ˜sj RXƒˆ”& h“hò˜Zy”½-UvýI­!�Ò�å^/TC°¦¾ˆ<€»¹{›´é–=_€ XkY*^�ÚÀ¬¥”Ù4†ŸÒ–ä¼11[€”"PÕ®$ïɼ¸¹>EV‚j=œ�¹®Ü}'ŸÑ»{—g`&@}“gÑV�ÒÍŠ½YN7˜Œä= ³1ñ „Ðö«üöfFD€Ò�{¤D4J•­°2¯}›·€Eô"¥ñ�hhÐ(H¢LÒå9’�i:`隃Y)êy¼ƒ:…õó#ò8öñÞVtǟº€tÏkß„€ãØëó�^BKÿ�”Iº�¶&´YydYɦή����IEND®B`‚IMAGE 1765 ./arch/misc/violin.111 ‰PNG  ��� IHDR��� ��� ���szzô��¬IDATxÚ½– T“eÇßJÍ44$Å‹2vߨÆÍ È}NÙ`Ç lŒ!VÖIÍ ›—êØÅnêQS1ËJOÚÍ23/ä%…,2(++Ë45RØ¿çû}'ót¤ ßsþvÆ·ç÷ýžçÙ[íÇ"^õg‹Þ `e[3óûìFv-ÏJ?–PåÇÎmðg6°V(ÜâÏ\3€çna™‹ý˜ @xchßÖåQO¹Û5ðš�<{ ëG© ¬¦¼<´÷õ4·»¼´´ô¦k1ð©€>3 Ð>/R„ÛMp»\' à.Jö—s¬ÄpÝÿÀrc ƒL‰ 3ŒFãi›Í§Ó —ËuÚëõÞÇè|îÖßHÅ)º¯K ²ãƒ¤Ù­¥×#({"%%ePrrrA´Y­VŸÃáà .”—z~Vãl+5¬ÿ¶Ô°ãT™á$åì÷^ƒï¤×ð#<BÔc²À` L%ˆÏ¢“LP;Š}˼¶_NM‹õµ—:/NFG¹ÏE \l.1, Ký{ AÅ9ˆþôÓf2›8΄ÇU„Ël83-—¼z\òèÀ§TvzMfö“1ëC�lƒ#nвÜ1«ŠM)íYYYà!Š‹På±âgw .¹uB~wGá§ÝÏÇK d¡7ø¡‹ÿġٷѨép¥'‚ƒÈË˃»¨/xløÁË?7UÓùJÐ%Bz õ°Mu¤6=o¦*áMO€Åbá!Šb±ËŠ£-Ž[#ðv’H(~Ì­Ÿßuýõÿ¹8õrÈÑbýº‹Âw 5\6§*0=mÌf³�±æö재GjÐÍ|ñµc‡ã‹U]¿Œò�EF }ÿ @Ò?·Î$;÷'@ å]‚¸3m,233a·Û±°b¾ªZˆYcÔ<À’˜a¼‘æ Ž;äh)Ô~ß\¬[OŸ7‰¢ýW�Gòµ•p¦ @€Ø’*Ç£–dÌõ`Ëã•hÿàœXû4âåqð1qžÒ݆6›­v)EÖI­9FŸ«ïnÿû-ÔÍo0+Î_"AõølÏP⫊ü¶zÞeÃ÷®= …axÎ0 ² 4Màh&AX)“¥hqé BՀ뛦DMo²k~ —¬‰cô˜­ãð=yBqßëpvÃRìÈOÅkñ¡XeÓ5>FȦØe'›]:+}…_}@÷ÚSæ©ÛšÔe*PŸ)ç!ÞK Oø<« Æ;ÉR|7ÇΪ¹ÀÆçyˆóo®Ä÷šÂC&ˆ/r¥¾–"íFî™rU€fé­»­ò¹5“U?@Cž5“ä¨ÍV≨`”„ F8�ÏG‡â›™¹èXùÑñþZìžY†mã¥W@´dÑpæ+@$Y`W=»,2¿j‹¬r›I¶bUñÍŽIò3 N 媱7-UԻȫbBqbF6Î/™ƒg{ð°F‰ÃC°yô(®mÀç4_:-OaݱÀA Ø‘)¼Ó,KÙf’šöXå›êj²*ñƘ0Ü' ÂÝ’@ì§BM…)x,F…2ÑÌ‹P‚í À§%h›,ý–æ I�è†F8˜èw.¢s”ëÛÕxut(i‚ñ ÍÃÞd öQVêÃqG˜^‚¸;DŒ—âñ•f¥&fÀÉ}7\ â »d‘FØA‡zTc¾ö@­YãGQ"°¿KõÞ.ˆ©¡Ãa CÆÈÛ0-F‚i2|jW€ sñÒ üÛÿ¬„–°ÝÙò!59Êí ÙJaÈ.[Uºë´ð D‰¡ $h#0A†M“"¹g·" ëÑiœ¥jtj[ëi3€. ôb¨ÄT¼+éqJ¨Ã‡ãþøìÉQVrŹ\¹ ÝoÉu´š9ÊCõfEçßfjDBqƒdLcµˆ Ä“cC[wZdãÈë±z§¦ï¡­“fá=5Q›A{O«Y$AbøP Q¹x(fëƒÏø½”¾dõøTgÉûTgÉŒûr”Íõ´u6¿šµdp*‚¡ DTĆüº41ü*üÍ?Y`d¡§å…VÜDq|”%¯ûÈ¢<qСùm_¶Ê·<IÒé¥6<zn}†d ýÍŠ˜,p×ð¡Ó+¸pÉ´¢%»,ò[²u”µï¥¯8Q¶ˆÞ×F¸Âü&õæîˆ,0²ÀÈ# Œ,0²ÀÈ# W¹óž›èº;®ˆœ‘>d‘þý:�8…ìÊIDo����IEND®B`‚IMAGE 1785 ./arch/misc/violin.112 ‰PNG  ��� IHDR��� ��� ���szzô��ÀIDATxÚ½– T“eÇßJÍ44¤ÄKò±û j ÷9eƒ ¨°1†XY'3…N¥v9v±‹Ù1C1ËLOÚÍ43/äPÈ2!ƒ²²«ij¤°Ï÷úNÚéˆB>çüÏ·íûžßû{ßgÀ–û±ˆÕþlỬtófþ0€ÝÈ®eUú±„*?vf­?;·!€µÀÔMþlÀ5xa0Ë|Ñù·‡õm}9Šó”¹]¯ ÀóƒY?J9A`9åõaýðø¸QßLs»ËJJJnºVŸ è3ó‰ íó"%¸Ó”·Ëu‚�î¡ôaÿ¨£Å†ëþ�–gdJL˜a4OÚl68N¸\®“^¯w£ú­¿‘šR¢¿)1Èy \³'FGïGPö DJJÊ äääR‚h³Z­>‡ÃÁCœ++ñ,ø¼8ÖÙVbXó]‰aÛÏ¥†”Ó?x ¾^ÃOðeP!È#€2… >'ˆN2AÛQä[âµýöó´8_{™¡óüôt”„œ§Èùæbãd©!¨9ÑŸ®6“ÑØÄCð&<®B¼Zjéiq¸àÕã‚'BJôh§÷dfY²Þ(`k£-ɳ¬È”Òž••¢¨U+~uÇâ‚;ZÌŸî(üRýë±bCY`]1WSô øOÚ=ëŒÚWz"xˆ¼¼<¸ ñŠÇ†ÝqBó3S48™¯Â/tmsë_§ƒÙÿ�vµ�©‡lêõé‘x'Uoz,‹�QH/º¬8âÐá˜5ï%I°×†¯ Ô¿uëç‹�W[´—CéW5X”¾ý©‘à³!U‰éiwÀl6‹+î,ÀÎIz¤Ý ÛˆÁX9v8¾,PwÐýKx�ºÊi!}¯ éŸ[g’Ÿù †òAÜ6™™™°ÛíXP~?¾®Z€ûÇhPi`qìm‚‘æNÐß2U÷CsQôzÞDŠîŠ�çë*àT€±)UÇ-ɘë)À¦'+ÐþÑ8¾òYlÌMD~ˆ?ßXL›C«]F‘wÒÖ¥çê»»ÿýLžß`Vž½ …Cõ¸lÍPáëòü±||ëÃ÷ñjœZ½Ø“Äæåò 4çp$“ ¬”I2´¸¢ BÝ€ë›&GMo²k$ ¬ˆ‘bôИ¥•âÐ}yð­˜ð­Âéµ/a[~*ÞŒÅ2ƒ”îá„4 ›ãMœhvE[iR®¿,Än›rò<M[“C‹ºL%ê3ÄÆ„Ûá ŠçuÁx?Y†ïg;ÐY5X·H€8ûN%»Ç‹ÐâA|™+óµêÖ‘…ÀËl7ËnÙiUÌ­™¤þiÇ%ò´¨™¨@m¶ OE£8l ¤XŠog梣òa¢ãÕØ9³[ÆÉþÑ’ÅáX¾ê�D’vÙÚa‘ûU[ä[Lò¥»¬Êo·MTœjpjq0WƒÝi‘¨¢í°Kü±,6ÇgdãìâÙØ;˃G´*<‚ £GòÛ&|Açá+§²…�â)¬;xˆÛ2eC¶›å)[L2Ó.«b}CƒƒVÞ†9² ÜËb5jšš‚'bÕ(•ŒÀ ©a!Øš!|6CÛ$Ùwt’D€nX`d‡¹^ó‘ìÍQ­:d×`õèP,Ôã9:»“9ì¡TêÃqW˜^‚¸7DŠ×âñ™ÎJM:k$ÿÛpŽš{D€îBFY`š‘ùºýµf%¶I‰À¾.Õ»» ¦„‡Ur2n¿Ób9,M“ã3»Ô˜—ÎÀ•þg%n Û™­Z“£ÚÚ­ÙE£J«N B”$JJ‚.ã5aX?1ôƒÄO„ÂzT“£ÔN]k=M†ÐeàQ½j)5ïJú(4áÃñ`|vå¨*øæ|.™„+Ú’ëh*´ûsTëÍÊÎKfj%bs7¦±:Ä„â鱡­Û-ò;Èë±z§¶ïÁ“ÎÂ9ú«‰Ú š{Íê$‰áÃD€DuÒa˜¥>MàPú’ÖãªÎRô©Î’÷䨚ëi"êlja4kÇËáTCˆQRòûK‰á¿Qã7é ù“FX¯=ô&Šã“,EÝ'Õñí{²Õ¾—“¸N/mÃÃq¡gÖdp+è;³)R²Àß#„ªW,ðá!’iD‹wXK7å«(+7eo}<A¾>×’FøÆÂ$õf‰+" Œ,0²ÀÈ# Œ,0²ÀÈÂeVÞs]«ã›(BY>ÿ¯ú FIþMîÖCG����IEND®B`‚IMAGE 1778 ./arch/misc/violin.113 ‰PNG  ��� IHDR��� ��� ���szzô��¹IDATxÚ½– T“eÇßLÓ44$…K2veƒ›P®sÊ860`c ±²NjÝ´Òc¥å­£†b¦y9iuò~'o! Y&¨Zv9•×HaÿžoÑw²NGò9ç`g|ßóû~ïól°å,x'›û‰+ÚÞŸé·y±žì^V™‹-÷`W×{²ë›¼Xänõd½ïÀü~,u¡s ìÑ´$Lä(¶ÛúÜ€yýØ”‚Àrʪ`æÈèsìöâÂÂÂïDŸ9^Ý'ÏòéÝ2#D€Çu)°Ûl à)Jwö·:U ¹ïÿ�`™Qš¾º¸ØIZ­ö“É«Õ ›Íö‹Óé|ŽQ}mW÷¤æÞ”ðs…ɇFÔàˆPÑk? w\às· }ããã‹¢Ùh4º, q½¸Ð1û«‚Hks¡fÝ·…š=?i.R.ïÔ¸.:5?Àk|óÎY`Ї@#ˆ¯¢LÐqä»;M¿þ4!ÊÕR¬i»11­ÅwnPäל,õb-jÎAô¢Ÿ&V[ÏAp&¶<¼WdÂ¥ Q¸éTã¦#üϪÑB¯9�2!d]QÀÖ[¢û.ζ,_—Ð’––7D~ÊFülÄM{8Ÿßían€3š²Àº¤èF1_X”‡6h•­¶ä8pYYY°çåá]‡ ?Ø£ÜÍÿ>|Ívõ*Ì^]xܤ8Q•‚åp&ÇÂ`0¸!òb¡Íˆ“ßü°.gsWNÙÕ¯´_ßí®›ÓY8™¯^]k¹Ž$†€Ë¦D&&€^¯ç!V<žƒýãÔHôy&¿~X9|0Nç(ZéúÅ”(éq7�ÝIÿôjäê_�•”ÍñdÒp¤¦¦Âl6cvÉ|S>S†…¢L#À¢ÈA8c FC†g,R4檾oÈ_G÷KQÝÀ‰lU)\jà!¶&J1ÓéŽl}½-;>Àù•oaKf²ý=±$z6ÄùaNø#h6‰ÐdS$mt4§è¾êŽž¯“¹á¯Ôêe×nH¡bd0v§ÈñMI~[>®‹àÚµ—Ö,Àfó(äza¾fJ$>¨-ÂÉT‚0RƉÑh ¯#EG�ºÕ›XoVþ@nX!Äн1U)Äñg²àZ1à v¬Æåõï`Ov"ÖÆ`™FH׈ܩÓ@:Å,¹Ø` 7Ò¦Ü~@šdãf…6×[”¨N•¡&Uê†Øû(A0Oå‹OãÅønšmåÓ Ü×>.à ûhšâ†8N§3Å®Æ<Õ²à}[€½zñÃûÒé•ã?î#Cm–•c¥¨J—ã0_öGŽÐ "par&ZË^rC´n[‰ý“‹°s¤ø_i4œÙò£BØmkŸAâQa”îÔI–0Ê.ì+½TkUâXf(&… œŽÃ,ðIJÈ�œŸ”Žk‹¦áðT^VÊñb?6 Âð5ÍÃY«¬‘�b(¬#8ˆÞ{RÅý÷ê% ;ubÝ£tcµ%ÇŒr|4,ω}ð´ÈŸS£úÜÌŠT Hà‡IBJý±;6˜ørŒÍãÄßÒŒâ:`‘æ~ú‹àp†|õqs(Ö À\¥/Þ¦y8/Â!J™:O à$ˆ§ý…x?&ÛiV*“iŒ!ÜgÃujîà: AY`dµ„©ËV©Ò˰wäJ0>oW}°â±€Á0 !åÑG0!R„¥I|i–sqÒ ÜéVü‘°ýéÒ•òݵér~ÈnYUzê¤ „ ¼!£Äª‚1:4dž€>¸-PX§ªn|˜¢Îªjª¡ÍàÚ ¼ªB!¤æíIŽ–#4h0žñÇ y)ל˿7¡ãGrm…òH†üX^ÖöO€ÉJß\#òƒn¸ Þxsx@Ó^ƒdY`6PcUö8–£²Ò,\§oMT¥ÐÞÓjVŒ!.h §„T8SÕ¾— üYJ²À:]iÒîií¡ yC mDµIá^ͪÑXe¾Pù{#š@J¢ü¯¼ô+5^K3äIY`]RtÓ)–ÏÒ¤ÕŸäçZ”¿JW¸–Œµ9é^Š ¸º.E´‚þfEH¸kÜ¡ê \8ˆxZÑ‚}éÒíZÉjÊÊ-Zñ‡»ÆHæÒûJ²ÀÈר½I]Yü‘FY`d‘FY`dá6OÞyíOÇ5‘22àY`dÁýþÕísùCUý ����IEND®B`‚IMAGE 1816 ./arch/misc/violin.114 ‰PNG  ��� IHDR��� ��� ���szzô��ßIDATxÚ½• T”eÇ_[-ÓÐER˜á’ sŸaæã¦rG™p˜f±²NæìVj[ÇÚÜÊ쨡¸n®éI«Í43/äPÈ2!ƒ²²«ij¬Âü{¾‰¾Ööt€fÏ9ÿ3̾ïù}¿çygØÚ�½1-{-ˆUîÃLo±[جÚ�–\À.mdW¶±N(ÙÈFÜ0€gG³œç˜— @xeܰÎU±w•Ë9ò†�<3šÝL©&¬¥¼8îf<65ñ“9.WUEEÅ­Ì¿‚~ F>4tþã!#ºLjp—1.§óÜKÊþ«N—sCпVÀ2¦$Ï3 ç­V+œNçyÇó £úÀ¥¿…šStŸTp²3nNÒîŽÓÒû0Êo ƒKOO•––VI]‹Åk·Ûyˆ+Uî¥ï—Ç;º*¸MŸUp{¾®äÎQ.~áá¼ç<ÜWðWÊ(¿�¨x Œ�FÈl‚xŸ zɣ̻Òcýîë9 Þî*®÷êÜ8ôTq¾\¥ÈÕörîQ²4Ü/�*Þ1œ^­Fƒ¡‡àM¸¥øG¥æ$àšGknÝO©Ð£›Þ“™#dAÜÏò ¬€m¶'ŽZY0yM™1½;77>ˆ²RÔ¹-øÖk.ÿ¸bñM¹îÛ3å\1YøÀŸ¢%½k×ÚbÐô8³RÀCÂUZŠÜV|éJð5¿4[óEJ|C¯].ý‹´˜ÂüÈ8aUlÌŠÁ«Jx²’a6›}¥ñœÓ‚Sv-ÎX¢ñïT#ñQ±êûÓ.ý’¾ëoúÝÍi–cO•é7´˜Þ£1à³-C¹™wÂd2 ëî*Æþ™zd„ÜkØh¬Ÿ2«zèú•”¿Pd2ì÷� %ý‹šŒ²K?4PÞ ˆ{2§ ''6› K«ÀÇuKñÀd5j9VÄ÷iÏ—àŒ]ŽŽííeºMt¿í �NikàB€�±#CŽÇÌiXä.ÆŽ'jÐýÖ¿pvýß±½ EáX•8[RÂð”îvtY%è´I)²^Íiº¯~ ó~ªD·¤Å¤¸|@ºõS£±;[‰«‹ñÃÚÅðn]ïÛqaãr¼aKEIdžåÆ£Z‚¶iœÊ! e¦N]+A¨pS۬عm6Í—dá:€uqbL; 4bœ¸¿Þu‹â­ ¸¸ùyì)ÊÀKIXÉé‰/­È£ØdçÚ: ”þô U1ëX¡º«Í®ASŽÍ9rÄöä;àŽ‹g´¡x=MŠÏÚÑ[·زÜqùÕZœtM )>ˆñaÔÛQªÝB‚ûØk’þq¿E¾¨a¦ê«}Óh)Ô a†yJ<ŠòÈ1(ay\>_€žÚ‡}=o®Çþù•Ø5Uú?¹´œEÊcCX¿µÏ, ¨7Ëjve«XŸî™!¿ÐâÐàx3cPGã°‰±&>gçåáòŠ…8¼ÀG4J<Žm“&òc�> }øÈ¡è €$ ˆbÄž阽&Yú.£ÔxÀ"ßÚdWã¸E‰W&GâAiî“ã5j+IÇãñ*TŠÂ0O,BMd8v'G �ïM— k¦ô3ÚƒT`�Yàaþ@óÎWn8aScã¤,Ó„âiÚ‡ƒi¢Ôê£pw¤‚¸/\Œ&Ea'íJCí€%†ÿn¸BÍÝÀ@!È# Œ,°cvõÄÖ"íÑF“{§N¤DãHŸêƒ}³#&À"ì;nÇœx VgÊðžMjÌÇC;0„ ®„‘°ýyò± ùÊÝ-yJaÉ®;ªôÔ™Q!ˆCAIÖFcš:[gÄ€¾øS ¢0¿ªuV¬ªÕ¡íl¦“!�ôxT/†JLÍû’•¨„:jþœŽùʾ9Ÿ_„Ad ÍÑ|åñf“¢÷×�ó5"¡9' ƒqŠqÁøÛ”ˆÎ½fÙdùm Ù¡v¼Xë ]¸B¿šh̦sOG³>U‚”¨q@Š*rñ8,Ї^$ð?Q†‘æwÕçʇÖçÊ ‡ò•íÍt"š¬*ßÑlœ&ƒC mx0 ¤:!üûçS¢¾£Æ/Ñ’Füm/ŒâVŠý\yÓ;fåÙcv͇òTÞU©’^áᄈK›²%ëèRÄd¿Æ¡ü´À‡‡H£#Z¾Ï,_½Ó Û@Y¿Ý }ùíé²eô¹†,0²àkLØÿ³„'" Œ,0²ÀÈ# Œ,0²ÀÈB?O¾§ã›Èð…,0²àûü·êG^ P1^Y����IEND®B`‚IMAGE 1809 ./arch/misc/violin.115 ‰PNG  ��� IHDR��� ��� ���szzô��ØIDATxÚ½– T“eÇßJË44$…‹2vߨ>nj ÷9eƒ (°1†XY'3ƒnj屋]ÔŽŠYfzÒn¦™y!¯ˆ€B– ”•]MS#…ý{¾E;ZÇÇçœÿ;ãûžß÷{ŸgÀVú°ðµ¾lá»~¬tëPføÐÝ®gUú°ø*vn½/»°Éµ@Á_6ðº¼4„e,öan‚�Aàíáý[—EŠœeû >no.¯‡°›)å•”ׇߌ§ÆÇ~3Íá(+))¹µÏ¼u%Ä çüúÍœ0°}n„�wéÓá°ÛOÀ½”~ì²:^ÌÝÐ �v5�–à Ö'ÄÏÐét§Íf3l6ìvûi—Ëõ£ú¡½…šûS4ß”p’NNÔìŒRÓû Ê Þ�x!’““'%%•D›Édr[­VâBY‰sÁçÅѶ¶nÝw%ÜŽŸK¹S”³?¸8÷)÷<IÜ+�*Þ#€A2• >'ˆN2AÇQä^ê2ÿöó´w{×yqz:Ê8O.Räbs1÷YÐÍðu_Ôœ‡@¯f½N×ÄCð&œöB¼ZjÆ™i1¸äÒâ’SówJ´h§÷dæ�Y^àZŠ�Øzkìà¥9cWé“Û333á(*D•Ó„_ѸäÐxó§#¿k~=QÌå“Ö'E7ŠûÔªÚ·A§ê°§%€‡ÈÍÍ…£°¯8ÍøÑãi~nª§óäø…^ÛÚ×i0ô@ʳâhmZÞI‘Õ£Ñè($ˆÅvŽYÕ8a Ç{‰ìׇâ«|ÅïÇÚy]×ßø¿›ÓY;V¤]Ó`”¹¦D€Ï¦¦§Þ ƒÁà…XuW>vOÖ"%à6˜ƒ†`õ¸‘ø2_ÑA×/¥<B‘HÿÿÐôÏ©ÓKÎýPCù€ îI‡ŒŒ X,,(�_W-Àc•¨äX=Âc¤9[„V)Z Ô?4iÖÑý&QÔ×p4O]A�gº�¼[R¤xʘ„9Î|lyºí½“«ŸÇæœäûbYìlHÂsš;Ðf¡Õ"¦H:éhŽÓ}µ==ÿÇ 4ó ²óW�$‹P=>ÛÓåøº<¬œ ÷Æ%p¼gÖ.–D„úá%nÊ%hš ± ‚0Q&‹Ñb×4„¢'�76M‰œÞdQýH®�X%Ęa1K%Ä‘ûsá^5à!>Zƒ³ë_ÆŽ¼¼‚œ®yÒ¨#€,ŠErªÙ®1Ѧt? {Ͳ)‡r•mMVê2d¨Ïz 6Ç‚3l^Tâý$1¾ŸmEgÕ`Ã"Äùw*qÔ1—›ã!ŽÄ—9bwK¡zYðï`§A|ûn“tNÍdÅO»&ÊЫBÍ$)j³äx&2Å¡C‘/ôâ¨|;3•y :>\Ý3K±m¼ø?-™4œyòCAX·µË(ñ©6J*¶é%Ë÷˜dßî˜$=Ó`SápŽ{S#PEÇaøbEtNÎÈÂù%³±–«äx4,›ÆŒæÍ ðÍÃW6Y ÄQXO,ðwdˆ‡î4H’·éÅú=&éÆ:«‡Mr¼=6‰pŸÈ¨QSA2æG+P* ¡�¡ÁØîøl¢m“ÅßÑ$zz`‘æ&ú™`¶|Í‹kÇ„`¡*/Ð<ìMa¥R†»CpÄ}ÁB¼†­4+5i4¦þ»á5wzz AY`d²*G7æ©ÖdØ9~4%ºTï킘2&Á¤ºÓ¢EXž*Ág¨1ÍÀµþgå=¶;K:¬&[¾½!Kî²+V•ž:5,�‘È(ñêpLP†bã¤Ð¿ ëU5N‰T4ÚÔ­õ´^€.Oh…P©yWÒbåP†ÄÃqÁØ“-¯à›ó¹ú&t$7ÐV¨fË×dÿ˜©x›s¢ èÇ©âgÇ…´î4Jî$ ¬×êmªþ‡óÕ6š… ôWµé´÷´šÕ‰"$„ ÷$(B!Ç,màYÒŸ,°^Wu¦´_u¦D·/[Þ\OQgVxV³v‚6Y ÔÁþˆ%ò˜àß_Nû¿I3äKY`}RtÓ[)ÖO2¥uŸå'YUìËR¸—%Š:]t Å„œ[—.ZE¿3›"$ ü5žPõ‰><D­hñ.£tùVd eõfø­'JÒç*²ÀÈߨ³I}YÞ'" Œ,0²ÀÈ# Œ,0²ÀÈB7OÞ{]OÇ7‘22à Y`dÁóùÕê/Iu P‚dâŽ����IEND®B`‚IMAGE 1805 ./arch/misc/violin.116 ‰PNG  ��� IHDR��� ��� ���szzô��ÔIDATxÚµ– T“eÇßJË44$…K2vߨ>nj ÷9eƒ (°1†XY'3ƒnÚíØÅR³£†b–™ž´›if^È+" eBeeWÓÔHaÿžoÑNV(×sÎÿŒñ}Ïïû½Ï3`+ýXäZ¶àÍ�V¾u83¼À®c¾-xóOUíÇküعõþì¦�ÖN�E[üÙ`ŸôV‹†±¬çü˜› @x}äÀöeÑ"g…Ã>ć�½×ÂaìZJ%A`%åå‘×â± ñ_Lw8*ÊÊÊ®÷@_Cž0ëñ Áó¢¸UŸ ‡Ý~Š�î  `ªã¥ÜUÿ�Ë‹ã†ê“gêtºÓf³6› v»ý´Ë店Q}âÐ^GÍ)š/Ê8É ''juƨé}eH_Ã×/ˆÔÔÔ¡)))åÑa2™ÜV«•‡¸PQæœÿqi¬­£Œ[÷U·ãûrîåì7.Î}ÊÅ}G�R†öÐÿ" Œ�†È4‚ø˜ ºÉG‰{©ËüÓ÷ÓãÜ\÷Å1èªà<¹H!‹­¥Ü#di»Ò¢æ<Ä z5ëuº‚7á´ãÅr3ÎLÃ%——œšßS¦E'½'3È‚ù¢€­·Æ]š7nE‰>µ3;;ˆ’bÔ8MøÑ‹K7¿:¢ñC©æÇ¥\!Y`>)ºQ‡VÕ¾ :U—=# <D~~>ÅÅxÁiÆ·Ž8OósÓ”8] ÇôÚáоLƒ9ÈW�iGÌŠ£õQx#MWF"ŒF£¢˜ ž³›pÌªÆ S$ÞJ`¿>Ÿ*~>îÐ>ÜsýÕÿ¹9åˆc%Ú5MF™û`ZølJ“aFú-0 ^ˆU·b÷-Ò‚n€9dVO ]týRÊý ü/�HÿܽäÜ�u”wâöôñÈÊÊ‚ÅbÁüÊ»ñyÍ|Ü=N‰jN€%±£<FZsE8a•¢­HýMk‰fÝo2Eý¯�ލ«àL€bKšS0×Yˆ-OT¡ó½Wprõ3Øœ—„‚P,‹… I!xZs:Ì"´[ÄI7Íqº¯¶¿ç?èX‘æá&ƒìüe�©"ÔNˆÄöL9>¯,Ä/+çÁ½q Üï¯Å™µ‹ñŽ%EáXÄB¥$-E8–E&Ê1Úìšf‚Pôàê–©Ñ3Z,ªoÉÂe�«b„;b0f«„8rW>Ü«æ<Ä{kpvýóØQ†W°‚Ò5"OšuC±HNµÚ5&Ú”¾t¯Y6õP¾²£ÅªBC– YRĿěጅê`¼"Æ×s¬è®™ lXì8ÿF5Ž:&z¡)ˆ#ñižØÝV¬Þ@ûØi߸Û$[7EñÝ®I24å«P7YŠú9žŒFiøp °8& _ÎÊCWõƒˆ®wWc÷¬rl› þD[6 güD‘Ögí2Jüj’ªmzÉò=&Ù—;&KÏ4ÙT8œ§ÄÞô(ÔÐqXþX†“3sp~ÉìŸíÄC*9ˆŦ±cøcó|Bóð™MÖF� Ö <ÄàYâá; ’Ômz±~Iº±ÁªÄa“¯ ǽâ Ü) ÄjÔR”ŠÇc(„`¦P€ªðPlOŒô|4I„Ž)â¯h’½�ý°ÀÈs ýÌG°?W¾æˆE‰µcð@Œgiö¦ˆ°R­Àmá¸âÎP!^JˆÀVš•º šSÿÝpš;½�ý… Œ,0²ÀY•cš Ôë 2ìœ0†‰=ª÷ö@L  “`2o¾ ÓcEXž.ÁG¨1Í@/ÿYõ}$lwŽtD]®|{SŽÜ;d—­*=uzD¢QÕ‘˜¨ ÇÆÉQ /$~ vEÕ<5ZÑlS·7Òfxz <¢B!¤æ=Ɉ—C1÷%„bO®¼ŠoΧ÷MèûH®¢­PÌ•n4Ⱥÿ 0K%ð6çD!ÐW#&,Okßi”ÜBØh´©.TÛh.Ð_MÔgÒÞÓjÖ&‹1Ò ¤‡T8³µÁg üÊ@²À®¸j³¥j³%º}¹òÖFÚˆ³Â³šõ%°É‚¡ D<TÆ…þü|RÄOÔøUš!²ÀÈóIÑM¯§X?È–6|`”Ÿ<dUý²/Gá^–,êvÑ1<vn]¦hýΊ,ð×xBå |xˆZÑÒ]Féò­:ÉÊêÍ:ñkïO’, ÏUd‘¾±g“|YÞ'" Œ,0²ÀÈ# Œ,0²ÀÈBoOî3=OÇ7‘22à Y`dÁóyoõ¾¶ Pã«o¨����IEND®B`‚IMAGE 1805 ./arch/misc/violin.117 ‰PNG  ��� IHDR��� ��� ���szzô��ÔIDATxÚ½– T“eÇßJË44$…K2vߨ>nj ÷9eƒ (°1†XY'3ƒnÚíØÅ.¦G ÅLórR»˜fæ…¼" Y&dPV––ij¤°Ï·h'ótÄÀžsþgìŒï{~ßï}ž[âÃÂWú²9ïú±Ò̓™áC?v »þo*}X|•;·Æ—]ØàÇZ  `“/ëÿÿ�P½:ˆe¼æÃÜ‚Àú¡}[FŠœeû€ë ÐU¯ b7SÊ K(ˇތgÆÄ~3Ùá(+))¹õ:x!¼è×gÚ³ýÛgEp·>»ýÜGéÃþVG‹¹®�ˉáêâ§êtºÓf³6› v»ý´Ëåz˜Q}áÐÞBÍý)šoJ8É1''jvF©é}eÀ5ÕÉÉÉ“’’J ¢Íd2¹­V+q¡¬Ä9ûóâh[[ ·ú»nÛ©Rîåì.Î}ÂÅ$€§)» ðoE Iñ9At’ :Ž"÷—ù—S“cÜíe\çÅ)Qè(ã<¹H!‹ÍÅÜSd©ëiQs¢½šõ:]Á›pÚ ñF©g&Çà’K‹KNÍŸ)Ñ¢Þ“™}dAÈz£€­±Æ\3jq‘>¹=33ˆ¢BT9MøÙK7¿;"ñS±æçcÅ\>Y`½Rt£¸O­ª=kuª{ZxˆÜÜ\8 ñºÓŒ1žæç&)q:OŽŸèµÍ¡]NƒÙ¯·�R™‡kÓ"ðNŠ®´xFD!A¼f7áˆUc¦p¼—(À^}(¾ÊWüzÔ¡}²ëúÿss:Ë!GŠ´+Œ2÷þ”ðÙ"ÔԻ`0¼KïÎÇÎ Z¤ÜsÐ ,=_æ+:èú”G)éû_�úþ™uzɹ¿�j(Ľ©£‘‘‘‹Å‚ÙåâëªÙxp”•œ�ó¢‡yŒ4g‹pÌ*EKú‡æ"ÍjºßxŠúš�ç©+àL€bSŠÏ“0Ó™MÏU ý£·p|ÙKؘ“€¼`_,Œ†µ AxQsÚÌ"´ZÄI'ÍQº¯¶»çßïHæÉƒìüe�É"T ÇÖt9¾.ÏÇoKfÁ½nܯę•sñ%¡~x•†rI�šÆŠp$ƒ L” b´Ø5¡èÀM#§4YT?’…Ë�–F 1rHLW qè\¸—ÎxˆVàìšùØ–—‚Uq!XÌ é‘':È¢X$'šímÊÕt·Y6ñ@®²­ÉªB]† õRÄÆø;á ‚WÔx?IŒïgXÑY5X;×qþJvŒõBS<‡â˱»¥P½–,ø_`»A|ûN“tfÍÅÉãdhÈU¡f¼µYr<ˆâÐÁÈúanT¾–ƒŽÊÇ=.ÃÎi¥Ø2F|DK& gžü�DvÕÚa”øT%[ô’E»L²o·—ži°©p0G‰Ý©¨¢ã°|±8:ǧfáü¼Ø;݉'Tr<Œ #GðÇæø‚æá+›¬…�â(¬;xˆþÛ2ă·$É[ôbý.“t]U‰ƒ&9Ö ÅÃâ�Ü/òÇ>jÔTŒg£(aªP€ŠÐ`l÷|6N„¶ âïh½�ݰÀÈsýÌG°7[¾âE‰•#C0Gˆ—iv'‰°‡R© Ã=¡¸âþ`!ÞŒ Ãfš•š4šSÿÝpš;½�Ý… Œ,0²ÀX•#óÔûk 2l3‚Ž}]ªwwAL “`Ò3£EX”*Ág¨1ÍÀµþgå=¶3K:¤&[¾µ!Kî²ËV•ž:5,�‘È(ñêpŒU†bÝøÐ¿ ëQ5NŒT4ÚÔ­õ´^€.Oi…P©yWÒbåP† Ç#qÁØ•-¯à›ó¹rº$7ÐV¨ögËÖdÿ˜¦x›s¢ èG«âF‡´n7Jî" ¬Çêmª¾óÕ6š… ôWµé´÷´šÕ‰"$„ õ$(B!ÅtmàYˆÒ—,°Wu¦´Ou¦D·'[Þ\OQgVxV³v¬6Y ÔÁþˆ%ò˜à_ç'„ýBWÑ ù’FX¯ÝôVŠõ“LiÝ'FùñVÕo{²î…‰¢NÃã1!çV§‹–ÒïÌ É'T½b‘D+Z¼Ã(]´Y'YAY¶Q'~ûãq’9ô¹Š,0²À7ölRo–÷‰È# Œ,0²ÀÈ# Œ,0²p•'﹉®§ã›Hð„,0²àùüß껫 P2¹•����IEND®B`‚IMAGE 1809 ./arch/misc/violin.118 ‰PNG  ��� IHDR��� ��� ���szzô��ØIDATxÚ½– T“eÇßJË44$…K2vߨ>nj ÷9eƒ (°1†XY'3ƒnÚíØÅ.fG Å,3=i7Ó̼WD@!Ë„ ÊÊ®¦©‘Âþ=ßÚÙÑ<ft|ÎùŸ±3¾ïù}¿÷yly�‹^ȼÄ*7g†ƒØ ìjVm�K® `gÖ²s‚X'”l dƒ¯À‹ÃXÎKÌM ¼=r`ç’X‘³ÊarU�^Æ®§T–S^y=ž˜øÍt‡£ª¢¢âÆ«1äÙ ³ž Ü=/F€ÛõÙpØí'à.Ê�vQ-ç®ég;ør�+Hà†êS’gêtº“f³6› v»ý¤Ë废Q}áÐÞ@̓)šo*8É1''jwÆ©é}eÈ•\n¥§§MKK«$ˆ.“Éä¶Z­<Ĺª çüÏËãm]Üšï*¸m?Wr'(§pqî.î'xœ2Ôo€+²À`L#ˆÏ ¢—LÐq”¹»Ì¿ý<=ÁÝ]ÅõžŸ‡ž*Γó9ß^Î=F–õ €Š·ÀC ¢W³^§kã!xN{)^­4ãÔô\piqÁ©ù;ZtÓ{2³,û @۵ÖÄ¡‹ Æ-+Ó§wçææÂQVŠ:§ ¿:âqÁ¡ñåOG,~)×üz¬œ+& }Ÿ?E7JúÔªÚ³N§ê±g¥€‡(,,„£´¯8ÍøÑ‘ài~fš'‹äø…^»Ú×i0õ5|þd2+7fÅà 9\YÉ0ˆR‚xÉn«ÇLÑx/U€½úH|U¬øý¨Cû¨÷úkÙ-:ËGÊ´«ZŒ2÷þŒðÙ!ÃŒÌÛ`0|+n/ÆÎ)Zd„ÜsØ0¬?_+zèúÅ”)ø_�þ¹MzÉ/�(ę㑓“‹Å‚ùÕ÷âëºù¸wœµœ�‹âGyŒ´ç‹pÌ*EG‰ú‡ö2ͺßdŠúŠ�©kà”À±)CŠ'Œi˜ë,Ʀ§jÐýÑ8¾ò9l,HAQx –$ŽÂº”0<«¹]f:-bФ—Žæ(ÝWëïù:R¢y´Å ;{ @ºõ¢±5[ޝ«‹ñÇòyp¯_÷Ç«qjõB|`IEId^äF¡Z‚¶‰"É!eŠvM+A(ü¸¶mjìŒ6‹êG²p ÀŠ8!ÆŽŒÙ*!ÝS÷Šy�ñÑ*œ^û2¶eàͤ,ã„tÈ“VäQ,’ív‰6¥ïÝm–M=P¨ìj³ªÐ”#CsŽÔ±1ùV8£Fàu(ÞOãû9VôÖÍÖ-ô@œ}§‡q±9âA|Y vw”ª×‘…à>¶Ä7ï4Iç6LQü´c’ -…*4L–¢1OާcCQ9Å ,Œ‹À·³ ÐSû°¢çÕØ9«[&ˆ/ƒèÈ¥á,’ €²Àú¬FI@½QR³E/YºË$ûvÛdé©›  ”؃::‹ Ëâ#p|fÎ.šƒ½³xD%ÇCQáØ0v l>€/h¾²É: ‰Âü±ÀC Þ–#¾Ý Iߢëw™¤ë›¬J4Éñö¸HÜ/ÁÝ¢`ì£Fm%éx2^JAf ¨‰ ÇÖähÀg“Dèš"þŽæ Õ à—Fx˜ëèg>‚½ùòU‡,J¬ªP<Oó°;M„=”ZmîˆÀEw‡ ñZR6Ó¬4dÑ ˜bøï†sÔÜéð‚,0²ÀÈ;`UŽi-Rïo4Ȱ}ÂJ4öyUïöBL‹ “`²o½ÓãEXš)Ág¨1ÍÀ•þgå;¶3O:¢!_¾µ%Oî²KV•ž:3*±‚`È(ÉêhLTFbýäп ëWµNU´ÚÔÍ´>�¯Ç´B(„ÔÜ›¬D9”Q£ñ@R8våËkøæ|.ßÿäÚ Õþ|ùÁfƒ¬÷Ÿ�³T_sNýx5â"‚ñÌøˆÎíFÉmdõÛ@³M5ð`±ÚF³pŽþj¢1›öžV³>U„”¨‘>€E$¤Â‘˜­ =Mà÷Q’ÖïªÏ•¨Ï•èöäËÛ›i#šÌ Ïj6N”À& …:<‰RþûË)Q¿Qã7i†É# ýðÅë'¹Ò¦OŒò㬪?öä)ÜKRE½.:†‡"άÉ­ ß™C’þO¨þ |xˆ4ZÑòFéÒÍ:É*ÊÊ:ñ[O’, ÏUd‘¾±g“þÏò=Y`d‘FY`d‘Fúxòþ›ð>ßDÊÈ€'d‘ÏçÿVÔ% PEv8r����IEND®B`‚IMAGE 1809 ./arch/misc/violin.119 ‰PNG  ��� IHDR��� ��� ���szzô��ØIDATxÚ½– T”eÇß\MÓÐf¸(ÃÜg˜ù¸©ÜÇQf`f@†A¬Ì³f]VírÜÝÜÌô¨¡¸–™žÕÚÖ43/äPXË„ ÊZífš)Ì¿ç›Ø9Ñ8Ï9ÿ3̾ïù}¿÷yؾŗ-ÿ§+Ý3šÞõcCÙ¬J_åîmóe7vú±V(Øíˆß1€—F±Œ—}˜› @xsìÖµ‘"g™Ã>âŽ�¬Å6P^{7ž›ûù‡£¬¤¤äž;1â¿Á žÞ¾$B€õépØí àÊ`ö«:WÌÝõ{�°œn¤>!~žN§»l6›a³Ù`·Û/»\®ÇÕÇíPjîOÑ|^ÂIÎ;9Q³3JMïƒ(#"99ydRRR)A´™L&·Õjå!n”•8—}Tmk+á¶~YÂíÿ¦”»H¹zÉŹ/º¸¯ àYÊHvû‚7ÿ¯È#€2› >"ˆN2AÇQä^ã2ÿÍœw{×ysn:Ê8OnRäfs1÷ YÖ@ÏEÍyˆaôjÖëtM<oÂi/ÄßK͸2'·\ZÜrj~I‰íôžÌ' ÂÛô¥€m³ÆŽ\“3y}‘>¹=33ˆ¢BT9MøÎ[7?9"ñm±æ»óÅ\>Yè?@×ÐÅýÛª:º]§ê°§%€‡ÈÍÍ…£°¯8ÍøÊãi~m¶—óäø–^ÛÚ×h0‡ @Êi³âLmZÞJ‘Õ£Ñè($ˆ—í&œµªqÞŽ·8¦ŧùŠÎ9´K»®ÔmøúRt–cÎi77eî)à³3E†¹©À`0x!6>˜C3µH ¸æ QØ4e<>ÉWtÐõk(OvkÞG€Á¤q^rí¿�5”wâáÔ)ÈÈÈ€ÅbÁ²òGñYÕ2<:Y‰JN€UÑã<Fš³E8o•¢¥@}©¹H³•î7ƒ¢îÀ™<u\éðBìN‘â9c;ó±ûÏhïu\Øô7ìÊI@^°/ÖÆŽÃö„ ¼ ¹mfZ-bФ“ŽæÝWÛÛóv¶@³´Á »Þ Y„ê©áØ—.Çgåùøqøw¬‚ûý-¸²e%Þ±$¢ Ô/qãP. @Ó4Îf„‰2SŒ»¦‘ ½Ô4+rn“EõYè°1JˆIc†c¡JˆÓÌ…{〇xo3®n[ýy)x#.ë9!]#ò¤QG�Y‹äb³]c¢MÔ#ijlÖÉ\e[“U…º ê3¤ˆ]ñà ƒê@ü+IŒÿ,²¢³j1°}¥âú[•8ã˜æ…¦x NÄ'9bwK¡z;Yðïà€A|ß!“tqÍLÅ×§ËЫBÍ )j³äøKd ŠCG#_臕Q!øbA:*Ÿö@t¼» ‡”bïTñÿ@´dÒpæÉO@Y`=ÖA£Ä§Ú(©Ø«—¬;l’}±†ôJƒM…S9JI@‡Eà‹õÑ!¸0/ ×W-±…NüI%ÇSaÁØ9i"l^€i>µÉZ ŽÂzc‡¾?C<ú€A’¼W/Ö6IwÔY•8e’ãÍÉ¡x\€ù"§FMÉx>ZRAæ ¨ ƾøp/À‡ÓEh›)þ’æ Ñ Ð Œ,ð0 ŸùŽeË7Ÿ¶(±eR–«ñ"ÍÑ$ŽR*µax(T�AÌâÕ¸0ì¡Y©I£0Eðß 7¨¹Ó Ð[²ÀÈ# ì¤U9±1O}¢Ö é)á8Þ¥úHÄìñ0 Æ!}Âý˜-ºT >´È@ù¸húúŸ•÷HØ¡,阚lù¾†,¹wȺ­*=ujX�"þQâÕᘦ ÅŽ /$~ Ö¯jœ©h´©[ëi3¼�]žÑ ¡Ró®¤ÅÊ¡ 'â‚q8[^Á7çsûMèùHPÈ–Ÿª7È: °@%ð6çDAÐOQ#*ÄÒzÀ(y€,°~¨·©†œÊWÛhnÐ_MÔ¦ÓÞÓjV'Š6Ö  …T8 µW ü1ʲÀú]Õ™ÒÁÕ™ÝÑlys=mDYáYÍÚiØdPû#–@Êc‚Xö=5~ƒfÈ—,0²À¤è¦÷P¬dJë>0Ê/œ´ª~<š¥p¯MuºèžŽ ¹¶5]´‘~gEHøk<¡ |xˆ$ZÑâƒFéº=:Éfʦ]:ñ?ÞŸ.YNŸ«È# |cÏ& dyŸˆ,0²ÀÈ# Œ,0²ÀÈ# =<yÿMt=ßDÊÈ€'d‘Ïç·«Ÿ±c AgxÇŠ����IEND®B`‚IMAGE 1786 ./arch/misc/violin.11A ‰PNG  ��� IHDR��� ��� ���szzô��ÁIDATxÚ½– T“eÇ_MËK hh —dì¾Á>nj ÷9eƒ (¸1†h™'3“n^ªc»˜5³Ìò¤ÝL3ó‚wD@!/ )¨•v3Möïùí¨ŽäsÎÿŒñ}Ïïû½Ï3`˽XÈjo¶àcV´i�ÓîÃîb·³J½Xl™»´Æ›]Yïà o£7ësÛ�^ëÏÒ^÷b.‚�AàÃA=—„‰Åv[ßÛðjv'eA`9åAwâÙQѧ'ÙíÅ………½oDß—|zLnpŸæ9¡LÑ¥Ân³%€‡(=Øuu¼€ëö�°¬(®Ÿ..vªV«=o2™`µZa³ÙÎ;ÎÇÕ×vÍ]ÔÜ—~º“œpp¢zG„šÞûSúv Dbbb¿„„„"‚h2.‹ÅÂC\).tÌ?Zim*äÞÿ®ÛúSw–rñœ“sur?À3”~† Œ�úÈ‚8J­d‚Žc¢k±ÓôëO“¢\ÍÅ\ëÕÉh)æÜ¹J!«õÜ<²Ô«ÓÔœ‡èE¯&V[ÇCð&¶|¼UdÂ…IQ¸æÔàš#ü¯jÐLïÉÌ>² d]QÀÖX¢û-αl¢.±9==nˆ‰ù(sñ‹=×ìážüaÃÏ῜(àrÉ»©àIGŠnó•Eµg­VÕbK‰‘ {~>Þt˜ðƒ=ÊÝüÒ%ÎçÈñ3½6Ù5ïÐ`öú�ÖQ€¤C&ÅáÊ”P|”$‡3%ƒÁ ‘O¯ÛŒ8fQã„1ŸÄ °W„“¹ŠßŽÛ5sÛ®ïîèhÑY<6Q³ªÆ síO ŸõI2LN¾z½Þ±bJ.vŽÓ iðÝ0ù÷ÇÊ‘CñM®¢…®_Ly‚"ù¯�=Hÿì*äÒß�”ÏâÁä‘HKKƒÙlÆüYàTÙ|<2B‰RN€E‘CÜFê3E8a‘¢!O}Ž û¥¨;p8G]B�Ú�<“¤xÖ€ÙŽ\l|¾Í_¼‹3+_Ɔ¬8äxcIô¬óÇõÃ×h–´ÒѧûjÚ{þ½Žå…Ï­ÑË.ß�(Bù¨lI•ãÔ¬\ü¾|\ëÁõåj\X½Ÿ™ã‘äƒ×¸!žæÇÒDh4RƉÑ` ¯%E{�º×›\gVý@n�X!Äð}0C%Ä¡‡³áZ1à!¾X…‹kÞÀÖœ$¼ˆeœ®¹S«%€ ŠYr¶Þn¤Mé~KˆÝ&ÙøÙʦ:‹ Ui2T§IÝbïƒ#x ^UûáÓ1¾ŸiAkÙl`íB7ÄåJqØ>×›ã!Ä7YbWC¾z-Yð½%À6½øžFéìŠqŠ·‘¡&[…бRTfÈñB˜ ‚ W胅øvzZJŸrC´|¾;§aó(ñ? Òi8sä ”,°[ÖvƒÄ«Ü )Ù¬“,Ýe”}»u¬ôBU…ƒYJìNE‡Yàe‘835—ÍÄÞ<­’ãÉà�¬>Œ?6À×4'­²ˆ¡°öXà!úlMئ—$nÖ‰u»ŒÒuU%åøpDÆ4‘/öQ£º¼D<©@‘ÀS…”`KlˆàȚƉ¿£9ˆ÷�´Ã# <Ìô3ÁÞLùªCf%VÄ•^¡yØ ÂJ©& à$ˆiB¼ŒM4+)4ÆPþ»á 5wx�Ú AY`d°(‡Õæ¨÷WêeØ6j%ûÚTïnƒ˜8FÁ¤Þw/&Eа4Y‚#f¨1'Í@Gÿ³ò Û™!X‘)ßR“!÷ Ù «JO<a_È(±êŒVaÝØPп ëTÕŽSÔZÕÕ´€6ó4B(„Ô¼-)Ñr(ƒ‡âñ˜�ìÊ”—ðÍùÜ´ :’n´ªý™òƒÕzYëÍ�ÓUOsNäÝH5"}ñâÈÀÆmÉýduÚ@µUÕó`®ÚJ³p…þj¢2•öžV³<^„¸àA€8E¤ÂA˜¡ñ»HàRz’Öé*O—ö(O—h÷dÊë«i#ªL ÷jVŽ–À*óƒ:ÀÑ2+*à·7â‚¥ÆïÑ y“FX—Ý´7Ų#]ZµÃ ?sÀ¢ú}O†Âµ$^Ôê¤cx**ðÒû©¢ô;3)B²À_ãU—XàÃC$Њl7H—nÒJVQVnЊ?ørŒd}®" Œ,ðݛԕåy"²ÀÈ# Œ,0²ÀÈ# Œ,ÜâÉ;o¢íéø&RFÜ! Œ,¸?ÿ·úVÿ/öSM®����IEND®B`‚IMAGE 1778 ./arch/misc/violin.11B ‰PNG  ��� IHDR��� ��� ���szzô��¹IDATxÚ½– TSuÇÿ•–i hH dì½±]@Ô@yÎ)l l ÂÆbeÌ zi¯c+ÍŽŠYæã¤½L3óA>…,2H-{š¥F*ûö»÷à=Y§#5ówÎ÷Œq÷ûÜÏÿ÷»À–°èlî;A¬|ã@fù ˆÝÀ®fU°¤š�vzu ;».ˆµÀä ¬ïU˜7€e½À|‚À[ƒ{·¿+óT¸]ý® À Øõ”J‚ÀÊ냯Ç£‡âvW”••Ýxµ ú=Ôkú“!};gÇHp»9n—ëÜEéÅþT‡K¹kþ�–—Àõ7''M3™L'ív;œN'\.×I¯×{?£úÜm¼šS GË8Å'kõÄéé}¥ßHMMퟒ’RN6›Íçp8xˆ³ež9Ÿ•Æ;;ʸU_—q[~(çNP~ùÖËùNx¹ï àqJ¿!È#€~2‰ >#ˆ.2AÇQâ[èµÿüÔ_g×unj.TpBÎQä\k)÷Yêã75ç!úЫÝl2µð¼ «¯–ÛqjJÎ{8ï1@H™ôžÌì! Rv%Š�ØjÇðþ óF..1§vfggC€()FdžŸÜñ8ï6ˆùÝ‹K ?)åŠÈ‚ÿ�ÝC—ø‰C·kIwÁ•‘ ¢  �îâb¼â±ã;w‚Ðüô$-Nªñ#½v¸¯Ó¥ã'@Ú»æ`}F ÞNSÛ‘«Õ*@Ä‹.9ô8b‹Æ»c$ØmŽÄ—Eš_/6§ë¯ýÏÍé,*1.o²ª|{ÓbÀg]š SÓoƒÅb!–Þ^„íŒH ¹ ö°X6j¨Ðœ®_Hy¢ Þÿ éŸÕ`Vœ¾PGyŸ îL…¬¬,äççcNå½øªfî©E5'Á‚ø!@k® GJ´MÖÛZbXEß7ž¢ÿW� õUpª@„ئÄÖÌòaÃSUèüð [öÖç%£0<P�X“†g · Ã.C{¾œ¢è:ì6¦ï5öôüûšlx´É¢:s @ª µ££±9S¯*‹ðÛ’Ùð­]�ßG+øÆbæqCP©AËXe„2AŽ6—¡™ 4=¸¶ebìÔ–|ÝwdဥqRŒÔ3tR¸§�¾¥³‚¸Ø|KaV&F`1'¥kdBšM#ãMœhulô¿ü€î´«&î+Ðv´8thÈR¡1K)@¬Oºž¨AxAŠ÷Räøf¦]5³€5óáûp9μ]ƒî±"4E€8@_äÉ}mÅú5d!ø²�[-ò›·Û”³ê&h¾ß6N…¦êÆ+QŸ£ÆÓ±¡(ˆ"iæÇEàøô<\¨~X€¸ðÁ2lŸ^ŽM£åƒh˦á,Tï#€²À.[Û¬Š€Z«¢j“Y±h‡Mu|Ëxå©&§ûó´Ø™ƒ:Ž|I ÇGàØ´œY0»gxðˆN‡¢Â±nÄ0þØD€Ïi¾tªÚ ‘Âzb‡è»%K>p«E‘ºÉ,7ï°)×68´ØoSã­‘‘¸_‚»eÁØCZ&§âÉx Ê%a˜&• *2›“¢E€OÇÉÐ1Aþ5ÍÁ Yàa®£ŸùHv窗È×bňÌÕ…âyš‡)2ì¢T£pG¤^‚¸;\Š×£°‘f¥.ƒfÀÃ?ÎRsÐS²ÀÈ# lŸC;¬¹P¿·Þ¢ÂÖÑÃ(ÑØÓ­zg7Ĥˆ¡°I† óÖ[0%^†Eé |š¯5æã¥ø·ÿY‰G¶ç(Õåª77å¨Å!»dUé®Ó£B+ †Š’¤ÆXm$ÖŽ=ø-P˜_Õ<1VÓìÔ·7Òfˆ�Ý3J¡‘Róîd WC5$†cG®ºŠoÎçï›Ðó#¹†¶B·7W½¿Ñ¢êú+ÀtDlÎÉÂ`¥G\D0žѾժ¸,0¿ 4:u½÷é4 gé¯&ê3iïi5kÇÈ5XHÖDB)ŒÆÐ_ü>Jo²Àü®Úle¯Úl…iW®ºµ‘6¢Á®V³~¬NU(ôáÁN • ῾”õ35^I3HYð·½x7Rg+>¶ªísè~Û•£ñ½<FÖå¥cx8!âôªLÙRú™)Yà¯"–Ÿøð)´¢¥Û¬ÊEMŠå”eëMò7?§˜KŸëÈ# |ca“®d‰wDY`d‘FY`d‘…Ëܹÿ&ºïŽo¢dd@Y`dAøüŸêÔ“õŸ{„áß����IEND®B`‚IMAGE 1763 ./arch/misc/violin.11C ‰PNG  ��� IHDR��� ��� ���szzô��ªIDATxÚ½– P”eÇßJË444Å]Žäcï]Øåðä^WÙ…]pÙvY±²&+“ŽÑ®±ÃµQC1ËL'ʼ/¼…2(5;M3%…ý÷|ßÐ7YÓˆA¾3ÿÙÝÙýöù}¿çyØ?¾ÂŸÍù €•lîÏÌ›ØmìFžr?_áÇ.¬òg×°f˜´ÑŸõ¾a�¯÷cóü˜ @X;°góÂHÎSêvõ¹!�¯õc·Rf–PÞx+ž÷Íd·»´¸¸øöÑçå€ÓžÔ»uV„÷šÒáv¹ÎÀ”ì/çx‘á¦ÿ€åÄúšâ§Ƴ6› N§.—ë¬×ë}ŒÑù­¿ŠR¢¾)6ÈOx \£'ZG¯‡Rút Drrrߤ¤¤‚h±Z­>‡ÃÁC\,-öÌþ¼(ÆÙRlXyºØ°ãÇÃÊùï¼ß¯áx–Ò·Ëd@™HŸD;™ vúxm¿ü89Ö×Zjh¿<%m¥!—)r¹±Èð YêÕe*ÎCô¢G›Éhlà!xWÞ*±áÜäX\ñêqÅ!Åz´Òk2s,HYw`«q}äŒ\\hJnÍÌÌ„�QX€ ?»cpÅ%æww$~*ŠúùD‘!Ÿ,t‚0tÃ?qh÷¯6jÛ\i à!rssá.(À›¾wÇ Å/LÔàlž ?Ñc‹[ÿ f¯îH9jSZu)*xÓâa±Xˆ‚˜ç²â˜C‡Öp|˜(ÁS(¾ÊWÿzÜ­ºãú›ÿsqêå€c…úåu¥ïPJø¬OQbJê=0›Í"ÄÒ{ó±g¼)ƒî€mh?,5_æ«Ûèú”'(réù_�zþ™5&ù…?ª(Äý©£‘‘»ÝŽÙ3Æ×³ñðH Ê Ì,iÌæp¡@Ó$Ýw…Q+éûÆQt×ðiž®Œ�Îu�ˆSxÎ’„™ž|l|¡ ­[ÞÅÉe¯`CNò‚ý±0n0cbší2мZsœ¾WßÙþ÷:6)êé:³ò·«�’9TŽÇöt¾ž‘KKfÁ·f>|ÛVàÜŠ¹øØžˆI¡bñ†1Žeph¶RÆËÐ䊪'ug�nn˜9¥Á®ýž,\°4ZŠzã­GÊ…oé,€‡Ø²çW½y)BñÅ)]à ©7@Ç›8Ó芲Ҧ\{@÷Ù”çjZZÔd(Q›¡ 6Äß OØ�¼¦ ÂGI2|;ÝöŠ™Àê¹ÄoëÊ�Z ‡£ñeŽÌ×T [M¯ °Ó,»sU1³j¼ú‡]c•¨ËÕ¢jœÕY*¼„¢ÐþÈ—`ntNMËA[ùSDÛ¦eÀÖѲ@4eÒpæ©@Y`×<»,r¿J‹¼l«I¾h¯UyjÇ8Ź:§Gr4Ø— j‡]âÅ1!895ëªá{2,ëG ãÛ&|Aóð•SÙD�Ã)¬3xˆÞ;2dýwšåÉ[M2Ó^«bMCƒ#VÖŽ Åc²Ax ÄÁdN,^"Š©R ÊBƒ±=>\øl,‡–ñ²Ó4‰"@',0²ÀÃÜBÏùHd«–µk°bDæhƒð*Íþ$û)åú0Ü*—  –âíáaØL³R•F3`à.RqÐY²ÀÈ# ì°C3¬>Ow¨Ú¬ÄÎÑÃ(á8Ø¡z_ÄÄ!°J#ýî»09†Ã¢T9>³+A…ùxi®÷?+±%lO–b@U¶j{]–J²«V•î:5l"%PRâuᣠŚq $~ $Ö¥S?!R]ïÔ5×Òfˆ�žÑK¡–Rñޤũ  ‚LJco¶ªŒ/Î矛Ðù–ÜD[¡=”­:RkV¶ÿ`šV"7pCa¥CtH ^Ò¼Ó"¿‡,°.¨uj{É×9i.Ò_MT§ÓÞÓjV&rH($¨C¡Ä#ú óþ(¥'Y`]>•™Š•™rãþlUc-mDM-¬fõ9œÊ è‚G 3bƒ}#!ì*üÍ?Y`d¡«åÅVÜNqìÎTÔ춨Nvh/íÏRû&rí^jÃS±!V¦sKé3Ó)R²À_#„N·XàÃC$ÑŠí²(m6Ê—S–m0ÊÞß6V>‡Þ×’FøÂÂ&uçïˆ,0²ÀÈ# Œ,0²ÀÈ# ׸ó®›è¸;¾ˆ‚‘!d‘áý;�“ð}îM…×����IEND®B`‚IMAGE 1767 ./arch/misc/violin.11D ‰PNG  ��� IHDR��� ��� ���szzô��®IDATxÚ½– T“eÇ_Ë»)¢!)l\”±ûÆ6¼€Üç” 66P`c ±²Nf ݼdÇ.–•53ÍËI»YÞòB^…,2(+oe^#•ý{¾EßÉ:(Èçœÿ;ãûžß÷{ŸgÀVx±µ}Ùü¼Yá¶~̸՛ucw³–y±èR/vuC_v}³7k €œ-}YÏ»ðZ–ò†sï èÒ°$Lä,rØ{Ý€}XWJ1A`eõ€®˜;*ò»IGQAAA»ÑëeïÎSŸ÷íÙ4+T€ ÉpØígàJgö—:™¯ëô�°qºÞ†˜è)z½þ¢ÅbÍfƒÝn¿èr¹f0ª¯ÚnÔ܇¢ù®@'9åÔ‰êœájzïOéÕ!ñññ½ãââ ¢Ñl6»­V+q½¨À9ïËü¡¶ÆÝú t».êÎP.ŸuéÜg\ºóð¥w»!È#€^2‘ ¾$ˆf2AÇ‘ç^ì²üraR„»©H×|cr8né<¹A!uùº9d©{»!¨9Ñ^-½¾–ƒàL8í¹x«Ð‚K“"pÓ¥ÅM§æhÑDïÉÌ!² dQÀ6X#{/7|yž!¾)55ˆ¼\”:ÍøÙ17>¿9ÂðS¾æçSùºl²À:¤èFQŸ[U6êU·ìI1à 233áÈÍÅ›N Î9"<ͯNTâb–?Ñk£C»š³{G$³(ŽW$…âý9\IÑ0™Lˆ\‚xÃnÆ «§Ì!ø0V€ƒ† |“­¸rÒ¡Ýrý=ÿ¹9eÿyÚ5Õ&™ûpB(¸lNarâHFbåƒÙØ;^‹ßû`ñïƒU#áëlÅ-º~1å)Š„@ºü€Î¤f¥ArõO€rÊÇñp⤤¤ ##óŠÇ·¥óðøp%è2>ué"œ²JQŸ£>[—§YO÷KQÿ+€ãYê¸ÔÀClIb®)3ÙØòB š¶¿ƒÓ«^á›/‰ˆ1þxYó�-"4dˆ)’f:š“t_m[Ï¿û‰Íìj£ìÚm�ñ"” ÁÎd9¾-ÎÆ¯+fÁ½i!ÜŸ®õ4ÿ8#9AÞxM7Å_ÔŽáD A˜)ãŨ·kjBÑ€{j'„M®ÍP# ·¬ bXÿž˜¦âØc™p¯œpyÃ"ìÊJÀº¨@,× é‘'5zHq&ÎÔÙ5fÚ”Öt¿E6áH¦²±ÖªBeŠ U)RÄ'уá îj?|'ÆÓ­h.épo_ƒkï/ÃqÇhšâ8F_»ësÕÉ‚O«�»âû÷š¥3ËÇ+Îï#Cu¦ åc¥¨H“ãÅ0?äõC¶Ðû¶áÃÆ×qkë*ìZˆ£Äÿ€¨O¥áÌ’!€P²ÀZ­=&‰W™IR²Ã YºÏ,û~×Xé¥j› GÇ)±?1¥áB¾ùé)i¸¶p:NsâY•O`ó°!ܱñ�_Ñ<|c“Õ@…µÅÑsWЏßn£$~‡AlØg–nª´*qÔ,Ç{Ã0Cì‹GE>8DjsâñüP þ˜" $(�;£Cx€/ƈÐ8^üÍA,Ð Œ,p0÷ÒÏ\ÓåkŽe(±vX æ«üð*ÍÃþ8P–iƒñP�.‚x4@ˆ·£‚±f¥<‰fÀÊ}7\§æN ­d‘FØ«rHM–úp…Q†Ý£†PBp¨Eõþˆ‰ƒ` Dòà0i¨K%ø"CjÌÅE3ðoÿ³â„íM“ö/O—ï¬N“óCvÛªÒS'û"Là%Z‚ÑÊ l úBâ¶@@aíªš aŠ›º¡Š6ƒh10G+„BHÍ[’)‡2xžŒ À¾ty לË7¡õ#éD[¡:œ.?Ze”5ÿ`ªJÀ7׉üa¡Fx ^ذÛ$IX» TÙT]Žf«m4 ×é¯&*’iïi5ËbEˆ ÀÄ(‚ À4­ße‚Ò…,°vWYª´sYªD ]^WEQiQxV³b´6™Ô>ˆ$∀+‹b‚¡Æëh†ú’FX‡Ý´ÅúYª´ò3“üô«ê×i ÷’XQ³‹Žá™ˆÀ«ë“E+éw¦S„d»Æª±À…ƒˆ£Íßc’.ݦ—¬¡¬úD/~÷Ó1’ùô¹Š,0²À5ölRGÿDd‘FY`d‘FYhåÉÛo¢åé¸&RF<! Œ,x>¿Sý.ñîi|EJ����IEND®B`‚IMAGE 1793 ./arch/misc/violin.x11 ‰PNG  ��� IHDR��� ��� ���szzô��ÈIDATxÚ½– T“eÇßJË44$…‹2vߨ>nj ÷9eƒ (°1†XY'3ƒnšÙ±‹]LŠYfzÒn¦™y!¯ˆ€B– ”•]MS#…ý{¾µv²NG ò=ç¶íÛóû~Ïó ØJ?¹ÖŸ-|3€•oÊ ï°ØÕ<Õ~,±Æ[ïÏ.l `íP´ÅŸ ¼j�Ï aYÏû17A€ ðúðþíË¢EÎ ‡}ÐUxv»žRIXIyyøõ˜?>þ‹iGEYYÙW bÐSýf>4°sn”�·é3á°ÛOÀ”~ìOçx)wÍÿÀòâ¸Áú¤Ä:î´Ùl†ÍfƒÝn?ír¹îct>qho âÍeœä„“µ:cÔô:„2¨O RSS§¤¤”D‡Édr[­VâBE™sÁÇ¥±¶Ž2nÝWeÜŽï˹S”³ß¸8÷)÷<JÜk²À`L%ˆ ¢›LP;JÜK]柾Ÿçî¬àº/NAWçÉE \l-åæ‘¥½† â<Ä�z4ëuº‚7á´ãÅr3ÎL‹Ã%——œšßS¦E'½&3È‚õÅ!�¶Þ?xiÞØ%úÔÎììlx JŠQã4áGG,.94¾üêˆÆ¥šO”r…d¡÷�Þ¡KøÐªÚ·A§ê²g$‡ÈÏχ£¸/8ÍøÖç)~nª§ äø;Ú—i0ô@Ú³âh}FÞH“Õ‘£Ñè(&ˆçí&³ªq‰·’دÇg…ŠŸ;´x¯¿ö?§^;V¢]Ód”¹¦EϦ4¦§ß ƒÁàƒXu[!vOÖ"-è&˜C†`õ¸‘ø´PÑE×/¥<@‘HÿÿÐôÏiÐKÎýPGy‡ îH‡¬¬,X,,¨¼Ÿ×,À=c•¨æX;Âc¤5W„V)ÚŠÔß´–hÖÑ÷M¢¨ÿÀÑuœñø ¶¤I1ߘ‚9ÎBly¼ b“«ŸÆæ¼$„úcYülH ÁSš[Ða¡Ý"¦Hº©5Çé{µ=íÿ€cEšGš ²ó—¤ŠP;>Û3åø¼²¿¬œ ÷ÆÅp¿¿gÖ.Â;–d…à9n*%Ah™ ±,‚0Q&‹Ñf×4„¢'�×¶L‰žÞbQ}K.X#Ęa1K%Ä‘»óá^5à!Þ[ƒ³ë—`GA^Mà NH׈<iÖ@Å"9ÕjטhS®< {Ͳ)‡ò•-V²dhÌ’z 6'Ž‚3bžUãí1¾žmEwÍ`Ã"Äù7ªqÔ1ÁMñ@!ˆOóÄî¶bõ²xE€ñÍ»MÒ9u“ßíš(CS¾ u“¤¨Ï‘ã‰è`”†E¡0�‹bÂðåÌ<tU?äèzw5vÏ,Ƕñâ¿A´eÓpÈ@Y`W<»Œ¿Z£¤j›^²|IöåŽIÒ3M6ç)±7= 5Ô‹À+bÃprFÎ/žý³œxX%ǃ¡Ø4f4ß6À'4ŸÙdm@a=±ÀC Ü‘%ºÓ Iݦë÷˜¤¬J6ÉñúØpÜ'Â]¢@ B-E©x,VrAf¨ ÅöÄHÀGEè˜,þŠæ Ù Ð# Œ,ð0×Ñs>‚ý¹ò5G,J¬†…ª`<Có°7E„}”jmnÀEw… ñRB¶Ò¬ÔeÐ ˜¢øß† TÜéè9Y`d‘vȪÝ\ >XoaçøÑ”HðªÞë…˜6&ÁdŽºÓbEXž.ÁG¨0ÍÀ¿ýÏÊ×¶;G:¬.W¾½)Gî²ËV•î:="Ñ‚@È(‰êHLP†cã¤(п ëÕiž­h¶©Ûi3|�^ó´B(„TÜ›Œx9”#qB(öäÊ«øâ|þ¾ =oÉ5´ªƒ¹òÃY÷_fª¾âœ(úqjÄ„âÉqaí;’[ÉëµF›ªÿáBµfáýÕD}&í=­fm²IÃ}�IŠpH…Ã1K|–Àï¥ô' ¬×§6[Ú¯6[¢Û—+om¤h0+<«Y?A›,êÐ@ÄHe\èÏK’"~¢Â¯Ò ù“FzàmÅëÙÒ†Œò“‡¬ª_öå(ÜË’EÝ.jÃCqaçÖeŠVÑgfS„d¿Æ:}b‘B+ZºË(]¾U'YCY½Y'~íý‰’…ô¾Š,0²ÀölR_ß‘FY`d‘FY`dá wÞ{Þ»ã‹Hð„,0²àyÿŸÎoÿM�]h����IEND®B`‚IMAGE 181 ./arch/weapon/sword/vlongsword.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEap�“z.¡¡¡¿¿¿ààà���aaaX‹���tRNS�@æØf���KIDATxÚíÓ±À Ä@°Aì¿qz”È·'—n6�õµ&êcLÜ+0Ïßït¾<0ß…û.Ôê„{"½üÍ8Þ÷MgOÿPõ¸?Ç…¥|_����IEND®B`‚IMAGE 853 ./arch/exit/volcano_hi.x11 ‰PNG  ��� IHDR���@���@���XGlí���PLTE�������1�c2cDŸQ,Í…?Ù¤ùq¨Ñ-e���tRNS�@æØf��èIDATx^•ÕQŽG Pï ¶L÷œÀ(—èÿÍ"þ§©òì!GȹcŽ ¯VR>B‰@£ûS3‚0ï. ¿êñuó€\Ö]ðþ»íúÓ¼Ï_·¯ÛË÷¿÷S`½¶Ãö³^þ l?¾üض?¶—wÅÏ/Û_Ÿ?#~ïû€‡í(é >!nâ[|þ´mÿ¼X¼h}ü2�á» ¥÷?ÿF„î°S‚$¥u ;Òr§³ã< —‘¶éþäEÜwlgß‚°ÒL±s>·�f»r±³’º@˜ß²lÚ•È[ ’šv˕ٸw—2RR—|ÄãÕ9’p#S…6¯Aa‡ÍèF«®Á{•È`¨éÐ5C-dj©Ã|;á3w²Û¬Æã€´¸l®ºë d™ÜCz1¼˜^j­¬^o� Þ{©"Œ‹¸‹æb…]X.-ç[ì½e+Uj]�ìz2ÊŒ¬ÙH<¾}а¶žÀîWð€Ù‹Ò4±O¨Ã%À’P‰ŸÁ4™•u"Éh!*;*Í^­ÂY�i ì6™Óɾ{nœ3˜Àâå4B=ùÙB IóHø Fd±JŠ–ˆó9\. ÉÓ…‚îxnœ~…#8ÌüÀÕë„ «Åp¹QáÞ÷„ócJRštM=‰˜ñkÀã Di0’P" 3Ï {c& ¹þ:B¿@ƒY‚Žœ 3Bžÿ<@2”!I‹l4F`txrqº \ �fµf²Í² Ø5ŒAìà)”Æ=²f¥Yî@,"²#Ü :‹‹Â»ñ1ãž&¢›Ü™Ù1 KÈýLÀÒ3 ²©° žÁ@ˆ.©g�Ë}«– ”ÅΈTPž�‚Ò*ÍgÚfpLón�i:L&,×a€ˆEQpšf0¸hˆùî €ì™ΕÚó`tëüÇe-Ž\=þ F<�§W{îaÓ…ÙÝÏÿ!‚Õ•TÉÇ����IEND®B`‚IMAGE 519 ./arch/exit/volcano_lo.x11 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������1�c2cDŸQ,±!!Í…?Ù¤ùq%­3“���tRNS�@æØf��—IDATx^}ÓámSA`»ƒL†+ 1)`–â÷z= €R‚%Z Ê%wŠÂ#6¬´zOšOw#=½Ýf°™›Ý•ÙoÀµÀÿÀðÙGûÃñ_àãç¯?Ï?~ùüðR�Í÷gŸmq øÅuw{ÿ¼Ã¾$#³;²i^€=¨Vv¦:Ó \T`Gº’îlWâmŽ”FÕžÛ¸yh0MWV;ë-ÈÝt©²:þö+Ìl¸Ñr [¤ƒ­®õÆ-àAHe¤Š%2·`ñ=†Õ´J)‰¶°ÉÁGäÉß`‡ÜleûO �#•% r¸ÐY¯H.©åbå,ÚÙ[PHuÐR¡Urd7ð’OÀ ¼ŠFÁÁpáµbCãT|²OëøÛ'c}  éÒANÌŸ kPÂPvh„hu0CÔ3›!) IQÌÈ@ ØaNÁ ­[£Åx…ƈ Í ºQb@lÅ|B ¬óWÒìA©©pBH!#2f4AÐÜÑS(� 謡֮ÁÝöþ  ¤‰iÎ����IEND®B`‚IMAGE 174 ./arch/food/w_glass.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÆÎ÷µ1c���ÿ��ÿÿÿ\7"d���tRNS�@æØf���MIDATxÚÝ1�1ÃÀðÿ7ŸÚ…ÍC«[K¬€ˆ¸¿Ú}'`K�‚›QU Tf–¹t ÁÑ«GÄß�àvӆл4¡'AnxODé�ª%Jy–����IEND®B`‚IMAGE 177 ./arch/food/w_glass_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÐÐÐ^^^LLLÿÿÿ���ïM^Û���tRNS���úvÄÞ���NIDATxÚÝ9�1Ä8üÿ7¯’†ÎE¢m2š±D¼(ÀýÕî;{XܬˆªR 2³ È¥C`Ž^="þ�·›6„Þ¥ = rÃ{ú�y¦l����IEND®B`‚IMAGE 278 ./arch/transport/wagon.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡aaaG$ R-���d3‚B'BàAo���tRNS�@æØf���¬IDATxÚ½‘QÃ0Ciøþ7„S»}ÕjÙ~ jJI–î�¸äº¿P�…`Ë»µdÿr߀xôЈªd¿”¯#þ–Ú…ª¿ ,úò„ 诈¶^°ô}BÝS Üü¬¸9fÎá„ °�Hb»,%`;i€˜;Ù×vÔ�&:ù Ê €¶dº,´dº|Ët¥úêáŠîY½BÏ /ò{ ?����IEND®B`‚IMAGE 189 ./arch/wall/wall/wall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8 R-���d3‚B'¯¢Ÿ‡���tRNS�@æØf���YIDATxÚí“1À0Çÿÿr,ŠƪV6ŸOY°M‘�s†ä<ÜGIÍûáµ?èyøˆ?tO9'l*F $ð >,0Üý@õêäØ]¬Î7u‰8.¿Î����IEND®B`‚IMAGE 229 ./arch/wall/wall/wall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���~IDATxÚ¥Ë À }Äüÿ'7(º¥d·C¡‡ “±ì±6lx|ñ÷^­|g®|Q½f�æÞà9q¬a t¤éHX¤ýDÁ '^7bÒWÈW"’Z€HH"9 ˆT€ RB€H @@#5�ÔÀ\�kÄdû*Þ2ÿ:kW����IEND®B`‚IMAGE 262 ./arch/wall/wall/wall_1_ruin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷���„B!Æs9B!c1¥R).ªV´���tRNS�@æØf���ŸIDATxÚ}‘[à ÷{ÿ#7IFjñZ|0Œƒ»¸Š¥£ý,üÖu¤õ²7À#°¼3<YÄ?ð,›Ø�·àì-ýŠkÙŸƒj„ - 'CQ"ö@ j4ÜO†ê9sžtH!iM@ÉœûŸç} ÙC!—äH�éˆV¹*MDÀV4°” òbHÄ"¶À;w‡ =����IEND®B`‚IMAGE 155 ./arch/wall/wall/wall_1_short.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷c1„B!¥R)Æs9���§(~á���tRNS�@æØf���7IDAT(Sc` 3pv@峚¸¢ „*™¢ (£ª` E2 @DÀ4]`äE ¡�ù©Tž²����IEND®B`‚IMAGE 183 ./arch/wall/wall/wall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8 R-���d3‚B'¯¢Ÿ‡���tRNS�@æØf���SIDATxÚ½Ê1À AlÎÿÿrZ (KC,¹Úiÿ®ï6õÄY?[Y?ôê’¼~»=V½Ž€ºPê…€zP7êB@½PÏøî>�°v •d¸Ø¶Þ����IEND®B`‚IMAGE 239 ./arch/wall/wall/wall_2_ruin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���c1„B!¥R)Æs9çÆ÷#î4Š���tRNSÿÿÿÿÿ�³¿¤¿���†IDATxÚµ“A A˶óÿ/‡%ÝÓ žª¬Ã𺙾3q)u-Ïôµ³`;¯åÌÍv"”þ,çvOŽìBürwð&`þx4­vo™Â]è ™ r»{&äI¨¼â=3dB³€Uü‰ÀŒXÑYeb‘«°ÎóŸ÷ Öƒs­³����IEND®B`‚IMAGE 167 ./arch/wall/wall/wall_2_short.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷c1„B!¥R)Æs9���§(~á���tRNS�@æØf���CIDATxÚíŒ; � ô­÷¿²x¸X] tJhºK ¬ˆ>º€ÆÖ>IsAà<¨ÜÞÿàì‚éOƒ =£âè¹Øµ¸°����IEND®B`‚IMAGE 248 ./arch/wall/wall/wall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���‘IDATxÚµŽAÄ0CÿÿÉ[цÀŠ åPK(&3r©(Dq¿`’ñ«ðPL%à¸�\pÙ3 pm�Àv pÁð{q¤„‘LïÀ)a¤#`R¿LdLAîÃì€Z@0¤jæ‘-P Fö@-à4²jÅ‘=°èP÷8�êžO€:ãûü�#E (Ä܈����IEND®B`‚IMAGE 225 ./arch/wall/wall/wall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���zIDATxÚ…ÐA€ ÄPùŒÜÿÈFš°‚ÂÖÉ£ølNþóœO2F¿ z‹}Oo:(¿"yýŠ Ìj^!� 0€Hˆ€Hh€�D @¤�D @ƒ� ûÁN¯È¯Èê”W,@"<2¹ùÕ_û.Õ3äš����IEND®B`‚IMAGE 221 ./arch/wall/wall/wall_4_ruin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷B!c1„B!¥R)Æs9���yÝÜ ���tRNS�@æØf���vIDATxÚÝ’KÀ D عÿ‘˜ >ëV^ƒñùÔ‚b"^ u�ux�&J‚[+i(^TY œªð@Œ2 0[ pR´pA}HÏ™!(¦¸)¦pA’Õ>$†.°*¤#ýSË™âwÿaïš@Œ¼›����IEND®B`‚IMAGE 143 ./arch/wall/wall/wall_4_short.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE���„B!¥R)Æs9çÆ÷U5J���tRNSÿÿÿÿ�û¶S���*IDAT(Scp&À€APM@È�UÀ]ÀEÈM�F†ª��H…Ä4z³”����IEND®B`‚IMAGE 212 ./arch/wall/wall/wall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���mIDATxÚí’1À ÿÿÉE­zC…3têЉë°#·{rÌœZgÝŠží9ç“.Uô­�@J±�æ �Î�'� #�àR�p)�¸�| –Yšô«P›ÌÚäfÕ¯úà�Háû øûðÁ>KïaÞ&V����IEND®B`‚IMAGE 207 ./arch/wall/wall/wall_55.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷B!c1„B!¥R)Æs9���yÝÜ ���tRNS�@æØf���hIDATxÚÝ“1 À0 ÄÒœ“ÿ?¹TЩE^:Õ[8!$ÏÙ×܇×<©¨µ-ßµ8X!‚É € �& ¤¤$-‰`²Bá.LrÀ_C� ÈOÅrJv€å”ì�ÍðOâ=ò…Ç=����IEND®B`‚IMAGE 262 ./arch/wall/wall/wall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���ŸIDATxÚÅ’Q€0CÝÜÿÈ:V­ õÛ%|ñòl Ç?o¼ŸÜGXÜ£ka±OÀZ[#€>® 3TAf¸ 9BÐç'T'€½ ÁAdHì›dHU°BbïBà ÀUM R� $kVAWÿ„dÍ*Ø!Y“´ Pú(ø¸ \×à  ôÑ 2d=VR�À7àW¢§ÓÃ����IEND®B`‚IMAGE 272 ./arch/wall/wall/wall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���©IDATxÚÍ’A€0EZþÿd+…NbË]"ñÀd„¸WV»{ë6žñ6•v}ËG6)•€ ™éX‚Û?‘°¾ƒ ‹7ÀL@g °P‘Ù�)ˆ+öø*ÝÞA^±KЈ¹,A ˜KÆ\�ø’;‚\2æ€ßY�ä¡8“<�‚1äÌsLŠ<pf‘€"œYäàÏyȪòÀ ÈÀ9�kI lÚñ����IEND®B`‚IMAGE 174 ./arch/wall/wall/wall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8 R-���d3‚B'¯¢Ÿ‡���tRNS�@æØf���JIDATxڽα�1 A¦ÿ–ÝÀ¿.33ŠnéÁSë.ÙÓ墙ñrá<§ÿ1 Î€:ê ¨3 Î€:ê ¨3 Î _ÓÓ]§„g;`‘����IEND®B`‚IMAGE 216 ./arch/wall/wall/wall_8_ruin.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���c1„B!¥R)Æs9çÆ÷#î4Š���tRNSÿÿÿÿÿ�³¿¤¿���oIDATxÚ½“A À0 Ãä$ýÿ—wk.é<ØXÀ§ˆº”eæà0 Dd a™C¨ª‚»ƒØ¥˜â€®˜÷* Ð'(æǽ/=(áî™!1{èðÚÆCá<$ÆCÎCÞ{P� ÂÂÌúáó^B+ z®©^¤����IEND®B`‚IMAGE 173 ./arch/wall/wall/wall_8_short.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEçÆ÷c1„B!¥R)Æs9���§(~á���tRNS�@æØf���IIDAT(Ïc` °†²€“’‘’)Š€±“±+²€³‹³‹+^3XM„Lð 8*£E�M4XÐt`@ÓE €Àà�b |³¯ºa����IEND®B`‚IMAGE 209 ./arch/wall/wall/wall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���jIDATxÚÅ’A À ›&îÿŸÜÐRR£0Ç.."3oâ1”+w¹ÅÑs#=–ÛN¨ Bò(°f‘¶zý+äA­³`f¾iÚaCk‹³@œâ,g8 ÄY Îqˆ³@œ…öSÿÈ'Pèoã����IEND®B`‚IMAGE 159 ./arch/wall/wall/wall_A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÁq8 R-���d3‚B'¯¢Ÿ‡���tRNS�@æØf���;IDATxœc` £†PUTÈ $Š …P!¦Š®¨S@$b  éPÄ@Ó!‚)0œÜȤ�½Oñžúº^����IEND®B`‚IMAGE 165 ./arch/wall/wall/wall_AA.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷c1„B!¥R)Æs9���§(~á���tRNS�@æØf���AIDATxÚíŒ1 �0mÿÿå®·N=¸)Gâ-9Ñv€0{@ f–ý¤$v-˜¨;¨cf,Á?ø,{ìÁD<å$2/eSÂ?����IEND®B`‚IMAGE 200 ./arch/wall/wall/wall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���aIDATxÚíQ €0 CÓæþGvL¦àdùüð±°A4¹U–Úi·ˆŒ;½ÒaOÂ5 %æUÌô/ÑlM!ÎwÐ*€«D‚(­âÓÓ ¦‡L_Vø÷ð¡=¤!Þgé² äÀüš����IEND®B`‚IMAGE 234 ./arch/wall/wall/wall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���ƒIDATxÚ½1€0 Ä)÷ÿ'3�-9!"eªå:ËÓ¦RJÜd†&;€ˆHì�æ 7 cSÝÖ¤|JÞ·�ßU# X$kù‚€7Pð ‚I€‘.@$P  °+(°+\€+(°H hçtA´‚#’@‘.Eîú úSÕn¨����IEND®B`‚IMAGE 256 ./arch/wall/wall/wall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���™IDATxÚ•“Ñ €0Es:ÿÿ“…,ï‰ IzØáì*쨊1cæúÖ?ÝâкŽò¦ÜÞ€-ˆLß@°ú‹Nmî–Ò03G?`õ)Üfö–)È<Ÿ?=Ǫ HH F»‚€f @� ²Ȫ)}  $ˆ€!!ÐUS «VV NA�QU‚ϧ7öÓ#P‚  òðX º¯,n&����IEND®B`‚IMAGE 263 ./arch/wall/wall/wall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf��� IDATxÚ½“Q Å0µÆ½ÿ‘$±‹ÝÐþ½€P›aº‚µ?œñq ¼•E8ÞÊÜ=¤‚ÏÇ áÎ á‰^c�1ª?áô>'Pý7 ÷˜!«?�3$\óõÎTPA¶1Ø! ˆ`…ä˜"X! ˆ`…ä˜*x�*@Sk *}è‚=È>ˆ \Z З¶+¤þ‚[P!¸Ù€| CW ����IEND®B`‚IMAGE 284 ./arch/wall/wall/wall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���µIDATxÚ…“€ AÿÿäLFoøZ±\’·3˜J…é3Ö³ÞaêrÆ^ФLß�<Â�8ÇÞ¢Bç0Óg.wò5DU†a.᫨Ó}d•¿¦�x=;Yù?ÀëÙêÊÈV`ÁØ[Ô7|v€³—É‚è� v«Q& Æ]�äO¢L� ¢—I‚l5�ç£÷tHÐ�Z¢ÚŠðÕðò'ÀõnÀÁ ÅŸ8)é����IEND®B`‚IMAGE 217 ./arch/wall/wall/wall_door_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE…��Áq8G$ R-���d3‚B'¹wÓú���tRNS�@æØf���rIDATxÚÝŽ9€0 }¬ýÿ'c„\`· cŠ(RF“•ˆ´¨ã¼2Å¥ÔݵÎIL •¡o  ÆHY=Ð#W¡ÛÈ] éÀŸpA‰ LHy×o\‰û†ù"ˆ`LˆÜGV`i·/µÖr¾.Ÿ����IEND®B`‚IMAGE 185 ./arch/wall/wall/wall_door_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEG$Áq8 R-���d3‚B'Ï‘ m���tRNS�@æØf���UIDATxÚ½Ò1 À0 CÑJ‰îåâ!£øh žþ<øùaÖ™’x¶[³XÒ캿ÁÚ±jg@uÐÃ�º@è›ô0€nô½‡Àùåïça)�F©6Š����IEND®B`‚IMAGE 344 ./arch/wall/wall/wall_large_door.111 ‰PNG  ��� IHDR���@��� ���•C޶���$PLTE���d3‚B' R-Áq8���BBBd3‚B' R-Áq8ÿÿÿ=nÜ���tRNS�����Âk±���ÞIDATxÚݑێнÀ´Iþÿƒ·mÎ¥ðDÅÓ®%K$ª­êˆ¯rÁ„ni™¹¥)×&çÞ0̵”RU È=,M‘ σaœK­Mµ‚"ÂÓTá‘çÁ0îh­©toÀIÈ„ÌÐ)yìv™á;äÜÆ™ÚTì^€æ3¼ :€™|2ﺰOø§à9@šÌ‡€ç‹�»v-˜L‹�®E�×a¶ `›Êo}>²à­™‚Ô·à¼Àk7‘?œözü[P¸,ý‚Ã�ž,¸\ˆ‡R?ý}ýH½/µkZÝ6����IEND®B`‚IMAGE 1232 ./arch/indoor/wall/wallart_0.111 ‰PNG  ��� IHDR��� ��� ���szzô��—IDATx^í–MoÕÇçœ9ób_;¶“ºñ’ªW¡T”%«nY³@B ÑoÀ‚¯q?ÀU…¢nøˆ‚´€ … %m^B¢Äi^Ü´±{Æ3ç\cÉp,°*qÒ£ÙÌèžçÿ<Ï^ZþÏ­[·˜’—‘›7oãQ9.ûÿˆ ˆ‹²_XX�`ee…¿‡ X]]¤ã½ßÚÚšlŒÊÐh4˜r´õFâÛÛÛLçž3Ÿ$ÎH|$<i䘬‡v ¬Ù2ñ1Ud"£(ÿêܹs‡¿Èè»±£.F;`íð#ñ÷îñf˜·J”8€‹Àqés4ߣ¨]f2•ŒKNj¦Je´ë“°S%d’ÀÒéæŽsx„ L¿ÿD\´„æÖYOI\9!q°8Æ¢±¸Æâ[KF B!)»s¹,—ŠE å261ÕÂqI§KÈlˆõ}TÔÃ4!îáœ<#øè¶pÃ×wïòN¥Š5†$I°iJ?5¸Ö`øZ“ ~ÍcÆuÉYK>Ž¡uB.KR«ÃâU¨]ÂÌ- OšDGOñ�ùð>æøàÅEM8Ÿµ®¸ÚÅW OJÇ!;ˆÐÑä]‡)íRò<*ZS Cœ �?ÀäŠP®bóe:SˬÎSê•:! v·¥Ù•ÛE�9n´v¡ÐR"´£èû.þL™vß°½µÃîÏ?±·³ØÛCôlm»tuãîë7ÿž§ºµâ9þwŸcW?ÃYÿgo÷ÏM8¢òýC«Cï? ÚXàµ,4gØ žë"…‡’š¤k™Jzdƒ�¦ËÈR~à“4êÈê,‘¢Z‡X“¢6£~Ù�­oÿWŒÛÃìߟ#К¹…+\+ùÌûŠš¶h [ÎK/I¨ ˜4gÇ)<‡¨‹é`Ö긃ñ]ü/¿À´Û¨™2"Ú§Èg­‹Ñ«ù‚5ÆÐXXäÍù,u•ພ�“j &•–^7¦×:Ådj¨Â4 êiyò]¿L*O?Á1)F”§H| Ë˼8:øÏ…—Ñ{³—(æó¼QË3[„PyH+P&â\Ù9‰È¥= ^–Ìô4›ë÷™ |²JѸ~$µô¿º‹ãù˜\Žèà�ù¼Å3,ÎÎ6—ïÝýpìþå¶ÇøaÈoý>s±ÀM €|³ß¥unYÌéaoüz|Lóø e ½N‡Wé³õø®£èŸ¾À?k³¿ÿ”˧IÌîÆã/ü'|÷RÝ c óE^Ÿ/ãg –Ñ\› ø¡™ÐN4Žtèœvˆ£º]ºGMÊÅ—k³äƒ€'kkäÃŒ¡PÌstÜÂ*‰ö:qÌÛëkbìe4£µ¢Àœ´x¢×—¯²5;:O óÚ­6½v‡ÎóS’ö!ôbJÅ"™R™Ô󹿹A t{],pØzFj-çí3$^|Á`ߪÔPB ¥>…µd|ŸÚL•ó³h稤KÆ‘ôãhø^! ™­Tp•â`ŸÎ‹Sra–¤Ÿ`­eºTb·ÙÄq]‚0ËÖcøF¤Íé8ìý”����IEND®B`‚IMAGE 1190 ./arch/indoor/wall/wallart_1.111 ‰PNG  ��� IHDR��� ��� ���szzô��mIDATx^í•M‹ÕÅ÷¥nUWWwÏLÏäeÐL&™$â" At‘?øÿ®CpëJp%¸òø„W~ Ùda0 *šH’!Éhâôô¼tº^_îu¸8 ¤]¸° Īõ<ç9§Îsyañ®\¹Â< yqéÒ%^ ä¬éðR( þnúõõu�®^½Ê¿ ÍlpãÆyZ0ÛûÍÍ͹xNv€µµµ¹)à·ÞQó‡2Oè¿x~4ùÜ øæ¾ñü|~jAoÅ‘-óŽá‘"s‰¢ü§ ¸víÿþ»™QG;àpZOâ¨ùÖ½_ÿ'¤¸n´AK‰”’Ö“ !$B)¤ÒþYJEE¨ $<<QØÁ†áâ IÒÇ9Iui­% #ª<§i ºÙA¥ÿn))¯‡:àâÊ ý(æÖöSòÖá< Â7×*@J„Єa‡…þ‹ CŒé²ºzš¨ÓGÄ}Ú¦b2Ù¥('|ôÉ{¡fž<¹À„h­¹3MEI#5J ¯ž�Nœ^n'aÐ[d0Òë-³rìÇ—ÎrîÂYPÎ1?áàé7ó'ü}k¼œ$ ç7Î3ÞÓéÄ^þ¸Û%Ë ¤RH©½¬aÜaûé„ Ž{,ôYZ2žôÍO.o0X\¥jïüŸÃÁàÎO ƒ˜Ë¾+g¨›f4XX`gw‡²®Ra­ã`2¥ÛQÒgJ´¶ü\'ÀZZ§©jA•[L°HœH²¾½‰W! ûåÞìÆÑÂå·ÞÞ`4a[K„Ä!¨ê! (¥Ñ¡×(²œ³ÇºLé£tDœtˆ:!Y±M49IUJª¼ÆÑpïñ/¼ÿÁ›b&Í›_Te¤´X'˜<K)kËr¢è…†0Ô”&DjOŒ½½ëØ:hI’a3ÒÉ.IóhkÂxÿ7²4#­ØßÍ^Dß÷³{ýµ7Q…ÃÐÄAK^uY[?Hw臚¼¬‹¨ Â„!ÙtJ§›P”J)ê²"Š ÝE)ÃþÝ gάqïþc£87Þúæ¹=°ö깋 ‹ƒÛ'N i ‡€ 4éÔ¢œc,šV©µŸ¾®¢(F‚ˆ~Ò£®k–—–IÓçQ§ÃxgD·óåWŸ‰ ˆÛÇŽ¯ •©­(ëÉ­QRS9MÛ¶híb<S¥OEž§ôŠ"£ªJ_§,s²tJ/éQV)Ϧ{,n?¸ÿÜ]ðÊê™76Î"14™_4X§ ¬@ƒ³Ö{m‘ Ÿæ~ë5mM‘g¡ñÜßÛEHé7]Ö”Te‰Gͤ¢( >¿õõÆsÂ0ü´ªj/¥Rʰ¶!­-Zµè ðïy‘£´&Žc=~Ìt:Ń‚t:Á:‡’œ¥,Ë?ëIocQU Ët‡§O]pRJ´TX×bH)½´XŸy鋃µ¥´'Ú:ëmñw‚¨‘¥9€÷^šÐ¦iÊ?ÞÌÀWÝ.^«=ë����IEND®B`‚IMAGE 1228 ./arch/indoor/wall/wallart_2.111 ‰PNG  ��� IHDR��� ��� ���szzô��“IDATx^í”ÍoTUÆçÜ{g¦ ýFišB?@C(J�ñB¢Á7¬Ü*£‰ MÜ7.ܘø¸"‰+]º4–ùˆš–Zʇ¥Ðv¦é̽3÷ãçÜBšŽ NHðIÞœÉd&¿ç}Þóž[ý¯sçÎÑ IžG:uÊÔ‹‘€lÔ}"^ŒÄ¿u?88Àùóçù/eÓXŒ5sg?77×[bèïïo^æÕ{ŸŸŸ§™²7Í<é¼ù <7_²Q×ffæš¼†OiÊ*ÊgÝ€ÑÑQžYÉÿ®º yL·ÆD ?4¼Þ<ÒgáÞ½IêÀq~¿0Á†êbu½€¥-´´I§öîbzb–l{»ûðÖÉÓüúËO\¿ñ#RJ¡�)Qh´Ò( *ŠhoiÓÀÀÀ@\�Ùÿ8·œ§ÁàÑ#}‰²³XŽÄ¶$ I;€R‘®—³Œ|Ÿb%Åkcä–.SóËØ–e9Èú ¡Êе)Å_wæ¥d³Ø×ÿr÷ìä$:Ø Û–åÖì"—/^áä;‡ùê›Ï8}æ8»wÔC|ôá{„µ ¶LqÿÁTý{rW(m,âØ6Òv°Ril+E&E`áXKZd[Ú_®í«o¾{‚‰?§Ø³·—ž¾Žyo0;u‹ ¿]a­PÂB’iÍPÕ’³œÁNÛ\½:ÇòÝ ÖŠ‘B‚°Â!í´“iëÄ­äÙ–H"j¡ÏÄômÑÐÀ‘·R«yôîz‰›“wpR6 ó«äó2-YöìãÑ’Ï¥K¨T¹¥e/ ´z›Âz¥:Òñü-Kв­3EÊ´g¶S¬mj¹õ|òéYíù>Ý]HIØ‚J*[©R*Õp7<šüºK±è13>ÎÂÒ a¨QJÓ½™½°c¸tDøÏäôߢá;0~m’]ƒ{êÀ²S¤[Zñª.~- ðC€°y¸°ÂÔõq–gðý€Hib a:OF 5v½"U# Ìo"Â0DEªñF®¯G†_Ų CÓ¹³‡’[FkMÙ«²ž_e%wϬO ‚(îX#h½D½"?$ÔŠHÕ+T u’0Ü=°ü󥋽› ôïzåðw_~?^X)¨*NVponŠu/GÉ[¡â®áì*6¥µ‰¨”& #‚0Œ:"H~£!>£H1=ó@lyŠGöŒ¯,/ÎpàµAH9¯âÕ‘Ràze°Š@ळF1´ZõÍ…?ƒ‚ã¤V²ïÆÈC&.k{™ÍÂîëúú‹?§¼ááU" kyº;vâæò´Ø­´eÛ@D&ö:´†çÕP:‰=IƒŽO¡Q„Ö˜%¥“ðâÌLë¯=ömïÐNšbåQ…»‹¬•=:ÛzhÝÖA9ÌÄ`×-#„y~Ó¦Ë8N%Ñ«dÞ’|oÎdbxF¦ÈýñÜbµÇ%,!I¥ŠA1¾ µ vD:c³=j50cÆÄÏ;1¡žvÉý@#(™¤�0që~ŠúvºrŽÐ˺����IEND®B`‚IMAGE 971 ./arch/indoor/wall/wallart_3.111 ‰PNG  ��� IHDR��� ��� ���szzô��’IDATx^íU=lE}3³ÿ{v°Î 9L Q¤£±DDIEå>Ô8 ²»T ”DrE(Å…eQ�"ŽåÛ»ÝÝÞÍÈÒžQŒ`)|Ò»o5;³ï}ï›™ÃÿñÔb{{}„ÄÓ[[[Ï€]ç+6U¿¹¹éòîî.þËðpAôÙ‚å½?::êE@Çv£Ñ¨?xëýE~||Œ>Ã;ßóEåý yÄÝtÈÙ× æ>èÆÂ‘^Ž¢¼ì ØÛÛÃåí[zÔá^°Z'‚äøòÖíWs]Ý;üù1Þ~å Œ1—B]×O677Ö[vµÖÞÓÆbô| ]ضAÓ4hÛö‰À¹Äß®q"o~|SvöÀk×n ?ûäXåcÅŸ)ÕÊ“Bàôô1ZäE޶YTJ‘R TºDATU…ÊTŸ£!™i çSœmÁPÆÉÒÃ(\}”¤kHþŸ`}¸8^A­@ëAPÌ!ßHÒqšÀ…”PR9¡J¸g7'Œ"®O†|å¯pxÿÛõ¥§ JÖ„>"U£`•q2€©5«Ë!„Ï,®Dœe«-9’Î’t*0¦â{ãrmjçfQ”Ìew2pý/lÆìQìV©haN’)fì]…cyNb]@;» 4®ì¹³¾, yN²‚ÏnÞbsÎñðÁwbé=0|á%x�m0*hdcÀZ ŠCè2ã§PŠÖ²Bå Z,SÓiÅìH)J;´m)gsüE‡�!/¸ˆ>üèÎÙ¤† ,ž–U®¯!g.‹1Rö:вÌb<&édB‘…«š»‚d×-a!„`jaA´ÂAIõ)Î…"`ï¾wãû8m±¶ÊIÂBŠƒPÃ2™jê¬/Š jö½iI(¬@8R‘p5MJ¶‡À'NJ‰¸õfÇÏ÷ï¿ÿÆë`Kœž5øý‘…Ö"aáÉ¢XÐ E^ÞLh³¨¸¡å†b}dùÔm8òrÌRßͱ߹ _¼ú2¾úú¡Ýبñ\Ü"ôÃ5.0¦!aCÂ1³ë¿³œpg^W3h>®ïÕ<k·óÏÁ¸ywo€ß&öúÉÙôÎ/'®’z­v×tÇîîìì¼ÕðÓ¯{’i¬WWU‡àߣµÉ–Ä\(údºÞ˜Ž����IEND®B`‚IMAGE 1057 ./arch/indoor/wall/wallart_4.111 ‰PNG  ��� IHDR��� ��� ���szzô��èIDATxÚíTMle®ý™ÙÙ™ýßÙÙŸ–]P~V¢tÊζe[º-Ų”¬@q¡V#Ä3  !p1Ñô¦ ¦=Œ‘ÄD£Ò„Ð žŒïûí~†M§/®Iý’'ß—™o¾çyÞ÷ù¦ãÿñŸµZm p‡±60ñZàMÎ!d´O@.—c´‡\ ø7‡,{[2ÀÄì¼-dÏÛRI¼í `KEÚuxnë XUÀÂÂÂ?=^~·º)ùB:ïêR^'@¢›ÑíCOJП>U‡¦ðûCF ¦G8œB$’¦9d2X,‹PÈF0˜DÐL `ÆÄ7kÝŸž-h%÷1¹€ WˆØ§CUÐTš?]o‡#)"ëƒÜ€Lf3²Ù­Èå^A:½ –•G$š!–Ø«ë!xe€É'ÿ&ïV„k EÑ…kA® ä<ÀäqvH®{‰l#v”âôÇ7qá‹Q;u ë7¼&ž'ë‹dh¯Å[òÀN%ZɹäÒ¹Áˆ<Ü ÛˆÇûÈq£»áâ•ÛøùÞX¼³„ú¹O© Û`Û/"åV$aP ¼n“ן'W¸× É…û@Ó½…LPé¹×ë©qø¶B?æÞ¿‚ÑéÏoG*õ·Fd#d&ؽ‡€ÕÝ7CÇ$¹ÙžÞ¨@¸Y‹DØ6÷¿€ÞÞ‹²“ó´pnrï©ež· ³SA‹�B‹�EÉWU] ‡™¦è?PÈÒD–!d‰¸[áã=œ}ôÀî{q'…O׃°ãlοŒW7nG!·V" H¹~Íä=„póà(‘Äx&Â6gv,ö4Ckp~.vx :,…ª3€ñ~3înTÇñUµ‚¯gƱXÀ¥© Ž¿y}›úÑùBWãþ‹J!4‡¡kbMˆ0DHEµè9 ç뻂yfÇ€9;èàìÈ Î¸.¾;<„_ŽŽá^}ë<š·J¸q ŒúðöïÚ ;»¥%,Dõ,†× ~Nï I,çÏVxwÄÁ‡å¼çìÄÝÃø?;†§ó{°<WÁòñ~;ââö[E|³ßÅÝj c´�q+ U"D6& 4ÂjÀ§ RÎCd©ÃkÌ âÖÞAüp°ˆÇõ2žÎMàÙ|Ïævã÷Ãxp¤ˆ;ôîútW'\|>åbç»Y|0å†Í~H"¹ö‰À by«=\Þ3„/÷•ðÓÛe<99‰erÿäQ<¨¹X:êâ×Zßrp®ìâ“É"ÎO¡¾oúùƒD*gÁkÁ³øw¬2þNÀ.z;ã” ����IEND®B`‚IMAGE 1222 ./arch/indoor/wall/wallart_5.111 ‰PNG  ��� IHDR��� ��� ���szzô��IDATx^í•ÍoœWÆçÜ{߯™±=‰ÇIc;Ð AABbƒø"!@ìèº  ÔbYþà/@в`Ñ}Y" hQiSÑT­ë$„„Ì8Ž=3ïÌûÞf3 ‹ÙtÁ¨RùIÏòêÑysùÌò®_¿Î*P>‹\»v¹> è²é|.åÓÃÕ«W¸qãÿK,Ëa•,ïþàà`µ[°ˆ`ww—U ‹«·0?<<d•Ø3/&_!va¾0^5ºlêyÌ«XÔ²ò5\$²’UÔO»7oÞäS²x·tÕeqæÓ2œ¹9/¿{û¥<Å÷¾*‘nž¨z†¬“°-õ ²½Šà,Ì<º]!…¬…Ø4¤‘'<S?m‘:2ÍõÌS"ÃãȇÞó`íb’eGèέ·Òðå,ã¥ò•2±a•L!·‘ž3„6 ˜\°YÄ!8+ @æˆ$j§§‘Ó©ðøIÓãÀ Iüz4ËYxçÖ­ó*Ê©XÞÁrgâéMëÆà¢P©%£! ðÅäøñwÖñ)ñìüê|òúÜøÝßéU–6¶$i­2Ǹ ë@0–Ð+†Œ&€½½= =œ8ãP#äs­ç=Uzë*¬ h+¼¼YñR u #ãaàxÿ‘Ƚ£À½C„)<Tá &Dy`„JäÝÁQgéwœUYÐq%Ï•6¶¬åJÕa'/ص–ï÷s.ïèvFùÍMRßÑzxú¨fp{ÈecØÎçÔÑ/sœU UT=UÙÁªaÁ™ï~Jãè¹TälJàù,c ᢶ¬aG#_ûÉ>O˜ó²×§ÿÃ]zß=ÍŒúYàÄ4‚XEU1jÁD 1> eéÈbàœS6³}Iô‹k!БÃ…Òsᕯ3~aÙ¸G?Þ¢yñ:sOÊçhü¤î›˜·ŸR¶Ð$ªøÙ”ÖGü\êÜòCtòáÝ_n¨áJ·Ã¦Q:Á“FT1²Qä¦e÷g/R}ë§8i)í ùZ×Lÿýgšô Ûµœüm€™4)N• %ÆHÔ(™Õß�g+HÁ‘køki,V„Â:lˆ”ÎbIatwFsÿ#&oþ‰£¼‡\ˆ ÞxÑíO8ùËmžüá}F³ÄI2ŒU9žúÀÈXF>0Ísö?>üö%pÑ´¯¸ ô2K¥Šó‘®(EÓâÔR”š†<9fwî³õ¥mò+—éˆ:ŒÇ9Oh’Œ‚@–BÓxÖ²œ4ýž³ Ï_ú¿è’Œ*ªÁãT©:³iZ¹ú=´4DñHሠq2ÅDKª¾ö´u$Ô  „�ªÔõŒÑlÆk„³`Þã{ ‚3‚hb£W`\dVO°–²Ê™…ٶ× .í@·ƒfŠ ÈÝiN©[|Ó@Ô²,c8 A©SÀ©þ‘%È«/\Mб–BH‘”̃Ÿûu9×_'+3’ódˆÑÓ¶¶‰8—á}ÀÇÄx2Á‡ˆ][#ÄHããÓgüöàž°„ÿ�-UøÔS+����IEND®B`‚IMAGE 1075 ./arch/indoor/wall/wallart_6.111 ‰PNG  ��� IHDR��� ��� ���szzô��úIDATxÚí–íO[eÆ9ç´”6-´=mU°v…Áú†q6@Ë[ -ç$† X×Y² êº nY y‰ŒºŒ8P™0·,Î×D?0÷}vñËLüŒñ/ðò>9 ¤=šøÁšà\yÒžçôúÝoI þÿl `€P(Ät0Èø (›³!$åÀét2åÅ\ø7C.{^f€Ë¢Ìó ÷</³”¯ÜW‘¼m�yÝ�E€äAï)'%?3/Òè¼¢ùY}©šBT‚<'€+à™øtjµ½f“³"%%ÅÐiµt÷G§’l&ë9[ Vi@Ðh´d^—�x¡¥ïž±ÙPá¬@µïEÔøkÐl@s}#‚µø¾ Ë ‡ÝÑh‚Z¥‚lÈó¼,ö9ç ¼J$I†ÌXμˆŒKŸ+ƒÏ[††f´¿z'»O!ëÇÙÄ トõÅíŒâØ+íÔár¹`±Z B€Š@A@a¡Z†ø5'€d¶G¬Œ&£UU.2nBGGúûÏbt4…Ë—Ó˜ššÅtf™Ì,Þž¸Š7F’HÄðúkêq¸¢’Þ7R550³¶ñ"ù*�p%™[-6VêH¤ ½½qŒ]$Óy¤ß»…éïavëKÌm=Àµõ-¬,¯bfzé+Wpšªn‰ÀãõA´ˆR+˜9GærùåÈi.ðËÜíö¡µU2O ùæ2óËH¯ÝÅÒç?`í»'¸·ó Ö·Ÿ`ù«m|ðÑ,,\GêÂ8ÄnÐûèõú}çüŒeÍ.P¯4p8œЀuuucx(‰ÉÌ<¦Wocéþ6nÝЇÇ7;¿asçg¼ÿõC¬®}Š™™Œ !íF}°Ng9´ZÝ®ñ®yn�2NÉ�ÇÓ:qÄíF(F•óBê-,..cjýV¾ €ïÄíGO±ñø'¬|û7>¹Ëž_º4ŽØ™"á6x<^){ÙTÖb€Ã^)Ø+“ÉDS,´àÔÉ^ Œ!=9ƒ¹ë71·ö®Qï—6`òÝ1šœÄÐù‹H&Sèë;ÃæÅGscµZ¥iß §÷\`å2ô(/¯@]]�ÇŸ@,– ˆ$Æ'®È;4éC¨¬ Ѿ· ®¦Ô‰ÎÎ.455£ŠÀ‹Æ\æ›YÎÏ—–geOb{k±XØúÕD[Û12ˆ¢§'†sçÎS‹ìÍU$;%‡àõV£´¬ ±êv\–¹böáåJQ ìöØ4ûý~ÔÖöûð‚,"ia­Tn„ÝýVÒ¶�þFì‡u:ƒE‹$6#zƒAÚmyµþZ ñ'ãúR2å~/*����IEND®B`‚IMAGE 213 ./arch/indoor/wall/wallclock.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���d3 R-d3������d3d3���d3 R-ðæŒ„òbÐ���tRNS��� (DÍî���XIDATxÚíÁ À CÝœ[´ÿÿ¿‹Ræ`»ø,xx¡†Å—#Mx#ü‰\ž§Õƒ¸—˜Á Ñ=G/¸f¶Ø¨~k@ÆtE}$ÅNü×¾¿pçÇ\‘»����IEND®B`‚IMAGE 149 ./arch/spell/Wand/wand.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V R-Áq8d3ÎKà���tRNS�@æØf���7IDATxÚíÐ9�0 A=ü9‡€síºÐX¿YMœ€k^v8ØÌêlN,`tþí¢Ë=Õe�mv”ó&����IEND®B`‚IMAGE 157 ./arch/spell/Wand/wand.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vÿ R-Áq8d3Rh3v���tRNS�@æØf���<IDATxÚåϱÀ@Ã@ƒÙæl õµGaòt“aÖn3âÌm=˜ø¹Ë³¸-3¸qÝýÿë6\óç>O�©ÆÊo����IEND®B`‚IMAGE 162 ./arch/spell/Wand/wand.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V R-��¼Áq8d3׎x–���tRNS�@æØf���AIDATxÚåб �0AƒÙæ0Á»HåEw½\ï Þ7%upd;8ŸºNMö°Àœ˜23xb1gÏÿwYœõs9à�›Iàó����IEND®B`‚IMAGE 195 ./arch/monster/insect/ant/war_ant.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿ�²"" R-���ˆÓ°c���tRNS�@æØf���_IDATxÚíÝ @!ƒëèÞÿ•ÏôF04¨ÛÖá[ö3ž’p—�°!"=ÿ"1­]0bÈÚIgîR"Ub:†ÐJ¤–¢×#ìVyaо*9kþ#( ÛQ¢š)O'úÎRW1’ õ����IEND®B`‚IMAGE 192 ./arch/monster/insect/ant/war_ant.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿ�²"" R-���ˆÓ°c���tRNS�@æØf���\IDATxÚíŽA €0 £›þÿËNZÐÃb@¼v {™cü+Æèœ¤èÐù:$De/´HL2^ˆSdbæpþz*†­Âtyn~oàVÕV˜_QtÅl¾s×0\4ÒLY����IEND®B`‚IMAGE 193 ./arch/monster/insect/ant/war_ant.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿ�²"" R-���ˆÓ°c���tRNS�@æØf���]IDATxÚí1 À0 Júÿ—+<$ƒ±¡tH4øŽÇÍýç’&¨Ã…=ðX>é…qy"1@ºiܤ› c Õ… ·n¿ÄšöO«ãÇéø¦ê„sÇ_n¾çÚw^¨ƒÑ¯����IEND®B`‚IMAGE 195 ./arch/monster/insect/ant/war_ant.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÒi�ÿ�²"" R-���ˆÓ°c���tRNS�@æØf���_IDATxÚí1À Ýùÿ—Ü!ÀP©KU…áNŽþ¬ùb+µ?Qå9þ•¦œÖú(Šy ^ê´t$RøD˜N~6˜r-ùF¸a1 ßT á… ¯çÙã_4ÛsP����IEND®B`‚IMAGE 308 ./arch/player/class/Warrior/warrior.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEÖ”Z¡¡¡aaaÁq8ààà R-��¼���ï§_��€@@@d3‚B'¿¿¿��ÿóBK���tRNS�@æØf���²IDATxÚÍÛ Ã0 Cséª,¤Ñÿÿíâ¸[ÁÞº§B …s¤„k®”ò‡Ÿåbä™+‰iñ O]8'g÷FNA?>ºëgb‡�á–„A œ1v'€‡€”íÂJhW…çb´[ue«å<^˜ †“:0tÂ^†:¢Z¡êøì΀.] Ü€>µˆ`X?‚XC»¿R‘¤çÜZ�8ˆ¼E'´ÖÄâû×ßÖy 7»Î9|-”Ñ����IEND®B`‚IMAGE 319 ./arch/player/class/Warrior/warrior.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE��¼¡¡¡aaaÁq8ààà R-��¼���ï§_��€@@@d3‚B'¿¿¿��ÿp§���tRNS�@æØf���½IDATxÚ½ÐÁ„ Ђ®V™ÿÿÛ $«MÜ“ÛC=Ìë(ÏLJéG~/ÒÃ�ÀXÊ@?± tP½X" ôyUw¿hʯoXcË l…PX™h}—|ËŠ”àÝ=Py=ç1ÏÛ¡òvìÿ~Àýb‹Š-gµ^f̹ʵ¡X~FŠ+@»µeÀôǵ+\riíø°Û¹<Ø Z4x�U0) 7Ç. ÙýÛ¡ÿÎ"%¡Ø `����IEND®B`‚IMAGE 302 ./arch/player/class/Warrior/warrior.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4V¡¡¡aaaÁq8àààG$Í…? R-��¼���ï§_��€d3¿¿¿��ÿÉEB0���tRNS�@æØf���¬IDATxÚ½AÃ0!!!×þÿo»–h vU»’åÃŒý&'2ãåœv¾„šâàN´Î!á- r¼¸µoàf¿;„œ—fu«"²~¼ÆKݲ`¥óuá·^�Ž ©ªëã‘  ¨¸*ñZùSˆU8šñÒæ9.Bð¾!ÂLáÍGÁ 7Ÿ‡ªŒ¹uî4öi²ã‚w·7ÊÞCÿÏ@Œ Ò=uÖ8����IEND®B`‚IMAGE 310 ./arch/player/class/Warrior/warrior.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4V¡¡¡aaaÁq8àààG$Í…? R-��¼���ï§_��€d3¿¿¿��ÿÉEB0���tRNS�@æØf���´IDATxÚ½Áƒ D¤®)þÿo»Ø:QÀCǾA9ìúˆÈ=<ÉE¾7r+·oaÊý<õ fï<uó20÷ª°Ò.XanæÜ¹³Gnè7>|iÞg< ªc c+7÷z@�š#~¦³Œ„u²žþ«h@L�ކ-· ˆ ¤1D ª* áv¤8šym¶ Ò¡~ï@W ³ÓDé óÐ@f^áUáWÁ¥‚È¿yˆÕ —òô4����IEND®B`‚IMAGE 357 ./arch/player/class/Warrior/warrior.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE��ÿ��€Áq8ï§_¡¡¡d3¿¿¿aaa��ÿ R-@@@Í…?ààà‚B'ÿÿÿ!!!���Ž“¿•���tRNS�@æØf���ÝIDATx^µ‘ÉnÃ0 D3Ü)/mÿÿg+Úhšo_¿Ç¡�=>’Ÿ™{^¹DäVn曆ÌäÁcä{š•ÁÓó7œœ”ò QçAªÓЃ»öùP2–íK}ë+˜\§´xqí à!…ç´ªzX SMƒB¯œèÀA“+j˜Øì{~f€pã•q ã"$hòÐãHã ƒkqD®¡Å«as¤´€E½øÙÐ7 F…W^‘fðàSëŠ.Àþ `f‰öP¶›={.<]û'ôŸVFçöj[Š*¿¥~”q—é����IEND®B`‚IMAGE 361 ./arch/player/class/Warrior/warrior.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTEÿÿÿ¡¡¡Áq8ï§_��€d3¿¿¿aaa��ÿ R-Í…?‚B'àààÿÿÿ!!!@@@���…ïBŠ���tRNS�@æØf���áIDATx^µ’ÛjÄ0 WwÙIv·ÿÿ³•µ„RËø©=O†$øñ/ûŠmyn+0óV`aÙ D›Bk:õÞÖØ¡u  ÛghÕp#+`—•ûæÃ00�¨ ‚·aÀ“¿¯'8ú\èL2¨]Oñ7–û,2( ÊÁ4 HI_úRU ¡ÿæ2¨£Oy 4FqôÏ7Z“ÑD09 µ 1ºÿÁ…ö˜Ò‰)ydèD2ă9¥ ÄÉ…:"0zªÍBðú^B¸O§ÊõüQÏ%×êæjV‹±²ÿrß[$¾ÛµZÃ����IEND®B`‚IMAGE 319 ./arch/player/class/Warrior/warrior.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4VÁq8Í…? R-ï§_��€aaa¡¡¡��¼àààG$d3¿¿¿@@@‚B'�����ÿ(1=���tRNS�@æØf���·IDATx^½ÎË PæÉ»êÿÿ¬AzJ© f›K†ð›\‘OE$μ½¼õ1ïÁö&6Ê{ID€Œ €CÁ[¤äžó ø@˜](&8fÌ£O¥—>€Z5Œ¦—V°F‰"6à(Ö 7ÀLLÄ8ù¨ò#â·c0¾¨Èj F‚èÅMŸ}_ Ô 2z€E_UD}m€Éâ}«µ†0iG¦~:„þKp~à@Âÿsõ 1òçuC����IEND®B`‚IMAGE 312 ./arch/player/class/Warrior/warrior.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���6PLTE4VÁq8ï§_d3 R-aaa¿¿¿��¼Í…?��€@@@¡¡¡ààà��ÿG$‚B'���Y¼]���tRNS�@æØf���°IDATx^ÅÍ;Â0 EQëë¿ûß, Ì8J*†Û¾c9ý¤§µü ODÿXðtÄ7ˆ„–]í¥ø‰�T…ÖJI)ÔA˜�¡ícæµÎ@BÔaÎD&Bd c6›@cÊ gv°'”€¹’í瀨R­„µ@½x*žï€#ÏøÀ!ïý Ô:s¸Ì.Þ³ xÇv`ÿd­;Ä»©p?øxé½�ak O³Ñ����IEND®B`‚IMAGE 312 ./arch/monster/humanoid/Class/Warrior/warrior_blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV��c2Í…?�1�cD���ïå‹¿¿¿��ÿ`>»¤���tRNS�@æØf���¿IDATxÚ¥’Ûà C·%”úÿß;G@­q«´ùÒúĵʚøŒõ'À6@|&™DR:â”ê{›&Ç #É� ùÞ /¸kzBØ«„œÅ`Wé�hp)=é»ìE]Å…°|Q²ÄPÏ@¯Ý€€�PhJ›@Ÿ„–ÓÇ/ùs`÷ð/ð– ¤ÎÉ zDá©îÙ�eÀ]£ï ×Þ‹%iuw ÿa‹ÏQ‹p•¬?YŽY!Ë|{����IEND®B`‚IMAGE 328 ./arch/monster/humanoid/Class/Warrior/warrior_blue.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,-ŠV��c2�c�Í…?�1�cD���ïå‹¿¿¿��ÿŠaB���tRNS�@æØf���ÌIDATxÚ•Ó[ƒ P•¤—¸ÿí# O§Þ/IdtIAÌRÀ{€9÷õŽ{p?xïW)j «×�ؼ—²iX (-ˆ!�pž$GÙ”çªÐa1t¦l “  ¹«$ ª.6æ€UwÀqÞUW’K®ùùS]‰8eÄÞÍ%ç97P kgða�qÊ4„ÂEÐÇÞ ¦Æ"m5¦�cC`¥MFû©·•�›>-Á¬EuÉ3Ю»ào�¼?LÚ)¼o¢����IEND®B`‚IMAGE 323 ./arch/monster/humanoid/Class/Warrior/warrior_blue.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V��c2�c�Í…?�1�cD���ïå‹¿¿¿��ÿ¹M˜'���tRNS�@æØf���ÍIDATxÚ•‘à D6‹øÿÿ»£LmB]³³ã½Ú–RTµ éÐÜùÐG Ò»‘üJ8@Ôe¯Ü±”×Ñä@­ÙHXº�U02�} Cù"bŒ #9š€îbµStÍ—Q"1&›Àì>0#2J@ˆ 3n1TMò=Î9awÿ#z° |¿e|EøÙž_B¡Íût~à±O°w☛‘íµßuŸ�o°‹]Âø ˆ„ÜÁµÊª8®¼~>_³ ¥‘L1����IEND®B`‚IMAGE 328 ./arch/monster/humanoid/Class/Warrior/warrior_blue.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V-ŠV��c2Í…?�1�cD���ïå‹¿¿¿��ÿ¦úÌÊ���tRNS�@æØf���ÒIDATxÚ•“ƒ0D¥ôÿÿw•æ\ѺeĤ•{9®6nÖkË=ôÿ ÿJ}Õ2v„j%tW€–z8¤‰  êŠÞÊÃTEÑÞ˜/¾Ø.w@Td²±©¸µÆâQtøP@©?'°2÷ "/žæ.c%wr’*fÈîŒùþ"§‘» äü-Æ\@€3-Þ�Õ& ƒ!6^éÀŠÀ,–€›Äº28„áÄ|F8d±G�Ûõ�lЧý`$ÿòÓþ ¼•…&¤—Ï����IEND®B`‚IMAGE 328 ./arch/monster/humanoid/Class/Warrior/warrior_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,-ŠV��c2�c�Í…?�1�cD���ïå‹¿¿¿]`j���tRNS�@æØf���ÏIDATxÚÑ[ƒ0ЖG¼%ÙÿzËÔAÅΔŸ œ ‰¯#l‹xŽì`�ïÎ \Hï ÷ïí¸X~�à�7�9ð85ð‚bÝMD<I:›Ñ CA)GÐÁÒ Q¸Î�<XÅlÛì§C V‘g Át¶`D9ös¬`ÞÔõOª×=¼.©˜¯1eE„f À…4/‚ˆK DsÐ ÄÔŸ0¾ˆ/·u­ U'Öf*€`‚VP @ôcñÄŠßIöôÈ¿ ]Óå".����IEND®B`‚IMAGE 345 ./arch/monster/humanoid/Class/Warrior/warrior_green.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,�ŠŠ-ŠV��c2�c�Í…?�1�cD���ïå‹¿¿¿×Õd–���tRNS�@æØf���ÝIDATxÚ•’Qà DÛ ¤ôþ×í&ØRÉL÷Cx¬èøøÈš<Šäÿ€]H¯’ô DPJyºzàYêf7€™”‚qª‡Žcw7À£N@ëdPßtô§Z¡B%¡Ün2$„  X¼–¡\Ý&Þ°VÑÖ †û®ú˜’0‰hZR÷$µ¦8²~ewˆ)ÔÚxý#‘ŒÄšá•ÉÇ`ÝÀ€€þˆC&uá¢AŒ€.[&‘wîÂÁ­û>¼Ó(Í ÐÎ6%yi@]9ˆ}�H¾w f�˜ŽyNHÿWEïêà àaüƒŸ����IEND®B`‚IMAGE 329 ./arch/monster/humanoid/Class/Warrior/warrior_green.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V�ŠŠ-ŠV��c2�c�Í…?�1�cD���ïå‹¿¿¿iëkâ���tRNS�@æØf���ÐIDATxÚ•‘ƒ0D»R܉ýÿï]a4˜a5»DK¼—ƒb)EDÊ”¸âËŸ€< ÷A|—°aGî,yÛ¾è8úL�0ø?P|q¨C{c0#­g˜¤¾t3¾6qoÔn†iQ§¸,aäç>†÷@ç|{+� ”ÿGÌÚF8r UŒƒV¶.ˆk�ÕDP?Ë'Ô'Ù±M1l1a}©oÄ5°‘+À 1�Ëðuµú�l´já�¬È¾ÈœÈrU®ŸIÈ&�Vú½����IEND®B`‚IMAGE 346 ./arch/monster/humanoid/Class/Warrior/warrior_green.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V�ŠŠ-ŠV��c2�c�Í…?�1�cD���ïå‹¿¿¿iëkâ���tRNS�@æØf���áIDATxÚ•“ánà „[ŸMðû?ï,³! lSïGŸ¿Ž¥<Zè±+½é ¤ó/Pû«×h`èý¬½× m�º3½9"ŒiMà¨ÈôöŒ‰2$UÍ–˜¶HBjžÂ P†H'\1€I”l™ÆÍðê &1T8Üa °Q  Ë¹‹Qçœ înQ^v1\Άüôñ¤!Œ+@H*‹r6áÙ_ˆ—ózTжän@t ZJô>Ó° ¯€}oK‹\(ósIàpKHMö Èæ³.ÀaþùÓ~ |72ü Š����IEND®B`‚IMAGE 324 ./arch/monster/humanoid/Class/Warrior/warrior_grey.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠV��c2Í…?�1�cD���ïå‹¿¿¿|ð®$���tRNS�@æØf���ÎIDATxÚÒQŽƒ0 ÐnÆÓ©“ûßwÁråfIX©óA�?Œ#xTüºŽõ à7@?+P¤÷§nzÏû¾Žç?@*°Ø�y®Ù ê¢ü<∂̀cÀï´ °AaJÖ«Œ´(å™& P®�ŠaøgãsŒyÆ8€e fygoͯ_’ÑÙ@Õxˆ0gØ!R;¸¾ h ‹ö·ü ìKtXÖ›`[‰zÒݰ–€;ðJ h °ÆñW.€<Aä êæ'øÔ) ¼ÕjÚ����IEND®B`‚IMAGE 337 ./arch/monster/humanoid/Class/Warrior/warrior_grey.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4VŸQ,-ŠV��c2Í…?�1�cD���ïå‹¿¿¿|ð®$���tRNS�@æØf���ÛIDATxÚ•’ë®!„Oæ úþïÛÕe½´IçQ?Eþ†¼ëZåæï€ ÿÜ\ÔZ_ö|ìU[ñ/€»Ôjë­fÜè 0½€d„ è™4@è´{;óÑšC—Ý P‘b›ƒh”¢x({Ø4ý’ÀÙZ±Û=„Š©%·…{ïH1�†F'�íiû·B̯“m0Bý‰ ,¡QEÖ£X¼™¼À½‡# è_ñ”»0?Už'�£õ®àÐØ‡2€Ð åxP7džU)ßÐÀö1$ÐãÌ…����IEND®B`‚IMAGE 331 ./arch/monster/humanoid/Class/Warrior/warrior_grey.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE4V-ŠV��c2�c�Í…?�1�cD���ïå‹¿¿¿›¤y���tRNS�@æØf���ÕIDATxÚ•Ñn„0 Pšx3!ÿÿ¿ç낊ÖÂm"Oµ(Û¶EÄv&*ãÍ?A|´ïÃð�b—àuÏG|힀Gr€ÊÄDÝÐàó‡D…S@óöXP¾cWè¦"Ýò ¼34K›@Cà]aSEŪƒ‰ù;úõ¤ŽÕÿèû`ל\èF¹\Ö+”5ðf=¨ùö4¸@‹m9§Ø{nÎzu<€º¯¼Þ´Ú.¿]¡�î@{ð(@ˆN€j‹-€2@ü¼�  9Ó}¨m����IEND®B`‚IMAGE 334 ./arch/monster/humanoid/Class/Warrior/warrior_grey.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V-ŠV��c2Í…?�1�cD���ïå‹¿¿¿-ò8-���tRNS�@æØf���ÛIDATxÚ•“Ñ®!Dë0ÿÿàî…n´†´éyXãxãÆ‡_<<©üW¡’¯‚Í¿i»à‡@̉J{AmN[Bò&`†V¶”£5£FÈÕ‹=|¹[`Bne|ƒ�¨‘à…0!Ha$@±P‡0€QML¸„7�8 ñ¯7ÿï%DÄ5íî"Ϫ@P*YJ*N@ˆ Á¸` ®¹ˆÑ¯çMRÔóÓ ¨§çÞ­»Á“ÑâΫ•v.¡Z±ë±Þl¿…¾Br»Ò<¹uÿ®ÔF@†íÏÂ= áî‚c����IEND®B`‚IMAGE 338 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4VŸQ,�ŠŠ-ŠVÿ��c2Í…?�1����ïå‹¿¿¿LrÏV���tRNS�@æØf���ÙIDATxڑу Û€üÿ÷6àYEÐÎ4¢d³!ò:"íÁo¾ý¤ÀÞ9vÀ€ä¼Ú#sæ~šN¬?�³˜ Ôõ"ð:õBkHh)ÑËF�Ó cþkˆµ;ëá0`gÀb‰ªI«E`µ[¸ Q<,mŽþŒ$¢š¬`º|—"x‡&o±Õ-b`òXM£q¼þ:FDêþw�êˆ*OôÖà€/4LòÁ3Ûj‚j¶š €@Ân?  Aá†tsüéSàØ<+·¬Ox8E����IEND®B`‚IMAGE 354 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,�ŠŠ-ŠVÿ��c2Í…?�1�cD���ïå‹¿¿¿,T–���tRNS�@æØf���æIDATxÚ•’á’à „¯è®%«ïÿº7‰´)×›îŸDø�Ùñç!…æéüÐ߀×{¯-âÐ{¿ùÐ ø­M�©ôî×[­¸7]€eƒÂ±˜•N Ó#|®¯c82ºÍð@ŒzÂŒùðpŒV& É Cií¨Qݧ-áp…#Ûb‰×ÑXŽ5•˜|ܳˆÛ83ÉÃbˆU@'ÀH½åip¹Áèq,OI”2h——ý›Ž€Â$3â-LÓÀ €Ecµ¼ƒñÐþé ¦ à Ïÿ’ø(-ã>Ò7À/"MDæ|é ����IEND®B`‚IMAGE 348 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V�ŠŠ-ŠVÿ��c2�c�Í…?�1�cD���ïå‹¿¿¿Æ²¼c���tRNS�@æØf���àIDATxÚ• „ DÅ~vkåþ×ݱ©ÑØEãh€0Ãkaš&wŸvyêØyðÇ€Ñw%½#,HØaÜ}©ŸeÕ»�­ká¢SÀ_ @9I“V/’;bbÌÜDÕð—ç±¾öÁfr¢¹ õKÀ@v›AðNÔéHâà×!ãMFä]ë=bdÄÖ©W%øØ)r6xTì<ÏQÂ}t>Ÿª¥_ f\4ìê+*˜kÃø¿æó Œ˜„&%ŸKF„93¿%d²T¢‰p?…k`S]?~Ðe1d¹t;����IEND®B`‚IMAGE 354 ./arch/monster/humanoid/Class/Warrior/warrior_lblue.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V�ŠŠ-ŠVÿ��c2Í…?�1�cD���ïå‹¿¿¿’jâ���tRNS�@æØf���éIDATxÚ•’Ž„0DX¤üÿ÷Þ‚w¶5$››˜¦N_F ¾ü£×®ònÿ¿@9_s¼Ç¹þ�”ÇàËí;G&l_Ü�aå-È#B-­¨7“\óЄ ¦ºÄø" %~BŠ,„?O“ äªæ8c„@T È88‚u«2Ã-Žý¥Úäê Þ£È*8toßžXU›¶€¢$itªÌ@ýùu[q¯¥àj*: N<eÕ´øõ+B: «¯¼èîGŸpïë�Ñ?À ÞÌ›X,±nÞ�ÍŸü ø[ýÍ©•����IEND®B`‚IMAGE 324 ./arch/monster/humanoid/Class/Warrior/warrior_red.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,-ŠV��c2Í…?�1�cDÿ�����±!!ïå‹¿¿¿ÑpÍR���tRNS�@æØf���ÈIDATxÚµÑá‚0`õ¬síöþ¯ë8&ð‚‰‰ý± öQF¸DøN\ñ'ÀP®Í2¤µG9ÖÚ¼ÏÐ_@)’„e>$AÔ:Ùôn¤êŒ>À½ªUîðì†AVƒ ;PlÒ[ü”:�²Â+Ga€t€Ø�ëæÕ‚—þÉ›ùsUtp ×`¾"#±ïâ’Ä  *Î1¹ˆ“rLÞ�ä6g"£)@k@€Dг-r°-cý ÐÅïðé»����IEND®B`‚IMAGE 335 ./arch/monster/humanoid/Class/Warrior/warrior_red.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4VŸQ,-ŠV��c2Í…?�1�cDÿ�����±!!ïå‹¿¿¿ÑpÍR���tRNS�@æØf���ÓIDATxÚ•’რ…×Ü úþ¯»˜·bEç4þ¨ðÉô±šÒ|ÿz Hy·‚ࡵ6Iô©õYs€§gkEO€ŽeGVa /�¼Šo¼VèÆÄû¥w±J3j� î†P˜UŒ4û ÷ î·Å�@Ñ{ÑЖ©ÇŽ_½C)?ê—Y" ¥5o“Þ󳨺F$ù[ @ÄǸ‹œâ0ïÀªå„+†Ð`|øšgp?=‹¯ÚNf�«çö¢„ÇÍ šß#oÝÜî úñµä°����IEND®B`‚IMAGE 333 ./arch/monster/humanoid/Class/Warrior/warrior_red.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE4V-ŠV��c2�c�Í…?�1�cDÿ�����±!!ïå‹¿¿¿ÞÅúo���tRNS�@æØf���ÑIDATxÚ  Dq¥ÌÂý¯+ËG—Öè¤Òy}B$à gÂÌ�¿QžYpe8*W½¼s‰Ç‘qHÎeÜ&dDÄà˜�…?G�¦”@¬¿žÔ¢”b‘,IAA‘[¹Kù�¨0Ì E¤ˆz f¨~·Åêøs´±èÿ诪;@ˆõ .$¨jr‰ÛšH¶x ù[Ð{Ô^aî7@ßãHÖLâdrÌ{ƒ¢zfÀ¸.œð‡a~7ll/—Ì¿þ¼�Æ K~ãø¥����IEND®B`‚IMAGE 336 ./arch/monster/humanoid/Class/Warrior/warrior_red.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE4V-ŠV��c2Í…?�1�cDÿ�����±!!ïå‹¿¿¿oNÂ&���tRNS�@æØf���×IDATxÚ•“ Ä Cw^Núÿß{Yeë(ÊqAØhß’bÙAé¢t×ù?@þJÿôâ€�¤Þ“ª[ —Þ‹!SÙjæŒì¥�P(ч jµÖÆaJ@U[Bï¤c€ j5ˆFJ£ŒH3¤!YpM‚C1/’‹ýMà´�ïWhḚ̀ä«O›Ó' �ª t €º(™´ußP'Ä5`ý3hæÍù\w}g¡l‹6«ºupvë K“³‹_0Àà_í~Ú¿/16YNyò����IEND®B`‚IMAGE 388 ./arch/ground/wasteland.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE��ÿ-ŠVþ¿Êÿÿÿ¿¿¿��ÿtåD/��'IDATÁ1nSÐYëv'ãÚRä#ГÂ5iRï 0nÿor~ÞC%NÂÄ ÄÈ¡hEN`»¢«#D+#yyjUÉt¶…ï=¯”oÔ‹…l½ÿžšŸïg?â3Ó‰eúÑ�î"’©ø¢,Pií£ÍH^!1˜H‡ Ú!Û#š²%¶F‘”Ža‹[i»dµiÚ_týí@}ÛûÝV¼|2¨ïÏ _‰¡³¾ÐjëaH,Œ = úh;eÎpÎÈmPhçÚ¶G™`4e§^hü‚‘´~\-$IW~K ‚Á(§³õyCAeâè〻| ^>‘¨Ñô㌄ªhÿ>úÃÔ–)g•·‹ç”0>*¡/µ´gÀ0ƒJ$ýTeg´â²0����IEND®B`‚IMAGE 1994 ./arch/ground/smooth/wasteland_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���0PLTEêêê��ÿ///333HHHNNN-ŠVÿœœœµµµ¿¿¿þ¿Ê��ÿÿÿý˜y[���tRNS�@æØf��HIDATx^Ôš¿ŽÜF‡[v`n n Ì#^x‘±â@á@,¨ƒ^pà‡à6ÜA‰V&ÌFf@·* »Ù¬.vq¥ÿH7‰ðé«úýšä@Âì¬Ù¾ú #zDtñ-‹åÅ÷‚ÏØ'àÄóûmò‚Ïí7àú {tà< Ђ`å�b¿š¯¹î—|Ö~òâ<çöïýˆ[†§! à·,n�±Ø¯æk®û{Ágí'_GÛ7ëýñù50ÚÈŒˆÝ„Ã[»Äb¿š¯¹î&ø¬ýäûŒ¨ö·ÆàDÚjý}x=u+ÚÄOø+Ï=l¸ hVŸ·«ùš•þ ŸÌî¾1bß&ÿ[f þ_ºž†÷/Má•0Œ¯\àÌÄ?^C÷Íë‹éÚlXÜ€™£ÏÛÄr>³YYé—Ü(ý‹þ´œ]ò_–Lâw2Æ®ýÅ•~ã ì¦>£%î¢?v§ÅgžnÄ ž¢ÏÛÄœOžBf¥_rŠæ~y>­•2ß.ýåFÝoBx .¬‡@ M@ìFô·íâ3–« ñ}Þ&6b>ùvv +ý ,âþz¾ ¥¿Íb“¿ô‹Øªß„À¹~íÝqòÇ©Ï~asñ}Þ#6 Ïg™B#+ýêÅÑ>Ÿ…֙ŷ2?õ‹›W÷›09„ê ~£ íêC+�àpöë_ÓÙy~ñ«&VúÕ÷w‹ó±ÐúWa‰+/n@Ýo:8z¥Kï‰Ã´³Þ£#Ïç#&ŸåùäÛ¬›è勽MÏýXhýf/?úžÙ(ý¼÷0ëÞyGƒ­T €ÃÙñ0Mž_|/Ÿ|±ßïou•ó/÷ò£çtµßP>nÐ=å �l”Å I{%žÅa™_|/¼’_ò»{›ó¿ÏÂnò“gf/ À ŒºOÿÖnDœý*ˆ£Hó~ñFx%¿K¿*šœÏ¾Ùä7É ®rp€u?9ï×ü0áìû,>™–(šèü˜¼˜WóOw÷k¢áüAËç󵼤ô˜®†GŒª|­*_8û÷].€«ÜmòëøÌ;ùwök¢áüáóEÜËùÌäÅyë¢ñ—ë®@Õ£{´ûxfßg¶ü¸ÃSòëøÌzþ“/îê×çs¿ÝäÛèåyë ‡7¡@ÕÃÐêÜ}fëÆ¬š ú—<N¬çÃpyG¿"cÎ'ßæú5Ÿ9< 瓯¼(Ð<\ïH]ô™ìØ'}ÏãÄz¾ í~¿æ‚[óÙ7k>s'–ë~Ø]¨ztº³Îûè¹Ñ³ô�Ñ·b^Ïç Í÷µ¸@HùÂùßåó‰å¦ê7ÂT ê=êÎb‡ÑçÛaÑÕAôr^Ï:ù;úûZLÞçüÀ»kþ=:Ór>ñ8 òëÆUï½îœ_EŸOH̶¹M>{5GwW%ìèÐÅ|q¾&ç#ù|>qÈ×{°eT=ì <Â}.!.ô¯É—ýìÓü’0�°€­¿ÜÇùóó¾È·ÑÑoÃɘäeÖÊnÝ·ºÃ�cô9€¸ÔÉ‹´Ñ�ï§|z=u'cOvœuövõò¤ùŸ‘û‰gqXú…?¥%âžúë'óü0¾¸ŠA\h›|¹qf›ò,ò>‚릅›Üg ÏŸ(·ó™ÛY¦~+}Ú[¸ºˆ1€çxs–ïàÍïÑ»EºI¾Ü°iþëþãx<!2û¶>¶ü—yãIZâ¹eëé,™Õ‰ù̪ßsˆ>úã"ˆ+/oÀ2ÿ¥iwÍû½à©þd,såÛØNVñÌõEŒt³êwÜ8¢ûĵ/7òüÍò%›ææë œüOljYõ;Î;�±O\{fÓäù7¤†‘ü?Îõ^ øÏKó§àQì—ÞFßóÂ:¯n}wï«‹pècϬù=×x�±O,ü¿g_„çyDçoÇÁ½Ö>Ï×3k¾Ý“�÷ ®ý³zmˆïÕßÀžùmßÿ+ûäÿ?÷ùûø~?`ö+7u�ûý}ækŸ¿oµmþ¾åxmŸIßgþ°öùûø~'à0ÁìKÖö÷ð'÷ï>ÿ~Àíš¡NCAE/nÄâ[ø$$AHø„þ 8D!8 ¢Ñ4|�ih2b²wYömvŸ€Îq'“™lmÏC‰´¿ãç¾ïs†ú=иù÷­¿£Äò6é÷µ¾Ïècºû¶},çÞ·þ^Cº±t^îë6/ñžîC÷uö}X_/RíëéœQÚGã>fßÇö ¿!4—ÿ¶Úg”æúç÷{ ‚ ‚ ‚ 8²dr°è¾¿¯qÀhÞÛk¾¸à<ÛçÏto‘;¿g yo¯9ö½ž:S—ó=u÷9’9’÷öšëê‰ÿ‚›à /ß[¹ûüœÞ3ެ· 9„Üz}ò{œï‰9Ïé}ãÈz»ƒÝzý+ô8ß÷âîíZuëõpÐåtO'8r̽]ªn½~ §Ãí^£c$ÜÛu‚ó÷n÷ý*R}5›Hî����IEND®B`‚IMAGE 221 ./arch/food/water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEï½÷�ÖÖ�ÿÿkç”ÿB¥ÿ¥R)Æs9ççç���ÿÿÿñ &���tRNS�@æØf���jIDATxÚíŽA€ ‚4ýÿƒ¥È5uÆ“Óãî,ŸùÀÇ`.œ¹@Ô”„;56¤¼¼:´`°êó¨wÁ] €¹,D í7´�[GÁË4âT`¯7!ô`±à:QR¡è@Œ\A+ÿ{³ àÆ‘-Ÿ‹����IEND®B`‚IMAGE 299 ./arch/food/water_diamond.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ 'à$¾���PLTE������¥R)Æs9ççßçççèæÊÿüÐÿÿøÿÿÿ$5çP���tRNS�@æØf���bKGD ñÙ¥ì���yIDAT(Ïc` *`@6DB`tDá ŠÌD1C0Äs"ŠúTÏJGðéÓ‘µH´zV¢˜!ቢ‚±£Õµ²E -$$ I@¢­#à Ù‰ŽŽŽ–D$±ŽŒŽdK;:ÚÐ2:Q½Ö‘êWAA†A�ÿçæëàG����IEND®B`‚IMAGE 301 ./arch/food/water_emerald.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ !Úž©���!PLTE�������ÿÿ ”+ í@ÞE¿A¥R)Æs9çççÿÿÿ½á“���tRNS�@æØf���bKGD hÐôV���xIDAT(Ïc` *`@hDG`tDá Š¬B1CpjÔBõ‘Q^Ž(ÓÒR– kK‹JC1C4uÖ²$$Æ`K˨,³Ôi©HÂÆ¦Áa‰ ÈÆÆfÈb@cdK Ð’ Q½fœŒêWAA†A�õûÏÄZ����IEND®B`‚IMAGE 303 ./arch/food/water_pearl.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ $0 ³d���!PLTE������¥R)Æs9áááçççóóóüáÿýÿýþúÿÿÿÿ,Ùgå���tRNS�@æØf���bKGD hÐôV���zIDAT(Ïc` *`@6DB`,Dá Š¯B1C0¼j!ŠúÔ*/G°”%KµH´fÍB1C"-k%² ÆŽ6W//–È$‰¶Od[$:::ZÄ:2::-aìèhCÈèhDõZGª_9��5{¥~p‡����IEND®B`‚IMAGE 299 ./arch/food/water_ruby.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ %'‘'*���!PLTE������¥R)Æs9Ï00ï±±ó ö^^ùbbùqqÿÿÿݶ€n���tRNS�@æØf���bKGD hÐôV���vIDAT(ÏÍ1 €0CÛøUz h‹»`W¡Í.zƒÎÞØõ§³ƒÙþ#?!Æ|*ÛT *ÐVÀŽB·ôeÈòÏ¡ŒÖxßúÅåP(ÃM9,ò\ ´Æ¨€Kð‹nq�Ò£@è ¤ xì< ž·ós½bú «õ°����IEND®B`‚IMAGE 345 ./arch/food/water_sapphire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé��� pHYs�� �� �šœ���tIMEÛ  0§Þ ���HPLTE�������ÿÿ ÒiÞmçpærçkçmç”ÿsèpé$|ë..Ü1õ66í__óššÕ¥R)Æs9ÿÿÿÄàš���tRNS�@æØf���bKGD Ö˜���}IDAT8Ëí’»Â@ #àx,ò‘ÿÿTŠ´Øi)P«ïŒíiúÕH;ýºÖ„Þ5 Y…CÒ¡¼cT}·#bÎaãˆCB¨5�R‡¶¬b€P> þ¨7–ÍpÊ 6<xõÌ`pU±&Û>—ÀíÞ«CõK{U¾ÒÞ3ý“ä{VÛÑF'Z����IEND®B`‚IMAGE 652 ./arch/food/water_wise.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ %Cº©>�� IDATXÃí–=‹SA†Ÿ™{s³äcMân6q%…Š –ÊBÔ ‹?A°°°Qü+ÛY‰ØØÙЍàG'n$²î&YW“H6_÷Þ™c#b·¹‘Ä&LûžsÞsfæÀŒ“A~Ÿ}Q“þúf€³koö¡'Q~µÚþÖÖEþjL³ßRX—?L#¸�òu».'¹ðÔH=°Òê‘‚ë±­¾^gs§É•yî’(¼Ü YyâF÷ÈæN“Ç•$ΰ˗”Çå`²p»gÑS ÔHújÜ굆»—•Äk¶²š1Å)OS°z,>’þX-P¥$Ï)Bß'—4äQ¼ !@X=ê¬åF­¾xõ#¹ƒ)Ý' ]6Z.¤ ïáÌOË­’‡D°6R:±À‘¢Áä4C ƒ=E!ÓçùF–óK]Þ6Ö]Šï'2„²|£Î\Úâ¤5qÇ…à-§h~®“9´@ï›Og.NíÎüÈÚ‘fÀ‰k± íi¤Õ#_È¡‡>©LªÛ‘z)ä|ãÇ£«ñCKZ È÷Z—Æ£r$g£$ *÷/b|Áß3ô;~/ Û Aø]‡`vОœa»ŠX°N_¶ä+G±õIÓùµÅÈo‹ó`éZ¥]ޝ©|Ø¥¾^Kó_™Âr3cÆŒ“çù?Ø‹¬ë’����IEND®B`‚IMAGE 226 ./arch/spell/Cone/wave.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ÿÿÿ”ÿ��ÿ��Î�kÎ�ïï�JÆJ¥ÿ��„_;!ê���tRNS�@æØf���rIDATxÚíQ€ C¥0¤÷¿°ÝLˆhðO¿è²…ñʶ¥¥ÏDªx¦7 ƒ$¸&htZ•¥ð‹¡Úð›ÈŽê˜õîÐó€±@çÑ€˜+WkÌžå0vî˜ã_³Â-FU¨ª…¸ÉgD÷§°˜©ÝÏVÚ����IEND®B`‚IMAGE 261 ./arch/spell/Cone/wave.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��”ÿ��ÿ��Î�kÎJ¥ÿ�JÆÿÿÿ��„�ïïlB9É���tRNS�@æØf���•IDATxÚíAÄ ’Rûÿ^DE¥¶ô¶§Õ<rå¯_•$d½úTËš‰`hä¼ö@rˆÌÅüh`r_$�AÈ´A=ò7Ø‚© -€j%Ùâø|cÃPáJØD�Û·!{©Ú6� à’2 ¥8ýƒ4R¢ìuصÔë7ô3Tz»¯»Ž;f÷%}�ã~i‘Ãt����IEND®B`‚IMAGE 307 ./arch/spell/Cone/wave.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�����Î���J¥ÿ”ÿ�ïï�JÆ�kÎ��ÿ��„ÿÿÿ0+Âå���tRNS�@æØf���ÀIDATxÚåÎAŽÄ CQ*˜ïûxR ±¨éUïÆ$äG)톭Áþ]a$·Ñ»eI¦•q—³‡³!dùÄ“²´•p‚S²fý„^’5@"·(ÀE ` *@! ®DÕˆBõ„ã! Ðc,0f@ŽCJ4ÏWì`$P’ñš¶Þq‹xßkÜ"hÞú‹Þ•!©Þf¨™$¿‚‰š·>o0Å„™u»îµGíÊý®uÓ–ržkæ·òÕnÖ¸´º����IEND®B`‚IMAGE 207 ./arch/food/waybread.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8Í…?���ï§_ÿ×�š,4(���tRNS�@æØf���kIDATxÚå’A€@ÄV;üÿËf‡è ð®pl™ÂúaŒ<$1p‰Ñ@¡!äŽÆ §7®gÚN›€”Ô éÔ›b`§Y{“R80Pz¬ÒÝÇbÕ»-tv*ž·ÁüœïOõ½º�?—øE ����IEND®B`‚IMAGE 177 ./arch/potion/wbottle_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¥R)Æs9ËËË���Q~W���tRNS�@æØf���PIDATxÚí‘1 � ĪÍÿßì ÅÉ NÞ Ò[j<pNï¸Ð\ “aÓ Ÿ Ó7ª,À~ˆ‚l…uAy€? tOœ öQuŠñs“XÙ�ûq����IEND®B`‚IMAGE 175 ./arch/connect/Doors/wdoor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷ÿÿ�R){B!œZ1���l»���tRNS�@æØf���KIDATxÚÝÓA �1CQÓoîåé¾W…2Ù.´ÎØ•â¡v®Á¡††0߀5ë}ÀM G@Rд¢€«@ÿ·Ìø+õz>  # a£Á����IEND®B`‚IMAGE 192 ./arch/connect/Doors/wdoor.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷ÿÿ�R){B!œZ1���l»���tRNS�@æØf���\IDATxÚÕ“1€0  ¶ÿÿe¤6#6¨0€•íœS–lKш‡�2 GálÒö.´À^à–@YÀ‡‚ÊV•Ì©$�Ó=—ü] …‚ý©¡MÃ/ç�bzX€¿†2����IEND®B`‚IMAGE 192 ./arch/connect/Doors/wdoor.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷ÿÿ�R){B!œZ1���l»���tRNS�@æØf���\IDATxÚÍ’Q €0 CÍÒÞÿÊ"ýX5 ‘òµt²}¦,ÝÒCÈ`\æA–Û@Ž ¥‡Ï€Q¿eàk@.À��˜ 0·r? §ÄJ€?¡w¹jªžwéý·Ú›̓óÖi����IEND®B`‚IMAGE 167 ./arch/connect/Doors/wdoor.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷ÿÿ�R){B!œZ1���l»���tRNS�@æØf���CIDATxÚå’¹ �0qÀû¯œšGТÄrçÓ‰Yñ{OðPMC-�š~-À �ÞŽ$°êÂxN ¬öù™eU.=´Ïv¦_ç����IEND®B`‚IMAGE 392 ./arch/armour/shield/wds.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���9PLTEÞÎ÷���µµµÖÖÖÎÎΔ””ÞÞÞ½½½œœœçç祥¥ÆÆÆïïï­­­ŒŒŒ÷÷÷ÿÿÿ{{{„„„Ì€ä���tRNS�@æØf���ýIDATxÚÍÑËrÅ àp ˆhäôý¶Ø,N3í®S.ä•ãßÀ/›@� ‚,û˜/´Ià^W[€× …@T�Tu—åÈê½ðÈvˆ[²(+àC#A„¡=AOà~� _@¸%€¤€NZç-,Kóç×À‰¬µ%ˆ£y}‚ËßÀžà~è;¶Ÿ/]%ŒÚ ‚ÛZ^œ ÄàB€ååÄ8npòô„;¢eC§-´Îix SgØ/©Ú‹5ñ†B}sä§4J@•8û;è©%À vŒs`ȳ¿×b\M–þN-²€5Ö€Ý]Ÿ^´ Ó{$û–����IEND®B`‚IMAGE 451 ./arch/armour/mail/wdsm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE���™™™Î™�ÿÿ™uuuÎe(‰‰‰âââÆÆÆDDDïÿþ�ÿÿeeeÞÞÞ™��îîîààà000ÎÎÎêêꪪªºººÿÿÿ � �&P‡ö���tRNS�@æØf��&IDATxÚ•“‰Žƒ0 D»=9K.Çóÿ_ºch ¡HÝ„bÏ<qú“€/6Žòô@³Jo2sƒ'$j¬¡÷6-BL€5KMoË=r¤`²"#Ò] .“qpLYÍÞ:@Zv@ÌŽ€c ö­x_�ßzdQÄ Wö@ôyñE"·’…Ì> ù¨6(R}ÀܲŠ´y¨ælg?¯æ®wÉJyÕkoq£æVßM»%²³cnf%Ú¯á¹ë•À^Ú1*›tGÀóy;_.çÛÓtT:î<~4hÒá€éÎT`:Èi A¬ú$&$\'IW®SÀ> ’B@PçIlîi8 \±FŒ+Àú�&:¯WÀ� Œ•1z[+Â~ÿÔÕSÅ•÷U¿Ï]*YÛ)ä����IEND®B`‚IMAGE 448 ./arch/armour/mail/wdsm.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE���™™™Î™�ÿÿ™uuuÎe(‰‰‰âââÆÆÆDDDïÿþ�ÿÿeeeÞÞÞ™��îîîààà000ÎÎÎêêꪪªºººÿÿÿ � �&P‡ö���tRNS�@æØf��#IDATxÚ‘ ’ƒ0 ³99ƒ/Yóÿ—îØ`Ud¨R»eC¸üà#TFMÏä”>‡p“'¦€Ü}ìæ!)H Kí7Ñ3HIE„']…鮲ÊlÝ@Zv†‚á*Ø·bmlkG ÷�Y9ÞÆ™‹x%³­/B°PmP¢úB¢åˆAhóR±üzÍ´<%+åTÔ~QúFÝ}7íæÉ¤tf¸‹ö]9€*…:ÚqzUŽ„÷ûq½Ý®wÊ‘°Ë¡ðäõ§NƒGRž\•\¬;^Óèœä _‚›pŸ$ÜyŸ\-@(ÔIPÙâÀ©,\XñŽJ1®ë/˜H–¿€5v�7îÀèȶV„}ýÖ"ú°+vžËå*Yo0zó����IEND®B`‚IMAGE 438 ./arch/armour/mail/wdsm.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE÷µ÷�!�½½½ÞÞÞ!!!ÎÎέ­­ççç111ÿÿÿïïïBBB�ÿÿœ��cccïÿÿÆÆÆsssΜ�ŒŒŒÿÿœÎc)œœœNA6(���tRNS�@æØf��IDATxÚ•“‰ŽÄ CÇI8{εÿÿ©k¨hÅ´Òì!û­ªÞþ$à‹ «ÜÿAUë«hp†§š±5™m¤(ÍVÓ;òE ŠJ‘˜Gì@ MdÊ”Uõöd`Ç­I (S°$ÆÄ!"i@Ï�½vBL›/x•ldŠ¡>zÀlE“™¢¸íŠÙfت6¦dÖfuÛS²2îJã¯VÜî»Ùrì^˜Ÿ¾qÆ:‰èÕN·¹\Óô~¼^÷Tttºž?æÌÛ| èÉTju‘;ެÎI­p\†Ç=‹¿sÍŸ¹˜o‚>÷âÀ]¸±âŠ@¡;Àú�™Ž±Í@�pÚêè­ûÏ·î~œ.ú!X ŒúÝ+����IEND®B`‚IMAGE 947 ./arch/exit/well.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��øPLTE���"""„xk™SœW ¨h$¶EÆ•g- šT¢`°v8ÀŒZΣ{Ú³”888EEE___Ž["ªm*ºƒLÈšnÖ®ŒÝ·™ÞÆ´999```TTT???¤¤¤ŸŸŸŽŽŽ|||kkkZZZIII{lœœœëëë===ttt$$$¥¥¥   }}}lllxj`<84ðððêêê,,,&&&ššš~~~[[[JJJo`‹‹‹þþþccc¡¡¡mmm\\\KKKn`V.*&ÿÿÿ%%%‚‚‚nnn:::)))ygX€€€MMM˜˜˜‘‘‘]]]LLL;;;dVL!òòò‡‡‡jjjhhhooo^^^***r_QÞÞÞWWW<<<+++ZLBïïï›››eeeDDD o\Npppddd©©©!!! SE;ÎÎή®®AAAn\N ÏÏÏRRR¼¼¼ÆÆÆ72.ˆˆˆ'''¾¾¾ÔÔÔÝÝÝyyy¬¬¬ßßßfffOOOõõõxxx†††¯¯¯333vvvgggbbb“““××× aaa´´´###VVVrrrªªª@@@ŒŒŒ���D<���tRNS�@æØf��iIDAT8Ëc` 7X¾œ‘‰™™…•ÊE‘ŽåË9¹¸yxùøa\Tý‚BÂ"¢bâ’RÒ�‘Œ¬œ¼‚¢’²Šªšº†&X a>ÐÒ–ÓÑUÔÓWQ50426aXŽæ@S3s] K}+ki[;{GtZŒ²NΖ.®nÒîvË=½\Ñ}(ãíãìëçêæôApš ËC…‚ýÂ#"¢¢A^´ŒAóâòظø„ÄȤäp(¤¢‡ašyzbHzFfV6HÞ3ÇM~yn^~fFfaØ€b3tËKJËÊ+ TbDÓòªjÝšÂåµ ùºz¯LË›|šÔ)xyµ,Ç¢`yk[{‡Bg——WwO–¤°<¨×´¯¿cBjðÄI“±¥•)S§õ)OŸ1sÖìÙ“s±¥¦9Bs•BçÕãg`˜¿`á"ÅÅM³gOªÂ•$—,]ÖØ>©²e‘�� z997“����IEND®B`‚IMAGE 222 ./arch/wall/cwall-west/westcityport_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������`M ‡q;¦X½­…ëå���tRNS�@æØf���zIDATx^…ÐÁ 1 Q§ò³4°© ¶ÿ^8�ø=#Çkdû¸nñ¥}ß_à ±EÈ›DcÂKhHU¬³Šñ˜šhhUÑOlésá³»ŠÞ«ˆP1 š]E3„(Ñ Ñþ_=qõÁ†~6ħñ/º"€@©����IEND®B`‚IMAGE 264 ./arch/wall/cwall-west/westcityport_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���ÕÈ©ìåÔÿ���¦X½­…ÕÈ©ìåÔÿÿÿ {Ã���tRNS����³“fš���•IDATxÚÝQA!KK þÿÅ]5Œ¸©÷ÀÁ Ä3ÀàÀ?ÿ¼ŸghbX»Åé}Èæ·(Çïûà…ȈæÝ"ɹ½¹ö7‰9¤œ†„‘Rµ»—35 ¬ù2Ô©XøÞ P*RÂ^€dU¡VùÜ_Y5‘ ó2Ut‹š—R1lñ`ù 0Q ð|Ú# ~ÙD����IEND®B`‚IMAGE 337 ./arch/wall/cwall-west/westcwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf���äIDATxÚ•’QŽÄ0Ck°áþ7Á´[%d>ÖUÕJ¼ØäZ„U×"’¢¿�„WyxË€!ñÈ ëaÿºWDè¼€»#ñ:Ĉøí�cG¶FDw@"ñjH§!UJ‰‘‰5€5ŪÅÀœNÔˆ,X ¬[p~O:ŠÛÜŒp¼›D‚ú&dm€Ñꆔû.u�yϰGÞý 㤉¿Ë::ÂAv©pí€PÜþ‡ëÚ#T©'ÐÀw8)»(<'”mp�¤:‹®égðê-Üg����IEND®B`‚IMAGE 341 ./arch/wall/cwall-west/westcwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf���èIDATxÚ•’Qn€0 Cqc'÷¿ñ”D¬jÊ>f„àá—ž,.œÉÛðKòº^€ÂNLÀ˜�;Ùv5`!ðfA_€C̃øhÀ²T4±°nÀÌØ ~„†±OÖËÿ¬´bN@"°3�ҸʄDÀ)`®âÌQ°ŒFä‹î‘~¬ÁØ_Ú“[‹°uM°7‰ՆȢ,šAe K1w©¤Úàe˜ ÁRÐçÇÿHüþ¬m˜ kC¨ðL@¨t¿ã™@-¡¶¨¦ü�ðê÷„¢JŸ�Þ/]p5ô yþ“ø#ÉxjY����IEND®B`‚IMAGE 377 ./arch/wall/cwall-west/westcwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf�� IDATxÚ•’ÁÃ0 BKlìÿÿãÕ8m5—QE;”ð@Ýõ »®É úý�b)ÏŸˆ‰G<ôz‡ +D;”ðh3¬‚Só½™!W‚pý¼ß:¼8N€w¯÷‡m¸ÔˆŒ¼ù4pGb)¼¤ îæÉR’™èû™ ðZ±+ôÑ"0ÌÍQ#²2@VÀPsö¥ò¡�:"Ø«At´¡¦9›tÊpG(‚G¥ #× àÎ&„62&d"@‡`p[aŽ÷Ï*ÂD#¬ I%°­ ´ óC€m…&è‚ZbWðàÕðÚ%Ù@òhÀó…Rƒú«ÒÙ°wú[?©¯ ÍuyÍ����IEND®B`‚IMAGE 376 ./arch/wall/cwall-west/westcwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf�� IDATxÚ•’YŽ1D» €ûßx v7¶œŸ©(‹ä—Zâ<-qj4 ð073¯÷ PÀЊÛ!. üx%°_€Ã˜Öç»dFL¢RÐÚG¨"ÚaÅ�÷+n àìÀ<¿;,ÀÁÒŒˆðØ´æ]¤R–¯ôˆrè�æŠCuuŸ(•È/ºGz8¬# R”ó¦=¹Jˆ/AE•­G¢ý#‘ Í„H#Œ§}*T…U=]Ò W ȵ1MPMl‹0è ȸٱB‰ïϺ't„‚¬£rÀ�φ\°üç-+jByµDëðÆWçõf;Ÿ�ÞŠ68ê_ˇžéÈ| R0êµ,����IEND®B`‚IMAGE 336 ./arch/wall/cwall-west/westcwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf���ãIDATxÚu’QŽ…0 qb'÷¿ñ*)ÛæÕý�‰aÜž-ØóŒ R!)ú:@ø’¿¾1Ä�`HàA¿€€X‹}?ž{U,â5Là3 �îŽügˆ q7ÀØ$Å;`gTôH$¾�é4¤*)12±°¦Ø³ ÌéD¿X‘bXoÁ©�(GæÐÍ7  8g *Ö†8‡4ºCÕ`e§Ô¤.Cž€SðË€ñ¥ © Ú07_ öž´ ¼ pˆ‘ ß ˆÈ.àÅ�iÃðn€Ô€ß £Ÿ†ñWrþ�É ߘŸ����IEND®B`‚IMAGE 189 ./arch/wall/cwall-west/westcwall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������`M ‡q;¦X½­…ëå���tRNS�@æØf���YIDATx^•Á €0 ;japýwAâÀŸ<£ÓÙɸgû¹g¦àðk±PFbât(Î"åOWDÝCA,¤p¸¾¥Ÿ’Dýu¹ïh4½�aÉ(ÑYC)����IEND®B`‚IMAGE 377 ./arch/wall/cwall-west/westcwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔ‰‹Ð‰���tRNS�@æØf��IDATxÚu’‹n1 Y?ÿÿëuÒ¸QÊâ²7cŸ+¸óy‚Hw¾¿À1Éÿ ¶#ˆ§�Aâ7‚W>åÆËúós®T¬F˜§0‡W檊ÂÖ]»fXº?[3Ïßv!`¥ˆŒA ‰Iéb†„™š ©w‹LdF`Üâ²-úAƽ £€H æ˜+émÈcP‘*ˆ;àÆœ†˜/ÉJà‘&Ä2…Bá4H…Ÿ-гØ"ÐtŒÂ¡\Á…¿¶P+'›Àø….ƒlñ×_]â¯-¸BTA7ádšIÁžáù¿’y noaì;¡ñ+Ó‡pµ(x?Ħ %²» ����IEND®B`‚IMAGE 379 ./arch/wall/cwall-west/westcwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔ‰‹Ð‰���tRNS�@æØf��IDATxÚu“ƒ0 çÄIþÿãÕiE©*¼‰M`î’¡ýv`ęߘ#+2"²?¯‚º *pÅW†V ·º+¨ûû=¤³Ñå*lB FÞK¸£6a鎦î%`+H]¿gX…;S‘•õž€Dá‰t¹‡é4T(ãȬBmŒÔgôÈ€9蕈aØ ˜õÎH€á¢·¡ƒ›n@P„ ¹$ç`MÈix>ŽÁšø½Z@'A†”c+®8 øc çpJ°ZAï­ði°EþØ"Sà“ ü±…VÈQðEx² ÍlÁšáþÏD<…à]˜�~&€æŸÅè_„$¸L ;ºÖ ¸����IEND®B`‚IMAGE 366 ./arch/wall/cwall-west/westcwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf��IDATxÚ“A’Ä Q°ìÿÿx#;P!ãÃ*P¹tµÌ?Á™ð “ô|£؉°'üÀ…ÀÊv€ƒ¦Ç|£Š"ÊÀ3s‚aö~Ä6d…} øaèg0£- "\K[–y*H×ÒV숭P\?• Í#0\—¢¥ÜÀÄ™ÁÝ‘Ó`zÈáç»z#ì½pÝÀõž`§ÀX !‘€ˆWn"ÌeÁªØ)°çŒ’$Àw1eÊ-² R°?Vr«@G˜ÕLFFtm”¼üŽïÿ¤Ž2IšÏubÕׄ @Ö@d `ÝPtdtöÀ‘ñïü3 ‹¼wã€����IEND®B`‚IMAGE 366 ./arch/wall/cwall-west/westcwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf��IDATxÚ•“Û’Â0 CQâËÿÿñFƉÒÔI™Ž’]ÃKÂ0|ª &"=Ü=êó&àòv `­¸€E$¶ü ¸ñ2@ªˆ7!—æ„¶/¹aÿ Äåp÷`¬›€ÌH ”"øjyxR±¿ž,rÝ-2·CzP ˜OÛ¤LƒÑ0’ &¶g™~¹>ó$ÆÆwš‚æï„¤ÑN�7Q ¶ðÔ®;  ¬g¤‰€à˜tªs 4 çǪM1™ÀR9t]SÀÁ ÚÿL u×eV] Ð_bÇw‡7àžUt°7”mpÕ?üøÐë'ýX Ù€����IEND®B`‚IMAGE 213 ./arch/wall/cwall-west/westcwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������¦X½­…ÕÈ©ìåÔÂÍ_Ô���tRNS�@æØf���qIDATxÚÝ‘Q À C³Uïåi(Âhý6ÆH'{kîÐÓÑñÖ Ìbõ=Ì¥AOOîÝä Ã27ª÷·1fl/YæŠÐOô4â‰NçÄÖÖ¼OaÍÿOax›ÂÁ¬tÀÀYé!ÌJÇÁï¾Bª°a¾áµê����IEND®B`‚IMAGE 386 ./arch/wall/cwall-west/westcwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔ‰‹Ð‰���tRNS�@æØf��IDATxÚ•SÛ²Ä ƒÊåÿÿøÈJ;íËIÇ]…4µ2ÐËô‰N ai¤‡»ÿ_„¥ê:È·Ö¸4^„b¤n`î_„P7<Æy‡´Ø *�⃵ÔGó‚0À„…¶»3î5´Ý»CþVCf$ ¥`Ķ@\öÖ:ؽA(â "³~­‚­€sаô ¤úDåM ‚O¬™š"C­(TäšaÁ#õ*Âu«`›Ÿ. `¾²&íàr pt°€ŠF2#m@ëc;0#ÇÀuµ ùé‚ç²Òñé7ÚŒ)*hG¸û f¨Ö](Áø«ÔÁù$~ö¬P‡àžLºôwBIëgiß„ä_ø[¦ VÈÛÉé����IEND®B`‚IMAGE 362 ./arch/wall/cwall-west/westcwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf���ýIDATxÚu‘AÃ0+ÁÿÜÊ”Oe2=x³‚ú³{>ÀƒNÒ×ï�ˆNœûgÀ�•ž�Má2` aI´9ÁËЀÕ# ÊÐv'¶ø2ƒíDxèU�‡eº"ÿZ*DË ðú<A%Hóˆ2] Ç<Ýfù阆õ¡BªaÒa?Dƒh߈Ô 70~À š€<ï-$°Å-ƒ{WnB cú®ÿK`$, Ñ@S+Xò¼·€TÁ2Ð[`ÌliÐù¶fÁLCPrØÜ MiñPAÎpÈކØ»AóÕ  ›'CS*x¾cœ è Éf=����IEND®B`‚IMAGE 365 ./arch/wall/cwall-west/westcwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf���IDATxÚu‘QŽ…0 ×IœÜÿÆ+“–ðT0ªøètÜÀßøÍÚÀ‘Å$™×û� &uÄŠ!�†ÂŽo@‚¡'pðŒ*š'îàm ö# ¶a*âI Ãy‡Æ¨ÊÒR€Dt¦¢?-• “ä>^ CQ)2²jŠ©TÂßþæö3áë B®†¹d"àÁ4oÕÔ U°€ 0ôþL!A\ÜeÈÜÀ]àªÁ.ÃüëUp ‚D´¡Ø„k„hCïÏ*hÃf ˜wƒµaíÏ ØÞ† ôY? MiðRÁ¾Ã |Zß ø§A±ð7ÃP*8 ÿ¹3 þ Ôa����IEND®B`‚IMAGE 386 ./arch/wall/cwall-west/westcwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf��IDATxÚu‘ƒ0C›–Àÿÿñ pZ¯.ž·Iã ÙÆKxk‚¤ççi�ˆGñm°Ö„LКà—ÁAÓeùý\\åH‚4øh-p#û’!BÇ Ûûwî`:ßvˆðÐ-“º…_óQ?-%š¯×EÁDP Ò®!¢A—±𖎆ø° ù¢¤ç<z–tØeÑ"ê«çatæe˜$@“~·ÀÒ—ïŽ;@ÿ„f¨E$ÀHX”àÝ¢ˆ¥ V8¹·€T@Tao¹*a6Aø½VÀ*éÝRUð€­&Ü)S½Ãx b¶A„ÓP�ûOH€VüK¦­p*78?_" .mô����IEND®B`‚IMAGE 389 ./arch/wall/cwall-west/westcwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿêI@1���tRNS�@æØf��IDATxÚu“ Ä CmÚÿÿã#­¨C.cܦñ¥Ü8Ât|UË·ÁÉ õû Žò%ÈàKñ0‘h陯A§èº›€[ŠhG¤Á#3ð"Zô}™!aÅ ¿÷ +îÁµÍ©[^êˆÈÈÑŸ–R�‰£€ÖGôqQ0‘”’ôÈD6!R _ikˆ¿ÌQ%½×Ö2à0× ê«÷ZÂèNL‡M Ë€ß-ðò!VÇ0•0‹@hC-V@œ„7A µ3v�aªàM€ð§EH,‚*Ü-0­æ"·�Á°&ß- u…H¸-ÂÖ(¡™ X3¼ÿr诡þŸP�ø— M·‹ðª&x?´¹ Dm€<$����IEND®B`‚IMAGE 202 ./arch/wall/cwall-west/westcwall_w_0.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEðÌò���bO"‰s=¢‹TÁ°‰,l>Ö���tRNS�@æØf���fIDATx^•Á €0 ;¤é"Þ�› `ÿ]x â> yFÖ“rOÌs)ÏȦnQ Kˆx%‚rŒ!·Ð,zÆ1b°X·è+÷lÇKkŒÊ°k¥é[<1Z†Ä÷סyÆDÓ Ïê'‚¿îÍ����IEND®B`‚IMAGE 214 ./arch/wall/cwall-west/westcwall_w_0.112 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEðÌò���bO"‰s=¢‹TÁ°‰,l>Ö���tRNS�@æØf���rIDATx^•Á €0 3MËLà j‹ €ýWAâmxüŒNç$vÅI–m²;rV3ÈD Dt„SÑàPlahù² 'Sê°ì QTëZíIâR·¶¶.#ÓSß"ùø–@ä1þ:ôßñcÓʾ&ˆE<áU����IEND®B`‚IMAGE 220 ./arch/wall/cwall-west/westcwall_w_0.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEðÌò���bO"‰s=¢‹TÁ°‰,l>Ö���tRNS�@æØf���xIDATx^•Á Ã0 5BM;t‚Y dŠî¿J>[y´æS8%Å'Ôž·ø”wƒ*&Ââ@@Î&‡s‹RË?{ˆÉáä€TÊ@pq¦yo¯ˆ¢ûÒuÝЪ086Ú1uË•`"ê…øýuzÞ1±éù%Ö8¥å����IEND®B`‚IMAGE 233 ./arch/wall/cwall-west/westcwall_w_0.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEðÌò���4)bO"‰s=¢‹TÁ°‰‰â`���tRNS�@æØf���‚IDATx^•Á 1 ]Žs÷G¢prÑ. Ò H<"Ç<ûÖ›È'`;/2bì  Â“Aød˜;<u0_Á¸òûxê T#°ÖúK¢áû3²QQŽkv܉©(3°Ær�€2íÀòµžŒúe¬ÝùÇ0ÖKßu,µd~����IEND®B`‚IMAGE 233 ./arch/wall/cwall-west/westcwall_w_0.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEðÌò���4)bO"‰s=¢‹TÁ°‰‰â`���tRNS�@æØf���‚IDATx^•Á 1 ]Žs÷G¢prÑ. Ò H<"Ç<ûÖ›È'`;/2bì  Â“Aød˜;<u0_Á¸òûxê T#°ÖúK¢áû3²QQŽkv܉©(3°Ær�€2íÀòµžŒúe¬ÝùÇ0ÖKßu,µd~����IEND®B`‚IMAGE 248 ./arch/wall/cwall-west/westcwall_w_0.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEðÌò���4)bO"‰s=¢‹TÁ°‰ÿÿÿOžÛ���tRNS�@æØf���ŽIDATxÚµSÛ Å03ÕøÿŸ|܆ìa¤Â³Ð—¤1^jwÀy0öŒ"ÄEH BÐc¯Àƒ"ÚC bð<t¡b×0¦ú@W8®«p6þLù¾= ™€€ ë€ÉÀÚã„Cì2é68$Žó* @:èYÀ›ójXÃVǸÿouås£Â‹ñ‰å*p2����IEND®B`‚IMAGE 251 ./arch/wall/cwall-west/westcwall_w_0.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEðÌò���4)bO"‰s=¢‹TÁ°‰ÿÿÿOžÛ���tRNS�@æØf���‘IDATxÚ¥’AÃ@ Mmüÿ'gÅ¡½,¶”’#&Šã'$õ€]ˆ‹¥�š&PÌš¨ˆmC- µ0” üDÝDø�Ø}|Çö}1°M¿&@¶�Íàû©€Ð>”oôèLBcF8 x[-ÞõýÌàÆ!ùŸ5dй$†ƒùÿªk¹j1P ïÖÎ 7†‹qÞ(y����IEND®B`‚IMAGE 260 ./arch/wall/cwall-west/westcwall_w_0.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEðÌò���4)bO"‰s=¢‹TÁ°‰ÿÿÿOžÛ���tRNS�@æØf���šIDATxÚ•SÑ! ’QúÿŸ<Ã-·—£nhªI)bÒ®/@yA]X�ë"´¡ÄšdJV LÁFôP$º…<”ôΧ'àúG‚.B3ÕÛíŸ<@1½‡x©…T®Ñœê,0Q6Ö�Ýgæ´|ËYœ`ô@+Ìßd›ÖœPn9ãÿ®Ægpjš‹Òa²øÃd4+<yx‹™¹_‘š����IEND®B`‚IMAGE 258 ./arch/wall/cwall-west/westcwall_w_0.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEðÌò���bO"‰s=¢‹TÁ°‰ÿÿÿs:€ ���tRNS�@æØf���›IDATxÚ“A €0 ;Éæÿ_¶Ä‚Ý`gº Ò¬§õ…*YEä-”ŒŠœÔ €B›«Är=4ÍM)JÕÜl1pÝBs›Tirâì[xÞy z£þHŒ,$±&š:GÉ'ôcÆê7OY¾tÌ¡Ä{5ç÷ hyüQ1õAD´óMÏ¡=§Þ Î8Y"~L–Iø=Ý_=\¨`œ#Ž"µ����IEND®B`‚IMAGE 276 ./arch/wall/cwall-west/westcwall_w_0.11A ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEðÌò���A3bO"lX(‰s=¢‹TÁ°‰ÿÿÿj­P¬���tRNS�@æØf���§IDATxÚ…SQ…0 ’ÕÂýoüÔ¾¤ÒÉû²Å£às@%D–à‚$o –ÄÁÉX§(ËW‡uRÅû )Š·ío#yÈÅîo#Ðû}–}:賃þ të¼¾> E�|‚3ô!EÑÐìÅ1ÝƥئƔ­Má½"¶-{L@&|üG)vÏM2ˆ‚SÁÈý¿Éä-GAðÃ!Þ?™y¸®K6����IEND®B`‚IMAGE 237 ./arch/wall/cwall-west/westcwall_w_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEðÌò���i5¢‹TÁ°‰ÔƦñëÝ�:1���tRNS�@æØf���†IDATxÚÝQ[Ã0 b1Éý¼Œ¡¡fѲïRŒmYõCÁ=ð8�<�¬ßužw]«Ê@²‹ühIm¸þ_‰]@|qb°Iû[]À×€æØ¤_º›¤ß´jŠŠÊ%º"&mž*Ár|m¯ÈòÜ_‘öâæŠÌq‡4.¯Þ¦Ï´å-œÅýñÜ·ÀÅà gn–*B����IEND®B`‚IMAGE 292 ./arch/wall/cwall-west/westcwall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEðÌò��� ' 4)A3i5¢‹TÁ°‰ÔƦñëÝÿÿÿ±Í_Ï���tRNS�@æØf���«IDATxÚÝOíà ‹›Ã ïÿ¾ʤöz·ÿM#òqMÏÀë=QëÇ @&¼ªÕFÐ3Ýåù÷¶Šå:W”3„– Ý9l*äàˆ¦{dw ÉÞ<ƒõ¿E’+úPãÄÐÖÉ_Þc€Í@7'R/‚°ôì°yÆpµ€¥—NÍÅ·-Rþ~‹‰o·HyãÝéU^HaÆÓÛ¼Ó ᨲ‰òx¾ÐG+Ü–§o����IEND®B`‚IMAGE 289 ./arch/wall/cwall-west/westcwall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEðÌò��� A3lX(i5¢‹TÁ°‰ÔƦñëÝÿÿÿlˆ à���tRNS�@æØf���«IDATxÚÝOQƒ0ƒ­6…ûx4<mþöoL"P bïÀÇF<é·`Kà}­Ù‚<¾Ï×¥5ƒfü�—ÖÌÃë®°,™�†—,¶öOÙÁÀˆÙqËžûåìœûE‹\›…\3€\ÀŽ©¢É€ ÈþIQ¢¼I3ö¾…É=•Æ-Žè³›ëù8N*[n—T¶ö’ê:‡ÙyÙi z䔽…6îLŠæ`¯ÀÕr(Ñ;Ò±����IEND®B`‚IMAGE 296 ./arch/wall/cwall-west/westcwall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEðÌò���A3VElX(i5‰s=¢‹TÁ°‰ÔƦñëÝÿÿÿߟž£���tRNS�@æØf���¯IDATxÚÝOу k‡«þÿg4gëw{ÞbŠ4ií?àK­¸î«f÷ÓôAÛ‘ª•½ï¢ÙË+Î{<”y`œœg�6Hd±ÉAp4tŠ*ÓÿÄ 7ZþOÚ˜<0{xÚµg‘–ƒ[ Õ¤ `È\M^~*¸ƒR¹Øí—I¡Ôœ‚Њ<–)䦯S¤=¹š"stÊ—¥1Ôz”�M‘Æ:Ñü ì ØOâÆ^gßÀX����IEND®B`‚IMAGE 328 ./arch/wall/cwall-west/westcwall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEðÌò��� ' 4)A3K<VE¢‹TÁ°‰ÔƦñëÝÿÿÿ̳¨ ���tRNS�@æØf���ÌIDATxÚÝOAÃ0c[GêÐÿ¿wAhSo;Ì…Tù<_ͽR¶mÞ’y‚f_gC&Ö§k�]f£^èšÐ@8P¢úpâ.hCÂ"Žz`Lb¤›4"û2àÅL©ûDì@ÝgˆÓƒÀ9 ^Ɇ,؄-å4™éþ™¥&Íߪ„bCÚ0J‰Tí-J&.cÑÞ‚ˆ NÒÞ‚X'\+èe‹ÖA²úÕ +ë8 ä­P¬‹ò¸\+ýÖU¹™û1>í�WÈþÒ����IEND®B`‚IMAGE 330 ./arch/wall/cwall-west/westcwall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEðÌò��� ' 4)A3K<lX(¢‹TÁ°‰ÔƦñëÝÿÿÿº§���tRNS�@æØf���ÎIDATxÚÝOA’Ã0£[ʼnpÿÿÞŒ³3;½õPÅ8A„ä;ðó4�Çìôá„—Dö,V”õÜ+ëë>a±â ÀÇØLj-ð”—aÆ!ºAጇ/9ãlK€p&BòÇÙ ÆdAæKýxö�c² % œÄ²0—r-ª±äôYˆ:ÈÈãJ4�ƒSµ]”Œ^¼.¨fÚ. q“ê'ÓvQÓh7'í­]´3ËW¹ˆ‘µ:7rÑ:™5)7;xOÿ«yÓ÷aüƒŽ’:ÂU‚����IEND®B`‚IMAGE 338 ./arch/wall/cwall-west/westcwall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTEðÌò��� ' 4)A3K<bO"u`/¢‹TÁ°‰ÔƦñëÝÿÿÿYb§á���tRNS�@æØf���ÓIDATxÚÝPтà ãfÅ-èÿÿîÒ‘Ö{¸·=,‚-„¨}n…8ŽRv¢2IXeçkæ-§îÊB§lÊÛ9ÀQkõkƒ92ÅÑLjð•o žÄ9d§mO"Œe/ÑÖÖGœF´…‡w&"+4À¯r™Þfÿ`¬!ûÙëåˆæù=œ±ˆÜBŽ{#.Õe É�÷®pÙBÝ(’ÿ /[ºÁ ×-¦2šImAëÐè«À{‹©£h&íç˜ù�}³kÎåá³îÃxIÒ8ì¬^����IEND®B`‚IMAGE 323 ./arch/wall/cwall-west/westcwall_w_1.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTEðÌò��� ' 4)A3i5¢‹TÁ°‰ÔƦñëÝÿÿÿ±Í_Ï���tRNS�@æØf���ÊIDATxÚÝÁ!Di­þÿÿ‘ÆjMz롳`,Žòº®r@èH4ÄÃÀD”ñá0D'Ë™«”àrÉ&o:)Ò\æó _Òz`ã :Pñ±ˆ¶N8@¬ikØ$±À,š /éiXX1´aq  ÂÅȹäÁÚëéb{‹tðæ"ÿ¦D¾@”Ó…kœ¬�jE”‹‹±‡j¤Ò<f3]x˜·9޹àåbîÉj6åöE’Òð/åSŒ¡È] aäõÔ÷Ç(}ç����IEND®B`‚IMAGE 332 ./arch/wall/cwall-west/westcwall_w_1.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEðÌò ' 4)A3šƒL¢‹TÁ°‰ÔƦñëÝÿÿÿoø<���tRNS�@æØf���ÖIDATxÚÝ‘ÁŽÄ CSÃÿð:ÔC3ÍuÝR©}&ƪü]-T³$ ¬×%¯^ó`ÜLKC8˜Ó{W­¸õÖ›LÊgmPÌ)�( ÈCÆ~s-Løç°Q “ĆQ Ø:¤Yep¦3Â}äˆ_-ÞÅͧ…ñ®H°[Pœ`‰h´Õ‘à´@føTxZð¦aá÷Ì€Ó"‹(éšÜ@œ™£&#-O�%×ÕöW´¨6¾ñÉ%[XÔ"cG½eiÊUè!–ë›Æç„_õH– ËÝ?{����IEND®B`‚IMAGE 217 ./arch/connect/westcwallsec.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¦X½­…ÕÈ©ìåÔ���®\tO���tRNS�@æØf���uIDATxÚÝ1! I ÿÿò‰¶âõ;– |ƒ9D}@ Ñå— U8z%C¿o¨hAu2´d:²lðÿG€@5•ˆX`ƒ%-r€’�ýš`í9AÜ+æÆž ¯ìº¢ëúÜ@IȺ ¼bî” ˜?àü� ‚¼¡8øE����IEND®B`‚IMAGE 226 ./arch/connect/westcwallsec.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��½­…ÕÈ©ìåÔ���¦Xí41¬���tRNS�@æØf���~IDATxÚÝŽA Ä0 5Rüÿ/oÓÀJœÞ;† !Yß`,ZY,Ô€¨9¡JK¯ÎÀù†ª¡\8t¸;²¦!q‘ƒÓXú�fE‰llq1vÌ€UÁž»À‘Cí§p°èuð¬`ì)â$™<·Ã|¶¸ñcûÿÕxAŸàÐME����IEND®B`‚IMAGE 232 ./arch/connect/westcwallsec.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��½­…ÕÈ©ìåÔ���¦Xí41¬���tRNS�@æØf���„IDATxÚÝKÄ Cý!÷¿òÔd…D:û¾(’MŒÀ7XÍ(ƒ Vj2T¡õš |CÕ‚dN‚¤¦GV ¹ÿ²À)Ï „1 †H~àºQI0$ñNHØÇ{;bÖm2×¢ÌDÈáœéþB˜³{Áá¾w€„ ™çÜjïÃú>Á”©^Ö`<$����IEND®B`‚IMAGE 235 ./arch/connect/westcwallsec.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��½­…ÕÈ©ìåÔ���¦Xí41¬���tRNS�@æØf���‡IDATxÚÝQÀ Bi+÷¿ò`.Yb¬ûßSñ£X*þÁ˜´eÄ  Wg Áéè qž(‘!<dvCÒ¿?4(¨½öØá t”n—‘Ù×#!Ɔ@yH³¨NX û&õQÍÍûš.È$VunÜNœü‹·§õÙâñc|€_pUª¤ æzb����IEND®B`‚IMAGE 237 ./arch/connect/westcwallsec.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��½­…ÕÈ©ìåÔ���¦Xí41¬���tRNS�@æØf���‰IDATxÚÝA!C[„û_ùW›‰ùF2ûy.ŠmÄ7HÓÊ AÁZ§Ñ«`½º"Mg"»‚d¨óFÍ…ù~ðŽôÙ«ê~ŠÐëT„`ÞQ‚""”19¦šŒ�âoºÁæý¿çT»Ðxbp{®é\h¿í/œž®ˆ|ŸàM×àg6V����IEND®B`‚IMAGE 242 ./arch/connect/westcwallsec.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��½­…ÕÈ©ìåÔ���¦Xí41¬���tRNS�@æØf���ŽIDATxÚÝÑÅ CK+ÿÿË×u,ÆDvßw@ÖDVß`ܴ׈4"8“‰ G×odhBÅ™ÌÀüð’§pƒD©¿¨˜Ùí„P{­Õ¼dîÕGÉhþW ÷O´U;ã}�ýŠåéZ){xDy–{%ËZž¥øhû`¶嗠Êãø?ò7’Q����IEND®B`‚IMAGE 246 ./arch/connect/westcwallsec.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��½­…ÕÈ©ìåÔ���¦Xí41¬���tRNS�@æØf���’IDATxÚÝÛÃ0Cí�ÿÿËs±¶)Qß{¸DQŒ[ðÒŸAƒ«#÷T¡èØSDÖ>!VœÞ‹ ¹T¹G‚k>¨£Û9 ¦lÖì.ôq˜’Á%fï MB×ó¤ÅíÙÝ)( Ã~·»SΗ+†§ºS´s…ÿ-¬Æüù±EË0V»X Nãßí+F>€Wð'‚?.–”����IEND®B`‚IMAGE 226 ./arch/connect/westcwallsec.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��¦X½­…ÕÈ©ìåÔ���®\tO���tRNS�@æØf���~IDATxÚÝQÑ€ [›ýÿ/—Ž‹#»ì¹‰ N‡œøöÀÀí}`Ásý†vBjÅ›�I1 â=1Žòé¾ yJš¼ ¼p WPªÛ‚€$Z/Õm&ú©n30µ]°Ü?wQ[ÈE4Vá+G�«pd¹‰*Y†ßý ¡§t>����IEND®B`‚IMAGE 225 ./arch/wall/cwall-west/westcwindow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��@@@`M aaa‡q;¦X½­…���ëü}Z���tRNS�@æØf���tIDATxÚÕÓ1Q Ññ:sÿ#AA³85I=M“ó”÷’1çf?“Ž,šGAQ 7jƒ™Þ –¢Þ€Nm`tª�çjó¸ªÀü‰ðܲ¤ hÐ"dppä& ¸ ÑÒõÅ]Ø¿û®áÚ„ 6M³ýà����IEND®B`‚IMAGE 243 ./arch/wall/cwall-west/westcwindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE ��¦X¡¡¡½­…¿¿¿ÕÈ©ìåÔ���P¤H`���tRNS�@æØf���†IDATxÚÝ‘Q€ C+ŽÚûŸXF† HÜ¿oƒDò˜â(–�+ß…$·üWƒÞβûòK²·-{,<絡àeÞ¤*æRQ 0»ÜØaXòª"@vÃ.ïìÛ`êŒè‚1yš« ¼[J.x¦½AL¡ ãû½ÿE<—P~Á E E42����IEND®B`‚IMAGE 265 ./arch/wall/cwall-west/westguard_ho_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔ‰‹Ð‰���tRNS�@æØf���ŸIDATx^½Ž1à Eÿ위Þ�¢�)fÏ<wH|ý* ¥{Ÿÿÿ& Ø&pŸøÝ0Óˬ½Ë I‰M8U yC¦ÐtæÜ§ õ‡¼KRFm÷[%ºË5)wãÌ¥’¸µbÐZÉ{pͨáuªðØÐR‰‡Q*ÑCDìÙ5ƒ�ÓÚ w À|û6x™&#|O½jœéþ0¬����IEND®B`‚IMAGE 317 ./arch/wall/cwall-west/westguard_ho_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTEÿÿÿ���`M ‡q;¦X½­…ÕÈ©ìåÔƒÞ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÛ ,cû¯[���‘IDAT(ÏÝ‘± 1 EolQs#Ü>1À œþ œ:ñú$JìHŒÀׯ¢ÿ/{SØ/K×g0�x ¡¡¿&àw¾1MÚ\|FŠR-ÅgDæj>É-Ú|’ò’Ð ~kàˆN¨æõ¦™6#Dð%ï4/ÀŒ4Sz­m¦´ZõÇLéµÈ‰~irâ á‰\pá²[¤����IEND®B`‚IMAGE 300 ./arch/wall/cwall-west/westguard_ho_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE���ÕÈ©ìåÔþ�����`M ‡q;¦X½­…ÕÈ©ìåÔÿÿÿ+¡>Ñ���tRNS����³“fš���³IDATxÚÝ‘Aƒ0D§u àý\ƒ(ľš}'EòÀ ‹«¬{R¥,6Âå@s@*1�M8qè@{pXIidûÕ'‚N•ç™ó¶]æ±ÝwÏÞ¤yèmÄ÷÷Æ]vÃ6ía; 8 ùóŽ ¸k$ hÒ½#Gà8D6Ìׂ Ô)ÜïÈ)|„0H N%@µNáA$pÆ^§סå[ ”OU ¡Q¸a6KDa����IEND®B`‚IMAGE 301 ./arch/wall/cwall-west/westguard_ho_8.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������`M ‡q;¦X½­…ÕÈ©ìåÔ‰‹Ð‰���tRNS�@æØf���ÃIDATx^]‘у DM ž|*€rL Èì@ý·Ð~@½QØÏçîzt»õ#†#B!ë0$¹†ðäÐ÷ß,Îð™Àwg8ªé©!ÈŠ&Cˆš°º&äË4„0M†°5ºic›¨&�.‚/ÂÄ)Yߣ{”‹©˜Ötý8lë´pD!pžB`£*Å9¢ÃÃÆ†+;>çûÕÕO«È³|iÏeãY{ @àOÈ-+g-yÙýõ1äe—Šþ|íGç{Bñ����IEND®B`‚IMAGE 1294 ./arch/misc/wheelbarrow.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÚ8-aÏÞõ��ŽIDATXÃí–kˆ”UÇç}ß™wfgfï»îè®.^XÒ•V·EM¢0DK"%TÌðƒeÑåCA õ%#£¢Q–æeËdÕUÑ$o ®"{›½¸;{™Ùyçò^Ov?„(®H°ÿ/çpxžÃï<çÏsLjR“šÔC–¸ŸàOߨ1/I¼l:fe8OŸ¦)ž#}>)pŒ¬iøtÕ-É“"•Q‹« **‹‚Ïü¹Ôïÿ¥`ÖÁ8ñáû Z»¼³ž¦êŽOe8Eº~ÅE"±U U¸ªJj4ÅâhBÝ$/¨ãzÂÖ¤vDj¾oòfÎH\iŽ­Øù]ë}Y¿l区úß:e…z©=Ž ŒQPL×Á „‚9›TΡ~Š‚:ÒkšŸ‰‚_ó‘F£§¿Ÿ€c|±íàñ7Õ‰¼¶pNÙÞC'Öw ´ë«—Ö HÚ´0¥‹¥ûð‚¸>OÕð4úš(™d×uHçLð$Šæ<¢ee•E¢ §î в÷ËÊ’¡þí?ž¾ôÕÅžxðxG/]Mgxn^”êºZZcq ÛeԴȦ O! R';.9Ë%ÉG½##ܺ5ÈáóØ×t’dg{Rlûà£â„Yœµü³kgÍÏþÂRϧÎP_WË”c¿7>}£»WS}ŽôHª‚œm2?cñLU 7n$´dƒ9ФMP÷‘I$É÷põFšÛÚèNK&µ¦i*³JŠ© „hëîü^¬\µtY[{òÉž¾XYAP¯ÉÊGt×ZÛ>/÷�°wl.#~-óú‚¨6–úß—{i˜VCky9[Ö½È #ã͜9’ÞÄ ³TA·"H[.�ÅÀ P�MŸÝÕ„kTjc.…ºBZ• åA²F#ó¹}u}Ã’.÷žylÑÎušìn:Ka ÀÜH>§âxãîª 9ÏÓP ½ˆ†AT>À iÏjwØïÒã%×Q{lôK­øš 0Û«àpÓOèBÏå8Ë!Çcó�¿çÝDQFT׫3`¾{=!Žª¦mHt÷TÖU©êýv®ö];BVáÔMýi–j> T²¦‰ H �„gó5mU‘G3ž\W 1 –×LŸZ?Z4ä:Ïÿw»'Üö½ýîü_pklxð…k7®å]¼xË0P!;iJcã Âþ2XÛ1ftX]�ß–*"ßVµ~ö7÷Áá{6¢W_y«úJ·±*Ùw}SÉðÀ£©¾. ÇV‹UÓõþT_ É¡"¿’Møô¹m®³+k{ËM×}Ï€ÿÞK»•J:$X÷<ñÇÛ·®©š^uK÷ÞP�Ñ Pjü¾àKåE»UxâöœOV<õø²ŠRY ›'ZÙ»šðÒ‘ ŒþƘee�rÀ_‰eg+Ò©=úoÏ)°Óa¤‡€Øì;wÝœ;>LiçæÖóeº0mÂO@ù/ßvÏ´+F,‡ ñ0�2áH~JJò!ñP�:†[’–½gv}­1ù×›ÔÿFÿ�WýB:yš3����IEND®B`‚IMAGE 630 ./arch/monster/angel/whim.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE���ûûïýú ýú ýú ÐÐÇýú øøïùøŒýú ýú ýú ýú ééàýú øøïûûïûûïøøïýú ùøŒùø…ýú øøïööíøøïøøïùøŒøøïàà×øøïøøïøøïððçøøïøøïøøïøøïïïæøøïøøïøøïøøïøøïøøïøøïøøïññèøøïÕÕÌÐÐÇÑÑÈÔÔËÚÚÑßßÖääÛççÞððçöôv÷ö¡ø÷!ø÷_øøïùø`ùøŒùøŽúøûúHûúKûú]ûúkûúpûú{ûú’ûú›ûú ûú¤üù üù$üú üú üúüú)üú,üú?üúFüúNüúPüúRüúVüú]üúhüúuýú ýûXÿýZü‰\���2tRNS� *22;@BCFdprw”˜ ¡£²ºÍÐÔÕÝßåççêëîñòóõ÷øùúûüýþp���ÓIDATíÁÕRÃP�EÑ/îR(¡ARä4PÜÝ/üÿ_ÐL’Ò0Ã3°üû-Ý]ü¨¾Í\ø;¾oz(±H˜NQûbLMc:¡o‰J^®Ÿ›7ª ]]2æ.óeÕõÆ9> fŠ8kî±tn]âäØý“ʯÔQ^š·šžîL`÷Ü<¼‚äµ²l)+hÞ;Ú¿þx~ߺm¥A"r$QÒÂãöÆæ) )K$=+É"TÕÞA #-ë•›¤i˜2)c‘$ÍÙ”ÙS3|'*i”?íz!! ]q!����IEND®B`‚IMAGE 626 ./arch/monster/angel/whim.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE���ûûïýú ýú ýú ÐÐÇùøŒýú øøïøøïýú ýú ýú ýú øøïøøïýú ûûïûûïøøïøøïøøïððçùøŒýú øøïùø…øøïýú øøïøøïÞÞÕøøïøøïøøïøøïøøïÜÜÓøøïøøïøøïÚÚÑøøïøøïÙÙÐßßÖøøïééàøøïÓÓÊÔÔËÛÛÒøøïÑÑÈÓÓÊÙÙÐðî0ôò^ôò~÷õ2÷ö‰øøïùøŒùøŽùø’ûùRûúHûúKûú]ûúkûúpûú{ûú’ûú™ûú›ûú¤üú üú üúüú)üú,üú?üúFüúNüúPüúRüú]üúhüúuýú ýú ýûZþüPþünLà ¬���5tRNS� *,2;@BCFUdrw€…ŒŒ”˜ ¡¡ËÍÎÕØèëìððóõøùúûüüýýþþþþa2T2���ÒIDATíÁW?ÃP�Æá¿-6GQ” ”(b{í½7Çøþ_Cä4®\ú¹êó@Õ_òøEGŽLçüÄ(ƒý¤ÌìÂtN°¼²(¦.kÏv¶wí0άÎ-õáH“‘Lý³µu€µv�¸$åq$•}sóJ-ÎÕ%¹©RY>ŽË7§Gdì>ä%pŠJp~Læþ¼XqÇH h}º³ß>Þìà Å28Þx¤!h;89¼þÜ{ß¼m!¡(4T˜üX3‰v×Ö7¶HñcÄ#SÓÝCª—ªõ¯5 ;ñ/@����IEND®B`‚IMAGE 643 ./arch/monster/angel/whim.121 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��)PLTE���ûûïýú ýýåýýåýú ýú ýú ýýåýú ýýåýýåýú ýú ýú ýú ýýåÊÊ·ýýåýú ûûïûûïÙÙÅýýåýýå³³¢ýýåýýåýûdýýåýýåýû—ýýåýýåýýåÃðÍ͹ýýåýýåýýåëëÔµµ¤ëëÕýý嫫𶶤ëëÕýýåýýåýýåúúçýýåôôÝýýåýú §§—ùùéüüåûú!ûúHûúKûú]ûúkûúpûú{ûú…¨¨˜ªª™ýúg¬¬›ûú¤ûú¥ûú¶ûúºûú½ûúÅüú üúûúœûúûúžûú’ûú›üú)üú,üú?üúFüúLüúNüúRüú]üúhüúuüû‰··¦Ñѽûú ýú‡ûú£cÉ�6���5tRNS� *,2;@BCPUZdrwz‰•˜µ¾ÅËËÍÏâååëìðñöøøùùúûüýýþþéh'Å���ÔIDATÕÁ×6CA€ÑOeÑk½ÇñÏI”è5zïíý‚…\efrg-{â(Cât%nJkÙêÆ-\n*Ái\² áÜ$NcÙi=ØUS& kùVƒU�u­Ælœìn÷QJ ù`L5`Ìû�6—O$øñ|„Åyž"³ŒÅÅE7»X4Þ_›_wؤVÖW÷ KW TÍÆÃ”jâöãìà h–×ͬ*ÚÚù’‘Å<Z$z™ÀCI$‚‡’PFñè-xh™ð’¡~¼ÊPü•O*«mε¡I����IEND®B`‚IMAGE 693 ./arch/monster/angel/whim.122 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��MPLTE���ûûïýú ýú ýú ýú §§—ýýåýú §§—ýýåýýåýú ýú ýú ýú ýýåýú ××ÃûûïûûïýýåýýåààËýýåýýåýýåýýåÏÏ»ýû€ýýåòòÛ»»ªýýåýû©ýýåýýåýýåùùèýýåýýåüüåýýåýýåùùèùùèýý嬬›ýýåýýåüüåÇÇ´ùùèýý媪šúúã©©™ÏÏ»ýýåýýåúúæüüåýýå§§—¨¨˜±± ÕÕÀÚÚÅååÏùùçùùéûú!ûúHûúKûú]ûúkûúpûú{ûú~ûú„ûú‘ûú’ûú“ûú›ûúûúžûú ûú¤ûú³ûú¾ûúÊûúËûûåüú üúüú)üú,üú?üúFüúNüúPüúRüú]üúhüúuüû®ýú ýúVýú™ýûrýýåÌu¦���?tRNS� *227;@BCSdfrwŒ˜ªµ¼¿ÂÉÍÓÕÕÖÖרÝÝÞßßàèëëïðó÷ùúúûûüüüýþþþ†TÜ���ØIDATåÁµVÅP�EÁ.Á‚»»Ëû»ÛÎÿ—ðš¬äÒÐ1ÿIa¥ë8XøÒâ(ñ\µöt —§3–½‰jâ(˜ži¨¨s€ "¸ƒÃA·È*2fgÿð賆0—"ýÙ˜4À¼4RÛÕ7¯¤òí튲LØÛ ɬá`“¤û"ä=Ý™/DÉ_ÛZ¿ÞÞ½X¹Í¥¸ž(<žžCÎØ|1RJJ¡I ³Ø´hi.›xn»$,¼6IXx#JLaáKªÂ¦7!lüIa×Ì/\þÎWÆ'¾·„§v����IEND®B`‚IMAGE 615 ./arch/monster/angel/whim.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE���ýú ÐÐÇýú ýú ýú ÐÐÇÿÿøÐÐÇÐÐÇÿÿøýú ûø ÐÐÇýú ÿÿøýú ýú þþ÷ûûïûûïÐÐÇÿÿøÿÿøððéýú ññêýú ú÷ ÐÐÇÕÕÌÿÿøááÙÿÿøùùòÿÿøÿÿøññêÿÿøêêâßß×ÿÿøÿÿøÿÿøÿÿøõõîÿÿøÙÙÐëëäóóëÿÿøÐÐÇÑÑÈÓÓÊÔÔËççßíë;îìAïíOïîOñðqòð*ôò)õô–õõîöó)øöùö ù÷.ú÷ ûø ûùTûú!ûúKûú]ûú{ûú™ûúŸûú ûú©ûú¯ûûºûûÁûûÄüúüú,üú?üúNüúPüúRüúhüûŒüü¦ýú ÿÿøozçÙ���3tRNS� ,22;?@@@BChrw€‘”𡣬®¿ËÍÔßæççìñòõ÷úýýþþþþE¼ñ���ÆIDAT½ÁÕBQ†ÑÏ[ì@Q±ÄNì>ÿû?†ÊÕÌÙ—¬u–NcœŸnŤõ,a¤í,†pEåÍåÊ[–"-¶a‘F±dhÁ¯c̹ÛjõÎ’¨ùâì¼ pÎ “äè„þü|ÄŸRóøwX¡æá)$®ëóÍý{ÿ"I÷ÕÍõËþÎÁåk;=|ìí–î±½}ýXò«!©8„ߤ"'ð›Y– ãøIy­¥ð›Rn£€eVs˜2Ôß/‹ØxÌ)b����IEND®B`‚IMAGE 582 ./arch/monster/angel/whim.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE���ûûïýú ýú ýú ýú ÿÿøýú ÐÐÇÿÿøýú ýú ýú ýú ÿÿøääÜýú ÿÿøÿÿøûûïûûïÿÿøýú ÿÿøììäýú ÿÿøÿÿøÿÿøÿÿøÿÿøññéååÜÿÿøÔÔËÿÿøÿÿøÿÿøÿÿøÿÿøççßÿÿøããÚýýöÿÿøóóëÿÿøÑÑÈÓÓÊÙÙÐÛÛÓááÙããÛóóëõõîûú!ûúHûúKûú]ûúkûúpûú{ûú’ûú™ûú›ûúŸûú ûú¤ûú©ûú¸ûúÃûúÆûúËûúÌüú üú üúüú)üú,üú?üúFüúNüúPüúRüú]üúhüúuýú ÿÿøÔHA“���/tRNS� *22;@BCUZdegrw”˜ ¡´¿ÅÌÎÞææòóö÷øùûûýýýþþÈ2èË���»IDATÕÁÕB‚AFÑm;6*b#và¯ØØ}¾÷/”»9s­kÁ¿H›,i¼—„žLªLá ™Ê[›øTšÕÊ2 ÂÌ"I-øÚúÌN«Õs!ªùì 0³!b¿häÇý'‡ÔÙgGÔ½\Ñùþl¿^?‰éÚ?>x¸®ÕvŸ:ptóvsu{ARÃÀ I¹QákíÏÍk{—4§¥Õ"®¼Ê™Ö§qIkí¸‚²J a¬0‘ç¯ù´î<´BP'����IEND®B`‚IMAGE 670 ./arch/monster/angel/whim.141 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��2PLTE���ûûïýú ùùéýú ýú ýú ùùéýú ùùéùùéýú ýú ýú ýú ùùéýú ùùéûûïûûïùùéööæýú ùùéýú ùùéùùéùùéùùéùùéùùéùùéùùéùùéùùéùùéùùéùùé××ÉççØùùéííÝùùéùùéùùéëëÜùùéùùéùùéùùé××ÊÃ÷ììÜùùéùùéùùéùùéùùéùùéÌÌ¿ììÝùù麺®¼¼°Ã÷ÅŸééÚîîÞùùéûú!ûúHûúKûú]ûúkûúpûú{ûú’ûú™ûú›ûúŸûú ûú¤ûú©ûú¸ûúÃûúÆûúËûúÌüú üú üúüú)üú,üú?üúFüúNüúPüúRüú]üúhüúuýú «\FY���>tRNS� *,2;@BCSdgrwŽ”•¡¬²µ¼ÆÌÍÐÒÕÖÞßàáâççèëíïðñòôõõõ÷øùúüýþþ°j¢;���ÝIDATÕÁç6Q�…Ѩ£wщ.Ä`B‚ŽÞ£Dï÷ý_ÁR²V&‘û›½á_kÅ®_ØMlô`µ˜Ža•Xrló‘a~QÅ—ê^MN ¿šfcŽ2™Ó -‘è\,ì¯òÕ˜ ÀÓ H^Ø!ßÝ;å|»¹­Ä…Ïá9fèR;>Çûä<žƒOý˃ùñôFÚ�аs°{{‘ÍnÝ×Qhdu|vªƒFž/ϯN)L%“éM>•µ¶QlFZ[XRÒäJc”R\ò°p½¸¢Ø JËXõi�;ñG}�¸5#Ò!Æ0 ����IEND®B`‚IMAGE 684 ./arch/monster/angel/whim.142 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��DPLTE���õõæùùéûûïùùéýú ùùéùùéýú ÛÛÏýú ùùéýú ºº®ùùéûûôýú ÛÛϺº®ùùéûûôÛÛÍýú ýú ýú ýú ùùéààÔýú ûûôûûïûûïùù麺®ùùéùùéýú ïïæýú ûûôúúðûûôúúóØØÊûûôúúóúúóûûôùùéúúóùùìûûô¶ààÕûûôûûôûûôÅŹÜÜÐúúóææÛúúóððèùùéúú󺺮ÌÌ¿ÛÛÏÜÜÐààÔððåùùéùùíúúóûú!ûúHûúKûú]ûúkûúpûú{ûú’ûú™ûú›ûúŸûú ûú¤ûú©ûú¸ûúÃûúÆûúËûúÌûûôüú üú üúüú)üú,üú?üúFüúNüúPüúRüú]üúhüúuýú ÷���AtRNS� *,2225;@BCMXdfrwŒŒ”›¡¢­¿ÀÈÍÏÚÞææëíïðòõúüüüýýþþþCînÁ���ÖIDATÝÁ×;ÃP€áU;EcÏÚ{oBˆ¢ö®Ñcïßÿ/zé9÷¼/üUVF±¾‰N ƒØ¤»2X=ã®%0éUS-n­¢QΗøæ|5!•Í"Çéô©ôk'¤ôM¤‘.r¹ÿ o·7äp´O–ìdã;9 ë霠Y|u¯òãù QÕ]õ»‡{w—™ÌöC-¿8NÒ[h²hàåêâúŒá”3íyë%ø ZÛ±UJ©å¥<´j”rÝ‘zEãsýQô‡TK´ ½üÿÙ'a}"ú ƒ����IEND®B`‚IMAGE 703 ./arch/monster/angel/whim.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��JPLTE���ûûïýú ÿÿóýú ýú ýú ÿÿóýú ÿÿóýú ÐÐÇýú ýú ýú ÿÿóÿÿóýú ÿÿóûûïûûïÿÿóýú ÿÿóÿÿóýú ØØÏøøìÿÿóÿÿóÿÿóÿÿóÿÿóÿÿóÿÿóèèÞééÞÿÿóÿÿóõõéääÚÿÿóÿÿóààÖææÜÒÒÉÿÿóÿÿóààÖõõêÿÿóööë××ÎÛÛÑëëáööëùùíÿÿóÕÕÌßßÕëëáïïãýýñÿÿóÐÐÇÒÒÉÓÓÊÔÔËÕÕÌØØÎØØÏáá×ééÞììáóóçõõêûú!ûúHûúKûú]ûúkûúpûú{ûú’ûú™ûú›ûúŸûú ûú¤ûú©ûú¸ûúÃûúÆûúËûúÌüú üú üúüú)üú,üú?üúFüúNüúPüúRüú]üúhüúuýú ÿÿóg^R���@tRNS� *2;@@BCDaderw”˜™¡¤²²³¿ÍÏרÙÞßæëñòóôôõõ÷úúúüýýýýýýþþþþþþÅbG���äIDATíÁEWa�†ÑÇvì[P̱°»»¿÷ÿo=Gg,<nÝp/äý—R~c%GòzcNÒé3Ó´Œá«L$çÇ(y7¦0Æ4Ãêdb ßðš³4ÁÃ'…ü¸»­U\‰<ŽæVÄñ>³['wk±OT ½²Nñ=_”)¾‘Âv·Ç¨z{2ž—N¹³ËýxšÞt»©Þ;Ú¿¿Êdv+h‰jf=‚OR, Ôðz}ys#ŽÀgÅ"’Å·‚Æ&°’œ²údÛd C¶D.Û ‘«K­üÉ"/׃-ÅqMÐ7����IEND®B`‚IMAGE 680 ./arch/monster/angel/whim.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��5PLTE���ýú ýú ýú ýú ýú ÐÐÇÿÿóýú ÐÐÇýú ÿÿóýú ýú ÿÿóýú ûûïëëàÿÿóùøžÿÿó÷ö¢ýú ÿÿóýú ññæÿÿóÿÿóßßÕÿÿóææÛïïäææÜùùíÿÿóÿÿóññåÜÜÓÿÿóÿÿóÔÔËùùîÿÿóÿÿóÿÿóÒÒÈÿÿóõõéÿÿóÿÿóÿÿóÿÿóÿÿóââØÿÿóÒÒÉõõêÒÒÉÿÿóÐÐÇÔÔËÿÿóÐÐÇÒÒÈÕÕÌÙÙÏççÝñî÷õ…÷öŽø÷ùönù÷œùøiùøžûù_ûúHûúKûú]ûúkûúpûú{ûú’ûú™ûú›ûúŸûú¤ûú©üùüú üú üúüú)üú,üú?üúFüúNüúRüú]üúhüúuýú ÿÿóȦR���>tRNS� *22;@@@BCZdwz€ŒŽ”˜¡¬¬³¿¿ÅÅÆËÌÕØÛÝãääæëìíòóõ÷øùúûûüüýýþþþøì“���äIDATíÁÅBQ�†ÑÏDÅ;®Ý ØèŒb b'vßÿýÁ™\±påŠs ä_u÷U“WI^4Ê/mxÛƒPÕdíu6{k»€Ú±Ôy-[ë SCT|Z[Xk;`Ôó6'È™[•»2Ëó7eä<>à(¹æMêP\½\S`O@Rj™PLZT7¼ÝâJº„äv¨ûxµÖfîíûÌË×H@’;úÓ˳§L:}ôRt*!õ4>M ãý½Ì.!ùb#ZŠPÐÚÞLÈ‘\CÀHE82†"eŒ¡ä~�a|-ñ´Q=ä����IEND®B`‚IMAGE 576 ./arch/monster/angel/whim.161 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTE���ûûïýú ÿÿûýú ýú ýú ùùÛýú ÿÿûÿÿûýú ýú ÿÿûýú ýú ÿÿÿýú ûûïûûïÿÿûýú ÿÿûýú ÿÿûççÞÿÿÿÿÿûõõîÿÿûÞÞÒóóìÿÿûããØÿÿûÿÿûÿÿûÿÿÿÿÿûÿÿþÿÿûÙÙÍÿÿþÿÿûÝÝÑÞÞÓååÝééàùù±ùù¸ùùºùù¼ùùÛûø#ûø0ûøAûøBûøGûø]ûùûùNûú!ûúHûú]ûúkûú’ûú™ûú›ûúŸûú ûú¤ûú©ûûöüù.üú üú üú)üú,üúFüúNüú]üúhüúuýú ÿÿûÿÿüÿÿþÿÿÿIà���,tRNS� *,2;@@BCZdrw”˜¡ª³¿ËÌÍÙÚßçêïð÷ùúûüüþ¹^���»IDATåÁi7BAÀá_¶˜\²VD¶.ŠT„píʺóý¿ G¼›;Þ:ÇóÀß²bpQƒ=ƒKÚ„I¼R˜ÇÅóMµqÚ=4 §ÍŸ&ˆ69'r7’Âj¼'2ˆÈ6ÏïŒ0ôôˆÅÕ%?ä‹îqœo¯wXLWŽdè­ÍLµÖi5OÏ_D˜¥Ý¨ŸÜâ›_À[Í®g—7Ö°›Ò;å{]ØVØné/DRºäkŸ_(þ‘4 x‘����IEND®B`‚IMAGE 527 ./arch/monster/angel/whim.162 ‰PNG  ��� IHDR��� ��� ���szzô��ÖIDATxÚí–¿KA†×&¨Wmâ_`ä 9 ÅpÄÆÆ.`H D,-ÿ�DÒhÐt`Úé‚’4¦P¤ ,‘œÂu盯ï0'È¡b±7ÛÜ ÜÇ~Ï}óíî$í´s[”úÕEÊE ”I­0­Óç4˜áBœ“oÎ9 R@jŸÀ„ú¨1‹`¬5ð\ODà ¸ qq &‰‘a´p(«É ±ÒÓ×Ê.¼Ðú¯4æ ÊbCä%GË:²³>2 QKh|¿™·H…~ld6 ”š:k¬&yÇÈS™G£Øƒ»Û C‘\´¬@Ë›{]4lÏó|DmBÔ;ܯ[U låÜ55æa—"oÑ´ç0Šÿ:+…Ï2M^£wÅ—ÏJmSbZf9ýýd„Œ’A¿fá²—KZ˜ ]yQïÉù@© \E|oœt9²pUœ M÷³ƒƒ½rQç °8÷ptôó×[d‚tÄøHt½þY–f"àûHç,Œ9‡µÿ/ò*¦ÄWò!”1À/K “üàëÖZ/pÎu‰ôG>Þiç´>ÞiˆuÇ܆‡Öžù2PÄíø¨i=^Ôs¡3iç†\óöö¬ ¬ý����IEND®B`‚IMAGE 579 ./arch/monster/angel/whim.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE���ûûïýú ÿÿýýú ýú ýú ÿÿýýú ÿÿýÿÿýýú ýú ÿÿýýú ýú ÐÐÇÿÿýÿÿýýú ááÚûûïûûïÿÿýÿÿýÿÿýýú ýúÿÿýÿÿýÿÿýïïëÿÿýÿÿýÿÿýÿÿýÿÿýßßÙÐÐÇÿÿýÿÿýÿÿýÿÿýÐÐÇÑÑÉÕÕÍÛÛÔÞÞ×ççâîîéûúûúKûúYûú]ûú{ûú‡ûú’ûú™ûúŸûú ûú©ûú³ûúÆûúÞûúãûúèüúüúüúüú,üú?üúFüúNüúPüúRüú]üúhýú ýú ýúýû-ýûjýü4þûþû þü"þü%ÿý,ÿÿý_Uºü���+tRNS� *,2;@ABCFUZderw€‰Ž¡©«®´ÁÇÍÒÕÛèòøùûý`LïA���¼IDATÍÁÇVQ@Á«¨ƒY1GDQ1gŒ(Æi3ôÿ‰ »7½Õ*øQ„¯RÂ%µE<Õ‹pLŠmàÉ‹Åxæd5À1¼Â ¾>Òe'TOêõÓÖ<A½Ïª=€¾¶Ù?¦›_.¯éøþ à⊎û6COMUM4Iôá…‘½ÃƒÛϯ·Ý»ARŒòx~ô~†«kjštkëñ,Ù6Ã#›f9e1+⑚Ùx‡l™õã“¥åÿËòœdXYм����IEND®B`‚IMAGE 484 ./arch/monster/angel/whim.172 ‰PNG  ��� IHDR��� ��� ���szzô��«IDATxÚí–;KA…ÕÒˆM‚X*‚Ö "‚ b ñUÛXXäøìba!6‚m;ÝXc4$%Y\¢DM03;¹žÁH I±;¢äÂÇ\f‡9‡;ww§­­øwA$¿"šÍ¦¢†‘È ¼+5LÆ…¦R¥òÊ!^eV"žNëŸQ.w§Aô<JJ¯ë—dYî”>^@^åùï�?8¤T\†`]ý*ÅFÀ ‰Í—ÁÕìiâ,B‚û¿y%Þg³®ÓÓðs½Tヒs× pv@œiäˆuü´ÖfÝdû¸yj²ZX;ë²ŦGMmj³¬Ý'·{ h³E”v‚7Ðéà4'›äE#Nr6GœmƒDüh¸àC¾†¹!Œ£ÒĸׯãÔg©Hðu§óÇ``ÚT~@~ çÏí`l)5`š÷7ø"qÕðyJ<7É$‹†qK«‚Øap "*Ž`Hu,gŒ);†Dâ‚á&Túf¢êÑTš Ó|ˆBôÔ�CeÊå’./|]ÅZÑŠ¿H7Èh•«rÃ����IEND®B`‚IMAGE 623 ./arch/monster/angel/whim.181 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTE���ûûïýú ùùÛýú ýú ýú ýú ÿÿÿÿÿÿýú ýú ýú ýú ÿÿÿææãûûïûûïÒÒÍÿÿÿÿÿÿ÷÷öýú ÿÿÿýú ÿÿÿýý§ÿÿÿææãÿÿÿÿÿÿÿÿÿõõôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÙÙÕÿÿÿööõÿÿÿÿÿÿýú ÒÒÍÚÚÖûú©üù üú üú üúààÝ÷÷öýûgýü“ýýÕúøZúø*øõúø?úøCúøIììêûùIù÷gù÷kù÷lù÷wùøløõ"ùöXûúHûúkûú’üú,üúFüúNüúPüúhûú™ûú›ûúŸûú¤ýýýþý»þýÜþþðúùgãÕ���2tRNS� *,2;@BCFZrw€‘”˜¡¢¤³º¼¿ÂÈËÍÚÝåæéðõöùúúüýþþª,ô���ÌIDATx^íÊÇZÂP�áÁذ£ Õè¹tì½÷^ßÿ-Ìu‰gëÆ1«A÷o`b…].ï ýü*·T|zœ�]^{¦E$•ů;±jî+•G>ëo/€1f ˜jÖ^iÃC½¶ós¸¼à›9‡pÒNâópÒΗë'� ¿èÎænÕxnîÒ»½±ß8<;~¿ŠÐj¡ôq{´uz@€áR3Œ'488,®Ì£šy–IT"Ë Ŭˆã I‰ª¬Ì¡ŠgFPYülŠN-?Õû����IEND®B`‚IMAGE 487 ./arch/monster/angel/whim.182 ‰PNG  ��� IHDR��� ��� ���szzô��®IDATxÚí–O(QÇ—+Ú“Êœæê"JNrQîd”Ü8H98‰")ÅÁÕE.N(»-IÛjSþ³kß{3o¾¾“§¶‘?­1Jó­O3½™ú~úÍ›ibQ¢D‰òÛ`¥ÓÇ;Ùl&Ë]ܸ ³|vooÉ䤚ÀKXåƒäˆ¥BˆK�×$EŠÄ ¬H«ªøud–Üšr/?)kqõöžÃVKdݰâ­y¬úD¼¸D—-`Êkµ³ Wï¾Õø®£„ùIS¬ é²Õ GÁ”U~~o5Š”H › —%`«9Ž9oN‹÷vÃ÷(r±„ËbJX _O«‹kF ¸ÝÞ.Å š(’€#Kž¹Gõ!ñ.Ož¦Ï?݉%(0 [ö±¤²˜€|îçqJ6r­Õ“h ¢|áðð�…BÞÕZÃ7Î×Q÷²x¢'M<DP_±ÅLæ\ž€q ûîû®‚Œ’ñ Ê-bM\¼F‘B,¬à}”9ZaJ‰$Úº€Eɾ)O…&àûŽïüé_ ™ŒE‰òó¤ö»ƒKÄ'����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/white-beige-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7��IDATxÚmÒÛ–Ã P¤°$þÿ¹˜•á¡i<;jiÎ1Æ\k±Pu]D¶‹žñ@ô#y1;Ø;ü B€ ðCîÀ¯FDØAäk`ÅL§Œö+D¾Û]|G‘§1/ȹµ�#Ñ�s7 ° ø$Ñ/³»¢@7èI�m_‚¨@Í/oà5rå pR ܹœÛ žÉ}çÞÏÁRkÑÏ‹¨‘ÞÀ,@ ýµŠFß4 ì�A^Õ Ï*oÑ`çÕ¾Dƒ\d‘óÆ*W'í?ª©æY —`qžIöÙO *Ç­&ÈŸFÓzޝ)ì�Qc¯g.P ü#Eœý')†4?…����IEND®B`‚IMAGE 354 ./arch/floor/inlayed/white-beige-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7���üIDATxÚÓÁrà ЕX øÿ?¸„”K÷`ËÑ›u<N@`ï°Cœs@Åÿn :/ (û4„U®EœÁÕ èž �Ux:d7.ˆ+z€Z{Oã �P F�8�ÈbW_E?SYHœ!7À®½ð€[ÀÓŽ{@ù‚ïiûÍ=ýÒÀV ÷ÞgÀDË äì,)ØäÀßG½Àhuõ†y@!‰#@+"Ä•±¬ú™BúkªGÛ7b_Ê7j¼kj�)­‰%¾l÷Ä?’)¹7:ÄïaÌ‚¶ö>ºp‰ùˆÃ÷6I10‰j€Ÿ]0&fSü”69¹m’³����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/white-beige-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7��IDATxÚ’ÑŽ!C+bpüÿÞFÐÙl²}¹é‘ŠW¨Ð9'À%k~`àÿ�n@dÿT@t^€€ˆ†ñVhtÔyM€k¢:ˆKý�Æà’Llê ~Ì�p�øÈIv¿µ ô=Ä x-©Òw�÷UÎø�ZkÐ#rô)\¤|¥ßÁóÆHžV>º-{¢jò›-¨ƒ¨�º Qƒ¬êÞT0ë ˆª¢Ô>€ pù­Ý�ýl¿}êÜ?«Ùcí樇êŠÛ³ÀÞF7Ñf4$ÊW´'�ÊÏ0Tózv²{D;¸‡±zO�ðdÛËK]Ôƒ?=I…¸����IEND®B`‚IMAGE 353 ./arch/floor/inlayed/white-beige-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE›€-„„„´–Fœ¥œ»§qο½½ÎÆÆÆÙÌ¥çççÿÿÿB8§7���ûIDATxÚ…ÒKnÀ ÐÁŒ—û¸|\Ä¢³À?9‰H�l­•Ò—]sÇ�pƒZ' `Œú:@•°Þ_`Öʧ uÆ !Xzj-+ €ÅŠ ºÈT$pe6ó €z_ €/8[|?K$0UÅ%¬šù¾ �^¢”Üeœ@Âø]‚FXö ŒkëÀAß�ûÆ6A8s²Æ=7ˆHñ~êN×\™I #± ®ÜÀ€3>E¹ÞØ ¥ |÷ÍÎOå¤aÇ8ùîÄ ¹žÇ!²OÀ7à²pYõJ¨b~¢ëÌ7nvÀ0—-t÷¿Çžñÿc����IEND®B`‚IMAGE 348 ./arch/floor/inlayed/white-gray-h-marble.111 ‰PNG  ��� IHDR��� ��� ����V%(��#IDAT8}ÒAµÄ0Ð(z"s¾`#˜ÁJdðt1ÝLÚwK’᮪ªqýîÆÒ_�И€áªæñ�+�Ãmç±ëDh-Œyƒ}Þ@ÕLUDD0º¢GÍ\økE´�€xèéºUÐÎ"LE~‚š[4°Î`¦hв8PÌAT»¨_9ö †_ßPóÎ <› Ö9‰#b©¯rçL�FD,¯ÒB‚ˆò€T´�êµëJ°|Å®û5Qæûú�7‘'?"Õcª}šÌóµ7ˆhvµ«rfÌ<“ˆ ¨¹wÁYÿ€rR4T­s™ê<,?SÝs Õ$ˆó5"Î�æ €¿S��¨„À?*m-Å´šî4����IEND®B`‚IMAGE 354 ./arch/floor/inlayed/white-gray-h-marble.112 ‰PNG  ��� IHDR��� ��� ����V%(��)IDAT8Ë…Ó]�! `$49U06j3XYs¥ü$—/K¶ßZØf3"¦¤I×sMZç¿€âcHR3Ò§0J$p7d`.°&cŒ@Ò< bŒÈ¡F:–Ð{Œ¾O:&gs4’HqÀØ•h€óvì àŠˆ¹òà„®ñ-q�‰G̹ =bÅ ^‘hv­A¿Å�i;…Ÿ}̈R:­ J̈1%5�ÝNŠuÏÔ��—¨“«^&¸„O?èÖ™Åâàf+N’ç\j 'ïø­NŠ;ý+N…ôÜ«Y7’ÕÉ^qwô^[2_¢ÑssAÕMræò7²°¬¶u³jOöÁîÖI 0_Ÿ™9鵈çÿÒ€Ÿ ;bU˜À/§L>üŽÂ]����IEND®B`‚IMAGE 392 ./arch/floor/inlayed/white-gray-x-marble.111 ‰PNG  ��� IHDR��� ��� ����V%(��OIDAT8Om“[‘! EQHHÕ8@60‚™XAFöæÕMWm~èÉ=äÉ4æ9—¨êZêV'>Öú„ýÌ`ÖÃdLtÛO¢�d˜by%JèB›l׉ädL·¥ ?( }™úÚh�ýèSÿôTÅ€¥Aô^À(D�NÀ:  7 Ðó99`×"l–|ä|¼e.DØK¯™_ÀE¤Ã¬É“DLôôZöövkpVìó}R@ßv€ž(˜æEH.Õh‰|>Õ«Te€p·=Ï»‘8Üáä髾[) ó`=Cc¥ Èìºø€.¢éS¿5'‡IžÒ÷Ö“à$Úìx)qª˜íHÃü_ãÉ"ݶî¤ôÚ\ŽY‹'};7d¶w¿™·¢…"òõ•~FÛÿ”����IEND®B`‚IMAGE 373 ./arch/floor/inlayed/white-gray-x-marble.112 ‰PNG  ��� IHDR��� ��� ����V%(��<IDAT8Ëu“[‘Å DQÔ®„©Z(hm3c½0ÜÚýJ*ç0™-SRÚ–l_OK�Цþø-è-ô�-¥‘~ ö la,îÇÞÞ;à–›; N’¤Ü*¢>7׸„9ýäO€£éÉú½¸—ð¼ “\üO�ÉØñŽ0€™óKØÏÍíÌG¨*/^'^‚òâ«!jyýC=/áÙ’†Ýì©•°¸,>Òv³=WÂàeÔž¹­pYýÙ²2k{’+ò]Èf|�%‰w)%|¢G,¾—¡Œ% :Yüm´½Ÿk¤´ßF{æKi¬z3gÔÊ©yãYª™Ñ·ÑÔ#H²Hmp ÙOiVcbUÛ>$ó™òÕ:4 :çþ6êÚ£„îS«„ñ\ �¿—óÑù±/����IEND®B`‚IMAGE 389 ./arch/floor/inlayed/white-gray-x-marble.113 ‰PNG  ��� IHDR��� ��� ����V%(��LIDAT8m“k±!†MD#0ó5 5,bªƒƒ\Ô9üÑÙ÷‘û6Dæ!ª:†ºÕi0kÍþøèÂøDXB€˜~$@[7bx&JèÛ…à:€\Àœ» m’Ð pêc>@_zòg¯@U6À ô¨t#pÂ/ž?¹} �´®Œ°€ý,ÜfFKÖЈ[fÎå�\©ã£WÏà!nCÆžW‡8»ª/°S–ã‚. ÃÇf@çHØû{B˜>÷ö[ ?„äP�/)úSµJíM«¢!º=ä-ä »È>ê·”ºí †žËPD�€6ÀÒ¿D‹ˆû㙉r¿¢^‘…µrÖÉ^úœºr – %ѬÿxfJ&/û£•³7Š®níI"Õ¶îäÌ'ÿŽjX’nå·™Ú6g?ÎWQÂ<?¯íU:…œö~����IEND®B`‚IMAGE 377 ./arch/floor/inlayed/white-gray-x-marble.114 ‰PNG  ��� IHDR��� ��� ����V%(��@IDAT8Om“K±! EQ# (ÀF¢äí®däå LÕdÑMsùÒ­÷9Dd-q«·.H­}¦Úo`^ »°¾1У½�û›(� Ó•Xž‰ƒÝ\H»N„ ¨“1Ý–4ý $ä3õÅH�Ÿ-'ÿéˆÀ€%A|>ŒÒ•À Ý †{�è,gÏ€رp›)oìo@"n™:DzƒêöÑ«çð¹aÖpb(]'yy‡0Ç줎M½"aoñ ¡:ÛAd㎩äP8%‘i¢2 à!ðrèbÔo)` ô¼ ETVçký àÒý¸D¡rä ì^WN;¹Kg–½+¥>’hvÌäR$“2ZŽÝ(¾º¢éèQmÛ8]> ˆhXówîqNÈŒ¹€¿ãÀEäõžf¡yl¤@����IEND®B`‚IMAGE 389 ./arch/floor/inlayed/white-gray-x-marble.115 ‰PNG  ��� IHDR��� ��� ����V%(��LIDAT8Ëm“k±!†MD#0ó505(bªƒƒ\Ô9üØu}‘Û6D"UeV·zÛÌZ'³ÿº�ºÀ_` ì†�/0ý €Œ­Á‰ƒúv¡M¦ë�rs2ȵÙ$¡ Ôyn@èKOüä¨ÊXƒè½€Qº8a»¡Ãpú�œ%a^XÀ>n3ä%ë hÜ[fÎå�\¡ã£WÍà!nA¸ ß6RTôôi‚õíû¤µÍ€Å°×÷\aúÜ Ð=„dSˆ”¢>•«TdQm–7‘ ,춉ä­~S) ã@ =‡¡ˆ��­¥‰–óó㑉vú»ç+òYX#g•\¥Ï©+‡` Ž$t¼” ^ö¦¥#Íêëc»=Wf¿&úiyêÐ`§ØsoPu|ÿXüŽ‘½ÿ¿J<Ró6����IEND®B`‚IMAGE 380 ./arch/floor/inlayed/white-gray-x-marble.116 ‰PNG  ��� IHDR��� ��� ����V%(��CIDAT8Om“Y‘! EQHHÕs€l`3±™¬4TM~¸‡¬tCœs‘ˆ¬%nõÕ¨µ>Õþæ  ëÆp@# ¸í_€�h˜®ÄòL¤ÐÍ…4ڮШ“1Ý–4Ý@ò3õµ �:ËÉz"dÀ’ z/`”®D�Nèiè0܃܀�g91`×Âm¦ÌÄ/ ·LÓ²ƒêöÒ«çpy`ÖèÄP"ºrr AçöévSǦ�¯HØû{ëÛ.*  ƒ·ÿºï§-¶Tý™r€X´Ü“g—Ïó¶»ê8=ñ‡I ã@L=ì�u€~À<ÓýK49ù[ឈé8jÂ¥ï-œ@;³ XÃ~¾ªŸ«ÊNQÓþºžrõº; ÒOR—V"çÙÎ ™í]À¯ú%‘ÿèmʲ$aŸ����IEND®B`‚IMAGE 391 ./arch/floor/inlayed/white-gray-x-marble.117 ‰PNG  ��� IHDR��� ��� ����V%(��NIDAT8Om“m!†MD#0s L@ ‹X†*ÄàõfŽ?»Ëûˆ|mC$š¬ªsª[=íÌZ'³ÿ�]�]˜¿ÀØ ^`ù �[7bz&rè¢ñr€/`A…A³HB/@ec@=ù…705ˆÞ ¡o7à„yC‡áô4�8¯„Ç ØÇ<l&Âò hå¦Ê|€Y©ã£Ÿa]à!Žƒ¨ñ¹ÃÑuÐÐgÖ¸ ð>`W¨ÊdÉ$*ÑÐ}J¨°‡�zˆ}3C^Rö§jåš@�F¸{¯'œ[^@°Û’ú”ò�bè¹ Õõ�lîÖ¥Ô/q�ð»Î¾RO=MOþVxÔË,HeM¥ôµTr넱¶¶ÍŽ—¢Y÷vâÞ(ëÿÕ­=ƒ£ÚÖ=�—^“«ÖAÛ«M’¾µÍKÖ*àCy*J("ÿ¨/™}I?µ•_����IEND®B`‚IMAGE 378 ./arch/floor/inlayed/white-gray-x-marble.118 ‰PNG  ��� IHDR��� ��� ����V%(��AIDAT8…ÓQ‘À0P­J`æDÁÚÀf°{!I{?ןfÊëØ©¹“Q’"$½î}°‡$ÿ.)ºr@¦$™“Ã7È-$Éj �ETƒ>d¦$«t��ꂈÌX—,"ÑBœ+-"µÀ3¥kÖ©Ò"BK<Ïy&Q- � qAüZ`‹ˆ¨þà p„4[ Qu@oôè,.ø+Ö"¬âÆÈñ ô ·Šˆ”Lš=RÝ(V=K’Iš«að%j‡jg$� vg¶‡ÆÚvðÙGƒé�gDÄ_ðøp_õˆîå àƒÜõ¯°å ÉX…éô‘kÞªéd¿bš»ž©9wÖ>ZX w’Ü•¶“t Œ·^s/Æ×´ö¸÷Ϲòéäöê`€Î~–$enðÃ~kçJ�øûÀ³Áé[[����IEND®B`‚IMAGE 384 ./arch/floor/inlayed/white-gray-x-marble.119 ‰PNG  ��� IHDR��� ��� ����V%(��GIDAT8“Á±í0C] ¤f~T 6Ôˆ›¡—¡¿�rÝË&ëÄFˆ,w�nf€™]ï^¬ð"ÌÌ–áöb3³•QºÈ”$±fa¦•Û‹Ï@î��€ZäîK/�­s/r«€ç¨v=RîERE<Ï�1º”¨ý•n ôP7à]ÂûÂdÑÇvÉ'ÏÐÛAëúò8¥û¥KµñkW¾wŠét…09•A’[ZÒaLL VúNIKÒ©‚ ‘ªV—ÓŸñšSYÊìaaÞF~ÀñÇÌ$‰ÛÊ�‡{é= C`Àè_bU~QóC¦ô%Ö›/È]~3ÏÈq錾·NÁI&Ã�Féâ³ÿÈ\@üô$Ï4ÆËízÜä›O'7­³eæÓ{»’¤½ø‡þª,ì÷Úffÿ}íJ»;#B����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/white-green-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚm’Ñ„ D…EsýÿÞÀñÔòÅ\@ 6çc®µÆX0ž«÷æöÿ�WÞÀ( …™Å t½CKàr=€8‘¹kf°�R_Ó( 3‹Ã¯ +‰ºÛiv�_q½˜ûMì¾eV:ˆ;€þÚD'™¯�k§ L@SÝÀpbñý$rRÓr˜¾_‚n‡Q×üÄÑÒŽ ^ù|„ªÌI=o-’ Po®“x4B@T2ï‹€©B§=�Å·N‚�ôžt¢Ì}cÑNLø£6‘ÚµZ ¼”šCNJlÔá•4Y)6tN!õlQÒgÇÆÍ øìñ("wÿ‘X ­òzó¢����IEND®B`‚IMAGE 353 ./arch/floor/inlayed/white-green-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½���ûIDATxÚÓK’à PèR‹Ïý<¶Ä›é…ÁÑKÇTÊ ‰R Y,¾æ¦òÿ€7±¤ \@\8b%¼AÀòØ€áJ)šyEP«-nüK/à[€<�7ÐäI¢/°œ©¨4 ®� ˜µ— ?à´”~ü_0§jÏdÏá·sí5�÷<úæ#zV¤@>Ñ|“bƒÜÍ%ð=êF¯Þëæ �ù½©‚WnÐô‰×‡¸€Z`'@“ÍóÖæ¨ñ_ChëýÇÃ.‘o$ŠjÛó‡Ž�ðÓ+è1·íÞeGkþ¶™µ+AØå¥‰?jÆ 0`À±ö����IEND®B`‚IMAGE 361 ./arch/floor/inlayed/white-green-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚÒQŽ!P»–B‡ûx 3Ùdù^‹Ú€$Æä<·ÉÃÿv rHÁh@BA"çDDÀ= "ô¸W ÈóÏãÙM|ôüBæt]€¼�ÿy’³žY‰œ ·èÀs°ëØ/¨ú|¢ªêÀÕƒ‚tGÿ ”ªƒªÓìüp< xÕ9—™ù‰j V]—9ØQ¢€š(Q1vo ™Æ>�`…~�ÙêªHV7¨Ú€WÅ÷ºÖkiÆn_Õ•™½Öš (¾¹Ü¬y¬÷kçAJÕA}Øá{x�æõœÎ+Dd?¢¿¿ÓxFÁæLðCÂ?:C Õ#~%º ð³”Æ����IEND®B`‚IMAGE 361 ./arch/floor/inlayed/white-green-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚ…ÒÁ’„ PȤÁõÿ?xÒÒ$kq˜„² ›�»ï{Œx䘓ÖAÐZÃO�¼Áœ0À™Ä“`Jxä <c€q©Ã|€òh%8¢æ«îXèm• (²æ?Ð{SÑI/À¹D˜8ANqý-QÀ5ªºDYו�°—ã�oÁjF°…Û ˜@ˆŒ¹’ׯóÂú¨œýx «Èœ žJQ€3ç§&èÖÕWænÆ<KAná@æ% DžíKÐK7['îÙmÄö;wÏŸª›¹Dã2Nv’ß½ö³Xì•Ð70Ù.«œS‰º×2n\7î¾Á',.¡»ÿ»¥ ˵G‘÷����IEND®B`‚IMAGE 360 ./arch/floor/inlayed/white-green-h-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚ}ÑQŽÃ0Ð õ�æþÞÚw¥ÎG‚4/D²á®ªªïG¾{�¦þ8€žÀlõpUó8€•ÀfžE¾k°16È>¼ÀŠ™*W€Þ˜P3Ü0gDìÈúØêS<€jò'’rÝ¢uw® zA.—Ðó€!¿@ 4X/P¼úÇ%¨u/ûñS}ೂ bz­ Ù= "Rð�9E  >«4˜>ãÞÛæ ˜ˆð‘/àF œÀ˜à¸3DîkºzbV?®¼âKdPs_C5uyRUë^È«€¤¾mõ5¢zdägûÇ£Š1y}ìG r‹?p„’# í����IEND®B`‚IMAGE 368 ./arch/floor/inlayed/white-green-h-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½�� IDATxÚ…Ò‰ŽÅ P¸Èóÿ?xZ™6/’ªñž—ÜÌ|ïmv5ÝÏ€XÿÚÀž`­�Pß°Jeà z°ÖJ�¢[ø�³µ,k“ªP‰}ÀÔ âó P&G~¥Vä)PÌ6°/@ˆ“ÔzDiÿ©O‰WÿîhÅC˜½À[X!@ i1 4P¡#ÜâÙ®€œ ;ùò€ ·ð~TŠ*Q€ÔE½BT `ðÍ.æ �:e/�Q=ùˆW~–1 &È3nQ7É‹so R‚TrsPVLzþQ29T¹ò´ÄaÑy ucyD®9‰Ï q}?ghZ¨†ø1@_ý|¶����IEND®B`‚IMAGE 404 ./arch/floor/inlayed/white-green-x-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��.IDATxÚm“[’#1«Y@Àý<4‘½1ùá–UDáƒHD-"T#©çðòHò· W  ô[`.D˜€OáÔhÁ8ó$A­sN#`‡Ðæ /‡¥Ð@~Áqi2|…@ñx oŽ$ª[ Ï ¼y%´!‚ÎÁ5!®´€ß£½ëƒg,7¿B!‚aúÙÉV',½ï‡Ñ¬„1˜6¿Â{°„¯`Z¯ ®æSb‹v~,JïÂkd>ƒgœÕþW€m3Ä@jw‘OÁé@¢É,û-<ÄD™ÓåS�±Èä׸À’h7ÿ6P9:?fÝØIŠú%}ósÂ}:ñP¦Ò7‰ÆÞK "|sSõ9ЧØä‰­…X|îN½¡æ ÿDg@}¬1ÿ¨ÁJj¸òqä����IEND®B`‚IMAGE 388 ./arch/floor/inlayed/white-green-x-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��IDATxÚu’Q’1$äÁý¼ qÜò}Mw(B$@Uáîªɵ¿ÐÓŸÂúô)ˆ¤�Õ ;W¢öF^‡KN(î!ŠÈʨSW ÃGX'?3¯Üœ"î¸ý'Hó0F˜û‘dÿ%Äٸ갛ŸìK¨µ¸;PÂLP1¼O<EóÜÈR¨ áæ#|>ÂZ24g?La=¿Emô+“‡q¦5Fð*\åNÿ#Þcó2ˆÒx^dã+6yåSÏUF¸X˜ƒgª—OXÖ*>Æ”œîc”ÐýßÇéØxer’Ö|ï÷ŸÊÀR©pêMü÷&!Ëp¨Z†™2W@ñÚ ˲ÚÛùB'{·ðZu ùцj¸0ôHünÛ����IEND®B`‚IMAGE 401 ./arch/floor/inlayed/white-green-x-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��+IDATxÚm’Q’!Ci½ÿWC°ÛªÍG˘§Quo1çlm}8²­Ç—þüF»3�ên*ò:F¶ýE4$éï-¦èò¡(`«›CmŠ»I >O-ò<cRÛÇßÎØ€ËLà)ÀÊ_D P ÿ�ÿ� 0Y¥ë �˸­¤FŒ˜k¤˜/à]Ï;¿‘(�¦ô_�‘£�·ˆ†gÃÇ`ˆ š~Ç£m"‚qõ˜åÏ@ Õ7çÐ(v{žƒ\ÀÐÝÕ–xØxÔT—1Ë5÷òoBR†þÉä7A€ý•çênò)¿÷9Ø#ÔHˆ›/‡áCoânðëþ«Pe/cƒ ˜$¤¤æƒs/”ê½€ŸsUàSDk þ�X){àÛ����IEND®B`‚IMAGE 396 ./arch/floor/inlayed/white-green-x-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5CoCP~P„„„œ¥œ½½ÎÆÆÆçççÿÿÿó16��&IDATxÚm“Ù–„0Dé,tÁÿðéx¦4¦n*D”ÆXkCU÷VSßm@GŸeúX 7ö Ìé€í0Ñ/À~' �Ó|“H`#ü¡d2—k+Ù%¡ ¬™Ð�>¢©ãû¶ &¯-€O³|#Âfçé Ú€)�z†kHÒ䲌¥@n@O@Ë‘€©Jíûy_À.‚IÌQ~ÚM8DØÞ6{ ©Yhø u@Ða~g\Õ¹ªŒôEà9È$ö5åaß�æ÷Ç@toÁ{›ÿ&àò z×[c *–±\þ&¥|f©’ÆL‚6Gqåhcyï@¶²}C%GÙZñ�”oÃ"(äG”œcïPˆ¹€ïà—"òúÖcÍI§&ì����IEND®B`‚IMAGE 401 ./arch/floor/inlayed/white-green-x-marble.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��+IDATxÚmÓë²Ã à•‚"ïÿÀ¹Ô:söOLöK$ÍD"SÍlNóı8âùÈÅ|s�a~ÁŠ#@Ù{Z`jöì ‹²ÁÉb‰LƒŸ „] /°c[åô±­éBÌ–`4àî]H!‚ìá@¢¿À໪ ¸‹ÌÖýA%¡jONèÔoþ‚‘"Ð�%˜º¿à,´ð:ã³ÁlOÝ5DšýR `;†\÷«ÈWp´'ƒ•�BLEïò€M�ÉôÔ˾`y©Y~ˆEª¿â€Å3sòW zd¿TsâMq Ûݯe{×ÌJ\“)x7–Ñs‘�…HXô¿hÔʃȠ°Ýû²:Äu¹ æŸï’—¨oÿ$‘ï+S47����IEND®B`‚IMAGE 397 ./arch/floor/inlayed/white-green-x-marble.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��'IDATxÚm“Q²Ã E‘‚ìÁO¸¥$3½?QωXjˆYu{Dì<1 Ìқ߂ŽÀö[)U…‰ž‚Õ“‚Ëå78„;�Ï-‚ܘ`¶1ÑʺB<FP$a–„°N|’¼Ê†ÕÙ ¬¤ù5J€qWÁIj‡F-öPùÀ†€×°-!ÇÏÔíD¸…ÝGçáèù[xX¨C€!Ü|„x *Ã}×ßvggãÀÕß'7âàÀ¤™á«˜z÷Gã+`Ð/8ep='#^u»vÆ‹…ùòÉ[ Õâ“§@$zóÙþmPq7wœøøîPœæfq²c茵°…9y“@ÜQÏIU†ßÕÓB߇UxóoŠã€,Š×ª°u³þº¿ø eÌ7ú+/åd“U1����IEND®B`‚IMAGE 401 ./arch/floor/inlayed/white-green-x-marble.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��+IDATxÚm“[’Å D Øÿ‚‡g4UÓ‘Ð'¥Dæ%f¶–?j�B»þø�˜ÆúD 3!À ì\ rßå†4°¤ü*!¡ÈB›¸à/Є€G€ð¨µÂ¯do<PùDEx¶| ¬`7`À2jžñª¬AIE¿€1C«@‘\Ó:ë.b.�&A8þ"7Aø _t‰vÓhù;VÉÀ;ËUNrþ€¼'`E×ó rŠOÞ®åêa¿Àƒ„è~ª{¹@bÿ×^îsúbvˆk«ò·Hu¬È#0oSíži€E˜ø8V’H"�3_ÖÒŽ±ïrö]2ŒX;·£Q+í=Àû«aˆþ£þ�¶Qä(+óé����IEND®B`‚IMAGE 390 ./arch/floor/inlayed/white-green-x-marble.118 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½�� IDATxÚ…ÑK’ä0Ð4£¤û¸%p¶G«Î… /B`Fz®µÜ÷G¿_‡;«µß ¢€‘ÀÿAHȱû;»‘ TDD0TRà$Â; {W¬Wâ€Õà™-Út•ª<¡þZø€„Àj€o|7„0ë¶Êl!°Câ™/pÒ$ôæ7¸…y€Ä(qƒS¤� ‘^cÛ‹ù^ɹƒJ÷#×[ôA~"5Tü^ À:ti „'´Ë¦=�Œ¾C+qƒÇ†Y÷·8i!�dõo!� îxŸü�º™}âi¬ÔKNõ#ÖœšµWÀ‡WGÃ6ÖìdÙ¥÷Ÿz3T;6ÕwO (68ßÿ¢&Ô‰øGÏõ‘p/ñ‡öò(!±E����IEND®B`‚IMAGE 394 ./arch/floor/inlayed/white-green-x-marble.119 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE 8 *F*5Z5:]2CoCP~P„„„œ¥œÆÆÆçççÿÿÿ’³½��$IDATxÚ“Ñ–Ä CSøÿž2„S»O“©¹z‚Uˆ˜™�0Àñ,.û°7 Š’˜©à(‰]Ûϵ<K« @k‹„oA“”¶ÚW+q€D>€µn³€làŠ¤ódz+³k�ÿ&Hö×>*@ûš˜ÉnY‚4„r[´Âã ¤(æs·&º`Ôýþ‚%xC¨Ð?€*|�Ó¨•;™±<b‚¶¿kaÕÑaá‹s;çù �ŸdH¼,ËŸFN ä V¹Ùì¸DEÊ/1Ë @ÔŒþ‹ �hM­Nþ&5î8ÄŒK1þÞÁÌ.JKå‹“-ç‹t˜iû<ÿ`å"¼ËR¬Ó¯˜C`$jÁ¹Í?TÚÔŸqU·0_Ô?=÷=_â×����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/white-pink-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj„„„¾……»ˆ™¡¡¡Ýœœü¥¥ÆÆÆçççÿÿÿx­ûá��IDATxÚmÑÑvÄ P.ºþÿ7ƒ xšò°1Î «¬5ÆX{ï16ª®[d>%ßñ@ôƒ`F©Xc|A€JðA ®SD,;h€Ì÷ÀJUNMyÞ°SðÛîÒ |9ÍY�çöŠ<EÌÝ@^`^ &É~xlÞåºA—D¶í86Äê¯S €jo€C°ÚÐÎíÜ>à›#…ï<úØnÖ=;› j¤`• †~ÚÀͳ/Mƒy€š!¯jÀs—Ê[4xòj_¢7Õì|±ÛÕÉ™«Nwžµi µàLê°Ïû ¢rÜ:ÿ§KŠüÈÑsO¯W%ø©ñC‘gÿ ~˜`+ æ´����IEND®B`‚IMAGE 353 ./arch/floor/inlayed/white-pink-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj„„„¾……»ˆ™¡¡¡Ýœœü¥¥ÆÆÆçççÿÿÿx­ûá���ûIDATxÚÓA’Å І.zÿ#ˆ2n¦‘|^‘ŸÒ€Àïû€y‰5 Tü ‘uK@ø% .ˆÐ¾îBD Ð<̈ÀòAc¢C¤Èj]‹«ø ð�vÉ �ÀšA¼‰Ï;@|õTÖ 4¤c“�,íz„/CµÅrú´Û º¶ºNßçaLÑbD;gf\$à† ¾¯š@oÕçºyA!‰+@+ªDJEg||t¥¶M•ˆŒ¾û¥Œ^÷^SàÑÒšÎì?› €v¢ÊéOÚ7Øç¡¯ÍûVš0‰õŠÝú³Ò²¬šbÀºL±âÌÑÙ}>óp¯����IEND®B`‚IMAGE 363 ./arch/floor/inlayed/white-pink-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj„„„¾……»ˆ™¡¡¡Ýœœü¥¥ÆÆÆçççÿÿÿx­ûá��IDATxÚÒá’à à…­J|ÿ>O h;7süˆéìW!& pŒ¬K®uƒŽÿÜ@dÿ$ DA®`ì èž�x ÔŽqU;@ïc”‰?ý|òÖ��ƒ|’½ßœ$ÖlÈþ|­"Wî�÷UŸ/�Þ�ª = §Ø¹âz ʹò6çì päh67µ*W›V•( s(Q2œçF�iæ'’¨Ò@®\õ’ ã]ðT|V³Ç4 £×‡:z÷ñ³–�âÃå°ÑÚl…¶V,Q9¡O3Ÿ¡“ïãÙ-Å{H üûÛ[³µ/À;ïÈR¨nñÄ=‹)-ý(����IEND®B`‚IMAGE 356 ./arch/floor/inlayed/white-pink-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE}ZZ›qj„„„¾……»ˆ™¡¡¡Ýœœü¥¥ÆÆÆçççÿÿÿx­ûá���þIDATxÚ…ÒÁrÄ P“æÿ?¸ ¼;ª0Ño2,H�|ß·µXö^8&cà_�|ƒÞ ` b KXô Ö =šÐP?Áé½e^�62‚Qé(à>” zÓg\À½ �$npŽx~S0íŠKȽò<@�ü­]à[ Í€ Ho0 „¨žÀ¼¶�úøìï!X#P=8DJˆ“@‰ûSpºæÊÜÀH‰ hÀéKˆþŒ/Q@Ì7vBi¾{³ó§rÒ°c\|7#CæïqŠê øL —UPB;Ö'ºžêÆÍ6ø9Ö²…îþ2Zf}$Q����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/white-red-c-marble.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÚ::ñHH„„„ÿXXÿ[[ÿiiÿxx¡¡¡ÆÆÆçççÿÿÿÉpRK��IDATxÚm’Ñ„ DEsýÿÞÀñÔòÅ\@ 6gï}®µz_0žkŒæöíÿ�WÞ@/ …™Å tc@Kàr=€8‘yhf°�R_Ó( 3‹Ã¯ +‰ºÛiv�_q½˜ûMì¾eV:ˆ;€ñÚD'™¯�k§ L@SÝ@wbñý$rRÓr˜¾_‚n‡Q×üÄÑÒŽ ^ù|„ªÌI=o-’ Po®“x4B@T2ï‹€©B§=�Å·N‚�ôžt¢Ì}cÑALø£6‘ÚµZ ¼”šCNJlÔá•4Y)6tN!õlQÒgÇÆÍ øìñ("wÿT6 ï¹ *ï����IEND®B`‚IMAGE 353 ./arch/floor/inlayed/white-red-c-marble.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÚ::ñHH„„„ÿXXÿ[[ÿiiÿxx¡¡¡ÆÆÆçççÿÿÿÉpRK���ûIDATxÚÓK’à PP—šÏý<¶Ä›é…ÁÑKÇTÊ ‰R Y,¾æ¦òÿ€7Pµ¤¢\@]8P…b%¼AÀòØ€TåJ)’yEP«-nüK/à([€<�7äI¢/²œ©¨$ ®� ˜µ— ?à´”~ü_0§HÏtÏá·sé5�÷<úæ#zV¤@>Ñ|“bƒÜÍ%ð=êF¯Þëæ �ù½‰€WnÐä‰×‡¸€X`'@“ÍóÖæ¨ñ_CHëýÇÃ.‘o$ŠHÛó‡Ž�ðÓ+è1·íÞeGkþ¶™µ+AØå¡‰?ÐQ U‹,’¤����IEND®B`‚IMAGE 361 ./arch/floor/inlayed/white-red-c-marble.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÚ::ñHH„„„ÿXXÿ[[ÿiiÿxx¡¡¡ÆÆÆçççÿÿÿÉpRK��IDATxÚ’ë®!„ÊÈúþ|<\‚´iÒùƒÉ|ë�î`Àc `˜¼Öaâw�±Â€ðh€€‡5"â�;Ï�"pÝ7ˆ¦usZ &>úðG½�àðÈIì¾½ ¨xˆx-1ßôUÎÐ �D4øÊ€Ü„ùÔR>ímÎ3\>–ž|¢ºå“nŽ.¢¶©†~u»ÚÞ&¿ÂÌ(ÑÀ4Ÿ¨’ç©7é®x¯ªRêÄ×:æôöÕ•�Ä›Ëf#Zõ˜zê�¤|=y“¹KÖ ¢úˆþÿYð c¯•À ðd³4 "#þ�D• r` '¯����IEND®B`‚IMAGE 364 ./arch/floor/inlayed/white-red-c-marble.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÚ::ñHH„„„ÿXXÿ[[ÿiiÿxx¡¡¡ÆÆÆçççÿÿÿÉpRK��IDATxÚ…’Qn! C i€Îý\{0ÉVH­?†?Ølscøó<½ã“kÍÖÚøÀò˜óÐ!èÀ—À! àoà]ô¥„ùò%°Csö­£m  Jó0SÁÝt|²ˆP�â/€›ë{„VÉD 5µ–€Cè/õ~"ò±TóêÁ©Ü� ψH›'96T6Ü0Êgï@ÂA¥Ïà @IÀJ@÷S07効p‡_’‘-0Àô‹(�~ÆQ€6Ñfߨ2­£ýñ#òOeîqrxŒÅqòÝ»Ÿãp”]SeYù*!ùz¢i/>&9Ù¯ ظÍþîÛ #Ûd¸v����IEND®B`‚IMAGE 165 ./arch/wall/white/white_wall_0.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���lIDATHÇí±Ä@ é¿ÕAªÃm¬ƒ¿÷|jôsÑ¡!mB ì¦0#¨ç’¼¬¶xìŽ:0m@1Ùàk¢)š†÷Æô:2¾i..˜ðCûáþáÿd|iÈ_9_’äpÿ}^Ðݧ¾®&'¹2Ë����IEND®B`‚IMAGE 154 ./arch/wall/white/white_wall_1.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���aIDATH‰íÔ«À Ñé¿êH©ƒ66*qŸ•pâÌÍ“Àÿin†o/÷8@  ñN@C—nM)ûlîò¹¨äN –û€jîê¹èä —{€Nî¢ß'ÀÉs‘o&ÌžN����IEND®B`‚IMAGE 210 ./arch/wall/white/white_wall_2.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���™IDATHÇ͕٠€ D·ÿ¨ƒ6¶Ú@.q™Ñ™¿æ½àD?Ž%Ž×^Üñ܉û À«Fþüpn¼ åðåÐy†€<gÁ¼þxÃçLü’y Xö�kþ�ø;Àª¿@þ°î¿� ¿ þ�û �æÏ�…ÿ þPùw�î¯�ˆ?4þP6Æ“»f$á„ø$?ˆPgÔ����IEND®B`‚IMAGE 143 ./arch/wall/white/white_wall_3.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���VIDATHÇÕ̱� CÑì?¨k`gÁ„"œ’ÂÂûðg+΋òÞüz@ðóŽ`ùM�·|¸çz ÊÕ@k&W\®Ø\ð¹èä* µÿo ¼¾ž[\����IEND®B`‚IMAGE 132 ./arch/wall/white/white_wall_4.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���KIDATHÇíÌ»� BAú/”60qœó¨Á‘Äo»iük‚(Š.@f@@Om@-ÀÈL@È-À”€%O¶<8äÙ� (àh€¡zÞÌ}Aî����IEND®B`‚IMAGE 96 ./arch/wall/white/white_wall_5.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���'IDATHKc`@ÿŸa pCý¨£Œ0jÀ¨£Œ0Ü ��›©sîSçNŸ����IEND®B`‚IMAGE 147 ./arch/wall/white/white_wall_6.111 ‰PNG  ��� IHDR��� ��� ���szzô���ZIDATxÚíÒ1 � AÿÿÐ|Ca+  êå õN‘Vûm=zÇãf¹O�3| áˆ/Î^WWWWWWW/@vÞ%�œ`�‘ø¶Ù¶]õ����IEND®B`‚IMAGE 114 ./arch/wall/white/white_wall_7.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���9IDATHÇc`@ÿŸa pš ü CÒ À"3Ô  8 þ£ƒQF 5`Ô€‘l�Å…êà«\кúÏ—£NÄ����IEND®B`‚IMAGE 138 ./arch/wall/white/white_wall_8.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���QIDATH‰c`à?…ðÙJà 0€â0øO�Ù?€µ Píf�\û�€¤}@ @Ñ>� i§»Úél�ít5�«v*@Bñ9\�Á³¿Â����IEND®B`‚IMAGE 163 ./arch/wall/white/white_wall_9.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE���ÿÿÿæææ���\F£���tRNS�@æØf���EIDATx^}α À Ñ[ÑxÏKxž,24‘”«^yÀ3æ+KŒìë´Ì.ˆŠN… \ ø w>øoµ GÇ çúg����IEND®B`‚IMAGE 102 ./arch/wall/white/white_wall_A.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���-IDATHÇcd 0þShÀ³¡o�ÅaðÔ€QF 5`Ô�êªC¿r�¢50¥}â@����IEND®B`‚IMAGE 117 ./arch/wall/white/white_wall_B.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���<IDATH‰c`@ÿŸa pCý 0à?qn�:Äf)p@là†‚QF 5`Ô€ád�Å…êÐ�³fg¸ènE����IEND®B`‚IMAGE 168 ./arch/wall/white/white_wall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������G$æææÿÿÿ)¤���tRNS�@æØf���GIDATxÚ½ÍA�AkýÿÍn:‚KsíJ¦|X6@îwDÔåm™ô”€.]ºt èÐ% K@— Æö�˜¯@@tîIª€Q����IEND®B`‚IMAGE 173 ./arch/wall/white/white_wall_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE������G$æææÿÿÿ)¤���tRNS�@æØf���LIDATx^ѱ €@ CQVˆ<#DžÀûχà þý.¯p“m$_µû>jö€gËPûgãxCHˆ &AL ‚˜@ñÔ~ pÕ­K/klÅÞ����IEND®B`‚IMAGE 155 ./arch/wall/white/white_wall_E.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bIDATH‰ÝÕK� EÑî¡¶Q“ŠÏ#$>¡CîILù`©s’úæàô®v|2«pï> š¨€XÈjÈJÆjÎÚœôy<0æÑ�æwõ:`ð§Â¼ö_]0rà&Å{Ï[����IEND®B`‚IMAGE 164 ./arch/wall/white/white_wall_F.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���kIDATHÇÍ•Á � C÷ÿÚoØÍJ‹q¶:D Û�+iCW\ÅHÐMbþ�ðzW}DçÍ�¿—À2|�Ì$²ã` `üÌÀœ €5™ø�›Œl€Of.`× ™€s€šÉúƒn :B2yŸˆP6V����IEND®B`‚IMAGE 141 ./arch/wall/white/white_wall_bottom.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé���GIDATH‰íÌA � DQïЮa !Z­‚ügÖÿ‰ôz…Sÿk>ì 0`1¬Bˆ�žA@È å�°ååÀ‘—ü+0–—‚Aa½#¥����IEND®B`‚IMAGE 146 ./arch/wall/white/white_wall_left.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���sRGB�®Îé���LIDATHKíб� QöÔ5p�,$9 }†ú~AÄËåíod½Ë�ûYÖÊ�ÍÚ9 9 H9ˆ9È99X9�¸9�üMÔ¢Œ0‹·����IEND®B`‚IMAGE 179 ./arch/wall/white/white_wall_right.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������™™™³³³ÌÌÌæææÿÿÿúEÛµ���tRNS�@æØf���LIDATxÚÕÓ!€� A íýÿÉ®ãH8Û͸?ØÉ@w—î J@ (% ´€0FÀˆ€ˆ€ˆ€�XƒÙ‚X‚wüÞ Âå„Kú ����IEND®B`‚IMAGE 190 ./arch/wall/white/white_window_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������d3¿¿¿æææÓâ"õ���tRNS�@æØf���ZIDATxÚÝÓA �! CÑ&¶÷¿²Â¸L‘î\ýGp£ýq¾{Â- 5 @Øx–�Õ­®ª›K¾ð\Ðà•…ìzAƒêz¡Ùg û0f 8ø›°„,±púN©����IEND®B`‚IMAGE 204 ./arch/wall/white/white_window_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE������aaa‚B' R-¿¿¿æææÿÿÿƒž���tRNS�@æØf���bIDATxÚ½’A€0A¡þÿÇ&$f-¸ ³Ç™´è¸VÃ@À t5 ’ñ „ö@Éí@PxÞ³"(<‚ø‚Â#` {óKýÌ#ˆ=0 ²§$ŒÞCC´ßsHxk•����IEND®B`‚IMAGE 175 ./arch/armour/helmet/wig.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4V���ÿÿ�ÿ¥�º;še���tRNS�@æØf���QIDATxœc`  €ÐŒo—@«¡ ¶«•{h$„!›eHΜ Is€ŠLs š9lÛ^Q×§`ƒŸ00‚ bÜÂÀ±¨ „b?�n.…–©¯j����IEND®B`‚IMAGE 366 ./arch/monster/undead/wight.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTE�����{�1��c��ŒŒ�Î��ÿ�)ŒRBBBccc{{{„{Rç½÷ÿ��,YO��� tRNSÿÿÿÿÿÿÿÿÿÿÿÿ�=è"†���æIDATxÚ­ÓÁŽÃ0бg1´ÿÿ»›ÆUV•I÷²"/É D6Û¶íÐ6³q<îu’Vƒ)Æ“Oãý}¤S_–L¡»%¡¢&)À‘ìÅÀin!W ’n&÷ È5ºQDfÚ.ïiT*&d Qä‘H+hÊÖ€xu @WkÙ2ÏÌ— h¾·—ÀLcqNh9S÷O�C;ä,ýOИ‘å'#æ}ˆ%çÑ ßõ=ÒKpÝïî@¸Žb~U\+�óz-8ø[qêû¯GqKü'ø&Ô(]Mmw����IEND®B`‚IMAGE 347 ./arch/monster/undead/wight.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEç½÷��{�1��c��ŒŒ�Î��ÿ��s)R)ŒRBBBccc{{{Œ„Z���ÿ��£���tRNS�@æØf���ÙIDATxÚ½’An! mÚžÄàöþÿ·ÑÌN´RböCúT« ò‡~ÇÃ÷å‡ï >�¸¿Q¬Ùf, Pö1]Kw°t \U=Ï4O DW˜ðpK0Ø"„;±²-0¸†˜m¡ÂàP“ZÉþ #ˆì T¯J9 ×"MÍÎMhÃuÕ´ž3é zô2¬ˆŸÜJ?>ÕÔ.Ã/.ÃQÏXÿŽºÆ›¿š¸gQ­Àîó™›)÷bnø·7‰Žg¼ÞCƒÜ±î·Y½´#@y(ä_óìˆ*ãåך����IEND®B`‚IMAGE 365 ./arch/monster/undead/wight.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE�����{�1��c��ŒŒ�Î��ÿ�)ŒRBBBccc{{{Œ„RŒ„Zç½÷ÿ��S/oÅ���tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿ�EÀÜÈ���áIDATxÚ­ÓÁŽƒ0 ÐIfŒËôÿ?wSD[i1ÝËú€ÀzL¬(ÁþG`³mÛîm3›ëq¬“´œb>ø0ÞÏЧœùeHiNÝ $•("dÁÎd²N£)"e‚GnFÎ(AºhÝÈ!¯Àjw‘Ôļ[bÒ’Ø3½ÃVÅŽrteS“޹4_ K<›ˆ#¡ î¿ m•šžM¿Ù8«<r0#’%Ͻ( ³?B^‚Wp¾�ùz‹dï߆ë @ñÝ \ð‰íÎü~õ( ¨ÿ?Ž5+‘–“˜����IEND®B`‚IMAGE 347 ./arch/monster/undead/wight.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEç½÷��{�1��c��ŒŒ�Î��ÿ��s)R)ŒRBBBccc{{{Œ„Z���ÿ��£���tRNS�@æØf���ÙIDATxÚ½’An! mÚžÄàöþÿ·ÑÌN´RböCúT« ò‡~ÇÃ÷å‡ï >�¸¿Q¬Ùf, Pö1]Kw°t \U=Ï4O DW˜ðpK0Ø"„;±²-0¸†˜m¡ÂàP“ZÉþ #ˆì T¯J9 ×"MÍÎMhÃuÕ´ž3é zô2¬ˆŸÜJ?>ÕÔ.Ã/.ÃQÏXÿŽºÆ›¿š¸gQ­Àîó™›)÷bnø·7‰Žg¼ÞCƒÜ±î·Y½´#@y(ä_óìˆ*ãåך����IEND®B`‚IMAGE 267 ./arch/wall/wall/window_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÁq8G$ R-���d3‚B')`%©���tRNS�@æØf���¤IDATxÚ}’A„0 É6øÿOÆIº= ìáÑt\qýWþî¼Á‡‰y½WÂL­ø8€ÖÇÀ0ÅÀRò�`Zd†n1€H˜À¶à'è¨Ô’—‘ì ÁÔ’uB8É&8É&8É&˜«Î!0ÙBHrWKH‚o+É +‰À Àü 0WÝ�wÕ p- àZ @J€–l€“ÀKò"Éæm†����IEND®B`‚IMAGE 227 ./arch/wall/wall/window_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÁq8 R-���d3‚B'¿¿¿Ô]ì���tRNS�@æØf���|IDATxÚ½’Ñ Å0CÕ˜ûÿŸ<ºRÇ-%>m‘¼Ôƒ„Pû@hddPÙ"œÊæî¡ÜgO*÷@³ÀA(?û /à´ÏÔÛˆy pÚç èI & Tà6ŽUÔÜû.ÜVà®™ zÀAã½zPþê?(÷Ÿö}]òØ ÀâïÌQ����IEND®B`‚IMAGE 554 ./arch/construct/window/window_2.111 ‰PNG  ��� IHDR���@���`���š„Ú���$PLTE���ìììÄÄÄwwwO+++jjjÚÚÚtKKKˆˆˆYYY[U��ÁIDATxÚí•nƒ0 D‡@þÿw!1.š xtJ%zµ‰¹GL ¡ë ™#Ev)ˆ�þ#€_ ˆ�D—?ˆï !Ò0 _Ð7 4FBØhµ!iͤ”&hÆ¡¡�¶…‰­�¨Ø(„ÕÅ0â2/@lHÙÚÂ\.Р�-À¼Ú0À.X�LÀÑÂðÐç3-@Ï[è ˜úŽ—Qƒ°€)0š¢Ñ®€h n»r¹…K«�¥Þ€þïÂ{~Pœ[ÛÝéê¾zmïÇ-¤ ¥ÞËoáx‡e¼ûË4ý ÿÞ˜-ô¼óë|—jú`L.�+�Šä’Ú4Ë.=ªÈ)µ…¤Kb+€À"L[Ž=¢ä!nŠy/…Äfˆ¡zJRÑÑc�-£b¯ˆ"g�”³ú‘×2: .äR; @¾õ ‡�}KŠDâßÀ&¿T äx\ü@ܼÏ+@f 7AØ´ªM' ÜådÐZÕ†dŽrÜHJí1Šá–a(›�¹ µûÕˆÐbûS±×+ŶXt©Q®I‹´F®‰Ø¶�(k¬![à ¸¬n5‚ü{¦ç����IEND®B`‚IMAGE 357 ./arch/construct/window/window_3.111 ‰PNG  ��� IHDR��� ���`���Kü€ª���'PLTE���wwwÄÄÄìììO+++jjjÚÚÚtKKKˆˆˆYYYÿÿÿyÃÉú���ùIDATxÚÕ•Û D—–Ê¥þÿ÷ºÝ-¥`Ó‰ƒž§“ÈJQ‚˜é–¹‡pkÌ3A¬µ óXr†4qcòÞ&e4qã™[!| ĸ·‡Uˆ D( ^�lñÂ÷Æ”%z¡‹p=¦,ÔEÅfϦ‚…¢ƒ[€)‚oÚ좂 ¯ÞhÁ£{á›ïEþ/´ŽÉ€-† íc8¬1ÿY Ø¢EèwÜã^ZKÈ ˆd5ôtlr”£&œKm“ HûWµ']VRŽšT˜ŽöwAäC’6©üA‡»sºüÌ)³·UTò ¹SÂâ.I›”3Ù����IEND®B`‚IMAGE 481 ./arch/construct/window/window_4.111 ‰PNG  ��� IHDR���@���`���š„Ú���'PLTE���ìììÄÄÄwwwO+++jjjÚÚÚtKKKˆˆˆYYYÿÿÿ%¤2|��uIDATxÚ핊„0 „ÓÔ»V½÷Þ› —(mÁœ+t`™1êWÌ)²Ka�ÿÀŸD�\„þæ>¡¢†aø‚¾ñ3£ ¶/HÇÖerÎ#4ág&�ؾȎ@Bb@:Åp™ cŒ¤+Lr™¬À¤c˜j¢Ô*J�þ€c…Ðô?ÆéÈ P{…¾€±?àð1Â*€ºR«(©*Jõ¦ˆUQª7¬à8(÷ôîùBq~ÚžÈg¿ ¹÷ç½½B~9÷>Fèø /àÇøô‡i¼ÐÿÛ˜+ôÜùq~ÊK5�Ö[Ù`@H.Ù˜¥Ù¥-`9ecE@º¤c�ž!rª›#ý$a[€kØ7º±®°¶)mƒ¸…Ý%:¦�£Z û¦ˆÄQÜ‚xµi·@õ¦X-f.¡h^À…�B€[碹ä>Xo/®añj£cöf˜#%hÄ-ì.ѱӀÓú‰ë¢<<B����IEND®B`‚IMAGE 284 ./arch/construct/window/window_arcade_1.111 ‰PNG  ��� IHDR���@���€���Œ_ŸX���$PLTE���&&&8�???RRRT�\\\kkkwww„1�“““¦PÌ���³IDATxÚíØÁ €á Ã9}ÿ÷U ŽéÒ]Äÿ?vá;&“§3�����€6 §jë‰fš¥`½ÄœÜêd z˜Ï���̼¸ƒ. Ê€j�lºT µ u}À¸x ����ìö���À.–{]â§ÃphAÊi# Þfø%êîáì@TÖÙ¬Ub`ù.ŠqV€E}èÌ�þˆQŒ³Äcb]ó˜œùooI º¬3����IEND®B`‚IMAGE 320 ./arch/spell/Cone/windstorm.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE÷µ÷œÎÿBJÆÿÿÿ @§t���tRNS�@æØf���âIDATxÚRAÄ0ªøÿ?׈csi'îlmž_>¯‰oˆ\´e*²Ϧu‹¼åÓ JÈ<ç# "J)-^G¨= îÁˆàˆž‘ÍZ¤û§¼ÍcT¨=¤[ùEQÁ–Áè1F ‹¾„dÖæœþ¿Ðc°³[’û(@AR»ÔFW}òWfñP(ˆv™`9¢WÝžÐßU…Æí˜Ù¦ETo`¨ûð 'þ*1ššWŽ".Îõ&U<¯œ*„Z…—V‚7oxpí¥c¬Þ\ØÖ¯ç›5¤¤UMR����IEND®B`‚IMAGE 301 ./arch/spell/Cone/windstorm.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷µ÷œÎÿBJÆÿÿÿ @§t���tRNS�@æØf���ÏIDATÁ!NÃP�àÉx]:_Ü é²‚ÃŠA PdrAL/;Ácbz!eA *‘nÁqø>�‚ƒ�³ÝWÈmõ >?—uŒ…#Ýdµ–tN¹Éºº™b¿=¹›Ñ÷÷³éÙ^ì¶Ýâ8¦a²†eûö½Î™´¬4R›n>ò]£]¶o«fŠÔãæ/Sªn¾i’˾ŸÌ™Øm«§Ç!FÜÕõíkÅê4/ÄãlìΊøy/ñt}~ñ £«—ç%Ê—ŒjM@”©$ü‰?+½%ÌTà����IEND®B`‚IMAGE 310 ./arch/spell/Cone/windstorm.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE÷µ÷œÎÿBJÆÿÿÿ @§t���tRNS�@æØf���ØIDATÁ=Jô@��Ðça´•)I0X©ÅÖ‹]jQRæóvcl´ÄŸ­,"ˆ§°¼ÁÞÀk|ï€L@¦›²! ºõ±%ãñ³yÑŸ^vã oõÎ³ŠøØ~†’3!œ×SB­¹M±í»)¯8<|Ù•bÖ¶osSIb|>ÊOCúw—(í<^­²pO–R®m„;ÃoòpS˜‡ïÍÍLXÏý^ÉêèË~Lê¿öû§O[¡í†Ñ˜¨›y±LǶ ¥{½Ÿ&‚樺ÖFæ°dÀ§2¿uøžJ����IEND®B`‚IMAGE 192 ./arch/food/wine.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�ÿ�Áq8�O� R-���ï§_ÿ×��2�éN���tRNS�@æØf���SIDATxÚÝAÀ0 ºffùÿ‹—ÀiÒT®¶@¬sïn/ЄÂaÚ tàÐU®`xa&Ø‚ú¶@äåR.ð¤ø‘?Ãò Àúc^q[I ����IEND®B`‚IMAGE 182 ./arch/food/winebottle_empty.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�� R-Áq8�ÿ�ï§_ÿ×����î^3)���tRNS�@æØf���OIDATxÚÝŒ1€@ Ãüÿ'£NLxAHˆ é`7ùoÀ9ûŽ › p!fJß3pá+(Ÿë»=Z ÷ÚGS>pÜ €|1'ü ;™¦õ����IEND®B`‚IMAGE 232 ./arch/monster/angel/wingedhalo.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���0PLTEÆÞ÷ÖÖÖÞÞÞçççïç�ïçïï1ïï9ïïRïïcïï{ïïŒïïï÷ï½÷÷Ö÷÷ÞA7bÎ���tRNS�@æØf���fIDAT(‘c` €ç :ÿÌ3˜:`0‹‹‹Ã#›P,@1‡3Æ6P£Î°€L6`[ÎÖ9RqÛAbÄã3 .÷_Cd€døtn¨ehîCãCÕ A��Ç$d‰¡·����IEND®B`‚IMAGE 293 ./arch/monster/elemental/witch_air.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ(((�fˆOÿðÿAïÿeúÿ¡þÿâÙÿÿÿÿ���úÖL­���tRNS�@æØf���²IDATxÚµ‘A1µq×ÿpSU=í’J•:¹ 1Q?¹³Ö‹ÙKÈÂáá4$D1pE–¦ vQ"ä©# *clp$µ¬c"͆cä„DÏ %‰Ê)ŸÝdƒ5壹j­ãÖ7Ô¸¿'Xa6€r_§8›kïf:¢ê’G-o¨ßyyÃUE|¾qEhjù‘Å Û€PØyqë]bC±Å¿lÌÂ~€QñžMæáf p����IEND®B`‚IMAGE 302 ./arch/monster/elemental/witch_air.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ(((�fˆOÿðÿAïÿeúÿ¡þÿâÙÿÿÿÿ���úÖL­���tRNS�@æØf���»IDATxÚ•A 1 “X’ýÿÁM{(”]gé@⃄Ý~ñ~±ÜJ¬ˆµBv%1±ñ}¼šb@É(+ì¡P ZÉ2!•‚)rçG¡WÙš¶™E>=$€ÌôýH %ÜäÔ„2Ád¬ërÄþ¡(`^Ï�H t+ècV”Âî员ê{À¥ zê–’È·¨B (—ºb|j@<‚ÔN`ð(Cá“ Ç> ãQ€ØŽ�ý,hÿò}2ëZ/â����IEND®B`‚IMAGE 297 ./arch/monster/chaos/witch_chaos.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�ÿ�m}uÿ(¦�ú��;���������ÿÿÿÚ«N±���tRNS�@æØf���¹IDATxÚ•AjD1 C[’­û_¸éÐÍ0ßú ñBŒµÞñyÙ^#VfwÊž#?ǽ”s\a‡R‰\#!UASäɯž²nÛ¬!o‡U~n€” QÂC¾I5T³?#Î@Ÿ‚ã5�’½6EÀèI€JXÁKbiŸ‚è3¦.%‘¿¢¢üwÔÆkà ˆ/‚ ­^#”¾ qÝ Ð7!¾ ×`ßë¿ü�ù£O2!yÈ����IEND®B`‚IMAGE 273 ./arch/monster/chaos/witch_chaos.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÚ$�i^[�Šâ€� �–Ô����ëìíŸHå„���tRNS�@æØf���§IDATxÚµ‘AŠ1 m·Túÿ·aÙS·30°‚äR²”úBÝ'�vêÑ•eZÀëZ.dìa3$c°Èæ¨Èt­†TRÙKˆÑŽ ³0šÞò 6òlùÂB×V³,Þß)OÅHšðÜ’Æ÷ îTÍ<2ÄÜ<‚_¢~txŸ±þ¾Áï-R«#j—Ð1 @Ò‘ûÈ3æÄ«­:*"tœ÷è¼ šúý�ÇS;r^¹T����IEND®B`‚IMAGE 328 ./arch/monster/elemental/witch_earth.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿC4�){}LŸ`�±c�Êo?Ü{ÿ9���‡a1���tRNS�@æØf���ÕIDATxÚ’ÁÃ0 BcöÌÿðšëZ÷0¤ÈžŒ³þPÄ›ëý¹ôê¸=¸Ý½Á÷л©’Ð`CUb{"–©ŠŽ ð Uyy.ÁJzjVÉ3€ºü$bÊW¦”œÖl2u=æs— ЬCôC[INáÖ@¤lg*l·]ùA¿ÒÞ[`Ü:tJÉkï =,¹™Já ‹5”ÈSôT%“k+iˆSÏÝ%ó3äeŽ+ÄC¥'ÀÄE11øtJ°à3Pð3`âÌ b½)„õ*óç _…l75­����IEND®B`‚IMAGE 348 ./arch/monster/elemental/witch_earth.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿC4�){}LŸ`�±c�Êo?Üsÿ5{ÿ9���Ó׬���tRNS�@æØf���æIDATxÚ•’AŽÅ0C ØîßqÛÕ臑ÆR²¨_›æú­ÖŠ­}R…ôˆXz8ípd1Æ+º=#"&yf>{ÎÉ$׺þl,¹‚5ø«} «ú˜_V&2ïýà›ì…»�‹ñÝÁ Û7�0ïíF}–M<†3&Æ:¶ÐB–:}”“•v5‡¿ù6u´qÊI\<†"XšÒv?ø$Hçv{ 2 2 Õ3{ò3M‡Çè…§i|ŽþSïpœÑ6ò1€s†&ñì!úìšô�/7«M]þ§Úû �1C����IEND®B`‚IMAGE 302 ./arch/monster/elemental/witch_fire.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�ÿ�×××ÿ™w°æ�þ�¾�š�^�&����ÿÿ�Å…,Ž���tRNS�@æØf���»IDATxÚ•A 1 “X’ýÿÁM{(”]gé@⃄Ý~ñ~±ÜJ¬ˆµBv%1±ñ}¼šb@É(+ì¡P ZÉ2!•‚)rçG¡WÙš¶™E>=$€ÌôýH %ÜäÔ„2Ád¬ërÄþ¡(`^Ï�H t+ècV”Âî员ê{À¥ zê–’È·¨B (—ºb|j@<‚ÔN`ð(Cá“ Ç> ãQ€ØŽ�ý,hÿò}2ëZ/â����IEND®B`‚IMAGE 293 ./arch/monster/elemental/witch_fire.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�ÿ�×××ÿ™w°æ�þ�¾�š�^�&����ÿÿ�Å…,Ž���tRNS�@æØf���²IDATxÚµ‘A1µq×ÿpSU=í’J•:¹ 1Q?¹³Ö‹ÙKÈÂáá4$D1pE–¦ vQ"ä©# *clp$µ¬c"͆cä„DÏ %‰Ê)ŸÝdƒ5壹j­ãÖ7Ô¸¿'Xa6€r_§8›kïf:¢ê’G-o¨ßyyÃUE|¾qEhjù‘Å Û€PØyqë]bC±Å¿lÌÂ~€QñžMæáf p����IEND®B`‚IMAGE 401 ./arch/monster/elemental/witch_water.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTEÿ�ÿ�ÿÿAGns‰¥¥¿¿+�J1�Z���üÚ¤`���tRNS�@æØf��IDATxÚ•RQ®!S  ½ÿŸŒf7Ëøóˆ”ê´ŸàÏ¡³½‚½w®5'{FÅð@¦ª¬,$e2`zX«5…;ô§˜û|(ÅgLï,½‘ü"£tx†zn eë¬óñôI8„,crcÆ ‘à„¾¦�Ü̉ÞGÒ,óˆØÛI"«Ì# iÃKA©‹•©‘<™­.o—Ìa¦)FEª‡+Åg™‘±�»¡ÚÆ&�Ü%qLĦýZù˜è‹ab{Éo:UÕ=½™Hžo{¨À•6÷ë–'Y¬ 8Õ+¤©Cc À&ì÷^“ÒFï×zµlÇ#ò•é² éë…�Úd´¦æ÷•°= Û=Hnª(±þŒ ÌF¼?����IEND®B`‚IMAGE 393 ./arch/monster/elemental/witch_water.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTEÿ�ÿ�ÿÿAGns‰¥¥¿¿+�J1�ZÆÆÆ���é9á���tRNS�@æØf��IDATxÚ•R‹nÄ #'×ùÿÿw¸ÕÔcG'-@ÔÆ8„ñœ©A›i´¿6ÓÅx†-iOLtáÒàNbD}¤µZa^èÞâB%ìèã ‡ð$àU-ȸ­‚X.ŒÈî*p¾#È`¡±8¸ïÍQTV˜¿ýæû@jÉjŒWºç.ñŒ¾øŸd®&Œâ†i$Dèê"Óœá÷v}Vá ×Y¤ÛÒq^.ÊÌçmkq!0s"R°ß¨:­DxÕŒµ¨d ]¨-Íà9øY�`§‰ÝsjœAÜ< Òp­øõ!ÐΊ±2} ËGBdðj÷-1̸?©9ó1X9þße ¤e&µ€����IEND®B`‚IMAGE 163 ./arch/armour/helmet/wiz_hat.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿ�@@@¿¿¿¬I/–���tRNS�@æØf���EIDATxœc` 0áfp5 3¸a ­0Æt‘U+ ŒY3 Œ¥Pƒ—FA+ã Œu« 6¼Z1škÕ.ƒiÕ*tÛI�µ¦ß����IEND®B`‚IMAGE 160 ./arch/armour/helmet/wiz_hat.112 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿ�@@@¿¿¿¬I/–���tRNS�@æØf���BIDATxœc` 0áfp5àdh/€2´` =cÕ (cÖ (ciÔà¥QPƪ8cÔàU¯!Fs­[Õ€*…°”t��Œ&ËÏ%9����IEND®B`‚IMAGE 160 ./arch/armour/helmet/wiz_hat.113 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4Vÿÿ�@@@¿¿¿¬I/–���tRNS�@æØf���BIDATxœc` 0áfp5@Ü è"Z p2V¯€2fÍ€2–F@ ^e¼Šƒ2V­‚¼zÄh®UPÓêUè–’�ŽAŦû­����IEND®B`‚IMAGE 236 ./arch/player/class/Wizardry/wizard.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷cB{��µ!!Þ¥!���ÿ��ÿ„sÿÖ�±Cg‹���tRNS�@æØf���IDATxÚÍ’1€0 s.ÿ1‚¨b!©”Å'Çi»ü³€NZ÷[·b?ކi¬¹ºìÑ�âj’߇ Aâ@UЬ§:íL³Â2Ñ!N¸ån0(é°m*°íh€p�T â-áô ’ÃE¨0s&ƒçÛ~_'!glã*����IEND®B`‚IMAGE 245 ./arch/player/class/Wizardry/wizard.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷{��µ!!Þ¥!���÷çŒÿ��ÿ„sÿÖ�^e���tRNS�@æØf���ˆIDATxÚÕ’Áƒ m˜þÿ‹í^x.^m8Î6‘ã/‹^[#³&ñ3¶‚Œ'Å<'t,ŒZ‹»ŸHi`F¤.lg„a ÑêßvÃ?Ñ-´ëÆ"ˆoç¬måt>"ÜÐ|Bu À•Àna^Jé³°ÔdLùðœWÖ ñ„§Z0�'����IEND®B`‚IMAGE 249 ./arch/player/class/Wizardry/wizard.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷cB{��„¥ÿµ!!Þ¥!���ÿ��ÿ„söY—���tRNS�@æØf���ŒIDATxÚÍ‘11}ÎzÈÿ_VW¸*RÖ–(f�É^? <‚‘k@ñž ¤4˜8ÎÄ_yúýó�4 ÛP+„A7s×’ß¶\KŽDò]NÀ9EBDÕ×{³Ò,öû*îõ×·`.E†î‘- ^À<As A¤3|¤±…Þp?« ÎúË|�Y@0Ò(����IEND®B`‚IMAGE 231 ./arch/player/class/Wizardry/wizard.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷{��„¥ÿµ!!Þ¥!���ÿ��ÿ„s¸«uG���tRNS�@æØf���}IDATxÚÍ’A À0 ÃÚ9Êþÿã…ÐcãóÔ£ŒM ëŸ�Þ+ŒÈ7“›:<Ê÷2ƒBBºú!•¿j`¾�õ‚õÒ ÑX¡"ëM3€XfçE/`üÞÚSÁ9МؾÀ ´ ¤ ¨ho¤Æ+åÌ(üo…Ò¿ä(wfÖE����IEND®B`‚IMAGE 221 ./arch/player/class/Wizardry/wizard_blue.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷�Æcsÿµ½ÿÞ¥!���ÿÖ�zþí���tRNS�@æØf���vIDATxÚÍ’1€0 ±áøÿ“Él³’JY|rœ¶Ç? ˆÒ5ºˆë¾8M°æí²Ï�ˆ·I 2 ´E�М™ íˆBX¦:Ô #Ç%X¢è@Mgªü `ÛÕ�¹:àhÔ[Âí$—%– õ·ÃñËz�?Ïö, ‚����IEND®B`‚IMAGE 232 ./arch/player/class/Wizardry/wizard_blue.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷�Æcsÿµ½ÿÞ¥!���÷çŒÿÖ�èX¼���tRNS�@æØf���~IDATxÚÕ’1Ä cÄÿÿød‰2&mnòh±®ÿ,RGÀæ Kö8!Þ�º]Ðu”%¨zD1ÛýÈÁ&ÅÀ¶Èì]3ÂŽ`ÓXN¸×£Ù™õ¢dg]l›œ( P€o Îà8 ^)r€NH†·ßüÉúÈFkÝëÃ����IEND®B`‚IMAGE 241 ./arch/player/class/Wizardry/wizard_blue.151 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE÷Æ÷�ÆcBcsÿµ½ÿ΄9Þ¥!���&Û«���tRNS�@æØf���‡IDATx^­1 ÃP C³ýYxÐ^(M 9@ÏÐ=SºÚªëwÌ×'y¹tTF¬oW/²%£y{¸À»?²šœA42jè�& hr2† ÖdH{gu ܉úmçÑF®Ëw;ˆç\^Àp8�Ò"£™QÖ=#ÊˇüãÒråü‰v õÉÀðñ����IEND®B`‚IMAGE 224 ./arch/player/class/Wizardry/wizard_blue.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE÷Æ÷�Æcsÿ¥R)µ½ÿÞ¥!���û7ì���tRNS�@æØf���yIDATxÚÍ’AÀ ZöÿO.ƒ%g×c0™ˆÏ�^Wþ~|ç /Š“sJ8g‰ú ’B Ì P'X½#æ 2UDi` “€ÓE'`tša`4[/¬ ë@˜ýJã¶Ìž¦D±2ÀþÖ’¯ä«ÕÓfj����IEND®B`‚IMAGE 236 ./arch/player/class/Wizardry/wizard_green.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷�c�ç!¥1cBsÿ„Þ¥!���ÿÖ�ÀYâ���tRNS�@æØf���IDATxÚÍ’1€0 ÁŽÿ¿AT±4©”Å'Çi»ü³€NÚŽG—â8ÏvÑXswK{˜»ÙšÁ†ÌÀUЬç:í ±BÑ!Nxän08é°®:¤h€P�\ â-¡ô ¶ÂE¸0r&ƒ÷Û~_—°¢Èðb����IEND®B`‚IMAGE 245 ./arch/player/class/Wizardry/wizard_green.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷�c�ç!¥1sÿ„Þ¥!���÷çŒÿÖ�D^¾���tRNS�@æØf���ˆIDATxÚÕ’Áƒ m#ÿÿÅv/<¯m8Î6‘ã/‹^[#¢žù5¶‚Œ7Å<'u,ÌRª»Ÿ i`F¤.lg„a Ãêg{àŸìÚucÄÇ·sÖ¶r:žh >¡:FàN`·0/¥ô¿YØ j2¦|yÎÇOÖ{4ÆM–Õ����IEND®B`‚IMAGE 249 ./arch/player/class/Wizardry/wizard_green.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷�c�ç!¥1cBsÿ„„¥ÿÞ¥!���çÇ„���tRNS�@æØf���ŒIDATxÚÍ‘11möÏÿ_VW¸*RÖ–(f�É^? <‚‘k@ñš ¤4˜8ÎÄßyúýó�4 ÛP+„A7s×’ß¶\KŽDò]NÀ9EBDÕ×{³Ò,öû*îõ×·`.E†î‘- ^À<As A¤3|¤±…Þp?« ÎúË|�\®Œµ‚����IEND®B`‚IMAGE 232 ./arch/player/class/Wizardry/wizard_green.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷�c�ç!¥1sÿ„„¥ÿÞ¥!���÷T ’���tRNS�@æØf���~IDATxÚÍ’A À0 ÃÖx‹þÿã…ÐÛŸ«e ½Îð^`üCÜü©Í£¸osJˆBd¢~Hí?$…˜ ¾`½4h4dªˆzS`@\æ΋¾€ñkiM{ ™Ø¾À ° „ ¨ho„†•å̈Nþ·Bé#yœÀ7`ê����IEND®B`‚IMAGE 240 ./arch/player/class/Wizardry/wizard_purple.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷÷J�kcBŒ�Æ���Æ1ÿÞ¥!ç¥ÿÿÖ�¢'Ð���tRNS�@æØf���ƒIDATxÚÍ“A„0ÕâþÿÅ Î5°7kñØ]Hbyügš1èZâ'³7Ög=7h˜j ÜF¨dl…ªfÆØ T$i¤{Å<ÄŒ¡@Ø ïÀµÐsa5>Fà3 ïÖ¤¿€‰]ˆ Ô,ˆ·ÔHŸ,b q/h§)0Ä{ùÈbÙÁöņ����IEND®B`‚IMAGE 261 ./arch/player/class/Wizardry/wizard_purple.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷÷J�kcBŒ�Æ���Æ1ÿÞ¥!ç¥ÿ÷çŒÿÖ�.²Ð=���tRNS�@æØf���•IDATxÚÍ“AC!D?­÷¿pÛÍÐeKâê=a$ñúA‘üf¨WhšF6rÃØÔ atܰ–‡ÁŽ#°æ^Äœã,HŒÇ‘Ó9 ^,ÕÒ Ä‚g�å>×Ò"¤¹î)“çÝ=‰ëΙ|G é�~ê„4ç*~”[xPo \ Ùd¿²ýŽÿ²^› ì…Nùd����IEND®B`‚IMAGE 256 ./arch/player/class/Wizardry/wizard_purple.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷÷J�kcB„¥ÿŒ�Æ���Æ1ÿÞ¥!ç¥ÿÑ®V¼���tRNS�@æØf���“IDATxÚÍ“1Ã0 «„§ôÿ/.‰Œµœ¥C¹h¸“Èðë÷žŒæIØÐï† /Ù¨Ñ0—£FQ F'çÜïÌœ…ŽÓ¢™&žºä÷„Rê’›b^Ë $×…Ú±j‡ã9’ÍÅ~Èò{ýñ-„Kí09šÂ{#È10´ÍCG˜ô³ý1Æ™jž­%, ����IEND®B`‚IMAGE 245 ./arch/player/class/Wizardry/wizard_purple.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE½÷÷J�k„¥ÿŒ�Æ���Æ1ÿÞ¥!ç¥ÿZ¾ÞÌ���tRNS�@æØf���‹IDATxÚÍ“IACl˜ÿÿ8,¹¥MN#Mõ±,‘úuLV ¸S{+É4+¯W¼3áN•0òW#�‚ÍÉGýœ+4ú 3Ä«Ÿ²…¾bϧßDy}§Íƒ½‹7ƒÉSp©Ø>á6€ðu} i¿$è•Q-ÊM ÁìøóR?’Ôò ¥Æ‹É����IEND®B`‚IMAGE 962 ./arch/construct/tower/wizard_tower.x11 ‰PNG  ��� IHDR��� ���@���LP…œ���êPLTE������BBB9ÿÿ{{{µµµÖZBZZZsss999„„„œ�½½½)))ÞcJÿŒsÿ”„¥¥¥­­­œR)¥)!!!JJJµ9!„�ÆJ1ÎJ9ÎR9ÖRBŒŒŒ”�çkRÿ„kcccœ!ÿœŒÿŒ{½B)RRRœ{�c1ÞZJ­)­1ïsZ÷sc÷{cµB!”!�ÿœ„”””ÿ¥”ÿ­¥c�k�111¥1½9!çcRB�½J)­)ÆB1ÿ{kŒ�ÎJ1R�J�ÎZ9JBB”)�ÖcBÿ”{œ)ôZ’è���tRNS�@æØf��†IDATx^ݔՎ#A Es]ÐŒaæaæEføÿßYWug”QJiב:çèÚ円£ÄÖÅ?p!žžI[‚oÏ�¸8[õè÷á6!øöúζÿ¼Á½ óþû¯Üxwôç|<¿ØwO‰þ‹ÙMo¨¯î€³vo¬ßæyÖ†‹E̳‹ü÷§qìpÖ>j=_÷…†Sè4ëû"Ã.gá#óùÞz}¿—Áµ¢h¢3n°..Gqc§�œ²ùU±^ç4³ýÉÕÞm‘_ºÄAŠèìb‘/t¯íDi¿fÃ(rñà€ü®ïÃVÃÐõeØl–¾›w")C•$¥[xEäÉ0œ*å?å•î`@©Âöc‹STue¨¦êïšG¹õ3"%0ÂlÏ‚yV ùvDÕ5<:Í­�dV@ÐåÒLXr�éZ 䪜¨Ðrm!�T;ðåt:Mì@²Þ%¤€ªozõ aÿ6¦( ÀqJf •G€ («�¥\Ëej¸—p€Ï%K°caJ«#JÂ’¯ï–@])Ÿ¡iwPÕÖÓ\Ohv0UMr¼N :f JÙl#+ æ-›�$ÉV€õ^~îln£’xšÎœ…/‡»æÇçäèÃjÅ34攎— @tØ+r ªÚp Vc=¡´›Ò£Pic­uV<ãU-lºX¼‡•¾}È&#ì|ò˜b"Hë‰^í&€yw—Ò1G¹> É\qIÏ)pƒð.F,…†C Øc~Ò:ABN@q«ÕŠ%sgN˜'v÷hq²Ü­p�óZp+`üÿÖ_),F¢úô3����IEND®B`‚IMAGE 937 ./arch/construct/tower/wizard_tower.x12 ‰PNG  ��� IHDR��� ���@���LP…œ���çPLTE������BBB9ÿÿ{{{µµµÖZBZZZsss)))„„„999½½½ÞcJÿŒsÿ”„­­­JJJÖRBœ!œR)¥)¥¥¥µ9!!!!ÆJ1ÎJ9ÎR9cccŒŒŒ”�çkRÿ„k”””ÿŒ{œ�„�{�œRRRc1ÞZJ­)k�ïsZ÷{c”!�µB!½B)ÿœ„ÿœŒÿ­¥JBB111ÎZ9­1R�ÖcBB�œ)çcRJ�½9!÷sc”)�½J)¥1ÆB1ÿ”{c�ÎJ1­)ÿ¥”Œ�[&æ·���tRNS�@æØf��pIDATx^Õ’ÕŽÝJE³«É™a˜)Ìœ{ÿÿ{Rݶ5òL+yˆ)õXki»¼í'ÿü�¿á{{ø%÷ùŠác¼„ùx5q‚ÏÀÞå§ç¯F,ø ˆ×ûo^ÌVç×pºæqby9šè‹µFø@Â7ÑÍôÛ<ÏúΨH-àåR0ÏÎó¯bf,x(,û6oµ.D¡Q‚†¥˜jY©Èï)D%|a¾ÚÞÞŠmæk »ëŽÎÖÅ·âÃÔ<®Àé4[]œÐṉ̃¼î\loŠÜöóÈ€I"ìNÏ×ùZúxl`Hó~’Mv;Ï×FrHa; aÇÃm@;”q«5ý|œI«4ø…gDŒã…R!<ÿ'0$û�(uHp‹šŸ  H¨-c@µB”ëºÝÜùÃñ¡=©’Oa¹EųJH(t'ª6ìú$‡ãÈœ€¤Mmæ|á€x­+g(;°8UqåZÃq  ì ”‹Å"u¯P¯0W•,â z…zíÌ8ŠÈ–€X¸5s' 6’g>,Ryä@¡*‘©(*_Q漸ÿZ¨&â[®ÏÇvÚªEðýñ-A)îÀÇ ·l¦¾�œý?®?£’¾€³ïc×s_�öt»|C+nIo�°;èO‰é�†Ý™îPÔŽÈ/�3­uVܳ.<<I¸‡®¾¹Ë:S_€!CiÝÑþ�VäfÑQ’Ô\4. É\ñÈ� ^ †(Þ™ªš72óãÞ1Rª…æ @¦×ëé pD8fž¨€ài?¡Q¢°s¯p�óf‚¥FÛM\R6üS³?á,ü­ù ò )‘ ³����IEND®B`‚IMAGE 959 ./arch/construct/tower/wizard_tower.x13 ‰PNG  ��� IHDR��� ���@���LP…œ���êPLTE������BBB{{{µµµÖZBJJJZZZsss999„„„9ÿÿ½½½)))ÞcJÿŒsÿ”„ÖRBœ!œR)¥)¥¥¥­­­µ9!!!!„�ÆJ1ÎJ9ÎR9œ�cccŒŒŒçkRÿ„k”�ÿŒ{”””ÿœŒRRRc1ÞZJ­)­1ïsZ÷sc÷{c”!�µB!ÿœ„½B)ÿ¥”ÿ­¥œ{�JBB111c�½9!çcRB�½J)­)ÆB1ÿ{kJ�ÎJ1k�ÿ”{œ)”)�R�ÖcB¥1Œ�ÎZ9÷9†Í���tRNS�@æØf��ƒIDATx^•å’ä0 „·e;̰̃ÌtÈ ïÿ:''Ùš™Šï²ú©þÒ’Û“ÌÁó*¨‚g u@K`töTôÁ�ÿÕ?ýºÆ¿Àú~=, z`põîÏÏÞØ#€·ßÎÆóóÛÝ[ƒWË«ÞP].Ô°Oàղݫ7I·a¸ üXNXÏ“¯Ç– X¶Ï†JÍé]Ê3ª…eo¤Ø ÝÜ¥±øÀú|µÙÜ­ÌÀä6S1ؤ#Ë §£x~™n6If4˜by›]®nÒä"CõŽay&§ç‹d¡zmTnhE–õz'CLðɵ]y€Ù®ð»ÝŽËz@ß#—aØÙì/‰áû3)Ý}ƒOÐ å!!o”8Aaà‘-|@v]lÛ§›ä|£¨WD(Å –°\¡L?.Ü|EiC·O’rrœðl ô†6à¶*B£È@Ë¡ômm…\�Š \1›ÍÂüe› ¬Ëpf¾“aÛÎÉ8ŠH‡�_:èvPn :kÁ5FZwB6p¹DG!¬j€¢âˆ‚0å† ”ׄ²"›SÎ3(jç"Ë u3Ù%T?oh4ú:)‹ *¯³Å)k„áŽAðd€/¿ûO×(ÅŽ¾>?ôuZ'T¾nÀãûf“wèú]!`|—&í1"Á¤£Ñ«Œ";"3�Œ•RqzŸŽ›0èžÇ94ÕÍ}œLYD‘R™20"Ö눎<ϼ Ö%—pŒ�ð×,Jcd9¬·Ž’�Õjµ,¢Ñ‚Ǭ‡ùæ%Ðâ Å�3 ”€AE®ÿ«¬¸êž êž jÇÖëL1-½]3����IEND®B`‚IMAGE 236 ./arch/player/class/Wizardry/wizard_white.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷Rk{cB­½Æ½÷ÿÞ¥!���ÿÖ�ÿÿÿ¹Dó‡���tRNS�@æØf���IDATxÚÍ’1€0 Ãáÿ¿AT±4©”Å'Çi»ü³€NÚŽG·â8ÏvÓXswÙ{ˆ»IžA‚Ä@UЬ§:í ³Â2Ñ!Nxän0(é°®*°íh€p�T â-áô ’ÃE¨0r&ƒ÷Û~_§UJ‘Sä~����IEND®B`‚IMAGE 245 ./arch/player/class/Wizardry/wizard_white.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷Rk{­½Æ½÷ÿÞ¥!���÷çŒÿÖ�ÿÿÿ'tI~���tRNS�@æØf���ˆIDATxÚÕ’Áƒ m`Jþÿ‹í^x.^m8Î6‘ã/‹^[#³$ñ3¶‚Œ'Å<'t,ŒRª»ŸHi`F¤.lg„a ÑêßvÃ?Ñ-´ëÆ"ˆoç¬måt>"ÜÐ|Bu À•Àna^Jé³°ÔdLùðœWÖ (õT�é1¶����IEND®B`‚IMAGE 249 ./arch/player/class/Wizardry/wizard_white.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷Rk{cB„¥ÿ­½Æ½÷ÿÞ¥!���ÿÿÿ6žß���tRNS�@æØf���ŒIDATxÚÍ‘11íËÆÃÿ_VW¸*RÖ–(f�É^? <‚‘k@ñž ¤4˜8ÎÄ_yúýó�4 ÛP+„A7s×’ß¶\KŽDò]NÀ9EBDÕ×{³Ò,öû*îõ×·`.E†î‘- ^À<As A¤3|¤±…Þp?« ÎúË|�t:Áj(ƒv����IEND®B`‚IMAGE 231 ./arch/player/class/Wizardry/wizard_white.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷Rk{„¥ÿ­½Æ½÷ÿÞ¥!���ÿÿÿhTƒ���tRNS�@æØf���}IDATxÚÍ’A À0 ÃÚyQþÿã…ÐcãóÔ£ŒM ëŸ�Þ+ŒÈ7“›:<Ê÷2ƒBBºú!•¿j`¾�õ‚õÒ ÑX¡"ëM3€XfçE/`üÞÚSÁ9МؾÀ ´ ¤ ¨ho¤Æ+åÌ(üo…Ò¿är=aÉk<����IEND®B`‚IMAGE 236 ./arch/player/class/Wizardry/wizard_yellow.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷cBcc�½Æ�Þ¥!���÷÷�ÿÖ�ÿÿ”Þ¯���tRNS�@æØf���IDATxÚÍ’1€0 s.ÿ1‚¨b!©”Å'Çi»ü³€NZ÷[·b£€Ã4Ö\]öÑ�âj’߇ Aâ@UЬ§:íL³Â2Ñ!N¸ån0(é°m*°íh€p�T â-áô ’ÃE¨0s&ƒçÛ~_'!6ýÚ?/����IEND®B`‚IMAGE 245 ./arch/player/class/Wizardry/wizard_yellow.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷cc�½Æ�Þ¥!���÷çŒ÷÷�ÿÖ�ÿÿ”5çï+���tRNS�@æØf���ˆIDATxÚÕ’Áƒ m˜þÿ‹í^x.^m8Î6‘ã/‹^[#³%ñ3¶‚Œ'Å<'t,ŒÖŠ»ŸHi`F¤.lg„a ÑêßzÃ?Ñ-´ëÊ"ˆoç¬uåt>"ÜÐ|Bu À•Àna^Jé³°ÔdLùðœWÖ ù~©²ùÍ����IEND®B`‚IMAGE 249 ./arch/player/class/Wizardry/wizard_yellow.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷cBcc�„¥ÿ½Æ�Þ¥!���÷÷�ÿÿ”7ðà���tRNS�@æØf���ŒIDATxÚÍ‘11}ÎzÈÿ_VW¸*RÖ–(f�É^? <‚‘k@ñž ¤4˜8ÎÄ_yúýó�4 ÛP+„A7s×’ß¶\KŽDò]NÀ9EBDÕ×{³Ò,öû*îõ×·`.E†î‘- ^À<As A¤3|¤±…Þp?« ÎúË|�Y@0Ò(����IEND®B`‚IMAGE 231 ./arch/player/class/Wizardry/wizard_yellow.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEçÆ÷cc�„¥ÿ½Æ�Þ¥!���÷÷�ÿÿ”yðž0���tRNS�@æØf���}IDATxÚÍ’A À0 ÃÚ9Êþÿã…ÐcãóÔ£ŒM ëŸ�Þ+ŒÈ7“›:<Ê÷2ƒBBºú!•¿j`¾�õ‚õÒ ÑX¡"ëM3€XfçE/`üÞÚSÁ9МؾÀ ´ ¤ ¨ho¤Æ+åÌ(üo…Ò¿ä(wfÖE����IEND®B`‚IMAGE 284 ./arch/system/wizardmask.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���$PLTE�1�ŸQ,-ŠVc2�c�Í…?���cDÙ¤ïå‹¿¿¿ü9Ç���tRNS�@æØf���¦IDATxÚ¥“Aà —,õºðÿÿö:Ä ©+£ÑJhxoƒ›ÐëùŽÒ–‚A—BW�ÿ­ÐtQ–‡p¬ú*ê$ØK §%Á '  Ð ÀXµþ ´¦FAZƒ(èÏÂ~ñ+ØfÃ<ÂÙ\’÷šÓSšÍHZº¦’aÓ¹]‰þˆ\x?hS¨J ì b,sñi6LÏvj"6|�ðw6g«����IEND®B`‚IMAGE 277 ./arch/system/wizardmask.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,-ŠVc2�c�Í…?���cDïå‹¿¿¿±ï<���tRNS�@æØf���¢IDATxÚ½’ËÃ0×…æÿ?¸Š?²Bέ{e4 µÑW$üŽöô-@ À_ êÿ4dmxYË� ! }.ÊÒ6Àà�9W± 4/Ó—¡œC°:8¯P?¯<Ímü 0›U¨Æ000ÊMà·H~í;¸kMøŽ¯1Àw$ÜÈ@óÒüŒÞ§°þbP>÷àÀb< öÑ����IEND®B`‚IMAGE 266 ./arch/system/wizardmask.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE�1�ŸQ,c2Í…?���cDïå‹¿¿¿:¬���tRNS�@æØf���IDATxÚµ“K ! 3ÞÿÄ &ò²xL/¥,¥£4"0]aÄ¢;°qHwì°îPgàÿ óLÖ€ÇôˆÁ ‘–9Õð»³cªµ1З†ùÛ@vQE ˜æo‡ÉƔက¤¾P¦)éø:nÒÖPÔ‘pKHÀCµÇ°K‘AÓ* Ýü÷¼ÄÁcÙS;����IEND®B`‚IMAGE 272 ./arch/system/wizardmask.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�1�ŸQ,-ŠVc2Í…?���cDÙ¤ïå‹¿¿¿=틼���tRNS�@æØf���IDATxÚ¥‘IÃ0 Ä&-±þÿàjTÎ�îÊ£AЄÑXLŒý¸ ˆIŽF bl¼ù"ì·B½.Û‚ó`ƘՂW"™t šÆ¦à‰PÿâÂ9$¨ÆsQ4ƒYŽ”{Õ%·ÂDæ"0V’Ôs;$¯BÅ [À¶pÓk«p„*PŠy,» ßÊv…;¶—5×ù§À����IEND®B`‚IMAGE 293 ./arch/misc/Container/wizdesk.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿB!„B!¥R)œœœ½½½ÞÞÞïïï���ãY,���tRNS�@æØf���µIDATxÚ­Qà C¥¾ÿ…f2K]AûØ“ZEøá´Ç Ž�ìê­¾˜‚Ûuõ3 ¿æšÙFèª×ZÝãáæ!DÚN;oÜ,œnO …ÖÛpf¹s‘·A{j@qÀijà×ü9`äCX°´â-ð«/­°âw!kµåÏ+Ö¤°)awŸB™ºM2wåS€ô™CBQßàV GÂ\ DŠtLSèøO¼�ò °GlêÊ����IEND®B`‚IMAGE 278 ./arch/monster/animal/Wolf/wolf.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE1RRRRc��cccsssÆ��·ýâ™���tRNS�@æØf���²IDATxÚ¥“Qƒ DûØõþW® C«‚Ó¢oÇ,ļ~ ‰…ÂÒRÀB±è¯öŠÛ,Ë’î«»né÷%f<CîÆSƒî_ÏÆ\B¸¾lO™p‡SÅ:¼'ÆnîÈUž×Ú—áÉnM :o'g1|¼›ËÙPïØfo[W|9áM..%°>T7qƸARøìÆoç¥&ÿzÙ1³NdÚ3!ùÉ;)K ����IEND®B`‚IMAGE 349 ./arch/monster/animal/Wolf/wolf.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE1R9R!9Z)9R)BZ1BR9JZBJJBJRBRcJJJJRZRRRZZZZccc��ccckkksssÆ��XkS}���tRNS�@æØf���ÏIDATxÚ’Ñ Ã0E3Ø kµ½ÚÿÿדÄÀnÚ—žQlù3à…pbU+CV‚‚òGÆ%ç**‡Z²îÔ ÆøPÆkxË7®^"À½ºx˜¶#™G~¿r2Œ‚ÆÉ§3N§Ÿ‚QÒ†Ûºi^q»Á÷Œ·“�E ¿Þ·Ã:nÕû®ôòO,ï2 ƽ;»0Gû­:„·pAÀÕ§£à¾ó$®Š;/µpî @ Ç]àGÉ<Kžàgÿ�sõ>K×����IEND®B`‚IMAGE 278 ./arch/monster/animal/Wolf/wolf.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE1RRRRc��cccsssÆ��·ýâ™���tRNS�@æØf���²IDATxÚ“Ä C­tÿÿËW ž7£x0³%}I‹íï‚Y©›±ÔqØ®w‹›Ç… ªaT—:ã)BŽÞê0UAÀ’ØÛ�® Ÿ ‚ Ó{Oä p‚Þˆ¹LÙYI¨¥sɨDˆ°›@Î8âJÈ3ƒx°W^Qƒ a™XÀëʈI ýyt¾Äb‘ÀîÎH‹gDb ç¥ž7( ò¼èŽôb !¤×[ àôƒ¶º~õÿÉ>N,2����IEND®B`‚IMAGE 347 ./arch/monster/animal/Wolf/wolf.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���<PLTE1R9R!9Z)9R)BZ1BR9JZBJJBJRBRcJJJJRZRRRZZZZccc��ccckkksssÆ��XkS}���tRNS�@æØf���ÍIDATxÚÑ‚0 PL4Aiñzþÿ¿zi‰™›7!}ÙV˜þŽc�°êÀ�D¿n`,ˆu(b ‚Á® ‚^—d^?»�k´Éát„d ¦h.Û>Mbˆ€Aä‡�$L¢Ö°l˜GÁÕ$Ò4Tß«ß]„&;�Ïz²&Ž`ѽ Ù â1ú!¾?Ù=<Ÿ7\u¾^šÓ97‡çY%š`ö€ö!‘WCØÖï³>j D>KC”Áó Ø„È¹>]¼@›Î¹ ô³ÞÞ=*)  ����IEND®B`‚IMAGE 252 ./arch/monster/humanoid/Human/woman.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VÁq8ÿàààîv�Í…?��¼���hàï§_��€ÿÿÿd3ÿ¥�¿¿¿��ÿJ~÷���tRNS�@æØf���zIDATxÚ½ÎA!DÑVÑÃýo;°Ï4«¤·ÿU~59rª.ˆ-zs ލRÐh÷-×EûÞ½÷g/:¢Ó / ðéЇž` Õ÷w`fkyË1�òAv¬+Aq€f«Î�ªŽ‚U€õÉ;Z¥ ÄÄ¿wî<X3xt¸����IEND®B`‚IMAGE 320 ./arch/monster/humanoid/Human/woman.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTE4VÒiÁq8ÿàààîv�Í…? R-��¼���hàï§_��€ÿÿÿÿ¥���ÿö–� ���tRNS�@æØf���¾IDATxÚ½ŽÁà Ÿ‰ÿÿ·ÅI› 9vG.îJ!BO“SÎÜ‹É"/L €SR_]ÎÔ[Áã)¬€¦¾÷¾A•-Õ½nN­™¯>N\lË¿' ø8èŽÀøøí@0Þ jUE´€ö%ý2ý�¦}ŒQé5E §ÍÖ²`_þ �$~N/V?0Û¸‚ü+˜“Òødór>´(P0ѵd¶Ä_°jàùödl¡¿fû^š±Ò#fJå²ë |°ŒD¦����IEND®B`‚IMAGE 260 ./arch/monster/humanoid/Human/woman.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���3PLTE4Vï§_àààÿ��ÿÍ…?hàÁq8��€‚B'îv���¼ÿ¥����G$ÿÿÿd3øk‹°���tRNS�@æØf���IDATxÚ½Ï91DQ´ ÍæûŸÖ Ø hüÓ~EôV}Î3Ø�QyÎä˜9Òšˆ‰_nÛàÿŽÇ÷‚¤»·Ͳ=,1ÀйD`ôU¡0U=J‰Áe»ƒ·TèTÛPœÈnÀg\”í7%UX)pAÿï =)§ÑX����IEND®B`‚IMAGE 521 ./arch/monster/humanoid/Human/woman2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���±PLTEÿÿÿî¦^��¾äšWJ�¾E�¡Z¾Z ¾:�¡R�¤íªj)Z¾î¢^R6:�¢V�¶b Æ>� J�¡2J�¼>Ü’T^�§Z¾îªn Âr:¬4ÛŽOF� B�¯c�§R�£hÞ222Þ†N"Æz>¾vBb&�¦êšZ�¾jÞf¢V�ªîž^î´~Ò†FZ¾Š&þÒl´i���tRNS�@æØf��IDATx^½Ån1 EÇÂ0ÏC†2ãÿX£.ÚÅÄoÑE¯”ÈÒ9ñU¢¿¤ØœÇ½Ø$gøc)ŠémAòDôÉ=\N)C¤Iº=ÁiH%¤=ø”WT…Cî…d*aX­ä«‚þ‡(0•Α±ÙŒõ|›#Ä â%Rü1Æå2¢à=B”RâÍ:ÄáÚ_èDXƒÏH�Ý¡Ï÷7ø£ðÁs2såû‘6^v2ÓˆZÛ0w•”R­uÚ‰´•1µ¶ÆùÞZ§Lý´htÈ8ÌÝÜí?²ìÙ¸ v®;V¶–ÙB‡+:wpª:ª¶ùt:À9çѾëìdÒ†9pþk†üL02÷ŸòµÄN ¸‡¸����IEND®B`‚IMAGE 524 ./arch/monster/humanoid/Human/woman2.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���´PLTEÿÿÿ��¾J�¾Rî¦^äšW)R�¤E�¡Z¾J�¼î¢^^�§Z¾îªnZ ¾Z¾:�¡:�¢>� J�¡>ÛŽOc�§V�¶Æz>B�¯îž^Ü’ThÞíªjî´~¬4F� Âr: R�£b ÆÒ†F2222:::b&�¦¾vBêšZ"Þ†NjÞf¢�¾V�ª6Z¾Š&þwKÖ���tRNS�@æØf��IDATxÚÅŽ5–1 D-»ÛÍ Ã¼Ìxÿ{­£‰¬ &Ù øÿW.vUøæ2VÍ/àWÅ»‡Ž“\+ý,ÞŽ %¨F÷K±ln)ƒ7pù~ad…Š ;Eñã^ŠxÏ59’+)¤%7Æ ç‹…ïc™« ¨‚9À²5H¢à†à"ì.Üô>aš&wÁ…=íˆ&€OÇ™ „$@æߌ¯-¦aEX2¶ò~P!b˜iqb¾Ô–UšïÅGîãC=+Mþ„a^„#’Cbf8b~=ÁÖ´¦*“CPG5ó¥5ƒ ªªŒ¢ˆù³›Õmˬµ^zÖ ¯ážíÙ¤ þ)jö¿2 ç����IEND®B`‚IMAGE 515 ./arch/monster/humanoid/Human/woman2.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���®PLTEÿÿÿî¦^��¾J�¾äšWZ¾R�¤:�¡)62íªjE�¡Z¾ÛŽOZ ¾î¢^ :�¢V�¶B�¯R�£J�¡>^�§>� J�¼Z¾F� b ÆÆz>RÜ’Tc�§hÞ¬4Ò†Fîªnî´~Þ†N222Âr:"�¾bjÞf¢V�ªêšZîž^Z¾Š&þ¾vBD(Ü5���tRNS�@æØf��IDATxÚ½EnD1DÝmüÌ  Ìxÿ‹ÅQ4ÊÆ=‹,RòÂÒ{ªR³?åxGò,4~ å2< ¤È(xëØH7—&0ù&b”`"° ïeȸ´B0PqU («% [!@x&$Jb·À*ÌKûHpæÈv›—oøÄÀCLðò á–Aä7œ#û<c åŒ¬Hñ-·¸ð˜Úú!qñç5Ï¢¢æuÍ9W…R”1Íܯ‹¢Q>Á[ß×iÑ<®6ΊýØõ£nß³ì©ÐÎ׺ïj¿áÙJ¹^ïuZwé´ùЮ ÏóXÛ÷þ<OnV8‰Ì]púÀ¯Aªÿš/Žô|ü0@����IEND®B`‚IMAGE 355 ./arch/monster/humanoid/Human/woman3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���NPLTE� èÿJ¥sBåÿ9 R-îÿx)2Íâ=ÒÝUØÝ>Ròÿš ¬46!´m@b"ÑÝH¶z…@���tRNS�@æØf���ÃIDATx^½Iƒ0 -6ûN–ÿ4H§TaqÈ!s¢èöHvõKÆõ7yM7üµåqxŒ!O¹IB2„FjÙiŸêP¨:³=#!çÉ„4TQ–Eˆ–±º‰Ä rBña qÄM Ó‚Rʪ xUA[|Î¥Æÿp À¿¯cœÃx澿3ÞÜ«ªŸïÕÖo˜Ë|Æûݹr� À`¹‚.øÅ{̰Ø0¸=-ºÎ¤%.ôe ®®'ÿ™NÛµr9_����IEND®B`‚IMAGE 329 ./arch/monster/humanoid/Human/woman3.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE�� ¥sBèÿJ R-îÿxÒÝY)Rm@>Íâ=¬4 !´Âr:b6"2<“>���tRNS�@æØf���²IDATxÚÅ‘9Ã0 ¹$uùÎùÿ§Æ”¸!]¤É¶3ý´¶\ã´Ôv©÷±…¼¦*9GBÊU6lùrƾç‹ÂD2¡Ž¡0¯¬.&‚E†A3 �8 €»Áð˜uRe¸XìŽ'Vö �L°‘¹î¸Ïj/ÅŒÞó¹î;Q tãèÑ9khü Å-ìÌ -&·Cè%7ÃÀ¥'€_…Sõô¯}�§Çß§•>‡����IEND®B`‚IMAGE 338 ./arch/monster/humanoid/Human/woman3.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE���èÿJ¥sB R-2)îÿx¬4>Ä»bÑÝWRm@ 6ØÝ!´båÿ9"Íâ=X5w���tRNS�@æØf���µIDATxÚ½Ž7Ã0¹K1('§ÿ¿ÔGK€ s]¸ð€Ý ç~¢ý®›Ð¦QëûÆîÒÉ"…&yú%ª ¦èwAlh¬7„°ÐHS̳'ç19ݨ%áý4yŠŸö@z’¨fÎ�6QO^ô@¾fÀZYä‡y''€â ²®· G |Î@v†úo…¡‚²_<„`˜= ƒYÔ'p˪èϨ$Ý€‚ðßa ò#•XûWže1ïWÁ?����IEND®B`‚IMAGE 331 ./arch/monster/humanoid/Human/womangreenpink.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTE���Áq8ÿàààîv�Í…?¼�¼���à,ï§_€�€ÿÿÿd3ÿ¥�¿¿¿ÿ�ÿ�˜�hà= úè���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ$/q=F���IDAT8˽ÒÁ!…á ¢ “M½ÿ˦gZæeUlÿï€  Y7 ̆']^ s¾Ahv;Ú{WÕ=¸º²š,Pzá<´�¾é ”â~ÿ"¢µSÖ0�ò‚Õ ˆ4 >ö@®œ ë¨üÂô'Í^y‡Ôd…LQñïyý‰]|Bí&����IEND®B`‚IMAGE 405 ./arch/monster/humanoid/Human/womangreenpink.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���3PLTE@��ÒiÁq8ÿàààîv�Í…? R-¼�¼���à,ï§_€�€ÿÿÿÿ¥�ÿ�ÿhàšâÑ8���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ$Ú} ö���ÎIDAT8Ë­“˃ C€ Šÿÿµ ÐꢉÝôÝ8snâ ÀJ†§ÎG>|ž9øç "‡;…C–SN·‚‡†DÈåµÖ$DÈ.®1ibôx¬3¶‘Ÿ§)à¾Ã%ì×»ûð´‹! ¼ b$«�¶õ�ÂïAØZkº^ìj›·©¼•^Š'Œ‚²Ý×Ὣ1{@/m þCè¶0'¬)¦€8 Æ–½Xés€Ub “¯*"kÀÅ­¯I9ÞËïù¾ÈŒôøç©ñCøw^Ý3 ˆ 틨����IEND®B`‚IMAGE 338 ./arch/monster/humanoid/Human/womangreenpink.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���sRGB�®Îé���6PLTE���ï§_àààÿÿ�ÿÍ…?à,Áq8€�€‚B'îv�¼�¼ÿ¥����G$ÿÿÿd3hà¢\‘ ���tRNS�@æØf���bKGD�ˆH��� pHYs�� �� �šœ���tIMEÚ+"ˆ4]4���ˆIDAT8˵ÒÉ1вÌÖþÿÏ6õXÌ¡®~GJJMc§�À;û�Ý " ¨™ê?Û3¿:ﯸVnHPžP`f4Ÿ@Ô¸G${ ×{² µ¶åìƒcæü¹   ¬|#f^q• À«‰å'zâ_  à¡ù�0!CÇÄ0{����IEND®B`‚IMAGE 217 ./arch/door/wooddoor_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VG$ R-���d3‚B'ˆ†ð’���tRNS�@æØf���rIDATxÚÕ’AÀ Qvûÿ'Ó´¨@½ôÐN¸L4Q^¡®‰4€Ù× ª6V¯3Äâïmk¸ý,î]@‰ÉÇ(R®Û> ÝÓ .p°WÄæ>ØÉ6IÀø[@vÙŒ±¯”!ß¡@û F¾ŸÝ³����IEND®B`‚IMAGE 198 ./arch/door/wooddoor_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4V���d3‚B'¹¥rÐ���tRNS�@æØf���hIDATxÚ•ÑA À0 Ä@kýÿ?7ð)È4×b“Öã�e‡ü» Bpp XÀÁltKp�ÒS�X& ZÈv‰è†í Âö+10Û``¶ÁÁ À(;(°ƒú >¯®žÊ¤g’����IEND®B`‚IMAGE 386 ./arch/floor/woodfloor.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���KPLTE{Bµ{Æ{)ÆŒ)”Z½{!½„!„RÖŒ)µk¥sµs¥cÖ”)Öµ{¥Z!{JÞ”1Ö½ŒÎ”BÎŒBÖ¥JŒ9!Î¥s΄! ñ���òIDATx^ÅÒGnÅ0 EÑW¨âò[úþW„ñ@ò8ñÀà„  "òÿü¦¾âBQ‘Ecƒñhow-jc£bu³6[’ì± ZÄÇïÒ©7ËRyWKªcƒ*…Ÿ÷5zÉ·±!Y’/h=OŒ›·Ûܯ޴Iî–¼]§F¹w[¥.»èVcl콪~ɶe_¦ŽˆqÒ•®¼bí]’ÜÇÆ»_Ýj{4•B–26L“F¨,Ô"ŽˆsǘÎ=äˆDpî!G$‚s9>wŸ{Èñ<¤g© =¤„ÙC*H)aö ÒCJ8ñ€ÃCü‡‡op…Ü¢l����IEND®B`‚IMAGE 258 ./arch/floor/woodfloor2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���*PLTEoH5oI?oS5yR5y_5zS>…^5…l5’u>“l5wKKªVªVPOm����“IDAT(Síб AÐÂÕd v`.ÈU ‡ÑÂrë&‹_¿³F–b Ú‘Ñö`ôò‡S²‡µ±„pQ‡¯¸³Ò’½BÔârR!6tZY2Äz[u ¥ú|Ö±…°§s•™B\TÒ°˜Âroö6†UEú.„å[®*9„³ªgWˆ½xd Q“ÍÆQ!zà%çÿŸw~ +ˆú±����IEND®B`‚IMAGE 279 ./arch/construct/house/woodhouse.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�Í�G$ R-���ÿ×�d3ÿ¥�‚B'f ? ���tRNS�@æØf���ªIDATxÚ­“ Ã0D3sšüÿÏ#«¶ É`»–Zðñl„¶/ƒ:w —WôMö„˜ôÝ E.ƒ�zq/ B `}ÁÁ`vwlb¢°Zð0U*A�8lA÷{tý{L LèeZsNxæ#�f»F”µ%àºPŒ1¬мúË<^Ê·–�{cÔû¬<t0<B9áð8Bæü[þ-o”# 9ëd[“����IEND®B`‚IMAGE 568 ./arch/floor/woodlarge.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���EPLTE{BÆ{)µ{ÆŒ)½{!ÖŒ)½„!µk”ZÖ”)¥Z!µs¥s„RÞ”1Î¥s¥cΔBÖµ{Ö¥JÎŒB΄!Œ9!béƒ*��®IDATx^eÒÙŽÛ0 PÞ…Z¼e™iÿÿSkKI;Ai@âу‰7ÒI& äÕfŠ™j9Äx¢D¢UÆSÃ�§ƒ< $¼£BÌC�ïÄ0£p„U �¤¢Mº¬é8«í­ý>·«þ¹ÍŠU`[›€Þútæ0J6oÞœoœN§3Aò;„ñu;o� à´”ó¶(ß<J ‚p3d*Z±JòóÓ«vJp©wP,Íúá,÷,(¿ IzôOç¼þ\÷³ùß•*¬Ç– �Êr¹G;ªª–r6iñqÛËþסù ëâE*4lgTQ^,ê mÏó]”‡¤çüò}�+݉!�EPWËå A¶Ã�ó/¤Ô÷.¡xSÖ^7Ûlö˯väa‡…×ü/~æ!„)Tòû2+Oc8�a‡:x Êe »øÊƒ º‹( $xP"¦xÍÝñ˜óÇŠúÎÃr@+Fr—Uj$!Ç:]Ì¢R4’ð‘E¼a\¿ýŸ‡B™À–ñ#ö– ÎøÒC(6Ú+²²ø0r8æü‘h•¨àt&\}ù!"ai$$����IEND®B`‚IMAGE 428 ./arch/ground/Wood/woods_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEG$Áq8�Í��¥��ÿ�²""�O� R-.‹Whàÿ×��Š��d��2�øþÍp��=IDATxÚm’rƒ0 C3«cÿÿ»{ ÐÄ;r@cEg½ZÈëÝ3•ç>ƒkBhA¹å&Î3¬|ós  %æT¤7¸c”MûÖ{Ê+´+W!ÚžGONâ‘éè"ÑGiĸ£?B¼£‰†ÝÝB3ú^HÃ0òTYÂÈ $|ÿYHxiÃÐY¢|bá9"Øé‘Åßîlû# éèÈg1_EecÀ1#+‹ÇÖÈÂ!G”H·8YLÅ0”ÈÁÊú ‚ˆ9Y'†OäTW*µûï¯jù®WQY'U:Âì…µ|׫XÇSÑtŒu<¦by-·m°NÕT΢³ j?_´]ÔA¥Wãæ†©*ß1¾Züf‹zRÙ©Ëà5Õ‹ ¬Ý!,;®[T䫹> TŠ]ì9·š<þ�¬M‘oUÅþ����IEND®B`‚IMAGE 408 ./arch/ground/Wood/woods_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE�2�Áq8�Í��¥�²""�O�.‹Wÿ×��Š��d��ÿ�}du£��2IDATxÚU“Q‚„0C³dqÃÜÿÀk,u(_öµš*H†ê*‰YE/A•Jñ‰’¢²XbÜõaú¸H‚ºÁ%†XwQ^‹J*ü°èò;²†õì‹hEÞR(Ù‹•«²ì(„V”¥ry±ØëK‘¡à²-Ê{Û1¬èж½Ú&k©EmÛ«íëUÉÕ\Û^mÕ»¹¶í¶§~ñœ–FÐS $ʆfÐS ¤lèzªAцFÐs¬Ð6Ô^|xŽò†=ú˜‰ÕhºCIS·›DÖ7”Ek(äÁ¢Á1‚¦“àAÓA„J535„8îzÓIpÜõ¦ƒc/ݤ'ðŽÀÒ³¾D®gÒÂ;âjB]èðÒRãÞ§É_*Ñáóˆøgÿ(Ø‘ê¼÷åyáÖWÓ‘4´™����IEND®B`‚IMAGE 2268 ./arch/ground/smooth/woods_2_S.111 ‰PNG  ��� IHDR������@���ž‘ÒŒ���$PLTEÃÐÃ�2��O��d��Š��¥��Í��ÿ�.‹W²""Áq8ÿ×� Áic���tRNS�@æØf��fIDATx^Ä–ÍŽÛ6FYý º 0/ ØqÖˆ*‚®›ºTmQéÒMdM–Ù¤ëAÓ>@_¢Ð'ì%)êÞ’TÏ"¹»ãÑ@ƒËüQÃá³8ú\)u™zÎÅà3£ã|g1¾šûŸ�nïÇ>€ç÷³ÇIìäÞçšÓãñXIå3Í&Î7È×óa?å›ò©ñÀ³ûY?}ãÉçªÓØ¿á‡ÁgFÇùÎâwÀ×óa?åÛòÆ7�ÏîgíÛ“RGŸ+¡¥*QKŸç;‹)ðõ|Øtcf=À³û|õ㯥Çü³Cµ­Ôè3£ãüÙb |=öC<ÞÏØõ;Lµ¿±ŸÁ§Ñ÷Sáñ˧z[«ÁgšM?#_χýaš/ _ïï3“Ï®öcáØíÉg!ǾRÛ“œ<>Ólê|‡¼šÏ,GûY¼¿ˆ¼'ÖïØxûžœôwwagPJ]¶>s¥†ƒzÍEëqC³‹/ãù2WÌr´¿@¾S R›Þò6ÒßQfó}¤_+å˜ù#>Œ/Ù0õã$~g,kŒ¿·¼ïû†f¥ñ>ãyIî7|­?é´5t?i¦ý¶Î}}cî=K¿†üqrÞuªÅ{F§g–öýô¡\<?hæbøoø€ydržzÃñ~Ò=ö{ÑÌõI?c¹xghé7´Ñ°D%Ô‘…Ó¾=¢¯ê¸’Jykˆi^3Kñ¼ç _íÇ ú£ýí‡Ha(™ûñ«Í#ýì/.ú}¬yzƒÞl’zøH£Ùaøm¤yÍð3žwžœ¿Úã÷—žâ±þÐ㇓¢ÇQ÷¯ù1ðv“Œ®!Íkç#þ†~ô¥î/}½?|ærô8j¿ïOˆá$àÍ&¹-ƒìxùdóÈFØóÕâKô·öÛ¼î/|•ÆúCO>ô8-Ã1íÍ&¹ T> šWÀ¶Úœ¯•ó¥í×|K?ú úU«X?Nn=ù=ξ’êgÄp´ç¢Cä`š>Ѽ¶Æœ?Iç¹Ñ©æ[úÑ'Ñ¡À5h­ûö%y/zœ7ü'Þ¾`ë£ý=—êT†®¤ÉϘ[‘Áùê5wþÞèï5Gû ¹'÷¿ˆÞo=>ßG§‚oèÿþ §Æ›*"{©LÞ�Ï)¸x<ÞŸh^íOQ¾‰zÿSäþÄz ø>¶¸žD'5~'E‘òðÞäg¼Æ—ƒ�&÷gšãý;wþLÝ+Ù¬¾¯Iéý»¤`Ì0¦go!×ïGOfcÖ…ÒኯÇ>v„ñ—Ø Ímxõþ‡ =Ù[HžNæÎ[ÿ°éYJóãâ-¿ìÊ=»®4W¼TCäÈãgÖ½=Éú™±t9ßýFî?pëq4¯½o9ÏKô†`–¢'cו'‡+þÏÇ© ]ÞN?³ööë'ä’ŸÝ^rÆû…˜}²)0ÿ´ò¾å¼Ÿ7öÙnÂ;à=»®”W<杻ÓÂøsÍÞÂm¹H3Íxÿ[´…Ÿßa¾œ}ç}8xÞËÓûôï]W‡+¾mc„4þlk5ÓOxñäb髉oÛ·'¸ç4‹wë]­Ý+<ïåYÞA²Ù^âý±ëJápÅïΕkaüGdº‡ GƾáÝeê ³]Äwó{pšãyˆÁKˆ‡ åð¯úöoÙ8Œú)î3ÒzdÔi¿xŸu_Rn§Ç#á¼=ûÞ½§a‰æõ<Ë‘uŠrdꢇ·ø„²u&÷b‚e=§<”sdâÝü…ùR„™?\H!ß#Gý9ªr¶6L¼tÞcˆ©_øA¬s÷Œ¥Aþ:3ˆ!‡Ûl/”âÈQ¿â”ª"ùL3ÑÂù™3<„5õ ¾7Œfþ ò°Ù"Þä“í?{ãKË`ª7³wÇ[nÖÔ‡¯Ä#ù_ õÇ—]¸0¾´<S?Î>8o×ÔÇoÀÌŸ`Ï ½l×ä»JRŸSYï³líþÚö߀ÿmßlvœ‚ \¬íâ),Pî‘øÇ숣µ¬ájB8#Áiß„À²ÕvoOÛV,‘ëö©SÓ}µªbõTÞçë´óýë�ÊËïý�À÷_ó{åßÏûì~@@R‡|ù»™ï›/0¯lî÷ýì$ö×aÜý°ûHŠy;¢RùþÎ÷²åßî''ö7÷;~lL³ÎÛ•Ê÷[ßO¶üåàþ†<y?ç¶W’bÞÏ<Þìø~²åßïï?çÎý޶Yçýd³_àû9°üÞý~²Ó/püãwżŸlåûÁ÷sÝõoÝþì'Ûû‡üÁñûÒù¿ï7Hè~ôËHLQÞçÿd{¿ïo=¿¯<æë?w=ž™ù¾ãù<ŽPÜ/JùÛõ ÿíóuàøa€):¿ñ7˜QÅ´ý(b?àí®eŠÿK9y´Ã¢E‹-Z´ˆ½CopÊŠÅÉžã”ÅàÞèA’©¼ 81¿¿Ías®ç‹ӵڔø×ļ_1ÒŒŠ<J¬7~‘܉yKþ{bÞ?žQ›E„¼˜­:æV­)rG~$[@5yV1ïÏèó|Ý?¨‚äÚ¨C‚Ú3i¥æ+ù¯–â†Åó+Ì#æýãUŸßÙ?¨*Él-²Ÿ@ÎöXæœÜA0(Þs¤˜÷g°/ û•â¶T|E²=7¬(Èy¹ƒàüy‹yļW‡ü>¨þëyÝ¥8¾G.äû¹ì'�¼gÙ}�o^÷ù}#û—Ü^(n׊PÄ÷’Üê}¼gé>�Ùí ”ª�É¥`ï÷™zïN_áç¼w>©¼ýbädÑh@éž®ž³`0ß³û ÆsŠy»b¿/Poœ~çö<¾ìùvÜüg£CJñá����IEND®B`‚IMAGE 495 ./arch/ground/Wood/woods_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���0PLTEG$�ÿ�Áq8�Í��¥����²""�O� R-.‹Whàÿ×�d3�Š��d��2�Isµ“��zIDATxÚ]’rà C!r˶Læÿÿv’I®dÜAÁ¶ËKC\Áµgí¼÷Ò€Šô¸Ãoâ;Y.›Ú}ƒL®íàê,õ 6-ñŽxe bIi#'ÑdñrÒô!çê‰>G+}ø dœI)è�i[ ¥©ðî3K§;Ä·;k¥3A¸h¨B:=¢G:yc—L'è`·a=�\†9&ój©½†ÌW““³ô>©á«°?‚hï—õQÿp‰Õ½çiC¸@5Ù¡è¬wòD¢X¨qPá”DÌ+E(P,êùá"DY$P†_NÞ„;¾;"Y%â8âC(øuÔÝÂgƒ×ü{ã[%Î!ìød°ÿAHë†Ïö¡Øñ©g|Òùƒl¾÷$tnøÀêáAèÜñ]_õN¨;¾hüOˆØðÝ,vB:nøTÂPâ&DØp.|“ ꩊâ~FßôW}4¬»É²ŸÇ©ÙîœKZAvm¯Pó]ÜR˧ÛÙîà����IEND®B`‚IMAGE 371 ./arch/ground/Wood/woods_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿ�c��„��Œ��¥��Î��ÿ�)ŒRB!�1�Þˆ˜q���tRNS�@æØf��IDATxÚ’Ñ’€ IÒêùÿ?|”Z§x>\ßXXÆ¿†¤É¨ LÄ{ Jæ €Ds ‹ñ?€ \a~¸S'¨Ö%€„Pp/ð3Dï1] †Ü°î³î²€O¶64|»¸–€‰þåbÊ+D3ûr±û/c+?]FîÀ )\øvéÉSÍ¥bàž<U.Ã»Š¥X‹a¯"ŽÈ\"ˆŠ¡] ‘˜ó±U‘® PV[ ”tUE§ý=TºmVO»k¢ª@£{ ;M«zq ¹ª*š¥x4>j€F³·9#§\“ÞV2Çxæj4­æ`´é4­¸}ßéO¬Ç{¾á/Ù  ñ8"d����IEND®B`‚IMAGE 365 ./arch/ground/Wood/woods_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���'PLTE.‹W�d��Š��O��¥�����Í��2��ÿ�d3ÿÿÿÿÿÿ.‹WþÃþí���tRNS�@æØf���ôIDATxÚ½‘ÁŽÄ0CÁ0NVšÿÿÞ;µuo{XG•R ôâOz'ðŒ"w°Pö’W&Rh®Š¼ç‘Z•-ñZQzFê:Ö5›“<M^•+\Õ2P^#|Ÿy$¡–‡Cª={ö×"¡S5ù)è%6ÙÛbÔ@~? :×}ivíýÇ:ÊÏ¡v²ÐÀZt |iËÞ[âðhýJ28†œÜ[¢õ1c«ˆÎîqÔï}R :lB2©%½ÿNñƒ!Ç焟r|NèÏ 9¾pBŽ/œã 'äøÂ 9¾pBŽ/œã‹;!Ç'] áŠo€ñЉoðÍøý!Ö9’w����IEND®B`‚IMAGE 206 ./arch/wall/woodwall/woodwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-�����€d3 ¡–§���tRNS�@æØf���jIDATxÚí“1À sþÿå IéQXYdg‹] ¯8Hó»ªëBÑ4s×0]�ë�Axuì@±<õæ�Ñå ¸¾�šï zEå=@È’~ƒS £a40@H_î5Øû±™û°ò7Tõ����IEND®B`‚IMAGE 195 ./arch/wall/woodwall/woodwall_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���bIDAT(‘µÌÁ AÁNa'�¸q°ùÇÄëÓO$ülÉ@ªªÖóÆ¹¿„cÿhl‡î—û Çu†U‹ök†o‚ˆ "ˆ"‚ˆ "ˆ"‚ˆ "ˆ"‚ˆ EÐ"èþ<Þ𠆹4Ì����IEND®B`‚IMAGE 207 ./arch/wall/woodwall/woodwall_2.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���nIDATx^ÑÁ À Ñ@*p;ÐØ@²VÒMA÷ƒGç¸àãƒÇn§GðqxËl¼¸¾ˆÃb´»YF{Ì,ë ¢*™"‚P B‰`Ц@(LP BA¨ 2F'˜€áu1œ aøÒÆ7ÿ¤@4ÎûŠÉ����IEND®B`‚IMAGE 254 ./arch/wall/woodwall/woodwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���IDATxÚ­ÎKÂ0CÑú³ÿ5ƒˆ\õÕ¤Ä}S':G’™“ éÚ|Ÿ¤Ï Ý�˜8ëg·(¿£ÏjðlH6C ò\7¢h €H¯»l‰ ¾!# Á4D`[`®Óm¸ Ú pZ�ô¡†¤ JÛ r[Az0†�¼4mP 8 ÒtGZ‚cßšÿÐ tQôë����IEND®B`‚IMAGE 162 ./arch/wall/woodwall/woodwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���AIDATxÚíÌ1� BQËçþg6N.Mâ&#¼°špÒôw¯ªX@!À!@!À!@!À’g0? à àÞ‚ 8*J[q\º����IEND®B`‚IMAGE 147 ./arch/wall/woodwall/woodwall_5.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���2IDATxœc`� Pvf€ò”\(7ƒd%zØBž€’3’€‘ MlúŸ–~�˜€(,°$s����IEND®B`‚IMAGE 236 ./arch/wall/woodwall/woodwall_6.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���‹IDATx^…ÐÁ ! ÑHT@¨ ¬¦–þkŠ­ì|iQþ æð~ü^q¿¯íþ÷Õ<F(ïºjNaôïcîµs g†Â+Â31Îc5‹Ę́ˆy\D†4D„a@„a@`ˆÀ!¢o  22‘AF™ ŸWБ ùþ>#2´¶\Šù����IEND®B`‚IMAGE 247 ./arch/wall/woodwall/woodwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���–IDATxÚ­Ó1 1 Cѱ¤ûŸy½â ©Fiñ0äñ(øQ(>Þ÷{ÿÀ›YUìÝ΀ zÐÞ¼¨&¬À†+€¬w£_erp#-‚Á!,P2X d° (B’Á‚h° ,lƒop ‚h°à4@Ò\w˜‚pZ ´ Ý=Aü8ÐçŸ÷¼¢ÜwÚ²����IEND®B`‚IMAGE 197 ./arch/wall/woodwall/woodwall_8.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���dIDATx^ÑÑ À á[¡u­üÐêþ3ª(ÉKÁà#6º--Q´DÓÒ¯œZP¥ C†‘'Ñ£L#†Q­�[N +># Aß°œ U%°`+À d…lö4às{I����IEND®B`‚IMAGE 234 ./arch/wall/woodwall/woodwall_9.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���‰IDATx^…Îу DÑÛR^|6¤ÿš"j„Ù™$÷s?Î,­5ï¥iýü®D7 Ü• x ÍÔ»R_öÓð#ÀôÉÝ@¾Jϰº-ÓjœÆ|9EN#<¢nÍȸŒNô@ ä((((x+'gl'ÃÝøÚƒ23#êµjº����IEND®B`‚IMAGE 183 ./arch/wall/woodwall/woodwall_A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���VIDAT(Ïc` £A4À „\Ð�n3afA€ ”Á ‚`†ªÀ E膙×Ó 4‡¡ ˆpÜ18Ýw •ü‚êdý8ÍPÁȤ�ŒÑ<l-gžˆ����IEND®B`‚IMAGE 237 ./arch/wall/woodwall/woodwall_B.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���ŒIDATx^…ÐÑ Ã EÑ·‚a‚Ö™€°ÿL«öS"µ½FâãÈ«Cg­Wx,ëuMHÖ}b»…‘uŸ? Õ™Ùº ŸÚS|DÏW9MB›\ gIƒ„$ÂxpC¶yAƒ„D$¸G$Ò Aƒ„€DAÐ ÁOÖfV“À%³_{×C˸Ðóº����IEND®B`‚IMAGE 233 ./arch/wall/woodwall/woodwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���ˆIDATxÚµÒA€ DQ;ôþgm°Ð)]XâŠò ^'Óž)÷Eă–ŒBüI¦~v3Íý“vl°à»‡ . 0hX o0ö¨cŸ  $ðÀ ˜‰AàHÀ,‚̰ ªwHïAP6A†]0ý©P|LðGp·8 h‚c¦����IEND®B`‚IMAGE 230 ./arch/wall/woodwall/woodwall_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���…IDATx^•ÑÁ € …aW@&:� , °ÿLö_S<˜øŽÿáK“nX]îqã¾CµõX‹†`ë! $·aÚú<˧¡á>dç4dy–õ†—’°@BHX�p(!ÎI $¼! „30HxÄb€H“„$c¼õó·ïpD8í…ÖcÁ����IEND®B`‚IMAGE 235 ./arch/wall/woodwall/woodwall_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���ŠIDATx^…Ìá !†a’N NPù6 äöŸ©¢Örͽ?ÀóÐÿ^­‘«¥²ö©›”N}Nª!ºN}Î{ãmc ÓÈ9§šGã`‹°cîŶ¡0LÇa¢i'|Œ•°7ÇX)‚!†ÀŒ`(‚!†ÀŒ`(‚!†ÀŒ`h½~FÉþao²¾²ÏHB¶¯Ÿ¬S����IEND®B`‚IMAGE 232 ./arch/wall/woodwall/woodwall_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…? R-���d3õÍfb���tRNS�@æØf���‡IDATx^ÑÁ ƒ!†aVP'¨|ÈØýg*àI“&}pxJžÀbäý>¬L‡Oj™Æ¤Y¢w¦1¿¯ £÷6»g_„'f¾ E`Û¶'á4N·ÁHã´Q A1·Á(ÆF1ÅÜ£ÅCpŒb8‘Ʋœ˜û<òŸýаEª¥;f$����IEND®B`‚IMAGE 190 ./arch/wall/woodwall/woodwindow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÍ…? R-���d3¿¿¿êÒ©���tRNS�@æØf���ZIDATxÚÕÓ1À A¸=þÿå H”ñEìÎmçqë,ÖäÜo�j `º�5"Q€7°ÊZ£ìû ôò7p]@5˜ à&À (�'påyQ•ʸN™����IEND®B`‚IMAGE 233 ./arch/wall/woodwall/woodwindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿÍ…? R-���d3¿¿¿êÒ©���tRNS�@æØf���…IDATxÚ½’A1 ãqøÿ—AµdÓªZ!}ÈHqüom6Dn¸î€*!J* òOHòô-J,ü”w[áÚ‡%8ô9y9°63 ‡n€%Ãá`SN†Ãë Î<LÃåžÐ~±Jd>˜ºƒN¬vpÕ/Fû{î’ ©\æ����IEND®B`‚IMAGE 154 ./arch/monster/insect/ant/work_ant.131 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-���üœÊØ���tRNS�@æØf���<IDATxœc` `>�cÀ\ L+À «¦®U`ƹi³ ƒi3@´ñœ(æ18 Õnpà�Œ7Ц��6i HîfÊ����IEND®B`‚IMAGE 154 ./arch/monster/insect/ant/work_ant.132 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-���üœÊØ���tRNS�@æØf���<IDATxœc` ø�cðÀL «À »‹V5€ÌK—AüªË4 ŠChfƒí<0Ü(š�`® ¤x����IEND®B`‚IMAGE 154 ./arch/monster/insect/ant/work_ant.171 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-���üœÊØ���tRNS�@æØf���<IDATxœc` ø�¥™Á$× 0CkÅ‚ÕÆÊ¥k€LK›!JyÎ@‡y Œ‡™¡†@´�· ÐøÕö����IEND®B`‚IMAGE 153 ./arch/monster/insect/ant/work_ant.172 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…? R-���üœÊØ���tRNS�@æØf���;IDATxœc` `>�eð€I­†`ƪEMë!ŒeÓ6€\jÓl J  šó@ aæhç1h �'­ –¬6©&����IEND®B`‚IMAGE 293 ./arch/misc/Container/workbench.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿ�ÿccc„B!¥R)Îc1¥¥¥ÎÎÎççç���”úã���tRNS�@æØf���¸IDATxÚu’… DøÄýOüu"£eËöíJéqWô*€¾+v}’×I�½€ô³Y6 Ñ%lÆ�è*Özˆì9ã) zÈ|EQ: ºd¾õ¯€$Ò�wXshÀæZ¼) ½>�¡“O`y}ÀÏwÓÑIX&4Áôj%d³| ŸçG®×g 8¨¿€ô (o¡¦¿JÌ  ¨|0+ãÎäí±ÿƒšmÓ?t }#†*����IEND®B`‚IMAGE 1407 ./arch/monster/dragon/WDragon/worthless_dragon.x31 ‰PNG  ��� IHDR���`���@���Òê‚<���0PLTE����������ÿ�1��c��ŠŠ�Ì��íí�ÿ��ÿÿ-ŠVc2Ù¤ÿÿ�㪌†���tRNS�@æØf��ýIDATxÚ¥X‰–¤ œ8 ìñÿ»©–4vûz6Û‚"T‘Tˆóöë[·m[ŸÇdë׎þÿLVµç±$è"?<ÛºÕZ'~ucAÿ9bž~ºÍH·1ïgÛÞ[=Yy<êz±¬/›;sɰÕk%Èjvž!kÿåaê+úÉE³W˜`Ÿ-ïÑí»þvkõU…Ã\#•Þ¡±Èï¾^h­ê•ViÕÚÒ¬Ûì šÖ½æ´xÝ6gøŠþ:Á«Nukû€ð(Î_êÞÀ­¸€na³ø÷µ‹÷r}ˆ'Iü‘Üp ÐÄ¢¤­ /]mYdÑV^e¼S@ƒ¦ ¶Ù,Ì ²ÐaÐ6±;'úšYº|«í–WgÙÑ"BªêÓöSšædmo½AH]…_ÜÀð¦Ü``‹Ú!ÞÍnXР§2Z%ØMÞ3ÐGK[¯@µÚ]˜+¿ÿ#«:HñÝìR„þ¹P{-êÝVH@†»²©B{î×fñ.ûŽ›L¥à7£oµ@4{H]"“=N&¾�_!üzßÜ ߘEŠGÑõ€WPÜ5oÝ´]E•« îäž�b„¤ˆÒ²Ù1‰G©Š[ÆFÛú÷ü0ÜsôR›“x˜¼&yºjœ £–‘‡ µ»3÷Ë‚«ô­0σդêç±.gð@•%¥~³q“~špª\5¼ Á]g×âžó_ÍUäú˜ÛÚ/6Ý—gѨæMë@ ô –Èkù40:Ûz‹#æ5©¶> »Ä«gv7ë`AK½›u ØY¹K¼äö5²NÉÅySbøã¦ØªõÚ!¶3ôÂ)0àgMBt¬Í¸À{X0[Gµöo&ØE|#ô2ÖNGÇ›ñ¶è¿MÓ‡h¡45–QÒk^“EÜ8#dxBâpHrQYä` ß¹ŽÐf.0‰©'j©éÅ—ˆ9R>ÑèGbÎJ?Õ‰Ä /GÄxÇ{¾¥h[®?“d@Ëí=¢qá$¿çz=H~0Hà¯UÈqQsþXwÒÀPIÜ1}š~ã÷bÀ“ ãvö‚Å2±HpЉ0Ž<=ªw†,c},#»kMÍc³cRfµö%CU:B•df”ѳ„¨žˆp?g$Áõœ›T+_.Ð qµVUš¡g<¿¸7sÝÇÙŠ|Íæ[ 9™xzØcÈ‚Ö5¸&€Îmx¦7Ú ÅY¢ZÁ¢QGÍ`ã9žâQ‚Q.sP]ïÿž‡Ã<Û<ÿöž…IH¡ÆÕ$¿²ŒtNÄ3 LTž<ø”¬¦cžÎjq±gƈ¹Ÿ5!å°Æº{DHÀg[Çèg pz§ üyÎÏ©q5«ÅK;�ùCCb5"àßÓ[‚sÍÊp †ìä2Úåž@&]F ïHdŒñ VOk‚t2Çiîƒrß„h£›Å$7K `šlÂQ›K‘È0‚<ƒíÒ⼊¿ÎWÓ§‘ºO8oŠ'pB‹Uï†$eM%Ú±¨¤}9Æ‚8À$ÀcP~ÂÑ{í]è•£ 'å0óæÞ¨ð[눒Œ5†ÅȘJŸØºõÞjUW&Á˜I® ß|È ÒØ¢Àa=2P³(ÓŸÿO»¬‹^q:hÇ÷8þx¢j¯+À?RÈ9C:“;«����IEND®B`‚IMAGE 1342 ./arch/monster/dragon/WDragon/worthless_dragon.x32 ‰PNG  ��� IHDR���`���@���Òê‚<���*PLTE����������ÿ�1��c��ŠŠ�Ì��íí�ÿ��ÿÿ-ŠVc2þÖ�qý©b���tRNS�@æØf��ÂIDATxÚµX‰–Ü( la ÆÌþÿïné°Ô@H2¯3j›ÛUèžyý+É™^?*ôSáú«ÓÏ0dêYˆPÿAî$tÒçvþ•+Á £ô…úÛï’ÏZëI´¬aûêÌõ7 €ùv]õ*“!Ìþ={=Éù{©"¥] hÕ r,KŠœ¿V…ØK© È\Þ¨[¹z~„g@‹_Ígï)ûcvæÖ^Œx5kkuß÷ÕPBJ»›ŽëÜa]P±wQÊ\.ap–&`"Z—Æ¥�G…`8ª]ífNŽÖ”Žt”ŽÒ¡GkÂÀÍOÞ\peý‚:�q£uëNî»Ux>ÀIDVÄ wå¢Àîl1ÓÇêúpjÅV*œjð¨ió¹³­ls7Ë5ŠD’ÊÝtdIdÎŽm>dÈ sk­‚)a$ð]Ui&Áõ$¥`Xü°º¤–RØzi © ÍÆ€Ž»\õ<Õ€çkO°æÇµˆäZ3c± QæÝ•u(© ÑŸO!&ñxl@–n57h ` 'c| Ãë¢é:„¾¦ˆn_¨ÍÌ£,õ¿zrë/8žá „–‹]4›=?ÒiÈøÉu £‹…ê^Hf©ÚLq·"Á— `õy?Ìòž�€½‘äH.j,Ö¥x¨VFÄe¡$U·æ#2î­£é ."æLà½V@ .©pº‘»V±pJ[l1¯´UÐ 2ãÉT¨=&ü§´[@Œßc—Ø[`Ô®ÊïàÏûJuðšonó#6´ ô¬ª:ÍeàP‚ Ç«ÀŸmhû b¾UU-ÖÄÁ=”lư{•ˆTK·RìÞÃ-0fÿíIdcB¢ù£rp! ÙY($λÂ5X˜gôצ«½¥;;V¢‘<v¶¶µrh#ÍG¾€ÞO¥Õþ¤?ìãá*iFÃ~†Co‰¦Œ¶á­óÁù�šáãì’a‰�qvZ¯<²h1˜Ç\B`Ë?Ht8tÂÃÆ‚"+ýÇ `ft ËšèL, }ßO„áûè° q ]Ü *îþÐx4Rä•?ˆÕåÃ|r‡™cl¸ÑÅ)1¤Éìkór´`ó7¨#DœÀ¿‘4€^&«È‚aj9öíC•¸‚‰v/Ï1¶M†¾4hˆý°3OÀœ°ÿ¼0THCŽ% kѨ*ËdžÚІò“~è  "ÎS0@H'õÞ3( éª}OGs%ÂB@D6\½ˆÉúVî/cÕJ±P:»=¼e‚è ܘ_¡ÙšÇoÍ/ëèóÑo‘kÜkÌ㦭³ýDо‘®_&q:ÌúÙ;uO€éÑjS’ Œ61r˜‚;G‡–uÀZÜ6 Ãæ<Œä«‰ dZÆÄ<mfÿXL´|'Ï æßž? ×ke†�s´[À,Iü¹-K:JkÌð&h{ âqÜKê½·ñwA8Ù f‰hßË×ÙYNéÄ_,àß42ø}!U9Žü‡@Áã=ðhdšÚÇŠÜØ¾gÏ^føPÓ""I}bä0Dˆzš«#Ä0*úFýŒà Fã ?`<'Ü>.ÿ,·43ÇÈ����IEND®B`‚IMAGE 1263 ./arch/monster/dragon/WDragon/worthless_dragon.x33 ‰PNG  ��� IHDR���`���@���Òê‚<���-PLTE����������ÿ�1��c��ŠŠ�Ì��íí�ÿ��ÿÿ-ŠVc2ÿÿ�¾à ã���tRNS�@æØf��pIDATxÚÕXëºã& \a Álûþ[dI}Iw7Íʉftƒãœÿ™P%¨$ÿ"A®ó[ 4«(è/ÅæFþ ý-Èô—²0‰Åôwæ$Õçwœ¨sÖ¢úç—ÂÄȵB·?ðTÒ IÅw²P¡ú×äîïô³÷³> bŒ/¨Y%þåà ÷…àü%é£ÖŸ[{ŒXu§rµ²1œýWD€˜¢ƒéj<x=Tn‚£ˆl D„é‡Ý`¶!¸ËX{ôÇu]hÌÆíÇ`ÞÞÆu.O ´ìõZû`0Ø„õm3 ÉŒÉƒËÛ´r$\*ÇtŒŽ 6lÖp‚¡¤MÌï@†ùh£0• (J¥rNT„ ]º\L5†ìÆLðdhÊ&€½0[œ˜EšÏ ZÎHº±\ë‹a©VJŒê·¿R)’þ Nw!K…œ¨¿cÜ>4*)IÄØ äÁãï.>¼ÙXZçàžŠ††:XôìSCnwöaöVDÞíÝÂyï'OU ¡d­™ém–5³Ed$J5ÿ‰%<$,Ø^•š+Xä×ÀpÈå5ƒxÆ€Žùµ´9°‰ÍîÆ-´öÎtËUCX(^$š› ¥kg›MÊÐT´ÙÎV ØàíN°1%¼dVØÒ¸ÏŽK·ÓÅ”ãÖ²}‹+à oØG,Ì2ûÕ‘[«Ê²òèfDW Üì_«!©9KËÄXKn¨–(A¸ºˆû[‚Ðßá´§1ÏÖC%ШB|3:–ë ª­.ŸbžÈ ·ö¥Ð ‡1'HÈ©L³Åî1ôZÐH4+OÉ.jkGÐìÙ± ùZjlŽ´¶¡Vt³5|Œ†^Vº´JcmóýuŠŠ*BIäF²YÊŸ(<3r›“À°HOi@¿fðî*F¼ÀÃ0ˆ‚¬‘]j&f‡¿Û‰`ÑE t …(A»»`¦ø¬ü’¢þr¤nÒvæEÂŽ¨Æð`5!<ÜŽeé¶6B¶¼¯ò jtE=1x~P¦¬2ƒšQžr©Ù3Üi[Krp ÕòN°×öÎà §ôCÓ€Û1'“O …öc)šsÐZK…±}+`F¦Ø÷¢\Òm=ˆœ…î^lL•,æ·Éë9sÄŒ ƒ›[éZˆIDsp?Ä¢}+N'Xr1„-Øëöb ªsz΂ úÇJ°åB3žc ‰óg²ÔéÏŒ ú7Öfe‘™aY)«çìƒ)ªÿzÙ^hã´ÞqüˆÅàçQa|v#bQDÍ+3Æ‹…ðíïRŪ´¬›5†2ƒVÍ¿þs Ÿ'Z’ m Q§ýI–¨¢ xòúÕ t*¢×qZ rÀýý*¯L o$À-{9þ€€öš7‚Ï…P2[‘Š‚§Ñ ,^wÈ_hìÜù„@W4'ˆ÷eÜ>!ˆ`ß,Û>Ó0}Æo:k%©[Fþ!ƒÛM„Œ¨è)ÿ!ÃÁ`C?jìuÕÿ1‘0&B²����IEND®B`‚IMAGE 1416 ./arch/monster/dragon/WDragon/worthless_dragon.x71 ‰PNG  ��� IHDR���`���@���Òê‚<���3PLTE���������Ì�-ŠV�ÿ��ŠŠ�íí�ÿÿ�1���ÿ�c�c2cDÙ¤ÿÿ�Oec»���tRNS�@æØf��IDATx^¥X‡vÃ6 —”ŽÿÿÚ Ë@ÅJSØý@é< ëåãÖ`1Ø ûÖ:Ïs}ü_àõÁeð¿ñØú%Ø“ˆN¨ö ºÅ¤òl'~Åû<áø<g±Ø¥1;ßÚ<ÀŸº®?pU ¥B0Z'{?Ú×ì2ت`½M˜#â½|­9ç˜bÝ6†.}´×µmj²¾¦Wõ‡Of‘C@F1Î1pÌAîŸtôs­¯ü“AÄGfP½ýÞ>F“Ïœ½Í kNq‰UúÎ6Z¿k@î ‘ÙêÓô&¹cðÌÙºP}kJÇR]wÝ…2ÇuJ%F]”lަÄýZ‰š„ÐÚ FM®•<Ýv‡à› …—$IId1P»ZMÓìV‘~ÇOˆ®Š›»êK£ÑåhÓ“2º|Wî©Ò³Wþ3~Œ6ÁÏ ›ñt;KóZ¦”¦ÊwÒ›9˜úˆh¼,U!_h¶MšK#åá@ᱞÀ$R2Y"“Æ$“°7â÷CPíd©"Õ•hô¨ùI]I˵Ô}áS›wàFÔ/tap‚³[´MÏf5’²üÁŒ Ò_“(äJÚhQˆdɼiúñÄŠðO†¨a3YìΡ2õî3§ v ÒÔ]ùgºk†_©&F²Pi’—ª/:#jxOðx8 WQ˜äº#wÏg“D·ÑUNݯ€Cî…² ÃÀY4ãZ:–`ÿDl—Ú_{Ã0™:Ei nÍ+”½7æ<¥áÍ Ç ÇoXP²à;IŠçð6 ^¯�Žd1ŸÆ¼@õ±‹ÀRiˆ•Y3ë¬ÏÍ4?Eæ¤æ õ%( vˆ£süãn½³¨%…ª?<^Li'vÄ®¯=úK¬‰–“.=I0‰–Ÿˆº�džÍ3Øg„f¯kn£ w%H«›€�E%Ó?àQdXÇ.û޹o¦(Õ †¸võ·XŽ–ê…Yo¤»­ÀײÚÎS’Uï7çÆ`ò¢1¥X è ‰¶§  ëÐj~L5q„^7ØÂ¬ T ÚÐ(U°-°ì8‡<%éq}î§ùn¤6n®õšª„f±îð*e8(¥«IW,±ý]PôU7^s(ŠÕ*?6ë<„ªU£LNl˜@ªr|xàù<— ‚#++¥+›€€õ~ÐÍÔUÇQÅG­JW ÊœØæºmZ9âÃF€¶t‚‚Ô.oÝ%¸T9Õ¯þFh ٠Ü Äî $ºëøaå²- -'¶£ãû‡!K?º0ê´ÏÈ_ÙÁLJ-tpŸ¼¢nÔæñÓå ycv„æ!¼á•’Ρfa”æ�xxܵ˜ÂÊ|©§gº:ßó`“Ì?˜ÞŒ¿Ühµýμë |*[ûp×[úÇè/‹2ú!ýQ0uÆ<€IÈfI6tìzÃ3f{W)œ6ÿ®÷ó ¼‘¾;ÚÍ<Ißó zÿn+ã¯Ò‚Ú·èб?8V9—hs%éfÙ2pGŸRïáV÷'ˆµGÿÔﯹùï)‰c“kq>[}NuÄÚDñì¤f»4|?4‰Þ]†úô§‹‰YãBßSb ¶`èœnU{skÂà×üÿphÿ¤~ªhU^L$ÿõ_æ–Zp³Æ Ѳ’8lWçY!È:ñ¯–H@Ù‹®‡%¯õ-ü?`ÎKš”–Ò´����IEND®B`‚IMAGE 1345 ./arch/monster/dragon/WDragon/worthless_dragon.x72 ‰PNG  ��� IHDR���`���@���Òê‚<���0PLTE����������ÿ�1��c��ŠŠ�Ì��íí�ÿ��ÿÿ-ŠVc2cDÙ¤yY§m���tRNS�@æØf��¿IDATxÚµX’ã( ŒŒ &ìíþÿ·§–„8žÜe+ŠÇÄ@ºQ·ÀUóx´ï¯íô]|j»¶ô%‚ö‹´ýŽR{ÛÉÛoèsld:Ñ+ûÿŽ•ˆõa|º’—RšâÿÊøÒþ³Ñuô(g93³ôë8èCüÖŽÏ œLPk®œnÈçÇX`\bÑî¥Õ\rá[Ù{´zÖ|ægåþóÌåmÌø²~Ú~e´å|rœ¸NŸæú¬܉6ŸÚ/M>‘”LçA1k"ØÒö;'¾·¶Ñ^ #ËjÏ1ÊÌi¬7W´Gäc=o6‰†´ÃÏŒ¹,¸ô¯‚_h#³pI@ıÀÓÆÀ# —^O–FZ½ŸHP¡kÍÊ©¬(.Å^ñ–à€ÈÐL&;,¶xêßÓƒ @Üìiý‰ÔòR à¢1fV­Š7 à€x¥íˆÇëèøI>äÛ ?Î ob[Ç=Pý6ˆŒ ' ’ÿ)~ä¢&!ƶr”7Ç. |ã|™ALÞ˜�¥Šb û[²—ߟH’ÀQÿ�?|à/ì*ªx€4¦(µ¸ìïñSnðåJZN­e8…�—V½´ƒ°þ >@³à»Ý0¥@ Fåðݼex˜µ±¼‚A?¬ærà!HE …2/tùE'Ë€A€¢›õã¢$±ºr©¦}åÇæ»B*‹6wjÂí¸Tº’Yщ¿´|dŸXéšA’³H¿Øì£°èO«œcŒ™]-|&‘â#Q2†@°:WÀ_§žŒQr}’ŽŠ:G¶b’gý¢~Œ1êƒè³^DTq4“ž±‰fJ¢dtK÷ž `#…¥¼gÕ‡\nb-W²ñ9½ÎTáœ@ÍüRŠ°Ï²Š_}|á\¼ 0…]Á¿ ¦Èôj‘Må4¬Ê>!W4æ~<y½â'+d뺮8$‚U¾1_{]ºJB;©d¸Vs\;%;-Æ…Æ’BsÓÚ5÷Îñ}Q"}xDÓÖ0?Fì4 spOÕ(=Oµ„æCÜM ’ÙJèAÊùP³1è!ÁÀ2WÛëÞ)0‘AJ"ûå€rãÂt‚Àž¼ L`8M×=1Ú>e1„v÷oʇf6žáÓž aÉ3~T5â> óh^ìí[ÂÈz‡{{æuX9Ù† üxkç|\ĦÜôù6,IR‚¾tÚBÀ;u©ùž‘ãß`DÝ×(J×UõŠŒðìsîÐMÿ0ÖWÒFà¡=ßF×)‚rí&³Êô‚Ÿô7=_â\ÞBÆzû&¾C·³mÆÑE.û!Žl ÷î H!ÜÃ�ðFÒοÕÖ®ÛÚ7,‹Xh_ÖÎì»OM?¸/é­Ì*竤¦pì^ä÷ÅE¢Ó• Á´1BöVJN¦ ⶸBºU¢¥+Ôå9Z­µm@Gçmú5ƒm}—A㨭´¶=>ÈÖ·Í\¨^)moˆßû'èä§ iŠóŠz|@oÀ;’ú®ÿ8H½Üº ^ úlÖü%¾ä@ŠÖ“êY¥á£Ü»ÌæÅ$šWÒçÁ¨áœ™¨Á#}ÿF4IÁ™B����IEND®B`‚IMAGE 1272 ./arch/monster/dragon/WDragon/worthless_dragon.x73 ‰PNG  ��� IHDR���`���@���Òê‚<���3PLTE����������ÿ�1��ŠŠ�Ì��ÿ�-ŠV�c��íí�ÿÿÙ¤c2cDÿËjþÙ���tRNS�@æØf��sIDATx^µV v£:¤´ƒ3óÿýO;½¹[ü&óV©RoR¶[ `û >/€2ŠX|H‡ø!vLJøa6á#ñùÄb”°�¿ð‘ôJü1Äþ0”jKúLyrÜSû〬Ÿ0þ#«(0¬>ùO@Ji¤œsbþ­´½Ñ­?Î2]þ•?§TéÉta#z´£®¶Ÿp´Vûþ,ü†¬½ÃÐko„>ÈôÚXôh½}Ô•_<èÊü ÎÇãq4ºÙÈøèí!$†üÕ±MìÀÝú³v2)ˆ ÄGÈÊÃAÓ1û!¦ªi:µBˆ�NYØ+±È÷²fBW.¾UÔП£Êâ½W¾; Tâ·#¡éêz#®.œ­iÔT.4êá¨TsQ`«äÖ¨Yœ�I{k"5$G¶‹•—\f†ÆØ ʵExýeô¯Fäž l¬ Ô’3–éõ¨­‹ Çœm§k/Œ—-ÇWûßù-é{;ªqu~¬/ÈÐmÌ×θãŽu­ÂošîÚûáµT[×”³—.™ÑÆà˜#½¢”ßÖ­>„‘’Ví KËr÷É2 /÷‡x‚P#¬ÃH µ{m­kÏ1¡Vè5é’¼ôòU€‰ä-„Þ:ÍUb¸4»ÕùÑh¢Öê…ã×@eãß\(§Ù 1j{QÀévõX‹y¾N*{„XpñÇ^+´‘nã[UÁ$@À$Ä€~vF•+çáZ}³PTß5m˸ û3K<sÌàÔ &$Ùö¼Ð÷oâ-aÐ)Àâï.˜:\ô«@ˆ+ (-¶)îGtõEÅ´ýý í�¢¤óZA§ÖX•TÙ9×ñ9ÛÁkW„+Ï„Ajã×ü!�‹œ Aà5ñ:&¸~2û;5œ; È4–(˜˜Økr"v¡³ÆZ„ŸŠK=Y6ÍžðÜ„ Âq͉N Gpç5!A'?9™í<P*¬9QAˆ¬©tÊ'0A¼Úb#dö@„`RY«ÆÓK°Ü§ƒXôã…?IPBpnÓtæ%‡›j¯ñG²«-^¸ÀulgÀv³M}›öp�Áˆùøq~ƒ©ñâ Ïàa <k pOé1_Ý·¹gîÂãûæÍ;þ·°¹u»Ðƒ)zr»Cä?=ÛÌ „(þ6ŒP;Þ=ºðƒ(à­?ÑnKGĦæG+cªk0ô§¦åÜTæÅ ‹kxXQÆÀæ'ƒ� —š’[èp6~døïeÿ(^TŠkÍz]¯ï`þƼ7±.žÙ{CR'×mÚ…ABˆ³kÆ7Ÿ®!@ôÑFìC·wxK^=H¸LY~Ùƒ6J‡ý¾pûºó]Ýá(ö}‚ûµÆmß Î½«Œýï~\築Kù$ Â_,‚ßò€&\ômà®7ˆÿ§bãNi-T)»wÙ8pâ@XÏêþ- ø)°,ØEùÆ›á‘Û²°žbÓ;åô òxßK‚mÜ k,øÉƒ÷J5§È7\4rço ü]/1³sñf����IEND®B`‚IMAGE 1401 ./arch/misc/wplate.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��‚PLTE���ÿÿÿéééÀéã9ECÑþøBPN‰‹”&.-óóóñÿÿ R-ûûûKKKööúEEMEGLììì[[[¿çâÈóíGINÚÛâÅÇÐàÿÿÈïïÄëê6B@;HFûüþÕÿüûûýRRRJM\3{zzz$+*wwwãããÜÿÿ¢¢¢]CR¯«¥ÈÄ ­Ò̓ŸœKEM³ÙÔkltÓÓÓŠ‹•Áêå­¯¹Ãíçµ1c}z„«ÏÊÄïé¶ÚÖÞàè±ÖѯÕÐ�2����ÿÿÿ R-þþþÐý÷�O�JM\%&.´0bÑþøÄïé=@MOOOÞ+ýýýÕÿüÁq8Àæåããã<?K"$+Áêå“'P)+4Ìøó±ÖÑ­ÒÍóóóñÿÿ°²¼Ãíçéééd‚dEGLÈóíííí+-6&.-˜îïõï§_‰‹”kkk£££¿¿¿Ò£®ÞYpHWUz”Ãèê°ÍÓ$+*rrrÙÚâÈ#H3,'/\omøùûÏüö)*,¿çã½äß÷÷÷ÔÖßDCIÃíénnn&Q& "*)(.-úûý×Þ×ŒŽ—IIIµ1cKEMEEM”””¿çâàÿÿ}z„]CRûüþƒŸœûûýkltRRRwww¯ÕТ¢¢>c>jjjŠ‹•ûûûKKKIDKööúàààÜÿÿ'''ììì[[[Àé㌌Œ¨¨¨³ÙÔGINÓÓÓ­¯¹ÚÛâÅÇÐ9ECúúú«ÏÊÈïï¶ÚÖÄëê6B@;HF¯«¥ÈÄ ®6Ž™ªÎɼ[oBPNꜪMNU‚žšRPV{˜)Srzƒ~š–ÝÿÿÞàèzzz³ÓÖd#nì���CtRNS�������������������������������������������������������������������_·U��cIDATx^mc“$K@ïmŽm›k/³ÐÆÐ6Ö¶mÛ¶mÛïÿleåÄtwÌžˆúpòÜŒ[ *ÓÇqÅ^ ?¾Ç8¡/$c^P^ШÁžì“¼ª2µ Ìt�1ƒ|²HxêOÀ¤t½"„ÐñQÿLJ¨×y"¦ùCš†¦ô PâI¾8,b¢ú±ÇÈ~kõ! t“‰z…È8HŒÅ(Œ2—i (�s™’ÊãXé›4ƒÅU| ÌŒKDUøð¡àÁÌÖt„Q“e>ûG˜?¸\Ÿ¾~ãÿðc–Ë5{ioÿ†Â®·Vëâõ[ ‹Å3ç˜\¬ÀèàñjAx÷Ýjݳw!{z–üéb²¯ö@k¼UVÞ±“÷Û“#‚üþ(«1 ¬ ÇŽî–NQÉII·[>õ3=P~ ‚$ýn¤Ó”˜DZÊEr×U×,�ÀzÛ¥³³óØ+š¹(´7Ú(�ÔÛŠ÷òî•«Ö]Ú¸™˜È‰‹T×d·Ñ‰0Ä^#Ëî®Ýû[ζ^¿|ãêµ[¹Ô5ÝlûHRS¿Ü‘åiÓgÌl¹«lº§|]LZ•>‡"B êæÖÊóæ;÷¹%•Άÿím( B2 Ëž¬xZ²zÍÚv•ÒgÏK64¾ Ô`@TÐë;7½|U]TÔ¨b¯~½R EìÇX„ío¨ÆŒ àdf¢Jhüè1º�T1Ñ‹¬"K¨¢Õj4YYÙÙ99ˆÉ˜›‹èç ù솧ƒO@§ãÂ^ƒÈnåð S ã°½HÂHlnþ aÞ»‰d`����IEND®B`‚IMAGE 217 ./arch/monster/undead/wraith.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa²""!!!���@@@ ‘RŒ���tRNS�@æØf���rIDATxÚµÑÛ €0 Ь—ýÿ' C £–êÔøæÉJÇðO½pC/½/8 ]žÐ ÷aªÊNœÎ/q»åÂÆäÜуcr‰ýoéáüá–L0ú0:C—äžÜ™³óÈåÒùVµKñÖé§·—’ðü—Ù�Ösyªø¹@����IEND®B`‚IMAGE 223 ./arch/monster/undead/wraith.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa²""!!!ÿ�����@@@k$"ù���tRNS�@æØf���uIDATxÚµ‘Û �!DMKÿÿ"5i/ãã±Ã„ôO”¬à¬ä¶á2gg4¬h “‰v|L±ãÎáFGÇÙ†7œÃ{Øí—ê ºx_vg�Ï à0¸ pˆ >Gœ#Ž[<3€ç`h/ ’àý—¹�„Üò²Z¯����IEND®B`‚IMAGE 228 ./arch/monster/undead/wraith.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4Vaaa²""!!!ÿ�����@@@k$"ù���tRNS�@æØf���zIDATxÚµ’K À0DM3÷¿qkìªý*äƒhÊ?Ñ Þ RŽˆ38tàe˧H&èƒ1ó©¦ÏnM‡·Kœä5ÇŒ£"»ådï!µ*v-9whÓÇàäsaᦴ×òHq‡‹"¼UÎÉÿ«ñ ÊëK‡ZœÐþOc#qÊ¥ß����IEND®B`‚IMAGE 1191 ./arch/player/race/wraith_player_feeding.111 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ wþ×Z��'IDATXÃí–KkUWÇûq÷r½„P,­pU’ˆ–܈ʹ$uÒ™“¥àpæÔ’á 3S¨N¤P¤A! E¨¹÷žsöÙÕÁ5!¡èI ýOΆÃÞk­ÿZë¿–¢îÇÿôÿ«'O¾{Û·4ÝpýoÎï ÛñÞu~¹�jiiIvwwï÷Çãc)€ÍÍMXZZ’÷•‚?aµß?Š|ggGmnn~Ž3ñåÊŠÜ7Þ…3c}}]�´Ö'è?üþ«ØÚÚ:ñèÕÕÏdyeEVׯ'">f\Nc¡S ܼyS®]¿&míˆ!CÝÝÝ5°²zÕ7ܹsGÎìÀaôwïÞ¥¡Žh­)Ê¥kŸß8r«¢æüùólooË™u@D˜L&üòÛ¯ï){=2k º–µµ5´Ö""xïÅÇ@*5W®\aqq±;[[[òàÁD„ÙlF=©@Aë[ªª¢ Ž&bŒó¨2K¯ß#/rêÙ+¦Ó)ûûûg¯Éd£G˜N¦„yݼbVÏpuCÀã|‹‹¥6ÏÐJ³qcç£Ñ¨›FðòåKž<e¨‡øØR§!W9(!%Á·ž˜!y�>|HQÝC{‘9.8’K EV`ÐHL¸ÐІßzP°··ÇÅ‹¹uë–:S Ô\l Ø2§•–\rЬ ,KD„º®™VSBøÖ“RâŋܻwOujÃãô///SD‹ÂW-Úi´Òäż ]ÓðºyMS5¸Ö Å¡6tÖŠ<'ƈµÆRŠxçI’ÐVBÀµ—M/ëR(§e}Zß—EÁh4"¥Dfíܘs A÷ çíÞy´ÒØ,CiER‰Caêä@Ó4\ºt‰Æ5Øl.8w€Kóh ”µ µ«!1´‚$ÇIT6¢çÏŸÓ¶-6³X›Ñ¶7k/¨ž"W9Þ{êX“RÂô e^¢Ì “ªó0òâ²,\3>hXÈÑÖ¼ÇÕó¢´9ÖdB²©ûRzùòe!BžçˆÓÙŒº®ßÔB†…øHŒ‘Ú×�”½!6Ï0F£¦{Ý—Ré V2”‚ªª¨«Š3B CPRBÔ¼Ý@¦,eQ’RDѦ;ý|€1†ˆ ¹bÀC®rl–ÑJK ‘…rp®èaŒ†4-cÎàÀÇ$LfŒ1ô³>…-†X›C …47¤ }Õ'7ótI SðøñcÕ9 6ðj0ÀXKtži5cÐPª’„`ŒE£ÑZËH™ (ŠQÂ[?µE¾ùb,Ϫȷ?ü¬�>¹ðéQsÿþôÙÑݯ×.H+†áðÛßÿôáVñ㸽>’Ûë#áü×ð61Û©ãŽ(����IEND®B`‚IMAGE 1309 ./arch/player/race/wraith_player_feeding.112 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  ÒlP��IDATXÃí—M‹×…ŸûUUÝô4b0 ¶a$ÑÊ`Œjg¶A­WÂm²TÞ: Vùù­³›EV™1XÚˆ$ÐIf ²c4Ý]Õ·îÇ›EÏi![ÓB@Ô¢.Tóž÷«JqFìÔõ5àÀÈ€ÒÉeOÎòÉäë·yŸbìÔõç'„¿~�>�þüøèÆdrïmߥVt�à*0n�¾¾1™ü@F#9<<\)À³ˆa§®ÿµS×>9€ñx,�£ÑHxߨ©ë¿îÔõ·_¬¯¿Fz*⿆ºþê7››²S×_½7®_¿þÚý'W>e{{[�´Ö¯‘¿­öŒP7oÞdÿpIÈ‹ãc®lÕCP¿k9œLÔx<–½½=Èh4âÇŠQŸ5ú;wîœ ‘®õ¤I1q° ®pj4ÉÞÞžÇòó+Ÿ ú†Û·oË; 8­p@”RÄ6¡µ¦¬J”Rlýò3ödmmMrtt¤RÓAÒœ?ž»wïÊÊ)8^D˜N§ìÿû€U¯‡³’ïØÚÚ«W¯Bã,¹Òlnn²¾¾þNÈîî."Â|>§6   MÓ°ˆžEޤ”–Q9K¯ß£( Úùsf³?^MÀ«•?Nyðà³éŒ/Ï™·s|» ð¡Ã'Ò [8´Ò\ûìÞ{666VîÙÝÝàÙ³g<9~ÂP ©£Í-"B¡J (!g!t”31�îß¿OY–«§@^©ÀõÞežì3CéJ It±#t<zôˆ .pëÖ-uf¯Ú¯–ÆÁ`€­ :é(¤ t%UU!"´mˬ™c$tœ3GGGÜ»woå9ðÒþË—/“rB‹"4Úk´Òå² ýbÁ‹Å ÍßyA-—­zÅÀ³§@€²(H)a­ÃCΉàY2Ú*bŒøÎã³G£é¹(u*@\áVs@D¨Ê’ rÎ8k—dÞƒÝ/1¼÷wÇÐJcCiEVW8u°°š‹Å‚‹/²ð ¬[œ©?Æçe´† Já»­o!ƒ1´‚¼ä<!Wg^F—.]âéÓ§t]‡uk]çñó ‚ê) UB M-9gLÏPʼFù£_Eot@zB€ˆà\"øÅrù á\±Ž¶–¾õY¥-°Æ!ÙæÕ×±j• ( D„Ù|NÛ¶'µà0¢HJц€ª7Äc4ÚhÊT®.@z‚‡RÐ4 mÓ0gNŒ‘á` rΈ:i·8e©ÊŠœÚhŒ6?)à)èŒ1ÄA)„˜"Æ U`£“Žçªs Ì€µ²‡1òrhó~FÆ8ƒˆ`Œ¡ïú”¶d8b­#ÅHŽyI¤ }Õ§0ËtIJSòðáCµr ÎÙÈóÁ�c-ÉfÍœA@¥*2‚1FkMª•P–%¢„·"ÿÉùí¯jù®Iüé/ÿT�~üÑËòý“ï^>ûë­¥Ãp¸ÆÝoþñ~FÞ„/·7äËí áÿø_Ã�É-N_ £Å¯����IEND®B`‚IMAGE 1230 ./arch/player/race/wraith_player_feeding.113 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ *p}"��NIDATXÃí–KkUWÇûq÷r½„K±´ÂUɃZ¼:+&séÄI‡¶àÔ‚3§~†~‚|ˆ :ª)T'R ¡µÐDÐ"ÔÜÇ9ûìÇêà&’ Jô¤ …þa³ÙÎ^ký×Zÿ½-°5i@(€°¿2 ^ÝÙIoz—¦ @í¯fßµÿmåm.²-ø|¿| ü|wugçGà! ewwWñ®±5ý±5ý°€õõuX\\”w•‚Ø�Ë_rùöö¶Z__? bâæ×++²5Ý|NŒµµ5ÐZ1~°ÿ«ØØØ8ré'?•¥åe¹¸::ñ!ãr ­jàÚµkráÒi*G "€ìîî©å‹Ÿ º†[·nɉ8ˆþöíÛ¢”"T­5EY ”bõ³Ë¯�d{{[ÅYQsúôi677åÄ: "ŒÇcþù;Á{ÊN‡ÌZˆ®auu­µˆÞ{ñ1JÍÊÊ ƒÁ =r÷î]D„étJ5ž‚Æ7Ìf3êà¨S Æ8*³tºò"§š¾d2™ðøñã“×Àx<æþýûLÆBˆ¼ª_2­¦¸ª&àq¾ÁE‡Ò ›gh¥¹rù Î9†Ãa;)>ˆàÅ‹<Ù{B_÷ñ±¡J"B® r2PBJ‚o<1%Bò�Ü»w¢(Ú3  :9.8’K EV`ÐHL¸PÓ„ßxPðèÑ#Ξ=Ëõë×Õ‰R æbC¯×Ö94ä’SdeY""TUÅd6!„€o<)%ž?Î;wT«6<LÿÒÒ1E´(ü¬A;Vš¼˜·¡«k^Õ¯¨g5®q ‚Bq  ­u@€"ω1bm†1†”"Þy’$´U„pÃ%‡FÓÉ:  Åqϲ>®ïË¢`8’R"³vnÌ9Р»ƒs޽fï<Zil–¡´"©Ä0µr ®kÎ;Gíjl6œ±ÛÃ¥y´†JáššÊUÀZA’Ã$ªVѳgÏhš›Y¬Íh‡›6ˆTG‘«ï=U¬H)a:†2/QæˆIÕú1òâ²,\=|аÐÖ¼ÇUó¢´9ÖdB²ÇϦÿèÀùóç…yž#"L¦SªªÚ¯… # ñ‘#•¯�(;}lžaŒFM'vÚ¥Ò¬d(³ÙŒj6cÊ”ý^¤”5o7z)KY”¤ÑFc´iÏ@7ïaŒ!Ä�"H.„0Æ«›e4ÒCd¡\ gzœ*:£!ÍE˘8ð! “Dc ݬKa ú½>ÖfÄH!Í iCWuÉÍ<]’„Â<xð@µNÁ‚ ¼ìõ0Ög2›Òëö(UIB0Æ¢Ñh­‰e¤ÌzE(áŒÛ"ß|1’§³È÷?ÿ¦�>:óñëæþëÉÓ×ÿ~µzF1ôû§Øüé×÷7ŠƵ¡ÜX ÿ㿆¿K<mpM7����IEND®B`‚IMAGE 921 ./arch/player/race/wraith_player_feeding.131 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ -÷¹À��IDATXÃíVMOQ=¯SÚ†‚––™L_>ÒÆBØÙéBY˜°ðXö®pÝ+ Mü nÜ0Õcˆ‰ ¦CjãÆ&”&-^2“ªh(„Ïæ½7™¼sÞ}÷Üû€ÿ¸är9êû‚b±H²,ÓÏä}Q,iyy™8çý'×44MóÉ/a†q;b‰% âœÿ)¿ÀnBžN§©Õjabb§§§°,‹qÎɲ,–Ëå¨R©° r˜¦és½ÊfxóàuÉççç)@ET«UD"t“Û¶ MÓ¨V«Am·‘ ‡éçÏ�¼÷öx¼·÷†]—|``�®ë¢Ñh`hhÁ`D„V«Y–ýkµ@�X÷ɯÎ98ŽÇq‰Dà‰‰F£`Œ¡\.C×uض|>O—\õ=/^ÈUU¥ããc4›MB’$H’„±±1}ϱÍÍM˜¦ Û¶¡ë: Ã@wÈwŸ<yë2öÁ[÷³³3t:8Žƒññq„B!H’„F£X,†……T«U$“I躎µµµ’¯T*Á4Íá—ŽóѲ¬Ï=¹@QGGGÑhÁ`¢(‚1†L&ƒíííË\�ÎùS�»ªªZõz}À²¬coß+_b"‚,Ëh·Ûp]ûûû8??G¡P��ò¬X©T˜WTU}À­×ë_»É{ÆÈÈy•OQE‘R©mmmQ©Tò‹NwEôÆ‹ùÍ ÑÔÔœœ@¸® Y–±±±f³‰d2 �( ¾í¼±\.ÓÅ÷ë ˜œœ$Çqüu8F,Ãêê*Òé´×†133ÓÓ¡®ì×u�NÃÃÈÇãXYYA*•‚¦i¾ï{Å•“pppÐ'Wù|sss˜žžî.: ·‰ÑÑQÊf³´´´äw»ƒƒÚÙÙéÏË' Q&“¹´ïß:âñ8ÍÎÎþr¯,..ÒÃä_ü}ôœ4ø]JŒ†��[ïj7Nº�þ2þ]ŸZ'X¿¯Ñú}úš^t¯_[_þã_Å7Ùf¹:E����IEND®B`‚IMAGE 959 ./arch/player/race/wraith_player_feeding.132 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ  ô*?Y��?IDATXÃíVMOÛX=ŽcLbÀ êÄ v ÉKÄW¼è ÄŽ8‹)‹‘X̘±Dm¥ŠYgÝÝô ‘m+±Ëf6$]vÃTÝb14 AEˆIÈÜn+*ME@¤ªÔ³¹~¶ôÎy÷{¯x�d2êŽA>Ÿ'Y–ésòˆÈçó´´´DŒ±Á“ëºNº®{ä_aš&™¦yCLÉ0žÞ[@,£X,FŒ±¯eà†€’a<-Æò½ÈS©)ŠBsss=3ЃüÏ’a¼)Ʋÿ®ä³³³äóù Š"lÛF(cŒ,Ëâ2™ 9Ž]×éððZ³‰t0H/{ `À¿�à»+¹ h6›¸¸¸Àøø8A@£Ñ€,Ëä8N÷i3ïíá%cÏ�¨�ÎÚŸ,�àú%gŒÑðð0\×E­Vƒ$I®ë"ãøøÅbñxŽã ›Í¢dϺ¶ø ÀI;;} Ð4Z­|>êõ:B¡$IB0ÄÑÑEÁÆÆlÛ†išˆÇãX[[C¹\öx …÷óÎÎs?Ðð¾¯+h4¸ººÂÉÉ DQD €$I8==E$Áüü<lÛF"‘èEŽr¹<òâòò5€÷¿~øðöÖPU•xžÇùù9xžG8†ßï‡(Šà8étÛÛÛ\·+• ×¾¶ß¼Ó4ͪV«‚eY—}o"ò¢,Ëh6›p]ûûûhµZÈår�@–eqŒ1ªT*\§5Mû€[­Vÿï&£Ôé|ªª’(Š”L&ikk‹ …‚W÷Ýý ÛÏ7öìË„T¯×Áó<\×…,ËØÜÜÄÙÙ‰� —Ëqm^,‹Ô~wŠ¢P­VóÖÁ`‘H«««H¥R1Œ©©©¾uëNèº.�àúú###ˆF£XYYA2™„®ë^Ý÷‹[›phhÈ#WUÙl333˜œœìn:܃ŽÞ±±12 ƒ½spp@»»»ƒùó ”N§{M½‡E4¥éééoCÞ™ ôKâÑú¾ú6ÍöÅÆ�€­½Ã{›Î‡oŒïWÀ?ëX¬Óúcꎺ×YÿqøïŸ�™^c9œÖ����IEND®B`‚IMAGE 974 ./arch/player/race/wraith_player_feeding.133 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ?o4��NIDATXÃí–1L"iÇ#ˆ͉ 0 Q#Sìc w›xÉuÛ‹ë,.^MauÝ&[›HµÝfšk„öš-¶»8`îH49Mô"0‚Þ»&œ»¹ˆF7›ì¿yóMò}ÿÿ|ïÿÞø‚G@&“‘Áø$( ¢išÜ&…BAÖÖÖÄ0Œ§'×u]t]wÈ?&"›ÍJ6›€²i†û{˦ùp±XLb±˜†ñ7àè—MÓS6M×ÈCÈS©”t:��–e)†aHµZU2™ŒT«U¥GN¥RQnmï�roKKKâñxPU•Z­F«ÕÂ0 ±,KÉd2R¯×Ñu]�¢Ý.iŸOʦù²lšï€ ÊÈ}ÉÝn7Ýn—ËËK¦¦¦p»Ýt:4M“z½ÎÀuoû,‹_ cˆ�çÀÀp£ Kn†ŒaÛ6Íf¿ßÛíÆ¶m‚Á '''”J%âñ8õz×/^ðÝôôöÀß[½4F‡!F£Òjµ°m›v»Íää$~¿ŸÏÇññ1�»»»T*�âñ8¿/.ò¼RyÕ?£X,¾úúÍFa`¨t:®®®8==EUU¼^/~¿Ÿ³³3B¡ËËËÔj5‰ñxœÍÍÍÿ˜¯X,’zûÖÿS«Ð~þþ=wNA$—ËÅÅÅ.—‹`0Èèè(ªª¢( étšýý}eЈ½*À0Œ€ß¢Ñ¨Õh4®-ËrJòÎ7 "NÔ4n·‹mÛrssC>ŸÛ¥ØKÝÏ€Ýh4þ$@@ú/‰ˆªª’L&eooOŠÅ¢Ót;b?öž?8s¨*˜•v»Ëå¶m4Mcgg‡óós‰�ù|^é‰pb©T’Þûû ˜™™‘f³é¬}>¡Pˆ R©T 3???ÔGݹ mÛàúúšññqÂá0ëëë$“It]wê~XÜÙ„Ç!D"är9™››sÈs¹œò¨£wbbBLÓ”ÕÕUgÚÉÁÁÁÓüùx½^I§ÓûŽp8, Ÿ†¼?VVVä›ÄWÔ÷C0´i¾5¦%6á`ïÝ6ÝŸŸ¯€?ÿn³õL—­gº<©ú>\ÿjý¥ðŸ+þa/h‹÷D����IEND®B`‚IMAGE 1242 ./arch/player/race/wraith_player_feeding.151 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ !$«wß��ZIDATXÃí–OleÆ3Ýu·-e™Mÿ- tS-ÒCÐdu¦ žJàÆq³ FR½¸]ž5ž#Y¼ôš&˜‚2“F£¦Ä^¤´èl¥uJºnÙî¶ea?u7ma±[ñÀ“LÞ™dæ{Þ÷ù¾÷™ãáB®‹ž\×õ5ñ‘¢££c yùù‘* ×Åÿ½ʃöìVÞ^^¦¾¡‘±PNöõÉA¿_?^(Xù'n£æoóúkÄb±{r©›!ŽÇãòÔ©SòN©„‚J >Çþ¢rÐï×ÛÏŸ·öxëPn9ÐEA*•’åoW¯å©•<‘HHÃ00M“·ß|‹k×®ñõè7”‹¨ªÊ;7³Ö«¯¢X¸^•cÇŽÑÑÑQu½ºZ+¨ªŠ¦iضMgg'- Á`ßg§ )Ô”Éñû˜÷xRâ8š¦ Œ'k>‰DB:Žƒa!8sæ †a`Û6‘H€§¤dzf†p8̬ëðwk+�BŽ9Boo/—.]Rj>Éd!BÇAÁðð0‘HÛ¶B°45E8fñêUZÛÚ˜žžÆ¶mLÓÄqðx<›>„Jy!Ó4Éd2ô÷÷Wȱ-dÖu©ß³‡Y×E½~wt!(вù.Ðu]Z–¥Äb±בÓ4+ ´¶µñ‡”ìTf]—sŸ~ À Ï§'“IŠÅ"ÍÍÍ›N@Z–¥¤R)ÇI§Óäóy„˜¦ À¬ëV’�Øíkàó \Z²�Åï÷ÓÒÒ‚×ëݸ% ™L&”T*%MÓ$NÓ™³˜Ì+t5ÊJÜím Ýãçû¹ Q_¹;w™›ãçB\.ÇáÇQ6¬ÀÙ‹g+ ”ÉÂýq�º%îòJh÷ø±ó\¹‘ã‡l†øŽotuu‘Íf¿ßÏçÛ¸ëº.K^…Ñ‹&‰D‚d2‰aèºN¹mÛÆ0ŒJW䯯È |ôɇp ö64ñAw·~¼P°B¡CCCwñUuB©BúÏ_ATL¨Ò‚«û5yk[7._fo}WrtîêäÝöv+r•ëªU¿¼¼ÄÄÄdÁúÅbü»q"‘ÈrÛ¶éééÁqvmÙB(¢ÔÔÄ_}É_Z€¹y—l±MÓ8}útm?£©ß¦VÒÛÜXÙ.Û¶‰ÅbÊjóFÁ¤”ÌÌ̬8`lÏ,0´»G7MS©F^ÍO6K_½OâEbýˆ%iDDÒ€dËÚ90ªi2ºS“'ûú64ÜSîíÝôîëekËV˜A)› �y ÖLCŠ®ëò\4ªs &J¥›n}©Rù‰}Bþ«ÀÝ×:…¢š&>ó´|þecC TÝ›û„zœùE>»ìÜwËï¼÷ídMû­òàÌ/nê;µZEåûÿª~}ïê’”@™¼,ÿF°:ÉZ•PVõ±Yü‚%+ 0H¢����IEND®B`‚IMAGE 1214 ./arch/player/race/wraith_player_feeding.152 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ê¢M��>IDATXÃí–Oh\UÆ÷e¦3ù3M^œØ¤Â­3N¨P!Ò6*í›¶àB²ˆ«.\ •jEDpåä)îÜ …Šev….º DZ+ïQ•Ú±¤MÚ7ãK›’ù?“¾Ìd®‹tÆ$MêdZŠ‹žÍyî=ßw¾sÛÓ5µÁ?{pÃ0Öùgj‘Hdxùÿ™* 6øÿ½âI�»îWEÏ£¾¡‘«¿þ Þ?zT ƒÆ‰|ÞÎí(¢åŠ|xªŸD"±)–V p2™TgΜQ+¥:‡Þ|ƒƒ‡{Ô@0h´ Ù¯úëóu÷ ¥$N«òÞµ±|ÛO¥R*cYŸ}ü cccüpå2¥¥š¦ñùü¬ýÞ[Ç(ä—Á¯Ñ××G$Ù2^Ýv3onnFÓ4t]Çqb±mÍ­´¶¶ò×Ôïì¨ç°¨ãR‘GŽ2çó¡”Âu]t]�6·]‚T*¥�¢Ñ(RJ,Ë"â8Ñh”îîn¾=ù"bá0§^ßOKK �®ë"¥äüùód³ÙÚzÀ4M¤”H)++$¤”ˆk×hjj¢X, …˜˜˜Àq,ËÂu]ñù|57¡(²,‹ééiz{{+ ,\½Jxi‰�]‡ñq´{÷˜¼r)%ýýý!j?†a(Û¶E"‘X½u”ZW†wíÂó<Ú§¦ð<‘Ñ›� †iš ÂápÍ”mÛ"N«d2I&“!—ËUz`jr_K 3¡Ë�Ó…e¾¿t‰l@ƒAÚÚÚðûýÕ_D©TJ™¦ Òé´²,‹L&ClÁàVN°·QUüÛMí´×P+pÉãòÌ 7s9®çó,,,püøq.^¼(ªVàÂ* ”Á^êM°·Q1é­z€é•eÜå<ŸÞø“oŠÅŒRg'³³³" Áð=®æ%¿(+išÄãq ÃÀu]â}…ã8¼WN…뺨l–_®§è©×i²a†êèèàܹs¢jJƒÌÝÛ +—P$Wº-¸”’»ccô4é‚#¯¼‰>öAªÛ*{Ï{ÀÈÈÌ‚}Ãføça¢Ñè:pÇqèêꪀG"JºÎ×§OãÛÝÎí©Û4Ѐ®ëœ={v{ÑèÑUz-Àß« ë8‰DB¬½|+ d2\×?ŒgÇÉes²,±ø–î «@}@áGÑÁÆKш¢EЦGæ@E3ªÚ‘lSöíÞG÷nv¶í„û«MdÛ¶xrÀ4_7 ‰‡ ¯úd7%`Û¶P/™Ÿ˜†a¨ÎÅÌ¿ ÌmXZ-ÏZ’{^ÞÃÊŽêTßrÕÉRÉæzܹ%¾ûÝ}l´òZ€/~ºµ­z×4mfîÜRMû´­2*ÿWöI|yl¯z"eð²üÕØZ’ÛUB<­ìŸ[­öú†þ@¯YÌ����IEND®B`‚IMAGE 1172 ./arch/player/race/wraith_player_feeding.153 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ )ÌÝ’á��IDATXÃí–ÏKcWÇ?7&šD›©q°ÂÕ¼:XŠ¥F˜i±/­[a¤›î BÁ2”. ¥‹¦¯ÿE™¡6Ó.fp1W2”÷(]´´’Ìì‹Ü‘‘(8“±Áèí"}ãè4Æaèb¾›Ãƒ{Ï÷œï=ç¼/ñ|¡ÙOnšf}¡ˆÅbuäÞ÷ U@²ÿ{Äi‡ãoëJ¹L(Üοý LÓÔ7Ãaó£ÇRk_©Â§ŸL“L&äò5CœJ¥ôÕ«WõÞþ>-.½ûñ±‹úf8l~µ¸èh¿@v¹4z)%™LF{wO@:ÖSSS¬¬¬ðÅgŸ3yù2{A•Ý]ÞÔ-|WÚvZÞd°\€ÉÉIb±RÊ#ýµœ4ó®®.|>‘H×u$Úu–·B!Â…G¨=oö…æýËR©TÐZ£”"‰|Íf-ϧÿ$™+¥0 )%ׯ_'‘Hàº.†aéè :6ÆÃÕUúúúXËçy ”BJÉìì,£££ÍÕ€eYH)‘RÖÎÍÍa®ëÒ³¾¾Ž°–ÏÓsî;Ù,®ëbÛ6J)ŠÅ"~¿¿é"ž#Û¶ÙØØ`bb¢¦€RŠÎxœZWÉïÞ%¿¶†ã8H)™žžFÑ|˜¦©ÇÉd²:u´Æ¶íšž2ñ8kù<?ÎþÄrk+¶m ˲ØÝÝ¥»»»é�´ã8"“ÉèT*E.—£T*!¥Ä¶íºwVJñ¨§‡ïW333ÞPÁ`h4J h|¥ÓimY€Èd2Ú¶mr¹ƒÛ.�÷J‚¡v]³®-+Ø‚Ž`GµÒý~¶··g~~^4¬À­Û·j xä�})�†Ú5j‡:òír¶€}(‹bdd„ÍÍM ikkk|›¦©÷‚_nÛ¤Ói,Ë"‘H`š&J©Z &‰:ù …W¾¼e Bm<÷öörãÆ§øŽÚ¹•%µ!T#9ØÿÉ¥”,,,T‰£ðÞÉë1ã™?¤–ã²/—ÿæÎ;° ΢Cö×,†aÔ‘»®Ëððp<‹ …Èüa €¥µ%„‰D"ÌÌÌœìgtÿ¯ûÕð^Ö«Rº®K2™[onn®¦@.—C)x°ü€ÒrIض-Ž#?Ýç»u[¨M@ÓËáKÓŽæ,š0šŽ§ö@MºÑ•ìH.¼vÑ‘QÎDÏÀjµˆÇÿ:‡°<®Û†„×ó”OöÈ�ÇúÕ …‡aš¦>_Ì=Q`ëÐáÎ'•îÙ?ÐÏ^kcª{êã©eWµµÃµ?Õ3½yg¾þùÞ‰Þ»©è(¨­¦îùŽË¨6Vÿ#ûÃA|ûÁ>U�¹'#8äI•Ï+û—hÿ�Q[û@W1����IEND®B`‚IMAGE 727 ./arch/player/race/wraith_player_feeding.171 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ #5ýDß��WIDATXÃíU±nÚ@þŽ©™Ò¨Tr,ì˰t wLQž  ’ßÈçèÀÖGðÈS—¦{%Û’K¥š(M•ý»pÈ ÀÆHUû/gŸïü}ÿ÷ÿð¯ÛöñÛÕUkÝ|= G›öpÎ)Š"fÆl,J‚�bÀ\AZë­$*xøW˪ÝN&VBAKàBÚ¶oëÏO&“ûjµú;¯<½ÇGýúîœsb+à…ØTÓŒÍ>Ïf'�ðc:=úETY·îÕÅÞ__ÃÔ> ž§@äØcôa:uÞXVjHK)I¥�@k½“X‘úJ)_*¥n²ëa8✣Õj‘ã8ð<ý~�`Û6�`<#¯*E(¥n èÛ‡‡Oõ0 !QÁq¤i �èt:KûlÛçœöV`5„=­u/JÓRJÄq Ïó „@’$p]I’À÷ý­*Xeh­{�° n|Ç1�ÀuÝýNÂÞØ(ï`0@£Ñ�çüð �@·Û¥$IY¯C’$O{‰Ì³'�Dó�I)i8.ÞóLXy rívÛ\L¹k­²Ù+¥@k¤'Zž=È9ç`¶Ü!…³/E`SM¥”‚`§ìKÅåù)qÎ)kÂUã1_éð›e»àÙÀ/ÏOÉo:ä7@V…²à…»à¬vŒ/·?çµM眔Rlü|a<` 9.-=+Cà¬v �~¯"Š¢EÛ•qý^çÀ!Ú¬R6ûwS–9J“±v6&<d3>øeüpZ¼J´º3����IEND®B`‚IMAGE 771 ./arch/player/race/wraith_player_feeding.172 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ ##%(<��ƒIDATXÃíU1oÚ@}gH¤ U–F¢*±°/;RÔ‰;”!ât( +¿Áˆ¥?¡K~AWFT?ÀXr30dHÒ*Q¤À×ŇŒ  ‰TµO²î8|zï{÷¾3𯃭ûsR¯·Œ’ë…~¸jçœ|ßgfÜJÀ¤^¯FÓr4Žóµ" ÌÉ…¤µ^+Â2Äy9FÈ€Ói.&jþ±fô<ÀX BPª€¤‹ÑƒC¢Çƒ\n­WÍz„ö¤^�h¼¸ 7wwàœÈÓ`kìç�ÞþœÍn_YÖ¯élfMûrÈØ,¶¿ `ôéü\+¥ µþÃþ4lIè–žý”ˆå£¯OOö»|>4R’J)�X*"sH)_+¥®c.¡Ðï9ç¨V«dÛ6\×E·Û�‹E�ÀÕÕÒ:ÁÚD€RêÚ¾¿¿ÿ^è÷‡Bˆ’ïû°ma�ÆÂ¾b±Î9íì@BˆŽÖºãy…a)%Æã1\×…AÀqA€V«µÖ…|Zë�$ÉMÆã1�ÀqœÝn ²±ÒÞ^¯‡R©Îùþ�€f³IAÌ«NCÏû‰ª'�DÑ€¤”4 æ¿ÓBh=‡¸Z­f>L©ïæ³V¯”-±žhqu/÷@Z‚Ùb‡l\}&«ÎTJ Ïó¶ª>.ÏNˆsNñ&ƒ·Iø2£U±)Þ/F~yvB­ŠM­Š='ˆ»•|ã.8=>ÂÛ‡èlCÆ9'¥‹ˆ_&&Ñ<³õ,‹€Óã#�Ààæ�¾ïÏÛ.KêwºöÑfVÖê? YìnÈ,&¿ ± á>±qò%"˜ÉÁü•ø ?Óhðº—~����IEND®B`‚IMAGE 830 ./arch/player/race/wraith_player_feeding.173 ‰PNG  ��� IHDR��� ��� ���szzô���sRGB�®Îé���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�� �� �šœ���tIMEÛ #:cN€ü��¾IDATXÃí–OkÔPÅofZ)Š‹b…i˜™×…⢋‚(–y)EJ@ܺé¦0ß#¥?€[ÝùfÙD7n,¸ÑU&‹EkÿÙvæºI†ièüiÚ ¢ÂK^òrÎ=÷Ü—À¿ªßͦãt_æp<U¯÷\£µ– T2ž‹@Óqò@«kªŒ ÀÛxnø:U¯H¿L@tÀ1âû~_¹8×tœôƒùxø«ÕšÞ³ññ�xÜtœ»ñÚ*€ëº¢@ œ7ÆH?…xlÇjtgßy©òù[ñ½<°l‡Àý¦ã<n?]\ô¯ïì µ•J¸¦’*ä•:Ùk·?wZí¶:yDÀ7àðxv8?Ï‹ÍM’ÚwƒR@õ0ÝH¬J¸Üh‰¨¼RŸ^ŸœŒß+~NÕëÇ�¶m‹1Ïó�ð}ÿ\PôŠmÛ#žç7g¸›pWkMµZ˲¨T*¬­­P,ØÚÚbP'ä†!àyÞq\ª£'ûûÛSõú®1¦–eE�ËË˧Ö‹E´ÖraÒaŒYõ}Õu]‰¢Û¶i4T*Œ1„aH¹\& CjµZ_ Yø¾¿ O|Ðh4�(—ËÛ ‡ðFOy×××)•Jh­/_€•• ð“uŠa^íG$Î^�‘xĶmÙØØè\2aî*È-,,$¦Ï²fïyr†ô"§g/eä`uºC†Î>^5µm×uÏ•}¦Xš™­µt›0m¼aÌ—9js–twÁ_š™”Úœ%µ9«ЭBVð¡»`zbŒ?âÚFJk-žç©ÔÄÕGâÄñyféUÓc�l|!‚NÛeqý…öËh³\Ö쟿‰T×Þ™Lá<À‰ /3†î‚ü *ñÁÿø+ã7§…sWB¼����IEND®B`‚IMAGE 1159 ./arch/player/race/wraithp.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��…PLTE4V���'''###!!!'((???#$$'-'%&&,.-¡¡¡ÿ��())%'&$%%XXX"##+++/0/...),)((($$$!"!   %(%"""-..()(  )-)111  ��Q- 042(,*#xxx" *++@@@d3343000010.1.```142 * ¿¿¿%1%+,, ! $-&)**' '   � �� �'+(-1-+/+)/)qqq)"RRR  #)'Q4&'"A0*>>>888464444  W.#$# &''SSS‡‡‡#%$#2*777# +.,!_;+(*)%)'#'%ššš*0,   ///***(,(')').)%%%','$*(7:8kkk �� " .21"� �� �­­­%,(333151131+.-%(&%*'      a<-/00$&%374G2*.//,1--/.*/+��ôÈ]Ã���tRNS�@æØf��°IDAT8Ëc`  `d`& ÏŽWH?;^˜ñš°“áP» Ž@l-Ä 6‘«‚œ4–�°vøg`Ê;Ú6q ©Ù¯fºSea3†öÅYÄUEÅ]¦NlÝê….ÏXê.-Ý"u0_ÔÅÙ¹#ˆ‡C1“~™ŽBgÖ)ÊE„û¼Ðåe4C/åiØõ&‰y »£™àÈÏ/3C!s‚z£€T„÷œòËè6ð3ªôÚ5ÚsŽ•OG™u3† ø¥Vq9(â8)£¥µ’i:z`;òdzpèÆ)ûl6+ab•@7}¹¯¤Ð‘¨\I¡c‰á>ÝœÀÀBmLûêY7Mº’"P»âªÁ~IN4yÙ:VéÂ%K7plß8%ò¼'z8ïÕæ`’Ušœ~œ·Ê\“Åj¶7š<Ë:^‘YÙ¦&ò|kcÍ-ÏHˆ£)ðlðu¨™¹EQOÛ/zÙiÕ]©Æh úEÖÈ)&ÄÏÕ—?Üîº;¹MAñH>¿‰!óÕöÉér‰¹¢Ë3xXÏc äcc““]_Äí&†™ÜNœe``cc²ª-ºð''ú�AheUW°����IEND®B`‚IMAGE 1120 ./arch/player/race/wraithp.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��pPLTEÿÿÿ'((()(###!!!$$$$%% #$$???'-'_;+'''-..,.-+,,ÿ��())%'&¡¡¡"##@@@/0/...),)((((*)!"!%&&(,*���```+++��343142"""  010  XXX000111  #%$# !#)'Q4&'"A0* %(%)-))**+.,kkk#'%%1%)"RRR/00#')'%%% ' $*(‡‡‡­­­�� � �� �Q- 042ššš#$#*0,  xxx ! "  ***(,(',').)'-1-  %*' W.SSS * &''#2*777" .21.1.///151%)'>>>888464444+.-131 a<-%(&"374G2*.//,1--/.*/+*++'+(7:8$&%+/+     ¿¿¿  )/)  � �� ���•_Le���tRNS�@æØf��žIDAT8Ëc`  Pa`& Ï…WH?^˜q™ ÄÊì çòØMd>"ÎâÉ2A‹’’Em ìL[&‚TÄ'`*óÛÄâ)ͧ&m6­\´7Q ]ži®ª¼¼[£½š™žžoµØ ¼íÖZ¶Û=æoÛ`š+†.ÏÄaç3ÝP§d¶èV)}SU4$……9’´ j÷ˆ°ÅÈðWÍË@7A˜ÉÀ?tŸQ×:FVkWÆJf ³MPÐ5ÙÍÂaiÙÏ[–’§X8EÜŽ¹ ­mãe”A7A.…M@–}ïÑe²ìûÏì’ãf`BUÐÇ›“Çè~øì‘ÎÔs³Êr£É3p˜w0Ê;––­âܘV+¸ž‰MžeŠ€xtPSýâ%v,Ùáh º]Šu#ëÒ5•X'ŸÐÈ]-#¦ _|’¢æé“^-›Õ%¯à›±ÃMórAVõCÞq±:JJ{lŒÕ,@Sà ¯%ÑÀ*¡½s¦¢›‚”1º<ÃÒ5 @ h¾Ò‰ªКÉÀðR@w��Zsaa© ¡g����IEND®B`‚IMAGE 502 ./arch/player/race/wraithp.131 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���ÀPLTEÿÿÿ###���¡¡¡ aaa...¿¿¿ààà???,,,@@@777%%%+++(((333$$$666F#c1999888444```!!!***111 )))|||///vvv   pppžžž---555 '''E"&&& æÄ²���tRNS�@æØf���äIDATx^½Ev1 %™šq˜!ÌÌpÿ[EÏ/›tlg5)-«6_°#*>?‘¨‚EÔÇ 'B°EÛºƒºFëAºƒáèýþrL½˜=‘l¥Ë'iFµ "pyãÎ>×”¹Ëâ2Ådÿh­L^´,Lgì$ÆÍÞ°õíñ‡/I¤³f~phW�bÇCF‹c\ŠÓ\Ú¢B„gDåtyn€ >ød+]^¥@ò)è2ÒZO’¥ p#tou{wÏ?ð쟼žY<¿@ððÚØ}^â·°‡Áü‹ ›ív÷Á_Ɇç Y78…‘g����IEND®B`‚IMAGE 511 ./arch/player/race/wraithp.132 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���·PLTEÿÿÿ###���¡¡¡ ¿¿¿ààà@@@,,,(((F#???c1...%%%333$$$666+++///888999444```***!!!111  )))|||&&&žžž---555 '''E"777aaaÔû—M���tRNS�@æØf���öIDATx^½Åv1 �%™½La.3sÿÿ»ºN{h¯sjÇÇé=þˆª}’*\0 {d°.âØïþlàþ ÏN°ÛFÅÒm â1÷øÛ9aCý„ˆ€ƒÞõ½!‹›ÙÈr�½} cìˆv>SÚF±'À9 L>>µr~'X1)Xv88iç-x‚T Y‘m„à"Çß^R" œ&š%à†‡†&g(‡Ó+®pÍf�—DÒÈ;­\ÁAÁ6ÍunÒÞ½Š,xcÒ|ñäNèàq™/�ªî�&Ï/ë:yÍž½µ¡›ÕÊ÷‚”u½ß‡ƒ=Ié€ÿæ eÕÖ–¤Ñ_����IEND®B`‚IMAGE 686 ./arch/player/race/wraithp.151 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��PLTEÿÿÿ¡¡¡aaa���d3¿¿¿???!!!@@@����� ���›››ààà‚B' ��� �� ������� EEE+-+ - 476%;OD>@?sss�� ��ooo6:7� �788����W,ÿ��687|||>A?;=<9;:899lll576<E@,--4=8XXX4E;JJJFFF<F@<<<>C@565=D@***5<8((,20 MMM“““½½½��AAA4?9797777575.;./42ŒŒŒ 6;82<7õÁç���tRNS�@æØf��?IDATx^µåŽã0…/ÙNÊ<ÌÌÌÌ̳ ïÿs›éjSw”#õ)²ò}:²¡-m2wÚ¤ʃąí§~ôôEwØÀ0ç.·¾®nƒmŒ[ö9YÂ¥×ãÅokg6o[&DBZÿ;½òç'ZdO FËjàc΢ÆŸ½ç‘E P¿ZR]º 99Z°Z©sÎ ¿/”äe Y@™˜”ã¤8¸;Ý‹aЏ1Ö˜±T±x;µ±|á0$ñùT8è¼qw"$!5nðI ¸ˆeù≘þ½¡;[bæøÀ—lLj(òv¶÷*Œspו’ŽÒ¯a5°úšÓ?:SS.™R¥ ’vžàoê<-"eQ³ê 0Î8©'Z:ßôS0ÿI‚ñÿ§i77ZíË-‚ùTÆé����IEND®B`‚IMAGE 689 ./arch/player/race/wraithp.152 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ�� PLTEÿÿÿ¡¡¡���aaad3¿¿¿@@@!!!‚B'???��� ���›››àààEEE �� ��� �� �������575.;.“““+-+ - 4?9%[5%;OD>C@�� �� >@?sss� �ooo����W,ÿ��2<7ŒŒŒ6:7|||>A?;=<9;:899lll576<E@,--4=8XXX4E;JJJFFF788<<<687565=D@***5<8((/42<F@ 476,20½½½��MMMAAA6;8797777i':è���tRNS�@æØf��?IDATx^µÕnÄ0E=`ÊÌÌÌÌÌðÿÑIÚÕFV´U{GŠ,£;ŽÕ¿„dšs_¦Y\ánÓ†Y™_7\´ß‡w؉ǜ~Øü\ÙRÔ¿¾�1 ÂbçÑaËåêé„Åg@Àµ¹ýå÷y“1¶€ †Å€Ç´�l „ÐùÊ …7k…6#e-®ˆ‰¿Jì`n:k= °ÃÈ(ÆHÑKOTÀkíÊh=T•¾»“݈ÐJÄŽƒ:ä3ÕZ¡p;¾ÝLHþÜ -4äž#ÂÒù2Öÿ¡/•'åoG >Rµ6dÌTÇ3G…ër‘¤ðuT ¨ _9Q®º'óÂ)Y,—)JøöÜhá "*M[P½ÝžÖ$l:ÛPv´§ë'žl®½†êÅrm¹ØµÚ2âí¿Ì•c¬[—¼����IEND®B`‚IMAGE 284 ./arch/player/race/wraithp.171 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ¡¡¡aaa???àààG$###@@?ÿ�����@@@d3¿¿¿ ‡>É���tRNS�@æØf��� IDATxÚÅÐá à FѨѯšúþ¯»D¡?Ö%…ÁX P¸ÇTJ¿ÂÞµ3½M×kVÁ7!—ŒÝïBö&GÄkoqëJN�3èÓ˜È%e°/¬§:ëôþ„u}fõ€ì©ÃE†Lhï«?�ípzï}½�¢4Ö]p’D½'Tç[#P�ìÝ>v¤ ì4àç'`Cÿ˜[º9Φ=x����IEND®B`‚IMAGE 296 ./arch/player/race/wraithp.172 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���*PLTEÿÿÿ###aaaÿ��???@@@¡¡¡@@?ààà¿¿¿���G$d3¢4¾���tRNS�@æØf���¬IDATxÚ½Aƒ0 %☂áÿßm5i§‡Ø¹µâ¸‹,ÀoBp…·Â¼£Á`%÷·wÃd¨÷[`–lðÁ­ï¤1.޾í–è°ø~œÇ9 âÚ0rs Cñ`õ"Ú‹Ÿ•€·…@ÖZ¸™ò© Ÿ ^\�\ +ẗò[-ƒsÆ÷+cgÞp_º Gˆ<rX~ä8$¾ aÅ+<„ú}ÿÏÆe`{‘ú<����IEND®B`‚IMAGE 244 ./arch/weapon/other/wrench.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���sRGB�®Îé���PLTE��c2�1�cD���¿¿¿(0ŠÔ���tRNS�@æØf��� pHYs�� �� �šœ���tIMEÛ 04Ùßžˆ���XIDAT(ϽѡÀ@@   ®qxDè¿„ÄÂgp ŽwÌ@ôå�mÏ,ÂùÌšÀC¬Á+(qi­žWn%k°(wI¬aJ3ìZÄ¿”¼€_»€vÄò6Ù­����IEND®B`‚IMAGE 187 ./arch/wall/wwall/wwall_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8G$ R-���d3‚B'Þ†«���tRNS�@æØf���TIDATxÚí9 À0Äöœÿ?9ìöVÀeÈàN²°íjUÅ\-ï™è~ϴƉ¿*ø Ñû ? S'>B¦s ý|"�¬0°v­á4)íbhwÖþ94©����IEND®B`‚IMAGE 240 ./arch/wall/wwall/wwall_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8G$ R-���d3‚B'¿¿¿Æ—5—���tRNS�@æØf���ƒIDATxÚ¥ÎA1 CÑ &vïb,A„„:‰T¼è¢ÿ-rÕ2<~s­•õÿD  â�áu€áeÑ™ˆ7ð¶�Hj 8€:á|O€¤Ý À§SÏǵœ€šnˆ�m7àÔvƒ˜@Û 8µÝ FPýT?Õÿ�ÕÏ·ùèZÐùl¬����IEND®B`‚IMAGE 245 ./arch/wall/wwall/wwall_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8àààG$ R-���d3‚B'¿¿¿rx±ô���tRNS�@æØf���ˆIDATxÚ½ÓQ …0CQõÙäíÅN¥Æý3Ÿs"‚Û·ko›;�þŸ[õ%ø‘l±©ƒç~Ä�ô™{�Ëu°ž9çšõÌ( Î³FË…'PIY@@0P÷xƒ!ÔSô»€ õ÷]À…€º‹ÑRÜwlMÝÅøvLô;û;,öÁ{&˜ ‘dNR����IEND®B`‚IMAGE 287 ./arch/wall/wwall/wwall_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���¯IDATxÚµÐAƒ0 DQJ=¹ÿ…“©å†]gý'PØ8õYXzkÍgÈ�aö�ÜÆKÖÀl¼ÆÝ›sÄ <"и ð ÜF_»€ð¹bôÀ±¿ç@žÔ™±˜9}‚]90gàÆ®Ü¥€ Œ\A°+§k´ ~ö£ì ¼‚ÄyÀ ( `—ç( `§¸{vŠó@÷?Xlûÿ>* óï]ki����IEND®B`‚IMAGE 218 ./arch/wall/wwall/wwall_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡G$���d3‚B'¿¿¿‹%{˜���tRNS�@æØf���sIDATxÚ¥ÏÁÃ0 ÐHþÿ“» íÔbW+WžˆsÜ„ß9¤¤7€ÀZ Á½÷ š^/€ûš� ò�þîG@ƒf`2H}aõ€(ƒ80¤¾°z@T�¿(•OèQx`Ê@ð Í/�¢º'>ä NÚYÏñÓM‹����IEND®B`‚IMAGE 254 ./arch/wall/wwall/wwall_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡G$���d3‚B'¿¿¿‹%{˜���tRNS�@æØf���—IDATxÚ…Ó1Ä0CÑå#rÿ#o“f³".¬7»àsOÆ9ˆóÌã8ò¾ÿ%@r•x�WMžc€È”d@Å ’˜¸AUýýÿ jÉÎå�¯@[P`@²óp€iºÀ‚j vÔ ’0@]`A5;Oj\y 7P¨7c  —ÓX  HƒÕÏ|BºÛúx«����IEND®B`‚IMAGE 274 ./arch/wall/wwall/wwall_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���¢IDATxÚÅÒËÂ0 DQÜÏðÿ? –ݪaÂCl˜í=•%—ÿ,Î[v�¼õ~�ñ ûÝãñaŒÞ�®ú@n à 2¡*¿™sÚçS@Ï@º9æc*इ[êW.`îæ(Ð}S@S7·ÝÇG  º+`ƒ­�P=Ü0;È'à@žÿ‘�;Øwž€ ô5×E»½fIÜ:– „3üÛ¹����IEND®B`‚IMAGE 316 ./arch/wall/wwall/wwall_7.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���ÌIDATxÚ}ÓAƒ0 CÑTKÜÿÂ-±€êzÑÍ“&ÃøuL´ï€øþƶmq†ˆÀè‡Ô�èÇÄ83à"HjóÌ@mŸ²—�ôó¾B¾bõL@@ ' ´ �È<ýèÞAæ(:È<‚@ö6½‚€A”€> z&dÀ doШ÷Zè Ü— È€ÈP÷õ€VÞhàþ2Xp�ÌÍ0ÐÞ)Ý�NÀh¼ƒ—ó�Çܾ&T//Z úÞ>Á¢ })¹5����IEND®B`‚IMAGE 242 ./arch/wall/wwall/wwall_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8àààG$ R-���d3‚B'¿¿¿rx±ô���tRNS�@æØf���…IDATxÚ½ÎA Ã0 DQ;­4¾ÿ‰[3…üB6%³IÐ 7kEfja¾ÿD¼$V÷!¥ÞSóÀö=ÆÐÜ?Y‚`¿Ñ‚½@ �w ö-ÜK°´ pï³çN ”w—§§ç^ s½á »{È•Ñ=d�göÚ%8£÷Ž;¿6Ý>t á¼ø£ ����IEND®B`‚IMAGE 264 ./arch/wall/wwall/wwall_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���˜IDATxÚÅÏÑ Ã0…a—85ïÿÂM‚=iÐl7ƒ‹‚ý? ¥{òêcåþ”Öš ìÀ”ùžÙбªZ»ç÷/›™`~/`¦ö.V*6n¡Êx¡Œ»Gô@Dà}Ìá=ˆf‡@?�K�zò �Èxä´ÓÊ¥æ�9ï„|ȇNžÏÀ3zXýä9úË.…d Ý2¨‚û����IEND®B`‚IMAGE 258 ./arch/wall/wwall/wwall_A.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÁq8àààG$ R-���d3‚B'¿¿¿rx±ô���tRNS�@æØf���•IDATxÚ½ÓA Ã0CQyK¹ÿ‰›â¡€É¢´Ú™ÿ ^8øÃæÃpž“¤ÎÝð=˜ó%in‰:†FmàFP¨«_Ñ"²F‹ÌUXÝ"³Eä ¬n‘¹ØÀ¹ûj‘‹Jàlp;3�uôÇ[dd¶0ˆlѽàÂÀ9E÷‚óM,@8ßÄzGBmÆ~‰Ï?Îï÷½I \FÒB����IEND®B`‚IMAGE 302 ./arch/wall/wwall/wwall_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���¾IDATxÚµ“AÂ0 Mìíÿ?LbF‰{¨´žQÛ¸ªeü6Ò£«Ÿçé–©‚¢÷/‚÷u“*øElÈ¡“Ôý.¸wINÞ&…îMí c@5µÙ£!Û50à!µ-` „æÈ²NžcOaqŒÅÁGlƒCoaqŒÉˉ« ÈWB•|òû¨<"¶on¯´"€ËÖ³8…e l ßFV{bŒUƒcÂÙiHvT¶?Êõóÿ<�nú®ƒ¼p����IEND®B`‚IMAGE 282 ./arch/wall/wwall/wwall_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���ªIDATxÚ½ÍAà CÑB¦¶sÿ 7C$,&IWU½ä?1¯? ›`ßAR»7~ €„e’ $êÝÕ·9 1è hQÁvô#Z€·À¢‚³[€¸`¬`t °Ý d·È¾q+¨½…u�D[³4>¨À¹ŸX€óè0s‚q¡€™³ç… Îl  2»#ÚåÄâ 0×°ÈúhÏ ÿ+ø�G —úÜÙs����IEND®B`‚IMAGE 302 ./arch/wall/wwall/wwall_D.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���¾IDATxÚ­ÓÁƒ „ábÓÍòþ/Ü€â‘rjü¿!££¯1(1æWÔZq‡ÐÍ6�Ö™Ö#ØÝY5ýÆ?`$1 IÒù9x¼ïÁü<p‰ ÞÑ#JÀ—@"ƒ³KD_ äWÝ»¼¬€ ´.ÑؾÁg{1þÎ�È_”2ÙÈ@ù87xʽØÀÈ1׆ z=6dpffв:¬<VLÀž�c®Ÿ3A³¸n+»¿;È|÷ÛrlìÐ����IEND®B`‚IMAGE 326 ./arch/wall/wwall/wwall_E.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���ÖIDATxÚ½ÒAŽÄ0DQlÓTåþîÁà»ÕšÅHÃ.ü'¼‰üÃØ/#×e�xÕì ù;0S’¶Ís!$øêìã3¿²¾„ÝRœ�”á}Œ†€ì J�}%ÑCdŸ rt‚uPf/ahÖ.@ ƒÀ{ ?ðàæ ØÁÙ›²�øzð˜¶<2çÙ»TîñPyvSÈ>$³³|á�™³7E‚ìC"`‚�⹺iK@ï el@o€üÅîi°ÀYcª˜ B¨š¶ïÀïë'xm-·UãÂ����IEND®B`‚IMAGE 346 ./arch/wall/wwall/wwall_F.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡Áq8àààG$ R-���d3‚B'¿¿¿ç¹±Ü���tRNS�@æØf���êIDATxÚ¥ÓËnÃ0 DQZf8ãÿÿá2|H–ƒ´‹rÀºÇXÒc‡Bý×®ë²v@¨þLc“Ø#ŽðZ³/Èÿ™’´mî B‚¯Áqαøý$o€O�ÊéÝㆠ@Ž-ÈìGdOQ=@æ-h€Ìª·0 z­A ƒ=@ô)Þܸƒ8;xöC¹�øJÐÜ鱃[flP ú•Gž€X9º)T?¥³Oð�™«;@ê§tnÀ#$sw›7‹ùQÎ è¨/Q¬§.gƒé±xYùýò*TÍÑW÷öü�ÇÁ’¢‡†����IEND®B`‚IMAGE 228 ./arch/wall/wwall/wwall_left.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Áq8àààG$ R-���d3‚B'¿¿¿væ���tRNS�@æØf���wIDATxÚÅÓA „@ DÑNœ¤úþ'–2‚¨¤k3ÌÔ*ôàÊñƒÅ{w0gd&&Wç×AÄ ¸ó|� ñ1ø1žì7`|õ¸èðÑú^�¶�ü@º^€¢ì‡h:A‰¨NÀî-P}T_�Õû¨>ਮÁõ»üm;¬nZpZ—Å����IEND®B`‚IMAGE 223 ./arch/wall/wwall/wwall_right.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE���Áq8àààG$ R-���d3‚B'¿¿¿væ���tRNS�@æØf���rIDATxÚÅÓ1€0DQE³›ûŸØ�•&ÀŒ…nÅÌEšl®ù‽÷× •à ÙÆÂž»Œ• ê5Hz h"îH€ $]X‚¼“g@Œ+ë¢W�¬¨º@»ƒª¯ux‚{¹Þíšß0íƒ/z€Æ|Ï–4����IEND®B`‚IMAGE 266 ./arch/wall/wwall/wwall_w_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���G$d3‚B'¡¡¡¿¿¿wô,���tRNS�@æØf���£IDATxÚ…ÏA! ÀÚNøÿ“›�{i1›Hxd…Ï3ÈŠubŒçý„È �g‰ä¬Aj�H2 ²Ç0ï |@DœfîÁ¸pår€¯@;·   €²�p�$J°!Æhm0óq1A–熕'£—ô n´ ,ˆ äÀÊÁ¸2˜yRo <èÌ;à dy@6ˆ  ¦ÝÏðÌE¿<Œ����IEND®B`‚IMAGE 266 ./arch/wall/wwall/wwall_w_0.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEÿÿÿ���¡¡¡G$d3¿¿¿‚B'h^„���tRNS�@æØf���£IDATxÚ…ÐAà ÀÊþÿ“kè!‰ˆ0íÃgQ¡X+ÆØß/ E�XFô€Œ^Q1@ �Idt,�ã|7ÈÌ'°Gð·`ž8{9ÀW Õ[Ð�@ö©Iü3nu(D#Ð#”Šß-1û`öÔn€Öär`ö`žt_@o =èŒ3à Dy@Î< †Eîà 3ƒ Ý*dï����IEND®B`‚IMAGE 265 ./arch/wall/wwall/wwall_w_0.113 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���¡¡¡G$d3¿¿¿‚B'h^„���tRNS�@æØf���¢IDATx^]ÐÁ Ã0Ь€©zç{lä{œ.ÐCHTuÿZÚ€9ÁÓH,£òÙŸ£ÿÁ«F`˜¨€90€«ƒˆ)S"x:$\Éç ðê¡N@–ÈÈ'šˆêNWB…º^óÂ4j  N1öÂà·[Êé þc71©îdÉ<$îÒ&ÈÅrŸá ÐÁ˜ F�,�´›–�)oø�}q+Ø™à[µ����IEND®B`‚IMAGE 281 ./arch/wall/wwall/wwall_w_0.114 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���¡¡¡G$d3¿¿¿‚B'h^„���tRNS�@æØf���²IDATx^UÐÁm„@ PJÀvÈýÿ©À`qÒ� ØÕjû/!ì!ûŸFO_²=Ã'Êv×ùyÿÁk©` /°.ÒAƒ”Ÿ­V”µÑ”÷#Á®(SÚð))mË7œ$TB®´Ø ¸ËØÙdè1¹3Tð¡Àa2& íöHbzÒØ/Ê~Kh`J‹ÙŽg9ÎT®| Û†hZ`WC.,@F›¹V8|. íø‡_Br(x3“´Ž����IEND®B`‚IMAGE 276 ./arch/wall/wwall/wwall_w_0.115 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���¡¡¡G$d3¿¿¿‚B'h^„���tRNS�@æØf���­IDATx^]ÏÁ1 Ð)a¿ {ÿN!Vî3³ Ì@ˆþKØp€Øüœüò%ËË+be7^×ð†GË æ5A3«ÀqþÖ ìbL &±RI<o³¡›0m)w²ž(Lרhpàp?³ÑI`™AåøÑ<s†Û7AtKt¢³1È/\œ@¼–G<n<„ãà,+¿@l¢ÌÀfˆ`RSC/Ö-Á^/ ¤ìø÷$-%>Y����IEND®B`‚IMAGE 269 ./arch/wall/wwall/wwall_w_0.116 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���¡¡¡G$d3¿¿¿‚B'h^„���tRNS�@æØf���¦IDATx^]ÍÁ Â0 …ጀŸûs&HåÞ–zè� Äþ#@‘Àu|û?=Éi?X^ŒÛºÇžcµZŒfEÄ•&·É Æ�0’ )¯»/t×ü ËÅ*¦Ó&#?à¤Bääи§Ÿ”ØI»N}'éE{Qtrfe«T”ã:³quB!›ƒTæ‰Û�f(#p49‚¡„…Ö,ÀR†�ÈËÞÙ>!gyÚá����IEND®B`‚IMAGE 246 ./arch/wall/wwall/wwall_w_0.117 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTEÿÿÿ���¡¡¡G$d3¿¿¿‚B'h^„���tRNS�@æØf���IDATx^½ÑÁ Ã0Pà'øxb+÷Æ] ‡.Peÿ*Ú@*õXNöã ‘f‰Ö¡|ìóý†£E(Ú-@S5àéTÜo'pe�Qñ T#ág”Mh9PŸœm—�R�‹ÿ4ûÒ¥ò_�_pÈ”ŸË¡“Ȫø6)äl w(¨é ,ºj€aK�©ã/š þ¤«z����IEND®B`‚IMAGE 280 ./arch/wall/wwall/wwall_w_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€    R-Áq8d3¿¿¿‚B'���àààb¶²—���tRNS�@æØf���¥IDATxÚ½Ó1à Q%!tÿ ;¢°+ç{_Aåë“ÖºªZÛû·£ßƒ–@ï3»9ƒ™ÚU­:+îL¬N ˆÔÕÄgw‚N¶�1Ù]Vߢ”!È †!O‘²k�9�}µ•ùp¼kjW�Îsœ”^åÈ�±» 9 �9‹è.äC, B>Äìj&G@ÄM|þqÞßÏž£4‰j����IEND®B`‚IMAGE 302 ./arch/wall/wwall/wwall_w_1.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€    R-Áq8d3¿¿¿‚B'���àààb¶²—���tRNS�@æØf���»IDATxÚ½Òí ƒ0 …álµiÚû¿à‰ÉY:d¿¶ ˆ}ŸúÊf~L]“1¦ªÚÈ9Áxæå° §;€€þæ|˜Ù¼1S;ºõ•ƒÕÅë'Ð `µYM:"ÅtæÙz� Df<Â{ŠÖp0Hq6Ì�ÑyîÆ¨ îà=…yæBÌÛµ vÈ/ƒ¨ äxSö.[¦ `¦È¾„¹ æ*¼/aÞ„æMød²ŠëO”ùeä÷ó˜[¥Ýu‡����IEND®B`‚IMAGE 326 ./arch/wall/wwall/wwall_w_1.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€ R-   ¿¿¿Áq8d3‚B'���ààà{`0G���tRNS�@æØf���ÓIDATxÚ½’Aà ]bÀæÿî&ÞÚ‰8ôÔŽ„2ƒQ¤Èðç[éÝçœÖAë'ä¶Ðv~zu<ï¨Ó«w"î/3óDõZ‰˜M;†@_‰Ø@€5në"ÓdÁCÞ ÷¥mƒAÚ¼­Ò¸"|Mµié X¨b j ô,3x:˜ jF£Î ¼^“Cka@¨=÷(ÆÃ òÃ5Š[P^΂~HiÎfQAéXÐ/)MÏ¢j’ý꽈` õ^Äd²;üÅ¿ ¿ç ½#]Îæ>—����IEND®B`‚IMAGE 335 ./arch/wall/wwall/wwall_w_1.114 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜG$€€€ R-   ¿¿¿Áq8d3‚B'���ààà{`0G���tRNS�@æØf���ÜIDATxÚ½’Û®!E‹þÿŸ]¹µ“4}:݉ÉÀZâ˜H?ˆÝrïÓœ&":‘ÕÊgJ8ÆHà ß7Á³ƒÙfÅ¥ªV¹À™»&UÑÇÒµ=èÐŶ+¤ Ö*Á¸QÚà€iŸë ¡ `nŒ9/ÃÀ¹q e�Û\‚ó4xÛè݈„Ð3Fàšó™ì˜kK Þ ü&ô€Sû]8 Ü öc^§°3yxì|Ñ öv%4îÁ«ø¦ÄÉÓh¡1xÁ7.¥ „7/Ãß‘Òþ‰—Hö%ôÿùd6ÚT\”)����IEND®B`‚IMAGE 347 ./arch/wall/wwall/wwall_w_1.115 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜ€€€G$ R-¿¿¿   d3Áq8‚B'���ààà?ìn���tRNS�@æØf���èIDATxÚ½ÓÛŽƒ0 EÑ”`ûØÿÿÁ3¾*¥}«E%”½€ ÑõƒÑ·ù,뾕™qÿÏëÖ·~û ¡~‚N T/�Mœ»[ £Ù‰ÔjÄ—ÐGg,ón6"{gHê ºD6[Ù[¨Ö Ä"7AêL¶ç�ÑGPtp¯  ±ï¼' "T½Sw˜[€Ý 6 Duª¾ÔŠP_O Ž~]�g£ìâ °%š=@‰?lË!|ÕVdô»^Øc 96ÁÍt[G¦ü•IÀ+s›8Òxg`™Âäp}‰K¿Ìþ»׳b =u$����IEND®B`‚IMAGE 397 ./arch/wall/wwall/wwall_w_1.116 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜ€€€¿¿¿G$ R-d3Áq8   ‚B'���ààà‡þ.���tRNS�@æØf��IDATxÚ½’Û’Å MÿÿƒwbiÎÙª}ÛyЄn)riÿ8òj÷ªê7"‚°¸…o#äCxá0 ØÅÝ£rr³*¹«÷ác"²1¸kÍ…q äÄêm‚¦!û|HbK0kð!Ä�-9öˆÝ¿Ïħ°0…)§° Œß¥¬¥°Œˆx&p!N¼„ ¸x6(î*×¼$y6ØÂâÃò=¨T{x_‚açÇ"϶„Â6œB„­ ¬øh‰§°«Éå-¯\a™Iãš|B ®9Q¥„Ä“#ð JÞ|6â ǯ2¶ õ˜ÖÕ®zY×ÉÑCšÍ®Üëv Ž"Ó•ë8óú£G®g­<fœ)òw~�´«çJ:¼����IEND®B`‚IMAGE 370 ./arch/wall/wwall/wwall_w_1.117 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE²ÀÜ€€€G$¿¿¿ R-d3   Áq8‚B'ààà���í¯Á���tRNS�@æØf���ÿIDATxÚ½I–„0 CMºÿ+2©"@^/[+áÿ!&òÁ’’ZÑ{÷zÔZB©cú6ÊQ/aw®¥(î¾ÛaÎÜ»7s‹xíXbDÜ(t·ÍODt— g³·ÐÝm Š—‘8B’s‡Ä«0Ú›"ò‚B§°ãB¬&ß ƒ;Å_?°’7™+>èW0<¸"¹QPHi¸q(.AóÒq’ë�(yHPtƒ&�®¦˜s_T�'ä!ÄªŠ Øuú¼ÀÝ9VÞݹ¤’ ˆiÇÜB[3Øœ´ìÁýÚÈ™´q¬‘3z>åe°dE°}�:ì€ìN®����IEND®B`‚IMAGE 220 ./arch/wall/wwall/wwindow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V¡¡¡G$���d3‚B'¿¿¿Àìé–���tRNS�@æØf���rIDATxÚÝÌ1Ã@ AÓKžþÿãÄÜ$�¯7Ki°Ç3ë;B"ÏŒŸûXqF@ÜA¶ÀÓ€‰Ï®ÿ±S ñÔ‚ãÓ­O/Äó–‚C/tpÿ{Á! 8fu�*ÀÙÕ@dÔD" ‰Õ `T€ÿà¡"ƒ����IEND®B`‚IMAGE 264 ./arch/wall/wwall/wwindow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���!PLTE4V¡¡¡aaaÁq8àààG$ R-���d3‚B'¿¿¿ ª'���tRNS�@æØf���•IDATxÚ½’ËC!O ÿÿÁ ÷Zc|ÄEÓ Mf¢ðì�"ÌÝ;ð}`ö"i[@:‹Pt(ø¦pBÓçm©)Ÿ@½Ì¤@õÅíƒÀ0Ï;8xoÁè-jpðÄáâàK ,ÆiÁå1Lór³ï‚|`¢y½‚™.ÈcT¯àz(wà]âLï$tƒ×M„ÀïyïÔ´^wš����IEND®B`‚IMAGE 417 ./arch/monster/dragon/wyvern.x31 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE�������2��d��Í�.‹WðæŒÿ��M´G£���tRNS�@æØf��7IDATxÚµ”n1 C;.ÿÿÇKÜ“Ð]O3…Šªï5ºÆ^¤q+!¥ò¦A7 AÞ1Ì)çV¨hÎCdˆá(tÄÓ<Ì Å>~¿TfJ±YˆH­WVP©… kú(�½»fÏÆbgTÞ]÷©qöHYÅV8x<d>*x‘ HP`Ì–ŠYÓ+͈(â)é/5\íR,‹É^6ûšËE?è5¿¿qŸ.#¿;œ2Dãò l[ šï½-�WàãT.TV%õ ·ßw÷7î"j(cš.Ãåc~h=Þó—aMÚiþJøI° ü1pSá`]XsÉg«Øà‡¸í ‘…£3 „c3¾Íˆ¸°ýéÇ, 0”ðSn †[ë˜Ççç0Œûä¿ósAEç<*äÿ•/ˆö":…†����IEND®B`‚IMAGE 425 ./arch/monster/dragon/wyvern.x32 ‰PNG  ��� IHDR���@��� ���•C޶���PLTE�������2��d��Í�.‹W²""ðæŒÿ��‚ãŠ���tRNS�@æØf��<IDATxÚ½“ ŽÃ C3žqÙûŸxÇ¥R¥¨(Ñ®K!D<c>9þIä3>ÈbÕ#‹Èä‡1h=J€ǸÉ#³KÄì2x‹Oó@dU0öñ÷ü¬*26ƒ0“óW-´2ÙJ5ß`¤G ÈRkè”4èê€<ŽÂS¥TQ4ÒÂë‡æ£…„VM+i÷-½ ~íS§‰:᤹,¦‹Išue}xDÓ§ôÎÿ…{ö‹Í“‡%‡N¨nÙÀnóÇ•…†°ta{XIºvøÌë[ãñÂgwæ¬åŽñåê¡q»�Uo7{—¿Þ‰‹§ƒ2mÕX (:%¯ßû  @Bã@^Âõ±pŒ€—«ž¶iÊü’’ìGHšñ´7´ „ÇM“?î)Ä?PøCãÄû<|èãø;ýë\æÔp B����IEND®B`‚IMAGE 427 ./arch/monster/dragon/wyvern.x71 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������2��d��Í�.‹WðæŒÿ��M´G£���tRNS�@æØf��AIDATx^•ÑËŽÛ0 PÙ3ñzdÁ{‹l>@¼å~€:ûÈ4Ñý3Ðÿ4AŠ"ÈC@ï–.®ã¡™×Íß›àà[{•öwÿj€á“Hßžz ¡cÁ“]]k~¸b7MÛb‡¿+ˆÁß|YØÌô¼�+ÈuSWû1݉Ÿ¿«é¦f>]7?¢1w¸ÌE륛¯1ϰÏL˜ÃÄæðóØJ<u¸4É,¨«_œUwÄ•èÆPƒ`T…¢Ä«"2÷®êB9­à‚©²Åë?Ì粕áie*©Åxs Ã8«*!åDñöš� +%Œˆe¤|ûjƒÌ;÷Œbš\›æáƒÈ¿g ÷>NªÓš¿FhxšT©ÚþØ�:OhÌC‡µçi ¬¡)æ¾ †ÏǦ0  ~ íÃÿæàHOèÑ����IEND®B`‚IMAGE 428 ./arch/monster/dragon/wyvern.x72 ‰PNG  ��� IHDR���@��� ���P³c·���PLTE�������2��d��Í�.‹W²""ðæŒÿ��‚ãŠ���tRNS�@æØf��?IDATx^¥ÁŠÛP Eå´ÆÛÚïmi³µ.Újïó¬fÝO˜òûŤ f’<(s6Zœ‹àО ¯±,ç¢ÿñ“JDĵ › ³ýxfó‰¨Å“Š*ÏËJć/ê¾?Ͼü{ñ`Q;"ðó,întÇ7`‡-Ìõw‹·ß�XÌm›{ôûr"zå.Є9<Ôò­-Ö¶=ñp…ð€kØvcÓ>µDõ­dUÀÂâ¶óö#©qtæs(Ž@6¦v¢Ã!ÌByL+dBŸÅwžša‹Í‚H«ð”&åvó{]‡ÈfŒ4&né3`ã„íÔñxç]‡:b„‚…ºã4ïÌí”éÐ*ËãUaôˆëö5eΜè)ÉJ( *¬t(} t&’ i êH%šËŠ•p <ø£|¤ÿä/3ÍH–˜ºÁ����IEND®B`‚IMAGE 190 ./arch/monster/insect/xan/xan.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTE4VÍ…?���ÿÿÿõµl���tRNS�@æØf���`IDATxÚí‘I À0 ãñÿÿ\ã@|‘½–*ÛAƒdÈú¨ 6Úê+“¬£\Ž'(³…*7ÀøAÈ ¢—O�šð@œŒXÂÍ¸Ø 3ãÌBj‚dÁ¼ö«†½÷ŒMüz§Ì‹’¤ü����IEND®B`‚IMAGE 180 ./arch/monster/insect/xan/xan.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VðæŒÍ…?���ÿÿÿà '���tRNS�@æØf���SIDATxÚå‘1�1ÃRÌÿß|RUu 76 ±Ì€Þ S‹þ0ô=Á"zAÐQ#ˆLƒ �2 ÂÞY¡íq@õFq °€ð†ã8‚æÊô4=—ß­‡mÀ1����IEND®B`‚IMAGE 206 ./arch/monster/insect/xan/xan_gen.111 ‰PNG  ��� IHDR��� ��� ���’g��� PLTE4VÍ…?���ÿ×�…êWK���tRNS�@æØf���pIDATxœc` X¥™þ7p5€Üÿ_é?�1¸ÖOÝÿkÁµ4ÿg¡ýkÕR0#ÿÿÔH# ¬Ä�‰è­þµ*jˆ¶jýê@†fèîÿë€Ô�û!Œ}ÿÀ ¦°ý+óÁ–­ÐbZÕ@šË¦-/eË����IEND®B`‚IMAGE 310 ./arch/road/yellow/yellow_0.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ��� PLTEÙ¤þÖ�ÿÿ�€Ç ü���èIDATxÚuRƒ@ ¢üÿÑ Bèå¦F(.;Á¶à3¦7 Râ›ñüYl"­�&±Kux˜àV±|꺥RoˆwŠÍÁfÒU[æéÈ1¾‰ñE‘sÍl)W�ÃÀªöîâH)< H ºI!eXh | c-€¢éÕÃ|6ÝûdIgXoÔÿÌ0°·]ëÏütN>¶ ädsèAð[žT¨wL«]b$¾Ç‘}ºwauóìꉳH;!ÈÕ£·õ½ù éGÐÉ¢¨ÜhéC:o‡>!áì÷? týMâUîLüjµö™~����IEND®B`‚IMAGE 312 ./arch/road/yellow/yellow_1.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ŸQ,Í…?Ù¤þÖ�ÿÿ�cDIÞã���tRNS�@æØf���ÑIDATxÚ½’Û„ CeÓøÿŸ¼¤e' òºÚf´âárIw=e±¿õ²Ø[†$(°÷ Ðc ‹½Z}ª¸ÆÊÐCy>ˆ ¬ þ-Rf˜Vj”TÜ”$”5~ ÊòìñÆà½P¸¡QàZá�AHÛY(&ˆ…AýŸ2Q\€ÈqØæÒ‘1X°3ˆ`=Žæ`ùþž¡ÕY€H˜Ó>°2Œ35°o+C˜ÜîCò—䋿x'cÔöz'9â|'c¦Nºþ¢/~4 Íàžìú����IEND®B`‚IMAGE 303 ./arch/road/yellow/yellow_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEh�ŸQ,Ù¤þÖ�ÿÿ�cDç’D ���tRNS�@æØf���ËIDATxÚÍ“KÂP ©Þÿʼ4ó¼hKDD>H.ž¤âõ/¡óÌ縗à¬Ï1»,{µ©ÖHVGZF#pÙÏÐJ,–™Ú±™_Ðx_MJ†¡âÝš$ Ç@«¼òªî,«`À€ì.$vÏVjé5 eMd6‚yš[ôƒ¤c‘ýñö“ýñ†) {ü}g8ðž#p¾å]lÓàPG0ÛÏâ{æ:*%Í’ák H`A€en 0ÏÎÞ`39xæT,¾Äþ–o1¦Nžˆ����IEND®B`‚IMAGE 336 ./arch/road/yellow/yellow_3.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf���éIDATxÚµ’Qr…@ÍŽpÿ#?‡ôfÔz¿¡ ·ZÜöªºë #É×­êöé;*69´”<äci$y ÎßWÔÔ¢¥†ê ïPÀl¤K»«± ˜ÜµMvÞA0#6ƒþfÈ.pÎ6¸¢y6Ìg £äÌäŸËÿ6‰·(àÛ…õæ) º<Pãr®6³0ä.|a`ïRþƒ½ Ù{(ñ'¦ó€h(€Œùô~/`‚ áCß÷bwÐs#C–=–À^`xÌÆzÝIK£Ãeç"â;ÿoí_ a›X0����IEND®B`‚IMAGE 311 ./arch/road/yellow/yellow_4.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE��ŸQ,Í…?Ù¤þÖ�ÿÿ�cDIÞã���tRNS�@æØf���ÐIDATxÚÍ’áà ƒç’ôýyØ!:ÿ3‚w”~ ¯1\×wµ9|.J²$†‹™@äãÄpYÁgØ„nã þò ³µ3x³ÁáÌ€‡ÝZòß‘734Ü7 ½ÚÊ ZDapþû–†‡ À¾ï ~ut ì &¨íh™E¼0ìo‘ZôBÀìïP† q¦„DÀ„Ó*“Úæ¡ó‡9šãLrøös&5tžI¡T  ”¡\ò%0TÚ͹V?·C/Ê<|�•õ D5®7˜����IEND®B`‚IMAGE 328 ./arch/road/yellow/yellow_5.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf���áIDATxÚu’à C·Frÿ#Ï€{‘Úò Õ¯ð‘]dL—Áù¥?«€Óâðp rœ{èg ƒsŒúTpŒÎ0%¿ï ĆÀ�:ƒ·EÚáªõ”)"x2ÈÉP©ðgWΩ'ß…ä‚Aë„ !;z!mAõß)%Qì½@äórÌ£#µXp2ˆ ·c¸À ÎWùá¼ ¯0ª æù<ÆÙ Œ�87¤¿ÏE[!ùË”ÍëLÆŠãq&¹ô>“±„¶‚vEÊ;ƒoK­Ý±÷BÊ÷ñÜ‹>?v¾%÷"Q����IEND®B`‚IMAGE 318 ./arch/road/yellow/yellow_6.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VcDÙ¤ŸQ,þÖ�ÿÿ�[M’���tRNS�@æØf���ÚIDATxÚÍ’nÄ Ëdüÿ/·wñ¢„t ,<ýù/µÖµXÇÓo·!g¹g·A:Cä+µP>¾eÎJ< ÃÄZ„­“ R ÍuôfЄ(C¡jØÁ…`CÕ€úï¦ï†¬^soÃeL4Âw4=6#_ Þÿm„Ê7Ãã,<VTÕX€6ó xàÄ}ZÈ«/†a‡ž}1;0évÞÃÎÆÄêÝÍ.ÆðèÙ“Õæé]�ŽHd­5 “`}Vñ8¹Qt ç]Tëoí Ž”“fÜ����IEND®B`‚IMAGE 353 ./arch/road/yellow/yellow_7.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf���úIDATx^E‘AnÃPD}‰ì«Véº2‚u7ÍÐp/¸ÿÊðÄcÿÅèσã¸G" s~4ªð|Æ�!sÎ/ˆ:OãÏá©óÙy#«2ª¢U4˜_Š”T—Õ˜a1O�oÙÅ`:[(FÈ„PO†rŠŒG8Ê<=<€Ý%Ø£ÐJF·à¤ÒZ4šà"b$yßÈ,¤•!7ƒˆx1îÜÆ4IÅf'¡6ã5 £4Ì@hñY¹wB·’X†ÔÍpyí„7üfPµªßŒd;ßjÞ;õ!ùÜ€i"Äùyué¸q¯ûW‚]Bã†ãÝEì÷øý£òЭ*y����IEND®B`‚IMAGE 306 ./arch/road/yellow/yellow_8.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTEh�ŸQ,Ù¤þÖ�ÿÿ�cDç’D ���tRNS�@æØf���ÎIDATxÚÍQÑ! š€ÿÿËK‘Ó^¶Üã2²JÏ8JÛ×?`Ì11Ïo´tÔ=`Ö€&ìAVÀïäX ,€â'®’* $&GJPŽUÛ”»˜¬;@Í™»q<¨$ Ê|Ò13²6à< ÄЊv›PïýÛä‚®d 0o…Ýø6CgÍÑúgå7iüwt…}R*©î뼪‡ÒE!ÌU–u,ÈçÉÿE¢%²J·]ô}ÄTÛE/MRmÎò…ù„×Oð¸_ë %ƒg����IEND®B`‚IMAGE 326 ./arch/road/yellow/yellow_9.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf���ßIDATxÚ½RÑÄ0Ú•ÁÿòEe%½½‰ŠI'Dw)‘T—ðu‹’ÄWFPI@x&� .áóà^XÐ|&•ý@ym�­"Û ‘u‡x°g= žÐ¢±€¢ñ Ç$H舲ÃÒÇ! í^Yª'XÑ… ·fM=)¸¯àxïA(mq0í+·È Ìþ "|ˆæÐq » 9O ˆì8ÿKš»ÄCN`îb‘Âã¡uG{äQù¼y,‚Ûνo¡GúÓíûÎÕ …™°Ö½‚Ÿîú ¾é9ÜéÅ����IEND®B`‚IMAGE 308 ./arch/road/yellow/yellow_A.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VcDÙ¤ŸQ,þÖ�ÿÿ�[M’���tRNS�@æØf���ÐIDATx^­‘ÁmACia~*‚¶d@¦ÿV²°ÑW”cØÖC#ÿ¡ëú|»w|¼Žô/‰@´4¤¨ªÝ/fØmDâ-ƒ ÙÕÝÜMM©[¢¾1S›Á F1”fNÂmí¦ ©´á ²$ê!øöÖ »Ñé ô2`OF,¨4JT1 jïŒà4ˆ¶t‡ô\RðÉ@ ¢Kd2ûZª› æ ¯(ÀÒö–ÙÝböÜR¶×¤¢ XÝQ¦r~ê:ç_ûœe\Vp¸åž����IEND®B`‚IMAGE 343 ./arch/road/yellow/yellow_B.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VcDÙ¤ŸQ,þÖ�ÿÿ�[M’���tRNS�@æØf���óIDATxÚµRQ²Ä ŠîåIbì¾÷»tØi5±±Hù!•öT+ ‹2È]ó!b мV€A47òƒgaAþI¬%DX°°Bò%E)€ôFtåÇvÒ0« /gqP¯ƒ¼-!µÐê J–7$˜ž*fëãËbg°¿rÍ1PÎpí}J¡(‡DnÀr.%k!•qg(­PÁ¾eu²dÁÏï~`gðÎ ž³@ÓÊ„INÖ=ú!óŒÉšÄŸ¸„ΠÓòðꋘ&п}ÝÅÅt‚h¿w/âdª»8ž(v&Æ®Ç:É+N¬õ¬Æc¾¿Ç5‹ zë¹ÆÑ����IEND®B`‚IMAGE 330 ./arch/road/yellow/yellow_C.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4V�1�cDÙ¤ŸQ,þÖ�ÿÿ�}ñÔ���tRNS�@æØf���ãIDATxÚÍRÑ! Úäàÿ?y«àU“Ëž×»ZLAêëâ×Àèß½«A?⪀"fÁ¾³ÁÁ‡âXŠGøˆáI•A ©EAUF¼:#$ ›tj´Q˜êU_4¹A¦K12Ž“RL‰)““¡=è|ðAdñ+,h×Î^ºoõýÍo-¦8îjid/ `EIk@„4ۇ͈÷{`(ј»S4âGáç,zPeû aAêíAö[|ða|”Igâ|Õ³‰RûÑŠ®»k"ŠÀyöYćèÚ*¡Ò”y����IEND®B`‚IMAGE 347 ./arch/road/yellow/yellow_D.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf���ôIDATx^eQAjDQû—è¾´t?ŒèºÌ$^à¡÷?B£_˜EÑ÷‰!Ñëº~"‘(Íú¼ºQU茪Ç4€p@1ˆoCŒ×Óà…§¿×U7C’€I„�ÁwDB9,7fÜ�@5ºQÉ(«©= ¤z±6‚ ê=/¬Fàyžqp’ˆÊXýqÌS³å|ŒoŒ·Ž„•°¸Ý®2,Ǹl%’2ˆ™%¬£#àf@ùräfÓ°±ÛØŸ#»þ}t8L Žã‰Žœq#Ö‹Î>SëeÝ¬Ž¯—&–¦ñï¶÷)1^tïÂÆÛ uüSd‰“Þ d#����IEND®B`‚IMAGE 337 ./arch/road/yellow/yellow_E.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf���êIDATx^­ÁmC1 C5C'(~ÚJHç"+Ôµÿí4‡žK”áÁgûÝï_·ëqöú¸]6d +É&åå,à�r-ÜÈ,¾ä4ަgjF{ …r ,ì1xÆŽñ\³3Ô©l%³R6ª•ð°‰áÈØÁ‚œ” jË> žžFчŠp…‚²Ù¸œ'#w r9Û�žðWFjŠãA›EÒ+à42ÄÎw#_,@ÇÆ G1:›ôòÍò¤©u_,훦Àvûü'á@;ìº\$SQA½]fö93:,ónÝøËÂ:� âÛ~�˜ÏƒÁ5Ì����IEND®B`‚IMAGE 360 ./arch/road/yellow/yellow_F.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÍ…?cDÙ¤ŸQ,þÖ�ÿÿ�Èͧ���tRNS�@æØf��IDATx^E‘AjÅ@ C}‰îË/Ý—{]z#_`°ï„ÊÎo?šhL=ÐŒˆ|f¡ëï2/ºñ·¾ö`H]ß?>ªãÎÈÏ冨}×%Ý®ìNªE±ùc(KRD7¯‡¥&À|� ¤D@ÐE-†Vd$EDôNdXáD…d¢åÈ“‘€ôén賈*aiùF×2‰)B==§¼PN[–lv@Î=‡Ò‰“cP2˜Ý6öÏ@:< hkÈ(®|z§À8ž÷™È}¯3™. -Øe³¾â$Ìßm¬l¦é¸–"k È/G]½ìí’Óé¾JD+Jûu·ÛePþ-¿›”BQ1k�����IEND®B`‚IMAGE 280 ./arch/road/yellow/yellow_ne.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE9��Ù¤þÖ�ÿÿ�cD>È���tRNS�@æØf���·IDATx^] B1D]ᨠp¸�à�î?•¥~m¥M® 9^^z{ÝÚyö{÷6Pkf£(hJ£0㟃á¬@Tô¤šzê¦gæ8(t¡IìŠȦ9lº™i™¾]¨â§[ˆn ­(d|)µŸa›Bé2s|*µ_ù©hPjÊË%ÝJ„3lU̇‹ꮊ:òy,Æ`XÔã¯d,—Q¨IÑËÂ*êwqY,†èý ‹c%f´›Áu����IEND®B`‚IMAGE 282 ./arch/road/yellow/yellow_nw.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE9��Ù¤þÖ�ÿÿ�cD>È���tRNS�@æØf���¹IDATx^]ëiF1 Cûã. gËØš ýöß©y”⛇ƒôuçþøÜ�/à7p?Ò0Æ�ìÔ0¾:P¥fzó™dxx5ƒ†¨j%Õm…ÍÀÿgY V7Ds<µ 2f3tÇCe1ÿf†Rªâ�iޤCÂHÀp åá$éòÝ!$*f*t ^Xa—ÁqZ؆ÁŠZO’kEI©½E¥ p·ˆ}!æ ¬Çan¿}“#@çÚõö����IEND®B`‚IMAGE 289 ./arch/road/yellow/yellow_se.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE9��Ù¤þÖ�ÿÿ�cD>È���tRNS�@æØf���ÀIDATx^]ŽÑ­…0 C½‚ Äéß�ì?Õ“Z]µþˆŽ£ ­jÝ9`ëù.¨R W€AŠŒ\yY eïW¹Ë._�R«?CÍ?�àês’Á �Y!©¥5p»÷š%€Å¢f¤O,Ƀä ¥S}h`ãiûX7l4CÍŸ€û†MIGí ÛeÏ[€²©:qCnT%=ØÓ¾ð4¨ŒäS@ö[€g½Ô<ñ"ç[€Þè#à+à+ü5\&&Õâ0'����IEND®B`‚IMAGE 289 ./arch/road/yellow/yellow_sw.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE9��Ù¤þÖ�ÿÿ�cD>È���tRNS�@æØf���ÀIDATx^]Ñ­! ÷ãXS×`Wp\ÿ==AòÂü5!0J‘ÊÏÆUªý�K¦àÚ.à"Eš¯M&Ï×mðªdTŬ�ÀC©›’i LÅÉNÚª`2$¥äÙLXJ­L©²°ݼs°¸I·9x+MÑÃÃo%ªªÍÞÜRX0;þÒh¤ã«¤eSâ£´Š½Œ`™:¾ÊÑ�‹Ö„MY‚»I†Éþì /Ž ~¸MÀQÁ/C8”ÂÁƒSùšC#î{}kÛ����IEND®B`‚IMAGE 371 ./arch/ground/Wood/ytree_1.111 ‰PNG  ��� IHDR��� ��� ���TgÇ���PLTE4VÚ¥ Áq8G$ R-���ÿ×�d3‚B'dEIk7���tRNS�@æØf��IDATÁÁm1�ÐçýÂg‡•öìÌHœ½ó#³G$è€&±”è \Råò��À�€E«Ðç\ÀÅ9ÆŒ jͱ¢W yëuï+3CÈè1f%3»ìùs�Z‹.öc‹ (÷ë!æ.€"G<öÐÉÜÖ£¯|-eDæûˆì žóiģǪ”þT2>»'0¸=Þ¶mïÛ eˆüÌ#·LЮ[]W¯ã<+dfŸuÔ”ã9rÎó½ç�J“ù¡ft�™y¸Ô½‚Òn™=é2 \3gŠŒqV×–Ãýõ^ÄL×vì à÷¿o/í^*@|ÿåz@üÙx@¼ì�€­ðŒ…)Å,ù’����IEND®B`‚IMAGE 483 ./arch/ground/Wood/ytree_2.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4VÚ¥ Áq8�¥�G$�O� R-���ÿ×�d3�Š��d�‚B'�2�dEŒ Î���tRNS�@æØf��dIDATxÚm‘rä0C1È9’þÿçöÙ×n½MÄŽ„¼ö޲o¤= íßÿ+3í%‹JkÊ¡dÊj˜FJ·5™neϼ‰‰!)K“`cëõÙ+dž !°w–‹[Å,×ô16® Ç'ýCâ{#´Þ¯JÌ:wãÈ7‰jšë‘4ÊßxIÈ ,ÌߜŠ/ržÍ÷W¸®jÖ´â•r,B´NÐZ”sÆ„S»Ä B·ò ·È¤Ì_ P}ˆ¾ósxŒÂu©ŒR?OI±‚€×üe—º/+¦Í°+8&0·Ð§B·">véÆË!!š ÅÈ(I¯Œ(Xëß:çô2f²l/}­$P@°Â3\–Û3´é¸Išö\[_] DÚ2-“ûŸÑc¹D›M͆ÝЪ }¹sþAè3bıòÏúéã8,ªhÓ½Cè®ÑöØGá ×6|ƒ»Û¾�§c ãè~]����IEND®B`‚IMAGE 788 ./arch/jewel/zincbar.111 ‰PNG  ��� IHDR��� ��� ���Ùs²���bKGD�ÿ‡Ì¿��ÍIDATÁÝn�Ðó}3»ÛmcPÁ(!¯Õ í>Ӭ׾‡wÞÁ ¯Dbü…niwgæ“¥Ñ*òÓsâÐ……Þ`â —×úÇBïAÚ÷Y„/\N:wdð]=•ÂćqSXz»ôÂÂàA=UÒTú±Ôháíâ ê™ÔbÄÔ`ôAÜ‘:o’žë=¬©™»vÌÌýR«wäMâÐÂ75z£R¦Z½ÞŽ4êíÅ¡ójÉ號¬ìiLÌ„ÁÚŽ‰P«zXkŸ{µøÚk­6èõvíàÔ™ Özûñ‰´ô²ä¸¦¦æÂc옻bGZ£UzSßë~­,¼,¾ò}yn4ôv]SõJXkõ6Öáݸ'u.äc©Õš˜Û³kð³A)„‰Ä¨Ñ*¿ÕýúÝç.Ä—Nj*l•­µÁ®NµÒ`ãL(k…p%„ÎV~âZœ)!„fæzÇz´m´Î…Àõm=qd+Ó-·cˆ^h¤­F«u"…¤’B#¥Á÷õ«#dgéš»š8C”vŒN¥ÖT)#B(©ìkkDÚZ(<©¹PFç´Â©µiÂÔ-ef/Ò ð‘›qf!…Q£Œ&B!¤ÞC•8taáĪfl¥Fb´²1"•+®¤ÖDú—ή³8A#…2*¡±gWj„‰«£gÒtw]•^Hik£¤™}itMm­­Ä¡ÿ;òÔ#j.…2 ­ÑàªÁ¨1õÔÍH¯°´ïSÓXRã\£±6`âØ,é•:{Þ•^Jå\I£’k×uÒk,¥;nÇ3Ï ÊèBHÇÞ@z­ÎÒuQq‚0:ÒÆ{:¤7ê̘ǃT(!­Üq.½ÅRã®±r&‰y4:[­·êpd7ÕÚ;(§,K—²´ï ¦ñ§Þ±þ–.©3qÏÕ86º¢ó·tiKé¶âãþ•ÀHξùö����IEND®B`‚IMAGE 345 ./arch/monster/undead/zombie.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8Í…? R-.‹W���ï§_��€@@@d3‚B'�2�y@Wœ���tRNS�@æØf���ÚIDATxÚ½‘Á’!D§‘̨ÿÿ¹»®•lU†ñC8iõóAÉñIEalóÆ=Ñ�Ùvxà±3Œ¢Ü�j¥Ø­ÞÎ ŒwÈ)¢ D „W÷ª"¬L¸á¢¸&�éVÆ ª~úÉ:Ô`:C˜´P)1$y5˜öÖ"B&r5 ö®]×xÕ®kô³O"ÖU®€°7ýEÖµÖ·\£õ6[,Ã{~ a¬Ò|OÂXû R@LðºD*P‰cÔSà)Žó&zóBüutKrèë™F2£þamÁp|µ~� âV.îo,����IEND®B`‚IMAGE 338 ./arch/monster/undead/zombie.112 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8Í…? R-.‹W���ï§_��€@@@d3‚B'�2�y@Wœ���tRNS�@æØf���ÓIDATxÚ½’Ár! C‘‘Œ ,ÿÿ¹Íf“f&ãp衺Ä3c»üEQ[jŸ˜ €m+ÜpÛVe‡6z­þï#�WÈ}3° Y`Dë­uš©+%43¡5ÕÒ€šêZ{ˆN:œ%ª)/AA@)’r‚fDX9Ù˜BâAž‡î‰?GèàWO²€Ÿ„ãA¨½úŒyÌ;€ÂÝÿÐ2Å%~™ÃµFÄ4`nxö"R�Ÿ÷ÃØÒÀ ã‹ÿâæ_kïyx⃿Ϙmã] *[ÁQþU?%NøÁbáX����IEND®B`‚IMAGE 337 ./arch/monster/undead/zombie.113 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���-PLTE4V¡¡¡aaaÁq8Í…? R-.‹W���ï§_��€@@@d3‚B'�2�y@Wœ���tRNS�@æØf���ÒIDATxÚ½‘A–à C‘mÙ¦îÜIúÚ颋YŒvA‰§´¿(•¹õ'÷Ä\�dÛðÀc—°Ô:¸ÌUý6ÞGNͬ}ƒ` *`dôˆn"ìY&„B¥®k‘ÖË ïËnšzW¡‘Œ}æ)i©RùËyØaö\¤ðgŒ~œÄUO©�qN;‘ë£÷/ßr󪸾ý¶„ùÔíàÓB”€¸àµE½‘½Î‡X½Ñ;xÿ[?!å÷ÚˆjC>lñFK|æ°mGûWý�¥ô2’®1����IEND®B`‚IMAGE 272 ./arch/monster/undead/zombie_gen.111 ‰PNG  ��� IHDR��� ��� ���D¤ŠÆ���PLTE4VaaaG$ R-���d3�d�‚B'RsÜ���tRNS�@æØf���¦IDATxÚQ Ä CëŒcîãMIJt16…~4gêõ›>s¹ô;¾o3†¸k¦¢·T.Àô‹y4'x¸ò¿ ¯4wKµÒ÷†¨B!�dö-@"Pƒ˜j€!oPK(kH>*Æiæ ¸ Å:#0[>°€6†5tDxƒ"ÂôŸ§{A§«æ ðW½v$˜ Æ™•Š1@ ’3 ðÈ÷û+qY a²ò����IEND®B`‚IMAGE 1179 ./arch/construct/town/zoo.x11 ‰PNG  ��� IHDR���@���@���·ì���]PLTEÿÿÿ���BBBccc!!!aaa{{{@@@sss„„„RRRkkkB�#¥¥¥111JJJgœFj PÚ¥ 999½½½)))%d"ŒŒŒZZZd3çççãÖô×���tRNS�@æØf��ìIDATx^­W®ë8 ü£êZR^ïÌÐQ`±´ Å&gHQ$Àüé(ÍǾM_¡æA÷´¯m�óþ>/ƒk•¯m€ËåÓïj^Æq©µ¯m¨úÇ\’ÿ ÎÕ¯m`.sù<¨[†q‚ò…M«»rwƒû‹½¶1Ÿæó8uåHe+4"þ¸2�FP'þª©cxnÐÐ… ç$âq˜ƒª÷«JW€Òu žøŸ™ ZPJßIÀãT]g­I Ê¡‚÷Ä�ðÄÏgxÂä;è; xˆêG ›& `â‹7Ðw’xº3ñ¢ü¶j¼µ“·þìM£ÒÉ÷èžÄ?•Ô*‹Sbï8®¥6CA I.JÊ8-Àº}mkê¦t’8/ê…€2x2d½³@idNR�Ö[îဘsÁ¯yï $p¹„3´oP Û!òñ>ëV>tæ$O‰@ìÿòþØwÁ½CB÷=8ÞOÇ„î|„-{Gús׎6B᱇„@¶°ë]óÞ‰ÞšÞqƒð ¼&€‘ %F}f°êq‚xè˜ÀHDâ 4½3,XïÛíë¶)Ð)¶ ØV¹ªÞ‘Ö9ñ÷U¶`=vxñ¯¯¦wœÆÏ׆.ñÛZ6(['áïRyUhx®Eï°rñ«‚¼ø~Ë{g™rüÍcO§ J<¯¼w& á7/€¼<Ôx2"”~Ž¿“�{^òÞÁ¯�Ñ~%AYBð¡ …àöX¯YPÕ/‰ ÂB É(Õ¬ùðPá¿Ð1 7*ë *ü-¸.RhTÃC…—=l·Ú(Õn†‡'þ¶6F©:ÃC_ß…:è þ&9lBô†‡/9è…:è^rÐ1: Œï9~åÕ ƒ±Þö‡‡ÏhzF'ï/Ð5:+Ñv‡‡¿­è 8OíðP‹iŒBH T;<Ì#EPŽSœ£®;aØi2ª0ÏÎ)Ò„Ö|Sª3aÈ,¤Úá¡Ý*£@à½Òõ𰔢)­Q˜2𮆇^ ƒTUÊ*ËTLàjyË~§/É(ÌFI1ò!‡ç-b£"j £¼õbV.ü‰ß_Þ¿’'+jÊs%^Ä0^Ab{C\%\óæ[öùi–XÅ­àd cn ÀNéóÓ,ýÙ`þ­DLM\ÃÞð&°éóÓLD µ ÉÍW;Å�øÛJê)ñ ‚Üâ$bªörI®•[Öêä½ÔŸ þƒüù¿ä_ÒxÇ�&Ó‰����IEND®B`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/lib/artifacts����������������������������������������������������������������������0000644�0000145�0000012�00000167513�11731300544�013166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# List of artifact modifiers # # Note: # Attributes (str, dex, etc) are modifiers to the previous # value - positive will increase it by that much, negative # will decrease it. # # cursed and damned flags will make the object cursed/damned. # no way to remove cursed/damnedness right now. If the # object is cursed, the present magic value will become # negative (ie, a +1 sword will become -1 cursed.) # # path_attuned, path_denied and path_repelled values are OR'd to existing values. # # resistances are modifiers to the previous value. # # luck,exp, wc and ac increase the value by that amount (which means # a negative value will decrease the value) # # lifesave, reflect_spell, reflect_missile, stealth, xrays, # and make_invisible invisible sets the appropriate value # in the new artifact. No way to remove these abilities. # # if stand_still is set, the object will not be animated # (useful if giving an artifact a new image when the object # it is being created from is animated. # # nrof is the number of object to be created. A range # of 1-nrof of objects will be created. If 0, then the # default number will be used instead. # # hp, maxhp, sp, maxsp, food, level have this: If the value is # positive, it is increased by that amount. If negative, the # artifact is created with that value absolute (ie, hp -5 # will create and artifact with hp value of 5) # # dam: If negative, absolute value is used (as in # hp, maxhp, etc above). If positive, it acts as a percentage # in increments of 10 (a value of 10 has the normal value, 5 # would be half normal, 20 twice, etc. # # weight, last_sp, gen_sp_armour is in percent (200 would # be twice normal, 50 half of normal) if positive. If negative, # the absolute value is used (so -5 would give 5); # # 'value' is a multiplier to the previous value (value 10 # means the object is worth 10 times normal) # # the 'material', 'attacktype', 'slaying', and 'msg' elements will # replace exiting values. # # magic is the mininum magic for an item to become that artifact. # # item_power replaces the item's value. # # 'face' if defined replaces the item's face. # # 'animation' if defined replaces the item's animation. # # items in inventory (through an "arch xxx", like in maps) # will be copied into the item's inventory. # # If the value is not described above, changing it probably is # not supported. # # This file has been changed around in 0.91.1 to allow better # control of probability and creation conditions. # # Allowed is followed with a comma seperated list of items that # that artifact is allowed for. a ! can precede the object name, # to mean that the object is allowed for all objects except those with # that name. The name will be matched to either the normal item # name, or the name of the archetype. # # After the 'Allowed <whatever>' field, a 'chance <value>' field # follows. This is how likely the item is to be created. It is relative # to other objects of the same type. What happens is that all of the # artifacts with the same type are put on 1 list, and their chance # field is summed together. Then, when an artifact is created, # a roll is made based on that sum, and the appropriate artifact # is chosen. If the item being transformed can not turn into that # artifact (magic bonus, difficulty (see below), or just not 'Allowed'), # it will be re-rolled, attempting to make an artifact again. The number # of re-rolls attempted is determined in the treasure.c file. IT is, # by default, 1. # # 'difficulty <value>' can also be included before the 'Object <name>' # field. If set, the difficulty must be greater or equal to that # value in order to the object to be created. This can make it so that # some items are never created on easy maps. # # Note that the above mentioned fields (chance, difficulty) must be set # before the Object command - if they are placed between the Object and # End commands, they will have no affect. # # Because of these changes, general artifact types are no longer allowed. # This is for a few reasons: 1) With no type, it would not be possible # to know what lists to put it on. If it put it on all lists # presently existing, then the order of this file would become relevant, # 2) Since chance is now a a field, and different items types have # different total chances, using a generic chance value could have # unexpected results. # # Various notes: # chance is meaningless if there is only 1 artifact of a certain # type. It will always be generated, no matter what the chance # is set to. As such, if adding an artifact for a new type, # make sure there are at least two, unless you always want # that specific one to be generated. # # running crossfire with -m3 creates a nice list of this # table. Good for debugging if you seem to have problems with # some entry. # # Try to keep common types of items together. For example, keep # all helmets types together, all weapon types, etc. From there, # try to group by subtype (plate mails, leathers, chains, crowns, # etc.) This just makes it easier to find stuff. From their, it # might be nice to keep them in chance order, but most aren't in # that right now. # # Monsters # Note: Only generated monsters are affected (just like items) - monsters # already on the map are not affected. Also, many of the values (exp, hp, # maxhp) are fixed addition values, so if creating generic types (like the # Leader and Chief types), you what to keep the Allowed monsters at roughly # the same power. # As of now, 1:10 monsters can become artifact monsters. This is set in # time.c Allowed orc chance 10 Object Leader type 0 wc 1 ac 1 hp 12 maxhp 12 exp 20 level 1 resist_physical 20 dam 13 face orc_leader.111 animation orc_leader_arc stand_still 1 end # Allowed goblin chance 10 Object Leader type 0 wc 1 ac 1 hp 10 maxhp 10 exp 20 level 1 resist_physical 20 dam 13 face goblin_leader.111 animation goblin_leader_arc stand_still 1 end # Allowed gnoll chance 10 Object Leader type 0 wc 1 ac 1 hp 13 maxhp 13 exp 20 level 1 resist_physical 20 dam 13 face gnoll_leader.111 animation gnoll_leader_arc stand_still 1 end # Allowed ogre chance 10 Object Leader type 0 wc 1 ac 1 hp 15 maxhp 15 exp 20 level 1 resist_physical 20 dam 13 face ogre_leader.111 animation ogre_leader_arc stand_still 1 end # Allowed skeleton chance 5 Object Leader type 0 hp 15 maxhp 15 exp 40 level 2 resist_physical 20 dam 1 face skeleton_leader.111 animation skeleton_leader_arc stand_still 1 end # Allowed beholder chance 5 Object Leader type 0 wc 5 ac 2 hp 15 maxhp 5 exp 500 level 2 resist_physical 40 dam 15 face beholder_leader.111 stand_still 1 end # Allowed orc chance 2 Object Chief type 0 wc 2 ac 2 hp 20 maxhp 20 exp 80 level 2 resist_physical 30 dam 14 face orc_chief.111 animation orc_chief_arc stand_still 1 end # Allowed goblin chance 2 Object Chief type 0 wc 2 ac 2 hp 20 maxhp 20 exp 100 level 2 resist_physical 30 dam 13 face goblin_chief.111 animation goblin_chief_arc stand_still 1 end # Allowed gnoll chance 2 Object Chief type 0 wc 2 ac 2 hp 20 maxhp 20 exp 100 level 2 resist_physical 30 dam 14 face gnoll_chief.111 animation gnoll_chief_arc stand_still 1 end # Allowed ogre chance 2 Object Chief type 0 wc 2 ac 2 hp 22 maxhp 22 exp 150 level 2 resist_physical 30 dam 19 face ogre_chief.111 animation ogre_chief_arc stand_still 1 end # Allowed skeleton chance 2 Object Chief type 0 wc 1 hp 10 maxhp 15 exp 50 level 2 resist_physical 40 dam 1 face skeleton_chief.111 animation skeleton_chief_arc stand_still 1 end # # Just to fix probability some. Allowed orc,goblin,ogre,gnoll,beholder chance 20 Object NONE end # # Weapons: # Allowed all chance 10 Object Ilrya type 15 value 10 weight 80 msg This weapon is made of lighter and more expensive material. endmsg end # Allowed all chance 5 Object Lythander type 15 value 20 luck 1 weight 90 item_power 1 end # Allowed all chance 5 Object Fear type 15 value 30 attacktype 16385 resist_fear 100 weight 90 item_power 2 end # Allowed all chance 20 Object Woe type 15 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 end # Allowed all chance 20 Object Mass type 15 value 5 cursed 1 weight 300 dam 15 wc -3 end # Allowed all chance 10 Object Gnarg type 15 value 10 dam 12 resist_poison 30 Cha -1 item_power 1 end # Allowed all chance 6 Object Zormola type 15 value 15 weight 80 wc 2 resist_fear 5 msg Zormola was a great female orcish warrior making efficient use of most weapons and known for her courage on the battlefield. endmsg item_power 2 end # Allowed all chance 5 Object Ixalovh type 15 value 10 sp 1 grace 1 magic 1 item_power 1 end # Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,stoneaxe,poleaxe,morningstar,large_morningstar,nunchacu_1,nunchacu_2,hammer,mace,mace_2,lspear,spear,club,quarterstaff,big_club,stonehammer,stake,bonecrusher,mjoellnir,skullcleaver chance 20 Object Vitality type 15 value 50 hp 1 dam 11 magic 2 item_power 1 end # Allowed all chance 20 Object Kragi type 15 value 50 magic 3 Con 1 dam 11 item_power 1 end # Allowed all chance 6 Object Morgul type 15 value 15 magic 3 dam 20 wc -3 Str -2 Dex -2 Con -2 damned 1 msg Morgul was a Dark Mage who built a tower in the hope of creating a bridge with the skies so that demons could attack heavens. Altough he was defeated, some weapons are still influenced by his dark magic. endmsg end # Allowed all chance 5 Object Slay Ogre type 15 slaying ogre value 20 magic 1 item_power 2 end # Allowed all chance 15 Object Valriel type 15 slaying demon last_sp 120 value 30 magic 2 msg This weapon faintly glows with a warm radiance that casts no shadows. Just holding it gives you the courage to send the most evil monsters back to whatever Hell they came from. endmsg item_power 2 end # Allowed all chance 15 Object Gorokh type 15 slaying angel last_sp 120 value 30 magic 2 msg This weapon faintly glows with a dark radiance that makes shadows seem deeper and darker than they should be. You have a strong feeling that even the mightiest champions of light must fall to such powerful darkness. endmsg item_power 2 end # Allowed all chance 8 Object the Devourers type 15 value 30 attacktype 65553 magic 1 msg This weapon radiates a bone-chilling aura of otherworldly cold. endmsg item_power 2 end # Allowed all chance 3 Object Doom type 15 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 magic 1 end # Allowed all chance 20 Object Crolmi type 15 value 40 magic 3 Str 1 weight 110 msg This weapon shares with its owner a bit of the strength of Crolmi, the Dwarven Spirit of Rocks and Mountains. endmsg item_power 1 end # Allowed all chance 2 Object Great Mass type 15 value 50 damned 1 weight 600 dam 25 wc -5 end # Allowed all chance 2 Object Slay Troll type 15 slaying troll value 50 magic 2 item_power 2 end # Allowed all chance 2 Object Slay Undead type 15 slaying undead value 50 magic 2 msg This vicious weapon is designed specifically for destroying any abominations that have risen from their graves and making sure they stay dead this time. endmsg item_power 2 end # Allowed all chance 1 Object Slay Dragon type 15 slaying dragon value 100 magic 3 item_power 2 end # Allowed all chance 1 Object Slay Beholder type 15 slaying beholder value 150 resist_magic 20 magic 3 item_power 3 end # Allowed all chance 10 Object Rhyz type 15 value 80 magic 4 Str 1 Dex 1 weight 90 msg The Archmage Rhyz devised many items that increased the strength and dexterity of their owners. endmsg item_power 2 end # Allowed all chance 10 Object Glamdri type 15 value 150 magic 4 resist_magic 30 Int 1 Pow 1 weight 90 msg This weapon is dedicated to Glamdri the Last Standing One, a lesser spirit of light that represents original thinking used to get out of difficult situations. endmsg item_power 5 end # Allowed all chance 5 Object Berserkergang type 15 value 15 magic 4 dam 30 wc 7 Str 7 Dex 7 Con 7 Int -10 Wis -10 Cha -15 resist_magic 20 material 256 weight 50 exp 3 hp 2 msg This weapon burns with a supernatural rage: its anger invests the wielder and empowers him. However, it also clouds his thoughts, and drool is very unattractive. endmsg attacktype 16385 damned 1 end # # This item is attack type weaponmagic. It only happens in weapons that # are already pretty magical (+3 or better). Thus, while the chance # may look high, since there are not that many +3 or better weapons # created, it will not be created that often. # Allowed all chance 10 Object Magic Hitting type 15 magic 3 value 20 attacktype 256 item_power 1 end # Allowed axe,axe_2,axe_3,axe_4,axe_5,battle_axe,hammer,skullcleaver,mjoellnir,bonecrusher,frost_hammer chance 10 Object Mostrai type 15 magic 1 value 12 dam 14 weight 115 end # Allowed sword,sabre,rapier,scimitar,light_sword,katana_1,falchion chance 90 Object Occidental Mages type 15 magic 2 value 20 resist_physical 1 msg The Ancient School of Occidental Mages created that weapon during the Empire Wars, charging it with their Chaotic Powers. endmsg arch event_attack title Python slaying /python/items/weapon_occidental_mages.py end end # # # Swords (subtype of weapons) # Allowed sword,sabre,rapier,scimitar,light_sword,katana_1,falchion chance 10 Object Poisoning type 15 value 20 weight 80 attacktype 1025 item_power 1 end # # # Metal Weapons # Allowed dagger,light_sword,shortsword,shortsword_2,taifu_1,trident,axe,axe_2,axe_3,axe_4,axe_5,battle_axe,poleaxe,morningstar,large_morningstar,hammer,mace,mace_2,lspear,spear,sword,sword_2,sword_3,sabre,rapier,rapier,scimitar,katana_1,falchion,broadsword,broadsword_2 chance 5 Object Sorig type 15 magic 1 value 15 weight 95 attacktype 9 last_sp 125 item_power 1 end # Allowed trident chance 5 Object Ixalovh type 15 magic 2 value 20 weight 20 attacktype 17 resist_fire -10 Dex 2 Cha -1 Con -1 item_power 2 end # Allowed dagger,axe,axe_2,axe_3,axe_4,axe_5,battle_axe,sword,sword_2,sword_3,sabre,rapier,scimitar,light_sword,katana_1,falchion,broadsword,broadsword_2,shortsword,shortsword_2,morningstar,large_morningstar,hammer,mace,mace_2,lspear,spear,poleaxe,taifu_1,trident chance 5 Object Ruggilli type 15 magic 1 value 15 weight 85 attacktype 5 item_power 1 last_sp 110 end # # Daggers (subtype of weapons) # Allowed dagger chance 10 Object Poisoning type 15 value 20 weight 80 attacktype 1025 item_power 1 end # Allowed dagger chance 10 Object Paralysis type 15 value 30 weight 80 attacktype 4097 item_power 1 end # Allowed dagger chance 10 Object Madness type 15 value 10 weight 80 attacktype 33 item_power 1 end # # # Helmets # Allowed helmet, crown chance 6 Object Xebinon type 34 value 35 gen_sp_armour -2 path_attuned 1024 sp 1 magic 2 msg This valuable item created by the Archdaemonist Xebinon enhances the mind of its wearer and channels the powers of magic. It has a small influence on its wearer's ability to regenerate spell points. endmsg item_power 1 end # Allowed all chance 1 Object Blindness type 34 is_blind 1 magic 1 cursed 1 end # Allowed full helmet,helmet chance 1 Object Dark Vision type 34 can_see_in_dark 1 value 10 item_power 1 end # Allowed full helmet,helmet chance 1 Object Might type 34 value 500 magic 2 Str 1 Con 1 Dex 1 item_power 3 end # Allowed full helmet chance 20 Object Valriel type 34 value 50 magic 2 Wis 1 Cha 1 item_power 2 end # Allowed full helmet chance 4 Object Argoth type 34 value 25 magic 1 ac 1 Cha 1 resist_fire 30 resist_physical 8 msg Argoth was an ancient dwarven city in a mountain which was infested with dragons. The dwarves specialized in equipment which helped them survive their environment. endmsg item_power 3 end # Allowed !crown chance 10 Object Ilrya type 34 value 10 weight 80 msg This helmet is made of lighter and more expensive material. endmsg end # Allowed !crown chance 5 Object Lythander type 34 value 20 luck 1 weight 90 item_power 1 end # Allowed !crown chance 20 Object Mass type 34 value 5 cursed 1 weight 400 end # Allowed !crown chance 2 Object Great Mass type 34 value 50 damned 1 weight 1000 end # Allowed all chance 6 Object Stupidity type 34 value 15 magic 1 Int -10 damned 1 end # Allowed all chance 5 Object Sorig type 34 value 20 ac 1 magic 1 resist_physical 8 resist_electricity 40 item_power 3 end # Allowed all chance 3 Object Doom type 34 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 magic 1 end # Allowed all chance 20 Object Woe type 34 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 end # # Crowns start here (subset of helmets ) # Allowed crown chance 1 Object the Magi type 34 value 500 sp 2 Int 2 Pow 2 item_power 6 end # Allowed crown chance 1 Object Fire type 34 value 100 resist_fire 30 path_attuned 2 path_repelled 4 item_power 2 end # Allowed crown chance 10 Object Lordliness magic 2 type 34 value 10 Cha 2 item_power 2 end # Allowed crown chance 6 Object Rulership type 34 value 15 magic 3 Cha 1 Wis 1 item_power 2 end # Allowed crown chance 4 Object Might type 34 value 25 magic 3 Con 1 Str 1 item_power 2 end # # Shields # Allowed all chance 10 Object Ilrya type 33 value 10 weight 80 msg This shield is made of lighter and more expensive material. endmsg end # Allowed all chance 20 Object Mass type 33 value 5 cursed 1 weight 400 end # Allowed all chance 2 Object Great Mass type 33 value 50 damned 1 weight 1000 end # Allowed all chance 2 Object Deflection type 33 value 50 magic 2 ac 3 weight 110 msg This highly enchanted shield is craftfully made to give more protection than usual. endmsg item_power 2 end # Allowed all chance 8 Object Mostrai type 33 value 24 magic 1 resist_fire 20 item_power 1 end # Allowed all chance 8 Object Gnarg type 33 magic 1 value 12 Cha -1 ac 1 resist_physical 10 end # This one is amazingly rare, I would be surprised if I ever saw one! Allowed high_shield chance 1 difficulty 10 Object holy light type 33 magic 3 value 1200 weight 90 Cha 5 ac 4 reflect_spell 1 resist_physical 50 resist_drain 100 resist_ghosthit 60 resist_fire 25 resist_cold 25 glow_radius 1 face holyshield.111 msg Passed down from one of the elder this shield is amazing. Its soft glow hides a deep power which you feel you can almost taste. It soon dawns on you that this must be one of the most prized shields of all the lands. endmsg item_power 25 end # Allowed all chance 3 Object Doom type 33 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 magic 1 end # Allowed all chance 20 Object Woe type 33 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 end # Allowed all chance 8 Object Gnarg type 33 magic 1 value 12 Cha -1 ac 1 resist_physical 10 end # # # # Gauntlets / Gloves # Allowed gauntlets chance 5 Object Sorig type 100 resist_physical 8 resist_electricity 35 attacktype 8 weight 125 value 175 item_power 3 end # Allowed gloves chance 10 Object Havok type 100 dam 4 wc 2 resist_physical 8 weight 125 value 175 item_power 2 end # Allowed gloves chance 10 Object Sorig type 100 resist_physical 5 resist_electricity 30 weight 125 value 10 item_power 2 end # Allowed all chance 20 Object bladed steel type 100 resist_physical 10 dam 2 material 8194 materialname steel weight 125 value 40 end # Allowed gauntlets chance 20 Object the Titans type 100 resist_physical 10 dam 8 weight 2500 value 40 end # Allowed gloves chance 20 Object marksmanship type 100 resist_physical 2 wc 4 weight 95 value 40 item_power 4 end # Allowed gloves chance 20 Object oiled leather material 8200 materialname leather type 100 resist_acid 25 Cha -4 Dex -2 weight 115 value 40 end # # Armour # Allowed all chance 10 Object Ilrya type 16 value 10 weight 80 msg This armour is made of lighter and more expensive material. endmsg end # Allowed all chance 20 Object Mass type 16 value 5 cursed 1 weight 300 end # Allowed all chance 2 Object Great Mass type 16 value 50 damned 1 weight 1000 end # Allowed all chance 6 Object Clumsiness type 16 value 15 Dex -1 cursed 1 end # Allowed plate_mail,scale_mail chance 6 Object Valriel type 16 value 20 resist_physical 5 resist_blind 40 weight 110 magic 1 item_power 2 end # Allowed plate_mail,scale_mail,b_scale_mail,b_plate_mail chance 6 Object Gorokh type 16 value 15 ac 2 resist_magic 15 resist_fear 30 resist_physical 15 weight 105 magic 1 item_power 3 end # Allowed plate_mail,scale_mail,b_scale_mail,b_plate_mail chance 6 Object Gnarg type 16 value 15 ac 1 resist_poison +45 resist_magic -10 weight 105 magic 1 item_power 2 end # Allowed plate_mail,scale_mail,dragon_mail,b_scale_mail chance 6 Object Blazing Fires type 16 value 55 ac 1 resist_physical 15 resist_fire 35 weight 90 magic 2 item_power 3 end # Allowed all chance 10 Object Gaea type 16 value 25 ac 1 hp 1 resist_drain 30 resist_deplete 30 resist_death 30 resist_physical 10 magic 2 item_power 5 end # Allowed all chance 6 Object Protection type 16 value 15 ac 2 resist_physical 20 magic 3 msg The quality of this superb armour is extreme; it gives much more protection than any made today. It is very old, probably from some lost civilization who had much better skills, but it doesn't look worn at all. It is obviously highly enchanted. endmsg item_power 3 end # Allowed all chance 6 Object Berwean type 16 value 15 ac -1 resist_physical 8 last_sp 150 exp 1 weight 70 msg This armour is made of very light and expensive material. As a result you can move much faster in it, but it gives a bit worse protection than normal armour. endmsg end # Allowed all chance 3 Object Doom type 16 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 magic 1 end # Allowed all chance 20 Object Woe type 16 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 end # Allowed plate_mail,b_plate_mail chance 1 Object Power type 16 value 150 magic 4 Str 1 resist_fire 30 weight 200 last_sp 5 resist_physical 20 ac 1 msg This extremely unique platemail was made for the line of dwarven kings in one of the vanished northern kingdoms of old. Due to its magic, it will fit creatures of any size. It is highly enchanted, increasing the strength of the wearer and protecting against fire. Unfortunately it is also very heavy, limiting speed somewhat. endmsg item_power 4 end # Allowed plate_mail chance 5 Object Prowess type 16 resist_physical 30 weight 250 ac 1 Str 2 Dex 2 Int -5 Pow -5 value 100 msg This very heavy armour gives protection greater than normal mail. It is created for fighters - the high weight and the fact that it clouds the mind makes it unsuitable for mages. It increases the wearer's strength and dexterity, making him even more fearsome in battle. endmsg end # Allowed leather_armour,mithril_chainmail chance 10 Object Irial type 16 value 10 Cha 1 msg This armour, which is of elven origin, is beautifully decorated with ancient emblems. endmsg item_power 1 end # # Robes (subtype of armor) # Allowed robe chance 10 Object Displacement type 16 value 100 ac 3 msg This robe blurs the vision of those trying to attack, making the wearer more difficult to hit. endmsg item_power 3 end # Allowed robe chance 10 Object metal weave face metalrobe.111 material 2 type 16 value 100 weight 150 resist_physical 15 ac 3 msg This magical robe is somehow woven of metal fibers. endmsg item_power 3 end # # Rings # # Ring of Thieves # Allowed all chance 20 Object Thieves value 80 type 70 face ring.117 exp 5 Dex 3 stealth 1 can_see_in_dark 1 item_power 10 end # #Ring of Fighting # Allowed all chance 32 Object Fighting face ring_fighting.117 type 70 value 30 Str 1 Con 1 exp 2 wc 2 dam 2 hp 1 item_power 9 end # #Ring of Combat # Allowed all chance 8 Object Combat type 70 face ring_combat.117 value 130 Str 1 Con 1 Dex 1 wc 2 exp 3 magic -1 resist_physical 10 resist_magic -5 dam 2 hp 1 item_power 8 end # # #Ring of Strife # Allowed all chance 4 Object Strife type 70 face ring_strife.117 value 230 exp 4 Str 2 Con 2 Dex 2 Wis -1 Int -1 wc 2 magic -1 resist_physical 20 resist_magic -15 ac 1 dam 3 hp 2 item_power 6 end # #Ring of War # Allowed all chance 1 Object War face ring_war.117 type 70 value 350 Str 3 Con 3 Dex 3 Int -1 Wis -1 Pow -1 magic -5 exp 5 resist_physical 30 resist_magic -20 hp 3 dam 5 ac 2 wc 3 item_power 7 end # #Ring of Ice # Allowed all chance 33 Object Ice face ring_ice.111 animation ring_ice client_anim_random 1 anim_speed 5 type 70 value 30 resist_cold 30 path_attuned 4 msg This elemental ring is one of those made at the Guild of Magicks by the powerful wizards who survived the ancient war of the elementals. The wielder is surrounded by a thin, almost invisible, globe of warmth; which protects against cold. It also grants its holder greater control of cold spells. endmsg item_power 3 end # Allowed all chance 28 Object Fire face ring_fire.111 animation ring_fire client_anim_random 1 anim_speed 5 type 70 value 35 resist_fire 30 path_attuned 2 msg This elemental ring is one of those made at the Guild of Magicks by the powerful wizards who survived the ancient war of the elementals. The wielder is surrounded by a thin, almost invisible, globe of coolness; which protects against heat. It also grants the holder greater facility with fire spells. endmsg item_power 3 end # Allowed all chance 40 Object Storm face ring.117 type 70 value 25 resist_electricity 30 path_attuned 8 msg This elemental ring is one of those made at the Guild of Magicks by the powerful wizards who survived the ancient war of the elementals. The wielder is surrounded by a thin, almost invisible, grid of force; which protects against electricity. It also gives facility with electricity spells. endmsg item_power 3 end # Allowed all chance 13 Object Magic face ring.117 type 70 value 80 sp 1 Pow 1 resist_magic 20 msg Most highlevel wizards receive one of these from their guild when they become its leader. endmsg item_power 3 end # Allowed all chance 7 Object Ancient Magic face ring.117 type 70 value 150 sp 2 Int 1 Pow 1 resist_magic 25 item_power 5 end # Allowed all chance 4 Object High Magic face ring.117 type 70 value 250 sp 2 material 256 Int 2 Pow 2 resist_magic 30 item_power 7 end # # Slaying balrog--aint no such thing as a balrog yet, but.. when there is... # Mithrandir's magic ring--gives power according to the ability of the user # Allowed all chance 1 Object Mithrandir slaying Balrog face ring.117 type 70 value 450 sp 2 Int 2 material 256 Pow 2 resist_magic 30 resist_fire 20 path_attuned 2 item_power 9 end # # Galadriel's magic ring. She used it for the protection and healing # of her land in Lord of the Rings # Allowed all chance 1 Object Adamant face ring.117 type 70 value 450 sp 3 material 256 Int 3 Pow 2 resist_magic 30 resist_drain 100 path_attuned 257 item_power 15 end # # Elrond's magic ring. It was the greatest of the three rings. # Allowed all chance 1 Object Elrond face ring.117 type 70 value 550 sp 3 material 256 Int 3 Pow 3 resist_magic 30 resist_drain 100 resist_deplete 100 path_attuned 259 item_power 25 end # # The One Ring to rule them all # Allowed all chance 1 difficulty 6 Object Ruling face ring.117 type 70 value 1750 sp 5 Int 3 Pow 3 Wis 2 Con -2 Cha -2 msg One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them. endmsg food 2 stealth 1 ac 6 material 256 resist_magic 40 resist_ghosthit -100 path_attuned 606 path_repelled 257 item_power 15 end # # Beguilement # Allowed all chance 13 Object Beguilement face ring.117 type 70 value 50 Cha 3 item_power 3 end # # Ring of the Dark Priest # Allowed all chance 4 Object the Dark Priest face ring.117 type 70 value 50 Cha -1 material 256 path_attuned 131072 path_repelled 256 Wis 1 Pow 1 can_see_in_dark 1 grace 1 item_power 3 end # # Ring of the Healer # Allowed all chance 4 Object the Healer face ring.117 type 70 value 50 Cha 1 material 256 path_attuned 256 path_repelled 131072 Wis 1 Pow 1 grace 1 item_power 4 end # # Ring of the Paladin # Allowed all chance 4 Object the Paladin face ring.117 type 70 value 50 Cha 1 path_attuned 65536 path_repelled 64 Wis 1 material 256 Pow 1 grace 1 item_power 4 end # # Ring of the Prelate # Allowed all chance 7 Object the Prelate face ring.117 type 70 value 250 Cha 1 path_attuned 65664 Wis 2 material 256 Pow 1 grace 2 item_power 7 end # # Ring of the Demon Priest # Allowed all chance 2 difficulty 6 Object the Demon Priest face ring.117 type 70 material 256 value 250 Cha -2 path_attuned 131136 path_repelled 256 resist_fire 30 Wis 2 Pow 2 grace 2 can_see_in_dark 1 item_power 6 end # # Ring of Benevolence # Allowed all chance 2 difficulty 6 Object Benevolence face ring.117 type 70 material 256 value 250 Cha 2 path_attuned 257 path_repelled 131072 Wis 2 Pow 2 grace 2 resist_magic 30 item_power 7 msg This ring is blessed by the gods who do good, and protects a little against the power of those who twist natural forces to do harm. endmsg end # # Ring of the Crusade # Allowed all chance 2 difficulty 6 Object the Crusade face ring.117 type 70 value 250 material 256 Cha 2 path_attuned 65664 Wis 2 Pow 2 resist_drain 100 grace 2 item_power 14 end # # Ring of the Death Priest # Allowed all chance 1 difficulty 7 Object the Death Priest face ring.117 type 70 value 400 material 256 Cha -3 path_attuned 393280 path_repelled 256 resist_death 100 resist_fear 100 can_see_in_dark 1 Wis 3 Pow 2 grace 3 item_power 20 end # # Ring of the Saint # Allowed all difficulty 7 chance 1 Object the Saint face ring_saint.111 animation ring_saint client_anim_random 1 anim_speed 5 type 70 material 256 value 400 Cha 3 path_attuned 65665 path_repelled 131072 resist_drain 100 resist_deplete 100 resist_ghosthit 100 Wis 3 Pow 2 grace 2 item_power 25 end # # Ring of Miracles # Allowed all difficulty 7 chance 1 Object Miracles face ring.117 type 70 value 450 Cha 3 path_attuned 67969 path_repelled 131072 path_denied 262144 resist_drain 100 resist_deplete 100 Wis 3 Pow 3 material 256 grace 3 item_power 30 end # # Allowed all chance 40 Object Acid face ring_acid.111 animation ring_acid anim_speed 5 client_anim_random 1 type 70 value 25 resist_acid 30 material 256 resist_physical 20 msg This elemental ring is one of those made at the Guild of Magicks by the powerful wizards who survived the ancient war of the elementals. The wielder is surrounded by a thin, almost invisible globe of base liquid; which protects against acid. It also gives a fair protection against normal attacks. endmsg item_power 3 end # Allowed all chance 17 Object Free Action face ring.117 type 70 value 60 resist_slow 100 resist_paralyze 100 resist_confusion 30 resist_fear 30 item_power 11 end # Allowed all chance 13 Object Life face ring.117 type 70 value 80 resist_drain 100 resist_deplete 100 hp 2 msg This semi-elemental ring is one of those made at the Guild of Magics by the powerful wizards who survived the ancient war of the elementals. The wielder is surrounded by a thin, almost invisible, globe of positive energy; which makes the wielder immune from life draining. It also grants an unnatural vitality. endmsg item_power 9 end # Allowed all chance 50 Object Halvor face ring.117 type 70 value 20 Str 1 resist_paralyze 100 item_power 5 end # Allowed all chance 25 Object Yordan face ring.117 type 70 value 40 wc 2 Dex 2 dam 2 item_power 6 end # Allowed all chance 25 Object Extremity face ring.117 type 70 value 40 wc 2 Str 4 Dex 4 Con -5 Int -3 Wis -3 Pow -5 damned 1 end # Allowed all chance 33 Object Doom face ring_doom.111 animation ring_doom anim_speed 5 client_anim_random 1 type 70 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 end # Allowed all chance 200 Object Woe type 70 face ring_woe.111 animation ring_woe anim_speed 5 client_anim_random 1 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 end # Allowed all chance 15 Object Occidental Mages type 70 face ring.117 value 5 msg The Ancient School of Occidental Mages created that ring during the Empire Wars, charging it with their Chaotic Powers. endmsg arch event_apply title Python slaying /python/items/ring_occidental_mages.py end end # # Horns: # Allowed horn,shell horn chance 17 Object Plenty face horn2.111 type 3 level -20 hp -30 maxhp -30 value 25 other_arch spell_create_food end # Allowed horn,shell horn chance 10 Object Fire type 3 other_arch spell_firebolt hp -40 maxhp -40 value 10 end # Allowed horn,shell horn chance 10 Object Frost type 3 other_arch spell_frostbolt hp -40 maxhp -40 value 10 end # Allowed horn,shell horn chance 33 Object Aggravation type 3 other_arch spell_aggravation hp -10 maxhp -10 value 3 cursed 1 end # Allowed horn,shell horn chance 20 Object Fools type 3 other_arch spell_aggravation hp -10 maxhp -10 value 5 luck -2 Int -2 damned 1 end # Allowed horn,shell horn chance 5 Object Sirens msg This is a charming little horn. endmsg type 3 other_arch spell_siren_call hp -20 maxhp -20 Cha 2 Int -2 value 30 end # Allowed horn,shell horn chance 3 Object Eorlingas type 3 other_arch spell_firebolt hp -100 maxhp -100 value 40 Cha 1 end # # Cloaks # Allowed all chance 49 Object Woe type 87 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 end # Allowed all chance 50 Object Woe type 87 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 face cloak_black.111 stand_still 1 end # Allowed all chance 50 Object Woe type 87 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 face cloak_red.111 stand_still 1 end # Allowed all chance 50 Object Woe type 87 cursed 1 Str -1 Con -1 Dex -1 Wis -1 Int -1 Pow -1 Cha -1 luck -1 value 5 face cloak_white.111 stand_still 1 end # Allowed all chance 3 Object Doom type 87 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 magic 1 face cloak_lgrey.111 stand_still 1 end # Allowed all chance 3 Object Doom type 87 damned 1 Str -5 Con -5 Dex -5 Wis -5 Int -5 Pow -5 Cha -5 value 30 magic 1 face cloak_black.111 stand_still 1 end # Allowed all chance 2 Object the Magi type 87 weight 120 Pow 1 Wis 1 sp 2 value 2000 material 8320 materialname astolare face cloak_purple.111 stand_still 1 item_power 4 end # Allowed all chance 2 Object Lythander type 87 weight 120 Pow 2 sp 1 resist_confusion 55 value 2000 material 256 face serp_cloak.111 stand_still 1 item_power 5 end # Allowed all chance 2 Object Gaea type 87 weight 120 reflect_spell 1 Str -1 hp 2 resist_fire 10 resist_cold 10 resist_electricity 10 value 2000 material 256 face serp_cloak.111 stand_still 1 item_power 3 end # Allowed all chance 50 difficulty 3 Object minor protection weight 120 type 87 value 20 ac 1 face cloak_lgrey.111 stand_still 1 item_power 1 end # Allowed all chance 10 difficulty 5 Object intermediate protection weight 125 type 87 value 100 ac 2 face cloak_white.111 stand_still 1 item_power 2 end # Allowed all chance 3 difficulty 7 Object greater protection type 87 weight 130 value 300 ac 3 material 8320 materialname astolare face cloak_white.111 stand_still 1 item_power 3 end # Allowed all chance 10 difficulty 3 Object beguilement type 87 value 100 Cha 2 weight 110 face cloak_lblue.111 stand_still 1 item_power 2 end # Allowed all chance 3 difficulty 3 Object Asbestos type 87 weight 135 value 400 resist_fire 25 material 8320 materialname asbestos face cloak_lgrey.111 stand_still 1 item_power 1 end # Allowed all chance 3 difficulty 3 Object Warmth type 87 weight 140 value 350 resist_cold 25 material 8320 materialname wool face cloak_red.111 stand_still 1 item_power 1 end # Allowed all chance 3 difficulty 3 Object Insulation type 87 weight 140 value 350 resist_electricity 25 material 8320 materialname rubber face cloak_white.111 stand_still 1 item_power 1 end # Allowed all chance 2 difficulty 3 Object Acid Proofing type 87 value 500 weight 95 resist_acid 65 material 8320 materialname astolare face cloak_black.111 stand_still 1 item_power 3 end # Allowed all chance 3 difficulty 3 Object the Devourers type 87 value 500 weight 50 resist_drain 30 resist_ghosthit 30 resist_deplete 100 material 8320 materialname astolare Cha -2 face cloak_black.111 stand_still 1 item_power 4 end # Allowed all chance 1 difficulty 5 Object Gorokh type 87 value 5000 weight 200 resist_fire 30 resist_acid 50 material 0 Cha -6 face cloak_red.111 stand_still 1 end # Allowed all chance 1 difficulty 7 Object the Underworld type 87 value 2000 resist_confusion 50 resist_acid 90 resist_drain 100 resist_fire -10 resist_ghosthit 90 resist_deplete 100 weight 150 material 8320 materialname astolare Cha -4 face cloak_black.111 stand_still 1 item_power 19 end # Allowed all chance 1 difficulty 20 Object Invisibility type 87 value 800 weight 130 material 8320 materialname astolare Str -10 Dex -10 Con -10 msg This cloak sucks vitality from the wearer in order to maintain his invisibility. endmsg make_invisible 1 resist_paralyze -100 face cloak_trans.112 stand_still 1 end # Allowed all chance 1 difficulty 50 Object Unholy Protection type 87 damned 1 weight 50 resist_holyword 50 material 8320 materialname astolare Wis -2 face cloak_black.111 stand_still 1 item_power 5 end # #Artifact boots! # Allowed low_boots chance 1 difficulty 15 Object Invisibility type 99 value 800 weight 60 material 8200 materialname dragonhide ac 1 Str -10 Dex -12 Con -10 msg These shoes prevent others from seeing your movements. Bewarned however that they slow you down and draw strength from you. Not only this but some enemies can still see you with magic! endmsg make_invisible 1 face low_boots.111 stand_still 1 end # Allowed !sandals chance 20 difficulty 2 Object granite type 99 value 60 weight 1000 material 8256 materialname granite ac 5 msg What strange boots, they look very protective, but amazingly heavy. There also doesn't appear to be any laces, you wonder how you're ever going to take them off. endmsg face high_boots.111 stand_still 1 cursed 1 end # Allowed !high_boots chance 40 difficulty 1 Object mobility type 99 value 50 weight 80 material 8200 materialname dragonhide resist_confusion 25 resist_slow 20 resist_paralyze 20 resist_fear 50 exp 2 msg These sure look like useful boots. They feel a little lighter and appear a bit sleeker. endmsg stand_still 1 item_power 4 end # Allowed all chance 40 difficulty 1 Object clawing type 99 value 50 weight 120 material 8200 materialname dragonhide dam 2 msg These boots have sharpened claws at the tips, which look like they would aid greatly in combat. endmsg stand_still 1 item_power 1 end # Allowed all chance 40 difficulty 1 Object steel type 99 value 50 weight 110 material 8194 materialname steel ac 1 resist_physical 10 msg The metal exterior provides a little extra resistance. endmsg stand_still 1 item_power 2 end # # #Artifact gems! # Allowed diamond chance 60 Object great value face pretty_crystal.111 stand_still 1 value 10 type 60 weight 110 end # Allowed diamond chance 20 difficulty 3 Object exceptional beauty face diamond_exceptional.111 value 100 stand_still 1 type 60 weight 130 nrof 4 end # Allowed diamond chance 5 difficulty 5 Object flawless beauty face diamond_flawless.111 value 1000 stand_still 1 type 60 weight 200 nrof 4 end # Allowed ruby chance 60 Object great value face pretty_ruby.111 stand_still 1 value 10 type 60 weight 110 end # Allowed ruby chance 20 difficulty 3 Object exceptional beauty face ruby_exceptional.111 value 100 stand_still 1 type 60 weight 130 nrof 4 end # Allowed ruby chance 5 difficulty 5 Object flawless beauty face ruby_flawless.111 value 1000 stand_still 1 type 60 weight 200 nrof 4 end # Allowed sapphire chance 60 Object great value face pretty_sapphire.111 stand_still 1 value 10 type 60 weight 110 end # Allowed sapphire chance 20 difficulty 3 Object exceptional beauty face sapphire_exceptional.111 value 100 stand_still 1 type 60 weight 130 nrof 4 end # Allowed sapphire chance 5 difficulty 5 Object flawless beauty face sapphire_flawless.111 value 1000 stand_still 1 type 60 weight 200 nrof 4 end # Allowed emerald chance 60 Object great value face pretty_emerald.111 stand_still 1 value 10 type 60 weight 110 end # Allowed emerald chance 20 difficulty 3 Object exceptional beauty face emerald_exceptional.111 value 100 stand_still 1 type 60 weight 130 nrof 4 end # Allowed emerald chance 5 difficulty 5 Object flawless beauty face emerald_flawless.111 value 1000 stand_still 1 type 60 weight 200 nrof 4 end # Allowed amethyst chance 60 Object great value face pretty_amethyst.111 stand_still 1 value 10 type 60 weight 110 end # Allowed amethyst chance 20 difficulty 3 Object exceptional beauty face amethyst_exceptional.111 value 100 stand_still 1 type 60 weight 130 nrof 4 end # Allowed amethyst chance 5 difficulty 5 Object flawless beauty face amethyst_flawless.111 value 1000 stand_still 1 type 60 weight 200 nrof 4 end # # #Amulets! # Allowed all chance 127 Object Shielding face amulet_shielding.111 resist_physical 20 type 39 value 20 item_power 1 end # Allowed all chance 127 Object Sustenance face amulet_sustenance.111 food 15 type 39 value 20 # item power calculation is skewed because of # the high food value above item_power 4 end # Allowed all chance 100 difficulty 6 Object Empowerment face amulet_empowerement.111 material 256 type 39 value 40 sp 2 item_power 2 end # Allowed all chance 255 difficulty 6 Object Sorrow face amulet_sorrow.111 type 39 value 0 cursed 1 resist_magic -100 end # Allowed all chance 50 difficulty 4 Object Calling Death face amulet_calling_death.111 type 39 value 0 damned 1 cursed 1 resist_physical -100 resist_magic -100 resist_fire -100 resist_electricity -100 resist_cold -100 resist_confusion -100 resist_acid -100 end # Allowed all chance 10 difficulty 10 Object Aethereality face amulet_aethereality.111 material 256 type 39 value 3000 resist_physical 50 item_power 3 end # Allowed all chance 10 difficulty 10 Object Power type 39 face amulet_power.111 material 256 sp 7 value 4000 item_power 5 end # Allowed all chance 75 difficulty 7 Object Deflection reflect_spell 1 face amulet_deflection.111 reflect_missile 1 material 256 ac 2 resist_physical 30 type 39 value 1000 item_power 5 end # Allowed all chance 50 difficulty 7 Object the Shielded Mind face amulet_shielded_mind.111 type 39 material 256 resist_confusion 100 resist_paralyze 100 resist_fear 100 value 1000 item_power 14 end # Allowed all chance 40 difficulty 5 Object Free Action face amulet_free_action.111 type 39 material 256 value 300 resist_slow 100 resist_paralyze 100 resist_confusion 30 resist_fear 30 item_power 8 end # Allowed all chance 5 difficulty 9 Object the Magi face amulet_magi.111 type 39 material 256 sp 5 Int 2 Pow 2 value 5000 resist_magic 30 reflect_spell 1 item_power 12 end # Allowed all chance 30 difficulty 9 Object Holiness face amulet_holiness.111 type 39 material 256 Wis 3 value 300 path_attuned 385 item_power 3 end # Allowed all chance 60 difficulty 9 Object Unholiness face amulet_unholiness.111 type 39 value 10 path_repelled 257 path_attuned 192 damned 1 cursed 1 end # Allowed all chance 1 difficulty 9 Object Destruction face amulet_destruction.111 type 39 value 800 material 256 path_repelled 256 path_attuned 542 path_denied 2048 end # # Containers (the following is hack to get a quiver for bolts also) # It would be better that it would be possible to define object # NONE also, and not use the fixed probability. # Allowed quiver chance 100 Object Holding Throwing Weapons type 122 value 100 race throwing Str 80 end # Allowed quiver chance 100 Object Holding Bolts type 122 value 100 race crossbow bolts Str 80 end # Allowed quiver chance 100 Object Holding Arrows type 122 value 100 Str 80 end # Allowed !quiver,!cauldron chance 100 Object Holding type 122 value 100 Str 50 end # Allowed bag chance 10 difficulty 7 Object Great Holding type 122 value 100 Str 75 end # # Arrows/Missiles # Allowed all chance 250 Object inaccuracy type 13 wc -7 cursed 1 end # Allowed all chance 100 difficulty 5 Object Accuracy type 13 value 5 wc 7 dam -8 food 50 end # Allowed arrow chance 100 Object Fire attacktype 4 type 13 dam -8 value 6 animation arrow_fire face arrow_fire.101 end # Allowed !arrow chance 100 Object Fire attacktype 4 type 13 dam -8 value 6 end # Allowed arrow chance 100 Object Frost attacktype 16 type 13 dam -8 value 6 animation arrow_frost face arrow_frost.101 end # Allowed !arrow chance 100 Object Frost attacktype 16 type 13 dam -8 value 6 end # Allowed arrow chance 100 difficulty 6 Object Poison attacktype 1025 type 13 dam -8 value 6 magic 1 animation arrow_poison face arrow_poison.101 end # Allowed !arrow chance 100 difficulty 6 Object Poison attacktype 1025 type 13 dam -8 value 6 magic 1 end # Allowed arrow chance 100 Object Lightning attacktype 8 type 13 dam -8 value 6 animation arrow_lightning face arrow_lightning.101 end # Allowed !arrow chance 100 Object Lightning attacktype 8 type 13 dam -8 value 6 end # Allowed arrow chance 50 difficulty 6 Object Paralysis attacktype 4097 type 13 value 8 wc 2 food 80 msg These missiles have been soaked in some strange liquid which stuns the victim. These missiles also broken much more easily than normal ones. endmsg animation arrow_paralysis face arrow_paralysis.101 end # Allowed !arrow chance 50 difficulty 6 Object Paralysis attacktype 4097 type 13 value 8 wc 2 food 80 msg These missiles have been soaked in some strange liquid which stuns the victim. These missiles also broken much more easily than normal ones. endmsg end # Allowed all chance 20 Object Assassinating Trolls slaying troll attacktype 131072 msg These missiles are inscribed with powerful runes for the bane of trolls. A scratch from one of these arrows could smite one dead. endmsg type 13 value 500 wc 7 dam -20 food 100 nrof 10 level 40 end # Allowed all chance 20 difficulty 5 Object Assassinating Dragons slaying dragon attacktype 131072 msg These missiles are inscribed with powerful runes for the bane of dragons. A scratch from one of these arrows could smite one dead. endmsg type 13 value 1000 wc 7 dam -20 food 100 nrof 10 resist_fire 100 level 50 end # Allowed all chance 20 difficulty 5 Object Blessedness slaying undead,demon msg These missiles are invested with a great holiness so that even a scratch might banish an undead creature or a demon back to the hell from which it came. endmsg attacktype 131072 type 13 value 500 wc 7 dam -20 food 70 nrof 10 level 50 end # Allowed arrow,bolt chance 100 difficulty 5 Object Slay Dragon type 13 value 5 slaying dragon dam -12 food 10 end # Allowed arrow,bolt chance 50 difficulty 8 Object Magic type 13 value 10 attacktype 2 dam -20 wc 6 msg These magical arrows are very powerful weapon. endmsg food 90 end # Allowed bolt chance 1 difficulty 5 Object Demon Slaying type 13 value 5 slaying demon magic 4 dam 12 food 10 msg This powerful bolt can rip right through any demon it is shot at, but it tends to break very easily. endmsg end # Allowed bolt chance 100 difficulty 5 Object silver head material 8194 materialname silver type 13 value 5 slaying vampire attacktype 2 end # Allowed bolt chance 50 difficulty 8 Object Piercing type 13 value 7 dam -25 wc 6 weight 150 food 10 end # Allowed bolt chance 10 Object Adamantite type 13 value 10 weight 90 material 8448 materialname adamantium food 10 end # # Bows # Allowed all chance 10 Object Accuracy type 14 value 5 weight 80 wc 4 item_power 2 end # Allowed all chance 10 Object Valriel type 14 magic 1 value 15 weight 110 dam 20 end # Allowed all chance 15 Object Gorokh type 14 magic 2 value 15 attacktype 65 dam 16 item_power 1 end # Allowed !crossbow chance 10 Object Lythander type 14 magic 1 value 22 weight 75 sp 150 wc 1 item_power 1 end # Allowed crossbow chance 10 Object Ruggilli type 14 magic 2 value 18 weight 85 sp 110 wc 1 attacktype 4 item_power 2 end # Allowed all chance 12 Object Sorig type 14 magic 2 value 20 weight 95 sp 125 wc 1 attacktype 8 item_power 2 end # Allowed crossbow chance 5 Object Mostrai type 14 magic 3 dam 14 sp 75 value 50 attacktype 256 item_power 1 end # Allowed all chance 10 difficulty 5 Object Thunder type 14 value 10 magic 2 weight 90 dam 15 wc 2 attacktype 6145 item_power 3 end # Allowed all chance 40 Object inaccuracy type 14 value 5 wc -4 cursed 1 end # Allowed bow chance 1 difficulty 5 Object Auriga type 14 weight 80 msg This magical bow shoots with such force that the arrows sometimes fly right through the target. endmsg value 100 wc 5 dam -25 item_power 4 end # Allowed bow chance 5 Object wizard type 14 value 5 dam -7 msg This bow is magically enchanted so that archer's strength doesn't affect damage made by it. endmsg no_strength 1 end # # # SKILLS # Allowed lockpicks chance 100 Object quality type 74 value 5 Dex 1 end # Allowed lockpicks chance 30 Object high quality type 74 value 10 Dex 3 end # # talismans - # Allowed talisman chance 50 Object Fire type 74 material 256 value 3 path_attuned 2 path_repelled 4 end # Allowed talisman chance 50 Object Frost type 74 material 256 value 3 path_attuned 4 path_repelled 2 end # Allowed talisman chance 80 Object Missiles type 74 material 256 value 5 path_attuned 16 end # Allowed talisman chance 40 Object Unified Mind type 74 material 256 value 7 path_attuned 1056 Int 3 item_power 4 end # Allowed talisman chance 20 difficulty 10 Object Creation type 74 material 256 value 9 path_attuned 6208 item_power 2 end # Allowed talisman chance 20 difficulty 10 Object Elements type 74 material 256 value 9 path_attuned 14 item_power 4 end # Allowed talisman chance 3 difficulty 13 Object Wizardry type 74 material 256 value 25 path_attuned 28286 Pow 1 item_power 5 end # # holy symbols # Allowed holy_symbol chance 80 difficulty 5 Object Probity type 74 material 256 value 5 path_attuned 257 path_repelled 128 path_denied 0 item_power 1 face holy_symbol_probity.111 end # Allowed holy_symbol chance 10 difficulty 5 Object Great Virtue type 74 material 256 value 25 path_attuned 8640 Wis 2 item_power 4 face holy_symbol_great_virtue.111 end # Allowed holy_symbol chance 10 difficulty 5 Object The Dark Path type 74 material 256 value 25 path_attuned 393216 path_denied 256 item_power 2 face holy_symbol_dark_path.111 end # Allowed holy_symbol chance 10 difficulty 5 Object Turning type 74 material 256 value 25 path_attuned 65536 item_power 1 face holy_symbol_turning.111 end # Allowed holy_symbol chance 50 difficulty 5 Object Calling type 74 material 256 value 5 path_attuned 64 path_repelled 256 face holy_symbol_calling.111 end # # DRINK. # Allowed water chance 90 Object the wise type 54 food 1 value 10 face water_wise.111 end # Allowed water chance 17 difficulty 2 Object pearl type 54 food 1 value 50 face water_pearl.111 end # Allowed water chance 15 difficulty 3 Object emerald type 54 food 1 value 58 face water_emerald.111 end # Allowed water chance 13 difficulty 5 Object sapphire type 54 food 1 value 67 face water_sapphire.111 end # Allowed water chance 8 difficulty 5 Object ruby type 54 food 1 value 76 face water_ruby.111 end # Allowed water chance 3 difficulty 8 Object diamond type 54 food 1 value 191 face water_diamond.111 end # # FOOD. Types of food which can effect player status # # Note: an item is cursed, the effect is generally reversed! # Allowed !waybread chance 200 Object Poison type 6 food 10 hp -5 cursed 1 end # Allowed !waybread chance 20 Object Hideous Poison type 6 food 10 hp -25 Str -1 Con -1 Dex -1 Cha -1 cursed 1 end # Allowed mushroom_1, mushroom_2, mushroom_3 chance 150 Object Gourmet type 6 value 2 food 250 end # Allowed mushroom_1, mushroom_2, mushroom_3 chance 5 Object Magic type 6 value 80 sp 100 end # # note the cursed status here!, this mushroom drains mana # Allowed mushroom_1, mushroom_2, mushroom_3 chance 15 Object Magic type 6 value 80 cursed 1 sp 100 end # Allowed mushroom_1, mushroom_2, mushroom_3 chance 20 Object Healing type 6 value 40 hp 50 end # Allowed food, mushroom_1, mushroom_2 chance 15 Object Stamina type 6 value 30 Con 1 end # Allowed waybread chance 100 Object Aelingas type 6 value 10 Str 1 Con 1 end # Allowed mushroom_2, mushroom_3 chance 15 Object Strength type 6 value 30 Str 1 end # Allowed mushroom_1, mushroom_3 chance 15 Object Quickness type 6 value 30 Dex 1 end # Allowed mushroom_1 chance 100 Object Heat Resistance type 6 value 30 resist_fire 30 end # Allowed mushroom_2 chance 100 Object Frost Resistance type 6 value 30 resist_cold 30 end # Allowed mushroom_1, mushroom_2, mushroom_3 chance 10 Object Bravery type 6 value 100 resist_fear 30 end # Allowed mushroom_3 chance 90 Object Magic Resistance type 6 value 40 resist_magic 30 end # Allowed mushroom_2, mushroom_3 chance 5 Object Life type 6 value 500 Con 1 resist_drain 30 resist_deplete 30 end # # Potions (incl. dusts, balms and figurine sub-types) # # # - attack potions # Allowed potion_generic chance 1 Object firestorm face potion_fire2.111 stand_still 1 type 5 value 1 other_arch spell_small_fireball end # Allowed potion_generic chance 1 Object great firestorm face potion_fire2.111 stand_still 1 type 5 other_arch spell_medium_fireball value 5 end # Allowed potion_generic chance 1 Object black fire face potion_fire2.111 stand_still 1 type 5 other_arch spell_comet value 8 level -30 end # Allowed potion_generic chance 1 Object fiery destruction type 5 face potion_fire2.111 stand_still 1 other_arch spell_meteor_swarm value 15 level -60 end # Allowed potion_generic chance 1 Object sunfire face potion_fire2.111 stand_still 1 type 5 other_arch spell_sunspear value 5 end # Allowed potion_generic chance 1 Object freezing face potion_freeze.111 stand_still 1 type 5 other_arch spell_frostbolt value 1 end # Allowed potion_generic chance 1 Object fire face potion_fire2.111 stand_still 1 type 5 other_arch spell_firebolt value 1 end # Allowed potion_generic chance 1 Object electric shock face potion_shock.111 stand_still 1 type 5 other_arch spell_sm_lightning value 1 end # # -- poison cloud Allowed potion_generic chance 1 Object noxious fumes stand_still 1 type 5 other_arch spell_poison_cloud value 1 end # # -- ball lightning Allowed potion_generic chance 1 Object lasting shock stand_still 1 type 5 other_arch spell_ball_lightning value 15 end # # -- color spray Allowed potion_generic chance 1 Object Rainbow Wave stand_still 1 type 5 other_arch spell_color_spray value 20 end # # - curative potions # Allowed balm_generic chance 1 Object first aid type 5 value 1 other_arch spell_minor_healing end # Allowed potion_generic chance 1 Object cure vision face potion_heal2.111 type 5 other_arch spell_cure_blindness value 2 end # Allowed potion_generic chance 1 Object cure poison face potion_heal2.111 stand_still 1 type 5 other_arch spell_cure_poison value 1 end # Allowed potion_generic chance 1 Object cure madness face potion_heal2.111 stand_still 1 type 5 other_arch spell_cure_confusion value 2 end # Allowed potion_generic chance 1 Object cure disease stand_still 1 type 5 other_arch spell_cure_disease value 3 end # Allowed potion_generic chance 1 Object testing monsters stand_still 1 type 5 value 1 other_arch spell_probe end # # - protective potions # Allowed balm_generic chance 1 Object aethereality type 5 resist_physical 50 value 3 end # Allowed balm_generic chance 1 Object asbestos type 5 resist_fire 50 value 1 end # Allowed balm_generic chance 1 Object insulation type 5 resist_electricity 50 value 1 end # Allowed balm_generic chance 1 Object warmth type 5 resist_cold 50 value 1 end # Allowed potion_generic chance 1 Object resist confusion stand_still 1 face potion_resist.111 type 5 value 1 resist_confusion 50 end # Allowed potion_generic chance 1 Object resist magic face potion_resist.111 stand_still 1 type 5 resist_magic 50 value 3 end # Allowed potion_generic chance 1 Object resist draining face potion_resist.111 stand_still 1 type 5 value 1 resist_drain 50 end # Allowed potion_generic chance 1 Object resist paralysis face potion_resist.111 stand_still 1 type 5 resist_paralyze 50 value 1 end # Allowed potion_generic chance 1 Object resist poison face potion_resist.111 stand_still 1 type 5 resist_poison 50 value 1 end # Allowed potion_generic chance 1 Object resist slow face potion_resist.111 stand_still 1 type 5 resist_slow 50 value 1 end # Allowed potion_generic chance 1 Object shock resistance type 5 face potion_ishock.111 stand_still 1 resist_electricity 90 value 100 end # Allowed potion_generic chance 1 Object magic resistance face potion_mimm.111 stand_still 1 type 5 resist_magic 90 value 150 end # # - stat potions # Allowed potion_generic chance 1 Object strength face potion_util.111 stand_still 1 type 5 other_arch spell_strength value 1 end # Allowed potion_generic chance 1 Object agility type 5 face potion_util.111 stand_still 1 other_arch spell_dexterity value 1 end # Allowed potion_generic chance 1 Object fortitude type 5 face potion_util.111 stand_still 1 other_arch spell_constitution value 1 end # Allowed balm_generic chance 1 Object beauty type 5 other_arch spell_charisma value 4 end # # - misc. potions and balms # Allowed balm_generic chance 1 Object flying type 5 value 1 other_arch spell_levitate end # Allowed balm_generic chance 1 Object the serpent type 5 value 1 other_arch spell_staff_to_snake end # Allowed balm_generic chance 1 Object invisible to undead type 5 other_arch spell_invisible_to_undead value 1 end # Allowed balm_generic chance 1 Object transparency type 5 other_arch spell_improved_invisibility value 1 end # Allowed balm_generic chance 1 Object return home type 5 value 1 other_arch spell_word_of_recall end # Allowed potion_generic chance 1 Object self knowledge face potion_util.111 type 5 value 1 other_arch spell_perceive_self end # Allowed potion_generic chance 1 Object mystic power face potion_util.111 type 5 other_arch spell_transference value 8 end # Allowed potion_generic chance 1 Object speed face potion_util.111 stand_still 1 type 5 level -80 other_arch spell_haste value 15 end # Allowed potion_generic chance 1 Object recuperation face potion_util.111 stand_still 1 type 5 other_arch spell_regeneration value 2 end # # - figurines- these summon stuff # Allowed figurine_generic chance 1 Object clay type 5 other_arch spell_summon_golem value 1 level -20 face figurine_clay.111 end # Allowed figurine_generic chance 1 Object stone type 5 other_arch spell_summon_earth_elemental level -20 value 1 face figurine_stone.111 end # Allowed figurine_generic chance 1 Object whirlwind type 5 other_arch spell_summon_air_elemental level -20 value 1 face figurine_whirlwind.111 end # Allowed figurine_generic chance 1 Object a great wave type 5 other_arch spell_summon_water_elemental level -20 value 1 face figurine_great_wave.111 end # Allowed figurine_generic chance 1 Object a flame type 5 other_arch spell_summon_fire_elemental value 1 level -20 face figurine_flame.111 end # Allowed figurine_generic chance 1 Object a clenched hand type 5 other_arch spell_mystic_fist level -20 value 1 end # # Dusts. # # - 360 deg effect # Allowed dust_generic chance 1 Object stasis type 5 value 1 other_arch spell_paralyze end # Allowed dust_generic chance 1 Object frost type 5 other_arch spell_icestorm value 1 end # Allowed dust_generic chance 1 Object fright type 5 value 1 other_arch spell_fear end # Allowed dust_generic chance 1 Object lethargy type 5 value 1 other_arch spell_slow end # Allowed dust_generic chance 1 Object concussion type 5 other_arch spell_shockwave value 6 end # #Allowed dust_generic #chance 1 #Object Necrocritis #type 5 #other_arch spell_face_of_death #level -20 #value 20 #end # Allowed dust_generic chance 1 Object repelling undead type 5 other_arch spell_turn_undead level -30 value 1 end # Allowed dust_generic chance 1 Object madness type 5 other_arch spell_mass_confusion value 2 end # Allowed dust_generic chance 1 Object ignition type 5 other_arch spell_burning_hands value 2 end # Allowed dust_generic chance 1 Object conflagration type 5 other_arch spell_hellfire value 4 end # Allowed dust_generic chance 1 Object countermagic type 5 other_arch spell_counterspell level -30 value 1 end # Allowed dust_generic chance 1 Object the Dead type 5 other_arch spell_command_undead level -30 value 1 end # # -- mana blast Allowed dust_generic chance 1 Object consuming wrath type 5 other_arch spell_mana_blast value 3 end # # -- medium mana ball Allowed dust_generic chance 1 Object encompassing rage type 5 other_arch spell_medium_manaball value 6 end # # -- medium snowstorm Allowed dust_generic chance 1 Object blizzards type 5 other_arch spell_medium_snowstorm value 4 end # # dusts w/ provide detection # Allowed dust_generic chance 1 Object clairvoyance type 5 other_arch spell_magic_mapping value 2 end # Allowed dust_generic chance 1 Object revealing type 5 other_arch spell_show_invisible level -20 value 8 end # Allowed dust_generic chance 1 Object show enchantment type 5 other_arch spell_detect_magic value 1 end # Allowed dust_generic chance 1 Object night vision type 5 value 1 other_arch spell_dark_vision end # Allowed dust_generic chance 1 Object piercing vision type 5 other_arch spell_xray value 6 end # Allowed dust_generic chance 1 Object clinging glow type 5 other_arch spell_faery_fire value 1 end # Allowed dust_generic chance 1 Object Biren's mist type 5 other_arch spell_summon_fog value 1 end # # misc. dusts # # -- light Allowed dust_generic chance 1 Object brightness type 5 other_arch spell_light level -20 value 1 end # # -- darkness Allowed dust_generic chance 1 Object impenatrability type 5 other_arch spell_darkness level -20 value 1 end # �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/README�����������������������������������������������������������������������������0000644�0000145�0000012�00000016652�11731300547�011375� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������WHAT IS CROSSFIRE? Crossfire is a multiplayer graphical arcade and adventure game made for the X-Windows environment. It runs on a client/server model. There are two officially maintained, up-to-date clients. One is developed with GTK+ 2 and can use SDL or OpenGL. The other is a Java client. The game has certain flavours from other games, especially Gauntlet (TM) and Nethack/Moria. Any number of players can move around in their own window, finding and using items and battling monsters, solving quests, etc. They can choose to cooperate or compete in the same "world". This README is for the server. The client, which is downloaded separately, has it's own README. REQUIREMENTS For UNIX, an ANSI C compiler (with some C99 features, such as snprintf()) is needed to compile the server. GCC is recommended. To build a functional server, you not only need the server files, but also the archetype files. They need to be unpacked or sym-linked under the lib directory. The map distribution is needed in order to have a usable map set. You also need Perl to generate the archetype files. This is only done at build time. There are some optional dependencies: * Support for dynamically loaded libraries. Most modern systems have this. * SQLite3 - For cflogger and cfnewspaper. * Python 2.4 or later - For cfpython. This is highly recommended. A lot of items, maps and quests will not work without Python. * Check - for unit tests. This is required for developers, normal users do not need to bother about this. Check is not always distributed with popular distributions, but it is found at http://check.sourceforge.net/. For Windows: Someone with Windows: please fill this in. COMPILING Crossfire has been known to compile on a wide variety of systems. It should compile on most all ANSI C and POSIX compliant systems. To get directions on compilation under Unix/Linux, read the INSTALL file. For Windows: Someone with Windows: please fill this in. USAGE Crossfire runs on a client/server model. You will also need the client to play. You can either connect to a server someone else has set up, or run your own server and connect to that. The client package has information for connecting to servers. To run your own server, you need to make the crossfire binaries and install them, and then run the crossfire-server program. This creates a server that you and other people can connect to. The map files must be downloaded and installed for the server to run properly. They should be unpacked in the $(TARGET)/share/crossfire directory - after unpacking, you should have a $(TARGET)/share/crossfire/maps directory. Alternatively, maps in that location may be a sym-link that points to a different folder. If you plan to run a long term server, you should use one of the scripts provided that will re-run crossfire if it dies for some reason. IRC It is possible to link up with a small community of Crossfire aficianados on #crossfire at irc.freenode.net. Though activity waxes and wanes, it is often possible to get "live" help there. MAILING LIST For the latest subscription for crossfire mailing lists, go to: http://crossfire.real-time.com/mailinglists/index.html There you can subscribe/unsubscribe any of the mailing lists. Links to archives of the mailing lists can be found there, as well as at: http://gmane.org/find.php?list=crossfire FTP SITES FTP-sites where you can look for the latest versions are: http://prdownloads.sourceforge.net/crossfire/ ftp://ftp.real-time.com/pub/games/crossfire Changes made since the latest release can be found at the SVN repository. Information on anonymous SVN access and browsing the repository can be found at: http://sourceforge.net/svn/?group_id=13833 WEB SITES: The following web addresses have crossfire information that you may find useful: real-time is the main crossfire site: http://crossfire.real-time.com/ Following link contains much more detailed steps on compiling the server from source: http://wiki.metalforge.net/doku.php/crossfire_compile_guide If you plan to run a public server, the following link provides a lot of useful information on various customizations you should make: http://wiki.metalforge.net/doku.php/serverhosting:hosting_a_crossfire_server REPORTING BUGS First, check the INSTALL file for common problems, and see if yours is mentioned. Bugs should be filed at the sourceforge web site: http//sourceforge.net/tracker/?group_id=13833&atid=113833 When reporting bugs, make sure you include the following: o If you have a sourceforge login, make sure you are logged in. This way, if there are questions about the bug, you will be notified about the request for more information. o What version of crossfire did you use? o What type of computer did you use (CPU type) o What is the version of the OS? o What compiler (and its version) did you use (ie, gcc, icc, etc)? o Which flags did you give it? o If the bug happens when compiling crossfire, send an EXACT copy of the compiler line, as well as the errors it puts out. Sending bugs of the sort 'it failed with a line like ...' doesn't help at all. o If you are using any of the plugins, what version(s) of Python and SQLite do you have installed? o If the bug happened while running crossfire: - Include any output before to the bug. - Give a description of what you did before the bug occurred. The better detailed the description, the better chance we have of figuring out where the bug happened, or how we can recreate the bug. - If possible, a stack trace from gdb (or other debugger) is very helpful. The more information provided, the better chance of the bug being fixed in a timely fashion. Further debugging information can be found at http://crossfire.real-time.com/debugging_tips.html ------------------------------------------------------------------------------ SUBMITTING PATCHES: See the doc/programming_guide file. The patches should be submitted to the patch tracker on sourceforge: http://sourceforge.net/tracker/?group_id=13833&atid=313833 PUBLIC SERVERS: The best way to find a server to play is to run the client. It will contact the metaserver and present a list to choose from. You can also see a list at http://crossfire.real-time.com/metaserver/ or http://crossfire.real-time.com/metaserver2/. COPYRIGHT Don't get scared by the below, it's included just for "safety" reasons 8) (Don't want anyone to start selling the game) Copyright (C) 2000,2006 Mark Wedel Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to crossfire-devel@real-time.com ��������������������������������������������������������������������������������������crossfire-1.70.0/configure.ac�����������������������������������������������������������������������0000644�0000145�0000012�00000030656�11732536765�013021� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_REVISION($Id: configure.ac 17644 2012-03-22 05:53:09Z mwedel $) AC_INIT([crossfire], [1.70.0], [crossfire-devel@listserv.real-time.com]) AC_CONFIG_MACRO_DIR([macros]) AC_CONFIG_AUX_DIR([utils]) AC_CONFIG_SRCDIR([server/main.c]) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS([include/autoconf.h]) AC_PREFIX_DEFAULT(/usr/games/crossfire) # we want a config.h file instead of -D options. # Checks for programs. AC_PROG_LIBTOOL AC_PROG_CC case "$target" in alpha-dec-osf*) # If we are not using gcc, we want the ansi version of cc. if test -z "$GCC"; then # CFLAGS="$CFLAGS -std1 -warnprotos" # Not yet ready for warnprotos... CFLAGS="$CFLAGS -std1" fi ;; *) ;; esac AC_PROG_CPP AM_PROG_LEX AM_PROG_CC_C_O AC_PROG_AWK CF_CHECK_VISIBILITY() AC_ARG_ENABLE(dmalloc, [AS_HELP_STRING([--enable-dmalloc], [Use the dmalloc library if available, may prevent plugins from working])],, enable_dmalloc=no) AC_ARG_WITH(python, [AS_HELP_STRING([--with-python=dir], [Directory to look for python headers/library (default=standard system location)])], PYTHON_HOME="$withval") AC_ARG_ENABLE(mapper, [AS_HELP_STRING([--enable-mapper], [Whether or not to build the crossfire-mapper utility (default=no; requires libgd)])],, enable_mapper=no) AC_ARG_ENABLE(cfrhg, [AS_HELP_STRING([--enable-cfrhg], [Whether or not to build the random house generator plugin (default=no)])],, enable_cfrhg=no) # check for some other programs AC_PATH_PROG(LATEX, latex) AC_PATH_PROG(GZIP, gzip) AC_PATH_PROG(GUNZIP, gunzip) AC_PATH_PROG(TAR, tar) AC_PATH_PROG(PERL, perl) AC_PATH_PROG(BASENAME, basename) if test -n "$GZIP" -a -z "$GUNZIP" ; then echo "Found gzip, but not gunzip - setting GUNZIP to gzip -c"; GUNZIP="$GZIP -c" fi; if test -z "$COMPRESS" ; then AC_PATH_PROG(COMPRESS, compress) AC_PATH_PROG(UNCOMPRESS, uncompress) fi AC_PATH_PROG(BZIP, bzip2) AC_PATH_PROG(BUNZIP, bunzip2) if test -n "$BZIP" -a -z "$BUNZIP" ; then echo "Found bzip2, but not bunzip2 - setting BUNZIP to bzip2 -c"; BUNZIP="$BZIP -c" fi; if test -z "$COMPRESS" -a -z "$GZIP" -a -z "$BZIP" ; then echo "Unable to find either compress, bzip2, or gzip - hope you don't plan on compressing"; echo "any files."; fi; # Check if svnversion is avaliable to get the rev number AC_PATH_PROG(SVNVERSION, svnversion) # Check for some library functions AC_SEARCH_LIBS([gethostbyname], [nsl]) AC_SEARCH_LIBS([pow], [m]) AC_SEARCH_LIBS([sqrt], [m]) # Misc libraries. AC_SEARCH_LIBS([crypt], [crypt]) AC_CHECK_LIB(des, des_crypt) AC_CHECK_LIB(z, compress) AC_CHECK_LIB(pthread, pthread_create) LIBCURL_CHECK_CONFIG() # For utils/mapper cf_make_mapper=no if eval "test x$enable_mapper = xyes"; then AC_PATH_PROG(GDLIB_CONFIG,gdlib-config) if test -n "$GDLIB_CONFIG"; then GD_LIBS="`$GDLIB_CONFIG --ldflags` `$GDLIB_CONFIG --libs` -lgd" AC_SUBST(GD_LIBS, $GD_LIBS) cf_make_mapper=yes else AC_MSG_WARN([Cannot find gdlib-config; will not build crossfire-mapper.]) fi fi AM_CONDITIONAL(MAPPER, test x$cf_make_mapper = xyes) # Random house generator AM_CONDITIONAL(CFRHG_PLUGIN, test x$enable_cfrhg = xyes) LIBS="$LIBS $LIBCURL" CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS" # Gros - Changed this to support some external programs that do not like dmalloc (like Python). # If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one. if eval "test x$enable_dmalloc = xyes"; then AC_CHECK_LIB(dmalloc, main) else AC_CHECK_LIB(dmalloclp, main) fi # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h malloc.h stddef.h stdlib.h strings.h sys/file.h sys/ioctl.h sys/time.h time.h unistd.h sys/ttycom.h sys/termios.h crypt.h des.h zlib.h pthread.h curl/curl.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT8_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM AC_HEADER_STDBOOL AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT8_T AC_TYPE_UID_T AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) # Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_FUNC_SETPGRP AC_TYPE_SIGNAL AC_FUNC_STRERROR_R AC_FUNC_STRFTIME AC_FUNC_VPRINTF AC_CHECK_FUNCS([getdtablesize gettimeofday mkdir mktime rmdir select socket strcasecmp strcspn strerror strncasecmp strspn strstr strtol snprintf setsid srandom srand48 srand sysconf scandir getaddrinfo getnameinfo]) # alphasort can not be added to AC_CHECK_FUNCS because AC_MSG_CHECKING(checking if alphasort is defined) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dirent.h>]], [[alphasort;]])],[ac_cv_func_alphasort=yes],[ac_cv_func_alphasort=no]) if test "$ac_cv_func_alphasort" = yes; then AC_DEFINE(HAVE_ALPHASORT, 1, [Define if you have the alphasort() function declaration.]) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(how many args gettimeofday uses) AC_CACHE_VAL(ac_cv_gettimeofday_args, [AC_TRY_COMPILE([#include <sys/time.h> #include <unistd.h>], [struct timeval tv; struct timezone tzp; gettimeofday(&tv, &tzp);], [ac_gettimeofday_args=2], [AC_TRY_COMPILE([#include <sys/time.h> #include <unistd.h>], [struct timeval tv; gettimeofday(&tv, NULL);], [ac_gettimeofday_args=2], [AC_TRY_COMPILE([#include <sys/time.h> #include <unistd.h>], [struct timeval tv; gettimeofday(&tv);], [ac_gettimeofday_args=1], [ac_gettimeofday_args=0])])]) ac_cv_gettimeofday_args=$ac_gettimeofday_args]) ac_gettimeofday_args=$ac_cv_gettimeofday_args if test $ac_gettimeofday_args = 1 ; then AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available]) AC_MSG_RESULT(one argument) elif test $ac_gettimeofday_args = 2 ; then AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available]) AC_DEFINE(GETTIMEOFDAY_TWO_ARGS,[],[Define if gettimeofday takes two arguments]) AC_MSG_RESULT(two arguments) else AC_MSG_RESULT(unknown) fi AC_SUBST(PERL) AC_SUBST(BASENAME) AC_SUBST(pkgstatedir,$localstatedir/$PACKAGE) AC_SUBST(pkgconfdir,$sysconfdir/$PACKAGE) AC_DEFINE_UNQUOTED(COMPRESS,"${COMPRESS}",[Path to the compress binary]) AC_DEFINE_UNQUOTED(UNCOMPRESS,"${UNCOMPRESS}",[Path to the uncompress binary]) AC_DEFINE_UNQUOTED(GZIP,"${GZIP}",[Path to the gzip binary]) AC_DEFINE_UNQUOTED(GUNZIP,"${GUNZIP}",[Path to the gunzip binary]) AC_DEFINE_UNQUOTED(BZIP,"${BZIP}",[Path to the bzip binary]) AC_DEFINE_UNQUOTED(BUNZIP,"${BUNZIP}",[Path to the bunzip binary]) ############################################# # Plugin configuration AC_CHECK_LIB(dl, dlopen,[ cf_have_libdl=yes ]) AM_CONDITIONAL(HAVE_LIBDL,test "x$cf_have_libdl" = "xyes") # Test for libdl isn't taken into account for many plugins, don't take into # account for Python. Fixes bug #3353920. # Besides, one can hope modern systems do have that function. #if test "x$cf_have_libdl" = "xyes" ; then ############### # Python plugin CF_CHECK_PYTHON( [PLUGIN_PYTHON="cfpython.la"] [cf_will_build_python="yes"], [cf_will_build_python="no"] [AC_MSG_NOTICE([No Python found. Python plugin will not be built.])] ) # *** Put other plugins configuration code here *** #else # AC_MSG_NOTICE([No dl library found. Plugins will not be supported.]) #fi AM_CONDITIONAL(PYTHON_PLUGIN,test "x$PLUGIN_PYTHON" != "x") AC_SUBST(PLUGIN_PYTHON) ######################## # CFLogger and CFNewsPaper configuration AC_ARG_ENABLE(logger, [AS_HELP_STRING([--disable-logger], [Disable the logger compilation])],, enable_logger=yes) AC_ARG_ENABLE(newspaper, [AS_HELP_STRING([--disable-newspaper], [Disable the newspaper plugin compilation])],, enable_newspaper=yes) AC_CHECK_LIB(sqlite3, sqlite3_open,[ cf_have_libsqlite=yes ]) AM_CONDITIONAL(HAVE_CFLOGGER, [test x"$cf_have_libsqlite" = "xyes" -a x"$enable_logger" = "xyes"]) AM_CONDITIONAL(HAVE_CFNEWSPAPER, [test x"$cf_have_libsqlite" = "xyes" -a x"$enable_newspaper" = "xyes"]) ######################## # Unit test configuration AC_ARG_ENABLE(check, [AS_HELP_STRING([--disable-check], [Disable the unit tests even if check is available])],, enable_check=yes) AM_PATH_CHECK(,[have_check="yes"], AC_MSG_WARN([Check not found; cannot run unit tests!]) [have_check="no"]) AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes" -a x"$enable_check" = "xyes") CF_CHECK_XSLT(xsltengine) AM_CONDITIONAL(PROCESS_XSLT,[test x"$have_check" = "xyes" -a x"$enable_check" = "xyes" -a x"$xsltengine" != x]) AC_SUBST(XSLTENGINE,[$xsltengine]) ######################## # Generate output AC_CONFIG_FILES([Makefile doc/Makefile doc/Developers/Makefile doc/playbook/Makefile doc/playbook-html/Makefile doc/scripts/Makefile doc/spell-docs/Makefile doc/spoiler/Makefile doc/spoiler-html/Makefile common/Makefile devel/Makefile include/Makefile lib/Makefile random_maps/Makefile server/Makefile socket/Makefile types/Makefile utils/Makefile lib/checkarch.pl lib/collect.pl utils/add_throw.perl utils/metaserver.pl utils/scores.pl utils/player_dl.pl utils/crossloop.tmpl utils/crossloop.pl.tmpl utils/crossloop.web plugins/Makefile plugins/cfanim/Makefile plugins/cfanim/include/Makefile plugins/cflogger/Makefile plugins/cfnewspaper/Makefile plugins/cfnewspaper/include/Makefile plugins/cfpython/Makefile plugins/cfpython/include/Makefile plugins/cfrhg/Makefile plugins/cfrhg/include/Makefile plugins/citylife/Makefile plugins/citylife/include/Makefile plugins/common/Makefile plugins/common/include/Makefile test/Makefile test/bugs/Makefile test/bugs/bugtrack/Makefile test/include/Makefile test/templates/Makefile test/toolkit/Makefile test/unit/Makefile test/unit/common/Makefile test/unit/random_maps/Makefile test/unit/server/Makefile test/unit/socket/Makefile]) AC_OUTPUT AC_MSG_NOTICE([]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([Configuration summary....]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ Paths]) AC_MSG_NOTICE([ prefix default value ${prefix}]) AC_MSG_NOTICE([ exec_prefix default value ${exec_prefix}]) AC_MSG_NOTICE([ Will put executables in $bindir]) AC_MSG_NOTICE([ Will put resources in $datadir]) AC_MSG_NOTICE([ Will put config in $sysconfdir]) AC_MSG_NOTICE([ Will put server runtime datas in: $localstatedir]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ Build options]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ Will build metaserver2 support? $ac_cv_header_curl_curl_h]) AC_MSG_NOTICE([ Will build plugins? $cf_have_libdl]) if test x"$cf_have_libsqlite" = "xyes" ; then AC_MSG_NOTICE([ Will build cflogger? $enable_logger]) AC_MSG_NOTICE([ Will build cfnewspaper? $enable_newspaper]) fi if test "x$cf_have_libdl" = "xyes" ; then AC_MSG_NOTICE([ Will build python plugin? $cf_will_build_python]) fi if test "x$enable_cfrhg" = "xyes" ; then AC_MSG_NOTICE([ Will build random house plugin? yes]) else AC_MSG_NOTICE([ Will build random house plugin? no]) fi if test x"$xsltengine" != "x" ; then check_complement=["(will generate report)"] fi if test "x$have_check" = "xyes" -a x"$enable_check" = "xyes" ; then AC_MSG_NOTICE([ Will process unit testing? yes $check_complement]) AC_MSG_NOTICE([ (run make; make -k check)]) else AC_MSG_NOTICE([ Will process unit testing? no]) AC_MSG_NOTICE([ If you are a developer, you MUST install the check framework]) AC_MSG_NOTICE([ and write automated tests for all your add-ons!]) fi AC_MSG_NOTICE([]) AC_MSG_NOTICE([ Build utilities (Not required to build or run the server)]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ Will build crossfire-mapper? $cf_make_mapper]) AC_MSG_NOTICE([]) ����������������������������������������������������������������������������������crossfire-1.70.0/test/������������������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537047�011552� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/Makefile.am�������������������������������������������������������������������0000644�0000145�0000012�00000000400�11731300516�013504� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������CHECK_ROOT=./ CHECK_FOLDER=. CHECK_PARENT_NAME=Site index include $(top_srcdir)/check-fragment.am SUBDIRS = include templates toolkit unit bugs clean-local: $(RM) -rf logs $(RM) .autorun.xml check-local: check-html check-text clean-local: clean-unit ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/�������������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537050�012504� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/����������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537050�014306� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/check_2879249.c�������������������������������������������������0000644�0000145�0000012�00000005363�11731300515�016377� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2009 Crossfire Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * This is the unit tests file for the bug #2879249: SIGSEGV on transport * moving across some edges of tiled maps. */ #include <stdlib.h> #include <check.h> #include <global.h> #include <sproto.h> static void setup(void) { } static void teardown(void) { } START_TEST(test_insert) { mapstruct *map1; archetype *big_galleon_arch; object *big_galleon; object *ob; map1 = ready_map_name("/world/world_103_128", 0); fail_unless(map1 != NULL, "cannot load map /world/world_103_128"); big_galleon_arch = find_archetype("big_galleon"); fail_unless(big_galleon_arch != NULL, "cannot find archetype big_galleon"); big_galleon = object_create_arch(big_galleon_arch); fail_unless(big_galleon != NULL, "cannot create object big_galleon"); for (ob = big_galleon; ob != NULL; ob = ob->more) if (ob->arch->clone.x > 0) break; fail_unless(ob != NULL, "big_galleon's height must be at least two"); object_insert_in_map_at(big_galleon, map1, NULL, 0, map1->width/2, map1->height-1); for (ob = big_galleon; ob != NULL; ob = ob->more) fail_unless(ob->map != NULL); } END_TEST static Suite *bug_suite(void) { Suite *s = suite_create("bug"); TCase *tc_core = tcase_create("Core"); tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_insert); tcase_set_timeout(tc_core, 0); return s; } int main(void) { int nf; Suite *s = bug_suite(); SRunner *sr = srunner_create(s); srunner_set_fork_status(sr, CK_NOFORK); init(0, NULL); srunner_set_xml(sr, LOGDIR "/bugs/bugtrack/2879249.xml"); srunner_set_log(sr, LOGDIR "/bugs/bugtrack/2879249.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return nf == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/Makefile.in�����������������������������������������������������0000644�0000145�0000012�00000065246�11732537023�016310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = check_1727944$(EXEEXT) check_2879249$(EXEEXT) \ check_free_objects$(EXEEXT) check_weight_reduction$(EXEEXT) DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = $(am__EXEEXT_1) subdir = test/bugs/bugtrack ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = check_1727944$(EXEEXT) check_2879249$(EXEEXT) \ check_free_objects$(EXEEXT) check_weight_reduction$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) check_1727944_SOURCES = check_1727944.c check_1727944_OBJECTS = check_1727944.$(OBJEXT) check_1727944_LDADD = $(LDADD) am__DEPENDENCIES_1 = check_1727944_DEPENDENCIES = ../../../server/libserver.a \ ../../../common/libcross.a \ ../../../random_maps/librandom_map.a \ ../../../socket/libsocket.a ../../../types/libtypes.a \ ../../../types/libtypes.a $(am__DEPENDENCIES_1) check_2879249_SOURCES = check_2879249.c check_2879249_OBJECTS = check_2879249.$(OBJEXT) check_2879249_LDADD = $(LDADD) check_2879249_DEPENDENCIES = ../../../server/libserver.a \ ../../../common/libcross.a \ ../../../random_maps/librandom_map.a \ ../../../socket/libsocket.a ../../../types/libtypes.a \ ../../../types/libtypes.a $(am__DEPENDENCIES_1) check_free_objects_SOURCES = check_free_objects.c check_free_objects_OBJECTS = check_free_objects.$(OBJEXT) check_free_objects_LDADD = $(LDADD) check_free_objects_DEPENDENCIES = ../../../server/libserver.a \ ../../../common/libcross.a \ ../../../random_maps/librandom_map.a \ ../../../socket/libsocket.a ../../../types/libtypes.a \ ../../../types/libtypes.a $(am__DEPENDENCIES_1) check_weight_reduction_SOURCES = check_weight_reduction.c check_weight_reduction_OBJECTS = check_weight_reduction.$(OBJEXT) check_weight_reduction_LDADD = $(LDADD) check_weight_reduction_DEPENDENCIES = ../../../server/libserver.a \ ../../../common/libcross.a \ ../../../random_maps/librandom_map.a \ ../../../socket/libsocket.a ../../../types/libtypes.a \ ../../../types/libtypes.a $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) SOURCES = check_1727944.c check_2879249.c check_free_objects.c \ check_weight_reduction.c DIST_SOURCES = check_1727944.c check_2879249.c check_free_objects.c \ check_weight_reduction.c ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_LIBDL_FALSE@LIBDL = @HAVE_LIBDL_TRUE@LIBDL = -ldl @HAVE_LIBDL_FALSE@AM_LDFLAGS = @HAVE_LIBDL_TRUE@AM_LDFLAGS = -export-dynamic #note all .a are here twice for compilation problems AM_LIBTOOLFLAGS = --preserve-dup-deps LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ LDADD = ../../../server/libserver.a \ ../../../common/libcross.a \ ../../../random_maps/librandom_map.a \ ../../../socket/libsocket.a \ ../../../types/libtypes.a \ ../../../types/libtypes.a \ $(LIBDL) @CHECK_LIBS@ #check_alchemy check_apply check_attack check_ban check_build_map check_c_chat check_c_misc check_c_move check_c_new check_c_object check_commands check_c_party check_c_range check_c_wiz check_daemon check_disease check_egoitem check_gods check_hiscore check_init check_login check_main check_monster check_move check_pets check_player check_plugins check_resurrection check_rune check_shop check_skills check_skill_util check_spell_attack check_spell_effect check_spell_util check_swamp check_swap check_time check_timers check_weather check_win32 comet_perf CHECK_ROOT = ../../ CHECK_FOLDER = bugs/bugtrack CHECK_PARENT_NAME = Bugs LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/bugs/bugtrack/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/bugs/bugtrack/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list check_1727944$(EXEEXT): $(check_1727944_OBJECTS) $(check_1727944_DEPENDENCIES) $(EXTRA_check_1727944_DEPENDENCIES) @rm -f check_1727944$(EXEEXT) $(LINK) $(check_1727944_OBJECTS) $(check_1727944_LDADD) $(LIBS) check_2879249$(EXEEXT): $(check_2879249_OBJECTS) $(check_2879249_DEPENDENCIES) $(EXTRA_check_2879249_DEPENDENCIES) @rm -f check_2879249$(EXEEXT) $(LINK) $(check_2879249_OBJECTS) $(check_2879249_LDADD) $(LIBS) check_free_objects$(EXEEXT): $(check_free_objects_OBJECTS) $(check_free_objects_DEPENDENCIES) $(EXTRA_check_free_objects_DEPENDENCIES) @rm -f check_free_objects$(EXEEXT) $(LINK) $(check_free_objects_OBJECTS) $(check_free_objects_LDADD) $(LIBS) check_weight_reduction$(EXEEXT): $(check_weight_reduction_OBJECTS) $(check_weight_reduction_DEPENDENCIES) $(EXTRA_check_weight_reduction_DEPENDENCIES) @rm -f check_weight_reduction$(EXEEXT) $(LINK) $(check_weight_reduction_OBJECTS) $(check_weight_reduction_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_1727944.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_2879249.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_free_objects.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_weight_reduction.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check check-am install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am check-local \ clean clean-generic clean-libtool clean-local \ clean-noinstPROGRAMS ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am ../../../types/libtypes.a: ( cd ../../../types ; make libtypes.a ) ../../logs/unit/server: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/server) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) ../../../random_maps/librandom_map.a: ( cd ../../../random_maps ; make librandom_map.a ) ../../../server/libserver.a: ( cd ../../../server ; make libserver.a ) $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/Makefile.am�����������������������������������������������������0000644�0000145�0000012�00000003573�11731300515�016263� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������if HAVE_LIBDL LIBDL=-ldl AM_LDFLAGS=-export-dynamic else LIBDL= AM_LDFLAGS= endif #note all .a are here twice for compilation problems AM_LIBTOOLFLAGS= --preserve-dup-deps LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ LDADD = ../../../server/libserver.a \ ../../../common/libcross.a \ ../../../random_maps/librandom_map.a \ ../../../socket/libsocket.a \ ../../../types/libtypes.a \ ../../../types/libtypes.a \ $(LIBDL) @CHECK_LIBS@ ../../../types/libtypes.a: ( cd ../../../types ; make libtypes.a ) ../../logs/unit/server: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/server) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) ../../../random_maps/librandom_map.a: ( cd ../../../random_maps ; make librandom_map.a ) ../../../server/libserver.a: ( cd ../../../server ; make libserver.a ) TESTS=check_1727944 check_2879249 check_free_objects check_weight_reduction #check_alchemy check_apply check_attack check_ban check_build_map check_c_chat check_c_misc check_c_move check_c_new check_c_object check_commands check_c_party check_c_range check_c_wiz check_daemon check_disease check_egoitem check_gods check_hiscore check_init check_login check_main check_monster check_move check_pets check_player check_plugins check_resurrection check_rune check_shop check_skills check_skill_util check_spell_attack check_spell_effect check_spell_util check_swamp check_swap check_time check_timers check_weather check_win32 comet_perf CHECK_ROOT=../../ CHECK_FOLDER=bugs/bugtrack CHECK_PARENT_NAME=Bugs include $(top_srcdir)/check-fragment.am clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit �������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/check_weight_reduction.c����������������������������������������0000644�0000145�0000012�00000011573�11731300515�021072� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2009 Crossfire Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Makes sure that weight reduction in containers correctly updates 'carrying'. */ #include <check.h> #include <global.h> #include <sproto.h> #include <stdlib.h> #include <string.h> static void setup(void) { } static void teardown(void) { } START_TEST(test_weight_reduction) { /* Weight reduction to apply, last value -1. */ const int reduction[] = { 0, 30, 50, 70, -1 }; /* Container archetypes, must be CONTAINER, last value NULL. */ const char *archs[] = { "sack", "luggage", "luggage", "luggage", NULL }; /* What to put into the containers, last value NULL. Must be mergeable items. */ const char *items[] = { "scroll", "crown", "gem", "tooth", NULL }; /* How many to put or remove from container. Sum should be 0, last value 0. */ const int add[] = { 2, 5, 7, 3, 3, 9, -5, -7, 11, -8, -9, -11, 0 }; int red, a, i, nrof; uint32 sum; signed long carrying; object *container, *item; for (red = 0; reduction[red] != -1; red++) { for (a = 0; archs[a] != NULL; a++) { container = create_archetype(archs[a]); fail_unless(container != NULL, "couldn't find container arch %s!", archs[a]); fail_unless(container->type == CONTAINER, "%s isn't a container, type %d instead of %d!", archs[a], container->type, CONTAINER); fail_unless(container->carrying == 0, "%s has already some carrying?", archs[a]); container->stats.Str = reduction[red]; for (i = 0; items[i] != NULL; i++) { item = create_archetype(items[i]); fail_unless(item != NULL, "couldn't find item %s to put", items[i]); fail_unless(item->nrof == 1, "can't test item %s with nrof != 1", items[i]); sum = 1; object_insert_in_ob(item, container); carrying = (signed long)(item->weight * (100 - container->stats.Str) / 100); fail_unless(container->carrying == carrying, "invalid weight %d instead of %d for %s in %s reduction %d!", container->carrying, carrying, items[i], archs[a], reduction[red]); for (nrof = 0; add[nrof] != 0; nrof++) { sum += add[nrof]; if (add[nrof] > 0) { item = create_archetype(items[i]); item->nrof = add[nrof]; item = object_insert_in_ob(item, container); } else { object_decrease_nrof(item, - add[nrof]); } fail_unless(item->nrof == sum, "invalid item count %d instead of %d", item->nrof, sum); carrying = (signed long)(item->nrof * item->weight * (100 - container->stats.Str) / 100); fail_unless(container->carrying == carrying, "invalid weight %d instead of %d for %s in %s reduction %d after adding %d!", container->carrying, carrying, items[i], archs[a], reduction[red], add[nrof]); } object_remove(item); object_free2(item, 0); fail_unless(container->carrying == 0, "container %s is still carrying %d from %s instead of 0!", archs[a], container->carrying, items[i]); } object_free2(container, 0); } } } END_TEST static Suite *bug_suite(void) { Suite *s = suite_create("bug"); TCase *tc_core = tcase_create("Core"); tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_weight_reduction); tcase_set_timeout(tc_core, 0); return s; } int main(void) { int nf; Suite *s = bug_suite(); SRunner *sr = srunner_create(s); srunner_set_fork_status(sr, CK_NOFORK); init(0, NULL); srunner_set_xml(sr, LOGDIR "/bugs/bugtrack/weight_reduction.xml"); srunner_set_log(sr, LOGDIR "/bugs/bugtrack/weight_reduction.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return nf == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } �������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/check_free_objects.c��������������������������������������������0000644�0000145�0000012�00000010112�11731300515�020145� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2009 Crossfire Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * Makes sure that inventory objects are freed correctly. */ #include <check.h> #include <global.h> #include <sproto.h> #include <stdlib.h> #include <string.h> static object *find_arch_at(mapstruct *map, int x, int y, const char *arch_name) { FOR_MAP_PREPARE(map, x, y, op) { if (strcmp(op->arch->name, arch_name) == 0) { return op; } } FOR_MAP_FINISH(); return NULL; } static void setup(void) { } static void teardown(void) { } START_TEST(test_merge) { mapstruct *map1; archetype *scroll_arch; archetype *food_arch; object *scroll1; object *scroll2; object *food1; object *food2; map1 = ready_map_name("/world/world_103_128", 0); fail_unless(map1 != NULL, "cannot load map /world/world_103_128"); scroll_arch = find_archetype("scroll_new"); fail_unless(scroll_arch != NULL, "cannot find archetype scroll_new"); food_arch = find_archetype("food"); fail_unless(food_arch != NULL, "cannot find archetype food"); scroll1 = object_create_arch(scroll_arch); fail_unless(scroll1 != NULL, "cannot create object scroll_new"); scroll2 = object_create_arch(scroll_arch); fail_unless(scroll2 != NULL, "cannot create object scroll_new"); food1 = object_create_arch(food_arch); fail_unless(food1 != NULL, "cannot create object food"); food2 = object_create_arch(food_arch); fail_unless(food2 != NULL, "cannot create object food"); food1 = object_insert_in_ob(food1, scroll1); food2 = object_insert_in_ob(food2, scroll2); fail_unless(find_arch_at(map1, 4, 3, "scroll_new") == NULL, "map initially contains a scroll"); fail_unless(find_arch_at(map1, 4, 3, "food") == NULL, "map initially contains a food"); scroll1 = object_insert_in_map_at(scroll1, map1, NULL, 0, 4, 3); fail_unless(scroll1 != NULL, "scroll could not be added to the map"); fail_unless(find_arch_at(map1, 4, 3, "scroll_new") == scroll1, "scroll disappeared"); fail_unless(find_arch_at(map1, 4, 3, "food") == NULL, "map contains a food"); scroll2 = object_insert_in_map_at(scroll2, map1, NULL, 0, 4, 3); fail_unless(scroll2 != NULL, "scroll could not be added to the map"); fail_unless(find_arch_at(map1, 4, 3, "scroll_new") == scroll2, "scroll disappeared"); fail_unless(find_arch_at(map1, 4, 3, "food") == NULL, "map contains a food"); fail_unless(scroll2->nrof == 2, "scrolls didn't merge"); fail_unless(QUERY_FLAG(scroll1, FLAG_FREED), "scroll wasn't freed"); } END_TEST static Suite *bug_suite(void) { Suite *s = suite_create("bug"); TCase *tc_core = tcase_create("Core"); tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_merge); tcase_set_timeout(tc_core, 0); return s; } int main(void) { int nf; Suite *s = bug_suite(); SRunner *sr = srunner_create(s); srunner_set_fork_status(sr, CK_NOFORK); init(0, NULL); srunner_set_xml(sr, LOGDIR "/bugs/bugtrack/free_objects.xml"); srunner_set_log(sr, LOGDIR "/bugs/bugtrack/free_objects.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return nf == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/bugtrack/check_1727944.c�������������������������������������������������0000644�0000145�0000012�00000041163�11731300515�016366� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2007 Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * @file * This is the unit tests file for the bug #1727944: The horn of plenty * location: http://sourceforge.net/tracker/index.php?func=detail&aid=1727944&group_id=13833&atid=113833. * * I did try different combos to generate an empty horn, so far no success... * @author Nicolas Weeger * @date 2007-06-04 */ #include <stdlib.h> #include <check.h> #include <global.h> #include <sproto.h> static void setup(void) { /* put any initialisation steps here, they will be run before each testcase */ } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } #if 0 static mapstruct *get_random_map(mapstruct *map) { object *exit_ob; mapstruct *random; RMParms rp; char newmap_name[HUGE_BUF], *cp; static int reference_number = 0; int x, y; exit_ob = NULL; for (x = 0; x < MAP_WIDTH(map) && exit_ob == NULL; x++) { for (y = 0; y < MAP_HEIGHT(map) && exit_ob == NULL; y++) { for (exit_ob = GET_MAP_OB(map, x, y); exit_ob != NULL; exit_ob = exit_ob->above) if (exit_ob->type == EXIT && exit_ob->msg != NULL) break; } } if (!exit_ob) /* this means we reached the end of the random part. */ return NULL; /* copied from server/server.c:enter_random_map(). */ memset(&rp, 0, sizeof(RMParms)); rp.Xsize = -1; rp.Ysize = -1; rp.region = get_region_by_map(exit_ob->map); if (exit_ob->msg) set_random_map_variable(&rp, exit_ob->msg); rp.origin_x = exit_ob->x; rp.origin_y = exit_ob->y; strcpy(rp.origin_map, map->path); /* If we have a final_map, use it as a base name to give some clue * as where the player is. Otherwise, use the origin map. * Take the last component (after the last slash) to give * shorter names without bogus slashes. */ if (rp.final_map[0]) { cp = strrchr(rp.final_map, '/'); if (!cp) cp = rp.final_map; } else { char buf[HUGE_BUF]; cp = strrchr(rp.origin_map, '/'); if (!cp) cp = rp.origin_map; /* Need to strip of any trailing digits, if it has them */ snprintf(buf, sizeof(buf), "%s", cp); while (isdigit(buf[strlen(buf)-1])) buf[strlen(buf)-1] = 0; cp = buf; } snprintf(newmap_name, sizeof(newmap_name), "/random/%s%04d", cp+1, reference_number++); /* now to generate the actual map. */ return generate_random_map(newmap_name, &rp, NULL); } static void do_run(void) { mapstruct *worldmap; mapstruct *random; mapstruct *old; int iteration, x, y, map; object *check; char path[150]; for (map = 1; map <= 3; map++) { snprintf(path, sizeof(path), "/whalingoutpost/underwaterdungeon/level%d", map); worldmap = ready_map_name(path, 0); fail_unless(worldmap != NULL, "Can't load %s", path); random = worldmap; old = NULL; iteration = 0; while (random != NULL) { random = get_random_map(random); if (!random) break; if (old) delete_map(old); old = random; iteration++; for (x = 0; x < MAP_WIDTH(random); x++) { for (y = 0; y < MAP_HEIGHT(random); y++) { for (check = GET_MAP_OB(random, x, y); check; check = check->above) { if (check->type == ROD && check->title && strcmp(check->title, "of Plenty") == 0) fail_unless(check->inv != NULL, "Horn has empty inventory!"); } } } } fail_unless(iteration != 0, "did %d iterations", iteration); if (old) delete_map(old); } } #endif #if 0 static void do_run(void) { mapstruct *map, *overlay; int x, y, found = 0, test = 0; object *check; overlay = ready_map_name("../../rsc/bug_1727944_unique", MAP_PLAYER_UNIQUE); fail_unless(overlay != NULL, "Couldn't load unique map ../../rsc/bug_1727944_unique"); while (found == 0 && test < 10) { map = ready_map_name("../../rsc/bug_1727944", MAP_PLAYER_UNIQUE); fail_unless(map != NULL, "couldn't load map ../../rsc/bug_1727944"); for (x = 0; x < MAP_WIDTH(map); x++) { for (y = 0; y < MAP_HEIGHT(map); y++) { for (check = GET_MAP_OB(map, x, y); check; check = check->above) { if (check->type == ROD) { fail_unless(check->inv != NULL, "Horn has empty inventory!"); fail_unless(check->inv->below == NULL, "Horn has 2 items in inventory!"); if (check->title && strcmp(check->title, "of Plenty") == 0) { object_remove(check); object_insert_in_map_at(check, overlay, NULL, 0, 2, 3); found++; break; } } } } } delete_map(map); test++; } save_map(overlay, SAVE_MODE_OVERLAY); delete_map(overlay); } #endif extern int artifact_init; extern int arch_init; /* Copied from loader.l */ extern const char *const spell_mapping[]; static void local_check_loaded_object(object *op) { int ip; if (artifact_init) /* Artifacts are special beasts, let's not check them. */ return; /* We do some specialized handling to handle legacy cases of name_pl. * If the object doesn't have a name_pl, we just use the object name - * this isn't perfect (things won't be properly pluralized), but works to * that degree (5 heart is still quite understandable). But the case we * also have to catch is if this object is not using the normal name for * the object. In that case, we also want to use the loaded name. * Otherwise, what happens is that the the plural name will lose * information (appear as just 'hearts' and not 'goblins heart') */ if (op->arch && op->name != op->arch->clone.name && op->name_pl == op->arch->clone.name_pl) { if (op->name_pl) free_string(op->name_pl); op->name_pl = NULL; } if (!op->name_pl && op->name) op->name_pl = add_string(op->name); /* objects now have a materialname. try to patch it in */ if (!(IS_WEAPON(op) && op->level > 0)) { set_materialname(op); } /* only do these when program is first run - a bit * excessive to do this at every run - most of this is * really just to catch any errors - program will still run, but * not in the ideal fashion. */ if ((op->type == WEAPON || op->type == BOW) && arch_init) { if (!op->skill) { LOG(llevError, "Weapon %s lacks a skill.\n", op->name); } else if ((!strcmp(op->skill, "one handed weapons") && op->body_info[1] != -1) || (!strcmp(op->skill, "two handed weapons") && op->body_info[1] != -2)) { LOG(llevError, "weapon %s arm usage does not match skill: %d, %s\n", op->name, op->body_info[1], op->skill); } } /* We changed last_heal to gen_sp_armour, which is what it * really does for many objects. Need to catch any in maps * that may have an old value. */ if ((op->type == WEAPON) || (op->type == ARMOUR) || (op->type == HELMET) || (op->type == SHIELD) || (op->type == RING) || (op->type == BOOTS) || (op->type == GLOVES) || (op->type == AMULET) || (op->type == GIRDLE) || (op->type == BRACERS) || (op->type == CLOAK)) { if (op->last_heal) { LOG(llevDebug, "Object %s still has last_heal set, not gen_sp_armour\n", op->name ? op->name : "NULL"); op->gen_sp_armour = op->last_heal; op->last_heal = 0; } ip = calc_item_power(op); /* Legacy objects from before item power was in the game */ if (!op->item_power && ip) { if (ip > 3) { LOG(llevDebug, "Object %s had no item power, using %d\n", op->name ? op->name : "NULL", ip); } op->item_power = ip; } /* Check for possibly bogus values. Has to meet both these criteria - * something that has item_power 1 is probably just fine if our calculated * value is 1 or 2 - these values are small enough that hard to be precise. * similarly, it item_power is 0, the first check will always pass, * but not the second one. */ if (ip > 2*op->item_power && ip > (op->item_power+3)) { LOG(llevDebug, "Object %s seems to have too low item power? %d > %d\n", op->name ? op->name : "NULL", ip, op->item_power); } } /* Old spellcasting object - need to load in the appropiate object */ if ((op->type == ROD || op->type == WAND || op->type == SCROLL || op->type == FIREWALL || /* POTIONS and ALTARS don't always cast spells, but if they do, update them */ ((op->type == POTION || op->type == ALTAR) && op->stats.sp)) && !op->inv && !arch_init) { object *tmp; /* Fireall is bizarre in that spell type was stored in dam. Rest are 'normal' * in that spell was stored in sp. */ tmp = create_archetype(spell_mapping[op->type == FIREWALL ? op->stats.dam : op->stats.sp]); object_insert_in_ob(tmp, op); op->randomitems = NULL; /* So another spell isn't created for this object */ } /* spellbooks & runes use slaying. But not to arch name, but to spell name */ if ((op->type == SPELLBOOK || op->type == RUNE) && op->slaying && !op->inv && !arch_init) { object *tmp; tmp = create_archetype_by_object_name(op->slaying); object_insert_in_ob(tmp, op); op->randomitems = NULL; /* So another spell isn't created for this object */ /* without this, value is all screwed up */ op->value = op->arch->clone.value*op->inv->value; } if (QUERY_FLAG(op, FLAG_MONSTER)) { if (op->stats.hp > op->stats.maxhp) LOG(llevDebug, "Monster %s has hp set higher than maxhp (%d>%d)\n", op->name, op->stats.hp, op->stats.maxhp); } if ((QUERY_FLAG(op, FLAG_GENERATOR) && QUERY_FLAG(op, FLAG_CONTENT_ON_GEN)) || op->type == CREATOR || op->type == CONVERTER) { /* Object will duplicate it's content as part of the * generation process. To do this, we must flag inventory * so it remains unevaluated concerning the randomitems and * the living (a demonlord shouldn't cast from inside generator!) */ object_set_flag_inv(op, FLAG_IS_A_TEMPLATE); } /* Here we'll handle custom monsters. In order to handle them correctly, especially in the fix_object * method, we'll create a new temporary archetype containing defined values. * Of course this doesn't apply when loading archetypes or artifacts. */ if (arch_init == 0 && artifact_init == 0 && QUERY_FLAG(op, FLAG_MONSTER) && op->arch && !object_can_merge(op, &op->arch->clone)) { archetype *temp = get_archetype_struct(); temp->reference_count++; temp->name = add_string(op->arch->name); temp->tail_x = op->arch->tail_x; temp->tail_y = op->arch->tail_y; object_copy(op, &temp->clone); temp->clone.inv = NULL; temp->clone.env = NULL; temp->clone.x = 0; temp->clone.y = 0; temp->clone.map = NULL; if (FABS(temp->clone.speed) > MIN_ACTIVE_SPEED) { /* Clone has a speed, so need to clear that because it isn't on a map. * But we need to keep the value, because otherwise the customized object * will have no speed (fix_player() will use the 0 value). So set it * to zero, call object_update_speed() to remove it from active list, then * set its speed back to the original. */ temp->clone.speed = 0; object_update_speed(&temp->clone); temp->clone.speed = op->speed; } temp->more = op->arch->more; op->arch = temp; /* LOG(llevDebug, "created temporary archetype for %s at %d,%d\n", op->name, op->x, op->y); */ } } START_TEST(test_randommaps) { #if 0 int test; mapstruct *overlay; object *check; for (test = 0; test < 50; test++) do_run(); for (test = 0; test < 50; test++) { overlay = ready_map_name("../../rsc/bug_1727944_unique", MAP_PLAYER_UNIQUE); fail_unless(overlay != NULL, "Couldn't load unique map ../../rsc/bug_1727944_unique"); fail_unless(GET_MAP_OB(overlay, 2, 3) != NULL, "No item on spot 2,3?"); for (check = GET_MAP_OB(overlay, 2, 3)->above; check != NULL; check = check->above) { fail_unless(check->type == ROD, "Found a non horn?"); fail_unless(check->inv != NULL, "Horn without a spell!"); fail_unless(check->inv->below == NULL, "Horn with 2 items in inventory."); } save_map(overlay, SAVE_MODE_OVERLAY); delete_map(overlay); } #endif #if 0 int test; archetype *horn = find_archetype("horn"); fail_unless(horn != NULL, "couldn't find archetype horn."); archetype *horn2 = find_archetype("horn2"); fail_unless(horn2 != NULL, "couldn't find archetype horn2."); for (test = 0; test < 100000; test++) { object *check = arch_to_object(RANDOM()%2 ? horn : horn2); generate_artifact(check, RANDOM()%100); fail_unless(check->inv != NULL, "horn without inventory!"); } #endif int test, level, found = 0; object *the_chest, *check; mapstruct *map; treasurelist *tlist = find_treasurelist("uncommon_items"); fail_unless(tlist != NULL, "couldn't find treasure list uncommon_items"); for (test = 0; test < 10; test++) { for (level = 1; level < 120; level++) { map = get_empty_map(1, 1); fail_unless(map != NULL, "failed to get empty map"); map->difficulty = level; the_chest = create_archetype("chest"); /* was "chest_2" */ fail_unless(the_chest != NULL, "failed to get chest"); the_chest->randomitems = tlist; the_chest->stats.hp = RANDOM()%100; object_insert_in_map_at(the_chest, map, NULL, 0, 0, 0); apply_auto_fix(map); the_chest = GET_MAP_OB(map, 0, 0); fail_unless(the_chest != NULL, "failed to recover chest?"); for (check = the_chest->inv; check; check = check->below) { if (check->type != ROD) continue; local_check_loaded_object(check); fail_unless(check->inv != NULL, "horn without inventory"); fail_unless(check->inv->below == NULL, "horn with 2 items"); fail_unless(check->randomitems == NULL, "horn with randomitems set"); found++; } delete_map(map); } } fail_unless(found > 100, "didn't find 100 horn but %d??", found); } END_TEST static Suite *bug_suite(void) { Suite *s = suite_create("bug"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_randommaps); tcase_set_timeout(tc_core, 0); return s; } int main(void) { int nf; Suite *s = bug_suite(); SRunner *sr = srunner_create(s); srunner_set_fork_status(sr, CK_NOFORK); init(0, NULL); srunner_set_xml(sr, LOGDIR "/bugs/bugtrack/1727944.xml"); srunner_set_log(sr, LOGDIR "/bugs/bugtrack/1727944.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/Makefile.am��������������������������������������������������������������0000644�0000145�0000012�00000000341�11731300515�014447� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������CROSSEDIT = @CROSSEDIT@ SUBDIRS = bugtrack CHECK_ROOT=../ CHECK_FOLDER=bugs CHECK_PARENT_NAME=Main include $(top_srcdir)/check-fragment.am clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/bugs/Makefile.in��������������������������������������������������������������0000644�0000145�0000012�00000055142�11732537023�014500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = subdir = test/bugs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CROSSEDIT = @CROSSEDIT@ SUBDIRS = bugtrack CHECK_ROOT = ../ CHECK_FOLDER = bugs CHECK_PARENT_NAME = Main LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/bugs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/bugs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ check-am ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am check-local clean clean-generic \ clean-libtool clean-local clean-noinstPROGRAMS ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/Makefile.in�������������������������������������������������������������������0000644�0000145�0000012�00000055163�11732537022�013542� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CHECK_ROOT = ./ CHECK_FOLDER = . CHECK_PARENT_NAME = Site index LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog SUBDIRS = include templates toolkit unit bugs all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ check-am ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am check-local clean clean-generic \ clean-libtool clean-local clean-noinstPROGRAMS ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml clean-local: $(RM) -rf logs $(RM) .autorun.xml check-local: check-html check-text clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/�������������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537047�012531� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/random_maps/�������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537047�015031� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/random_maps/Makefile.in��������������������������������������������������0000644�0000145�0000012�00000056355�11732537023�017026� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = $(am__EXEEXT_1) TESTS = subdir = test/unit/random_maps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libstubs_a_AR = $(AR) $(ARFLAGS) libstubs_a_LIBADD = am_libstubs_a_OBJECTS = stubs_random.$(OBJEXT) libstubs_a_OBJECTS = $(am_libstubs_a_OBJECTS) am__EXEEXT_1 = PROGRAMS = $(noinst_PROGRAMS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libstubs_a_SOURCES) DIST_SOURCES = $(libstubs_a_SOURCES) ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libstubs.a libstubs_a_SOURCES = stubs_random.c LDADD = ../../../common/libcross.a libstubs.a ../../../socket/libsocket.a ../../../random_maps/librandom_map.a $(LIBDL) @CHECK_LIBS@ CHECK_ROOT = ../../ CHECK_FOLDER = unit/random_maps CHECK_PARENT_NAME = Unit LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/random_maps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/unit/random_maps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libstubs.a: $(libstubs_a_OBJECTS) $(libstubs_a_DEPENDENCIES) $(EXTRA_libstubs_a_DEPENDENCIES) -rm -f libstubs.a $(libstubs_a_AR) libstubs.a $(libstubs_a_OBJECTS) $(libstubs_a_LIBADD) $(RANLIB) libstubs.a clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stubs_random.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LIBRARIES) $(PROGRAMS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check check-am install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am check-local \ clean clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml ../../logs/unit/random_maps: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/random_maps) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) ../../../random_maps/librandom_map.a: ( cd ../../../random_maps ; make librandom_map.a ) check-local: check-html clean-local: clean-unit clean-local: $(RM) .autorun.xml # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/random_maps/Makefile.am��������������������������������������������������0000644�0000145�0000012�00000002110�11731300514�016761� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������noinst_LIBRARIES = libstubs.a libstubs_a_SOURCES=stubs_random.c LDADD = ../../../common/libcross.a libstubs.a ../../../socket/libsocket.a ../../../random_maps/librandom_map.a $(LIBDL) @CHECK_LIBS@ CHECK_ROOT=../../ CHECK_FOLDER=unit/random_maps CHECK_PARENT_NAME=Unit include $(top_srcdir)/check-fragment.am ../../logs/unit/random_maps: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/random_maps) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) ../../../random_maps/librandom_map.a: ( cd ../../../random_maps ; make librandom_map.a ) # tests non implemented, can be reactivated later on #TESTS= check_decor check_door check_exit check_expand2x check_floor check_maze_gen check_monster check_random_map check_reader check_rogue_layout check_room_gen_onion check_room_gen_spiral check_snake check_special check_square_spiral check_standalone check_style check_test check_treasure check_wall TESTS= check-local: check-html clean-local: clean-unit clean-local: $(RM) .autorun.xml ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/random_maps/stubs_random.c�����������������������������������������������0000644�0000145�0000012�00000001440�11731300514�017576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * Those are dummy functions defined to resolve all symboles. * Added as part of glue cleaning. * Ryo 2005-07-15 **/ #include <global.h> #include <sproto.h> void apply_auto_fix(mapstruct *m) { } void draw_ext_info(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *message) { fprintf(logfile, "%s\n", message); } void move_firewall(object *ob) { } void emergency_save(int x) { } void clean_tmp_files(void) { } void esrv_send_item(object *ob, object *obx) { } void dragon_ability_gain(object *ob, int x, int y) { } void set_darkness_map(mapstruct *m) { } object *find_skill_by_number(object *who, int skillno) { return NULL; } void esrv_del_item(player *pl, object *ob) { } void esrv_update_spells(player *pl) { } void rod_adjust(object *rod) { } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537050�014031� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/comet_perf.c������������������������������������������������������0000644�0000145�0000012�00000027425�11731300514�016242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_alchemy_c = * "$Id: check_alchemy.c 4640 2006-06-07 21:44:18Z tchize $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2007 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This tests the comet spell. My main motivation for writing this * was to have a consistent test I could use for performance testing. * But I also wanted to make sure that the results were close before and * after the performance changes - make the spell use less cpu time * but having drastically different results probably isn't a good thing * either. * To really be useful, everything needs to be compiled with profiling * (-pg). This can be done like 'setenv CFLAGS -pg; ./configure; * make clean; make'. The make clean is necessary because it won't * recompile the objects based just on changes the the CFLAGS. * * Note that this test, even after performance changes are done, still * isn't bad - it checks several things - map creation, spell casting, * etc. It wouldn't be hard to use this as a template to test things * like resistance code, etc. */ #include <stdlib.h> #include <check.h> #include <global.h> #include <sproto.h> #define TEST_MAP_SIZE 40 #define NUM_TICKS_TO_RUN 500 #define NUM_COMETS_TO_CAST 30 #define STARTING_HP 25000 /* The percentage, either plus or minus, that the results can * vary from the baseline and still be considered OK. * Note a good sanity check to make sure you put in the correct * values is to set this to 0.0 - in that case, checks should * pass. */ #define HP_DELTA 10 /* The first time you set up a test, you want to dump the * initial values to put into the hp_row/hp_diag arrays. * If this is set, it prints those values instead of doing * a comparision. */ /*#define PRINT_DEBUG_HP */ mapstruct *test_map; object *mon; static void setup(void) { object *mon1; int x, i; test_map = get_empty_map(TEST_MAP_SIZE, TEST_MAP_SIZE); mon = create_archetype("orc"); fail_unless(mon != NULL, "Unable to find orc object"); /* We customize the monster a bit so it is consistent - * give it a bunch of HP so it can survive the attacks, * set it speed to 0 so it doesn't do anything, etc. */ for (i = 0; i < NROFATTACKS; i++) mon->resist[i] = 95; mon->stats.hp = STARTING_HP; mon->stats.maxhp = STARTING_HP; mon->speed = 0.0; mon->speed_left = 0.0; SET_FLAG(mon, FLAG_STAND_STILL); object_update_speed(mon); /* We now make copies of this custom monster and put it into the * map. We make a diagonal from one corner to another, * as well as a line across the middle of the map (\ overlayed with -) * We could fill most of the map with monsters, but I think the * diagonal + horizontal should give a pretty representative * value of creatures being hit. */ for (x = 0; x < TEST_MAP_SIZE; x++) { mon1 = object_new(); object_copy(mon, mon1); object_insert_in_map_at(mon1, test_map, NULL, 0, x, TEST_MAP_SIZE/2); if (x != TEST_MAP_SIZE/2) { mon1 = object_new(); object_copy(mon, mon1); object_insert_in_map_at(mon1, test_map, NULL, 0, x, x); } } } static void teardown(void) { free_map(test_map); } static void check_hp(const char *test, int hp_row[TEST_MAP_SIZE], int hp_diag[TEST_MAP_SIZE]) { object *our_mon; int x, diff; #ifdef PRINT_DEBUG_HP printf("\nDumping debug hp for test %s\n ", test); #endif /* Dump the HP of the monsters now. We do it in 2 passes, * as I think it is easier to read that way. */ for (x = 0; x < TEST_MAP_SIZE; x++) { our_mon = GET_MAP_OB(test_map, x, TEST_MAP_SIZE/2); if (!our_mon) { fail("Monster destroyed at %d, %d\n", x, TEST_MAP_SIZE/2); continue; } fail_unless(mon->name == our_mon->name, "Could not find our monster on the space?"); #ifdef PRINT_DEBUG_HP printf("%d, ", our_mon->stats.hp); #else if (our_mon->stats.hp == hp_row[x]) { diff = 0; } else if (our_mon->stats.hp < hp_row[x]) { diff = 100-(STARTING_HP-hp_row[x])*100/((STARTING_HP-our_mon->stats.hp) ? (STARTING_HP-our_mon->stats.hp) : 1); } else { diff = -(100-(STARTING_HP-our_mon->stats.hp)*100/((STARTING_HP-hp_row[x]) ? (STARTING_HP-hp_row[x]) : 1)); } if (FABS(diff) > HP_DELTA) { fail("Mon (%d, %d) has hp out of range (%d != %d +/- %d, diff %d)\n", our_mon->x, our_mon->y, our_mon->stats.hp, hp_row[x], HP_DELTA, diff); } #endif } #ifdef PRINT_DEBUG_HP printf("\n\n"); #endif for (x = 0; x < TEST_MAP_SIZE; x++) { our_mon = GET_MAP_OB(test_map, x, x); if (!our_mon) { fprintf(stderr, "Monster destroyed at %d, %d\n", x, x); continue; } fail_unless(mon->name == our_mon->name, "Could not find our monster on the space?"); #ifdef PRINT_DEBUG_HP printf("%d, ", our_mon->stats.hp); #else if (our_mon->stats.hp == hp_diag[x]) { diff = 0; } else if (our_mon->stats.hp < hp_diag[x]) { diff = 100-(STARTING_HP-hp_diag[x])*100/((STARTING_HP-our_mon->stats.hp) ? (STARTING_HP-our_mon->stats.hp) : 1); } else { diff = -(100-(STARTING_HP-our_mon->stats.hp)*100/((STARTING_HP-hp_diag[x]) ? (STARTING_HP-hp_diag[x]) : 1)); } if (FABS(diff) > HP_DELTA) { fail("Mon (%d, %d) has hp out of range (%d != %d +/- %d, diff %d)\n", our_mon->x, our_mon->y, our_mon->stats.hp, hp_diag[x], HP_DELTA, diff); } #endif } } START_TEST(cast_one_comet) { int hp_row[TEST_MAP_SIZE] = {25000, 25000, 25000, 25000, 25000, 25000, 25000, 25000, 24924, 24920, 24916, 24912, 24908, 24904, 24900, 24896, 24892, 24888, 24884, 24880, 24869, 24880, 24884, 24888, 24892, 24896, 24900, 24904, 24908, 24912, 24916, 24920, 24924, 25000, 25000, 25000, 25000, 25000, 25000, 25000 }, hp_diag[TEST_MAP_SIZE] = {25000, 25000, 25000, 25000, 25000, 25000, 25000, 25000, 24924, 24920, 24916, 24912, 24908, 24904, 24900, 24896, 24892, 24888, 24884, 24880, 24869, 24880, 24884, 24888, 24892, 24896, 24900, 24904, 24908, 24912, 24916, 24920, 24924, 25000, 25000, 25000, 25000, 25000, 25000, 25000 }; object *comet, *rod; int tick; rod = create_archetype("rod_heavy"); rod->level = 100; comet = create_archetype("spell_comet"); object_insert_in_ob(comet, rod); object_insert_in_map_at(rod, test_map, NULL, 0, TEST_MAP_SIZE/2, TEST_MAP_SIZE-1); cast_spell(rod, rod, 1, rod->inv, NULL); for (tick = 0; tick < NUM_TICKS_TO_RUN; tick++) { process_events(); } check_hp("cast_one_comet", hp_row, hp_diag); } END_TEST START_TEST(cast_random_comet) { object *comet, *rod; int tick, num_cast = 0; int hp_row[TEST_MAP_SIZE] = {23756, 23617, 23516, 23428, 23397, 23291, 23203, 23097, 23014, 22875, 22801, 22782, 22706, 22707, 22620, 22645, 22646, 22595, 22705, 22773, 22809, 22835, 22975, 23098, 23239, 23346, 23462, 23597, 23627, 23675, 23786, 23888, 24001, 24119, 24206, 24306, 24336, 24455, 24565, 24649 }, hp_diag[TEST_MAP_SIZE] = {25000, 25000, 25000, 25000, 25000, 25000, 25000, 25000, 23515, 23351, 23177, 23097, 22946, 22931, 22763, 22706, 22678, 22658, 22728, 22812, 22809, 22712, 22728, 22741, 22726, 22833, 22862, 22967, 23014, 23009, 23167, 23267, 23367, 23459, 23596, 23713, 23750, 23879, 24026, 24160 }; rod = create_archetype("rod_heavy"); rod->level = 100; comet = create_archetype("spell_comet"); object_insert_in_ob(comet, rod); object_insert_in_map_at(rod, test_map, NULL, 0, TEST_MAP_SIZE/2, TEST_MAP_SIZE-1); for (tick = 0; tick < NUM_TICKS_TO_RUN; tick++) { if (num_cast < NUM_COMETS_TO_CAST && (tick%1) == 0) { object_remove(rod); /* The idea here on the x is to shuffle the spaces around * a little, as a more typical case is comets * blowing up on different spaces. */ object_insert_in_map_at(rod, test_map, NULL, 0, (tick*59)%37, TEST_MAP_SIZE-1); cast_spell(rod, rod, 1, rod->inv, NULL); num_cast++; } process_events(); } check_hp("cast_random_comet", hp_row, hp_diag); } END_TEST START_TEST(cast_bunch_comet) { object *comet, *rod; int tick, num_cast = 0; int hp_row[TEST_MAP_SIZE] = {25000, 25000, 25000, 25000, 25000, 25000, 25000, 25000, 22355, 22262, 22115, 21966, 21837, 21684, 21554, 21424, 21268, 21137, 21006, 20875, 20534, 20875, 21006, 21137, 21268, 21424, 21554, 21684, 21837, 21966, 22115, 22262, 22355, 25000, 25000, 25000, 25000, 25000, 25000, 25000 }, hp_diag[TEST_MAP_SIZE] = {25000, 25000, 25000, 25000, 25000, 25000, 25000, 25000, 22355, 22262, 22115, 21966, 21837, 21684, 21554, 21424, 21268, 21137, 21006, 20875, 20534, 20875, 21006, 21137, 21268, 21424, 21554, 21684, 21837, 21966, 22115, 22262, 22355, 25000, 25000, 25000, 25000, 25000, 25000, 25000 }; rod = create_archetype("rod_heavy"); rod->level = 100; comet = create_archetype("spell_comet"); object_insert_in_ob(comet, rod); object_insert_in_map_at(rod, test_map, NULL, 0, TEST_MAP_SIZE/2, TEST_MAP_SIZE-1); for (tick = 0; tick < NUM_TICKS_TO_RUN; tick++) { if (num_cast < NUM_COMETS_TO_CAST && (tick%1) == 0) { cast_spell(rod, rod, 1, rod->inv, NULL); num_cast++; } process_events(); } check_hp("cast_bunch_comet", hp_row, hp_diag); } END_TEST static Suite *comet_suite(void) { Suite *s = suite_create("comet"); TCase *tc_core = tcase_create("Core"); /* check by defaults has a 2 second timeout - that isn't * fast enough on my system - a run of 30 comets takes about * 7 seconds. Setting this to 20 is enough, but on a slower * system may not be. */ tcase_set_timeout(tc_core, 20); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, cast_one_comet); tcase_add_test(tc_core, cast_bunch_comet); tcase_add_test(tc_core, cast_random_comet); return s; } int main(void) { int nf; Suite *s = comet_suite(); SRunner *sr = srunner_create(s); /* Don't want to fork - if we do, we lose the profile (-pg) * compiled information, which is what I used to determine if * things are more efficient. */ srunner_set_fork_status(sr, CK_NOFORK); /* Only want to run this once, so don't put it in setup() */ init(0, NULL); srunner_set_xml(sr, LOGDIR "/unit/server/comet.xml"); srunner_set_log(sr, LOGDIR "/unit/server/comet.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); fprintf(stderr, "Got %"FMT64U" supressions, %"FMT64U" spell merges, %"FMT64U" full tables\n", statistics.spell_suppressions, statistics.spell_merges, statistics.spell_hash_full); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_alchemy.c���������������������������������������������������0000644�0000145�0000012�00000006326�11731300514�016673� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_alchemy_c = * "$Id: check_alchemy.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/alchemy.c */ #include <stdlib.h> #include <check.h> #include <global.h> #include <assert.h> static void setup(void) { /* put any initialisation steps here, they will be run before each testcase */ } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } /* copied from alchemy.c */ static float recipe_chance(const recipe *rp, const object *skill) { assert(rp); assert(skill); if (skill->level < rp->diff - 10) return MAX(.01, .3 - (rp->diff - 10 - skill->level) * .03); if (skill->level <= rp->diff + 10) return .5 + .02 * (float)(skill->level - rp->diff); return MIN(.95, .70 + (skill->level - rp->diff - 10) * .01); } START_TEST(test_recipe_chance) { recipe rp; object skill; float chance; for (rp.diff = 0; rp.diff < 150; rp.diff++) { for (skill.level = 0; skill.level < 150; skill.level++) { chance = recipe_chance(&rp, &skill); /* use .009 because of floating point issues */ fail_unless(chance >= .00999, "success can't be less than .01 but got %f for %d rp, %d skill", chance, rp.diff, skill.level); fail_unless(chance <= .95, "success can't be more than .95 but got %f for %d rp, %d skill", chance, rp.diff, skill.level); /*printf("%d %d => %f\n", rp.diff, skill.level, chance);*/ } /*printf("\n");*/ } } END_TEST static Suite *alchemy_suite(void) { Suite *s = suite_create("alchemy"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_recipe_chance); return s; } int main(void) { int nf; Suite *s = alchemy_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/server/alchemy.xml"); srunner_set_log(sr, LOGDIR "/unit/server/alchemy.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_account.c���������������������������������������������������0000644�0000145�0000012�00000021423�11731300514�016700� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_account_c = * "$Id: check_account.c 11817 2009-06-12 15:46:56Z akirschbaum $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2010 Mark Wedel & Crossfire Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/account.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> #include <sproto.h> #include <unistd.h> static void setup(void) { } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } /* This test makes sure account_check_string() behaves as expected - * rejects strings with bad characters in them, etc. */ START_TEST(test_account_check_string) { char longname[MAX_NAME+3]; int i; i=account_check_string(" abcd"); fail_unless(i != 0, "string started with spaces should not be considered valid"); /* We test one string with colon at end, other starting with semicolon - * in that way, we also do some basic testing to make sure entire string is being checked. */ i=account_check_string("abcd:"); fail_unless(i != 0, "string with colons should not be considered valid"); i=account_check_string("a;bcd"); fail_unless(i != 0, "string with semicolons should not be considered valid"); i=account_check_string("a/bcd"); fail_unless(i != 0, "string with slash should not be considered valid"); i=account_check_string("a'bcd"); fail_unless(i != 0, "string with quote should not be considered valid"); i=account_check_string("abc\n\nefg"); fail_unless(i != 0, "string with non printable characters should not be considered valid"); i=account_check_string("$abc"); fail_unless(i != 0, "string starting with non alphanumeric should not be considered valid"); i=account_check_string("abc "); fail_unless(i != 0, "string ending in space should not be considered valid"); for (i=0; i<=MAX_NAME; i++) { longname[i]='a'; } longname[i]='\0'; i=account_check_string(longname); fail_unless(i != 0, "Too long string should not be considered valid"); i=account_check_string("Some Body"); fail_unless(i == 0, "Valid string not considered valid"); } END_TEST /* This test tries to add some accounts. As a final action, we try * to save the account file out. */ START_TEST(test_account_add_account) { int i,j; char names[50]; char **char_names; /* Note that we run explicit checks for valid account names/passwords. * As such, the focus here is not checking valid strings again, but checking * duplicate account names, saving them out, etc. */ i=account_add_account("Some Body", "mypassword"); fail_unless(i == 0, "Could not add valid account, got code %d", i); i=account_add_account("Some Body", "mypassword"); fail_unless(i != 0, "Duplicate account successfully added"); /* This is mainly here to have 2 valid accounts */ i=account_add_account("No Body", "mypassword"); fail_unless(i == 0, "Could not add valid account, got code %d", i); /* This third account is to have one with no players associated to it */ i=account_add_account("Every Body", "hispassword"); fail_unless(i == 0, "Could not add valid account"); i=account_add_player_to_account("foobar", "foobar"); fail_unless(i != 0, "Added player to non existent character name"); i=account_add_player_to_account("Some Body", "foobar"); fail_unless(i == 0, "Failed to add player to valid account"); /* The precise number of players per account is not exposed, * but at least as of now, it should be less than 30. So we try to add * 30 players. We use |= so that we can just try to add them all. */ for (j=0; j<30; j++) { sprintf(names,"char-%02d", j); i |= account_add_player_to_account("No Body", names); } fail_unless(i != 0, "Too many players added to account"); char_names = account_get_players_for_account("foobar"); fail_unless(char_names == NULL, "Got non null value for players on account with non existant accoun"); char_names = account_get_players_for_account("No Body"); fail_unless(char_names != NULL, "Got null value for players on account"); /* No return value here */ accounts_save(); } END_TEST /* This tests the load logic. Since the only data were are loading is the data from above, * we use that knowledge to check for proper existence accounts, etc. */ START_TEST(test_account_load_entries) { int i,j; char **char_names; const char *ae; clear_accounts(); account_load_entries(); ae = account_exists("Every Body"); fail_unless(ae != NULL, "Could not find valid account"); ae = account_exists("Some Body"); fail_unless(ae != NULL, "Could not find valid account"); char_names = account_get_players_for_account("No Body"); fail_unless(char_names != NULL, "Got null value for players on account"); /* This is sort of data integrity testing - if char_names is not properly * null terminated, with will fail. if char_names[] is corrupt, it should also * core. */ i=0; while (char_names[i] != NULL) { j=strlen(char_names[i]); i++; } char_names = account_get_players_for_account("Some Body"); fail_unless(char_names != NULL, "Got null value for players on account"); fail_unless(strcmp(char_names[0],"foobar") == 0, "Can not match on name we put in"); /* while we do this same check in test_account_add_account, doing it * again here makes sure the code is properly detecting the end of the accounts * list after loading it up. */ char_names = account_get_players_for_account("foobar"); fail_unless(char_names == NULL, "Got non null value for players on account with non existant account"); i = account_remove_player_from_account("foobar", "1foobar"); fail_unless(i!=0, "Got successsful return code on account_remove_player_from_account with non existent account"); i = account_remove_player_from_account("No Body", "1foobar"); fail_unless(i!=0, "Got successsful return code on account_remove_player_from_account with non existent player"); char_names = account_get_players_for_account("No Body"); j=0; while (char_names[j] != NULL) { j++; } i = account_remove_player_from_account("No Body", "char-01"); fail_unless(i==0, "Got error removing player when it should have worked"); char_names = account_get_players_for_account("No Body"); i=0; while (char_names[i] != NULL) { i++; } fail_unless((i+1) == j, "Player removal get unexpected result - %d != %d", i+1, j); } END_TEST static Suite *account_suite(void) { Suite *s = suite_create("account"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_account_check_string); tcase_add_test(tc_core, test_account_add_account); tcase_add_test(tc_core, test_account_load_entries); return s; } int main(void) { int nf; Suite *s = account_suite(); SRunner *sr = srunner_create(s); /* If you wish to debug the program, uncomment this line. */ /*srunner_set_fork_status (sr, CK_NOFORK);*/ settings.debug = 0; /* Not sure if there is a better place to put this file - basically, * the account code usings the localdir to determine where to read/write * the accounts file from - we don't want to be altering the real version of * that file. */ settings.localdir = strdup_local("/tmp/"); /** remove files from previous runs. */ unlink("/tmp/account/testaccount"); unlink("/tmp/accounts"); init(0, NULL); srunner_set_xml(sr, LOGDIR "/unit/server/account.xml"); srunner_set_log(sr, LOGDIR "/unit/server/account.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/Makefile.am�������������������������������������������������������0000644�0000145�0000012�00000003702�11731300514�015777� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������if HAVE_LIBDL LIBDL=-ldl AM_LDFLAGS=-export-dynamic else LIBDL= AM_LDFLAGS= endif #note all .a are here twice for compilation problems AM_LIBTOOLFLAGS= --preserve-dup-deps LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ LDADD = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a \ $(LIBDL) @CHECK_LIBS@ ../../../types/libtypes.a: ( cd ../../../types ; make libtypes.a ) ../../logs/unit/server: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/server) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) ../../../random_maps/librandom_map.a: ( cd ../../../random_maps ; make librandom_map.a ) ../../../server/libserver.a: ( cd ../../../server ; make libserver.a ) # tests not implemented for now #TESTS=check_apply check_ban check_build_map check_c_chat check_c_misc check_c_move check_c_new check_commands check_c_range check_c_wiz check_daemon check_disease check_egoitem check_gods check_hiscore check_init check_login check_main check_monster check_move check_pets check_player check_plugins check_resurrection check_rune check_skills check_skill_util check_spell_attack check_spell_effect check_spell_util check_swamp check_swap check_time check_timers check_weather check_win32 TESTS=check_account check_account_char check_alchemy check_attack check_c_object comet_perf \ check_c_party check_shop CHECK_ROOT=../../ CHECK_FOLDER=unit/server CHECK_PARENT_NAME=Unit include $(top_srcdir)/check-fragment.am clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit ��������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_shop.c������������������������������������������������������0000644�0000145�0000012�00000007212�11731300514�016215� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_shop_c = * "$Id: check_shop.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/shop.c */ #include <stdlib.h> #include <check.h> #include <global.h> #include <sproto.h> static void setup(void) { /* put any initialisation steps here, they will be run before each testcase */ } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_query_cost) { object *tosell, *player; int map_reset_time, player_charisma, arch; mapstruct* map; uint64 cost; static const char *sell_archs[] = { "fl_corpse", "Pdragon_mail", NULL }; player = arch_to_object(find_archetype("dwarf_player")); fail_unless(player != NULL, "can't find player?"); fail_unless(player->type == PLAYER, "invalid type for player?"); fail_unless(strcmp(player->name, "dwarf") == 0, "wrong name?"); map = get_empty_map(5, 5); strncpy(map->path, "test", sizeof(map->path) - 1); player->map = map; for (arch = 0; sell_archs[arch] != NULL; arch++) { tosell = arch_to_object(find_archetype(sell_archs[arch])); fail_unless(tosell != NULL, "can't find %s", sell_archs[arch]); tosell->nrof = 6; CLEAR_FLAG(tosell, FLAG_IDENTIFIED); for (player_charisma = 1; player_charisma <= 30; player_charisma++) { player->stats.Cha = player_charisma; for (map_reset_time = 0; map_reset_time < 1000; map_reset_time++) { map->reset_time = map_reset_time; cost = query_cost(tosell, player, F_SELL|F_SHOP); fail_unless(cost < 18446744073710, "mega price %" FMT64U " for charisma %d reset_time %d!", cost, player_charisma, map_reset_time); } } object_free_drop_inventory(tosell); } object_free_drop_inventory(player); } END_TEST static Suite *shop_suite(void) { Suite *s = suite_create("shop"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_query_cost); return s; } int main(void) { int nf; Suite *s = shop_suite(); SRunner *sr = srunner_create(s); srunner_set_fork_status(sr, CK_NOFORK); /* Only want to run this once, so don't put it in setup() */ init(0, NULL); srunner_set_xml(sr, LOGDIR "/unit/server/shop.xml"); srunner_set_log(sr, LOGDIR "/unit/server/shop.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_c_object.c��������������������������������������������������0000644�0000145�0000012�00000015401�11731300514�017013� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_c_object_c = * "$Id: check_c_object.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/c_object.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> #include <sproto.h> static void setup(void) { } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } static object *find_best_apply_object_match(object *start, object *pl, const char *params, int aflag) { object *tmp, *best = NULL; int match_val = 0, tmpmatch; for (tmp = start; tmp; tmp = tmp->below) { if (tmp->invisible) continue; if ((tmpmatch = object_matches_string(pl, tmp, params)) > match_val) { if ((aflag == AP_APPLY) && (QUERY_FLAG(tmp, FLAG_APPLIED))) continue; if ((aflag == AP_UNAPPLY) && (!QUERY_FLAG(tmp, FLAG_APPLIED))) continue; match_val = tmpmatch; best = tmp; } } return best; } START_TEST(test_find_best_apply_object_match) { object *pl, *found; object *gorokh, *cloak, *other; pl = create_archetype("kobold"); fail_unless(pl != NULL, "can't find kobold archetype."); gorokh = create_archetype("cloak"); gorokh->title = add_string("of Gorokh"); CLEAR_FLAG(gorokh, FLAG_IDENTIFIED); object_insert_in_ob(gorokh, pl); cloak = create_archetype("cloak"); object_insert_in_ob(cloak, pl); other = create_archetype("gem"); object_insert_in_ob(other, pl); found = find_best_apply_object_match(pl->inv, pl, "all", 0); fail_unless(found == other, "not found gem but %s", found ? found->name : "nothing"); found = find_best_apply_object_match(pl->inv, pl, "cloak", 0); fail_unless(found == cloak, "didn't find cloak but %s", found ? found->name : "nothing"); found = find_best_apply_object_match(pl->inv, pl, "Gorokh", 0); fail_unless(found == NULL, "Gorokh found %s instead of nothing", found ? found->name : "nothing??"); } END_TEST START_TEST(test_put_object_in_sack) { mapstruct *test_map; object *sack, *obj, *sack2, *dummy; dummy = create_archetype("orc"); test_map = get_empty_map(5, 5); fail_unless(test_map != NULL, "can't create test map"); sack = create_archetype("gem"); object_insert_in_map_at(sack, test_map, NULL, 0, 0, 0); fail_unless(GET_MAP_OB(test_map, 0, 0) == sack); obj = create_archetype("gem"); obj->nrof = 1; object_insert_in_map_at(obj, test_map, NULL, 0, 1, 0); put_object_in_sack(dummy, sack, obj, 1); fail_unless(GET_MAP_OB(test_map, 1, 0) == obj, "object was removed from map?"); fail_unless(sack->inv == NULL, "sack's inventory isn't null?"); object_remove(sack); object_free_drop_inventory(sack); /* basic insertion */ sack = create_archetype("sack"); sack->nrof = 1; fail_unless(sack->type == CONTAINER, "sack isn't a container?"); object_insert_in_map_at(sack, test_map, NULL, 0, 0, 0); fail_unless(GET_MAP_OB(test_map, 0, 0) == sack, "sack not put on map?"); SET_FLAG(sack, FLAG_APPLIED); put_object_in_sack(dummy, sack, obj, 1); fail_unless(sack->inv == obj, "object not inserted into sack?"); fail_unless(GET_MAP_OB(test_map, 1, 0) == NULL, "object wasn't removed from map?"); object_remove(obj); object_insert_in_map_at(obj, test_map, NULL, 0, 1, 0); sack->weight_limit = 1; obj->weight = 5; put_object_in_sack(dummy, sack, obj, 1); fail_unless(sack->inv == NULL, "item was put in sack even if too heavy?"); fail_unless(GET_MAP_OB(test_map, 1, 0) == obj, "object was removed from map?"); /* now for sack splitting */ sack->nrof = 2; obj->weight = 1; put_object_in_sack(dummy, sack, obj, 1); fail_unless(sack->nrof == 1, "sack wasn't split?"); fail_unless(sack->above != NULL, "no new sack created?"); fail_unless(sack->inv == obj, "object not inserted in old sack?"); fail_unless(sack == obj->env, "object's env not updated?"); /* now moving to/from containers */ obj->nrof = 2; sack2 = sack->above; SET_FLAG(sack2, FLAG_APPLIED); dummy->container = sack; put_object_in_sack(dummy, sack, sack2, 1); fail_unless(sack2->inv == NULL, "sack2's not empty?"); fail_unless(sack->inv == obj, "obj wasn't transferred?"); /* move between containers and split containers */ object_remove(sack2); object_insert_in_map_at(sack2, test_map, NULL, 0, 2, 0); SET_FLAG(sack2, FLAG_APPLIED); sack2->nrof = 2; dummy->container = sack2; put_object_in_sack(dummy, sack2, sack, 0); fail_unless(sack->inv == NULL, "sack wasn't put into sack2?"); fail_unless(sack2->inv != NULL, "sack2 wasn't filled?"); fail_unless(sack2->above != NULL, "sack2 wasn't split?"); fail_unless(sack2->above->inv == NULL, "sack2's split was filled?"); free_map(test_map); } END_TEST static Suite *c_object_suite(void) { Suite *s = suite_create("c_object"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_find_best_apply_object_match); tcase_add_test(tc_core, test_put_object_in_sack); return s; } int main(void) { int nf; Suite *s = c_object_suite(); SRunner *sr = srunner_create(s); settings.debug = 0; settings.logfilename = "c_object.out"; init(0, NULL); /* srunner_set_fork_status (sr, CK_NOFORK); */ srunner_set_xml(sr, LOGDIR "/unit/server/c_object.xml"); srunner_set_log(sr, LOGDIR "/unit/server/c_object.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/Makefile.in�������������������������������������������������������0000644�0000145�0000012�00000072632�11732537023�016030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = check_account$(EXEEXT) check_account_char$(EXEEXT) \ check_alchemy$(EXEEXT) check_attack$(EXEEXT) \ check_c_object$(EXEEXT) comet_perf$(EXEEXT) \ check_c_party$(EXEEXT) check_shop$(EXEEXT) DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = $(am__EXEEXT_1) subdir = test/unit/server ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__EXEEXT_1 = check_account$(EXEEXT) check_account_char$(EXEEXT) \ check_alchemy$(EXEEXT) check_attack$(EXEEXT) \ check_c_object$(EXEEXT) comet_perf$(EXEEXT) \ check_c_party$(EXEEXT) check_shop$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) check_account_SOURCES = check_account.c check_account_OBJECTS = check_account.$(OBJEXT) check_account_LDADD = $(LDADD) am__DEPENDENCIES_1 = check_account_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) check_account_char_SOURCES = check_account_char.c check_account_char_OBJECTS = check_account_char.$(OBJEXT) check_account_char_LDADD = $(LDADD) check_account_char_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) check_alchemy_SOURCES = check_alchemy.c check_alchemy_OBJECTS = check_alchemy.$(OBJEXT) check_alchemy_LDADD = $(LDADD) check_alchemy_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) check_attack_SOURCES = check_attack.c check_attack_OBJECTS = check_attack.$(OBJEXT) check_attack_LDADD = $(LDADD) check_attack_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) check_c_object_SOURCES = check_c_object.c check_c_object_OBJECTS = check_c_object.$(OBJEXT) check_c_object_LDADD = $(LDADD) check_c_object_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) check_c_party_SOURCES = check_c_party.c check_c_party_OBJECTS = check_c_party.$(OBJEXT) check_c_party_LDADD = $(LDADD) check_c_party_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) check_shop_SOURCES = check_shop.c check_shop_OBJECTS = check_shop.$(OBJEXT) check_shop_LDADD = $(LDADD) check_shop_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) comet_perf_SOURCES = comet_perf.c comet_perf_OBJECTS = comet_perf.$(OBJEXT) comet_perf_LDADD = $(LDADD) comet_perf_DEPENDENCIES = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a $(am__DEPENDENCIES_1) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) SOURCES = check_account.c check_account_char.c check_alchemy.c \ check_attack.c check_c_object.c check_c_party.c check_shop.c \ comet_perf.c DIST_SOURCES = check_account.c check_account_char.c check_alchemy.c \ check_attack.c check_c_object.c check_c_party.c check_shop.c \ comet_perf.c ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_LIBDL_FALSE@LIBDL = @HAVE_LIBDL_TRUE@LIBDL = -ldl @HAVE_LIBDL_FALSE@AM_LDFLAGS = @HAVE_LIBDL_TRUE@AM_LDFLAGS = -export-dynamic #note all .a are here twice for compilation problems AM_LIBTOOLFLAGS = --preserve-dup-deps LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ LDADD = $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/server/libserver.a \ $(top_builddir)/common/libcross.a \ $(top_builddir)/random_maps/librandom_map.a \ $(top_builddir)/socket/libsocket.a \ $(top_builddir)/types/libtypes.a \ $(LIBDL) @CHECK_LIBS@ CHECK_ROOT = ../../ CHECK_FOLDER = unit/server CHECK_PARENT_NAME = Unit LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/server/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/unit/server/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list check_account$(EXEEXT): $(check_account_OBJECTS) $(check_account_DEPENDENCIES) $(EXTRA_check_account_DEPENDENCIES) @rm -f check_account$(EXEEXT) $(LINK) $(check_account_OBJECTS) $(check_account_LDADD) $(LIBS) check_account_char$(EXEEXT): $(check_account_char_OBJECTS) $(check_account_char_DEPENDENCIES) $(EXTRA_check_account_char_DEPENDENCIES) @rm -f check_account_char$(EXEEXT) $(LINK) $(check_account_char_OBJECTS) $(check_account_char_LDADD) $(LIBS) check_alchemy$(EXEEXT): $(check_alchemy_OBJECTS) $(check_alchemy_DEPENDENCIES) $(EXTRA_check_alchemy_DEPENDENCIES) @rm -f check_alchemy$(EXEEXT) $(LINK) $(check_alchemy_OBJECTS) $(check_alchemy_LDADD) $(LIBS) check_attack$(EXEEXT): $(check_attack_OBJECTS) $(check_attack_DEPENDENCIES) $(EXTRA_check_attack_DEPENDENCIES) @rm -f check_attack$(EXEEXT) $(LINK) $(check_attack_OBJECTS) $(check_attack_LDADD) $(LIBS) check_c_object$(EXEEXT): $(check_c_object_OBJECTS) $(check_c_object_DEPENDENCIES) $(EXTRA_check_c_object_DEPENDENCIES) @rm -f check_c_object$(EXEEXT) $(LINK) $(check_c_object_OBJECTS) $(check_c_object_LDADD) $(LIBS) check_c_party$(EXEEXT): $(check_c_party_OBJECTS) $(check_c_party_DEPENDENCIES) $(EXTRA_check_c_party_DEPENDENCIES) @rm -f check_c_party$(EXEEXT) $(LINK) $(check_c_party_OBJECTS) $(check_c_party_LDADD) $(LIBS) check_shop$(EXEEXT): $(check_shop_OBJECTS) $(check_shop_DEPENDENCIES) $(EXTRA_check_shop_DEPENDENCIES) @rm -f check_shop$(EXEEXT) $(LINK) $(check_shop_OBJECTS) $(check_shop_LDADD) $(LIBS) comet_perf$(EXEEXT): $(comet_perf_OBJECTS) $(comet_perf_DEPENDENCIES) $(EXTRA_comet_perf_DEPENDENCIES) @rm -f comet_perf$(EXEEXT) $(LINK) $(comet_perf_OBJECTS) $(comet_perf_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_account.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_account_char.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_alchemy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_attack.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_c_object.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_c_party.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comet_perf.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check check-am install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am check-local \ clean clean-generic clean-libtool clean-local \ clean-noinstPROGRAMS ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am ../../../types/libtypes.a: ( cd ../../../types ; make libtypes.a ) ../../logs/unit/server: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/server) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) ../../../random_maps/librandom_map.a: ( cd ../../../random_maps ; make librandom_map.a ) ../../../server/libserver.a: ( cd ../../../server ; make libserver.a ) $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_c_party.c���������������������������������������������������0000644�0000145�0000012�00000010616�11731300514�016707� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_c_party_c = * "$Id: check_c_party.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/c_party.c */ #include <stdlib.h> #include <check.h> #include <global.h> #include <sproto.h> static void setup(void) { /* put any initialisation steps here, they will be run before each testcase */ } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_party) { partylist *p1, *p2, *p3; object *pl1; object *pl2; object *pl3; fail_unless(party_get_first() == NULL, "firstparty should be NULL!"); pl1 = calloc(1, sizeof(object)); pl1->name = "player1"; fail_unless(pl1 != NULL, "memory allocation failure"); pl1->contr = calloc(1, sizeof(player)); fail_unless(pl1->contr != NULL, "memory allocation failure"); first_player = pl1->contr; /* needed because obsolete parties uses this. */ pl1->contr->ob = pl1; pl2 = calloc(1, sizeof(object)); pl2->name = "player2"; fail_unless(pl2 != NULL, "memory allocation failure"); pl2->contr = calloc(1, sizeof(player)); fail_unless(pl2->contr != NULL, "memory allocation failure"); first_player = pl2->contr; /* needed because obsolete parties uses this. */ pl2->contr->ob = pl2; pl3 = calloc(1, sizeof(object)); pl3->name = "player2"; fail_unless(pl3 != NULL, "memory allocation failure"); pl3->contr = calloc(1, sizeof(player)); fail_unless(pl3->contr != NULL, "memory allocation failure"); first_player = pl3->contr; /* needed because obsolete parties uses this. */ pl3->contr->ob = pl3; p1 = party_form(pl1, "test1"); fail_unless(p1 != NULL, "party_form failed."); fail_unless(party_get_first() == p1, "firstparty wasn't updated"); fail_unless(strcmp(p1->partyname, "test1") == 0, "wrong party name"); fail_unless(p1 == pl1->contr->party, "player wasn't added to party"); fail_unless(strcmp(party_get_leader(p1), "player1") == 0, "wrong party leader"); p2 = party_form(pl2, "test2"); fail_unless(p2 != NULL, "party_form failed."); fail_unless(party_get_next(party_get_first()) == p2, "party incorrectly linked"); party_remove(p1); fail_unless(party_get_first() == p2, "party incorrectly removed"); p3 = party_form(pl3, "test3"); fail_unless(p3 != NULL, "party_form failed"); fail_unless(party_get_next(party_get_first()) == p3, "party p3 incorrectly linked"); fail_unless(pl3->contr->party == p3, "p3 incorrectly assigned to pl3"); party_obsolete_parties(); fail_unless(party_get_first() == p3, "party p2 wasn't removed by obsolete_parties(), party %s still there", party_get_first() ? party_get_first()->partyname : "NULL party?"); } END_TEST static Suite *c_party_suite(void) { Suite *s = suite_create("c_party"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_party); return s; } int main(void) { int nf; Suite *s = c_party_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/server/c_party.xml"); srunner_set_log(sr, LOGDIR "/unit/server/c_party.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_attack.c����������������������������������������������������0000644�0000145�0000012�00000011071�11731300514�016511� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_attack_c = * "$Id: check_attack.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/attack.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> #include <sproto.h> static void setup(void) { } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_hit_player) { object *victim = NULL; object *hitter = NULL; object *floor = NULL; mapstruct *map = NULL; archetype *deplete = NULL; int test; map = get_empty_map(5, 5); floor = create_archetype("battleground"); fail_unless(floor != NULL, "can't find archetype battleground"); object_insert_in_map_at(floor, map, NULL, 0, 0, 0); floor = create_archetype("battleground"); fail_unless(floor != NULL, "can't find archetype battleground"); object_insert_in_map_at(floor, map, NULL, 0, 1, 0); deplete = find_archetype(ARCH_DEPLETION); fail_unless(deplete != NULL, "can't find archetype %s", ARCH_DEPLETION); victim = create_archetype("kobold"); fail_unless(victim != NULL, "couldn't create kobold"); fail_unless(victim->inv == NULL, "kobold shouldn't have an inventory"); victim->stats.hp = 5000; victim->stats.maxhp = 5000; victim->resist[ATNR_DEPLETE] = 100; victim->resist[ATNR_FIRE] = 100; object_insert_in_map_at(victim, map, NULL, 0, 0, 0); hitter = create_archetype("sword"); fail_unless(hitter != NULL, "couldn't create sword"); hitter->attacktype = AT_DEPLETE|AT_FIRE; hitter->stats.dam = 100; hitter->map = map; object_insert_in_map_at(hitter, map, NULL, 0, 1, 0); fail_unless(arch_present_in_ob(deplete, victim) == NULL, "victim shouldn't be depleted before being attacked"); for (test = 0; test < 100; test++) { hit_player(victim, hitter->stats.dam, hitter, hitter->attacktype, 0); fail_unless(victim->stats.hp == victim->stats.maxhp, "victim should have %d hp and not %d.", victim->stats.maxhp, victim->stats.hp); } fail_unless(victim->inv == NULL, "kobold shouldn't have an inventory after attacked"); fail_unless(arch_present_in_ob(deplete, victim) == NULL, "victim shouldn't be depleted when slaying not set"); hitter->slaying = add_string(victim->race); victim->resist[ATNR_FIRE] = 95; for (test = 0; test < 100 && arch_present_in_ob(deplete, victim) == NULL; test++) { hit_player(victim, hitter->stats.dam, hitter, hitter->attacktype, 0); } fail_unless(arch_present_in_ob(deplete, victim) != NULL, "victim should be depleted when slaying is set"); fail_unless(victim->stats.hp != victim->stats.maxhp, "victim shouldn't have %d hp", victim->stats.hp); } END_TEST static Suite *attack_suite(void) { Suite *s = suite_create("attack"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_hit_player); return s; } int main(void) { int nf; Suite *s = attack_suite(); SRunner *sr = srunner_create(s); /* If you wish to debug the program, uncomment this line. */ /*srunner_set_fork_status (sr, CK_NOFORK); */ settings.debug = 0; init(0, NULL); srunner_set_xml(sr, LOGDIR "/unit/server/attack.xml"); srunner_set_log(sr, LOGDIR "/unit/server/attack.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/server/check_account_char.c����������������������������������������������0000644�0000145�0000012�00000014044�11731300514�017676� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_account_c = * "$Id: check_account_char.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2010 Mark Wedel & Crossfire Development Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for server/account.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> #include <sproto.h> #include <account_char.h> static void setup(void) { } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } /* This test tries to add some accounts. As a final action, we try * to save the account file out. */ START_TEST(test_account_char_add) { player *pl; Account_Char *chars; char path[MAX_BUF]; pl = calloc(1, sizeof(player)); /* The account_character code takes a player structure to * fill in the values, so we create a fake one here - * we just fill in the fields that are used. */ pl->ob = create_archetype("human_player"); pl->ob->level = 1; pl->ob->name = add_string("test character"); pl->ob->contr = pl; strcpy(pl->maplevel, "test map"); chars = account_char_add(NULL, pl); fail_unless(chars != NULL, "account_char_add returned NULL on initial character"); pl->ob->level = 2; chars = account_char_add(chars, pl); fail_unless(chars != NULL, "account_char_add returned NULL on update character"); fail_unless(chars->next == NULL, "account_char_add added to list, not updated existing entry"); chars = account_char_remove(chars, pl->ob->name); fail_unless(chars == NULL, "account_char_remove returned non NULL on final character removal"); chars = account_char_add(NULL, pl); fail_unless(chars != NULL, "account_char_add returned NULL on initial character"); pl->ob->name = add_string("char 2"); pl->party = party_form(pl->ob, "rockon"); chars = account_char_add(chars, pl); fail_unless(chars != NULL, "account_char_add returned NULL on initial character"); fail_unless(chars->next != NULL, "account_char_add did not set next pointer!"); sprintf(path,"%s/account", settings.localdir); mkdir(path, S_IRWXU); /* This does not return anything, but this at least checks for * core dumps, etc */ account_char_save("testaccount", chars); /* Like above, this returns nothing but does check for core dumps */ account_char_free(chars); } END_TEST /* This tests the load logic. Since the only data were are loading is the data from above, * we use that knowledge to check for proper existence accounts, etc. */ START_TEST(test_account_char_load) { Account_Char *chars; object *ob = create_archetype("human_player"); chars = account_char_load("testaccount"); fail_unless(chars != NULL, "account_char_load returned NULL"); /* As of now, the account order is in FIFO order */ fail_unless(!strcmp(chars->name, "test character"), "Name for first character is not test char"); fail_unless(!strcmp(chars->race, ob->race), "Race for first character does not match"); fail_unless(chars->level == 2, "Level for first character is not 2"); fail_unless(!strcmp(chars->face, ob->face->name), "Face for first character does not match"); fail_unless(chars->party[0] == 0, "Party for first character is not blank"); fail_unless(!strcmp(chars->map, "test map"), "Map for first character does not match"); fail_unless(chars->next != NULL, "account_char_load only loaded one character"); /* The presumption here is that if it loaded the first entry * successfully, so it should the second, but we do check for the fields * which are different. */ chars = chars->next; fail_unless(!strcmp(chars->name, "char 2"), "Name for second character does not match"); fail_unless(!strcmp(chars->party, "rockon"), "Party for second character does not match"); } END_TEST static Suite *account_suite(void) { Suite *s = suite_create("account_char"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_account_char_add); tcase_add_test(tc_core, test_account_char_load); return s; } int main(void) { int nf; Suite *s = account_suite(); SRunner *sr = srunner_create(s); /* If you wish to debug the program, uncomment this line. */ /*srunner_set_fork_status (sr, CK_NOFORK);*/ settings.debug = 0; /* Not sure if there is a better place to put this file - basically, * the account code usings the localdir to determine where to read/write * the accounts file from - we don't want to be altering the real version of * that file. */ settings.localdir = strdup_local("/tmp/"); init(0, NULL); srunner_set_xml(sr, LOGDIR "/unit/server/account_char.xml"); srunner_set_log(sr, LOGDIR "/unit/server/account_char.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/socket/������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537050�014013� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/socket/Makefile.in�������������������������������������������������������0000644�0000145�0000012�00000056121�11732537023�016005� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = $(am__EXEEXT_1) subdir = test/unit/socket ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libstubs_a_AR = $(AR) $(ARFLAGS) libstubs_a_LIBADD = am_libstubs_a_OBJECTS = stubs_socket.$(OBJEXT) libstubs_a_OBJECTS = $(am_libstubs_a_OBJECTS) am__EXEEXT_1 = PROGRAMS = $(noinst_PROGRAMS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libstubs_a_SOURCES) DIST_SOURCES = $(libstubs_a_SOURCES) ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libstubs.a libstubs_a_SOURCES = stubs_socket.c LDADD = ../../../common/libcross.a ../../../socket/libsocket.a libstubs.a $(LIBDL) @CHECK_LIBS@ CHECK_ROOT = ../../ CHECK_FOLDER = unit/socket CHECK_PARENT_NAME = Unit LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/socket/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/unit/socket/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libstubs.a: $(libstubs_a_OBJECTS) $(libstubs_a_DEPENDENCIES) $(EXTRA_libstubs_a_DEPENDENCIES) -rm -f libstubs.a $(libstubs_a_AR) libstubs.a $(libstubs_a_OBJECTS) $(libstubs_a_LIBADD) $(RANLIB) libstubs.a clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stubs_socket.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LIBRARIES) $(PROGRAMS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check check-am install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am check-local \ clean clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am ../../logs/unit/socket: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/socket) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/socket/stubs_socket.c����������������������������������������������������0000644�0000145�0000012�00000001213�11731300515�016575� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * Those are dummy functions defined to resolve all symboles. * Added as part of glue cleaning. * Ryo 2005-07-15 **/ #include <global.h> #include <sproto.h> void apply_auto_fix(mapstruct *m) { } void move_firewall(object *ob) { } void emergency_save(int x) { } void clean_tmp_files(void) { } void esrv_send_item(object *ob, object *obx) { } void dragon_ability_gain(object *ob, int x, int y) { } void set_darkness_map(mapstruct *m) { } object *find_skill_by_number(object *who, int skillno) { return NULL; } void esrv_del_item(player *pl, object *ob) { } void esrv_update_spells(player *pl) { } void rod_adjust(object *rod) { } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/socket/Makefile.am�������������������������������������������������������0000644�0000145�0000012�00000001360�11731300515�015760� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������noinst_LIBRARIES = libstubs.a libstubs_a_SOURCES=stubs_socket.c LDADD = ../../../common/libcross.a ../../../socket/libsocket.a libstubs.a $(LIBDL) @CHECK_LIBS@ ../../logs/unit/socket: (mkdir ../../logs; mkdir ../../logs/unit; mkdir ../../logs/unit/socket) ../../../common/libcross.a: ( cd ../../../common ; make libcross.a ) ../../../socket/libsocket.a: ( cd ../../../socket ; make libsocket.a ) #test unimplemented for now #TESTS= check_image check_info check_init check_item check_loop check_lowlevel check_metaserver check_request check_sounds TESTS= CHECK_ROOT=../../ CHECK_FOLDER=unit/socket CHECK_PARENT_NAME=Unit include $(top_srcdir)/check-fragment.am clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/Makefile.in��������������������������������������������������������������0000644�0000145�0000012�00000055142�11732537023�014517� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = subdir = test/unit ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = common random_maps socket server CHECK_ROOT = ../ CHECK_FOLDER = unit CHECK_PARENT_NAME = Main LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/unit/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ check-am ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am check-local clean clean-generic \ clean-libtool clean-local clean-noinstPROGRAMS ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537047�014021� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/Makefile.am�������������������������������������������������������0000644�0000145�0000012�00000001760�11731300515�015764� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ include $(top_srcdir)/check-fragment.am CHECK_ROOT=../../ CHECK_FOLDER=unit/common CHECK_PARENT_NAME=Unit noinst_LIBRARIES = libstubs.a libstubs_a_SOURCES=stubs_common.c LDADD = $(top_builddir)/test/toolkit/libtoolkit_common.a $(top_builddir)/common/libcross.a libstubs.a $(LIBDL) @CHECK_LIBS@ $(top_builddir)/common/libcross.a: ( cd $(top_builddir)/common ; make libcross.a ) $(top_builddir)/test/toolkit/libtoolkit_common.a: ( cd $(top_builddir)/test/toolkit/; make libtoolkit_common.a) # disabled tests, enable them when they have some real content # check_anim check_button check_exp check_friend check_glue check_holy check_image check_info check_init # check_links check_logger check_los check_map # check_player check_porting check_recipe check_re-cmp check_region check_readable TESTS= check_arch check_item check_living check_loader check_object check_path check_shstr check_time check_treasure check_utils clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit ����������������crossfire-1.70.0/test/unit/common/check_treasure.c��������������������������������������������������0000644�0000145�0000012�00000016550�11731300515�017066� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_treasure_c = * "$Id: check_treasure.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002,2011 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/treasure.c */ #include <stdlib.h> #include <check.h> #include <global.h> #include <toolkit_common.h> static void setup(void) { cctk_setdatadir(BUILD_ROOT "lib"); cctk_setlog(LOGDIR "/unit/common/object.out"); printf("set log to %s\n", LOGDIR"/unit/common/object.out"); cctk_init_std_archetypes(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } /* Note: This file is far from a complete test of all treasurelists. * but it tests at least one function from treasure.c. */ /* * This tests that the treasurelist_find_matching_type() * works as expected. * Unfortunately, this requires on the contents of treasurelists, * which sit in the arch tree and can change over time. * * TODO: Add more checks. Started out with basic check * that was needed for skill system. * * The setup is this - treasurelists[] contain the list to look * at. items[][] is the types that we should find. * types[] is what type we are checking for. * * In the initial setup, we check the same treasurelist, but * for different types - in particular, to make sure we * properly handle case with nothing matching. */ START_TEST(test_treasurelist_find_matching_type) { #define NUM_TREASURE_LISTS 2 /* We want to use the top level treasure list - in that way, * we can test that the recursion works properly */ const char *treasurelists[NUM_TREASURE_LISTS] = {"monk_class_items", "monk_class_items"}; const char *items[NUM_TREASURE_LISTS][100] = { { #if 0 /* Until new skill system is commited, these do not * exist. */ "skill_missile_weapon_9", "skill_sword_9", "skill_axe_9", "skill_blunt_weapon_9", "skill_spear_9", "skill_unarmed_combat_3", "skill_armor_3", "skill_dodge_3", "skill_air_magic_8", "skill_fire_magic_8", "skill_water_magic_8", "skill_earth_magic_8", "skill_divine_power_5", "skill_trap_5", "skill_thievery_5", "skill_persuasion_6", "skill_acrobatics_3", "skill_literacy_4", "skill_weaponsmith_9", "skill_armorer_4", "skill_jeweler_8", "skill_alchemy_8", "skill_bowyer_9", "skill_thaumaturgy_8", "skill_woodsman_5", #endif /* Following are legacy skills */ "skill_sense_curse", "skill_sense_magic", "skill_meditation", "skill_karate","skill_praying","skill_missile_weapon", "skill_punching","skill_literacy","skill_use_magic_item", "skill_remove_trap","skill_find_traps","skill_throwing", NULL }, { NULL } }; int types[NUM_TREASURE_LISTS] = {SKILL, HOLY_ALTAR }; int tr; for (tr=0; tr < NUM_TREASURE_LISTS; tr++) { struct treasureliststruct *randomitems; int *results=NULL, list_size; objectlink *ol; randomitems = find_treasurelist(treasurelists[tr]); fail_unless(randomitems != NULL, "Could not find treasurelist %s", treasurelists[tr]); /* Figure out number of items that this one should * return. */ for (list_size=0; items[tr][list_size] != NULL; list_size++) ; if (list_size) results = calloc (list_size, sizeof(*results)); /* Last parameter is if we traverse treasurelists - that * should probably be another test case, but I suspect * that might be something that is always set. */ ol = treasurelist_find_matching_type(randomitems, types[tr], TRUE); fail_if(ol && (list_size == 0), "On test %d, should have returned null but did not", tr); fail_if((ol == NULL) && (list_size != 0), "On test %d, should have returned results but returned NULL", tr); /* Based on above, this could be simplified to be just * ol != NULL, but this is clearer and performance * is not important. */ if ((ol !=NULL) && (list_size != 0)) { int i; objectlink *oltmp; for (oltmp = ol; oltmp != NULL; oltmp = oltmp->next) { fail_if(oltmp->ob == NULL, "On test %d, found NULL object on linked list", tr); /* We do this loop because treasurelist_find_matching_type() * specifically says that the order of results * is not deterministic. */ for (i=0; i < list_size; i++) { if (!strcmp(items[tr][i], oltmp->ob->arch->name)) { results[i]++; break; } } /* Did not find match */ fail_if(i == list_size, "On test %d, did not find match for %s", tr, oltmp->ob->arch->name); } /* treasurelist_find_matching_type() does state multiple * objects of the same type may be returned - to properly * check for this, we would need to have a result table * for each test. What I am more concerned is that it * finds all the objects it should, and does not find * any it should not. */ for (i=0; i < list_size; i++) { fail_if(results[i] == 0, "On test %d, got 0 matches for %s", tr, items[tr][i]); } } free(results); if (ol) free_objectlink(ol); } /* for loop */ } END_TEST static Suite *treasure_suite(void) { Suite *s = suite_create("treasure"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_treasurelist_find_matching_type); return s; } int main(void) { int nf; Suite *s = treasure_suite(); SRunner *sr = srunner_create(s); /* to debug, uncomment this line */ srunner_set_fork_status(sr, CK_NOFORK); srunner_set_xml(sr, LOGDIR "/unit/common/treasure.xml"); srunner_set_log(sr, LOGDIR "/unit/common/treasure.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ��������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_living.c����������������������������������������������������0000644�0000145�0000012�00000040432�11731300515�016520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_living_c = * "$Id: check_living.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002,2011 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/living.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <toolkit_common.h> #include <malloc.h> static void setup(void) { cctk_setdatadir(BUILD_ROOT "lib"); cctk_setconfdir(BUILD_ROOT "lib"); cctk_setlog(LOGDIR "/unit/common/living.out"); cctk_init_std_archetypes(); init_experience(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } /** * Note that the test and results here make assumptions about certain * values that can change. For example, if maximum level (in the exp * file) is lower, the results may not match expected results. Likewise, * if any of the stat bonuses are changed, these results also will * not match. */ START_TEST(test_fix_object) { #define TESTS 50 #define ARCHS 3 static const char *archs[ARCHS] = { "pl_dragon", "pl_half_orc", "human_player" }; object *ob, *grace, *mana; player *pl; int test,i; /** It could be nice to put all these into a structure, so the actual * values for each test are in the same structure element. */ /** First group of arrays here are the values that should be returned * from the test - basically the output values. */ int wc[3][50] = { { 21, 3, 3, 22, 2, 10, 18, 10, 20, 14, 1, 14, 15, 9, 19, 4, 2, 3, 16, 17, 9, 2, 11, 14, 4, 11, 14, 12, 8, 20, 16, 21, 19, 3, 12, 6, 14, 8, 10, 14, 15, 17, 6, 21, 16, 9, 3, 19, 2, 20}, { 6, 23, 1, 2, 6, 14, 7, 6, 23, 13, 17, 9, 9, 19, 11, 18, 5, 15, 2, 3, 15, 9, 13, 13, 6, 19, 5, 21, 2, 12, 15, 6, 23, 19, 7, 20, 19, 3, 22, 7, 7, 12, 14, 15, 7, 15, 8, 10, 23, 11}, { 1, 8, 5, 16, 16, 15, 9, 21, 4, 16, 20, 17, 12, 19, 1, 3, 23, 4, 2, 10, 17, 3, 20, 6, 19, 21, 1, 7, 12, 20, 8, 2, 23, 17, 17, 18, 22, 17, 6, 3, 17, 3, 18, 13, 6, 3, 5, 17, 23, 1} }; int maxgr[3][50] = { { 333, 236, 182, 225, 160, 36, 53, 78, 221, 130, 204, 246, 242, 256, 38, 67, 419, 145, 282, 245, 315, 208, 340, 81, 120, 232, 176, 260, 354, 111, 332, 251, 249, 90, 215, 62, 42, 372, 241, 196, 216, 46, 94, 47, 264, 102, 86, 126, 289, 107}, { 62, 119, 164, 309, 223, 236, 124, 98, 38, 302, 209, 155, 148, 134, 90, 220, 96, 262, 111, 126, 92, 236, 206, 131, 269, 255, 222, 88, 58, 102, 126, 111, 215, 170, 132, 156, 46, 153, 203, 88, 236, 43, 69, 167, 123, 36, 56, 168, 359, 52}, { 42, 192, 232, 110, 164, 287, 90, 238, 160, 242, 225, 258, 66, 226, 165, 114, 189, 208, 88, 255, 97, 83, 40, 254, 130, 88, 109, 238, 238, 226, 46, 231, 172, 206, 42, 148, 126, 82, 97, 162, 161, 232, 108, 152, 205, 190, 212, 80, 54, 152} }; int maxsp[3][50] = { { 64, 403, 72, 106, 156, 234, 214, 194, 183, 432, 219, 70, 208, 108, 140, 224, 263, 218, 211, 178, 194, 160, 48, 106, 165, 100, 349, 245, 218, 239, 336, 247, 323, 243, 148, 37, 160, 148, 132, 362, 156, 238, 286, 217, 229, 166, 156, 178, 245, 220}, { 159, 218, 84, 115, 154, 159, 70, 78, 46, 243, 167, 142, 70, 130, 158, 164, 66, 180, 297, 252, 188, 142, 284, 80, 251, 61, 78, 207, 188, 210, 228, 236, 124, 32, 224, 228, 39, 246, 69, 188, 200, 210, 242, 158, 112, 184, 278, 229, 346, 220}, { 74, 64, 156, 240, 217, 297, 114, 276, 82, 265, 273, 212, 207, 253, 172, 146, 110, 88, 72, 68, 220, 251, 224, 94, 135, 53, 151, 181, 150, 214, 92, 218, 184, 126, 172, 170, 58, 224, 90, 50, 152, 181, 208, 79, 79, 163, 106, 31, 62, 231} }; int maxhp[3][50] = { { 79, 466, 246, 36, 238, 170, 80, 218, 196, 358, 279, 112, 110, 164, 62, 300, 380, 224, 119, 117, 358, 300, 218, 162, 212, 153, 306, 136, 178, 90, 186, 73, 304, 226, 188, 260, 114, 293, 267, 352, 106, 90, 244, 150, 164, 182, 228, 90, 476, 132}, { 210, 34, 246, 351, 198, 254, 211, 196, 34, 188, 162, 196, 162, 140, 146, 72, 210, 158, 349, 264, 138, 164, 154, 136, 192, 91, 258, 82, 256, 278, 102, 238, 93, 64, 188, 171, 64, 420, 39, 184, 303, 202, 258, 104, 206, 121, 274, 346, 130, 142}, { 259, 176, 219, 100, 92, 344, 164, 100, 218, 152, 248, 90, 182, 64, 242, 226, 110, 214, 239, 152, 150, 364, 54, 194, 112, 50, 250, 268, 138, 85, 174, 240, 32, 90, 82, 74, 45, 82, 284, 226, 109, 246, 78, 154, 222, 254, 202, 82, 33, 248} }; int ac[3][50] = { { 4, -7, -7, 6, -7, -7, -2, -7, 2, -7, -7, -7, -7, -7, 1, -7, -7, -7, -4, -2, -7, -7, -7, -7, -7, -7, -7, -7, -7, 2, -4, 4, 1, -7, -7, -7, -7, -7, -7, -7, -6, -3, -7, 3, -4, -7, -7, 0, -7, 3}, { 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, { 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13} }; /** * Follow group of arrays are values to use for the different attributes - * in other word, basically the input values. */ int wis[ARCHS][TESTS] = { { 28, 26, 25, 25, 5, 16, 21, 7, 11, 25, 12, 16, 22, 23, 20, 7, 30, 20, 30, 28, 26, 16, 29, 24, 27, 19, 12, 26, 29, 23, 30, 14, 15, 2, 21, 13, 9, 30, 17, 19, 2, 13, 9, 24, 26, 21, 8, 28, 28, 7 },{ 15, 19, 16, 26, 24, 19, 2, 16, 1, 27, 19, 15, 28, 21, 20, 3, 11, 23, 8, 4, 22, 12, 7, 17, 27, 21, 6, 9, 12, 7, 9, 28, 9, 4, 12, 1, 15, 2, 27, 2, 13, 20, 1, 24, 15, 7, 3, 11, 27, 1 }, { 3, 11, 14, 13, 7, 11, 3, 5, 6, 13, 15, 23, 4, 13, 29, 10, 15, 10, 7, 19, 19, 14, 9, 25, 9, 11, 23, 29, 27, 30, 23, 30, 7, 16, 10, 9, 18, 26, 9, 11, 28, 8, 14, 25, 17, 5, 19, 14, 21, 12 } }; int intelligence[ARCHS][TESTS] = { { 2, 7, 21, 10, 22, 2, 21, 16, 23, 27, 8, 24, 11, 27, 3, 26, 28, 1, 11, 3, 11, 27, 3, 15, 25, 13, 8, 25, 14, 12, 29, 11, 30, 30, 24, 5, 23, 3, 8, 10, 22, 21, 29, 5, 26, 11, 7, 4, 24, 30 },{ 20, 18, 16, 15, 27, 2, 3, 9, 19, 21, 10, 4, 19, 8, 14, 13, 26, 7, 28, 26, 30, 27, 30, 2, 27, 16, 13, 22, 5, 5, 24, 20, 19, 18, 3, 17, 23, 11, 26, 11, 19, 3, 22, 29, 5, 10, 22, 12, 26, 8 },{ 2, 20, 17, 5, 30, 9, 28, 30, 16, 19, 4, 6, 12, 28, 2, 2, 30, 24, 13, 10, 1, 15, 27, 16, 3, 23, 28, 10, 27, 4, 26, 4, 13, 9, 19, 23, 19, 19, 18, 13, 1, 24, 7, 12, 22, 18, 14, 11, 6, 26 } }; int pow[ARCHS][TESTS] = { { 19, 30, 16, 11, 5, 14, 6, 22, 28, 30, 19, 4, 11, 1, 4, 24, 28, 5, 17, 19, 29, 22, 23, 21, 6, 13, 29, 6, 5, 18, 25, 17, 30, 2, 21, 22, 1, 27, 27, 30, 9, 2, 21, 26, 23, 16, 11, 16, 30, 24 }, { 14, 7, 12, 27, 1, 28, 17, 12, 5, 22, 24, 18, 12, 23, 3, 3, 1, 21, 27, 20, 18, 2, 18, 14, 7, 17, 21, 20, 16, 28, 8, 20, 27, 3, 8, 27, 9, 29, 13, 12, 27, 23, 28, 7, 16, 15, 26, 29, 30, 8 }, { 15, 8, 15, 12, 12, 30, 7, 21, 2, 22, 29, 5, 21, 1, 1, 12, 29, 1, 13, 12, 22, 28, 11, 1, 21, 12, 11, 24, 10, 17, 6, 9, 10, 8, 6, 8, 15, 4, 25, 3, 17, 16, 7, 18, 18, 18, 2, 11, 9, 12 } }; int con[ARCHS][TESTS] = { { 19, 30, 16, 11, 5, 14, 6, 22, 28, 30, 19, 4, 11, 1, 4, 24, 28, 5, 17, 19, 29, 22, 23, 21, 6, 13, 29, 6, 5, 18, 25, 17, 30, 2, 21, 22, 1, 27, 27, 30, 9, 2, 21, 26, 23, 16, 11, 16, 30, 24 }, { 14, 7, 12, 27, 1, 28, 17, 12, 5, 22, 24, 18, 12, 23, 3, 3, 1, 21, 27, 20, 18, 2, 18, 14, 7, 17, 21, 20, 16, 28, 8, 20, 27, 3, 8, 27, 9, 29, 13, 12, 27, 23, 28, 7, 16, 15, 26, 29, 30, 8 }, { 15, 8, 15, 12, 12, 30, 7, 21, 2, 22, 29, 5, 21, 1, 1, 12, 29, 1, 13, 12, 22, 28, 11, 1, 21, 12, 11, 24, 10, 17, 6, 9, 10, 8, 6, 8, 15, 4, 25, 3, 17, 16, 7, 18, 18, 18, 2, 11, 9, 12 } }; int ob_level[ARCHS][TESTS] = { { 12, 103, 103, 6, 109, 70, 30, 69, 18, 49, 112, 46, 45, 72, 21, 100, 110, 102, 37, 31, 74, 110, 64, 46, 96, 64, 48, 58, 79, 20, 38, 14, 22, 103, 59, 90, 47, 79, 66, 46, 43, 35, 87, 15, 37, 71, 104, 25, 108, 16 }, { 90, 4, 113, 108, 89, 47, 83, 88, 4, 54, 31, 73, 71, 25, 63, 26, 95, 44, 107, 102, 44, 72, 52, 53, 86, 23, 94, 11, 108, 59, 41, 89, 5, 22, 84, 18, 22, 105, 6, 82, 84, 56, 49, 42, 83, 43, 77, 68, 4, 61 }, { 112, 78, 92, 40, 36, 42, 72, 15, 99, 36, 19, 35, 56, 22, 111, 103, 4, 97, 107, 66, 35, 102, 17, 87, 21, 15, 115, 84, 59, 20, 77, 110, 2, 35, 31, 27, 6, 31, 87, 103, 32, 103, 29, 52, 86, 102, 91, 31, 3, 114 } }; int grace_level[ARCHS][TESTS] = { { 112, 40, 61, 85, 70, 5, 15, 29, 83, 7, 92, 113, 105, 114, 8, 23, 90, 62, 42, 68, 93, 89, 94, 13, 21, 103, 50, 100, 111, 34, 58, 115, 70, 35, 89, 19, 11, 71, 92, 40, 98, 13, 37, 2, 93, 35, 33, 10, 48, 43 }, { 21, 49, 72, 104, 93, 83, 52, 39, 8, 104, 83, 66, 23, 46, 35, 100, 38, 108, 35, 53, 27, 108, 93, 54, 95, 111, 101, 34, 19, 27, 53, 8, 86, 75, 56, 64, 13, 48, 59, 34, 93, 4, 16, 62, 51, 6, 17, 47, 92, 16 }, { 11, 86, 106, 45, 72, 93, 35, 109, 70, 109, 72, 113, 23, 103, 18, 47, 54, 94, 34, 115, 31, 11, 10, 104, 55, 34, 36, 41, 78, 14, 7, 20, 76, 93, 11, 64, 50, 12, 34, 71, 27, 106, 44, 45, 89, 85, 96, 30, 14, 66 } }; int mana_level[ARCHS][TESTS] = { { 22, 107, 22, 43, 68, 107, 97, 79, 34, 101, 99, 25, 94, 40, 60, 75, 58, 99, 95, 79, 28, 46, 9, 37, 71, 40, 107, 111, 99, 108, 108, 113, 19, 79, 51, 4, 70, 36, 26, 85, 68, 109, 97, 79, 82, 73, 68, 79, 17, 41 }, { 68, 99, 32, 14, 63, 33, 25, 29, 13, 101, 61, 61, 25, 48, 69, 72, 23, 78, 84, 99, 37, 56, 85, 30, 106, 18, 24, 85, 84, 57, 103, 101, 17, 2, 102, 70, 9, 54, 14, 84, 55, 90, 65, 46, 46, 82, 101, 45, 63, 100 }, { 27, 22, 67, 110, 57, 53, 33, 78, 31, 113, 71, 96, 89, 108, 76, 63, 3, 34, 26, 24, 99, 73, 89, 37, 57, 14, 48, 68, 53, 97, 32, 99, 82, 53, 76, 75, 17, 102, 14, 15, 66, 72, 94, 28, 23, 67, 43, 1, 21, 96 } }; /** if you want to generate the test results, change 0 to 1 and run this test. */ #define GENERATE 0 #if GENERATE StringBuffer *swc = stringbuffer_new(); StringBuffer *smaxgr = stringbuffer_new(); StringBuffer *smaxsp = stringbuffer_new(); StringBuffer *smaxhp = stringbuffer_new(); StringBuffer *sac = stringbuffer_new(); const char *sep = ""; stringbuffer_append_printf(swc, "\tint wc[%d][%d] = {\n\t", ARCHS, TESTS); stringbuffer_append_printf(smaxgr, "\tint maxgr[%d][%d] = {\n\t", ARCHS, TESTS); stringbuffer_append_printf(smaxsp, "\tint maxsp[%d][%d] = {\n\t", ARCHS, TESTS); stringbuffer_append_printf(smaxhp, "\tint maxhp[%d][%d] = {\n\t", ARCHS, TESTS); stringbuffer_append_printf(sac, "\tint ac[%d][%d] = {\n\t", ARCHS, TESTS); #endif pl = calloc(1, sizeof(player)); for (i = 0; i < ARCHS; i++) { #if GENERATE stringbuffer_append_printf(swc, "%s{ ", sep); stringbuffer_append_printf(smaxgr, "%s{ ", sep); stringbuffer_append_printf(smaxsp, "%s{ ", sep); stringbuffer_append_printf(smaxhp, "%s{ ", sep); stringbuffer_append_printf(sac, "%s{ ", sep); sep = ""; #endif ob = create_archetype(archs[i]); fail_unless(ob != NULL, "invalid archetype %s", archs[i]); if (ob->type == PLAYER) ob->contr = pl; grace = create_archetype("skill_praying"); object_insert_in_ob(grace, ob); mana = create_archetype("skill_pyromancy"); object_insert_in_ob(mana, ob); for (test = 0; test < TESTS; test++) { ob->contr->orig_stats.Wis = wis[i][test]; ob->contr->orig_stats.Int = intelligence[i][test]; ob->contr->orig_stats.Pow = pow[i][test]; ob->contr->orig_stats.Con = con[i][test]; ob->level = ob_level[i][test]; grace->level = grace_level[i][test]; mana->level = mana_level[i][test]; fix_object(ob); #if GENERATE stringbuffer_append_printf(swc, "%s%d", sep, ob->stats.wc); stringbuffer_append_printf(smaxgr, "%s%d", sep, ob->stats.maxgrace); stringbuffer_append_printf(smaxsp, "%s%d", sep, ob->stats.maxsp); stringbuffer_append_printf(smaxhp, "%s%d", sep, ob->stats.maxhp); stringbuffer_append_printf(sac, "%s%d", sep, ob->stats.ac); sep = ", "; #else fail_unless(ob->stats.wc == wc[i][test], "wc [test %d, arch %d]: got %d instead of %d", test, i, ob->stats.wc, wc[i][test]); fail_unless(ob->stats.maxgrace == maxgr[i][test], "gr: got %d instead of %d", ob->stats.maxgrace, maxgr[i][test]); fail_unless(ob->stats.maxsp == maxsp[i][test], "sp: got %d instead of %d", ob->stats.maxsp, maxsp[i][test]); fail_unless(ob->stats.maxhp == maxhp[i][test], "hp: [test %d, arch %d] [con %d level %d] got %d instead of %d", test, i, con[i][test], ob->level, ob->stats.maxhp, maxhp[i][test]); fail_unless(ob->stats.ac == ac[i][test], "ac: got %d instead of %d", ob->stats.ac, ac[i][test]); #endif } object_free2(ob, FREE_OBJ_FREE_INVENTORY); #if GENERATE stringbuffer_append_string(swc, "}\n\t"); stringbuffer_append_string(smaxgr, "}\n\t"); stringbuffer_append_string(smaxsp, "}\n\t"); stringbuffer_append_string(smaxhp, "}\n\t"); stringbuffer_append_string(sac, "}\n\t"); #endif } free(pl); #if GENERATE stringbuffer_append_string(swc, "\n}; \n"); stringbuffer_append_string(smaxgr, "\n}; \n"); stringbuffer_append_string(smaxsp, "\n}; \n"); stringbuffer_append_string(smaxhp, "\n}; \n"); stringbuffer_append_string(sac, "\n}; \n"); { char *pwc = stringbuffer_finish(swc); char *pmaxgr = stringbuffer_finish(smaxgr); char *pmaxsp = stringbuffer_finish(smaxsp); char *pmaxhp = stringbuffer_finish(smaxhp); char *pac = stringbuffer_finish(sac); printf("%s\n", pwc); printf("%s\n", pmaxgr); printf("%s\n", pmaxsp); printf("%s\n", pmaxhp); printf("%s\n", pac); free(pwc); free(pmaxgr); free(pmaxsp); free(pmaxhp); free(pac); } fail("Here are the results."); #endif } END_TEST static Suite *living_suite(void) { Suite *s = suite_create("living"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_fix_object); return s; } int main(void) { int nf; Suite *s = living_suite(); SRunner *sr = srunner_create(s); /* to debug, uncomment this line */ /*srunner_set_fork_status(sr, CK_NOFORK);*/ srunner_set_xml(sr, LOGDIR "/unit/common/living.xml"); srunner_set_log(sr, LOGDIR "/unit/common/living.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_loader.c����������������������������������������������������0000644�0000145�0000012�00000012163�11731300515�016476� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_loader_c = * "$Id: check_loader.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/loader.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> #include <object.h> #include <stringbuffer.h> static void setup(void) { cctk_setdatadir(BUILD_ROOT "lib"); cctk_setlog(LOGDIR "/unit/common/loader.out"); cctk_init_std_archetypes(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_get_ob_diff) { StringBuffer *buf; object *orc; archetype *arch; char *result; arch = find_archetype("orc"); fail_unless(arch != NULL, "Can't find 'orc' archetype!"); orc = arch_to_object(arch); fail_unless(orc != NULL, "Couldn't create first orc!"); buf = stringbuffer_new(); get_ob_diff(buf, orc, &arch->clone); result = stringbuffer_finish(buf); fail_unless(result && result[0] == '\0', "diff obj/clone was %s!", result); free(result); orc->speed = 0.5; orc->speed_left = arch->clone.speed_left; FREE_AND_COPY(orc->name, "Orc chief"); buf = stringbuffer_new(); get_ob_diff(buf, orc, &arch->clone); result = stringbuffer_finish(buf); fail_unless(result && strcmp(result, "name Orc chief\nspeed 0.500000\n") == 0, "diff modified obj/clone was %s!", result); free(result); orc->stats.hp = 50; orc->stats.Wis = 59; orc->expmul = 8.5; orc->stats.dam = 168; buf = stringbuffer_new(); get_ob_diff(buf, orc, &arch->clone); result = stringbuffer_finish(buf); fail_unless(result && strcmp(result, "name Orc chief\nWis 59\nhp 50\nexpmul 8.500000\ndam 168\nspeed 0.500000\n") == 0, "2n diff modified obj/clone was %s!", result); free(result); } END_TEST START_TEST(test_object_dump) { /** we only test specific things like env/more/head/..., the rest is in test_get_ob_diff(). */ StringBuffer *buf; object *empty; char *result; char expect[10000]; /* Basic */ empty = arch_to_object(empty_archetype); fail_unless(empty != NULL, "Couldn't create empty archetype!"); snprintf(expect, sizeof(expect), "arch empty_archetype\nend\n"); buf = stringbuffer_new(); object_dump(empty, buf); result = stringbuffer_finish(buf); fail_unless(result && strcmp(result, expect) == 0, "object_dump was \"%s\" instead of \"%s\"!", result, expect); free(result); /* With more things */ empty->head = arch_to_object(empty_archetype); empty->inv = arch_to_object(empty_archetype); empty->more = arch_to_object(empty_archetype); empty->env = arch_to_object(empty_archetype); fail_unless(empty->head != NULL, "Couldn't create empty archetype as head!"); fail_unless(empty->inv != NULL, "Couldn't create empty archetype as inv!"); fail_unless(empty->more != NULL, "Couldn't create empty archetype as more!"); fail_unless(empty->env != NULL, "Couldn't create empty archetype as env!"); snprintf(expect, sizeof(expect), "arch empty_archetype\nmore %d\nhead %d\nenv %d\ninv %d\nend\n", empty->more->count, empty->head->count, empty->env->count, empty->inv->count); buf = stringbuffer_new(); object_dump(empty, buf); result = stringbuffer_finish(buf); fail_unless(result && strcmp(result, expect) == 0, "object_dump was \"%s\" instead of \"%s\"!", result, expect); free(result); } END_TEST static Suite *loader_suite(void) { Suite *s = suite_create("loader"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_get_ob_diff); tcase_add_test(tc_core, test_object_dump); return s; } int main(void) { int nf; Suite *s = loader_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/common/loader.xml"); srunner_set_log(sr, LOGDIR "/unit/common/loader.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/Makefile.in�������������������������������������������������������0000644�0000145�0000012�00000071460�11732537023�016010� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/check-fragment.am noinst_PROGRAMS = $(am__EXEEXT_1) TESTS = check_arch$(EXEEXT) check_item$(EXEEXT) check_living$(EXEEXT) \ check_loader$(EXEEXT) check_object$(EXEEXT) \ check_path$(EXEEXT) check_shstr$(EXEEXT) check_time$(EXEEXT) \ check_treasure$(EXEEXT) check_utils$(EXEEXT) subdir = test/unit/common ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libstubs_a_AR = $(AR) $(ARFLAGS) libstubs_a_LIBADD = am_libstubs_a_OBJECTS = stubs_common.$(OBJEXT) libstubs_a_OBJECTS = $(am_libstubs_a_OBJECTS) am__EXEEXT_1 = check_arch$(EXEEXT) check_item$(EXEEXT) \ check_living$(EXEEXT) check_loader$(EXEEXT) \ check_object$(EXEEXT) check_path$(EXEEXT) check_shstr$(EXEEXT) \ check_time$(EXEEXT) check_treasure$(EXEEXT) \ check_utils$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) check_arch_SOURCES = check_arch.c check_arch_OBJECTS = check_arch.$(OBJEXT) check_arch_LDADD = $(LDADD) check_arch_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_item_SOURCES = check_item.c check_item_OBJECTS = check_item.$(OBJEXT) check_item_LDADD = $(LDADD) check_item_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_living_SOURCES = check_living.c check_living_OBJECTS = check_living.$(OBJEXT) check_living_LDADD = $(LDADD) check_living_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_loader_SOURCES = check_loader.c check_loader_OBJECTS = check_loader.$(OBJEXT) check_loader_LDADD = $(LDADD) check_loader_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_object_SOURCES = check_object.c check_object_OBJECTS = check_object.$(OBJEXT) check_object_LDADD = $(LDADD) check_object_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_path_SOURCES = check_path.c check_path_OBJECTS = check_path.$(OBJEXT) check_path_LDADD = $(LDADD) check_path_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_shstr_SOURCES = check_shstr.c check_shstr_OBJECTS = check_shstr.$(OBJEXT) check_shstr_LDADD = $(LDADD) check_shstr_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_time_SOURCES = check_time.c check_time_OBJECTS = check_time.$(OBJEXT) check_time_LDADD = $(LDADD) check_time_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_treasure_SOURCES = check_treasure.c check_treasure_OBJECTS = check_treasure.$(OBJEXT) check_treasure_LDADD = $(LDADD) check_treasure_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a check_utils_SOURCES = check_utils.c check_utils_OBJECTS = check_utils.$(OBJEXT) check_utils_LDADD = $(LDADD) check_utils_DEPENDENCIES = \ $(top_builddir)/test/toolkit/libtoolkit_common.a \ $(top_builddir)/common/libcross.a libstubs.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libstubs_a_SOURCES) check_arch.c check_item.c \ check_living.c check_loader.c check_object.c check_path.c \ check_shstr.c check_time.c check_treasure.c check_utils.c DIST_SOURCES = $(libstubs_a_SOURCES) check_arch.c check_item.c \ check_living.c check_loader.c check_object.c check_path.c \ check_shstr.c check_time.c check_treasure.c check_utils.c ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ LOG_ROOT = $(top_builddir)/test/logs LOGDIR = $(LOG_ROOT)/$(CHECK_FOLDER) TEMPLATE_ROOT = $(top_srcdir)/test/templates BUILT_SOURCES = $(LOGDIR) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/test/include -DRESSOURCES=\"$(srcdir)/../../resources\" -DBUILD_ROOT=\"$(top_builddir)/\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(top_srcdir)/\" @PROCESS_XSLT_TRUE@CHECK_HTML = logreport template-copy @PROCESS_XSLT_TRUE@CHECK_TXT = textlog CHECK_ROOT = ../../ CHECK_FOLDER = unit/common CHECK_PARENT_NAME = Unit noinst_LIBRARIES = libstubs.a libstubs_a_SOURCES = stubs_common.c LDADD = $(top_builddir)/test/toolkit/libtoolkit_common.a $(top_builddir)/common/libcross.a libstubs.a $(LIBDL) @CHECK_LIBS@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/check-fragment.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/unit/common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/unit/common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/check-fragment.am: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libstubs.a: $(libstubs_a_OBJECTS) $(libstubs_a_DEPENDENCIES) $(EXTRA_libstubs_a_DEPENDENCIES) -rm -f libstubs.a $(libstubs_a_AR) libstubs.a $(libstubs_a_OBJECTS) $(libstubs_a_LIBADD) $(RANLIB) libstubs.a clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list check_arch$(EXEEXT): $(check_arch_OBJECTS) $(check_arch_DEPENDENCIES) $(EXTRA_check_arch_DEPENDENCIES) @rm -f check_arch$(EXEEXT) $(LINK) $(check_arch_OBJECTS) $(check_arch_LDADD) $(LIBS) check_item$(EXEEXT): $(check_item_OBJECTS) $(check_item_DEPENDENCIES) $(EXTRA_check_item_DEPENDENCIES) @rm -f check_item$(EXEEXT) $(LINK) $(check_item_OBJECTS) $(check_item_LDADD) $(LIBS) check_living$(EXEEXT): $(check_living_OBJECTS) $(check_living_DEPENDENCIES) $(EXTRA_check_living_DEPENDENCIES) @rm -f check_living$(EXEEXT) $(LINK) $(check_living_OBJECTS) $(check_living_LDADD) $(LIBS) check_loader$(EXEEXT): $(check_loader_OBJECTS) $(check_loader_DEPENDENCIES) $(EXTRA_check_loader_DEPENDENCIES) @rm -f check_loader$(EXEEXT) $(LINK) $(check_loader_OBJECTS) $(check_loader_LDADD) $(LIBS) check_object$(EXEEXT): $(check_object_OBJECTS) $(check_object_DEPENDENCIES) $(EXTRA_check_object_DEPENDENCIES) @rm -f check_object$(EXEEXT) $(LINK) $(check_object_OBJECTS) $(check_object_LDADD) $(LIBS) check_path$(EXEEXT): $(check_path_OBJECTS) $(check_path_DEPENDENCIES) $(EXTRA_check_path_DEPENDENCIES) @rm -f check_path$(EXEEXT) $(LINK) $(check_path_OBJECTS) $(check_path_LDADD) $(LIBS) check_shstr$(EXEEXT): $(check_shstr_OBJECTS) $(check_shstr_DEPENDENCIES) $(EXTRA_check_shstr_DEPENDENCIES) @rm -f check_shstr$(EXEEXT) $(LINK) $(check_shstr_OBJECTS) $(check_shstr_LDADD) $(LIBS) check_time$(EXEEXT): $(check_time_OBJECTS) $(check_time_DEPENDENCIES) $(EXTRA_check_time_DEPENDENCIES) @rm -f check_time$(EXEEXT) $(LINK) $(check_time_OBJECTS) $(check_time_LDADD) $(LIBS) check_treasure$(EXEEXT): $(check_treasure_OBJECTS) $(check_treasure_DEPENDENCIES) $(EXTRA_check_treasure_DEPENDENCIES) @rm -f check_treasure$(EXEEXT) $(LINK) $(check_treasure_OBJECTS) $(check_treasure_LDADD) $(LIBS) check_utils$(EXEEXT): $(check_utils_OBJECTS) $(check_utils_DEPENDENCIES) $(EXTRA_check_utils_DEPENDENCIES) @rm -f check_utils$(EXEEXT) $(LINK) $(check_utils_OBJECTS) $(check_utils_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_arch.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_living.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_loader.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_object.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_path.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_shstr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_time.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_treasure.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_utils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stubs_common.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check-local check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LIBRARIES) $(PROGRAMS) installdirs: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: all check check-am install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am check-local \ clean clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am $(LOGDIR): mkdir -p $(LOGDIR) $(LOG_ROOT): mkdir -p $(LOG_ROOT) automenu: @echo "Building menu entry..." @subdirs='$(SUBDIRS)';\ list='$(TESTS)'; \ dir='$(LOGDIR)'; \ srcdir='$(top_srcdir)'; \ output_menu="$${dir}/.automenu.xml"; \ parentfoldername='$(CHECK_PARENT_NAME)'; \ echo '<?xml version="1.0"?><menu>' > $$output_menu; \ echo '<parentMenu>$(CHECK_PARENT_NAME)</parentMenu>' >> $$output_menu;\ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ xml="$(LOGDIR)/$${tst}.xml" ;\ if test -e "$$xml"; then \ successCount=`grep -c 'result="success"' $$xml`;\ errorCount=`grep -c 'result="error"' $$xml`;\ failureCount=`grep -c 'result="failure"' $$xml`;\ echo '<entry success="'$${successCount}'" error="'$${errorCount}'" failure="'$${failureCount}'">'$$tst'</entry>' >> $$output_menu; \ fi; \ done; \ for sub in $$subdirs; do \ if test -e "$${dir}/$${sub}/.automenu.xml"; then \ echo '<subDirectory name="'$${sub}'"/>' >> $$output_menu; \ fi; \ done;\ echo "</menu>" >> $$output_menu logreport: automenu $(LOG_ROOT)/logresult.xsl @echo "processing logs to html..." @list='$(TESTS)'; \ builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/logresult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc=$${xsltproc/\%2/$$xsl};\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ if test -n "$$list"; then \ for tst in $$list; do \ tst="$${tst/check_/}" ; \ tst="$${tst/-/_}" ; \ checkFile="$${tst}.xml" ;\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFile>$$checkFile</checkFile>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html=$(LOGDIR)/$${tst}.html ;\ if test -e "$(LOGDIR)/$$xml"; then \ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; \ fi; \ done; \ else :; fi; \ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ html='$(LOGDIR)/.index.html' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$html}";\ echo "running $$torun";\ $$torun; $(LOG_ROOT)/logresult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/logresult.xsl cp "$(TEMPLATE_ROOT)/logresult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkTextResult.xsl: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkTextResult.xsl cp "$(TEMPLATE_ROOT)/checkTextResult.xsl" '$(LOG_ROOT)'/; $(LOG_ROOT)/checkReport.css: $(LOG_ROOT) $(TEMPLATE_ROOT)/checkReport.css cp "$(TEMPLATE_ROOT)/checkReport.css" '$(LOG_ROOT)'/; template-copy: $(LOGDIR) @echo copying template @if test -d "$(top_srcdir)/test/templates/$(CHECK_FOLDER)"; then \ cp "$(top_srcdir)/test/templates/$(CHECK_FOLDER)/"[^C]* '$(LOGDIR)'/;\ fi textlog: automenu $(LOG_ROOT)/checkTextResult.xsl @echo "processing logs to text..." @builddir='$(top_builddir)'; \ xsl="$${builddir}/test/logs/checkTextResult.xsl" ; \ xsltproc='$(XSLTENGINE)';\ xsltproc="$${xsltproc/\%2/$$xsl}";\ xml_siteuri='$(CHECK_ROOT)' ;\ xml_check_folder='../logs/$(CHECK_FOLDER)' ;\ runxml='.autorun.xml';\ echo '<?xml version="1.0"?><config>' > $$runxml;\ echo "<baseSiteUri>$$xml_siteuri</baseSiteUri>" >> $$runxml;\ echo "<checkFolder>$$xml_check_folder</checkFolder></config>" >> $$runxml;\ txt='$(LOGDIR)/testlog.txt' ;\ torun="$${xsltproc/\%1/$$runxml}";\ torun="$${torun/\%3/$$txt}";\ echo "running $$torun";\ $$torun; check-html: $(CHECK_HTML) check-text: $(CHECK_TXT) clean-unit: rm -f autorun.xml $(top_builddir)/common/libcross.a: ( cd $(top_builddir)/common ; make libcross.a ) $(top_builddir)/test/toolkit/libtoolkit_common.a: ( cd $(top_builddir)/test/toolkit/; make libtoolkit_common.a) clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_item.c������������������������������������������������������0000644�0000145�0000012�00000042564�11731300515�016176� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_item_c = * "$Id: check_item.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/item.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> static void setup(void) { cctk_setdatadir(BUILD_ROOT "lib"); cctk_setlog(LOGDIR "/unit/common/item.out"); cctk_init_std_archetypes(); init_gods(); init_formulae(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_describe_item) { object *test; char *buf; int check; treasurelist *list; static const char *archs[] = { "gem", "food", "lantern_1", "blood", "ring", "amulet", "goblin", "potion_restoration", "axe_2", "elven_bow", "helmet_of_brilliance", "holy_avenger", "scimitar", "shield", "fl_corpse", "booze", "poison", "deathshead", "zombie", "talisman_evocation", "talisman_sorcery", "dragon", "titan", "speedboots", "t_star1", "girdle_con", "god_finger", "shining_finger", "high_boots_w", "plate_mail", "robe", "scale_mail", "DShieldms", "holy_shield", NULL }; static const char *arch_results[] = { "", "(food+200)", "(glowing)", "", "", "", "(slow movement)(wield weapon)(archer)(wear armour)(wear ring)", "", "(dam+6)(weapon speed 10)(Attacks: physical)", "(wc+1)(dam+15)(Attacks: physical)", "(Int+2)(Pow+2)(ac+2)(item_power +5)(magic+1)(armour +5)", "(Str+1)(Wis+2)(Cha+2)(dam+15)(item_power +25)(weapon speed 6)(Attacks: weaponmagic, blinding)(resist magic +30)(resist drain +100)", "(dam+8)(weapon speed 8)(Attacks: physical)", "(ac+1)(armour +5)", "(food+600)", "(food+100)(slay vial_poison:poison)", "", "(extremely fast movement)(undead)(spellcaster)(Spell abilities:)(paralyze)(fear ability)(cause black death)(cause red death)(face of death)(meteor swarm)(hellfire)(burning hands)(large fireball)(mass confusion)(negative energy bolt)(negative energy ball)(slow ability)(Attacks: physical, cold)(armour +75)(resist magic +100)(resist fire +100)(resist electricity +90)(resist cold +100)(resist confusion +100)(resist acid +90)(resist drain +100)(resist weaponmagic +80)(resist ghosthit +100)(resist poison +100)(resist slow +100)(resist paralyzation +100)(resist fear +100)(resist cancellation +65)(resist depletion +100)(resist death +100)(resist chaos +100)(resist counterspell +65)(resist god power +80)(resist blindness +100)", "(slow movement)(undead)(Attacks: physical)(resist cold +50)(resist fear +100)", "", "", "(normal movement)(see invisible)(spellcaster)(Spell abilities:)(burning hands ability)(medium fireball ability)(fear ability)(Attacks: physical)(resist fire +100)(resist cold -100)(resist confusion -100)(resist fear +100)(resist blindness +50)", "(fast movement)(see invisible)(wield weapon)(archer)(wear armour)(wear ring)(read scroll)(fires wand/rod/horn)(spellcaster)(Spell abilities:)(paralyze)(fear ability)(small lightning)(large lightning)(slow ability)(resist magic +50)(resist electricity +100)(resist fear +100)", "(speed +6)(item_power +6)(armour +3)", "(dam+3)(weapon speed 2)(Attacks: physical)", "(Con+2)(item_power +1)", "(Str+2)(Dex-1)(dam+3)(item_power +2)(armour +3)", "(Str+2)(dam+3)(item_power +1)(armour +3)", "(Cha+1)(ac+1)(Spell regen penalty 4)(armour +4)(resist blindness +1)", "(ac+5)(Max speed 0.70)(Spell regen penalty 30)(armour +40)", "(ac+1)(Max speed 1.20)", "(ac+3)(Max speed 0.90)(Spell regen penalty 10)(armour +20)", "(Cha-5)(ac+7)(item_power +10)(reflect spells)(reflect missiles)(armour +15)(resist fire +30)(resist drain +100)(resist ghosthit +80)", "(ac+4)(item_power +6)(armour +10)(resist drain +100)(resist ghosthit +50)", NULL }; /* if you change the order, the result will quite certainly change, as the generation depends on the value returned * by rand() - changing the order changes the item generated... */ static const char *treasures[] = { "random_knowledge", "missile_weapons", "random_talisman", "rare_weapons", "random_food", "random_artifact", "random_read", "random_amulet", "random_artifact", "random_amulet", "random_artifact", "standard_old", NULL }; static const char *treasure_results[] = { "", "(wc+1)(dam+2)(Attacks: physical)", "", "(dam+6)(weapon speed 9)(Attacks: physical)", "(food+200)", "(Con+2)(Cha-1)(dam+10)(item_power +15)(weapon speed 5)(regeneration+1)(Attacks: weaponmagic)(resist drain +100)(resist poison +30)", "", "", "(Str+1)(dam+9)(item_power +20)(weapon speed 6)(regeneration+1)(Attacks: electricity, drain)(resist magic +30)(resist electricity +30)(resist drain +100)", "", "(Str+1)(armour +3)", "", NULL }; for (check = 0; archs[check] != NULL; check++) { test = cctk_create_game_object(archs[check]); fail_unless(test != NULL, "couldn't create arch %s", archs[check]); SET_FLAG(test, FLAG_IDENTIFIED); buf = stringbuffer_finish(describe_item(test, NULL, NULL)); /* if you're adding items, uncomment that so make finding the good value easier. */ /* if (strcmp(buf, arch_results[check])) printf("describe_item(%s) returned \"%s\" instead of \"%s\"\n", archs[check], buf, arch_results[check]); */ fail_unless(strcmp(buf, arch_results[check]) == 0, "describe_item(%s) returned \"%s\" instead of \"%s\"", archs[check], buf, arch_results[check]); free(buf); object_free_drop_inventory(test); } /* we initialize the random generator to always be able to reproduce, and we use rand() in case RANDOM is something else. */ srand(100); for (check = 0; treasures[check] != NULL; check++) { list = find_treasurelist(treasures[check]); fail_unless(list != NULL, "couldn't find treasure list %s", treasures[check]); test = generate_treasure(list, 50); fail_if(test == NULL, "couldn't create item from treasure list %s", treasures[check]); SET_FLAG(test, FLAG_IDENTIFIED); buf = stringbuffer_finish(describe_item(test, NULL, NULL)); /* if you're adding lists, uncomment that so make finding the good value easier. */ /* if (strcmp(buf, treasure_results[check])) printf("Item %d describe_item(treasure %s) returned \"%s\" instead of \"%s\"\n", check, treasures[check], buf, treasure_results[check]); */ fail_unless(strcmp(buf, treasure_results[check]) == 0, "describe_item(treasure %s) returned \"%s\" instead of \"%s\"", treasures[check], buf, treasure_results[check]); free(buf); object_free_drop_inventory(test); } } END_TEST #define DESCRIBE_PATH_SAFE(retbuf, variable, name, len, maxlen) \ if (variable) { \ int i, j = 0; \ safe_strcat(retbuf, "(" name ": ", len, maxlen); \ for (i = 0; i < NRSPELLPATHS; i++) \ if (variable&(1<<i)) { \ if (j) \ safe_strcat(retbuf, ", ", len, maxlen); \ else \ j = 1; \ safe_strcat(retbuf, spellpathnames[i], len, maxlen); \ } \ safe_strcat(retbuf, ")", len, maxlen); \ } #define DESCRIBE_ABILITY_SAFE(retbuf, variable, name, len, maxlen) \ if (variable) { \ int i, j = 0; \ safe_strcat(retbuf, "(" name ": ", len, maxlen); \ for (i = 0; i < NROFATTACKS; i++) \ if (variable&(1<<i)) { \ if (j) \ safe_strcat(retbuf, ", ", len, maxlen); \ else \ j = 1; \ safe_strcat(retbuf, attacks[i], len, maxlen); \ } \ safe_strcat(retbuf, ")", len, maxlen); \ } static void old_describe_monster(const object *op, char *retbuf, size_t size) { int i; size_t len; retbuf[0] = '\0'; /* Note that the resolution this provides for players really isn't * very good. Any player with a speed greater than .67 will * fall into the 'lightning fast movement' category. */ if (FABS(op->speed) > MIN_ACTIVE_SPEED) { switch ((int)((FABS(op->speed))*15)) { case 0: snprintf(retbuf, size, "(very slow movement)"); break; case 1: snprintf(retbuf, size, "(slow movement)"); break; case 2: snprintf(retbuf, size, "(normal movement)"); break; case 3: case 4: snprintf(retbuf, size, "(fast movement)"); break; case 5: case 6: snprintf(retbuf, size, "(very fast movement)"); break; case 7: case 8: case 9: case 10: snprintf(retbuf, size, "(extremely fast movement)"); break; default: snprintf(retbuf, size, "(lightning fast movement)"); break; } } if (QUERY_FLAG(op, FLAG_UNDEAD)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(undead)"); if (QUERY_FLAG(op, FLAG_SEE_INVISIBLE)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(see invisible)"); if (QUERY_FLAG(op, FLAG_USE_WEAPON)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(wield weapon)"); if (QUERY_FLAG(op, FLAG_USE_BOW)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(archer)"); if (QUERY_FLAG(op, FLAG_USE_ARMOUR)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(wear armour)"); if (QUERY_FLAG(op, FLAG_USE_RING)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(wear ring)"); if (QUERY_FLAG(op, FLAG_USE_SCROLL)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(read scroll)"); if (QUERY_FLAG(op, FLAG_USE_RANGE)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(fires wand/rod/horn)"); if (QUERY_FLAG(op, FLAG_CAN_USE_SKILL)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(skill user)"); if (QUERY_FLAG(op, FLAG_CAST_SPELL)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(spellcaster)"); if (QUERY_FLAG(op, FLAG_FRIENDLY)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(friendly)"); if (QUERY_FLAG(op, FLAG_UNAGGRESSIVE)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(unaggressive)"); if (QUERY_FLAG(op, FLAG_HITBACK)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(hitback)"); if (QUERY_FLAG(op, FLAG_STEALTH)) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(stealthy)"); if (op->randomitems != NULL) { treasure *t; int first = 1; for (t = op->randomitems->items; t != NULL; t = t->next) if (t->item && (t->item->clone.type == SPELL)) { if (first) { first = 0; snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(Spell abilities:)"); } snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(%s)", t->item->clone.name); } } if (op->type == PLAYER) { if (op->contr->digestion) { if (op->contr->digestion != 0) snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(sustenance%+d)", op->contr->digestion); } if (op->contr->gen_grace) { snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(grace%+d)", op->contr->gen_grace); } if (op->contr->gen_sp) { snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(magic%+d)", op->contr->gen_sp); } if (op->contr->gen_hp) { snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(regeneration%+d)", op->contr->gen_hp); } if (op->stats.luck) { snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(luck%+d)", op->stats.luck); } } /* describe attacktypes */ len = strlen(retbuf); if (is_dragon_pl(op)) { /* for dragon players display the attacktypes from clawing skill * Break apart the for loop - move the comparison checking down - * this makes it more readable. */ object *tmp; tmp = object_find_by_type_and_name(op, SKILL, "clawing"); if (tmp && tmp->attacktype != 0) { DESCRIBE_ABILITY_SAFE(retbuf, tmp->attacktype, "Claws", &len, size); } else { DESCRIBE_ABILITY_SAFE(retbuf, op->attacktype, "Attacks", &len, size); } } else { DESCRIBE_ABILITY_SAFE(retbuf, op->attacktype, "Attacks", &len, size); } DESCRIBE_PATH_SAFE(retbuf, op->path_attuned, "Attuned", &len, size); DESCRIBE_PATH_SAFE(retbuf, op->path_repelled, "Repelled", &len, size); DESCRIBE_PATH_SAFE(retbuf, op->path_denied, "Denied", &len, size); for (i = 0; i < NROFATTACKS; i++) { if (op->resist[i]) { snprintf(retbuf+strlen(retbuf), size-strlen(retbuf), "(%s %+d)", resist_plus[i], op->resist[i]); } } } START_TEST(test_describe_monster_rewrite) { char buf[HUGE_BUF], *compat, *final; archetype *arch; object *ob; player pl; memset(&pl, 0, sizeof(pl)); for (arch = first_archetype; arch; arch = arch->next) { if (!QUERY_FLAG(&arch->clone, FLAG_MONSTER) && arch->clone.type != PLAYER) continue; ob = object_create_arch(arch); ob->contr = &pl; old_describe_monster(ob, buf, sizeof(buf)); compat = stringbuffer_finish(describe_item(ob, NULL, NULL)); fail_unless(strcmp(buf, compat) == 0, "(compat) description change:\n%s\n === vs ===\n%s", buf, compat); free(compat); final = stringbuffer_finish(describe_monster(ob, NULL)); fail_unless(strcmp(buf, final) == 0, "description change: \"%s\" vs \"%s\"", buf, final); free(final); object_free2(ob, FREE_OBJ_NO_DESTROY_CALLBACK | FREE_OBJ_FREE_INVENTORY); } } END_TEST static Suite *item_suite(void) { Suite *s = suite_create("item"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_describe_item); tcase_add_test(tc_core, test_describe_monster_rewrite); return s; } int main(void) { #ifndef __GLIBC__ /* This test makes calls into the common library, and that * library makes calls to the random function. But the random function * in different libraries return different results - GLIBC seems * consistent - so far - but even that could change. But if GLIBC * is not being used, almost certain in that case that the random * numbers returned are different. */ printf("Skipping item test - need glibc to get same results to check against\n"); return EXIT_SUCCESS; #else int nf; Suite *s = item_suite(); SRunner *sr = srunner_create(s); /* to debug, uncomment this line */ srunner_set_fork_status(sr, CK_NOFORK); srunner_set_xml(sr, LOGDIR "/unit/common/item.xml"); srunner_set_log(sr, LOGDIR "/unit/common/item.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; #endif } ��������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_shstr.c�����������������������������������������������������0000644�0000145�0000012�00000015736�11731300515�016404� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_shstr_c = * "$Id: check_shstr.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/shstr.c */ #include <stdlib.h> #include <string.h> #include <check.h> #include "global.h" /* extern const char *add_string(const char *str); extern const char *add_refcount(const char *str); extern int query_refcount(const char *str); extern const char *find_string(const char *str); extern void free_string(const char *str); extern int buf_overflow(const char *buf1, const char *buf2, int bufsize); */ static void setup(void) { init_hash_table(); } static void teardown(void) { /* nothing to do */ } START_TEST(test_add_string) { const char *str1; const char *str2; const char *str3; char *temp; #ifndef MANY_CORES fail_unless(add_string(NULL) == NULL, "add_string should null when receiving a null as parameter."); #endif str1 = add_string("Hello world"); fail_unless(str1 != NULL, "add_string should not return null when receiving content."); temp = malloc(strlen(str1)+1); strcpy(temp, str1); str2 = add_string(temp); fail_unless(str2 == str1, "add_string should return same pointer for 2 same strings but str1 (%p -> '%s') != str2 (%p -> '%s').", str1, str1, str2, str2); str3 = add_string(""); fail_unless(str3 != NULL, "add_string should handle gracefully empty non null strings."); free(temp); } END_TEST START_TEST(test_add_refcount) { const char *str1; const char *str2; str1 = add_string("Crossfire Rulez"); str2 = add_refcount(str1); fail_unless(str1 == str2, "result of add_refcount (%p) should be the same as original pointer (%p).", str2, str1); fail_unless(query_refcount(str1) == 2, "add_refcount (%p) should have made refcount to value 2 but was %d", str1, query_refcount(str1)); } END_TEST START_TEST(test_query_refcount) { const char *str1; str1 = add_string("Hello World"); fail_unless(query_refcount(str1) == 1, "After add_string, query_refcount should return 1 but returned %d(0x%X) for %s", query_refcount(str1), query_refcount(str1), str1); add_string("Hello World"); fail_unless(query_refcount(str1) == 2, "After twice add_string with same string, query_refcount should return 2 but returned %d(0x%X) for %s", query_refcount(str1), query_refcount(str1), str1); add_refcount(str1); fail_unless(query_refcount(str1) == 3, "After call to add_refcount, query_refcount should now return 3 but returned %d(0x%X) for %s", query_refcount(str1), query_refcount(str1), str1); } END_TEST START_TEST(test_find_string) { const char *str1; const char *str2; const char *result; str1 = add_string("Hello world"); str2 = add_string("Bonjour le monde"); result = find_string("Hello world"); fail_unless(str1 == result, "find_string for %s should return %p but returned %p(%s).", str1, str1, result, result); result = find_string("Bonjour le monde"); fail_unless(str2 == result, "find_string for %s should return %p but returned %p(%s).", str2, str2, result, result); result = find_string("Hola mundo"); fail_unless(result == NULL, "Searching for an inexistant string should return NULL but returned %p(%s)", result, result); str1 = add_string(""); result = find_string(""); fail_unless(result == str1, "Search for empty string should return it(%p), but returned %p", str1, result); free_string(str2); result = find_string("Bonjour le monde"); fail_unless(result == NULL, "add_string + free_string should mean i can't find the string anymore but find string returned %p(%s)", result, result); } END_TEST START_TEST(test_free_string) { const char *str1; const char *str2; str1 = add_string("Cr0ssf1r3 r|_|1z"); free_string(str1); str2 = find_string("Cr0ssf1r3 r|_|1z"); fail_unless(str2 == NULL, "find_String should return null after a free_string but it returned %p (%s)", str2, str2); str1 = add_string("bleh"); add_string("bleh"); free_string(str1); str2 = find_string("bleh"); fail_unless(str2 == str1, "find_string should return the string(%p) after a add_string, add_string, free_string but returned %p", str1, str2); free_string(str1); str2 = find_string("bleh"); fail_unless(str2 == NULL, "find_string should return null after add_string, add_string, free_string, free_string but returned %p", str2); } END_TEST START_TEST(test_buf_overflow) { int i; i = buf_overflow("1", "22", 3); fail_unless(i, "'1' +'22' can't fit in a 3 char buffer but buf_overflow told us there won't be any overflow"); i = buf_overflow("1", NULL, 1); fail_unless(i, "'1' +NULL can't fit in a 1 char buffer but buf_overflow told us there won't be any overflow"); i = buf_overflow("1", NULL, 2); fail_unless(!i, "'1' +NULL can fit in a 2 char buffer but buf_overflow told us it won't"); i = buf_overflow("", NULL, 1); fail_unless(!i, "EMPTY +NULL can fit in a 1 char buffer but buf_overflow told us it won't"); i = buf_overflow("", NULL, 0); fail_unless(i, "EMPTY +NULL can't fit in a 0 char buffer but buf_overflow told us there won't be any overflow"); } END_TEST static Suite *shstr_suite(void) { Suite *s = suite_create("shstr"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_add_string); tcase_add_test(tc_core, test_add_refcount); tcase_add_test(tc_core, test_query_refcount); tcase_add_test(tc_core, test_find_string); tcase_add_test(tc_core, test_free_string); tcase_add_test(tc_core, test_buf_overflow); return s; } int main(void) { int nf; Suite *s = shstr_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/common/shstr.xml"); srunner_set_log(sr, LOGDIR "/unit/common/shstr.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ����������������������������������crossfire-1.70.0/test/unit/common/check_arch.c������������������������������������������������������0000644�0000145�0000012�00000041051�11731300515�016143� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_arch_c = * "$Id: check_arch.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/arch.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> static void setup(void) { cctk_setdatadir(BUILD_ROOT"lib"); cctk_setlog(LOGDIR"/unit/common/arch.out"); cctk_init_std_archetypes(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_find_archetype_by_object_name) { archetype *arch; arch = find_archetype_by_object_name("large city"); fail_unless(arch != NULL, "Searching for an existing arch name (large city) should work"); fail_unless(!strcmp(arch->clone.name, "large city"), "Searching for an existing arch name shoud have returned us large city but returned %s", arch->clone.name); arch = find_archetype_by_object_name("Cloak of Magic Resistance"); fail_unless(arch != NULL, "Searching for an existing arch name (Cloak of Magic Resistance) should work"); fail_unless(!strcmp(arch->clone.name, "Cloak of Magic Resistance"), "Searching for an existing arch name shoud have returned us Cloak of Magic Resistance but returned %s", arch->clone.name); arch = find_archetype_by_object_name("Cloak of Magic Resistanc"); fail_unless(arch == NULL, "Searching for an inexistant arch name (Cloak of Magic Resistanc) should return NULL"); arch = find_archetype_by_object_name("some really non existant archetype"); fail_unless(arch == NULL, "Searching for an inexistant arch name (some really non existant archetype) should return NULL"); arch = find_archetype_by_object_name(""); fail_unless(arch == NULL, "Searching for empty arch name should return NULL"); arch = find_archetype_by_object_name(NULL); fail_unless(arch == NULL, "Searching for NULL arch name should return NULL"); } END_TEST START_TEST(test_find_archetype_by_object_type_name) { archetype *arch; arch = find_archetype_by_object_type_name(66, "large city"); fail_unless(arch != NULL, "Searching for an existing arch name (large city) + type (66) should work"); fail_unless(arch->clone.type == 66, "Requested type 66 but got %d", arch->clone.type); fail_unless(!strcmp(arch->clone.name, "large city"), "Searching for an existing arch name shoud have returned us large city but returned %s", arch->clone.name); arch = find_archetype_by_object_type_name(87, "Cloak of Magic Resistance"); fail_unless(arch != NULL, "Searching for an existing arch name (Cloak of Magic Resistance) + type (87) should work"); fail_unless(arch->clone.type == 87, "Requested type 87 but got %d", arch->clone.type); fail_unless(!strcmp(arch->clone.name, "Cloak of Magic Resistance"), "Searching for an existing arch name shoud have returned us Cloak of Magic Resistance but returned %s", arch->clone.name); arch = find_archetype_by_object_type_name(87, "Cloak of Magic Resistanc"); fail_unless(arch == NULL, "Searching for an inexistant arch name (Cloak of Magic Resistanc) should return NULL"); arch = find_archetype_by_object_type_name(88, "Cloak of Magic Resistance"); fail_unless(arch == NULL, "Searching for an existing arch name (Cloak of Magic Resistance) but with wrong type (88) should return NULL"); } END_TEST START_TEST(test_get_archetype_by_skill_name) { archetype *arch; arch = get_archetype_by_skill_name("alchemy", SKILL); fail_unless(arch != NULL, "Should be able to discover the alchemy skill"); fail_unless(!strcmp(arch->name, "skill_alchemy"), "should have returned skill_alchemy but returned %s", arch->name); arch = get_archetype_by_skill_name("alchemy", SKILLSCROLL); fail_unless(arch != NULL, "Should be able to discover the scroll of alchemy skill or something similar"); arch = get_archetype_by_skill_name("one handed weapons", -1); fail_unless(arch != NULL, "Should be able to discover something related to the 'one handed weapons' skill"); arch = get_archetype_by_skill_name(NULL, -1); fail_unless(arch == NULL, "Asking for null skill should return null"); } END_TEST START_TEST(test_get_archetype_by_type_subtype) { archetype *arch; arch = get_archetype_by_type_subtype(SKILL, SK_LITERACY); fail_unless(arch != NULL, "Should be able to find an arch of type SKILL, subtype SK_LITERACY"); fail_unless(arch->clone.type == SKILL, "Arch of type SKILL, subtype SK_LITERACY shoud have type %d but has type %d", SKILL, arch->clone.type); fail_unless(arch->clone.subtype == SK_LITERACY, "Arch of type SKILL, subtype SK_LITERACY shoud have subtype %d but has subtype %d", SK_LITERACY, arch->clone.subtype); fail_unless(arch != NULL, "Should be able to find an arch of type quest, subtype SK_LITERACY"); arch = get_archetype_by_type_subtype(SKILL, -1); fail_unless(arch != NULL, "Should be able to find an arch of type SKILL, no subtype"); fail_unless(arch->clone.type == SKILL, "arch of type SKILL, no subtype should have type %d but has %d", SKILL, arch->clone.type); arch = get_archetype_by_type_subtype(-1, SK_LITERACY); fail_unless(arch != NULL, "Should be able to find an arch of type unknown, SK_LITERACY"); fail_unless(arch->clone.subtype == SK_LITERACY, "arch of type unknown, subtype quest in progress shoud have subtype %d but has subtype %d", SK_LITERACY, arch->clone.subtype); arch = get_archetype_by_type_subtype(-1, -1); fail_unless(arch != NULL, "Should be able to find arch of type unknown, subtype unknown, despite this being useless"); arch = get_archetype_by_type_subtype(OBJECT_TYPE_MAX+1, -1); if (arch != NULL) fail("Should be not able to find arch of inexistant type but got %p (%s)", arch, arch->name); } END_TEST START_TEST(test_create_archetype_by_object_name) { object *ob; ob = create_archetype_by_object_name("writing pen"); fail_unless(ob != NULL, "Should never return null"); fail_unless(strncmp(ob->name, ARCH_SINGULARITY, strlen(ARCH_SINGULARITY)), "Searching for writing pen should NOT have returned a singularity"); fail_unless(!strncmp(ob->name, "writing pen", strlen(ob->name)), "Searching for writing pen should have returned something with same base name but returned '%s'", ob->name); ob = create_archetype_by_object_name("writing pen of hell raiser +3"); fail_unless(ob != NULL, "Should never return null"); fail_unless(strncmp(ob->name, ARCH_SINGULARITY, strlen(ARCH_SINGULARITY)), "Searching for writing pen of hell raiser +3 should NOT have returned a singularity"); fail_unless(!strncmp(ob->name, "writing pen of hell raiser +3", strlen(ob->name)), "Searching for writing pen of hell raiser +3 should have returned something with same base name but returned %s", ob->name); ob = create_archetype_by_object_name("%*"); fail_unless(ob != NULL, "Inexistent item shuold return a singularity"); fail_unless(!strncmp(ob->name, ARCH_SINGULARITY, strlen(ARCH_SINGULARITY)), "Searching for %* should have returned a singularity"); ob = create_archetype_by_object_name(""); fail_unless(ob != NULL, "Inexistent item shuold return a singularity"); fail_unless(!strncmp(ob->name, ARCH_SINGULARITY, strlen(ARCH_SINGULARITY)), "Searching for \"\" should have returned a singularity"); } END_TEST START_TEST(test_init_archetypes) { /*init_archetypes is used by setup, just check it created the empty_archetype*/ archetype *arch = find_archetype("empty_archetype"); fail_unless(arch != NULL, "init_archetype should have an 'empty_archetype' loaded"); } END_TEST START_TEST(test_clear_archetable) { clear_archetable(); /*should just not fail :p*/ } END_TEST START_TEST(test_free_all_archs) { archetype *arch; free_all_archs(); arch = find_archetype("empty_archetype"); fail_unless(arch == NULL, "init_archetype should not have an 'empty_archetype' loaded after call to free_all_archs"); init_archetypes(); arch = find_archetype("empty_archetype"); fail_unless(arch != NULL, "init_archetype should have an 'empty_archetype' loaded"); } END_TEST START_TEST(test_get_archetype_struct) { archetype *arch = get_archetype_struct(); fail_unless(arch != NULL, "get_archetype_struct should not return NULL"); fail_unless(arch->name == NULL, "arch->name of get_archetype_struct should be inited to NULL"); fail_unless(arch->head == NULL, "arch->head of get_archetype_struct should be inited to NULL"); fail_unless(arch->next == NULL, "arch->next of get_archetype_struct should be inited to NULL"); fail_unless(arch->more == NULL, "arch->more of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.other_arch == NULL, "arch->clone.other_arch of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.contr == NULL, "arch->clone.contr of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.next == NULL, "arch->clone.next of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.prev == NULL, "arch->clone.prev of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.active_next == NULL, "arch->clone.active_next of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.active_prev == NULL, "arch->clone.active_prev of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.below == NULL, "arch->clone.below of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.above == NULL, "arch->clone.above of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.inv == NULL, "arch->clone.inv of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.container == NULL, "arch->clone.container of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.env == NULL, "arch->clone.env of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.more == NULL, "arch->clone.more of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.head == NULL, "arch->clone.head of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.map == NULL, "arch->clone.map of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.name == NULL, "arch->clone.name of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.name_pl == NULL, "arch->clone.name_pl of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.title == NULL, "arch->clone.title of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.race == NULL, "arch->clone.race of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.slaying == NULL, "arch->clone.slaying of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.msg == NULL, "arch->clone.msg of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.skill == NULL, "arch->clone.skill of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.lore == NULL, "arch->clone.lore of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.current_weapon == NULL, "arch->clone.current_weapon of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.enemy == NULL, "arch->clone.enemy of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.attacked_by == NULL, "arch->clone.attacked_by of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.randomitems == NULL, "arch->clone.randomitems of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.chosen_skill == NULL, "arch->clone.chosen_skill of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.spellitem == NULL, "arch->clone.spellitem of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.spell == NULL, "arch->clone.spell of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.spellarg == NULL, "arch->clone.spellarg of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.arch == arch, "arch->clone.arch of get_archetype_struct should be inited to arch"); fail_unless(arch->clone.other_arch == NULL, "arch->clone.other_arch of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.custom_name == NULL, "arch->clone.custom_name of get_archetype_struct should be inited to NULL"); fail_unless(arch->clone.key_values == NULL, "arch->clone.key_values of get_archetype_struct should be inited to NULL"); } END_TEST START_TEST(test_arch_to_object) { archetype *arch; object *obj; arch = find_archetype("empty_archetype"); obj = arch_to_object(arch); fail_unless(obj != NULL, "instanciating an arch should not return null"); } END_TEST START_TEST(test_create_singularity) { object *obj; obj = create_singularity("XYZABCD"); fail_unless(obj != NULL, "create_singularity should not return null"); fail_unless(strstr(obj->name, "XYZABCD") != NULL, "create_singularity(\"XYZABCD\") should put XYZABCD somewhere in singularity name"); } END_TEST START_TEST(test_create_archetype) { object *obj; obj = create_archetype("empty_archetype"); fail_unless(obj != NULL, "create_archetype(\"empty_archetype\") should not return null"); } END_TEST START_TEST(test_find_archetype) { archetype *arch; arch = find_archetype("empty_archetype"); fail_unless(arch != NULL, "find_archetype(\"empty_archetype\") should not return null"); arch = find_archetype("elvenboots"); fail_unless(arch != NULL, "find_archetype(\"elvenboots\") should not return null"); arch = find_archetype("AA1234567890"); fail_unless(arch == NULL, "find_archetype(\"AA1234567890\") should return null"); } END_TEST START_TEST(test_object_create_arch) { archetype *arch; object *obj; arch = find_archetype("dark_palace_4"); obj = object_create_arch(arch); fail_unless(obj != NULL, "Should be able to fully instanciate the dark_palace"); fail_unless(obj->head == NULL, "The object is full, so we should have got it's head. So head should be null but was %p for object %p", obj->head, obj); fail_unless(obj->more != NULL, "The object is full and multisquare, so more should not return null"); } END_TEST static Suite *arch_suite(void) { Suite *s = suite_create("arch"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_find_archetype_by_object_name); tcase_add_test(tc_core, test_find_archetype_by_object_type_name); tcase_add_test(tc_core, test_get_archetype_by_skill_name); tcase_add_test(tc_core, test_get_archetype_by_type_subtype); tcase_add_test(tc_core, test_create_archetype_by_object_name); tcase_add_test(tc_core, test_init_archetypes); tcase_add_test(tc_core, test_clear_archetable); tcase_add_test(tc_core, test_free_all_archs); tcase_add_test(tc_core, test_get_archetype_struct); tcase_add_test(tc_core, test_arch_to_object); tcase_add_test(tc_core, test_create_singularity); tcase_add_test(tc_core, test_create_archetype); tcase_add_test(tc_core, test_find_archetype); tcase_add_test(tc_core, test_object_create_arch); return s; } int main(void) { int nf; Suite *s = arch_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/common/arch.xml"); srunner_set_log(sr, LOGDIR "/unit/common/arch.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_time.c������������������������������������������������������0000644�0000145�0000012�00000007052�11731300515�016167� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_time_c = * "$Id: check_time.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/time.c */ #include <stdlib.h> #include <check.h> #include <global.h> #include <libproto.h> #include "tod.h" static void setup(void) { reset_sleep(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } START_TEST(test_get_month_name) { fail_unless(get_month_name(-1) == NULL, "getting month name for negative value should bring a NULL"); fail_unless(get_month_name(MONTHS_PER_YEAR) == NULL, "getting month name for too high value should bring a NULL"); fail_unless(get_month_name(0) != NULL, "getting month name for correct value should bring a non NULL season name"); } END_TEST START_TEST(test_get_weekday) { fail_unless(get_weekday(-1) == NULL, "getting week day name for negative value should bring a NULL"); fail_unless(get_weekday(DAYS_PER_WEEK) == NULL, "getting weekday name for too high value should bring a NULL"); fail_unless(get_weekday(0) != NULL, "getting weekday name for correct value should bring a non NULL season name"); } END_TEST START_TEST(test_get_season_name) { fail_unless(get_season_name(-1) == NULL, "getting season name for negative value should bring a NULL"); fail_unless(get_season_name(SEASONS_PER_YEAR+2) == NULL, "getting season name for too high value should bring a NULL"); fail_unless(get_season_name(SEASONS_PER_YEAR) != NULL, "getting season name for limit value should bring a '\\n'"); fail_unless(strcmp(get_season_name(SEASONS_PER_YEAR), "\n") == 0, "getting season name for limit value should bring a '\n'"); fail_unless(get_season_name(0) != NULL, "getting season name for correct value should bring a non NULL season name"); } END_TEST static Suite *time_suite(void) { Suite *s = suite_create("time"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_get_month_name); tcase_add_test(tc_core, test_get_season_name); tcase_add_test(tc_core, test_get_weekday); return s; } int main(void) { int nf; Suite *s = time_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/common/time.xml"); srunner_set_log(sr, LOGDIR "/unit/common/time.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/stubs_common.c����������������������������������������������������0000644�0000145�0000012�00000002603�11731300515�016601� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** * Those are dummy functions defined to resolve all symboles. * Added as part of glue cleaning. * Ryo 2005-07-15 **/ #include <global.h> #include <sproto.h> void apply_auto_fix(mapstruct *m) { } void draw_ext_info(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *txt) { fprintf(logfile, "%s\n", txt); } void draw_ext_info_format(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *format, ...) { va_list ap; va_start(ap, format); vfprintf(logfile, format, ap); va_end(ap); } void ext_info_map(int color, const mapstruct *map, uint8 type, uint8 subtype, const char *str1) { fprintf(logfile, "ext_info_map: %s\n", str1); } void move_firewall(object *ob) { } void emergency_save(int x) { } void clean_tmp_files(void) { } void esrv_send_item(object *ob, object *obx) { } void esrv_update_item(int flags, object *pl, object *op) { } void dragon_ability_gain(object *ob, int x, int y) { } void set_darkness_map(mapstruct *m) { } object *find_skill_by_number(object *who, int skillno) { return NULL; } void esrv_del_item(player *pl, object *ob) { } void esrv_update_spells(player *pl) { } void rod_adjust(object *rod) { } int execute_event(object *op, int eventcode, object *activator, object *third, const char *message, int fix) { return 0; } int execute_global_event(int eventcode, ...) { return 0; } �����������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_utils.c�����������������������������������������������������0000644�0000145�0000012�00000012156�11731300515�016372� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_utils_c = * "$Id: check_utils.c 15993 2011-12-01 19:34:01Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/utils.c */ #include <check.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include "global.h" static void setup(void) { /* put any initialisation steps here, they will be run before each testcase */ } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } static void check_split_string(const char *str, size_t array_size, ...) { char tmp[256]; char *array[64]; size_t result; size_t i; va_list arg; snprintf(tmp, sizeof(tmp), "%s", str); for(i = 0; i < sizeof(array)/sizeof(*array); i++) array[i] = NULL; result = split_string(tmp, array, array_size, ':'); fail_if(result > array_size, "result == %zu > %zu == array_size", result, array_size); va_start(arg, array_size); for(i = 0; i < sizeof(array)/sizeof(*array); i++) { const char *expected_result; expected_result = va_arg(arg, const char *); if (expected_result == NULL) break; if (i >= array_size) fail("internal error: too many arguments passed to check_split_string()"); if (i < result) fail_if(strcmp(array[i], expected_result) != 0, "strcmp(array[%zu] == %s, %s) != 0", i, array[i], expected_result); else fail_if(array[i] != NULL, "array[%zu] == NULL", i); } va_end(arg); fail_if(result != i, "%zu != %zu", result, i); } START_TEST(test_split_string) { check_split_string("", 0, NULL); check_split_string("", 5, "", NULL); check_split_string(":", 5, "", "", NULL); check_split_string("::", 5, "", "", "", NULL); check_split_string("abc:def:ghi", 0, NULL); check_split_string("abc:def:ghi", 1, "abc:def:ghi", NULL); check_split_string("abc:def:ghi", 2, "abc", "def:ghi", NULL); check_split_string("abc:def:ghi", 3, "abc", "def", "ghi", NULL); check_split_string("abc:def:ghi", 4, "abc", "def", "ghi", NULL); check_split_string("::abc::def::", 0, NULL); check_split_string("::abc::def::", 1, "::abc::def::", NULL); check_split_string("::abc::def::", 2, "", ":abc::def::", NULL); check_split_string("::abc::def::", 3, "", "", "abc::def::", NULL); check_split_string("::abc::def::", 4, "", "", "abc", ":def::", NULL); check_split_string("::abc::def::", 5, "", "", "abc", "", "def::", NULL); check_split_string("::abc::def::", 6, "", "", "abc", "", "def", ":", NULL); check_split_string("::abc::def::", 7, "", "", "abc", "", "def", "", "", NULL); check_split_string("::abc::def::", 8, "", "", "abc", "", "def", "", "", NULL); } END_TEST START_TEST(test_replace) { char init[MAX_BUF], replaced[MAX_BUF]; snprintf(init, sizeof(init), "first test"); replace(init, "first", "other", replaced, sizeof(replaced)); fail_if(strcmp(replaced, "other test") != 0, "%s != other test", replaced); snprintf(init, sizeof(init), "second test"); replace(init, "e", "a", replaced, sizeof(replaced)); fail_if(strcmp(replaced, "sacond tast") != 0, "%s != sacond tast", replaced); /* corner case for length */ snprintf(init, sizeof(init), "long test"); replace(init, "long", "really long", replaced, strlen(init) + 1); fail_if(strcmp(replaced, "really lo") != 0, "%s != really lo", replaced); } END_TEST static Suite *utils_suite(void) { Suite *s = suite_create("utils"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_split_string); tcase_add_test(tc_core, test_replace); return s; } int main(void) { int nf; Suite *s = utils_suite(); SRunner *sr = srunner_create(s); srunner_set_fork_status(sr, CK_NOFORK); srunner_set_xml(sr, LOGDIR "/unit/common/utils.xml"); srunner_set_log(sr, LOGDIR "/unit/common/utils.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_path.c������������������������������������������������������0000644�0000145�0000012�00000013320�11731300515�016160� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_path_c = * "$Id: check_path.c 15379 2011-11-01 19:40:45Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/path.c */ #include <stdlib.h> #include <string.h> #include <check.h> #include <global.h> #include "path.h" static void setup(void) { /* put any initialisation steps here, they will be run before each testcase */ } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } static void check_combine(const char *src, const char *dst, const char *exp) { char res[HUGE_BUF]; path_combine(src, dst, res, HUGE_BUF); fail_unless(strcmp(res, exp) == 0, "path_combine(%s, %s) = %s but should be %s", src, dst, res, exp); } static void check_normalize(const char *path, const char *exp) { char tmp[HUGE_BUF]; /* This is needed as path_normalize modifies in place. */ strncpy(tmp, path, sizeof(tmp)); tmp[HUGE_BUF-1] = '\0'; path_normalize(tmp); fail_unless(strcmp(tmp, exp) == 0, "path_normalize(%s) = %s but should be %s", path, tmp, exp); } static void check_combine_and_normalize(const char *src, const char *dst, const char *exp) { char res[HUGE_BUF]; path_combine_and_normalize(src, dst, res, sizeof(res)); fail_unless(strcmp(res, exp) == 0, "path_combine_and_normalize(%s, %s) = %s but should be %s", src, dst, res, exp); } START_TEST(test_path_combine) { check_combine("/path1/file1", "/path2/file2", "/path2/file2"); check_combine("path1/file1", "/path2/file2", "/path2/file2"); check_combine("/path1/file1", "path2/file2", "/path1/path2/file2"); check_combine("path1/file1", "path2/file2", "path1/path2/file2"); check_combine("/path1", "/path2", "/path2"); check_combine("path1", "/path2", "/path2"); check_combine("/path1", "path2", "/path2"); check_combine("path1", "path2", "path2"); } END_TEST START_TEST(test_path_normalize) { check_normalize("", ""); check_normalize("/", "/"); check_normalize("path1/file1", "path1/file1"); check_normalize("/path1/file1", "/path1/file1"); check_normalize("/path1//file1", "/path1/file1"); check_normalize("//path1/file1", "/path1/file1"); check_normalize("///////x////////y///////z////////", "/x/y/z"); check_normalize("/a/b/../c/d/../e/../../f/g/../h", "/a/f/h"); check_normalize("//a//b//..//c//d//..//e//..//..//f//g//..//h", "/a/f/h"); check_normalize("../a", "../a"); check_normalize("a/../../b", "../b"); check_normalize("/../a", "/a"); check_normalize("/a/../../b", "/b"); check_normalize("./b/./c/.d/..e/./f", "b/c/.d/..e/f"); check_normalize("/b/././././e", "/b/e"); check_normalize(".", ""); /* maybe the result should be "."? */ check_normalize("/.", "/"); check_normalize("./", ""); /* maybe the result should be "."? */ check_normalize("/a/b/..", "/a"); check_normalize("/a/b/../..", "/"); check_normalize("/a/b/../../..", "/"); check_normalize("a/b/..", "a"); check_normalize("a/b/../..", ""); check_normalize("a/b/../../..", ".."); } END_TEST START_TEST(test_path_combine_and_normalize) { check_combine_and_normalize("/path1/file1", "/path2/file2", "/path2/file2"); check_combine_and_normalize("path1/file1", "/path2/file2", "/path2/file2"); check_combine_and_normalize("/path1/file1", "path2/file2", "/path1/path2/file2"); check_combine_and_normalize("/path1", "/path2", "/path2"); check_combine_and_normalize("path1", "/path2", "/path2"); check_combine_and_normalize("/path1", "path2", "/path2"); check_combine_and_normalize("/path1/file1/../u", "path2/x/../y/z/../a/b/..", "/path1/path2/y/a"); check_combine_and_normalize("/path1/file1", "/path2//file2", "/path2/file2"); check_combine_and_normalize("/path1/file1", "/..", "/"); check_combine_and_normalize("/path1/file1", "../x", "/x"); check_combine_and_normalize("/path1/file1", "../../../x", "/x"); check_combine_and_normalize("/path1/file1", "/.x/..x/...x/x", "/.x/..x/...x/x"); } END_TEST static Suite *path_suite(void) { Suite *s = suite_create("path"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_checked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_path_combine); tcase_add_test(tc_core, test_path_normalize); tcase_add_test(tc_core, test_path_combine_and_normalize); return s; } int main(void) { int nf; Suite *s = path_suite(); SRunner *sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/common/path.xml"); srunner_set_log(sr, LOGDIR "/unit/common/path.out"); srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/unit/common/check_object.c����������������������������������������������������0000644�0000145�0000012�00000130673�11731300515�016505� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * static char *rcsid_check_object_c = * "$Id: check_object.c 16239 2011-12-20 21:39:15Z ryo_saeba $"; */ /* * CrossFire, A Multiplayer game for X-windows * * Copyright (C) 2002 Mark Wedel & Crossfire Development Team * Copyright (C) 1992 Frank Tore Johansen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * The authors can be reached via e-mail at crossfire-devel@real-time.com */ /* * This is the unit tests file for common/object.c */ #include <global.h> #include <stdlib.h> #include <check.h> #include <loader.h> #include <toolkit_common.h> #include "stringbuffer.h" static void setup(void) { cctk_setdatadir(BUILD_ROOT "lib"); cctk_setlog(LOGDIR "/unit/common/object.out"); printf("set log to %s\n", LOGDIR"/unit/common/object.out"); cctk_init_std_archetypes(); } static void teardown(void) { /* put any cleanup steps here, they will be run after each testcase */ } /* * Things to check * object_update_turn_face * object_update_speed * object_remove_from_active_list * object_update * object_free_drop_inventory * object_count_free * object_count_used * object_count_active * object_sub_weight * object_remove * object_merge * object_insert_in_map_at * object_insert_in_map * object_replace_insert_in_map * object_split * object_decrease_nrof * object_add_weight * object_insert_in_ob * object_check_move_on * map_find_by_archetype * map_find_by_type * object_present_in_ob * object_present_in_ob_by_name * arch_present_in_ob * object_set_flag_inv * object_unset_flag_inv * object_set_cheat * object_find_free_spot * object_find_first_free_spot * get_search_arr * map_find_dir * object_distance * find_dir_2 * absdir * dirdiff * can_see_monsterP * object_can_pick * object_create_clone * object_was_destroyed * object_find_by_type_subtype * object_get_key_value * object_get_value * object_set_value * object_matches_string */ /** This is the test to check the behaviour of the method * int object_can_merge(object *ob1, object *ob2); */ START_TEST(test_object_can_merge) { object *ob1; object *ob2; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); fail_unless(object_can_merge(ob1, ob2), "Should be able to merge 2 same object"); ob2->name = add_string("Not same name"); fail_unless(!object_can_merge(ob1, ob2), "Should not be able to merge 2 object with different names"); ob2 = cctk_create_game_object(NULL); ob2->type++; fail_unless(!object_can_merge(ob1, ob2), "Should not be able to merge 2 object with different types"); ob2 = cctk_create_game_object(NULL); ob1->nrof = (1UL<<31)-1; ob2->nrof = 1; fail_unless(!object_can_merge(ob1, ob2), "Should not be able to merge 2 object if result nrof goes to 1<<31 or higher"); /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * signed long object_sum_weight(object *op); */ START_TEST(test_object_sum_weight) { object *ob1; object *ob2; object *ob3; object *ob4; unsigned long sum; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); ob4 = cctk_create_game_object(NULL); ob1->weight = 10; /*This should not be taken into account by object_sum_weight*/ ob1->type = CONTAINER; ob1->stats.Str = 40; /*40% reduction of weight*/ ob2->weight = 6; ob2->nrof = 10; ob3->weight = 7; ob4->weight = 8; object_insert_in_ob(ob2, ob1); object_insert_in_ob(ob3, ob1); object_insert_in_ob(ob4, ob1); sum = object_sum_weight(ob1); fail_unless(sum == 45, "Sum of object's inventory should be 45 ((6*10+7+8)*.6) but was %lu.", sum); } END_TEST /** This is the test to check the behaviour of the method * object *object_get_env_recursive(object *op); */ START_TEST(test_object_get_env_recursive) { object *ob1; object *ob2; object *ob3; object *ob4; object *result; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); ob4 = cctk_create_game_object(NULL); object_insert_in_ob(ob2, ob1); object_insert_in_ob(ob3, ob2); object_insert_in_ob(ob4, ob3); result = object_get_env_recursive(ob4); fail_unless(result == ob1, "Getting top level container for ob4(%p) should bring ob1(%p) but brought %p.", ob4, ob1, result); } END_TEST /** This is the test to check the behaviour of the method * object *object_get_player_container(object *op); */ START_TEST(test_object_get_player_container) { object *ob1; object *ob2; object *ob3; object *ob4; object *result; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); ob4 = cctk_create_game_object(NULL); object_insert_in_ob(ob2, ob1); object_insert_in_ob(ob3, ob2); object_insert_in_ob(ob4, ob3); result = object_get_player_container(ob4); fail_unless(result == NULL, "Getting containing player for ob4(%p) should bring NULL but brought %p while not contained in a player.", ob4, result); ob1->type = PLAYER; result = object_get_player_container(ob4); fail_unless(result == ob1, "Getting containing player for ob4(%p) should bring ob1(%p) but brought %p while ob1 is player.", ob4, ob1, result); } END_TEST /** This is the test to check the behaviour of the method * void object_dump(object *op); */ START_TEST(test_object_dump) { object *ob1; object *ob2; object *ob3; StringBuffer *sb; char *result; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); object_insert_in_ob(ob2, ob1); object_insert_in_ob(ob3, ob2); sb = stringbuffer_new(); object_dump(ob1, sb); result = stringbuffer_finish(sb); fail_unless(strstr(result, "arch") != NULL, "The object dump should contain 'arch' but was %s", sb); free(result); } END_TEST /** This is the test to check the behaviour of the method * void object_dump_all(void); */ START_TEST(test_object_dump_all) { cctk_create_game_object(NULL); cctk_create_game_object(NULL); cctk_create_game_object(NULL); object_dump_all(); /*Should not crash, that all i can test*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_find_by_tag_global(tag_t i); */ START_TEST(test_object_find_by_tag_global) { object *ob1; object *result; cctk_create_game_object(NULL); cctk_create_game_object(NULL); ob1 = cctk_create_game_object(NULL); result = object_find_by_tag_global(ob1->count); fail_unless(result == ob1, "Should find ob1(%p) while search for item %d but got %p", ob1, ob1->count, result); } END_TEST /** This is the test to check the behaviour of the method * object *object_find_by_name_global(const char *str); */ START_TEST(test_object_find_by_name_global) { object *ob1; object *result; ob1 = cctk_create_game_object(NULL); ob1->name = add_string("This is a name"); ob1 = cctk_create_game_object(NULL); ob1->name = add_string("This is another name"); ob1 = cctk_create_game_object(NULL); ob1->name = add_string("This is the key name"); result = object_find_by_name_global(add_string("This is the key name")); fail_unless(result == ob1, "Searching for object with name 'This is the key name' returned %p(%s) instead of ob1(%p)", result, result ? result->name : "null", ob1); } END_TEST /** This is the test to check the behaviour of the method * void object_free_all_data(void); */ START_TEST(test_object_free_all_data) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_get_owner(object *op); */ START_TEST(test_object_get_owner) { object *ob1; object *ob2; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); object_set_owner(ob2, ob1); CLEAR_FLAG(ob1, FLAG_REMOVED); CLEAR_FLAG(ob2, FLAG_REMOVED); fail_unless(object_get_owner(ob2) == ob1, "Owner of ob2(%p) shoud be ob1(%p) but was %p", ob2, ob1, object_get_owner(ob2)); } END_TEST /** This is the test to check the behaviour of the method * void object_clear_owner(object *op); */ START_TEST(test_object_clear_owner) { object *ob1; object *ob2; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); object_set_owner(ob2, ob1); fail_unless(ob2->owner != NULL, "Prior to testing object_clear_owner, owner of ob2 was wrongly initialized"); /* XXX: use object_get_owner() */ object_clear_owner(ob2); fail_unless(ob2->owner == NULL, "After object_clear_owner ob2 still had an owner"); /* XXX: use object_get_owner() */ } END_TEST /** This is the test to check the behaviour of the method * void object_set_owner(object *op, object *owner); */ START_TEST(test_object_set_owner) { object *ob1; object *ob2; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); object_set_owner(ob2, ob1); fail_unless(ob2->owner == ob1, "After object_set_owner ob2(%p) owner should be ob1(%p) but was (%p)", ob2, ob1, ob2->owner); /* XXX: use object_get_owner() */ } END_TEST /** This is the test to check the behaviour of the method * void object_copy_owner(object *op, object *clone); */ START_TEST(test_object_copy_owner) { object *ob1; object *ob2; object *ob3; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); object_set_owner(ob2, ob1); object_copy_owner(ob3, ob2); fail_unless(object_get_owner(ob2) == object_get_owner(ob3), "After object_copy_owner, ob3 and ob2 should have same owner (ob1=%p) but got %p and %p", object_get_owner(ob3), object_get_owner(ob2)); } END_TEST /** This is the test to check the behaviour of the method * void object_reset(object *op); */ START_TEST(test_object_reset) { object *ob1; ob1 = cctk_create_game_object(NULL); object_reset(ob1); fail_unless(ob1->name == NULL, "Field name of ob1 was not NULLified by object_reset"); fail_unless(ob1->name_pl == NULL, "Field name_pl of ob1 was not NULLified by object_reset"); fail_unless(ob1->title == NULL, "Field title of ob1 was not NULLified by object_reset"); fail_unless(ob1->race == NULL, "Field race of ob1 was not NULLified by object_reset"); fail_unless(ob1->slaying == NULL, "Field slaying of ob1 was not NULLified by object_reset"); fail_unless(ob1->skill == NULL, "Field skill of ob1 was not NULLified by object_reset"); fail_unless(ob1->msg == NULL, "Field msg of ob1 was not NULLified by object_reset"); fail_unless(ob1->materialname == NULL, "Field materialname of ob1 was not NULLified by object_reset"); fail_unless(ob1->lore == NULL, "Field lore of ob1 was not NULLified by object_reset"); } END_TEST /** This is the test to check the behaviour of the method * void object_clear(object *op); */ START_TEST(test_object_clear) { object *ob1; const char *reference; ob1 = cctk_create_game_object(NULL); cctk_set_object_strings(ob1, "This is a test String"); reference = add_string("This is a test String"); object_clear(ob1); fail_unless(ob1->name == NULL, "Field name of ob1 was not cleaned by object_clear"); fail_unless(ob1->name_pl == NULL, "Field name_pl of ob1 was not cleaned by object_clear"); fail_unless(ob1->title == NULL, "Field title of ob1 was not cleaned by object_clear"); fail_unless(ob1->race == NULL, "Field race of ob1 was not cleaned by object_clear"); fail_unless(ob1->slaying == NULL, "Field slaying of ob1 was not cleaned by object_clear"); fail_unless(ob1->skill == NULL, "Field skill of ob1 was not cleaned by object_clear"); fail_unless(ob1->msg == NULL, "Field msg of ob1 was not cleaned by object_clear"); fail_unless(ob1->materialname == NULL, "Field materialname of ob1 was not cleaned by object_clear"); fail_unless(ob1->lore == NULL, "Field lore of ob1 was not cleaned by object_clear"); fail_unless(query_refcount(reference) == 1, "The number of references to string should drop back to 1 but was %d", query_refcount(reference)); } END_TEST /** This is the test to check the behaviour of the method * void object_copy(object *op2, object *op); */ START_TEST(test_object_copy) { object *ob1; object *ob2; const char *reference; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); cctk_set_object_strings(ob1, "test String1"); cctk_set_object_strings(ob2, "test String2"); reference = add_string("test String2"); object_copy(ob1, ob2); fail_unless(ob1->name == ob2->name, "Field name of ob1 should match ob2"); fail_unless(ob1->name_pl == ob2->name_pl, "Field name_pl of ob1 should match ob2"); fail_unless(ob1->title == ob2->title, "Field title of ob1 should match ob2"); fail_unless(ob1->race == ob2->race, "Field race of ob1 should match ob2"); fail_unless(ob1->slaying == ob2->slaying, "Field slaying of ob1 should match ob2"); fail_unless(ob1->skill == ob2->skill, "Field skill of ob1 should match ob2"); fail_unless(ob1->msg == ob2->msg, "Field msg of ob1 should match ob2"); fail_unless(ob1->materialname == ob2->materialname, "Field materialname of ob1 should match ob2"); fail_unless(ob1->lore == ob2->lore, "Field lore of ob1 should match ob2"); fail_unless(query_refcount(reference) == 1, "refcount of marker string is not dropped to 1 after copy object, some string field were not cleaned. refcount: %d", query_refcount(reference)); } END_TEST /** * This is the test to check the behaviour of the method * object *object_new(void); */ START_TEST(test_object_new) { object *ob; long int i; ob = object_new(); fail_unless(ob != NULL, "Should get an object after calling object_new()"); fail_unless(ob->name == NULL, "Field name has not been nullified by object_new()"); fail_unless(ob->name_pl == NULL, "Field name_pl has not been nullified by object_new()"); fail_unless(ob->title == NULL, "Field title has not been nullified by object_new()"); fail_unless(ob->race == NULL, "Field race has not been nullified by object_new()"); fail_unless(ob->slaying == NULL, "Field slaying has not been nullified by object_new()"); fail_unless(ob->skill == NULL, "Field skill has not been nullified by object_new()"); fail_unless(ob->lore == NULL, "Field lore has not been nullified by object_new()"); fail_unless(ob->msg == NULL, "Field msg has not been nullified by object_new()"); fail_unless(ob->materialname == NULL, "Field materialname has not been nullified by object_new()"); fail_unless(ob->prev == NULL, "Field prev has not been nullified by object_new()"); fail_unless(ob->active_next == NULL, "Field active_next has not been nullified by object_new()"); fail_unless(ob->active_prev == NULL, "Field active_prev has not been nullified by object_new()"); /* did you really thing i'll go with only one object? */ /* let's go for about 2M allocations in a row, let's test roughness */ for (i = 0; i < 1L<<17; i++) { ob = object_new(); fail_unless(ob != NULL, "Should get an object after calling object_new() (iteration %l)", i); if (!(i&((1<<13)-1))) LOG(llevDebug, "%ldk items created with object_new\n", i>>10); } } END_TEST /** This is the test to check the behaviour of the method * void object_update_turn_face(object *op); */ START_TEST(test_object_update_turn_face) { object *ob1; const New_Face *face1; const New_Face *face2; ob1 = cctk_create_game_object("arrow"); ob1->direction = 1; object_update_turn_face(ob1); face1 = ob1->face; ob1->direction = 0; object_update_turn_face(ob1); face2 = ob1->face; fail_unless(face2 != face1, "2 opposite direction should provide different faces after object_update_turn_face"); } END_TEST #define IS_OBJECT_ACTIVE(op) (op->active_next || op->active_prev || op == active_objects) /** This is the test to check the behaviour of the method * void object_update_speed(object *op); */ START_TEST(test_object_update_speed) { object *ob1; object *ob2; object *ob3; object *ob4; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); ob4 = cctk_create_game_object(NULL); ob1->speed = MIN_ACTIVE_SPEED; object_update_speed(ob1); fail_unless(!IS_OBJECT_ACTIVE(ob1), "Object with absolute speed <=MIN_ACTIVE_SPEED(%f) should not be made active (speed=%f)", MIN_ACTIVE_SPEED, ob1->speed); ob1->speed = -MIN_ACTIVE_SPEED; object_update_speed(ob1); fail_unless(!IS_OBJECT_ACTIVE(ob1), "Object with absolute speed <=MIN_ACTIVE_SPEED(%f) should not be made active (speed=%f)", MIN_ACTIVE_SPEED, ob1->speed); ob1->speed = MIN_ACTIVE_SPEED*2; object_update_speed(ob1); fail_unless(IS_OBJECT_ACTIVE(ob1), "Object with absolute speed >MIN_ACTIVE_SPEED(%f) should be made active (speed=%f)", MIN_ACTIVE_SPEED, ob1->speed); ob2->speed = -MIN_ACTIVE_SPEED*2; object_update_speed(ob2); fail_unless(IS_OBJECT_ACTIVE(ob2), "Object with absolute speed >MIN_ACTIVE_SPEED(%f) should be made active (speed=%f)", MIN_ACTIVE_SPEED, ob2->speed); ob4->speed = ob3->speed = ob2->speed; object_update_speed(ob3); object_update_speed(ob4); fail_unless(IS_OBJECT_ACTIVE(ob3), "Object with absolute speed >MIN_ACTIVE_SPEED(%f) should be made active (speed=%f)", MIN_ACTIVE_SPEED, ob3->speed); fail_unless(IS_OBJECT_ACTIVE(ob4), "Object with absolute speed >MIN_ACTIVE_SPEED(%f) should be made active (speed=%f)", MIN_ACTIVE_SPEED, ob4->speed); ob1->speed = 0.0; ob2->speed = 0.0; ob3->speed = 0.0; ob4->speed = 0.0; object_update_speed(ob1); object_update_speed(ob2); object_update_speed(ob3); object_update_speed(ob4); fail_unless(!IS_OBJECT_ACTIVE(ob1), "Object with absolute speed 0.0 should be inactivated", ob1->speed); fail_unless(!IS_OBJECT_ACTIVE(ob2), "Object with absolute speed 0.0 should be inactivated", ob2->speed); fail_unless(!IS_OBJECT_ACTIVE(ob3), "Object with absolute speed 0.0 should be inactivated", ob3->speed); fail_unless(!IS_OBJECT_ACTIVE(ob4), "Object with absolute speed 0.0 should be inactivated", ob4->speed); } END_TEST /** This is the test to check the behaviour of the method * void object_remove_from_active_list(object *op); */ START_TEST(test_object_remove_from_active_list) { object *ob1; ob1 = cctk_create_game_object(NULL); ob1->speed = MIN_ACTIVE_SPEED*2; object_update_speed(ob1); fail_unless(IS_OBJECT_ACTIVE(ob1), "Object with absolute speed >MIN_ACTIVE_SPEED(%f) should be made active (speed=%f)", MIN_ACTIVE_SPEED, ob1->speed); object_remove_from_active_list(ob1); fail_unless(!IS_OBJECT_ACTIVE(ob1), "After call to object_remove_from_active_list, object should be made inactive"); } END_TEST #undef IS_OBJECT_ACTIVE /** This is the test to check the behaviour of the method * void object_update(object *op, int action); */ START_TEST(test_object_update) { /*TESTME (this one need a map loading, left for later*/ } END_TEST /** This is the test to check the behaviour of the method * void object_free_drop_inventory(object *ob); */ START_TEST(test_object_free_drop_inventory) { object *ob1; object *ob2; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); object_insert_in_ob(ob2, ob1); object_free_drop_inventory(ob1); fail_unless(QUERY_FLAG(ob1, FLAG_FREED), "Freeing ob1 should mark it freed"); fail_unless(QUERY_FLAG(ob2, FLAG_FREED), "Freeing ob1 should mark it's content freed"); } END_TEST /** This is the test to check the behaviour of the method * int object_count_free(void); */ START_TEST(test_object_count_free) { int free1, free2; cctk_create_game_object(NULL); free1 = object_count_free(); cctk_create_game_object(NULL); free2 = object_count_free(); /* Behaviour under MEMORY_DEBUG is to allocate each object separately so * both will be 0. Allow test suite to pass with this option. */ #ifdef MEMORY_DEBUG fail_unless(((free2 == 0) && (free1 == 0)), "after creating an object, the object_count_free() should return 0 (compiled with MEMORY_DEBUG)", free1-1, free2); #else fail_unless((free2 == free1-1), "after creating an object, the object_count_free() should return one less (%d) but returned %d", free1-1, free2); #endif } END_TEST /** This is the test to check the behaviour of the method * int object_count_used(void); */ START_TEST(test_object_count_used) { int used1, used2; cctk_create_game_object(NULL); used1 = object_count_used(); cctk_create_game_object(NULL); used2 = object_count_used(); fail_unless((used2 == used1+1), "after creating an object, the object_count_used() should return one more (%d) but returned %d", used1-1, used2); } END_TEST /** This is the test to check the behaviour of the method * int object_count_active(void); */ START_TEST(test_object_count_active) { object *ob1; int active1, active2; ob1 = cctk_create_game_object(NULL); ob1->speed = MIN_ACTIVE_SPEED*2; object_update_speed(ob1); active1 = object_count_active(); ob1 = cctk_create_game_object(NULL); ob1->speed = MIN_ACTIVE_SPEED*2; object_update_speed(ob1); active2 = object_count_active(); fail_unless((active2 == active1+1), "after activating an additional object, object_count_active should return one less %d but returned %d", active1-1, active2); } END_TEST /** This is the test to check the behaviour of the method * void object_sub_weight(object *op, signed long weight); */ START_TEST(test_object_sub_weight) { object *ob1; object *ob2; object *ob3; object *ob4; unsigned long sum; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); ob4 = cctk_create_game_object(NULL); ob1->weight = 10; /*This should not be taken into account by object_sum_weight*/ ob1->type = CONTAINER; ob2->type = CONTAINER; ob3->type = CONTAINER; ob1->stats.Str = 40; /*40% reduction of weight*/ ob2->weight = 10; ob3->weight = 10; ob4->weight = 10; object_insert_in_ob(ob2, ob1); object_insert_in_ob(ob3, ob2); object_insert_in_ob(ob4, ob3); sum = object_sum_weight(ob1); fail_unless(sum == 18, "Sum of object's inventory should be 18 (30*0.6+10) but was %lu.", sum); object_sub_weight(ob4, 10); fail_unless(ob1->carrying == 12, "after call to object_sub_weight, carrying of ob1 should be 22 but was %d", ob1->carrying); } END_TEST /** This is the test to check the behaviour of the method * void object_remove(object *op); */ START_TEST(test_object_remove) { /*TESTME test those * ob with more * player inv * remove from map */ } END_TEST /** This is the test to check the behaviour of the method * object *object_merge(object *op, object *top); */ START_TEST(test_object_merge) { object *ob1; object *ob2; object *ob3; object *ob4; ob1 = cctk_create_game_object(NULL); ob2 = cctk_create_game_object(NULL); ob3 = cctk_create_game_object(NULL); ob4 = cctk_create_game_object(NULL); cctk_create_game_object(NULL); ob1->below = ob2; ob2->below = ob3; ob3->below = ob4; ob2->above = ob1; ob3->above = ob2; ob4->above = ob3; ob1->name = add_string("test"); ob2->name = add_string("test2"); ob3->name = add_string("test3"); } END_TEST /** This is the test to check the behaviour of the method * object *object_insert_in_map_at(object *op, mapstruct *m, object *originator, int flag, int x, int y); */ START_TEST(test_object_insert_in_map_at) { mapstruct *map; object *first = NULL; object *got = NULL; map = get_empty_map(5, 5); fail_unless(map != NULL, "get_empty_map returned NULL."); /* Single tile object */ first = cctk_create_game_object("barrel"); fail_unless(first != NULL, "create barrel failed"); got = object_insert_in_map_at(first, map, NULL, 0, 0, 0); fail_unless(got == first, "item shouldn't be destroyed"); first = cctk_create_game_object("dragon"); fail_unless(first != NULL, "create dragon failed"); fail_unless(first->more != NULL, "no other body part"); got = object_insert_in_map_at(first, map, NULL, 0, 1, 1); fail_unless(got == first, "item shouldn't be destroyed"); fail_unless(GET_MAP_OB(map, 1, 1) == first, "item isn't on 1,1"); fail_unless(GET_MAP_OB(map, 2, 1) != NULL, "no item on 2,1"); fail_unless(GET_MAP_OB(map, 2, 1)->head == first, "head of 2,1 isn't 1,1"); } END_TEST /** This is the test to check the behaviour of the method * object *object_insert_in_map(object *op, mapstruct *m, object *originator, int flag); */ START_TEST(test_object_insert_in_map) { mapstruct *map; object *first = NULL; object *second = NULL; object *third = NULL; object *floor = NULL; object *got = NULL; map = get_empty_map(5, 5); fail_unless(map != NULL, "get_empty_map returned NULL."); /* First, simple tests for insertion. */ floor = cctk_create_game_object("woodfloor"); fail_unless(floor != NULL, "create woodfloor failed"); floor->x = 3; floor->y = 3; got = object_insert_in_map(floor, map, NULL, 0); fail_unless(got == floor, "woodfloor shouldn't disappear"); fail_unless(floor == GET_MAP_OB(map, 3, 3), "woodfloor should be first object"); first = cctk_create_game_object("barrel"); fail_unless(first != NULL, "create barrel failed"); first->x = 3; first->y = 3; got = object_insert_in_map(first, map, NULL, 0); fail_unless(got == first, "barrel shouldn't disappear"); fail_unless(floor == GET_MAP_OB(map, 3, 3), "woodfloor should still be first object"); fail_unless(floor->above == first, "barrel should be above floor"); second = cctk_create_game_object("gem"); fail_unless(second != NULL, "create gem failed"); second->nrof = 1; second->x = 3; second->y = 3; got = object_insert_in_map(second, map, NULL, INS_ABOVE_FLOOR_ONLY); fail_unless(got == second, "gem shouldn't disappear"); fail_unless(floor == GET_MAP_OB(map, 3, 3), "woodfloor should still be first object"); fail_unless(floor->above == second, "gem should be above floor"); fail_unless(second->above == first, "barrel should be above gem"); third = cctk_create_game_object("bed_1"); fail_unless(third != NULL, "create bed_1 failed"); third->nrof = 1; third->x = 3; third->y = 3; got = object_insert_in_map(third, map, first, INS_BELOW_ORIGINATOR); fail_unless(got == third, "bed_1 shouldn't disappear"); fail_unless(floor == GET_MAP_OB(map, 3, 3), "woodfloor should still be first object"); fail_unless(third->above == first, "bed should be below barrel"); fail_unless(third->below == second, "bed should be above gem"); /* Merging tests. */ third = cctk_create_game_object("gem"); fail_unless(third != NULL, "create gem failed"); third->nrof = 1; third->x = 3; third->y = 3; got = object_insert_in_map(third, map, NULL, 0); fail_unless(got == third, "gem shouldn't disappear"); fail_unless(QUERY_FLAG(second, FLAG_FREED), "first gem should have been removed."); fail_unless(third->nrof == 2, "second gem should have nrof 2"); second = cctk_create_game_object("gem"); fail_unless(second != NULL, "create gem failed"); second->nrof = 1; second->x = 3; second->y = 3; second->value = 1; got = object_insert_in_map(second, map, NULL, 0); fail_unless(got == second, "modified gem shouldn't disappear"); fail_unless(second->nrof == 1, "modified gem should have nrof 1"); /* Now check sacrificing, on another spot. * Can't work here, as altar logic is in server. * -> move that there. */ /* first = cctk_create_game_object("altar"); fail_unless(first != NULL, "create altar failed"); first->x = 2; first->y = 2; first->stats.food = 5; first->value = 0; fail_unless(object_insert_in_map(first, map, NULL, 0) == first, "altar shouldn't disappear"); fail_unless(GET_MAP_MOVE_ON(map, 2, 2)&MOVE_WALK == MOVE_WALK, "floor should have MOVE_WALK set"); second = cctk_create_game_object("food"); fail_unless(second != NULL, "create food failed"); second->nrof = 5; second->x = 2; second->y = 2; got = object_insert_in_map(second, map, NULL, 0); fail_unless(got == NULL, "object_insert_in_map(food) should have returned NULL"); fail_unless(QUERY_FLAG(second, FLAG_FREED), "food should have been freed"); */ } END_TEST /** This is the test to check the behaviour of the method * void object_replace_insert_in_map(const char *arch_string, object *op); */ START_TEST(test_object_replace_insert_in_map) { mapstruct *map; object *first = NULL, *second = NULL, *third = NULL; tag_t tag_first, tag_second, tag_third; object *got = NULL; map = get_empty_map(5, 5); fail_unless(map != NULL, "get_empty_map returned NULL."); /* Single tile object */ first = cctk_create_game_object("barrel"); fail_unless(first != NULL, "create barrel failed"); tag_first = first->count; got = object_insert_in_map_at(first, map, NULL, 0, 0, 0); fail_unless(got == first, "item shouldn't be destroyed"); second = cctk_create_game_object("table"); fail_unless(second != NULL, "create table failed"); got = object_insert_in_map_at(second, map, NULL, 0, 0, 0); fail_unless(got == second, "second item shouldn't be destroyed"); tag_second = second->count; third = cctk_create_game_object("barrel"); fail_unless(third != NULL, "create 2nd barrel failed"); got = object_insert_in_map_at(third, map, NULL, 0, 0, 0); fail_unless(got == third, "second barrel shouldn't be destroyed"); tag_third = third->count; fail_unless(GET_MAP_OB(map, 0, 0) == first, "item at 0,0 isn't barrel"); fail_unless(GET_MAP_OB(map, 0, 0)->above == second, "second item at 0,0 isn't table"); fail_unless(GET_MAP_OB(map, 0, 0)->above->above == third, "third item at 0,0 isn't barrel"); object_replace_insert_in_map("barrel", second); fail_unless(GET_MAP_OB(map, 0, 0) != first, "item at 0, 0 is still first?"); fail_unless(object_was_destroyed(first, tag_first), "1st barrel should be destroyed"); fail_unless(!object_was_destroyed(second, tag_second), "table shouldn't be destroyed"); fail_unless(object_was_destroyed(third, tag_third), "2nd barrel should be destroyed"); fail_unless(GET_MAP_OB(map, 0, 0) != NULL, "no item at 0,0 after object_replace_insert_in_map"); fail_unless(GET_MAP_OB(map, 0, 0) != second, "second at bottom at 0,0 after object_replace_insert_in_map"); fail_unless(GET_MAP_OB(map, 0, 0)->above == second, "table isn't above new barrel"); fail_unless(strcmp(GET_MAP_OB(map, 0, 0)->arch->name, "barrel") == 0, "item at 0,0 is not a barrel after object_replace_insert_in_map"); } END_TEST /** This is the test to check the behaviour of the method * object *object_split(object *orig_ob, uint32 nr); */ START_TEST(test_object_split) { object *first = NULL; object *second = NULL; char err[50]; first = cctk_create_game_object("gem"); fail_unless(first != NULL, "create gem failed"); first->nrof = 5; second = object_split(first, 2, err, sizeof(err)); fail_unless(second != NULL, "should return an item"); fail_unless(second->nrof == 2, "2 expected to split"); fail_unless(first->nrof == 3, "3 should be left"); second = object_split(first, 3, err, sizeof(err)); fail_unless(second != NULL, "should return an item"); fail_unless(QUERY_FLAG(first, FLAG_FREED), "first should be freed"); first = object_split(second, 10, err, sizeof(err)); fail_unless(first == NULL, "should return NULL"); fail_unless(second->nrof == 3, "3 should be left"); } END_TEST /** This is the test to check the behaviour of the method * object *object_decrease_nrof(object *op, uint32 i); */ START_TEST(test_object_decrease_nrof) { object *first = NULL; object *second = NULL; first = cctk_create_game_object("gem"); fail_unless(first != NULL, "create gem failed"); first->nrof = 5; second = object_decrease_nrof(first, 3); fail_unless(second == first, "gem shouldn't be destroyed"); second = object_decrease_nrof(first, 2); fail_unless(second == NULL, "object_decrease_nrof should return NULL"); fail_unless(QUERY_FLAG(first, FLAG_FREED), "gem should have been freed"); } END_TEST /** This is the test to check the behaviour of the method * void object_add_weight(object *op, signed long weight); */ START_TEST(test_object_add_weight) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_insert_in_ob(object *op, object *where); */ START_TEST(test_object_insert_in_ob) { object *container = NULL; object *item = NULL; item = cctk_create_game_object("gem"); fail_unless(item != NULL, "create gem failed"); item->weight = 50; /* Bookshelves have no weight reduction. */ container = cctk_create_game_object("bookshelf"); fail_unless(container != NULL, "create bookshelf failed"); object_insert_in_ob(item, container); fail_unless(container->inv == item, "item not inserted"); fail_unless(container->carrying == 50, "container should carry 50 and not %d", container->carrying); object_remove(item); fail_unless(container->carrying == 0, "container should carry 0 and not %d", container->carrying); /* Sacks have a Str of 10, so will reduce the weight. */ container = cctk_create_game_object("sack"); fail_unless(container != NULL, "create sack failed"); object_insert_in_ob(item, container); fail_unless(container->inv == item, "item not inserted"); fail_unless(container->carrying == 45, "container should carry 45 and not %d", container->carrying); } END_TEST /** This is the test to check the behaviour of the method * int object_check_move_on(object *op, object *originator); */ START_TEST(test_object_check_move_on) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *map_find_by_archetype(mapstruct *m, int x, int y, const archetype *at); */ START_TEST(test_map_find_by_archetype) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *map_find_by_type(mapstruct *m, int x, int y, unsigned char type); */ START_TEST(test_map_find_by_type) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_present_in_ob(unsigned char type, const object *op); */ START_TEST(test_object_present_in_ob) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_present_in_ob_by_name(int type, const char *str, const object *op); */ START_TEST(test_object_present_in_ob_by_name) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *arch_present_in_ob(const archetype *at, const object *op); */ START_TEST(test_arch_present_in_ob) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * void object_set_flag_inv(object *op, int flag); */ START_TEST(test_object_set_flag_inv) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * void object_unset_flag_inv(object *op, int flag); */ START_TEST(test_object_unset_flag_inv) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * void object_set_cheat(object *op); */ START_TEST(test_object_set_cheat) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_find_free_spot(const object *ob, mapstruct *m, int x, int y, int start, int stop); */ START_TEST(test_object_find_free_spot) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_find_first_free_spot(const object *ob, mapstruct *m, int x, int y); */ START_TEST(test_object_find_first_free_spot) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * void get_search_arr(int *search_arr); */ START_TEST(test_get_search_arr) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int map_find_dir(mapstruct *m, int x, int y, object *exclude); */ START_TEST(test_map_find_dir) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_distance(const object *ob1, const object *ob2); */ START_TEST(test_object_distance) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int find_dir_2(int x, int y); */ START_TEST(test_find_dir_2) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int absdir(int d); */ START_TEST(test_absdir) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int dirdiff(int dir1, int dir2); */ START_TEST(test_dirdiff) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int can_see_monsterP(mapstruct *m, int x, int y, int dir); */ START_TEST(test_can_see_monsterP) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_can_pick(const object *who, const object *item); */ START_TEST(test_object_can_pick) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_create_clone(object *asrc); */ START_TEST(test_object_create_clone) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_was_destroyed(const object *op, tag_t old_tag); */ START_TEST(test_object_was_destroyed) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * object *object_find_by_type_subtype(const object *who, int type, int subtype); */ START_TEST(test_object_find_by_type_subtype) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * key_value *object_get_key_value(const object *ob, const char *key); */ START_TEST(test_object_get_key_value) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * const char *object_get_value(const object *op, const char *const key); */ START_TEST(test_object_get_value) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_set_value(object *op, const char *key, const char *value, int add_key); */ START_TEST(test_object_set_value) { /*TESTME*/ } END_TEST /** This is the test to check the behaviour of the method * int object_matches_string(object *pl, object *op, const char *name); */ START_TEST(test_object_matches_string) { object *pl; object *o1, *o2; int val; pl = cctk_create_game_object("kobold"); fail_unless(pl != NULL, "couldn't create kobold"); pl->contr = (player *)calloc(1, sizeof(player)); fail_unless(pl->contr != NULL, "couldn't alloc contr"); o1 = cctk_create_game_object("cloak"); fail_unless(o1 != NULL, "couldn't find cloak archetype"); o1->title = add_string("of Gorokh"); CLEAR_FLAG(o1, FLAG_IDENTIFIED); val = object_matches_string(pl, o1, "all"); fail_unless(val == 1, "all didn't match cloak"); val = object_matches_string(pl, o1, "Gorokh"); fail_unless(val == 0, "unidentified cloak matched title with value %d", val); val = object_matches_string(pl, o1, "random"); fail_unless(val == 0, "unidentified cloak matched random value with value %d", val); SET_FLAG(o1, FLAG_IDENTIFIED); val = object_matches_string(pl, o1, "Gorokh"); fail_unless(val != 0, "identified cloak didn't match title with value %d", val); o2 = cctk_create_game_object("cloak"); SET_FLAG(o2, FLAG_UNPAID); val = object_matches_string(pl, o2, "unpaid"); fail_unless(val == 2, "unpaid cloak didn't match unpaid"); val = object_matches_string(pl, o2, "cloak"); fail_unless(val != 0, "unpaid cloak didn't match cloak with %d", val); val = object_matches_string(pl, o2, "wrong"); fail_unless(val == 0, "unpaid cloak matched wrong name %d", val); } END_TEST static Suite *object_suite(void) { Suite *s = suite_create("object"); TCase *tc_core = tcase_create("Core"); /*setup and teardown will be called before each test in testcase 'tc_core' */ tcase_add_unchecked_fixture(tc_core, setup, teardown); suite_add_tcase(s, tc_core); tcase_add_test(tc_core, test_object_can_merge); tcase_add_test(tc_core, test_object_sum_weight); tcase_add_test(tc_core, test_object_get_env_recursive); tcase_add_test(tc_core, test_object_get_player_container); tcase_add_test(tc_core, test_object_dump); tcase_add_test(tc_core, test_object_dump_all); tcase_add_test(tc_core, test_object_find_by_tag_global); tcase_add_test(tc_core, test_object_find_by_name_global); tcase_add_test(tc_core, test_object_free_all_data); tcase_add_test(tc_core, test_object_get_owner); tcase_add_test(tc_core, test_object_clear_owner); tcase_add_test(tc_core, test_object_set_owner); tcase_add_test(tc_core, test_object_copy_owner); tcase_add_test(tc_core, test_object_reset); tcase_add_test(tc_core, test_object_clear); tcase_add_test(tc_core, test_object_copy); tcase_add_test(tc_core, test_object_new); tcase_add_test(tc_core, test_object_update_turn_face); tcase_add_test(tc_core, test_object_update_speed); tcase_add_test(tc_core, test_object_remove_from_active_list); tcase_add_test(tc_core, test_object_update); tcase_add_test(tc_core, test_object_free_drop_inventory); tcase_add_test(tc_core, test_object_count_free); tcase_add_test(tc_core, test_object_count_used); tcase_add_test(tc_core, test_object_count_active); tcase_add_test(tc_core, test_object_sub_weight); tcase_add_test(tc_core, test_object_remove); tcase_add_test(tc_core, test_object_merge); tcase_add_test(tc_core, test_object_insert_in_map_at); tcase_add_test(tc_core, test_object_insert_in_map); tcase_add_test(tc_core, test_object_replace_insert_in_map); tcase_add_test(tc_core, test_object_split); tcase_add_test(tc_core, test_object_decrease_nrof); tcase_add_test(tc_core, test_object_add_weight); tcase_add_test(tc_core, test_object_insert_in_ob); tcase_add_test(tc_core, test_object_check_move_on); tcase_add_test(tc_core, test_map_find_by_archetype); tcase_add_test(tc_core, test_map_find_by_type); tcase_add_test(tc_core, test_object_present_in_ob); tcase_add_test(tc_core, test_object_present_in_ob_by_name); tcase_add_test(tc_core, test_arch_present_in_ob); tcase_add_test(tc_core, test_object_set_flag_inv); tcase_add_test(tc_core, test_object_unset_flag_inv); tcase_add_test(tc_core, test_object_set_cheat); tcase_add_test(tc_core, test_object_find_free_spot); tcase_add_test(tc_core, test_object_find_first_free_spot); tcase_add_test(tc_core, test_get_search_arr); tcase_add_test(tc_core, test_map_find_dir); tcase_add_test(tc_core, test_object_distance); tcase_add_test(tc_core, test_find_dir_2); tcase_add_test(tc_core, test_absdir); tcase_add_test(tc_core, test_dirdiff); tcase_add_test(tc_core, test_can_see_monsterP); tcase_add_test(tc_core, test_object_can_pick); tcase_add_test(tc_core, test_object_create_clone); tcase_add_test(tc_core, test_object_was_destroyed); tcase_add_test(tc_core, test_object_find_by_type_subtype); tcase_add_test(tc_core, test_object_get_key_value); tcase_add_test(tc_core, test_object_get_value); tcase_add_test(tc_core, test_object_set_value); tcase_add_test(tc_core, test_object_matches_string); return s; } int main(void) { int nf; SRunner *sr; Suite *s = object_suite(); sr = srunner_create(s); srunner_set_xml(sr, LOGDIR "/unit/common/object.xml"); /* if you wish to debug, uncomment the following line. */ /* srunner_set_fork_status(sr, CK_NOFORK);*/ srunner_run_all(sr, CK_ENV); /*verbosity from env variable*/ nf = srunner_ntests_failed(sr); srunner_free(sr); return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE; } ���������������������������������������������������������������������crossfire-1.70.0/test/unit/Makefile.am��������������������������������������������������������������0000644�0000145�0000012�00000000340�11731300515�014465� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = common random_maps socket server CHECK_ROOT=../ CHECK_FOLDER=unit CHECK_PARENT_NAME=Main include $(top_srcdir)/check-fragment.am clean-local: $(RM) .autorun.xml check-local: check-html clean-local: clean-unit ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/����������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537047�013175� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/Makefile.am�����������������������������������������������������������0000644�0000145�0000012�00000000164�11731300515�015135� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������noinst_HEADERS = \ toolkit_common.h toolkit_crossedit.h toolkit_random_maps.h toolkit_server.h toolkit_socket.h ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/toolkit_crossedit.h���������������������������������������������������0000644�0000145�0000012�00000000062�11731300515�017013� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* toolkit_crossedit.c */ int blablabla(int bla); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/toolkit_server.h������������������������������������������������������0000644�0000145�0000012�00000000057�11731300515�016326� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* toolkit_server.c */ int blablabla(int bla); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/Makefile.in�����������������������������������������������������������0000644�0000145�0000012�00000030611�11732537023�015155� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/include DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = \ toolkit_common.h toolkit_crossedit.h toolkit_random_maps.h toolkit_server.h toolkit_socket.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/toolkit_common.h������������������������������������������������������0000644�0000145�0000012�00000000456�11731300515�016313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* toolkit_common.c */ void cctk_setlog(const char *logfile); void cctk_setdatadir(const char *datadir); void cctk_setconfdir(const char *confdir); void cctk_init_std_archetypes(void); object *cctk_create_game_object(const char *archname); void cctk_set_object_strings(object *op, const char *string); ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/toolkit_socket.h������������������������������������������������������0000644�0000145�0000012�00000000057�11731300515�016310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* toolkit_socket.c */ int blablabla(int bla); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/include/toolkit_random_maps.h�������������������������������������������������0000644�0000145�0000012�00000000064�11731300515�017316� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* toolkit_random_maps.c */ int blablabla(int bla); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/templates/��������������������������������������������������������������������0000755�0000145�0000012�00000000000�11732537047�013550� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/templates/txtlog.png����������������������������������������������������������0000644�0000145�0000012�00000000232�11731300516�015500� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������óÿa���aIDATxÚ½± À0Dûÿà¸9¸ÞêïY,%Cc–zðÐr^¼þR6ô?Ô$q÷‘3«º7¨»*Ž –©Àl‚…ˆÞªÖDV¦Þ�ày6ÿÏ~ }ÎxuB•²Y„ì—����IEND®B`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/templates/checkReport.css�����������������������������������������������������0000644�0000145�0000012�00000004454�11731300516�016446� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ body { width:99%; padding:0%; margin:0 auto; } .testRoot { width:79%; padding-right:1%; float:right; padding-top: 5pt; padding-bottom: 5pt; margin-top:10pt; } .testMenu { float:left; width:17%; padding-left: 1%; padding-right: 1%; margin: 0px; border: 1px solid black; padding-top: 5pt; padding-bottom: 5pt; margin-top:10pt; background: #ECF1EF; } .testBox img, .failedTestList img{ vertical-align:text-top; } .testMenu li{ list-style-type: none; } .suiteList, .runDate, .suiteHead, .suiteContent, .failedTestList, .testHead, .testContent{ width:98%; margin-top: 5pt; margin-bottom: 5pt; margin-left: 1%; margin-right:0%; padding-left:1%; padding-right:0%; } .runDate , .runDuration { font-size:80%; text-align:right; } .suiteHead, .failedTestList, .testHead, .testContent{ border: 1px solid grey; } .testContent { margin-bottom:20pt; } .suiteList a{ border:1px solid black; padding-left:3px; padding-right:3px; background:#ECF1EF; } .runDate { float:right; width:auto; clear:right; padding:0px; margin:0px; } .runDuration { float:right; clear:right; padding:0px; margin:0px; } .suiteLink { text-decoration:none; color:black; } .suiteLink:hover { text-decoration:undeline; } .failedTestList{ background: #ECF1EF; font-weight:bold; padding-top:5pt; padding-bottom:5pt; } .suiteHead { background:#ECF1EF; } a.errorTestLink, a.failureTestLink{ padding-left:2pt; padding-right:2pt; padding-top:1pt; padding-bottom:1pt; margin:1pt; border:1px solid red; color:black; text-decoration:none; } .testStatusSuccess .testHead, .testStatusSuccess .testContent{ background:#EEF3E2; } .testStatusFailure .testHead, .testStatusFailure .testContent, a.failureTestLink{ background:#FFEECA } .testStatusError .testHead, .testStatusError .testContent, a.errorTestLink{ background:#FEE0C6; } .testMenuEntry { padding-left:0%; padding-right:0%; margin-left:0%; margin-right:0%; clear:both; } .menuEntryOut{ float:right; } .menuEntryStatus { float:left; } .menuEntryWeb { float:left; } img { border: none; } .testLogo { text-align:center; border-bottom:1px solid black; padding-bottom:5pt; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������crossfire-1.70.0/test/templates/logresult.xsl�������������������������������������������������������0000644�0000145�0000012�00000023573�11731300516�016236� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:check="http://check.sourceforge.net/ns"> <xsl:output omit-xml-declaration="yes" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" method="xml"/> <xsl:variable name="baseUri" select="/config/baseSiteUri"/> <xsl:variable name="checkFile" select="/config/checkFile"/> <xsl:variable name="checkFolder" select="/config/checkFolder"/> <xsl:template match="/"> <!-- ok, first read the configuration --> <html><head> <title>Automated test result stylesheet text/css checkReport.css error error.png failure failure.png success success.png
/.index.html
This test was run on
in seconds
The following tests have problems: #test_ errorTestLink #test_ failureTestLink
This test contains the following suites: #suite_ suiteLink
suite_
Results for suite :
testStatusFailure testStatusError testStatusSuccess testBox
Test
Failed Problems running Success

crossfire-1.70.0/test/templates/failure.png0000644000014500000120000000042011731300516015605 00000000000000‰PNG  IHDRóÿa×IDATxÚµ“» Â@Eç›ö³ò;v¢­Ú[Ú‰ŸID%–ÆñI Ä‘Ù)†@– HN7÷lî$JN¿XDé0îŠIép¯¥“Ä~³ã8šl˜­ß KláÏV‰ø\ ‰Çƒ€Ãi ‚Û rÜçAº¢!œÇ ‰]æ:5 tßÄ£!†€§Ã2£€—ôX° ÓPØ®+܀Т£–ßPÿ2áÁH‡…ˆEEo‚—÷òI¯@AÁò-¤ºME5èF{X$²ƒØ¥Ü;’ð?Sç>w—ùT%(ZIEND®B`‚crossfire-1.70.0/test/templates/Makefile.in0000644000014500000120000002536011732537023015535 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/templates DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DATA = $(dist_noinst_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ dist_noinst_DATA = checkReport.css checkTextResult.xsl \ crossfire-logo-unit-failed.png crossfire-logo-unit.png \ crossfire-logo-unit-success.png error.png failure.png \ logresult.xsl success.png txtlog.png all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/templates/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/templates/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/test/templates/crossfire-logo-unit-failed.png0000644000014500000120000041427011731300516021326 00000000000000‰PNG  IHDR Ñ4VÖIIDATx^ì}¬UÕµÅÇœkŸ#bTäQA[‚D´•Ô*Z­FI¥h£U+¶Zc¬õ£/j­J£ñ=µ‚¶Z ~¦¶*5Ú¢¶‘Ö6ò”ŠÚ˜(ôY5E+ å!Ü{Î^k½‘½×É9÷^îåC¢ÜËü匌9×Ù—dÿCÎ8s­³;†a†aÆŸ5~´ª^àœ»´RÉP©fÈè¬é ¹†ÃeêDJIi±FB€Ï=‚§{?—õφ¾ÿil3Œ¬À"ô}Ã0 Ã0 ã÷šQ·²@^Z† *Ë ¹Ìu•sP§•®¥šá#øRÞ{*œÀzö›KÎ|rå¢3†`«1#EÏÌBAЗ1 Ã0 ððÑv­ªNáÄ• •¥ÉGµBw™|d”B„r-ÓI®Êº>¼÷Í j¬Íóy>yÿñ¿_͈ÀÑ®ëº^p„/Ød»Å0 Ã0 Ã&h„JçðѼ5|hÏá÷„ÖÉK¥ú8®Ï^üÌ Uôˆþx±»ð!@;íÖ —“¡Ob†a†aˆÈDU™ÂP4ýèîÌGÚz•A\3|P€*{Q"l¤i=…ŸêÖ H½XûRŒq€ËÑ#/&À‹Ôz6®\o"¥½«Xßí †a†a†sî—)8’[®*5 |ˆ+ò¨ˆ^áë i@´Ñp‚è#b B@(Ä:Jýû.!„u~áßþ0áÖC&=õŽëÀë´‘Ò 3ðý§ÔÅø²Ð E‚ýoh·´ÄÈvƒa†a†ñ?yºˆŒfàhføÐ €Þ·Á×tDŠW×Å #`Õ¡­@+Ce¼G 9|^x‘Ë\¶#(§­¢£#û pg–Q˜J¿M€+L¦ú±Î~ H¤Ä¡÷Ì8 óÀ0êÇ@4ÑÔKªc©ÛX¯ (x9±Ù†a†aóg}±s:£@²B® ñj=¶áÇA¤ èîðqäõИ~À×èÞÿîÈÓŸ;;ø<ínê°ÂÃâœ*À#¦Ö°BoÓ÷¦ÚÌàÈÖÌ'¥Ä& gŒK@ O¤^“ëLF³¾õà—¿Àfa†a†aT«TµÓ!sñCÄОÆ[DÜÄwÙÑ#„uðy¾.ôœî‘×s®ìHD`oÚ"´ Í÷Ö²~”~ €CYÿ’õAtU†)Ï~Œ¦¾Ðù߉è ˨=øq΢úå“4%!GI׉ÈeTü7û‰Ë€¥è„a†aÆÌ©£v‘É®¢¨4¾õÏ2zãçféUuź+´·fìÑ=Š>ïêRɲ*=S¨AÈkÅö«ÑÙÊ3Q‚ƒ¯÷‡Ï#Ý7ÂGã!…èËà$~ §Ž¡¾ƒnà5Z…z–õàNQn·œ©Àƒ˜Aý§ŠD´ç€l£ùªS=pJè4ɨJr Ú2-i¹vëǸg9ð2vH Ã0 Øþƒa‡¨ê—é$çtY¦Uú¨¬Kø`M¯$eé½4h§^¥Ê>s3\%{]¯ þì=¯£³ðÉNÖLâ=í\Ü_•JahC­þ|hGDĦ‘îsHÄ„\Qo«€*·_ÕšáƒB ñÆ ç¾tU›rŒ ]I}žÖžT૘*@w÷{HþBïßy¢‘úùÔ1ØŸ:õ#=„±² F»Óî ÀqØ9€TEP¡2 1ÂSŠ|3õ½GŸ#Àå˵ø1Œ£P¶´a j†aÜtÑ^ƒÕÉÉÎɉι#œÓÝ³Š¢ ®ð>’W¨ÒSI!ƒžêÖÞµƒ8…м"NVˆÈ uz'D>øwü½Œeó¿þ"Õ›Wܧª ¢†ZX‹z¾!æØ8²Éõ€¼]oÔ¨¼æZÃG½k"☯œ·pú±y |èFÎv¬f=(ý©5R^7‡ú ûì÷¡Gº´þ]ªéuÖ©õ1ýj–mÀàð̧*’BH”j)d ! ÷¾õ I’OSÓÌýûGœH*HÜÌk5•‰ªz|¼µälQJÏW§c:<0*Õ䇚i›8pؽÃ0ŒÎ¤*r:¹Ð9›e)tr(CJ¤!öôîŸ{QöY£W¨s•=€ïYqºX€ëCŒ« ½=¢°â¯§Ÿ(Nç=J#d9çÒ=Qºh_(ÀÍKYØ #„ ´B$P‘k¢ªqc¤%„8©·î(dï» 8Û˜7ž¹‹ˆ|WާN£ J¥àéDìõ~u²Àô]÷º-b;Æ0 ãºó]âW;'ƒ3 '×’w Í>©ëÄ#yy^"… ÖRÖ W¥1Fxîòy¾|ЈŸß‰^À›‹ÎºÆeîú¬Òr®°"jù´×Ú|(ƒÅ&§!Ñäí9Úÿ¯Žz[^N<Ꞣ·œû!Îcø˜ÐKCÇþàØ|SWZÞ{_€Á=LI–(ð¹TÙ º’ÇZún(y›ýpö¯˜ËúXúDê­Øü§3ègS³©qì²Cè›ÉÀ #€ÓüšâHŒp!@ÔUQRBÅ´‹‚OJŒ‹À̱å"OY ¬À–c*"ɾÛÿ+ˆˆ(­Âë}ZÖE€i ¬5-|D^yþ£ÕÉuî²ã¾êt¸ªÂ9…ô>Š`}N E—¬yç{? !ÎÙcø]ÿÂ1sÚ¨ƒÓêtj¥âviÙ#O¯L£¯<ê´gæáÄ0®>gÏ=Ep¢S¹–¾]œ+§t´N@\Ršd‡Ì«YÕJÙÎ."Š€Q[¿õ y3|Ô|ãW¯ZÃÇgöÂàñÏt ü°<•žÕñLQàæXN?V£‡"ÀAX àû¬ç±žH]àpéxÝ ÚÅÔ¤ô£MëÒ6®ÏУîfýv¦xYÊ­]oO}‹ý%¶k+Q¦Ê‡©=[·bU©DÅ¡7xz”5•XY Ü»˜5†m¯ÚÔ5”  (É©He ߘˆ„”&$K×ç-A$p Ï:¤¢$ÇV°ô铯¨§P#œsûºLA‡Ë(Öª é!|4{”a>Dx¼_|¸Û{ÿøÞ£î[…>‰qïõû1´º‘ªrŸËth±M¥IÕJc‹ÊzÖWìÔ¯ú¼ˆ,?èØÙuô1ž>¶ŸˆŒfØš97©Ê{¯*ÂØ Õª÷Ž;~îÊ>¸i¤S NnÍ2ÕŽ[˜Ü5ìžsõŠõø„ùö®ÌŠâJŸGuß{‡†—€ ‚ *>ˆ‰ŸˆøHP M¢Áø5j’7«ÆuW‰qu}$²Ä¨›Ä(¸!+DcÝ„à3‚„¨Ÿ¨‰Qy ‘×Ü™{»÷ÿºª»n3ƒFpøœ’ÿûO×ôý¦«í¹§þ:çTÿó™½z0´² 3Ê” êí@³¾v—n]¨®R`ŠT×P¢bÏ ‰[Ätí,",˜¶( ìF;œmáÄP­ºïN0U"ÿ"dx&ß÷ïsèÏ_§ÖÞ~å\eækXø‹¢<0#«#Q’mÒÜÜBe ZÉ7oÇ©øØ°¤‰*8׋\ÍÇøÊG‰è|D?Öì$u#‹a~–‰îƒ½øÓ.ÍéMà5²uçDö½÷·ÍpLÞþèà\/ˆ­ ÙǛȖ#L¢¹[\Ë|ÐáÀ,&ú¼ë»t °ìfô/‡ýeØ¿ƒÜ)@Þ'Ú›üPH‹Ò 3œ ÈEIb‹ä¥â„H\&z|ýû¢n¡zgZ•k"ò~ê; N×6×ìPZÜ91Hœ°PgÇhZ“~•†@RÂèS'HâD-üÕñ% Då&™¤*]Õ:[ u ˆäű·óL“pÖ‰F€"?¬T*w:ðžÔÁÚY'w •¹¦@™ŒPù†Ÿ6–©³µ‰[/`D¸NU&ˆÊ(Už¤FêÝdÓN¶]J­óäÃÄž {IX nTÕòîܽSßïÿ¾nX· ÐýDäRèøTx…N|…°µßß‚+öúÔ}Í´·+¾Ò« Âú&ø `;y·ÂÃ¥/˜_¢ï†Ó¾ñÂ<úÚe_îÉL4Q„¿ªBGñâ#…O¿’äÿžMrÀž‰hèÛƒ8‚ qÿqÌï>û‰a2@ q¢ÃXA’E–‰É¦ƒCpT+‰ørÇàL,Á÷è“øùtLÎÿ4â3¿îPÏÐÚeçíÉÊ¿d–}3ña}f6†JÀø¢|"Vâ;Zšš!<ʈ|”SñáÓ®¼ø(ÃÇwܹÏÎÛI„ǃÀ &îûZ=2-èk‚y90ÇÏ‚ûµ%<¸ußzð×a‡}‰Eà3Ñw×»\ÓÇAG€ÿ‰ŸìêI‚šs~îjA¨S€l{$ä’˜èzB‡™ @Äå·§Çö \qÕ¨ÎÈ‘}|ó¨é ^„l)Jœ0T0´±ž*N(ãR¬v3ìè‘ÿ¹²Ï¢Ç~|Ç•XÕ:,5€2Xݱá HôI„~WìèÒã€~°±}*§‰Ê¾y±!ÙùâúE%™ø gûP»À®‰|DÎ&gÎÀϪËáDn:bæMÔAÚäñÝŽQ¡‹ðñ2þpó5w®™M-Ã|­ÿhU>Bì©"“µfÒ–A0Ý–´ZË‚ç±ð²>Cfü„v¢vç5Cº3óEjäjc”Óñ»ÈØE€RölΞŸøÙI;qÓ8aúšþ´&y {r»F%v`…éFŒû¸qS>þ!IÂ4Ë @3ñ‘«û<| í±÷*ÖÞsš÷<[f‘c£B (síb_Àq¢#/D,\*ÒÜ–rË3ðÿyØçæ­§Ð^|üäsY¤/Q¶X{ÛðÃ~ÑH5mÝ_ÀÂýøpãÊÆ„ñàól„ˆ9`Íåõ› cÂØÚªùHîÑŒw,ÄÇü¿‹UÛÍ‹ˆ¶ñðÎù\N ä„G›ÖÛè?Mˆþï}^ç P?ð&p]n’b…M×¾V§)‘MÅ:‘a¨ƒÂ4V@˜½IŇekåZ£Û1ë§Ï|”R³:‹ÊǰiÓ&ÇݺuKD,Õ¤[±`Š–.]ÚüÀèäÉ“¥¡¡!Ó²Ì\t‘‹"lºëúú®^ñҩ踀©Ú Û"F! ¶œå*+ÀIŸ1ê`,šŠ'HÐïÅFês–ŧ]eÂ#f ¹`üU•L€pŒŸÄÞ:‡ê©ïà„K0ÞÙûùÀ‡²õäé'vÝ…™îSáOÊ¥À0…Ê”0€¾2ì瑉—ÞºrY»¯¾v~‘™&¦¨¢LhÏtí{ËKÔÚuçõÙƒ…¿¨ÂßP#uj´äWÕ®všÛŽ4Ürw Q':<ü3çÄn ð‹Ìá »uÐ6ýŠACDätU¾ÈéáD…–Lt€r}÷k¨·í2tÆh'i—Ñs‚}K…2Ê…`«Q/D'6ÝýÙ„¼ Edö¨Ïÿ~í€ö­/÷ÜŸ˜±×›K»r\(…´Ûà~´Ïˆ½((˜v˜Â¼w`œ vÑJÖ­ã(/4|–?v5àŠCµ‚ä&lO»ïÁh÷—>?o|™'±ð4 /l»EZ BâVðOüô/ÿ’Í\W^´hüÀi‡úˆP#²ˆ™$Ð$òQÞ`ŇÝé*K»òâ#ŠÆï½[í>Ú±E‡5xëçÍõ†½jÏs…ácCÑŽûƒÛn6jò8Ýܳ ×{ðÖzyëcÀ1w m!=ȪÃS"€ ̉1`ãDˆà\4$òb$+XgØn&¹”ì›% ûïÏ=Om§Ç† xóæÍÔ§OŸ˜Ð 88 CaæxݺuñüùóyõêÕtê©§ÆuuÙ; @侬Øå§Ÿ~:†é6iÒ¤ÊATqé[U—2U…Ýð›Yÿ²ÛŸž¸ï^xaèKdºÈ„1Çà¨F€ª€ ÆMÀ¾Ï‹×'mKЍK ŠSÛ2©6¨ýBÔBP~%ϲE”?†3z¸xðc³b‹Ÿ©ð˜ ޳c·¢º8õ„¯N[Þ.y×k–NíÍÌÇó¥,|pmŠùk¸o³à€ÔgðŒ%ô!µ«Îî]b¦CTè#ÒC•‡øÕl©]áÎM.[‹€‚°&úèÖŇ‹¨ùÂU^‰¾å°¿ýª[ß[VÒ‡Ünþænõ,|¨¨\kŒô;ñ•v`Ü…B[QÀŽ;é³…Ë¢ÜÈ"gõ<ýÔAÛŧõØW…ÎQá#Àå0ÈY‘v^t8qš„å£c³ƒBpöȱ5Òvl—OîÙ“‰ï¡“’ëTÁ‚íu¶ ;hOêÚ£ž¶%äÑŸ`Kv¾‘ˆŽªMA²‘=°Ç.:àë""ؘÐW€?%Qè8¾ëb¯N¸ð¹…H|üþ¤zbº‘EÎIÿNøÈ8²ö‹õàðV -¯Ÿw!ÔwáJY$Ç‹+÷YJÆêÅGë´+üžéDôÍcÎ^¸±ÝÖï&("¨‘«‰ä ƒ´Á~ûܱb›£y,þœ¬%[ôýø\n]Ûñsà¶Y;_Íý>_À~ ¸éÂ= °CÌà\„¥S€´«9#&šÎD%É"!~›^ã"!Pæ h¹?º*¦ŠeÿVuŸªµ ø=@dsó"Økí4yÎðßo½õ–Ì;7^¼x1M:• À¥R‰àb Z²d uÔQñ¨Q£bô‰+:E$réU éÅ_¬Ü{ï½½Ñ"DAÞAÔDq>755 suÎÝçíþÚËOÌaª#Š“‰<1S¡ÀVl¨-ôVaÒÀF5²´+õipî¹HˆöœTtHÖïaHV%D¤‰ð æ÷x®â_3œLŽ£%q 91EvE/ª:G••¦–q¸oo~Êüêv]™i® ¼è°‚òíK'× ä¹04cκò¯Û¼£×êW§2¨3ÝÍÂǾ`ì¶ßLW>ßÀ=›ØØOÑlX)î¯ÂßV¡!Fø3F™|N¿ºUñX;Œ›l‡é³ _M.íªÕîj¬>êfû\Ô­=S­V–á¹ù6ì²~C´C‹×o¸¸_½ˆ!6 t´ÉE}Ô×xµÑÂRH…R!«°½—iôÃG}$!sÀvßõ¶õÔAÚ§4ôW¡ËEx¢QêoÄŠóŒ^”ª³Ã‚¡b]‘˜ˆT%÷lÀ2QöúoÛôì™ÛQ€ü¯ Ÿd„riWj”Š¥úÚ…>~ä‰0|-Þ~Ëè ¢ä]-årÍäÜ¥&!2Y!âEI¶ÈS°m?Tµ‹¤Ïážßa´Æ/¨PÎü‚Š‹~+±á1"2}=Xùh¶Ñî¼øˆÁÕ8 ôŸþ±cnõÊ‚•=ûk¸¶ËQû± ®×§–Urhùp箃Ïx€bšñÑ®ó§Å¿WÏÂ7‹Èx5ÚsËw¸‹Dø‡,<£÷žÿUÝbò~= ó% WëÚŒ|s;OmöÛêÚÙ~pN¥r%&q6è†è<]¿nýD;>n]€`Žöa›Êõ4ìca¨DH§ñEé“Ò×Îk"DTŒ¨ˆeÀ?\@*<,Û:×ïØEHüg€™ W B® ÎÖÑ!µå>HRˆyùå—£1cÆÐ Aƒ¸K—.13ÓªU«âÙ³gÓòåËãk¯½–Ëå2766r°ë®»’ªvq—з~Ö¬YõwÝu—N™2eÃøñã|ž<±@W¾rgŸ·þöÔl8çáaX$cÄÆX+-¤R¥0´ùÂÄD¢Œc“‰M&|ö80~‚爅³}ýˆ­‡$k@Ä p>ˆÉïæƒã6=hT…³ln‚ãÜ ÇRNJšã\M¹Ù~°[íºNì{£¿ôÔÒí$>J ßåüøÈàÓ¯‚œø°¢.ÔŪrÜé—½´rÈ)Ä4S„ikâ#ršÎñ¾ '=v~ºpåȦ9FX_ÝÎM,ýêvVXܺÖ#ð¹ÔÎ;ô¬é±jþ]>å/aIÅG–’¶yäÿÚï;¯¢Ô¾wQ?e¦GTe´/ªVŒÏ²·àÆ_ KT×»žŠ]ë BФÂT-7cï›O9Û2úó˜ß‚4¼û?tññù†Ï0áyPŒR"Ò}Ô¬VŒÖFÆT…ö±vŒª£¾w¡µ+éÕ?¿B¡KÍóÏH ŒÆo׳ð´Á#îY×Îu*‡3Óƒ*ÔͧŠyñ1jܡԣoC¢¢#h‘Ø ‘È~7–7n¦¦ Á®@;·#8'>€Ørúž3)²…){ &£¾•I`‹ u}"öšÒ4±ØqÕ‰pUŸÄÏyü#­¢{îKÃpÚK>úaÈEsÀ@&>VBØ{ôWü™ÐÚY|„Äô[U=2ÿÂHµ~QÅ×@Š\ÐkÐí?h#Ò1]™è$Øõ€o[//ƒ×—»½7ìBëöëNï (Qï§W'÷¶´²‰êßh¢pS5ýLo`ÍvÞxw&zˆì»Dƒ=¨¢ÿAôÔãX·&@^˜wrwf¾<«uÜ;aæõ:ãW$éšàšZÀ±2“f/D,çÕ£ûcôõ!Ëþ ë°v5±µo/YHôcê°­3úÐÕW_-|0<˜Hˆ~Ä"·´´Äüãù…^ 3Ï<“‘®%7nÔb±(õõõŒf <$@‘ê믿Þ4zôh3vìØhÚ´itÇî0+–ÎÔ fÆÕ–½Dˆ Å"P"¬£‰ÊT*šÄDQ…T¢d‚,jHÁýÑ ìl¢„JZ,j®¸&¬ŽM¡Dbâ $f%"nOkkB*Í(.„ãÜ´y¾MTI£"ØÙ>Ïö«è»æØsž½›Ú±}áø®ç ÓáB^|x{À ~˜4­JW·ÁbÙ¯t?„Á‰Î_ô7úÛª¿NHLs˜yÖTx€ó‘4í"I¥ÈV×Ã!5ì“÷o·ZˆúRωð%Fh¤QÖ@j tƒV«Û®O³èF`œÓÉÕ|B*¸UpQò)€¶)>Dܱ|ä«Ï‡À«1i¹÷#gn—ˆÙµSû áɪˆ-øgÁ¶@ˆŽ€êëKTß»•zÕ!PGªê#ˆCÜÒLB‰YBœÝ‡LŒV1î%ó‰½Þ¾”vp›2±ûÂóÀŸŒQÊ @s)W‰=`èîÔµ¡žöþØ0‘Üœü5´öå7)R& %ÿ²¾0ô%vYU¯BÊËwÛi‡.ÍR½!£µbšéSÇBöÚÍ_h»#nïÚÃ$¢\ÞÔDß^K›V­¥fˆf_н…±v NÇ ¨g5âØÚ¢F3›dâ׊³ G¢4…ªgnœ¶Ë!ãÍEŠ—-þâ|f®ëàè½ÅG&@ð™ÏsÖ‡·ƒøèš­FG{ñ!àìûÉÿm‚»\ú;Ò?Ã/,YÓVÁø2àx`¹óŒÉÖ"!•‚<ûæÄA +6õN¯ QKCáê&Œ×ÖXnìÆ-~eï‡Þ]ÜT]±ƒêWÖºב­+y0¶©_[5¡Z!åž!-¸é“_7¹®f‹q6¡)8;[h• ‹TD²ïù‡`ÿÏÌ›Ýûß6÷#&@<ý(&2’! ÈBD©"°dÙ‰°‹ˆà8‹ŠD5B„ÜIƒå,o[¸åF‚Зéµk'ùb;ö’|ýKeC9ÇyÃ-ga bù©IáC¯þçºÓõ¾ZñF#ˆ"\XiY B9$¸¶ØiØÈÿ<òá#?»Ÿ»‚úÈï(‘Á^³ýðò^# Ž <¾L Þ?Ȳzä¸^ùñ…¥Åèݯ …}*•+–N}Ç–ç!.%˜°ÁdŒKºk ³û¸‘ôo4öõóÐ>ºìôbƒGrÎ~brŒ#؈æZ=r2]ië3°ÆÏâ²"pƒ÷x°™D2Gbk;Òɸ곗 ÷ˆ9)¿y’l)ãü;Œáíò÷eö Ži4–.|˜¾5û6I½ï¿ pÈ|è  *àHuvBX"'ÖRöžqú; Y–£èøÏ„SDw·«²]e¹” ù‰-ÄY'}mþFì%™÷ú)•Œ±‡ Îó¿{.ûðQø½waM©†=±7Â.³%ŒE àK›ÀÐM®–À̧öLgõôLMô >¸VØ€tÆ*È„Z† iS€-„À霯ŸóõÅqìcºH? ¬§öXjƒÔf2&{ÿÅÛÇÝÏ£Á_O~¸v7838ÇúÆ#àˆnCúy áÃw­Õ–$ÿGcÛIc\Kãÿ ýCýF=¸üÿñ-!¿”ÀMðDkÐÙ‡{LƒHvLˆŸ-‹p&uRBjÐðÔÎRx-¨µ{0Õ  À»¤oKà9¤æµøWÉÿ 3M“Ý|óÍ2dˆùñÇwA…uçwÚsæÌat EEE *Éí t(O=õ£ãœÜ¯°~ýz“\´8JxÁ‚Ѻº:^QQ‘?~<£€vÞu=!D ­­½ùîKõŸýæ ž¹Î4ƒ0!˜*€5è¹W 5Ã&ŽYZ „ ^}TÛ–Z%0u`¥7¡ñí¾yŽÅ€¿"«ö¯ñ'ð&Ûéd±Æ:tlÙˆ´ÊoCøî5 Þ…Z¹S¿Qñ íïŒëŰ‹rþ‰…ŒWpÎî"ø÷ À¸ýÇà½Ûù³æbÝÒ®{‰›½';ÃÑ¢P8tÄÌÓ^k@R¿âŠÑŒ±_ãxÆ9ã¼ûj¿”p& ¦j­TV&IêXB\ ñƒN²S™k¦ŸúV { ן_bŒà Oà 8 ­.€ì>´›Ÿ†e} ‡‚ˆtD+*"è0ÕÃ(Î ]ƶaƒ1#Ä Ô6ãèzžþv÷ A !—œ¿;õ„×Ûö`Å<Ì˹JÕ:„ ß·„yÖ0ßò&ЊFÑgP Ê««x1H0¹3? ¼K™Ðý6\ø^ÿ©3þë¨_¢íù#¦=Ç^–/ŸVÜ1\n0öCÓ€œgGqE ŠK‹0vÚXôé_¹÷ +•B¢-;™Tc¯¡Ö…ßÝÅwÃã?¥ã÷W߽˓Ïÿ½¢WÀŸ9ÇEf^eój‚¦O8PÁã rσÚi:‘@:ÇæUµHtÆ‘J¦•jø`žÛ•A0¨õ DY?<ØðÄs÷ >HÀ¸¡~ס‚¨rëhjÖ÷mÿ·IràÙï7x˜®—BÞN¯q¬}… eyOvœv‡½+äÚ?–îÿMØC™ûÊI—QŸ¾F}œâ}÷~•û’Ì‚ŸmžArÒš"ðÞÍ­_Ñ Žù˜3³bC¾+u5òv¯wŒ.ý[ltÉcJŠÌºD ¸5Þ‘¤D{M-ƒ"hÑÙÝ‚uçü[gß°(¾- ‡8c mü6P`ë»íy5|0 ÿ{@²Î²¬Ç­”uïði×þ ƒ€ÑÐ%ðû¹9S Ïâï;¯iw¬\ñݲœ–çÆ|hÉSáÈKžêò DIéãx…/Ïlì3ù?áœ3Rþo|ƒŸqÆ‘x@¼ýöÛir¿²N=õTŒ3#GŽ”Œàgžy&º€å±Çãäž°m»+6$À´„Dœ‚‚ÉuëÖ¥ÿùÏFÈ:’ž:eZøÕ÷žÔÈGÇš×ß&·¨Â‘õ¶¬4j†õLjIc!Htlg68÷`ƒTR@†ÿ}ÌŸ@f;pî{øÈ™ÕZ¤[7£}ÍJttÆa¹>þ>|¨þØB:ûòQھ蜗줜s|¡apœÃ{ÔÏn žcù9nŽ;÷Ø<cXøÑgذjµ—á(äÀ‡_\.0àähªjÝG¶.»œ3†›ç—S;Tß|·’C *ØJw¹©µ!£@ćjU0ªEjg¬ÇÒÉô‡]ð‘Ø-ø8¯”ø1§@s7(7Àó-rŠÉy­šÈ¨þ›NŒGAÀD¯Q#Õd<\^L¸…×ÐM\ “¶f‘JR^Úw»ÊO?êóáƒÎó,EzÕz‹u>èì÷Ä.WǾ´œ¸‹ý’ôFår”[@//&È$kd_ 1e•» ì 68,0f“ ÝïüT«zßý>ýõýwu·Ê·]žlµ7·¢½© ë—¯QëùnW:æÃt]qóâ=µzŸ¤ÌKîÆ‚]VùPXkolB{}ƒ÷=Õ¢- Ænp”ò.Ó=Á‡DËŠ­)EÛÊ­hÙP‡Twø€Ð:GHym¶{ãb¹›ðqcìq‚ ¦Ý®\5^׎‚‡—êeδ¥2k±Ž… #<¿lþÉfðÕ­`¹Åo‚.æ7ƒôH Zæû­÷y¼}rù„Öq¥UKZ`4&Ñ4®‘õhU–[lÇ}Ž«û/Åb¿>ùª¹ïíC¹À¨æÊÀmàli¢4Ð;U@¢Wª+*ënA\ Ïõh>¤ ^kÝÄ">xp½ïÖzñ­üþ3ν¿5YiëÁt*ýÉG½dýwˆïŠu‡¾.³@#â×êZB\ Ñ°âÆˆªU¤œ"€ ºÍW÷œÜLZJüíÏüj°2†üŸP`8£qœþùìÀ,ìÊ|E–äá‡n]tÑE6l#w*0’x<Ìž=›_qÅƹ瞨­­ „˜äŽÅÛÛÛ%e»2ššš#FŒ°6oÞlsÎÙ+/¿9î˜ãï>yõE%öOC‘¨ZYb °¬HápƒÇDZÃèÀ'¢Ñ:'Î@J¨TŸ¤1„åI>^Èœ-¶“îVûH,ÒÆµ«°qÑB>„”ù­k-xÀiç~c‰Ü øÈ^68ôàC·®¤¬¬gLÀÔC§a[²jÁBl\¹Òµ|äÖu©v¡a'Œ>øÉ›—\6“s~=ãì<姇€spH¤–÷!§ÝÔ’èl­SV"×-Z ~ûO:v'ùF¿¹rç¸Þäþçaºêdµ2ÌÜ*Ö¾Hûí—hô:UÀ†“~9]ÙN`-óîŒÐ“p¤!ζ•ñ Ão=É—±r\7Þ¡sO>ôK³b»%icì ê^xÈq¹òá+ZÅ€‘Ã0tÜè½ë Rõ2;kœ• Œjµhß~“ äŽé'¿ùâžHñSœã ùAæ~̇‚„!ccüôñäfV¹·™¿§,bÒJƒ: ÀΉýÉqUdðc¤2ÖÍ´ý'JOÝ‚ÈmWU>ÏNVÐáZò ®þþÃN=BÛ¡ÕfŸÁ†Ü‘»5ñª]¶F»¾yæ¤ð€Or +•¦m  ) &mkðÁ “ÔuÇbÒFÛ–F´nm€•íFëÈ  C¯BÞæ/"井"ÃPXY„âš2ÀP¿t¶¬ÞÔ|¨mHϾC–€_ì|\Â{`.|ôùùìnîŸÐœ3²ªö—' pû'€^bc^=Ì-ÙØFú0´gÍqÉÁE‡n=heᜆ£%gʱ}h!ÚGÐYò-=(©,F:m¡µ¡]Ï}øðà‘4CzäÑ—~üþ>ßo>dá¡eEÃwöã\Ch˸4P…P8¨Ÿ!j=—+Ò ŸbÜ0}wRÎÖà>|èß±ïfœÉ±ð«c™4i*óÚßÏ<ýíºÿj¨S½ %¹bêíÊ5å€âZGz°Š0 »ˆ[N<ˆÌ½­'fÙÇ@âƒL ÀÏI™¬Ä^•ÿ“ßüæ7ì¶ÛnÃôéÓA)u#ÉdRtY,nºé&AÀÑpŽt:Íè8#ÀàË—/Ç£>jËUˆà%°råÊȪU«Ì’’sÓ¦MrìØ±©ššA“Ÿ›ûí·_ǃÿC8Òð⥩Îòs–a3‡©Á ¹ßd ? gÈd,õƒ¶­&€–e!žH¨ÉW$DAaÄY´±ÕùŒkÄð)Xz„tWµ¾¨U½îï µ[Öºóиy“ºõS“¡GiÒï©_û|Övàc0cxÎàl|^}½MZ^QŒS/>½ûöÞn7…ذb9¶®]ÝsQ9RÚÿ< ýÚ0ù½Ü0J8g9Æ>|pH€DPJû9¨(„$;[o«G¼½•@Äò­F\«HLyá WÍ{n\¯~˾F°az“ÍìZ£ç´ªC¹WUõ¯Áð ãÁÕ±ÀÞ…TF¤ a§¨ÏÊÍ_ó]°ÒV€(}‰ôâc.ŸÓ„íÈÍ—3† ŽûLÎJüÔËÚêáÑã]¥dñ‚#‡"ïåߌÔL›ú›Ž#“ÖiWí\<ß’¶èœLœú<‡@äNa‰Å”%h§}¨/:¥h†ÁØÕÚ=)×0àC)gdí„ýžŒòÊ2•-OîÍIµÔ‹&Ô!Ç&I»ÁG¾ëÝÒ»-Ë^2hÂÃ=~÷~ueo/pL1\ki hPàù ô'«²¹'à° Bî“:$`RƒtË rßRž­vhœõ$Ž0Ö pl´Ô6¢ysƒ7‘––D(B¯a•÷†ùU¯ ¶|øð!HY(¨*DQßbXÀC&)6.«Å†å·ÊŠ•˜æNºrÎm»_eŒÝišFÄè{û\c0 XûUšµ ÌÐ}õÇÁ…†ô·¦Ãxf9øÊH©-4°ÌEM:]QüÉLqà·"b®Œ.ÅúëÆ øƒ-ˆ÷£mHÔù,„—šÞ PV]†ckp,xo)šêۻÇ»ÓN퇜ÿÞ^/ÄøÄWûþfüìŽíˆPFjË…a`ã±ÕH-Uná*Õ8i$)P´²ÖQ».”)îüŽax¿gH¦ÆRƒ†‚·Õ@ •îR§L:óQ:™ùñ—|òò-€ Jð‚’ÐÂóbB8|á¾úé{5€ô/²Zu0—ný,Yþv÷ø 7«–n×8|î^ù?!è`ì˜cŽaßüæ79Y2@ÐaHH‚Š®stÅ…”——³úúzƒ,¹V™‰D"T]]m¾ôÒK|ÿý÷7ÉzbPmI…SRÊÎK.¹$Ä‹Ò5ä«ÏßU²ò㿼H–‹?H[µ*þ#l’›ÀI0Ì ®•a[jEVJ›öš| ½#¦~¼EEa€hÞ^HžxðK¢àx_Èž Ö5«P»l :èsÒu¡¡‰Üõ]n6¹qÙñWÌ~®øèË^38ëÁ‡жçzURZ€3/;KÁÇÎfŸÙ´z%b[6€«l=~EkÝúÙ|xÞêïve<‰ ºÛ´`Ú¶iÚêV7cw…ȇ°…l¶…¸ü´k>³£˜·p†[ºù÷¹.*9©JË{W`Ô~“)ˆ¢¸¼ »3Âr—‹ ¡,*h9ˆQ«Ó8ëþçWΫ ­ ^¾` yé‰WÍkFrÓEå%Œá~ƒã<ß#/Ó•ªg1vêš´B´¨p¯p •º:C}Nvºã¬ÜÂ|k˜†”µ–%6!—[¶¸ó´ë.Á6äâSŠNd šœõòàÓSx@Ú»º‡ž<Õ”µwŸô[Ê좩p,B eÎÔ‹ýÉ·„ j?°t ï;iûñ‡=ß’_^ÛûÈ.‹–áUІpúWNÚùoí>¹—­*ò‹ÉÈMkи¡¶²fI >J†•!d„Ô8õA#€Â…ˆF`²X÷Úu ×cý²ùð᧘7xÚ ˜·`þúð ?؆Ì~ñøê.÷=:ïÀþw.(Õ…´§a¤…\Y]ëØÁί‡¹¬Œõ”µŠ)µˆÌÀ"‹`|¼RHDB XÝÈL¯Ð‚•÷üAÁ¼Æk¬G+Y2² *j˜‘â(Oˆ¢ ·ø¥¾ïÏÿ`ZÚœ-¦“î:'q@µWT¿3å”×Z°‡ò»ï Â8ÿ ÁÝŒ±s;‚•[ÒÚ5“R›ìW€äb$§÷Eù†Š×t º®ÃyÖ‰;ÏŽ;õÛü‚é3iU×&­`ƒ¶ÝÅ ©,ÉÐÿ-ûcË—н|Ý€h©Àù2Û ’ rÅÈy-?{–+Â5hS_žU„R·ŽåÃoe„XBèp„TÉ2<@zÇ|ÀÂNÊ8 ²H ›üŸ >¼+†CYA¨° _½zµ$¸èÊ‚…p8¬Ái_$áÒ 47É]+@€b^}õÕ]æ‘_|Ñ^¸paÇQGÕ1eÊ;L²eݼŠ'~ÿåG,+=¥´¬tHMz¤H«taq1¦u KÊ ¥©&[éLʱ‚€”ˆ'’èèˆ) (+-@aaÈE 7¤;þû„î÷o÷àaß‹*¼5ÿýwѰy³ê#óÒ ›.„pÞj˜ÆùG^<ë•,øèãÀÇxßÕ îäRµEÅœûÕs|ìŠX¤ÍkV ÞTæÂ©©·I·]ÇŒÆòù[I+ƒ¦%óѸµÞ_÷áà Öo³lñ„»Ž|£“=À‡É€ÿá ·úN¿Õ.VùE¹*ž7Vü'8-”Š*þM?ÎÙw„Žÿˆöoõ’r\õÕéøåOOØ%‘=Ô’Iuv(kP2צŒÕCÊNáOt|÷W,[œN• “ðå1‚KümùºÔÙG„"”f^¶«ÊêJŒ™2}‡ôßc¨ºûwŸàº«§£¸â§hoúžj³¥¤8„!CÊpÈÁñå‹'¢_U‰X’±8R‰¤î·‚Ð lÝúÐå'n mÙn ñ”òšso\’ÈS‹Žæ`律•óý9Pß§1£& U™­þUîE>ˆHÇØ=ó™ Ôƒ%,c¿G€vÝ;^üðíå39ïæÂ‡j‡¤ îë8}lW®»ùƒyPfÁBýÊ-hÞФÆ'£dH©²€˃W5|˜!”+E$ßA–|²Wm‚yð‘›JøjÒ?Ì8ë-»øèUýðÊÚLÿÂHÑ¢fàYî}z;uÕ~®júXeƒ×¶ƒ5Ä{QDçw§«ï^ädzÀÚSŠ›ÛϾ® EMOGæÔ—l½rÌ´Ø„²¢œôÂÔf§›*úõÆýF8“[wœVý±pÖ"ÄÛbଫßy‰L7q{ɘgN:æÅ$vSîýŒ±—ÌAƒÞõŒþ¤M]ßàÎs׵Ĕ¨{…a˜¾—IâÎc°½)…”¬ÇX°t"‰„ªk'ðJ{Ða¥<ø€åßß–Û¶<þÔk¬ýoXgÁ'`¿>ˆß2Ò|+Iwñkøð¡„9-ïÁ2âŠô5Ï¢A$CmÆ·ˆ(•ÀC¸k.0w'äW.Ö£›üŸPº]ö£ýˆQ•rF É "Iº "‹©T»÷Á~ÿûßó믿>BÁç‘>ø L–I±"æÄ‰CQ*^˜ikk‹‘E$dÌš5G¾ÿø—¯‹„¬+3VÑÂb'u)`!-Ä!'†òÞåúf/õqa[H¦,÷Á˜çA‰DqqQÓARá­nµZªz2—DZäFŒq€ïpB¼ç"wlTŸ?}íu4××ëø*?e¤j }cÌÐñã>ïÝ·>jtÌÆyAæ&œÊæzÒô±˜zÈ rWV+ýx•Øæ Hv¶èE†@.|ä»]éjÂ!€{V]†¼Œ°±æÓOÑJBà‘j[?¤ÙœóãϼnA YrÃùe¿ä 7å@ˆoíȱ‚ Ÿ8’\­ºŠÉi«à‘Ä»o^¢òÿEG³[ÿOÒþ%ôÚ­9Ç&NèƒÞ¹báV [Ai<CûÆz$Sñ«€ÐP"žÐ)Þ¦æø³nX”ʲ~¼tûßš=(ˆó)Îr»ò ,N˜1VÕ´PîVrÏ!üø“Á³68 ömµ_xmž¨…†Æ-ßP•®“‰bumˆ5µ •NéÔÕi+Ëæ—§‚”dc8þì¯/nwâ=ã:&*ìÆ{ä»á R…ýƒacþ &ärÛÓj =ÑVŽüøŸü f7•kjî¼9›eÒé‹ ]÷Ãì©GL&7ºþøâ…í:\Hìca»ôz<™ÆÆæ#!2uÁÇÐRM>|XtàÃB¨ >賆Â`;PŒ¬ ëQ»|-Òɤ ¾ú•Û¿1íô7î@–dB<^wæPjJFÝ"ŸœÔ·Lë•}û˜á‡Ê£€%Àšâà ë`¾°¼GwÁÄéê Áül‹«8su+âûõFë¡}h[f}]8&u¾Ãp£ØáÂhðá CK}3V|2¯;|ä¦M~“Ñ}ÂÏg°‹r÷Í5×&ÿ:éP/ÓcÈÄ~ÿ¬G(帀‘† "DAçäŒtš’wœˆÝ)¥‚Žx¬±ÔÂjÚµ~d¨õïéÔJP»ªËÂK‰hîý¯þ·KIÿ$–xntW_r Ek0Nx.€ä@²­"ù@’ã¦e ¡Ô¢ýŒ¯zÚ©µÀ xüs`»D< ¨ 18y°žüŸt¤jç «ŸHéØa'ÌÄGMS€°—ZyNvÅfÄcàùnW¾Ë•i’†h[Çz€í¾ã’´m´56aɬ9H%R>|HI­‚•Ê4Þ&8÷¸¯|ÚàÀÇo9ÇÕNesß¿ßdYq¾|¯ê^´J<ƒÇ É ÄœzÀýX²´-·`è¨;U_››ãH¥l¸R]]ä=T¶nÕ 4bx>ÿôª½T]FBHÎöv´m¬Ck]““¶Ó €UêC™‚7“Ì«8öÜ­üÍà8-`2<õV.:¾T»^Œ©@Ëé»2`xÍƉmçµî¯ÿí‘¸è‚ (,û9b-ßñÚa£ï!ȰÐÚ–D–( j©¿Y?¤¥EðGÛº­hØTçúLkØÒæø€k)<óÔ«ç=}éiÅG3à9]Û£ç`óC«qÆeÇ)Û3–`°,¡@vÏD§b¶ÒifV¹£¥»ÇeH}Uµ†V.oFš€•$'ûՔçҸæÃÛÎøÉlë}¹MÈy-Üí/vê¤AgOþfe•[úî*ø(C¨|hµ¡@¥#G# õü;ÙÆûñŽN,úàSd’‰løð¤¸É3Üà?œtÂËßð’5Njß¿w‰ŒšŒ³¬ „œÁXŒÐ¦8X4þd ‚™ƒÔÏ WÌß}cy|ñãóR ÑvÎ`X\ÂN¤ÁêHW„r¿®ÛdZ‡ï1ží•kTŒ äN@'šë±eá"HH8H³Ò&ëb’/Ó±;FÍ|òuì¤ÜuSÍý†Á.' 1Ì ¡,ŸN²2`aª–Åh;ˆâò õ~ŒyßÄ ØBm§ï:}—¾»2—í­ëV£nõ*¤3¹Ö~KHÕ:Ï;›söJDpõ €øÒXiÃl÷£Î‡ˆÜÀtÝæÁF ÿÜÜt¾>tøÛ¹-ç>ŒxeµÚRº¢,M­å@ˆåÿ·Î¶œ:¨ ýƒÀR8î³âHÆ·Iàö%@+þ?’·Þz‹mݺ•mذp£ƒòøå•WÐÜܬ†›,,CD0tèÐU3ôëׯäÙgŸ’»UଳÎeÍêrÝbdý€a JåË;c[+ßyòÛ?inذqI)˜ACcªªz¡ FY¿2Œœ4å½ % ÃГ¨tÚVÖ©\¬„¶fHFÇ2jòsƒ*/©„ȤloR ¸Vw(Çm€›a0ƒ”Æ÷_±ÜÝ×”ŸhK]V}¾²} ˆ!í™ÿúøçÓ ÎÆøðáûõzÜ4xÌ4uî^è— ŒNÇ;a'`LúðáU‚  0°½¤LÒ´¹ ?˜ƒd"™ †Z½Ò0^£>_øô ‹Ïfw›œqyEóá£7¹BéIÃÑ0òeÜä{°fv5Ž·Ýªú𥋞À³Ï/‰sÜwÅŠ–h­þýK°|ÑõÝúñ£ÛÞÁk¯¯ÆŠ•M¨ßDutÿûï×ç3ç;~[ óè?âù–aÉ¢­øëÏÇáÜæ¢wEÃF!ðÏ÷qæÑ•8÷øÞ.|`àûä³­mœËkñ×f}Â¥'•yïŒÉOBY¯’sGéÉŠÆüüáþÒÅOàчÎFA©¶u¶Þ W6lh÷¾ó þùâr8¯ÿ®´µ§pÄ1ƲeþÄèÅû'y±9dèxñÝ&¬XG<)з2„Ó©ZRI¹®1ñ’ÁQAÝDÆ’X²:µ›-4µÚq”5£Fõ&+×WÑØÔ‰^؆¨×ÿøçÙxñ¥ådݺ’@ꇨê]€3àâ ÷Ãçó6ãÇ·½…ïÜt(þçûG`[rÐa¿ÇÊUèìÌ ¼,‚Ú5߉êaø$Ýê߉N$b-xä±ExííMX½¶±¸…`€£õuô"bϾ¶'R†ã,†aøÕÚ‹ËK1ã¸#ñÔ³Kñ‹K°œ&˜)o·|ÑMøÎ÷_V°÷‡?}‚oÝx¾ÿÝ#÷ÐôÀþ…a³l7ëŽ0ÒíóÁ ÿ¬ÚŠѸv=Jû•£°¢È¯„nY|p!PÔw0 è™ †Àv±‡RŸ­Üt–}< v:•ƒ~·T…™²]Özï‚?ö3³%õZѪö1eŸÔƒq¿ ƒH5E¯Dú‡Ç#øñ&°Î øGka]8bº¦üÓõ0^¡k7ÄàdBðÚÌ8²vœX…d&îZxH{†aÛ±ÎFŠË0xâþ(()Ø®© m­«CëòÅÈH0 ð@|8•êcRŠëFðô_±¹ó›ýB`ø‰Áù7Íg ëæ×¹ŠH…eõb½‚½,ñ>ûèѺ/¦{Ê Wá}O¥³ÈžloCí¢ÏÑB}¶º»Ú%M‚毈n¡Å¶ô €ÔhøxR£$²³løÊ³5·Ÿ>óÔ‡|áŒù B­ÌsÇJ‘ftÆ,¥Â iæÀó ¸~Ð<,㣌!,aŒó©›%£ïI`å2à ü$?ÿùÏ™iš <(·, dÁ¥×¹`qJ©kvž5ŠQÀº >úè£"ú7*4XD1$œÜ¯ ¥ÌпáA"rÑŠ?õÇË”ìØtR¢³ !z=RXªVô‰Ššj tº˜Z0M†(‰ Ë)(Åm€eTš:!L$FÇLSÀàœ”1(ËGª]gë`œyÁuðb)²óí3:¸†#¨\‡ðo%Ëÿ«š·ÖcÅìù`RÂpÀƒ;ºbM3^g%>|xþì3¨Úñ1g¹7ÿf©­™D'¬t BÇ€Œ¨–i×¶½ìÎи©óiE°³#ΘWÈ-`º‘H$?}í­5ÅÇ(>ÜUqRæÃGJzp8¢…ô$ÃFÞŽM›Û5h´ÿXÇù>JâÇ:'Ú’ ÿ)¥w,_"Å·¸ÿÆÛοN>|ÄãiwÒŸ1û³tÎmtïcá[gaüO•~7'_½Oÿv\.| ±Xªáš¯*ïLHŽÜ~}üäz:V BðuÒ‰cpç¯OÙIÊJG­ªßfl¿ÿ…´-ö¡­ýçÈ–¦¦N‚±÷øúœ9pðṞË>¹ ë/Á/þ°oÜ„|á¸î‚>‹ñÄXŸœá¾'[tlKJJÂøÝ=gáôSÇoóQ-¾Yµ~?~ÙíØ¤‰ý0ëý-ùë'øò%Ó{¾F]£äfLÝ¿?þþÈÅè[]’í±Î¤²à•õ¹;’Qƒ#øÖ¥Õ0 ?‹[´¸ ·Ý_‹Ùô9æK¼íW8Kµ4¯¾ø5|1ÂþíóýÄÛÛ°ü£wÁÒã+aÚf·˜CHUAI¿ÁÚ}}û“ˆÅ°ú³!3) ¾o™—2×êE°> ³1Ѽò§ýÎŒ[·ôÿÓÒløð‚© 3 9}Ä…A|Ö*Ÿ ô-…QûÌýHÖ@Ì?x¼9Ñ¿bê ˆ)! #*v¡½i’1‰ÒløÐËØ5#' ¼o#Qì®Ø`ˆ·5#¶e=â­u¾õÃMóîV©ï¤öб?û÷íX>Æ1†…åðà#hz …0pôx ù lÁ@æa*Ä´ÁÃzÃxc)ì#FA0¨kªŠ÷ÒwŸaÝ¢¹X»pžÎŒ¥]iý¼Ó®bzÁí6ÚþeKÿˆ/ÕÀõ¸ËÎës”û­ï‚µayÇX÷íl-LÜàu§EVM‘Œ¤¾%$CªF¿ÞûÔÞõðThaÒ±BÎ!eR.–BÜ;[ÊûàÈpàDür90ÿŸ¥Èír±R–ªf.)‹§lW }ÙØØÊŽÅ)ö"@ÏqãÆ1rÓ ¶´´P5t“~¸©o}ë[}º\¸TâeeeÑÍ›·È3Ï83Õ¸þõI+¼|—”éŠÎŽF–¨[0 '\tÁG ¦6ÝŠŒž0šA –-i;ÎlØvñx B(ˆ†&èX –Š%aHÇÚIÄ<ËÓ”K }ãòáÃO€ )€˜¡B•‹q½ÿ-|¦Û»|bgÃð )]¹¦ o€øðÁU{ÀQSqôé‡m:öÀBj?õd ¶•PV3TnÆöñj&Ãgo¾ƒ† |ø0u, m‚\šéœcB\—?𼲺 ‡Ÿ~¢òóÝ–ôx+ššâêüXëí Áy<ˆgŸ[W’±_ÕÒ^ßFkãŽSõWõû¾zø54Ä-£GWáÃw¿®jÞ¸CwÇ]oã»·¼Wf΄·ß¸?ùþß0s”ï’FÁ0fh?¸vtèoþb9ÖmJÁ•Ÿ~­ß»¯=ˆÛÎÖ_cG"¤(i³Š³ ”!.V0϶1¦ç]ø}f àJ²ãNdËÖºv v«,çMÁ¼P÷Û“8öÄ{Èn«r½Ôÿ–áÈcր Ùrщe(.”¨Ý’Á¨!æ?}° T)ç^u:öÊNˆ\(yòWàÄÆåô!Z|ƒuþbhEE¡úÛÚš~ƒHÑõþŽêƒ¹³¿Wüë,|íÚ¿çÁND-44úãŸè¸ûM½ ¼û-ÿ wüßÄ×Ià©ßcúŒ!8í¤1Hu4âãVãõaÛÒo¥_Vý¯}Ç]õý‚sÎÞ_UñŸõñ<öÙèhù-õáZaxíå¯ï¦Á×?-»˜Þd»àÖ'¿ Ùq?×-ø[V-Eqß”V”AzÕûµrÚ.©’¾ÃtaÒ½Q2•ýÀ;°Þú –°Xˆ‚ZN„`G…nÅÖ³‡B–FÐë¹µˆ®mÏ)†g¢àf!Pú”À¾æHí>”²`üè9°Ž$ìoþ÷Ot âa£€Â0da\™ë2$€d¼­fƒâCu t^ÀyaYú MÀ\³—"¦˜šçµ­ ÷Œ5ªô¸,>œVHÚ>uüá/¼Ð| fŒ½blÁ”:™ƒ!mý:žÜG9ŒÇ>õ=pU€¯kÔÐwÙÁàŸ×‚ÍY§=…jÊÀ6¶ sïÅ{u­r͂ϰüó•04|(õÜŒ_xÎ;ßFbâ?Tp7iŒ¶ónÞ~^‘AS©™×ÚYV‘#" Jd„H)½m!„)ý*À‡¨“ü¿GgËRʃpà` µ'ÍÖ{( J€1 Æî %ù–>GÉè±À__ÆÿBС¬ýû÷WÛétH*<¨,"dÑçܦs ¥ ”„È-+púé§[d) W+Iñ ¡$ÄýjúÙ½ÊÅÏÖ¬kÅ–­­Œ™nk/ ×ðÚʾ}pôYg©´ÂÛ“¾Õe @ô/w¢Ü€Ç¹áÂkáK®´6æN¬ëêÚ1jÜÐÒp‡ú7gž1?þßSQ·éWúüÖ8MP?Â÷o}N}Ÿ—.­Ã=¿›…›¿åW§ÿ|þfdËóÏ\§Þó–Û.ÇâYïჷçâ—Ö95Š >t@ùˆÔnNÁ™c+Û–œ|Ò€…v8A³<­ë´sÃ@&Þλà½`| ™ïÎòÎ[_Û„ënÈ­/;~ü'sP\ÆGÜBà÷{‚˜ÏA¸ðJg|Jñãï† ¾ž@#…gߨCCK 5½()Òü=z†ÛþÒ„Ÿ_×§]ú% 9 ×ý†"»ï}“\§|À»úºÇ°ô°ÛPPB"‘Æèq· ³ã~D÷üò¹ÃpùyÃ)vd zÇ?ÿ¹}ªJ¢Ú<:a,äÿ7nòÖÀhü§ÐøŸ!ƒ+ñï¤ñÿ_¿áêÓWuvžß}@ã\ùÆ ÉE_…+ÿ|æë4ÎaÌ}õ12f0Î8²7~tß*lÜš"à2ýô»Žkâêõ¹ßŸ§oT)ÌIpÙ¥GàO÷_Wzõ*ó¾ÏÙɹÒv«_®iY½$¤W Nê“aª½”è:{,;NÌöé-9ÑÑ‚Æku¼GFv+*- Eƒ&¡´Ïн24n}rT_ˆã'"¼¸VE_$[ë` FÒFå“kÐ~Â@ÔeŒŠIˆlŽ#RÛ‘“g a˜º_- ¥ìÓZÈ@ŸRÈiÃô þº ¼bêÈ)C¶‰GÌ"…eÀà`/}‰6@ jÐ( ;­{ý”]¢>ÖÍ-ÌŒ‘¨ƒdr+„Å D|€öµ_Ÿ÷Æ ïL:ꥎ,׫‘ x™l°_Þ‡²^}°ßá'Ó~H¿ãÔ‘Àãs é²p ‡²ˆˆÃÀæ®K0pݯmÚƒ½ÀÅ>¾8ýGMÂG/?…ÎÖFžúI núìùc )ñ5ÿ5²5Àƒø° B¨=Ѓ<ÀÝà· æž“7<ë˜ô DIni)= aŒù`˜kñ†œ á¬C‹¥¯ÃCÀ8ƒú2“ᯠøÛ鿞¶m7À—I!n˜*„-¤üN3Δœ?YÊŸ}.å LÖ3šÏ5ø/‚IEÙA„Gy„“åCe›¢Ôº KÈB" L$Ňð?üФ¼IhÒ¤I%ÑhÔ c6AJ!YE‚&-íM-VAâKìL¼”&,›ƒZ””U `JU”¡¸¼–e*³m:ÝT:­V“+ c’ö9è° Î…z¨Òµ p¦Óí'ÝŠèêóã?2ŒãMhø(Ã4 €[m+–*†–N´ \4Leâ9ÂþÅ.ia¡aéB$êë5xp®[ƒÁðâ=ܪeÌœJã ûF˜ŒÈ^¶Ë§šzò­nܰ¦a(0­­m‚ÁEv%ko2føîW}qÄg! cGòô“×àÝwWࢠg•ó¾t?\IuþÙR»¡ï¼³ _tHà+JîA¨àJu®öó÷! ¬¬7~ý8çð³_¼üý±Ïðí›N†+Õ}Ê-7÷Üטּ Ûï`Hpü²ÜÄ¢•á¬Ú˜>ºûëÚ×ðqÓÝu ÁÔñ¥xëÝÛ …veÅYAR:Þ)¤vƒàzrj¥ÁxF°¸ÇÉæ?½¡¢;døwU›HfÐÒÒ™ ÛÑ ÅÃÆràÐ}è{ð1zT5žüû娴àdRF)Â÷¯.Á†M­ø|a# faÙº ^ú°?$«ÇO®ì…y›Êqã(¿’{II1nùÞéèèHãÎß¾ Ô×wà¹àKç@íqàüSáÆ¯ŽU“ûT²ÁÎ58áØÉ8yõT”\®Æ—&5^b‹Gþþ‰‚L˜Ð=xUÎø—–|hØHÆ ¾]F±>Ÿâæ›N'þkzü¿ófN,@ÄjB¯ªƒ¸çû#ñùÒô¯x®WS¯˜VVDò¾?Oà´S÷ÇСU8 BC‚çžù¹ `ªû °:HÛ E»ë{ 0ù¿z)Euõ~Õ:÷Qaƒ±Ž¬@d(À» „@0Z  |OÜR¿w¬D¬ KÞ‰ ¤v°ráCYïeÚB²q+P9Ì bwļúäȇ«`•K*7aÌ$µl0çYÒŒÎñ½ª‹#º¦Ý¥å f †Yäe¦7ûâü!«+! ¬Ü 2âÈI;gg@„Ʊ|ô!H|þ’‰V”V¡zØd”TÖl±€¶„n«ËvÉ<`@iß)HÆZk™‹dg< >µjûi‹¼êÿ½ì9þ3@[”V|q‚ÙÏ‚¨ 9}8PY ¾±ÆßއРFgâÀ‘@]ãYq!kÿ ëw_ÁEîü ¡H!8áÌ~ýi¤b­YI¸ÓŒSM”ù¯Ÿ”b¿™²Yÿá¢e£f„åý€³ð  Ìä@‘Ýc:,Ptç™§¹"sÅ›„\³¬sÎ9'BÐ#›7oUýŠ‘è\za¤ Ä#ÈØÚ ™(% 9e:˜ŠáÐÙ®8·Ôdȶ‚ÁB:3éL¦ @•«U(tâiH5 Ò‰bE&é™üw`UmàöÒ~÷(ŸˆŽúëË¥ÇI[Þ#lQF Fô¶®?’L.A¨ 7¢¥ƒÔ‹}>Ζm¡~ÅR´mZið„çÀGPµ‹>™ƒ~ƒ‡ ‰â_'ì_öï0hÂtX©„J:PKŠx<éÆÀøçyðÑ»¦?9å •öy›"™×úࢋúäu“gmržúW|T![B—AKÑâ˲àåõµøá­gy²be:וë¯;O<ù6oiÕñ~@òºî—lÞÃE0~CqQÐŽææl+ãÁÇÍ®”Vô"ø(À®Š»Éß=VŠ4ìÌÚn91™m÷ [t_´äÃÇýš,½vª/¿øm4¯›Cð‡é¬ †…Uk;ar[AèÖF €†òïß߀–ºÿ` _®üêQ @\ùˆ&}œ0>üp¥€­ëT{áYÔ…VÕá&¬D#RÁ5b0~{ç%¸÷¾×pÕGÁp®³ ®, UÔ‚â˱ˆÆÏsÛðŽ‘`%M3ýçñ¦fÔô+ÏŠ'yΠꦌR€™“ŠQX`:µ#L/µò™ÇöÁ»Ÿ4)77ýïßSJ¢ÆpäˆjL§ø€3NŸ†’¢2ÉfØé-v €g5Ö-³Õ1)œÀkRa{5Kü4ÁvL‰°!› ’z…<,B¤²«°e¹Zd „¢ÿæë´6¯˜xG;2–€•HÅS°¬ŒrÁ²²jò4n\ +-0hâ!0;!ÆÕ‚8zØŠ-z@eþûƒ»™x›N®Â|ë~°6†Ê¿.C 1 îÔ ±û‚•Á7„!Gõ«.Þõã¯X0L®Ÿý*•îª}ß”g€ÉG£~ÍB 3ܨ޼=Ašc`Ë7«¾Š3¦U%@yáN½/T¶*Ó¬7§@Ä?BR$øÞw’¶¯ð*¹]q×qΆ˜Ê5|h8W™®†Ž›¢âRó{.ÉÄæ­kh‡ä lC#ØÆ&°w—€>Ôe“;f ¶óT„„Éâ –ÌzU—¶|˜^&0j jo¤v3€_ùò_ ›tyýcûgÀ?`ˆ,p°=‹‡ßæ4̳‚9ãáƒòܺx~‚@ ®Ë•>Ç0¼×׵ʯ¨î½o\CL†Î I°ÅT»—Î6Hr‰v—@Ê´-†T©N¿ Û^àž$`ÀÒóüÿErà 7¨ , &Gee¥$Øèªù-[¶0 9aÂЃ—”0“È€âE )Ó•I~  $'žxb¸wïÞaªÎ!2¼<¸ùp> *‚ # Ûêd •55`j¢Pñ@6¤´èߎÆy‘pX‚d¤L“é4º NJ?)¤ºV÷šº¼°w÷-êýÛf6oøÚza‹k…çRËHÔžž5DÝô“±UHµw Z= áH LgòÉþáçB l^>íVûð¡[Ï «£=ñ‚sB˜_ÑÚÀæukñÆOâ„ ¿¬ roÉ0¾»eÃú•Hu4©ÏdÕª­pÓ횦¦û¡t¿CŽBAai·[óÖõjü‹û „É98ØÒx¦â%¹„Ú‡¶ÉNGõ“|ñ…™îqu WFê›Ô]SS‰ÙŸÜ†ßÞý ¹ }†ó~Aï«'¯BH,[¾…xÀ~c‹ñƒk†3‰úº„câÝRÖ–yîR;+ší87 ¥_ÔL+aÁάÅàæpµúÍül#ÔÇ¿ùP½Ž(w aÃÈ%îÈñ jjÊ·¹ôš-™¶ ؼj‰ëMÊl*Sš›vùÔCŠ0wyJM:6®¢`ï¢ô š½‘-Í-q5Í®uÆ™\õ¯)v p¤¦1+ÕÈ6\rþd|…\šwV_§Ga¼Çcþøó¬ñ×0öm²Š<óì§xðgkiÄ1WÌ…À†­)¥¯ÏjƤхòÖk‡1×ýŠZôîeâµg¯Ä#O/§ïÏl,§ÉŸ+BH,]¶YéÝ¿:§žñx䨶|ˆî÷K›TÃGVåöìBŠÉD{ì-ëTM—P¸…eÕ¨<Ñ’^N âÈÉD¶uÍ" Ȥm¤I·®é@qï0˜€É ®_¿Le0uÀ Ûu=ã¼ 6gµÞ~}Á¶~r °Sí j܇)äè2¤ÆT °Qòj-ìþEH^½LˆaL e}Ja,XYY 9u¨Rpˆ= Œá¤Ñ‚b  €®—Hkð ekê<ðpýA»_‚˜9ò¬é@$¸ÓOfÑ’2ˆ¡3^ò,>Üï£toeŒ±;ýg×âÑ:~ô8€èÎcúBŽ©ûÅ `Re@k'Xw:õޱm}žlÏœ·ÃQŒ=èhŠ}‹ ´†®…’§ü+Ë>:ëqJG\«ä¿H6O N¶€¯›À1.|Gy„ȼ‚… xº‘3 \=xqЈÿ¡XÜtÓM àrÙÐÐÀb±˜¤”¼’@C}^ä¢Å8ç’ê{È7JZ=0Èý*IçÇÉ!·«^d‘|n‡xS(ÂÚNR •NBš6³ÐoÈXTÑ>™Œ©›9Y3T0¦‡°¹Z]ÊX"Ñ Sg‚©@ó„Zq²u %€¡}]UPt' 3þCÓm¹ÅÕw?Š<)ï߇>ܲâ²ù¶m_%l1Ð{j—,OSñè¨[hi?TŽ=°}žË°qÑûˆmYÛ> ¯¨ÔÇ“§ ¾|å’ƒLÓƒfn5ëÆ-ñæà°3ÎW.lJØ>€ù,Ž,ÿë« àêÕu°-+7ÕnÀèf™røñ¨ªéîßܸi%Ö.ü¡€‰ŽUŸ¡ ß0•©-\6 ¦_¯2 IÒñGŒ^àìØ–”•ù––C?ýáʬ÷6°bé涤²W)Åœ§”s>ýÅj5Òdr3þñø,Ì›¯c@æ.nÇ+4â°)EH&Òú3qRíf‹”ú=wE¤²8 g‚Íýß™‘e ±%2V dò#p£?Ì`_åz0:ÒñG•î) n]ãÁ‡R!2X_Û€aç$Á¸©SÑ»o V®Ú‚áê‘/k×Õ!ES(ú%}P«²>üu-µó´{VSÆD*ú&)WVVÑÕïÄRjK`†ú›` 4þ9ãÿÇ?\…A+±n}–/½ YBÇš°rùoUÜQ¶crssLý=Ó¦ÀUŒÄ‚^S)xÿyßD<ùjN;ªR% Á¼¥1GM'kÎߟ™Gÿ~~DߟÎÎ$Å÷Õë¿Àãú«¢ñX€¢Êoê ùG–âÊË&dUÏöAD*hñ-z›Z;·z;©"ž 's’>7ÖÒ„öÆzlXö¹ºÞÐýE¤¨”ž#ö¸(ì óc>½ûâ­°2²ã@¶+Õ#øyí¢‹^BüHØâ4ï*ÿ^á8gü‰¤²ÒÔ ù²† à±Ç>·o>5'Úò×wg_ä>)¦Mk°vþ‡!­ *2¤i>ºöëÚ¯¯î[pÈ)>¼ÂÉ 6AÇ9QVl}=$) ޶h˜ã’è{{ø!÷’;ð?ö†7v¢jîâH %YxkR¹¤?Ú Ñ–†uÌ`¤BœuŒP±‚dkÏns+Øì5“ª¾0mK:öñ ¿/=•y rðùt½ƒ†¡zË¢ëÐ9”òYõá„û}ôê°(UPÌ vŸ%}x¤A¯ ¡Vˇ =‚HÏþ˜`L[D„ðƒÒIîMRJB€&K`…˜0uA;)ÀIÝ`t“!mÙ@!ªI3Ðmk°ÄÆ/[m$Dé÷;rª”çΖÒKß²?аÿÁòÇ?þ‘Q°¹‚»x<®ü©:( /ÈÍŠS0:'ËD’´Ž1cÆD$É+Hç'KC™Rر­L …(Œ”¨ÑNе"}!‘Jƒq¡Ü¥, 釂ýð”¡ÔBH„Ã!„‚Auœiâçz|¥:H{«ÚÓ· û-v Æýmáê¹ç%my«°ÅE!ƒ©Íõi¶,jµÁªÏÞ@QE? ™|8(¾e¯º^%b­h¬]‚¶Í«ÇÕŠéœç>„0¼†s >ÚAbr6Ë0M“_êÀGΪOK]-Îz:I^ÿ§ÖP•ÂÆæ•sѰ~‰W—@‡“÷h1q:Dò¥3ÞŽt¬Yﺬ¤Ì0 Ò2h†´Û`¦ H›áaRx“àtòñÜ;•d9û^p(eXzR" !qâÉ?ÅÝw}Ç3É þý|ÞZ<ð—·ðçÞTV¾÷Þ_Š_ø^V&­V¨÷$8 x‘³qé%‡£¢¢HýžyîSdK$P}÷ÕPí?†Ó.¿å}®AaÉ…ˆµ= d2Þ~g1î»ÿU*²7UU%ذî~ô ‚ádÄj( öÝr¤ž¸®8]j§‘Œ-Wq$GÏC,öFl—‹yJ Z4\†§†)éº"«â=ÇÌ xùã*ª¯&xy„úøŠ‹Ãøæ'¡´´@Ëoî|уtâaø"(.b ¾ó½"46vèø‰¿/C$Jcð™^¡UkZñ׿/ÁŸZ„tZàÅWÖâ“wûBf–ãœÓÊqÛÏ4þ¦‡0täõ4þ—ÒøOPã/„Àüµ4þïÐø¿“5þ7e \ioªÇdõ8bF £,[ â–òJ‚6úí—˜í*ÖÜ–†+Ç;¿úÍ ¸øK£0ÔŒTl#þþäJ\pÎh¸ ›Yà‘¶×Ú~üœ8g6¡úíÊÊ(í &%áB‚aïy¿ü“7knpáCø"2¤Ri¬œÿ1$*«kPTVŽ!c÷C¨ @%ÙûðáãA2ÖŽ­k—aãÒÏa;ñiR Dô>ßÉ$î¡s!øø3Øi>|èþôþÉ›0ÊæåßU½} ê‰G"™m‘аçôÆ 5¬¼# £!·`U„¶¾×ú¶!ñ%1¼vÿbXûUÁÞ¿¾FqVj3OÃÜØ=0³làãµà³×‚-ßêL¸Ó”ªšvÛ3¶PUY“2÷Œa•ÍP×CÄ)Î:gS+Ы@CI@ëëÃ8‹Ãµ«‘¶2Ýê°Ð3¡Ì0øuŒ{Ïïþ^PRDqcÀyf× # T„ÁZcY Hê¹!&Ô˜ËË‹–ÿ=H/ Š*(„™€í~1cí©V>~šÏCÂIEŒì`üQ Þ<ñlÿŲx§0ÕþÄ€³©-Ì·|¸uD2Y ȃ‘x®÷ó_÷$?&D“.çjßuж͹zMŽ“®µ9eG%`e`X–ºWƒD2ÀaúµB q}Nœ6c¤k…S«„óR&ÄϦÏ}*eÒ§›'ßš÷ >`À$ FÁæòC¹W dá€mÛ’ÚÌÀ“T)=A茥Šâ@Ê:::Xß꾉ÎMu3ëj;‡ a!À#àH “´¶-ZÕƒÛ .8³u´H€@:í— ¨IK"“T¦nÃ`…Â0yÀ¹9;?|¨šþÁ EÊy`úð¡KÈ;·²š–H)7 !ûðáߨ„RŒÕ‰DÇRÄÛZÑwødT ³W°;›7cíÜ×!¬$XN¼©[ûƒ`Ày[áÈ·ï­ïøíÍ5W&š¦q6)‹—çœ4€¶† X6û5Œ?è´=È”*Õ±þ»²…±}“JÄP·z®SXKȺ5u>Ž«•Ò,øpd8ròÌnË#õk5Ü*ˉ †w=Ã0`g€‹¯|ó5:~ýI¸ Ÿƒ¾}Ë@¢~OŸŽ_þâB¸R]]Œ;~} ®ºúú¹º©gœu»‚ÃxÇÃ(*½ÉdÙÒ¿Ë5ƒ ô$©Tßýþ£J{õ*¢} ‰\+ÊÃç- >pON>4xµÿ•@âÛ<^}íxéåyhtjf4Q ãŠ~ßÂy_ŸãMØ^úË!øpn‚ŽåÃȲ„½þä˜~ì_À˜íX™žÇí¿zAÕñhjŠyu@2ɇª6?§œ¼¿ŸÄý¿»Lí§ã1¤b‹P1ðwøÝŸ¢¢<¬&¦±Üñ5²ÜsS*/á¸íÖéøÆw?@¬e ÿj<È­ mmñÆ¿Ìû[ó?[Hüå™-J‹ U¨5‘&€?;Â^y·~öéÇõŸ¢Òu’2ÆáJ0r bMw£°âZõ÷§R6­ô_¦`£iÝU¨t?Ž% g9õ’ÜÉë¡ÔVÇ™!—|ô&@(‡Ñ–B_t±´ÕmvbH$„R€BôÚòÛÞT‡x[#š(¸»´²7ŠËz¡ß¨q0BaíûÎ9øž¹»¨~´7ÔÑ÷j=Z¶n¢1޹±+¾å#«µ,Q+¤<î†_ÕJ ¶ù¦Þ*¥…·ÝI­/27æ Ü£á%H ,„QGé3këz=¶úzõÌb(K>¼ÀšYsˆ3_!3°3Í´-`°ÐÆÎƒÛò:À`ZÀŸ™ŸO˜¿ò¨¡@dû×’SkÀ_\¬ÏØ!GõÊL°·—B|çh ™ÀÖv°Ím @äðÞÀA8ä˜^`ï­†< ¿r£oÝHcµn2v¶ÅUÇâ´·%SIc8sï}¤õ:n4¢Ê-³kðº®|U‹ª^!V+“v²hÚž¸ƒàZf€´³¤‚æƒé= ÷ÔrçCHÈ@QU½O=,[ø¿M¡¶ÃRÈ›Mü—Ë&Í—Õ·Kàe ì B8|^áB_òÍséö8]fÂSž; ¡áÀt¬!¶”Úê"$^ާpD4#•Ræf‘Ÿ|²§z% ˆèϵe¤éR¬²2P2Xq¤¼Û±¦Œp>éƒø”×^{p°§Ÿ~ZuÔQ €sò›ßü&Èí ”n„„ (ÆgŸ}ÖUý|èãþ*`KÝ4m©…BFÕ+ˆµÔaÍg¯@ˆLN¼‡ÞvÝ\ø'NsðÓ-È“ë¹1à\Zå&†3ÎðŠ,õ—ö ššXØv©ÎO!E!/…pR`r˜á^@ÀýKð½è‘JtbÍœWsð,ÛV“o>|ˇïŠebÂÌ#zì·$Ít6ƒL=a ªV‰áü[Î9Öo¤¸Š7×c[²ys âTÀ}À @JÛ‡1å"uˆRÂ9V€Õ >Ž&—Œ_þü¼œqb=›òÕª|¾\rñÁè?z Áæ|÷+¥ë·¤•kYc>tüJCC;|Ñuëÿœ)3`Û JÎ%‘ð´+SaY¹°nëÖ²,Õ¾þÎ&e ÁÜ׎Ç~ǼŒaS´…å¾ûÞÀ —Œ@¯þCPXVÑ#€e »X ‚w9X¦£SO} ‡Í¨ÄñSr*ÞkP5$U¿ å•_;¦¾ç|~êõæ†{6Æç¸gœzÊx<õô,\q僨Ûp;Z7}C-”ˆä‰š¼ÿæ‡yð%¨=ïŒáȤ-ô¦’Ô¸ã¯@$oüÇÐøŸ‘ýþ90xòÕóUµû3®_„öN»'RÿË©Çö@zŠáÀ4ç,¯âþr rͤWªàãKçŒÂÉ' 8{™qv<ºÅ|ø-ç€)E¸ MIV½ô6ÒJu¨˜ 6|º|øLCk¢½™Îv´n] í—ö©F´¬Ñƒa¦sÏñ3gúïÛ½|€ ‘L eÃz´ÕoU±(ª.<+àÈÕŒŽ_¹RÞEð±Z”u¼hm'JÖtB0†æáQ4 Œ`àacP®ûã¬Ù‡­«W*N¶¥ lC«®Éá‹&3ØÅAÄÇ–¡è h;´/¶|s³½^Xÿ¤Ó©fÖÌdœ½Â+ÎÝ 2°R-Ò‚Œ( Ý.˜ÑßÁøØÒÙ¿òÊ€g?G–¨ìPlå&`b_ hb›2^q!Àüä‚òë%að× LŽþárõž09PÛÔÄÓ‹7o/ƒž ÌNë>MûOŠûà|Ψö‡ìªlŠÿÀ-·ÜÊŠ¥@\¯º^ç”-Ë ú %üq$ %׬Y^Õr8“²2Š@€C×ÿµE}Q_ßDPRIpF*™™P0ú†iYL› S®Wª¸¤‚dLWG—B­À›jb¡Í‚.|äÜ vF–|xú)åÃ2g×ü›œ°EŽÛ@ÃÆ•¨4»#–•ÁºÏß#ÙÙ|è}Îg8bÌAODZ1 ~~0`þ‘àãb>‚Ž$L­%30ö „†•²‘I7Óvƒ;áTãKBÐk á¾côê™òÇ  ŒÜï´È]d<†µŸ½L¢=;ëìt 'ÓU¾û•¡Ú¢Ò2 6‰T=5LÇz0=3½¾–áeë_S„Súàã϶¢'iÙx5ÁÝJTôÿ&š7}‡®UJ×*7jò˸îëÆÍH'ÿ¤¶Ë*®Q0B@@Aɘ1c(Î;g:?|”/I¸²ßäŠEM„'«‚ˆPjØÕk”å‚s†>}J0uÊ`rË:Ü$'ªßHQÍ`4Ç–¸®xÔš54DÙ´þ¿þÍ+øÃý— \p•úWV’+e_uä\HA—ýú•HmwœŒ`!$³ Dl;CêÁGN‘¶Ãêƒy‹šðéKÇ)øÈ–ƒö/Åšùa ù5K0 Û"…EèÝ¿?´HrƒšLðyN%òC/xY¢‚²KŠÌ§vfþ÷6Î:s<=ä‡øÃŸ>ÀK/-Â’¥[‹¥T®Ñ£ªðáû®ËS=É™gŒ£ òàö;^¡Âƒ ðÖË:în&(ÆLšhsÆ̘ÖG[ƒü Õž{ÚP4­ŠbDVàÝY[°®¶ñ„­î5} iüàBª5sô1cøåŽ_5þÓ'£Wi@Y"aŽDR¸¼->!ý é? 2+9ç×|Œ&ÃøÑxîÕZ{xÔô+„N ¨0 ,7œ3ŒŸù0ö›Ô>p<Ž;zðBn°7éø±ÝàÃÖÛÝã.ìÇ-4½sEeZ>6Hs·¥\– zÛàj›+áCGsâíMй÷îƒPA‘~n—”)0u%“J!ÕÚ ‰DSƒª©·,ô‚ >H-×òAšíze yãìÞë~±Þ¼:ŒÿhýéòdG¿046 ϬFɺ8z/ê@ï…Ÿ»òÛ‡ÑÈÌVõ#Hº¹²ævȯì¹¢üŽ÷rݰ¸†£%sk'’ŠÔ\FäADåÐßÔ¼þk'‚±'9gU9±;ʵ-EýÌ@Š"ÃÛ7WWEem”ÊúÁîx‡@¤DS]m«Ë2oäèJ È·s­È1½Á–ÔyœÃ~ñ&A…<`€‚v÷‡:Õmþóº3FŠÇ> ‚Òo,DKÿt6|x±VÆB¼S%«ñÒíšNÐy¤0Ššáƒ°»"§÷æo6µÁ¶<øðÓÿB[½:ö«kè„U`(©1½ Ø«! gƒ•àMÍîßâ-–2ü‡Ê`ègÀjì¢ô×`v³.‘ÀÈìªé,Ïòaø€Aꃈ‘·m¸ÛùõA²ö¹DWÊ»Ô!Q‹4MÛV—:q§D6¤[ú€’$MI¿†I€ùv,!Ì©V ¬°åØŽ&è´ÅãÔ\ܼjû€ñ‹uø’|‘¥ƒS6¬® ‚*¢«Ø—^zI^yå•ìÐC…”’S yˆ ¥°‚„b>úP͂ŋ‹’âháÀ²õ—I«ñ˜d¢EAYIÀ˜‰âŠÞ¨9¶m¡´¬¦DÆJC †ªQ u&PîY¶WõÈß]]'±Ôë†aªº6êá¤]¯¬ÄÕ:¶QÏU€d:e»ú;EïŸúW)äÅ~&—¬˜Rÿ¸n… ªhÅVõ³¢ß ?Û¥É|¼­uk– ½nCnv+>T Æ>`ŒIðQ§îžX ^¤ïÁ¾$€b¿þˆàX#¬T­‹Ie|øjÁÊèm‘±`§-¤ÒtmK! k¸RÕà0f""E…ˆl÷Ý-04¬ZŠfúœàÇj—PìÄ– Mž«ïvãMºUÝiÇž$#¦¥sJwn>|—µï+å’bû“4R)l0#¤<3BcŽd­ÎJìšh×+ú=ìÔ˜I |þÞ›X2{©vA Uý;þâ‹¶·|襳ØekA:C:•r²Y®ÄKSjuiZµî1ÏR` R[=ã"Å%¨<ˆÆ¯/J{•;È’Þ#‰Eï¼[§VA{ËÖÍ7¬X²á!#Ï2á€);m¿½®MúnˆÂ‚ÈÄ!ì¤Ú–ùß?#T–U(ÎTà²eÁJÛj›â³Ô=nà¸q§!DK áʼw?ņeËýøFædÀaìÑÓ¯òdþë§^O}¿Ëp Ú–P•ÝMà³c<üí%Üà—ÑöLÈu¹Òý˜òk§"i0Ca°üTÎ;ðu¯[» Þùȳvg‘šÛiç¼ÛXRº¢Dm»V-ÃsÅd¤îqfª‰¬N|âTii&“A:×s‹Ô»Ï»®;¤ª$þ¤+Ý.ݘɇ½¯¼ôÒKå¢E‹†mÛ‚øcÇŽY;Á8ç’„‘Õƒ‘[–Eõ>R”!KÌœ935zô膢¢²êÅþ䘤 €ñ ‚ aÀèшè¬<œ™tRv( ÚwF^º R2ᬨ!%Ó( È §mp®WŠ„j7„çÙ.%j±Yøî)S¥-þê×2®WPÂÑ"ZÅ) MªF ˆ²>ýàŠ”‰]XÏ`hÞ² Í…¶v]PʵræÂG'cì»`ì);)g^7¿ãµ‡h7 Ã…ju|dr&_BvÂÖ+¼9jéÖŸ|’ 5ÉÔp’ì¬÷&š¢¡-[0åØc å¶ÝiÇÖ:´¯[Þ > jÉÄnhÝRô86V{˜N*Ww²¦]Iv>òkÛ/Ćúzp¤qˆ"TÕáH‘p€Ü% )3; ´kbÅüÉ(µVé¦FÄZ[°náBôÐ6ˆÞúªJÔ >$’ú“ÑÏV¯Øô±Ô“Q ºå\@ÊÄ^ë¯o € ÛÊ(— i§õD 8z†·n„ÿy¤m \š6¿AFay™²Ì ›<–¯P“2æÀ¶Npz@ȼ‡^û!ÁG‹rṠ¯MÐÎ"p\HûO+¼…ßå Œx RT¤à°€æJ¾«Ëá‘Ú% ¢\õâ@hsÓ¹ßXrØÓ÷L¨fœÍè²äܘNZCýä 0”rpWÍÜì€ÒI-pÄç€Ô­ÖÜzÝË¢”qk}d¨lRÞ!!¿ò§ëjÑ]Òø…4Ù²Ð2eGôBŪúÍoƒ{-0w @|÷Pßx ÝÄ–‡ †,0!¦ö¾ rT%m× 5¥/:æ/DR‡íZö•ö$e5÷¾Ý¶åº³c/H DÅ'äX°, 1 ÛI‡ñÁZÈ qð@;Ëæl¤Ô“ýd ©ÍõX÷ÈhÍ^Õ½)ˆ¨q*­,Gß¡ý[€'ÀýxcXs\UB˶‚¤>N¨R€ÂJ#ÀgÑ£ÌߌÄY£‘ê%´dkv˜çz)ØbYK[üY‚ï(põRQÔ½£ÿÈAÒÚMK„¶DYMm!ðqà+šÁZ“¢7r hcfAûOp@J%hØöuwüÞ¹.ö…xk;ÚׯGʲ4¼ 7û ŸõÀ2€|Lz ézÒeSßÍîÞ…t½ë§¸’Ñu\q[ߺ¡÷Í<ˇk9yîQ†³Ïsƒ×µJ©Ï‘Ò‡œ¼Jêp¬¤aæ–£Ô `« R7«—Á€¤® ÄûC¤]ÇmSqŽmx² ƒs˜Œ}Iù#-¤úóü©…Q)½.»ì²ËØ‘G ªvÎW¯^mPÆ+ñ /ˆ£>ZžtÒI ó „`”é ¦i2Ã0@qqÎùÆX€‚Ò;W~þדíL'„•!Ø(„ÎÏÃaÄ:bH¦, &Á¹Œ’ƒ3S»Y ©d ‰d'LÃV–Û²Ôƒ€ I¥ê5Œ½–» $ ! ¤{cö\¤~ß{È·bBçõ”•Y73Õ‚q Ÿ: %eئÈÄN”<•Y¯05 Ù²r5šÖ¯c¹àÁóŠ ÒëR°ù³ØuQàa®¬V#¬`ìV6ø„• ùð‘ö!D¿&r&š6éðýÆ£ ()â=®–JÒ¤hß°6G.|ÆãIåÆgøî6~‘)SƒWQi_0ï=ü®3Þ 3PãM×É…#>|ÉsKñ#ośԋˆÁnm6m@†öËjú!ZXˆÊÕno÷j-)¥êGUM±Û !¾ÎåØÛ  à ™°­Äc1ÄjÛ²: <(õ&ݾEÑýNhõ&º÷ÝèÚÔØt44j˧£Î¶ú­Û°´9ä)±òãóަó^'°.3ôù=Áh皸žÐQý¹ >œ¢n~qV>¢¨k ÍhË^Qˆ‰Uê3•‡ „˜ÔG¨“H‘̃(™56Û’’ê»ßo¯»þêãt^ÄÎê·¡>›Û—åÕ…`d¹‘–þØ| mé¹YÈ@Óà(ÚúEÐ^aB0½ÜRׄÇjÕ±j3Z(qD´ÍB¤5£úWÖϯ(@fbo˜ÅÑÏÖ€Ÿ2L¥êGÚNþ÷ HKC¢DI±yËÑ8³ é‘öN+ÄÊx"}q*mýžÕ‡`@mWõ¯B´(¢ú½Ûò阿ÿ^Ad*BèøÒæÖ#òáf@è¹c ¤ˆÞ3¨@„]ó,ì{NΞìÎûæ$JH%“èØÒ„x{+2Ú›Às7þgÒ,îýÏ€Æý£´3`”ašwÀùÿ !n%]ô©ï`²Øàó8ðD`–!,§‚zϵAD¾›U¼pG-ÿumÊeÌ{I™}]¿ž©É²3jØ$rAÈ$m%ÝÀéP@mЗ°sQ)€QN€z/Ø l‘Œ›àÀo|yP“n ûONŸ´þÅ|tÄ< ï¹çFp!)­.8I×1µ‡Ï}þùç6l˜èׯŸ ÷*¹dÉ’ØêÕk*Ž;îØ²¦­Ÿ‚hS•ËÃÑlÁÑAà!¥ÎH‹µ#•b(*4Q\l€qtJÀʘ 6€ ,‹Î)M€ØFgËâRƒö3¤/PÛÂJhwˆìl¶~ðìŒKÿ;ßíJƒÈà‰£-AJϲ‡UNZ¶4¢~m-’í±,Øè¡È co0Æî$øx»)A œÀõ~Ð~8X<°Ý3‚H‘T`èC‡³ ¤ú¸• ÞjçÀ±CP=¸Éœb¶X¤mË×!ëË…­ïgÒ™ƒÉÔîe»"ØÊÑ‚â(†~‰nb˜Z³RiîÊpŽrp>à‡î‹>€èÖRß¡¼ooâ­ÛÍ+V+0Y:K r`5 ËJÐwxõ^{C¤„‚Ïòª0Ri'^ Œµ4£¤ª|U°×+ÔAK-/$HÌk+¶¬ÛâN´¸YH»Ã|¸–,RÚöÕŽ\5øbO›^ÄsáÃ+Ä×Ùƒ°3àöH7÷L‚\(ó•1ö§c/ûd ¶!Ãg<6§vþ%GИt­ ŸËu¦ÈÃ}Ôüˆà£ Àµ>² ±ÚªÁh¡‚ˆ‚ {·yYHÕ¥¾;k;ïÆÅsуvÁ¿ûè‰#hQüfò¨=”Zß ¢€(+öOv© #Në†þÝú¢TAµò‘¾»ø‚@B øµÓ­ï‘¾Á€ð˜DºJ~Oú·ôû6¤1òõFl™\ŠT ÊJPØhùöi-ÄÔ~àÔzÓKÆ —@V†iFVÛJd RÀï‡å×§ÚžWývVSíUi!±|Kˆ”V€Èms$ŽaVüÉ`­)Èáeû ¥Ð¦٠‘á€m0ç»É½ïe€q5'ÑkI;Â-˜¶„hH!Ów4½ …d i3’ÿy Œ‘À)£À¶Æ€¾Å—Œ'@Û¤Òëb°ÉÔZ"Ѽv=Áwá#ÇÝg¶´%ö'ø˜ìÞë‚nì#é ñCX{t_³ëÚ6›;ØØ1³ ±£úìO!º!³ .90¬ ’ “Æ€= ê©Î$AG‡ºŸ¤ãIç¾éAuŽ+ÿâAç¼?×Ä®(f'½ƒ3v#7Œ2d2wh›ÎØûRˆû¤”‹gë±Y<5ø‰$±òÓýø},ÓcLˆV—æ„Rÿ¸Ï‰~@º™)¢‡÷á̇ !õ±j£n­’j !Ð%Žù[RV,I®YùTrÆÈõªlРAe-Í[ì:-UV Û¶”ßi(È. )W+ H‹ÞGg¶²¬h 0S&¤·¡ómÕ2fƒ3ÎmŒnš´Ï-0¤\ðR…H¨?@„ ×—a'ÄÎØz•Ìs¿roÒiÒä^X•fêÒ¼¹õk6jÀÍ.*èˆOø ÁGv_t&'Ó›„©8C‘wF'¹”»7±"£Æ7;Ë‘­³ ­´-ÒŒu/îÁò¡À0 ¢ÿð~°ÙsÔŒ€@¬¡ M1 øäú†­-x¬-Ù«^¤¦îsaIÔYõêù}”û[|ôhùX`Œ¹ðá¯,úß›îðaçUI¶ ÜãB`óÊ ÔÖbÍÂU1eªöÙó Ä 0Ì^((iE0CÀä^JX€e'aò]¬ç¿g`À›ˆûCù€*´7¶¡qýV´6´B¤Sþ*¸R æ­îHý”ʦÀs\ð¸_ ð£|jëƒ?ÞDãÿ°iò ©¿È®ïˆèª^ìÃnƒq80#„ÈdRH4Ä‘L$h‰ÃJg[=<Í!r,Ðõ4xN¬’ÁV3ÆvXN~ÀĿΫ[~ù%tîm`ìç¤p´ ?°ª´æ^I+ægBʃrŠ ’êÔ½a„¢!p »+¾õÃs[ÑqoÛ“™g¿%Øó^;q)?Â_¬qàL[Á=ðPš;I³}ë’#âC:¯MJùüÑ7.¸ßL‰ X÷ŸÒé¦@;O<È4€\J:›/æ3XQsVm[ªD¼¼*þ¹Ñsyä³7Á¢z+(@”„”›©rÏÒeçÛ›•Û¥pŒ}x’¤;ˆô?ÇmNöà”·')£®eµr•’½£@È„]»é × NpÝI9mË¢ ¢õ)oÇLØ@R ×KÔ˜¬^³8 ccØï>Õ1 ãzÓ{ qÈ™5œ!AðÞ¶`%R–Ès›sŸùò‡–û)×­AÝöRíÄŠŠ]¬ÁÁ-²$klø¼­j<£‹[Àöë‹ðÑCxlÐ+û¼1às¶@r¬l†•ï&zHõœM´ÆÑÙÖT<é¾ë~»=(•R>àzRüGÈ\@Lî¶ *¶J¸”07Í&ÄI’±“¤K§Iùž-åFlC8ð'8)Lv'þ.ŒØY`!óÑMWób?Ä6jˆ ‡¬YùŒïŸã×(±$©SŒû×'Õ;M¤ól`”ã~bú¼(µ7–…p d¹h–¬¨SÈ6Ð๑qþ™†ñÆGét'þÍDACmIrw‚ ¡`ô®X'©Ú¡C‡Jj•HÑñ ‹ÕÒ¸i-äaa¤,5@0FQA¥åŇ‚j!DÂᤓ™ÃB (`¶²zHIÛ\À 8µ>dZ§¤åœT†”¹n&–°T ³í‡ÛZýF=øÀNˆe©k圧âq@¦{ÀŽ{]±,wƒD,‰usW#“LçÁ†Þ¦c®»Ocìj0¼>ög;°g¢nÀÜP1,~} Ó±;J{·P n B[Ç?±V¨GgœúÖßûû3èø ¿öáÃw·˜tè”Dioé2v ›Ú`ÁöáÃ[é” 'uvÄèÀñà#@Ð  r@/o%Q‚!_¤.ä´Møà~„o*ç>[œ@z Äê[È÷õ÷²åÁGÞŠ·¥üýݪÑþ*7i¬½ó?˜ñÒFŸUØCQý(ë_€–µØ  YidRI˜a¹À#_˜£!ÏÊþ•Jc-íH%ÒX6{Ò©®LfIHo’­óöûàaò¬˜Òlø0X=cì÷ ¹ô{+3OþvB›BäXÃZ65 Rªÿá€â0‚ ‚(° ‘ìH¡½®íõ­N‹Ôusr¬yîIL'Yq+›»"éø½G\üa vBªFþ)`!é‰èA(f PJyc®›’v„ƒFƒ`††&÷ø9“ :®ƒsìH>ÆÐù/2ƒUg»ªLmKwBªÕ…ÜÕÿ¤¼MJù µØÿ‹ÒÅëâ÷¸Û–ÁøÀHÇ9 q€WH¿¤÷µj˜b(¯M ‘qD7ðâRÕ¤›Û`}c*P†'ÒÞæCEJoL|ËMFë$Û2ëA®TãJʱc1Hé|ûØÁ <`rÀ鑳nË ˜õ+]i‚{YË ØåR5ˆnIx«¾Úê]4:l:ãîÇUba8©}íTåö•19Z–­WpK÷;;æÎ’BÞÁ€ŸÔµtN ø™nš^܇ÒP(DæJnaê]¸½åƒ™HO¬Dx~‚ߢÏa,‹ÁþõÑ`Ï­R™¾ÄAýÁ_ ¶¼ |Ö#býî쪤)Ä›cH´uÂò=<´JÕfƒX¤ü €·ÉúÑ©ä?\ækÇHùp*“¹¶ç’4ˆ@ 1šôgBˆ¯N^ƒ”øhvž­k%P;8—šÀÿ0ÇÁFdEôg² C:jç ©–<ˆÈG<Øà Ês¹6&µBgÃ)t¬"¯;w`£QoK]}qi‘0×mIÊtFº$V ‰åÀ÷40¿zú!%õ"ÑÆƒô]ÌÂ'ªÒ9œ RÆ9ï²tp >g]q"B÷a¡†ÇN°ÒÑÒÒÖ‘²:3Édµë„PÓ¿·²„Á°*"h˜¦ Id2ÔBWkv é´¦ ˜ŒÅg*/¼:ÉÀ¸SÕ^øÅŒ„”ºJm*£~ˆ 2'èp'E¯øn„¬›¿ÁHåÕåØi‘~ocËê:´mm…¡ÀCkwße&çqFP?îÐg?ÆÞ8´õÃî‚Üî‰Z]´³ÒUz¾ýÞŠ­4ʾ-º¹ØTÐgY\¡3¹€mûæo‰!O9+Þ>|(yK ƒ‹«Š×¹+^îÊw$†`im³?œS£«Ëç›3ÝJ}^¢¸ÏÝïx[V|ålêïpêßÿ[¤ yš±|Õ@âúžç®þK­V"…Ïß)GNB¯¾;ù½ëÙÇXO†Œ° @·˜Ô JŠ îH!¨â]8¾)(’à€Sf(ËĆ•›°vñÏú¡ÕÌv»ò­^:VÜöà÷8Yz®!ˆñ¾ AR;a!™Œ#ŠìTÉ=c1mÍg&‚¥&Š©ßYƒ¦Mظd:Zc >r€TÁ¼ z û3ÑýO…ÂÁû>yú(6ýŒ7äž»ìÉ#¤J!²3&éBn!ƒZ™µ`°GâìºÀéŒç¶äóWN0g#»‚ª©ĹÞ„6\RÇbuÒ†ì1à\µ#î\Ú§ò£¦WtêŸÍ€‡Dн>X†¸Úµ|鱤çJ…@>|èVåëãHN {$Ûƒ˜R 9¹*:v ü>€Ø>|xP±#±íâÓ„í¸¨±›àI2 ¶)†ðœ:T-!ÚnaëþeøYZDZaÁ47¸ q sÎV‚h]Ò1¸ù÷X0”uŽ2×ÃÔ o…PˆX{-mÈäd§ôÜëŽþÊœ›Aò;ÇVqÎ+½X7ÇÝ´8T 3bªþî«îþÕ0^Z #néºdÉ @V-›Æ–uf ;i»/ÌåM >œÉv^$,i!‹#¶¾¤Ýjë¹1@ >$þzôzRæXçh0°Ö¦}#¥Í€Üt¤Ž¯;Ü„·˜GªGüù hùéªÏÎír[9‰ã|‚n\ŒÈ±ùÉ üX­¶ÌuA’¶ÄÜ·æcêÑQVU¼ ›$¸T@ƸôòáóG:FÐ2* ×Øž:öÌc,ZÄÈɃ1‚´¥®mõmhÙœS)º©hžS†9Ð(„ø¤b“Àð&4ô½?[È-ØMYÌ|Ù^!Õ55lA!ð@D[D ©V‘–Bt鷦ꭤOÌv†y#ðôà5ÀÉ€S˜ #yÂÍd¹b™ùqžj±]˜É«=2Å,¦§%ÿ´\Ðȶ¾ä hNB[¿>8 B"Î,Lä¤ظ 7›…¦a Æ®ð580Ä‚ðê$àj¼0hÿXFŒ!ዼÿþûYWš^Šû`dÊ”Œ$•J)¡}›sž¡Ö¸ä+×óµýÏôt*‚ÊÊ U *-@4"QeÊÅ Hƒ3mE±¬ " Æ,pRË&XQ©3™vï5œ;(ô„•»T"³Þ-è /`'å ³ß_úÎÃ3Ÿ$ðøfVAO¾¿£g GïèY|›]k]Ö-hTsCCU¾µ#{{5ΰ{_tdgñƒ5mâv@¸;®ÀC©­}Ú½¢òEv‘1§-©,F¯~¥jŒ·‘í]ýoˆ#-2`Úç?>¤”—eŸxÖîñ„ ‚0Ô ÜÚ~Q'.Ý M¾å#{µ¼nõ嫆þi=òdØ”|àƒÅïŸv»´E1ÿsVÆžnï>òƒŒ³&e›VlAQ¹ŠÚm:0™‰HIÉT†ž+eŒÃNÙ° <èMv$ûœTÊz“à%ѱ1Žd<ƒtKF?Œ]W<>²Ýl¦I!ÿ:ï¾Gûgµ·&dÆ­º¿¾ZÒFª= ^ 1û@v‹æ†N¬@wàØþX½°í $;’Žˆû­aäÕÂàß' »jÁ›'ß;áÈ~€Ýæ _&lQäŸÛBOò˜Á´ê®b¯õ™1?žÅp•xÿ±C'œ w¬[×H‰Ôöa,ÿêçíhIDYª9ã((+€YlB.èhÑÕ´ –·!`H”š` éb£°öŠÆþï7rŸ©¾IZÀtRÌ LpæI`<óËÅ¡ [µµÄƒqÈ GÛ°tŽ,ݯÕŒA@ê,»A°úgèªÛv6€ì¬D@ä×¢B®2±É;¾®ü­Z°Í`¶„Ùžò,>FRPËQ¼1Ž`RÔLüÍ»Œß™ó±+À6;¨¢,¤@³ Bá³k{Èæ#‘¤ë§Þ\‰d!õ›I>H-4æ…ã®ü|¾ÿ¬S÷}Ïò¤ýP8Œp8HÏÍk7¾³¬›[« ‡ñÖzßÕq#X]Öe“ ”hðë:gÖFÏ¢#%Û¶… étñæv$êÈÈ4˜©V»Zi…ïZ( ÕÜñ‰i'¿Ù’)€ÜÞ™éœWÙë7Ã*{ÞšH”ÌZ³¾$eYˆ[™Û‡‡8úØÊG쫵HK‚ŽH¼†ç¥Ÿ ±» B»½)#3.­9 ’ö@Ä·ˆpýõ"ý¾³âÿõ©À°áS`Q-ƒÖ›ûiƒÁT` cg6@~c+€fé«sRËsÓê2¿í!6Äd@󯑖Þ\VÃLÀX.¹™Í`æÛ@-µ‡˜:&$Ý™´HM®EI—)KˆÐ?ƾ<óÛh,6ÚÀ§ŸEøŸ\ùÙœ-kÙ²e¢¤¤„Ó$ª^ˆeY^eUÛ¦Ûb&“ á­<!lw Š‚›ð „ȰX¶PUg…³² ™BÆJ £*´2ƒf J$yh)5Žz¾ÃRVÆPk{~‘»¼ZGÀpŸòbºF¥¹®1ÒXüñJ:Öå›_%,<âmI &Ž!ÖœPÃpŠcæT3gn H†1öÒGÆñüjìq]®<øÐp DHÚÞ-þ€„“éʇ/+É‹÷O:^H957³‘¶d ××߯Y–dc 0à›”ÜI_{Ð3¯gYxôd='莙†Ú—wmkàÚ®¨”»˜ôáCÛçdÉ*mñ%?CÏB–²g›âÜž9¬R 9ܶĥtISl!ØÎÁ‡Öަ6.kA͘rp»8¢}B°·@§:I R0X) “Ë]ÌŰ¯%£lp6’i$·$‘¶-HÀÍF–áÈM·’BL Ø{%âïrf¶šA³4@8cÈÄm•Ô"Ïé×^ìšÜ˜(÷ÄɇA²3…ÆM-¨[׈LB¨ïqÀtî'¦áµ\µ¼‚¶¿»ôÃ3bœ]6jæ“˱ "…|è±MIHÇzç`RTÀ¨mÏ‚ž#Ç«²%mÇ0àÏd½:ŽŽb† »* 6âx$£²xk dG:·Ëz|«óǵ°ª€à>|hKÖ ì&8ò§žÂ¢áÃw7„(ŠÒÜö±]jÙ¿öàrðµ->>5&Àßß{¼9¾Šd ø¬ÍÞe×½ŠôoOêvMRŒ­ßŠd<˜<à>÷¼D ~+åû¸y¿ã^Ý¡«¶‰}(“Þþè½y‡Ï|·49ùèÑÃÐÒщ­¤1ÛBK2…D*^´´¬ÑM¶D«ÄM·XL6Ï0øËz¾#¥L’ ‚’æíÔõèüư)•u*mÛ "c0<Q>Ó”ò%ÎÐzÇ‹ m¢´™Ž‹©†þ'…%°f’¶Ì¥bR+«Í÷ðƒÒ»;¬âÀ8CåH{ê¿Î½bƒ~LŠíÅwø0d;û!RSê YZÀLó¬¬]ê<ÝšB¯æt®¿AÜ3B ¸i*pc#ðì:)`ìS¥¼j6Ј/HÖ®]‹ƒ>XkH”õƒ„‘;–rÍÀ-‰Líü{ú@ÆGE"aô–@"¤*—'-‰´%`жi@¥ãL§3ºð›Ag!˜bÁ²ÒºÀVЦÖv^,àÝ0I0”‚ÔV/(.|aK)“Ø9ò˳W¿öÇýÎB¾lKÞ¤Fƒˆ•Ì`Ѭ•`l(Ê« oZC*n«±mÙšƒ¥ÁÃàùð¡[ÎSŒ³…Œ±ŸM8ê…§±Å šÎD…getÒ&}F*åîÜ”U H|èVèæ7¨-Ȇ  ¨,ŠªšRÀ‰ýÛ€+iÁf6˜É5dn¥Ù””ò—È’ ã¢Lï:Í0©Þ§VõB*˜Ý¾(w@ô˜÷ÝÊß\7ÿ‚»M|$ŽÈÌÓßi@ªãº^ýã~ç !Ç )¯$-´¥ çÀ‡_ÛÁW*{R¬=‚‚¢(vΉCvß“ œÃû¬ UNOÆa"EmP‚rM®wnL(( #<4ˆtg)ÒtRƒ¯®íà«°½«C¤-†HÃVÖ£\+ˆ¡@ÜNKpSÀfC‡ÜÃx¶×Ø% ¡ß°>è= M[Z[«Q™ d§Ÿ5¡cÆÙ€üç’O?yÌÏ,ÛùÏ¢ 'S”äÎŽ»Úƒþ²ü®éŠü ¢Õ`¦~T;÷I?IÏn™¦¡Ü®¢%Qõ}†d0Þ®[Öciì‘•Úelɤ`ÇRè?»I-&%'"^`Àª ª‚ªU“ÛêÑè.×Kà5‡+š¼Ê€»gÝ1%Æ8[ ûC꺎2) l·Ä )+£ã262J-ÒŒ±D–õÄ_€”æNX 1  |C»‚©Ô˜^hi(ÙœD¨ÓRýQÉšèç+.ÙÁ8ÿ7X€D„ƒ;¯P´pìýÀxg^ü‘Òÿù…HŸ3òw °5c\R%&„>,‘Bþæ¤kæud¹_õ&:ç¾%¼ n‡!¹é÷‡íﱘ2|M»:lO©Ú ǺªÄo†¬)AæÊ}Jt è>JÊFuµ oh@ͳlÓð,¼Ú5 ¾õCÏE’ò{¤ÿØï˜WÙ|qâË÷IOp½Š‹Q\X¨*#fHã© ZS)4%($í“Ò]'dùf‰ : ©…P©u ãnh3á=ÁH-ðÒPà·ðm¹"´k–Ζà€#­qœ,mÎP ‰ CiÀÀÎa(ÕéÛBÊJÀI‚ %%®0l<²‘²L™›™ ݬ þ1x ?}oN3k„ð!Å–:D ày™±LתáöÑÑ´ÔmÈqÉj´7$p¸Iû<+¯KôN½8€«´Oíõ˜Ï³×ÒÕXœIãuAȉ³—уLNX¼„}$_ÿú×1yòdt‡mÛiF€!ºÔ †C#dõCÊîcš@`ÅF™öXëL<‚pÈ€”:­n4h+øPà! hRrº¾½ªÂô6dvö+–å:¤DR[Bꉇ뻼zäŒ'ÿ‚]”c®˜û­à+„|…´@Jß?_mgl ^©Ý Œ0)H™Dé+w[ž`Œ]>é˜Æ¿Fôd+»–w]ØÜÕB‰]éf±IgÇ6XÙÁæû ™ `ø¤ßCn;85Ï@ê 3µ|Ø ÿa¥ÓmŸ¿vÜ IÙèìLW€1L/ݪ_ˆ0h‚û«H;pLz‚ßuʶ+èõ܆]”c¯˜ûwh¹å™»Ç/¥ÜßòfVdp¿hž†¯UŸmÛò‚û”&vG„°`¥2†ÕdÜ/¶È´“±Ž;s_åv؀ዃqD B…H%-åž”Œ X¶DNÑ<½2쥹 †‚ :ÜUQÓ‰!a`iÀÌ»ËYlŸ»f™ AH/” (Agm‰ú„ R… BÜ4Än°ê0Ò—½{Êñã}~ùÎY@ÄmÞ|‹S1&µÊR¶­~ìú„NC' Å‚w8…?ªõ¤÷bå\Í÷áL½….ˆ \Aô;oAV@ +ƒuæh`ÚXm)Àˆ|¶ƒ«`±fXä³aFd§…’e´fÔoº£Ø@Iˆ!œ’;\zÁ[ ø´[Öƒø#yÇ4Ç3¦ ß맪ÈnÛíw.m¤³ %¦Ó6R¤íï@\øÈM]K …ÜE(²÷V»Xm›[§l4Ô5oÖ¡ö‚¡è=«½ÞÛz(ÿ´þîÄøŠIjì8÷€Ù˜”€ó(ì)ƒ @Öwc~$ðÞz¤ã $‹ DVw sl‘rò2ª/wrÝ—së]™N¬£oý†M„‹ú€¡ —Ÿåî}wóÅš2R¨ôä1h‚Ï­_Q1¸ ²¨Öþƒaþs±×G)ƒž‡M"Gûâù4ŽIÈœ”âŒ!¯¦|•ô®‰G½äõûß@Cgn¸˜3†a(w(›(0 ¡TDQm#‘N£ ¤©3ŽAIU*­hzHJ-%¸Åéì38Ô>àcjW¼ ü Ü`a™çâÔ×±IVK‰>¶ ¡bB,XPÈI Ž“#¬Ì®˜`ÚJÀ¸¾ž€z… 4^KÙ˜¶½àc¿íΧþkZ* àL(7üLXAhéiL°,W¯ —^×–€5’iI96ÛN¼kš@Ó@Üë”81!…Lb„´yÔJ\i TdOÂ2BûTÙ3‚g B.œ <<±KÇç¸d1 °—eÀ€ é‚j©ð ê¾‚Y–%È%‹±p˜C¦CFÁçB=ä{õ*!#hoïD2hÀ4„ó€WŠ1δ?)‚†Þ•6¸L;ô& !òFÙO™.l ¶­àÃsØ]9ñªyßB=h¬õê[‚²Ê ‚‰íÝìuШó ‰©ñTz>€³¤Q¡DO&¹áÃGPY?üI6×ä/%Û)«¤Ís+œ[Ý*œÿϲÎüxÔ̧ÞÄnÊéúúòãwŒ}‡ü)êGoÒ|øP– ƹ²v¬‹£´êÓÎO_¤® O€@°(èÀÏM? Ú’YŽc€‡îu6ånL¤Ù^›”sÃ@8ªªÜ«ªëñöâ­q7·–Þ–vB…!D‚¼Œ{®<Ò†“| ¿KlƒÛ…Q½ìEaß ’Í]ð•€M}×¥A[¸nƒiûõùoœpMZ–ìl­Û¯* à €ñž4±íÅî¬ì|hè0tkd•ôZm hßTàŠFŒDœ_°’·‡À‹`¬†Lp cÂèªXýÁzØƒË ƒQTöAmß:´”ÛH—è7«Ó+V›1€–R}ê2=…c'D˜WÒ ÏHà÷È OtQHÀðე±0¤lWÀ”ålIaynWé´¥Š÷¦¨Ýñ+ðk ‚H[íiÛ„á-¾ð?{ÿ!0ŸYªúb¶&Ð9¾•óZÁ%PH@Ò6£ ½ßÜ2Ð. 3$|+–R†`´˜¡BƒOM%ÄÀ^à뛻Ǽ¬hD{ßb®lGýÒ€à+Áûa®Æ3 ƒgÕ»¢VAIŽ_Ëž|w{«P² Á_¼1²ÄhR‚*N;ÛÔtÁÉÌ‘½ËxàC týÓh¿ë\´­\ˆxýX¹ßy÷ž$¼TÒuBˆGAÐ;ñÈÓ ù·rÃä†u€‹]v3S-çFB† ²M¡(FïÂB´&Sh&ºl! FÛËB‡Ø$R¤I ÀñY¼‚š+¤­$µ´ßNzkRˆßE«Šôb?&9@PàNγÓu°˜>±&ÀÑÛ4P̹®'Âà<øH8‡V¦ C¢Q8™ T–fÚl}Í|eYЬc¥8ê©5òÀÄd€íÑ·ŸÎ7í€F¾ØyAî!hÀÈHR§ßÒ¸Þ²€ÁÃ5ìY±!!¦á¤]1Ò4ILkÀIÇ©M8¾ç–”¨Õ #Hû$)…”/̶fȯ|b“€ûç v"»‡øœs‰íY<ÐÑÑ!ÛÚÚ@Âz÷îÍ»Àƒ€D’©“‘ŠcI™iŠ3.À9`[ T#-CF2´µ·"2añ Ì@TAE2™¦ó Kèø!S€9v.a[ÌóÓx™Sà|¿µÁÁÎd[’{ ZN½vÁ»OývÜBȇ…”½8@ȳ˜ZÝmλg»âìcvÛ¤ã^ú'¾aœý’1vb~UoÉ »¼ÊmC ¶&Ž”•·Rrá Ní‚ KÂ.Tl;m¬„Zá²ÒÝàRˆ€ ÍʯÐ]ÕöáÃUmÒ°µ3Á‡Rd l“4'kLþvˆôñotµ¯M>æåF즜sãâž»oòW 8žUЬú© ³Ò€ŠƒHÅÃGŒmLä¶,V6N¦‘ާ)ÑkP_˜ÙðÁ}¿ziNÜ›p-fÛ_)e¹l{'í­×T•w(ÿ3Á‚èhhE<ÑáÔÕð ?&b)´¤Œ™:¡PÌÈK³ R©UÂsð:Âö¶Øº~è­ Ã,+@0’"é¤qMP_3>|øõ/úÓþkŸ½xôaSN|}ÕNÕŠð õé©<¬Ýt$Û«V)tzÀá§V6‚zß „ˆt¹ìpÐ8ÞñÄ~5¼¹ÌH]s¤Fúü)ÞX YBæàý{Á|{5d´R…š†‘ˆ>û –â(¨OAؾ•¶©Ø@yS! ÙRÏ€3$pé}xÛS»ŒúðdÚ—ŸqHa|÷àVß¾X7øH¥vÊâÞ»”ëTÑšv =…@aŒ•X¿2 O1Du P @s‡éxíI`ÌÛˆLU1‰N„ZÓàŒ¡âÃz&d¯@G†¤²X¹Ÿ‹D(ÒŒ<‹€½ÿ`Ü–›¾>ÓÞp]{¶^¶ÆÑÞ+øecsgŸ{¾=pYLÙÈXl ÁÇynºm­†³e:ßß}ã6)é=YSƬ50>«…,ÐËØ|U#°¹^ë„(-€E`"ÄF–¡ùÓ÷hì:!µuÏS}_Ò­òN Ü3áðîvŒ¨‰¬!}„ô‚¼¸Jp0= #l( Q £%E}"©@„¥R(J§‘M¨g 8lMÇ¥LˆÒ ¨°í·ªu°K°¼àm™gê½ ƒœôPF;AI`Ì›ìHÎ!µ/ >$…†bÚœã„ÁœaaÆÆ[ª‰>ëBü¸‹ƒ `Ò!¤¦Ì޽ȠéY>ü€ô@ÅÑCF,“9±"Ò‡”–I]3¤Ô‘÷3h…„hÐh§¶”Ú8†P[GºÒ6Rkë owR["mû˜å¸dµ‚$ lv¬P_ gì|iðv,>v ”†W3cÆ |ãßÀ)§œ‚#‹ñ.ø(**’)Îm¤ë/PV f‘&ÉÕD “1 )+ «É@G¬Àƒ!!h¿#èìv JÝ_@O|,ÏìÁ EÇEj+ðYþË{*g^¿èõÇïs>€§9ã%|˜9àá+7Ü´ºãl#cìF¯O>áåN|A ¾€sci\—¶ÝX’HÄ3j<=øÈ˦Mg£ ¡zp¤ìðf¯ÇЙDÙ9* 2>˜A>f|J97#Ûé•G?e¥nIóü¨•–Óö#ãŸ|üÜ¿£â‹a7… ã]gLÃ<Ý[öê]Þê˜ê°â’|—&´B˜Ê*±-$×ÅÕ=µßྐྵq–ý;rÆ‘»ûMuN™{XîÚD|ÁÄ4 ûtMÊ‹!­&Ðj÷êÓ¤3¶š¬%“I|Jé´g5E¿ÏF6|ÁÉ2ã s`Ø^=·ž(cq$ÓŒ`µ#ÞÞ˶ø°ý U[ô¶ýÊGOvâÌ3ÞY¾3µ"„åB?¤ŠØëÖ-3RŒ²Š ‚êvíReš W^ð‡æÔÀtgßó1ä€rðú¬“&¨ëYS,˜ 6C¦4̸’9b4øÒ:˜Ï/ƒ9W×Eþö#ð5Mj»*XöÉFÔGê«Ã¨¬íŠ_°P_b ¦Év{ó9é# øJw(ºÀ+C¶Û˜R0CA‹Ýÿܤ‡¥\¯HiÛVû–%vd×._Ö,œU‡@c2#`¤›À{§aF¢:Cl@æäñ@8˜Æv‡Ï"7,þùFõBlR/Ä&W¢÷‡uˆ®ïT ‘®)ÏDÖt 51äí „*`ƒ>¼k @àɹnŒ„÷å¶O¨5²!T©‰dÚ:g !Ǹ𘲰”$0 :÷þÌp¸Á¶‘‚]-{toˆŠ(ÈÀž>|S+x21°|A-/.T}l={ÒïÌa!:ê“SÏÈ·~¸ÉV° À5Œáåq‡<Ÿ†–} S€ÞnúŒt­ YA~ à4ǸÖÀ \Ô â¸>…¨-¤A* ‡Ð(i$ÔVZTÛ6:霭`(ÍØˆH‰ÞtŒ  òkrø`/ó²GÙºÕnƒ#b8– G>tÀå¦ö!$ÔQ¦ƒ¼K!aA€a mo´-jÂÞ_0€~˜Am1ׯ·I=lÐ>” F ¿:»‚¥0QîA?û%jŸ}5§ž†¥<Œ-óæBdc9 ÂI#R»Zµ“6’2Ò±d–[V؉)`Ú¬Uê6m­I `“²ˆH,*ÈYÇ…q@×e*us6·²b]$cUœ±'¦ ñgzíæ=|ùøãåÔ©S…S„ÕÕÕ±%K–˜T)=3pêTÆÆip°u\„Œ âñÈdee…0¸@[[ ± Â!SYWâÁP˜¶C0x¦asH/’]¡(b#©•:þÞtTJù ö\h…zÉ[ß9ö$ê÷õçg›¦Ñ>¸R×걊ôçSN~õÏøâÅ fÓ.'~€µ]m`7}`92º˜U¶åBÇËhˆ×ð¡Lâ%Q˜HÜá{i r3äÁ‡¥[Õƒ«j×yÖ $Ú}É€”|WÙu  ùðáªS÷„Òìvé»0™Ž/<ââOÀ.Ê W|ÖúÎÃ}•1¦Ä_ö[fêX¢LJÀÎÐ6 v§í‰:–IJl¥k¬Q}4z€3GŽÛ™íµÂ™\`†ÂŽuÏ̲v°ÿÇÞ{€ÉQœéãoUwOÞ,í*$!D ŒIÎ>ûp:ŸãÓ9œÃÙ>ÛçpwÎÙçpÀÆ€ÁÄ`r’@HB9g­´1Lèéîªï_OU=Ó½£ÝÕ*ÙÜW_OÏlOWõLÏ÷Ö—´>¬ 3ìèyG81Ýt²eÁ„Ï>¿RE¨ µHÁèA÷ÿi ^òÊsPhÌ&»ÝÛ9’µ90áƒO;sø!$±ÉØÆÿZîzÈR’£Ô¿  û}±0dyŽÚþ2€WŒ«T«Õ$(­4;êág®ã¢mælTý²žW/Aºu˜5àE”Ï ú¡—ÀY·´¥Ñ)Ób€ŒòlȦœ»Ê|óQWÙÞÒðîÛ¾µ'.‘º¹VL ØÆF¸}ÝØ°0‹Mí;«˜Ô`ïä:ú*?ñ$¾ÌM‡¾ØcÃ]±ü q cë‰å»ú!§6Áü¨3á™ éBK>ª@8 !`ŠÂ[Ìvö”žQ„AhïÈÞ¯)`aÙ‘‡ûÔ6¤~ó4‚—-Mn’Ugc‰“&B4¥Á·ïA¦·ÁŒz¯œ(Ò°¼G=—‚^bÜ4€à¤6Èé9p½œÒ!†¥fÿ=çÃQ„Æ}r«9~b ÝCz‡oÂÑ9°gFA%D‰ÓÌw[¡JÈ’813 I…à œ‚õ‚¤Ò`\‚dpÉ]ã/ö!Mðê€RÞUßÞqÊd¸w¬€xr=vN؇i·î@j(¬ ýØõ/ c’êfF߃‚ n] +5ò °ÿ   ` !±œó¯™£X³”èþ1HÈEBÊ–€Ø=«Ëµa°ŽͶ\ÎjDdB&¾\{Êì«TPò«ð¢Ç3†t. WH°JN‘Ҭþ×yBK>_¡Z››èȘ†ÔÊlƒÇûµH™¨ÖlBE8r$1¤“É×:†Ô' J·)80ðÐÀF[öVX"!îr^&hñ|2p7"ö¹y\ñü*ÌyÃõp·lÃ5·Ü†ý<€ö}3^þ <ôñ¢oófl¸íV80Y2ÂÉö!`§v!D­¢HÈi^±”¨„:Ylœ-ÿùðŒOtò9ç\ aww·“Qâ8N¦sùã•/ǵ—8SÛrú{Ê*FH§‘Ë·!I£‘•ÏEj?P(4 Rñ!¢* ùŽãBÈŒ у¨…\ÕWC#‚5’"c$&šNÑÃ8JòÚ¬~ìÖïžö¸ç9Ÿáœ¿KAÑ€ƒ›柰ßYœqí=„ˆ0®€aäÃæÊp€§:¼U\)©ž|h­\‡ÛÞ&”¨±¹¸ ÄÇ$D0¨@¶/ÁäCiIwlè•ç¸5ò¡I"cÚh«ØÌ!ªuÜMxC,âÆ‹Âj)äpï6Šä^ö®å?À!ÈÅ×?Öýø_í¸üf5¦”}O–YÕšH"¬Úø|ÆÆ&DP‘>o¾T#¬|jÊ•'Ÿ9r$ò&¶E„!íQJå H5´šØáz:èPÈÃx$—v1ùô³1ôøãèÕäïF~„¾þ~Üô«Gw¿õ½/õ9gslâ¶]ÄÃsDR–A0ÝäÝTŽ›µù3GÍ‹sÄàœ#ÛÐH†¡Þ­úâat¤ ô˺ᜋ.¾þ©‘î‹¶xG²T«Öµò×ì(U@K†KäZZEK<$ºk xw|Cĉ –Üe;k¥ÃËæ…E®; |ó>°¾"2ßyX=7Ïö½ErÔÎ5ä‘ïêÃéO"UxxnËŽO£À¯¦»7þᮡM8t±Þ–¬J¦àšséìÓ9y\+œÕ»À† tŒ/÷Âæ€XÒ¡´0:ˆ†4bt¢Âkðf4>¹ï.iâÅ“•l®­DêÖå†XäÐä@¡³®^°x2ªÝ{àJBd½´•“ZÑ´¢×ü^+¤· Áéó!R9(cA‡ôª„sŠ9M GÀ}ÂD…2@÷Ì4:v I‰™OöbϤ¶)’XB¡`ƒ™’@a „%û‘í P¾|&ääëý6V)‘ı”PÍEú»ƒפ?³BÍ¡˜˜A”"ôå+HïîA~#ÇÀim(ì*#·£h‰GLT,'Â÷TƒÝá(Š{ ž«$À” •JÍt8ÿ¦-+:tQ—$êaŒ}Þ&œu.–&8ÛðM»]_êÒî‹}# †ˆ8œ!å8ȹ.RZÓ)ì-WÐUñ1ùl Ï'$¼P Ep‰K>‹’…¯@dP±äDÚ'×Ú€GkH F¤5ÙãJqp‰4á8ƒ–µÙîž(}›±Æ½“ IBbž -Ù'n`qŽHÇ ÐÂ8^ûrˆ]Œ¡•+1éþ»~õ+T÷ïÇ„K.A·""g¼ñ-+,üçà /y-ŽgûÁâR½ZܞÓ8› aa‰q€™14˜Nƒ ls€]Û'ñ¥‰€ÓMø‹RšÜSIä%RÊÎ$úêRà1$ÄöAyõ"à'Œ±^FTOçZë9‘JË Ë媪C:_³êqj›ÃmE(i %¡°»w÷@È4‚@‚³emœLhË€(€å’ñ(HQ†.¤´ÕQ¸† Ôµq2«ãU›(ŒRD8šòòZN¶Yàûñ¿H¸&øH’CÐlS°C‹A ‘|81ùÐ:å:p4 Hƒvl#½ÂNÒ7×·®ñ<òóǾÕÀ¸~?ƒzòÁ­o•\ÐøYFA ãáPkvfŒóI’"h}÷¶ï.üˆôŒò[¯þÀêq…pœÿº‡îXzëK–q‡ŸcÇpòÁ8ÓïêjV¦Bh|ä±4PBÕVÏ ª¢fÈ,b=Ö.ߎ‹¯> MÙ¤—'¹­É‹+н}àáNxÈ4¶ ×ܪC]èPWÇ…´çâ„sÏÁÒ{ÂÀ`Ÿ1Ü4 (+tíìoûñ÷xç;ß÷’ Dô)%³3I@’ž/MD€~0.á¥'ho›ËÃáB“†òœÙ†f9Qçv„†€ÔuΖŸððAs@¢dÞUà t´43„܇ï5gà¿ë\ä¾ô ±).š‰ô–€ˆ) ˆM1¾¡Ä γÛ!´ƒõ•Mèî3Û\~ ¢S^Œì§ï/£æjøsZ±Þïņù”«å@¡*àôJ÷ÑvL|¸¾@jW©bÞ À;‹sÛ ; pžÞŠh^+àòqñQ¢$ù0¤ºH#Û±ý_˜ÄVXÙû²Á“š@’ Èlx)gKøó;j9£Ô^Àh\: =MðÖ÷¢ù÷[ÐóêÙÈvú ϵÎ{H¯ïCØš†ÓàÁDÃF#òW÷î51i "Ly¨ÂöI’‚é ‘sA›ƒ »+ØÜä`þv­½re\vH¿ô¾ DQh/ˆ©¢êãK¡‰iÈI9¤ö´é ²³ý:³Úï`ÊF†¦-Et]5©Èï,cÒ¯6¢çí À^c€á­'žûÇø›ø | @‡ÃmOcH4h;™h6ˆn“Rw”î:XaãÝï{r_7;}b+¼q°jk”èíØ#â9\‘æT mé4vW*è®T5)  ®‹|Ê ]¸A. ß’¢Ý&%|0äM>ذ ZdÉ%nÔ’pÞ $Ë€yÜ?´Þ ²ïÇ틪 Bƒ&f[ZÒÒmÃ·Š ©DHÛ´é8ûú7bò)§¢´~=Ü–´½ûÝhZ´HÃ- *Íòþ>¤1õ¤…¼úŸ°ú‰[qjq‚0#Ø' óXái…Ûb5Ï㯜 Ïè#ÀƒAÚž{H@ t#J/âÀ‰Lá OItöKýcÚÊCœó—Kà’3‰Þ³”è×°R&¥ä8ÿ‡±à,¢¯,‘rÌD§t:M6yŠóóÏ?ßó}_€ Ö¯ÊÂu‰GšŠPƒ ŽHx^ ùt2Ù0Mš¥Ô1Õ1ÂpAY •nA.7œ @ŠD¡±™ ² "‘Ìýˆ UÂÿ PëæMDÃÃjX œ¥aå“f%1…:òÁ‡‘m”¦²S¦€Q 4Î G©LÕRY{¶d$5D(À"\c¦ÏD®¹ ;—¬O3í|0€ˆƒñVìxY¸^¨++Iò÷;QH4_´q×w.‰fK"\~ã×<ÿ=rPçV¼úÏný}ÿbœÿ†»ˆH#¬V¼LÜ>ulcaß¶í°±ãJG5CFJB DÉ3itL>bÄ (i`¶‚t¸Ã”ãç*íé²·ÇNh\¯pS§]|»ãQEBºk䣤µÌìë*ýƒ”ò>’†”×÷{©'`q~D)úÀ$ƒÃÓH·M@ºP@6Ÿƒ3^§èå{¹¦DUÁ®]µÏ§F(†â¬[¿uÊ/ßó÷ NÄHÍêÂ!81 Éø®anmÖWBæ?¨Å?d¾þ0Ä´&øoZ9»U'ûf¾ýøÞ!C^v÷£úòyø ¯ÿ>ýÝG;ÕëæÁ]ß ÷Ù=ÚàÏš Oå~D‹§ Z4©j¾}›6â+–|} ?”8\á6 Ý)EÈî,Âíò5²ýn`cPú‹(òbx7¯úA­Y€±ƒrl"a‰´„D¨ø¥@÷ØJr;à …Vf*fNVØÈ€OâÃÖR¯÷(#z)¨-‡ðÌ©/›ƒÑ„œ­÷î‚·sCgµƒ§]ðP&ɇ9Þ†~Ïh×a²`’!F1½A—¯e¤ay…½-. ]ž?> ?Ø›å¨T% ùˆjÅUÒ{ˆB°©Ü¼™Š~G& “hqÜ ]`›öc §ÑŽ5e(ÏmDn¿¿Ü¨ êÐy“Q¾x*¸Ã71†¯¨¦¡?„•¿9Y„'_%¢ÿÕªiìgbªc¯%&LÑe–Ñ^ö³ [19—ÆÌ†X9d"ÂtA“#Ò sDRØ“®èЬ¿Š¾ D1(0 ìqõš4R‚ÀlIÎ@Hø0–P”„2šÈ b €%!’ì‡ÅR*$Ö¼!o7LKÊ‹ˆèCK¡ø¬§Äcì]Œèµg3öê§…xð ®~©DÒáŠ8 .g—\ô^Yéyc³Í—˜‹ ZPhîÐ¥ÓÚ(M£½#Im§À¹ñr¤3†5º®§i©”½ÚƒÂ˜ß‡cˆPç !òkÕ¯DDµ°"Âÿ jó$R&§è°ËJ YG>¼8ìÊž£Éè÷¡q欤ó åþ~ˆjWú›5 ù‰íH{)Mf‹•O& ëÏ»% ‘<´•vÆÊæõô„a!ÂɇF>¤Ñ„Z2>šc—9œ_ÆL9ä÷ýüœ»9çȤS;ç¼ú/UXY|ÕÝ·¬¸ÿš Üa 9N>`“2£ ªPÑÆ¾eé1jÂÈGS[,žé³;4ybC;AF’¤+=‹”6^ÇÞ>=öý»v#Ï#ßÒŒ©³g Û·¿W ¿zgqÝ3dþâ°cÛ#–|HT#à²+⌳g_$¥¼ÈÝc‹ºyaØ·ˆÒš„tÌšV#Ò±Ð_±ì6!?©åÎ}¨”|KœB“¼ÜP ¢àÀjN^÷PÀïDØV†“͵q>r/b±Æfj›Fyt~AæÏk!㼯 ÷Ém¨×jMÁ͉HÝ»rr|×¼7šRÀ`²1ðôɈN™xÄ´œå{ f6 ¼` §×bS•ÇäC¡T•ò|µ}˜bî= ¸¡ðä>8=¾EÊÌ5LV«VJð²w5±‰Ø±$Œð¢+!WÈÆwÆhHFTnÄïeÚDJ b o{¶îО¨¶Ž ˜ ŸÒŽTÚ«yšÿZ’és'¡ab öm܇’/°èÌÙ¸âe§`Äþ&»‹F#Ÿ‘Dqçn=[W¯×zú st“¼ö©“ð×vǺ äfNÅà²Õ¦cvtêÎÙçŽÑ+BAi;ÆjTEúHgÜ#¾f¹Ï=>€êSA´ç-2ù ›÷ƒu @„˜mÆËŠ>¼e{!æ·"Z<R‘ ÿM§À}fœÕûéŽg·!:k’=¸MÈ ôÛ0'²ˆ= åª! E_`¨bDtd²1™ápìh‰ÈÕ“ ¨¾b¾C#Üç÷Á[щð¢ÍaƒUðžÒ]¦oó‘ŒÐ€š86gYÀÝxÀ ¸@Æš3ïÀK“3Ï•ÛS"”p‡"ì<«‹Wוu!1£Y± we'¢³§‚P'v!°zrpïv8×÷Á2ƒÛ³ðö•‡•>Ïn®gfT KíˆÚ@.‡§ÆËï@…<`¢sv(B$…¾'NjÀœã*Âú£'Ö`a7Àíýƒ«æ´èÒüÆSli°„UO¬ÄäÆí]‘éÛÔ‘…KÀ´?ïBz „hMcßÛN„ólÏsÓ>óŒ«ôð ÿõ‚# ëGçpuP[é%®£47áW`€ÑœÍ·íÀ{XÓ BÊC^ÌqGô†ÎŒ×ÅM›ò½)Wç‡ì(–ÑióCº¢ƒšˆä Ñ í¢ ¯jj“G ôIB¯B;)˜p/fƪ5Q‚ý²F0!^²QC­3$¬§¤EéV˜*Ryfˆ…g»˜—™ ±ê#cÌ»0¯i°^‡‹•Þds/„BÚ]O?…íO=U3yfi]b.7

“×’'s^e…ŠÃ±2ˆ+zIKPÂ’²fKB ¬Arí9C·yOi"„‘ùÂxŽ“fŒÝy¶ã¼Ÿ¤¼e Q/Œ¬À÷O~¿¸Óæ”2""&bAés³¸Ãš ÁìD…`,ÐIåAqO{>¢ÈGÕ/¢ÐТ ÇR1@¥áÉ •Š¡ ÎMÿy‚€ ’œI…¸ª‚éX-¬1BÆáÿG@,¢P ˆhxŒ;¸-²M.±±äóùž—$¶‚SÆ5u’Õ6Òj"C¦!(°:a6I'„´IŸq§÷ ÁÒD):¬2¤ó8é `’£¸?*•aäCAk AÃȇéoˆYÜ\0¡¹ËOa\ÁarÅýWÌñQȇ%”2 •¶ÐÈØFøP_¾Ö’X…9 ¦#›Ï$nK>’ƵDd¼6ì*öˆD">n­ Àlgw”†ÐY.#¿w²™ 3' Ó¯•¬ŽŽ%tDTäÌ‹NÆŠç÷hcó¥W/L„%I‡„ÔZ!ÖI¯Wìùˆç(& æš×Èè–U&?iKf:¦O„™“ô癃ì˜!ýÊ7åÁ öö˜ë{À¿ùá}ÿWv$ Ý\SFâËÉ;RˆlØÃ‘Ôm€”æGÏ›ŠÔ=[÷nh!”_}Roƒ³¯ ø!B²¶ˆõÒôFTOh·~?œÍ}_4é?®IŒ×ê Û39µ5qFj¸Ê°cG·ñ|øEK>*ñ`žÄ6•ä@åø&¸»Š Ä’™˜Ñ¡<9¨ ¸Š| êòÀbnËØF²ˆ¹i-N®!¡$ä•náºâr;¥ì?¦(æøe´l¼nòïA¸0â¯D˜¸bW ‚XDrDþ.[sÏè£Y­².*Š„äWõ˜°÷)Yx{cò¡ÿq†ÌÆCRŒéí©¼ö°RÞ]BËŠ=H± ÂJ„ã×–Ùæ´R]ûÍ›:s ölèžGW£š"¼–™û¿–¬ ÖXYS?È£!$ ë—­Gï¾^ýVŹèØZc&çƒo-ëmp†TgÇ}ä© °²g‘ýÍ}–Þ ’€Xü’WK¡2‘èÄ͈À­fRZ7B¹Z4o£Èøˆì~'‘¨î9Y×EÁõИò°»TAð¥D1’(È ž‹ãri´¥SØã(~¾KHL!B \à Fr¸—†,ª¬ZŬxí„ Çw•žÄ¬'€$2 ðD#ÁF4Ø2·EkÐw˜ Ðl=‹˜ñH¬7üiK:x‚0ðúþl‰ðªfQÁåâ鸙!7§:- ñØì1ÝD¯×’¤%˜gÿöù¼õŒ”m‰^_aÀöIů·ó —@Î)48@éäu“àÎtÞË9Ë„!eÙ1Hó¼ã8yÆØ‰±kÏÞº„¨÷ ²ÐÄ’Þtcÿ–vÝ›žÃ0B"ö]ÀM‹"Bi(Dk{^“0‚$œ{ÈdR H”J>|ßW™ê:Ü‘hjj†$¦Ëô2 y0³J/e ãð]×tVÕB5bç X-Åÿ…`YÔæBÔÊÈF‚À\aV ÃáY標1ùˆáØÊMBìèÞTu*‚õŒ Æ@ОÓÃ7ctxWãô6d&4`po7z7ïD‡]iÈzò1ÜóaçÅjç€>\¡CWÎQ¹YÃÈG\Ž¸ŽˆËÄ1¦ìÙ²•J÷N9kHÏõ2Qr8vUƒÙoîÍØcòe»î[Xb¬ü¨ ¹½ÕÖRÙ Ò…,¼tÊ™††C!—Ož‡3OEC!:Ò!…™|Ö(½µ¿·c½`D¶>~×ÎNTúÑÏ"?½¹æ<×DZ—)¤Sðm¾õ€(&"™GDA4DRïV¢èCyûäOž;~CFH°¡Ù_<gÏ(å üöÓûþ²¸l餂)ç¯_Ò tûv±Ž’‹KLé•Aäo\>Â{j7’žÚŽpQÄ‚ qÓŒÑEðûîyÞæ} )TÂÃ'q˜$*óšPxp·öTUþIaý Â…à>±™Û6‚ÌuZÞ‰hv#àpŒ&Ôœem„G’´:‰°°,šK6ö.i<Ï€ÊMîr¸¹W58 ж¾ŒâíÓô|$à ã@R¤íÂê)­È¯î…hH¡xv:¾¹ÒÚ’„Á³Û1xÆLºmÜ5]- í`T᤽.¬ßGø‘s0«¿ŒÖ›W£qB„†¦œ&/ ö„ÛÚ:€)kö£Px&Eˆ¦ )‰MkJÛH ¦ÇLǨðCçŽNìÛ¹¯–÷X–GКAv 4Qµâ¯ Ù­CPáa)F5îÁÊ ’€0à)…õ ó ùˆî$À-`ÉÆ)ã÷ˆi­ëÒ+r8òž‹&ÏÃŽ²‹ÎRAˆ¢ˆP–~ ‘sÝðð¤B[}åjE!ÑI4:1[uŠÀÈ–Lq’µ«Ãl¯{2 ̆Š1Kbò%‚C LH;KT››…›˜^ÐGqŸ’œíÏ1Ë17I ²$$.@,Ae"?¥Ãz_\Ø÷d@Ƙñd-Éi³ï—"KTYœÓ`ÇÛÆ©ÏM£ÃõÂôá6y]ÚªI ×J)y&ðÚ¥DåøO\ì_cÿx^6{Ý;/¾xÇzH®Ùî1 Òîþ»~»{v à ï=3ZÀ=ã6b ¥b;wö#“õÐÚ2 '€…Èeˆ|ìÜ=€þþ"²Ù2<ÇG&í\“ (ÈÄ•°É³H³YõðµY"j IÖ˜DÜÙÛ†~P÷ ICýý“Eú¸ˆ J;G\˜9e`‡Yu‡i£ÜF>Üùà`„(¬ÂM›»;J«ÛahJ«–+¦«ëêm€Zý#%¥ŽB6“‚{Ü]š¼4Tƾ­{ «Aù`‰°+7A>øhäcXïÆ†“)&«¥†%ÄÆôÕj€@{?¤NÆöC‰\>ÛVK“Ìc=¾µfM`©d&x®#ÁÏ‚(„$“ÛT.ùy°°dÔ‘Ê>¤&3Rù¬n¨Ç=7éÝ7´´ã¶ž¼Zž s(^¤ÕÞ3pýO0@†v¾àb"j/}ýíø–‘Ћ/á¦Mä&iÌêü%Ò¸ ã•I³'a㊭1ùPÚ4i© oE %‘tDÒj¹ 1¾w­ >ÿŠÿv.Pªï!óǵ`BŠ6Ä©%ƒìïÖBÌl‚˜Ýw÷ drõÜh2Fwö«O!’p2.\¢iw@(âAyF$Æ#;wvcé³;uÒùo°"A°òËÄL·)\€~6ŽÊX¶9ç4GåøFT§àudÁ—vÁÙÞ¯‰RåúŠ ­pWì®™09¦¤º° Ñ„PÒÍ€$Q)SÇ |f<}þ]é»ïäì-5o%C­0=ƒ™[èÀ9c Áù“A )ä¿ò¢ù­¨^;3yáìfD­”ΜH‰pBîþ2DÖAzë :žï眵Ýð/ž>69d@xJ¼'÷ÀÙ5ˆF&–Ø”æa÷3g÷@á0¬ðƒœáóð*•ãc=Ç1lôıŽémêDç \Û@¶4¿ ù¥=¦!ã¤2]¾>ŠW49¯=P™u}qÓÓÈø°_pd°s6ð |‘`D(ÐÈ×­¶ê_õ«è,–ёσ“œp"x܆e)u4¥<4ºv•Ëèõ«(†z¥@QÔã&‡cfÊC˜. ß÷ÑOCB"ÍX̓£i›(í€lÔ¿!àæu’3€›g9#ã¦%KÂà€¸â­Ú±={1²Ð^8´ ÖÐgÀ 3$°U'Íý°Á”ˆ…Û»eíJÏç€c鬗 uäÂ[X±¤f¤9£‰b"âX’Q ¥%°@""8Ðb ‰Ûè0‘Ä/T`I‰´Àœû퓲Y«lò?玿JqûéÀ7Ÿn;xDW8Bœ˜6¬^²äKþ1ƹãêÍœ|ö$üò;Kð€J$¼ì 0í¸f¼æ=§#ŠBôö¢«§“'MÒͽ "¬êœ 6lGsó4´4»Èd˜ß‚6.¥åŸFx-aN’ŽY¶+™FKkü-eÕ#×½ Dïár‰ÝÒJCö¥¤{øù™ß¼ô-KïÂQaòµNVôq„A|¬ ½2äÃfhÇ]^][:VwL¦´-ŽŽ,{l-J•]ë÷â”mݘ3oRL>âÎÞ5ã8z+a®BSG³FûÌìÛ¶[WoÁóàŽ“$IÒa·q’!Œ&<<&ðC¬}vÂP¢R5a&¾B]Õ#­”‹T. ÆXlšÔB£á*‚Â…Ôä‹(+Ø»µÜ©óˆ™ÇIRZWRX (ëŠ^š„x™TÜáý(‡d•ª…j4¼Ô®!ýp³iû¾É•lØñSmü@µ§ ° !®ûu¢÷0ò¡É§ƒd¸‰jµÙ! ªÚâf<=úíŽrþWÅke—+š€È¸rRg]sÿÏûÃ…“BÌS¨ÝO+e_·¯!‹ƒ‰÷\'@ws¢Ó&"õàN³è¶§™âj_;B1·Ù“.‡ûì>°”Ùä!pÔ B”wÑRš–t£2³슙Ȝ89^Î ñÊÞÎAüà¡T5aWe¥äã˜`„Ù hð~¥Ÿ°zœó]#"Ä ¥¹ hx¦ ê%Óôœ„gLRcÏÁÙ[U#¸Ë÷êp§±Â“‚SÛP•¦$mòBâÒÊö<žÐeMš»XbœtŠ-ª³³Hï­ÔÛ€ú:ú—Ïï*Á-ð¯…z!HË—•“Zàì¯ ‰(ï@*Òså4tü|ƒ!‘žgk?øÖ^†w oOGpAX¯Ùž…÷h¼××y5Èz@$!¦æÔ†Mi`ðýÛLÚ–žéàµE(˜m) I⨠æž:;=åî2˜ËP™ß öL¯©vuþ$¤ïÙ#.Rã!"ô¿t:$…%ûáí.áÙožý…(Ò÷¢¯œóòûpÅ=(2Î? D,!Ú€ñË} øbr‰T\„ôWí‘F@Ø¡’ŽõaYŒ¬7„;pRqÿ攇¥²îÒW­Â>Ê‘@£Pp]’%I Ÿ$r’´Áîi0’`6D€jä€l¬ — HbÒö.dq²½ã€8‡ ׄN èã)ØîÌÆß¦í1ãy›¦`!W “§Q¥øu®övØ&ƒ<öB9Ìh–@ýô×ï' 6âuA,‰>+Üö Is csCl?“~KNYœØŠ™pFŸg<Ÿ92wÚép–öaØ"ºÀ‹o>WøB†Üüëù™ÌÛÒÙÜ•7=÷†6Jîô ¦bî¢v¬]Ñ‡îØ¤»Èßýëõxõ{Ã+¸˜2¯ d+bDQœÒé\ô¢3ugW’C¢¬Ÿs×6üƒ%fŽ X¢H“kPáßBV?zÝd7“¤Ó<»òžè脨Û'®‘¼ä®œ¶4Œä«®ýç•8B¡á@"¥<ì`(èpLÏK®p×‘ØØ´åt#pî + öîéCÉ7•a4òQ3Ø!;êÕ–\cêñS1iöd”Jسy»u/ î¸ÆëaHÇž»)=*ù2‚çfÈŠ9ò çÚµ·×ö ¶Ü¨& qQƒ{® ]«74ʦÌR3ZfŸ2K¿vçºÝ`!! —L/Ÿ˜”ZmÆÌl÷_„¨„!‚Š«ómÑ×ñhJEÏÁáVZåŒîIJîNµ5¡Aè8® Bß¾~ôîëCÏÞ>µð3§~Çcf¯=@*€"Ò… RySØÑË!ðýÈ’ÛïÂz@ê‘\ı$PŽCE½"~0q6ô@ÌÈC4¹p†ª@‚ò?|:øþ2ROì‰b~ Ää,Ò·mAú±=HW¶:±­¿Ýd°%ƒ~[ '4 çÄ3¿=%´ô÷¡ÐÜ|œä”aÏžA|ý«a÷¾Ò0òA"é°ëÞØï˜NÀ5 x›]Çû=?aÀMË ìw€?-¦‡÷"óèn°Œ÷ùNð¾¼gw#š×gï/H¸¸uÔdt‚‚Gx>ÏÐ> ±,,ñ€ù`Aõr¾- ù x%ÅDXf\TO(€ö”°Uœõ=Àµ3MËÁÝYÔ):uÂð& R I(ŸÐŒ‰?Zƒ,½—OE˽»õuò§æV/ ‘à®Ü 1É…1„òJ»€+à¿b†9¯P‚È)yP“g^·®V°}׊¥MM™šDö~¦M@}¶ãÄŠ»8*½!D¨ÌmD~[íÚŽà¸FøŠt¥·éF¥M?–¦?o‡Ì8¨ÌnÀôo¬þÄ–wÏCFxø×ç’ÒuÑ?új©ì¬T"½˜P¬$«rå¯nX2v(&çyÇqþÓ²ËÝgIÙ¢gÜ@DÕd“¸zXæýg\ÍF ¼Î3"ÝÈ“Â4ÆO>£[Ä”X¡wÁÍV&¥ ’´‚kY|¯¯IˆÍ] øa¤‰HÁsPL¥1H™f†¤1l°†8j@ÖN‚¸THvYçµ0pÒ/‹ ±Ç&’q5-гpyÂÓÚR·³ë<%²FXâ0Y»&k}pÇ_´ ã•á h¶ž‰ փѩÐc Sƒ%I…D¨WŠ%ˆˆ%K›g"ÌL à„& LVz§Xá2p0oŸ¤ïf@_©H쀩Ìx–¸Çy{àWîüòûˆ>øŸ"›OqàõïZ„O¿ï~mT8ŒÁ¯„øõ×—êÎÉ­S 8ý¢ãpÞK%&Íh5ÃÉÀõrhÌ4èdòâЀ®Ðå8žNV‚a3Æô$KËà¸õz([•þ†ÂO‰èœaaWRH>"£Em_-é׋By^ˆÇóå¾÷†­ûê‘…`ì!IÖPç8t‘záÁsF–YÁ—ïà®3›[Ó9\-¬걫 00‘HµbãºNM>оÀmw¬ÂGOšZG>jó‡qgœ†-Ã!Š6´ÛšPhiЫâ循ýDå`d {Ï”Š¬u9‹|«ÌcÅâ0ޱlY»[“c|Æ•â܇®´w2Æ9|×±«š³NšŽ@„ð‡*öúdVg5Òv|¤º‚!k);j é‘ „¶ŸL’„ý6Ö±iD>ƹÙÓ6¥Ecú¼ öïèCP ‡BMcâYçùÒߣúUp—ÁËzÇÀÁ×ÄÓ"½Ò“ˆÄJ!~b(jáe{6ïEë”æƒ^ïù.­ ß\6Âsû@À[Õ ¤€ÊüFðý¤ŸÞS#µ™ ýÈ68 ‡!lI¡8¯Csä8dL˜uè_´\ u6Íæ°1Ï- %¶nîÃTSýŠ|}ó=¥±=V€ÙUô¾©0ÏÖsùLb÷˜´Ñwà Ä~­a.¡8§é5 HxË;!Ú³Hýe;X{dÝ=`݃™Q¿{„w=†ƒ= ¸|(¶ÉêHD@@7æ`-"@ÕÂé‘ñP›=ÃÁu¢I(AÀSÛá©…äɘqÏ‚&þŒ¼6¼yE çÅ“PmñPmt‘Òïmª›:«»€‹Û@ÙÔÁ ´å(‘:GHJÜë„ðë߯‚,_µÝ}e4·dí=ÞæÌ ÒO¨L“òßš¦yÈ´pTzª§´ °½¤ÏÙë©j¨çM'Ô<Øä‡†ˆ„2›õøìÂRÎV«D¨´-òiaûœE‚4B¡ŠUÙ}ñùÙ»»Ão­~>Z:z³.!`*#𠢓IÊ·H)ý³ˆî#¢ÇaÇ„K°²¨Ì¾b ˆ5„ãÆy‚ê òSj?„#3í:¢A[Mf€ÇMó¶L¾: «†¤D j“¿+‚PÆxé42 ¤¢ –T!™×P’ŒÔ“"!ãò¼BŽcCì¼+Àu!‹+mÁxH˜M€‡Ö°f¸M'SêV@qBz’€)pÀÄ›ëã8Bjã˜(yž‡÷;ZS‰ðÍÖ“Wõò¸T°s½_*]뇅¥0‘¹DnILç4wƒ  s\êzÈ)ÝF a}d¤žõ‰`æèxò¾í꿯zÇBœõ♸ôª¹øÙwŸÃ†UݨDcÚX•ÒA÷®îW±¿KîÛ‚ÙÊ~é«bÞé3 %ƒë¥ÀÜÙ,tCÇ1ón{Ô<^13å pcœÕ%QÛß çãR":$a$χ5 aª#—a(ô h¶ÚþÒ>5»¬ÿð=_Þ&¬ –ˆKŠŠ8îýp4qt=K@j+úNQ=þ&sùוæÌ™$%Нÿ&Ëêïÿá á¹%[5ù(Ùò™ÛwêÕ¡|>]G>âDcI¤]äŒ{`옕ÕÆf¡1lcbf¤=ú<Ê!¢ªé¬Î˜{‡%ȈDØ%ÈG”È[°%Ëã`ࣦnö±cK—&%~UÒ†èˆ}.j¤”Á¤]ŽTK ²¥€¨¡:èk£DIòQ—×b¶ƒ²DÅs‘o)hÒ–#íšnHŽIòU 7{Èã)Ô@È2˜¹ "{Ë(ï(ë®õ̵ä뀼ê )Œ7ÄñL±°£e I”uŽƒ°×]jDroi´…$U„¤¬$‚ür"ôm¾Êèï=ôßg£ñ£O‚žÌùÐ%H£“ÌKÜêUÓô¢`꙽(½ëDdîÚwÓXš#t¿r&ÊC¶cŒyl+³U‚î–~ExûÛ0rÁ@¿¿Ü¿÷Ý»C•Cv{”¦„$^T–†žFÀÎp!™µÈG xϸC°„múJÅ9´®î8ÁùT俽,ë×`49©¾d à°Q;¡ï $Þ±G`bH8Ûc£šÖti„aóœÈRÎW–2@xRROvÇc˜˜FéçÂÝ^‚s_ёսº"5§†½!Qü¸p¢×á]ubêC{ÀK$•#¸ý¸›zžÒ ¤8Æ-#¼TkM&“rë]kñ‘÷¾È„K Š?3Ò,T3E0Žœ29ÀKqDÍ­`w‚—$Èàì,*Ú‘bhxp‚‰DYwoU5§n·?ì>Q­dz`·ý@Ø„ø{\¬D†|q}$éê9'ðWl^'B¸‘”ˆtø‡Ã,'Ê”×H"ú2ˆúÎ$úŒ|FCÀ*J$0OµJua<\ëÃË÷ (Ä.:ûz‰ž–[®Lµ,Æá(0Ä"ôù2D’ ü@ï˸y[Z˜Ézÿ±®_ Š‰€%6< z%\b`=#R´8®õœpÀ’R`’ÀH£ÖºÜM’1Ë>ì¶9¶ãÂ2ÆV’¦ÁoÓj„0,\ëÑà‰Dõ¸Ò„fuÛ°¬>ë5 a¶ãÀ„$¹³àˆ%cÙUÆuÑ”I#Ë&8UEáA…]ºœ¯éİ•H‡Óq¥W-݇«þ‚+^{"ÞýÙ ñ®Ÿ¿ýNMVªa©J¥àr®»c—úô=»nìAïÓq3ð¼," P®ô£•ÿrXÚ&ÃOÅ,C)“%0-Á§Ü€¿¢áý jL®‚ÙU a Ìlºi¦„Òè@Oá{ê±àgGVKÔªÉP“!MØø ²%ƤɄ^ÙÉ‡Ö _òço­yô•ÿÎÖbWõ=†dò¦JZRØ8;E÷v—°ì™mš€ VÊ;º{qßC›ðŠ«O‚”qR¿LT9’ö;ÎŒñ# Ç¢ƒÆ.TS @6šs ýÀ$¶¤®Õ$)I>’$U)Y©ŠD¨Éz&k–ï@OOY ÆøÖk41ÞÆ vx?Ô,IÆÈ›åH¥\M@ÔØõ8HÂŽqd/ìjÞ\}O`õ«ND‡|ÍÈjiª<%s_¬GLi&Á@Gö°{=8hnË#[ðPéòQ-†&³˜x8\°Ýí}Ç%8)p~¹_­‡ÿšYð_9HkcP“êð\ÜŽpq ÂE­ˆ"B´§ Q kå0HJ¡À¾m蘑Ö%‡G’êùÿ`º{«š€í¢E5Òä£Ökl§K_»²ˆø²Â{þ@ÀÇí·éž}ãJB' +pà7¸ IwWá­ëEpi;Ü CpW÷»²©½_Ò0>²ç"¹<¼$¦‡ú¹Ñ< y2û¤$±äÃ6ˆEŠ«kЈôS1qÔy~ºIÛK41ÞSE4«§B¶xñû1Äß_¥E[Ú,®ôúȭ믑’–€TD•ëq‹AiŽ#‘'žÞ ›”¿<º¯¼ædÌžÙ\#®Æ ÎÀ¸ –’`ì æ\ÁM8»îcݶbN‘¸ %·³¬P‚°çÓrÂä?îÀÜlÄê7ÏDˆZÉl¿)(mC(Ë %_ÔÞ*e_‡6ÛÏí$j7X‡1¸&[Ãtºu4ls……÷ÙZïïòÀ >pï àò9–` )D O‡HÅæT “rÙñ;–Ä£*„^¥…$DJËZUŠ‘!ýºr$ÐS­b0 ô1VjI€†n  Àa)d½ œÐ‡IdˆàÔ‘ f‘™³›è±"íÙàR‚´w‚ApÒ=p@ïg pKFˆÇ«ÕI­!Íq@Æ3Â@ ¤¡Æ™ñ´(h¢#ÉîÔêj3¢ÉÒa8ý˜oh+XoH‹œdK2ö¹~šÚç¦0 ƒý¸^âŽõƒ0s6ÉsÑÆ™aJê:¦âÖñJWœK&76Ð9âæŸ.ǦÕ]xÕ;Oâ3;ðÌã;kuг$0MV15rÑìy °„°_`ã/·ëù C ¥(2Þb ×}áÒx&¬‘`Ûèíl>æ¹~u˜„ðוç¼æ\"ùHQ\2•G¦ƒã9q?‡dØ ÊCeìßÑ©=A KDôöO?ÿ®IŸúAç7ݤtÕú9H¥É&L³C‹B²ßÒáT®÷t£=¥Qer} _ 7.ªe;Ö–tîÀÄ-àŽã 9h‡„ßþâQìÞ3  ©þR¤ H9X²l7®{Ù‰¢®Äª! ÖÈLB& °ñvGþfÿãÚëÀËdXBJd›hškø#HµbÏG”h” @ÒMY8L€dpÐßSÂêåÛa;€+ØØá²Ô:2¥tkåeei0WŒÐ‘̓†Ãl“‹tžëØf¿XUZ“­zòa †(ïBz7ç’;ôkÐßïcÛÎ~´6LÞhPÁ–¯¯ó~ßVÓ„lÆAzjNðå¾P°^/ÎkÌjíýIç ½Š;BȰusW-ܨXÔ×_À£Ùž$zXJº\“Dâò–UC˜v|'=&y§· û½uõ¡  ö´†˜–µOIÐqy½-•Aj«°ÂuLÞA¥Ÿ ¢$W¥½GÚÕá¡;6¸XpfIÙ¸¾*OËêUº×‡žƒAÛë#&„wÜ´·حС°€o±xÍS¸ƒ=8ˆÈZÁøÞ’¨Ìo@CwÞò>”ß5Ñ‚VÄ‹™€Î‡ae jrG%ö’€à%C¨ 1$e›ÂWÉDÌœ  YaŸ©`ɇíÕ”q°T 4Å…˜^€³³T#bf#ük§ƒwûgΦAÈéM‰…Ks?‹ctܾcz{±=hMÕl)KDP.FhRã_Ê s)€³Ãƒ]þü|°sQíßóðÌiP^<' ×cǰ÷)«™»âŒÉàOö›Ó »ŠÛ CWÏ„·®OßÖÑð\7„†è×ÈGdar¸*ö;\òãÏr9B±!+W(/ÈYÊ ²d¸@-ýÅ&\»Rj"¢ ‰õŒ°D‡sn &š‰®_@„ ŒDÖ&JÁ‰9˜˜McºnÞÅF‰ƒ{?D–dBh£¯?1†ð…Ôd¤¢t …aqDcο$Ò¤ÃJa_» iIJN€ °j¤+8© 2B %eœkaáŽ`G ²y(0p(yË&0S¢ÒzŒiBöKˆ8úRï·†˜d³óÆ98âÜ{ôÚŠœä¤ãØq KD¸%3T—|Nã —uä£Jf¼UK2u Éj×&ɧmnˆoÉ ³û³ˆ-ÖK¤0¨ÐÃR®£=*¹(ˆ¢Úœe8! `@¦GL+áv ‰ÝOmÇÏ–ïÆ9/‹¤ÌâÀBNH3ÒŸ‘ ¬¢J„Ðá¾mYRÈk²$Ñuç:ôÿãb´ÌnMÒåĘNDôÒiøe?‚…¿jÈʯi&Д±äC‚ôjóqáò46²#L]³÷æ=(„–|&i¸È/ðú î×oè>¤œ~”h&g ˆnfªpXFµwXÓî9µð+7KI%)O²ä~ÉÇòGŠèÛbõ’^LVsrÒySÑ1[—öWé}w­Â¶í½:¯¿¬½µæa=½ýsBˆOËDYca¡÷Y‚REÿ9Ç¡ AadÔð°MLS)]d"6B{ „/”Q­Z/ZÄ ”–!G®# —#¦°J‘}ûЦÙZUÔ¢}bB$º^[D"ã!ä8‡J‡MCàìçÆCeˆà™°¯8¿Eh6àGB‚,ž~f6nêÅÕÏJ†:è1ó€cÞ‹åøpRp…¬£s„_¢Z"ˆ@ùÆ#Âi}¢›»>ñÈM@Ši¯½M¼–4F®Œü%Þ.‰f /-¡< ±5sÐÌF¾ß?àîš¾°¥Ï-ŽYr}ø'³;RpöVP­yèd-.>-ùÌö®M8é¬Y†pmìÁcnö­(°]Î5J Ápò)| ?%S 9®0¯Î›0¤ðEŒC„>> +î)áÏkž€³¥ wkgG”Mé¦hñD‹&€õUámô^±'ã‘Ö½.Ãú40¯JÀÙ/ýV2à[0?¥)ó·qØ•× HŒ§€TbaœÝ;À¬}â­„»q=Êÿv: û•Ç7A) íXˆ¨8ìû˺*(¬éoÏm-ÂonIcÏCRé­U°‰-㇓‹§ËõßÿÐnŒ$wÜ»þ†«/?~ºr¶½ÿ#Šdvœ÷l˜ã‘ôb=Mš™˜Ñ¤Ã¯ƒiárÌ…8¼rLÉ!­ˆŸ¬D:T³ab26ú¡{ß}ýÛ_©…_‰šç¿¨Jžu^ár…ÈL‘u«÷¡%#NÂ3âXÂCAaªB Òu¥v]{œH#>&¬„E¤!Å BoÔH‡Õ¨Xw¿$‰(®ïn ÒhYˆ–ˆ€ðl`i”…ßtª ô ׯ‚e3^SDI×cñxÈj‘˜ƒ@al¿¦ ›èìÂÉž\’6—CB‚Õ:ÈK¥!í -‘ÙVšñdbh­ð`ÿ^é8ñLØòµ rhXRÓø¼!I'·° èa"­/A¶dý{%fì C£žÈ¾O…q´:2ŒiòÁ#›ÀoűÇO1Û——3Ìp82à˜ „4­üy^éÚ.í ¤2;{Sò è—À>KJÓ6¾„T©ŠG>zÎúäE˜²xRù Ä[ÖóA0¥nüúIm¯ûàêk!z¯Bs’| pÁ‘›”ׄŽ×h%%TÌçžz&Íš€‡n]‚R90®ØPjøB(3JÿÇ[^ÞþüÖþoŠ„ˆjäCi³R'CmT°Ã0®8'Jâ%zXذªν©¸úÑ—ž¤ü¡BS¥\Æ£wõah¿Iá ¡·¯¤«Yms§è…tÎ1‡¥sÏ îºmÖ¬íÄ`Ùx=”ÖäÃS;8g?‘œ,…x{€DõÝ®D/ dÝ4?ZU±Ž¤{²ÑÜ!@7Ë6¦N:8ôm¿(ÂÞu%ÚS(¸`LŽj|>õسj Å+ÀzßEçLÓä#AJtH˜õ2ŽñãÌŽlØÚiœqÀ¹ùª AI&kp"ŽÌä”iæ…Ñd|D±àÆ›×ëžBœ>Y’ÝÍ݈Õ**²qÅDzƒû¬ë¶H7OÁ•¨–„îËB"ö^Úëy£x&Ù!MùÚÕ{±~cJUMÔ'Äô»(ø9F‘kÿiå®[¾uÊ=ôÎa}m¸ÄžÍU44sp'€:v^¢a~vJ9`€ÿºyp×Uà>×ÙžCxÙtŒ ¶¼w4T©…QêÕ æF`·É‰°ôáíØ±µ[6÷¡X1÷…JUÚpC?$$x×ã ŸP«Åس à·®áª6+üÀ­ øÃØ$2aëà ~„“‚X8É,nõ‘º{7Äœ&øï8Þ£{ýÙfð=%€¥…S´¨^¢ZHÈŠ,0¿Z¿§õiþCá5|Àk%°óVW÷Ø^±P‡§À29ˆS&ƒ©s‚µsXÀP½þ¸Ïék%MFxñôäû@°$Kö·Îzj\T½jãP˜Nwû¨´¤jä£ê2쟙ƞŽ ~‹È…ǼC-ø¡¯ý?þ †ŠFeÏ=¿÷V‰ Rˆ/Yï1¤0ŸŸ *A’!לѶ鑶¢ƒ“èô©pwnŠ_ëq`BèÜ)`Œ™‚G“÷ÂÛ_BºÃéèDñ+/6÷ðACeV®PÂ6¡|nÕ^|ûžW4ª+ +¹Gaê0DlT¯ˆ‚c=# §Õˆ‡«aijÇð*±D㊙S€¼‚¡ t–}ì¬øèò«(!|a.I aÏ% 7ч"cR»GìXˬoŸ1„Ê1­ñs’è Í“œ;` ƒBhÂSCÕ*ö¤Rð¹‡éQ€ ÜDŽÕ÷ΰ ‡H+äXÜT0ÅìßPì ÷Ìø ±ÜA‚ÙU`n÷12dÇCæ@qÏ ÆÓ…^šÜ‡då¦0ÒO£qä£jZÏGD€ £+,á%™XÄyAãrhÆU±Z¡ ×$™'ɇ†øX%-M˜¨ó›¸õ1ôIÒ+T éàëÏ g\‡[•ÀÐC„¶K}fsƒÉ†¥ gŬûÕs˜zÆIº•Ж\JÄáWfô³c¯ð}CYñÀU3‰èMqõ"i5!ÛUHéP@ÔŽihÉàE×,ÂÝ7>­ §j@ðC½¢µPFéo^uIþÇwü¥TÆÁEŠ= Öø ÁaÑáÕzŒ<Å ùp†5ÐckejÁù7'½èÖW>xuD²ú›;ÿГì*ÁuE?BrYB¾Ä±o;·uÁIyÈ6ç†&É4°ä« ŠÏí¶uûµ1¥©Ç5ò)üpÙ’òN)ÄwD$^+…l"Ñï¡®ÛõP—„“2Ùظ[#Ò1ðÙ'}°Dj¹›qɤ`„Ð:±Ö§9ʵ!üò– §·‚r5vÙZo‘ gÃr‚´fíÈÀa®v Š…Å÷C/í¢¡-…t>Dq~oÕTÌ‚@v¢‡|Cwxj¿ðÕ'°NâÍiˆù°!hJgòpSYSœà¨tAd£s6j¼€›’ðÊ!üRÕx|l•°\CÞâ`#'ßÍÿâg6mØßþf•!že÷!`óÂoP†÷VŒ!ô;)±Í~n»*ðK@¾)3Æ™0”¿v)r~ Btá4@Þc»þýV0‡#xé,D§wÀ]7gE‚Woêß[qAÈO 1ÐÝo>§ 1éˆQU,صk°¶Bl+~¡¨0dK–ú¡ #·ëxŸ´s°71seWØÁ€õ”Š€W(ýôx< VqÐäöIæBž:iÕ¤A¯fáÑ‹f‚Q ©‡;ÁŠÀÌø½gû©rðz+ŒÃ² × ²rD>ü"…³ ¬G¤ÉØbq"WÁÑû<0'ˆS&Áy¾ 6Òᆠš4Љ9ן wm/Ä‚‰(Ñ ñBµ!‡æä÷µ?‚ù”›<ôOIcÿÔ :;LèUÙ’+÷*cB‡HtÌùñÊ«ßü')Ä›öb3þ°ÀÉî Üð«U1Å´dã>Ÿ kwcË–^=GƵžÀ í­Y\~Þ4DA¨‰¨!!&L­ÐÔÞQ;m·u<¯@º¡b®¬UéqÈ… vÄVÁók:Uø•±3¯¿v^m¬–ˆhâf\¤Ü°q‹ÑË8SH®d $)?òL¥¿Ñ…ã-÷Þ»ûº+:ç£h“ÎíÛìSøD„ð€]Ân›)rÂ{f;œƒ’L®µ»¤ ¬*¸à@œ LËeá¬ß gwÞs}ˆÎ™:l\M'cC7¢}~ñˆP­iit•®]»g Uü8D¦“ù7ñ¸#ˆ­|u/€Á–%àR <ĕͱ¤)²ç,˜ 9«Áµ îS»À·€ùR÷ì+ òõ\Ĺ³ú"ÌARVdÎ)ÓQ›H!€³žMEpsPÕ¶ËÊ!x¢S¦*Òÿ¾†1â´i€“…w÷¸îUÄq Ä™SÁD8¼§PשM[æ·Þ½îò‰'œ3«AT#ÕªÙÞ¼¾+WîAÛ”6œuÁ‰X¸hö˜d`×î>ÜxËsÊ›¹£Ès ·+`ú‚_È­Ëßðq)ä×lÕÀš×³Zª"è/AΟƒÆÆÆ#_nè*Á]¶îóûà¿u¨5‘#UH!Z4¼»ŒPep‹ãZºy-Ò­MÌCNi«E,|ø”¾úRŒ&K—mÅ’e;1‚”1BK×f­›¼Œ·+Ì©ßoP˜©08 ”[§YÂ8ÍZ”í2àù“ÛÑœNÅá;Dð«Uì-U°uh]å2‚ „E&ÙvŠ„é|]»ùzõßôôð8GÊ&Ísº$Á†‘$ªBÁÆÜU¥@¤óGHA'´Û$oK¹"aCy¨Öwƒ Ó•Yz)l F&Ùç껇{ “l3¾=(Û%fò²‰²ÑY˜m§.ò…³˜tÔ #ŠGGF™”q…°¸a¢›%36r1 #,"K®|…’%[L>z°€=×x}¡> ÉÚ°5.¢ø¼iôƈUÆPà 9è¿©åÊDŽ‹ˆ­ 4óØ[²E ™Ž÷zۚǜÊׯFæ#÷€UmÛdD—ÎÞANH#ºòDàám'MÕ+¿±0SñsÞ\ìßùD2çCÁl'ɇE­ÒÛ½oø†|Ü à+ O©±WƸJýüXé·ZFP¿xw­ ºø4¶à@Ñ^5jä£jÏ[Hæf€æFð¾Œ9:´)¼j>¼‡v )Îö!8UÈiMIƒá€ré˳P 6jqM¯6 Š%•Æ ,‘TÚöoc)0–hn¨u XOyxŸCð¾ò$ؾbíÊʹAÊ…ôýDu2ƒ¨9Uâ@pK“›«VÂ?xiPµ Möž_¶×l½""+Vw"Â#X|Öñ˜5«’êÎwážÖ¢Xªb ùu}÷'Jnÿ Š¢‹„×) Ð ž}|ñihlnÆáˆ³l7Ü¥»à¬ïŽÉãêE¤gi7&¥§OSäÄ]Ñ…ôO—ÇÑ0åAðmƒ†|x(ˆsÐó0š|ÿ'O`ytÄ2¼°²X;¸š÷2`º%hVX¬¯­jÇpêÀ-6ï¶#7”N§pÎ䉵rºÅj¥!¬ëÔaWaÁt TÇsáèn­ži(湆`˜ØÓÚª¿§ ž·„zû%é0®r¡E()ÕöP" ¢ÈÔÝNƉ‚˜I:#B¢ä8èg ›%C„FV•fÇÜÆLRtŸ]I/ÙP×~û<˜®à2‘áÂÎ#ìÐËãB°àãô4àò>B²!v¤´Ý®ÚªVÍ–ÌP]¸UR˜YˆQÞ/ùzw„ñÒ(ÓÑ p¢D£JSÙÇ‘¶×HâøI¢›`Jó’¹~3907Aìg¶cÖ Ý ô`BGy>ØQ>Ö†Møù¯ŸÆƒÆ6bGkŒd2 C“/AÛ´éÇøZ{b[,V°zÕvüügaO–¨bXSß^…ï`œ¢rçn¿õ{§-wç\ljCwÀJ»÷!7¡)Œ-tÊðå{c¢¹t/hBrn‡!ž ïÁpWu#xãbФ$ÅKçî¡–„H«…õ Ç(×¼šˆDÕ–J¢ð¬"åq\P{,S8s”«öZ^©ð3…q`±Ø>O„(4ÆvµjÎU –NM9°bwc/ø¯V@,¢S'ƒ¦¶‚ÕBRv¤v{Àì*ÕG?¬´%ƒ_dÍŠK\b}ŽÃ-ùp4L%6ÌþF!ò‚°‡7/¢°±×‰­Û»1‚¾ŽÄ=˜d+\EO ±îdà¥po ˜: Àñ±·cDòÁGxŽÁHÚçøûSOÔ½JÅ6÷`{_?†‚žç å¹èhh@6F6å!ÅM%¯F.L’zá¦R—Öl„U©¤' a*` !z«†­V¥Ùº‚X-Ä(C€/ $ç ƒŒc/‰xÀêr\˜P¬B#Uë Ù§*xÖ{P&óš‚™/›§'ô×K}Èź.Ÿc¬T¼ƒ· Q§„õ|”b¢·K¶‹y%Æ8»­óÂþø8þžFªäe}¼­ äˆÀë*oºH‘­Ð–è¸> ¤Éd?ª:Ï‹fÆEH: "ÔHH±»‚¥ªËîäŸÍ„“ˆnlÍb‚"ß]»öiòÿ`r÷_ž÷÷—¾é‰_ãHÜ¿AÖš B!5©™t؆ôLž2ç]|2~ñËÇL%—ª ?fà B’Î"’ç™ð#i I{=Ó¹†Ã4 Hozi©tå ¬‘DIÆ7>{×å7~å½+í,\‡Á‡Uù)éÕA >§ÈÇq~5ò  ½%SëÜ$ÚÜ…’ÙIªXWû—ñ¸}ôXlñÏBˆ2’çÇF§80Gaçºms ™ÆùA® ½ H ³ÿ­\¶ ¿ûÕc謢˜»ª„æz[Á‚Ù͘7£A_Æó ÇÝ~Ül3¾ñeü•<$4>õz<õÌåù¸¥ÄJ©çr\õ¢i‰ĸ±ÝÔù35 ?6×ëØƒˆ08XÂOÿç><ûÜ ùCeû]T?EoSdý9‚x®ûe‡ó›—«Mjé8¨–+¨ö!ÕÒ:æ 8Ë÷ ó·‹KçCœ;©o?<²ÑÇf´‚oî»l¢«Z‘”\c3&LŸ†žçÖX¯GL>ü@–R•@ºÖûJU쯆r[$éKkVE·ÆÕp gŽð k2x¼‡™Ÿã"!a ‰Ì¹VíùêûÀœÐÚ:qØš}ƾêñX tö•yéQ«èÅ0Éè/*¶ å¯|•™@š»m¿âÝ ˜ì€½Íå–|¸Js[8.S°A[rá4àá8=ˆbá¬íïhG-Ñ[Áö²j#9ÍVcÂ[>½±ç›šþ–0”¿¬ò"uò†0Š8LÔKƒ|ìá;›×K‰:9ñü[úž»ÿʯ‹PüBÖD8nbÝÓÏ uÊÌ^¸PÏÏhâ<¾©›V¢ñÌnȉ€±a²-½pö—!³i ‘×â®è+›$h©®¿<~"ÒßÜw[Âwœܼ ðCM^¼?®BôêS¸¿}çGjïÚ²D‘ì{F넾—1…®s<ï'R4K¹ìd`ª5†á&IÆÄé3$S–€œ<±–ïÜ…-ƒˆ$á„–fË0%›×l—Wð<“ £8ö”’mõkêM¤äë¬Ál´GÒ»/’qûPì$·eakÕ¨¥ûlu,Ð ÍûHµnCü7±$*ƒ5Y60¦äX7€Ðfau‘¹k40ƒ 4LhÖ(=Gh"ër/œº¿áYˆÆïh‰lar‚|¡`½3ÐÈF~Oa¨óÐÈø±»ï ¦>_)§eÌž%JC–¦­ç)§ôdn®‘³Ÿ'æ1J i¯QAé Øùðv<ú¥Çqñ¿¿IáŽwåv¸)5ȵœ à˜AÄ ã´îݱÍ&¢¡µõm•YïË®> ?Qù Eß”• a¼"„¸š$AéùD˜8eÀÒGdv9^ é¼€_‚mÓE)`ça–Ú÷ç§n¹øeßýú&DÂä㸜ãŠw,n„ÂÏ>;÷a æW«â“¶Ù’‚]ÍÔ¡Wƒ±Aõ€áþ3"'œûÇ^ö]‰ó£á¨'BJÓãàù ˆÃq'/À^`èØÕžÖ®ÚŠŸýð®6bÒqŒW^:#é ªyìÚ&OcÞ ß󓣚èîûŸW«§Oaåê]¨—Sç·â¸É¹øÚÛ„Yî¸hhëãvÜt§M9¡±ª{ •UYê§qçKÍwE_êò£b<¦ð Q®zÇ3·Ýÿ‹s—:œŸ—L^–ŒPÙ׉|ËD8ltOVõ›¯Bú7CKsN‡ù°tòÔé BŒ;àÊhcàÏî®>õ2ÿŒÅxþéçcÏG aK“®"º)$ ÇaßyrIµˆÃ[ ëf&à; x#Œ)QeÀ)4%lòWÖãí¤½1‰´Ì<¡ÆÎ×vò)Dªiž÷§çJ#1{B‡8%dÄŠwË3µó®ÚƉ÷XHÀ{9ð~¢P©×ðv‡;Y]6Ýz?R…<¼lA0ó~rR3Äñíp6Å«ìԖ׳óÔ6ˆÓ§kÈ“àÈΜ‹¾•ÏB?¬P@ôÃ_|~Þ®7jƒ&!ïÿêÎW}âÚ/ªò}•ª|¥ŠíýШØÏí!ÊN…—*ò±£È¢Ëîºá©?½¸…â&[ÏvG7¿‡A¹Œ6¢4T¢‹.õ NóÚãk „o?©=¶g ±8«:ASšÏ­Gž1 ¸à9/çá-€ËH‚UB8ÏîÍn¹·œ gÙ®¤í©CÏÞó/¿J’z|#‹¦˜ö¢;ÑÇNÂt£¶pëìFƒ‘s!š3)ÌliÄŽÞ~´æ²¸nÁ Ú½Ì]¦åÕuIRÁv`É@¢±Ö?cH@_Īõ|ôzüªnFØW 0„¨¨ýi†/ò ­9ãÈ8¼Ö%dL‡qI¡»mo — ±­ˆ%±1ãÀ ›À„gí·d$$ë5²cløµ`£f!pç‰Æ÷CÁV¸²¦}\µ!X&Li²ld -0ÂXX0 q{ý·þx#ÿ!·d#ž¯øœëÂÞå©·õÞ×ê&nòÖþø4/˜†Ó^{Z$Î[|*ú;»n È¿qþ¼×>XÂQ)åVÔ)…˜$…L‘k[г®»Æø#³QL"ö!Þ øùY?–RþƒŒ=5ÒÒ1Œ¥¨nc é\©lÂÀ‡”Ò@›˜M—‘ø“ø×jÉ0r¸›Æ8 VÞú™M¿úÚ§1"ú‚$À€ ¥ÑÂÂøH‘ã‰ß…Õð4)äG‡È@Zò!4¤"!ku®y‹OÇßLèPÈaŲõøénÓ¥G‹¾Lx>Fc‘Lä@RÊ=“ç_ç fxa aÝÆ=X½vnøÝر«G_Ï‘„ä°< 3$Ñ2yZ'Ž2dö‚p|°èÈ3O¬À®]]xä/Ïa°b(Îõ‰t”—}¯þ®ûQÎÙcµÊI®õ‚”†*ÈÇôôÓäfˆ…SÁ·tƒ¯ë†sÃ2°r€ê篆–[V>xŸgMäI“ë ocЉœrUëE‚ðúŸßÒ¿GWú¾dSr³Åwp€Ç^í9¸„•0ÿ iȇíbÆÅÀ—Až<ȯ+Uá<·á›Î†³t;ø²€ç9¸m¸ü„$ù±8AÑax&GÅY!~Ù&ða3aä“6TìãÏ}íÌ×̼eGÓþkg2Ü^C)]q-3<ßÊstØ’dr#"õ;]{2K ³}ò¹<ÀD‘)Äagªxw}OŠ/þtÿÃï~mëãE_œ\ ä¿*Òüw¦:ß!“å ü ?SŸëêÁ+AŠ›E¾B†âw"iaɇL`ÿ®ÝøËnÂÂóÏÅ„©S0\Ô‘‡8¡Îz“fâ>±B…ËÉS&Á½7þ:ÏïAtÉ€yÃæPΛ9g‚™¿b$â®ì©ß/"ÊxHÿÛÚ[âÝð,üo\‡žÞ"þåã7b•º×(†0?‰Q„ w4sŽ©Rb’-ßš ³r“$c °„6ù¼—Žƒ Ož\ÊÓ•°F5‚Ùáß;mn‰ÖÒz7©ó>4ÙØçWÑåû诚t„"t5 ›pÎ+1^«ÅîÄý5Œñ©t+ Ìa¤+$¥$ 5ñ*º!:öq9aÄGÖ› ìk²Ì&®#^©¯+;[g¨áGÑÞ|2çY±cž[Šw6Nvbã¾^(YÚyŒ÷dã,ŒÃ|]ò\¤ÝöøçC°¤«.‰¾þZvK “€Á™mxÇ“¾gîº= ÜL;çÕÙc ßtá¥oKz@„‰…ÅŒ“NÁÌ“N>$£r$¹ðŠÏbpÈGüY×`¹ÿ'gÌ%`•”2-DÂÐ&B®¡g_ù2ÝoàH…ú‡¶wÓTª>„uÇ'\Ý¡Ñ;~ñ“½?j̺nCÆ©ºûÏýqÓ௠Kn¿¬= Â{D(Nf„Æ?@F“™#Ãq'„isæ"ßÔ /H228PĪpó o Rk2WÔa †dŽ {¾ôO§6Lhô´DeÓ¤5•Í×È)cÐŽ?u‘-£ÎôbV¦¹5çwþu„-þöuv£«k[¶vâ¶?/Õ±ý=%ôöq0Y<¿ï~圸T¨§›Î‚9®~L¤À€)* ­µ½Œ1lcx:{½1¡:â´gÛ.}nÏ<²==ƒ:ôhÇÎ.íå0•á¤.I=äëžAõ¤³×†]ÝŠ#G~{aÖuœ?p‡_Åk Ì&”§aâD4uœ7Å1š¸¿YŠè g"õ±[Á*A¢cú ò÷÷‚íì…<¡âŠ„™=~÷ÃXöØ2›ë¡`CQ+¡¼î¦»†nÃQ ´2àQ$®!à/gÀ|»ïf 4½cɆ%O£sëv[P$ÒÚtóR=þNŠ|òûêäâó³©0¢y=Åðk‘ vNÅÁeHç{ܦ¼ûqˆrßON¿^Dò»BÊFÓSCÛ“é\èl6ƒ–ö‰˜rü\d[›‡-äò%;àý:ÅØœAõ— õŸ‚ U@"ªò™äÂÉüXüÉíðî^Ù^PdnR_ydD3 üûEpžÞ ®HàîO]‚ýô±lÅŒ"Û®V$lõ˜d€Œ!MTO:¬N„¢Ô?Nî«[‰¯Ø»L§­¯ÇÓ)œ0¡͘‚ÖLã[fö äC lÅ«rdˆÇþн }~~j#̵¤Ã³ Ê!¢ØkØÇñ*wºFX­Š•ŽW—í2Â|n–#œQHHÜ1&s2‘0íØ×ÉV•²‘šìê|z„\a8iŒœ.aúYv ƒ¥ÀV¾:‰›JQ.’r¨ç¿¯ÓÐ^©ègGSÈ")|¼^ º¾/¢î»0@À~ tåÒxû¦/$¼›—=ƒÎ=5·àœ}öÌëîûwyä·çŸLDOÈH4$ÉGImäœ}ÕÕHçrGd¶¼è%ÿ†¡âøȽ?Z쀱ïÑ»j䃄I,8û|̘Ž–H0 îÛŽþíëà!¢:oC†k÷›žG<‡½Sd<.8LJ9cßþ÷?l8ÆòèLat‹ˆäé#“Y# š°645áäó/D¡¹E‡ê¼P„ˆÐÛÕ‡ßüìOذn‡IÔ÷l¹?z u¯Â•ÿó±3¾(…¼ÔxÄ$brj@ ýÝñ\ÏS0a7™LÍÛõܤšmŸ‡¸îŸÁÀxì=ZRõ«(–ðø#Ëðäã«°ug·Î¬D‡+Þ틦üèʳ;þYJ™•’F#žµÂ®çêñ«mBYÈåÕ6GnÖ\x©´îÓár׆-ý”ýÒàŠýƒXñÄRlÛ¸U½Úo n…b5Dî€m.(ï¾ó/¥+q D«œ”´_mžEŸ·ÿ¹ ˺á‹óoBªDëØûáÛkwá•àüK-‘lG?¼¯=Tãrf BE<ôøÓ.ØænМ¶al×÷C\ñòÿÆÀ`õòÞ.‰é!pv˜ì ÚÒ·òg_×°qð£mOv¡:³}/›jL!sÑ:åd é§<€ëŒ¯ù*»{ñÌ=ê…ZØ™Ö&§Ïä§¿ðÓýŸÇ2ç> Àé ƒñèÆÈß?õÍBÒ¿+Ì2!¸³M½”‹”n‚éêÅü掉h˜3 ™Œ§Ó˜$E¤ï¯F@íÚ5Cœ;|Ù8ô©é¦“Ñë…T öâÁ»Åã=S[6Õ®¤6Ê+àõáRõCµôž-¾˜ˆþ"%1C@ó@š|Øñ»†|(ìžìhÍõs^ÞCºy\ÁËLU: Ç#°#6Ø´f3{ài¬^µEß$ªö—t|m„ ¢ñÜŠnRø–"éßõÃÓ’„‹Ìu—°^­Ál“¶øÚë|2»Ï±ûm¡tsÒ ðr¤²p\SìÈ\\$ Ëy›T(`¹è£šD沆Œ¯yÅæF™°;M>(>à ÿà‡êz‡8JòÌm—gg·p‡_ÁÌeàš¬qäIkœp<¸3úØÒï½ 0‹œZ'‰Hð¡ƒíê×qóÔœ5á)3Z‡cïÎNüä¿Ç`ÑG¹Jšx›<'y÷#OøG€Hc|ÿZ7É€u¼]é{l$÷~ùùã—“ÄmA( ©ßXpÆ 8ãüS1eF;jÒSBê‡O{@çÈyAÇO“´þäâÛ?xõòÒA‹J„‰pI à!J®¥÷üöS;_3¹½L¸o7º_7rJù¶f4Oš 7•Ø‘ûëvoÜŽ§î6å’“ÌV»ÚDòòïÝØ» /¹ù['$á)åe0äC“Ž”‚§ïyJ{f_Zmç;& ?± é\©›ÖÂ}bGl)"^v<Üï/­%í‹ó¦#zʼn@Ê©ó®„óÔ.DWÌÓpÿ°fĨ‚;û•×ÃôúøÄd>ÚôÿZ‘ëqqÏÃJê HL,FÜŽÁë4FIV‡}>?\±ïP•±Nhk©'õcÈ(!W‘4=>ƒPwQß^*éf†~À"4H 'b w q^›X!%A²Ž`3óže>Þ~Ih"ª•Øe#åYŒR’–ê×™ÕdšWöI ß¾.Ñ=! £‹´@]žˆ!\ÖëP×Ï%$󳈰¡a¦*ÝnI—w”¼UŠ OAÇûß¡ÈXÂ%äÊjÇîqSË1%IÐhŒy•uD4üâNœwü]Û5‰c3U[ ™Ë8û€3p äÅozúOwÿpÑç… O¡ˆ HaÙCáE×]udU”ãÛ4±²“³®x¼Tæà¥C³­¹BÓ”Y¨ôv¡¸c+„„ÐþMœÈ›#8ÿP‰øé´‹´ËÁ¾Í€ü×[NÿÒGþìp åÒ·.Ýu×]"‰î’ÉÄê·¶óøpò¡ Ï¡î}ý=O8ù)ÓµêüÕ;…0<÷Ô öp•"ÏÀo_öП¿wêm\—$¤àðùp$Ü.‡p”€èß ÆŒïÔMôRÙiÆ0/4™þM‡ø¡*Ëøýÿˆm[öØRÌÒxxJ¦ŒŒ‹|ü„ÿTc^/êÒ¿ѳ2þ^X?³¤Ë¢nÛ±eK™ÒRí‹¥ýA¢·Äáx[à¥[áfòHgÛÕcî c ÛÖlÄ3䬄ºI™<½d–|Ä ÷•@Ëü›_ðé„ýÀÉx?¢P€‘ë£H’B£5ÀMŽŠBûôv\ûz;ñ±£*äŒøÞ~³ y÷ZЊ]>qÆ’·½ù,¬ß°÷þeÝÕ°.,Ý.°Ï:~ÝyÝÌÏ÷]8Ùò%¸ò[†àOkB¶©N ÐcGZMœÑ†BKöîè¶}>̵±U÷ùw¾Œˆ¼ò}«Š^rã×ü·ç:oó\·E!¾çyf±…9‘ËP@ùÈ4ä›—GÃ#¡©˜è0ÈÅàÜü<ÀÈØÒ«ô¦} †yõęЀìÔ!Vò´”ˆ@Ú©ˆÇ†MÝ,VÇæ…„(òñnŒCÜ$Ñp5F.«›ã1¡{6RÄã—«6àõ'ÎÅ)ímsírJn¥“Ëw•ÊÅŠDòBÀ!‚´¤#rîè#9…ŒkÊü`Ëóº7ˆ$bj^BƒBÖ†a9ñj˜½8€Pzˆsì“Y2ž ~Pyì„qnòè—Æ£$YÜk¤Ž„T8,±¨÷‚P¼C&s$’¤Ò’Žf[E*o‘ÖÇ=:B°¹&ç«Ù}åÿ–%ICݘQ÷¼°Õ6~ò–<.èÀ*^‘=® û‚º†Ž sæAnßÉ-‰IÈ)«~ùgN¾èÖÏâHɵa(Â0”^™äCµm*W»òxEH "ÄÞiŒÓl>þý6®ß 0cÀ"cRK'óÙm{l" H+4&=v%Ì2!Ùƒ•ßeùOžã Ÿæ`œÍ`œç›ïºàãDô¤ˆ¢aÏ D›>ôã§žÇQ’+ßù\ÏŸ¿êeRÒC’ä) òaŠÔV¿cCÔáÂaèÛ²åÎíHçsÈM™‰L®'0çXsóéܹËŸ\-v »{Ez¤ûÀÄ9c“Ý ¼ÖXøWI$Ñ+¬ç¼F>F6ƹž®a·9`*ÀQHü•Áà’ÃGzâdÛ& ÉÀƒ~æáç°D¡»gÐÜÖÈ(+T"øá˜äÃW¸K†„õ«ÿD´J}BJz“t‚´‹nñ]n´«2Ühø6çUBàw ìwwêålãddZ-Q{Üå¡2–Þó8z÷÷Äýpt¢uÍó“}Í%lZdÈÇr…+ܨCSŽ¡,ºòλžÿ˵UæpÏz–¿ ¿Ô7Õ¬çgT„ݨ‹^ ÛLo ¤ŸäÛºÀvìÍhFRüP ØÆ¤ñgÿ¢¹'ð‹6­“ã( „4%y—2à‚ºu®) ø€—Ãò³Âöò]û&z¨ãÛ‰‹®XÀG½ÐŽèº9H?½=>°"#L‘ ê(€ÐÔ €ç )ŸýÔeH¥€?ß“½ö0+ lH¹ô¼bH“oÙÑšwÌýÜ­J¤›2Hç0VÅØBã~>•^üêspÛ/ÂÀö^Äe‘•Öo½ìEÙî´² / yÝ¿¬ùÈmß_të:ÿªp™ýîÃ&ê+pKD¤ð‹eø oàðº}ý¼/«HØÏ¯‚TM8çÃÛàlïC8=§=F4¯4) TàÊs›P\щ®mýèî.a¯â®¡¯•á­½4Ú´Ö37¸žVuU¯F ˆõ˜äƒb¸Ñ&N nZ·Méf45R²¹0!Wš0ì-ûØQ*¡«TFäûHE!@æ–Re\¸2ž‹¼ç¡)å¡Áó4áŒéœ‘n߯…pJ3&È!•ð8ˆ¤—Àzh¤Ò㢋€š¬x,1G‡¸Šï –´í#²¸ôm:q|"$ì¢ñ™‹ÜÉ"qÝe¢¡LŒ•ìûemˆU*nœxDăFwD@§„ëiÆÏX}(ÛøÒG)I‚­æuõÃ)°±GÒÎF(ìØí"C M@þ “&ÁïÚƒ ,ù¨‘”ÒŸ\ûÄ«¶žxÞ‰£,•J˜•D, MV tM@ˆ¢®;F•L… £MxQÄ÷ìÝ£Wôµ‘eW¹S\ƒƒ{Ž1.Óú±aÄq“AãY •¶¥ å°ÕAL>´Ž"‰ÜRù»‹ÿè`9t¢(zׄ†òŒI§3@4ƒ1ö:ß®w}õíçnv½Ô·Ó™üƒïúÚ½8B¹úÝ+zoþö)/“’þ¤°˜ ¿q“Fw-‹+M.G ˆ²@¸c-üæ&¤³¤sÚè4}žÀެ¹^¥äcûúØðüFìÛÝ…þþJ6ü¦|häc?¯QäãIÔÉ5ïY±À+oúæÉI¢O3Æ[n+Æ™ñÏs\'wLVpØø¶sb»ßǽ_l˜P„úsQܲîÎm(LlGãävd²éQëé=÷øj’’ÉgPÜSÔ^ ’‚oˆwP8b{‚üAá‚:ûl¶5 :0 æ?;pé΋šàG„R’8–}€ªvꨱxø²}ö¸÷7+À{}ÐÄä´ÄY“ô*zR²iàcº—\4SUGºgXIÞY°×|—!³¯Â”h¯R+ŠWÌ„7£ òpܺE16vϱ%&!/ý»³ñ³o<€Ê`Ùܯ¬Sa^5¤ ü/0¹öÝÏÝÿÏÏ}‚3]jú¿]Ç9ÉqÇ$DkÆ !IRD¢q÷È'ˆ›×£49Ò9Ú0€¦•=ðÒ.hc7*k:×â¬ò½t*î}r#*›¶a°«Œ½½Ý˜ì‡XQxÝab¼Ø'ìò²’ðŽ2†õ=0|Ìvô?aõ ™F# cæ€Ä9a"ü…ÅZÃ"<¹»s\„—¿ lÈÕîRÛ‡Šè/—!«™ò°ÜÐq ò^ Íi­é”&y×CÚáú¢ I C ¼ÖÌ0ôz@¦ã7„-Ÿ[À¹ ×ÅÞH¢‘MÖƒAɹ9ŒÄlnÿ6›äìërˆÆ~Äë;›[íƶ-±Œ4KäÙ}컫K$楮ƒùN0LH™Ä*'޽h4B¢ú™šÕå·8Ém;™$£G}¿Y óPQè"ƒ!…^~Š~E½¤R\“¡½»!€óšŒ31öEBnW$¤GAl" #9_rÃH˜’„–ˆ€aÄó¤q®8=øÈz€8^!¢AIt‡”t•$v¥×ÓFµu1ÛUl¦¶¥Ö¤¶É±R2n\J¡·“ͧjI÷"I>‚ùІýFWŠyhcùÚ³§ÿsÙ§†J5|CK>Å YÆvgºIj&íj/ M#†i»ˆ;ü±_|êußg¿ógGGä~ïó»nüú‚W0ÆþÄ9?Í«#Žcɇ§É‡‚qÅs×hɪÅ"¢ª¯K‘jâp¤³9µíÂñ\ch§ŒÆÆ›0Ø7¤HG7ö+TctDZÿ1ù°aWÉÄãzvõ ÆW¿ÕÃ.E<ôë ®æœO`Ü–FwOp‡wعh´ä£®û½ÕÂ’R‹Jeý=ýp¶lEë”vL=aæðÞJDXóìVüåö'PÑÄ#6ZŒçìzÛƒ Ÿ¡Àj|0~±c^½ ÀÄò—_?sv)ãÌŽ™/Vx33ä#­¶0ë-$ŠÇ<Œ€é~B»ŠÁýÝȶ4£uV;rY0ÄR­„xüö%èÙ×ovùD%ŽŸ¯ú¡|,é† ’åg—¿ÇßP¸ÃÆ9¿ iD0c'‰( ¢ ×5ü¬ú­‹zÿƒ MBF9«49 :ìsr‰Ê“XºrŸiXgÈÇ1ÛÆên…} èÀp¹U!+­]áIúóYâá›ÏòÍ|'ŸÚ×e#õÌ àËöÆ §l¶»Šà¥*ÄeSD¨—Bžãüs¦áE*×àÑ'v’®¸¹çSå¤VVVÄ#œÓdòuR¼´c½V¾åâ\2¤‡å×lU '¦“dµÝHîóRsO™Šmw¯3ó`r–ìýŠðB•ËÞòdÀý ‹–Üú’×q‡œ»|‚!"œ@µ¦Ã¥ùMhø‹©PÇ{Ê`]%VìÞ+&£Ü 6öj»·óWÏ`˼ŠB âG¥JdCÍý¼„çò çwšvç— å¹,0À®$Ø4ïO(üR‘‰C7UTïýˆel/H=a‰“¼-Iþ]Ýö†ž>ì,bZca\äÃ7‰æÚë±g`•r< !(qÂu‘JyhI§Ñ¦01“Bs*…œ§ös‡30òQ¢P“™R¢ x$Љ,dÍw^×!\!ãúýA@‚‰TÒ "¥ö¶ r{E„« ÿ±àãhåÅF!!Pà2®N6šÐè®bƒžœÞ¯$Yaq寸#¹õ°˜¤Š¸‚Wì ¨#õ$AÖ‘,„-í;4aοäBxœ#ó±Ãû?™s!¡œÆ B¼¾üo=ù‰·5x=i}N­ÄUÀz Ø-Xôê“qÚõ§ ^8H6ˆÈGypŒC'ŒZD$XóØ+®\pÁ-ûptäï¢Hþ«‚ ½²$8óŧäãpeý†ú8ã•—¿÷ùʾqÒ7$árƘ§ kPgÈG ׆Õ8\Çñ[¢wx×Vll& ̸»ø0ÏGß7á$¾ñ~Üà)X¹íéÀõW.š+Á›³))ÇÐÌ|ÖE{c yãU )!Â*ª{ë¥.pyšU´×}pÍŽ?~{ᕜóªyøh"äÈ’WkV =²óâš}Œs=öjX‚_*‚@6ŒÉE*“Fª% /çÃVGáÃj€ëv£kwölëDP›»8~Ú£(ù¶êQy¸çƒ0¢üÆ6k|‡)ÿýcõ®€5½ÒÃg¬þf’4C!ùùаä#®‚¦àWªèÛ߯ îL?a*Z'5zЏ÷OÄÕl÷ûr”l@ù{ë>£ÆE8rÉßiÇ™óû°ê¡ë.c¿qvc¸žH&=‚ZËù²¥~íøK{»Ô˜{1aF3¦ÎŸ¯V?ºÝ{ûuŽ˜ Û1Ì^ûjHAH?’¼õÞâƒxÈ‚ nÞ°îÉWõaš¿õzù‚rE¯‚ÓXÄ›äAƒ{ÂWÍÍhH ßÅݲ…$ü5„€ÛÀñïêöç“vXKÔÔ²Û/÷ç\IÄIò»–wâ³_xÓg4Ń&BSOóVöaíâ6œ¹µn(ø½Þ?-•w¯øèóY*…°‚€3ˆ¡Õë0#ãa“0ç‘Wpí18ÙñØó“ucäˆ÷#&Èv I¢•³˜¬ˆÚþØ[Bd ï&JïúsZpñkO‹ßy¦6–i” ùÖ,?°aõ Dµï"ýÀÕ8BùùçŽo"ùOBH[ùÊ@¢ÐR€›ŠF<Ïñ÷AŽ0Š|£Èk>°úþßãä§\‡¿Èõ¸ö~ŒD>œ$ùpG!"±Â]óz(jãrLò¡ö•…_ÿÐ7vKÔ‰ôލî¬TÃë0KÁäÚÛ3µ-‡BÖ7‹µÆ‡øùO?ùÚü?|á÷?Áʫ޻²óŽÿ9ãc®ã¬Pxš—óZ!þßzÒ8«^É0œH†¨JB©wl7 nÎEÃÔÚ²¨ DØ·¥ û¶wé¹*—|í!Òä£*’ñã6Ó¢Ÿø!|lÐÉ×Àë†sÇÆø¶ã.Ö>þʯ‘GR^ ¢+HÈ«¤-†|Ô‘Ðæ)l_¿›×ìÆ×,Dû´f,úþ'I@,~KÀÉ 8EyŸ°hmEìŸÆî à5,‡*î¼o„LŒW © !ÿÄ.<ä2L ‡Ó¶ˆOíêÁkvâPä¡Óúü4_{¼ëì眷'ïéQ(bÑ ¶y¬H|v“DZ¡V«-B‰j`àØï³mŽiˆº ؆ÿE²ðÒÛoÚÿÆy3àCC/šòÒ`RöT ȼ£ç²8¯éõz>!IëÆCØqZ#:_9³ÿ¼éž* »*èná¨D11+*˜ÏH¤½½ÓJ˲ÀsY†vš°À‡ü»>*ç ŽÃ×­ó€ðÑÃPbò0PG>ªH|cceg^Úˆðs!åùa ,±7f…³Î˜\^T9¬*#¥rˆ[n[5êÓC8g¯r\çr×q>è¹ÎéJÃÂÆöÇäÃjK>€ÚʶH¬ò Y÷#ë0LvÁÕØ/„¼›ˆ¾ªÈÇJŒ ÷®ØøÔE Úþ@Dß‹$S’‘S M¯Ž)­YdÓ¦&;˜™BI”Ng¾ñ‹Ïü={ógýc¡\õŽgÀoºá‚{ßîºü%ÜuÚ†‘'FLÎÈêá¡8õ†(•¤2<Ð:+ƒÎC¨K¨‰Ä@Ö‘z“$åÈx>ª&Œ0L…¥ oRÄc þJrâù7ÂÈ Pxîž—. !§ÊH~FDb²Ålëý¨5(«èqÞsã³àÙöîLTx¬…]ÉRÒ5×ʵxÈ çþ1Ð#o\ù—«ZˆhŽ”ò gÉPœ-„pk$,´Æ›5Öv¬ß}»4Á®TBc´U£Z¾€ Š}‘1ö¹ŸßÚà*RÈ'@ôÖ8ÿÇ6¾4‘1C©-qN;Øžø¦Œ$|é>ນð~²á«çÍéZu¿¿2ùiºy/#`˜M?¼Ï8VNÜæwxL®žäð¢­Ô凲F> ‚0#Î(s‚GÀŽóY d ¯íÇVeÀæL¾ c‡üµŸ=wNjϛqsø›³áCñ}ªŽ|Ø~@‘°ÛõäÃ~†Í½Ýz=ô¶íL¯¿¯ɰ«Š1¶CsϺOÝŸžÂÿ!àïÞÌ~µáTÕÖßmJ‰‚ç—Nn)úÇ5¤z/hÏ•'eÝæ4+S\yRò†Ð7=Á‚ƒ¶ý„æÝ„™4ÊR{Æj÷:6áô®Ë<ÂÉ>0à=.{¦ šòª!Li‘xÀF»¶ü¦¸NpêØ1ÈFØ'a)KBÂq"ÂÒݸ|î¬úÉ®‘ÞJ[{ûÐ58ˆ0Š9.œtF“–våñ@cÊCÖuáq.7Ë“c’©IĶb ²ê#/"Zå8`ê˜rYtd³˜ ŽYð\p0+²Ý)™äw!À„ñ3dÆš·¹#LJT9C/8ÚI 9Š%‡…&Å"$õݶ’ä/êò!ê i^oT'ö»‰nç2‘œº> ¯³wºýØe_ßÊ€ ânðekl»–ˆJf=‰sF[f½ý͘>¹ù\Ý«Öbï~Ý ¯bê è#`#™±ìe@ƒ9®žÛ¶?ЧޓããJ^t`è³ÚM’k¨Þó6B(WÅ6ŠÜ¦°‡ Yüš9¸èæ¨_³¼´D&ÇQˆÄ0ò¡@ J{ù}WVE$î8ýÊ{pò³ÏÎ-áWBÈ+Ã(&ÕÀær,>o*ˆüî6Ò?PFWOi¤¿(1@Œïþ¾ç»üúþ_œû'ÆØ•Œ3$a«a%Q£Êd]QˆKq×­œÅel5Aiµžãmïý¯K1yxMÏJœ7¯åa$?Dr2çhbŒòÒhÈÅç!%;^!•É~îWŸóïÞø©_qäâëëðú%7_v.wø{þž»œ™DÄ:òAcý#.”Nµ»V•†QùZÛíZÜ©šÌùˆ´A^²äƒIY¢ðyE<þŒ¿±,ºâî5pß#¿9o®òz‰w«±¶W“áV—+¥Î’öèXòaV+š|í–’®\¿F¬Å X^rG€g,ðäÍ_'"ñ Š…Jg"½jY‚iÆ>0äëǶTihVBE‚¾÷Ó›ûÿ /`YõÈu9"úb®Á$@ÖgM„±eÏÂW‡Ô¯y°€=·áåSA N-‹Hâo$…Ÿ*|€”uä_ àÍ Ÿ²‘Ûh®ŸÓÒY¡ÀCi€„@…C‡Ð4 `‚0IâSC‚kºf¤ü¸•aU†ádŸ1`ÚÞëápȇ°^Ѐ{ÎW¼D9’„á‰ÐA¡Q#! /Hçô)K

êL,ùÀ /킉„5ݾ‚¸Hcò¼ À› 8ÞFCAiÆC ÖWEó£<Ú)ZîÞIÕ éõA£7[2x܆aEi†€$xoé¾@½–}Ðî¢ÂIÏ“õhã¬îP¸EGƒË3¸»Çå·ƒpçû{uÕµ»¼˜)ðŒµvHivXIòaÁFË£—ÆlÙÂOÖΕŸ’ÛD” R'ª÷—ÊØÒßýˆˆ€L ù,&e³:Ç#ëogL〮ÞD¤DoµŠíÅ"º‹%𪴈Lhç!›Ë¡£PÀô\Vçä<.73’u¶µß¯Â¯ ‹Ý42$’2’p=T¡ 2爈¨›waÁ¼zB’|L‰ãZ-؆·¬óH¡.d ”¨’e‰F ÆÐî£8'¤l»¡Ù»ÞtK Ò ž=VÉvqO'Œ}nß?°Æû–”‡ÙÓ§bñ¢“ÑÑ1}Ùžt'q>™‹} ™Dwù*€t&Š´Z4à,£Jæ rÏ”kÇ‘ÌY©°QË(.ƒœiNañ[æ‚P=ˆ†)Îl %ƒˆc5Þ¼”ò×J?ûôm—< #mPÞtÞ«ÓxþåÌ{¹òý ›|M<„‚ÔÕ¤^÷¶E… ¾üàÇËFãW?U†ç¸\Ú—½ùÉ¢®æò—'6ôÝ@¸xA륽ÅðBâjÐf>+Œ#¬–ÙÉ)î¼ëhÿ°õÊûŸðäò{¯ZÎþ¯Üå ùà6ìêPɇ°=QâÕC£ » ùˆÎ}a]ô†Ê&V8î*ÿ¬­߉˜\ø†'6ø÷Û¿sêwÔ¸ïPc=+î ™±Z(²UëmÑ_Žôv(ä'6®‘kð¿LÎ}åCð§~~æ[D(~"I>¬Žd]™]M.·ÿê¶÷ã…/¿%I'ÄäCÃT’Ë1€cKðO'‚í-CW€³e#‰ûðÈIY°=e<ZþF„S⻼_a–]ý;6x/³ööI¶#ð@)ß1¹Ý—&AhUNõM/yU`cšá–Fà0;zþI‘•ÚcwÎMϯ{òÕ¯‘’>HR^V«bH òQ —Läö%ɇB I2RÑÃr>†*æžJÉŸùº:§e/pòÁL$àŸLI›Ž3ì>'µß‡Â\»Þ+8"Å00)”ÎlüÊ™·t¾©s¢·º©;|‘W•¹ ÃÒÊÛæ¥nëvØP™Ê»ùÊ+£» ˜¬°‹A~€Sp)ÀŸàH{—¹õ‰ä®}Œ1B¯ê¥Þûá+aÎ6¨ cÁÛOíÜ‹s¦MFC:e‰ˆõ| aEWJ•2˜ã ŸË£5ŸÓÄ£5m’Ë=η£F<æ¼%U!ugômƒEìSà~Y!1J§1¡ ˆGC:r4¦RH9ö˜¶9QÚuj½C2 8 Pû]õú´MJ  žUa %ÎÁ¥ŒÇšôTŒBF T—0m‡#ê:–Ã’_AÚ×9RöxN½„êòvXâ½ÉzB,ÙØ¥°U!´v9% C4R4hå@»% YÄFþ BÊîcµ Zq¹ß…=v`årE¯È¹¶¹a2I¼bs>˜4$C)ÌŒ¹bÏmæœ÷%Ê7³¸i#ìø„B5áñav¬;­g†Û;øLǪœÍñØk=02çTLRºC!W Ðÿšûð8€Éï= S^5™IÙƒ” ´ct€lˆª@e(6‰†Uu:„‚Ô.èyø×ç ¥!-¢PÜîûQEí{­õt¸Q$³_‡^N8±“§å ½#–ôõؾkhT{ÿËCkz¸ò´‰•qC)ø;‡3#æy€ŒB•"ÇýÒ/>óúo¾ù³¿ q”å´Ëïøêó]÷mî:“cÿÐÛð|K>ä?à"Á‰WÁ$N8^rÕ—Æà+ÄñÓ h¹Ý®§Aù ¼€åš^Ñý‡¯žt¾óK}?ú½"YE>,Á6çCÇA›DÌŠÛ} ¿Æÿb‘ü…$ü¶êG÷*Òq¡âzÇž®dŸ!éÃxŠÊ{™CD/!) JÿIJÛ&CÃ*9.ƒ—@Æ#β.À@£¤¬ó­ƒsòß2'ö€@âo,¿€é€>ÓÚ¯ð-…—1Iðún™:k½·6BNŠ0!EïÕï/"ìw–e¶Ëøq#ÿ †•ÃÃoºS[¹‡¤<ˆÞ@²>w-αۉPR[áPèPJ ©*YHX£¾‚˜ç ¸ÀcŠ|Dø_ ¸öÚÚ4T‡€µX Óp‘Â7êBû]\à“N@['ì¨\…¯n…~7s=þ™W@Go4ù¬Mþ¯8°a„÷Ý+þDÀDó ØàV¼‰áÈÄåÉ X#y&Æ~W»ª&“Ïë1vÙ°ð¡PJô aeW7J¾¯ó<šAh/äЖɘ×›$V#aÈKÓ3D7ÜY,¡SY)ƒ â^&‹öÆFL/ä1!«Žk OKZWiR CÚ8×d¨/†‚ƒÅ"„ï#ˆ„¾R³-Y P×ê*… 2!KÅûÈjYG»ÉtJ`$¥ÐÂ’d'áш ÇB(m2õ˜ãÁ>—SÈpÀEìÑðÈö%ia/á¹ñ]ÝÝDIb"³¯@jÏ^l_±S§N‚_õ!…Ð$C$΋“!œ,&e…"3¤ “¬ZHÜ Åû¢¡«ØãºdtYaêõ¯C{ûd=kþ|võ÷aÝžN„ö<ò0$«™M–l5*ä̸´«wˆ€ž¯<†Óš‘îH¯V9Ü%d, ©–äCÄnè8VºjŸK1ù@ŠW Aq’y$Œ¥1(Ø|,8m"^öŠã5Ñ9’¦O-Ý‹Ukz0ŠüÿË]Ë»Ä+ÏšôíJ //úQk*%Ò?†P);ž›Êä>às8rÊÅ ìPFØ;uø…¤E$åû¤”çN>’UÁ’à I8´)ç£Ö; XµÉ›¶rL(h¿´ž¡ÊëUÆÿ"y͇VGþü™öÖ Täìácje…C!&às›×JÿÅrù?>Kª¿ùò /Wcþ–_W*ÒW7‹½]~Uî "y ÷ã «}ÅÆØéÜá.¾I š—Ü%[‚ØB˜Û™I8ѸIBtN2÷í3•ÒÔä‚õù æ@ô·Î øL9Þ÷ÚÇóðí‘ Ùà±·õb« ¼”cÉ"Çs‰ã9ZèÓïC ôÓVúuVÀ'ðÒ!2-ÊŒ\<âàQƒÿ“zH“òz™Â‰-ý /Sø&~.Íèn…oJàïlWø63Û*¼Iá/ Xž =ÞX&2àj üˆCuïÿj›KäŠ5ùþ‘€«mÉ2àSüZ¿ïá$¡sƒ±IÆ(„$^aO>g Öº®Úã) ÅR Ë÷w£h*0Q‘ö|NçydÅë‰GDÆø”„bao©Œ=ŠÐ„•¸ˆî Ë¡£© 3ò:äÊ׆p)$‰‘PºjÙ7'2cåÓòyLljЯ/†ê}ŽÍBèªZ;Àq“õ ÎÖ?'ío—@Ÿ%¾e<>äÁ@$;7!}é4r NÀü3NÃÖßÜ„­¥¸ ƒ*&HAÅ?“Äí$¼!=öœ –h0˜çr pí¾,(YÒÀâk-kD4&02 Å-2 '‹ÏÜu/úÏZ„¡ ­ð¨yrbB•±Iì-úIC(ªÌTà°¤‚YT-(Ñ<~æÀŸ,3û: hQï}š:‡)S&áÜË.Ħßߊm?ù%˜17q `ÿ&“ UU{­ ´D$@2w³$B* ä[LŽBµdÈE²ô q"ž‚qC›$¼˜xXšxHµmÉG`=§¶á¥/?^Šâ&‰„C#ÿ›?lÄ(ò#‰ÿÈÍK:Ÿxù™“Pä5ùL„´3ÆBD×KÍSýARoþüÁ1L>&ë  ŠÜ Ây$ée’äå"’9!Ä49ùˆs>Äðœ@š•ð:òaËíö¨}=~D…¤ïa­µû_.øÚ®?õ¶ö{ª!]Q ès¾íuQòµ!.„À‡öàæuÂÇÿ#ò†­ëðÆo}xÆ™Õ@üS5”çêq+ø!!ŒèAôÓ[î-®ÂßPT¹Q—16›qöU“Ô¶ ùÐd#‘°LõÕ“L²M.²Žm0HãZq¡f²5ÖSÕä‚×çÜs4TEæËÏ£òùÓðÇÛ¶ào)ÜD#Àœ `5[ðºJüŸÞ"ñ:¥ÿàN… by„€W4Jœ འx]sç)oíÅãÐ"ñrìaÉÅ¿ð!çÚûz/3dóI…}Ììë”À·9pVâogÀ[Èü_®pK°RažCÜWy¡Â«~±Qæo$C>vA=OÀ«ÐFÀ¨Ç̬ÿ·ý»Á#¨‚UXx¬G-¿ «Óvµ¸F<…R ãl¢_U<µ»¥ª ŠxLmnFk6k¼ŽÍóx$¾‰Pû+ì*¢Z*E‘&™|SÔq§7МNéŠYõÇ¥d Z)u%,)"¤ìBX!Æä†30Ýi=ϘØÙßDv€a¶B‘È× ™X%€‡+  DH™},Ñc%´d¡_ƒ'žˆW½ï8ÿÜÓqï¾.¬ùÓè–õåwã¾A"×Á·Çq-™ÈXC›Á’[mÊ‹Iþ;™ Nlà+X…ÍIvVOÙ÷!{ŒÙ›7aÍ÷ ­c"òC¥aŸ91s˜>žy/[+O@ ÅÞ·€€²“ÝÇÞ+6¤j²&Mfÿ€¶=ý,^ü’‹ÐÜÜ„ ŠŒäçÍFÕغf¼q7x©jBgŽ×móT.ÿàñ(ÌÊ€H`üb+cå€| L²ôŒÉ†N<¤ˆKjÄ1±F6áÜ–! á¸ùM¸æ5ÇÁq ÏíHä‹_]µú1‚ô*|7î‡ðÿ>‚H|±TÅküP /¥ Û0¡XJÿ=}ÀFüDULp—žºõÅÓHÊk…”¯”R^(M$fîlÈ•Œóüd£9ó8ª†´#ˆè«RÒ’§–TŸÁÿƒòùŸìïp£Æÿä}_ÑÅÞ‚ ¬¸ïêy | o¶Ýü щCiù€È\4—ÖöÅIJãòLG§·"ZÜ ‚»¬©:QIˆ4ò.ÄñàÏö`ëö:Û+NÌ¥¿¢d>ÍŒäRZá ̱ÏGÖñÿE, à,A>l Áè•&Ö/Qú>ö¬ã¯nÒ^¯°×jŽÒOhW˜B&´êK"nT¨Ôý­ ` ‡^Ä€—ø0_fj¿ÂE6 þ.-g˜R{­ÉfÌ©e¦+ÜÀKà‹ÞÉ€/@éºl AÀ?2àÇãï2Fž<fáXíZJݤ0`ѯ0—å³±¾”{ºúP Ljn¬æ4ç2Ú;á0n:Cÿ7ù¨5` „Ð=>v •0X*Q¨KXfóyLSäcZCA—ìMñ8߃±‘ûT"¡C¬¸.ÁKzêó™ ³Y¤n zG=>®¨ˆ½ý(ÃV…SÅ‚Ä<÷I“ká‘ɧÈÔUʪO"çVÀHn}v9ʃC*–ЉY|¤ò´q«ŠÍÈÔõ ñôþØ›ØkÙhKà&¯yÀ”¦¸{º®•õ*Ú¸Ó¬FD’°2`ޏ¿¿ û.¿…½ûP°wI°d˜šKª¸ÏHˆDh™}~Ò+Ç,iëcÀn=36¬îO,Áæu›0©£D„þ'žBC"?F&:‡v¼EëõèQh>» OjÄI×OG¶Ù‹= ‡HB²ÀM•^À÷*{LQ­’“ŒëžÇµÏ¤ÙŽŒöCB5tuìóëÞ4 “§êÑŽ«Z Ãs³fà žX²£ÈmŠ|¬ÀÿOämWw_*Eo”,;(d<¤Sž]™ ¢*š:Ž{Û’çžëv‰ì5f°÷9×uÁyl Õ½FƒˆFÛÖÇp§ÖƒHAŸsžˆûwØÝÁ¾?}¢Zénñw=bKK¥£8áÜŠÂÄi‹Ñ4a6N;çÕ_jhl´ŽÌ‹‰¨íÔSO½ÿ'ÿ‡cUha€{À0Íö¸Ñ` ™l´˜$#Áã ™– ÓÎÞlé'%ðe†!¯ð* ÜLÀ• øó`ij„â3 =uï97Hà' ¸Ì¾î¼@S‚ʯ"à]8 ËøÉG¼]r•±^&‹>»ÏU¨+Í›²ØÞ×g»ºÑšÏcNK+š²üíp>®\hòS.7±»XÆ`qªàœ#—/`ª&yK>8ldo iD$uxU%AB˜¹p\œÐX€ë8‰P0 ™4f66¡¿\¬V±ÝzA² D øLÀ Tšlbs¾~8ìÀœ‘(à1“´sÃf̘=mÇÍ@ŠÜù–8 ’!9Ä Ç…bïG‰l¸Q]Wwayßæª ÙdîÅ CKÒ‰\01v/‘‡ÒÁ€òÍB°ðdøv?#@À`(að;‰1…Hä„Ðiσ4qŠÇ˜µçÁ”öÈ<ÎÛcOq€y”‹E µ¤ëžªËŸA¢qbÑz=‚æ®úϘ~VÒy}ÖG&îz@¡ƒ!K…I.$AÑAyW¨`F‘£=!åR„}»ªCB F-íixi¡`8ó¢²¹ ò…4ä8r>˜ýŸFyfýÆ!¼÷£Ï¢X‘\u+üÿKå“ï;I@ê †þ›3f`óæÍ˜;wî°°Ðýû÷£³³§œr ‘Ífñ‡?ü×]w2™ ¬`×î]èëëÃɧ\ ‡$oõl€¿s©­WŽi²™†É8ûÅï„ëe@DŸŠ¢kÖ¬AWW&Ož\züñÇûV¬X¡ßó¬³ÎBSS“~~×®]˜5kæÏŸÇqþ?ö¾ÜŽªJwUÕ™Ïr“ÜŒ7!aq ¯DP°FmAmµ}~h3u‹ >G°¶„~€¢t‹ 2r“Ü$$77÷æŽg¨sNÕû×®uR•z5œkàõ÷ù±ó­¬]»j諸»ªÎú÷š¢Á”.9š‚ŽósPè¶ôõãÓ{ÿ¹ý×ám¼F©GCá¡÷â+Þ±ýÇžÃKRzp¾[<ý‚ú6nž/l{ç9r.tÎwyí¦Öûg’]ø0|€Ä"Á–¿kýÞ°ÍÃ@?>6×)ÓdP2‡y³ugì8GÈþÌ=ÈØÈçÍLí”Xåh~ p}Í2hÛîÙ…ª?+8µŸ<ñ›ÿt±?†Þã^z‹£7ʽ§d-p©X0Û²n˜Ç摈úëxe\Ñ_¢Þ% Ä¤÷ʇOš„êuaO*ö÷¯ÐÀ#@éãbXsœ M€.‘ønxËûAßóì_i9žç'/¦X¿Oz®e#øS «Fg‚©p¹îçuJ¥tä„Ò É€ß/Dx>•T¶îëñ£šÁ•ÍÛFmù,¥\?¶Ø¾Ü!{zÙ)\?“Í|´6>\«Ê2X1Éd#fð-‡ëÓ5/0RCuýšò4 j{¥¢½ì²5:Ds̰FÄdg ƒ :Ž•{9î Ãë‰TQCEL°\ÿ´­ìeŸ¡îùóhæ¢3(óÃ{\ 9\æZÌ“\í) "-Ûn^Éúíϸîñ[PTp `$ Ó–Ù¨ƒ'_X^ª÷Ö¡¼öMu=š/ÏI*#¼mÉ}¸ûˆ¸×P¡½0H´^·S«Vçoœ@šGšcvek.p^¨mýÃ:òØ4´}Úlºl˜ª‚L™»ÐpS’9e"MÁ“‘RŽ y|4P0Ú”–W<ÓfPS›îyÏ8s¬E‡ôehÖ_ÖÄŒKR*“ð¾­jŸæÚý…•PàQ(ÔhíºAºåÎuaà¤Vû–ÑA– OÍå2Ùü¶ñ·:s.Á•›vwïÚ÷Ö¶7‹+Ÿ|ö-›bÊ_»¨£Y•ª¶½¥)­ÙV­C„œl¹4rO“ek«sMÍ÷Ù5ó®d2ÅÈtl­Z§i%È$³cœÐ*§%úÑ-mSm££#\}ad¤x~uÜôéT½M{û©¨L™*¸æ„À«“ªµ*¥@J¥½þúë´@䢋.¢­[·ÒÒ¥Kás4…¦M›F{÷îU ¡££ƒšàïÆ¥¿¿Ÿî¸ãºîºëè o}ë[ Çóñ<ƒU_µj]|ñÅ ¸Á kC0ÐK/½Dù|^Ý Ð’ÉΧ졧P:s<å4 €¶²¨··fÏãö½X?¾â¹ÖÈ¿ÁòåËéK–´/Z¾üš±ƒƒºæ}—AÏ©i’ˆrÏ4fžcàËŽæ^Ÿß#JLõN°ˆvëDˆ¹m÷¡ú¤Mʸæ0l_€¾Ÿðô-~G»ƒr‚ÄXMH<ø’"«óB¾ìê}H„H¡ã'Œ£5;vªÕÓ=„šsJèFЄÿ©1%‚VÙT‰K…A øÈÒô¶VöùP¡~“[þDˆÅj•Ke²yâ±MºÓ°fʦ2Ľ݉•|8‡sÌצLÀŠÅuaZò<» NY¥ÊëD;±ÑÄýòúå/I[¶l¡o~ó›tÅW(ÍE:¦ãŽ;Ž.»ì2%<üö·¿¥®®.zì±ÇhçδråJ&N9åzþùç•ùÖ‚ èÉ'ŸÄ¹ª¼ŸUà¹çž#.'t’ŸøÄ'è¾ûîãkPÀ⬳΢—_^­r—Lí˜JO/y `7M“Vl£V,мòÊ+tÉ%—ÐÉ'ŸÌ ‡Ák\ âs³–…”ÒÂÜpà ||Ý ¶”–G„ø:Ò"Dj6˜J˜ µ:?Z°àï@Fs\k´„²P%J;&ÔEq/yç;jŽ#…Oö«”^%‹LŒc(ð!Ù²דü h$RF¤x¿#ê;²q„þ«ùÀ±°¨À?Ãý[¸å¹×X .Ѽ‚æ1Rƒå=žKߜʌTÀ»Ì¿kZCƒql0¢?jr~ÃÃxLÿ|†= Z¶x@ß&ÔлÊ~¾ÍX i~ã 2ÛÛ©ï¨kð¢´|§ó}F€ù} rf2„V,’aš4ßྗIh¯mh‹‹®³d_OD,þ~Þ—¨ÕŠMMÙrÙðïOV« @Tˆ\10Š+}’+æCqP\|K°,ÏlØ ’(¾nkdb̼½­ ”rݤ,–Ôé!É-n÷ø't€ «VC¼>¬€ÈOJ 2=`)ÍÇx|9t0Iº&OžLà®3÷ vœ¶¿¿·B?•®¿øbŠV,dJšM<˜ u‚Ýꑤäü^Gÿ’ü:Ñ)¢e¢iaSºÓ¤Ûé Êmeækcº!E¯ïÕèú,Ð|‹Üg¢s u/{…Æ”ÊêÞ,× Mm À™yæú›/Cš˜gX5Ìi!ëOR2S&#ié–so®ó *lÙî\t\L ? /ªZŠñ·Ùšp½ 3ƒÿçŽÌ§®ùÂ,öÑA˦d}Ö®•h_ÏÚ¾)O©DŠÆNœB'ž|:Ú:ïè£{$ú Gr‚tX`ZNxa¾uÝ šY¹½„¹ÔµÚþ}Ü·VSúh¤X QBŽŽ1+T­€ª&Lª˜#8?çÈ¢?·—qŒ£Q.””†Cתd–,ó*5ö9s2L'“UµŠ[î§ÂÐ>Ê´N M›6Ñ¢E‹Ô5ìB†ÿ«¯¾šk2X˜gÓ%Þ¯æþjðÍ8ãŒ3X›Á Ai&MšÄ D¬¤²y–ö?ýéO³æƒÍ´?ï¼ó(ðy”£··—r¹]z饴qãFî§É¸qãèØcR¹X¦#f¡Lªžzê)ºæšk,1ãñX³¢ú]ýõó+*Êå2AB>ø e.¶}ûvš3g"¿‰“¿-J( pÂÀJP܈_MØŠràA®)JÓ·/Ò$KêçŠÕT„­œ‡]GØ8±÷(seVçŸãÀ{WšÜb’,Ãðœ×‰¦’Ìf(•Ma|àpb[šlºÉtøþ2“ºw}VêÒÁ/‰Ï ÔW!ó ¼k/í!;— ¡›N¤ôמ£ýʤy}š(xÿ¥tØ¡³h´Å$„¢@r0€÷kÉR)g›s½…ž_(úü2'^—Æ¢Këúõ”ÈØ†sjøÞ6íØá·±Ë–Q Ì[“ønöžy&à›ÆÖ*Íh#È€¹+hÚbb‘`E}׺»»¯†ÒÇà{šéë3w77w­Ÿ3g]ÓÛo·ž±tééÓwî<`2u<4 ôa;w²EÆ·u¢Û$»yöŽð_dK"‰å½2mÚþƒÔ(A@¢}-O‹™Õ°íŒÙ~¨( ç£Ö× Ž~ÍѸ@Ï 6xõcE;ò¨ýà· ßa‰Í&%è(-H$øIËö…›5IV¹=æ,#šF&ÛL3JO&•v!‘7¤%Ó´t¿•PŒš°¸ ©Ó;U³•i•¿¨‡ÎÄ…b‰š1Ö_Í:œ²8Þw> %ÜjÈRyHúG†É¸$‰;ÚÚØ7Å;¢•ÑDº“Å:@‹Ù×Kíš×/ÆÕu%„ô‘ÑoâVq î\3+Ó”þþ0¼~”?»p!Ë“KC´T @ú«DOü‹IWÆúVˆšða¡ÿ¶ò“AEWü}ŠîÌ%zökïkç¤d,¢%^7–‰º]sdAÓõ38îø˜ àƒIìØx^'«š&*d¤*”HóJxXºY-Ô<¾hïì~lîÙ[¤Û¾·–6nR‘bÊ0èh>¤w¦œWÅ‹¼]£šU¢žîíT T6àÑO5'C@¦k" *2)ÃéC®Ã/ƈ°)aÒbhšge¬lZ \¥’r>oô<‹¨$/V•÷‹_”÷˜ZU¦ÜP°Ýi³ÁI“Èj–hE]‚Ï~ö³ Týª«®RZ…Ï}îsªmþüù $h@aðÁZ ¥ÝH¥Rô…/|AiIÎ=÷\îÏš îÃÀÍŸXÁNèÌYSš Ÿ÷«sŒ;–¾þõ¯óøÜŸM¹Ø'„M¸€¸ñÆY3Äu6½R‹5Øaž_ kCø:¤0gbM›h1¸P%TÁ9¼ $vÕßK ”@!)~uS¨qtÿ5ÇmG‚ð@`‚â×.„Ž!%\@÷爇Am! )|øûûM°ä:<9>˜ÚĪ˜üMÍP"åøj‘«i¸çòžû}·.¢–Û—:÷¹¯$ý4Ú±¥—úöˆË"ˆs§Ž­Ë=ÖBôÁ‹®Â»šãg½‘¿U˜ˆnQ¬ ðY/àÖ‘ß) ¬„£Ñú|D¼×"[U.jøÞ CÒŽ‘ tHäMاR4µ\Ž¿‘lþz=rµ`„²ÔéÙ÷Srjûîݧ½:þ£×-^|å9K–\‡Þ“Ãü+°=¨;®¨ß°ˆ “{ˆÈ;4 §’ º±½H0¿•ÇA;Äôùß,€Œ×óÄ—Ecòið áz¡XŠ xÚoMÊšMkšÜãY’›äXqŠ_&¡}Q/Ú«¸ßŽ Ò9‚ÛóŸ’€½òWÛÚ Ú©ë´TÄdÚ :XãÎ?¸Ô½Äm(j•Ь˜ÔÞ”§ãÒˆ@T-QÀ@é>Ädªàã¹.8Û-š}8çêhÈñV ØW¨ThcO/m®¢ÞšÍÒi‡LÇ{“›¬dë 0Éò'_;ˆU#(¼¨¹gÓê@cN|4lÉØ½ž³ÎèDÒ®yÔÆUðŠ/|mUâåÅ+(#ób yØmé¢ÍØa9x¼ôÕ|ç°EËÑíñß(Š6Ç=v÷wÊyÙK/MЉ¦!æi ”~f¨â\ýÔ‡t,Miš.ÏÀ?˜ :,25vPW¶ËÚ~ä /„!qãÄïã(HƒCezæ…]ôä3;hk×05Pžý œÎ—Ð;TNŸ§9™ ï& hÐ@D‚ë§é$öþp— T eõœŠ–â@¡¢VÃ~S…äáYZ²H%f¬cŸ'ÀæOú–«ÜÇÙoè¢xnÛÜ_Ì“„m} ¡I穽9E­ù5å2ÐXä@Ó4çìÏPë”Ù±&IBq«š‘«‰Ð´°Iƒ¿ àX¢@I{{»u3JŠs6:&¨= €„ùq„i;ÂÚh®†ÿþùâ9@ñj̃ÀH$A?(ðÎaœV"ªÝÛ?ˆG±P°Š5;2GÞ¦BïT3 .±TrÎS”ʈdR¤'œT£w°øFKl –{W+øñö®!Z³®[iRýGþqR]þ³ÇhZÇŒÍ^¼öÚ"#§ ¾Ÿ1%î½ðÏU˜ŸDÚø;ÄF“º2=-‹TòX™ -òfh€'‰{&4½~Xù<|çú¡ùµ Ãï›´dzÀÇíà»åü›n¿ýö×e1’“7þª¿ávÐ?Iî)׋ÁD¦žmõqž™ý? OÚŽ3÷ Õääï±Ñ×§m ´åÅc˜cý´tŠŒ¿l<ö½†ú% ÎœÑ¯} }'¹mHÁzû*žFÛo :'¬¿ˆ«cÐÖ-¹®µX H ‰ñ¡¼!®¶Cü<Fõ€º…ïÒuêI$hÀÂdê)Ô±‚Ç+tLª^ ‰*#½2O€°2›£Ál `ižYâUS@vö(“¢E³¢ÀG¼¨Æc•ʦò%©äp9y"Z|ëÄ)z3›W¶•+I*© Ã&Õ¬š¨Ž‰ŒbZÖ®£ŽâÍ—pý8D(õ™WyðKÕceH2@[¶Ë²ßò9ôs©ÚîøÂDkâôIJ„-Sö›¶Û·&šŽ~Ûk·3ÞI à»MªÐ_`y¨Jˈ@å˜slÚº¥/½ŒÈM€%àCÀQ­¢u›Œ4xB‘ ­AñŽƒ›Þ\ßKün3½¸l×(’³ÒWA?ø¢w°Ê6elñ%ŒvB×ÐЕÁ"0vG݉¨V­¹§ºÏñ¿f)Ku ÷Ϭ‰n»j9}k<úú³)q¼ã»šKŽÑIÆá­šâU&ìDÝüåç_¤BòúED…r ."Éf¸<ýôÓÞ±[9l®÷œÒÔ/N0 i¸:Šö8p&øiYâœdGe"õHÁȯ²Í+?ÐR ÄÛÏWF ú$œ3›ÜÅŽŠsÞ£w®ÓÐçÓ‚XÔ’ÌRÇøÂy>„ØË)Rq`H̘,¥ò×Éü]"e+­QÏö!Z½vWè‚å¢d;õï­ º ÆGR‹7qŠ "Ш?Rˆ†$þZ@QNó¡×#mü ¡Þóì¿§ëL¡Ú£Æi‡oÚhëg­âýØSÒ|¡@“°€<&«ehŽaiÓ íÔw=ýïG„Á]?zí`Wƒ®·z+è.ô^~˜dÿ ¶"bîAwƒ–ƒ&b?‰¯Ä¯th1dÌ],î´/‚/V©Ë¤0éÍ7ÝÏù´¢jV×0m;™Üïf½´²47Wõgdy5+Ÿ͉’.4G$=ƒ£si|1%O´0¦õ𒀎>Ð^æB½˜ð}}Póe2êÊÈ›‡tððÀÔ1¦i*'Í‘B‘º`fðv®™FtƒÞW¡Z¹@o ’Ò¼ö± | sˆÒ5>4P~L ú@lŒsâôi4sB»rXÝlÙôdÚ;Amùe)5\íÇÕU_ILÛ<Z¹\å¨ò&û³È­×@ºpSx•y=‡ÏÉ_pPSFÝ”±’“.Ë–sÉSn‰S¸%}¬úy˜l7úÓ>KrluØôá,PñÏ+èö^aq‘}¦øqÌóa²Rçè¸^-9ËêçŠ`gJ2REzñ2ÐÜíÆiëí+ÒKËwÐK¯¼Ò=JPn°ü'†¸&WÏлP€ÛWÙøҦTÂMþ©×êBŠíh&*¤´#–Î} `y-Ü\¿|µ¿ª@€ÿÛVïkƒ4n_4³†íš >tá¢AáþIƒë¾ÅvD¯Ö„ØÝ [üÄ,ò ñÚÐЗL†»Š$Œ‡ +±Qu¼ãùAEœïA\ŽŽHSÿ±þkñs¹Ñä»Ôª€FæT(0§ˆišq>/ û¨ø“Tú5-o¼ñF¬FFÈ;÷~w0&3Q•0³²X»q­m4¾¹ŸR‰Š€n« N¸©¸I¥á÷ SfR޲r”Ô“<ò(¾žE,4_ØNo­ëAxê}½ ¢ñiÈ!ç|˜6®]K5ÃyVݺÌUܼE™;…ÍEö,.ZU ‰Õ&B¨÷Þ_˜IX¤O‘×Äk º§X0yõ˜cÈL§CÕt§‹j\wÜÕ\(ìöñ¶aP?ÀÀTþ5P "_­R¢\¦¤€1µR Ã«®öìcûdþø²:Žû(5ô3鳪TÂC;oâxš7i"‘îüøw&¼¥º 7;†:Π“%KvÊ‹ÀÙ60¨¤Œ>fÀ¾¹“ ú“­Ó:ÝÅ2éˆlrUáU5nE‘×´L%'wPËî”e 4FsCÓjuÁ_÷äù Ñz¤4×LªÊ\ s9ƒ [úÙ2±2ŽÚôäç°m÷X.UÈa^f’ÈO˜ÃNÓ¦u¢Ÿ>T¡.z¯ì§9'?l½¹néE§d| Àã Ðܺ6Īóšüh‚Û\.“f• s¢%­bÙùi¤Ë?ËÑ%ðÍõ;£oØÔ [Ö ½¶j­X½K™0íí-Ð(Ê@·`Ü#ô.•×·ÚO/˜¡--Uè¯-Û¬ïÝ/ôÛŽÐ_s´ #oÁ£ÃÔµ´æÃ` ¬ÊUÇ|ªj°ì<’¬´fË9舯ÆF»ºæ€é.€1+àžˆa†êç8®×Ô"s¢$‰`èr]Öhcà‡i1u©‡ 2a߸°¶þýq΢Qù-¢r{øñ )qÎÍþ±ÃöûëaÉ£"i5ª©Šr8÷ÞŸ¿-n5:Vã rd÷ö³·S”@ó1ï¹¥=Ö ¸”¦•›tøÔ.“ì#K·ä;ê! èCx«H…¾"™ÕBI#õŽjCV®ÞC­®ƒÃy944ú3ãòtîaÇÑèªûæ9sÂ4wa`Ï?gQѧÂÀD ó3òŽwM±ß¯íaè˜ct(Ê”Ëûû5lf³,úÁÍ« žB>?{ÂÚµ3Ç÷º9Såòd]ü2ä¬-̓ƒí߸ûJL/’°ñoEãðEÍÑx”Áï%)’q~™íh4Ú$éßFð#@l§…µ¨_+Z‰Fã1I4x8è*?ÑÑÇ"úW‰tU·™x,ï»ÆÓEØ=Jƒ=‹ã/¦ãQß®-”qøÞ®•c§ñ} ¨yÎõçÿˆ8ÇQ`ßß*š[Gs,î«ÇûxT<ѬzA=Âûˆì¸(@Ka!‚J|K[GsaG Ž2À ƒk<ü #ô!†ê™û°C$kBÔ¶z9™¥¹–Ms¦N¥M©´2‰²5Þ2’þк/%ꯔ•1à¨]רݪÑIµ µLçý¦I%³L 'òøvzÙÖ葪M%ÓtA®» ¼ðÄã3áöÿ bDê´¡ï¾±“hp׎Kwàfož¢î¤¦48 kŽÐ¯ûÌàtÛëSÓ«z¨ØaOŸz©H›îégyƒ§d,™G´ƒÄ×cÈ9f»FtÞb(zè½JsOyôm°;Ö<{þƒ÷ƒ|äÀxxv~V#¯¦Ó,ÕšŠÜñéÙlÙoÛÎ~ô+X–ÂÞÍ.±Aj̘n¡ƒ È×T ÷'Ýâýš9¶€žÊ\êÜ^÷°]8nõ=ÖOBÀ„Û/Hß°œ~á¾a»~9_PŸ ›ðXó(¹†p!«ñÄy‘÷Ÿü.Þ´Å¿ŠŒÒ¸ .\êq>±æ,ýÅ91ÇiF¢Æˆ3ãŠ|å=ÂõP Sï`+õ—Ž¢¶–~:¼iel‰àQŠƒÄâ`d‡I´M˜;†t;q0–«Ï¢.˜[ýâWëhÕš=TËÛtËàÿ+'õà4­}¸ýHêœ{ ÁZb×ĉ#è9‹ÓÆk7âm\vÿ@ͯ§(ŒbMº 6YÇuœòâ‹ t¼=m;”sݹN¨ÚÓÓ 9²×6Œ\Ë7É-+`>Õ#¾ƒ ¤äO6¦uæh*~N Û1Ÿúª³Dspw@ôÔ’æ¤vË€—$|íã"~ý-Ú¾„ú'@—°À/ â àÿŒöëÀsàS0Ættêò†'Äw$!M-Ìd­úrÉZß~…í%Ø.øLÈRhû€d@ÿ‘œŸË8&ì¿^C?vh÷)!øø?‚úÈ-ßµ0öׯO?èPýÙ&XV×XEãÑçÓx ‚úu†;:¨Š—1“«1°½íÂA21hà¸òìXäý8…ªéý*:h>؉‰5!ªï•Ÿ#Ko4µÒ6ƒÁ‡„òsÁ‡ëŒã ÝP@h{9E{B,K§AWZ5嫱æWÇ “ð4€ï•«ÕíÕXàC¹àâMAû ‚[±bEC†ô3qª~›.@hc!¿UÞ´9ù/´ðPÆ^3©‚M€D" ¬°îÙ®zxAÎÅ‚SÞÓ6ä‚ üû ü÷ÀGãtô¢ßm;mÕSç`ðeS>îªKòÊ?t ð‹ª¨›[»z+¤%tj™Ø0‹vNÎ奪“oÂÊ*TéOÏwQ¡l©6Û¦ƒ-&è{dÓ¿Aã±™þ?–Õ[¬î£Õ?n[ô)ó·Õ\à±/aÐÍà?]Õ)-.}OQT;îpí!M£“뽘Ku¯¤“ôE]§³¼ÝmçÝX j3tmúëj·g ˉ櫃´ºÒ©*sSÈ,›˜Gì<æ%ê44âE™HEi%ü¡a@"YÎcM}À£®7Nè‰~Iˆ2ûˆMÖ'½«Q¿ÿyý@1:RÔè£yoLJgm4ibP´$ÿØ^ ›—DŠXu—Zð£ù>šÛEÓ²oˆ E^ðQ#Ó´@U*l·)7)Iù–Ÿµq"ZS¦þc#íÚ=BK—ÿ¤ÛÒmÀ€¤Ù–¤¯ëÓ)=TR‰:»ÇŒñ:JǾ_àqA¢E£æ}Aæ[a}£Ÿ­x-ß½Æ/(œˆˆ|}cÇÚÝ“'[³gWù>§oݺfZW×ñ„bT*{¬^=1fKÑ­à›eeÿ\Ôçˆ7@+slß~—Dp‚ùS´«¿O…àÕ¶IŽyÉFlÈhAýG¶ãû±AL¹:À/”ìä¿AýQô_‚Ø×äbP“·]€V9Nèï?oƒ ~(‰1G¤Ãǰýeð…'$t´Ó=/ÈÍ “@sA¦´¥êwx¿ÜwX v.6–£í„€ëÝö+ì»Iæ…¢2£k€Lv£šÛ§ñØêê“í!]§k<7>›ËqHq…ãÈ+jÅ~€ ΜË{9Y–7´cáÙ8Á–„Tcæ²YGP å$-÷çØõÜŸÍÀÜ—Ô¶èR:uun¦ö)‹ïÔ»4Ë~bõŠ•ïˆýû5)å8ôeF˜)AÃb5Uw£cù>Š“¹«õÅ6ÝáäÑrè!•kòt@&9à'â¶¢Ó÷Yƒhyͦõ?«Ð}ô^9(ZþÛ¿:äh=>äšp ÔMÓ!f¤¸él›àeð"x©ÂdS uÞ)×h¤dÑ08ƒrõ ÁÇd+îw<$Ö{åÔ#õ¿agÃ:p@HÏ €ÂQQ¦”¡¤‘¡\Ê –l‚réeR ´i”?âJµNö o£6 5&ÕbM9"JÔ9ü’¸ìäaÛ ­°Ç›xÅGÔj(ꘔHÁÏWâ|!¢4qÉäÂ@eÜ\iJ´Uq9¢ÆˆÍ{jH°F ®ë¤ýøìÛtDö5ªRý4•Y©Y®:Ü´iÌ”,%sij›¡ñSš"}B:·Á©üõ^U_öÊnÚ°9|aüÖ]ÖÄÐÔÞ~%“™ýÁ3ú ïô„tbá²uO‰}QÂÞ‘˜j£Oè)}y#³³ƒG™nÅÑÖžñì³g½víq0ŸZ§i;y$.óغML–:%{ÁJð‘`xèÇã–³¶z!‰_øXÏqÿvcTèZ£ƒþÕ-’ý{rÀ1 v®Æ8±r¡h':Ô#×ô Œ•Åšx¢¡¾¿¡îß-kÐö"Ú®õg ¢íMÔÿ>ü8Í’îíU´uÉßñJÛÇIþŽNù™;F€U»Ì%‹€þMìôé¬ñàŠxpìzŽ3¯´¦ir‚,³~åʕيM³‰GÎl†¥â5çìÀ *P½ …ŸXûÁÚ 6¥âó2ù½ÈöŸM¼d¬_÷‘‹Ì¿÷˜g^2é.W&•Zl|Bœ\ 2ƒã}~!º<5\,ïÆ„ïM HÔçI¸áO@èql/НG(¥¹æW†¼¿Bï Ÿï -}øŒ,@DZ¶×tÌ9œ*U 8ê+x.1€”è°tب3ð([ø(|ð±>~O6ý3ør½WFE'¡·m-•5Z¾X³´0p¤ ʦtJ²éØBš&\F ÓqY´ƒ€Ëhs]4š±ÚOþ¾Qçhäœa~!a€*ÖnÝ/ÀùÃá gj4‡GXFöÑF1‹Îa( ŠA %NK6q€6`„õ‰Í5R'28èd‰ffWQVÛM&kMþ=0 6epËr|%±ÍT(;ßÌ!¾¡è‡vô)ª_\bƒ·6§æ¦q¤³Ÿ©¨E-Üç}¶Aæy?|A~wòÉTL§cý2ðLÆåòhdÑ! H„½ h´¢4œ~ ºî5àë=Í€ž÷Ûÿío» ù3Þpp‚ä•h«‹J¶£É¸ m/_¾#8Üú>ú ›_-:Jö×s{,Ò "Æi}‹Í’$"Ô4'sxüOÜ´Ûçaœš¯ïÉbQß%Z‰&Ô bJ¥‹F¦"×t*è*Íéóø# G}ã] ö ÐѲ]㲜ó¤D#Bue¼OëN"BÞþ_–í>°+AóQŸÄ>.ähe^Ôd( H8Þ'8Q¢/ÜR͹ÆfÏù*`è|Ž€’ˆ®ƒ¹˜ZÉìõz²˜à%F⬠@@:Ÿ§¶ñã9ƒ/'ºâ,» BXCÁà‚}=¼öË :XCÂù=óª†ìvåØº–6¢Éð‚T¼$ ¤´ÇîÃ17£Ç{míÚµ%’ Í(?¼ù™—èÝ(ˆ$eÊK÷^ù ¦S>úœ ³Çôô}' È%XµûÀÆ,€ŒV¥ý0Eóá<êÜ÷#êh@ ³f|¼I6$–ù³ × j’¤…K,›jØ~Ù \}m§“s½Ÿ§˜¢ó´ƒøOö¬¬9; Õ€Di=Š¢áØ#µÔ'à^×TÀÐ6ì\NiràœÅwÞ¼yÌÙôŠ£VqnFú^Í…Š½iÓ&ÎJ©|Aúúúø8Ö’0P‰tÒófÖpaS* h0‘hT~à1@?FÆ«W¯þ¿ì} tUÕõþ97$$$È< 22;"*NE-Vmê_qª(¢Uœª"´àF\éïØ±£2dˆi8Hx$âaQAw¯|$nt|‡î•ëÖ­3ùùùñ$.x2â é’ÆþÒ¯JüÞÚì¤Ã$þ,¬M=œ>¯WJV¡¸÷š/@Âyë" ±º Hí"?ìª$ðŸ(ó> ýdg÷³"Cþ+´ì06všŸ! …âñ[Ú·Äçælx>zÂëá‡TÑS b\@ñ®=e¾÷Ç*m|¼g\üstV0Þ=*)ßÎ_N7²oĵäP8#mÒ¬¤¤Î/¥ríùž¨¥)á$€åu6é;1ü{â¸IÔy±JöLœËO ¬1|›¥i×`üÆBÞ ¹ÈIsïÅ11Ù=)Û;×N ¬í%yIñ·AžEŸz^æ:#$BŸ{˺kÀËYYk¯á¤âWs'FÇeXÉÅ)€¼|¢BU°DÒëAcc=¸ŠÆÇ.†[ù æ< :t0`|øyMbÕ¬Y³xNÅŠ+~tñ™ ?N˜ÀÆ0ªÓ·lÙâñµxoRW KÞþØmáXñõàmy×| Þ…ëJ`xÔØ0…bì}ë§bÜyMˆ9ØqŠÏ“µÙT2gJalì1¿( ÅÅw~·áá?¶ÏñHx@®€çxÈáªôï*ÏGaÅ=Ïg¾†¼,†ñQl’c38¼ŸžæåFÌ=ÄüŠ Ї’ô´“ð¨"’Ì6âeú.Içïà…à8'¹¸—5³ý}pì|#^…­&V~ÿW„޽ÃJOmÁ™Vzh4…| r äÇ1ÙûJÆfò÷«àŸ=ü|¡su˜,ž—(ì‰U´n6’‡2œž†pÂôéÊSÁõ×ñý¾oö^ç{^>k%©>‡ïzäóÜû"z‰{¡çµ¹|PGãc7½ßqÕ͆†›JN•Ù»·iÖªUÜ»ÑFG3Éå¾ÒO,ÏËË‹‡bõíÛ×4†‘ÂЫ°$^ý ½@âžqc¿:Vü†býhhÐØÎã×ᾸDU«åàfì=ÆË—?£C¡P( ÅÍ5mTRæZÃÓÑžŽ[$á,Dî$’΃^ã0 (¹0:JS„ •± Ñ“˜.ĸ¸”j̘ž8¿ˆ1ùXO‘âf0´)_<ìa!Íü³:S'~ã~-•øDkíc˜Pë ÒìÄ“pˆCñd¬³*‘×Áƒàz=À±V:4cŽE½ W‡öîn¥’×[V Э?еÞHÖðµœÆcü®]“, âhz:Ù¡pÿáñ&L„ÿžˆ%4Úö bÒhñKßðÀg°‘â #?÷ã|¾`£DÕ°ìr¦F–‚»˜`þ î¶Ñø(EX“×¥‹É9ø`Ó 9í:È´‚‚ärßHF‚ÌÙð=«W¯6¹¹¹ñô=zÄé‚!Xìb¯|…Ð)ßpˆc8•o€Ä{„ñ{=Ïóו¾¤0Jü¼Ž{!_DE­ÿšý…B¡P( ¿lª5f4“~{;(v,czž/Á|*‹7€yTR (œTšú=dȃüœßñ@0/‰rüKÒë[†C±¤ƒø;áð.' ßÍXíêlVw2¡&‡gcþæu¹æf'¹*·‚ETâ3ØñbÈaT¿ÏÁxiŠwã9QìÏǵGbÜŽýJ^Æ| ûÔw’D?σ÷d?KŠÕˆÆÎVõÊ1‘ ô€”2f ¸œFÈCχ_6×÷zÀãÃ#žßѶmÛxå*Vµ’2rÃ7`Ľ!ÃhéãÅ‹ 6³b¸TܰÀÇšÿ†3ÆKÞ¢E‹œ©"( …B¡P8 ¯ê— !½ ²­±R5ècS!(œddsll@KY¢wmÂ5ä\kÞ—›ÀÃqþ›%{ĵ`óðý¡çú/ĸŠ`ùÚæöOwð ažåxžÕcF ¾[Ã~'ÙÌA9CšD œˆp¬Æ¥EÚðý”^Ðy ÇW³6×&z>JÐL'IæõbṲîÆs:óá êU³4Kínܸ1n„àØ÷²²UÒ¤r¾—#ž#²dÉ’xžža1 žGa€¼6sæÌ-¦z P( …B= .ʳ‘ÉÈ~³™”K˜˜ŸcRBáÄcô‡À<*|*†ñ‘{ òkbu°”\ûðïìD¼ÿ\w'†ƒS<ï7F®›á¥ð88ix½i úLæ m/®!Þ¨s­$’k¥xs­*‡ÙðÏFØ€ÄûŠž à6x5JÐÓ£N×®¦}çÎfŒŽîÝ»v'{>X™*e]\ï~Žð«¸a±lÙ²xøÆÑ͇ØÓaYqïÊòÆyØûB;éÑGý{u …B¡P(ž1ÖqlEqüžã5[p.ˆãME¡ø$lxØÂR³õ“äüÙHv)hÈ(¥xX/âþ;i"\U·À‘@;\{ä¯cÆ´ä¹ô€ß ¼üÓ§˜PŸfBácœÿkŠk¾Žaj4:z‚ÓÀMÖ˜éFòLj%0:ÊÁcx¡‡äxŒ{ØäF_®!ì%˜oÂ`'¼å•ªÇ\^½zùáVqÄܹsã ‡Ïý ƒ†Gt7Ó`Å«5kÖäi˜ƒ°.’Òã†L¸{+BªâÉè4>bÛç1FÉ´k¯½¶ÄÔ( …B¡PDUD+Ïœ_†ñëàz“ vö>ÌŒÊáà|/ÅŠÊô;Vz ö*a(Ýò°#&Iê·ƒ}X«)Ý& Û ¾‡cÛpl%ä"È^ô°du†‰Íõƒ!IjÿÏ’W †Çx&Ýwç;NúwÍc'²cü¯²âÝ9.tm)ø>Ž ñÝÒ½=ÅðpØ>}LSäitƒ÷£ÿþ¦S§N¾#^íªÎ!çÃ÷HÛðGƒ†I°HkxU`|Ä«[!#îéóxØŒÿü×HB3zôèÆW_}õc5ÍøP( …B¡p&– Ìïc_„_ØD¯ò8”ùóMbÏEkð(̳“ì݆¥gO2‰<’È}IØ›Â}?§€7­Aj¿‘FQįØ(ð6#^‘ßÍœ–Á_Y!0Û1~ÎHúSUm|ø½KØHó®(ãƒ+â±× ‡`|&î},\u H7≚h¨¶°è<ž¯D6$úeuãyìßáÏéõˆôt¤4FpoÜëqÜ£`BzÑE]´ÝÔl( …B¡Ð0,— A9(3!;Ç ,ãž‚j2–ÎbøÏ“x†ÏöÃúu!²Y_Wð\*ܟĤtî2Œ +Ò×lÀ=éV~28ë5´÷Jœ¾i¼SOJÃ~ >ÌuàZÂ÷ù¡óùÁF’11H»PÄÛ4–ÆáüÌO©ù÷L3Ò<à Sšy¦‚¯b~‰Ãù*28šxÒæÏ8ñXœfÙ Ýj> ç¦#½ÅF ¸ï!­f*ÇaÜ{Äø^> ¿…B¡P( E啹ÍVº OyFîcŸ††<6ΓîÚU†û ƒ\‡}scò<s1?uîs.C‡za\JCgldœÎ¼˜Ïql:ÆóÀ]X÷ ˆàT°x6OåƒxMD0M­õ7ˆKóu6Ø  çbÖ)L• ÏqP)¿ëBÏÆxÈ'¬!CÀ0òÀ'q~ o>{ΨÃCŒ¸9öq³‘â@Ê)Á÷Ýü×÷ÿ³•nçÍ­Ì7XùÕ6‚,ÎEˆ? …B¡P(êiÂÊFå¡ÄéÓ êQA[UÆ÷êÃó@>^bÙw¢%Xã$ÌèÕö´²w8Ħì…kr“ìÓ²¬C©œÖ‚ü+8Á“Ÿïbœ{<â]L„¸Ñš¤85•B“\•×Â%o™Òó&œ?ñ&VG­“‰k·`Ø™ÔfîŠy“ãOd’ÿÇë)OP; v–´l~ÏÆ„ËÌ~ Âk GX)]ü óY²(ùsùŒíM Ñò¦ÆÉ`+æ5Õ1óqæ€÷[1P¨2D¡P( …B{‚PYÞ 6 («£<ä @ވ錟®ÄÚÊÅš½bÕŠÕµ óOþ ¹ž•¨vSÉÜÚˆõò­(Ú¯&*‹s“|Ïä&ɸщ!Õƒ ûÑ¡û³!62<+ÝDãM+^š¤pb ´6„“g¾ Å^† ÿ6y"z[z‡Z‚büø‰ÿ{ˆIHعN”ë&àfkUàùÒpo9Ë gJ»¼C®±_“|Œß`ÿ®!oÅ;4’ßž†Ã7 1ëo€dUÛLtÿ×!¾diá˜oÉS7T¡¢P( …B¡à·õ¯°+ú `}†¥<Å| Ã2«°äiŸ ¬9ØŠb­o`0læRÕašãV¸`’±äl£aðžéšÈ=Å»²×ÎÆ´=ÆalcˆQÃËN2 ýM¬»ÜNzDœš wÊ\[§ïàaìuî+ƒ\L#¢˜¥oïÄ|¾•$ë?aþÖÜ•`Sü| ßròÌõ0ÿÐÉ{xÐb=ð\wæK=IZ¯Q`ˆØÅiapbÜ0œ€o™;c$ßc;ÍÏv’²†U»¼H#$bÌy•й[Á),OL¨¢P( …BQ â§Làmg©\éCqƒgÌ ŸúŠÇ;2_"¬(7¢ÒÞì¶ç·ÎwC^š¨+u¥r—“Рõ/Âømì;'‰Â’¯ˆéåñÆ#M4Šq~¹•þß‚›Œ\¿kt‚<ó¸FÔ³=챤mªžçÒ#3€¡@S­T–ÚdÅs ¿ùϪH·y'ßæwã¸ØŠ±õ¹“Ÿá`w2Õ&õ_žì{oBUž†<}8^gކzßìÆ?—?ß`æ"Uäoç=ÈGÀwMj€( …B¡PT¿²È¾‘Xös8 ×ÝŸ†cýØx¯•MÒå;…R¾‚ó°;õ—¯‚ùøêãº:i$wøf¨ZÒ&œ[J¥}ÆßxTú#<™N¼Ùa= pßJwï‚iptï%w€Sqîœá¤'Hy’Þ(w°J~³?Š?ÇDÞ_ÈR½k«ÙðËNê‡&0(¶²àwàN^—‹ãÍ(øÿ5ò{;%&ÓÞwºÖ̆="bHÿƒým¨qˆB¡P( …"&ù ]*ï„ä´Jð÷»Á^ Ž’ Ýw¢˜.Ï2܇—mg™ÛU˜Üì‰"Y9°¬,Ìç@–XQØ‹0^ÉoÚ_gþDi’÷0b’MÐw„ej›z çqbÌ ògLËŒJ CZÉP¤‡Xå)?Á=Ù ñYÈ;h ê1>†óVÖé >ñUltÑÑJ"øDC„BîÂåŸ/ãøFz~üÞ&7NO`h`;v hÄk7 ç¦xbÔ5ÚQ( …B¡P8©z5Ȭ ´ ü½‹jø&‰é/†îoN`XMŽŠOÈSh\ ƒ›™„þ©•™W÷R>Š!_™óÑ€ù-÷€ŸEÞ#}N2„FÝÄÜ•Éà¿L8iä·ŠÆÄ„ïu…“o寅¬KCè *àç^ó)h']Àw’·r†áVÍ«žÙwP( …B¡P ;€ÿóµcð˜0¤)ÜË1ÿiÌqhÞÆ²ª©¤<†]ÍW×ÚýÖ ßö¯ ~?漞®´R¢u)ï+sâ±b88×I`ÞëÜÊê\æÀ¼¶Ü;?ô܇3#!œ¼7ç‰÷áâýi|81ÊnIõ³…ØëlȆ<½ óÁìgÒ×]úY(S"ßß#l|1ú>/ðŒi y^ØøøÙx@ …B¡P(4 +5œô›è“à\3VgjÂþ×Bn3’ûÐ&pÝ*¬Ñ>Å>Çé¥ql Ôé ‡õ­œk YZÁ’°WàÚ_A¶kƒ&ÆÄêW“tP/‡¼ ‡0<(×J‚üGþ5Ïyp²h'ÆÖ,)ûXêDéÞºîf+ýCvTc1‚C’6™Wc~rÈ31IïÄ© $m"(ïý.VZ[éă6)ªŸÉÏÖQ( …B¡Ð0,PC¹oG•}eŸ‡óÀE¸§?æ×b|wDxÎðpŸ'^€ñgX(¼'†ùt&€‚y&…™`,…R ÑÌ‹(«{£‡.éï¡.Ähp v_ìq’O2ü#+ÇÂW%Ù¿D>ø1®? ×ÿ–Ýåb>€û•bü¹‘Ÿ{m±ç8#Ií%àá~•.‰ûNz‹Ô†L·2ÿÀHgöC’„¦•Y÷9_šˆ|¾Nª`Åè-ªñðŒB¡P( …¢ÊÃL¬ôêb¢q¥‹IèÌÝ Âs®(­‚ÿ¦¢~+ôX™ë&ÇüöÅHKaPµçó¼— Éùì˜ol„`Eéþ×m³<ÖÁøOª?Šù“8? òz“ìN¾÷ f¿•›xßÓô‡ì b¼³ ëœËø.›ÓKõ¨ŸLèÍщϻˆ/âèñõî¶Cžöc~K‹püo¼þ}ÿ¨eö% …B¡P(Ôð°¡P¬Èrª ¡š‘`Ïœ$&÷ÃøY“ÃqÝ3àñF®O'ÃôÔÈÜ&¹çfðOá$r²#y†ŸaÜ9îâÄsQqª“<˜,?û>Ø üØ$Ç“|^½ÈVVË sdx¸Nr’0~4¸|°¶vF0ó#0_l$‰þ{¼Ÿy}’4• Ž2´mx Æ×;ñ„< ¾†ù”Šxy~a!X …B¡P(š âŠ%%…\ǬdU›. ¯C<ž¶±&5XøNÈ[!Ók]Ï>±pæz„só¸†aÂù#Nò®Áx˜k"“žs„p6\–âºÍ4´véè}UUt.I¾É àHË<b¸Ë‰G#;|›‘RÅWCþËJõ®V&¦v0äz+=;óÄI5@ …B¡P(4]6qGðWÀõ”ÔæêA.ǽµôtØ ÙÄDc;X׈¡±ÁJÏ S"L.ÎÍbe®µJ÷ì ~¤ÅZ ï*Åø'‰ÖŒ|?!Á;ð˜8,˜žâ}•[Y;+ÅuãÀ2–í­ Cò2ˆóÁL Ï'3c¨IÒ%?âx™“êY3< ÝÚ;¨¢P( …B¡±Øi¼?{|4ö`4„î?ü'ÃŽŒ­„òËjP1Èo @Na«Œ?°’;ñ•a®A„÷#ÛJx؉ÌÙIC¦/ó5ncH×YFŒ˜¢ˆ.ßWáø0­g¢íº¥º›äáE ±xvgÌqe}Sýa¬_Ç:BtXÞ&Œß„¼×£7h¯¡Iè …B¡P( '¢‹/Àñ`;Œ„&á1pþóMXñåü,+¥X_Âu`Üò&#y WC¾¹ÜJã#|c'¹Bžƒy=&Uwñ˩4{Nz[ô xmø|¦€a[õœÌ åLHžÃ;`gU“±Xwä×~“H:3‘ñá„;"z§Dá`ð\ÿz¼Ž’(ç‚çzÒÍüÂJj€( …B¡P(l´NN8¾ã±àsQ•ØpcàðZ'÷üã7Ái äsÀì˜1éžtÛ >eÅ#òXb’€ÆIC'FÌ ®{'ÄX°I@‰>ÖI™Ý öŒ1Y݃ãr#ˆ±RÕ¢·£ 8HÆB+²az;~Ç’¸Ûiv⩯Á• ǵ~Lä¹ècÿŸ ,4'b\ŸU±žÑ q{ …B¡P( õt¬wRµ(“="šEä4bøUdSBð>Ü6竘=k}P~·ZQxÇ9…?ñÙïƒÄò·cyl08߆ôx°Ç3pü.ð6'ÝÍ'8I/Àø¯NòYžŒÛ ¾Þù§U`tô°êôÆÿecŰRüCÏÚ& ã˜óÄçv² ï÷ôj½ >èá=j‰ê} …B¡P( 5@²ÁÇ­”l½ <žaKYVJØÒ b¦ù×B„îÏ`…¥·ÇŽƒXàáÚ˜„ 7 óéĘنó%{ùì=!–€µœäx…5?Æøkz ÂØ ÎqR ·i@_Ǧƒ›ÙK¤ ›ìÍǹ§°æ´*ôx<Τò+-žòΨüäFeê2ËßB4gÿ‰eà;f?C …B¡P( 5B¶ƒõ¬LïvÒˆïRÈåž1Ýb¢ìèEäĤù,° ”1l^†ü5ø;zCNÀýîãgÿ<”½ã&ƒËèÅH—ø…ÈfÏŠ®çÏ[ìä™þÂFˆ—0'e"¸£Š“Ë/Æž§bx8<ßÑŠô\4èêWDqvÁ‰ôOYb@ÈïM‚ Et~XeûT  …B¡Õ°Öù€ùgÌ‚üÈ÷€çYI~~)t}VžºÌgNÁ¯z\!x.8œù “ö¡Ò~ ß r ÆcØåû=zF~ËñöqR9« ó"N£1ÞUMï~€“g>Þ2·ÄIÃyQIæ4@ÂÆÇ@Ë‹¸¦€FW9½;ÍÁæ”Lõ¤OJ ƒ …f€Ùã ,`œd 3{‡40“eë„öÙا* …B¡Ph9ÞSpà]/Pº6&U«V'X£«‘s9Nò>ê²ë6a9Q†Öí¾=7A\ÏP"³ ãÏø Äu87ƒÏû„/Àü*~ßi·‚gbÜÙF4ú³þ.:‚÷Òðj⤠ÀàÝà`¡ïÍaƒÁ“0žbj$ÔQ(, ælˆÔlÖâùbp¸üÜ–üÔ}¸vw°÷Lãù"p-¸„•(¶rŸý …B¡Phgô|ˆMÁaào¸O#0#É>«™Ô7üºû(ÔÎ`H_&Ç^„?–’E`1DZ(E+ð[kšðšÐÁ5,tP¡ë 0QÙ’ ø,Þqþó•Wˆç®C˜'äK‚×`œ¥é’te´7ÁH¹Ê˜éµáÙÇKZ…mÊ‘Ž“÷çˆ3÷‹kGáØæý`Dy|¦Vž«¸ÕI’u&¨SEÝuF$ö 1æÇ̳*S(÷÷€\— ºU›BÞn«ìïS ZüƒkÍP–®¬–`˜ÏÚÔËÀõ`ï-,÷õBÇ˃ÿ©×È}uÁÁà…à°àßP”¢Eóoè1ðep{Šwo¹ÏÜçH°^ö)—‚cÂÜŽˆ}Š4*-éQkË¿‚†4KùL[ÀïiTo QZ·-C» Š[àoõ;þ½®àº¥¦ú¡PÔ¢ñÜš!¯]BŸ¿6‰×£Œÿ.–Ò+½ ,ª»Êu'ý0.µ2.…¸¼ó3±ÀEàÐbnãØ ¢;µåç‹mlLæ¥ðtoÌ!Ö`"vQ ¸ú¦ã×õqOÊþ̳°þÏMÃă¨nx9Kg»ÄŠí°·“ªamMÅzu|å¯ù+üâÒ°Ê `>HB t° ]{CÁ¾4D²Rx@ ÁUL˜z\îÝ^9}J¨DüTjE:Ø…µ·Íd-/ÕJd>½0Dª,Å>=h|œ6¯Ä>›úcsËy^¡ð†Gp(eË€ñQ+è]#ËÞ~vä‚ ÁOiŒÓØžÈpÁ6ÏØ0ÊÀÍ4Ìç²y×Új6BŠ *ÊÁ!`ê ™ò€0ô–èyÔré©~¤ÖA¨¤ÖAbÆ´·ì°íD/êDz¶CÊ©(­_„v»D’4¢Ñc=©µ›í:»´l°1_vS9–‹ë>óaÝ#^£à1<ýCÞe’RÀá…à6ðe6¼Ï.ñ·‘¹V¼p}1þrš'=Cªj€ÔÛ1Œå$&ÞÀãIºÐ?ÊwX÷zUŒçïL#¨çi<_0v>WÒ‰ý„}šÒÃ3˜pÃPÒòJî³8°3É ð˜> <Ÿï7=l´hÑ”””˜üüü°qPBoÚdÆi$Ù§x6ËvŠÚ§U«V¦°°ÐlÛ¶-*lp x•º= B‘ö§g­ó–êÒè° ½kÑßòî×ðK™WÁå4ÎG3_©^ŠÏXGÒP~”z>Wúo¤=?{G€þ}T6Oª˜!±Ï3ôvUµ†cEë ½ÁÆ:ÈBpQEtgÌNt£éÖ˜1þ=Æ ¹Ð7týA 3|9Ãlûó`©lZÔïíj|V5Á¸–ä)äbÝÞÿh‚4Ëÿž xuÊÀ«0ßɹñÖ¤ÄhðRêt©¦¯ÇŽìU5@,•ïSÙ¹³ ½^%“$KSÿø¸µ’ {m>ÙLÜlŠçQ)].¢Åû1­_W‰}¦’Ü(bŸÝà::/S&×QX†– £‚5˜Š›%MNNŽ™0a‚9óÌ3MAA;v¬™5kVøßïÀ»Ó¹#IèÕpðRzìrçLƒ âûœqÆfûöíæÊ+¯4ï¾ûnxŸ¯i€¼@ãò— E&Ø‘ŸƒÃùQŸ —÷“Ñ™BÛü‚¦«Ë´K®Î/Ù¾N—UC7…ÂRI%ï03RWH G°ÉTðΫ µÁޤ[ äð•d:HL®Ý‚›×áä ¾+SN7ür¥ìß#7 ]ëN,×Ñ”—q ÊÚ iÒèð‹ñÿÑ1„Æqì}6Ö“1~8&Ÿ—ßb|½“ƒôH Æ×‹8¾å{ƒkßÁ/I»pOkö+µR„²ÄXúþ `…`ë´bXÁ|*e•üæüD†ítæsxÏ‘A´ Ïí`ˆCQ÷9<<ìX¡}Û˜ëRl’A¿;±í¬BÅ“ééæª«®Šii¢w5*l€XÐ#“y¯:pŸîòû œÌÈ0ãÆ3£GŽïÓ¬Y3súé§Ó ‚û(üòƒsO£×#«²†Gĵ×nAù5ç)Ày÷ö Ò·² …"†ó‘#–¬,,e•þ^ U,¬&ïžÇ0ËTNI¡äÐ8±ÌW\¥ƒXY£Ïà"¥àVÞXÆcqù¢Ðý%ôl¦"òêsÓ ‡ÀµÚFLþAÒÜ0‡Ÿ_5ÚqREë_ÏóKÚFÙ#¤5ÄC;ðxwˆc _Ãü°a±²YRãCä@O¢3jÔÉ¡Âx(ÇV(¨]»vœÖZ†ÞRZZTëШËyE‘Ég8ìR^£ÖI§a0\FOæÆ x'²ÀÞ܇0I÷É›1LësÆ_oŠÜGC¯š0üp°qXÁ M6oNèHQ†BÕÚÏóâ†4[ks.þ7V^^nÊÊÊâıP¨²|ÉCJ!ÏÓhÎÊÊ2AøëíÞ½;\m¨1CG3kW ˰ìÞ`¯(]!33Óÿ[¦®~ÃûíË`’w=ê YÕìíIïGç”:ø:Èê°Â­ã±pu‰íàžÀ ½ŠR’“#ÿYΙÏñΆá3¡¯$¶+Cyé’MEšktÀ[=Ê3fn ­–¾e¡¿E„E²<~7†Wgv\Ž“¼ÏäÕì?ò9ä=˜¯¦§9¶Æy;Ô±`=†!µ _×­[7sÏ=÷˜Aƒ™ºuëÿC$þ öìÙ³ aÉZT½ þ'éQ©vIéáqîs E 1©Ãi|dUbŸ64B–€[£öù×þ·48û1è p>FÓ¦MͤI“L£F a–,Yb¦OŸjRrµOÆ· Ç·lÙÒLœ81‚E˜ùóç›™3gFí³'´Oõÿ~Rïïªêoí´OÜ8‘^Ìð^¾2ЧO3räH3pà@Ó¹sgS¿~ýø3ÅÅÅñ\¦7šµkך¼¼<3gγ`Á߈!Y‰’tÇŒc&Ožl‚xóÍ7Í©§žÊ5†>T;ƒÕž&5ÿ½Õ€>6–tW i&€^½zÅu…˜ììì„FˆÿïcĈfõêÕ×U½×AZS7X\Ñ*u±@¥Š2Îwòå ãcÒ矛öíá`"ÊñóÛ£Ž2³.4 Ea³#°wsì¡(\ έìÿ+ûüoZ~ÆžP®a?ç$.-hÕ±ÙßýOæ»é€ñ1àß³xñbÃðh¹nÝ:ÓÚÚjô`¿'Èhõû”ÉÌÁù¨óƒóàƒšºº:Ãð.Ÿß{ï½æôéÓ¾p\ƒà(”°vÄ¥%ü}d‚C&k ùÐ ”I¿ê©_Â~ó4l`žQç)‘Šö|?Êz…¼çêÁ~ô`:ñB–J;ÂÚÅ஀÷]8gƒ _qµ 8E N$-t{œê泌¨g‘+¤gÏžmzè!³zõj_Ã*zsÒ¤IfÑ¢E^öãÎ;ï47ß|³y饗|pjýX¸p¡ÑCÖxÛD‰=ÒÔOð[Æ÷J(%‘éò;têA†÷¥qÔÚ×߆RÐ^ƒ>ÿÈsådÞàùöñ©šéfö§Ã›:;Qh‘ŸZÞ€·àóâòCšà+8*@=ú€Ó \Î(õl0£3Ï?ÿ¼™?¾ 'Ož4mmm>xÅÿxF‘²AÊÓÙ bHÐAûcz*ÄÍ‚{!f‚ÒŠßÁ[a3¡S§N5zôÛ Ä+6‹àš*ª|~(møÌ ]·~rƒ¯EÊÎ é†,Ð<¡tEžC›>ä@’ß)eu‹1ë,ƒ|ÅîïR‡´´|bœ1õvæ…cÚÏY ?R 3vZ±Óz-°¡d°¹Þ<žF9×H8yð»Ò?ØzÙØðB:{ 8Q¥ÿóÓÈÑnõ „ùÁpä½û\ž^`+>qí³J¿æ^‚&£X,X2’ÑÞÞnšššüàÔpF>Íýª¿Ðb¯Ù3ª  +ªÚùM“Mëß0oÞ<óÌ3ÏHôQº&yŠýÉ'Ÿt:žD„Ç8§ìliü®+ˆÐh8²¾Àx"\äþÀ /¼à©ÂP‰çÄ íÊ¥¨ôµÝaU%¯E®‘É!oÅ@~#¹;#…b#˜2‰©“-¬ßÅ^{8ÁËŠT%Q×\sY»v­N)›Çܼþú뮺@kÃ=8 qŸúÜÐpŒæW;Ìu×]gÖ¬Yã•Æ0¼ˆÜ;ï¼ã§•¬Y3By<|QCV­\ šsøcм Z © Vï(LÈ g­Qðé$§C’Ní¤û“ïjƒÜT³Îdà—ù”Aø·•3úgΫ:£ e6àÌT¸†,k ²f;¸éUAÀVJº\Åœh8a8Ý Î9àô±¯SÀ‰ƒ§2Œ†¥Èr—§D.lÞ¼ÙÌš5 9˜~ðE‘â〤wÊË˽õõ Ë¥”Ë5Î8¸ÊSô˜Œl‰dððØ>p^©wtj‚ßC+ì ÝÂ^ã9)ÚÈqèr~;Å^0t?¶vË•à­Â§“ž_åLò¢Ùu›—°Çƒ¤íÊP eÆ‚¯ÕQu´{vys‚3Ú¬õA ù_ŒJh2þ£Wïô4lB_§ÛNü„sé6ýÝ™Éhll4}}}>Ý1¨>¡môJkƒˆS%¶ØBbƒH¶ò©§žò³A–zxÅA¶6¡kc ½Q}ž¿_±}`á‰å}}uµ ‰]5eŠÆ™‰Åb†!YÄJ ;’Ôk±Ydg^›ý÷]vr-ä–¬»ö€²aš¡qg:¢œÓ8|pYpÂG^籇r›EèåD£T”A˜iÍzc|À¤ß3æ—Èáu Ÿl~"Ùdæ«‚. ìjSš ÅYùïár<´±ÎšÊœ~¢)lƒeÄ”mÇ­ü ‡?¡àLä=‚9 l[`e¶+lÐðc¡+Ëxo"3ê>Þ‚µ Õó®ÂZg¨¾ ”=ÏÕI¨©K¬Ì›o¾éEçÂá°¡îÙ0DARà›Ê\ÎùêAù¿g’½–÷«>ö•ª î*€F¶D½¨¢ ©‘®¯¯OÕ•ãZž!ˆÛ ¢vcÀ—ÝXéá;’B–ñà§’9+Tt£‹õ¯²´‘4.¥:£ÙQÖtÙœ³i¼è|˜f*YžËÉL”:û¥ûŸ—Ý‹RëdÝlG °®BˆG\ÅôðÃ{å* ³oß>óÈ#xÂÜç Ùè7ä”^-Î$oUUURâåÑŽ²çx<úè£n&KF/ŽÝ_8¨µ”àÌŘ*ÕÙ)¦v^UÖ@G ºÐïbX]ªÚ¸–¤1µ`‰(cd”‚ŸPÝWNΰNñÙ`-d?3XKGStÔ¡bbêŒîÆpjR‚ÒUÖU*ZXÀ+㳈‹3ÅÓçœÈjŸjg¹zœuî’Í…¿.SpŠàô 8—–Úð{hÀè˜'kkè§d€%âf'„§äUä¡ÈFœÄŽ;LàÀ©®®Ö™]/ {ðàA¿ìG'ʧ_ßQS™ÝxXíÅo ›i²‘Êq„ÇqÖw!Îð½YðÚá5Ö)ö‹äk@®ïò€ÅnàøPÎS|µ„×Jðä€ôpÖ*دŸ#üwäênø»‘½¡üwx«ÁQˆd{¡ûÖÜãÞ­ÎhºL¡YA†ÆLà“üãì¯ ù¸G&û8­ä¯ 2Í»wïöŒuMúΔ>N@ØÝ>Ò èð€cƒŒsipË-·¡Lmƒð½Õ~6zvŸWWÌ›mXr}¬N¼h¿ñFÓ_Y)BD—=Ž'­¿¡iÅ/ó²eŠ7Œ)Ùšä¯)ÙèJtG/G˜€ ȇ跷ØÓq+°Ç[†þOËð×ZNèH½ÏYñïÖ Æú&µoJ-à+ŽÀˆ„ûEð~oEÃfcþ‡õ[áÃï[À·"oÞOÐF?;xÙÈŽAÁeȸ¹Øe¶Õ+Ú6`œÝ}úCì¥FɃYðä%itö€²«²æ1h‹<6ÕЛïº{s3·qd>qw-°í‘ß'ùnÖˆ¡Pï…ä2¥ÔðÀÞsfïÞ½éîZDA@rÞ¢e']a>‹ï*M\=×ãèÑ£©Éàha:#¼BOEi¸pV®\™˜2áÀù$p 3ìl ªÃoÀÛ½¢7C3¿KàK)…ZÂo-ñ+‡@ Ö±îohÈåú‹*½ªó»X+¥WÚ™£õ®ßó?â0ò'ýœÙ”^ÍuáHþý÷ßoæÌ™cÒzW²e<7ûÁ>[0ÖWÁ—S8ô‘ f8–W—êp¾{À%x \ºp~n.\"›ðEƒá!^À¯G‘Îç,éµÒ8åðÊ,øf/ë¾®/UÀXŠó1ƒ A•N8 ½_Î~=s °GÉ™Î"öZ–+Ö\¢h?_E‚tÐ@œ )ÝÓQ]¯jÏž=fË–-¦¹¹Ùˆ|ƒDî7͘1Cø\2^uÆ dø‚GGG‡¹í¶Ûô[!–R¿(q ü‡&5>W²ÇqŽãšj 1ó˜©ø­º×"‡^ãœN…>s‰ìKOøe¼Ó€A½]äëö}D†ç¥Üù¹ ¾/‡¿bš!ÞF{¼…Íí‹Uëw"œÁ<Íz3Yï=Îè0DBH—£W1B”L Ò;ÀR‘ò:Ö{ßRedµ­ γ”(Š­ ïŠJQä½”hÉÇ]P)ë‘Ï€¸WP¬Meƒ¬Zµ*#ÛúLpôÁ\ôË®¨1wØhÿí‚ÛcŠ“ =ñœRàWX¼uþô§æVøí·Ž\<îß¿_·Ã%–ø‹«CÆ´ÿ¯1S€_ìòR°ÝN–ÌTzBàÔßdÌõwX|•Y½Ü…wzÊÒ1n·Ql÷ög‹c Dû2FoœÙŸ<•³-,’®¼Û˜Mñ¤<8h¿÷¾Ý×–÷6»ï3öuºì{w ÿerÊô)õ™\„¬=L¶ÁbäÝÞ¯CŽÖ«lj8S9ªtv´Ÿ¦t@¶|p ö±I%×Ôÿ©AŸn£5üaÈ™ý¥6óE;ÿÃãà^0“lˆ<ÇîWÞÉíÛ·›€‘p”NBrrªv—bPîܹӌ7Î0䎆ÔFÁs Î8ë‡ýH ‡]»v™Ñ£i)MÚUÒžÃaÍœ'² ‰Ë¼1"Q¯¨§}ö;Y ñÖÖ ðJ]£ x 7Ý(ÿŸ¡hÎeÑ9¨x_‡!uVÂã_|‘î>Æ3Ø6nÜhÖ¯_¯KKÌyvÌÏIÿ(8SœI.œn¸ARäZÉ É¼¸ptöç´2¼G+žÏåXBá5¡1\äåòP_ à Ö4ž¢¸Ag´›lįé(Ò }?O÷8r.sÁraQöjÓµã‘+§ô:ÊôÅ“D9·nÝêµp&ëa6mÚ$µ.Ñ‘^obx©NXÃ6† µÔ~<-çt=gCµD6~K¸5ÂÀAÝEòe?t¿ágò„áßiµ:þ ¼éf-ð]r¼]´>è!êù”ªÈXSEÆ9°¯€ß~]³…ç%¡ÚàÛíé²ýÒvÝËBs.ÌáÇÍòåË=§[sÐÿ‡d\F:–¹‰–ÿ5él $TTT†\²—@D0ÝŒçfž¥¿e¾°Ü`?ïJ2bèÓNÍ̳”>èáýªY ¼¤¹6ð×;ñF—X‚¼±0X7Bu£1ñµoMI2JB>³‡Ú‰:·b  Õ V˜yìk³ÅÑ«I=ð«µÆì³FÉÝá¤n¸6Oøzdy¢‚ ÈJyú´y¹ÚN©ý99ÍQŽòýH, X3[ûã¯Ø£?çßñ‹)Áê/ÞC —º¨­­õœ†\"“(`¶·í Ô}Aˆ[àzd¾0)K8vìXæðØ7Ó±8 b$ëˆä‰'2‡“ýóR²Ã5‚*Ë0„±þxŒ¨ˆ^ƒº`ô[ÃÐú2ñö1üO—bÑ9’6Œø|·|E2f‚WF~ì±ÇüêÚÏ‘–܆²Tpƨҫ ®R•ˆ³d?Äù`ˆS,5º`qg…߬/3çNK¼l ‹œàuC„TéK(‡5 0.S)û£ðÕ*äCá0áLóa<8“ýT±¿á†3¹“VHKÙ§d6ž¬{úé§}²#ÞÁ‘@ןÄ)$Ã{5Š2D÷xÒ¹¯Çß2sá5Rýªíz!²gÿFÂKàåªìn¤ðfÔ…Îé*(Ê oè2xEèÔAœöKö”ío/!Êú2o¿¥ìc¿ºOŽÛÀFšÖÐZڽԦˀý›x'·‘€ëÑ)8î>ëã€hD2÷ÇÏ’G(“¤¼Ë ¹üŸØ}ÏKî¡RÕ’S#e‰gª2‚ s˜ O‡©Q]láÕ*žáBªsÀ·$q,pRžÀ ù/€ÜŽ•ú7§A„F˜«ÎòÛ«É»¤Åö½ÊcþÍzn­â¿c$ƒÐg%øOB«‚° Õ碳ƒm\Æȶör%2¡C=¨;+$Žá¹‹¬D­,î*d=¤ådKK‹‘!aJKKÅ”úO¹"¥/R£»E„´TŠDBÖÔ±$ó2l%r)ˆ¤Zõî'ŒÌ®6ɺH ‘ü€7 ”ünï#¡Zæfy¨-•‰‘¤ž?ÎÄ"œ}™k?¿ÚòÜ2ËÏ]VžF-͸l`gBŒŒ[ݳ¯[SQ†1hyyµ…uØÎwÙ~µ]ïÕ;óíÚ[Y³í‹§Ýì5æ|IÒ!èQx©g@]M&yðóSè9?RfèØÈ8ôO/DÒV\ ÿÑÙ†sêÉbt¶#²ÈiáY_Ö™%kkørWö){”KámðZ¨¹‚Vñ‹¹„£ö¾…(d6`þÁܽ@_z•w៓gL&!1††„p(5 %$ùãŸQBA¨”‹±*Ä„‹Æ¢ˆ Ö¤¥ —ŠM)QAÂEblÚ¢¢A¥\£„„K!H€dfòsf=oÖ³žµß÷=çwΨ{­³f’9çÝïÞû¹|ŸëÖ"›o¾Ù)W§¡PSº‚Cñ’”µ^C©[É=ÎìZÏ=ãÏhÍdNÊe ÐXñò˜§Ñ@ÿ|=øG¿wê©§šGág·þC‹t clDð¡}HAyï#NÀÅó.¢É¿ùð‡?ì6n†•ûS„ríÛÁƒ®ûöž÷¼‡'1÷è »nŠèÁÉÀHÄ¥>Â>:#sx_y(šÌ{âøf: ‘‹ç"ºlð ã©O}êŽç>÷¹ÖßÚßò–·HsëÕ<~ÿ6ò™¿Uê €ÞóóTºq»¹}Ìó\yå•Qä¸ºÐÆt"*Ï~ö³¥ú©{â'p0¼=Óõíॆï}ï{¦ž}öÙ ­~ðƒÒ ºi7~/2vµ`Ù3E†kq÷Îóž÷<© èÃü 84íŽr$ôÁ†÷3·wÄ_” š6n¹å…£º½ù¿Œ —“ÇÚ»z_w¯8‹sZŸzïë¿­Ù°&ë<Üx/—YÊœHæûßÿ~ʼÃ}ÁomnŸùÌgîxžàœÌ34ÎFc gA>¡ g⿞Ñý"dí7餓ð½T뢋£>Í?NkäÞÓžö4ôë9hͳžÍm·Ý¼¼çÚk¯­rm+µC>'"ñ·‚T,›t>¦Êk žõ¬gí8ᄾw×\s ù}O»ËÂ>sÎÙs@^äœl¸âŠ+ÈóÙ}c¼xÎùçŸoß褡†ªÂ3ÎKSsô<ª'&»(2 Í‘äZ%ú•\s>À p€¨m ;5^PT^ß}oº¬ø–×{Büdi|`H&s²¤ÛªŒºÞ†ˆqdªuyœ¿'CaÝ1L~\§÷%cÐï:“×]9MÁþ5“µçžÐžwb;ŸÁX¯Þ²«Z Úš¬xÛÛÞF^ÏøPÝî ˆgº‡ÒËÏþóïëºG—½îu¯;ØZø”Fw—5Yp~£Éû·Kƒoç÷ýÁúZ“kŸ{ç;w\ÒhûnëRŸE]¿g¶94,ø·Ú&|Nã=/yÉŽ½×_¿ãG­SåmÈÿßßÒ¤£=ó[M6ìˆ}Bq&G‡CõœÀ¥_>‰ˆÈû³Ñ[ª™­Ø€|€ \¨ìï6À“x•CžŒ#7É ÷EÁxp"ýWia1æÐð;ø”Î&ÃáCôA—’xˆ®ùÄ'>aîî¼YFÏä&)hÒï^úÒ—Âižï¹ž…èOòá`Mⓞô$òÁ2X4ú?* Þ/tÑ#RgΕ=³»ľ–žÃ¸˜Òý3 DÀbSƒâýë_OyO¦(ðb_wÝuðÚTån ÊsÕ¡¨” —Ó¹îÀÔ@b¤k94‰g¶ RÞñŽwh~ƒ(¦&@Xö\­½îyAMz•òp6¼Ò6fËš!Eè ˆ ~µ¹½øÅ/®J€Âkûüª€ÅD®ó±Y}¡yk§‡,ÆC«E. ÒK)a•˜ó·) "x?~ŽÒ«-å( Bˆ~̃斿X+€€3Q´~Á8›¥‹‡ ‰ðaXRÜy0Ò þŸù©úýAénREt(§7xDø|ä#£5¼/|á Ñcmï:   ÉË.»Œ€[:ß\xÍk^cmÜ—èè%Hç†5¸3†@% WÖPX_oàU X-:Xgë¯xÅ+F¿@˜3†Í¹ñêW¿º^Lx êr~1¢…gû0€'¾£(ü9š*朵ÁÆ+þN¡Ž ½Ié rT— ´†–òç&{Ï^Ž4ÙóC&ܲaÐÁSÿ¼¨u|pÞ7{8PܽÁŽÔpd…ôœ‘ÁyDîfã­´Ú¹â:çè¹]ßÜKcì.「fçw^r†Í†ÈÓŸþtÆ{O^KÁzsD«¤R£Eê…pOôd)zgÏ3îêL÷D³ Ä~½¥2:ßþæFø6d„, Ð$ég³ ÀÙÃ޸܆µèŠ"}ú£{ íÿ/š.øjÃ,€¬gÎDÍíwW–q¸$MÔqwÃ/Ÿjrë±m>xî¾w€cš~[´ß:»¿Ütϯ5ãzˆÿ8œGòÌÚCš#ãÔ&ãvål‡\ð°1;¶šÓzÑŒá­÷½ï #âŠ6?ÙÉyÓiºÁq–JÙ›{-#°Ì¹É)‘±Ù€ß9©ÐòÊØÀ¹1þÁØ ?]!pÉ%—D7ÖÙÁÈ¥'*ÎeTežÓ“½]œ üûÝïÖ†èΩô_ö³Ÿ­øÑâÈìw"ÿÞ9ÍI ;ûµâ…<&U™ÎáR¬QO8º'ãobDH—A_ô¢mÄø0¬?¢W¾ò•ÕøÈi0@!Ê2×»òŠš¹ h½“„ÁøðÔ2Ÿ1/:p˜÷Ýß½Ãø=0ó©WÐÓùäuI‰²,äLÜ9æe|ô„ ËêãQÿñÃò'Ûžl}eÌ¡˜°Ë˜ªÆÇÖŒñá ¼ñÌìÙTðÊôŒ^ ÏVoxà »>§FSkB¤G3 )àx2>*mò¸ˆPÔ”‰Eý üJə碋.ÂkÛI1%œûÐÇGË+±¶ÉyD,Ï=÷ÜucHÚãQÐZ;`ñ˜´±ýaŠUb%G“!ôEA]}õÕÅøè¦ p ue6E„ü;ãcÉ!Ò" ‹Ö{´vtx"mÔá÷xö/tïÓÔùGtZd¼Í#ÐOîõô! ÁãH^MÍY÷ Å£"V³<ÊDNøß®2Èw6wçÝœÇÐmÉøvjèqo‰îðÂgyʃOÖõRp¿‘žq<¯wD¾OMÅô;7ô©7®/2!W71D±`±ñÅödܨ2n «EѾñ©O…!;93¢i]Yf]ÙøØâ4}Ï{xMvìiúô‰ ,'à"%ÓžÔ+ mÙ¨‡¡¬X]”I*D¬¡içÃ41&örƒýnö·0BPU¯§ˆGtDªcå1 Tê€Gñ×÷°Ÿ1Áq^³Ž)PoûÛ¥¨Ueç̇=›âï3×PBSdjëÙÎ<›ìVÅЖ&3õY¦P]í°Ö3@îŒHeÝØ¥eE(š·º×ßâ¥*ƒDë3v7_St=ZC·ÎÇ9*;N„zy]º0öÑÉ#¹©Q‹e÷M4YНU9auߪ!HÿqÆïe•gyT‚ô.g21x_§¢`Òä8'ÿÝ*Ò{é{‹³ ²º)ä¦wÐFæÛ^ú•qwxLïÙÿ0ÐàÌ}6EÕX;„d²‘ÍiÞº² §aûØŽï¶HAÙ·í5ÂPßÓ è{ZêSóx Óé °cK[aNšzÏQ{ÖžmgúG›!\ð<–ã¯4ûéÍA"Þ5ûþZïjÿ¶¯ÝktpÍËo,“Òðzé8$“.ÞäÍ÷?´ö€‚Ÿà-™"E/¯®âæßë9ÇD¥vÒ©ö®§ÿÍã<Æä-%l–»4’½¯rܳòï¥Z÷ çÃj]˪#é…Î…i¼¢&î*TÀ뵯}-àÉJô§”“ Æ#B|Œq¤'ùô(¡yJ¸z‰Õ’L}x§„œå·½÷h´l•¿/ÎskˆirùÓ¬Ukæá"Äc©KçðþuþšF#Gµ)BÁËËë]¡ðt%®\ãž2ø±T„X(¿[î$†±zŠyºñ¶'´ï—ºQXëxu½ÊÀØ~±ê;å‹á]7ÒõŠÇã*¦(€› À´ÆÖúØž™#hšaHã½ÚÄ‚!<éAOÖ“ÏÆÚÏak²ž7¾ñBÈÖ\Ó$Õ3ŒÎó©æ],?Ö}ð¸îú®h¢+¤òæÛògjoãq‘®ü gYçCgF§å2µ?}ò:kzsxgϪ7ô–ÁEÄË'šå“"9®F(G¥|G„ eÙŠÖÈ)YèÖùðö34è‰z6¢&Œÿ8¤(œrô76ʾmåô9õŠÎÓ¾U¨ÑdÞ72^ ¡5J[Ȇ.ÐÀ Í`ƒáGæóŽg°`oÐ:x=ÑUÎÏ\5‚DÏN éh ð¡ðš3Fëd™ó ÙÆ9H9Ã,SÌ3Vƒäcì ã“î)¹ìµþcìÂÛlY8Õ5RîÖýLw2à tóaxÀ èzüB“eR•‹3>··92Ÿ¨Øuà 5¸•?¹yì=Èäûàßøò-íúš¦ßÝäÕç›|Ù #vÑj~ ~'í’üj·ZúüV«!=ìå/ßquÓó_¦×¢xž¸ªe~<¬9ņýÝjé9ûÛº¾ÞäÚgڻɽŸns_ذÖ_l|$]0N®Ðï½(ÈS÷ÅuF­c=+¢l»KV™…ǼWÕsôËØÿ:Ë.6°0_úR`9#²3ÁïéeÑiÙ:øt°ëLjYÔÌjÐ%.²­ßõ[˜F†=ÑJÏ€–†IV©y©zÍþxÿ¶Ø²ËŒ:‚ ‡–ŽDÕÐý¦7½ÉB«°6l–MÉß"õ TOÑûšÕŸ/!¤ðä»mr0ˆe^­a``dÁz8­·FÏå—_îà ün<Ï¢pf¾`¥Tá‚lêäAN/"­FÞžZkFdµOù—"×òÔAÇ[à!?ožÁàÉ…îW]uEœS¢xöåö€”¹Þõ+ßLFÏá‘x‘ô«!ú‘S¼(u‘–€š}Álc†Õ\_ÌC™‘^ÿOMƨ ¶V¡ḭ̂„’½ŒTÂjl0d¤´hXp`œBѺ¡)#éZ‰ç˜êè9¹€¨¹Fs‡y¬Ð‡ß§!Çøè°æB?<¬!07Àõ¨—ÆwòÝcx#b´£ ï+¬Å<„¡¹¶Ñ°·bÍl¬ˆ–½\v(`gP­0†Å àäòfo3 ,]s©YûÛç—I‚O.åHÞçZß""†_F£? /i ± E¿ Fqœ‹gfã-ËhƒcL&¢Ûº.@]DÔ¶¬Ã½ò5L¾‰Àœûvz®s¬z#?{Ã^غOþuv²q\0ð {;Èx Åÿ#ò¡iO4°#YèRâZ›£.(šŠ¸£c|LTpTy”¬ÎtO~ÐáµéKAƒïõß±Ÿ—ÙOSæºQ|à¤ôj Þ¨B€¯?Œ™—Ê®:†ìàí]wDƒš¥0ÏtnPã^)é'›¿Ö¹@ /<¥E'w†^"·~©C³Û}E¿uåDúh3*ÈÎE{ÞVãá› ülãÑýM¿ØÅï7ýum;ßE×s°‘?Ð~{Aë(y˜šFK€ñ¥íÙg7ýÀÔ~s£å6Lö$²Q'­æ”]´÷õûÖ¸µÁ/O'ä4¾³%w8wý=˾¯E}Áo`_Ý@-˜ƒ}˜”S¼ÛpÆø²¶ÆÛô²wÓ?d·”ëü[ú¼Þ}zY›l@ÇÙUë;ÈZò :è¥Nf£W/§i®ÿEÓêõ|ÿ¾wƒyŒìÐ¥3ãànï4<‡Ãv ïk}˜óy“$›Þíš1@ŽOm6‡!_Œ"ªÂ â%M/a´ÔÚPbK1.Ôô;àyÓƒÐuh™xÖrΫ°´OÀ}ÃèS©<<Ò»ò3„ìyìcõF-€xŸ°êw¦3ßÎb¥|("kDˆ½hìó¶¡C ƒàq˜·(mÊAJT^+‚åñ»…ü7#õêö’zuJÌsfoŒ£.&ÏCXÕÔ«büY“/…=+ `Áó1Ýlq! ÁÉô‰–9·F¦<—¡­0³1Aùñ˜>ó%tMÙSÇ mMSáaBÕ÷ja4%Lõ¼#䀕• a„>9zF¡èí;…ÃXtnÕø¨À‹á•çá#{¤'õÖE¨MêŠèŸñ°’ñA!ød¥˜-=æBÍÍ®é4c­âѯ¥[¨åhy±G;–Î%VŒ„Ñ: ‘8g@ ÖsIâ}í@Ûö ž‡ý™Ó {OdšÑC?x'Ó¯:©l-RJp÷DçÀm‘zš3ÓèyÉÑŸuà÷ªÏе(Zedšme|d¯($fÒ0àU$¼On…¾9«Å³Ó<¿0Z沌›užã#:\mܰ&{b_³>·>β?ëÈ—·çÎT:(Ýç]8s„’N†-è|ï1r¬#Ó>¬O iÛ0fÅöxF¥|'?TYŸ2h¬ra½(çÇÊ!&5ôL9¥ö³ý¤áð¡eA@=^Ù킲èÕHPüYÑ`¼æ °Z/2e|TÁ¯(š%ž Ì3Ç”êÍh‡îä¸Öé>S{´/,ÖO’1©Óõê,¸½8‹Ô¡(ÜIÅ!hz†).¦÷?Ó\‹Pbª+Ÿˆ{JDŽD[bOí‘pãØÅ†,µÃ‹‚¡„s^' nÎøÈQ— ¥Èu[Ý%ys«.L`ÚŸˆöpq"‹¬ØÌyMïA–h9øÐ‚öø{Å ÕšƒLHzi¶£Ô&1ÈM‘ap=‡,r[ùÂ>æŽ-u²æ=½ÉrÊùÌd€<¬íݹÍqr{NÖ(¼ÇÛþÁ÷ƒ>X}Ã1¡¹‡t´áýtÓKW·ó9;<ÿ±ÚÒöjÑt‰±Õº¶ÝÖ¾÷ùöœ“d͉pBã‹Es>í`D‡n•6»ÆÈ÷¡T½[#"ÇÄ>Þ¿DJŽùšíëÔµÚw[þÀbrKûϺ‘næ \0RE1tÁC/ä-ly_ëÌ÷Ãq2>–ÕÙ¢2Ug“Y9‚— ;ò¾:+èŠIç¾ËN'kq׉ÑiÑýuS­zúÎ`Œ“j:B F\å–p“YTÇ”÷ÄÆÛûØ 0wMÍccYˆkŒÞ¥ Þ¥ ­zAõÀ1`¦<®·ÞÉP˜óÒ"”¯€ùg¸i ]œFÁÕ8EðQ0™»^ÉáÐ{^ ¨êwBñ»¤^r«NKu¹ÀZ^efé#¼÷½y ÅOÇsÚ+üÊÝØZ·.Räɤw8Ò%|.©WæQê6ì {LéæÓëÜ3u©e­Y|Ñ£àfrÇ1×qŸ€ZvV˜/Ó£óëYÿÇŒocÞãSdñÀŒ#„ñ(GÍn+ªË 9Ãz»2*9ÇŽ àv&œû¹³xßìù'©(6C‚•œgùý¾‘ïØ·š-M±òÕÒÎ4üM<*¥¶7ÔJqØðˆnsй2¦š‘Ð 'Äy^#±æ9>Z ?69vöÒй5@H®mƒ¡ÛÅ ûœ ã_J`zŒ4,Bˆ¼Pkê¢È†ËèRð‹'6úmÿïø»³n0Á™M·ò/’1™½äåΦ[¥3¾cKǶh½Ô/ÆÞ"@‡·”Ù-™'M®.šcëTÝEÕã6ãä×›ÞßÕkV²~”ª‡·&Á¿§:"ìðó‘¹7D„øKñß÷¤ÔÎ?X¢†ôniù™îD‹ñý²Ø’B?† 8r}/šRKí»ëÈLïÈÐÌò:§J£{:µâ†P~—j¤ÐÝè)GÐ{ȯúïîéH¿¯÷ ørÂ:„q Ëε,²ÁLµÛÌÒ…á6/i+ŒÚ›ø”d5×:MÌSÓǪàç]Ù»U G#Õ¤¸­‹Hò‚Î DÂJøçô+å.Ì)Qç(Öê¤^9c@4ƒ'…÷rðÑIÏ:f|,BÇûK>æyŠi;íðxºk{>…T<cV¸C¼Žð¬šK,åÁþfpQ鹂 í¶<íôÅÏ †Qº²R«ÝÑòZ†›XW€{íž6•òȃ.òãÒ$5FÂæÞc™y{~³TZ“|Z{¤6Gýˆ”û83D1(i'½t¦#Âûµ}”¢m¿ŠDci)_ p{8"ÏzÞëÑæëðy­ ò¾œ c7xÿ9Š××bÞGútn¡¶–ê!»WRtµõò!ÎxŒÿŽNi™'Ë“#iQä ÅÚLÎâFsŽï¤ î,b…Ž.Ýü J›£ ¦QðÿOía¬öÒKî¢Jk tlô0ÄCBfïš>}–¨ho?äŘQON  ¸Ï9Õ É ŸÿCÝ$9ŠHJ_ûûܽbmöÎ÷„Kÿ™í™ "ïünDCNŒÛÃ? öî†×þ|Ós‹”9ñ{ÀjRfÇ´yŽlg»pP [ tþ·^¦¤ï}˜¨yÆâi2ÔøQ‹~ü…æ8ú¡—oÏ'·Á’9æz2vgì!Ðæ¥…ÔÒ^.JjãóýVàŽ- ­bs¿ë\FŒ‡²ãŸÍÖø­€ ꥠ .òemÍðá`ŠÁÈ©­Ý9§²”0ÕHqÎ5•²wY±ÅÞ†Þþe @y]h_B ï.EŒI]$Å\wЉyÿ(w»H'ÍÆÙÆÀ‹¶Ì¼ºøŽ¡…gÔ…ðöë`| g«éKO–,Ð`‰x,æÒ¶¥—JeÉÇ?>ÎîTº!ûÿÍ'Ñû&1ÈÑA“[S÷š?Î n0—/þl(êÚ3W/V¶g6ê4Éb?zSü¯®•ÜŠgìoòoQœ¼{šîq;ùV“ÿw6úþÏC¸ðl÷e>øÝœ¿×¢Ñƒ.£û«Aì³Î½ÒÓí‚Fž‰‡'¹g,:{NN›nç¿#@òÂïŠnÇ?ŒÎZk6‰ è—µu¶¨…ZÈZË™'°&GZ•y_É|:u•¼Ë×L¦þ÷ào!7"gÊ©ô'C(Ÿœúnçðqf–é#ú>Ï[þ ²4ÐBØg¶¸¯mŒEõ`OÝî.ºŒ®5ú—6òºëŒ0ÙÂ-G¦ü`À*{.å÷,pL@RîI7Æ.Óvywüî‘h*ç@R  /Ãi%-£ 1 WfºÐåmôÇ7C¦}’-Š@Ó<§˜'@Áu½õy¾ó<¢.Ù›VRÐäö|:}B¾ÕÛe®r.KíaúÝüˆ®¹¦Ç~ùs|Ùª8 8©K¿“N<ÒÛj‹QïU<êúž‹*0œ´"½uñQh—S0ѯ÷Ѷ—Áῳw†!Ò5@(=óˆîˆšŠ¶0¼É7Hçï†Â{¥öˆq<œ¹¡=ó©íÚ¹‡PŸ]&¥8²Î[½XÖ•à7A‡á½Ëç>óÅí¢Z¼[«ÓÀ‹” ù¼Æp¶=ÀgqŒ%Zµ‘õ»ã»gDT÷&Kùò숤S ÅDš¤ôÆø¦öÍ~©¥‘B±îÅ—dO6tt|Ã{9"*½C]X½? ¶Ö&èìÑôLo+¦/á[óÑ4>Ùƒ¶ËÝŠñ¾ÁÏù뺪s2dÜ61ÈüûGVÔ–Ρ!»lÒBw¥ëÀ ûCœ˜•KÊåÃù…C êÅ’ØÀG€:Ù· 6àpæD“ÆÌQG×g¾¬ Îá”`@ÌÑã–ÌÑ<œ ¹>¼‘³{j!½ué8\ˆiÖ·craOz&½Õ”Ý÷/·@™óãŽrãñĈ«æÂhk>Ty˸Oø~„Ozqµ€Ô1”¬´‚`•yÀH¼¬Šo+­™žåf|@}Ù”høˆÑ¯ ŠuiÔ3¥³ÉŽ´3ÙjæºòÊ+u¸äÀÈ‘m16t®geŒVÓ\¥›1~²³ ®­ëqN9%m,±Û#aÇÒ¬¨ñçIAÇÇT¡ÌzÓÓ0ÈD)îäõ’¦AYøâR‘BȠȽŠotèA¸³·ˆWE*Œ¬À@B¼„8‚g IÕ0§wðoáÕvñÙ¤5nckA¯,…>F܇À+æýå…RÃ< Å×ÁËeíÞk’ñ0gaâ^=E,PÔÚ´öŒ·{`Ø\H›o%§P€Æ ýví!Ǽ‰@0ôq)/žÔ¡É[R¯¼'¦BY0»%³W”t ,áë£(<ËQóœJ^ î-F/vÀ*AÅÑ›gýkò?¦”¬»¼b.ó¾Z´ZCNÔÉË|hŒ åÉaüŸÞ‡QÈ@É GÚYÆû¢½ZX̸$ÄíÛÀ̵ö/¥¥n)Ÿº;Çw®Yè{{¥ ˆï#ÏáÎÈÒÑ ú÷®yN``ê¥Ej•_ä”3ª½‡=Cgži?¬Wj‡ùÃzwDw]}Ý'F½‹—ÌGP’;æAßöØŠ}ó<ƒÈ”s¬Ã^è†ÆpŒ}èåÍZcÏSm R`¼“=k6ÀMØ›s¶]7Ú"[=?Ï%mZO‹¬åÁvÞ±–^4M¢ýÞZÈ;L‘ÌQ¯-¾àý²–z¡–5úmtNÂ7Ö‹OÐ 9Íøp>èÞ;›—>áÔé‹8Š8+N1´ lPžÖ*ÒFÑ“mÕÄ”'‡®;¥:9Ð%‹ãYxº:ÝÈøîèÖˆ‰úб¡Å5çI6ìÃÕW_­¾ÉyK™´ŽA.8Gû†[ÖjíhÔ¾Ñ1<¦“©^ΟWTÄØ{ú&Yÿ‡çf9˜ë`Ð0M‘!™Þ;¢“õ÷žYë^õªWi=ZÛÊ—ºæ;ÅÉÁv³âáT¸½Øàe”ߌ( t¸oƒûè\öB`ç4`4ÔÅ Ö6`ß§gð)¾@ouÎ]Í™•ÇK›‘x …'2*~:ßÜå¾f\Ð ·7ž|YÓ_g5̰ð\ßm޶EûóÏ4ùxF;#Ž·Óšì8©½ãÎvnîí0|ÇùX‡³&×ü½:pT䛺ѪšTt¿G¯’—ö жv:à7úÝ¡kr–B×ÁÇô»&%½L=©can„çImFÿhJ-¹n½µÖè¸xÆ6ˆv¸tIvÖÒžoMt#š¥l0è ²Ûúãp¶Ãº«Cƒ_±µì|IŸøŽ3¶&<湜È"™ß¼‡®£œÚCV™æ]*Ö…mÉxÏïÙ""Òèuûµ±õ;æç<¡¿}oàÙÔäãöx4>¥_—Ó‘9–’ x€î©ÐØ”ðàÚÞ”ÙÎR;0!P02\öÄ Úí*^SóøŒ¥WØJqªÃò.Ý0 yŽ“ó8PÀx/ é¹ E¤ ѬÒ~*&ù°î^½ƒ¢˜;"äulRº••Œ¹«#Ù“ü¬ß‹ÿ šg´ÏÏÑAõ.` È@̱6kULlÏjtæŽ('å>ÂÞ tmü {ÑL乄tÌCèñxÚ‹:—îµ1ÏgS”å¸XË_b™§ÜDJ(P«3š‡—í gGHf¡T É)ãÁ{€ùõ§ÖÍ×NÏL…d ­U«ÂÈB ¿–c©O<x˜ƒ  ¦y–ÌaL\’hÏðŠyzïCA !ïÜ‹€pTPôëÎc xovëLxÛdÊaÁðf Þ]cÊZ>ïºîpFæâ±®)kÒèÐ胗 0˜l íÜ€”o=Ùé|ð zóNSk§h)¹^G•ï²oèðÞDQ»:?¯PŸã‹çœTcA¦‹$0d¼çC×¹^{âꀣÜÇ"øÓ¾-¥Û žfmÀÓ`€‰ü÷x¯9 xLŽ-=G#ÐÇÐØÀXFëÏg'·ô¶Ï¯#ýŒa6Xÿˆ\¢ô2õ ÜÒ7¼ÒcØ`©sbøyFè[YR©§ï3aTö†9²S¢°¿Ùdà?k²ò–¦g®hxç'8Åœÿ¦ ÿT“!èDʱ÷.ø î‚i8{ôÊH€q8œà ò¾îîA\‚<\ZKVOñš½…%Èíj|ÜzýèŒ8éY2±Ò;™H—å-bƒ>NÖË`ƒ„lûT5sÁ».… èŒ\“i¯Ð;„5Lȃ)Í)%UYÄÅ;1‚ᦩ( ÙNN:ŽõƽõÑYðŒç‰ÔöžÃ_y¡Ëûe5ñÎnªä°^Á@ Í “A5ïf\­h¶?\dcÑÀAsVè!vJ “ãO òf1R}ǹ÷D€"9¾Ã»5žbä!>gý*bFt Æ]Uœ·Gxê?~0@òÆšªð˜Jƒsxó“:]¯XÇÖÊøÈ!~‚Ì^ô÷h=¼[ËŠÀE]¢Ýµ.s<S<í„n„`>ckI1¼côÁk5—›:·gø˜¡ˆýýP̓ïñÚë²¥‰ÂÚÆGȤQ¥ÊÓÉ“Œž60Èr©×Álmã#ÕlJï°-s®";k- Û%ëÜ-¨tì?9š6ssúbHgð,g·æ˜Û{€È:Zds3ƒÙe QÊ1C!G¨²vcëRéá 9#õ@òTozÜÏÞWZ®‹Ls*Ù·U雞¢È²(;=æd—¨Dß)ryÑhjo“ý¤¾@ª¼ˆF´[í\ ˜Ögúþ›ÖÙ}Çø×~÷ä =áOßéÊ´ký'¤@Â*äv}¦92™ÕcÒûszRiFP›m sQ¾¿y·¹‹!Y7G„tïpöxK4ˆ³ À¡×exžcÒþ0>*Öc¸I§4#d%yàÙR˜Ñ: CHJ5>zXÀwá,xt£;ç蹞]Œ ãé±l{@ŠHˆk•ßQB’€öœG„7–uµŠ·€ÂäÒÀjG­ò1„YùsïSA<4ƒB¸ÌÔ”ŠšÓФ÷(f\1J<pgI ëI³âÝS—"`ÎøPXù` {:ÀµG´ÂfY¯àÓsQîãRJT&"ï.×:[É ŒÐ{ǯ‡ññɈ„l%úcÁœ•îœÉóðHJ¥Éçʘdìô¢@·†ññix&ŸmºuÝ¿ÝkÌEóšo,ÃÞóÒ•ÔÊs)âe4›«8Î^iÊbÕµ8{Ž!Æ®´Õj0õca½­IseÀjÌ jÉãé|G3YÄ(ZçD&ZÓXQïp§šÄù£}²l#DÔc€F›ôVOÞÇW”0%9¹™¨†‚ÎÝ¥³VÝ7kT驹 La„èš·ˆ°oê2Cïà;ö  E¡dZeè¢ù)£h"ûÑ7ÀÃJ> zXª~´È1²O-N¯¾ ‹ÖzïäÙ«Ò[Åhˆ.Ë ­tv_·m‡Ð!n‚£#êÿDã KgË© ySD{pk“"•œ^dÛô¾µÞ³©ÍèÑÝ]ÞÛæþF›[5&™~X‹~Û°Ë Z³¶ó\öA—HU"ÿÉiïiÏ30E[¾Ã@‹è(Ÿ»5á[Žg@·‚br@ê,@MïÙ+tGî ²šN$¯Õ…¨Óð<óè06Ô[öœŒh€%pr`“=Éø‘Å"šmïèDØÍÓ+d¿5ðÉþÀŸ‚y¢@ýÈÌ«ä-¹ˆ„Ñ¥¡çl`>²Ó™£µ˜t*½3øÎ,à/¿‘¦eú}£øÜžÅ³é g×½2,kÝd£(V•ñÞ ¿ ƒ¼G‡ÃwÐ4ùìCÃ÷=+?‡ÌðÛÞyÝçõÓÎõ’?ÃY-Hf‡~ôU “OA  p`›e3jÜ1E€øîH·¶îêÍCbóÓas …•³NCžï)×Ѭ»?”ò—aæ¨w¸öˆ<ÆKã,w§.1 )5Þ™€ò±žúl„òqÑûÀi •RóìE•  +^8kí=Ï»AíD%˜ÓÏ–•ç Á˜s©)9X¨óØ9Âÿò³wf±q]ef¦cc'8vœ4N\R;uZ”7a T ñ€¡Âˆý !Eâx@€H€Xb k¡,E„-t¬m–Æm;N2ıãfìéxìgà—>åÿuÎ\ñÜ;J‰¸ÒÑD“ñùÏù÷휫Ͻ'Òzá7±eGq¤ä.ô'@åiù@ËÍy*TsfØ×‹Mÿª×šƒC(üÈÙ‰’(41DN 8t§èö#g‚á{ Ž*ËHXá²-´‘Ö›%d™=è²<8ÿaÝSDŽÚ¢®BºH¹^‚-¡•8ÒÂ_ôË ÂW’’d¡ªû3i¿×ê6¡½è61²dÅ@×:'7Çß§Ïû}Ȧ©< ŽSXú–fÿú[Á›öÆ£oÄ9ù¼!?´oŠÝT‡ ¹z-Df˜÷…5èùçæÄo`Ošo ïAûça[Ã>ˆúÖIòy‹y[ÞýxÈiŒþÈ>~ïhغù\‰®Æºa{Dˆýgœ«FË:´Òð0IË·ÓA‘²IÈe ’Í'U«¡‚ÿ$¥¼=$r_„ }ºaОy°s"«øUçÓ³­´5 Ÿ‰>˜‚7Ñ2·}踬­X ÙûUhV]sw» Áë‹rdš®¨y{"2Ö™Ð}ßUÇyE‘õ Ïë‚ãÝ–"YX²i˜’%¢¬XÿÚ»Ê'Éî#ã? qS\ŸûQh— fÝÎÅB)u·‰Á·.Œ´èÈWù7A•d í ––‘üD $ü’å=²—`À®Wz÷îÝÒž`³¾Gªœ”k8QO †å½èõÍ®¢ù×Mué0W ƒÇLÌýXž+Âw+ìàDå^éXFq0›g 8Fpní@G³ÐSø:Y*—k-¯%L§2Ù³½øX ئ·w9º­B‹Å÷fîDO> >KSy@_ˆú4Îí & ’Ç›©ì§o¾+C»orUîd“Û°2ØÑàànpiuóʯ®bx >Ucë ø={¸áò5N˜Z†Ýœ#yû¢—ŒopøÁè™—&k‹Ô®óyæï°g_o…DAÝй®ïÇ@°eˆÓ‡ÐøRåùeœÌõ7 ÎZÍéœb_ |÷• PpR‰8 d´ä†{¥¤>’óõ¯[³Ž” Èqñß¹Æ{Þàpfî÷‚ª°sñÎìCd‡íà_"~iÛ’6JpU9ð,mޜ̷µž†¾.ot’ÉØnÏȵuÒr'{àÈM7ò]-83ð̯ÐÃå:Pž=¦q:Ü7!ÇR–È’ä'ê Òš½?Záç¶à~Â{˜ÇSë0%{:HäÞÁ'ÊÓÇ£Dfó FrÅ[ëà:ýžúB-9xm3ç h9¢ 6dTU¤%ÀX–[™jÁ™'(£‡þîÊç ox¿À»ÝQ!¾¯:âüt~Z§4HL!_–õÓnöW‚óy^Þlä×Ýóú|7Ïü#T Pî£*6¬{rkF_e‚ Ðð12%ý´'›œ9tÉSìéYÎÈxu{OüªQY½ >¸Ý½·>‘ÀžCæ:q¨[Û‹Òè0F{?ߟC§¾ŽjˆuÔÂôñ—EètÞ~ zM°Ç4°·ÀÓ}|Fé6ë¼ü“sr'ùnŠà¦^°z?¼UØË¿¶i“½ï^ÏÛ Y6À×Õ(‡¼å‘£èÁæº0:0wu™U‘5´GÉNLüåá±t;Å^›þ@»ýÈTÎø b[ñAЩÓà«— ºµQ~û!£ÞªQíë:§ú:ÕWµUØÑÕàJÛwƒº¹Åœ…öÃÛÓ¦»b/¼¾ ½§íh™<ƒ<þ‘ùݽñ]fýFÚ>Ñß úàˆ=ìG/\€v¢G·ƒ»а^›]2~G þêÖÀ,̱y[¾>lt^1Pnô<Êf†iOÚxÕ}Õ”È.!lA@&°±2°Nâ?K8=—Qª»`‚M0x«0ÇÙX` 3Æ 8Ipu§~Ñdé°îcÀÙÎúW{å7¦ÙyC­Ü– ·6I__þ¢//’›¶8€(‡ºn¼èÇ>¬}„øä ÏBcÀŒd Š0õ £ìR†q¯‘•;„ÁÁë€e»oi!“—ãÈ}鯔ꇶ“©@ Xfý³‘ëUÁ¬Ø~H9“ — È¡P9¬*p¸ ÉÂ)³×½ðMa™†®„‚™†?†w‰ãk k&ºÌ¨ü¢¼Nã^æì³YšÁ¢ ÎB»iÖ1 ìKàc°û¡?Ù~Gy¨óW0ÁîQæ8 /.¡¬sƒy7› ä6ö׿dv¥†|ͱÎSðÜ1x¼ÈžÆp îG™f-FkNÉÀy8ÇÑÐ^ö ž¨úÆr>5ƒv=Íïa/öež d 8´G€»ýµ>¡½ä¡ÇAð7jäùºú8{ÛAkSgt6~ƒ CÎA÷g¡×ô[27Nc–‹$]§°Œn?ƒ¡\ÖiÖ^†F?gO¯" íŠ× ¡z•~¿áí9&8îI|µY»â9fètæœÁÛ(8;… ¯D÷î„·pž}»I¨óêE4›}޵ô#;ñÛXW‘ƒàï¼sµÙ£ ¯6Éž$azôAFÌE CŒø->ÞD½ÆO<ùaÇLEþFaÿ7œGE?œ6oNûªh] ½gEsãÝEäw„Ï)~s̗݉Cm²I'@ÊaÓž@'Œ·ÖS‚fÓÈÕæÄ7 Bï ¾Ž+™Ñ9lçQ³Ÿc¯'€1Œï66;mçwÛ+Ì} \¥±;¬fDU­Ò}|ù¿ñíÞ³èµ'YS>$³©Zß±èNc¯IE÷èMBìu¦Lž  WQ09æ¨Ø Þˆc8“­vjæ*"ô—MFø20ž¯Y5À±Î&àô³o²b \l¥ºÐbÞ .×ÐJE |Ó‘^_&W¥º7¶\‡é¿F¹qÁ³åÍM³Ðàn¤oc/iç`ßY”ì3à«üNΑ|E¢‚._OÓÞö„ªµNxäôco«¸˜"3ö-ÖßèÁļ´†@¡ŸÏõàŒì¡ß™+ðÚ8xÌ`-|²Á•¡ÈeœÎ«ª½6á,°ïDf¸1„ É_cÝcÌ}‘ï˜_çÅÀl?Yçûnu¤g¾|âl*¾f‘ûªÓÍú{Œ±osàdkÃQãÏ~ÆÁÛœÍB“àtÅë÷Õv2ð7S8›í±« ~Òç<´ê‚ÖÝ1ª U§a‚„BÞsN¡ ð¶^ëRãé8»ì^ƒFÓ&{z•ï‹J§Hݶ §ð.ìAÚéñ%0öó5d%ƒ³¾™ï´kŽ™½‡,ÏÙÖç6d¨¼õ‚7‚7‹7ô xOS2ÀÝ40çMË_;xÚŠïÓ ¤æùç˜/<žH›} ZöGe'f«$k³>ðoÂËÉÉ0>H <õ`HÒ&‚7’P´Ž€œÊT ¸¨("~£ÕÞqèÖ®Ы­®ŽÎO0 ͧ“ðõ ÿçÛ9ä:lÆá^k·ÜŸ@Œ!Cåº}ÕßýÐm=pÕÎù6µÀž®{ã;öãéµNæ06v¥Òˆù 6±ãÆf“ɾa6hâWQÜ$ðŸWüêÇyö™W_;€àò3 ËÈáGþ.\¦²Ñ¢¯ô\… 1Vyý³¶÷ž¬Ÿô`CìðÈ8p¼Ò5 þ ˜WšÛ¡äú9¹µ`YW7ÊûäÝ#æYBX>Ov¿Øðy5I]‡ÃÄ%#ð%‹„îåÿã žÔ ÷ÎáÀà_B0ø}ΛŸA8*WßN!•2ôï`dݳß.j–CùÍVs´;±¬¥p;°Û¡_GdDÄBÁ.ûÈ8Ê(ƒÁkgò©°Š¦e³º 8í h gÞÀ)à´$|¨Â¨Ö¯KãÃjÒ^ÊÁäpáU~æÎ—“q/)Œ ?ÈÖV @hß`ØÀ#Ú¾°Þ[×*uâ­|­ä3·Š‡7hàí,4Y]‡Ý,:ÎQÈfW•¯mÁZ ÈlÓGØñOW÷Dû È >R²xC„[°ª~‹Oø7!¼´±£+½3‰>¾°£Tà¬Î Óß&×i›œÛÎNpÍ:ô ²ì'ìÀ:Ô7Áñm¶ò™MHX›íì+íËeóùÀÒí?íÝ;‹ÔP‡ñÉŒ:‚÷Û"Š »*(j#‚`)ÂØ"ŠZØY"~;ý ‚ Xvâ­²ñ‚(‚¼³îZ«ëºãð‡9²Énp†çiÒ2»y9ù¿oñ;·$3 éZ'¡2=—'¨ìÚûP÷º ¨N§Óß¾vŠ\ÃyB˜ßË^ G\©SN³;q݉m¶ò¾‘¸F0z”óy÷yˆÝ–Sì‚´sÖùJv•PÚçòœåèa¶a‚ìë´øîr•kõ…‚ƒ¡èÒâ@hþ:õ'I’d¢6í 0¨f$jÙ›/å˜d÷àCånÑ'úgC’$I²Q0+ecØAKÈV{›Áê.­k‘¡å¼$I’d¢hnÈÒ ·ÀðÅ Ÿ™9  I’$Y€(™Å`¡4Î6Ô¿ð$I’þùý~} †®}IEND®B`‚crossfire-1.70.0/test/templates/checkTextResult.xsl0000644000014500000120000002357311731300516017337 00000000000000 Automated test result stylesheet text/css checkReport.css error error.png failure failure.png success success.png
/.index.html
This test was run on
in seconds
The following tests have problems: #test_ errorTestLink #test_ failureTestLink
This test contains the following suites: #suite_ suiteLink
suite_
Results for suite :
testStatusFailure testStatusError testStatusSuccess testBox
Test
Failed Problems running Success

crossfire-1.70.0/test/templates/crossfire-logo-unit.png0000644000014500000120000033766111731300516020114 00000000000000‰PNG  IHDR Ñ4VÖI¿xIDATx^ìÝk¬\UðÿZkŸ¡P›–>¨©H1±iúE4øŠ‰4Bh?©`1„`M µŠ[„`y&Ö(ÕˆÁø¬(1"‰#)–ÚR,“Z˜Š­½wæì½\gÎ>÷ôÎÜÛØ÷ú¥ÿ¬uÎmn2ÿ³gî!œœsÎ9çÜ/¿þBf¾NDn*Š€¢ªi c‘±)AÀ" &°…Æ…û÷*)%Ä2"E›1>aû·æ-|øiLÀ9Æ Í9çœsÎýâ{ –ûzŽ…oªK†%„~$ÈpDÀ ¦á[Úò‘b£%-µýñ7^ºòÉí/~f.N*Î ˆsÎ9眗)V3óB!sú'¹x žx4‘ àÀ âñ§T¥Ù”Úâaéï©´½ŒÓìúB›?|ùùKgáäༀ8çœsÎùÉ€Û˜ùæ~ñhÊG5;ƒå#Ï “•þÎcå#6壴Ĕg¼_`÷ßôÌÒ2çNHÎ9çœsŽˆ.b¦›C¨ GQLþ b iËGP•ö£W•Ø|䪌6sùˆy/sª½×¿÷QU½À*œ¸œçœsÎ9'"«%pU8rŠ\8L] íA*¥242bADcÄÍ5!hThª’ú±]“…~—]•ÛËëÿðó%÷œwñ¯vàÄã¼€8çœsι_?ò±Ë‰ha(¤) mùà½@ü+bAìD TÇ~ ÈòB\€‹¹PšŽ‘ËG‰Xöçi±WX‰ÃÍy9˜g¹+èY-Î×”w­sÛúþ¾P4çœsÎ9'"sEø”¦€„~¤.ú&@% €0DÅ$Ò¤ˆÝ¬H:±—šÓ»o3Ƴ`œ 8üðL²hž µpNjûõh÷{Î^Þ|Å9çœsÎu:Ì<ð%sºšFó±‡à(ÆÑˆ”v#–bl–6#Ê^‰”Žçd‹e&w)p•eJ @N>‚E,4|"²Ò’_cà¢-Àf pÎ9çœ[¿fÁ4"ºB FѼë‚MK§@¨f¨véß—úA{»ⱟàŠ–\@‚ tªÉ`ž‹TvãT1Œ0 Â~)!%Aì†XªÍØ”±‡Vœ#A í_XËjÚy†¶| åTØiûc ¬Û üG‘sÍ;9ÌŒ#Ë9çÜÚ/Î;™§Kà‹Ex‰M„À› ÂPù°½š9!ÿ,Ÿ ŒZ^µÔ×Aî•"¼F„?Ïyÿº×pÛøäÒK8ð#!È©ý××±ä2Œ ÛÛ˜F¡P ®-%¨©dôFŠ~Ê^Bì¶å£Š&ýæ’k^¸Î ް³Ó¬KÀ˜1X@:D(,ÁUDK²(€ØžüýÍæVmÞÂ;䜪‚ˆêÿª&jCqØ9眻ó†3æ°Ð%"´LD>"§‡‚Q—éÏ\>ò,,õ cåCÀ×^K0˜èÚFDÛXøAýsÆ{ø7Ž3[ž½ô÷R„¶' )ÌEÝôzån$-11:à}M@9J(÷º–²‘Úò‘ÿoÚ¥ÐEŸºvãN8/ 8JæVàYKA¹„U˜ë!À¤„2FÄj8!àiËZOü P¼MΩ*©!¢*û+ Œ«‘Q3OKëIÉ_^ú,1“…W°ð¢qŒÊ»ù ‘Θ÷€â8áœs«WÌf&ºŽ…®áÅ!äÒÑ .!’wA1pÚQLþÜ‹ú:O 1Mô¾ßð&nOªoN÷ýŠãÀ¶ç/_FÂ? A¨)Y"’_ ѵ2Zî¦xHïU«Ö)G£»“MK7—›mù°$½ûÂ/~Æ9ÂQtv]B~f™©M!BG3:8%¨%ZÚò1ô…öܽxoƒs)%ÐIjòµUå*¨ õ>Q‰høÔÄü¿KÈ믜JDŸcáó-Ë-`¶äâ(" ñÃ,´ÀÚigܧ8†9çÜׯ}£0n¡9Á–PÈø*…ä9T<†ËÇð‰Gž,Ü” Û©Þ›ÉlPUĘŠe¹uöüo?ˆãÀ/^õU r{(Ú×HÒ,EB·Ü‹ÑîRLu±8àiˆBcB9Zbô?=ôFÊúÄ£-Õl¿÷‘’>eåc 2玢×ßÍ–ø‘en@ª”ÀzÌè-dQU(ÐOÌÉÎU`ýbà.Û lásމ¨FUãßõhÊ ˆˆª'*0Zk~§šdïÄ+¿ýôBZÄ"+Uõ},|&3C„Aû+TÕ~u~m7îÚñùo¤¤fžùÐ?pRpëïXðžÏÂkŠB¦¶Ÿ‘¯fq‡Íí_þÌS8Šœ»õêY³ˆ°L˜n³y–M©O9ª¹ï ˆä4'Eè„:EáT©‹HHþ¹X§e\ùhKG;›ò‘ê7Fo°=í|õš/¥˜^ˆe¼÷½çüà9£$È–Ä«Ǘ¶T»`Ja FFº(c„ªN^>ý‚Ñýï^ôö–mùèÆæ¯^í[>6¸-ç@8Ì>©À-³öý(VÇr ‚*Æf“ Ú,zǘí <ÊÀw7ÙŽ“–û{ç&Uqåñó¨{»{†Þˆƒ3€øX"êê'*A#‚#‰ŒŸÉúˆkÔݸ«Ä°Q—(šD£@2 à+ŠÙñ"AW”P4.‚ ÈkzºûÞ=÷VuÕí™ùd× 0˜>òÿιEÏ|S8ÝU¿:çÜki¯ÆÎJ°È¼–ÌpÞÀ†Š¼XˆB$d`C™8Ÿ‘$d tùþyQ˾“jùïÇDo¯íÇÌõñ¢ËÅÅSg>ð3àÃ]›› >Å‹RãËd‘¸§P(Ìë³ÿ¬rmîT÷¿­uD8‹õŽËT4|hù^ñ”x»ÄW¥Òþ ˆø_‡üm¾`6ûG‡¤ñ­QŠù?š{¬Æ^ôSþý‡Ÿüت/`Su!ÆÛ”"*-aâëåúµs¯[¹ö°ýÓ¹ÝjPX™ Æ*Fˆeaƒ]ì±ó$îTÕ *R>x* ÕHwÍ™CL³Ñ¶aqñ5G1‹­t¶ÃÄZ>D…‚ùì/ òAä7 „,?_6ßs<æ×@³W^Ȉx~ƒûçˆlæW›47ç +*’ââ°[w€4A^^ëࣤçãµg`šd?>Žce•Ä©À0q E©bSºB„”OÄ"0Y’P+~³ä ˆ„ !À‡â&€[ú·Û¨^.«2f²¸ŽÁD S†k› |x†qs"0߈L¦ƒÙ _dáxÀ\öYTHü,øY ìKž<%ÃD1ÝŽD™©3ëÅV‹ÙÆD¥°hãÖ'x áC CH r òÓ|>ÿ`Ýaoƒfç^å3bÚS#(‚쌇³P¶6õãkjV0Óxb:'²¢J³ÙÔ›mS†âû^ë:y?ŽgK¼ÂO{·1svßCÌÂ^l?»eP•çñßÑÕÊãqEðò |ù)ñ:þPüÃ^Ê»~ÿ£m†½Ø®ÿV·¦ˆàJñçˆöÓ›w ¶|É‹¼zLÆfLúΛ‹`Ø5ßìŠ0/a‚ãYø°råWÿÿòÓ 8´ Õ½j=Á ó†øÙ»ŸPB´ék J‰Í,‚. #ǨäZ¼’ò9ú'ùû{esþúГס~‡6®¹¨?2>†H%áC`ÁÎ!ŸEa« æšš<²’ùÈZø°eW>²l'ták‹ ÃZYeq™«B€[£˜ŒüBDi‘G¦¾½HNñ)n 3!Æ NŒ#€Ç’¿M)ˆS(*sM"Lö}´(S̛צEª˜Ñ¸9Šþê†KŸÿùyæCf½`±E±bs­Ðób> ˜Ñ4;š²‘22·†ÔcL“ˆé RØ ûz2ãÄT„ `b—j'‰™À, ±íb©ÖÊ"rûÀ¡³o‡b“ÇUb‚Ëá)kñþQtÇM³>i€²Yýû}†3ãq¬¨?Mæä¦- ž'RN¾²uñNœôÏŠ_„„kz ˜ù Ø‹lÖMº âe¬è_”b,Îßd>Ä› PÑ;›ßÿÈ_ž¶—1%„+á—9ÞÈc"ãQrר8ö4˜n“yŸ4vÊ’ö€L$„9̼ìœd>a¨1°fŽì– s’¹µÕó¯#[e¾c>žƒ½ÄÊ*Ht)Ö©()[Žå‰g!:)‡ö:Ž%Öhî˜õЫåÒ¬/œ¶lÙ/ÕÕÕ-›ÊãñíÛ·G>¬ªª²½‰r+4`ù`õêÕÍóæÍãÉ“'“ù~y}Úd@Ò÷~¥×†Þ>S.F(T3‡º‰‘@jok•Y„јƒ ¥ì†Ð@‡w°Q*v5ËäÊ®,x„‘§V1YÁ0€Pd#xˆã@H£è*™oÃ!ÇÏÛ {ÀÎ>µsODx” ö3žBð!ö"ËJü†R4áê¯[Óî'…ïOK#„b*1‚Ø«{Ýù6t »å¢ûEeLøVTÁŠ3*Q^Þ†äíHý–w2ö¸5„$kä s¢O‘¨gVïû“ÅÐAíÞëëÑÙÌx™RTc Â€‡ö:60Ç.dÆæ²Ïwõ8ó°—Ø5çtOßeÂÁŠ1åµ™E(ÏÀ¦ù÷ÙžJû—Qà _ûÃ&Ø öÝov=+”ײìÊøTƇ¾õ½áÀ¡ûƒ—Rí°…Ù)º˜ìˆ†’}ðé@#Y†å®M„ø¼Qôyš¿=ß\X!ÏÁ˜ ílo,—BĉH8]ÔKbšCZQ£€ÄÅÿâ°/?ößvÝ\wY_qÓ>&É<ØetD ÈD ãÌGv«†}§+[våà#žø˜!·Ú}ö +« BjÄý^4¤!d $…ƒˆ¯ „°H|I6$p0bÖQb³“\Aˆ\ýNâͯ¼eÛëµuëVܱc,\¸0œ4iRèû>!b¸iÓ¦ð¹çžÃ 6À™gžVTT@: €æÃÚ“8ûòË/‡ U'NÌ<8OD¡éå@SRUýôœïõ}ýÅG ?cXð}“™ ÄP|à$³ÈˆƒÏB‡‘rðaƨfI"6¥aQ€ºMªTÿ E€ Bî$O{­ ôZ ä Ñ¢ÇóôG»>~É„#½"to¯Í‰®çñ2Ïç¯\2}m»Ô]²zjwDˆW#ád‰[†ï ¨Í‘øþõ3WÀ²ÏïžA„£˜`†"ªaÆî4›’'ÜÉÍeðmº tXi>lFÍ5®â:D\+ñOB€'«zݹö°ÝqeßJ$<†˜nVŠº‰ê-|¹lG<ïTª­¬‡§çéÆeblD¢óº×ßûè vù¤šƒ˜à&vÆs…] ažàYè0À¡½³›ëH´Ü÷ÕÈónxw=|NÛ°j*Šë"áh‘kX5M¨ e‘>™ÐgЬ—`7šœ÷aÂë˜`€"=n}ò)r¡Ölq+B®‡²ut‘ñd7¢2,ø wÞy'9r$ÔÕÕa§NBD„õëׇ °víÚðæ›oÆl6‹A¸Ï>û3w2Œ 2¶eΜ9•<ðO™2eë¸qã<ùz\üâb^·rVÿy陋ƒ}?Gd¹|˜ àûº^€åZY(áxç¯=e7x@´’±Ý/"Þ!{È:pçïæPa›+hPøhn‚\v‡,,Ù2lsÁxHôi×=ù?~ÖK«w|dÄ=£uðaåʯ¼$|¨óy3tö5o¯ûœr ÌvÖð˜M³ð~,À6f¿CZ²›jäÇÂ|EÈÊžn—n,Ýé¶m,nÝëm.•‰“°aÀ˜=ÃÄØ2óáž“P„[’"^ב¿Ï³n„Ýd?¼¬7#ÂBfn›ªEž¯½™·ñ)™ÚÏ@E÷JHw®IB!ÛMFœ…l™ýyžï”2¼¹{>¾V}2ÌWŒžbˆ!Ýe="¯a4™c&8hèЩªzõë ×5ª?¯?‚Ñ’ß‘„‡o·"áôú¡ojç>•aˆð8T¹R1'Œ=jzU·EB "þlÌnÛM[·‰7 Ú%w„ß>‚ÐBH<+")÷ìÁ”¾Ž¼b× ˆŒ@“"-6cDúg*–‰…Æ ŒÄðSø“üý¨#NYØ*KñÞò³ÉËÞvÙ.›c|ÎÂÇ:›Ñ'~kñŸA¬áÄg˜ùøÒF²^™\$ÑÅÝêî¹ÚÑ^üõð㬾‚ñÀl™ÙÏgŒ™úú^SAóæ¢Ó» âµ¶×Mdž ³¨ÇÀ™O–¤4 ÒIÜ¢`(&zA<ãØfD,ˆØ’,,Ýj™7£ëÉkïž°n³"ZbM¨ãÛůXðsè`V–kïÕ«L›6† ‚õõõЯ_?ìGHD‘0—Ë…¯¼ò ¾ùæ›pî¹çb”-Ù¶m§Óiª¬¬D1%àAž>øàƒ¦áÇ«1cÆÓ§O‡ûî¾O}´zf]5orû¤ÒiQ”ŸÒ M…LZ1Cä)ˆ7ÈÄzI™7}JIl7z"ŸÓ)`öì‰käÙx•Ê)0‚dÀö\quOH¾Yš eáܾrMM/fEDâMìêœ%^%c7¾àµ¡íë§tžF·y S¥ðáâÚºÞ²iZoO·•{Ò½Üó½SÇO[úümý»SúÂ|D<„Ém¶|عC>.¥°'€[dA1èïçî²^ˆ<«æ«Dx•"8B1²G‰]¯Õé¶c›Ýð”½Å¬•Š2)Ræœly ¶àƒ|¸ÌGX]=| ~ƒlZnp»oà³wIÆìæ©=j‰p23^ÇŠSªJmSµ.»Š¡ÃƒÊÊ Tvï™n®¨fvD™C˜k‚ˆÀ@Z³0Zy¯9ŸÚ­ß=«a7Û” ]ÆÁUŠðH‘*‡²À^Rrǵ÷…ÎÕ•pÀ—•ìÉ?ý¤6¾ó}²Pj²bfã8ËÌ7JÉËÚé](nëì (NÂ4ÂÑ£‚Úýû¶<ì* bÉAv{lûx#l_¿š>š]Cw Ñq(žÐÌ;;ÏŠŒ×1±‘b£" Aˆ í G‚b U!´n¡çQcŸ-ɯYöZùšùDC‚ÇÈfþaÔyKžÚðQ#®wðAâŸODɃ‘®­©½ûVø+í¥y#ª „_ 4~Yæ¨ hé¹A s¢¼¯K ]Äž|àè:f:É÷½ŒòÔ-‰[Œ£òUÊÄö ‰˜òH”'²ŸóOHü´@Ö_ºô¹kÁ߀8ÕœÜ(JBˆ‹¨ˆ°ˆ "4€Ú[)˜Œˆ\Û¬Hp>/ZiˆmºŒ­ yʶÇÄÌñFGJ¤àÙ;8;ª²ÿÿÎÌ­Û7›Þ+¤“@Bè½÷^¤)‚ RE°ñ¢¯Šµ ‚‚ ‘.H—Þ „4Bz/ÛÛ­3sþ¿Ï9ç33÷Þ Ùì& üߟ™¹³7{væÎ=ßó4‚ƒ`Þ‡üêW¿*.¿ür0À•NA‘+V¬½¨­­= t‡`^ˆÅ\+Û̉>òÈ#öÀqÕUW‰çªŸÇ+¯¼’ç¶õØcOfÖ¼û.cã¾h,6^ßK’€Wãv›€ÃªÉ»Îõp]ù¼«à6¡D‡Ky~ƒMáI•. u ¡²¹,;˜ ƒèj|ìKÒs‘ÏeíhGº½6ƒ|Þ‡‚I5y"žëyò#êÇ]6ovïᣂI¯âÇ[”Ŷâù˜2sö:l&Wcñ{ 5|è‰v0ÙŒªîû\±=éðó^_³MøXö¥ïAˆÏ68™è >8Æ Œ‚Öñ·=món!ô)¾vù´CŸhÃ’«?WË$jœe Ü`["¡A¬¸4©Ý|˜ÕÿÂpšUÙd±²$’•HT”C:Ž‚P –ñØy”µŠà£´Ù/\A½“ ò[2Øa^¢ï^ÔwÛÂ9/Ô‡E£!¯GAèUßQQS…þC b`?ðÞ0¥ï„áyzèKÏ…yKÐe¼!€ qõ¯¼öw›x÷Nͺðä*[ ¹? OL&l$©…^‚JWÀŽˆ){OAUm¥š¬B¢D\!‘I§ÞÔ†\&¥ÆìÈã+ C AYñp…¿¸þ>0ðá?ç¹M<ãÌÎ5ÿ#л‡Œ¿kÉg@J=!?•ÀuðDkÌìæ˜›ÖW“¨N z?H ©AÃW7¤à[к]Ôpõ€Nš—©/JàŸÈHÖà“’ÿA÷´¸þúë1zôèÈ[o½%¡ÄýÜç>'x ••• *vžæƒà¡‡éÙzt![>ºx‚âç°p4ƒÿ+]í—f’QÖɦ ˜ªñ„ø@â'Þífó_™uâ è…\yvM\±‹%ðmaÆëad›ð¡Ãü4|(ï["C’ÐQVW‡8¡C%YÇã*–\BBºà¹B’žÚJáCO‹á#Ø.­TO¹ˆpþòÌcžkíÅŠy‚Ä>ªTëhB~à ó½aç'AÐ*«(ÃÀ‘CÑgÐ^BvçÃàÀ’Táù±5|H|Õ\ÿUßç¸=o—=HaËNª".²…ø. € ÎÃb¡ª®U5•˜´ç$ 6²Ï '›Eºµn&!¤Z„»øž0ë‡<~;'|Û=ùüß‹ûFiþdY8/RÔÙ|¡ißcöUðø©B‡ì}R»GÍ¥ÓÈu¤°aÙ¤;SÈfrJ5|?ìʦFmZB´÷ÃÀF@l½O àƒaÙês//Sá`íMÆ{Të’}Oµžàp%¡åg|Í À:P¸Pž÷L;á´>`<ïqÿH>ÿÑK™óôqrL_ægø÷^4èroë°!à0¶ÀC›—×JÏû Wð=tSÞ}êȾRz$¬ÊqWxÆóC”W– K=X·ˆ¾vúU ?QùÛOÇWÌö#}Ï»ƒüÜ6Âg!€DËcÛPØž_áQÇŠïÈ*Çqîw²ÎoÆíyÿšÿod$0æ9êS3vØb¬yM‡cƒˆa¬U˜ó¡!¤H½ŒPà™óP%”zêýxZOF\ì4ù?±ˆìT‹ë”SNIÞyçÞ‹/¾˜cø•sâ‰'bâĉØu×]%áB.pê©§‚À"î»ï>‹áYQ×usC¢BK@Ò4̬Zµ*÷¯ý+IïHnæŒ=ϼòhr¨œxGÓê›!<E"Y®>ÀŽ“Ãбð˴IÐ Òun‚%Ü £®  <ªm÷cXdxVñÉ'FdÈ:ÔöMжb)Ú;Sp\ó Á‡'}w4÷å½Ü>ïŒky覜qt…m[8ÃâÞ ºãÁ°çc×ÉcqÔ™G±˜À‚7ßÅÚeËý GqAs¹è\ÂÉáìjÝ#›>¼È×2.¢c¾]Ç´à!Plå:‘Mµ"¯@$€Z•ŒêPݼs_.“;ç sÞôzgÕšï[L47I¹„bχ‚fr¾U5þˆÉñ('„ô¿«šŒ'úÔ" áÁ4^C‰„t5ˆ‡*©º¼tvU\~Ô àCgài}@u7[ϼæÙð Q%Ïï'lve4 ÜWãVó±ø`<ô_âþØoäïäÇϳG ñ9þËxþáÂAian{>g©ç/s±ì_éœ^®ûOßCæ°Ž#¬_E˜8˜p€GÜlS£~•¿ÀFb¦°H<,³oz½^þÐwœ£·œsW.›û¡ÕÙýˆ§>ÛbB±n–ÀÕá®qÑP>ˆܨñ„ø@|ˆ Кm1ˆP |h[¬0çVÒÒPl¿KósBÈNªòý>¾öµ¯ &ˆƒaWbß}÷­`å+ùÞ{ïe>ø`ç¼óÎÃØ±cé (,Ç ‚ fÏžm]|ñÅö™gž]³fM‚a8–ÕÖÖ&YíÊnllŒî²Ë.Ά \²xú©§’Gqtúå/;¯ºÜýa|ÆK¬ñ<à¤3¿ºHv>F§lKLˆùð¡mÌl×ÖV`·½¦bæ{bk²lþ¬[º4ð|„û:Ä•]À Ô1öp݆EîMv½RXâ¬ÐÊOiÂ9,H£¥"jfê&L-ӎΖÍÊKdÂh |ö_<ö+ÆF?ßaÅ\iª™IfÑ ‡C¸§Cà xT4†Œ#†Ã…)¿\Ä®¢X+ü'#ô$9HSÂÙuòd6p¾ŒSºñÏ=þÀϽѱU’öBü›Ã+7‰÷ˆ„\ðUVY†á»ŽÅ˜Év¬ H5vÈpÕ8' >|u¸ï>O¹yÖñÏ?Ñ;©zȲpŠŽâ$ó çCAÂ艣0eÖ†™õëÁ£A–ìI×trà ¸¹?¡ŠAŽTÞ¹žÛdyêflCnº´ßc–Àñ : Dsê÷?èÄCÔ±mzmvlÈ^€ŒìÑÄk͇+tè›_a.J…|Ғ÷h2®<˜ÜÖà‹Á²#TŽOºhÝØ€–MõpÂa´@FNs±ôäMÁ"BaX)òý*Q5´6¢plY¼ —¯ï >Ô¶N¤ß 'à'= 8λ(†Ûxv­˜  æo£Šðs¦[½ï­¿¶ÿ˜?ü[‘¹Ï;^zòËû•^ÞÿìBCˆxz$Pݯ ¹œƒ–ú6=? àÇGjžzèáŸk§5`üÃwGŸM`¸Žð1Ýä·èˆ!N«Á#¦ŽG} JŒÛ‘ lͲŒµƒF“æs„ç <üêX>GÍæ¿C ýÝÞ'¿¸ù3 #€ƒh^„‘0„D̶0*©¶Q òC4ŒPK½"7q+È‘Åb¶%'| ”d²4?¦ÞCYŠ)ÿ×ï¿ÿýïÅM7Ý„Y³fáÀL²<®GEŽPá]yå•‚aPÈår‚ÇÃZ²d î½÷^›!WqVµŠ.]º4¹lÙ²HuuudýúõrÒ¤IÙ¡C‡züG™|Ù}÷ÝÛïúûïÉú'>Ÿí¬gœ³LD¢q@Xˆ¨Dp¶ ìºûtŒ2^UÏÉçõ÷\WMÇA*V³d2†òŠ$x¤tÕùÂÒˆP°ô„vËS?­U½R¼‘:,kÕü¹hذ^»¦Káj2t/'ý¿9ñËï¿ñ1ð1Jü“ð1¥°¿‡Ù¦ö©«Â‰çŸˆþƒûì0=éaíGK°iåò®›ÊQ¹ÿ>K­þ‚õßX¶]MÈ'ðA•" ‰8 ”û¨(„d:[jÝ‚T[ AÄ1ÞFŒW¤ƒ@v.+¥ü³›aW üÚø2a#âO6ý¢v×eUyœáU0l(ÆMK‹î`H50"]xn–cÖáhD Õ mçœ"Qú$õü#.z¯#ןߧJk[¸@Ví—^6^ ‰žE誡Çc4»cA,‘ØÁŸ©=˜.Ç›K!ŸÓeWݼÀ’sxN>Å1¿Gù•çx°JP·c¨Ï;¡r/[ˆËtxR¡Œœ@©%èí‰Ý÷ŸŽ>ýjUµ<¹#'ÕR/šp@Æ&©%ðQz·‘z«ã¸‹FNý[—÷þ/ëןæ Ç Û€´Meè Ï÷Â0z•µÈÞ€ÃN‚¹Sú@H ~ÐVÀ+ü'à¹j‡×YO"aDˆÀqá¡yMš6ÔûiéHÄ£qôÛï6ÛŽ|‰Ð <fµŸ*ò@ù€ T®BTDõ;šÉýº×`í’u[åÅÊ1üó{Ç]òÞMÛ_BüŠ‘ ú1¸­Š#X1XÁ³XHÁ]B(è àÃõ=°YŽñ;C'ü¥ˆæ¿xœ-%Nô<ïïÈÒäzÏ/MÏ´mÔªÅðICpÌe1·´•ÂG»ÓF{Êg¿²Ã1þþ;£¾Mк‘`ÓeÅ©±Àë7(UKĨª¡´©,i Îö?ÏBA•Æh5¡„jzÁäòoæ2ùïrÁÛO}fd$PãK`?ª«('ÄB –Ñâ"„.óEDH¡U'sëÚÛ¥ù#@aU-mWÐ|Ø·ýЫêšrœzái >º[}fýò¥èظ–©ðdÊ Tó±ŠV‚°«`Å ‘ô—îVýž•`ÚºþC´ÖÓ¢Æfòʇp=ÙäzÞE']¾à‘må|ÐÜ` ÜPßo†¨6 J•öé_‡ñ»OC²¼ Uô|@öYåv7Að<åPI˹t­*ãlÆ_Òš:¦^>îzòóÇ^:· ]Èuçõ©wØÎ Âñ,UºR_“fNå¤u$½;y…ÛS¥«ós¦ÓTŒË;…+„EÞ0)+Ç[K ]â¸Þ¯NºbÁ"lEÎ?¡òX!p᢯Ÿ¾ÂÒþƒúàÀã÷Æ áÊÛ»SÆ-e¸é…CõŒGTa& ~îO±'Ì£}ÍÑ%¼Åí—¦ôX3(?½¼ÿ¡‚-;¸•—Åqòëþ]»S Eî`¯Šüt*rÁEãÊz4¬m€«¼Y1ÂGõØZÄí¸ºN]ÁGÌŽ¢bD’IDD¢‹gíª«±úÃuÅ𔘷­!âæ/>÷u[‘ÙO=H0|çíK­Ê>ž&Mkøˆ ?AÆ&ò@ÚVä3â¸ß¢½yÌ÷É/Ÿ0VzòKÇu]”¦5Þ"Ž3YU†QSG ²Îo~©žûó^ûžVp|f¼’‚Âõ´—ª_šq³Íè¥üö[ÃGøÿL¸Û‹Ï¿®àCÙD,Ždy‰ªåq‚G¶Z¤*Ê;5¶ä€'tøZÎUszqlpÛ,®øÈ† $ÏÿwÜ·×»€ÏòUŸ-12¸×Ζa/H€Ø(;üZIõ¬ WÄTÒÒîä"¯R[ãù¬ AˆãyÚ>P)øÐî¤Þ<pÐM™ $i”Èÿɸqãs8”„­åË—KÂ…œ0aXV„p_5$ˆX̉<¢L40\+J@‰°d¯ÅDóäO<á.X° ý°ÃkŸ1c†› l\5·îß}áÇÉͨ©íR“éåÔäµ¢ª ³;Õµ2¢r¹|ÖxAlð Ré Ú ’ÛµœLWTÄaÃÏ)Åÿ ‘ÐÜ=ƒ‡/ªñÖ¼W_Fý† jŒ >LÅ!–Õ‰ÅÙ‡žÿÆÓ!øhàcJjrI‹Êª$ÎüÒ™>º/µiÅGH5nˆ¾#z›º5øàq; X @Paw«Þ˜¤fœ<ÍCæ-fZ0Éú­Žë= !®`lt¦ øˆà,ý g`MˆUq“AK5ÏÁÿÝöݳ”*ëþíß/Ø7Âãßãþ~QŽK¿4 ?ýá1Û ²‹^2ÙÎvå ʤRú‹‰Ñõª¢¶^¾ñ´Ãû,c™A ÷>. ýë’UÙÓwÛ%ašPrÜEÕ®ú ꇉ3&bðèa½†ª[û6®¸lªê~ˆ¶Æo)–êª8‹^Ôâ€ýGà çï†!âHw´#Ó‘B6ÑãVš‡«m]AánË6Çó"¸åÌk¥ àãÄÊÃ-ˆûl }B!V&çúïÀ±Ï:d7ŒŸ6FU¶ú¤Â‹‘ÆXRù,œ Tê Ë»¯Ðnã³ã‰×_\ÂPHA>|ÐbÜ”‘ªáà§çÑ{Ûÿ¾4½áC™[–nDÓÚF±hÕ£k”„ Qœó¡á#GÍØ$e°¶1†Eo/ÁºeëáÉ"ø(,%|õ÷{ö‚Û|ô„PþìnaoŸÙ!øˆ!’Œ)øøXÈ–Rç)yh¥a¡ç3ùERÊxÎà‚ò´áró€@Ýþ½û.…Í ŽqÕ ÞXˆTk,aqÜ……hMÞŽx’y+§N;≠z(¿ùæð1û“]L˜­ » Íã´e‰8ŸYu(T©ZŽ  ãã¦RŠ.sÁré Òª¯MŠà•ó¡ÃÉúð'x¾-q]yô‰—Ï_ùYXå„>ÞAÀ j‘—¤@‚ã>(ÆRK=#Fd '$"yÚ|àQ*»-à–9ÀœnÈÓ4—,V£@þO?üp*Ä÷¾÷=Á.å‚ é‘Á W`˜–*µË¼ñ»ßýÎbXV’ÉçÉ×^{-AOˆd®Hd·Ýv‹,ÊV®\™gõzDâ6Éà7Þ“¯Þÿ…+’qç’¼“GYE•)]*8ˆ—Uà€ãNâªsý°—ê¸ò€d²ŽÊûB²¡D¢ªª åeƒ¤ž¿zh¾Ä•ׄb&s9ÀË©fƒ–×®ek›âÞCŠÜΟPc~çÙçдe‹Î¯ •Œ¤¥ÒZVžÇÚÿ¬—_ | Õ9˜ì'™G`:›ëýi³&aæ3LØU÷W+Ãù*Ö"ÓÙ¬¢%ð»2Ý„ã€å{=¶òòž‹#BÁ£>h¥ù’¯|Ž>õŠùÉUg×þԸζ¡€, !aoGØ 2n·]j5åUzzà¡ÀËÏ_ŒÊ>ÿ‹ö¦ï@‹äþ÷¾vcÁ±Ý¦Äk/]Ük¸•ž« 4ÕѶu[ɦÂ^SC?<'tz/Ò}ÚU ³!ïÇ“?ûkÓÑFÆpöU¡°« ÁâÔ½&©ž*ÜJöÂ>þ¼öÆZj_'¨ýÄ·E¢6~UÅŠgÒitlnEGc3²¹¬.]sBÞ0¸|õ¨”7„Àѧ_ýA›É÷8ÈÒ9Q ?ߣ( oøèØ}¿‰;iÄ'0!—[ŸVKhÈÈ뉈òr”äÿ'5;f—3÷½ ó¹Üù¶ß÷ƒ–:óé £†O_ÄöÃ…ÄN±]¯§29¬{mÒ^žÐAøSCÀ0ðÀ¢q¾Vÿ}Y<Ñ-€ô‚¬Æš%+‘Ëd|øð5èÜþÕ=Oþ÷Íðñ/åùxНíVnôÇŠ&âˆ&ËÔv7ãLñ„òÙŒS!ˆðõA+¸ÕëÚš{8šHbÂ>{ QQV %ãoÞÒ„Þž[ …e“Ÿ|îO=ä±<¶Sn½~èåül\M£àÃx> x(›ŒFÑwè@TQ“•Iذí‘R*èHu´£cÝZµ°J¿ÈäÏtZ Úe=¼,Dó›Ï€ ,ø<õ ‰çv©†£±"8±Š$ !öŠ”I8L‹¨Ôá~>P=íÔÚBs•îøX"¬‰6pü\`9|ù?aCAÁnç WÚ>}º¤7ÜC<óÌ3*ïƒáX‚Á$tû'?ùI’@Rö—¿ü¥’­o¼1³hÑ¢ØsÏ=WÆ\{}¤*•„Ü}ËÅ{nZýÆ«*âqOºÈ{Uºo€åaôž{cÊä©*ÙËóò*òêÈç-BG®«û€YBI"E2i#bËGáéúl'¤› øB*H1±šªIr;ˆ¶.òSH¬ÔòÞ‹¯ eKƒó¦!!0ü×wÍ>‹ö×QÛ*ò|Pyì cöÆ>‡í©¡¿—Zyδµ —êP Xv„\E"Ô8·u®DÏ—¤ë¢µ¡‹ÞxÙt6€)i|èªTûE‚Ä™G}ñz¿æp/3̓øþˆåy1ò}õå*ñ8Œš8:X”ÀÌ}îÀ¢Åõèl¾cÆÿJµ©)…lÖ…~^*ý/•M›4í2®ï¿séê.#U>Ng[Z×mFËæFS¶ÓO€¥†¡Lús)å38{öœMyüÕ¶pï <ôB;Î;ºF‡^ÅL˜N"†}y¯ 7´KPê^š}éë½g>Î;g**jŒŽæoøvì„ÛZZ3 ˆëõ—´t_)´®Ú„úõ›ý˜i[®T6 €ñžzâesþüIU‡ àŸº·G×ÉæÃÇ Â)¥ ¬w,!à8žÙÞ‰Ô»\N—™Uáh¹Ò< <5€QÕkhé’&䬂êW3žÉëZ Wâc®ŸÜƶޗ[… YdáoºS'I½ù•Wnñ˯!¦à£ñøÐZv§CÍ®ŒÇ!ºþœlåßRíXøÚ;ÈgÒaøð¤8Ï4¾»û1OýÐÀÇp!Ä?ylšntiàïfE„+«„‹Ý„1 ­ªRÈÐ0p”Þ&lÒÍ)ððó=Fð»½ßˆ¡*DzÐ)€¦Í ظ`!$$ pPCe“u3ɧxìæñ{?øº)·\7ôÛhlþ”ç3ªáÊêjŒÙ}wÕLÖAšØ÷®, ÅÌyZV-ÇæåËËzûO*k¾ï\Ë¿g!‚Ë>#È``© Œ¥BPe1D$¦[Ñ’sKËù !ÂÛ…Ö²ñ;Êju¥ô!$G›£u „8õͧ¹q°ÕäÔ1Àš80,,ŽG½ÛEÉ$à& ülЂÿO„Ð۶ŦM›ÄÚµk±Ï>û6”LL·ž~úiNºšÔå¦GCäIcÆŒ‰²›yrÈ!Õ>úhí¢§vX5Ëbè– ÷|¿4KùZ›ú½ôà×ÐT¿vªê;‰ú†zvYï‹òdµCj±ë´©¨ëÓZr°m=‰Êå\åí<æio†<–W“‡DÂB,¦ÊñRùZ>‹L[£òxÓjÀÖL”ýúÜ:D(’€°©V<°âŠeO_Sq¢Í›ë±ìý…j¢x@ „PÛ:ówýåþ÷÷´-11€ ®ÿÀ£öľìzÌswȸ\'Oé„›ICÀ‡ßE8+7 vL’2¥qÃ,xí=dÒ™Bø°MhA$Bk?Ë1Ÿûðãœ.,ÜJø°t6,þ 8€åIe‰RéôÛ°bE3(HµÞH#ñ¹óÀ£}Š9„b•Uë­aê±dá•%ãøÞM/áÙç–㣥زž}tFý{ì>g1g9ek• sï?à±Ç?Ä¢…›ð—OÆ™WÍAÿº(Æ(ƒô€½Ò€Sï‡3î, }ûÝM­–%/ÿÉ_šô3ntŸ?®Öïx?rü(LßjûVw/¥+/šm½ü¹óÀ½wŸŽòí%êl¹F°vm+¾ö§ñ¯'–€b^ÿŽ¿ÝÚ–Å!Gü ~X#xâŽi¾Gì=::žx¹­J!•ñ0¸óް¨2™ûÂæ†ô“¶…:yGbÑòVnpÐØââ$X5ãÇ÷§—ëKhhìDߺrlEÔëøÓl<ñäz·.!H}ú—c¯½†ãüswÇûs7àû7½€o\w þçÛ‡`k²ßA¿ÃÒe èìÌ£OmkV|5Û¶CÞ/Óý;݉tG3î¹o!ž}q=–¯lCGÊAŒ€1c0ºRØ£ÏnıÔâ¨}«`ÛA·öª>5Øë¨CñУ‹ñø‹°dI=ÚÛ³*ßnÉÂëðo?¥`ï÷|_»æ|û›‡öÒõ >Á´YÑþ#¢äÅ®ÁZ”œµæƒhX¹5Cú ¢®2è„î8>|XžÇDóQ(çwZ<‡ØÎJ}¶ Óùð­7àæ²!ø°`ÝÛ×q{ÏL*oAˆÇøÚî<ÇG>bqÑd%%±,¥*‘žjÛ€Lg»ïá¡v îñÎ&«j1j·=P^]ˆí»¦µe3\–|€¼tŽËІàÃtªB´Ké]1aŸ‡ÿ‚‘_];$Ø–u-?" rÝøˆ£¶Œ™:‰ò2@î|/›4‹ì™¶V¬Yø>š9f§4ÜÐ!i’¹—?';ÝÀŶÜg@†jøxÐÆK î†>lj…µèX¤`¿ô|á«% b €­, ÇÊRó¦b5(ã 4YÀc¸ò= E2˜¦” °HqÄ;ž·!™|KK?Àÿ'òÔSOaÞ¼y‚9¬„e9Žz0Àòº`–Å’º&žÛãǬ’Åœñhù›o¾YÉŸ‰²Ñ`%sH,†_AJ™çÏX1’C´Rýá¢ïeÚ×—îlT1”ÉŠµ¢JÔ ÄD×ÉÜŽB@¨þ (#˜xž@Þ1 ¥,yU¦Îó"°,‹êò\¯IXT! <Ù¶fHišœ ƒ~.E¸Þ¾0Ðai±c*tÿU²‚ßZ ‰!HÍž!%l–ÑV4á¹—–"À‡Ͼ»qÊ;òw–Ú+‘OwÂÉetS=Qر¤²B‡¶íàøp®€ÏãŠ`g{ –~Be”VCˆ…t:óγ/¬¨²-ŒàÃïm&eaøÈ¢£¬"‰®dì®?Ãú m4Ú¾¯ êìsï%€¹Îé¶„ä ¥4ÇJ%Yuƒÿ3f»è}Já#•Êá¨ãþ„Ùï®ã97ñç¾/œ†)‡<#xü·Sqüeóñð¯'‡-ÐÑ‘­ÿÊ÷—õéLKF~vå@üàÎ-t®@’ðuܱñ«_œÐMñ”—ŽVõï°?¾ÿ¹#´}@[Û–ÆÆNÂØ÷»z‹k±ÿÁ…‘¾}!V}°?ùýR¼øV#ŠÅ²€+ÎøA:•ž¤àÓ¸ýÁ[“êê~{Ûi8ùÄ)[8”U]¯l0ŽŸ–›¶Û¼ñêUËŸÿò6¾pÁ¬®ß£•ïQ}=fî1 ¿ç| T]À­åÁ«x#¶%ãG%ñµÏ‚mUÜÊ8 ¼éŽ5˜Í¿c±¤ZnÀùkÊî¿ß<óÄ—ñéˆø¯÷“â$qÉ›/Cä$ê¦ôCÄ”ä|ØžDå Ñ¨2J‡¯÷r<éŽ,÷uÈ|¼và¾!“r–7˜JWF |Ä£ˆ—÷C¬¼N• †á~XÛ*B)TîB[ã|d:t%Ê@Âð¡—±‡î:}C,Y†žŠ Á{´ W#Õ²2ð~øeÞM—úNÚ‹'íÿèß?Æó1Y, ”ÇXz'|Œ˜0ÃÇO ?¥{_`ÕÂ9X¹`®®Œ¥Ciõ}gBÅô‚ÛMÜþ+‚å>È àJ Üâ Bµ„`mFDÑ1QºÑ ÀÄ$¯ cê)’÷øäc‘(Obk2dÄœ§Ôù-?gsýçA¦ãþvM߯£¥aÛ¥ú ù¶úò«¯ï@X&L€×_¾ìyã³×Í·¼ˆoÞð8Œ`ï½FâÅ_‰|û¯Ø{|’ÆŠ`˜8¦ ß¹|$tèk²«Öga?ür?|ëözt! l;[~m‰'% Ô&•g/¯E4Q¥`^låšžuîü›Íþfí¿BX6mnÃȱ7ÀrÖ Üù‡sõ½ß–Á‘ÇÞÆP¸M*ôRÿ¬À¡GÞ‚×ßX Ê“6:Ó.ÂrÞ±µ¨ªX³1ñ#â ÌxW#Ø)g^zö;ò÷*œÎó$Âòà?.ƱÇLF ‚Ðp•º é´®®Býn­¿D²òÊàŽˆ9³¿íïßõ—7ðåËÿ^;IµHPß\ÿtû­Ø}æMxíå¯ñúÇ@1×ÿy\så¡OýoÌÚk4N:n"²|ž¾õær<÷z\Wúòõ/ õ¯‰àÙ·RøÃ½ËC÷Ïhœqúª‹ÿo­À}ÿ˜öæ_s —@ÆâÙ§®î±ÃWî¦7Åv„õÉOFº?ÎUóßÁÆe‹Q5¸5uµ~÷~­·«‡N@õ౺1é€(Ií¤×¡~ÞkÈ8!QVÏvòG-žÙ~.Uuç¶‘¨LøN`‘½þ“HȤ:Ѳv6˜ª¥‹Î+j`àè æ¡;(cJ¨y^ëGü7; l›ZÆz’Û'N9øñÇ»€QBˆ§m[ìBø€R]ÉÑÏù3e&ácJO«XîеÊóßÅ’÷ßRHÀÖðA /¸Ù?Ý÷Œ—¾Ž.$‚ÿRÀ­Ô ø“[ô(ð÷‹š FB–EÖ yQ¼Œx!(‘!‘RúÛ$? $¦.´ Z@%P'¿®–¥ÔöÀ¾3€E´ÇÍVû(JTÄ„˜!~3Cùš>GÉ„IÀŸ?¾€Ï¾`õêÕÊ 1lØ0œ~úé p€‰ä`ãAå¡GB—ç@J%”Ä–=ùä“zFÊj%™b3 Š:Ä­ëÛÇ{í‘oPçÁ†+’HÆËÕÄÑÄø½fjø|Í"—w)yL¯¨Fø^i”s‚cÇbàIÈ;.€ F¾ãÕÙ° #žëhø° ËãYV>‚®®žvŸëí\N'ý%ªKÖ¨•]!J0òSXñ+ë7}†AÇ–Í~ƒ#AåD£¸ÚÌW!ô$Vî„ßO9Š’qØnN›°"; ØDÉîŒCÀ"†%lY½"+Vµ`ã¦ÆxÌtµöûzø¶ßà8œ!ƒ,+Œ“Áƒj€ ÖÇd¹÷Ýs —#8Œ> 'Ö›9±?ù;h®¿YýÌ©§LÇ÷ÿ÷Dl^ÿs}~KŠÔ7ñíÿ©îçÅ‹7ã¶ß¾ë¿t§Þ„å±G® ‰ã†›.Âo¼‚×^œƒŸþi5(¨¬° |˜„ò]ʱfCfŽ­@lkrüqSßælÄ!x¦[V)h·lùT3,‹ð¯VÒ5HÚ(Ä ¯^Óˆ+®*ì/;eÊpS9 ¨ªNàÍ×n øýŽó> ’HT\b®O ¾ÿ­ƒPg­&hdñè¿7£¾9‹¡}£¨®Ôü=a¤†›þ܈_1'}þsɆŠëVý’‘Æ­¿yž¡Sà]vÅ}X|ÐM|îÄ‘Nç0aò ôºÝ2óo~á̱¸è¬qÌŽòþSð¯}€ª Q­>÷¯ÿW¯ó×ÀxýgðúŸ‚Ñ£ú™ëßI@y W_uÇô%]ç·¯ñú#øêU„äJ¾fä_\ÍëœÀœgîÃl’xÊ¡ýñ½ÛÙÐtS–À ÊïšÐÄå«; ¯Q%Ì)¸ðó‡àw\#èË<áßÏáâ\9xn‹_Ƶ ˜ h=¿Û¿ä—DW+Õ½`ƒî;õ‘œnoFú•:ß#/Kš…JÇAåÈi¨8‘ü,¯è±û¡hXô:²ùÁ#ð¸ŽTÛ~“ÁHÉʈW 7JÙë?‰°dE-0j¸‹_E{ºÕaE1`äxöõس´ÊvQŸ( FK{×}a¯anf°Ÿ1‘ºõÄ~ûíˆeÛ¶ª6ÅÒº 'ôH—̱^ýõ«eÙ”ø´iÓªÙ¬Ðæ1—RA¯HŒ`ÒÜÖØì”§ÿ}›OÕXǵ@‹êÚ:¼De]-c“Áq"Êm›Ëµ#›Ë©Õ$a%”DÉ} <¬@EÂS ëü=Õ{P` ˜.¸Ÿñ;¢óDÿ‘ž‡†>ØSÇÏ5ÛTÏQÍÐréf$*ǪJ@–…ŸpˆAŽcª_¼é-[ŒËÝÒÖ{A§sF„à†é4.°sDØQÀNîðÛ}úø™û©Øê†µ+¶Ó5œÈÚ–îdíOÆì üŠð1‡œr¢ñ¶%?ø¼üòG8ïܽag}î;Ûù;„eÍÚ&¼ôÒ‡8ÿ¼}@!À×JnC¼üu.!£ §¶¶×\}”ÊsøÑOž¿ï]|ýºã¯ôÀZ„åúo>‚;~s¾Û}HXøiŸ.íd>H¶Ÿ°êbÖ„rì1Öæ¾†ënÝ fN©Á /ߤbž·cÅYAR.UéI=²ôäÔÉ6@XIرª.'›ÿ¸÷+ˆ—ÝÑ㾩l:“Gss'ÂÂÕæÃì!¢Eìi)Kø0ž†Axðïaýü—ÏÚØ•¹ß¾¬k×·àý °…ƒWåñäëø.½?¸¤/æ®ïƒkÆÜ«««p÷NF{{¿úõ3 `Ë–vüóñùøÜÙûо§À¢³3 Î>q$®ùÒ$5¹ÏfZë\cŽœŽã—ÏDyõE "9©ñ [Üó÷·ÄP0uê0Ü}×¥׿¦¶ŠðqŒñ¤Ýɱ]È\Ÿwpýu~(\ø5}ý¿ñöÞ­I§}«m ÃmßÞï/nǰAQ"J8W¿K¿ºdÑýóN:qŒ3#†×©s(øç#_eØ(õôœvj+¤×{ Û<_ý’¢TÇ¡.„XgÂ`mD“cKJ‚e5°!`õ&,õSÇJÓ³¾èÕ' !ípó€SÜw s2 ›€~£ "±kÇÊI–#ïe |XJm¿¸FÐl0Q9Šð1_Û‘"äuì3á¤ßÿ72é”× À ±ÓQÝoèÇ€Žè•{ *€šÁ3éhFGód:S!øðhÕö!Òõöð ŒèÄ|1*‚kJGQÓðqÈIˆÅøDDvÿ…x²ûsf?÷0²-¡"–±¶°ØeÞsÇe…m]Ïj`Î7€Y§aÉàtAq½- 2€ŽÒœ'(ªðµPdPÂ`SŽ…B˜q]‚b¦×¸oIå†D¤,ðΔ[@L€CÁ·¨ŸÜÙâ9ž¤z®ß7›øzîµGØÀ‡€3DzÄî“×ξ2Ûu¨Iz*0u>ÅgD˜0Žo}ë[‚ØÍ;W$Àü É} Ê€ÀÐ*‹96› F'«a%æÏŸ_Ű+‹¡YÎgœ‘dôä† ë¼Cªî\|n²¼ÚŽÆ’È»ÚGPC ÙuÆ,•á«]Y–£&C®+‹U(pЕy"f2m2¦B­Ø•ÔLârj$uÉÞ|Æwù ËÀªÚÀÏj†Ü¦b"Ú·\ÙGzò(éÊÛµTø0¢·uÿ‘Lšºñòþ(«©\âSˆqv\[>ZŒÖõ«!m«@hÃðSÖ·ßÃQ£O–á“ñ‰ý<Ù#§Î‚“M«¢kÖµ •ÊP(á¼>ú†N8E•}ÞªHág8›ÑwÞÀ¢aZ¡íhxnDOÉÂÇ„%^~!´DQVua^îT¯Ñâ»7žæÈGK7kx4råGãßņ-:Ÿà®× _äÏ~AÁö.ãbÜÈ$¦Œ¨ªŒø°ÐÔ”†ëä}ø¸^Á‡–šº¾„rl¯HB¿ç6øÂc¥—ƒ›_Ëý|­ÒxÄdÚnCHü±PJàão¹Œž¾ÛÕ§žø:šV½GøH!bVmÛÁ²•ˆX®‚ÐM  åß¾£ž žÿ ÀF±\ò¥Ã4€y“¡M眽?^}©€M«”=÷´±ÊC«zÈpŒNºÙØ Ä0 ¿þÕøÍíÏâÒ‹ƒ€mÞgYÐ%zþZ”W]dÀõnÙù )»té&ýÌ3²n}†éÊ'y†K@õM?º{O«BEyÄôŽˆø«á§9/¿Ý¨ÂÜôÏ¿¢”¢`b×]aÖ¬±8åä=é5J"Ÿi‚›ÛÏíà{µ®éŒ-ùz¨;¶† L0–njȦzx½BU"Ùo$Ê*û¨E¦h¼ €øO_œÃ†æ!ÕÞ†<Çæä=dSY8N^…`9¡ž< ë–ÃÉy¹Û„€ÞBH0ioXÃ<ˆK·øU L’.¬"TÈ]Ðç#f#VFø „ ±ã{²Ø€ŠL>ýplY±Ã'î Ëî‰\tD ªUE"ý8®ðRo"ãe |xþ=ÉíK@aØ•E{y´ K3ðAèfƒc&ÏPy©ÝyïKñ‹îÿœP’ ÇÿV|F—†ÌˆÐÚ´×Ðnðó@>²ØHsä`àTø‡Ø^TãñÙↆa/ˆ]Äz^6B bß–*LÈ•>Ƕµ'„ å†Ðj*6ÇRO`¤„ø^‡Jb—°Œ{9ixÈð@›‡ïWóhNzͶT¥N¿×]à¶ žÀ.Ô³üŸ Q^ «®ºJ%a1™ýúõ“„ Á*lܸQ0äÔ©SÁ/^A(’óE*.Æ PŽ=öØDÿþýìn‘¬>± [°†Ç╈ÄHÀƒë´2‹~C‡B¨‰rTå[D£ep!¥Ãs?še%L$4 HAµ %B—Ñ0%ýø ¤¥ê^!VèK’;~ökeÿ_7ÑÜÛ´öË« —ó½Ï¤TSÚ3ð†ä³Èt,C¶­eƒÆ"‘¬FÄL>Å'~îI–ÌEÛÚå|hë‡aµ·¥ÿAø8ƒ"‚ŽÖ66¬Z‰?ð Ž9÷ *{!ÿa„[Ö¯^Šl{£ú›,[¶É”VAÇjûAe3¶ÃP^QSòèoÚ´Z]ÿª#Q¡žbe<³©¿d. ½{«ìtÈa?(‘@DÄ?®ÞÃÈøñƒ ’º‡í‡Ùoß„_ßú4CÞÅü¹?!@éÉ«çI|¸d#xÀ𯌅%$¶lNUR¶¢¦Ö—ꦶ÷T¬¹”>,a€çBV@zU°"ãx̆ªpŒ  ¬ì<Qá@cÇ2$îÐ) p¼}¶ºô–|ëZlX¶&š*6ÒtÆ/»|╘³$«&ë–1Ù»²]A³?ÂÒÔœ„Mk¼3fr5lh• o1“=bN¶­¸àìéø"Cš„å¬zŸ.EX] ®¿ºþƾN¯È#¾ƒ»~4Í 8ââ9ð$°vSVéso4aÚ„ yãåc… ¿-ú÷eÈ£—àž‡—ðþ™%mÅ¿¸Aé­??'žòÜ}Ça*?x„U{>¼’ç¥é’í6« 7¬ËdáµµÂݸJõt‰'*QQ;FMBYu_Sä?‚8 *‘mZ±PAùœ‹uÓŠvTõO@¸Q‚Gaö–Õª †ã÷9Bô@Ú›7 yÙ;p„„СW><*|èäs†e¼#–ÂÛiËöµ¬¼ #§ì -ÞN/Ü"@µÁû¥Þ˜½[ôœ>ÌýhcÔEK­I2ž‹v³nظÏ?p:ålîÇ¡DìHøÄeý’wаê5\¾|3\Ç),µµK< 3>†Ž.MÃú¥¬:òâÑÚ—½‹ò!cU¥¶DíXD‚~•’ÐæR÷ VvŽÙ³±5©­­€vúž€?þþ’nÙøhñ¯üm¾'¶&ýúÖ0wà,¥¼÷Î*ÙÀÉäüãþ70wžÎ™Ã’´O¿Ö€ƒfT"“Î鿉.µ[2ǰ±="•ÇÙ3l+øœÙ!Oˆ+‘wš!3o²‡!¬BoáCG.u¯ÒÞê¦!ø z^žù$í· É “gÎdΡ,»ãÆB±¬\µ™€t/ÁèsúùЧBñÞ¿] @óš¹:<«1‡±£ËÌd/Bµ „¥&=ùôbÚjDâC`u<^ÿò‚ëÿ‡ß_Š‘#úaÕêz,Y| BÂcìãñk•wLnjêP¿Ïž{î‚KÏÙó_{V•àý×í»áÁg6ã¤Ãú©Ì]Ü¡à#j”ÛˆQÿþÈ\þüT|÷Ogg†ù}[ôï@ð¸ò²Ãx=棲ߵ:iþžÅ¸ä©~ÉòD¤‚ßóa¶iÝÂîíÔD|õLå$u.!ªm [°öÃ÷ÕûÙý@$+køý°K¯›ÂöJDó±ðå"ÕÞB°Ðà‘U¢ã®ù° CGT©ñ ôX7¯^‚²Ú¾1if¯~ï¼ë ¹Ž*9«À‡“ÿÐlÇ¢«áÓMè^p<§V´7?©®÷ò‹[²T(fµ²ÒÏå4àËí[¯ÖOض)Æ 4¢ Ðbü{cäÄi~ ÎΊÜ1çOÈ®û‚ujLºCƒ(Õ¶µã ¤/|ðÚIGMÚïÑe|Æd ðÔà ø‰N00œÔímKc&˜@”ÀI)ˆ„Enð!„Zy¡øð!¨¤~$„ð]¦ Â„Y½ ýI Q!-‘ŒDÔËÃæw6¾~èoq¬ÐdJü6Ië wk8Á•>$íiwО†Ï€Ðó†\I ØTGq`o°‰ béÒ¥`þ‡\±b…¨¯¯1ïâ$é ‰²*VžÞ!DlÙ´&^Ù¸'?ã邆‹"¢Í3„r ·'l;†D\ •ê@GgV…eYBÅ—›U0[•Úuá_CÇÕwˆe?Ô lQ£67 LJPÈÇÊ ]îüñš…ç=A ùaã$ÿ Ô3ñ½´ž®í®Â0ê7`!¤ºß°æñ¤‡-¼NøXØ}6ŒU.÷7!pÔÄýé¸éËý¾c[âé|øîæ¦-ëØUýŸ˜yã\É㥟0|,zk+ø€–ïÕïæm Äï‡P]×½.v+)ëÖ}¤ÀÖâùyþ|gÓZä:7"›^ƒx²ñ²a*ÁZ5®´`h„À¾Û’}öÏþs@Ák¯ˆTÚÁÄ Au˜‘#",?ùé£8é¤=3Fð­îÅÏñXøß£§r”Òã|ñÂÃÐÐaKVtb÷q —ôáƒa¹ÿ¾kQ,&)Z5M&c]¢§eEðòi@=uhƒ•q"º«!Càð| 2©ûzÁêoKjKµ5…:D[.›Ï­bvPýlîÒ,(˜uøÑ€Lð·Ü\ZWäŽß=‡Û~ótèºíªâ‚‹¾äüÜóÐ2|ÿÛ{)à1+ÑþD}ÍÚvüíþÙ8â°‘üùq‘ÁØkÖ¨‚ëÏ2ÑÊK;jdiˆÙ BÁ}÷½‰¯_bA¶å/n~Œ×ÿqý¡ R€”8ñÐ~hëpðÀ-“ž~Õ“(£š„Õ;îYŽ»Z à9<öèu8êˆÝ0yòPuºo2­ïªŽûFðîÜ͸tkðáza y:LsHãÕâqAµËjBIäx®ä~kýFÂZ«:OÃ4Ï\2ûE@UrJ`0«(Õô„A#ÆòÝC¸=v€4®_•ó^'„´(¨ÈSs>|¸Ü÷а¹íÊAƒË#€œ@ø€§áÃoœ éAÀíU‡|Ò€‡(…pçùX<¶Ù¶íé>L'»Âö`Ç«$‹ ò3¿Ô°ë÷aQª‹Ùâh!0#ú.ŒšÆŒÃvÙ…åv'Èm},¢ûc–’ê e|=(T‘ôê>ŽÆÍØ ¬Ä–ɦŽÉÀ¤.×;†0ö€é|e=ÐIsù`àÁ(ð ØÝ1Ж àÁ£Æ¨v&Bø(‘®ã1!„öˆx^”NR¥ö–øâht<|äIL‹FtC;éÁ¢ÂüÄi“Ô  ¢æ¡ÛäI¬À"?mq‘Q¥ÿ½CgJyæl)ýò-{ÃÞÖâ¿L<t¬^æx&›+¸ã¾òްºªŠÅ0+‹Éè=# ˆd†2”jâĉe2 ÇŠñüLM<_·ãX'Ÿ…‡ T$«8Hó½’ƒG"ÍAXž —r"® ô—§Ì{ê‹Úó$‰8ⱘ:. 4ñ[¦ò…:¢Kzî&µg< Æ‚"~mÈðÉ]°|ÎY§IWÞHø82ж0¦ÙqhuÁ²wÿʺ!=ý`0¿e‡®ó¤;ZаfZ7,ÌŽÐÕNxg>Ú@‰Xâ ºÞïâ$ìó> V}š7¯Á‚7žÆnû§¯ÿ[{¨JÏņ¥szµÈ/AIÐLW~Õ»ªÇ $”qu³=+z~S/=ï9—Nú>¾âÇþþSâd7p?G¨«Rp§E~Ê«ú½?GJ´¯YN¨Í—ôa¡ç·Ö¶­+„å'øÏ÷òêJæ}L„eå{>f³ëI—pšƒ“Ë!—Þ '¯à[i4Ù±òJÞ³ˆˆψž73Ôd è3e*š>˜ ŽÜ)ÂÉøãç?ìé|†eðÒ`¦ üQ§ÓV{>\ùHD‹ Ã+H<7û%¯)Í Ñ¤kYà¾å¶Ëm¾¦AÇ”kmÊ:°Ê$àäa; ·¨‰:v.)ôk¨´ô9)nvPWzÜ×e€k@?Úøç;Rf <]? øÚÜÿ²u“#Àj?/3z8Òé´ ˆÈ8 ¯ÂþðÐÃ×u%m~ĈvJO3]P0¤¶½½] 48ݹ~óÞ›×tŽó<Q+ iU£<ç:\ÕÚ¶å*¸°„« %“ Qs9Ó\.U“–t>£\ݶ-'±¢Æë%¡þÓˆªé_%EfÍ„ €ÝÆû¨{+«9f‘”r=lTæÁ #È;H·/FªµƒÇMg óÄ’€ÝÙ´+ç<ÏÉ@ä{PMï‹°à,ÂÇ&ùúo¶´ÿúú¡—q¢]ÆîéT^¿Î95ŠÖúµøpö³˜²ßI½NÈ”ªÔ±þ½Â"ÄÎ͊ɦ;°yùÝPÒ¸ W­Ø¬á#jB­”†à#j©$Ã]§ï]²<â@ ½e¥†[S=†ЧÖçÝvÂqÙåwâɧæ¢ÁôÌhd ãº!_ÃYW¿ç{Ÿüóx}N#bÆóa‡ ùÌÝ4»Í¿‡ŽßÃä§ÄpÇo/Tû¹T² Q7â·øíŸ ®OBMLÛ; ¯ßø]ûøaJ}ª-Ütã,|õ›¯¡£y!¯3¯ÿÍ ¨°ªÖÖT׿Öü®¥דøó#•V•ÛªQk:ëEüɈxúå-³O>jØ U®“*B18±äèh¼u—«ß?›u¹Ò¡‚ÆU—¢nä8’KöK2“› ×C©«Ž ["‘¨!|ô' ôÔžB äM5©v´nÞ`rH¤€Æ‡ýŸòü¸6#ÕÚ€F&w×ôë*†5 a£8;žÐ±ï<ÇêÝÄX£­~3ï«ÕhÞ´žPÖarWBžuo a騫~¾Fkšþ}çÌ¥”'y1®‚@¾W“m!]½Ê>Lµ§‡'øØ¥ P—\ÔJèø;áãl}Í…ÌÃÍ7qÛƒ-Ê»Ñ]îdé=˜ä¥DË:^«U!ï†=®:§­5}P$ªAÌ<û¨QBp”ð1eUIùžMHUù-ŸI©êh,‚AÐË‚ Çtƒ—ùzŽ©®ãü`ÿÍŠÞŽ=€¸JjoÚ¢ xPÕv‚ày}ŸqY¯ùà¡ÀÏ$ð”Ft!Œ„z†ØE”/Kº­oe¨L {‹jDzk¼!®”ÚëâI<•Êâ²(ìlV¹›½Òâ“¥ýJPF;ÌÒž‘!ÔŰÌõ‡‚Q‹!å­Æ›2…ælê]øïjEQ çL"?ü°<ì°ÃÀ„suuuòÚk¯îÀs"„sEjß}÷ÝJv?O0Y=ÎŽÃq7/kÝ|Çõ‘X%'‡D"¦ª\I)PV7‰²Z•ó¡1Ï1ðSjÙöÍ 5 BxÈçs*ÑTX'Mˆ•Tï-Ý&3ù ®̃ú±êA·½…nˆ„< ÷yžïõ(†sˆ$úêÊ¿&§ÊÚîølº+Þ{¦ Ïq]5ùV°Pêù0Цî}H—ã–Ô|g,B‡­kçû Ÿlý³ ÎW¯c^Åó«±5Ù°¡)6ð³ì6 ¥†1†H ”‚hâ<ãupiœø8üð)øéÏ ®“î.D­ÊËçïaf6ç#„_)]½1§B«è!|èü•úú6ñ!êÆÿ9 Ræ5Ì—Šò@F“Caål8ù-ð§Ö]m§e§þõÊ3@ÁœgÆîG<…±3´‡åöÛÿ«.Ø}‡FEm]—BÏ@¸Y ‚—ïÙ_¦Ñ™'>‹ƒöꇣgt¼× jKv¿}ú})œ|ͱ·#$êõ¦úÛS Â3N`Ÿ`6µjÐ "к~½‚^©@D*%͈àÿY, LŽÛÀ/¢¤sF¶’ŒnÇͶ–HiXV+aPRAˆp]À„ð˜éœ/2ñT'¢°K“䃄xI@Œj¯H­”»zL›¥‡Œe#+ÅwÞšÌÎé1íùß L.Wäüüóσ.‹É炽?$E²³9˜ÿn¸¬Š¥@¡W‚¯[¬–e³?Hõ[o½•dIfÅŠ’ã4,¤ì'áÁ‚îÿÚʺÁ¬¯ßH(éG¸H ›É.$Hó‘¨~`:ŽPÉæÑ¨CP*ôJ5—t³BèîèÒƒtn«\ý@ €@" ~]ðîÈ¢×OžÈ±ýM†Wq)yÈ> Âê×-e¦1è‰8N«Þ…²²kø°|ÌpÈÄýN}|E3ël&þðq¾xG› udv/ÀÀssp².ò¹&n×ûN)%àHx|MÀBbðDÀõ Tx¼—À˲ûô¡ÌE'ÂÓUCÄ×XvùŠzå¹ ˆ³€D5fÎ۬}&¹›úŒT…¦ŽE&O{wƉ³šÖÿà¿|¿¿ã$Ê/U÷p¿~ ¥ŒÃˆs?7 C†ÔÈ~|xˆر HáÀóZáºyjá&mï7s6â'Rð–ýö¨ÁŠyo²ó/¡c÷Ø ÉŠJôgCT-’aPÓ ït"?ðœW•”]]y(§ß–íâ´S§àÀ¾‹ßÿñ5<ùäBvUßˆŽŽ¬ªÀ5a<»Ï¿z´dЕœzÊd&‘?»ùi6œž:ׄ»EØK£ {ï9gœ² öÚs ž„ ÊžyÒì·çæˆ|„—ߨˆUL–O¥]õü:¸‚×o8Îe¯™Ã˜dÀ/|ý«ë?k·*ô­‰ª n2a!ñÌW6x›úgê¿™ýÎ_!|L „aÊ„:üó™58òàa,ç[7—FeETyn'˜²÷ß°û´þ¸÷ΣqÔá£$žçñ#KàÃÕÛŸñHT<’å&,4×Íxùœï!ÐÞÂm©W„áCoÛ–Ú¶¨6·¥-ÐÞTT[#âž‹Dÿˆ—WêïíêZ¦>ðe³È¶| ‘n¬W=•RŽ£&nÞ‡EÎÆóA ‡^,®"”ý抟¬v sö`ÀÀ‡ZßÒã ·5âAfCðáJ;,ýÆüîͦÕ_>BøÀ«®*«Q»úBé4‘I7«÷¥—DÕ³¯ªë¡»N‚ë:¨©­FÄŽ!ïäTÓ@[õ(º’ŒŒªð,×I©~ŒwWï“Ë;êu›'»N.¢êËI‡^9éÊjB•~¨e«]½ƒmÈÂWOü aåü ’K(çƒê7–à¡ Š+¶úï7d$FM™@l×d>ÕڌͬäÓ¶ymau«>”…¯ !N%|lA7ä¡[w«Œ%¢OðÁ»à‰¢Šà7l¿cë…7ÂÉfÐÙ²ùl>wkºÖòáÀAV? ÆUî<©zp Ÿ¸’•HV”,Š8¨_¶Mü;!€e1wbãÚF?Ô&»ñ'ݪïÇžG½W>иø=ds[… ¤Aí „BRÜ`’F•ž aÇ€³?"I‚`"¬ÎÒv_‚Ð+~ºŠRï¿ò<Í^¬Cb6£j|GŸ v\ˆ…TqÐd;›‘Kw gB\ªñ€øeJª“SÖ3¯ëØ´è…e#YUA£Fòú FMß>&Y"—Î`áK/ž« ƒÇi´7oZ×tÕG‹ÖÞmy@¦î3“öÜ}¬àÊ ÑsàåSÊ#ÈmjѽT„ y… áÌQ“NÎUÛÌÏRϸ“'Nã(«Â6æ¾ü«E- ò…©€#Ľ'_>ïɼçN¼’c¿Å6PíJ€Ý¹m>œãl/"L\ÈíߘZreÆ×Î&iˆÄÅ¥œ·ë¾yåZÌéMßÛA«®=Íϸ¿'Á©/abTB€èmãÕ²ýPLAåq³- <© Ÿ˜.í æóyäÒ)=7p¨ C“ØLGðß+tàã´_§vFÑ Y«ÿ.?Ü+€G,`º Érà FÂÞ­„lYÅibæ˜4Ö|”•´2ð•æwp¿Ù‘ÈÀ5p‘¥vH gÞ/fœs)ó&eF¢¡÷©ÀK{Dž§:g´?ÌKDpÕîB\;ÇdwO× [ß$þƒ„Ô.ø`Er‚*rEHÛ<î‘/0iÒ$ÐÛ!# ÜIŠ ×C0,Ëa¨V–²¼½÷Þ;;a„úÊÊÚA¼þƒ#22 aÅ\ÀN¢²¢ÃYq¢¬\Wå±, ŸË(œ‹'À}ƒvÒYx2mVTcRè”¶È<„ÅmX´€„ôÒÊRL%?&²MJ¬Á6dÁË'Ì”®<Ú V|+,½‚’(«ä*ÆhHФjGc¨8$4éKoÇz†@ÓÆõ,³;ÒsM‚95TéÄÀG§â›â!Ý”S¯˜×þìÝû´Ù¶ ´:¿2Ù‹É—';ášÞ°:Ú“OSÆ5éLç¢é1Þº¹a#fy¤Üz8€Gmß´m«–”À‡MKw |˜ÐÚr¼£&Žº¼6N[ yDL)W3Y3¡$݄ҞܱÑíËŠÊ0‰d’‰8¹]‹Ræ» ˜´ÁGsc1‰X4ê—e•HR ãEJTT*(„Õ mVC«ÊJõñ.à£`òæäkl@GK3VqÂ1pøl ý‡V¨|(H¤“Ñw—´þ­HLMF €hkYžú|öNd (,Opy•Œ*ÝœžG)„„&.¡¿G.ݪ~¶qÿ Tô©Už¹±Ó'bí’”§T! lë·¡T3‘ÛøÚw µ<q¦X Ʀ¹³ÎåþÃ&yþBNr!åHVVš¦s®Ð.áC;aY³HC”Q?„›ëÏüꢃ¾mê Ð^6=¹¶eÏ¢å8-Jï°)¬(Mh©€#e¾¤±Fà ôÁ º_E)oz}äò TÖ(n–÷_úÃUk±1¿|èb5´Òí%òzEßkA¨MWR;ô7/¶n¼ât!Äã¨&|À+ð`9bzS‰.“FkCš¶4c¦í;¨?’åIƒ5ýú`ð˜a~n °#*Ô]VA•TññÅY ó í¥ð¡aòÃæÖÔ£„o(põKQGÕ³cØ®#•Gjû%¸™\ÙÎ6Úœ®aOgD‰êJ”„êÚZ3"U aëïÈ6Ï‘¦,sª¥ m,”u ïx]ÇÏϺó¿@Þ¢Þ@]Mýp&ðÛÙÀ­ÛQ®wõ(à—¾x7Ì~¤ÈóáReè\iÔ6ûVAòºQ)õ9´>äuR‡ñr´SÂO,G'h=`“lªc@ÈÀjÒRâÿŽqjÅc·i“æØ¶ X"B\-¤ü€fR7Ð|ƒêà?HØïC8Ä…^(L·skùòå6+^y?þ¸wøá‡ËãŽ;lL²”`¥+p‚&lÛó>R„’Bˆ(“Ò;—¾ÿ—ãÝ|'<'Oب†„®o%ê¡‘É:¨(!ËÀ² 0J¾.":ÌÊsÍt éDÄv•çÄuõE@HR¥zm;Ê× W"4$À—8q=¦}Ë•g*øð$‚žHÊø(C¢²\½ŠÁCtÅj¢øÍ¢p%Uíx”S.Ÿ¿‘æ£xéžý.#}LàX/÷Áö5xjr«ex²nªE™ï5ŽN!$›P«¼Ã³˜È+„øý…ßYÖ±í…<¿(ŽlÕ½™çxD>üqlMªÝújÛæ+áÿÍó’nhܶ§ ˆÚ›ßÉ3!f0ð¥¢ys#Úתyû»,ZŠˆiŒXQ[…Úu¾·-Ágs¢®iÿ},€8ÔÖ•+Ñ®àÃ/·<=oi*;?›s~G@ à#UÛ† @Ye²‡0(¨bóéNåù(ödJˆºÕ»ŽFyMµö>Hr[Þ»j¬ÙLí‘jkAžûæo¯Á:o’~ó_ ï {‡hÀx;¹eËú_òFêÂw<ï%lCVëFÿcs-à< !¢¨ƒzio0`[/–Q'x]“¸þkBÊðûý$¨®¨4xÀz¯„"ÔêZî̲rÚ˜—„ySéãM‚z_c… läAa‘ö_øÂ.ÀÐ,pM Øcpò\ ÿ!B† DàÄO”„ A¸,« ‹rçwJ‰ÚgE,Åsï¿ÿ>;õ† â1¼J.Z´¨cùòuGudmã¦÷ÇÃkUËeI¸ž¥RêŠ4mAH„ÿ®­ªr䲜|DÁ‡ãð|/«éQmtµ,+Oµ¹Ÿ ¼˜õ!'­Ã!ÂÕ \ýÅÓñõsAØ•‘Q»GYUÜx6äèr*м±[V®A¦­#]4âß‚\<JLˆ¥@D{?¸ŸˆN;¤DÏœ ÒË(0  Ãl‡áƒª;aøðW;GLÍðš~È„?ˆ¥_:KV!ÕÑQ Ú[:_e îþtµûÕ®[Z^U†D¹­ÿ‰±£B­Ž9Y‚Œ¿2V –ø0“2aÑÖQ÷PÑŠ·?ñÖvÃGËÕÏ.~ÃC¿ƒTÃàqÃŒ7°÷"%|ö@¶3gЍÕ@IªTÁÚ9ìÍ u U±”õ© $æéÁÚ„«6úm‚ ¤¥ð Æ“EåvH pªm}àaz;*Mò©ï‹P;[;Tì¶eï¤Ètj„gE*u*T,MˆPÏ¥\^‡(:nÄ´:~ó:ÀÜpn„_ÒÕ‡2_9Ö?yáÛ±·×}ï­™wÁ!oðü3-S)2¬¸æ{„Z—kø7buÕøbeIÄË“ >$Üó²'õx¨¡p2ÑzÖ5ÌArÐ9¯ýöÍà¢Aã±®¢=6ð‚( òsÿÂÕ¢¸o¬ “Ë@ˆR´ò@þXJ¹øœo~Ømr0ãðáÔ‡6â W"³‚q8Aª“ª¿~£qÍ¥9Ï3âž)êV<{Ý E2.ýFH¦ÒæÓi4¬Ýè7Ï‹Ò{RYV‡ê]êMÄ ¶nÔ¶±žÉÖ›Œç£8lÎ$NmnMïÁ÷nžuT“ûH9et×~EhÌrÙŒúìúà jÇ‘ìS†ä*ÄE;2ÿBƒz¶3CèhWÏ“\*cž›T‡½A<ÿ‰ýÎxuNÿÅ"NêÍ–×XѨ°l»ùü­Zg ñ*~»”òƒÙÀjt)þ ~ #NQbºfæ8ò]å„@‹gÔ81” AŠ×Å¿c…ò9<©5Ó–ù½J ™µÅÞÓaT¨Pä´$PMk ½Oƒ¸'Ñ"BÊOÄÏ›\·Õ¬(pâ@HùÏÿð+8Ž#© €€^u9!þ÷Þ{]'%Ò¸¿%C´$C³ÆTZ zU;räÈÚæ¦M H1(^V£¼®ë¨‡Tn$@v5óÑQßŠÎÆ  øäêúMÍw<öמðªÕôó¨¨.3«^]ÿ;*ü­>J=‹Lô¼BøVƒû¦>Ü¢.ÉÕ÷<ö5YK»+,Ã.3Ƴ ôÀÞW‘à˜úÒûÓ‚X¼ш嗡„8nk;ûù÷àl"/¡7‚$Ãú €¶†V4¬Þ„–úx¹l° â¥%•#&À (mÐ ðö}hÓ]?×HØúî\ŽáŽà©öA¯Bb'‚i€™D4E>ŸEº>…L:tsŠ€özøpHš²0“Ú`bá¾X.˜ÿmÈðÝþ2—eZ/à¹7AˆSa´ß°¬fèo$WÌO…”û4¤êÒ½ ÄËâºb!ÜÞ8çÓ4öãqxïÓ_4îÜg]Ìów k |@/xÔÂIšx—ñ^çy­RÊǨ/Õ'_½0‡íŒ@> Zzá‘Ê"=˜ãž$u[†Èào`Âæd×a@²›>ôõ+ÍÙ¡UÞ:KÙ ¼ØTèd ñQ Ø1¨0Ñ%Ófï­ë6!ëxá°¹<ù]Kl[üÐÒ­1mdrE½íìÁ!Š{P0×ð‰G'*’ˆ&ã°õŠô«&!Õ<*Ý’Bgk;²)½ðç…*^™Œ>”J)ïp%ÿÕ2ð¦·:“ŠjKJØB^#ÕÂóŽ“BGY¼§”wKào³¥\‡­ˆüÑŽ‹Ó…#pC`!‹Ñ#¾æ~x[é!‚.ªf•2~p\èq$Õ4#´‚÷§êFê\o¯âÆRF50"-J–xš¤¨ìôäp¨÷ÃÈ,ë«{Ûö¿ßÌå:ñ) ¢8IF$A…É肹¦œ]DÙ1cÆHZ¥²<žçÄÆinX?ÒõäAÈ:jX,Êò8júT!©‘çµ#‘ȘÊ„‘˜Ûv•×CJn[ž¨éõ!sº$­eQz†ÝÆ~EG%:»>|ë ר¦˜ŠR–$œgS)@æºÀŽmG]‰P¸Aº#ƒUs–#ŸÉÁ†ÚVÇL¸O£â2<7é€GÛÑKáXMÎ"ÊûA5@xÆ=ÜCˆt ¼†Wõ•êÞ½N|ữü}ß½x|È/øÂ-¦8•ã$ Ý­"]ÞÍ2Á®Ü>ü•N )p\g{j¸)¹[ ±(b‘(Cœú*è4‹Ôœ¶ VÐáZå„w½c¨G Fslñp¬¸ mqòu°úOkºF«ÜÔŽ¶NÌ{m¦HG @/E£vX9šW|@sÚsÈg ÑíZ<½a4Nðì7¬ŸÒŽæ6dÓ9– þ¹lí™`ò¦`ɇMµB9Ô0|Øb‹âw |þ[Kóþzj«NBxÚ××#Y£ŸˆX@$nÁŽ%+¡Ü­@¦=‹¶ÍÍhÛÒbŠ88T¿w„†¢ð$ŽÍ¬.G«˒ÇsÈù¯7£Â2­YšÔcÑ…0g BJyMa˜’JvV«Ó±²„­áCÈÞ7½ Çm&ªÛÂÇDžÿ„°Å p¨* Ô¶ô3!5jà£põ? )oâX߆†Ÿ·»ðÝ6ôR$ !‘j< ²‡a?2Ø’>ž›¼ÖmHØ3ëC®Tוjõ˜Âý’ÉðáÃàÃXËß‘`¡ª¨@"‡€„×%ä©Í®VpG;œsç>nÀ67wNå¿?+ñó>”²:'=Ìýh؅ܞǛ,.ã­S¡¦Éª Ä æy}¡‡Y€Ë¥³H5u ÝÚ Çð0*• ƒX=~À‹ô~tjù/—¹Àʉ,MšÍç¿4jYˆQ£D@™@ý‰ìK3g!å=Þœ]äëZ ¬œlŸÿ#L€r±åCÐ!º…`B5RäÙðŠŨ]–ÆX…\Û!9HÈÓV/†WÔ‰ÝTè0­¥î¾8’Tóº+©‚Ǹ…Ä2Ob ðmõ"èž~€©OÂÈd`$Íà…Àø…y`¹G–eIz:,&Ÿ æHòÌ—…b)#a¥½¹¹µ=ëtæÙ”kÖmA4ÇÐaý•'ÄŽ%TA†ñ¨€Ì@;[t·fÏÍ"—ÓÉTш  è·'õäRè2¦R„‡:áOw©ÍæÕQ@$vSôÊAvàCȪyËKFÑgPt[d`Rm)l\¾­›Z`‡¾¥±ËB ËJ Býä} ;H p(K1û–r=©«°å*ýØ~EŽ+Íï¯{JBlêø·¬ª«Pï±õ‡oª¹¹TVqQøPr?$Ù¶õ5Ku¼.\ñ2+ßHFðDÄjˆ­ŽÇ²htwùÂds¡­Ô祫Þú2€g©ØøÑOçxÇq|ÿC ±©Q Ešw5@bbÏ Wÿ¥V'Åû/ÏÃŒC§¡ïànÞw]Çë•e;¡Ð!5ˆRríYÄT¾‹…OCÊkʨåØç„½”gbíÒõXùÁZßû¡5» ¼~9Vî·¹¤=áy÷ÓÓóBŒ/ĨnÚA&“BY<¹}P%{ÅbÆ›/³#ˆÕDPÅqcסh\߀u‹Ö¢½¥CÁGÒrÓŸ GÃ=þl<»ý퇳Nù·ì}Èž<„°±/$\1I7r‹Û´2´`Ð •„N3lMÞú› ±«`R5íH3‘ uiqu¬cs»êN-·’pNÛÉýWüÜ›/aŠ m+ ?=ÊT”ˆ‚݉r(ÍOó\3™(Ñ=k>l³h C«rTš0 ú¸ñVê|½xe}*œH)·|¤*Ú›[‘Á—P7þÅ÷®å¿š4€€ÓÏÏu3á¦Uñ*D’5ÞàÞTÍX2® \tBÃg|ˆ^¡¬#d:RèXÝŽ§½2Fv*€\W‰C¡D>õ³”3;Ià.p Ç9(ËAÇ„@Â"„ؤ\n ‚ˆÍ®Ñ‘K<*ís3çüy6°%”²šæ‡ ¢ÀU6p€j,#Œºa€m‹Pˆ°§£è²Ë°÷"|¾…þ@r&!=CMSc¡Ÿ·»ðÊD ÅxxÝŇÿõ„ªBU³Êhû ì»ØÖx&'… )ÿ<˶|Ûuçãixvpø8|JÂÐ+"äâÅ‹%Ëì †W ‡`žˆ*cGÑ7>…ÇsBˆD.—‹ßsßï¼ÉƒÇ[H2ºä§C<Cm¿ ”—GaY9 ’#h¤R6  ÀDMR]]‹Þ¶5>zÜJmKÂõR¢ø³.ý*&p‚äÃçÑMáÏ/“®·šÐ1ÂÄû«‘ ^^€IûODÝ>Ýs¬$Þ¸l Ëë6‚ïkbâípry zÂû»ÉÿóËØ±¢Ä>¢T劆kÜÑ=Oš uhîO¬ìGè8)ˆë§5UaF²×„e{þC»T$òÈ#µ¦2¢z¢øaWR£ïú û>|(÷þbÂ>zR$X‡5톷GèØHéê. –SÐàgö„‘A»üéhùá²wÏÜçGÀ8›2œÖ$Y‡=D~qƒ ƨ+ C¤+1ç…y˜yønLÚ¬êEÁ&©r1d àM=|Ž×B®ƒÐ ^Î×Do½‹+«ˆ±Ký(ìBmÞÜ‚Ö-­hÞP%º5H4÷€ym¾)[ðÒñ¿œrÐãÿ(/O¾!„Ð^ ¤jÛqtò¾ŠŽ´”—¬g÷ÿŽû‘ºÁµJ!%–±œtgk W×û@j Ž;˜Ðr «Ë Ž1M »iÎ¿Žº}÷ãž^ß;ñ~F ’²M©×H\åV+Ƚ?aÙ B•º÷þudŒæ@NÄ™þ³3bkðÔKN 0˪Ê-'lÆltléP9?Òõ+[…K¨÷¡} @v ˜|Dø èç–™Áˆn¬, Áê¢!®Ó=ˆ9¯ OMÒš‡)Uô°!  ‡]©Ï“­s^Ž#ì¿$„ø>÷'ðþ<Á\3ª¶Ñ²*ëªÔuÓ^°®q'ó×!ãäü‡ÀÓìm€”dž¢9~F8÷«ýéžWüwÆUÀ2÷‰ -Ùm¢–EÐ-§†1heïá°ã¼Ì¢}i+2ixÂ2‘]ÃLJ|í7³Nx¡¤ ÞÎö€,ž5zä [[OlêL}ók"›2ÌõË¥9÷õž\ AÐÐ÷êlOnDå#`îHà .ð4U÷Ôp]Ä<QD´GÄ–jùpBÕûÚLàwæS˜m8aððpàYTÚÀ5ØU'F !D͇B±"¥yFµ¸̘sµÌà†#ôñœŠ?‚Ž „½/EDYf¨çW¿>*!IZÛ$¨Ç,ª›¸[“gêǃÀ!Ä%¾ CPž™\ÆíÇç­Ÿ€H6C•Ümkkõõõ‚y‚®L)(¬š¥ „û.ÏÉÓÚ|ñJkå›ÿ3+—M²ZVjP•,+GYR¢œfÛ®¥%´ÅqbŠ$„p`Q—°¢Jg Þãå•Y–Á@OOX-C%aú4±¨n €<ŽnÊ~§¿ºø¥¿íý ÁãÚPƒA_¼ºöb3¡uèZŸ] WàVÍoPs[AU‰·#¼½§XŒ/ :ÂA‚dM×@\Ärà¦x(uML»ùB¤•ÿë…›Œ[ݯ }‡Ô„VEWÏHÕ§óò:æ? õRÊ C9.¾÷£4ÿ#Šxy ¶z€;ßÔÉ’fBSâù¯ öÙ¼ü¢Æü±$çm쌼FóÚ¯žô3gÏÿ1Ac„“wg¹Ý‚Z?¾þ£¨ì£ò£zLA²:L6[OÈ• aÁÍr\Q+& ºw?ìtR©í_E­ àeо.…L*\s^û¡x>|„Ãlö”žüËÜó-îŸÖÖ’ùÿŽ7êñêHÙ¶¬*(ˆÙ Ò#š3m”Ý“†aù‚5èlK#Óž1^ +°¶]Ô Ãú6ìÒùÏÿ›©‡>þô@šÖ~y,ºÒ$ŸÃõô$OØBA«^Å÷vÔ˜WÇÛÑjÙxõ¾§Û–g¼[_‘»Ð¢øÀ‡Åí²ê¤òTØP^[ŽHUòCíÍm…¹Á$¶â©;¦Ýå8Þ%Ç_>?‹ Q Æ`a¹ú꫽êêj‹hPT¿ÇqüΪ®ËÇb>Ÿ‰Ù‰4WÈ%.ȈÅˤIX1 ;šà*8p\OuõÌÊ&dy'¼êÐ*À¼v•ÿA(ÑõÓ‹ÐÒTöc‡¥8y uý¸Èí^­#0ÜîIy>ߣmAhŒt<|ðÖRs›oÂbD!x¤Z3L&î@GSZyplÛ4Ç w3§šð¼âÔ{¦òØrìñC® |˜0hñ$·{ÂT˜JW|øUIž¸cÚÑ„™…•´'côäÁE á¥ç8.2 YÀ†lÒT·¡>;i¿Gž yxôd½ éÇ"¶ÚNôávDl; T•ܵ!¤&Ù¾ JÎÂÅçü] =e6ÒPqæ›ĸE9Îu¼Ïó=¦>f>D÷àCk{cë>lÆÐ‰}`ÁîذP60w#t™á˜)JÀñJOÀÉJD,¹Õ¡v¶Ä¢ ÔŽŠÁ…‡L{™ä\ð«‘…+™r«qÂÇTÂÞÓñ¸õ²%"-œ@ׄÄù”«ŠZDË€Âþ`bMö g*í©û8„²øÖRÖªãö7¿~êaç Çïýàl‡ÜŽR*¨|åy*‘ÞŠø!&;hÌÚ³H ÔR2HO!/$¬ ’¯<ÕÕW“(#Y‘Ï÷Ÿùq+†êq5p»hk „8ù°ŽãŠ\Þ»€a¿©{~´ëuç|sI'z'&GÒŒKyì4Œ@À¯ÎÕSp•p\P½Kwi§Ý&€Á‡¹¾Y )`¡{“þ³ª°K½%`¼Wç©p¹‚ž-¶ ]J”—CXQH¯ë!KÕÀ¶áÜùbøÐ×ñßâ:yü3O èÖð„'ʈV–2Ù#h½€mÑ­ã.¤j(ØÁ™TˆHå¡ÖðáR¬”¯JàúÝzf›¡ÚìD™ö⛯Ì=xï—k’ÉãŸ0ÍíØDíp4g²HgsèËíŒãLht%Z$öiôpƒ#dÓ^¶õ”ž€ˆop@ªG(iú˜¾íÃ_ÚÀ>.¤¡ªS9×§Ÿˆ±…€íƒˆ"ð½#R>i ´dቩ¶&hW’TÃ$ŽKH`5$îÊ{ȸ2 c-Ž’ÒK›°€É¶nÊ‘ó(xÝò› 9)®ŸßÀköãÔˆÔ²^w€½m a4Tÿçh©ž^ÍßÕŒc­j¸gÇpÝLàšà«á>)â Ø3¥¼t6ЀOIV²îöþûïïÑ3Šò~€–áX*4 €åHä×Ì»m dj|2™Àà²jHÄUçò _Ì9lnGl¨rœ¹\^7~³yV 𴵬¬°Ä!ĦöøÃØÉÂÉ—™¨X¡ŠNÚ¥/¨²G_>*¤>h5¬yò«´åaø*kËØ“¢0¹r+pãd¸Â…Ð}4âéþ.Y)åO’˜ÉqQ®w]f˜ª÷iÕ¸áI³/:é܈¹æ¥Õ­¸íªyçÜ2r·{R؆ì}òKõ4T×õÌv?› 1‰pv µ‚ð‘(€¿·C 4ªzRG[å•„úí ßö¤P÷¨ :½Û´–Ðî`/K“¶ÜI“ëžÁ€å $ÆÄëÌ#KÍe4øšÞÉÆf’6š°8ZÚ®òzAlânNÊ=ر0tÈ^æ{ˆÆ.ñdœ›²ñb4nlAÇJˆ*"@¸ü¬m „Ç¢„}ù¯E¯Ÿ|üÄ}ùÝ‚qy¸R”Iäç]õb¼¢xhº#¿‚(£¬Ç óœ ŠtXa+øˆØ*쪬ºLÝÏ…]õ‘$úìÚÑš86.^/€äsZs9÷Ë9ºZ\ÕkÑ•Øôx ÚÆ+"¥ @ô@l)uò:ÿà‘WêP»™âx!¾" )#=¾Ÿ…ˆÀä#QMh yfÏyò耯Z¶ˆš~-JU3̲rBH9€hp[É.¼,¹›Neá9AÕ+S‚7íyò—Ç}en{(üª?a´Ì$žžðò,7iE¶±ÀàÜÙÀFuµ ’ª¯G;çYnÄö=¼B‡~„¼j>#å·¨ÿØýˆ§7t бóåÛÔã£V}«ªPUQ¡:#æ©©l-Ù,ÓiTPf5AoödŸ çtz€¤¨JëÚö­&±èæ®`d ðäà×ðu·ÔCGaº ×€ˆ PAu-AÈ ÔDmœåk¶Rž‰¸òXT˜ÆK‰‹mwf]d]YX™ %^à|FP¾·ÖNŠo„@Š+,Õ£ªÎÚE•±"Âx5`Æh4'µ›¬ø·Žpß •ã5$Mu6ÐÚ¦Lï2S{¥̳Âkéf5ÖN%¸B9v6ðº©À1ó'±“„LŸ>áº.á!'ÊÊÊ€Æ5KÄ£vÜ‚¬;̉aÅEù¶4,èèÌV‰¸ )uYÝ2áCƒ‡g+@“Òâû««¢+ ½ ®~%¡CºCºGu%¤Y2±ËËwÝëÁ?c;刋ç¼Âü# OSË¥ âóÕvÞe‚ðRóÀMPAfõ'PËXË ÃUˆ‹¦ñÄßðɈžl…{YP!4Äq<=Uõ<¡ÊNádó=\‚ÿpr¹Ö÷Ÿ=êû„ä³.:;suPq×~¹Õ !Ä V‘¶ °\í>Lè÷ëøú5nÂvÊ‘Ïù;´ÜðÈ­SŽæxö  ]/ *ýúùÑ ~ÜXõ·m]ÒØQÄd¤‡U‡8Ù˜Çë˜ —ס¥E4å3Ô[v;ìIÜÿ)òõnêù–ˆÛ¶ ‡rIeñ8j¼2 rªÎåPOiìL!I(Í)š^åId¤f‰jHÜ`{Í^–åÑÞà-Úå’—A±€ï$€« !‹Bœ›°£ARb ëž›ÛŽ86PaQm Õ¤€„r»8Ð^azaªem oÜÆ[àYBÈìœËã€[ʙԵÔÙÀ© TŠAK;¨!˜¡P¯˜_^7–¨)4„dÄiËi txÙö•¦Ì—0ïSM59!IBbé(òX#qIÄC]x–÷¼íKT^¨î„d ‡-ªá<„ã8C²„H$,Ȭ'á‚ꩇQß¾•°â•Kmm`œ"¶€çÅyNÔ/å'Ç*²´ˆÙ:yWº°dÎЛ‰.|µ¦(‹çjq]~ø@OåØKç¾öÏÛ¦ëIùµŸ ÃE'Ê[¦Ü Z]µC¡VFKó=š "ÿÀõ:ðɉ‚ ˆÒ³Rö´6½dÏÏÿ’uŸo:b>´™•Á¾ƒ«QÛ/¦dël“4*!‚FbæzRÏpa¢ÌÓ@¢'“–ÀGLy?‚I¶¥É_JÑ-¯'H×*ìpî”t8ÿŸß<õ­ñ{?ô½-ÝvÄ+âHÆ’¼ Œ›PéÂ(’ØÉà!¶ã*D/Ć•¡bp™¦ á+ —c†%Lކ ªäH9ŠÛÏÍû÷1GqÒ²¨»½"Ü «4lB½°âzò,>(z2a‹*pÐÐakk‡›JÖ¦µ£QîGxÄËÊK<ÌJ±”Û†Ÿ!»ŽW… 75(èÐêÀ@ÈPê\Ûû$tÀàƒ*x,é%±=`* ¶¤çøaWü½UóÞ,-¤û*χ§]“1Ø=p  á~2¨5ËK+> Äʪu:\¥ãõ¨ét;RmþsWw§W6-„øn¡Æ{~Bý®h”ÄaâZzrïîàЬ ×]ëÒHmÙÇBá=¯ŸI¾×ƒº™ r/€oìvè9Pþ£„aXðnÄ ¶ÊZ–†‘¸}S¨L$П’–LM©4š $c¹Mo Ú9àõR KÍå&fñbš‹Ia-’5Üo£Þ˜ñ¼ß–—VêÅ~L3@P39/*Óæ}âШ…þ$¼*ËÒýD4-ƒÂc&­Ì†D7Ê"ÀñÂV ²˜ôÛêª÷,QR„ŽÕXÀ)60ˆÖ.=nÈã.Ìë9ñ"b•Fa^³—T3î$5å/8À( ˜hiرC¹!q¡á¤MÔj4JìÙìó%Ó¦Mì¹#%¢j5ÈŽqÿ„0±z6°) ?§y;´Oî˜ ÌïF v4ðóäÇMhèñ@{{»lmmEôïßß"x‰\IW§ zi!22ߘ–Ë\'­“Ê ”•Õ"/ZÛZËFàX1D¢e *2™ÏKƒo¡ó‡HaÂø¹<×'\ˆ _9æþÖ7ž‘7[’½#'^>ÿå‡~=ùÂÇßý ´Â_˜FͶe•V»²Ä[â¦iG=ù/| BØø©âØâ®ÞRÀ47“Û½ÊíÂCÇŠ²N®>¨2nà0½ ¢¨¨NøP±Õ²±j…ËÉy(z£5T^ YÕÇQå2°ÕäCÒËÃs#Ô‚ª1ÅÛqêýó_8î Úg§ñTz(g\óÁkÿ¼}ú—ª/Ðp }ªYH*"›J ‘´·2![óX¹@.“C.•¤Dß‘ƒ ÇÄÕK×6yožï1“Ý`+ŸDœµêòÿ‰'a‹Úë[J·›¾AãÇtGm„”‰3wE<ƒ°‹Ê,ƒ*µJ%ÝDïWF{¿bZ:Š"µåˆ%³„N^×4Çšà#è1ŒûϾûÄáÍ8ö¹eÝíaõ©r£ÂJè0)v¨—GʨªAie;¦÷#Ñ8¢ÉrDIÄâIj0&Ðëfâ°v™µ¼ò&6­Ý‚ß›pÁ·.ìËïܲ=?üÈŒ…jëX~aAzÀêÜJP¥(l¶{óìR¹›žþL¨þùœT`'zp¿JIEf~úÞS çƒ-Ë: æï"OS¹…UkE‰w sÅräχ»ªLùÓ†¦ÎôXæ>2Y¾æˆ„³L¹m£¶Y€Š˜û÷ÓÍg3‘-„ªf´-¡×#Û i¼{FÍsIyüÊ_Ià¶©ÿky¡ŸŒ¬ ÞC=§øCgAèI°Eáhe,†>Éš3eØ’Î(Ù,*s9d=°E8°tCy‹Dëy51¾Vçº/ VY€[@%oË"ï„§þm Î`j¹S$”2“–É}!¥>$= UÜ÷øÚ1q£,¤à®T}Ñ%„yûÛÀÔÑÔˆŸÌ^Úd0â{>‚„ôhÍQR‹*L®ˆ $ëJÝ3¤Æ€HÒ *h%„hÐh£­¡MYÀhÚÍÔ¥.°ŽÖÕIÞ0îj麿÷€7LHV (`ƒñB}9JÖÚøÜ{d tO|lCdš zþùçã«_ý*N8á>l–èµ^ee¥ÌZ–‹Ü–s”WC8Ô4 -5Èç#ˆDjkêÁ×ÞÑFðHÂó¸ßžæø<ôë›0¥¯ 'A–ïöТáẠwÿÍÏð°%¬j>"à(_3euÂÇ:!Ä5ž›~ÌSø”„ ´&€[ø¹4&¤­«BéT^]O>Šª†A(`3Õ¨â4ªÒ‹nëao®¡™D¹ª ò>辺ÏI|ØJ-Ë6N´îNrEaÉJZjI5µ·ï!Œ¿ýÖ?ù-›/ÞÝ‹ê9/4‰Ø‘“í ÊÕÀ¬²–Âðl»kšKZÛ5¡õ¼ˆò ä]™U)õL2jpáD\„?G"-ožJ°íÚC ËLÄ{&*9»b`‘Ú*x —´Úüþ4:Ô†cÎdðËiï}Øt”W&ƒ1Ûaø‚©2c<Ä– ž±Ã¤÷Þå,NÆ9ö2VRmp\ÇÀ‡ëƒbˆçºO¿ùðAÇî}ÊKKºÓ+‚÷¹~Èä tãõH² µuu„ê6X¶.áÊP^Xq vÂB¼|("¦p½úþ³¬`¾ {pŸ^&î»/Zþõ,:è É™Im†šÎyu9ÇûòegöùÖoÿÑ$ÑQ ^ÂacJ!líõüï&=8œ˜²Tî;N·ÊðšçfÐ86ÕØ€lkâ}úABlK Ÿô³ j¼9I_‘Bø$¶Ž× V’fÕÕ^&B^—O6ðAå˜39çDHœîyr¢ ñEÖÁbH"Z‚KIT* 꺻üDá#•Í cÍ ¤7˜r¡~Fa¯©ë|E<5ù€Çr |"2èOsÝ»Ôíô‚8ô‚üÀIÔò }Ï„@hKc›Ð§8m‰±6GSYRHAÄ£íçä1ÈuÑÉs6A †ô™”ýyŒ  êÉAÕ"‹ªG¹Êš ·m!iχ†£:ª>(©ðL½f¡“¼kà!)$b Ü^çÕ„½”_±!°m•yfµJ Ñ0hÈJ‚;Ô=Fåý~ôS¬yô =ñ$,¾çoØ8w¼Ð9Ž‹š” ÊqÄræÌ™žiB(6oÞ,-Za§ôüˆ™3…%0Yƒƒ«ó""e€C*ՙɠ¶¶Bu8omÍ¢³#D<¢¼+©N‰X<Áí8_Ï b;ºŠ†Ôù"ÁÓJ”Ll$­ÔùAò¤Q)å#è½p…zÑ ÷ÿjÒq÷•¶eÎÉn)|XZ×cõÇ3ŽæOøôÅOfÓ!'A‚µôhe´‡1°òº™UØóÏä˘nÿˆšò¸Õue„ˆŒmëß2”TþÇc,Ç¡=,Ñh‘÷ÃVV‡/ÙÒÚN—¹Zi3àQFMß–Ùõ¨/ß»Ït_pÈùo߉í”c.~·å¥¿í÷%!„`U8°ú ] ŸõܱpÚº˜2žŽ ÙPºbþ 5Æ‘†› 8 ÂÎ\ßzfrE$ž0Þ½HÈÛ!þ{ßfÉQ]}ªº_š7qsVÎ9G$B $r2L2ÆØdÛ€Á€Á&ÙD“MΡ€ÊY+iµ«¸9§I/vwÕýkoW}ÕïíäËo®¾óUÏ›·=]Ý­î{ê†Ãã”:̈鋎H,:Ùw䑈ï{ ^áe'Í ‡¸þ·wã9/=Ý¥¬Ú½«ƒpçÀ¦2ä Dh 'QÄ:¥¹Mú»2ؙ̡‡ÖÕõ VÇnSÍNÔAfûÓ^2¡V­<ºüó‚Åt§Ÿ±>ÆÌýD³Qãóš+Q˜1 Â: AÐÞÌÉVì‘ÓÈQ”E‡Œk·¸È‘FÁé£ÿ ‰)˜té®>—Ÿa[OR»]uœIGJšRòÁÇOŒ€\¦cõG>ø9À$3Q‚1lÔ†Í[Òùµ9Ò"Çø¹»Ž•àÌ!bŒWzØDµZq)g.MŽ£>q¤Žw}n¯]=ÖhDú~>9ÍÉ ¤é»íqJèD/è@ÿNlzð>KL=<ù®UÚ×`päÙ¿y{º" [ :O†k„$ÖJ)?Ï`ù=D×ABî6$¤æˆpƒDkpÜX=X GD0«X@G kul©×Qm4‘KÂ’ó„JCÔ›¢Ö<±°-¢»mƒFæÿâ¶ÐQ†æ!݆ôŸ³iéÖœ¦ŠH"tÆ .&_¤¤æ ÌÀLƒ)rè’@·m{«,HàUÎk¶œAƒR„ðB„ÊþîгÏzxzÍk®\\v9¶Þpæ|àƒXòâ—à¦}úŸz _þ‘„Ùj°Ns¢Ò‰úNZ°Ç™d¢7€‹BbŽc"£° „­a€AÐiJéÊIÀ{·ß'àþ819)g!þÅã¼ä¢*ÚìÄ4Øò™€W`‚vÅW)å.(ñöíÛƒ¢± Š›—ÞVïËåYé<°ùÕAH @``G Õ…B7:Ê3Q(Ð-ª(—;‘$ƒæs ³³ õz*i¢³œ B(]dÂ, \ÊÕnÝЈ`¤Ä¾4½èýÓd¯|÷#·þæ«Çß–Ë•Rþ½Ï‘ÁÛ¬`þAWSsò ¯!ì#&¤²äÃÕÊH@æšÚ*®ÖÔN>x$‚냟ŠÀ…º{;Ѐä˜$€)4œ«K°;ùØ5ò"µM½ÊùcK>˜$ Á!øÉ­b‹„Ä)îf£!^xQñÈ¿·®ýö‰Ký‰çÿýÒo`&„ØnŽýâ ”¿6sÊÛÜ÷l›U‰4“›†2¡4!‚’Hø¸Óô¨™à¡;E­áèS…‰|Ä™mUa˜#JùŽNä»f¤ÄT#4ò!0ë(„˜Òi¾í6 îdòÑh&) úpénÙðÆw<¯!¥8ÈnÛE ÕZû£šÐºBª&æ;„%[?3-QœiSà.uÍ´ÀðÎUHbG<|×'3¾ø¦Ÿ~îy¯½sÄç¢öbu–€¤£k-¦©Z6]¢£¯%ôù3A ¢}ESL ä,B±« ƒ›¶3ñ¨íBS£Î£:Àu˜¼Ùh‡Èv%3mjg“‰Ö5ÿ@:q¤#%ÔÎ!ÇßAÒˆþ¨5½Áu*tEèBÇL¡¯ž X1Píágn˜%Ú§ôšãF\ªC;X„ϧœñ\ ù²Q«¦½n±NÉG>ôàè7{¥|  K’+ï_Šæð­ l„È‘5OT,%Â× ð-Ó½lO7¹×à$`™„1äóùý)¿dÛŠŸN´MíØ¥0i Î6ßÜ“á^ÿIÀ—€‘DýgÂëdp­@>ІèÊç0£Ç¦ZÛê G†”bgº\Ê£˜ S¹X!Ÿ$‰K>"‹ªEÀ(EÝEF„Uæ1ЂˆG²ûuü> $bÂq²LYÖSH#³¤' Eá Å=¹Ph%$€Ø‘-:»„¯™{ø‘èǾðÅPÏ8Ã=„yozÖÿèGhnÝŠYÏz¶"ròëÞ€¸^DZo7>ñœWâ±·êeH{ w(à4JIˆž†–)«}"2ó€HçÐ `1i °:`1G±EãS³`;á8‘õXÒN"ÏÑZÿø¢ÏÝÜ g^Kåå'ßB¼ý~¢:ưjµ "r‘mFEL7¬¦,”Ë—ÝF3’¶#”N%``h'6lØ¥ ˆ" )" ÖØ9Š˜5³¢JKÔªiDA«” ¡µíŽ"$¶=+ãäVÉ›öêFm"L§½ø—’ |þŒL2ÁG ù`‚fœBL.Ý1"ù<ùà1˜@ãí›!ˆWØI7ÒëÛ&¼ƒåÃÁ–G‡Nôkò!ml•BÐdœY^ !Å~E8æÑª›³sî‘%)ŠÑW/ÿê±ÿ¢4Ý«”þŸ—¿û‘Û0Žû×·À•÷üæ9÷Ë@žžŽVò!¤à㉹›•àóšy¬VÑ̤28GféíaÅÒ58ïâ“ÑÕSÊFyZ¶ýê©Beg?d¼¹în»ûÐÑ;ƒkW¦î$ŠiÕÔ(äB~Æé¸çÚ›08ÔŸ:nLBjÛÖ Ìüö×nxë[ßùœYDôY­µpÓ–È`€WTs…Y ;Ê$ A“¨á ½’â!%Pêê…Ò l^“ÕN`XBòa·$ÉÖ]5)@ÓE˜hÄŠ‚ÑÏM¿æJ©œCïìX³zkùðäˆ^:u¸V'Ê ¡ÒÔø(Q–|0©æcŽ&@@8RK:½"<ï“(ž±$J£‡€u¦í»:h'Ò&@HÆý3¤Äqb£ Þö?[ò¤ésLú2Ño†”°óÓxºmëÚõزj-(‰]=Ÿ%éøèG BÜ7qƯv`š-Ä$-þW0—Ó:ÜE–²‹ýd¢At¹Ö¬(½í4àA›ï~Ý[¶‹“fÏ@NÊ ¹B8"â#"¹@2éÍç1³PÀ†zÛëM&"U¥¸˜¼3 Q·qˆ0Š!•4ßZhXòQ±Ûd#B•€Ê“Ñ"H–ŒdEš HjÕ) àP™î?¶Ñ ²OÚ/5}DÉE‡×ò`ҲݦoU ò™:™‹ã´×¾ó9ÕÇCØ×‡™o{zN8vvBÕëì¸ÅýýÈwwcáQÇbèâÄ#·ÿÇU–!Šc‚Õ81 ¤?Üe0×à8eéS¾:lz–Ò@?1ù`ì±ÇDèa®NÀFâÂ'îÔØ< ù;©S¤l[ÊkàY§ýÃ=D?µ 0/ CÊ7BD§}ön­G-t*—Ë\¬î.—!Æò¬³ÎÊ5 ‚zlY aH:ÕÀÈ (’,R™ËåQ.ô Xê‚`Òp*N>ßBA އÕò…>ChfCŠAh±ó—Ö† ½± RÙÚ靖X!þ/›Só&¢Ö´‘‡…)·Ô$ Úȇl!ì” J @P4ÁGùb'šÕ”Jì 3}yŠD¡£»]‹÷CGoQ4]Y‰|0@$A“|¹Â\Ì•´Šùpz'™ÕD åUߥ&:pˆpÁ%_8ò^!äï ùðsl•‹ßzßšÑÿnð_BÊŸÊPÛÉ1âfI!Wôò©c;c[V¯q¹ãfLœ#ÃÇ[; ¡ Zȇ#/@Iƒƒ@´ ¢³‹Ór°sÜövïMèa^âøóNÇ­WÞbHÈvG>PåQ·l«¾Ik}i&åmz/í,[‘@«~-È 3g¡ÐÙ‰R¹ÁDƒ> ½Tïtôô!i6­_ïîÏ1çÒŸú›ÿ9æ¹/~çÃ× ÍÔHbuq’Ä^½œDÚF¹ žáÇ#O<wܶõÈ“JC£kLÕ¤-Bou àT§€˜òá¹tBF”pÄÆ€5¶Æ³$IkƒtâIv*Þ™D˜Š‘Š yH¹¢öȇo.§ÉB§ØŽgZyòổùȇ‹ZÕyA·[êÿ\ ‚,ñSØ3ý/=õà Ô††S]9ßL$ùpxR|Öˆ†~ÖþääA >øý—j6Sa¿4§ÚG ,1!`6ˆÎç mÆï=¾ ó; د« Ö&MD‹¦5"]\#’ÇÆBS³v4šèbTÅ+öµœ4ß) ¯¶䌔f"P7ˆ1  ¢ 5"ô &p$D“½YRÀJÎëL”ž„ݰù„e¤$ä l'/JX·$$´Q„N«ã!á­$ (%/dËpÿ¾Cã?û):KeäËeþ¬aæ…9sT*è¿óNôžz*·ì=ålþÝï°à°Ã°hÑläþúm8"ÿ~õßÿÍ¢‡eWènIH` Ój('2 ð⇃Ù62Dé¿ë¤”€ä J.ÍMPšjÖ #ì·^ VÔIC'ÄlÛ ›´þö©ZŸKDÿt0œ€”䄸{AôÊÓ„xù]JÝ8V˜_K}Ä@ …À ”BâYç¾C×w˜v'Àˆ³fõ¡³w.·r,°SZ€i¢Å«6a˜‡d‡U¢PdnÃÝ’$´ÞÉG!\þ~" -BÔpݯ riL>þb^}7K>´lMÑTÛj (ÝF>rŽ|xäƒb‘ÿM°f¥PîB5P€jÆuJ:ößåÙsPÈå™ÌVê1™-@çûÝ HOn¥]äKe>=qC©x$òÁðäÃE„àŠñA ^!Äù”ç‹´òºë¾ú凜¿,ò·T§¿üMX;ñ¢ß_öàõ/x\âX)[Éì =‰šuvö-KÇxK«ñä£gf—qÄÄâçÚ.9ÞÑöd$Kº|êYâ¢?JCíìç¹o]¿…rå¾^,

²Ñ ƒR¼—?5QØ‹N‘ÇߙÑÖ]±Öì@çY)âê(¤A! ”‹ø\ù6瘹7_.‰R5O '§\õäò˜](bC­fPg•õmIŒAKD:¥D¡”ò9¾1u”ðê·;’a lO„3e€œ­B"×é"Ñ Nuˆm 2]±Èª’ M®ü˜k$ ¬Ô@DÀ< tYµaS¬š–””`£ v{†—©ˆJ¤ájc°ò×C¨ýâ§8ô¢`6¥û{ì÷©Ö_Ý‘úÍ7ñqÎ:÷\þìÉo|ÎVW±QÝ £¢Û4JÖª4JsŠÕ É /\¸À ¤mlEºŸ.K@òNQغ›^Ö#ÒÖ¿§¨k`©&<¡tJV‹x‹RÊÄpðüívM ©GJòBÌB\}ºÜ™$7·6F`ž´ú^`§%!dF-„HlpKBA.Ï~·ácV©P*P ʈbÁmç‰R1„”1âx€û£KÙÁÎËŽó}‰rGõºB5ÑÑ"Ú{¢EÝ…àÚ¦ v’Ò•jvx$ý—è‡ÓȬl'Ð:U€&rõ5“7Mz÷´«0`ð¶ K’(—‡˜ÄJb猙È; uä éÂ7½Hõf+WlÄ)çÌô£¤ „Ì<¡¦æ;ùRÊšô#©BE®=É®&ZFrÛB°.LFÙÿL€xØïø´»d4ò™hTÖmàs°ê‘Çx\|øA,’7gá<„§ÓB:ö[ˆ¡ûAÌäÑNVÎ>c,­ŽæÙ96“&â¸B1„ØKWŠtÌ÷²®(vÒBNÕ a!Àv_›îÅk"åê>Pi( ×SD íYðFš2Ï` š2¡"âí¢x–PO¨Ý>7ÚŸU€ž4…s Ò)½³Ðn0ò³ÊŒ!·T|'Ëq0gÉä—v`h¸ßÖ|¸´«4ú1gÁ œræa(w—ñ»kåó¸Æ#¡¯Ï„´}ÇíÍlu¨Še·?Ä~H>çÓ‚l݇—øâQϸÌ/öîkä1à–ƒ€?p±‹"ï, ‚dV)\ôÂ1nÂåkñŽ#»[z²ÓÅ\Î9#¢£!A i Òö½ÝùëCÖVjØlëC¶% †˜ˆ(”S"Âíª¡¿™ö&O@èׄsÈ#M÷é\@NDÉj‡¤)97 )ypʰ‘’>"Ì@ÚEª,Rb‘³*æ5‘¦XõSê̇àï0I)ÙöÀ' àI[{¡ –¬¿ëN¬1ÑçòÂҺ̹|ü†k¡ J¸5w,fa'67Vb¡L#–xP¶þ†Á¶‰€k`‰Î€Ð "­k)©äÓ±Šð½´€%¨@Ê’²^NÔ„¤ðZrtäd\ž#äEÄ0BJä‚  „¸Ê¨á¿‹´¾ìn"ÇÌW(àëÇ¿Xš*®“b"*"U?¾¿ DßR aOT !"~‰DQ!sùH’š :»úØq¬V"ÄI9݇áj*!eª?OPPü0WBxÓT±Ú9O1´O—°ÿ¿X+•´æ¸CÚ&ÛЉ#9ûÀõ©WþÁ+‹aÚ'ÙlÓ¤VŠ]€h!n“¸¨¸Sqþ¯—k,»Ú7•‰ ÊE…Y,ÒWÙºõz ù0à‘¡¨•|„ö%ËŠ fFÊc„4„~ðú‹?`?»Rȑɇ#”:‰A¤l£‘±]†áþ ˜ ˆKk8èÈÅ(•‹Y§Û’¬s­‘0qiW>"’¨¤uÞ--˜œ²{mp›k5”7mA©ØÎýf¡ØUv-«3B‡cí9åÜ£ñàÃÙyyÞÅǺ£6Òárã ü˜zùȇ?Gž€ÚkîÈèÊei}ÒÊâ㘻xfí7ïg 2°sÞ‹ô«ÜS†èêD´i‡»î.Öý¥^ò¾w}víÁ‹kêD}:›rG‰Ý`ç5W, Y«ò3\ő˲åº\¡À‚“¡ùŽ”bš‚fk×nO# …Š%õ(`NÕ¼O¥½œûÊÕ€LÚq¬1ð…ê\R Ct†9tçsØPÝ•–Õ@5ŽÑЕD£SÇèÊ…8 £€™…<66"Ô¢ˆ¿Mi, B$#%‚tk”†,‚#X™ŽY.®C6·ó„Fé…9:ÐeÛÜV¬C¿À,ƒ^98A¤‰Çl‰AÁé…dƒl×gˤWõª:.Pwy1CɇÊó}~nvŸaFk$´$én jÿ;ïe©Ù½ ƒA«’÷ÿž·ËEá[ wtÀLââõ´À]pÝËé÷«””Edç`ëF‚ ( !¾MB¼ðTà»HȽ@ýX`>€KâßÎ(.½£ÙtbM¤b`ËÙBТ$!T‡c̘S¶=Û š¬z^,æAШVÜ“¿X @”vבFOO/4 nÓ+t•% 4GëˆóðÜ_ËFpÄÜ× ØQ«¿¤`9¸sáÂïQ*€HLÍ3‡s23äÃ#Ha;7)Äô&Þ4Y„Š\èdGN§îÆ px¿{ñLguahÓvì|jbŸvÅÐ#ùðç…Ç`7i0W„ü}S ùðíˆÛˆÈÄœš+7 ^¼~@¬pÌ©tk­‡fèŒÞI6íÊÁÝCNÿ…áÈ—UÝw1?ׄ¤ ½f;š3ªÈ—Š(t–+ä!GNÅ^q:Êy —ÃÉ'.DWgÁ6Ò¡•™|DÖ)÷Ñ÷ïÝÜ}Œˆ4]š÷¿mÝfÔû‡ÐU.¡¼x:z;‘ sØ[ p¡a 𛾓P‰.£Í’(&­y~:Óô¡¶f#ÊGŒpo¥Ï WÌ!‰CÄÍ”¹Ç“(âZ° 2i-t¼pÞÔ øu×;òõØ“©Â§\XgpŽ¹Þ£•x‚%Œô˜‡jšÓ’&ç±…(ÓTÉ%²º¾»b;ùàm+Ì0QÎØ3» ÏxÁ©xü¡´¡Âþ‡.`G~Îü^w> tZÓ)‚l#<÷½ÔøaóÚÍØ²nK¶ã£×pâQ2,ûL tä3.cò±ÏÜið˜ÁaŽ|¸‰H X2ƒIÚø"YñÒŒù@¢œ Ñ“Ëam-ÄæjƒQŒŠJPÓ(B·”,xxTg «jÍ&*Jcg¢ÑhäHÀåÙ[Ä’)I9dÔL´pe \ª˜%1å¬S€P1ܹé3è²…éUýäuJ:¬>ÇþAúó“H, ɦ …ÈA©O™k£/¡û›(Úß9sz¡à‘!Š¿8R” ^A½Ã [lA:Ÿ’%93íßË“%ªÂ×ÁtÙùΔÀB‘©Ðác*Õ‘¶x]®­ì µÖ?<xå=DµøŒÎËŸƒ{v¹ü¢£N9eí7oºI/Läp¸ÿ꟭ÀƵƒxÍ;NÆÜ%}\àBÕJëÖ  XÊaFß<’££$¸–c݆A TP*Õ (@2 ±€öWÂÏF*K>xûYöÇ–ˆ¨‹ÜÃžà•½mê%^{€4 Ÿû×wÔ1¦x¿ð¥=GÒ€HA@L±ëŽ`§<×B>B¿òcAHâ&ÂBà‰¦ÅɌ㴵j­ž€@L†D«ª·œŠ>cêf…F‹y„,`g¨:\ÖU¡›Qù™´«0C>äÈäÃ+'PÄi F³äƒa $‰1ãB³!âè‡F£™®šv”‹ÞÙ¶£N‹y\Ä׉5ADi'3%kB JbhÒž|9Q¹ìýà`Ý5¢ZšÉL„|¹Ä‚z2f£›Óg݉̚%ÍE±\ô‚–vÞÎ9su*" HŸ« ¡ ù?%"Ûóå9_ÿãî1wýCƒtÔ‰âÅ—øÉˆzêè˜Õ‰bw‰ÓFàç=­u0óœ‡'\eɇ¯!ˆ©£®•±D*ö„´Y«CC°÷L†až H+Áfâ(âãÈ”f—Qê.CBNùVY·n;î¹oÔ#D¬MYPÔ‰ßfŸGS¾®Dj7ò1TWhÄ! ÙÅð¨,ÁT# BÛ鉗Wào»Ž °$l2ÖÕ[ÄIç†#ÕB¬¢$¥×Üô^vñ‘»/@Ù쉽asÏÄpÿ6!ô².êížïî}øUȯ¸ãekt¢>dÏMdTÎöIò$°î@àø$!55†ô‰[õo6šØ\©an¹c* ~Lr"‰“6-ËŒ¥0@O>‡î0‡õµv6š¨Ä vj…Š"t™Ÿ{‰ýÌwâB' °Ò(8AB¢0ÐN€€lÖJ: ÓïiÎñN+1ã•äHX’ Ȥh¹}çìÅ(£>µÊ9ú8Ü`‰VqÑ|*5^lKÛ”¶Ån À&@Øú’ h#’áFˆ¬dP òD$°$£“̨uàÔ,&"J}–Nè0SįÔaIIÀ¤Œ}Øê¤<¥e¶ø_ÊÀ@^¤”úÝIÀ—î.?¸DÏ ”:¢<þÈÝw À¿ !¤ B>£Ž>m~ø•»qÃOàü—‰Eôâÿp÷ÄÞ¹sÛv `þ¼y,îE¬dÞäš ?¾½½‹Ð×¢Xœ¾v.µåŸ©I'tMœ³ìV2yÔÖøSÚ²›_ô|½ „ àŒ‰¶=6Z¶µ¦knøþ)_zöî¹Óa>üÎcVÓ"P 4åüXŸzÅä#hq´½Êkh[Dzbº‚ ¦o-êþ[W ZO°í±M8fõvtè2ÊÞÎy¦o%,4è™Û˘³ß\lY½Éäþ¯!òáð h'-]Q&H>”2HGÂø+˜Q#ÆŠûžDk—C†A[×#ƒ|ˆ|G‰ÁÞ«®‹q:"Y×O*Í䋨UêØ´j3dÐs?{RÚÖRX!ªqG/&!¹bÞ+¼OoJ¯”v6“ÖV»¶V,,ø˜ZW²açOnþ©ýŽC5( l[»• ½[È“OŸŠá¶†f³½=A59s|>øÏMsýW½#ÊäÐ7¢‘;'ú‚ë¿wë/Ïù€VêP­üó´^k˜ùV‘ë*í½L@‚@rÆ“m‚Vž06“êýUô:]]Shj¼É8‹ßøÆ­|? ×9­)K>®1¸S4í Ãý¬]bʤ’(ÖT ëîØ'µqÄØ§ò¶}~¨)];‚¶¼9%Ú͹}¡Ä Öj$˜^‚MH R{låG: œ¸*oë´ ñ´›>nÖåBÔ¶× B‘‰þûE%SêçØÁßÚˆÑê®}ÞOViúìé/¾±Óhá)@EHùq;AtóÝDcâv>)Z.wži2ÐŒ8"ÑB@ÄdI‡G{Z–pÑ È{ýÞ|k«5Öéo6ÑP "Ô…ne†œ’¥Ia€4:4±Ã1i›3¨@Ž€l®Ô hÚj _l )¡(LS§”xVÁ]Øüۂݧ?¯^Ä0GKJë4šä¿r´ÃŠ J… „#í§¿ýsCk©õ²xi5C (ÚÚA«g2`ÉI·ð…í Ï„‹|œ~. ™Ö̰8NÕÀ&",× ë!ADÏðŒ7ïK€ç6”Rróþ³ŠÅ7J^úÀkØ,¹“Î^ˆƒO˜ƒnÇMW>É*ò¿ÿÉcxù?œˆ\gˆ‡ö¢«K¸¾èH’&¤$ ]8÷§°²+éahUãßAh‹Ê1 ìl$XÉ•IŒs¨äføôÛ#·¼h>€_“¦“ rÔ’×* Õö™z®Jô³®þÆñ÷ĉ~Ù ßþÐfì¡©X°;ÑZOÙ‰P§cæœðŸ‡'ÞÙ´ítH™›‹#m›6ö£ÚH;)¨äÃ9ìÐBL»¦@˜“XxÈB³Ú<µÁ*6>µCÛ‡X‹B!·2–U8O¸+K>”Τ`ùÚ ]× @{¬Û6í´ºNë€ ˆO#J<$3§PñîÐ` €/p;ã2çgö Ë@˜{À\€ý[°sK?vlêçëÅ)>Ýα–UQ€Õ#:‹È—Ó®€$¦¯„Hq”#N;ÁE@ÚáqI#Ô’ÑpÔ•ß«­”eŽ’F ‚öi‡–|øbÿXEHŒ¡NÐÙÛ…r‚DG`ãÆ!|ás7aÖj ù °Õ ¾øÔ£ZíIMàE¸È7éĶ•S/Ö§„yÈ‘HAiLÈ4y¢ìHƒDÍIGÁ)¬[;ùpŸùTÎx¨‰xvÅÅ´â!«a²fý *Õ==E_bë\ø{”LÑ' q;÷ˆNTÖKÔwÆP6’]tñ ³çšö'¢òõQIœ¼û?9ƒÌˆ˜‹ïcÔÉçªÕh]½žðbB¥žIlê‡~tùà˜„9R–ƒ øŒuö7œªu?ˆîðc"j²HÜèöˆÁ¸XŒ@6d[dDy5òŒ‰“Âè1ùè4B¤ÌNóì BûâØÙ`bk8a"Ò™ PÉ0DE#JÅ -ˆÑ:Y&1ñ/A!@RdUÖ¥K#¤ñ×€´Ý? ´ï¦E¾ Wf" ±mu{`[¤D;Â’ISÐ ü¾Æ×Á„W•arÕk#!³ ºlc³ÁK˜º,Iê̤zåE†ˆX²Äâ’ÂÝ?‘$ôh`¾×i…C®ÕÉmÑôÕ"è³u °É‘ÌI9'jÔ¯úô»nHÞó™sP*ç!$ðê¿?yçõìTB Qñ“/ÜÃÊÉ3tâ¤sÀ™ÏÓ˜·d VÎu »ØÅ…ˆ•áAîÐ9.V¢–3&„½ÒF= ” 1ÓŸ0Bø.Þ’våWƒ<’tTž|¸¢ß\ë3£HÝöÓOþµ×|àÑÏíY Öˆ×%Ì@bò¦yá!d,^ÁO‚P®•ap  =‹@òÜâfdÛl¦iY{bÍzŒ'ÝÌä£ÒP¸üÊexßQ Ûȇ?¿.½2˜ c+0IcG»Û8¦}]¼*^믢9PGR‹y¾ìØç¼F‘±È‡jMEñ*ÿ^(˜Ëʘ|¤Î§ïüãk°ÿQ‹©á:¢M (âÕG>ïŽtù9£%W<‰¸ƒ]JÖòv˜¶‚ôDbÖ“i%!b@Œµo‘I™~2sAcñ¡ul]Û¨AÇL=ñô‘//2)xþq£ÉiH¹Rn/D@4˜xZD£wzR‰úŒVê;vÂ¥—R½É<·{ᦀA œ3Ï÷AVŸE·¤×*NýK–*äOJ¥b¬}sôoÕSýøÖ·îÆ&C>*4z·Ö…ÝcÈÇï1eó rœcî"lZ'©³¿‘=B‚Á;Ÿ¶X6— ˆ|:½Ì™±ÉžM22ã"÷d# ¤ZÚ|ŸRhÔª(”&Ó }üßýäËàlé²MØÞ_Co_É>ã-1RðunBï}™œzåPìÛEB’H@ ]à » ä ›ï:g–:”#Ú‰ÓAQQVç,QĈw!!Tšzûyg•~¿m(þŸGNî=Ëuª ¢… :š´~ƒÖºq*ÑuDt€_Ä÷ë`m%P?ø¬% ÖöÂyʂڠÇ|•Ž.ÐÆûh#Dã‡Os2/œY,¢¡4§aUãwÀš¶ø»®%2àîEòIäŠêýZêZÊ’‘vR¤´oÏ«6UÀžw„!´¾Óá¢"¤aÝp[$N©Þ†&€|Az–€HÀ囓F 4;ÇÔJŸÚ{´=2’Ðà_¸H†ïê•3ÚÀžë­ÚŒ —VÀl tdjK<#$`îEÀL)ñì0‡3nŽ“®8IþåQM;S@Ld×ü`î×­ÁðÀµxÙß‹SŸ¹ž}ÑÁøÞWÀã˶£ž$B°³ªu€í뫸þç+p÷u+qàóñì—‹COZÂÊÚa.Æ(•À†AÀçÝi¸ˆW†™JdꜵÑÌ?AÍdz‰èLÒ„#Iæ¡ÓF<”u.ãXðè@³ý©o}øÀšùù›ÿðéÕzϺ`)ßRTù¼÷©0q s.ç5páæŠùùK"”_0£ÖÉ$­×üo %`êFxàîUL>ª¶}æš C¼:T.Úȇ/4ÖD"üâÝkyìlvv—Qê.Aí—p$€£#i¦ÊêBØsˆÁ2†Ê¤]‘¿w¼ãœ¶,·ýõ娥ÛCý¬]¹ÍµîD=r…¬#ë\8R*÷¨X6@!”È÷å¡û:‘Ô4‡씃(K>FÈ'D5z.D¹¯“I[›í‘Ã$G©òåÒÍÆž²˜Ðªl©³ˆýŽœ‹ *;k¨­­±0™ùj¯ûáTWh•FC‚\Úìbº$×8(WÀŒêâu*NV’¦ºÒTÒDphÔšPqÃÖ«LÊYœÔñ‡yB¾$Ѭ‘{.òhàžn‘õ(A¸rÀÞÀ¾FÎ hàׯÄu×®Äp=Á°ð³Ï@k ßlOS°”}E’F@ ãq0c+¡sÍÇŠå#÷l“ˆ@Z‡<š|j˜O÷¢Ö…¶ÄGÒ(Ѩm¬¡PJVÇ®öGè¿on|bvž½Űˆ\®„„"Ôꨃpá{Ï„(¸Bâ2“ä…,c­}~«Ý&‡üO£á] êö«`~&…JLW„žŠ…D±NLj‰HÎàkæçÆgÞ¾à{ïÿÊÆ©vÁräÃj80b" 8¢4©Å/“‰ Ù\×cŸsÅÿ,¿å¥ÿ.ÑçVõ½æÂ0 €bÙvI˘˜ RôÎíUÜïj& CuÅ«‚k·ïÄu7=‰—\|´öEý:ÓåHÛÿÇ%ë È=LÇ¢qã#ß“ç¯ëîôXâFd ’)ÛR׎¤)K>ZHªò+Š–€ÄL¦$hÔ#Y¾t-v쨡9Ýe£F#4ú Ss(E–ŒQ€°$‘χL@ÌÜy¤aç8r”GoWÈ÷„üLØM›h’×Ìÿ¤]—'_ûb#bf´÷€ÿ4‡½3Ë(uæPßÖ@³§€RxâH`Õí AHºór"?¶™}Å¥^T¸îaôÖ­ç¿éÞ›~ÿÍnÑDdõl’fÂ5>KŸ“y[ÐôÖéˆÔ‰+tÔ€ˆ‰·#ŠnÑÆ-¢hªÛ²zs—¸åðH¶ÖüþÛ߸Ûw6™€Wì¢E3ñäƒAø·§ÓWaÏÌÊÀGØ (I……0˜tÜ•üïdJ$5M…Ž|8X!¬ÿ4Y"Ÿº>ZÛN>œ3Ù®íThì‘›U‚˜†8ßíwmÅãO "k¸e%^ú‚£qà~½–À:!Cˆ¼†ÓM@‘¨A š$it£RÅ‹>ñl&œ“@דI­D±³ƒ…’¼žC&턵ᶮÝÌ‘(JÒÑ’ˆ·¿%ºÀ—&I/‚8=mF²ÓbrYH¶ŽŠ8*49Ú3#;UNëÝý Õ¹ThÖX»¢Êµ³—ôA B*dl\…„ŸýàlØ8ÈŽÔ@5Á í÷ýð¢çá Œ[^„Ê:ùIZƒP,b2ŽÒÔ¿#œsőعb RK ÆF‚¨±C Dä#IF(/V€"zJœSj'ÂØQÅ#K×8p›;\Ó<&¶•®k/«£„!BnO{v>J=! eɹÍJÓŒL¶Úɇ@ŒQ[?ŒÂA’¥e~bò×`` Õë0£kv«Ð m_ß œºn€p#¥b€ÂÂvàký1ÏN«À07rô§ÐŽ*º¨ËÔLÚÑ6—nĹãC|ý U/ðG­éW¨ÌЄ•ˆ±è.AaòN{¤Šåõ²÷|†ˆÄÚ>#íêðpŒµ‡8ò”dí‰Çvà–×â‘e©ÖG¥áj'F$gÈÇ·¦GÕÝ-öxç’µeœˆ)Ÿ=e Ø´+éÔÂQ ‚Ô)“— ~žfÅQ®Lb•7ãs¼P§B3ÖØ´²†î]Dä)б,–>ÜvÛ¼µb>ßøÇýuŸ»[{qÜE-Ì L»QÛÛ˦Ñ\×äK€NÀ¢ŠÊÖß5š :!HÈk+EŽ|$i Wݦ Vþ^¨%¨ÔNDzö\9ÕDAîn€HÜ1Ú‚ëPk&"%#Kãq¤Ä:0B)ô½öH"‘Zb# q¦l”9³K,fñ.1J¼×~H,Ɉ”b§o Š1Çh(Íd¤nÆH§¬›ˆÆ‘Ï'&D¡'\ÿ¡ˆFlëØ¡ÑL¸I/¢¨òZûZ ‹p‡<1¨“«CIPö‘MV¤‹=!˜„íQï#:!Æ$VÔéÄK _›âöîVä´  ƒÀ+-3Q.•¢­øœK×mä£Ié|›–$Û ÉŽ¡-’/ØÚ†%+Â~^‚Zl·Ä`È`‡ȇGT:’R) IÜ9C‘S¸‘*H5bfPaƒÒØpç|oéœþ¼ƒ± ûKàXI(â{$Š›h!¶NxÊAV ÊL–4¶]õ(þöDô8#K—3\ˆ˜+Ш5²­ŸÖ‡n|A/®‚¦¢% (âÕþÞf#”bä@˜R¬ú»Á0W*bG>iÑp3ÒŸ~Ïkg…_øñöIÕ„¸ô#/&g ‹™LÉ©Öð9í9—VÀÚ¯µ¦÷‘ÖG9òѨ6°ôæ ú·Äxäî˜oÎÉQg.Äܹµ÷„ŠH¯»zV¯ÙÉxµ4úáÄÃn½kÍÇ•RÑ™¶ÆÊ‚?³$Õ:¿„‚œÄØ6Í©&¢MéBòÀÄ4_”Ð:D1 ]-G TC™1F³i£h‰€2£Ž%:æ–Šhä{JË ùز¥‚ZÄä#u@-æÌî„R™ücK€H%œ*¢'8UšD5 Aæ`ï›êÄưjít䜶D»UcÈ)“ »î]'žÜ‰‹ÏÛ*iÕøœw:ö õÔóö 0(\#54šU‚J´‘ͼ?!ˆÇ=0w½ý浨°Ðž¶×Þ^áÉ&JÿoÑDû·êÚ$¨ GèžQ¯²qê2它ãÜ<‚MuöA,ùfÄüÞp©)éöú'qÔ©û§„ËDÓo½q5V¯Ä`%²*ç¾{TÔJ>ƒwC໘&S¼ji’² 1u"LÕ„tiW…ä$!ó¢4¥"t!@•öÿùg3þÇ.âÈGbßeÃk‡ÇGž¾§óM±Ûõ_ÓŒdW^ûØ/¾àÅJéÝó?I´O;.瘄íN¢iîÛq¾ÉÉ2‚S Éú&} ´ hhÔ·ÖQÝ>Ì$­h³¶oÄàPƒßý.‚]3£‹üW "ß@–\`°Ù¨€ºmõ>¶d$ÈDFG@„@§ÁBƒ>"ÚZí†.êÀðû„€ˆ±ˆ‚NÉE%J°3Šép#ênõ4ßßÝ ÒhUˆ GDˆ€œU£æô9„léÓ¥6š¥"T®ˆªÊó͉VÝ“lÒ´„kˆ¬^‡0°Êæ9¤&ÉBÒ¶–CCé2×àÀ¡ËN·‰ d¶0ÔIßðdb øÙ¼€bÞé’€XÕ~I Q„Äa‰B€ hýŠGñÒЪ´AìRÇìêgƒ€ l±¤´Àô ä«MÜü¾kpê‡ÎÅ‚絑‚ßr«uH¡ Ê_ò…£f¾ê=ìÀÞ6¢wôfÉ)‚TóÊLè$´ûrfðÌñàãÀ¼ýgá¦ßÜj-JC±±f4"ƒXÍøŸoxqo%ô??½bpÂ"räƒGÍ/Š˜ 1çZ@AJ+þ”ó®{Òág\Zyä–ÿiýMƒžz­†[®îÇðÖ4)ÄC„ýUîtÖù%Ìi>G³êæa"\GEˆ åÇŠñcÖm[Ä¢€@35šUź,¤|ˆß±…a.7JdRLꔯxd{¢ŸÉ§+^®¥zUßÇ(öÂ|hýeÿsÌ5ôÖ]©M1z]½2°+ØSñõ}ÛÞ»®»T•4E5ra3Úm ÜóÇ5X»j'V>ÕJ=}.Ô]ž|#E#¦lá6ƒšÕâ›1}ÆÑL"@·¬¾/.H±g©G @Sã/©Ü"ÖƒS°ò’ÓÛÞKbÜ«¦DÒÕôþåkÔRãxÿ®HˆJÔEŽ|D© ¿‰XmáŸOxÆá¬p?É ñ¾Þó¯7b¸a»ÿ‡7ýF%j–VêS.z¬•%AM Ò½EöM÷Trˆ&•:Ðú›0ç·;–ô`æ’ù-Õ|Õ¡†kiZ¹"$P\ÃFx`Ù&|ùïœP6j¨SVrÁBXÓ ïTsTÄ °‘‘¹ÇA8â2¼ƒ©måTÝG@ÏÝo0BôC!V ÃQ„͵ÖÕØÖh¢ÅhØB/VBµÇR€F˜Ñ¡(ÚÒî‘k…uâÝo˜PV¢_il‹ð׃!¥˜ðT•Æp³‰ù<2‡ÅI„YÖöºçmÚVPp˜€‚A‡ð¢‚yW,N>ž³ów¯VævX@–tÃEEÈíÈiNa0A‘,˜H-‚aÂ`¤W˜  Ô£’jÛÈGB€¢t¬‹Ö(‘åu,&Ø ð]±fB¡-2÷äÿ¯È’–hÌ–%’ýšx…*AJ:†4øÔBrºU;ˆ°ÎªÔ÷à@™b~ÊR°ãÁxôG`áÉÏm¡[~´äRç_¥³ß_ñJ_Ç^´o¸h?"úß½HÛ‘Pê*ä9UPãú1]}E£þz~É]ì85#â|mn!ÊD„Šfü’q$¿  †ñ ùˆu¾F"™ŠSÍs”y‘’ E@O,¿í¥ù#ÏúutÔ3~sÉC7^œnþôª_îÈm«" •FÂâQ%B¹*±uSëVoCÏ¡ÔÛ8Nsa#K¾›xð ¶o?;S‰ùÙ‘æÎß¼ÿîÚ:­ÔWT¢^©•îQ*£÷Цv=¼M#(ÅRbÂÒˆ„é3ã E™Òò° XÌ#5ÂŒÙ].Ye”kCøáÿÞ;ë¨5}È~ÈE‹ˆ EKM"Js‹,8(&ºR+0%ä !ºfæQ(Ǩl­£±³™vÌ‚Bivå®N2ÜãSû‰ÏÝŽG#ÞÛ]€rä#¶)h±b…í0_J›L‹ ¢³0ó¼F®£QmòñíÖ±ëXrùQÚµŠqøŸÿÍ“oÅÏ~ºÌ Ö)'Xç:'ýØ8Þ«0†iÐϵ6ÄŠý2]LÚVG£ ”{Šc‰Øc‚P^cpû@zŸxÒáÑ4ªDX¿~È­»Ž_¨ sËÒôÙ©‰\å‡ì9Ø„i6'€ë£liméR÷(b$DŒ)šõżQhÒvÂ*xb4æ æ‰¹ˆ†_è1£fh1Ýêõß=åsI¢/²õŒN…Ÿ·Ÿxhvn¯ãˆ“2:aóø¸&ÚNøªkÁ†MÞf®ëö¸ÿˆþ=QI!½߀%ÑÅ:ºJö "…iü—#%vö zv_úS_ûÞ½NÇ Wìœ/«°ûõͦÛ,28ˆ½D­ÊÙÙô$ec.5KD4ÀÚ=ù|–|ðv¤4*QÄ:Ø^o E¼º­I#G@ž9çº9çBº”ª^Ɖ#¦`‘M/#å£Ú ú¥¡î @ À,Aˆˆ@qÌ ê:Ì¡Á¢N æ3 Y?£ € ¨“'`‰:lT™®<ñ¾l%\]Ò‘y\O[[ÔàIj×þA:S O»E=h’)WÒ€ÚÚ*7m­Åm<Ð=BÓ‘î+Á/êâ n§A™4JIŒ´6Sû¬'±û1×ý˜  CÛó €DìLÄB 2Hç² ;I€9 ÄólË4MkÞ.«\/Òh`õ–5¸÷+wâä·Ÿ`´Vë›Óƒmƒ®y‚Ëw5ØÛFD¯èàl(š  k^r¥Š´ÞYeSÈ .ûá¨T-Ñi(6&N¡h&ôiïœ`äK@üʯFNµ-¡ät‘Õú°äT÷ø Á¿À¨¼þjéu§½hçÖڕŤ! èÃŒ™}!.’î儯®pó†4qZpWg’asØ•­ùHS¯j–|X»Ö8ŸdeÚƒ¾ýкG^ÿ[­Ôßd„övgŽ ºº Öî타B„{ì<¼|³I¿JýÌ×¾ðP7WGD˜€„Åù°k«Ób¾&…A!]-vrÊŠO?ÊãhEˆ  áÚkŸÀ–íu qú•sÀ¤æÿÅ8¦”¾•€?âY2VLQ6<1„ƒO™ƒ`/ºj gö|líÚŽdK£x8GÖ*ûGL¬ xtÏ &à Ÿ¢ à:«óqöŠùGš{ÌJI±'&D€©G@¤ÉsjÝœ–Õ1öqq/Š@@Ç·j iËr›ÍøV¥ôQS=Ó‘ˆµ-Òí§ÛŒ‡Úˆ™ fâÔ³À±'8&X¿¡—\ö€‰f.Å(ö€Áï °øÈèUK_ó¯ZéÏ;Ý$÷îkV›ˆªÐ‡„îînìS6îñÜsÿ*Sï¸#XÍàÖ•ÐW<_¿38¨=¿Ë`?ƒÃ¼ÓèÉGÛ(2ÎiÉ¢f—Ïš?½…¼Oß!B£ÙĦj«†‡±­VCÅ’N<Ï*‹K—† âÕÖô`åó¼+š·©K¢…|ĤÑT6箩®!.h·EÞ–r%ʦòÕݰÂB@çòX‚Ìó g9ƒyVŒo£jV£*€²A‰|‹ü’«oË|‘“ŽvD~v„2(´ö¼`bj46×bd¡ÁhIÐQ‰%W ƒª%[ R9j²€?V‚7eGÉ™„”lÚšT‰?n]±):¥@Òãje’ DB„ ôJ-Ù ÉZ&éâ=ϧàÀX$€Yè³äRØöÂDÀ` O}îpÞ|Ì:f6Úmæ‚^<µl#¶;“„Á'öfdéu.Ñ\'#¡€®%(Ïè„„œ¤ó"0ê¾îLüä[·açæ!›ªmëYƒ¦úÛãÏ}~éÒx5Æ1­ôómñ²# " !rSr„ÔÈ‹ˆ¶©€ïæ¤õ1ßô‚ü1çý.€/üçÆ3z:BI(w…8ÿ‚.€$ve¬‘ÚñØ4# ¦5<ù0È’ööÇ ÞÕ–ñõ]sVJÍÚ€Ä~%¬uÕ˜è¢Qݺ½1Å?+F|Ö,½o~òƒ;Òs7ŠhÙ«ž#ndÊE„²lšFò5þÆèé »­Z­‰~êÜyÏ:ïZ² §;Idç›xRêêñ«Ó{…xб:æL«-{x-¾ñµ?`ËŽš[ýG”8òÁ¸Òõû1޽ò=Ë“¾úÅ g„aP 3«æzxÕ tÏì݋ΛH;~z0¶®»=[óá"!-äÃÁuz¶ÏFJ>®ðYƒ;ÍÜëØ‹–$®á‡/(f¢%GöŒ€HLÕr!ë9"iF«ß&ò»€)X>„n4²ÝÉd‹¢/zÛÒø²/}±!¿Š"õ¼¨išì3¿f¯Ùc†ˆ<øÈf$¸'žzöß4µœ¯Ç57¬@¥ÚÄö¿æún͈B~#I’s•R/2#qŠ(2¸ïaÈGwo/þœìëß¹£Ø-#¶á…µ§€‡KàZ,v£×àDƒ²[ÕÎ hƒ´ غXEn˜±Çéóg;-TšM V‡ñèÎ!N»Š“!À-Pƒ\ˆ€ÕZs© X.L †Í=u«þ9ó{K@ĨÿX§qÕâ•$AÕ b¶‡£ql$…ÉÆ$®ÇI‘»$¬h> žÒEº½ˆž…o=;S¤EÑýv%½jSyB«q‘Cª ®3u¡;ˆÉ§ûF°ä› È F0‰º˜lŠÝ®Ñn7mW«^—5²fCX…B«É¾Ž0_åtDäÈ3Ae„*Ó®¶Z#™ýÏ&Í׉[óRzýö“ÀÁâ!3þ•$Íûè´×úú7^s¾ù<“޵ åD‡¹r…<çË[âá^˜å½ý8D‡iM¾÷¹Ö(!:çÍE r“tnýïçÌ+âÕû,|õ ×bçðk£É¤©R¬è_ü#ư?þäÌ«>­Zɇ$æ°„_>“w¶ˆ§|‡@X¡â8K> µ~)4ý€Øþèå”È t–å'„ÎOb}š%¶Û‡#L×&ëL ÖYòÜgðZãT¬DÆö?î'w>qÏ+¯ÓJ¿z4ò¡bÅϤ-+7HGç)ö2ùÓ¾»¬DÓ÷>‰K~|'†*±|´‰–•Š!úºò­äÃÞ³s÷_Âb ãMóùÓ¼¯ÇŸÜŒïÿä.Üx‹¿-æÎ(AΦa0 ÉŠ˜¹hñ^¾–{ŸØV*u<²l ¾ÿ½›°ÕAKÔ#Õ"ê»Óà+˜ ™Ú¹ßýækÇ/ ƒàŒ ð©;Õ [Ð1kò˜œM¶(WèdÍ(r5vT62ìQ‹\ôƒ‰HÒŒéMô~÷âQÃÞ7[AHb›rÔLUÛ6°{’J(aªr!…%CÒvÁš¼ø%¹Ñ·IÎj´œuÕ7Ž?õù¿ôî—¼{Yíû?äµÍH}?ŠÔÅM—"· ^Õ*¼7ðóKïc©iò~y{dïÀV_qÛKÞ¨âäz¨U䣟œ’øÔÝ÷ãà“O2dzæDïÙ?)~|ÉXµf;F°ŠÁ0‚…§ól‡«ä.¥=x^\›îàí…|H?ZøSQ°¤SJüõqG°vCµRÅSƒXÓ?€á(A. Ÿ 1·« ¥B¥|y™vBÈ9raõIÚM¦ºx#¬Je#±Ò¨«´Ö`cg3e«M~Ž6 EÊi[@  ¡ ݤP–CBb) ÚjB¤©:%ƒnš6²Å 6ÈÙèAø;ìÈÝù¾ ¿ÝÚSŽÈíõc–â/5@£<Ž•|T= áíªU1ï‚1Aµu9BÚŸœÀ¿§‘:yÙ4¸ ty2CŽÈhäÉuhóŠëûƒ˜LH É)x)±è²Êî„ ©³ ‚#!¨l¯ãž/ÝùßÛA>€³î%Ì2ä{Ûú-L>ü S†7üðÌ¿~ößÜþìóú N(Nùy3P,tAìaJÏü³qæyGã?¼vÌmú‘"°ãi:•HŸéz²34qÔ³ÐÑ5E§/2Ìæ MԢؑlKÆ×Ýwõ—žtáµ¹•»0h ª?ÆMýQ­éåQ¤>nÈÇf’3€G?ª¶×9ÚÚ…Ájúy¢©nCíŸ6Äãw£çb«·+¥–èDŸåNµ{ ŽÁºGW"4$ä )Çs–ö)’⋺ÿIüüG·b`¨‰J&íªÞ&Zvä½8tIÏ_ûóÀóžsÀv~ª4xš"$4ÑG=î¼w¥‰|üÕÌJi.”¸è‹2)ˆ^ máaûEÂ÷y§„ˆ04TÅwÿ÷:Ü÷ÀJ 74†küœpψ¬½Ùõ&·r~:òÒ ”¹Ð¥Zšµ:šÃÈ÷ÍØ«g £»³/ÂŽ–#ò[§kùz¤Cý¨7ÕÖf¬W'š>µ|Yò<ͳN¥ÇÚ´ÇËÏ-°£¿G|uˆ ä»Ý{‘•ù¥Å·át_ ¿P.]z“o«Þ8Ñ‹\7¦7|ä‰_ú§ÅoˆcýÃf¤Ï5רœFåÓD~±d äc=_1:.mvÄY—õ?pý…_P±ú_ƒRJ>2é¸QŒGïº3,ÀÇËçg5~¾}å[7rtm»ÛìkFSBß$„€Á¶Ós¹ïh¥Ð«õýG 3fIÆÄ#hs$ó–€={ ,]·+‡x•ðð¾^P(° Tf¶KAÈ7^Î@zR‘Ž€Ï=¥¬ì §ÿe¿gætÌ‘vD†?K´—ÿ¹ ¹o ëºQ).Jî·Ý±@Š š·FhÜ.ÿo¼e:ƒõX60i˱í6Š0`9b²Â(ÂÀ¥f¢9B#ÝV{´ý‰‘hâ–Ä6¨eÈG6ú±ŸºÅÈ“F˜Ú"4ºÄÂ}6i¯Wê0(2çœ%JÖlä©C¤Åå³íw ÂláÈGÛßÕ|RÒ5KëLÇ“[>uÎû÷ç´=dC¯Ê͉@²`¯AyÁ8w®Ý„ÞY³Ñ5cÆ$}•ÝYïó/>ß1õ •FÚV2V„‰šRêbÒäÁázûÏ^0…=r»‚\…²B£: ;ÑEåÎÃþæ³+î¼ì¼çõ O"Q\ÃQÖçþÝý À%0øÞÇ~]©ÃšMõ!N§p¢i‘S9×òÕ 6‡û Œc‡Ÿñ«& ì«*Qg%žpìF>”Ö©ÆÁÃ#Q}$±9 ãw{Z±l¾÷ÍklºÚHEÇ/}ö’–H‹ØÍœ¿p<ißsÒ¹~ýÃfõôN<ôÈz´Ûq‡ÍÀó;ܵw³ü¼èš9—‹ÏÙh‡MOÏ9¡±º{ ×L[ê»pÕ•÷¤Âd»Po«ò¸ÕàFLÒ.ú»{/¿þgÜHyf¶xY B}Ëf”ûfóû~ú» yvò‰xø®‡}äÃÕÃEê±(¡KcEÚñ•;înVð'2Žvhâè‡' G@ ÂI©µ›S4Ÿ’ì”øÍv¾³Œ\©“ ÈT2ACƒÒ~£ÿ¡RBßÒ( ùæþãÐõ¯ÿðãLBÞõ¹u;\ôÁ7Í9·éwÖ›ú¥¨Ô9úÁ¨ûûv2Xgð–c;áü«|çoŸYObu©í€gÕÑÓ÷aT«-™'P®â„sÏ™®8ïtî‡SÏþá½?…|0>2úu‰ ÎD8\)§FÍÛÓ¬FA€‘k!z‹yì××µ;0££„y8‡—eBB€²t‚‘%»· $kýÓC|›6òÑEØÑh²a3ÂP£'€Ö(€n¾eRHé4P¸p¹Â"Y *°Ájk„èÂH²"ŽxgºCKlH„4=k«%#1Ù¨‘‹6ˆÖk!F!ÂB`ÊóD»MØW¶»WdnÚ,4Mé ”ÄÈ„A[`„¹ˆ6`$â2‰`¹`Œü¥%þ|ùcên{ØéÝJoÛ£;~.=¨Xñí{Ñ{ä"ÿÊãIÄ¡'‡ÍÛ2™ÂÛñÌò™¯¼±Ši6­õ*R´Y+5O+!"1VÜzN}Ñ R¿‡> bOò}Ã÷Oý¶ÖúM:ùp¤oî|QØ#'ABGùÒ6ÄQƒY†R¶01Y¬õ[¥ðþfœè8 dXÀ8ÖÞøÑ'ôù÷,Dô M@ rÍ ,,O ùˆ'Þ‘FýÄtäÞÛÄúõÛpóÀP-ư«õ™tüÌàüÿÎÔ ˜ß'¥¸Õ‘Ú(HuØ ŽŽÎn±÷蘩Cej>jMOP„Wÿ²Ç°X«ÿJ”NɇU±Ž¢4% ÷„šÕœà#@×g®o?F°Û.9ï߄ݜv%¥½†òÜq­ØVoE“J/w” IÒ¶ñ‘O;›ÕŒÔÛÚ5)>ùÝ­|Û+gÜVi¨£ë‘~¿!Íe»óM–|,á›øž™wsüNê×*Ž_¢cõs•¨‚²äCg°uýüá——âØ³ÎÀ¬… Ðjô'{ðïØYÁ{ÿõ,3ϺQì×wŒN@¬6@7€…fœC´[šU˜%c@¸1ÃB£f„»ž\ƒsŽ> ù\ª²žÏÛÑ8Å}>2bºñ¨mt#Ò\÷ÁdcK£‰mš“ŽX%€ÒèÐ y"¶à\­Œ´BLäz±#0è¶+l!Å5"Eä[¢Ân»s#|„¢Ï ”Ñ»¨°J¸OÍ* _¬.Ç=²‰i ”)ènØã©Û9ÄùHÙù,6˜9Æ1Ê1ÔãÇŸÓøß FsOhä@´ê”`µ*zÄϼþH8õˤbÝŒþê4Y‰@úˆL‰È"-›™vrÚ ÿpÿm—žs¥VúÍÙˆJsa±vùØï¨£÷8ºOŽ|\ÿ“ÖJ¿Vk-˜i/(ÖÑÕ9KDn„ tÎ> ÑàÝHt#uî.Ô­ÿí[çwþà;›t#V2àð¼ìàûø¯žüOX{ïÖ€:¦ÙŽ?ÿ*ºûwçNÅÉ*VÇ·8¡™ʨç¯Zþ( ,:è`”{zñ4Ù¤56†+Xöàãøõ%7 Z÷N¨!ª¨{½ƒvl %u©$1ðÑÅX~×]î<@pƒCŽ;Á¶Q¼˜UìáÓ9'\¿A`ÛC‰¿-›·cÛ¶A¬\µ—_qGĶî¨bgãij‰|8m‹[·âŽ+¯àŸ‰ °À¤¡Í˜3BF©»²PôïݽÌA¨8m\½žíÞ›ïÆŽCüX»nG9ÒÎpš[R7X3¨ýºï´iW{”Š$¥¸? ‚+e /¼‚ž‚Ìvcp# Ån„y¹×˜w˜ÏáãÁý·ÞF[Áy=Ö‡Ø'ÈÏÿëÈgƱ~F'hÚú6£‰j/8¥édiçüÈO™k}2vç¥ÏÊ8LH)¤‹€’¯W®X‚dÉ#Mép:ûúPá5.í,Óí¿ù¯w.Šcõ/úúæÖ¾þ‹ €¥çUz}œÐ'±þ¼Ò4Àqßîq½Çå&ê±´³_q3øÍuß9éoµÒ_ÕZwkMpD„ýI~ÖO>ðvlX‡ŒÒŒ^Œ¯O{-"²}GïÿȯððòQÉÇjƒ˜ë®ÇŠTa†R8RkˆZI‡}*JûÏmŸ‰6X!ô§K—Cò8|Ö œ»df ãwSóìz\¥s²BoÊv¼ª%)ñØZo`“A£‰F³j…2r®@„„€¸U@Ñ;œ¤y.¸t)l„"ÒÀ ÓjEž„0ˆÚB[šTÁ²le²]¥,‰2Nn0IS|ùct‡»ÉÅó>ò¡ †ìgÊ~oŽ-Ø.Œs|Áø5!Þ©ïꂬס“dZ“)ÈBf¯Çö)-ˆÑ*’HŽØ HÀð¶JvÕ–{ùÏ^¼7otH)ÞâZÃN7T¬¾HD¯Ô‰êÊ’ØŒkV<ŽyŠBGÇž9b„ Ûµß:1ÐDÿDDG>ð¨±øð£ø\M‡±³ZÊ¡cÎþˆÖ<ŠØ{;ä’8y_ÈïDŠÞjPRüûG^~pE ñåÿå {ÑN}Áõ[o¹äìª$¹L%ú¤1ȃ¬^¾Ü¼€6àè³ÎAgodî3ý‰;·õã§ßû-tmZ¨ïDÍØ=‡z§ÁKfvå>©ýl¥Üü5ÍæÏŸ8z×kxä¶›‘Ë¥i7Åb½³çpD1ßÕƒÒœEHò}ĵyÒ‡C§Ëš&*CUÜvóý¸ã¶eXµn;× Õ“ÉäŠ,šSúV«·k­Kîškƒ¨RµúA‚๭yd6<þ(r!Ï›S(;;ʼ˜Ñ±ÿÁÈå ¬ÓÊÐÞÿÓëp Fe`Þ~V?±Š:«„lÅõ¼ò°E[§+Ø”Ó/òqöÐÎyõÍõ»~õìÿÞE@¤ôDDõ~ÄÍÂ|狤iBϘ\±È×¼½Ýn#Öop9öKõ^¥t9u¾- ±×.ÑBêIM½]HFJBOO ƒCõ³å Î3$äUæš_iÉGÀ‡…¯Í’aư Ø12ÐbÄW0ÿà±á©5¥²äÉJ³ýÎF¤·ø´ÙM·Õ#Ë .0Ç=ÀIàAwâ±S´ç¼ù¾_ùõã¥éß öw¢Ù‚uëRFA„êÎØ`ˆHïÜÙè:h‹9._#6E§i!”I%!MX¿qùÏßq°1þÉ×Íùxc˜x@Ç9çÖ+™›r%ÆEFˆ°ß`“Áfƒaƒ© ùMDäPÃàÆ±l´cDÂÄÃF=b­QO“ C:°©VÇÎF“5EH%(RJ²¤”$N¬‘AÂû"©- s6=«^A(9âÄQ ˜$8šð±{{[£s“jsˆµAä ½ 5˜ðÌâúбxûw Ñîìûѧy2ÆÄcÐF@šà‘®»n_8ÈF?ò{lʸw¾ñu(\wâ '@&Æ7=ߟXªšOék«IQäÏ[`#B;ØÙQÀß<ñIdmÃc`ëª'¸¥ƒ”O ).<ñùW?‰½`7þð´i¥“«D’hı2H{ŸõW¯B¹§gÈ3žóo®ÔÑfWãh³kþ÷Ĺ6+!*u6»fÌÄIÏ~.ŠeL§)ƒ«°ãñQ[:Nqh~åÊÆ'–>ým¹Ìí*È…,Vú„_ûÐO—iìe»á{§,RJ_©µ>¶|8B넆a: aˆÙ‹cÎAG˜ó6ËEnÿdµCC¸ñê[pÛM÷Ú.2Êê|hvÊý ønáÙæEuÏ5ß:ñ<"úƒÖ$xõO¹óÀ°zU¢æsÀ?;WD(`F„9‰²!iݳik)LÓÚ´n3¾óÅ_`¨Ò@­I¨6]“þýÍ·7.ÄŸØ~ð‡œK—G±êv¤ÞLŽ<ùpœ|ÖqX°dΓ²ïüà|ù7Œù*2äY`HãÉ¸Ç Å–|f»ÜÛƒÞy ÓL±ç×gÃkpçïowÄ¥Ÿ¹nWOD‰¾àk—ì\}Ä~ý?GwjÂeZëóÁ ñi'ؼAŽŸyüüãÏ f»÷ùÈå‹ãï”&ç[Kƒžû£¾s*kWAñüÄöe4{¶ìM¼©žÈ+ ……PB |Yÿò_o8éSïûþ}ßÀ^´g¿ñžõWó„gi¢ë”¦RÔ×€°òx+ù`Çsxû¨ˆ?å‹Ù žv¥î|7]{;6nØá ô}«Ý±ÈÇ.2äã>xî[î¿éНw9/Ê’2d†|„»“iPBfT€Ø!B®c½|iQê˜wöXý¦ÉÝTµJ ¿øö¯°zåFT›^Tn°šêÀ4¢ ‘€ð3ç°–(z/ݧɓO"G:ýöíÀ¶-fÔa€$0cc‘ª"¬J¹•Èf ,–Q(Í1?KÈ`r$LpÔí Ü{ÃÍ®Ö!uàlÔÃíÒ´ÊææólCŠÇìjè—°ìä^[àêçI†r—0aÎ>S!‘D±AùR~¯¥¢Ì_<‘Ž|¸‚{Ž„ìÑ}œA·sÀ¹FÅ`Îâ9xá«ÏEjÑŸ—7¿þT<öø\û‡G1Šk¢ çr³òóB ÈÐ×}ð3®C©§ A€ˆ÷àºøïÏ^2}]Ø´v»ÕùpQ*&χ4"ýW>}Ä^úÎeϹäóGþw. ÞlHGŸæåx±…}‡$¨ "N(vu P* WÌóóN†Y2"ö8"rÅ•+LÙ{°jmÿxÿü†|¼ °0K4BÆÈmu³cü,GPϦQÄè~¸ìq¼úˆƒqÌœ™ã錚rkN·ââòõÕ£RoI„²Rˆ -éH‚J¬1ÒaP S l{ÞˆµA4 ࢠt”œ còbÆa)±E+”(TÈñäq Æ¥M¹ê"@I`@§%-|C פ#íQòèŒÃ®³¤Ò’Ž^ÛEªlQàýNl­É™g0»¯Oòߊ,ih›3Ú~¯¬ê| &NÞ²ûíÞÅ+±ûUd¿Ð&èØuСÐkž„––€xr̲?¾ø£GŸû›í¥—Њ8Vqë\œ¤¹°f›Ó±@jЉlž>OИl!“z•:§¥r[7»¼~ à~v€…híô@ÄéÂnÛ}i@Dg·|ø•0&dJ‹ë ¾*êúsA€rABH±DHù•/ýýÙÿJDw¨$¹$“Wùä?}û·1Mvá[ØqÅ×;_kºI“>&C>l‡·úíÑ@J¨@ å Ô6¯A¡ÜŽû¡ØÑ‹@D0ÝdÄêm^·Kïx+_‹íÛ‡PáÔ£TfÈÕ|ŒM>6€ðJG>x¿&ÒŠè%.ò!¥##;ã.…C2ì¶”(µŒ Q#B}è H-@¢0{J3g¡P,"¿ÊþÇp·ÁöC©ÃmÌÁšA=A#“|4 ®6øÖ¶¯þÑ2MôA­éo”¦Ã5Q&í‘-™Žøšk>\´›’¥ß6¸„SSö¢páUW?ü‡6E s.² ¢F ê6„ù^>?Þ¦5%‹ ìk‘&õ÷þ¹.Ï}òQýGü錯[¢´M»rDãÜç  1­Äìc>ùॗ~éès5ÑG„3ÛÇF  Ã+&»ÕSƒÐmK§~ïµ_¬L¬b¾/*+C¸n5:gÏA÷ü9(– £öÓ{à¶Gpë5wa¸»È‡‹ðø´«Ö‰®a‡ýç_áI3×Q%‚_øE>ué—Žú™&z ^#[çÜcp@ÈÛN/!€-ºæmi·EëÜyÞØ560ŒÚ¶J%t,Y„bG‘|%íÖ¨5M¼![ú]ê XÇ ´(w.P©ëØ\óG8 ¤h€oÊa…@òESš0ÇŒ¤3D!õ RÅo(Û>·»×z(ÔÛn"ôØt>'!&­ó?À Õ߈Ûjˆ&–~$GP6GƉÖp-v=Á(ˆLìL]]½-]I´)˜¯ƒÀ¬|ZX >ŠF»Œ`‚L~ôOü¶‹Î’‰Qö£Èý=OÖâÌy¨³žKŠaƒÃ_| £ÝòyÉ$dxÓ¨ÒE@xÅ='„x·!!¿3$¤ÚJ?y˜ˆ}˜RƉbâY"“&øºñæÇÐhÄ“'ÒDWjMi`WzsìTÛ³]Åf[ó(Af›;BBkR­Î¥V¼Ý">åŠîU–|Dž|4#"ú)wйé‰Ú O[üöZƒºêÍø5}å¼è,åúî‚ER‹…£4D´ˆâ\È[ðáW}Rüâõû9íQøý¯¿ä G¾Dñ[)åñ¹Vòáp^ÚNj‚ðtÔB Y© i6¸)@¢Pê0Û!‚\²‘¤ èÈ0žxðI õÒ±[ š;ÝÙÜO>8íj„Âc ÀiW÷b {ù»–ýÀ³Ñf7ýäì‹¥”³„”’çýAȹö\t{ò‘U¿·£²¤Ô¢^ÆÀŽ+WaÆ‚9Xxø~­ÚJDX~ß*üáw··XW.òÁ«ÞN`ˆ‹Y‰%žn7ó{“1žó#«ü7#cøÑY‹¥ÏRØ9Ë ^/RòQ0Û„ù9·0Ö£Ø5ï&†¶nG©¯3öŸƒŽî¼5ë1nûÝÝØ±eG=2õ‘FÝçÏ7±¾5ŠéÇQ¢k÷ÝýB“üž”òµ-"B:wÒHâ*©#sÓ\˜ïï“g=ï0ÜóЖT°Îï}œv'd‰#$&"¿þÕ8ú¸9Cé´Î²ÄY§/Â3Î\Œ[n_‡vsÍvÌ\!°Q«à"ÚÒv2ü“OËw¾*€ ø¤¿‘ý,——8ø˜…Xm¢3.r7\wÏ+¾jç¿áŽ€ë N¸û7Ïy• ä¿ÊPiiå,ˆüsN+J߃µþZúÜ‹âM1bN¥LÐh¤¨×cÔ £ZOl ¡N£ØuÞæç¼}l2ø Á¹ãÕ$,ÌÛ Ñ®ç1Žî‚»–/òö„MŒ°ÇwôcýP‹º;'D>i¡9G=6¡^«A&1“ƒª  Âù|}…fÌ.æÑ›Ï£#rÊU RòQ¥˜ÉL5ŠÑLr¤Ð’‹W!9…+ÊŠF ä ‘ÏFA´æhË °I%LPäúrR^b©]w²ÑFïpåzHj‰~y²"`;ù9!aBâ£(d‰–´’Œv’ ÛæHÊŠÏš…³žu‹R?ðÏh¼å-ò¦íHc!ÙFÀD;ùñÛ ÙNZF=§Þ”%l; Ø  8áåGãø×P„v“ C@fB% Ô†!$ dÆy ˆô Ëo}É…Gž}ÙLýU’è÷ØÔ+K@…Sžy<@ LÕ{|ïg¢öâw<\ÿåú¢&\ „ȱcÍuŽ|8„6­&°à½#jþaË–w63¦Wo‰|Äh4Òt’Fý¸À°vù]ë€×^x¼¤R^_ÊÈ)Í,—BÌé.¡«ÌQþ{*n"n†g‡¹üÙ¡,ˆéXE{Õ{–¯ýÕ—½PJùž]:>åÈ‘GHŽÜj"ŸÉsoÆU4ª\Sˆ|±€|_¹Ž$¿¾%D…›‘Q`߀mv`ãêÍNÀËž3¯uàê=¸ëQ­5òAÑ~jÅïÅí¼¿¾µ]èñûX~ëK|Ô:à¯'MK ²÷ѧ¹’4êMôo0÷,>|!fÌë î¨àÚ_¥ä£bIV…Ó®’¬å/l«Õšyö‚=ëu·­ãy¶ÎùXvÓ‹ÎŽàÙ"ùõK7ãcŸ¸‹—ôì)‰j5ÆH&ZÈGÀ#¨7Ѩ4lëiKž•AX¿ÉÝÃna©n ’ë|D‘Fñ}›Y`ªGîþåÑ’­5Û.2¿ÏãÔ_Ç"¹Ýð‚—Ë x—äÙd*bâá”% ®í|¢ZÞ…Œ¦Ÿk´¦˜V¶UóÈöm¾ØÞíjÒ)XÂ"°c‰|SB™â†%!z ÓˆÜm¢ »|pŠÔöZk‡‡±ehQ½Î'<–â0D>Wà”®ÙÅ£¯çˆG>È9'€„¸p5B6VëØÙh@ÆzµB êBð>ƒ D§”H,ùiê]ÐЀgåNÝ™ ÒˆP‡BÇHNñ!­ÎD^¶§»ùUýv'›ÆYÝÂ_3I¾xž|Û_ïì“­q°ß“v倀ªêVL1oILÑic؈Q>šÂûm€¼Ðáfƒõ¹öF ?ò(–sxR­7 ]†ì|ìñé¶9JøÏᲟƒ'~®¾µ2Ã}î£%D)TæoÆ6*µUƒúpÞ+Â3ßz ;Ë4JKòŒ禃¯“÷à=Dßp1öоÿñCf$‰þG¥´í|e H¤ÑÙ׉0Ÿì~œ“ÒAN0Š}£Ø+ÞýÈõ¿øâÑw†|F˜“ý‰|YòŽB>ø¡ëɇ# :fçrLòa>«)¥¿ðO_Ü ÑfJÓß%Íx]½¿VÜ17$9Ú³pfLdÒ®Æ9áC|ÿ»zeùMŸøÅw°‡ö²w<´ùÊÿ=ùa˜`ËÊmزfŸ«ZµÁ/p&M•ÍwmFy»ÒȼÈG'sñ5ðß,8·wœOåwWÜöÒÏQŽ´¾DÏ%¥/ÒJ÷¥ä£„¸z ƒ5mÄSË7àì‹9‹zqóïBÍεÊÝ®¸ÓÃ|þ”Öô#»ô "ü‰ìèó~{=€ëãðn" ú‚“Öç:⥔j :ÄM¬zpذ!yæA†tU±úÑMh¸š_ïÁŽ\”à2¥é?þÝà}؈î%MǹŠ€Ò  b/¨7µO’ÆGÿwËoõÌëêMõJçx²(h‚«®{JãiµÁJ´V†ÁV)åœì3=‰•ØÙ‘œx¬ÊÜ»Y"m`ÓŠýâZdk4£ ‹Zä Ø°]DˆÚNÀjüÙ±ÏþÝ¥fÑå*<šÞ­µ>_v#™ÿïíyòÀ72IsĬâî‘Z‚JƒÏÚ,6¸ÄQM†|$˜¢…a[DŽž†âÉÃ@ùhfuÆØÇC›·á™û/B_©¸[á9e";j5¬Âöá!ÄÍfê¸ Èç ˜eÆ™Å]c=LÒäÈG6ìÜö’ʾ ²*¸Œ­JéßÑç ùxhD½’·D>|î‘3ID_K4^ÕIÐŒS­Ž†@– !Gn ÒS¨‰ …R×ðÑ¿¯ÿØO¾=´‹þî^ðÓ›~|ö5ÉoCù3[ÈGàáÉÙ±5§Ý¥ª6Žç IÃ)bóèWªhzÅ`³­[ɇO½ñ䣖¤‘&§1´“Èàƒ¿1Äc%ž&;â¬_¹ìCb‡Ÿñ«À¤öº‡þpQ¤µ~Á©:V§)¥BGÂ\(¶ÎÚZSlºeà ìz=N¶&ç}3±¢DÑ'…ÿþo"죦•¾DotäÛå·ÃFDÄ^Š€h«e´¯šq¶ÿ§‘èç×U“×8Aãé¶þ{\ùÌ3—\-ùzŽX“ µÔ-Ïu(»ÝN> œ¶‡×8áí†k˜`‰GKÚUmv® ¸Î<ŸîÄŸ•qįàÊGnyñ- :š^JšÎÑZŸ¬]Ðm .qœøsÔä‘ážíUFF»ÉÀ·ÑfÜ Â*^tyL?€i°Ð‘ ‡ Ý‰ƒ|`„Ït&-¥W¯0>!"Üc¢ ¼ÿnκ#;ëu¬ÚÙmCCˆ“I"(™´Ì10tçs(…!r2@(Y¹¼e.J"¥™D¬®T±Ù@7(«„¿„Ù笎æ–J˜eöÙ™ !!¸VdMPM‹ß•‚Pš÷YMŒ²­Z£)vBb)ôfR±tKj’7e!ÚDûˆ1v‘¿j«‡hw¤e»Sù<ÌPZ)ÎF›Î…bøý&¶Ðz«ÖØfˆ4ê‘Gj5ël‡–ˆj‘‰¢¸ã™9û¿åõX<Êؾl6}æ )±0hlÚÄ5(ýþ£ÿxýÏ_÷áT0 vÞkoÝàÕwÿúü3d ÿÁà¯e(EZˆØF>h òÁ/qeÆ,Q‹°~Y•_N­äCñè¶]Þµ™­ùHØ!¯:òAÈÚÝÿaˆÇøÛ Ïýýr¸î柞É*ü*Qo3sÓtómú±¶kN›«fŽ­/äÁ:“¯ ZÓ…-W+öéÒg]Ùà^ Üñëó^¤õA«cÍXLx54a‚éÎÁàpƒv­JѬÇ:I}í»¿ø7ìöìæuÑ?Áp†Ð€U öŠiìËöƒßÜöÜó:þPmè—ò§"ÊFA#™ >à êpDÑCgRÑ•ø¨ß¿†Ú.˜hX×í³ø3¶£žñ›¡ìÿë÷]ýœç“Öe•èWk¥N³Äù8V³¢¦dä1“RËpm3ªZ3¡Ë©mp3WâQÅ4Z´9¼ÒBŒV?0†–E6>S³hdë` ý†ì6eƒæBõj +°up P,¡Ë`n¹„y¥×x”ri´C ÁØMÕ›ˆu>v6›XS©`{¥ Ùl  *—C©£s;;±¸£Ä5$¹¡LÏH) 8mkk£‰F3Êxì©!‘ˆPÔÄl0Ì¡®=Ð~ž#F <Úë6”…4ȵ’ìÏäöëG%ü÷0Šr72ûÒÞ ÷ú T‘:ÚýäkBjV }˜R±ؒ‚‚ph+&˜gRà}éjƒ¬ó¾2ŸÃ‹âÄޯܹ³Ñ_ÊãŽ2ÇР´Æb‹AÑw^eR³–€Í™¦3,zHáSÆÈ“!_ƒb÷£GˆL…vŸ‰ÇXj0H¾ r±7ßp0Íq‚Ô2H ”ºÀÕjàC¨v$*k­bÆûîºüY7è„ÊKÏ|ùÍc:Ï?üÏC_¬”~—Áyi½‡e ¹›Ô«Þ|@1S·o|ûþÑøÕwã9¡öù¯¿£à—ØÇíöÇû/`œwäŒgï¬ÄïV€nˆô^q³Š8*ÍÏËàï§ûÅvêK¯¿ÀK¯½h© äûe(g§äCÚ´«É’e5Qüêa:ú0½}‘û‚ó†²!úõ4W8Rj •Ìö‚ߌ}ÌÎyÍíOø÷ß}帯˜y_iæzª|$v® &[NÛb –ðv¬ôŸX®—ãÏÌÎxéM¿ðÛ¾ÊT¬¾E*C>ܸ º­Í.“Ë5?º|ð]Ø÷íg¤épG>XȱC¤@ØKFûº TÕ[ë‘^TÔ)¢`Ío ùàˆóá§_úð£w¼üZÓ{Hëó]ô_“'6Rë;:8ò± žt´‘:C·Ô| ×é3+M½ÀÌ1Ýÿì¤ ¯» lþ½zùWŽ]¤”~M¢4’dñ.¨tŒ’tR+zèñåê÷ØË¶’ûôŒ‘zÕníцU„®úú¿Ï1¶ï\· §/š®Bž&ùƃÛv Z¯q˶rG3ÊLúê/½þc?‹1ÍvüW~îá›^ôeó„ÿÐ[v‹|(—Î0 \ù¿ ž! ¾à¼µåjC§Ñ€]ðùÓŽÄþή»@ˆ ù ìÃö‚·?¸ý—Ÿ;ê,3çç5É/ ù(1ù`‚¥lÍçAp›YD‰~?ÁŸ±©Dÿ@~Öl$×Òq“½]¤«EçCiúgìƒfê^"¢çÖfüOÒT°"C-¿‚P W@É4÷÷ hìëv×=ÍmGœ© Ïðnßen¯ã>‡ZÓ/½Ê4[¹†´>“ˆ^Cº½vÍׂømŸJÊ͘$šdjçT7v!JOÀ%n5ä#Áÿ{áÛZà¿°Y˜U1FŠLL8ýÊw»jf‹ÏÛ÷1Žà`v!-ÖÃÃxhÛvT ®óè5aNgf‹iG Ì7"ãÈëT3„…×íJ»2„F×kJ¤D®Xœîn,î,cVÉì×™Ù—¶¡bò ”´IÉd¨³Ü™æZF†*¨Fƒu¶8Ð¥úd€6@jë¦ÐHÈFvÔmq;ýÚk™æ ú¤A Ùñ$‘,”AÅSoï-°…ïE „ðœY]’>‘¢3£†®ø;^Õ=Ì´$&J?ë߸ k| ÎC£Ù€VŠI†Ê—¤”pH t O"jÔùgO²\JÜùÏ’ ¡«Ûý†Ä#ïgák_…9sf¡”Ëaù×`ý@?ݸ±=Ž2R’Õ+K¶º-A ø¥=LÀŽÏ>Œ®ã{Q˜›ŸØ Š–„4kò¡|ÚçÂêPk’'ˆcõr¥È™'*c:”±'G?ÏÉ! ­÷¨öòÎ{6aÙòÅ~‰ÿÏíê¥ÛÔKO÷åz¤/¨4’ù¼Bž_† P¯B¹0_ìøWÇ^°cÎûm`­qÂÞ àó¤éÒúZëÓ}.ukðn9ÁQ–pð8B͇ר4}n0çO+z”€ÚÈÐZó2¯áÏÈ^ñO$®øâ{½1ŠÔ{ 9­u®‰SsG¬ô øøS+´ÂŸ±]ð·÷€æO?}ø‹£ÈÔ4Õ…†„Ìô©>ÚÕhêõQ¢/#àzìöÈ-/™%„8I2„Àg¡©D |Ë]²-ˆ-”†T@q^I‚ÞkDøs°ËßóF‘üfà鱕&\Çp™p ãÿšý¾]2Æ!£¿ÂžýuX[Tµ'nZ*Õ*–nÝŽZ¡§³³w‘r×yƒ45J¶,¬ z¢ •(Á¦j  ¡‰ëUH•2@aWÊUO–t•9å*ݯMá2È#E„¦eß’ÂæÑ,*—1»§‹¿_‰l $žRŠ»j­Ð ‰ã…ö¤ÃT¦hú-AhX¶!3éC9¤PYåJ‰C¡€Ž#Ça'U?½«ªUtI j[Û"S¿XRQ@‰RÄì°ÇÔi‰†ÿŽIAh?ËÃÀª% ]Â_kíˆh†ÀèL*”´(­bÜ{õµ8õ Ïš\.’“!TE[ÄÞgoVÖzi®AK*„EÓ"‚¥£tDÄ)’ÛhŽFÚy«ÏüíãÍ1,X0gœžüÅo°ú;?D„tÎ=è´ÿ¦˜!UM{­†R°%¤@:™ð M€/å¾´F¡YerÑÒzPi_ˆg†¡]ž#ÍÛL>"ù8n&ž÷âË“I$LÖ8Gþ§¿|£Ø· 4þدïÞ|û‹O™wƒ! ¯(rIª8+b$Qa.¨ÑÉ¿þ?.‰öbñ1x¦iÁU œIšž¯I_ Ý¡”Z¤G ¾æCµ¦àDÚ¯„{òáÚíî0Ÿíh$ô„ÒôU"¬àT»?s{÷ç×_òá7Ϲ¦Ósë}¼aµ.ª vÄ•Rø'@ÜøÔ£ªÿOì5x´Àëþ矗œÒŒÔ?6c}Ï›#¥œ–q¥"úîe×V–áOh¦Ýh(„8PHñ9óÌöÉÎá'Ê,S{÷$‚P„ROˆRwA”Ñzž~-_]¾Nf †ìöü…€ˆÝàMºq Bر`W‹{‘ZΠšqÕEô›ª‰;7lFµÙÀ,C<ööbF©”F'[ç1ñÈ|¡®¶ÖëØ0\A³Z…H&År˜ý.îêDo!ϳÚ÷KÙ´Zs',­äíBXg¡€ù]†‹¬´^–‚ Ô× ôI‚µ8Р•©×  ™X¦€µäÓ•"P&%Ž|—)r–, h`èˆ#ð²w¾gq®Ý² Ë{¶ëvq=¯ûejv?¡%Eëh X²b»Må< â§3D"ð>ƒ#\Òª¬ž÷Ñ ÞÇÐO=‰åW^ƒ™sg£<\m¹çx"°»ý[¶ V™€>òÑ·ˆ€ÏÉ~& 2 ïu›R5ß’&EÀ VßužùœsÑÛÛƒY†Œ”=M™Î)äùfÔàÁÆs¬Sº¿í¶Nå‚÷‚Îý‹ R˜Œqg¬ Ü‡´XzX{²¡Z‰‡V¾õ ÃçĦcd ÎmÂH8¬/xŸc›2>ù¹±âñŒ`; ¾ÊzÿG,JÔ'«M¼¢+”µ ¦b ௉ècžÀÓ`¦cÚ €«-pçož¹ˆ´~¡Òú¥ZëstÚIØ´+›r¥]£Ñ"4Ç?'͘ÖF }Nkºûλ›÷âÿCûïlp ãÿ½ó³ÜŒá ØíÁë.>”[} ¼Þªù€OÑñ©‡ÔB> 4J!z(°¿@D#ªÜO—­Z34!1*›ù þ‚¿X˜£ÎCŒ™hÓ`­SÚc0h1`0ìÚòŽ#¬¯µÆÆmý¨Dæõö`ÿÞ>ôv9: iuÀãîF®+Mª˜Îk‡«ªV$fñ›R¹ŒE†|,êêdݼôõBŒ¬CRO§XInÁKì5–‹Et—J\/Âsùù€@]ÅØ90ˆ* ¬28FP&Bà½_§µ9Jë)Šm"~íEäÒŽƒ`ãÕùßÜ·µ¡a Wªè†Æþr¤ö´¾ƒUÝÖFÛtBrü¹fDöZv @ŠÖk @WOçîP™T¯ €.‚‚ÔT–° à q)¶\ð,tnÚ‚N›áÎ=¼‰ìàuFbdRË(ý¬‘Ê KÚúp´‘›V÷ƒÛï6«BObÞÜ9 " Ü~'ß~×+ÂÇv¾õØaÐ{ZŽ=ªG½v1J½9a˜, áz°Ôw†@}#A( qœ¬ž‡/ÂóQÞNxäUÌfrîó«þfÌ_ȳP·1Æ zùãC¸ýî­Å.7äãAü±7_<÷j5ù›á!¡Z€Îb…|ήÌ&PI=sxóÝ<°=´ïèÅÏ9Ö<‘Ò;HmßaÑhÛ¼ œCÁût¦õ{‚ø}´å·lÖ·÷5Ößl»´ëòíí*øìE'¢gÖ8þô—ª«{Î džGD3;î¸kðû ö"L£…#\ENãFÈÔÓ ZÌ’ €Xï«Ø—Gç¢rB4é i!"/ßÉÑÄvÀ5æyx Æ´¿à/ø ñ6 òѾºté±è·Ÿ…–ŒøÖ¼­Fkúpß¶í˜Q.ã ¾è)¹ø;rBµ$`ò´]ncC¥†¡Ê05ùÅÜQîÄB&eK>bäh 1Òœ^UbRé¹BÞÝÉÚ> ( @w±€ýº{0P«C7›Xc£ %’Œc\#àn 4 zlas­F¢½fÄuÆòÂ|‡°îñ§°äÀ%˜yÀäåÈÊß°ÄaˆR¢Ñ¡,QÈÃG?ªÄû÷­m3$"vÅï¶ÅÜUòƒ±%…L-Hœ™{Îסp1wí׿EtìÑhØÏyQÀáŒÃø9Y­qÙlƒ˜8ù9–ø8l*¥?—í¾À¡Ô* W8²íšo«ŸAF8±b£Qo}æH,>µ…25´V{¼*Ð9W DóBh¢J€Úú˜0“$àHH­š`Ëú&â˜ĉDßœr…±8åÜ”:Š(w 'Pó!ìh”ß<öÄ0Þñ¾ûP©ŽH®¶|¦ö¡·ž9œ%e‚ ìÁ•=}³O9³^¾(ŽÏ‘B" (uÌø•!w_ݾyÙ•¥Á‡Ô›ƒ¨ÔÔkƒðó@J$Q2Þß‘ÏãÑ+°fÍš”4çr8è ƒ°qãFœvÚiŽ€ŒD0øß,Y²O=õ>øà–´Ð­[·bóæÍ8æ˜c044„R©„_þò—xÑ‹^„b±gë7¬G?Ž>æ…HAË9 £±î«‹âƒg,8Å®ù8í™oE˜+‚ˆ>œ$ –/_ŽmÛ¶aþüùÕÛn»­ÿÁä¿yê©§¢§§‡¿~ýzì¿ÿþ8ì°ÃÁÿcïKÀ-©ªsÿ]Ùî|ûömè¾ÝÐÍl#t#†A@ ¾(I@d{z_[ ‘s®eîwIQrìôñ™s$YÑ^ÎùWý2ûšÁ-Ú]/ÚN_Û9לsž¹6ÉuŽý·Cøø°[àÃV B]W½Î‚ƒY€ÍèØb‡…R§ ·bÁˆ„ÉâaØo:þ©g÷¡Ñ‘¦…‡.ºgÛ/.Jç°ˆîã1ÌÓ<ÍÇ`ÐÒJËœÏÐoÑè¨(.&,$Sé¸%;¨çØ´{7JŽƒ•ý}èë(£+øF©Ú!{juŒMOSP¸œ¿T®Dࣧ=ð‘@÷BŽi߃G F)˜EÇE¥£ ‹½ÙŒÉóììÀ’Žìð}Ô¸Àˆ`8Œ PïYå²³Q¡ƒúU½ Ó`!vbz›i,Äñ 8GúË>ˆÑV∳ÏBé[߉-hIGI힤­žEµLÁKóñŒŠë:n¥ª®OM f¸‰´Ì¶O©´¼Ð}"«CsËò|XªÎÉ^ÌÒ6×ßCïÓ@$>‡ºíµi`“%Z®V=­k\œX Ör»,Ϋ-à•{À›NZ…™;á@HÐ%`*ˆØSk·7âj§‹ÃN_„Å«Â.ÈÀǶ">̤£@Ñmõ)õÙèì³÷™@às6^‚®ú+лÀE¡ä$ïV¹1aroεZˆ §ñÕë7æ"zÛ÷$Þû¶J¥TîXÝ70tÍáG×)`÷èÈÄK¯îºz¦^_sïC/ 躿¼°+ÅQ~Àvtw™àáRrÊÍÆì5œ\°u•ή›Eè}Ãu cýa¬´ì¢TdÜrÿÿr˜†ãXoîî["W‚-åê3³³õó‚ËV eLLLí›D]º2ùpG*àï! 4 ¬_¿# rá…â•W^Ác=†Å‹céҥطoŸ CCCèììÑää$®»î:|êSŸÂøC|ñ‹_” ```€Ž§ñÈÏk×®ÅE]D`€Ú$¸ ÃüqtttȱG#ÐR*Ÿ€òá§£X:Æ~Äccã8z%µw`ÛK¯ ··}}}¨Õj¸é¦›pòÉ'ãÎ;ïì¸ä’K:n¿ývwÜqrÞåË—‘²»»[[a4§GhÈ@$'ÎR¦sIƒ-Óý8çº- H4ˆÈ'E&‘<ïôvV[D¥ÇÖGóc쎈ó€…Þ6SÞþ4§ûå¿þLëoŽåæÓ`ÐÍõíÜgɾ¦ûg®û%ïü²Î)ä_6øY´ï>õ9{-ôgóú¤¯Iª=ÿ<õÔSصk×\×cöúë¯ßüÆ FKˆ|hÖDc»ÄÕÕuö¡d‘»“àù»À…À™‡†®J Žegü \gÐjz²Ð`£V¥rËúz(æC¦úu-VøHB¬¦MÏ£ÉËÂá½](J Þ"y½d {%šãˆ}Ò¬^¯a»`èàÀU@ö€ Ø%€Nê—° @Iž–b?q\E¹•¶nAóΣú¡KäX²o*mo¨¼¹®¡¶“nx<ÉY.rPŠ8¤û‘Âöpma›Þm—¸£9›j.G©ÿ&RÉ Ä䂉)øX$ê†ìuɪ®j®ûÅÇHàQSý\`Í?x8 úË": màí¯é,sÓÏoï^_±óû·A ãs0«¾c ×4€ZÅÅïü·ÕXÚ”tsA±Ã‡å„ü¦±lG¡¢õƯw¡4qµàúhvIZª³!¾ñ÷Ûpσ£˜ƒð ½çTÛµ„ÿ5&‚+º*E,Xx(YŠÅËŽ@B– Ž>úh\pÁøÁ~€—_~_øÂpÙe—IËE±XÄ[Þò\zé¥R øéOŠíÛ·ã'?ù‰üAZ³f§Ÿ~:yäé¾µjÕ*Ü{b€öÓ±<üðà :õÔS%8øÀ>€›o¾™ÎA‹w¼ãxâ‰u`ÌÂ’¡%¸ÿûPt‹8ä¹WÑÓÛƒ§Ÿ~ï{ßûpÚi§è!pD Hfffhn²²’V˜+¯¼RÿhJ°åº®Vⵜˊ0§eƒ8“ÌŠF–åà ÌÀÀ¬°›Ëaí‚–tµl’–K÷°q h8[ƒ”äó/“â_ùƒaar÷¿ÿßaŒŒÎ"MôRchhE|-b:Q­ ˆël^Yë8—+>>½Ï 6uŸ4p 1Óë™÷·ee3Íen‹é@îU €óÆ;“¾g.‰×$kßœ–ÐôyÓót*CÅ¢ççÍT‘Oû¼qˆ–hß’ée§êPï*¶‘pÉ݃s^³®‚ð9À"¶lÀ¶^óaøQj>öT«˜š™–.1• Ž[¸ƒÝ](»Žtç²`B$Røú¨Öë2È*qLo/ Žx}ý›A*ˆƒ==8¿·nÞ,‹(® žèPJoryšqQžuVNñ@®Úu|ÂPĵµë€·Ÿž‘ùI+ÔÄp‚D,‡•&®vyJU×ÁÜÓ¨µÚþô&ßÖµð>[Àº*CÙèò€?sä÷SØMg’Ró'ýêZXÀÝàImii 4®÷p-€®i¢JçF|eë÷1\Q–w«ïé ¿ŒÑ'ŸFo£)¿ÝÐävUœ#Þ¾ïÿ³Á”{¼š!\¸¥&l×,ÞúnqðM *„ÚÐ2V2ë8C”|]_@° “nLÉ=³vWýÕóCa2×ü]”fqH\à[6øÇEØÀÄÞ—±ck Ný‹ã”ÓΌچ¿35Žïèì7¾< 欲mÖÉ,&Á£à¼u,¡ç_Ûh4a±Pïõ C ¿ˆ€F©äXàÜGàGx˜­yð½YÛ)ƒ‡ÔÞçLÎ]­5¤…Ãb¼—0ÏYJé¼àº|‹Û¨N¢63RÏ ¶nÝŠ³Ï>[žÃÈÈ>ñ‰Oð K)óäºDûåúÏÎÎbóæÍ8묳ȚA AZ9ä%DoRÉ=K*ûûØÇÈòAnZRž{î¹hiÁC¥RÁÅ_Œ-[¶P? H,X€“NZf½‰cŽ:FºTÝwß}¸üòË%XâœÓxdY‘ý®¸â ûŠf³‰È‚Ûn»‰tÛ±cŽ=öXDi'ât›A)ÉTpòÀJ¦RlŽ«A¾»’4dY*²–i_ÖœéóϘËh©Ès]Ë;¼qLßQ¯m–›VÞg~wiÉ­»à¶˜— pË%Ê? œ®Ï'.¦›|þ‚„H=ëzî±´”<.€(01QÇ]ÿ¶Yô»ï¾Ë? FÊYÄÔ'ËZbê¯)ÏÂÒîykžµÖY2,烩, Û¶Ÿék©eúœÉ¶^¯'Ǥ6z~ÞÏ{4ãžþÛÈÂ=…ß`r,Ä$Ò2톕b–dC•ó"€.:* Rµ áÀÃÛ¶#ؾèì„]*ÁuÉó;ÊXîÚX¬µf–iîUAÖS&öNO#h6ÑS)ãô¥K¤‚kY¹Ï–­IëÇX­Žf£p§PÀªþ>XåR²êº”DÉÿõ¾UK‡pÏÔ4hk1º IIŽ®ZžPôY"È;¹¥bˆm¨"€ãà_».Þ—cÅŠ- Õü,cíÃØ IÊF,gBà_8ðY‡a ú[ב¼² §økmÙ ÐÌœ#€ó´õE+Ê¡Àü}ĵ¯xhâWDßðpãŸð½èœ¸Îe¸ØŠ»¾ûO¨±‚ÎA"Åî¬À†ãÞ½tì´K~{¡Ò Ö¾ÉV$£„^³a»6,·)­!Œ €!m…ˆ‘IâÇNˆ¤Db¿¤ÛÀÒmÆrŸùƒO<³?úñNr»2—øÞq‚õ¦h®‹l«å43=áÍObr|–s ìbeUK :½»^}°:Ï‚Š ‘ H Á9㘭‡pm×âr?€pYá;ðCÈvµº~êM:^Dûii“Šr î 0å"ÇÍß Ù"ˆž¬Jð}ÕjUº\yž'ëñÇx@*ýÃÃØššÂŠ+´û¹4‘{–´ˆÜrË-Ò5ë‰'ž`ⓟü$Y&˜Hw¯»îº +W®$РɳÏ>+-*üà À`!KY,ÔP?ù]Ï<óLyN]]]ôVŽÜ»¨@Ñ@@žïêÕ«188H– Î?ÿ|:ÒíêÆo”€çÃþ°~c*™(#žÂ  •y“‚bzÃk~ãjV@AQž•ÀàÒ”k¥ ¾Ys´« æ£‚IÂi•¦m0*’ãd| ¡ÛDÚÄœ¯*¿²>‚-/!‹.ÿ£¿0YÈLîHzóÜ|t¿|’¿mŒÏIP– R.`iÓº3—LÏÅékhp³2[>Ó’žk£££™çF/†8çzžg"ù"zÆS»ñU©gQýë_ÿzsÐ<1XAòÁ‡¢œLZ"•nÖƒzËpg™e ùL ®+­ ŽIÛs‹Øñ­vý`pMœïZŒŽ]ÂX:«þ㙩¢Vo +ë·:åB!uŽ) ¥eÔ€Ë:$“³Uð TáÁ¡¾>ŠM‰«¯çXe˜Ò®{Ë,ëïƒ7>†…ìõq15½Š­<•1ÃÅÍWŠ;KºYyžêŸJÛ¶H¥+°k©˜Çµ4´5DÜ “p÷×=|Ä ès•‡ MwHþÿHç¡ H¾ìO ¸¾8{÷M\·}ß³ï,¨àÀ¾ÀUM`ôìËßTc–u–e[ßa¶5¨À±òccࡆ »àÃ)`¶ÈYP–ÓÂ`&vp÷3`Ͼ:®¹a¶l›‘‘ T%|Y>nÃÁ¡sƒý–¥ÂàEˆ7°wtjÕ)ʨNO"$p2ã¡9¼ Ï– ¢T°[}›Âƒ¨7ÒŠÁXÂE´Ç%¸*¸j¾dö<4ÔÐ~•<& Ô’Û¶·ÚD$ÁTf5®¬¢q ÁÇ?þq òóG?úQiUøô§?-ÛN8á4ø «Y7 …>ó™ÏH+É»Þõ.êO– êCÀÜŸÈAAè$ÉRB– ŸöË9úûûñùϞƧþäÊE1!äÂ%ÄUW]E–!úL®W3¢ÁÌ0¢s!k'’ÄdÉ!-Àå(!4G„ßú'ÙLÈR’Ìo7c6çÎbÚÎ!Zf¢”u!w Eù ª9žc.p˜nË{&ða€<ú<5>ˆFu¾GÏÔœB+V ±!d?ˆe¦ÀiŸXäzµ ë^x YtÑ{ÿ¥R…î§v®• L˜€Û\¬,ðiʬ—Åàj`”vAÊ+f¥ß ò3æÊíKûÉz<`¦g$¹¿æžž‡^Ø`8±ïnâÄø;¯½öÚ=øÑ<±g20¾0I,_ƨà¨*ǵ^ð ­¬ea"âºëBè ‹G$é—~l“LmDô–Ðó=,ììÀ[Šü^Ð@) å259SÅÃÛwÂg}$Õêh+ð–eì«ù>¶ìÖÑQéžÑS.ãŒÃ–¡««3.V±°lTmêõ'Dòµ a5›˜¬V±wëf A ÂâˆilâÀ" Rí,a6Uæ‘ÈPµW\SÊÝ’v¹Rœ b)‹G“Ö.€Õ—¥æÊÊ1šˆß¨+k€Ü)€¿Ò|ãU/½ØÁ)*1 È@ôèw=Œ"Aëîûý³-Ûº%â%3f©¿×ý` €qØN(Ô-Wå°gÄFxÙ& 1cÞçy!¦gšxðÑÜûàN¼²½ 3án_‚ÎÀA¢3WZŸsükŽÍ"4®“ Y¹Ðé.A@¥ÖlÝnÚJ‘¼›Ã¨y2%§ñ×ç²0cÈAû .„êÛ d¹ß¶´Ñµ5‡Ô_¹/º€°‚ÎbvÐÓQ@g¥„ÎÎ8Å"Ž=çгøh“KR’M®™ûõ[8ré"p’V’ YC”,\¸¶ó”‰´4g“Õn ÙqDFÅÆœÑ©­@_³ËrGZEz­ ¨‘Ì#&9L_Ç䚬&+Œ!x8Œåb£Û‘7ûjc×#ôj1á TRFAçÊ%8¥,§uƒ2LÊí¾_ ã†o=ŠF3@šººzðÍîÀÒ¡ù–=³õƒØÚr3§iμ? dº/Òk•'Ñ®¥„âLÙßt¹ž’‹S Ö– ŠWk7™‚{OÄ^|\ÉÝjþ­ÀX_ Í[@bbˆANÝØÚÇyLØ `TÉËÂ^ÇÁt©,ŽƒB©DoðÈm€X~ÖÀÃQYe4Â%÷„©¦5å ¦ËÝx«WÇJ¯ˆP]“S°pöQs³ªFc5šžŒ% ƒDG.D·À§€Ë@¡€ç YaØCÈCe:ìz Ý6b¨>‹£‚sq`Ä)÷ª~ .P¶*(ÔvSíç©€~¢@Äãk¡­&®ª.Oí÷DÜ7T–ŽIµ»5ÞÝ.ðþ=øxÒ히óéÄwþì!K7>vÑ-Œ±K¸–Éüô@è3 nÁrìb$3¦Všµ 2:xqÓîü×møå“#h“8€ÿàÛø˜ÁA¤ZS $”НÒh;“@Ã’ŽHÀ ZÖ [AœZ©ÀÿA:0y™e_N}y«oHc03ÑW¹Y1$Ç-%\cA#J‡B¶Éñ#ùÄ#¿DÍ}`™JZ¶‚fvÉ3D÷ßr¬¬àVJ››œS·gõ3)¦¦”¶Y®ÔnyŠO–•Å$kV?óÌø”Ì´´d±J-%É~™Ô>èÓéœÉå®Ý`b0€Æý®Ï³Ð³2ñ£Û-ch öú:ŠyèÛ­£>5#H©·ŒBG ‚lÒ=µ _»á!äÑŠÃOÀäÄlÄÏç)Ý š3©™]œLI²až4oS¼F~ÌJú|â6ze‚Ðôœæ¬qHkÖ£aþM¢ÿ­Q†ÁüÚižœÌDsy$Ïê‘ :Æì#©xŒ1L‹ïîÆL©AÕÈÕ›Gthà‘~€Ñ1žçI3Ûl­Ží==x­Ò…YËÆo5f6kxab +ö·Àc9FWsj  ±}bãÕ*c8eÙR1¸P¬nã÷Ö}lú:”œ‚Îç¾ DÕHŸÙ.pìJ̬y è¯/öÇXJzJ$u=ŽT?Sà ¡SÆ ÀSc¹ —..Ô\º@Ÿ çª×ó‹8ûÓW56€Ñ)÷”§¿ïS·ybŒ]ˆk„ÀÏ„Ëõ›º€ppL‚F$g€6ÕŠ `J™2RfzI92ÐÈÜçi¯ãñ§vâñ§_ú {¤¢Ü&ý®\®į€ükQe`'.þi…ZI-Ë„iá–ì#Oz¸Åqùr A@úÙ¦ûŠˆ™q_.h¡cºZû-%•…ú»6}N½,¼ TLÁè6„ŠãH( fë@nêKb;ÒÍRÆó”SVÉñÒ Â{`ªÑarEI›>—´ÌúFÿø´UEQ»iNÓœYSÄóòOö}ŸÌqÔGš¡,V°€hŒŒ`墬–(Hœ QloJÈ5ön³€oßîc;4ÍŽ=íàÅ]x†àâCBˆË">N[C¸–¡úÑŒ¤ ÏÕ&˜]—>ÌNwQæ²·; `°Ô? —Í”¾ÓÁè›·Ž¡ZõñìÚ<·nDº0í«a?è_…Àsø˜Å¯ˆÖ¿"î_µ‚=Öðñ;\.,­ô3ÑRúeExÀáÔôñRŠ!ÏbE–Â`¬š`[­B¤*V 51Ó±"4¶´ªÁZà[1€ñ|è1e[ö“ëØø!IÀ…RlKßßøyVŒ,E]ÎSdò,龦´¶éýæ`Ñüúyµ=²ŽI*)¦àæôØyûÓŸóŠ2iµe©Ê"i_ût›ém´ÉâCœÈžìkò·7®)Q†ûXrnÝn ¯6ŠX³ÕÁ‘K¶£×·¸zަ@ˆú>ê/ÕQ¯£÷¨n¸vá ZCÖ¬Ûƒúç°yÛ8ò¨\êÂI'žCà3y-MoöÓàØœR7ß•h.Ëh^œQr\Ó9™ž+z<£õ0E+‰Ñì‡j{=€LìÛ ŽÿÄ4@ 9sL1~"›Õ€½JŽ+ 2Q.£ÖÓ>8ˆòÀºûú(› É,Œ1dñРØöÐu]êC‘d ‘Û,â'Ü2ŽãÇ.Y‚­…¢t‰ÌÂK¶›N­‹z½I¿)•Œ#ŠE,´ò§†>úEFçïyhxM¬Z‚Câ Ápg ÐàŸ&ŒÇ„cãjß^;œþ†¸ArT{Ë‘ìvÆpšîER}á@½èâ³–…w •¾Ó¶°&â>ÛbG‘Ž$w'ÆàBâJ+b¦NZ›@)D^ÓsD‡(ææ ãñie#ëØ4çkè*ç&WŸ,¥Âœ~×ìïžg11“Û‡I!"6eïj;.&=¯¢ôµÛ_åÍ”âÖ|Í °Éj’i #Jec]’ä|AŒ6º±gò·0XÁÒòK(9SàH‚žÇ#PÛ!P9ÄEGw…fÝ/¹üÃmÁÈîÙ(Þc&rl§ÿÖèêZHºˆ ,fUS’# 0»U!Ë}+¯¯áoË£EÒç”Aœ1æG¬AÇ_+•’Æz.²d<…7Í[ˆv-"eñ˜ Xªx\mÏXdñX½åJ…Ò@à Œ+”GžX¦‡dŒQå\ªØKŲ’©ÛNÍF¶túG³R.·u 4òƒ¤ÈJAý)w=õ—n`úŽ?/XØ>¼ Ýr=sFw¯{nÍAñ¿¼€U>Ç€K V•kÔKeÇÊ(øÈu=ªÊEÊÐgI)‰k€¥$´T}=ÑZà§ÄZmõV߇là©P`Ów}ÜŒ¢yzê§¿}Nò+yþ~ çé±;Î*‡AxçüŠ0à'ð <&’ð8ô¼€x €4%èà tˆè3ɳMÞ5:öÀÀÇÏ!ð? /EÀ£†ý¢y:å6 +”íîφœý¹M€£h£\°à’Å0pÒï¡«IžriR\ò‚w Ö¶k]´[±:Íé¾``œ3/.$P™üÖÓ \:®–ÄæiοÎí€økw ó€ˆæ¬ë’ZLV’¼µ0Ú,€‘×ÇXkD3l PhàˆòZ”Ùnxdmôè÷\Ë:Fç­XIK®5[ÏÌ™†|†Êgo^àÔì/±ü$¬8l5¹_™Šðã2lÛ6T›^:âÊ2ï…v,ZyÎv‹>ÉMˆéN$Žüò—¿\Ão,Í“cq€yìjµ À˜."H\,¢º|9üJÅŽô P_*tEUv „…‚ÀÅz$ý— t…„ê{ÐîUíøíêcµmÉH‚*IÖ d,â—…Ñ1WGí4Þ³6lhÀ:HúÖÕ>Ž_}߇'ýìßÐ4O§ÿÁÃu¿$¾ÿæ·†ü}AþWßòü°GZ?Óð(Ò‘Æ|!”ç±nŽv>V×ûœ|p‚–‘ba(ë"ƒl\°ÿ B…SÔ1€ä#ñòAéàkŸS†óbÀ×%ËLÑmT¾˜¾°°À~¿Ë?[. ô#oýi³”~¥æ=Üó#Ö+¸o âqÙ¶)B<ûê/'Ìqð‘»ù±ºWÂŨÛÜÉÚ|_êPMËC6.Ùÿ!„xü¥é߆ŸkêCrüä)$Ç;.5f烲ºyùtœÅõVùlkBX¤À|Ñ¥ÓX9¬y/èWä‘lìÜ¿ßêâñ0ݸÒAñðår&|Í“@)"”Š» )ø¼ä¬p Ÿ£@° Âgk¦p:%ÄKŒ«Ó.ÞçþYˆË<äã îý®¥CˆÃ'ç7‘Z!„xz(ÇžÝ[/òèeìhk³Û[[-ŽÎÇýÍ͇„°\N`ïÃw6˜\ÌÌÌX&“ èœN-ÀO1çä+–ϹuŠŸQ,(žø,e…ßËtÃ/ÞçåcÃ^ÇQ\ßÁD­_m["„B!„ˆeà”?]â‘u²ì“ŽÍeêăâ‘L&­©©‰“«ŠS­˜pDƒ‚Çì¶BZÚ /Üåñý ÞG±à{.Š8Gãf³YJ¿Ÿé?§°p±pNág£–×ÒéôiÛö!„B!b_Á˜tL»üñwW4¿Ì­Oíí¶ÉØ…~F*•²îîn–Ë)ƒ²Çø3Ù „°˜Îg)-œR剞ÏíuømU|#q)!¾ÎÉYœ”õ-¾ó Ì—3ãããV!„B!bïÂfÌì'¬ó.ùXÃA‚; «F¹ëííeçƒ"Qr^µ—B‘˜¥„ð3ÿ¬ŸlU¶TÎT„)OHŸ˜˜°¹¹9&(iÏqÈû£££ Vq!„B!ª¾”ÍWj ·îÛgÍH:ö&“œJÅN‹äL>(›:É•÷ñôsn¿b’199É3>8¢·ÔAIþLö;˜t09¡„P<ÎàßB"òñÈÈÈy«X„B!„±'Ì6˜|\@ʱžJYµëztuuq»U˜HŒ…âÐßßÏî墬|DÇæ²(žËå = kÆ÷²”N‘¹úLvBXFg)}qqñ ®Kèy‚”œ\³ŠG!„BQu —=úµñ¸% ëèè`gƒÒJFOO åL$8Z—âàä£4þì?F·±±±˜¤444°¼ÎD%ZJgòÁäã,JèÃóo7+mDq†3Æ’„‚Õ¸²ÒÞ[[¼ ÝØ¬ýÀû³‹â-¨· ~ôÇpC‰…Ð&B|x™2ü7“‡Ãtf 0ŸúU]wº9•¨ëºÙ`ôz½æ=²Ih¾çÔãœ޸ëf$÷6§ùÜœ¨ŒÐ~!ý~0 ;SUzmP•ÚžKÓ™3ó€¹T§~ú”>—¶ÒZzW~ó¯ºeÎÆˆ9ÒÒt6ãÌ¥iƒ*õÒfú’ŽÓYº(¦£´—ÖÓâ˜s¾¥óÖœ“tX欕9@5áûžStÓû´›öËu+-·ž«Çô3ݤ«t™®ÓݘsVÓNúš¶ÓÇTÿ1gXæüHßÓmú5ƨ&°V³»¶â¿áÙ~ëëüfïì~£ªÖ0¾ötf:s:ý‚–R rà |–/JõZQAc°µÆxUš4\þ®Œ^Œzíñ£1%Q5Z"X•D‘(‚¥åÐ)ítfê“ñ—¸³2›=SŒ“zÖN~¡»ûIvÞõ®ç}×ZC´ÌÅÀÕÒ-ö Ø`˜—0sYnÅm.…Ç£b½h²¶@yÄOw‘h ÙušE§Ø%Ö£ÐiF§%è8\!g…-ÁÏáYy0/¦`BLrŸ/jȱÄb-û™91F‘ž©˜ùp8½BˆY^!ˆ¼¸"F+y÷M‚wXcçÈ‹IrAšÜðº®;e,«ÅJÑÀ$lŰ8&Ž‹³"ý%݈¥™ šÔ+¯ã€ZÑÁ–«N 3Z0I ½(ŠÑw Í¢>LsxT¼ Ä%gì!ç‰S¸¶’í³Dy „4ñô›øEœ?SDdýÏåykÄ*Ñh7_¬ž"^¿ç¹SÆ]ŽÊõx…v±‚û¢^ÁŠë,ãâ(ͦób¢y¸ÒÞÀ1šsËÅ:±ÈÎ/Ãk}-ŽÙ^Ëá˜í+ 1q=ûäï7‘\’!+ ãâñ™xW|".Ïtp¢gûÎ|Lf½)á9kRŸ©NµO'åÓÉ`"~é²tÜðÝ#6b®"“¿#é.æß CÙ˜^*î%fJÔIˆÿ swE|…G;¹°{Šò)«kó­~¤ÉCâSâì Ev#ñº]ÜLÎMÄlV\ 0ÿ@â9®qT’8Fù6q»Ø€WH„­€X[oOˆñ C¬ŠTü ÷ xƒk÷ 1æ¢ûÄЏ¹¢*à[Óâ4óã;x®ÿÍöšÃ­€D1»Äý»: ëfXƒò=ñ,æÔ [³XÎÄ¿–û*t&}ÅΠ8IÈÏ@g+<lÝ™ãÓ™'Ñù ãz(ºÄ=â ÞoÌŽ¡ÖÖV“ÉdÌðð°Kº;O‘`ÓWÑiˆÇÅÅtÚÚÚÌøø¸)¶mðKñ ¦î W¿âÑÔèOò)àø¼ø;ËⵉçðZ3K/‡+@<Ì÷ƒ¢ 2)"eŠÊÐÑ8 ^Ë4ìÕ>[™œW‹&k?Sz–Á"a­Ru–Ñ¡¿“<×Ö!©ü$Ñ Ý®ãb¬Ftb°:0n˜T*eöïßovîÜiÒé´Ù»w¯°;¾§ÄÓâq)@§–8ÙM79åÕÆÆÆ‚Nww·5ýýýæðáöΠW™@ÜõÿMBÜ@ÜJŽhÀpEfts!l1y›M»xL,Ù®bŸ/o:Óᨠf|‡ØÍIØ^¡D¦!->"®ßç¾RW59bV…xAñz¹’¬ õ£WƒF© ßoÅrÂ…ÙêKn VLü›ŽßR[zPNqmt ?Æ^!3aEb«ËB¼AJ4ñÙ¨8jy0êX]YYÆ{ô¸‰âc6Pü\œ­ÛÄ®Ia׋”=ª«« xžg ¶·LMMÙÿC«¨-3)%0­w‹%tbÅq–DÏ•¸’b:$˜`M Ýü¯Ø}ÞÒqðmTLLÿM¶Áêèè(¬xP|˜|>o†††‚;cÁƒ[Ä–ÇçØÝ·ÎÎNÓ××WŽŽ»Üaóù¬ˆîÀ UË ‘H¤PH‹ÂÏʉfzzºc¹\Îd³Ùú±ÎˆÐä1 äÁçÍÉdÒø®ÂóÆÆÆìojóÈKž‹_Ç߈ç3Ík‹y…D"Qˆe¼BQ4V «ßúÓÈ»߬ð èV#–‡z¶qû<Èi˃„~K$:-¾¹²ðîjjj˜¿JòZu³µ‘æpÈïìkL–çùÀoä•Â;DD´`"Š(žPtØÙƒÚu®®¶dËÖ´Ö}غîCÓ¦MiÒÓÒ¦iÓ]M×ô–Ílûÿ=-;k+*Sç© R- ˆ ,ד_rß¹ò<<ïË ²¤½“'”ÆÜ÷u]÷u<ÜÂÈ™xáSô¿+//7/¾ø¢Y²d‰ÉÈÈp‹/‚½aÃg/%“#bT’c¸„Õ8*XB9bB ›p>Òâ€3'¤Žhp¾õí”DUÒ?T¨û1rssͳÏ>k&L˜`X¦®®Î¼ýöÛ~¥&—‰‚õÀYD”jª®;ž2eŠyæ™g¼,–Ù¾}»ùè£üàt+8£OŸpø׊׾Ap¢ ÜøYT KŒùóç›»îºË,^¼ØÌ˜1Ãdeey™žž¯—éÌ™3¦¡¡Á>|ØlÚ´É|öÙgâD¸NHZP“î<`^xáã®õë×›Õ«W³‡#+iPN^ûöM“oÞÇ& z&†o² `Μ9ž­PUU%t "÷ãŽ;î0'OžôáëQ0¤·A ° v+$ÌËÅ~IÕåûví2ÅÅÅn0Â,_¾ÜlݺUÛZà,q½+O+â>ÓèÃ}>0‘1pDýŒ[2óÖ[o™ ø ‰Î:tÈo¿t&d´RÕ¡wuÈÃL Ë úB™¥K—š¶¶6³yófsùòeј†áp8˜¦˜œÓ¤g¡Üs gÚ´iž£ÕÚÚ*Ñk¤§˜ò‡nãt¯1œ7ÊψO3ëÎÑœ¾ÆF´ÁnzÙw`˜šöJ)‰šc,Ñyä‘GÌ¢E‹ Ë£å£>jš››5€nz@¾Ô¥nðçLœ ?8O>ù¤©¨¨0,¯ùüá‡6çÎ ‚s \$sÒàßT~÷…}ä‡|ìÕ¯iÀ>áuþv¦~:çãÂæEç> Ñ|EÙ/•3úÍ•ï¤æ20bVÚà(ið Gá¬×ÁWŸ=G(œ4ÎØAá0¹.N’3Íg)ÑÈ4-¤§OŸnžzê)³jÕ*_Ã*z_AAY¸p¡—ýxðÁͽ÷Þk>üðCEÅd?*++»d;v%Vgd¨/žà·˜ûJ(%áÓüÞ _´q_‚õˆâ5øøŠ6–× Ïè¯1ZN†á žOç¼c]œ³¯'oÜ…ÉÁòÆÞÑØ£ìÈ5¡ °‚“¤š›»Ó \ ç:û6‹ÌÇ;ï¼cfÏžmÂÖ©S§ÌÙ³g}GóŽbzšcƒdfƒˆm Ag¥aÜbƒh<^bm3‚h………Æ]Ov>ë*ü¨k’9c†Êî2…;è uþø¢ Þ@~‡Êêt~Fô~àä2p»ì=ùŸ­îHQú‡3ÅeÀ Áöp¢ŽþOD޶ƒÃ~`häCÉ{ý.O§oùDÙmŽ~M¼ |üŽb7o^`$£¥¥Å466MÓZ#™f}eÄÞigäéÈŠ:ãüŠåЮòœ5k–yóÍ7%ú(S“<Åþúë¯k„æJ„ö€˜vÊ¥š@ZŠ3âµP?ü%û '—]úÞ}÷] 'C% œ«ƒ´+c:¯íŽàüLâgš62¹”Íȇ1’ÛC¶VlYDf ÔßdÀGû_à,C½œàå– ’¨Ûo¿ÝÜsÏ=nJÙ¼öÚkæ“O>1Z(1Úp'HŸ®Ï£}-¿ ÞyçfÍš5^i K"r^4Iÿ»àÉ x¨ÉçàØËßÍÏ:ÓOú¡Q#g¸âÐ`rX:Ÿ³^rF¨ I:µî?,F[ƒÜä³ÏTàg±·60ÛÀÅQšò¿Rw”å«Ì&œ™mȲG/{¶€›N'ÓÕLé­؀NÄN»§ 8Ýœ«8}à) £¡ù‘­yJäÂ{ï½gJKK‘ƒ! GXd§8Â 9ÙÙÙÞþî’ ËÞ½{)åÒ†€¹¨p5Æ¡ÇTdËØ°ÇcÙ+Ëâ•zw`A§Føí G+5Â<_½“’Àk— Ë ø­³`èŽÚ¸åIà-GgnYú]–näE²/ª‡—pÆ}¤-Ž¡@ЇW¹ëì7Nß%oNpGO+}à'ÿÓ1 šäÂã¡OŠÖ;œ«šÿ›@Û×Ö8„Ÿp.uÔ^tg,ëÀ¦»»Ûgú!Õ5]ÖA¯iDœ*± ÄD²•o¼ñ†Ÿ R ^±AL¸lrdj2ø/5LøTt ’§Ã4Î:::ü6øÀL„Î×ûgo(Y×ö6 <Õ?g;|èÁŽ Nhyí¶y_çÃQ¥Çýæ"2à¼vÆÖFoic;TÈW~¢¶Á%Ç6èplƒpÜÌ¿¹ªYÐ8fŠÕÙ@s`ჿLÄѹ:³ÆJ•½ù¢úy öJuJû"Jg´  ö:ö|_¢È€ýX”X}úé§^t.‰P÷lq! ’ò¿Tæ2ÇÃýŠæ²Ï1õÎûIÎÜ•(ÙEô¢Š²¤FzîܹAS9~ˆÃÓq[AT-|6Ñ~é²,Œ?8“˜s‹ݸÀþ\º¬HM©6¢˜¤_)ëL©N[Ðî8x!N])†¬=/ï¶0t7J­uˆ?X·!xÆjÅôüóÏ{å*,³gÏóÒK/yÂ\­.h¶úõ«Ò«*àh¼åååI‰—G;"ÈžãñòË/ëL–¬N»£\Ô2JpÊš™ÐFG“ì[d Tâºá:ÃŽqUõÒ,-XÀ_®zìEÀôáî°ÀÕx`Uržö"š¢¢žV¨t8w´éÑ”ZYç9ѹ=ªGÍËìr¦|uŸ…lfÈFã=Žã¬oC]tŒ¨JzKØç;þ‘|ËȵCУ¤x#¿¬ó”_Uñsø s@.q×r8¯Ÿ#ü5rµþ>ÀÙÇSþ»¼Œ´ìa'tßËžõ8îíÎ@—VPƒ1ú’绀|Ü)ç8çÈ9~²È4×ÖÖzÆ:&·gʽ* l‚n׸°6ˆŸCpß}÷‘¡ ¶AàýU~6zv¿çÂk߃ï\›Gð$ŽŽ•N±^ðE2¿Š»XO&ñé Qº;ÑKé’9ƒ~ûœ3‡_¢ðØ\äÏ,dPÖ •}ðõEGŸÕ²󨾎OÁðZŽÝ‘jP½¢lƒ‹È€Zx¡‰óe"¦Ô¾;¨³¯8võ>ö<m‘Ç&zßúldnµSˆ#£ùÄqV;ùÛwÁuÐïòP¡¼â 3Iš)¥æYJ°¤ñ‰'žðÞU`™Ý»wÖkY ´ä|Î(ÊV.áÍ€\­4EpIôÜ]GŽ $“ã ÓYáͺ Ÿ¢á¬X±"&80倂3ßz—á“mbµÞ&ƒ·yz+D? ÍüšÀ«)…ªâ¥”CLGAÕñxj®·ôªÂ¯±VJ¯\gŽÑ»~ïôÁÈÿÂ8éQp¦SzU®áHþc=ffΜiX2zW²eÏ/ûÑÂ%*FéT¢´3liO(}&ðSóBÎ÷%ð? ¼Ä°'–OÃMv‰'ìyÄ øsQ¤³¹ ij¯ 2^)…ov³ïŒÅ^ð’ŒjœiT*¾àóe+|õs÷çò­ØÜ³ùÀYÈY³…ÞUíg£8£*h N…”îյͳ;wî4ëÖ­3§OŸ–fs1H¼þ¦’’ásÉdxÔ§Ÿ~š _ø:þ¼¹ÿþû³$B,¥*~Qâ&ø·šaøÜÊ'*Ç5hõóá â·Lè^†ú˜{Z}ʉìœ6ðËdxgõ‘kìÛ} ÏôüÜßg+½¨‹oã<ÞÂæŽž‹œÑïD8Ãyšý¦±ßÜÑí"IH‹Ñ«!V¦…ë`ÙHyû}ŒŒ9åddz][A f)Q[Áí• ¢È{)Ñ’%Ž» ë‘Ï€èIŠ«(–Ù +W®ŒÉ6€>“]}ý+qÞç³ØÒ†…Ãöþûïëà…©¯¯âÅ"Fz5·ÎGìv:Zò鉜É]Ç1-utB!¼ ž–ÀÏ5Ö__«lˆ*ÓÏçŒ7A+Δ¸m޶pÆþ_5ðòTf%\ŽZÝí‹­ˆ›2°M \ãßÀwó‘ ÃÑîRS ‡ù‘1æwcÝ`&Ùylj ^ƒä–-[BÚ”£s¥s!95hÜ¥”Òt5qâDÃ’ ©ƒ§ Î>öø1Û¶m3ãÆ3²H»JÚ3f8~8ö#`4ÑÌÛA$j=o’œ€ànH¼µ5¼LmTo@á¦åÿGMW“ƒò÷KaH•þøàƒ˜îc<ƒí¹çž3?þ¸Dµ =ÃÛ1"ýÅSèÀ)Ðpî¾ûnI‘»JN`HæEÃq³?çÃ{œåùDšÀ8 åKjÃPšË“Bøâ ÂA`ãð¤à ¿£ðÄQÌÿãÀá.·Ž9‘Æ\ð…\¨AQ瘸Q9çӉÚEƒð$QÎ7z#œÉz˜W^yEj[>¢ ù0¼ì$¬á[ýÐZj?ÖÊ}Aý”»aG¢¿ èaàv@Ýy²"©ÿ„ßöŽð›<ø÷gŒZ  7Þô°‹&ø.¹Þ†¬.õü?cÌ&à­Â©"㊜ 9WÈßÞ…®YÇ{I©6øía}32v]²ÐÜ sðàA³lÙ2ÏévVôÿ—‘΄%£G~ÁÈÿ¢Ál $äää¸%RˆǡΈqoÐÍcã¡‹^jXËu*ØÐ`½£ƒx_À‡%ÊH ¿õ;xªÃ¨Ý½é»F“sЬ ‡“ˆÝ˜ m ‚HÀU r<š íµý7þ²l¸ù€³œÄýÿÝ7”¬Kþ/È™eeežóÁ’&2‰ÆÛmŸâôkôÚZTí‘i˜¶,áØ±c±ÃãÜ|¾ˆÅÁH¶É'NÄ'þ÷RâÄ5‚6Ëбþ¥&¢gè{ÍŒ 7™¤oÂðo:09’6ŒødU¾"3ðjÓȯ¾úª_]{iÉÍ(»^Îx§ôj²Vªq–ì‡8,qŠ¥FWÁ–íY¹^53'NK¼x ‹„àÚ¨ÛÛÿúž)Hsœ”ýøj%ò!u8p¦ø0œÆyò8ß°ÂAIf„ i)û”ÌË“uk×®õu>ÈŽxß®ÃS2©dx—£(£at2Oê~=~çK€×HõÛ±ë©ÈžúŒ„§Ã˷ز»Ûq:oo:K””€>˜ÍÍEfÞŒ>Sü{:QÖÕˆN×Û~‚`8z€ ­a´´îG:«Ê€}†x'ñ{%â|›ë¸ëýq@\ÄËÜ?~´JÛ ÕéÑHâ÷„t¶¶q¯!¤p–[‘ çíCÝñ9 }žÛÈJ”ÉæZ!»KFN655Y2&33SŒ@©ÿ”¾)}‘2wZD’k„•"‘…=ÝF,ɼ B‰\Š"©V·Gþ„‘YÀÁ&Y)!’ßCð†€2 ‚ßîýÄHG¨fé,µ¥òa$9Ïg¢†gw,/É“q)×£E—=ô[++S¨d’ .*½ÚˆRë€ û–g¦ÀÕ%^â|ÈHT—/Ž.ñRMÚD À“®„6ò ÿI9uÿ}ÚÛÛø‰/¹GÒ7#ü!ð…Ä1†ÿ-ýB…åD²œ‡>.9‹Âk­÷ãµ4g*Ôy¶)w õÑGúp&Ù(¹³2=FOŽñ;Çd?F‡?m€#?-h#p /œX£CÕÕÕ®á$#C ¸ŒÊÒYžª,8×PwIzQ˜ò%4“» oØ}ÃxMøKh#ûð„æ Gú € È Æa,¿ÐYÛÅ8×%ˆ7‘‚7áy‘r§äžŠ,oà_t¨ì#8Ô<­Þ°à‰ f"GsÕ™|‡#mx¯Ã w„."פÑYÎgÙÖ/ÑÅž|&JìwWõt·ýû÷ûÉNÊÈÚ;:–s1ă@åð¬(e/¥~c±upRô³n c!ww<ôŠ;ÐMd>ÕÂ[èJK3áCù„?„ïDGÈç#¯3üœú=)ÉC ¯‰|>“Ï×îóœ!%5#Õ¼<9k€KõHLgÂ6@Æëý&TpÅúm¸§ž,Fg+yßBN Èþ²¯È,ÙÛ…/ý»rN9£ô$ Ÿ(ûÙ`¹ì'™Ñ7”&ôjB¦¸Ì™»¨Íª²à¼}Í|ÃŒÁN 1qq")-/$¤&2”9‘¥„h–P–qѲ,"íe” QDZÑ%%ˆŠ¢Â³ ëE¢šLÃ$µÈ¦ ÃHþf=‡õ¬gísy¿÷j¯õ®ï›ùÎ{ö9{?—ÿsÝ £ò¸÷Þ{-"qu 5¥+ØIY«á5”º•¼ÑýÌ®õÜé§Ÿ~ÀQGeNÊe ÐXñrŸ§Ñ@ÿ|=ø{¯Û¾}»y~6ë?Ô¹H·0úæAïxÇ;Ô™÷â\ÜÏæ"šüo¼ÑiÜ +ç§åZ7]×M(O>bnmøqá½¹'óh`$âJ©°ŽöÈžWgÌŸbÕ=¨x7Æé€D!ì¢Û\ásžóœÎ:ë,ïÿÈ»¿á oæÖªy ý~7ò™ï/u@ï)ƒy*Ý8ÝÜ:æy.¿ürï¸&¡éDTÎ<óL©~êžxÁ  oÍt}Ûw¨áõ×_¿/=ð¤“NÚgh½ýío—^ÐL»ñ}éh”±=¨Ëî)2Dxgïœ}öÙRЇùphÚ' äHhƒ Ïgnψ¿(4lìÚµKá¨no~â—>árt_{WÏ«m¤½8ùä“=¯{æGZu{?ÀÉ÷r™¥Ì‰d¾ímo£Ì‹òi ~óhsûüç?ÿ€g<ãöÉ<]Óno4ưäÚ°'þ ôô®!kȸî~ò¾«L°ö­A€ßsÏ=ºe…¢îÝZiùmú†ýxó›ßÜ<=jx|£m¹gõî¢Í9ð¡ÔH4D>h/úâ¿x_›ì#<XKµ.ºÈ1êÓüý´Fî=÷¹ÏE¿îƒÖÜkßÞÜwß}ÀÛ¾óxn¾ùæ*×NíOŽHü‡öC*ÖºÔ}hsôÂgœqÀᇾï¹ë¸á†ÈïGxÚYÖ™sΚW"çdÃe—]Fž®ãÅ}vîÜiÝ褮†ªÂ3öK]€9ZÕ#ÈU™†æÈòG­ýJ®È.µ t§Æ ŠÊë³oJ‡ï y½zàÉ¥ñ!ušÌÉ:n«2²ëwìî¢T©Öå©~O†Â¢£›üÐF3ÏKÆ ßE0'¯å´ûÛsp6åyj3 7½éMäõ¨±Õív²¬»'\¡{(½ü¢½è‘®{tÙ¥—^ªµ0zÐE6Rûß‘ßd·tf×TÃzÖç<#{ðÙ‚æ`CÏC£-ò_*ýUW]å줺Nöäàp¨ž¸ôï÷ƒCb†"ò~&zK5³°•ýÞak‚W9äÉ8r“œp^Œ'ZÃú޳>‡†ïÙ:Û:‡øÔ^xˆ®¹ýöÛÍÝ|1Ïfýé™Ü$MúÞË_þr8ÍýÝ×½ÐýI>¨It³oð‡ ~àJƒ….úÌÔ™snÏìú±—H‘Êa\Léü /Ó DÀ Ú¡à^ûÚ×RÞƒ) ¼Ø·Þz+¼0U9[‚2Ä\u`,‚\Nç¢S‰‘®eÓ'žÙ&H¹úê«4ßAC ,k.‡ÖZ·¼ &½& ȹ™.¶ŒÙ²&ÔR„NG€˜ÓŸwÞyU Pøoüøç*‹\çC"ÕëóÖN  XŒ!‡V‹\@¤•RòNsFýî"„C¿–Ò«-å( Bˆ~̃榬@Àž(Z?õÔSíÍäâaÂp"|–„k„8Áÿ‚HÕoJp“r(¢C8½Ê€¿é¦›zk x5Î9çôXÛ»öhBò /$à&结 ¯yÍk¼[÷é}½éØðÎŒ!P èy†w(¼_kàU X-:Xdë]tQï„9cЯzÕ«êÁ„{£.çû#Zx’Ë€é<ñEágoª˜}Ö¯øBíz“:Óä¨.Ah =Lòç&{ÎVŽ4Ùó3!v-tðØžµŽÉëf Š»58 Бº ެžÓ38ÈÝl¼UƒV;W090U‡GŒ{Èhä'`F÷¦‚/û‡–ÀåÅpßQaõº×½À²ë}j4…°&DZ4Ã~€×!ã£Ò&‹EM™˜ÕOǯ”œy^ò’—൵¤˜‰Ž]ô1ÄÑr5>¦¾Ûà<"–;vìXÔø0Æ€¤5Z')e³V[NÑ¢J¬äh5>*Ø@_0QŒf RSfSDhÀ߇H‹(,ZoÑÚÁቴP.ÝãÙ>pйOCûÑyh‘ñ6¶@?¹×Ò‡€#y54g]o€ò*ò(G9á;¾;Ï 7®½öÚÖ³QªNø|85ô@ŸFn'›å)>Y×JÁý§t-¼ÞùÞžŠéW–ô©'®Ï2!W—0D±`¡ÖÛðz˜tp#Cvdè8&šÖ’eÞ‹ñчÑ ŒÁÍW¼â½Œåì$WÈ9×OÖH·Aôơݤ ƒt«mÚé˜ÀÐñ`c1>àHx†QçkÁ~·Æ½|­NŠcC£aê ƒ­wÅs˜ävcˆÖö9ùí-|5¤ãìW•)3Фt4& ³.”ÛJ©€mÆÀÆ2ýlïK_úR/6è©\Âà*5ØßóP¢ ÙK6–wWïa½„ÀZyƒ‰µ—¾ÔbN¨ï8@½ïðCʧÎùìs±ŸrôŸCT:ñ¬ŒLÞR¿‡×¸²k¥^Ý-wßY˜y¶™¿Á€ði,™ö¤^mS£>„²bu—Bh‚54mxï†ÂÄVn°ï~—ÀFªêõñ¨‘ŽHu¬¶fæšfÀU™ñè1„#=èÉûä½±†Ö³›Ç;yÞ׿þõBÈuo8¤0ôÎsçwî–·ÜrKÇãr¸ë³¢‰¦<^È›oýÉŸ¡!¼ÇEºò=ìe–ËÖCé“7Ð^óЛÃ3»Wõ¸¡· 6("^>Ñ,Ÿ Éqà"G¥\#†‡²lEkd‹”,tkxûôDÝQÆ RI9úKyÝ|rúœzEûiÝ* Ôh2¯/…Ð;J[Ȇ.ÐÀ Í`ƒáGæóŽg°`mÐ:îx=ÑUöÏ\5‚DÏ éh ð¡ðš=Fëd™ý ÙÆ9HÙÃ,SÌÓWƒäc¬„ñIWK.;‡F­ÿè;€ð>KF¼ðƒô‡{¦E?CàL„Cú0Ý<†A0ºÄþÆ“ |Âñ}Î:4‘×­ypcù¾K»™\ ´DvÛ{‡¾ç’.ïšÚ±R´¢‚dzÀºÉÖ¨zÔsd=j^|"]V0N®Ðï­(ȶÔ}q‘QëXŸQ¶õ%+‚ÌÂcž«ê9úÇß26À¿x¬‰ ¤áÁ|èKSãŒÈFïÓË¢Ó²u¬Y'ìkOjYÔÌjÐ%²­×ú7L#Þö¨e¤JÃ$«Ô¼T½f}<ÿR[lYåÇEÁóº–ŽDÕÐ}ÅWxÑ*¬ ‹eQòõB„½^ê)zë[ßš!¤ðä»-U1ˆe^­n``d‘Áz8½oŒžW¿úÕ6žÀozxA§áz+  odQO%rz8@i5òöïŒÈjŸò¿Š\Ë)ƒ†·ÀM¾Î<Á“ ݯ¹æŠ8§DñìË9l)s]©~¥´ØÛ‰s¥_uÑœâE©‹´ÄÔ¬ fë;0¬æúbŠ ð{Îw÷j2z=±wêÎ K(YÛ±ÁH%¬úCFJ‹†„xÆ)4­»îºKºVæ9…Œ„:zÎF. j®ÞÜa9ÏèÃ÷Óc|4 X×¢Ö˜Œàº×KãZ‚|÷îA1õv”á}%€µ˜‡047ÝöV¬™uÀ²–S‡vu7Ð ch N.oö6ÂÒ3º‘š5\÷ñÏ ’Ÿ\À!P¼Ï0ˆˆá—ÞèÃKšC,G'È@BÆ/„QûâžÙø@‹À2Zãà蓉趾 .¢‡j[Öî\ˆß™±ŒÀìŒu{Jªs¬zG~öæÃ[ºOþuv²\ <ÀÂÚv2HñdX64­‰fÖ¡§1 ]ÊC\ksÔECwtŒÉ€ Ž*’Õ™îÉ:¼Ö!‘ÝhðzÿŽõ¼Ðzš2×â£p'  WcЉëßµ%‡Åù"gWCvðö.:¢AÍ$ Â8È jb3öçà —ÖhïÂñ*Õ‘ÒÒoÍ¢fN$2PÌÆ €n úË5Yÿœ°F< >èö0ÆÿpD'_èÂj “%p£v(ÓøÎz”ÜáÜõ{–}ïú‚ŸÂ6.]B-˜½LÊ)ÞÖÃãËÒ>oÓËž­OÿÝR®ówéózölè^dm6Ú4€ ³ªÖwµU ©“Ùè‘â4Íõ¿hZ½žëy6˜ÇÈ]:3žîöLÝ}8L`ú¾Ö‡ÙŸ+$Ù˜nž.Xþ¶%µÙì†|1Ѝ ?€ˆ— ƒèÁ“;çPb“˜?jú¢_ö tmZ&ŒºàY…¥u†¬…=˜ÊCPHïÊ÷²çmÈíðRå}ª_I{ ¿ ¢|("ïˆ[ÐlØŸ[†mÁS1oQÚ”ƒ”¨ü®–Ç«ïreïÄ7%õꘘçÄÖ<‡§%ÏCXÕÔ«bü¬É—Bˆî•…°àþ˜n´¸ À3}â… £7ps_†v´ÂÌÆåÄcúÌs:Ð 4eOEâ†ÂĪëja4@Lµ¼#䀕• a„>9<_Ë«æ­;…ÃX´oÕø¨À‹á•çá#{¤'µÞ‹PšÔ50Ñ?ãa.ãƒBðÉJ0›<ÆBÍÍ®i }­âÑ÷§S¨w©)„{mK’9ϼ·H$ÎP‚uD’xßD;ж5ˆû¡C?sz£Pié‚L“"zèïdúU'´Ô(Ȇd ,k<ï´EêiÎL{x å%GÞ¿W}†®E1Ð*à Ӕh+ã#{Ey 0ƒ†¯* áyr+|ôÍYå>Céxx<ø‡è{ÖÀõü¢_]Û`òpüÄïpì¤\‡·êFåµ®ÙЬϚ *1ô!–˾׶î<÷ÞwÁA¦M®áÈÞxûÉù3ߨíŸÿbݼoæÅÁMQÎ<ªí­ }²Œ&—Ñe>X™Ì¶ßy×dY”r1|vfq8J!Êü!ËÁŠß‡¢M@.£œAê}sÛf|’dR´dŽó2–Ôºx Uxc]š‡ãFËkC¶‘q£Îs|D‡3½SèQU?st³†ìÏ:R çÎ`:(ÝçY8s„Ò~Ãt¾aß9Þ#Ó>¬OtiÛö¸b{¼£Ò®É÷ÁUÖ§ š½óDXÊytÙdÀ¤†ž)§Ñ¼D€ÄHL@Musxe× ,ȬU#AñgEƒilð‚ƒ Àj½ÈñQ¿¢h–x&0÷ìSª÷¢º3:‘³H¯ðZ£=a±ÞAÆ ¤F׫§ÁíÅÀ™¥E¹àNŠ(AÓ2tHq1½HsÍB‰©®|&Zlu(!ØD[bM­‘pcßÁ†,5µZ ›…s^' Žñ1a¸®¹¦ôÞ®^UŒ Ì8»D(¾OøXK@ºÕ¼!<¢,¼[yý‡ ^JC Jöœã¿¾iϘSÆ2Ñ Ê íâU?'éE<½„¯~# F‹* IFFηeb0Å<@´¹ìG7µ”²È `óOŒÀ0á÷dzÏ+sÐõÁ›ÀÆ:W’Aš)d ƒžZ@ = yÑ1Ö7—žü­6¨Y€oDt½4bí}òA¾Ãçè×uÂÀ'¼ÊyÕø$¤8WÒ¨ÄÕ¹‘€qµ[‹ÉžöÆwfÙËhíª-mŸHošZƒã=«¼ÁǼ¿ 9åÎnàÌa€dƒ—€úуïðtH>w*Îñ“ƒ«¦Lõ¾íclbC7œEžµ¦„ù´tšþ°{Ç}³lKX«Eç¨Ì”ÁPf¬åý÷Ý9F= ÿ®¢¹zkz]œpI½§õß•jfVË=ÐLv×g¯ÍF'©Ulûò<ž…S`F‡Ù¡%óƒ®ö™T+#m1_Kï Ûêé9%|¥ü•Á~¶Rºú㽆ï'}ÊØÏò˜~ñžtÉäΨY¦âOÀ?órÁà÷NfÀz²¦ÔÑi¢¢doÆ5ähN•–š•×&ÀëY†¸¦F3Fµ²Ÿò}8é½c s}„ΛיÁö¾QKàkظœwи¦uG/bȧ"Ôµ0?*æaY-‚­9Åd‹ V!¸ØØ)ŒÉ :µ˜yoñw¥ÂÍÕ¤T‡¼2{¢ÿ:÷ý»ÓAPµ•üãJ7*@UâÊž|¡Ê¾–z6‘ññ'ö¦8ˆÊÍs¬yÝ(€‚¼W 4Õšç}öݽªÇ XPóZ{‡ðöMjo øJãi'tãq/{Ø$¢@õœ¨‘þ”Q65 ~ŸLkrž+àɱzHx²çĵhÀ'h?Ÿbmyfá©7þxá¥=vÏ, vŸ/îÕÍCÆ0~ ZsöÍÀcÄ Å{轫B¡ KpöPÊiÿ34ŠîØtX[æK Œ)€VÂPÀ<[£Nq¥²ûC~Ôz "%WðíáPÙ^ô'ZËò›ƒmÍ}@-0p”úÑÌE²µ}ßҧx¨×Ô]’7·ê¦ýD´ÛØaˆÌ²^`3æ5}Y¢åàC/´ê÷ŠAªE™ziJG©eb{"ÃàÐÐs[k[ùˆºTà.óúµ –ÀAæhtU<ü¿Õýé8'²L' kVK¥Ç3n«³ZÚì"#/méÝÙëxX‰”î ó~ÛÖ¨kÝòr[19޽WÖt3åTlÀÐÅн·°Aæ} <¼g>ŽÐÚNÖÙ¢2Ug“Y=´DÞÛãZËa‡œ_ø.;¼KޤÕ¬˜jÞ“ÐW‚1ެèˆ9qžSÂEL¦  ÞVa•9€Œ5Œ‡Ø8Ø ÍcaYˆ ŒÖ¡ Þ yÏ/¨8ÌÇõ>À; c^Z„òÞ0¿ÄnÚBG„QpB5N|Læ®Wr8ô–ªúPü.©WÂNN—T÷‘ ¬åUf&>Â{ßšZ|WÜ÷ØVáWîÆæZÙU°Ú›gF•÷Šáçê¢T©ûÈ5¥ì×0¤IùäîI §Y¹V/n¦µÉTë"•M¥ o˜:@9ÎSÀ‚B@ €<ôwé>Ei¥:’òÞ\ºù´:÷ jYk>Šö<:=Dî˜#æ:ÔíPëõV¢ÇºÉÛL£ÜocÞ-~&Ð=äa<ÊQF³kŠê2höÃð¾M•œc‡p;Ήõ\)Þ7k~ÅfC°2Â:÷Šïï鹯ºÕœhiŠ•¯&;Óxð—=ð¨”ÚÖP+ÅaÃ#ºÆAçÊXjFB7ûq`uŒÄ;ñÑ,høIÉ!°ÒJCä!¹¶ „®ƒì pÖMŒ7†~ZWRÿªƒª/²Nfêã>c)óÖ¾Ìcêù5 E¨yÞv]ô2K D8±ð¯ÿn·EØ+ àó‘¹wY>™ø÷ƒ)µsk‰~Ò»¥ågº-Æ÷S± $…¾p äú^4¥–Úµ‹ÈLÏÈÁÔ—†‡îéÔŠBùYª‘BwgÌÂHm {=ýGN‰€Ô¾ÞÏ$àËF"4¸†eÇZ Ùµ0ira¸ÅËCZÅ£ö&>&Y͵NcóTÆ­‚ŸwvnïV-T“à^üÓ“tl VÂ/Ò¯¡¼w—µ;,Ò®žÕH½²Ç€hO¯rðÑIË:fÜ¡ã‡J>æ)Šiíðxºk{>…T<}V¸M¼-Œ¦•šK,åÁúfpQ鹂 µ¶­5R›£~„BœÔ}ƒçŽâvR=:!ã¶…·u¥mûîP$ÒèKKyox9?i'=orkó5ø¼Öy^N¾¼¿šâuYÌû8ŸÆ)ÔÞ¥:BÈnŠnÍűûiØã>þ;8¥e>,OޤY‘ƒ^ÖbBR¿Í9>’NßÜÓ@Wºù”6GAüÿ«uC#ŒÕFz)Ã}Qpˆ† g¶„ _û±®D}D{3ø!/úŒj|rdÅ=ö©HVøü/ t™„QõÄtð%Y°ÁïóW dò¨÷Ýó±-Ö`ž\µ®Õ»ñ~g=f}+P–ö–upz4äÖÒì™[2v%ÖhûÂÈÌØšÖrVRûŽÇ~á`½%ðΞ U ´¡q1ÊŽc|6^ã7ÔCA\äËÂ:›áÃÁƒ‘S[»se)1`ª‘bŸk*eë°â=þ†ÞCS ¡¼žg]ÐeQ’ ©/I1 €V~1/?5d-Å"{»Í¹H»µM…Pš9žBT„îB£í`ibÚ©€•7u[oµ}µ[}%)†Õ9 2wpÚmš¢0øNLßhS'‡<‡ö)CÿWßñáTøùkI¶´ÌC8?»QF¨@9ÏTÔ 5Ïû3;(æ{2ÁT¢SkmyšÁÅPúÂ)5§–bðkx³FͦDkˆµ¶Ý¥h†j¡Ð#¡)ÒÀ“æ9(>kËø¦Døø‹ ©Åò]Í9šdQ ž·ðªò “y´RÓÓ *E­®ñúLgEÞ™#ƒþ–Ø»ítC€ëÿË'Ñû21ÈÁ)]j–>ÕqÂ#Ž}›u‰ç‡¢ìî!’UÁ+Å`Ô•1„ò}!.£û«Aì³È½ÒÒí{ƒF¾8Mr¯e¬„œ<$Îÿ/’g¾Wt;þa˜ÕZ <°Ll@¿,¬³ÑˆZÈZË™'°&ZªòºÖ4¼¡£à%X¾f2µð¿ßQ¾  uƒ¾$„òÑ©ïvJÙšcD×ó¼åï*“V ý±¸¯5ŒYõ`î.ºŒ.4Ú‡6òºëŒ0ØÂ-G¦ü`À*{.å·,pL@R®¦c§´]^ß{š ÂÙ›„ÛQ¼ €NIËèBŒÂ•™.tyA-ÁñÁˆHÜÁE ižcÌ `cGÏpžï<¨Kö¦•4¹=ïJ{_£"lÕÛe®²/“Ö0}o|DWŠ\Óc½ü\$_¶*NNªÁÔgÒ‰Gz[m1ZŸ‹ÂÒ÷\Tá¤ý¢è¨‹B»œ‚‰~=¶½ ÿÎÞ†HÓ¡ôÌ#º#j*ÚÂð&|œ ¯í Þ+µGŒãnoÌ ‘=S:RÕúŠ›P]&¥8²Î[€wÈÊðë§ÃðÞ•‚óÙ„âvàwkiux‘$Ÿö¶å@|›"ZqQ<½³Y¿>®=!¢º÷xõ/gF$es1»~‡røcˆ†aúïhÖ°,lP× ¡¦¦èãQXÒ[Yo(H÷sj $½9vM­©gÒL7ʪ’ü9¥õBcŽ.Q@4âí/¤OŸpZ:ÅÃlnÊÓšoˆHIl |Jarñ`cʳ ÄW=«ú1{&Œ U¢B4:0è¸ ×JAª…© È#&ëJ(á‰ØÝ|wüíÐHwØ‘R¢ra+Ïröp).ÖÁ¡™z•º^½¯8^ÉÔõªìîJ‰aI ýª5 gÜJÇÇýZ£Ö/é§-rÓôC4À0©5’ó}‡ ÞZðµÀ¨Jâd´Ùt9JÇ@‡¶ª@KBŒÝ*LM­ѪѤ蘑Fõ†1êyÝš0äB<ó7ŸIZ——yD)Gm [ƒBôæ9³¾\pAž'ñâÜ 8¦„V|Æhh슓AK3 BÝ»vÓYãÂ¯Š”w,u1}ä¾ôƒ¤”¶GEjΖ’–9æp"Ô1Ùv;µræ²m@Nz®ªð(·P„§ž‡ÂÉ&õÓXÒºéte?²¡£å¦z«Ñú)üì«á=ǨtQÓ¹Š|l"I¯AûÃ0ÙXöѱ75§1÷Ö‚<Å ôï<ØÀÎþ#S¢â¦¹S&kʼµ¯x>Ë×D‘z½¦zÐía>,ƒ#;•è#t·TºÌðPÈ‚#²£r¢\>_8䢞MÄÎ<Ôɾy°‡3'š¨GµÍ|YA>œÃ)1¶×îÍø€%3F4'Cn£oäìžZHï½Ô "BšõmŸ\X CϤÿhÊæó—S ŸžZ¸UåÆã‰çÍ…%Ð(Ö¼©" S-ãJø¾½¸Z@jJVÚA0Ï<6`ˆ$^VÅ·Œž1ž]ógÉ ‚C Í÷V {ë®ÂzE @ZÍßT|ç$Ê–W ¥¤y$¢_4ƒFhÞs6ˆÆþ?Þ¶¥ð:oᩘ¶¤^YÄ/Å,{‡^·•…ZoJrmÎSbžcË<¼ÂjIn9BådNžšVGy27§sL>ÖhÉi«˜…¯%¦ý™$(¥©MpÈ’.3èAalÔœLBÃ/0䨶rÀy¢½ï eÊ;¨£aøÖfh»FVÐ’û‡l@·Âô£ëåQ“ZÏ”÷1{íµŽy¼ƒ=ç©›Gê £°¦’MíZä*`ŒMÍýŸµ>cÏܵbÌ€Ø]ÂС­®¸ˆ×]4ª*CݯÐð4%ÀyÁs‡>I[ï>€¸;dÄ!|š—~QD¶ YÖÏ è8!€æÛ2â¤qo{RSJ“Ôõ­Ò] ˜olà†±TB D9ðI"ÒµY„¨äP9¹æýèpµB€èA¥y£”‰‡¿!΋º{‰7­šÞ«Q„5aSZwòS“úrâ@Ó°ÓZÖ­ž)4TÛáﮫçù9ÔD סšÎiÏu†„;¦èQÎ"zø–ñáh‡,G*ŽØ 3·šxÀ ô'ÝÖhÕKÉ|^|¥ ¼ͬp/'ãêSS¢á#F¿&(ÞK£ž!Mp xgpo/¿ür.90rdF̆ ë^õ,™¡: Î6¸¶¾}Ê)i}ˆõn ;–fE͈Ÿ¨”u±¹ eÖ›žþ€F¬ Jq'¯—4 Ê2ˆÀw—"p !ƒ"ç(¾Ñ¡᎞"^©0²g ñâž$UÜžÁß«íà³AkÜÂÖ‚^ X* Bq¯˜ç—J!tó(^=s{®AÆÃtî…‰Cxµ°@QkÓÚ2Þ„asZ>•œB4ëìZCŽy`èCS^<©C“=©¤^yNL…>²`vJf«(ioX·EQø‰áͳÓ.hpS1rx±3V *žˆÖ<8ë7Èkü˜R²v{Ä\,æyµhõ9EP'/ó¡1‚–'‡ñ|zF!O%ƒ è G{µ°˜qIˆ[·Ž™kí^êKKœR>tvŽk®Yè{k¥ ˆÏáÎÈÒÑ ú÷¬yN``j¥Ej•_ä”3ª=‡5Cgîi=¼¯Ôó†õìˆÖ{ôux|õ^2AIî˜}[cs(ö5OV¾"Sö±émÔ áëÐÊ›õŽ-Oµw㙬qX°nÂÞœcíºÑÙêþy.yàhÓûÔ¹ÈZlû÷´FsÐ$Úo½ y'‚)’ÙëµÅ¼_Þ¥¨å}·ëœ„oü Ÿ ršñaнg6/}©“GJ-…ÆV‹S m”§wi£èɶj bÊ£C×Sh’Åq/<]nd|óDtïˆí‰úо¡Å5çI†Öá-oy‹ú&û-eÒ{trÁ>Z7ô˜z>ïŽF­Ãc:˜êeÿyEEŒ=§ïñh’ø¿»o–ƒ¹½Ód’é±#:É1Q¿ïžµ>à•¯|¥Ö£µ­|w¨k>Sl–lRènI…Û³%FùÁˆ²@‡{Æ0¹Îe/±OACM âÝ: âzzŸâ ôVçtMèº:Pð?zo0w†½ç46Œ€S{ÎÆjz¼ëí÷°×äšß«—AEÞ9©Û}Ô¤¢ƒ|½J^Z'@Û»{~óá7úÝ¡kr–B×Óïš”´2=VSÇÂÜÇ:HmFÿhJ-¹^ë°]Üco D;\º$;ké ÷÷Nt#š¥:lÐé ²ÛûÛÇno»÷® ~ÅÖ²_ð%}ↅwÂcîˉ,²‘÷Îsè:Ê©Ýeeiž¥b]Ø–Œwÿ¦‘-""^·?´b=ê5æç<¡¿]×ñljò±-‰½T~z¤ÆükçÎZUEaŸï…(¤D°°ˆ‚b!¬ä‚"¢¢‚ ¤RÁ&þˆ …¢ b!6vb£"DA,DAÁ$>ߨËÅp8w˜™{ÃqÁ®n²÷œÙï=3Yë…!‹nI@’ÊW"6A(E@’›jY9â±'¥€!‹Di¢Ð 0b Šrp ¥@Áb$ýŽrð"hTƾË41)ŸB9ÅçtºMÔâŒsWSš÷Œ‚A T²¾œ;ãÜVï ÄrD–ó9Û:z)ıîe1hô:ÿ8ÝÍj¬»WÐéÐ<έѼæd>³BÁtz^{7ÆD‘³ï®õÄp©-ßrëÁ>Ѳ\Öh¾ Šƒ kñZiôE³!®'×/X·ðÌÙ«ë ŠaË¥ywV.2ü÷!‡–}-ìm«ÕŠìºzÓc,® ŠJÒÞivc>“aº#Ô9û Ñ¸þ¥À·uT±¶ëÚ€á õS[‡uÀPÃþXŒåœíß9Á¬rM°Z«×U4DŽIø]öûz¼é’åS÷ٴݨ¥ÕpcÌ»ûaØÎ ```;° ì@PQÁ.TìöaÖØÝÝŽcMo¬u~°>Ølöw¾sÎwï†Ë½Ü{îεÖ^ñ_kÛÃ8§KÑ2¤)dH!a„…ΪïæEçÔãÝ`­u…mj²žf9æcò®Zrä k*oÊ‚‡›e…çslš'«^$Ô‹ç¸îÕxá*2ásÖ?˺.ùЧV$A”Ht©„×þ'QîG™FÀ †9Çä Í¡„ËïƒÂ~£BÕ+Ö±µ²¤Ó¿Ü‰ÄÅ/Þ‹¼w2<  `¹(¹»XVˆ…ÍÓÂC”ÂhJU¯´?ü9ªk½ŸV×JÞø$Œ««‚< ö¹DëáÝêêž ѽ4t‰vyÃZ6üÕÄS¼0¼<í¢^¼I%o¿¯º5€GÊ1âáAuð€&ljÓžá!zðC?Ö8øÏ¡ÍÚ*[Š(/m™ä«Ôx:y’ÑÓ4²ƒ\*V0sî-Zk„ñžñ¶Š„Ƙõ²³¹Þ?ïe‘¬ÓjAyu@^æ¬åÑ´ú—Óõp}9»–­iïye­“7‘l6fqï}uÓÀ x(³†·¼M”F¨ ^ØÖë‘,ÝÃmúïÄ#“Oõ€¶Ä™÷WVr]dZ„ǾõLßî)÷ù“ê Føu Z @ª²®"~×QNÅÜñ¯Ï–ä‹{ÂwŸ! jû }’®Bnç}#ÕCï1ðþž”!y± t.ÊWâ7skzòcúADHg®Îo‰y+ Ú¥†^»áy…ZìhU®ë‰ƒS º¢y ofô…Nõ‡ÇAúEV›òŒ|–žU 9w¾Î9*Böóµhœv[ÐE$ÄÕÓÿ¹$„$)Úšž°R/Xh  “ƒårkXNr2Ÿ^j¯KÐeP—ÙƒR‘cºxä`Æ£D?wXQa=0+XAy)®MƇÄÊ»‚þ,(®E¢6K²,’0gà¤W)á,ÍÖ:š~$¡4Ç1a|ÀòŒ7NB,˜á1ÎLÙ8  4é¹2&;¥ªW£éžmòêúóI”(MštQôS©Ã|1BРѵo`M9^´@ÇÎ Žb^Ý®ÁÙº[tÌÑB§-X#úæ¨@Ûƒ1Žùƒ³P, þNùéßÚŒ.P÷¾ØT—j=øy’ó5E~ ú'›Á/•+ü(÷‰!ßG3_Ê2Ø8GI~XÐwYÁ ­¤‘߆²¼ å²ô?dpÛFÂn74w™;CþFßçF5ŠQL,wƒ3¤Ëîÿ:ñ XN=ï´ß?˜yûSº—&ÅσÕôÿ­%ù9«è¤œq¯:9*'ŠQà=¦AÛ7Š2Zä4å(‘‹³  Z'{L®)Å—ASjÖG±N‹ Œ9’^C†ô%wäAR¦ÉëÊYÕYf^Þµ‚Ljy®›u¤-¡§ÉÑç§¡|ŸéþWqÓ~«xɣ䀮5¸äÀáWÖ.›û´´9Ýsýu#»å³? ÎœÉÅy1jÈ„(_rZÒWÉÐâ7—áTɳ`‚%A-·ôýCRÚ$Â`¸ôåU_,+D‘/ŠbaÃâmŒ.PÂag),ðwÛx]¨jÇS¢TÈ¥õ»Ü_~µ2¬Ýx…šÁ#y‰òoÓc­¼ú„ß5eÐ8ÌÚqà¬Óý¬ÆmtIòÌ&Ñ#ã8PÄQÄ^gç…ŸdÿŃgó9ðÜ{〠땢`lDã,rEÕŽ‹èLjÂC€ :ÏôògÌ Ô’b¹‚ÞúyŽ,°uãÁÞÛ{^º4ÕÏX’QÍÆÊ8Î^i—E¯kqöCŒ]˜ÞÜ`*†<ªŠÖàΰ 3ˆZòxšƒyRŒÈʪ’˜‹Ö9‘‰Ö„&‹Ë Ø$àüì¾RÙFˆ$De<‰6Ý[%y?ÎG¢rΤ¤2Q…;Kt×Õë¾YEÕ=Õô€©ïîNJºæ­¤DØ7yCsðû†ª¤P2­2tÑ|'£–ÒDö£o2w+ù€VÜÃRñ#E‹#ûäâ”ò[аižÏaNúî™Þr qÀU2(ƒÏ±mƒh„HУ#ê?WBã KgË©I7 ó:é ʃ[S<©äô"ÛZí›ó#SÃÉŠoéIœœäLñ.™£#ÿÉió´ç©bж|†€ÑQzîÖ„o9ž)º¹RLÈ‘¡P»÷ìº3ŸJV»Éky!ò4ôgƪ|Ë’“qL ‹‡n241~ XD³cŽÎA„Ý8¥DvúÈ„èwl䌎ˆõYR^%oÉ5ºH˜»4î¹J70ÙéÌÑ\Lwª{Îà3g‰¿ü<3ã¸ïÐ9ŠÏíYôí®aê;ß+cÑe­›lÅÊe¼yá·Š.Ð :¬>ƒ¦Égsª Ÿ×WÚ™áKçõSœ×D]6Õ’_ÃY"p¦˜ v+*T¥0¹fñ.ˆP +†±Y6#)ƒ[î?!¾ñÉ«­Ó–ÆqbãÓacT‰•NQ†ôó” …hÚîKùó0>î‹Üß"YüHgimI•†”÷HÌ™ÒéËzò¾'FáæÀ{* •@ó쇋*M'¬xᬵԟ¹Ñî/D%˜Ó»‰FƒE¥ã„`$¼Òúåe!Ç~x:ô N™*ñü_öÎ,6ΫŠãÌd¼'nâØqÚìÁnã‚8˜†M€P%¢ˆ*<€Äú„„"õx@€H€XbiÙ eBéFÛm–&m’&xI2õžLf:{&þàX¿‡¿æúæzò}S•(‘>5šÜóݳþϹçÞëYñë6š<Îi[ºìh@À–ÜMþ$ˆæ|ÜË6VÌSìý&2+„޹»Å˜ámó™º;jnO$ íÐ slï§qdÝ˸!!:Îi)V…¥šfŠiU"–k⋞U>IEða*þ§nŠãs?…íÃ\)¸Ç(mð. øjà–ÈX‹ŽÝa“TYÕPO@PYZFr¿-ÈÆ>Õ½ílr¿Gß× zß¾}Öž U_£c«@ÊÏ¡5/N&°|˜K7ÙÔøFeuiˆ#àc&æ|TçŠè]‹œ:’$Ÿ"‘c;`&NGÛp2L¦›ÊgFãL ,Ï×p²(×? 8ë¥b$cÖ.p„}–廨¨Œ€:¡“R:q7…Ùñgz¤¤m>²ý+å¥VY.¶í æˆÉ*LJÏÊÜã$Uapq0ûÕÆ~¹á9\’à”PƒšhQ @²zœ¿Û˜KÒtòÐ9‰­´âøù—xYðl˜L>@C·Ns©ˆ¸$$…í´`GIØŽÊéy±k£w‘¶ˆÞŸHZ/—}rEìd»Ü+’4ß´ öÅ‘“ØO;ŸÐÏ7håät †ãLjõ‰'¡“à‰×•zvÐyNÅêJƒh?|ªžryɬîe¾ 鵞€7ŒèÆ›±áñ±¡1ç)Úþ •SÙÓ=1+þÍ|N&AlpYæó1¶™9„é„õëJ|Ü?VБòkš÷gûî B¿ pö³*Ò¢Õ”PÀ…¡À®N†à2‚BüG3Èç›iº‰q}Ê©"ñ,Ô²€µ'SgŒ˜Â#£Þ†8FÄòwÔx‰Á„÷ºH;…ÂâÝç<›)ó~ n‡÷FtøO°šFaî®õ¶ ýžÖ7j¯õŸŒyY¿ŠFžÍQÖ –íT&ßé‡à¢èÁç2 Æˆœâ†÷×’x·ª#é=Ÿš(N£O‹èÓ‘ARyÂÞŸv³|¼Àçty7´ :ó‰ªõÞL ·'°™ ðç.VY˜“¬]~~•I6Î"ÃG©”ôÐJئèäñ%O3§óT9ï¤âÕå$<ñW²Øê*ôàçÜú$t›ëP7$5‘ÑAûߟÁ§Z…¥OZH>ಀœÎ¡Û"¯q昆öNtz›76¹Ç÷þ›}rÇønšä¦ ]ëU¿Ÿß*Ìå?F[ÚdWñÝÛ9ࣙ5ô:òø–Ãvá»—É…ñÓ±£«"u~m&‰Ï$Ê·È×¾sª¦ß¸ z [[Cm‡WÒ¾òØ-qˆDàytàº=#ÝûÑõ½ø=YÑöÚä)ìñ¯Œ_=×"Øå´ßIÛ'þû±Ũ "ø·„ÔÙ¥Dq/R•$à?…áµ!ƒ²ÎÛZÈìrÛ oý•¶ú¡íd2îY6ƒù÷ch[ŽyÚžÛDg›Bm³ªÑÑÓDÖ6×ýèM¡F‡]ÂÁÌ <·ð•Àšñ-3ª¾¡Ç§q^' ñÆÜ¦UšÁ¢$ç‘Ý ¼¸íóðc/´{«SöPd÷æøÍ,:x”q·J²Šù5keWhi`1~åyÏèÜat¼ÈœFPoÀ™6)žÆ’Ðy:GðÈÞæ ŸXõ>¥‚v=/^Å\zõ2Ï*Ží0toÅmLh.9äqþ{>Œ¯>ÂÜöÐÚÔá¯æ¡oèr( ÃYäþòG~WDOGYŸÄA·£ÛÕ °Œo?E Ìd/ï^FF¿bNo"!íŒÓ ¡~•þ€èvžÑÁAèöKá«YãŠÌð7øÌ¼ðí´ñ {šBdž6èÝZOÜ$d\9ˆ&³Ï Ãl'n«òoÛ9ÿÆœ¬õ}"teHŠ=wP„Ù|两ÐÏÓ¾%Á·Áë<…§jP¬0åû€a÷7ìGÅ?œ”Æ_ h_ãõÕÈ[xV”ïÎa¿Çùœæ7‹š$2^´E‹aä*Ý%d6ƒ]íaü]`ƒ6™“Ë_|ãÅ^Ž.ÅVæý,s= üx—ÄlOT•ØN1öax•&ìÑÍã[µJ;òqdäýƽçðkO1ß\ÈfSžïš $Û18'“òôèM"ì ²Lž $ ³8˜,cT4AB7 {Q²v °bøEŒ~B*ÂÐxqÙU€ t¶@§Çæ-U1¥Ó‚‚ìP@—ÉdìZ[“Ž‚÷FØQ©Õ'¶,¢ôßb¹qÃÓåÍL›ÁílHïc.iÝØ‚Þ RÕê`Égq$Áý@2î ím?À¨J¾÷DG>@?v_ t®`À䢛gclLL¡KëHzøÜϨ:ô5ÈL¡k£ð1õèÉÍÕ6#™tΪC–'ü×{åÄ6 8º¢rù0ö9ûNÆ×q;)Jl„Ž~ß%@JxVeŸ€Má×%ì>:]¼·ûf¥]‡Žæ3 ßòZ%D&ÝÐéŒÓï«ídðo¦[yZc¯‚¸EŸ1dÕ‰¬»b¬‚DUíãr8E&ÐÛ)ºÖ©ím v%Ù½ˆŒf¤z:Ë÷E‘“Ï·õ o#¨oËʇ ÊÄ¥j[ÉÖ7aóúÎ1«÷£èꜶ>7cC=ðm3|#yS¾áoà|š¶ÞÍ@ó²´üµÂ§[ñáÛ$ YnƒüÆË ðôÆlôn÷ÞËv\Ð{ÿ ˜ú/åƒdí R‚OÝÄŠ´‰ð"­c$ P™ $áï7Eæ8ŠÜšáU/~u“újá•®¸ç‘ù Ï$z=‡ý¸q;B[ÜýÐk\æ–û£øƒl¨¼Rl þ»¹m„®Ä9'¦˜Ó”ă,ß1ǯu0~¯ÄØÕŠ‹Ä‡æˆ£³©d w€xVQÜÄÿWWÜÕ1晃¿QÁægxT‘Ã=Žü?¥p8Ú»æ>8l„±ÆéŸ•Þ{©ª•¤{±g#tÜ¥kü60¯–Ó¡ìø9;µ ¦£í¾»{DÁ-ÆòeªûÅktLiI$»ŸªÄ%1ø’ò£{ÝÿžO³O6j{g‡Ù0øP(†¿¯'Ñy·ð3D§ÀÊÕ÷¡SH @¥Dþmöˆž©«Þ.H•Cõ-’1éÅN¦ º!ãVڭȯͳ¢â ¡d—ydÔÁ·h59ËÔRÁZEiÙŒj Óʃl¼t. r€NCÂ{€*áß„|ôÒGWëžD¿ˆ£¬À©Ï Ë_ È´MNÛÙ%¹æ=¯ 41Ÿ 6=àl¢ãÆlÕ3-HhÌÖy¥]»¬¿¨ÜþÛÞ½³FFqß‹º‚×K ¢’¨ ¨‚¥k#ˆ(jag!ˆøìô+X‚b!؉·ÊÆ¢^ðRlÜXG£]×å)ÉL2¸C†çÓLó2Ãl2‡wþçd¿±óK5c¤ûŸÖ©R™žï'©ì«´ÿö¡îtÉ„AQÍfszûÚ)r a~Ï{-ÉJ"p†Ý‰CìNlϰ•÷ÜÀu‚ÑcœO»ÏÃì¶œf¤‘²ÎÚ5BimÎä9KyÞæÛ鍊¸¦Ò²…¬£BžµÁ=@7%¸où§Ùó%Pþw úou-%&PлAñÿ³‹—¿­cù4éTTÔÓÏxô2 3îuÄêúéMéLd(<.’ÍøY)ÆB®õHjpM|{:NŽâ.™ŒTéÈYŒR„$³°òù¤¬ó‚5î‘陪H’$©Äˆ†é}fÚ¾ÜBÿäË ÌúLå^”¹˜Ý! ?2Ъõ EH{–ES5¬³‡uvPÜÕÂwœ-ò*[³~©I’$Y€h1/Éçhã™{j|ÌPð"‰Î-•âÕÉf¬'5ĹðzK€‘ çœÔCØo$¡ ­gß±Î$딞$I’ˆjt'8Fna$Gô˜m˜äû“Ã[œGáê1C^![ „f[§ü$I’,@Ô ½áQÕŒ&Zö¦ˆÓËÙ=xÍP¹Ûô‰îT$I’$ …Y)›B>b'-!ëîm7«[´®}L†bŒó’$I’ˆsC–‡ÜÃgU€|ajd;  I’$Y€¨:‡ÁBÝd¶¡ü…‡$I’ô¥†à ´A~IEND®B`‚crossfire-1.70.0/test/templates/Makefile.am0000644000014500000120000000032211731300516015505 00000000000000dist_noinst_DATA = checkReport.css checkTextResult.xsl \ crossfire-logo-unit-failed.png crossfire-logo-unit.png \ crossfire-logo-unit-success.png error.png failure.png \ logresult.xsl success.png txtlog.png crossfire-1.70.0/test/templates/crossfire-logo-unit-success.png0000644000014500000120000041423511731300516021553 00000000000000‰PNG  IHDR Ñ4VÖIdIDATx^ì{ŒU¹ÆŸ÷]ëÛ+¶@ ÈÅi ÍPE MTI€”ô@¥jQP¡ˆ—rJ"Bµ¶ H-žRrÊᢞs(Q*à «Ü")”Ú*T[{ ˆÚËÌìo­užì½væëLo3éLß_òËó~kv&Ù™¿žYkí-Ø-0 Ã0 Ã0~òíñíªzsð(jžÉ™ÙÒµÎ;¨s(•-T(“ ƈPÄÀ áÎól¿åìFBBo6Ð{è© à ÂcPc†a†aÜwóÑž1³ÔéÈfÉ Þ7tÞõÖ9¨SˆJoEiwùˆ¡iÆÓ8pÝÓSæó9‡yÛKè‘0’±˜­ó8m£oà C0˜1 Ã0 ðò1„ñ5U½´¨yõyç£V0ÝVv>|ü^Á– KkèDº-°=‚A‚bc†a†a;¹|=ËG¥tT³Z>tûå#TÊçœMó|"×ïZþài5ôĘHÑ…ô1±#X†a†a†ˆœ¢*—zï‘w?¶yçÃyG=Äu— HSÎ A±µÛÁÌå#乺Ro¬›Rš `Æn|·ãYÚóÚpÆFþ–>Ž®£jd@c†a†a8çf;¯`áȶŽ\)Tº€¸±T”I‘‚"Ô"Ò@´õ À RHH‘ƈØsŠT}+Ÿ{•Îåç~}ïI×5ágë±;ðã>ÚAFç5Їà5?¦7Ò›è'驨>¿ _´²Kc†a†aüü>p–ˆ´ûµ HwùÐÍ@x!t Ôl‰ô^L©‰VÑZì$Ãrù(ÊF¾…Ed€éƒ|·ã.:‡^N7Að$œ™ËÆz$ T8ßËü,JÛf4‹„…üÈ.¡ïã€éÕ@ ºQ*Y¥©é·8¯‰hðçU@ÂNc†a†a<´øø/9§×µ ˆoèšå#½L7Ñ@ðÆ €ÔÝ! EY­Ý„.fw|à¬_9ˆY•t1]O£ÇÑÿ£OÐó±u.¦§ç×n‹Çè"z%}‚ɶ²cÆ ð4H¤)g‹D5ÛZ`2ºçkßün%p#v Ã0 Ã0 £VóP՗̤H±ùLúDÚÁÿ²S@ŒÊ¡.Ì’PÖK®G :¯Ò·Óçét&G§S&#è8l›sèEôôÓèÍLfåùì4V@VÒ}¸:gÓ!e.’Uê©£Ò{Gd:c™ œ²X†a†aÜ:gÌ^"2ÙŠ¢õ_ï™­›ezZsu×ü¢½×Ž8þÎïaâ u¹€x_cz…êþˆeBè@JèôóàLÄèêoA(3´ÊG¾¬1àIX›w9†ÒwgCWÒ5ô ôk x “Dª´ÊétZ$|•1‚í€l‡e@dü•žßü{æ$àŒØc$U‘VÖbSà üôpàN­žÂn‰a†aó/>ð(Uæ¼NpNOb"¥TS'cTª eRǹ±FpÖ†Js«›<³û#hÝu®ðkEð‡‘‡-Z‹Œ÷þ9õºÙ{·góýeýžEW}=BìDBêÛ©}é]î ÿ¾î×xŸª‚„.tÅ¿£^n@L%¶Žìp=E ì”›]´ì ˆ4—üQ¼ñµ„4öCç-{qÞíø K‘…c-Ý—~Œ¡¯ÒáTÑw:é¿Ap€gèèÊïšBßKGÐô h!+ ý  x¢…äR€ª6‰eÕ;$Y óÜó áu`X© i'_«yÔDT5àMæ¹§?%ªBuª:[ý¨ÖL.S¯IÃ\0@0 Ø=u„ªÈêäsÎéÞçÒÑСYB˜´U@ZúœÛúÞ &|NçêDek_À·Tœ.`VLé•aüGÂ`õ£gM§w{ï¤U²œsù=IºX@:ËH1ôéØUJMËŽ„Î ‘I»ré誖Ó5'O}òË$ÜÎ8¦rœê6>Ž„+|oÏÓã X‚ĘJ§gBð(Úò¥ö9t•þ–+ ™QÍòCºE*‚šs(TQ 1"Ñ@«å£ZFÈ2®Y,F?0Œ£0’H×DUÓÖ H¥„8©WOò9ô­àôŸ?.›2TDÎW§ãé$ Uš‹¤GQ@DoQ'+Ìßk¿o%ì†a|ý¼Óœârçd¤çà ·åŽåZÎÞÅ£úL·¶ã‘ÓC¶Êg¦ÐVª2”Bˆ CY®ÑöŸ×c°îɳ¯pÞÍòEå=ºî‚•YB6£³«1Äf±ØánHB eg‰ÎÔQï(›;õ@™•{1¦ûY>N®LÂÆ&º. |Æ!ym"šü’þ•Eß Ôåùzÿ 3æÓ«èl:ŽÏ¥c1ý2=Ubw@úÁGÚ€Iþ—îHJp1BÔUQR¡)Å¢Ù̸ÜzðÎX¬Fß1 ‘ÖÎ2½IT(DD_òšpn˜jéà¬y!âuòÌÃmW'cÕ¹é)¥Ñêôàæ9f…l¯|€ó¹¹M{mýç¿cZ²ÏÁ ÿ‚ÝãÖ¹cŽtNÛÔ霢pC»/èÒ¢˜Ë\sܤïÇ›ˆa\~î¾ûŠ`¢SùóLq®¹ËÁDuÄe[;…÷¨ùjE ~O—/ž;¸üsG{&­”jé¨d.±ùÑ 9Çÿ™KbˆO„2\wÈ»¾óKì¢8ﮢQÎÞ²|(å¬C¼‡÷CÐÑÑ…2¤”¶]>£kÓfÔ7—Ýå£+´>õªZ>–˜‚]•„eŒ+ øÎï0Œ®¥·Ñ i‘‹È4ê³}åGô·ùw‚uè‰àOH8À£ôÇt9m§/ÑËèÑë{ˆí€ô“6à„ÜN÷­ŪÑ=DàS‚‚0[FYÍ™fÖ$`±7-猌aÇ«vôªB*g/Kš¨§‰„ÖŽHŒQB|~}Y)"‘ëÈÎ1%%úÁŠ>ø{NÝ®÷õ½÷»]çþuιï×·(ape#4Ø2L>rdÃD¶mrm6ì&M›PAÂ!ÛJRAqŠ’ÍS$$úS7Ú¹ç Àd´H]„a´CíJ>€lVŸÐ€›q ú+ÅÐs°ùž}ä‰ÿ»ž˜|¹êRÃÌãYø|1Ü!##‘ŸmR]¦* ›»ÍÈöBò±s7H%epoD>òj>¶ÂW¾BD—#ú±µÖvìN"¦EÚ&šæô†O˜¶¢­öÝÀ\ TÓ£zÓÞe#°8XL"¦'ö¡_*éY­è9à@‘Þ14 j$ ß‚S^RLfJ( ±FIÙ V»†ž»žïDÝÀ‰º@DDþ˜Éd¦w<úñ j`2úœ¦ŽaNÚ“m˜,¡ªI3Ê«¨QjÅý7··D¸À*FúÃÃ%…ºÙ 6Ûš†â8vÍùò®¡s„d9ž£oáçS°9¿ÏkPkhÛÚË:³ág˜å¨8ù€/È!“0>7?Ë÷éÊj*D>ª”|DiW1òQwúé—.š×‰G\ÆïÝŸ*RÀ*bꃻ{Â~ è†k7v oGúfùŠ˜ŠqŸ ûHØK¿EÿŠô w_èïî®öóÀ_• ¼Ln$ u ¹Ñ Ž#Q8Ì”’€-šßvÜó‚tFµãé®*!úè{þ@‰H#‰HÈž¤D‰„„A—tN, £D! Xšb%°«a»/ÿÏí¥‹_ÿÓhö2ž1à ¢ môÚbÛöù‰‹v-vÔ´À ¡gÖûmFFŠ‘£òɆäîm#!¹Pò¨…Úv,òáªõµ—s¦~–]'2¹kŸ™“©È¨!M¡k,á3mÃcñkÀ½ã§m-£FÉá÷×¶íg Ÿd,élDF™ø¦-N>l€V Móâã0qý ô<^[ÚeêŸé ’iã»4cæ«%w`8¿F> 5ꈀÍé|Ü_Î>ˆÓ˜ Óµ–ð)ÆßÈs,â‘wj”oÛÁÚ¨À¸Oâuºw ÃŽhOÉ‚Ä^O Ùë \ãRŸ©Áï7€aŽ¿¬‰^à(é¨ADMEš›®J¿_ñß?þù¼´dÙç\Ê"­‰r/kèþã§Ê)&Û7\Ùž…_ºGäCÇŽ ¶‹Ï³%DÌ>«é¨Ú±›0&Œ­¶šŽvb¼ƒ@>æ7ÒñϾêý]=J÷8Å ZðݘVçoú?ÚiT㱨6¤VùØ¿‡é®ïÙç2­÷hˆFBújW§k?’uCB HŠ‚T¬³†QX€FB  Ì ɇjß\Ê“r=1kÆ{?¤Ô¬Æ¢rß1ìÚµ‹ ½¦M›ú$B±t+VbMîš5kªŸ~úi3jÔ()..&ˆ«÷'5r‘„MÞõ³Ö[6®†+˜²ÅÆxA£à:—«löÛà@VnC¨¤C Ú#²‘å,K<íJ‰‡ÇQì­U@ˆBÂ~¨ª:ÓX» 'T܈ñ–õ8ùérôä…gµb¦'ð ¶á”m19†É×Úª`ˆ9vÓý›ÖR˶Ï.O2Ó°°U ä½¢Ö÷­ $w^Vz Ÿo„¯3–ˤtÓ¦¶ ‰Gêìy:FDŒ’ŽÑšS²›¾f‘2žZ|èƒ ¨Ê”Û:v‘ á«1%J*”xøZm%cÚ® °m¶qÌ­ºN}¹ù¢æCEè#ÜË2œ°k"ä[ɦÎÏ.¤à]%"e}ñêvÚrË/›÷ ¦–hc}6ª)‡ÚujCGö9œì„U[ö&̱FGÐàzä¹q¢OÊ®µ:£È–ƒLÆñ´ËŒ^0›êX>œ7$ÁÌÃYx"жåéKZ Dâ~è?}Ê3ÿG*;6]Ýj"üÀHôÕD F²ˆ™Ä6~ä£j§O>ô¤«x͇’×}¿wŽÚ}…°è‰UÀ‘{ËÌ–ÓäÑ¥°gGg·;µ(|E{È4`»—€ßÓkuÔ÷S ÆëI\[µ/ž¿\ ¨‘€Ô )ú;Ð;$!¢$$Áì ÚRbè¼hˆ‘‘\Á:ÃÖ䨸úì¯ù‹³Qvìܹ“wïÞM¥¥¥A@8ØqafoûöíÞüùóyË–-4bį  €BÒàêÃÚ†]õÎ;ïx M‡žéÕ«WFÓ·²š2•…]üâ¬o÷þ›O>¯Ó m¾ƒtL³íÆ`  $K7V¼-"Ú&µKŠM òBëé%5(ùÚ07M`Qjnþ5œÑ‡À½À³Ç zqã~&1Âýít¨Î]ë]Û6KlÇüìʉëê$ïzëšq-™y1߼ã)npäŸaÞfÁ?RÚiêr:@òÛ1-SÌt¼šd‰”Ã]¢·ÙÃß\ÖB>l²XôÍ6ßL>4¢®ò&´­ƒý Gô|ÓÖ÷m¢,÷ÞЮ…O#0-€NJ¾ò£w"Q[ÔÃÆí·…Ëb¸œEF·ì4å)j rÍÈ’£ŒÐ%Fø$è£-ÃN¸‘·sEÚù¤CÉi~$,?:Vf'ì1Çz®œêQnÕ¼9O¡³ýþðçßýîЭuëÕ™ŠJ 黄<êâ+‚ð|Ò‘ R‚HG=Ðkäê"\ØØÐg€÷ý(´çÝ…:‹O†^µtá÷"¯ž]HL÷°È%áß©’œv{Y¯SŸí^#%kýeW@ý~ •‹äDäJ?KþX#òQ3í ¿g Ý0`ÌŠ:'Xÿz´ˆ\a,9ÆØVè;§ZHlsäÿ!Åê3<,¡½Ë›zôíFòèýÀB B?61m"®×ºŒÁ€AÛmõ@žVB]ܬ¤çYºôÑԫשñ ˆ’‹<¢)L”’0;¦×ÒHˆæ ñ?º€€Õ.‘ŠRµ6¯ú7À…½m1ÑA“ç܈(eê‹/¾¹sçzK–,¡qãÆqûöí9•JœƒBAË—/§SO=ÕëÛ·¯‡6Ñ¢sOD\ c&€ÊeË–ežx≖Q¯51¸Ÿ+++Ž9;gúe‡~¶òÍ9LÙnDž¿‘'fJ$˜,M½b!2Âdlj„iW&J#€sÏ‹„ ¸'$¢íqX$ãDd|âAÌßÎÕzYüW 'SÇ‘œcœŒ¸nPXéfÕ¹@fA¦2=óöåOΟ­gòQÄLsp_;G:”p¨¶}èæÚ‡,u«ÿèÛWo¦ï([>ÇPm˜i: ¢‚Uh=~3L±Ø€9Ö¶Û´·i? Þ·5¿1B],á3ÂycGZɇ¶ÖèfÛ ×"€v]‡€¯kœ®Æ¹”?Ö6ºeÝ÷²ÙÌZ¬›ß` ­mÓõ‘4íG™tM›B9I‚(ÐiVõQh‡~8ä¤J¤þX…ƒ¹ÔèG,ê#! ™}U³CØA D®8·ënáaèn[Kr®Z×DDJÚN¢dA’˜ˆŒ‘üµ¡ÄTIÙëh G¿²™õH@þj„϶„biWA_“)‡ÚvlEÇœÜý3u@+ê¹óp\ÿ».ÒUU±Í¹¦&!2à*É‘’ÜK²@ Ý èç°_!ÈRÌùÖ‰ù#êCÔ/Ñè·!¶¸¿ˆ F[ >5Ú#tÖ Híþhà OÒ²iõ˜kÑ·[QûÑ ýRË2y¨ùÐ{·Ãg\-ÐTÇû%œô ÃzÎX¸Ÿrä ÓKØXÑÛíøÆ2ïí¶׬õ°m|Ní¸CWblìˆ ‹á="z -!ùp£µâyäÿÙöˆi¿¥ý$w_ÝÆ0ÓËÆH¿`ÂZÕ:nŸp@'0þ¤“¢‚–…”,* I’¦lU5a0:‡Q}ÕÑŸ×Eø>¤áÍ>àäãÅg0a=¶Ñ]ý ×Ck 3Fè¨>GâĨjÝ¡mÛTNŸ|°ŠMÍ‹ÖH –ñ@Þîbá‰ú<¾½ŽëT~ÂLÏ¡¦š*–G>ú>‘JZ×B*ñ"âÏÆªŠÝT¹³Z ´óN„‚Î#€èð{ÎD‚H¹KÑõ¯}m™¨ “ÀKm ú¦‰yª³JFüߟ} ?pì™/׈R|ºô‚n¸mEýP Ä£9Ð@Ž|l±xÚ¯|@:&1½„qŸœÿ…‘†Œ¾y¼x%}ÜBo&?§•N­Kóyݬ_íkö-pÞ”W{;=¶4½ó6tUÓòf_Q …²õHã¤AãÞÿ° ˆ­i_޶ì Ô^©ä£É¾æÓŒ™oÕ4Sú0óJ»N}¾‘€ÄpX0±ó<¢>«±UûQXDD‰H.%‹óŸ;úÇÕ‡dTç¾a¶¯JìÉÐËý‰¦4F?Tî¸ãéÝ»7wêÔ‰:tè@ˆ~x"§ÓiïÝwßå>úˆ.¾øbFº–TTT˜d2)……… ±@<ĆˆHvýúõ•ýúõ³ äNœ8‘þÃÃÖÆ5S;›3½lúp¢D2 ¤Èr£q«(•´|gàº2âúd1Iè}‚ÛèŽ!“Là;LuñµQm%R$–Ml;ÄltØuæqƒšL5Š á8wí¤te%e¨­v”ç û´xÉ¢éT‡rÞ™E— Ó=¶Å‰äCíöÛ`Ó´9¬i€Õ¹7ÝKmÇ>kèå‹?¥}”Í«Çv ¦9ÌÜC„€óȇŽó£Î9Ø`ì€C>µÛ¿Î®·Zˆë/(ù¹ßh k6¶Ä tío·µ Ðè†m©ÓÉ«ù°ÉI8”зà¢éš†U+ùÑë(ò‘OX£|xz 6-·cîîzìÌz‰˜MWÚ^„Gƒˆe¹µ €­Ä#ˆö$1æÂ¶,¥T‹D ãŒ"ˆƒ—®&!—DHI–çæ!GF³÷rŒù¬ZCûYÆk6T„°ø8ü€âÄv^Ê•o·ïz(Ò?êF"’÷„øzk9m[ù9¹†É8’ÿe}N¸éóí*cÌo‘òò»::¡‹¡f™ zƒþÇ×1Ó §ö‡·«#òPÿ¬Äõ‰HÏÑJªøríÚ¼ªA>ªcÝù$°=hápÜ€‰´±Du`‹Qà:´Ù’ù@ ¼ðÀ=lD£ ú Ãm­ŽüJ^¤xí’óÛã3sЯÞî¾% øÌOŒ^øB=¨2Œ»_D>Ä×7ux‹Ž¯lC½ªKɈPYÑjÚbvÓbg3}ìÔ8í7¬ÐhÂ;@)íEì,ïúû3}ßšÜceÿ±K:P¢’ÉU" ²È4P’wRèÜzZžÏB Ò~¯Fè >µ²­é't2FNw;…¹º3vÄ8[Ž•P;÷¢IŒdX$#’{Î?ûE¬™Ï›µ}`î€(:]ä=âY'! ÈDÄ#"° R­$$XHDšª¥d$FD(Ò`•NØD´}Bò:5JƒÀÿ³w`r×Úþªº{ÒÆ •´Êå’È9猉Æ`0&̵1öµ6608aŒcr09g(眵9ÌNêîªÿ¨ªÃÌhƒÓÏát÷ôŒ¶§{ºë­“.¾øböàƒÊ#F°k®¹ ™NF"—/_ò^ ªª äéA#à`”Â)„G£QƒòC¬§Ÿ~ÚèÙ³'®¿þzPâ¹êçñî»ïÚ´ÌŸ{îÅÌêÏï6¸µ"‘áúZ’8Q5€¡m ÁÐq#г_O5x×¹ ®ëÀ¶]1 :\J0 6™`R€AjòÊærpÃüÄùÝCm¾$… ;—A6ÙtG#Ù lÛ‡`€©Uк+„\LzÉIWÏš¾ûðQz-§VÓ`‰ÈV<c&À”£&ÑŒÀ,øt®†=Л–ºá~‰Z§}Ñ«· K¿üC0v)ã¬/ç ]Á‡2 £ ëËÂ(7„¾D¯]3þÈÚ±‡äk_¨Ì9Î3n68‹i+.Mjt zö¿0œ&¢×ÕŒ$G¼¬±ÒHÇQÊ!Á=]‘HY^ ÅÕ€üõÂÔû D~K… ö˜—è—wfp\@àñEõ¾–•çõ(½ ó;J+Ëѽw”ö¬U¡Xºô˜ÿˆL¸`Òã2„.ÏÈüc\KúW:÷öùà^ͺìôrƒGrÎ~lrŒ&؈“z= *]iëÙ¿'ÆLƒòª2pƒwyp™D&Bzc;r™”:æ @FèóJ~ó 7ØÆùMŒá­êþ÷Ú»‘Ç4‚ó >ÌP €ý¯Àçß8äî$™TürY©hZ»ÉÎ"ø-cÜ;~#PÃȳùÀ¡½X$„:H`F# 8²Ž(Èõƒ”ݧœþvCžçã(ÚþS!äD±eØUÕ®òBÊ„üØ⬓¾2k-öÌ|í”ZÆØƒçÇ…×Çÿ ü$ü=’Ƥ‰,wƒÊ³BæY[@Èû^©O¼{ é?H_ž\þ_ÒïFû&ã˜R_ã^¸¨¯QÚÉ`äd†ìº]$¥ ‹?ж¯óµy©½ GyÛÔ¢Çÿq¤·úÂP™²°O} nygŸµ}<ü²â…þ¢úy á# ­ÕÞÞðGÀÜIÀ¹š óiÐ{`Ñÿ?zBn“À·ˆÖˆ·›‘üœ°Z)à ꤄Ԡ¨›§,Ⱥ]´¿:!éÒ·$ð,²Ÿ«ñÏ’ÿfš&»ñÆ1hÐ sÚ´i›¡Â¹ãŽ;ÜO?ý”Ñ6”••)¨¤°+Ð~ |<ù䓌¶s ¿ÂªU«L Ñâ*±Ù³g'6mÚÄkjj²cÆŒa”ÐÎ7žÂjkkgo¼óbgýŒ_ý¯ÁíkM3ÊÂT ¬‘ ¼jÀðA2n$lÛ†."zöQ-;j–HÀÔ‰•Á 4Œ, ,ÂYeØ?'ž@"lç2i$7¡cÃZäT=x" ¯Qð.ÔÌøµBˆ§iý;g\77‰”óO,e ¸‚sv'ÁG¬køFï7‡œx èÜ+(˜õágX¹`±^âWïɯp47‹1õ´WÐ…Ô/¾bcì—à8žqÎÂf~ؼA‚©¬“Mñ3¤ž'Ä’0éôA7kuò©o&±rÝù•QÆØ0Îð¤Á1”€ÚëáÈváC‡ùiøPÞ·X4‚8AG¢¦Q‚S=Œ¢àÜнa\.“€$ ¡–Ç–ð¡áÅð.oY!¨ är‚ów&ðZÛn̘Ç8c£8W¥Z䇞°Àz~bZ‰Òzèƒêº ¼$˜Ü‘ƒNÊ™ðr_|øÁñ Rïü¯¤ãû-϶ÿã)ìaùâiå½Ãåc?0 „°Ày>€p”×T ¼² £ö…ž}{@îÀ=CBÂÉf‘nKÂÍdÔ¹7Âòàþì{asSÎBÛï-¯»k§Ÿÿ{E7 ÀŸ8ÇEfQgó:‚¦O8PÁã¿:äî'µ Ò\:\2…õKW#Ý™B6“SªáƒaW©e Dy?ØÄó×>HÀ¸¡~×Ñ’„ ëhjÖ÷íð·IràÙï5x˜®“Bþ‚^ã!X‡ 5¾7é 8Ý>|À§´~,Ýÿ›°›òÙË']Æ þ:Ɖ`x©ç:”2 W4 e:`Þ³` A2Ê*ø›nmÂ"£`A¥ª‡=ïA Zú‚am^O\ÄeCÎXÝ·ý„U=ãCZQáy~Ȇå•eŬ{9çß<ûú¹{B.p_^¸Õ‡`8W.îP[pöÇ=ÌÅý2C31 a7}>…b†6j)° Ãö‚ d5È_ +ÇyÌÉ:÷ Ýÿ±ÕÿßÈ`„WÞ¬·_3ÕÈ÷€xÖ{M‡c‚H–åY^˜ó¡!¤HEŒ@xû1 J”4>&—ðÒ§€‹½&ÿ'œsFÊ¿þõ¯ó3Î8#~ÿý÷‹·Þz+GáWΩ§žŠ‘#GbŸ}ö‘Œàgžy&XØ£>Ê)<Ër]wsnˆÅ´ÄĽ†‚™•+WæþñÄÉ;’›4qÿØ+ï>ï#gl^õk0á…EYˆÅKÔØqrè3¤/†!@¢s8sh„³5‚Ô0Âë1_dþ,¬â“½Å"ó¬CÚ±q=Ú—/AGg ŽãŸBjw´^—ÐòEçÜ0_`åœãK ƒãÎØ#au+ bðÏÇ>£‡à¸s-b1†9ÍÀš¥Ë‚ GQ>ÂærÖL‚“£©«u#<Ù¸ðrÎndœ_Nv°¾ùn>$‡@ U°•ëD6Õ[HdU2ªCêÚΣ¹Lî‚Ã.øHì|œWÉüˆS¢¹Ÿ”kñbχ‚frUuü¦—ãQb™è6|5UWÁ„Ás{ ñ=|LºD˜C*Iuyé0쪸ü¨¿-„Ú/ðéTçM;k}ÐÙïŠîŽ}i5q»ôrTØ@¯('È$od/ô6Uµ5»ì .80æ’jàÅ¥Võº=•h[²-k6!»%|@hýTHy-¶{Ã<¹‹ðqcì1^öƒŸƒñ¼2 =±—wŽÅ±UXi¶Àcá=ì#k=–ª×‘0Ò«ÕZ~OZOz>$º³©çÂë +ëÖ™_8 ,-LËbás\Ý)˸ýä«>{wÈ¥N%= Zr‘;qðºØ­gPKY®æ¨¥ý²ÚZ†ö ‰Ïúµá»³Fëç_På/´fÄ/,‚×ë~¯—ÐË>ãüû[““sÈes7M8êEç¿@ÂP¬_Kàk24¬¼|`»V߉øý÷~´Å øð¡m±úûVÒÒP.ÏðËO½T1äÿ„Ã%ˆãüóÏgx`)U¾’äùÈ~øáÎE]„!C†0 §#I¥R PÁôéÓùW\aœ{î¹ÖêÕ«c!&…cñöövIÕ®Œ¦¦&kذaÎúõë]Î9{ù¥—âÇs|ú'®¾¨¢ÄýI4žP3KŒŽ“%‰#‹cਡ4jmã¤@"Uûär6¤„*õIªC8˜ã… —¶™M&ÿÉ@â6®Xеsçð!¤,¶¾·à9§ûõùrà£?cxÉàlD$€m}/HUU)ÆM‹I‡î­ÉÒÙs°vÉßóQØ×!ªìÃ4Nqðk×Ï¿l*çü:ÆÙyáÌO çà2B––?R×aj™t¶nR^"?,¬†Ðþƒ¶ÝA±Ñoì€ÜÉ9®3yø}˜¾zU­ ³°‹uèÒqû½BþýàÂ+¿\Ä®l°–wFèA8r^ g×±Èm …ù2NAèÆÛ´ïɇ~áÃäNTIšÂ{Ý2Pâ'Þ[!W!|%Êè·Ï =bÀ:ƒTÇ™_5ÎÉFµ:´î¾AòëÉ'¿ñÂîHù“œã …Iæ¡5u¯ŸA#bÌä1fV» ·Y¼¦x$µI<úÒiïíaù;€³IY·f}ê£(ÏH¸&r1‰îé.š×™ràÏãWã–yãtÞ[!a‰qà ÃI9÷¬ÁCøÐ¿ã0ÌØ.ðð«mvŽ4kŸ€öwSOkÓ5€ôój.EbzËÌSéˆÞæ‡øÞ‘b¯HëŽ(ȑŢ—õÀ,ئ-BÉøéßK°GåÿäW¿ú»õÖ[1yòdPIÝx&“›=ßúÖ·³m¹\ŽÑvF€Á-Z„GyÄ «(Á‹µdÉ’øÒ¥KÍŠŠ sݺurÔ¨QÙ>}úò˜X”|nî»ï¾üí÷±xà —f;nbLÆL+ 0S%‚ °Ï¾0dÌpœÁ¶õƒ®«€Žã •N«›Y<AIi\=¨]µ?ã1B –‘þ¬Ö¿®Ìd1ÞH–µröL4®_§nD]ÀÀÔ`èË2ï9õ+Ÿ¸ øÈž58SÔßC/“V×”ãÔ‹OE÷^Ý·y˜B ¬Y¼W,뺩)­Go7L~7Œ ÎYA‚q’YˆJi½¥‚Lg+RmõHµ·ˆ8¡÷CÈïI !/¤J)ÏîDèÕo8ÃW6Ì`°™ßËÁ2º.«j*¼ªGß>:v ¸ÚfíYHõaDºnnN…£ù jqVÎ)¥/’^|ÌåŸ6arãÅÕåŒáDƒã^“³Š°ô²öz„Mô8AW%y<QwìÁˆÄb{ø7#µÓÍÀÍ¥`çtÙU·0/ô„äÚÇNÑ1J r‡pÄ<ª´Ã1ÔR6Å`ìjžTè³ „PÊy;`߃' º¶JUË“{rP-õ¤ Üœç “¤]Çásé]ŽãÎ0ö¡.¯ýŸ]]ÛÀ  ß›GjE J<Ÿ‚¾äUÖ"wöDȽ҇Ljðƒ¶ ¢ðŸT€çª:Ïz¼—m8.ZV7¢y}C0–ŽDÔŠ¢ÛÚ» Ãü2AGD{>Bø¤ÌJz”¢¬W9,fÈ$…ÀÚ…«±fÑÚ­À‡òbå,ÓüáIW~zëNÀÇ—ï¼è¾†DŽÀã…Àk& \›‡ç¢ËQÏÓHrÛGº>¤€VšíŸ$êÇ{y¼)ÒWcŽqÇÇï_#„¸]8bÀ–Éõ"(MoF-TÕU¡ß¨> 8f¿»MõíùðQœ»ÓNöŒCÎ÷= O8³Ï ý7FÃô‚§Ö/Ÿ;u²«sìTªð«H,BjŠù!”)îýŽa¿gH¦ JƒFcd5x â¨g­¬›³?ÊeìqÉÇ/ý×È RÏKà -¼('„#jX¾WH—ù",O¡U'syVÚúË]å…Uµ´]àðÏöh~Èÿ A#¨`Çs ûÆ7¾ÁÉ“‚—@BTlN0å…°êêjV__ogàÐ*3NGëêêÌ_|‘ï·ß~&yO ê "©ñ`VJÙyÉ%—Dc ú ùÊswV,™öçÈsÑGׯÒUVåÄL 8 †ѽ2\–e(Àp`çl´w$Õ·¬,†2Í"È)’~Iï Ù} aذ|)ÍÖÍG}ÏBz N LßýØåf“—Åôg»€^ŒáUƒ³Q|-¡W•%8ó²³|ìhõ™uË– ¹a ¸e ;Z{6¬æÃ‹f°+àHÄýÐݪŸ@¨Ó¶u ÑÖ° 9u3ögˆÂ|WÈfWˆËO»fÎÓÛËùp3g¸y‹ø~£0D…`£ Tiu÷ ßw<â% ”WWrWUît!”G@%-çÒI²ºŒ³>þâ.ÐE¡uÃËç]!/=ñª™ÍèB¾uQuc¸Ïà8/ Çã(ªt¥úYŒš4–­(+ÝË3ÜB•®¶3)‚P¿bœS8CXì Ó²ÂqÄ!ä"ÇwœvíœùØŠ\|JÙ‰Œá“³n|ŠH»×UãГ§¢®Ÿòöî•ã–2¿é…C*<H™7 rŠ=a‚ìûŽ.á}-¿=æ°çZ@rÛ5ÝÜìÑ2ÂëXÙh"ŠÓ¿tÒŽ_µ{RäöªÈME.¸hZÑ€Æ5p•7K"bEQ1¤ Q#ªÎSWð1,”ö/E¼4“Y`]ÜkWÎY…U ×ÃGXbÞà9Ó2o&À¼ýð ?[9ÜÙÝ2Ñßœ?r±½ëfÔ6—¾\·>ôväÍÎÓ" €è–ã‹™‘à’á‘Ø"Ì7[4€H}O´D/»¤“:jøvß_•›óÎ)Cèµ/ !¾ÕUYaZÖ0-âå Ûe5~óK}ߟõþB´6´y=ZL !VAဲWT¿=ñ”W[°›2eFâôd©|ŠàéR×b0B+ó ÄB[ÀR% p?é¯gvPFñ¹@[ÈÿÉСC7çp(/5äË–-“›«`!‹©DpZW D8åƒl‹ÍM ײPÌ«¯¾zs¢yü…^pçÌ™ÓqÔQGuLœ8Ñ‘lX9³æñß}ñaÇÉM¬¬ªmRƒ)rêfXZ^ŽÉG‚ÒŠ*HiªÁVÎÎz^©tIU•%(-úˆä€ã˜H¸•w ö¾¨Æ[³Þ{ ë׫cd`A¹aÓ‡Î[ Ó8ÿÈ‹?|9>zzð1& µ‚?¸T¶¬<Žs¿|®‚‡´yùb¤šêÁ|ø 5õ2éÖàcóv à1€‘ÂØN½±p)ãØhš? ëÃYð>üdý6ÇK°k)6:Ó|˜ øg¸%p†V‡X7äªy^šñwàþ TVó=t4ý¨`ÝÚþCZ¿%(ÊqÕ—'ã¶Ÿœ°S"»è%“íìPÞ L*¥L¶ƒ®gµaøÆËŽ+N§2–„ò(ÁÇ%þºheöìqÃb^J³¨ÚUm]-FN‰^ƒúî6TÝõÛqíÕ“Q^ó´7}GÙ|©(bР*rp|ñâqèÝ#Št²™d ÙtF·‚P®¶!t……hY¶;B<)¤üê¹7ÌOÀÇ©eGs°G Žê0ÄÊÏù€þ,“‡áã«ÊVÿ¬ð¢D¤ç ܲòY˜ Ô…'Ìvß%@»›î/|ðÖ¢©œoæÃ‡²CÇ P ÷vžÇÞ †¹ùƒPæÀAý’ h^Ó¤@#bÅP1¨Ry@„À‡¯>Ì(*‡T"K€oçæ¼k—®ƒEðQXJøjÒßO9ëM¾H2ç/ïO}sMijö˜öênÝdŸ×´àÚ…U÷¼üÆÃçá@·ÝDÓ­E³w~n¢VËe˜ØY‹ í5¨ËÄ@Çx…±çÓk ×íUP^˜l~¹y€¡¦ww Úw˜ÿáCæ\ÆÆœç"Õ–g–YT8Àô ° Ëï7 >ú蜌’ÌMxÍõúøÉ£0é‰>äÎÌV†ù*ÉõkélÑ“ V!|‡]énÂQ€^†<[¸XþÉ'h%!ð(†µ¬Òì}Îùñg^;;‰<¹þüªÛ8÷  È $ôvxA†ŽÛ‡B­67“+Ó^Á#ÿ€wÞ¸eÕÿ‹Žf¿ÿŸ¤õ"Oèµ[ ¶Ûï¿}Åní®‚ÒT2‰öµõÈdS^]C¿p &tŠ·ÈÖõs³yÞñ׿ãG ˆàücÊó®Â‹c§ŒR=-T¸•Ü}?þä‡ñþ‡kBXôàÃAt3|ÐwŸˆÆv°¡6#/È*¬^´¹LƇPÃÎí_ßÿô×<™þãëc/ýjä‚q}r¥XVÞZÏóLëТr##Ax%º _OOÅS‘ØÈ“è`9ø>?ôÍ&°og7LlïæÊÀ+ç]ÛEÞµèÃ1©w [±8F°b¥‰.á#†–úf,þxæ–ðQX6ù F÷ý±GÛ éæB¾Rt¬¦ FÊÍ8-Çfî$ìýÄJ !Ÿ¾õ.Zë=øðn¤ÜÎ3Œ¡ßo˜~ÙßX/ò|Ò¶ÃN˜ŠŽÚ_Âîü]Žm#³97#•ç(» C®L“4JË:×l×—¤ë¢­± ó?üÙt6„)É*øÐU©Lã-‰sûÒ' |ü†s\íu6ãûM–—çÆÈw«ëF³ÄC1pä 0ìF“¸ó4 ³åf ~‡:Öææ²Y¾ÔÕ••5 ZƒÏ?¹ju—‘R ³½mk7¡uS“W¶3H€UB™‚¿’Ì+8úgmüÕà8Í2ž|³_©C¯"^˜N,‚éZé7´O— ´£iöůÿõáٸ肱(­ú’-7vȈ» 2´¶e' ˆZêoÔié|¥Ð¶r#Ömòc¦5lés|HÀ÷žyêÕ3Ÿºô´ò£ð¬îíÑu²y¿Áu8ã²ã„íK08ŽP »{"õÀ.—ÓefU8ZnË< ›4„QÕkhÉ¢fäX @ ª_M<|×b¸bÛ8r;Ëz]n2d‘…¿ü¯:iÐÙ¿Yyå¼ó>" >ªÝ>4€€lÔŠ rŸˆG£`]ÿN¶ò祈NÌ}ÿØ™t|d¾}Ó%r¿Öš}Ô›·xhLsåžvÀ%öhÿVÏzpƒåÇR¦Þo)»¯ÓÛ<æáPg ¦:ýðªµÏFæ£N”aï“À§¯jNاÃP!¡ÀQ|=úa“9A¾Gz¶×öï£rl w:м©æÌ…„ôƒ4¯l²:þmûõð©O¼†”;¿Õç>Ã`—ÐfÄPžO+jB$8æLcÆÀ•çØ³º2– Æ Q´J$0Å釓ì»tíÊB¶CN´®\†MË–"gzû!•õžw.çì÷Tˆàêÿ ¥°Ä†¸þO¡" Óµ-‚ «xßÂr¾!t„Ë…–óF‚޲Z])ɑ͑u<qBê› à–Ï€­&§VG¾` 7£‹<’QÀ­øÅ| ÿÉ›o¾É6nÜÈÖ¬Yƒ8€QƒAùûßÿž¿üòËhnnV§›<Ì&"ÂqCH!íöyìóý ÎF†ðÆõzÜþ8ºÓ¾{ä¸\Ç&é„›Iƒ1ÂGÐE8 nE@ ``{&I™¤i}=æ¼ÿ)2éL!|jöJCˆe¼JÇ|áSÏÏ;›qÜerÆt5,†îp•'%b(–ÑîÆòå:Ô8Õv ‰/\ô8žyn!H¼ía(V¢B‡hõí[Es¯Ûâ8~xëÛxõµeX¼¤ õë¨ÎÀ۱߾½pÞ9£qÞ¹c¶ö(Q¹0ü}ž{~!æÏ݈¿ül4νþ3t¯±0´Rÿx·g]‹sïîÇz?çøëÇ36¶q.¯ùù_šõ=nP—žTt¼0| &<UÝ*v,¥+/ йä ?ŽG<%•ÚKÔÙz |Y³¦ ß¼éeüã…E ñ^ÿ>|ikÏâˆcþ„… àË ÷¼;y¹¾ŒÆ¦Nt«)ÁVD½þ‡?MÇ /."ïÖ•R?@î%˜2¥.¾p_|>s=~t뛸é[‡â{ß=[“ƒû–,mDg§êª8V/ÿ6HÔñFAÒïþîD:Ù‚‡‹WßZ‡e+Ú‘L9ˆX=éXG *S öÌ«pâ!U8îÀrFØ­½¼ºSŽ;O>³Ï¿0‹5 £#«òíÍýnúîK ö~ÿÇñÍÁwÿçÈÝt=°bÚ,Ûž#Œt[ÛB0(Þkõ¼9h\± •½«QZSvBwœ>¸(ë5%ôL‹F¢`;<¦÷Va: §}7—Uðñóý+¨¸`å@ÌéÖŠy•íò­î?¶\Þøü[‡÷^XÝ1azm6$2y¯ü»nZ`Ü„/˜ªéàsûc˜¨Åkæbcì˜O„X‡<|GKãÿ#ùÙÏ~ÆLÓTàA•°¸ã8 ¨¼.(‹SI]ssâùðáÃ%¬›–e•|ôÑGeô‹ –Q §ð+H)mzPˆVêÉ?\þÃLǺ“ÒMˆÒëñÒJ5£gY5}ê(Ñu4-[``jÀ4&B0ØŽ×PŠ»³U™:!LoFÇ¥} .ÁIƒò|dÛ[ ¥ãy%ƒ\ æm×VC×bDTèþ ªd…5CóÆz,ž> LJxpO/oÆko/ÂGÏ>…ºsÆ!{òo–Ú+a§;áä2`>L F$®,Ó¡m{8>œ¡‘fÀgÑŒ`gG œ± ‘›eú‘Ng>yõÍååÇð>üYñpPÂGO*zp8¥qt%CöùÖ­o× Ñþ#Uç_øH˜ëœnÿq€|RÊ`[±ÄËoöß,N1|¤R9wÒŸ0}ÆZÚçVzßw1çͳ0æˆ'àËó¿‹“¯ž§~3º> †d2ÛðÕ-­îLKžü⺞øñýõt®@œàë¤GâŽÛOÙAÊKGVͨ‚ÛîÆáCmóBhkÿò¥©©“`ìG]¾þé§kpðá…‘ ?¾ +çÍÇÏ¿oMkB±p\{AÏyéTz”‚OÎpï­ :¶&1üöî³pú©c¶ú(O”ߨlx·m±mü¸Þøð½ë‘/þËÇøâ%“»þŒ6úŒŠ1i¿¾øÛãW]E·&;3ʃWÕólO†Œã›—ÖÁ0Â*n‰ò*ÜzßjL§ï±XRm¿ôÀù›Ê|Ð`¼òÂWð¯öo_ï'ÕÞ†E½–“¨S Ó5·Èù0„DYÝ Tô¨Ã×wóx¾j<‚¦Æõ€pƒ‰´±íUßQƒ‡ú¯ÀÊ’d&+Ýè„Öj–²\–Ûå¨`Q duXh+òHû+?ÌžŒZYŠWÌùè+ª0BÔùÈÉTîB{Óld’ºe ùð¡§±ûì3Õ½ú"O`WÅCª­É «jÝz?ü2ï~—úN²WŒ:ø™¿mÃó1š1Ì!(Gz•+exø€MøiÛIx`ÜJæ ëæ|ØpQ+˰–· LÆ0Ê­C;Ë`Š;Ýþ{áÚgX9÷3¬˜3SWÆÒ¡´€~ÞéP1=áv+-ÿ*‚åþ $”:à: Üéó”‡6 ÁÚŒ°¢mlËåü­LüäuÏ"¯§ˆ-iè ±I†Ÿ÷Ù;gOÖ&m+åqR&å<)Ä=Ó¥¼ž NäÀm‹€QøÿD¨Dîæ+åY næ’ªXqªvZ— êXœr/,êxnŒ=šQ˜V¤¥¥¥„º¡›Ñh4ûÍo~³'…p1•TUUUbýú òÌ3ÎÌ6®zmü’Ù/Ý)e®¦³£€’Ò •` æà„‹NƒeEÁ`j×­°õ€ÑŒ(q\IË8sáº)¤RYi $˜ mY@:*—„A"—lƒNž¦)—úÆÂGXAR(1£¥ªãzÿ[ÄL·7nމ#lp¤tÉò&¼AÂWö€£&áèÓÛtìF8„Ôqê™$\'­¼f´܈ŒíåÙL†o¼†5kBø0u. -‚Bši¼cBü”0ñ¼¶®?ýDÄJâØšôî ššRjÿdë/@‚ó.xÏ<;¾d’·Ã—ÊnßFkãöKõ÷èý]õðkhH"_FŒèÞùšêyã³×¯ï| ÿsóóðeê”xëõëðãïþS‡‡!iT #'ðýk€AwþÆÏaåº,|ùÉWjñ{Ð…(°íl½Û!%@I›UžU´¤ V¬\Á<ÛÊ9=ïÂûé;› _2w _6njÇ€!·„ÀrÞDÜÿ‡ õµßžÁ±'ÞM¡pUè¥~/ÑÇÞ‰>\”Ä t¦]äËE'V¡¼TbõÃûG˜ÿä&P§pœ{ÕE8èØß«p:! ¡ä‰¿_OPAÃõÔ…I§55¥êokkúâe×…çpxO|6ý»ðå¿|ˆ¯\ó·"؉«I‚†Æd waßI·âýw¾‰D"À?ÿoà†ëŽ$ðÔÿÆä)ƒpÚI#‘íhÄ´–áµáº2o©w^ÿ¯NKá,Ë»~ᜳ÷S]ü?œ¶þ}::Z~CÇp ȼúÒ×vÑáî–ß L/²ë“ÿ"Ùþq®œý 6,]€ò^¨¬©‚ º÷kå´\Ñg*z ÑIw¢î±ÞÄTw02ÌÁýx™æM€+pT}öí膳pï E8¢©^«X‡úXVAG¡çƒaëáÆ>x52 ¢ð ÕûBg ö=·2$€Lª­k¦ƒòCu¢tQÂyiUô4‚€¹Ïʘbjœ×¶˜þÍd£ c…ðáY!iùÔ1‡?ÿ|ð11ö²a°aPêUrŒDusÝù‡Và„‡`_Lu¯R 6PvËÆlÄaáÙsDwF^ÇÖŠ{³A Û£s•ËgÏÀ¢Ï§)$`xðaL¸·xÎÛßFbâ?Tpi’r‹nÁzQ“AS©YdÝe’†F¯¹r¶ H©þ0CÁH*•FIIŒH´lÇÖÈw¦:ÛÒÍB¸Ž†^Xó"ø`úúÚ}®—s9ô+G$^©ceÙ– ù/˜ñKÔÖ¡ºOo$ë7UL©aòâjW¤ |…Á`Lbå^øû”£(…áæ¸1nî%`c[¬N<ò̧°„úUËóàƒaùÊVlØØÀ˜éw±rÀÖöꉣ)dÐŒXØ–ôª«RÒ¯oµ—å<ú𕈕^ƒP¢ð¥µ±p`½‰ÖÃG- ¿Vï9óŒ øÑÿžŠMë~©÷oMÑõ#|÷–gÕõ¼`Á&ÜýÛqã7Ã*+ŸÏZ|yîékDqó­—cÞ‡ïâý·>ÃmÒ55ÊJ >tBù°¬^Ÿ…7ÆV ¶59ù¤±‹nw€æx¦[W*hç†;ÕÎ7Ã{ÀøV@Ò@°h°ßªÕM¸öúÂþ²cÆôó*§å1|ôþÍ~¿#ˆù`qÄJ¯ôÎO%~ôÃPÃWhdñÌë›ÐÐ’EŸn*Ê4 áãÖ?7ág×öÆi—~¨¡âÚ•¿"€Hã®{ޠЩð®¾öQ,8ìV””D‘Nç0bôÍèì¸ ïßüâ¹CpùyC)w¤JºÁ?þ1={TDµtÂX48ÿ_ÿV0Fç"ÿ30h`­wþ; PÞÇ×®?†ŽéËzàùÛ÷éüŸ_¾~=ArÙ—áË?žþç>{åQ2r Î8²;~xïR¬Ý˜%à2Ãò»^hâ²U…×ÏS7¨æ$¸ìÒ#ðÇû.‡/ݺU€×s~q®„ÛÀ—ïZV/‰°AÔ;ðꂒè:»-Û/Ìöê-9ÝтƵ+t¾‡-·h*eÆ£²çà]^ý+ε'cŠ„+£ðwó|d,%%ÕXÛ¶ ëJ3(çIôÏ•Ád©[®Îc[ÂÇYÎdm‚çÏq“}2Þ5áCú<Œ}és‡`‚è¿ÍcgùË/­wÁ{èH·¸…†£ß¨ý·ìŸ²SÔÇŠðˆ1cŸa¬þ™ÌF‡Aˆø­3²_›ùú o?êÅŽ¼Ð«}ð7Ø@‚rh !¤ª[Oì{øÉ8<Á{|fë‚£^À7‚RópÒÕ¬ƒdwLq‡!  ‘=ÈÅ!¾7}‡ÇG/=‰ÎÖF†E ¾5ã¹cJ©ñWÿkd= ûHàƒÍBöÀ>ŠCx6”.˜¿Oçó¼m2BPÔôI c,Æïˆ-Lˆ0aZ¼ª^< Œ6€¦2ü…]#Ã×s®ë'ø2)Äõ“„p…”75àLÉù¤üéçR.É=éó9°ÿeB!©i ;è ƒððÃsÛ¶Uµ)*­ ò„€<$’ÀDR~ÿàƒL*ÁkDÇ_‘H$ Úæ¤”’W$B`ÒÒÞÔ┤_¿ÄµS•Ü0á¸dQQUË”(«©ByuÇTnÛ\®Ù\NÍ&1SÆ$­sÐf*œ õP¥ÏR€Â™NLg ´žñ;¢« ,Ìÿ°ÇÐðQ †ý5|x"\µ¬T8ªZ.Ý‚XÙU ˆsû'‡䄃†s®¯×àÁ¹¶ƒä{øÊ2f^§q†½#̰#¾ÀƒíôîÃ'¤b«×,‡i LWÓ@Öà"¿“u03Âð+‚^8⌳`EcØž<õÄWñÎ;‹qÑ…SáËy_¸¾d;‡|Y½¦o¿½_tHàkJîF´äJµ¯Žó! ªª7|í8•çðÓŸ¿üíÑøö·N†/u=«/7þÏӸuˆØ¾C‚ã¶js—tR>HF°êbòˆì7dóº†oÝ¥›ëNS‰7ß¹‘htgfœ$åR Bê0®§N¶ŒÇaDÊ»lþý‘¯"Zt ýeÓ--…°ˆP>Ì`Ì*bO®¬#†×ቿ]Žu³ß†5°Ï 2|÷ê ¬Y׊Ïç4Â`®´ñâøy=~|e7Ì\W†‡Ü+*ÊqówNGGGwüæ ¾¾Ï>?_8ÿ²Ÿ*°èìLçŸ:7|y”Üg3­ˆt.Ç ÇNÀÉË&¡¤âr‘–e…-þÛÇ bH0vl_<øÀU翲ªœàCÃF&y?Ûe”ëó nüÖ)$|MŸÿ›ÇÔq%ˆ;MèVa _]ww|¾ }ë¬ ôÊ2õŒimM¼èúy§ºîþýjÔ>$xöé¯SØ@¦º §ƒ´ R´û±—3¼ûkPRTwïWÖ» Œ­õÂ` XñÁ—0¬(¬D% 0ðÝ Ký„c¥“m˜ÿÞ‹!pmÀ)„å½—9™Æ@í@03‚‘e¬ýd5LHs¿1ßÀî0,åõ8ÅÝãÝ ÀÛ@D¶[î‹•½&"“lA²å3d:Syð!Ȫå#¤+ðJè­dÏ*øŸÚƒ`Y¨¬%ø8â4D¼gÁ{æ¬ct<ˆ¡F–a k‚/ûˆ^èΪpGäU¬e-¸=wvúB–;þB4^ŠN8Ó_{ Ùdk^îYƒqê‰2뵓²Ìà7R50ç?@´¬ÕŒ°¨7p6p©(  £‹œ'PLRh¡ÈB@ Á¦( !„„0ãº^Šx½F@ë> 9BÀ”²À;SÂCoß!ýB?àþVäIªâ*ƒsSq£ t˜Œý™sþçl_&ä7&_ Txi,0v6Å‘|õ«_e¯¿þº»™3g2 Pþ†¤u ’=z€B«6çxln2hœª†›={v9…]q ÍrÎ9çœ8u@¯_¿Vôè]Žtç‚ ã%†‰Ãvõ]25QI@³ÏÄÉ`*‡CW»âÜQƒ!×eˆDJ8èÊ<¦7˜6Q¡VÑhÄ{ˆç Õ HŠv&pù3îÁªZÀ/*{ß­b":꯫–B']y·pE)Ñ˺ÿH&M:Ñ’îHTP7.ö/ˆqv\õ‹ mÝ*Hƒw ¼>"ÊrÌýøSô8Ñxÿ}qÈ)g¨²Ï[É‚Ãéׯ'.º¨(4ñ¼e«àùѯo‚È—hÉeÐb!Q~Y¼Ü¯^#‹ÜrV ‹—lRûúrݵÇãñ'f`ý†VOðÀû _¢÷~QÁö°¡=1t@c0”—E<øàhnNÃuì>n$øð¥²¦ÁG vV¤°!Ü&>ÂðX)rpí5´ÞÜ(ó¸Aj–â]¾%ˆ¢V–£;*ñKû¢|Ø) hD‡ÏçkÕý¨’1è7áhÔ/Ÿƒ~#§‚»âg; " PÕªL³Üœ‘ú‘ñàC×$-_ à »â®åœ 25”køðàœrT1xôD•—êù³'Ì1PtÇÑÇaþd¾…Sýp€†3á@ “ep¿ù¶ Ãú®sÚöJñïÒw΄ÄÈã U|E—ö|˜A%0²ÙÈ®ðË@þ d°À±½€3 àï0D8¸Ç#´ ‹¼ Fë… ‚¢°.^|Yj¨ðC®ô>†¡=!¤–ZvT$%A&C g $Ø“*‰]‚{îe.ÒÈp‰vU@Êœ-†T¥N¿ ×àî `À0ÒóüÿErýõ×DAÉ䨭­•ŒBª°aÃF€!ÇŽ ˲A 3‰ (_¤”*]™Ê@râ‰'ƺwï£éÂæÕ‘õ‡sð~‘hÌH 1¸N ³¨íÓL ”-•oaY H¸Ò¡}B?ç1Äc1 ’‘0M¦Ëè2x%ý˜Žj©îÆÃ‡¦n/d¿–uÿM3€Gš×|e•pÅ5BˆsÉ2R¯´gè ±³È$—"ÛÞDÝÄâ0½Á'û'¤Ÿ )°~ÑL´¯Y‡o9S¶£=ýw‚sBXØÑÚÀú•+ðúãOà„ ¿¨ ò?C¶/a¸eê%Èv4©ïdéÒðËíšff˜û¡tßCŽBIiå·þæ«Ôù/ïÙ&çà``Û)ã™Mý…@æ²n•Ž8êÇÅ  3ýíê3|>¼WARwŸ>µ˜þñ­øÍ]/SÒ Ìžùs(=xBbᢠ¤ÀóöUŽïu8“¨ß”öõ2|¶(«k—Þ†DYºÍîÈ—æ–À ²Pâ ®úö)÷p¤¦1'ÛÈ6\rþ|‰Bš÷VN—Âx—ÛÂóÏóo“Wäég>Á?‹dK#޹â3 ¬Ù˜UúÚ‡Í?¢TÞrÍæ‡_‘E÷n&^}æJ<üÔ"º~¦cÑâ ðE‰ ×+½ë—§âÔ3~Œï;Jå‡ Õž±åýÒ%Õð‘×¹=¿‘b& ÑÞwÃJÕÓ%+CiUz …DE7¯È¿qT"Û¸|® Ø99ÒË;PÞ=æZpíÂ$ìúU UÃáœÐ¥7ðNó%TÊ.rÆt¾ «¸ÎÉšË×t‰¹vd“›°)ÀƒÏ+š1®½+k;°0÷#¯×Z&C•·£Ÿô^`GÅ‹V¤H¸jÐÅ}–®v›êîƒÊ’2 sà~¶Ü#Of‰Š*ˆÁS›ÿ6œ>üëQz`†*ÆØá3€kñšè³zö @Ÿ}‚§ð1æñ5Jˆ¬âõ˜f,FÑ †w,Ÿx¡l .¶)l÷Ž?V’À¨ƒŽ¦Ð7a§:`è^(EÊ¿´ð£³£rÄ«õ±ü—I?àxøšŽñáC4& Õô¢¥£jy°òß_”èŽâýò+fq®Ôð „yeÌÒ¤ÒœW®×ñ&3ψ™œ° ¹[Jå.5m\8ypÔ$€y¤õÈÚŒA0WÌr„8¡‘ÓΟ˜À‰³Fü—#˜%—ˆ†žL&A%y%y4@!V ¾ œÄ þѵkׯiö †ö5É "HãýúõëÖ¿ÿøgŸ}޵ËÞåC{´üXÊìpÉ,X Ó…”ô2 Gï‹L& )\å͈X$˜råÛ¶P•¯â 5“«+a©&dYåö¶,“@ áAŠƒ„›ëD®s!„p ª\1àÓòº»&b+²añe7¹®{•pEÿàAªC²•® î¸HTöFí¨ƒaíõçŸ`íœ÷ܰ2ÌùðlÐTj€£{ð½×M“#fA7ke{„ÃÎ8_…°)a{$þ©"I×.ü+ç©à²e›°pÁ:¿©\ð )ö€L<ü*÷<ÅÒ¸n VÌyQËDÉfí=DUj‹U ö« äÜ/ÜA!E_C$qZÏ¥ÆÖ䌳o§ò²ºGê!À%|п+W5Ë;#s殦\­FL®Çßû3g­‚/_!?ïa˰tq3,Sx×Çu·­…/§: ýík; êÚ6Ò­@ üθßÿEѾ„º (7úÂŒôR¡7ç_x‡<ëïëì‚Ð÷®?×÷ž8©öæ.…°ññôhkëÐ ª¯•tÿâƒ'㨳ÎÇ’¥0tHŠe±·=šø‚Z¿âò#q÷o¾ «ZVÏD¯á·áõ'NÂA•^}“” f˜¤‘ ˜ÑÞàfbˆ3ÏþeÁùÿÃï¯ Î{WÂ9SyGt<”77'Q]]JŸó)öÊ0ûýW±¸€'^Ù„ÓŽªU|yî÷ƒ„UÓ«šóü4†‰“ÆR¥³ýÐÙ™¡ü¾zõ7,"ð¸îê£KÍFuß;u¡‚[Ä•— µ¾ªó ÏãÀG]vo§uGÙ°JR˜¸ì–ÒÁûŠxY%zô¶ÛMaw_tÎÇÜwžEª£ŽYeR‰êî•èÓ¿®#üc {óãDÿQ“´‡Íú#Np'àT±æ0úí²&¼Ï¢…u–xuÃ{Æ",f»‰2T/]ƒ•­@^^£%hY†Œ)Q#cAhú§“í:j‚X¼Œc§ÄƒMhG Kb_‡l½šé¿Ýþ~a¾€–A'²8Û݉}ƒµ»€±Kà’#]ÿɳHÛ9J€¯|zÆ´eWáÃàó“Î#Q“¬…“À€‘ã»üü¿Ò¹Y‚‘ßå.Ùã=ÄŠ%gg°öÓ÷I'Á, !)· 0¹LqܨƒžYjâ¿LV/õÞåÀÏp&€žùIÝ¢hYz6Fjy8Päå@AX—^fEËÌ÷„0¦`ÃCÝüuL\ÌobdÎ‚Ì 0‹–©BZÌŒ„%lÌû›½_-ºs`µš½¿ÍÒÅZÈq §¸2€¡ý à>gá¿D¨Y`€ç”ÃPoÐvh°%K–€ò?äòåËJ„ „“ÄMÓ´¨*–MÞ½Õo\-17”I熛VÀ€eÚû¡U'šûôC¨¨©Å€áãŠËŪRÂk+°å´¿mèl^C0»ÙôjDãUˆ&úªkÕ¸’ã¹ô£Øž0ux ï°©´ƒ‘#ú„2 0¼ëç·=ƒÓNÛŸÂbzÁ—ïÜü~yûsÿÞ˜1•žàK—…îu_‚/‹–wÒ@5Ó”>|(›/=ú ‰Ÿ­šÆã‘.Ñ“s†U a§ é•“ gÆÃè2€­„é ‡ö'A&õèî@°ú"ñó@À‡VŽLÚ@{{ #¬~6sIVWŽ:úx€1Jðwþú‹(–û~÷î¾çå¼ó¶ü뻸üËaÎÏÃO.ž;ÅkÂiƒsNºzMzl:Ž9j½(˜Ù S&,8ÿétFyiè†bYNPðè£áÛ7žZmyû¯Ÿ£óÿ¼þŒÇe2 RâÔ#kÑžtðø£æž}ý¼Ñ‚¾8¦—°zßÃËðà“+¼†çžùŽ;fFÃ#,E¦m†š òeÆÌM¸j«ð! 4ôtxÍ!=¯H9mg¤Fb3°Å‘£}%­·5l€n AÆkž¹hú[Šö +†^ƒF ²{êúQßs(r¯ƒˆ”@ÓºåX1ë‚V6i.€Íë›Ú¯«ëUrÈ)!|(…ø€ÏG6¾á‡i|\Œ•½ÑÎ’*Œ‡AªÐо‹ÕLûb0–ë!ذp¡áC÷ä`R½ÞÉÀ¶€ÚlS²u˜œí‰Án•zF@¬„KÖˆ–ƒ±!¶ ñš1 3øJ8pƒßþÆÛØWôÅÙMUŠ¢Ž_˜,ú#Ö%$HH¬fÍêÕ~²f7Ev¹Eø×cЇE©.^d°ã1·ï Jïš&ú†þ#F(„éJýÖÉ ¯6ä‹Å"Üœr†å….’ÝºŽ­CÝÄ)h¤Jl™lО º\ï`)Äã&˜ø/”u@'€kzOXÀíØ×ñ ž•]+ÒH‘—à !DÃG— Òu<&ƒ Ë„“ÒI-ÿ&)e!@“#°XHŒ·LÝÐN pR?ÝdÚ['-e@© }°ÍBb滸­ÕEFA”þ÷Žœ$å¹Ó¥ Ê·ìôýXƒÿ`ùÃþÀ(Ù\Á]*•R³Ô T†fÅ)“g"JZÇÈ‘#2Ž¡ý3•Q»nòDÇÎB ¥ñ ÒôYñ^ÎæÀ¸PáRŽ€EõCÁƒ~xJ[¨µ±XÑHDmg`ÚýÈõù•j  ÜzMy>| ö›íz÷FÿuβÏÎ;KºòኋB’-Œiv²:Œ`éŒ×QVÓƒ&+ߣó<éd+WÏGÛú¥€jÅtÍóBÞùí 19ûÐ0L“_À©¥ÔD˦՘óáËwÐI*ñú?µ‡ª.Ö/ù «æq t!Bø0y—aã&H”¡X:SíÈ%›Õþ~ÈŠAÊ "çÀF3¤Û3[ª@ÚŒ ”"ç2Þ©$+X¿ð‚C©ÂÒ*Y‰Oþ îºóK8ö˜ñAòïç3Wàþ?¿‰?Ýÿ†òò½ûÞ¼ðüwò*iµ*Kÿ¦‚ƒÜr6.½äpÔÔ”©ßÁÓÏ~‚|‰Ç-uì¡ÊÞÿã!8íòPÝó«(­¸ɶ‡@ÛvðÖÛópï}¯P“½Ï(ß«kVÞ‡.DA°ë[,‰â0,Gê€гYÝ2ÉE*¯€±ÄyH&„eX`;ÝÌSjøÐ¢áÒ05L Ëyï9¦Ž-ÁKÓÒ¨©»šàåa:ÆWQ^Ã7n8 ••% X~uÇ |äÒ!AyqÓwÊÐØØ¡ó'þ¶ñƒ›¦}†–.oÅ_þ6zp.r9^^ßéi/Â9§UãÖŸZ6Óƒ¼Ïutþ/¥ó?V‚³f¯¦óÿ6ÿ·óÎÿ·òÎ |ioªÇãäõ8bJJW åŽò×î'•m–eT˜–knËÁ—ãŽ_þêy\ü…ƒQmF6¹{b .8g|‰ÇÌ<ð(†7°n˜?§Ι +U¿«ª Ve/0)aÅJ•ÜÞ/úø $›[ |ø!„ÛF6›Ã’YÓ ÁP[×eUÕ4j_DKJTQ=aXe&ÙŽ+bí‚Ïázù9R Dô:m_cÛé»iŸ‡ >þD vZ>|Ü;u-FW|ŽN##Äp,ôL¨2 ~-ãÁ3!¸¿—T”QÞÇHpnck2•¸É=ƒ´þlLÃ4¶Cd-É@Ä`â}¶óùFXÒîËÙ]øeý¡j™V¼"%eˆ–”Âdù=Zw½™1#G€ê1cÑXAóˆ¥l÷>ƒ1æ Óv;!SªRÇúïÊÆönVL¦³óßyT7”ôfæQèÑÚU ÚÛ‘?à¶´5ÈR’!NÿòwP Ú_††EÓвa ˜z A¢Zøâ5¯aÖÜF/®?ƒlÖ…/½zU)«~OŸŒÛ~~!ò„ÀâM\uõ' S¡¬òbd26òå²/ŽßÝûåpýò{ñׇÞE±tëV¦úbtt¤  oŸ‡Ï?šææöÀfyßÏÅ7-ÖБyVìÔÖ–«R´Ù¬Pôë[Nz%\g“ÎÁbЕ€ò/.©­íÛ;G Î=!ˆ¿ ‡ö˜ªÆôëÛ/Ùæ€ãêkîÇ‹/Í$Hª¿³‰J×ôþ&ºUEOø‹>¯¾»è¬W0jäyÂ&~&ûgØŸØÅ~¨“êãÑÔ” ú€ÐëÊ>G•¯N9y?øòìsz=—J"›œ‹šþ¿ jªcj`Ú‘´ ÃîNŠ?ßwl¦ôà#óðõÿyk¾n}îŸVÕÖ–êâüBçÿ‹yçÿtþ?ðNŽ£†“³ô ±ÄPáªé¬(Þ|ãòaÓO?®ïD?뿞ç_ çÅ’Mw¡´æZõ÷ÓuL3ý—y<5îÿ?§ž8$€}Îý· ñ\ 0©J—[ÑîÕ0âÚSÈH›édf¿ñRm¡÷ƒÔ•ˆH©TJ¯Ò¥‚g­•µÝQ^Õ ½‡†éØwÎÁw/ÜEK{Ã&º®V¡eã:‚²¤îDm†]e³„¬Bwý/É Kòúý“ÆH)g‡y1ï lEnT-õ•8mHc#kÇ9î¾ÈÂÁmækH"O”ÇãP1 3ÐC–ƒxŸkÀw¥@ºe4|FÊú§êVCÛ¦E—sÆÙCŒóóc^¹&3‹ã ø$Ö„ž¬ 5(Ãþ¢?†ÊZ˜0¶ ÑŽï›/ +¹ÌŠÉ²?^àóPÏ’t\ãU¢ûZ´t´*è U’†cÀÎãöX-%Z×®BóòÅÈæ‡þ‘urŽjjÚÒÚ©@Ìòš Z‘ˆê÷1rÿ}É2d‡g:ÐÉr(‘Ô¢7›/ãtwæŸ"é¦áØ9]hÁuñ“•áxÝà¥í9fE "Q^ºÇãe g!|xË~˜ ÿÀI#~ªEBñýiçÒ,·IrF!|Òzº£ €ƒÝáfíüR”‚ñJ¡aаªaƺ–ÿ;–à{0<"›îÄòO_)HÀs\W ¾ àÃ2Š ÄÄØ©GtyÜ’Ôîl·L=`hkYd½÷rαjm;^~c¶&ë×· Õz;¸Ñ̤tCS!R‡(%»Èó:¸œ-àãè£Çà¶ŸWpžX×®|5+_,—\|0úŽ˜ˆ…Ógà ï”®ÚS¡UäQðA‚††v„¢!ê–ï)m°­%çV¼x΀c×C8N!¬»Ú:Ž£ìko¯ àã³WǾǼ„!µ‡åÞ{_Çõ— £ù úš.„<ùÍ|¼óðÁ0=tê«8lJ-ŽŸè_¡÷‹’:Œ_…êÚ/@TCCÁ÷§^on¸›`cLAxÆ©§ŒÁ“O}ˆ+®|›Öü­ë¾®& ª DŠåX ¿úÕÏSÇíØÏ;c(윃ÞCT‘šàüoÒ}CŠÎÿH:ÿgüûŒ…àFð¡ºÝŸqÝ\´wº]‘úŸO=¶ï ¦9gE÷)ÛÔœñsßøøÂ9Ãqò ƒÎ^bœŸºªUh9Ìx%b%=‰WäõûÈm(l‡Ê©ð=¡ m…„„‚ЃihM··ÀîlGëÆUˆÐzeÏ:$ªª‘è7¦az÷œ°rfáR86a™4ZÖ¬B[= ·ëCÀ à£PmÕù[Ü )ï$øXü¾Oó³[^ˆê¤…¦’j[#˜²´=» Øî½1­ÄK|%>å+p¢‰ Ë$lG `%8@öÅ«|‘ö†0×è€qE"¨²#Ø·­cÛªPa[O?Õkµº€zìóGѰìÊ»g'2ÆÊ}˜ü[ÉB|Ý Ÿ1‚á,g$ÖGÒø”/GQ ‘­‚Ybƒ˜ÃÂy®a²½d9>4–`Œ[ƒÙ|5rpÁ˜÷Ø ,a @Ö±ö"ÏÉZ´°\!&ïÖ³@zwÅÖÕ+ѲrE"¸÷ótóªhú“p–‚~âß>ýØØQ©‚…žˆã^cN"ºÉ9Oc6:ì–öš2 ]Mªgý:Õ=ô!ì13HËëê“¡mÝ:½ÒUà¡”€l¢‰ÿOd-° 0Ú®0€_9d!„h)ÚΊò|7…‘ùœ>RJùßÕVº!€ßähY„ 4¬]‚cWÄql¬üü] `]Á‡^ç|:€#FôT ÛÃàçG,ó|ø7_ecdiÃØ 0nNÖ…k¦åÀ© Ž„ ×8b½F®Sñ¸ª(üN‹Üiɤ’X1ã-Øéöüªps6:;Ò^¥«âð+CÙ²Ê*J6 ‰l—Gj˜LŒenzCY#¨6Ö·O¦Lì‰i36¢+iY{5ÁÝÔôýš×Ýê„iU›–ü2.õ½rm3r™?ê[ÍWŒPRr ¦LŒóΙŒÃîÁK¾ì;¡å"€ÂTCÄ÷©4ì²å ÊsÁ9CÏž˜4q …eHa’ãÔo¤¬Ï@4'çûÞ²&†ŽR5­ïáö_½Œßßw b%W©k¸¶¶”B){á¨#GâÂ/LFïÞU²ÛEÆ#R ÉÑ×µIø(HL>ü ž˜9· Ÿ¼xœ‚|9h¿J,Ÿõ–S\³Ãý¦ ^Z†î}ûB‹¤0¨ Ÿt"?ô‚÷/‹£¢Ì|ҲؙÅ×7\œuæzÈðû?¾_œ‹ù 6 ™Ìª \#†S÷ù÷ü§ º’3ÏMIäßÇ/~ý25œ7_ºÐ w3Ñ¿_9¦îß çœ1 Söï áʼYY¡ì¹§ ÆAû÷ ‘Åxçà X¹º©´«î}z•Òùë‡ ©×ÌÑÇŒRàWxþ{©ó?y\9ºUZp…D<Æ‘Îÿ‘·ÀǤ&ýAf-çü«#Â0fD ž}e5Ž=¼/úô.…›K£¬ÔRžÎÆL}ûŽïŽGî?Ç=p7Ø´ýØ-àÃÕËÝã+Ý %^XhnÇšª††¾ÇCiÁ²ÔÞ©|øÐËWË\Á‡4:šjoB”€„öE¬{ODKÊôs»¢J©/v6‹lk+$ÒM ª§RÊq`çrpí58{9¤ù¡W®×3Îî¹öç«\HEYW“ŽnÊÚ'¼0¼)Ë…esto³pÀ¢ pûŒw1m‚//ð¹`Ô_Vaœ¬`ã@ÙOâs5ãFtT` ALjd„ë…ÚH|©ü»šW}åÄ÷£ë_z'¾¶t¬[‹5fÒ3I È•¡w XRÖO£›p"†!¶ÍP¬D?Ì1Ö£TFp{@{zSÈ!qÒãÄ0”Mƒ<-<œ¤!»c«G…Œa¬ì‰U³C±Û~ðdcÁÇÊ|ør?ÛAªS«Ñð¡&•„ÄKè3tvFžç Ѐ¤7å(E¿å Ùn‡ë:Aù_ Ëex¦r%ŽßP§ÀÄ/HÐgØPtÐoV„d€šœÔÔ‚75CttøK0YÊð*Á3€eØIé«ÁìF\"}ò»¦³"χQT‹yÖ(Z6üåâþ ùïÓ‰èJ9)÷ŸiNʼjX §Ä6¤W†€’!Íʰ‡‰ÅBŠyžæÁT«»À"¬G“ tºâ12w¯˜À~0f°ÿAòÀ0òtpê|¾¹ˆ Žè*÷ãÅ_”W^y%;ôÐC!¥ä”h%H)­!¡œžÔ3¤dÞ¼y¢¢ê±òä]ãÊ"1ëË2= Ê üút""»áp²t¶Î…µ ânõMW/ Û›sÍÑ>¶£@0+×p'¤êÁÑoä8ÄËJ/-ÙŠè0©¥ ÐLßBøPv>åNlXÓ„Ú„a7Á [õýØÿØã·âÊš|Šl®s«ð†4¨õPà:sê@J¥pÁŒ¨ðH¢?̸+ggÉÐ#ú=ì(J |þî˜?}ú>¬ˆ‚Qu|Ç_|ÀöT ½TÞ×ÞìkA.D.›õ¾Žï Ê”:›5§¬¿-ð¸‚ÔU@¯C3Ë+P7p¿^¨ìVí%"KäÒ 1{®‚ ÚNVA{ËÆµÍ×/ž¿æA£È2ö€‰E¡€Ü#¡€Ú»ê@Ø)7£–eñµÐeE¨B8S‰ËŽ£*,ѲÊÏ2 šÑ£aÅ¢HT”—™ï|‚5 …ùŒko cœ~ͬ P$³^;õ::ö; ª] ÕÙÝô>?Ç#\žÏ ~-ÿÀØðús>¦âÚ©IÌh lk¥œÙVBZV¬Áì·? ¼›@$ó ZߟsÞ`b)H}Ñ¢–}¯–AÊÕ2#õ·3“ © Ÿx]ÚAjÛ6ré”8¤ ó±6©²BƒGÖÑ¡W¤´ÿ§´ÿåRbÎW~²òF?!]ñ0³4côº¢B_aˆÎ2Æcààø¯ÂY…÷y×C‚o;‡b0´÷ïq>¯ñ%jà>UöÇD»/äç‹‘õ&¼¤pýîß¿ôKW¡HNìø—³.ŽÁ,hê|NrÞˆ®FcĆaEpŽ‹ƒåÄ`a[òãõ·AŒÃÛ|92õíˆÏh@AýѯŒ@ÃjDw§÷÷œ‹ƒù •Ä]‚~c|€£ÅPŒ—½°»"HS‘ sæ ÙÞ¡ÏŸÒ³YgYcsr°ã ÿ±Ô=3‰÷±Fì?;#kЊ™o†ù|Î8ü]~Žs›â…ÈR¬ã(sLtËDñ…õÁrÒÖ…Ì’‚!êÇÇžW…2&ÑAaXÉ–8A37€iÿ¹B|üÀ·I;gM;v²àøi?à<Í €ü¾!¢(×Â,ðnt²Å‹ÓÄÔ¶ð}z \(+ÉÊð)ìnÐQ½Å‘È0 ¦7Ç—”@Îû¼ˆçœKI(Ix0bå}N)úsí‰ ¡6: ç´?±¥¢R\¿/cßøLáuP¯Ðö9 ño$”·ÁlÛ¦ö^òÒK/•sçÎ%H®ë â Œ5 äí`#àœKF^FaYõûÈR…,A9!Ù#F4”•UÕÍûàÇÇd¤Æ# .`ÄQVZ†~#F Q¢«òpعŒÂ¹h ´î¡ô d!dÚ›Q@J¦P6§ep®WŠ´²@P ÂOÆj—«±™óÎ)“¤+áìA`×3(±DÍb ‚€„"Uu¯êÙ¾H™Þ‰ù †æ ë°vîgÂÕ¡ J¹VÎ|øèdŒý{RÁÇÊ™×ÎêxõÁÚ ÃðწއLAîÆàKÈN¸z†·@mÃÁ'©PƒL '™Îú` )6¡¥q&{ ¤ä[…!AÚ±qÚW.Ú> ²¶íÇßZ[ËÄÀ‘C.τӞ‚„ Óë#áÖt(ÉŽÃGqÏá†ØP_Î#°" D{ôD,ž@< w #@J{ÇD€’vM,žeID,+(Ë*‘¤Ü£¥1 “!VZ¦ < ­à"?ŒÑÑPª·wá`”¬“C®©ÉÖ¬¤GÏ~½ `#èÞ¯—êD­àCA"i8±lñºifDF5€h˹P¿ÏÝÙ…ÈLMЏvÒÍé@pt !~߈ðûÈ¥ÛÔ{›Ö¿+Ciu•òÌ ™0k-Vž2æÁ¶.p7º+jÞM¯ý€à£ŠöET…)ÃG`Ó´2ÒúSF‰`"' ¹c%ˆ—•)¸\ …RªÀ xdõ|Qº¾çCbݹ_ŸØSw­cœMÙìÉ5¸1™´'W€¡”ƒûjV”ŒAºRGÊ{Hmµ&Ї3èA%Ûïõa+PY'¤üõÇ£Ú_þù ó…Ÿø#éͤ_$­"-‚½üQåäX×8“Q KXÚE¶çý¨D_ÒÙj4É$&É>8Ìí¾¢ “¥öf °©à¹†Út%/”¬¸¤Î)9çÐ\Ÿ˜g¦† #4#–„¡àh:[ƒýE/DÁ±-¹™àhkÁ'l5zÈR¼Æ–à¤Tî´—½ÛŽÛ'nBc‰º–ZÔ=rx¼û$*KqV÷‘¨‘ Ì5V+oÌÑ| «*¨“¶]œÅ¶Ñ8›à£#Ù%|L.liK=Cðq“Ÿ»g)µÔ½£ï> ¥ƒ‘>(ÅpQƒ…¬A·˜}ReøcÉl N—£;b8¥¡/Vší0l`y¼³ûQ¨Yô`TTUyG¤ 4lóG¢e;ûè%ÛujmGûªU*¯VÁ»ð«úÞJqÿ2€Ló~\«HN~;¸k'Êõ®œàJÜìCˆoCï†^7‹<¾çD…Gj]«÷×*¥Þ‡l9EÔáy9:HcL¿/EÚ ²Ø(ƒÔ¯êe0 ?iœ ÿÆ(i ,AËdãÞ¶õO´1p“±¯1) …BŸ7‘:ø÷ÕpÊë²Ë.»Œyä‘ nç|Ù²eU¼Ï?ÿ¼8úè£%%žƒöƒ‚Q¥+˜¦É Ãå}¤8çcõÿè\òù_NvíNÇ&ب€WäÏc1uÓÈd”–D‰dÀ¹Œ’ƒ3S‡Y ÙLéL'LÃUž×qÔƒ€ I•ê5 ‹^+œ‰ÒÒ¿1!R¿ë>象ýzBÊÚ¼›™²`C'í’Š*lUdzZžÊ¼W˜„lX² M«V€±BðàEMéõ )Ùüì¼(ð0 ?V«Nô®äaÀ'œ")†\!ú5Q0ÐtI‡î;%e¤Hu9[*I3B¢}Í ¸…ðAšJeTŸ‘nCVį²Ê2:‘àß(æÆ;aÆ,›ô9…ðaÀG#Ea)!pÍx“†yI¸­mÀº5°i½ªOo$JKQÛ¯Î?Ú=ÚË@J©Ž£GŸ(’-®wþ5„ø8WcO 3€h"3jÂuJJ&‘\݆¬Ó@i0è=Šþ5¡5è< £kkhP`ØÑШ=Ÿy0jx–1öŒ1À¿ñdp=´Ö7Àu2 Tö¸p®[2Wdõ1$ÈËÆ”º¡UÞ"\[vG':Ú’ ÊV,Xæ…'Iaøž>[ñ´<äI±dÚyGÓ~¯XWzÿ®à´òvUŸ{N訿î\AS7?©Ú‡be%ê3P ¬+VcÅ›|ÐTÖõ–Uµ{@ÅÔqÍì žöo?|ÐÕD#èX¯á|x„ª'™eþ$”†é?Ⱥ[xtŠ ÙõúPÑ^BÞxéM‹o†ê.}ÎÁ½Ž&Fº”t!i¥÷¯•ˆô:tIÃÆL¶3Í ˜ ê0Áí‰nHà¯Æ,¯ZT9Øø‚;Ïð/{ 1ÔÈ^p¡ÁƆ,>‚ãØšl0:_z#²úô£²ý°ˆ7ã²öQèŒì¬Â¯»Ï†„ÄÖŠ¤P*Í.ð¬fmXÊšð1_‹ ¬·ÚG!Ê9^/[¥}õ¥6ú7Ä€¬¯Êá±uK]ôÞÈ7èýÆtÜ?´1˜-»£¾$¬®«,C¬¦¦äàØvCT‡´mÅ t(øÊí†÷_!–¤Ò¹‹³9çw¨!|D,µÜ£o$Êâ –wV¦º}°À¬×¥,ʲqÜÒ6ˆŽ¿U-Áïz,À¾­5¸·ïB4w7`F"(·ËéBn»ÓûÎÀ‡:Öl&ƒŽ MHµ·ÂÖÑA¸¹CÅ›¥À=ÿ±2hÜOÿÐÚ0Ü0Í;àü…·ÎýDˆ·±Y¬ð½ÀLHõv'>‚ÙÎþ£¡n`-$2…?Äâ‡Î¢•H%;À áC@Gkç{vÎ>زŒ ÚÁV–”'+1 ‘é’µ ‹©Ù1'›ƒáÏ (º Ç},\„¢­£®¡¢ï`à­íúÅËÔ{|(PÛ¿¥Uè5´/8g{ª‘¥‚Ïê1d;s^1=˜liFErð½ÔÁ^ÏPGP©D¢º” Ñ&ÖFlX¹Áh+ps| -†(øð=Y¤´ª…jðyž2-^Æóá#hÄ×Ù–„pmp{A¤_ûfÄ7Ka91*–îèÔ÷¥œ­C7Ä´:AóºÀÜ¢ÊP>|( •1öÇc/ûx¶"C§<úéêY—Aàqí.ç Ô  ÷’ù!ÁG€k4|ä7buDqDKâ >$Ü]æe!ÃÊWa8k;ï†yŸ¡ 9ì‚÷ûÑãG0Ф7ø)Ìäד=”lèQ@”—û'I¥#žõaÃu‹+y‘*è +äϤ” .¸iᇅ–ÑKÁ‡–!åï¦ËŽÐ­ì´\lª°ƒ¶`»l“&*ÑK–!ÂrÌE¥Œ`mƒtpº;Lí+I Df!ÂãpÂþTÛÛŒô鮘m6`#:PcGñaÉzô²K°?ëýXTË$œ"P”˜Ç걊·a-kÇÒ£ÝAè`9¼Ë—ðÂjGÏÖJ;V ÍÀµ¦6‹Ž2Z;@òá뻣QZæhlÞNV=—ê›P–¨AŰX±ØÖ+>mh@Ûºžç£8lNg¶´¥÷£Ïàßë"~î#é€1ƒvqî—a²¬Ã“2‚V™F“ÈàÍx;>6×£é¸. Ìé‘„YbÁ‚Iêbψõlg† £CÝOr©Œwß  ºÀDû¿pÐ9ï}fâ?X$ÐIúkÎØ ܲ7Œ*Øö]Ú&3öžâ^)å¼éÀ*lCVO~, Fœ¢Äô0?Do³»Ì ÑêÓœPn91LH7ó EtñïpBz[ Ù„ß«¤ˆY[ð©£B©!ÌÏa@…ç-1}‰h• ¡Î¤_Ä/›]·ÜcŒ )Ÿýwl>hY–:A†ñÈ#¸B”HÏý-©*–¤Ð,‡b*9c zU5`À€ª–æ1HVMT*/…NÐrpÄ*¢*ÔJ‚ÒeéÊVŽ“†³fªÆ„Ä>´¿«,c.8àÜUÉè¦IëÜCÖcp¶Iˆ,ˆú‹Dz}!¶/ºdžÔÐA̬H™#ÍìYi¦n Íë›Q¿|­Üü¦‚>€„ðñ8€/|t`7IJŠN¦ò‚´Îè©áŒÜµ­¶:¿ùUŽ\]i‰ëÚÎA´½¼ χC+Aß¡½õƒOv5# lhCgSè>¹ªac˃kÏGþ¬©×Ï£´"áÍzuýï0¨ð·"øèÒó1ÀH!Šà#˜Q ®›.àÃ-ê’ì@øÛ…Àú%kÈ®Æò9K1lâpôèßs÷u1À0»¡¤¢‘h–ɽ0‚îÝÛ’©g¿)¸3_=qí?,œ¬ñàL{ÁðPZ8HsCïR#âÚ¯MJùÜug.uÇcC¿yú׿æ@‚oáö‡–·r%äHEIÆølòâò#Z.^™Ð îy—ªœ(¸äÈÁÅÉÎÌå ¸ËüSEàöÁ`Y-ÅzVlH/Á8„'IºUaøs¥Àh)%>¶6àèý›í=Ð3W‰hM)JŒ(x0* ņ‹5¼¯òeÈÂÕ„eÌÅ‘î@¬gøNî<Ûò9Ì9ëaÙ ,®ÀÌXKðQê˜h®pгÅëËÃ9Ê¥ö¼1_9TèdÑ1’±.™6“³Ñ¶v#²Ž( ›óŸùòû ×­m{ ªórEÅNöàw>ÙŠ¢Óäj<νœ$ËÔ×b^rÁ•Ös¸/wân¢‡TÏÙtk mȦôÄŸ+^ù (•RÞà:RüGÈg€Üå”TìTp)a0nšLˆ“$c'I!ì/åƒxhº”k±áÀ à¤0Áøû0âæ…,JD7Õë(‚Šb/ Š«fuy©…Û™=Ž,zÍyøù¤z¥‰t¦ ÷¯¢Lï—`aŸÉxP²H4KVÖ)d?hÂÈ8ÿúTÃxý£\®ÿf"„ŽãHÛ¶!H(}s®‡WÎÎTvðàÁ’¬RYÚn¸8-ë¸B&CÖQÃD"1”•DQY]ŽX4¢Bt ËxËXÃp•×CJZ榥ˎ蒴œ“jô”²0ÌD¸ŽJtv}øð­Ó{ø÷ï€8Žú¬â„ól*È\رý¨+–nNf°ò³e°3¹"ØÐË´Í÷ibŒ] †×FòLvOÔ ˜:‡Å´´êª0Âsï¢Dza$Nþ¬¾ò@=2åÔ7ðîßœBÛ ¹=„0Übü¡cQR¤»U¤³Ý,:ÖµÁÂG0Ó)!NêìHõÓ‰ã]ÀGÄBÄ´PÛ¯›‚^@p±HÝÈikð $H¾¡‚û\qé1ƒèØ¢a¬Pí¨>Šf¼ïïwg¹I“í˜õþ,Œ‘.zöïÝ=ê[‚–6\†ÐœŽìlfŒAîð(æi”À³¶o­ÒdK;²éN_ˆ\ÖFgGÒd+X2BððÜÒ|ø0X=cìw ¹ô;Kì'~3¶M'¡[Þ°–u ˆW*$Â?E8`F9ŒH‘’JÜRd:²hßÔ‚öúV¯ˆƒCôŽÐRžÄt‘¿³¹!’¶ßsÄÅ´`{¢Ë´fÌ!írTÔ¶áÚR)å …aJ*ÙYÍNG0CÓ»ýœ)€Ã¨nO>FÒþ/0ƒÕ凪L-K@êi š'f!å­RÊ¡ágÚQ_œÑ`_0Ô,g÷ÀW1À 0ü?Ðsº‰ôæºÖÈ/k>âœ=P±ÐVâ*9¦­7²Uq¤a£§ˆƒÉèŽ8,0Üí>T¤ €0ôÜØX·#©v£·MLÕ²±5Ž@™4`XqÁÁ¸@+Ò ŽªT<5ýD2†_\Hª5Aô@TrLíè™ö¬¯ÌbQïŒò|¨ÊeŒ£_²Äô¬f†m¤º!`RÄ"Q0 Hˆ.yÀ&mY¸J À}Üù9wŽò× øñ¦–α“M3ÈûPFÉÃ\ ÀoL½3··pçÝÞØÏ{áGÓ6]Q`Aó+)· ƒÝUÈ¥³H5'‘në„Fxh•ÊæƒX¤ü€·ÈûÑ©ä?\f+FJùPÖ¶¿ ×…Å9"¤–H!FþTñåIÀ«òaM/òu-VNçÀ¥&ð=ùÜí’ÚyÐ!=u‹À„TK‘gCЧFlp æ…œ”º± M¶Ôóbˆ¢Nì܃F¼%I0€4ÂH˜Þë®$e@„$– ‰EÀw4°°{ú!%}žŒè5øÿ:QÎ)á\2ÎùfO§äsFùRá?,Ky V:ZZÚ:²N§Éd°zm=,+Š>}»+OˆAÆ`˜¦ Ø6YènÍÂÍ"—ÓÉT–ÉP p¦ê«m Œë°+®‰@H©»ÔfmõCdI‡;(zæ ; då¬eˆÄ-T×Uc‡E†&՞†e›Ð¶±Fxóí"v™IÆyŠÔ>ô™iØ3‡ö~øÂ}Û5‘º KX®2ˆífäh¦ùÆðm!°EˆM }—å5¥ê3À¶~óMµ$‘Keõƒ‹4„%Ab¾aðorÕñºpÆËŸùŽ[1fCH l«ÇÃ9Ý]¾0Ùœi+õ~éòžw½àURlXü¥³¥+†ºB|O¸Â µ4t©í„ªÄ=/œý—ZtŸ¿3 n½vðºë:ÆXÏ,1•€î0©A” בEÄÔ3wÿ )©L–à€S¦(ÏÄš%ë°bÞšÀû¡ÕÌ» ½A9VÜîv‰öà í÷˜±¾J\ R7í “I!ïTÉÝc1íÍgˆ&"•&Ê鸱O4­kÄÚùkÐÑšTðQ¤ > ЭüïD6‹ÜûñSG±Ég¼.w?dO!…|;(ôþ¥Ò«„+ú‡¥Tõ|Î;s0êà‘¨é]½ƒ^Ä–ÖcÓò&HWx1ñF~ry¨\mûÝèßý ö¬¨17x©rEÃï^¼k"¤7 ̓µ' !OÓІ”HFö7„_I¬ ‘°a#µºÒ”~Çs }×8ð©ó@òÈí#Ѓ² Áº@#Öx{˜Ž”. Ë‘z±îð ü"/uÃþô8´üdéŒs¢}N"À8Ÿ ¤ŸŸ# ¦Jt3Ò Ñ¼  ó QñCHyÒœ·Oþ՘Þÿ{IIüCƘö¢h UËŽë “®+kW^²]»þ÷Ü[jzU)…”X:s:ÛRذª!RÎ8ŒÐã¡;Ù‡Éç1ÆXš€ìÖÏþqܽûžôòºÝñ )d˜”­K½*ø0,Ì ï ‘Rú^ 8»OÿqlÀ €œ°sƒ{§ihðÔSN 0å X%̈d}RåüHß“ãðŸî·¸Ú†x Z"¤ÇÎ&Õ´/q#€KHGbÇä-Ò1w܇ÃÛ´Ç”´:ň– ð*Ž*DQ¥ÀCî ÁÊ¢¬â†¸aÈÞö¤,g ¿:R‡Ìb•Dg¤ÇÉ t“q|Ê7âP§¯‚Á\D AÐÃD·'–›­ð% °|jlÄ•|0*s lŽcumÖósÌèÕ‚×7.~ø¥Iï ÊÅê “Ÿâ3Rm­De5åê¼i/X×ÌŸ@ÓìµÈ8¹ Ç!ô4‹õ2ðæÈü‚à<¨ö§{^EP6´\_'[™„’;LÔF¬™5F;8ø6~Üaؾ„aǶ̢cI2iS€q/Ò£køXH¯Ý3ù”7ïF‘ìmȂɃܼ¡­íÔæÎÔÿ|“eS J~µ$ç±NÈ5`xúÞ›.äì¢,f¾è/“êž®‹ˆ°ÑCªY䣥¤â›“€ßy?îǧ{œ°xªð*Ê à ìÀS˜#EÂ<µóB±Ìâ<@µ¸>Ìõ™hÓÛs2| aKƒF¾÷¥ˆ(Ð?qõëó $NÖðÔ#œÔ¿àf³JõugŒ] à+ð`ˆ%ðÊxàj<ÿІ² 6L"yß}÷1*ÓË(+S2’l6« „Ö]ιMÖ¸äK×ñ}or.GmmjPO” —(I0bäÀ™ö¢8ND‘c8©ã¬¨Ò™L‡÷[Qç =`å>•È|úôs ¶ç±ƒrÐÙï-xû¡©Ox|#¯Á` sÞ›S†¢{ÿt-¡Ï®uSVÎnTsCCU±·#yΰ{^täW “5]âv@¸7¥ÀC©«cÚý"Yù¿"¿É˜g+jËÑ­we^%ÖUÄ3R )ä„ ¦cþóá£AJyY^Ž‹ïýè"ÿÃB´$CÝÀm7uâÒÐ{>ògP«7-»¼Á\…"2ñïïxÞ{§ýBº¢œöÿFÇv'»Ûƒâ$ã¼AÙºÅPV­ò£v™Lf"^C&kÃÐr¥Œq¸Y®ÅÀ# lÇ®‡½N*UÝËIK ð2èX›B&e#×b뇱ŠÂG~˜ÍþRÈ¿Ì|ý„ïÐúYí­™š†q‹>ÞPé"Ûž/‡‚˜½ »DsƒÇT ÛT_,›³íid:2žˆ‡Ö0Šzaðï]5û“ï{äóßÇ.Hóš¯ ®(ó“Ï]¡yÌ` ZucW±ÇŽ™1†çøÊ ¼÷è¡ ΆzÞ­¯J‰ad{2V| áƒÓr¢"®<Õœq”T•À,7! t´´«ãù騅pòrC ÒÑëK0¿gç*Áq³÷ȉ?%åØq9”ôðœ¥qHK Æ5VbxG9,ÂYÍ!„P¯É] Xýˆ3T‰ç0Ô3 ÞŽ(èÚÄ’XM¢‰¥±ÑLaeYÌŒ¢ÍÈaŠ[‡dTyÝ,XúЕàôÀ?Œe0ÀP.£è)heY u«Ô:#F6”am÷œ‚ Ç 8Fžâôï}üÂÑ?ç,ð|ø“Iª!`¬D…vo5TÉ%íXY´“.„RGyþ¸+?Ÿ•ÿ¬³L3ð|Dh=‹!‹±ñrûñWÛ|½%Hsg§®õ;­é¸.·ÿ¶=\Èå2H5·#½) [æÀLï$ð+„¡…Rßÿä7Z@òO_tÚ3k»ýjHm·Ã[Ó銗¯ªÈ:RŽý‹¡QŽž®Šûòjä$Á G $ÞÃsRÈÎO„˜¡CƒÞÀ‘¶Okˆä ="\aÝH¿ëÍømð#¬ù˜»HBë½µÃ`0‘±3 ¿¾@³ “Õ9©„im ²Øv‘b2 Š…Ÿ‘“ÁXVÃLÀ8>ùYø™%Þûg¹Àj²‡˜:'$}0qhµHM®·%H*OˆÐ?ƾ¸?ç·Ò¹Xëý¼ã,“À_ðØDàÊÿâjY .ܲ–©~!Žãxùªc¸³íLĈ¥#–%„pAÜH4nÆÁ#†ep8®P]g…7³ ™…í¤U’¦k3D"¦%’ È"´”GƒØa)Çö dÝ .r§gëîR^,]QK¶ 4F:ó¦-Qæžý«¡„‚Gª-CÉÄI$›Óʃc^sÌ‚næÌƒµc?&}xÌÏ-ÃÞ?ä*€]@„¤å]âHx•®Bøª’¼pßøã…”“ +iOƠѽ„ð­`œã¸È4f>¤å-I_uÐÓ¯å{xLÃ(„ËòJðšˆUo^ÖÀµMQ%w 0‡N¶/¨’3Xºâ z€ÒµŒ:ø™&¤8÷£§«•Buq)}Æx‚‰®lÇàCkGSk¶ ÏÈjp»8=£p7@—ŽxE R08Y “ˬŰ·%bÅP50™Ž22ȹ$àW#˯pä—[J!Æì½òw83[͈Y™ œ1Ø)Wµ°@a0¶MîBÎTxâ„ÃF"Ó™EãºlZÙ;-Ôul…¡,åÊòZþŸœyãì²áSŸX„)ä1Rʺ‚ÊWB¨Dzn2Ï[¹§ŽY{ ¤Bå Bêðc¬Î÷Bò°R <ÕÙW+‰"^Wûû÷ü( bh%þоû¬‰áÈ•5ØK£&iáí¾MØE†®î‰úµ¬úí1ë{ }íWx¥uùÎgú Y²¦}éó~Gu³c^O"Z¿:×.ƒ«”€ëäÂê]ºK;Y±#Þ}´™YTg"ž.Åãµ+”6ž.ÃÆ*Ü–>6³Õ=‰{#LgëêW#Ýn&ªQÏRÐU?ÒæåÊ1a¢Wg죦DÎ8nmÝ5މþÑ|x4 •O+)ã¤èú%˜j`Û¾¶v1|hOÖë ì[ðäù?L:…36HÃGn+‰Á*KÒÜö±ê)N?¼`-ØÊ'~!7™kÐÊ28Ì€án-¤´¶ú™.¤j(˜\µ™T0%¸å?÷‚B ¡•ò= ܸïq¯l7TÛÄ^”ño}ôîÌç¾SŸ|ôˆ!héèÄFÒ¤ë %“E:›C7ZÎ8Έ&W¢Uâ€&›&›§ü%=a7I)3¤‚ ¤y}=:ú¿2€\ N äUʹ.,!ñ@Ä` F"®;Õ”òEÎÐzÇ c (úu É‚yq‡'Å$° ØW†@áY'ÏE„Ié]4;ìÁцnÊ‘ ޾΃fƒaNŠäw„0äzëQRSê Y8ÀTˆñ°:—~Ÿ¶¦Ð³ùûxŸ¿F5Ü3¢ øÖ$à†Fàëù}RÀØ9 0&IyÕt ÿ"Y±b>ø`A¡Y QÞ¥p,š€;öêYw÷„L Çc蕨€DTu.Ï89GÀ eÓ€*Ç™ËÙºñ›A{E!˜—âÀqrºÁVÄ%ëz$©–,¼üR ¥ uÕ J…B¸RÊ vBŽüâôe¯þaß³„/Ñ›"Ôhq26æ~¸Œ Fu…Ãë–&‘M¹êܶlÌ‚ÁÑàaðbøÐ–ó,ãlcì§czþ)ìe1#¦7Páy´KŸ‘J¹+7e•RÚ }Ãü:Ù’|øÊªèѧðr?äVàÆÉ8p™ fr ™€7 $³RÊÛ'/ÇE¹Þu™aR½NV7„T0»mQá€èsÞEu+W|cå¬ î0îá¶#SO»©Îëzåûž/„%¤¼’´Ô•2Vao‡P ¨êIÉö8JÊà;¾®IÎ|W†jH§ãp‘%‘`†ÜKƒë]ƒJJcˆ Ž ×i#KšËhðÕ½BnPbutÅ i¸Ê{Tè1ˆ»9 n ‘|è»™ïÁö»DãQôÒÝûU£iC+’+t"*3üò³†!´ÍbœÈÌÿàô“GøôBì ¸B”TŠÒ‰ÜùyW»q¼¬øÐtG~Qžj°Šqƒ×y÷ɰHÏ·,„ÓPaW‰Š„ºžýçÂ×o†@ÿh9¾)¦¢£ºë¬A´˜UÓ¦^k6m<9®ñÜ!6ݼOžTî|€Ãï`ÂÆÙìÀ£ã‡Ž2) l—Ä YÇÖù¶ [©Cº#ý³%Ê6!Ni{aÌŒT¨¥ø‡¹Rm9Âà'È+9Ä <ÀËZY¡–ײV÷ÈÁ±¤vÆ1¤£ßš½Ï÷¿rÄ̹?š3ö¥tTXL†çR5ÃL”ÀŠ•°ÂËJváýX·éT ª^ù%xÓBÈ_ôÕ™yáWÝ F^âyè /‰€»1Hn†@Ávï:>ÜŽƒì¡¸%þ²pQ$*§fAG_Q‰'"sð´¹÷¤Oï ÕÕ„Jª¡4ÎrM#ðð2®8ô~H¨ñŒ”ß!ýû¾Ç¼¼; &ö¾|—ôd‹›èV^ŽòÒRÕÑ&Mem´f³hJ§QJÚ3« z“Õë%.è€$ ! JëÆ]^÷Î_w#«¿q€o»(á…fA¹o5ˆ0Ò>JI]ÎP ›¡Ò2pÅ9 ¥LÑvTy 8)C„åĆ‹û³.²®€) +S¡Ø ’· G#,ß[ÅÓLÏ!BHq¥Î¤xQe,Ó÷jøÇèiNjõB²]àu nÒ:Ï+ÇëÏ~phÚ÷%*$–ê˜Úë0‹çÏ¥{³±8“Àí ‚§/¡  œ0x{I¾öµ¯a„ à`®ë<äX"‘P"„ f$µŒ¨ÓY·§i‚1Øíi° Ù™x±¨)uYÝDÄUð¡ÀC Фäôùê¬ø7´ ;z˜4ÍòB‡4AêJH=ððc——í3å‰?c'å˜+>{—fðB¾LZ"eŸ¯–m—„—è0#F Ræ%Q†Ê}Ë àŒ±ËÇóÂCøçˆlå÷²à~›?[(±³"ý*6¹üÜ'?Ù|?! áÃà†Žï†qÈ­'§æR6¤0“õàÃU øw'—kûüÕã~D0;뢳3WÆ`™A¹Õ°aÄg‘¶ à.˜´º†‡¬Pë5ôú nÅNʱW|ö7h¹ù黯/¥ÜÏòFVfð°iž†Àªï¶mQ‘ý,D¤‰]!8Y‘˜Œ‡Í9ƒ2Öy'`~à«Ü0ü+Ä`ñ’(¢1 ÙŒ£Â“2IÇ•(hš§g†ƒ2·‘hDA‡?+jz9$ "§˜™µ«œÅözh–iEBº¡¢_:W§®O«$U˜ð!Ä/Cì'«!}qî;§?úÐçí˜Dܪá-ôø1•£a’Už²­ÇÎè$0xì`Ì~{¶ö(øðK¶¹r¾æûp¦^·¢QÂ+«Ï®N¼‚„´ð“Î#ðdd&:uHE,̘Å+UõXŸn f‘g×uIÿÕÍ6T3¤Û…ê^5¬é뤿Ã+ÐâU‰T' Õd7?„’í4Àré"—×(1—s‘%uh};T曞¨Ç{•›0¶¹É„D´W`¤ÓWd'á5k)&;}‘GLFCøé¢zàBÞ€Wj–cØ¢(ŽYÕÓú¶ =æâ˜õ=ñ£I Î8ouÿñtüãJ˜©=þ~áËD´¤œ'Ôó~k’ͤѱ~raEA/—N˧\;ç¥Â~W¦—ëz?"1±²ž`()äg¹×.IDýìãÖa–QÌ «xêY—º½‘…„„«ãÏážÔY€•ΤÐ>o²¹ dAIqÆPÔHS¾Bz縣^ Žûß@æ‘>Hz1g QÃPáP®e!¢R$Pç”#Ë¡ ¤©3…8AIlNÑôJ!‘‘Z$* q³w°7Lá\}À4²ËHÞñ|ß×;@L…8õòÂŽê¤DOׄP9!(å¤G…ÉSnW‹&˜ö0®?O @Ý¢ú ¯f]LϹAò±€o»fذƒº–8Óª°VZ:@š,/Ô+”× ÅòLCH@”l €N¼ãš@Ó@üϩ`y9!q¥Lb˜ty¬–¸Ò¨É„ÙB€suc!Ï„\8x¼‹8ÉKGç¸d °‡¥_¿~ Ù  d©ñ ¡ŸW‚9Ž#lÛf,ãYÁ`+¸à\¨‡|·neàÑ2Ø"ööNd"LƒAˆ(8·‚†TŒ p–%Ë€ˆ¡“w¥ .s½ Htá«õвWˆë*øÂvUN¼jæûÏÞ=öD!å㤵~‰N”×á0Õ쪑jhq¾G çüï*¹1‰ž(۲Ĭfw—K\ä„ý ôý&!d$€6@ÁZ·^¨ª(˜ØÖÍ^'J€±°‘X“#Îp–2!4èÁ$7Bøˆ(ïG8Èæšü¥d;ä5Òtya‡sg‹çß[øÑ™Ó†O}ò 좜® /=öëQosƒ?IÇÑ=„ŽÐ–š S^ÃŽ•)Tö-QÇ´ãé;è¦Ò`)‹xðÁ ˃ևdŽ ÎC}6å. ¤Ù”sÃ@,¡ºÜ«®ë©ö4R­)¿wŽ^–n¢¥QÄ#q¼Œ¡<Ò…W| øØ^¶g ôB¤o¥½ldš7ÃWnθ†( ÚÂÓH˯Ízý„ãhв½pëÞ®Ò0L ŒGõà™m (vefßRà ¡ÃÐÖÈo*Xí±,Z7xD Dâqu¾¶,o<&9Rp1×hǹax)²Ÿ™ôKÝâ07&‘Mgà éDz¦ ôNɬ׎O2cѵ¤Iû“~ôG`È¡Hl5€„ðAÊÀX RĶ3`Ê –¤p‚°«\ÎQÍ{³dw@‚ü)8h0Óx½[ –E\ÆA‚ùFli`†±Q%—cþNoD`nމX˜hÅX^‚1­¥š©ÀÌžm˜Vׂ™µ­WY¦ig£ã“5’­ð`’!’(‡©Ñéà³Ç¬`2;î@ª=ÜwuwzeÓŒ±tj<Å0x^¿+² J¢ðâZvëÚ-–¼™àcc0Êd’áÂÜ$¼j-Ä&Þ4sqoô#háÃýi½îÚ–ÌAª~ŽÂkÞ¿'‰ ”ô&!Ä#nwä 9ü[…a úÀÅ>»Œ)˹†‘¨a"aY(‹Åн´­™,šSi´ ¡eÛqÐ!ÖI†,i(ñb¯ s…¢•€d5­·“Þ’â· àª2=Ùñ”´¬Åó¦ÀazÇ>GwÓ@9纟ƒ÷à#á~Z„~o)&p23¨,°Ú\ý™ÅÊòyÛ*9p†Ô‘5ŠÀÄd€+ §‚4çF¡¸EIîQhÀ°%)ï”Þt€É5ìy¹!Q¦á¤]IÒ 4Iìß"€Ù’¶“M{±çŽ”°Ôl¡õ?„TBÊç§óä—>6ŽñÀ}3Ù;Pƒ=@|ιÄ6„<èèèmmm aÝ»wç‚€DZ–ÅHEš±Œ´›RŒ p¸NZ'•ÇbH$ª`K†¶öVä²&i%Td29Ú/ ú?d 0ÏÏ%\‚¹`a9‚ r ¼ë[;Ü\y{ånˆ–S¯™ýΓ¿}ò!!ewòü¦V™ó-«]q6Ý:þ¸ÿ0ÎncŒXÜÕ[2(@äNÏr»H.O!ëäŠáƒTF}øƒ×»ÀBiEÌ‡Š­—•P3\NNg1|@ a Ò¼ð ýYí>|Õ( [;’|( … ᚤ"¿»yñr”ô±Ùožt-ÙW'óR#vQιaÞûÏÞ;áËϨ¨™WåˆÔ‡Yi@åAdS1ÄâÆV„ rk+ÈerÈ¥r€”è6 Ì|øàa\½t /ïM3¹-@`… l[;í©×T—w¨ø3‡Á"èhhE*ÝáõÕ?¦“Y´¤Œœ´¢Ñ˜QTf¤R«„çà]ÛMØb»¤—,ƒYU‚H²YWݶ#Á½kLS^®öò¦dêûód»?b2†>¢š€m }o0ÒéKZ[…$SZØ/Õ z¬CK¢ ºu 6g 1׳fU¶`VU+®_; =œ¸!÷ãVé(»Ê‰:—/ƒx>|ðR•)oklîìy÷·û¢udÔwÀ–|œç—ÛÖjxP¦wýîY/æQ‹ávÙL±â]k ‘Â&ֱſ•\’>6cU-h_4 Ùl'¤öîªïKÚã¯UÞ!»Çþ]Î5ñϑ夓^P”W©£üÔ É28b¦²HÕñZ2 Ô§3 DX6‹²\Y!Ð$€zÆà€Ã8¯dBTF„@ë¾Y¬ä€[ €%oË"ï„Pÿ6Pc0Pªh%¢ IŒƒÉ9$­3)õ&)0”Óºà'D ä slË]©ú¬K ó.6€ýH‘š~2{MÍÀó&¤[]4;D±LæåŠÈB²X(uÏJDâ<¬ S¢A£l%Ù‘ÝDºÄÖ’uu’·?¨­®û{|è…dµ‚$¬÷¼P_±€3ö¾ð)ð&¶/>¶#T†Wí3eÊ|ýë_Ç)§œ‚#™Lr‚QVV&³œ»ÈÕ_ ¼Ì!M’«€m›°Dª*cj0Бl'ð``ˆCZïHÃ0j»ÅÀ¹ 9 aVàö`ТáÃ!uxȼøeÝ•3¯›ûÚc¿y>€§8ã|˜à*7ü²ºãl-cì¯M8á¥Nü‹„|=€> æçÒø!m»0+$‘NÙê|ðQT5 L›®FEÝÀHam÷f¯Ï¡7ˆr T!Ø!˜>,³> ¥œžíðÌ£!|Õê6$­¦å‡ Æ?žöì¿¥æ‹b… ã§MÃ<Ýȯrdz0«¬ŽÕÎv¸^sI¾SZ!Lå°]™•)uOí=°Wá@œåÿŽ<ˆä~Ç~SíÓ¥‡@n–;7ßm01M†Òž1˜Uås—hµýir¶«k™LŸP9í©GM@IY<Ç]Ç·ê–NÜÓoãYõÒ¥Y0 øÓ+qdKª¢=`F">¶“³–I§`ëòÉ|ä².29çTHœ-„éÃcÖ!ö4xÌ*Áµ`ÆÊÀ ¶•ìr·s¶¾š>HÙe¾‹ÚúºUÈ?ÉQX8€àd{ÖäêñJò¹¨¶“+ègz?üb+XúxÆðÒèCžËAËÞ‰@wßšAº“^‡¼ ¿pi ”°`>ŒƒiKÆðBŸ¢dK- U±(šq""‚l­c£ÎuÑIûlC¥í".%ºÓ6&80 ìÉ‚½,ªåj«ÜGÜð<ŽBè€Ï!L­CH¨­L'yWB Î$"¦®MÝŸ–׺ÀoÀ^̯G@oL![ÎõëmR€•2„äÁˆAêæ §+ýô6¬~æiô9õ4,xø!l˜ùDÞ>Ž"œ4.u¨U;i#)#@æ…eżü¦CÀZ¥¶hoMNë”GDbŽPIÎ:/Dˆ6?P&GLRN^®‹d¬gìñIBü‰^»qwÀ£X¦M›&'Mš$¼&„lÓ¦Mlþüù&uJ·ûOšÄ8Ãh ®Î‹0€A*ՙɠªªhkË¢3i#5•w%Õ)‰Æh9 ƒg`8g€Ôù"áÝŠm1°‘d¥Îÿ“'=•R>Ýš¡žÿæcwŒ:‰Žû:ƒó³MÓØ>¸Rßë±”ôgO~åOø×K̦CNÂk)ÈJkò¸~87ßó¡óe4Ä+øÐ„ŠšL«RF¶ûoi +Á‡ãY)¥ö°XV‘÷ÃPV‡/’ïä,»ši À£>´z}Olwòf}ç‘&Ðö9G\üñýØI9ክo?tЗc @ÂYáÐ2SçÙYצeÙœ¶%Rè\Çq•.Ÿ½\ã€ý¼8 ÂÎÜÀ opeÁŒÆ<ïž™çí`ÿ½÷³£¸Ò†ßªî¾qîä „$$@ä`Œ± Ûxׯ1‡u^{½ÞµwÖapÎlc0˜ŒˆA$ ”s&ÏÍÝ]Uqºžîž;A3 ^öû÷ÀûTß¾­¾]U=Ýç­“¨=¤ 3ìÈYG¸bTt²iñbxO=ƒJ¹ ϨV} ªàž¿¬ÄK®:uõéxµ{3F2ƒÀ}Ðã pËc¶Ÿ\ëäû6éc¹í U—€”Å=PT»¦j¶/æéí/x%ÆÓï¸%ÄøŸ'uËŽ¸û™mÙh™=ÕJ‰ÆÕI¦ln3JƒeEÙÉ>P#µ ü6œìOfyWé,ïO|Hd‘@UQ§’¨ ¢X,„.gUW˜˜ž+Nö|¡Û`Ù“¨¸ò8z>91WÜç‘H‚q %ÝÉwM¸VËÓzÜwvaï#ÄåœêlœéÍŠêÔ?Û‰ûí¹Þñq«GÜõÊè:ê{ÐX|ÎMkaäïF@žœ Ôi˜DHlçüëô Ö=¡Ô=㕚„” 17=«‰µa0†b[6g!iM%ÑŸIc_©Œ®rÅJŽïãXÆÌ$a V®Âr=XRRÇì‹‚gȇ«QѨ†ƒ`#Hj‚mðh?‰”±lÍ«W %1Š‚É×[©9F­ hѰÀa@Žõ&í­0DÀGT弤@âhTTQ!Ba¾[pÎyÏ­Á¼×]{Û¼üÆ›qàÞ{Ñþ‰ObÖ+^‰ÿúqôoÝŠM7ß+VGħk6µ@°[Rœ¢f) 3iÁ\§³Þ( hAàâuíP8`[„:]Y8øHð <íË<ÆàpÞÌû˜&!'x¥¾gЍ‘e±åËϯÁÄ„‚Ï9ç\ðzzz¬”˲RûW=\nr”UÇ2þÕ–­ ,†ÞòÉd=2Ù$SIÔ³"²Ù:øþ ÞÔÕåP.W ü*ê²>,ˆ)"Ì "t¹ªÍ†¦Œ’äG¹GH®þÐÚ‡núîÉ;ŽõœówkP ´MÌ?iþfqêw*¼@„q '4V’<¨C[Å•RÕ’juÛâ¦6GàJTßXØŠK”B‰P2u F’ÝJZ¤&׫Èòa‡äƒH"cd‚ŸÜ*6³ à‡wGXCü¨ð¢ –¾ÿîúÉ²Ïø¾üÂ¥ï^õLB.¸æ¡ž‡¯¿àrËæÖ}Jß÷xšUj•’ðªÆ?Ÿ± ¹ )hŸ®;pßp«>ž}lJe'œ¶r4òáŶE y²(%2uH䚃Ø¡Z:ÔdÈÃD$“´1õ”Ó‘øa öù¨TýýøÓ¯Üû–÷¿¬Â9›g·Í"†û#ª²… š¼¨ƒe§Mü̳â68çHç:ÉïÛNs õ5tûŠ×qþ×<6ÚsѸäÈÈÚ'¨ Ó_³#”-î.‘ijBMán(Žxü…Ú´rpº7O;{ñûâ²ÇêÅ<¿}¼ŒŸfV¢›z™\–bJ\’èg˜ºÎFãsNüjòßÿx{þnL^ŒµƒÅ³’iØÆµ³X6!=˜”ñgíN<˜Ø.+_J $=ÌßšÄ¬Í JÀQpòi™ðN¥ ¬ðóZâWÜû¥To¾À´’ƒ©C T™ÀÖ\˜9<2ªÃVïŸqváÂê¤Ul)›Õp÷óÔçe-ØÔ\Ó—#F> JÜó C8+¤ÝW`bUä5úx 3DRJa—Õ…~ŠC½T„/r9#ò¡!‚m²„”«%²'ò‘°#õ›´R"ZGK6XX§1Ú<>jmÅ‚`Ù˜‘¯Ç‹÷u +WÅ ¯Îˆ¨X¥¾§ ìþGPìCð\#¦‰Db¶Åùµ&­hþ ¥º¥R½Œ±Ï™€³ýOOÄ8Ûçp­Ù®Iuíc`Q  eHX2¶\ÂAs2ÎRÝå ò®‹!!H™Î¦H9!áx ߇­`ȇkP4¨¡RQ6äDfÌ©  ,‹ZH ¦µÊœW†iè@¿ÕÊ€SyÀ²¶"° ´ÆRߦŒroÅÈ…@œßy†ˆtɠͱ(F¤cÑb41Ž%W¼âÜ öYLyë[±ç׿FõÀ´^x!z49õ o†W.cÉ?}_xÉÕ8–‹Rõ†U»¹¹†Gpº Hã;µ 9¦ö ‹õ,èC#€™Jb ;,`Àº$¾ØX= “À2ªÇ dy‰”òºÓ”úÚÀC%¬ƒòê¥ÀOcÿô´Rå‰T®5–©[éº.2™LUWHçëÖ<¬Zæq“JŠ’ô10Ô‡½{{!d®+Á™‹ÁÁ)§@ ­-)(åBHŽR1°(HQ‚6¤4ÙQ¸Fr ÄË8…5ª&P8R¥”‘”W¼o•2Å?ˆÿE‰à#N>‚fœ‚MÎ=" lTòaEäƒÚ„mÁ"„:عiqDÑ »’•`~k oAÃQ@vá±èZ» ŒÓïFnl«Ê†šŒ2K 4 JyÑŠ°G-º/†8Ij†Rê»7wÉÇ„TO !¿õê­}³_»âÖ'nzÉÓÜâg„c8ù`œÑox”ÍŠÑ8AMŒ<‹¨Æ\ª®†nW=²ëWíÄ—ŸŠ\C:nå‰oy1}E¡¯ÜÛ §¾©ú&d›)veò¢&µÚ8QI:6yž¸k‡ú+‘’F÷î–Ÿ|ïÞw½ë/iUJ}UJÉ ÁŒ¸å‹ˆ0@+ªN²•¬Av& ‹|«© ꨔçHç!ä4øûwÆk' !ù€ûâÇ㮪7W vÄK£°šû •ñpr'–»30ÃÏa5ˆW—£Ufð¬µ)ƱÐoÅjg?è¶NXøtݸ¢²½¬L@Ù´mNîk¹µZ7بÛÌQr%J¤Øª«ŒM@N°q´ tn“cÈG, "*„ªÆ'g æâqG[=œ½8À‹4<¾ ÜÄö5TñäIEú,”2NX®1Ï$%Š?oK­’AëK·?ƒ¹2N³ÚÁÒ‚Vî»ùâ2ÈJd9ÍŽ$ìÑ‚Àz@Ú@BYð¹A>à˜R4u¡žµ#ÇóPè² Ø`wc‹Ý‡——a•Ó‰óÜ9`”ćçùÆêA íè³!®ÆóÛ®$Ò·~k˜,Љ£%§¹Sñ¨&‰µ²@ñž|KÑ›óÑ×(Ðê§qßôn¼iO¬ÈúQc÷‚á-ÇyC/Hþ ˆüHNäÖa&Y·9Ò“•š ¥n–’*JwŸ¬6þîw?ÚÕÃNik†Ãù„T ÆB"ZD‹iL$Ð’Lbo¹Œžr•ˆHQ &¯³md6˜gÃv=p!©ˆ`T ù(˜m¥á(…¢*`ÈD>ذ ZÊ{PK¥€«áµ@Ò XÀƒó{Æz¡ÌïqsP5fQÈù¶¥!-=Æ}« ‘ˆÅ´Ì˜‰Ó¯y¦žxŠ7ÂnjBË{Þƒ†¥K v]D¹L,ßëïG¢¾Ó_‚¡Ë߇µÜ„“ kàz”gÛÔ8ÑP>k<®Ñ¡q€,\¾2Æ=KH _$éÚƒ~º ¨‡B–r`ŸDªWá IìtL šÌCœóWHàBMBÞû„R¿‘0% Ãù[-ÆÜåú%¼RÊq’ɤ2ÁëÐĘŸ}öÙN¥RPפaÛJY– 2B9 Bq*Ré8 d“ H¥s`Dš-rÅI$êõ9H)Mj¤§MS ¨ f8J¤êP-–Ȳ%}Ižó2õ ÈÍœLcv¯\ždd|ÈÌ¡&ù(¶œ4lÇ£ÌJR¸†|„õN4bÅ DTõK¥æ>¥pñõßXü$cü–d¾W_[áòw=µsìßµ¾Â8ÿ-·yª–|(¥^µ ßuᤢò©ã+ë ];vÂ5¤Ã¥V"!t½I²>Å]̤Æ0òµnT€R îv°º¹;L;v¾nJ{{ôDMè;Áqògà¡[Ô$¤'$Ejeª«»øV)åÝJ)¯©÷RKÀâñ>¤è“ O"ÙÒŠd]ÒÙ ¬‰} ŽR¼ih"ÿ~wÏžðþ$xäK¿ü¦oøÒW|à¹;ÇŒñE¸-=¹·51i¶¿Ðð º­Nv§`‹Õ… *31ÈÛ°ØmÄÊä^ôòRÊÆ1~=ΩNÇ¿$wÃe®O¯ÆD¤Q¦°ÜŽyåŸñ®»Iy5ä…ŠDÅ“c]狼,p À]P¸¶–„p„ÎâÙŒhAÕ×­;&SP`†œ ² V$wjì@“LáÜê 4È$6ðl[±iFóV9ðOTaúi#ŽIüN(¬CŒø~$ !]¼/‹gôáöìlÉ®F—U•=cïÁ’j+jä—J¸`ɸn÷Õ•á[T^k½>çš½ ÜÇ·¬r°¯CÏkjnÊlÄ*g?xp–žc(—çàx¿ ¤ˆÈ‡KðiÛX>Â9+Óß2mÇãÿB ˜2ÄOàð„a,™ëç0Û¯Çk̤§ê@qoWìiî– VwôQneÞIŸ9þY|~ë)àß¾ª‹†þFþÇ ÈjÀ[|M)õQ­…ýŒOuh50ÄDmPê"óbºèç›¶cj&‰Ù¹ŒLšˆ0*"Ĉä(F$}É2¹fõVªèw=|A+ö%‡ëc’HfRrºB(kˆ2–ˆ‚T()…E„‚`HˆTæf )5bkÞ"o6‚êÍY$d³$2%,b+BF¢¦´iši(À3Ö'öJhZ°~÷[Ô¥³Hd³´¯¢æÉövø…ú{ Ë—SJÀÆÓNÃþ[nÁ´… 1cFœ×¿Ç%6ã†ÿþot+„†!!–!L; Ì“,ã$qI6c RÁ¿«SIh¤aÜܘ†rœÆ6¹Paö ìÕØ¡QVÒW¤ÌiÔ+)²\Êó•R}ÈûÀ'`,%cïfJ]}:c¯~\ˆûbê—Zô)-® ‰¥asÆqáùï—åÞw2f1S|IƒÙhmmB]c¥rL’RšD{;‡ë)½'…•#™"Ö¨·¢¥Rö‘…1ã¿‹ˆ b%D©J˜ýJø*t; ûèÿ$‡8ù01E‡š†PJ@Èòá„nW!K#•¢ßQŒYIfsðÜ JU¶ èCfÎdÛÚ‘tDf e ÓýnˆGŒ€€ü'·ÒÎé, çy•|ˆ8ù-B\T#cì"‹ó‹Xy÷Ý¿8ãÎùSÉÄÖÅůþ[F–]vÇ«ïyù&n±%œ'0õL|·ªQ&eß°tliÕ…|4´ä°xÙ\ÌœÛAäÝ퉓®ÈõÌ7Ö²:öõSßìÙ‹d6‹lS#¦Ï…t. nÞWP÷ÊâT3dá²EصãC>$ª>pÑ%KpêésÏ—Ržo”îq ˆAÍ8H¯t «\²£ƒHHÇœ!‘ŽDýÓn+d§´£´¿ åb%Ja(s¹ªë@-9ïž@¥^K V:uTúñxb/¦U³Øêw¡âW1ÍÏàe•yx2µ-~SE8ønÝ“ØêôkB2›\­nL¯C«È`‰×Ž^‚€8(å[èµàtMZ–ySé³[ïù0„î|E âÊø´-p!@Êü¥—k4k,ÒøPC@èÙùÐPJ’­À‡a7/aŸ•G›Ì ]daa“Óçìý8ÉmÃ…•9¨2óýf,ó[ñW%öt¸ðæJ_ j%G䣦Å7k“ÀqYÜ·t'Võ2‰!^E­l¶{0ÈŠÈIŽâù` îr,Ë·bekN*6cg:Ë»gâ¯-»±9=€f? ° ¯< ð‘+=XêvàFMJήœ À§Ñ‘JÀõâ¸Û• ùr}…EKæàþ‡¶ X°b™¯,Û¼Lž~¹´ÔÊòêlO÷¡T(‘ë˜ô}¬éðPJ lo)1SQ²'pö~¥ð[mõèÃQû³ù@Þ•2çII t‚*…<" a7-” 0Ú m4tf>bxé\JÑ@Ŷù\58 ´%SØ[*i”©Êz·ïaБ:ΑL'€„C7¦t}Zý6W‚¼z|i6G ·à˜($f:’`¾„"WÏÄ"–K™ªdDV [>¶IÀUÀ䌊Z1.VUCJÒ!ØnfÀ"Ø+]‰06fÛßî¡ß+ýá·XpÙËÑf²o¼#¨õWÖd¤üÀ ºÎÖóϧ}[~ð}ÁŽ|û$PÏ4bY¹dM’]"°Òœfj†$XT¸pšFZÝ 8€à<9C@æ\>3q-ƽ¬©OP–À*©°Y È€¬¦$ð!„¶áàÒ³&P‚,% Æšc·ŸÁØÅùþ5‰–Øñ$‡šâœKƘoŒ[Ìb̲œã<°¤é–îÃt:‰”•…ë1J;p¤S68÷ày”ó )/½½}Vý*<¯‚dÊ>¢sö¹†‡©`àe¥yøiî´r¼oË<<ÒÜ9% ó­Ù¸¿~¾Ý¸’\\zÉ Ia“݃~^¡m—y8¯<÷¤w %-T˜ZI+ËÝi8]ŸcšÈ!ZÎKÕ€€*ù2[(¼À9ÆÚÑ¢ñï¦ÌAX \ãÕP¸ b˜ˆjI{KÒY\&°×Êc¯­a°Go7Ë^]Zˆh¾Ú§5ã´³"[ŸÅ-wm òh9ÆnGñ™`€4︣i€=¾»ƒè¦¸‹ˆF@8¶7ù–i°3]Æ–lÇO»ñ;0ò‚# ç÷+àr7\éUt2K· ®%«èºˆHõªÈ+…(£—d0È(@RÖ¨€eR¡W l„‚äd9U7; Ž@æ×ó}"´Že%c·nYTRÞ¸R)C8°^ß?øÃ*à6¢¤”¾RŠ W1·øÙ9Üb tK˜(Œ¹°,›Ì¨Œ;dùðý ª•êrM¤8 .Eú•mÈ‚åêàvöšy-`õ×þó¬ð«»¾‚H¨¸¦ôÅ—â.wJÃ7E`”øxkáD¬wzp¬ßˆ4lLCl0œßÛO•ÐÏ|¬Ëv«Tñ˜µ \rpfa¯5#äªô¹Æ‡ðšâ"8jªVÜwÆÜbI×Ä#–¥M †]»zËGE `ÈGɨN—õ>«qŒF£a,×#’ß™õÍw˜ýb¤N%£Bræs/b¯]0䣀}V!°xºúÚwá<>kœô°"Nª.B›Há¾ä.Ì@õ¾M„©m½…Ý @Ç£6¹&§0¨ê˜Sá>n}ˆ¥†=«ZóÎ;°7föàÓ @aä‹ —\Á®.-ÂH‘Ab(ü§[q YB¯SÅE=SqÂ`nm݃m™<Õ¿¨Z.«†¿qmî ¼ª´gWg`€U°&уsôv ÉpüÇááÛŸD>_@Õ3–)Ë¢“fâ’+O¡ÅŒM›»1TÆË"p‹G™íXäYCrd-’4¿ŸÞˆ¾®>,š—ÆÚ™EL/¤ÑÙàF–_ÆeK`O¶¤IÚ $üî^ÄàW ¸\ð·Q€5S Ü´LJü}”ª0ÆÇ‰ÁÙoEê’¶mÔÙêöËè­TPôâ–3.¦µFÔùà̦è[‡‘(q ã¶ìÛ¶å²Z?ªžÀ‰Ëç· Bd,åpÌí*„¹‡„ŒR˜FäËTÝ7±X_}¥ÈÍFîìAµ¹ˆD:…d]N2Aóg‚œŠ¢É&ÇÁ©Ë¦#W—4Äc$éBŽN>\RÊãÖðß›¾GV0¥&—Îß½{?ÊýCÈeÓÈÎlF¦±Ží€ƒãh‰Í4’ ÊþU%„™„˜ðe5â»~^IIý“±¤¥û=aþ!+2kZÏ÷Ÿ‹$x¨OܗܳªÓ轊ÛÏñð»©Ûqü@=6¥pno6'ȸ£ç/ø; t€ÌlµûP`lňtœæNÁ¿!Š®Ð¨"àwßùœ‰ûÈk”= ){TÊX9~­±Pc9"¹XãóoÑhÒè„‘ÈåJ…¯.±&³½) Ϻ÷æO†Ç$RÊ M ™‹¼Vôð"žJtâŠò|Ó IHîfP'*t¶¹à[€¦?qtÍ@€é0zÀðQ(LpfÍbµq¢\†‹6™Æ;óKð`jNvÛð»ìœ¡Çq£Ó>^¡ßõáƒ-z÷*S·"¸Ïç•rX˜lÀ†ô äsXÑ´ÇkÒ\Iàá)½˜ç5`[2"Ie¡Y&PfUü8·Šæ¬Ä*dk–I -‰s_¾›ž *ÌY0‚üÛ§6†c"dÓå ^C> ‚¾¥ÄûwíG×î.zÖÐ]]S\üÆØ×âáY½(%J A㳩>]é"bÞl4/X€Ç46j,$òë¸7€!#И˜LÂ"¢µ”—^· ‹#ëØhpì*ÙØ_,cÐõP>JR¢âº¨çœ _—ÆöŠ…RµŠ‚èó%ê- G1“uJ)s‹2Å•„ƒX5É•u¡ÁŒ«3$&kê”XŠ @8@hÒÈ™Àô"Hùë”dL}Ž9Vðy‹|CBâîÊ€ÅÈ ŒÅ§të‹ ó› H™ïâãiÒ`@ûÚ5æŽf¥BTA=c æ ºô'mHN‹ù½„2D•Eq09ÓßLWÀ±<(t¸QµF¸ ^—&k’ÆRÊ_\ý„R%ø2.p€¯±·Ÿ•N_ù® .ØõÃ+„¢… ‡>™ûoÿÝzìÛ5ˆ×½ÿTtÌjwˆ%ƒi UìÞ=€TÚAsÓX\ÌC&Í(–c÷ÞA N—àX¤’À‰„@CÆfÂϺ"N>h/²æþ+ÒJ©œ’Ê(“ˆ*{×åGµ”Tùó_ÿhGP‘Biƈ‹`LØ!fÝa¤”;Ãȇ’n¦à{UØÉàiÅŽÐê¶ç©UKe ŠÈ^ÕÛaýÃ%¥–F:•€}Ì4JM^̗е}dÕ­!,æveÇÈ‹| «ÀØpò!%µù ©Ø¸ö…jÕ…KÖIÁØO"“MEʶieÌc,¾a±&07Èd&x ¶%áÃB…1¸¾©dD>4LQ¹øý``Ȩ%á–*Df\$²iÊHÄ;fÝ<²šBk[fÍë@*›Š Zš~å,ŒSaL™¿˜Ô§ÿp¥s=‹»ÜÑgsÑü›þ­ô-¾x[zá6”‘i­Cª>Mn#˜T¿&*SæNÁæÕÛ#òA~ôDÚGKÃ[–B‹/-áE„´Z*CBLš ~¤yE¸ý˺ç°Ðo· ·§·S¼A/àæú-äö³ÍØ”ÄÚd/ìg²º5‹ŒÇä3èL–q€UÈ b¥(ÍjøÜº¤<ÛíA¼¡°©&IŒ'»w÷à‰§vSÐy^£ìJø&˜ÂŸ¡þ`ŠÎѸYã.­ÆBòS‚1hÑ*IMd©ÔHJ†uº_[’E"'¸-x&¤~"ÑI±Eæâ9§¶âØiùhIœZm#7¨¸ËXû#† àe€ÍoqQî îMáÀp²`(Êa‹#-vIÉáH`¾—Ã"ïø ¨žÝF‘³eB×ü6ó‘‹×qbÒ,ððx-l²¾&ìJæÉ}¬½œÀ¬¡Î-MÅ´ö|¶í rÁbÍû­©m¸º¸\ <$FkLá”óÖF¿#N¬\? w®ØŠW]¾xä”ñž8Ò1³ùþ! ì´jo\;IËÁ‚B ‹67bWc»ëKXÝ<ˆ¥ùLw³höOÕõ~ïõ{ùå«›¾?˜ôÞó‚$ [€Ýs_r࿳–M¸ê_­T±¿PBG6s(«ã’®nܲt›¶-4$ÔÛö”Jè«TQð|ôI‚PÈéÏ Çl}Œ—¬Ã@¥‚%IÆB ÒЭe¼þÒ'ÉÇ;ø–3EŒ—+„ë+Š rÑ Ïí˜ÉHƒ¬‘kŒ¢Ï€E³$°‚橚"<ܤØ-hgÀBXÌÄ—ÄC ù0à#©I>Ìg¥""b’Q§t+Ý ×,""‚M†X0…cAü@†”XDÊèÚó¦NÊV ¬1Áÿœ[ü2!Ä-§×>Ü|,p”z©%ÄqI`ÓÚ•+¿àßcúp›F4Sgá„Ó§àWßY‰{ÿº½r1fӈ׼÷ø¾‡¾¾!t÷`ê”)à–Cs(¼*Å„ýØ´i'g ©ÑF*ÅÈ} ¤\JÃ?e8 &½ùxJO#L›©aÿIYóÀ•—B©Báâ¸ï¬‚¹6†mK©î¼÷§]ûâ7?q;Žó;µñŒ>Cõ\¯ˆ|XÃí¨Ê«mRÇRÅtn¹µ¨§ZbÙG÷ÆNœ¸£óL‰ÈGTÙ;TÞ#·fk4t4Úgw kG'¶¯Ý·|ŒPÀ-+N>â¤Ãl[$a½®ŒŽ'nÅÃú§¶ÀódèC]Ñb䊿•°‘Ȥé̽j²#hak… IäK) T(£sû~p«Æ"f>ÇHiMJa·D½ˆ„8©DTáýȺdÑJi]Õžj×ÄŠÙé¤ùÝøJ6LÿUØ  Ú[Be¨!î](Ð{ù òiÆ înGà€%Q­–!{|øn•¬!vÊ¡ñ Ÿ;Âñ_åŠ7ò¡§¹w}‰ZYþò{~þÐÏû„bFø<-—*º¿E8¹ôHÇý£M¹[í·ò˜íeñdb?ëNkTfàüò ü þ¹ nKPö×U°#ÇÚcúñúm³0ÏOS-“~»m‰ã½f,«¶a¾ßó›,ÁVðã7në I¡lË ñÌ?iv;6J=%¤Co½‡uí}ØÕPÆ…ÝSñâþi8§8 ¶vãäb ÚÝTãÓ™žOþ¥mç'OïoÅ—ï:©ÏÔê’ê«g¼â¾~A±O ŒóÏèƒR¬Tj&.w3à¿Ø°©‰”g5 ¨ºd‘F@ØdIaÔ uf¬!œ[°QýÆ„ƒ]ÅÕé¯VQ¥Pòê…†m“K–TJ"#)ì–R¦$˜‰P!90#p©À!É ˜4®u, ¶·, TÊ\§„è|¦‚;3ËIsÎh\£"† X¬k( “üè8›¬¦È ¬P Z¢vøGîW„ѧ'>-ñ:+ÜÔ Ir ebCM=“CNêYØ1á]gÔ— âFšÌ´€åèT ë¤ÀÐÊÆ…Î]¼mø¸¼´"›9;•z[2¹äOϼ·ñ’;åœé˜¿´ëW÷`Å­[¨Šü¿ÙˆW¿wœ:Ó4"—ca^t߯‚s…d2‡óÏ= eìÈCŠ}gY¶ * c–é‚b>GxÕP¡"¾ÿ Yûà•SüYIuІ£jLòRÄ!jö‰— _^xûN~Âóå«®ø§g÷ã0Ex # ˆ”ò¡@_á®!‘²iÒéúàÜ9YÚ:÷õ£X 2 …±ÈG¨°Cj0vij-ÙÇôc§cÊÜ©( ±oë> õ Q- nÙÕÃŽ–³Ù|lò!dÌ+ŠÍe eɃ^kwg)Ÿp[ª‰Üˆüœ®™\¨ÆywÈÐ4mþ´PaŸ{â:v÷†½`ž‚7ä¶ jùD¤Ô´ÔgãN© \eσ[¶)ÞFšÇ#)eƒ‘îV h•5¶%)¾;ÑÒ€œÐqLµþ®ôuõ£·³Ÿæ‹ÜÏ"w;CÄès8÷€‚[v¬K!‘ ²ª#Òm*­•ŠoÈGT;ÁX@j-â„$M¡ä»pó¨\bâñ "äÎóÍúghûüÊ4ÔIsü¶8}Øa†¥¤@¸03d¹øþ¼Íáó³©ìàÄ9,Ýߌ‹:Pט…‚—œ H³ºÎ°oß¾ñµØÛUF>HJßܺA ³ý!0 @áîQÈñ„@®ÂOÀ ƒ¸Ã(Q„±|cÙP#îîØ‡ýVµr]Ý:ÔJ´°ÄmD*Ì ¥”O׃^@’ …kä÷""L JU‰¥”B7ϪUT0Åw(;ÕÊ$Yk(uîl/G9ÁxÑs*æj/ÉpvO æ fÐm—QVºËyì°ú5éhÄ?fSZÞ@ª]ÔïoF°sÏ E ©(DÑøÇ)ÿuuÐo;Ž«CaG¹ÏÃ÷îÜ®8ÃïçìÄl·»3E¼h`*6fÀýlM ÙÌú”RŸ$2($|ÏÿÐý¿9Séß{(Wü¯‹îîrÙ§Å„B9æ6X•ÏþúæÁ•ã»bržµ,ëËFÙß»\Ê~(õ$€ëôç*‰[Öjü•—³Qȯ±ŒˆX5ò¸0ÂÄÉ‡ÂØ±Š­ÐÛàÁ +• …$©a›G_…Hˆ‰]P¨x>‘:ÇB!‘Ä’H ÅqÀ@†w–ˆƒBh1dxŠKx•uº€s(:Ì”4燆Œ²iÑð˜¥Á3©nçÖXJdHX"7Ή Ï5:¸“H ZYeˆ\5KH›FÎX0ökô”3$©.æê•`1"bÈRÊÄ™ˆ`$àr… LÕín)°Ú&¿O§Kªï¦ ¾Z–ØëÓY`Yâçín¥|Û—>x¯ÿá/Ÿ‡t6Æ|÷R|ú÷Ra1†JÙÃo¾ñUNnžV‡SÎ?g½Lbʬf"TeØÉ >•£`òB~2tY–CÁª€;lÄ ²4 Ž«‡†0&fõ?hQø™RêŒanWRŽ$~Њp_ôëøž<ËuÅÿýÒ¢ï½î¾vx.X£[@”TFQ瘼HZxp¬¸’E+ø¾eó]ܶær£x2‹Sß¼ª«?Û¤€ÞÜTË6oØOä£P¸ùÖ5øøñÓkÈG8¾‘{·&¨Ø2LRHÑ®oi@]SŽVÅKýETÊðKõ—{'ª@Dd<ò!TÜ•#Vå?*‡ ôeÛú½D>å3ÊüÅ>D°¥y’16Y÷]êÌ9~&\á¡’/Ãí¬@(Z}¤q7¤+Ög˜þ)‚ïR»€¬%Èìp¤ÒIÑôL=™8 Qæ?°ñέFåcœ{Z¦5f.(ãÀ®~¸%2ïAŒˆgå‹,^ä£NÁÖÜfpÒÎQ°€ø¨ñ4p)ÓÓXÖÒ/K!~j(B÷²}[;Ñ<­‘(íVµ¯,ÎE¯U™ôœ<’Ú‡i~V¦â+ «H\Zš…Â^?NV¦ ,è«Ã ê0·/m¸‹îU8H§3#–õŒÛГÉnœ™ïÀö­ýøñW¢³«H œ xÃãžÐäã³×耢öæ4{§Æu%“ 'TÌ… ¡°¼Ú‚n»‚œt°*Ñ‹ñdºŸB£dP¨[í,‘òIVLÏV|3P¶ƒámPØofÖšªÞ#¥ú±2ä#t§çŽn«ªa‘Ö—•;xØg  Ûª`M¢;$x«4¹¨Ü†”J‚+fH¡€¤¾HEp$#—¤Ï&c…3»ëÑÐ’ƒ˜€¥JMè»ßüaM¸½jM'zúKhlJ›g¼!F‚‚`,™<¢é¿{xÕÔ–qÐ0ÃAª‰c¹ÛŒÒ=ÈCä£ÕO¡ÙMQ†°;÷@!¸¦&7Ǻ±lƒ¹¯eÆd«„ç‡uP>-L3_(‚÷<|…BUö\pvúŽî!ï[kŸóŸÛ‹“0)5J ¤|³”²²\©»•R_Cï `7ŒlÊó€¯ á¨pž0P5y•š›pÔaV5DCl5™Š¶¤R¨InXEσK°€ª þ. E&:Æ-8É$Œ'|7 ªúkTœŒÔ’"!£ô¼B–e\Uå´mHÆÂ—;}e¬"LI€Z5&Ûà3"õPQ@zœ€ip ð7§óXB’r¬jMé“ÖZFˆ Uè‹Ð’fõr4¸Ô0c}@ê6¬¹…%ÐÆL,¶$¢s >ˆ»A( …s¼ØvÑí~ÏÏy¾ÿ± Rõn€§”ŒU Þ½ù»ðªw.ÁòÍÆ‹/›Ÿ÷lZÓƒ²ïƒ1Fʪ”zöqÏï×cåÝÛ0÷8m¢|Õ,8e¤d°˜í!0´,÷°ˆ±xŘ)‡”³š `¥TËÿ@ÌÇ‹•RgùaùˆG"L5ÄCåÒó„=€æêí/þøSsKúóßû¥òð²`‰(¥¨ýÞ‰€0€ˆ£í®è[ýùZfóoè–3£d*)á•+ôo’™4ýýº(<³r;‘¢IŸ¹sï­e³Éò“{”ÍÀèÅ{ÔÒ¿’²YWŸEº> 1Û'K]GɃ_õèº3co±xÁ²"æv¥4¢{'Rœƒ”å4w |ÌÐí¡þvmë&òQ4îWERDG­s’R~¤`!is$šMuðË>ªCRÊ¡Tœ|ÔÆµÐ¶[’(;6²MuDÚbrØUÓ‰ä'_¡»Ùø]fZ•M×¥0{qíúJ(í*QÕzfò5"î‡\]!E` ±œ ÙØ‘Z¥•(QŒƒ0ó.©u}9†µÔߦ¤* ©Òô,5¨”ª^…âU>Òò(þ¡0o. ø[² l’НqQe 88ÞkÀ»€'S]˜â¥±¤Ô„ÎD9ׯ‰½õ8±;‡ú’EÄ;ž™­ìú°· hÂk™w ¡°Ç*b¯]ÂIÕf¬Lvãfk'žyt'6^·ù²¼×<T4¾/›…iÖx¿ÆK4.ÐHÅÖ}¿¡ñacmXº`‰¨è+È¢ïãŠÒT¤a¡È|¬Nt[‡À+!Kçr£ï”¡2Åo)dàE`èµ8OáMVšõç«0\ÎÚØZüó¼®´qA5I",nrû¬ îÈìÃyåvÌ÷sXè¥1Ä˨2/$$Vkrv¥úaÔ¯È:«Ô°…6åf»´¯„l ‡Ž#!šX™ŒËM·¯ÇÇÞ.À'ôÎ ªóˆKçg+S}ºÂÕf\^š† 8Rà<Õ‚GÓ½"Z0íqª¸¡}{@Ú¹w6—`bÊbð\?L™îšíŠ] ÿŽ e¿5_×øR]>o¥&Ð+P#¶/%|r?à°ž‡!#ÐàJ¥””/—J©/A©þÓ”ú5ù æ5*À<Ýd<Ô(Ö¸ñpj-ރΙèÌgÐ6â=-Lº>dËb–C$‚®—Ås*.íKÙœúB.X@+ê‹ik¨âDÀãž)LšQ¦A#ò¡AbÙÆrÂM¼ ±w:S„°t¹‘1Ã>¢m:·e ¡ï„ ”­8M9ŒwÃHñ4\ØÆ¢ÁcêM°eàšÕcܲúÕÈmSÖ8¹3àˆ$eØUʶÑJ"ÍZ-@UE݉BÕí¡t¾ŒÈÊv¥ÈŽëvÍ]ؼæoxéÕÇá=Ÿ9ïþç³ñÏï¸ÈJÕó 5‰lΩ:v±ßEÿS¸os/úΙ”‚ã¤á+¥òÊP¸ä#g%M 1l0ð˜#Pÿ¤Œ§À4Ÿ¢•©¿£(…B©úh,\…1‚"zHS±0 דAëq4¾§?Wüüð²`‰0›‘ôˆ ```'Ȇ+"´²‘j—¼ä¯ßZ÷àUÿÉ,ÖdVõc5ò4m©¬É’6ÁJÑ}=E<ýä" CeA«‚»zúp÷Š-xååÇCÊ(¨_ƲIó7Î-›H×á¹c©ƒ*Æ6,B¢!A‡ËúàZ¼ŠkÝ 47Ò´Jª8ùˆ“Ô°>‡ ˆGdŠCy%ëVíBoo‰Ð@ùÆj4 ¬Œvh/j'cÊ‚æH$l" ºïÔ%aú8º•Gö=n6=Xíª“R“œ³è“4Yžb±/Æ"&H‰fP‡w˜½,4¶d‘®sPî® Zð@Î"âaq`ªÛW,[ÁªO€ó#`ù1Éì äzE䃶óF‰M.zë“+îøáÒ¥RÇëÙ|ëìȦ÷ã£ü$œUmÅL™cºy[ÁIŒO„•©.ÌilNôÓ±ÝV‰0_æðÚÝ31o2´VIȘˠïI*T×µc³’ðìµËØk•Ø%øðÐ} €§{öam˜RµP0‹U?"…ߺQÞ†á2 ‘CÀסðmú ì7nNRãPæ©·ª»% YØ4”"L1PœÅcɤÀQabŒX^†*÷a19ìo›ñ€HJœ\ ¼ÇT·äò±Øù_Oê¹âwÎɇ)kþÖfÈ^YšŽå¶RfªMN>\”ŒŸpu²Ÿn³€`HG-ùaŠêh»Ô'Péµá´¦HöÙG?€M[—¿=¸ W½üÌÝ<ÿÃ:? ŒÛ` vˆÏµAæiBÛ‡'4z¬j˜ éÙä.®LEFÞ@Ó‘Å4`­Þ†"‹P„в·9;„D¹{%´•m"Ö^¼ðbÕ׈`Ô(VD¸ð6X–(UȰÑä‘ĬÅì €›Tºµ¦¸B“ÆL®÷@)dë*À]³€‹ç‚‘G˜n•DĤ Lɤ'ñjˆGUZð¤Tðu+Cæ6ú9$@Ç•|ÞjCžKçƒ z(šÏ…ÅH;)X^Ž/ÉѪ!Ì .2Ög;Vcƒ,!B€K EÖ Á-Ȁ촟¶‰Œ(­V[JR œŠ,#t¼Š+jœ– ":RD†[¤8˜Œd#ÉÒ¤~‘Û—g +kH“œx KRæ»ãšå™ï¦1Puö:ú\+QÅú!c6űÑ™A„LZAÆ­cu[p¦JöB`«öç=üùg«°em7^õ®“±ô´<ùðî0l-­fÈ*¦û6Ê+ÂØü«4~.c(¡èûu£PÄ•_xq4FI0…mh;Í‚96D¥:Ì ¢ð÷•çî{ù™JÉ—€¬QÊT¦8RuXŽÕsˆ»(…R¾„»ö“åÃuý õ„!"´ý³Ï½{Jý§~°ÿÚÉ[@|š\ß÷ÃzR·ÊL³Éy!™¿EîT¶w¨Ðžn¥Êäú ~9\¹¨–*ص¾H±m³šÀ-ÆbrÐ ¿ûåƒØ»o©¢A“~åÓ{qå¥ÇÅŒã/Ba”|?ˆAH%6Eép‰žMœ,±œTRC iNhnÜŠK ÐûTdùðc…ò<…dC‘Â_££ô±vÕN˜ àÆw¸$©õ‰pÈ0½¬t}³5Â'„:¼ñ` XH7ØHf9ù6W UÝÙª%¦¢‡Òž<’󸹖XÿØäç`` ‚»Мk^hP䯯±zݶ é”…äô üªR¿G}X˜.Ô°°uKÉ ÈªZ]Y¶oíÝ e!šŠ?öy¥R÷K©.Ïí¦|¿‡ëfn ™Ãt™˜D·]Â~«tH.•ký¸²<6­ø[8ÝmÅòj+:üò²‚~¯áÇ ¸†'až‘•¼‹Göz(NM…ä£Y&Ñß[ÂæŸîÁ}J“œNë.«ÂN+Tûähäãš|üx”‰”PhШ‚Áð9"À3?1Þ/Ö°ŒòŸaÂHñV"r{z69ˆ[3ãÞÈBÃGŸå£]¦†‘© óœ­ ­ŸÁŸ‹— aãgaÙÓ\]jÈGX- À(Ö²¸$<ôøÎÏ !>-ci…í3$Å2½„,‡cr¢ °šJœ"¦‰‡”6R¾  AQºõP­+šÏ t+=ŽLG6sG¿§°F“®®J.‘@5ho«ƒ±ª×†)áƒqæwLQ‡`!(pæ¾qPÎ+Tò‚úÅ·‚"%Q€1~8$Èàñ'÷`ó–>\~Áœ¸«õ™“ßið[ ‡"ã¿-K#mQŒ[‘¨„ †|H§ó1¦¨= ¡â®<°‹H¡,ÍÜ›Àk9ö¹_ùÖÕ_8uG=RVk>> ª(%öUËx(Ñ…G“݇•5y‹SÄëJóHÑfˆ `¥:°:˨†:Iðè½Aä#€ïa`›Àçäi¼òƒUÌû™ÂŠ{°òlU¦`í\Hô,–HîDœ|ø&Ðüg[ u}7˜º {4î2Ù¯ŽÕxÄÔ ù@¯ÜÑXuâÉ‚°â`<‰3½é¸ûÉú1žtÙ>Ï# ÜG­0Pu4t¯ƒÂ|£H%¡r»Û]Ìȶ,SÕã 0X$ùí`lŒèyY„V'` ÈŠEJøêdÇŠvØŒªPû÷KŸuû¹ç ˆ!ðÍ»,¿+ÏcX|Ælrç;ÄX~'–ÿÛù˜¶lJ ùˆ[˜ŒåCX@TâúoßòÚ¯íÅÑ¥Þ¯Ñ'J(pÁ‘™’%BÇkÓ R1Çù'ƒ)sZ±â¦•(–ÜÀëIBÅÕðdJ·Ÿó+½_Ü4ð­ÉX@”"¥6²€Ð‹Â#ŸXvÊ5ƒç¦ø“«aaܪù§ÂÚ_ñ9%å5Ê¥¼½ùH%à )ôõ)kÐÙ¥Ñ2½’gÔ–ýû†pûÍk°ný~ •«‡n‰|ejçì'—S¥ï ˆ_[íZCøp’@ÚNN"Ó’:âiak×e¸¥È5‚Ζ¶®O\‘?°W1õ6|ŠäÚSWgKù|ì¡mÁª™+ˆ° ÕžißùgÌ ò#¥äf¬Œã¼œÙáu›ŒÆ) œï©rAÁ-Ò=Âò9RSàl 3*² ùDzƒÛ¬k¶,GÖ¨ÕeQ"²Ñ;6iÁvœ1,“lRC¾~m'6nî'òi‚—‰ŒúBüb”Ëop½—³¦÷'#òa\KCN+C§åažhÁ£èÃx’„……^#ꔃÍö ºy8–»í8]c¶¨mHMzï2T¾ºô‹ªZ„u+ÈJ˜ífHlò± ƒÊWá¦m°> wš ‚v¡ÐüŽþ%‚jyXã“zµøŒ/E©D@žˆÇà›WòÆ^ׯ³+ò¶0‹˜ô-.p£èŸîNÃýÉ}OöXæ@±d¬j¾p2bDÔ#e¸ ŸÐŒɹVo‚Y-Ã2’ VŒä¯I,õ:ðŒÓ3Ý©hWMpU[œí”±¬Ê8ÊANeB†4j%‹ÁýKs4,Æñi)ä­Â—ò7¨Â]›ºèóÒsÁI8“¥¯t®ÿë}È\Œ"O?ó\çM­Rˆ/J?ÊöçÓ5H(ÉiL‘n:ò\bU]¨ŽA‘vÚEì¶],ð3pŒd¹7·[ÛG3ÒæPBbeìLïEi$ë2XxúqÑ7TA~°¸• Šå—Á=ýÌšN|ûGMÈÕ–+¹Sc:ŒHB¤T“UDÃ2–‘•×0Ä6!R0¥‰œ*GÂKgOFZ?ˆHxB ïºØ_ª`w¹‚îJE×#eQjP%Ts-IHر:)Ú=ZÅZf”xóM@¨,*ѤMUÝ:ÌÓ‚OQHä«UìK$Páfú.ZIŽÕÓ¨­a æÔȰ¨¨`ÂL°R‘)Ü1ý7¯V°ÆÌ*0Y*m„VeNÖœ`LÃ"‚Â¥¤ù‰g®a£½Â˜š@<ú®fž±|ø *hËl¸•ˆñ:fÌÆDY±šY`w¶MyŒ|˜aˆÎåÒÒ‰6ŠoâÆzÄÐ/­VùHÇ€ ݃œqr·*‚¡W)ì6Uê0—˜°ô®Þ‡ ¿~ÓO}iœnÅZC.%bîWÔû9Œ±«|GQVß{Ùl¥Ô£ìEÒ´ é\Z#A®2€8¨“kJéê¯KqÇõ“âTuùkS Q""*¥Ûk/»0û“[ÿV,áàB„CE£| Œ´˜(J5õ‘'‘¸O;Ó²îá«‹Ïþ³{ü¹7]ÿì}—ûJV{Û{CÝEØ–B¡âSžLZ![ä8ÐYÆîݰÒx^dêò50XÅêgöš¼ý¤LiøúsH>|>½²´[ ñá‹«¥ BÄê=ÔT»ÎwKXI •NŒê¬Ž,ɘx £ï†U¶SR©Dx Ím9›æs£ð«­Do_¥jd²2Ö"¡8D-ótGŠ š§äQH=¤\Kɬ‡Â2*}Õ cÒm²¹:XÜ>ì¡ýÂ×Á­ˆ7Ö'!Bòa\Ðt›Êea'ÒAr‚#R‘ÍÙ,èþvBÂ)y¨«t=Êd Ëä²A"6zðýøü/úf˦øÝo×ij$Lð²€AæW­xo–^ è0žÝ35°¿ÁÅ´¾DD>Œw†WñQ_MàT&®Ko¤wûX¢ RUòGxSqªLâiçN×û’°âì{l(dgxìîS C:†¡ªÑ_ªÂ[QÆÐ²*ytl;É…Ëä5HÞ dîªÇH‘ÜÎÿÕŒA'Æ“(ýÀ(û¿gHÈɯ7SqÜm?áý«çƬlAlŸ’8 xÂÞL<ê*Lx†;• òuZEÚ×$SèY<”êÁ+ËMáX1æ¡V˜bpöª!(r½ú²F¶F}xP㻯XݱdV!ó撚Ëâ&V2|ž®¯mU¢›2Æ*‚˜ WBѹL$¸¡N½„Š*àÆèj¼¼âÒXu$5LÉX€¼ª%»P“t¹âª&­rÕÄZ ™%™úQ’Œv_1ÂÁ¬.Á­ÓÈ*‰´ï!ˆÍ”á yÍ%²~´ÈHú»ûÜ"eÂc ( /Ý`èS ÄQ (N¥Gd>Ü´¦<f*׳ÀX|p'žüÎc8õŸ–ÖÆšÚ0Ð=&O RÉ|´E)õ€š7E+ KZÈMÉÀ± Uœ 4¶fu ÿi¸ñWa P4D¦XO‘ EÕW_ð Z@.&_ù ­‘‡"œÜiX¼Ö‡!§T•÷“feK^ô×VÝ}ú•}J·¦lÅ5i@c›ƒæ&ÓgððåTª ²wÕŠÜ•‰dvab>׫’!FîÒÊÄ@ǼŸ<»{í›þ"…xc¬Ð^ôß+º°R€=Ëûôjv”’h±ÑUËIøKoZ¿Û¶õÑ4¬ $ÐÞœÆÅgÍ ‚n†„nju M°àÁ¾³1wÃ3Y’¹Ä|fé±” ûÙ BynÝ~í~è™×\± ì«!"D@씄›D`,;¬Ã8ÓH¶¤êÈe%<Þr(Óß„O:ú‘ wݵ]=eŠù(˜ só3]?‚¢Wɳgµâ9»›Ñ? d|ôe}4mš(Fé'¯oæ§‘@rŒhBec“ÇfS½),‰lœïå&ÌkÚ¦â@®~W¥†xø¨†­¤}M[,°ã„ xñT¥B‚ïr7…KUçÐ'¡¼Eò¿19Pè0¯â¿˜,Sœþ0Ö¸WãÂǦô½ù½OÍI“o®Y" ð½ÐoÇñ^+NðÛpWr;ö[Ìõ[°Í@½ÊàÍ¥¥p™@!9“ìq— @ž  IãŸ4~l–ü«ÆË4>ý›Ó;O(ææeqJOs¹jke‚ë2²ØŸŽ)bÕ+ùdý#š@NÃûŠgàXÑ<â†cƒô„7¼¦4,·ZõBÞçVÅ‹BòAµ-‚í­÷ãÙg÷¡eZ –Ÿs–,;.س·×ßøŒ¶f®ÂòŒÆ-˜¹ø—rûª×ý«òë&sZøî««pŠ ç¡¾¾þ ·c»Ò„ÛS˜"±Ô›‚Ç5Ù8F´ ÎOàÁÄ.äyÇ*§W³Dh&hDKýixÆÙ‰Êïŵƒ/ÃxòÄÓÛu¼ãnŒ"%‡FMûØ0¸”·hÌ«õßÏiÌÖXŒÈe×´,¦œ¦ Jfðì©íhL&Âó ¥P©VÑY,c{>îR ®ëÁòý ÙTŠDPù:|ø¹´úÔôp8GÂÍsãº$Á†‘OIT…†ñ¹«JŸâG”´› oC¹|a\yTXwƒ A„E: ls¦|L¡ïFVw4¦˜b|û$P250Š Èj¤U”"?`Ûªñ|ᬆt„ˆ+ú?N™”Q†°°`¢5¾ªÂØèÉ\,`˜ƒŽ0𠹪h ÙòÔáã8 еÖì¦å„ÑIHÚ¸­qáG×­Æ.ŒXe uœ!ú7a¬ŒoÙ×Ñ …FYK€£ ¼$GýI˜k3ÐÊ&C.™I/\§0XÂÖ¯=Šc.˜ŠÖÛP+-Ó±uÍÎ|Xf…Gã GÓ²êîKfA©7›LF!˜r³êm®Ÿ¤òÂЬ Õo8 ¿ùñÃèÛ?dü@¥I=«Qo?ùdçë«Vy;p‘B^/‡äƒ cÎ!)–ŒK$R)¸“Æ”!Êæ$å‰Ï­xyâÄ nqàŸßwfCÆæ Ùœ‹.ÎÊ‚oVÆ*A µUÝRÁ´JH>ùáþIト‰ðýï?ßg!DëâE+aý;\ˆ*ÃÔ3ÆTëŽ>Ø!þ,õY³ê©íøÍ/¥±31qòAòÚK煤ô„d6›g¢£Ž0ù¿ƒ–ÆH·>Aûq¸U*Uñ_¼=±›Ò3ÏšV‡3–´ÁwMýˆ€¤s ´:=1aG¬ßÌ¢×î•5Ïí¾÷7tõ–7Ë\_ÆWKoݺ^þƒy…¶›aߣñ'§Åc‚ÛÝRAc¹–! \£­œÀ´ ýÍEÈé6ub¾ßŒ-vâreõxT™ÀlÑ€œJ°± ãç‚ù8°û‘ˆ|x~h ©Ò¢ŒÐPð4ZŸ³Ð×$Ð;]"‰pWNRrà•èñg`ª©_{ n‡‘ ZA,K4NÔØož9ßB³qByŸ†=ôçÇÈG¸â/$'K YAfc¥³*‡ÇH©.rP­´‰x$Ù…§œ}8σ³<2JŸ.áz€(¼À­`è‚ÂÕN``ØÖZF_½ÓZaY¦~K€i0Dòb÷XX•,5u*16ÓMØ•J<;A™ èË޳ʻñ›'\®ÉÇ ®+^æVÍB“yæ—Ì;m£&"«×lù±˜3§RÕœïÁ÷®G¡XÅ8ò#mý8K¹ýß÷ÏB\©[¼®«ñÔsàËNF}c#&e®pOjnJoEçâÔø x<¹g»³aƒ›yž£ ÈIºä:O¾ÿÓG0†<8j^Ù ¬_\λ0Ó 4j,ÓÈšŽñ¬p÷S‘ºM&pÆÔ¶0n¡ZÅ`1 }Cävåù>l€R ZŽ ‹ªµ:AA1ÇFà{®ú;ú{C@ؘO*rã*y> ¾¢FAoç]ž§áûd…‰Û8LŽÊ~U÷<|Ÿ2K 0†­’‘ÛW½q«Š 3}naAPt¿YI/WÛÔ¸pT—±¸fÀ&ï^%‚UQr>AK&÷á)ãb÷|k¶«&«U£!3MÙf  Ä¿?Þ¥¿jŒáp•!Ï WÁX¡Ê ³%M­‘ØùÛ”¤y¢Ô¼*˜¿Ù˜#<¦_q%éuf®ïyËí8ï‡/ÓîXÓ† ´í$á$ä/oˆŒ™9{”­§A©…RªÐWYJ‰”e£nJ,æLR¹¾oŸ’Â?¾ýB|÷w¡/?¦Ñ,V(-í õ1zñ#÷ÿæ¬á‰&)†“fqL9f½|&¯l)Rœ»ìAx^œ|@Jy¤úw€ü‘Á™ÊDž¡.Ë¿À˜u‘ïÉÓòaVÄBò¡Q‰emªñ ƒeBœ|¸Oi\£ºÛ“9'ýæ±ÍO\}·òÇ"ÂôLêÚÖ ¥˜VtŽãì(“vÄO/ÑôÌ“[pýua¨àE– hYH>Ò)M¹ÄpòaîÙŽ9³¨èÁDáñ`Gø\›¶ìÇ/~ó8î{0º-:šÓ`JÆÝ0ˆ„8ÉZfÌ<Êsyô‰m¡PÆÚ5;ñ‹Ÿ¯ÀÞ QwŰ¢¾}ß1†èCáK6hü ®™ÜSlј×[ïï)dä¬YƒIS‚\°:*i´¸I¸{»Ñ<­Óe#)Î-ª+=8ÙŸ‚ÓÝ™X ;Fíöd‰œdમkHˆ4­0–a¹k6?a!á2ì›Ö©”7 ªxŠâ¢ 6ÚaÄXŽoÇ䤋Ö×T@ï†Âß¼Fc©Ñóº[‹ÎƒUß¿JQÒz®ÑµJ“ÖN³µ2»?wV“{Ú³Oc¶hÄц^»‚}vëU/Îö Ë LP^Kh…kÛ?Ò¾΀|Z`sK ÇçM&6¬æu¦ù=;HöT¦I&˜-gßöƒ“—_úîU+_ù¡5¥_|öØkª®ø…ëŠË«DM-‹¨0ª©ð^Áïÿô=÷¥ÂdåûdÙ‹ÉÜe¿+¯ø•ožôÅ2á†ÖOBEoo]ù4æŸz ê[Z0žœ,fà/؈óǽcKìÃRL¥÷Åb>_x~™~ ›í^LD>Ðp;¾=tF“ë®ÛwöŒ•,áEìÓ€)ƇÒ\ˆ '/³€»Àô9&‘‘1ȯý.FH“†€ÔqŽ×ŸtÕn(ŠØ:0ˆýÈ»>ÇB±ёË!L"pàA&'$A}’ZáA¦.jÙÈU©¸%€ÌedÀt=ôU¶Z•Á~ÔÔÈŠ….F.Ê*R¡^ d9ÃãèT"°šX«NZ£^Uc éÒð4c=():†ÙT§bH je¤Ë‘ Û‘ñlœXÆ&žj7¾OËG1"!´]4UÌëXŒ`L°Ú:ÅíOàß«Ñ2y7¸f(d”¯É¼iC"¡L†¶XÅõ9PD&8P%¼€XäLew…©3P ! )ô”ñĵOcêÏgÃJX0‚úæ4Z5ùîÞÓeˆE°-nßû«³^ÿâ7>ò‰ê7Ȱ˜ 4Sš‘JæÀÓ¥gê´6œuÁ øå¯Bsã~d¿˜…ƒˆ’j¹Rò,““=€TdõLfr˜œ°ø$SÀl"YEÉõBòKÉø†§n¿øO§\r׳få¶ÅP÷{UùRªW»®ø¬&ÇTª¾£ ²~ŸY>Ì*~I`°ì÷¥*Sû—4ñ¸cˆðÅ? !fI_ž)b¤ ŽÆî ;fk2Œóƒ)K/$’.=ûôüþ×a`¨ŠBÌíªlŠ–Áâ¹ZÁ™•£þËh¨ßíÇÌ5ý›P¤ÁßÉB¢&j"«ÇcOnÓ–[PŒ­”:6ÇeçÎÿ!ÍßÃô…³‰„µù:úîŸ*âg?ºO=³ ùŠD¾dþV„ª¢·iëG𥠫L榕”JVá·Æm§Wã?Õ¸ngKù“ÿvÿ±Þ†iEgS{ ˺›ð\{2UÄi½'ãé) k\æ.&´¨ì–L}#ZgÎ@ï3ë˜7Œ‡“%DÙ•vµªPb½í^¾îIVòÊêKïTË »ybbú›Ci’’?0–6@aŠ!&@ê×äÊÖÛ¤!IÕª¹^zn\Ù>Ó;w&6!.;­!ìÒP^_9E“ÙÃ*2OP¶Õ¢3”AÎwpl>§çoKJÍë,( ï¤óJD åa ·†©eÕèùr†¹·ðæOoî½ö£3ßìyòWUWž_®Šl™HˆˆÜD+ábÉ¡=PøŽN¥,Q#Ç}cÿ3÷\ò á‰i¤òsÇu=lxüIM¦§aî’%¤3Œ!d͸5¹ãÉ>+mv?Nð§ ºbeñ"ïX´©uv".çºÇ`­ÝEVB— tò!œâÍ0Vè‘Ï·ïüø>²®"+õûðα*¡w²ÀŒÙ}†ãüT F)Ÿ>˜n”aØq’1ñ°jÉ„! '´5ÂǪÝ{°mpˆV 55BÙ ÓÒYb»Ê²)Ë–£Ác¤‚Z ò=Uñ²ƒtL-Žgæ u” ˆŒÙç˨ü?Td$7iaÃlTŒ‚’ûMv,(AÍ]JÂ6 n.ú7‘Ä2ƒ56І åX±" èV€£‘cR ®YcÔQ£Y{aÕü>æ‹bâ†ߨtK1òQ€†±~Ìf@=ý7Õ(ý@…FFŸ˜}㘑ñJô}v QÊR˜4–§ ‚ËÛè˜`?£'<’æ( ]­Ø}ÿN<øÅ‡qÁ¾qá–Uå& ‡ÅINpÔ”‚ˆ ÆQÛ·«­mÈ57ORWÉz/½|9~ªãA —ОP˜¨!.WR…Á…©“Ò6m À’‡¥vYNɬ@¥˜‡ðLÑE)`ÆaŽÞ÷×Çn¼àÒï~c |Añ8de}é;Ÿ@à2ðóÏ̃犅ժø7SlIƒVÈL±%‰¡H¡ºÀ75ñø+"‹Î¼¡O»}Wøâl?"#ȇ ‹Â¶ç6Á Çœ°{) ãg{Z¿f;~þÃ;»ÚhAÇ®zñ¬¸%(´ØµL~0Óÿ OIg*´ÝqÏszõô1<»vj夅Í8fj&œ{0KÏ‹\KŸ“¨I\¶úûŒ‰/»W¾¤ÓR?ŽÛn}"ø[yåšø¨iܧñC35Zè3‘ ¦> ÑaܲzL¾«»sÞgs,qÑ]©³NlFš9x¼¥göµ"¡pIóbœ&fÆÉðNd ,úŸ}& ôÃø?üåçìyÓ§6 ùà×v÷¸ì“om?¿ìÊ”«ò* Êdý ”Í};IÙ­ñ2M>Öa YzÑí×=ö—•}Oü)Ì€g²u ©à–Jصi3Šù"–žÞ˜4ì öøÄà§ E;’±ÅöY²ÇUÛ°Íê%²q†7 [ôö1/Ñä¤YeÐÅòDZšTºvÈõì½ùõäƒðé±ç‰1˜bƒmL©O,"¬FÍCò £ÇB4¦˜ÝT]}hΤqåâEd^æ¶ §„8©`™2P©ñÖ?#H€&±j,ý®‹ÞJ•ŠöW] ¹Êz?¤DŠ`ú‹,µœq¤,Ö@ñ#7.)|`a¯©­a3 ‡QËŠR)ÓÌ2q .÷¬†ŒxÊXL>l òÀ5ãñã'I>F“áÊd÷rÍçªqÁ’Ü”æq ÍF' Ò£ô…Õ£—IËaôȉlÄÇ+º¦úš‡z[k݉úÒÀ€õ?y‹gàä«OIâ‚e'a`wÌÂhòÈ^”=ëêûŠ8Â"¥Ü®„Ú/…˜"…Œëz˯|y@âSG¡@ìI> ïýÅòŸH)ß*#ËGH@š:¦‚±äa) Œ1$3)$ÒÝðÜ )²!L`¢?Súâ/Bà_ªž/=ßâvÿM™cŒ¼å?¶üúëžÁ”R_  ÂŒfÂÀx_“á‹ß{Uïd)äLJŸ`®WA¤&!ë)ׂe§àLÔdȈÂê§7âg?¸™ R*2fùÝAú2A¤”;¦Î;¶ÆÌðÂ… ›÷aíú=¸î÷`מ^šÏÑDÉáq@4J¢iêäšÛÆè2{A>Ø(täÉGVcÏžn<ð·gô|{ȇ±>£’Ρž•ƒ­_äš¿kcÊéG5>lâ>ÞKQÅì? »Àþ}×ö¦ÒC õ´€™d6ÌÏ—qü` @é cL‘;“kb>hõ¼JíR¡ð¿¸q`£`‘Æ›H½Æ:€¬;kMÕòWÅÜ”>†ÉI^ã«`è…¢ÝCtVh¼]ãW®lY]~‡¬Â¸–’5„¬Q qéP XâO#tÈzÜØ8l$wvi’2·%Öã]•3ÇKNpœ.@פç·|Å®v 6¿¿ú2ãŒã½[Ž%%7A×R5ñVjR.ãÙLà|ß5)’C·³Öª+ÞS[“â¿~vàþ÷\Ýüp¡"NÐó÷/š4ÿƒÉÎ7Yò± ?ÃÏu¿«Ï)þ,<ï•Ò¿¾H C>d öìÅßþø',9ûL´NŸ6‚"7!…eb:ž¶÷‘‰Ó¼™¸/±%¹UÎ^¼Ì[€Œ´Mü'ˆ¸L‘9| rT ˆ¸[æû2sÑ‚4lX#,]½}|ä_¯Çý¬Cþ¬ñ(Æv ¸e¡‘sL—SLúÖ¸›•'ã€ÅZa‚Ïû0hY8ï„…È$Ê„5¦ÌýÙ©%’ƺáJŠû ²ÑU©¢»RÁ@Õ%Òá  l@‚2lY&àœR⌇¹Ø­X} R>uÛ¬æ1E’# H("\E7ÄÎ|.Å”xßX ‹g&páJ}mÚÙZE„A}Ã]]gÙôÁY>M*Þ¹ 8ÁŠ”ûZQñÔÎãü&›``âqñk‘fÛÑàã\‚!]5AôµsÙ#ý šÝ‚w>½CÜJOÞ~,Y@¸!" ˜qÆ«ÿ¶GAþÓy?‘B¾-n/,f"f¤”ÊÑä¼—~Cù jä¯Z©x9F‘{~zê|¬‘R&…ˆ)ÚJ!“«Çé—\JõW” ^´}[V¢\­@s|ÌÔí á¿ó—?íüq}Ú¶s)«j[ìóŸ½aËçñw•·\Ôî»ÞÂ'SBc/ j•¤m†cŽ?3æÍG¶¡$/@224XÀšÕ›ðçëïEÿ`9,2W 7†€dŽ"û¾ø¾“r­õNŽ, D”ƒ"­‰t6$§Œ {ÒR“FÑbVª±9rçœpü†éÄa–øëÚ߃îîAlÛ¾7ÿõ ²ˆè-¢¯¿€ƒÉ²…MxÏUó¢T¡¦Ÿv2 fÙôY) LÓnhÍí`ŒÒõ àÉTôÞ=ÊDÕ§};öе=ùÀJôö‘ëÑ®ÝÝdå2ÃIJI¯PÍ ZÒÙGnWäMPx™qº0f ø¥Y-Ê0û/cÔ®‚òŠP¬Ã',‰Ë/Ý15ñÞuó3-2e˜-*BškkCCÇ"Ø ~´˜7õÿá;îÇÓ=r? 4$Êž¼òO·çoŽfªq»‘ìÔø³!qÍò(x{bT˜oÂñ.0üŠÆmà%O7ÕÏèIük&ÏøI«3¨T‚˜g^t6–ŸÚˆþ®¶öaµ½WU— È\ܘ|ŽÔoפcˆUð†ê©X,¦JjÅÅY/þÌXlíV/ê¹~Øœ¾ÀLá‚—îê(¼}㼺ٕº°p¬´Pß1 õ-³Á­Ã3émZù8öoßiŠøpÃjÞBêÏßñ<ñ±ûþ~5rÁÙé„竽ïë¾Pí 8 —§¡(Þãfmõ8€IÊÝ?=åáËï )냚DD‚ElÎ(:N¡©½ ÓŽtsã°…ÜuV¾›z qùbéb8ÊÂR“U‹\ýïMìÞ‹_¤žÂ<ÑŒ·TG.pý*ù4Nógà8ÑŽ¸ôôð/Ÿ¾O¯Þ…1d‡ÆåzÞ׎K@Z,f I¥jI‡ic®(µŸãûjVâËæ)³ß8#òd‹Z›qþ¬ihN%1Q1ifJ>¤„ÉxUòâq \A§F¥ŠŠç‘fÒá˜e@Ak (ÒçØ*w2$,ÌbEþêR¢]úXÈW+k dŒÈœŒL[æø‚2Y¥ŒE$Á€³:Ÿ%և鮣‡K˜‚~®éʈ’k2_ÏV q™ìõE¿kåràå28;’¢ âÂ'jª©û"†ÿ-; îLïØò…˜5B`ëÓObpÿ¾Ð 8gŸ9íÊ»ÿGAøÝÙ'(¥‘¾ÈÅɇçKRrN¿ìr$3™ÃR[Î}É¿#_˜¹ëÇË,0ö¥Ô»Cò¡4„†’X|úÙ˜µpŽ”H0 uíÄÀÎ ¨¸ükƒïyëÿÛÞ‹½K¤.8Ç?sƾýŸÜ,p”åÁëÏ™)<ÿFáËSF'2$ DXs 8áìóPרD®:/QJ¡¯»¿ýù_°iÃ.«é4畱}¨û4.ùÑ'Ný/)ä‹‹˜FDN Ь‡Ž­á8Kc*•Dc[;M"×€tû XŠSý ŠÍã‘9ôHIµREa¨ˆ‡x>¼Ûw÷P,ÐPÙŸŒ¯øÀçNûñ%§wü“”2-¥‹x†‰+lǦþëmr¡¬Ëdi1#3g>œD’êtØÜ6nËG>d¿8”Ga`«y;6oG•VûÂM‰(¢jÈyˆLW0®AßÖäãqsjŒ{b–ÆóMlUsäÚBÊüýßzüÏ/ä_¡aÒn[Ô&ÒSOB:W7NôáÏc{+n{ñØB…гÞqÛߊÙPȸLãˆäåß2îXqùÞ2ÉËÍw—«4ÎÒøµ D/½ø©†¾óž©¯ëIz˜·ÎÁòÁÍÝy—œƒ³_|Ú˜]ÌÞ‰;XæOÇ|ÑŠE²]Þ€“üiȪêY •Ї—¾â¿18TÆR9ùú+1ÀÛÚKÉ÷~tÕ±¾ «ãj"Œ†|0Ý&36š§ˆT]ŒFñU õôáÉ;ÐíŒÚ ¦¯âÊOág>‡qD[p¦8e<èqMþ¢çë®Ä@›ÌàC•³Ð¨RáX}%õvZxSåd´ª,öñ<Îñ)Œ“Îe…9Y´vâŽòft~`?e]èÐOèñø Æö2@³v8ö\®Ø8-‹"ì×è4$$o”UÇâx‹¶ˆ,hnœù02* !âa¬ž”(û‚Ȇ&è,•ѧ·Ë® %|¤”$’ťċÕ1¸>KK–@Ñ1îY)042…´! «ò}̃Äln,±TÄ¿f¯!%®©«1(A„§•â+ ñ;_Õ|ÅNŒ$[,FÆòÆÊQ2–Ž’ù\†ÉöÅy&`;ÁpØ"L€{Ý[Þ€äÝ÷ÂÛ»ï d‚ãà"Çx„ñI"Q“"T4n–I÷Ы€¾LoÜü_ˆËÞkq`ûzXp+η0Î.Yvéí[pä¾_~¥R+¹‚ù¾„ç  bï…ÿðZdŽ)Oˆ€Üù£eö YC>¤D®¹§¼ø¥He²8’"4ömGï¦Õ({Ã2N‘i~Û¶ÊV=ã¾=›²:rI ŽMÅJßÏ-û{ÿöÛ5GYîýùi3„·J)—ŒB>h†|ЋHöm´Í˜‰öyÇéqk -·ÿS±CC¸ïöñðŠ'ÃUà Û•$¥Z›Ú0½± ÍéÜ—Ü… v7‘†ÍV‘‘•Æ>€¸¼¡z"–‰©H˜åòí]ø}b ˆœ Úð7g¾P~jEJ…÷lÿ+nÙ±íŸâã ÿo4ù¸ûìÈ­¤–€DÄbŒm6ÁÁê0ß{B⇫×ã:3Ö¢–¦ZB1â³±€ŒéråË ÆÇëQõÅ"3¬¸.lßGN XP€2îDŒÁåãPœ›ß)A®†P²†`³(6¥Ö=+ @t¾R¡A©0Å.#΂aägU¸ÎL«‹ý0Çe1¶%„al‘„‘Ù"ˆp™ï¬šz.ž2÷ÁT<‡q 0í†t9Gè±^U@aɉèøà{!4OØä\®¨µÌµ_âM3®²†HB ŸÜ¶Ç£²g'ª¦P­ø$d>ãì÷NÅQ½ññ¿ÜñÃ¥ŸB}ÚõDD@\O¯xç^yÙøôõ.¤š‚ ±•íˆ|,é¥páªÌ!þÞè1? Óæ Ü×®íÔžyµµñFÖ[Ë>¿5™´‘´98÷𱯼ù”/~üOýGQ^ü–'öÜþÃ¥J¥îR-•±Õo!MåñáäƒÏ|OÄ@/¼E'";m&)¡Öß½RÃ3­ÆŠ»Á¾½½Q€~”jw<òÑ…Ë4ùx ^úާWüõ{'ݬ€+ãäCiXì‘äƒÀæ–n :iå›ñÝTD/‘ž(æu ¦~ÓänªR¡„?üäìØ¶VùM-²| hTÜ ‘_Bá˺ÏëaÄê#J©§dôwaÞwÌ.ƒšmËæô=Ó­Ôû|K·•!¸¢»Èa9Ûà$›a§²H¦ÛõgnMŽ„1ë6ãÉ{cH3VC@ŒµKbÐ$Ðûã )6BáûºÏ׎uAB.Óø¦Æ¿iÌ7$AcHä#S¯¸«üÌí—^Ëm~!·¸cž©ãð]O£€D:q4h„©3›áJfÈGpO‘QdPãFr—Æï4~kHÖ¿˜”­O™@ò3ÀpË$ƒÑ+ÕÚèÃ7¡à%«üóÇgð€žz/ˆùè¶>¶ WüãùÄÅh2„Š&Qv¤+S;SÖa ïÂébž±öàT¿ï|Ãز¡wýmF.ùyz½äMºÐtñëŒ3pº‡‰„÷+醬æƼDÇ·ÍjA]S»zL`nLÖÆc+.Õžù^ rÕÖ¼äú¯/þoÇ¶ÞæØvw,¬›V„Îö†“1·”ÃúæžÚ‹œìF“Lãôü4,)tà†öýaÚö<+j„bEŽ—MHÇ3D;nÇ&«G£ùs ˜‹G­}`æëc¿½j%nè^~T6ì?Ðäã=˜€Øq¢aFO«ç3¥z¶#‰Ç¯ÖlÂ?7'¶·Ì´?¦Ë•'ÉÝŠ‚Ë÷K„B¹ø.²BPqAiH‡oYÜ¢#”¤ùU€IÏëRm©Z=ri V_Õøæ1F­ÐmžstI´ ,ü  òøãܸeå 80 ‹’dQ­‘‘$d|pbQkQÑ‘ˆ“JC:M©¬A’Î{dDÁÄšœu&’¶ò$ÿ-‹“†š>£æ{a²Zlâä-~^¨‘Y¼|s^¡Ì5só@îÜÉ ‰HȉkîÅœpþMŸÁQß—ë=Oxž'ϧ@<"!”¹B‰±èñ„ OTýDdýršÎf1p`¿ñë Ðç`÷1 ÁUð3ÛæÜJQÔ8X]}dùˆVˆ Éî+ûø.+Ë÷9–…l’ƒq6‹qþkß}ο*¥¾=ÌuA©-ýÉcÏáÉ%ïz¦÷¯ß?é")Õ ©ä‰qòAÉ ÂÕïHµ8‡°ú·­GiÿN$³d¦ÍF*Ó‹+0ëhFÿïßÝ…U®Æ¶M»ÐÓ3„¹Q˜(æc|ò± Wò§ÿ"•’B©WËxH>FWÆ9'˜mÎélTÔÒSp+.ÊC›Á%‡ŽdÛ4¤[Z‘L¥`M€A?yÿ3X©ÑÓ;(ÜFÉ,i”}T¼qÉGÅÔvøv™ÕÿøûmTê“Rª7 ©I³èõÑÖàAK}¥þÇ݆os)QUp+Ý`ƒ]àönZQN×OEª©ÞÕñû]Ê—ðÄ£ï@oT‡­CËGD>hÎ%íäc•ÆO4®?D×”ÅG0H› p%€·jœNþö1YzÉm·?÷·+ªÌ⎱,Óü»•*Ån؉FŸHލKØ—\S˜4º÷ÏŸ¿ˆŸ¿eƒ¼?Fú (ÙÅ»L<ÈkHÕçû3€šþ}Yc &'%“1ì/Pø€W,Ø”¼æÎÄ•³×;Ø<½Œ=m\_ᔋQ&4NíxÊêD\îr6àjw1ÎôÛ°ÂÞ‚©Ê¡.|æS!‘þzdž±ÔÜù«óZ¹Å–3‹òÁAÛŽ…T] ÉŒƪ‡I£ïIàE¯>7ÿrwöù0.ƒ0$ú-›¾îžË{ð’×~dÝÇ>~Çœµ^ŸénðgåÓ>eŽMYœPnÁí{Pt|”¸À^ACÁÁn‰‚‚#h\)n9Á ˇiÖZÐÇ‘õ°Á‘€Â~î·ƒ!d%¬*ïÃmƒà>TÂm³v#_òàÍ>óƒr˜Çj‡ýÛD¤'(¶CMmÖ«‘äa;>ùàc(njÇÚ° Éf5ä&l.—+" ¥ v‹è.–àW*Hø)%@•q"°¤YÇACÂAÎqˆ€pÆ(f¤§R ]¸\Ý2("õÈ*…DÌâ B+Ad¡‘ºu-›Rêæ” ²â°ØMrßB$ISGÄcQêÛdìüJ!¦ML]äFI±y—±†2ÖWe~/m\¬±Â‰“•ñÝÅ|ì—€°zá2VëÊ6¡ðÑÚ´¼$¼¦>£qÿ|Ê@šqÀ(©‘-³]P@>Ö*å uS¦ Ò½®çò‘„nÿmý#¯Ú~ÜY7ü GXÊe/-•bž¸`¹Ï·.UÅ¥ë¬ v”2™ ¡‚6p/ I|oç>ZÑ'%ˬr' 8ƒ;ÆW8IŸF+2H–O·&•¡VàOÀ5­‘j}_âºû¶•ÿá‚c?>Tò,ß÷ßÝšK ›²Á˜´ª®; JÍbŒ½–G® {¾öŽ3·ÚNâÛÉTö¾wý¶>¦\þžÕ}þö‰—J©þ¢±Œ s¿±ãJwèŽÅu«lW¸%o×zTL×!™©'¥“ˆC^q½r±‚waÓs›Ñµ·EûMiräã^£ÉÇ£¨‘—¿wõFWýéÚΗJ}š1Þlq“1.èÿ˶2¶Y95.‘òmÆÄT¿j¿˜:0žðè¾(lÛ{÷Ôµµ£~j;Réä˜ùôžyx-ºóqzËGhá Ý®†wt7zÍ` [t_Ç,|Åûžu|ñO×ÿ;©Ôkö:>¼Ï ÇóOûˆ„0›úOÛÜl³š¾KoY­@_0JÝH¦ÓÈÌšT&E|ù(D¤RªâÑ[5ùèê]W¨NT MC„cQ(KOÏùZ² µÞ¸Imҫݨ‘IZA~ …'¨H!ÃÍPø+eÇE˜Å¿Ã-þ C>‚1ð|¸¥ñÑspáù³uv¤QK?\¹¿¯|_[K&Iï?"‘d]uM)XvÍ¢¿æÎ„HÈËþátüü›÷¢K.hå϶ AïãŒpúP;^Þ3yæbf>‰_NÛ Tha. ãô<¬¤'i)ïD¦8)a‘þºgp{SûvõaƒÜ‹í×7bcWv.rQhñáK£%Tg;F’à{`ø„¶p•'E@adAf€±Èø1 _˹¿°¨%T|îÝ?!¢¥¿tËÕÞb ;ó ”JU–ôƒô°Ü‚ ?PY'Ƥƒæd‚ÈGÖv´ˆÒ‹#ïytyXÌ0·z›— *~ƒA˜ô¹uë!ÀP¶mtúõJ¡ÁX0T|l!0›å¿Å9Wx5±JMÌýˆ¬lNbEжI±Œ$‹Å™}ì0««KÄÆ¥¦‚ùn0´&⑌2V+5J ú(YÅZVßbÅ·M_dœLŒq¡ÌïÅÈš‡²F· ×XôŠéˆZI$8‘|ç^ à<´€€qæ0Æ>¤IÈ-š„ôãÉuÿµy¾\(„²=_ñp èש&¸âtß)qÊCR©[¥T—‘ÎfVzRª[YÅfz[RË¡ô¶²L )”®\JAÛñâSaнˆ“7$¤X)¥~ ¿_±¹tÅé3ÿ©TQ¹rÕ{]S6ÁêÒÝQ‘ÔTÒçä:C1ÌØùÜâýòS¯ý8ûÛ>ó{uXæ÷÷?·çúo,~%cì/œó“áä#L``;D>4¬àþ±ƒV2†j¡¿ZAµ˜ˆÅ‘Lgô¶ ˱¡Œ%iud›WoÁP^“ŽШº¤tÇ}ÿ#òAnWñÀã(ävõ$Æ‘WpÍýäÇ^#+~sÎåœóVÆ9§~’[¼ÃŒE½!5ÕïM+ )5(—ó耵m;š§µcú¢Ù`l¸å}ÝSÛñ·[A™ˆG¨´ˇ@É «ßi|Š¿Gtÿ6a2B}^»Àbò·_Ÿ=“söbÆ™é3_¦ñ&¤ÞÖ°@ß“E>ìóp&<ñ|¿«:ЃtS#šç´#SŸC$Õ²‡‡oY‰Þ®°‹÷p%Ê‘ÿ|µâɇ\O]çú²ôÔÓîpäe¾Æ<„ÂÝ&¸: …¾ˆ˜p‹ÿœs~  f(… ïJÂ÷\¿ ËvŽF`> _¶O<Û¬3Ä{ñŒõã¶š¾#ô|bPd5s1yÐè7Yµ ïýJë¿y¾º¶è Ò{o+ö=¸¬_PV´rÅÇÀ¹ƒló‘ÙͱmGzÛ}”(«lä‰Ä+€húÞ§àOQб &]ö¯4ù˜„؉7 ZëÉx$dtkIä6Ê96õöcÏP3êë&D>*A 9Y=ö ¡\*û‘ƒ"· l‰„ƒ¦d-m© d›\®,ÎÀ¢òˆÌ]U_ÀQMHC†¶ó"8¹pyŒÓïC.H$âV)ÉÚ2Ä-t VãþcÀ'PÊ‹AB Áe˜lLQcg¸Šzp³~ÅÉ ‹2EÉ…„E$UD¼"k@ ɨ% ²¦Ê@˜Ô¾ùÖVœ}áyT”2õ‰Fåï3jd@¹‡ñÚô¿µä'Ú&ðZÒ2ö˜‰²€õ)`¯ÔPÀÒWŸ€“¯9 P.j…CiÒáWPãÐà1åA-UJÞ»î¡W^²øœ»pdä|_þ‹)à¡Ä8íE'ª‚C•›vÓy&*¯xÿså?~óøoJ…‹cNÙ‡‚ìˆ|D°[e˜è Q‹*¼“‚*›q3ª.>Ìòá¡R ÜI*õãnÁÈÍ﮹dé¿Pvß”NXHXÍ̦m´×§‘Ë’U~OxUxUûÛIœcó$;«h¯ýðº]7|{É%œóëqøxÌåÈ›Z¦ŽQ¸š¨Á9õ½êQ)  Œ“D*‰DSNƧ×7«¡ð^ÕÅî {ѽ·ûv쇎]è?*£ÅŠÉzTnùPU~kŠ5>‰C” ^ÿÐ_Gd °î¡«,0ü‡QÀߤ¤š¥¿?D>âYÐ4*å*ú  ·«3MGó”úÀ ¡·€»nx$Êîdªß–üxÊ?PŒðº_ GA.|ÃûM?ã}þ€Ö¬¸ò"fñógÇ0†k”’q‹ µ2$_&կ鱳[÷¹­³1}a”vÕƒkÑÓ9ÔM0>óDÀÌÜW=µßõÔ…T÷ÝtW᾿cÉ‘—Ä\Ú†P#‹Ïùó¦ ¾ª_)Ìúo¬^n©L«à GC\7zFÑ}[`*»±û7t ­µ´-„ Püg˜íNíù€‡¦•Ó˜_ªG»ŸFG5ç²ýØšÄôTZ“L+%±9Íñ¢¾¬lêź†!¹ó“æy¨0äli*aZ ŸÆF m½ÝÍŠ ­Ë’w€Æ½áo@é¿]¡îN†Ò™ òá@á%Ú»‡ ¶SC,>^‘¯ƒÄ…¨Ø qÅ9©x>Vj+Èôܼƒ‘r‘ê)•±+ŸG×Pn¹LŠ¿Ç-x¶„“$—®¶T’ДLÅ#aq8¡’øŠ×)Uï¾b}• ¸ç¢Q $!სÌÓ²lÔqߟªÔ2ìmÄ…> ÊÈŒPŠ]¸±×&øHw7YCî"ÅzüÕ}Æ¢9ãÊÏLjƒÅbʾqÏæ8nVþP”@ÙSL“ÒpŒ¥¨Îl;1kŠÔ¨BƒÎkܯ4úʬ½ë>ä×nÀ¬”ƒ-°L¼‰mÎÁ•é¹>YÓGŽh?"‚lú'Q_9‹ÈЍ!OdÉRDì7½XêÝʼ&\põñxÑ»N#eYÁbA"Ûœ†‚K¾é`ÆA…Þ¥Pê§.ÇaÊ/>{l³ïË÷ !Mæ+C@\‰º¦:Ø äuNª²1äß0†¼æCkïùÃ7Ox̶ø¹¶ÃÉú1ù°âäÃ|ˆØ whõЭGÊå¸äCï+ !¿ñÑo!Õ;ýª·»\õ®aÀ©œ!NÖžé-hËÀ8] â?û·«³oýÂ~ŠÃ”W½ÿÙý·þèÔOØ–µZã½z\ζB>Šÿ¿±¤q*^q7_z¨J…bߨ^&ìŒÜô r-i”}tmëF×În«R±B/p"U*¢¥0€SÒv¡{‘M>6™ Ûÿ¦‚sG\Hù&)Ö?|ÕW•RŽ’ò(õR%äeRȦ€|ÔÏÄiìܸ[×íÅ9/_‚öxàŽgQ2}-R¶+ÊtEÐû·J©~mê¸ø’.øË=îÑŠ·àCJ)¥¾¡Û™JÊóCâ%DeÐÀ«bûê¼&`CX|ÖžÅ(r×ê.À§Î_ÜòG¥Ô÷|©Î(Jߪz‚Ï´æ4ÒÉ ';X0„R©d2ûæ/ÿãõìMŸùÍOp˜rÙ;ŸT~»âºsî´´»mó—pÛjF>,B 9S¦îŠS«ˆª¢ÔŠç šç¤°såBU7¶‚èÊòa\oâä£ä–*¹1Ô’ ?ã7jâ± '9îì?™Íë ñÌ/[¬„œ.}ùÂS…'æëGX ¬€úyçõO§èÜ7Ëð$0º]É]Rª—o^/×ã"‹Î¼ÁЋ@Þðìß.kRJÍ“R¾Nc¹ôÄéB;$ažQÞŒ²¶kãtí$‚].{ÒVõÃ@óŠ'”/Ô1Æ>û‹›ÜÀÊð¹DlGº >¥ÞÅÿ˜Â—Æ"ÂŽ’D*Eäc’±7˜€óvŒ”™7dd²äúwq=¯ ÿ’]Ͼ7è²Tqª„Rà%'7Íßæ‡íüõŸ?së‹Îšu;³ø›Èb "ª†|˜z@¾0ÛµäÃÜÃÁ³ÝX=hÛT¦§g!æv¥XA¼à™u·~>=†’(ÌðfÏ›ghi7Ž)½W?º½uÏ/¾ºáÔ*”Z …¼jŠ›:Oqê™]-ÉçêûñãEÛ‘®p”,Ÿ¬ÂŒ)mkìk©bVÚB²(šññJ 7qhô g(Ôÿ†A´É ìIÉ䎮ßâ\1­ñ|L‡ú‡e[5DÀªUbÇ!eŸŒ¹¥” ñN@ˆd<¡­ ÏŸS«¬‡ä£¯\Æö¾~t Áó}ø– +™"ÒÒ®¡-¨O8HÛ6nÁæT¹<ÞzH¸B‰ØQ(b¿†¬V>àZ˜>gk&Žt­úœuŽ F±";­bü.˜tV×ÔÄÈšØ&%ªœ¡íJ 1æŠ%‡¹&E"b$µÕ¶ä/jâ!ji^«TÇöÛ1§T ÎFM AˆÎë›@ëØcŽof@*Vʶd”mÛQÉŒ"vÍhiÁœw¼ 3§¶#›É gÍzt~ù±Ð¨tvR J¿6w±Nä‚óÒØÎ2õQdeòRÑøÕÚôíp|#’…QƱó•M¡Èû4ªË^3ç¿u”*G³ ÆM$')‘Êp”ó¾F>4TN·ß^u÷%Uá‹[O¹ä®ALB~þ™ùuJá×BÈKÅ5 à•ÙØo4>ù¶ÊÕÇþÈé)6È~IÁêRP†¿³cu¹c}2€)•1D1s„„Ĭ ^Ó§! ñù¾`’¡Š4 &Fuû*^(BóGµrþ%^š¦Vás>«á›tÍ?Ãàñ¸ ñ¿õ§nÉ¥U柩ZïïËTg¼ýÙé]_?uÛ˜wá²uuØ—­`{G…HÈöéULßá b hWÚ’Ü©Òyå°*nìû'WYªn”ÍD„òf ùš˜…‡L@'l¬øqjYÄ#¬J•˜bm“ù‰ÕuE„AR ú@±„m808H®PH¥‘ÓèȦ1%¦´X;8c„U½•¢ W}Õ*v è)Á«$…¸Ö8Ò™ :êê03“¦’ŒcÁæÁˆ¤m‹Ü¶Tª¨TݘÆÎà"p}€RHIElÐvP Q?Gµ@D@͸ ®áÔ’øgž7l©xË‹j\– bY² Ñ("P´ûURÒ2× 3 )Hj8æ\ESÅ=Sö¹ù}×(ïÛæÎœŽeKO@GGúÓ 4B—›yp^(Tò‘/1 .‘ºa&ÈϘ\ðûñ“ó^÷ÈÿyËwNúŽî÷­º¯ËåCÃ7}%Ù2µ-0PòiÛò“›×Éuø_&g^µâ/þrï/N{³ðÄÏ]WDä#lŸ‡¬I³Kärç¯oü þ~Ò€±å ¢ðc³Ò>‰@~§¤ZdÈGÊ$—a€P8Jrh¤Ï(¿ÿXóš®”íë+FUX¦q¬!f¿ƒD­(X&¥ïû5–›×í³F‘}•ÆÛ·¼ÉCÝ# Îz{3 ®ÿŽòM>Èâ¼èŒ?=·áÑW¿FJõa%åEaC#¡»d,¶/N>žGŒtÄÉH™ ‡Å|äË„à™E®¢+ó }MOã…#ŽÆª˜z–ŽZÂ÷MmïudEEN¹äîÛ(Á£~{óü®ï4­+ËöYR* ZÞΙÛÕ;¦W¯P Ø=ÕóÏÜo¥ûÑíúRV=‰J³Ø¸ùÙcHF‹F‡!jÜÔ‘F³ ”O@áN0¼“»6Ü6Ÿ1ŽëU­ÔZ?*&ÕI1ŠÿˆÎ9Îöc»;qÆŒ©È%†ˆËÇP«»{Q,—(e[6“Es6CÄ£9IÁåD<¬°V0ÌîaÈGUHªŒ¾c¨€. ^)!-|Æ ’I´>Oó;GXN¾øÖ¯=·âÊosÛšÂûw@½c„åCò!Gy‹Ð'Z(à|xÊÕŠ ¬Ï#òŸ†É-†p=W“…°¼üŸV÷üñkÇŸ­ûü²JÅÿƒ&i"D°„‰ù €s J3 ×—Ï€á7ø_,—¿” ¿«Vü»4é8O÷?6ß‘¥+^çCHõÏøûJr¼°óýÛ³¾…¥†™×=tnŸRêóJª¤)24,ó—e38)Ê?òyÅ $&- ž F_¡qAŒ„l3õA®p¯Qß¡QEÄb'ö@a1€V£|‚ˆJ¤,1«Ó):UCùóU]ÆÃ-MûX]˜eîèãz(| ÏwüÓm:ÙÊJʳ”R¯S²6v-Љ¶#WRÊp(È•Ò@< ×W’@Jõópƒïp=€‡4ùðq´DYœœpSçÆ3–Žô7èßppyÎ,î½q0+Þ q!€¯înwg?µS‰}ÓçóÊÌÆÐm®ý#¾¦q¦!ú·#’Ì}õ¤!Dópˆbóx¬Ñ,v¿Š²]UãÁçµç8H:»øBš'%òy<Û݃b¥Bq¹Úë2hI¥‚Û‚°EL‘—AÍ*4¸»PÄþ¡} *Õ ¤D2D캸 ç@=‹HDI£ÀRPHVè7¤¢}~ŒÐ•ÍymE-gú5¯E{{+ÒŽƒu½{ú±aß~xæ:²HV# Ùª×Ș~•\IÖ Þ¯>‡ÜÉHv$&öBS·R†„TK1ò!"3tä +m½ÏVù€ç‰W ¡¢ s_PKŸ]²z„äcñÉm¸ô•ÇÑ9œØËÇžèÄšu½CþˆÿÇåöUÝâªåS¾]våÅ…ŠßœH$èeèå"¸å؉Tæ_Éd~äÄ þâØ¥ƒßàëJª¥JÊH)ÏPr8ùˆg‹öÜ8á vdÌGT1¼™7™c<¡6(àWÆ2´K¿ÌKø_$¯ùèZÀ_¿ù‘oq]ñaM@NÞW?L+ì y¿>»u½ø_,¿ý) úÛ/-z…îó·ô<_¢IH ‘8ñ ¹Çõ劢ÿÎåõ)åç#& ÉÑè%s0,)4Ö iiµîNÿ{z9&ñ±Ì_\©)8éò¨Cöíbp¡ðM£è¥C’¥ðE£ô}ÒdYû­ùü¯SLv,ÇTð^hö høˆä¯`Ø…?šX‚3ÀñáÒŤ\ö@aþ>²M[CÝÑ“GÜ(\cù8©/{Å1p**’¨0Y!ùßþq3ÆkHüÿ@þ¼rÿ#¯8mʽš€¼&›ò‘t|pÆÁ˜ß­Àv t}Ä›>w½{ƒ€ ÐÐI nƒÂYJªK¥’ _f„3äHò‹ùÃ]p\iVÂãä#L·Û«÷õV|µYHõ]¥°ž\íþ—ˇ¾¾çúO½­ýΪ§^ZvÕg+¦ÖE±BЏØ}[7ˆ þ‘×}bC?€7|ëŸgVuÅûªž<“úM–RÏW· ¥~vã]…5øŸ‘ok¸ Áÿ˜ÖOÌ75Ûà¬ÙO Ë0¢ðt®ÓJ3j²')0¡n°‘®·Àˆ€„þG¼È 7o;Âu‹q—9Ýào0N$oÑàFy¼Ú|Ž+ª{Œ{Õj\¬1h줪ûÀRÌ|‘ dßg”ãúïVÂÿÉáAáFyï4·ÍLSãå'j<…MD6âà²ÞÌíl""#åÏæo£{äVškZaÃÚq2kÎ2÷É͈äV"BÔÕÉ ã¯>’æÃÏ‚U‹HxØŽ~¦Mš¿ Æ˜C[1¦Š ѯŠ*Û»Åj­¹¦76¢9¬–‰ó‹xľ•BY(—±7_@µXó}"©lÓôygæêИLPƬÚóªx Z))–>R³’Lbj.ƒúT Œ*­g9£õÝý€ïcæjÔAAÄâ5TŒL¬À.¹+¹t@Ì%Î(Ò,VcÅ3da@CLJW}à]8ûÌSpWW7Öýå6ôÈÚô»QÝ7ëP1ç± ™HE›Á“mʉHý;#V¤àÈBab@â•Õ‘5ˆÎ1—r묻õN´t´!›/»ç,DDÌbt>Ú'M¬¬šTd}sP¢>™}L#Vá½l\ª¦i öJ`ÇãOáE/9 hÕd$»`.ª<è“MýUƒG U"tÁùzLœÊÅ>usRPJ`2B™±2@¶ A°t^FdC 'RD© 1ŸXj]pnÒºBᘅ xùkŽe®íp俾¶ë7 ŒåÓü]ª‡ðÿq}ñ_Å*^Sñ²RšE À‹¯WJ}ÀfüDgLp»»éE3””W)¯’Rž'ƒ,H̸]—+iȇ Tâ…æ‚Ï~ÕS»\_}MJµò±•Õ'ñÿ |î§\Oøÿ‘|à«”ŒáÍx¡ à «ï¾ü9ÆØ'}Kµì¬+b[®ˆuƒèuª!ùž©ïÃKöO-YH> $Òu6ŽI’¾ ”µÊý‘’í;‡F£1ŠMœÍ|ßã5¾†L\G«Æo YhŒ©c0Jãç®É˜%é8“*æêUT@Æ‚‚@Dœ°2`žØøº.¾u]Dµmº¨¸›š‹7Q1×2ì«Ä­rLö~ÌãÆ2cÜê~ùÈJlݰS:ÚéÞxä1"(Ç;ªï™þŒÕ£W£ñô&,9¾Ç_3éF'´0L’„P<ˆÊ}@¥ÂPÞ§Àà‡™œ$¤Ëu=ì-”0TÈn•^Ì™l¦ùÈòaÁb£[S”R_Ir¯*»”ÁXX6Õ×Qí‚È HÂB}*‰Ùõ (•!«Uì4V4Th`ÆJ°RUØœ­í3"48¢Â| °{ÓVÌš; -ÇÌB‚^ù†8 ©€hdY(,Cˆ¬EeÜjªº £ÌWL¬JÞsUT`Ð3D ‹ñb}wbq( (ýù/p—œ€ í7Aã)üVÔ'Sk$²¸ì7סˆ8E}LÓuW6|ΚsO³€ ( Èç dé¾ó^$jâg+œX0V·1˾¼3—7 ™¥«†”â°Wê:ÒŠ£nŠ ·`¡´Ç£˜¾o‘%¤Tôѵ§ ÏSp5<Ÿ£©= 'iÁ §ŸA:“B¶. 9˜fPc|³qsïÿøS(G%W=´ªò¿Tþí]gMQðÏæÜ‡e7€qëÖ†¦¶3l‹·”KùË<¯òÎ8,;‰t¦ùMî¾Û³Í­éÁ¾cËÕAÊ>Ê—jƒÐó€sønܲþ%“H`Ãúõعsg@šóæÍþ}ûpúé§Gd$Á 3kÖ,lݺóçÏæzàÀìß¿'žx"†††N§ñÇ?þW^y%R©Œ`ÏÞ=èïïÇ '^K HÞÕ» •ÝO˜ì1Qæ˜æiËÊMÅé/zl'¥Ô§|ßǺuëÐÝÝ©S§~øáþÕ«WÓo._¾ ôýž={0gÎ,\¸–eýì} ´%Uyî·«êŒw¾}‡nÏС»™§`P|>A$€"àÁó¢>E0 $ˆbŠQ0p€0ÏÝÐ4=Ð4=ܾótÆ:Uµßþ÷ùWߢVÕ­ƒÝæ­•Åßëë}jØ{×pî©ÿ«Š%Sƒk4…ìl ‘ËÜ7¸Lÿ<Á¹ƒÇá_ÜO™ry.ñÜ?t?XúÕ|ß÷õ ë[ ¹­õ~ÑràÚFßK&Ý¡÷Æ¥¸ƒÿ÷äûgîh€0€õ¬lèGg9éê Æ°²y«[†q|¾ ©:éz‰¬C›‡8°±¼ÿŠ•(•\¥½mZçc›Ÿ=/˜ÃBýF¸Ë<àóÿÿ $ø„Â4¶P ÷õèð#Îp%6§žþ5q²÷ÉÇ~@¢‰ßøݪ®U¨çÊüK#,ÿ¥pr€¤¦ó½|H»o „a;ÊüŽ.´Æ¿Ua;¤žwö{´†üŒ-2°Ê~¾B‘ “#M~Oâsù†Â:H}\ŸÂËŠ±Fp #ØF|ø-:“Ž,#峌ãB¸­K&´¯ûõPM[º[[ÐR—AÒ§àlj Ôé+186FAázþt&«ÈGSmäÀn»Æ*6l"1¬`¦¬²êø ñnbd ¡¿£¾3‰ÚU© àIôHÙB‚zçÙeç-fi´r½,+ûÀ„û/ ¶bñ ¢jK[óäÓè=¬óO9 é[ð¾<»>±{’Ïz`3‰Hñ²?/Íç+®ûâVr|} L˜Ì(0éô¥e6}äÉŸ–à>ÊêP^·^Ô9é÷€<-{|¾m’çàc@Qêõ…1`ƒ!«®VMÕkœÊKtCTÝ®¤˜ ÎK `ûcOáeK0¾k7,HMº¤L9 6ß»~…\}³ëÄô¥í0“Þ>%_ìÿCŽ £D*Qí“n1QßbøþÎ$(—ÿì¡4öUý•@ó”’iËÿת· !ãÜ›#‰G¡àbÝ[cøþß % zÛ·û)?>›Mgê–¶´u]?gþb$¬$ööö oÙ±çÚñbqÕãÏl‘ˆ‘¿qnƒãʃ+ŽØÕXŸÒs»XÉÉ”Kùëé6yR¬ÎÖ7Ü%]ûljD¢ÕuœnÃLi@"ÓúSKTN°,ã-3ª×Rz@U¹úJ>_<Ó™2k^*™Áð°ÄèÀŠÚ•©‚„eiÜ©Øp\©d¥R kÖ¬Á[Šˆœ{î¹Ø¾};^zé%LŸ>3gÎÄÀÀ€& ]]]¨¯¯ÉÈÈn¼ñF|ñ‹_Ä/ùK\sÍ5š´µµÑþ4‘ýù7ÞÀyçGd€Öirãº.¼üò˨««Óc÷*ҒΆ̜ãJ‰¬pœŠ‚‡ÁÁ!,è¦õuؼe;š››ÑÒÒ‚B¡€;î¸Gy$xຠ.¸ î¾ûîÃâÅ‹õ¼sçÎ%¢ÛÆÆÆ}VFp„‘†PâÁ¿?!L™ŽÜ'H¸ öÓD×ù ˜DDŽ8’Jx9t]DÇf‚F—ês¿B$±àå¸cŠÚD°_äñógº®ñ±ÜÞ˜Îvù½ÍËpÍBÎHÊnÛ¹Qئ‡sÆæà¬ÊlütÚÛèŸáb‘¨‡¡¸{B„h35‹ˆ]G–ÇuÕ—¯[ x?VoÞ¼y,HBõ>›$òÈ›[[ssÊs*ß™ú/ãfÖͺ—õ]vÒ‚Ò‚gVm\ÕþèÀ£-½‰ÞÉ@ZwBƒÛàt”;гJ³Æçç$ggŸ×à5œ…åˆúîór,Ñ ÇZþÎü}öÇ~/QÇvLQ$?öe€GÕ¶'üc¨{‘¾6wíå»’»Î®•–”›ê»~Ëõ¯š;tüµº×ž´Ó7Í»é÷H³ÝÜ”³r¶c8~ònéI~å²Ñeý®¾ðÙCò‡äüçòéw>½×´¶¼öàÛ¶-Úvxßô¾3 …cÀDÁ3¼n;c ` lI‰‰)†!زt*˜—3®xLŠ[‘8˜cSH`ÕnXb¬ 5XKH<ù`°ðÛyF º:gb%’qdǬݽG»;8g6²iX†v&Ñ =&gÐ*ÛºÐ`©P€Ò™ fµ4QÌ¥úÕÅ ò,„XtŒ•ʶM“†9Í È$Ó ÞÒ½t {VÍ1J‹v+ Ø)ê<`¯ÂV Hvð¬3€=¨§~>«¸õ|DÂ`T|ûeÙ¥(½i#Ê<ˆÜ_\ Æâ¾´½.x{l©/ûÝð Sgbú¬ùpœÎÚ¼iýçœÐpW×L,üÀ1ÈÔ5—ŠùÑc„À¥UŶªô¸neZ©XþsaâoM+ñ é9G²"µ¬}ÄO,†yV2™š•H¤L¥Õ6 U¥Îvä\i¢#íjüg+H‘ËæåÆGaóhlFPMùXq4éHx ­Øï݆üPY:4QX°`Î9çüâ¿À¶mÛðío—\r‰¶\¤R)qĸ袋 IÙzøaìܹ¿ùÍo°gϬZµJ“‰ãŽ;Ï?ÿ¼vßZ²d üq8ŽCÛi_Mž{î9sÌ1š\xᅸ뮻è4±8õÔSñÊ+«!„]3ðäSO •Haêë;ÐÔÜ„W_}Ÿüä'qì±Çé!rDMHÆÇÇin²²‘ÒV˜«¯¾Z£”’È–¶ò°n'³"LjÙ „J¼¢Tœk# ñÄ f…ÛZŸ_qãE_˜Ò$' ™Ä:­ÔE·~îwä=žTùô\‰Jé5x°a&|~ÖLþŒ´P¶®cÑØ¢ghý’Ñ%z]A°¦a 2.<áé²M“«(—ËÉ–wZ®ÙüÎæ²=`—á“+ž»â®wòïlð3þì„ߟð“®m]?½ç+÷Ì·Sv³gx 'á@Ûla«Æï1¹™Åµ*DíT8ÿ¯ûÏÝêH’ŸwÀ- Áµ[@B]£L†Å-|Ù‘Š¬À–…­½}8cÁ<œÔ>p\b€P0LÀ4ÞóóP*9ôårÓ.1õÙ,··££±™„Eî\“±ó8¾¾äŠE€Nb¤RXØÜL0á{wýS@+ˆMM8«¹O¿ý¶.¢¸F ØR¢Ž•Þ&…$+¹38/@ꌈâ¯çøt)ÞX œ|¼ÌOZ¡fØ€Ïe p|±†˜$$™@%pæÆ˜ªëþòŽ n×Âûj«s™ŠDƒ ü•¥Ï¹›àLR<¿?пÄ×Âþ–³¥…HLé‡6nÀ~ÈõeäèØW'±f@ઠ0·‘ÏÓÚº ½Ë_Es©¬ÏÍó¹¡ÑrŽ Îü“§ãSu8»gx®€]° e‰tf ‚Ï—™Ã©¼À­O!ðµaûŬ·ïê HÂb‚ë¤ð¯Ó]_{c_ÿÎZ¸®Œ3×ü“J³8„ýOâVÞåÒ-a¸vmªCÒJ¢µs:Ž>öDµnëÏG‡ðs®:N™œ^€°–˜¦¨†ÐäQz^õ2&\»rC©T†!Ü}Û¨¯ëêýN"É„€i­ˆ{^NEÁ±‘/بØy5¿„ieTZ_†ç =w®PÒC8°Kž¦yW’¥”Ž ‰„£ßâ–r#(Œ#ÝÔM›6á”SNÑÇÐÓÓƒ+®¸‚ˆY2H™'×%Ú®ï>ŸÇÛê7㤓N"k‘mm˜:u*‘MÔ›TrÏÒÊþe—]F–rÓÒígœADæÑŒÁÁAd³Yœþùظq#õÓ„dÊ”)X¶l)ÊÅ2¼P»T=ñĸòÊ+‰,£ñȲ¢û]uÕU ÷+"ê! e Á½÷ÞK„D»‹íÚµ ‹-"Btq"×Å(%¡ NY SŠk‰«‰rWª™4ð1Mfi‰Ûé’ÅÜ7–Ô0¢\×¢Ž#jœØsä{æ¦uCÏ][r‹ x¦©·}Û‘øÖÜW~žžRž‰V™ÆÃém YkpO¯¦pfþ Ô{IHÀÿû«EÈÀo¿{"¨ù÷  JEÊ‹xè·&ýÈù˜;ç`ÄH$ ˜¦þ~Ñí ÛqPù ô¦z1]ýkv›ñÜ”ç0ß›ÙölL«LÓ/<š¼&4z¦„Ì„ZÉâæ"åñcDý°{ÖNF–£IÑ­õEGM¿µ>†~£pSš¶Ä¿Lý´•ÚrS(˜tuôMŒ¢\)£¿¾£ÙQTÌ ¥†3ÃÈ×çýœi7]Ø}ônÓ³¼õ8 A‘8@ö¾/Ý× ` ×ÜxŒc„Hº£ 1v L$’0•B×è:%ÎAá6Ž™­p/XXˆHÐ +KèrJ¡IGÖGËÆ| Ÿ÷€ç6s/P_3F"aa¶jϪË`nÂÄtÖš!B¿Üd-1Z*£l N¹Œ¦lÇÍœ¡Ý†ù{#•"mý,Q. M&±¤µF&í¯º®[ÿÿ¼ Kfvá±Ñ1ÐÒt!¹ ŸOjñ)>E_ø‚¼ýÛ„ïÇ0ÁE‡‡àýàFß¶p+†d`‚Èó‹{ïúܨ-M´ã.ðŸðU+àcú#7R{uROñwÏ#™ÐŒKœ&3Ùú²OQv%6 à6…Â÷l”ñ'’Û¸åËIü³ Ôç%nLœŸR{îü7çÏ£ãƒãK±›—X·ø#3½hÁÉɬUU¤L‚€¡Z¨e×±àL˜ F¢¬­!BH@ h…àáØñvnßv®ƒ®‹-÷ òAÍ+¯ à×î&·«8òaCâíg¼ŸrêaÆ!j®óL£ê4>6Œ­o/ÇÈÐ.Ì]x4ÌTõ9C"76€=;ÖFý ŽSB*©)²&:u±GÁøòE “‚R=½Ý“L@\JMìê*IËh½‚ë:ûêË´¿TÛéÖú9@mFÑ–ì"'$Í_½FÏ_•ÜuP©TËå´Ë•mÛš¸zè¡xê©§´Ò¿uëVŒŽŽbÞ¼y`÷+ri"÷,m¹ûî»É5KY-^ÑdâóŸÿƒmÁ-`ûÈv4:oGS± ¶e£/ׇ•å•€46¡i¼i`ïøÞu c ãÍ=Íà +G?ûè=#m#V’•zÂk§ûB`ñ.ål{;@â œpÀ/‹.öQãk8ü…©>—©¼N‰+ÐQg¦ÞWÎìÏ/ÇiH¹µ?„r½Ú€Õo†'":ïãŸA:¥ïzM׊%2 ƒ S·M²I·SäÿaÃF°Q"± ¿ßšÆq\~BEVâ•þx’2Wd_ÚNÖãÉ3YnÉý5òx*¢‚Ý»±aÚãFeáË ×m^´¹köæÙ=÷žw¶¡¤ávÓPÓC-C-?^¿lýËð˵0¬RØ«ð×!êÖMleèg¢q ·Aê¾³|ýWp-$«ÓË™©à@"ÍŠÝ\œ2:¶G8Ô8»ñr§o¶}i¢UxCáB ¯…p|K@¸ó$­ô¹ÿ”˜l ð•Ù¡°]aa`X¡˜H@é ‹‡jéK[?h ½%´+6ÚëëpDJe rJH;Ž&\`—©‘ñžÛ¹–ôpÊ‚ƒ¨VGM·"d[¡RÁÆþAlìíÕîM™ N˜= õÅ ¤a"gZàןðˆÁsa”ËÉåпémtA"Ë1’+voð€NèâõÂg6v|UæáËPÕÏ×s8u¯jà1üAìÒƒ­»=  ûŠÀ’­½¾ø"[*À¸å{e<ÿar¾…£= +-€”É wÚè…OV?ñ±S Ó¸[a†‚ø)%Aƒi¹:@ÝHˆ}Ì=–^ÖHCâÆ‰ßfÛ.ÆÆËxú…<þônlß™CœpQ«PAçOáÉ‰ÝÆ×nJ˜€e €y]•ä ®'÷¥»$¢R¨–`+Å»• × ¶NÉÉ$ƒEh#¦.Ìèz m¾’û–ÝGo7 ¶F2=—’ú³ûbÒP}²¨OÕ¡½!‰¦º$ê³iÔ××ÁJ¥°è´Ï¡iú‚8—¤¸lP~D*pdi!—."'AEÁ¯ 5„HI{{;-G)Á6.Ø8lŸ°õ1$4Ž#ÊÚµ¾V…&Jኻ‘Š#Ýð9Q£6ŒŒÄµ“ˆ`ð:úïaœU"Î <IÆ¢ÈJL<Ç_åßAað‡pí¾ßӛ漉… ,XÛ4†:™ÄÙcóñë©[ñî”üŸîÆb»û'Qòij[qó­/ Tv”††&üäæû1³k^´e/ÞúAˆ!mљӡŸ1ûw¼WArÀm­–Š‹ÍþÆŸµëi±XŒ$Ôüò™âÕjN¦Àc÷)Øü»§î¾ó·çþöªJ¢ÒPÊ–,°ä8ûÕ¶ŒB (‘¸„­s1¹Œ(N–†@ÿø¼B Âå× /s¥ü«ôÀv>Æéì`ÔÀH«™¬ÜÂV•Në,™À€ñ¼&¿ 9Ÿm\ ó.š/"ÖC@±ÑîV"`íà8Œ2Õëå¶Ç0ÐoYK§a“ÅC}NªÏôÜô™‰,Î*à W»'Œ–+X•Éb,Óˆ£ì"ºí ]M@öŒŒÂÀ)‡‘ÚU5«T¶u,‰ë8 9¨³L> >+‰õ™: ™ÄëV%]a؆ë¹UF-³X@㺷ÐUÌã`fp–/Ž‚p¯òñÇçer1@ÉËeÞî1\‰#}ãscq?\U]6o·åD_—-#rb¬½Õñþ>u‹ þÊ}–„h9üC>`æ[/w·â"`¢ú.“&#€[@Ñ€‘0Sªµ4XP5’ŒNF$ÖoÄlÆ‹Ë{P£xœúñvE>Æq¥P–HKVñ9¶eM4 mAð ØNÕšaJmå uZŒ@à?‘ ÇíŒcÕc;^µ¯KcÓחݬüã³¥ÄWÕßx x®n‚+õg=¾j_yþEobR%-Tqà6 ‘d†äÉ'ŸŒTÂÙ=J§ÍõÏÉëÃúÅ)¦q)mÃ\9h}9ˆR|¬,qA²qÄ*ÖÏ<Ø/x®¼LϬ ÑÒ¤Äß/\j'}œÎ™\îj &Ž&Ѥr‚ë#-4,ÑÉ\‰ ºÚˆ€HQÓF*!Л,âËëÂ=³wài±nÞÒô›jN¤ÅMïÁ‚R=öC"mÒ/­ØƒÜü ¢dÞœÃ02œWX©t3AŒÏ¤ïâ—D Öx¤ Iü±_l0¢Ü"ƒä•~ƒÂHh`ÎØ¬qá™ðL !La¢˜-"QI é& ×uÝ›|ýïQ{˜4\´ñßÙjpi Ç[ `‡Ž.ðw[ šCž¡Aµû—AòÁøGãĈ¬UŸdKEþÙÙ5+˜j—ÉÇ^>ö:Žé˜Éãö±k×÷ °ѲPák ]` ñØÏóø5‰šh.Š€DY=ģĤcHa€ZÆ N¥0ÔØˆñt’ª‘ó6?é`â41ë}lÛÖf¶|¡ˆMMx'Û€¼a⃥<Üro¢»½µJ>„ˆ0ºÆ§r\;›Êå …Àѳfb~G»XÝìI<^¬`£´ÐRg!m%õp Žå@Ô}Z3,êÆøª–@³‚¿ØŸþÌ×ÐàÖæÖ¡Vr=Ž@¿`rPbS–€Íc%|.]žä¹Pâe®fÎYªx‚œÈþ4ìq  wTâì ðê¿V¨Ûû"„¸×K‰G¥”s¥Ô$ÄG@X¡#¥´¤Úq€Iµ"2IÉêƒSgF¹D#l³/OÛàP/¯Ø—_}«×õiE¹Fù-$~¨\®žÆŸ@*ÞdN@Ô'­‰âŸ† VRdÕ2Q¶Žx†î£‰‚ç÷póÅåÓvG“€ào¸¯TL.&úz’æ‘ÓÅäÃà–-(Ô?aÒçÀËWÂv\£›'æÁ§€Ä["S_LÒ¨¥¥¬„°:þñ‚¤".ö ®FG¬+Šßà±pBfj®wfU‰RðÂæ "´¦ˆmÛq1/5Ǩ‹T--o¾ùf¬E†á¿÷A·?.31•P·²X»)M-hkAÒªèc½fý¡XÙ8ˆÍx³~]£i &Ë8c} šß 3céôãÊÏÄsu=0òhuS5Ø5jËXØ?XÄcOmÃÝ÷®C”tvÌÆÑG~6lU΃Ě¯AÜ}›ÔÝ) ÁëîG\¶ª8BkMt]×~Á1â\úü©š£æ«)yÂXãÊ©2z;{_ìïìoiiÛÛ¹wh¸yø[ ¶,xìS}*¯²:Ka»Puú ã[ ÛØ‚Ðë#˸*ýs ßá ãYÙWxÕãsÀŸoÑc†‰@$þ™ƒÐxº7Ø2WXð Jľ‹Óè.g²CáNüµIJá:¾F`ü‚‰ÉQ ϰ•ècï€D #4ØœÛ@¬@¯òß™vþ1MŒ¤RÈ·¶ÂU°2Ô9¬r &ìj¥I‡ß\ÚFþÉdæ&sõ!3ôÓ©,¦xJ==èîlC÷ÔNÀ¨>ü·Z ÿ±7†Úzži–‰Vx¼‘͉ ¹B;FÇ´–q”"óÚÚ°&ž•Þr\ôË0ÊHL˜Â=nEÃïZ†@bZ÷îFFB¡YL¤¦`Å_0éàk ¶z$ÅÄ·Ëa+F‘û‰THî'ùÆò8zÑWŸCʉ}IœÉ¡¶LàÌOÀV[â^¸ý¾ŠŸ¥¿/‹Ž½ß°þ­—Î=Azò/¤”—(,fk`Txáëçù æ$}nZ^_âXñê>»pÆÝlÄû‰ÅÇýç;n\ûÌ™÷JOÞ£°Ôó¼¬jÁÄCµ Ç­¶}–}9M`‘2!¤‰ì¼:X2¡ÖT6KCh޾¾<_Ƙ—–ïÁ[@²qËry„Ð9ý’\®”»•‡ÿ‘R\\qpçá4ÇØ0)5Hîô'.ð¤Üêx8R^.à·tV ‹ãâA\æBvHž£º]õ+x^õÁ4A@¤n!«®YÒ€&B xzB0AÑýax´]h’#™ô¸4(µü™Ös ¤O!Žyû'ÁdBT¸o˜ÛUX%êšýúy¾°>a>á±îQ| ÑJVí…ó&=øâwñ®-Á@p–Zq? ‰‹‘ˆugAÌ÷(&Íiœed²1âܸb_²Ü±ÐçH ap¬ #¥CÑÒ8‚ƒê߯7_íÆß-[ [T-Ìó†³úY»¸'‹LX¸³‰ieÿÔ€ß5õà·ãö\­T<ìÜ5ŽÿÕ[xcmŸ¶–FI2™ÁñGMa1 ‘J–Zc˜j$´ÑÛ¡–;–8òĈ%ý„8·ÇšH>X­ZòØãêX¾ –w:ßY{û•·ÿ€nV¥šC,[~¥I€ˆq—èd‹‘»~€ ™£ðup&Ç(,PxT“‰ï@àt«ŸÝÖBj2r)ýLà–i2#0„€Ð:_…üKù‚7l/§Ö½«•ß®°„Ÿ—ó˜ ˜ ›ÀR+ùˆp ;‰IÕc¾¤¶#L”Ò~¢pPA Q`ñ)¬lñ X<ÆF ¹®.8H76¢yÊLim¥t" ”Wž‹ü?N‘fú ‰Ž,ÀD KõÝ ÀHe”‰¶ ;L"œÊÏϦ Ã4a¦&B»ÊIô¥Rð</*\ê¹:VcÏð0Ÿ6 3ù¸¹ì8»<¸ÒÓ£ýÜuÝõÌΉýæõ×_ïA 2_M5"ññŠD )ùMt>"¹þ…ˆNeìw“*0L$¬´Â†oÙñµžË4€:ߺñ â©ö'àŽ÷ÉGíøÀ)ìpÂOœq¦ôä×<×;Þu=«J<˜€0\½ìÒƒNAµ£ž®lnoïEÉ®@X;u…jÇ•¨øáTëM؉ñ‚ƒgŸß‰BÙÓë¤ÄþŠ­p3™~•Åc3þeõ6¯÷sŒ ¤‡¿ð¢[—„…= €ÞR#úF>ˆŽl*• 0… ‰ÁT÷/Þ‹1ËÁEÏv¢dÛ(îÖCœ0Ú†^#6']3ñ<©ñË_oDÏÞ¼Š÷ˆ¤[fÇ}ð44´“.GÈj\’†BQ“{_˜ûVTßš\y¼ø"—µ¿PðTŸŠ˜tü«”4ÖëÊej…$˜¬h¿¡`qmŒGØèèòñkŽ]LCâz²&DÕÍ`ú;¸˜çpxV©PÏà‹L@Vó~¯±ë õ¶'¸–ÆH­ø?ªôKSq1=s#Réz¸•]¿¾À—$o}Za)[<2ìÒ•ãàô¿Q¸‡åöC$.p¥Âu<ÖbY>pù:“ÉÉN–’W¬d­–°x +ô3†xyÜ0P"‹ÇÒ¥Èd³”’e\¡<òRA•s©b/Ëò§v¬95ØâôzÌl&SUÔ™hL$å8õ§ÜõÔ_»ñ>€ôð×I;·nFûô®»(¬áÉ?¬~}Õñ¿2©Ùé×pQ’Y`Ž]£fœ+¤à£ç«ë‘c©„®ë_má³r!)•]4/(ب’Ÿ´¨®+Vû>c+\‰ wVpÞ—ýЇÿì4×õ®ö÷cÄÃå–¾ƒ.l»JBì µnµµ«Ë¶j˪-ª¶T!H”lO/çË.ò%9Õù(;ûM>þ‰5¾§ˆGï‹Æñ‡ŸÀ&.P-BSë"_öªä£ä¢@ûîùø=$þžø’"¼/ï G/mRŠdÆlüªë‰¿6‰p¤Ld’äFg´-û_hh¥\Æ).QÁ»1Öšk]ÔZ±:ˆ`ßb;gT\H¡Šõ[*pÁt¸Üâkx}k!#qä¯Ö{IDa×%Œ´ÄYI¢îE¡ #Q}bk0ðÈÇaºh41wHâÃ+š°®3‡õS èi¶«®n•œœøH¬~¡_ÚÊÕßÌqú µé÷”^à¼W™?wæÍ^JîWqEøbã2Øm²Zµ¼tˆ"Q µX´¢,œµ\«Ú `áèç}ûŽ\wÝuÄ[<Qø“v…W9n»A=ÎY«rLN¾Í*ê|nA“¿R¸#4…®DY_.RØÈäe;«¼F@É®(¤p¹N[+q[cŠl¹B[eaùX¤pŸSBŸ“À 1×ÂàóYÊ×ä£ Nõ»™«”OeÒÓ‹?F$> àóL¾«p_âùžâ ý¥º`ý¼ß?Bà+èäûp¦!D¬òá 0gW+Žlä£ËR)äæÎE%›Eª®-mmTÁ— ]Q•]"!d¡ rA±~ÿe"d!¡úšH°{UM~»¼/Ø K¶døI‡&*~0)TØ&¥Vû\«ÖÓx+×­[WÛÕˆÁ]ûôËøSÈ¿V`³Ÿýûò?Ç}â¹"€ OÞuÔ×õ>é¸îÿVdã`E2š´õÃfˇ|0ñð ~ˆV- Û•ï•|¬‡DÀCl²^©ˆG ïË…åoË@â´CŸH‰‡´bÆ©x áÁ!€˜¢x5 ®jq4‰¨è„‘—èØhަcã~µ«ZÒÃÖê“*–|Ħ¸å{¼¦QUÌãk«Äß'š/§K@HbÈièyð<ÔFKn£ÜÏbâq¢ ÈÆƒ7¾˜ð¼Ã·´Wl9ååc(“σ5&0X,#1,4ù/ºS ¶Xqázx¯RVX«põ¬®C‘H¤éücSC3&«íR3 Hí)³ãÝãÈoñ ’Üà¼;®½öÚÝØ9‡]º¸Õß+ôs@u[šv3qpyy9~©]°[$v²zgMrWí 4V°•ã9Îr5ÀŠw «Ç½ûjfÜÂVƒ›b- Àç¸H¡¿`Ì,H\Èâ¾|έSH¬€ÀÚz²è›!0òGŽ¾ÆŸPèò]‹'™Ð‘¤Ù*D²4$þt&?4“´,À×'Úmõ(*Œ2Í|‡ È“‚eÁQÃPdCf³Ú’U-Uñíî\¯(kÕö ¦ï·\èЛ6m¢ª”:dhhˆö#+ •Iƒôü•u‰¸+"4DL8UxŒ)Œª~ß°uõêÕÿ½ó€²ª:Ûÿ¾3L†&uDÞ14"1ŠD4ÆöG£(¢(I°çûDü,h¬!b7 {!Á ¨"*UT†>ÀæþŸµ×o±Î:ëÜ2à "¼ëY÷ÞÓö>ç\î¼ÏyÛl÷À`˜>¹ó±-‹‹Ëî*ñÂcW=‰z>ìJ^±ÏÇ./@¶kYijñ±ÑÅwÿ`]Dz×%86ºŸ+ ƒN¿]—ÖZÙâ‡ìV›sTøÅýø÷… œ«³2õ){·çcóvÄGI¹ïד>0Jãîvy‰_r{†¸7~óqFö½?[œÏ“öVx)ŠÅŽZ¶\Ë&ø$$—S¡ªba{’1‡#x:±d¡8ˆÀ“ð8rIF;®'AuÞ‚X@ m#œë¬½w}}2ùX’Ø?§ÜoŽ«ž'T­÷g6¯k\Lë"û",@^­Uþ®R‰ ýÌ>}\ž¼ zU[ÂCù^„´k×Î 8Ðåçç{„¢‚î>~%âEDzeËÜ·ß~ë UÍg­÷dH°ì§bŸdÍoüñäAñûæÐI]ÂÄÏ…ÚÔ³Äâã ùÚçJÉ wkqÎÞéC¬Ê¯—ÉÙYâs>¼Øðžò>äýðÉÎqö%ahž^_qÜ+±±Åí0 &@ʳJb¾V±m r÷žG/>¼²óôl·%³Ü‡©f|÷Þ‰‘ŠŠuôô¿£¯º½¢!p®ø´xr “÷hrHÊè^*>GΞŽÛ–Шá"pGêØÿ!‰ýDñªj½Pãö%¤éh¦Ör0Üa_#4Ö箚ðdÜ-N%üìô Šó%Ìû< Ÿiþ=\©Ëðâõ@l¬&í~ b¤HT‚¹Ëg£AÛ¶®a£F>¯£‰B¬š6mês*¾ùæ‡Î ÄGÂ6¨v'¦¯_¿Þ ˱oRW %oww›U8–?ž¼-/j›¯Å[µ]‰„Ç>fb0\}ÏêÇ^ã{ËãlOߊ†ÎÚþsDSMW*±±Ãíÿ0 †2±yiv|åç·×l°!Ó5ú^¥ 6exñ!‘á¾m«8g%7nª·ËÕŸ«0¬ô=Ϲ¸7ª&‹ÅÅno®¦T‚a<$P÷]DÇJ ا\UA^’®›°t<ã)¸!’ž‰{Û¡2µMÈÙ˜†g¤&¡LyÕ$:Ž"ÿå—œKK¸1xy*bC,§ºØ”'®á?ÇÜÍi_ê…šV,rµ Y¶Œ;»Î!<ÞTªpªÜ=\Ó‚ïÝh&ÑÑT$¹ÜÉè÷‰åêêC±z÷îíI¤zö€øêWêâ='^@è½¯Ž¥mv‡b!4b#øÙo§ýü«ªZ-×iìñ/_쇢Ã`0 CÜ'ð¦©Ë”9š¥ŠXzm°,Ó•‘‹UoFÆêœãKKKB^c¦ˆ‹y¿P¢£ÔU1 $Qû<¾¥ Sl?”·7âù¨ãéÈWÞ“è·Áû̄աâÞ¨¾˜1?ϺTÛúý9&#Rsôyy(Q¼5û)OÇðSI¯%ˆrq ù-O2Ǫºæ¿ç<:;€™ßÄÀ6pžé¢;ÞÆr×øäú˜Î= Ä‘Y*nåŽ~EØÕFÄG©Âš2:vty‡ê ”óqHëÖ®  À'—K$x±AΆ÷\¬X±Â-\¸Ð' wíÚÕ‡SC°èbî+_)tÊI4øe„Sy¢!~{íë½$:®)Ðo‡øØ,Q²Yǽ[¯Ï«¢Öwn¿…Á`0 âüosÉñ-O{¸˜;ÁýT°{Õ'ûÛÄS0´»{sSììÓ‚f€GQ*ˆkXö¬ö_`ÿÎZ·„èqb‚{ó½X@Ò2DQTØDÏg”–m.r1ß+딢‰3}>¢F¯«éRƒ0²xLú„bà#ñrVªêzO`Ìzb¿ ™à™b‡€Êpéãq æ¼30îɨúi{@J)¬¼R\„Ùìð|H`dÉëÑT ŸßѪU+_¹ŠªVÞÃ^ HxoÈ¡-;vôaQÁfV„Kya¡Ïžt÷¥q-ZäEˆŽï赆 Ñ'œKÀ8-›&Ñrß¼yóf¹ ƒÁ`0X.Hb|/ÑQ -:Ó´®>¥W÷,ü±Fp+ñ0Jæ^ŽGÄ}˜D€|™ $i½/Î×þÿÕ¶1c‰ÛPˆñ?OÙ.œÊ] >Åߨã”DôÜèN‚öHñ ú_Üž«Å–äL » D&Ñ8ð2ñæ’AèV1ž‡,æ°N¼ŠÒ¶›™Ãž^÷6ôI„ÙœÏôP©èòi‚k]Ó…À>…šs+WIÄæhº ¹ZÌÕÚ"î”°(W%«]u•ŸÑ­[7×SÍÛ´iã„AÒ6þòlx¢*¿¯D‹¯R‚ý9üöÐVå÷WI\/BNå©°-§JYŸé˜HÀ<$ñ²xîܹq ƒÁ`0˜!œåŸ˜¬'„ŠT?ìžœ‹èÁ’špyåÜ›‹Äöº/'8Îå”Àm‘ÿ3Ž<Œ9âZÌÖ^†R üÏÈy˜I9Ø(”ó$œO2#îŸäÿ‹c‡½׊‹T'‰s9ÏÑäªÌ&¿cÂs0µß[²ïƒ÷¡*z?ð=?Žy Jг„pñb—ã¡é/¶×s.½9f4búWIÄ^ÐôW —Öâù(Q#Á\%™×SˆU1IÝýúõó9ÊùðB"$<ÂõÛ½X³f!Z¶{_*[%K*÷^y9|ŽÈüùó}žˆæ0O‚gŠÈËÓ¦M[ï¢a0 ƒÁÈâg{%ôÊîCC½\7!Ÿ,›Œ€¼C}€Ø—ò¬·'ëÐçê:}‡±R|Y<ˆ1³ Ï¢-ïŸ$L*3Ê‹‚¸˜„ŠFÜÏu‚* OËíó4ë5÷á]G°×Îï­¯G˜Çr×1¯‡éÙQÙkþDìÌÄ 3Ì%Æ:æzZPP!âŽÇ›ÔŠ^ ïá¥ZLZ­ªÀe|ÉÑ¿7Ê«Q¢žµ:urm:tpý%:ºtéâèNî=T¦JÙEWÛùîç ¿òÂbÁ‚>|JÑÓCaYÞû¡²¼^„Hx,ÖØjÙÐ)S¦L5ña0 ƒ!…”/–DÉvÄô‹\U„G_q*©ÃcÈ‘ÈÀà\3‘0ª?Ruâ%í{šØ'Á½]Hè\TŽH+šæÝøb,û îÜñ±Z,Ññkrô¬æð;q˜1Ö‹„I½Ëçzô…Ébžȵø“ø8ó½Q¼OÛÜÊqiÅux¼’ ë‹"ÇäIćÃK‘‘B|ü[ìÈ= {s‰/øÿ1oî"WeÍå\õV2V!‰¶ÈËQ¦\z½z¹ÃÚ·w‡÷éãC® ä;ššù¥ÝWžß½“<>œJùa¯Çîäs5ôÛÉãQ¾nݺBm{Iýúõ»?úè£=÷Üsk0 ƒÁ`ÀÓñLD}«¹â±b7-}—笺*y<ÄK1º‡‰õñÄBé.ÆsP$¾*,ž†Á~Æ}[*GEaš¸„÷¥„ m |íP¼#[DªbùNâob0Q†·c+bâZš[vçB;ÅÙôé"NE`ü#иðz‚Ü ®Eˆ”ˆhn²Øw¿ m'þXñkî¯Û:æQàÈ¡ab¢0ÃbBÍ–#Èâa-Àõ[¡5÷!Tž¡šïDG•"&y_/G‰ÄÆAªlÕV¡Wòzøœ u1÷‚âË/¿ô åòfx1B–'ˆòj„“Ò}u«¾}ûúêXòjì TÅòâCùKäùx`Ô¨Q¸Ô0 ƒÁ`Fñ!„åtã„À\¨–U,Ž£Cö:·'°k=–JT-]4æað_2‚3x²¾šeÙ”²}"¡Q÷¹"·‹k·Z°ì…7¸"Œðþ:V9ÿîç±]~O„òAzû0¤ÔçŸOOˆ‘GÄ¥Ú·”õÍ™c™¸˜cVæ:ßJÞLJùŽLÛ±žyä"¤¢p*ù'o‰}#ªÅ=ÀºÏÞÅjE 1?¦Îã™ ¯RrßPeu½È ‡ÿLîF„ÈH<"Úׇoé½÷¢D ˜¾Sâ#]×”Á`0 Ã/¨04…êGgK||Ž q$?„áz±« LxÔÀ7#†‹bÔ…×b3!=3ĆYb>ë"—二9œ¢—¿ãùЇúhˆ£ [&ŽÔÚïÙ¯9#ýÄ҈ЭªB¥ 1Á³S(Ö&?Äq¾/k»­•¸ÆÇ<IíOSÚwçw¤¤o7AP\ÈH„±:Î+:Î_"È „¼ zWý` Ÿ- ƒÁ`0xê,cS¯·cp•Ø927&¡Ra9Ýé]‘÷SåiºØ€>,sCÍ+;‡éÜ×Wè ^ÏÇDÇtŸ_n4w#ð$%î`߃B×ÿª}®ø ûÚœGøS³5§Zÿ[JÿG|Žò¿7â…Ä5I†rñGñx 4Û“„r ƒÁ`0 q–1÷¾^'ñ9Ç%ÆeÚöÏ®2°Ð«KŇ©æÔØ€øü9ÕQú˜ä1¸µÜç:„p¥ªu¹Ø-AYÞ]âMâ„RíëÙ“RÃ'"¤@Â^grÝ0ßLñß©ßbuqŠïþ3„Ž]^ÂÈÁ`0 CÜçLLÒÕùCúƒ¼ã* »¶³¿J„×Äɺ¶ïíCsÎ ™úÿ0à3]46ˆ×kîSöœ.§?HOW1¬'_ã*<9cÈÛ¸ÆÑãAÒž”‘•ãöÔp? ƒÁ`0ññ½¡HÂc@¥BìÚÇ#á=xß%ל÷g±ô+±±–Ïвú”§­J ÁËpLQZNþÆËT“ç¦y/*sñM„Ôw\ç‰Zú¡gs ÇjGÒþ;Â}LxnÆÏƒÁ`0 ]Å Œ·ÙâIô®x[ï;ED–˜Éû Þ§:…ÿŠ„ë(Ô—8§–xx»‹ûDèBJÖ.'ôèoZö^²_å½¼ŠcÅ™T¾:*…½»–Âë«éš¿OÒüœo0Äk3b¡Œ Ta,ÀÃñµØžm_ÆÓ'¸•s0âãpBàJ¨Ìó¬&X–Á`0 CÜióh~·”ŠI‡b˜Íß%‡a³‹¹úÈ5Èù—Ñ o»ø’x æ¾Ôµ(L}ß/ãw.1¦ˆ‹)™[‡ã÷ÀøÏÃD;ûŽû$‰Ñ ÄÓ˜Ïs©šòQI+‹ˆ;!¤*U.L†|G®#¤j÷U©._c.¿gn1®Å-lYBîÆ•Z³ÈŽ h*¾Nám”È=2d³—sþu~Ú0+ ƒÁ`0L€ÏKŒßž²ºÉ0Ž1jãMø·x9»*y½æ:À¼þ*Þ*vgÙªšðy“Æm€Gg+×0ËEc.Þ‘GöUáaÄ`0 ƒ!îçwy‡¥;0¼-Ö ï±^T߇ñ¶8_ìÊë4F\¼ežÏ yS¢h-9,ÿ!üOÕ¶Êüò˜ûÇkLèY—éßÌ탰*XƒÁ`0 1ל„¾ñÑ%Ð~ 9^ˆ ªAxt/¢Sõmâ›$}_Œwâ,ºw?¬íÞ§êý0Jµ&F«8 ƒ~—øÿÄŽˆ”À8~[ç_@.p§b _¨1Úºh<˜ºŒ§ò£\ p¶ þÞ#äè\ò1Ö“Ð^ŽAŸ+~Ê'é!ʾÆûÒ…c;Bî¾å}ïodœBŒý“Ä¿øDóŠˆÂèF•0‡({—óÆÓæñB¬Üaâ! PPøàÏC|˜Ä`0 ƒyANļ?"\è ööô¯¸qOË­’}$áDm¡Fa¼F’ô/D¥$&?¡y\•ÐÂ8ÿ—Ðü`÷bk]àü¾ã}sÂçOO”<-Œ(Êp€¹<ªõc“œïYˆQâcˆ’8žeˆ€MâB<&߈õ4æöNO‹¶Ýïa´ÿ×ceiäZÇ>ŽªRÇqNq„ÇfÂÈ'í q=3*{_ïÄÓã8—?ãE‰ÂÍx£º ¬2ØçMŽáσ\‘›cÎ=¸Q9òçbeÄ`0 ƒ Ã1ñ>ŒäkÅÅ„ã¼Oå§ÑâIÚªm%Ç9Œ ¾ž‡0îv<0iòœøæóID‹#Èeé`pŒ}^àfôÜ)ÖA´AôdaìÿB<ÁPŽáß$d(2‘˜m²9nŽXÎ>ÇQ¥+8—„û䈷Òïd;9o5'ÊhÇ nAÈÏÌ'éXïUѽE²~„omÆ5%d–Ñý"-ýÁU1Hàƒë:±ž”ÐqMwЇ!Dþš¢«úbîãXJ#XÝJ¯°Æ¹ý&@ ƒÁ`0˜)F8,À޵_/>IgôÒ@ÎEB•¶?ÒÜ¥‡1a§ÓDLâgG@Ä<(N&©úa¸âÜP3¾äNäÀ6äLÜ%8pý?z³o:xEãŸêR"XJã›°(Ü„ÕMaÈÇÅ5x“ž¡OGUõ_™(ž…Pn|ÞEc:sNóÅY|'"¨z u™x|tˆ•¡†Ûa0 ƒÁCωùä;L•¬ý^, úÞŽ»ä´ria±#úmŒÑ¥bKl®ãY÷!awˆÙ®È;s9$A¬·p>+¨D5UóÝQ-«Âã"*nµ&ŠÄy?Ÿ0§|G˜%‡àa;£â:oĈSI* _Êö ŸF¬=">ÇÜ^ÃCr7ó­¬ð¸Püë<ç&ˆ >äùÄ)‹{"nÛ à¼fE‰®YkÄÛ*fe0ˆÁ`0 ë òáF¿)–¸Èe›/É­eS„<5¤[vo•îLc.YÌ£=sØB9à6¼Íx,ƒîè· hÂØ©}kj›?Fµ•J_Áý[0î:y'ÂõI½q×’îßëMùo›ئ>"®BÀ E)_ ¨ÔX‚w©¡nÍ Ñ:‘õ‡“ÓQÀç$ÊÿÈ5^•Iåó€ ƒÁ`0t»l ·§ Ü‹B=$Úë•íÝNò¢p~š9 ÃÄ9l"T¨ˆÜ’Û©€õ¶OÔÛbEtSEl¼¸NɆ°øÀ¸^M³ÃÓ@ …q®KŽz…£ ·ºñ!€ŠŠ¸;A¬ƒ ùј%¬î]„Ëoů¸oE¬>t¾óñŽ ¯Ž¤rƒy@ ƒÁ`0˜¸b¼÷iÍñ䆔ˆ5ÈYÀ~-©Š5Ébñ&B¶Þ§äëÇä… Ö~ÿI‘¿p§84‰Q½€0¡k1ܣÑœ{Õ”ü†»1«ÅüJå)ÞOŨI”ð}ØP(~@žËtWMÀ3t %‘[ÑðqÒÍ¡îík)pNH|mõy)½5ä©,FŒü]<ã`ÞkDh0Ä`q¸wÆ9Pa0 f=ñ9Câà2’ÑŸap«iNø€^×!>õF¿ò)ô¾FúV Ã„ª[®ÕªŽ?à‰c@¿D|ä"~)ž-~èâ^âô}€/7ÎGNC9æ2r)Ö†þAôi5 !ä¨ ô)¥Ñâ5¡¹8÷'|é>–ý‹‘D¨ÍÏfžÇÑ£bºx9ý5߯Ây,x|î2¶AîD1U¬6Ѭp£ö»¢š„ÇqôiìRŽ€¸AW˰A|ý{!,ÎÇþu¼XÆò¦XÏùtOä^^Åë">,Ë`ˆ!<š‰p‡æq1eüæ‰_óÃQ²ãäïÛ•13Y¿÷ù|âC70Îþ ƒÁ`0Ä}Š|<=©ÚÔ£ûFzVdD%•¦5¡·Bet7Qíé2±á@-Åá™—ŒyòLñ†”=EâÞKs瀄UÌ«u—ú$z„çµÏË£$à÷¦ŒíjÊÒ>αք?Lû~MÂý8<,Uƒ¸\ÿÐãs„éáRÅ\ç·5Ÿ38ÖFªš•"¾ú‰¿îwL×>îóé¾feˆUó~qÑ`{#¢.ø1¼¶óBž‰-â"ܦoSN¯¨‚ã4¦Úű”æ;$ÂÓ²‰qÞçϗĦ ƒ!V ¿…±ô·Õ`6F|/ålß$¹:Ï'iG÷öXè{‡*`}G¢õíbÇúœ'ïw! 2Hç }J|(>ŒÁ}Æ\–ò:îòâèfâÊép>!±Rü³ØÁT—mæiŸþ.îÅÇËx &ж”*RWѱÊ@Å®_ó·ÿÄq)ËË\»-¬»Osñm„[ç|Ï~RÉÊÛÖÀ€«ƒÚŒÁ(áQLhËv¾(C†Øáñk±'Ÿs¢ †p-§4Þ*â9ŸB(”¥9NbIG2NC1;É8+ÄWˆs]’Æ8ÒÙ„äò>#$ø~¹R¸S,æ}9ëÃà7ÖÕã˜.|Ì@èà–},tÐ`Û uÅ,–‰IÀo1^„|®NrÎÀ^(Ï|Ã8‚ŠN4tO‰ƒ%[ÏÂè?J|BìÅ9ĸ©°„q`ÿHÈWn D™ß—:iŸ%&r%6j°…Ä…ø vÚÙq¯_B µï#¹{9œc=úŸTÅunOU¯“=;îÆ#ÔÅU ëÅÉšÛÿé¸'ð€ñT}îM®B1sÿ&@j œæ Ó‰t™QÇAaâB[€{¯ˆåU1ç̈»‚Ô÷½q ׸š¿CQ†,æ;ô0®ÚM)®}ŒqŽbœ£Åz©ÆÁ8ü”fT¯"žÃã ™„æxÔZÊQ7(¤A¹XÈgZ/þ€¨þQ<.ÇëFŒxƒ°áø®.ãûú Ç-uû –WZ/ÒÔ‘Ï™)lŽ81ûßó½^DôÎjØqŸ(~¯K/¹ejty2íÏtÙn*¾ÞƒÄ*'!$Šðº÷LrÎ1Îû\ÎýCóŸ³G?jþ}»ä߬‡ºÆºÆµüØ&!2Œ0æß‰·zoJܽJXÒÓ½—ð´`ÙxmWèªtGÿ-Q ²*Ui@´¦ÂmÙ—ãOÀ–˜,‰À©¿  YÄ0ö¥»do„HÍí¨ê) 77e|æš‚n&Ö } Å5¡?ê•''0N^`œøbQ…Æ1d‰I;7iFª?J°ïĽ„H•¥§+âãtîaºã¬%æôAJôíb½Á]Å#xm5‚Þ5¸+àý(â·c¡ø‘ø b¤±Ñ—äÈ>üæò–°aþqè«~bb0d# ûQE©B$7-¡·xþݰPܱJò–“xÞÐEÂw ÏÛmƒŒr}ü4EB¤ùnŸ{VQ ÷•¤ÀÕ䂄ĆÇ:ñÄEñA­y6tE,ƒˆkˆˆ‹E´ÿ+•/§žä^–kÁ³Ürmyø,[ue>ß“œ>€¼‹bB—. x]* ª|Ý$Ã;\7|9¿«Äó¹Ï7S•ª)vfN‚ð´ûÅW4Ç"ÆzaÖsÿ&@j àGŠC‰#¬Ëòäƒý_|y°¬¢È&ž¿"¨;Ÿ3Y_;sÄ¥‘òJŒÓϾØ…’–—2μÀ8©E•oùTØ8Ÿë›ùùù®¤¤Ä†ÅA Þ´;ˆÙ-J2NnçsÅâÆ)((pÛ·ow7nŒ œ/NƨÛ! Yb ò•ŽB ´ë :b ½kÑOy·›=›pˆEˆóKÈWª—â76·#”§ Ð Y¾·a0d‰møí=šÿΓ*&$ö9B–‹åÕ(@¾Åˆ½G<7¡4ZªõíÝëÞ©«ß‚“]YFζ ~‹õò–æîÒòR„ 1êL]!9+"©;†wu„x!×Çú¨kv Iý%RÚÊ&i$¡‘å…Ë(íñýBþÆ>×pŸz"ònÒ6óöð:Ž ñþ(®F)¹1‰§ãÝ}—„÷Ïñº|Å}>ž+üam[)A<Î|7ŠÓðŽÝ‹×ã“ýLx˜aÝA|aF‹Ñ÷L’,—ðTùqëÒEÂgÉÄ]ÄF¡xþrŒÒÕâ\Bu>æË¯À8í‰K„i1Î6\›sgNÒp1°n0Ö ·tyyynâĉîÌ3ÏtEEEîꫯv¯¾új8mÉ}ÓÄÍIB¯†ˆ—â±Ë Š øq†î6mÚäÆŒãfΜg d:÷úÀ†!WlÇïà~#ê#J2*•ˆN^·×y@Ó•Ff‡¤W ç—l"‰ô!qÁOPÅÍ`ˆavŸÆoo{17m[!Z\Q€ä! ×¢jö€´Â®)>6‹ŸHV ñžËÎ.¦ómàräCÈvõCY/ÅúnLì%ú|„Àì„ÏÄ¿R™*jâA#ሱ”ü9?‘°Ì##bÙ Y·™‡iŽÓ5=Ll—Þ8QôÅ.ìÉØ¯ˆmç••YYnìØ±^ dffúe#FŒ ˜˜“y¯Ú2N—pÝðììl7~üxwÉ%—øqš6mê† † ‚q ~dz:ßcÂTºG0`£•:ÍÒ¬æ rrr‚Yd=¢¹fÍš.¼mÛ¶…« 5› Â9ö^Á ÍÝ£l…ÜÜ\ÿ]ÆVˆ„~½÷[¯Á0õÄ|ÄHu£NÂЫe2Þ?pí4£¸ë§¹,c] KC p·÷ ÄÜA5ÓMÕ§ùâYi„*7$Ô¼iÀê¯]íÚµùû•ÄÖZîjhì|×Hÿæ¹+d¡|¯ÙÔdz¿ÑÏ0æ>¯¤Çã&)æÒÃq Br¡KÆðñ®bI@f1îþ 1±*¼yx»Î;»É“'»þýû»:uêEˆÿÑl÷æ›oŽ…ƒ’ªRéü‘d»¦|;¦ôÀ°œqZ Bæ*Ĥ24ŽD|Ô¬À8-!óÅ QãÀµÿcÎ>¸€[‡ó1š4iân»í6×°aCÜüùóÝO<j²SÜÎû¨q~AìqËpÜqóæÍݤI“|p³fÍrÓ¦M‹g‡cœ}éþ¤rÁï­ïÚ4N- nœˆ$74–³½zõr§všëׯŸëСƒ«_¿¾0S\\ìs™Ö¬YãV­Zå/^ìf̘áfÏžíED@(ÔL”¤{å•Wº;î¸ÃñÆo¸SN9…c…> ªU‡˜õ4Ù®[õ÷±ùÿÜylÝUvÇ¿ïåy‰cì8‹š88nâLL6ÈVÆSÍ0,µ¢ªEtÚR©Ó–. LQ; ªøƒ&bPºEÒJa I!!” ˜l&ds;‰w¿ê\}þ8ºú½Å[RõJW/v¬{Þ=çܳßsS8ÐÍ8 ÞBÖ¢E‹‚­°bÅ 3 s:!v>Ö¬Y£}ûö%ñuú<¼Œï¯KzA{•Õaݦ[µLMʨ›x~?ó(¡ÎÀ&Lô#¢É¼fiœþºH{¬û¥<.~ï½÷ÔØØèƒºæšk´iÓ&1l)õw£[_ÕqV8¥¬~Æó‡¤Wì±ÀÁð&ɯ(« Cäœ_K•EsmVïhœZþÞ§Î^H#·/ ˶Ñv@J0ìÊÄ dFÏ>û¬–,Y’(L,:·gÏž¤õ*©³l§<ªCo Oö£Ãrr,„fÍš¥•+WêôéÓzíµ×ÔÝMfÓ¥o1öSýÀô/e7sI¬&†3gΜàhµ··‚hCÀi¤ü¡ËÃq8N ^šýVð™I¸ÌÚË>:Ó?‚ÖÂo°øºtÖÍŽRG”&J¢ #ËGtî½÷^-_¾\Œ@Ëûî»O‡–ì·•ŒVOB™L3ÎÇÂ$8=ô.\(F¸|~Ï=÷èØ±c¹àì7\€£x¤’µK[!B&8dòîC REÖùS]¬Jö›ö°yʧl.Úƒ¯ Ö+çw~ ‚ã³ÜéF±# ŽÊ1^HÇp"œõ9|õ»}‚3ÞÁ)É ‡Îuà¤\7Ÿ•D#ÇÇBzîܹúÞ÷¾§ë¯¿>Ѱª¨¨³¾¾^Ë–- Ù»îºKwÜq‡^~ùeyxLÅ%ƒK—.•¶ÆæÍ›‰G{¤=x"žà·bï•°ÿJfÌï}ðÅiÎK.G=ãyÍñm*mà5èsáG:–“Eà­œMˆKMØg³'/Þ8;à®4áŒÄx+â¼ÄüPMp€ „]À9 ÜN™{L>óñÜsÏiÁ‚*4öï߯#GŽäjÍ;¨ó?tNåÊè& j‚¾†Ë‰¾l]±ê (; wÒï„srýi¤ÛÁ¬Ö8Ñ\}W5zý,SË(W¯õ¶A4544È rXÀ.ù»Û„ŸÂL%Ê™qÐÿ¢(»›Õf­U“nV—š“¥1+—æ´pzxØ÷¯4¨e5ÎÖafÕ£“*Ѥ˜ûqå&ÃÛœ“ÿ“#ÍîþC² Àn{ 8NÿË#G;Ü:ÙJ‚Éûø]ž³Àœàø$¶?N;ý:ò,€0ùÅzÙe—åŒd=zTÌÕMk-™†/¸õõˆŽÅÓ ›v~jdÓ Kš?¾žyæ‹>Zפ ØŸ~ú页d'J`dD‚Hjsíàf‘-iˆþ²õ ŽÁ³Ãn÷žþùÎ4 • àpeÒ/Út¨íÎàüÔñ9>62Q‡1ÿ#¹£(… "RUÏôßIà£õO²—ìp'x¹:WIÔu×]§Ûo¿Ý§”õÔSOéÍ7ߌб¤­8 ýø½Öx~5½á†´víÚPðˆœE“’à&kvÈõ4i€Gf°RÑáï„æG\¶Ahtß÷:\\DIa?k•Á§õ¾C£ÇÅáv«ó: à­½3!‡#|¹ºþÞÍÞk(ÿ]Þfá(TÈž…î;YsŽ{‡;£èr Ñå…8Ø3_òïg'‘[m²cNÎñÉ Ó¼eË–!ÐäïLùó„€MÐ †1¦þZNÀvõjUàæýêÓzÒUšê¡«QºñÏn$C)M?QËS˵3N~JY=¨”¾£vý¹j4^åJ©\×èïôº^GÏ~ÀÙ­…×®„ï¼Ícx ޲À—+aô"Yk)ç`—Í(h”Re¸oñm]¤é¼þÏÐJeÕçz‰‡‚jØAk¼Ü¥Ní ¾®?Ð1Ýð™Ö*­ ꘖë5 êû¾»™~ ¾Øwºg|€^½ #§C«¥è¡zÎQ~Û€ê•È68… Ø/´±¿jdò@Mâí»<:»×ÙÕ²æ§Èpä±f¸l~*Þ3΀t G†µJ2 gùîïÁ×ïC¿îá: >BÙë~—²Ë”Vól%XVøàƒ†wÚ¶m›‰ì &‚ÐÙ ç]ZQ¶s¯ByÖÆJÓ—EÏýØ»wo®6Ç Óùá‡!tƒhëÃY½zu±p¦³¾‡s¹ó. v¶)¦Õx»¼]¡7AôCÐ,éx ¥P+ø®•9Ê!梠Þç5ðârý0K¯&]¬µÒ+ïÌÑz7éý~ùg'=œ¹”^]ñ:üûï¿_ÍÍÍbXë]Ë–xqöƒ}¶!¸¯…//áЗù˜ád>c^Xˆó}ü×—bÖDàâÀÚŒáÙ„/–ˆG¼€¿g~ga¼_+9 ^i‚o¶±îfTlx™Œœ9¨$U^8Yàd£ý6ÛšÌ À.³3œeìuâHá°æ Gû.äƒæTXéžê†²‹­[·jÆ :tèL>ZPÄî7Íž=ÛøÜ2!ƒúðÓá+<Ž?®;ï¼SnX„ØJU’¢Ämðo¿ëHt=­,›‘ÎqÍ9™if.~«†îóC?åœ6@ŸK‰ì+H›äÚøw'£½Ãº]ûQFpà4šà™Òb1-oU·p 9£ÇÁãr×úgažf½9¬·3j–éà¼}w¥3B¼LKYšG¤\ Yï§|ÿý.#Óçm3˜­DÑlÊ“÷¡DK’9î€ÊçXwë|Œ^ý\g4[ÁÞi•¨F“5€öé »Wú³´¾õ[ßrЍT›v$¨p›R˜÷5ú1¥@©9z=ðûRœ÷Îùlt´ñ›^|ñÅ8x¡;väâÅYt"j;H·•Jë«JéMeu"pS*`ûyeƒ³t“R‰¯œm¦ÂIíA«µcNÏäÔwh¾z5_?ÔízAÝz\ýúOÙ˜¦cðÛ÷Ñ5Ézt&çä øy#†õ‰óš ¡LŸs³˜€ö2p[5¶gÿ ö˜åw-À#›ªL±rÔéìƒÐ¾1ÖC°?/Â>VN¹ÆßÀw—#þÀqϰ.µ°™›x±²Ù!À_0³lHxÇŽ á‚äo¼¡#9:ÇQ:'’3sµ»4ƒÒ.]M:U »£aµÑ…àÅg?ëg’È ‡·ÞzKUUUbX$ÇÒžEÃIÂq"‹§I̼D¢~Ì›$­ÜgÌ[[‹À«Ž*àe#Üt üÿEsnƒfï·aHŸ•üñÒK/ÑÝGÁ`{ä‘GôÀøÒ’,óKÞŽùéÿ^§AÀIÊ~Üzë­–"÷JÎ`Xæ%†ã³?Çœá]%x~„—Àü‹ØY߈a˜—ËSø¢ác`5âðŒO„[üí ñ#Z;†¾kè‡ã@ÉÅ\ð…\؈¢žA`â½ã1JpÎbäT0ñd™ÖW_}5´p&ë¡'žxÂj_>â ‡01¼\'¬QƒÐz¤õv^P@¿ÁÙp-QGß²q0p;¡?Šn˜¼FÙ–ÿ‚ßvŽñ›<ø÷6.Î΄¿Æo¾ÙE|7¹Þ†­Îõ|EÂÜ“®Ç©jt%Ц\ã»ëºfï%¢Úà;8Sù²ýÖv=d¡9úøãµjÕªàt»qúÿ —¾óÐõ®^Ûõ¹~¢U‰”»\„¬\¢I%“ôÉ7>Ñ”)SÄв¯-Ó¶yÛ¤`ÿ¦3ÿÖƒÒ_hP'ɈqnÐÍ%C¤K<|³–²(@Ÿ©À )µ8NÛ†­‘t ßj¥r“ü-CmHÊ0U©´:àÆ^8fKRÙ!ò۠˾QûûÏS'Ä)EVÈóЦGÉ6 ˆ¤ÝðÀl0Z1B9Ú•á«añVvöÇ>ìÑðïþá”`AðoG Wǘ7o^p>v‰Ì¢€C½m_êîkôAÜÒØ#K„IY§Ÿ~Z<<öÍLF,ˆÉ>"ÙÚÚZ4œa¼—24¼Q#è² ƒ럻è4=-qì }× ´^„·ÿQš"öQíJÚ¦s€}ùŠeÌ^}ùÉ'ŸLªk?GZò5”]ŸƒSãJ¯.Ž•ªEœ-ûaÎ#8ÅëÖ­óp<,î¬hº¿ÌÑù ;æX øªƒ(t'4˜CØXD;q ›'ãûzüÌ>¯‘êwm×Ë‘=;Æ0^ /_-ÊîÆo:q¦³ Y¢ÔôÁÎh-2ó*ô@á=ÿÝ+‰²ÞHæí'D§wˆûùàÄ l¬i ­¥ãûHG|pràŒldáãÅ!ó±G]¢tà¶VeõJ© ‡"(‰é¨#dî[÷´JgÐJ_§áy´aKT°Ò¢”^¡L’û±LQa\N—¦ÿ•øŸ³@ÛE!÷nÐBå5TË T†7Qúu­²Z­´\¡Ñ·ã1¼÷’êø† ý+ðÆX × pWˆ¿Z•ŽmPîîh¤øy$:»°ËÙVÊ^¾ŽL8.êªÒáùY‰y,î²ü°–“mmm²aaª««Í´úO»b¥/VcåI-m« •"‘…°5ýE,˼ŒB‰\šbeXþŽ÷Æfל+˺X ‘ý\o("ø|b¤k1Š)Îò˜°‰‘äž?âs#ή"_’¿ŽÔ©o-py÷Ýwûû:Ö…Ê: Yã‚\¥W¯¢Ô:ù½XwpšëK¼Ìù°–¨ž/ NB‰—¿¤M”<%áÊhcÓøÏÊq¨ûôéèèÈÇ)|Ø9²{3ÆßøÁcøßÓ¯°ð±ïoëØ~¸Çe{1CÀxÍ¢õI¼6Þu…:ŽÃö w1s6 ŽÝà 0ÉFÙw]Ïài?â}\ŒàÇèH¦ pÂ'pm ´I†Slt¨¥¥ÅNÖ2”€ËD»$ð´Âш} cp–ì. ]¾ŒfvVá ·n>^ãìmlÞƒˆy —#} ÀIdÐÁ1(¿ k«_Â!(!ÞL>ÞŒçMFØ™²sj²¼x¼Ó¡¶Žá0æiÿþƒOµ9Z›oO4G´á½¡wŒ.&×좳í#œUd[?GW4ùL”8鬯ÝÝvíÚ•$ÎRÕáÎh û¢‰ÊQèÑ}S_j©ju@Ùà(üªRZÉÉbÔͨӻeïêfÝ,luwu èÜÔe=ÄnþAÒï˜âöÑÕ¬–VR*uÜÐ&é±é½Jÿ®Tq¼BãæŒ“æ+ÈÊ@½¢5OàEÁf/„¿éý²Wú€r³öàúf4‹¸’Þ3 %yèQã5ƒi|f3Ñî—¹&%ÇìnÍ…ä¬.Õ#RÁ=a ãòé¿Ç’¼èt¶ EÅèìH q §íI[ßÖ5™ek{øv×öi{´K³©¼ýád\´‹dFÿp.¡wRýØF²Ô0ÿËܽ€mVU÷?ï 3Ã03dä>Š‘ˆEi‘€ 8h”“à%•XÑPÍEñÖbMm¢Öª’‹ª1¡-µâ½^¢FÓ "&ŔĄûMd2Ã80|=¿‡uxVÖsÎyßoÞ´{?ïóÍåýÎ>{ïµ×ú¯ë–•Û 7Ü`$‰ËÓ¨)\Á¦xIÂZŽ«¡Ð­dføJÏqÆÍá‡nLÊe ÑXòò¥Ñ@ý|5ø¿wä‘GGâgoþ‡<áÚÐ8ˆàŸø„„:ã>Lœ€‹çÙ\D“瓟ü¤Û¸)VîOQíºÙèºnâ@Yòs߆O‹¬Á:N€¸¼äGXG{d ï«2ßĪxÆ… |ç” HÂfD—ž®=ûÙÏn^ô¢™ÿÃsÿßùan}94…Ë#žù®’ôž 0§ÒÛÍ­cçüóÏ7Ç™˜v=ÀÊóŸÿ|¡~òžXÁ1Þš©úæRÃæÒK/Øœ|òÉ­æãÿ¸ð‚Þ°¿/0¶5aÙ3y†0sq÷΋_üb¡ èÃø84íŽ rHèÞÏØÞÑùrÐ<°qË-·HUíÍOçeˆ¹ßÜø¹›/½±yðIÆÊQ:†å¨5t–ð4âø°1ñ¡ô^x¡µªò ¯ ƒêS—Þú$&fž÷磷”3[ç„?À.Töç8“Î*ƒ<‡oâî‹‚ñàDò¯Îq2dÐð{ð)™máCç”,Åœ!²æ²Ë.3vïļ›õ'gr‘Âïýò/ÿ2œæùžëYͯÿú¯“ŸøƒœD÷ÎØ;ûˆ`Qè½Ô=ß/dÑÑ©2ç¢-³+ľ…ƒ.»q1÷o˜L׃‰5÷Ö·¾•ð Q`Åþ¾€7ó6wK†€bm’J1r1ó6ÊáZ6 sb™í)]t€æwÅØËš‹¡µÖ}VPƒ¾?È™™^o³f©Q¤(°cý+_ùÊ*üßm?rXŒÄ:ï¡^/7n­´€ÑP€Åh’q•ÈDúBJ¾lÌH°ß^wè˽ZRÀÒ„hèÇ8hnö‹µØIëÏzÖ³ìÍÌÉØæ„ùP,1×Ü(éÊFÿÜÏ ^ŒKènByt~Àp…ÿ©O}j0Ç€Uãå/9z¬å]4&ùÚ×¾ƒ›9Þ_xó›ßlnÜgoèèÅH§5spg †ŠA/¦™¥Åüúš³ K Eó4`ýu¯{Ýà0sÊ 9­½ño¬œß oáɾL'àéÜ~†ŠÙge°&P‡„Þ„Îô5|ôe/{Z °9½Iä—˜ì=kŒtðžÿ<á–%àà‹#×ñˆ¼nÖp ¸ûP‰Žä½ä%/Á+rÑ‹Úðݬ¼U…Öå“Î@spß¾ô¥/5¿ôK¿DÙéŒ2Š!œzê©a¤™­QD~æg~†òÞǯ…`ýVx«×FàóÚÏépOV†ñRôN Ž3O¹«w2íŠbˆýK¦JÇ "gcñðÍÝ’—eY;êD=>vX†2¸vÍÚf}Ûïi»ö¸èÇ·ýÑm×lû]mKÛh»¶¶íßö}Úþ„{žÐ¼õ7ÞÚl9hËCªÕo7µÉ'¦Ì06Æ@® ·L £Jð ÿOyô)ͯL~¥ySÛw´ý‰m?áΚ¯Ýýµæ´£Ok~¨íjûçÛÞíËõs}ó‚ /hž{èsÍ»ygÛßÞöÕm¿»íí:ˆLi.þ»Ö­óñA£ãÌ‚· ɰZlßôa¼é+ºAu;Ï‘JÑKÕÖXÉÀ2›“Q"c¼Áyg¤BË‹ÆöòÏ3ÔÈOW¼êU¯Šj¬SC9Qq.¥/óœ>ÞË Ñ‹³a˜K.¹DEX¢wL©Îõ׿þõŠMîÂð·ÝÑ·OÓ8Њ í Å ÙYLª0ª|„H°<æèžLy)Z„ô†µ¼â¯XåC3ÿ ˆ^ÿú×gå£Z;`ÖŽY®we4sÐz'É ¼©dÞcVtà0¯»?{‡ñ{`ÆC¯ §Óh»%$ÊZÐ3qä/壹Ü ”TêûŠËÿ‰Ä‚ù•qÉìYùpÈ©ª|,LQ>ì!¥‘5ƒ™º7|Ù§°8ô1\V ÏʬÞö¶·@v}Nõ¦`Ö˜HÍP¤€àuLù¨´ÉâÂCQC&&õÓW€Ý8/}éKgU>ê»òNûÐGGËUù˜un£ãðXnÞ¼y^åC›$­1Ð:“Pf1(c{_òUbÅG)£!ôE@]|ñÅ£ÊGäÇ1 õòl‚ øÊÇŒ§…­÷ÑÚº°DZ¨ÕKmñ¸pнOcû‘yh‘ò6m~|¯O,ŽøÕØ˜u½Kg”UyÚeÂ'üNU>fRø?ðô½ÛêðRuÌç{© úlJ9ÙÌOYðñº¾Üï¤gVïSÃûº6íÙüŸzãúJ­Ÿ\91o¼¬yJÛŸ×öN©8¤íŸmû¿o{§”,k»ÿ£”h~笶ÿBÛ/hû1«Žiºü áP›ŒVKoÃèa¦‹)²Íq‘úÿ¶(Rà>Gönlmvµý¨¶ï×ö¿jûûz³ãèÍÛ~Ûýæ³ ³/<ô…ÍAm§˜P°þ]Û?ÙvJžñêW¿º9ìÏ{1š±;ñ|nL†UjƒèA»“A! ¼³ìÇ|ZXï÷+Ê ÏP¢Í‰ò±'ØÀŸíó๖'Ű! ‚Ò0k#ƒ­wÅs ˜¹òhI¥@#CF4øjLÆÙ¯ÊS& I©$¨Í¬€L:Wn_H l3Æ7.égmˆñ¬³Î2±QKå4Va·˜ó<Òã¼ ÙJ65î®>ÃzqÕ¸Á`âÖ^øRßá„ú¨]~HøÔ1#ž}ÑWì§ý‡!*xWJ&ki€9sî¹ìúB¯îŠ’»_.Ì8cœã c@ø€‹0–L{B¯€¶Y½>@¼du¡¬¡iûÃJ4Önºé&À±ÏÒ?õw1 `£ªVOêéˆPÇzÆ€O¡{Á_ßÃ<|†ÎŽýšj`åzï{ß+D­w{Þ­ÙØyð>Ó Jðbj cã˜ÏžŒ³”Õª(ÚÂd¦y}fIT—{¬õ) žÊº°3ó ‚7)nu¯¿[ù·uçm¬ÏØÝ|MÐõѺµ?öiPØ1"ÔËëÒ…±Ç&‹äRµj˜Ìºn¼ÉB(øÎZåæY×­*‚äc\œ¼¬ÒâÔ3* Ax—=i¬¯c^0áaÂFì“¿÷aˆ}ákб ²ÚÐy)²¬CùÜæð«¼|a1½'xÿQXtp©èã3wëSÖx)þÚ­Ã×Ú¾¦í«Ú~NÛÿiÛ)ÚW|1OÇÓÚ~JÛ7·}CÛ¿Óö×,¼¦ùý뿹ù.A abóè"ûgÁ"ž?ØúÍÂÛÛu{%ç8&é”!Jåã_µÝÏwµým?qáÄfÛömÍÕ W7]3¿ &4ÛÛ~}ÛýŸóp߃÷5/h{¢=t×Ò.ŒWTŘͲ¬‰„9è¥Ç aÖ‘¡²t ½þHÐÚA?Á["EŠ\žYþTÒ÷úæÍÓ(´“LÅWûä¿qìÇ? ³íÁ,2-WiÄúþ¿òqÏÊÿ/Ôº/DuYÍkY¬d-¹Ðsa«¨{*àõ–·¼ð¤%ú)䤂1ÌbˆÂ“üžð(®yB¸Z‰å’Œ}X§¸œÅ·}ï Ð(Ù*~_<œçVÓèâ§i«æÌÂ…‰GãRÎáýëø5ŒFŒ m“‡‚•—…W¹BîéJ<4\±Æ}ÂàQ]b߯çwË•Ä,­Z¢Ê¨u¼ýR5ªÃj>ë wrÆÖ‹VßÓv„kõ U¯N ØÁu–G®k‡5‡^Q$úÚàÀ( ò.‡$+3öÏ/|á Ñ´ï÷Añª}›òÓ«|‹ßV…f¬Çµ×^[÷—rï@gæFXc~”-4Õ1 ¿Ë+†N3SîÁâ)Ä!Ÿ+ž!ô.WË<КgMR™çU€ÿuÀM0ây•>¶fÆš¦bÀU cÑ£zzГùä½±†Ö³ÇœÌç]ïz²9×0I! ƒã|õ«_,›Ï~ö³Ý—GVßMôòá…¬ùÖÿkÜÛÎ8OW~†½¬ã¡3­§äòVg5}òÚkzcxgϪ7ô–A AÄÊÇ›å“">\dk©ïð°e°aÑÞ"$ ÝÚÖ~Š9Q÷†×„òß Š#Ò…±KÖʺ-äð9ùŠöÓºU¨Ñd^7<^¡9 [ÈŠ.Ð@!Í`ƒâ‡çËñÈ`ÁÚ  tÜQôDVÙ?cU9;Ö„{ -À‡pÖì1ZÇËìOð6ÆAòÈfžbœ¡$my(éªËΠQó?†. ¼Ý’…QÍ/U ›Ä;ÍýékîZçÐ|ë/¿ÕÜvûmÍï|csï}÷R8š¿nû¶¶; üÖ>·W\~EóíË¿Ýlº|“ŸÍE×^Ô\ý®nV¼sEó¹Ÿø\sïm÷Ž,X’O˜¢{&cš0æEmÝÂëš?Y÷'üBS~~ÕUW5Úò¡fÝ÷×5ÿ»íû·ý'Û~ÉÂ%Í—·~¹ùÈ›?Ò<ó¼g6W^e£íÛöï¶}gÛßÑöõ÷¬oŽxûÍÖÓ·6ÇþÖ±ö-{+*H&ÈÑUŽšO–£hÎ9‹.+ÇWÈ÷>/ÈÆT}qžVóXO /ÛÊg9cÞ«Ê9òÇÿelàü:c½Ø@(#ÌW¾05ƈ¬Ôù}ûÈ;-ZÇšuü–ÂcíIM+šM¥ÄE¶õ»þ“ÀȰ§=êSd…aâUr^ª\³>ÞIKlYåy§—’Ž^¸º†0èæ‚ .0Ñʬ5‹eQò÷]J4XÞ¶ZŠ>üáçK <ñnÍR6 ¦ÌªÕ5 Š3O£=œæ[¥çÜsϵñ~¯5eQtj¾`…Tæ‚,ê³ðƒ^ÀDX¸=¹8æŒÈêE”×D¬å' ƒk‡ü¢q:…''º¿ÿýï'ˆsH˾˜Ã> e¬÷Ê_)%öö ‹Ä+„_uÞâE¨ó´DÔ¬‹ÃÖaXÍ×IþœãÝý›œŒA @l®b…óÅ”¬í´FIŬ†EFH‹‚˜xÆ5-F¸V>s1uôœ•\@ÔXö¢¯É9A~?51æÀG¯k,ôà“r\Zi|—‚ Þ=šgLƒemY_ñ`-ÆÁ M@º½%kfe@°¬å¬M;…ºkh…2ôH4N,o¶6ÂÂ3º–Š5\Ò~ÞÉIçäb}΀GÌyôþP¼„PIJwä!¤üR@(ű/ž™•´,£5Ž!žˆnë¼u=tPʲƽ ÒxÆÒ4æ´X·ãsžc• 8ü³¯Y kBö‰¿ÎF6€‹‚XXÛŽÇ)þ ËŠ¦5QlÀ: f!KYˆkn޼ hÌ㎎c< ‚£zFñêL÷ø^ó® ¼Ôßc=_k= ™óF£p' %:¡*ƒn\ÿ‘[²!‚Œ^\e ÞÁÚ;oë ÔÔÆç¦b”`ÒÇ{ã·Û(½[󇔨÷„ùl‰éwÌÙÇ4§ÿÇÓ›;–ßñ0ÿâ¿Ø|g÷w zÞ©ç5Ölh~¢íÚW®þJóª3_Õ\}ëÕ²|›Got–›ó'ç7¿Õöç·}ÙõË`ÎÓít{û8¢ã/daU†ñ8ŠR;NÈh|g9Šï0îúsæ}ߎü‚?pl|u rÁDX¼LÊ!Þm£:—µ|´³M.{·!ùƒw ¹Î¿Kž×»Ï`CÏÂk³Ò¦~œ P5¿¯Åª^a6|óH1šæü_ ¯|=ßøÝ`-tÉÌx¸Û;uÏa0Èûšf.dc¸ÅTÁò¤2›]/FUæ±e=zs'àBl&$'jú=D¿Ô Óµi™X ælâ!+³´NÀu#°ÇByX„wågpÙ³6XÇjòóNŸÐê—§=ßNc%|"sDˆ}ÐlØ7,Cm Á‰oÚ„ƒ¨s:Е^4‚ÄœFÝØªïÕÄh€˜êQáV&˜úd\ð~½Ö>ïhÝ Ê¢}«ÊG^¯<ëÞ#<)æU™0Ð$¯¢ˆþ)‹Q>Ÿ,³9B}F«žà­5¬aè¢Õmqº…ZŒ–;Ö¶$^ãÌó€xâì!X÷'‰õ·m[ƒx:ô3‡P*•AY4É£‡~œL¿ò¤€–êÙ;)KÕvEåÀ«Âs|P3Óž3Ðç©Gæá¼Wy†®y1Ð*Å Óo+å#[EY )0£Š«* á}r)|ôÍXå9cáxÎxœJ ß³æ”ïÏûÕ• Æk2úm?˜*pÒ—7*®pÍŠf}×t)Pé@ïo¹ì{-ëÎëj¾ó6<­·EÄ£„to²÷ ÷ÆS;åÃúàN §¢€ÌvÑÞÐý/BÀ<Ógá˜ʇäïæè¶ßt÷MÍ®ìB¹Rýã7J»?F( ô•û\Ù¼¤í¾|ö‹În¾ñ×ß`¶`ï¸ê\gþŒ—œ‘y]WA)'Ãgcƒ£¢|>x`X÷Ñ‚ @.¥œBjsÙfçO*³û2ænËëZ‰MžÆaø…ÑòYÀÛð8ë85—“ —gN!?xUýÌÞAƼ?ËH96Œ;£á dŸwapÌJ2¶ ó5ûFÉ1Lû°<Ñ…mÛãŠíð:ŒJøN~#håõ)‚f÷ž\DØ]”ó¨²É€Iu=N©ülHR³y˜Ð¬  n«ìž‚ 2éË‘ ø1ö,$mðœME/L¾æ‹Œ)•ñKЦ‰góÌ!¡zÚ‰8É»yvá>¥Uïõ <!õT½: n/ Î$W(ÊÉ÷B„xq0šªè„ðçÓû¦±Ò8¢"Å)h±z-€\Œ·%ÖÔq7]lHS[]Šû1ÇuÂé(34ß«ÀCE®YjoW«ªƒ ̸»„+~ˆùXK@º¯xCVXyYXÕóú)¼„†”l9wþ¤½cÈx3'´ë¬ú < /béÅ´X½œ7¼À¿5L’’‘ãíy™(L1m,ûÑc-…,2Çø³zÆ4`óÎûãÝËsеƒ¾+¼xûÔ±2ÊÅWôTZÐó‰É“ðˆŽ²¾–/ϯeP5¼À¹áÑ¡< Òˆµ÷ÉM%0ó5ç=Ý›¡9'r{òËñI H1®¤Vˆ«q#ãÚjµƒýpÚ›ce+£µ«J´DYçDxÓŒ98æYùsÌúK‘« åCqÛŒ9 bœ% ~ª„ÂçìðdH¾w*îñ“«†L ݾí£‡ö‹¼k ó©²'hú{žÏÙ`Ù*–°Vó6Æ;^™ÁöœPD®j'uR”øŽ¶lç²fŸw´ÿB( “qJ«7áž, š[ŠÇ¤á¬MP©£;%åoüÔŽŸjîùÑ{˜=)"í­T*`\ Ÿgìšìjnl»¼”Ë®½¬¹öÄk£Î¤·hνùÜæ'¼ ß±–KÅj”ª ÃH]ÀŒ³AKäYí3S­°Åü]rÝV£ÈÀ-áËË¿W¼0Pl ¡cž›ä)e?ócòÅ<É’™+£fžê|þù,Ç þÜñ XOÁ,yAd¯(Þ›q >šC¥…f嵆 œõÌC|§z3Fµ¢ŸòséͱsÝMæ-V™P;´'—À$ªÛ8Ýw0Ü,p ëŽfh¬'ˆ!Ç6"Ô=Q@PñÖ”(·×Ø86Ö!›³ÑL+`傳±³&¸³‚Κ̼;˜ø•)qsUªuˆd?ÙÂCËšš.‚ªÕ¨žA¯*Õ¨U.<‚+[ò¹*‡JêÝÊÇÕö¦\8ˆÊó8ãôU£ÀXó^QHÐT'©­žU,NÀ:€š×Úеo´¼%à+Œ¥ÓŒG­ìcÀ#áõªÙ€áOYIáe““àÏ3Óš¼« x2@¬–°l9ñ]4à´Ÿï±¶,3”pá3%}3pØcÏÌÌ`÷ þâYÝ8x å£5æÐ8¼ƒˆæö-…ªB Œ)K œ=bÚÿ*hütcíUÏ%ž0Ïó®gÜ;û$:4DkóªÅå¢Îh>›ŒB~øE_œÊ-O!Ìë…ö}æh³TZŠ‚Ã¬õoi¾»‚n³^#ðpGxz/ ƒÊ‘E.0 µÌ¿(ÐÖ¢/¨fŽ’Á›9ïE¶öbèÿœOáS,Ô{T]’5·Ê¦ýD´顈L²\`3Íjº Y¢å8‡&´ÊŸ+¨ælx¹4Eù0›ÕÏ^Ý<~òøæ¶¶Ë¸w×½ÍÍ3óÞCN¼ÏÌŒA®‹ƒh¥è‰Í´‚–~ùàŽø‡‰û'[ùÜ‹Ûþ½;Ú<½kZ)Ë7óÝ÷ºX.¨Òõ¿Úî9®8áQU®fÕ嫚cþ<ö'eƉÌÓñÂÕÒdáñ”Ûj¬6;O‹ËKûänõˆ¬^°¡xJwŽù6èØ“×ºwðËÅûÁpl^Y6’Í ”³b ./†*x0+~ 䳯€‡yæûá­í¬2›W¦Êlô“=ËY±ÃïíqÍå°‡£Æ/ç.Ì…²­†`Ýa¨ÅÞ„¾ÜÁˆ$Ÿµ¥Ü&7ŽŸ‹¹%œÇdV4X*¬ cÚ l¬³cãXXâ­ïÒF ï¬ ‹½¿ Zà(0c×Ûï¢(ŒYiÊm`>ÆnØB‡…Rð䪜"øH˜ÌU¯Äpè}V ¨êOCð¯„^a§1º¤¼œ`-®2á#¬÷}ã@‹WÆs×—ø•«±y†Rv¬ö¸ÍóA÷êÀ/ªŠR¤ž#Ö”°ßƒ&LÊ'WO’8«ò‘üjÅÍ´V=™r]Ä¡brSC)Ã&ÐGéÖYÀ‚D@?µ{LÒà"(ãÔÓv†÷`}ªæ3T¹gìRËš³°-hïzrß1†±‚¿®H@-+Œ—éÑ~ Õ¬?:€öm1î~&Ð=f¡<ŠQF³{äÕ¥Ð<Í|{yT2ŽíŠàëY±æWQt†PëAXáYñû÷|Ǻ՘haŠõ\ÍlLcÁ_êæŒ ©íkr¥lXD÷°‘¹"ÆŠ‘ ‡Ä~¬®8æ<íM‚†Ÿ” ËûÂй9@8n¼8Ô©VG9së™ÍkÚþá¶ÿQÛ—mYÖÜ÷œûHAÍ馀Loè 8;§]§ãš'´3ÜÕ5Ùþû)ÍŠÊ/³±÷Ëmÿæö–”OB¹©[‡óJ_n&ZgìuèÞ‡6¿ÖöÛö?kûw>Ó²¥O79ÄÐÕû!jŠp½¾=dmWE¯ßp0¿— NüËãü ¾9^±cû̇ç^âkâï»RhçÁÅû¡ 鎷عŸÀ@B臰Ã@Îï…kåRûî<<Ó;20e~C¥Ñ=™ZñE(¿KURÈîŒY(©} Èn¯òïû³x@j]ïS0ø²‘ 3®nÙi% ¹l¦š˜4sb¸ÅËMXÅ"Z­M¼)iÍ5Oc)Æ©·2~ÖÙE[·jâh„šôîÁÀ°XAÇ"¡%|ˆ| á½½¬Ý†»úñz{ ˆfðÄý*ôiÇWF¢á-˜D‰Ç¸“@?¾TóÓm†‚6FÀÿµnh„²Ú^JqŸ¢C`£bˆ3_û±¢x}x{3øÁ/†”ê“Ãøé êúza ^áóÒZ=gõ·W7»ŽÛå‚ÁfwÛ•àÝç}û€½É|Ô6ÌÀÜIK½ë›Í­ÝÐþy!…L½¹]³uã÷Š1´Ýÿ?Û%y_;ÀkÂÄxtûœÕ¡m#ÀÚ§þd3¡z“|¾íÀfûªíͽm_Û¹Žø‹#ª1ÁXYŽYß ”…½e™ÐSr4øÖÒ7 Ù;W¼ÚD€¶§sð†"±w ÃÊ¡}”‡ïOw\kªA«ûù½žËˆ¡l8vΦçøÍŽ ê¥ .üen™Mña`ŠFÉ©¥ÝÇ¢”(0UI±Ï5”²ï²b“½=½fU@öáuºuA—EH"@Œ¤N’`ž¦€8Hyb&?«ËZˆE>„Æœ§ÜÚš>B‘ Ðd¦;o‹¤ýªi:´³VVÜœÔm½å: årìW’`Xµˆ„Ì[8m7L øi}O™:1äÙµOú·:Ç…”øù9é¶´Œñ=³'!Œ5BnšÈq¦¼}ãàZ×Ѓb¼ã0¦âÂXkÉÓ .ÆâÐ癨1µ¼‰æ±‡ÍÙ¬^³Y¼ŒÕÅZËî4£¹PèÓäi`Ió@›µ¥| 3£à;_!IJkX¼«1§†‡ƒå-¬ª¬ðÜÆxD­Ô0ƒ Q«k¼2ÓYáwÆÈ ÏZLÝÚPjM4ƒ`×§ä~LJ K´]-‘Ccì—ÆAHhÞ¤× í¾g[—úì=mžW÷F<øœÍ3hú +Ú±¡xJÝʾuô;É£u@¬ÕöPBîGÀHðÉãbÖ$E¶øUãú›KÔ3JÎÛÈļþ«´pÒ¬|àm¼(Ë̪ëÜQ´œy!"$_ÝÞ*úÒÇK&h°x<&Ó¶…— eˆÇ? ö¼ß^ÿgÍI[ùÄ•Í_<ú/ÜÞÜÔö§ïzzó›ó›ì»Ìq©fù€r\¨ÍǦuÙÞ£Zk…ÿ؃¬¸mÛ¸ÍŃ‘ž«ÿ /¼þ|ûÄûë¹öÜæ?û9$á’'«‚WŠQ¯«ÐÐ|<‡ÒÉ2²¿*Ä>ó´+}²}wÐÈ¿ˆ•ý¡Ä÷´Iî;Ôª¥Ûùï’Óe¤ËJ¤ŬæZ8K‰ È—¹e6¯…\Țˑ'°&CZåy]ñçtì*x –¯‘L}øßƒï Š|pL©ôÁ”›êng÷q>4Óiʀﳼù™cgZÕõGã¼ö Mª{ìvwÞ`tŽ6ti#«»Ê£%Ü‚p$hЬ²åRüqŸ¾ 6¥cmÙãÉ û½P@¯ ÂÙ„Âᬠ€N ËsP¹¹+3]¨ò‚6úÇᑸ‚.Š@Ó8›Œ,{Ÿ:Žšá,ßy^—lM+!h_$†R=³ÞEC+ïËŒkX~o¼EUŠœÓc½üœ'^¶*ïœPƒYßI%ámµÄh}/KÝs^Š“ò‹¼7¼.>írúõ>ÊöR8ü=[g("½ ¡gÞ^SÞŠ7àãéüÝNa½’{D9îöÆØ€Þ3KEªšÿApcêã-¼«QÄ£$GÖq+0‡,Œ¿a: ë]I8ŸÌÜ<°n-Yž†³HâÏs4{ÛgØã¤0ŒX¼U“^¿2¾ûäðê^gêÁ_žž”õEñ˜Œ„I ¤Œ/ÕºY/¹4ß¼_â=YÑQñÍÙËQáòÂêýµ´6>@f' Wz›=„Ú¹5þM/³LAÛ é³»(ïKÙâù1~ž×Y-á}fMó”ÕOi~ í§·ýª­W5×üø5$e©cî ´ÔðøQS²Å˜á6„\’Çk8Ò΃vÆï¦ø”›#xðVÔï]îl« ²à:ß©ù£y¸d.~¼µÊÕ¬Èf´3BA*²)VìË5“)ÆgßßuËî£aX þ=Š5,6¨ë³†è;£°¤;¶²Üîç¬!äæÔïÔó‰ï,^)Ëà4]øsjU>ê„ÚbªDш7µbM™>á5 t ³± ÂÖxcDBIÊ`á 3'ÿ6Æ!<+óE|Õ²¡³wrP¢JTˆF²ã»BjbjòûÚ¿˜u%,ð„ì¾ÝÿyݰílN!Q9±•e9[¸$«àÐz•ª^}«\8VÉTõªìêJùÀº“@øU'('ã d|<¯¯Õü%õ´ynìåÌ  PŒxªxÍ€äüÜ1…·&|ÍѪPB(mö]N¥c CYU %3!Êne¦À¦ÒhÕåH’íTÌH­ZÃ(õ¬î” Er"žñ{ßIX—qx Ge ûèÃ%Ìrf}Ï9çœé½ªüqF¸¹<<d2² ýÔ–hÝTº²YÑQrS¾ÕÔü)çÙœ«â½ˆV领seþ8¨ˆ$¹¶£«×«”ýŸ·íNÅi&)Œg’ÁÙÖå[›½Úþ„¶÷†ï6ÛVl ïGi?R ëYîCn÷‚qÛþ?‚"Ïü‡ z‹ñ‚…ï.”V$xûODìBi%dÞÚ{—ª\äï¿äQýNµ ÛÃ|YG6*‘GènIé:V÷à‡eCåŒ|y5»pðD=™¸ó-à}‹Á ÎŒh¼F uym­Oùp£bšÌ¦|À’#‡‘!—ч7rtOM¤7/¹@£Î…ðfy;ÄV…¢gÐ-†ì}ÿr $yT© 0IOŒd±±°Áš7•dVÍáW¢p€F­¸J@*BVØF¸˜qlÀ`Ь¬’o)+,c,»ÆÏ’@‡< @›ß“XÍí­º íi+¿“ä»zåBŠ»kj˜G êESh¸æ½g%𨛵or¯³>Ë¡-¡WÖñ 1ËV6€·ºyRžÉ§RE œ›s|Œó¸2«°\’ÌA7sfKM®€#NæÓé“{JrÚßj¦á+‰ifb”ÂŒä&¸dI•ôÀƒ0­Õ˜LLÁŸ£‰Qí‹g‰¢T ÎAÈ”9È£¡øÖ fh»zVÐ’ço@·ÜôS×ËwxMj>SÞÇlµWV8Æ1{ÎR3m¡3”ÂJ6kÕ"s*Y-B³ÆþOú?ã拾¡&ÀîÜM…¶z¹â¢ô+‚b^ õŒÊl<€¡À¥¦U­{{þùç«pÉ€‘=Û0bVlÈ\ÏÊM˜ëXc\[çcŸrHÚb¥GvôÐɘÄOTJ»X_™2íMMÀŒ¤‚(ɬ^Â4Ë ¿#¹¹—@ò =wê-âUr#Kp/&Žà)HB5Œéü_Xµ]|6ª[ØšÐkƒK®O„÷!°ŠyqÐB7ŽDq൳r™»÷=xg9Ä¡@õ "` V¦µOyÛÃæDÚ|+9P­?°k )8ÆM²†U0ÅÅã:$Ù“Jè•÷t¨ÐGVÝ’Ù—”´ÝGèÕW0ùtàs$£]Ðàš¢ä°bg ¬bT,}ã8YLÎ¥2Â&¹Ý+æd1ï«D«9äA•¼Œ‡Æ0Z–Êðé}(…,]ôˆAÛËx_´W‹ !Lܺu‡¹æ^8KCa)Àƒ[ÊÇîÎñŠkfúÞÇZ)'ÈcÄÆr¹S²€t4ˆþ½kؘúÂ"1µz^Ä”Sª½‡5Cgži=ÌWh‡ñ0ÃzwDï¼0úºN,>”z/£ÄwŒƒ¾­±1$û' _ž)ûX›µP âëÐ7kŽÕRsã¬ñX°nÌÞ˜ÓÊu£-¼ÕóóXbÁѦùÔ±ðZ Ç~ç=­Þ4‰öûæ‚ßñ`òdz3œ Ö/s©j™£ßí*'97æëœ |šòaнw6.y¨“[ -Ý;+F1´ lžæÊÓFÐãmU\‹¤BÖmªF´ãŒâÅñ,gºÝðøÞÑÍ-ÚùCM‰kÆ“ ­ÃÅ_,¿É~ ™4Ž/ØGë†)[æjîhÔº‘1,¦£¡^öŸU”ÇØ{ú=M¼Âùïž›ù`΃Ao”<ÉôFÙád˜¨¿ï™5?à oxƒÒ£µ¬|w©k¾Sl’ l7Dòð²rÓÿ¼m,>èðþ> ²±í.üû¶ãûÜÜb/þQóçOjßuù¾þÐ^­;°9ðÑÂö =Œœ—·ìà·NÍü#Íñÿíøæ‡~¸Ùµ×®æÖµ·6ß\óÍfû^Û›'-<©9{¯³%7Olû·ýo{gsác.lNÿæéÍß?ðaðãoßßt€¹Sì½§ñ³q8µç,ñh¬†Çû¾ýA÷ö_óçjÀUu¿sS·çÈIEù{ä*~)ÊІ¿`ã9oäºC×ø¶5C×Ý9&ß)é‹ôX•*æB8ÖAh3úGSr!ðõjh\áØÅ3v÷aƒ®.Y’µä„ç›ÙˆfÉŸt2ï6´c>Z7ïjРàWl-úŹ$O|‡baNΘç2"ólä½óªŽ2jwQxšw©X¶Åã=_3~õˆ£Wí­Xúã3žß¾×ÙTäc£5 OáWÀß¹ddއEÈÐ=Ö‹\‹Àš2µò†Ð`(j.{b­  «©q|†Â+,Ž9VaÈò.½n8@*âGDZ¡,€ñ^¤çv€‘Ú$D³˜ò»T2!χy÷å;°ÅÜ.¯ý“ÐE¨´d‡»Z@$k’Ÿõ]KÞ~~/š3ÚÏËÈ z°d 昛¹J&¶fÕ;sO$ƒ¿/l>¨I ºþå}Þ‡Ès—Ócñ´u&ÝOÇ8_7‡NÆÇ\~•fžb o @®Î`j\¶×í&™™RM$'ŒY:©84ol¼ršÎ̘KÃQZµ ŒÌ¤œ7Ìr(ô‰eÃf èÓ,KÆÐF.I´fΊqz߇€@CÞÙüJc¨hçÇœgÓ^ÖÆÚ†!s4Š7 ðîU¦Ì•ð÷®ó6{d,ë²&ŒÎÑXɃ±’Ðö HÉ wåöǹAoÞitîmrɳ{/ý&aM䵫ã³Êõ9žñÙxÎÉaAÕ&x:OEÆ{ÎÓT#7K«8Â}Èãá|Z·™d›ÆÒ¬ xj0žÿ¾3ç¬Ù€yˆÍ<C#ÐGÑX‚°ŒæŸ÷Nlén?¿ô3†YÂüDä¥_‘™C€ÉViíß´ý mß¿íwy÷ƒïn¶,Ûb/›',B³y²¹ù½¶×F|åW¿ÒìüÌÎÆ…äÇž}lsî±ç6·®ºµÙ¯í§´ýȶ»cÄ}Oiû£Úþ‰¶?®íJðÕöÍmï‘QX8‰¡¨tv‡hÆÚÂ&òçЉcß­øÊó`À>z¥$xƒ|¿‘×½ãÆ%ÈÝ¥µxõØYÃ;` |»*ÛC®¯ËXQœÅ+½ã‰dY C¿ #ëkaƒ„lŠF5BÔÈï:6 0rN¦µBïöÏFøÁ˜Ìf”ªÌãâRà¦1/ ÞŽOÚ†ùÆ}ó#³Ð¯çñÔö=‡1¾žYÀRØ;åÄÛ»±e™±gK0€6¥Y˜ ªY70ÍÙ’fÇ›‹lL8¨c2½êrtÈh) âf¤úŽÓÞòä`ø6sèÖx‚‘…Œûœö?D¨ˆÑ4ï¯Êã„. þ€NÉ{sªÌc, ÎæAÌO¯U¯B;6WÊGvñcdÖ¢ÏÂtMä}üu‰Ü;”›§Qžj5" €¥…ò‘q®z•Ï©ÿŽêZ׿êZé^€›Âú¹:Öo‚AY¶Î•ÖƒAÔ³*ŠÀEv]¢Ý¹•.ÓÎ@N`°´cº} óšƒðH9Fï}°ZM‹M¶fÎ 0#üП©qœ{gmUÙRDanå#xÒPå‘`IžWùÈÖL|©·‚™}Ÿ·u·c5@Øæ 1Å;k‚- [[ ˜ø”ê€}ÊOñ¦Þœ>éÂ<ËÞÍÙ¦­=@dž-¼¹Ž™•ŽYQÊ!E!{¨²vÉæ¤’ÃKÔ¦)©»“¥z©ÛƒñìûkÉužiF%ëöm— ¢Ýº²½ ¼í+C<^ßv·WžLv3ì4%¯hû/¶},’"öð˜ýÛ(ŸŠ³éüún!'üô¼`ð9'„@Â*øv߇ŒË1áý9<©#¨Å6Ð9/_ßyónÓ.†´i7„‡tM·÷Îoc€=@¯³œy†IëCù¨Xâ&œÒX”EñÏÂL¾¡ÓP„„ô*|΂G1º}ŽŠ{rf'ÃÌx¼ÍZ ââZÌïÜ­€ö4‹k,íj1ÖbŠeSX­(°P>w"-êûTÏ"M¡à.³#—ŠaBMxä`Ê¥Äswš$·ž0+Ö=y) ¦)+?hWpí%Zn3€¬&|ÆsQî‰)$*‘wkµd ‰ƒÐ÷Žw„òqExBýÑ`NJwÎäqX$…Òä}¥LRvú¼@[Bù¸žÉ{›n]÷[cŽ9iž%±G•:¼%†5ˆ"ZÏÐR4V¦Ì+-§½Gñ^³ÎÁÞ±t 3âõ4¯QËÉMX#úf¨@ÛÄ8æÄªXbücùùÿæO¸@Ž®ªäMš{,áSøI=×€üR<o~1ÕÀã<Ê}¢ÈïáEcÀ²°1–æ>þaBw–‚Z(¿†^~™Àeý¹J†f>(v{J#ËÈ ^—=Ý/aT¢x¸{ËÉ"c0†ÌØÄ…û½±sÂãµ”g§® ®õé“KÄŸ©æùß1%cÕŠN"¼å£k”†Úl»æ¬+˜Ó…Õ9KB¯ºúk›|¬y{Û·´ý?µýè¶«í¯nû%mïÚÓÚ~VÛ§)¡ h‘0-GÉû0Ì2X yÈ1€ï €œ¬sqÓO?®ÁCöˆïˆ¢¦ñóªGÕ™fµ¨w!“Zô0Ü=íŽgÞØà®‚ ü®â,BN÷´Š—«ø-¾ð„‘¥!ç:l`<¼ãCr1ÉTr]øÎÔ½t¾üŽ0-ãwd>ŠÆ¬Y<›¬¡zv]+cÁ²æ7òbU|·Ž.ÐóÛ}OÆŸ½S§hø¾gåçà~·o¿þ6ök‡a§Õ’xû¹ ˜ýcµ ¨ª›\3y¢…ݱX£–Áˆïžtkë^}ã MŒƒÀct‰•S/œ†<+ÞS¬¢™w}°±[aæÈw¸ öˆ8Æsb/W¦*1)9Þèô1ŸúìáAø`0à—* •Có¬A•Â1+V8s­Ï‹wƒ>Óã• N¿X¾°¨éj¬ñèž{ϺÜsî `øJë†Ûo¢ÇŽæØ‘{‘þˆ¦<•<Š¥æc‘Óœ)öõ2­_uKsp‹üHï„)43DAN s§àc}g†ã{ Ž£,]Xþc[¥•Þp„\œ=èRœ—†_÷d‘£Æ «P.v\oÁ–ÑÊiã/zénèj,¾$Ë9.)½Æ%¥w¨n3Ú›n3#K¶Ñ t©>¹.Àø>uÞBþã5äuœ²ÀÒ·4»×ßÞ´6ÞpdÎÉáMä§òòM³›ê0ŽŒF “æ}q jþ¹9ñ[Ø“ùÂ[Ã{Ð>fý°¥ìCìîX¤í|[¤þ®úHòJ2’¾7]ĉCÇ®Rt|Žƒ>: 2¸»Ãy€n„›éÁ2]…íùOÀf|müGŸ˜Ïo3¬°‹¤å»¨ ˆêEvYƒeóIFi‚ÚÍQîÛG"7‚ ýº¡W{^ìö§bß  Ÿ¶Õô§É¬éSƒix3]`s[ЇŽ{ÑÚŠy’½_ƒf³¾kîn1ä#x]AŽLÍ5oO$ m é¾ï‚ã¼£È:¹–qmHpÜÛRŠYX²iƘ–%âX±¢µë]åd÷“ñ†¸Q®Ïý8 ´]³\çb ¡<Èmæ÷ª€[ c%:ÖàjTYÖPo@PZZDò; Aà—”÷Èb|Ò‚]¯ ôÞ½{­ÈK77»Šæÿd,ËéÒ W îñ*÷£<—…ïš´8L¹:æ‘CÌÐáhNœœ›9ÐÑ,ô$'­ \©6åµ0é®ù‘4lÓ;€[‰n[¤Äâ{3¯@OZÇåªò€¾õœÛ^I„Ž79ÙÝ$|—‡vrUîD˰âØÑãà®/I«¯ -h]÷Éše¸Wõvc]·cµö¬ä¥§ ¶n¿g7\¾Á £ØÍ’·_%,̉op»ùÁè™[ôEjWù<ó'µ÷õfHTÔý+¾Ÿ‹‘‡8]ˆ÷ Ås<_¡ÁIÁ\Çà´IÆH欜àû"Çw“Qõ'†Ã@FËnˆÑ+%­ùÈú?Ê^·f9.4ïëÑ„~ŠáìçT¤I³)>ƒ "|†]• Æe†øŠæŸ¯§ˆ+×™» ŒÄXÀQKᬙ:/Έ1Ü%"ê-À©¯Fˆ8>ã¾| cº¦1`gaØc¬}ªT3%{:Läžä3èèFŽÌæaŒäŠ·dãºÖ{Zݨ5^ë#sž„–Cð–Oaj ª•hòÝÊt{Å1patï˜Ã©É€[»×p'w³*ßó©â$ü´ ?­„¥ÇYÿ#â_6EÆç xy°‘ß’û)¸|nÆ¥pà e'y»Ý²'UúQ†_y‚‹Ððq2%Ý”ö'œtÉÓìé2Yη’ñêpžNRÈj|p‹{o}(<‡ÌµâPׇµ¡Ñ F{€ïÏ£S-ÃÒ§Žš>ŽËtºo?½ÆØc Ø[áé.>ƒt›:/ÿ OîßMÜ$áµÕû!àm‘½üË`K™lßÝÅ}Ð,ááëBÃÞ2ÈÎ1ô`'ó÷]˜?æ™»Pa`•e Í!& xì I·Óìµæ´@¦R⃼ü `%zýþaeC\ø¾©ÈÅù• dš_ ¢ñgBÅ[!¨|ÝCçh…¿qê«ÈÚ*ìèjp%å»>]€Üb‡ÎÁðvZª+…×÷ ÷äD;P&Ï"0¿»×,¾Ëu`¿…ýý}pÄÐ áƒ;Ñ£;À]4,×fçÄïˆÂ_˜yù j^ÁV ¯Eçe}ÇnÓÈclf7åI[=¯º/ÈÙeþ îÙXX§p€Ÿ‰9œžq”ê˜` Þ æ8ó¬aJœ€SWpê$KˆuÎÖ¿Ú=~aªWf×7ÔÚm vk“eñÝ—¿X3 Ý´E¢5uÝxÑ>¬}?„Á¸¤ Ï|cÀŒcd ²0u¯£ì¢Â¸ÓdåŽ`ðŸBð’Ð ¯û¶2{9Ž5è[}¥~h9™Ì{‘fðÁà~ -+Cq²>ëI°&:k µfUƒ£·! ­m¯Â7³*ì & ìfl3ÇW k<è˜Qù >FyÆÌÙ¥Yš*2‚Y ÎC»4ë¸ìËàc°»¡³:¦ºäaV‚ÝcÌq^\BY§ ón– ¤Žý5jfW`©a1|ͰÎÓðÜqx<ËžFp ^ƒ2M(FƒNNàü8'ÐÐÞö ž8õ­Æù” Úyhô k¼½ôèË€³ðp º? ½Æ ß’ðé(yçë\$±ÞvFytûY ý¶NY{ýœ=½Ž€´½šRÕ«ðÂÛ3Lp<Ü~I|5ª]q3Ñ7s6ŸàmœF†[нwÂÛ=8ÏŽÝ”yõ"Í>ÏZº‘D(Ž4 ÁÈÎaðwÁid­õ(À+ƒ’ì1\îD­ŠdVp¹meÔ­Œ88ÃÙåŽÌ®„L“+˜L‹2$)ô3:á·0ð¶ þÁš€Ä“ë« ü ÎpÉßЊ~8#o%Nûª@] ½…¯³rãÝ%äwˆÏI~³¬A"ó¥ÐA›4ÉãH)lÚ“è„à–zrÐ,\íbþ^|ƒ¤ì©~—ÄeE^Nm+û~нžÆnôx‡Øì˜Îï$ׯ2÷qpÃìRÍ:µŠ¹ôqiäþ&Àî=‹^{Š5e|2 ø®C²s"©À½ ˆ½VŽÉ£žä &Å‹ ÁÀp {`²Õ®CÍ\Y¦qÉãù’§86ÀÙœnÛ·dÅN r«ýOÞ n×ÐÚ‰ „e½`ЮJuolY†é¿Îqã‚§Ç›>š& ÁvÒûØKLûpÂwE²Z­ô‘܇"ñöɼi¡¿ƒPå‚Ö ¼—zì¾rဋI2cß¶õWј…—Ö(tó¹œiöPák {^´Á'ë]ª"Ç鼦 YFŒ5·áöÈ!I18z¢2ͺG˜û’}'óë¼í$%ÖG¿ïGJpæÈ'Φàë:r_8¬¿S§FN¢M@°ŸQð6£YBhÒ œöjê}µœ üÃ(ÎßfFs§ nÒç´j‡ÖUœ‚œr„1 ×9š¼­ÂkíZަή»ÓÐ(-ÙÓk|Ÿ:é¶>œÂm؃˜Sã=L`6íçJÈJg}2ߪk®2{? (Ïiés#2Ô Þ6‚7‚7Åú¼§Ià. Ì9)ùkO·¡Ã»$)Õ ÿóe€ñØìËÐr#pDvª+•d-#êÿ¿ýø}·¯è÷OÑã׉bwÁC‘Ÿ“ˆ)ñArà©»@’6¼‘„¢tŒÄãTF=ÁÅ¢à è7Yö8 ÝÁUzuƒ£«£:¿ÓFó4c¾žâj‡tÔA‡Í8ÜýÀk(ñ–û“èƒd(_®o ú»º­®Ú9צβ§«bR|§ûQ½ÖÊü=bc[Ô/šÁvŽŠÍ6x±ëµµÀ=Eñ Îo^)}úq}fÀoÁ‹`Ïÿâ _ –{çoœá/Á"Z Pz®ÂnAh–U Ÿ—¬ZNj°—ËU6.÷过æ¹Ê®Ÿ³[ *ººÑÞ×`ï‘g aùÙýl¤òGƒV]Òaâœ|Nñнje|‚F<£&å ùƒ”8ø"àÒ}T˶” g–“«‡€3‚Š ý“Œ„ÛKáðí‚d9”ß 2'µØ¡•`-ù„ÛÝ ý’' Ú7ëv1³àEðÖ¬„{L­\••’ÍBpšÐ&ΜÀÉ{àԇܴÈ(”£KÂU£½ä½Éà«4s$7’qÏ Œ`8ÁAv‡8[šñ¼ÆÐÀ#ؾ°ÞK×ËÄ[øjáSxÄqÖ\¼A{o' Éê2ìfV#ŸÍ&|j Ö’Gfk=ü>ˆ:ŸßˆìZI×=IFºŠß¬‰t¡{|ä)T¼¡žU·ÄÇÿŸ^Lìh‹ö$ðv”8Õ9~úky­–Éi9»׬³rßùi)Ó7À1Ô7ðÃqm¶ú šP›­ûŠùå2|>Pºý»½»y•)Žã8>g£<>\7‘Ò½(ÂFJYJ±Q ; %ùìø,”" e'O+.¥DÊCs͵Æå^ƘދoŽî9÷žÌ˜ÓûUgs6¿ætæÞóíÌç÷ÉaK’3ÒþGë$L¦g;Çq&û„€öïnƒn¡KEu».âöµÜHO@îró‘p¤'u†ÀÞNäíÄÖ¯ò¾¸J0zœóY×y˜·-'é©g¬ó™í ¡´ç{rŸeÜoƒö½i§>SYÙŒAYGÅïÞÝ@;%¸nÅ¿§ùó%Pñgõúou5#&0@Ïùÿg—ãæÈ&¶Žå§I'bQQG7ãÑh4f~ BȺSÇß-úé´t¦² çÉf|¯ôÇ|>ëáÔ$àšúíé9ŠÛd2Þ1 g"g1Êr€ÌÂò¿ä“¾±ÎSÖ¸C¦gº"I’¤ ¦/åÔ%}……ý“/R˜õɽ_êäbv†€þPÈDL…­ZÇBZ³š’°Î.ÖÙÆpW ¿ãl’Wy@Øj‚õKM’$ÉD yH>C‘U±Öøt†bŒš£û„iû­F6c-Á¨!ÎÅ€×+Œ=ç¤Â~#±„2l=ûšu&Y§ô$I’@Tew‚£äF tÄlÃ$Ø×horþQ‹¡àò ¡èÂb 4ß:å'I’ä¢:Û¡¨f4µeo†Ø^N‡Ä JånÒO0U‘$I’@ºR6„|Ävú j9®m;«›‰=$C1ÎyI’$ÉD©Þ¥!·@ù⬴F¶B I’$ÉDÉŠ…ÚélCùI’$é÷Zš7z8@IEND®B`‚crossfire-1.70.0/test/templates/error.png0000644000014500000120000000044111731300516015312 00000000000000‰PNG  IHDRóÿaèIDATxÚÍ’É ‚`…}<ŸÁr6µ÷Šè-ÜÖ¦usHDEEsØÄízà¡ÁŒýð-ÏwŽ¥ÿ~5Y¦˜¯Ã·r@’7|åàÅ÷äœ=šÕ*8º.‡OŽ˜ ÀÆqheÛ|$ˆ\­B°°,š™&™anFx_*%‚‰aÐX×i¤id¶˜µm ‚¡ªÒàÍá Øqû’g7*ª3qpP,R¯P .ÉSïÇóÑ>7MÌSᎢP›àÙOÃ×Ç·óÅq4ñ }ˆpëQ’0ë8˜?5 !@{:Üyµ"Ò¯Þ1Þ3ÀäB;ËIEND®B`‚crossfire-1.70.0/test/templates/success.png0000644000014500000120000000041011731300516015625 00000000000000‰PNG  IHDRóÿaÏIDATxÚµ“[‚0EÙ1«¿ýwa¾A">â#ÆD§æ45XA?hrÒ4ôžt:Åég¸ÎÃÆïÁLX ¹šY'­"Â+B¥PÁF(”IˆÄ*È ÔÂ^80o‘dB„à#œ ›ÂY¸'$•sŠ )Ñu—ÂŽÐM¸ W„ž Aø¯`H`À=!°—PóqL :<ê*!1@bÂ^ã}›`©ÛÈæÊÔLØ´qö­ý\æô- #include #include #ifndef __CEXTRACT__ #include "../include/toolkit_common.h" #endif #define STATUS_LOGDIR 0x0001 #define STATUS_DATADIR 0x0002 #define STATUS_CONFDIR 0x0004 #define STATUS_GLOBALS 0x0100 #define STATUS_HASHTABLE 0x0200 #define STATUS_OBJECTS 0x0400 #define STATUS_VARS 0x0800 #define STATUS_BLOCK 0x1000 #define STATUS_BMAP 0x2000 #define STATUS_ANIM 0x4000 #define STATUS_ARCH 0x8000 #define SET_TKFLAG(__flag) (status_flag |= __flag) #define CHECK_TKFLAG(__flag) (status_flag&__flag) #define CCTK_ASSERT(__flag) { \ if (!CHECK_TKFLAG(__flag)) \ fail("Improper initialisation, flag 0x%H", __flag);\ } static int status_flag = 0; /** * set the logdir to use */ void cctk_setlog(const char *logfile) { settings.logfilename = logfile; SET_TKFLAG(STATUS_LOGDIR); } void cctk_setdatadir(const char *datadir) { settings.datadir = datadir; SET_TKFLAG(STATUS_DATADIR); } void cctk_setconfdir(const char *confdir) { settings.confdir = confdir; SET_TKFLAG(STATUS_CONFDIR); } /** * Loads up to archetype initialisation using standard crossfire files in source * tree. This function requires that cctk_setlog and cctk_setdatadir have both * been run already. */ void cctk_init_std_archetypes(void) { CCTK_ASSERT((STATUS_LOGDIR|STATUS_DATADIR)); settings.archetypes = "archetypes"; settings.treasures = "treasures.bld"; init_globals(); init_hash_table(); init_stats(FALSE); init_objects(); init_vars(); init_block(); read_bmap_names(); read_smooth(); init_anim(); init_archetypes(); SET_TKFLAG(STATUS_GLOBALS|STATUS_HASHTABLE|STATUS_OBJECTS|STATUS_VARS|STATUS_BLOCK|STATUS_BMAP|STATUS_ANIM|STATUS_ARCH); } /** * Initialize a simple object. Make it appear as an actual ingame object * by setting appropriate flags (so it is part of game, not just a storage) * Requires arch and object initialized in status flag * @param archname the archetype name to use (NULL= default one) * @return created object, including its more parts, or NULL if archetype doesn't exist. */ object *cctk_create_game_object(const char *archname) { archetype *arch; object *obj; CCTK_ASSERT((STATUS_OBJECTS|STATUS_ARCH)); if (archname == NULL) archname = "empty_archetype"; arch = find_archetype(archname); if (arch == NULL) return NULL; obj = object_create_arch(arch); if (obj == NULL) return NULL; CLEAR_FLAG(obj, FLAG_FREED); return obj; } /** * Set all strings in given object to given parameter string, used for * checking cleaning of objects, mainly * @param op The object to initialize * @param string The string to set in all object's char *fields */ void cctk_set_object_strings(object *op, const char *string) { op->name = add_string(string); op->name_pl = add_string(string); op->title = add_string(string); op->race = add_string(string); op->slaying = add_string(string); op->skill = add_string(string); op->msg = add_string(string); op->lore = add_string(string); op->materialname = add_string(string); } crossfire-1.70.0/test/toolkit/toolkit_crossedit.c0000644000014500000120000000035611731300516017057 00000000000000/* place holder for now, feel free to replace this place holder with something * useful, it is there only so that toolkit.a has a bit of content. */ #include "../include/toolkit_crossedit.h" int blablabla(int bla) { return bla; } crossfire-1.70.0/test/toolkit/toolkit_server.c0000644000014500000120000000035311731300516016363 00000000000000/* place holder for now, feel free to replace this place holder with something * useful, it is there only so that toolkit.a has a bit of content. */ #include "../include/toolkit_server.h" int blablabla(int bla) { return bla; } crossfire-1.70.0/test/toolkit/Makefile.in0000644000014500000120000004632611732537023015231 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = test/toolkit DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libtoolkit_common_a_AR = $(AR) $(ARFLAGS) libtoolkit_common_a_LIBADD = am_libtoolkit_common_a_OBJECTS = toolkit_common.$(OBJEXT) libtoolkit_common_a_OBJECTS = $(am_libtoolkit_common_a_OBJECTS) libtoolkit_crossedit_a_AR = $(AR) $(ARFLAGS) libtoolkit_crossedit_a_LIBADD = am_libtoolkit_crossedit_a_OBJECTS = toolkit_crossedit.$(OBJEXT) libtoolkit_crossedit_a_OBJECTS = $(am_libtoolkit_crossedit_a_OBJECTS) libtoolkit_random_maps_a_AR = $(AR) $(ARFLAGS) libtoolkit_random_maps_a_LIBADD = am_libtoolkit_random_maps_a_OBJECTS = toolkit_random_maps.$(OBJEXT) libtoolkit_random_maps_a_OBJECTS = \ $(am_libtoolkit_random_maps_a_OBJECTS) libtoolkit_server_a_AR = $(AR) $(ARFLAGS) libtoolkit_server_a_LIBADD = am_libtoolkit_server_a_OBJECTS = toolkit_server.$(OBJEXT) libtoolkit_server_a_OBJECTS = $(am_libtoolkit_server_a_OBJECTS) libtoolkit_socket_a_AR = $(AR) $(ARFLAGS) libtoolkit_socket_a_LIBADD = am_libtoolkit_socket_a_OBJECTS = toolkit_socket.$(OBJEXT) libtoolkit_socket_a_OBJECTS = $(am_libtoolkit_socket_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libtoolkit_common_a_SOURCES) \ $(libtoolkit_crossedit_a_SOURCES) \ $(libtoolkit_random_maps_a_SOURCES) \ $(libtoolkit_server_a_SOURCES) $(libtoolkit_socket_a_SOURCES) DIST_SOURCES = $(libtoolkit_common_a_SOURCES) \ $(libtoolkit_crossedit_a_SOURCES) \ $(libtoolkit_random_maps_a_SOURCES) \ $(libtoolkit_server_a_SOURCES) $(libtoolkit_socket_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include -I../include -DRESSOURCES=\"$(srcdir)/../../resources\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(srcdir)/../../\" noinst_LIBRARIES = libtoolkit_common.a libtoolkit_random_maps.a libtoolkit_socket.a libtoolkit_server.a libtoolkit_crossedit.a libtoolkit_common_a_SOURCES = toolkit_common.c libtoolkit_random_maps_a_SOURCES = toolkit_random_maps.c libtoolkit_socket_a_SOURCES = toolkit_socket.c libtoolkit_server_a_SOURCES = toolkit_server.c libtoolkit_crossedit_a_SOURCES = toolkit_crossedit.c all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/toolkit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu test/toolkit/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libtoolkit_common.a: $(libtoolkit_common_a_OBJECTS) $(libtoolkit_common_a_DEPENDENCIES) $(EXTRA_libtoolkit_common_a_DEPENDENCIES) -rm -f libtoolkit_common.a $(libtoolkit_common_a_AR) libtoolkit_common.a $(libtoolkit_common_a_OBJECTS) $(libtoolkit_common_a_LIBADD) $(RANLIB) libtoolkit_common.a libtoolkit_crossedit.a: $(libtoolkit_crossedit_a_OBJECTS) $(libtoolkit_crossedit_a_DEPENDENCIES) $(EXTRA_libtoolkit_crossedit_a_DEPENDENCIES) -rm -f libtoolkit_crossedit.a $(libtoolkit_crossedit_a_AR) libtoolkit_crossedit.a $(libtoolkit_crossedit_a_OBJECTS) $(libtoolkit_crossedit_a_LIBADD) $(RANLIB) libtoolkit_crossedit.a libtoolkit_random_maps.a: $(libtoolkit_random_maps_a_OBJECTS) $(libtoolkit_random_maps_a_DEPENDENCIES) $(EXTRA_libtoolkit_random_maps_a_DEPENDENCIES) -rm -f libtoolkit_random_maps.a $(libtoolkit_random_maps_a_AR) libtoolkit_random_maps.a $(libtoolkit_random_maps_a_OBJECTS) $(libtoolkit_random_maps_a_LIBADD) $(RANLIB) libtoolkit_random_maps.a libtoolkit_server.a: $(libtoolkit_server_a_OBJECTS) $(libtoolkit_server_a_DEPENDENCIES) $(EXTRA_libtoolkit_server_a_DEPENDENCIES) -rm -f libtoolkit_server.a $(libtoolkit_server_a_AR) libtoolkit_server.a $(libtoolkit_server_a_OBJECTS) $(libtoolkit_server_a_LIBADD) $(RANLIB) libtoolkit_server.a libtoolkit_socket.a: $(libtoolkit_socket_a_OBJECTS) $(libtoolkit_socket_a_DEPENDENCIES) $(EXTRA_libtoolkit_socket_a_DEPENDENCIES) -rm -f libtoolkit_socket.a $(libtoolkit_socket_a_AR) libtoolkit_socket.a $(libtoolkit_socket_a_OBJECTS) $(libtoolkit_socket_a_LIBADD) $(RANLIB) libtoolkit_socket.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toolkit_common.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toolkit_crossedit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toolkit_random_maps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toolkit_server.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toolkit_socket.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am proto: cproto -D__CEXTRACT__ -o ../include/toolkit_common.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_common_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_common.h cproto -D__CEXTRACT__ -o ../include/toolkit_random_maps.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_random_maps_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_random_maps.h cproto -D__CEXTRACT__ -o ../include/toolkit_socket.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_socket_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_socket.h cproto -D__CEXTRACT__ -o ../include/toolkit_server.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_server_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_server.h cproto -D__CEXTRACT__ -o ../include/toolkit_crossedit.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_crossedit_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_crossedit.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/test/toolkit/Makefile.am0000644000014500000120000000317311731300516015203 00000000000000AM_CPPFLAGS = -I$(top_srcdir)/include -I../include -DRESSOURCES=\"$(srcdir)/../../resources\" -DLOGDIR=\"$(top_builddir)/test/logs\" -DSOURCE_ROOT=\"$(srcdir)/../../\" noinst_LIBRARIES = libtoolkit_common.a libtoolkit_random_maps.a libtoolkit_socket.a libtoolkit_server.a libtoolkit_crossedit.a libtoolkit_common_a_SOURCES = toolkit_common.c libtoolkit_random_maps_a_SOURCES = toolkit_random_maps.c libtoolkit_socket_a_SOURCES = toolkit_socket.c libtoolkit_server_a_SOURCES = toolkit_server.c libtoolkit_crossedit_a_SOURCES = toolkit_crossedit.c proto: cproto -D__CEXTRACT__ -o ../include/toolkit_common.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_common_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_common.h cproto -D__CEXTRACT__ -o ../include/toolkit_random_maps.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_random_maps_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_random_maps.h cproto -D__CEXTRACT__ -o ../include/toolkit_socket.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_socket_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_socket.h cproto -D__CEXTRACT__ -o ../include/toolkit_server.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_server_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_server.h cproto -D__CEXTRACT__ -o ../include/toolkit_crossedit.h $(INCLUDES) $(CPPFLAGS) $(AM_CPPFLAGS) \ `echo $(libtoolkit_crossedit_a_SOURCES) " " | $(AWK) -v RS=" " '/.c$$/ { print }'` chmod 644 ../include/toolkit_crossedit.h crossfire-1.70.0/test/toolkit/toolkit_random_maps.c0000644000014500000120000000036011731300516017353 00000000000000/* place holder for now, feel free to replace this place holder with something * useful, it is there only so that toolkit.a has a bit of content. */ #include "../include/toolkit_random_maps.h" int blablabla(int bla) { return bla; } crossfire-1.70.0/Makefile.am0000644000014500000120000000114711731300547012542 00000000000000XSLTENGINE= @XSLTENGINE@ if HAVE_CHECK UNIT_TEST = test endif SUBDIRS = include common random_maps socket types server lib utils doc plugins devel $(UNIT_TEST) EXTRA_DIST = AUTHORS ChangeLog COPYING DEVELOPERS autogen.sh run_win32.bat DISTCHECK_CONFIGURE_FLAGS = --localstatedir=$$dc_install_base/var --mandir=$$dc_install_base/man ACLOCAL_AMFLAGS = -I macros --install archives: dist (cd doc; make archive) (cd lib; make archive) proto: (cd common; make proto) (cd server; make proto) (cd plugins; make proto) (cd types; make proto) clean-local: $(RM) configtest.out configtest.xml configtest.xsl crossfire-1.70.0/autogen.sh0000644000014500000120000000023311731300547012477 00000000000000#!/bin/sh libtoolize -f -c || exit 1 aclocal -I macros --install || exit 1 autoheader || exit 1 automake -a -c || exit 1 autoconf || exit 1 ./configure $* crossfire-1.70.0/socket/0000755000014500000120000000000011732537043012057 500000000000000crossfire-1.70.0/socket/requestinfo.c0000644000014500000120000003733411731300524014510 00000000000000/* * static char *rcsid_requestinfo_c = * "$Id: request.c 13308 2010-05-28 06:12:12Z kbulgrien $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2001-2006,2010 Mark Wedel Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to crossfire-devel@real-time.com */ /** * \file * requestinfo protocol handling. * * \date 2010-07-04 * * This file implements all of requestinfo protocol commands/responses. * This was broken from request.c as that file as getting quite large * and throwing everything into that file was making it fairly unmanageable. * */ #include #include #include #include #include #include #include /* This block is basically taken from socket.c - I assume if it works there, * it should work here. */ #ifndef WIN32 /* ---win32 exclude unix headers */ #include #include #include #include #include #endif /* win32 */ #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SYS_TIME_H #include #endif #include "sounds.h" /* Note that following protocol commands (was corresponding function) * are in image.c and not this file, even though they are requestinfo * commands: * image_sums -> send_image_sums() * image_info -> send_image_info() * * The order of the functions here is basically the order they * are called in from request_info_cmd() from loop.c */ /** * This sends the skill number to name mapping. We ignore * the params - we always send the same info no matter what. */ void send_skill_info(socket_struct *ns, char *params) { SockList sl; int i; SockList_Init(&sl); SockList_AddString(&sl, "replyinfo skill_info\n"); for (i = 1; i < NUM_SKILLS; i++) { size_t len; len = 16+strlen(skill_names[i]); /* upper bound for length */ if (SockList_Avail(&sl) < len) { LOG(llevError, "Buffer overflow in send_skill_info, not sending all skill information\n"); break; } if (params != NULL && *params == '1') { if ((skill_faces[i] != -1) && !(ns->faces_sent[skill_faces[i]]&NS_FACESENT_FACE)) esrv_send_face(ns, skill_faces[i], 0); SockList_AddPrintf(&sl, "%d:%s:%d\n", i+CS_STAT_SKILLINFO, skill_names[i], skill_faces[i]); } else SockList_AddPrintf(&sl, "%d:%s\n", i+CS_STAT_SKILLINFO, skill_names[i]); } Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * This sends the spell path to name mapping. We ignore * the params - we always send the same info no matter what. */ void send_spell_paths(socket_struct *ns, char *params) { SockList sl; int i; SockList_Init(&sl); SockList_AddString(&sl, "replyinfo spell_paths\n"); for (i = 0; i < NRSPELLPATHS; i++) { size_t len; len = 16+strlen(spellpathnames[i]); /* upper bound for length */ if (SockList_Avail(&sl) < len) { LOG(llevError, "Buffer overflow in send_spell_paths, not sending all spell information\n"); break; } SockList_AddPrintf(&sl, "%d:%s\n", 1<name) { SockList_AddLen8Data(sl, op->name, strlen(op->name)); } /* It is conceivable some may lack messages */ if (op->msg) { SockList_AddString(sl, "msg "); SockList_AddShort(sl, strlen(op->msg)); SockList_AddData(sl, op->msg, strlen(op->msg)); } SockList_AddString(sl, "stats "); /* Only send non zero stats. More stats could be added here, * but ideally, the text description (op->msg) should give information * about resistances and other abilities. * Send stats last - if the client gets a stat it does not understand, * it stops processing this replyinfo. */ AddShortAttr(op->stats.Str, CS_STAT_STR); AddShortAttr(op->stats.Int, CS_STAT_INT); AddShortAttr(op->stats.Pow, CS_STAT_POW); AddShortAttr(op->stats.Wis, CS_STAT_WIS); AddShortAttr(op->stats.Dex, CS_STAT_DEX); AddShortAttr(op->stats.Con, CS_STAT_CON); AddShortAttr(op->stats.Cha, CS_STAT_CHA); /* Terminator for the stats line */ SockList_AddChar(sl, 0); /* Handle any race/class_choice options - * the code is exactly the same, except for * name of field we are looking for. */ if (op->type == CLASS || op->type == PLAYER) { int i=1; char buf[MAX_BUF]; const char *value, *value1; char *lasts, *mychoices, *token; while (1) { if (op->type == PLAYER) { snprintf(buf, MAX_BUF, "race_choice_description_%d", i); value = object_get_value(op, buf); snprintf(buf, MAX_BUF, "race_choice_%d", i); value1 = object_get_value(op, buf); } else { /* Must be class */ snprintf(buf, MAX_BUF, "class_choice_description_%d", i); value = object_get_value(op, buf); snprintf(buf, MAX_BUF, "class_choice_%d", i); value1 = object_get_value(op, buf); } if (value && value1) { SockList_AddString(sl, "choice "); SockList_AddLen8Data(sl, buf, strlen(buf)); SockList_AddLen8Data(sl, value, strlen(value)); i++; /* value1 now contains a list of archetypes */ /* Following operations modify string */ mychoices = strdup_local(value1); /* split_string() requires we have some * idea on number of fields - in this case, * we really have no idea - one could conceive * of a choice of 50 weapons - using strtok_r * is just as safe and will scale to any amount. */ token = strtok_r(mychoices, " ", &lasts); while (token) { archetype *arch; arch = try_find_archetype(token); if (arch) { SockList_AddLen8Data(sl, token, strlen(token)); SockList_AddLen8Data(sl, arch->clone.name, strlen(arch->clone.name)); } else { LOG(llevError, "send_arch_info: Unable to find archetype %s\n", token); } token = strtok_r(NULL, " ", &lasts); } free(mychoices); /* Terminator byte */ SockList_AddChar(sl, 0); } else { break; } } } /* Any addition to data to send should be at the end of the * function - in other words, the order of data sent here should * match order of addition. In that way, the newest additions are * sent last, so client can process this data until it gets * something it does not understand - if new data (subfields in the * replyinfo) are sent first, the client basically has to stop * processing once it gets something it does not understand. */ } /** * Creates the appropriate reply to the 'race_list' request info. * * @param sl * suitable reply. */ static void build_race_list_reply(SockList *sl) { archetype *race; SockList_AddString(sl, "replyinfo race_list "); for (race = first_archetype; race; race = race->next) { if (race->clone.type == PLAYER) { SockList_AddPrintf(sl, "|%s", race->name); } } } /** * Send the list of player races to the client. * The reply is kept in a static buffer, as it won't change during server run. * * @param ns * where to send. * @param params * ignored. */ void send_race_list(socket_struct *ns, char *params) { static SockList sl; static int sl_initialized = 0; if (!sl_initialized) { sl_initialized = 1; SockList_Init(&sl); build_race_list_reply(&sl); } Send_With_Handling(ns, &sl); } /** * Sends information on specified race to the client. * * @param ns * where to send. * @param params * race name to send. */ void send_race_info(socket_struct *ns, char *params) { archetype *race = try_find_archetype(params); SockList sl; SockList_Init(&sl); SockList_AddPrintf(&sl, "replyinfo race_info %s\n", params); /* do not let the client arbitrarily request information about * any archetype, so put a check in here for the right clone type. */ if (race && race->clone.type == PLAYER) { send_arch_info(&sl, &race->clone); } Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Creates the appropriate reply to the 'class_list' request info. * * @param sl * reply. */ static void build_class_list_reply(SockList *sl) { archetype *cl; SockList_Reset(sl); SockList_AddString(sl, "replyinfo class_list "); for (cl = first_archetype; cl; cl = cl->next) { if (cl->clone.type == CLASS) { SockList_AddPrintf(sl, "|%s", cl->name); } } } /** * Sends the list of classes to the client. * The reply is kept in a static buffer, as it won't change during server run. * * @param ns * client to send to. * @param params * ignored. */ void send_class_list(socket_struct *ns, char *params) { static SockList sl; static int sl_initialized = 0; if (!sl_initialized) { sl_initialized = 1; SockList_Init(&sl); build_class_list_reply(&sl); } Send_With_Handling(ns, &sl); } /** * Send information on the specified class. * * @param ns * where to send. * @param params * class name to send. */ void send_class_info(socket_struct *ns, char *params) { archetype *class = try_find_archetype(params); SockList sl; SockList_Init(&sl); SockList_AddPrintf(&sl, "replyinfo class_info %s\n", params); /* do not let the client arbitrarily request information about * any archetype, so put a check in here for the right clone type. */ if (class && class->clone.type == CLASS) { send_arch_info(&sl, &class->clone); } Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Send information on the specified class. * * @param ns * where to send. */ void send_map_info(socket_struct *ns) { archetype *m; SockList sl; SockList_Init(&sl); SockList_AddPrintf(&sl, "replyinfo startingmap\n"); for (m = first_archetype; m; m = m->next) { if (m->clone.type == MAP && m->clone.subtype == MAP_TYPE_CHOICE) { SockList_AddChar(&sl, INFO_MAP_ARCH_NAME); SockList_AddLen16Data(&sl, m->name, strlen(m->name)); SockList_AddChar(&sl, INFO_MAP_NAME); SockList_AddLen16Data(&sl, m->clone.name, strlen(m->clone.name)); /* In theory, this should always be set, but better not to crash * if it is not. */ if (m->clone.msg) { SockList_AddChar(&sl, INFO_MAP_DESCRIPTION); SockList_AddLen16Data(&sl, m->clone.msg, strlen(m->clone.msg)); } } } Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Sends the desired file to the client. In all * three cases, we are basically just dumping file * contents to the client - nothing more. * * @param ns * socket to send to * @param file * Which file to send - string of either motd, news, rules */ void send_file(socket_struct *ns, const char *file) { char buf[MAX_BUF]; FILE *fp; SockList sl; if (!strcmp(file,"motd")) snprintf(buf, sizeof(buf), "%s/%s", settings.confdir, settings.motd); else if (!strcmp(file,"rules")) snprintf(buf, sizeof(buf), "%s/%s", settings.confdir, settings.rules); else if (!strcmp(file,"news")) snprintf(buf, sizeof(buf), "%s/%s", settings.confdir, settings.news); else { LOG(llevError,"send_file requested to send unknown file: %s\n", file); return; } fp = fopen(buf, "r"); if (fp == NULL) return; SockList_Init(&sl); SockList_AddString(&sl, "replyinfo "); SockList_AddString(&sl, file); SockList_AddString(&sl, "\n"); while (fgets(buf, MAX_BUF, fp) != NULL) { if (*buf == '#') continue; SockList_AddString(&sl, buf); } fclose(fp); SockList_AddChar(&sl, 0); /* Null terminate it */ Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Sends information related to creating a new character * to the client. * * @param ns * socket to send to */ void send_new_char_info(socket_struct *ns) { char buf[MAX_BUF]; int i; size_t len; SockList sl; SockList_Init(&sl); SockList_AddString(&sl, "replyinfo newcharinfo\n"); snprintf(buf, MAX_BUF, "V points %d", settings.starting_stat_points); /* We add +1 to the length so that the null (terminator) byte * gets included - this make processing on the client side easier. */ SockList_AddLen8Data(&sl, buf, strlen(buf) + 1); snprintf(buf, MAX_BUF, "V statrange %d %d", settings.starting_stat_min, settings.starting_stat_max); SockList_AddLen8Data(&sl, buf, strlen(buf) + 1); snprintf(buf, MAX_BUF, "V statname "); len = strlen(buf); for (i=0; i #include #include #include #include #include #include /* This block is basically taken from socket.c - I assume if it works there, * it should work here. */ #ifndef WIN32 /* ---win32 exclude unix headers */ #include #include #include #include #include #endif /* win32 */ #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SYS_TIME_H #include #endif #include "sounds.h" /** * This table translates the attack numbers as used within the * program to the value we use when sending STATS command to the * client. If a value is -1, then we don't send that to the * client. */ static const short atnr_cs_stat[NROFATTACKS] = { CS_STAT_RES_PHYS, CS_STAT_RES_MAG, CS_STAT_RES_FIRE, CS_STAT_RES_ELEC, CS_STAT_RES_COLD, CS_STAT_RES_CONF, CS_STAT_RES_ACID, CS_STAT_RES_DRAIN, -1 /* weaponmagic */, CS_STAT_RES_GHOSTHIT, CS_STAT_RES_POISON, CS_STAT_RES_SLOW, CS_STAT_RES_PARA, CS_STAT_TURN_UNDEAD, CS_STAT_RES_FEAR, -1 /* Cancellation */, CS_STAT_RES_DEPLETE, CS_STAT_RES_DEATH, -1 /* Chaos */, -1 /* Counterspell */, -1 /* Godpower */, CS_STAT_RES_HOLYWORD, CS_STAT_RES_BLIND, -1, /* Internal */ -1, /* life stealing */ -1 /* Disease - not fully done yet */ }; /** This is the Setup cmd - easy first implementation */ void set_up_cmd(char *buf, int len, socket_struct *ns) { int s; char *cmd, *param; SockList sl; /* run through the cmds of setup * syntax is setup ... * * we send the status of the cmd back, or a FALSE is the cmd * is the server unknown * The client then must sort this out */ LOG(llevInfo, "Get SetupCmd:: %s\n", buf); SockList_Init(&sl); SockList_AddString(&sl, "setup"); for (s = 0; s < len; ) { cmd = &buf[s]; /* find the next space, and put a null there */ for (; buf[s] && buf[s] != ' '; s++) ; if (s >= len) break; buf[s++] = 0; while (buf[s] == ' ') s++; if (s >= len) break; param = &buf[s]; for (; buf[s] && buf[s] != ' '; s++) ; buf[s++] = 0; while (s < len && buf[s] == ' ') s++; SockList_AddPrintf(&sl, " %s ", cmd); if (!strcmp(cmd, "sound2")) { ns->sound = atoi(param)&(SND_EFFECTS|SND_MUSIC|SND_MUTE); SockList_AddString(&sl, param); } else if (!strcmp(cmd, "spellmon")) { int monitor_spells; monitor_spells = atoi(param); if (monitor_spells < 0 || monitor_spells > 2) { SockList_AddString(&sl, "FALSE"); } else { ns->monitor_spells = monitor_spells; SockList_AddPrintf(&sl, "%d", monitor_spells); } } else if (!strcmp(cmd, "darkness")) { int darkness; darkness = atoi(param); if (darkness != 0 && darkness != 1) { SockList_AddString(&sl, "FALSE"); } else { ns->darkness = darkness; SockList_AddPrintf(&sl, "%d", darkness); } } else if (!strcmp(cmd, "map2cmd")) { int map2cmd; map2cmd = atoi(param); if (map2cmd != 1) { SockList_AddString(&sl, "FALSE"); } else { SockList_AddString(&sl, "1"); } } else if (!strcmp(cmd, "facecache")) { int facecache; facecache = atoi(param); if (facecache != 0 && facecache != 1) { SockList_AddString(&sl, "FALSE"); } else { ns->facecache = facecache; SockList_AddPrintf(&sl, "%d", facecache); } } else if (!strcmp(cmd, "faceset")) { int q = atoi(param); if (is_valid_faceset(q)) ns->faceset = q; SockList_AddPrintf(&sl, "%d", ns->faceset); } else if (!strcmp(cmd, "mapsize")) { int x, y, n; if (sscanf(param, "%dx%d%n", &x, &y, &n) != 2 || n != (int)strlen(param)) { x = 0; y = 0; } if (x < 9 || y < 9 || x > MAP_CLIENT_X || y > MAP_CLIENT_Y) { SockList_AddPrintf(&sl, "%dx%d", MAP_CLIENT_X, MAP_CLIENT_Y); } else { player *pl; ns->mapx = x; ns->mapy = y; /* better to send back what we are really using and not the * param as given to us in case it gets parsed differently. */ SockList_AddPrintf(&sl, "%dx%d", x, y); /* need to update the los, else the view jumps */ pl = find_player_socket(ns); if (pl) update_los(pl->ob); /* Client and server need to resynchronize on data - treating it as * a new map is best way to go. */ map_newmap_cmd(ns); } } else if (!strcmp(cmd, "tick")) { int tick; tick = atoi(param); if (tick != 0 && tick != 1) { SockList_AddString(&sl, "FALSE"); } else { ns->tick = tick; SockList_AddPrintf(&sl, "%d", tick); } } else if (!strcmp(cmd, "bot")) { int is_bot; is_bot = atoi(param); if (is_bot != 0 && is_bot != 1) { SockList_AddString(&sl, "FALSE"); } else { ns->is_bot = is_bot; SockList_AddPrintf(&sl, "%d", is_bot); } } else if (!strcmp(cmd, "want_pickup")) { int want_pickup; want_pickup = atoi(param); if (want_pickup != 0 && want_pickup != 1) { SockList_AddString(&sl, "FALSE"); } else { ns->want_pickup = want_pickup; SockList_AddPrintf(&sl, "%d", want_pickup); } } else if (!strcmp(cmd, "num_look_objects")) { int tmp; player *pl; tmp = atoi(param); if (tmp < MIN_NUM_LOOK_OBJECTS) { tmp = MIN_NUM_LOOK_OBJECTS; } else if (tmp > MAX_NUM_LOOK_OBJECTS) { tmp = MAX_NUM_LOOK_OBJECTS; } ns->num_look_objects = (uint8)tmp; SockList_AddPrintf(&sl, "%d", tmp); pl = find_player_socket(ns); if (pl && pl->ob) { ns->update_look = 1; esrv_draw_look(pl->ob); } } else if (!strcmp(cmd, "extended_stats")) { int extended_stats; extended_stats = atoi(param); if (extended_stats != 0 && extended_stats != 1) { SockList_AddString(&sl, "FALSE"); } else { ns->extended_stats = extended_stats; SockList_AddPrintf(&sl, "%d", extended_stats); } } else if (!strcmp(cmd, "loginmethod")) { int loginmethod; loginmethod = atoi(param); /* Only support basic login right now */ if (loginmethod > 2) loginmethod=2; ns->login_method = loginmethod; SockList_AddPrintf(&sl, "%d", loginmethod); } else if (!strcmp(cmd, "notifications")) { int notifications; notifications = atoi(param); ns->notifications = notifications; SockList_AddPrintf(&sl, "%d", notifications); } else if (!strcmp(cmd, "newmapcmd")) { /* newmapcmd is deprecated (now standard part), but some * clients still use this setup option, and if the server * doesn't respond, erroneously report that the client is * too old. Since it is always on, regardless of what is * request, send back one. */ SockList_AddString(&sl, "1"); } else if (!strcmp(cmd, "extendedTextInfos")) { /* like newmapcmd above, extendedTextInfos is * obsolete, but we respond for the same reason as we do * in newmapcmd */ SockList_AddString(&sl, "1"); } else if (!strcmp(cmd, "itemcmd")) { /* like newmapcmd above, itemcmd is * obsolete, but we respond for the same reason as we do * in newmapcmd */ SockList_AddString(&sl, "2"); } else if (!strcmp(cmd, "exp64")) { /* like newmapcmd above, exp64 is * obsolete, but we respond for the same reason as we do * in newmapcmd */ SockList_AddString(&sl, "1"); } else { /* Didn't get a setup command we understood - * report a failure to the client. */ SockList_AddString(&sl, "FALSE"); } } /* for processing all the setup commands */ Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * The client has requested to be added to the game. * This is what takes care of it. We tell the client how things worked out. * I am not sure if this file is the best place for this function. However, * it either has to be here or init_sockets needs to be exported. * * @todo can ns->status not be Ns_Add? */ void add_me_cmd(char *buf, int len, socket_struct *ns) { Settings oldsettings; SockList sl; oldsettings = settings; if (ns->status != Ns_Add) { SockList_Init(&sl); SockList_AddString(&sl, "addme_failed"); Send_With_Handling(ns, &sl); SockList_Term(&sl); } else if (find_player_socket(ns) == NULL) { /* if there is already a player for this socket (add_me was already called), * just ignore, else weird issues. */ add_player(ns, 0); /* Basically, the add_player copies the socket structure into * the player structure, so this one (which is from init_sockets) * is not needed anymore. The write below should still work, * as the stuff in ns is still relevant. */ SockList_Init(&sl); SockList_AddString(&sl, "addme_success"); Send_With_Handling(ns, &sl); SockList_Term(&sl); if (ns->sc_version < 1027 || ns->cs_version < 1023) { /* The space in the link isn't correct, but in my * quick test with client 1.1.0, it didn't print it * out correctly when done as a single line. */ print_ext_msg(ns, NDI_RED, MSG_TYPE_ADMIN, MSG_TYPE_ADMIN_VERSION, "Warning: Your client is too old to receive map data. Please update to a new client at http://sourceforge.net/project/showfiles.php ?group_id=13833"); } ns->status = Ns_Avail; } settings = oldsettings; } /** * A lot like the old AskSmooth (in fact, now called by AskSmooth). * Basically, it makes no sense to wait for the client to request a * a piece of data from us that we know the client wants. So * if we know the client wants it, might as well push it to the * client. */ static void send_smooth(socket_struct *ns, uint16 face) { uint16 smoothface; SockList sl; /* If we can't find a face, return and set it so we won't * try to send this again. */ if (!find_smooth(face, &smoothface) && !find_smooth(smooth_face->number, &smoothface)) { LOG(llevError, "could not findsmooth for %d. Neither default (%s)\n", face, smooth_face->name); ns->faces_sent[face] |= NS_FACESENT_SMOOTH; return; } if (!(ns->faces_sent[smoothface]&NS_FACESENT_FACE)) esrv_send_face(ns, smoothface, 0); ns->faces_sent[face] |= NS_FACESENT_SMOOTH; SockList_Init(&sl); SockList_AddString(&sl, "smooth "); SockList_AddShort(&sl, face); SockList_AddShort(&sl, smoothface); Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Tells client the picture it has to use * to smooth a picture number given as argument. */ void ask_smooth_cmd(char *buf, int len, socket_struct *ns) { uint16 facenbr; facenbr = atoi(buf); send_smooth(ns, facenbr); } /** * This handles the commands issued by the player (ie, north, fire, cast, * etc.). This is called with the 'ncom' method which gives more information back * to the client so it can throttle. * * @param buf * data received. * @param len * length of buf. * @param pl * player who issued the command. Mustn't be NULL. */ void new_player_cmd(uint8 *buf, int len, player *pl) { int time, repeat; short packet; char command[MAX_BUF]; SockList sl; if (len < 7) { LOG(llevDebug, "Corrupt ncom command - not long enough - discarding\n"); return; } packet = GetShort_String(buf); repeat = GetInt_String(buf+2); /* -1 is special - no repeat, but don't update */ if (repeat != -1) { pl->count = repeat; } if (len-4 >= MAX_BUF) len = MAX_BUF-5; strncpy(command, (char *)buf+6, len-4); command[len-4] = '\0'; /* The following should never happen with a proper or honest client. * Therefore, the error message doesn't have to be too clear - if * someone is playing with a hacked/non working client, this gives them * an idea of the problem, but they deserve what they get */ if (pl->state != ST_PLAYING) { draw_ext_info_format(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, "You can not issue commands - state is not ST_PLAYING (%s)", buf); return; } /* This should not happen anymore. */ if (pl->ob->speed_left < -1.0) { LOG(llevError, "Player has negative time - shouldn't do command.\n"); } /* In c_new.c */ execute_newserver_command(pl->ob, command); /* Perhaps something better should be done with a left over count. * Cleaning up the input should probably be done first - all actions * for the command that issued the count should be done before * any other commands. */ pl->count = 0; /* Send confirmation of command execution now */ SockList_Init(&sl); SockList_AddString(&sl, "comc "); SockList_AddShort(&sl, packet); if (FABS(pl->ob->speed) < 0.001) time = MAX_TIME*100; else time = (int)(MAX_TIME/FABS(pl->ob->speed)); SockList_AddInt(&sl, time); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } /** This is a reply to a previous query. */ void reply_cmd(char *buf, int len, player *pl) { /* This is to synthesize how the data would be stored if it * was normally entered. A bit of a hack, and should be cleaned up * once all the X11 code is removed from the server. * * We pass 13 to many of the functions because this way they * think it was the carriage return that was entered, and the * function then does not try to do additional input. */ snprintf(pl->write_buf, sizeof(pl->write_buf), ":%s", buf); /* this avoids any hacking here */ switch (pl->state) { case ST_PLAYING: LOG(llevError, "Got reply message with ST_PLAYING input state\n"); break; case ST_PLAY_AGAIN: /* We can check this for return value (2==quit). Maybe we * should, and do something appropriate? */ receive_play_again(pl->ob, buf[0]); break; case ST_ROLL_STAT: key_roll_stat(pl->ob, buf[0]); break; case ST_CHANGE_CLASS: key_change_class(pl->ob, buf[0]); break; case ST_CONFIRM_QUIT: key_confirm_quit(pl->ob, buf[0]); break; case ST_GET_NAME: receive_player_name(pl->ob); break; case ST_GET_PASSWORD: case ST_CONFIRM_PASSWORD: case ST_CHANGE_PASSWORD_OLD: case ST_CHANGE_PASSWORD_NEW: case ST_CHANGE_PASSWORD_CONFIRM: receive_player_password(pl->ob); break; case ST_GET_PARTY_PASSWORD: /* Get password for party */ receive_party_password(pl->ob); break; default: LOG(llevError, "Unknown input state: %d\n", pl->state); } } /** * Client tells its version. If there is a mismatch, we close the * socket. In real life, all we should care about is the client having * something older than the server. If we assume the client will be * backwards compatible, having it be a later version should not be a * problem. */ void version_cmd(char *buf, int len, socket_struct *ns) { char *cp; if (!buf) { LOG(llevError, "CS: received corrupted version command\n"); return; } ns->cs_version = atoi(buf); ns->sc_version = ns->cs_version; if (VERSION_CS != ns->cs_version) { #ifdef ESRV_DEBUG LOG(llevDebug, "CS: csversion mismatch (%d,%d)\n", VERSION_CS, ns->cs_version); #endif } cp = strchr(buf+1, ' '); if (!cp) return; ns->sc_version = atoi(cp); if (VERSION_SC != ns->sc_version) { #ifdef ESRV_DEBUG LOG(llevDebug, "CS: scversion mismatch (%d,%d)\n", VERSION_SC, ns->sc_version); #endif } cp = strchr(cp+1, ' '); if (cp) { LOG(llevDebug, "CS: connection from client of type <%s>, ip %s\n", cp, ns->host); } } /** * Sound related function. * @todo remove once clients don't try to use this - server closes connection on invalid client. */ /** client wants the map resent * @todo remove */ void map_redraw_cmd(char *buf, int len, player *pl) { /* This function is currently disabled; just clearing the * map state results in display errors. It should clear the * cache and send a newmap command. Unfortunately this * solution does not work because some client versions send * a mapredraw command after receiving a newmap command. */ } /** Newmap command */ void map_newmap_cmd(socket_struct *ns) { SockList sl; /* If getting a newmap command, this scroll information * is no longer relevant. */ ns->map_scroll_x = 0; ns->map_scroll_y = 0; memset(&ns->lastmap, 0, sizeof(ns->lastmap)); SockList_Init(&sl); SockList_AddString(&sl, "newmap"); Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Moves an object (typically, container to inventory). * syntax is: move (to) (tag) (nrof) */ void move_cmd(char *buf, int len, player *pl) { int vals[3], i; /* A little funky here. We only cycle for 2 records, because * we obviously am not going to find a space after the third * record. Perhaps we should just replace this with a * sscanf? */ for (i = 0; i < 2; i++) { vals[i] = atoi(buf); if (!(buf = strchr(buf, ' '))) { LOG(llevError, "Incomplete move command: %s\n", buf); return; } buf++; } vals[2] = atoi(buf); /* LOG(llevDebug, "Move item %d (nrof=%d) to %d.\n", vals[1], vals[2], vals[0]);*/ esrv_move_object(pl->ob, vals[0], vals[1], vals[2]); } /*************************************************************************** * * Start of commands the server sends to the client. * *************************************************************************** */ /** * Asks the client to query the user. This way, the client knows * it needs to send something back (vs just printing out a message) */ void send_query(socket_struct *ns, uint8 flags, const char *text) { SockList sl; SockList_Init(&sl); SockList_AddPrintf(&sl, "query %d %s", flags, text ? text : ""); Send_With_Handling(ns, &sl); SockList_Term(&sl); } #define AddIfInt64(Old, New, Type) \ if (Old != New) { \ Old = New; \ SockList_AddChar(&sl, Type); \ SockList_AddInt64(&sl, New); \ } #define AddIfInt(Old, New, Type) \ if (Old != New) { \ Old = New; \ SockList_AddChar(&sl, Type); \ SockList_AddInt(&sl, New); \ } #define AddIfShort(Old, New, Type) \ if (Old != New) { \ Old = New; \ SockList_AddChar(&sl, Type); \ SockList_AddShort(&sl, New); \ } #define AddIfFloat(Old, New, Type) \ if (Old != New) { \ Old = New; \ SockList_AddChar(&sl, Type); \ SockList_AddInt(&sl, (long)(New*FLOAT_MULTI));\ } #define AddIfString(Old, New, Type) \ if (Old == NULL || strcmp(Old, New)) { \ free(Old); \ Old = strdup_local(New); \ SockList_AddChar(&sl, Type); \ SockList_AddLen8Data(&sl, New, strlen(New));\ } /** * Sends a statistics update. We look at the old values, * and only send what has changed. Stat mapping values are in newclient.h * Since this gets sent a lot, this is actually one of the few binary * commands for now. */ void esrv_update_stats(player *pl) { SockList sl; char buf[MAX_BUF]; uint16 flags; uint8 s; SockList_Init(&sl); SockList_AddString(&sl, "stats "); if (pl->ob != NULL) { AddIfShort(pl->last_stats.hp, pl->ob->stats.hp, CS_STAT_HP); AddIfShort(pl->last_stats.maxhp, pl->ob->stats.maxhp, CS_STAT_MAXHP); AddIfShort(pl->last_stats.sp, pl->ob->stats.sp, CS_STAT_SP); AddIfShort(pl->last_stats.maxsp, pl->ob->stats.maxsp, CS_STAT_MAXSP); AddIfShort(pl->last_stats.grace, pl->ob->stats.grace, CS_STAT_GRACE); AddIfShort(pl->last_stats.maxgrace, pl->ob->stats.maxgrace, CS_STAT_MAXGRACE); AddIfShort(pl->last_stats.Str, pl->ob->stats.Str, CS_STAT_STR); AddIfShort(pl->last_stats.Int, pl->ob->stats.Int, CS_STAT_INT); AddIfShort(pl->last_stats.Pow, pl->ob->stats.Pow, CS_STAT_POW); AddIfShort(pl->last_stats.Wis, pl->ob->stats.Wis, CS_STAT_WIS); AddIfShort(pl->last_stats.Dex, pl->ob->stats.Dex, CS_STAT_DEX); AddIfShort(pl->last_stats.Con, pl->ob->stats.Con, CS_STAT_CON); AddIfShort(pl->last_stats.Cha, pl->ob->stats.Cha, CS_STAT_CHA); } if (pl->socket.extended_stats) { sint16 golem_hp, golem_maxhp; AddIfShort(pl->last_orig_stats.Str, pl->orig_stats.Str, CS_STAT_BASE_STR); AddIfShort(pl->last_orig_stats.Int, pl->orig_stats.Int, CS_STAT_BASE_INT); AddIfShort(pl->last_orig_stats.Pow, pl->orig_stats.Pow, CS_STAT_BASE_POW); AddIfShort(pl->last_orig_stats.Wis, pl->orig_stats.Wis, CS_STAT_BASE_WIS); AddIfShort(pl->last_orig_stats.Dex, pl->orig_stats.Dex, CS_STAT_BASE_DEX); AddIfShort(pl->last_orig_stats.Con, pl->orig_stats.Con, CS_STAT_BASE_CON); AddIfShort(pl->last_orig_stats.Cha, pl->orig_stats.Cha, CS_STAT_BASE_CHA); if (pl->ob != NULL) { AddIfShort(pl->last_race_stats.Str, 20 + pl->ob->arch->clone.stats.Str, CS_STAT_RACE_STR); AddIfShort(pl->last_race_stats.Int, 20 + pl->ob->arch->clone.stats.Int, CS_STAT_RACE_INT); AddIfShort(pl->last_race_stats.Pow, 20 + pl->ob->arch->clone.stats.Pow, CS_STAT_RACE_POW); AddIfShort(pl->last_race_stats.Wis, 20 + pl->ob->arch->clone.stats.Wis, CS_STAT_RACE_WIS); AddIfShort(pl->last_race_stats.Dex, 20 + pl->ob->arch->clone.stats.Dex, CS_STAT_RACE_DEX); AddIfShort(pl->last_race_stats.Con, 20 + pl->ob->arch->clone.stats.Con, CS_STAT_RACE_CON); AddIfShort(pl->last_race_stats.Cha, 20 + pl->ob->arch->clone.stats.Cha, CS_STAT_RACE_CHA); AddIfShort(pl->last_applied_stats.Str, pl->applied_stats.Str, CS_STAT_APPLIED_STR); AddIfShort(pl->last_applied_stats.Int, pl->applied_stats.Int, CS_STAT_APPLIED_INT); AddIfShort(pl->last_applied_stats.Pow, pl->applied_stats.Pow, CS_STAT_APPLIED_POW); AddIfShort(pl->last_applied_stats.Wis, pl->applied_stats.Wis, CS_STAT_APPLIED_WIS); AddIfShort(pl->last_applied_stats.Dex, pl->applied_stats.Dex, CS_STAT_APPLIED_DEX); AddIfShort(pl->last_applied_stats.Con, pl->applied_stats.Con, CS_STAT_APPLIED_CON); AddIfShort(pl->last_applied_stats.Cha, pl->applied_stats.Cha, CS_STAT_APPLIED_CHA); } if (pl->ranges[range_golem]) { object *golem = pl->ranges[range_golem]; if (QUERY_FLAG(golem, FLAG_REMOVED) || golem->count != pl->golem_count || QUERY_FLAG(golem, FLAG_FREED)) { golem_hp = 0; golem_maxhp = 0; } else { golem_hp = golem->stats.hp; golem_maxhp = golem->stats.maxhp; } } else { golem_hp = 0; golem_maxhp = 0; } /* send first the maxhp, so the client can set up the display */ AddIfShort(pl->last_golem_maxhp, golem_maxhp, CS_STAT_GOLEM_MAXHP); AddIfShort(pl->last_golem_hp, golem_hp, CS_STAT_GOLEM_HP); } for (s = 0; s < NUM_SKILLS; s++) { if (pl->last_skill_ob[s] && pl->last_skill_exp[s] != pl->last_skill_ob[s]->stats.exp) { /* Always send along the level if exp changes. This * is only 1 extra byte, but keeps processing simpler. */ SockList_AddChar(&sl, (char)(s+CS_STAT_SKILLINFO)); SockList_AddChar(&sl, (char)pl->last_skill_ob[s]->level); SockList_AddInt64(&sl, pl->last_skill_ob[s]->stats.exp); pl->last_skill_exp[s] = pl->last_skill_ob[s]->stats.exp; } } AddIfInt64(pl->last_stats.exp, pl->ob->stats.exp, CS_STAT_EXP64); AddIfShort(pl->last_level, (char)pl->ob->level, CS_STAT_LEVEL); AddIfShort(pl->last_stats.wc, pl->ob->stats.wc, CS_STAT_WC); AddIfShort(pl->last_stats.ac, pl->ob->stats.ac, CS_STAT_AC); AddIfShort(pl->last_stats.dam, pl->ob->stats.dam, CS_STAT_DAM); AddIfFloat(pl->last_speed, pl->ob->speed, CS_STAT_SPEED); AddIfShort(pl->last_stats.food, pl->ob->stats.food, CS_STAT_FOOD); AddIfFloat(pl->last_weapon_sp, pl->ob->weapon_speed, CS_STAT_WEAP_SP); AddIfInt(pl->last_weight_limit, (sint32)get_weight_limit(pl->ob->stats.Str), CS_STAT_WEIGHT_LIM); flags = 0; if (pl->fire_on) flags |= SF_FIREON; if (pl->run_on) flags |= SF_RUNON; AddIfShort(pl->last_flags, flags, CS_STAT_FLAGS); if (pl->socket.sc_version < 1025) { AddIfShort(pl->last_resist[ATNR_PHYSICAL], pl->ob->resist[ATNR_PHYSICAL], CS_STAT_ARMOUR); } else { int i; for (i = 0; i < NROFATTACKS; i++) { /* Skip ones we won't send */ if (atnr_cs_stat[i] == -1) continue; AddIfShort(pl->last_resist[i], pl->ob->resist[i], (char)atnr_cs_stat[i]); } } if (pl->socket.monitor_spells) { AddIfInt(pl->last_path_attuned, pl->ob->path_attuned, CS_STAT_SPELL_ATTUNE); AddIfInt(pl->last_path_repelled, pl->ob->path_repelled, CS_STAT_SPELL_REPEL); AddIfInt(pl->last_path_denied, pl->ob->path_denied, CS_STAT_SPELL_DENY); } /* we want to use the new fire & run system in new client */ rangetostring(pl->ob, buf, sizeof(buf)); AddIfString(pl->socket.stats.range, buf, CS_STAT_RANGE); set_title(pl->ob, buf, sizeof(buf)); AddIfString(pl->socket.stats.title, buf, CS_STAT_TITLE); /* Only send it away if we have some actual data - 2 bytes for length, 6 for "stats ". */ if (sl.len > 8) { #ifdef ESRV_DEBUG LOG(llevDebug, "Sending stats command, %d bytes long.\n", sl.len); #endif Send_With_Handling(&pl->socket, &sl); } SockList_Term(&sl); } /** * Tells the client that here is a player it should start using. */ void esrv_new_player(player *pl, uint32 weight) { SockList sl; pl->last_weight = weight; if (!(pl->socket.faces_sent[pl->ob->face->number]&NS_FACESENT_FACE)) esrv_send_face(&pl->socket, pl->ob->face->number, 0); SockList_Init(&sl); SockList_AddString(&sl, "player "); SockList_AddInt(&sl, pl->ob->count); SockList_AddInt(&sl, weight); SockList_AddInt(&sl, pl->ob->face->number); SockList_AddLen8Data(&sl, pl->ob->name, strlen(pl->ob->name)); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); SET_FLAG(pl->ob, FLAG_CLIENT_SENT); } /** * Need to send an animation sequence to the client. * We will send appropriate face commands to the client if we haven't * sent them the face yet (this can become quite costly in terms of * how much we are sending - on the other hand, this should only happen * when the player logs in and picks stuff up. */ void esrv_send_animation(socket_struct *ns, short anim_num) { SockList sl; int i; /* Do some checking on the anim_num we got. Note that the animations * are added in contigous order, so if the number is in the valid * range, it must be a valid animation. */ if (anim_num < 0 || anim_num > num_animations) { LOG(llevError, "esrv_send_anim (%d) out of bounds??\n", anim_num); return; } SockList_Init(&sl); SockList_AddString(&sl, "anim "); SockList_AddShort(&sl, anim_num); SockList_AddShort(&sl, 0); /* flags - not used right now */ /* Build up the list of faces. Also, send any information (ie, the * the face itself) down to the client. */ for (i = 0; i < animations[anim_num].num_animations; i++) { if (!(ns->faces_sent[animations[anim_num].faces[i]->number]&NS_FACESENT_FACE)) esrv_send_face(ns, animations[anim_num].faces[i]->number, 0); /* flags - not used right now */ SockList_AddShort(&sl, animations[anim_num].faces[i]->number); } Send_With_Handling(ns, &sl); SockList_Term(&sl); ns->anims_sent[anim_num] = 1; } /**************************************************************************** * * Start of map related commands. * ****************************************************************************/ /** Clears a map cell */ static void map_clearcell(struct map_cell_struct *cell, int face, int count) { cell->darkness = count; memset(cell->faces, face, sizeof(cell->faces)); } #define MAX_HEAD_POS MAX(MAX_CLIENT_X, MAX_CLIENT_Y) /** Using a global really isn't a good approach, but saves the over head of * allocating and deallocating such a block of data each time run through, * and saves the space of allocating this in the socket object when we only * need it for this cycle. If the serve is ever threaded, this needs to be * re-examined. */ static const object *heads[MAX_HEAD_POS][MAX_HEAD_POS][MAP_LAYERS]; /**************************************************************************** * This block is for map2 drawing related commands. * Note that the map2 still uses other functions. * ***************************************************************************/ /** * object 'ob' at 'ax,ay' on 'layer' is visible to the client. * This function does the following things: * If is_head head is set, this means this is from the heads[] array, * so don't try to store it away again - just send it and update * our look faces. * * 1) If a multipart object and we are not at the lower right corner, * store this info away for later use. * 2) Check to see if this face has been sent to the client. If not, * we add data to the socklist, update the last map, and send any * other data the client will need (smoothing table, image data, etc) * 3) Return 1 if function increased socket. * 4) has_obj is increased by one if there are visible objects on this * this space, whether or not we sent them. Basically, if has_obj * is 0, we can clear info about this space. It could be set to 1 * with the function returning zero - this means there are objects * on the space we have already sent to the client. */ static int map2_add_ob(int ax, int ay, int layer, const object *ob, SockList *sl, socket_struct *ns, int *has_obj, int is_head) { uint16 face_num; uint8 nlayer, smoothlevel = 0; const object *head; assert(ob != NULL); head = HEAD(ob); face_num = ob->face->number; /* This is a multipart object, and we are not at the lower * right corner. So we need to store away the lower right corner. */ if (!is_head && (head->arch->tail_x || head->arch->tail_y) && (head->arch->tail_x != ob->arch->clone.x || head->arch->tail_y != ob->arch->clone.y)) { int bx, by, l; /* Basically figure out where the offset is from where we * are right now. the ob->arch->clone.{x,y} values hold * the offset that this current piece is from the head, * and the tail is where the tail is from the head. * Note that bx and by will equal sx and sy if we are * already working on the bottom right corner. If ob is * the head, the clone values will be zero, so the right * thing will still happen. */ bx = ax+head->arch->tail_x-ob->arch->clone.x; by = ay+head->arch->tail_y-ob->arch->clone.y; /* I don't think this can ever happen, but better to check * for it just in case. */ if (bx < ax || by < ay) { LOG(llevError, "map2_add_ob: bx (%d) or by (%d) is less than ax (%d) or ay (%d)\n", bx, by, ax, ay); face_num = 0; } /* the target position must be within +/-1 of our current * layer as the layers are defined. We are basically checking * to see if we have already stored this object away. */ for (l = layer-1; l <= layer+1; l++) { if (l < 0 || l >= MAP_LAYERS) continue; if (heads[by][bx][l] == head) break; } /* Didn't find it. So we need to store it away. Try to store it * on our original layer, and then move up a layer. */ if (l == layer+2) { if (!heads[by][bx][layer]) heads[by][bx][layer] = head; else if (layer+1 < MAP_LAYERS && !heads[by][bx][layer+1]) heads[by][bx][layer+1] = head; } return 0; /* Ok - All done storing away the head for future use */ } else { (*has_obj)++; if (QUERY_FLAG(ob, FLAG_CLIENT_ANIM_SYNC) || QUERY_FLAG(ob, FLAG_CLIENT_ANIM_RANDOM)) { face_num = ob->animation_id|(1<<15); if (QUERY_FLAG(ob, FLAG_CLIENT_ANIM_SYNC)) face_num |= ANIM_SYNC; else if (QUERY_FLAG(ob, FLAG_CLIENT_ANIM_RANDOM)) face_num |= ANIM_RANDOM; } /* Since face_num includes the bits for the animation tag, * and we will store that away in the faces[] array, below * check works fine _except_ for the case where animation * speed chances. */ if (ns->lastmap.cells[ax][ay].faces[layer] != face_num) { uint8 len, anim_speed = 0, i; /* This block takes care of sending the actual face * to the client. */ ns->lastmap.cells[ax][ay].faces[layer] = face_num; /* Now form the data packet */ nlayer = MAP2_LAYER_START+layer; len = 2; if (ob->map && !MAP_NOSMOOTH(ob->map)) { smoothlevel = ob->smoothlevel; if (smoothlevel) len++; } if (QUERY_FLAG(ob, FLAG_CLIENT_ANIM_SYNC) || QUERY_FLAG(ob, FLAG_CLIENT_ANIM_RANDOM)) { len++; /* 1/0.004 == 250, so this is a good cap for an * upper limit */ if (ob->anim_speed) anim_speed = ob->anim_speed; else if (FABS(ob->speed) < 0.004) anim_speed = 255; else if (FABS(ob->speed) >= 1.0) anim_speed = 1; else anim_speed = (int)(1.0/FABS(ob->speed)); if (!ns->anims_sent[ob->animation_id]) esrv_send_animation(ns, ob->animation_id); /* If smoothing, need to send smoothing information * for all faces in the animation sequence. Since * smoothlevel is an object attribute, * it applies to all faces. */ if (smoothlevel) { for (i = 0; i < NUM_ANIMATIONS(ob); i++) { if (!(ns->faces_sent[animations[ob->animation_id].faces[i]->number]&NS_FACESENT_SMOOTH)) send_smooth(ns, animations[ob->animation_id].faces[i]->number); } } } else if (!(ns->faces_sent[face_num]&NS_FACESENT_FACE)) { esrv_send_face(ns, face_num, 0); } if (smoothlevel && !(ns->faces_sent[ob->face->number]&NS_FACESENT_SMOOTH)) send_smooth(ns, ob->face->number); /* Length of packet */ nlayer |= len<<5; SockList_AddChar(sl, nlayer); SockList_AddShort(sl, face_num); if (anim_speed) SockList_AddChar(sl, anim_speed); if (smoothlevel) SockList_AddChar(sl, smoothlevel); return 1; } /* Face is different */ } return 0; } /* This function is used see if a layer needs to be cleared. * It updates the socklist, and returns 1 if the update is * needed, 0 otherwise. */ static int map2_delete_layer(int ax, int ay, int layer, SockList *sl, socket_struct *ns) { int nlayer; if (ns->lastmap.cells[ax][ay].faces[layer] != 0) { /* Now form the data packet */ nlayer = 0x10+layer+(2<<5); SockList_AddChar(sl, nlayer); SockList_AddShort(sl, 0); ns->lastmap.cells[ax][ay].faces[layer] = 0; return 1; } return 0; } /** * Check if a hp bar should be added to the map square. * @param ax x coordinate. * @param ay y coordinate. * @param ob object to check for hp bar. * @param sl where to write data. * @param ns to know if the face was sent or not. * @param has_obj number of objects, modified. * @param alive_layer will be filled with the layer containing the hp bar if applicable. * @return 1 if a bar was added, in which case alive_layer is modified, else 0. */ static int check_probe(int ax, int ay, const object *ob, SockList *sl, socket_struct *ns, int *has_obj, int *alive_layer) { int got_one = 0, poisoned = 0, diseased = 0; char name[60]; int value, granularity; const object *probe; /* send hp bar if needed */ if (!QUERY_FLAG(ob, FLAG_PROBE) || (*alive_layer) != -1 || ob->head) return 0; probe = object_find_by_type_and_name(ob, FORCE, "probe_force"); if (probe == NULL || probe->level < 15) { /* if probe is not null, this is an error, but well */ return 0; } granularity = (probe->level - 14) / 3; if (granularity <= 0) granularity = 1; else if (granularity > 30) granularity = 30; if (ob->stats.maxhp > 0) { value = (ob->stats.hp * granularity) / (ob->stats.maxhp); if (value < 0) value = 0; else if (value > granularity) value = granularity; } else value = 30; value = (value * 30) / granularity; if (object_present_in_ob(POISONING, ob) != NULL) poisoned = 1; if (object_present_in_ob(DISEASE, ob) != NULL) diseased = 1; if (value > 0) { archetype *dummy; snprintf(name, sizeof(name), "hpbar%s%s%s_%d", poisoned ? "_poisoned" : "", diseased ? "_diseased" : "", (!poisoned && !diseased) ? "_standard" : "", value); dummy = try_find_archetype(name); if (dummy != NULL) { got_one += map2_add_ob(ax, ay, MAP_LAYER_FLY2, &dummy->clone, sl, ns, has_obj, 0); (*alive_layer) = MAP_LAYER_FLY2; } } return got_one; } /* * This function is used to check a space (ax, ay) whose only * data we may care about are any heads. Basically, this * space is out of direct view. This is only used with the * Map2 protocol. * * @param ax * viewport relative x-coordinate * @param ay * viewport relative y-coordinate * @param sl * the reply to append to * @param ns * the client socket */ static void check_space_for_heads(int ax, int ay, SockList *sl, socket_struct *ns) { int layer, got_one = 0, del_one = 0, oldlen, has_obj = 0; uint16 coord; coord = MAP2_COORD_ENCODE(ax, ay, 0); oldlen = sl->len; SockList_AddShort(sl, coord); for (layer = 0; layer < MAP_LAYERS; layer++) { const object *head; head = heads[ay][ax][layer]; if (head) { /* in this context, got_one should always increase * because heads should always point to data to really send. */ got_one += map2_add_ob(ax, ay, layer, head, sl, ns, &has_obj, 1); } else { del_one += map2_delete_layer(ax, ay, layer, sl, ns); } } /* Note - if/when lighting information is added, some code is * needed here - lighting sources that are out of sight may still * extend into the viewable area. */ /* If nothing to do for this space, we * can erase the coordinate bytes */ if (!del_one && !got_one) { sl->len = oldlen; } else if (del_one && !has_obj) { /* If we're only deleting faces and not adding, and there * are not any faces on the space we care about, * more efficient * to send 0 as the type/len field. */ sl->len = oldlen+2; /* 2 bytes for coordinate */ SockList_AddChar(sl, 0); /* Clear byte */ SockList_AddChar(sl, 255); /* Termination byte */ map_clearcell(&ns->lastmap.cells[ax][ay], 0, 0); } else { SockList_AddChar(sl, 255); /* Termination byte */ } } void draw_client_map2(object *pl) { int x, y, ax, ay, d, min_x, max_x, min_y, max_y, oldlen, layer; size_t startlen; sint16 nx, ny; SockList sl; uint16 coord; mapstruct *m; object *ob; SockList_Init(&sl); SockList_AddString(&sl, "map2 "); startlen = sl.len; /* Handle map scroll */ if (pl->contr->socket.map_scroll_x || pl->contr->socket.map_scroll_y) { coord = MAP2_COORD_ENCODE(pl->contr->socket.map_scroll_x, pl->contr->socket.map_scroll_y, 1); pl->contr->socket.map_scroll_x = 0; pl->contr->socket.map_scroll_y = 0; SockList_AddShort(&sl, coord); } /* Init data to zero */ memset(heads, 0, sizeof(heads)); /* We could do this logic as conditionals in the if statement, * but that started to get a bit messy to look at. */ min_x = pl->x-pl->contr->socket.mapx/2; min_y = pl->y-pl->contr->socket.mapy/2; max_x = pl->x+(pl->contr->socket.mapx+1)/2+MAX_HEAD_OFFSET; max_y = pl->y+(pl->contr->socket.mapy+1)/2+MAX_HEAD_OFFSET; /* x, y are the real map locations. ax, ay are viewport relative * locations. */ ay = 0; for (y = min_y; y < max_y; y++, ay++) { ax = 0; for (x = min_x; x < max_x; x++, ax++) { /* If this space is out of the normal viewable area, * we only check the heads value. This is used to * handle big images - if they extend to a viewable * portion, we need to send just the lower right corner. */ if (ax >= pl->contr->socket.mapx || ay >= pl->contr->socket.mapy) { check_space_for_heads(ax, ay, &sl, &pl->contr->socket); } else { /* This space is within the viewport of the client. Due * to walls or darkness, it may still not be visible. */ /* Meaning of d: * 0 - object is in plain sight, full brightness. * 1 - MAX_DARKNESS - how dark the space is - higher * value is darker space. If level is at max darkness, * you can't see the space (too dark) * 100 - space is blocked from sight. */ d = pl->contr->blocked_los[ax][ay]; /* If the coordinates are not valid, or it is too * dark to see, we tell the client as such */ nx = x; ny = y; m = get_map_from_coord(pl->map, &nx, &ny); coord = MAP2_COORD_ENCODE(ax, ay, 0); if (!m) { /* space is out of map. Update space and clear * values if this hasn't already been done. * If the space is out of the map, it shouldn't * have a head. */ if (pl->contr->socket.lastmap.cells[ax][ay].darkness != 0) { SockList_AddShort(&sl, coord); SockList_AddChar(&sl, MAP2_TYPE_CLEAR); SockList_AddChar(&sl, 255); /* Termination byte */ map_clearcell(&pl->contr->socket.lastmap.cells[ax][ay], 0, 0); } } else if (d >= MAX_LIGHT_RADII) { /* This block deals with spaces that are not * visible due to darkness or walls. Still * need to send the heads for this space. */ check_space_for_heads(ax, ay, &sl, &pl->contr->socket); } else { int have_darkness = 0, has_obj = 0, got_one = 0, del_one = 0, g1, alive_layer = -1, old_got; /* In this block, the space is visible. */ /* Rather than try to figure out what everything * that we might need to send is, then form the * packet after that, we presume that we will in * fact form a packet, and update the bits by what * we do actually send. If we send nothing, we * just back out sl.len to the old value, and no * harm is done. * I think this is simpler than doing a bunch of * checks to see what if anything we need to send, * setting the bits, then doing those checks again * to add the real data. */ oldlen = sl.len; SockList_AddShort(&sl, coord); /* Darkness changed */ if (pl->contr->socket.lastmap.cells[ax][ay].darkness != d && pl->contr->socket.darkness) { pl->contr->socket.lastmap.cells[ax][ay].darkness = d; /* Darkness tag & length*/ SockList_AddChar(&sl, MAP2_TYPE_DARKNESS|1<<5); SockList_AddChar(&sl, 255-d*(256/MAX_LIGHT_RADII)); have_darkness = 1; } for (layer = 0; layer < MAP_LAYERS; layer++) { ob = GET_MAP_FACE_OBJ(m, nx, ny, layer); /* Special case: send player itself if invisible */ if (!ob && x == pl->x && y == pl->y && (pl->invisible&(pl->invisible < 50 ? 4 : 1)) && (layer == MAP_LAYER_LIVING1 || layer == MAP_LAYER_LIVING2)) ob = pl; if (ob) { g1 = has_obj; old_got = got_one; got_one += map2_add_ob(ax, ay, layer, ob, &sl, &pl->contr->socket, &has_obj, 0); /* if we added the face, or it is a monster's head, check probe spell */ if (got_one != old_got || (ob->head == NULL && ob->more)) got_one += check_probe(ax, ay, ob, &sl, &pl->contr->socket, &has_obj, &alive_layer); /* If we are just storing away the head * for future use, then effectively this * space/layer is blank, and we should clear * it if needed. */ if (g1 == has_obj) { del_one += map2_delete_layer(ax, ay, layer, &sl, &pl->contr->socket); } else if (ob->head == NULL) { /* for single-part items */ got_one += check_probe(ax, ay, ob, &sl, &pl->contr->socket, &has_obj, &alive_layer); } } else { if (layer != alive_layer) del_one += map2_delete_layer(ax, ay, layer, &sl, &pl->contr->socket); } } /* If nothing to do for this space, we * can erase the coordinate bytes */ if (!del_one && !got_one && !have_darkness) { sl.len = oldlen; } else if (del_one && !has_obj) { /* If we're only deleting faces and don't * have any objs we care about, just clear * space. Note it is possible we may have * darkness, but if there is nothing on the * space, darkness isn't all that interesting * - we can send it when an object shows up. */ sl.len = oldlen+2; /* 2 bytes for coordinate */ SockList_AddChar(&sl, MAP2_TYPE_CLEAR); SockList_AddChar(&sl, 255); /* Termination byte */ map_clearcell(&pl->contr->socket.lastmap.cells[ax][ay], 0, 0); } else { SockList_AddChar(&sl, 255); /* Termination byte */ } } } /* else this is a viewable space */ } /* for x loop */ } /* for y loop */ /* Only send this if there are in fact some differences. */ if (sl.len > startlen) { Send_With_Handling(&pl->contr->socket, &sl); } SockList_Term(&sl); } /** * Draws client map. */ void draw_client_map(object *pl) { int i, j; sint16 ax, ay; int mflags; mapstruct *m, *pm; int min_x, min_y, max_x, max_y; if (pl->type != PLAYER) { LOG(llevError, "draw_client_map called with non player/non eric-server\n"); return; } if (pl->contr->transport) { pm = pl->contr->transport->map; } else pm = pl->map; /* If player is just joining the game, he isn't here yet, so * the map can get swapped out. If so, don't try to send them * a map. All will be OK once they really log in. */ if (pm == NULL || pm->in_memory != MAP_IN_MEMORY) return; /* * This block just makes sure all the spaces are properly * updated in terms of what they look like. */ min_x = pl->x-pl->contr->socket.mapx/2; min_y = pl->y-pl->contr->socket.mapy/2; max_x = pl->x+(pl->contr->socket.mapx+1)/2; max_y = pl->y+(pl->contr->socket.mapy+1)/2; for (j = min_y; j < max_y; j++) { for (i = min_x; i < max_x; i++) { ax = i; ay = j; m = pm; mflags = get_map_flags(m, &m, ax, ay, &ax, &ay); if (mflags&P_OUT_OF_MAP) continue; if (mflags&P_NEED_UPDATE) update_position(m, ax, ay); /* If a map is visible to the player, we don't want * to swap it out just to reload it. This should * really call something like swap_map, but this is * much more efficient and 'good enough' */ if (mflags&P_NEW_MAP) m->timeout = 50; } } /* do LOS after calls to update_position */ if (pl->contr->do_los) { update_los(pl); pl->contr->do_los = 0; } draw_client_map2(pl); } void esrv_map_scroll(socket_struct *ns, int dx, int dy) { struct Map newmap; int x, y, mx, my; ns->map_scroll_x += dx; ns->map_scroll_y += dy; mx = ns->mapx+MAX_HEAD_OFFSET; my = ns->mapy+MAX_HEAD_OFFSET; /* the x and y here are coordinates for the new map, i.e. if we moved * (dx,dy), newmap[x][y] = oldmap[x-dx][y-dy]. For this reason, * if the destination x or y coordinate is outside the viewable * area, we clear the values - otherwise, the old values * are preserved, and the check_head thinks it needs to clear them. */ for (x = 0; x < mx; x++) { for (y = 0; y < my; y++) { if (x >= ns->mapx || y >= ns->mapy) { /* clear cells outside the viewable area */ memset(&newmap.cells[x][y], 0, sizeof(newmap.cells[x][y])); } else if (x+dx < 0 || x+dx >= ns->mapx || y+dy < 0 || y+dy >= ns->mapy) { /* clear newly visible tiles within the viewable area */ memset(&newmap.cells[x][y], 0, sizeof(newmap.cells[x][y])); } else { memcpy(&newmap.cells[x][y], &ns->lastmap.cells[x+dx][y+dy], sizeof(newmap.cells[x][y])); } } } memcpy(&ns->lastmap, &newmap, sizeof(ns->lastmap)); } /** * GROS: The following one is used to allow a plugin to send a generic cmd to * a player. Of course, the client need to know the command to be able to * manage it ! */ void send_plugin_custom_message(object *pl, char *buf) { SockList sl; SockList_Init(&sl); SockList_AddString(&sl, buf); Send_With_Handling(&pl->contr->socket, &sl); SockList_Term(&sl); } /** * This looks for any spells the player may have that have changed * their stats. It then sends an updspell packet for each spell that * has changed in this way. */ void esrv_update_spells(player *pl) { SockList sl; int flags = 0; client_spell *spell_info; if (!pl->socket.monitor_spells) return; /* Handles problem at login, where this is called from fix_object * before we have had a chance to send spells to the player. It does seem * to me that there should never be a case where update_spells is called * before add_spells has been called. Add_spells() will update the * spell_state to non null. */ if (!pl->spell_state) return; FOR_INV_PREPARE(pl->ob, spell) { if (spell->type == SPELL) { spell_info = get_client_spell_state(pl, spell); /* check if we need to update it*/ if (spell_info->last_sp != SP_level_spellpoint_cost(pl->ob, spell, SPELL_MANA)) { spell_info->last_sp = SP_level_spellpoint_cost(pl->ob, spell, SPELL_MANA); flags |= UPD_SP_MANA; } if (spell_info->last_grace != SP_level_spellpoint_cost(pl->ob, spell, SPELL_GRACE)) { spell_info->last_grace = SP_level_spellpoint_cost(pl->ob, spell, SPELL_GRACE); flags |= UPD_SP_GRACE; } if (spell_info->last_dam != spell->stats.dam+SP_level_dam_adjust(pl->ob, spell)) { spell_info->last_dam = spell->stats.dam+SP_level_dam_adjust(pl->ob, spell); flags |= UPD_SP_DAMAGE; } if (flags != 0) { SockList_Init(&sl); SockList_AddString(&sl, "updspell "); SockList_AddChar(&sl, flags); SockList_AddInt(&sl, spell->count); if (flags&UPD_SP_MANA) SockList_AddShort(&sl, spell_info->last_sp); if (flags&UPD_SP_GRACE) SockList_AddShort(&sl, spell_info->last_grace); if (flags&UPD_SP_DAMAGE) SockList_AddShort(&sl, spell_info->last_dam); flags = 0; Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } } } FOR_INV_FINISH(); } void esrv_remove_spell(player *pl, object *spell) { SockList sl; if (!pl->socket.monitor_spells) return; if (!pl || !spell || spell->env != pl->ob) { LOG(llevError, "Invalid call to esrv_remove_spell\n"); return; } SockList_Init(&sl); SockList_AddString(&sl, "delspell "); SockList_AddInt(&sl, spell->count); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } /** * Sends the "pickup" state to pl if client wants it requested. * * @param pl * player that just logged in. */ void esrv_send_pickup(player *pl) { SockList sl; if (!pl->socket.want_pickup) return; SockList_Init(&sl); SockList_AddString(&sl, "pickup "); SockList_AddInt(&sl, pl->mode); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } /** * Give the client-side use information for a spell, to know how to use a spell. * @param spell what to check. * @retval 0 spell needs no argument. * @retval 1 spell needs the name of another spell. * @retval 2 spell can use a freeform string argument. * @retval 3 spell requires a freeform string argument. */ static int spell_client_use(const object *spell) { if (spell->type == SP_RAISE_DEAD) return 3; if (spell->type == SP_RUNE && !spell->other_arch) return 1; if (spell->type == SP_MAKE_MARK) return 3; if (spell->type == SP_CREATE_FOOD) return 2; if (spell->type == SP_SUMMON_MONSTER && spell->randomitems != NULL) return 2; if (spell->type == SP_CREATE_MISSILE) return 2; return 0; } /** appends the spell *spell to the Socklist we will send the data to. */ static void append_spell(player *pl, SockList *sl, object *spell) { client_spell *spell_info; int len, i, skill = 0; if (!spell->name) { LOG(llevError, "item number %d is a spell with no name.\n", spell->count); return; } if (spell->face && !(pl->socket.faces_sent[spell->face->number]&NS_FACESENT_FACE)) esrv_send_face(&pl->socket, spell->face->number, 0); spell_info = get_client_spell_state(pl, spell); SockList_AddInt(sl, spell->count); SockList_AddShort(sl, spell->level); SockList_AddShort(sl, spell->casting_time); /* store costs and damage in the object struct, to compare to later */ spell_info->last_sp = SP_level_spellpoint_cost(pl->ob, spell, SPELL_MANA); spell_info->last_grace = SP_level_spellpoint_cost(pl->ob, spell, SPELL_GRACE); spell_info->last_dam = spell->stats.dam+SP_level_dam_adjust(pl->ob, spell); /* send the current values */ SockList_AddShort(sl, spell_info->last_sp); SockList_AddShort(sl, spell_info->last_grace); SockList_AddShort(sl, spell_info->last_dam); /* figure out which skill it uses, if it uses one */ if (spell->skill) { for (i = 1; i < NUM_SKILLS; i++) if (!strcmp(spell->skill, skill_names[i])) { skill = i+CS_STAT_SKILLINFO; break; } } SockList_AddChar(sl, skill); SockList_AddInt(sl, spell->path_attuned); SockList_AddInt(sl, spell->face ? spell->face->number : 0); SockList_AddLen8Data(sl, spell->name, strlen(spell->name)); if (!spell->msg) { SockList_AddShort(sl, 0); } else { len = strlen(spell->msg); SockList_AddShort(sl, len); SockList_AddData(sl, spell->msg, len); } /* Extended spell information available if the client wants it. */ if (pl->socket.monitor_spells >= 2) { /* spellmon 2 */ sstring req = object_get_value(spell, "casting_requirements"); SockList_AddChar(sl, spell_client_use(spell)); /* Usage code */ if (req) { /* Requirements */ SockList_AddLen8Data(sl, req, strlen(req)); } else { SockList_AddChar(sl, 0); } /* end spellmon 2 */ } } /** * This tells the client to add the spell *spell, if spell is NULL, then add * all spells in the player's inventory. */ void esrv_add_spells(player *pl, object *spell) { SockList sl; size_t size; sstring value; if (!pl) { LOG(llevError, "esrv_add_spells, tried to add a spell to a NULL player\n"); return; } if (!pl->socket.monitor_spells) return; SockList_Init(&sl); SockList_AddString(&sl, "addspell "); if (!spell) { FOR_INV_PREPARE(pl->ob, spell) { if (spell->type != SPELL) continue; /* Were we to simply keep appending data here, we could * exceed the SockList buffer if the player has enough spells * to add. We know that append_spell will always append * 23 data bytes, plus 3 length bytes and 2 strings * (because that is the spec) so we need to check that * the length of those 2 strings, plus the 26 bytes, * won't take us over the length limit for the socket. * If it does, we need to send what we already have, * and restart packet formation. */ size = 26+strlen(spell->name)+(spell->msg ? strlen(spell->msg) : 0); if (pl->socket.monitor_spells >= 2) { /** @todo casting_requirements should be a constant somewhere */ value = object_get_value(spell, "casting_requirements"); size += 2 + (value ? strlen(value) : 0); } if (SockList_Avail(&sl) < size) { Send_With_Handling(&pl->socket, &sl); SockList_Reset(&sl); SockList_AddString(&sl, "addspell "); } append_spell(pl, &sl, spell); } FOR_INV_FINISH(); } else if (spell->type != SPELL) { LOG(llevError, "Asked to send a non-spell object as a spell\n"); return; } else append_spell(pl, &sl, spell); /* finally, we can send the packet */ Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } /* sends a 'tick' information to the client. * We also take the opportunity to toggle TCP_NODELAY - * this forces the data in the socket to be flushed sooner to the * client - otherwise, the OS tries to wait for full packets * and will this hold sending the data for some amount of time, * which thus adds some additional latency. */ void send_tick(player *pl) { SockList sl; int tmp; SockList_Init(&sl); SockList_AddString(&sl, "tick "); SockList_AddInt(&sl, pticks); tmp = 1; if (setsockopt(pl->socket.fd, IPPROTO_TCP, TCP_NODELAY, &tmp, sizeof(tmp))) LOG(llevError, "send_tick: Unable to turn on TCP_NODELAY\n"); Send_With_Handling(&pl->socket, &sl); tmp = 0; if (setsockopt(pl->socket.fd, IPPROTO_TCP, TCP_NODELAY, &tmp, sizeof(tmp))) LOG(llevError, "send_tick: Unable to turn off TCP_NODELAY\n"); SockList_Term(&sl); } /** * Basic helper function which adds a piece of data for * the accountplayers protocol command. Called from * send_account_players. If data is empty, we don't add. * * @param sl * socklist to add data to. * @param type * type of data (ACL_.. value) * @param data * string data to add */ static void add_char_field(SockList *sl, int type, const char *data) { int len; len = strlen(data); if (len) { /* one extra for length for the type byte */ SockList_AddChar(sl, len+1); SockList_AddChar(sl, type); SockList_AddString(sl, data); } } /** * Upon successful login/account creation, we send a list of * characters associated with the account to the client - in * this way, it lets the client present a nice list so that * the player can choose one. * Note it is important that ns->account_name is set before * calling this. * Note 2: Some of the operations here are not especially * efficient - O(n^2) or repeating same loop instead of * trying to combine them. This is not a worry as * MAX_CHARACTERS_PER_ACCOUNT is a fairly low value * (less than 20), so even inefficient operations don't take * much time. If that value as a lot larger, then some * rethink may be needed. For now, having clearer code * is better than trying to save a few microseconds of * execution time. * * @param ns * socket structure to send data for. */ void send_account_players(socket_struct *ns) { SockList sl; Account_Char *acn; int i, num_chars, need_send[MAX_CHARACTERS_PER_ACCOUNT]; char **chars; ns->account_chars = account_char_load(ns->account_name); /* * The acocunt logic here is a little tricky - account_char_load() * is best source as it has a lot more data. However, if a user * has just added an player to an account, that will not be filled * in until the player has actually logged in with that character - * to fill the data in at time of adding the character to the account * requires a fair amount of work to check_login(), since the load * of the player file and other initialization is fairly closely * intertwined. So until that is done, we still at least have * account names we can get and send. * note: chars[] has the last entry NULL terminated - thus, * if there are 2 valid accounts, chars[0], chars[1] will be * set, and chars[2] will be NULL. chars[3...MAX] will have * undefined values. */ chars = account_get_players_for_account(ns->account_name); SockList_Init(&sl); SockList_AddString(&sl, "accountplayers "); num_chars=0; /* First, set up an array so we know which character we may * need to send specially. Only non NULL values would * ever need to get sent. */ for (i=0; iaccount_chars; acn; acn = acn->next) { num_chars++; for (i=0; iname)) { need_send[i] = 0; break; } } } /* total up number with limited information */ for (i=0; i< MAX_CHARACTERS_PER_ACCOUNT; i++) { if (!chars[i]) break; if (need_send[i]) num_chars++; } SockList_AddChar(&sl, num_chars); /* Now add real character data */ for (acn = ns->account_chars; acn; acn = acn->next) { uint16 faceno; add_char_field(&sl, ACL_NAME, acn->name); add_char_field(&sl, ACL_CLASS, acn->character_class); add_char_field(&sl, ACL_RACE, acn->race); add_char_field(&sl, ACL_FACE, acn->face); if (acn->face[0] != 0 ) { faceno = find_face(acn->face, 0); if (faceno != 0) { if (!(ns->faces_sent[faceno]&NS_FACESENT_FACE)) { esrv_send_face(ns, faceno, 0); } } } else faceno=0; add_char_field(&sl, ACL_PARTY, acn->party); add_char_field(&sl, ACL_MAP, acn->map); SockList_AddChar(&sl, 3); SockList_AddChar(&sl, ACL_LEVEL); SockList_AddShort(&sl, acn->level); if (faceno) { SockList_AddChar(&sl, 3); SockList_AddChar(&sl, ACL_FACE_NUM); SockList_AddShort(&sl, faceno); } SockList_AddChar(&sl, 0); } /* Now for any characters where we just have the name */ for (i=0; i< MAX_CHARACTERS_PER_ACCOUNT; i++) { if (!chars[i]) break; if (need_send[i]) { add_char_field(&sl, ACL_NAME, chars[i]); SockList_AddChar(&sl, 0); } } Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * This is a basic routine which extracts the name/password * from the buffer. Several of the account login routines * provide a length prefixed string for name, and another for * password. * * @param buf * character data to process. * @param len * length of this buffer. This will be updated to be the next * byte to process in the case that there is additional data * in this packet that the caller may need to process. * @param name * preallocated (MAX_BUF) buffer to return the name (really, first string) in * @param password * preallocated (MAX_BUF) buffer to return the password (second string) in * @return * 0 - success * 1 - name is too long * 2 - password is too long */ static int decode_name_password(const char *buf, int *len, char *name, char *password) { int nlen, plen; if (*len < 2) { return 1; } nlen = (unsigned char)buf[0]; if (nlen >= MAX_BUF || nlen > *len-2) { return 1; } memcpy(name, buf+1, nlen); name[nlen] = 0; plen = (unsigned char)buf[nlen+1]; if (plen >= MAX_BUF || plen > *len-2-nlen) { return 2; } memcpy(password, buf+2+nlen, plen); password[plen] = 0; *len = nlen+plen+2; return 0; } /** * Handles the account login * * @param buf * remaining socket data - from this we need to extract name & password * @param len * length of this buffer * @param ns * pointer to socket structure. */ void account_login_cmd(char *buf, int len, socket_struct *ns) { char name[MAX_BUF], password[MAX_BUF]; int status; SockList sl; SockList_Init(&sl); status = decode_name_password(buf, &len, name, password); if (status == 1) { SockList_AddString(&sl, "failure accountlogin Name is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountlogin Password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (!account_exists(name)) { SockList_AddString(&sl, "failure accountlogin No such account name exists on this server"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (account_check_name_password(name, password)) { player *pl; socket_struct *tns; /* Checking against init_sockets must be done before * we set ns->account - otherwise we will match * that. What we are doing here is limiting the account * to only one login. */ tns = account_get_logged_in_init_socket(name); /* Other code will clean this up. We could try to * set the same state this other socket is in, but we * really don't know what that state is, and then * we would have to try to communicate that to the client * so it can activate the right dialogs. Simpler to * just go to a known state. */ if (tns && tns != ns) tns->status = Ns_Dead; /* Same note as above applies - it can be simpler in * this case - we could check against the ST_PLAYING * value, but right now we don't have a method to * tell the client to go directly from login to playing. */ pl = account_get_logged_in_player(name); if (pl) pl->socket.status = Ns_Dead; if (ns->account_name) free(ns->account_name); /* We want to store away official name so we do not * have any case sensitivity issues on the files. * because we have already checked password, we * know that account_exists should never return NULL in * this case. */ ns->account_name = strdup_local(account_exists(name)); send_account_players(ns); } else { SockList_AddString(&sl, "failure accountlogin Incorrect password for account"); Send_With_Handling(ns, &sl); SockList_Term(&sl); } } /** * Handles the account creation This function shares a fair amount of * the same logic as account_login_cmd() above. * * @param buf * remaining socket data - from this we need to extract name & password * @param len * length of this buffer * @param ns * pointer to socket structure. */ void account_new_cmd(char *buf, int len, socket_struct *ns) { char name[MAX_BUF], password[MAX_BUF]; int status; SockList sl; SockList_Init(&sl); status = decode_name_password(buf, &len, name, password); if (status == 1) { SockList_AddString(&sl, "failure accountnew Name is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountnew Password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /*The minimum length isn't exactly required, but in the current implementation, * client will send the same password for character for which there is a * 2 character minimum size. Thus an account with a one character password * won't be able to create a character. */ if (strlen(password)<2) { SockList_AddString(&sl, "failure accountnew Password is too short"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (account_exists(name)) { SockList_AddString(&sl, "failure accountnew That account already exists on this server"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } status = account_check_string(name); if (status == 1) { SockList_AddString(&sl, "failure accountnew That account name contains invalid characters."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountnew That account name is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } status = account_check_string(password); if (status == 1) { SockList_AddString(&sl, "failure accountnew That password contains invalid characters."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountnew That password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* If we got here, we passed all checks - so now add it */ if (ns->account_name) free(ns->account_name); ns->account_name = strdup_local(name); account_add_account(name, password); /* save account information */ accounts_save(); send_account_players(ns); } /** * Handle accountaddplayer from server (add a character to this * account). * We check to see if character exists, if password is correct, * if character is associated with other account. * * @param buf * socket data to process * @param len * length of socket data. * @param ns * socket of incoming request. */ void account_add_player_cmd(char *buf, int len, socket_struct *ns) { char name[MAX_BUF], password[MAX_BUF]; int status, force, nlen; SockList sl; const char *cp; SockList_Init(&sl); if (ns->account_name == NULL) { SockList_AddString(&sl, "failure accountaddplayer Not logged in"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } force = buf[0]; nlen = len - 1; status = decode_name_password(buf+1, &nlen, name, password); if (status == 1) { SockList_AddString(&sl, "failure accountaddplayer Name is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountaddplayer Password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } status = verify_player(name, password); if (status) { /* From a security standpoint, telling random folks if it * it as wrong password makes it easier to hack. However, * it is fairly easy to determine what characters exist on a server * (either by trying to create a new one and see if the name is in * in use, or just looking at the high score file), so this * really does not make things much less secure */ if (status == 1) SockList_AddString(&sl, "failure accountaddplayer 0 The character does not exist."); else SockList_AddString(&sl, "failure accountaddplayer 0 That password is incorrect."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* Check to see if this character is associated with an account. */ cp = account_get_account_for_char(name); if (cp) { if (!strcmp(cp, ns->account_name)) { SockList_AddString(&sl, "failure accountaddplayer 0 That character is already connected to this account."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } else { if (!force) { SockList_AddString(&sl, "failure accountaddplayer 1 That character is already connected to a different account."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } else if (account_is_logged_in(cp)) { /* We could be clever and try to handle this case, but it is * trickier. If the character is logged in, it has to * be logged out. And the socket holds some data which * needs to be cleaned up. Since it should be fairly * uncommon that users need to do this, just disallowing * it makes things a lot simpler. */ SockList_AddString(&sl, "failure accountaddplayer 0 That character is already connected to a different account which is currently logged in."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } } } /* If we have gotten this far, the name/password provided is OK, * and the character is not associated with a different account (or * force is true). Now try to add the character to this account. */ status = account_add_player_to_account(ns->account_name, name); /* This should never happen, but check for it just in case - * if we were able to log in, the account should exist. but * if this fails, need to give the user some clue. */ if (status==1) { SockList_AddString(&sl, "failure accountaddplayer 0 Could not find your account."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } else if (status == 2) { SockList_AddString(&sl, "failure accountaddplayer 0 You have reached the maximum number of characters allowed per account."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* If cp is set, then this character used to belong to a different * account. Remove it now. */ if (cp) { Account_Char *chars; account_remove_player_from_account(cp, name); chars = account_char_load(cp); chars=account_char_remove(chars, name); account_char_save(cp, chars); account_char_free(chars); } send_account_players(ns); /* store data so nothing is lost in case of crash */ account_char_save(ns->account_name, ns->account_chars); } /** * We have received an accountplay command. * try to log in and play the character. */ void account_play_cmd(char *buf, int len, socket_struct *ns) { char **chars; int i; SockList sl; player *pl; SockList_Init(&sl); if (!buf[0]) { SockList_AddString(&sl, "failure accountplay Malformed character name"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (ns->account_name == NULL) { SockList_AddString(&sl, "failure accountplay Not logged in"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } chars = account_get_players_for_account(ns->account_name); for (i=0; iaccount_name); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* from a protocol standpoint, accountplay can be used * before there is a player structure (first login) or after * (character has logged in and is changing characters). * Checkthe sockets for that second case - if so, * we don't need to make a new player object, etc. */ for (pl=first_player; pl; pl=pl->next) if (&pl->socket == ns) break; /* Some of this logic is from add_player() * we just don't use add_player() as it does some other work * we don't really want to do. */ if (!pl) { pl = get_player(NULL); memcpy(&pl->socket, ns, sizeof(socket_struct)); ns->faces_sent = NULL; SockList_ResetRead(&pl->socket.inbuf); } else { pl->state = ST_PLAYING; } pl->ob->name = add_string(buf); check_login(pl->ob, 0); SockList_AddString(&sl, "addme_success"); Send_With_Handling(ns, &sl); SockList_Term(&sl); ns->status = Ns_Avail; } #define MAX_CHOICES 100 /** * We have received an accountplay command. * try to log in and play the character. */ void create_player_cmd(char *buf, int len, socket_struct *ns) { char name[MAX_BUF], password[MAX_BUF], *choices[MAX_CHOICES]; int status, nlen, choice_num=0, i; SockList sl; player *pl; archetype *map=NULL, *race_a=NULL, *class_a=NULL; living new_stats; SockList_Init(&sl); nlen = len; status = decode_name_password(buf, &nlen, name, password); if (status == 1) { SockList_AddString(&sl, "failure createplayer Name is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* 2 characters minimum for password */ if (strlen(password)<2) { SockList_AddString(&sl, "failure createplayer Password is too short"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /** too long, buffer overflow */ if (status == 2) { SockList_AddString(&sl, "failure createplayer Password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* This is a fairly ugly solution - we're truncating the password. * however, the password information for characters is really * a legacy issue - when every character is associated with * an account, legacy login (character name/password) will get * removed, at which point the only use for password might be * to move characters from one account to another, but not sure * if that is something we want to allow. */ if (strlen(password)>17) password[16] = 0; /* We just can't call check_name(), since that uses draw_info() to * report status. We are also more permissive on names, so we use * account_check_string() - if that is safe for account, also safe * for player names. */ if (account_check_string(name)) { SockList_AddString(&sl, "failure createplayer The name contains illegal characters"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* 1 means no such player, 0 is correct name/password (which in this * case, is an error), and 2 is incorrect password. Only way we * go onward is if there is no such player. */ if (verify_player(name, password) != 1) { SockList_AddString(&sl, "failure createplayer That name is already in use"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* from a protocol standpoint, accountplay can be used * before there is a player structure (first login) or after * (character has logged in and is changing characters). * Check the sockets for that second case - if so, * we don't need to make a new player object, etc. */ for (pl=first_player; pl; pl=pl->next) if (&pl->socket == ns) break; /* In this mode, we have additional data * Note that because there are a lot of failure cases in here * (where we end up not creating the new player), the code * to create the new player is done within this routine * after all checks pass. Note that all of the checks * done are done without using the player structure, * as pl may be null right now. */ if (ns->login_method >= 2) { int i, j, stat_total=0; char *key, *value, *race=NULL, *class=NULL; /* By setting this to zero, then we can easily * check to see if all stats have been set. */ memset(&new_stats, 0, sizeof(living)); while (nlen < len) { i = buf[nlen]; /* Length of this line */ /* Sanity check from client - don't want to loop * forever if there is a 0 length, and don't * want to read beyond size of packet. * Likewise, client should have sent * the string to us already null terminated, * but we will just make sure. */ if ((i == 0) || (nlen + i > len)) break; buf[nlen + i] = 0; /* What we have are a series of lines - * 'key value' format. Find that space, * and null it out so we can do strcasecmp. * If no space, abort processing */ key = buf + nlen + 1; value = strchr(key, ' '); if (!value) break; *value = 0; value++; if (!strcasecmp(key,"race")) race = value; else if (!strcasecmp(key,"class")) class = value; else if (!strcasecmp(key,"starting_map")) { map = try_find_archetype(value); if (!map || map->clone.type != MAP || map->clone.subtype !=MAP_TYPE_CHOICE) { SockList_AddString(&sl, "failure createplayer Invalid or map"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } } else if (!strcasecmp(key,"choice")) { /* In general, MAX_CHOICES should be large enough * to always handle the choices from the client - of * course, the client could be broken and send us many * more choices than we should have, so handle that. */ if (choice_num == MAX_CHOICES) { LOG(llevError, "Number of choices receive exceed max value: %d>%d\n", choice_num, MAX_CHOICES); } else { choices[choice_num] = value; choice_num++; } } else { /* Do stat processing here */ for (j=0; j < NUM_STATS; j++) { if (!strcasecmp(key,short_stat_name[j])) { int val = atoi(value); set_attr_value(&new_stats, j, val); break; } } if (j >= NUM_STATS) { /* Bad clients could do this - we should at least report * it, and useful when trying to add new parameters. */ LOG(llevError, "Got unknown key/value from client: %s %s\n", key, value); } } nlen += i + 1; } /* Do some sanity checking now. But checking the stat * values here, we will catch any 0 values since we do * a memset above. A properly behaving client should * never do any of these things, but we do not presume * clients will behave properly. */ for (j=0; j settings.starting_stat_max || val < settings.starting_stat_min) { SockList_AddPrintf(&sl, "failure createplayer Stat value is out of range - %d must be between %d and %d", val, settings.starting_stat_min, settings.starting_stat_max); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } } if (stat_total > settings.starting_stat_points) { SockList_AddPrintf(&sl, "failure createplayer Total allocated statistics is higher than allowed (%d>%d)", stat_total, settings.starting_stat_points); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (race) race_a = try_find_archetype(race); if (class) class_a = try_find_archetype(class); /* This should never happen with a properly behaving client, so the error message * doesn't have to be that great. */ if (!race_a || race_a->clone.type != PLAYER || !class_a || class_a->clone.type != CLASS) { SockList_AddString(&sl, "failure createplayer Invalid or unknown race or class"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* At current time, only way this can fail is if the adjusted * stat is less than 1. */ if (check_race_and_class(&new_stats, race_a, class_a)) { SockList_AddString(&sl, "failure createplayer Unable to apply race or class - statistic is out of bounds"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (!pl) pl = add_player(ns, ADD_PLAYER_NEW | ADD_PLAYER_NO_MAP | ADD_PLAYER_NO_STATS_ROLL); apply_race_and_class(pl->ob, race_a, class_a, &new_stats); } else { /* In thise case, old login method */ if (!pl) pl = add_player(ns, ADD_PLAYER_NEW); roll_again(pl->ob); pl->state = ST_ROLL_STAT; set_first_map(pl->ob); } /* add_player does a lot of the work, but there are a few * things we need to update, like starting name and * password. * This is done before processing in login_method>2. * The character creation process it does when * applying the race/class will use this * name information. */ FREE_AND_COPY(pl->ob->name, name); FREE_AND_COPY(pl->ob->name_pl, name); pl->name_changed = 1; strcpy(pl->password, crypt_string(password, NULL)); SockList_AddString(&sl, "addme_success"); Send_With_Handling(ns, &sl); SockList_Term(&sl); if (ns->login_method >= 2) { /* The client could have provided us a map - if so, map will be set * and we don't want to overwrite it */ if (!map) map = get_archetype_by_type_subtype(MAP, MAP_TYPE_DEFAULT); if (!map) { /* This should never happen - its not something that can * be easily worked around without other weird issues, * like having 2 classes. */ LOG(llevError, "Can not find object of type MAP subtype MAP_TYPE_DEFAULT.\n"); LOG(llevError, "Are the archetype files up to date? Can not continue.\n"); abort(); } enter_exit(pl->ob, &map->clone); if (pl->ob->map == NULL) { LOG(llevError, "Couldn't put player %s on start map %s!", pl->ob->name, map->name); abort(); } /* copy information to bed of reality information, in case the player dies */ snprintf(pl->savebed_map, sizeof(pl->savebed_map), "%s", pl->ob->map->path); pl->bed_x = pl->ob->x; pl->bed_y = pl->ob->y; player_set_state(pl, ST_PLAYING); } /* We insert any objects after we have put the player on the map - * this makes things safer, as certain objects may expect a normal * environment. Note that choice_num will only be set in the * loginmethod > 2, which also checks (and errors out) if the * race/class is not set, which is why explicit checking for * those is not need. */ for (i=0; i < choice_num; i++) { char *choiceval, *cp; const char *value; archetype *arch; object *op; choiceval = strchr(choices[i], ' '); if (!choiceval) { LOG(llevError, "Choice does not specify value: %s\n", choices[i]); continue; } *choiceval=0; choiceval++; value = object_get_value(&race_a->clone, choices[i]); if (!value) value = object_get_value(&class_a->clone, choices[i]); if (!value) { LOG(llevError, "Choice not found in archetype: %s\n", choices[i]); continue; } cp = strstr(value, choiceval); if (!cp) { LOG(llevError, "Choice value not found in archetype: %s %s\n", choices[i], choiceval); continue; } /* Check to make sure that the matched string is an entire word, * and not a substring (eg, valid choice being great_sword but * we just get sword) - the space after the match should either be a * space or null, and space before match should also be a space * or the start of the string. */ if ((cp[strlen(choiceval)] != ' ') && (cp[strlen(choiceval)] != 0) && (cp != value) && (*(cp-1) != ' ')) { LOG(llevError, "Choice value matches substring but not entire word: %s substring %s\n", choiceval, value); continue; } arch = try_find_archetype(choiceval); if (!arch) { LOG(llevError, "Choice value can not find archetype %s\n", choiceval); continue; } op = arch_to_object(arch); op = object_insert_in_ob(op, pl->ob); if (QUERY_FLAG(op, FLAG_AUTO_APPLY)) ob_apply(op, pl->ob, 0); } ns->status = Ns_Avail; } /** * Handles the account password change. * * @param buf * remaining socket data - from this we need to extract old & new password * @param len * length of this buffer * @param ns * pointer to socket structure. */ void account_password(char *buf, int len, socket_struct *ns) { char old[MAX_BUF], change[MAX_BUF]; int status; SockList sl; SockList_Init(&sl); if (ns->account_name == NULL) { SockList_AddString(&sl, "failure accountpw Not logged in"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } status = decode_name_password(buf, &len, old, change); if (status == 1) { SockList_AddString(&sl, "failure accountpw Old password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountpw New password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /*The minimum length isn't exactly required, but in the current implementation, * client will send the same password for character for which there is a * 2 character minimum size. Thus an account with a one character password * won't be able to create a character. */ if (strlen(change)<2) { SockList_AddString(&sl, "failure accountpw New password is too short"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } status = account_check_string(change); if (status == 1) { SockList_AddString(&sl, "failure accountpw That password contains invalid characters."); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } if (status == 2) { SockList_AddString(&sl, "failure accountpw That password is too long"); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } status = account_change_password(ns->account_name, old, change); if (status != 0) { const char *error; if (status == 1) error = "failure accountpw Invalid characters"; else if (status == 2) error = "failure accountpw Invalid account"; else error = "failure accountpw Invalid password for account"; SockList_AddString(&sl, error); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } /* If we got here, we passed all checks, and password was changed */ send_account_players(ns); } crossfire-1.70.0/socket/lowlevel.c0000644000014500000120000004434511731300524013775 00000000000000/* * static char *rcsid_sockets_c = * "$Id: lowlevel.c 14914 2011-07-24 10:02:41Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to mark@pyramid.com */ /** * \file * Low-level socket-related functions. * * \date 2003-12-02 * * Contains some base functions that both the client and server * can use. As such, depending what we are being compiled for will * determine what we can include. the client is designed have * CFCLIENT defined as part of its compile flags. */ #include #include #include #include #include #include /*********************************************************************** * * SockList functions/utilities * **********************************************************************/ /** * Initializes the SockList instance. Must be called before other socklist * functions are called. * @param sl the SockList instance to initialize */ void SockList_Init(SockList *sl) { SockList_Reset(sl); } /** * Frees all resources allocated by a SockList instance. Must be called when * the instance is not needed anymore. Afterwards no socklist functions except * SockList_Init may be called. * @param sl the SockList instance to free */ void SockList_Term(SockList *sl) { } /** * Resets the length of the stored data for writing. Does not free or * re-allocate resources. * @param sl the SockList instance to reset */ void SockList_Reset(SockList *sl) { sl->len = 2; } /** * Resets the length of the stored data for reading. Does not free or * re-allocate resources. * @param sl the SockList instance to reset */ void SockList_ResetRead(SockList *sl) { sl->len = 0; } /** * Checks that at least a given number of bytes is available in a SockList * instance. Returns normal if the space is available. Otherwise calls * fatal(OUT_OF_MEMORY); * * @param sl the SockList instance to check * @param size the number of bytes to ensure */ static void SockList_Ensure(const SockList *sl, size_t size) { if (sl->len+size > sizeof(sl->buf)) { fatal(OUT_OF_MEMORY); } } /** * Adds an 8 bit value. * @param sl the SockList instance to add to * @param data the value to add */ void SockList_AddChar(SockList *sl, char data) { SockList_Ensure(sl, 1); sl->buf[sl->len++] = data; } /** * Adds a 16 bit value. * @param sl the SockList instance to add to * @param data the value to add */ void SockList_AddShort(SockList *sl, uint16 data) { SockList_Ensure(sl, 2); sl->buf[sl->len++] = (data>>8)&0xff; sl->buf[sl->len++] = data&0xff; } /** * Adds a 32 bit value. * @param sl the SockList instance to add to * @param data the value to add */ void SockList_AddInt(SockList *sl, uint32 data) { SockList_Ensure(sl, 4); sl->buf[sl->len++] = (data>>24)&0xff; sl->buf[sl->len++] = (data>>16)&0xff; sl->buf[sl->len++] = (data>>8)&0xff; sl->buf[sl->len++] = data&0xff; } /** * Adds a 64 bit value. * @param sl the SockList instance to add to * @param data the value to add */ void SockList_AddInt64(SockList *sl, uint64 data) { SockList_Ensure(sl, 8); sl->buf[sl->len++] = (char)((data>>56)&0xff); sl->buf[sl->len++] = (char)((data>>48)&0xff); sl->buf[sl->len++] = (char)((data>>40)&0xff); sl->buf[sl->len++] = (char)((data>>32)&0xff); sl->buf[sl->len++] = (char)((data>>24)&0xff); sl->buf[sl->len++] = (char)((data>>16)&0xff); sl->buf[sl->len++] = (char)((data>>8)&0xff); sl->buf[sl->len++] = (char)(data&0xff); } /** * Adds a string without length. * @param sl the SockList instance to add to * @param data the value to add */ void SockList_AddString(SockList *sl, const char *data) { SockList_AddData(sl, data, strlen(data)); } /** * Adds a data block. * @param sl the SockList instance to add to * @param data the value to add * @param len the length in byte */ void SockList_AddData(SockList *sl, const void *data, size_t len) { SockList_Ensure(sl, len); memcpy(sl->buf+sl->len, data, len); sl->len += len; } /** * Adds a data block prepended with an 8 bit length field. * @param sl the SockList instance to add to * @param data the value to add * @param len the length in byte; must not exceed 255 */ void SockList_AddLen8Data(SockList *sl, const void *data, size_t len) { assert(len <= 255); SockList_AddChar(sl, len); SockList_AddData(sl, data, len); } /** * Adds a data block prepended with an 16 bit length field. * @param sl the SockList instance to add to * @param data the value to add * @param len the length in byte; must not exceed 65535 */ void SockList_AddLen16Data(SockList *sl, const void *data, size_t len) { assert(len <= 65535); SockList_AddShort(sl, len); SockList_AddData(sl, data, len); } /** * Adds a printf like formatted string. * @param sl the SockList instance to add to * @param format the format specifier */ void SockList_AddPrintf(SockList *sl, const char *format, ...) { size_t size; int n; va_list arg; size = sizeof(sl->buf)-sl->len; va_start(arg, format); n = vsnprintf((char *)sl->buf+sl->len, size, format, arg); va_end(arg); if (n <= -1 || (size_t)n >= size) { fatal(OUT_OF_MEMORY); } sl->len += (size_t)n; } /** * Deallocates string buffer instance and appends its contents. The passed * StringBuffer must not be accessed afterwards. * @param sl the SockList instance to add to * @param sb the StringBuffer to deallocate */ void SockList_AddStringBuffer(SockList *sl, StringBuffer *sb) { char *p; p = stringbuffer_finish(sb); SockList_AddString(sl, p); free(p); } /** * Adds a NUL byte without changing the length. * @param sl the SockList instance to add to */ void SockList_NullTerminate(SockList *sl) { SockList_Ensure(sl, 1); sl->buf[sl->len] = '\0'; } /** * Returns the available bytes in a SockList instance. * @return the available bytes */ size_t SockList_Avail(const SockList *sl) { return sizeof(sl->buf)-sl->len; } /** * Basically does the reverse of SockList_AddInt, but on * strings instead. Same for the GetShort, but for 16 bits. */ int GetInt_String(const unsigned char *data) { return ((data[0]<<24)+(data[1]<<16)+(data[2]<<8)+data[3]); } short GetShort_String(const unsigned char *data) { return ((data[0]<<8)+data[1]); } /****************************************************************************** * * Start of read routines. * ******************************************************************************/ /** * This reads from fd and puts the data in sl. We return true if we think * we have a full packet, 0 if we have a partial packet, or -1 if an error * occurred. The only processing we do is remove the initial size value. len * (As passed) is the size of the buffer allocated in the socklist. We make * the assumption the buffer is at least 2 bytes long. */ int SockList_ReadPacket(int fd, SockList *sl, int len) { int stat, toread; char err[MAX_BUF]; /* We already have a partial packet */ if (sl->len < 2) { #ifdef WIN32 /* ***WIN32 SockList_ReadPacket: change read() to recv() */ stat = recv(fd, sl->buf+sl->len, 2-sl->len, 0); #else do { stat = read(fd, sl->buf+sl->len, 2-sl->len); } while ((stat == -1) && (errno == EINTR)); #endif if (stat < 0) { /* In non blocking mode, EAGAIN is set when there is no * data available. */ #ifdef WIN32 /* ***WIN32 SockList_ReadPacket: error handling for win32 */ if ((stat == -1) && WSAGetLastError() != WSAEWOULDBLOCK) { if (WSAGetLastError() == WSAECONNRESET) LOG(llevDebug, "Connection closed by client\n"); else { LOG(llevDebug, "ReadPacket got error %d, returning -1\n", WSAGetLastError()); } return -1; /* kick this user! */ } #else if (errno == ECONNRESET) { LOG(llevDebug, "ReadPacket got error %s, returning -1\n", strerror_local(errno, err, sizeof(err))); return -1; } if (errno != EAGAIN && errno != EWOULDBLOCK) { LOG(llevDebug, "ReadPacket got error %s, returning 0\n", strerror_local(errno, err, sizeof(err))); } #endif return 0; /*Error */ } if (stat == 0) return -1; sl->len += stat; #ifdef CS_LOGSTATS cst_tot.ibytes += stat; cst_lst.ibytes += stat; #endif if (stat < 2) return 0; /* Still don't have a full packet */ } /* Figure out how much more data we need to read. Add 2 from the * end of this - size header information is not included. */ toread = 2+(sl->buf[0]<<8)+sl->buf[1]-sl->len; if ((toread+(int)sl->len) >= len) { LOG(llevError, "SockList_ReadPacket: Want to read more bytes than will fit in buffer (%lu>=%lu).\n", (unsigned long)toread+sl->len, (unsigned long)len); /* Quick hack in case for 'oldsocketmode' input. If we are * closing the socket anyways, then reading this extra 100 bytes * shouldn't hurt. */ #ifdef WIN32 /* ***win32 SockList_ReadPacket: change read() to recv() */ recv(fd, sl->buf+2, 100, 0); #else read(fd, sl->buf+2, 100); #endif /* end win32 */ /* return error so the socket is closed */ return -1; } do { #ifdef WIN32 /* ***win32 SockList_ReadPacket: change read() to recv() */ stat = recv(fd, sl->buf+sl->len, toread, 0); #else do { stat = read(fd, sl->buf+sl->len, toread); } while ((stat < 0) && (errno == EINTR)); #endif if (stat < 0) { #ifdef WIN32 /* ***win32 SockList_ReadPacket: change error handling for win32 */ if ((stat == -1) && WSAGetLastError() != WSAEWOULDBLOCK) { if (WSAGetLastError() == WSAECONNRESET) LOG(llevDebug, "Connection closed by client\n"); else { LOG(llevDebug, "ReadPacket got error %d, returning -1\n", WSAGetLastError()); } return -1; /* kick this user! */ } #else if (errno != EAGAIN && errno != EWOULDBLOCK) { LOG(llevDebug, "ReadPacket got error %s, returning 0\n", strerror_local(errno, err, sizeof(err))); } #endif return 0; /*Error */ } if (stat == 0) return -1; sl->len += stat; #ifdef CS_LOGSTATS cst_tot.ibytes += stat; cst_lst.ibytes += stat; #endif toread -= stat; if (toread == 0) return 1; if (toread < 0) { LOG(llevError, "SockList_ReadPacket: Read more bytes than desired.\n"); return 1; } } while (toread > 0); return 0; } /******************************************************************************* * * Start of write related routines. * ******************************************************************************/ /** * Adds data to a socket buffer for whatever reason. * * ns is the socket we are adding the data to, buf is the start of the * data, and len is the number of bytes to add. */ static void add_to_buffer(socket_struct *ns, const unsigned char *buf, int len) { int avail, end; if ((len+ns->outputbuffer.len) > SOCKETBUFSIZE) { LOG(llevDebug, "Socket on fd %d has overrun internal buffer - marking as dead\n", ns->fd); ns->status = Ns_Dead; return; } /* data + end is where we start putting the new data. The last byte * currently in use is actually data + end -1 */ end = ns->outputbuffer.start+ns->outputbuffer.len; /* The buffer is already in a wrapped state, so adjust end */ if (end >= SOCKETBUFSIZE) end -= SOCKETBUFSIZE; avail = SOCKETBUFSIZE-end; /* We can all fit it behind the current data without wrapping */ if (avail >= len) { memcpy(ns->outputbuffer.data+end, buf, len); } else { memcpy(ns->outputbuffer.data+end, buf, avail); memcpy(ns->outputbuffer.data, buf+avail, len-avail); } ns->outputbuffer.len += len; } /** * Writes data to socket. * * When the socket is clear to write, and we have backlogged data, this * is called to write it out. */ void write_socket_buffer(socket_struct *ns) { int amt, max; if (ns->outputbuffer.len == 0) { LOG(llevDebug, "write_socket_buffer called when there is no data, fd=%d\n", ns->fd); return; } do { max = SOCKETBUFSIZE-ns->outputbuffer.start; if (ns->outputbuffer.len < max) max = ns->outputbuffer.len; #ifdef WIN32 /* ***win32 write_socket_buffer: change write() to send() */ amt = send(ns->fd, ns->outputbuffer.data+ns->outputbuffer.start, max, 0); #else do { amt = write(ns->fd, ns->outputbuffer.data+ns->outputbuffer.start, max); } while ((amt < 0) && (errno == EINTR)); #endif if (amt < 0) { /* We got an error */ #ifdef WIN32 /* ***win32 write_socket_buffer: change error handling */ if (amt == -1 && WSAGetLastError() != WSAEWOULDBLOCK) { LOG(llevError, "New socket write failed (wsb) (%d).\n", WSAGetLastError()); #else if (errno != EWOULDBLOCK) { char err[MAX_BUF]; LOG(llevError, "New socket write failed (wsb) (%d: %s).\n", errno, strerror_local(errno, err, sizeof(err))); #endif ns->status = Ns_Dead; return; } else { /* EWOULDBLOCK */ /* can't write it, so store it away. */ ns->can_write = 0; return; } } ns->outputbuffer.start += amt; /* wrap back to start of buffer */ if (ns->outputbuffer.start == SOCKETBUFSIZE) ns->outputbuffer.start = 0; ns->outputbuffer.len -= amt; #ifdef CS_LOGSTATS cst_tot.obytes += amt; cst_lst.obytes += amt; #endif } while (ns->outputbuffer.len > 0); } /** * This writes data to the socket. - It is very low level - * all we try and do is write out the data to the socket * provided (ns). buf is the data to write, len is the number * of bytes to write. IT doesn't return anything - rather, it * updates the ns structure if we get an error. */ static void Write_To_Socket(socket_struct *ns, const unsigned char *buf, int len) { int amt = 0; const unsigned char *pos = buf; char err[MAX_BUF]; if (ns->status == Ns_Dead || !buf) { LOG(llevDebug, "Write_To_Socket called with dead socket\n"); return; } #ifndef __GNU__ /* This caused problems on Hurd */ if (!ns->can_write) { add_to_buffer(ns, buf, len); return; } #endif /* If we manage to write more than we wanted, take it as a bonus */ while (len > 0) { #ifdef WIN32 /* ***win32 Write_To_Socket: change write() to send() */ amt = send(ns->fd, pos, len, 0); #else do { amt = write(ns->fd, pos, len); } while ((amt < 0) && (errno == EINTR)); #endif if (amt < 0) { /* We got an error */ #ifdef WIN32 /* ***win32 Write_To_Socket: change error handling */ if (amt == -1 && WSAGetLastError() != WSAEWOULDBLOCK) { LOG(llevError, "New socket write failed WTS (%d).\n", WSAGetLastError()); #else if (errno != EWOULDBLOCK) { LOG(llevError, "New socket write failed WTS (%d: %s).\n", errno, strerror_local(errno, err, sizeof(err))); #endif ns->status = Ns_Dead; return; } else { /* EWOULDBLOCK */ /* can't write it, so store it away. */ add_to_buffer(ns, pos, len); ns->can_write = 0; return; } /* amt gets set to 0 above in blocking code, so we do this as * an else if to make sure we don't reprocess it. */ } else if (amt == 0) { LOG(llevError, "Write_To_Socket: No data written out.\n"); } len -= amt; pos += amt; #ifdef CS_LOGSTATS cst_tot.obytes += amt; cst_lst.obytes += amt; #endif } } /** * Calls Write_To_Socket to send data to the client. * * The only difference in this function is that we take a SockList *, and we prepend the length information. */ void Send_With_Handling(socket_struct *ns, SockList *sl) { if (ns->status == Ns_Dead || sl == NULL) return; sl->buf[0] = ((sl->len-2)>>8)&0xFF; sl->buf[1] = (sl->len-2)&0xFF; Write_To_Socket(ns, sl->buf, sl->len); } /****************************************************************************** * * statistics logging functions. * ******************************************************************************/ #ifdef CS_LOGSTATS /* cst_tot is for the life of the server, cst_last is for the last series of * stats */ CS_Stats cst_tot, cst_lst; /** * Writes out the gathered stats. We clear cst_lst. */ void write_cs_stats(void) { time_t now = time(NULL); /* If no connections recently, don't bother to log anything */ if (cst_lst.ibytes == 0 && cst_lst.obytes == 0) return; /* CSSTAT is put in so scripts can easily find the line */ LOG(llevInfo, "CSSTAT: %.16s tot %d %d %d %ld inc %d %d %d %ld\n", ctime(&now), cst_tot.ibytes, cst_tot.obytes, cst_tot.max_conn, (long)(now-cst_tot.time_start), cst_lst.ibytes, cst_lst.obytes, cst_lst.max_conn, (long)(now-cst_lst.time_start)); cst_lst.ibytes = 0; cst_lst.obytes = 0; cst_lst.max_conn = socket_info.allocated_sockets; cst_lst.time_start = now; } #endif crossfire-1.70.0/socket/init.c0000644000014500000120000003651311731300524013105 00000000000000/* * static char *rcsid_init_c = * "$Id: init.c 17000 2012-02-07 18:56:31Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006,2010 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to crossfire-devel@real-time.com */ /** * \file * Socket general functions * * \date 2003-12-02 * * Mainly deals with initialization and higher level socket * maintenance (checking for lost connections and if data has arrived.) * The reading of data is handled in ericserver.c */ #include #ifndef __CEXTRACT__ #include #endif #ifndef WIN32 /* ---win32 exclude include files */ #include #include #include #include #endif /* win32 */ #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #include #include /** Socket information. */ Socket_Info socket_info; /** * Established connections for clients not yet playing. See the page on * @ref page_connection "the login process" for a description of its use. * Socket at index 0 is the socket listening for connections, and must not * be freed. * If this socket becomes invalid, then the server will try to reopen it. */ socket_struct *init_sockets; /** * Initializes a connection. Really, it just sets up the data structure, * socket setup is handled elsewhere. We do send a version to the * client. */ void init_connection(socket_struct *ns, const char *from_ip) { SockList sl; int bufsize = 65535; /*Supposed absolute upper limit */ int oldbufsize; socklen_t buflen = sizeof(int); #ifdef WIN32 /* ***WIN32 SOCKET: init win32 non blocking socket */ int temp = 1; if (ioctlsocket(ns->fd, FIONBIO , &temp) == -1) LOG(llevError, "init_connection: Error on ioctlsocket.\n"); #else if (fcntl(ns->fd, F_SETFL, O_NONBLOCK) == -1) { LOG(llevError, "init_connection: Error on fcntl.\n"); } #endif /* end win32 */ if (getsockopt(ns->fd, SOL_SOCKET, SO_SNDBUF, (char *)&oldbufsize, &buflen) == -1) oldbufsize = 0; if (oldbufsize < bufsize) { #ifdef ESRV_DEBUG LOG(llevDebug, "Default buffer size was %d bytes, will reset it to %d\n", oldbufsize, bufsize); #endif if (setsockopt(ns->fd, SOL_SOCKET, SO_SNDBUF, (char *)&bufsize, sizeof(bufsize))) { LOG(llevError, "init_connection: setsockopt unable to set output buf size to %d\n", bufsize); } } buflen = sizeof(oldbufsize); getsockopt(ns->fd, SOL_SOCKET, SO_SNDBUF, (char *)&oldbufsize, &buflen); #ifdef ESRV_DEBUG LOG(llevDebug, "Socket buffer size now %d bytes\n", oldbufsize); #endif ns->faceset = 0; ns->facecache = 0; ns->sound = 0; ns->sounds_this_tick = 0; ns->monitor_spells = 0; ns->darkness = 1; ns->status = Ns_Add; ns->mapx = 11; ns->mapy = 11; ns->look_position = 0; ns->container_position = 0; ns->update_look = 0; ns->update_inventory = 0; ns->tick = 0; ns->is_bot = 0; ns->num_look_objects = DEFAULT_NUM_LOOK_OBJECTS; ns->want_pickup = 0; ns->extended_stats = 0; ns->account_name = NULL; ns->account_chars = NULL; ns->login_method = 0; ns->notifications = 0; /* we should really do some checking here - if total clients overflows * we need to do something more intelligent, because client id's will start * duplicating (not likely in normal cases, but malicous attacks that * just open and close connections could get this total up. */ SockList_Init(&ns->inbuf); SockList_ResetRead(&ns->inbuf); /* Basic initialization. Needed because we do a check in * handle_client for oldsocketmode without checking the * length of data. */ memset(ns->inbuf.buf, 0, sizeof(ns->inbuf.buf)); memset(&ns->lastmap, 0, sizeof(struct Map)); if (!ns->faces_sent) ns->faces_sent = calloc(sizeof(*ns->faces_sent), nrofpixmaps); ns->faces_sent_len = nrofpixmaps; memset(&ns->anims_sent, 0, sizeof(ns->anims_sent)); memset(&ns->stats, 0, sizeof(struct statsinfo)); ns->map_scroll_x = 0; ns->map_scroll_y = 0; /* Do this so we don't send a face command for the client for * this face. Face 0 is sent to the client to say clear * face information. */ ns->faces_sent[0] = NS_FACESENT_FACE; ns->outputbuffer.start = 0; ns->outputbuffer.len = 0; ns->can_write = 1; ns->password_fails = 0; ns->host = strdup_local(from_ip); SockList_Init(&sl); SockList_AddPrintf(&sl, "version %d %d %s\n", VERSION_CS, VERSION_SC, VERSION_INFO); Send_With_Handling(ns, &sl); SockList_Term(&sl); #ifdef CS_LOGSTATS if (socket_info.allocated_sockets > cst_tot.max_conn) cst_tot.max_conn = socket_info.allocated_sockets; if (socket_info.allocated_sockets > cst_lst.max_conn) cst_lst.max_conn = socket_info.allocated_sockets; #endif } /** * This opens *ns for listening to connections. * The structure must be allocated already and * ns->listen must be initialized. * No other variable is changed. */ void init_listening_socket(socket_struct *ns) { struct linger linger_opt; char buf1[MAX_BUF], buf2[MAX_BUF]; char err[MAX_BUF]; if (ns == NULL || ns->listen == NULL) { LOG(llevError, "init_listening_socket: missing listen info in socket_struct?!\n"); fatal(SEE_LAST_ERROR); } ns->status = Ns_Dead; ns->fd = socket(ns->listen->family, ns->listen->socktype, ns->listen->protocol); if (ns->fd == -1) { LOG(llevError, "Cannot create socket: %s\n", strerror_local(errno, err, sizeof(err))); return; } linger_opt.l_onoff = 0; linger_opt.l_linger = 0; if (setsockopt(ns->fd, SOL_SOCKET, SO_LINGER, (char *)&linger_opt, sizeof(struct linger))) { LOG(llevError, "Cannot setsockopt(SO_LINGER): %s\n", strerror_local(errno, err, sizeof(err))); } /* Would be nice to have an autoconf check for this. It appears that * these functions are both using the same calling syntax, just one * of them needs extra valus passed. */ #if defined(__osf__) || defined(hpux) || defined(sgi) || defined(NeXT) || \ defined(__sun__) || defined(__linux__) || defined(SVR4) || \ defined(__FreeBSD__) || defined(__OpenBSD__) || \ defined(WIN32) /* ---win32 add this here */ || \ defined(__GNU__) /* HURD */ { #ifdef WIN32 char tmp = 1; #else int tmp = 1; #endif if (setsockopt(ns->fd, SOL_SOCKET, SO_REUSEADDR, &tmp, sizeof(tmp))) { LOG(llevError, "Cannot setsockopt(SO_REUSEADDR): %s\n", strerror_local(errno, err, sizeof(err))); } #ifdef HAVE_GETADDRINFO if ((ns->listen->family == AF_INET6) && setsockopt(ns->fd, IPPROTO_IPV6, IPV6_V6ONLY, &tmp, sizeof(tmp))) { LOG(llevError, "Cannot setsockopt(IPV6_V6ONLY): %s\n", strerror_local(errno, err, sizeof(err))); } #endif } #else if (setsockopt(ns->fd, SOL_SOCKET, SO_REUSEADDR, (char *)NULL, 0)) { LOG(llevError, "Cannot setsockopt(SO_REUSEADDR): %s\n", strerror_local(errno, err, sizeof(err))); } #endif if (bind(ns->fd, ns->listen->addr, ns->listen->addrlen) == (-1)) { #ifdef HAVE_GETNAMEINFO getnameinfo(ns->listen->addr, ns->listen->addrlen, buf1, sizeof(buf1), buf2, sizeof(buf2), NI_NUMERICHOST|NI_NUMERICSERV); #else short port; long ip; ip = ntohl(((struct sockaddr_in *)ns->listen->addr)->sin_addr.s_addr); port = ntohs(((struct sockaddr_in *)ns->listen->addr)->sin_port); snprintf(buf1, sizeof(buf1), "%ld.%ld.%ld.%ld", (ip>>24)&255, (ip>>16)&255, (ip>>8)&255, ip&255); snprintf(buf2, sizeof(buf2), "%d", port&65535); #endif LOG(llevError, "Cannot bind socket to [%s]:%s: %s\n", buf1, buf2, strerror_local(errno, err, sizeof(err))); #ifdef WIN32 /* ***win32: close() -> closesocket() */ shutdown(ns->fd, SD_BOTH); closesocket(ns->fd); #else close(ns->fd); #endif /* win32 */ ns->fd = -1; return; } if (listen(ns->fd, 5) == (-1)) { LOG(llevError, "Cannot listen on socket: %s\n", strerror_local(errno, err, sizeof(err))); #ifdef WIN32 /* ***win32: close() -> closesocket() */ shutdown(ns->fd, SD_BOTH); closesocket(ns->fd); #else close(ns->fd); #endif /* win32 */ ns->fd = -1; return; } ns->status = Ns_Add; } /** This sets up the socket and reads all the image information into memory. * @todo fix socket_info.max_filedescriptor hack. */ void init_server(void) { int i, e, listen_socket_count; #ifdef HAVE_GETADDRINFO struct addrinfo *ai, *ai_p; struct addrinfo hints; char buf[MAX_BUF]; #else struct sockaddr_in *insock; struct protoent *protox; #endif #ifdef WIN32 /* ***win32 - we init a windows socket */ WSADATA w; socket_info.max_filedescriptor = 1; /* used in select, ignored in winsockets */ WSAStartup(0x0101, &w); /* this setup all socket stuff */ /* ill include no error tests here, winsocket 1.1 should always work */ /* except some old win95 versions without tcp/ip stack */ #else /* non windows */ #ifdef HAVE_SYSCONF socket_info.max_filedescriptor = sysconf(_SC_OPEN_MAX); #else # ifdef HAVE_GETDTABLESIZE socket_info.max_filedescriptor = getdtablesize(); # else "Unable to find usable function to get max filedescriptors"; # endif #endif #endif /* win32 */ /* * There is a bug on FreeBSD 9 in that the value we get here is over 1024, * which is the limit FD_ZERO and friends will use. * So later on file descriptors are not correctly cleared, and select() fails. * Therefore here's a hack to prevent that, but the real solution would be * to figure why this happens and how to fix it. * Nicolas W, 2012 feb 07. */ if (socket_info.max_filedescriptor > 1024) { LOG(llevDebug, "warning, socket_info.max_filedescriptor is %d, setting to 1024.\n", socket_info.max_filedescriptor); socket_info.max_filedescriptor = 1024; } /* end of hack */ socket_info.timeout.tv_sec = 0; socket_info.timeout.tv_usec = 0; #ifdef CS_LOGSTATS memset(&cst_tot, 0, sizeof(CS_Stats)); memset(&cst_lst, 0, sizeof(CS_Stats)); cst_tot.time_start = time(NULL); cst_lst.time_start = time(NULL); #endif #ifdef HAVE_GETADDRINFO memset(&hints, '\0', sizeof(hints)); hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; hints.ai_socktype = SOCK_STREAM; snprintf(buf, sizeof(buf), "%d", settings.csport); e = getaddrinfo(NULL, buf, &hints, &ai); if (e != 0) { LOG(llevError, "init_server: getaddrinfo: %s\n", gai_strerror(e)); fatal(SEE_LAST_ERROR); } listen_socket_count = 0; for (ai_p = ai; ai_p != NULL; ai_p = ai_p->ai_next) { listen_socket_count++; } #else listen_socket_count = 1; #endif LOG(llevDebug, "Initialize new client/server data\n"); init_sockets = malloc(sizeof(socket_struct) * listen_socket_count); socket_info.allocated_sockets = listen_socket_count; for (i = 0; i < listen_socket_count; i++) { init_sockets[i].listen = calloc(sizeof(struct listen_info), 1); init_sockets[i].faces_sent = NULL; /* unused */ init_sockets[i].account_name = NULL; /* Must be set to avoid undef behaviour elsewhere. */ } #ifdef HAVE_GETADDRINFO for (i = 0, ai_p = ai; i < listen_socket_count && ai_p != NULL; i++, ai_p = ai_p->ai_next) { init_sockets[i].listen->family = ai_p->ai_family; init_sockets[i].listen->socktype = ai_p->ai_socktype; init_sockets[i].listen->protocol = ai_p->ai_protocol; init_sockets[i].listen->addrlen = ai_p->ai_addrlen; init_sockets[i].listen->addr = malloc(ai_p->ai_addrlen); memcpy(init_sockets[i].listen->addr, ai_p->ai_addr, ai_p->ai_addrlen); } freeaddrinfo(ai); #else protox = getprotobyname("tcp"); if (protox == NULL) { LOG(llevError, "init_server: Error getting protox\n"); fatal(SEE_LAST_ERROR); } init_sockets[0].listen->family = PF_INET; init_sockets[0].listen->socktype = SOCK_STREAM; init_sockets[0].listen->protocol = protox->p_proto; insock = calloc(sizeof(struct sockaddr_in), 1); insock->sin_family = AF_INET; insock->sin_port = htons(settings.csport); insock->sin_addr.s_addr = htonl(INADDR_ANY); init_sockets[0].listen->addr = (struct sockaddr *) insock; init_sockets[0].listen->addrlen = sizeof(struct sockaddr_in); #endif e = 1; for (i = 0; i < listen_socket_count; i++) { init_listening_socket(&init_sockets[i]); if (init_sockets[i].fd != -1) e = 0; } if (e != 0) { LOG(llevError, "init_server: can't open any listening socket\n"); fatal(SEE_LAST_ERROR); } read_client_images(); } /******************************************************************************* * * Start of functions dealing with freeing of the data. * ******************************************************************************/ /** Free's all the memory that ericserver allocates. */ void free_all_newserver(void) { int i; LOG(llevDebug, "Freeing all new client/server information.\n"); free_socket_images(); for (i = 0; i < socket_info.allocated_sockets && init_sockets[i].listen; i++) { free(init_sockets[i].listen->addr); free(init_sockets[i].listen); } free(init_sockets); } /** * Frees a socket. * Basically, all we need to do here is free all data structures that * might be associated with the socket. It is up to the caller to * update the list */ void free_newsocket(socket_struct *ns) { #ifdef WIN32 /* ***win32: closesocket in windows style */ shutdown(ns->fd, SD_BOTH); if (closesocket(ns->fd)) { #else if (close(ns->fd)) { #endif /* win32 */ #ifdef ESRV_DEBUG LOG(llevDebug, "Error closing socket %d\n", ns->fd); #endif } ns->fd = -1; if (ns->stats.range) FREE_AND_CLEAR(ns->stats.range); if (ns->stats.title) FREE_AND_CLEAR(ns->stats.title); if (ns->host) FREE_AND_CLEAR(ns->host); if (ns->account_name) { account_char_save(ns->account_name, ns->account_chars); FREE_AND_CLEAR(ns->account_name); } if (ns->account_chars) { account_char_free(ns->account_chars); ns->account_chars = NULL; } SockList_Term(&ns->inbuf); } /** Sends the 'goodbye' command to the player, and closes connection. */ void final_free_player(player *pl) { SockList sl; SockList_Init(&sl); SockList_AddString(&sl, "goodbye"); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); free_newsocket(&pl->socket); free_player(pl); } crossfire-1.70.0/socket/metaserver.c0000644000014500000120000004164011731300524014314 00000000000000/* * static char *rcsid_metaserver_c = * "$Id: metaserver.c 15225 2011-10-21 17:41:22Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002,2007 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * \file * \date 2003-12-02 * Meta-server related functions. */ #include #ifndef WIN32 /* ---win32 exclude unix header files */ #include #include #include #include #endif /* end win32 */ #include #include #include #ifdef HAVE_CURL_CURL_H #include #include #endif /** * Updates our info in the metaserver * Note that this is used for both metaserver1 and metaserver2 - * for metaserver2, it just copies dynamic data into private * data structure, doing locking in the process. */ void metaserver_update(void) { char num_players = 0; player *pl; /* We could use socket_info.nconns, but that is not quite as accurate, * as connections in the progress of being established, are listening * but don't have a player, etc. The checks below are basically the * same as for the who commands with the addition that WIZ, AFK, and BOT * players are not counted. */ for (pl = first_player; pl != NULL; pl = pl->next) { if (pl->ob->map == NULL) continue; if (pl->hidden) continue; if (QUERY_FLAG(pl->ob, FLAG_WIZ)) continue; if (QUERY_FLAG(pl->ob, FLAG_AFK)) continue; if (pl->state != ST_PLAYING && pl->state != ST_GET_PARTY_PASSWORD) continue; if (pl->socket.is_bot) continue; num_players++; } /* Everything inside the pthread lock/unlock is related * to metaserver2 synchronization. */ pthread_mutex_lock(&ms2_info_mutex); metaserver2_updateinfo.num_players = num_players; metaserver2_updateinfo.in_bytes = cst_tot.ibytes; metaserver2_updateinfo.out_bytes = cst_tot.obytes; metaserver2_updateinfo.uptime = (long)time(NULL)-cst_tot.time_start; pthread_mutex_unlock(&ms2_info_mutex); } /** * Start of metaserver2 logic * Note: All static structures in this file should be treated as strictly * private. The metaserver2 update logic runs in its own thread, * so if something needs to modify these structures, proper locking * is needed. */ /** * This is a linked list of all the metaservers - * never really know how many we have. */ typedef struct _MetaServer2 { char *hostname; struct _MetaServer2 *next; } MetaServer2; static MetaServer2 *metaserver2; /** * LocalMeta2Info basically holds all the non server metaserver2 information * that we read from the metaserver2 file. Could just have * individual variables, but doing it as a structure is cleaner * I think, and might be more flexible if in the future, we * want to pass this information to other functions (like plugin * or something) */ typedef struct _LocalMeta2Info { int notification; /* if true, do updates to metaservers */ char *hostname; /* Hostname of this server */ int portnumber; /* Portnumber of this server */ char *html_comment; /* html comment to send to metaservers */ char *text_comment; /* text comment to send to metaservers */ char *archbase; /* Different sources for arches, maps */ char *mapbase; /* and server */ char *codebase; char *flags; /* Short flags to send to metaserver */ } LocalMeta2Info; static LocalMeta2Info local_info; /* These two are globals, but we declare them here. */ pthread_mutex_t ms2_info_mutex; MetaServer2_UpdateInfo metaserver2_updateinfo; /** * This frees any data associated with the MetaServer2 info, * including the pointer itself. Caller is responsible for updating * pointers (ms->next) - really only used when wanting to free * all data. */ static void free_metaserver2(MetaServer2 *ms) { free(ms->hostname); free(ms); } /** * This initializes the metaserver2 logic - it reads * the metaserver2 file, storing the values * away. Note that it may be possible/desirable for the * server to re-read the values and restart connections (for example, * a new metaserver has been added and you want to start updates to * it immediately and not restart the server). Because of that, * there is some extra logic (has_init) to try to take that * into account. * * @return * 1 if we will be updating the metaserver, 0 if no * metaserver updates */ int metaserver2_init(void) { static int has_init = 0; FILE *fp; char buf[MAX_BUF], *cp, dummy[1]; MetaServer2 *ms2, *msnext; pthread_t thread_id; dummy[0] = '\0'; #ifdef HAVE_CURL_CURL_H if (!has_init) { memset(&local_info, 0, sizeof(LocalMeta2Info)); memset(&metaserver2_updateinfo, 0, sizeof(MetaServer2_UpdateInfo)); local_info.portnumber = settings.csport; metaserver2 = NULL; pthread_mutex_init(&ms2_info_mutex, NULL); curl_global_init(CURL_GLOBAL_ALL); } else { local_info.notification = 0; if (local_info.hostname) FREE_AND_CLEAR(local_info.hostname); if (local_info.html_comment) FREE_AND_CLEAR(local_info.html_comment); if (local_info.text_comment) FREE_AND_CLEAR(local_info.text_comment); if (local_info.archbase) FREE_AND_CLEAR(local_info.archbase); if (local_info.mapbase) FREE_AND_CLEAR(local_info.mapbase); if (local_info.codebase) FREE_AND_CLEAR(local_info.codebase); if (local_info.flags) FREE_AND_CLEAR(local_info.flags); for (ms2 = metaserver2; ms2; ms2 = msnext) { msnext = ms2->next; free_metaserver2(ms2); } metaserver2 = NULL; } #endif /* Now load up the values from the file */ snprintf(buf, sizeof(buf), "%s/metaserver2", settings.confdir); if ((fp = fopen(buf, "r")) == NULL) { LOG(llevError, "Warning: No metaserver2 file found\n"); return 0; } while (fgets(buf, sizeof(buf), fp) != NULL) { if (buf[0] == '#') continue; /* eliminate newline */ if ((cp = strrchr(buf, '\n')) != NULL) *cp = '\0'; /* Skip over empty lines */ if (buf[0] == 0) continue; /* Find variable pairs */ if ((cp = strpbrk(buf, " \t")) != NULL) { while (isspace(*cp)) *cp++ = 0; } else { /* This makes it so we don't have to do NULL checks against * cp everyplace */ cp = dummy; } if (!strcasecmp(buf, "metaserver2_notification")) { if (!strcasecmp(cp, "on") || !strcasecmp(cp, "true")) { local_info.notification = TRUE; } else if (!strcasecmp(cp, "off") || !strcasecmp(cp, "false")) { local_info.notification = FALSE; } else { LOG(llevError, "metaserver2: Unknown value for metaserver2_notification: %s\n", cp); } } else if (!strcasecmp(buf, "metaserver2_server")) { if (*cp != 0) { ms2 = calloc(1, sizeof(MetaServer2)); ms2->hostname = strdup(cp); ms2->next = metaserver2; metaserver2 = ms2; } else { LOG(llevError, "metaserver2: metaserver2_server must have a value.\n"); } } else if (!strcasecmp(buf, "localhostname")) { if (*cp != 0) { local_info.hostname = strdup_local(cp); } else { LOG(llevError, "metaserver2: localhostname must have a value.\n"); } } else if (!strcasecmp(buf, "portnumber")) { if (*cp != 0) { local_info.portnumber = atoi(cp); } else { LOG(llevError, "metaserver2: portnumber must have a value.\n"); } /* For the following values, it is easier to make sure * the pointers are set to something, even if it is a blank * string, so don't care if there is data in the string or not. */ } else if (!strcasecmp(buf, "html_comment")) { local_info.html_comment = strdup(cp); } else if (!strcasecmp(buf, "text_comment")) { local_info.text_comment = strdup(cp); } else if (!strcasecmp(buf, "archbase")) { local_info.archbase = strdup(cp); } else if (!strcasecmp(buf, "mapbase")) { local_info.mapbase = strdup(cp); } else if (!strcasecmp(buf, "codebase")) { local_info.codebase = strdup(cp); } else if (!strcasecmp(buf, "flags")) { local_info.flags = strdup(cp); } else { LOG(llevError, "Unknown value in metaserver2 file: %s\n", buf); } } fclose(fp); /* If no hostname is set, can't do updates */ if (!local_info.hostname) local_info.notification = 0; #ifndef HAVE_CURL_CURL_H if (local_info.notification) { LOG(llevError, "metaserver2 file is set to do notification, but libcurl is not found.\n"); LOG(llevError, "Either fix your compilation, or turn off metaserver2 notification in \n"); LOG(llevError, "the %s/metaserver2 file.\n", settings.confdir); LOG(llevError, "Exiting program.\n"); exit(1); } #endif if (local_info.notification) { int ret; /* As noted above, it is much easier for the rest of the code * to not have to check for null pointers. So we do that * here, and anything that is null, we just allocate * an empty string. */ if (!local_info.html_comment) local_info.html_comment = strdup(""); if (!local_info.text_comment) local_info.text_comment = strdup(""); if (!local_info.archbase) local_info.archbase = strdup(""); if (!local_info.mapbase) local_info.mapbase = strdup(""); if (!local_info.codebase) local_info.codebase = strdup(""); if (!local_info.flags) local_info.flags = strdup(""); ret = pthread_create(&thread_id, NULL, metaserver2_thread, NULL); if (ret) { LOG(llevError, "metaserver2_init: return code from pthread_create() is %d\n", ret); /* Effectively true - we're not going to update the metaserver */ local_info.notification = 0; } } return local_info.notification; } /** * Handles writing of HTTP request data from the metaserver2. * We treat the data as a string. We should really pay attention to the * header data, and do something clever if we get 404 codes * or the like. */ static size_t metaserver2_writer(void *ptr, size_t size, size_t nmemb, void *data) { size_t realsize = size*nmemb; LOG(llevDebug, "metaserver2_writer- Start of text:\n%s\n", (const char*)ptr); LOG(llevDebug, "metaserver2_writer- End of text:\n"); return realsize; } /** * This sends an update to the various metaservers. * It generates the form, and then sends it to the * server */ static void metaserver2_updates(void) { #ifdef HAVE_CURL_CURL_H MetaServer2 *ms2; struct curl_httppost *formpost = NULL; struct curl_httppost *lastptr = NULL; char buf[MAX_BUF]; /* First, fill in the form - note that everything has to be a string, * so we convert as needed with snprintf. * The order of fields here really isn't important. * The string after CURLFORM_COPYNAME is the name of the POST variable * as the */ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "hostname", CURLFORM_COPYCONTENTS, local_info.hostname, CURLFORM_END); snprintf(buf, sizeof(buf), "%d", local_info.portnumber); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "port", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "html_comment", CURLFORM_COPYCONTENTS, local_info.html_comment, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "text_comment", CURLFORM_COPYCONTENTS, local_info.text_comment, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "archbase", CURLFORM_COPYCONTENTS, local_info.archbase, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "mapbase", CURLFORM_COPYCONTENTS, local_info.mapbase, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "codebase", CURLFORM_COPYCONTENTS, local_info.codebase, CURLFORM_END); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "flags", CURLFORM_COPYCONTENTS, local_info.flags, CURLFORM_END); pthread_mutex_lock(&ms2_info_mutex); snprintf(buf, sizeof(buf), "%d", metaserver2_updateinfo.num_players); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "num_players", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); snprintf(buf, sizeof(buf), "%d", metaserver2_updateinfo.in_bytes); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "in_bytes", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); snprintf(buf, sizeof(buf), "%d", metaserver2_updateinfo.out_bytes); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "out_bytes", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); snprintf(buf, sizeof(buf), "%ld", metaserver2_updateinfo.uptime); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "uptime", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); pthread_mutex_unlock(&ms2_info_mutex); /* Following few fields are global variables, * but are really defines, so won't ever change. */ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "version", CURLFORM_COPYCONTENTS, FULL_VERSION, CURLFORM_END); snprintf(buf, sizeof(buf), "%d", VERSION_SC); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "sc_version", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); snprintf(buf, sizeof(buf), "%d", VERSION_CS); curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "cs_version", CURLFORM_COPYCONTENTS, buf, CURLFORM_END); for (ms2 = metaserver2; ms2; ms2 = ms2->next) { CURL *curl; CURLcode res; curl = curl_easy_init(); if (curl) { /* what URL that receives this POST */ curl_easy_setopt(curl, CURLOPT_URL, ms2->hostname); curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); /* Almost always, we will get HTTP data returned * to us - instead of it going to stderr, * we want to take care of it ourselves. */ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, metaserver2_writer); res = curl_easy_perform(curl); if (res) fprintf(stderr, "easy_perform got error %d\n", res); /* always cleanup */ curl_easy_cleanup(curl); } } /* then cleanup the formpost chain */ curl_formfree(formpost); #endif } /** * metserver2_thread is the function called from pthread_create. * it is a trivial function - it just sleeps and calls * the update function. The sleep time here is really * quite arbitrary, but once a minute is probably often * enough. A better approach might be to * do a time() call and see how long the update takes, * and sleep according to that. * * @return * This function should never return/exit. */ void *metaserver2_thread(void *junk) { while (1) { metaserver2_updates(); sleep(60); } return NULL; } crossfire-1.70.0/socket/image.c0000644000014500000120000001340411731300524013216 00000000000000/* * static char *rcsid_init_c = * "$Id: image.c 12355 2010-01-20 07:46:36Z mwedel $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006,2010 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to crossfire-devel@real-time.com */ /** \file * Image related communication * * \date 2006-03-18 * * This file deals with the image related communication to the * client. I've located all the functions in this file - this * localizes it more, and means that we don't need to declare * things like all the structures as globals. */ #include #include #include #include #include #include /** * Client has requested pixmap that it somehow missed getting. * This will be called often if the client is * caching images. */ void send_face_cmd(char *buff, int len, socket_struct *ns) { long tmpnum = atoi(buff); short facenum = tmpnum&0xffff; if (facenum != 0) esrv_send_face(ns, facenum, 1); } /** * Sends a face to a client if they are in pixmap mode * nothing gets sent in bitmap mode. * If nocache is true (nonzero), ignore the cache setting from the client - * this is needed for the askface, in which we really do want to send the * face (and askface is the only place that should be setting it). Otherwise, * we look at the facecache, and if set, send the image name. */ void esrv_send_face(socket_struct *ns, short face_num, int nocache) { SockList sl; int fallback; if (face_num <= 0 || face_num >= nrofpixmaps) { LOG(llevError, "esrv_send_face (%d) out of bounds??\n", face_num); return; } SockList_Init(&sl); fallback = get_face_fallback(ns->faceset, face_num); if (facesets[fallback].faces[face_num].data == NULL) { LOG(llevError, "esrv_send_face: faces[%d].data == NULL\n", face_num); return; } if (ns->facecache && !nocache) { SockList_AddString(&sl, "face2 "); SockList_AddShort(&sl, face_num); SockList_AddChar(&sl, fallback); SockList_AddInt(&sl, facesets[fallback].faces[face_num].checksum); SockList_AddString(&sl, new_faces[face_num].name); Send_With_Handling(ns, &sl); } else { SockList_AddString(&sl, "image2 "); SockList_AddInt(&sl, face_num); SockList_AddChar(&sl, fallback); SockList_AddInt(&sl, facesets[fallback].faces[face_num].datalen); SockList_AddData(&sl, facesets[fallback].faces[face_num].data, facesets[fallback].faces[face_num].datalen); Send_With_Handling(ns, &sl); } ns->faces_sent[face_num] |= NS_FACESENT_FACE; SockList_Term(&sl); } /** * Sends the number of images, checksum of the face file, * and the image_info file information. See the doc/Developers/protocol * if you want further detail. */ void send_image_info(socket_struct *ns, char *params) { SockList sl; int i; SockList_Init(&sl); SockList_AddPrintf(&sl, "replyinfo image_info\n%d\n%d\n", nrofpixmaps-1, bmaps_checksum); for (i = 0; i < MAX_FACE_SETS; i++) { if (facesets[i].prefix) { SockList_AddPrintf(&sl, "%d:%s:%s:%d:%s:%s:%s", i, facesets[i].prefix, facesets[i].fullname, facesets[i].fallback, facesets[i].size, facesets[i].extension, facesets[i].comment); } } Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Sends requested face information. * \param ns socket to send to * \param params contains first and last index of face * * For each image in [start..stop] sends * - checksum * - name */ void send_image_sums(socket_struct *ns, char *params) { int start, stop; short i; char *cp; SockList sl; SockList_Init(&sl); start = atoi(params); for (cp = params; *cp != '\0'; cp++) if (*cp == ' ') break; stop = atoi(cp); if (stop < start || *cp == '\0' || (stop-start) > 1000 || stop >= nrofpixmaps) { SockList_AddPrintf(&sl, "replyinfo image_sums %d %d", start, stop); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } SockList_AddPrintf(&sl, "replyinfo image_sums %d %d ", start, stop); for (i = start; i <= stop; i++) { int faceset; if (SockList_Avail(&sl) < 2+4+1+1+strlen(new_faces[i].name)+1) { LOG(llevError, "send_image_sums: buffer overflow, rejecting range %d..%d\n", start, stop); SockList_Reset(&sl); SockList_AddPrintf(&sl, "replyinfo image_sums %d %d", start, stop); Send_With_Handling(ns, &sl); SockList_Term(&sl); return; } SockList_AddShort(&sl, i); ns->faces_sent[i] |= NS_FACESENT_FACE; faceset = get_face_fallback(ns->faceset, i); SockList_AddInt(&sl, facesets[faceset].faces[i].checksum); SockList_AddChar(&sl, faceset); SockList_AddLen8Data(&sl, new_faces[i].name, strlen(new_faces[i].name)+1); } Send_With_Handling(ns, &sl); SockList_Term(&sl); } crossfire-1.70.0/socket/info.c0000644000014500000120000003503711731300524013075 00000000000000/* * static char *rcsid_sock_info_c = * "$Id: info.c 14057 2010-11-06 11:22:31Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002,2006,2010 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The authors can be reached via e-mail at crossfire-devel@real-time.com */ /** * \file * Basic client output functions. * * \date 2003-12-02 * * This file implements some of the simpler output functions to the * client. Basically, things like sending text strings along */ #include #include #include #include #include /** * Draws an extended message on the client. * ns the socket to send message to * color color informations (used mainly if client does not support message type) * type, * subtype type and subtype of text message * intro Intro message to send with main message if client does not support the message type * message The main message * make this non static, so other files can use this to send messages to client before * player has been added. */ void print_ext_msg(socket_struct *ns, int color, uint8 type, uint8 subtype, const char *message) { SockList sl; SockList_Init(&sl); SockList_AddPrintf(&sl, "drawextinfo %d %hhu %hhu %s", color, type, subtype, message); Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Sends message to player(s). * * @param flags Various flags - mostly color, plus a few specials. If NDI_ALL * or NDI_ALL_DMS is set, pl is ignored and the message is resent to all * players or all DMs individually. * * @param pri Priority. The lower the value, the more important it is. Thus, * 0 gets sent no matter what. Otherwise, the value must be less than the * listening level that the player has set. Unfortunately, there is no clear * guideline on what each level does what. * * @param pl Who to send the message to. pl may be NULL, particularly if * flags has NDI_ALL or NDI_DMS set since it is ignored in that case. If * NDI_ALL and NDI_DMS are not set, when pl is NULL, nobody gets the message. * This is sometimes useful when a function that can be invoked by a player * is automatically called by some other mechanism. For example, if a player * tries to put something in a container, they should get a message that tells * them they cannot put it in an unsuitable container, but when auto-pickup is * at work, all containers are tried, even unsuitable ones, and so messages * should not be sent to the player. * * @param type The type MSG_TYPE for the type of message. * * @param subtype The subtype of the message. * * @param message The message to send. */ void draw_ext_info( int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *message) { if ((flags&NDI_ALL) || (flags&NDI_ALL_DMS)) { player *tmppl; for (tmppl = first_player; tmppl != NULL; tmppl = tmppl->next) { if ((flags&NDI_ALL_DMS) && !QUERY_FLAG(tmppl->ob, FLAG_WIZ)) continue; draw_ext_info((flags&~NDI_ALL&~NDI_ALL_DMS), pri, tmppl->ob, type, subtype, message); } return; } if (!pl || (pl->type == PLAYER && pl->contr == NULL)) return; if (pl->type != PLAYER) return; if (pri >= pl->contr->listening) return; print_ext_msg(&pl->contr->socket, flags&NDI_COLOR_MASK, type, subtype, message); } /** * Sends message to player(s). * * This function is the same as draw_ext_info, but takes varargs format. * Otherwise, the meaning of all the fields is the same. This is perhaps not * the most efficient as we do vsnprintf on both the old and newbuf, but it * simplifies the code greatly since we can just call draw_ext_info. * * @param flags Various flags - mostly color, plus a few specials. * * @param pri Priority. It is a little odd - the lower the value, the more * important it is. Thus, 0 gets sent no matter what. Otherwise, the * value must be less than the listening level that the player has set. * Unfortunately, there is no clear guideline on what each level does what. * * @param pl Can be passed as NULL - in fact, this will be done if NDI_ALL is * set in the flags. * * @param type The type MSG_TYPE for the type of message. * * @param subtype The type MSG_TYPE for the type of message. * * @param format The message to send, with optional format specifiers. */ void draw_ext_info_format(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *format, ...) { char buf[HUGE_BUF]; va_list ap; va_start(ap, format); vsnprintf(buf, HUGE_BUF, format, ap); va_end(ap); draw_ext_info(flags, pri, pl, type, subtype, buf); } /** * Writes to everyone on the specified map */ void ext_info_map(int color, const mapstruct *map, uint8 type, uint8 subtype, const char *str1) { player *pl; for (pl = first_player; pl != NULL; pl = pl->next) if (pl->ob != NULL && pl->ob->map == map) { draw_ext_info(color, 0, pl->ob, type, subtype, str1); } } /** * Writes to everyone on the map *except *op. This is useful for emotions. */ void ext_info_map_except(int color, const mapstruct *map, const object *op, uint8 type, uint8 subtype, const char *str1) { player *pl; for (pl = first_player; pl != NULL; pl = pl->next) if (pl->ob != NULL && pl->ob->map == map && pl->ob != op) { draw_ext_info(color, 0, pl->ob, type, subtype, str1); } } /** * Writes to everyone on the map except op1 and op2 */ void ext_info_map_except2(int color, const mapstruct *map, const object *op1, const object *op2, int type, int subtype, const char *str1) { player *pl; for (pl = first_player; pl != NULL; pl = pl->next) if (pl->ob != NULL && pl->ob->map == map && pl->ob != op1 && pl->ob != op2) { draw_ext_info(color, 0, pl->ob, type, subtype, str1); } } /** * Get player's current range attack in obuf. */ void rangetostring(const object *pl, char *obuf, size_t len) { char name[MAX_BUF]; switch (pl->contr->shoottype) { case range_none: strncpy(obuf, "Range: nothing", len); break; case range_bow: { object *op; for (op = pl->inv; op; op = op->below) if (op->type == BOW && QUERY_FLAG(op, FLAG_APPLIED)) break; if (op == NULL) break; query_base_name(op, 0, name, MAX_BUF); snprintf(obuf, len, "Range: %s (%s)", name, op->race ? op->race : "nothing"); } break; case range_magic: if (settings.casting_time == TRUE) { if (pl->casting_time > -1) { if (pl->casting_time == 0) snprintf(obuf, len, "Range: Holding spell (%s)", pl->spell->name); else snprintf(obuf, len, "Range: Casting spell (%s)", pl->spell->name); } else snprintf(obuf, len, "Range: spell (%s)", pl->contr->ranges[range_magic]->name); } else snprintf(obuf, len, "Range: spell (%s)", pl->contr->ranges[range_magic]->name); break; case range_misc: if (pl->contr->ranges[range_misc]) query_base_name(pl->contr->ranges[range_misc], 0, name, MAX_BUF); else strncpy(name, "none", MAX_BUF); snprintf(obuf, len, "Range: %s", name); break; /* range_scroll is only used for controlling golems. If the * the player does not have a golem, reset some things. */ case range_golem: if (pl->contr->ranges[range_golem] != NULL) snprintf(obuf, len, "Range: golem (%s)", pl->contr->ranges[range_golem]->name); else { pl->contr->shoottype = range_none; strncpy(obuf, "Range: nothing", len); } break; case range_skill: snprintf(obuf, len, "Skill: %s", pl->chosen_skill != NULL ? pl->chosen_skill->name : "none"); break; case range_builder: query_base_name(pl->contr->ranges[range_builder], 0, name, MAX_BUF); snprintf(obuf, len, "Builder: %s", name); break; default: strncpy(obuf, "Range: illegal", len); } } /** * Sets player title. */ void set_title(const object *pl, char *buf, size_t len) { char *p; snprintf(buf, len, "Player: %s ", pl->name); p = strchr(buf, '\0'); player_get_title(pl->contr, p, (buf+len)-p); } /** * Helper for magic map creation. * * Takes a player, the map_mark array and an x and y starting position. * pl is the player. * px, py are offsets from the player. * * This function examines all the adjacant spaces next to px, py. * It updates the map_mark arrow with the color and high bits set * for various code values. */ static void magic_mapping_mark_recursive(object *pl, char *map_mark, int px, int py) { int x, y, dx, dy, mflags, l; sint16 nx, ny; mapstruct *mp; const New_Face *f; object *ob; for (dx = -1; dx <= 1; dx++) { for (dy = -1; dy <= 1; dy++) { x = px+dx; y = py+dy; if (FABS(x) >= MAGIC_MAP_HALF || FABS(y) >= MAGIC_MAP_HALF) continue; mp = pl->map; nx = pl->x+x; ny = pl->y+y; mflags = get_map_flags(pl->map, &mp, nx, ny, &nx, &ny); if (mflags&P_OUT_OF_MAP) continue; if (map_mark[MAGIC_MAP_HALF+x+MAGIC_MAP_SIZE*(MAGIC_MAP_HALF+y)] == 0) { for (l = 0; l < MAP_LAYERS; l++) { ob = GET_MAP_FACE_OBJ(mp, nx, ny, l); if (ob && !ob->invisible && ob->face != blank_face) break; } if (ob) f = ob->face; else f = blank_face; /* Should probably have P_NO_MAGIC here also, but then shops don't * work. */ if (mflags&P_BLOCKSVIEW) map_mark[MAGIC_MAP_HALF+x+MAGIC_MAP_SIZE*(MAGIC_MAP_HALF+y)] = FACE_WALL|(f ? f->magicmap : 0); else { map_mark[MAGIC_MAP_HALF+x+MAGIC_MAP_SIZE*(MAGIC_MAP_HALF+y)] = FACE_FLOOR|(f ? f->magicmap : 0); magic_mapping_mark_recursive(pl, map_mark, x, y); } } } } } /** * Creates magic map for player. * * Note: For improved magic mapping display, the space that blocks * the view is now marked with value 2. Any dependencies of map_mark * being nonzero have been changed to check for 1. Also, since * map_mark is a char value, putting 2 in should cause no problems. * * This function examines the map the player is on, and determines what * is visible. 2 is set for walls or objects that blocks view. 1 * is for open spaces. map_mark should already have been initialized * to zero before this is called. * strength is an initial strength*2 rectangular area that we automatically * see in/penetrate through. */ void magic_mapping_mark(object *pl, char *map_mark, int strength) { int x, y, mflags, l; sint16 nx, ny; mapstruct *mp; const New_Face *f; object *ob; for (x = -strength; x < strength; x++) { for (y = -strength; y < strength; y++) { mp = pl->map; nx = pl->x+x; ny = pl->y+y; mflags = get_map_flags(pl->map, &mp, nx, ny, &nx, &ny); if (mflags&P_OUT_OF_MAP) continue; else { for (l = 0; l < MAP_LAYERS; l++) { ob = GET_MAP_FACE_OBJ(mp, nx, ny, l); if (ob && !ob->invisible && ob->face != blank_face) break; } if (ob) f = ob->face; else f = blank_face; } if (mflags&P_BLOCKSVIEW) map_mark[MAGIC_MAP_HALF+x+MAGIC_MAP_SIZE*(MAGIC_MAP_HALF+y)] = FACE_WALL|(f ? f->magicmap : 0); else { map_mark[MAGIC_MAP_HALF+x+MAGIC_MAP_SIZE*(MAGIC_MAP_HALF+y)] = FACE_FLOOR|(f ? f->magicmap : 0); magic_mapping_mark_recursive(pl, map_mark, x, y); } } } } /** * Creates and sends magic map to player. * * The following function is a lot messier than it really should be, * but there is no real easy solution. * * Mark Wedel */ void draw_magic_map(object *pl) { int x, y; char map_mark[MAGIC_MAP_SIZE*MAGIC_MAP_SIZE]; int xmin, xmax, ymin, ymax; SockList sl; if (pl->type != PLAYER) { LOG(llevError, "Non player object called draw_map.\n"); return; } /* First, we figure out what spaces are 'reachable' by the player */ memset(map_mark, 0, MAGIC_MAP_SIZE*MAGIC_MAP_SIZE); magic_mapping_mark(pl, map_mark, 3); /* We now go through and figure out what spaces have been * marked, and thus figure out rectangular region we send * to the client (eg, if only a 10x10 area is visible, we only * want to send those 100 spaces.) */ xmin = MAGIC_MAP_SIZE; ymin = MAGIC_MAP_SIZE; xmax = 0; ymax = 0; for (x = 0; x < MAGIC_MAP_SIZE; x++) { for (y = 0; y < MAGIC_MAP_SIZE; y++) { if (map_mark[x+MAGIC_MAP_SIZE*y]&~FACE_FLOOR) { xmin = MIN(x, xmin); xmax = MAX(x, xmax); ymin = MIN(y, ymin); ymax = MAX(y, ymax); } } } SockList_Init(&sl); SockList_AddPrintf(&sl, "magicmap %d %d %d %d ", xmin <= xmax ? xmax-xmin+1 : 0, ymin <= ymax ? ymax-ymin+1 : 0, MAGIC_MAP_HALF-xmin, MAGIC_MAP_HALF-ymin); for (y = ymin; y <= ymax; y++) { for (x = xmin; x <= xmax; x++) { SockList_AddChar(&sl, map_mark[x+MAGIC_MAP_SIZE*y]&~FACE_FLOOR); } /* x loop */ } /* y loop */ Send_With_Handling(&pl->contr->socket, &sl); SockList_Term(&sl); } crossfire-1.70.0/socket/item.c0000644000014500000120000007426711731300524013110 00000000000000/* * static char *rcsid_item_c = * "$Id: item.c 14838 2011-07-10 11:00:56Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2002,2006 Mark Wedel & Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to crossfire-devel@real-time.com */ /** * \file * Client/server logic. * * \date 2003-12-02 * * This containes item logic for client/server. It doesn't contain * the actual commands that send the data, but does contain * the logic for what items should be sent. */ #include #include /* LOOK_OBJ */ #include #include #include /** This is the maximum number of bytes we expect any one item to take up */ #define MAXITEMLEN 300 /************************************************************************* * * Functions related to sending object data to the client. * ************************************************************************* */ /** * This is a similar to query_name, but returns flags * to be sended to client. */ static unsigned int query_flags(const object *op) { unsigned int flags = 0; if (QUERY_FLAG(op, FLAG_APPLIED)) { switch (op->type) { case BOW: case WAND: case ROD: flags = a_readied; break; case WEAPON: flags = a_wielded; break; case SKILL: case ARMOUR: case HELMET: case SHIELD: case RING: case BOOTS: case GLOVES: case AMULET: case GIRDLE: case BRACERS: case CLOAK: flags = a_worn; break; case CONTAINER: flags = a_active; break; default: flags = a_applied; break; } } if (op->type == CONTAINER && ((op->env && op->env->container == op) || (!op->env && QUERY_FLAG(op, FLAG_APPLIED)))) flags |= F_OPEN; if (!QUERY_FLAG(op, FLAG_IDENTIFIED) && need_identify(op)) flags |= F_UNIDENTIFIED; if (QUERY_FLAG(op, FLAG_KNOWN_CURSED)) { if (QUERY_FLAG(op, FLAG_DAMNED)) flags |= F_DAMNED; else if (QUERY_FLAG(op, FLAG_CURSED)) flags |= F_CURSED; } if (QUERY_FLAG(op, FLAG_KNOWN_MAGICAL) && !QUERY_FLAG(op, FLAG_IDENTIFIED)) flags |= F_MAGIC; if (QUERY_FLAG(op, FLAG_UNPAID)) flags |= F_UNPAID; if (QUERY_FLAG(op, FLAG_INV_LOCKED)) flags |= F_LOCKED; if (QUERY_FLAG(op, FLAG_KNOWN_BLESSED) && QUERY_FLAG(op, FLAG_BLESSED)) flags |= F_BLESSED; return flags; } /** * Used in the send_look to put object head into SockList * sl for socket ns. Need socket to know if we need to send * animation of face to the client. */ static void add_object_to_socklist(socket_struct *ns, SockList *sl, object *head) { int flags, len, anim_speed; char item_n[MAX_BUF], item_p[MAX_BUF]; flags = query_flags(head); if (QUERY_FLAG(head, FLAG_NO_PICK)) flags |= F_NOPICK; if (!(ns->faces_sent[head->face->number]&NS_FACESENT_FACE)) esrv_send_face(ns, head->face->number, 0); if (QUERY_FLAG(head, FLAG_ANIMATE)) { if (head->animation_id == 0) { LOG(llevError, "Item %s in %s (%d,%d) has FLAG_ANIMATE but animation_id 0\n", head->name, (head->env ? head->env->name : (head->map ? head->map->path : "???")), head->x, head->y); CLEAR_FLAG(head, FLAG_ANIMATE); } else if (!ns->anims_sent[head->animation_id]) esrv_send_animation(ns, head->animation_id); } SockList_AddInt(sl, head->count); SockList_AddInt(sl, flags); SockList_AddInt(sl, QUERY_FLAG(head, FLAG_NO_PICK) ? -1 : WEIGHT(head)); SockList_AddInt(sl, head->face->number); if (!head->custom_name) { query_base_name(head, 0, item_n, 126); item_n[127] = 0; len = strlen(item_n); query_base_name(head, 1, item_p, MAX_BUF); } else { strncpy(item_n, head->custom_name, 127); item_n[127] = 0; len = strlen(item_n); strncpy(item_p, head->custom_name, MAX_BUF); } strncpy(item_n+len+1, item_p, 127); /* This is needed because strncpy may not add a ending \0 if the string is long enough. */ item_n[len+1+127] = 0; len += strlen(item_n+1+len)+1; SockList_AddLen8Data(sl, item_n, len); SockList_AddShort(sl, head->animation_id); anim_speed = 0; if (QUERY_FLAG(head, FLAG_ANIMATE)) { if (head->anim_speed) anim_speed = head->anim_speed; else { if (FABS(head->speed) < 0.001) anim_speed = 255; else if (FABS(head->speed) >= 1.0) anim_speed = 1; else anim_speed = (int)(1.0/FABS(head->speed)); } if (anim_speed > 255) anim_speed = 255; } SockList_AddChar(sl, (char)anim_speed); SockList_AddInt(sl, head->nrof); SockList_AddShort(sl, head->client_type); SET_FLAG(head, FLAG_CLIENT_SENT); } /** * Send the look window. Don't need to do animations here * This sends all the faces to the client, not just updates. This is * because object ordering would otherwise be inconsistent */ void esrv_draw_look(object *pl) { object *tmp, *last; int got_one = 0, start_look = 0, end_look = 0, objects_sent = 0; SockList sl; char buf[MAX_BUF]; if (!pl->contr->socket.update_look) { LOG(llevDebug, "esrv_draw_look called when update_look was not set\n"); return; } else { pl->contr->socket.update_look = 0; } if (QUERY_FLAG(pl, FLAG_REMOVED) || pl->map == NULL || pl->map->in_memory != MAP_IN_MEMORY || out_of_map(pl->map, pl->x, pl->y)) return; if (pl->contr->transport) for (tmp = pl->contr->transport->inv; tmp && tmp->above; tmp = tmp->above) ; else for (tmp = GET_MAP_OB(pl->map, pl->x, pl->y); tmp && tmp->above; tmp = tmp->above) ; SockList_Init(&sl); SockList_AddString(&sl, "delinv 0"); Send_With_Handling(&pl->contr->socket, &sl); SockList_Reset(&sl); SockList_AddPrintf(&sl, "item2 "); SockList_AddInt(&sl, 0); if (!(pl->contr->socket.faces_sent[empty_face->number]&NS_FACESENT_FACE)) esrv_send_face(&pl->contr->socket, empty_face->number, 0); if (pl->contr->socket.look_position) { int overhead = 1+(pl->contr->transport != NULL); int prev_len = pl->contr->socket.num_look_objects-overhead-(pl->contr->socket.look_position > pl->contr->socket.num_look_objects-overhead); SockList_AddInt(&sl, 0x80000000|MAX(0, pl->contr->socket.look_position-prev_len)); SockList_AddInt(&sl, 0); SockList_AddInt(&sl, -1); SockList_AddInt(&sl, empty_face->number); snprintf(buf, sizeof(buf), "Click here to see previous group of items"); SockList_AddLen8Data(&sl, buf, MIN(strlen(buf), 255)); SockList_AddShort(&sl, 0); SockList_AddChar(&sl, 0); SockList_AddInt(&sl, 0); SockList_AddShort(&sl, 0); objects_sent++; got_one++; } if (pl->contr->transport) { add_object_to_socklist(&pl->contr->socket, &sl, pl->contr->transport); objects_sent++; got_one++; } last = NULL; FOR_OB_AND_BELOW_PREPARE(tmp) { object *head; if (tmp == last) { break; } if (QUERY_FLAG(tmp, FLAG_IS_FLOOR) && !last) { last = tmp->below; /* assumes double floor mode */ if (last && QUERY_FLAG(last, FLAG_IS_FLOOR)) last = last->below; } if (LOOK_OBJ(tmp)) { if (start_look++ < pl->contr->socket.look_position) continue; end_look++; objects_sent++; if (objects_sent >= pl->contr->socket.num_look_objects) { /* What we basically do is make a 'fake' object - * when the user applies it, we notice the special * tag the object has, and act accordingly. */ SockList_AddInt(&sl, 0x80000000|(pl->contr->socket.look_position+end_look-1)); SockList_AddInt(&sl, 0); SockList_AddInt(&sl, -1); SockList_AddInt(&sl, empty_face->number); snprintf(buf, sizeof(buf), "Click here to see next group of items"); SockList_AddLen8Data(&sl, buf, MIN(strlen(buf), 255)); SockList_AddShort(&sl, 0); SockList_AddChar(&sl, 0); SockList_AddInt(&sl, 0); SockList_AddShort(&sl, 0); break; } head = HEAD(tmp); add_object_to_socklist(&pl->contr->socket, &sl, head); got_one++; if (SockList_Avail(&sl) < MAXITEMLEN) { Send_With_Handling(&pl->contr->socket, &sl); SockList_Reset(&sl); SockList_AddPrintf(&sl, "item2 "); SockList_AddInt(&sl, 0); got_one = 0; } } /* If LOOK_OBJ() */ } FOR_OB_AND_BELOW_FINISH(); if (got_one) Send_With_Handling(&pl->contr->socket, &sl); SockList_Term(&sl); } /** * Sends inventory of a container. If pl == op, then the whole contents are sent, * else the contents is sent with "next group" and "prev group" arrows if required. * @param pl who to send to. * @param op what item's contents to send. */ void esrv_send_inventory(object *pl, object *op) { int got_one = 0, start_look = 0, end_look = 0, objects_sent = 0; SockList sl; char buf[MAX_BUF]; int prev_len = pl->contr->socket.num_look_objects - 2 - (((pl->contr->socket.container_position > pl->contr->socket.num_look_objects - 1)) ? 1 : 0); SockList_Init(&sl); SockList_AddPrintf(&sl, "delinv %u", op->count); Send_With_Handling(&pl->contr->socket, &sl); SockList_Reset(&sl); SockList_AddString(&sl, "item2 "); SockList_AddInt(&sl, op->count); objects_sent++; if (pl != op && pl->contr->socket.container_position) { SockList_AddInt(&sl, 0x80000000|MAX(0, pl->contr->socket.container_position-prev_len)); SockList_AddInt(&sl, 0); SockList_AddInt(&sl, -1); SockList_AddInt(&sl, empty_face->number); snprintf(buf, sizeof(buf), "Click here to see previous group of items"); SockList_AddLen8Data(&sl, buf, MIN(strlen(buf), 255)); SockList_AddShort(&sl, 0); SockList_AddChar(&sl, 0); SockList_AddInt(&sl, 0); SockList_AddShort(&sl, 0); objects_sent++; got_one++; } FOR_INV_PREPARE(op, tmp) { object *head; head = HEAD(tmp); if (LOOK_OBJ(head)) { if (start_look++ < pl->contr->socket.container_position && pl != op) continue; end_look++; objects_sent++; if (pl != op && objects_sent >= pl->contr->socket.num_look_objects) { /* What we basically do is make a 'fake' object - * when the user applies it, we notice the special * tag the object has, and act accordingly. */ SockList_AddInt(&sl, 0x80000000|(pl->contr->socket.container_position + end_look - 1)); SockList_AddInt(&sl, 0); SockList_AddInt(&sl, -1); SockList_AddInt(&sl, empty_face->number); snprintf(buf, sizeof(buf), "Click here to see next group of items"); SockList_AddLen8Data(&sl, buf, MIN(strlen(buf), 255)); SockList_AddShort(&sl, 0); SockList_AddChar(&sl, 0); SockList_AddInt(&sl, 0); SockList_AddShort(&sl, 0); break; } add_object_to_socklist(&pl->contr->socket, &sl, head); got_one++; /* It is possible for players to accumulate a huge amount of * items (especially with some of the bags out there) to * overflow the buffer. IF so, send multiple item commands. */ if (SockList_Avail(&sl) < MAXITEMLEN) { Send_With_Handling(&pl->contr->socket, &sl); SockList_Reset(&sl); SockList_AddString(&sl, "item2 "); SockList_AddInt(&sl, op->count); got_one = 0; } } /* If LOOK_OBJ() */ } FOR_INV_FINISH(); if (got_one) { /* special case: only one item, the "prev group" arrow */ if (pl != op && pl->contr->socket.container_position) { if (got_one > 1) Send_With_Handling(&pl->contr->socket, &sl); else { /* view shifted, get to previous page and resend */ pl->contr->socket.container_position = MAX(0, pl->contr->socket.container_position - prev_len); esrv_send_inventory(pl, op); } } else Send_With_Handling(&pl->contr->socket, &sl); } SockList_Term(&sl); } /** * Updates object *op for player *pl. * * flags is a list of values to update * to the client (as defined in newclient.h - might as well use the * same value both places. */ void esrv_update_item(int flags, object *pl, object *op) { SockList sl; if (!pl->contr) return; /* If we have a request to send the player item, skip a few checks. */ if (op != pl) { if (!LOOK_OBJ(op)) return; /* we remove the check for op->env, because in theory, the object * is hopefully in the same place, so the client should preserve * order. */ } if (!QUERY_FLAG(op, FLAG_CLIENT_SENT)) { /* FLAG_CLIENT_SENT is debug only. We are using it to see where * this is happening - we can set a breakpoint here in the debugger * and track back the call. */ LOG(llevDebug, "We have not sent item %s (%d)\n", op->name, op->count); } SockList_Init(&sl); SockList_AddString(&sl, "upditem "); SockList_AddChar(&sl, (char)flags); op = HEAD(op); SockList_AddInt(&sl, op->count); if (flags&UPD_LOCATION) SockList_AddInt(&sl, op->env ? op->env->count : 0); if (flags&UPD_FLAGS) SockList_AddInt(&sl, query_flags(op)); if (flags&UPD_WEIGHT) { sint32 weight = WEIGHT(op); /* TRANSPORTS are odd - they sort of look like containers, * yet can't be picked up. So we don't to send the weight, * as it is odd that you see weight sometimes and not other * (the draw_look won't send it for example. */ SockList_AddInt(&sl, QUERY_FLAG(op, FLAG_NO_PICK) ? -1 : weight); if (pl == op) { op->contr->last_weight = weight; } } if (flags&UPD_FACE) { if (!(pl->contr->socket.faces_sent[op->face->number]&NS_FACESENT_FACE)) esrv_send_face(&pl->contr->socket, op->face->number, 0); SockList_AddInt(&sl, op->face->number); } if (flags&UPD_NAME) { int len; char item_p[MAX_BUF]; char item_n[MAX_BUF]; if (!op->custom_name) { query_base_name(op, 0, item_n, MAX_BUF); len = strlen(item_n); query_base_name(op, 1, item_p, MAX_BUF); } else { strncpy(item_n, op->custom_name, MAX_BUF-1); item_n[MAX_BUF-1] = 0; len = strlen(item_n); strncpy(item_p, op->custom_name, MAX_BUF-1); item_p[MAX_BUF-1] = 0; } strncpy(item_n+len+1, item_p, 127); item_n[254] = 0; len += strlen(item_n+1+len)+1; SockList_AddLen8Data(&sl, item_n, len); } if (flags&UPD_ANIM) SockList_AddShort(&sl, op->animation_id); if (flags&UPD_ANIMSPEED) { int anim_speed = 0; if (QUERY_FLAG(op, FLAG_ANIMATE)) { if (op->anim_speed) anim_speed = op->anim_speed; else { if (FABS(op->speed) < 0.001) anim_speed = 255; else if (FABS(op->speed) >= 1.0) anim_speed = 1; else anim_speed = (int)(1.0/FABS(op->speed)); } if (anim_speed > 255) anim_speed = 255; } SockList_AddChar(&sl, (char)anim_speed); } if (flags&UPD_NROF) SockList_AddInt(&sl, op->nrof); Send_With_Handling(&pl->contr->socket, &sl); SockList_Term(&sl); } /** * Sends item's info to player. */ void esrv_send_item(object *pl, object*op) { SockList sl; /* If this is not the player object, do some more checks */ if (op != pl) { /* We only send 'visibile' objects to the client */ if (!LOOK_OBJ(op)) return; /* if the item is on the ground, mark that the look needs to * be updated. */ if (!op->env) { pl->contr->socket.update_look = 1; return; } } SockList_Init(&sl); SockList_AddString(&sl, "item2 "); op = HEAD(op); SockList_AddInt(&sl, op->env ? op->env->count : 0); add_object_to_socklist(&pl->contr->socket, &sl, op); Send_With_Handling(&pl->contr->socket, &sl); SET_FLAG(op, FLAG_CLIENT_SENT); SockList_Term(&sl); /* if the object is in an opened container, then it may shift the contents, * so resend everything */ if (pl->contr != NULL && pl->container != NULL && op->env == pl->container) pl->contr->socket.update_inventory = 1; } /** * Tells the client to delete an item. Uses the item * command with a -1 location. */ void esrv_del_item(player *pl, object *ob) { SockList sl; SockList_Init(&sl); SockList_AddString(&sl, "delitem "); SockList_AddInt(&sl, ob->count); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); /* if the object is in an opened container, then it may shift the contents, * so resend everything */ if (pl->ob->container != NULL && ob->env == pl->ob->container) pl->socket.update_inventory = 1; } /************************************************************************** * * Client has requested us to do something with an object. * ************************************************************************** */ /** * Takes a player and object count (tag) and returns the actual object * pointer, or null if it can't be found. */ static object *esrv_get_ob_from_count(object *pl, tag_t count) { if (pl->count == count) return pl; FOR_INV_PREPARE(pl, op) if (op->count == count) return op; else if (op->type == CONTAINER && pl->container == op) { FOR_INV_PREPARE(op, tmp) if (tmp->count == count) return tmp; FOR_INV_FINISH(); } FOR_INV_FINISH(); FOR_MAP_PREPARE(pl->map, pl->x, pl->y, op) if (HEAD(op)->count == count) return op; else if (op->type == CONTAINER && pl->container == op) { FOR_INV_PREPARE(op, tmp) if (tmp->count == count) return tmp; FOR_INV_FINISH(); } FOR_MAP_FINISH(); if (pl->contr->transport) { FOR_INV_PREPARE(pl->contr->transport, tmp) if (tmp->count == count) return tmp; FOR_INV_FINISH(); } return NULL; } /** Client wants to examine some object. So lets do so. */ void examine_cmd(char *buf, int len, player *pl) { long tag; object *op; if (len <= 0 || !buf) { LOG(llevDebug, "Player '%s' sent bogus examine_cmd information\n", pl->ob->name); return; } tag = atoi(buf); op = esrv_get_ob_from_count(pl->ob, tag); if (!op) { LOG(llevDebug, "Player '%s' tried to examine the unknown object (%ld)\n", pl->ob->name, tag); return; } examine(pl->ob, op); } /** Client wants to apply some object. Lets do so. */ void apply_cmd(char *buf, int len, player *pl) { uint32 tag; object *op; if (!buf || len <= 0) { LOG(llevDebug, "Player '%s' sent bogus apply_cmd information\n", pl->ob->name); return; } tag = atoi(buf); op = esrv_get_ob_from_count(pl->ob, tag); /* sort of a hack, but if the player saves and the player then * manually applies a savebed (or otherwise tries to do stuff), * we run into trouble. */ if (QUERY_FLAG(pl->ob, FLAG_REMOVED)) return; /* If the high bit is set, player applied a pseudo object. */ if (tag&0x80000000) { if (pl->ob->container != NULL) { pl->socket.container_position = tag&0x7fffffff; esrv_send_inventory(pl->ob, pl->ob->container); pl->socket.update_inventory = 0; } else { pl->socket.look_position = tag&0x7fffffff; pl->socket.update_look = 1; } return; } if (!op) { LOG(llevDebug, "Player '%s' tried to apply the unknown object (%d)\n", pl->ob->name, tag); return; } apply_by_living(pl->ob, op, 0, 0); } /** Client wants to apply some object. Lets do so. */ void lock_item_cmd(uint8 *data, int len, player *pl) { int flag, tag; object *op; object *tmp; if (len != 5) { LOG(llevDebug, "Player '%s' sent bogus lock_item_cmd information\n", pl->ob->name); return; } flag = data[0]; tag = GetInt_String(data+1); op = esrv_get_ob_from_count(pl->ob, tag); if (!op) { draw_ext_info(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, "Could not find object to lock/unlock"); return; } if (op->map) { draw_ext_info(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, "Can't lock/unlock an item on the ground"); return; } if (op->env != pl->ob) { draw_ext_info(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, "Can't lock/unlock an item not directly in your inventory"); return; } if (!flag) CLEAR_FLAG(op, FLAG_INV_LOCKED); else SET_FLAG(op, FLAG_INV_LOCKED); tmp = object_merge(op, NULL); if (tmp == NULL) { /* object was not merged - if it was, object_merge() sent updates for us. */ esrv_update_item(UPD_FLAGS, pl->ob, op); } } /** * Client wants to mark some object. Lets do so. * * @param data * object tag (4 chars). * @param len * data size. * @param pl * player. */ void mark_item_cmd(uint8 *data, int len, player *pl) { int tag; object *op; char name[MAX_BUF]; if (len != 4) { LOG(llevDebug, "Player '%s' sent bogus mark_item_cmd information\n", pl->ob->name); return; } tag = GetInt_String(data); op = esrv_get_ob_from_count(pl->ob, tag); if (!op) { draw_ext_info(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_ERROR, "Could not find object to mark"); return; } pl->mark = op; pl->mark_count = op->count; query_name(op, name, MAX_BUF); draw_ext_info_format(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, "Marked item %s", name); } /** * Prints items on the specified square. * * [ removed EARTHWALL check and added check for containers inventory. * Tero.Haatanen@lut.fi ] */ void look_at(object *op, int dx, int dy) { object *tmp; int flag = 0; sint16 x, y; mapstruct *m; char name[MAX_BUF]; if (out_of_map(op->map, op->x+dx, op->y+dy)) return; x = op->x+dx; y = op->y+dy; m = get_map_from_coord(op->map, &x, &y); if (!m) return; for (tmp = GET_MAP_OB(m, x, y); tmp != NULL && tmp->above != NULL; tmp = tmp->above) ; FOR_OB_AND_BELOW_PREPARE(tmp) { if (tmp->invisible && !QUERY_FLAG(op, FLAG_WIZ)) continue; if (!flag) { if (dx || dy) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, "There you see:"); else { draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, "You see:"); } flag = 1; } query_name(tmp, name, MAX_BUF); if (QUERY_FLAG(op, FLAG_WIZ)) draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_EXAMINE, "- %s (%d).", name, tmp->count); else draw_ext_info_format(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_EXAMINE, "- %s.", name); if ((HEAD(tmp)->inv != NULL && (tmp->type != CONTAINER && tmp->type != FLESH)) || QUERY_FLAG(op, FLAG_WIZ)) inventory(op, HEAD(tmp)); /* don't continue under the floor */ if (QUERY_FLAG(tmp, FLAG_IS_FLOOR) && !QUERY_FLAG(op, FLAG_WIZ)) break; } FOR_OB_AND_BELOW_FINISH(); if (!flag) { if (dx || dy) draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, "You see nothing there."); else draw_ext_info(NDI_UNIQUE, 0, op, MSG_TYPE_COMMAND, MSG_TYPE_COMMAND_SUCCESS, "You see nothing."); } } /** Client wants to look at some object. Lets do so. */ void look_at_cmd(char *buf, int len, player *pl) { int dx, dy; char *cp; dx = atoi(buf); if (!(cp = strchr(buf, ' '))) { return; } dy = atoi(cp); if (FABS(dx) > MAP_CLIENT_X/2 || FABS(dy) > MAP_CLIENT_Y/2) return; if (pl->blocked_los[dx+(pl->socket.mapx/2)][dy+(pl->socket.mapy/2)]) return; look_at(pl->ob, dx, dy); } /** Move an object to a new location */ void esrv_move_object(object *pl, tag_t to, tag_t tag, long nrof) { object *op, *env; op = esrv_get_ob_from_count(pl, tag); if (!op) { LOG(llevDebug, "Player '%s' tried to move an unknown object (%lu)\n", pl->name, (unsigned long)tag); return; } /* If on a transport, you don't drop to the ground - you drop to the * transport. */ if (!to && !pl->contr->transport) { /* drop it to the ground */ /* LOG(llevDebug, "Drop it on the ground.\n");*/ if (op->map && !op->env) { /* LOG(llevDebug, "Dropping object to ground that is already on ground\n");*/ return; } /* If it is an active container, then we should drop all objects * in the container and not the container itself. */ if (op->inv && QUERY_FLAG(op, FLAG_APPLIED)) { FOR_INV_PREPARE(op, current) drop_object(pl, current, 0); FOR_INV_FINISH(); esrv_update_item(UPD_WEIGHT, pl, op); } else { drop_object(pl, op, nrof); } return; } else if (to == pl->count) { /* pick it up to the inventory */ /* return if player has already picked it up */ if (op->env == pl) return; pl->contr->count = nrof; pick_up(pl, op); return; } /* If not dropped or picked up, we are putting it into a sack */ if (pl->contr->transport) { if (object_can_pick(pl, op) && transport_can_hold(pl->contr->transport, op, nrof)) { put_object_in_sack(pl, pl->contr->transport, op, nrof); } } else { env = esrv_get_ob_from_count(pl, to); if (!env) { LOG(llevDebug, "Player '%s' tried to move object to the unknown location (%d)\n", pl->name, to); return; } /* put_object_in_sack presumes that necessary sanity checking * has already been done (eg, it can be picked up and fits in * in a sack, so check for those things. We should also check * an make sure env is in fact a container for that matter. */ if (env->type == CONTAINER && object_can_pick(pl, op) && sack_can_hold(pl, env, op, nrof)) { put_object_in_sack(pl, env, op, nrof); } } } void inscribe_scroll_cmd(char *buf, int len, player *pl) { object *scroll, *spell, *marked, *inscription, *currentspell; tag_t tscroll, tspell, tmarked; char type; if (len < 1) { LOG(llevDebug, "Player %s sent an invalid inscribe command.\n", pl->ob->name); return; } type = buf[0]; inscription = find_skill_by_name(pl->ob, "inscription"); if (!inscription) { draw_ext_info(NDI_UNIQUE, 0, pl->ob, MSG_TYPE_SKILL, MSG_TYPE_SKILL_FAILURE, "You don't know how to write!"); return; } if (type == 0) { if (len != 9) { LOG(llevDebug, "Player %s sent an invalid inscribe command.\n", pl->ob->name); return; } tscroll = GetInt_String((uint8 *)buf+1); tspell = GetInt_String((uint8 *)buf+5); scroll = esrv_get_ob_from_count(pl->ob, tscroll); if (!scroll) { LOG(llevDebug, "Player %s sent an invalid scroll for inscribe command.\n", pl->ob->name); return; } spell = esrv_get_ob_from_count(pl->ob, tspell); if (!spell) { LOG(llevDebug, "Player %s sent an invalid spell for inscribe command.\n", pl->ob->name); return; } tmarked = pl->mark_count; marked = pl->mark; currentspell = pl->ranges[range_magic]; pl->mark_count = tscroll; pl->mark = scroll; pl->ranges[range_magic] = spell; write_on_item(pl->ob, "", inscription); pl->mark_count = tmarked; pl->mark = marked; pl->ranges[range_magic] = currentspell; } else { } } crossfire-1.70.0/socket/sounds.c0000644000014500000120000000655211731300524013455 00000000000000/* * static char *rcsid_sound_c = * "$Id: sounds.c 11218 2009-01-22 20:03:52Z akirschbaum $"; */ /* Send bug reports to Raphael Quinet (quinet@montefiore.ulg.ac.be) */ /** * \file * Sound-related functions. * * \date 2003-12-02 */ #include #include #include /** * Maximum distance a player may hear a sound from. * This is only used for new client/server sound. If the sound source * on the map is farther away than this, we don't sent it to the client. */ #define MAX_SOUND_DISTANCE 10 /** * Plays a sound for specified player only. * * @param pl * player to play sound to. * @param sound_type * sound type, see @ref Soundtypes "the sound types". * @param emitter * object emitting a sound. * @param dir * direction the sound is moving into. * @param action * sound name to play. */ void play_sound_player_only(player *pl, sint8 sound_type, object *emitter, int dir, const char *action) { SockList sl; int volume = 50; sstring name; object *source; if (pl->socket.sound&SND_MUTE || !(pl->socket.sound&SND_EFFECTS)) return; if (pl->socket.sounds_this_tick >= MAX_SOUNDS_TICK) return; if (!emitter->map && !(emitter->env && emitter->env->map)) return; source = emitter->map ? emitter : emitter->env; if ((RANDOM()%100) >= emitter->sound_chance) return; pl->socket.sounds_this_tick = 0; name = emitter->type == PLAYER ? emitter->race : emitter->name; if (!source) source = emitter; SockList_Init(&sl); SockList_AddString(&sl, "sound2 "); SockList_AddChar(&sl, (sint8)(source->x-pl->ob->x)); SockList_AddChar(&sl, (sint8)(source->y-pl->ob->y)); SockList_AddChar(&sl, dir); SockList_AddChar(&sl, volume); SockList_AddChar(&sl, sound_type); SockList_AddLen8Data(&sl, action, strlen(action)); SockList_AddLen8Data(&sl, name, strlen(name)); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } #define POW2(x) ((x)*(x)) /** * Plays a sound on a map. * @param sound_type * sound type, see @ref Soundtypes "the sound types". * @param emitter * object emitting the sound. Must be on a map. * @param dir * direction the sound is moving. * @param action * sound name to play. */ void play_sound_map(sint8 sound_type, object *emitter, int dir, const char *action) { player *pl; object *source; if ((RANDOM()%100) >= emitter->sound_chance) return; if (!emitter->map && !(emitter->env && emitter->env->map)) return; source = emitter->map ? emitter : emitter->env; for (pl = first_player; pl; pl = pl->next) { if (pl->ob->map == emitter->map) { int distance = isqrt(POW2(pl->ob->x-source->x)+POW2(pl->ob->y-source->y)); if (distance <= MAX_SOUND_DISTANCE) { play_sound_player_only(pl, sound_type, emitter, dir, action); } } } } /** * Sends background music to client. * * @param pl * player * @param music * background music name. Can be NULL. */ void send_background_music(player *pl, const char *music) { SockList sl; if (pl->socket.sound&SND_MUTE || !(pl->socket.sound&SND_MUSIC)) return; SockList_Init(&sl); SockList_AddString(&sl, "music "); SockList_AddString(&sl, music == NULL ? "NONE" : music); Send_With_Handling(&pl->socket, &sl); SockList_Term(&sl); } crossfire-1.70.0/socket/Makefile.am0000644000014500000120000000257111731300524014027 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to crossfire-devel@real-time.com noinst_LIBRARIES = libsocket.a libsocket_a_SOURCES = \ image.c \ info.c \ init.c \ item.c\ loop.c \ lowlevel.c\ metaserver.c\ request.c\ requestinfo.c\ sounds.c EXTRA_DIST = README AM_CPPFLAGS = -I$(top_srcdir)/include proto: cproto -D__CEXTRACT__ $(CPPFLAGS) $(AM_CPPFLAGS) $(libsocket_a_SOURCES) > ../include/sockproto.h chmod 644 ../include/sockproto.h crossfire-1.70.0/socket/loop.c0000644000014500000120000005470711731300524013120 00000000000000 /* * static char *rcsid_loop_c = * "$Id: loop.c 16608 2012-01-14 18:09:49Z ryo_saeba $"; */ /* CrossFire, A Multiplayer game for X-windows Copyright (C) 2006,2010 Mark Wedel & The Crossfire Development Team Copyright (C) 1992 Frank Tore Johansen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author can be reached via e-mail to crossfire-devel@real-time.com */ /** * \file * Main client/server loops. * * \date 2003-12-02 * * Mainly deals with initialization and higher level socket * maintenance (checking for lost connections and if data has arrived.) * The reading of data is handled in lowlevel.c */ #include #ifndef __CEXTRACT__ #include #include #endif #ifndef WIN32 /* ---win32 exclude unix headers */ #include #include #include #include #endif /* end win32 */ #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #include #include /***************************************************************************** * Start of command dispatch area. * The commands here are protocol commands. ****************************************************************************/ /* Either keep this near the start or end of the file so it is * at least reasonablye easy to find. * There are really 2 commands - those which are sent/received * before player joins, and those happen after the player has joined. * As such, we have function types that might be called, so * we end up having 2 tables. */ /** Prototype for functions the client sends without player interaction. */ typedef void (*func_uint8_int_ns)(char *, int, socket_struct *); /** Definition of a function the client sends without player interaction. */ struct client_cmd_mapping { const char *cmdname; /**< Command name. */ const func_uint8_int_ns cmdproc; /**< Function to call. */ }; /** Prototype for functions used to handle player actions. */ typedef void (*func_uint8_int_pl)(char *, int, player *); /** Definition of a function called in reaction to player's action. */ struct player_cmd_mapping { const char *cmdname; /**< Command name. */ const func_uint8_int_pl cmdproc; /**< Function to call. */ const uint8 flag; /**< If set, the player must be in the ST_PLAYING state for this command to be available. */ }; /** * Dispatch tables for the server. * * CmdMapping is the dispatch table for the server, used in handle_client, * which gets called when the client has input. All commands called here * use the same parameter form (char *data, int len, int clientnum. * We do implicit casts, because the data that is being passed is * unsigned (pretty much needs to be for binary data), however, most * of these treat it only as strings, so it makes things easier * to cast it here instead of a bunch of times in the function itself. * flag is 1 if the player must be in the playing state to issue the * command, 0 if they can issue it at any time. */ /** Commands sent by the client reacting to player's actions. */ static const struct player_cmd_mapping player_commands[] = { { "examine", examine_cmd, 1 }, { "apply", apply_cmd, 1 }, { "move", move_cmd, 1 }, { "reply", reply_cmd, 0 }, { "ncom", (func_uint8_int_pl)new_player_cmd, 1 }, { "lookat", look_at_cmd, 1 }, { "lock", (func_uint8_int_pl)lock_item_cmd, 1 }, { "mark", (func_uint8_int_pl)mark_item_cmd, 1 }, { "mapredraw", map_redraw_cmd, 0 }, /* Added: phil */ { "inscribe", inscribe_scroll_cmd, 0 }, { NULL, NULL, 0 } /* terminator */ }; /** Commands sent directly by client, when connecting or when needed. */ static const struct client_cmd_mapping client_commands[] = { { "addme", add_me_cmd }, { "askface", send_face_cmd }, /* Added: phil */ { "requestinfo", request_info_cmd }, { "setup", set_up_cmd }, { "version", version_cmd }, { "asksmooth", ask_smooth_cmd }, /*Added: tchize (smoothing technologies)*/ { "accountlogin", account_login_cmd }, { "accountnew", account_new_cmd }, { "accountaddplayer", account_add_player_cmd }, { "accountplay", account_play_cmd }, { "accountpw", account_password }, { "createplayer", create_player_cmd }, { NULL, NULL } /* terminator (I, II & III)*/ }; /** * request_info_cmd is sort of a meta command. There is some specific * request of information, but we call other functions to provide * that information. */ void request_info_cmd(char *buf, int len, socket_struct *ns) { char *params = NULL, *cp; /* No match */ SockList sl; /* Set up replyinfo before we modify any of the buffers - this is used * if we don't find a match. */ SockList_Init(&sl); SockList_AddString(&sl, "replyinfo "); SockList_AddString(&sl, buf); /* find the first space, make it null, and update the * params pointer. */ for (cp = buf; *cp != '\0'; cp++) if (*cp == ' ') { *cp = '\0'; params = cp+1; break; } if (!strcmp(buf, "image_info")) send_image_info(ns, params); else if (!strcmp(buf, "image_sums")) send_image_sums(ns, params); else if (!strcmp(buf, "skill_info")) send_skill_info(ns, params); else if (!strcmp(buf, "spell_paths")) send_spell_paths(ns, params); else if (!strcmp(buf, "exp_table")) send_exp_table(ns, params); else if (!strcmp(buf, "race_list")) send_race_list(ns, params); else if (!strcmp(buf, "race_info")) send_race_info(ns, params); else if (!strcmp(buf, "class_list")) send_class_list(ns, params); else if (!strcmp(buf, "class_info")) send_class_info(ns, params); else if (!strcmp(buf, "rules")) send_file(ns, "rules"); else if (!strcmp(buf, "motd")) send_file(ns, "motd"); else if (!strcmp(buf, "news")) send_file(ns, "news"); else if (!strcmp(buf,"newcharinfo")) send_new_char_info(ns); else if (!strcmp(buf,"startingmap")) send_map_info(ns); else if (!strcmp(buf, "knowledge_info")) knowledge_send_info(ns); else Send_With_Handling(ns, &sl); SockList_Term(&sl); } /** * Handle client commands. * * We only get here once there is input, and only do basic connection checking. * * @param ns * socket sending the command. Will be set to Ns_Dead if read error. * @param pl * player associated to the socket. If NULL, only commands in client_cmd_mapping will be checked. */ void handle_client(socket_struct *ns, player *pl) { int len, i; unsigned char *data; /* Loop through this - maybe we have several complete packets here. */ while (1) { /* If it is a player, and they don't have any speed left, we * return, and will read in the data when they do have time. */ if (pl && pl->state == ST_PLAYING && pl->ob != NULL && pl->ob->speed_left < 0) { return; } i = SockList_ReadPacket(ns->fd, &ns->inbuf, sizeof(ns->inbuf.buf)-1); if (i < 0) { #ifdef ESRV_DEBUG LOG(llevDebug, "handle_client: Read error on connection player %s\n", (pl ? pl->ob->name : "None")); #endif /* Caller will take care of cleaning this up */ ns->status = Ns_Dead; return; } /* Still dont have a full packet */ if (i == 0) return; SockList_NullTerminate(&ns->inbuf); /* Terminate buffer - useful for string data */ /* First, break out beginning word. There are at least * a few commands that do not have any paremeters. If * we get such a command, don't worry about trying * to break it up. */ data = (unsigned char *)strchr((char *)ns->inbuf.buf+2, ' '); if (data) { *data = '\0'; data++; len = ns->inbuf.len-(data-ns->inbuf.buf); } else len = 0; for (i = 0; client_commands[i].cmdname != NULL; i++) { if (strcmp((char *)ns->inbuf.buf+2, client_commands[i].cmdname) == 0) { client_commands[i].cmdproc((char *)data, len, ns); SockList_ResetRead(&ns->inbuf); return; } } /* Player must be in the playing state or the flag on the * the command must be zero for the user to use the command - * otherwise, a player cam save, be in the play_again state, and * the map they were on getsswapped out, yet things that try to look * at the map causes a crash. If the command is valid, but * one they can't use, we still swallow it up. */ if (pl) for (i = 0; player_commands[i].cmdname != NULL; i++) { if (strcmp((char *)ns->inbuf.buf+2, player_commands[i].cmdname) == 0) { if (pl->state == ST_PLAYING || player_commands[i].flag == 0) player_commands[i].cmdproc((char *)data, len, pl); SockList_ResetRead(&ns->inbuf); return; } } /* If we get here, we didn't find a valid command. Logging * this might be questionable, because a broken client/malicious * user could certainly send a whole bunch of invalid commands. */ LOG(llevDebug, "Bad command from client (%s)\n", ns->inbuf.buf+2); SockList_ResetRead(&ns->inbuf); } } /***************************************************************************** * * Low level socket looping - select calls and watchdog udp packet * sending. * ******************************************************************************/ #ifdef WATCHDOG /** * Tell watchdog that we are still alive * * I put the function here since we should hopefully already be getting * all the needed include files for socket support */ void watchdog(void) { static int fd = -1; static struct sockaddr_in insock; if (fd == -1) { struct protoent *protoent; if ((protoent = getprotobyname("udp")) == NULL || (fd = socket(PF_INET, SOCK_DGRAM, protoent->p_proto)) == -1) { return; } insock.sin_family = AF_INET; insock.sin_port = htons((unsigned short)13325); insock.sin_addr.s_addr = inet_addr("127.0.0.1"); } sendto(fd, (void *)&fd, 1, 0, (struct sockaddr *)&insock, sizeof(insock)); } #endif extern unsigned long todtick; /** Waits for new connection */ static void block_until_new_connection(void) { struct timeval Timeout; fd_set readfs; int cycles; int i; LOG(llevInfo, "Waiting for connections...\n"); cycles = 1; do { /* Every minutes is a bit often for updates - especially if nothing is going * on. This slows it down to every 6 minutes. */ cycles++; if (cycles%2 == 0) tick_the_clock(); FD_ZERO(&readfs); for (i = 0; i < socket_info.allocated_sockets && init_sockets[i].listen; i++) if (init_sockets[i].status == Ns_Add) FD_SET((uint32)init_sockets[i].fd, &readfs); /* If fastclock is set, we need to seriously slow down the updates * to the metaserver as well as watchdog. Do same for flush_old_maps() - * that is time sensitive, so there is no good reason to call it 2000 times * a second. */ if (settings.fastclock > 0) { #ifdef WATCHDOG if (cycles%120000 == 0) { watchdog(); flush_old_maps(); } #endif if (cycles == 720000) { metaserver_update(); cycles = 1; } Timeout.tv_sec = 0; Timeout.tv_usec = 50; } else { Timeout.tv_sec = 60; Timeout.tv_usec = 0; if (cycles == 7) { metaserver_update(); cycles = 1; } flush_old_maps(); } } while (select(socket_info.max_filedescriptor, &readfs, NULL, NULL, &Timeout) == 0); reset_sleep(); /* Or the game would go too fast */ } /** * Checks if file descriptor is valid. * * @param fd * file descriptor to check. * @return * 1 if fd is valid, 0 else. */ static int is_fd_valid(int fd) { #ifndef WIN32 return fcntl(fd, F_GETFL) != -1 || errno != EBADF; #else return 1; #endif } static void new_connection(int listen_fd) { int newsocknum = -1, j; #ifdef HAVE_GETNAMEINFO struct sockaddr_storage addr; #else struct sockaddr_in addr; #endif socklen_t addrlen = sizeof(addr); char err[MAX_BUF]; #ifdef ESRV_DEBUG LOG(llevDebug, "do_server: New Connection\n"); #endif for (j = 0; j < socket_info.allocated_sockets; j++) if (init_sockets[j].status == Ns_Avail) { newsocknum = j; break; } if (newsocknum == -1) { /* If this is the case, all sockets currently in used */ init_sockets = realloc(init_sockets, sizeof(socket_struct)*(socket_info.allocated_sockets+1)); if (!init_sockets) fatal(OUT_OF_MEMORY); newsocknum = socket_info.allocated_sockets; socket_info.allocated_sockets++; init_sockets[newsocknum].listen = NULL; init_sockets[newsocknum].faces_sent_len = nrofpixmaps; init_sockets[newsocknum].faces_sent = calloc(1, nrofpixmaps*sizeof(*init_sockets[newsocknum].faces_sent)); if (!init_sockets[newsocknum].faces_sent) fatal(OUT_OF_MEMORY); init_sockets[newsocknum].status = Ns_Avail; } if (newsocknum < 0) { LOG(llevError, "FATAL: didn't allocate a newsocket?? alloc = %d, newsocknum = %d", socket_info.allocated_sockets, newsocknum); fatal(SEE_LAST_ERROR); } init_sockets[newsocknum].fd = accept(listen_fd, (struct sockaddr *)&addr, &addrlen); if (init_sockets[newsocknum].fd == -1) { LOG(llevError, "accept failed: %s\n", strerror_local(errno, err, sizeof(err))); } else { char buf[MAX_BUF]; #ifndef HAVE_GETNAMEINFO long ip; #endif socket_struct *ns; ns = &init_sockets[newsocknum]; #ifdef HAVE_GETNAMEINFO getnameinfo((struct sockaddr *) &addr, addrlen, buf, sizeof(buf), NULL, 0, NI_NUMERICHOST); #else ip = ntohl(addr.sin_addr.s_addr); snprintf(buf, sizeof(buf), "%ld.%ld.%ld.%ld", (ip>>24)&255, (ip>>16)&255, (ip>>8)&255, ip&255); #endif if (checkbanned(NULL, buf)) { LOG(llevInfo, "Banned host tried to connect: [%s]\n", buf); close(init_sockets[newsocknum].fd); init_sockets[newsocknum].fd = -1; } else { init_connection(ns, buf); } } } /** * This checks the sockets for input and exceptions, does the right thing. * * A bit of this code is grabbed out of socket.c * There are 2 lists we need to look through - init_sockets is a list * */ void do_server(void) { int i, pollret, active = 0; fd_set tmp_read, tmp_exceptions, tmp_write; player *pl, *next; char err[MAX_BUF]; #ifdef CS_LOGSTATS if ((time(NULL)-cst_lst.time_start) >= CS_LOGTIME) write_cs_stats(); #endif FD_ZERO(&tmp_read); FD_ZERO(&tmp_write); FD_ZERO(&tmp_exceptions); for (i = 0; i < socket_info.allocated_sockets; i++) { if (init_sockets[i].status == Ns_Add && !is_fd_valid(init_sockets[i].fd)) { LOG(llevError, "do_server: invalid waiting fd %d\n", i); init_sockets[i].status = Ns_Dead; } if (init_sockets[i].status == Ns_Dead) { if (init_sockets[i].listen) { /* try to reopen the listening socket */ init_listening_socket(&init_sockets[i]); } else { free_newsocket(&init_sockets[i]); init_sockets[i].status = Ns_Avail; } } else if (init_sockets[i].status != Ns_Avail) { FD_SET((uint32)init_sockets[i].fd, &tmp_read); FD_SET((uint32)init_sockets[i].fd, &tmp_write); FD_SET((uint32)init_sockets[i].fd, &tmp_exceptions); active++; } } /* Go through the players. Let the loop set the next pl value, * since we may remove some */ for (pl = first_player; pl != NULL; ) { if (pl->socket.status != Ns_Dead && !is_fd_valid(pl->socket.fd)) { LOG(llevError, "do_server: invalid file descriptor for player %s [%s]: %d\n", (pl->ob && pl->ob->name) ? pl->ob->name : "(unnamed player?)", (pl->socket.host) ? pl->socket.host : "(unknown ip?)", pl->socket.fd); pl->socket.status = Ns_Dead; } if (pl->socket.status == Ns_Dead) { player *npl = pl->next; save_player(pl->ob, 0); leave(pl, 1); final_free_player(pl); pl = npl; } else { FD_SET((uint32)pl->socket.fd, &tmp_read); FD_SET((uint32)pl->socket.fd, &tmp_write); FD_SET((uint32)pl->socket.fd, &tmp_exceptions); pl = pl->next; } } if (active == 1 && first_player == NULL) block_until_new_connection(); /* Reset timeout each time, since some OS's will change the values on * the return from select. */ socket_info.timeout.tv_sec = 0; socket_info.timeout.tv_usec = 0; pollret = select(socket_info.max_filedescriptor, &tmp_read, &tmp_write, &tmp_exceptions, &socket_info.timeout); if (pollret == -1) { LOG(llevError, "select failed: %s\n", strerror_local(errno, err, sizeof(err))); return; } /* We need to do some of the processing below regardless */ /* if (!pollret) return;*/ /* Check for any exceptions/input on the sockets */ if (pollret) for (i = 0; i < socket_info.allocated_sockets; i++) { /* listen sockets can stay in status Ns_Dead */ if (init_sockets[i].status != Ns_Add) continue; if (FD_ISSET(init_sockets[i].fd, &tmp_exceptions)) { free_newsocket(&init_sockets[i]); init_sockets[i].status = Ns_Avail; continue; } if (FD_ISSET(init_sockets[i].fd, &tmp_read)) { if (init_sockets[i].listen) new_connection(init_sockets[i].fd); else handle_client(&init_sockets[i], NULL); } if (FD_ISSET(init_sockets[i].fd, &tmp_write)) { init_sockets[i].can_write = 1; } } /* This does roughly the same thing, but for the players now */ for (pl = first_player; pl != NULL; pl = next) { next = pl->next; if (pl->socket.status == Ns_Dead) continue; if (FD_ISSET(pl->socket.fd, &tmp_write)) { if (!pl->socket.can_write) { pl->socket.can_write = 1; write_socket_buffer(&pl->socket); } /* if we get an error on the write_socket buffer, no reason to * continue on this socket. */ if (pl->socket.status == Ns_Dead) continue; } else pl->socket.can_write = 0; if (FD_ISSET(pl->socket.fd, &tmp_exceptions)) { save_player(pl->ob, 0); leave(pl, 1); final_free_player(pl); } else { handle_client(&pl->socket, pl); /* There seems to be rare cases where next points to a removed/freed player. * My belief is that this player does something (shout, move, whatever) * that causes data to be sent to the next player on the list, but * that player is defunct, so the socket codes removes that player. * End result is that next now points at the removed player, and * that has garbage data so we crash. So update the next pointer * while pl is still valid. MSW 2007-04-21 */ next = pl->next; /* If the player has left the game, then the socket status * will be set to this be the leave function. We don't * need to call leave again, as it has already been called * once. */ if (pl->socket.status == Ns_Dead) { save_player(pl->ob, 0); leave(pl, 1); final_free_player(pl); } else { /* Update the players stats once per tick. More efficient than * sending them whenever they change, and probably just as useful */ esrv_update_stats(pl); if (pl->last_weight != -1 && pl->last_weight != WEIGHT(pl->ob)) { esrv_update_item(UPD_WEIGHT, pl->ob, pl->ob); if (pl->last_weight != WEIGHT(pl->ob)) LOG(llevError, "esrv_update_item(UPD_WEIGHT) did not set player weight: is %lu, should be %lu\n", (unsigned long)pl->last_weight, (unsigned long)WEIGHT(pl->ob)); } /* draw_client_map does sanity checking that map is * valid, so don't do it here. */ draw_client_map(pl->ob); if (pl->socket.update_look) esrv_draw_look(pl->ob); if (pl->socket.update_inventory) { if (pl->ob->container != NULL) esrv_send_inventory(pl->ob, pl->ob->container); pl->socket.update_inventory = 0; } if (pl->socket.tick) send_tick(pl); } } } } crossfire-1.70.0/socket/Makefile.in0000644000014500000120000004167611732537022014057 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to crossfire-devel@real-time.com VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = socket DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) ARFLAGS = cru libsocket_a_AR = $(AR) $(ARFLAGS) libsocket_a_LIBADD = am_libsocket_a_OBJECTS = image.$(OBJEXT) info.$(OBJEXT) init.$(OBJEXT) \ item.$(OBJEXT) loop.$(OBJEXT) lowlevel.$(OBJEXT) \ metaserver.$(OBJEXT) request.$(OBJEXT) requestinfo.$(OBJEXT) \ sounds.$(OBJEXT) libsocket_a_OBJECTS = $(am_libsocket_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/utils/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libsocket_a_SOURCES) DIST_SOURCES = $(libsocket_a_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libsocket.a libsocket_a_SOURCES = \ image.c \ info.c \ init.c \ item.c\ loop.c \ lowlevel.c\ metaserver.c\ request.c\ requestinfo.c\ sounds.c EXTRA_DIST = README AM_CPPFLAGS = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu socket/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu socket/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libsocket.a: $(libsocket_a_OBJECTS) $(libsocket_a_DEPENDENCIES) $(EXTRA_libsocket_a_DEPENDENCIES) -rm -f libsocket.a $(libsocket_a_AR) libsocket.a $(libsocket_a_OBJECTS) $(libsocket_a_LIBADD) $(RANLIB) libsocket.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loop.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lowlevel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metaserver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/requestinfo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sounds.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am proto: cproto -D__CEXTRACT__ $(CPPFLAGS) $(AM_CPPFLAGS) $(libsocket_a_SOURCES) > ../include/sockproto.h chmod 644 ../include/sockproto.h # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/socket/README0000644000014500000120000000606111731300524012651 00000000000000This directory contains the socket related code. When to differentiate socket related code and code that should belong in either the server or common directory is a bit of a grey area. A good test is that if the codes primary purpose is to send data to the client or receive/parse client commands, it should be here. Certainly the low level communication commands need to be here (setting up the socket, and the primitive reads/writes which more format the data but don't originate it). The functions that encapsulate the item details to send to the client are also located in this directory, as are some of the protocol commands the client sends to us. The higher level commands (ie, north, maps, cast, ...) are not included here. Some of them probably should be, since they do little more than just output data (who, maps for example.) The problem with this approach is the main dispatch routine is still in the server directory, as it should be (commands to move the player primary function is to do just that - move the player. updating the players view is the result of that move). So it probably makes sense to keep all those commands clustered there. The commands where moved out because I wanted a cleaner seperation of the client/server protocol area and the actual server functions - this makes it easier to find code that your are looking for and reduces the number of files in the server directory. Down the road, I see this as more of an issue as the common directory will likely get incorporated into the server directory and that then get broken out into a few more specific subdirectories (objects, map, maybe a few more). Description of the files: info.c: Contains the drawinfo and magic map commands. Was called sockio.c init.c: Handles basic initialization of data needed for the client server, initialization of data structure for new clients, and the freeing of data when done. This also contains the declarations for the global variables that are used. item.c: Commands dealing with objects. This includes both server updates to the clients, and request from the client to perform an action on some item. Some requests from the client may get passed back to functions in the server directory - more commands from the server probably need to get moved. loop.c: Main socket event loop. This includes the select calls and the main dispatch loop for data read from the sockets. lowlevel.c: Low level socket commands. The actual calls to read and write data to the socket. This file also includes the glue to format packets per the protocol definition, decompress the packets, and the utility functions to add/remove stuff from the SockLists. This only really deals with moving the data back and forth at a low level (intergers/bytes), not at the object level. It also contains the statistics recording functions. request.c: Handles requests to/from the client. This is the low level protocol commands, not the higher level game commands. This includes sending the players attributes and map to the client. sounds.c: Calls for sending sound information to the client. crossfire-1.70.0/COPYING0000644000014500000120000004311011731300547011535 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. crossfire-1.70.0/doc/0000755000014500000120000000000011732537044011335 500000000000000crossfire-1.70.0/doc/PlayerStats0000644000014500000120000002132611731300542013445 00000000000000 Player Stats effect how well a character can survie and interact inside the crossfire world. This section discusses the various stats, what they are, and how they effect the player's actions. Also in this section are the stat modifiers that specific classes/professions bring. Player Stats: Score : Score is accumulated by killing monsters. This is how you gain levels, hps, and sps. Hp : Hit Points. How much damage a character can take. If this drops below 0 the player dies. It consist of two numbers, the current and maximum. Sp : Spell Points. How much spell power a character has. They are consumed when casting spells. It consist of two numbers, the Current and Maximum. The Current Sp can go somewhat negative. When Sp is negative not all spells can be cast, and a more-negative Sp makes spell casting less likey to succeed. St : Strength. How strong a character is, can affect Damage and how the characters speed, as well as how often the character can attack. Co : Constitution. How healthy a character is. Affects the maximum Hit Points. De : Dexterity. Helps the character avoid being hit. Affects the Armour Class and the speed. In : Intelligence. Affects chance of learning mage spells. Wi : Wisdom. Determines the chance of learning a cleric spell and maximum grace. P : Power. Determines maximum mana. Ch : Charisma. How charismatic a character is, this affects the prices when buying and selling items. Wc : Weapon Class. How well a character is able to hit enemies. Dam : Damage. The maximum a character can damage an enemy with a single successful hit. Ac : Armor Class. How hard a character is to hit. Arm : Armour. How well protected the character is. This number specifies a percentage which is subtracted from the physical damage inflicted on the character. Speed : How fast a player moves around. The number in the () indicates weapon speed. Food : How much food a player has, if this drops to 0, the player will start losing hit points. Levels: A player will gain a new level when their score reaches a new level in the following hiarchy: Level 1: 0 Level 2: 1000 Level 3: 2000 Level 4: 4000 Level 5: 8000 Level 6: 16000 Level 7: 32000 Level 8: 64000 Level 9: 125000 Level 10: 250000 Class / Profession Modifiers: After a player rolls stats and he/she is happy with the character they must decide on what class or profession the character will be. The modifiers will affect the initial stat rolls. Net refers to the all the bonus/penalties added up. ------------------------------------------------------------------------------ | Class/Prof | Str | Dex | Con | Wis | Cha | Int | Pow | Net | Skills | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Barbarian | 4 | 1 | 4 | -1 | -2 | -6 | 0 | 0 | F,cl,wd | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Cleric | 0 | -1 | -1 | 2 | 1 | -2 | 1 | 0 | F,or | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Dwarf | 3 | -4 | 4 | 0 | -3 | 0 | 0 | 0 | F,sm | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Elf | -2 | 4 | -2 | -3 | 2 | 1 | 1 | +1 | F,M,bo,wd | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Fireborn | -7 | 4 | -3 | 3 | -4 | 2 | 0 | -5 |B,mi,sc,pr,ft| +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Human | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | F,ra | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Mage | 0 | 1 | -1 | 0 | -3 | 1 | 2 | 0 | F,C | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Monk | 2 | 2 | 1 | 0 | -3 | -1 | -1 | 0 |B,mi,me,ka,se| +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Ninja | 2 | 2 | 0 | -1 | -1 | -2 | 0 | 0 | F,ju,hi | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Priest | -3 | -2 | -2 | 3 | 2 | 0 | 2 | 0 | C | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Quetzalcoatl | 4 | -4 | 4 | -10 | 0 | -10 | +7 | -9 |B,mi,cw,sc,mw| +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Swashbuckler | 1 | 3 | 1 | -2 | 1 | -4 | 0 | 0 | F,st,si | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Thief | 0 | 4 | -2 | 0 | -3 | 1 | 0 | 0 | F,st | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Viking | 1 | 1 | 2 | -1 | -1 | -2 | 0 | 0 | F,ba | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Warrior | 3 | -1 | 2 | 0 | -1 | -3 | 0 | 0 | F,or | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Wizard | -3 | 0 | -3 | 0 | 0 | 3 | 3 | 0 | C | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Wraith | -4 | 4 | -4 | -3 | -10 | 2 | 3 | -12 | C | +--------------+-----+-----+-----+-----+-----+-----+-----+-----+-------------+ | Class/Prof | Str | Dex | Con | Wis | Cha | Int | Pow | Net | Skills | ------------------------------------------------------------------------------ Enclosed are codes used for the skills above. The ones in basic, casting, and fighting should all be pretty self explanatory. For the other skills, a brief description is given, for a more detailed description, look at the skills.doc file. Skill codes: B=basic skills (find traps, remove traps, use magic items) C=casting skills (melee weapon, spellcasting, praying, find traps, remove traps, use magic items) F=fighter skills (melee weapon, missile weapon, find traps, remove traps, use magic items) ba=bargaining. Increases charisma for buying/selling items. bo=bowyer. Identify missile weapons and missiles. cl=climbing. Better movement through mountains? cw=clawing. Allows for bare handed attack. ft=flame touch. Unarmed fire attack. hi=hide. Allows partial invisiblity. ju=jumping. Can jump over spaces. ka=karate. Unamred combat. me=meditation. Regain hp/mana at faster rate. mw=melee weapon. Can use hand held weapons. mi=missile weapon. Can use missile weapons. or=oratory. May recruite followers. pr=praying. Can cast cleric spells. ra=random skill sc=spell casting. Can cast wizard spells. se=sense magic. Can detect magic items. si=singing. May pacifiy hostile monsters. sm=smithery. Identify arms and armor. st=stealing. Can take items from monsters inventory. wd=woodsman. Move faster through wooded terrain. Descriptions on classes: race attacktype restrictions immunities prot./vuln. fireborn fire,phys no armour, fire vuln:ghosthit no weapons poison drain,cold Fireborns are supposed to be fire spirits. They're closely in tune with magic and are powerful and learn magic easily. Being fire spirits, they are immune to fire and poison, and vulnerable to cold. They are vulnerable to ghosthit and drain because being mostly non-physical, anything which strikes directly at the spirit hits them harder.... race attacktype restrictions immunities prot./vuln. Quetzalcoatl physical no armour fire vuln:paral poison,cold Quetzalcoatl's are now born knowing the spell of burning hands, but because of their negative wisdom bonus, they have a very hard time learning new spells. Their maximum natural wisdom is 13. With the high intelligence bonus, they will typically have many spellpoints. They can be very devastating at low level due to their low natural ac and can make mincemeat out of low-level monsters. However, at midlevel, they really begin to have problems because they cannot use armour. race attacktype restrictions immunities prot./vuln. Wraith cold,phys none ghostgit,drain prot:col,phys vuln: fire ------------------------------------------------------------------------------ When choosing the class, that stats will be adjusted by the bonuses in the above table. You will not be able to choose a class if the modifications drop a stat below 1. 1 is the mininum value for all stats. crossfire-1.70.0/doc/include_html.pl0000644000014500000120000000072311731300542014251 00000000000000#!/usr/bin/perl # basic $in = $ARGV[0]; $out = $ARGV[1]; sub die { $prog = $0; print STDERR $prog.": ".$_[0]."\n"; exit(1); } open(FOUT,">".$out) || &die("cannot open ".$out); sub include_file { $in = shift; local(*FIN); open(FIN,"<".$in) || &die("cannot open ".$in); while () { if (/^$/) { &include_file($1); } else { print FOUT $_; } } close(FIN); } &include_file($in); close(FOUT); crossfire-1.70.0/doc/crossloop.web.man0000644000014500000120000000021411731300542014534 00000000000000.TH crossloo.web 6 "Feb 04 2004" "" "CrossFire Game Server Manual" .SH NAME crossloop .SH SYNOPSIS crossloo .SH DESCRIPTION .B crossloop crossfire-1.70.0/doc/README0000644000014500000120000001071611731300542012130 00000000000000Since many of the subdirectories in here have some things in common, I figured it would be a good idea to merge them. Quick not on what some things are: playbook: This is a good guide on how to play crossfire. This is in latex/ postscript format. playbook-html: This is an html version of the playbook. spoiler: This is a generation of 'spoilers' for the game. It is in latex/ postscript format. Some stuff really shouldn't be considered spoilers (character stat bonuses). Other stuff (monster stats, what type of items spells appear in) is. It could be more thorough. spoiler-html: An html version of the spoiler. Postscript versions of the spoiler and playbook should be distributed with the game. However, a lot of the information in this guides is machine generated, and you may wish to rebuilt it. Here are some requirements for all the the above: - a real awk, like the free AT&T awk, mawk or gawk - xpmtoppm from NETPBM, with _undefined_ PGM_BIGGRAYS in pbmplus.h - pnmtops, pnmscale, pgmtoppm. If you install NetPbm, you should also have these - a crossfire binary compiled with DUMP_SWITCHES defined in include/config.h. - the arch.tar file extracted in the Crossfire lib dir. If you are generating any of the latex guides, you also need the following: - LaTeX with psfig (web-6.1) - dvips (5.58) - longtable.sty,babel.*,psfig.* files, available at any TeX ftp site The latest version of latex/tex should generate the spoiler fine. The format of latex changed in some version or another, so old version will not be able to compile the spoiler. Prior to 0.92.5 or so, the spoiler was set for the old version of latex, now it is set for the new version. Note that the spoiler needs more memory that is on the default versions of tetex. If you are using tetex, you should increase the main_memory, extra_mem_top and extra_mem_bot in the texmf.cnf (located at /usr/share/texmf/web2c on by redhat system). The following values work for me: main_memory = 5120000 % words of inimemory available; also applies to inimf&mp extra_mem_top = 100000 % extra high memory for chars, tokens, etc. extra_mem_bot = 100000 % extra low memory for boxes, glue, breakpoints, etc. If you are generating any of the html guide, you may want to use giftrans. This produces transparent gifs, which look a lot nicer in the guides. You can change a flag near the top of makeps in these directories to use/not to use giftrans (by default, it is used.) By default, the postscript images generated from the latex source uses greyscale images. This is largely due to space considerations (a color version is much larger), and the fact that most printers aren't color. If you are just going to view it with ghostscript, you are probably better off looking at the html versions instead. By default, a top level make will not descend into these directories and recreate them when thing change. Instead, you need to cd into the directory and manually run make. In some cases, you may need to rename/remove the finished product for this to still work. specific notes: HANDBOOK: If you don't want the icons, edit input image in the handbook.tex file. HTML notes (both spoiler and playbook): Most of these documents use server side includes (files that end in .shtml mean this). Unfortunately, if you are just loading them up in a web browser, it won't take these includes. I have written a simple perl script (include_html.pl) that will take the .shtml file and write and a .html file with the files included. PLAYBOOK HTML note: There are several referances in the playbook to the spoiler. I have these set up as ../spoiler/spoiler.html. Depending on where you store the spoiler, you may need to change these links for it to work properly. GENERAL NOTE: The playbook and spoiler could probably be stored in the same directory, and this would increase recreation time (since they share the same version.) This goes for the latex versions (store together) and the html version (store together). However, I think keeping them seperate at least helps out on maintaining them. But if you are putting them on a web page, storing them together is probably a good thing. Most of the original docs were done by: Lars Olafsen Kjetil T. Homme The html spoiler was done by: Lars Olafsen The playbook was done by: Brian Thomas (thomas@astro.psu.edu) The playbook was converted to html by: Mark Wedel (mwedel@scruz.net) crossfire-1.70.0/doc/crossloop.man0000644000014500000120000000021011731300542013754 00000000000000.TH crossloo 6 "Mar 12 2004" "" "CrossFire Game Server Manual" .SH NAME crossloop .SH SYNOPSIS crossloo .SH DESCRIPTION .B crossloop crossfire-1.70.0/doc/alchemy.doc0000644000014500000120000000616311731300542013362 00000000000000 This document is a brief description of the ALCHEMY hack. -------------- Introduction - -------------- As always, the general intention is to enhance the enjoyability and playability of CF. In this code, I have created a system whereby players may assemble various ingredients to make artifacts. The amount of work I put into this was substantial; other than new code -- I created new archetypes, revised archetypes, altered the treasures file and created 2 new object types and a flag. It therefore may be enjoyable to install this patch (incl code) and *not* define ALCHEMY in define.h. In particular, this patch does the following things: 1) more varieties of potions are available in shops. 2) new gems and types of food. 3) monsters will now leave behind body parts when you kill them. 4) if ALCHEMY is defined players may make potions/artifacts. I have included instructions for installation, an install script and a brief document for using the code (pretty simple). Finally, as always, feedback is appreciated. b.t. thomas@astro.psu.edu ------------------------ Instructions to Players - how to use this code. ------------------------ Using the alchemy code (to make artifacts) is easy. You need the following things: 1) be able to cast alchemy spell, 2) have access to a cauldron and 3) have the right ingredients. To create an artifact, put ingredients in the cauldron, then cast 'alchemy' spell. You might make something :) Backfire effects are possible. In order to get better at making stuff, you will need to learn the alchemy skill. Books found in shops (and elsewhere) will give you formulae for making stuff. Of course , you can always 'experiment' on your own, but this may be dangerous. --------------------- Description of code - --------------------- The bulk fo the alchemy code resides in 2 files - recipe.c and alchemy.c. The basic features of the code are: 1- allow players to make artifacts from formulae. As players gain xp and levels, their ability to create stuff improves 2- fast lookup of formulae. Lookup is randomized so that the list is attempted for a match based on # levels the player has. Obviously, higher level players get more attempts to match the list--and thereby have a grater chance of successfully completing a formula. 3- There are ~80 formulae in this version. You can dump the formulalists using the crossfire -m7 option. Basically, a simple linked list, ordered by the number of different archs in a formulae, is used to lookup 'recipe' matches. An indexed value for each formulae allows a quick comparison for a match with the cauldron contents. When a player casts alchemy on a cauldron, we first determine # archs inside the cauldron, pick the correct formulalist, randomly match against that list to see if we got a match. If matched, we remove the ingredients, and insert the artifact into the cauldron. Exp is awarded to the players alchemy skill (if they have it). crossfire-1.70.0/doc/multigod0000644000014500000120000001767411731300542013031 00000000000000 This document is a brief description of the MULTIGOD hack. -------------- Introduction - -------------- The intention of this code is to enhance the enjoy-ability and playability of clerical characters in the new skills/exp scheme. This is done by giving players gods to worship who in turn effect clerical magic and powers. Included in this patch are several new spells which (hopefully) will allow the priest characters a better chance to gain xp at higher levels. Notably, the "holy orb" and "holy word" spells have been revamped. When MULTIPLE_GODS flag is defined in include/config.h, this code is enabled. This code (described below) encompasses 3 main parts: an array of gods that players/NPCs may worship, new clerical spells which rely on the worshiped god's attrib- utes in Gods[] array and, altars/praying--the interface between a worshiper and their god. b.t. thomas@astro.psu.edu --------- Outline - --------- 1. Description of code - 2. Properties of the gods 3. Designing new gods 4. TODO/Idea list --------------------- Description of code - --------------------- This code is flexible and easy to configure (just edit the god archetypes). Part of the reason for creating this code was to allow server maintainers to develop their own "mythos". From my personal point of view, I hate having the old "Christian" aligned mythos, but if that's what you like, you can replicate it with this code too (see below). ------------------------- 2. Properties of the Gods ------------------------- Here is a fuller description of Gods archetype values. name - name of the god (required) other_arch - archetype that will be used for the summon holy servant spell. title - diametrically opposed god, leave blank if none exists attacktype - favored attack of this god, used in spells of summon avatar, holy word. Recipients of "holy possession" get this too. immune - Avatars/holy servants/recipient of "holy possession" gets this. protected - all of the above AND recipient of god's blessing and the priest of this god gets this. vulnerable - Avatar/servant/recipient of gods curse/priest of this god get this. path_attuned - priest of this god and recipient of "bless" gets this path_repelled - priest and recipient of "curse" gets this path_denied - priest and recipient of "curse" gets this slaying - comma delimited list of the races of creatures that are aligned with the god. "summon cult monsters" uses. this list to find creatures. Summon avatar/call servant code assigns this value to prevent them from attacking aligned races. Value is blank if no race(s) exists. race - comma delimited list of the races of creatures "holy word", "holy possession" spells will effect. Value entry is blank if no such race(s) exists. hp,dam,ac,wc - base stats for the summoned avatar. IF MORE_PRIEST_GIFTS is defined (in gods.c) then ADDITIONAL gifts/limitations will be assigned to the priest: A. FLAGS Now, the following flags, in addition to being used by the god (if planted on a map) are assigned to the worshiping priest: can_use_weapon, can_use_armour, is_undead, is_blind, reflect_missile, reflect_spell, make_invisible, stealth, can_see_in_dark, xrays NOTE: if can_use_armour/can_use_weapon flags are NOT present, then the priest will be forbidden the use of these items. B. STATS The following stats are used: luck - how lucky the god (and the priest) are. last_eat - how fast priest digestion is last_hp - how fast priest healing is last_sp - how fast priest mana regeneration is last_grace - how fast priest grace regeneration is --------------------- 3. Designing new gods --------------------- To examine the gods properties, use the '-m8' flag (ie 'crossfire -m8'). Note some of the big differences here in terms of spell_paths, races, etc. Most of these entries were designed with roughly polar opposite gods. For designing new gods. You should make sure that worshiping a god will be "unique" in some way. But playbalance first! You must consider the balance between the following: 1) spellpaths 2) priest gifts 3) priest limitations 4) special spells 5) attacktypes 6) summoned monster lists 7) properties of the avatar and holy servant. Here are some hard and fast rules for designing gods: - Decide how the cleric will get experience. The god should be either a 'summoning', 'turning' *or* a 'wounding' god. If summoning/turning, make sure the aligned_race/enemy_race list(s) has enough creatures to summon/slay at low, medium and high levels. DONT give a god attuned to wounding AND turning||summoning (in fact, at minimum, one of these 3 paths should be repelled/denied). - make sure the summoned avatar is stronger than the servant (!) - examine the avatar/servant stats. If set inproperly, you will give wimpy/super values. For example, Avatars/servants with less than 50 hp (and a high ac/no armour) will vanish quickly. Shoot for stats like: type | A V E R A G E S T A T S | hp | ac | wc | arm | dam | speed ----------|----------------------------------- servant | 50 | 5 | 5 | 20 | 5 | 0.15 avatar | 350 | -5 | -1 | 50 | 50 | 0.25 Its difficult to give measurements on how to trade these off. To help guide your choices try to conserve the value of speed*dam and (armour+1)*hp. - avoid giving the potent attacktypes of death, weaponmagic and paralysis. - gods have a vulnerability for every immunity. Not all attacktypes are the same. Immunity to physical, magic and common attacktypes (like fire/cold/electric) are very potent. Similarly, vuln to these is a big negative. - SPELL paths. Carefull treatment is needed here. Give a path_denied/ or a couple path_repelled for every path_attuned. BUT note: not all paths are of equal use. (ex path_abjuration has a very large list of spells). The main clerical paths are restoration, abjuration, protection, turning, wounding and summoning. For balance, make 3-4 of these repelled/denied and 1 or 2 attuned. Be sure to check out the special spells list (below). Attuned paths like DEATH, WOUNDING and (especially) PROTECTION are very potent. Allow for some balance else where if you assign (one!) of these as a path_attuned. - If using the MORE_PRIEST_GIFTS define: priest limitations of no weapons and no armour are very negative, be sure to compensate with more than an attunded path. Of course, you may break these 'rules' to create your god. When you do that, you had better make up for the bonus elsewhere! Otherwise, you will create a 'mega-god' whose worship (by the player priests) will unbalance the game. Designing a good god takes a bit of work. ---------------------- App A. Special spells- ---------------------- Here is a possibly *incomplete* list of the special spells that a god may grant use to a worshiper. Check the file spellist.h for the 0 bookchance clerical spells to find all of these. (This list was complete on 10/96). God has attuned path spells -------------------- ------------- INFO perceive self PROTECTION defense; immuntity to cold, fire, electricity, poison, slow, paralysis, draining, attack, and magic RESTORE remove damnation; reincarnation; raise dead; resurrection; regeneration WOUNDING cause critical wounds; retributive strike LIGHT daylight; nightfall DEATH face of death; finger of death SUMMONING insect plague CREATE wall of thorns ---------------- App B. Ideas- ---------------- -- Allow sacrifices. This is an excellent way to give a cleric xp. Need to create enemy_race creatures w/ bodyparts we can sacrifice, and designate a pointer in Gods{} to the appropriate array of stuff we can sacrifice for xp. crossfire-1.70.0/doc/Makefile.am0000644000014500000120000000414511731300542013303 00000000000000# # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@scruz.net SUBDIRS = scripts Developers playbook spoiler spell-docs spoiler-html playbook-html dist_noinst_DATA = handbook.ps spoiler.ps dist_noinst_SCRIPTS = include_html.pl dist_man6_MANS = crossfire-server.man crossfire-config.man \ crossloop.web.man crossloop.man EXTRA_DIST = PlayerStats \ README RunTimeCommands SurvivalGuide alchemy.doc \ experience metaserver multigod plugins skills.doc \ spellcasters_guide_to_runes DTOP=$(top_srcdir)/$(PACKAGE)-doc BASENAME = @BASENAME@ spoiler.ps: (cd spoiler; $(MAKE) spoiler) handbook.ps: (cd playbook; $(MAKE) handbook) crosslib.doc: (cd ../common; make doc) # workaround for bug in automake 1.6.2 & 1.6.3 (& probably others) uninstall-local: rm -f $(DESTDIR)$(man6dir)/crossfire.6* rm -f $(DESTDIR)$(man6dir)/crossfire-config.6* archive: spoiler playbook $(mkinstalldirs) $(DTOP) cp $(EXTRA_DIST) $(DTOP) cp spoiler.ps handbook.ps $(DTOP) cp spell-docs/*.txt spell-docs/*.ps $(DTOP) (cd spoiler-html ; make archive ) (cd playbook-html ; make archive ) (cd $(DTOP)/..; gtar --exclude=CVS -cvhzf $(PACKAGE)-$(VERSION).doc.tar.gz `$(BASENAME) $(DTOP)`) $(RM) -rf $(DTOP) crossfire-1.70.0/doc/SurvivalGuide0000644000014500000120000001673311731300542013771 00000000000000TIPS on SURVIVING Crossfire is populated with a wealth of different monsters. These monsters can have varying immunities and attack types. In addition, some of them can be quite a bit smarter than others. It will be important for new players to learn the abilities of different monsters and learn just how much it will take to kill them. This section discusses how monsters can interact with players. Most monsters in the game are out to mindlessly kill and destroy the players. These monsters will help boost a player's score, after he kills them. When fighting a large amount of monsters in a single room, attempt to find a narrower hallway so that you are not being attacked from all sides. Charging into a room full of Beholders for instance would not be wise, instead, open the door and fight them one at a time. For beginners, there are several maps designed for them. Find these areas and clear them out. All throughout these levels, a player can find signs and books which they can read by stepping onto them and hitting 'A' to apply the book/sign. These messages will help the player to learn the system. One more note, always keep an eye on your food. If your food drops to zero, your character will soon die, so BE CAREFUL! NPCs Non Player Character are special monsters which have "intelligence." Players may be able to interact with these monsters to help solve puzzles and find items of interest. To speak with a monster you suspect to be a NPC, simply move to an adjacent square to them and push the double-quote, ie. ". Enter your message, and press . You can also use 'say if you feel like typing a little extra. Other NPCs may not speak to you, but display intelligence with their movement. Some monsters can be friendly, and may attack the nearest of your enemies. Others can be "pets", in that they follow you around and help you in your quest to kill enemies and find treasure. SPECIAL ITEMS There are many special items which can be found in Crossfire, of these the most important may be the signs. Signs : Signs often have messages that might clue you in on quests and puzzles or even refer you to NPCs. It is your job as a player to make sure you read every sign to make sure you do not miss things. Handles and Buttons : These items can often be manipulated to open up new areas of the map. In the case of handles, all a player must do is apply the handle. In the case of buttons, the player must move items over the button to "hold" it down. Some of the larger buttons may need very large items to be moved onto them, before they can be activated. Gates and locked doors : Gates are often tied to a handle or button and can only be opened by manipulating the the handle/button. Doors that are locked can either be smashed down by attacking the door or by using keys which can be found throughout the game. Pits : Pits can be doorways to new areas of the map too, but be careful, for you could fall down into a pit full of ghosts or dragons and not be able to get back out. Break away walls: Are a common occurrence in Crossfire. These type of walls can be "destroyed" by attacking them. Thus, sometimes it may be worth a player's time to test the walls of a map for "secret doors." Fire walls: Will shoot missiles at players. Some firewalls can be destroyed others cannot. Directors and Spinners: These odd items will change the direction of any item flying over them, such as missile weapons and spells. CAUTION: Some items are perishable. If for instance you shoot a fireball into a room full of scrolls, you will notice them going up in smoke! So be careful not to destroy valuable items. Spellbooks/prayerbooks: This is how players can obtain magical spells, sometimes a player can learn the spell, other times they cannot. There are many, many different types of books and scrolls out there. Improve item scrolls: These are used to turn non magical weapons into magical weapons. These magical weapons can do many things - improve stats, have lower weight, higher damage, etc. The method for creation and further improvement was changed in version 0.91.7. Both methods are listed here, because it is possible to enable the old version on a server by server basis. New Version: Prepare weapons: Diamonds (Gems) are required for the sacrifice. The item can be enchanted the square root of the number of diamonds sacrificed. Thus, if 100 diamonds are sacrificed, the weapon can have 10 other enchant scrolls read. Improve damage: There is no sacrifice. Each scroll read will increase the damage by 5 points, and the weight by 5 kilograms. Lower (Improve) Weight: There is no sacrifice. Each scroll read will reduce the weight by 20%. The minimum weight a weapon can have is 1 gram. Enchant weapon: This does not require any sacrifices, and increases the magic by 1. Improve Stat (ie, Strength, Dexterity, etc): The sacrifice is the potion of the same type as the ability to be increased (ie, Improve Strength requires strength potions). The number of potions needed is the sum of all the abilities the weapon presently gives multipled by 2. The ability will then be increased by 1 point. Thus, if a sword is int+2 str+2, then 8 potions would be needed to raise any stat by one point. But if the sword was int+2 str+2 wis-2, then only 4 potions. A mininum of 2 potions will be needed (such a situation could happen when you are starting with a weapon that gives a penalty to a stat (ie, Con-1)) Old Improvement Methd: For each improve scroll & prepare weapon scroll, at least 5 food and 10 booze must be on the ground. How much the ability is raised depends on the amount of item donated, with each scroll requiring that something be donated. Here is a short list: Prepare weapons: Diamonds (Gems) are required for the sacrifice. The item can be enchanted the square root of the number of diamonds sacrificed. Thus, if 100 diamonds are sacrificed, the weapon can have 10 other enchant scrolls read. Improve damage: The square root of the number of rubies determines how much the damage will go up. Weight is increased 2 kg for each plus the weapon goes up. The maximum damage a weapon can ever do is 70. Improve weight: The square root of the number of pearls determines how much the weight is reduced, .75 kg. Enchant weapon: This does not require any sacrifices, but rather increases the magic by 1, and reduces the weight by 10%. Improve Stat (ie, Strength, Dexterity, etc): The sacrifice is the potion of the same type as the ability to be increased (ie, Improve Strength requires strength potions). The amount increased is the square root of (sacrifice/2). Rings/Amulets: Again many different types, rings can be worn to add/remove different immunities. Wands/Staves/Rods, Scrolls: Not so many types of wands, staves and rods as scrolls. These let you cast spells you don't know. A scroll can be used once, wands and staves have a limited number of charges, and rods let you use a spell every so often. Artifacts: These are the real treasures of the game. There are more than 20 artifacts out there, but they are very hard to come by. Weapons/Armor: Tons of items, it is up to you as the player to figure out which work better then others. crossfire-1.70.0/doc/spell-docs/0000755000014500000120000000000011732537045013403 500000000000000crossfire-1.70.0/doc/spell-docs/spell-info.ps0000644000014500000120000001732311731300537015736 00000000000000%!PS-Adobe-1.0 %%Creator: offa:chrisc (Christopher Carpinello) %%Title: spell-info.txt %%CreationDate: Fri Mar 26 17:01:35 1993 %%DocumentFonts: Courier-Bold Courier-BoldOblique % Start of enscript.pro -- prolog for text file translator % Copyright (c) 1984,1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCSID: $Header$ save/EnscriptJob exch def /StartEnscriptDoc{$enscript begin}def /$enscript 50 dict def $enscript begin /EndEnscriptDoc{end}def /S/show load def /X{exch 0 rmoveto S}def /Y{exch 0 exch rmoveto S}def /B{3 1 roll moveto S}def /F{$fd exch get setfont}def /StartPage{/svpg save def .05 dup scale}def /EndPage{svpg restore showpage}def /DoPreFeed{/statusdict where{pop statusdict/prefeed known{statusdict exch/prefeed exch put 0}if}if pop}def /Landscape{90 rotate 0 -15840 translate}def /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine EndPage if printer is not "Classic LW" {/EndPage {svpg restore {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop showpage}def}if }if}def /ISO-Latin-1 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /dotlessi /dieresis/ring /grave /acute /circumflex/tilde /macron /brev /dotaccent /cedilla /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /endash /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def /SetUpFonts {dup/$fd exch array def{ findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding ISO-Latin-1 def /FontName /Null def FontName currentdict definefont end exch scalefont $fd 3 1 roll put}repeat}def /InitGaudy{/TwoColumn exch def /BarLength exch def /ftD /Times-Bold findfont 12 UP scalefont def /ftF /Times-Roman findfont 14 UP scalefont def /ftP /Helvetica-Bold findfont 30 UP scalefont def}def /U{1440 mul}def /UP{U 72 div}def /LB{/pts exch UP def /charcolor exch def /boxcolor exch def /font exch def /label exch def /dy exch def /dx exch def /lly exch def /llx exch def gsave boxcolor setgray llx lly moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill /lines label length def /yp lly dy add dy lines pts mul sub 2 div sub pts .85 mul sub def font setfont charcolor setgray label {dup stringwidth pop 2 div llx dx 2 div add exch sub yp moveto show /yp yp pts sub def}forall grestore}def /Gaudy{/Page exch def /Date exch def /File exch def /Comment exch def .25 U 10.2 U BarLength .1 sub U .25 U [File] ftF .97 0 14 LB .25 U 10.45 U BarLength .1 sub U .25 U [Comment] ftF 1 0 14 LB .25 U 10.2 U 1 U .5 U Date ftD .7 0 12 LB BarLength .75 sub U 10.2 U 1 U .5 U [Page] ftP .7 1 30 LB TwoColumn{BarLength 2 div .19 add U 10.2 U moveto 0 -10 U rlineto stroke}if }def end StartEnscriptDoc % end fixed prolog 1 160 /Courier-Bold 0 240 /Courier-BoldOblique 2 SetUpFonts %%EndProlog %%Page: ? 1 StartPage 0 F 900 14940(Level)B 900 14680(=====)B 2052 14160(The level of a spell indicates the difficulty of the spell as)B 900 13900(well as defining how advanced a spell-user must be before he may fully)B 900 13640(grasp the knowledge to cast the spell.)B 900 12860(Type)B 900 12600(====)B 2052 12080(A spell is either a wizard based or priest based spell.)B 900 11820(Anyone except a cleric or priest attempting to cast a priest based)B 900 11560(spell \(a prayer\) will not receive a Wisdom bonus to successfully cast)B 900 11300(the spell \(and has a high chance of fumbling the spell unless the)B 900 11040(caster has an unusally inherent high Wisdom\).)B 900 10260(Speed)B 900 10000(=====)B 2052 9480(The speed \(in game rounds\) determines how long it takes to)B 900 9220(cast such a spell. The lower the speed, the faster the spell may be)B 900 8960(cast.)B 900 8180(Range)B 900 7920(=====)B 2052 7400(The range of a spell limits how far reaching the spell will)B 900 7140(effectively work. The range of a spell is usually denoted in 10' \(one)B 900 6880(sqaure\) increments. Thus a spell with a range of 1 will only affect)B 900 6620(those play squares surrounding the caster. Furthermore, there are)B 900 6360(several other common ranges:)B 2052 5840(When a spell has a range of "self", only the caster may be)B 900 5580(affected by the spell.)B 2052 5060(The most common spell range is that of "touch". This denotes)B 900 4800(that the caster much touch the recipient of the spell in order to)B 900 4540(release the spell effects \(as for "self", the caster may cast the)B 900 4280(spell on himself\).)B 2052 3760(A "special" range for missile spells indicates that the spell)B 900 3500(will last until it impacts an object \(a PC, monster, or wall\). For)B 900 3240(cone spells, it usually denotes that the range depends on some)B 900 2980(modifer, such as the caster's Wisdom level. If this is the case, it)B 900 2720(will be stated in the long spell description.)B 900 1940(Duration)B 900 1680(========)B -520(The duration of a spell \(expressed in game rounds\) indicates)Y 900 900(how long the effects of the spell will last. Several common ranges are:)B EndPage %%Page: ? 2 StartPage 0 F 2052 14940("instant" duration spells have effects which are noticeable)B 900 14680(immediately. Cone spells with an "instant" duration indicate that the)B 900 14420(effects of the cone do not linger on game squares more than 1 round.)B 2052 13900(The "standard" duration for spells is 500 rounds.)B 2052 13380(A "permanent" duration is forever.)B 2052 12860("special" durations last until a specific event occurs, or the)B 900 12600("standard" duration for the spell expires. Only one protection or)B 900 12340(change player attribute spell may be in effect on a player at any one)B 900 12080(time. If another such spell is cast upon a player, then the modifiers)B 900 11820(of the previous spell are replaced by those of the new spell.)B EndPage %%Trailer EndEnscriptDoc EnscriptJob restore crossfire-1.70.0/doc/spell-docs/spell-info.txt0000644000014500000120000000446611731300537016137 00000000000000Level ===== The level of a spell indicates the difficulty of the spell as well as defining how advanced a spell-user must be before he may fully grasp the knowledge to cast the spell. Type ==== A spell is either a wizard based or priest based spell. Anyone except a cleric or priest attempting to cast a priest based spell (a prayer) will not receive a Wisdom bonus to successfully cast the spell (and has a high chance of fumbling the spell unless the caster has an unusally inherent high Wisdom). Speed ===== The speed (in game rounds) determines how long it takes to cast such a spell. The lower the speed, the faster the spell may be cast. Range ===== The range of a spell limits how far reaching the spell will effectively work. The range of a spell is usually denoted in 10' (one sqaure) increments. Thus a spell with a range of 1 will only affect those play squares surrounding the caster. Furthermore, there are several other common ranges: When a spell has a range of "self", only the caster may be affected by the spell. The most common spell range is that of "touch". This denotes that the caster much touch the recipient of the spell in order to release the spell effects (as for "self", the caster may cast the spell on himself). A "special" range for missile spells indicates that the spell will last until it impacts an object (a PC, monster, or wall). For cone spells, it usually denotes that the range depends on some modifer, such as the caster's Wisdom level. If this is the case, it will be stated in the long spell description. Duration ======== The duration of a spell (expressed in game rounds) indicates how long the effects of the spell will last. Several common ranges are: "instant" duration spells have effects which are noticeable immediately. Cone spells with an "instant" duration indicate that the effects of the cone do not linger on game squares more than 1 round. The "standard" duration for spells is 500 rounds. A "permanent" duration is forever. "special" durations last until a specific event occurs, or the "standard" duration for the spell expires. Only one protection or change player attribute spell may be in effect on a player at any one time. If another such spell is cast upon a player, then the modifiers of the previous spell are replaced by those of the new spell. crossfire-1.70.0/doc/spell-docs/Makefile.in0000644000014500000120000002523711732537021015373 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/spell-docs DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README prayer-list.ps spell-info.ps spell-list.ps \ spell-summary.ps tome-of-magic.ps prayer-list.txt spell-info.txt \ spell-summary.ps tome-of-magic.txt Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/spell-docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/spell-docs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/doc/spell-docs/prayer-list.txt0000644000014500000120000000107311731300537016331 00000000000000level 1 ========= minor healing turn undead level 2 ========= perceive self level 3 ========= protection from cold create food level 4 ========= medium healing holy word protection from electricity level 5 ========= protection from fire level 6 ========= protection from poison level 7 ========= protection from slow level 8 ========= protection from paralysis major healing level 9 ========= protection from draining invisible to undead level 10 ========= protection from magic heal level 13 ========= protection from attack level 15 ========= word of recall crossfire-1.70.0/doc/spell-docs/tome-of-magic.ps0000644000014500000120000005743611731300537016323 00000000000000%!PS-Adobe-1.0 %%Creator: offa:chrisc (Christopher Carpinello) %%Title: tome-of-magic.txt %%CreationDate: Fri Mar 26 17:01:32 1993 %%DocumentFonts: Courier-Bold Palatino-Italic % Start of enscript.pro -- prolog for text file translator % Copyright (c) 1984,1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCSID: $Header$ save/EnscriptJob exch def /StartEnscriptDoc{$enscript begin}def /$enscript 50 dict def $enscript begin /EndEnscriptDoc{end}def /S/show load def /X{exch 0 rmoveto S}def /Y{exch 0 exch rmoveto S}def /B{3 1 roll moveto S}def /F{$fd exch get setfont}def /StartPage{/svpg save def .05 dup scale}def /EndPage{svpg restore showpage}def /DoPreFeed{/statusdict where{pop statusdict/prefeed known{statusdict exch/prefeed exch put 0}if}if pop}def /Landscape{90 rotate 0 -15840 translate}def /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine EndPage if printer is not "Classic LW" {/EndPage {svpg restore {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop showpage}def}if }if}def /ISO-Latin-1 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /dotlessi /dieresis/ring /grave /acute /circumflex/tilde /macron /brev /dotaccent /cedilla /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /endash /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def /SetUpFonts {dup/$fd exch array def{ findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding ISO-Latin-1 def /FontName /Null def FontName currentdict definefont end exch scalefont $fd 3 1 roll put}repeat}def /InitGaudy{/TwoColumn exch def /BarLength exch def /ftD /Times-Bold findfont 12 UP scalefont def /ftF /Times-Roman findfont 14 UP scalefont def /ftP /Helvetica-Bold findfont 30 UP scalefont def}def /U{1440 mul}def /UP{U 72 div}def /LB{/pts exch UP def /charcolor exch def /boxcolor exch def /font exch def /label exch def /dy exch def /dx exch def /lly exch def /llx exch def gsave boxcolor setgray llx lly moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill /lines label length def /yp lly dy add dy lines pts mul sub 2 div sub pts .85 mul sub def font setfont charcolor setgray label {dup stringwidth pop 2 div llx dx 2 div add exch sub yp moveto show /yp yp pts sub def}forall grestore}def /Gaudy{/Page exch def /Date exch def /File exch def /Comment exch def .25 U 10.2 U BarLength .1 sub U .25 U [File] ftF .97 0 14 LB .25 U 10.45 U BarLength .1 sub U .25 U [Comment] ftF 1 0 14 LB .25 U 10.2 U 1 U .5 U Date ftD .7 0 12 LB BarLength .75 sub U 10.2 U 1 U .5 U [Page] ftP .7 1 30 LB TwoColumn{BarLength 2 div .19 add U 10.2 U moveto 0 -10 U rlineto stroke}if }def end StartEnscriptDoc % end fixed prolog 1 160 /Courier-Bold 0 240 /Palatino-Italic 2 SetUpFonts %%EndProlog %%Page: ? 1 StartPage 0 F 900 14940(Level 1)B 900 14680(=========)B 900 14160(spell: armour)B 900 13900(level: 1 )B 900 13640(sp cost: 8 speed: 2.00)B 900 13380(range: touch duration: special)B 900 13120(description: Armour creates a magical field around you which gives you an ac level of 2 + \(level+2\)/3,)B 900 12860(with a maximum of six. This is not additive, so if you are wearing plate mail \(ac level of 5\) and your)B 900 12600(armour spell gives you an ac level of 4, you receive no benefit. Armour is additive with all the)B 900 12340(supplementry forms of armour \(shields, helmets, bracers\) however. The duration is semi-permanent, which)B 900 12080(means that it lasts until the next semi-permanent spell effect is cast upon the character.)B 900 11560(spell: burning hands)B 900 11300(level: 1 )B 900 11040(sp cost: 5 speed: 0.50)B 900 10780(range: 5 duration: instant)B 900 10520(description: Shoots forth a cone of fire with does 8 hp of fire damage/rnd to creatures within the cone.)B 900 10000(spell: magic bullet)B 900 9740(level: 1 )B 900 9480(sp cost: 1 speed: 0.30)B 900 9220(range: special duration: instant)B 900 8960(description: Creates and hurls magical bullet in a single direction which does 6 points of physical damage)B 900 8700(upon impact.)B 900 8180(spell: magic missile)B 900 7920(level: 1 )B 900 7660(sp cost: 2 speed: 0.50)B 900 7400(range: special duration: instant)B 900 7140(description: Creates a magical projectile which homes in on enemies causing 4 hp of magical damage upon)B 900 6880(impact.)B 900 6360(prayer: minor healing)B 900 6100(level: 1 )B 900 5840(sp cost: 4 speed: 2.00)B 900 5580(range: touch duration: permanent)B 900 5320(description: Restores up to 8 hit points.)B 900 4800(spell: probe)B 900 4540(level: 1 )B 900 4280(sp cost: 3 speed: 0.20)B 900 4020(range: 5 duration: instant)B 900 3760(description: Describes an object with regard to power versus your current level and also describes the)B 900 3500(current physical condition of the object \(excellent shape, weak\).)B 900 2980(spell: slow)B 900 2720(level: 1 )B 900 2460(sp cost: 5 speed: 0.30)B 900 2200(range: 5 duration: standard)B 900 1940(description: Causes affected creatures move extremely slow \(speed of 0.05\).)B 900 1420(spell: small fireball)B 900 1160(level: 1 )B 900 900(sp cost: 5 speed: 0.50)B 900 640(range: special duration: 6)B EndPage %%Page: ? 2 StartPage 0 F 900 14940(description: Creates a ball of fire which when thrown and detonated does 8 hp of fire damage/rnd.)B 900 14420(spell: small lightning)B 900 14160(level: 1 )B 900 13900(sp cost: 5 speed: 0.30)B 900 13640(range: 12 duration: 8)B 900 13380(description: Creates a single bolt of lightning which does 3 hp electrical damage/rnd. Lightning will reflect)B 900 13120(off of walls.)B 900 12600(prayer: turn undead)B 900 12340(level: 1 )B 900 12080(sp cost: 2 speed: 0.10)B 900 11820(range: special duration: standard)B 900 11560(description: A cone of fear for undead with a range of \(3 + Wisdom bonus\) squares.)B 900 11040(Level 2)B 900 10780(=========)B 900 10260(spell: confusion)B 900 10000(level: 2 )B 900 9740(sp cost: 10 speed: 0.50)B 900 9480(range: touch duration: standard)B 900 9220(description: Confuses the recipient such that he has problems wielding his weapon and walking straight.)B 900 8700(spell: earth to dust)B 900 8440(level: 2 )B 900 8180(sp cost: 5 speed: 1.00)B 900 7920(range: special duration: permanent)B 900 7660(description: Destroys earth walls in a radius of \(level/3\) + 1 sqaures around the caster.)B 900 7140(spell: paralyze)B 900 6880(level: 2 )B 900 6620(sp cost: 5 speed: 0.50)B 900 6360(range: 5 duration: standard)B 900 6100(description: Paralyzes affected creatures.)B 900 5580(prayer: perceive self)B 900 5320(level: 2 )B 900 5060(sp cost: 5 speed: 0.00)B 900 4800(range: self duration: instant)B 900 4540(description: Describes the caster in terms of armour, special abilities \(reflect missiles, reflect spells, ...\),)B 900 4280(and current protections and immunities.)B 900 3760(spell: poison cloud)B 900 3500(level: 2 )B 900 3240(sp cost: 5 speed: 1.00)B 900 2980(range: special duration: 10)B 900 2720(description: Creates a gaseous ball that explodes on impact to form a cloud of poisonous gas which does)B 900 2460(1 hp of poison damage/rnd and posions those exposed to the gas such that they continue to take damage)B 900 2200(\(due to poison in their system\) after they have emerged from the gas cloud.)B 900 1680(spell: strength)B 900 1420(level: 2 )B 900 1160(sp cost: 10 speed: 2.00)B 900 900(range: touch duration: special)B 900 640(description: Temporarily increases the recipient's Strength \(Str.\) by at least one point and boots it)B EndPage %%Page: ? 3 StartPage 0 F 900 14940(by one point for every two points their strength is less than 20. The spell lasts for the standard)B 900 14680(duration or until another change attribute or protection spell is cast upon the recipient.)B 900 14160(spell: summon golem)B 900 13900(level: 2 )B 900 13640(sp cost: 5 speed: 1.00)B 900 13380(range: 1 duration: special)B 900 13120(description: Summons golem to fight for you. The golem will remain until it is destroyed or until you summon a )B 900 12860(type of elemental.)B 900 12340(spell: summon pet monster)B 900 12080(level: 2 )B 900 11820(sp cost: 5 speed: 1.00)B 900 11560(range: 1 duration: special)B 900 11300(description: Summons up to five friendly monsters to fight for you. Monsters remain your friend until either)B 900 11040(they or you are killed. It is rumored that some summoned creatures temporarily increase the)B 900 10780(summoner's sp.)B 900 10260(The types of monsters summoned are:)B 900 9740(character class)B 1481(possible monsters)X 900 9480(----------------------------------------------------------------)B 900 9220(mage)B 2375(bat, spider, stalker, beholder, dark elf)X 900 8960(priest)B 2336(bee, killer bee, devil, angel, panther)X 900 8700(all others)B 1998(bird, pixie, skeleton, skull, vampire)X 900 8180(Level 3)B 900 7920(=========)B 900 7400(spell: charisma)B 900 7140(level: 3 )B 900 6880(sp cost: 12 speed: 2.00)B 900 6620(range: touch duration: special)B 900 6360(description: Temporarily increases the recipient's Charisma \(Cha.\) by at least one point and boots it by)B 900 6100(one point for every two points their charisma is less than 20. The spell lasts for the standard)B 900 5840(duration or until another change attribute or protection spell is cast upon the recipient.)B 900 5320(prayer: create food)B 900 5060(level: 3 )B 900 4800(sp cost: 5 speed: 2.00)B 900 4540(range: 1 duration: permanent)B 900 4280(description: Creates one food in a space adjacent to the caster.)B 900 3760(spell: dexterity)B 900 3500(level: 3 )B 900 3240(sp cost: 12 speed: 2.00)B 900 2980(range: touch duration: special)B 900 2720(description: Temporarily increases the recipient's Dexterity \(Dex.\) by at least one point and boots it by one)B 900 2460(point for every two points their dexterity is less than 20. The spell lasts for the standard)B 900 2200(duration or until another change attribute or protection spell is cast upon the recipient.)B 900 1680(spell: medium fireball)B 900 1420(level: 3 )B 900 1160(sp cost: 8 speed: 0.70)B 900 900(range: special duration: 10)B 900 640(description: Creates a ball of fire which when thrown and detonated does 8 hp of fire damage/rnd.)B EndPage %%Page: ? 4 StartPage 0 F 900 14680(prayer: protection from cold)B 900 14420(level: 3 )B 900 14160(sp cost: 15 speed: 1.00)B 900 13900(range: touch duration: special)B 900 13640(description: Protects recipient from cold so well, that they only take 1/2 damage from cold based attacks.)B 900 13120(Level 4)B 900 12860(=========)B 900 12340(spell: constitution)B 900 12080(level: 4 )B 900 11820(sp cost: 15 speed: 2.00)B 900 11560(range: touch duration: special)B 900 11300(description: Temporarily increases the recipient's Constitution \(Con.\) by at least one point and boots it by)B 900 11040(one point for every two points their constitution is less than 20. The spell lasts for the)B 900 10780(standard duration or until another change attribute or protection spell is cast upon the recipient.)B 900 10260(spell: create earth wall)B 900 10000(level: 4 )B 900 9740(sp cost: 6 speed: 1.00)B 900 9480(range: 1 duration: permanent)B 900 9220(description: Creates a destructable earthen wall.)B 900 8700(spell: fear)B 900 8440(level: 4 )B 900 8180(sp cost: 6 speed: 0.20)B 900 7920(range: 4 duration: standard)B 900 7660(description: Invokes such fear within individuals that they run away at top speed from you!)B 900 7140(prayer: holy word)B 900 6880(level: 4 )B 900 6620(sp cost: 6 speed: 0.30)B 900 6360(range: special duration: instant)B 900 6100(description: This spell is an improvement of Turn Undead which not only turns undead, but it will also causes)B 900 5840(3 hp/rnd. The range of the cone covers \(2 + Wisdom bonus\) squares.)B 900 5320(spell: icestorm)B 900 5060(level: 4 )B 900 4800(sp cost: 7 speed: 0.50)B 900 4540(range: 6 duration: instant)B 900 4280(description: Creates a cone of frost which does 4 hp of cold damage/rnd.)B 900 3760(spell: large bullet)B 900 3500(level: 4 )B 900 3240(sp cost: 3 speed: 0.50)B 900 2980(range: special duration: instant)B 900 2720(description: Creates and hurls large magical bullet in a single direction which does 25 points of physical damage )B 900 2460(upon impact.)B 900 1940(spell: large lightning)B 900 1680(level: 4 )B 900 1420(sp cost: 8 speed: 0.60)B 900 1160(range: 24 duration: 16)B 900 900(description: Creates a single bolt of lightning which does 3 hp electrical damage/rnd. Lightning will reflect off of )B 900 640(walls.)B EndPage %%Page: ? 5 StartPage 0 F 900 14680(prayer: medium healing)B 900 14420(level: 4 )B 900 14160(sp cost: 7 speed: 3.00)B 900 13900(range: touch duration: permanent)B 900 13640(description: Restores up to 21 hit points.)B 900 13120(prayer: protection from electricity)B 900 12860(level: 4 )B 900 12600(sp cost: 15 speed: 1.00)B 900 12340(range: touch duration: special)B 900 12080(description: Protects recipient from electricity so well, that they only take 1/2 damage from electrical attacks.)B 900 11560(Level 5)B 900 11300(=========)B 900 10780(spell: large fireball)B 900 10520(level: 5 )B 900 10260(sp cost: 13 speed: 1.00)B 900 10000(range: special duration: 14)B 900 9740(description: Creates a ball of fire which when thrown and detonated does 8 hp of fire damage/rnd.)B 900 9220(spell: magic mapping)B 900 8960(level: 5 )B 900 8700(sp cost: 15 speed: 1.00)B 900 8440(range: self duration: instant)B 900 8180(description: Shows complete map of level.)B 900 7660(prayer: protection from fire)B 900 7400(level: 5 )B 900 7140(sp cost: 20 speed: 1.00)B 900 6880(range: touch duration: special)B 900 6620(description: Protects recipient from fire so well, that they only take 1/2 damage from fire attacks.)B 900 6100(spell: summon earth elemental)B 900 5840(level: 5 )B 900 5580(sp cost: 15 speed: 1.00)B 900 5320(range: 1 duration: special)B 900 5060(description: Summons earth elemental to fight for you. The earth elemental will remain until it is destroyed)B 900 4800(or until you summon another type of elemental or golem.)B 900 4280(Level 6)B 900 4020(=========)B 900 3500(spell: create bomb)B 900 3240(level: 6 )B 900 2980(sp cost: 20 speed: 1.00)B 900 2720(range: 1 duration: special)B 900 2460(description: Creates a short fuse bomb which detonates 8 rounds after creation in a 4 square radius doing 5 hp)B 900 2200(of physical damage. Shards of the bomb project forth until they strike a barrier.)B 900 1680(spell: create fire wall)B 900 1420(level: 6 )B 900 1160(sp cost: 5 speed: 1.00)B 900 900(range: 1 duration: special)B 900 640(description: Creates a wall of fire lasting \(200 + 10*caster's level\) rounds that does 1 hp fire damage/rnd.)B EndPage %%Page: ? 6 StartPage 0 F 900 14940(Creatures will not walk through this wall.)B 900 14420(spell: improved invisibility)B 900 14160(level: 6 )B 900 13900(sp cost: 15 speed: 1.00)B 900 13640(range: touch duration: standard)B 900 13380(description: This spell is an improvement of Invisibility in that the recipient will stay invisible even if he attacks)B 900 13120(something. The spell can be cast multiple times to increase the duration, but the duration will not exceed)B 900 12860(1000 rounds.)B 900 12340(spell: invisible)B 900 12080(level: 6 )B 900 11820(sp cost: 25 speed: 0.50)B 900 11560(range: touch duration: standard)B 900 11300(description: Recipient becomes invisible and remains so until the spell wears off or until the recipient attacks a cre)B 900 11040(ature.)B 900 10520(spell: levitate)B 900 10260(level: 6 )B 900 10000(sp cost: 10 speed: 1.00)B 900 9740(range: touch duration: standard)B 900 9480(description: Recipient floats several inches above the floor, thus making it impossible to pick up items,)B 900 9220(trigger levers or buttons, or use exits \(including doors and stairs\).)B 900 8700(prayer: protection from poison)B 900 8440(level: 6 )B 900 8180(sp cost: 20 speed: 1.00)B 900 7920(range: touch duration: special)B 900 7660(description: Protects recipient from electricity so well, that they only take 1/2 damage from electrical)B 900 7400(attacks.)B 900 6880(spell: summon water elemental)B 900 6620(level: 6 )B 900 6360(sp cost: 15 speed: 1.00)B 900 6100(range: 1 duration: special)B 900 5840(description: Summons water elemental to fight for you. The water elemental will remain until it is destroyed)B 900 5580(or until you summon another type of elemental or golem.)B 900 5060(Level 7)B 900 4800(=========)B 900 4280(spell: mass confusion)B 900 4020(level: 7 )B 900 3760(sp cost: 20 speed: 0.70)B 900 3500(range: 5 duration: standard)B 900 3240(description: A wave of confusion on a large scale.)B 900 2720(prayer: protection from slow)B 900 2460(level: 7 )B 900 2200(sp cost: 20 speed: 1.00)B 900 1940(range: touch duration: special)B 900 1680(description: Protects recipient from slowness, giving them a +5 bonus to their saving throw against)B 900 1420(slow attacks.)B 900 900(spell: summon air elemental)B 900 640(level: 7 )B EndPage %%Page: ? 7 StartPage 0 F 900 14940(sp cost: 20 speed: 1.00)B 900 14680(range: 1 duration: special)B 900 14420(description: Summons air elemental to fight for you. The air elemental will remain until it is destroyed or)B 900 14160(until you summon another type of elemental or golem.)B 900 13640(Level 8)B 900 13380(=========)B 900 12860(spell: create frost wall)B 900 12600(level: 8 )B 900 12340(sp cost: 8 speed: 1.00)B 900 12080(range: 1 duration: special)B 900 11820(description: Creates a wall of frost lasting \(160 + 10*caster's level\) rounds that does 1 hp of cold)B 900 11560(damage/rnd. Creatures will not walk through this wall.)B 900 11040(prayer: major healing)B 900 10780(level: 8 )B 900 10520(sp cost: 10 speed: 5.00)B 900 10260(range: touch duration: permanent)B 900 10000(description: Restores up to 27 hit points.)B 900 9480(prayer: protection from paralysis)B 900 9220(level: 8 )B 900 8960(sp cost: 20 speed: 1.00)B 900 8700(range: touch duration: special)B 900 8440(description: Protects recipient from electricity, giving them a +5 bonus to their)B 900 8180(saving throw against paralysis attacks.)B 900 7660(spell: summon fire elemental)B 900 7400(level: 8 )B 900 7140(sp cost: 25 speed: 1.00)B 900 6880(range: 1 duration: special)B 900 6620(description: Summons fire elemental to fight for you. The fire elemental will remain until it is destroyed or)B 900 6360(until you summon another type of elemental or golem.)B 900 5840(Level 9)B 900 5580(=========)B 900 5060(prayer: invisible to undead)B 900 4800(level: 9 )B 900 4540(sp cost: 35 speed: 1.00)B 900 4280(range: touch duration: standard)B 900 4020(description: Recipient becomes invisible to undead and remains so until the spell wears off or until the)B 900 3760(recipient attacks a creature.)B 900 3240(prayer: protection from draining)B 900 2980(level: 9 )B 900 2720(sp cost: 25 speed: 1.00)B 900 2460(range: touch duration: special)B 900 2200(description: Protects recipient from undead life drain so well, that they lose life at only 1/2 the speed)B 900 1940(from such life draining attacks.)B 900 1420(Level 10)B 900 1160(=========)B 900 640(spell: cancellation)B EndPage %%Page: ? 8 StartPage 0 F 900 14940(level: 10)B 900 14680(sp cost: 30 speed: 1.00)B 900 14420(range: special duration: permanent)B 900 14160(description: Creates a web of energy which when thrown removes magical bonuses)B 900 13900(from objects \(weapons, armour\) in it's path.)B 900 13380(spell: charging)B 900 13120(level: 10)B 900 12860(sp cost: 200 speed: 2.00)B 900 12600(range: caster duration: permanent)B 900 12340(description: Recharges the wand currently readied by the caster. There is a chance)B 900 12080(that the wand will explode if it is overcharged.)B 900 11560(spell: dimension door)B 900 11300(level: 10)B 900 11040(sp cost: 25 speed: 1.00)B 900 10780(range: 5 duration: caster)B 900 10520(description: Teleports caster several squares, in a direction of)B 900 10260(his choosing.)B 900 9740(prayer: heal)B 900 9480(level: 10)B 900 9220(sp cost: 50 speed: 9.00)B 900 8960(range: touch duration: permanent)B 900 8700(description: Restores all lost hit points; will not cure poison or disease.)B 900 8180(prayer: protection from magic)B 900 7920(level: 10)B 900 7660(sp cost: 30 speed: 3.00)B 900 7400(range: touch duration: special)B 900 7140(description: Protects recipient from magic, giving them a +5 bonus to their saving throw against magical)B 900 6880(attacks.)B 900 6360(Level 13)B 900 6100(=========)B 900 5580(prayer: protection from attack)B 900 5320(level: 13)B 900 5060(sp cost: 50 speed: 5.00)B 900 4800(range: touch duration: special)B 900 4540(description: Protects recipient from physical attack so well, that they only take 1/2 damage from physical)B 900 4280(based attacks.)B 900 3760(Level 15)B 900 3500(=========)B 900 2980(prayer: word of recall)B 900 2720(level: 15)B 900 2460(sp cost: 40 speed: 3.00)B 900 2200(range: self duration: special)B 900 1940(description: Teleports caster back to starting map shortly after casting.)B 900 1420(Level 18)B 900 1160(=========)B 900 640(spell: destruction)B EndPage %%Page: ? 9 StartPage 0 F 900 14940(level: 18)B 900 14680(sp cost: 20 speed: 0.20)B 900 14420(range: special duration: instant)B 900 14160(description: Does 5+Int dmg to every creature on level.)B EndPage %%Trailer EndEnscriptDoc EnscriptJob restore crossfire-1.70.0/doc/spell-docs/Makefile.am0000644000014500000120000000026611731300537015354 00000000000000 EXTRA_DIST = README prayer-list.ps spell-info.ps spell-list.ps \ spell-summary.ps tome-of-magic.ps prayer-list.txt spell-info.txt \ spell-summary.ps tome-of-magic.txt Makefile.in crossfire-1.70.0/doc/spell-docs/spell-list.ps0000644000014500000120000001604511731300537015756 00000000000000%!PS-Adobe-1.0 %%Creator: offa:chrisc (Christopher Carpinello) %%Title: spell-list.txt %%CreationDate: Fri Mar 26 17:01:34 1993 %%DocumentFonts: ZapfChancery-MediumItalic ZapfChancery-MediumItalic % Start of enscript.pro -- prolog for text file translator % Copyright (c) 1984,1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCSID: $Header$ save/EnscriptJob exch def /StartEnscriptDoc{$enscript begin}def /$enscript 50 dict def $enscript begin /EndEnscriptDoc{end}def /S/show load def /X{exch 0 rmoveto S}def /Y{exch 0 exch rmoveto S}def /B{3 1 roll moveto S}def /F{$fd exch get setfont}def /StartPage{/svpg save def .05 dup scale}def /EndPage{svpg restore showpage}def /DoPreFeed{/statusdict where{pop statusdict/prefeed known{statusdict exch/prefeed exch put 0}if}if pop}def /Landscape{90 rotate 0 -15840 translate}def /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine EndPage if printer is not "Classic LW" {/EndPage {svpg restore {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop showpage}def}if }if}def /ISO-Latin-1 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /dotlessi /dieresis/ring /grave /acute /circumflex/tilde /macron /brev /dotaccent /cedilla /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /endash /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def /SetUpFonts {dup/$fd exch array def{ findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding ISO-Latin-1 def /FontName /Null def FontName currentdict definefont end exch scalefont $fd 3 1 roll put}repeat}def /InitGaudy{/TwoColumn exch def /BarLength exch def /ftD /Times-Bold findfont 12 UP scalefont def /ftF /Times-Roman findfont 14 UP scalefont def /ftP /Helvetica-Bold findfont 30 UP scalefont def}def /U{1440 mul}def /UP{U 72 div}def /LB{/pts exch UP def /charcolor exch def /boxcolor exch def /font exch def /label exch def /dy exch def /dx exch def /lly exch def /llx exch def gsave boxcolor setgray llx lly moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill /lines label length def /yp lly dy add dy lines pts mul sub 2 div sub pts .85 mul sub def font setfont charcolor setgray label {dup stringwidth pop 2 div llx dx 2 div add exch sub yp moveto show /yp yp pts sub def}forall grestore}def /Gaudy{/Page exch def /Date exch def /File exch def /Comment exch def .25 U 10.2 U BarLength .1 sub U .25 U [File] ftF .97 0 14 LB .25 U 10.45 U BarLength .1 sub U .25 U [Comment] ftF 1 0 14 LB .25 U 10.2 U 1 U .5 U Date ftD .7 0 12 LB BarLength .75 sub U 10.2 U 1 U .5 U [Page] ftP .7 1 30 LB TwoColumn{BarLength 2 div .19 add U 10.2 U moveto 0 -10 U rlineto stroke}if }def end StartEnscriptDoc % end fixed prolog 1 240 /ZapfChancery-MediumItalic 0 240 /ZapfChancery-MediumItalic 2 SetUpFonts %%EndProlog %%Page: ? 1 StartPage 1 F 432 14860 (Crossfire Spells)B 0 F 432 14340(level 1 )B 432 14080(=========)B 432 13820(armour )B 432 13560(burning hands )B 432 13300(magic bullet )B 432 13040(magic missile )B 432 12780(probe )B 432 12520(slow )B 432 12260(small fireball )B 432 12000(small lightning )B 432 11480(level 2 )B 432 11220(=========)B 432 10960(earth to dust )B 432 10700(paralyze )B 432 10440(poison cloud )B 432 10180(confusion )B 432 9920(strength )B 432 9660(summon golem )B 432 9400(summon pet monster )B 432 8880(level 3 )B 432 8620(=========)B 432 8360(medium fireball )B 432 8100(charisma )B 432 7840(dexterity )B 432 7320(level 4 )B 432 7060(=========)B 432 6800(large bullet )B 432 6540(large lightning )B 432 6280(icestorm )B 432 6020(constitution )B 432 5760(create earth wall )B 432 5500(fear )B 432 4980(level 5 )B 432 4720(=========)B 432 4460(large fireball )B 432 4200(magic mapping )B 432 3940(summon earth elemental )B 432 3420(level 6 )B 432 3160(=========)B 432 2900(levitate )B 432 2640(create bomb )B 432 2380(improved invisibility )B 432 2120(invisible )B 432 1860(summon water elemental )B 432 1600(create fire wall )B 432 1080(level 7 )B 432 820(=========)B 6120 14340(mass confusion )B 6120 14080(summon air elemental )B 6120 13560(level 8 )B 6120 13300(=========)B 6120 13040(summon fire elemental )B 6120 12780(create frost wall )B 6120 12260(level 10 )B 6120 12000(=========)B 6120 11740(dimension door )B 6120 11480(charging )B 6120 11220(cancellation )B 6120 10700(level 18 )B 6120 10440(=========)B 6120 10180(destruction )B EndPage %%Trailer EndEnscriptDoc EnscriptJob restore crossfire-1.70.0/doc/spell-docs/prayer-list.ps0000644000014500000120000001430311731300537016134 00000000000000%!PS-Adobe-1.0 %%Creator: offa:chrisc (Christopher Carpinello) %%Title: prayer-list.txt %%CreationDate: Fri Mar 26 17:01:35 1993 %%DocumentFonts: ZapfChancery-MediumItalic ZapfChancery-MediumItalic % Start of enscript.pro -- prolog for text file translator % Copyright (c) 1984,1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCSID: $Header$ save/EnscriptJob exch def /StartEnscriptDoc{$enscript begin}def /$enscript 50 dict def $enscript begin /EndEnscriptDoc{end}def /S/show load def /X{exch 0 rmoveto S}def /Y{exch 0 exch rmoveto S}def /B{3 1 roll moveto S}def /F{$fd exch get setfont}def /StartPage{/svpg save def .05 dup scale}def /EndPage{svpg restore showpage}def /DoPreFeed{/statusdict where{pop statusdict/prefeed known{statusdict exch/prefeed exch put 0}if}if pop}def /Landscape{90 rotate 0 -15840 translate}def /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine EndPage if printer is not "Classic LW" {/EndPage {svpg restore {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop showpage}def}if }if}def /ISO-Latin-1 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /dotlessi /dieresis/ring /grave /acute /circumflex/tilde /macron /brev /dotaccent /cedilla /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /endash /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def /SetUpFonts {dup/$fd exch array def{ findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding ISO-Latin-1 def /FontName /Null def FontName currentdict definefont end exch scalefont $fd 3 1 roll put}repeat}def /InitGaudy{/TwoColumn exch def /BarLength exch def /ftD /Times-Bold findfont 12 UP scalefont def /ftF /Times-Roman findfont 14 UP scalefont def /ftP /Helvetica-Bold findfont 30 UP scalefont def}def /U{1440 mul}def /UP{U 72 div}def /LB{/pts exch UP def /charcolor exch def /boxcolor exch def /font exch def /label exch def /dy exch def /dx exch def /lly exch def /llx exch def gsave boxcolor setgray llx lly moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill /lines label length def /yp lly dy add dy lines pts mul sub 2 div sub pts .85 mul sub def font setfont charcolor setgray label {dup stringwidth pop 2 div llx dx 2 div add exch sub yp moveto show /yp yp pts sub def}forall grestore}def /Gaudy{/Page exch def /Date exch def /File exch def /Comment exch def .25 U 10.2 U BarLength .1 sub U .25 U [File] ftF .97 0 14 LB .25 U 10.45 U BarLength .1 sub U .25 U [Comment] ftF 1 0 14 LB .25 U 10.2 U 1 U .5 U Date ftD .7 0 12 LB BarLength .75 sub U 10.2 U 1 U .5 U [Page] ftP .7 1 30 LB TwoColumn{BarLength 2 div .19 add U 10.2 U moveto 0 -10 U rlineto stroke}if }def end StartEnscriptDoc % end fixed prolog 1 240 /ZapfChancery-MediumItalic 0 240 /ZapfChancery-MediumItalic 2 SetUpFonts %%EndProlog %%Page: ? 1 StartPage 1 F 432 14860 (Crossfire Prayers)B 0 F 432 14340(level 1 )B 432 14080(=========)B 432 13820(minor healing )B 432 13560(turn undead )B 432 13040(level 2 )B 432 12780(=========)B 432 12520(perceive self )B 432 12000(level 3 )B 432 11740(=========)B 432 11480(protection from cold )B 432 11220(create food )B 432 10700(level 4 )B 432 10440(=========)B 432 10180(medium healing )B 432 9920(holy word )B 432 9660(protection from electricity )B 432 9140(level 5 )B 432 8880(=========)B 432 8620(protection from fire )B 432 8100(level 6 )B 432 7840(=========)B 432 7580(protection from poison )B 432 7060(level 7 )B 432 6800(=========)B 432 6540(protection from slow )B 432 6020(level 8 )B 432 5760(=========)B 432 5500(protection from paralysis )B 432 5240(major healing )B 432 4720(level 9 )B 432 4460(=========)B 432 4200(protection from draining )B 432 3940(invisible to undead )B 432 3420(level 10 )B 432 3160(=========)B 432 2900(protection from magic )B 432 2640(heal )B 432 2120(level 13 )B 432 1860(=========)B 432 1600(protection from attack )B 432 1080(level 15 )B 432 820(=========)B 6120 14340(word of recall )B EndPage %%Trailer EndEnscriptDoc EnscriptJob restore crossfire-1.70.0/doc/spell-docs/spell-summary.ps0000644000014500000120000002712511731300537016501 00000000000000%!PS-Adobe-1.0 %%Creator: offa:chrisc (Christopher Carpinello) %%Title: spell-summary.txt %%CreationDate: Fri Mar 26 17:01:33 1993 %%DocumentFonts: Courier-Bold Courier % Start of enscript.pro -- prolog for text file translator % Copyright (c) 1984,1985,1987 Adobe Systems Incorporated. All Rights Reserved. % GOVERNMENT END USERS: See Notice file in TranScript library directory % -- probably /usr/lib/ps/Notice % RCSID: $Header$ save/EnscriptJob exch def /StartEnscriptDoc{$enscript begin}def /$enscript 50 dict def $enscript begin /EndEnscriptDoc{end}def /S/show load def /X{exch 0 rmoveto S}def /Y{exch 0 exch rmoveto S}def /B{3 1 roll moveto S}def /F{$fd exch get setfont}def /StartPage{/svpg save def .05 dup scale}def /EndPage{svpg restore showpage}def /DoPreFeed{/statusdict where{pop statusdict/prefeed known{statusdict exch/prefeed exch put 0}if}if pop}def /Landscape{90 rotate 0 -15840 translate}def /SetStTime{statusdict /manualfeedtimeout 120 put} def /SetStatus{statusdict /manualfeed true put statusdict /product get (LaserWriter) eq {version (23.0) eq % Don't redefine EndPage if printer is not "Classic LW" {/EndPage {svpg restore {statusdict /printerstatus get exec 16#22000000 and 0 eq{exit}if}loop showpage}def}if }if}def /ISO-Latin-1 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /dotlessi /dieresis/ring /grave /acute /circumflex/tilde /macron /brev /dotaccent /cedilla /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /endash /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def /SetUpFonts {dup/$fd exch array def{ findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding ISO-Latin-1 def /FontName /Null def FontName currentdict definefont end exch scalefont $fd 3 1 roll put}repeat}def /InitGaudy{/TwoColumn exch def /BarLength exch def /ftD /Times-Bold findfont 12 UP scalefont def /ftF /Times-Roman findfont 14 UP scalefont def /ftP /Helvetica-Bold findfont 30 UP scalefont def}def /U{1440 mul}def /UP{U 72 div}def /LB{/pts exch UP def /charcolor exch def /boxcolor exch def /font exch def /label exch def /dy exch def /dx exch def /lly exch def /llx exch def gsave boxcolor setgray llx lly moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill /lines label length def /yp lly dy add dy lines pts mul sub 2 div sub pts .85 mul sub def font setfont charcolor setgray label {dup stringwidth pop 2 div llx dx 2 div add exch sub yp moveto show /yp yp pts sub def}forall grestore}def /Gaudy{/Page exch def /Date exch def /File exch def /Comment exch def .25 U 10.2 U BarLength .1 sub U .25 U [File] ftF .97 0 14 LB .25 U 10.45 U BarLength .1 sub U .25 U [Comment] ftF 1 0 14 LB .25 U 10.2 U 1 U .5 U Date ftD .7 0 12 LB BarLength .75 sub U 10.2 U 1 U .5 U [Page] ftP .7 1 30 LB TwoColumn{BarLength 2 div .19 add U 10.2 U moveto 0 -10 U rlineto stroke}if }def end StartEnscriptDoc % end fixed prolog 1 160 /Courier-Bold 0 160 /Courier 2 SetUpFonts %%EndProlog %%Page: ? 1 StartPage 0 F 900 14940(spell/prayer lvl t sp speed range duration short description)B 900 14760(=======================================================================================================)B 900 14580(armour 1 W 8 2.00 touch special Create a magical protective field.)B 900 14400(burning hands 1 W 5 0.50 5 instant Creates a cone of fire.)B 900 14220(cancellation 10 W 30 1.00 special permanent Removes magic from items.)B 900 14040(charging 10 W 200 2.00 caster permanent Recharges a wand.)B 900 13860(charisma 3 W 12 2.00 touch special Temporarily increases a player's Charisma.)B 900 13680(confusion 2 W 10 0.50 touch standard Confuses the recipient.)B 900 13500(constitution 4 W 15 2.00 touch special Temporarily increases a player's Constitution)B 900 13320(create bomb 6 W 20 1.00 1 special Creates a short fuse bomb.)B 900 13140(create earth wall 4 W 6 1.00 1 permanent Creates a destructable earthen wall.)B 900 12960(create fire wall 6 W 5 1.00 1 special Creates a wall of fire.)B 900 12780(create food 3 P 5 2.00 1 permanent Creates a food.)B 900 12600(create frost wall 8 W 8 1.00 1 special Creates a wall of frost.)B 900 12420(destruction 18 W 20 0.20 special instant Does 5+Int dmg to every creature on level.)B 900 12240(dexterity 3 W 12 2.00 touch special Temporarily increases a player's Dexterity.)B 900 12060(dimension door 10 W 25 1.00 5 caster Teleports caster several squares.)B 900 11880(earth to dust 2 W 5 1.00 special permanent Destroys earthwalls in a radius around caster.)B 900 11700(fear 4 W 6 0.20 4 standard Invokes fear within individuals.)B 900 11520(heal 10 P 50 9.00 touch permanent Restores all lost hit points.)B 900 11340(holy word 4 P 6 0.30 special instant As turn undead, but causes minor damage.)B 900 11160(icestorm 4 W 7 0.50 6 instant Creates a cone of frost.)B 900 10980(improved invisibility 6 W 15 1.00 touch standard Renders the caster invisible for a short time.)B 900 10800(invisible 6 W 25 0.50 touch standard Recipient becomes invisible.)B 900 10620(invisible to undead 9 P 35 1.00 touch standard Recipient becomes invisible to undead.)B 900 10440(large bullet 4 W 3 0.50 special instant Creates and hurls large magical bullet.)B 900 10260(large fireball 5 W 13 1.00 special 14 Creates a large fireball.)B 900 10080(large lightning 4 W 8 0.60 24 16 Creates a single bolt of lightning.)B 900 9900(levitate 6 W 10 1.00 touch standard Recipient levitates.)B 900 9720(magic bullet 1 W 1 0.30 special instant Creates and hurls magical bullet.)B 900 9540(magic mapping 5 W 15 1.00 self instant Shows complete map of level.)B 900 9360(magic missile 1 W 2 0.50 special instant Creates magic homing projectile.)B 900 9180(major healing 8 P 10 5.00 touch permanent Restores 3d8+3 hit points.)B 900 9000(mass confusion 7 W 20 0.70 5 standard Mass confusion.)B 900 8820(medium fireball 3 W 8 0.70 special 10 Creates a medium fireball.)B 900 8640(medium healing 4 P 7 3.00 touch permanent Restores 3d6+3 hit points.)B 900 8460(minor healing 1 P 4 2.00 touch permanent Restores d8 hit points.)B 900 8280(paralyze 2 W 5 0.50 5 standard Paralyzes affected creatures.)B 900 8100(perceive self 2 P 5 0.00 self instant Describes current protections of caster.)B 900 7920(poison cloud 2 W 5 1.00 special 10 Creates a cloud of poisonous gas.)B 900 7740(probe 1 W 3 0.20 5 instant Describes powerfulness/condition of an object.)B 900 7560(protection from attack 13 P 50 5.00 touch special Protects recipient from physical attack.)B 900 7380(protection from cold 3 P 15 1.00 touch special Protects recipient from cold.)B 900 7200(protection from draining 9 P 25 1.00 touch special Protects recipient from undead life drain.)B 900 7020(protection from electricity 4 P 15 1.00 touch special Protects recipient from electricity.)B 900 6840(protection from fire 5 P 20 1.00 touch special Protects recipient from fire.)B 900 6660(protection from magic 10 P 30 3.00 touch special Protects recipient from magic.)B 900 6480(protection from paralysis 8 P 20 1.00 touch special Protects recipient from paralysis..)B 900 6300(protection from poison 6 P 20 1.00 touch special Protects recipient from electricity.)B 900 6120(protection from slow 7 P 20 1.00 touch special Protects recipient from slow.)B 900 5940(slow 1 W 5 0.30 5 standard Causes affected creatures move extremely slow.)B 900 5760(small fireball 1 W 5 0.50 special 6 Creates a small fireball.)B 900 5580(small lightning 1 W 5 0.30 12 8 Creates a single bolt of lightning.)B 900 5400(strength 2 W 10 2.00 touch special Temporarily increases a player's Strength)B 900 5220(summon air elemental 7 W 20 1.00 1 special Summons air elemental to fight for you.)B 900 5040(summon earth elemental 5 W 15 1.00 1 special Summons earth elemental to fight for you.)B 900 4860(summon fire elemental 8 W 25 1.00 1 special Summons fire elemental to fight for you.)B 900 4680(summon golem 2 W 5 1.00 1 special Summons golem to fight for you.)B 900 4500(summon pet monster 2 W 5 1.00 1 special Summons up to 5 friendly monsters)B 900 4320(summon water elemental 6 W 15 1.00 1 special Summons water elemental to fight for you.)B 900 4140(turn undead 1 P 2 0.10 special standard Affects undead as fear spell.)B 900 3960(word of recall 15 P 40 3.00 self special Transports caster back to starting map)B EndPage %%Trailer EndEnscriptDoc EnscriptJob restore crossfire-1.70.0/doc/spell-docs/README0000644000014500000120000000263311731300537014200 00000000000000FILES ===== spell-info.* - basic spell terminology spell-list.* - list of wizard spells prayer-list.* - list of priest spells spell-summary.* - short description of spell effects tome-of-magic.* - detailed description of spell effects "txt" (ascii) and "ps" (PostScript) versions of each file should have been included within this archive. AUTHOR ====== This archive is maintained by chrisc@cs.odu.edu (Chris Carpinello) - please mail all additions, corrections, comments, and suggestions to this address. Many thanks to rgg@aaii.oz.au (Rupert Goldie) for his contribution of spell descriptions. NOTES ===== This is the first release of the spell documentation. Please send me your comments and tell me what you think! At the moment, the postscript version of the files are only enscripted and look rather bland. If you know of a relatively painless way of maintaining ascii text and postscript versions, I'd love to hear from you. Announcements of revisions will be made to the crossfire mailing list. This update is dated March 26, 1993. If you create new spells for Crossfire, please send me a description of the spell (so I don't have to trudge through the code to figure out the effects). Thanks! Look for further development from the ODU Crossfire Development Team soon! (falken@cs.odu.edu) Note by Frank: This documentation was made for 0.89.2, and is somewhat outdated for this release. crossfire-1.70.0/doc/spell-docs/tome-of-magic.txt0000644000014500000120000003473711731300537016517 00000000000000Level 1 ========= spell: armour level: 1 sp cost: 8 speed: 2.00 range: touch duration: special description: Armour creates a magical field around you which gives you an ac level of 2 + (level+2)/3, with a maximum of six. This is not additive, so if you are wearing plate mail (ac level of 5) and your armour spell gives you an ac level of 4, you receive no benefit. Armour is additive with all the supplementry forms of armour (shields, helmets, bracers) however. The duration is semi-permanent, which means that it lasts until the next semi-permanent spell effect is cast upon the character. spell: burning hands level: 1 sp cost: 5 speed: 0.50 range: 5 duration: instant description: Shoots forth a cone of fire with does 8 hp of fire damage/rnd to creatures within the cone. spell: magic bullet level: 1 sp cost: 1 speed: 0.30 range: special duration: instant description: Creates and hurls magical bullet in a single direction which does 6 points of physical damage upon impact. spell: magic missile level: 1 sp cost: 2 speed: 0.50 range: special duration: instant description: Creates a magical projectile which homes in on enemies causing 4 hp of magical damage upon impact. prayer: minor healing level: 1 sp cost: 4 speed: 2.00 range: touch duration: permanent description: Restores up to 8 hit points. spell: probe level: 1 sp cost: 3 speed: 0.20 range: 5 duration: instant description: Describes an object with regard to power versus your current level and also describes the current physical condition of the object (excellent shape, weak). spell: slow level: 1 sp cost: 5 speed: 0.30 range: 5 duration: standard description: Causes affected creatures move extremely slow (speed of 0.05). spell: small fireball level: 1 sp cost: 5 speed: 0.50 range: special duration: 6 description: Creates a ball of fire which when thrown and detonated does 8 hp of fire damage/rnd. spell: small lightning level: 1 sp cost: 5 speed: 0.30 range: 12 duration: 8 description: Creates a single bolt of lightning which does 3 hp electrical damage/rnd. Lightning will reflect off of walls. prayer: turn undead level: 1 sp cost: 2 speed: 0.10 range: special duration: standard description: A cone of fear for undead with a range of (3 + Wisdom bonus) squares. Level 2 ========= spell: confusion level: 2 sp cost: 10 speed: 0.50 range: touch duration: standard description: Confuses the recipient such that he has problems wielding his weapon and walking straight. spell: earth to dust level: 2 sp cost: 5 speed: 1.00 range: special duration: permanent description: Destroys earth walls in a radius of (level/3) + 1 sqaures around the caster. spell: paralyze level: 2 sp cost: 5 speed: 0.50 range: 5 duration: standard description: Paralyzes affected creatures. prayer: perceive self level: 2 sp cost: 5 speed: 0.00 range: self duration: instant description: Describes the caster in terms of armour, special abilities (reflect missiles, reflect spells, ...), and current protections and immunities. spell: poison cloud level: 2 sp cost: 5 speed: 1.00 range: special duration: 10 description: Creates a gaseous ball that explodes on impact to form a cloud of poisonous gas which does 1 hp of poison damage/rnd and posions those exposed to the gas such that they continue to take damage (due to poison in their system) after they have emerged from the gas cloud. spell: strength level: 2 sp cost: 10 speed: 2.00 range: touch duration: special description: Temporarily increases the recipient's Strength (Str.) by at least one point and boots it by one point for every two points their strength is less than 20. The spell lasts for the standard duration or until another change attribute or protection spell is cast upon the recipient. spell: summon golem level: 2 sp cost: 5 speed: 1.00 range: 1 duration: special description: Summons golem to fight for you. The golem will remain until it is destroyed or until you summon a type of elemental. spell: summon pet monster level: 2 sp cost: 5 speed: 1.00 range: 1 duration: special description: Summons up to five friendly monsters to fight for you. Monsters remain your friend until either they or you are killed. It is rumored that some summoned creatures temporarily increase the summoner's sp. The types of monsters summoned are: character class possible monsters ---------------------------------------------------------------- mage bat, spider, stalker, beholder, dark elf priest bee, killer bee, devil, angel, panther all others bird, pixie, skeleton, skull, vampire Level 3 ========= spell: charisma level: 3 sp cost: 12 speed: 2.00 range: touch duration: special description: Temporarily increases the recipient's Charisma (Cha.) by at least one point and boots it by one point for every two points their charisma is less than 20. The spell lasts for the standard duration or until another change attribute or protection spell is cast upon the recipient. prayer: create food level: 3 sp cost: 5 speed: 2.00 range: 1 duration: permanent description: Creates one food in a space adjacent to the caster. spell: dexterity level: 3 sp cost: 12 speed: 2.00 range: touch duration: special description: Temporarily increases the recipient's Dexterity (Dex.) by at least one point and boots it by one point for every two points their dexterity is less than 20. The spell lasts for the standard duration or until another change attribute or protection spell is cast upon the recipient. spell: medium fireball level: 3 sp cost: 8 speed: 0.70 range: special duration: 10 description: Creates a ball of fire which when thrown and detonated does 8 hp of fire damage/rnd. prayer: protection from cold level: 3 sp cost: 15 speed: 1.00 range: touch duration: special description: Protects recipient from cold so well, that they only take 1/2 damage from cold based attacks. Level 4 ========= spell: constitution level: 4 sp cost: 15 speed: 2.00 range: touch duration: special description: Temporarily increases the recipient's Constitution (Con.) by at least one point and boots it by one point for every two points their constitution is less than 20. The spell lasts for the standard duration or until another change attribute or protection spell is cast upon the recipient. spell: create earth wall level: 4 sp cost: 6 speed: 1.00 range: 1 duration: permanent description: Creates a destructable earthen wall. spell: fear level: 4 sp cost: 6 speed: 0.20 range: 4 duration: standard description: Invokes such fear within individuals that they run away at top speed from you! prayer: holy word level: 4 sp cost: 6 speed: 0.30 range: special duration: instant description: This spell is an improvement of Turn Undead which not only turns undead, but it will also causes 3 hp/rnd. The range of the cone covers (2 + Wisdom bonus) squares. spell: icestorm level: 4 sp cost: 7 speed: 0.50 range: 6 duration: instant description: Creates a cone of frost which does 4 hp of cold damage/rnd. spell: large bullet level: 4 sp cost: 3 speed: 0.50 range: special duration: instant description: Creates and hurls large magical bullet in a single direction which does 25 points of physical damage upon impact. spell: large lightning level: 4 sp cost: 8 speed: 0.60 range: 24 duration: 16 description: Creates a single bolt of lightning which does 3 hp electrical damage/rnd. Lightning will reflect off of walls. prayer: medium healing level: 4 sp cost: 7 speed: 3.00 range: touch duration: permanent description: Restores up to 21 hit points. prayer: protection from electricity level: 4 sp cost: 15 speed: 1.00 range: touch duration: special description: Protects recipient from electricity so well, that they only take 1/2 damage from electrical attacks. Level 5 ========= spell: large fireball level: 5 sp cost: 13 speed: 1.00 range: special duration: 14 description: Creates a ball of fire which when thrown and detonated does 8 hp of fire damage/rnd. spell: magic mapping level: 5 sp cost: 15 speed: 1.00 range: self duration: instant description: Shows complete map of level. prayer: protection from fire level: 5 sp cost: 20 speed: 1.00 range: touch duration: special description: Protects recipient from fire so well, that they only take 1/2 damage from fire attacks. spell: summon earth elemental level: 5 sp cost: 15 speed: 1.00 range: 1 duration: special description: Summons earth elemental to fight for you. The earth elemental will remain until it is destroyed or until you summon another type of elemental or golem. Level 6 ========= spell: create bomb level: 6 sp cost: 20 speed: 1.00 range: 1 duration: special description: Creates a short fuse bomb which detonates 8 rounds after creation in a 4 square radius doing 5 hp of physical damage. Shards of the bomb project forth until they strike a barrier. spell: create fire wall level: 6 sp cost: 5 speed: 1.00 range: 1 duration: special description: Creates a wall of fire lasting (200 + 10*caster's level) rounds that does 1 hp fire damage/rnd. Creatures will not walk through this wall. spell: improved invisibility level: 6 sp cost: 15 speed: 1.00 range: touch duration: standard description: This spell is an improvement of Invisibility in that the recipient will stay invisible even if he attacks something. The spell can be cast multiple times to increase the duration, but the duration will not exceed 1000 rounds. spell: invisible level: 6 sp cost: 25 speed: 0.50 range: touch duration: standard description: Recipient becomes invisible and remains so until the spell wears off or until the recipient attacks a creature. spell: levitate level: 6 sp cost: 10 speed: 1.00 range: touch duration: standard description: Recipient floats several inches above the floor, thus making it impossible to pick up items, trigger levers or buttons, or use exits (including doors and stairs). prayer: protection from poison level: 6 sp cost: 20 speed: 1.00 range: touch duration: special description: Protects recipient from electricity so well, that they only take 1/2 damage from electrical attacks. spell: summon water elemental level: 6 sp cost: 15 speed: 1.00 range: 1 duration: special description: Summons water elemental to fight for you. The water elemental will remain until it is destroyed or until you summon another type of elemental or golem. Level 7 ========= spell: mass confusion level: 7 sp cost: 20 speed: 0.70 range: 5 duration: standard description: A wave of confusion on a large scale. prayer: protection from slow level: 7 sp cost: 20 speed: 1.00 range: touch duration: special description: Protects recipient from slowness, giving them a +5 bonus to their saving throw against slow attacks. spell: summon air elemental level: 7 sp cost: 20 speed: 1.00 range: 1 duration: special description: Summons air elemental to fight for you. The air elemental will remain until it is destroyed or until you summon another type of elemental or golem. Level 8 ========= spell: create frost wall level: 8 sp cost: 8 speed: 1.00 range: 1 duration: special description: Creates a wall of frost lasting (160 + 10*caster's level) rounds that does 1 hp of cold damage/rnd. Creatures will not walk through this wall. prayer: major healing level: 8 sp cost: 10 speed: 5.00 range: touch duration: permanent description: Restores up to 27 hit points. prayer: protection from paralysis level: 8 sp cost: 20 speed: 1.00 range: touch duration: special description: Protects recipient from electricity, giving them a +5 bonus to their saving throw against paralysis attacks. spell: summon fire elemental level: 8 sp cost: 25 speed: 1.00 range: 1 duration: special description: Summons fire elemental to fight for you. The fire elemental will remain until it is destroyed or until you summon another type of elemental or golem. Level 9 ========= prayer: invisible to undead level: 9 sp cost: 35 speed: 1.00 range: touch duration: standard description: Recipient becomes invisible to undead and remains so until the spell wears off or until the recipient attacks a creature. prayer: protection from draining level: 9 sp cost: 25 speed: 1.00 range: touch duration: special description: Protects recipient from undead life drain so well, that they lose life at only 1/2 the speed from such life draining attacks. Level 10 ========= spell: cancellation level: 10 sp cost: 30 speed: 1.00 range: special duration: permanent description: Creates a web of energy which when thrown removes magical bonuses from objects (weapons, armour) in it's path. spell: charging level: 10 sp cost: 200 speed: 2.00 range: caster duration: permanent description: Recharges the wand currently readied by the caster. There is a chance that the wand will explode if it is overcharged. spell: dimension door level: 10 sp cost: 25 speed: 1.00 range: 5 duration: caster description: Teleports caster several squares, in a direction of his choosing. prayer: heal level: 10 sp cost: 50 speed: 9.00 range: touch duration: permanent description: Restores all lost hit points; will not cure poison or disease. prayer: protection from magic level: 10 sp cost: 30 speed: 3.00 range: touch duration: special description: Protects recipient from magic, giving them a +5 bonus to their saving throw against magical attacks. Level 13 ========= prayer: protection from attack level: 13 sp cost: 50 speed: 5.00 range: touch duration: special description: Protects recipient from physical attack so well, that they only take 1/2 damage from physical based attacks. Level 15 ========= prayer: word of recall level: 15 sp cost: 40 speed: 3.00 range: self duration: special description: Teleports caster back to starting map shortly after casting. Level 18 ========= spell: destruction level: 18 sp cost: 20 speed: 0.20 range: special duration: instant description: Does 5+Int dmg to every creature on level. crossfire-1.70.0/doc/skills.doc0000644000014500000120000004454711731300542013251 00000000000000 SKILLS/EXPERIENCE DOCUMENTATION for PLAYERS. -------------------------------------------- - Summary - 0. Description of system 1. Using the new skills system a. new player commands b. learning a new skill c. about experience and skills d. starting skills by player profession 2. Appendices a. skills descriptions b. how stats are related to skills/experience c. Default parameters for skills d. Theory of Experience Gain 0.DESCRIPTION OF SKILLS/EXPERIENCE SYSTEM --------------------------------------- When crossfire is compiled with the ALLOW_SKILLS flag defined (in include/config.h) the new skills/experience system is enabled. Under this system the flow of play changes dramatically. Instead of gaining experience for basically just killing monsters (and disarming traps) players will now gain a variety of experience through the use of skills. Some skills replicate old functions in the game (cf. melee weapons skill, missile weapon skill) while others add new functionality (cf stealing, hiding, etc). One important aspect of this new system is the way in which experience is gained -- basically it is the philosophy that "you are what you do". A player who kills monsters with spells gains experience in casting destructive spells. A player who steals from creatures often will get better at stealing, and so on. The player's aptitude (eg stats) will influence the amount of experience gained. The new skills/experience system *is* compatible with older character files. See the skills_developers.doc for a more technical discussion of the skills/experience system. 1.USING THE NEW SKILLS SYSTEM --------------------------- a. New player commands Two new commands now exist in CF through which skills are utilized: 'skills' -- this command lists all the player's current known skills, their level of use and the associated experience category of each skill. 'use_skill ' -- this command changes the player's current readied skill. Generally, a player will use a skill by first readying the right one, with the 'use_skill' command and then making a ranged "attack" to activate the skill. Using most skills is just like firing a wand or a bow. In a few cases however, a skill can be used just by having it "readied". An example of this is the "bargaining" skill. To change to a new skill, a player will have to using the 'use_skill' command, but not always. The use of several common items will auto- matically change the player's current skill. Examples of this include readying a bow (which will cause the code to make the player's current skill "missile_weapons") or readying a melee weapon (current skill auto-matically becomes "melee weapons"). Also, some player actions can cause a change in the current skill. Running into a monster while you have a readied weapon in your inventory causes the code to auto- matically make our current skill "melee weapons". Casting a spell will cause the code to switch the current skill to "spellcasting" or "praying" (as appropriate to the spell type). It is not possible to use more than one skill at a time. b. Acquiring skills Skills may be gained in 2 ways. In the first, new skills may "learned". This is done by reading a "skill scroll" and the process is very similar to learning a spell. There is one big difference - all attempts to learn skills are successful. Note that skill scrolls are rarely named exactly for the skill they grant (ex "scroll of piety" is the skillscroll that grants the skill "praying" to the reader). The acquisition of a "skill tool" will also allow the player to use a new skill. An example of a skill tool is "lockpicks" (which allow the player to pick door locks). The player mearly applies the skill tool in order to gain use of the new skill. If the tool is unapplied, the player looses the use of the skill associated with the tool. == AVAILABLE SKILL TOOLS == Skill tool Skill gained ---------- ------------ Lockpicks Lockpicking Holy Symbol Praying Talisman Spellcasting Writing Pen Inscription After a new skill is gained (either learned or if player has an applied skill tool) it will appear on the player's skill roster (use the 'skills' command to view its status). If the new skill is related to a particular kind of experience, it will automatically be gained at the player's current level of experience in the appropriate category. c. About experience and skills Successful use of many skills will result in the player gaining experience. No special commands from the player are needed for this to occur. All gained experience is modified by the relevant stats for that skill and then the appropriate experience category automatically updated as needed. All players may gain experience in any of the experience categories irrespective of player class or stats. All new players start with zero experience in all experience categories. There are no inherent restrictions on player skill use--any player may use any acquired skill. How well a player uses a skill is related to their stats and their appropriate level of experience. For most skills both the chance of success and effect of the skill are tied to the player level of experience (eg 'melee weapons', 'stealing', 'writing', 'hiding', etc). But there are a smaller number of skills whose use will automatically be 'successful' with every attempt: (eg 'use magic item', 'bargaining', all miscellaneous skills and the 'identification skills': smithery, woodsman, alchemy, etc.), The default array of stats for associated skills is in Appendix B. d. starting skills by player profession All players start with the skills "melee weapons", "find traps", "use magic item" and "disarm traps". Under the current release of the skills system, further skills are parceled out as follows: Player profession Additional skills ----------------- ----------------- Barbarian Missile Weapons, Woodsman, Mountaineer Cleric Missile Weapons, Praying (holy symbol), Oratory Dwarf Missile Weapons, Smithery Elf Missile Weapons, Spellcasting (talisman), Bowyer, Woodsman Fireborn Missile Weapons, Spellcasting, Praying, Flame touch Human Missile Weapons, 2 Random skills Mage Missile Weapons, Spellcasting Monk Missile Weapons, Meditation, Karate, Sense Magic Ninja Missile Weapons, Jumping, Hiding Priest Praying, Spellcasting (talisman) Quetzalcoatl Missile Weapons, Spellcasting, Clawing Swashbuckler Missile Weapons, Stealing, Singing Thief Missile Weapons, Stealing, Lockpicking (lockpicks) Viking Missile Weapons, Bargaining Warrior Missile Weapons, Punching, Oratory Wizard Spellcasting, Praying (holy symbol) Wraith Spellcasting, Praying (holy symbol) 2.APPENDICES ---------- A. skills descriptions The following is the current (8/15/95) roster of skills and the description for each. Use the command 'crossfire -m5' to see the array of skills and experience in your version of crossfire. (Note: you need to have compilied with the DUMP_SWITCHES and ALLOW_SKILLS flags for this to work!) + -denotes a skill which monsters/NPC's may also use. Skill description ----- ----------- alchemy User can identify potions, containers, and amulets. (One day I would like to see this skill allow mixing of potions -b.t.). bargaining While this skill is readied the user has added Cha for purposes of purchase and selling of items only. Cha is never allowed to exceed 30. bowyer User can identify missile weapons and missiles. + clawing User can make a "bare-handed attack". Damage is based on the user's Str and level. find traps User can search (more effectively) for traps. Not a 'passive' skill, it is applied in order to gain the advantage in discovering traps. + flame touch User can make a "bare-handed attack". Damage is based on the user's Str and level. This is the default hand-to-hand fighting skill for the fireborn character class. + hide User enjoys limited form of invisibility. If they attack or move too much they become visible. Right now it is possible to hidden while next to hostile monsters. Not a reasonable feature! jeweler User can ident gems and rings that they hold. + jumping User can 'skip' over 1-2 spaces in a selected direction. Distance depends on weight carried, Str and Dex of the user. This skill may also be used as an attack. + karate User can make a "bare-handed attack". Damage is based on the user's Str and level. This attack is the fastest and (at higher levels) most deadly of the "hand to hand" attacks available. literacy User can ident books and scrolls that they hold. Since scrolls are currently always identified, this is not the greatest of skills. + lockpicking User may 'pick locks' (open doors). User needs to have readied some 'lockpicks' to use this skill. meditation Player can regain mana/hp at an accelerated rate. Player must first strip off encumbering armour however. This skill is only available to the 'monk' character class. melee weapons User may use hand-held weapons (eg swords, spears, mace, etc). One day this skill could be made to allow the player to make special attacks with various weapons. (For example, a disarming attack with Sai). missile weapons The user is allowed to make attacks with ranged weapons (eg bow, crossbow). mountaineer While the skill is readied, the possessor will move faster through "hilly" terrain (hills, mountains, etc.) oratory User may 'recruit' followers. Recruitees must be of lower level, and unaggressive to start. Use of this skill may anger the audience. Also, 'special' monsters are immune to recruitment. Success depends on User Cha and level. praying User is allowed to cast "cleric" spells. In addition, this skill may be used to accelerate the accumulation of grace. This skill may be either 'learned' or acquired through the use of a "holy symbol". + punching User can make a "bare-handed attack". Damage is based on the user's Str and level. This is the most feeble of the hth attacks. remove_traps User may remove previously discovered traps. sense curse User may discover whether items that he holds are 'cursed'. Controversial skill, may go away in later versions. sense magic User may discover whether items that he holds are 'magic'. Controversial skill, may go away in later versions. set traps Unimplemented. singing User may pacify hostile monsters with this skill. Certain kinds of monsters are immune. Success depends on user level and Cha. smithery User may ident arms and armour that they hold. Right now this is a powerful skill, and I am considering breaking it up into 2 ident skills in the future. spellcasting User is allowed to cast "wizard" spells. This skill may be acquired either through the use of a talisman or learned via a skill scroll. + stealing User can take items from the inventory of other monsters. thaumagragist User can ident rods, wands and horns that they are holding. throwing Unimplemented. use magic item User can use magic items like rods/wands/horns. Note that by default, you do not gain experience with this skill, and thus, you don't get experience for using rods/wands/horns to kill monsters. woodsman While the skill is readied, the possessor will move faster through "wooded" terrain (forest, grasslands, brush, jungle, etc.) writing User may rewrite spell scrolls with a previously known spell. Sp, time and an old scroll are needed. Backfire effects are possible. Only available as a 'writing pen'. b. how stats are related to skills/experience Table of how experience is modified by the the stats associated with a skill. Each skill which may 'generate' experience (the "associated skills") have a number of stats which are associated with them. Each time experience is gained by the player, the base value is modified according to the value of the player's stats associated with the skill in use. The effect of the modification is shown below (wherein all the associated stats have been taken as an average). Average of Base exp | Average of Base Exp assoc. stats multiplier| assoc. stats multiplier ------------- ----------|------------- ---------- 1 0.00 | 16 1.05 2 0.01 | 17 1.10 3 0.03 | 18 1.15 4 0.05 | 19 1.2 5 0.20 | 20 1.3 6 0.35 | 21 1.4 7 0.5 | 22 1.5 8 0.65 | 23 1.6 9 0.7 | 24 1.7 10 0.75 | 25 2.0 11 0.8 | 26 2.2 12 0.85 | 27 2.4 13 0.9 | 28 2.6 14 0.95 | 29 2.8 15 1.0 | 30 3.0 c. Default parameters for skills Table of stats associated w/ each skill. Miscellaneous skills never have any stats related to them. This is the default table. Your release of CF may have difference bindings between experience categories (ExpCat) and relevant stats may differ. Use the -m5 flag to investigate this for your version of CF. sk# Skill name ExpCat Time Base xlvl Stat1 Stat2 Stat3 --- ---------- ------ ---- ---- ---- ----- ----- ----- 0- stealing agility 0 25 2.5 Dex Int --- 1- lockpicking agility 0 10 0.5 Dex Int --- 2- hiding agility 0 5 1.5 Dex Int --- 3- smithery mental 5 1 0.5 Int Dex --- 4- bowyer mental 5 1 0.5 Int Dex --- 5- jewelry mental 5 10 1 Int Dex --- 6- alchemy mental 5 100 1 Int Dex --- 7- thaumaturgy mental 5 10 0.75 Int Dex --- 8- literacy mental 5 100 1.5 Int Dex --- 9- bargaining NONE 0 0 0 --- --- --- 10- jumping physique 0 0 2.5 Str Dex --- 11- sense magic magic 0 1 0 Pow Int --- 12- oratory personality 1 1 0.5 Cha Int --- 13- singing personality 1 1 0.5 Cha Int --- 14- sense curse wisdom 0 1 0 Pow Wis --- 15- find traps mental 0 3 2 Int Dex --- 16- meditation NONE 10 0 0 --- --- --- 17- punching physique 0 0 0 Str Dex --- 18- flame touch physique 0 0 0 Str Dex Int 19- karate physique 0 0 0 Str Dex --- 20- mountaineer NONE 0 0 0 --- --- --- 21- woodsman mental 0 1 0.5 Int Dex --- 22- inscription magic 0 1 5 Pow Int --- 23- melee weapons physique 0 1 0 Str Dex --- 24- missile weapons physique 0 1 0 Str Dex --- 25- throwing physique 0 1 0 Str Dex --- 26- spellcasting magic 0 0 0 Pow Int --- 27- disarm traps agility 0 10 0.5 Dex Int Str 28- set traps mental 5 3 2 Int Dex Str 29- use magic item NONE 0 0 0 --- --- --- 30- praying wisdom 0 0 0 Wis Pow --- 31- clawing physique 0 0 0 Str Dex --- In the above table, "skill name" refers to the name of the skill as used by the player, "expcat" refers to the name of the assoc- iated experience category, "time" is the number of 'ticks' re- quired to perform the skill, "base" is the base amount of exp given for successful use of the skill, "xlvl" is the level multi- plier to the amount of experience gained, and "stat1, stat2, stat3" are the associated stats for the skill. The values of these stats will be used to reference a multiplier (see preceding table) to the amount of gained experience. d. Theory of Experience Gain [excerpted from the code in skill_util.c, as if you can't tell :) ] /* calc_skill_exp() - calculates amount of experience can be gained for * successful use of a skill and returns value of the experience gain. * Here we take the view that a player must 'overcome an opponent' * in order to gain experience. Examples include foes killed combat, * finding/disarming a trap, stealing from some being, etc. * The gained experience is based primarily on the difference in levels, * exp point value of vanquished foe, the relevant stats of the skill being * used and modifications in the skills[] table. * * For now, monsters and players will be treated differently. Below I give * the algorithm for *PLAYER* experience gain. Monster exp gain is simpler. * Monsters just get 10% of the exp of the opponent. * * Example: the basic exp gain for player 'who' how "vanquished" opponent * 'op' using skill 'sk' is: * * EXP GAIN = (op->exp + skills[sk].bexp) * (1 + lvl_mult) * stat_mult * * where lvl_mult is * * for(pl->level <= op->level):: * lvl_mult = skills[sk].lexp * (op->level - pl->level) * for(pl->level > op->level):: * lvl_mult = (op_lvl/pl_lvl) - 1; * * and stat_mult is taken from stat_exp_mult[] table above. * * Coded by b.t. thomas@astro.psu.edu */ crossfire-1.70.0/doc/handbook.ps0000644000014500000120000642667611731300542013427 00000000000000%!PS-Adobe-2.0 %%Creator: dvips(k) 5.95b Copyright 2005 Radical Eye Software %%Title: handbook.dvi %%Pages: 51 %%PageOrder: Ascend %%BoundingBox: 0 0 595 842 %%DocumentFonts: CMSY10 CMR6 CMR7 CMMI12 CMR12 CMMI8 CMMI10 CMR8 CMSY8 %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o ../handbook.ps handbook.dvi %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2008.02.09:1559 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro 0 0 %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def @MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N /setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B /rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginFont: CMSY8 %!PS-AdobeFont-1.1: CMSY8 1.0 %%CreationDate: 1991 Aug 15 07:22:10 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 2 /multiply put readonly def /FontBBox{-30 -955 1185 779}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBB2A7C1B5D8E7E8AA0 5B10EA43D6A8ED61AF5B23D49920D8F79DAB6A59062134D84AC0100187A6CD1F 80F5DDD9D222ACB1C23326A7656A635C4A241CCD32CBFDF8363206B8AA36E107 1477F5496111E055C7491002AFF272E46ECC46422F0380D093284870022523FB DA1716CC4F2E2CCAD5F173FCBE6EDDB874AD255CD5E5C0F86214393FCB5F5C20 9C3C2BB5886E36FC3CCC21483C3AC193485A46E9D22BD7201894E4D45ADD9BF1 CC5CF6A5010B5654AC0BE0DA903DB563B13840BA3015F72E51E3BC80156388BA F83C7D393392BCBC227771CDCB976E93302531886DDA73EBC9178917EFD0C20B 133F1E59A6DB3811BD410DC83AA75BE26D4E754A02DD0075D7A793D8C4B499A2 BC8E8A5316CB716ADB46D95C7B12CA61DD83222233C8DDFA7CDE7D9A6ADE5D37 DCAD7CA36C274C9844CCFFEDA502BBBDB60FAE578D00B89137526796A1EBEAE8 F896D9A1F6DA099B80ABF69047F70A59D086D90DEE48A18606D68FF1B98B671E AED376EEE1EB099004C5343B1D473F845D60C9BCDBB19DA77E0DDDB032052DDB 48629F27A39B5CC68A4A2A285D09356A9BC085EF39D03B96F073FFF0F63AEDDE 0CA7918F4534E6DDC108A93CAEFA2775CB07C30D5D5A108FBBDC5E909F110BB6 89474C11CD76FBC6E9CDA58775C49840E2903429597CBA68253CC92E62FDB847 1D8D9A975D2D7B6E2DD6F3B68F6562C54D091FC926FE5410DE5D9A8C0A73AB17 333450D9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR8 %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 51 /three put readonly def /FontBBox{-36 -250 1070 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65 48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3 9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB 0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB 8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466 FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3 9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62 D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8 9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5 ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6 10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582 83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493 2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30 4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632 BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B 041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721 3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762B93EC4488CF1 43FF3B2A427C5E1C756D1925B53223AC52F4466FF9EB95AA878FF1C7114149D2 64D481CA2624C69D9B54DB03C3537856805A93F51721CEAD6B9D02CE3A7DE340 0F696D00AE58F5C3B0194CC5D4EFDA29748FC0DA532BED0F8AB9F8466B6489D4 3769F06388DD490EC564421D3CD7B61BBFAE92F1045D1005B39F6DE94828020F 5E993EFE6B4CFE27600AABFFD315EE6EDF3DC3DED748E5E7517B9A901AC97A87 EDA3D5D8479E19F20E5A1124057124648706B8FCDE6FA850BDE75CDAA403B9C8 13DE23F1B894E4994DACF10B4E6CB0E684B3B6AC11830F036B5FBF488005DA46 B21EEA85CE4C9A81955A602EBFDBD510B204DF37DE0E5CB1E8B946C1EC66A269 AAEFF148B2157FB234239D3BFE2A3797D219F3856DAF3D82CB08BD12CD65F77A 9DAB835D01A11185CCFC948F4C416EB101A88694BC507567DA9208814EE9D7E9 5D09E79749545017 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 60 /less put dup 62 /greater put readonly def /FontBBox{-32 -250 1048 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E 6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF 8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE 03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 95601766777978D01677B8D19E1B10A078432D2884BB4F7B8C3293B68BB78100 16724E495064BA0168CC86D413CB48560D6D318357397832F7A858CD82030C7D 8A4A1919716E8B26AFF8789AAF489EE4E0A88DC477551A87C7DF2856189E4596 FE015956AFE5CC019F5CA6323A12B763B7B08B92C1A2940D3C566C43729E5482 63C6DC5E834AEB4DAFB5AE8F0B8931A4687C94D11587B9071C8D81DA14F12776 53A1985A3EBE37827656BD4635E03F09C3231F906874645E7DB3E59045A59D67 E745D8487CF73FC50F64060544F624F357BC998A87FBE468DEBB38A09449EBCA D041D7C29225ACD16CB8A59E87924D15A9125F064710A6CCCA3AD3103D8FCC94 CC3571C6F9192774FCFE5BB42A14B27960903144D28BF047BF4C77646EA7BF6F 440D4EDEB712C63F2E8080419E42D1D58EED685EB5CDD49F80DB6E5553B519FA C6A39A093155802F3EC607721F390307E91ECB597ABA60A537E3F8C045BF5DD3 D88CF6518D37FCD95D2F295D902D617440D23516D962F47750A682A319ACE1 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI8 %!PS-AdobeFont-1.1: CMMI8 1.100 %%CreationDate: 1996 Jul 23 07:53:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 59 /comma put dup 60 /less put dup 62 /greater put dup 107 /k put dup 108 /l put dup 111 /o put dup 112 /p put dup 115 /s put readonly def /FontBBox{-24 -250 1110 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC 4391C9DF440285B8FC159D0E98D4258FC57892DDF753642CD526A96ACEDA4120 788F22B1D09F149794E66DD1AC2C2B3BC6FEC59D626F427CD5AE9C54C7F78F62 C36F49B3C2E5E62AFB56DCEE87445A12A942C14AE618D1FE1B11A9CF9FAA1F32 617B598CE5058715EF3051E228F72F651040AD99A741F247C68007E68C84E9D1 D0BF99AA5D777D88A7D3CED2EA67F4AE61E8BC0495E7DA382E82DDB2B009DD63 532C74E3BE5EC555A014BCBB6AB31B8286D7712E0E926F8696830672B8214E9B 5D0740C16ADF0AFD47C4938F373575C6CA91E46D88DE24E682DEC44B57EA8AF8 4E57D45646073250D82C4B50CBBB0B369932618301F3D4186277103B53B3C9E6 DB42D6B30115F67B9D078220D5752644930643BDF9FACF684EBE13E39B65055E B1BD054C324962025EC79E1D155936FE32D9F2224353F2A46C3558EF216F6BB2 A304BAF752BEEC36C4440B556AEFECF454BA7CBBA7537BCB10EBC21047333A89 8936419D857CD9F59EBA20B0A3D9BA4A0D3395336B4CDA4BA6451B6E4D1370FA D9BDABB7F271BC1C6C48D9DF1E5A6FAE788F5609DE3C48D47A67097C547D9817 AD3A7CCE2B771843D69F860DA4059A71494281C0AD8D4BAB3F67BB6739723C04 AE05F9E35B2B2CB9C7874C114F57A185C8563C0DCCA93F8096384D71A2994748 A3C7C8B8AF54961A8838AD279441D9A5EB6C1FE26C98BD025F353124DA68A827 AE2AF8D25CA48031C242AA433EEEBB8ABA4B96821786C38BACB5F58C3D5DA011 85B385124723ED6D4E18EBC17E225FCC41BCC4B8D7D879108377E3667F7B5D2B FCE86EC83D26532EA11BABC9909D2F5B55A35988D810D931E585F472AA9C3576 2AD041529A049CF0E95E4913C1ACF86D7D38623A3F55B276433806E8BA2DD496 783551AF5218B70E4C2EDA20391C632C63E221434DDB9442D2C96F4E13831C32 FEE27104C653CBF0F37821D4BF38D236D33FDE077A7E34CC9416C93925499248 9E088116556EBE6949D7A00EE12D2C96646B95A692BDB2331184F2288B2578BE 6EEDE3F8433F00F4BD46809AEA4F11EB4BB040777F651087CA11CA9CDC2EF204 C7473903F6E307B8B4C1179F9650A81767EDF8011FDAEA49206DBADD16004CE6 095615D2FAADAD434F806CC6B0A11850F75A04B72F790AC04E13829F16581512 092FADEF66AB151ED5E5762A602EA4D542A235A3FF2A5697E21914573334F3F7 E26B09A6F7CB52B3C0589A15C6DE8491DC4A95B93090B55A057F19140EA439E6 36DC6EF8FE920A74B3B08C4C7B9F9B321CB1B168A971207EFE7D7FD8A0258203 3A91E3633DC53FED955FAC3C289F5CF5D9E0F038CDEEE87155A14410D627D21A 829D3A3E61FD12AC3B17BA83F345D6CB326EEEDA345D877A470C7DF4950A6447 66008048B076B7F33742B3DDBF82C0A6A39A2A8E641CBFFE298374D950B47F37 AD14D527E871573AFEAE846A059703A9A3D81166169E35A9852403451A1F056D 5058BBE98D558D0E0AEF6BABE2E0C2752D32678BBFD0F9B63B0F5091B5D67241 2947C80521B90758732E6665A88BCA655049099E21BB2C06A1E152384498AC40 6F0394AE8FEA6E847741960DA2BE707C7E30669F5EDBD3EA8F7FCC5EE032C076 3F3EBB16D593369D73A2AD9B0B4F4083F200D3965E1331150C9ABC53DF6659CF 6A1CE6556581A29DD7F0C3ADE1F540DD18DB2970763F274BEF6ECACBCFABF36B 80471B6FCFC0506FD2FD4EAD51913AAACF5E9E6CEE9ED48D6DD44438D1842025 AAF2CCA4CA54A77C34B3B907B7E25B683381580338F40D02530ED3F5CDD581D0 D5A2B5451CFCC2F6A76BC80C5572E28C6B92D36EAD6DD5CA024670A6F3CEC9AE 7B95DCE3CFA3DF29B734D18C3406778E3E94C3CB2212B700F4435671CD0B672A D51C6023C03DD06F307C8C882C004D196D49CF8BBC329A94C81AAC890C426467 6231383BFB7D1FF65B303661735295415B94C620C21FB84BE01CED7A152DB0A2 4CEB1FD5B6DE2D6C160CEF57AFCFB9423057DD49EF553184641378F259CEA5BA 86836C8AF9EA93916EB9B2692941D29A036E1A0A9DE7440A8EA954F5AA9FBCB0 BE96AD04D4798C1D6004391D4163B8B9170CA6ACA4F38FEBAED7E26CA0FCE6F8 0CC90B07ED0BE604DBB608055B148336B3B213E6D5771AE097002B225745C499 50BF47E76E6580479F109DC440CB280151D1B6CDFA4BF3F61B7A6CE284024DD4 265A3C9FD1AF0EC4649047579E71E5BE185B9187D37CCCDC2A6B1A98B2330905 0B896F7A09326713EE449A33AF8FDF7C80DA7A480F234C7A17567F4D61842E1E 2D8D0CADB53A26761896A565B511D15C0A77F3F298EA1057C745C17BEB1BBCB6 0C5D5F4379E608F7609F95301C02FBD51A9BED0C16196D46940C1446E4D4D4EA D1231756BB82C54538D1CF0A6BE01908CF5874C52BCAEF74DA5327D1C8235495 7E2B9D66B1AF5228E9A7197ADF6E11EC004EABC7DCA91D6287E4B8645EA5FD90 5AE4972E8705F24AFB89353A3C858E02B54314621D0816C40270016A48461C26 A618E35B267241E2304D174883589C5595C71F14D4431F994A97307A310EBD38 EFC31455452AC5A33540B761A9C23DFCF5666715B9F78A6285DC40BBC6B341E0 B6CA67AF40DB1009D033AD041C603BE094A227812CD9FEF3128606736FE2DFF9 AE27AD52975DDB3E3F7E31F9F4E095FE585FD5B463D06011A5E0DA2258FF6C14 83CB409D7597AF83D8CC349129C4A979E255FBDC32E91E22F8B4ACC4FD6038F0 46D07316D26834130A3C38D58B9F15D1ACB82E96EDD19AB869707AF69237 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 43 /plus put dup 61 /equal put readonly def /FontBBox{-34 -251 988 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E 59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28 51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23 DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F 45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31 821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE 96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D 9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379 26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4 140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213 1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498 1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB 377D3061A20B1EB98796B8607EECBC699445EAA866C38E02DF59F5EDD378303A 0733B90E7835C0AAF32BA04F1566D8161EA89CD4D14DDB953F8B910BFC8A7F03 5020F55EF8FC2640ADADA156F6CF8F2EB6610F7EE8874A26CBE7CD154469B9F4 ED76886B3FB679FFDEB59BB6C55AF7087BA48B75EE2FB374B19BCC421A963E15 FE05ECAAF9EECDF4B2715010A320102E6F8CCAA342FA11532671CCCC52875960 84CC1832A068F03077BAA0C4C196775201EC704B0519618EB6325C392CFDC749 16D4FEEA566B7F146471BD80A38772C1086962B023F9B6F5186495CAA304DDE8 9A81AF90B29454D95F3960197B03A3C230C90FDB599F2148C652D4DA3CB43695 651FD6FF092C2B139821E3A765896484539953774D852230A39EF0566729069F 1E4AD3CE2608D532F49AFE71CA061CE3FB9B433FCC20350F727175025E4EAE89 93EDD8EA16367C252791C4798461FB8ED984EEA3DDDAEBD66DCDFB9FA6E92168 48AA2AC824292BF50DE5493CF474D61D83D4562A0554B5468D93C82188D0A0CA 93349835E4768C4CC779F697EC72A3F81C11448725996E99829AFA18045B9696 19A8C734976DD45F152B6AFD732A730369B76A5D12AED2C04E782AAAB496FD8F 9C98EFD84DA41EEED255D0CD1B76320994D78F370452426A327173DCBAF1107D AD484C91C67FF2E276D6545A4D13E1361603E791E7AEE7079222C7A56736C6B8 243C52E7E218 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI12 %!PS-AdobeFont-1.1: CMMI12 1.100 %%CreationDate: 1996 Jul 27 08:57:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 60 /less put dup 61 /slash put dup 62 /greater put readonly def /FontBBox{-30 -250 1026 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC 4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F 4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A 323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C 2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA 5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F 0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D 5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 55B50047CA2D7522A6966F9A3A389BD74D6191B954679177A9155DBB1E56EBEB 0DF4825FBC5C5000ED4B4AA1006D9273E406CDD1234523977EB8CBA89C41A291 6926E95A178067006B3FCAB8F1BA13DBE39350DE3986CC4B9204FA3597DBBC69 DE07CD3F17F4DD8E3F8D2B624E5B200EEC654F482DE6B6FEFE9A430336C9D78E A705AA5C44E1E30032BE422C5B5B983D918C00E066C7151B8C28CA7DF700CC5D CB6FB3550D40AB845DED88806F56879D06AC5E20D14D609DC38C053AEF332C4E EB7A79CD93A64E5AA67B57864736284AC8AC2934D9D3BB4CC40D278C4BD0F2B8 286625F037FC2A658B11994AB14E181209AB94F1DAE53CDF7DFCEE0D346BA152 02F3D08198D432C0B244FB959EF5AD1FD03B6A23000DBF2826753772309AEA3E DE320DACC78A057015122DE8111060181BE6AEB65C5845CA9C9FFA76DC5F9DA4 E676E91EE0E9D31BCCF628767737F489735F6B144A30C794ACF58358EB89CDFE F3E641DB5CEE45C74C518B83F4B3295B58D47200136F69A70035C59C49016AE8 17D03B23570F8633D4B79615090EAE36842E22F7D9B9BC4549783DAFD491F982 916AB69FA309AEA41C0C494254BBF601AB7A765444ED8205E0A9CB6B1D891E12 7917E757A4EC82FA9530683277F6D9F86CAC1C740B870F851D1DDB91 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR7 %!PS-AdobeFont-1.1: CMR7 1.0 %%CreationDate: 1991 Aug 20 16:39:21 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put dup 50 /two put readonly def /FontBBox{-27 -250 1122 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C 8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E 01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B 52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F 0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB 7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4CD5C7347D2E 1D0D6630F446F3708FCB29A85F40B4DAB4D60AA8F5B2DBD67F2E45D80C7A7E86 144669F75F8FA14609F8E4246FEC475ED262E03D30393C78C7828206842B565A DBE20EA52EE9C4C3862B2F5F12CF89D935B89B84A45CEFCEAEE8EC8806339364 56FF1FE2E5112803E3E40162D5188D2210A54816AA9960611721C23A292AE80A 8F8C0FB114D71C111700B0FEA8804F37C5D31ECD7006603C53F4BDF7208286AF 3A25CEE58E88BF81A4800B68C2A19EBDADF9B1074702E779A7DD915EFE09D35E BD176D7346D859D0944520171C4E97696AE0502C43C391FCE5E8FB1789065E18 BE3AF62200D57912360411CE848B4550D1B0A3BA576F9B41CED3A23E753631A7 25375ABE8A4B55BC65AE2EAFAE452766961965093084D218637FB447795CC991 EB1EF26BF82B7A81FA847ABD3B559D35828AD7DDC5FC7B43C6C14E6ADEDD7663 F272AA9A121630C5263D58773BCB1437EC2FC54C4AF90E677A8E7D1738D003D4 18998C03CC9AE182E7758767FEB5E1B03C6CC32AD30D0ABAE6552290771E2CB1 A23F469A8447C1868C6DEC2C3C2BCFC691867E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR6 %!PS-AdobeFont-1.1: CMR6 1.0 %%CreationDate: 1991 Aug 20 16:39:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put dup 50 /two put readonly def /FontBBox{-20 -250 1193 750}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5 D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D 23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8 D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B 93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711 6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4 EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953 CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE 00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5 B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA 99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904 A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB 11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5 50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB67C3039A0F BF0BA4B455D035FF3126F33A4DF59FF96752CF58DC0863924F6042B14DC2DEE4 099CAA764A8EFFEB78F7FFD276F0928BA32624C3A69ACEB8777A461298B201D3 4DA271476B8AC8966668D4E28A6FBA952F6D295AA80CC09B0CFD6BE840703B07 7ED93999EB5630C2C7CD9BA683ED457D1341C3AA702B5FA8593A51E8E9165FF6 1385693E19161FF1ADC1FE0BE16FD3AFCDC3916A309FCE6B3F2B362C9F958A16 821E1EB2DD899522DD3155C0B7A7F0876E4DA32FD30D8289266D9F05E77F1F1C D3BFD2D4D6C8B6FDE0E8957BDBBEC54458C70B96F4CD77E734EE0CF620684024 EB05DF0536FAFF10FC6F6050AB338D44EA9C38150D3779A550C505C06D417A71 62D41C2D23843E0A2A73F72D4B5286E3CB7B8695B2434479776A59CB3BC6D352 677CCABF4133E20F12D91CFD8978C09FB81DF801707194AB8FABA9A6599C20FA B36DB0A166490D20BB0BD53581A8715B099754E6FA0F7D2892F5573380DDFF1E F9C3DA9F74BDBEBBDFA5715AE23264F967BC7841CE58E5EE2764555978D904F6 E8DEF6ED66C478848FC35A9827ACEA1D7CE85C8626C162FF296869DE 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /minus put dup 2 /multiply put dup 15 /bullet put dup 24 /similar put dup 32 /arrowleft put dup 33 /arrowright put dup 34 /arrowup put dup 35 /arrowdown put dup 37 /arrownortheast put dup 38 /arrowsoutheast put dup 45 /arrownorthwest put dup 46 /arrowsouthwest put dup 47 /proportional put readonly def /FontBBox{-29 -960 1116 775}readonly def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC57034F27CF0B9E4BF1164D21A8A3D9366 48317F1579A4E4772661250F737F41ADCF2ABEE72716CBDEC756B66AD35FDFB6 E37BDDACA68370E604401BE303246CF0F7A46394A52B5E9D34B1E181AE500C2A F3CF1A8DD52495B2BE675556CDABF286CDFD02EF1D24B2F2CE63B11A19221CEF D0B52B0A53C65D98C14A6B98F8DCF790824C5B2FC5CD97222534B7BD36006B06 74D1CB5E00DBDCE7E54CBE90BD412D97620C55633A99836457375F2BE6B04BDA 6A78C178AD1DE0BE3A25A3DC23B990FC90EC9F5AF67A04EAE6235E400F90868C 6A59C8F95773C7A708AFA871A725C220DA4D6D39D49C738D0777BBE3EBC0B640 ADCFFDC87BC04759F0EDD89F7035AC332C31F7AEB58606CDEDA619F424E4A374 9767B651B05A1C5C490EFFE1C32EE356426BC76870A93A6EB85145E2A0CCFD97 00F948A60DE3CF5F213EE98FD4283B94CA46A5F9321486D608145D2A8FB3645B EC5AF51F96D0BEA20B96988419AEC738FCBB589A9C16642A83CBA934A154139D 89930039302AD1218746828373D81860EB715C4528DEB4A98A31968C45F886E8 10A974A9C5F23BC2FD5851759511DFC8CD16773E2516E6AFF5E111BCCFC19DEE 2884014080AE353FCA14524F4DFA111E254213E772EF538BADCDDDA15CABD469 77FDC09D8D43594E831DB1571848D60D43CA0ECF4CC9017999198C8FB9C17121 21ACEE720859E79A479F985ADD24A22C05F98C9209D0CBD079CCCA7E1C55C6F5 43377F0E79CB4DF118F2DE9913E18E9E359E972B1F1199C627354E896907B12E 89FBEDF0F86DFE311FAE548E58019B23A247D2384D30259195D5F5E2BCAD7036 4C13CAB7BC5F1462759F97FDEDB659BA0C8BD29FFF036B28213BA293FA67EB46 BBDE67069863A2A3AF74816589CDDB8B875C62E62A208AE15D9DBAFFC7FAA279 A82ECBF4553EEDB98173A6FF8DE7A3972F8739BEEC4F51C75866DC682216755C F84A822473408797F8708F1CC41E57539ED5DC9F7D22F03632B571833D58186B 0EF15E062B87DA84FD95D086BFDF6563B5C104304A9A581D04337587CB479922 5138C26B62C2D86DD1C340DBDB255D264A6DD55ED1DDA13ED4C5F91A63827E49 A6CB1D1518980C8F21535A7EA1CBCE2B6E4CFC44383EEE4EB09EABDB2ADB6F25 D8AC9C8492AB5C2A5772F3AA75814EFCD8F3152E204A46A179C6064904260983 97A35AD0E4CA21244AD43E155D6959B79335872D74D6F276C64E17FDB7B776E0 7CB8B95631AD382638F3C302FD14690BA98B90DC901E8ABE63E63955EF9A9AF9 460D5C3CED1188D4D9AC555313A8DEBCD1031D56F3699E498B94CB2415DAB17C FDF3A1F02142945090756B0BCD823CCA8F0EC56C94B48BA1FF325D5CBD2A10B0 311F86BAC7329ABB5552CB796B5411712A78A7918560B69D6BF30F6A13CA2485 8D919AC559AC3BC3FCAAA33B17FD1F73504C62CAEC50B2907AA52D56572AC6D8 8F0190B6F73DBA4BFB250753F9B3DE4F0D0796EB6A2887F7B54A641A5691A770 031ECC0EB11888B1C3CF7117D0C1496A8238A33BD5A91746F3918264DE96E261 ADA9EBE34FBF934CD7C51ECD3F13943166BC4FE173A4D78CA03EAC7DDBA6621E 25A9AD57E31927DB564451FF0936C4357FF3C345B2B5D852B787004CFD26F746 54ED5A5C2C3C825A611300FE9165BEF076BA5117472C0261F188591FDD9CB97C 231D08B9F127AFF2E682E7F4063618789B841A78D529415D3071EF5B7B586128 C624175A8E733C65BC4EE3B3BC9A6BECFAC88C5CC06887AFDD20732AB9A8FA30 692A9209AE4F29706E34B134A3A95411D2ED21A6AD588FA14949235199FF6137 4D4717E5768A57D00C303D20BA423C04A3058D4A1748B9568AA9C6E9EB11AB3B 46269C0B69FB6378D8FD210155DCC4379BC3F1283C527DD7A458991B5FE9626E 2997DB172CDB2A977643838C98897172FAAF96585507965BD1399FE9EA38DBD0 9BAEE5E4DBF1DA8EDFECA57004E02FB7CC7A0288738EA39D110F3D78C7EA232F B7DAAFBFB4F469F020BCB26637F9923F9A4B751174687658108052FEF2E3E1F9 9BCB16FF4D08C4AEA01BF5F8E3AD6D3E8D678B3CF4608FA56EAE742E9421DEE5 11C85882B72F81BAB263B22D5473D02CD89373DA00D0FF2B6EA71D85AA373023 CD3269766A1F0D2E1347475DA89606BB5D354F87ECE12A5556CA6062FC2971C5 6976830D2006D9F2EA7CF4E6A76492E3518C3AE4FA841659D63F963FA327A02D 360CFFBFCE0EF27D95C660EEFE414CF32BB0CA9291236413BB856A103E8CDAD8 0768232A671C6E3CB529E6A7340D30498AA1F3FB4DB5ABD63CB12254E5553D77 CDE04ED8A582A692775F90D94767EBD927CC712D629964DC3DFAEFFAA0ED0B55 049FFCDD814C45FF82C1AB6DBADE0E81425CA13A5A9B78B82B16594AB528E6CB 092AC4E7FD5D5C6D92CE6D0149A69FB42011B9350DA9F35CE6FBDA470FEC9938 E9C7D5FABEFB4A432139AB1D4625F7F7FD1B33A7597F3696801E24D15F1B100F 628B5EF9093498EDCCB0F158A34C5EC442A6FB75B084B0CFDCCD8E3D64874789 7E5C0D41855D913B6FEB2256A62BB7F52F73108F08CB2B50AB486A9A1F15CD42 DD76592306ED6B696714507E1C95D13B7A7C7B6500F432BE657176662773C6AE 9873CBB23743E444F6A9E2061E8E2C34E05AE2E010146304DD83FB5A249BDE87 E1D5DA5FB63EAD418ECBD1C1F59AA27CB7AA26BECE10B8A02DF828E4830B3DB9 9C682741384CE124BFE35917435BF92FCB85F0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39139632 55387786 1000 600 600 (handbook.dvi) @start /Fa 253[55 2[{}1 66.4176 /CMSY8 rf %DVIPSBitmapFont: Fb ecsl0800 8 6 /Fb 6 116 df<000001FE0000000FFF8000003F01E00000FC00600001F001F00007E003 F00007C003F0000F8003F0000F8003E0001F000080001F000000001F000000001F000000 001F000000003F000000003E000000003E000000003E0007C00FFFFFFFC00FFFFFFFC000 7E001FC0007C000F80007C000F80007C000F80007C000F80007C001F8000FC001F8000F8 001F0000F8001F0000F8001F0000F8001F0000F8003F0001F8003F0001F0003E0001F000 3E0001F0003E0001F0003E0001F0007E0003F0007E0003E0007C0003E0007C0003E0007C 0003E0007C0007E000FC0007E000FC00FFFE1FFFC0FFFE1FFFC0242F7EAE27>28 D<000000FF800E00000FFFE00E00003F80781C0000FC001E3C0003F000077C000FC00003 FC001F800001FC003F000001FC007E000000F800FC000000F801F80000007803F0000000 7807F0000000780FE0000000380FE0000000301FC0000000301FC0000000303F80000000 303F80000000003F80000000007F00000000007F00000000007F00000000007F00000000 007F0000000000FF0000000000FE0000000000FE0000000000FE00000000007E00000000 007E00000001C07E00000001C07F00000001807F00000001803F00000003803F00000003 001F80000007001F8000000E000FC000000C0007C000001C0007E00000380003F00000F0 0000F80001C000007E00078000001F803E00000007FFF800000000FFC000002F2F79AD33 >67 D<0003F000001FFC00007C1F0000F80F8003F007C007E003C007C003E00F8003E01F 8003E01F0001E03F0001E03F0003E07E0003E07E0003E07FFFFFE07FFFFFE0FE000000FC 000000FC000000FC000000FC000000FC0000007C0000007C0001807E0001803E0003803E 0007001F000E000F801C0007C0F80001FFE000007F00001B207C9E1F>101 D<0003FC00000FFF00003E07C000F803E001E001F003C000F007C000780F8000780F0000 7C1F00007C3F00007C3E00007E3E00007E7E00007E7E00007E7E00007EFC0000FCFC0000 FCFC0000FCFC0000FCFC0000F8FC0001F87C0001F07C0001F07C0003E03C0007C03E0007 801F000F000F803E0007C0F80001FFF000007F80001F207C9E23>111 D<003C1F8007FC7FC007FCE3E000FDC7E0007B87E0007B07E0007F03C0007E0000007E00 0000FC000000FC000000F8000000F8000000F8000000F8000001F8000001F0000001F000 0001F0000001F0000001F0000003F0000003E0000003E0000003E0000003E0000007E000 0007E00000FFFF0000FFFF00001B1E7E9D1B>114 D<000FF0C0007FFDC001F00FC003C0 07C0078003C0078003800F0003800F0001800F0001800F8003800F8003800FE000000FFE 000007FFE00003FFF80001FFFC00007FFE000007FF0000007F0030001F0030001F803000 0F8070000F0070000F0078000F0078000F0078001E007C003C00FE007800F701F000E3FF C000C0FF00001A207E9E1C>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc ectt0800 8 7 /Fc 7 116 df<03FF80000FFFE0001FFFF8003FFFFC003FFFFE003F80FF003F803F801F 001F8000001F8000000F800000FF80007FFF8003FFFF800FFFFF801FFFFF807FF00F807F 000F80FC000F80FC000F80F8000F80F8001F80FC001F80FE003F807F81FF807FFFFFFC3F FFFFFE1FFFFFFE07FFC7FE01FE01FC1F1D7D9C23>97 D<003FF00000FFFC0003FFFF0007 FFFF000FFFFF001FE07F003F807F007F003E007E0000007E000000FC000000FC000000F8 000000F8000000F8000000F8000000F8000000FC000000FC0000007E0007007F000F807F 001F803FC01F801FF07F000FFFFF0007FFFE0003FFFC0000FFF000003FC000191D7B9C23 >99 D<0000FF800000FFC00000FFC00000FFC00000FFC0000007C0000007C0000007C000 0007C0000007C0000007C0000007C0007F87C001FFE7C003FFF7C00FFFFFC01FFFFFC01F E0FFC03F803FC07F001FC07E000FC07E000FC0FC0007C0FC0007C0F80007C0F80007C0F8 0007C0F80007C0F80007C0FC000FC0FC000FC07E000FC07E001FC07F003FC03F807FC03F E0FFC01FFFFFFE0FFFFFFE03FFF7FE01FFC7FE007F03FE1F297EA823>I<7E1F01F000FF 7FC7FC00FFFFEFFE00FFFFFFFE007FFFFFFF000FE1FE1F000FC1FC1F000FC0FC0F000F80 F80F000F80F80F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F0 0F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F 000F00F00F007FE3FE3FE0FFF3FF3FF0FFF3FF3FF0FFF3FF3FF07FE3FE3FE0241D819C23 >109 DI<003F000001FFE00003FFF00007FFF8000F FFFC001FC0FE003F807F003E001F007E001F807C000F80FC000FC0F80007C0F80007C0F8 0007C0F80007C0F80007C0F80007C0FC000FC0FC000FC07C000F807E001F803F003F003F 807F001FE1FE000FFFFC0007FFF80003FFF00001FFE000003F00001A1D7C9C23>I<01FF 9C0FFFFE1FFFFE7FFFFE7FFFFEFF00FEFC007EF8003EF8003EFC001CFE00007FF0003FFF 800FFFE007FFF8007FFC0001FE00007F70003FF8001FFC001FFC003FFE003FFF80FFFFFF FEFFFFFCFFFFF8FFFFF070FF80181D7B9C23>115 D E %EndDVIPSBitmapFont /Fd 204[35 51[{}1 66.4176 /CMR8 rf %DVIPSBitmapFont: Fe ecti1095 10.95 3 /Fe 3 111 df<00007E00000001FF80000007C1C380001F80EFC0003F00FFC0007E007F C000FC007F8001F8003F8003F0003F8003F0003F8007E0003F000FE0003F000FC0003F00 1FC0007F001FC0007E003F80007E003F80007E003F8000FE007F8000FC007F0000FC007F 0000FC007F0001FC00FF0001F800FE0001F800FE0001F800FE0003F800FE0003F038FC00 03F038FC0003F038FC0007F038FC0007E078FC000FE0707C000FE0707C001FE0F07E003F E0E03E007FE0E03E00F3E1E01F01E3E1C00F8781E38003FF00FF0000FC003E00252977A7 2E>97 D<000000003F800000001FFF800000001FFF000000001FFF00000000007F000000 00007F00000000007E00000000007E0000000000FE0000000000FE0000000000FC000000 0000FC0000000001FC0000000001FC0000000001F80000000001F80000000003F8000000 0003F80000000003F00000000003F00000000007F00000000007F00000000007E0000000 7E07E0000001FF8FE0000007C1CFE000001F80EFC000003F00FFC000007E007FC00000FC 007FC00001F8003F800003F0003F800003F0003F800007E0003F80000FE0003F00000FC0 003F00001FC0007F00001FC0007F00003F80007E00003F80007E00003F8000FE00007F80 00FE00007F0000FC00007F0000FC00007F0001FC0000FF0001FC0000FE0001F80000FE00 01F80000FE0003F80000FE0003F83800FC0003F03800FC0003F03800FC0007F03800FC00 07F07800FC000FE070007C000FE070007C001FE0F0007E003FE0E0003E007FE0E0003E00 F3E1E0001F01E3E1C0000F8781E3800003FF00FF000000FC003E0000294077BE2E>100 D<01F0003F800007FC01FFE0000F3E07C1F8000E1F0F00FC001E1F1C007C001C1F38007E 003C1FF0007E00381FF0007E00381FE0007E00783FC0007E00703FC0007E00703F80007E 00703F00007E00F03F0000FE00F07F0000FC00007E0000FC00007E0000FC00007E0001FC 0000FE0001F80000FC0001F80000FC0001F80000FC0003F80001FC0003F00001F80003F0 0001F80007F00001F80007E00003F8000FE07003F0000FC07003F0000FC07003F0001FC0 F007F0001F80E007E0001F80E007E0001F81E007E0001F01C00FE0001F01C00FC0001F03 800FC0001F03800FC0001F07001FC0000F0E001F800007FC0007000001F0002C2979A733 >110 D E %EndDVIPSBitmapFont /Ff 193[71 1[71 60[{}2 90.9091 /CMMI10 rf /Fg 140[33 2[36 34 2[21 37 44[55 1[55 20 59[{}8 66.4176 /CMMI8 rf /Fh 194[76 17[76 43[{}2 99.6264 /CMR12 rf %DVIPSBitmapFont: Fi ectt1095 10.95 22 /Fi 22 122 df<00007F80380003FFE07C000FFFF8FC001FFFFCFC003FFFFFFC007FFFFF FC00FFC0FFFC01FF003FFC03FE000FFC07F8000FFC07F00007FC0FE00003FC0FE00003FC 1FC00001FC1F800001FC3F800001FC3F000000FC3F000000FC7F000000FC7E000000FC7E 000000787E00000000FE00000000FC00000000FC00000000FC00000000FC00000000FC00 000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000 0000FE000000007E000000007E000000007E000000787F000000FC3F000000FC3F000000 FC3F800000FC1F800000FC1FC00001FC0FE00001F80FF00003F807F00003F807F80007F0 03FE000FF001FF001FE000FFC07FC0007FFFFF80003FFFFF00001FFFFE00000FFFFC0000 03FFF00000007F8000263A7CB82F>67 D<7FFFF000007FFFF80000FFFFF80000FFFFF800 007FFFF800007FFFF0000001F800000001F800000001F800000001F800000001F8000000 01F800000001F800000001F800000001F800000001F800000001F800000001F800000001 F800000001F800000001F800000001F800000001F800000001F800000001F800000001F8 00000001F800000001F800000001F800000001F800000001F800000001F800000001F800 000001F800000001F800000001F800000001F800000001F800000001F800000001F80000 0001F800001E01F800003F01F800003F01F800003F01F800003F01F800003F01F800003F 01F800003F01F800003F01F800003F7FFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F FFFFFFFF7FFFFFFFFE28387DB72F>76 D<7FF00000FFE07FF80001FFE0FFF80001FFF0FF FC0003FFF07FFC0003FFE07FFC0003FFE007DE0007BE0007DE0007BE0007DE0007BE0007 DF000FBE0007CF000F3E0007CF000F3E0007CF801F3E0007CF801F3E0007C7801E3E0007 C7801E3E0007C7C03E3E0007C7C03E3E0007C3C03C3E0007C3E07C3E0007C3E07C3E0007 C1E0783E0007C1F0F83E0007C1F0F83E0007C1F0F83E0007C0F0F03E0007C0F9F03E0007 C0F9F03E0007C079E03E0007C079E03E0007C079E03E0007C03FC03E0007C03FC03E0007 C03FC03E0007C01F803E0007C01F803E0007C00F003E0007C000003E0007C000003E0007 C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007 C000003E0007C000003E0007C000003E0007C000003E0007C000003E007FFC0003FFE07F FC0003FFE0FFFE0007FFF0FFFE0007FFF07FFC0003FFE07FFC0003FFE02C387FB72F>I< 7FF80001FFE0FFFC0003FFF0FFFC0003FFF0FFFC0003FFF0FFFC0003FFF07FF80001FFE0 1F0000000F801F8000001F800F8000001F000F8000001F000F8000001F000F8000001F00 0F8000001F000F8000001F000F8000001F0007C000003E0007C000003E0007C000003E00 07C000003E0007C000003E0007C000003E0007C000003E0007C01F803E0003E03FC07C00 03E03FC07C0003E03FC07C0003E03FC07C0003E07FE07C0003E079E07C0003E079E07C00 03E079E07C0001E079E0780001F0F9F0F80001F0F9F0F80001F0F9F0F80001F0F9F0F800 01F0F0F0F80001F1F0F8F80000F1F0F8F00000F1F0F8F00000F1F0F8F00000F9E079F000 00F9E079F00000FBE07DF00000FBE07DF00000FBE07DF000007BC03DE000007BC03DE000 007BC03DE000007BC03DE000007FC03FE000007F801FE000007F801FE000007F801FE000 003F801FC000003F000FC000001E000780002C397FB72F>87 D<7FFFFFFFE07FFFFFFFE0 FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE07FFFFFFFE024077B7D2F>95 D<007FF000000003FFFE00000007FFFF8000000FFFFFC000001FFFFFE000003FFFFFF000 003FC01FF800003FC003FC00003FC001FC00003FC000FE00001F80007E00000F00007F00 000000003F00000000003F00000000003F00000000003F000000007FFF00000007FFFF00 00003FFFFF000001FFFFFF000007FFFFFF00000FFFF83F00001FFE003F00003FF0003F00 007FC0003F00007F00003F0000FE00003F0000FC00003F0000FC00003F0000FC00003F00 00FC00003F0000FC00007F0000FE00007F00007F0000FF00007F8003FF80003FE01FFFFF 003FFFFFFFFF801FFFFFFFFF800FFFFFDFFF8007FFFF0FFF8001FFFC01FF00007FE00000 00292A7BA82F>97 D<000003FF8000000007FFC000000007FFC000000007FFC000000007 FFC000000003FFC0000000000FC0000000000FC0000000000FC0000000000FC000000000 0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000003FC 0FC000001FFF0FC000007FFFCFC00000FFFFEFC00001FFFFFFC00003FFFFFFC00007FE07 FFC0000FF801FFC0001FF0007FC0001FC0003FC0003F80003FC0003F80001FC0007F0000 1FC0007F00000FC0007E00000FC000FE00000FC000FE00000FC000FC00000FC000FC0000 0FC000FC00000FC000FC00000FC000FC00000FC000FC00000FC000FC00000FC000FC0000 0FC000FE00000FC0007E00001FC0007E00001FC0007F00001FC0003F80003FC0003F8000 7FC0001FC0007FC0001FE000FFC0000FF801FFC00007FE07FFFF0007FFFFFFFF8003FFFF EFFF8001FFFFCFFF80007FFF8FFF80001FFE07FF000007F800000029397DB72F>100 D<0003FE0000000FFF8000003FFFE00000FFFFF00001FFFFF80003FFFFFC0007FE07FE00 0FF800FF000FF0007F001FC0003F803FC0001F803F80001FC03F00000FC07F00000FC07E 00000FC07E00000FE0FE000007E0FC000007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFF FFFFE0FFFFFFFFE0FFFFFFFFC0FC00000000FE000000007E000000007E000000007F0000 00003F800003C03F800007E01FC00007E01FE0000FE00FF8001FC007FE003FC007FF80FF 8003FFFFFF8001FFFFFF00007FFFFC00003FFFF800000FFFE0000001FF0000232A7BA82F >I<0003F801FE00001FFF07FF80007FFFDFFF8000FFFFFFFFC001FFFFFFFFC003FFFFFF FFC003FE0FFF0F8007F803FC07000FF001FE00000FE000FE00000FC0007E00001FC0007F 00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F 00001FC0007F00000FC0007E00000FE000FE00000FF001FE000007F803FC000003FE0FF8 000003FFFFF8000007FFFFF0000007FFFFE000000FFFFFC000000F9FFF0000000F83F800 00000F80000000000F80000000000F80000000000FC00000000007E40000000007FFFFF0 000003FFFFFF000007FFFFFFC0000FFFFFFFE0001FFFFFFFF0003FC0001FF8003F000001 FC007E000000FE007C0000007E00FC0000003E00F80000003F00F80000001F00F8000000 1F00F80000001F00F80000001F00FC0000003F007C0000003E007F000000FE003F800001 FC003FE00007FC001FFE007FF8000FFFFFFFF00007FFFFFFE00001FFFFFF800000FFFFFF 0000001FFFF800000003FFC000002A3E7DA72F>103 D<0003800000000FE00000000FE0 0000001FF00000001FF00000001FF00000000FE00000000FE00000000380000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 00000000003FFFE000007FFFF000007FFFF000007FFFF000007FFFF000003FFFF0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F000000003F000007FFFFFFF00FFFFFFFF00 FFFFFFFF80FFFFFFFF80FFFFFFFF007FFFFFFF00213979B82F>105 D<7FF000000000FFF800000000FFF800000000FFF800000000FFF8000000007FF8000000 0000F80000000000F80000000000F80000000000F80000000000F80000000000F8000000 0000F80000000000F80000000000F80000000000F80000000000F80000000000F807FFFF 0000F80FFFFF0000F80FFFFF8000F80FFFFF8000F80FFFFF0000F807FFFF0000F8003F80 0000F8007F000000F800FE000000F801FC000000F803F8000000F807F0000000F80FE000 0000F81FC0000000F83F80000000F87F00000000F8FF00000000F9FF80000000FBFF8000 0000FFFFC0000000FFE7E0000000FFC7F0000000FF83F0000000FF01F8000000FE00FC00 0000FC00FE000000F8007E000000F8003F000000F8001F800000F8001F800000F8000FC0 0000F80007E00000F80007F0007FFFF03FFFC0FFFFF87FFFC0FFFFF87FFFE0FFFFF87FFF E0FFFFF87FFFC07FFFF03FFFC02B387EB72F>107 D<7FFFF000007FFFF80000FFFFF800 00FFFFF800007FFFF800007FFFF800000001F800000001F800000001F800000001F80000 0001F800000001F800000001F800000001F800000001F800000001F800000001F8000000 01F800000001F800000001F800000001F800000001F800000001F800000001F800000001 F800000001F800000001F800000001F800000001F800000001F800000001F800000001F8 00000001F800000001F800000001F800000001F800000001F800000001F800000001F800 000001F800000001F800000001F800000001F800000001F800000001F800000001F80000 0001F800000001F800000001F800000001F800007FFFFFFFE07FFFFFFFE0FFFFFFFFF0FF FFFFFFF07FFFFFFFE07FFFFFFFE024387BB72F>I<00000FF000007FF03FFC0000FFF8FF FE0000FFFBFFFF0000FFFFFFFF8000FFFFFFFF80007FFFF03FC00001FFC01FC00001FF80 0FE00001FF000FE00001FE0007E00001FC0007E00001FC0007E00001FC0007E00001F800 07E00001F80007E00001F80007E00001F80007E00001F80007E00001F80007E00001F800 07E00001F80007E00001F80007E00001F80007E00001F80007E00001F80007E00001F800 07E00001F80007E00001F80007E00001F80007E00001F80007E00001F80007E00001F800 07E00001F80007E0007FFFE07FFF80FFFFF0FFFFC0FFFFF0FFFFC0FFFFF0FFFFC0FFFFF0 FFFFC07FFFE07FFF802A287EA72F>110 D<0003FC0000001FFF8000003FFFC00000FFFF F00001FFFFF80003FFFFFC0007FE07FE000FF801FF000FE0007F001FC0003F801F80001F 803F80001FC03F00000FC07F00000FE07E000007E07E000007E0FC000003F0FC000003F0 FC000003F0FC000003F0FC000003F0FC000003F0FC000003F0FC000003F0FC000003F0FE 000007F07E000007E07E000007E07F00000FE07F00000FE03F80001FC03F80001FC01FC0 003F801FE0007F800FF801FF0007FE07FE0003FFFFFC0001FFFFF80000FFFFF000007FFF E000001FFF80000003FC0000242A7BA82F>I<00000FF000007FF03FFC0000FFF8FFFF00 00FFFBFFFFC000FFFFFFFFE000FFFFFFFFF0007FFFF03FF00001FFC00FF80001FF8003FC 0001FF0001FC0001FE0000FE0001FC0000FE0001FC00007F0001F800003F0001F800003F 0001F800003F8001F800001F8001F800001F8001F800001F8001F800001F8001F800001F 8001F800001F8001F800001F8001F800001F8001F800003F8001F800003F8001FC00003F 0001FC00007F0001FC00007F0001FE0000FE0001FE0000FE0001FF0001FC0001FF8007FC 0001FFC00FF80001FFF03FF00001FFFFFFE00001FFFFFFC00001FBFFFF800001F9FFFF00 0001F87FFC000001F81FE0000001F80000000001F80000000001F80000000001F8000000 0001F80000000001F80000000001F80000000001F80000000001F80000000001F8000000 0001F80000000001F80000000001F8000000007FFFE0000000FFFFF0000000FFFFF00000 00FFFFF0000000FFFFF00000007FFFE0000000293C7EA72F>I<0000000FF0007FFF007F FE007FFF81FFFF00FFFF87FFFF00FFFF8FFFFF807FFF9FFFFF807FFFBFF87F80001FFFC0 7F80001FFF003F00001FFE001E00001FFC000000001FF8000000001FF0000000001FF000 0000001FE0000000001FC0000000001FC0000000001FC0000000001FC0000000001F8000 0000001F80000000001F80000000001F80000000001F80000000001F80000000001F8000 0000001F80000000001F80000000001F80000000001F80000000001F80000000001F8000 0000001F80000000001F800000007FFFFFF800007FFFFFFC0000FFFFFFFC0000FFFFFFFC 00007FFFFFFC00007FFFFFF8000029287EA72F>114 D<001FFC0E0001FFFF9F0007FFFF FF000FFFFFFF001FFFFFFF003FFFFFFF007FF007FF007F8000FF00FE00007F00FE00007F 00FC00003F00FC00003F00FC00003F00FE00003F007F00001E007FC00000003FFC000000 1FFFF000000FFFFF800003FFFFE00000FFFFF800001FFFFE0000007FFF00000001FF8000 00007F807800001FC0FC00000FC0FC000007E0FC000007E0FE000007E0FE000007E0FF00 0007E0FF80000FE0FFC0001FC0FFE0003FC0FFFC01FF80FFFFFFFF80FFFFFFFF00FFFFFF FE00F8FFFFF800F83FFFE0007007FF0000232A7AA82F>I<000F000000001F800000001F 800000001F800000001F800000001F800000001F800000001F800000001F800000001F80 0000001F8000007FFFFFFFC0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFF C0001F800000001F800000001F800000001F800000001F800000001F800000001F800000 001F800000001F800000001F800000001F800000001F800000001F800000001F80000000 1F800000001F800000001F800000001F800000001F8000F0001F8001F8001F8001F8001F 8001F8001F8001F8001F8001F8001FC003F8001FC007F0000FE00FF0000FF81FE00007FF FFC00007FFFFC00003FFFF800001FFFE0000007FF80000001FE00025337EB12F>I<7FF0 01FFC000FFF803FFE000FFF803FFE000FFF803FFE000FFF803FFE0007FF801FFE00001F8 0007E00001F80007E00001F80007E00001F80007E00001F80007E00001F80007E00001F8 0007E00001F80007E00001F80007E00001F80007E00001F80007E00001F80007E00001F8 0007E00001F80007E00001F80007E00001F80007E00001F80007E00001F80007E00001F8 0007E00001F80007E00001F80007E00001F80007E00001F8000FE00001F8000FE00001F8 001FE00001F8003FE00001FC007FE00000FF01FFFF8000FFFFFFFFC0007FFFFFFFC0007F FFFFFFC0003FFFE7FFC0000FFF83FF800003FE0000002A287EA62F>I<7FFF003FFF80FF FF807FFFC0FFFF807FFFC0FFFF807FFFC0FFFF807FFFC07FFF003FFF8001F00003E00001 F00003E00001F80007E00000F80007C00000F80007C00000FC000FC000007C000F800000 7C000F8000007C000F8000003E001F0000003E001F0000003E001F0000001F003E000000 1F003E0000001F003E0000000F807C0000000F807C0000000F807C00000007C0F8000000 07C0F800000007C0F800000003E1F000000003E1F000000003E1F000000001F3E0000000 01F3E000000001F3E000000000FFC000000000FFC000000000FFC0000000007F80000000 007F80000000003F0000002A277EA62F>I<3FFF80FFFE007FFFC1FFFF007FFFC1FFFF00 7FFFC1FFFF007FFFC1FFFF003FFF80FFFE00007E001F0000003F003F0000003F007E0000 001F80FC0000000FC0FC00000007C1F800000007E3F000000003F3E000000001FFE00000 0000FFC000000000FF80000000007F00000000003F00000000003F00000000007F000000 0000FF8000000000FFC000000001F3E000000003E3F000000007E1F000000007C0F80000 000F80FC0000001F807E0000003F003E0000003E001F0000007E001F800000FC000FC000 7FFF807FFF807FFFC0FFFF80FFFFC0FFFFC0FFFFC0FFFFC07FFFC0FFFF807FFF807FFF80 2A277EA62F>120 D<7FFF803FFF80FFFF807FFFC0FFFFC07FFFC0FFFFC07FFFC0FFFF80 7FFFC07FFF803FFF8001F00003E00001F80003E00000F80003E00000F80007C00000FC00 07C000007C0007C000007E000F8000003E000F8000003E000F8000003F001F0000001F00 1F0000001F001F0000000F803E0000000F803E0000000FC03E00000007C07C00000007C0 7C00000007E07C00000003E0F800000003E0F800000001F0F800000001F0F000000001F1 F000000000F9F000000000F9E000000000F9E0000000007BE0000000007FC0000000003F C0000000003FC0000000003F80000000001F80000000001F80000000001F00000000001F 00000000001F00000000003E00000000003E00000000003E00000000007C00000000007C 0000000000FC0000000F00F80000001F81F80000003FC1F80000003FC3F00000003F07E0 0000003F1FE00000003FFFC00000001FFF800000001FFF800000000FFE0000000007FC00 00000003F0000000002A3C7EA62F>I E %EndDVIPSBitmapFont /Fj 193[76 49 76 60[{}3 99.6264 /CMMI12 rf %DVIPSBitmapFont: Fk ecsl1440 14.4 6 /Fk 6 116 df<0000000000FF8000000000000FFFF000000000007F807C0000000001FC 001E0000000007F00007000000000FC00003800000003F800003C00000007F00001FC000 0000FE00007FC0000001FC00007FC0000003F80000FFC0000007F80000FFC0000007F000 00FFC000000FF00000FFC000000FE00000FF8000001FE000007F0000001FC00000180000 001FC00000000000001FC00000000000001FC00000000000001FC00000000000003FC000 00000000003F800000000000003F800000000000003F800000000000003F800000000000 003F800000000000007F800000000000007F000000000000007F000000000000007F0000 00000000007F000000000000007F000001FE0003FFFFFFFFFFFE0003FFFFFFFFFFFC0003 FFFFFFFFFFFC0003FFFFFFFFFFFC000000FE00000FFC000000FE000003FC000001FE0000 03FC000001FC000003F8000001FC000003F8000001FC000003F8000001FC000003F80000 01FC000007F8000003FC000007F8000003F8000007F0000003F8000007F0000003F80000 07F0000003F8000007F0000003F800000FF0000007F800000FF0000007F000000FE00000 07F000000FE0000007F000000FE0000007F000000FE0000007F000001FE000000FF00000 1FE000000FE000001FC000000FE000001FC000000FE000001FC000000FE000001FC00000 0FE000003FC000001FE000003FC000001FC000003F8000001FC000003F8000001FC00000 3F8000001FC000003F8000001FC000007F8000003FC000007F8000003F8000007F000000 3F8000007F0000003F8000007F0000003F8000007F0000003F800000FF0000007F800000 FF0000007F000000FE0000007F000000FE000000FF000001FE000001FF800003FF0000FF FFFF01FFFFFE00FFFFFF01FFFFFE00FFFFFE01FFFFFC00FFFFFE01FFFFFC003A547CD33F >28 D<00000000007FF00000180000000007FFFE000038000000003FFFFFC00078000000 01FFFFFFE000F800000007FFE007F800F00000001FFE0000FC01F00000007FF000003E03 F0000000FFC000001F07F0000003FF0000000787F0000007FE00000003CFF000000FF800 000003FFE000003FF000000001FFE000007FE000000000FFE00000FF80000000007FE000 01FF00000000007FE00003FE00000000003FE00007FE00000000003FC00007FC00000000 003FC0000FF800000000001FC0001FF000000000001FC0003FE000000000001FC0007FE0 00000000000FC0007FC000000000000F8000FFC000000000000F8000FF8000000000000F 8001FF8000000000000F8003FF0000000000000F8003FF000000000000078007FE000000 000000070007FE00000000000007000FFC00000000000007000FFC00000000000007000F FC0000000000000F001FF80000000000000F001FF800000000000000001FF80000000000 0000003FF000000000000000003FF000000000000000003FF000000000000000007FF000 000000000000007FE000000000000000007FE000000000000000007FE000000000000000 007FE000000000000000007FE00000000000000000FFE00000000000000000FFC0000000 0000000000FFC00000000000000000FFC00000000000000000FFC00000000000000000FF C00000000000000000FFC00000000000000000FFC00000000000000000FFC00000000000 000000FFC00000000000007000FFC000000000000070007FC0000000000000F0007FC000 0000000000E0007FC0000000000000E0007FC0000000000000E0007FE0000000000001E0 003FE0000000000001C0003FE0000000000003C0003FE000000000000380003FE0000000 00000780001FF000000000000780001FF000000000000F00000FF800000000000E00000F F800000000001E000007FC00000000003C000007FC00000000003C000003FE0000000000 78000001FF0000000000F0000001FF0000000001E0000000FF8000000003C00000007FC0 00000007800000003FE00000001F000000001FF80000003E000000000FFC000000FC0000 000007FF000001F00000000001FFC0000FE000000000007FFC00FF8000000000003FFFFF FE00000000000007FFFFF800000000000001FFFFC0000000000000001FFE00000000004D 5674D352>67 D<000000FF800000000FFFF00000003F81FC000000FC007F000001F8003F 800007F0001FC0000FC0000FE0001F80000FE0003F800007F0007F000007F000FE000007 F001FE000003F803FC000003F803F8000003F807F8000003F80FF0000003F80FF0000003 F81FF0000003F81FE0000003F83FE0000003F83FE0000003F83FE0000003F87FC0000007 F87FFFFFFFFFF87FFFFFFFFFF87FC000000000FFC000000000FF8000000000FF80000000 00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 00FF0000000000FF80000000007F80000000007F80000001C07F80000001C07F80000003 C03F80000003803FC0000007801FC0000007001FC000000E000FE000001E0007E000003C 0003F00000780001F80000F00000FC0003C000007E000F8000001FC07E00000007FFF800 0000007F8000002D3679B433>101 D<0000007FC00000000007FFFC000000001FC07F00 0000007E000F80000001F80007E0000003F00003F0000007C00001F800001F800000FC00 003F000000FC00007F0000007E0000FE0000007F0000FC0000003F0001FC0000003F8003 F80000003F8007F80000003F8007F00000003FC00FF00000003FC00FE00000003FC01FE0 0000003FC01FE00000003FC03FE00000003FE03FC00000003FE03FC00000003FE07FC000 00003FE07FC00000003FE07FC00000003FE0FF800000007FC0FF800000007FC0FF800000 007FC0FF800000007FC0FF800000007FC0FF80000000FF80FF80000000FF80FF00000000 FF80FF00000000FF00FF00000001FF00FF00000001FE00FF00000001FE007F00000003FC 007F80000003FC007F80000007F8003F80000007F0003F8000000FE0001F8000000FE000 1FC000001FC0000FC000003F800007E000007F000007F00000FC000003F80001F8000000 FC0007F00000007E000FC00000001FC07F0000000007FFF80000000000FFC00000003336 79B439>111 D<0000FE007E0000FFFE01FF8000FFFC0783E000FFFC0E0FE000FFFC3C1F F00007FC701FF00001FC601FF00001FCE03FE00001F9C01FE00001F9801FC00001FB800F 800001FF0000000001FE0000000003FE0000000003FE0000000003FC0000000003FC0000 000003F80000000003F80000000007F80000000007F80000000007F00000000007F00000 000007F00000000007F0000000000FF0000000000FE0000000000FE0000000000FE00000 00000FE0000000000FE0000000001FE0000000001FC0000000001FC0000000001FC00000 00001FC0000000001FC0000000003FC0000000003F80000000003F80000000003F800000 00003F80000000003F80000000007F80000000007F00000000007F00000000007F000000 0001FFC0000000FFFFFFC00000FFFFFFC00000FFFFFF800000FFFFFF8000002C347CB32C >114 D<000007FE01C000007FFF83C00001F803E7C00007C000FF80000F80003F80001E 00003F80003C00001F80007C00001F8000F800000F8000F800000F0001F000000F0001F0 00000F0001F000000F0001F000000F0003F000000F0003F000000E0003F800000E0003FC 00000E0003FE0000000001FF0000000001FFE000000000FFFF00000000FFFFF00000007F FFFE0000003FFFFF8000000FFFFFC0000007FFFFE0000000FFFFF00000001FFFF8000000 00FFF8000000000FFC0000000007FC001C000003FC001C000001FE001C000000FE001C00 0000FE001C0000007E001E0000007E003E0000007C003E0000007C003E0000007C003E00 00007C003E000000F8003F000000F8007F000000F0007F000001F0007F800001E0007F80 0003C0007FC0000780007DE0000F0000F8F0003E0000F03C01F80000E01FFFE00000C003 FE0000002A367CB42D>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fl ectt1000 10 25 /Fl 25 122 df<0000FE00000001FF00000001FF00000001FF00000001FF00000003FF80 000003FF80000003EF80000003EF80000007EF80000007EFC0000007EFC0000007C7C000 0007C7C000000FC7E000000FC7E000000FC7E000000FC3E000001F83F000001F83F00000 1F83F000001F83F000001F83F000003F01F800003F01F800003F01F800003F01F800007E 00FC00007E00FC00007E00FC00007E00FC00007E00FC0000FC007E0000FFFFFE0000FFFF FE0000FFFFFE0001FFFFFF0001FFFFFF0001F8003F0001F8003F0001F8003F0003F0001F 8003F0001F8003F0001F8003F0001F8007F0001FC007E0000FC07FFE00FFFC7FFF01FFFC FFFF01FFFE7FFF01FFFC7FFE00FFFC27347EB32C>65 D<7FFFFF0000FFFFFFC000FFFFFF F000FFFFFFF8007FFFFFFC0007E003FE0007E000FF0007E0007F8007E0003F8007E0001F C007E0000FE007E0000FE007E00007E007E00007F007E00003F007E00003F807E00001F8 07E00001F807E00001F807E00001F807E00000FC07E00000FC07E00000FC07E00000FC07 E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E0 0000FC07E00001F807E00001F807E00001F807E00003F807E00003F007E00003F007E000 07F007E00007E007E0000FE007E0001FC007E0003FC007E0007F8007E000FF0007E003FE 007FFFFFFC00FFFFFFF800FFFFFFF000FFFFFFC0007FFFFF000026337EB22C>68 D<7FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF803F00001F803F00001F8 03F00001F803F00001F803F00001F803F00001F803F00001F803F00000F003F000000003 F000000003F000000003F000000003F001E00003F003F00003F003F00003F003F00003F0 03F00003FFFFF00003FFFFF00003FFFFF00003FFFFF00003FFFFF00003F003F00003F003 F00003F003F00003F003F00003F001E00003F000000003F000000003F000000003F00000 0003F000000003F000003C03F000007E03F000007E03F000007E03F000007E03F000007E 03F000007E03F000007E03F000007E7FFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7F FFFFFFFC27337EB22C>I<7FFE00FFFCFFFF01FFFEFFFF01FFFEFFFF01FFFE7FFE00FFFC 07E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007 E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0 000FC007E0000FC007E0000FC007FFFFFFC007FFFFFFC007FFFFFFC007FFFFFFC007FFFF FFC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000F C007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC0 07E0000FC007E0000FC007E0000FC007E0000FC007E0000FC07FFE00FFFCFFFF01FFFEFF FF01FFFEFFFF01FFFE7FFE00FFFC27337EB22C>72 D<7FFFFFFFFCFFFFFFFFFEFFFFFFFF FEFFFFFFFFFEFFFFFFFFFEFC007E007EFC007E007EFC007E007EFC007E007EFC007E007E FC007E007EFC007E007E78007E003C00007E000000007E000000007E000000007E000000 007E000000007E000000007E000000007E000000007E000000007E000000007E00000000 7E000000007E000000007E000000007E000000007E000000007E000000007E000000007E 000000007E000000007E000000007E000000007E000000007E000000007E000000007E00 0000007E000000007E000000007E000000007E000000007E000000007E000000007E0000 003FFFFC00003FFFFC00007FFFFE00003FFFFC00003FFFFC0027337EB22C>84 D<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF0021067B7D2C >95 D<01FFF0000007FFFE00001FFFFF80001FFFFFE0003FFFFFF0003FC01FF8003FC007 F8003FC001FC001F8000FC00060000FE000000007E000000007E000000007E000000FFFE 00001FFFFE0000FFFFFE0003FFFFFE000FFFFFFE001FFF807E003FF8007E007FC0007E00 7F00007E00FE00007E00FC00007E00FC00007E00FC00007E00FC00007E00FE00007E007F 0000FE007F8003FE003FE01FFE001FFFFFFFFC0FFFFFFFFE07FFFFBFFE01FFFE1FFE003F F007FC27247CA32C>97 D<0003FFE000001FFFF800007FFFFE0001FFFFFE0003FFFFFF00 07FE00FF000FF000FF001FE000FF001FC0007E003F800018003F000000007F000000007E 000000007E00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00 000000FC00000000FC000000007E000000007E000000007F000000003F00000F003F8000 1F801FC0001F801FE0003F800FF0007F0007FE03FF0003FFFFFE0001FFFFFC00007FFFF8 00001FFFE0000003FF000021247AA32C>99 D<00000FFE0000001FFF0000001FFF000000 1FFF0000000FFF000000003F000000003F000000003F000000003F000000003F00000000 3F000000003F000000003F000000003F000000003F000007F83F00003FFE3F0000FFFFBF 0001FFFFFF0003FFFFFF0007FC0FFF000FF003FF001FE001FF001FC000FF003F80007F00 3F00007F007E00003F007E00003F00FE00003F00FC00003F00FC00003F00FC00003F00FC 00003F00FC00003F00FC00003F00FC00003F00FC00003F00FE00003F007E00007F007E00 007F007F0000FF003F8000FF003F8001FF001FC003FF000FF007FF0007FC1FFF0003FFFF FFFC01FFFFBFFE00FFFF3FFE003FFC3FFE000FF01FFC27337DB22C>I<0003FE0000001F FFC000007FFFF00001FFFFF80003FFFFFC0007FE03FE000FF800FF001FE0003F801FC000 3F803F80001FC03F00000FC07F00000FC07E00000FE07E000007E0FC000007E0FFFFFFFF E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00000000FE000000007E00000000 7E000000007F000000003F000003C03F800007E01FC00007E00FF0000FE007F8003FC007 FF00FFC001FFFFFF8000FFFFFF00003FFFFC00000FFFF0000001FF800023247CA32C>I< 00000FF80000003FFE000000FFFF000001FFFF800003FFFF800007FC7F800007F07F8000 0FE03F00000FC03F00000FC00000000FC00000000FC00000000FC00000000FC00000000F C000007FFFFFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF007FFFFFFE00000FC00000000FC0 0000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000 00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000 000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000 0FC00000000FC00000000FC000003FFFFFF0007FFFFFF8007FFFFFF8007FFFFFF8003FFF FFF00021337DB22C>I<00000003F80007F80FFC001FFE3FFE007FFFFFFF01FFFFFFFF03 FFFFFE7F03FC0FF87F07F003F83E0FE001FC1C0FC000FC001FC000FE001F80007E001F80 007E001F80007E001F80007E001F80007E001F80007E001FC000FE000FC000FC000FE001 FC0007F003F80003FC0FF00007FFFFF00007FFFFE0000FFFFF80000F9FFE00000F87F800 000F800000000F800000000F800000000FC000000007E000000007FFFFF00003FFFFFE00 07FFFFFF800FFFFFFFE01FFFFFFFF03FC0001FF87F000003FC7E000000FC7C0000007CFC 0000007EF80000003EF80000003EF80000003EF80000003EFC0000007E7E000000FC7F80 0003FC3FE0000FF81FFC007FF00FFFFFFFE003FFFFFF8001FFFFFF00003FFFF8000007FF C00028387EA42C>I<00070000001FC000001FC000003FE000003FE000003FE000001FC0 00001FC00000070000000000000000000000000000000000000000000000000000000000 007FFFC0007FFFE000FFFFE0007FFFE0007FFFE0000007E0000007E0000007E0000007E0 000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0 000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0 000007E0000007E0000007E0000007E0007FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFE7FFFFF FC1F3479B32C>105 D<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFF0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000007FFFFFFF80FFFFFFFFC0FFFF FFFFC0FFFFFFFFC07FFFFFFF8022337BB22C>108 D<7F83F007E0007FCFFC1FF800FFDF FE3FFC007FFFFEFFFC007FFFFFFFFE0007FE1FFC3E0007FC1FF83F0007F80FF01F0007F0 0FE01F0007E00FC01F0007E00FC01F0007E00FC01F0007C00F801F0007C00F801F0007C0 0F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C0 0F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C0 0F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F007FFC3FF87FF07FFC 7FF8FFF0FFFE7FFCFFF87FFC7FF8FFF07FFC3FF87FF02D2481A32C>I<7FF01FE00000FF F87FFC0000FFF9FFFE0000FFFBFFFF00007FFFFFFF000001FFF03F800001FFC01F800001 FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000FC00001F8000FC00001 F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001 F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001 F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0007F FFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029247FA32C>I< 0007FC0000001FFF0000007FFFC00001FFFFF00003FFFFF80007FC07FC000FF001FE001F E000FF001F80003F003F80003F803F00001F807E00000FC07E00000FC07E00000FC0FC00 0007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE0000 0FE07E00000FC07E00000FC07F00001FC03F00001F803F80003F801FC0007F001FE000FF 000FF001FE0007FC07FC0003FFFFF80001FFFFF000007FFFC000001FFF00000007FC0000 23247CA32C>I<7FF01FE000FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF8001FFF07F C001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC01F80000FC 01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01 F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE0003F801FF 0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FF F80001F83FC00001F800000001F800000001F800000001F800000001F800000001F80000 0001F800000001F800000001F800000001F800000001F800000001F800000001F8000000 7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000027367FA32C>I<7FFE003F C0FFFF01FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7FE1FC003FFF01FC003FFC00F8 003FF80070003FF00000003FE00000003FE00000003FC00000003F800000003F80000000 3F800000003F000000003F000000003F000000003F000000003F000000003F000000003F 000000003F000000003F000000003F000000003F000000003F000000003F000000003F00 0000003F0000007FFFFFE000FFFFFFF000FFFFFFF000FFFFFFF0007FFFFFE00026247EA3 2C>114 D<007FF87003FFFFF80FFFFFF81FFFFFF83FFFFFF87FC00FF87E0003F8FC0001 F8F80001F8F80001F8F80001F8FC0000F07F0000007FF000003FFFC0001FFFFE000FFFFF 8003FFFFE0007FFFF80001FFFC000007FC000000FE7800007FFC00003FFC00001FFE0000 1FFE00001FFF00003FFF80003EFFC000FEFFF007FCFFFFFFFCFFFFFFF8FFFFFFE0F8FFFF 80701FFC0020247AA32C>I<001E000000003F000000003F000000003F000000003F0000 00003F000000003F000000003F000000003F000000003F0000007FFFFFFF00FFFFFFFF80 FFFFFFFF80FFFFFFFF807FFFFFFF00003F000000003F000000003F000000003F00000000 3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F 000000003F000000003F000000003F000000003F000000003F000000003F0003C0003F00 07E0003F0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F801FC0001FE07F C0000FFFFF80000FFFFF000003FFFE000001FFF80000003FE000232E7EAD2C>I<7FF003 FF8000FFF807FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F8000FC00001F800 0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800 0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800 0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800 0FC00001F8000FC00001F8001FC00001F8001FC00001F8003FC00001FC007FC00000FE03 FFC00000FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE07FF0029247F A32C>I<7FFF01FFFCFFFF01FFFEFFFF83FFFEFFFF01FFFE7FFF01FFFC03E0000F8003E0 000F8003F0001F8001F0001F0001F0001F0001F8003F0000F8003E0000F8003E0000FC00 7E00007C007C00007C007C00007E00FC00003E00F800003E00F800003F01F800001F01F0 00001F01F000001F83F000000F83E000000F83E000000FC7E0000007C7C0000007C7C000 0007EFC0000003EF80000003EF80000003FF80000001FF00000001FF00000000FE000000 007C000027247EA32C>I<7FFF007FFF007FFF80FFFF00FFFF80FFFF807FFF80FFFF007F FF007FFF0007C00001F00007C00001F00007C00001F00007C00001F00007C00001F00007 C00001F00003E00003E00003E00003E00003E00003E00003E03E03E00003E07F03E00003 E07F03E00001F07F07C00001F0FF87C00001F0FF87C00001F0F787C00001F0F787C00001 F1F7C7C00000F1F7C7800000F9E3CF800000F9E3CF800000FBE3EF800000FBE3EF800000 FBE3EF8000007BC1EF0000007FC1FF0000007FC1FF0000007F80FF0000007F80FF000000 3F80FE0000001F007C000029247FA32C>I<7FFF01FFFCFFFF81FFFEFFFF83FFFEFFFF81 FFFE7FFF01FFFC03E0000F8001F0000F8001F0001F8001F8001F0000F8001F0000F8003F 0000FC003E00007C003E00007E007E00003E007C00003E007C00003F00FC00001F00F800 001F00F800000F81F800000F81F000000F81F0000007C1F0000007C3E0000007C3E00000 03E3E0000003E7C0000001E7C0000001F7C0000001F780000000FF80000000FF80000000 FF000000007F000000007F000000003E000000003E000000007E000000007C000000007C 00000000FC00000000F800000000F800000C01F800003F01F000007F83F000007F87E000 007E0FE000007E1FC000007FFF8000003FFF0000001FFE0000000FFC00000007E0000000 27367EA32C>121 D E %EndDVIPSBitmapFont /Fm 205[33 33 49[{}2 58.1154 /CMR7 rf /Fn 205[30 30 49[{}2 49.8132 /CMR6 rf %DVIPSBitmapFont: Fo ecrm1095 10.95 67 /Fo 67 123 df<01800060038000E0070001C00E0003800C0003001C0007001800060038 000E0030000C0070001C006000180060001800E0003800C0003000C0003000C0003000C0 003000C0003000CE003380FF803FE0FFC03FF0FFC03FF0FFC03FF07FC01FF07FC01FF03F 800FE00E0003801C1B80BE1E>16 D<1C0007007F001FC0FF803FE0FF803FE0FFC03FF0FF C03FF0FFC03FF07FC01FF01CC0073000C0003000C0003000C0003000C0003000C0003001 C000700180006001800060038000E0030000C0070001C0060001800E0003800C0003001C 00070038000E0070001C00600018001C1B7FBE1E>I<000003FF000FE000001FFFC07FF8 0000FE00F1F81C0001F8003BE07E0007E0007FC0FF000FC001FFC0FF001F8001FF80FF00 3F0001FF00FF007F0001FF00FF007E0001FF007E00FE0000FE000000FC00007E000000FC 00007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC00 007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC0000 7E000000FC00007E000000FC00007E0000FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFF FF8000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E00 0000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E0000 00FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E000000 FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC 00007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC00 007E000000FC00007E000000FC00007E000000FC00007E000000FC00007E000000FC0000 7E000000FC00007E000001FE0000FF00007FFFF83FFFFF007FFFF83FFFFF007FFFF83FFF FF0038407FBF35>27 D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C0 00C001C00180018003800300070006000E000C001C003800700060000A1B78BE19>39 D<0000300000700000E00001C0000380000700000F00001E00003C00003C0000780000F0 0000F00001E00001E00003C00003C00007C0000780000F80000F80000F00001F00001F00 001E00003E00003E00003E00003C00007C00007C00007C00007C00007C00007C00007800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F800007800007C00007C00007C00007C00007C00 007C00003C00003E00003E00003E00001E00001F00001F00000F00000F80000F80000780 0007C00003C00003C00001E00001E00000F00000F000007800003C00003C00001E00000F 000007000003800001C00000E0000070000030145A77C323>II<0003C0000003C0000003E0000003C0000003C00000 03C0000003C0000003C0000003C000F003C00FFC03C03FFE03C07FFF03C0FF3FC3C3FC0F E187F003F18FC000FDBF00003FFC00000FF0000003C000000FF000003FFC0000FDBF0003 F18FC00FE187F03FC3C3FCFF03C0FFFE03C07FFC03C03FF003C00F0003C0000003C00000 03C0000003C0000003C0000003C0000003E0000003C0000003C00020277AC32D>I<0000 000600000000000000060000000000000006000000000000000600000000000000060000 000000000006000000000000000600000000000000060000000000000006000000000000 000600000000000000060000000000000006000000000000000600000000000000060000 000000000006000000000000000600000000000000060000000000000006000000000000 000600000000000000060000000000000006000000000000000600000000000000060000 000000000006000000000000000600000000000000060000000000000006000000000000 0006000000000000000600000000FFFFFFFFFFFFFFE0FFFFFFFFFFFFFFE0000000060000 000000000006000000000000000600000000000000060000000000000006000000000000 000600000000000000060000000000000006000000000000000600000000000000060000 000000000006000000000000000600000000000000060000000000000006000000000000 000600000000000000060000000000000006000000000000000600000000000000060000 000000000006000000000000000600000000000000060000000000000006000000000000 000600000000000000060000000000000006000000000000000600000000000000060000 000000000006000000003B3C7BB446>I<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000 C000C000C000C000C001C00180018003800300070006000E000C001C003800700060000A 1B788819>II<1C007F00FF80FF80FF 80FF80FF807F001C000909788819>I<00000000C000000000C000000001C00000000180 0000000180000000038000000003000000000700000000060000000006000000000E0000 00000C000000000C000000001C0000000018000000001800000000380000000030000000 00300000000070000000006000000000E000000000C000000000C000000001C000000001 800000000180000000038000000003000000000300000000070000000006000000000E00 0000000C000000000C000000001C00000000180000000018000000003800000000300000 00003000000000700000000060000000006000000000E000000000C000000001C0000000 018000000001800000000380000000030000000003000000000700000000060000000006 000000000E000000000C000000000C000000001C00000000180000000038000000003000 0000003000000000700000000060000000006000000000E000000000C000000000C00000 0001C0000000018000000003800000000300000000030000000007000000000600000000 06000000000E000000000C000000000C000000001C000000001800000000180000000038 000000003000000000700000000060000000006000000000E000000000C000000000C000 000000225B7BC32D>I<0003FC0000001FFF8000003E07C00000F801F00001F000F80003 E0007C0003C0003C0007C0003E000F80001F000F80001F001F00000F801F00000F803F00 000FC03F00000FC03F00000FC03F00000FC07E000007E07E000007E07E000007E07E0000 07E07E000007E0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007 F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0 FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE000007F0FE 000007F07E000007E07E000007E07E000007E07E000007E07F00000FE03F00000FC03F00 000FC03F00000FC03F00000FC01F00000F801F80001F800F80001F000F80001F0007C000 3E0007C0003E0003E0007C0001F000F80000F801F000003E07C000001FFF80000003FC00 00243F7CBC2D>I<0000C0000003C0000007C000001FC000007FC00007FFC000FFFFC000 FF9FC000F81FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000 001FC000001FC000001FC000001FC000001FC000007FF000FFFFFFF8FFFFFFF8FFFFFFF8 1D3D78BC2D>I<0007FC0000003FFF800000FFFFE00001F00FF800078003FC000F0001FE 000E0000FF001C00007F803800003FC03000003FC07000001FE06000001FE06000001FE0 FE00000FF0FF00000FF0FF80000FF0FF80000FF0FF80000FF0FF80000FF0FF80000FF07F 00000FF01C00000FF00000000FE00000001FE00000001FE00000001FC00000003FC00000 003F800000007F800000007F00000000FE00000001FC00000001FC00000003F800000007 F00000000FE00000000FC00000001F800000003E000000007C00000000F800000001F000 000003E000000003C000000007800000000F000030001E000030003C0000300078000030 00F000006001E000006003C0000060078000006007000000E00FFFFFFFE01FFFFFFFE03F FFFFFFE07FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0243D7CBC2D>I<0007FC0000 003FFF800000FFFFE00001F807F80007C003FC000F0001FE000E0000FF001C00007F801F 80007F803FC0003FC03FE0003FC03FE0003FC03FE0003FC03FE0003FC03FE0003FC01FC0 003FC00700003FC00000003F800000007F800000007F800000007F00000000FF00000000 FE00000001FC00000003F800000003F00000000FC00000003F0000001FFC0000001FFF80 0000000FE000000003F800000001FC00000000FE000000007F000000007F800000003FC0 0000003FC00000003FE00000003FE00000001FE00000001FF00000001FF00C00001FF03F 00001FF07F80001FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0001FF0FFC0003FE0FF80 003FE07F00003FC07000003FC07000007F803800007F801C0000FF000F0001FE0007C003 FC0003F80FF00000FFFFE000003FFF80000007FC0000243F7CBC2D>I<0000000E000000 000E000000001E000000003E000000003E000000007E00000000FE00000000FE00000001 FE00000003FE00000003FE00000006FE0000000EFE0000000CFE00000018FE00000038FE 00000030FE00000060FE000000E0FE000000C0FE00000180FE00000380FE00000300FE00 000600FE00000E00FE00000C00FE00001800FE00003800FE00003000FE00006000FE0000 E000FE0000C000FE00018000FE00038000FE00030000FE00060000FE000E0000FE000C00 00FE00180000FE00380000FE00300000FE00600000FE00E00000FE00FFFFFFFFFFFFFFFF FFFFFFFFFFFFFF000000FE00000000FE00000000FE00000000FE00000000FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000001FF00 0001FFFFFF0001FFFFFF0001FFFFFF283E7EBD2D>I<060000030007C0000F0007F800FE 0007FFFFFC0007FFFFFC0007FFFFF00007FFFFE00007FFFFC00007FFFF0000063FF80000 060000000006000000000600000000060000000006000000000600000000060000000006 00000000060000000006000000000600000000060000000006000000000601FE0000060F FF8000063E03E000067001F80006E000FC0007C0007E000780003F000700003F80060000 1F800000001FC00000001FC00000001FE00000000FE00000000FE00000000FE00000000F F00000000FF00000000FF00000000FF03E00000FF07F00000FF0FF80000FF0FF80000FF0 FF80000FF0FF80000FF0FF00000FE0FE00001FE0E000001FE06000001FC07000001FC030 00003F803800003F801C00007F001E0000FE000F0001FC0007C003F80003F00FE00000FF FFC000003FFF00000007F80000243F7CBC2D>I<00001FE0000000FFF8000003FFFE0000 0FF01F00001F800780003F000380007E000FC000FC001FC001F8003FC003F0003FC003F0 003FC007E0003FC00FE0001F800FC0000F001FC00000001FC00000001F800000003F8000 00003F800000003F800000007F800000007F000000007F01FE00007F07FF8000FF0E03E0 00FF1C01F000FF3800FC00FF70007E00FF60003E00FFE0003F00FFC0001F80FFC0001FC0 FF80001FC0FF80001FE0FF80000FE0FF80000FE0FF00000FF0FF00000FF0FF00000FF0FF 00000FF0FF00000FF0FF00000FF07F00000FF07F00000FF07F00000FF07F00000FF07F00 000FF03F80000FF03F80000FE03F80000FE01F80000FE01F80001FC01FC0001FC00FC000 1F800FC0003F8007E0003F0003F0007E0001F800FC0000FC01F800007E07F000003FFFE0 00000FFF80000003FC0000243F7CBC2D>I<300000000038000000003E000000003FFFFF FFFC3FFFFFFFFC3FFFFFFFFC3FFFFFFFF87FFFFFFFF87FFFFFFFF07FFFFFFFE070000000 E060000001C0600000038060000003006000000700C000000E00C000000C00C000001C00 C00000380000000030000000007000000000E000000001C0000000018000000003800000 00070000000007000000000E000000000E000000001C000000001C000000003C00000000 380000000078000000007800000000F800000000F000000001F000000001F000000001F0 00000003F000000003F000000003F000000007F000000007E000000007E000000007E000 00000FE00000000FE00000000FE00000000FE00000000FE00000001FE00000001FE00000 001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0000000 1FE00000000FC00000000780000026407BBD2D>I<0003FC0000001FFF8000007FFFE000 00FC03F80001E000FC0003C0003E000780001F000F00000F000E00000F801E000007801C 000007C03C000003C03C000003C03C000003C03E000003C03E000003C03F000003C03F00 0007C03F800007801FE0000F801FF0000F001FFC001E000FFE003C000FFF80780007FFC0 F00003FFF1E00001FFFF800000FFFF0000003FFF0000001FFFC000000FFFE000001FFFF8 000078FFFC0001F07FFE0003C01FFF0007800FFF800F0003FFC01F0001FFC01E00007FE0 3C00003FE07C00000FE078000007F078000003F0F8000003F0F0000001F0F0000001F0F0 000000F0F0000000F0F0000000F0F0000000F0F8000000E078000001E078000001E07C00 0001C03E000003C01E000007801F00000F000FC0001E0007E0007C0001FC03F80000FFFF E000001FFF80000003FC0000243F7CBC2D>I<0003FC0000001FFF0000003FFFC00000FE 07F00001F801F80003F000FC0007E0007C000FE0007E001FC0003F001F80003F003F8000 1F803F80001F807F80001F807F00001FC07F00001FC0FF00001FC0FF00000FE0FF00000F E0FF00000FE0FF00000FE0FF00000FE0FF00000FF0FF00000FF0FF00000FF0FF00000FF0 FF00000FF0FF00000FF07F00001FF07F00001FF07F80001FF03F80001FF03F80003FF01F 80003FF00FC0007FF007C0006FF007E000EFF003F001CFF000F8038FF0007C070FF0001F FE0FE00007F80FE00000000FE00000001FE00000001FE00000001FC00000001FC0000000 1FC00000003F800000003F800F00003F001F80007F003FC0007E003FC0007E003FC000FC 003FC001F8003F8001F8003F0003F0001C0007E0001E001FC0000FC07F000003FFFE0000 01FFF80000003FC00000243F7CBC2D>I<00000007000000000000000700000000000000 07000000000000000F800000000000000F800000000000001FC00000000000001FC00000 000000001FC00000000000003FE00000000000003FE00000000000003FE0000000000000 7FF00000000000006FF00000000000006FF0000000000000CFF8000000000000C7F80000 00000000C7F800000000000187FC00000000000183FC00000000000183FC000000000003 01FE00000000000301FE00000000000301FE00000000000600FF00000000000600FF0000 0000000E00FF80000000000C007F80000000000C007F80000000001C007FC00000000018 003FC00000000018003FC00000000030003FE00000000030001FE00000000030001FE000 00000060001FF00000000060000FF00000000060000FF000000000C00007F800000000C0 0007F800000000C00007F800000001800003FC00000001FFFFFFFC00000003FFFFFFFE00 000003FFFFFFFE00000003000001FE00000007000001FF00000006000000FF0000000600 0000FF0000000C000000FF8000000C0000007F8000000C0000007F800000180000007FC0 0000180000003FC00000180000003FC00000300000001FE00000300000001FE000007000 00001FE00000700000000FF00000F00000000FF00001F00000000FF80003F80000000FF8 000FFE0000003FFE00FFFFC00007FFFFF8FFFFC00007FFFFF8FFFFC00007FFFFF83D417D C044>65 DI<0000003FF0000C000003FFFE001C00001FFFFF801C00 007FE00FC03C0000FF0001F07C0003FC0000787C0007F000003CFC001FE000000FFC003F C0000007FC007F80000003FC00FF00000003FC01FE00000001FC01FC00000000FC03FC00 000000FC07F8000000007C07F8000000007C0FF0000000003C0FF0000000003C1FE00000 00001C1FE0000000001C3FE0000000001C3FC0000000001C3FC0000000000C7FC0000000 000C7FC0000000000C7FC0000000000C7F800000000000FF800000000000FF8000000000 00FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000 FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000007F 8000000000007FC000000000007FC0000000000C7FC0000000000C3FC0000000000C3FC0 000000000C3FE0000000000C1FE0000000001C1FE000000000180FF000000000180FF000 0000001807F8000000003807F8000000003003FC000000007001FC000000006001FE0000 0000E000FF00000001C0007F8000000380003FC000000780001FE000000F000007F00000 1E000003FC00003C000000FF0000F00000007FE007E00000001FFFFF8000000003FFFE00 000000003FF0000036427BBF41>IIII<0000003F F0000C00000003FFFE001C0000001FFFFF801C0000007FE00FC03C000000FF0001F07C00 0003FC0000787C000007F000003CFC00001FE000000FFC00003FC0000007FC00007F8000 0003FC0000FF00000003FC0001FE00000001FC0001FC00000000FC0003FC00000000FC00 07F8000000007C0007F8000000007C000FF0000000003C000FF0000000003C001FE00000 00001C001FE0000000001C003FE0000000001C003FC0000000001C003FC0000000000C00 7FC0000000000C007FC0000000000C007FC0000000000C007F80000000000000FF800000 00000000FF80000000000000FF80000000000000FF80000000000000FF80000000000000 FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF800000 00000000FF80000000000000FF8000001FFFFFF07F8000001FFFFFF07FC000001FFFFFF0 7FC00000000FFE007FC000000003FC003FC000000003FC003FC000000003FC003FE00000 0003FC001FE000000003FC001FE000000003FC000FF000000003FC000FF000000003FC00 07F800000003FC0007F800000003FC0003FC00000003FC0001FE00000003FC0001FE0000 0003FC0000FF00000003FC00007F80000007FC00003FC0000007FC00001FE000000FFC00 0007F800001CFC000003FC0000387C000000FF0000F03C0000007FF007E01C0000001FFF FF800C00000003FFFE0000000000003FF00000003C427BBF47>III76 DII<000000FFE000000000 0007FFFC00000000003FC07F8000000000FE000FE000000001F80003F000000007E00000 FC0000000FC000007E0000001F8000003F0000003F0000001F8000007E0000000FC00000 FE0000000FE00001FC00000007F00003F800000003F80003F800000003F80007F0000000 01FC0007F000000001FC000FE000000000FE001FE000000000FF001FE000000000FF001F C0000000007F003FC0000000007F803FC0000000007F803FC0000000007F807FC0000000 007FC07F80000000003FC07F80000000003FC07F80000000003FC0FF80000000003FE0FF 80000000003FE0FF80000000003FE0FF80000000003FE0FF80000000003FE0FF80000000 003FE0FF80000000003FE0FF80000000003FE0FF80000000003FE0FF80000000003FE0FF 80000000003FE0FF80000000003FE07F80000000003FC07FC0000000007FC07FC0000000 007FC07FC0000000007FC07FC0000000007FC03FC0000000007F803FE000000000FF801F E000000000FF001FE000000000FF001FE000000000FF000FF000000001FE000FF0000000 01FE0007F800000003FC0003F800000003F80003FC00000007F80001FC00000007F00000 FE0000000FE000007F0000001FC000003F8000003F8000001F8000003F0000000FE00000 FE00000007F00001FC00000001F80003F000000000FE000FE0000000003FC07F80000000 0007FFFC000000000000FFE00000003B427BBF46>II82 D<0007FC0018003FFF803800FFFFE03801FC03F87803F0007C78 07C0001EF80F80000FF81F000007F83F000003F83E000001F87E000000F87E000000F87C 00000078FC00000078FC00000078FC00000038FC00000038FC00000038FE00000018FE00 000018FF00000018FF000000187F800000007FC00000007FE00000003FF80000003FFF00 00001FFFF000000FFFFF00000FFFFFF00007FFFFFC0001FFFFFE0000FFFFFF80003FFFFF C00007FFFFE000007FFFE0000007FFF00000007FF80000001FF80000000FFC00000007FC 00000003FC00000001FE00000001FEC0000000FEC0000000FEC0000000FEC00000007EC0 0000007EE00000007EE00000007EE00000007EE00000007CF00000007CF0000000FCF800 0000F8FC000001F8FE000001F0FF000003F0FF800007E0FBE0000FC0F1F8001F80F07F00 7F00E01FFFFC00E007FFF000C0007FC00027427BBF32>I<3FFFFFFFFFFFFF003FFFFFFF FFFFFF003FFFFFFFFFFFFF003FE000FFC001FF003F00007F80003F007E00007F80001F80 7C00007F80000F807800007F800007807000007F800003807000007F800003807000007F 800003806000007F800001806000007F800001806000007F800001806000007F80000180 6000007F80000180C000007F800000C0C000007F800000C0C000007F800000C0C000007F 800000C0C000007F800000C00000007F800000000000007F800000000000007F80000000 0000007F800000000000007F800000000000007F800000000000007F800000000000007F 800000000000007F800000000000007F800000000000007F800000000000007F80000000 0000007F800000000000007F800000000000007F800000000000007F800000000000007F 800000000000007F800000000000007F800000000000007F800000000000007F80000000 0000007F800000000000007F800000000000007F800000000000007F800000000000007F 800000000000007F800000000000007F800000000000007F800000000000007F80000000 0000007F800000000000007F800000000000007F800000000000007F800000000000007F 800000000000007F80000000000000FFC0000000000001FFE00000000007FFFFFFF80000 0007FFFFFFF800000007FFFFFFF800003A3E7DBD41>I87 D<7FFFFF8001FFFFE07FFFFF8001FFFFE07FFFFF8001 FFFFE000FFFC00003FFC00003FF800001FE000001FF000000F8000001FF000000F000000 0FF800000E00000007FC00000C00000007FC00001C00000003FE00003800000001FF0000 3000000001FF00006000000000FF8000E0000000007FC000C0000000007FC00180000000 003FE00380000000001FF00300000000001FF00600000000000FF80E000000000007FC0C 000000000007FC18000000000003FE38000000000001FF30000000000001FF6000000000 0000FFE00000000000007FC00000000000007FC00000000000003FE00000000000001FF0 0000000000001FF00000000000000FF80000000000001FFC0000000000001FFC00000000 000033FE00000000000071FF00000000000061FF000000000000C0FF800000000001C07F C00000000001807FC00000000003003FE00000000007001FF00000000006001FF0000000 000C000FF8000000001C0007FC00000000380007FC00000000300003FE00000000700001 FF00000000E00001FF00000000C00000FF800000018000007FC00000038000007FC00000 030000003FE00000070000001FF000000E0000001FF000001E0000000FF800003E000000 0FFC0000FF0000000FFE0007FFC000003FFF00FFFFF00001FFFFFEFFFFF00001FFFFFEFF FFF00001FFFFFE3F3E7EBD44>I<001FF0000000FFFC000003E03F00000F000FC0001C00 07E0001F0003F0003F8001F8003FC000FC003FC000FC003FC000FC003FC0007E001F8000 7E000F00007E000000007E000000007E000000007E000000007E0000001FFE000003FFFE 00001FF87E00007F807E0001FC007E0007F0007E000FE0007E001FC0007E003F80007E00 7F80007E007F00007E007F00007E03FE00007E03FE00007E03FE00007E03FE0000FE03FE 0000FE03FE0001FE037F0001BE037F0003BE033F80071F061FC00E1F8E0FF03C0FFC03FF F007F8003FC003E0282A7CA82D>97 D<01F800000000FFF800000000FFF800000000FFF8 0000000007F80000000003F80000000001F80000000001F80000000001F80000000001F8 0000000001F80000000001F80000000001F80000000001F80000000001F80000000001F8 0000000001F80000000001F80000000001F80000000001F80000000001F80000000001F8 0000000001F80000000001F807F8000001F81FFF000001F8780FC00001F9E003F00001FB 8001F80001FF0000FC0001FE00007E0001FC00003F0001FC00001F8001F800001F8001F8 00001FC001F800000FC001F800000FE001F800000FE001F8000007E001F8000007F001F8 000007F001F8000007F001F8000007F001F8000007F001F8000007F001F8000007F001F8 000007F001F8000007F001F8000007F001F8000007E001F800000FE001F800000FE001F8 00000FE001F800000FC001F800001FC001F800001F8001FC00003F0001FE00003F0001F6 00007E0001F70000FC0001E38001F80001C1C003E00001C0F81F800001803FFE00000000 07F000002C407EBE32>I<0001FF0000000FFFE000003F00F800007C001E0001F8000700 03F0001F0007E0003F800FC0007F800FC0007F801F80007F801F80007F803F00003F003F 00001E007F000000007F000000007E00000000FE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 00007F000000007F000000007F000000003F000000C03F800000C01F800001C01FC00001 800FC000038007E000070003F000060001F8001E0000FC003800003F01F000000FFFC000 0001FE0000222A7DA828>I<00000001F800000000FFF800000000FFF800000000FFF800 00000007F80000000003F80000000001F80000000001F80000000001F80000000001F800 00000001F80000000001F80000000001F80000000001F80000000001F80000000001F800 00000001F80000000001F80000000001F80000000001F80000000001F80000000001F800 00000001F8000000FF01F8000007FFC1F800001F80F1F800007C0039F80001F8001DF800 03F0000FF80007E00007F8000FC00003F8000FC00003F8001F800001F8003F800001F800 3F000001F8007F000001F8007F000001F8007F000001F8007E000001F800FE000001F800 FE000001F800FE000001F800FE000001F800FE000001F800FE000001F800FE000001F800 FE000001F800FE000001F800FE000001F8007E000001F8007F000001F8007F000001F800 3F000001F8003F800001F8001F800003F8001F800003F8000FC00007F80007E0000FF800 03F0000DFC0001F8003DFE0000FC0071FFF0003F01E1FFF0000FFF81FFF00001FE01F800 2C407DBE32>I<0003FC0000001FFF8000007E07E00000F801F00001F000F80003E0007C 0007C0003E000FC0003F001F80001F001F80001F803F00001F803F00000F807F00000F80 7F00000FC07E00000FC07E00000FC0FE00000FC0FE00000FC0FFFFFFFFC0FFFFFFFFC0FE 00000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007F00 0000007F000000007F000000003F000000C03F800000C01F800001C00FC00001800FC000 038007E000070003F0000E0001F8001C0000FC003800003F01F000000FFFC0000001FE00 00222A7DA828>I<00001FC00000FFF00003F0380007C0FC000F81FE001F81FE003F01FE 003E01FE007E01FE007E00FC00FC000000FC000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 FFFFFF00FFFFFF00FFFFFF0000FC000000FC000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000001FE0000 7FFFFE007FFFFE007FFFFE001F407FBF1C>I<000000007E000003FC01FF00000FFF0787 80003E07CE0F8000FC03FC0F8001F801F80F8003F000FC070003E0007C000007E0007E00 0007E0007E00000FC0003F00000FC0003F00000FC0003F00000FC0003F00000FC0003F00 000FC0003F00000FC0003F00000FC0003F000007E0007E000007E0007E000003E0007C00 0003F000FC000001F801F8000001FC03F0000001BE07C00000038FFF0000000303FC0000 000700000000000700000000000700000000000700000000000780000000000780000000 0007C00000000003E00000000003FFFFF0000001FFFFFE000001FFFFFF8000007FFFFFE0 0001FFFFFFF80007C0001FF8001F800003FC003F000000FE003E0000007E007C0000003E 007C0000003F00F80000001F00F80000001F00F80000001F00F80000001F00F80000001F 00FC0000003F007C0000003E007E0000007E003F000000FC001F800001F8000FC00003F0 0003F0000FC00000FE007F0000003FFFFC00000003FFC00000293D7EA82D>I<01F80000 0000FFF800000000FFF800000000FFF80000000007F80000000003F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F803FC000001F80FFF 800001F83C0FC00001F8F003E00001F9C003F00001FB8001F80001FB0001F80001FF0000 FC0001FE0000FC0001FE0000FC0001FC0000FC0001FC0000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0003FC0001FE00FFFFF07F FFF8FFFFF07FFFF8FFFFF07FFFF82D3F7EBE32>I<01C00007F0000FF8000FF8000FF800 0FF8000FF80007F00001C000000000000000000000000000000000000000000000000000 00000000000000000000000001F8007FF8007FF8007FF80007F80003F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80003FC00FFFFE0FFFFE0FFFFE0133D7EBC19>I<0000700001 FC0003FE0003FE0003FE0003FE0003FE0001FC0000700000000000000000000000000000 000000000000000000000000000000000000000000000000FE003FFE003FFE003FFE0001 FE0000FE00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000 7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000 7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000 7E00007E00007E00007E00007E00007E00007E00007E3C007E7E007CFF00FCFF00FCFF00 F8FF01F8FE01F07803E03E07C00FFF0001FC00175084BC1C>I<01F800000000FFF80000 0000FFF800000000FFF80000000007F80000000003F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000 000001F80000000001F80000000001F80000000001F80000000001F8007FFF8001F8007F FF8001F8007FFF8001F8001FFC0001F8000FE00001F8000F800001F8001F000001F8001C 000001F80038000001F80070000001F800E0000001F803C0000001F80700000001F80E00 000001F81E00000001F83E00000001F87F00000001F9FF80000001FB9FC0000001FF0FC0 000001FE07E0000001FC07F0000001F803F0000001F801F8000001F801FC000001F800FE 000001F8007E000001F8003F000001F8003F800001F8001F800001F8000FC00001F8000F E00001F80007F00001F80007F00001F80007F80003FC0007FE00FFFFF03FFFE0FFFFF03F FFE0FFFFF03FFFE02B3F7EBE30>I<01F800FFF800FFF800FFF80007F80003F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80003FC00FFFFF0FFFFF0FFFFF0143F7EBE19>I<01F803FC00 01FE0000FFF80FFF8007FFC000FFF83C0FC01E07E000FFF8F003E07801F00007F9C003F0 E001F80003FB8001F9C000FC0001FB0001F98000FC0001FF0000FF80007E0001FE0000FF 00007E0001FE0000FF00007E0001FC0000FE00007E0001FC0000FE00007E0001F80000FC 00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC 00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC 00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC 00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC 00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC 00007E0001F80000FC00007E0001F80000FC00007E0001F80000FC00007E0003FC0001FE 0000FF00FFFFF07FFFF83FFFFCFFFFF07FFFF83FFFFCFFFFF07FFFF83FFFFC46287EA74B >I<01F803FC0000FFF80FFF8000FFF83C0FC000FFF8F003E00007F9C003F00003FB8001 F80001FB0001F80001FF0000FC0001FE0000FC0001FE0000FC0001FC0000FC0001FC0000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000 FC0003FC0001FE00FFFFF07FFFF8FFFFF07FFFF8FFFFF07FFFF82D287EA732>I<0001FE 0000000FFFC000003F03F000007C00F80001F0003E0003E0001F0007C0000F8007C0000F 800F800007C01F800007E01F000003E03F000003F03F000003F07E000001F87E000001F8 7E000001F87E000001F8FE000001FCFE000001FCFE000001FCFE000001FCFE000001FCFE 000001FCFE000001FCFE000001FCFE000001FC7E000001F87E000001F87E000001F87F00 0003F83F000003F03F000003F01F800007E00F800007C00FC0000FC007C0000F8003E000 1F0001F0003E0000FC00FC00003F03F000000FFFC0000001FE0000262A7DA82D>I<01F8 07F80000FFF81FFF0000FFF8780FC000FFF9E003F00003FB8001F80001FF0000FC0001FE 00007E0001FC00007F0001FC00003F8001F800001F8001F800001FC001F800001FC001F8 00000FE001F800000FE001F800000FE001F800000FF001F8000007F001F8000007F001F8 000007F001F8000007F001F8000007F001F8000007F001F8000007F001F8000007F001F8 000007F001F800000FE001F800000FE001F800000FE001F800000FE001F800001FC001F8 00001FC001F800003F8001FC00003F0001FE00007F0001FE0000FE0001FF0001FC0001FB 8003F80001F9C007E00001F8F81F800001F83FFE000001F807F0000001F80000000001F8 0000000001F80000000001F80000000001F80000000001F80000000001F80000000001F8 0000000001F80000000001F80000000001F80000000001F80000000001F80000000003FC 00000000FFFFF0000000FFFFF0000000FFFFF00000002C3A7EA732>I<0000FF000C0000 07FFC01C00001F80F01C00007E00381C0000FC001C3C0003F8000E3C0007F000077C0007 E000037C000FC00003FC001FC00001FC003F800001FC003F800000FC007F000000FC007F 000000FC007F000000FC007F000000FC00FE000000FC00FE000000FC00FE000000FC00FE 000000FC00FE000000FC00FE000000FC00FE000000FC00FE000000FC00FE000000FC00FF 000000FC007F000000FC007F000000FC007F000000FC003F800000FC003F800001FC001F C00001FC000FC00003FC000FE00003FC0007E00007FC0003F0000EFC0001F8001CFC0000 7E0078FC00003F01E0FC00000FFFC0FC000001FE00FC0000000000FC0000000000FC0000 000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000 000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000001FE0000 00007FFFF80000007FFFF80000007FFFF82D3A7DA730>I<03F00FC0FFF03FF0FFF0F0F8 FFF1C3FC07F183FC03F383FC01F703FC01F603FC01F601F801FE006001FC000001FC0000 01FC000001FC000001F8000001F8000001F8000001F8000001F8000001F8000001F80000 01F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80000 01F8000001F8000001F8000001F8000001F8000001F8000003FC0000FFFFF800FFFFF800 FFFFF8001E287EA723>I<007FC06003FFF8E007C03DE01E000FE03C0003E0780001E078 0001E0700000E0F00000E0F0000060F0000060F8000060F8000060FC000060FF0000007F C000007FFE00003FFFE0001FFFFC0007FFFE0003FFFF80007FFFC00007FFE000003FE000 000FF0C00003F0C00001F8C00000F8E00000F8E0000078E0000078F0000078F0000078F8 000078F80000F0FC0000F0FC0001E0FE0001C0F7800780F1E01F00E0FFFC00C01FE0001D 2A7DA824>I<001800000018000000180000001800000018000000180000003800000038 00000038000000380000007800000078000000F8000000F8000001F8000003F8000007F8 00001FFFFFC0FFFFFFC0FFFFFFC001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8 000001F8000001F8000001F8000001F8000001F8000001F8006001F8006001F8006001F8 006001F8006001F8006001F8006001F8006001F8006000FC00E000FC00C000FC00C0007E 01C0003F0380001F87000007FE000001F8001B397EB723>I<01F80000FC00FFF8007FFC 00FFF8007FFC00FFF8007FFC0007F80003FC0003F80001FC0001F80000FC0001F80000FC 0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC 0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC 0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC0001F80000FC 0001F80000FC0001F80000FC0001F80000FC0001F80001FC0001F80001FC0001F80001FC 0001F80003FC0000F80003FC0000FC0007FC0000FC000EFE00007C001CFF00003E0038FF F8001F80F0FFF80007FFE0FFF80000FF00FC002D297EA732>III<7FFFC00FFFE07FFFC00FFFE0 7FFFC00FFFE003FF0007FE0000FF0003F800007F0003E000003F0003C000003F80038000 001FC0070000000FC00E00000007E00C00000007F01800000003F83800000001F8700000 0000FCE000000000FEC0000000007F80000000003F80000000001F80000000000FC00000 00000FE0000000001FE0000000003BF00000000071F800000000E1FC00000000C0FE0000 0001807E00000003803F00000007003F8000000E001FC000000C000FC000001C0007E000 00380007F00000F80003F80001F80003FC000FFC0007FE00FFFF001FFFF8FFFF001FFFF8 FFFF001FFFF82D277FA630>II<1FFFFFFF801FFFFFFF801FE0007F801F00007F001E0000FE001C0001 FC001C0003FC00180003F800380007F00038000FE00030001FE00030001FC00030003F80 0030007F000030007F00000000FE00000001FC00000003FC00000003F800000007F00000 000FE00000001FE00000001FC00180003F800180007F000180007F00018000FE00018001 FC00018003FC00038003F800038007F00003000FE00003001FE00007001FC0000F003F80 000F007F00003F00FF0001FF00FFFFFFFF00FFFFFFFF0021277EA628>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fp ecbx1095 10.95 24 /Fp 24 122 df<00000007FF80001C000000FFFFF8003C000007FFFFFE007C00003FFFFF FF80FC0000FFFF003FE1FC0003FFF00007F7FC0007FFC00001FFFC001FFF000000FFFC00 3FFC0000003FFC007FF80000001FFC00FFF00000001FFC01FFE00000000FFC03FFE00000 0007FC07FFC000000003FC07FF8000000003FC0FFF8000000001FC0FFF0000000001FC1F FF0000000000FC1FFF0000000000FC3FFE0000000000FC3FFE0000000000FC3FFE000000 00007C7FFE00000000007C7FFE00000000007C7FFC0000000000007FFC000000000000FF FC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000 000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FF FC000000000000FFFC000000000000FFFC0000000000007FFC0000000000007FFC000000 0000007FFE0000000000007FFE00000000003C3FFE00000000003C3FFE00000000003C3F FE00000000003C1FFF00000000003C1FFF00000000007C0FFF0000000000780FFF800000 00007807FF8000000000F807FFC000000000F003FFE000000001F001FFE000000003E000 FFF000000007C0007FF80000000FC0003FFE0000001F80001FFF0000003F000007FFC000 00FE000003FFF00003F8000000FFFF001FF00000003FFFFFFFC000000007FFFFFF000000 0000FFFFF8000000000007FF8000003E407ABE4B>67 DI73 D80 D<0001FF8001C0001FFFF803C0007FFFFE07C001FFFFFF8FC003FF007FDFC0 07F8000FFFC00FF00003FFC01FE00001FFC03FC000007FC03FC000003FC07FC000003FC0 7F8000001FC07F8000000FC0FF8000000FC0FF80000007C0FF80000007C0FFC0000007C0 FFC0000007C0FFE0000003C0FFE0000003C0FFF0000003C0FFFC00000000FFFF00000000 7FFFF80000007FFFFF8000007FFFFFFC00003FFFFFFF80001FFFFFFFE0001FFFFFFFF800 0FFFFFFFFC0007FFFFFFFE0003FFFFFFFF0001FFFFFFFF80007FFFFFFFC0001FFFFFFFC0 0007FFFFFFE000007FFFFFE0000003FFFFF00000001FFFF000000003FFF000000000FFF8 000000007FF8000000003FF8F00000003FF8F00000001FF8F00000001FF8F00000000FF8 F00000000FF8F80000000FF8F80000000FF8F80000000FF0FC0000000FF0FE0000000FF0 FE0000001FE0FF0000001FE0FF8000003FC0FFE000003FC0FFF000007F80FFFE0001FF00 FEFFE007FE00FC3FFFFFF800F80FFFFFF000F003FFFF8000E0001FFC00002D407ABE3A> 83 D 87 D<0007FF800000003FFFF0000001FFFFFC000003FC03FF000007E000FFC0000FF800 7FE0001FF8003FF0001FFC003FF0001FFC001FF8001FFC001FF8001FFC000FFC001FFC00 0FFC000FF8000FFC0007F0000FFC0001C0000FFC000000000FFC000000000FFC00000000 0FFC00000003FFFC000001FFFFFC00000FFFFFFC00007FFF8FFC0001FFF00FFC0007FF80 0FFC000FFF000FFC001FFC000FFC003FF8000FFC007FF8000FFC007FF0000FFC00FFF000 0FFC00FFE0000FFC00FFE0000FFC00FFE0000FFC00FFE0001FFC00FFE0001FFC00FFF000 3FFC007FF0003FFC007FF8007FFF003FFC01F7FFFC1FFE07E3FFFC07FFFF81FFFC01FFFE 007FFC001FF80000002E2B7DA932>97 D<00007FF0000003FFFF00001FFFFFC0007FE01F E000FF8003F001FF000FF803FE000FFC07FE001FFC0FFC001FFC1FFC001FFC1FF8001FFC 3FF8001FFC3FF8000FF87FF80007F07FF00001C07FF0000000FFF0000000FFF0000000FF F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0 000000FFF00000007FF00000007FF00000007FF80000007FF80000003FF800001E3FFC00 001E1FFC00003E0FFC00003C0FFE00007C07FF0000F803FF8001F000FFC003E0007FF00F C0001FFFFF000007FFFC0000007FE000272B7DA92E>99 D<0000000007F80000000007FF F80000000007FFF80000000007FFF80000000007FFF800000000003FF800000000001FF8 00000000001FF800000000001FF800000000001FF800000000001FF800000000001FF800 000000001FF800000000001FF800000000001FF800000000001FF800000000001FF80000 0000001FF800000000001FF800000000001FF800000000001FF800000000001FF8000000 7FE01FF8000003FFFC1FF800001FFFFF1FF800007FF00FDFF80000FFC003FFF80003FF00 00FFF80007FE00007FF8000FFE00003FF8000FFC00001FF8001FFC00001FF8003FF80000 1FF8003FF800001FF8007FF800001FF8007FF000001FF8007FF000001FF8007FF000001F F800FFF000001FF800FFF000001FF800FFF000001FF800FFF000001FF800FFF000001FF8 00FFF000001FF800FFF000001FF800FFF000001FF800FFF000001FF800FFF000001FF800 7FF000001FF8007FF000001FF8007FF000001FF8007FF800001FF8003FF800001FF8003F F800001FF8001FF800001FF8001FFC00003FF8000FFC00007FF80007FE0000FFF80003FF 0001FFFC0001FF8007FFFFE0007FE01F9FFFE0001FFFFE1FFFE00007FFF81FFFE000007F C01FE00033407DBE3A>I<0000FFE0000007FFFC00003FFFFF00007FE0FF8001FF803FC0 03FF001FE007FE000FF00FFC000FF80FFC0007FC1FF80007FC3FF80003FE3FF80003FE3F F80003FE7FF00003FE7FF00003FF7FF00003FFFFF00001FFFFF00001FFFFF00001FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000FFF0000000FFF0000000FFF0000000FFF000 00007FF00000007FF00000007FF00000003FF80000003FF800000F1FF800000F1FFC0000 1F0FFC00001E07FE00003E03FE00007C01FF0000F800FFC003F0007FF01FE0001FFFFFC0 0007FFFE0000007FF000282B7DA92F>I<0003FF8003F0003FFFF81FFC00FFFFFE7FFE03 FF01FFFCFE07FC007FE1FE0FFC007FE0FE1FF8003FF0FE3FF8003FF87C3FF0001FF8003F F0001FF8007FF0001FFC007FF0001FFC007FF0001FFC007FF0001FFC007FF0001FFC007F F0001FFC007FF0001FFC003FF0001FF8003FF0001FF8003FF8003FF8001FF8003FF0000F FC007FE00007FC007FC00007FF01FF800007FFFFFE00000F3FFFF800000F03FF8000001E 00000000001E00000000001F00000000001F00000000001F00000000001F80000000001F C0000000001FFFFFFF00000FFFFFFFF0000FFFFFFFFC0007FFFFFFFF0007FFFFFFFF8003 FFFFFFFFC003FFFFFFFFE00FFFFFFFFFE01FC00001FFF03F8000001FF07F0000000FF87F 00000007F8FE00000007F8FE00000003F8FE00000003F8FE00000003F8FE00000003F8FF 00000007F87F00000007F07F8000000FF03FC000001FE01FE000003FC00FF80000FF8003 FF800FFE0000FFFFFFF800001FFFFFC0000001FFFC00002F3D7DA834>103 D<00FF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000000000 07FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003 FF000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF 000000000003FF000000000003FF000000000003FF000000000003FF000000000003FF00 0000000003FF000000000003FF003FF0000003FF00FFFE000003FF03FFFF800003FF0FC0 FFC00003FF1E007FE00003FF3C003FF00003FF78003FF00003FFF0003FF00003FFE0001F F80003FFC0001FF80003FFC0001FF80003FF80001FF80003FF80001FF80003FF80001FF8 0003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF800 03FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003 FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF 00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00 001FF80003FF00001FF80003FF00001FF800FFFFFC07FFFFE0FFFFFC07FFFFE0FFFFFC07 FFFFE0FFFFFC07FFFFE0333F7CBE3A>I<01F80003FC0007FE000FFF001FFF801FFF801F FF801FFF801FFF801FFF800FFF0007FE0003FC0001F80000000000000000000000000000 000000000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003 FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003 FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003 FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF815407CBF1D>I< 00FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00 03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFFC FFFFFCFFFFFCFFFFFC163F7CBE1D>108 D<01FE003FF00001FF8000FFFE00FFFE0007FF F000FFFE03FFFF801FFFFC00FFFE0FC0FFC07E07FE00FFFE1E007FE0F003FF0007FE3C00 3FF1E001FF8003FE78003FF3C001FF8003FEF0003FF78001FF8003FFE0001FFF0000FFC0 03FFC0001FFE0000FFC003FFC0001FFE0000FFC003FF80001FFC0000FFC003FF80001FFC 0000FFC003FF80001FFC0000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF 00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000 FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF0000 1FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC0 03FF00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF00001FF8 0000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC003FF 00001FF80000FFC003FF00001FF80000FFC003FF00001FF80000FFC0FFFFFC07FFFFE03F FFFFFFFFFC07FFFFE03FFFFFFFFFFC07FFFFE03FFFFFFFFFFC07FFFFE03FFFFF50297CA8 57>I<01FE003FF00000FFFE00FFFE0000FFFE03FFFF8000FFFE0FC0FFC000FFFE1E007F E00007FE3C003FF00003FE78003FF00003FEF0003FF00003FFE0001FF80003FFC0001FF8 0003FFC0001FF80003FF80001FF80003FF80001FF80003FF80001FF80003FF00001FF800 03FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003 FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF 00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00 001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF0000 1FF80003FF00001FF800FFFFFC07FFFFE0FFFFFC07FFFFE0FFFFFC07FFFFE0FFFFFC07FF FFE033297CA83A>I<00007FF000000003FFFE0000001FFFFFC000007FE03FF00000FF80 0FF80001FF0007FC0003FE0003FE0007FC0001FF000FF80000FF801FF80000FFC01FF800 00FFC03FF80000FFE03FF000007FE07FF000007FF07FF000007FF07FF000007FF07FF000 007FF0FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000 007FF8FFF000007FF8FFF000007FF8FFF000007FF8FFF000007FF87FF000007FF07FF000 007FF07FF000007FF07FF000007FF03FF80000FFE03FF80000FFE01FF80000FFC00FF800 00FF800FFC0001FF8007FE0003FF0003FF0007FE0001FF800FFC00007FE03FF000001FFF FFC0000007FFFF000000007FF000002D2B7DA934>I<01FE01FC00FFFE07FF80FFFE0FFF E0FFFE3F1FF0FFFE3C1FF007FE783FF803FEF03FF803FEE03FF803FFE03FF803FFC03FF8 03FFC01FF003FF800FE003FF80038003FF80000003FF80000003FF00000003FF00000003 FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF 00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFF0000FFFFFF00 00FFFFFF0000FFFFFF000025297DA82B>114 D<001FF80E0001FFFF3E0007FFFFFE000F E007FE001F8001FE003F0000FE007E00007E007C00003E00FC00003E00FC00001E00FC00 001E00FE00001E00FF00001E00FF80000000FFE0000000FFFF0000007FFFFC00007FFFFF 80003FFFFFE0001FFFFFF8000FFFFFFC0003FFFFFE0000FFFFFF00003FFFFF000003FFFF 8000000FFF80000001FFC0F000007FC0F000003FC0F800001FC0F800001FC0F800000FC0 FC00000FC0FC00000FC0FE00000F80FE00001F80FF00001F00FF80003F00FFE0007E00FF F803FC00FCFFFFF000F03FFFC000E007FE0000222B7DA929>I<00078000000780000007 80000007800000078000000F8000000F8000000F8000000F8000001F8000001F8000001F 8000003F8000007F8000007F800000FF800001FF800007FF80001FFFFFFCFFFFFFFCFFFF FFFCFFFFFFFC01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF 800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF 800001FF800001FF800001FF800001FF801E01FF801E01FF801E01FF801E01FF801E01FF 801E01FF801E01FF801E01FF801E00FF803C00FFC03C00FFC03C007FE078003FF0F0001F FFE00007FFC00000FF001F3B7EB928>I<00FF000007F800FFFF0007FFF800FFFF0007FF F800FFFF0007FFF800FFFF0007FFF80007FF00003FF80003FF00001FF80003FF00001FF8 0003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF800 03FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003 FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF 00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00001FF80003FF00 001FF80003FF00001FF80003FF00003FF80003FF00003FF80003FF00003FF80003FF0000 7FF80001FF0000FFF80001FF0000FFF80001FF8001FFFC0000FF8007DFFFE0007FE01F9F FFE0001FFFFE1FFFE00007FFF81FFFE00000FFE01FE000332A7CA83A>I 119 DII E %EndDVIPSBitmapFont /Fq 240[45 14[71{}2 90.9091 /CMSY10 rf %DVIPSBitmapFont: Fr ecrm1000 10 62 /Fr 62 123 df<01800060038000E0070001C00E0003801C0007001800060038000E0030 000C0070001C006000180060001800E0003800C0003000C0003000C0003000C0003000CE 003380FF803FE0FFC03FF0FFC03FF0FFC03FF07FC01FF07FC01FF03F800FE00E0003801C 1981B91C>16 D<1C0007007F001FC0FF803FE0FF803FE0FFC03FF0FFC03FF0FFC03FF07F C01FF01CC0073000C0003000C0003000C0003000C0003001C00070018000600180006003 8000E0030000C0070001C0060001800E0003801C00070038000E0070001C00600018001C 1980B91C>I<00000FF800FC0000007FFF07FF000001F807DF83C00007E001FF0FC0001F 8007FE1FE0003F000FFC1FE0007E000FFC1FE0007E000FF81FE000FC000FF81FE000FC00 0FF0078001F80007F0000001F80003F0000001F80003F0000001F80003F0000001F80003 F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0 000001F80003F0000001F80003F0000001F80003F00000FFFFFFFFFFF800FFFFFFFFFFF8 00FFFFFFFFFFF80001F80003F0000001F80003F0000001F80003F0000001F80003F00000 01F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001 F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F8 0003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F800 03F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003 F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000003FC0007F8 00007FFFE0FFFFF0007FFFE0FFFFF0007FFFE0FFFFF000333B7FBA30>27 D<00000FF8000000007FFE00000001F80780000007E001C000001F8000E000003F0007E0 00007E000FF000007E000FF00000FC000FF00000FC000FF00001F8000FF00001F80007E0 0001F80001800001F80000000001F80000000001F80000000001F80000000001F8000000 0001F80000000001F80000000001F80000000001F80000000001F80003F000FFFFFFFFF0 00FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0 0001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA2E >I<00000FFC000000007FFF70000001F803F0000007E007F000001F800FF000003F000F F000007E000FF000007E000FF00000FC000FF00000FC0007F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F000FFFFFFFF F000FFFFFFFFF000FFFFFFFFF00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003 F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA 2E>I<7C007CFE00FEFF01FEFF01FEFF01FEFE00FEFE00FEFE00FEFE00FEFE00FEFE00FE FE00FE7E00FC7C007C7C007C7C007C7C007C7C007C7C007C7C007C7C007C3C0078380038 380038380038380038380038380038380038180030171E77BA2A>34 D<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C001C001800180038003 00070006000E001C003800700060000A1979B917>39 D<0000600000E00001C000038000 0700000E00001E00003C0000780000780000F00001E00001E00003C00003C00007C00007 80000F80000F00000F00001F00001E00001E00003E00003E00003E00007C00007C00007C 00007C00007C00007C0000F80000F80000F80000F80000F80000F80000F80000F80000F8 0000F80000F80000F80000F80000F80000F80000F80000F80000F800007C00007C00007C 00007C00007C00007C00003E00003E00003E00001E00001E00001F00000F00000F00000F 800007800007C00003C00003C00001E00001E00000F000007800007800003C00001E0000 0E000007000003800001C00000E0000060135278BD20>II<1C007F00FF80FF80FFC0FF C0FFC07FC01CC000C000C000C000C001C00180018003800300070006000E001C00380070 0060000A19798817>44 DI<1C007F 00FF80FF80FF80FF80FF807F001C000909798817>I<00000006000000060000000E0000 000C0000000C0000001C0000001800000038000000300000003000000070000000600000 0060000000E0000000C0000000C0000001C0000001800000018000000380000003000000 0700000006000000060000000E0000000C0000000C0000001C0000001800000018000000 3800000030000000300000007000000060000000E0000000C0000000C0000001C0000001 800000018000000380000003000000030000000700000006000000060000000E0000000C 0000001C0000001800000018000000380000003000000030000000700000006000000060 000000E0000000C0000000C0000001C00000018000000380000003000000030000000700 000006000000060000000E0000000C0000000C0000001C00000018000000180000003800 000030000000700000006000000060000000E0000000C0000000C00000001F537BBD2A> I<0003F80000001FFF0000007E0FC00000F803E00001E000F00003C000780007C0007C00 0F80003E000F80003E001F00001F001F00001F003F00001F803F00001F803F00001F807E 00000FC07E00000FC07E00000FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00 000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE0000 0FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000F E0FE00000FE0FE00000FE07E00000FC07E00000FC07E00000FC07E00000FC07F00001FC0 3F00001F803F00001F803F00001F801F00001F001F00001F000F80003E000F80003E0007 C0007C0003E000F80003F001F80000F803E000007E0FC000001FFF00000003F800002339 7DB62A>I<0001C0000003C0000007C000001FC00000FFC000FFFFC000FFFFC000FF1FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC0 00001FC000001FC000001FC000001FC000001FC000001FC000001FC000003FE0007FFFFF F07FFFFFF07FFFFFF01C3779B62A>I<000FF00000007FFE000001FFFF800003E03FE000 0F000FF0001E0007F8001C0003FC00380001FE00700001FE00700000FF00600000FF00FE 0000FF00FF00007F80FF80007F80FF80007F80FF80007F80FF80007F80FF80007F807F00 007F801C00007F800000007F80000000FF00000000FF00000000FE00000001FE00000001 FC00000003FC00000003F800000007F00000000FE00000000FC00000001F800000003F00 0000007E00000000FC00000001F800000001E000000003C000000007800000000F000000 001E000180003C000180007800018000F000038001E000030003C0000300078000030007 000007000FFFFFFF001FFFFFFF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFF FFFE0021377CB62A>I<0003F80000001FFF0000007FFFC00001FC07E00003F803F00007 E001F8000FE000FC001FC0007E001F80007E003F80003F003F80003F007F00003F807F00 003F80FF00003F80FF00001FC0FF00001FC0FF00001FC0FF00001FC0FF00001FC0FF0000 1FE0FF00001FE0FF00001FE0FF00001FE0FF00001FE07F00003FE07F00003FE07F00003F E03F80003FE03F80007FE01F80007FE00FC000FFE007E000DFE003E001DFE001F0039FE0 00FC0F1FE0003FFC1FC00007F01FC00000001FC00000001FC00000003FC00000003F8000 00003F800000003F000000007F000F00007F001F80007E003FC000FC003FC000FC003FC0 01F8003FC003F0003F8007E0001F000FE0001C001F80000F807F000007FFFE000001FFF8 0000003FC0000023397DB62A>57 D<000000380000000000003800000000000038000000 0000007C0000000000007C0000000000007C000000000000FE000000000000FE00000000 0000FE000000000001FF000000000001FF000000000001FF0000000000037F8000000000 037F8000000000077FC000000000063FC000000000063FC0000000000E3FE0000000000C 1FE0000000000C1FE0000000001C1FF000000000180FF000000000180FF000000000380F F8000000003007F8000000003007F8000000007007FC000000006003FC000000006003FC 00000000C003FE00000000C001FE00000000C001FE000000018001FF000000018000FF00 0000018000FF000000030000FF8000000300007F8000000300007F8000000600007FC000 0007FFFFFFC0000007FFFFFFC000000FFFFFFFE000000C00001FE000000C00001FE00000 1800000FF000001800000FF000001800000FF0000030000007F8000030000007F8000030 000007F8000060000003FC000060000003FC0000E0000003FC0000E0000001FE0001E000 0001FE0003F0000001FF000FFC000007FF80FFFF8000FFFFFEFFFF8000FFFFFEFFFF8000 FFFFFE373C7DBB3E>65 DI<000001FF80018000000FFFE0038000 007FFFF803800001FF807E07800003FC000F0F80000FF000039F80001FE00001DF80003F 800000FF80007F0000007F8000FE0000003F8001FE0000003F8003FC0000001F8007F800 00000F8007F80000000F800FF000000007800FF000000007801FE000000007801FE00000 0003803FE000000003803FC000000003807FC000000001807FC000000001807FC0000000 01807F800000000180FF800000000000FF800000000000FF800000000000FF8000000000 00FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000 FF800000000000FF800000000000FF800000000000FF8000000000007F8000000000007F C000000001807FC000000001807FC000000001803FC000000001803FE000000001801FE0 00000003801FE000000003000FF000000003000FF0000000070007F8000000070007F800 0000060003FC0000000E0001FE0000001C0000FE0000001800007F0000003800003F8000 007000001FE00000E000000FF00003C0000003FC000F80000001FF803F000000007FFFFC 000000000FFFF00000000001FF800000313D7BBA3C>IIII<000000FF 8000C000000FFFF001C000003FFFFC01C00000FF803F03C00003FC000787C0000FF00003 CFC0001FE00000EFC0003FC000007FC0007F8000003FC000FF0000001FC001FE0000001F C003FC0000000FC007F800000007C007F800000007C00FF000000003C00FF000000003C0 1FE000000003C01FE000000001C03FE000000001C03FC000000001C07FC000000000C07F C000000000C07FC000000000C07FC000000000C0FF800000000000FF800000000000FF80 0000000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000 00000000FF800000000000FF800000000000FF800000000000FF800000FFFFFFFF800000 FFFFFF7FC00000FFFFFF7FC00000007FE07FC00000003FC07FC00000003FC03FC0000000 3FC03FE00000003FC01FE00000003FC01FE00000003FC00FF00000003FC00FF00000003F C007F80000003FC007F80000003FC003FC0000003FC001FE0000003FC000FF0000007FC0 007F8000007FC0003FC00000FFC0001FE00000EFC0000FF80003C7C00003FE000783C000 00FFC03F01C000003FFFFC00C000000FFFF00000000000FF800000383D7CBA41>III<003FFFFFE0003FFFFF E0003FFFFFE000001FFC00000007F800000007F800000007F800000007F800000007F800 000007F800000007F800000007F800000007F800000007F800000007F800000007F80000 0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000 07F800000007F800000007F800000007F800000007F800000007F800000007F800000007 F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8 00000007F800000007F800000007F800000007F800000007F8003F0007F8007F8007F800 FFC007F800FFC007F800FFC007F800FFC007F800FFC00FF000FF800FF0007F000FE00070 001FE00038001FC0001C003F80000E007F00000781FC000001FFF00000007F800000233B 7DB82B>I76 DII<000003FF0000000000 1FFFE000000000FE01FC00000001F8007E00000007E0001F8000000FC0000FC000003F80 0007F000007F000003F80000FE000001FC0001FC000000FE0001F80000007E0003F80000 007F0007F00000003F8007F00000003F800FE00000001FC00FE00000001FC01FE0000000 1FE01FC00000000FE03FC00000000FF03FC00000000FF03FC00000000FF07FC00000000F F87F8000000007F87F8000000007F87F8000000007F8FF8000000007FCFF8000000007FC FF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF 8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FC7F80 00000007F87FC00000000FF87FC00000000FF87FC00000000FF83FC00000000FF03FC000 00000FF01FE00000001FE01FE00000001FE01FE00000001FE00FF00000003FC007F00000 003F8007F80000007F8003F80000007F0001FC000000FE0001FC000000FE0000FE000001 FC00007F000003F800003F800007F000001FC0000FE0000007E0001F80000003F8007F00 000000FE01FC000000001FFFE00000000003FF000000363D7BBA41>II<000003FF00000000001FFFE000000000FE01FC00000001F8007E00000007E0001F 8000000FC0000FC000003F800007F000007F000003F80000FE000001FC0001FC000000FE 0001FC000000FE0003F80000007F0007F80000007F8007F00000003F800FF00000003FC0 0FE00000001FC01FE00000001FE01FE00000001FE03FC00000000FF03FC00000000FF03F C00000000FF07FC00000000FF87FC00000000FF87F8000000007F87F8000000007F8FF80 00000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000 000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF800000 0007FCFF8000000007FC7F8000000007F87F8000000007F87FC00000000FF87FC0000000 0FF83FC00000000FF03FC00000000FF01FE00000001FE01FE00000001FE01FE00000001F E00FF00000003FC007F0007C003F8007F001FF003F8003F80383807F0001FC0701C0FE00 01FC0E00C0FE0000FE0C00E1FC00007F0C0063F800003F8C0077F000001FCC003FE00000 07EE003F80000003FF007F00000000FF81FC000C00001FFFFC000C000003FF1C000C0000 00001E001C000000001F001C000000001F003C000000001F807C000000001FC0F8000000 000FFFF8000000000FFFF8000000000FFFF8000000000FFFF00000000007FFF000000000 07FFE00000000003FFC00000000001FF8000000000007E00364B7BBA41>II<000FF800C0003FFE01C000FFFF81C003F807E3C007E000F7C00FC0007FC0 1F80003FC03F00001FC03E00000FC07E000007C07E000007C07C000003C0FC000003C0FC 000001C0FC000001C0FC000001C0FE000000C0FE000000C0FE000000C0FF000000C0FF80 0000007FC00000007FE00000007FF80000003FFF8000001FFFF800001FFFFF80000FFFFF E00007FFFFF80003FFFFFE0000FFFFFF00003FFFFF800007FFFFC000007FFFC0000007FF E00000007FE00000003FF00000001FF00000000FF000000007F800000007F8C0000003F8 C0000003F8C0000001F8C0000001F8C0000001F8E0000001F8E0000001F8E0000001F0F0 000001F0F0000003F0F8000003E0FC000007E0FE000007C0FF00000FC0FF80001F80FBF0 003F00F0FE00FE00E03FFFF800E00FFFE000C001FF0000253D7CBA2E>I<3FFFFFFFFFFF E03FFFFFFFFFFFE03FFFFFFFFFFFE03FC003FF001FE03E0001FE0003E07C0001FE0001F0 780001FE0000F0700001FE000070700001FE000070700001FE000070600001FE00003060 0001FE000030600001FE000030600001FE000030E00001FE000038C00001FE000018C000 01FE000018C00001FE000018C00001FE000018000001FE000000000001FE000000000001 FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE 000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE00 0000000001FE000000000001FE000000000001FE000000000001FE000000000001FE0000 00000001FE000000000001FE000000000001FE000000000001FE000000000001FE000000 000001FE000000000001FE000000000001FE000000000001FE000000000001FE00000000 0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000 01FE000000000007FF800000001FFFFFFFE000001FFFFFFFE000001FFFFFFFE00035397D B83C>I87 D<7FFFFFFFFFFF80FFFFFF FFFFFFC0FFFFFFFFFFFFC07FFFFFFFFFFF803204797041>95 D<001FE0000000FFFC0000 03E03F000007000F80000F8007E0001FC003F0001FE003F0001FE001F8001FE001F8001F E000FC000FC000FC00078000FC00000000FC00000000FC00000000FC00000000FC000000 7FFC000007FFFC00003FE0FC0000FE00FC0003F800FC000FF000FC001FC000FC003FC000 FC007F8000FC007F0000FC007F0000FC0CFE0000FC0CFE0000FC0CFE0000FC0CFE0001FC 0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183FC01E3E180FE0781FF003FFF00FE0 007F8007C026277DA52A>97 D<03F0000000FFF0000000FFF0000000FFF00000000FF000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F01FE00003F07FF80003F1E03E0003F3801F8003F7000FC003 FE0007E003FC0003F003F80001F803F00001F803F00000FC03F00000FC03F00000FE03F0 0000FE03F000007E03F000007F03F000007F03F000007F03F000007F03F000007F03F000 007F03F000007F03F000007F03F000007F03F000007F03F000007E03F00000FE03F00000 FE03F00000FC03F00001FC03F80001F803F80003F003FC0003F003EE0007E003C6000FC0 03C7801F000381E07E000300FFF80000001FC000283B7EB92E>I<0003FC00001FFF8000 7E03E001F8007003F000F807E001FC0FC003FC0FC003FC1F8003FC3F8003FC3F0001F87F 0000F07F0000007F0000007E000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE0000007E0000007F0000007F0000003F0000063F 8000061F80000E1FC0000C0FC0001C07E0003803F0007001F800E0007C07C0001FFF0000 07F8001F277DA525>I<0000000FC0000003FFC0000003FFC0000003FFC00000003FC000 00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000 000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000 0FC00000000FC00003F80FC0001FFF0FC0007E078FC000F801EFC003F0007FC007E0003F C00FC0001FC00FC0001FC01F80000FC03F80000FC03F00000FC07F00000FC07F00000FC0 7E00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE 00000FC0FE00000FC0FE00000FC0FE00000FC07E00000FC07F00000FC07F00000FC03F00 000FC03F00000FC01F80001FC01F80001FC00FC0003FC007E0007FC003F000EFF001F801 CFFF007C078FFF001FFE0FFF0007F80FC0283B7DB92E>I<0007F800001FFF00007C0FC0 01F803E003F001F007E001F80FC000F81F80007C1F80007C3F00007E3F00003E7F00003E 7F00003F7E00003FFE00003FFE00003FFE00003FFFFFFFFFFFFFFFFFFE000000FE000000 FE000000FE000000FE0000007E0000007E0000007F0000007F0000003F0000033F800003 1F8000070FC0000607C0000E07E0001C01F0003800F80070007E03E0001FFF800003FC00 20277EA525>I<00007E000003FF80000FC1E0001F87E0003F0FF0007E0FF0007E0FF000 FC0FF000FC0FF001F803C001F8000001F8000001F8000001F8000001F8000001F8000001 F8000001F8000001F8000001F8000001F8000001F8000001F80000FFFFFC00FFFFFC00FF FFFC0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001 F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001 F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001 F8000001F8000001F8000003FC00007FFFF8007FFFF8007FFFF8001C3B7FBA19>I<0000 0003F0000FF00FF8003FFC3C3C00F81F707C01F00FE07C03E007C07C07C003E0100FC003 F0000FC003F0001F8001F8001F8001F8001F8001F8001F8001F8001F8001F8001F8001F8 001F8001F8001F8001F8000FC003F0000FC003F00007C003E00003E007C00003F00F8000 03F81F0000073FFC0000060FF000000E000000000E000000000E000000000E000000000F 000000000F000000000FC000000007FFFFC00007FFFFF80003FFFFFE0001FFFFFF8003FF FFFFC00F80007FE01F00000FF03E000003F07C000001F07C000001F8F8000000F8F80000 00F8F8000000F8F8000000F8F8000000F8FC000001F87C000001F03E000003E03F000007 E00F80000F8007E0003F0001FC01FC00007FFFF0000007FF000026387EA52A>I<03F000 000000FFF000000000FFF000000000FFF0000000000FF00000000003F00000000003F000 00000003F00000000003F00000000003F00000000003F00000000003F00000000003F000 00000003F00000000003F00000000003F00000000003F00000000003F00000000003F000 00000003F00000000003F00000000003F00FF0000003F03FFC000003F0F03F000003F1C0 1F800003F3800FC00003F7000FC00003FE000FC00003FC0007E00003FC0007E00003F800 07E00003F80007E00003F80007E00003F00007E00003F00007E00003F00007E00003F000 07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000 07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000 07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00007F800 0FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF80293A7EB92E>I<0380000FE0001FF0 001FF0001FF0001FF0001FF0000FE0000380000000000000000000000000000000000000 0000000000000000000000000003F000FFF000FFF000FFF00007F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00007F800FFFFC0FFFFC0FFFFC012387EB717>I<03F0000000FFF0000000FFF000 0000FFF00000000FF000000003F000000003F000000003F000000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F001FFFC03F001FFFC03 F001FFFC03F0007FC003F0007F0003F0007C0003F000700003F000E00003F001C00003F0 03800003F007000003F01E000003F038000003F078000003F0FC000003F1FC000003F3FE 000003F73F000003FE3F800003F81F800003F00FC00003F00FE00003F007E00003F003F0 0003F001F80003F001FC0003F000FC0003F0007E0003F0007F0003F0003F0003F0003F80 03F0001FC007F8003FF0FFFFC0FFFFFFFFC0FFFFFFFFC0FFFF283A7EB92C>107 D<03F000FFF000FFF000FFF0000FF00003F00003F00003F00003F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00003F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC0123A7EB917 >I<03F00FF0001FE000FFF03FFC007FF800FFF0F03F01E07E00FFF1C01F83803F000FF3 800FC7001F8003F7000FCE001F8003FE000FDC001F8003FC0007F8000FC003FC0007F800 0FC003F80007F0000FC003F80007F0000FC003F80007F0000FC003F00007E0000FC003F0 0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000 0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0 0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000 0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0 0007E0000FC003F00007E0000FC007F8000FF0001FE0FFFFC1FFFF83FFFFFFFFC1FFFF83 FFFFFFFFC1FFFF83FFFF40257EA445>I<03F00FF00000FFF03FFC0000FFF0F03F0000FF F1C01F80000FF3800FC00003F7000FC00003FE000FC00003FC0007E00003FC0007E00003 F80007E00003F80007E00003F80007E00003F00007E00003F00007E00003F00007E00003 F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003 F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00007 F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029257EA42E>I<0003FE000000 0FFF8000003E03E00000F800F80001F0007C0003E0003E0007C0001F000F80000F801F80 000FC01F000007C03F000007E03F000007E07E000003F07E000003F07E000003F07E0000 03F0FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003 F8FE000003F8FE000003F87E000003F07E000003F07F000007F03F000007E03F000007E0 1F80000FC00F80000F800FC0001F8007E0003F0003F0007E0000F800F800007E03F00000 1FFFC0000003FE000025277EA52A>I<03F01FE000FFF07FF800FFF1E07E00FFF3801F80 07F7000FC003FE0007E003FC0003F003F80003F803F00001F803F00001FC03F00000FC03 F00000FE03F00000FE03F00000FE03F000007F03F000007F03F000007F03F000007F03F0 00007F03F000007F03F000007F03F000007F03F000007F03F000007F03F00000FE03F000 00FE03F00000FE03F00001FC03F00001FC03F80003F803F80003F003FC0007F003FE000F E003F6000FC003F7803F0003F1E07E0003F0FFF80003F01FC00003F000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000007F8000000FFFFC00000FFFFC00000FFFFC0000028357EA42E>I< 07E01F00FFE07FC0FFE1E3E0FFE387F00FE707F003E607F003EE07F003EC03E003FC0080 03F8000003F8000003F8000003F8000003F0000003F0000003F0000003F0000003F00000 03F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000 03F0000003F0000003F0000003F0000003F0000003F0000007F80000FFFFF000FFFFF000 FFFFF0001C257EA421>114 D<00FF030003FFE7000F80FF001E003F003C001F0078000F 0070000700F0000700F0000700F0000300F8000300F8000300FC000300FF0000007FE000 007FFF00003FFFE0001FFFF8000FFFFC0003FFFE0000FFFF000007FF8000007F8000001F 80C0000FC0C00007C0C00007C0E00003C0E00003C0E00003C0F00003C0F0000380F80007 80FC000780FC000F00FF001E00F3C07C00E1FFF000C03F80001A277DA521>I<00180000 001800000018000000180000001800000038000000380000003800000078000000780000 0078000000F8000001F8000003F8000007F800001FFFFF00FFFFFF00FFFFFF0001F80000 01F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80000 01F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800C0 01F800C001F800C001F800C001F800C001F800C001F800C001F800C001F800C000FC01C0 00FC0180007C0380007E0300003F0700000FFE000001F8001A347FB220>I<03F00007E0 00FFF001FFE000FFF001FFE000FFF001FFE0000FF0001FE00003F00007E00003F00007E0 0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 0003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E0 0003F00007E00003F00007E00003F0000FE00003F0000FE00003F0000FE00003F0001FE0 0001F0001FE00001F8003FE00000F80077F80000FC00E7FF80003F03C7FF80001FFF87FF 800003FC07E00029267EA42E>IIIII<3FFFFFFC3F FFFFFC3F8003FC3E0003F83C0007F038000FE030000FE070001FC070003F8060007F8060 007F006000FE006001FC006001FC000003F8000007F0000007F000000FE000001FC00000 3F8000003F8000007F000600FE000600FE000601FC000603F8000607F8000E07F0000E0F E0000C1FC0001C1FC0001C3F80003C7F00007CFF0003FCFFFFFFFCFFFFFFFC1F247EA325 >I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fs ecrm0700 7 3 /Fs 3 52 df<00380000780001F8001FF800FEF800E0F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80001FC00FFFFF8FFFFF815267BA521>49 D<00FF000003FFE0000E03F0001800F800 30007C0060007E0078003F00FC003F00FE001F80FE001F80FE001F80FE001F807C001F80 00001F8000001F0000003F0000003E0000007E0000007C000000F8000001F0000003E000 0003C00000078000000E0000001C0000003800000070018000E001800180018003000300 060003000C0003001FFFFF003FFFFF007FFFFE00FFFFFE00FFFFFE0019267DA521>I<00 FF000003FFE0000F01F8001C007C0030007E003C003E007E003F007E003F007E003F007E 003F003C003F0000003E0000007E0000007C000000F8000001F0000007E00001FF800001 FF00000001E0000000F00000007C0000003E0000003F0000001F0000001F8000001F8038 001F807C001F80FE001F80FE001F80FE001F00FC003F0078003E0070007C003800F8001F 01F00007FFC00000FF000019277DA521>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ft ecrm0800 8 71 /Ft 71 123 df<0000FF807E000007FFE1FF80001F807FC3C0003E007F87E0007C00FF07 E000F800FE07E001F000FE07E003F000FC018003E0007C000003E0007C000003E0007C00 0003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C00 0003E0007C0000FFFFFFFFFC00FFFFFFFFFC0003E0007C000003E0007C000003E0007C00 0003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C00 0003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C00 0003E0007C000003E0007C000003E0007C000003E0007C000003E0007C000003E0007C00 0003E0007C000003E0007C000003E0007C000007F000FE00007FFF0FFFF0007FFF0FFFF0 002B2F7FAE29>27 D<0000FF00000007FFE000001F80F000003E003800007C007C0000F8 00FC0001F000FC0003F000FC0003E000780003E000300003E000000003E000000003E000 000003E000000003E000000003E000000003E000000003E0007C00FFFFFFFC00FFFFFFFC 0003E000FC0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C00 03E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003 E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0 007C0003E0007C0003E0007C0007F000FE007FFF0FFFE07FFF0FFFE0232F7FAE27>I<00 00FFC0000007FFFC00001F807C00003E00FC00007C00FC0000F800FC0001F000FC0003F0 007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E000 7C0003E0007C0003E0007C0003E0007C00FFFFFFFC00FFFFFFFC0003E0007C0003E0007C 0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C00 03E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003 E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0007C0003E0 007C0007F000FE007FFF0FFFE07FFF0FFFE0232F7FAE27>I<01F0000000300007FC0000 0070000F0E000000F0001E07800001E0003C03C00007C0003C01F0000FC0007801FC003F 80007800CFFFF700007800C3FFCF0000F000E0001E0000F00060003C0000F00060003800 00F0006000780000F0006000F00000F0006000E00000F0006001E00000F0006003C00000 F000E0038000007800C0078000007800C00F0000007801C00E0000003C01801E0000003C 03803C0000001E0700380000000F0E007800000007FC00F000000001F001E00000000000 01C003E000000003C00FF800000007801E1C00000007003C0E0000000F0078070000001E 0078030000001C00F0038000003C00F0018000007800F0018000007001E001C00000F001 E000C00001E001E000C00001C001E000C00003C001E000C000078001E000C000070001E0 00C0000F0001E000C0001E0001E001C0003C0000F0018000380000F0018000780000F003 8000F0000078030000E0000078070001E000003C0E0003C000001E1C00038000000FF800 0180000003E00032367CB13B>37 D<00030007000E001C0038007000F001E001C003C007 8007800F000F001E001E001E003C003C003C003C0078007800780078007800F800F800F0 00F000F000F000F000F000F000F000F000F000F000F800F800780078007800780078003C 003C003C003C001E001E001E000F000F000780078003C001C001E000F000700038001C00 0E0007000310437AB11B>40 DI<000C0000001E0000001E0000001E0000001E0000001E0000601E 0180781E0780FC0C0FC07F0C3F803F8C7F0007CCF80001FFE000007F8000001E0000007F 800001FFE00007CCF8003F8C7F007F0C3F80FC0C0FC0781E0780601E0180001E0000001E 0000001E0000001E0000001E0000000C00001A1D7CB123>I<3C007E00FF00FF00FF80FF 807F803D80018001800180038003000300070006000E001C0038007000600009157A8714 >44 DI<3C7EFFFFFFFF7E3C08087A8714>I< 000000C0000000C0000001C0000001800000018000000380000003000000070000000600 0000060000000E0000000C0000000C0000001C0000001800000038000000300000003000 0000700000006000000060000000E0000000C0000000C0000001C0000001800000038000 0003000000030000000700000006000000060000000E0000000C0000001C000000180000 00180000003800000030000000300000007000000060000000E0000000C0000000C00000 01C00000018000000180000003800000030000000300000007000000060000000E000000 0C0000000C0000001C000000180000001800000038000000300000007000000060000000 60000000E0000000C0000000C00000001A437CB123>I<003FC00000FFF00003E07C0007 C03E000F801F000F000F001E0007801E0007803E0007C03E0007C07C0003E07C0003E07C 0003E07C0003E07C0003E0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC 0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC 0003F07C0003E07C0003E07C0003E07E0007E03E0007C03E0007C03E0007C01F000F800F 000F000F801F0007C03E0003F0FC0000FFF000003FC0001C2D7DAB23>I<000C00003C00 007C0003FC00FFFC00FC7C00007C00007C00007C00007C00007C00007C00007C00007C00 007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00 007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00 007C00007C00007C0000FE007FFFFE7FFFFE172C7AAB23>I<007F800001FFF0000780FC 000E003F001C001F8038000FC070000FC0600007E0F00007E0FC0007F0FE0007F0FE0003 F0FE0003F0FE0003F07C0007F0000007F0000007F0000007E000000FE000000FC000001F C000001F8000003F0000007E0000007C000000F8000001F0000003E0000007C000000F80 00001E0000003C00000078000000F0003000E0003001C0003003800060070000600E0000 E01FFFFFE03FFFFFE07FFFFFC0FFFFFFC0FFFFFFC01C2C7DAB23>I<003FC00001FFF000 07C0FC000E007E001C003F001C001F803F001FC03F001FC03F800FC03F000FC03F000FC0 0C001FC000001FC000001F8000001F8000003F0000003E0000007C000000F8000003F000 00FFC00000FFF0000000FC0000003F0000001F8000001FC000000FC000000FE000000FE0 000007F0000007F0380007F07C0007F0FE0007F0FE0007F0FE0007F0FE000FE0F8000FE0 60000FC070001FC038001F801E003F000780FC0001FFF000007FC0001C2D7DAB23>I<00 000E0000000E0000001E0000003E0000003E0000007E000000FE000000FE000001BE0000 03BE0000033E0000063E00000E3E00000C3E0000183E0000383E0000303E0000603E0000 E03E0000C03E0001803E0003803E0003003E0006003E000E003E000C003E0018003E0038 003E0030003E0060003E00E0003E00FFFFFFFCFFFFFFFC00003E0000003E0000003E0000 003E0000003E0000003E0000003E0000003E0000003E0000007F00001FFFFC001FFFFC1E 2D7EAC23>I<0C0001800FC01F800FFFFF000FFFFE000FFFFC000FFFF0000FFFC0000C7E 00000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C1F C0000C7FF8000DE07C000F801F000F001F800E000F800C0007C0000007E0000007E00000 03E0000003F0000003F0000003F0000003F0780003F0FC0003F0FC0003F0FC0003F0FC00 03F0F80007E0E00007E0600007C070000FC038000F801C001F000E003E000780F80001FF E000007F80001C2D7DAB23>I<0003F800000FFE00003E078000F8018001F007C003E00F C007C00FC00F800FC00F800FC01F0007801F0000003E0000003E0000007E0000007E0000 007C0000007C0FC000FC3FF000FCF07C00FDC01E00FF800F00FF000F80FF0007C0FE0007 E0FE0007E0FE0003E0FC0003F0FC0003F0FC0003F0FC0003F07C0003F07C0003F07C0003 F07E0003F07E0003F03E0003E03E0007E01E0007E01F0007C00F000F8007801F0003C03E 0001E07C00007FF000001FC0001C2D7DAB23>I<300000003C0000003FFFFFF83FFFFFF8 3FFFFFF07FFFFFF07FFFFFE0700001C06000018060000380C0000700C0000E00C0000C00 00001C000000380000003000000070000000E0000001C0000001C0000003800000038000 0007000000070000000F0000000E0000001E0000001E0000003E0000003E0000003E0000 003C0000007C0000007C0000007C0000007C000000FC000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC0000007800001D2E7CAC23>I<001FC00000 FFF00003E07C0007801E000F000F001E0007801E0007803C0003C03C0003C03C0003C03C 0003C03E0003C03E0007C03F0007801FC00F801FE00F001FF81E000FFC3C0007FFF80003 FFE00000FFE000003FF80000FFFC0003C7FF000783FF801F00FFC01E003FC03C001FE07C 0007E0780003F0F80003F0F00001F0F00000F0F00000F0F00000F0F00000F0F80000E078 0001E07C0001C03C0003C01E0007800F800F0007E03C0001FFF000003FC0001C2D7DAB23 >I<003F800000FFF00003E0780007C03E000F801F001F000F003E000F803E0007807E00 07C07C0007C0FC0007E0FC0003E0FC0003E0FC0003E0FC0003F0FC0003F0FC0003F0FC00 03F0FC0003F07C0007F07E0007F07E0007F03E000FF01F000FF00F001FF007803BF003E0 F3F000FFC3F0003F03E0000003E0000007E0000007E0000007C0000007C000000FC01E00 0F803F000F003F001F003F003E003F003C003E0078001C00F0000E03E00007FF800001FE 00001C2D7DAB23>I<3C7EFFFFFFFF7E3C000000000000000000000000003C7EFFFFFFFF 7E3C081D7A9C14>I<000001800000000003C00000000003C00000000003C00000000007 E00000000007E0000000000FF0000000000FF0000000000FF0000000001BF80000000019 F80000000019F80000000030FC0000000030FC0000000070FE00000000607E0000000060 7E00000000C03F00000000C03F00000000C03F00000001801F80000001801F8000000380 1FC0000003000FC0000003000FC00000060007E00000060007E00000060007E000000C00 03F000000C0003F000001FFFFFF800001FFFFFF80000180001F80000300000FC00003000 00FC0000300000FC00006000007E00006000007E0000E000007F0000C000003F0000C000 003F0001C000001F8003C000001F8007C000001FC00FF000003FE0FFFC0003FFFFFFFC00 03FFFF302F7EAE35>65 DI< 00001FF000C00000FFFE01C00003F00F83C0000F8001E3C0003F000077C0007C00003FC0 01F800001FC003F000000FC007E0000007C007E0000007C00FC0000003C01FC0000003C0 1F80000001C03F80000001C03F00000001C07F00000000C07F00000000C07F00000000C0 FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000 FE0000000000FE0000000000FE0000000000FE0000000000FE00000000007F0000000000 7F00000000C07F00000000C03F00000000C03F80000000C01F80000001C01FC000000180 0FC00000018007E00000038007E00000070003F00000060001F800000E00007C00001C00 003F00007800000F8001E0000003F00FC0000000FFFE000000001FF000002A2F7CAD33> IIII<00001FF000 C00000FFFE01C00003F00F83C0000F8001E3C0003F000077C0007C00003FC001F800001F C003F000000FC007E0000007C007E0000007C00FC0000003C01FC0000003C01F80000001 C03F80000001C03F00000001C07F00000000C07F00000000C07F00000000C0FE00000000 00FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00000000 00FE0000000000FE0000000000FE00001FFFFEFE00001FFFFE7F0000001FE07F0000000F C07F0000000FC03F0000000FC03F8000000FC01F8000000FC01FC000000FC00FC000000F C007E000000FC007E000000FC003F000000FC001F800001FC0007C00001FC0003F00003F C0000F8000F3C00003F007C1C00000FFFF00C000001FF800002F2F7CAD37>III76 DII<00003F F000000001FFFE00000007E01F8000001F8007E000003E0001F00000FC0000FC0001F800 007E0003F000003F0007E000001F8007C000000F800FC000000FC01F80000007E01F8000 0007E03F00000003F03F00000003F07F00000003F87F00000003F87E00000001F87E0000 0001F8FE00000001FCFE00000001FCFE00000001FCFE00000001FCFE00000001FCFE0000 0001FCFE00000001FCFE00000001FCFE00000001FCFE00000001FC7F00000003F87F0000 0003F87F00000003F83F00000003F03F80000007F01F80000007E01F80000007E00FC000 000FC00FE000001FC007E000001F8003F000003F0001F800007E0000FC0000FC00007E00 01F800001F8007E0000007E01F80000001FFFE000000003FF000002E2F7CAD37>II<00003FF000000001FFFE00000007E01F8000001F8007 E000003E0001F00000FC0000FC0001F800007E0003F000003F0007E000001F8007C00000 0F800FC000000FC01F80000007E01F80000007E03F80000007F03F00000003F07F000000 03F87F00000003F87F00000003F87E00000001F8FE00000001FCFE00000001FCFE000000 01FCFE00000001FCFE00000001FCFE00000001FCFE00000001FCFE00000001FCFE000000 01FCFE00000001FC7E00000001F87F00000003F87F00000003F83F00000003F03F000000 03F01F80000007E01F80000007E00FC007800FC00FC01FE00FC007E038701F8003F07018 3F0001F8601C7E0000FC600CFC00007E600FF800001FF00FE0000007F81F80000001FFFF 000C00003FF7000C00000007800C00000007801C00000003C01C00000003E03C00000003 F07800000003FFF800000001FFF800000001FFF000000001FFF000000000FFE000000000 7FC0000000001F002E3B7CAD37>II<003F803001FFF07007C07C700F000EF01E0007F03C0003F07800 01F0780000F0700000F0F0000070F0000070F0000070F0000030F8000030F8000030FC00 00007E0000007F0000003FE000003FFE00001FFFE0000FFFFC0007FFFF0001FFFF80003F FFE00003FFE000003FF0000007F8000001F8000000F8000000FC0000007CC000007CC000 003CC000003CC000003CE000003CE000003CE0000078F0000078F8000070FC0000F0FE00 01E0F78003C0E3F00F00E07FFE00C00FF0001E2F7CAD27>I<7FFFFFFFFFF87FFFFFFFFF F87F000FC003F87C000FC000F870000FC0003870000FC0003860000FC0001860000FC000 18E0000FC0001CE0000FC0001CC0000FC0000CC0000FC0000CC0000FC0000CC0000FC000 0CC0000FC0000C00000FC0000000000FC0000000000FC0000000000FC0000000000FC000 0000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000 0000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000 0000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000 0000000FC0000000000FC0000000000FC0000000000FC0000000001FE00000001FFFFFE0 00001FFFFFE0002E2D7EAC33>II87 D<7FFFE003FFF87FFFE003FFF803FF0000FF8001FE00007E0000FE00007C00007F000078 00003F00007000003F8000E000001FC000C000000FE0018000000FE00380000007F00700 000003F80600000001F80C00000001FC1C00000000FE38000000007F30000000007F6000 0000003FE0000000001FC0000000000FC0000000000FE00000000007F00000000007F800 0000000DF8000000001DFC0000000038FE00000000307F00000000607F00000000E03F80 000001C01FC0000001800FC0000003000FE00000070007F000000E0003F800000C0003F8 00001C0001FC0000380000FE00007000007E00007000007F0000F000003F8003F000003F C00FF800007FE0FFFE0003FFFFFFFE0003FFFF302D7EAC35>II95 D<00FF000007FFC0000F01F0001C00F8003F007C003F00 3E003F003E003F003F001E001F0000001F0000001F0000001F0000001F000007FF00007F FF0001FE1F0007F01F001FC01F003F801F007F001F007E001F00FE001F06FC001F06FC00 1F06FC001F06FC003F06FE003F067E007F067F00EF8C1F83C7FC0FFF03F801FC01E01F20 7D9E23>97 D<07C0000000FFC0000000FFC00000000FC000000007C000000007C0000000 07C000000007C000000007C000000007C000000007C000000007C000000007C000000007 C000000007C000000007C000000007C0FE000007C7FF800007CF03E00007DC01F00007F8 007C0007F0007E0007E0003E0007C0001F0007C0001F8007C0001F8007C0000F8007C000 0FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000F C007C0000FC007C0001F8007C0001F8007C0001F0007C0003F0007E0003E0007F0007C00 07B000F80007BC01F000070E07E0000607FF80000001FC0000222F7EAD27>I<001FE000 007FFC0001F01E0003E0070007C01F800F801F801F001F803F001F803E000F007E000000 7E0000007C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000 FC000000FC0000007E0000007E0000007E0000C03F0000C01F0001C01F8001800FC00380 07E0070001F03E00007FF800001FC0001A207E9E1F>I<000000F80000001FF80000001F F800000001F800000000F800000000F800000000F800000000F800000000F800000000F8 00000000F800000000F800000000F800000000F800000000F800000000F800000FE0F800 007FF8F80001F81EF80003E007F80007C003F8000F8001F8001F0001F8003F0000F8003E 0000F8007E0000F8007E0000F800FC0000F800FC0000F800FC0000F800FC0000F800FC00 00F800FC0000F800FC0000F800FC0000F800FC0000F8007C0000F8007E0000F8007E0000 F8003E0001F8001F0001F8001F8003F8000F8007F80003E00EFC0001F03CFFC0007FF0FF C0001FC0F800222F7EAD27>I<001F800000FFF00003E0780007C03E000F801E001F001F 001F000F803E000F807E0007807E0007C07C0007C0FC0007C0FC0007C0FC0007C0FFFFFF C0FFFFFFC0FC000000FC000000FC000000FC000000FC0000007E0000007E0000003E0000 C03F0000C01F0001C00F8003800FC0030003E00F0001F03C00007FF800001FC0001A207E 9E1F>I<0003F0000FFC003E1E007C3F00F83F01F03F01F03F03E00C03E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E000FFFFE0FFFFE003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00007F0007FFF807FFF 80182F7FAE16>I<003F00F800FFC3FE03E1FF1E07807C1E0F807C0C1F003E001F003E00 3E001F003E001F003E001F003E001F003E001F003E001F003E001F001F003E001F003E00 0F807C00078078000FE1F0000CFFC0001C3F00001C0000001C0000001C0000001E000000 1F0000000FFFF8000FFFFF0007FFFFC00FFFFFF01E0007F83C0000F87800007CF800007C F000003CF000003CF000003CF000003CF800007C7C0000F83E0001F01F0003E007E01F80 01FFFE00003FF0001F2D7E9D23>I<07C0000000FFC0000000FFC00000000FC000000007 C000000007C000000007C000000007C000000007C000000007C000000007C000000007C0 00000007C000000007C000000007C000000007C000000007C0FE000007C3FF800007C703 E00007DE01F00007F801F00007F000F80007F000F80007E000F80007E000F80007C000F8 0007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F800 07C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007 C000F80007C000F80007C000F8000FE001FC00FFFE1FFFC0FFFE1FFFC0222E7EAD27>I< 07800FC01FE01FE01FE01FE00FC007800000000000000000000000000000000007C0FFC0 FFC00FC007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C0 07C007C007C007C007C007C007C00FE0FFFCFFFC0E2E7EAD14>I<000F00001F80003FC0 003FC0003FC0003FC0001F80000F00000000000000000000000000000000000000000000 0000000007C000FFC000FFC0000FC00007C00007C00007C00007C00007C00007C00007C0 0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0 0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0 3007C07807C0FC0F80FC0F80FC0F00F81F00783E003FF80007E000123C83AD16>I<07C0 000000FFC0000000FFC00000000FC000000007C000000007C000000007C000000007C000 000007C000000007C000000007C000000007C000000007C000000007C000000007C00000 0007C000000007C000000007C01FFE0007C01FFE0007C00FF00007C007C00007C0078000 07C00E000007C01C000007C038000007C070000007C0E0000007C3C0000007C7C0000007 CFE0000007DFF0000007F9F0000007F0F8000007E0FC000007C07E000007C03E000007C0 1F000007C01F800007C00FC00007C007C00007C003E00007C003F00007C001F8000FE003 FC00FFFE07FF80FFFE07FF80212E7EAD25>I<07C0FFC0FFC00FC007C007C007C007C007 C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007 C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C00FE0FF FEFFFE0F2E7EAD14>I<07C07F0007F000FFC3FFC03FFC00FFC783F0783F000FCE01F8E0 1F8007DC00F9C00F8007F800FF800FC007F0007F0007C007E0007E0007C007E0007E0007 C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C0 07C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007 C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0007C0007C007C0 007C0007C007C0007C0007C007C0007C0007C00FE000FE000FE0FFFE0FFFE0FFFEFFFE0F FFE0FFFE371E7E9D3C>I<07C0FE0000FFC3FF8000FFC703E0000FDE01F00007F801F000 07F000F80007F000F80007E000F80007E000F80007C000F80007C000F80007C000F80007 C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C0 00F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000 F8000FE001FC00FFFE1FFFC0FFFE1FFFC0221E7E9D27>I<001FE000007FF80001F03E00 03C00F00078007800F0003C01F0003E03E0001F03E0001F07C0000F87C0000F87C0000F8 FC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FC 7C0000F87C0000F83E0001F03E0001F01F0003E01F0003E00F8007C007C00F8001F03E00 007FF800001FE0001E207E9E23>I<07C0FE0000FFC7FF8000FFCF03E0000FDC01F00007 F800FC0007F0007E0007E0003E0007C0003F0007C0001F8007C0001F8007C0001F8007C0 000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C0000FC007C000 0FC007C0001FC007C0001F8007C0001F8007C0003F0007C0003F0007E0007E0007F0007C 0007F000F80007FC01F00007CE07E00007C7FF800007C1FC000007C000000007C0000000 07C000000007C000000007C000000007C000000007C000000007C000000007C00000000F E0000000FFFE000000FFFE000000222B7E9D27>I<000FE01800007FF8380001F81C3800 03E00E780007C00778000F8003F8001F8001F8003F0001F8003F0001F8007E0000F8007E 0000F800FE0000F800FC0000F800FC0000F800FC0000F800FC0000F800FC0000F800FC00 00F800FC0000F800FC0000F8007E0000F8007E0000F8007E0000F8003F0001F8001F0001 F8001F8003F8000FC007F80003E00EF80001F03CF800007FF0F800001FC0F800000000F8 00000000F800000000F800000000F800000000F800000000F800000000F800000000F800 000000F800000001FC0000001FFFC000001FFFC0222B7E9D25>I<0781F0FF87FCFF9E7E 0F987E07B87E07B07E07F03C07E00007E00007E00007C00007C00007C00007C00007C000 07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000 0FE000FFFF00FFFF00171E7E9D1B>I<01FE1807FFB81E01F83C00F8780078F00038F000 38F00018F00018F80018FC0018FF00007FF0003FFF001FFFC00FFFF001FFF8001FFC0001 FCC0007EC0003EC0003EE0001EE0001EF0001EF0001EF8003CF8003CFC0078FF01F0E3FF C0C0FF0017207E9E1C>I<00600000600000600000600000E00000E00000E00001E00003 E00003E00007E0001FE000FFFFF0FFFFF003E00003E00003E00003E00003E00003E00003 E00003E00003E00003E00003E00003E00003E00003E00003E00003E01803E01803E01803 E01803E01803E01803E01803E03801F03001F07000F860003FE0000F80152A7FA81B>I< 07C000F800FFC01FF800FFC01FF8000FC001F80007C000F80007C000F80007C000F80007 C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C0 00F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000F80007C000 F80007C001F80007C001F80007C001F80007C003F80003E007F80003E00EFC0001F81CFF C0007FF8FFC0001FE0F800221F7E9D27>IIIII<3FFFFF803FFFFF803F003F803C003F0038007E00 3000FC007001FC006001F8006003F0006007E000600FE000000FC000001F8000003F0000 007F0000007E000000FC018001F8018003F8018003F0018007E003800FC003801FC00300 1F8003003F0007007E000F00FE003F00FFFFFF00FFFFFF00191D7E9C1F>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fu ecti1200 12 36 /Fu 36 122 df<0000000000FFC0000000000007FFF83F000000001F807E3F000000007E 000F7F00000000F8001F7E00000001F0003FFE00000003F0007FFE00000007E000FFFE00 000007E000FFFC0000000FC000FFFC0000000FC0007EFC0000000FC0003DFC0000001F80 0001F80000001F800001F80000001F800001F80000001F800003F80000003F800003F000 00003F000003F00000003F000003F00000003F000007F00000007F000007E00000007F00 0007E00000007E000007E00000007E00000FE00000007E00000FC00000007E00000FC000 0000FE00000FC00000FFFFFFFFFFC00000FFFFFFFFFF800000FFFFFFFFFF80000000FC00 001F80000001FC00003F80000001F800003F00000001F800003F00000001F800003F0000 0001F800007F00000003F800007E00000003F000007E00000003F000007E00000003F000 00FE00000003F00000FC00000007F00000FC00000007E00000FC00000007E00001FC0000 0007E00001F800000007E00001F80000000FE00001F80000000FC00003F80000000FC000 03F00000000FC00003F00000000FC00003F00000001FC00007F00000001F800007E00000 001F800007E00000001F800007E00000001F80000FE03800003F80000FC07800003F0000 0FC07000003F00000FC07000003F00000FC07000003F00001FC0F000007F00001F80E000 007E00001F80E000007E00001F81E000007E00001F81C000007E00000F81C00000FE0000 0F83800000FC00000787800000FC000007C7000000FC000001FE000000FC000000780000 01F800000000000001F800000000000001F800000000000001F800000000000003F00000 0000000003F000000000000003F000000000001C03E000000000007F07E00000000000FF 07C00000000000FF07C00000000000FF07800000000000FF0F800000000000FE0F000000 000000F81E000000000000F01E000000000000783C0000000000001FF000000000000007 C0000000000000405A83C539>29 D<00001E0000003F800000FFC00000FFC00000FFC000 01FFC00001FF800001FF800001FF800001FF000003FF000003FF000003FE000003FE0000 03FE000003FC000007FC000007FC000007F8000007F8000007F8000007F000000FF00000 0FF000000FE000000FE000000FE000000FC000001FC000001FC000001F8000001F800000 1F8000003F0000003F0000003F0000003E0000003E0000003E0000007C0000007C000000 7C000000780000007800000078000000F0000000F0000000F0000000E0000000E0000000 E0000000C000000000000000000000000000000000000000000000000000000000000000 000000000000000F0000003FC000007FC000007FC00000FFC00000FFC00000FFC00000FF 8000007F0000003C0000001A4776C61E>33 D<7FFFFFFFFFFFFFFFFFFFFFFEFFFFFE1805 789723>45 D<000F00001FC0003FC0007FE000FFE000FFE000FFC0007F80007F00001E00 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000F0000 3FC0007FC0007FC000FFC000FFC000FFC000FF80007F00003C0000132B76AA1E>58 D<0000FFFFFFFFFC00000000FFFFFFFFFF80000000FFFFFFFFFFE000000001FF80001FF0 00000000FF000007F800000001FF000003FC00000001FF000001FE00000001FE000001FF 00000001FE000000FF00000001FE000000FF80000003FE0000007F80000003FC0000007F 80000003FC0000007F80000003FC0000007F80000007FC0000007F80000007F80000007F 80000007F8000000FF80000007F8000000FF8000000FF8000000FF0000000FF0000001FF 0000000FF0000001FE0000000FF0000003FE0000001FF0000003FC0000001FE0000007F8 0000001FE000000FF80000001FE000001FF00000003FE000003FE00000003FC000007F80 0000003FC00000FF000000003FC00003FC000000007FC0000FF8000000007F8000FFC000 0000007FFFFFFF00000000007FFFFFFFE000000000FF800007F800000000FF000001FC00 000000FF000000FE00000000FF0000007F00000001FF0000007F80000001FE0000003FC0 000001FE0000003FC0000001FE0000003FC0000003FE0000003FE0000003FC0000003FE0 000003FC0000003FE0000003FC0000003FE0000007FC0000003FE0000007F80000003FE0 000007F80000003FE0000007F80000003FE000000FF80000003FC000000FF00000007FC0 00000FF00000007FC000000FF0000000FF8000001FF0000000FF8000001FE0000001FF00 00001FE0000001FE0000001FE0000003FE0000003FE0000007FC0000003FC000000FF800 00003FC000001FF00000007FC000003FE00000007FC000007FC00000007F800001FF0000 0000FF80000FFE000000FFFFFFFFFFF8000000FFFFFFFFFFC0000000FFFFFFFFFE000000 0041447AC345>66 D<000000000FF8000300000000FFFF000700000007FFFFC00F000000 1FF803E01F0000007FC000F81E000000FF00007C3E000003FC00003C7E00000FF000001E FE00001FE000000FFC00003FC0000007FC00007F00000007FC0000FE00000003FC0001FC 00000003F80003FC00000003F80007F800000001F8000FF000000001F8001FE000000001 F0003FC000000001F0007FC000000001F0007F8000000001F000FF8000000001E001FF00 00000001E001FF0000000001E003FE0000000001E003FE0000000001C007FC0000000001 C007FC0000000001C00FF80000000001C00FF80000000000001FF80000000000001FF000 00000000001FF00000000000003FF00000000000003FE00000000000003FE00000000000 003FE00000000000007FE00000000000007FC00000000000007FC00000000000007FC000 00000000007FC0000000000000FF80000000000000FF80000000000000FF800000000000 00FF80000000000000FF80000000003800FF80000000003800FF80000000007800FF8000 0000007000FF80000000007000FF8000000000F0007F8000000000E0007F8000000001E0 007F8000000001C0007F8000000003C0003F800000000380003F800000000780003FC000 00000F00001FC00000000E00001FC00000001E00000FE00000003C00000FF00000007800 0007F0000000F0000003F8000001E0000003FC000007C0000001FE00000F800000007F00 003E000000003FC000FC000000001FF807F00000000007FFFFC00000000001FFFF000000 0000001FF000000000404872C546>I<00007FFFFFE00000FFFFFFE00000FFFFFFE00000 00FFE0000000007F8000000000FF8000000000FF8000000000FF0000000000FF00000000 00FF0000000001FF0000000001FE0000000001FE0000000001FE0000000003FE00000000 03FC0000000003FC0000000003FC0000000007FC0000000007F80000000007F800000000 07F8000000000FF8000000000FF0000000000FF0000000000FF0000000001FF000000000 1FE0000000001FE0000000001FE0000000003FE0000000003FC0000000003FC000000000 3FC0000000007FC0000000007F80000000007F80000000007F8000000000FF8000000000 FF0000000000FF0000000000FF0000000001FF0000000001FE0000000001FE0000000001 FE0000000003FE0000000003FC0000000003FC0000000003FC0000000007FC0000000007 F80000000007F80000000007F8000000000FF8000000000FF0000000000FF0000000000F F0000000001FF0000000001FE0000000001FE0000000003FE0000000003FE0000000003F C000000000FFE0000000FFFFFFE00000FFFFFFE00000FFFFFFC000002B447BC326>73 D<0000FFFF800001FFFFE00000FFFF800001FFFFE00000FFFFC00001FFFFE0000000FFC0 00000FFC00000000FFC0000007F000000000FFE0000003E000000001FFE0000003C00000 0001DFE0000003C000000001DFF00000038000000001DFF00000078000000003CFF00000 0780000000038FF800000700000000038FF8000007000000000387F800000F0000000007 87FC00000F000000000703FC00000E000000000703FC00000E000000000703FE00001E00 0000000F01FE00001E000000000E01FE00001C000000000E01FF00001C000000000E00FF 00003C000000001E00FF00003C000000001C00FF800038000000001C007F800038000000 001C007F800078000000003C007FC000780000000038003FC000700000000038003FC000 700000000038003FE000F00000000078001FE000F00000000070001FE000E00000000070 001FF000E00000000070000FF001E000000000F0000FF801E000000000E0000FF801C000 000000E00007F801C000000000E00007FC03C000000001E00007FC03C000000001C00003 FC038000000001C00003FE038000000001C00003FE078000000003C00001FE0780000000 03800001FF070000000003800001FF070000000003800000FF0F0000000007800000FF8F 0000000007000000FF8E00000000070000007F8E00000000070000007FDE000000000F00 00007FDE000000000E0000003FDC000000000E0000003FFC000000000E0000003FFC0000 00001E0000001FFC000000001C0000001FF8000000001C0000001FF8000000001C000000 0FF8000000003C0000000FF8000000003800000007F0000000007800000007F000000000 7800000007F000000000F800000003F000000001FC00000003E000000007FE00000003E0 000000FFFFF0000001E0000000FFFFF0000001E0000000FFFFF0000001C00000004B447A C348>78 D<0000FFFFFFFFF0000000FFFFFFFFFE000000FFFFFFFFFF80000001FF80007F E0000000FF00001FF0000001FF000007F8000001FF000003F8000001FE000003FC000001 FE000001FE000003FE000001FE000003FE000001FE000003FC000001FF000003FC000001 FF000007FC000001FF000007FC000001FF000007F8000001FF000007F8000001FF00000F F8000001FF00000FF8000003FE00000FF0000003FE00000FF0000003FE00001FF0000003 FC00001FF0000007FC00001FE0000007F800001FE000000FF800003FE000000FF000003F E000001FE000003FC000001FC000003FC000003F8000007FC000007F0000007FC00000FE 0000007F800003FC0000007F80000FF0000000FF80007FC0000000FFFFFFFF00000000FF FFFFF800000000FF00000000000001FF00000000000001FF00000000000001FE00000000 000001FE00000000000003FE00000000000003FE00000000000003FC00000000000003FC 00000000000007FC00000000000007FC00000000000007F800000000000007F800000000 00000FF80000000000000FF80000000000000FF00000000000000FF00000000000001FF0 0000000000001FF00000000000001FE00000000000001FE00000000000003FE000000000 00003FE00000000000003FC00000000000003FC00000000000007FC00000000000007FC0 0000000000007F80000000000000FFC00000000000FFFFFF8000000000FFFFFF80000000 00FFFFFF800000000040447AC342>80 D<0000FFFFFFFF80000000FFFFFFFFF8000000FF FFFFFFFE00000001FF8001FF80000000FF00003FC0000001FF00001FE0000001FF00000F F0000001FE000007F8000001FE000003F8000001FE000003FC000003FE000003FC000003 FC000003FE000003FC000003FE000003FC000003FE000007FC000003FE000007F8000003 FE000007F8000003FE000007F8000003FE00000FF8000007FC00000FF0000007FC00000F F0000007FC00000FF000000FF800001FF000000FF800001FE000000FF000001FE000001F E000001FE000003FC000003FE000003F8000003FC000007F0000003FC00000FE0000003F C00003F80000007FC00007F00000007F80001FC00000007F8001FF000000007FFFFFF800 000000FFFFFFE000000000FF0003F800000000FF0000FE00000000FF00007F00000001FF 00003F80000001FE00001FC0000001FE00001FC0000001FE00001FE0000003FE00001FE0 000003FC00000FE0000003FC00000FE0000003FC00001FE0000007FC00001FE0000007F8 00001FE0000007F800001FE0000007F800003FE000000FF800003FE000000FF000003FE0 00000FF000003FE000000FF000007FC000001FF000007FC000001FE000007FC000001FE0 00007FC000001FE000007FC000003FE000007FC00E003FC000007FC00E003FC000007FC0 0E007FC000007F801E007FC000007F801C007F8000007F803C00FFC000007F8038FFFFFF 80003FC070FFFFFF80001FC0F0FFFFFF80000FE1E0000000000003FF80000000000000FE 003F467AC347>82 D<01FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FF00 07FC001FF007F80007F80007F007E0000FF80003F007C0000FF80001F00F80000FF00001 F00F00000FF00000F00F00000FF00000F01E00001FF00000E01E00001FE00000E01C0000 1FE00000E03C00001FE00000E03800003FE00000E03800003FC00001E07800003FC00001 C07000003FC00001C0F000007FC00001C0E000007F800001C0E000007F800001C0E00000 7F800001C0000000FF80000000000000FF00000000000000FF00000000000000FF000000 00000001FF00000000000001FE00000000000001FE00000000000001FE00000000000003 FE00000000000003FC00000000000003FC00000000000003FC00000000000007FC000000 00000007F800000000000007F800000000000007F80000000000000FF80000000000000F F00000000000000FF00000000000000FF00000000000001FF00000000000001FE0000000 0000001FE00000000000001FE00000000000003FE00000000000003FC00000000000003F C00000000000003FC00000000000007FC00000000000007F800000000000007F80000000 0000007F80000000000000FF80000000000000FF00000000000000FF00000000000000FF 00000000000001FF00000000000001FE00000000000001FE00000000000003FE00000000 000003FE00000000000007FE0000000000000FFF00000000007FFFFFFFC00000007FFFFF FFC00000007FFFFFFF800000003D446FC346>84 D<00001F80000000007FE000000001F0 7070000007C039F800000F801DF800001F001FF800003E000FF000007E000FF00000FC00 0FF00001F80007F00001F80007E00003F00007E00007F00007E00007E0000FE0000FE000 0FC0000FE0000FC0001FC0000FC0001FC0001FC0003FC0001F80003F80001F80003F8000 1F80003F80003F80007F80003F00007F00003F00007F00003F00007F00007F00007F0000 7E0000FE00007E0000FE00007E0000FE0000FE0380FE0000FC0780FE0000FC0700FE0000 FC07007E0001FC07007E0001FC0F007E0003F80E007E0007F80E003E000FF81E003E000F F81C001F001CF81C001F0038F838000F80F078780007C3E07C700001FF801FE000007E00 078000292D76AB32>97 D<000FE0000007FFE0000007FFE0000007FFE00000001FC00000 000FC00000001FC00000001FC00000001F800000001F800000001F800000003F80000000 3F000000003F000000003F000000007F000000007E000000007E000000007E00000000FE 00000000FC00000000FC00000000FC00000001FC00000001F800000001F81F800001F87F E00003F9E0F80003F3C07C0003F7003E0003FE003E0007FC001F0007F8001F0007F8001F 0007F0001F800FE0001F800FE0001F800FC0001F800FC0001F801FC0001F801F80001F80 1F80001F801F80003F803F80003F803F00003F803F00003F803F00007F807F00007F007E 00007F007E00007F007E0000FF007E0000FE00FC0000FE00FC0000FE00FC0001FC00FC00 01FC00FC0003F800FC0003F8007C0003F0007C0007E0007C000FE0007C000FC0007C001F 80003C003F00003E007E00001E00FC00000F01F800000783E0000003FF80000000FE0000 00214676C42D>I<00000FE00000007FF8000001F81E000007E00F00000F800780001F00 0380007E0003C000FC001FC001FC003FC001F8003FC003F0007F8007F0007F800FE0007F 800FE0003E001FC00000001FC00000003F800000003F800000007F800000007F00000000 7F000000007F00000000FF00000000FE00000000FE00000000FE00000000FE00000000FC 00000000FC00000000FC00000000FC00000000FC00000000FC00000180FC000003C0FC00 000780FC000007807C00000F007E00001E003E00007C003E0000F0001F0003E0000F800F 800007C07E000001FFF80000007FC00000222D75AB2D>I<0000000007F000000003FFF0 00000003FFF000000003FFF0000000000FE00000000007E0000000000FE0000000000FE0 000000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F80 000000003F80000000003F80000000003F00000000003F00000000007F00000000007F00 000000007E00000000007E0000000000FE0000000000FE0000000000FC0000001F80FC00 00007FE1FC000001F071FC000007C039F800000F801DF800001F001FF800003E000FF800 007E000FF00000FC000FF00001F80007F00001F80007F00003F00007E00007F00007E000 07E0000FE0000FE0000FE0000FE0000FC0001FC0000FC0001FC0001FC0003FC0001FC000 3F80001F80003F80001F80003F80003F80007F80003F80007F00003F00007F00003F0000 7F00007F00007F00007F0000FE00007E0000FE00007E0000FE0000FE0380FE0000FE0780 FE0000FC0700FE0000FC07007E0001FC07007E0001FC0F007E0003F80E007E0007F80E00 3E000FF81E003E000FF81C001F001CF81C001F0038F838000F80F078780007C3E07C7000 01FF801FE000007E000780002C4676C432>I<00000FE00000007FF8000001F83E000007 C00F00001F800780003F000780007E0007C000FC0003C001F80003C003F00007C007F000 078007E00007800FE0000F801FC0000F001FC0001F003F80003E003F8000FC003F8007F0 007F80FFC0007FFFFE00007FFFC000007F00000000FF00000000FE00000000FE00000000 FE00000000FE00000000FE00000000FC00000000FC00000000FC00000000FC00000000FC 00000180FC000003C07C000007807C000007807E00000F003E00001E003E00007C001F00 00F0000F0003E00007800F800003C07E000001FFF80000003FC00000222D75AB2D>I<00 0000000F80000000003FE000000000F87000000001F03800000003E0F800000007E1FC00 000007C3FC0000000FC7FC0000000FC7FC0000000F87F80000001F83F00000001F81E000 00001F80000000003F80000000003F00000000003F00000000003F00000000003F000000 00007F00000000007E00000000007E00000000007E00000000007E0000000000FE000000 0000FC0000000000FC0000000000FC00000001FFFFFE000001FFFFFE000001FFFFFE0000 0001F80000000001F80000000001F80000000003F80000000003F00000000003F0000000 0003F00000000003F00000000007F00000000007E00000000007E00000000007E0000000 0007E0000000000FE0000000000FC0000000000FC0000000000FC0000000000FC0000000 001FC0000000001F80000000001F80000000001F80000000001F80000000003F80000000 003F00000000003F00000000003F00000000003F00000000003F00000000007F00000000 007E00000000007E00000000007E0000000000FE0000000000FC0000000000FC00000000 00FC0000000000FC0000000001FC0000000001F80000000001F80000000001F800000000 01F80000000003F00000000003F00000000003F00000000003E00000000007E00000001C 07E00000007F07C0000000FF07C0000000FF0F80000000FF0F80000000FF0F00000000FE 1F00000000F81E00000000F03C000000007878000000001FF00000000007C0000000002E 5A83C51E>I<000000FC0000000003FF000000000F83838000003E01CFC000007C00EFC0 0000F800FFC00001F0007FC00003F0007F800007E0003F80000FC0003F80001FC0003F80 001F80003F00003F80003F00003F00007F00007F00007F00007F00007E0000FE00007E00 00FE0000FE0001FE0000FE0001FC0000FC0001FC0000FC0001FC0001FC0003FC0001FC00 03F80001F80003F80001F80003F80003F80003F80003F80003F00003F00003F00003F000 03F00007F00003F00007F00003F00007E00003F00007E00003F0000FE00003F0001FE000 03F0001FC00001F0003FC00001F0007FC00000F800FFC00000F801DF8000007C039F8000 003E0F3F8000000FFC3F80000003F03F00000000003F00000000007F00000000007F0000 0000007E00000000007E0000000000FE0000000000FE0000000000FC0000000000FC0000 1C0001F800007F0001F80000FF0003F00000FF0007F00000FF000FE00000FE000FC00000 FE003F000000F8007E0000007C01F80000001FFFE000000003FF000000002A407BAB2D> I<0000FE000000007FFE000000007FFE000000007FFE0000000001FC0000000000FC0000 000001FC0000000001FC0000000001F80000000001F80000000003F80000000003F80000 000003F00000000003F00000000007F00000000007F00000000007E00000000007E00000 00000FE0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC00000 00001F80000000001F807F0000003F83FFC000003F8F81F000003F1E00F800003F3800FC 00007F70007C00007FE0007C00007FC0007E00007FC0007E0000FF80007E0000FF00007E 0000FF00007E0000FE00007E0001FC0000FE0001FC0000FC0001F80000FC0001F80000FC 0003F80001FC0003F80001F80003F00001F80003F00001F80007F00003F80007F00003F0 0007E00003F00007E00007F0000FE00007E0000FE00007E0000FC0000FE0000FC0000FC0 001FC0000FC0781FC0001FC0701F80001F80701F80001F80703F80003F80F03F80003F00 E03F00003F00E03F00003F01E07F00003E01C07F00003E03C07E00003E03807E00003E07 00FE00001E0F00FE00001F1E00FC00000FF80038000003E0002D467AC432>I<00003C00 007E0000FE0001FE0001FE0001FE0000FC00007000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000007C0001FF0003C78007 03C00F03E00E03E01C03E01C07E03807E03807E07807E0700FE0700FC0701FC0F01F80E0 1F80003F80003F00003F00007F00007E00007E0000FE0000FC0001FC0001F80001F80003 F80003F00003F01E07F01C07E01C07E01C0FE03C0FC0380FC0380FC0780F80700F80F00F 80E00F81C00783C007C78003FE0000F800174378C11E>I<00000000F000000003F80000 0003F800000007F800000007F800000007F800000007F000000001C00000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000001F000000007FC00 00001E1E000000380F000000700F800000E00F800001E00F800001C00F800003800F8000 07801F800007001F800007001F80000E001F80000E003F80001E003F80001C003F000000 003F000000007F000000007F000000007E000000007E00000000FE00000000FE00000000 FC00000000FC00000001FC00000001FC00000001F800000001F800000003F800000003F8 00000003F000000003F000000007F000000007F000000007E000000007E00000000FE000 00000FE00000000FC00000000FC00000001FC00000001FC00000001F800000001F800000 003F800000003F800000003F000000003F000000007F000000007E000000007E00000000 FE00001C00FC00007F00FC0000FF01F80000FF03F00000FF03F00000FE07E00000FE0FC0 0000F81F000000707E0000003FF80000000FC0000000255683C11E>I<0000FE00000000 7FFE000000007FFE000000007FFE0000000001FC0000000000FC0000000001FC00000000 01FC0000000001F80000000001F80000000003F80000000003F80000000003F000000000 03F00000000007F00000000007F00000000007E00000000007E0000000000FE000000000 0FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001F8000000000 1F80007E00003F8001FF00003F800783C0003F000E07C0003F003C1FC0007F00701FC000 7F00603FC0007E00E03FC0007E01C03FC000FE03803F8000FE07000E0000FC0E00000000 FC1C00000001FC3800000001FC7000000001F8E000000001F9C000000003FB8000000003 FF0000000003FF0000000003FFF000000007F3FC00000007F07F00000007E01FC0000007 E00FE000000FE007E000000FE007F000000FC003F000000FC003F000001FC003F00F001F C003F00F001F8003F00E001F8003F00E003F8003F01E003F8003F01C003F0003E01C003F 0003E01C007F0003E038007F0003E038007E0003E078007E0003E07000FE0001E0E000FE 0001F1E000FC00007F80003800001F00002A467AC42D>I<0003F801FFF801FFF801FFF8 0007F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0 001F80001F80003F80003F80003F00003F00007F00007F00007E00007E0000FE0000FE00 00FC0000FC0001FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F000 07E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F8000 3F00003F00007F01C07F03C07E03807E03807E0780FE0700FC0700FC0700FC0F00FC0E00 7C1E007C1C003C3C003E78001FF00007C000154678C419>I<01F0000FE00007F0000003 FC007FF8003FFC0000071E01F03E00F81F00000E1F03C01F01E00F80001E0F87001F8380 0FC0001C0F8E000F870007C0003C0F9C000F8E0007C000380FB8000FDC0007E000380FF8 000FFC0007E000781FF0000FF80007E000701FE0000FF00007E000701FE0000FF00007E0 00701FC0000FE00007E000F01F80001FC0000FE000E03F80001FC0000FC000E03F00001F 80000FC000003F00001F80000FC000003F00003F80001FC000007F00003F80001F800000 7E00003F00001F8000007E00003F00001F8000007E00007F00003F800000FE00007F0000 3F000000FC00007E00003F000000FC00007E00007F000000FC0000FE00007E000001FC00 00FE00007E000001F80000FC0000FE000001F80000FC0000FC000001F80001FC0000FC07 8003F80001FC0001FC070003F00001F80001F8070003F00001F80001F8070003F00003F8 0003F80F0007F00003F80003F00E0007E00003F00003F00E0007E00003F00003F01E0007 E00007F00003E01C000FE00007F00003E03C000FC00007E00003E038000FC00007E00003 E070000FC0000FE00001E0F0001FC0000FE00001F1E0001F80000FC00000FF8000070000 038000003E0000492D78AB50>I<01F0000FE00003FC007FF800071E01F03E000E0F03C0 1F001E0F87001F801C0F8E000F803C0F9C000F80380FB8000FC0380FF8000FC0781FF000 0FC0701FE0000FC0701FE0000FC0701FC0000FC0F01F80001FC0E03F80001F80E03F0000 1F80003F00001F80003F00003F80007F00003F00007E00003F00007E00003F00007E0000 7F0000FE00007E0000FC00007E0000FC0000FE0000FC0000FC0001FC0000FC0001F80001 FC0001F80001F80001F80001F80F03F80003F80E03F00003F00E03F00003F00E03F00007 F01E07F00007E01C07E00007E01C07E00007E03C07E00007C0380FE00007C0780FC00007 C0700FC00007C0E00FC00003C1E01FC00003E3C01F800001FF00070000007C00302D78AB 37>I<00000FE00000007FFC000001F83E000007E00F80000F8007C0001F0007C0007E00 03E000FC0003F000FC0003F001F80001F003F00001F807F00001F80FE00001F80FE00001 F81FC00001F81FC00001F83F800001F83F800003F87F800003F87F000003F87F000003F8 7F000007F8FF000007F0FE000007F0FE000007F0FE00000FF0FE00000FE0FC00000FE0FC 00001FC0FC00001FC0FC00001F80FC00003F80FC00003F00FC00007F00FC00007E00FC00 00FC007C0001F8007E0003F0003E0003E0003E0007C0001F001F80000F803E000007C0FC 000001FFF00000003F800000252D75AB32>I<0003E0007E000007F801FF80000E3C0783 E0001C1E0F01F0003C1F1C00F800381F3800F800781F70007C00701FE0007C00701FE000 7C00703FC0007E00E03F80007E00E03F80007E00E03F00007E01E07F00007E01C07F0000 7E01C07E00007E00007E00007E0000FE0000FE0000FE0000FE0000FC0000FE0000FC0000 FE0001FC0001FE0001FC0001FC0001F80001FC0001F80001FC0003F80003FC0003F80003 F80003F00003F80003F00003F80007F00007F00007F00007F00007E0000FE00007E0000F E0000FE0000FC0000FE0001F80000FE0003F80000FE0003F00001FF0007E00001FF000FC 00001FF001F800001FB803F000003F9C07E000003F9E0F8000003F07FE0000003F01F800 00007F00000000007F00000000007E00000000007E0000000000FE0000000000FE000000 0000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F8000000 0003F80000000003F80000000007F800000000FFFFF0000000FFFFF0000000FFFFE00000 002F3F7FAB32>I<00001F800C00007FE01C0001F0703C0007C03878000F801CF8001F00 1DF8003E000FF8007E000FF000FC000FF001F80007F001F80007F003F00007E007F00007 E007E00007E00FE0000FE00FE0000FC01FC0000FC01FC0000FC03FC0001FC03F80001F80 3F80001F803F80001F807F80003F807F00003F007F00003F007F00003F007F00007F00FE 00007E00FE00007E00FE00007E00FE0000FE00FE0000FC00FE0000FC007E0001FC007E00 01FC007E0003F8007E0007F8003E000FF8003E000FF8001F001FF0001F003BF0000F80F3 F00007C3E7F00001FF87E000007E07E000000007E00000000FE00000000FC00000000FC0 0000000FC00000001FC00000001F800000001F800000001F800000003F800000003F0000 00003F000000007F000000007F00000000FF0000007FFFFE00007FFFFE00007FFFFC0026 3F76AB2D>I<01F0003F8003FC01FFF0071E03C0F80E0F0F007C1E0F9E01FC1C0F9C01FC 1C0FB803FC380FF003FC380FF003FC381FE003F8781FE000E0701FC00000701FC00000F0 1F800000E03F800000E03F000000003F000000003F000000007F000000007E000000007E 000000007E00000000FE00000000FC00000000FC00000000FC00000001FC00000001F800 000001F800000001F800000003F800000003F000000003F000000003F000000007F00000 0007E000000007E000000007E00000000FE00000000FC00000000FC00000000FC0000000 1FC00000001F800000000700000000262D78AB29>I<00000FE00000007FF8000001F01E 000003C00F000007800780000F000380001E0003C0001E0007C0003C001FC0003C001FC0 007C003F800078003F80007C003F80007C000E00007C000000007E000000007F00000000 7FF00000007FFF0000003FFFC000001FFFF000000FFFF8000007FFFC000000FFFC000000 0FFE00000001FE00000000FE000000007F000000003F000E00003F003F00001E007F8000 1E007F80001E007F80003E00FF00003C00FF00003C00FC000078007000007800700000F0 00780001E0003C0003C0001E000F80000F803E000003FFF80000007FC00000222D7AAB28 >I<000070000001F8000001F8000001F8000003F8000003F0000003F0000003F0000007 F0000007E0000007E0000007E000000FE000000FC000000FC000000FC000001FC000001F 8000001F80007FFFFFE0FFFFFFE0FFFFFFC0003F0000003F0000007F0000007E0000007E 0000007E000000FE000000FC000000FC000000FC000001FC000001F8000001F8000001F8 000003F8000003F0000003F0000003F0000007F0000007E0000007E0000007E000000FE0 00000FC000000FC000000FC007801FC007001F8007001F800F001F800E003F801E003F00 1C003F003C003F0038003F0070001F00F0001F01E0000F03C0000F87800007FE000001F8 00001B3F78BD20>I<007C0000000001FF0000070003C780001F800703C0001F800F03E0 001F800E03E0003F801C03E0003F801C07E0003F003807E0003F003807E0007F007807E0 007F00700FE0007E00700FC0007E00701FC000FE00F01F8000FE00E01F8000FC00003F80 00FC00003F0001FC00003F0001FC00007F0001F800007E0001F800007E0003F80000FE00 03F80000FC0003F00000FC0003F00000FC0007F00001FC0007F00001F80007E00001F800 07E00001F8000FE03803F8000FE07803F0000FC07003F0000FC07003F0000FC07003F000 1FC0F003F0001F80E003F0003F80E001F0003F81E001F0007F81C001F800EF83C000F801 EF8380007C03C78780003E0F07C700001FFE01FE000003F00078002D2D78AB34>I<007C 00003801FF0000FC03C78001FE0703C001FE0F03E001FE0E03E001FE1C03E000FE1C07E0 007E3807E0007E3807E0003E7807E0003E700FE0001E700FC0001E701FC0001EF01F8000 1CE01F80001C003F80001C003F00003C003F000038007F000038007E000038007E000078 00FE00007000FC00007000FC00007000FC0000F001FC0000E001F80000E001F80001E001 F80001C001F80001C003F000038003F000038003F000070003F000070003F0000E0001F0 000E0001F0001C0001F800380000F800780000FC00F000007C01E000003F078000000FFF 00000003F80000272D78AB2D>I<007C00000000038001FF00000E000FC003C780003F00 1FE00703C0003F001FE00E03E0003F001FE00E03E0007F001FE01C03E0007E000FE01C07 E0007E0007E03807E0007E0007E03807E000FE0003E07807E000FC0003E0700FE000FC00 03E0700FC000FC0001E0701FC001FC0001E0F01F8001F80001C0E01F8001F80001C0003F 8001F80001C0003F0003F80003C0003F0003F0000380007F0003F0000380007E0003F000 0380007E0007F000078000FE0007F000070000FC0007E000070000FC0007E000070000FC 000FE0000F0001FC000FE0000E0001F8000FC0000E0001F8000FC0000E0001F8000FC000 1C0001F8000FC0001C0003F0001F80001C0003F0001F8000380003F0001F8000380003F0 001F8000700001F0001F8000700001F0003F8000E00001F8003F8000E00001F8007FC001 C00000F800F7C003C00000FC00E7E0078000007E01C3E00F0000001F0781F81E0000000F FF007FF800000001FC000FE000003B2D78AB41>I<0000F8003F000007FE00FFE0000F0F 83C0F0001C07C780F8003803CF03F8007003EE03F800E003FC07F801E003FC07F801C003 F807F803C003F807F0038003F801C0078003F00000070003F00000070007F000000F0007 E000000E0007E00000000007E0000000000FE0000000000FC0000000000FC0000000000F C0000000001FC0000000001F80000000001F80000000001F80000000003F80000000003F 00000000003F00000000003F00000000007F0003C000007F00038000007E00038000007E 0003800000FE0007001E00FE0007003F00FE000F007F81FC000E007F81FE001C00FF83FE 003C00FF03BE007800FE079E00F0007C0F1F01E0003C1E0F83C0001FF803FF000007E000 FC00002D2D7CAB2D>I<007C0000000001FF0000070003C780001F800703C0001F800F03 E0001F800E03E0003F801C03E0003F001C07E0003F003807E0003F003807E0007F007807 E0007E00700FE0007E00700FC0007E00701FC000FE00F01F8000FC00E01F8000FC00003F 8000FC00003F0001FC00003F0001F800007F0001F800007E0001F800007E0003F80000FE 0003F00000FC0003F00000FC0003F00000FC0007F00001FC0007E00001F80007E00001F8 0007E00001F8000FE00003F8000FC00003F0000FC00003F0000FC00003F0001FC00003F0 001F800003F0001F800003F0003F800001F0003F800001F0007F000001F800FF000000F8 01FF0000007C03FF0000003E0F7E0000001FFE7E00000003F07E0000000000FE00000000 00FC0000000000FC0000000001FC0000000001F800001F0001F800007F8003F000007F80 03F000007F8007E00000FF000FC00000FF000F800000FE001F800000F0003F0000007000 7E0000007800F80000003801F00000001E07C00000000FFF0000000001FC000000002940 78AB2F>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fv ectt1200 12 61 /Fv 61 123 df<1F003F807FC0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FF E0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE07FC07FC07FC07FC07FC07FC07FC07FC07FC07F C07FC07FC07FC07FC07FC07FC07FC07FC03F800000000000000000000000000000000000 001F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B3E6CBD33>33 D<080001003E0007C07F000FE07F000FE0FF000FF0FF000FF07F000FE07F000FE07F000F E07F000FE07F000FE07F000FE07F000FE07F000FE07F000FE07F000FE07F000FE07F000F E07F000FE07F000FE07F000FE07F000FE07F000FE07F000FE07F000FE07F000FE07E0007 E03E0007C03E0007C0080001001C1E75BD33>I<07C00FF01FF83FFC3FFC3FFE3FFE3FFF 1FFF0FFF07FF003F003F003F003F003F007F007E007E00FE00FC01FC03F807F80FF01FE0 7FE0FFC0FF80FE00FC00700010206EBC33>39 D<07C00FF01FF83FF83FFC3FFC3FFE3FFE 1FFE0FFE07FE007E00FE00FE00FC01FC03F807F80FF07FE0FFE0FFC0FF00FE0078000F19 6E8A33>44 D<7FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFF80 2206789833>I<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B6C8A33>I<00 00000038000000007C00000000FC00000000FC00000001FC00000001F800000003F80000 0003F000000007F000000007E00000000FE00000000FC00000001FC00000001F80000000 1F800000003F800000003F000000007F000000007E00000000FE00000000FC00000001FC 00000001F800000001F800000003F800000003F000000007F000000007E00000000FE000 00000FC00000001FC00000001F800000003F800000003F000000003F000000007F000000 007E00000000FE00000000FC00000001FC00000001F800000003F800000003F000000003 F000000007F000000007E00000000FE00000000FC00000001FC00000001F800000003F80 0000003F000000007F000000007E000000007E00000000FE00000000FC00000001FC0000 0001F800000003F800000003F000000007F000000007E000000007E00000000FE0000000 0FC00000001FC00000001F800000003F800000003F000000007F000000007E00000000FE 00000000FC00000000FC00000000F8000000007800000000264D7AC433>I<07FFFFFFF0 0FFFFFFFF81FFFFFFFF81FFFFFFFF81FFFFFFFF81FFFFFFFF01FC00000001FC00000001F C00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0 0000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0FF C0001FC7FFF8001FDFFFFC001FFFFFFF001FFFFFFF801FFFFFFFC01FFF80FFE01FFC001F F01FF0000FF81FE00007F81FC00003FC0F800001FC07000001FE00000000FE00000000FE 00000000FF000000007F000000007F000000007F000000007F180000007F7E0000007F7E 0000007FFF000000FFFF000000FEFF000000FEFE000001FEFF000001FC7F000003FC7F80 0007F87FC0000FF83FE0001FF01FF0007FE01FFE03FFC00FFFFFFF8007FFFFFF0001FFFF FE0000FFFFF800003FFFE0000003FF0000283E7BBC33>53 D<0000FFC000000007FFF800 00001FFFFE0000007FFFFF800000FFFFFFC00001FFFFFFE00003FF807FF00007FE001FF8 000FF80007FC000FF00003FC001FE00001FE001FC00000FE003FC00000FF003F8000007F 003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F001FC00000FE 001FC00000FE000FE00001FC000FF00003FC0007F80007F80003FE001FF00001FF807FE0 0000FFFFFFC000003FFFFF0000000FFFFC0000000FFFFC0000003FFFFF000000FFFFFFC0 0001FF807FE00007FC000FF8000FF80007FC001FE00001FE001FC00000FE003F8000007F 007F8000007F807F0000003F807F0000003F80FE0000001FC0FE0000001FC0FE0000001F C0FE0000001FC0FE0000001FC0FE0000001FC0FE0000001FC0FF0000003FC07F0000003F 807F8000007F803F8000007F003FC00000FF001FE00001FE001FF80007FE000FFC000FFC 0007FF807FF80003FFFFFFF00001FFFFFFE000007FFFFF8000003FFFFF00000007FFF800 000000FFC000002A3F7CBD33>56 D<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000001F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B2B6CAA33>58 D<000FFF8000007FFFF80001FFFFFE0007FFFFFF800FFFFFFFC01FFFFFFFE03FFC01FFF0 7FE0001FF87F800007F8FF000003FCFE000003FCFF000001FCFF000001FCFF000001FC7E 000001FC7E000003FC18000007F80000001FF80000003FF0000000FFE0000001FFC00000 03FF80000007FE0000000FFC0000001FF80000003FE00000003FC00000007F80000000FF 00000000FF00000001FE00000001FC00000001FC00000003FC00000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 0001F0000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000E000000003F800000003F800000007FC00000007 FC00000007FC00000003F800000003F800000000E00000263E7ABD33>63 D<000007F8000000003FFF00000000FFFF80000003FFFFE000000FFFFFF000001FFFFFF8 00003FFC0FF800007FE003FC0000FF8001FC0001FF0000FE0003FC00007E0003F8007E7F 0007F801FFBF0007F007FFFF000FE00FFFFF800FC01FFFFF801FC03FFFFF801F803FC3FF 803F807F81FF803F007F00FFC03F00FE007FC07F00FC003FC07E01FC003FC07E01F8001F C07E01F8001FC0FE01F8001FC0FC03F8001FC0FC03F0000FC0FC03F0000FC0FC03F0000F C0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000F C0FC03F8001FC0FE01F8001F807E01F8001F807E01F8001F807E01FC003F807F00FC003F 003F00FE007F003F007F00FE003F807F81FE001F803FC3FC001FC03FFFFC000FC01FFFF8 000FE00FFFF00007F007FFE00007F801FF800003F8007E000003FC00000F8001FF00001F C000FF80003FC0007FE000FFC0003FFC07FF80001FFFFFFF00000FFFFFFE000003FFFFF8 000000FFFFF00000003FFF8000000007FC00002A3F7CBD33>I<00001F80000000003FC0 000000007FE0000000007FE0000000007FE000000000FFF000000000FFF000000000FFF0 00000000F9F000000001F9F800000001F9F800000001F9F800000001F9F800000001F9F8 00000003F9FC00000003F9FC00000003F0FC00000003F0FC00000007F0FE00000007F0FE 00000007F0FE00000007F0FE00000007E07E0000000FE07F0000000FE07F0000000FE07F 0000000FE07F0000001FC03F8000001FC03F8000001FC03F8000001FC03F8000001FC03F 8000003F801FC000003F801FC000003F801FC000003F801FC000007F801FE000007F000F E000007F000FE000007FFFFFE000007FFFFFE00000FFFFFFF00000FFFFFFF00000FFFFFF F00000FFFFFFF00001FE0007F80001FC0003F80001FC0003F80001FC0003F80001FC0003 F80003FC0003FC0003F80001FC0003F80001FC0003F80001FC0007F80001FE0007F00000 FE007FFF000FFFE0FFFF801FFFF0FFFFC03FFFF0FFFFC03FFFF0FFFF801FFFF07FFF000F FFE02C3E7DBD33>I<7FFFFFFC0000FFFFFFFF8000FFFFFFFFE000FFFFFFFFF000FFFFFF FFF8007FFFFFFFFC0003F80007FE0003F80001FF0003F80000FF0003F800007F8003F800 003F8003F800003F8003F800003FC003F800001FC003F800001FC003F800001FC003F800 001FC003F800001FC003F800001FC003F800003F8003F800003F8003F800007F8003F800 00FF0003F80001FE0003F80003FE0003F8000FFC0003FFFFFFF80003FFFFFFE00003FFFF FFC00003FFFFFFC00003FFFFFFF00003FFFFFFFC0003F80007FE0003F80001FF0003F800 007F8003F800003F8003F800001FC003F800001FE003F800000FE003F800000FE003F800 0007F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F800 0007F003F800000FF003F800000FE003F800000FE003F800001FE003F800003FC003F800 007FC003F80001FF8003F80007FF807FFFFFFFFF00FFFFFFFFFE00FFFFFFFFFC00FFFFFF FFF000FFFFFFFFC0007FFFFFFF00002C3D7EBC33>I<00001FE007800000FFFC07C00003 FFFF0FC0000FFFFF8FC0001FFFFFFFC0003FFFFFFFC0007FF81FFFC000FFC007FFC001FF 8003FFC003FE0001FFC003FC0000FFC007F80000FFC007F800007FC00FF000007FC00FE0 00003FC01FE000003FC01FC000003FC03FC000001FC03F8000001FC03F8000001FC07F80 00001FC07F0000000F807F00000000007F0000000000FF0000000000FE0000000000FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FF00 000000007F00000000007F00000000007F00000000007F8000000F803F8000001FC03F80 00001FC03FC000001FC01FC000001FC01FE000001FC00FE000003FC00FF000003F8007F8 00003F8007F800007F8003FC0000FF0003FE0000FF0001FF8003FE0000FFC007FC00007F F81FF800003FFFFFF000001FFFFFE000000FFFFFC0000003FFFF00000000FFFC00000000 1FE000002A3F7CBD33>I<3FFFFFF000007FFFFFFC0000FFFFFFFF0000FFFFFFFF80007F FFFFFFC0003FFFFFFFE00003F8007FF00003F8001FF80003F80007FC0003F80003FC0003 F80001FE0003F80001FF0003F80000FF0003F800007F8003F800007F8003F800003F8003 F800003FC003F800001FC003F800001FC003F800001FE003F800000FE003F800000FE003 F800000FE003F800000FE003F8000007F003F8000007F003F8000007F003F8000007F003 F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003 F8000007F003F8000007F003F8000007F003F800000FF003F800000FE003F800000FE003 F800000FE003F800000FE003F800001FE003F800001FC003F800003FC003F800003FC003 F800003F8003F800007F8003F80000FF0003F80000FF0003F80001FE0003F80003FE0003 F80007FC0003F8001FF80003F8007FF0003FFFFFFFF0007FFFFFFFC000FFFFFFFF8000FF FFFFFF00007FFFFFFC00003FFFFFF000002C3D7EBC33>I<3FFFFFFFFFE07FFFFFFFFFF0 FFFFFFFFFFF0FFFFFFFFFFF07FFFFFFFFFF03FFFFFFFFFF001FC000007F001FC000007F0 01FC000007F001FC000007F001FC000007F001FC000007F001FC000007F001FC000007F0 01FC000003E001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC001F000001FC003F800001FC003F800001FC003F800001FC003F8000 01FFFFFF800001FFFFFF800001FFFFFF800001FFFFFF800001FFFFFF800001FFFFFF8000 01FC003F800001FC003F800001FC003F800001FC003F800001FC001F000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC000000F801FC000001FC01FC000001FC01FC000001FC01FC000001FC 01FC000001FC01FC000001FC01FC000001FC01FC000001FC01FC000001FC3FFFFFFFFFFC 7FFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFC7FFFFFFFFFFC3FFFFFFFFFF82E3D7EBC33> I<3FFFFFFFFFE07FFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF07FFFFFFFFFF03FFFFFFFFF F001FC000007F001FC000007F001FC000007F001FC000007F001FC000007F001FC000007 F001FC000007F001FC000007F001FC000003E001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC001F000001FC003F80 0001FC003F800001FC003F800001FC003F800001FFFFFF800001FFFFFF800001FFFFFF80 0001FFFFFF800001FFFFFF800001FFFFFF800001FC003F800001FC003F800001FC003F80 0001FC003F800001FC001F000001FC0000000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 0001FC000000003FFFF80000007FFFFC000000FFFFFE000000FFFFFE0000007FFFFC0000 003FFFF80000002C3D7DBC33>I<00007F803C000001FFF03E000007FFFC7E00001FFFFE 7E00003FFFFFFE00007FFFFFFE0000FFE07FFE0001FF803FFE0001FF000FFE0003FC000F FE0007FC0007FE0007F80003FE000FF00003FE000FE00001FE001FE00001FE001FC00001 FE003FC00001FE003F800000FE003F800000FE007F800000FE007F000000FE007F000000 7C007F00000000007F0000000000FF0000000000FE0000000000FE0000000000FE000000 0000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000 0000FE00007FFFC0FE0000FFFFE0FE0000FFFFE0FE0000FFFFE0FF0000FFFFE07F00007F FFC07F000000FE007F000000FE007F000000FE007F800001FE003F800001FE003F800001 FE003FC00001FE001FC00001FE001FE00003FE000FE00003FE000FF00003FE0007F80007 FE0007F80007FE0003FC000FFE0001FE001FFE0001FF803FFE0000FFE0FFFE00007FFFFF FE00003FFFFFFE00001FFFFEFE000007FFF8FE000001FFF07C0000007F8000002B3F7CBD 33>I<7FFFC00FFFF8FFFFE01FFFFCFFFFE01FFFFCFFFFE01FFFFCFFFFE01FFFFC7FFFC0 0FFFF803F800007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F0003F800007F0003FFFFFFFF0003FFFFFFFF0003FFFFFFFF0003FFFF FFFF0003FFFFFFFF0003FFFFFFFF0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800007F0003F800 007F0003F800007F007FFFC00FFFF8FFFFE01FFFFCFFFFE01FFFFCFFFFE01FFFFCFFFFE0 1FFFFC7FFFC00FFFF82E3D7EBC33>I<3FFFFFFF807FFFFFFFC0FFFFFFFFE0FFFFFFFFE0 7FFFFFFFC03FFFFFFF800003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 F800003FFFFFFF807FFFFFFFC0FFFFFFFFE0FFFFFFFFE07FFFFFFFC03FFFFFFF80233D78 BC33>I<3FFF0007FFE07FFF800FFFF0FFFFC00FFFF8FFFFC00FFFF87FFF800FFFF03FFF 0007FFE003F00000FE0003F00001FC0003F00003F80003F00007F80003F00007F00003F0 000FE00003F0001FC00003F0003FC00003F0007F800003F0007F000003F000FE000003F0 01FC000003F003FC000003F003F8000003F007F0000003F00FE0000003F01FE0000003F0 1FC0000003F03F80000003F07F80000003F0FF80000003F1FFC0000003F1FFC0000003F3 FFE0000003F7F7E0000003FFF7F0000003FFE3F0000003FFC3F8000003FF81FC000003FF 81FC000003FF00FE000003FE00FE000003FC007F000003FC003F000003F8003F800003F0 001F800003F0001FC00003F0000FC00003F0000FE00003F00007F00003F00007F00003F0 0003F80003F00003F80003F00001FC0003F00000FC0003F00000FE0003F000007E0003F0 00007F0003F000003F003FFF0000FFF07FFF8001FFF8FFFFC003FFFCFFFFC003FFFC7FFF 8001FFF83FFF0000FFF02E3D7EBC33>75 D<7FFFF8000000FFFFFC000000FFFFFE000000 FFFFFE000000FFFFFC0000007FFFF800000001FC0000000001FC0000000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000000 01FC000003E001FC000007F001FC000007F001FC000007F001FC000007F001FC000007F0 01FC000007F001FC000007F001FC000007F001FC000007F07FFFFFFFFFF0FFFFFFFFFFF0 FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF07FFFFFFFFFE02C3D7DBC33>I<3FF800001F FC7FFC00003FFEFFFE00007FFFFFFE00007FFF7FFE00007FFE3FFF0000FFFC07FF0000FF E007EF0000F7E007EF8001F7E007EF8001F7E007EF8001F7E007E7C003E7E007E7C003E7 E007E7C003E7E007E7E007E7E007E7E007E7E007E3E007C7E007E3E007C7E007E3F00FC7 E007E3F00FC7E007E1F00F87E007E1F81F87E007E1F81F87E007E0F81F07E007E0F81F07 E007E0FC3F07E007E0FC3F07E007E07C3E07E007E07C3E07E007E07E7E07E007E03E7C07 E007E03E7C07E007E03E7C07E007E01E7807E007E01FF807E007E01FF807E007E00FF007 E007E00FF007E007E00FF007E007E007E007E007E003C007E007E0000007E007E0000007 E007E0000007E007E0000007E007E0000007E007E0000007E007E0000007E007E0000007 E007E0000007E007E0000007E007E0000007E007E0000007E007E0000007E007E0000007 E03FFC00003FFC7FFE00007FFEFFFF0000FFFFFFFF0000FFFF7FFE00007FFE3FFC00003F FC303D7FBC33>I<7FFC001FFFE0FFFE003FFFF0FFFF003FFFF0FFFF003FFFF0FFFF003F FFF07FFF801FFFE003FF8000FC0003F78000FC0003F7C000FC0003F7C000FC0003F3C000 FC0003F3E000FC0003F3E000FC0003F3E000FC0003F1F000FC0003F1F000FC0003F1F000 FC0003F1F800FC0003F0F800FC0003F0F800FC0003F0FC00FC0003F0FC00FC0003F07C00 FC0003F07E00FC0003F07E00FC0003F03E00FC0003F03F00FC0003F03F00FC0003F01F00 FC0003F01F80FC0003F01F80FC0003F01F80FC0003F00F80FC0003F00FC0FC0003F00FC0 FC0003F007C0FC0003F007E0FC0003F007E0FC0003F003E0FC0003F003F0FC0003F003F0 FC0003F001F0FC0003F001F0FC0003F001F8FC0003F000F8FC0003F000F8FC0003F000F8 FC0003F0007CFC0003F0007CFC0003F0007CFC0003F0003CFC0003F0003EFC0003F0003E FC0003F0001EFC0003F0001FFC007FFF801FFC00FFFFC00FFC00FFFFC00FFC00FFFFC00F FC00FFFFC007FC007FFF8003F8002C3D7DBC33>I<001FFFF80000FFFFFF0003FFFFFFC0 0FFFFFFFF00FFFFFFFF01FFFFFFFF83FFC003FFC3FE00007FC3FC00003FC7F800001FE7F 800001FE7F000000FE7F000000FE7F000000FE7F000000FE7F000000FEFE0000007FFE00 00007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000 007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE000000 7FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007F FE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFE0000007FFF 000000FF7F000000FE7F000000FE7F000000FE7F000000FE7F800001FE7F800001FE7F80 0001FE3FC00003FC3FF0000FFC3FFC003FFC1FFFFFFFF80FFFFFFFF00FFFFFFFF003FFFF FFC000FFFFFF00001FFFF800283F7BBD33>I<3FFFFFFC00007FFFFFFF8000FFFFFFFFE0 00FFFFFFFFF8007FFFFFFFFC003FFFFFFFFE0001FC000FFF0001FC0003FF8001FC0000FF 8001FC00007FC001FC00003FC001FC00001FE001FC00000FE001FC00000FE001FC00000F F001FC000007F001FC000007F001FC000007F001FC000007F001FC000007F001FC000007 F001FC00000FF001FC00000FE001FC00000FE001FC00001FE001FC00003FC001FC00007F C001FC0000FF8001FC0003FF8001FC000FFF0001FFFFFFFE0001FFFFFFFC0001FFFFFFF8 0001FFFFFFE00001FFFFFF800001FFFFFC000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC000000003FFFE00000007FFFF00000 00FFFFF8000000FFFFF80000007FFFF00000003FFFE00000002C3D7EBC33>I<7FFFFF80 0000FFFFFFF80000FFFFFFFE0000FFFFFFFF0000FFFFFFFF80007FFFFFFFC00003F800FF E00003F8003FF00003F8000FF80003F80007F80003F80003FC0003F80001FC0003F80001 FC0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000FE0003F80000 FE0003F80000FE0003F80001FC0003F80001FC0003F80003FC0003F80007F80003F8000F F80003F8003FF00003F800FFE00003FFFFFFC00003FFFFFF800003FFFFFF000003FFFFFE 000003FFFFFF000003FFFFFF800003F800FFC00003F8003FC00003F8001FE00003F8000F E00003F8000FF00003F80007F00003F80007F00003F80007F00003F80007F00003F80007 F00003F80007F00003F80007F00003F80007F00003F80007F00003F80007F00003F80007 F03E03F80007F07F03F80007F07F03F80007F07F03F80007F07F03F80007F87F03F80003 F8FF7FFFC003F8FEFFFFE001FFFEFFFFE001FFFCFFFFE000FFFCFFFFE0007FF87FFFC000 3FF0000000000FC0303E7EBC33>82 D<0007FE0078003FFFC07C00FFFFF0FC01FFFFFCFC 07FFFFFFFC0FFFFFFFFC0FFC03FFFC1FF0007FFC3FE0003FFC3F80001FFC7F80000FFC7F 000007FCFF000003FCFE000003FCFE000003FCFE000001FCFE000001FCFE000001FCFE00 0001FCFF000000F87F000000007F800000007FC00000003FE00000003FF00000001FFE00 00000FFFE0000007FFFF000003FFFFF00001FFFFFC00007FFFFF00001FFFFF800003FFFF C000003FFFE0000003FFF00000003FF80000000FFC00000007FC00000003FE00000001FE 00000000FE00000000FF00000000FF7C0000007FFE0000007FFE0000007FFE0000007FFE 0000007FFE0000007FFF000000FFFF000000FEFF800000FEFF800001FCFFC00003FCFFF0 0007F8FFFC000FF8FFFF807FF0FFFFFFFFE0FFFFFFFFC0FCFFFFFF80FC3FFFFE00F80FFF FC007800FFE000283F7BBD33>I<3FFFFFFFFFF87FFFFFFFFFFCFFFFFFFFFFFCFFFFFFFF FFFCFFFFFFFFFFFCFFFFFFFFFFFCFE000FE001FCFE000FE001FCFE000FE001FCFE000FE0 01FCFE000FE001FCFE000FE001FCFE000FE001FCFE000FE001FC7C000FE000F800000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE000000007FFFFC000000FFFFFE000001FFFFF F000001FFFFFF000000FFFFFE0000007FFFFC0002E3D7EBC33>I<3FFFE001FFFF007FFF F003FFFF80FFFFF807FFFFC0FFFFF807FFFFC07FFFF003FFFF803FFFE001FFFF0001FC00 000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0000 0FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000F E00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE0 0001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE000 01FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001 FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC 00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00 000FE00001FC00000FE00001FC00000FE00001FE00001FE00000FE00001FC00000FE0000 1FC00000FF00003FC000007F00003F8000007F00003F8000003F80007F0000003FC000FF 0000001FE001FE0000001FF003FE0000000FFC0FFC00000007FFFFF800000003FFFFF000 000001FFFFE0000000007FFF80000000001FFE000000000007F8000000323E80BC33>I< 3FFC00003FFC7FFE00007FFEFFFF0000FFFFFFFF0000FFFF7FFE00007FFE3FFC00003FFC 0FC0000003F00FC0000003F00FC0000003F00FC0000003F00FC0000003F00FC0000003F0 0FC0000003F00FE0000007F007E0000007E007E0000007E007E0000007E007E0000007E0 07E0000007E007E0000007E007E0000007E007E0000007E003F000000FC003F000000FC0 03F007E00FC003F00FF00FC003F01FF80FC003F01FF80FC003F01FF80FC001F01FF80F80 01F83FFC1F8001F83E7C1F8001F83E7C1F8001F83E7C1F8001F83E7C1F8001F87E7E1F80 01F87E7E1F8000F87E7E1F0000F87E7E1F0000F87C3E1F0000FC7C3E3F0000FCFC3F3F00 00FCFC3F3F0000FCFC3F3F0000FCF81F3F00007CF81F3E00007CF81F3E00007CF81F3E00 007CF81F3E00007CF81F3E00007DF00FBE00007DF00FBE00007DF00FBE00003DF00FBC00 003FE007FC00003FE007FC00003FE007FC00003FE007FC00003FE007FC00003FC003FC00 001FC003F800000F8001F000303E7FBC33>87 D<7FFF0003FFF8FFFF8007FFFCFFFFC00F FFFCFFFFC00FFFFCFFFF8007FFFC7FFF0003FFF803FC00007F0003FC0000FF0001FC0000 FE0001FE0001FE0000FE0001FE0000FF0003FC00007F0003FC00007F8003F800003F8007 F800003FC007F000001FC00FF000001FE00FE000001FE00FE000000FE01FE000000FF01F C0000007F03FC0000007F83F80000003F83F80000003F87F00000001FC7F00000001FC7E 00000000FCFE00000000FEFE000000007EFC000000007FFC000000003FF8000000003FF8 000000001FF0000000001FF0000000001FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE0000000000FE0000000000FE0000000000FE000000001FFFF00000003FFFF 80000003FFFF80000003FFFF80000003FFFF80000001FFFF00002E3D7EBC33>89 D<7FFFFFFFFE7FFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFE7FFFFFFFFE 28077B7D33>95 D<000E003F007F01FF03FF07FE07F80FF01FE01FC03F803F007F007E00 7E00FE00FC00FC00FC00FC00FC00FFE0FFF0FFF8FFFC7FFC7FFC3FFC3FFC1FF80FF003E0 10206FC333>I<001FFC00000000FFFF80000003FFFFE0000007FFFFF000000FFFFFFC00 001FFFFFFE00001FF007FF00001FE001FF00001FE000FF80001FE0003F80000FC0003FC0 000780001FC0000000001FE0000000000FE0000000000FE0000000000FE0000000000FE0 000000000FE00000000FFFE0000001FFFFE000001FFFFFE000007FFFFFE00001FFFFFFE0 0007FFFF0FE0000FFFC00FE0001FFC000FE0003FF0000FE0007FC0000FE0007F80000FE0 00FF00000FE000FE00000FE000FE00000FE000FE00000FE000FE00000FE000FE00000FE0 00FF00001FE0007F00001FE0007F80007FE0003FE000FFF0003FF807FFFFF01FFFFFFFFF F80FFFFFFFFFF807FFFFF3FFF803FFFFC1FFF800FFFF003FF0001FF00000002D2E7BAC33 >I<3FFC000000007FFE00000000FFFE00000000FFFE000000007FFE000000003FFE0000 000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000 000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE01FE 000000FE0FFFC00000FE1FFFF00000FE7FFFF80000FEFFFFFE0000FFFFFFFF0000FFFE07 FF0000FFF800FF8000FFE0007FC000FFC0003FE000FF80001FE000FF80000FF000FF0000 0FF000FF000007F000FE000007F800FE000003F800FE000003F800FE000003FC00FE0000 01FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE0000 01FC00FE000001FC00FE000001FC00FE000003FC00FE000003F800FE000003F800FF0000 07F800FF000007F000FF80000FF000FF80000FE000FFC0001FE000FFC0003FC000FFE000 7FC000FFF801FF8000FFFE07FF0000FFFFFFFE0000FEFFFFFC0000FE7FFFF800007E3FFF E000003C0FFF8000000003FE00002E3E7FBC33>I<0000FFF0000007FFFE00001FFFFF80 003FFFFFC0007FFFFFE001FFFFFFF003FFC01FF003FE000FF007FC000FF00FF8000FF01F F00007E01FE00003C03FC00000003F800000003F800000007F800000007F000000007F00 000000FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00000000FF000000007F000000007F000000007F800000 003F800001F03FC00003F81FE00003F81FF00007F80FF80007F007FC000FF007FF001FE0 03FFE07FE001FFFFFFC000FFFFFF80003FFFFF00001FFFFC000007FFF8000000FFC00025 2E79AC33>I<0000007FF800000000FFFC00000001FFFC00000001FFFC00000000FFFC00 0000007FFC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 0001FF01FC000007FFC1FC00001FFFF1FC00007FFFF9FC0000FFFFFFFC0001FFFFFFFC00 03FF81FFFC0007FE003FFC000FF8001FFC000FF0000FFC001FE00007FC001FC00003FC00 3FC00003FC003F800001FC007F800001FC007F000001FC007F000001FC00FF000001FC00 FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00 FE000001FC00FE000001FC00FE000001FC00FF000001FC007F000001FC007F000003FC00 7F800003FC003F800003FC003FC00007FC003FC00007FC001FE0000FFC001FF0001FFC00 0FF8003FFC0007FC007FFC0003FF81FFFFF003FFFFFFFFF800FFFFFDFFFC007FFFF9FFFC 003FFFE1FFF8000FFF80FFF00001FE0000002E3E7DBC33>I<0000FF80000007FFF00000 1FFFFC00003FFFFE0000FFFFFF0001FFFFFF8003FF80FFC007FE003FE007F8000FF00FF0 0007F01FE00007F81FC00003F83FC00003FC3F800001FC7F800001FC7F000001FC7F0000 01FE7F000000FEFF000000FEFE000000FEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFF FEFFFFFFFFFEFFFFFFFFFCFE00000000FF000000007F000000007F000000007F00000000 3F800000003F8000007C1FC00000FE1FE00000FE0FF00000FE0FF80001FE07FC0003FC03 FF000FFC01FFC03FF800FFFFFFF0007FFFFFE0003FFFFFC0000FFFFF000003FFFC000000 7FE000272E7BAC33>I<0000003FE0000001FFFC000007FFFE00001FFFFE00003FFFFF00 007FFFFF0000FFC0FF0000FF00FF0001FE007E0001FC003C0003FC00000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800003FFFFF FFF87FFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFC7FFFFFFFF80003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8 00003FFFFFFF807FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC03FFFFFFF80283E7DBD 33>I<0001FE001FE0000FFFC0FFF0003FFFF3FFF8007FFFFFFFFC00FFFFFFFFFC01FFFF FFFFFC03FF03FFE1FC07FC00FF80F807F8007F80600FF0003FC0000FE0001FC0000FE000 1FC0001FE0001FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC0000FE0001FC000 0FE0001FC0000FE0001FE0001FE0000FE0001FC0000FE0001FC0000FF0003FC00007F800 7F800007FC00FF800003FF03FF000003FFFFFE000007FFFFFC000007FFFFF8000007FFFF F000000FCFFFC000000F81FE0000000F80000000000F80000000000FC0000000000FC000 00000007E00000000007F00000000007FFFFFC000003FFFFFFC00001FFFFFFF00007FFFF FFFC000FFFFFFFFF001FFFFFFFFF801FE00007FF803FC000007FC03F0000001FE07F0000 000FE07E00000007E0FE00000007F0FC00000003F0FC00000003F0FC00000003F0FC0000 0003F0FC00000003F0FE00000007F07E00000007E07F0000000FE03F8000001FC03FE000 007FC01FF80001FF800FFF801FFF0007FFFFFFFE0003FFFFFFFC0000FFFFFFF000003FFF FFC000000FFFFF00000000FFF000002E447DAB33>I<3FFC000000007FFE00000000FFFE 00000000FFFE000000007FFE000000003FFE0000000000FE0000000000FE0000000000FE 0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE 0000000000FE0000000000FE0000000000FE01FF000000FE07FFC00000FE1FFFF00000FE 7FFFF80000FEFFFFF80000FFFFFFFC0000FFFF07FE0000FFF801FE0000FFF000FE0000FF E000FF0000FFC0007F0000FF80007F0000FF80007F0000FF00007F0000FF00007F0000FF 00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE 00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE 00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE 00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F003FFFF80FFFFC7FFF FC1FFFFEFFFFFE3FFFFFFFFFFE3FFFFF7FFFFC1FFFFE3FFFF80FFFFC303D7FBC33>I<00 00E000000003F800000003F800000007FC00000007FC00000007FC00000003F800000003 F800000000E0000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000003FFFF800007FFFFC00007FFFFC00 007FFFFC00007FFFFC00003FFFFC00000001FC00000001FC00000001FC00000001FC0000 0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000 01FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001 FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC 00000001FC00000001FC00000001FC00000001FC00000001FC00007FFFFFFFC0FFFFFFFF E0FFFFFFFFF0FFFFFFFFF0FFFFFFFFE07FFFFFFFC0243E78BD33>I<00000070000001FC 000001FC000003FE000003FE000003FE000001FC000001FC000000700000000000000000 0000000000000000000000000000000000000000000000000000000000000000003FFFFC 007FFFFE00FFFFFE00FFFFFE007FFFFE003FFFFE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000001FE000001FC000001FC180001FC 7E0003F87E0007F8FF0007F0FF000FF0FF803FE0FFFFFFC07FFFFF803FFFFF001FFFFE00 0FFFF80001FFE0001F557BBD33>I<7FF800000000FFFC00000000FFFC00000000FFFC00 000000FFFC000000007FFC0000000000FC0000000000FC0000000000FC0000000000FC00 00000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC00 00000000FC0000000000FC0000000000FC01FFFFC000FC03FFFFE000FC07FFFFF000FC07 FFFFF000FC03FFFFE000FC01FFFFC000FC000FF00000FC001FE00000FC003FC00000FC00 7F800000FC00FF000000FC01FE000000FC03FC000000FC07F8000000FC0FF0000000FC1F E0000000FC3FC0000000FC7F80000000FCFFC0000000FDFFE0000000FFFFE0000000FFFF F0000000FFF3F8000000FFE3FC000000FFC1FC000000FF80FE000000FF007F000000FE00 7F000000FC003F800000FC001FC00000FC001FE00000FC000FE00000FC0007F00000FC00 03F80000FC0003FC0000FC0001FC0000FC0000FE007FFFF80FFFF0FFFFFC1FFFF8FFFFFC 1FFFFCFFFFFC1FFFFCFFFFFC1FFFF87FFFF80FFFF02E3D7EBC33>I<3FFFFC00007FFFFE 0000FFFFFE0000FFFFFE00007FFFFE00003FFFFE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000 00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00003FFFFFFFF87FFFFFFFFCFFFFFFFFFEFFFFFFFFFE7F FFFFFFFC3FFFFFFFF8273D7ABC33>I<0000FC007E00007FC3FF01FF8000FFEFFF87FFC0 00FFFFFFCFFFE000FFFFFFDFFFE000FFFFFFFFFFF0007FFF0FFF87F00007FE07FF03F000 07FC07FE03F80007F803FC01F80007F803FC01F80007F003F801F80007F003F801F80007 F003F801F80007F003F801F80007E003F001F80007E003F001F80007E003F001F80007E0 03F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003 F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F0 01F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001 F80007E003F001F80007E003F001F80007E003F001F80007E003F001F8007FFE0FFF07FF 80FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC07FFE0FFF07FF80 322C80AB33>I<000001FF00003FFC07FFC0007FFE1FFFF000FFFE7FFFF800FFFEFFFFF8 007FFFFFFFFC003FFFFF07FE0000FFF801FE0000FFF000FE0000FFE000FF0000FFC0007F 0000FF80007F0000FF80007F0000FF00007F0000FF00007F0000FF00007F0000FE00007F 0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F 0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F 0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F 0000FE00007F0000FE00007F0000FE00007F003FFFF80FFFFC7FFFFC1FFFFEFFFFFE3FFF FFFFFFFE3FFFFF7FFFFC1FFFFE3FFFF80FFFFC302C7FAB33>I<0001FE0000000FFFC000 003FFFF000007FFFF80000FFFFFC0001FFFFFE0003FF03FF0007FC00FF800FF8007FC00F F0003FC01FE0001FE01FC0000FE03F800007F03F800007F07F800007F87F000003F87F00 0003F87F000003F8FE000001FCFE000001FCFE000001FCFE000001FCFE000001FCFE0000 01FCFE000001FCFE000001FCFE000001FCFE000001FCFF000003FC7F000003F87F000003 F87F800007F83F800007F03FC0000FF03FC0000FF01FE0001FE01FF0003FE00FF8007FC0 07FC00FF8003FF03FF0001FFFFFE0000FFFFFC00007FFFF800003FFFF000000FFFC00000 01FE0000262E7AAC33>I<000001FE00003FFC0FFFC0007FFE1FFFF000FFFE7FFFF800FF FEFFFFFE007FFFFFFFFF003FFFFE07FF0000FFF800FF8000FFE0007FC000FFC0003FE000 FF80001FE000FF80000FF000FF00000FF000FF000007F000FE000007F800FE000003F800 FE000003F800FE000003FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00 FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000001FC00FE000003FC00 FE000003F800FE000003F800FF000007F800FF000007F000FF80000FF000FF80000FE000 FFC0001FE000FFC0003FC000FFE0007FC000FFF801FF8000FFFE07FF0000FFFFFFFE0000 FEFFFFFC0000FE7FFFF80000FE3FFFE00000FE0FFF800000FE03FE000000FE0000000000 FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000 FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000 FE0000000000FE000000003FFFF80000007FFFFC000000FFFFFE000000FFFFFE0000007F FFFC0000003FFFF80000002E427FAB33>I<0000FF007C000007FFE0FE00001FFFF0FE00 007FFFFCFE0000FFFFFEFE0001FFFFFFFE0003FFC0FFFE0007FE003FFE000FFC001FFE00 0FF0000FFE001FE00007FE001FE00003FE003FC00003FE003F800001FE007F800001FE00 7F000001FE007F000000FE00FF000000FE00FE000000FE00FE000000FE00FE000000FE00 FE000000FE00FE000000FE00FE000000FE00FE000000FE00FE000000FE00FE000000FE00 FF000000FE007F000000FE007F000001FE007F800001FE003F800001FE003FC00003FE00 3FC00007FE001FE00007FE000FF0000FFE000FF8001FFE0007FE007FFE0003FF81FFFE00 01FFFFFEFE0000FFFFFCFE00007FFFF8FE00003FFFF0FE00000FFFC0FE000001FE00FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 00000000FE0000000000FE0000000000FE000000007FFFFC000000FFFFFE000000FFFFFE 000000FFFFFE000000FFFFFE0000007FFFFC2F427CAB33>I<00000003FE007FFF801FFF 80FFFFC07FFFE0FFFFC1FFFFE0FFFFC3FFFFF0FFFFC7FFFFF07FFFCFFE0FF0001FDFF00F F0001FFFC007E0001FFF8003C0001FFF000000001FFE000000001FFC000000001FF80000 00001FF8000000001FF0000000001FF0000000001FE0000000001FE0000000001FE00000 00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000 00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000 00001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000 007FFFFFFE0000FFFFFFFF0000FFFFFFFF0000FFFFFFFF0000FFFFFFFF00007FFFFFFE00 002C2C7DAB33>I<001FFE0F0000FFFF8F8003FFFFFF800FFFFFFF801FFFFFFF803FFFFF FF803FF007FF807F8001FF807F0000FF80FE00007F80FC00007F80FC00003F80FC00003F 80FC00003F80FE00003F807F00001F007FC00000003FF80000003FFFC000001FFFFF0000 0FFFFFE00003FFFFF80000FFFFFC00001FFFFF000000FFFF80000007FFC00000007FC000 00001FE07C00000FE0FE000007F0FE000003F0FE000003F0FF000003F0FF000003F0FF80 0003F0FF800007F0FFC00007E0FFE0000FE0FFF0003FC0FFFE01FFC0FFFFFFFF80FFFFFF FF00FDFFFFFE00FCFFFFF800F83FFFE0007807FF0000242E79AC33>I<0003C000000000 07E0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000000 0FE0000000000FE0000000000FE0000000000FE0000000000FE00000003FFFFFFFFC007F FFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE007FFFFFFFFC00000FE000000000 0FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000000 0FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000000 0FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000000 0FE0000000000FE0000000000FE0001F00000FE0003F80000FE0003F80000FE0003F8000 0FE0003F80000FE0003F80000FE0007F80000FF0007F000007F000FF000007F801FF0000 07FE07FE000003FFFFFC000001FFFFF8000000FFFFF00000007FFFE00000001FFF800000 0007FC000029387EB633>I<3FFC001FFE007FFE003FFF00FFFE007FFF00FFFE007FFF00 7FFE003FFF003FFE001FFF0000FE00007F0000FE00007F0000FE00007F0000FE00007F00 00FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F00 00FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F00 00FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F00 00FE00007F0000FE00007F0000FE00007F0000FE0000FF0000FE0000FF0000FE0001FF00 00FE0001FF0000FF0003FF00007F800FFF00007FE03FFFFC003FFFFFFFFE003FFFFFFFFF 001FFFFF7FFF000FFFFE7FFE0003FFF83FFC0000FFC00000302C7FAA33>I<3FFFC00FFF F07FFFE01FFFF8FFFFF03FFFFCFFFFF03FFFFC7FFFE01FFFF83FFFC00FFFF001F800007E 0001FC0000FE0000FC0000FC0000FC0000FC0000FE0001FC00007E0001F800007E0001F8 00007F0003F800003F0003F000003F0003F000003F8007F000001F8007E000001F8007E0 00001FC00FE000000FC00FC000000FC00FC000000FC00FC0000007E01F80000007E01F80 000007E01F80000007F03F80000003F03F00000003F03F00000003F87F00000001F87E00 000001F87E00000001FCFE00000000FCFC00000000FCFC00000000FFFC000000007FF800 0000007FF8000000007FF8000000003FF0000000003FF0000000001FE0000000000FC000 002E2B7EAA33>I<7FFF8007FFF8FFFFC00FFFFCFFFFE01FFFFCFFFFE01FFFFCFFFFC00F FFFC7FFF8007FFF80FC000000FC00FE000001FC007E000001F8007E000001F8007E00000 1F8007E000001F8007E000001F8007F000003F8003F000003F0003F000003F0003F00000 3F0003F00FC03F0003F01FE03F0003F01FE03F0001F83FF07E0001F83FF07E0001F83FF0 7E0001F87FF87E0001F87CF87E0001F87CF87E0000F87CF87C0000FCFCFCFC0000FCFCFC FC0000FCFCFCFC0000FCF87CFC0000FCF87CFC00007CF87CF800007DF87EF800007DF03E F800007DF03EF800007FF03FF800007FF03FF800003FE01FF000003FE01FF000003FE01F F000003FC00FF000000F8007C0002E2B7EAA33>I<3FFFC07FFF807FFFE0FFFFC0FFFFF1 FFFFE0FFFFF1FFFFE07FFFE0FFFFC03FFFC07FFF8000FE000FE000007F001FC000003F80 1FC000003F803F8000001FC07F0000000FE07E00000007F0FE00000007F1FC00000003FB F800000001FFF800000000FFF000000000FFE0000000007FC0000000003FC0000000001F 80000000003F80000000003FC0000000007FE000000000FFE000000001FBF000000001F9 F800000003F1FC00000007E0FC00000007E07E0000000FC07F0000001FC03F8000003F80 1F8000003F001FC000007F000FE00000FE0007F00001FC0003F0007FFFC03FFFE0FFFFE0 7FFFF0FFFFE07FFFF0FFFFE07FFFF0FFFFE07FFFF07FFFC03FFFE02C2B7DAA33>I<7FFF 801FFFE0FFFFC03FFFF0FFFFE07FFFF8FFFFE07FFFF8FFFFC03FFFF07FFF801FFFE003F8 0000FC0001F80001FC0001F80001F80001FC0001F80000FC0003F80000FE0003F000007E 0003F000007E0003F000007F0007E000003F0007E000003F0007E000003F800FC000001F 800FC000001F800FC000000FC01F8000000FC01F8000000FE01F80000007E03F00000007 E03F00000007F03F00000003F03F00000003F07E00000001F87E00000001F87E00000001 F87C00000000F8FC00000000FCFC00000000FCF8000000007CF8000000007DF800000000 3FF0000000003FF0000000003FF0000000001FE0000000001FE0000000001FE000000000 0FC0000000000FC0000000001FC0000000001F80000000001F80000000003F8000000000 3F00000000003F00000000003F00000000007E00000000007E0000000000FE0000003F00 FC0000003F01FC0000007F81F80000007F83F80000007F87F00000007F9FF00000007FFF E00000003FFFC00000003FFF800000001FFF000000000FFC0000000003F0000000002D42 7DAA33>I<0FFFFFFFFF801FFFFFFFFFC03FFFFFFFFFC03FFFFFFFFFC03FFFFFFFFFC03F FFFFFFFF803F800000FF003F800001FE003F800003FC003F800007F8003F80000FF0001F 00001FE0000000003FC0000000007F8000000000FF0000000001FE0000000003FC000000 0007F8000000000FF0000000001FE0000000003FC0000000007F8000000000FF00000000 01FE0000000003FC0000000007F8000000000FF0000000001FE0000000003FC000000000 7F8000000000FF00000F8001FE00001FC003FC00001FC007F800001FC00FF000001FC01F E000001FC03FC000001FC07FFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FF FFFFFFFFC07FFFFFFFFF802A2B7DAA33>I E %EndDVIPSBitmapFont /Fw 208[77 100 100 6[100 100 1[50 50 100 100 7[77 8[50 12[77 1[77{}13 99.6264 /CMSY10 rf %DVIPSBitmapFont: Fx ecsl1200 12 33 /Fx 33 122 df<000000003FE00000000003FFF8000000001FE01E000000007F00070000 0000FE000380000003F80007C0000007F0001FC000000FE0003FC000001FC0007FC00000 3FC0007FC000003F80007FC000007F00007FC000007F00007F800000FF00003F000000FE 000000000000FE000000000000FE000000000000FE000000000000FE000000000001FE00 0000000001FC000000000001FC000000000001FC000000000001FC000000000001FC0000 00000003FC000000000003F80000FE0003FFFFFFFFFE0003FFFFFFFFFE0003FFFFFFFFFE 000003F80003FE000007F80001FE000007F00001FC000007F00001FC000007F00001FC00 0007F00001FC000007F00003FC00000FF00003FC00000FE00003F800000FE00003F80000 0FE00003F800000FE00003F800000FE00007F800001FE00007F800001FC00007F000001F C00007F000001FC00007F000001FC00007F000001FC0000FF000003FC0000FF000003F80 000FE000003F80000FE000003F80000FE000003F80000FE000003F80001FE000007F8000 1FE000007F00001FC000007F00001FC000007F00001FC000007F00001FC000007F00003F C00000FF00003FC00000FE00003F800000FE00003F800000FE00003F800001FE00007F80 0003FF0000FFC000FFFFFC3FFFFF00FFFFF83FFFFF00FFFFF83FFFFF0032467DC536>28 D<000000060000000E0000001C00000078000000F0000001E0000003C00000078000000F 0000001F0000003E0000003C00000078000000F8000001F0000001E0000003E0000007C0 000007C000000F8000001F0000001F0000003E0000003E0000007E0000007C000000FC00 0000F8000001F8000001F0000003F0000003F0000003E0000007E0000007E0000007C000 000FC000000FC000000FC000001F8000001F8000001F8000001F8000003F0000003F0000 003F0000003F0000003E0000007E0000007E0000007E0000007E0000007E0000007C0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 00F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000 00FC0000007C0000007C0000007C0000007C0000007C0000007C0000003C0000003E0000 003E0000001E0000001E0000001F0000000F0000000F000000078000000780000007C000 0003C0000001C0000001E0000000F00000007000000078000000380000001C0000000E00 00000600001F6473CA26>40 D<0000C0000000E000000070000000380000001C0000001E 0000000E0000000F000000078000000780000003C0000003C0000001E0000001E0000001 F0000000F0000000F0000000F8000000F8000000780000007C0000007C0000007C000000 7C0000007C0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000 3E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000 7E0000007E0000007E0000007E0000007E0000007E0000007E0000007C000000FC000000 FC000000FC000000FC000000FC000001F8000001F8000001F8000001F8000001F0000003 F0000003F0000003F0000003E0000007E0000007E0000007C000000FC000000FC000000F 8000001F8000001F0000001F0000003F0000003E0000007E0000007C000000FC000000F8 000001F8000001F0000003E0000003E0000007C00000078000000F8000001F0000001E00 00003C0000007C000000F8000000F0000001E0000003C00000078000000F0000001E0000 003C00000078000000E0000000C00000001F647FCA26>I<007801FC03FE03FE07FE07FE 07FE03FC03F800F000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000001E003F807FC0FFC0FFC0FFC0FFC0FF807F00 3C000F2B77AA1B>58 D<00000000000C00000000000000001C00000000000000003C0000 0000000000003E00000000000000007E00000000000000007E0000000000000000FE0000 000000000000FE0000000000000001FE0000000000000001FF0000000000000003FF0000 000000000003FF0000000000000006FF0000000000000006FF000000000000000CFF8000 00000000000CFF80000000000000187F80000000000000187F80000000000000307F8000 0000000000307F80000000000000607FC0000000000000603FC0000000000000C03FC000 0000000000C03FC0000000000001803FC0000000000001803FE0000000000003003FE000 0000000003001FE0000000000006001FE0000000000006001FE000000000000C001FE000 000000000C001FF0000000000018000FF0000000000018000FF0000000000030000FF000 0000000070000FF0000000000060000FF80000000000E0000FF80000000000C00007F800 00000001C00007F80000000001800007F80000000003800007F80000000003000007FC00 00000006000003FC0000000006000003FC000000000FFFFFFFFC000000000FFFFFFFFC00 0000001FFFFFFFFE0000000018000003FE0000000030000001FE0000000030000001FE00 00000060000001FE0000000060000001FE00000000C0000001FF00000000C0000000FF00 00000180000000FF0000000180000000FF0000000300000000FF0000000300000000FF80 00000600000000FF80000006000000007F8000000C000000007F8000001C000000007F80 00001C000000007F8000003C000000007FC000007C000000007FC00001FE000000007FC0 0007FF80000001FFF0007FFFE000007FFFFFC0FFFFE000007FFFFFC0FFFFE000007FFFFF C042477DC649>65 D<000000001FF80001C000000001FFFF0001C00000000FFFFFC00380 0000003FF003F00780000001FF8000780F80000003FC00003C0F8000000FF000000E1F80 00001FC00000073F8000007F80000003FF000000FF00000003FF000001FE00000001FF00 0003FC00000000FF000007F800000000FF00000FF0000000007F00001FE0000000007E00 003FC0000000003E00007F80000000003E0000FF80000000003E0000FF00000000001E00 01FE00000000001E0003FE00000000001C0003FC00000000001C0007FC00000000001C00 07F800000000001C000FF800000000001C000FF800000000001C001FF000000000001800 1FF0000000000018003FF0000000000000003FE0000000000000003FE000000000000000 3FE0000000000000007FC0000000000000007FC0000000000000007FC000000000000000 7FC0000000000000007FC000000000000000FFC000000000000000FF8000000000000000 FF8000000000000000FF8000000000000000FF8000000000000000FF8000000000000000 FF8000000000000000FF8000000000000000FF800000000000C000FF800000000000C000 FF800000000000C0007F800000000001C0007F80000000000180007F8000000000018000 7FC0000000000380003FC0000000000300003FC0000000000700003FC000000000060000 1FE0000000000E00001FE0000000000C00000FE0000000001C00000FF000000000380000 07F80000000070000003F800000000F0000003FC00000001E0000001FE00000003C00000 00FF00000007800000007F8000000F000000003FC000003C000000000FF0000078000000 0007FC0003F00000000001FF801FC000000000007FFFFF0000000000001FFFF800000000 000001FFC000000000424876C546>67 D<001FFFFFFFFFFFFE001FFFFFFFFFFFFE001FFF FFFFFFFFFE00003FF800001FFE00001FF0000001FE00001FF00000007E00001FE0000000 3E00001FE00000001E00001FE00000001E00001FE00000000E00001FE00000000E00003F E00000000E00003FC00000000E00003FC00000000600003FC00000000600003FC0000000 0600003FC00000000600007FC00000000600007F800000000600007F800000000600007F 80000C000600007F80000C000600007F80000C00000000FF80001800000000FF00001800 000000FF00001800000000FF00003800000000FF00003800000000FF00007800000001FF 00007000000001FE0001F000000001FE0007F000000001FFFFFFF000000001FFFFFFF000 000001FFFFFFF000000003FE000FE000000003FC0003E000000003FC0001E000000003FC 0000E000000003FC0000E000000003FC0000E000000007FC0000C000000007F80000C000 000007F80000C000000007F80000C000000007F80000C000000007F80000C00000000FF8 0000000000000FF00000000000000FF00000000000000FF00000000000000FF000000000 00000FF00000000000001FF00000000000001FE00000000000001FE00000000000001FE0 0000000000001FE00000000000001FE00000000000003FE00000000000003FC000000000 00003FC00000000000003FC00000000000007FC0000000000000FFF00000000000FFFFFF F800000000FFFFFFF800000000FFFFFFF8000000003F447CC340>70 D<000000001FF80001C000000001FFFF0001C00000000FFFFFC003800000003FF003F007 80000001FF8000780F80000003FC00003C0F8000000FF000000E1F8000001FC00000073F 8000007F80000003FF000000FF00000003FF000001FE00000001FF000003FC00000000FF 000007F800000000FF00000FF0000000007F00001FE0000000007E00003FC0000000003E 00007F80000000003E0000FF80000000003E0000FF00000000001E0001FE00000000001E 0003FE00000000001C0003FC00000000001C0007FC00000000001C0007F800000000001C 000FF800000000001C000FF800000000001C001FF0000000000018001FF0000000000018 003FF0000000000000003FE0000000000000003FE0000000000000003FE0000000000000 007FC0000000000000007FC0000000000000007FC0000000000000007FC0000000000000 007FC000000000000000FFC000000000000000FF8000000000000000FF80000000000000 00FF8000000000000000FF8000000000000000FF80000001FFFFFF80FF80000003FFFFFF 80FF80000003FFFFFF80FF8000000000FFE000FF80000000007FC000FF80000000003FC0 007F80000000007FC0007F80000000007FC0007F80000000007F80007FC0000000007F80 003FC0000000007F80003FC0000000007F80003FC000000000FF80001FE000000000FF80 001FE000000000FF00000FF000000000FF00000FF000000000FF000007F800000001FF00 0003F800000001FF000003FC00000003FF000001FE00000003FE000000FF00000007FE00 00007F8000000E7E0000003FC000001C7E0000000FF00000783E00000007FC0001F01E00 000001FF801FC01C000000007FFFFF000C000000001FFFFC00000000000001FFC0000000 00424876C54D>I<001FFFFFFC007FFFFFF0001FFFFFF8007FFFFFE0001FFFFFF8007FFF FFE000003FFC000000FFF00000001FF00000007FC00000001FF00000007FC00000001FE0 0000007F800000001FE00000007F800000001FE00000007F800000001FE00000007F8000 00001FE0000000FF800000003FE0000000FF800000003FC0000000FF000000003FC00000 00FF000000003FC0000000FF000000003FC0000000FF000000003FC0000001FF00000000 7FC0000001FF000000007F80000001FE000000007F80000001FE000000007F80000001FE 000000007F80000001FE000000007F80000003FE00000000FF80000003FE00000000FF00 000003FC00000000FF00000003FC00000000FF00000003FC00000000FF00000003FC0000 0000FF00000007FC00000001FF00000007FC00000001FE00000007F800000001FFFFFFFF FFF800000001FFFFFFFFFFF800000001FFFFFFFFFFF800000001FE0000000FF800000003 FE0000000FF800000003FC0000000FF000000003FC0000000FF000000003FC0000000FF0 00000003FC0000000FF000000003FC0000001FF000000007FC0000001FF000000007F800 00001FE000000007F80000001FE000000007F80000001FE000000007F80000001FE00000 0007F80000003FE00000000FF80000003FE00000000FF00000003FC00000000FF0000000 3FC00000000FF00000003FC00000000FF00000003FC00000000FF00000007FC00000001F F00000007FC00000001FE00000007F800000001FE00000007F800000001FE00000007F80 0000001FE00000007F800000001FE0000000FF800000003FE0000000FF800000003FC000 0000FF000000003FC0000000FF000000003FC0000000FF000000007FC0000001FF000000 00FFE0000003FF800000FFFFFFE003FFFFFF8000FFFFFFE003FFFFFF8000FFFFFFC003FF FFFF00004C447CC349>I<001FFFFFFF0000001FFFFFFF0000001FFFFFFF000000003FFC 00000000001FF000000000001FF000000000001FE000000000001FE000000000001FE000 000000001FE000000000001FE000000000003FE000000000003FC000000000003FC00000 0000003FC000000000003FC000000000003FC000000000007FC000000000007F80000000 00007F8000000000007F8000000000007F8000000000007F800000000000FF8000000000 00FF000000000000FF000000000000FF000000000000FF000000000000FF000000000001 FF000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE 000000000003FE000000000003FC000000000003FC000000000003FC000000000003FC00 0000000003FC000000000007FC000000000007F8000000030007F8000000030007F80000 00030007F8000000060007F800000006000FF800000006000FF00000000E000FF0000000 0C000FF00000000C000FF00000001C000FF000000018001FF000000038001FE000000038 001FE000000078001FE000000070001FE0000000F0001FE0000001F0003FE0000003E000 3FC0000007E0003FC000000FE0003FC000003FE0007FC00000FFC000FFC0000FFFC0FFFF FFFFFFFFC0FFFFFFFFFFFF80FFFFFFFFFFFF8038447CC33D>76 D<001FFFF00000000000 FFFFC0001FFFF80000000000FFFF80001FFFF80000000001FFFF8000003FF80000000003 7FC00000001FF80000000003FF000000001FF80000000006FF0000000019FC0000000006 FE0000000019FC000000000CFE0000000019FC000000000CFE0000000019FC0000000018 FE0000000018FE0000000019FE0000000038FE0000000031FE0000000030FE0000000031 FC0000000030FE0000000061FC0000000030FE00000000C1FC00000000307F00000000C1 FC00000000307F0000000183FC00000000707F0000000183FC00000000607F0000000303 F800000000607F0000000303F800000000603F8000000603F800000000603F8000000603 F800000000603F8000000C07F800000000E03F8000000C07F800000000C03F8000001807 F000000000C01FC000001807F000000000C01FC000003007F000000000C01FC000006007 F000000000C01FC00000600FF000000001C01FC00000C00FF000000001800FE00000C00F E000000001800FE00001800FE000000001800FE00001800FE000000001800FE00003000F E0000000018007F00003001FE0000000038007F00006001FE0000000030007F00006001F C0000000030007F0000C001FC0000000030007F00018001FC0000000030003F80018001F C0000000030003F80030003FC0000000070003F80030003FC0000000060003F80060003F 80000000060003F80060003F80000000060001FC00C0003F80000000060001FC00C0003F 80000000060001FC0180007F800000000E0001FC0180007F800000000C0001FC0300007F 000000000C0000FE0300007F000000000C0000FE0600007F000000000C0000FE0C00007F 000000000C0000FE0C0000FF000000001C0000FE180000FF000000001800007F180000FE 000000001800007F300000FE000000001800007F300000FE000000001800007F600000FE 000000001800003FE00001FE000000003800003FC00001FE000000003800003FC00001FC 000000007800003F800001FC000000007800003F000001FC00000001FC00001F000003FC 00000007FF00001E000007FE000000FFFFF8001E0007FFFFFE0000FFFFF8001C0007FFFF FE0000FFFFF0000C0007FFFFFC00005A447BC359>I<001FFFF8000001FFFFF0001FFFF8 000001FFFFE0001FFFFC000001FFFFE000001FFC0000001FFC0000000FFE00000007F000 00001FFE00000003E000000019FF00000001C000000019FF000000018000000018FF8000 00018000000018FF8000000180000000187FC000000380000000387FC000000380000000 303FE000000300000000303FE000000300000000301FF000000300000000301FF0000003 00000000300FF800000700000000700FF8000007000000006007FC000006000000006007 FC000006000000006003FE000006000000006003FE000006000000006001FF00000E0000 0000E001FF00000E00000000C000FF80000C00000000C000FF80000C00000000C0007FC0 000C00000000C0007FC0000C00000000C0003FE0001C00000001C0003FE0001C00000001 80001FF000180000000180001FF000180000000180000FF800180000000180000FF80018 00000001800007FC003800000003800007FC003800000003000003FE0030000000030000 03FE003000000003000001FF003000000003000001FF003000000003000000FF80700000 0007000000FF8070000000060000007FC060000000060000007FC060000000060000003F E060000000060000003FE060000000060000001FF0E00000000E0000001FF0E00000000C 0000000FF8C00000000C0000000FF8C00000000C00000007FCC00000000C00000007FCC0 0000000C00000003FFC00000001C00000003FFC00000001800000001FF80000000180000 0001FF800000001800000000FF800000001800000000FF8000000018000000007F800000 0038000000007F8000000038000000003F0000000078000000003F000000007800000000 1F00000001FC000000001F00000007FF000000000F000000FFFFF80000000F000000FFFF F800000006000000FFFFF0000000060000004C447CC349>I<001FFFFFFFFFC000001FFF FFFFFFF800001FFFFFFFFFFF0000003FF80001FF8000001FF000003FE000001FF000000F F000001FE0000007F800001FE0000003FC00001FE0000003FC00001FE0000001FE00001F E0000001FE00003FE0000001FF00003FC0000000FF00003FC0000000FF00003FC0000000 FF00003FC0000000FF00003FC0000000FF00007FC0000001FF00007F80000001FF00007F 80000001FF00007F80000001FF00007F80000001FE00007F80000003FE0000FF80000003 FE0000FF00000003FC0000FF00000007F80000FF00000007F80000FF0000000FF00000FF 0000001FE00001FF0000003FC00001FE0000007F000001FE000001FE000001FE000007F8 000001FE00003FE0000001FFFFFFFF80000003FFFFFFFC00000003FC00000000000003FC 00000000000003FC00000000000003FC00000000000003FC00000000000007FC00000000 000007F800000000000007F800000000000007F800000000000007F800000000000007F8 0000000000000FF80000000000000FF00000000000000FF00000000000000FF000000000 00000FF00000000000000FF00000000000001FF00000000000001FE00000000000001FE0 0000000000001FE00000000000001FE00000000000001FE00000000000003FE000000000 00003FC00000000000003FC00000000000003FC00000000000007FC0000000000000FFE0 0000000000FFFFFFE000000000FFFFFFE000000000FFFFFFC00000000040447CC342>80 D<001FFFFFFFFE000000001FFFFFFFFFE00000001FFFFFFFFFF8000000003FF80007FE00 0000001FF00000FF800000001FF000003FC00000001FE000001FE00000001FE000000FF0 0000001FE0000007F80000001FE0000003FC0000001FE0000003FC0000003FE0000003FE 0000003FC0000001FE0000003FC0000001FE0000003FC0000001FE0000003FC0000001FE 0000003FC0000001FE0000007FC0000003FE0000007F80000003FE0000007F80000003FE 0000007F80000003FE0000007F80000007FC0000007F80000007FC000000FF80000007F8 000000FF0000000FF0000000FF0000000FE0000000FF0000001FC0000000FF0000003F80 000000FF0000007F00000001FF000001FE00000001FE000003F800000001FE00001FE000 000001FE0000FF8000000001FFFFFFFC0000000001FFFFFFF00000000003FE0001FC0000 000003FC00007F0000000003FC00003F8000000003FC00001FC000000003FC00000FE000 000003FC00000FF000000007FC000007F800000007F8000007F800000007F8000007F800 000007F8000003F800000007F8000003F800000007F8000007F80000000FF8000007F800 00000FF0000007F80000000FF0000007F80000000FF0000007F80000000FF0000007F800 00000FF0000007F80000001FF000000FF80000001FE000000FF80000001FE000000FF800 00001FE000000FF80000001FE000000FF80000001FE000000FF80038003FE000000FF800 30003FC000000FF80030003FC000000FF80030003FC000000FF80070007FC0000007F800 6000FFE0000007F800E0FFFFFFE00003FC01C0FFFFFFE00001FC0380FFFFFFC00000FE0F 000000000000003FFE0000000000000007F00045467CC348>82 D<0000003FE000700000 01FFFC0070000007FFFF00E000001FC01FC1E000007F0003E1E00000FC0000F3E00001F8 00007FE00003F000003FE00007E000001FC0000FC000001FC0000F8000000FC0001F8000 000FC0001F00000007C0003F00000007C0003E0000000780007E0000000780007E000000 0380007E0000000380007E000000038000FE000000038000FE000000030000FE00000003 0000FF000000030000FF000000030000FF8000000000007F8000000000007FC000000000 007FF000000000007FFC00000000003FFF80000000003FFFF8000000001FFFFF80000000 0FFFFFF000000007FFFFFC00000003FFFFFF00000000FFFFFF800000003FFFFFC0000000 07FFFFE0000000007FFFF0000000000FFFF00000000000FFF800000000001FF800000000 000FFC000000000007FC000000000003FC000000000003FC000000000001FC0000000000 01FC000C00000001FC001C00000000FC001800000000FC001800000000FC001800000000 FC001800000000FC001800000001FC003800000001F8003800000001F8003C00000001F0 003C00000003F0003C00000003F0003E00000007E0007E00000007C0007F0000000FC000 7F8000001F80007FC000003F00007DE000007E000078F00000FC0000F87E0003F80000F0 1FC00FE00000E00FFFFF800000E001FFFE000000C0003FF000000034487BC536>I<07FF FFFFFFFFFFFF07FFFFFFFFFFFFFF07FFFFFFFFFFFFFF0FFE0003FF0003FF0FE00003FE00 007F0FC00003FE00003F0F000003FC00001F1E000003FC00000F1E000003FC00000F1C00 0003FC00000718000003FC00000738000007FC00000638000007F800000630000007F800 000630000007F800000660000007F800000660000007F80000066000000FF80000066000 000FF0000006C000000FF0000006C000000FF0000006C000000FF00000060000000FF000 00000000001FF00000000000001FE00000000000001FE00000000000001FE00000000000 001FE00000000000001FE00000000000003FE00000000000003FC00000000000003FC000 00000000003FC00000000000003FC00000000000003FC00000000000007FC00000000000 007F800000000000007F800000000000007F800000000000007F800000000000007F8000 0000000000FF80000000000000FF00000000000000FF00000000000000FF000000000000 00FF00000000000000FF00000000000001FF00000000000001FE00000000000001FE0000 0000000001FE00000000000001FE00000000000001FE00000000000003FE000000000000 03FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC0000 0000000007FC00000000000007F800000000000007F800000000000007F8000000000000 0FF80000000000003FFE0000000001FFFFFFFFC0000001FFFFFFFF80000001FFFFFFFF80 0000404475C346>I<00001FF000000000FFFE00000003E03F8000000F000FC000001C00 07E00000380003F000007E0003F800007F0001F80000FF8001FC0000FF8001FC0000FF80 01FC0000FF8001FC0000FF0001FC0000FE0001FC00003C0001FC0000000001FC00000000 01FC0000000003FC0000000003FC00000001FFF80000003FFFF8000001FFC3F800000FF8 03F800003FE007F80000FF8007F80001FE0007F00003FC0007F00007F80007F0000FF000 07F0001FE0000FF0003FE0000FF0003FC0000FE0307FC0000FE0307F80000FE0307F8000 1FE0307F80001FE030FF80003FC060FF00003FC0607F80007FC0607F8000EFC0607F8001 CFC0C03FC00387E0C01FE00707E18007F03E03FF0001FFF801FE00003FC000F8002C2E7B AC31>97 D<001FC00000000FFFC00000000FFFC00000001FFFC0000000007FC000000000 3FC0000000003FC0000000003F80000000003F80000000003F80000000003F8000000000 3F80000000007F80000000007F00000000007F00000000007F00000000007F0000000000 7F0000000000FF0000000000FE0000000000FE0000000000FE0000000000FE0000000000 FE0000000001FE0000000001FC01FC000001FC0FFF800001FC3E07E00001FCF001F80001 FDC000FC0003FF80007E0003FF00003F0003FE00001F8003FC00001F8003F800001FC003 F800000FC007F800000FE007F000000FE007F000000FE007F000000FF007F000000FF007 F000000FF00FF000000FF00FE000000FF00FE000000FF00FE000000FF00FE000000FF00F E000001FF01FE000001FE01FC000001FE01FC000001FE01FC000001FE01FC000003FC01F C000003FC03FC000003FC03F8000007F803F8000007F003F800000FF003F800000FE003F 800001FC007F800001FC007F800003F8007FC00007F0007EC0000FE0007CE0001F800078 70003F0000F03800FC0000E01E03F00000C007FFC000000001FE0000002C4676C436>I< 000007F80000003FFF000000FC07C00003F000E0000FC00070001F800038003F0000FC00 7E0003FC00FC0007FC01FC0007FC03F80007FC07F80007FC07F00007F80FF00007F01FE0 0001E01FE00000003FC00000003FC00000003FC00000007FC00000007F800000007F8000 00007F800000007F80000000FF80000000FF00000000FF00000000FF00000000FF000000 00FF00000000FF000000007F000000007F000000007F000000607F000000E03F800000C0 3F800001C01F800001801FC00003800FC000070007E0000E0003F0003C0001F800700000 7E03E000001FFF80000003FC0000262E7AAC2B>I<00000000007F000000003FFF000000 003FFF000000007FFF0000000001FF0000000000FF0000000000FF0000000000FE000000 0000FE0000000000FE0000000000FE0000000001FE0000000001FE0000000001FC000000 0001FC0000000001FC0000000001FC0000000003FC0000000003FC0000000003F8000000 0003F80000000003F80000000003F80000000007F80000000007F8000003F807F000003F FF07F00000FE0787F00003F001E7F0000FC0006FF0001F80007FF0003F00003FE000FE00 001FE001FC00001FE001F800000FE003F800001FE007F000001FE00FF000001FC00FE000 001FC01FE000001FC01FC000001FC03FC000003FC03FC000003FC07FC000003F807F8000 003F807F8000003F807F8000003F807F8000007F80FF8000007F80FF0000007F00FF0000 007F00FF0000007F00FF0000007F00FF000000FF00FF000000FF007F000000FE007F0000 00FE007F000000FE007F000000FE003F000001FE003F800001FE001F800003FC001FC000 07FC000FC0000FFC0007E0001DFC0003F0003BFF0001F800F3FFF8007E03C3FFF8001FFF 03FFF80003FC03F80030467AC436>I<00000FF00000007FFC000001F83F000007E00F80 001F8007C0003F0007E0007E0003F000FC0003F001FC0001F803F80001F803F80001F807 F00001F80FF00001F80FE00001FC1FE00001FC1FC00001FC3FC00001FC3FC00001F83FC0 0001F87F800001F87FFFFFFFF87FFFFFFFF87F800000007F80000000FF80000000FF0000 0000FF00000000FF00000000FF00000000FF000000007F000000007F000000007F000000 007F000000607F000000E03F000000C03F800001C01F800003801FC00003000FC0000700 07E0001E0003F000380001F800F000007E03C000001FFF00000003FC0000262E7AAC2B> I<00000000000FC0000001FE007FE000000FFF81F0F000003F07E383F00000FC01FF03F0 0001F800FC03F00003F000FC01E00007E0007E0000000FC0007E0000001FC0007F000000 3F80007F0000003F80007F0000003F80007F0000007F00007F0000007F00007F0000007F 00007F0000007F00007F0000007F0000FF0000007F0000FE0000007E0000FE0000007E00 00FC0000007F0001FC0000003F0001F80000003F0003F00000001F0007E00000000F800F C00000001FC01F800000003BE07E0000000070FFF800000000703FC000000000E0000000 000000E0000000000001E0000000000001E0000000000001E0000000000001E000000000 0001F0000000000001F8000000000001FFFFFE00000000FFFFFFC0000000FFFFFFF00000 007FFFFFFC0000003FFFFFFE000000FFFFFFFF000003F00003FF80000FC000007F80001F 8000001F80003F0000001FC0007E0000000FC0007C0000000FC000FC00000007C000F800 000007C000F800000007C000F80000000FC000F80000000F8000F80000000F8000F80000 001F8000F80000003F00007C0000007E00007E000000FC00003F000001F800001F800007 E0000007E0001F80000001FC00FE000000007FFFF80000000007FF8000000034427EAC31 >103 D<00003C0000FE0001FF0001FF0003FF0003FF0003FF0001FE0001FC0000780000 000000000000000000000000000000000000000000000000000000000000000000000000 000003F801FFF801FFF801FFF8000FF80007F80007F00007F00007F00007F00007F0000F F0000FE0000FE0000FE0000FE0000FE0001FE0001FC0001FC0001FC0001FC0001FC0003F C0003F80003F80003F80003F80003F80007F80007F00007F00007F00007F00007F0000FF 0000FE0000FE0000FE0001FE0003FF00FFFFF8FFFFF8FFFFF818437DC21C>105 D<00003F80000000001FFF80000000001FFF80000000001FFF800000000000FF80000000 00007F8000000000007F8000000000007F0000000000007F0000000000007F0000000000 007F0000000000007F000000000000FF000000000000FE000000000000FE000000000000 FE000000000000FE000000000000FE000000000001FE000000000001FC000000000001FC 000000000001FC000000000001FC000000000001FC000000000003FC000000000003F800 0000000003F8003FFFE00003F8003FFFC00003F8007FFFC00003F8001FFE000007F8000F F0000007F0000FC0000007F0001F00000007F0001C00000007F0003800000007F0007000 00000FF001E00000000FE003800000000FE007000000000FE00E000000000FE03C000000 000FE070000000001FE0F8000000001FC1F8000000001FC7FC000000001FCFFC00000000 1FDDFE000000001FF8FE000000003FE0FF000000003FC07F000000003F807F800000003F 803F800000003F803FC00000003F801FC00000007F801FE00000007F000FE00000007F00 0FF00000007F0007F00000007F0007F80000007F0003F8000000FF0003FC000000FE0001 FC000000FE0001FE000000FE0001FF000001FE0001FF000003FF0003FFC000FFFFFC1FFF FC00FFFFFC1FFFFC00FFFFF81FFFFC0033457DC433>107 D<00003F80001FFF80001FFF 80001FFF800000FF8000007F8000007F8000007F0000007F0000007F0000007F0000007F 000000FF000000FE000000FE000000FE000000FE000000FE000001FE000001FC000001FC 000001FC000001FC000001FC000003FC000003F8000003F8000003F8000003F8000003F8 000007F8000007F0000007F0000007F0000007F0000007F000000FF000000FE000000FE0 00000FE000000FE000000FE000001FE000001FC000001FC000001FC000001FC000001FC0 00003FC000003F8000003F8000003F8000003F8000003F8000007F8000007F0000007F00 00007F0000007F0000007F000000FF000000FE000000FE000000FE000001FE000003FF00 00FFFFFC00FFFFFC00FFFFF80019457DC41C>I<0003F801FE0001FFF80FFF8003FFF83E 0FE003FFF87007F0000FF9E003F00007FB8003F80007F70003F80007F60001F80007FE00 01F80007FC0001F80007F80003F8000FF80003F8000FF00003F8000FF00003F8000FE000 03F8000FE00003F8000FE00007F8001FE00007F8001FC00007F0001FC00007F0001FC000 07F0001FC00007F0001FC0000FF0003FC0000FF0003F80000FE0003F80000FE0003F8000 0FE0003F80000FE0003F80001FE0007F80001FE0007F00001FC0007F00001FC0007F0000 1FC0007F00001FC0007F00003FC000FF00003FC000FE00003F8000FE00003F8000FE0000 3F8001FE00007F8003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF302C7DAB 36>110 D<000007FC000000003FFF80000000FC0FC0000003E001F000000FC000F80000 1F00007C00003E00003E00007C00003F0000FC00001F0001F800001F8003F000001F8003 F000001FC007E000000FC00FE000000FC00FE000000FC01FC000000FE01FC000000FE03F C000001FE03F8000001FE03F8000001FE07F8000001FE07F8000001FE07F8000001FE07F 8000001FE0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003F80FF 0000007F80FF0000007F007F0000007F007F000000FE007F000000FE007F000001FC003F 000001F8003F000003F8001F800003F0001F800007E0000FC0000FC00007E0001F800003 F0003E000001F800FC0000007E03F00000001FFFC000000003FC0000002B2E7AAC31>I< 00003F803F8000001FFF81FFF000003FFF87C0FC00003FFF9E003F000000FFB8001F8000 007FF0000FC000007FE0000FE000007FC00007F000007F800007F000007F000003F80000 7F000003F80000FF000003FC0000FE000001FC0000FE000001FC0000FE000001FE0000FE 000001FE0000FE000001FE0001FE000001FE0001FC000001FE0001FC000001FE0001FC00 0001FE0001FC000001FE0001FC000003FE0003FC000003FC0003F8000003FC0003F80000 03FC0003F8000003FC0003F8000007F80003F8000007F80007F800000FF80007F000000F F00007F000001FE00007F000001FE00007F000003FC00007F000003F80000FF000007F80 000FF00000FF00000FF80001FE00000FF80003FC00000FFC0007F000000FEE000FE00000 1FE7001F8000001FC3C0FE0000001FC0FFF80000001FC03FC00000001FC000000000003F C000000000003FC000000000003F8000000000003F8000000000003F8000000000003F80 00000000007F8000000000007F8000000000007F0000000000007F0000000000007F0000 000000007F000000000000FF000000000001FF80000000007FFFFE000000007FFFFE0000 0000FFFFFC00000000373F81AB36>I<0003F007E001FFF03FF803FFF0787C03FFF0E1FC 000FF1C1FC0007F383FC0007E703FC0007EE03FC0007EC01F80007FC00E00007F8000000 0FF80000000FF00000000FF00000000FF00000000FE00000000FE00000001FE00000001F C00000001FC00000001FC00000001FC00000001FC00000003FC00000003F800000003F80 0000003F800000003F800000003F800000007F800000007F000000007F000000007F0000 00007F000000007F00000000FF00000000FE00000000FE00000000FE00000001FE000000 03FF000000FFFFFF0000FFFFFF0000FFFFFE0000262C7DAB26>114 D<00003FE0300003FFF870000FC01EF0001E0007F0007C0003F000F80001F000F00001F0 01F00000E003E00000E003E00000E003E00000E003E00000E007E00000E007F00000C007 F00000C007F800000003FE00000003FFE0000003FFFE000001FFFFC00000FFFFF000007F FFF800003FFFFE00000FFFFE000001FFFF0000000FFF80000001FF800000007F80180000 3F801800001F803800001F803800000F803800000F803800000F803800000F803800001F 007C00001F007C00001F007E00003E007E00003C007F000078007F8000F000F9C003E000 F0F00FC000E07FFF0000C00FF00000242E7DAC26>I<0000C0000000C0000000C0000001 C000000180000001800000038000000380000007800000078000000F0000000F0000001F 0000003F0000007F000000FF000001FE000003FE00001FFFFFF0FFFFFFF0FFFFFFF000FE 000001FE000001FC000001FC000001FC000001FC000001FC000003FC000003F8000003F8 000003F8000003F8000003F8000007F8000007F0000007F0000007F0000007F0000007F0 00000FF000000FE000000FE000000FE000C00FE000C00FE000C01FE001801FC001801FC0 01801FC001801FC001801FC003801FC003001FC003001FC007001FC006000FC00E000FE0 1C0007E0380003F0700000FFE000003F80001C3E77BC26>I<00FE00003F807FFE001FFF 80FFFE003FFF80FFFE003FFF8003FE0000FF8001FE00007F8001FC00007F0001FC00007F 0001FC00007F0001FC00007F0001FC0000FF0003FC0000FF0003F80000FE0003F80000FE 0003F80000FE0003F80000FE0003F80001FE0007F80001FE0007F00001FC0007F00001FC 0007F00001FC0007F00001FC0007F00003FC000FF00003FC000FE00003F8000FE00003F8 000FE00003F8000FE00003F8000FE00007F8001FE00007F8001FC00007F0001FC00007F0 001FC0000FF0001FC0000FF0001FC0001FF0001FC0001FF0001F80003FE0001F80003FE0 001F80007FE0000FC000EFE0000FC001DFF80007E0079FFFC003F01E1FFFC000FFFC1FFF C0001FE01FC0002A2D77AB36>I<007FFFF800FFFE007FFFF800FFFE007FFFF800FFFE00 03FF80003FF00001FE00001FC00001FE00000F000001FE00000E000000FE00000C000000 FE00001C000000FE000018000000FF0000300000007F0000300000007F0000600000007F 0000600000007F8000C00000003F8001C00000003F8001800000003F8003000000003FC0 03000000001FC006000000001FC006000000001FC00C000000001FC01C000000001FE018 000000000FE038000000000FE030000000000FE060000000000FF0600000000007F0C000 00000007F0C00000000007F1800000000007FB800000000003FB000000000003FE000000 000003FE000000000003FC000000000003FC000000000001F8000000000001F800000000 0001F0000000000001E0000000000000E0000000000000C0000000000000C00000000000 01800000000000018000000000000300000000000007000000000000060000000000000C 0000000000000C000000001C0018000000007F0018000000007F003000000000FF006000 000000FF006000000000FF00C000000000FE018000000000FC030000000000600E000000 0000783C00000000003FF000000000000FC00000000000373F80AA33>121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fy ecbx1200 12 69 /Fy 69 123 df<0000000FFF0003FF00000001FFFFC03FFFC000000FFFFFF1FFFFE00000 7FFFFFFFFFFFF00001FFF803FFFE1FF80003FF8003FFF81FFC000FFF0007FFF03FFC001F FE000FFFE03FFC003FFC000FFFE03FFC003FF8000FFFC03FFC007FF0000FFFC03FFC007F F0000FFFC01FF800FFF0000FFF801FF800FFE00007FF8007E000FFE00003FF80018000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF800000FFFFFFFFFFFFFFF000FFFF FFFFFFFFFFF000FFFFFFFFFFFFFFF000FFFFFFFFFFFFFFF000FFFFFFFFFFFFFFF00000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF80000000FFE00003FF80000000FFE00003FF80000000FF E00003FF80000000FFE00003FF8000007FFFFFC1FFFFFF80007FFFFFC1FFFFFF80007FFF FFC1FFFFFF80007FFFFFC1FFFFFF80007FFFFFC1FFFFFF800046467EC541>27 D<0000000FFF0000000001FFFFC00000000FFFFFF00000007FFFFFF8000001FFF803FC00 0003FFC000FE00000FFF0003FE00001FFE0007FF00003FFC000FFF00003FF8000FFF0000 7FF0000FFF00007FF0001FFF8000FFF0000FFF0000FFE0000FFF0000FFE0000FFF0000FF E0000FFF0000FFE00007FE0000FFE00001F80000FFE00000000000FFE00000000000FFE0 0000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE001 FFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFF FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF 8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF80 00FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000 FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FF E00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE0 0003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE00003FF8000FFE000 03FF8000FFE00003FF8000FFE00003FF8000FFE00003FF807FFFFFC1FFFFFF7FFFFFC1FF FFFF7FFFFFC1FFFFFF7FFFFFC1FFFFFF7FFFFFC1FFFFFF38467EC53E>I<1FC001FC007F E003FF007FF007FF00FFF007FF80FFF007FF80FFF007FF80FFF007FF80FFF007FF80FFF0 07FF807FF007FF007FF007FF007FE003FF007FE003FF007FE003FF007FE003FF007FE003 FF003FE003FE003FE003FE003FC001FE003FC001FE003FC001FE003FC001FE003FC001FE 001FC001FC001FC001FC001F8000FC001F8000FC001F8000FC001F8000FC001F8000FC00 0F8000F8000F8000F8000F000078000F00007800212275C538>34 D<07C0001FF0003FF8007FFC00FFFE00FFFF00FFFF00FFFF00FFFF80FFFF80FFFF807FFF 803FFF801FF78007C780000780000F80000F80000F00000F00001F00001E00003E00003E 00007C0000FC0000F80001F00003E00007E0000FC0001F80001F00000C0000112278C41F >39 D<000001E0000003E000000FC000001F8000003F0000007E000000FC000001FC0000 03F8000007F0000007E000000FE000001FC000003FC000003F8000007F800000FF000000 FF000001FE000001FE000003FC000003FC000007FC000007F8000007F800000FF800000F F000000FF000001FF000001FF000001FE000003FE000003FE000003FE000003FE000007F C000007FC000007FC000007FC000007FC000007FC00000FFC00000FFC00000FF800000FF 800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF 800000FF800000FF800000FF800000FFC00000FFC000007FC000007FC000007FC000007F C000007FC000007FC000003FE000003FE000003FE000003FE000001FE000001FF000001F F000000FF000000FF000000FF8000007F8000007F8000007FC000003FC000003FC000001 FE000001FE000000FF000000FF0000007F8000003F8000003FC000001FC000000FE00000 07E0000007F0000003F8000001FC000000FC0000007E0000003F0000001F8000000FC000 0003E0000001E01B6476CA2C>II<07C01FF03FF87FFCFFFCFF FEFFFEFFFFFFFFFFFFFFFF7FFF3FFF1FFF07CF000F000F001F001E001E003E003E003C00 7C00F800F801F003F003E007C01F801F001E000C001022788E1F>44 DI<07C01FF03FF87FFCFFFEFFFEFFFEFFFEFFFEFFFEFFFE7FFC3FF81FF0 07C00F0F788E1F>I<0000000000C00000000001E00000000003E00000000003E0000000 0003C00000000007C00000000007C0000000000F80000000000F80000000000F00000000 001F00000000001F00000000003E00000000003E00000000003C00000000007C00000000 007C0000000000F80000000000F80000000001F00000000001F00000000001E000000000 03E00000000003E00000000007C00000000007C0000000000780000000000F8000000000 0F80000000001F00000000001F00000000001E00000000003E00000000003E0000000000 7C00000000007C0000000000780000000000F80000000000F80000000001F00000000001 F00000000001E00000000003E00000000003E00000000007C00000000007C00000000007 80000000000F80000000000F80000000001F00000000001F00000000003E00000000003E 00000000003C00000000007C00000000007C0000000000F80000000000F80000000000F0 0000000001F00000000001F00000000003E00000000003E00000000003C00000000007C0 0000000007C0000000000F80000000000F80000000000F00000000001F00000000001F00 000000003E00000000003E00000000003C00000000007C00000000007C0000000000F800 00000000F80000000000F00000000001F00000000001F00000000003E00000000003E000 00000007C00000000007C0000000000780000000000F80000000000F80000000001F0000 0000001F00000000001E00000000003E00000000003E00000000007C00000000007C0000 000000780000000000F80000000000F80000000000F000000000006000000000002B647A CA38>I<00003FF800000001FFFF0000000FFFFFE000003FFFFFF800007FF01FFC0000FF C007FE0001FF0001FF0003FE0000FF8007FE0000FFC007FC00007FC00FFC00007FE00FF8 00003FE01FF800003FF01FF800003FF03FF800003FF83FF800003FF83FF000001FF87FF0 00001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFC7FF000001FFCFFF0 00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0 00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0 00001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF000001FFEFFF0 00001FFEFFF000001FFEFFF000001FFE7FF000001FFC7FF000001FFC7FF000001FFC7FF0 00001FFC7FF000001FFC3FF800003FF83FF800003FF83FF800003FF81FF800003FF01FF8 00003FF00FF800003FE00FFC00007FE007FC00007FC007FE0000FFC003FF0001FF8001FF 8003FF0000FFC007FE00007FF01FFC00003FFFFFF800000FFFFFE0000003FFFF80000000 3FF800002F427CC038>I<000003C000000007C00000001FC00000007FC0000003FFC000 003FFFC000FFFFFFC000FFFFFFC000FFFFFFC000FFFFFFC000FFC3FFC0000003FFC00000 03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003 FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FF C0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0 000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC000 0003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC00000 03FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003FFC0000003 FFC0000003FFC0000003FFC0000003FFC0000003FFC000FFFFFFFFFCFFFFFFFFFCFFFFFF FFFCFFFFFFFFFCFFFFFFFFFC264177C038>I<0000FFE00000000FFFFE0000003FFFFF80 0000FFFFFFE00003FFFFFFF80007FC03FFFE000FE0007FFF001F80003FFF803F00000FFF C07F000007FFC07FC00007FFE07FF00003FFE0FFF00001FFF0FFF80001FFF0FFF80001FF F8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF00000FFF83FE00000FF F81FC00000FFF800000000FFF800000000FFF000000001FFF000000001FFF000000001FF E000000003FFE000000003FFC000000007FF800000000FFF000000000FFF000000001FFC 000000003FF8000000003FF0000000007FE000000000FFC000000001FF0000000003FE00 00000007FC000000000FF0000000001FE0000000003F80000000007F0000780000FE0000 780001FC0000780003F80000F80007E00000F0000FC00000F0001F800000F0003F000000 F0007C000001F000F8000003F001FFFFFFFFF003FFFFFFFFE007FFFFFFFFE00FFFFFFFFF E01FFFFFFFFFE03FFFFFFFFFE07FFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFC0FFFFFFFFFF C0FFFFFFFFFFC0FFFFFFFFFFC02D417BC038>I<0000FFF000000007FFFF0000001FFFFF C000007FFFFFF00000FF007FF80003F8003FFE0007E0001FFF0007E0000FFF000FF80007 FF800FFE0007FF801FFE0007FFC01FFF0007FFC01FFF0007FFC01FFF0007FFC01FFF0007 FFC01FFF0007FFC01FFF0007FFC00FFE0007FFC007FC0007FF8003F8000FFF800000000F FF000000001FFF000000001FFE000000003FFC000000007FF800000000FFF000000001FF E00000000FFF80000007FFFE00000007FFF800000007FFFF00000007FFFFC000000000FF F0000000003FFC000000000FFE000000000FFF8000000007FF8000000003FFC000000003 FFE000000003FFE000000001FFF000000001FFF000000001FFF800000001FFF800000001 FFF80FC00001FFF83FF00001FFF87FF80001FFF87FF80001FFF8FFFC0001FFF8FFFC0001 FFF8FFFC0001FFF0FFFC0001FFF0FFFC0003FFF0FFFC0003FFE07FF80003FFE07FF00007 FFC07FE00007FFC03F80000FFF801FF0001FFF000FFE00FFFE0007FFFFFFF80001FFFFFF F000007FFFFFC000001FFFFE00000001FFE000002D427BC038>I<000000003F00000000 00003F0000000000007F000000000000FF000000000001FF000000000003FF0000000000 03FF000000000007FF00000000000FFF00000000001FFF00000000003FFF00000000003F FF00000000007FFF0000000000FFFF0000000001F7FF0000000003E7FF0000000007E7FF 0000000007C7FF000000000F87FF000000001F07FF000000003E07FF000000007E07FF00 0000007C07FF00000000F807FF00000001F007FF00000003E007FF00000007E007FF0000 0007C007FF0000000F8007FF0000001F0007FF0000003E0007FF0000007C0007FF000000 7C0007FF000000F80007FF000001F00007FF000003E00007FF000007C00007FF00000FC0 0007FF00000F800007FF00001F000007FF00003E000007FF00007C000007FF0000FC0000 07FF0000FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFF FFFF800000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF 00000000000FFF00000000000FFF00000000000FFF00000000000FFF00000000000FFF00 000000000FFF00000000000FFF000000007FFFFFFF8000007FFFFFFF8000007FFFFFFF80 00007FFFFFFF8000007FFFFFFF8031417DC038>I<07000000030007E000003F0007FF00 07FF0007FFFFFFFF0007FFFFFFFE0007FFFFFFFC0007FFFFFFF80007FFFFFFF00007FFFF FFE00007FFFFFF800007FFFFFE000007FFFFFC000007FFFFE0000007FFFF00000007C000 00000007C00000000007C00000000007C00000000007C00000000007C00000000007C000 00000007C00000000007C00000000007C00000000007C03FF0000007C1FFFF000007C7FF FFC00007DFFFFFF00007FFE03FFC0007FF000FFE0007FC0007FF0007F00003FF8007E000 03FFC007C00001FFC003800001FFE000000001FFE000000000FFF000000000FFF0000000 00FFF000000000FFF800000000FFF800000000FFF800000000FFF80F800000FFF83FE000 00FFF87FF00000FFF8FFF00000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF800 00FFF0FFF00000FFF0FFF00001FFF07FE00001FFE07FC00001FFE07E000003FFC03E0000 03FFC03F000007FF801FC0000FFF000FF0001FFE0007FE00FFFC0003FFFFFFF00000FFFF FFE000003FFFFF8000000FFFFC00000001FFC000002D427BC038>I<000001FF80000000 1FFFF00000007FFFFC000001FFFFFF000007FF807F80000FFC001F80003FF0001FC0007F E0007FC000FFC000FFE001FF8001FFE003FF8001FFE003FF0001FFE007FE0001FFE00FFE 0001FFE00FFE0001FFE01FFC0000FFC01FFC00007F801FFC00001E003FFC000000003FFC 000000003FF8000000007FF8000000007FF8000000007FF807FC00007FF81FFF8000FFF8 7FFFE000FFF8FFFFF800FFF9F01FFC00FFFBC007FE00FFFF8003FF00FFFF8003FF80FFFF 0001FFC0FFFE0001FFC0FFFE0000FFE0FFFE0000FFE0FFFC0000FFF0FFFC0000FFF0FFFC 0000FFF0FFFC0000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF8FFF80000FFF87FF8 0000FFF87FF80000FFF87FF80000FFF87FF80000FFF87FF80000FFF83FF80000FFF83FF8 0000FFF83FF80000FFF03FFC0000FFF01FFC0000FFF01FFC0000FFF00FFC0001FFE00FFC 0001FFE007FE0001FFC007FF0003FF8003FF8003FF0001FFC007FE0000FFE01FFC00007F FFFFF800001FFFFFF0000007FFFFC0000001FFFF000000003FF000002D427BC038>I<1E 00000000001F00000000001FFC000000001FFFFFFFFFFE1FFFFFFFFFFE1FFFFFFFFFFE1F FFFFFFFFFE3FFFFFFFFFFE3FFFFFFFFFFC3FFFFFFFFFF83FFFFFFFFFF03FFFFFFFFFE03F FFFFFFFFC03FFFFFFFFFC07FFFFFFFFF807E0000003F007C0000007E007C000000FC0078 000000F80078000001F80078000003F000F8000007E000F000000FC000F000000F8000F0 00001F80000000003F00000000007E0000000000FC0000000000FC0000000001F8000000 0003F80000000003F00000000007F0000000000FE0000000000FE0000000001FE0000000 001FC0000000003FC0000000003FC0000000007FC0000000007F8000000000FF80000000 00FF8000000001FF8000000001FF8000000001FF8000000003FF8000000003FF00000000 03FF0000000003FF0000000007FF0000000007FF0000000007FF0000000007FF00000000 07FF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF00000000 0FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000007FE00000000 03FC0000000001F80000002F447AC238>I<00007FF000000003FFFF0000000FFFFFC000 003FFFFFF000007F801FFC0001FC0003FE0003F80001FF0003F00000FF0007E000007F80 07E000003F800FC000003FC00FC000003FC01FC000001FC01FC000001FC01FE000001FC0 1FE000001FC01FF000001FC01FF800001FC01FFE00003FC01FFF00003F801FFFC0007F80 1FFFF0007F000FFFFC00FF000FFFFE01FE0007FFFF83FC0007FFFFE7F80003FFFFFFE000 01FFFFFFC00000FFFFFF0000007FFFFFC000003FFFFFE000000FFFFFF800000FFFFFFC00 003FFFFFFE0000FFFFFFFF0001FF3FFFFF8007FC0FFFFFC00FF803FFFFE01FF000FFFFE0 1FE0007FFFF03FE0001FFFF07FC00007FFF07F800003FFF87F800000FFF8FF8000007FF8 FF0000003FF8FF0000001FF8FF0000000FF8FF0000000FF8FF00000007F8FF00000007F8 FF00000007F8FF80000007F07F80000007F07F8000000FF07FC000000FE03FE000001FE0 3FF000003FC01FF800007F800FFE0001FF0007FFC00FFE0003FFFFFFFC0000FFFFFFF000 003FFFFFC000000FFFFF00000000FFF000002D427BC038>I<07C01FF03FF87FFCFFFEFF FEFFFEFFFEFFFEFFFEFFFE7FFC3FF81FF007C00000000000000000000000000000000000 000000000000000000000007C01FF03FF87FFCFFFEFFFEFFFEFFFEFFFEFFFEFFFE7FFC3F F81FF007C00F2C78AB1F>58 D<0007FFC000003FFFFC0001FFFFFF8003FFFFFFE00FF800 FFF01FC0003FF83F00001FFC7F00001FFE7FC0000FFEFFE0000FFFFFF0000FFFFFF0000F FFFFF0000FFFFFF0000FFFFFF0000FFFFFF0000FFF7FE0001FFF3FC0001FFE0F00001FFE 0000003FFC0000007FF8000000FFF0000001FFE0000003FF80000003FF00000007FC0000 000FF80000000FF00000001FE00000001FC00000003F800000003F000000003F00000000 7E000000007C000000007C000000007C0000000078000000007800000000780000000078 000000007800000000780000000078000000007800000000780000000078000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000F800000003FE00000007FF0000000FFF8000000FFF8000001FFFC000001FFFC00000 1FFFC000001FFFC000001FFFC000000FFF8000000FFF80000007FF00000003FE00000000 F8000028467AC535>63 D<000000001F8000000000000000001F8000000000000000003F C000000000000000003FC000000000000000007FE000000000000000007FE00000000000 0000007FE00000000000000000FFF00000000000000000FFF00000000000000001FFF800 00000000000001FFF80000000000000001FFF80000000000000003FFFC00000000000000 03FFFC0000000000000007FFFE0000000000000007FFFE0000000000000007FFFE000000 000000000FFFFF000000000000000F9FFF000000000000001F9FFF800000000000001F1F FF800000000000001F0FFF800000000000003F0FFFC00000000000003E07FFC000000000 00007E07FFE00000000000007C07FFE00000000000007C03FFE0000000000000FC03FFF0 000000000000F801FFF0000000000001F801FFF8000000000001F001FFF8000000000001 F000FFF8000000000003F000FFFC000000000003E0007FFC000000000007E0007FFE0000 00000007C0007FFE000000000007C0003FFE00000000000FC0003FFF00000000000F8000 1FFF00000000001F80001FFF80000000001F00000FFF80000000001F00000FFF80000000 003F00000FFFC0000000003E000007FFC0000000007E000007FFE0000000007FFFFFFFFF E0000000007FFFFFFFFFE000000000FFFFFFFFFFF000000000FFFFFFFFFFF000000001FF FFFFFFFFF800000001F0000000FFF800000001F0000000FFF800000003F0000000FFFC00 000003E00000007FFC00000007E00000007FFE00000007C00000003FFE00000007C00000 003FFE0000000F800000003FFF0000000F800000001FFF0000001F800000001FFF800000 1F000000000FFF8000003F000000000FFFC000003E000000000FFFC000007E0000000007 FFC000FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FFFFFF00000FFFFFFFF0FFFFFF 00000FFFFFFFF0FFFFFF00000FFFFFFFF04C457CC455>65 DI<00000000 FFF00000700000001FFFFF0000F0000001FFFFFFE001F0000007FFFFFFF803F000003FFF FFFFFE07F00000FFFFE001FF0FF00001FFFE00003F9FF00007FFF000000FFFF0000FFFC0 000007FFF0001FFF00000003FFF0003FFE00000001FFF0007FFC00000000FFF000FFF800 0000007FF001FFF0000000003FF003FFE0000000001FF007FFE0000000001FF007FFC000 0000000FF00FFF80000000000FF00FFF800000000007F01FFF000000000007F01FFF0000 00000003F03FFF000000000003F03FFE000000000003F03FFE000000000003F07FFE0000 00000001F07FFE000000000001F07FFE000000000001F07FFC00000000000000FFFC0000 0000000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC0000 0000000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC0000 0000000000FFFC00000000000000FFFC00000000000000FFFC00000000000000FFFC0000 0000000000FFFC000000000000007FFC000000000000007FFE000000000000007FFE0000 00000000F07FFE000000000000F03FFE000000000000F03FFE000000000000F03FFF0000 00000000F01FFF000000000001F01FFF000000000001E00FFF800000000001E00FFF8000 00000003E007FFC00000000003C007FFE00000000007C003FFE00000000007C001FFF000 0000000F8000FFF8000000001F00007FFC000000003F00003FFE000000007E00001FFF80 000000FC00000FFFC0000001F8000007FFF0000007F0000001FFFE00001FE0000000FFFF F001FF800000003FFFFFFFFF0000000007FFFFFFFC0000000001FFFFFFF000000000001F FFFF80000000000000FFF800000044467AC451>IIII<00000000FFF0000070000000001FFFFF0000F000000001FFFFFFE001F000 000007FFFFFFF803F00000003FFFFFFFFE07F0000000FFFFE001FF0FF0000001FFFE0000 3F9FF0000007FFF000000FFFF000000FFFC0000007FFF000001FFF00000003FFF000003F FE00000001FFF000007FFC00000000FFF00000FFF8000000007FF00001FFF0000000003F F00003FFE0000000001FF00007FFE0000000001FF00007FFC0000000000FF0000FFF8000 0000000FF0000FFF800000000007F0001FFF000000000007F0001FFF000000000003F000 3FFF000000000003F0003FFE000000000003F0003FFE000000000003F0007FFE00000000 0001F0007FFE000000000001F0007FFE000000000001F0007FFC0000000000000000FFFC 0000000000000000FFFC0000000000000000FFFC0000000000000000FFFC000000000000 0000FFFC0000000000000000FFFC0000000000000000FFFC0000000000000000FFFC0000 000000000000FFFC0000000000000000FFFC0000000000000000FFFC0000000000000000 FFFC0000000000000000FFFC0000000000000000FFFC0000007FFFFFFFF07FFC0000007F FFFFFFF07FFE0000007FFFFFFFF07FFE0000007FFFFFFFF07FFE0000007FFFFFFFF03FFE 0000000001FFF0003FFE0000000001FFF0003FFF0000000001FFF0001FFF0000000001FF F0001FFF0000000001FFF0000FFF8000000001FFF0000FFF8000000001FFF00007FFC000 000001FFF00007FFE000000001FFF00003FFE000000001FFF00001FFF000000001FFF000 00FFF800000001FFF000007FFC00000001FFF000003FFE00000003FFF000001FFF800000 03FFF000000FFFC0000007FFF0000007FFF000000FFFF0000001FFFE00003FFFF0000000 FFFFF001FF9FF00000003FFFFFFFFF0FF000000007FFFFFFFC03F000000001FFFFFFF000 F0000000001FFFFFC000300000000000FFFC000000004C467AC458>III<0007FFFFFFFF0007FFFFFFFF0007FFFFFF FF0007FFFFFFFF0007FFFFFFFF0000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF 000000001FFF000000001FFF000000001FFF000000001FFF000000001FFF001FE0001FFF 003FF0001FFF007FF8001FFF007FF8001FFF00FFFC001FFF00FFFC001FFF00FFFC001FFF 00FFFC001FFF00FFFC003FFE00FFFC003FFE007FF8007FFC007FF0007FF8003FE000FFF8 001FC001FFF0000FFC07FFC00007FFFFFF800003FFFFFE0000007FFFF80000000FFF8000 0030457DC33A>I76 DII<00000007FFC0000000000000FFFFFE000000000007FF FFFFC0000000001FFFFFFFF0000000007FFE00FFFC00000001FFF0001FFF00000007FF80 0003FFC000000FFF000001FFE000001FFC0000007FF000003FF80000003FF800007FF000 00001FFC0000FFF00000001FFE0001FFE00000000FFF0003FFC000000007FF8003FFC000 000007FF8007FF8000000003FFC007FF8000000003FFC00FFF0000000001FFE00FFF0000 000001FFE01FFF0000000001FFF01FFE0000000000FFF03FFE0000000000FFF83FFE0000 000000FFF83FFE0000000000FFF87FFE0000000000FFFC7FFC00000000007FFC7FFC0000 0000007FFC7FFC00000000007FFC7FFC00000000007FFCFFFC00000000007FFEFFFC0000 0000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC0000 0000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC0000 0000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE7FFC0000 0000007FFC7FFE0000000000FFFC7FFE0000000000FFFC7FFE0000000000FFFC3FFE0000 000000FFF83FFE0000000000FFF83FFF0000000001FFF81FFF0000000001FFF01FFF0000 000001FFF01FFF8000000003FFF00FFF8000000003FFE00FFF8000000003FFE007FFC000 000007FFC003FFC000000007FF8003FFE00000000FFF8001FFF00000001FFF0000FFF800 00003FFE00007FFC0000007FFC00003FFE000000FFF800001FFF000001FFF000000FFFC0 0007FFE0000007FFF0001FFFC0000001FFFE00FFFF00000000FFFFFFFFFE000000003FFF FFFFF80000000007FFFFFFC00000000000FFFFFE00000000000007FFC000000047467AC4 54>II<00000007FFC0000000000000FFFFFE000000000007FFFFFFC000 0000001FFFFFFFF0000000007FFE00FFFC00000001FFF0001FFF00000007FFC00007FFC0 00000FFF000001FFE000001FFE000000FFF000003FFC0000007FF800007FF80000003FFC 0000FFF00000001FFE0001FFE00000000FFF0003FFC000000007FF8003FFC000000007FF 8007FF8000000003FFC007FF8000000003FFC00FFF8000000003FFE00FFF0000000001FF E01FFF0000000001FFF01FFF0000000001FFF03FFE0000000000FFF83FFE0000000000FF F83FFE0000000000FFF87FFE0000000000FFFC7FFE0000000000FFFC7FFC00000000007F FC7FFC00000000007FFC7FFC00000000007FFCFFFC00000000007FFEFFFC00000000007F FEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007F FEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007F FEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE7FFC00000000007F FC7FFC00000000007FFC7FFC00000000007FFC7FFE0000000000FFFC3FFE0000000000FF F83FFE0000000000FFF83FFE0000000000FFF81FFE0000000000FFF01FFF0000000001FF F01FFF0000000001FFF00FFF0000000001FFE00FFF8000FE0003FFE007FF8003FF8003FF C003FFC007FFC007FF8003FFC00FFFE007FF8001FFE01F83F00FFF0000FFF01E00F81FFE 00007FF83E007C3FFC00003FFC3C003E7FF800001FFE3C001EFFF000000FFF3C001FFFE0 000007FFFE001FFFC0000001FFFE001FFF00000000FFFF80FFFE000000003FFFFFFFF800 00000007FFFFFFE00002000000FFFFFFF0000700000007FFC7F00007000000000007F800 07000000000003FC000F000000000003FE001F000000000003FF80FF000000000003FFFF FF000000000001FFFFFE000000000001FFFFFE000000000001FFFFFE000000000000FFFF FE000000000000FFFFFC000000000000FFFFFC0000000000007FFFF80000000000007FFF F00000000000003FFFF00000000000001FFFE00000000000000FFFC000000000000007FF 0000000000000001FC0048587AC454>II<0000FFE0001C 000007FFFE003C00003FFFFF807C0000FFFFFFE0FC0001FFFFFFF9FC0003FF801FFFFC00 07FC0001FFFC000FF800007FFC001FF000003FFC003FE000000FFC003FC0000007FC007F C0000003FC007F80000003FC007F80000001FC007F80000000FC00FF80000000FC00FF80 0000007C00FF800000007C00FFC00000007C00FFC00000007C00FFE00000003C00FFF000 00003C00FFF80000003C00FFFC00000000007FFE00000000007FFFE0000000007FFFFE00 0000003FFFFFF00000003FFFFFFF0000001FFFFFFFE000001FFFFFFFFC00000FFFFFFFFE 000007FFFFFFFF800003FFFFFFFFC00001FFFFFFFFE000007FFFFFFFF000001FFFFFFFF8 000007FFFFFFFC000000FFFFFFFC0000000FFFFFFE00000000FFFFFE0000000007FFFF00 000000007FFF00000000003FFF00000000000FFF800000000007FF800000000003FF80F0 00000003FF80F000000001FF80F000000001FF80F000000000FF80F000000000FF80F800 000000FF80F800000000FF80F800000000FF00FC00000000FF00FC00000000FF00FE0000 0001FF00FF00000001FE00FF80000003FE00FFC0000003FC00FFE0000007FC00FFF80000 0FF800FFFF00003FF000FFFFF800FFE000FE7FFFFFFFC000FC1FFFFFFF0000F807FFFFFC 0000F000FFFFF00000E00007FF80000031467AC43E>I<3FFFFFFFFFFFFFFFE03FFFFFFF FFFFFFFFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFFFFFFFFFFFFFFE03FFE000F FF8003FFE07FE0000FFF80003FF07FC0000FFF80001FF07F00000FFF800007F07F00000F FF800007F07E00000FFF800003F07C00000FFF800001F07C00000FFF800001F07C00000F FF800001F07800000FFF800000F07800000FFF800000F07800000FFF800000F07800000F FF800000F0F800000FFF800000F8F000000FFF80000078F000000FFF80000078F000000F FF80000078F000000FFF80000078F000000FFF800000780000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000000000FFF800000000000000FFF800000000000000FFF800000000000000F FF800000000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFFFFFFFF00000007FFFF FFFFFF00000007FFFFFFFFFF000045437CC24E>IIII<0001FFE0000000001FFFFE000000007FFFFF80000001FFFF FFE0000003FE007FF8000007FC001FFC000007FE000FFE00000FFF0007FF00000FFF0007 FF00000FFF0003FF80000FFF0003FF80000FFF0003FF80000FFF0001FFC00007FE0001FF C00003FC0001FFC00000F00001FFC00000000001FFC00000000001FFC00000000001FFC0 0000000001FFC000000003FFFFC0000000FFFFFFC0000007FFFFFFC000003FFFF1FFC000 00FFFC01FFC00003FFE001FFC00007FF8001FFC0001FFE0001FFC0003FFC0001FFC0003F F80001FFC0007FF80001FFC0007FF00001FFC000FFF00001FFC000FFE00001FFC000FFE0 0001FFC000FFE00001FFC000FFE00003FFC000FFE00003FFC000FFF00007FFC0007FF800 0FFFC0007FF8001FFFF0003FFE003EFFFFC01FFF80FC7FFFC007FFFFF87FFFC003FFFFE0 1FFFC0007FFF8007FFC0000FFC00000000322F7DAD36>97 D<007FC000000000FFFFC000 000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC00000000003FFC00000 000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001 FFC00000000001FFC00000000001FFC00FF8000001FFC0FFFF800001FFC3FFFFE00001FF CFFFFFF80001FFDFC03FFC0001FFFF000FFE0001FFFC0003FF0001FFF80001FF8001FFF0 0001FFC001FFE00000FFE001FFC00000FFE001FFC000007FF001FFC000007FF001FFC000 007FF801FFC000003FF801FFC000003FF801FFC000003FF801FFC000003FFC01FFC00000 3FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003F FC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC 01FFC000003FF801FFC000003FF801FFC000007FF801FFC000007FF001FFC000007FF001 FFC000007FF001FFC00000FFE001FFE00000FFC001FFF00001FFC001FFF80003FF8001FF 7C0007FF0001FE3E000FFE0001FC1FC07FFC0001F80FFFFFF00001F003FFFFC00001E000 FFFF00000000001FF0000036467DC43E>I<00003FFC00000001FFFFC000000FFFFFF000 003FFFFFFC00007FF003FE0000FFC001FF0003FF8003FF0007FF0007FF8007FE0007FF80 0FFE0007FF801FFC0007FF801FFC0007FF803FF80007FF803FF80003FF007FF80001FE00 7FF8000078007FF0000000007FF000000000FFF000000000FFF000000000FFF000000000 FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000 FFF000000000FFF000000000FFF0000000007FF8000000007FF8000000007FF800000000 3FF8000000003FFC000003C03FFC000003C01FFE000007C00FFE000007800FFF00000F80 07FF80001F0003FFC0003E0001FFF0007C00007FFC03F800003FFFFFF000000FFFFFC000 0003FFFF000000003FF800002A2F7CAD32>I<0000000003FE0000000007FFFE00000000 07FFFE0000000007FFFE0000000007FFFE0000000007FFFE00000000001FFE0000000000 0FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000F FE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE 00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00 000000000FFE0000003FE00FFE000003FFFC0FFE00000FFFFF8FFE00003FFFFFCFFE0000 FFF807FFFE0001FFC001FFFE0003FF80007FFE0007FF00003FFE000FFE00001FFE000FFC 00000FFE001FFC00000FFE003FF800000FFE003FF800000FFE003FF800000FFE007FF800 000FFE007FF000000FFE007FF000000FFE00FFF000000FFE00FFF000000FFE00FFF00000 0FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000F FE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE007FF000000FFE 007FF000000FFE007FF000000FFE007FF800000FFE003FF800000FFE003FF800000FFE00 1FFC00001FFE001FFC00001FFE000FFE00003FFE0007FE00007FFE0003FF0000FFFF0001 FFC003FFFFFC00FFF01FEFFFFC007FFFFF8FFFFC001FFFFE0FFFFC0007FFF80FFFFC0000 7FC00FF80036467CC43E>I<00003FF800000003FFFF8000000FFFFFE000003FFFFFF000 007FF83FF80000FFC007FC0001FF8003FE0003FF0001FF0007FE0000FF800FFC0000FF80 1FFC00007FC01FF800007FC03FF800003FE03FF800003FE07FF800003FE07FF000003FE0 7FF000003FF07FF000001FF0FFF000001FF0FFF000001FF0FFFFFFFFFFF0FFFFFFFFFFF0 FFFFFFFFFFF0FFFFFFFFFFF0FFF000000000FFF000000000FFF000000000FFF000000000 FFF0000000007FF0000000007FF0000000007FF8000000007FF8000000003FF800000000 3FF8000000F01FFC000000F01FFC000001F00FFE000001E007FF000003E003FF800007C0 01FFC0000F8000FFF0003F00007FFE01FE00001FFFFFFC000007FFFFF0000001FFFFC000 00001FFE00002C2F7DAD33>I<000000FF8000000FFFE000007FFFF00001FFFFF80003FF 8FFC000FFE0FFE001FFC1FFE001FF81FFE003FF81FFE007FF01FFE007FF01FFE007FF00F FC00FFE00FFC00FFE003F000FFE000C000FFE0000000FFE0000000FFE0000000FFE00000 00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000FF FFFFF800FFFFFFF800FFFFFFF800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000FF E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000 0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 FFE0000000FFE0000000FFE000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE0007FFF FFE00027467DC522>I<0000FFE0007E00000FFFFE03FF80003FFFFF8FFF8000FFFFFFFF FFC001FFC07FFF3FC003FF001FF83FC007FE000FFC3FC00FFC0007FE1F801FFC0007FF0F 001FF80003FF00001FF80003FF00003FF80003FF80003FF80003FF80003FF80003FF8000 3FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80001F F80003FF00001FF80003FF00001FFC0007FF00000FFC0007FE000007FE000FFC000003FF 001FF8000001FFC07FF0000003FFFFFFE0000003FFFFFF800000078FFFFE0000000780FF E00000000F8000000000000F8000000000000F8000000000000F8000000000000FC00000 0000000FE000000000000FF000000000000FFFFFFFC000000FFFFFFFFC000007FFFFFFFF 800007FFFFFFFFE00003FFFFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC0003FFFFFFFFFE 000FFFFFFFFFFF001FF000007FFF003FC0000007FF007F80000001FF807F80000000FF80 FF00000000FF80FF000000007F80FF000000007F80FF000000007F80FF000000007F80FF 80000000FF807F80000000FF007FC0000001FF003FE0000003FE001FF0000007FC000FFE 00003FF80007FFC001FFF00001FFFFFFFFC000007FFFFFFF0000000FFFFFF8000000007F FF00000032427DAC38>I<007FC000000000FFFFC000000000FFFFC000000000FFFFC000 000000FFFFC000000000FFFFC00000000003FFC00000000001FFC00000000001FFC00000 000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001 FFC007FE000001FFC03FFF800001FFC0FFFFE00001FFC1FFFFF80001FFC7F03FFC0001FF CF801FFC0001FFDF000FFE0001FFDE000FFE0001FFFC000FFE0001FFF80007FF0001FFF0 0007FF0001FFF00007FF0001FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC000 07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF 0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001 FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFF FF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<007C00 01FF0003FF8007FFC007FFC00FFFE00FFFE00FFFE00FFFE00FFFE007FFC007FFC003FF80 01FF00007C00000000000000000000000000000000000000000000000000000000000000 007FC07FFFC07FFFC07FFFC07FFFC07FFFC003FFC001FFC001FFC001FFC001FFC001FFC0 01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 01FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<0000 03E000000FF800001FFC00003FFE00003FFE00007FFF00007FFF00007FFF00007FFF0000 7FFF00003FFE00003FFE00001FFC00000FF8000003E00000000000000000000000000000 0000000000000000000000000000000000000000000000000000000001FF0003FFFF0003 FFFF0003FFFF0003FFFF0003FFFF00000FFF000007FF000007FF000007FF000007FF0000 07FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0000 07FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0000 07FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0000 07FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0000 07FF000007FF000007FF1F8007FF3FC007FF7FE007FFFFF007FFFFF00FFEFFF00FFEFFF0 0FFCFFF01FFCFFE01FF87FE03FF03FC0FFE01FFFFF800FFFFF0003FFFC0000FFC000205A 86C522>I<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC0 00000000FFFFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC000 00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 01FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001FFC0007FFFE001 FFC0000FE00001FFC0001FC00001FFC0003F000001FFC0007E000001FFC000FC000001FF C003F8000001FFC007E0000001FFC00FC0000001FFC01F80000001FFC07F00000001FFC0 FE00000001FFC1FC00000001FFC3FE00000001FFC7FE00000001FFDFFF00000001FFFFFF 80000001FFFFFFC0000001FFFFFFC0000001FFF9FFE0000001FFE1FFF0000001FFC0FFF8 000001FF807FF8000001FF803FFC000001FF803FFE000001FF801FFF000001FF800FFF00 0001FF8007FF800001FF8007FFC00001FF8003FFE00001FF8001FFE00001FF8000FFF000 01FF8000FFF80001FF80007FFC0001FF80003FFC00FFFFFF03FFFFF8FFFFFF03FFFFF8FF FFFF03FFFFF8FFFFFF03FFFFF8FFFFFF03FFFFF835457DC43B>I<007FC000FFFFC000FF FFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FF FFFF80FFFFFF80FFFFFF80FFFFFF8019457CC420>I<007F8007FE00000FFC0000FFFF80 3FFFC0007FFF8000FFFF80FFFFF001FFFFE000FFFF81FFFFF803FFFFF000FFFF87F01FFC 0FE03FF800FFFF8FC00FFE1F801FFC0003FF9F000FFF3E001FFE0001FF9E0007FF3C000F FE0001FFBC0007FF78000FFE0001FFF80003FFF00007FF0001FFF80003FFF00007FF0001 FFF00003FFE00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFE000 03FFC00007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF80 0007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF 0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FF C00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003 FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF8000 07FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00 01FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC0 0003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00FFFFFF81FFFF FF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FF FFFEFFFFFF81FFFFFF03FFFFFE572D7CAC5E>I<007F8007FE0000FFFF803FFF8000FFFF 80FFFFE000FFFF81FFFFF800FFFF87F03FFC00FFFF8F801FFC0003FF9F000FFE0001FF9E 000FFE0001FFBC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF0001FFE000 07FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF 0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001 FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF C00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF 83FFFFFEFFFFFF83FFFFFE372D7CAC3E>I<00001FFC0000000001FFFFC000000007FFFF F00000001FFFFFFC0000007FF80FFF000000FFC001FF800001FF8000FFC00003FE00003F E00007FE00003FF0000FFC00001FF8000FF800000FF8001FF800000FFC001FF800000FFC 003FF800000FFE003FF0000007FE007FF0000007FF007FF0000007FF007FF0000007FF00 7FF0000007FF00FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FF F0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0 000007FF807FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF003FF800 000FFE003FF800000FFE001FF800000FFC001FFC00001FFC000FFC00001FF80007FE0000 3FF00007FE00003FF00003FF8000FFE00001FFC001FFC000007FF80FFF0000003FFFFFFE 0000000FFFFFF800000001FFFFC0000000001FFC000000312F7DAD38>I<007FC00FF800 00FFFFC0FFFF8000FFFFC3FFFFE000FFFFCFFFFFF800FFFFDFC03FFC00FFFFFF001FFE00 03FFFC0007FF0001FFF80003FF8001FFF00003FFC001FFE00001FFE001FFC00001FFE001 FFC00000FFF001FFC00000FFF001FFC000007FF801FFC000007FF801FFC000007FF801FF C000007FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC0 00003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000 003FFC01FFC000003FFC01FFC000003FFC01FFC000007FF801FFC000007FF801FFC00000 7FF801FFC000007FF001FFC00000FFF001FFC00000FFF001FFC00001FFE001FFE00001FF C001FFF00003FFC001FFF80007FF8001FFFC000FFF0001FFFE001FFE0001FFDFC07FFC00 01FFCFFFFFF00001FFC3FFFFC00001FFC0FFFF000001FFC01FF0000001FFC00000000001 FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 0000000001FFC000000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF80 000000FFFFFF8000000036407DAC3E>I<00003FE0001E000003FFFC003E00000FFFFF00 7E00003FFFFF807E0000FFF80FE0FE0001FFE003F1FE0003FFC001F1FE0007FF8000FBFE 000FFF00007FFE000FFE00003FFE001FFE00001FFE003FFC00001FFE003FFC00000FFE00 3FF800000FFE007FF800000FFE007FF800000FFE007FF800000FFE00FFF000000FFE00FF F000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF0 00000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000 000FFE007FF800000FFE007FF800000FFE007FF800000FFE007FF800000FFE003FFC0000 0FFE003FFC00000FFE001FFE00001FFE001FFE00003FFE000FFF00007FFE0007FF0000FF FE0003FF8001FFFE0001FFE003EFFE0000FFF01FCFFE00007FFFFF8FFE00001FFFFE0FFE 000003FFF80FFE0000007FC00FFE00000000000FFE00000000000FFE00000000000FFE00 000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000 0000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000 0007FFFFFC00000007FFFFFC00000007FFFFFC00000007FFFFFC00000007FFFFFC36407C AC3B>I<007F807F00FFFF81FFE0FFFF83FFF0FFFF8FFFF8FFFF8F8FFCFFFF9F1FFE03FF BE1FFE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F801FFE0 01E001FFE0000001FFE0000001FFE0000001FFC0000001FFC0000001FFC0000001FFC000 0001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC00000 01FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001 FFC0000001FFC0000001FFC0000001FFC0000001FFC00000FFFFFFE000FFFFFFE000FFFF FFE000FFFFFFE000FFFFFFE000272D7DAC2E>I<001FFC038000FFFF878003FFFFFF800F FFFFFF801FF003FF803FC000FF803F80003F807F00001F807E00001F80FE00000F80FE00 000F80FE00000780FF00000780FF00000780FF80000780FFE0000000FFFE0000007FFFF0 00007FFFFF00003FFFFFC0003FFFFFF0001FFFFFFC000FFFFFFE0003FFFFFF0001FFFFFF 80007FFFFF80000FFFFFC000003FFFC0000003FFE0000000FFE0F000003FE0F000003FE0 F800001FE0F800000FE0F800000FE0FC00000FE0FC00000FE0FE00000FC0FF00001FC0FF 00001FC0FF80003F80FFE0007F00FFF803FE00FFFFFFFC00FCFFFFF800F03FFFE000E007 FE0000232F7CAD2C>I<0001E000000001E000000001E000000001E000000001E0000000 03E000000003E000000003E000000003E000000007E000000007E00000000FE00000000F E00000001FE00000001FE00000003FE00000007FE0000000FFE0000003FFE000000FFFFF FF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF8000FFE0000000FFE0000000FFE000 0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 FFE0000000FFE0000000FFE0000000FFE0000000FFE001E000FFE001E000FFE001E000FF E001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE003E000FFF0 03C0007FF003C0007FF007C0003FF80F80001FFC1F00000FFFFF000007FFFC000001FFF8 0000003FE00023407EBE2C>I<007FC00001FF00FFFFC003FFFF00FFFFC003FFFF00FFFF C003FFFF00FFFFC003FFFF00FFFFC003FFFF0003FFC0000FFF0001FFC00007FF0001FFC0 0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF 0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0000FFF0001 FFC0000FFF0001FFC0001FFF0001FFC0001FFF0001FFC0003FFF0000FFC0003FFF0000FF E0007FFF80007FE001F7FFFE007FF807E7FFFE003FFFFFC7FFFE000FFFFF07FFFE0003FF FE07FFFE00007FF007FC00372E7CAC3E>IIIII<1FFFFFFFFF801FFFFFFFFF801FFFFFFFFF801FFFFFFFFF801FFC001FFF001FE0003F FE001FC0003FFE001F80007FFC001F0000FFF8003F0001FFF0003E0001FFF0003E0003FF E0003E0007FFC0003C000FFF80003C000FFF80003C001FFF00003C003FFE00003C007FFC 000000007FFC00000000FFF800000001FFF000000003FFE000000003FFE000000007FFC0 0000000FFF800780001FFF000780001FFF000780003FFE000780007FFC000F8000FFF800 0F0000FFF8000F0001FFF0000F0003FFE0001F0007FFC0001F0007FFC0001F000FFF8000 3F001FFF00007F003FFE0000FF003FFE0003FF007FFC001FFE00FFFFFFFFFE00FFFFFFFF FE00FFFFFFFFFE00FFFFFFFFFE00292C7DAB32>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fz ecrm1200 12 87 /Fz 87 123 df<00C0000C01C0001C03800038070000700E0000E00C0000C01C0001C018 000180380003803000030070000700600006006000060060000600E0000E00C0000C00C0 000C00C0000C00C0000C00CF000CF0FFC00FFCFFE00FFEFFE00FFEFFE00FFE7FE007FE7F E007FE3FE003FE3FC003FC0F0000F01F1D80C421>16 D<1E0001E07F8007F8FF800FF8FF C00FFCFFC00FFCFFE00FFEFFE00FFEFFE00FFE7FE007FE1E6001E6006000060060000600 6000060060000600E0000E00C0000C00C0000C00C0000C01C0001C018000180380003803 00003007000070060000600E0000E01C0001C03800038070000700600006001F1D7FC421 >I<000000FFC001FC0000000FFFF80FFF0000003F803E3F03C00000FC00077E07E00003 F8000FFC0FF00007F0003FF81FF0000FE0007FF01FF0001FC0007FF01FF0003F80007FE0 1FF0007F00007FE01FF0007F00007FE00FE000FF00003FC0038000FE00001FC0000000FE 00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0 000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE 00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0 0000FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF00000FE00001FC0000000FE 00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0 000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE 00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0 000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE 00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0 000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE 00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0000000FE00001FC0 000000FE00001FC0000000FE00001FC0000000FE00001FC0000001FF00003FF000007FFF FC0FFFFFE0007FFFFC0FFFFFE0007FFFFC0FFFFFE0003C467EC539>27 D<000001FF000000000FFFE00000007F80F8000001FC001C000003F8000E000007E0000F 00000FC0007F00001FC000FF80003F8000FF80007F0000FF80007F0000FF8000FF0000FF 8000FE00007F0000FE00003E0000FE0000000000FE0000000000FE0000000000FE000000 0000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000 0000FE0000000000FE0000000000FE00003F80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF 8000FE0000FF8000FE00007F8000FE00003F8000FE00003F8000FE00003F8000FE00003F 8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F 8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F 8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F 8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F 8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F 8001FF00007FC07FFFFC1FFFFF7FFFFC1FFFFF7FFFFC1FFFFF30467EC536>I<000001FF C00000000FFFFB8000007F803F800001FC003F800003F800FF800007E000FF80001FC000 FF80001FC000FF80003F8000FF80007F0000FF80007F00007F8000FF00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE0000 3F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8000FE00003F8001FF0000 7FC07FFFFC1FFFFF7FFFFC1FFFFF7FFFFC1FFFFF30467EC536>I<000000FF80003FE000 0000000FFFF001FFFC000000003F807C0FF01F00000000FC000E3F800380000003F80007 7F0001C0000007F0000FFC0001E000000FE0003FF8000FE000001FC0007FF8001FF00000 3F80007FF0001FF000007F00007FE0001FF000007F00007FE0001FF00000FF00007FE000 1FF00000FE00007FC0000FE00000FE00001FC00007C00000FE00001FC00000000000FE00 001FC00000000000FE00001FC00000000000FE00001FC00000000000FE00001FC0000000 0000FE00001FC00000000000FE00001FC00000000000FE00001FC00000000000FE00001F C00000000000FE00001FC00000000000FE00001FC00000000000FE00001FC00000000000 FE00001FC00007F000FFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFF FFF00000FE00001FC0001FF00000FE00001FC0000FF00000FE00001FC00007F00000FE00 001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F0 0000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001F C00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000 FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC000 07F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00 001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F0 0000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001F C00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000 FE00001FC00007F00000FE00001FC00007F00000FE00001FC00007F00000FE00001FC000 07F00001FF00003FE0000FF8007FFFFC0FFFFF83FFFFE07FFFFC0FFFFF83FFFFE07FFFFC 0FFFFF83FFFFE04B467EC551>I<1E007F80FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0 7F807F807F807F807F807F807F807F807F807F807F807F803F003F003F003F003F003F00 3F003F003F003F003F001E001E001E001E001E001E001E001E001E001E001E001E000C00 0C000C000C000C0000000000000000000000000000000000000000001E007F807F80FFC0 FFC0FFC0FFC07F807F801E000A4778C61B>33 D<0C0003003F000FC07F801FE07F801FE0 FF801FF0FF801FF0FF801FF07F801FE07F801FE07F801FE07F801FE07F801FE07F801FE0 7F000FE07F000FE03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC03F000FC0 3E0007C03E0007C01E0007801E0007801E0007801E0007801E0007801E0007801E000780 1C0003801C0003800C0003000C0003000C0003001C2476C631>I<001F80000000001800 007FE0000000003C0000F078000000007C0003E01C00000000FC0007C00E00000001F800 0F800F00000003F0000F800780000007F0001F0003E000000FE0001F0003F000003FC000 3E0001BE0000FFC0003E0001CFC00FCF80007E0000C1FFFF1F00007E0000C03FF01F0000 7C0000C000003E00007C0000E000007E0000FC00006000007C0000FC0000600000F80000 FC0000600001F80000FC0000600001F00000FC0000600003E00000FC0000600007E00000 FC0000600007C00000FC000060000F800000FC000060001F800000FC000060001F000000 FC000060003E0000007C0000E0007E0000007C0000C0007C0000007E0000C000F8000000 7E0000C001F80000003E0001C001F00000003E00018003E00000001F00038003E0000000 1F00030007C00000000F8007000FC00000000F800E000F8000000007C00C001F00000000 03E01C003F0000000000F078003E00000000007FE0007C00000000001F8000FC0003F000 00000000F8000FFC0000000001F0001E0F0000000003F0007C038000000003E000F80180 00000007C001F001C00000000FC001F000E00000000F8003E000600000001F0003E00070 0000001F0007C000300000003E0007C000380000007E000FC000180000007C000FC00018 000000F8000F800018000001F8000F80001C000001F0001F80000C000003E0001F80000C 000007E0001F80000C000007C0001F80000C00000F80001F80000C00001F80001F80000C 00001F00001F80000C00003E00001F80000C00007E00001F80000C00007C00001F80000C 0000F800001F80000C0001F800000F80001C0001F000000F8000180003E000000FC00018 0003E000000FC000180007C0000007C00038000FC0000007C00030000F80000003E00070 001F00000003E00060003F00000001F000E0003E00000001F001C0007C00000000F80180 00FC000000007C038000F8000000001E0F0000F0000000000FFC0000600000000003F000 46517BCA51>37 D<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E600060006000600060 00E000C000C000C001C0018003800300070006000E001C003800700060000B1D78C41B> 39 D<00000C00001C0000380000700000E00001C00003C0000780000F00000F00001E00 003C00003C0000780000F80000F00001F00001E00003E00003E00007C00007C00007C000 0F80000F80000F80001F00001F00001F00003F00003F00003E00003E00007E00007E0000 7E00007E00007C00007C00007C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000 FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000 FC00007C00007C00007C00007E00007E00007E00007E00003E00003E00003F00003F0000 1F00001F00001F00000F80000F80000F800007C00007C00007C00003E00003E00001E000 01F00000F00000F800007800003C00003C00001E00000F00000F000007800003C00001C0 0000E000007000003800001C00000C166476CA26>II<0000F000000000F000000000F800000000F000000000F000000000F0000000 00F000000000F000000000F000000000F000007800F001E0FC00F003F0FF00F00FF07F80 F01FE03FC0F03FC00FF060FF0003F861FC0000FC63F000003F6FC000000FFF00000003FC 00000000F000000003FC0000000FFF0000003F6FC00000FC63F00003F861FC000FF060FF 003FC0F03FC07F80F01FE0FF00F00FF0FC00F003F07800F001E00000F000000000F00000 0000F000000000F000000000F000000000F000000000F000000000F800000000F0000000 00F00000242B7ACA31>I<00000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 0000FFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF8000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000000000000C00000000000000000C00000000000000000C00000 000000000000C00000000041407BB84C>I<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE0 1E60006000600060006000E000C000C000C001C0018003800300070006000E001C003800 700060000B1D78891B>II<1E007F807F80FFC0FFC0FFC0FFC07F807F801E000A0A78891B>I<00000000 0C000000000C000000001C00000000180000000018000000003800000000300000000070 0000000060000000006000000000E000000000C000000000C000000001C0000000018000 00000380000000030000000003000000000700000000060000000006000000000E000000 000C000000000C000000001C000000001800000000380000000030000000003000000000 700000000060000000006000000000E000000000C000000000C000000001C00000000180 0000000380000000030000000003000000000700000000060000000006000000000E0000 00000C000000001C00000000180000000018000000003800000000300000000030000000 00700000000060000000006000000000E000000000C000000001C0000000018000000001 80000000038000000003000000000300000000070000000006000000000E000000000C00 0000000C000000001C000000001800000000180000000038000000003000000000300000 000070000000006000000000E000000000C000000000C000000001C00000000180000000 0180000000038000000003000000000300000000070000000006000000000E000000000C 000000000C000000001C0000000018000000001800000000380000000030000000007000 00000060000000006000000000E000000000C000000000C00000000026647BCA31>I<00 00FF00000007FFE000001F81F800003E007C0000FC003F0001F8001F8001F0000F8003E0 0007C007C00003E007C00003E00FC00003F00F800001F01F800001F81F800001F83F8000 01FC3F800001FC3F800001FC3F000000FC7F000000FE7F000000FE7F000000FE7F000000 FE7F000000FEFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FF FF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF 000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF00 0000FFFF000000FF7F000000FE7F000000FE7F000000FE7F000000FE7F000000FE7F8000 01FE3F800001FC3F800001FC3F800001FC1F800001F81F800001F80FC00003F00FC00003 F00FC00003F007E00007E003E00007C003F0000FC001F8001F8000FC003F00003E007C00 001F81F8000007FFE0000000FF000028447CC131>I<000030000000F0000001F0000003 F000001FF00000FFF000FFFFF000FFE7F000FF07F0000007F0000007F0000007F0000007 F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 F0000007F0000007F0000007F000000FF800001FFC007FFFFFFF7FFFFFFF7FFFFFFF2042 78C131>I<0003FE0000001FFFC000007FFFF00001F80FFC0003C001FE00078000FF000E 00007F801C00003FC01C00001FE03800001FF03000000FF07000000FF860000007F86C00 0007F8FF000007FCFF800007FCFFC00007FCFFC00003FCFFC00003FCFFC00003FCFFC000 03FC7F800007FC3F000007FC00000007FC00000007F800000007F80000000FF80000000F F00000001FF00000001FE00000001FE00000003FC00000007F800000007F00000000FF00 000000FE00000001FC00000003F800000007F000000007E00000000FC00000001F800000 003F000000007C00000000F800000000F000000001E000000003C000000007800000000F 00000C001E00000C003C00000C0038000018007000001800E000001801C0000018038000 003807000000300E000000701FFFFFFFF01FFFFFFFF03FFFFFFFF07FFFFFFFF0FFFFFFFF E0FFFFFFFFE0FFFFFFFFE026427BC131>I<0001FF0000000FFFE000003FFFFC0000FE01 FE0001F0007F8003C0003FC00700001FE00E00001FE00E00000FF00FE0000FF01FF0000F F81FF0000FF81FF00007F81FF80007F81FF00007F81FF00007F80FE0000FF803C0000FF8 0000000FF00000000FF00000000FF00000001FE00000001FE00000003FC00000003F8000 00007F00000000FE00000001FC00000003F00000001FC000000FFF0000000FFFF0000000 01FC000000007F000000003F800000001FC00000000FE00000000FF000000007F8000000 07FC00000003FC00000003FE00000003FE00000001FE00000001FF00000001FF00000001 FF1E000001FF7F800001FFFFC00001FFFFC00001FFFFC00001FFFFC00001FFFFC00001FE FF800003FEFF800003FE7E000003FC70000007FC30000007F83800000FF81C00000FF00E 00001FE00780003FC003E0007F8001FE01FE00007FFFF800000FFFE0000001FF00002844 7CC131>I<0000000380000000000380000000000780000000000F80000000000F800000 00001F80000000003F80000000003F80000000007F8000000000FF8000000000FF800000 0001FF8000000003BF80000000033F80000000073F80000000063F800000000C3F800000 001C3F80000000183F80000000303F80000000703F80000000603F80000000C03F800000 01C03F80000001803F80000003003F80000007003F80000006003F8000000C003F800000 1C003F80000018003F80000030003F80000070003F80000060003F800000E0003F800001 C0003F80000180003F80000380003F80000300003F80000600003F80000E00003F80000C 00003F80001800003F80003800003F80003000003F80006000003F8000E000003F8000FF FFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC00000003F80000000003F80000000003F800000 00003F80000000003F80000000003F80000000003F80000000003F80000000003F800000 00003F80000000003F80000000003F80000000003F8000000000FFE00000007FFFFFC000 007FFFFFC000007FFFFFC02A437DC231>I<06000000C007C00007C007FC007F8007FFFF FF0007FFFFFE0007FFFFFC0007FFFFF80007FFFFE00007FFFF8000063FFC000006000000 000600000000060000000006000000000600000000060000000006000000000600000000 0600000000060000000006000000000600000000060000000006000000000600FF000006 07FFC000061F01F000063800FC0006F0007E0007C0003F000780001F800780001FC00700 000FC00600000FE000000007F000000007F000000007F000000007F800000003F8000000 03F800000003FC00000003FC00000003FC00000003FC00000003FC3E000003FC7F000003 FCFF800003FCFF800003FCFF800003FCFF800003FCFF800003F8FF000007F8FE000007F8 60000007F060000007F07000000FF03000000FE03800001FC01C00001FC01E00003F800F 00007F00078000FE0003C001FC0001F807F000007FFFE000001FFF00000007F800002644 7BC131>I<000007FC0000003FFF000000FFFFC00003FC03E00007E000F0001FC0003800 3F000058007E0001FC00FE0003FC00FC0007FC01F80007FC03F00007FC03F00007FC07E0 0003F80FE00001F00FE00000001FC00000001FC00000001FC00000003F800000003F8000 00003F800000007F800000007F800000007F007F80007F01FFF0007F0780FC00FF0E003E 00FF1C001F80FF38000FC0FF700007E0FF600007E0FFE00003F0FFC00003F8FFC00001F8 FFC00001FCFF800001FCFF800000FEFF800000FEFF800000FEFF000000FFFF000000FFFF 000000FFFF000000FF7F000000FF7F000000FF7F000000FF7F000000FF7F000000FF7F80 0000FF3F800000FF3F800000FF3F800000FE1F800000FE1F800001FE1FC00001FC0FC000 01FC0FC00003F807E00003F807E00007F003F00007E001F8000FC000FC001F80007E003F 00003F80FE00000FFFF8000003FFE0000000FF800028447CC131>I<1C00000000001C00 000000001F80000000001FFFFFFFFFC01FFFFFFFFFC01FFFFFFFFFC03FFFFFFFFF803FFF FFFFFF803FFFFFFFFF003FFFFFFFFE00380000000C00300000001C007000000038006000 0000300060000000700060000000E00060000000C000C0000001C000C00000038000C000 000700000000000600000000000E00000000001C00000000001800000000003800000000 00700000000000600000000000E00000000001C00000000001C000000000038000000000 0780000000000700000000000F00000000000F00000000001F00000000001E0000000000 3E00000000003E00000000007E00000000007C00000000007C0000000000FC0000000000 FC0000000001FC0000000001FC0000000001FC0000000003F80000000003F80000000003 F80000000003F80000000007F80000000007F80000000007F80000000007F80000000007 F80000000007F8000000000FF8000000000FF8000000000FF8000000000FF8000000000F F8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000007 F00000000001C00000002A457BC231>I<0000FF00000007FFE000001FFFF800007F00FE 0000FC003F0001F0001F8003E0000FC003C00007E007C00003F00F800001F00F800001F0 0F000001F81F000000F81F000000F81F000000F81F000000F81F800000F81F800000F81F C00001F81FC00001F01FE00001F00FF00003E00FFC0003E007FE0007C007FF800F8003FF C01F0001FFF03E0001FFF87800007FFEF000003FFFC000001FFFC0000007FFE0000003FF F8000007FFFC00001E7FFF00007C1FFF8000F80FFFC001E003FFE003C001FFF007C0007F F80F80003FFC1F00000FFC3E000007FE3E000001FE7C000000FE7C000000FF7C0000007F F80000003FF80000003FF80000001FF80000001FF80000001FF80000001FF80000001FFC 0000001E7C0000003E7C0000003E7E0000003C3E0000007C1F000000F81F800001F00FC0 0003E007E00007C003F8001F8000FF00FF00003FFFFC00000FFFF0000001FF800028447C C131>I<0000FF00000007FFE000001FFFF800007F80FC0000FC007E0001F8003F0003F0 001F8007E0000FC00FE00007E01FC00007E01FC00003F03F800003F03F800003F87F8000 01F87F000001FC7F000001FCFF000001FCFF000001FCFF000001FEFF000000FEFF000000 FEFF000000FEFF000000FEFF000000FEFF000000FFFF000000FFFF000000FFFF000000FF 7F000001FF7F000001FF7F000001FF3F800001FF3F800003FF1F800003FF1FC00003FF0F C00007FF07E00006FF07E0000EFF03F0001CFF01F80038FF007C0070FF003F01E0FF000F FF80FE0001FE00FE00000000FE00000001FE00000001FC00000001FC00000001FC000000 01FC00000003F800000003F800000003F00F800007F01FC00007E03FE0000FE03FE0000F C03FE0001F803FE0001F803FC0003F003F80007E001E0000FC001C0001F8000F0003F000 07E01FE00003FFFF800000FFFE0000001FF0000028447CC131>I<1E007F807F80FFC0FF C0FFC0FFC07F807F801E0000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000001E007F807F80FFC0FFC0FFC0FFC07F 807F801E000A2B78AA1B>I<1E007F807F80FFC0FFC0FFC0FFC07F807F801E0000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000001E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E60006000600060006000E0 00C000C000C001C0018003800300070006000E001C003800700060000B3E78AA1B>I<7F FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFF8000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000FF FFFFFFFFFFFFFF807FFFFFFFFFFFFFFF0041167BA34C>61 D<000FFC0000007FFFC00001 F007F000078001FC000E0000FE001C00007F003800003F807000003FC06000001FC0FE00 001FE0FF00001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE07F0000 1FE01C00003FC00000003FC00000007F800000007F80000000FF00000001FE00000003F8 00000007F000000007E00000000FC00000001F800000001F000000003E000000003C0000 0000780000000078000000007000000000F000000000E000000000E000000000C0000000 01C000000001C000000001C0000000018000000001800000000180000000018000000001 800000000180000000018000000001800000000180000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000003C00000000FF00000000FF00000001FF80000001FF80000001FF80000001FF80000 000FF00000000FF000000003C0000023467BC52E>63 D<00000000C00000000000000001 E00000000000000001E00000000000000001E00000000000000003F00000000000000003 F00000000000000003F00000000000000007F80000000000000007F80000000000000007 F8000000000000000FFC000000000000000FFC000000000000000FFC0000000000000019 FE0000000000000019FE0000000000000019FE0000000000000030FF0000000000000030 FF0000000000000070FF80000000000000607F80000000000000607F80000000000000E0 7FC0000000000000C03FC0000000000000C03FC0000000000001C03FE000000000000180 1FE0000000000001801FE0000000000003001FF0000000000003000FF000000000000300 0FF0000000000006000FF80000000000060007F80000000000060007F800000000000C00 03FC00000000000C0003FC00000000000C0003FC0000000000180001FE00000000001800 01FE0000000000180001FE0000000000300000FF0000000000300000FF00000000007000 00FF80000000006000007F80000000006000007F8000000000E000007FC000000000FFFF FFFFC000000000FFFFFFFFC000000001FFFFFFFFE0000000018000001FE0000000018000 001FE0000000030000001FF0000000030000000FF0000000030000000FF0000000060000 000FF80000000600000007F80000000600000007F80000000C00000003FC0000000C0000 0003FC0000000C00000003FC0000001800000001FE0000001800000001FE000000180000 0001FE0000003000000000FF0000003000000000FF0000007800000000FF800000F80000 0000FF800001FC00000000FFC0000FFF00000003FFE000FFFFE000007FFFFFC0FFFFE000 007FFFFFC0FFFFE000007FFFFFC042477DC649>65 DI<000000 0FFE000060000000FFFFC000E0000003FFFFF000E000000FFC01FC01E000003FC0003E01 E00000FF00000F83E00003FC000003C7E00007F8000001E7E0000FF0000000FFE0001FE0 0000007FE0003FC00000003FE0007F800000001FE000FF000000000FE001FE000000000F E001FC0000000007E003FC0000000007E007F80000000003E007F80000000003E00FF000 00000001E00FF00000000001E01FE00000000000E01FE00000000000E03FE00000000000 E03FE00000000000E03FC00000000000607FC00000000000607FC00000000000607FC000 00000000607FC0000000000000FF80000000000000FF80000000000000FF800000000000 00FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF8000 0000000000FF80000000000000FF80000000000000FF80000000000000FF800000000000 00FF80000000000000FF800000000000007FC00000000000007FC00000000000007FC000 00000000607FC00000000000603FC00000000000603FE00000000000603FE00000000000 601FE00000000000E01FF00000000000E00FF00000000000C00FF00000000000C007F800 00000001C007F800000000018003FC00000000038001FC00000000038001FE0000000007 0000FF000000000600007F800000000E00003FC00000001C00001FE00000003800000FF0 00000078000007F8000000F0000003FC000001E0000000FF000007800000003FC0001F00 0000000FFC00FC0000000003FFFFF00000000000FFFFC000000000000FFE0000003B487B C546>IIII<0000000FFE00006000000000FFFFC000E000000003FFFFF000E00000000FFC 01FC01E00000003FC0003E01E0000000FF00000F83E0000003FC000003C7E0000007F800 0001E7E000000FF0000000FFE000001FE00000007FE000003FC00000003FE000007F8000 00001FE00000FF000000000FE00001FE000000000FE00001FC0000000007E00003FC0000 000007E00007F80000000003E00007F80000000003E0000FF00000000001E0000FF00000 000001E0001FE00000000000E0001FE00000000000E0003FE00000000000E0003FE00000 000000E0003FC0000000000060007FC0000000000060007FC0000000000060007FC00000 00000060007FC000000000000000FF8000000000000000FF8000000000000000FF800000 0000000000FF8000000000000000FF8000000000000000FF8000000000000000FF800000 0000000000FF8000000000000000FF8000000000000000FF8000000000000000FF800000 0000000000FF8000000000000000FF8000000000000000FF80000001FFFFFFC07FC00000 01FFFFFFC07FC0000001FFFFFFC07FC0000000007FF0007FC0000000003FE0003FC00000 00001FE0003FE0000000001FE0003FE0000000001FE0001FE0000000001FE0001FF00000 00001FE0000FF0000000001FE0000FF0000000001FE00007F8000000001FE00007F80000 00001FE00003FC000000001FE00001FE000000001FE00001FE000000001FE00000FF0000 00001FE000007F800000001FE000003FC00000003FE000001FE00000003FE000000FF000 00007FE0000007F8000000E7E0000003FE000001C7E0000000FF00000383E00000003FE0 000F01E00000000FFC00FE00E000000003FFFFF8006000000000FFFFE00000000000000F FE0000000042487BC54D>III<000FFFFFFE000FFFFFFE000FFFFFFE000003FF800000 01FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF 00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00 000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0000 0000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF00000000FF00000000FF00000000FF00000000FF003F0000FF007F8000FF00FFC000FF 00FFC000FF00FFC000FF00FFC000FF00FFC001FE00FF8001FE00FF0001FE006C0003FC00 700003F800380007F8001C0007F0000E000FE00007001F800003E07F000000FFFC000000 1FE0000027467BC332>IIII< FFFF8000000FFFFFFFFFC000000FFFFFFFFFE000000FFFFF00FFE0000000FFF0007FF000 00001F80006FF80000000F00006FF80000000F000067FC00000006000063FE0000000600 0063FE00000006000061FF00000006000060FF80000006000060FF800000060000607FC0 0000060000603FE00000060000603FE00000060000601FF00000060000600FF800000600 00600FF800000600006007FC00000600006003FE00000600006003FE00000600006001FF 00000600006000FF80000600006000FF800006000060007FC00006000060003FE0000600 0060003FE00006000060001FF00006000060000FF80006000060000FF800060000600007 FC00060000600003FE00060000600003FE00060000600001FF00060000600000FF800600 00600000FF800600006000007FC00600006000003FE00600006000003FE0060000600000 1FF00600006000000FF80600006000000FF806000060000007FC06000060000003FE0600 0060000003FE06000060000001FF06000060000000FF86000060000000FF860000600000 007FC60000600000003FE60000600000003FE60000600000001FF60000600000000FFE00 00600000000FFE00006000000007FE00006000000003FE00006000000003FE0000600000 0001FE00006000000000FE00006000000000FE0000F0000000007E0000F0000000003E00 01F8000000003E000FFF000000001E00FFFFF00000000E00FFFFF00000000E00FFFFF000 0000060040447CC349>I<0000001FFC00000000000001FFFFC0000000000007F007F000 000000001F8000FC00000000007E00003F0000000001F800000FC000000003F0000007E0 00000007E0000003F00000000FC0000001F80000001F80000000FC0000003F000000007E 0000007E000000003F000000FE000000003F800001FC000000001FC00003F8000000000F E00003F8000000000FE00007F00000000007F00007F00000000007F0000FF00000000007 F8000FE00000000003F8001FE00000000003FC001FE00000000003FC003FC00000000001 FE003FC00000000001FE003FC00000000001FE007FC00000000001FF007FC00000000001 FF007F800000000000FF007F800000000000FF007F800000000000FF00FF800000000000 FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF800000000000 FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF800000000000 FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF800000000000 FF807FC00000000001FF007FC00000000001FF007FC00000000001FF007FC00000000001 FF003FC00000000001FE003FE00000000003FE003FE00000000003FE001FE00000000003 FC001FE00000000003FC000FF00000000007F8000FF00000000007F80007F8000000000F F00007F8000000000FF00003F8000000000FE00003FC000000001FE00001FE000000003F C00000FE000000003F8000007F000000007F0000007F80000000FF0000003F80000000FE 0000001FC0000001FC00000007E0000003F000000003F0000007E000000001FC00001FC0 000000007E00003F00000000001F8000FC000000000007F007F0000000000001FFFFC000 00000000001FFC0000000041487BC54C>II<000000 1FFC00000000000001FFFFC0000000000007F007F000000000001F8000FC00000000007E 00003F0000000001FC00001FC000000003F0000007E000000007E0000003F00000000FC0 000001F80000001F80000000FC0000003F000000007E0000007F000000007F000000FE00 0000003F800001FC000000001FC00003FC000000001FE00003F8000000000FE00007F800 0000000FF00007F00000000007F0000FF00000000007F8000FF00000000007F8001FE000 00000003FC001FE00000000003FC003FE00000000003FE003FC00000000001FE003FC000 00000001FE007FC00000000001FF007FC00000000001FF007FC00000000001FF007F8000 00000000FF007F800000000000FF00FF800000000000FF80FF800000000000FF80FF8000 00000000FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF8000 00000000FF80FF800000000000FF80FF800000000000FF80FF800000000000FF80FF8000 00000000FF80FF800000000000FF80FF800000000000FF807F800000000000FF007FC000 00000001FF007FC00000000001FF007FC00000000001FF003FC00000000001FE003FC000 00000001FE003FE00000000003FE001FE00000000003FC001FE00000000003FC000FE000 00000003F8000FF00000000007F80007F00000000007F00007F80003F0000FF00003F800 0FFC000FE00003FC001C0E001FE00001FC003807001FC00000FE003003803F8000007F00 7001807F0000007F006000C07F0000003F806000C0FE0000001FC06000E1FC00000007E0 600063F000000003F0600077E000000001FC70007FC0000000007E30007F00000000001F B800FC000000000007FC07F80000C0000001FFFFFC0000C00000001FFC3C0000C0000000 00003C0000C000000000003E0001C000000000001E0001C000000000001F0003C0000000 00001F00038000000000001F80078000000000001FC00F8000000000000FF03F80000000 00000FFFFF0000000000000FFFFF00000000000007FFFF00000000000007FFFE00000000 000003FFFC00000000000003FFFC00000000000001FFF8000000000000007FE000000000 0000001F800042597BC54C>II<0001FF000300000FFFE00700003FFFF8070000FE00FE0F0001F8001F0F0007E00007 9F0007C00003DF000F800001FF001F000000FF003F0000007F003E0000003F007E000000 3F007E0000001F007C0000001F00FC0000000F00FC0000000F00FC0000000700FC000000 0700FC0000000700FE0000000700FE0000000300FE0000000300FF0000000300FF000000 03007F80000000007FC0000000007FE0000000003FF8000000003FFE000000001FFFE000 00000FFFFE00000007FFFFE0000003FFFFFC000001FFFFFF000000FFFFFFC000003FFFFF F000000FFFFFF8000001FFFFFC0000001FFFFE00000001FFFE000000001FFF0000000003 FF8000000001FF8000000000FFC0000000007FC0000000003FC0000000001FC000000000 1FE0C00000000FE0C00000000FE0C00000000FE0C000000007E0C000000007E0C0000000 07E0E000000007E0E000000007E0E000000007E0F000000007C0F00000000FC0F8000000 0FC0F80000000F80FC0000001F80FE0000001F00FF0000003F00FF8000007E00FBC00000 FC00F9F00001F800F07C0003F000F03FC00FE000E00FFFFF8000E001FFFE0000C0003FF0 00002B487BC536>I<3FFFFFFFFFFFFFF83FFFFFFFFFFFFFF83FFFFFFFFFFFFFF83FF000 1FF8001FF83F80000FF00003F83E00000FF00000F87C00000FF000007C7800000FF00000 3C7800000FF000003C7000000FF000001C7000000FF000001C7000000FF000001C600000 0FF000000C6000000FF000000C6000000FF000000C6000000FF000000C6000000FF00000 0CC000000FF0000006C000000FF0000006C000000FF0000006C000000FF0000006C00000 0FF00000060000000FF00000000000000FF00000000000000FF00000000000000FF00000 000000000FF00000000000000FF00000000000000FF00000000000000FF0000000000000 0FF00000000000000FF00000000000000FF00000000000000FF00000000000000FF00000 000000000FF00000000000000FF00000000000000FF00000000000000FF0000000000000 0FF00000000000000FF00000000000000FF00000000000000FF00000000000000FF00000 000000000FF00000000000000FF00000000000000FF00000000000000FF0000000000000 0FF00000000000000FF00000000000000FF00000000000000FF00000000000000FF00000 000000000FF00000000000000FF00000000000000FF00000000000000FF0000000000000 0FF00000000000000FF00000000000000FF00000000000000FF00000000000000FF00000 000000000FF00000000000001FF80000000000007FFE0000000001FFFFFFFF80000001FF FFFFFF80000001FFFFFFFF80003F447DC346>III< FFFFFF0007FFFFF8000FFFFEFFFFFF0007FFFFF8000FFFFEFFFFFF0007FFFFF8000FFFFE 03FFE000001FFF000000FFF001FF8000000FFC0000003FC001FF00000007F80000001F00 00FF00000007F80000000F0000FF00000007F80000000E00007F80000003FC0000000E00 007F80000003FC0000000C00007F80000003FC0000000C00003FC0000003FE0000001800 003FC0000003FE0000001800003FC0000003FE0000001800003FE0000006FF0000003800 001FE0000006FF0000003000001FE0000006FF0000003000001FF000000EFF8000007000 000FF000000C7F8000006000000FF000000C7F8000006000000FF800001C7FC000006000 0007F80000183FC00000C0000007F80000183FC00000C0000007F80000183FE00000C000 0003FC0000301FE0000180000003FC0000301FE0000180000003FC0000301FE000018000 0001FE0000600FF0000300000001FE0000600FF0000300000001FE0000600FF000030000 0000FF0000C007F8000600000000FF0000C007F8000600000000FF0000C007F800060000 0000FF8001C003FC000E000000007F80018003FC000C000000007F80018003FC000C0000 00007FC0038003FE000C000000003FC0030001FE0018000000003FC0030001FE00180000 00003FE0030001FF0018000000001FE0060000FF0030000000001FE0060000FF00300000 00001FE0060000FF0030000000000FF00C00007F8060000000000FF00C00007F80600000 00000FF00C00007F80600000000007F81800003FC0C00000000007F81800003FC0C00000 000007F81800003FC0C00000000007FC3000001FE1C00000000003FC3000001FE1800000 000003FC3000001FE1800000000003FE7000001FF3800000000001FE6000000FF3000000 000001FE6000000FF3000000000001FFE000000FFB000000000000FFC0000007FE000000 000000FFC0000007FE000000000000FFC0000007FE0000000000007F80000003FC000000 0000007F80000003FC0000000000007F80000003FC0000000000003F00000001F8000000 0000003F00000001F80000000000003F00000001F80000000000001E00000000F0000000 0000001E00000000F00000000000001E00000000F00000000000001E0000000070000000 0000000C00000000600000005F467EC364>I<3FFFFFE0001FFFFF003FFFFFE0001FFFFF 003FFFFFE0001FFFFF0000FFFF000007FFE000003FFC000001FF0000001FF8000001FC00 00000FF8000000F800000007FC000000E000000007FC000000E000000003FE000001C000 000001FF0000018000000001FF0000030000000000FF80000700000000007FC000060000 0000007FC0000C00000000003FE0001C00000000001FF0001800000000001FF000300000 0000000FF80070000000000007FC0060000000000007FC00C0000000000003FE01C00000 00000001FF0180000000000001FF0300000000000000FF87000000000000007FC6000000 000000007FCC000000000000003FFC000000000000001FF8000000000000001FF0000000 000000000FF80000000000000007FC0000000000000007FC0000000000000003FE000000 0000000003FF0000000000000003FF0000000000000006FF800000000000000EFF800000 000000000C7FC0000000000000183FE0000000000000383FE0000000000000301FF00000 00000000600FF8000000000000E00FF8000000000000C007FC0000000000018003FE0000 000000038003FE0000000000030001FF0000000000060000FF80000000000E0000FF8000 0000000C00007FC0000000001800003FE0000000003800003FE0000000003000001FF000 0000006000000FF800000000E000000FF800000000C0000007FC0000000180000003FE00 00000380000003FE0000000700000001FF0000000F00000000FF8000001F00000000FF80 00003F80000000FFC00000FF80000000FFE00007FFE0000003FFF800FFFFF800001FFFFF F0FFFFF800001FFFFFF0FFFFF800001FFFFFF044447EC349>II91 D93 D<7FFFFFFFFFFFFFC0FFFFFFFFFFFFFFE0FFFFFF FFFFFFFFE07FFFFFFFFFFFFFC03B04786E4C>95 D<00C001C0038007000E000C001C0018 00380030007000600060006000E000C000C000C000C000CF00FFC0FFE0FFE0FFE07FE07F E03FE03FC00F000B1D79C41B>I<0007FC000000003FFF80000000F80FE0000003C003F0 0000070001F800000E0000FC00000FC0007E00001FE0007F00001FF0003F80001FF0003F 80001FF0003F80001FF0001FC0001FF0001FC0000FE0001FC0000380001FC0000000001F C0000000001FC0000000001FC0000000001FC00000000FFFC0000001FFFFC000000FFE1F C000003FC01FC00000FF001FC00003FC001FC00007F8001FC0000FF0001FC0001FE0001F C0003FC0001FC0007FC0001FC0007F80001FC0007F80001FC060FF00001FC060FF00001F C060FF00001FC060FF00003FC060FF00003FC060FF00003FC060FF80007FC0607F8000EF C0607FC000C7E0C03FC001C7E0C01FE00783F1C007F81E03FF8001FFFC01FF00001FE000 7C002B2E7CAC31>I<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC00 00000003FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC03FC000001FC0FFF800001FC3C07E00001FC70 01F80001FDE0007E0001FD80003F0001FF80001F8001FF00001FC001FE00000FE001FC00 0007E001FC000007F001FC000007F001FC000003F801FC000003F801FC000003FC01FC00 0003FC01FC000001FC01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC00 0001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC00 0001FE01FC000001FC01FC000003FC01FC000003FC01FC000003F801FC000003F801FC00 0007F001FC000007F001FE00000FE001FE00000FC001FF00001FC001FB00003F8001F380 007E0001E1C000FC0001E0F001F80001C03C07E00001801FFF8000000003FC00002F467D C436>I<00007F80000003FFF000000FC07C00003F000F0000FC00038001F80001C003F8 000FC007F0001FE007E0003FE00FE0003FE01FC0003FE01FC0003FE03F80003FE03F8000 1FC07F800007007F800000007F800000007F00000000FF00000000FF00000000FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF000000007F000000007F800000007F800000003F800000003F800000303FC00000301F C00000700FE00000600FE00000E007F00000C003F80001C001F800038000FC000700003F 001E00001FC078000007FFF0000000FF8000242E7DAC2B>I<000000007F000000003FFF 000000003FFF000000003FFF0000000001FF0000000000FF00000000007F00000000007F 00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F 00000000007F00000000007F00000000007F00000000007F00000000007F00000000007F 00000000007F00000000007F00000000007F00000000007F00000000007F0000007F807F 000003FFF07F00000FC07C7F00003F000E7F00007E00077F0000FC0003FF0003F80001FF 0007F00000FF0007E00000FF000FE000007F001FC000007F001FC000007F003F8000007F 003F8000007F007F8000007F007F8000007F007F0000007F00FF0000007F00FF0000007F 00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F 00FF0000007F00FF0000007F00FF0000007F007F0000007F007F8000007F007F8000007F 003F8000007F003F8000007F001FC000007F001FC000007F000FC00000FF000FE00000FF 0007F00001FF0003F00003FF0001F800077F8000FC000E7FC0003F001C7FFE000FC0F87F FE0003FFE07FFE00007F007F002F467DC436>I<0001FE00000007FFC000001F03F00000 7E00FC0000FC007E0001F8003F0003F0003F0007E0001F800FE0001FC00FC0000FC01FC0 000FC03F80000FE03F800007E03F800007E07F800007F07F000007F07F000007F0FF0000 07F0FF000007F0FF000007F0FFFFFFFFF0FFFFFFFFF0FF00000000FF00000000FF000000 00FF00000000FF00000000FF000000007F000000007F000000007F800000007F80000000 3F800000003F800000301FC00000301FC00000700FC00000600FE00000E007F00000C003 F00001C001F800038000FC000700003E001E00001F80F8000003FFE0000000FF0000242E 7DAC2B>I<00000FE00000007FF8000001F81E000003F03F00000FE07F80001FC0FF8000 1F80FF80003F80FF80007F00FF80007F00FF80007F007F0000FE001C0000FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000FFFFFF80 00FFFFFF8000FFFFFF800000FE00000000FE00000000FE00000000FE00000000FE000000 00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000 FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000001FF8000007FFFFF00007FFFFF00007FFFFF000021467EC51E >I<000000000F800001FC007FE0000FFF81F0F0003F07E381F000FC01FF03F001F800FE 01F003F0007E01E007F0007F000007E0003F00000FE0003F80000FC0001F80001FC0001F C0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001F C0001FC0001FC0001FC0001FC0000FC0001F80000FE0003F800007E0003F000007F0007F 000003F0007E000001F800FC000001FC01F8000003BF07E00000030FFF8000000701FC00 00000700000000000700000000000F00000000000F00000000000F00000000000F800000 000007C00000000007E00000000007FFFFF8000003FFFFFF000003FFFFFFE00001FFFFFF F800007FFFFFFC0001FFFFFFFE0007C0000FFF000F800000FF003F0000003F803E000000 1F807C0000000FC07C0000000FC0F800000007C0F800000007C0F800000007C0F8000000 07C0F800000007C0FC0000000FC07C0000000F807E0000001F803E0000001F001F000000 3E000F8000007C0007E00001F80001F80007E000007F003F8000001FFFFE00000001FFE0 00002C427DAC31>I<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC00 00000003FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC01FE000001FC07FFC00001FC1E07F00001FC38 01F80001FC7001FC0001FCE000FC0001FDC000FE0001FD8000FE0001FF80007F0001FF00 007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001FC00007F0001FC00 007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00 007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00 007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00 007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00 007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F457DC436>I<01E0 0007F80007F8000FFC000FFC000FFC000FFC0007F80007F80001E0000000000000000000 0000000000000000000000000000000000000000000000000000000000000001FC00FFFC 00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0003FE00FFFFF8FFFFF8FFFFF815437DC21C>I<00003C000000FF000000 FF000001FF800001FF800001FF800001FF800000FF000000FF0000003C00000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000007F80003FFF80003FFF80003FFF800000FF8000007F800000 3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 3F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F800000 3F803E003F807F003F80FF807F00FF807F00FF807E00FF807E00FF80FC007F00F8003C01 F0001E03E00007FF800001FE0000195785C21E>I<01FC00000000FFFC00000000FFFC00 000000FFFC0000000007FC0000000003FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 00000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00 1FFFE001FC001FFFE001FC001FFFE001FC000FFF0001FC0007F80001FC0007E00001FC00 07C00001FC0007800001FC000E000001FC001C000001FC0038000001FC0070000001FC00 E0000001FC01C0000001FC0380000001FC0700000001FC0F00000001FC3F80000001FC7F C0000001FCFFC0000001FDCFE0000001FF8FF0000001FF07F0000001FE03F8000001FC03 FC000001FC01FC000001FC00FE000001FC00FF000001FC007F000001FC003F800001FC00 3FC00001FC001FC00001FC000FE00001FC000FF00001FC0007F00001FC0007F80001FC00 03FC0001FC0003FE0001FC0003FF0003FE0007FF80FFFFF81FFFF8FFFFF81FFFF8FFFFF8 1FFFF82D457DC433>I<01FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC 0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0003FE00FFFFF8FFFFF8FFFF F815457DC41C>I<01FC00FF00001FE00000FFFC07FFE000FFFC0000FFFC0F03F801E07F 0000FFFC3C01FC07803F800007FC7000FE0E001FC00003FCE0007E1C000FC00001FDC000 7F38000FE00001FD80007F30000FE00001FF80003FF00007F00001FF00003FE00007F000 01FF00003FE00007F00001FE00003FC00007F00001FE00003FC00007F00001FE00003FC0 0007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC 00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007 F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC0000 3F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F000 01FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F80 0007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC 00003F800007F00001FC00003F800007F00001FC00003F800007F00001FC00003F800007 F00001FC00003F800007F00003FE00007FC0000FF800FFFFF81FFFFF03FFFFE0FFFFF81F FFFF03FFFFE0FFFFF81FFFFF03FFFFE04B2C7DAB52>I<01FC01FE0000FFFC07FFC000FF FC1E07F000FFFC3801F80007FC7001FC0003FCE000FC0001FDC000FE0001FD8000FE0001 FF80007F0001FF00007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001 FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001 FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001 FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001 FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001 FC00007F0001FC00007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F 2C7DAB36>I<00007F8000000003FFF00000000FC0FC0000003E001F0000007C000F8000 00F80007C00001F00003E00003E00001F00007C00000F8000FC00000FC000FC00000FC00 1F8000007E003F8000007F003F8000007F003F0000003F007F0000003F807F0000003F80 7F0000003F807F0000003F80FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0 FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0 7F0000003F807F0000003F807F8000007F803F8000007F003F8000007F001F8000007E00 1FC00000FE000FC00000FC000FE00001FC0007E00001F80003F00003F00001F80007E000 00FC000FC000003E001F0000001FC0FE00000007FFF8000000007F8000002A2E7DAC31> I<01FC03FC0000FFFC0FFF8000FFFC3C07E000FFFC7001F80007FDE000FE0001FD80007F 0001FF80003F8001FF00001FC001FE00001FE001FC00000FE001FC00000FF001FC000007 F001FC000007F801FC000003F801FC000003FC01FC000003FC01FC000003FC01FC000001 FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000001 FE01FC000001FE01FC000001FE01FC000001FE01FC000001FE01FC000003FC01FC000003 FC01FC000003FC01FC000007F801FC000007F801FC000007F001FC00000FF001FE00000F E001FE00001FC001FF00003FC001FF00003F8001FF80007E0001FDC000FC0001FCF003F8 0001FC3C0FE00001FC1FFF800001FC03FC000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000 0001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000003FE000000 00FFFFF8000000FFFFF8000000FFFFF80000002F3F7DAB36>I<00007F8003000003FFE0 0700000FE0780700003F801C0F00007E000E0F0000FC00071F0003F800039F0007F80001 BF0007F00001FF000FE00000FF001FE00000FF001FC00000FF003FC000007F003FC00000 7F007F8000007F007F8000007F007F8000007F00FF0000007F00FF0000007F00FF000000 7F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF0000007F00FF000000 7F00FF0000007F00FF0000007F007F8000007F007F8000007F007F8000007F003F800000 7F003FC000007F001FC000007F001FE00000FF000FE00000FF000FF00001FF0007F00001 FF0003F80003FF0001FC00077F0000FE000E7F00003F001C7F00000FC0F87F000003FFE0 7F0000007F007F00000000007F00000000007F00000000007F00000000007F0000000000 7F00000000007F00000000007F00000000007F00000000007F00000000007F0000000000 7F00000000007F00000000007F00000000007F0000000000FF800000003FFFFE0000003F FFFE0000003FFFFE2F3F7DAB33>I<03F803F0FFF81FFCFFF83C3EFFF8707F07F8E0FF03 F9C0FF01F980FF01FB80FF01FB007E01FB003C01FF000001FE000001FE000001FE000001 FE000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001 FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001 FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000003FF0000FF FFFE00FFFFFE00FFFFFE00202C7DAB26>I<003FE01801FFFC3807E01F780F0003F81E00 01F83C0000F87C00007878000078F8000038F8000038F8000018F8000018FC000018FC00 0018FE000018FF8000007FC000007FFC00003FFFE0001FFFFC000FFFFF0007FFFFC003FF FFE000FFFFF0001FFFF80000FFF800000FFC000003FCC00001FEC00000FEC000007EE000 007EE000003EE000003EF000003EF000003EF000003EF800003CFC00007CFC000078FE00 00F8FF0001F0F38003E0F1F00F80E07FFE00C00FF0001F2E7DAC26>I<00060000000600 00000600000006000000060000000E0000000E0000000E0000000E0000001E0000001E00 00001E0000003E0000007E0000007E000000FE000001FE000007FE00001FFFFFF0FFFFFF F0FFFFFFF000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00 0000FE000000FE000000FE000000FE000000FE000000FE000C00FE000C00FE000C00FE00 0C00FE000C00FE000C00FE000C00FE000C00FE000C00FE000C007E001C007F0018007F00 18003F0038001F8030001FC0700007E0E00001FFC000007F001E3E7EBC26>I<01FC0000 7F00FFFC003FFF00FFFC003FFF00FFFC003FFF0007FC0001FF0003FC0000FF0001FC0000 7F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC0000 7F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC0000 7F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC0000 7F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC0000 7F0001FC00007F0001FC0000FF0001FC0000FF0001FC0000FF0001FC0001FF0001FC0001 FF0000FC0001FF0000FE0003FF00007E00077F80007F000E7FC0003F001C7FFE000FC078 7FFE0003FFF07FFE00007F807F002F2D7DAB36>IIIII<3FFFFFFFE03FFFFFFFE03FC0003FE03F00003FC03C0000 7F80380000FF00380000FF00300001FE00700003FC00700003FC00700007F80060000FF0 0060000FF00060001FE00060003FC00060003FC00000007F80000000FF00000001FF0000 0001FE00000003FC00000007FC00000007F80000000FF00000001FF00000001FE0006000 3FC00060007F800060007F80006000FF0000C001FE0000C001FE0000C003FC0000C007F8 0000C007F80001C00FF00001C01FE00003C01FE00003C03FC00007807F80001F80FF8000 FF80FFFFFFFF80FFFFFFFF80232B7DAA2B>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: FA ecbx1440 14.4 45 /FA 45 122 df<000000007FFC0000000000001FFFFF800000000001FFFFFFE000000000 07FFFFFFF8000000003FFFC00FFC00000000FFFC0001FE00000001FFF000007F00000007 FFC00003FF0000000FFF800007FF8000001FFF00000FFF8000003FFF00000FFF8000003F FE00000FFF8000007FFC00000FFF8000007FFC00001FFFC00000FFFC00000FFF800000FF F800000FFF800000FFF800000FFF800000FFF8000007FF000000FFF8000003FE000000FF F8000000F8000000FFF800000000000000FFF800000000000000FFF800000000000000FF F800000000000000FFF800000000000000FFF800000000000000FFF800000000000000FF F800000000000000FFF800000000000000FFF800000000000000FFF80007FFFFC000FFFF FFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFF FFFFFFFFFFC00000FFF800000FFFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC000FFFF FFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFF FFF807FFFFFFC042547DD349>28 D<07E0001FF8003FFC007FFE007FFF00FFFF00FFFF80 FFFF80FFFF80FFFFC0FFFFC07FFFC07FFFC03FFFC01FFBC007E3C00003C00003C00003C0 0007C0000780000780000F80000F80000F00001F00001E00003E00003C00007C0000F800 01F80001F00003E00007C0001F80001F00001E00000C0000122776D225>39 D<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF807E0101076 8F25>46 D<0000001E00000000003E0000000000FE0000000003FE000000000FFE000000 007FFE00000007FFFE000003FFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FF F87FFE0000FC007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000007FFE000000 007FFE000000007FFE00007FFFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFFFC7FFFFFFFFFFC7F FFFFFFFFFC2E4E76CD42>49 D<00001FFE0000000001FFFFF00000000FFFFFFC0000003F FFFFFF8000007FFFFFFFE00001FF803FFFF00003FC0007FFFC0007F00001FFFE000FE000 00FFFF001F8000007FFF803F0000003FFF803F0000001FFFC07FE000001FFFE07FF80000 0FFFE07FFC00000FFFF0FFFC000007FFF0FFFE000007FFF0FFFE000003FFF8FFFE000003 FFF8FFFE000003FFF8FFFE000003FFF8FFFE000003FFF87FFC000003FFF87FFC000003FF F83FF8000003FFF81FF0000003FFF80380000003FFF80000000003FFF00000000007FFF0 0000000007FFF00000000007FFE0000000000FFFE0000000000FFFC0000000001FFFC000 0000001FFF80000000003FFF00000000003FFE00000000007FFC0000000000FFF8000000 0000FFF00000000001FFE00000000003FFC00000000007FF800000000007FF0000000000 0FFC00000000001FF800000000003FF000000000007FC00000000000FF800000000001FF 000000000003FC000000000007F800000000000FF00000F800001FE00000F800003FC000 00F800007F000000F80000FE000001F00001FC000001F00003F8000001F00007F0000001 F00007E0000001F0000F80000003F0001F00000003F0003E00000007F0007FFFFFFFFFF0 00FFFFFFFFFFE001FFFFFFFFFFE003FFFFFFFFFFE007FFFFFFFFFFE00FFFFFFFFFFFE01F FFFFFFFFFFE03FFFFFFFFFFFE07FFFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFC0FFFF FFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0354E7ACD42>I<000007FFC0000000007F FFFC00000003FFFFFF8000000FFFFFFFE000001FF803FFF800007FC000FFFC0000FE0000 3FFE0001FC00003FFF0003F800001FFF8003FE00001FFF8007FF80000FFFC007FFC0000F FFC00FFFC0000FFFE00FFFE0000FFFE00FFFE0000FFFE00FFFE0000FFFE00FFFE0000FFF E00FFFE0000FFFE00FFFE0000FFFE007FFC0000FFFE007FFC0000FFFC003FF80000FFFC0 01FF00001FFFC0003800001FFF80000000001FFF80000000003FFF00000000003FFF0000 0000007FFE00000000007FFC0000000000FFF80000000001FFF00000000003FFC0000000 000FFF80000000007FFE000000007FFFF8000000007FFFC0000000007FFFFC000000007F FFFF800000000003FFE000000000007FF800000000003FFE00000000001FFF0000000000 0FFF80000000000FFFC00000000007FFE00000000007FFF00000000003FFF80000000003 FFF80000000003FFFC0000000001FFFC0000000001FFFC0000000001FFFE0000000001FF FE0000000001FFFE03C0000001FFFE0FF0000001FFFE3FFC000001FFFE7FFE000001FFFE 7FFE000001FFFEFFFF000001FFFEFFFF000001FFFEFFFF000001FFFCFFFF000001FFFCFF FF000003FFFCFFFF000003FFF8FFFF000003FFF87FFE000003FFF07FFC000007FFF07FF8 000007FFE03FE000000FFFC01FC000001FFFC00FF000003FFF8007FE00007FFE0003FFE0 03FFFC0001FFFFFFFFF800007FFFFFFFE000000FFFFFFF00000001FFFFFC000000001FFF 800000374F7BCD42>I<0000000000FC00000000000001FC00000000000001FC00000000 000003FC00000000000007FC0000000000000FFC0000000000000FFC0000000000001FFC 0000000000003FFC0000000000007FFC0000000000007FFC000000000000FFFC00000000 0001FFFC000000000003FFFC000000000003FFFC000000000007FFFC00000000000FFFFC 00000000001FFFFC00000000001F7FFC00000000003E7FFC00000000007E7FFC00000000 00FC7FFC0000000000F87FFC0000000001F07FFC0000000003F07FFC0000000007E07FFC 0000000007C07FFC000000000F807FFC000000001F807FFC000000003F007FFC00000000 3E007FFC000000007C007FFC00000000FC007FFC00000001F8007FFC00000001F0007FFC 00000003E0007FFC00000007E0007FFC0000000FC0007FFC0000000F80007FFC0000001F 00007FFC0000003F00007FFC0000007E00007FFC0000007C00007FFC000000F800007FFC 000001F800007FFC000003F000007FFC000003E000007FFC000007C000007FFC00000FC0 00007FFC00001F8000007FFC00001F0000007FFC00003E0000007FFC00007E0000007FFC 0000FC0000007FFC0000FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FFFFFFFFFFFFFF80FFFF FFFFFFFFFF80FFFFFFFFFFFFFF8000000000FFFC000000000000FFFC000000000000FFFC 000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC00000000 0000FFFC000000000000FFFC000000000000FFFC000000000000FFFC000000000000FFFC 000000000000FFFC000000000000FFFC000000000000FFFC000000001FFFFFFFFF800000 1FFFFFFFFF8000001FFFFFFFFF8000001FFFFFFFFF8000001FFFFFFFFF80394F7CCE42> I<0180000000060001F00000003E0001FE000001FE0001FFF0003FFE0001FFFFFFFFFC00 01FFFFFFFFF80001FFFFFFFFF00001FFFFFFFFE00001FFFFFFFFC00001FFFFFFFF800001 FFFFFFFF000001FFFFFFFC000001FFFFFFF8000001FFFFFFE0000001FFFFFF00000001FF FFFC00000001F0FF8000000001F0000000000001F0000000000001F0000000000001F000 0000000001F0000000000001F0000000000001F0000000000001F0000000000001F00000 00000001F0000000000001F0000000000001F0000000000001F007FF80000001F03FFFF8 000001F0FFFFFE000001F3FFFFFF800001FFFC01FFE00001FFE0007FF80001FF00003FFC 0001FE00001FFE0001F800000FFF0001F000000FFF0001F0000007FF8001E0000007FFC0 0000000007FFC00000000007FFE00000000003FFE00000000003FFF00000000003FFF000 00000003FFF00000000003FFF00000000003FFF80000000003FFF80000000003FFF80300 000003FFF80FE0000003FFF83FF8000003FFF87FFC000003FFF87FFC000003FFF8FFFC00 0003FFF8FFFE000003FFF8FFFE000003FFF8FFFE000003FFF0FFFE000003FFF0FFFC0000 03FFF0FFFC000007FFF07FF8000007FFE07FF0000007FFE07FC0000007FFC03F0000000F FFC03F0000000FFF801F8000001FFF001FC000001FFF000FF000003FFE0007F80000FFFC 0003FE0001FFF00001FFE00FFFE000007FFFFFFF8000003FFFFFFF0000000FFFFFF80000 0001FFFFC0000000003FFC000000354F7ACD42>I<00000007FE0000000000FFFFC00000 0003FFFFF00000001FFFFFFC0000007FFC01FE000000FFE0007F000003FF80003F800007 FF00001F80000FFE00007FC0001FFC0000FFC0003FF80003FFE0007FF00003FFE000FFE0 0007FFE001FFE00007FFE003FFC00007FFE003FFC00007FFE007FF800007FFE007FF8000 07FFE00FFF800003FFC00FFF000003FFC01FFF000000FF001FFF0000007E001FFF000000 00003FFF00000000003FFF00000000003FFE00000000007FFE00000000007FFE00000000 007FFE003FF000007FFE01FFFF00007FFE07FFFFC000FFFE0FFFFFF000FFFE1F807FF800 FFFE3E001FFE00FFFE78000FFF00FFFEF00007FF80FFFEF00003FFC0FFFFE00003FFC0FF FFC00001FFE0FFFFC00001FFF0FFFF800001FFF0FFFF800000FFF8FFFF800000FFF8FFFF 000000FFFCFFFF000000FFFCFFFF000000FFFCFFFF000000FFFCFFFE000000FFFEFFFE00 0000FFFEFFFE000000FFFE7FFE000000FFFE7FFE000000FFFE7FFE000000FFFE7FFE0000 00FFFE7FFE000000FFFE7FFE000000FFFE3FFE000000FFFE3FFE000000FFFE3FFE000000 FFFE3FFF000000FFFE1FFF000000FFFC1FFF000000FFFC1FFF000000FFFC0FFF000000FF F80FFF000001FFF807FF000001FFF807FF800001FFF003FF800001FFE001FFC00003FFE0 01FFE00003FFC000FFE00007FF80007FF0000FFF00003FFC001FFE00001FFF00FFFC0000 07FFFFFFF0000003FFFFFFE0000000FFFFFF800000001FFFFC0000000003FFC00000374F 7BCD42>I<1F0000000000001F8000000000001FC000000000001FFF80000000001FFFFF FFFFFFFF1FFFFFFFFFFFFF1FFFFFFFFFFFFF1FFFFFFFFFFFFF3FFFFFFFFFFFFF3FFFFFFF FFFFFE3FFFFFFFFFFFFC3FFFFFFFFFFFF83FFFFFFFFFFFF03FFFFFFFFFFFF03FFFFFFFFF FFE03FFFFFFFFFFFC03FFFFFFFFFFF807FFFFFFFFFFF007F800000003E007E000000007E 007E00000000FC007C00000001F8007C00000003F0007C00000003E0007C00000007E000 7C0000000FC000F80000001F8000F80000003F0000F80000007E0000F80000007C000000 000000FC000000000001F8000000000003F0000000000003F0000000000007E000000000 000FE000000000001FC000000000001FC000000000003F8000000000003F800000000000 7F000000000000FF000000000000FF000000000001FF000000000001FE000000000003FE 000000000003FE000000000007FE000000000007FC00000000000FFC00000000000FFC00 000000000FFC00000000001FFC00000000001FFC00000000003FFC00000000003FFC0000 0000003FFC00000000007FF800000000007FF800000000007FF800000000007FF8000000 0000FFF80000000000FFF80000000000FFF80000000000FFF80000000000FFF800000000 00FFF80000000001FFF80000000001FFF80000000001FFF80000000001FFF80000000001 FFF80000000001FFF80000000001FFF80000000001FFF80000000001FFF80000000001FF F80000000001FFF80000000000FFF000000000007FE000000000003FC000000000001F80 000000385279D042>I<00000000003F00000000000000000000003F0000000000000000 0000007F80000000000000000000007F80000000000000000000007F8000000000000000 000000FFC000000000000000000000FFC000000000000000000001FFE000000000000000 000001FFE000000000000000000001FFE000000000000000000003FFF000000000000000 000003FFF000000000000000000007FFF800000000000000000007FFF800000000000000 000007FFF80000000000000000000FFFFC0000000000000000000FFFFC00000000000000 00001FFFFE0000000000000000001FFFFE0000000000000000001FFFFE00000000000000 00003FFFFF0000000000000000003EFFFF0000000000000000003E7FFF00000000000000 00007E7FFF8000000000000000007C3FFF800000000000000000FC3FFFC0000000000000 0000F83FFFC00000000000000000F81FFFC00000000000000001F81FFFE0000000000000 0001F00FFFE00000000000000003F00FFFF00000000000000003E00FFFF0000000000000 0003E007FFF00000000000000007E007FFF80000000000000007C003FFF8000000000000 000FC003FFFC000000000000000F8003FFFC000000000000000F8001FFFC000000000000 001F8001FFFE000000000000001F0001FFFE000000000000001F0000FFFE000000000000 003F0000FFFF000000000000003E00007FFF000000000000007E00007FFF800000000000 007C00007FFF800000000000007C00003FFF80000000000000FC00003FFFC00000000000 00F800001FFFC0000000000001F800001FFFE0000000000001F000001FFFE00000000000 01F000000FFFE0000000000003F000000FFFF0000000000003E0000007FFF00000000000 07E0000007FFF8000000000007C0000007FFF8000000000007FFFFFFFFFFF80000000000 0FFFFFFFFFFFFC00000000000FFFFFFFFFFFFC00000000000FFFFFFFFFFFFC0000000000 1FFFFFFFFFFFFE00000000001F00000000FFFE00000000003F00000000FFFF0000000000 3E00000000FFFF00000000003E000000007FFF00000000007E000000007FFF8000000000 7C000000003FFF8000000000FC000000003FFFC000000000F8000000003FFFC000000000 F8000000001FFFC000000001F8000000001FFFE000000001F0000000000FFFE000000003 F0000000000FFFF000000003E0000000000FFFF000000003E00000000007FFF000000007 E00000000007FFF800000007C00000000003FFF800000007C00000000003FFF80000000F 800000000003FFFC0000003FF00000000001FFFC0000FFFFFFF000000FFFFFFFFFC0FFFF FFF000000FFFFFFFFFC0FFFFFFF000000FFFFFFFFFC0FFFFFFF000000FFFFFFFFFC0FFFF FFF000000FFFFFFFFFC05A547CD363>65 DI<0000000003FFF0000007000000007FFFFF0000 0F00000007FFFFFFE0001F0000003FFFFFFFF8003F000000FFFFFFFFFE007F000003FFFF C003FF00FF00000FFFF800003FC1FF00003FFFC000000FE3FF0000FFFF00000003FFFF00 01FFFC00000001FFFF0003FFF800000000FFFF0007FFE0000000007FFF001FFFC0000000 003FFF003FFF80000000001FFF003FFF00000000000FFF007FFE000000000007FF00FFFC 000000000003FF01FFFC000000000003FF01FFF8000000000001FF03FFF0000000000001 FF07FFF0000000000000FF07FFF0000000000000FF0FFFE00000000000007F0FFFE00000 000000007F1FFFC00000000000007F1FFFC00000000000003F1FFFC00000000000003F3F FF800000000000003F3FFF800000000000001F3FFF800000000000001F7FFF8000000000 00001F7FFF800000000000001F7FFF80000000000000007FFF00000000000000007FFF00 00000000000000FFFF0000000000000000FFFF0000000000000000FFFF00000000000000 00FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF000000 0000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FF FF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000 0000007FFF00000000000000007FFF00000000000000007FFF80000000000000007FFF80 000000000000007FFF80000000000000003FFF800000000000001F3FFF80000000000000 1F3FFF800000000000001F1FFFC00000000000001F1FFFC00000000000001F1FFFC00000 000000003F0FFFE00000000000003F0FFFE00000000000003E07FFF00000000000003E07 FFF00000000000007E03FFF80000000000007C01FFF8000000000000FC01FFFC00000000 0000F800FFFC000000000001F8007FFE000000000003F0003FFF000000000003F0003FFF 800000000007E0001FFFC0000000000FC00007FFE0000000001F800003FFF8000000003F 000001FFFC00000000FE000000FFFF00000001FC0000003FFFC0000007F80000000FFFFC 00003FF000000003FFFFC001FFC000000000FFFFFFFFFF00000000003FFFFFFFFC000000 000007FFFFFFF00000000000007FFFFF8000000000000003FFF0000000505479D25F>I< FFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFF800000000FFFFFFFFFFFFFFFF00000000 FFFFFFFFFFFFFFFFE0000000FFFFFFFFFFFFFFFFF80000000007FFF000001FFFFE000000 0007FFF0000001FFFF0000000007FFF00000003FFFC000000007FFF00000000FFFE00000 0007FFF000000003FFF000000007FFF000000001FFF800000007FFF000000000FFFC0000 0007FFF0000000007FFE00000007FFF0000000003FFF00000007FFF0000000001FFF8000 0007FFF0000000000FFF80000007FFF00000000007FFC0000007FFF00000000007FFE000 0007FFF00000000003FFE0000007FFF00000000003FFF0000007FFF00000000001FFF000 0007FFF00000000001FFF8000007FFF00000000001FFF8000007FFF00000000000FFFC00 0007FFF00000000000FFFC000007FFF00000000000FFFC000007FFF00000000000FFFE00 0007FFF000000000007FFE000007FFF000000000007FFE000007FFF000000000007FFF00 0007FFF000000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF00 0007FFF000000000007FFF000007FFF000000000007FFF800007FFF000000000007FFF80 0007FFF000000000007FFF800007FFF000000000007FFF800007FFF000000000007FFF80 0007FFF000000000007FFF800007FFF000000000007FFF800007FFF000000000007FFF80 0007FFF000000000007FFF800007FFF000000000007FFF800007FFF000000000007FFF80 0007FFF000000000007FFF800007FFF000000000007FFF800007FFF000000000007FFF80 0007FFF000000000007FFF800007FFF000000000007FFF000007FFF000000000007FFF00 0007FFF000000000007FFF000007FFF000000000007FFF000007FFF000000000007FFF00 0007FFF000000000007FFE000007FFF000000000007FFE000007FFF00000000000FFFE00 0007FFF00000000000FFFC000007FFF00000000000FFFC000007FFF00000000000FFFC00 0007FFF00000000001FFF8000007FFF00000000001FFF8000007FFF00000000003FFF000 0007FFF00000000003FFF0000007FFF00000000007FFE0000007FFF00000000007FFE000 0007FFF0000000000FFFC0000007FFF0000000001FFF80000007FFF0000000001FFF0000 0007FFF0000000003FFE00000007FFF0000000007FFE00000007FFF000000001FFFC0000 0007FFF000000003FFF000000007FFF00000000FFFE000000007FFF00000003FFFC00000 0007FFF0000001FFFF8000000007FFF000001FFFFE000000FFFFFFFFFFFFFFFFF8000000 FFFFFFFFFFFFFFFFE0000000FFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFF800000000 FFFFFFFFFFFFFF000000000059527CD165>II<0000000003FFF00000070000000000007FFF FF00000F000000000007FFFFFFE0001F00000000003FFFFFFFF8003F0000000000FFFFFF FFFE007F0000000003FFFFC003FF00FF000000000FFFF800003FC1FF000000003FFFC000 000FE3FF00000000FFFF00000003FFFF00000001FFFC00000001FFFF00000003FFF80000 0000FFFF00000007FFE0000000007FFF0000001FFFC0000000003FFF0000003FFF800000 00001FFF0000003FFF00000000000FFF0000007FFE000000000007FF000000FFFC000000 000003FF000001FFFC000000000003FF000001FFF8000000000001FF000003FFF0000000 000001FF000007FFF0000000000000FF000007FFF0000000000000FF00000FFFE0000000 0000007F00000FFFE00000000000007F00001FFFC00000000000007F00001FFFC0000000 0000003F00001FFFC00000000000003F00003FFF800000000000003F00003FFF80000000 0000001F00003FFF800000000000001F00007FFF800000000000001F00007FFF80000000 0000001F00007FFF800000000000000000007FFF000000000000000000007FFF00000000 000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF00000000 000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF00000000 000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF00000000 000000000000FFFF00000000000000000000FFFF00000000000000000000FFFF00000000 000000000000FFFF00000000000000000000FFFF000000000000000000007FFF00000000 0000000000007FFF000000007FFFFFFFFF807FFF800000007FFFFFFFFF807FFF80000000 7FFFFFFFFF807FFF800000007FFFFFFFFF803FFF800000007FFFFFFFFF803FFF80000000 00007FFF00003FFFC000000000007FFF00001FFFC000000000007FFF00001FFFC0000000 00007FFF00001FFFC000000000007FFF00000FFFE000000000007FFF00000FFFE0000000 00007FFF000007FFF000000000007FFF000007FFF000000000007FFF000003FFF8000000 00007FFF000001FFF800000000007FFF000001FFFC00000000007FFF000000FFFE000000 00007FFF0000007FFE00000000007FFF0000003FFF00000000007FFF0000003FFF800000 00007FFF0000001FFFC000000000FFFF00000007FFE000000000FFFF00000003FFF80000 0001FFFF00000001FFFC00000001FFFF00000000FFFF00000003FFFF000000003FFFE000 000FEFFF000000000FFFFC00003FE3FF0000000003FFFFE001FF81FF0000000000FFFFFF FFFF00FF00000000003FFFFFFFFC003F000000000007FFFFFFF0000F0000000000007FFF FF80000300000000000003FFF80000000000595479D267>71 DII76 DI80 D<00000FFE00001C000000FFFFF0003C000007FFFFFC00 7C00001FFFFFFF00FC00007FFFFFFFC1FC0000FFF001FFE1FC0001FF80001FFBFC0003FF 000007FFFC0007FC000001FFFC000FF8000000FFFC001FF00000003FFC001FF00000001F FC003FE00000000FFC003FE00000000FFC007FE000000007FC007FC000000003FC007FC0 00000003FC007FC000000001FC00FFC000000001FC00FFC000000001FC00FFC000000000 FC00FFE000000000FC00FFE000000000FC00FFF0000000007C00FFF0000000007C00FFF8 000000007C00FFFC000000007C00FFFE0000000000007FFF0000000000007FFFC0000000 00007FFFF800000000007FFFFF80000000003FFFFFF8000000003FFFFFFFC00000001FFF FFFFFC0000000FFFFFFFFF8000000FFFFFFFFFF0000007FFFFFFFFFC000003FFFFFFFFFE 000001FFFFFFFFFF800000FFFFFFFFFFC000007FFFFFFFFFE000001FFFFFFFFFF0000007 FFFFFFFFF8000001FFFFFFFFF80000007FFFFFFFFC00000007FFFFFFFE000000007FFFFF FE0000000003FFFFFF00000000003FFFFF000000000003FFFF800000000000FFFF800000 0000003FFF8000000000001FFF8000000000000FFFC0000000000007FFC0000000000003 FFC0F80000000003FFC0F80000000001FFC0F80000000001FFC0F80000000001FFC0F800 00000000FFC0FC0000000000FFC0FC0000000000FFC0FC0000000000FFC0FC0000000000 FF80FE0000000000FF80FE0000000000FF80FF0000000001FF80FF0000000001FF00FF80 00000001FF00FFC000000003FE00FFE000000003FE00FFF000000007FC00FFFC0000000F F800FFFE0000001FF800FFFFC000003FF000FF7FF80000FFE000FE1FFF8007FFC000FE07 FFFFFFFF0000FC01FFFFFFFC0000F8007FFFFFF00000F0000FFFFFC00000E000007FFC00 00003A5479D249>83 D<3FFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFC3FFFFFFFFFFF FFFFFFFC3FFFFFFFFFFFFFFFFFFC3FFFFFFFFFFFFFFFFFFC3FFFC0007FFF0003FFFC3FFC 00007FFF00003FFC7FF000007FFF00000FFE7FE000007FFF000007FE7FC000007FFF0000 03FE7F8000007FFF000001FE7F0000007FFF000000FE7F0000007FFF000000FE7E000000 7FFF0000007E7E0000007FFF0000007E7E0000007FFF0000007E7C0000007FFF0000003E 7C0000007FFF0000003E7C0000007FFF0000003E7C0000007FFF0000003E7C0000007FFF 0000003EFC0000007FFF0000003FF80000007FFF0000001FF80000007FFF0000001FF800 00007FFF0000001FF80000007FFF0000001FF80000007FFF0000001FF80000007FFF0000 001F000000007FFF00000000000000007FFF00000000000000007FFF0000000000000000 7FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF00000000 000000007FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF 00000000000000007FFF00000000000000007FFF00000000000000007FFF000000000000 00007FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF0000 0000000000007FFF00000000000000007FFF00000000000000007FFF0000000000000000 7FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF00000000 000000007FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF 00000000000000007FFF00000000000000007FFF00000000000000007FFF000000000000 00007FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF0000 0000000000007FFF00000000000000007FFF00000000000000007FFF0000000000000000 7FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF00000000 000000007FFF00000000000000007FFF00000000000000007FFF00000000000000007FFF 00000000000000007FFF000000000001FFFFFFFFFFFFC0000001FFFFFFFFFFFFC0000001 FFFFFFFFFFFFC0000001FFFFFFFFFFFFC0000001FFFFFFFFFFFFC00050517BD05B>I<00 003FFE000000000007FFFFE0000000001FFFFFFC000000007FFFFFFF00000001FFC00FFF C0000003FE0003FFE0000007FF0000FFF0000007FF80007FF800000FFFC0007FFC00000F FFC0003FFE00000FFFC0003FFE00000FFFC0001FFF00000FFFC0001FFF00000FFFC0001F FF00000FFFC0000FFF800007FF80000FFF800003FF00000FFF800001FE00000FFF800000 0000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000F FF8000000000000FFF800000000007FFFF8000000003FFFFFF800000007FFFFFFF800000 03FFFFFFFF8000001FFFF00FFF8000007FFF000FFF800000FFFC000FFF800003FFF0000F FF800007FFC0000FFF80000FFF80000FFF80001FFF00000FFF80003FFF00000FFF80003F FE00000FFF80007FFC00000FFF80007FFC00000FFF81F0FFFC00000FFF81F0FFF800000F FF81F0FFF800000FFF81F0FFF800000FFF81F0FFF800001FFF81F0FFF800001FFF81F0FF FC00003FFF81F07FFC00003FFF81F07FFE00007FFF81F03FFE0000F7FFC3F03FFF0001E3 FFC3E01FFFC007E3FFFFE007FFF01F81FFFFC003FFFFFF00FFFF8000FFFFFC007FFF0000 1FFFF0003FFC000001FF800007F0003C387CB642>97 D<003FF8000000000000FFFFF800 0000000000FFFFF8000000000000FFFFF8000000000000FFFFF8000000000000FFFFF800 000000000003FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 7FF000000000FFF807FFFF00000000FFF81FFFFFC0000000FFF87FFFFFF0000000FFF9FF 007FFC000000FFFFF8001FFF000000FFFFE00007FF800000FFFF800003FFC00000FFFF00 0001FFE00000FFFE000000FFF00000FFFC000000FFF00000FFF80000007FF80000FFF800 00007FFC0000FFF80000003FFC0000FFF80000003FFE0000FFF80000003FFE0000FFF800 00003FFE0000FFF80000003FFF0000FFF80000001FFF0000FFF80000001FFF0000FFF800 00001FFF0000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF800 00001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF800 00001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF800 00001FFF8000FFF80000001FFF8000FFF80000001FFF0000FFF80000001FFF0000FFF800 00001FFF0000FFF80000003FFF0000FFF80000003FFE0000FFF80000003FFE0000FFF800 00003FFC0000FFF80000007FFC0000FFF80000007FF80000FFFC000000FFF80000FFFC00 0000FFF00000FFFE000001FFE00000FFFF000003FFC00000FFFF800007FF800000FFCFE0 000FFF000000FF87F0003FFE000000FF01FE01FFF8000000FE00FFFFFFF0000000FC003F FFFFC0000000F80007FFFE00000000000000FFE000000041547DD249>I<000003FFE000 0000003FFFFE00000000FFFFFF80000003FFFFFFE000000FFF003FF800003FFC0007FC00 007FF8000FFE0000FFF0001FFE0001FFE0003FFF0003FFC0003FFF0007FF80003FFF0007 FF80003FFF000FFF00003FFF001FFF00003FFF001FFE00003FFF003FFE00001FFE003FFE 00000FFC003FFE000007F8007FFE00000000007FFC00000000007FFC00000000007FFC00 00000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000 000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC0000000000FFFC000000 0000FFFC0000000000FFFC0000000000FFFC00000000007FFC00000000007FFE00000000 007FFE00000000007FFE00000000003FFE00000000003FFF00000000001FFF0000000F80 1FFF0000000F800FFF8000001F800FFF8000001F0007FFC000003F0003FFE000003E0001 FFF000007E0000FFF80000FC00007FFC0001F800003FFF0007F000000FFFC01FE0000007 FFFFFF80000001FFFFFE000000003FFFF80000000003FF80000031387CB63A>I<000000 000003FF8000000000000FFFFF8000000000000FFFFF8000000000000FFFFF8000000000 000FFFFF8000000000000FFFFF800000000000003FFF800000000000000FFF8000000000 00000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000 00000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000 00000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000 00000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000 00000FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000 00000FFF8000000003FF800FFF800000003FFFF80FFF80000001FFFFFE0FFF80000007FF FFFF8FFF8000001FFFC03FEFFF8000003FFE0007FFFF8000007FF80001FFFF800000FFF0 0000FFFF800001FFE000007FFF800003FFC000003FFF800007FF8000001FFF80000FFF80 00000FFF80000FFF0000000FFF80001FFF0000000FFF80001FFE0000000FFF80003FFE00 00000FFF80003FFE0000000FFF80007FFE0000000FFF80007FFC0000000FFF80007FFC00 00000FFF80007FFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC00 00000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC00 00000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC00 00000FFF8000FFFC0000000FFF8000FFFC0000000FFF80007FFC0000000FFF80007FFC00 00000FFF80007FFC0000000FFF80007FFE0000000FFF80003FFE0000000FFF80003FFE00 00000FFF80003FFE0000000FFF80001FFE0000000FFF80001FFF0000000FFF80000FFF00 00001FFF800007FF8000003FFF800007FF8000007FFF800003FFC00000FFFF800001FFE0 0001FFFF800000FFF00003FFFFE000007FFC000FEFFFFF80001FFF007F8FFFFF800007FF FFFF0FFFFF800001FFFFFC0FFFFF8000007FFFE00FFFFF80000007FF000FFE000041547C D249>I<000007FF80000000007FFFF800000001FFFFFE00000007FFFFFF8000001FFF03 FFE000003FFC007FF000007FF0003FF80000FFE0001FFC0001FFC0000FFC0003FF800007 FE0007FF800007FF000FFF000003FF000FFF000003FF801FFE000003FF801FFE000001FF 803FFE000001FFC03FFE000001FFC03FFE000001FFC07FFC000001FFC07FFC000001FFE0 7FFC000000FFE07FFC000000FFE0FFFC000000FFE0FFFC000000FFE0FFFFFFFFFFFFE0FF FFFFFFFFFFE0FFFFFFFFFFFFE0FFFFFFFFFFFFE0FFFC0000000000FFFC0000000000FFFC 0000000000FFFC0000000000FFFC0000000000FFFC00000000007FFC00000000007FFC00 000000007FFC00000000007FFE00000000003FFE00000000003FFE00000000003FFE0000 0003E01FFF00000003E01FFF00000007E00FFF00000007C007FF8000000FC007FF800000 0F8003FFC000001F8001FFE000003F0000FFF000007E00007FFC0001FC00001FFF0007F8 00000FFFE03FF0000003FFFFFFC0000000FFFFFF800000003FFFFC0000000001FFE00000 33387CB63C>I<0000001FF800000003FFFE0000000FFFFF8000003FFFFFC00000FFF83F E00003FFE0FFF00007FF80FFF0000FFF01FFF8001FFF01FFF8003FFE01FFF8003FFE01FF F8007FFC01FFF8007FFC01FFF8007FFC00FFF000FFF800FFF000FFF8007FE000FFF8001F 8000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF8000000FFFFFFFFC000FFFFFFFFC000FFFFFFFFC000FFFFFFFFC0 00FFFFFFFFC00000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF8000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE00 00FFFFFFFE00002D547CD328>I<00001FFE0000FE000001FFFFE007FF80000FFFFFFC1F FFC0003FFFFFFF7FFFE0007FF807FFFF07E001FFE001FFF07FE003FFC000FFF07FE007FF 80007FF83FE007FF00003FF83FC00FFF00003FFC1FC01FFF00003FFE07001FFE00001FFE 00001FFE00001FFE00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE 00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF 00003FFE00001FFF00001FFE00001FFE00001FFE00001FFE00001FFF00003FFE00000FFF 00003FFC000007FF00003FF8000007FF80007FF8000003FFC000FFF0000001FFE001FFE0 000000FFF807FF80000001FFFFFFFF00000003EFFFFFFC00000003C1FFFFE000000007C0 1FFE00000000078000000000000007800000000000000FC00000000000000FC000000000 00000FC00000000000000FE00000000000000FE00000000000000FF00000000000000FFC 0000000000000FFFFFFFFE00000007FFFFFFFFF0000007FFFFFFFFFC000007FFFFFFFFFF 800003FFFFFFFFFFC00003FFFFFFFFFFF00001FFFFFFFFFFF80000FFFFFFFFFFFC00007F FFFFFFFFFC0001FFFFFFFFFFFE0007FFFFFFFFFFFE000FFC000003FFFF001FF80000003F FF003FF00000000FFF007FE000000007FF807FE000000003FF80FFC000000003FF80FFC0 00000001FF80FFC000000001FF80FFC000000001FF80FFC000000001FF80FFC000000001 FF80FFE000000003FF807FE000000003FF007FF000000007FF003FF000000007FE001FF8 0000000FFC001FFE0000003FFC0007FF0000007FF00003FFC00001FFE00000FFFC001FFF 8000003FFFFFFFFE0000000FFFFFFFF800000001FFFFFFC0000000000FFFF80000003B4F 7CB542>I<003FF8000000000000FFFFF8000000000000FFFFF8000000000000FFFFF800 0000000000FFFFF8000000000000FFFFF800000000000003FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF800 000000000000FFF800000000000000FFF8001FFC00000000FFF800FFFF80000000FFF803 FFFFE0000000FFF80FFFFFF8000000FFF81FC07FFC000000FFF87E003FFE000000FFF8F8 001FFF000000FFF9F0001FFF000000FFF9E0000FFF800000FFFBC0000FFF800000FFFF80 000FFF800000FFFF000007FFC00000FFFF000007FFC00000FFFE000007FFC00000FFFE00 0007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC00 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC000FFFFFFF807FFFFFFC0FFFFFFF8 07FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC042537CD2 49>I<003F000000FFC00001FFE00003FFF00003FFF00007FFF80007FFF80007FFF80007 FFF80007FFF80007FFF80003FFF00003FFF00001FFE00000FFC000003F00000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000001FF800FFFFF800FFFFF800FFFFF800FFFFF800FF FFF80001FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800FFFFFFF0FF FFFFF0FFFFFFF0FFFFFFF0FFFFFFF01C547CD324>I<003FF80000000000FFFFF8000000 0000FFFFF80000000000FFFFF80000000000FFFFF80000000000FFFFF8000000000003FF F8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000 000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FF F8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000 000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FF F8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000 000000FFF8000000000000FFF80007FFFFF000FFF80007FFFFF000FFF80007FFFFF000FF F80007FFFFF000FFF80007FFFFF000FFF800007FF00000FFF800003FC00000FFF800007F 800000FFF80000FF000000FFF80001FC000000FFF80003F8000000FFF8000FF0000000FF F8001FE0000000FFF8003FC0000000FFF8007F00000000FFF800FE00000000FFF803FC00 000000FFF807F800000000FFF80FF000000000FFF81FE000000000FFF83FF000000000FF F87FF800000000FFF9FFF800000000FFFBFFFC00000000FFFFFFFE00000000FFFFFFFE00 000000FFFFFFFF00000000FFFFBFFF80000000FFFF1FFFC0000000FFFE1FFFC0000000FF FC0FFFE0000000FFF007FFF0000000FFF003FFF8000000FFF003FFF8000000FFF001FFFC 000000FFF000FFFE000000FFF0007FFE000000FFF0007FFF000000FFF0003FFF800000FF F0001FFFC00000FFF0001FFFC00000FFF0000FFFE00000FFF00007FFF00000FFF00003FF F80000FFF00003FFF80000FFF00001FFFC0000FFF00000FFFE0000FFF00000FFFF00FFFF FFF00FFFFFFEFFFFFFF00FFFFFFEFFFFFFF00FFFFFFEFFFFFFF00FFFFFFEFFFFFFF00FFF FFFE3F537DD245>107 D<003FF800FFFFF800FFFFF800FFFFF800FFFFF800FFFFF80003 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000 FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF80000FFF800FF FFFFF8FFFFFFF8FFFFFFF8FFFFFFF8FFFFFFF81D537CD224>I<003FF0001FF8000001FF 800000FFFFF000FFFF80000FFFF80000FFFFF003FFFFE0003FFFFE0000FFFFF00FFFFFF0 00FFFFFF0000FFFFF03F80FFF803F80FFF8000FFFFF07E007FFC07E007FFC00003FFF0F8 003FFE0F8003FFE00000FFF1F0001FFE1F0001FFE00000FFF3E0001FFF3E0001FFF00000 FFF3C0001FFF3C0001FFF00000FFF780001FFF780001FFF00000FFF700000FFFF00000FF F80000FFFF00000FFFF00000FFF80000FFFE00000FFFE00000FFF80000FFFE00000FFFE0 0000FFF80000FFFC00000FFFC00000FFF80000FFFC00000FFFC00000FFF80000FFFC0000 0FFFC00000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FF F800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF8 0000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF8000 00FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000F FF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF8 00000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF800 00FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000 FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF 800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800 000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000 FFF800000FFF800000FFF80000FFF800000FFF800000FFF80000FFF800000FFF800000FF F80000FFF800000FFF800000FFF800FFFFFFF80FFFFFFF80FFFFFFF8FFFFFFF80FFFFFFF 80FFFFFFF8FFFFFFF80FFFFFFF80FFFFFFF8FFFFFFF80FFFFFFF80FFFFFFF8FFFFFFF80F FFFFFF80FFFFFFF865367BB56E>I<003FF0001FFC000000FFFFF000FFFF800000FFFFF0 03FFFFE00000FFFFF00FFFFFF80000FFFFF01FC07FFC0000FFFFF07E003FFE000003FFF0 F8001FFF000000FFF1F0001FFF000000FFF1E0000FFF800000FFF3C0000FFF800000FFF7 80000FFF800000FFF7000007FFC00000FFFF000007FFC00000FFFE000007FFC00000FFFE 000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8 000007FFC00000FFF8000007FFC00000FFF8000007FFC000FFFFFFF807FFFFFFC0FFFFFF F807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC042367C B549>I<000001FFC000000000003FFFFE0000000000FFFFFF8000000003FFFFFFE00000 000FFF80FFF80000003FFC001FFE0000007FF00007FF000000FFE00003FF800001FFC000 01FFC00003FF800000FFE00003FF0000007FE00007FF0000007FF0000FFF0000007FF800 0FFE0000003FF8001FFE0000003FFC001FFE0000003FFC003FFE0000003FFE003FFC0000 001FFE003FFC0000001FFE007FFC0000001FFF007FFC0000001FFF007FFC0000001FFF00 7FFC0000001FFF00FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000 001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80 FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF80FFFC0000001FFF807FFC0000 001FFF007FFC0000001FFF007FFC0000001FFF003FFC0000001FFE003FFE0000003FFE00 3FFE0000003FFE001FFE0000003FFC001FFE0000003FFC000FFF0000007FF8000FFF0000 007FF80007FF800000FFF00003FF800000FFE00001FFC00001FFC00000FFE00003FF8000 007FF00007FF0000003FFC001FFE0000001FFF80FFFC00000007FFFFFFF000000001FFFF FFC0000000003FFFFE000000000003FFE000000039387CB642>I<003FF8007FF0000000 FFFFF807FFFF000000FFFFF81FFFFFC00000FFFFF87FFFFFF00000FFFFF9FF00FFFC0000 FFFFFFF8003FFF000003FFFFE0000FFF800000FFFF800007FFC00000FFFF000003FFE000 00FFFE000003FFF00000FFFC000001FFF00000FFF8000000FFF80000FFF8000000FFFC00 00FFF80000007FFC0000FFF80000007FFE0000FFF80000007FFE0000FFF80000003FFE00 00FFF80000003FFF0000FFF80000003FFF0000FFF80000003FFF0000FFF80000003FFF00 00FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF80 00FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF80 00FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF8000FFF80000001FFF80 00FFF80000001FFF8000FFF80000003FFF0000FFF80000003FFF0000FFF80000003FFF00 00FFF80000003FFF0000FFF80000007FFE0000FFF80000007FFE0000FFF80000007FFC00 00FFF8000000FFFC0000FFF8000000FFF80000FFFC000001FFF80000FFFC000001FFF000 00FFFE000003FFE00000FFFF000007FFC00000FFFF80000FFF800000FFFFE0001FFF0000 00FFFFF0007FFE000000FFF9FE01FFF8000000FFF8FFFFFFF0000000FFF83FFFFFC00000 00FFF807FFFE00000000FFF800FFE000000000FFF800000000000000FFF8000000000000 00FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000000 00FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000000 00FFF800000000000000FFF800000000000000FFF800000000000000FFF8000000000000 00FFF800000000000000FFF800000000000000FFF8000000000000FFFFFFF80000000000 FFFFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000 414D7DB549>I<000003FF80000F800000003FFFF0001F80000000FFFFFC003F80000007 FFFFFF003F8000000FFFC03F807F8000003FFF000FC07F8000007FFC0003E0FF800000FF F80001F1FF800001FFF00000F9FF800003FFE000007FFF800007FFC000007FFF80000FFF C000003FFF80000FFF8000001FFF80001FFF8000001FFF80001FFF0000000FFF80003FFF 0000000FFF80003FFF0000000FFF80007FFE0000000FFF80007FFE0000000FFF80007FFE 0000000FFF80007FFE0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC 0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC 0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF8000FFFC 0000000FFF8000FFFC0000000FFF8000FFFC0000000FFF80007FFE0000000FFF80007FFE 0000000FFF80007FFE0000000FFF80007FFE0000000FFF80003FFE0000000FFF80003FFF 0000000FFF80003FFF0000000FFF80001FFF0000000FFF80001FFF8000001FFF80000FFF 8000003FFF800007FFC000003FFF800007FFE000007FFF800003FFE00000FFFF800001FF F00001FFFF800000FFF80007EFFF8000003FFE000FCFFF8000001FFF807F8FFF80000007 FFFFFE0FFF80000001FFFFF80FFF800000007FFFE00FFF8000000007FF000FFF80000000 0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000 0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000 0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000 0000000FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000 0000000FFF8000000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF800000 00000FFFFFFF80000000000FFFFFFF80414D7CB545>I<003FF001FC00FFFFF00FFF80FF FFF01FFFE0FFFFF07FFFF0FFFFF0FE1FF8FFFFF1F83FF801FFF1F07FFC00FFF3E07FFC00 FFF3C07FFC00FFF7807FFC00FFF7807FFC00FFFF007FFC00FFFF003FF800FFFE001FF000 FFFE000FE000FFFE00000000FFFC00000000FFFC00000000FFFC00000000FFFC00000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000 FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000FFFFFFFE0000FF FFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE00002E367DB535>I<0003FFC00E00 001FFFFC1E0000FFFFFF7E0003FFFFFFFE0007FE003FFE000FF0000FFE001FE00003FE00 3FC00001FE003F800000FE007F800000FE007F0000007E007F0000007E00FF0000003E00 FF0000003E00FF8000003E00FF8000003E00FFC000003E00FFF000000000FFFC00000000 FFFF800000007FFFFE0000007FFFFFF000003FFFFFFE00003FFFFFFF80001FFFFFFFE000 0FFFFFFFF00007FFFFFFFC0003FFFFFFFE0000FFFFFFFF00003FFFFFFF00000FFFFFFF80 0001FFFFFF8000000FFFFFC00000003FFFC000000007FFE000000001FFE0F8000000FFE0 F80000007FE0FC0000003FE0FC0000003FE0FC0000001FE0FE0000001FE0FE0000001FE0 FE0000001FC0FF0000001FC0FF8000003FC0FF8000003F80FFC000003F80FFE000007F00 FFF80000FF00FFFC0003FE00FFFF801FFC00FE7FFFFFF000F81FFFFFC000F007FFFF0000 E0007FF000002B387CB634>I<00007C00000000007C00000000007C00000000007C0000 0000007C00000000007C0000000000FC0000000000FC0000000000FC0000000000FC0000 000001FC0000000001FC0000000001FC0000000003FC0000000003FC0000000007FC0000 000007FC000000000FFC000000001FFC000000003FFC000000007FFC00000000FFFC0000 0003FFFC0000000FFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE00FFFFFFFFFE 00007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC0000 00007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC0000 00007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC0000 00007FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC0000 00007FFC000000007FFC000000007FFC000000007FFC000F80007FFC000F80007FFC000F 80007FFC000F80007FFC000F80007FFC000F80007FFC000F80007FFC000F80007FFC000F 80007FFC000F80007FFC000F80007FFC001F00003FFE001F00003FFE001F00001FFE003E 00001FFF003E00000FFF807C000007FFC1F8000003FFFFF0000000FFFFE00000003FFF80 00000003FE0000294D7ECB33>I<003FF8000001FFC000FFFFF80007FFFFC000FFFFF800 07FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC00003FFF800 001FFFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF800 0007FFC00000FFF800000FFFC00000FFF800000FFFC00000FFF800000FFFC00000FFF800 001FFFC00000FFF800001FFFC00000FFF800003FFFC000007FF800003FFFC000007FF800 007FFFC000003FFC0000F7FFC000003FFC0001E7FFF000001FFE0007C7FFFFC0000FFF80 1F87FFFFC00007FFFFFF07FFFFC00001FFFFFC07FFFFC000007FFFF007FFFFC0000007FF C007FF000042377CB549>I120 DI E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 1073 333 a FA(Pla)l(y)l(er's)45 b(Handb)t(o)t(ok)d(for)i(Cross\034re)1574 683 y Fz(v2.0-dev-r8387:8393) 1300 1152 y(compiled,)31 b(edited,)i(and)f(written)h(b)m(y)928 1503 y(Brian)e(Thomas,)i(Klaus)e(Elsb)s(ernd,)i(and)g(John)g(W)f(Klar)p eop end %%Page: 2 2 TeXDict begin 2 1 bop 1740 650 a FA(Con)l(ten)l(ts)227 1272 y Fy(List)37 b(of)h(T)-9 b(ables)2781 b(iii)227 1486 y(1)91 b(In)m(tro)s(duction)2717 b(1)374 1602 y Fz(1.1)99 b(What)33 b(is)f Fx(Cross\034re)i Fz(?)142 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(1)598 1718 y(1.1.1)111 b(What)33 b(is)f(included)g(in)g(this)g(do)s(cumen)m(t?)43 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(1)598 1834 y(1.1.2)111 b(Getting)31 b(started:)44 b(b)s(eginning)31 b(pla)m(y)m(ers)c(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) g(.)g(.)g(.)130 b(1)374 1951 y(1.2)99 b Fx(Cross\034re)34 b Fz(Mailing)c(lists)35 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(3)374 2067 y(1.3)99 b(Obtaining)31 b Fx(Cross\034re)56 b Fz(.)50 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(3)374 2183 y(1.4)99 b(DOCUMENT)35 b(CREDITS)48 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) 130 b(3)227 2397 y Fy(2)91 b(Ab)s(out)37 b(Characters)2454 b(5)374 2513 y Fz(2.1)99 b(Character)33 b(A)m(ttributes)68 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(5)598 2629 y(2.1.1)111 b(Character)33 b(Stats)55 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) g(.)130 b(5)598 2746 y(2.1.2)111 b(Character)33 b(Classes)44 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(8)374 2862 y(2.2)99 b(Generating)32 b(a)g(c)m(haracter)61 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) g(.)82 b(10)227 3075 y Fy(3)91 b(Pla)m(ying)36 b Fx(Cross\034re)2506 b Fy(12)374 3192 y Fz(3.1)99 b(Basics)81 b(.)50 b(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(12)598 3308 y(3.1.1)111 b(Ho)m(w)33 b(to)f(do)h(simple)e(stu\033)66 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) f(.)h(.)g(.)g(.)g(.)82 b(12)598 3424 y(3.1.2)111 b(Sa)m(ving)32 b(the)h(game)f(and)h(ending)f(the)h Fx(Cross\034re)h Fz(session:)62 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)82 b(14)598 3540 y(3.1.3)111 b(Ab)s(out)32 b(NPCs)100 b(.)50 b(.)f(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) g(.)g(.)g(.)82 b(14)598 3657 y(3.1.4)111 b(Imp)s(ortan)m(t)32 b(sp)s(ecial)f(items)96 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(14)374 3773 y(3.2)99 b(Matters)33 b(of)f(life)f(and)i(death)50 b(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g (.)g(.)g(.)82 b(15)598 3889 y(3.2.1)111 b(A)m(ttac)m(k)34 b(system)40 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(15)598 4005 y(3.2.2)111 b(Exp)s(erience)30 b(.)50 b(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)f(.)h(.)g(.)g(.)g(.)82 b(16)598 4122 y(3.2.3)111 b(Calculation)30 b(of)i(selected)i(secondary)g(stats)77 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(16)598 4238 y(3.2.4)111 b(Death)33 b Fw(\000)23 b(\000)g(\000)33 b Fz(the)f(ultimate)f(p)s(enalt)m(y?)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(19)374 4354 y(3.3)99 b(Some)32 b(adv)-5 b(anced)33 b(stu\033)90 b(.)50 b(.)f(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) g(.)g(.)g(.)82 b(19)598 4470 y(3.3.1)111 b(Some)32 b(useful)h(adv)-5 b(anced)33 b(commands)80 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)f(.)h(.)g(.)g(.)g(.)82 b(19)598 4586 y(3.3.2)111 b(Pla)m(ying)32 b(with)g(other)g(p)s(eople)84 b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(20)227 4800 y Fy(4)91 b(Magic)37 b(System)2590 b(21)374 4916 y Fz(4.1)99 b(Description)90 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) f(.)h(.)g(.)g(.)g(.)82 b(21)374 5033 y(4.2)99 b(Learning)32 b(sp)s(ells)91 b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(21)374 5149 y(4.3)99 b(Magic)32 b(paths)54 b(.)c(.)g(.)g(.)g(.)g(.)g (.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(22)374 5265 y(4.4)99 b(Multiple)31 b(go)s(ds)68 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) g(.)g(.)g(.)82 b(23)598 5381 y(4.4.1)111 b(Joining)31 b(a)h(cult)63 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(23)598 5498 y(4.4.2)111 b(Example)32 b(go)s(d)90 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(25)374 5614 y(4.5)99 b(Alc)m(hem)m(y)55 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) h(.)g(.)g(.)g(.)82 b(25)374 5730 y(4.6)99 b(Rune)33 b(magic)70 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(25)1969 6057 y(ii)p eop end %%Page: 3 3 TeXDict begin 3 2 bop 227 333 a Fy(5)91 b(Skills)35 b(System)2629 b(28)374 449 y Fz(5.1)99 b(Description)90 b(.)50 b(.)g(.)g(.)g(.)g(.)g (.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(28)374 565 y(5.2)99 b(Ab)s(out)32 b(exp)s(erience)i(and)f(skills)88 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f (.)h(.)g(.)g(.)g(.)82 b(28)598 682 y(5.2.1)111 b(Asso)s(ciated)33 b(and)f(miscellaneous)f(skills)75 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(28)598 798 y(5.2.2)111 b(Restrictions)32 b(on)g(skills)g(use)h(and)g(gaining)d(exp)s(erience) 52 b(.)e(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(29)598 914 y(5.2.3)111 b(Algorithm)30 b(for)i(Exp)s(erience)i(Gain)d(under)i(the)g(skills)e (system)85 b(.)50 b(.)g(.)g(.)82 b(29)374 1030 y(5.3)99 b(Ho)m(w)33 b(skills)e(are)i(used)69 b(.)50 b(.)g(.)f(.)h(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.) g(.)g(.)g(.)82 b(30)374 1146 y(5.4)99 b(A)m(cquiring)32 b(skills)73 b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(30)227 1360 y Fy(6)91 b(Equipmen)m(t)2742 b(32)374 1476 y Fz(6.1)99 b(Going)31 b(to)h(mark)m(et..)49 b(.)h(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)f(.)h(.)g(.)g(.)g(.)82 b(32)598 1593 y(6.1.1)111 b(Some)32 b(notes)h(ab)s(out)f(shopping)91 b(.)50 b(.)g(.)g(.)f(.)h(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(32)598 1709 y(6.1.2)111 b(Plundering)32 b(shops)70 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(32)374 1825 y(6.2)99 b(Items)33 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) h(.)g(.)g(.)g(.)82 b(32)374 1941 y(6.3)99 b(Encum)m(brance)77 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.) h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(34)598 2058 y(6.3.1)111 b(Ho)m(w)33 b(encum)m(brance)h(is)e (calculated)82 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)82 b(34)374 2174 y(6.4)99 b(Enc)m(han)m(tmen)m(ts)50 b(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(34)598 2290 y(6.4.1)111 b(Enc)m(han)m(ting)33 b(armour)54 b(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(34)598 2406 y(6.4.2)111 b(Enc)m(han)m(ting)33 b(w)m(eap)s(ons)84 b(.)50 b(.)g(.)g(.)g(.)g(.)g (.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(35)227 2620 y Fy(7)91 b(Hin)m(ts)36 b(on)h(pla)m(ying)g Fx(Cross\034re)2062 b Fy(36)374 2736 y Fz(7.1)99 b(Beginning)31 b(pla)m(y)m(ers)54 b(.)c(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(36)374 2853 y(7.2)99 b(Priorities)30 b(for)i(lo)m(w-lev)m(el)g(c)m (haracters)98 b(.)50 b(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(36)227 3066 y Fy(A)62 b(Pla)m(y)m(er)36 b(Commands)2383 b(38)227 3280 y(B)67 b(Skills)3018 b(40)227 3494 y(C)66 b(Description)35 b(of)j(Go)s(ds)2298 b(43)1956 6057 y Fz(iii)p eop end %%Page: 4 4 TeXDict begin 4 3 bop 1607 650 a FA(List)44 b(of)g(T)-11 b(ables)374 1174 y Fz(2.1)99 b(Selected)33 b(primary)e(stat)i(b)s(on)m (uses/p)s(enalties.)78 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f (.)h(.)g(.)g(.)g(.)130 b(6)374 1291 y(2.2)99 b Fx(Cross\034re)34 b Fz(c)m(haracter)f(classes.)138 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)f (.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)130 b(8)374 1407 y(2.3)99 b(Starting)31 b(equipmen)m(t)i(b)m(y)g(c)m (haracter)h(class.)91 b(.)50 b(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)f(.)h(.)g(.)g(.)g(.)130 b(9)374 1523 y(2.4)99 b(Starting)31 b(skills)64 b(.)50 b(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(10)374 1722 y(3.1)99 b(Relationship)30 b(b)s(et)m(w)m(een)35 b(exp)s(erience)f(and)e Fv(level)i Fz(for)e(the)h(\034rst)g(10)f(lev)m (els.)84 b(.)50 b(.)82 b(16)374 1839 y(3.2)99 b(W)-8 b(eap)s(on)32 b(factor)h(\()p Fv(WpnF)p Fz(\))g(for)f(selected)h(w)m (eap)s(ons)46 b(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g (.)82 b(18)374 2038 y(4.1)99 b(Kno)m(wn)33 b(Sp)s(ell)e(P)m(aths)69 b(.)50 b(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(22)374 2154 y(4.2)99 b(Sp)s(ecial)31 b(priest)i(pra)m(y)m(ers.)102 b(.)49 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(24)374 2353 y(5.1)99 b(Skills)119 b(.)50 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)f(.)h(.)g(.)g(.)g(.)82 b(28)374 2470 y(5.2)99 b(Skills)31 b(commands)99 b(.)50 b(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)f(.)h(.)g(.)g(.)g(.)82 b(30)1957 6057 y(iv)p eop end %%Page: 1 5 TeXDict begin 1 4 bop 227 542 a FA(Chapter)44 b(1.)58 b(In)l(tro)t(duction)227 963 y Fy(Section)37 b(1.1.)h(What)f(is)g Fx(Cross\034re)h Fy(?)227 1178 y Fz(In)33 b(the)g(w)m(ords)h(of)e(its)g (original)d(author)j(F)-8 b(rank)33 b(T)-8 b(ore)33 b(Johansen)g(:)471 1369 y(\020)8 b Fx(Cross\034re)37 b Fz(is)e(a)g(m)m(ulti-pla)m(y)m(er)e (graphical)g(arcade)j(and)f(adv)m(en)m(ture)i(game)e(made)471 1485 y(for)k(the)h(X)f(Windo)m(ws)h(systems)g(en)m(vironmen)m(t.)64 b(It)40 b(has)f(certain)g(\035a)m(v)m(ours)i(from)471 1601 y(other)26 b(games,)g(esp)s(ecially)e Fx(Gaun)m(tlet)g(\(TM\))i Fz(and)f(the)h(rogue-lik)m(e)e(games)h(\(mainly)471 1717 y Fx(NetHac)m(k)p Fz(,)35 b Fx(Moria)p Fz(,)d Fx(Angband)p Fz(,)i(and)f Fx(Ragnarok)p Fz(\).)44 b(An)m(y)34 b(n)m(um)m(b)s(er)g (of)e(pla)m(y)m(ers)i(can)471 1834 y(mo)m(v)m(e)d(around)g(in)f(their)g (o)m(wn)h(windo)m(w,)h(\034nding)e(and)h(using)f(items)g(and)g (battling)471 1950 y(monsters.)43 b(They)30 b(can)g(c)m(ho)s(ose)g(to)f (co)s(op)s(erate)g(or)f(comp)s(ete)h(in)g(the)g(same)g Fu(world)p Fz(.\021)227 2141 y(In)37 b(the)g(y)m(ears)g(of)f(dev)m (elopmen)m(t)h(that)f(ha)m(v)m(e)h(follo)m(w)m(ed,)g Fx(Cross\034re)g Fz(has)g(gro)m(wn)g(to)e(encompass)227 2257 y(o)m(v)m(er)47 b(150)e(monsters,)k Fw(\030)p Fz(3000)c(maps)g(to) h(explore,)j(an)c(elab)s(orate)f(magic)g(system,)50 b(o)m(v)m(er)d(15) 227 2373 y(c)m(haracter)34 b(t)m(yp)s(es,)g(a)e(system)h(of)f(skills,)g (and)g(man)m(y)-8 b(,)33 b(man)m(y)f(artifacts)g(and)h(treasures.)374 2489 y Fx(Cross\034re)38 b Fz(is)e(freely)h(distributed)g(under)g(the)g (GNU)g(license)g(and)g(the)g(co)s(de)g(ma)m(y)g(b)s(e)g(ob-)227 2606 y(tained)j(from)g(a)g(n)m(um)m(b)s(er)h(of)f(FTP)h(sites)g(\(see)h (section)f(1.3\).)67 b Fy(T)-9 b(ak)m(e)47 b(note:)60 b Fz(y)m(ou)41 b(will)d(need)227 2722 y(at)j(least)g(an)g(ANSI)h(C)f (compiler)e(\(i.e.)69 b Fv(gcc)p Fz(\))42 b(to)f(build)f(the)h(game.)69 b(A)41 b(screen)i(shot)e(of)g(the)227 2838 y Fx(Cross\034re)34 b Fz(displa)m(y)e(app)s(ears)h(in)f(Figure)g(1.1.)374 2954 y Fx(Cross\034re)45 b Fz(is)f(curren)m(tly)h(b)s(eing)f(main)m (tained)e(b)m(y)j(Mark)g(W)-8 b(edel)44 b(\()p Fv(mwedel@sonic.net)p Fz(\).)227 3071 y(Cross\034re)30 b(is)f(uses)h(the)f(clien)m(t)e(serv)m (er)k(mo)s(del)c(-)h(clien)m(ts)g(for)g(unix)h(\(using)f(gtk)h(or)f (straigh)m(t)g(X11\))227 3187 y(and)33 b(windo)m(ws)g(are)g(readily)e (a)m(v)-5 b(ailable.)41 b(SDL)33 b(clien)m(t)f(is)g(b)s(eing)g(w)m(ork) m(ed)i(on.)374 3303 y(T)-8 b(o)48 b(b)s(e)h(noti\034ed)f(of)h(new)g (releases)g(of)g Fx(Cross\034re)h Fz(,)i(subscrib)s(e)e(to)e(the)h (announcemen)m(t)227 3419 y(mailing)29 b(list)i(\(see)j(section)e (1.2\))g(to)h(get)f(noti\034ed)g(of)g(up)s(dates.)227 3678 y Fy(1.1.1.)38 b(What)g(is)e(included)h(in)f(this)h(do)s(cumen)m (t?)227 3858 y Fz(This)f(do)s(cumen)m(t)g(is)g(a)f(guide)g(in)m(tended) i(to)e(fo)s(cus)h(on)g(the)g(game-pla)m(y)e(asp)s(ects)j(of)f Fx(Cross\034re)p Fz(.)227 3974 y(The)42 b(original)c(in)m(ten)m(tion)i (of)g(this)h(text)g(w)m(as)h(to)f(help)f(aspiring)g(pla)m(y)m(ers)h (create)h(and)f(pla)m(y)f(a)227 4091 y(c)m(haracter)f(and)f(more)f (quic)m(kly)h(initiate)d(them)j(in)m(to)f(the)h(in)m(tricacies)f(of)g Fx(Cross\034re)p Fz(.)61 b(But,)39 b(as)227 4207 y(things)27 b(w)m(en)m(t)h(along,)f(man)m(y)g(of)f(the)i(older)e(do)s(cs)h(b)s (egan)g(to)g(b)s(e)g(incorp)s(orated)f(and)h(lots)f(of)g(go)s(o)s(d)227 4323 y(reference)37 b(material)32 b(slipp)s(ed)i(in;)h(this)f(do)s (cumen)m(t)h(ma)m(y)g(also)f(b)s(e)h(a)f(go)s(o)s(d)g(resource)i(for)e (more)227 4439 y(exp)s(erienced)g(pla)m(y)m(ers.)374 4556 y(Ha)m(ving)i(said)g(all)e(of)i(that,)i(lets)e(p)s(oin)m(t)g(out)g (that)h(eac)m(h)g(release)g(con)m(tains)f(a)h(fair)e(amoun)m(t)227 4672 y(of)f(do)s(cumen)m(tation)g(and)g(the)h Fx(Cross\034re)h Fy(Pla)m(y)m(er's)i(Handb)s(o)s(ok)e Fz(is)e(de\034nitely)g(not)g(the)h (last)227 4788 y(w)m(ord!)51 b(Certainly)-8 b(,)35 b(ev)m(ery)h(pla)m (y)m(er)f(will)e(w)m(an)m(t)i(to)g(obtain)f(the)h Fx(Cross\034re)h Fy(Sp)s(oiler)p Fz(,)e(and)h(while)227 4904 y(this)d(ma)m(y)g(sound)h (\035ippan)m(t,)f(its)f(still)f(true)p Fw(\000)p Fz(a)i(go)s(o)s(d)f (place)h(to)g(start)g(trac)m(king)f(do)m(wn)i(m)m(uc)m(h)g(of)227 5021 y(the)39 b(information)34 b(y)m(ou)39 b(ma)m(y)f(w)m(an)m(t)g(is)g (the)g(README)h(do)s(cumen)m(t)g(in)e(the)h(top)g(directory)g(of)227 5137 y(y)m(our)c(release.)227 5395 y Fy(1.1.2.)k(Getting)e(started:)50 b(b)s(eginning)37 b(pla)m(y)m(ers)227 5576 y Fz(First-time)46 b(pla)m(y)m(ers)j(ma)m(y)f(w)m(an)m(t)i(to)e(skim)f(o)m(v)m(er)j (sections)f(2.1,)j(2.2,)g(3.1,)g(and)c(7.1)g(b)s(efore)227 5692 y(pla)m(ying)40 b(the)h(game.)66 b(Don't)41 b(b)s(e)g(daun)m(ted)h (b)m(y)f(the)g(apparen)m(t)g(complexit)m(y)f(of)g Fx(Cross\034re)p Fw(\000)p Fz(in)227 5808 y(realit)m(y)33 b Fx(Cross\034re)i Fz(is)f(quite)g(easy)g(to)g(pla)m(y)g(and)g(c)m(haracter)g(generation)f (is)h(simple.)45 b(Later)34 b(on,)1972 6057 y(1)p eop end %%Page: 2 6 TeXDict begin 2 5 bop 227 1229 a gsave currentpoint currentpoint translate -90 neg rotate neg exch neg exch translate 227 1229 a @beginspecial 35.865421 @llx 35.865421 @lly 573.846680 @urx 753.173767 @ury 3960 @rwi 2520 @rhi @setspecial %%BeginDocument: fig/screen_dia.ps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /tmp_mnt/home/lhea3/thomas/junk/playbook/fig/old/screen_dia.ps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 69 35 526 807 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 124 string def % define space for color conversions /grays 990 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % print in landscape mode 90 rotate 0 -595 translate % lower left corner 35 69 translate % size of image (on paper, in 1/72inch coords) 772.20000 457.05600 scale % dimensions of data 990 586 1 % mapping matrix [990 0 0 -586 0 586] {currentfile pix readhexstring pop} image fffffedddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd18eeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeeeeeeeeeeeeeeeeefffc fefbdeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe59fffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffbffc ffbffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc 6ff01eff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7c32616060c19930fbfbfbfbfb fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb fbfbfbfbfbfbfbfbfbfbfbfbfbffeffc fff7fef7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f1820ccfcee789063fbfbfbfbf bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf bfbfbfbfbfbfbfbfbfbfbfbfbfb7fdf0 fffbfebfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffff8f1ccc7c7e598e67fffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffdff7c f7fb7efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe fefefefefefefefefefefefefefefefefefefefefefefdf9f3cce1e1e799e077f7f7f7f7 f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 f7f7f7f7f7f7f7f7f7f7f7f7effffffc fffdeeffdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbfb9f3c4e8d8a798e7fefefefefe fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe fefefefefefefefefefefefdfeffbffc 7dfdfeefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffffffffffffffffff9d2ccfcfce799e57fffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffbfeffc fffffefff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7ffeffc33e141c1e699b07fbfbfbfbf bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf bfbfbfbfbfbfbfbfbfbfbfffbff7fddc dfbffefdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfefbfdf7dfffff7fffdfffefefefefef efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef efefefefefefefefefeffbdff7fffffc fffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff7fbfff7df7fffbf6efffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffbfff7fffefffc f7eededf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7ffffefffffdb7bffffbfbfffbfbfbfbfb fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb fbfbfbfbfbfbfbfbfbfefffdfeffbf7c ff9121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffdfffbfffffffffffffffb7ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffeeff7feff7dc fffffff7efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef efefefefefefefefefefefefefefefefefefefdffbefefdefffdfddfffbffdbf7f7f7f7f 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 7f7f7f7f7f7f7f7f7effffffeffffffc bffffffffbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfb fbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfff7fefffbffbfffdffdbfefffffdfdfdfdf dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf dfdfdfdfdfdfdfdfffbffffffbfffffc edfffffefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe fefefefefefefefefefefefefefefefefefefbfdfffffeffefbffffffbfefff7f7f7f7f7 f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7 f7f7f7f7f7f7f7f7dffbbbdfff6efdfc ff7dffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff7ffbfffffbefff7fffffbfffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffbffffdfdc ffdfefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffbeffdfbeffb7fffef7f7feffef7fffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffdfbfffeff7ffffffc fffffbfbdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfbffffff7ffbffffffffffedfefffdefefefefe fefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefe fefefefefefefdffffdeffffdff7f7fc 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000001c 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000001c 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff8ffe0f3ffffffffffffc0ffffffffffffefffffefffffefffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff8ffef7bffffffffffffef7ffffffffff7efffffefffffeffffffbffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fff8ffef7bfffffffffbffef7ffffffffff7efffffefffffefffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fc1fffffffffffffffffffffdfff7f7c0fff7efffffffffffffffffffffffffffffffff fff8ffef7bf0ef70e8f1ffef70f0f16f7fe0e8f0ffe8f0e8e8f0e8f3f0e8ffffffffffff 8ffffffff83ffffffbfc7ffffbffffffffffffbc3ffffffbfffffffcfcfdffffffffffff ffffffffffffffffffffffffffffffdc 7ff7ffffffffeffffffffffffbffe7e7feffe7f7ffffffffffffffffffffffffffffffff fff8ffe0fbff6f6f777bffef6f6f6eef7ff7e76f7fe77f77677f777bff677fffffffffff 8ffffffffbdffdfffbfcfffffbffffffffffff7bdffffdfbfffffffefefeffffffffffff ffffffffffffffffffffffffffffffdc 7ff7ffffffffeffffffff7fffbffd7d7fdffd7f7ffffffffffffffffffffffffffffffff fff8ffeffbf06f6077ffffef6f6f6eef7ff7ef607fef7077ef7077fbf06f7fffffffffff 8ffffffffbdffdfffbfbfffffbffffffffffff7bfffffdfbfffffffefefeffffffffffff ffffffffffffffffffffffffffffffdc 7ff7d1dde1d1c1e1d1dee3fff7fff7f7fbfff7fbffffffffffffffffffffffffffffffff fff8ffeffbef6e6ff7ffffef6f6f71ee7ff7ef6fffef6f77ef6f77fbef6f7fffffffffff 8ffffffffbdc383c3a3ffc3ffa3c3bbc3c3ffefbfc3bb83a3ff7dc3efeff7fffffffffff ffffffffffffffffffffffffffffffdc 7ff7cedddeceefdeeedef7fff7fff7f7f1fff7fbffffffffffffffffffffffffffffffff fff8ffeffbee716ff7fbffef6f6f6ff17ff76f6fffe76e77e76e77fbee6f7fffffffffff 8ffffffff83fddfbd9dffbdff9dbdbbbdbdffefc3bdbbdf9dff7dfdefeff7fffffffffff ffffffffffffffffffffffffffffffdc 7ff7deddc0deefdeefdefffff7fff7f7fefff7fbffffffffffffffffffffffffffffffff fff8ffefe0f17f70f7f1ffc0f0f0f0ff7ff8ef70ffe8f177e8f177e0f16f7fffffffffff 8ffffffffbfc1dfbfbdffcfffbdbdbbcf81ffeffdbdbbdfbdff6dc1efeff7fffffffffff ffffffffffffffffffffffffffffffcc 7ff7deebdfdeefdeefdcfffffbfff7f7fefff7f7ffffffffffffffffffffffffffffffff fff8ffffffffef7ffffbffffffffef6f7fffffffffffffffffffffffffffffffffffffff 8ffffffffbfbddfbfbdfff3ffbdbdbbf3bffff7fdbdbbdfbdff6dbdefefeffffffffffff ffffffffffffffffffffffffffffffdc 7ff7deebdfdeeedeefe2f7fffbfff7f7def7f7f7ffffffffffffffffffffffffffffffff fff8fffffffff0fffffffffffffff0f0ffffffffffffffffffffffffffffffffffffffff 8ffffffffbfb9ddbdbdffbdffbdbdbbbdbffff7bdbdbbddbdff55b9efefeffffffffffff ffffffffffffffffffffffffffffffdc 7fc1def7e1def1e1effee3fffdffc1c1e1e3c1efffffffffffffffffffffffffffffffff fff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8ffffffffbfc5e3c3bdffc3ffbdc3c5c3c3fffbc3c3c5e3bdffbbc58383dffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffdef7fffffffffffff7ffffffffffffffffffffffffffffffffffff fff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffffffffffe00 0008ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff ffe8fff0fffffffffffffffffffff9ffffeffffffff3fffffbffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef7ffffffffffffffffffff6ffffeffffffffbfffff3ffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fff807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffeffffffffffbffffffffffef7fffeffffffffbfbffebffffffffffffffffffffff 8ffffffff83fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffe409ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffeff0f0e8f0f1ffffffffffef7fffeff0eef0fbf1fffbffffffffffffffffffffff 8ffffffffbdffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffd002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0ef6f776f7bffffffffffef7fffefef6eef7bfbfffbffffffffffffffffffffff 8ffffffffbdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd002ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffff6fef77e07fffffffffffef7fffefe06ee07bfffffbffffffffffffffffffffff 8ffffffffbda3cfc3c3a3fffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffc804ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffff6fef77efffffffffffffef7fffefeff5effbfffffbffffffffffffffffffffff 8ffffffff83ddefbdbd9dfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffc220ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef6f6f77effbfffffffffff6ffffefeff5effbfbfffbffffffffffffffffffffff 8ffffffffbfdfefcfbdbdfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffe001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0f0f0f7f0f1fffffffffff9ffffe070fbf0e0f1ffe0ffffffffffffffffffffff 8ffffffffbfdfeff3bdbdfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd806ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffffffffbfffffffffffffffffffffffffffbffffffffffffffffffffffffff 8ffffffffbfdfefbdbdbdfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffc7f8fffffffffe7fefffffffffffffffffffffffffffffffffffffffffff3fff3fe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8ffffffffbfdf83c3c3bdfffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffe001ffffffffff7fefffffff7ffffffffffffffffffffffffffffffffffedffedfe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7f00806ffffffffff7feffffffffffffffffffffffffffffffffffffffffffdeffdefe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7c803f8fe1ffe2e1f7e2ffe1e1e7d1ffffffffffffffffffffffffffffffffdeffdefe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7a00001ffeffdddef7dcffdedef7ceffffffffffffffffffffffffffffffffdeffdefe80 0068ffef7fffe07f607ff0fffffeff7efff0fffffbff70ffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7a00006fe0ffdddef7deffdfdef7deffffffffffffffffffffffffffffffffdeffdefe80 0068ffef7fffff7f7f7fef7ffffcff7cffef7ffff3ff6f7fffffffffffffffffffffffff 8ffffffffe7fffdffffcfcfffffbffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 79001f8fdeffe3def7deffdfdef7deffffffffffffffffffffffffffffffffdeffdefe80 0068ffef7ffbfefefeffeffffbfafefaffeffffbebfeef7fffffffffffffffffffffffff 8ffffffffdbfffdffffefefffdfbfffffffdffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7844001fdcffdfdef7dcffdedef7deffffffffffffffffffffffffffffffffedf7edfe80 0068ffef68f1fdfdfdffefe8f1f6fdf6ffefe8f1fbfdff7fffffffffffffffffffffffff 8ffffffffbdfffdffffefefffdfbfffffffdffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7c00207fe2ffe1e1c1e2ffe1e1c1defffffffffffffffffffffffffffffffff3e3f3fe80 0068ffe0677bfdfbfdfff0e77beefbeeffeff77bfbfbfeffffffffffffffffffffffffff 8ffffffffbda3c5ffc3efefff83a3c3ffc383c3a3c3c3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7b00dfffffffdefffffffffffffffffffffffffffffffffffffffffffffffffff7fffe80 0068ffef6f7ffbf7fbffff6f7feef7eeffec77fffbf7f9ffffffffffffffffffffffffff 8ffffffffbd9db9fffdefefffdf9dbdffbddfbdddbdbdfffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 78ff1fffffffe1fffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef677ffbeffbffff677fe06fe07fef77fffbeff7ffffffffffffffffffffffffff 8ffffffff81bdbdffc1efefffdfbd81ffcfdfbddf81cffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7c003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef68fbf7dff7ffef68fbfedffeffee77fbfbdfefffffffffffffffffffffffffff 8ffffffffbdbdbdffbdefefffdfbdbffff3dfbddfbff3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7f00fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef6ff1f7dff7fff0eff1fedffefff177f1e0dfe07fffffffffffffffffffffffff 8ffffffffbdbdb9ffb9efefffddbdbfffbdddbddfbfbdfffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffeffbffffffffffeffbfffffffffffffbffffffffffffffffffffffffffffffff 8ffffffffbdbdc5ffc58383ffe3bdc3ffc3e3c3dfc3c3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffefffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fc3e1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7e388e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0f0fbffc0fbf8fff0fffbf0ffe0ffe07fdf7bf0ffe0fbf0fff0effff8ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 79e773cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef6f73ffef73f7ffef7ff3ef7ffbffff7fdf73ef7fef73ef7fef6ffff7ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7b1aac6ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffefef6bffef6befffefffebef7ffbfffeffdf6bef7fef6bef7fefefffefffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7cf6b79ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffefff7bffef7befffeff0fbef7ffbfffdffdf7bff7fef7bff7fefe8ffefffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ee633bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0fefbffef7be8ffefef7bf0fffbfffdffdb7bfeffe0fbfeffefe77fe8ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7f19cc7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffff79fbffef7be77fefef7bef7ffbfffbffdb7bf9ffeffbf9ffefef7fe77fffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7feebbffffffe7ffffffdffffffffffffffffffffffdffffffffefffffffe1f3fffffe80 0068ffff77fbffef7bef7fefef7bef7ffbfffbffdb7bf7ffeffbf7ffefef7fef7fffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fee3bfffffff7ffffefdffffffffffffffffffffffbfffffffff7ffffffdeedfffffe80 0068ffef6ffbffef7bef7fef6f7bef7ffbfff7ffd57befffeffbefffef6f7fef7fffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe1c3fffffff7ffffefdffffffffffffffffffffffbfffffffff7ffffffdedefffffe80 0068fff0e060ffc0e0f0fff0f0e0f0ffe0fff7ffeee0e07fefe0e07ff0ef7ff0ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7feebbffe1fff7e1e1c1d1e1d1ffe1d189e1ddd1fff7bee1d1d1fbfffffffedefffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fee3bfffefff7defeefcedeeefffeeeb6deddeefff7bedeeecefbfffffffddefffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe1c3ffe0fff7c0e0efdec0efffe0efb6deddeffff7b6deefdefbfffffff3defffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7feebbffdefff7dfdeefdedfefffdeefb6deddeffffbb6deefdef7ffffffefdefffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7feebbffdcfff7dfdceededfefffdcefb6deddeffffbaadeefdef7ffffffdfedfffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ff147ffe2ffc1e1e2f1dee1efffe2efbee1e2effffddde1efdeefffffffc0f3fffffe80 0068ffdf7ffffffbe07fc0fffffffffbf0fff9ffffffffe07ff9fffffffffff8ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffdf7ffffff3ff7fef7ffffffff3ef7ff6ffffffffeffff6fffffffffff7ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffdf7ffbffebfeffef7ffffbffebef7fef7ffbffffefffef7ffffbffffefffffffff 8ff818181818181818181818181818181818181818181818181818181818181818181818 181818181818181fffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffdf70f1fffbfdffef70c4f1fffbff7fef70f1ffffe8ffef68c4f1ffffefffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffdb6f7bfffbfdffef7f5b7bfffbfeffef6f7bffffe77fef775b7bffffe8ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffdb6ffffffbfbffef705b7ffffbf9ffe06fffffffff7fe077db7fffffe77fffffff 8ff818181818181818181818181818181818181818181818181818181818181818181818 181818181818181fffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffdb6ffffffbfbffef6f5b7ffffbf7ffef6fffffffff7fef77db7fffffef7fffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffd56f7bfffbf7ffef6e5b7bfffbefffef6f7bffffef7fef77db7bffffef7fffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffc7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffeef0f1ffe0f7ffc0f15f71ffe0e07fef70f1fffff0ffef77df71fffff0ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe38ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffbfffffffffffffffbfffffffffffffbfffffffffffffffbffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffabffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe38ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffabffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe38ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffc7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0ffffffff7ffffbfffbf9fffefbfffef8f7ffffe07fffff7ffff0e07effffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef7fffffff7ffff3fff3f6fffdf3fffcf7fbffffefffffff7fffef7f7cffffffff 8ff818181818181818181818181818181818181818181818181818181818181818181818 181818181818181fffffffffffffffcc 7ffd7ffffffffffffffffffdffffffe7fefffeeffffffffffffffffffffff7f1fffffe80 0068ffefffffffff7bffebffebef7ffdebfffaeffbffffefffffff7bffef7efaffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7ffffffffffffffffffbfff7fff7fefffef7ffffffffffffffffffffe7effffffe80 0068ffefe8f0f0f171fffbfffbef7ffbfbfff6effdffffeff0f0f171ffff7df6ffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7ffffffffffffffffffbfffffff7fefffef7ffffffffffffffffffffd7dffffffe80 0068fff0e76f6f6e7bfffbfffbef7ffbfbffeee8fdffffe1ef6f6e7bfffefdeeffffffff 8ff818181818181818181818181818181818181818181818181818181818181818181818 181818181818181fffffffffffffffdc 7ffd7fffe1ff89e1e1e1fff7bee7e1f7e2e1e2fbfffffffffffffffffffff7dffffffe80 0068ffff6f60606f7ffffbfffbef7ffbfbffeee77dffffefef6f6f7ffff9fbeeffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7ffffeffb6fededefff7bef7def7dcdedcfbfffffffffffffffffffff7d1fffffe80 0068ffff676fefef7ffffbfffbef7ffdfbffe06f7bffffefef6f6f7ffff7fbe07fffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7fffe0ffb6e0dfc0fff7b6f7c0f7dec0defbfffffffffffffffffffff7cefffffe80 0068ffef68efefee7bfffbfbfbf6fffdfbfbfeef7bffffefef6f6e7bffeff7feffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7fffdeffb6dedfdffffbb6f7dff7dedfdef7fffffffffffffffffffff7defffffe80 0068fff0eff0f0f171ffe0f1e0f9fffee0f1fef0f7ffffeff0f0f171ffe077feffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ff01fffdcffb6dcdedffffbaaf7dff7dcdfdcf7fffffffffffffffffffff7defffffe80 0068ffffeffffffffbfffffbfffffffffffbfffffffffffffffffffbffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7fffe2ffbee2e1e1fffdddc1e1c1e2e1e2efffffffffffffffffffffc1e1fffffe80 0068ffffefffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffd7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffe3fffffffffffffffff 8ffbdffffbfffffff03fffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffc1fffffffffffffffff 8ffbdffffbfefffffbdfffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffd7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffc07ffffffffffffffff 8ff9dffffbfffffffbdffffffffffffffeffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0effff3f3fffffffff3fffffffffffffffffffffffffffc01ffffffffffffffff 8ffadc37da3cfc3ffbdbba3c5c3c3a3c3c7fffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef6ffbfbfbfffffffffbfffffffffffffffffffffffffffc007fffffffffffffff 8ffb5bd7d9defbdffbdbb9dbbbdbd9dbdeffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffefeffffbfbfbfffffffbfffffffffffffffffffffffffffc001fffffffffffffff 8ffb9816dbdef81ffbdbbbdbb81bdbdcffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffefeef3fbfbf1ffc4f0fbf0f0ffdf70f0e8f0e8f0fffffffc000fffffffffffffff 8ffbdbf6dbdefbfffbdbbbdc7bfbdbdf3fffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0edfbfbfbfbffdb6f7bef6f7fdf6f7f676f676f7ffffffc000fffffffffffffff 8ffbdbf559defbfffbdbbbdbfbfbdbdbdeffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffff63fbfbfbffffdb607be0607fdb60706f6f6f73fffffffc030fffffffffffffff 8ffbdc3bba383c3ff03c5bdc3c3c3bdc3c7fffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffff6dfbfbfbffffdb6ffbefefffdb6fef676f6f7cfffffffc03ffffffffffffffff 8ffffffffffffffffffffffbdffffffffeffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffef6efbfbfbfbffdb6ffbefefffd56fee68ef6f6f7ffffffc01ffffffffffffffff 8ffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fdffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fff0ef60e0e0f1ffdf70e0f0f0ffeef0f16ff0ef70fffffffc01ffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fdffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffffffffbffffffffffffffffffffeffffffffffffffc21ffffffffffffffff 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fdffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffeffffffffffffffc20ffffffffffffffff 8ffffff03fffffffffffffffffffffbffffffffffffcfffffffffffffffdffffffffffff ffffffffffffffffffffffffffffffdc 7fcffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffe20ffffffffffffffff 8ffffffbdffffeffffffffffffffff7ffffffdfffffefffffffffffffffeffffffffffff ffffffffffffffffffffffffffffffdc 7fd61affffffdffffffffffeffdfffe7fffffffffdffffffffeffffffffffff1fffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffffff 8ffffffbdfffffffffffffffffffff7ffffffdfffffefffffffffffffffeffffffffffff ffffffffffffffffffffffffffffffdc 7fe8c5ffffffdffffffffffeffdffff7ffffeffffbfffffffff7ffffffffffeffffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffffff 8ffffffbdc3c5cfa3a3c3a3c3ffffefc3c3a383a3c3efffc3c5bbc3a3c3f7fffffffffff ffffffffffffffffffffffffffffffdc 7fe3f1ffffffdffffffffffeffdffff7ffffeffffbfffffffff7ffffffffffdffffffe80 006800000000000000000000000000000000000000000000000000000000000000000000 0ffffff83bdbbef9d9dbdddbdffffefbdbd9ddfddfdefffbdb9bbfdddbdf7fffffffffff ffffffffffffffffffffffffffffffcc 7ff7fbffe1ffd1e1d1d1e1e2ffd1e1f789e1c1fff7bee1d1d1fbffffffffffdffffffe80 006800000000000000000000000000000000000000000000000000000000000000000000 0ffffffbd81bbefbdbd81dfcfffffefbf81bddfdfc1efffcfbdbbc1df81f7fffffffffff ffffffffffffffffffffffffffffffdc 7fe7f9fffeffcedeeecededcffcedef7b6deeffff7bedeeecefbffffffffffd1fffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffff83fffffffffffffff 8ffffffbdbfc7efbdbdbfdff3fffff7bfbfbddfdfbdeffff3b9bbbddfbfeffffffffffff ffffffffffffffffffffffffffffffdc 7feffdffe0ffdedeefdec0deffdec0f7b6c0effff7b6deefdefbffffffffffcefffffe80 0068fffffffffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff 8ffffffbdbfbfefbdbdbfdfbdeffff7bdbfbddddfb9efffbdc5bbb9dfbfeffffffffffff ffffffffffffffffffffffffffffffdc 7fec0dffdeffdedeefdedfdeffdedff7b6dfeffffbb6deefdef7ffffffffffdefffffe80 0068c0000000000000000000000000000000000000000000000000000000000000000001 8ffffff03c3c383bdbdc3dfc3c7fffbc3c3bde3dfc583ffc3fdc5c5dfc3dffffffffffff ffffffffffffffffffffffffffffffdc 7fe1e1ffdcffdedeefdedfdcffdedff7b6dfeefffbaadeefdef7ffffffffffdefffffe80 0068c0000000000000000000000000000000000000000000000000000000000000000001 8ffffffffffbdffffffffffffeffffffffffffffffffffffffdfffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe3f1ffe2ffdee1efdee1e2ffdee1c1bee1f1fffddde1efdeefffffffffffe1fffffe80 0068cffffffffffffff7bfefffffffffffffffffffffffffffffff7e1ffffffffffffff1 8ffffffffffc3fffffffffffffffffffffffffffffffffffffdfffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffff57effffefff7df77f7df77fffffffffffff7e0dfffffc0ffffff1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffb57affffdff777777777777ffffffffffffeee0bdffffce7fffff1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffc07fffffdbb7ddffffff9d99b99d99b9ffffc07ffffffdf03bffffd07fffff1 8ffffffe1ffffffc7ffffbdfffffffffffbffffffffffffffffffbfffffe3fffffffffff fffcfffffffffffffffdffffffffffcc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffcf3fffff57afddffff7fffffffffffffffffcf3fffffddf07bf8000f0001ff1 8fffffffbffffffcfffffbdfffffffffff7fbffffdfffffffffdfbfffffddffffffffdff fffefffffffffffffffeffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffc03fffffd7affeffffff5f77f75f77f7ffffc03fffffbbb077f555575555ff1 8fffffffbffffffbfffffbdfffffffffff7ffffffdfffffffffdfbfffffdfffffffffdff fffefffffffffffffffeffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffd7bfffffaffbfeffee7f777777777777ffffd7bfffffbf703febfff07ffeff1 8fffffffbc3a3c3ffc3ffbdc3bbc3c3ffeff3bbc383ffa3c3a383a3ffc3dfffc3c3a383a 3c3efffc3c5bbc3a3c3f7fffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffc2bfffffaff77fff827f999b9d999b9dffffc2bfffff7f683bd2aaaaaaaaff1 8fffffffbbd9dbdffbdff81bdbbbdbdffeffbbbbddfff9dbddddf9dffbd83ffbdbd9ddfd dfdefffbdb9bbfdddbdf7fffffffffdc 7f8f83fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cffffd7bffffffff57ffe547fffffffffffffffffd7bffffffefc37a9ffffffff7f1 8fffffffbbdbd81ffcfffbdbdbbcf81ffeffbbbcfdfffbdbddfdfbdffbddfffbf81bddfd fc1efffcfbdbbc1df81f7fffffffffdc 7f9063fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cf800028003ffffbafbf8aa3f777f77777f77f800028003fff7fc1755555555557f1 8fffffffbbdbdbffff3ffbdbdbbf3bffff7fbbbf3dfffbdbddfdfbdffbddfffbfbfbddfd fbdeffff3b9bbbddfbfeffffffffffdc 7fefdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cf3ffe7bffdfffebbfae5454f7f77777f7777f3ffe7bffdffefbc0d2affffffffbf1 8ffffffbbbdbdbfffbdffbdbdbbbdbffff7fbbbbdddffbdbddfddbdffbddfffbdbfbdddd fb9efffbdc5bbb9dfbfeffffffffffdc 7ff7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ce924900925fffe7fedca92a7b99999b99999e924900925ffef7e1b14aaaaaaaabf1 8ffffffc7c3bdc3ffc3ffbdc3c5c3c3fffbbbc5c3e3ffbdc3dfe3bdffc3dfffc3c3bde3d fc583ffc3fdc5c5dfc3dffffffffffdc 7ff7befffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cd5fffffffeffff7eade5454fffffffffffffd5fffffffeffdf760b4a7fffffffdf1 8ffffffffffffffffffffffffffffffffffbbfffffffffffffffffffffffffffffffffff ffffffffffdfffffffffffffffffffcc 7ff7bdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068caa92492492fff7fedfeaaaaff7777df7777daa92492492fffeee0765555555555f1 8ffffffffffffffffffffffffffffffffffc7fffffffffffffffffffffffffffffffffff ffffffffffdfffffffffffffffffffdc 7ff07bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c54ffffffff7fb5ff5fe5554f77777777777754ffffffff7f7bee0772bfffffffef1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fe007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c2a492492497faaff7feaaaaf99bbb999bbb92a492492497ff7df06792aaaaaaaaf1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fdf037fffffffffffdffffffffffffffffffffffffffffffffffffffffffff3fff7fe80 0068c157fffffffbfdbffffe0154fffffffffffff157fffffffbff7ff064c9ffffffff71 8ffffffc3cffdffc3fffffffffb03ffffbfff7dffcfcfffffffbfffffffffffffbffffff fffffffffffffffcfcfdffffffffffdc 7fdf9cffffffffffffdfffffffffffffffffffffffffffffffffffffffffffedffe7fe80 0068c4aa4924924bfdfbdffeba0af77dfd777dfd74aa4924924bfef7e815655555555571 8ffffffbdeffdffbdefdffffff7bdffffbfff7dffefefffffdfbfffffffffffdfbffffff fffffffdfffffffefefeffffffffffdc 7fbfefffffffffffffdfffffffffffffffffffffffffffffffffffffffffffdeffd7fe80 0068c653fffffffdfffd57fe3954ff77777f77777653fffffffdffefe83572ffffffffb1 8ffffffbdeffdffbfffdffffff7bdffffbfff7dffefefffffdfbfffffffffffdfbffffff fffffffdfffffffefefeffffffffffdc 7fbff7ffe1ffe1e1e1ddffffffffffffffffffffffffffffffffffffffffffdefff7fe80 0068c72924924925fdfd57be824af9b99999b999972924924925ffefdc3578aaaaaaaab1 8ffffffbdefc5ffbfcf83bdffefbdc3a3bbff7dc3efefffff83a3c3ffc3c3bb83a3c3a3a 313c3c383ff7dc3efeff7fffffffffdc 7fbffbfffeffdefededbffffffffffffffffffffffffffffffffffffffffffdefff7fe80 0068c795fffffffef5feafde5554fffffffffffff795fffffffefedefc047c7fffffffd1 8ffffffbdefb9ffbfefdfbdffefbdfdddb7ff6dbdefefffffdf9dbdffbdbdbbdf9dbddd9 d6dbdbddfff7dbdefeff7fffffffffdc 7fbffbffe0ffe7e0dfc7ffffffffffffffffffffffffffffffffffffffffffdefff7fe80 0068c00a92492492f5ffafdeaa4af77777777777700a92492492fdfdf816660000000011 8ffffffbdefbdffbfefdfbdffefbdc1df8fff6d81efefffffdfbd81ffcfbdbbdfbd81dfb d6dbdcfdfff6d81efeff7fffffffffcc 7f7ffbffdefff9dedfdbffffffffffffffffffffffffffffffffffffffffffdefff7fe80 0068c144ffffffff7bffefee0000ff77777f77777144ffffffff7dfdfe176b5555555551 8ffffffbdefbdffbfefdfb9fff7bdbddfb7ff6dbfefefffffdfbdbffff3bdbbdfbdbfdfb d6dbdf3dfff6dbfefefeffffffffffdc 7efffdffdcffdedcdeddffffffffffffffffffffffffffffffffffffffffffedf7f7fe80 0068c292492492497bffffeffffff99b99b99b99b292492492497bbbde05eb7fffffffd1 8ffffffbdefb9ffbdefddc5fff7bdb9dfbbff55bfefefc7ffddbdbfffbdbdbbddbdbfdfb d6dbdbdddff55bfefefeffffffffffdc 7dfffeffe2ffe1e2e1defffffffffffffffffffffffffffffffffffffffffff3e3c1fe80 0068c0197fffffffbff7bfef7fbffffffffffffff0197fffffffbf7fbe07eb7c78f1e3d1 8ffffffc383c5ffc383e3fdfffb03c5dfbdffbbc38383cfffe3bdc3ffc3c3c5e3bdc3dfb d7dc3c3e3ffbbc38383dffffffffffdc 7dffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffe80 0068c7fca4924924bff57eff7fbdff7df77f7df777fca4924924bf7fbd07637b366cd9d1 8ffffffffffffffffffffbdffffffffffffffffffffffbffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7dffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c7c03fffffffdfb57afeef7bd7777777777777c03fffffffdeef7b07f37b366cd9d1 8ffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7dffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c4d4000000001dbb7ddfdffbb9d99b99d99b94d4000000001fdffb84fb7b366cd9d1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7dffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c44a80000000157afddddfb7bffffffffffff44a800000001ddfb7836f783060c1d1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7e0000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c480bfffffffdd7affebbb7f75f77f75f77f7480bfffffffdbbb7f00f7783060c1d1 8ffffff03ffffffbfffffffff7dffcfcffffbffffffffffffcfffffffffffffffdffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c4bfbc9693b7daffbfebf777f7777777777774bfbc9693b7dbf777c16b7fffffffd1 8ffffffbdffefffbfefffffff7dffefeffff7ffffffdfffffefffffffffffffffeffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c4bfbb929557daff77f7f6efb999b9d999b9d4bfbb929557d7f6ef816b7777cfffd1 8ffffffbdffffffbfffffffff7dffefeffff7ffffffdfffffefffffffffffffffeffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c4bfbab4b317dfff57ffefef7ffffffffffff4bfbab4b317dfefef41776aabb7aad1 8ffffffbda3cfa3bbcfa3c5ff7dc3efefffefc3c3a383a3c3efffc3c5bbc3a3c3f7fffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c627bc969553dffbafbf7fdf7777f77777f77627bc969553df7fdf617b77776bddd1 8ffffffbdddef9db7ef9dbbff6dbdefefffefbdbd9ddfddfdefffbdb9bbfdddbdf7fffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c323bfffffffdfebbfaefbfed7f77777f7777323bfffffffdefbfec06f7fff7bffd1 8ffffffbddfefbd8fefbdbbff6d81efefffefbf81bddfdfc1efffcfbdbbc1df81f7fffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068c9a5bc1f83ce5fe7fedef7fbbb99999b999999a5bc1f83ce5ef7fba0476083b70851 8ffffffbddfefbdb7efbdc7ff6dbfefeffff7bfbfbddfdfbdeffff3b9bbbddfbfeffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cce5bbcf79df5ff7eaddf777bffffffffffffce5bbcf79df5df777b04b5f7dcef791 8ffffffbddfefbdbbefbdbfff55bfefeffff7bdbfbddddfb9efffbdc5bbb9dfbfeffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068ce65b6e6fcf1df7fedffeef77f7777df7777de65b6e6fcf1dfeef7704b71c7ff9cd1 8ffffff03df83bdbd83bdc3ffbbc38383fffbc3c3bde3dfc583ffc3fdc5c5dfc3dffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe80 0068cf21b666ececdb5ff5f7beeff777777777777f21b666ececd7beeff84b6cb3c74a51 8ffffffffffffffffffffbdfffffffffffffffffffffffffffffffffdfffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff3ffffffffffffffffffffffffffffffffffffffffffe80 0068cf85b7a6d4de5aaff7ff7dffe99bbb999bbb9f85b7a6d4de5f7dffe80b6cb3b34a51 8ffffffffffffffffffffc3fffffffffffffffffffffffffffffffffdfffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffffe80 0068cfc5b4a6ecde5dbfffff7ff7efffffffffffffc5b4a6ecde5f7ff7e80b6cb3b30851 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffffe80 0068cfe5b5e6a8de5dfbdffef7efd77dfd777dfd7fe5b5e6a8de5ef7efdc0b6cb3790851 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffc07fffffffffffffffffffffffffffffffffffffffffe80 0068cff9b666d4ce5ffd57ffefeeff77777f77777ff9b666d4ce5fefeefc0b6cb379ffd1 8ffffffc3ffffbfc7ffffc3ffffffffcffffffbffffffffffffffffffdffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffff807fffffffffffffffffffffffffffffffffffffffffe80 0068cffdb00600de5dfd57bfefddf9b99999b9999ffdb00600de5fefddfc13608339ffd1 8ffffffbdffffbfcfffffbdffffffffeffffff7ffffffdfffffffffffeffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffff803fffffffffffffffffffffffffffffffffffffffffe80 0068cffcb00600de55feafdedefdeffffffffffffffcb00600de5edefdee1b608379efd1 8ffffffbfffffbfbfffffbfffffffffeffffff7ffffffdfffffffffffeffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffff801fffffffffffffffffffffffffffffffffffffffffe80 0068cffe3fffffde55ffafddfdfbd777777777777ffe3fffffde5dfdfbde097fff795d51 8ffffffbfc3a3bbffc3ffbfa3c3bbc3efffffefa3c3a383ffc3a3c3c3f7fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffff001fffffffffffffffffffffffffffffffffffffffffe80 0068cfff3fffffc05bffefedfdffdf77777f77777fff3fffffc05dfdffde0c5adb015551 8ffffffbfbdddb7ffbdffbfddbdbbbdefffffef9dbddddffffdddbdfdf7fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffff000fffffffffffffffffffffffffffffffffffffffffe80 0068cfff8000001f1bffffebbbdfb99b99b99b99bfff8000001f1bbbdfbf0e00007c0011 8ffffffb1bddf8fffcfffb1dfbdbb81efffffefbdbddfdfffc1df81c1f7fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffff000fffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffff1 8ffffffbdbddfb7fff3ffbddfbdd7bfeffffff79dbddfdfffbddfbfbdeffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffe000fffffffffffffffffffffffffffffffffffffffffe80 0068cf7df77f7df77f7df77f7df77f7df77f7df77f7df77f7df77f7df77f05f77f7df771 8ffffffb9bddfbbffbdffb9dfbdd7bfefeffff7a3bddfddffb9dfbfb9effffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffe000fffffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777777777777777777777777777777037777777771 8ffffffc5c3dfbdffc3ffc5dfc3efc383c7fffbbfc3dfe3ffc5dfc3c5dffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffe100fffffffffffffffffffffffffffffffffffffffffe80 0068c9d99b99d99b99d99b99d99b99d99b99d99b99d99b99d99b99d99b99819b99d99b91 8ffffffffffffffffffffffffffffffffefffffbffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffffffffffffffffffffffffffffffffffffffffffffc3fffffffff1 8ffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffffe80 0068c5f77f75f77f75f77f75f77f75f77f75f77f75f77f75f77f75f77f75c17f75f77f71 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777777777777777777777777777777417777777771 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff07fffffffffffffffffffffffffffffffffffffffffe80 0068c999b9d999b9d999b9d999b9d999b9d999b9d999b9d999b9d999b9d981b9d999b9d1 8ffffffbdfffdfffffdffc3bfffffffbffffbc3ffffffbfffffffcfcfdffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffffffffffffffffffffffffffffffffffffffffffffe0fffffffff1 8ffffffbdfffdfffffdffbdbfffffffbffff7bdffffdfbfffffffefefeffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068c777f77777f77777f77777f77777f77777f77777f77777f77777f77760f77777f771 8ffffffbdfffdfffffdffbfbfffffffbffff7bfffffdfbfffffffefefeffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068c7f77777f77777f77777f77777f77777f77777f77777f77777f77777f07777f77771 8ffffffbda3c5c3c3c5ffbfa3bba3c3a3ffefbfc3bb83a3ff7dc3efeff7fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cb99999b99999b99999b99999b99999b99999b99999b99999b99999b90199b999991 8ffffffbd9db9bdfdb9ffbf9dbbddbd9dffefc3bdbbdf9dff7dfdefeff7fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffff1 8ffffffbdbdbd81c1bdffbfbdbbdfbfbdffeffdbdbbdfbdff6dc1efeff7fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cf7777df7777df7777df7777df7777df7777df7777df7777df7777df7037df7777d1 8ffffffbdbdbdbfbdbdffbfbdbbdfbfbdfff7fdbdbbdfbdff6dbdefefeffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777777777777777777777777777777703777777771 8ffffffbdbdb9bfb9b9ffbdbdbbdfbdbdfff7bdbdbbddbdff55b9efefeffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068c99bbb999bbb999bbb999bbb999bbb999bbb999bbb999bbb999bbb99983b999bbb91 8ffffffc3bdc5c3c5c5ffc3bdc5dfc3bdfffbc3c3c5e3bdffbbc58383dffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1ffffffff1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068c77dfd777dfd777dfd777dfd777dfd777dfd777dfd777dfd777dfd777c1d777dfd71 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cf77777f77777f77777f77777f77777f77777f77777f77777f77777f76177f777771 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068c9b99999b99999b99999b99999b99999b99999b99999b99999b99999b80999b99991 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffff1 8ffffffc3ffffffbfc7ffffbdfffffffffffbc3ffffffbfffffffcfcfdffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffff83fffffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777777777777777777777777777777770777777771 8ffffffbdffefdfbfcfffffbdfffffffffff7bdffffdfbfffffffefefeffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cf77777f77777f77777f77777f77777f77777f77777f77777f77777f77077f777771 8ffffffbfffffdfbfbfffffbdfffffffffff7bfffffdfbfffffffefefeffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068c99b99b99b99b99b99b99b99b99b99b99b99b99b99b99b99b99b99b99b01b99b99b1 8ffffffbf13cf83a3ffc3ffbdc3bbc3c3ffefbfc3bb83a3ff7dc3efeff7fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffffffffffffffffffffffffff7fbfff7fbfffffffffff83fffffff1 8ffffffc36defdf9dffbdff81bdbbbdbdffefc3bdbbdf9dff7dfdefeff7fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cfffefffffefffffffffffffff7df77f7df77f7fbdff7fbdffffefffff83ffffeff1 8fffffffd6defdfbdffcfffbdbdbbcf81ffeffdbdbbdfbdff6dc1efeff7fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cfffdfffffdffffffffffffff777777777777eef7bdeef7bdfffdfffffc3ffffdff1 8fffffffd6defdfbdfff3ffbdbdbbf3bffff7fdbdbbdfbdff6dbdefefeffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffc0000000000f9d99b99d99b9fdffbbfdffbbfffffffffc1fffffff1 8ffffffbd6defddbdffbdffbdbdbbbdbffff7bdbdbbddbdff55b9efefeffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cffff7fffff7fdfffffffffefffffffffffffddfb7bddfb7bffff7ffffc1fffff7f1 8ffffffc37d83e3bdffc3ffbdc3c5c3c3fffbc3c3c5e3bdffbbc58383dffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffff9bdefefef7b75f77f75f77f7bbb7f7bbb7f7fffffffffe1fffffff1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cffee7fffee7faf7bdbdbdef7777777777777bf777fbf777fffee7fffee0fffee7f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cff827fff827f6def7f7ffbfb999b9d999b9d7f6efb7f6efbff827fff820fff827f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cfe547ffe547f37bdeded6f6bfffffffffffffefef7fefef7fe547ffe540ffe547f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068cf8aa3ff8aa3f17fffffffffd777f77777f77f7fdf7f7fdf7f8aa3ff8aa07f8aa3f1 8ffffffc3ffffbfc7ffffffffffffffffffffffcfcffffffffbfffffffffffffffffffff fffdffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffe80 0068ce5454fe5454f4000000000017f77777f7777efbfedefbfede5454fe54507e5454f1 8ffffffbdffdfbfcfffffdfffffffffffffffffefeffffffff7efffffffffffdffffffff fffeffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffc1fffffffffffffffffffffffffffffffffffffffffe80 0068cca92a7ca92a7200000000001b99999b99999ef7fbbef7fbbca92a7ca9283ca92a71 8ffffffbfffdfbfbfffffdfffffffffffffffffefeffffffff7ffffffffffffdffffffff fffeffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce5454fe5454f555555555555ffffffffffffdf777bdf777be5454fe54503e5454f1 8ffffffbfc383a3ffc3ff83c3bbc3a3a3ffc3c3efefc3a3ffefcfa3ffa3c3a383ffc3a3c 3c3f7fffffffffffffffffffffffffcc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ceaaaafeaaaaf22aaaaaaaaa9f7777df7777dfeef77feef77eaaaafeaaa83eaaaaf1 8ffffffbfbddf9dffbdffdffdbbbddd9dffbdbdefeffdddffefef9dff9dbddddffffdddb dfdf7fffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce5554fe5554f5555555555557777777777777beeff7beeffe5554fe55541e5554f1 8ffffffb1bddfbdffcfffdfc1bb81dfbdffbf81efefc1dfffefefbdffbdbddfdfffc1df8 1c1f7fffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ceaaaafeaaaaf22aaaaa800a999bbb999bbb9f7dffef7dffeeaaaafeaaa81eaaaaf1 8ffffffbdbddfbdfff3ffdfbdd7bfdfbdffbfbfefefbddffff7efbdff9dbddfdfffbddfb fbdeffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce0154fe0154f555555555555fffffffffffff7ff7ef7ff7ee0154fe01541e0154f1 8ffffffb9bdddbdffbdffddb9d7bfdfbdffbdbfefefb9dffff7efbdffa3bddfddffb9dfb fb9effffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ceba0afeba0af22aaaaa888a977dfd777dfd7ef7efdef7efdeba0afeba0a0eba0af1 8ffffffc5c3e3bdffc3ffe3c5efc3dfbdffc3c38383c5dffffb83bdffbfc3dfe3ffc5dfc 3c5dffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce3954fe3954f555555555555f77777f77777fefeeffefeefe3954fe39540e3954f1 8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce824afe824af22aaaaa888a99b99999b9999fefddffefddfe824afe824a0e824af1 8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce5554fe5554f955555555555ffffffffffffedefdeedefdee5554fe5554065554f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ceaa4afeaa4afc2aaaaa888a9777777777777dfdfbddfdfbdeaa4afeaa4a06aa4af1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068ce0000fe0000fe55555555555f77777f77777dfdffddfdffde0000fe0000820000f1 8ffffff81fffffffffdcfffffc3ffffffffc7ffff01fffffffffffbffffffffffffffcfc fdffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffff0000000000199b99b99b99bbbbdfbbbbdfbfffffffffff83fffff1 8ffffffbfffeffffffdefffffbdefffffdfcfffffeffffffffffff7ffffffdfffffffefe feffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068cf7fbfff7fbfff7fbfff7fbffffffffffffffe1fffffffffffffffffffffc3fffff1 8ffffffbffffffffffdefffffbfffffffdfbfffffeffffffffffff7ffffffdfffffffefe feffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffe80 0068cf7fbdff7fbdff7fbdff7fbdff7df77f7df77edfffffffffffffefffc7ffc1ffeff1 8ffffffbfa3cfc3a3c5efbdffbfcfc3a383ffc3ffefc37dc3a3ffef7dc3c383ff7dc3efe ff7fffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffe0fffffffffffffffffffffffffffffffffffffffffe80 0068ceef7bdeef7bdeef7bdeef7bd777777777777cc000000000ffffdfffd7ffc1ffdff1 8ffffff87ddefbd9db9efbdffbfeffd9ddfffbdffefbd7dbdddffef7dbdbddfff7dfdefe ff7fffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cfdffbbfdffbbfdffbbfdffbb9d99b99d99b9a3ffffffffefffffffc1000e1fffff1 8ffffffbfdfef81bdbdefbdffb1efc1bddfffcfffefbd6d81dfffef6d81cfdfff6dc1efe ff7fffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cddfb7bddfb7bddfb7bddfb7bffffffffffff755555555557ffff7fdcffee0fff7f1 8ffffffbfdfefbfbdbdefb9ffbdefbdbddffff3ffefbd6dbfdffff76dbff3dfff6dbdefe feffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cbbb7f7bbb7f7bbb7f7bbb7f75f77f75f77f737fffffffff7ffffff9bdef60fffff1 8ffffffbfdfefbfbdb9efc5ffb9efb9bdddffbdffefbd55bfdffff755bfbdddff55b9efe feffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cbf777fbf777fbf777fbf777f7777777777775aaaaaaaaaabffee7faf7bd70fee7f1 8ffffffbfdf83c3bdc583fdffc583c5bde3ffc3ffefc3bbc3dffffbbbc3c3e3ffbbc5838 3dffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068c7f6efb7f6efb7f6efb7f6efb999b9d999b9d6bfffffffffbff827f6def7b07827f1 8ffffffffffffffffffffbdfffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cfefef7fefef7fefef7fefef7ffffffffffff755555555555fe547f27bdeb06547f1 8ffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cf7fdf7f7fdf7f7fdf7f7fdf7777f77777f77480000000001f8aa3f17fffd80aa3f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cefbfedefbfedefbfedefbfed7f77777f777775ffff01fffde5454f40000181454f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cef7fbbef7fbbef7fbbef7fbbb99999b999994dc386fec20dca92a76000058292a71 8ffffffbdffffbfffffff01fffffffffffffbffffffffffffffffffbfffffe3fffffffff fffffcfffffffffffffffdffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cdf777bdf777bdf777bdf777bffffffffffff55bc7a82fdf5e5454f57ff8dc1454f1 8ffffffbdffffbfefffffeffffffffffffff7fbffffdfffffffffdfbfffffddffffffffd fffffefffffffffffffffeffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cfeef77feef77feef77feef77f7777df7777d55e6ce7cc71deaaaaf567375c0aaaf1 8ffffff9dffffbfffffffeffffffffffffff7ffffffdfffffffffdfbfffffdfffffffffd fffffefffffffffffffffeffffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068c7beeff7beeff7beeff7beeff77777777777755d3a7c7b2cde5554f5529fde1554f1 8ffffffadc37da3cfc3ffefc37dc3a3ffffeff3bbc383ffc3c3bb83a3ffc3dfffc3c3a38 3a3c3efffc3c5bbc3a3c3f7fffffffdc 7ffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffffe80 0068cf7dffef7dffef7dffef7dffe99bbb999bbb955dbb7b3b2cdeaaaaf55298de0aaaf1 8ffffffb5bd7d9defbdffefbd7dbdddffffeffbbbbddfffbdbdbbdf9dffbd83ffbdbd9dd fddfdefffbdb9bbfdddbdf7fffffffcc 7ffffffffffffffffffffffffff07ffffffffffffffffffffffffffffffffffffffffe80 0068cf7ff7ef7ff7ef7ff7ef7ff7effffffffffff45b97379820de0154f742165e0154f1 8ffffffb9816dbdef81ffefbd6d81dfffffeffbbbcfdfffcfbdbbdfbdffbddfffbf81bdd fdfc1efffcfbdbbc1df81f7fffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cef7efdef7efdef7efdef7efd77dfd777dfd765b97379820deba0af742165e0a0af1 8ffffffbdbf6dbdefbfffefbd6dbfdffffff7fbbbf3dffff3bdbbdfbdffbddfffbfbfbdd fdfbdeffff3b9bbbddfbfeffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cfefeeffefeeffefeeffefeeff77777f7777735b97379fffde3954f77ff65e0154f1 8ffffffbdbf559defbfffefbd55bfdfeffff7fbbbbdddffbdbdbbddbdffbddfffbdbfbdd ddfb9efffbdc5bbb9dfbfeffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cfefddffefddffefddffefddf9b99999b99999d810339fffde824af77ff25e024af1 8ffffffbdc3bba383c3ffefc3bbc3dfc7fffbbbc5c3e3ffc3c3c5e3bdffc3dfffc3c3bde 3dfc583ffc3fdc5c5dfc3dffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cedefdeedefdeedefdeedefdeffffffffffffcd810379ef75e5554fb6fb65e0554f1 8ffffffffffffffffffffffffffffffefffffbbfffffffffffffffffffffffffffffffff ffffffffffffdfffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cdfdfbddfdfbddfdfbddfdfbd777777777777e5ffff795dadeaa4afd5d765e824af1 8ffffffffffffffffffffffffffffffffffffc7fffffffffffffffffffffffffffffffff ffffffffffffdfffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cdfdffddfdffddfdffddfdffdf77777f77777f1bbdb0155ade0000fe55505e0000f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cbbbdfbbbbdfbbbbdfbbbbdfb99b99b99b99bf800007c0001fffffff00071fc1fff1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffff7fbfff7fbfffffffffffffffffffffffffffffffffffffffc1fff1 8ffffff7dfffdff7dffffffc7ffff01fffffffffffffffffffffffffffffffbffffffffb fdffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cffffbffffffff7fbdff7fbdff7df77fe3ffdf7df77f7df77f7df77f7df77f61f771 8ffffff7dfffdff7dffffffcfffffefffffffffffeffffffffffffffffffff7ffffffdfb feffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cfffe4fffffffeef7bdeef7bd777777fc1ff17777777777777777777777777607771 8ffffff39fffdff39ffffffbfffffeffffffffffffffffffffffffffffffff7ffffffdfb feffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cfff9e3fffffffdffbbfdffbb9d99b9fc5fc19d99b99d99b99d99b99d99b99c09b91 8ffffff55c3c5ff55c3c5c3ffc3ffefc37dc3a3ffcfc3ffbba3ffa3c37dffefc3c3bb83a 3f7fffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cffe7f4ffffffddfb7bddfb7bfffffffc5fe1ffffffffffffffffffffffffff0fff1 8ffffff6dfdb9ff6dfdbbbdffbdffefbd7dbdddffefbdffbb9dff9dbd7dffefbdbdbbdf9 df7fffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffffe80 0068cff9ffb3fffffbbb7f7bbb7f75f77f7fe3fed5f77f75f77f75f77f75f77f75f07f71 8ffffff6dc1bdff6dc1bb81ffcfffefbd6d81dfffefcfffbbbdffbdbd6dffefcfbdbbdfb df7fffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffff83ffffffffffffffffffffffffffffffffffffffffe80 0068cfe7ffdcfffffbf777fbf777f777777f8c3ef7777777777777777777777777707771 8ffffff7dbdbdff7dbdc7bffff3ffefbd6dbfdfffeff3ffbb9dffbdbd6dfff7f3bdbbdfb deffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068cf9fffef3ffff7f6efb7f6efb999b9df7f9ef999b9d999b9d999b9d999b9d99839d1 8ffffff7db9b9ff7db9bfbfffbdffefbd55bfdfffefbdffbba3ffbdbd55eff7bdbdbbddb deffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068ce7ffff7cfffffefef7fefef7fffffff7feefffffffffffffffffffffffffff83ff1 8ffffff7dc5c5ff7dc5c3c3ffc3ffefc3bbc3dfff83c3ffc5bfffbdc3bbc7fbc3c3c5e3b ddffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c9fffffbf3ffff7fdf7f7fdf7777f77f5e70f777f77777f77777f77777f777703771 8ffffffffffffffffffbdffffffffffffffffffffffffffffbfffffffffeffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c7fffffdfdfffefbfedefbfed7f7777f5e9cf7f77777f77777f77777f77777f41771 8ffffffffffffffffffc3ffffffffffffffffffffffffffffbffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c3fffffefefffef7fbbef7fbbb99999f9ee0fb99999b99999b99999b99999b981991 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c1ffffff7f7ffdf777bdf777bfffffffc9fffffffffffffffffffffffffffffe1ff1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c4ffffffbfbfffeef77feef77f7777dfdcffff7777df7777df7777df7777df7607d1 8ffffff03ffffffffffffffffff03ffffffffcffffffffb7dfffffffffffffffffffffff fffdffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c67ffffe4fdff7beeff7beeff777777fbefff7777777777777777777777777760771 8ffffffbdffffffffffffffffffbdffffffffeffffffff77dffffdfffffffffdffffffff fffeffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c73ffff9f3efff7dffef7dffe99bbb9fb77ff99bbb999bbb999bbb999bbb999b0b91 8ffffffbdffffffffffffffffffbdffffffffeffffffff77dffffdfffffffffdffffffff fffeffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c39fffe7bcf7ff7ff7ef7ff7efffffffa37fffffffffffffffffffffffffffff07f1 8ffffffbdc3a3c5c3a3c3bbc3ffbdbba3c5c3efc37dffef7dc3c383ffa3c3a383ffc3a3c 3c3f7fffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c2cfff9e4f3bfef7efdef7efd77dfd7f697ff77dfd777dfd777dfd777dfd777d0571 8ffffffbdfd9dbbbdddbdbbbdff83bb9dbbfdefbd7dffef6dbdbddfff9dbddddffffdddb dfdf7fffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c2e7fe79b3cdffefeeffefeeff77777f5dbfff77777f77777f77777f77777f770771 8ffffffbdc1bdbb81dfbdbbcfffbdbbbdbbc1efbd6dffef6d81cfdfffbdbddfdfffc1df8 1c1f7fffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffe80 0068c673f9e64cf2ffefddffefddf9b9999f5ebff9b99999b99999b99999b99999b98191 8ffffffbdbdbdc7bfdfbdbbf3ffbdbbbdc7bdefbd6dfff76dbff3dfff9dbddfdfffbddfb fbdeffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffe80 0068c259e799533c7edefdeedefdeffffffedebfffffffffffffffffffffffffffff83f1 8ffffffbdb9bdbfbfdfbdbbbdffbdbbbdbfb9efbd55fff755bfbdddffa3bddfddffb9dfb fb9effffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c65c9e00000f3dfdfbddfdfbd777777ebebff7777777777777777777777777774171 8ffffff03c5bdc3c3dfc3c5c3ff03c5bdc3c583c3bbfffbbbc3c3e3ffbfc3dfe3ffc5dfc 3c5dffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c2ce7fffffffddfdffddfdffdf77777ebedfff77777f77777f77777f77777f774171 8ffffffffffffbdffffffffffffffffffbdffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c64b000000001bbbdfbbbbdfb99b99be3f1ff99b99b99b99b99b99b99b99b99b81b1 8ffffffffffffc3ffffffffffffffffffc3ffffffffffffffffffffffbffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c2cb555555555f7fbffe1fffffffffffffffffffffffffffffffffffffffffffe0f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c6597fffffffdf7fbdfedfffff7df77f7df77fffffffffffffffffffffffffffe0f1 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c2c9739c0739deef7bdcc000f777777777777fffdfffffdfffffdfffffdfffffd0f1 8ffffffbdffffffffffffffe3ff83fffffffffffffffbbfffffffffffffffcffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c659318c0318dfdffbba3ffef9d99b99d99b9fc0001fc0001fc0001fc0001fc00011 8ffffffbdffffffffffffffddffbdffffdffffffffff7bfffffffffffffffeffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c2cb318c0318dddfb7b755557fffffffffffffdfffdfdfffdfdfffdfdfffdfdff051 8ffffffbdffffffffffffffdfffbdffffdffffffffff7bfffffffffffffffeffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c659318c0318dbbb7f737fff75f77f75f77f7fb7b7bfb7b7bfb7b7bfb7b7bfb7b031 8ffffffbdc3bbc3c3a3ffc3dfffbdc3a383c3a3c3ffefa3bdffbbc3a3bdffefc3a3c5c3f ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c2cb739c0739dbf777f5aaaab777777777777fb56dbfb56dbfb56dbfb56dbfb56831 8ffffff81bdbbbdbdddffbd83ff83bddddfbdddbdffef9dbdffbbbdddbdffeffdddbbbdf ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c659318c0318d7f6efb6bfffb999b9d999b9df6b557f6b557f6b557f6b557f6b5031 8ffffffbdbdbbcf81dfffbddfffbfbddfdf81dfcfffefbdbdffbb81dfbdffefc1dfbb81f ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c2cb739c0739dfefef7755555fffffffffffff7fff7f7fff7f7fff7f7fff7f7ffc11 8ffffffbdbdbbf3bfdfffbddfffbfbddfdfbfdff3fff7bdb9ffd7bfdfb9ffefbddfc7bff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c659318c0318df7fdf749fffd777f77777f77efffefefffefefffefefffefefffc11 8ffffffbdbdbbbdbfdfffbddfffbfbddfddbfdfbdfff79dc5ffd7bfdfc5ffefb9dfbfbff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffe80 0068c6cb739c0739defbfed7400017f77777f7777ed5b6fed5b6fed5b6fed5b6fed5b611 8ffffffbdc3c5c3c3dfffc3dfffbfc3dfe3c3dfc3fffba3fdffefc3dffdff83c5dfc3c3f ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffe80 0068c659318c0318def7fbb4d82f5b99999b99999dbb6dfdbb6dfdbb6dfdbb6dfdbb6c01 8ffffffffffffffffffffffffffffffffffffffffffffffbdffffffffbdffffffffbdfff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cacb739c0739ddf777b557c05ffffffffffffdb6a5fdb6a5fdb6a5fdb6a5fdb6a401 8ffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffc3ffffffffc3fff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068ccd9318c0318dfeef7755c7fdf7777df7777dbfffbfbfffbfbfffbfbfffbfbfffb01 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cecb739c0739d7beeff55b39d77777777777780003f80003f80003f80003f8000301 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cf59318c0318df7dffe55b34d99bbb999bbb9ffbfffffbfffffbfffffbfffffbff01 8ffffffffffbfffffffffdfffffffffffffffffffffffffffffffffffffc3fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cf9b739c0739df7ff7e45b36dffffffffffffff3fffff3fffff3fffff3fffff3ff81 8ffffffffffbfffffffffefffffffffffffffffffffffffffffffffffff81fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cfd9318d0318def7efd65b2e577dfd777dfd7ff7fffff7fffff7fffff7fffff7ff81 8ffffffffffbfffffffffefffffffffffffffffffffffffffffffffffff81fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cfeb739c0739dfefeef35b2e5f77777f77777fe7ffffe7ffffe7ffffe7ffffe7ff81 8ffffffffffa3c3bbc3c3f7ffffffffffffffffffffffffffffffffffff01fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cff3318d8318dfefddf9d82659b99999b9999deffffdeffffdeffffdeffffdefffc1 8ffffffffff9dbdbbbdbdf7ffffffffffffffffffffffffffffffffffff01fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cffb739c0739dedefdecd82e5ffffffffffffecf7ffecf7ffecf7ffecf7ffecf7fc1 8ffffffffffbdbdbbcf81f7fffffffffffffffffffffffffffffffffffe01fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cffd739dc739ddfdfbde5fee5777777477777edafffedafffedafffedafffedaffe1 8ffffffffffbdbdbbf3bfeffffffffffffffffffffffffffffffffffffe01fffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cffe739c0739ddfdffdf16a05f77777837777a9afffa9afffa9afffa9afffa9affe0 8ffffffffffbdbdbbbdbfeffffffffffffffffffffffffffffffffffffc00fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cfff084000841bbbdfbf800f199b99b01b99bfffffffffffffffffffffffffffffe0 8ffffffffffbdc3c5c3c3dffffffffffffffffffffffffffffffffffff800fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffff01ffffffffffffffffffffffffffffffffff0 8fffffffffffffffffffffffffffffffffffffffffffffffffffffffff800fffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff07fffffffffffffffffffffffffffffffffffffffe80 0068cf7df77f7df77f7df77f7df77f7df7700df77f7df77f7df77f7df77f7df77f7df770 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0007ffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777770077777777777777777777777777777777770 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0007ffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c9d99b99d99b99d99b99d99b99d99b90019b99d99b99d99b99d99b99d99b99d99b90 0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0003ffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffff001fffffffffffffffffffffffffffffffff0 0ffffffbdffcffffffbfffffffffffffffffffdffffffffe3ffffffffe0003ffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c5f77f75f77f75f77f75f77f75f77f70007f75f77f75f77f75f77f75f77f75f77f70 0ffffffbdffeffffff7ffffffffffffdffffffdffffffffddffffffffc0001feffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777770007777777777777777777777777777777770 0ffffffbdffeffffff7ffffffffffffdffffffdffffffffdfffffffffe0001ffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c999b9d999b9d999b9d999b9d999b9d00039d999b9d999b9d999b9d999b9d999b9d0 0ffffffbdc3efc3ffefc3a3ffc3c3c383ffc3c5c5c3ffc3dfff13c3bba38203cfa3c3fff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffff0003ffffffffffffffffffffffffffffffff0 0ffffff81bdefbdffefbd9dffbdfdbddfffbdb9bbbdffbd83ff6dbdbb9d861def9dbdfff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c777f77777f77777f77777f77777f77004177777f77777f77777f77777f77777f770 0ffffffbdbdef81ffefbdbdff81c1cfdfff81bdbb81ffbddfff6dbdbbbd8601efbdcffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c7f77777f77777f77777f77777f77770023777f77777f77777f77777f77777f77770 0ffffffbdbdefbffff7bdbdffbfbdf3dfffbfbdc7bfffbddfff6dbdbbbd87bdefbdf3fff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068cb99999b99999b99999b99999b99999001999b99999b99999b99999b99999b999991 0ffffffbdbdefbffff7bdbdffbfb9bdddffbfb9bfbfffbddfff6dbdbbbd85b9efbdbdc7f ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffffffffffffffffffe003fffffffffffffffffffffffffffffffff1 07fffffbdc383c3fffbc3bdffc3c5c3e3ffc3c5c3c3ffc3dfff7dc3c5bd83c583bdc3cff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068cf7777df7777df7777df7777df7777d00377df7777df7777df7777df7777df7777d1 07fffffffffffffffffffffffffffffffffffffbdffffffffffffffffff07ffffffffbff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777777417777777777777777777777777777777771 87fffffffffffffffffffffffffffffffffffffc3ffffffffffffffffff0ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffff83fffffffffffffffffffffffffffffffffffffffe80 0068c99bbb999bbb999bbb999bbb999bbb9981bb999bbb999bbb999bbb999bbb999bbb91 83fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068cfffffffffffffffffffffffffffffffe1fffffffffffffffffffffffffffffffff1 83fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068c77dfd777dfd777dfd777dfd777dfd7760fd777dfd777dfd777dfd777dfd777dfd71 83fffffffffc3ffffffbfffffe3ffffbffffffffffffffffdff01c7ffff0ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068cf77777f77777f77777f77777f77777f60777f77777f77777f77777f77777f777771 81fffffffffbdffffdfbfffffddffffbffffffffffffffffdffefcfffff0ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068c9b99999b99999b99999b99999b99999b09999b99999b99999b99999b99999b99991 81fffffffffbfffffdfbfffffdfffffbffffffffffffffffdffefbfffff0ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068cffffffffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffff1 80fffffffffbfc3bb83a3ffc3dfff7da3c3a3c3ffa3c3c3c5ffeffffffe0ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068c7777777777777777777777777777777707777777777777777777777777777777771 80fffffffffc3bdbbdf9dffbd83ff7d9dbdddbdffddbdfdb9ffeffffffe1ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068cf77777f77777f77777f77777f77777f70777f77777f77777f77777f77777f777771 80ffffffffffdbdbbdfbdffbddfff6dbd81df81ffdfbdc1bdffeffffffe1ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe80 0068c99b99b99b99b99b99b99b99b99b99b99819b99b99b99b99b99b99b99b99b99b99b1 807fffffffffdbdbbdfbdffbddfff6dbdbfdfbfffdfbdbdbdffeffffffe1ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffeff ffe8cff7bfeffffffffffffffffffffffffff87fffffffff7fbfffffffffff7ffffffff1 807ffffffffbdbdbbddbdffbddfff55bdbfdfbfffdfbdb9b9ffeffffffe1ffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffeff ffe8cff57efffc07fffc07fffc07ff7df77f78377fffffff7fbdffc7ffffff7fffc7fff1 887ffffffffc3c3c5e3bdffc3dfffbbbdc3dfc3ffdfc3c5c5ffeffffffe1ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffe00 0008cfb57afff3f9fff3f9fff3f9f777777770377be03efeef7bdfd7fffffebfffd7fff1 883fffffffffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffff fff8cdbb7ddff60efff60efff60ef9d99b99d81b940d803fdffbbc1000fffc5ffc1000f1 883fffffffffffffffffffffffffffffffffffffffffffffffffffffffc1ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffffff fff8c57afddfec037fec037fec037ffffffffc3ff9e03cbddfb7bdcffefff9effdcffef1 8c3fffffffffffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffffff fff8cd7affefcbf1554bf1554bf175f77f75f41f7bfdfebbbb7f79bdef7ff2f7f9bdef71 8c1fffffffffffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8caffbfefcbf8800bf8800bf8b777777774177bfdfebbf777faf7bd7fe5fbfaf7bd71 8c1ffffe7cfe3ffcfe3ffc7ffffbdfffffffffffbfffffffffffffffffc3fffffcfcffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8caff77ffabfcbfcbfcbfcbfcb999b9d99819dbf07e87f6efb6def7bfcbfdf6def7b1 8e0ffffdbefddffefddffcfffffbdfffffffffff7ffffffffffffffffdc3fffffefeffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cfff57ffb5fcbfd5fcbfd5fcbffffffffe0ffb8d8effefef727bdebf95fef27bdeb1 8e0ffffbdefdfffefdfffbfffffbdfffffffffff7ffffffffffffffffdc3fffffefeffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cffbafbf3679b55679b55679b777f77776077a7272ff7fdf717fffdf2bff717fffd1 8f0ffffbdefdfc3efdfc3ffc3ffbdc3bbc3c3ffefa3c3c3a3ff7dc3c3803f7dc3efeffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cfebbfaf3b83001b83001b8377f77777f70779820cfefbfed400001e55ffb4000011 8f07fffbdef83fdef83fdffbdff81bdbbbdbdffef9dbdfdddff7dbdbdd83f7dfdefeffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cfe7fede5cfe7fdcfe7fdcfe7b99999b99099a4a52fef7fbb600005cabffd6000051 8f07fff81efdfc1efdfc1ffcfffbdbdbbcf81ffefbd81c1dfff6d81cfd87f6dc1efeffff ffffffffffffffffffffffffffffffdc 000000000000000000000000000000000000000000000000000000000000000000000000 0000cff7eade7f00bbaf00bbaf00ffffffffff07f042007df777b57ff8de57ff357ff8d1 8f87fffbdefdfbdefdfbdfff3ffbdbdbbf3bffff7bdbfbddfff6dbff3d87f6dbdefeffff ffffffffffffffffffffffffffffffdc 000000000000000000000000000000000000000000000000000000000000000000000000 0000cf7fedfcbffdbbbffdbbb7fdff7777df7707d102047feef77567375f1ffc75673751 8f83fffbdefdfb9efdfb9ffbdffbdbdbbbdbffff7bdbfb9dfff55bfbdd87f55b9efefc7f ffffffffffffffffffffffffffffffdc 000000000000000000000000000000000000000000000000000000000000000000000000 0000cb5ff5fcfa03ff5a03ff5e03f7777777770774020177beeff5529fdf63e375529fd1 8f83fffbd83dfc583dfc5ffc3ffbdc3c5c3c3fffbbdc3c5dfffbbc3c3e07fbbc58383cff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8caaff7f97d73ff7d73ff6d73f99bbb999b839202027f7dffe55298df7c1f755298d1 8fc3ffffffffffffffffffffffffffffffffffffffffffffffffffffff87fffffffffbff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cdbffff9f537feb537febd37ffffffffff83f5820d7f7ff7e742165f1ffc77421651 8fc1ffffffffffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cdfbdff2fb73fefb73fedb73f77dfd777d817270727ef7efd742165f2ffa77421651 8fc1ffffffffffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cffd57fbeb37fd6b37fd7b37ff77777f7743748f897fefeef77ff65f2e3a777ff651 8fe0ffffffffffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffffff fff8cdfd57bbf773f9f773f9b773f9b99999b9819b5056ffefddf77ff25f2d9a777ff251 8fe0fffffffffffffffbfffffe3ffffbfffffffdffffffffffffffffff0fffffffffffff ffffffffffffffffffffffffffffffdc 7fbeffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffff fff8c5feafddd73001d73001f737ffffffffffc1f8aaa8fedefdeb6fb65f0d987b6fb651 8ff0fffffffffffffdfbfffffddffffbfffffffeffffffffffffffffff0fffffffffffff ffffffffffffffffffffffffffffffdc 7fbefffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c5ffafdeef73feef73feef73f777777777417c5551fdfdfbdd5d765f4c197d5d7651 8ff07ffffffffffffdfbfffffdfffffbfffffffeffffffffffffffffff0fffffffffffff ffffffffffffffffffffffffffffffdc 7fddfffffffffffff7fffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8cbffefef2d37ff2d37ff2d37ff77777f77617f0a87fdfdffde55505f7c1f7e555051 8ff07ffffffc3c3bb83a3ffc3dfffc3a3c3a3c3f7fffffffffffffffff0fffffffffffff ffffffffffffffffffffffffffffffdc 7febe1ddffe1e1e1e3fffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8cbffffefdb73ffdb73ffdb73f99b99b99b80bfe03ffbbbdfbf00071f3fff7f000711 8ff87ffffffbdbdbbdf9dffbd83ffbd9dbd9dbdf7fffffffffffffffff0fffffffffffff ffffffffffffffffffffffffffffffdc 7ff7deddffdededef7fffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c000000000000000000fdf77ffffffffffe0ff7fbffff7bfef7fbfff7fff7f7fbff1 8ff83ffffffcfbdbbdfbdffbddfffcfbdbdbdcff7ffffffffffffffffe0fffffffffffff ffffffffffffffffffffffffffffffdc 7ff7deddffe7c0c0fffffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c000000000000000000fdc07ff7df77f7df07f7fbdfff57eff7fbdff3fff7f7fbdf1 8ff83fffffff3bdbbdfbdffbddffff3bdbd9df3efffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffdc 7ff7deddfff9dfdffffffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c000000000000000000fd3f9f777777777707eef7bdfb57afeef7bdf7f7f7eef7bd1 8ffc3ffffffbdbdbbddbdffbddfffbdbdbda3bdefffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffdc 7ff7deddffdedfdff7fffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c000000000000000000fd60ef9d99b99d9901fdffbbdbb7ddfdffbbf3ebf7fdffbb1 8ffc1ffffffc3c3c5e3bdffc3dfffc3bdc3bfc3dfffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffcc 7ff7e1e2ffe1e1e1e3fffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c000000000000000000fcc037ffffffffff07ddfb7b57afddddfb7bf7e3f7ddfb7b1 8ffc1ffffffffffffffffffffffffffffffbfffffffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffff7fffffffffff0ffffffffffffffffffffffffffffffffffffffffff fff8c00000000000000000054bf175f77f75f7787bbb7f7d7affebbb7f7f3e3f7bbb7f71 8ffe0ffffffffffffffffffffffffffffffbfffffffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffe00 0008c00000000000000000000bf8b777777777707bf777faffbfebf777ff7fff7bf777f1 8ffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffeff ffe8c000000000000000000fcbfcb999b9d999b817f6efbaff77f7f6efbf3fff77f6efb1 8fff0ffffffffffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffff ffffffffffffffffffffffffffffffdc 7fbefbbffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fd5fcbffffffffff83fefef7fff57ffefef7f7f7f7fefef71 8fff07f01ffffffffffffbffffffffffffbffffffffffffe3ffbfffffc1fffffffffffff ffffffffffffffffffffffffffffffdc 7bbbbbbffffffffffffffffffffff0fffffffffffffffffffffffffffffffffffffffe80 0068c00000000000000000055679b777f77777f43f7fdf7ffbafbf7fdf7f3ebf7f7fdf71 8fff07fefffefffdfffffbffffffffffff7ffffffdfffffddffbfffffc3fffffffffffff ffffffffffffffffffffffffffffffdc 7ceccdcffffffffffffffffffffff07ffffffffffffffffffffffffffffffffffffffe80 0068c00000000000000000001b8377f77777f7743efbfedfebbfaefbfedf7e3f7efbfed1 8fff87fefffffffdfffffbffffffffffff7ffffffdfffffdfffbfffffc3fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fdcfe7b99999b99981ef7fbbfe7fedef7fbbf3e3f7ef7fbb1 8fff83fef7dcfc383bdffa3c3bbc3c3ffefc3c3c383ffc3dfffa3c3a3c3fffffffffffff ffffffffffffffffffffffffffffffdc 7afbbfbffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000baf00fffffffffffc1df777bff7eaddf777bf7fff7df777b1 8fff83fef7defbddfbdff9dbdbbbdbdffefbdfdbddfffbd83ff9dbddd81fffffffffffff ffffffffffffffffffffffffffffffcc 7bbbbbbffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000bb7fdff7777df77761feef77f7fedffeef77f3fff7feef771 8fffc3fef6defcfdfbdffbdbdbbcf81ffef81c1cfdfffbddfffbd81df81fffffffffffff ffffffffffffffffffffffffffffffdc 7cccdceffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000f5e03f7777777777617beeffb5ff5f7beefff7fff77beeff1 8fffc1fef6deff3dfb9ffbdbdbbf3bffff7bfbdf3dfffbddfffbdbfdf83fffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000f6d73f99bbb999bba0f7dffeaaff7ff7dffef3e3f7f7dffe1 8fffc1fef55efbdddc5ffbdbdbbbdbffff7bfb9bdddffbddfffbdbfdf83fffffffffffff ffffffffffffffffffffffffffffffdc 7bbbfbbffffffffffffffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000ebd37fffffffffffe0f7ff7edbfffff7ff7ef7d9f7f7ff7e1 8fffe1fefbb83c3e3fdffbdc3c5c3c3fffbc3c5c3e3ffc3dfffbdc3df83fffffffffffff ffffffffffffffffffffffffffffffdc 7bfbbbbfffffdfdfe7fffffffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000edb73f77dfd777dfd0ef7efddfbdffef7efdf3d9f7ef7efd1 8fffe0fffffffffffbdffffffffffffffffffffffffffffffffffffff87fffffffffffff ffffffffffffffffffffffffffffffdc 7dcccccfffffdfdff7ffffeffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000d7b37ff77777f777707efeefffd57ffefeeff7d9f7fefeef1 8fffe0fffffffffffc3ffffffffffffffffffffffffffffffffffffff87fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffdfdff7ffffeffffff87ffffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000009b773f9b99999b99907efddfdfd57bfefddff3c9f7fefddf1 8ffff07ffffffffffffffffffffffffffffffffffffffffffffffffff87fffffffffffff ffffffffffffffffffffffffffffffdc 7fbbbbefe1e1d1d1f7e1e1c1e1d1e061fffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000001f737ffffffffffff86defde5feafdedefdef7d9f7edefde1 8ffff07ffffffffffffffffffffffffffffffffffffffffffffffffff87fffffffffffff ffffffffffffffffffffffffffffffdc 7bbbbbbfdedececef7dedeefdeced85efffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000eef73f7777777777705fdfbd5ffafddfdfbdfbd9efdfdfbd1 8ffff87ffffffffffffffffffffffffffffffffffffffffffffffffff87fffffffffffff ffffffffffffffffffffffffffffffcc 7ccdddcfdfdededef7c0e7efdedec067fffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000f2d37ff77777f777701fdffdbffefedfdffdfcc19fdfdffd1 8ffff83ffffffffffffffffffffffffffffffffffffffffffffffffff07fffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffdfdededef7dff9efdeded879fffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fdb73f99b99b99b9983bbdfbbffffebbbdfbff1c7fbbbdfb1 8ffff83ffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffff ffffffffffffffffffffffffffffffdc 7bbefebfdedececef7dfdeeededed81efffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fdf77ffffffffffffc3ff7fff7fbfff7fbffffffff0000001 8ffffc3ffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffff ffffffffffffffffffffffffffffffdc 7fbbbbbfe1e1d1d1c1e1e1f1e1dee021fffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fdc07ff7df77f7df743ff7fff7fbdff7fbdffff0009b9b9b1 8ffffc1ffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffff ffffffffffffffffffffffffffffffdc 7cdccccffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fd3f9f7777777777741febffeef7bdeef7bdffcf1f7c7c7c1 8ffffc1ffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fd60ef9d99b99d99b81fc5fffdffbbfdffbbff9fffffffff1 8ffffe1ffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffff ffffffffffffffffffffffffffffffdc 7bbbbbbffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fcc037fffffffffffe1f9effddfb7bddfb7bff79f9cfcfcf1 8ffffe0ffffffffffffffffffffffffffffffffffffffffffffffffff0ffffffffffffff ffffffffffffffffffffffffffffffdc 7fbbbbbffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c00000000000000000054bf175f77f75f77f61f2f7fbbb7f7bbb7f7fe76763737371 8ffffe0fffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffff ffffffffffffffffffffffffffffffdc 7ccdccdffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c00000000000000000000bf8b7777777777760e5fbfbf777fbf777ffe8f8ff8f8f81 8fffff07ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fcbfcb999b9d999b9c0cbfdf7f6efb7f6efbfdffffffffff1 8fffff07ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fd5fcbffffffffffff095feffefef7fefef7fde7e7f3f3f31 8fffff87ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c00000000000000000055679b777f77777f7702bff7f7fdf7f7fdf7fdd9d9cdcdcd1 8fffff83ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c00000000000000000001b8377f77777f7777055ffbefbfedefbfedfa3e3e3e3e3e1 8fffff83ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fdcfe7b99999b9999982bffdef7fbbef7fbbfbffffffffff1 8fffffc3ffffffffffffffffffffffffffffffffffffffffffffffffe1ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000baf00fffffffffffff857ff3df777bdf777bfbf3f3e7e7e71 8fffffc1ffffffffffffffffffffffffffffffffffffffffffffffffc1ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000bb7fdff7777df7777d81ffc7feef77feef77fcecec9b9b9b1 8ff818001818181818181818181818181818181818181818181818180018181818181818 181818181818181fffffffffffffffdc 7ffffffffffffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000f5ffdf777777777777823e377beeff7beefffd1f1f7c7c7c1 8fffffe1ffffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000f6ee3f99bbb999bbb9c3c1f7f7dffef7dffefdffffffffff1 8fffffe0ffffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000ebffbfffffffffffffc1ffc7f7ff7ef7ff7efe9f9ffcfcfc1 8ff818001818181818181818181818181818181818181818181818180018181818181818 181818181818181fffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000eddc7f77dfd777dfd7c0ffa7ef7efdef7efdfe67677373731 8ffffff07fffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000d7ff7ff77777f77777c0e3a7fefeeffefeefff78f88f8f8f1 8ffffff07fffffffffffffffffffffffffffffffffffffffffffffffc3ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000009bb8ff9b99999b9999e0d9a7fefddffefddfffbfffffffff1 8ffffff87fffffffffffffffffffffffffffffffffffffffffffffff83ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000001ffeffffffffffffffe0d987edefdeedefdeffcfcff9f9f91 8ffffff83fffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000ef75ff777777777777e0c197dfdfbddfdfbdfff3b3e6e6e61 8ffffff83fffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000f3f9fff77777f77777e0c1f7dfdffddfdffdfffc001f1f1f1 8ffffffc3fffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c000000000000000000fc07ff99b99b99b99bf0fff7bbbdfbbbbdfbffffff0000001 8ffffffc1fffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000000000000000000000000000000000000000000000000000001 8ffffffc1fffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000000000000000000000000000000000000000000000000000001 8ffffffe1fffffffffffffffffffffffffffffffffffffffffffffff87ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068c0000000000000000000000000000000000000000000000000000000000000000001 8ffffffe0fffffffffffffffffffffffffffffffffffffffffffffff07ffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffff87ffffffffffffffffffffffffffff 8ffffffe0fffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffff83ffffffffffffffffffffffffffff 8fffffff07ffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffe80 006800000000000000000000000000000000000000000000000000000000000000000000 0fffffff07ffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 006800000000000000000000000000000000000000000000000000000000000000000000 0fffffff87ffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 006800000000000000000000000000000000000000000000000000000000000000000000 0fffffff83ffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffc1ffffffffffffffffffffffffffff 8fffffff83ffffffffffffffffffffffffffffffffffffffffffffff0fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068ffffffffffffffffffffffffffffffffffffffc1ffffffffffffffffffffffffffff 8fffffffc3fffffffffffffffffffffffffffffffffffffffffffffe0fffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068ffffc0007fffffc0007fffffc0007fffffc00061ffffffffffffffffffffffffffff 8fffffffc1fffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068ffffdfff7fffffdfff7fffffdfff7fffffdfff61ffffffffffffffffffffffffffff 8fffffffc1fffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff60ffffffffffffffffffffffffffff 8fffffffe1fffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffdf7d0037fff0fdfff7ffe07dfff60ffffffffffffffffffffffffffff 8fffffffe0fffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffdf7d0037ffef7dfff7ffeffdfff70ffffffffffffffffffffffffffff 8fffffffe0fffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffce7d0037ffeffdfff7ffeffdfff70ffffffffffffffffffffffffffff 8ffffffff07ffffffffffffffffffffffffffffffffffffffffffffe1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffd57d0037ffeffdfff7ffeffdfff707fffffffffffffffffffffffffff 8ff81818101818181818181818181818181818181818181818181818181818181818181f ffffffffffffffffffffffffffffffdc 7fffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068fe07d0037ffdb7d0037ffeffdfff7ffe1fdfff707fffffffffffffffffffffffffff 8ffffffff87ffffffffffffffffffffffffffffffffffffffffffffc1fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffe1ffffffffffffffffff0ffffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffdb7d0037ffec7dfff7ffeffdfff787fffffffffffffffffffffffffff 8ffffffff83ffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffffc0ffffffffffffffffff07fffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffdf7d0037ffef7dfff7ffeffdfff783fffffffffffffffffffffffffff 8ffffffff83ffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffc07fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffdf7d0037ffee7dfff7ffeffdfff783fffffffffffffffffffffffffff 8ffffffffc3ffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffc07fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fef7d0037ffdf7d0037fff17dfff7ffeffdfff7c3fffffffffffffffffffffffffff 8ffffffffc1ffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffc07fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7c3fffffffffffffffffffffffffff 8ffffffffc1ffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffffc07fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7c1fffffffffffffffffffffffffff 8ffffffffe1ffffffffffffffffffffffffffffffffffffffffffffc3fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff803fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7c1fffffffffffffffffffffffffff 8ffffffffe0ffffffffffffffffffffffffffffffffffffffffffff83fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff803fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7e1fffffffffffffffffffffffffff 8ffffffff80fffffffbffffffffffffffffffffffffdfffffffffff87fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff803fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fe0fd0037fffffd0037fffffdfff7fffffdfff7e1fffffffffffffffffffffffffff 8ffffffffe07ffffff7efffffffffffdfffffffffffefffffffffff87fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff803fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fef7d0037fffffd0037fffffdfff7fffffdfff7e0fffffffffffffffffffffffffff 8ffffffffe07ffffff7ffffffffffffdfffffffffffefffffffffff87fffffffffffffff ffffffffffffffffffffffffffffffcc 7fffffffff803fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fef7d0037fffffd0037fffffdfff7fffffdfff7e0fffffffffffffffffffffffffff 8ffffffffe823a3ffefcfa3ffa3c3a383ffc3a3c3c3f7ffffffffff87fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff001fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fef7d0037fff0fd0037ffe8fdfff7fff0fdfff7f0fffffffffffffffffffffffffff 8ffffffffe81d9dffefef9dff9dbddddffffdddbdfdf7ffffffffff87fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff001fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068fe0fd0037ffff7d0037fff77dfff7ffef7dfff7f0fffffffffffffffffffffffffff 8ffffffffe83dbdffefefbdffbdbddfdfffc1df81c1f7ffffffffff87fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff001fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068feffd0037fff07d0037fff7fdfff7ffef7dfff7f07ffffffffffffffffffffffffff 8ffffffffec3dbdfff7efbdff9dbddfdfffbddfbfbdefffffffffff07fffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff001fffffffffffffffff87fffffffffffffffffffffffffffffffffffffe80 0068feffd0037ffef7d0037fff7fdfff7ffef7dfff7f07ffffffffffffffffffffffffff 8ffffffffec1dbdfff7efbdffa3bddfddffb9dfbfb9efffffffffff0ffffffffffffffff ffffffffffffffffffffffffffffffdc 7fffffffff001fffffffffffffffff83fffffffffffffffffffffffffffffffffffffe80 0068feffd0037ffee7d0037fff7fdfff7ffef7dfff7f87ffffffffffffffffffffffffff 8ffffffff801dbdfffb83bdffbfc3dfe3ffc5dfc3c5dfffffffffff0ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffe001fffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068feffd0037fff17d0037fff7fdfff7fff0fdfff7f83ffffffffffffffffffffffffff 8fffffffffe1fffffffffffffbfffffffffffffffffffffffffffff0ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffe101fffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7f83ffffffffffffffffffffffffff 8fffffffffe0fffffffffffffbfffffffffffffffffffffffffffff0ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffe10ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7fc3ffffffffffffffffffffffffff 8fffffffffe0fffffffffffffffffffffffffffffffffffffffffff0ffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7fc3ffffffffffffffffffffffffff 8ffffffffff0fffffffffffffffffffffffffffffffffffffffffff0ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7fc1ffffffffffffffffffffffffff 8ffffffff8307fffffbffffffffffffcfffffffffffffffdffffffe0ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7fc1ffffffffffffffffffffffffff 8ffffffffef07fffff7ffffffdfffffefffffffffffffffeffffffe1ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7fe1ffffffffffffffffffffffffff 8ffffffffef83fffff7ffffffdfffffefffffffffffffffeffffffe1ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7fe1ffffffffffffffffffffffffff 8ffffffffef83a3ffefc3c3a383a3c3efffc3c5bbc3a3c3f7fffffe1ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffe8fd0037fff0fdfff7fff0fdfff7fe0ffffffffffffffffffffffffff 8ffffffffef819dffefbdbd9ddfddfdefffbdb9bbfdddbdf7fffffe1ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffe77d0037ffff7dfff7ffef7dfff7fe0ffffffffffffffffffffffffff 8ffffffffef81bdffefbf81bddfdfc1efffcfbdbbc1df81f7fffffe1ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffef7d0037fff07dfff7ffef7dfff7ff0ffffffffffffffffffffffffff 8ffffffffef81bdfff7bfbfbddfdfbdeffff3b9bbbddfbfeffffffe1ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffef7d0037ffef7dfff7ffef7dfff7ff0ffffffffffffffffffffffffff 8ffffffffefa1bdfff7bdbfbddddfb9efffbdc5bbb9dfbfeffffffc1ffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffff0ffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffef7d0037ffee7dfff7ffef7dfff7ff07fffffffffffffffffffffffff 8ffffffff83a0bdfffbc3c3bde3dfc583ffc3fdc5c5dfc3dffffffc3ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffc1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffef7d0037fff17dfff7fff0fdfff7ff07fffffffffffffffffffffffff 8ffffffffffe0fffffffffffffffffffffffffdfffffffffffffffc3ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7ff87fffffffffffffffffffffffff 8fffffffffff0fffffffffffffffffffffffffdfffffffffffffffc3ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7ff83fffffffffffffffffffffffff 8fffffffffff07ffffffffffffffffffffffffffffffffffffffffc3ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7ff83fffffffffffffffffffffffff 8fffffffffff07ffffffffffffffffffffffffffffffffffffffffc3ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffdfff7fffffdfff7ffc3fffffffffffffffffffffffff 8ffffffffc3f83ffffdbffffffffffffbffffffffffffffcfcfdffc3ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037ffff7dfff7ffc3fffffffffffffffffffffffff 8ffffffffbdf83ffffdbffffffffffff7ffffffdfffffffefefeff83ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037ffff7dfff7ffc1fffffffffffffffffffffffff 8ffffffffbffc3ffffdbffffffffffff7ffffffdfffffffefefeff87ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037ffff7dfff7ffc1fffffffffffffffffffffffff 8ffffffffbfb803a3c5a3c3bbc3c3ffefc3c3c383ff7dc3efeff7f87ffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fff0fd0037fff0fd0037fff17dfff7ffe1fffffffffffffffffffffffff 8ffffffffbfb81dddb99dbdbbbdbdffefbdfdbddfff7dfdefeff7f87ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffff7d0037ffef7d0037ffee7dfff7ffe1fffffffffffffffffffffffff 8ffffffffb1ba01dfbdbdbdbbcf81ffef81c1cfdfff6dc1efeff7f87ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fff07d0037ffeffd0037ffef7dfff7ffe0fffffffffffffffffffffffff 8ffffffffbdba0ddfbdbdbdbbf3bffff7bfbdf3dfff6dbdefefeff87ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff0ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffef7d0037ffeffd0037ffef7dfff7ffe0fffffffffffffffffffffffff 8ffffffffb9ba09dfb9bdbdbbbdbffff7bfb9bdddff55b9efefeff87ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff07fffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ffee7d0037ffef7d0037ffee7dfff7fff0fffffffffffffffffffffffff 8ffffffffc5c505dfc5bdc3c5c3c3fffbc3c5c3e3ffbbc58383dff07ffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87fffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fff17d0037fff0fd0037fff17dfff7fff0fffffffffffffffffffffffff 8ffffffffffff07fffffffffffffffffffffffffffffffffffffff0fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87fffffffffffffffffe1fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fff07ffffffffffffffffffffffff 8ffffffffffff07fffffffffffffffffffffffffffffffffffffff0fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87fffffffffffffffffe0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fff07ffffffffffffffffffffffff 8ffffffffffff83fffffffffffffffffffffffffffffffffffffff0fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fff87ffffffffffffffffffffffff 8ffffffffffff83fffffffffffffffffffffffffffffffffffffff0fffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fff83ffffffffffffffffffffffff 8ffffffffc3ffc3bfc7fffffffffffffffffffbfffffffffffffff0ffffffffdffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fff83ffffffffffffffffffffffff 8ffffffffbdffc1bfcfffffdffffffffffffff7efffffffffffdff0ffffffffeffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fffc3ffffffffffffffffffffffff 8ffffffffbfffc1bfbfffffdffffffffffffff7ffffffffffffdfe0ffffffffeffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffdfff7fffc3ffffffffffffffffffffffff 8ffffffffbfc381a3ffc3ff83c3bbc3a3a3ffefcfa3ffa3c3a383e1c3a3c3c3f7fffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fff0fd0037fffffdfff7fffc1ffffffffffffffffffffffff 8ffffffffbfbdc09dffbdffdffdbbbddd9dffefef9dff9dbddddfe1fdddbdfdf7fffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037ffef7d0037fffffdfff7fffc1ffffffffffffffffffffffff 8ffffffffb1bdc0bdffcfffdfc1bb81dfbdffefefbdffbdbddfdfe1c1df81c1f7fffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037ffe07d0037fffffdfff7fffe1ffffffffffffffffffffffff 8ffffffffbdbdd0bdfff3ffdfbdd7bfdfbdfff7efbdff9dbddfdfe1bddfbfbdeffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037ffeffd0037fffffd0037fffe1ffffffffffffffffffffffff 8ffffffffb9bdd03dffbdffddb9d7bfdfbdfff7efbdffa3bddfdde1b9dfbfb9effffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037ffeffd0037fffffd0037fffe0ffffffffffffffffffffffff 8ffffffffc5c3e03dffc3ffe3c5efc3dfbdfffb83bdffbfc3dfe3e1c5dfc3c5dffffffff ffffffffffffffffffffffffffffffcc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fff0fd0037fffffd0037fffe0ffffffffffffffffffffffff 8fffffffffffff83fffffffffffffffffffffffffffffbfffffffe1fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff0ffffffffffffffffffffffff 8fffffffffffff83fffffffffffffffffffffffffffffbfffffffc1fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff0fffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff0ffffffffffffffffffffffff 8fffffffffffffc3fffffffffffffffffffffffffffffffffffffc3fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff07ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff07fffffffffffffffffffffff 8fffffffffffffc1fffffffffffffffffffffffffffffffffffffc3fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff07fffffffffffffffffffffff 8ffffffffc3fffc1fffbdffcfcffffbffffffffffffe3ffffffffc3ffffcffffffffffff fffdffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff87fffffffffffffffffffffff 8ffffffffbdefde1fffbdffefeffff7ffffffdfffffddffffffffc3ffffeffffffffffff fffeffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff87fffffffffffffffffffffff 8ffffffffbfffde0fffbdffefeffff7ffffffdfffffdfffffffffc3ffffeffffffffffff fffeffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff83fffffffffffffffffffffff 8ffffffffbfcf820dffbdc3efefffef7dc3c383ffc3dfffc3c3a383a3c3efffc3c5bbc3a 3c3f7fffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffff83fffffffffffffffffffffff 8ffffffffbfefdf0dff81fdefefffef7dbdbddfffbd83ffbdbd9d83ddfdefffbdb9bbfdd dbdf7fffffffffffffffffffffffffcc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fffffd0037fffffd0037fffffd0037ffffc3fffffffffffffffffffffff 8ffffffffbfefdf05ffbdc1efefffef6d81cfdfffbddfffbf81bd87dfc1efffcfbdbbc1d f81f7fffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037ff7ffd0037fffffd0037fffffd0037ffffc1fffffffffffffffffffffff 8ffffffffbfefdf01ffbdbdefeffff76dbff3dfffbddfffbfbfbd87dfbdeffff3b9bbbdd fbfeffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fc3ffd0037fffffd0037fffffd0037ffffc1fffffffffffffffffffffff 8ffffffffbdefdd81ffbdb9efeffff755bfbdddffbddfffbdbfbd85dfb9efffbdc5bbb9d fbfeffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037f81ffd0037fffffd0037fffffd0037ffffe1fffffffffffffffffffffff 8ffffffffc383e381ffbdc58383fffbbbc3c3e3ffc3dfffc3c3bd83dfc583ffc3fdc5c5d fc3dffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037f01ffd0037fffffd0037fffffd0037ffffe1fffffffffffffffffffffff 8ffffffffffffff81ffffffffffffffffffffffffffffffffffff87fffffffffffdfffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037c00ffd0037fffffd0037fffffd0037ffffe0fffffffffffffffffffffff 8ffffffffffffffc1ffffffffffffffffffffffffffffffffffff87fffffffffffdfffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd00378007fd0037fffffd0037fffffd0037ffffe0fffffffffffffffffffffff 8ffffffffffffffc1ffffffffffffffffffffffffffffffffffff07fffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff87ffffffffffffffffffffffffffffffffffffe80 0068ffffd00378003fd0037fffffd0037fffffd0037fffff0fffffffffffffffffffffff 8ffffffffffffffe1ffffffffffffffffffffffffffffffffffff0ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffff83ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037c003fd0037fffffd0037fffffd0037fffff0fffffffffffffffffffffff 8ffffffff81ffffe0fbffffffffffcfcfdfffffcfffffffffffff0ffffffffffffffffff ffffffffffffffffffffffffffffffcc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffd0037fc03fd0037fffffd0037fffffd0037fffff07ffffffffffffffffffffff 8fffffffffdffffe0f7ffffffffffefefefffffefffffffffdfff0ffffffffffffffffff fffffffffdffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffdfff7fc03fdfff7fffffdfff7fffffdfff7fffff07ffffffffffffffffffffff 8fffffffffbfffff0f7ffffffffffefefefffffefffffffffdfff0ffffffffffffffffff fffffffffdffffffffffffffffffffdc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffdfff7fc03fdfff7fffffdfff7fffffdfff7fffff87ffffffffffffffffffffff 8fffffffff7c3c3f06fc37dff7dc3efeff7ffa3efc3c3c3ff83c30fc3c3c3ff13c3a3bdf f13c3a3c383c3a3c3fffffffffffffdc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffc0007f83ffc0007fffffc0007fffffc0007fffff87ffffffffffffffffffffff 8ffffffffefbdbdf06fbd7dff7dfdefeff7ff9deffdbdbdffdfbd0fbdbdbdff6dfd9dbdf f6dbd9dbddfbdddbdfffffffffffffdc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff87ffffffffffffffffffffffffffffffff83ffffffffffffffffffffff 8ffffffffdfbdbdf86fcf6dff6dc1efeff7ffbdefc1bf81ffdfbc0fcf8181ff6dc1bdbdf f6dbdbdcfdf81dfcffffffffffffffdc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff87ffffffffffffffffffffffffffffffff83ffffffffffffffffffffff 8ffffffffbfbdbdf837f36dff6dbdefefefff9defbdbfbfffdfbc1ff3bfbfff6dbdbdb9f f6dbdbdf3dfbfdff3fffffffffffffdc 7ffffffffff87ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff87ffffffffffffffffffffffffffffffffc3ffffffffffffffffffffff 8ffffffffbfbdbdf837bd55ff55b9efefefffa3efb9bdbfffddbc1fbdbfbfff6db9bdc5f f6dbdbdbdddbfdfbdfffffffffffffdc 7ffffffffff83ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff07ffffffffffffffffffffffffffffffffc1ffffffffffffffffffffff 8ffffffff81c3c3fc1bc3bbffbbc58383dfffbf83c5c3c3ffe3c21fc3c3c3ff7dc5bdfdf f7dc3bdc3e3c3dfc3fffffffffffffdc 7ffffffffffc3ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff0fffffffffffffffffffffffffffffffffc1ffffffffffffffffffffff 8fffffffffffffffc1fffffffffffffffffffbffffffffffffffe1fffffffffffffffbdf ffffffffffffffffffffffffffffffcc 7ffffffffffc3ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff0fffffffffffffffffffffffffffffffffe1ffffffffffffffffffffff 8fffffffffffffffe1fffffffffffffffffffbffffffffffffffe1fffffffffffffffc3f ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff0fffffffffffffffffffffffffffffffffe1ffffffffffffffffffffff 8fffffffffffffffe0ffffffffffffffffffffffffffffffffffe1ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068ffffffffff0fffffffffffffffffffffffffffffffffe0ffffffffffffffffffffff 8fffffffffffffffe0ffffffffffffffffffffffffffffffffffc1ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffc3ffffffffffffffffffffffffffffffffffffe80 0068fffffffffe0fffffffffffffffffffffffffffffffffe0ffffffffffffffffffffff 8ffffffffffffffff0ffffffffffffffffffffffffffffffffffc3ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffc1ffffffffffffffffffffffffffffffffffffe80 0068fffffffffe1ffffffffffffffffffffffffffffffffff0ffffffffffffffffffffff 8ffffffffffffffff07fffffffffffffffffffffffffffffffffc3ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffe80 0068fffffffffe1ffffffffffffffffffffffffffffffffff0ffffffffffffffffffffff 8ffffffffffffffff07fffffffffffffffffffffffffffffffffc3ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffeff ffe8fffffffffe1ffffffffffffffffffffffffffffffffff07fffffffffffffffffffff 8ffffffffffffffff87fffffffffffffffffffffffffffffffffc3ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffeff ffe8fffffffffe1ffffffffffffffffffffffffffffffffff07fffffffffffffffffffff 8ffffffffffffffff83fffffffffffffffffffffffffffffffffc3ffffffffffffffffff ffffffffffffffffffffffffffffffdc 7ffffffffffc3ffffffffffffffffffe1ffffffffffffffffffffffffffffffffffffe00 0008fffffffffc1ffffffffffffffffffffffffffffffffff87fffffffffffffffffffff 8ffffffffffffffff83fffffffffffffffffffffffffffffffffc3ffffffffffffffffff ffffffffffffffffffffffffffffffdc 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000001c fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffffc3ffffffffffffffffffffffffffffffffff83fffffffffffffffffffff fffffffffffffffffc1fffffffffffffffffffffffffffffffff87ffffffffffffffffff fffffffffffffffffffffffffffffffc f7fffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffffc3ffffffffffffffffffffffffffffffffff83fffffffffffffffffffff fffffffffffffffffe1fffffffffffffffffffffffffffffffff87ffffffffffffffffff fffffffffffffffffffffffffffffffc f7fffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff83ffffffffffffffffffffffffffffffffffc3fffffffffffffffffffff fffffffffffffffffe0fffffffffffffffffffffffffffffffff87ffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff87ffffffffffffffffffffffffffffffffffc1fffffffffffffffffffff fffffffffffffffffe0fffffffffffffffffffffffffffffffff87ffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff87ffffffffffffffffffffffffffffffffffc1fffffffffffffffffffff ffffffffffffffffff0fffffffffffffffffffffffffffffffff87ffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff87ffffffffffffffffffffffffffffffffffe1fffffffffffffffffffff ffffffffffffffffff07ffffffffffffffffffffffffffffffff87ffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff87ffffffffffffffffffffffffffffffffffe1fffffffffffffffffffff ffffffffffffffffff07ffffffffffffffffffffffffffffffff07ffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff07ffffffffffffffffffffffffffffffffffe0fffffffffffffffffffff ffffffffffffffffff87ffffffffffffffffffffffffffffffff0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff0fffffffffffffffffffffffffffffffffffe0fffffffffffffffffffff ffffffffffffffffff83ffffffffffffffffffffffffffffffff0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff0ffffffffffffffffffffffffffffffffffff0fffffffffffffffffffff ffffffffffffffffff83ffffffffffffffffffffffffffffffff0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffff fffffffffffff0ffffffffffffffffffffffffffffffffffff0fffffffffffffffffffff ffffffffffffffffffc1ffffffffffffffffffffffffffffffff0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffe0ffffffffffffffffffffffffffffffffffff07ffffffffffffffffffff ffffffffffffffffffc1ffffffffffffffffffffffffffffffff0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffe1ffffffffffffffffffffffffffffffffffff07ffffffffffffffffffff ffffffffffffffffffe1ffffffffffffffffffffffffffffffff0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffe1fffffffffffffffffe0c384ffff1fffffffffffffff ffffffffffffe1ffffffffffffffffffffffffffffffffffff87ffffffffffffffffffff ffffffffffffffffffe0fffffffffffffffffffffffffffffffe0fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff3ffffffffffffffffff9e7ccffff9fffffffffffffff ffffffffffffe1ffffffffffffffffffffffffffffffffffff87ffffffffffffffffffff ffffffffffffffffffe0fffffffffffffffffffffffffffffffe1fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff3fffffffffeffffffff9e7dfffff9fffffffffffffff ffffffffffffe1ffffffffffffffffffffffffffffffffffff83ffffffffffffffffffff fffffffffffffffffff0fffffffffffffffffffffffffffffffe1fffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff3fffffffffcffffffffce7dfffff9fffffffffffffff ffffffffffffc1ffffffffffffffffffffffffffffffffffff83ffffffffffffffffffff fffffffffffffffffff07fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff319863863383871031fcf398c67c1e18c63fffffffff ffffffffffffc3ffffffffffffffffffffffffffffffffffffc3ffffffffffffffffffff fffffffffffffffffff07fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff390ce73321cf33927bfcf3bce4399cccce7fffffffff ffffffffffffc3ffffffffffffffffffffffffffffffffffffc3ffffffffffffffffffff fffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff38ccee7919ce798e33fc63bce33399e4ecffffffffff ffffffffffffc3ffffffffffffffffffffffffffffffffffffc3ffffffffffffffffffff fffffffffffffffffff83fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff39ce6e0139ce799f37fe6b3ce73399e64cffffffffff ffffffffffffc3ffffffffffffffffffffffffffffffffffffc3ffffffffffffffffffff fffffffffffffffffff83fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff39ce4e7f39ce799f27fe697ce73399e644ffffffffff ffffffffffff83ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffc1fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff39cf5e7f39ce799f8ffe597ce73399e715ffffffffff ffffffffffff87ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffc1fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff39cf1e3d39ce799f8fff187ce73399e711ffffffffff ffffffffffff87ffffffffffffffffffffff0784ffffffc18709fffe3fffffffffffffff fffffffffffffffffffe1fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffff39cfbf1339c5339fcfff3cfce7399ccfbbffffffffff ffffffffffff87ffffffffffffffffffffff8fccfffffff3cf99ffff3fffffffffffffff fffffffffffffffffffe0fffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffe10c7bf8618e3870f9fff3cf8431c0e1fbbffffffffff ffffffffffff07ffffffffffffffffffffffcfdffffffff3cfbfffff3fffffffffffffff fffffffffffffffffffe0fffffffffffffffffffff801ffffffe0c384ffff1ffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffffffffffffffffffff9fffffffffffffffffffffffffff ffffffffffff0fffffffffffffffffffffffc7dffffffff9cfbfffff3fffffffffffffff ffffffffffffffffffff0fffffffffffffffffffff999fffffff9e7ccffff9ffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3fffffffffffffffffffffffffffffffbfffffffffffffffffffffffffff ffffffffffff0fffffffffffffffffffffffe798f08c63f9e7318cf83c318c7fffffffff ffffffffffffffffffff07ffffffffffffffffffffb9dffffeff9e7dfffff9ffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffffffffffffffc3fffffffffffffffffffffffffff ffffffffffff0fffffffffffffffffffffffe7bce64ce7f9e779c87339999cffffffffff ffffffffffffffffffff07fffffffffffffffffffff9fffffcffce7dfffff9ffffffffff fffffffffffffffffffffffffffffffc fffffffffffc3ffffffffffffffffffffffffffffffc7fffffffffffffffffffffffffff ffffffffffff0fffffffffffffffffffffffe3bccf0ecff8c779c66733c9d9ffffffffff ffffffffffffffffffff87fffffffffffffffffffff9fc23883fcf398c67c1e18c63ffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffe0ffffffffffffffffffffffff33cc024cffcd679ce6733cc99ffffffffff ffffffffffffffffffff83fffffffffffffffffffff9f9939cffcf3bce4399cccce7ffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffe1ffffffffffffffffffffffff17ccfe44ffcd2f9ce6733cc89ffffffffff ffffffffffffffffffff83fffffffffffffffffffff9f3c93cffc63bce33399e4ecfffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffe1ffffffffffffffffffffffff97ccff15ffcb2f9ce6733ce2bffffffffff ffffffffffffffffffffc1fffffffffffffffffffff9f00c7cffe6b3ce73399e64cfffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffe1ffffffffffffffffffffffff87cc7b11ffe30f9ce6733ce23ffffffffff ffffffffffffffffffffc1fffffffffffffffffffff9f3fe7cffe697ce73399e644fffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffc1ffffffffffffffffffffffffcfce27bbffe79f9ce73399f77ffffffffff ffffffffffffffffffffe1fffffffffffffffffffff9f3fc7cffe597ce73399e715fffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffc3ffffffffffffffffffffffffcf870fbbffe79f086381c3f77ffffffffff ffffffffffffffffffffe0fffffffffffffffffffff9f1e93cfff187ce73399e711fffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffe0fffffffffffffffffffff9f8939c5ff3cfce7399ccfbbfffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff0fffffffffffffffffffff0fc238e3ff3cf8431c0e1fbbfffff fffffffffffffffffffffffffffffffc ffffc3fffffc7fe0c384ffff1fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff07fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7fffffe7ff9e7ccffff9fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff07fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7fffffe7ff9e7dfffff9fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff87fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7fffffe7ffce7dfffff9fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff83fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7fc3e1e63fcf398c67c1e18c63fffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffff83fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7f99cce77fcf3bce4399cccce7fffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7f3c9e66ffc63bce33399e4ecfffffffffffffffffffffffffffffffffffffff17f fffffff00fffffe0c384ffff1fffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7f3c9e65ffe6b3ce73399e64cffffffffffffffffffffffffffffffffffffffe67f fffffff9c7fffff9e7ccffff9fffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffc3fffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7f3c9e61ffe697ce73399e644ffffffffffffffffffffffffffffffffffffffcf7b fff7fff9e7fffff9e7dfffff9fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7f3c9e64ffe597ce73399e715ffffffffffffffffffffffffffffffffffffffcff3 ffe7fff9e7fffffce7dfffff9fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7e3c9e667ff187ce73399e711ffffffffffffffffffffffffffffffffffffffc7e0 e1c1fff9e78713fcf398c67c1e18c63fffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffe7c99cce73ff3cfce7399ccfbbffffffffffffffffffffffffffffffffffffffe1f3 cce7fff9cf3393fcf3bce4399cccce7fffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffc00c3e1c71ff3cf8431c0e1fbbfffffffffffffffffffffffffffffffffffffff0f3 cce7fff807338ffc63bce33399e4ecffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc73 f8e7fff9e3e39ffe6b3ce73399e64cffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe33 e4e78039f3939ffe697ce73399e644ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff33 cce7fff9f3339ffe597ce73399e715ffffffffffffffffffffffffffffffffffffffffff ffffffffffffff17ffffff061c27fff8ffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf33 cce7fff9f3339fff187ce73399e711ffffffffffffffffffffffffffffffffffffffffff fffffffffffffe67ffffffcf3e67fffcffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffce71 40e2fff9e7039fff3cfce7399ccfbbffffffffffffffffffffffffffffffffffffffffff fffffffffffffcf7bfff7fcf3efffffcffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0f8 e671fff00f990fff3cf8431c0e1fbbffffffffffffffffffffffffffffffffffffffffff fffffffffffffcff3ffe7fe73efffffcffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffc7e0e1c1fe79cc633e0f0c631ffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffe1f3cce7fe79de721cce66673ffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0f3cce7fe31de7199ccf2767ffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffc73f8e7ff359e7399ccf3267ffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffe33e4e7ff34be7399ccf3227ffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffff33cce7ff2cbe7399ccf38afffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffdf33cce7ff8c3e7399ccf388fffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffce7140e2ff9e7e739cce67ddfffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffd0f8e671ff9e7c218e070fddfffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff fffffffffffffffffffffffffffffffc showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer %%EndDocument @endspecial 3527 1229 a currentpoint grestore moveto 3527 1229 a 227 4692 a Fz(Figure)26 b(1.1)h(Screen)i(shot)e(of)g(the)g(game)g(displa)m(y)f(whic)m(h)i (comprises)f(of)g(six)g(di\033eren)m(t)g(windo)m(ws.)1972 6057 y(2)p eop end %%Page: 3 7 TeXDict begin 3 6 bop 227 333 a Fz(when)42 b(y)m(ou)f(ha)m(v)m(e)g (some)f(exp)s(erience)i(pla)m(ying)d(the)h(game,)i(y)m(ou)f(ma)m(y)f (wish)g(to)g(go)g(bac)m(k)h(and)227 449 y(re-read)33 b(skimmed)e(material)f(and)j(expand)g(y)m(our)h(kno)m(wledge)f(of)f (the)h(unread)g(sections.)374 565 y(If)h(y)m(ou)h(just)g(w)m(an)m(t)g (to)g(damn)e(the)i(torp)s(edo)s(es)g(and)g(\020roll\021)2514 529 y Ft(1)2584 565 y Fz(up)g(a)f(c)m(haracter)i(quic)m(kly)f(then)227 682 y(pro)s(ceed)f(to)e(section)h(2.2)f(in)f(this)i(text.)44 b(Y)-8 b(ou)32 b(ma)m(y)g Fu(stil)5 b(l)33 b Fz(\034nd)g(section)g(7.1) f(helpful)f(reading.)227 952 y Fy(Section)37 b(1.2.)h Fx(Cross\034re)g Fy(Mailing)e(lists)227 1167 y Fz(T)-8 b(w)m(o)40 b(mailing-li)o(sts)34 b(exist;)41 b(the)e(\034rst)g(is)f (for)g(discussing)h(bugs)g(and)f(dev)m(elopmen)m(t)h(while)f(the)227 1283 y(second)e(is)e(for)g(just)g(announcing)g(new)i(v)m(ersions.)49 b(If)35 b(y)m(ou)g(w)m(an)m(t)g(to)f(join)f(or)h(lea)m(v)m(e)h(an)m(y)g (of)f(the)227 1399 y(lists,)d(send)i(mail)c(to)i Fv (crossfire-request@ifi.uio.n)q(o)37 b Fz(with)32 b(the)g(sub)5 b(ject)33 b(\020)8 b Fv(subscribe)p Fz(\021,)227 1516 y(\020)g Fv(unsubscribe)p Fz(\021,\020)g Fv(subscribe)56 b(announce)p Fz(\021)35 b(or)25 b(\020)8 b Fv(unsubscribe)54 b(announce)p Fz(\021.)43 b(If)26 b(y)m(ou)g(use)h(the)227 1632 y(sub)5 b(ject)35 b(\020)8 b Fv(subscribe)p Fz(\021)42 b(or)32 b(\020)8 b Fv(unsubscribe)p Fz(\021)42 b(y)m(ou)34 b(will)c(\(un\)subscrib)s(e)j(to)g Fu(b)-5 b(oth)32 b Fz(lists.)374 1748 y(T)-8 b(o)36 b(send)i(messages)f(directly)f(to)g (the)h(list,)f(mail)d Fv(crossfire@ifi.uio.no)p Fz(.)60 b(While)36 b(the)227 1864 y(dev)m(elopmen)m(t/bug)31 b(list)d(is)h(not)h(supp)s(osed)h(to)e(b)s(e)h(used)h(for)e(helping)f (pla)m(y)m(ers)j(solv)m(e)f(problems,)227 1981 y(sometimes)37 b(a)h(kno)m(wledgeable)g(reader)g(of)f(the)h(list)f(can)h(b)s(e)g (tempted)f(in)m(to)g(answ)m(ering)i(y)m(our)227 2097 y(question.)374 2213 y(An)h(arc)m(hiv)m(e)h(of)f(old)f(messages)j(can)e (b)s(e)h(found)f(at)g Fv(ftp.ifi.uio.no)k Fz(in)c(the)g(directory)227 2329 y Fv(/pub/crossfire/archive)p Fz(.)227 2600 y Fy(Section)d(1.3.)h (Obtaining)e Fx(Cross\034re)227 2815 y Fz(FTP)d(sites)g(where)h(y)m(ou) f(can)g(lo)s(ok)e(for)h(the)h(latest)f(v)m(ersions)i(are:)227 3047 y Fv(ra.pyramid.com:/pub/cross)q(fire)39 b Fz(\(129.214.1.102\)) 227 3163 y Fv(ftp.ifi.uio.no:/pub/cross)q(fire)g Fz(\(129.240.64.44\)) 227 3279 y Fv(ftp.real-time.com/pub/gam)q(es/c)q(ross)q(fire)g Fz(\(206.10.252.12\))227 3396 y Fv(ftp.cs.city.ac.uk:/pub/ga)q(mes/)q (cros)q(sfir)q(e)g Fz(\(138.40.91.9\))227 3512 y Fv (ftp.sunet.se:/pub/unix/ga)q(mes/)q(cros)q(sfir)q(e)g Fz(\(130.238.127.3\))227 3628 y Fv(ftp.cs.titech.ac.jp:/pub/)q(game)q (s/cr)q(ossf)q(ire)g Fz(\(131.112.90.201\))374 3861 y(Please)c(use)h (the)f(one)h(nearest)g(to)e(y)m(ou.)52 b(\020.se\021,)35 b(\020.no\021)43 b(or)34 b(\020.uk\021)43 b(in)34 b(Europ)s(e,)j (\020.au\021)42 b(in)34 b(Aus-)227 3977 y(tralia,)d(\020.net\021)40 b(in)32 b(North)g(America,)f(and)i(\020.jp\021)40 b(in)32 b(Asia.)227 4247 y Fy(Section)37 b(1.4.)h(DOCUMENT)e(CREDITS)227 4462 y Fz(B.T.)j(pro)m(vided)g(the)g(bulk)f(of)g(the)h(written)f (material;)g(K.E.)h(and)g(\(to)e(a)i(lesser)f(exten)m(t\))i(J.K)227 4578 y(pro)m(vided)26 b(exp)s(ert)g(editing)e(and)i(t)m(yp)s(esetting)g (advice.)41 b(The)27 b Fx(Cross\034re)g Fy(Pla)m(y)m(er's)h(Handb)s(o)s (ok)227 4695 y Fz(uses)39 b(material)c(b)s(orro)m(w)m(ed)j(from)f (older)g(do)s(cumen)m(tation)f(written)h(b)m(y)i(the)f(follo)m(wing)d (p)s(eople)227 4811 y(\(in)d(rough)g(order)h(of)f(b)s(orro)m(wing)g (magnitude\):)471 5010 y(Sam)g(Mac)m(krill)f(\(lots)h(of)g(bits)g(from) f(the)i(old)f(F)-11 b(A)m(Q\))471 5126 y(Lauren)m(t)33 b(W)-8 b(acrenier)471 5243 y(Kjetil)31 b(T.)i(Homme)471 5359 y(Lars)g(H.)g(B.)f(Olafsen)471 5475 y(P)m(eter)i(Mardal)p 227 5543 1416 4 v 340 5604 a Fs(1)377 5634 y Fr(This)i(arc)n(haic)f (term)i(comes)f(from)g(pap)r(er)g(and)h(p)r(encil)g(role-pla)n(ying)d (games)i(whic)n(h)h(used)f(dice)h(in)g(the)227 5734 y(c)n(haracter)26 b(generation)g(pro)r(cess.)1972 6057 y Fz(3)p eop end %%Page: 4 8 TeXDict begin 4 7 bop 471 333 a Fz(Rup)s(ert)33 b(G.)f(Goldie)471 449 y(F)-8 b(rank)33 b(T.)g(Johansen)227 648 y(If)g(I)g(left)e(an)m(y)m (one)j(out,)e(please)h(send)h(me)e(some)g(email!)227 881 y(Brian)g(Thomas)227 997 y Fv(thomas@astro.psu.edu)1972 6057 y Fz(4)p eop end %%Page: 5 9 TeXDict begin 5 8 bop 227 542 a FA(Chapter)44 b(2.)58 b(Ab)t(out)44 b(Characters)227 963 y Fy(Section)37 b(2.1.)h(Character)f (A)m(ttributes)227 1178 y Fz(Eac)m(h)e(pla)m(y)m(er)e(in)m(teracts)h (in)f(the)g Fx(Cross\034re)i Fz(w)m(orld)e(through)h(the)f(p)s(ersona)h (of)f(a)g(c)m(haracter.)47 b(In)227 1294 y(turn,)33 b(the)f(in)m (teraction)f(b)s(et)m(w)m(een)j(the)f(c)m(haracter)g(and)f(the)g(game)f (w)m(orld)h(is)g(mediated)f(b)m(y)i(the)227 1410 y(\020attributes\021) 41 b(of)33 b(the)h(c)m(haracter.)47 b(After)34 b(all,)e(the)i(pla)m(y)m (er)g(is)f(not)g(going)f(to)h(pla)m(y)h(him/herself)7 b(!)227 1526 y(In)39 b Fx(Cross\034re)h Fz(w)m(e)g(c)m(hose)f(to)f (parameterize)g(the)h(acceptable)g(limits)c(of)j(pla)m(y)m(er)h(b)s (eha)m(vior)f(via)227 1642 y(the)c(v)-5 b(alues)33 b(of)g(the)g(c)m (haracter)h(attributes)f(whic)m(h,)h(in)e(turn,)i(help)f(to)f (determine)h(the)h(success)227 1759 y(of)44 b(an)m(y)h(action)e(tak)m (en)i(b)m(y)g(the)f(pla)m(y)m(er.)79 b(There)45 b(are)f(no)g(limits)d (p)s(er)j(se)h(on)f(what)g(y)m(ou)h(can)227 1875 y(attempt)d(to)f(do)h (with)g(y)m(our)h(c)m(haracter;)k(rather,)e(the)d(attributes)g(of)g(a)f (c)m(haracter)i(indicate)227 1991 y(the)38 b(certain)f(\020natural\021) 43 b(talen)m(ts)37 b(and)g(inclinations.)55 b(T)-8 b(w)m(o)38 b(concepts)h(whic)m(h)e(are)g(relev)-5 b(an)m(t)38 b(to)227 2107 y Fx(Cross\034re)c Fz(c)m(haracter)g(attributes)e(are)h (\020stats\021)40 b(and)32 b(\020class\021.)227 2367 y Fy(2.1.1.)38 b(Character)g(Stats)227 2548 y Fz(Character)j (statistics)f(\(or)g(\020stats\021)48 b(for)40 b(short\))g(can)h(b)s(e) g(divided)e(in)m(to)h(t)m(w)m(o)h(t)m(yp)s(es:)61 b(primary)227 2664 y(and)27 b(secondary)-8 b(.)42 b(What's)27 b(the)g(di\033erence)g (b)s(et)m(w)m(een)h(them?)42 b(Secondary)27 b(stats)g(are)f(calculated) 227 2780 y(from)40 b(a)h(n)m(um)m(b)s(er)h(of)e(things)h(including)e (the)j(primary)d(stats.)70 b(But)41 b(the)h(rev)m(erse)h(isn't)e(true,) 227 2896 y(secondary)30 b(stats)f(nev)m(er)h(ha)m(v)m(e)g(an)m(y)f (in\035uence)g(on)f(the)h(primary)e(stats.)42 b(In)29 b(pla)m(ying)e(the)i(game,)227 3013 y(the)40 b(pla)m(y)m(er)f(ma)m(y)g (\034nd)g(that)g(either)f(of)h(these)h(kinds)f(of)f(stats)i(ma)m(y)f(b) s(e)g(c)m(hanged)h(for)e(b)s(etter)227 3129 y(or)c(w)m(orse.)51 b(In)35 b(general,)f(the)h(primary)e(stats)i(c)m(hange)g(m)m(uc)m(h)g (less)g(often)f(than)h(the)g(secondary)227 3245 y(stats.)73 b(Equipmen)m(t,)45 b(magic,)e(and)f(death)h(are)f(just)g(three)h (examples)f(of)g(the)h(man)m(y)f(things)227 3361 y(whic)m(h)e(can)g (alter)f(the)h(v)-5 b(alues)39 b(of)g(the)h(c)m(haracter)g(stats.)65 b(The)41 b(curren)m(t)f(v)-5 b(alues)39 b(of)h(b)s(oth)f(the)227 3478 y(primary)g(and)g(secondary)i(stats)g(ma)m(y)e(b)s(e)h(view)m(ed)h (in)d(the)i(stat)g(windo)m(w.)65 b(F)-8 b(our)39 b(imp)s(ortan)m(t)227 3594 y(secondary)d(stats)p Fw(\000)p Fz(fo)s(o)s(d,)e(grace,)g(hitp)s (oin)m(ts)e(and)i(mana)f(also)g(app)s(ear)g(again)g(in)g(the)h (stat-bar)227 3710 y(windo)m(w.)227 3970 y Fy(Primary)i(stats)227 4147 y Fz(The)e(sev)m(en)g(primary)e(stats)h(are:)471 4335 y Fq(\017)e Fp(Strength)f Fo(\(\020STR\021\))h Fq(\000)e Fo(a)i(measure)g(of)f(the)g(ph)m(ysical)h(strength.)471 4448 y Fq(\017)g Fp(Dexterit)m(y)f Fo(\(\020DEX\021\))h Fq(\000)f Fo(measures)h(ph)m(ysical)g(agilit)m(y)g(and)g(sp)s(eed.)471 4560 y Fq(\017)g Fp(Constitution)f Fo(\(\020CON\021\))h Fq(\000)f Fo(measures)g(ph)m(ysical)h(health)h(and)e(toughness.)471 4673 y Fq(\017)h Fp(In)m(telligence)g Fo(\(\020INT\021\))f Fq(\000)g Fo(measures)h(abilit)m(y)g(to)f(learn)i(skills)d(and)i(incan) m(tations.)471 4786 y Fq(\017)g Fp(Wisdom)e Fo(\(\020WIS\021\))i Fq(\000)e Fo(measures)i(the)g(abilit)m(y)g(to)g(learn/use)g(divine)g (magic.)471 4899 y Fq(\017)g Fp(P)m(o)m(w)m(er)f Fo(\(\020PO)m(W\021\)) i Fq(\000)e Fo(measures)h(magical/spiritual)h(p)s(oten)m(tial.)471 5012 y Fq(\017)f Fp(Charisma)f Fo(\(\020CHA\021\))g Fq(\000)g Fo(measures)h(so)s(cial)f(and)h(leadership)g(abilities.)374 5203 y Fz(Primary)25 b(stats)i(ha)m(v)m(e)g(a)f(\020natural\021)32 b(range)27 b(b)s(et)m(w)m(een)h(0)e(and)g Fw(\030)p Fz(20.)42 b(The)27 b(actual)e(upp)s(er)i(limit)227 5319 y(on)39 b(eac)m(h)h(primary)d(stat)i(is)f(set)h(b)m(y)h(the)f(c)m(hosen)h(c)m (haracter)g(class)e(\(see)i(section)f(2.1.2\).)61 b(Y)-8 b(ou)227 5436 y(can)33 b(raise)f(y)m(our)h(primary)f(stats)h(b)m(y)g (drinking)e(p)s(otions)h(up)h(to)f(y)m(our)h(class)g(natural)e(limit.) 374 5552 y(There)f(are)e(plen)m(t)m(y)i(of)e(items)g(whic)m(h)h(giv)m (e)g(y)m(ou)g(b)s(on)m(uses)h(to)f(y)m(our)g(stats)g(ev)m(en)i Fu(b)-5 b(eyond)28 b Fz(y)m(our)227 5668 y(class)35 b(limit)30 b Fw(\000)k Fz(sw)m(ords,)i(armour)d(and)h(rings)g(to)g(name)f(the)i (most)e(imp)s(ortan)m(t.)46 b(Y)-8 b(ou)34 b(can)g(also)1972 6057 y(5)p eop end %%Page: 6 10 TeXDict begin 6 9 bop 227 394 a Fz(T)-8 b(able)33 b(2.1)f(Selected)h (primary)e(stat)i(b)s(on)m(uses/p)s(enalties.)p 349 530 3295 4 v 347 609 4 80 v 399 585 a Ft(Stat)p 576 609 V 137 w(HpB)p 889 609 V 135 w(MgB)1091 562 y Fn(1)p 1139 609 V 1229 585 a Ft(A)n(cB)p 1448 609 V 156 w(DmB)p 1745 609 V 148 w(Thaco)p 2103 609 V 134 w(Max)24 b(Carry)p 2542 609 V 115 w(Sp)r(eed)p 2851 609 V 114 w(\045learn)3113 562 y Fn(2)p 3162 609 V 3268 585 a Ft(Buy/Sell)p 3642 609 V 347 688 4 79 v 576 688 V 628 664 a(\(CON\))p 889 688 V 1139 688 V 349 w(\(DEX\))p 1448 688 V 101 w(\(STR\))p 1745 688 V 131 w(\(STR\))p 2103 688 V 202 w(\(STR\))p 2542 688 V 172 w(\(DEX\))p 2851 688 V 3162 688 V 496 w(\(CHA\))p 3642 688 V 349 691 3295 4 v 349 708 V 347 787 4 79 v 493 763 a(1)p 576 787 V 254 w(-5)p 889 787 V 156 w(-10)p 1139 787 V 274 w(3)p 1448 787 V 238 w(-2)p 1745 787 V 299 w(-2)p 2103 787 V 2542 787 V 712 w(1)p 2851 787 V 277 w(0)p 3162 787 V 100 w(1,600/)g(0,400)p 3642 787 V 347 866 V 493 842 a(2)p 576 866 V 254 w(-4)p 889 866 V 191 w(-9)p 1139 866 V 274 w(2)p 1448 866 V 238 w(-2)p 1745 866 V 299 w(-2)p 2103 866 V 2542 866 V 712 w(1)p 2851 866 V 277 w(0)p 3162 866 V 100 w(1,600/)g(0,400)p 3642 866 V 347 944 V 493 921 a(3)p 576 944 V 254 w(-3)p 889 944 V 191 w(-8)p 1139 944 V 274 w(2)p 1448 944 V 238 w(-1)p 1745 944 V 299 w(-2)p 2103 944 V 2542 944 V 712 w(1)p 2851 944 V 277 w(1)p 3162 944 V 100 w(1,500/)g(0,500)p 3642 944 V 347 1023 V 493 1000 a(4)p 576 1023 V 254 w(-2)p 889 1023 V 191 w(-7)p 1139 1023 V 274 w(1)p 1448 1023 V 238 w(-1)p 1745 1023 V 299 w(-1)p 2103 1023 V 2542 1023 V 712 w(1)p 2851 1023 V 277 w(2)p 3162 1023 V 100 w(1,500/)g(0,500)p 3642 1023 V 347 1102 V 493 1079 a(5)p 576 1102 V 254 w(-1)p 889 1102 V 191 w(-6)p 1139 1102 V 274 w(1)p 1448 1102 V 238 w(-1)p 1745 1102 V 299 w(-1)p 2103 1102 V 2542 1102 V 712 w(1)p 2851 1102 V 277 w(4)p 3162 1102 V 100 w(0,000/)g(2,000)p 3642 1102 V 347 1181 V 493 1157 a(6)p 576 1181 V 254 w(-1)p 889 1181 V 191 w(-5)p 1139 1181 V 274 w(1)p 1448 1181 V 261 w(0)p 1745 1181 V 135 w(/*)g(5)g(*/)p 2103 1181 V 2542 1181 V 713 w(1)p 2851 1181 V 277 w(8)p 3162 1181 V 100 w(1,333/)g(0,667)p 3642 1181 V 347 1260 V 493 1236 a(7)p 576 1260 V 278 w(0)p 889 1260 V 191 w(-4)p 1139 1260 V 274 w(0)p 1448 1260 V 261 w(0)p 1745 1260 V 300 w(-1)p 2103 1260 V 2542 1260 V 712 w(1)p 2851 1260 V 241 w(12)p 3162 1260 V 101 w(1,333/)g(0,667)p 3642 1260 V 347 1339 V 493 1315 a(8)p 576 1339 V 278 w(0)p 889 1339 V 191 w(-3)p 1139 1339 V 274 w(0)p 1448 1339 V 261 w(0)p 1745 1339 V 300 w(-1)p 2103 1339 V 2542 1339 V 712 w(1)p 2851 1339 V 241 w(16)p 3162 1339 V 101 w(1,333/)g(0,667)p 3642 1339 V 347 1418 V 493 1394 a(9)p 576 1418 V 278 w(0)p 889 1418 V 191 w(-2)p 1139 1418 V 274 w(0)p 1448 1418 V 261 w(0)p 1745 1418 V 323 w(0)p 2103 1418 V 2542 1418 V 713 w(1)p 2851 1418 V 241 w(25)p 3162 1418 V 101 w(1,333/)g(0,667)p 3642 1418 V 347 1497 V 458 1473 a(10)p 576 1497 V 278 w(0)p 889 1497 V 191 w(-1)p 1139 1497 V 274 w(0)p 1448 1497 V 261 w(0)p 1745 1497 V 323 w(0)p 2103 1497 V 2542 1497 V 713 w(1)p 2851 1497 V 241 w(36)p 3162 1497 V 101 w(0,000/)g(2,000)p 3642 1497 V 347 1575 V 458 1552 a(11)p 576 1575 V 278 w(1)p 889 1575 V 214 w(0)p 1139 1575 V 275 w(0)p 1448 1575 V 261 w(0)p 1745 1575 V 323 w(0)p 2103 1575 V 2542 1575 V 713 w(1)p 2851 1575 V 241 w(45)p 3162 1575 V 101 w(1,333/)g(0,667)p 3642 1575 V 347 1654 V 458 1631 a(12)p 576 1654 V 278 w(2)p 889 1654 V 214 w(1)p 1139 1654 V 275 w(0)p 1448 1654 V 261 w(1)p 1745 1654 V 100 w(/*)g(10)g(*/)p 2103 1654 V 2542 1654 V 713 w(1)p 2851 1654 V 241 w(55)p 3162 1654 V 101 w(1,333/)g(0,667)p 3642 1654 V 347 1733 V 458 1710 a(13)p 576 1733 V 278 w(3)p 889 1733 V 214 w(2)p 1139 1733 V 275 w(0)p 1448 1733 V 261 w(1)p 1745 1733 V 323 w(0)p 2103 1733 V 2542 1733 V 713 w(1)p 2851 1733 V 241 w(65)p 3162 1733 V 101 w(1,333/)g(0,667)p 3642 1733 V 347 1812 V 458 1788 a(14)p 576 1812 V 278 w(4)p 889 1812 V 214 w(3)p 1139 1812 V 251 w(-1)p 1448 1812 V 261 w(1)p 1745 1812 V 323 w(1)p 2103 1812 V 2542 1812 V 713 w(1)p 2851 1812 V 241 w(70)p 3162 1812 V 101 w(1,333/)g(0,667)p 3642 1812 V 347 1891 V 458 1867 a(15)p 576 1891 V 278 w(5)p 889 1891 V 214 w(4)p 1139 1891 V 251 w(-1)p 1448 1891 V 261 w(2)p 1745 1891 V 323 w(1)p 2103 1891 V 2542 1891 V 713 w(1)p 2851 1891 V 241 w(75)p 3162 1891 V 101 w(1,333/)g(0,667)p 3642 1891 V 347 1970 V 458 1946 a(16)p 576 1970 V 278 w(6)p 889 1970 V 214 w(5)p 1139 1970 V 251 w(-1)p 1448 1970 V 261 w(2)p 1745 1970 V 323 w(1)p 2103 1970 V 2542 1970 V 713 w(1)p 2851 1970 V 241 w(80)p 3162 1970 V 101 w(0,000/)g(2,000)p 3642 1970 V 347 2049 V 458 2025 a(17)p 576 2049 V 278 w(7)p 889 2049 V 214 w(6)p 1139 2049 V 251 w(-2)p 1448 2049 V 261 w(2)p 1745 2049 V 323 w(1)p 2103 2049 V 2542 2049 V 713 w(1)p 2851 2049 V 241 w(85)p 3162 2049 V 101 w(1,000/)g(1,000)p 3642 2049 V 347 2128 V 458 2104 a(18)p 576 2128 V 278 w(8)p 889 2128 V 214 w(7)p 1139 2128 V 251 w(-2)p 1448 2128 V 261 w(3)p 1745 2128 V 100 w(/*)g(15)g(*/)p 2103 2128 V 2542 2128 V 713 w(1)p 2851 2128 V 241 w(90)p 3162 2128 V 101 w(1,000/)g(1,000)p 3642 2128 V 347 2206 V 458 2183 a(19)p 576 2206 V 278 w(9)p 889 2206 V 214 w(8)p 1139 2206 V 251 w(-2)p 1448 2206 V 261 w(3)p 1745 2206 V 323 w(2)p 2103 2206 V 2542 2206 V 713 w(1)p 2851 2206 V 241 w(95)p 3162 2206 V 101 w(1,000/)g(1,000)p 3642 2206 V 347 2285 V 458 2262 a(20)p 576 2285 V 243 w(10)p 889 2285 V 214 w(9)p 1139 2285 V 251 w(-3)p 1448 2285 V 261 w(3)p 1745 2285 V 323 w(2)p 2103 2285 V 2542 2285 V 713 w(1)p 2851 2285 V 206 w(100)p 3162 2285 V 101 w(1,000/)g(1,000)p 3642 2285 V 347 2364 V 458 2340 a(21)p 576 2364 V 243 w(12)p 889 2364 V 179 w(10)p 1139 2364 V 251 w(-3)p 1448 2364 V 261 w(4)p 1745 2364 V 323 w(2)p 2103 2364 V 2542 2364 V 713 w(1)p 2851 2364 V 206 w(100)p 3162 2364 V 101 w(0,000/)g(2,000)p 3642 2364 V 347 2443 V 458 2419 a(22)p 576 2443 V 243 w(14)p 889 2443 V 179 w(12)p 1139 2443 V 251 w(-3)p 1448 2443 V 261 w(4)p 1745 2443 V 323 w(2)p 2103 2443 V 2542 2443 V 713 w(1)p 2851 2443 V 206 w(100)p 3162 2443 V 101 w(1,000/)g(1,000)p 3642 2443 V 347 2522 V 458 2498 a(23)p 576 2522 V 243 w(16)p 889 2522 V 179 w(15)p 1139 2522 V 251 w(-4)p 1448 2522 V 261 w(5)p 1745 2522 V 323 w(2)p 2103 2522 V 2542 2522 V 713 w(1)p 2851 2522 V 206 w(100)p 3162 2522 V 101 w(1,000/)g(1,000)p 3642 2522 V 347 2601 V 458 2577 a(24)p 576 2601 V 243 w(18)p 889 2601 V 179 w(20)p 1139 2601 V 251 w(-4)p 1448 2601 V 261 w(5)p 1745 2601 V 100 w(/*)g(20)g(*/)p 2103 2601 V 2542 2601 V 713 w(1)p 2851 2601 V 206 w(100)p 3162 2601 V 101 w(1,000/)g(1,000)p 3642 2601 V 347 2680 V 458 2656 a(25)p 576 2680 V 243 w(20)p 889 2680 V 179 w(25)p 1139 2680 V 251 w(-4)p 1448 2680 V 261 w(6)p 1745 2680 V 323 w(3)p 2103 2680 V 2542 2680 V 713 w(1)p 2851 2680 V 206 w(100)p 3162 2680 V 101 w(1,000/)g(1,000)p 3642 2680 V 347 2758 V 458 2735 a(26)p 576 2758 V 243 w(22)p 889 2758 V 179 w(30)p 1139 2758 V 251 w(-5)p 1448 2758 V 261 w(6)p 1745 2758 V 323 w(3)p 2103 2758 V 2542 2758 V 713 w(1)p 2851 2758 V 206 w(100)p 3162 2758 V 101 w(1,000/)g(1,000)p 3642 2758 V 347 2837 V 458 2814 a(27)p 576 2837 V 243 w(25)p 889 2837 V 179 w(40)p 1139 2837 V 251 w(-5)p 1448 2837 V 261 w(7)p 1745 2837 V 323 w(3)p 2103 2837 V 2542 2837 V 713 w(1)p 2851 2837 V 206 w(100)p 3162 2837 V 101 w(1,951/)g(0,049)p 3642 2837 V 347 2916 V 458 2893 a(28)p 576 2916 V 243 w(30)p 889 2916 V 179 w(50)p 1139 2916 V 251 w(-6)p 1448 2916 V 261 w(8)p 1745 2916 V 323 w(3)p 2103 2916 V 2542 2916 V 713 w(1)p 2851 2916 V 206 w(100)p 3162 2916 V 101 w(1,961/)g(0,039)p 3642 2916 V 347 2995 V 458 2971 a(29)p 576 2995 V 243 w(40)p 889 2995 V 179 w(70)p 1139 2995 V 251 w(-6)p 1448 2995 V 261 w(9)p 1745 2995 V 323 w(4)p 2103 2995 V 2542 2995 V 713 w(1)p 2851 2995 V 206 w(100)p 3162 2995 V 101 w(1,972/)g(0,028)p 3642 2995 V 347 3074 V 458 3050 a(30)p 576 3074 V 243 w(50)p 889 3074 V 144 w(100)p 1139 3074 V 251 w(-7)p 1448 3074 V 226 w(10)p 1745 3074 V 100 w(/*)g(25)g(*/)p 2103 3074 V 2542 3074 V 713 w(1)p 2851 3074 V 206 w(100)p 3162 3074 V 101 w(1,980/)g(0,020)p 3642 3074 V 349 3077 3295 4 v 227 3357 1416 4 v 190 3455 a Fm(1)227 3485 y Fr(Either)k(PO)n(W)g(or)f(WIS)h(can)f(b)r(e)h(used)f (to)h(calculate)f(MgB)g(\(magic)g(b)r(on)n(us\).)190 3572 y Fm(2)227 3603 y Fr(P)n(ercen)n(tage)f(for)h(learning)g(either)g (skills)g(\(INT\),)i(incan)n(tations)d(\(INT\))j(or)d(pra)n(y)n(ers)f (\(WIS\).)227 3889 y Fz(read)36 b(scrolls)e(or)g(cast)i(sp)s(ells)e (\(incan)m(tations)g(or)h(pra)m(y)m(ers\))h(to)f(temp)s(orarily)d (raise)j(y)m(our)h(stats.)227 4005 y(The)e(ultimate)c(maxim)m(um)g(v)-5 b(alue)32 b(is)g(30,)g(and)h(the)g(pla)m(y)m(er)g(class)f(do)s(esn't)i (matter)d(here.)374 4121 y(Some)f(quan)m(titativ)m(e)g(e\033ects)i(of)e (the)h(primary)f(stats)h(are)g(summarized)e(in)h(table)g(2.1.)42 b(The)227 4238 y(top)34 b(ro)m(w)g(in)g(the)g(column)f(header)h(sp)s (eci\034es)h(a)f(particular)e(b)s(on)m(us)j(\(i.e.)47 b Fv(HpB)p Fz(,)35 b Fv(MgB)p Fz(,)g Fv(AcB)p Fz(,)f Fv(DmB)p Fz(,)227 4354 y(etc.\))43 b(while)26 b(the)h(second)h(ro)m(w)g (in)e(the)i(header)f(indicates)g(the)g(stat)g(whic)m(h)h(is)e(used)j (to)d(calculate)227 4470 y(the)34 b(v)-5 b(alue)32 b(of)h(that)g (column.)44 b(Where)34 b(no)f(stat)g(app)s(ears,)h(one)f(of)g Fu(sever)-5 b(al)32 b Fz(stats)i(ma)m(y)f(b)s(e)g(used)227 4586 y(to)39 b(calculate)f(that)h(v)-5 b(alue.)63 b(See)40 b(later)e(parts)h(of)g(the)g(text)h(\(particularly)d(section)i(3.2.3\)) g(for)227 4703 y(further)33 b(details.)227 4962 y Fy(Secondary)39 b(stats)227 5143 y Fz(The)34 b(secondary)g(stats)f(are)f(:)374 5375 y Fw(\017)58 b Fv(score)i Fw(\000)f Fz(The)g(total)e(accum)m (ulated)h(exp)s(erience)i(of)e(the)h(c)m(haracter.)122 b Fv(score)60 b Fz(is)227 5492 y(increased)33 b(as)g(a)f(rew)m(ard)h (for)f(appropriate)f(pla)m(y)m(er)i(action)e(and)i(ma)m(y)f(decrease)i (as)e(a)g(result)h(of)227 5608 y(a)j(magical)c(attac)m(k)k(or)f(c)m (haracter)i(death)f(\(see)g(section)g(3.2.4)f(for)g(more)g(ab)s(out)g (death\).)52 b(The)227 5724 y Fv(score)34 b Fz(starts)f(at)f(a)h(v)-5 b(alue)32 b(of)g(0.)1972 6057 y(6)p eop end %%Page: 7 11 TeXDict begin 7 10 bop 374 449 a Fw(\017)29 b Fv(level)j Fw(\000)e Fz(A)g(rating)e(of)i(o)m(v)m(erall)f(abilit)m(y)e(whose)32 b(v)-5 b(alue)29 b(is)g(determined)h(from)f(the)h Fv(score)p Fz(.)227 565 y(As)37 b(the)g Fv(level)h Fz(of)e(the)h(c)m(haracter)g (increases,)i(the)e(c)m(haracter)g(b)s(ecomes)g(able)f(to)g(succeed)j (at)227 682 y(more)h(di\036cult)f(tasks.)66 b Fv(level)42 b Fz(starts)e(at)g(a)f(v)-5 b(alue)40 b(of)f(0)h(and)g(ma)m(y)g(range)g (up)g(b)s(ey)m(ond)h(100.)227 798 y(The)34 b(v)-5 b(alue)32 b(of)h(the)g(stat)g(whic)m(h)g(app)s(ears)g(in)f(the)i(stat)e(windo)m (w)i(is)e(sometimes)g(kno)m(wn)i(as)f(the)227 914 y Fu(over)-5 b(al)5 b(l)32 b Fv(level)p Fz(.)45 b(See)33 b(section)g(3.2.2)f(for)g (more)g(details.)374 1146 y Fw(\017)c Fy(hit)k(p)s(oin)m(ts)27 b Fz(\(\020)8 b Fv(Hp)p Fz(\021\))28 b Fw(\000)h Fz(Measures)i(of)d(ho) m(w)h(m)m(uc)m(h)g(damage)e(the)i(pla)m(y)m(er)g(can)g(tak)m(e)g(b)s (efore)227 1263 y(dying.)51 b(Hit)34 b(p)s(oin)m(ts)g(are)h(determined) g(from)e(the)j(pla)m(y)m(er)f Fv(level)h Fz(and)f(are)g(in\035uenced)h (b)m(y)g(the)227 1379 y(v)-5 b(alue)38 b(of)g(the)g(c)m(haracter)h(CON) g(\(see)g(section)g(3.2.3\).)60 b Fv(Hp)38 b Fz(v)-5 b(alue)38 b(ma)m(y)g(range)g(b)s(et)m(w)m(een)j(1)d(to)227 1495 y(b)s(ey)m(ond)c(500)e(and)g(higher)g(v)-5 b(alues)33 b(indicate)e(a)i(greater)f(abilit)m(y)e(to)j(withstand)f(punishmen)m (t.)374 1728 y Fw(\017)50 b Fy(mana)g Fz(\(\020)8 b Fv(Sp)p Fz(\021\))100 b Fw(\000)50 b Fz(Measures)i(of)e(ho)m(w)h(m)m(uc)m(h)f (\020fuel\021)57 b(the)50 b(pla)m(y)m(er)h(has)f(for)g(casting)227 1844 y(incan)m(tations.)75 b(Mana)43 b(is)g(calculated)f(from)g(the)h (c)m(haracter)h Fv(level)h Fz(and)e(the)g(v)-5 b(alue)43 b(of)g(the)227 1960 y(c)m(haracter)f(PO)m(W)g(\(see)g(section)f (3.2.3\).)68 b(Mana)41 b(v)-5 b(alues)41 b(can)h(range)f(b)s(et)m(w)m (een)i(1)d(to)h(b)s(ey)m(ond)227 2076 y(500.)i(Higher)32 b(v)-5 b(alues)32 b(indicate)g(greater)g(amoun)m(ts)h(of)f(mana.)374 2309 y Fw(\017)d Fy(grace)h Fz(\(\020)8 b Fv(Gr)p Fz(\021\))29 b Fw(\000)h Fz(Ho)m(w)g(fa)m(v)m(ored)g(the)g(c)m(haracter)h(is)e(b)m (y)h(the)g(go)s(ds.)43 b(In)30 b(game)e(terms,)j(ho)m(w)227 2425 y(m)m(uc)m(h)41 b(divine)e(magic)f(a)h(c)m(haracter)h(can)g(cast.) 66 b(Character)40 b Fv(level)p Fz(,)j(WIS)d(and)g(PO)m(W)g(e\033ect)227 2541 y(what)32 b(the)g(v)-5 b(alue)31 b(of)g(grace)h(is)f(\(see)i (section)e(3.2.3\).)43 b(During)31 b(pla)m(y)-8 b(,)32 b(grace)f(v)-5 b(alues)32 b Fu(may)f Fz(exceed)227 2657 y(the)53 b(c)m(haracter)g(maxim)m(um;)59 b(grace)52 b(can)g(tak)m(e)h (on)f(large)f(p)s(ositiv)m(e)g(and)h(negativ)m(e)g(v)-5 b(alues.)227 2774 y(P)m(ositiv)m(e)33 b(v)-5 b(alues)32 b(indicate)g(fa)m(v)m(or)h(b)m(y)g(the)g(go)s(ds.)374 3006 y Fw(\017)38 b Fy(w)m(eap)s(on)45 b(class)39 b Fz(\(\020)8 b Fv(Wc)p Fz(\021\))76 b Fw(\000)40 b Fz(Ho)m(w)f(skilled)e(the)i(c)m (haracters)h(melee/missile)c(attac)m(k)j(is.)227 3122 y(Lo)m(w)m(er)h(v)-5 b(alues)39 b(indicate)f(a)g(more)g(p)s(oten)m(t,)j (skilled)c(attac)m(k.)63 b(Curren)m(t)40 b(w)m(eap)s(on,)h(user)f Fv(level)227 3239 y Fz(and)35 b(STR)g(are)f(some)h(things)f(whic)m(h)h (e\033ect)g(the)g(v)-5 b(alue)34 b(of)g Fv(Wc)p Fz(.)50 b(The)36 b(v)-5 b(alue)34 b(of)g Fv(Wc)h Fz(ma)m(y)f(range)227 3355 y(b)s(et)m(w)m(een)42 b(25)d(and)h(-72.)64 b(See)41 b(section)e(3.2.3)h(for)f(a)g(more)g(detailed)g(explanation)f(of)i(w)m (eap)s(on)227 3471 y(class.)k(See)33 b(section)g(3.2.1)f(to)g(see)i(ho) m(w)f Fv(Wc)g Fz(w)m(orks)h(in)e(attac)m(king.)374 3704 y Fw(\017)65 b Fy(damage)i Fz(\(\020)8 b Fv(Dam)p Fz(\021\))66 b Fw(\000)g Fz(Ho)m(w)h(m)m(uc)m(h)f(damage)f(a)h(melee/missile)d (attac)m(k)j(b)m(y)h(the)227 3820 y(c)m(haracter)53 b(will)d (in\035ict.)100 b(Higher)51 b(v)-5 b(alues)52 b(indicate)f(a)g(greater) h(amoun)m(t)f(of)h(damage)f(will)227 3936 y(b)s(e)27 b(in\035icted)e(with)h(eac)m(h)h(attac)m(k.)41 b(See)27 b(section)f(3.2.3)g(for)f(a)h(calculation)e(of)h(the)i(c)m(haracter)f Fv(Dam)p Fz(.)374 4168 y Fw(\017)45 b Fy(armour)52 b(class)45 b Fz(\(\020)8 b Fv(Ac)p Fz(\021\))45 b Fw(\000)h Fz(Ho)m(w)g(protected) g(the)g(c)m(haracter)g(is)f(from)f(b)s(eing)h(hit)f(b)m(y)227 4285 y(an)m(y)36 b(attac)m(k.)51 b(Lo)m(w)m(er)36 b(v)-5 b(alues)35 b(are)f(b)s(etter.)51 b Fv(Ac)36 b Fz(is)e(based)i(on)f(the) g(c)m(haracter)h(class)f(\(table)f(2.2\))227 4401 y(and)39 b(is)e(mo)s(di\034ed)g(b)m(y)i(the)g(DEX)g(\()p Fv(AcB)g Fz(column)e(in)g(table)g(2.1\))h(and)g(curren)m(t)i(armour)d(w)m(orn.) 227 4517 y(F)-8 b(or)39 b(c)m(haracters)h(that)f(cannot)g(w)m(ear)h (armour,)f Fv(Ac)h Fz(impro)m(v)m(es)f(as)g(their)g(lev)m(el)f (increases)i(\(see)227 4633 y(section)33 b(3.2.3\).)374 4866 y Fw(\017)f Fy(armour)h Fz(\(\020)8 b Fv(Arm)p Fz(\021\))32 b Fw(\000)h Fz(Ho)m(w)h(m)m(uc)m(h)f(damage)f(will)f(b)s(e)i (subtracted)h(from)d(successful)k(hits)227 4982 y(made)40 b(up)s(on)g(the)h(c)m(haracter.)66 b(This)41 b(v)-5 b(alue)39 b(ranges)i(b)s(et)m(w)m(een)h(0)e(to)f(99\045.)66 b(Curren)m(t)41 b(armour)227 5098 y(w)m(orn)33 b(primarily)d(determines)i Fv(Arm)i Fz(v)-5 b(alue.)374 5331 y Fw(\017)47 b Fv(speed)i Fw(\000)g Fz(Ho)m(w)f(fast)g(the)g(pla)m(y)m(er)h(ma)m(y)e(mo)m(v)m(e.) 90 b(The)49 b(v)-5 b(alue)47 b(of)g Fv(speed)j Fz(ma)m(y)d(range)227 5447 y(b)s(et)m(w)m(een)c(nearly)e(0)g(\(\020v)m(ery)h(slo)m(w\021\))e (to)h(higher)g(than)g(5)f(\(\020ligh)m(tning)e(fast\021\).)69 b(Base)41 b Fv(speed)i Fz(is)227 5563 y(determined)c(from)f(the)i(DEX)g (and)g(mo)s(di\034ed)e(do)m(wn)m(w)m(ard)j(prop)s(ortionally)36 b(b)m(y)k(the)g(amoun)m(t)227 5679 y(of)34 b(w)m(eigh)m(t)h(carried)e (whic)m(h)i Fu(exc)-5 b(e)g(e)g(ds)33 b Fz(the)h Fv(Max)52 b(Carry)36 b Fz(limit)30 b(\(table)k(2.1\).)48 b(The)35 b(armour)e(w)m(orn)1972 6057 y(7)p eop end %%Page: 8 12 TeXDict begin 8 11 bop 227 388 a Fz(T)-8 b(able)33 b(2.2)f Fx(Cross\034re)i Fz(c)m(haracter)f(classes.)p 359 499 3276 4 v 357 578 4 79 v 545 554 a Ft(T)n(yp)r(e)p 889 578 V 1083 578 V 431 w(Str)p 1277 578 V 101 w(Dex)p 1499 578 V 100 w(Con)p 1724 578 V 100 w(In)n(t)p 1913 578 V 101 w(Wis)p 2133 578 V 99 w(P)n(o)n(w)p 2363 578 V 100 w(Cha)p 2588 578 V 100 w(Sp)r(ecial)p 3632 578 V 359 581 3276 4 v 359 598 V 357 716 4 119 v 531 692 a(Dw)n(arf)p 889 716 V 222 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: dwarf-p.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa6ff ffffffffffa6ffffffffffffffffffffffffffffffffffffffffffffffa6 ffffffffffffffa6ffffffffffffffffffffffffff62626262ffffffffff ffa6a662bebebea6a6a6ffffffffffffffffffffffffff626262627a7aff ffffffa6a67a7a7a7aa6a6ffffffffffffffffffffffffffffffff3e627a 7affffffffff627ab3b3b37affffffffffffffffffffffffffffffffff3e 67ffffffffffffff62b311b31162ffffffffffffffffffffffffffffffff ff3e67ffffffffffffff7a858502b362ffffffffffffffffffffffffffff ffff3e67ffffffffffffffff0202026702ffffffffffffffffffffffffff ffffffff3e67ffffffffff7aa6ae7a02020202aea6ffffffffffffffffff ffffffffffff3e67ffff62be7aa67ad37a020202a6d37abeffffffffffff ffffffffffffffff3e6762627a62a67aa67ad3a602a6d3a6beffffffffff ffffffffffffffffffff3e67857abea662a67aa6d3bed3d3a6a6a6be02ff ffffffffffffffffffffff3e676785bea6a67a62a67aa6d3d3a6be7aa6a6 0202ffffffffffffffffffffff3e8585ffffff3e627a62a67abeffbea662 7a620202ffffffffffffffffffffff3e3effffff3e3e3e3e3e023e3e3ea6 0293b3850202ffffffffffffffffffffffffffffffff627a3e3e223e3e3e 3e020293b3020202ffffffffffffffffffffffffffffff627a62a67abea6 bea6be0202b3b3b30202ffffffffffffffffffffffffffffff0262a67abe a662a6bea60202b3b30202ffffffffffffffffffffffffffffff02022a3e beffff7abeffbeff0202020202ffffffffffffffffffffffffffffff0202 2a3effffff62a6bea6ffff0202ffffffffffffffffffffffffffffffff02 022a3effffffff022a3effffffffffffffffffffffffffffffffffffffff 02022a3effffffffff022a3effffffffffffffffffffffffffffffffffff ff022a2a3effffffffffff02023effffffffffffffffffffffffffffffff ffffffffffffffffffffffffff02023e3effffffffffffffffffffffffff ffffffffffffffffffffffffffffffff02023effffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 716 V 194 w(23)p 1277 716 V 124 w(18)p 1499 716 V 152 w(24)p 1724 716 V 155 w(18)p 1913 716 V 120 w(19)p 2133 716 V 149 w(18)p 2363 716 V 160 w(19)p 2588 716 V 155 w(A)n(c)24 b(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1)p 3632 716 V 357 834 V 580 810 a(Elf)p 889 834 V 270 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: elf.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffa9c5c8c1ffffff ffffffffffffffffffffffffffffffffffffffffffffffff5f6b6b6b6b65 ffffffffffffffffffffffffffffffffffffffffffffff647dffc2bfb2b5 bcbcff6effffffffffffffffffffffffffffffffffffffffffff7c9b60a2 42ae316e986effffffffffffffffffffffffffffffffffffffffffffff7b 898fa9a79c866fffffffffffffffffffffffffffffffffffffffff2cff44 496c8186a5a68284ffffffffffffffffffffffffffffffffffffffffffff 8a435b7c8e847b7d84777196ffffffffffffffffffffffffffffffffffff 7fbf7a2f42707d786364726d5fb4ffffffffffffffffffffffffffffffff ff617fa1a15f2c9375685e5f627eaedeffffffffffffffffffffffffffff ffff7f61a1bf61a1364e689982a18c98a0bfa1ffffffffffffffffffffff ffffffff837fbfa17f617f4959a1b99dbf7fa1a1bfffffffffffffffffff ffffffffffff8383a16161a1615c4b6cd7bfa1617f61a1ff3dffffffffff ffffffffffffff65b5837840bf61a17f554595a17861407fffff3dffffff ffffffffffffffff8383b542592c617f617fa14b46867593b583ff3d2cff ffffffffffffffffff7f7f40624b131e3d213f213f3f385f6c91b565ff3d ffffffffffffffffffffff78bfcc6a21131537361d3c3b39345a65afb5ff 3d2cffffffffffffffffffffff95b1634616131b2b20272c2627214d649a 86ae3dffffffffffffffffffffff9576684328131c2a2018232b1e171a3e 6366383d2cffffffffffffffffffffff7872542e121a24212112151b1720 1d3c628a522cffffffffffffffffffffff9577643b131e242120272f3013 1d1e214b6e3d2cffffffffffffffffffffffff787358351e261a222a3043 4a151b28243d3d2cffffffffffffffffffffffffff9575672a1b2d253636 44525419163d3d2c78ffffffffffffffffffffffffffffff953e4e393856 424652575b3d3d2c757895ffffffffffffffffffffffffffffffff3f523f ffffffffffffff3e3f3fffffffffffffffffffffffffffffffffffff3f3f 52ffffffffffffffff3f3f52ffffffffffffffffffffffffffffffffff3f 3f523fffffffffffffffff3f3f3f52ffffffffffffffffffffffffffffff ff3f3f3fffffffffffffffffffff3f3f3fffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 834 V 194 w(18)p 1277 834 V 124 w(23)p 1499 834 V 152 w(18)p 1724 834 V 155 w(22)p 1913 834 V 120 w(17)p 2133 834 V 149 w(22)p 2363 834 V 160 w(24)p 2588 834 V 155 w(A)n(c)i(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1)p 3632 834 V 357 952 V 550 928 a(F)-6 b(enx)p 889 952 V 243 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: fenx.150.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffff00000000ff00ffffffffffffffff ffffffffffffffffffffffff0000ffffff004040404000ffffffffffffff ffffffffffffffffffffffffff00512f00000040404040402f00ffffffff ffffffffffffffffffffffffffffff0051402f2f2f40404040402f00ffff ffffffffffffffffffffffffffffffffff0051404040404040404040402f 00ffff2f2fffffffffffffffffffffffffffffff00514040404040404040 402f00ff2fd1ffffffffffffffffffffffffffffffd1d1005140402f2f2f 2f2f402f002fd1ffffffffffffffffffffffffffffffffffffd100404000 00bd2f00002f00d1d1ffffffffffffffffffffffffffffffffff40ffd140 40d1d12fbdd1d12fd1d1ffffffffffffffffffffffffffffffffff40ffff 00d140ff00d1d100ff2fd100ffffffffffffffffffffffffffffff515151 ffff00d17dff00d1d100ff7dd100ffffffffffffffffffffffffffffff51 512fffffff007dff00d1d100ff7d00ffffffffffffffffffffffffffffff ff512fffffffffff00bdd1d1d1d1bd00ffffffffffffffffffffffffffff ffff51512fffffffffff0000bdd1d1bd0000ffffffffffffffffffffffff ffffffff51512f2fffffff004b4b00bdbd003c3c00ffffffffffffffffff ffffffffffff5151402fffffff00cc4b4b00004b4bcc00ffffffffffffff ffffffffffffffff5151402f2fff00e6cc4b4b4b4b4b3ce6cc00ffffffff ffffffffffffffffffff515140402f2f00e6cc4b4b4b4b4b3ce6cc00ffff ffffffffffffffffffffffff51514040404000e6cc4b4b4b4b4b3ccce600 ffffffffffffffffffffffffffff515151404000e6e6cca64b4b4b3c3ccc e6cc00ffffffffffffffffffffffffffff5151514000e6cccca6a6a69595 9500e6cc00ffffffffffffffffffffffffffffff51515100bdbd6565a6a6 a6a695bdbdbd00ffffffffffffffffffffffffffffffff515100bdbd6565 656552656500bdbd00ffffffffffffffffffffffffffffffffffff00bdbd 0065656565656500bdbd00ffffffffffffffffffffffffffffffffffffff 000000656565656565520000ffffffffffffffffffffffffffffffffffff ffffff00006565656565655200ffffffffffffffffffffffffffffffffff ffffffffffffff00656552655200ffffffffffffffffffffffffffffffff ffffffffffffffffff00936552529300ffffffffffffffffffffffffffff ffffffffffffffffffff009393935293939300ffffffffffffffffffffff ffffffffffffffffffffffff000000000000000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 952 V 194 w(18)p 1277 952 V 124 w(24)p 1499 952 V 152 w(20)p 1724 952 V 155 w(22)p 1913 952 V 120 w(18)p 2133 952 V 149 w(16)p 2363 952 V 160 w(22)p 2588 952 V 155 w(A)n(c)24 b(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1)p 3632 952 V 357 1149 4 198 v 491 1047 a(Fireb)r(orn)p 889 1149 V 183 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: fireborn.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff68ffff68ffffffffffffffff68ff ffffffffffffffffffffffffffffffffffff68ffff68ffffffffffffff68 68ffffffffffffffffffffffffffffffffffffffff68ff68ffffffffffff 6868ffffffffffffffffffffffffffffffffffffffffff6868706fffffff ff6a73ff6868ffffffffffffffffffffffffffffffffffffffffff697876 ffff6879ffffffffffffffffffffffffffffffffffffffffffffffffffff 6e78665f677b6cffffffffffffffffffffffffffffffffffffffffffffff ff676b7565626168625effffffffffffffffffffffffffffffffffffffff ffffff5f63666a73736d67615effffffffffffffffffffffffffffffffff ffffffffff60697685929692826f615effffffffffffffffffffffffffff 68ffffffffff60697a8c9ca9b1af9e816a6062ffffffffffffffffffffff ffffff686a68686663718798a2acb5b9aa8c6e636768ffff6868ffffffff ffffffffffff737eff6e676f8692989da9ada3896d677878766a68ffffff ffffffffffffffff68ffff6a666a7b84888d9599907e6c61697171ffffff ffffffffffffffffffffff68ff676766737d808185848074685f61ffffff ffffffffffffffffffffffffff68ffff67666b797e7e7e7c766c635effff ffffffffffffffffffffffffffffffffffffff67666d767674706a655f5e ffffffffffffffffffffffffffffffffffffffffff716d6466676a6a6462 5fffffffffffffffffffffffffffffffffffffffffff6c8171655f5f626f 6e67ffffffffffffffffffffffffffffffffffffffffffff6a73ffffffff 656c84ffffff6868ffffffffffffffffffffffffffffffffffffff6bffff ffffff687c70686868ffffffffffffffffffffffffffffffffffffffff68 ffffffffffff7473ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff6affffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff68ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff68ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1149 V 194 w(15)p 1277 1149 V 124 w(24)p 1499 1149 V 152 w(20)p 1724 1149 V 155 w(22)p 1913 1149 V 120 w(22)p 2133 1149 V 149 w(27)p 2363 1149 V 160 w(18)p 2588 1149 V 155 w(A)n(c)i(0,)f(W)-6 b(c)25 b(21,)f(Dam)e(0)2639 1125 y(A)n(ttac)n(ks:)33 b(\034re)p 3632 1149 V 357 1267 4 119 v 514 1244 a(Gnome)p 889 1267 V 206 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gnome-p.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff8b8bffffffffffffffffffffffffffffffffffffffffffff ff6363ffffffffff869a8effffffffffffffffffffffffffffffffffffff ffffff63637b7bffffff838687ffffffffffffffffffffffffffffffffff ffffffffffff3d7b7bffffff83b3acffffffffffffffffffffffffffffff ffffffffffffffff3dffffff7272a52121ffffffffffffffffffffffffff ffffffffffffffffff3d66ffff727272afbcb5ffffffffffffffffffffff ffffffffffffffffffffff3d66ffff7279857ecca582ffffffffffffffff ffffffffffffffffffffffffff3d6672727e8686895185868effffffffff ffffffffffffffffffffffffffffff3d667e7e7e79868b8e868b8bffffff ffffffffffffffffffffffffffffffffff66668e8a727282988f7e8686ff ffffffffffffffffffffffffffffffffffffff3dffff5c60756d736a6d97 ffffffffffffffffffffffffffffffffffffffffffffff727265635f5a5f 24adffffffffffffffffffffffffffffffffffffffffffffff7272868692 8a81ffb3ffffffffffffffffffffffffffffffffffffffffffffff727286 919a8a72ffffffffffffffffffffffffffffffffffffffffffffffff0029 3dffff769f8fffffffffffffffffffffffffffffffffffffffffffffffff 00293dffff003dffffffffffffffffffffffffffffffffffffffffffffff ff00003dffffff003dffffffffffffffffffffffffffffffffffffffffff ffff00293dffffffffff003dffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1267 V 194 w(19)p 1277 1267 V 124 w(17)p 1499 1267 V 152 w(18)p 1724 1267 V 155 w(20)p 1913 1267 V 120 w(23)p 2133 1267 V 149 w(23)p 2363 1267 V 160 w(20)p 2588 1267 V 155 w(A)n(c)24 b(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1,)i(luc)n (k)g(1)p 3632 1267 V 357 1385 V 504 1362 a(Hal\035ing)p 889 1385 V 195 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: halfling.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff3c43433fffffffffffffffffffffffffffffffffffffffffffffff ffffffff31263633243dffffffffffffffffffffffffffffffffffffffff ffffffffffff1f295f77773dffffffffffffffffffffffffffffffffffff ffffffffffffffff275c0fb30fffffffffffffffffffffffffffffffffff ffb5ffffffffffffffff6e93953fb3ffffffffffffffffffffffffffffff ffff7bb5ffffffffffffffff3e9ba7aa98ffffffffffffffffffffffffff ffffffff7bb5ffffffff292938817c73989f868effffffffffffffffffff ffffffffffff7bb5ffff35212929298d7a12363d78362bffffffffffffff ffffffffffffffff7bb55a46312933332b3fbea5008b4c2b2bffffffffff ffffffffffffffffffff7bb56835333b3b3b332b77b5c56a30333333ffff ffffffffffffffffffffff3d6666614f3343313536333f87652b29303333 ffffffffffffffffffffffffff3d8585ffff2929262933332b332b202031 3333ffffffffffffffffffffffffff3d3dffffff2017171e262029211e27 ff5e6e33ffffffffffffffffffffffffffffffffff1e262629212129291b 17ffff89aa6bffffffffffffffffffffffffffffffffff30212b35353333 2b1e1fffffb3b389ffffffffffffffffffffffffffffffff60361e2b3b3b 36332b2929ffffb3b3ffffffffffffffffffffffffffffffffff483e2433 36353336292952ffffffffffffffffffffffffffffffffffffffff1263b3 5f563d3b3b3b4d54ffffffffffffffffffffffffffffffffffffffffff1b 6c8861ffffffff488071ffffffffffffffffffffffffffffffffffffffff 00004254ffffffffff122447ffffffffffffffffffffffffffffffffffff ff0000293dffffffffffff00003d3dffffffffffffffffffffffffffffff ffff0029293dffffffffffffffff00003dffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1385 V 194 w(16)p 1277 1385 V 124 w(23)p 1499 1385 V 152 w(24)p 1724 1385 V 155 w(20)p 1913 1385 V 120 w(17)p 2133 1385 V 149 w(20)p 2363 1385 V 160 w(20)p 2588 1385 V 155 w(A)n(c)g(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1,)i(luc)n(k) g(1)p 3632 1385 V 357 1504 V 512 1480 a(Human)p 889 1504 V 202 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: human.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff1721201cffffff ffffffffffffffffffffffffffffffffffffffffffffffff212827242823 ffffffffffffffffffffffffffffffffffffffffffffffffffff28229a9f 8928ffffffffffffffffffffffffffffffffffffffffffffffffffff2a96 3fb13b2affffffffffffffffffffffffffffffffffffffffffffffff11ff 1d757fb3a025ffffffffffffffffffffffffffffffffffffffffff111114 121f4c52795f4c42ffffffffffffffffffffffffffffffffffffffffff13 1517162e3d4046441c1416ffffffffffffffffffffffffffffffffffffff 351c15171d383e3e37000f171019ffffffffffffffffffffffffffffffff ff9b9ebf1215203e4140250a1617182bffffffffffffffffffffffffffff ffff787f6c6c3e3e23454740110a18132738ffffffffffffffffffffffff ffffffff66786f3e513ebf4747380412121a363affffffffffffffffffff ffffffffffff66403e513e7fbf453e15031511283c3affffffffffffffff ffffffffffffff63b33e513e6666ff433a090e1414303c3affffffffffff ffffffffffffffff80803e513e66667f14191507130f1a5f9d7dffffffff ffffffffffffffffff7fb33e513e6666661224282714170fff8cb463ffff ffffffffffffffffffffff40b3513e39120f0f131b3e2511130effb4b4ff ffffffffffffffffffffffffff3e803eff0006090a0a0a09060d0e10ffb4 b4b4ffffffffffffffffffffffff3e513e7f200b0a060808090704090cff ffb4b4ffffffffffffffffffffffffff513effff0c0a080a090103010408 05ffffffffffffffffffffffffffffffffffffffff0b0b10111034ff0501 050b05ffffffffffffffffffffffffffffffffffffffff3e301011ffffff 2b0105080bffffffffffffffffffffffffffffffffffffff3e513e3effff ffffff0c0f0718ffffffffffffffffffffffffffffffffffffff3e513eff ffffffffff0d030bffffffffffffffffffffffffffffffffffffff3e3e51 ffffffffffffff3e3e31ffffffffffffffffffffffffffffffffffff3e3e 513effffffffffffff3e5151ffffffffffffffffffffffffffffffffffff 3e3e3effffffffffffffff3e3e51ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff3e3e3e51ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff3e3e3effffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1504 V 194 w(20)p 1277 1504 V 124 w(20)p 1499 1504 V 152 w(20)p 1724 1504 V 155 w(20)p 1913 1504 V 120 w(20)p 2133 1504 V 149 w(20)p 2363 1504 V 160 w(20)p 2588 1504 V 155 w(A)n(c)g(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1)p 3632 1504 V 357 1622 V 467 1598 a(Northman)p 889 1622 V 158 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: viking.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff395f9d47ffffff fffffffffffffffffffffffffffffffffffffffffffffff62e7189bcb38c f3ffffffffffffffffffffffffffffffffffffffffffffffff266153789a c06b80ffffffffffffffffffffffffffffffffffffffffffffff23084289 0fb50f4920ffffffffffffffffffffffffffffffffffffffffffff292634 5d8383b5ae50ffffffffffffffffffffffffffffffffffffffffffff2028 353e447d7f86793a2effffffffffffffffffffffffffffffffffffffff28 373e2e2e3834747b3d3a3440ffffffffffffffffffffffffffffffffffff 36303c4a43312c302b38372c323d54ffffffffffffffffffffffffffffff ff4630404d4b494944442e3b32343d3d4bffffffffffffffffffffffffff ffffff353f4d4a353b434547444f4b363f3b3dffffffffffffffffffffff ffffffff3f3d474641393e3bada34b503e313f3b3120ffffffffffffffff ffffffffff3e3a3f443f3f3ca0d9fa494f452d34483e2d2020ffffffffff ffffffffffffff3f46403e3fb2def843474a453c343c3d38222020ffffff ffffffffffffffff7358843e83d2ff3f3e454c4b403628252424202020ff ffffffffffffffffff7e7c3fb9d6fc3f3f213d294141361c202a2e282020 20ffffffffffffffffffffffbfe0ffff617f3f3f213f3f3f3820203a4420 202020ffffffffffffffffffffffb57fff617f61a17fbfa1bfa17b202054 965c202020ffffffffffffffffffffffff79547360a17fa1a1bfa1bf7520 20565a202020ffffffffffffffffffffffffff2e2c3e7e7ba17fbfa1bfe0 9f20202020202020ffffffffffffffffffffffffff3033393f927fbf9fa9 78867dffff202020ffffffffffffffffffffffffffff302e3c3c3effffff ff34373842ffffffffffffffffffffffffffffffffffffff2a1e3f41ffff ffff3431393b44ffffffffffffffffffffffffffffffffffff3f4c3035ff ffffffffff312736ffffffffffffffffffffffffffffffffffffff3f5237 ffffffffffffff2e2430ffffffffffffffffffffffffffffffffffff3f3f 52ffffffffffffffff3f5252ffffffffffffffffffffffffffffffffff3f 3f523fffffffffffffffff3f3f52ffffffffffffffffffffffffffffffff ff3f3f3fffffffffffffffffff3f3f3f52ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff3f3f3fffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1622 V 194 w(21)p 1277 1622 V 124 w(21)p 1499 1622 V 152 w(22)p 1724 1622 V 155 w(18)p 1913 1622 V 120 w(19)p 2133 1622 V 149 w(19)p 2363 1622 V 160 w(19)p 2588 1622 V 155 w(A)n(c)i(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1)p 3632 1622 V 357 1740 V 408 1716 a(Fire)i(hatc)n(hling)p 889 1740 V 101 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: pl-dragon-r.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff3330303132ffffffff ffffffffffffffffffffffffffffffffffffffffffff26282925283233ff ffffffffffffffffffffffffffffffffffffffffffffff232d2c24222425 2d33ffff31ffffffffffffffffffffffffffffffffffffff1f25333031ff 2c23262c39ff33ffffffffffffffffffffffffffffffffffffff1a253538 49ff2c312425332f33ffffffffffffffffffffffffffff2828ffffff1a26 2e39ffffff292f2521253bffffffffffffffff28282fffffff2828282825 21293635ffffffff3241252b3326ffffffffffffffffff2b2628ffff282c 2e28212f2d3345ffffff2836322c2a26ffffffffffffffffffff24242cff ff32392e282f323043ffffff28272a4d221cffffffffffffffffffffff1f 252fff2e3f41282e3a383646ffff28261f3d2e1dffffffffffffffffffff ff17262e282c2f2c2d2c2e2d2938ffffff2618233528ffffffffffffffff ffffffff1f2d2828293d2e29323f353237ffffff25262c28ffffffffffff ffffffffffff1f2a29282e3c2c282e2f332e2f2828ff28282828ffffffff ffffffffffffffff1d282cff2b2c2c282a3040312f282828ff2828ffffff ffffffffffffffffffff1e262cff2828282724292f2f2c262527ffffffff ffffffffffffffffffffffff1d262cff282a1f1e212e38402e291d232828 ffffffffffffffffffffffffff1c1f272cff28211f21272e323332302920 282828ffffffffffffffffffffffff1f1e2a2dffff21ff361e283745412e ffffff2828ffffffffffffffffffffffff221d2a26ffffffff301a222e36 322dffffff282328ffffffffffffffffffffff241e261f28ffffff40171f 42413c2fffffff28201f26ffffffffffffffffffff2c1c271d2018ffff21 132230352e2dffffff28ff2523ffffffffffffffffffffff212429242528 1a1a1f29383b312fffffffffff28ffffffffffffffffffffffff29262928 28201f2427333e312733ffffffffffffffffffffffffffffffffffffff21 263028282f32332c2d2d27ffffffffffffffffffffffffffffffffffffff ff272a2a2a303133322d2d31ffffffffffffffffffffffffffffffffffff ffffffffff30272b2c2f2f3339ffffffffffffffffffffffffffffffffff ffffffffffffffff27273b3a3cffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1740 V 194 w(25)p 1277 1740 V 124 w(20)p 1499 1740 V 152 w(26)p 1724 1740 V 155 w(17)p 1913 1740 V 120 w(12)p 2133 1740 V 149 w(25)p 2363 1740 V 160 w(20)p 2588 1740 V 155 w(A)n(c)g(5,)f(W)-6 b(c)25 b(21,)f(Dam)e(10)p 3632 1740 V 357 1858 V 501 1834 a(Half)h(orc)p 889 1858 V 193 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: pl-half-orc.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ff00000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 00ffffffffffffffffffffffffffffffffffffffffffffffffff00000093 93930000ffffffffffffffffffffffffffffffffffffffffffffffff0000 933a933a00ffffffffffffffffffffffffffffffffffffffffffffffff00 0000838393930000ffffffffffffffffffffffffffffffffffffffff6500 000000832d836565ffffffffffffffffffffffffffffffffffffffffff83 93009300a1ff832d2d0000ffffffffffffffffffffffffffffffffffffff 6593939300a1ffa1836500650000ffffffffffffffffffffffffffffffff ffff93936500522da100650065006565ffffffffffffffffffffffffffff ffffffff656565ff2d3f002d00650065838383ffffffffffffffffffffff ffffffffffff8383ff2d3f006500650065ff659383ffffffffffffffffff ffffffffffffffff93652d3f00830083008300ff659365ffffffffffffff ffffffffffffffffff9393833f0083008300830083ffff8393ffffffffff ffffffffffffffffffffff83833f006500650083000000ffff6565ffffff ffffffffffffffffffffffffff2d3f00000000000000000000ff658393ff ffffffffffffffffffffffffffff2d3fff00000000000000000000ff6583 93ffffffffffffffffffffffffffff2d3fff6583000000000000000000ff ff6565ffffffffffffffffffffffffff2d3fffff00838365ffff00000000 83ffffffffffffffffffffffffffffffff2d3fffff002d5200ffffffff65 9393ffffffffffffffffffffffffffffffff2d3fffff002d2d00ffffffff ff000083ffffffffffffffffffffffffffffffffffffff002d5200ffffff ffffff002d00ffffffffffffffffffffffffffffffffffff002d5252ffff ffffffffff2d5265ffffffffffffffffffffffffffffffffffff000000ff ffffffffffffff002d00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff002d6565ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff2d0000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 1858 V 194 w(22)p 1277 1858 V 124 w(21)p 1499 1858 V 152 w(22)p 1724 1858 V 155 w(18)p 1913 1858 V 120 w(18)p 2133 1858 V 149 w(19)p 2363 1858 V 160 w(17)p 2588 1858 V 155 w(W)-6 b(c)25 b(21,)e(A)n(c)h(10,)g(Dam)e(1)p 3632 1858 V 357 2055 4 198 v 430 1952 a(Quetzalcoatl)p 889 2055 V 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: quetzalcoatl.131.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff7a7aff7a7affffffffffff7a7a7a7a7aff ffff7a7a7affffffffffffffffff7ab2b27ab2b27affffffff7a7a7a7a7a 7a7aff7a7affffffffffffffffffffff7ab2b2b27a7ab27affffff7a7aff ffff7a7a7a7a7affffffffffffffffffffff7ab2b2b2b2b27ab27affff7a 7a7affffff7a7a7a7a7a7affffffffffffffffffff7ab2b2b2b2b27ab27a ffff7a7a7affffff7a7ab27affffffffffffffffffffffff7a7a7ab2b2b2 7ab27affff7a7a7affff7a7a7a7a7affffffffffffffffffffffffffff7a b2b27ab27affffff7a7a7affff7a7a7a7a7affffffffffffffffffffffff 7a7a7a7a7a7a7a7affffff7a7a7affffff7a7affffffffffffffffffffff ff7a7a7a7a7a7a7a7a7a7a7a7a7ab27affffffffffffffffffffffffffff ffff7a7a7a7ab27ab27ab2b27ab27ab27a7affffffffffffffffffffffff ffffff7a7a7a7ab2b27ab2b27ab2b27ab27a7affffffffffffffffffffff ffffffff7a7a7ab2b27ab2b27ab27a7a7a7a7a7affffffffffffffffffff ffffffffffff7a7ab27a7a7a7a7a7a7affffffffffffffffffffffffffff ffffffffffffffff7a7ab27affffffffffffff7a7a7a7a7a7a7affffffff ffffffffffffffffffff7ab27affffffffffffff7a7a7a7a7a7a7a7a7a7a ffffffffffffffffffffffff7ab27affffffffffff7a7a7affffffffff7a 7a7a7affffffffffffffffffffffff7ab27affffff7a7a7a7affffffffff ffffff7a7affffffffffffffffffffffffff7ab27a7a7ab2b27affffff7a 7a7a7a7a7a7a7aff7affffffffffffffffffffffff7ab27ab27a7affff7a 7a7a7a7a7a7a7a7affff7affffffffffffffffffffffffff7a7a7a7affff 7a7a7affffffffffffffffff7affffffffffffffffffffffffffffffffff ff7a7affffffffffffffffffffff7affffffffffffffffffffffffffffff ffffff7a7affffffffffffffffffff7affffffffffffffffffffffffffff ffffffffffff7a7affffffffffffffff7affffffffffffffffffffffffff ffffffffffffffffff7a7a7a7a7a7a7a7a7affffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 2055 V 194 w(26)p 1277 2055 V 124 w(23)p 1499 2055 V 152 w(26)p 1724 2055 V 155 w(12)p 1913 2055 V 120 w(12)p 2133 2055 V 149 w(26)p 2363 2055 V 160 w(20)p 2588 2055 V 155 w(Armour)27 b(is,)g(A)n(c)g(5,)h(W)-6 b(c)27 b(21,)h(Dam)2639 2031 y(10)p 3632 2055 V 357 2173 4 119 v 440 2150 a(Serp)r(en)n(tman)p 889 2173 V 133 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: serpentman.131.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff2828280dffff ffffffffffffffffffffffffffffffffffffffffffffffffffff28343428 0dffffffffffffffffffffffffffffffffffffffffffffffffffff282834 4d3428ffffffffff6cffffffffffffffffffffffffffffffffffff3d2528 344d4d4d34ffffffffff6cffffffffffffffffffffffffffffffffff3a46 2a2a25344d4d4dffffffff6c6c9bffffffffffffffffffffffffffffffff 412740402a2e27344dffffffff6c9bffffffffffff344c4cffffffffffff ffff3a40404048301e28ffff4c6c6c9bffffffffffff4d3434344dffffff ffffff2832402727341f1e344c4c4c6c9bffffffffffff3425ffff3425ff ffffffff28282a40274c4c34293434346c9bffffffffffffffffffff4c34 ffffffffffff25342a27344c4c3421ff2a6c9b9bffffffffffffffffffff 3434ffffffffffff3a2a2a27344c343421ffff2a9bffffffffffffffffff ffff25344cffffff34341f2a2a3b214c3421ffffff2a402affffffffffff ffffffffff2534344c4c4c2820192a35214c4c3434344c4c2affffffffff ffffffffffffffff344c4c4c34281e212b3021344c4c4c4c3434ffffffff ffffffffffffffffffffff25252525100b132c2d21212134342a2affffff ffffffffffffffffffffffffffffffff3515070e212b1a16ffffffff2aff ffffffffffffffffffffffffffffffffffff35ff0410212b2026ffffffff ffffffffffffffffffffffffffffffffffffffff0b350014292515ffffff ffffffffffffffffffffffffffffffffffffffffffffff3503212610ffff ffffffffffffffffffffffffffffffffffffffffffffffff24051b2415ff ffffffffffffffffffffffffffffffffffffffffffffffffff2435152419 0bffffffffffffffffffffffffffffffffffffffffffffffffffff24350b 1513ffffffffffffffffffffffffffffffffffffffffffffffffffffff0b 3524ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff24ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff2435ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff242424ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 2173 V 194 w(22)p 1277 2173 V 124 w(22)p 1499 2173 V 152 w(24)p 1724 2173 V 155 w(18)p 1913 2173 V 120 w(18)p 2133 2173 V 149 w(20)p 2363 2173 V 160 w(16)p 2588 2173 V 155 w(A)n(c)c(5,)f(W)-6 b(c)25 b(21,)f(Dam)e(8)p 3632 2173 V 357 2291 V 551 2268 a(T)-6 b(roll)p 889 2291 V 242 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: troll-p.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffff3affff3affff3affffffff3affff ffffffffffffffffffffffffffffffff3affff47ff3a47ff3aff3aff3a2b ffffffffffffffffffffffffffffffffffffff3aff3a2bff3a2b3a3a3aff 2bffffffffffffffffffffffffffffffff3a3affff472b472b20472b2047 3a472bff3a3a3affffffffffffffffffffffffff3a3affff2b2b472b2047 204747202b4747ffffffffffffffffffffffff3a3affff3a2bff20202b2b 3a59616159474747ffffffffffffffffffffffffffff3a3a47ff3a3a3a2b 2047696969595959594e47ffffffffffffffffffffffffffffff472b2b3a 472b20596969696969595959ffffffffffffffffffffffffff2b2b2b2020 202b2b2020594e333a4e593a3f59ffffffffffffffffffffff3a4747ffff 472b200c17203a5961433f594e3f4359ffffffffffffffffffffffffffff 473a47202b4e4e4e59596969616969594759ffffffffffffffffffffffff 4747474e473a3a474e4e4e5969594e4759696947ffffffffffffffffffff ffffffff4e3a4e4e4e59594e4e59696959474759696947ffffffffffffff ffffffff5959474e4e59595959594e59692020203a47616947ffffffffff ffffffffffffff694e4e59594e4e59696159693a3a3a5969473affffffff ffffffffffffffff59474e59694e202b5969615969696947474effffffff ffffffffffffffffffff47594761592b283a59594e5959594759595959ff ffffffffffffffffffffff475959474e28284e5969695959594e28285959 59ffffffffffffffffffffffff4e594747ff203a616969696969594e283a 695959ffffffffffffffffffffff3a594e474eff2b4e5969696969695947 282b614e59ffffffffffffffffffffff4747474eff00004e596969594759 594e2020594e59ffffffffffffffffffffff594e4effff00000059616961 595933172b474e59ffffffffffffffffffffff473a47ffff00200c001759 5959593a000c3a004759ffffffffffffffffffffff594e47ffff002b0017 00000c2020171700002b4e4effffffffffffffffffff59596947ff204e4e 20000c280000000c00000059594effffffffffffffffffff6947474eff20 4e594e28000c1720202000ff4e595947ffffffffffffffffffffff5959ff ff17694e4effff0000000c17ffffff4e4effffffffffffffffffffffffff ffff00004e59ffffffff0000284effffffffffffffffffffffffffffffff ffffff00002047ffffffffffff0000473affffffffffffffffffffffffff ffffffff00202047ffffffffffffffff000047ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 2291 V 194 w(25)p 1277 2291 V 124 w(19)p 1499 2291 V 152 w(25)p 1724 2291 V 155 w(15)p 1913 2291 V 120 w(18)p 2133 2291 V 149 w(18)p 2363 2291 V 160 w(16)p 2588 2291 V 155 w(A)n(c)24 b(10,)g(W)-6 b(c)24 b(21,)g(Dam)e(1)p 3632 2291 V 357 2488 4 198 v 517 2386 a(W)-6 b(raith)p 889 2488 V 209 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: wraithp.151.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ff3fff3fff ffffffffffffffffffffffffffffffffffffffffffffffffffffff21ff3f ff21ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 4dff4dffffffffffffffffffffffffffffffffffffffffffffffffffffff ff21ff3fff21ffffffffffffffffffffffffffffffffffffffffffffff32 2c3600ff3fff3f3f38a1ffffffffffffffffffffffffffffffffffffff61 9b302d373a3aff0041366fbfa1ff61ffffffffffffffffffffffffffffff 7fbf7fa17c3b363736423939bfe0bfff61ffffffffffffffffffffffffff ff617fa1a17fa17f6c38383c398ca1bfa16161ffffffffffffffffffffff ffff7f61a1bf61a17fa1a1bd9bbfa1a1a1a1bf0c41ffffffffffffffffff ffffffff007fbfa17f21a17fbfa1bfa1bf7f7f61a10045ffffffffffffff ffffffffffffff3fa16161a17fa1a1bfa1bfa161407f0b0145ffffffffff ffffffffffffffff3fff00610061a17fbfa1bfa10761ff00061545ffffff ffffffffffffffffff00ffa16140617f617fa1bfa1a105003fff0e2a4aff ffffffffffffffffff7f00ffa161403f3f213f213f3f3f0b020c0c100346 ffffffffffffffffffffff3600006140407f3f3f213f3f3f370201ff3fff 0b4dffffffffffffffffffff3f41007f00407f61a17fbfa1bfa193060200 ff3f58ffffffffffffffffffffff4023127f617f61a17fa1a1bfa1bf8d04 0f3f616161ffffffffffffffffffff3f3804010c0061a17fa17fbfa1bfe0 bf0228174061ffffffffffffffffffffff3f14060b00ff3fffa17f9d73bf a1bfa10509ffffffffffffffffffffffffffff1e08030fff3fff00060b06 07ff00ff00093fffffffffffffffffffffffffffff3f3c15ff3fff000900 00000700ff3fff053fffffffffffffffffffffffffffffff48ff3f3f3f00 000000000fff3fff002442ffffffffffffffffffffffffffffff3f523fff ffffffffffffff3f5252ffffffffffffffffffffffffffffffffffff3f52 3fffffffffffffffff3f3f52ffffffffffffffffffffffffffffffffff3f 3f52ffffffffffffffffff3f3f3f52ffffffffffffffffffffffffffffff 3f3f523fffffffffffffffffffff3f3f3fffffffffffffffffffffffffff ffff3f3f3fffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 1083 2488 V 194 w(17)p 1277 2488 V 124 w(24)p 1499 2488 V 152 w(17)p 1724 2488 V 155 w(22)p 1913 2488 V 120 w(17)p 2133 2488 V 149 w(23)p 2363 2488 V 160 w(16)p 2588 2488 V 155 w(A)n(c)24 b(6,)f(W)-6 b(c)25 b(21,)f(Dam)e(1)2639 2465 y(A)n(ttac)n(ks:)33 b(cold)p 3632 2488 V 359 2492 3276 4 v 227 2865 a Fz(also)f(sets)i(the)f(upp)s(er)g(limit)c(on)j Fv(speed)i Fz(\(see)f(the)g Fx(Cross\034re)h Fy(Sp)s(oiler)e Fz(for)g(these)i(limits\).)374 3098 y Fw(\017)59 b Fy(w)m(eap)s(on)70 b(sp)s(eed)61 b Fw(\000)g Fz(App)s(ears)g(in)e(paren)m(theses)j(after)e (the)g Fv(speed)h Fz(in)f(the)g(stat)227 3214 y(windo)m(w.)94 b(This)50 b(quan)m(tit)m(y)f(is)g(ho)m(w)h(man)m(y)f(attac)m(ks)h(the)g (pla)m(y)m(er)f(ma)m(y)g(mak)m(e)h(p)s(er)f(unit)g(of)227 3330 y(time.)63 b(Higher)38 b(v)-5 b(alues)39 b(indicate)f(faster)i (attac)m(k)g(sp)s(eed.)64 b(Curren)m(t)41 b(w)m(eap)s(on)f(and)f(user)h (DEX)227 3446 y(e\033ect)27 b(the)f(v)-5 b(alue)25 b(of)g(w)m(eap)s(on) i(sp)s(eed.)42 b(See)27 b(section)e(3.2.3)h(for)f(a)g(calculation)e(of) j(w)m(eap)s(on)g(sp)s(eed.)374 3679 y Fw(\017)31 b Fv(food)h Fw(\000)g Fz(Ho)m(w)g(full)e(the)h(c)m(haracter's)i(stomac)m(h)e(is.)43 b(Ranges)32 b(b)s(et)m(w)m(een)h(0)e(\(starving\))g(and)227 3795 y(999)j(\(satiated\).)50 b(A)m(t)35 b(a)g(v)-5 b(alue)34 b(of)h(0)f(the)i(c)m(haracter)f(b)s(egins)g(to)f(die.)50 b(Some)35 b(magic)e(can)i(sp)s(eed)227 3911 y(up)24 b(or)f(slo)m(w)g (do)m(wn)h(the)g(c)m(haracter)g(digestion.)39 b(Healing)22 b(w)m(ounds)j(will)c(sp)s(eed)j(up)g(digestion)e(to)s(o.)227 4287 y Fy(2.1.2.)38 b(Character)g(Classes)227 4468 y Fz(Muc)m(h)30 b(lik)m(e)d(the)i(older)e(\020pap)s(er)h(and)g(p)s (encil\021)34 b(role-pla)m(ying)26 b(games)h Fx(Cross\034re)j Fz(has)e(adopted)h(the)227 4584 y(idea)g(of)f(c)m(haracter)i (\020class\021.)41 b(Eac)m(h)30 b(class)f(is)g(mean)m(t)g(to)f(b)s(e)i (a)e(template)g(of)h(a)f(particular)f(\020st)m(yle\021)227 4700 y(of)k(pla)m(y;)g(therefore)h(eac)m(h)g(c)m(hoice)f(of)g(class)g (mo)s(di\034es)f(b)s(oth)h(the)g(starting)f(v)-5 b(alues)31 b(and)h(sets)g(the)227 4817 y(natural)f(upp)s(er)i(limit)28 b(on)k(the)g(primary)f(stats.)44 b Fu(Imp)-5 b(ortant)33 b(note:)43 b Fz(c)m(haracter)33 b(class)f(is)g(c)m(hosen)227 4933 y(at)h(the)g(time)e(a)h(c)m(haracter)h(is)f(created)i(and)e(can't) h(b)s(e)g(c)m(hanged)g(later)f(on.)374 5049 y(T)-8 b(able)22 b(2.2)g(sho)m(ws)j(the)e(v)-5 b(arious)22 b(a)m(v)-5 b(ailable)20 b(c)m(haracter)j(classes)h(with)e(the)h(natural)f(stat)g (limits)227 5165 y(for)31 b(eac)m(h.)43 b(Under)32 b(the)f(\020sp)s (ecial\021)37 b(column)30 b(sev)m(eral)h(bits)g(of)f(information)d(are) k(included.)43 b(\020)8 b Fv(Ac)p Fz(\021)227 5281 y(indicates)35 b(the)g(base)h(armour)d(class)i(for)g(the)g(c)m(haracter;)i (\020damage\021)k(indicates)34 b(the)i(base)f Fv(Dam)227 5398 y Fz(v)-5 b(alue.)40 b(Some)22 b(c)m(haracter)h(classes)h(ha)m(v)m (e)g(sp)s(ecial)d(attac)m(k)i(abilities)d(and)j(certain)f (vulnerabilities,)227 5514 y(protections)h(from,)h(and)e(imm)m(unities) e(to)j(v)-5 b(arious)22 b(attac)m(kt)m(yp)s(es.)42 b(Read)23 b(section)f(3.2.1)h(for)f(more)227 5630 y(information)30 b(ab)s(out)i(what)g(e\033ect)i(these)g(can)e(ha)m(v)m(e.)1972 6057 y(8)p eop end %%Page: 9 13 TeXDict begin 9 12 bop 227 388 a Fz(T)-8 b(able)33 b(2.3)f(Starting)f (equipmen)m(t)i(b)m(y)g(c)m(haracter)h(class.)p 782 518 2428 4 v 780 597 4 79 v 832 573 a Ft(T)n(yp)r(e)p 1312 597 V 374 w(Starting)25 b(Equipmen)n(t)p 3209 597 V 782 600 2428 4 v 782 617 V 780 696 4 79 v 832 672 a(Dw)n(arf)p 1312 696 V 345 w(,)p 3209 696 V 780 775 V 832 751 a(Elf)p 1312 775 V 442 w(Quiv)n(er,)f(Arro)n(ws,)g(Bo)n(w)p 3209 775 V 780 854 V 832 830 a(F)-6 b(enx)p 1312 854 V 385 w(Quiv)n(er,)24 b(Arro)n(ws,)g(Bo)n(w)p 3209 854 V 780 933 V 832 909 a(Fireb)r(orn)p 1312 933 V 266 w(Cleric)g(b)r(o)r(ok)g (l1,)f(Pyro)i(b)r(o)r(ok)f(l1,)f(Am)n(ulet,)f(P)n(o)n(w)n(er)j (crystal,)g(Ring)p 3209 933 V 780 1011 V 832 988 a(Fire)f(hatc)n(hling) p 1312 1011 V 101 w(,)p 3209 1011 V 780 1090 V 832 1067 a(Gnome)p 1312 1090 V 312 w(,)p 3209 1090 V 780 1169 V 832 1145 a(Hal\035ing)p 1312 1169 V 291 w(,)p 3209 1169 V 780 1248 V 832 1224 a(Half)f(orc)p 1312 1248 V 286 w(,)p 3209 1248 V 780 1327 V 832 1303 a(Human)p 1312 1327 V 306 w(,)p 3209 1327 V 780 1406 V 832 1382 a(Northman)p 1312 1406 V 217 w(Bighorned)i(helmet,)p 3209 1406 V 780 1485 V 832 1461 a(Quetzalcoatl)p 1312 1485 V 146 w(,)p 3209 1485 V 780 1563 V 832 1540 a(Serp)r(en)n(tman)p 1312 1563 V 165 w(,)p 3209 1563 V 780 1642 V 832 1619 a(T)-6 b(roll)p 1312 1642 V 385 w(,)p 3209 1642 V 780 1721 V 832 1698 a(W)g(raith)p 1312 1721 V 318 w(,)p 3209 1721 V 782 1725 2428 4 v 227 2098 a Fy(Sizing)36 b(up)i(the)f(c)m (haracter)h(classes)227 2279 y Fz(Generally)-8 b(,)33 b(the)h(titles)e(of)h(the)h(c)m(haracter)h(classes)f(sp)s(eak)h(for)e (themselv)m(es.)47 b(But)34 b(y)m(ou)g(can)g(get)227 2395 y(a)29 b(b)s(etter)h(idea)f(of)g(the)g(p)s(oten)m(tial)f(of)h(a)g (class)g(b)m(y)h(c)m(hec)m(king)h(out)e(a)g(few)h(things.)42 b(T)-8 b(ak)m(e)30 b(a)f(lo)s(ok)g(at)227 2511 y(the)i(starting)f (equipmen)m(t)g(\(table)g(2.3\))g(and,)h(if)e(y)m(ou)j(are)e(using)g Fx(Cross\034re)i Fz(compiled)d(with)h(the)227 2627 y(skills)j(system,)j (c)m(hec)m(k)m(out)h(the)e(starting)e(skills)h(for)f(those)j(classes)f (y)m(our)g(in)m(terested)g(in)f(\(table)227 2744 y(2.4\).)374 2860 y(Finally)-8 b(,)29 b(here)34 b(are)e(some)h(notes)g(concerning)g (a)f(couple)g(of)g(the)h(more)f(\020exotic\021)40 b(classes:)227 3092 y Fw(\017)33 b Fy(Fireb)s(orn)227 3209 y Fx(A)m(ttac)m(ks:)45 b Fz(\034re,)33 b(ph)m(ysical)227 3325 y Fx(Protections:)44 b Fz(imm)m(une:)e(\034re,)33 b(p)s(oison;)f(vulnerable:)43 b(ghosthit,)32 b(drain,)f(cold)227 3441 y Fx(Sp)s(ecial:)43 b Fz(\035y)-8 b(,)33 b(no)f(armour,)g(no)g(w)m(eap)s(ons.)45 b Fv(Ac)33 b Fz(0)227 3557 y(Fireb)s(orns)41 b(are)g(\034re)g(spirits.) 69 b(They're)42 b(closely)f(in)f(tune)i(with)f(magic)e(and)i(learn)g (all)e(t)m(yp)s(es)227 3673 y(of)56 b(magic)e(easily)-8 b(.)113 b(Being)55 b(\034re)h(spirits,)61 b(they)c(are)f(imm)m(une)e (to)i(\034re)g(and)g(p)s(oison,)61 b(and)227 3790 y(vulnerable)29 b(to)g(cold.)41 b(They)31 b(are)e(vulnerable)f(to)h(ghosthit)f(and)h (drain)g(b)s(ecause)h(b)s(eing)e(mostly)227 3906 y(non-ph)m(ysical,)k (an)m(ything)h(whic)m(h)g(strik)m(es)g(directly)f(at)g(the)h(spirit)f (hits)g(them)g(harder.)227 4138 y Fw(\017)h Fy(Monk)227 4255 y Fx(A)m(ttac)m(ks:)45 b Fz(ph)m(ysical)227 4371 y Fx(Protections:)f Fz(none)227 4487 y Fx(Sp)s(ecial:)f Fz(no)32 b(w)m(eap)s(ons.)227 4603 y(Monks)37 b(are)f(mem)m(b)s(ers)f (of)g(v)-5 b(arious)35 b(martial)d(arts)k(orders.)53 b(They)37 b(ha)m(v)m(e)g(dev)m(oted)g(themselv)m(es)227 4720 y(to)i(a)g(life)f(of)h(con)m(templation)e(and)j(rev)m(elation)e (though)i(ph)m(ysical)f(\034gh)m(ting!)63 b(Their)40 b(life-long)227 4836 y(secret)35 b(v)m(o)m(ws)g(k)m(eep)g(them)e(from)f (using)h(all)f(hand-held)h(melee)f(w)m(eap)s(ons,)j(but)f(in)e(return)i (they)227 4952 y(are)f(allo)m(w)m(ed)f(to)g(learn)g(secret)i(tec)m (hniques)g(of)e(meditation.)227 5184 y Fw(\017)h Fy(Quetzalcoatl)227 5301 y Fx(A)m(ttac)m(ks:)45 b Fz(ph)m(ysical)227 5417 y Fx(Protections:)f Fz(imm)m(une:)e(\034re;)33 b(vulnerable:)43 b(paralyze,)33 b(p)s(oison,)e(cold)227 5533 y Fx(Sp)s(ecial:)43 b Fz(no)32 b(armour,)f Fv(Ac)i Fz(5)227 5649 y(Quetzalcoatls)41 b(are)h(an)g(o)s(dd)g(mixture)g(of)f(magic)g(and)h(com)m(bat)g (abilities.)69 b(They)43 b(are)f(b)s(orn)227 5766 y(kno)m(wing)d(the)g (sp)s(ell)f(of)g(burning)h(hands)g(\(heh,)i(its)d(their)g(\020dragon)g (breath\021\).)62 b(But)39 b(b)s(ecause)1972 6057 y(9)p eop end %%Page: 10 14 TeXDict begin 10 13 bop 227 388 a Fz(T)-8 b(able)33 b(2.4)f(Starting)f (skills)p 720 527 2471 4 v 718 626 4 100 v 770 596 a Fr(Character)25 b(class)p 1372 626 V 99 w(A)n(dditional)i(skills)2013 566 y Fm(1)p 3188 626 V 720 629 2471 4 v 720 646 V 718 746 4 100 v 770 716 a Fr(Dw)n(arf)p 1372 746 V 433 w(Smithery)-7 b(,)p 3188 746 V 718 845 V 770 815 a(Elf)p 1372 845 V 550 w(Missile)27 b(w)n(eap)r(ons,)g(W)-7 b(o)r(o)r(dsman,)27 b(Bo)n(wy)n(er)p 3188 845 V 718 945 V 770 915 a(F)-7 b(enx)p 1372 945 V 480 w(Singing,)27 b(Jumping,)h(Missile)f(w)n(eap)r (ons,)f(W)-7 b(o)r(o)r(dsman)p 3188 945 V 718 1045 V 770 1015 a(Fireb)r(orn)p 1372 1045 V 338 w(Pra)n(ying,)26 b(Pyromancy)-7 b(,)27 b(Flame)g(touc)n(h,)h(Levitate)p 3188 1045 V 718 1144 V 770 1114 a(Fire)f(hatc)n(hling)p 1372 1144 V 145 w(Ev)n(o)r(cation,)g(W)-7 b(o)r(o)r(dsman,)27 b(Cla)n(wing,)g(Levitate)p 3188 1144 V 718 1244 V 770 1214 a(Gnome)p 1372 1244 V 395 w(Pra)n(ying,)p 3188 1244 V 718 1343 V 770 1314 a(Hal\035ing)p 1372 1343 V 370 w(Hide,)h(Stealing)p 3188 1343 V 718 1443 V 770 1413 a(Half)f(orc)p 1372 1443 V 363 w(Stealing,)p 3188 1443 V 718 1543 V 770 1513 a(Human)p 1372 1543 V 389 w(Random)g(skill,)p 3188 1543 V 718 1642 V 770 1612 a(Northman)p 1372 1642 V 282 w(,)p 3188 1642 V 718 1742 V 770 1712 a(Quetzalcoatl)p 1372 1742 V 196 w(Pyromancy)-7 b(,)27 b(Cla)n(wing,)f(Levitate)p 3188 1742 V 718 1842 V 770 1812 a(Serp)r(en)n(tman)p 1372 1842 V 220 w(Jumping,)h(Cla)n(wing)p 3188 1842 V 718 1941 V 770 1911 a(T)-7 b(roll)p 1372 1941 V 480 w(,)p 3188 1941 V 718 2041 V 770 2011 a(W)g(raith)p 1372 2041 V 400 w(W)g(raith)27 b(feed,)p 3188 2041 V 720 2044 2471 4 v 227 2291 1416 4 v 190 2386 a Fm(1)227 2416 y Fr(All)60 b(c)n(haracter)d(classes)h(start)h(with)h(the)f(skills)g Fl(melee)42 b(weapons)p Fr(,)64 b Fl(find)42 b(traps)p Fr(,)65 b Fl(use)42 b(magic)g(item)p Fr(,)227 2516 y Fl(literacy)p Fr(,)25 b(and)i Fl(disarm)41 b(traps)p Fr(.)227 2800 y Fz(of)36 b(their)f(lo)m(w)h(natural)f(in)m (telligence/wisdom,)f(they)j(ha)m(v)m(e)g(a)f(v)m(ery)h(hard)f(time)f (learning)f(new)227 2916 y(sp)s(ells.)79 b(All)43 b(the)h(same,)k(they) d(ma)m(y)f(b)s(ecome)h(p)s(oten)m(t)f(wizards/priests)h(as)g(they)g(ha) m(v)m(e)h(the)227 3032 y(highest)40 b(p)s(o)m(w)m(er)h(b)s(on)m(us,)h (and)e(they)g(will)e(t)m(ypically)g(ha)m(v)m(e)j(a)e(large)g(amoun)m(t) g(of)g(mana)g(and)g(a)227 3149 y(fair)30 b(amoun)m(t)g(of)g(grace.)43 b(Quetzalcoatls)30 b(can)h(b)s(e)g(v)m(ery)h(dev)-5 b(astating)30 b(\034gh)m(ters)i(at)e(lo)m(w)h(lev)m(el.)42 b(A)227 3265 y(com)m(bination)27 b(of)h(their)g(lo)m(w)g(natural)f Fv(Ac)i Fz(and)g(high)f(base)h(damage)f(tend)h(to)f(mak)m(e)h (mincemeat)227 3381 y(out)e(of)g(lo)m(w-lev)m(el)f(monsters.)42 b(Ho)m(w)m(ev)m(er,)31 b(at)26 b(mid-lev)m(el,)g(they)i(really)e(b)s (egin)h(to)g(ha)m(v)m(e)h(problems)227 3497 y(b)s(ecause)34 b(they)g(cannot)e(use)i(armour.)227 3730 y Fw(\017)f Fy(W)-9 b(raith)227 3846 y Fx(A)m(ttac)m(ks:)45 b Fz(cold,)32 b(ph)m(ysical)227 3962 y Fx(Protections:)44 b Fz(imm)m(une:)e(drain,)32 b(ghosthit;)g(protected:)44 b(ph)m(ysical,)32 b(cold;)g(vulnerable:)43 b(\034re)227 4079 y Fx(Sp)s(ecial:)g Fv(Ac)33 b Fz(6)227 4195 y(The)27 b(W)-8 b(raith)25 b(is)g(a)h(creature)g(of)f(the)i (undead.)42 b(These)27 b(c)m(haracters)g(represen)m(t)h(rev)m(enging)e (spirits)227 4311 y(come)45 b(bac)m(k)g(to)f(life)f(to)h(w)m(ork)i (their)e(unholy)g(will)e(on)j(the)g(living.)77 b(Their)45 b(undead)g(nature)227 4427 y(mak)m(es)c(them)e(imm)m(une)f(to)h (life-damaging)c(forces)40 b(and)g(their)f(etherealness)i(protects)f (them)227 4543 y(from)32 b(ph)m(ysical)g(harm.)43 b(Lik)m(e)32 b(all)f(undead,)i(they)h(succum)m(b)f(to)g(\034re)g(readily)-8 b(.)227 4814 y Fy(Section)37 b(2.2.)h(Generating)f(a)g(c)m(haracter)227 5029 y Fz(When)e(y)m(ou)g(start)f(up)g Fx(Cross\034re)p Fz(,)i(y)m(ou)f(will)c(b)s(e)k(ask)m(ed)g(for)f(a)f(c)m(haracter)i (name)f(follo)m(w)m(ed)f(b)m(y)h(a)227 5145 y(passw)m(ord.)67 b(If)40 b(y)m(ou)h(are)f(pla)m(ying)e(for)i(the)g(\034rst)g(time,)h(t)m (yp)s(e)g(an)m(y)f(name)g(y)m(ou)g(lik)m(e;)j(this)d(will)227 5261 y(b)s(e)34 b(y)m(our)g(c)m(haracter)g(name)f(for)g(the)h(rest)g (of)f(the)g(life)f(of)h(that)g(c)m(haracter.)47 b(Next,)35 b(t)m(yp)s(e)f(in)f(an)m(y)227 5377 y(passw)m(ord.)45 b Fu(R)-5 b(ememb)g(er!:)42 b Fz(y)m(ou)33 b(will)d(need)j(to)f(t)m(yp) s(e)i(the)e(same)h(passw)m(ord)g(again)e(to)h(pla)m(y)g(that)227 5494 y(c)m(haracter)f(again!)40 b(One)30 b(more)f(note:)42 b(its)29 b(not)g(a)g(go)s(o)s(d)f(idea)h(to)g(use)i(\020real\021)k (passw)m(ords)d(to)d(y)m(our)227 5610 y(computer)41 b(accoun)m(ts!)69 b(Doing)40 b(so)h(ma)m(y)g(mak)m(e)f(y)m(our)i(system)f(vulnerable)g (to)f(unscrupulous)227 5726 y Fx(Cross\034re)34 b Fz(serv)m(er)h (administrators.)1948 6057 y(10)p eop end %%Page: 11 15 TeXDict begin 11 14 bop 374 333 a Fz(Y)-8 b(our)38 b(next)h(step)h (will)c(b)s(e)j(to)f(generate)h(random)e(\(primary\))g(stats)i(for)f(y) m(our)h(c)m(haracter.)227 449 y(Y)-8 b(ou)45 b(aren't)f(limited)d(to)j (the)h(n)m(um)m(b)s(er)f(of)g(times)g(y)m(ou)g(can)h(roll)d(y)m(our)j (stats)p Fw(\000)p Fz(so)g(ha)m(v)m(e)h(fun.)227 565 y(Notice)33 b(that)g(the)h(stats)f(are)g(alw)m(a)m(ys)h(arranged)f (that)g(the)h(STR)f(stat)g(has)h(the)g(highest)f(v)-5 b(alue,)227 682 y(the)38 b(CHA)g(stat)g(has)g(the)f(lo)m(w)m(est.)59 b(Y)-8 b(ou)38 b(ma)m(y)f(re-arrange)g(the)h(order)f(of)g(these)i(v)-5 b(alues)37 b(when)227 798 y(y)m(ou)f(decide)f(that)f(y)m(ou)h(ha)m(v)m (e)h(rolled)d(some)h(decen)m(t)i(stats.)50 b Fu(Two)36 b(p)-5 b(oints:)47 b Fz(y)m(ou)35 b(can)g(nev)m(er)h(roll)227 914 y(a)41 b(c)m(haracter)h(with)e(b)s(etter)i(stats)f(than)g(an)g(a)m (v)m(erage)h(of)e(straigh)m(t)g(15's,)k(and)d(y)m(ou)g(can't)g(roll)227 1030 y(higher)32 b(than)h(18)f(in)g(a)g(stat.)374 1146 y(When)g(y)m(ou)g(roll)d(y)m(our)j(c)m(haracter,)h(the)f(stats)f (displa)m(y)m(ed)h(are)g(the)f(stats)h(y)m(ou)g(will)d(get)j(as)f(a)227 1263 y(h)m(uman)j(\(whic)m(h)g(are)f(unmo)s(di\034ed\).)46 b(When)34 b(satis\034ed,)h(y)m(ou)f(can)g(step)g(through)f(a)h(n)m(um)m (b)s(er)g(of)227 1379 y(classes,)g(eac)m(h)f(with)f(sp)s(ecial)g(b)s (on)m(uses)i(in)e(stats.)374 1495 y(T)-8 b(able)22 b(2.2)h(sho)m(ws)i (ho)m(w)f(y)m(our)f(basic)g(stats)h(will)d(b)s(e)i(c)m(hanged)h(b)m(y)g (c)m(ho)s(osing)f(a)g(di\033eren)m(t)g(class.)227 1611 y(The)41 b(di\033erence)f(b)s(et)m(w)m(een)h(the)f(natural)f(stat)g (limit)d(and)k(20)f(indicates)g(the)h(b)s(on)m(us/p)s(enalt)m(y)227 1728 y(assigned)28 b(to)g(rolled)e(primary)g(stats.)43 b(F)-8 b(or)26 b(example,)j(a)e(barbarian)g(has)h(a)f(maxim)m(um)f (strength)227 1844 y(whic)m(h)43 b(is)e(4)h(higher)f(than)h(20)p Fw(\000)p Fz(that)g(means)g(he)h(will)c(b)s(egin)i(with)h(an)g (additional)d(4)j(p)s(oin)m(ts)227 1960 y(added)35 b(to)f(his)f (strength)i(roll.)46 b(On)34 b(the)g(other)h(hand,)f(a)g(barbarian)f (can)h(nev)m(er)i(get)e(ab)s(o)m(v)m(e)h(14)227 2076 y(in)30 b(in)m(telligence.)40 b(This)31 b(means)f(that)g(y)m(our)h (rolled)d(c)m(haracter)j(will)d(ha)m(v)m(e)j(6)f(less)h(in)e(in)m (telligence)227 2193 y(if)i(y)m(ou)h(c)m(ho)s(ose)h(that)e(class.)43 b(It)32 b(also)f(means)g(that)h(y)m(ou)g(can't)g(b)s(e)g(a)f(barbarian) g(if)f(y)m(ou)i(roll)e(less)227 2309 y(than)j(7)f(in)g(in)m (telligence;)f(the)i(p)s(o)s(or)e(barbarian)g(w)m(ould)i(ha)m(v)m(e)h (had)e(a)h(stat)f(b)s(elo)m(w)h(1.)227 2569 y Fy(Selecting)j(a)i(c)m (haracter)227 2749 y Fz(While)31 b(eac)m(h)h(class)g(has)g(its)f (particular)f(strengths)j(and)e(w)m(eaknesses,)36 b(in)31 b(summary)f(its)i(just)f(a)227 2865 y(fact)i(that)f(some)g(classes)i (are)e(easier)h(to)f(pla)m(y)g(than)h(others.)374 2982 y(F)-8 b(or)28 b(b)s(eginning)g(pla)m(y)m(ers,)i(the)g(\020simple)d (\034gh)m(ter\021)37 b(c)m(haracters)31 b(are)e(the)g(easiest)h(to)f (pla)m(y)g(suc-)227 3098 y(cessfully)-8 b(.)45 b(The)34 b(Dw)m(arf,)f(Human,)g(and)g(W)-8 b(arrior)31 b(are)i(among)e(go)s(o)s (d)h(earlier)f(c)m(hoices.)45 b(As)34 b(y)m(ou)227 3214 y(gain)27 b(exp)s(erience)i(with)e(using)h Fx(Cross\034re)h Fz(y)m(ou)f(ma)m(y)g(wish)g(to)f(branc)m(h)i(out)f(in)m(to)f(other)g (\020\034gh)m(ter\021)227 3330 y(c)m(haracters)37 b(suc)m(h)g(as)e(the) h(Thief)f(or)g(Elf,)g(or)g(try)h(y)m(our)g(hand)f(at)g(pla)m(ying)f (\020sp)s(ellcaster\021)42 b(c)m(har-)227 3446 y(acters)36 b(lik)m(e)d(the)i(Wizard,)g(Mage,)g(Cleric)f(or)g(Priest.)49 b(The)36 b(\020exotic\021)41 b(classes)36 b(\(e.g.)49 b(Fireb)s(orn,)227 3563 y(Monk,)34 b(Quetzalcoatl,)d(and)h(W)-8 b(raith\))32 b(are)g(the)h(hardest)h(classes)f(to)f(master.)374 3679 y(One)46 b(more)f(note:)71 b(If)46 b(y)m(ou)g(are)g(using)g(the)g (default)f(game)g(\(compiled)g(with)g(the)i(skills)227 3795 y(system\),)33 b(y)m(ou)g(will)c(probably)i(\034nd)i(an)m(y)f(c)m (haracter)h(class)e(that)h(has)g(a)g(lo)m(w)f(natural)f(INT)j(\(for)227 3911 y(example,)c(the)f(Barbarian)e(class\))i(will)d(ha)m(v)m(e)30 b(a)d(fairly)f(di\036cult)h(time)f(at)i(higher)f(lev)m(els.)42 b(Skills,)227 4028 y(and)28 b(most)f(imp)s(ortan)m(tly)-8 b(,)26 b(sp)s(ells,)i(will)d(b)s(e)i(more)g(di\036cult)f(learn.)41 b(Plan)27 b(to)g(sp)s(end)i(a)e(lot)f(of)h(lo)s(ot)227 4144 y(on)33 b(sp)s(ell)e(b)s(o)s(oks)i(\(grimores)e(and)h(pra)m(y)m (er)i(b)s(o)s(oks\))f(and)f(skill)f(scrolls.)1948 6057 y(11)p eop end %%Page: 12 16 TeXDict begin 12 15 bop 227 542 a FA(Chapter)44 b(3.)58 b(Pla)l(ying)45 b Fk(Cross\034re)227 963 y Fy(Section)37 b(3.1.)h(Basics)227 1178 y Fz(In)53 b(this)e(section,)57 b(sev)m(eral)c(basic)e(bits)h(of)f(information)e(are)j(detailed)f(in)g (a)h(concise)g(w)m(a)m(y)227 1294 y(in)g(rough)h(order)g(of)f(imp)s (ortance.)103 b(V)-8 b(arious)52 b(p)s(oin)m(ters)h(to)f(other)h (sections)h(of)e(this)h(do)s(c-)227 1410 y(umen)m(t)f(will)c(help)j(y)m (ou)h(to)e(round)i(out)e(y)m(our)i(kno)m(wledge)g(if)e(y)m(ou)i(w)m(an) m(t)f(to.)99 b(All)49 b(of)i(the)227 1526 y(a)m(v)-5 b(ailable)45 b(pla)m(y)m(er)i(commands)f(are)h(concisely)h(explained)e (in)g(app)s(endix)i(A.)87 b(Y)-8 b(ou)47 b(can)g(al-)227 1642 y(w)m(a)m(ys)28 b(get)d(a)g(summary)g(of)g(a)m(v)-5 b(ailable)23 b(commands)i(while)g(pla)m(ying)f(the)i(game;)h(hit)e (\020)8 b Fv(?)p Fz(\021)48 b(for)25 b(help.)227 2013 y Fy(3.1.1.)38 b(Ho)m(w)f(to)g(do)h(simple)d(stu\033)227 2197 y(Mo)m(v)m(e)j(around)g(and)h(attac)m(k)227 2378 y Fz(Mo)m(v)m(emen)m(t)56 b(is)d(accomplished)g(with)h(the)g(mouse,)59 b(or)54 b(with)g(the)g(same)g(k)m(eys)i(that)d(some)227 2494 y(rouge-lik)m(e)32 b(computer)h(games)g(use.)46 b(T)-8 b(o)33 b(mo)m(v)m(e)g(using)g(the)h(mouse,)f(p)s(osition)e(the)i (cursor)h(o)m(v)m(er)227 2610 y(a)e(square)g(y)m(ou)h(wish)f(to)f(mo)m (v)m(e)h(to)f(in)g(the)h(view)g(windo)m(w)g(then)g(clic)m(k)f(the)h (righ)m(t)f(hand)h(button.)227 2727 y(If)e(y)m(ou)f(w)m(an)m(t)i(to)d (use)j(the)e(k)m(eys,)j(here's)f(a)e(simple)e(diagram)g(of)i(where)i (the)e(v)-5 b(arious)29 b(mo)m(v)m(emen)m(t)227 2843 y(k)m(eys)35 b(will)30 b(tak)m(e)j(y)m(ou:)1560 3102 y Fv(y)360 b(k)g(u)1741 3222 y Fw(-)130 b(")h(\045)1560 3343 y Fv(h)100 b Fw( )-17 b(\000)112 b Fz(.)g Fw(\000)-17 b(!)100 b Fv(l)1741 3463 y Fw(.)130 b(#)h(&)1560 3583 y Fv(b)360 b(j)g(n)227 3746 y Fz(The)33 b(\020)8 b Fv(.)p Fz(\021)50 b(refers)32 b(to)f(y)m(ourself;)h(y)m(ou)h(don't)e(mo)m(v)m (e)h(an)m(ywhere)h(when)g(y)m(ou)f(press)g(it.)42 b(In)32 b(order)g(to)227 3863 y(\020run\021)37 b(in)29 b(a)g(particular)f (direction)h(\(i.e.)42 b(mo)m(v)m(e)30 b(con)m(tin)m(uously)f(without)g (ha)m(ving)h(to)f(rep)s(eatedly)227 3979 y(punc)m(h)36 b(the)f(k)m(ey\))h(hold)e(do)m(wn)h(the)g(con)m(trol)f(k)m(ey)i(then)f (hit)f(an)m(y)h(mo)m(v)m(emen)m(t)g(k)m(ey)h(or)e(the)h(righ)m(t)227 4095 y(hand)30 b(mouse)f(button)h(to)f(start)g(mo)m(ving.)41 b(Release)29 b(the)h Fj(<)p Fv(control)p Fj(>)h Fz(k)m(ey)g(when)f(y)m (ou)g(wish)g(to)227 4211 y(stop)j(running.)374 4327 y(If)40 b(y)m(ou)i(mo)m(v)m(e)f(in)m(to)e(something,)j(y)m(ou)f(will)e(attac)m (k)i(it.)66 b(This)41 b(means)g(w)m(alls,)h(do)s(ors,)g(and)227 4444 y(monsters)34 b(will)d(b)s(e)i(damaged)f(if)g(y)m(ou)i(hit)e (them.)45 b(Pla)m(y)m(ers)34 b(and)g(friendly)e(monsters)h(ma)m(y)g (also)227 4560 y(b)s(e)f(attac)m(k)m(ed)g(in)e(this)h(w)m(a)m(y)-8 b(,)32 b(but)g(only)e(if)g(y)m(ou)i(set)f(the)h(p)s(eaceful)f(\035ag)f (to)h(\020o\033)7 b(\021.)42 b(T)-8 b(o)31 b(learn)f(more)227 4676 y(ab)s(out)i(the)h(com)m(bat)f(system)i(see)g(section)e(3.2.1.)227 5046 y Fy(Pic)m(kup)37 b(stu\033)227 5227 y Fz(T)-8 b(o)30 b(pic)m(kup)g(items,)g(mo)m(v)m(e)g(o)m(v)m(er)h(the)f(item,)f(then)h (either)f(hit)g(the)h(\020)8 b Fv(,)p Fz(\021)38 b(k)m(ey)31 b(or)e(mo)m(v)m(e)i(the)f(cursor)227 5343 y(o)m(v)m(er)36 b(to)f(the)g(lo)s(ok)e(windo)m(w,)j(p)s(osition)d(it)h(o)m(v)m(er)h (the)g(desired)h(item)d(and)i(clic)m(k)f(the)h(left)f(mouse)227 5459 y(button.)44 b(Y)-8 b(ou)32 b(will)f(see)i(the)g(item)e(app)s(ear) h(in)g(y)m(our)h(in)m(v)m(en)m(tory)h(windo)m(w.)44 b(If)32 b(y)m(ou)h(pic)m(k)g(up)g(to)s(o)227 5576 y(m)m(uc)m(h)40 b(stu\033,)g(y)m(ou)g(w)m(on't)f(b)s(e)g(able)f(to)g(see)i(it)e(all)f (at)h(once.)63 b(Use)39 b(the)g(\020)8 b Fj(<)p Fz(\021)46 b(and)39 b(\020)8 b Fj(>)p Fz(\021)46 b(k)m(eys)41 b(to)227 5692 y(rotate)33 b(through)f(the)h(in)m(v)m(en)m(tory)h(list.)1948 6057 y(12)p eop end %%Page: 13 17 TeXDict begin 13 16 bop 227 333 a Fy(Applying)37 b(stu\033:)50 b(w)m(ear)37 b(armour,)g(wield)f(a)i(w)m(eap)s(on,)h(eat,)e(and)i(so)e (on.)227 513 y Fz(Most)f(of)f(the)g(time,)g(in)f(order)i(to)f (manipulate)e(or)h(\020)8 b Fv(apply)p Fz(\021)44 b(items)34 b(y)m(ou)i(ha)m(v)m(e)h(to)e(b)s(e)g(holding)227 630 y(them.)44 b(Mo)m(v)m(e)34 b(the)e(cursor)i(o)m(v)m(er)f(to)f(the)h (desired)g(item)e(in)h(the)h(in)m(v)m(en)m(tory)h(windo)m(w.)44 b(By)33 b(using)227 746 y(the)38 b(middle)e(button)h(on)g(the)h(mouse,) h(y)m(ou)f(ma)m(y)f(toggle)f(the)h(status)h(\(ie)f(b)s(et)m(w)m(een)i (\020applied\021)227 862 y(or)33 b(\020unapplied\021\))e(of)h(items.)43 b(Note)33 b(that)f(some)h(items)f(when)i(applied)d(will)f(b)s(e)j(used) h(up)f(\(they)227 978 y(disapp)s(ear)43 b(from)f(the)h(in)m(v)m(en)m (tory)i(windo)m(w\).)75 b(Examples)43 b(of)g(these)h(kind)f(of)g(items) f(include)227 1106 y(\020fo)s(o)s(d\021)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: fishfood.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffa7ffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffa7ffff ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffa7 a7ffffffffffffa768a7a7a7ffa7a7a7ffffffffffffffffffffffffffff ffa700a7ffffffa7a768a768a768a7a7ffffa7ffffffffffffffffffffff ffffffffa7a7ffa7a7a768a768a768a7a7ffffffffa7ffffffffffffffff ffffffffffffa768a768a768a7680068a7a7ffffffffffffa7ffffffffff ffffffffffffffffa7a768a768a76800a7a768a7ffffff00ffffa7ffffff ffffffffffffffffffffa768a768a76800a70068a700ffffffffffffa7ff ffffffffffffffffffffffffa7a7ffa7a7a76800a7a768a7a7ffff000000 ffffffffffffffffffffffffffa700a7ffffffa7a7680068a768a7a7ffff 00ffffffffffffffffffffffffffffa7a7ffffff00ffffa768a7a7a768a7 a7a7a7ffffffffffffffffffffffffffffa7ffffffffffffffff0000ffff ffffffffffffffffffffffffffffffffffffa7ffffffffffffffff0000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: food.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff003f6500ffffffffffffffffffffffffffffffffff ffffffffffffffffffffff003f938300ffffffffffffffffffffffffffff ffffffffffffffffffffffff003f52838300ffffffffffffffffffffffff ffffffffffffffffffffffff00003f52830000ffffffffffffffffffffff ffffffffffffffffffffffff00003f3f528300ffffffffffffffffffffff ffffffffffffffffffffff0000003f3f52528300ffffffffffffffffffff ffffffffffffffffffffff00002d3f3f525252658300ffffffffffffffff ffffffffffffffffffffff00002d2d3f52525265658300ffffffffffffff ffffffffffffffffffffffff002d2d3f3f5293656583838300ffffffffff ffffffffffffffffffffffffff002d2d3f835265656565838300ffffffff ffffffffffffffffffffffffffff002d2d3f52656583838383658300ffff ffffffffffffffffffffffffffffff002d2d3f52656565839383838300ff ffffffffffffffffffffffffffffffffff002d2d3f836565839383836583 00ffffffffffffffffffffffffffffffffffff002d2d3f52658393938365 8300ffffffffffffffffffffffffffffffffffffff002d2d3f5265658383 83658300ffffffffffffffffffffffffffffffffffffffff002d3f526565 6583838300ffffffffffffffffffffffffffffffffffffffffff00002d3f 526565656500ffffffffffffffffffffffffffffffffffffffffffffff00 003f5265650000ffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: food.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff003f6500ffffffffffffffffffffffffffffffffff ffffffffffffffffffffff003f938300ffffffffffffffffffffffffffff ffffffffffffffffffffffff003f52838300ffffffffffffffffffffffff ffffffffffffffffffffffff00003f52830000ffffffffffffffffffffff ffffffffffffffffffffffff00003f3f528300ffffffffffffffffffffff ffffffffffffffffffffff0000003f3f52528300ffffffffffffffffffff ffffffffffffffffffffff00002d3f3f525252658300ffffffffffffffff ffffffffffffffffffffff00002d2d3f52525265658300ffffffffffffff ffffffffffffffffffffffff002d2d3f3f5293656583838300ffffffffff ffffffffffffffffffffffffff002d2d3f835265656565838300ffffffff ffffffffffffffffffffffffffff002d2d3f52656583838383658300ffff ffffffffffffffffffffffffffffff002d2d3f52656565839383838300ff ffffffffffffffffffffffffffffffffff002d2d3f836565839383836583 00ffffffffffffffffffffffffffffffffffff002d2d3f52658393938365 8300ffffffffffffffffffffffffffffffffffffff002d2d3f5265658383 83658300ffffffffffffffffffffffffffffffffffffffff002d3f526565 6583838300ffffffffffffffffffffffffffffffffffffffffff00002d3f 526565656500ffffffffffffffffffffffffffffffffffffffffffffff00 003f5265650000ffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w(,)38 b(\020p)s(otions\021)k @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potiongen.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w(,)37 b(and)g(\020scrolls\021)43 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: scroll.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000ffffffffffffffffffffffffffffff0000a6a6a6a6a6a6a6a6a6 a6a6a6a6a6a600ffffffffffffffffffffffffffff009300dfdfdfdfdfdf dfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff009300df000000 df00df0000dfdfdf00dfdf00ffffffffffffffffffffffffff009300dfdf 00df000000dfdfdf00df00dfdf00ffffffffffffffffffffffffffff0000 dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffffff ff00dfdf000000df00df00dfdf00dfdfdf00ffffffffffffffffffffffff ffff00df0000df00dfdf0000df0000dfdfdf00ffffffffffffffffffffff ffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffff ffffffffffff00df00dfdf00dfdf00dfdf00df00dfdf00ffffffffffffff ffffffffffffffff00dfdf0000dfdf000000df00df0000df00ffffffffff ffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffff ffffffffffffffffffffffff00dfdf00dfdfdf00dfdf00df00dfdfdf00ff ffffffffffffffffffffffffff00dfdf00df000000000000dfdfdf00df00 ffffffffffffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdf df00ffffffffffffffffffffffffffffff00dfdfdf00dfdf00dfdfdfdf00 dfdfdf00ffffffffffffffffffffffffffffff00a6a600a6000000a6a600 a6a6a600a600ffffffffffffffffffffffffffffff00a6a6a6a6a6a6a6a6 a6a6a6a6a6a6a600ffffffffffffffffffffffffffffff00000000000000 00000000000000000000ffffffffffffffffffffffffffffff0093009393 93939393939393939393939300ffffffffffffffffffffffffffff000093 00dfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff00 9300a6a6a6a6a6a6a6a6a6a6a6a6a6a6a600ffffffffffffffffffffffff ffff0000000000000000000000000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w(.)55 b(T)-8 b(o)37 b(learn)f(more)g(ab)s(out)g(the)h (uses)h(of)227 1222 y(v)-5 b(arious)32 b(items)g(see)h(c)m(hapter)h(6.) 227 1598 y Fy(Sho)s(ot)k(a)g(ranged)g(w)m(eap)s(on)227 1779 y Fz(Ranged)25 b(w)m(eap)s(ons)h(include)e(b)s(o)m(ws)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff363640 404a4a698f3636ffffffffffffffffffffffffffffffffffffff36364141 402d363636533636ffffffffffffffffffffffffffffffffffff36364a40 2e3636ffffffffff6953ffffffffffffffffffffffffffffffff4a2d4a36 3636ffffffffffffff69ff5effffffffffffffffffffffffffffff4a774a 36ffffffffffffffffff69ffff5effffffffffffffffffffffffffff36a5 4a36ffffffffffffffffff75ffffff69ffffffffffffffffffffffffff2d 6b4a2dffffffffffffffffff75ffffffff69ffffffffffffffffffffffff 2d6b4a2dffffffffffffffffff75ffffffffffffffffffffffffffffffff ff2d704a2dffffffffffffffffff75ffffffffffffffffffffffffffffff ffff2d4a402dffffffffffffffffff69ffffffffffffffffffffffffffff ffffff4a8f702dffffffffffffffffff69ffffffffffffffffffffffffff ffffffffff2d7841ffffffffffffffffff69ffffffffffffffffffffffff ffffffffffff36412dffffffffffffffffff69ffffffffffffffffffffff ffffffffffffffff3640ffffffffffffffffffff69ffffffffffffffffff ffffffffffffffffff364a21ffffffffffffffffff69ffffffffffffffff ffffffffffffffffffffff3640ffffffffffffffffff75ffffffffffffff ffffffffffffffffffffffffff402dffffffffffffffff80ffffffffffff ffffffffffffffffffffffffffffff4a21ffffffffffffff80ffffffffff ffffffffffffffffffffffffffffffffff402dffffffffffff75ffffffff ffffffffffffffffffffffffffffffffffffff402dffffffffff75ffffff ffffffffffffffffffffffffffffffffffffffffff362dffffffff75ffff ffffffffffffffffffffffffffffffffffffffffffffff362dffffff69ff ffffffffffffffffffffffffffffffffffffffffffffffffff362dffff69 ffffffffffffffffffffffffffffffffffffffffffffffffffffff532dff 53ffffffffffffffffffffffffffffffffffffffffffffffffffffffff69 5353ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff8f21ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff4121ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff21ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 120 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: compositebow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff003f00ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00b53f00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00b5003f00ffffffffffffff ffffffffffffffffffffffffffffffffffffffff00b5ff006500ffffffff ffffffffffffffffffffffffffffffffffffffffffff00b5ff003f6500ff ffffffffffffffffffffffffffffffffffffffffffffffff00b5ffff003f 00ffffffffffffffffffffffffffffffffffffffffffffffffff00b5ffff 003f6500ffffffffffffffffffffffffffffffffffffffffffffffff00b5 ffff003f6500ffffffffffffffffffffffffffffffffffffffffffffffff 00b5ffffff003f00ffffffffffffffffffffffffffffffffffffffffffff ffff00b5ffffff003f6500ffffffffffffffffffffffffffffffffffffff ffffffff00b5ffffff003f6500ffffffffffffffffffffffffffffffffff ffffffffffff00b5ffffff003f6500ffffffffffffffffffffffffffffff ffffffffffffffff00b5ffffff003f6500ffffffffffffffffffffffffff ffffffffffffffffffff00b5ffffff003f6500ffffffffffffffffffffff ffffffffffffffffffffffff00b5ffffff003f6500ffffffffffffffffff ffffffffffffffffffffffffffff00b5ffffff003f6500ffffffffffffff ffffffffffffffffffffffffffffffff00b5ffffff003f6500ffffffffff ffffffffffffffffffffffffffffffffffff00b5ffffff003f6500ffffff ffffffffffffffffffffffffffffffffffffffff00b5ffffff003f6500ff ffffffffffffffffffffffffffffffffffffffffffff00b5ffffff003f65 00ffffffffffffffffffffffffffffffffffffffffffffff00b5ffffff00 3f6500ffffffffffffffffffffffffffffffffffffffffffffff00b5ffff ff003f00ffffffffffffffffffffffffffffffffffffffffffffffff00b5 ffff003f6500ffffffffffffffffffffffffffffffffffffffffffffffff 00b5ffff003f6500ffffffffffffffffffffffffffffffffffffffffffff ffff00b5ffff003f00ffffffffffffffffffffffffffffffffffffffffff ffffffff00b5ff003f6500ffffffffffffffffffffffffffffffffffffff ffffffffffff00b5ff006500ffffffffffffffffffffffffffffffffffff ffffffffffffffff00b5003f00ffffffffffffffffffffffffffffffffff ffffffffffffffffffff00b53f00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff003f00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: crossbow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffff6121ffffffffffffffffffffffffff ffffffffffffffffffffffff000000000061210000000000ffffffffffff ffffffffffffffffffff00000000a1a1a1003f61216500a1a1a100000000 ffffffffffffffffffff0000a1a1a1a1000000003f61216500000000a1a1 a1a10000ffffffffffffff00bfbf00000000ffffff003f61216500ffffff 000000007f7f00ffffffffff00bf0000ffffffffffffff003f61216500ff ffffffffffff00007f00ffffff00bf00ffffffffffffffffff003f612165 00ffffffffffffffffff007f00ff00bf00ffffffffffffffffffff003f61 216500ffffffffffffffffffff007f002121212121212121212121212121 212121212121212121212121212121212121bfbfbfbfbfbfbfbfbfbfbfbf bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfffffffffffffffffffff ffffff003f61216500ffffffffffffffffffffffffffffffffffffffffff ffffffffff003f61216500ffffffffffffffffffffffffffffffffffffff ffffffffffffff003f61216500ffffffffffffffffffffffffffffffffff ffffffffffffffffff003f61216500ffffffffffffffffffffffffffffff ffffffffffffffffffffff003f61216500ffffffffffffffffffffffffff ffffffffffffffffffffffffff003f61216500ffffffffffffffffffffff ffffffffffffffffffffffffffffff003f52526500ffffffffffffffffff ffffffffffffffffffffffffffffffffff003f52526500ffffffffffffff ffffffffffffffffffffffffffffffffffff00003f5252650000ffffffff ffffffffffffffffffffffffffffffffffffffff3f003f525265003fffff ffffffffffffffffffffffffffffffffffffffffffff00003f5252650000 ffffffffffffffffffffffffffffffffffffffffffffffffff003f525265 00ffffffffffffffffffffffffffffffffffffffffffffffffffff003f52 526500ffffffffffffffffffffffffffffffffffffffffffffffffffff00 3f52526500ffffffffffffffffffffffffffffffffffffffffffffffffff ff003f52526500ffffffffffffffffffffffffffffffffffffffffffffff ffffff003f52526500ffffffffffffffffffffffffffffffffffffffffff ffffffff00003f5252650000ffffffffffffffffffffffffffffffffffff ffffffffffff0083835252838300ffffffffffffffffffffffffffffffff ffffffffffffffff0083830000838300ffffffffffffffffffffffffffff ffffffffffffffffffff0083830000838300ffffffffffffffffffffffff ffffffffffffffffffffffff0000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffff000000ffff000000ffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: elven-bow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000000000000000ffffffffffffffffffffffffffffffffffffff ffffffffff000000000030300000000000ffffffffffffffffffffffffff ffffffffffffff00b4ffffff00000000303030000000ffffffffffffffff ffffffffffffffffffff00b4ffffffffffff0000003030470000ffffffff ffffffffffffffffffffffffff00b4ffffffffffffffff00004747470000 ffffffffffffffffffffffffffffffff00b4ffffffffffffffffff000047 475d0000ffffffffffffffffffffffffffffff00b4ffffffffffffffffff ff0047475d8900ffffffffffffffffffffffffffffff00b4ffffffffffff ffffffff0047475d8900ffffffffffffffffffffffffffffff00b4ffffff ffffffffffffff004747898900ffffffffffffffffffffffffffffff00b4 ffffffffffffffffffff00475d898900ffffffffffffffffffffffffffff ff00b4ffffffffffffffffffff00475d8900ffffffffffffffffffffffff ffffffff00b4ffffffffffffffffffff0047898900ffffffffffffffffff ffffffffffffff00b4ffffffffffffffffffff005d8900ffffffffffffff ffffffffffffffffffff00b4ffffffffffffffffffff00478900ffffffff ffffffffffffffffffffffffff00b4ffffffffffffffffffff008900ffff ffffffffffffffffffffffffffffffff00b4ffffffffffffffffff008989 00ffffffffffffffffffffffffffffffffffff00b4ffffffffffffffffff 008900ffffffffffffffffffffffffffffffffffffff00b4ffffffffffff ffff008900ffffffffffffffffffffffffffffffffffffffff00b4ffffff ffffffffff008900ffffffffffffffffffffffffffffffffffffffff00b4 ffffffffffffff008900ffffffffffffffffffffffffffffffffffffffff ff00b4ffffffffffff008900ffffffffffffffffffffffffffffffffffff ffffffff00b4ffffffffffff0000ffffffffffffffffffffffffffffffff ffffffffffffff00b4ffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffff00b4ffffffff008900ffffffffffffffffffffff ffffffffffffffffffffffffff00b4ffffff008900ffffffffffffffffff ffffffffffffffffffffffffffffffff00b4ffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffff00b4ffff0000ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00b4ff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00b40000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: elven-bow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000000000000000ffffffffffffffffffffffffffffffffffffff ffffffffff000000000030300000000000ffffffffffffffffffffffffff ffffffffffffff00b4ffffff00000000303030000000ffffffffffffffff ffffffffffffffffffff00b4ffffffffffff0000003030470000ffffffff ffffffffffffffffffffffffff00b4ffffffffffffffff00004747470000 ffffffffffffffffffffffffffffffff00b4ffffffffffffffffff000047 475d0000ffffffffffffffffffffffffffffff00b4ffffffffffffffffff ff0047475d8900ffffffffffffffffffffffffffffff00b4ffffffffffff ffffffff0047475d8900ffffffffffffffffffffffffffffff00b4ffffff ffffffffffffff004747898900ffffffffffffffffffffffffffffff00b4 ffffffffffffffffffff00475d898900ffffffffffffffffffffffffffff ff00b4ffffffffffffffffffff00475d8900ffffffffffffffffffffffff ffffffff00b4ffffffffffffffffffff0047898900ffffffffffffffffff ffffffffffffff00b4ffffffffffffffffffff005d8900ffffffffffffff ffffffffffffffffffff00b4ffffffffffffffffffff00478900ffffffff ffffffffffffffffffffffffff00b4ffffffffffffffffffff008900ffff ffffffffffffffffffffffffffffffff00b4ffffffffffffffffff008989 00ffffffffffffffffffffffffffffffffffff00b4ffffffffffffffffff 008900ffffffffffffffffffffffffffffffffffffff00b4ffffffffffff ffff008900ffffffffffffffffffffffffffffffffffffffff00b4ffffff ffffffffff008900ffffffffffffffffffffffffffffffffffffffff00b4 ffffffffffffff008900ffffffffffffffffffffffffffffffffffffffff ff00b4ffffffffffff008900ffffffffffffffffffffffffffffffffffff ffffffff00b4ffffffffffff0000ffffffffffffffffffffffffffffffff ffffffffffffff00b4ffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffff00b4ffffffff008900ffffffffffffffffffffff ffffffffffffffffffffffffff00b4ffffff008900ffffffffffffffffff ffffffffffffffffffffffffffffffff00b4ffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffff00b4ffff0000ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00b4ff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00b40000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: handcrossbow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff89 8989ffffffffffffffffffffffffffffffffffffffffffffffffffffff89 89747474ffffffffffffffffffffffffffffffffffffffffffffffffff89 897474ffff00ffffffffffffffffffffffffffffffffffffffffffffff89 897474ffffff00ffffffffffffffffffffffffffffffffffffffffffffff 897474ffffffff00ffffffffffffffffffffffffffffffffffffffffffff ff897474ffffffff00ffffffffffffffffffffffffffffffffffffffffff ffff4d7474ffffffff00ffffffffffffffffffffffffffffffffffffffff ffffff89744d6440ffff00ffffffffffffffffffffffffffffffffffffff ffffffff897474644d644000ffffffffffffffffffffffffffffffffffff ffffffffff8974743640644d0040ffffffffffffffffffffffffffffffff ffffffffffffff8974ff363640004d6440ffffffffffffffffffffffffff ffffffffffffffff8974ffffff360040644d6440ffffffffffffffffffff ffffffffffffffffffff8974ffffff00363640644d6440ffffffffffffff ffffffffffffffffffffff8974ffffff00ffff363640644d6440ffffffff ffffffffffffffffffffffffff8974ffff00ffffffff363640644b40ffff ffffffffffffffffffffffffffff8974ffff00ffffffffff61363640404b 40ffffffffffffffffffffffffffffff8974ff00ffffffffffff61ff3636 404b40ffffffffffffffffffffffffffffff897400ffffffffffffffff61 3636404040ffffffffffffffffffffffffffffffffffffffffffffffffff ffff3636364036ffffffffffffffffffffffffffffffffffffffffffffff ffffffff3636363636ffffffffffffffffffffffffffffffffffffffffff ffffffffffffff363636ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: huntersbow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff003f00ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff00b53f00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00b5003f00ffffffffffffff ffffffffffffffffffffffffffffffffffffffff00b5ff006500ffffffff ffffffffffffffffffffffffffffffffffffffffffff00b5ff003f6500ff ffffffffffffffffffffffffffffffffffffffffffffffff00b5ffff003f 00ffffffffffffffffffffffffffffffffffffffffffffffffff00b5ffff 003f6500ffffffffffffffffffffffffffffffffffffffffffffffff00b5 ffff003f6500ffffffffffffffffffffffffffffffffffffffffffffffff 00b5ffffff003f00ffffffffffffffffffffffffffffffffffffffffffff ffff00b5ffffff003f6500ffffffffffffffffffffffffffffffffffffff ffffffff00b5ffffff003f6500ffffffffffffffffffffffffffffffffff ffffffffffff00b5ffffff003f6500ffffffffffffffffffffffffffffff ffffffffffffffff00b5ffffff003f6500ffffffffffffffffffffffffff ffffffffffffffffffff00b5ffffff003f6500ffffffffffffffffffffff ffffffffffffffffffffffff00b5ffffff003f6500ffffffffffffffffff ffffffffffffffffffffffffffff00b5ffffff003f6500ffffffffffffff ffffffffffffffffffffffffffffffff00b5ffffff003f6500ffffffffff ffffffffffffffffffffffffffffffffffff00b5ffffff003f6500ffffff ffffffffffffffffffffffffffffffffffffffff00b5ffffff003f6500ff ffffffffffffffffffffffffffffffffffffffffffff00b5ffffff003f65 00ffffffffffffffffffffffffffffffffffffffffffffff00b5ffffff00 3f6500ffffffffffffffffffffffffffffffffffffffffffffff00b5ffff ff003f00ffffffffffffffffffffffffffffffffffffffffffffffff00b5 ffff003f6500ffffffffffffffffffffffffffffffffffffffffffffffff 00b5ffff003f6500ffffffffffffffffffffffffffffffffffffffffffff ffff00b5ffff003f00ffffffffffffffffffffffffffffffffffffffffff ffffffff00b5ff003f6500ffffffffffffffffffffffffffffffffffffff ffffffffffff00b5ff006500ffffffffffffffffffffffffffffffffffff ffffffffffffffff00b5003f00ffffffffffffffffffffffffffffffffff ffffffffffffffffffff00b53f00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffff003f00ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: lightning-bow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffffffffffffffffffffffff000000ffffff0065 0000000000ffffffffffffffffffffffffffffffffffffff006565000000 650065ffff00ffffffffffffffffffffffffffffffffffffffff00000065 00000065ffff00ffffffffffffffffffffffffffffffffffffffffff0000 006500650000ff00ffffffffffffffffffffffffffffffffffffffffffff ff0000006500650000ffffffffffffffffffffffffffffffffffffffffff ffffff650000006500000000ffffffffffffffffffffffffffffffffffff ffffffff65006500000000006500ffffffffffffffffffffffffffffffff ffffffffffff006500ff00000065000000ffffffffffffffffffffffffff ffffffffffffffff0000ffff00000000006500ffffffffffffffffffffff ffffffffffffffffffff00ffffff00ff000000006500ffffffffffffffff ffffffffffffffffffffffff00ffff00ffffffff0000006500ffffffffff ffffffffffffffffffffffffffff00ff00ffffffffffff0000006500ffff ffffffffffffffffffffffffffffffff0000ffffffffffffffff00000000 ffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000 006500ffffffffffffffffffffffffffffffffffffffffffffffffffff00 6500000000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00006500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff006500ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 120 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: longbow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000000000000000ffffffffffffffffffffffffffffffffffffff ffffffffff00000000002d2d0000000000ffffffffffffffffffffffffff ffffffffffffff00b5ffffff000000002d2d2d000000ffffffffffffffff ffffffffffffffffffff00b5ffffffffffff0000002d2d3f0000ffffffff ffffffffffffffffffffffffff00b5ffffffffffffffff00003f3f3f0000 ffffffffffffffffffffffffffffffff00b5ffffffffffffffffff00003f 3f520000ffffffffffffffffffffffffffffff00b5ffffffffffffffffff ff003f3f528300ffffffffffffffffffffffffffffff00b5ffffffffffff ffffffff003f3f528300ffffffffffffffffffffffffffffff00b5ffffff ffffffffffffff003f3f838300ffffffffffffffffffffffffffffff00b5 ffffffffffffffffffff003f52838300ffffffffffffffffffffffffffff ff00b5ffffffffffffffffffff003f528300ffffffffffffffffffffffff ffffffff00b5ffffffffffffffffffff003f838300ffffffffffffffffff ffffffffffffff00b5ffffffffffffffffffff00528300ffffffffffffff ffffffffffffffffffff00b5ffffffffffffffffffff003f8300ffffffff ffffffffffffffffffffffffff00b5ffffffffffffffffffff008300ffff ffffffffffffffffffffffffffffffff00b5ffffffffffffffffff008383 00ffffffffffffffffffffffffffffffffffff00b5ffffffffffffffffff 008300ffffffffffffffffffffffffffffffffffffff00b5ffffffffffff ffff008300ffffffffffffffffffffffffffffffffffffffff00b5ffffff ffffffffff008300ffffffffffffffffffffffffffffffffffffffff00b5 ffffffffffffff008300ffffffffffffffffffffffffffffffffffffffff ff00b5ffffffffffff008300ffffffffffffffffffffffffffffffffffff ffffffff00b5ffffffffffff0000ffffffffffffffffffffffffffffffff ffffffffffffff00b5ffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffff00b5ffffffff008300ffffffffffffffffffffff ffffffffffffffffffffffffff00b5ffffff008300ffffffffffffffffff ffffffffffffffffffffffffffffffff00b5ffffff0000ffffffffffffff ffffffffffffffffffffffffffffffffffffff00b5ffff0000ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00b5ff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00b50000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: magic-bow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffa00000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00a0ff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffff0000ffff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffffa000ffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffff00a0ffffffff00ffffff ffffffffffffffffffffffffffffffffffffffff00ff0000ffffffffff00 ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffff0000ffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff00 00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffffff00ffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffff00000000ffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffff0052ffffffff0000ffffffffffffff00ffffffffffff ffffffffffffffffffff52a05200000000ffffffffffffffffff00ffffff ffffffffffffffffffffffffff5200000000ffffffffffffffffffffff00 ffffffffffffffffffffffffffffff00ffffff005200ffff00ffffffffff ffff00ffffffffffffffffffffffffffffffffffff3ea052ff0000ffffff ffffffffff00ffffffffffffffffffffffffffffffffffff3e000000ffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff 0000ffffffffffffffffffffffff00ffffffffffffffffffffffffffffff ffff0052ff00ffffffffffffffffffffff00ffffffffffffffffffffffff ffffff0052a05200ffffffffffff00a00000a00000ffffffffffffffffff ffffffffffffff5200000000000000000000a00000a0000000ffffffffff ffffffffffffffffffffff00000000ff0000ffffffffffffff0000ffffff ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: power-crystal.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff40ffffffff40ffffff40ffffff40ffff ffffffffffffffffffffffffffffffffff40ffffffff40ffff40ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff40ffffff40ffffffffffffffffffffffffffff40ffffffffff40ffbfbf bfbfbfbfbfff40ffffffffffffffffffffffffffffffff4040ffffffffbf ffffffffffffffbfffffffff4040ffffffffffffffffffffffffffffffff ffbfffffffbfffffffbfffffff40ffffffffffffffffffffffffffffffff ffffbfffffffffbfffffffffbfffffffffffffffffffffffffffffffffff ffffffffbfffffffbfffbfffffffbfffffffffffffffffffffffffffffff 40ffffff40bfffffbfbfffbfffbfbfffffbfffff4040ffffffffffffffff ffffffffffffffbfbfffffffbfffbfffffffbfbfffffffffffffffffffff ffffffffffffffffffbfbfffffffffbfffffffffbfbfffffffffffffffff ffffffffffffffffffffffbfffbfffffffbfffffffbfffbfffffffffffff ffffffffffffffffffff40ffffbfffbfffffffffffffffbfffbfff4040ff ffffffffffffffffffff4040ffffffbfffffbfbfbfbfbfbfbfffffbfffff ffffffffffffffffffffffffffffffffffbfffffbfffffffffffbfffffbf ffffffffffffffffffffffffffffffffffff40bfffffbfffffffffffbfff ffbfffffffffffffffffffffffffffffffffff40ffbfffffbfffffffffff bfffffbfff40ffffffffffffffffffffffffffffffffffbfffffbfbfffbf ffbfbfffffbfffff40ffffffffffffffffffffffffffffffffbfbfbfbfff ffffffffbfbfbfbfffffffffffffffffffffffffffffffffffffffbfffff bfffffffffffbfffffbfffffffffffffffffffffffffffffffffffffffff bfbfbfffffffffffbfbfbfffff40ffffff40ffffffffffffffffffff40ff ffffffffbfbfbfbfbfbfbfffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: reflexbow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3a3a 3affffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff273a3affffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff273affffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff273affffffffffffffffffffffffffffffffffffffffffff ffffffffff3a3a3a3434ffffffffffffffffffffffffffffffffffffffff ffffffff3a3a3a3a34342700ffffffffffffffffffffffffffffffffffff ffffffff3a3a3a343427272700ffffffffffffffffffffffffffffffffff ffffffff3a3a3a34272727ffff00ffffffffffffffffffffffffffffffff ffffffff3a3a3a342727ffffffff00ffffffffffffffffffffffffffffff ffffffffff3a3a342727ffffffffff00ffffffffffffffffffffffffffff ffffffffffff143a3427ffffffffffff00ffffffffffffffffffffffffff ffffffffffffff20142027ffffffffffff00ffffffffffffffffffffffff ffffffffffffffff14201420ffffffffffff00ffffffffffffffffffffff ffffffffffffffffff20142014ffffffffffff00ffffffffffffffffffff ffffffffffffffffffff3a3a1420ffffffffffff00ffffffffffffffffff ffffffffffffffffffffff3a3a3427ffffffffffff00ffffffffffffffff ffffffffffffffffffffffffff3a3427ffffffffffff00ffffffffffffff ffffffffffffffffffffffffffff3a3a27ffffffffffff00ffffffffffff ffffffffffffffffffffffffffffffff3a3427ffffffffff00ffffffffff ffffffffffffffffffffffffffffffffff3a3a27ffffffffff00ffffffff ffffffffffffffffffffffffffffffffffffff3a3427ffffffff00ffffff ffffffffffffffffffffffffffffffffffffffff3a3a27ffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffff3a3427ffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffff3a3427ffff00 ffffffffffffffffffffffffffffffffffffffffffffffffff3a3a27ffff 00ffffffffffffffffffffffffffffffffffffffffffff3affffff3a3427 ff00ffffffffffffffffffffffffffffffffffffffffffffff3a27ffff3a 342700ffffffffffffffffffffffffffffffffffffffffffffffff3a3a27 27342700ffffffffffffffffffffffffffffffffffffffffffffffffffff 3a3a3a3400ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w(,)i(w)m(ands)f @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: staff.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 4d4d4dffffffffffffffffffffffffffffffffffffffffffffffffffffff ffa64d4d4d4dffffffffffffffffffffffffffffffffffffffffffffffff ffffa64d4d4dffff4dffffffffffffffffffffffffffffffffffffffffff ffffffffa64da64d4dff4dffffffffffffffffffffffffffffffffffffff ffffffffff00e24da6e24d4d4dffffffffffffffffffffffffffffffffff ffffffffffff003f52a64d4d4de2ffffffffffffffffffffffffffffffff ffffffffffffff00003f9365a6a6e2ffffffffffffffffffffffffffffff ffffffffffffffff00003f65659300ffffffffffffffffffffffffffffff ffffffffffffffffff002d2d65939300ffffffffffffffffffffffffffff ffffffffffffffffffff002d3f6565df00ffffffffffffffffffffffffff ffffffffffffffffffffff002d3f65936500ffffffffffffffffffffffff ffffffffffffffffffffffff003f3f93936500ffffffffffffffffffffff ffffffffffffffffffffffffff002d3f65839300ffffffffffffffffffff ffffffffffffffffffffffffffff002d8093659300ffffffffffffffffff ffffffffffffffffffffffffffffff002d3f6565df00ffffffffffffffff ffffffffffffffffffffffffffffffff002d3f65659300ffffffffffffff ffffffffffffffffffffffffffffffffff002d3f65939300ffffffffffff ffffffffffffffffffffffffffffffffffff002d2d6565df00ffffffffff ffffffffffffffffffffffffffffffffffffff00003f3f659300ffffffff ffffffffffffffffffffffffffffffffffffffff002d3f93938300ffffff ffffffffffffffffffffffffffffffffffffffffff002d6565df9300ffff ffffffffffffffffffffffffffffffffffffffffffff002d3f93659300ff ffffffffffffffffffffffffffffffffffffffffffffff002d3f65938300 ffffffffffffffffffffffffffffffffffffffffffffffff003f3f936583 00ffffffffffffffffffffffffffffffffffffffffffffffff002d6593df 8300ffffffffffffffffffffffffffffffffffffffffffffffff003fdf93 936500ffffffffffffffffffffffffffffffffffffffffffffffffff0065 93938300ffffffffffffffffffffffffffffffffffffffffffffffffffff 0065936500ffffffffffffffffffffffffffffffffffffffffffffffffff ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: wand.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff3f65ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff3f65ffffffffffffffffffffffffffffffffffff ffffffffffffffffffff3f658383ffffffffffffffffffffffffffffffff ffffffffffffffffffffff3f6583ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff6583ffffffffffffffffffffffffffffff ffffffffffffffffffffffffff3f6583ffffffffffffffffffffffffffff ffffffffffffffffffffffffffff3f658383ffffffffffffffffffffffff ffffffffffffffffffffffffffffffff3f83ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff6583ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff3f3f6583ffffffffffffffff ffffffffffffffffffffffffffffffffffff3f3f656583ffffffffffffff ffffffffffffffffffffffffffffffffffff3f3f656583ffffffffffffff ffffffffffffffffffffffffffffffffffffff3f656583ffffffffffffff ffffffffffffffffffffffffffffffffffffffff3f656583ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff3f658383ffffffff ffffffffffffffffffffffffffffffffffffffffffffff3f836583ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff83ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 119 w(,)g(ro)s(ds)227 1895 y @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rod-heavy.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff ffffffffffffffffffffffffff0000cb40616100ffffffffffffffffffff ffffffffffffffffffffffffff0000404061cb7f7f00ffffffffffffffff ffffffffffffffffffffffffff0000404061b2b2b2e2a1bf00ffffffffff ffffffffffffffffffffffffff000040406161b27fa1a1e2bfa100ffffff ffffffffffffffffffffffffff0000404061617f7fb2a1bfbfa10000ffff ffffffffffffffffffffffffff0000404061617fb2b2b2bfbfa10000ffff ffffffffffffffffffffffffff000040406161cbcbb2a1bfbfa10000ffff ffffffffffffffffffffffffff000040cbcb61cbcba1a1bfbfa10000ffff ffffffffffffffffffffffffff000040406161cbcba1a1bfbfa10000ffff ffffffffffffffffffffffffff0000404061cb7f7fa1e2bfbfa10000ffff ffffffffffffffffffffffffff0000404061cb7fcba1a1bfe2a10000ffff ffffffffffffffffffffffffff0000404061cbb2cba1a1e2bfa10000ffff ffffffffffffffffffffffffffffff000061617fcbb2b2e2bfa10000ffff ffffffffffffffffffffffffffffffffff0040007fa1a1e2bfa10000ffff ffffffffffffffffffffffffffffffffffffff00404000bfbfa10000ffff ffffffffffffffffffffffffffffffffffffffffffff004000a10000ffff ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rod-light.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffff000040616100ffffffffffffffffffff ffffffffffffffffffffffffffff0000cb61617f7f00ffffffffffffffff ffffffffffffffffffffffffffff0000406161b27fa1a1bf00ffffffffff ffffffffffffffffffffffffffff00004061617f7fe2a1bfbf00ffffffff ffffffffffffffffffffffffffff0000cb61617f7fa1a1cbbf0000ffffff ffffffffffffffffffffffffffff0000406161e27fa1a1bfbf0000ffffff ffffffffffffffffffffffffffff00004061617f7fb2a1bfbf0000ffffff ffffffffffffffffffffffffffff0000a661617f7fa1a1e2bf0000ffffff ffffffffffffffffffffffffffff0000406161cb7fa1a1bfbf0000ffffff ffffffffffffffffffffffffffff00004061617f7fe2a1bfbf0000ffffff ffffffffffffffffffffffffffffff000061407f7fa1a1b2bf0000ffffff ffffffffffffffffffffffffffffffffff0040007fa1a1bfbf0000ffffff ffffffffffffffffffffffffffffffffffffff00404000bfbf0000ffffff ffffffffffffffffffffffffffffffffffffffffffff0040000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w(,)32 b(or)f(horns)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: claypipe.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff375615ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff685637ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff92568affffffffffffffffffffffffffffffffffffffffff ffffffffffffff15158affffffffffffffffffffffffffffffffffffffff ffffffffffffff8a565656ffffffffffffffffffffffffffffffffffffff ffffffffffffffff6856158affffffffffffffffffffffffffffffffffff ffffffffffffffffff8a56568affffffffffffffffffffffffffffffffff ffffffffffffffffffff68567068ffffffffffffffffffffffffffffffff ffffffffffffffffffffff56707068ffffffffffffffffffffffffffffff ffffffffffffffffffffffff377c5668ffffffffffffffffffffffffffff ffffffffffffffffffffffffff37707068ffffffffffffffffffffffffff ffffffffffffffffffffffffffff377c7068ffffffffffffffffffffffff ffffffffffffffffffffffffffffff68707068ffffffffffffffffffffff ffffffffffffffffffffffffffffffff8a567c15ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff157c56ffffffffffffffffff ffffffffffffffffffff9270ffffffffffffff157c7068ffffffffffffff ffffffffffffffffffffff15376915ffffffffff37561537ffffffffffff ffffffffffffffffffffffff155637697c37ffffff8a565615ffffffffff ffffffffffffffffffffffffff3737151569707068ffff1556568affffff ffffffffffffffffffffffffffffff151515377c7070703737155615ffff ffffffffffffffffffffffffffffffff8a1515377c70707070567c7015ff ffffffffffffffffffffffffffffffffffff373715697070707070707070 68ffffffffffffffffffffffffffffffffffffff8a567c70707070707070 7037ffffffffffffffffffffffffffffffffffffffffffff375670707070 707070ffffffffffffffffffffffffffffffffffffffffffffffffffff37 5656705615ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff568affffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gu-horn.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff000000ffffffff000000ff00 0000ffffffffffffffffffffffffffffffffffff000000ffffffff000000 ff000000ffffffffffffffffffffffffffffffffffff0000000000ffff00 0000ff000000ffffffffffffffffffffffffffffffffffff0000000000ff ff000000ff000000ffffffffffffffffffffffffff000000ffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffff00000000ffffff ffffffffff004800ff000000ffffffffffffffffffffffffff00000000ff ffffffff00000048a51dff000000ffffffffffffffffffffffffffff0000 00ffffffffff1d64a5644800ff000000ffffffffffffffff0000ffffffff ffffffffffffff0064caa548ffffffffffffffffffffffffffff00000000 ffffffffffffffff1d48cae248ffffffffffffffffffffffffffffff0000 0000ffffffffff00000064e2ffca48ffffff000000ffffffffffffffffff ff000000ffffffffff1da5a5cacade481dffffff000000ffffff000000ff ffffffffffffffffffff4864cadee2a5481dffffffff00000000ffff0000 000000ffffffffffffff001da5cae2dede801dffffffffffff000000ffff 0000000000ffffffffffff0000a5cacacaca481d00ffffffffffff000000 ffffffff000000ffffffffffff1da5deffdeca481dffffffffffffffffff ffffffffffffffffffffffffff4864a5cadededeca48ffffffffff000000 ffffffffffffffffffffffffff0048a5cacacacacacaa51dffffffffff00 000000ffffffffffffffffffffff0048a5e2cadeffcacaa50000ffffffff ff00000000ffffffffffffffffffffff48a5cacacae2dede801d00ffffff ffffffff000000ffffffffffffffffffff48a5dedededecadea51dffffff ffffffffffffffffffffffffffffffffff001dcadedeffdedecaa51dffff ffffff000000ffffffffffffffffffffffffff48cacacacacacacaa50000 ffffffffff00000000ffffffffffffffffffffffff1dcacacacacacae2a5 00ffffffffffff00000000ffffffffffffffffffffffff48cacacacacaca a54800ffffffffffffffff0000ffffffffffffffffffffffff00a5cacaca caa548ffffffff000000ffffffffffffffffffffffffffffffffff0000a5 cacaca1d1dffffffff00000000ffffffffffffffffffffffffffffffffff 001d1d1d4800ffffffffff00000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gu-horn.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff000000ffffffff000000ff00 0000ffffffffffffffffffffffffffffffffffff000000ffffffff000000 ff000000ffffffffffffffffffffffffffffffffffff0000000000ffff00 0000ff000000ffffffffffffffffffffffffffffffffffff0000000000ff ff000000ff000000ffffffffffffffffffffffffff000000ffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffff00000000ffffff ffffffffff004800ff000000ffffffffffffffffffffffffff00000000ff ffffffff00000048a51dff000000ffffffffffffffffffffffffffff0000 00ffffffffff1d64a5644800ff000000ffffffffffffffff0000ffffffff ffffffffffffff0064caa548ffffffffffffffffffffffffffff00000000 ffffffffffffffff1d48cae248ffffffffffffffffffffffffffffff0000 0000ffffffffff00000064e2ffca48ffffff000000ffffffffffffffffff ff000000ffffffffff1da5a5cacade481dffffff000000ffffff000000ff ffffffffffffffffffff4864cadee2a5481dffffffff00000000ffff0000 000000ffffffffffffff001da5cae2dede801dffffffffffff000000ffff 0000000000ffffffffffff0000a5cacacaca481d00ffffffffffff000000 ffffffff000000ffffffffffff1da5deffdeca481dffffffffffffffffff ffffffffffffffffffffffffff4864a5cadededeca48ffffffffff000000 ffffffffffffffffffffffffff0048a5cacacacacacaa51dffffffffff00 000000ffffffffffffffffffffff0048a5e2cadeffcacaa50000ffffffff ff00000000ffffffffffffffffffffff48a5cacacae2dede801d00ffffff ffffffff000000ffffffffffffffffffff48a5dedededecadea51dffffff ffffffffffffffffffffffffffffffffff001dcadedeffdedecaa51dffff ffffff000000ffffffffffffffffffffffffff48cacacacacacacaa50000 ffffffffff00000000ffffffffffffffffffffffff1dcacacacacacae2a5 00ffffffffffff00000000ffffffffffffffffffffffff48cacacacacaca a54800ffffffffffffffff0000ffffffffffffffffffffffff00a5cacaca caa548ffffffff000000ffffffffffffffffffffffffffffffffff0000a5 cacaca1d1dffffffff00000000ffffffffffffffffffffffffffffffffff 001d1d1d4800ffffffffff00000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: horn.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffadffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffadffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffadadffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffade2adffffffffffffffffffffffffffffff ffffffffffffffffffffffffffade2adadffffffffffffffffffffffffff ffffffffffffffffffffffffffadade2adadadffffffffffffffffffffad adffffffffffffffffffffadadadade2adadadadadffffffffffffffffff ffade2adadadadadadadadadffffade2adadadadadadadffffffffffffff ffffffadade2e2ade2adadadadadadade2adadadadadadadadffffffffff ffffffffffadadadadadadadadadadadadadade2adadadadadadadffffff ffffffffffffffadadffffffffade2ade2adadadadadffadadadadadadff ffffffffffffffffffffffffffffadadadadadffffadadadffffffadadad adffffffffffffffffffffffffffffade2adadffffffffffadadadffffff adadadffffffffffffffffffffffffffffadadadffffffffffffadadadff ffffffadadffffffffffffffffffffffffffffadadadffffffffffffade2 adffffffffffadffffffffffffffffffffffffffffadadadffffffffffff ade2adffffffffffadffffffffffffffffffffffffffffffadadadffffff ffade2adffffffffffffffffffffffffffffffffffffffffffffadadadad adadadadadadffffffffffffffffffffffffffffffffffffffffffffffad adadadadadadadffffffffffffffffffffffffffffffffffffffffffffff ffffffadadadadffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: shellhorn1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff484848ffff48484848 94ffffff48484848ffffffffffffffffffffffffffffffffff4848614848 48484a5250484848484848ffffffffffffffffffffffffffffffff484848 48484848464848485a595b5a484848ffffffffffffffffffffffffffffff 48484848394148485c484848484861484848ffffffffffffffffffffffff ffffffffff9b374848594848484848485c5848484dffffffffffffffffff ffffffffffffffff4448575d48484848836a5955484848ffffffffffffff ffffffffffffffffffff4c48485b48484848645a574848484848ffffffff ffffffffffffffffffffffff3f484857585b59575648484848484848ffff ffffffffffffffffffffffffffff7747484848484848484a3f4439485968 ffffffffffffffffffffffffffffffffff5d4448483b48433c5a78725748 48915dffffffffffffffffffffffffffffffffffff60422d334448616c61 4848483e3effffffffffffffffffffffffffffffffffffffff2e30484848 48484848483e482a68ffffffffffffffffffffffffffffffffffff323048 4848484848484e3e4848484870ffffffffffffffffffffffffffffffff7c 304848484848484b49484848484848486098ffffffffffffffffffffffff ffff4848484848484448484848484848483e3136ffffffffffffffffffff ffffffffff484848484848484848484848484821134affffffffffffffff ffffffffffffffff48484848484848484248481f121a68ffffffffffffff ffffffffffffffffffffff7c484848484848484850598fffffffffffffff ffffffffffffffffffffffffffffffa1484848488bffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: shellhorn1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff484848ffff48484848 94ffffff48484848ffffffffffffffffffffffffffffffffff4848614848 48484a5250484848484848ffffffffffffffffffffffffffffffff484848 48484848464848485a595b5a484848ffffffffffffffffffffffffffffff 48484848394148485c484848484861484848ffffffffffffffffffffffff ffffffffff9b374848594848484848485c5848484dffffffffffffffffff ffffffffffffffff4448575d48484848836a5955484848ffffffffffffff ffffffffffffffffffff4c48485b48484848645a574848484848ffffffff ffffffffffffffffffffffff3f484857585b59575648484848484848ffff ffffffffffffffffffffffffffff7747484848484848484a3f4439485968 ffffffffffffffffffffffffffffffffff5d4448483b48433c5a78725748 48915dffffffffffffffffffffffffffffffffffff60422d334448616c61 4848483e3effffffffffffffffffffffffffffffffffffffff2e30484848 48484848483e482a68ffffffffffffffffffffffffffffffffffff323048 4848484848484e3e4848484870ffffffffffffffffffffffffffffffff7c 304848484848484b49484848484848486098ffffffffffffffffffffffff ffff4848484848484448484848484848483e3136ffffffffffffffffffff ffffffffff484848484848484848484848484821134affffffffffffffff ffffffffffffffff48484848484848484248481f121a68ffffffffffffff ffffffffffffffffffffff7c484848484848484850598fffffffffffffff ffffffffffffffffffffffffffffffa1484848488bffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: violin.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image e292b1c6faffffffffffffffffffffffffffffffffffffffffffffffffff ffffcf414357b8f8ffffffffffffffffffffffffffffffffffffffffffff ffffffffc236393d59b9f8ffffffffffffffffffffffffffffffffffffff fffffffffffffa9e35383f67bffaffffffffffffffffffffffffffffffff fffffffffffffffffff6a33c415470bcfdfffffffeffffffffffffffffff fffffffffffffffffffffffff5ad53535a6cb7fffcf5e7ebede8f1f9ffff fffffffffffffffffffffffffffffff5b25e535968add3afa595908991be f9fffffffffffffffffffffffffffffffffff7ba65535a637c8b8f909090 8f8bbffbfffffffffffffffffffffffffffffffffff9c268535963778c8e 8c8c8d8da1f1fffffffffffffffffffffffffffffffffffff8a155505962 74888b8b8b8a8fd2ffffffffffffffffffffffffffffffffffffe397654e 50586173878b868284b0fbffffffffffffffffffffffffffffffffffdd8b 6a624f4f58606f7b775f6b85bffffefffffffffffffffffffffffffffff5 ad72696963504e58607a73232b577fb5c2ebfcffffffffffffffffffffff fffdbb7469696963504d577eb14b514f77777c8aabdae8ffffffffffffff fffffffdbf7669696969645e6c96cab4702f525c4a797b7c94e6ffffffff fffffffffffbbd7669696968646796b6c3cdbb71324d3f6f72787a98e9ff fffffffffffffffec8836e696968531e428cb9c4ccbd76585169696e7787 d7feffffffffffffffffcb86797070695f344b6196b8c3ccc28269696969 6d7aa9f5fffffffffffffffff3b67f6b776e724a332f4f92b6c3ca8a6269 6969697597ecfffffffffffffffffff6b9a47f73787668522d528faf8c47 3d5c686969738fe3fffffffffffffffffffff9f4d8d39d77745b3e3b687f 4d33363c6169697188dffffffffffffffffffffffffffdfdeea47758494a 66675137333856636a7784ceffffffffffffffffffffffffffffffec9570 636368696651322c2d445b7882ccfefffffffffffffffffffffffffffff4 97736969696968552b2220333565aaf1ffffffffffffffffffffffffffff ffffe8896f69696966492121213b254abbffffffffffffffffffffffffff fffffffee58d7169696966422121293f2566dcffffffffffffffffffffff fffffffffffffcd07f716b6a6429212131214ebbfcffffffffffffffffff fffffffffffffffffdd6867673746c37232751609ef6ffffffffffffffff fffffffffffffffffffffffacc8a7d7b715a3e529cbaeeffffffffffffff fffffffffffffffffffffffffffffad9c6a79d9e98ace5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w(.)43 b(Apply)32 b(the)g(desired)g(w)m(eap)s(on,)g (then)g(c)m(hec)m(k)i(to)d(see)227 2011 y(that)d(the)h Fv(Range:)42 b Fz(slot)27 b(in)h(the)g(status)h(windo)m(w)f(indicates)g (that)g(item)e(is)i(\020readied\021)35 b(\(y)m(es...y)m(ou)227 2127 y(can)j(ha)m(v)m(e)g(something)f(applied)f(but)h(not)g(readied\).) 57 b(If)38 b(its)e(not)h(ready)-8 b(,)39 b(use)g(either)e(the)g(plus) 227 2244 y(or)f(min)m(us)g(k)m(eys)j(to)d(rotate)g(though)g(all)f(of)h (the)g(slots.)55 b(Once)37 b(readied,)h(use)f(the)g(\020)8 b Fj(<)p Fv(shift)p Fj(>)p Fz(\021)227 2360 y(k)m(ey)51 b(follo)m(w)m(ed)e(b)m(y)h(a)f(mo)m(v)m(emen)m(t)h(k)m(ey)h(to)d (\034re)i(the)g(ob)5 b(ject)50 b(in)f(that)g(direction.)92 b(Alterna-)227 2476 y(tiv)m(ely)-8 b(,)27 b(place)d(the)i(cursor)f(in)g (the)g(view)g(windo)m(w,)i(then)f(hit)e(the)i(middle)d(mouse)i(button)g (to)g(\034re.)227 2852 y Fy(En)m(ter)37 b(a)h(building)d(or)j(b)s(oat.) 227 3118 y @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: guild.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000ffffffffffffffffffffffffffffff ff003f00003f003f003f003f003f003f003f003f003f003f003f003f003f 003f003f003f003f003f003f003f003f003f0000ffffffffffffffffffff ffffffffff003f003f003f003f003f003f003f003f003f003f003f003f00 3f003f003f003f003f003f003f003f003f003f003f003f00ffffffffffff ffffffffffffffff00653f65003f003f003f003f003f003f003f003f003f 003f003f003f003f003f003f003f003f003f003f003f003f003f003f00ff ffffffffffffffffffffffff00653f6500003f003f003f003f003f003f00 3f003f003f003f003f003f003f003f003f003f003f003f003f003f003f00 3f0000ffffffffffffffffffffffff003f653f653f00003f003f003f003f 003f003f003f003f003f003f003f003f003f003f003f003f003f003f003f 003f003f003f0000ffffffffffffffffffffff003f653f653f003f003f00 3f003f003f003f003f003f003f00000000bfbf00a1bf3f003f003f003f00 3f003f003f003f003f003f00ffffffffffffffffffff00653f653f653f65 003f003f003f003f003f003f003f003f000040404000a1a1bfa1bf3fbf3f 003f003f003f003f003f003f003f003f00ffffffffffffffffff00653f65 3f653f6500003f003f003f003f003f003f003f0000004040bf00bfa13fa1 3f003f003f003f003f003f003f003f003f003f0000ffffffffffffffff00 3f653f003f653f6500000000000000000000000000000000000040404000 0000000000000000000000000000000000000000000000000000ffffffff ffffff003f653fcb3f653f65000052005200520052005200520052004000 0000000052005200520052005200520052005200520052005200520000ff ffffffffffff00613f6500ad3f653f650052525252525252525252525252 5200007fa1a1005252525252525252525252525252525252525252525252 525200ffffffffffffff00403f65cbcb3f653f6500520052005200520052 00520052000000a17fa10052005200520052005200520052005200520052 00520052005200ffffffffffff00a1613f65cb003f653f65005252525252 52525252525252525200a17fa10052525252525252525252525252525252 5252525252525252525200ffffffffffff0061403f65cb653f653f650000 520052005200520052005200520000000000520052005200520052005200 520052005200520052005200520000ffffffffff0061a1613f6500003f65 3f6500525252525252525252525252525252525252525252525252525252 52525252525252525252525252525252525200ffffffffff004061403f65 3fcb3f653f00005200520052005200520052005200520052005200520052 00520052005200520052005200520052005200520000ffffffffff006161 00403f6500ad3f653f005252525252525252525252525252525252525252 5252525252525252525252525252525252525252525252525200ffffffff ff00a100ad403f65cbcb3f653f0052005200520052005200520052005200 520052005200520052005200520052005200520052005200520052005200 ffffffff006161cbad613f65cb003f653f00525252525252525252525252 525252525252525252525252525252525252525252525252525252525252 52525200ffffffff006100adcb403f65cb653f653f000052005200520052 005200520052005200520052005200520052005200520052005200520052 0052005200520000ffffffff0040cbad00403f6500003f653f0052525252 525252525252525252525252525252525252525252525252525252525252 525252525252525252525200ffffffff0061cbad61403f653fcb3f650000 520052005200520052005200520052005200520052005200520052005200 520052005200520052005200520000ffffffffff0040cbcba1613f6500ad 3f6500525252525252525252525252525252525252525252525252525252 52525252525252525252525252525252525200ffffffffff0061cb00a140 3f65cbcb3f65005200520052005200520052005200520052005200520052 0052005200520052005200520052005200520052005200ffffffffff0040 cb40a1403f65cb003f650052525252525252525252525252525252525252 525252525252525252525252525252525252525252525252525200ffffff ffff0040004061613f65cb653f6500005200520052005200520052005200 520052005200520052005200520052005200520052005200520052005252 00ffffffffff0040616100403f6500003f00525252525252525252525252 525252525252525252525252525252525252525252525252525252525252 52525200ffffffffffff0061a100ad613f653fcb3f000052005200520052 005200520052005200520052005200520052005200520052005200520052 0052005200520000ffffffffffff0040a1cbad403f6500ad3f0052525252 525252525252525252525252525252525252525252525252525252525252 525252525252525252525200ffffffffffff004000adcb613f65cbcb3f00 520052005200520052005200520052005200520052005200520052005200 52005200520052005200520052005200ffffffffffff0040cbad00403f65 cb003f005252525252525252525252525252525252525252525252525252 5252525252525252525252525252525252525200ffffffffffff0061cbad a1613f65cb653f0000520052005200520052005200520052005200520052 005200520052005200520052005200520052005200520000ffffffffffff 0040cbcb61403f6500650052525252525252525252525252525252525252 525252525252525252525252525252525252525252525252525200ffffff ffffffff0040cb00a1613f653f6500005200520052005200520052005200 520052005200520052005200520052005200520052005200520052005200 00ffffffffffffff0061cb4061403f653f65005252525252525252525252 525252525252525252525252525252525252525252525252525252525252 5252525200ffffffffffffff00400061a1403f653f650052005200520052 005200520052005200520052005200520052005200520052005200520052 005200520052005200ffffffffffffff0040614061403f653f6500525252 525252525252525252525252525252525252525252525252525252525252 52525252525252525252525200ffffffffffffff0061a16100613f653f65 000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000ffffffffffffff004061402d40 3f653f008383838383838383838383838383838383838383838383838383 8383838383838383838383838383838383838300ffffffffffffffff0061 a1002d403f653f0065656565656565656565656565656565656565656565 656565656565656565656565656565656565656565656500ffffffffffff ffff0040612d2d403f65003f3f3f3f3f000000003f3f3f3f000000003f3f 3f3f000000003f3f3f3f000000003f3f3f3f000000003f3f3f3f00ffffff ffffffffffff0061002d2d613f65008383838300adadcb0083838300adad cb0083838300adadcb0083838300adadcb0083838300adadcb0083838383 00ffffffffffffffffff00402d2d2d403f00656565656500ad78cb006565 6500ad78cb0065656500ad78cb0065656500ad78cb0065656500ad78cb00 65656500ffffffffffffffffffff00002d2d00403f003f3f3f3f00cb78cb 003f3f3f00cb78cb003f3f3f00cb78cb003f3f3f00cb78cb003f3f3f00cb 78cb003f3f3f3f00ffffffffffffffffffff002d2d2d6161008383838383 000000000083838300000000008383830000000000838383000000000083 8383000000000083838300ffffffffffffffffffffff002d2d00a1610065 656565656565656565656565656565656565656565656565656565656565 656565656565656565656565656500ffffffffffffffffffffff002d2d40 a1003f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f00ffffffffffffffffffffffff 002d00406100bfa1bfbfbfa1bfbfbfa1bfbfa1bfbfbfbfa1bfbfa1bfbfbf a1bfbfbfbfa1bfbfa1bfbfbfa1bfbfbfbfa1bfbfa100ffffffffffffffff ffffffff002d616100a1bf6100000000a1a1bf6100000000a1a1bf61a100 0000000061a1a1a10000000061a1a1bf00000000bf61a1bf00ffffffffff ffffffffffffffff0000a1610061a100cbcbcba60061a100cbcbcba60061 a161003f3f3f3f0000616100cbcbcba600616100cbcbcba6006161a100ff ffffffffffffffffffffffff0040a100bfa100cbcbcba6a600a100cbe2e2 a6a600a1bf003f3f3f3f3f0000bf00cbcbcba6a600bf00cbe2e2a6a600bf bf00ffffffffffffffffffffffffffff00406100bf6100cbcbcba6000061 00cbe2e2a6000061a1003f3f3f3f3f0000a100cbcbcba60000a100cbe2e2 a60000a1bf00ffffffffffffffffffffffffffff00610061a100cba6a6a6 a600a100cba6a6a6a600a16100a6a63f3f3f00006100cba6a6a6a6006100 cba6a6a6a600616100ffffffffffffffffffffffffffffff006100bfa100 000000000000a100000000000000a1bf003f3f3f3f3f0000bf0000000000 0000bf00000000000000bfa100ffffffffffffffffffffffffffffff0000 a1bf00000000000000bf00000000000000bf61003f3f3f3f3f0000000000 0000000000a100000000000000a1bf00ffffffffffffffffffffffffffff ffff000061a161616161a16161a1616161a1616161a161003f3f3f3f3f00 006161a16161a1616161a161616161a16161a100ffffffffffffffffffff ffffffffffff000000000000000000000000000000000000000000ffffff ffffff0000000000000000000000000000000000000000ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 486 3033 a Fz(Mo)m(v)m(e)46 b(o)m(v)m(er)g(on)e(top)h(of)f (the)h(desired)g(structure.)80 b(Then)46 b(hit)d(either)i(middle)d (mouse)227 3195 y(button)c(while)f(the)h(cursor)h(is)e(on)h(the)g(icon) f(of)g(the)h(structure)h(in)e(the)i(lo)s(ok)d(windo)m(w,)k(or)d(hit)227 3311 y(the)d Fv(A)f Fz(k)m(ey)-8 b(.)46 b(If)33 b(there)h(is)f(a)f (link)g(to)h(a)f(map)h(dra)m(wn)g(of)g(the)g(\020inside\021)40 b(y)m(ou)34 b(will)c(b)s(e)j(tak)m(en)h(there.)227 3427 y(If)f(no)f(link)g(exists,)h(y)m(ou)g(will)d(get)j(the)g(message)g (\020)8 b Fv(the)52 b Fj(<)p Fv(structure)p Fj(>)h Fv(is)f(closed.)p Fz(\021.)227 3803 y Fy(Use)38 b(a)g(skill)227 3984 y Fz(In)g(order)g(to)f(use)i(a)e(skill,)g(it)g(m)m(ust)h(\034rst)g(b)s(e) f(readied.)59 b(Y)-8 b(ou)37 b(can)h(ready)h(an)m(y)f(skill)e(y)m(ou)i (ha)m(v)m(e)227 4100 y(with)g(the)g Fv(ready_skill)i Fz(command.)58 b(Also,)38 b(some)f(skills)g(will)e(auto-matically)f(b)s (e)j(readied)227 4216 y(when)c(y)m(ou)e(undertak)m(e)i(certain)e (actions.)42 b(F)-8 b(or)31 b(example,)g(if)f(y)m(ou)i(run)f(in)m(to)f (a)h(hostile)f(monster)227 4332 y(with)j(a)g(wielded)g(w)m(eap)s(on)h (the)g Fv(melee)52 b(weapons)35 b Fz(skill)d(is)h(readied.)45 b(A)34 b(ready)g(skill)d(will)g(sho)m(w)227 4449 y(up)44 b(in)f(the)g(stat)h(windo)m(w)f(in)g(the)g Fv(Range:)67 b Fz(slot.)75 b(If)43 b(a)g(skill)f(do)s(esn't)h(app)s(ear)h(in)e(the)i (slot,)227 4565 y(rotate)36 b(the)h(range)g(slot)e(to)h(c)m(hec)m(k)j (for)d(the)g(skill.)54 b(When)37 b(a)f(skill)f(is)h(readied,)h(the)g (range)f(slot)227 4681 y(will)d(app)s(ear)h(as)h(\020)8 b Fv(Skill:)103 b Fj(<)p Fv(skill)p Fj(>)p Fz(\021)44 b(\(otherwise)34 b(it)g(app)s(ears)h(as)g(\020)8 b Fv(Skill:)103 b(none)p Fz(\021\).)50 b(T)-8 b(o)227 4797 y(use)37 b(the)f(skill,)f (mak)m(e)h(a)f(\020ranged)g(attac)m(k\021)44 b(\(ie)35 b(hit)g(the)h(same)f(k)m(eys)j(or)d(mouse)h(button)g(as)g(for)227 4914 y(\034ring)c(a)g(w)m(and\).)45 b(T)-8 b(o)32 b(learn)g(more)g(ab)s (out)g(the)h(skills)e(system)i(see)h(c)m(hapter)g(5.)227 5290 y Fy(Cast)k(a)g(sp)s(ell)227 5470 y Fz(In)28 b(order)g(to)f(\020)8 b Fv(cast)p Fz(\021)36 b(sp)s(ells)27 b(\(either)g(incan)m(tations)g (or)g(pra)m(y)m(ers\),)j(y)m(ou)f(m)m(ust)e(ha)m(v)m(e)i(the)f(skills)f (of)227 5598 y Fv(wizardry)83 b Fz(\(incan)m(tations\))29 b(or)h Fv(praying)h Fz(\(pra)m(y)m(ers\).)44 b(P)m(ossession)32 b(of)d(a)h(\020talisman\021)k @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: talisman.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff65656565656565ffffff ffffffffffffffffffffffffffffffffffffffffff6565ffffffffff0065 ffffffffffffffffffffffffffffffffffffffffffffff65ffffffffffff ff006565ffffffffffffffffffffffffffffffffffffffff6565ffffffff ffffffffffff0065ffffffffffffffffffffffffffffffffffff65ffffff ffffffffffffffffff0065ffffffffffffffffffffffffffffffff6565ff ffffffffffffffffffffffff0065ffffffffffffffffffffffffffffff65 ffffffffffffffffffffffffffffff65ffffffffffffffffffffffffffff ff65ffffffffffffffffffffffffffffff65ffffffffffffffffffffffff ffffff6565ffffffffffffffffffffffffffff65ffffffffffffffffffff ffffffffffffff6565ffffffffffffffffffffffff65ffffffffffffffff ffffffffffffffffffff65ffffffffffffffffffff0065ffffffffffffff ffffffffffffffffffffffff65ffffffffffffffffff0065ffffffffffff ffffffffffffffffffffffffffffff65ffffffffffffff0065ffffffffff ffffffffffffffffffffffffffffffffff6565ffffffff006565ffffffff ffffffffffffffffffffffffffffffffffffffff656565656565ffffffff ffffffffffffffffffffffffffffffffffffffffffff6969006965ffffff ffffffffffffffffffffffffffffffffffffffffffffff696900cb006969 ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb4dcb 0069ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb 4dcb0069ffffffffffffffffffffffffffffffffffffffffffffffffff69 6900cb006969ffffffffffffffffffffffffffffffffffffffffffffffff ffff6969006969ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff696969ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: talisman.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff65656565656565ffffff ffffffffffffffffffffffffffffffffffffffffff6565ffffffffff0065 ffffffffffffffffffffffffffffffffffffffffffffff65ffffffffffff ff006565ffffffffffffffffffffffffffffffffffffffff6565ffffffff ffffffffffff0065ffffffffffffffffffffffffffffffffffff65ffffff ffffffffffffffffff0065ffffffffffffffffffffffffffffffff6565ff ffffffffffffffffffffffff0065ffffffffffffffffffffffffffffff65 ffffffffffffffffffffffffffffff65ffffffffffffffffffffffffffff ff65ffffffffffffffffffffffffffffff65ffffffffffffffffffffffff ffffff6565ffffffffffffffffffffffffffff65ffffffffffffffffffff ffffffffffffff6565ffffffffffffffffffffffff65ffffffffffffffff ffffffffffffffffffff65ffffffffffffffffffff0065ffffffffffffff ffffffffffffffffffffffff65ffffffffffffffffff0065ffffffffffff ffffffffffffffffffffffffffffff65ffffffffffffff0065ffffffffff ffffffffffffffffffffffffffffffffff6565ffffffff006565ffffffff ffffffffffffffffffffffffffffffffffffffff656565656565ffffffff ffffffffffffffffffffffffffffffffffffffffffff6969006965ffffff ffffffffffffffffffffffffffffffffffffffffffffff696900cb006969 ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb4dcb 0069ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb 4dcb0069ffffffffffffffffffffffffffffffffffffffffffffffffff69 6900cb006969ffffffffffffffffffffffffffffffffffffffffffffffff ffff6969006969ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff696969ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: talisman.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff65656565656565ffffff ffffffffffffffffffffffffffffffffffffffffff6565ffffffffff0065 ffffffffffffffffffffffffffffffffffffffffffffff65ffffffffffff ff006565ffffffffffffffffffffffffffffffffffffffff6565ffffffff ffffffffffff0065ffffffffffffffffffffffffffffffffffff65ffffff ffffffffffffffffff0065ffffffffffffffffffffffffffffffff6565ff ffffffffffffffffffffffff0065ffffffffffffffffffffffffffffff65 ffffffffffffffffffffffffffffff65ffffffffffffffffffffffffffff ff65ffffffffffffffffffffffffffffff65ffffffffffffffffffffffff ffffff6565ffffffffffffffffffffffffffff65ffffffffffffffffffff ffffffffffffff6565ffffffffffffffffffffffff65ffffffffffffffff ffffffffffffffffffff65ffffffffffffffffffff0065ffffffffffffff ffffffffffffffffffffffff65ffffffffffffffffff0065ffffffffffff ffffffffffffffffffffffffffffff65ffffffffffffff0065ffffffffff ffffffffffffffffffffffffffffffffff6565ffffffff006565ffffffff ffffffffffffffffffffffffffffffffffffffff656565656565ffffffff ffffffffffffffffffffffffffffffffffffffffffff6969006965ffffff ffffffffffffffffffffffffffffffffffffffffffffff696900cb006969 ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb4dcb 0069ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb 4dcb0069ffffffffffffffffffffffffffffffffffffffffffffffffff69 6900cb006969ffffffffffffffffffffffffffffffffffffffffffffffff ffff6969006969ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff696969ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 5725 a @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: talisman.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff65656565656565ffffff ffffffffffffffffffffffffffffffffffffffffff6565ffffffffff0065 ffffffffffffffffffffffffffffffffffffffffffffff65ffffffffffff ff006565ffffffffffffffffffffffffffffffffffffffff6565ffffffff ffffffffffff0065ffffffffffffffffffffffffffffffffffff65ffffff ffffffffffffffffff0065ffffffffffffffffffffffffffffffff6565ff ffffffffffffffffffffffff0065ffffffffffffffffffffffffffffff65 ffffffffffffffffffffffffffffff65ffffffffffffffffffffffffffff ff65ffffffffffffffffffffffffffffff65ffffffffffffffffffffffff ffffff6565ffffffffffffffffffffffffffff65ffffffffffffffffffff ffffffffffffff6565ffffffffffffffffffffffff65ffffffffffffffff ffffffffffffffffffff65ffffffffffffffffffff0065ffffffffffffff ffffffffffffffffffffffff65ffffffffffffffffff0065ffffffffffff ffffffffffffffffffffffffffffff65ffffffffffffff0065ffffffffff ffffffffffffffffffffffffffffffffff6565ffffffff006565ffffffff ffffffffffffffffffffffffffffffffffffffff656565656565ffffffff ffffffffffffffffffffffffffffffffffffffffffff6969006965ffffff ffffffffffffffffffffffffffffffffffffffffffffff696900cb006969 ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb4dcb 0069ffffffffffffffffffffffffffffffffffffffffffffffffff6900cb 4dcb0069ffffffffffffffffffffffffffffffffffffffffffffffffff69 6900cb006969ffffffffffffffffffffffffffffffffffffffffffffffff ffff6969006969ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff696969ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 152 w(or)28 b(a)g(\020holy)f(sym)m(b)s(ol\021)35 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: holy-symbol.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff004e 00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00 00ca0000ffffff00ffffffffffffffffffffffffffffffffffffffff0000 000000caca00000000ffffffffffffffffffffffffffffffffffffffffff 00001d0000caca001d0000ffffffffffffffffffffffffffffffffffffff ffff001d2b00e2caca002b1d00ffffffffffffffffffffffffffffffffff ffffff000000000000caca0000000000ffffffffffffffffffffffffffff ffff000000cacacacaca00000000cacaca0000ffffffffffffffffffffff ffffffffffff0000cacacacaca0000cacacacaca000000ffffffffffffff ffffffffffffffffff000000000000ca000000000000ffffffffffffffff ffffffffffffffffffffffff001d2b0000caca002b1d00ffffffffffffff ffffffffffffffffffffffffffff001d1d0000caca001d1d00ffffffffff ffffffffffffffffffffffffffffffff00001d00e24eca001d0000ffffff ffffffffffffffffffffffffffffffffffff00000000004eca00000000ff ffffffffffffffffffffffffffffffffffffff00ffffff0000caca00ffff ff00ffffffffffffffffffffffffffffffffffffffffffffff00004eca00 ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ca ca00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00caca00ffffffffffffffffffffffffffffffffffffffffffffffffffff ff00e2caca00ffffffffffffffffffffffffffffffffffffffffffffffff ffffff00002b0000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 123 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: holy-symbol.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff004e 00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00 00ca0000ffffff00ffffffffffffffffffffffffffffffffffffffff0000 000000caca00000000ffffffffffffffffffffffffffffffffffffffffff 00001d0000caca001d0000ffffffffffffffffffffffffffffffffffffff ffff001d2b00e2caca002b1d00ffffffffffffffffffffffffffffffffff ffffff000000000000caca0000000000ffffffffffffffffffffffffffff ffff000000cacacacaca00000000cacaca0000ffffffffffffffffffffff ffffffffffff0000cacacacaca0000cacacacaca000000ffffffffffffff ffffffffffffffffff000000000000ca000000000000ffffffffffffffff ffffffffffffffffffffffff001d2b0000caca002b1d00ffffffffffffff ffffffffffffffffffffffffffff001d1d0000caca001d1d00ffffffffff ffffffffffffffffffffffffffffffff00001d00e24eca001d0000ffffff ffffffffffffffffffffffffffffffffffff00000000004eca00000000ff ffffffffffffffffffffffffffffffffffffff00ffffff0000caca00ffff ff00ffffffffffffffffffffffffffffffffffffffffffffff00004eca00 ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ca ca00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00caca00ffffffffffffffffffffffffffffffffffffffffffffffffffff ff00e2caca00ffffffffffffffffffffffffffffffffffffffffffffffff ffffff00002b0000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 151 w(will)26 b(also)i(allo)m(w)e(y)m(ou)j(to)g(resp)s (ectiv)m(ely)g Fv(cast)g Fz(incan)m(tations)f(or)1948 6057 y(13)p eop end %%Page: 14 18 TeXDict begin 14 17 bop 227 333 a Fz(pra)m(y)m(ers\).)43 b(Y)-8 b(ou)26 b(can)g(only)f Fv(cast)i Fz(those)f(sp)s(ells)f(y)m(ou)i (ha)m(v)m(e)g Fu(le)-5 b(arne)g(d)p Fz(.)40 b(Issue)27 b(the)g(meta-command)227 449 y Fv(`cast)53 b Fj(<)p Fv(spell)p Fj(>)41 b Fz(to)f(ready)h(a)f(sp)s(ell)f(in)g(the)i Fv(Range:)60 b Fz(slot.)66 b(T)-8 b(o)40 b(\020\034re\021)48 b(the)40 b(sp)s(ell,)h(mak)m(e)f(a)227 565 y(ranged)f(attac)m(k.)62 b(Note!)g(if)38 b(y)m(ou)h(don't)g(ha)m(v)m(e)h(enough)f(mana)e(an)i (incan)m(tation)75 b(will)37 b(fail.)59 b(If)227 682 y(y)m(ou)35 b(don't)e(ha)m(v)m(e)i(enough)f(grace)g(a)f(pra)m(y)m(er)i Fu(may)e Fz(w)m(ork.)47 b(F)-8 b(or)33 b(more)g(information)d (concerning)227 798 y(the)j(magic)e(system)j(see)f(c)m(hapter)h(4.)227 1058 y Fy(3.1.2.)k(Sa)m(ving)g(the)f(game)g(and)i(ending)e(the)g Fx(Cross\034re)i Fy(session:)227 1238 y Fz(The)32 b Fv(save)f Fz(command)e(is)h(to)g(pro)m(vide)h(an)f(emergency)h(bac)m(kup)h(in)e (case)h(of)f(a)g(game)g(crash.)43 b(T)-8 b(o)227 1354 y(sa)m(v)m(e)39 b(y)m(our)f(pla)m(y)m(er)f(at)g(the)g(end)h(of)e(y)m (our)i(game)e(session)i(y)m(ou)g(m)m(ust)f(\034nd)g(a)g(\020Bed)g(to)g (realit)m(y\021)227 1471 y @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bed-save.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffff000000000000000000000000000000ffffffff ffffffffffffffffffffffffff006565656565656565656565656500ffff ffffffffffffffffffffffffffff006565656565656565656565656500ff ffffffffffffffffffffffffffffffff0065656565656565656565656565 00ffffffffffffffffffffffffffffffff00650000000000000000000000 6500ffffffffffffffffffffffffffffffffff000000a1a1bfbfbfbfbfbf e0000000ffffffffffffffffffffffffffffffff0000e000a1a1bfbfbfbf bfbfe000e000ffffffffffffffffffffffffffffffff0000e000a1a1bfbf bfbfbfbfe000e000ffffffffffffffffffffffffffffff000000e000a1e0 e0e0e0e0e0e0e000e000ffffffffffffffffffffffffffffff000000e000 00525252525252525200e000ffffffffffffffffffffffffffff00000000 e05252656565656565656552e000ffffffffffffffffffffffffffff0000 00005252656565656565656565835200ffffffffffffffffffffffffffff 000000005265526565656565656565658300ffffffffffffffffffffffff ffff000000006552656565656565656565836500ffffffffffffffffffff ffffffffffff00005265526565656565656565658300ffffffffffffffff ffffffffffffffff00006552656565656565656565836500ffffffffffff ffffffffffffffffffff00005265526565656565656565658300ffffffff ffffffffffffffffffffffff00006552656565656565656565836500ffff ffffffffffffffffffffffffffff00005265526565656565656565658300 ffffffffffffffffffffffffffffffff0000655265656565656565656583 6500ffffffffffffffffffffffffffffffff000052655265656565656565 65658300ffffffffffffffffffffffffffffffff00006552656565656565 656565836500ffffffffffffffffffffffffffffffff0000526552525252 5252525252658300ffffffffffffffffffffffffffffffff000065525265 83658365836583526500ffffffffffffffffffffffffffffffff00005265 658365836583658365835200ffffffffffffffffffffffffffffff000000 0000000000000000000000000000ffffffffffffffffffffffffffffff00 000065656565656565656565656500ffffffffffffffffffffffffffffff 0000000000000000000000000000000000ffffffffffffffffffffffffff ffff00005200ffffffffffffffff00005200ffffffffffffffffffffffff ffffffff00005200ffffffffffffffff00005200ffffffffffffffffffff ffffffffffff005200ffffffffffffffffff005200ffffffffffffffffff ffffffffffffffff000000ffffffffffffffffff000000ffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w(,)f(mo)m(v)m(e)g(y)m(our)g(pla)m(y)m(er)g(o)m(v)m (er)h(it)e(and)h Fv(apply)h Fz(it)d(\(\020)8 b Fv(A)p Fz(\021\).)35 b(These)j(b)s(eds)e(can)g(usually)f(b)s(e)h(found)227 1587 y(in)29 b(the)h(inns)g(and)f(ta)m(v)m(erns)j(dotted)d(around)h (the)g(maps)f(\(esp)s(ecially)g(in)f(cities\).)42 b(This)30 b(prev)m(en)m(ts)227 1703 y(y)m(ou)40 b(just)f(sa)m(ving)g(an)m(ywhere) i(and)e(forces)h(y)m(ou)f(to)g(\034nish)g(what)g(y)m(ou)h(are)f(doing)f (and)h(return)227 1819 y(somewhere)34 b(safe.)227 2079 y Fy(3.1.3.)k(Ab)s(out)f(NPCs)227 2260 y Fu(N)p Fz(on)47 b Fu(P)p Fz(la)m(y)m(er)f Fu(C)p Fz(haracters)g(are)g(sp)s(ecial)f (\020monsters\021)54 b(whic)m(h)46 b(ha)m(v)m(e)h(\020in)m (telligence\021.)81 b(Pla)m(y)m(ers)227 2376 y(ma)m(y)40 b(b)s(e)g(able)g(to)f(in)m(teract)h(with)g(these)h(monsters)g(to)e (help)h(solv)m(e)g(puzzles)h(and)g(\034nd)f(items)227 2492 y(of)34 b(in)m(terest.)49 b(T)-8 b(o)34 b(sp)s(eak)h(with)e(a)h (monster)g(y)m(ou)h(susp)s(ect)h(to)d(b)s(e)i(a)e(NPC,)i(simply)e(mo)m (v)m(e)i(to)e(an)227 2608 y(adjacen)m(t)d(square)g(to)e(them)h(and)g (push)h(the)f(double-quote,)h(ie.)41 b Fv(")p Fz(.)i(En)m(ter)30 b(y)m(our)f(message,)h(and)227 2724 y(press)36 b Fj(<)p Fv(return)p Fj(>)p Fz(.)50 b(Y)-8 b(ou)34 b(can)h(also)e(use)j(the)e (meta-command)e Fv('say)k Fz(if)d(y)m(ou)i(feel)f(lik)m(e)f(t)m(yping) 227 2841 y(a)g(little)d(extra.)374 2957 y(Other)25 b(NPCs)h(ma)m(y)f (not)g(sp)s(eak)g(to)g(y)m(ou,)i(but)e(displa)m(y)g(in)m(telligence)e (with)h(their)h(mo)m(v)m(emen)m(t.)227 3073 y(Some)j(monsters)h(can)g (b)s(e)g(friendly)-8 b(,)28 b(and)h(ma)m(y)f(attac)m(k)h(the)g(nearest) g(of)f(y)m(our)h(enemies.)43 b(Others)227 3189 y(can)g(b)s(e)f(\020p)s (ets\021,)i(in)d(that)h(they)h(follo)m(w)d(y)m(ou)i(around)g(and)g (help)g(y)m(ou)h(in)e(y)m(our)i(quest)g(to)e(kill)227 3306 y(enemies)33 b(and)g(\034nd)g(treasure.)227 3565 y Fy(3.1.4.)38 b(Imp)s(ortan)m(t)f(sp)s(ecial)f(items)227 3746 y Fz(There)50 b(are)f(man)m(y)f(sp)s(ecial)g(items)g(whic)m(h)h (can)g(b)s(e)g(found)f(in)g Fx(Cross\034re)p Fz(,)54 b(of)49 b(those)g(sho)m(wn)227 3862 y(b)s(elo)m(w,)33 b(the)g(most)f(imp)s(ortan)m(t)e(ma)m(y)j(b)s(e)f(the)h(signs.)374 4095 y Fw(\017)f Fy(Signs:)43 b Fz(0)33 b(0)f(0)g @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: counterspell.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff7affffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff7affff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 7affffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff7affffffffff7affffffffffffffffffffffffffffffff7affffffff ffffffff7affffffff7affffffffffffffffffffffffffffffffffff7aff ffffffff7aff7aff7aff7affffffffffffffffffffffffffffffffffffff ff7a7affffffffff7affff7affffffffffffffffffffffffffffffffffff ffffffffff7a7a7affff7aff7a7affffffffffffffffffffffffffffffff ffffffffffffffffffff7a7a7a7a7aff7affffffffffffffffffffffffff ffffffffffffffffffff7affff7a7a7affffffffffffffffffffffffffff ffffffffffffffffffffffffffff7a7a7a7a7a7affffffffffffffffffff ffffffffffffffffffffffffffffff7aff7a7affffff7a7a7a7a7affffff ffffffffffffffffffffffffffffffff7affff7a7affffffffffffffff7a 7affffffffffffffffffffffffffffffff7aff7affff7aff7a7affffffff ffffffffffffffffffffffffffffffffffff7affff7affff7affffffffff ffffffffffffffffffffffffffffffffffffff7affffffffffff7a7affff ffffffffffffffffffffffffffffffffffffffff7affffffffffffffff7a ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff7a7affffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff7affffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff7affffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: crossroad.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000ff3f00ffffffffffff ffffffffffffffffffffffffffffffffffffffffff0000003f6500ffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 000000000000ffffffffffffffffffffffffffff00e0e0e0e0e0aee0e0ae e0aeaee0e0aee000ffffffffffffffffffffffffffff00e0aee0e0e0aeae e0e0aee0e0e0aee0e000ffffffffffffffffffffffffff00e0e0e0aeaeae e0e0aee0e0aee0aeaee000ffffffffffffffffffffffffffff0000000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff 00e0aeae009300ffffffffffffffffffffffffffffffffffffffffffffff ffff00e0aee00065ffffffffffffffffffffffffffffffffffffffffffff ffffffff00aee0ae0000ffffffffffffffffffffffffffffffffffffffff ffffffffffff00e0aee000ffffffffffffffffffffffffffffffffffffff ffffffffffffffff00e0e0ae00ffffffffffffffffffffffffffffffffff ffffffffffffffffff0000aee0e000ffffffffffffffffffffffffffffff ffffffffffffffffffffff0000e0aee000ffffffffffffffffffffffffff ffffffffffffffffffffffff003f00e0ae00ffffffffffffffffffffffff ffffffffffffffffffffffffffff003f00aee000ffffffffffffffffffff ffffffffffffffffffffffffffffff003f6500e000ffffffffffffffffff ffffffffffffffffffffffffffffffffff003f6500e000ffffffffffffff ffffffffffffffffffffffffffffffffffff003f65930000ffffffffffff ffffffffffffffffffffffffffffffffffffffff003f65930000ffffffff ffffffffffffffffffffffffffffffffffffffffff003f65936500ffffff ffffffffffffffffffffffffffffffffffffffffffffff003f65930000ff ffffffffffffffffffffffffffffffffffffffffffffffff003f659365ff ffffffffffffffffffffffffffffffffffffffffffffffffffff003f6593 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff3f65 9365ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff009300ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: d-statue.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffbf61a1ffffffffffffffffa1ffffff ffffffffffffffffffffffffffffffff61a161a1ffffffa17fa1a1a1a1ff ffffffffffffffffffffffffffffffffffffffffa1ffffffffa17f7fa1a1 ffffffffffffffffffffffffffffffffffffffffffffa1ffffffffff7fa1 7fffffffffffffffffffffffffffffffffffffffffffffffa1ffffffffff a1407fffffffffffffffffffffffffffffffffffffffffffff61ffffffff ffff7f7f7fffffffffffffffffffffffffffffffffffffffffffff61ffff ff7f7f61404061a1ffffffffffffffffffffffffffffffffffffffffffa1 ff7f7f7f7fa14040a1a1a1ffffffffffffffffffffffffffffffffffffff ffa17fa17f7fa1a1a1a17fa1a140ffffffffffffffffffffffffffffffff ffff61a1a1a17f7fa1a1a1a17fa1a140ffffffffffffffffffffffffffff ffffffff617f61617fa1a1a1a1a1a1a1a140ffffffffffffffffffffffff ffffffffff61a161617f616161616161a1a14040ffffffffffffffffffff ffffffffff616161a1617f7fa1a1a1a1a1a1a17f7f40ffffffffffffffff ffffffffffffff61bf61a1617f7fa1a1a1a1a1a17f7f4040ffffffffffff ffffffffffffffff616161a1bf617fa1a16161a17fa140404040ffffffff ffffffffffffffffff61406161a1617fa1a1616161a1a1a14040ffffffff ffffffffffffffffffffff614061a1bfbf7fa1616161617fa16161ffffff ffffffffffffffffffffffff61404061a1bf7fa1bfbfbfbfbf7fa1bf61ff ffffffffffffffffffffffffff4061404061a17f7fa1bfbfbfbfbf7fa1a1 61ffffffffffffffffffffffffffff6140404061bfbfbfbfbfbfbfbfbfbf bfbf61ffffffffffffffffffffffffff6140404040616161616161616161 6161616161ffffffffffffffffffffffffff6140404061a1a1a1a1a1a1a1 a1a1a1a1a161ffffffffffffffffffffffffffff6140404061a1a1a1a1a1 a1a1a1a1a1a1a161ffffffffffffffffffffffffffff61404061a1a1a1a1 4040404040a1a1a161ffffffffffffffffffffffffffffff61404061a1a1 a1a1a1a1a1a1a1a1a1a161ffffffffffffffffffffffffffffff614061a1 a1a1a14040404040a1a1a161ffffffffffffffffffffffffffffffff6140 61a1a1a1a1a1a1a1a1a1a1a1a161ffffffffffffffffffffffffffffffff 6161a1a1a1a1a1a1a1a1a1a1a1a161ffffffffffffffffffffffffffffff ffff6161a1a1a1a1a1a1a1a1a1a1a1a161ffffffffffffffffffffffffff ffffffff6161616161616161616161616161ffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: fireball.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffcbffffffffffffffa6a6a6ffffffffffffffffffff ffffffffffffffffffffcba6a6ffffffffffa6e2cba6ffffffffffffcbff ffffffffffffffffffffffa6cbe2a6ffffffffffffe2a6a6ffffffffa6cb cbffffffffffffffffffffffa6a6e2e2ffffffffffa6cbcba6ffffffffa6 cbe2cba6ffffffffffffffffffffa6cbe2cbffffffffa6cbe2a6a6ffffff ffa6e2e2cba6ffffffffffffffffffa6cbe2e2cbffffffa6cbcbe2a6a6ff ffffa6cbe2e2a6ffffffffa6ffffffffa6cbe2e2cba6ffffffa6cbe2e2a6 a6ffffffa6cbcbcba6ffffffa6ffffffffffcbcbe2a6cba6ffffffa6e2e2 cba6ffffffffffa6a6a6e2ffffa6ffffffffffffcbe2e2a6cbe2e2ffffff cbcba6a6ffffffffffffffe2a6ffffffffffffffffffffcbcbcbffa6a6ff ffffa6cbe2a6ffe2e2ffffffcbcba6ffffffffffffffffffffffffffa6e2 ffffffa6a6e2e2ffffa6a6ffa6cbcbffffffcbffffffffffffffffffffff a6a6ffffffa6cbe2cba6a6e2ffa6cbe2cba6ffcba6a6ffffffffffffa6a6 ffffffffffffa6cbe2e2cbcba6a6ffa6e2e2cba6a6cbe2a6ffffffffffff cba6ffa6cbffffa6cbe2e2cba6cbcbffa6cbe2e2a6a6a6e2e2ffffffffff ffcbcba6a6a6e2cbffcbcbe2a6cba6cbcbffa6cbcbcba6a6cbe2cbffffff ffffa6e2cba6a6cbe2a6a6cbe2e2a6cbe2cba6cbffa6a6a6a6cbe2e2cbff ffffffa6e2e2cba6a6e2cba6a6e2cbcbcbe2cba6e2a6ffffffa6cbe2e2e2 a6ffffffffa6e2e2a6cbe2e2cba6cbcbcba6cbcba6a6cba6ffffffcbcbe2 a6a6a6ffffffa6e2e2cba6e2e2a6a6a6cbcba6a6a6a6a6e2cba6ffffffcb e2a6e2cbffffffffa6e2a6a6a6cbcba6ffffa6a6a6ffa6e2e2a6a6ffa6ff ffffcba6a6ffffffffffffa6a6a6ffa6cbffffffffcba6ffffcbcba6ffa6 a6ffffffffffffffffffffffffffffffffa6e2ffffffcbcba6ffffffffff a6a6a6ffffffa6cbffffffffffffffffffffffffa6ffffa6e2cba6ffffff ffffa6a6a6ffffa6a6e2cbffffffffffffffffffffffffffa6e2e2cba6ff ffffffa6e2cbffffffa6cbe2a6ffffffffffffffffffcba6ffffa6e2e2cb a6ffffffffffe2a6ffffa6a6e2cba6ffffffffffffffa6cbcbffffa6e2e2 cba6ffffffffffffcba6ffa6cbe2e2cba6ffffffffffffa6cbe2cba6ffa6 e2a6a6a6ffffffa6cbe2a6a6ffa6e2e2a6a6ffffffffffffffa6e2cbcba6 ffffa6a6a6ffffffa6cbcbe2a6a6ffffcbcba6ffffffffffffffa6a6e2cb a6ffffffffffffffffffa6cbe2e2a6a6ffffffffffffffffffffffffa6a6 a6a6a6ffffffffffffffffffa6e2e2e2a6ffffffffffffffffffffffffff ffa6a6a6ffffffffffffffffffffffcbcbcbffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gravestone.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000000000 000000ffffffffffffffffffffffffffffffffffffffffff0000e0e0e0e0 e0e0e0e0e000ffffffffffffffffffffffffffffffffffff0000e0e0e0e0 e0e0e0e0e0e0e0e000ffffffffffffffffffffffffffffffff00bfbfe0e0 e0e0e0e0e0e0e0e0e0e000ffffffffffffffffffffffffffffff00a1bfbf e0e0000000000000000000e0e000ffffffffffffffffffffffffff00a1a1 bfbf0000e0e0e0e0e0e0e0e0e000e000ffffffffffffffffffffffff007f a1a10000e0e0e0e0e0e0e0e0e0e0e0e00000ffffffffffffffffffffff00 7f7fa100e0e0e0e0e0e0e0e0e0e0e0e0e0e00000ffffffffffffffffffff 007f7f7f00e0212121e0e0e0212121e0212100e0e000ffffffffffffffff ffff007f7f00e0e021e0e021e0e0e021e0e021e0e000e000ffffffffffff ffffff00617f00e0e0212121e0e0e0e021e0e021212121e0e000ffffffff ffffffffff006100e0e0e021e0e021e0e021e0e0e021e0e0e0e0e000ffff ffffffffffff006100e0e0e021e0e021e0e0212121e021e0e0e0e0e0e000 ffffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 e0e000ffffffffffffffff006100e0e0e0e0e0e0e0e0e02121e0e0e0e0e0 e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0a121e0e0e0 e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e02121a1212121 e0e0e0e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0a1a1a1a1 a121e0e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e0e0e0a1 21e0e0e0e0e0e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0 e0a121e0e0e0e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e0 e0e0a121e0e0e0e0e0e0e0e0e000ffffffffffffffff0000e0e0e0e0e0e0 e0e0e0e0a121e0e0e0e0e0e0e0e000ffffffffffffffffff0000e0e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffff00e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffffff0000 0000000000000000000000000000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gravestone2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffff00000061610000ffffff ffffffffffffffffffffffffffffffffffffffffff000061610000bf00ff ffffffffffffffffffffffffffffffffffffffffffffff0000616100bf00 00ffffffffffffffffffffffffffffffffffffffffffffff0061006100bf bf0000ffffffffffffffffffffffffffffff000000000000000000610000 bfbfbfbf00000000000000ffffffffffffffffff00bfbfbfbfbfbfbf0061 00000000000000bfbfbfbfbf00ffffffffffffffff0000bfbfbfbfbfbfbf 0000a1a1a1a1a100bfbfbfbfbfbf00ffffffffffffffff0000bfbfbfbfbf bfbf0000a1a1a1a1a100bfbfbfbfbfbf00ffffffffffffffff0000000000 0000000000a1a1a1a1a1000000000000000000ffffffffffffffff00a1a1 a1a1a1a1a10000a1000000a100a1a1a1a1a1a100ffffffffffffffffff00 0000000000000000a1a1a1a1a1000000000000000000ffffffffffffffff ffffffffffff00610000a1000000a100ffffffffffffffffffffffffffff ffffffffffffffff006100a1a1a1a1a100ffffffffffffffffffffffffff ffffffffffffffffff00616100a1a100a1a100ffffffffffffffffffffff ffffffffffffffffffffff006100a10000000000ffffffffffffffffffff ffffffffffffffffffffffff00616100a1a100a1a100ffffffffffffffff ffffffffffffffffffffffffffff006100a1a100a1a100ffffffffffffff ffffffffffffffffffffffff00000000616100a1a1a1a1a100ffffffffff ffffffffffffffffffffffffffff006161006100a1a1a1a1a100ffffffff ffffffffffffffffffffffffffffffff006161006100a1a1a1a1a100ffff ffffffffffffffffffffffffffffffffffff0061610000a1a1a1a1a100ff ffffffffffffffffffffffffffffffffffffffff0061610000a1a1a1a1a1 00ffffffffffffffffffffffffffffffffffffffffff00616100a1a1a1a1 a10000ffffffffffffffffffffffffffffffffffffffffff006161000000 0000000000ffffffffffffffffffffffffffffffffffffffffff006100bf bfbfbfbfbf0000ffffffffffffffffffffffffffffffffffffffffff0061 00bfbfbfbfbfbfbf00ffffffffffffffffffffffffffffffffffffffffff 0000bfbfbfbfbfbfbfbf00ffffffffffffffffffffffffffffffffffffff ffff0000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: monument.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000000000 000000ffffffffffffffffffffffffffffffffffffffffff0000e0e0e0e0 e0e0e0e0e000ffffffffffffffffffffffffffffffffffff0000e0e0e0e0 e0e0e0e0e0e0e0e000ffffffffffffffffffffffffffffffff00bfbfe0e0 e0e0e0e0e0e0e0e0e0e000ffffffffffffffffffffffffffffff00a1bfbf e0e0000000000000000000e0e000ffffffffffffffffffffffffff00a1a1 bfbf0000e0e0e0e0e0e0e0e0e000e000ffffffffffffffffffffffff007f a1a10000e0e0e0e0e0e0e0e0e0e0e0e00000ffffffffffffffffffffff00 7f7fa100e0e0e0e0e0e0e0e0e0e0e0e0e0e00000ffffffffffffffffffff 007f7f7f00e0e0e04040e0e040e0e0404040e0e0e000ffffffffffffffff ffff007f7f00e0e0e0e0e040e0e040e0e04040e0e0e0e000ffffffffffff ffffff00617f00e0e0e0e0e040e0e0e040e0e040e0e0e0e0e000ffffffff ffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffff ffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000 ffffffffffffffff006100e0e0e0404040e040e0404040e04040e040e0e0 e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 e0e000ffffffffffffffff006100e0e04040e04040e040e040404040e040 e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 e0e0e0e0e000ffffffffffffffff006100e0e040e040e0404040e040e040 40404040e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0 e0e0e0e0e0e0e0e000ffffffffffffffff006100e0e04040e04040e0e040 4040e040e04040e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0 e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffff0000e0e0e0e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffff0000e0e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffff00e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffffff0000 0000000000000000000000000000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: poisoncloud.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image 1d3a1d1d1d1d681d1dffffffff1d001dffffffffffff001d1d681d00ffff ffffffffffff1d686868ffffffff001dffffffffffffffffffffffffffff ffffffff686868ffffffffffffffff00683dffff1d00ffffff001d686868 6800ffffff1d1d001d00ffffffff1d686800001d6868686800ff1d68683d 000e1d001d686868ffffffff1d681d680e461d00ffff1d1d1d1dffffffff ffffffffffff1d3d1d1d001d00ff001d1d1d1dffffffffffffffffffffff ffff1d1d00ffffffffffff1d1d680000ffffffffffffff003d68681dffff 00683d1d68683d00000000000068680068623dffffff1d68681d001d1d3d 6868681d00001d0e1d68686868680000ff003d1d1d00681d680e1dffffff ff1d0e3a3d00ffffffff1d68001d0e1dffffffffffffff0068681dffff1d 1d1dffffffffffffffff1d1dffffffffffff1dffffffff0000ffffffffff ffff686868681dffff001d7b68ffffff0068686868001dff00686868003d 686800ff0000001d3d68686868001d001d68681d001d00003a681d0e1d1d 001d6800681d3dffffff001d0e1d00ffffff0e1d3dffffffffff1d1dffff ffffffffffff1d681dffffffffffffffffffffffffffffffffff0068ffff ff00686868681dffffffffff006868687b1dffffff686868680effffff00 1d0068683d001d1d00ffffffff00681d001d006868680000001d1d1d1d68 681d1d001d1dffffff3d681dffffffff6800ffffff1d1d00ffff3d681dff ff1d1d00ffffffff1d001d0e68680e1d00ffffffffffffffffffffff0068 683a1dffffffffff1d68686800ffff006868680000686868687b683a1dff ffff0068686800ff6868681d1d00ffffffff1d00001d3a0e1d00001d003d 68681dffffff1d0068681d3d1dffffffff1d681dffffff0068ffffffffff ff000e3a0effffffffff1d1dffffff1d0e1d003d686800ffffffffffffff ffffffffffffffffffffff1dffff1d0e6868684600ffffffffffffff0000 686868681d00ffffff0000686868000068461d1d1d1dffff1d68681dff00 68683d00001d3d681d3d68681d1d1d1d68681d1dffffff00680e3a3d1d00 ffff1d6800ffffff1d1d001d6800ffffffff1d68ffffffffff1d3a680eff ffffffffffffffffffffffffffffffffffffffffffff1d00ffffffff1dff ffffffffffffff001d6868681d00ffffff1d6868686800001d681d1dffff ffff1d68460e1d686868681d001d3d6868ffff001d001d006868ff0e00ff ff1d1d683d681d681d68001dffffffff1d1d1d00ffffffffff001d3dffff ffff1d0e68681dff1d1dffffff1d1d1dffffffffffffffffffffffffffff ffffff1dff1d0000ffffffffffff00686846000000001dffffff681d00ff ffff3a6868681dffffffffffffff1d68681d1d1d68ff1d6868001d1d0068 686800ff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-mark.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff00 00ffffffffffffffffffffffffffffffffffff0000000000000000000000 000000ffffffffffffffffffffffffffffffffffff0000ffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffff0000ffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffff0000ffffffffffffffffffffffffffffffffffff0000ff ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff00 00ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffff ffff000000000000000000000000000000ffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffff0000ffffffffffffffffff0000ffff ffffffffffffff00000000ffffffffffff0000ffffffffffffff0000ffff ffffffffffffffff000000000000ffffffffff0000ffffffffff0000ffff ffffffffffffffffffffffffffff000000ffffffff0000ffffff000000ff ffffffffffffffffffffffffffffffffffff0000ffffff0000ffff000000 ffffffffffffffffffffffffffffffffffffffffff0000ffff0000ff0000 00ffffffffffffffffffffffffffffffffffffffffffffff00ffff0000ff 0000ffffffffffffffffffffffffffffffffffffffffffffffffff00ff00 000000ffffffffffffffffffffffffffffffffff00000000000000000000 0000000000000000000000000000ffffffffffffffffff0000ffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sign.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff3f00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00656500ff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 00000000000000000000ffffffffffffffffffffff009393939393939393 939393939393939393939300ffffffffffffffffffff0093ffffffffffff ffffffffffffffffffffff9300ffffffffffffffffffffff0093ffffffff ffffffffffffffffffffffffff9300ffffffffffffffffffff0093ffff00 ffffffff00ffff00ffffffffffff9300ffffffffffffffffffffff0093ff ff00ff00ff00ffff00ff00ff00ffffff9300ffffffffffffffffffff0093 ffff00ff00ffff00ff00ff00ffff00ffff9300ffffffffffffffffffffff 0093ffffffffffffffffffffffffffffffffff9300ffffffffffffffffff ff0093ffffffffffffffffffffffffffffffffff9300ffffffffffffffff ffffff0093ffff00ff00ff00ffff00ffff00ffffffff9300ffffffffffff ffffffff0093ffff00ff00ff00ffff00ffff00ffff00ff9300ffffffffff ffffffffffff0093ffffff00ffffffff00ff00ff000000ffff9300ffffff ffffffffffffff0093ffffffffffffffffffffffffffffffffff9300ffff ffffffffffffffffff0093ffffffffffffffffffffffffffffffffff9300 ffffffffffffffffffff0093939393939393939393939393939393939393 00ffffffffffffffffffffff000000000000000000000000000000000000 000000ffffffffffffffffffffffffffffffffffffff003f659300ffffff ffffffffffffffffffffffffffffffffffffffffffffff003f659365ffff ffffffffffffffffffffffffffffffffffffffffffffffffff003f659300 ffffffffffffffffffffffffffffffffffffffffffffffffffff003f6593 65ffffffffffffffffffffffffffffffffffffffffffffffffffffff003f 659300ffffffffffffffffffffffffffffffffffffffffffffffffffff00 3f659365ffffffffffffffffffffffffffffffffffffffffffffffffffff ff003f659300ffffffffffffffffffffffffffffffffffffffffffffffff ffffff3f659365ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff009300ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sign-e.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 656500ffffffffffffffffffffffffffffffff0000000000000000000000 00000000000000000000000000ffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffffff 00ff00ffffff00ffff00ffffff00ffffffff00ffffffffff00ffff00ffff ff00ffffff0000ffffff00ffffff00ffffffff00ffffffffff00ffffffff ffffffffffffffffffffffffffffffffffffffff00ffffffffffff000000 00000000000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffff003f659365ffffffffffffffffffffffffffffffff ffffffffffffffffffffff003f659300ffffffffffffffffffffffffffff ffffffffffffffffffffffff003f659365ffffffffffffffffffffffffff ffffffffffffffffffffffffffff003f659300ffffffffffffffffffffff ffffffffffffffffffffffffffffff003f659365ffffffffffffffffffff ffffffffffffffffffffffffffffffffff003f659300ffffffffffffffff ffffffffffffffffffffffffffffffffffff003f659365ffffffffffffff ffffffffffffffffffffffffffffffffffffffff003f659300ffffffffff ffffffffffffffffffffffffffffffffffffffffff003f659365ffffffff ffffffffffffffffffffffffffffffffffffffffffffff003f659300ffff ffffffffffffffffffffffffffffffffffffffffffffffff003f659365ff ffffffffffffffffffffffffffffffffffffffffffffffffffff003f6593 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff3f65 9365ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff009300ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sign-w.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 656500ffffffffffffffffffffffffffffffffffffff0000000000000000 0000000000000000000000000000ffffffffffffffff0000ffffffffffff ffffffffffffffffffffffffffffff00ffffffffffff0000ffffff00ffff 00ff00ffffff00ffff00ffff00ffffff00ffffffffffffff00ffffffff00 ff00ffffff0000ffffff00ffff00ffffffff00ffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff 00000000000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffff003f659365ffffffffffffffffffffffffffffffff ffffffffffffffffffffff003f659300ffffffffffffffffffffffffffff ffffffffffffffffffffffff003f659365ffffffffffffffffffffffffff ffffffffffffffffffffffffffff003f659300ffffffffffffffffffffff ffffffffffffffffffffffffffffff003f659365ffffffffffffffffffff ffffffffffffffffffffffffffffffffff003f659300ffffffffffffffff ffffffffffffffffffffffffffffffffffff003f659365ffffffffffffff ffffffffffffffffffffffffffffffffffffffff003f659300ffffffffff ffffffffffffffffffffffffffffffffffffffffff003f659365ffffffff ffffffffffffffffffffffffffffffffffffffffffffff003f659300ffff ffffffffffffffffffffffffffffffffffffffffffffffff003f659365ff ffffffffffffffffffffffffffffffffffffffffffffffffffff003f6593 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff3f65 9365ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff009300ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: statue.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff 007f00ffffffffffffffffffffffffffffffffffffffffffff0000407f00 ffff007f00ffffffffffffffffffffffffffffffffffffffffffff004061 7f00ffff007f00ffffffffffffffffffffffffffffffffffffffffff0040 61617f00ff007f7f00ffffffffffffffffffffffffffffffffffffffffff 0061617f00ffff007f7f00ffffffffffffffffffffffffffffffffff0000 0000000000000000007f7f00ffffffffffffffffffffffffffffffffff00 006161407f7f007f7f7f407f00ffffffffffffffffffffffffffffffffff 0040407f7f7f407f4040407f7f00ffffffffffffffffffffffffffffffff ff00406140407f61407f7f4040404000ffffffffffffffffffffffffffff ffffff00007f00404061617f0000000000ffffffffffffffffffffffffff ffffffffff000000400061617f7f00ffffffffffffffffffffffffffffff ffffffffff0000bf0000004061617f0000ffffffffffffffffffffffffff ffffffffffff00bfbf007f614061617f7f00ffffffffffffffffffffffff ffffffffffffff00bfbfbf00616100007f7f7f00ffffffffffffffffffff ffffffffffffffffff00bfbf00616100bfbf007f0000ffffffffffffffff ffffffffffffffffffff00bfbfbf216100bfbf00007f000000ffffffffff ffffffffffffffffffffffff00bfbf00616100bfbf00407f00bf00ffffff ffffffffffffffffffffffffff0000bf00616100bfbf00407f00bfbf00ff ffffffffffffffffffffffffffffff0000bf006100bfbfbf007f7f00bfbf 00ffffffffffffffffffffffffffffff004000bf000000bfbfbfbf000000 bfbf00ffffffffffffffffffffffffffffff00406100bfbfbfbfbfbfbfbf bfbfbf00ffffffffffffffffffffffffffffff0040406100bfbfbfbfbfbf bfbfbfbfbf00ffffffffffffffffffffffffffffff004061617f00bfbfbf bfbfbfbfbfbf00ffffffffffffffffffffffffffffffff004061617f7f00 00bfbfbfbfbf000000ffffffffffffffffffffffffffffffff0061617f7f 7fa1a10000000000a100ffffffffffffffffffffffffffffffffff006161 7f7fe0a1a1a1bfbfbfa1a100ffffffffffffffffffffffffffffffffffff 007f7f7fe0e0e0e0e0e0e0a100ffffffffffffffffffffffffffffffffff ffff007f7fa1a1e0e0e0e0e0a1a100ffffffffffffffffffffffffffffff ffffffffff007fa1a1a1a1bfbfbfa100ffffffffffffffffffffffffffff ffffffffffffffff0000a1a1bfbfbf0000ffffffffffffffffffffffffff ffffffffffffffffffffffff0000000000ffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: statue2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffff1d40407f1dffffff0000 001dffffffffffffffffffffffffffffffffffffffff1d407fa100ffffff 007fbf00ffffffffffffffffffffffffffffffffff000000a1217fbf7fff ff00407f7f00ffffffffffffffffffffffffffff61000000407f7f7f21a1 00ff00407fa10000ffffffffffffffffffffffffffff007f7f6161617f7f bf00ff00407fa100ffffffffffffffffffffffffffffff00407fa1a16161 7f7fa1a100407fa100ffffffffffffffffffffffffffffffff007fa12121 407f7f7f7fa17f7fa100ffffffffffffffffffffffffffffffffff007fa1 21407f7f7fa17f7f7fa100ffffffffffffffffffffffffffffffffffff00 7fa1407f7f7fa1a1407fa100ffffffffffffffffffffffffff0000000000 00000040a17f7fa1004000a100ffffffffffffffffffffffffffff00bfbf bfbfbf001d407f7fa100407fa100ffffffffffffffffffffffffffff0000 bfbfbfbf7f407f7fbf7fa1407fa100ffffffffffffffffffffffffffffff 0000bfbfbfbf40a17fbf407fbf7fa100ffffffffffffffffffffffffffff ff004000bfbfbf40407f40407f7f7fa100ffffffffffffffffffffffffff ffffff004000bfbf40a17fbfbf40a1bfa10000ffffffffffffffffffffff ffffffff00404000bfbf407f7fbf40a1a1bf00bf00ffffffffffffffffff ffffffffffff00404000bf40407fbfbf40a1bfbfbfbf00ffffffffffffff ffffffffffffff0040404000bfbf407f7fbf4040407fbfbf00ffffffffff ffffffffffffffffff0040404000bfbf4040bfbfbf40bfbfbfbf00ffffff ffffffffffffffffffff004040404000bfbfbfbfbfbfbfbfbfbfbfbf00ff ffffffffffffffffffffffff004040404000bfbfbfbfbfbfbfbfbfbfbfbf 00ffffffffffffffffffffffffff004040404000bfbfbfbfbfbfbfbfbfbf bfbf00ffffffffffffffffffffffffff0040404040000000000000000000 0000000000ffffffffffffffffffffffffff0040404000a1a1a1a1a1a1a1 a1a1a1a1a100ffffffffffffffffffffffffffff0040404000a1a1a1a1a1 a1a1a1a1a1a1a100ffffffffffffffffffffffffffff00404000a1a1a1a1 4040404040a1a1a100ffffffffffffffffffffffffffffff00404000a1a1 a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffffffffffffff004000a1 a1a1a14040404040a1a1a100ffffffffffffffffffffffffffffffff0040 00a1a1a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffffffffffffffff 0000a1a1a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffffffffffffff ffff0000a1a1a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffffffffff ffffffff0000000000000000000000000000ffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 2808 4180 a @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: statue-ruined.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff66444444ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff444444444444ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff66cccccccc44ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff44cc64cc6444 ffffffffffffffbf9cffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff4444 4464cc44ffffffffffffbf9cbfffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff777777777777ffffffffffffbfbfffffff64ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff4444444444777777777744ffffffffff81b6ffffff444464ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff9c449ccc4477777777cc7777ffffff81b6ffffffff444477 647777ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff9c9c4444ccd377cccc777777ffffff81b6ffffff ff447777777777ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff9c44acacd3d3cc7777777777ffff81b6 ff6464bf6444777777778164ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff449c44d3d3ffff7777777777 ffff81b664b64444bf7777777781bf81b6ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff9c44687777ff7777 777777779544b664b644444444bf4477bfbf777764ffffffffffffffffff ffffffffffffffffffffffffffffff8080808080ffffffffff4444777777 77ffff77777777954444b6b681b644444477bf777777777777ffffffffff ffffffffffffffffffffffffffffffffffffff80a1a1a1a1a1ffffff4444 9ccc99ccccccccccff7777957744a6a6a6a644777777bfbf7777777764ff ffffffffffffffffffffffffffffffffffffffffffff8080a1a177a1a1a1 a14444444444777777777777409999777744444444a64477777777777777 777777ffffffffffffffffffffffffffffffffffffffffffffff8080a1a1 a1a1a1a1444444449c44777777777777777777444444a6a6a64477777777 77777777777764ffffffffffffffffffffffffffffffffffffffffffff80 4080a1a1a1a1a1a14444449c64777777777777777777774444a64fa64f44 bf7777777777a1a1a1a177ffffffffffffffffffffffffffffffffffffff ffffff804080a1a1a1a1a144444444447777777777777777777744b64444 444fa64477bfbfbfbfbf77a17764bfffffffffffffffffffffffffffffff ffffffffffff80404080a1a1a1a1a1444444447777777777777777777777 44b64f4f4f804f7777777777777764a1a1a180ffffffffffffffffffffff ffffffffffffffffffff80404080a1a177a1646444449c64777777777777 777777444468684f4f4f4f687777777777777777a1a180ffffffffffffff ffffffffffffffffffffffffff8040404030a1a1a164644444a164777777 77777744444444444495684f4f4f689577777777777777a1a1a140ffffff ffffffffffffffffffffffffffffffffff876c403080a1a164444444a1a1 a1a1a1a1a1a1444444444444959577684f777777807777777777a1a1a1a1 40ffffffffffffffffffffffffffffffffffffff878791304080a1a1a1a1 a1a1a1a1a1a1a1a177a14444a6a64444959577777777778077774f77a1a1 a1a1a177ffffffffffffffffffffffffffffffffffffff87879c9a403080 a1a1a1a1a1a18080a1a1a177a1a144a6a6a6444477777777777777807777 4f4f81a1a1a17740ffffffffffffffffffffffffffffffffffff87879c9c 91404030a1a1a1a177a1a1a1808080a1a1a1a16868684495777777777777 777777774f4f8181a177ffffffffffffffffffffffffffffffffffffff99 879c9c9c7940408077a1a1a1a1a1808080a1806868a1686868686868684f 686868774f7777774f4f6481a177ffffffffffffffffffffffffffffffff ffffff879c879c984d408080a1a1a1a1a1a180a1a1a16877776868684444 686868686868684f4f77774f4f4fa1a1a140ffffffffffffffffffffffff ffffffffffffffff9c87955240408030a1a1a1a1a1a180a1a1a16877bf68 68444444777777777777774f4f7780804f4fa1a1a1a140ffffffffffffff ffffffffffffffffffffffffffff804040803080a1a1a1a1a1a1a1a1a1a1 6877686844444477777777777777774f4f80804f4fa177a1a1a1a140ffff ffffffffffffffffffffffffffffffffffff804040804080a1a1a1a1a177 a1a1a16877bf68684444777777686877778077684f4f4f4f4fa1a1a1a1a1 a1a140ffffffffffffffffffffffffffffffffffffff804080804080a1a1 a1a1a1a1a1a1a16877686844447777776868687777777768a14f4fa1a1a1 a1a1a1a1a1a180ffffffffffffffffffffffffffffffffffffff80408040 4030a1a1a1a1a1a1a1a1a16877686844447777686868688077776868a1a1 a1a1a1a1a1a1a1a1a1a180ffffff646464ffffffffffffffffffffffffff 808080404040a1a1a1a1a1a1a1a16877bfbf444477776868686868807777 6868a1a1a1a1a1a1a1a1a177a1a180ffff6444444464ffffffffffffffff ffffffff808040404080a1a1a1a1a1a1a1a16877bf44447777a1a1a1a1a1 a1808077a1a1a1a1a1a1a1a1a1a1a1a1a1a180ffff6444444464ffffffff ffffffffffffffff808040404080a1a1a1a1a1a1a1a16877444477774444 a1a1a1a1a180807777a1a1a1a1a1a1a1a1a1a1a1a1a180ff6444444444b6 64ffffffffffffffffffffff804030404080a1a140a1a1a1a1a1a177a1a1 a14444a1a1a1a1a1a1a1808077a1a1a1a1a1a1a1a140a1a1a1a180ff6444 444444b664ffffffffffffffffffff30304030309f4040a1a1a1a1a1a1a1 a1a1a1a1a1a144a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 80ff444444449cb6b6ffffffffffffffffff30ff80a89e877c7d30a1a1a1 a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 a1a1a1a180ff444444449cb6ffffffffffffffffffff30a08b7f8170a630 307777a18080808080808030308080808080808080808080808080808080 808080808080808080ffff4444449cacffffffffffffffffff8f8187688d 82403030bf77773077777777777730307777777777777777307777778077 777730777777777777777780ffffffffff9c64acffffffffffffff818e69 7d798040404030bf77303077777777777730300077777777777777303077 77778077777777777777777777777780ffffffffffffffffffffffffff98 c68276ffffff804040807730307740404040407777778077777777403040 30407777778077777777404040404030777780ffffffffffffffffffffff ffffce899bffffffffff8040408077777777777777777777777780777777 7777773077777777778077777777777777303030777780ffffffffffffff ffffffffffffffffffffffffffff80408077777730404040404077777780 7777777740403040407777778077777777404040303077777780ffffffff ffffffffffffffffffffffffffffffffffff804080777730307777777777 777777807777777777777777777777778077777777777730303030777780 ffffffffffffffffffffffffffffffffffffffffffff8080777777773030 307777777777807777777777307777777777778077777777777777777777 307780ffffffffffffffffffffffffffffffffffffffffffffff80807777 777777777777777777778077777777307777777777777780777777777777 77777777777780ffffffffffffffffffffffffffffffffffffffffffffff 808080808080808080808080808080808080808080803080808080808080 80808080308080808080ffffffffffffffffffffffffffffffffffffffff ffff3030ffffffffffffffffff30ffffffffffffffffffffffffffff30ff ffffffffffffffffff30ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff30ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 4257 a(Signs)g(often)g(ha)m(v)m(e)h(messages)h(that)e (migh)m(t)e(clue)i(y)m(ou)h(in)f(on)g(quests)i(and)e(puzzles)i(or)e(ev) m(en)227 4373 y(refer)37 b(y)m(ou)h(to)e(NPCs.)57 b(It)37 b(is)f(y)m(our)h(job)g(as)g(a)f(pla)m(y)m(er)h(to)f(mak)m(e)h(sure)h(y) m(ou)f(read)g(ev)m(ery)h(sign)f(to)227 4489 y(mak)m(e)c(sure)g(y)m(ou)h (do)e(not)h(miss)e(things.)374 4722 y Fw(\017)h Fy(Handles)37 b(and)i(Buttons:)86 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: button-big.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000000000ffffffffffffffffffffffffffffffffffffffffffffff00 007f7f7f7f7f7f7f0000ffffffffffffffffffffffffffffffffffffffff 00407f7f7f7f7f7f7f7f7f6100ffffffffffffffffffffffffffffffffff ff00407f7f7f7f7f7f7f7f7f7f7f6100ffffffffffffffffffffffffffff ffffff007f7f7f7f7fa1a1a17f7f7f7f7f00ffffffffffffffffffffffff ffffffff00407f7f7f7fa17f7f7f617f7f7f7f6100ffffffffffffffffff ffffffffffff00407f7f7fa17f7f7f7f7f617f7f7f6100ffffffffffffff ffffffffffffffff00407f7f7fa17f7f7f7f7f617f7f7fbf00ffffffffff ffffffffffffffffffff00407f7f7fa17f7f7f7f7f617f7f7fbf00ffffff ffffffffffffffffffffffff00407f7f7f7fa17f7f7f617f7f7f7fbf00ff ffffffffffffffffffffffffffff00617f7f7f7f7f6161617f7f7f7f7fbf 00ffffffffffffffffffffffffffffff0061617f7f7f7f7f7f7f7f7f7f7f bfbf00ffffffffffffffffffffffffffffffff0061a17f7f7f7f7f7f7f7f 7fbfe000ffffffffffffffffffffffffffffffffff00a1a1a17f7f7f7f7f 7f7fbfe0bf00ffffffffffffffffffffffffffffffffffff00a1a1a1bfbf bfbfbfbfe0bf00ffffffffffffffffffffffffffffffffffffffff0000a1 bfbfbfbfbfbf0000ffffffffffffffffffffffffffffffffffffffffffff ff00000000000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: button-sma.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff21212121ffffffffffffffffffffffffffffffffffffffff ffffffffffffff214040404021ffffffffffffffffffffffffffffffffff ffffffffffffffff214061616161bf21ffffffffffffffffffffffffffff ffffffffffffffffff214061617f7fa1a1bf21ffffffffffffffffffffff ffffffffffffffffffffff2140617f7f7f7fa1bf21ffffffffffffffffff ffffffffffffffffffffffffff2140617f7f7f7fa1bf21ffffffffffffff ffffffffffffffffffffffffffffff214061a17f7fa1a1bf21ffffffffff ffffffffffffffffffffffffffffffffffff21bfa1a1a1a1bf21ffffffff ffffffffffffffffffffffffffffffffffffffffff21bfbfbfbf21ffffff ffffffffffffffffffffffffffffffffffffffffffffffff21212121ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: handle.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff61bfffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff6161bfffffffffffffffff ffffffffffffffffffffff000000000000ffffff6161bfbfffffffffffff ffffffffffffffffffff0000007f7f7f7fa17f00ff6161bfbfffffffffff ffffffffffffffffffff0000617f61404040404040a16161bfbfffffffff ffffffffffffffffffffff0040614040404040404040406161bfbfffffff ffffffffffffffffffffffff0040614040402121212121212161bfbfffff ffffffffffffffffffffffffffff004040212121217f7f7f7f7fa121bf00 ffffffffffffffffffffffffffffff2121402121617f61000000000000a1 2100ffffffffffffffffffffffffffffff0021214061000000a1a1a1a1a1 a100a100ffffffffffffffffffffffffffffff0021400000a1a1a1a1a1a1 a1a1a1a10000ffffffffffffffffffffffffffffff214000a1a1a1a1a161 e0e0e0a1a1a1a100ffffffffffffffffffffffffffffff0000a1a1a1a17f 61a161a1a1e0a1a1a100ffffffffffffffffffffffffffffff0000a1a1a1 a161a1616161a1e0a1a100ffffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: lever.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffa1a1ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff4061a1ffffffffffffffffffffffffffffff ffffffff2161006100ffffffff40617fffffffffffffffffffffffffffff ffffffff2121406161616100ffff40617fffffffffffffffffffffffffff ffffffffff2121406140404061000040617fffffffffffffffffffffffff ffffffffffff2121404040212121404040617fffffffffffffffffffffff ffffffffffffffff2121402121617f7f2161617fffffffffffffffffffff ffffffffffffffffff2121402161617f7fbfbfbf7fa1ffffffffffffffff ffffffffffffffffffffff2121406161617fbfbfe0e0bfa1ffffffffffff ffffffffffffffffffffffffff21214061617f7fa1bfe0e0bf00ffffffff ffffffffffffffffffffffffffffff21214061617fa1a1bfbfbfbf7fffff ffffffffffffffffffffffffffffffffff21214061617fa1a1a1bfbfbf00 ffffffffffffffffffffffffffffffffffffffff214061617f7fa1a1a1a1 7fffffffffffffffffffffffffffffffffffffffffff004061617f7fa1a1 a1a100ffffffffffffffffffffffffffffffffffffffffffff000061617f 7fa10000ffffffffffffffffffffffffffffffffffffffffffffffffff00 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 4838 a Fz(These)33 b(items)e(can)h(often)g(b)s(e)g (manipulated)e(to)h(op)s(en)h(up)h(new)f(areas)h(of)e(the)h(map.)43 b(In)32 b(the)227 4954 y(case)e(of)f(handles,)h(all)c(a)j(pla)m(y)m(er) g(m)m(ust)g(do)g(is)g(apply)f(the)i(handle.)42 b(In)29 b(the)g(case)h(of)e(buttons,)j(the)227 5070 y(pla)m(y)m(er)h(m)m(ust)f (mo)m(v)m(e)g(items)f(o)m(v)m(er)i(the)f(button)g(to)g("hold")f(it)g (do)m(wn.)43 b(Some)31 b(of)f(the)i(larger)d(but-)227 5186 y(tons)c(ma)m(y)g(need)g(v)m(ery)h(large)e(items)f(to)i(b)s(e)f (mo)m(v)m(ed)i(on)m(to)e(them,)i(b)s(efore)f(they)g(can)g(b)s(e)g (activ)-5 b(ated.)374 5419 y Fw(\017)30 b Fy(Gates)35 b(and)g(lo)s(c)m(k)m(ed)f(do)s(ors:)85 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ldoor1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 000000000000000000ffffffffffffffffffffff00000000000000000000 000000000000000000000000ffffffffffffffffff003a006f6f6f6f6f6f 6f6f6f6f6f6f6f6f6f6f6f6f6f00ffffffffffffffffff003a006f939393 93939393939393939393939393936f00ffffffffffffffff003a006f9393 4242939393939393939393424293936f00ffffffffffffffffff003a006f 42934293429393939393939342934293426f00ffffffffffffffff003a00 4242424242424242939393934242424242424200ffffffffffffffffff00 3a006f42934293429393939393939342934293426f00ffffffffffffffff 003a006f93939342429393933a3a939393934242936f00ffffffffffffff ffff003a006f939393939393583aff003a9393939393936f00ffffffffff ffffff003a006f939393939393933affff003a93939393936f00ffffffff ffffffffff003a006f9393939393933affff00003a93939393936f00ffff ffffffffffff003a006f939393939393933aff00003a93939393936f00ff ffffffffffffffff003a006f939393939393933a00003a5893939393936f 00ffffffffffffffff003a006f9393939393939393933a3a939393939393 6f00ffffffffffffffffff003a006f939393939393939393939393939393 93936f00ffffffffffffffff003a006f9393424293939393939393939342 4293939300ffffffffffffffffff003a006f429342934293939393939393 42934293426f00ffffffffffffffff003a00424242424242424293939393 4242424242424200ffffffffffffffffff003a006f429342934293939393 93939342934293426f00ffffffffffffffff003a006f9393934242939393 9393939393934242936f00ffffffffffffffffff003a006f939393939393 93939393939393939393936f00ffffffffffffffffff00006f6f6f6f6f6f 6f6f6f6f6f6f6f6f6f6f6f6f6f00ffffffffffffffffffffff0000000000 00000000000000000000000000000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: door-0.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000000000ffffff ffffffffffffffffffffffffffffffffffffffffffffff006480806400ff ffffffffffffffffffffffffffffffffffffffffffffffffff3e8ca5ac80 00ffffffffffffffffffffffffffffffffffffffffffffffffff003e8cde a58000ffffffffffffffffffffffffffffffffffffffffffffffffff3e8c 8ca2de4c00ffffffffffffffffffffffffffffffffffffffffffffffffff 3e80acdea58000ffffffffffffffffffffffffffffffffffffffffffffff ff3e64808cdea58000ffffffffffffffffffffffffffffffffffff003e00 3e003e64808c8cdea5803e1d3e003e003e0000ffffffffffffffffff003e 808c8c8c8c8c8c8c8ca2a58c8c8c8c8c8c8c8c8000ffffffffffffffffff 3e64dedea5dededea2dededededea2dedea2dedea58000ffffffffffffff ffff3e8ca5a5a2a5a5a5a5a5a2dedea5a5a5a5a5a5a5a58000ffffffffff ffff000064938c8cac8c8cac8cac80dea58c8cac8cac8c8c8c6400ffffff ffffffff0064a5de8c8c8c8c8c8c808080dea58c8c8c8c808c8c4c0000ff ffffffffffff0064938c8c8c8c8c8c8c808080dea28c8c8c8c8c8c8c48ff ffffffffffffff006493ac8c8c8c8c8c8c8c808080dea5ac8c8c8c8c8c64 3effffffffffffffff3e80a5a28c8c8c8c8c8c80808080a5a28c8c8c8c8c 8c00ffffffffffffffff001d80a58c8c8c8c8c8c8c8080808080a58c8c8c 8c8c8c3effffffffffffffff3e80a28c8c8c8c8c8c8c8080808093a2938c 8c8c8c803e00ffffffffffffffff3e93a5a58c8c8c8c8c8080808080a5de ac8c8c8c8c8000ffffffffffffff000064a58c8c8c8c8c8c808080808093 de8c8c8c8c8c806400ffffffffffffff0064a5a2ac8c8c8c8c8c8c808080 8093dea58c8c8c8c4c0000ffffffffffffff0064a5a58c8c8c8c8c808080 8080a5a2a58c8c8c8c8c48ffffffffffffffffff003e4c3e4c48643e6480 80808080a2de8c4c484c486400ffffffffffffffffffffffffffffffffff 006480808080dea5801dffffffffffffffffffffffffffffffffffffffff ffff0064808080dea5800000ffffffffffffffffffffffffffffffffffff ffffffff0064808080dea58000ffffffffffffffffffffffffffffffffff ffffffffffff00648c8093a2a53e00ffffffffffffffffffffffffffffff ffffffffffffffff00648093deac3effffffffffffffffffffffffffffff ffffffffffffffffffff00808093dea53effffffffffffffffffffffffff ffffffffffffffffffffffff0064a2a5a54c00ffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: odoor-1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00528c0000ffffffffff ffffffffffffffffffffffffffffffffffffffffff0042428c520000ffff ffffffffffffffffffffffffffffffffffffffffffff0042428c528c0000 ffffffffffffffffffffffffffffffffffffffffffffffff008c428c528c 003d00ffffffffffffffffffffffffffffffffffffffffffff008c524242 8c52000000ffffffffffffffffffffffffffffffffffffffffffff008c42 42528c52003d00ffffffffffffffffffffffffffffffffffffffffff0042 528c528c528c003d00ffffffffffffffffffffffffffffffffffffffffff 0042428c528c528c003d00ffffffffffffffffffffffffffffffffffffff ff0042428c528c528c52003d00ffffffffffffffffffffffffffffffffff ffffff008c428c528c528c52003d00ffffffffffffffffffffffffffffff ffffffff008c5242428c528c52003d00ffffffffffffffffffffffffffff ffffffffffff008c4242528c528c52003d00ffffffffffffffffffffffff ffffffffffffffff00528c528c5242428c003d00ffffffffffffffffffff ffffffffffffffffffff00528c528c4242528c003d00ffffffffffffffff ffffffffffffffffffffffff008c528c528c428c003d3d00ffffffffffff ffffffffffffffffffffffffffff008c528c528c4242003d00ffffffffff ffffffffffffffffffffffffffffffff00528c528c4242003d3d00ffffff ffffffffffffffffffffffffffffffffffff00528c528c5242003d00ffff ffffffffffffffffffffffffffffffffffffffff008c5242428c003d3d00 ffffffffffffffffffffffffffffffffffffffffffff008c4242528c003d 00ffffffffffffffffffffffffffffffffffffffffffffff00528c428c00 3d3d00ffffffffffffffffffffffffffffffffffffffffffffff00528c42 42003d00ffffffffffffffffffffffffffffffffffffffffffffffff008c 4242003d3d00ffffffffffffffffffffffffffffffffffffffffffffffff 008c5242003d00ffffffffffffffffffffffffffffffffffffffffffffff ffff00528c003d3d00ffffffffffffffffffffffffffffffffffffffffff ffffffff00528c003d00ffffffffffffffffffffffffffffffffffffffff ffffffffffff008c003d3d00ffffffffffffffffffffffffffffffffffff ffffffffffffffff008c003d00ffffffffffffffffffffffffffffffffff ffffffffffffffffffff00003d3d00ffffffffffffffffffffffffffffff ffffffffffffffffffffffff003d3d00ffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 275 @llx 380 @lly 337 @urx 411 @ury 226 @rwi 113 @rhi @setspecial %%BeginDocument: wall-large-door.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 380 337 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 380.64 translate 61.44 30.72 scale 64 32 8 [ 64 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff0000000000000000000000ffffffffffff00 000000000000000000000000000000000000000000000000000000000000 0000000000ffffffffffffffffff00005252655252526552525200ffffff ff0000526552525265525252655252526552525265525200005252526552 52526552525265525200ffffffffffffffff000065658352656583526565 00ffffff0000656583526565835265658352656583526565835265000052 656583526565835265658352650000ffffffffffffff0000838383658383 8365838300ffff0065838383836583838365838383658383836583838365 8300006583838365838383658383836583838300ffffffffff0083000000 000000000000000000ff0065525252000000000000000000000000000000 000000000000000000000000000000000000000000525200ffffffffff00 830065833f5265833f526500ffff00653f0000833f5265833f5265833f52 65833f5265833f526500005265833f5265833f5265833f5265000000ffff ffff0083005265833f5265833f526500ff006552005265833f5265833f52 65833f5265833f5265833f526500005265833f5265833f5265833f526583 000000ffffff00830052833f5265833f526500ffff0065005265833f5265 833f5265833f5265833f5265833f526500005265833f5265833f5265833f 5265833f520000ffff0083005265833f5265833f526500ff0065003f5265 833f5265833f5265833f5265833f5265833f526500005265833f5265833f 5265833f5265833f526500ffff00830052653f5265833f526500ffff0065 005265833f5265833f5265833f5265833f5265833f526500005265833f52 65833f5265833f5265833f52658300ff0083005265833f5265833f526500 ff0065003f5265833f5265833f5265833f5265833f5265833f5265000052 65833f5265833f5265833f5265833f52658300ff0083005265835265833f 526500ffff0065005265833f5265833f5265833f5265833f5265833f5265 00005265833f5265833f5265833f5265833f52658300ff0083005265833f 5265833f526500ff0065003f5265833f5265833f5265833f5265833f5265 833f526500005265833f5265833f5265833f5265833f52658300ff008300 5265833f65833f526500ffff0065005265833f5265833f5265833f526583 3f5265833f526500005265833f5265833f5265833f5265833f52658300ff 0083005265833f5265833f526500ff0065003f5265833f5265833f526583 3f5265833f5265833f526500005265833f5265833f5265833f5265833f52 658300ff0083005265833f52833f526500ffff0065005265833f5265833f 5265833f5265833f5265833f526500005265833f5265833f5265833f5265 833f52658300ff0083005265833f5265833f526500ff0065003f5265833f 5265833f5265833f5265833f5265833f526500005265833f5265833f5265 833f5265833f52658300ff0083005265833f52653f52650042ff00650052 42833f5265833f5265833f5265833f5265833f526500005265833f526583 3f5265833f5265834252658300ff0083005265833f5265833f5265004242 424242424242425265833f5265833f5265833f5265833f52650000526583 3f5265833f5265833f5265834242424242424283005265833f5265835265 00ff42424242424283425265833f5265833f5265833f5265833f52650000 5265833f5265833f5265833f5265833f52424242424242005265833f5265 833f526500ff0065003f5265833f5265833f5265833f5265833f5265833f 526500005265833f5265833f5265833f5265833f52428300ff0042005265 833f5265833f6500ffff0065005265833f5265833f5265833f5265833f52 65833f526500005265833f5265833f5265833f5265833f52658300ff0083 005265833f5265833f526500ff0065003f5265833f5265833f5265833f52 65833f5265833f526500005265833f5265833f5265833f5265833f526583 00ff0083005265833f5265833f5200ffff0065005265833f5265833f5265 833f5265833f5265833f526500005265833f5265833f5265833f5265833f 52658300ff0083005265833f5265833f526500ff0065003f5265833f5265 833f5265833f5265833f5265833f526500005265833f5265833f5265833f 5265833f52658300ff0083005265833f5265833f526500ff000000000000 000000000000000000000000000000000000000000000000000000000000 000000000000000000000000ff00000000000000000000000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 219 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: cwallsec.118.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff000000000000000000000000000000000000 0000000000000000000000000000a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a17fa17fa17fa17fa17fa17fa17f a17fa17fa17fa17fa17fa17fa17fa17fa17f7fa17fa17fa17fa17fa17fa1 7fa17fa17fa17fa17fa17fa17fa17fa17fa17fa100000000000000000000 00000000000000000000000000000000000000000000e0e0e0e0bfe0a1bf e0e0e0e0e0bfe0e0e0e0e0bfe0e0e0e0e0bfe0e0e0bfe0a1a1a1a1bfa1a1 a1a1a1a1a1a1bfa1a1a1a1a1bfa1a1a1a1a1bfa1a1a1bfa1a1a1e0e0bfe0 e0a1e0e0e0e0e0bfe0e0e0e0e0bfe0e0e0e0e0bfe0e0e0bfe0e0a1e0bfe0 a1bfe0a1bfbfbfbfe0a1bfbfbfbfe0a1bfbfbfbfe0a1bfbfe0a1bfe0a1bf a1bfa1a1a1a1a1a1a1a1bfa1a1a1a1a1bfa1a1a1a1a1bfa1a1a1bfa1a1a1 a1a1e0e0e0e0a1e0e0e0bfe0e0e0bfe0e0e0e0e0bfe0e0bfe0e0bfe0e0e0 e0a1e0e0bfbfbfa1a1bfbfe0a1bfbfe0a1bfbfbfbfe0a1bfe0a1bfe0a1bf bfbfa1a1bfbfa1a1a1a1a1a1a1bfa1a1a1bfa1a1a1a1a1bfa1a1bfa1a1bf a1a1a1a1a1a1a1a1e0e0a1e0e0e0e0e0bfe0e0e0e0e0bfe0e0bfe0e0e0e0 e0bfe0e0e0a1e0e0bfe0bfe0a1bfbfbfbfe0a1bfbfbfbfe0a1bfe0a1bfbf bfbfe0a1bfbfe0a1bfe0a1bfa1a1a1a1a1a1a1bfa1a1a1a1a1bfa1a1bfa1 a1a1a1a1bfa1a1a1a1a1a1bfa1a1e0a1e0e0bfe0e0bfe0e0e0e0e0bfe0e0 e0e0bfe0e0bfe0e0e0bfa1e0bfe0e0e0a1bfbfe0a1bfe0a1bfbfbfbfe0a1 bfbfbfe0a1bfe0a1bfbfe0a1bfe0a1bfbfbfa1a1a1bfa1a1bfa1a1a1a1a1 bfa1a1a1a1bfa1a1bfa1a1a1bfa1a1bfa1a1a1a100000000000000000000 00000000000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: earthwall.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff2263536363636363636363636363636363636363636363636363 ffffffffff2281b3b3927982928282828282828292828282828282928282 92925322ffff2279b3d3d392929279829292928292828282929282928279 928279799253ffff79bad3c7d3c7d3b382aad3c7c7c7d3ba82aad3c7c7d3 b382baaa6382828263ff92c7d3c7c7d3ae92b3d3c7d3c7d3d3d379aad3d3 d39e92bad3c79e82799279ff3881bac7c7d39e82c7d3c7c7c7c7b39e9eb3 c7c7c7aa9ed3c7d3c782798263ff8263b3d3c7c79282c7c7c7c7c7d3ae82 c7d3c7c7c7d3d3c7c7c7aa79798263ff79bac7c7c7927992c7d3c7c7c7c7 c7c7d3c7c7c7c7c7c7d3d39e7982798263ff82bad3d3d3ba9282c7c7c7c7 c7d3ae92c7c7c7c7c7d3ae92baba9e82799263ff82c7baaac7d3aa82c7d3 c7c7c7d3ae92c7c7c7c7c7d3ae92bad3ba82798263ff82ba9e82c7d39e82 c7c7bac7c7c7d3d3c7c7c7d3c7c7d3d3c7d3b382799263ff82799ed3c7d3 9e82c79292d3c7c7c7c7c7c7c7c7c7c7c7c7d3d3ba79798263ff829ebad3 c7d39e82c7baaed3c7c7c7c7c7d3d3c7c7c7c7c792aec782799263ff79c7 d3c7d3b39e9ec7d3d3c7c7c7c7c7d3aeaec7c7c7d3c79e9e9e82798263ff 82b3c7c7c7829ed3c7c7c7c7c7c7c7c7c7929ec7d3c7c7c7d3ae79827982 63ff8279aeba82b3ae82c7d3c7c7c7c7d3c792aec7c7c7c7c7c7d3c7ae82 799263ff799ebac7aed39e82c7c7c7d3c7c7c7c7aeaed3c7c7c7c7c79eae c782639263ff82c7d3c7b3d39e82c7d3baaec7c7c7c7d3c7c7c7c7c7d3ba 9eaeba82799263ff79b3d3b382baae82c7d3ae82c7d3c7c7c7c7c7c7c7c7 c7c7c7d3ae82798263ff82c7aa82bad39e82c7d3babac7c7c7c7c7c7c7d3 c7c7c7c7c7d3ba82829263ff82c7baaad3d3b39e9ebad3d3d3c7d3d3c7d3 ba9ec7d3d3d3d3ae9282798263ff539ec7d3c7bad3c77992baaeb3aeaeae aeb3ae92aeaeaeaeb3ae8282828263ff8263aac7c7c7d3ba828282828282 828292829eba9282928282aeba82799263ff63aac7c7c7d3ae82bababaae 7992babaaebaae92aeb3aeb3aec7b382639263ff92c7d3c7d3ae92aad3d3 d3d3aec7d3d3d3b392aec7d3d3d3d3d3baae828263ff79aed3c7b382aad3 c7b3b3c7bac7c7c7d3929ed3d3b3bac7c7bad3c7928263ff82bad3b382b3 d3c7d3829ec782aed3bac7c7c7c7d39e92c7d3c7d3ba928263ff82c7ae82 b3c7d3c7c7bac7ba829ed3c7c7d3ba92b3bababa9eaec7c7baae63ff389e aeaad3d3b3aec7d3d3aeaebad3d3d3b39eaebad3d3d392aed3d3c78238ff ff389ec7baba9282b3c78263b3c7b3baba9282bac7b3bab36392bab38222 22ffffff3882828282828292828282828282828282828282928282829282 22ffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gard-gate.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ff00ffffffffffffffffffffffff00ffffff00ffffff00ffffffffff0000 ff000000ffffffffffffffffffffff0000ffff0000ffff0000ffffff0000 ff00009200ffffffffffffffffffffff000000ff000000ff000000ffff00 ff000092385200ffffffffffffffffffffffff00ffffff00ffffff00ffff ff00009238529200ffffffffffffffffffffffff00000000000000000000 ffff003838529238520000ffffffffffffffffffffff00ffffff00ffffff 00ffffff0052923852920000ffffffffffffffffffffffffffffff00ffff ff00ffffff0092385292385200ffffffffffffffffffffffff00ffffff00 ffffff00ffffff00529238529200ffffffffffffffffffffffffff00ffff 00ffffff000000000092385292385200ffffffffffffffffffffffff00ff ffff00ffffff00ffffff00529238529200ffffffffffffffffffffffffff 00ffff00ffffff00ffffff0092385292385200ffffffffffffffffffffff ff00ffffff00ffffff00ffffff00529238529200ffffffffffffffffffff ffffff00ffff00ffffff00ffffff0092385292380000ffffffffffffffff ffffffff00ffffff00ffffff00ffffff003892385200ffffffffffffffff ffffffffffff00ffffffffffff00000000009252380000ffffffffffffff ffffffffffffff00ffffff00ffffff00ffffff00389200ffffffffffffff ffffffffffffffffff00ffffff00ffff00ffffff00920000ffffffffffff ffffffffffffffffffff00ffffff00ffffff00ffffff0000ffffffffffff ffffffffffffffffffffffff00ffffff00ffff00ffffff0000ffffffffff ffffffffffffffffffffffffff00ffffff00ffff0000ffffffffffffffff ffffffffffffffffffffffffffffff00000000000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: grate-1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00bf000000bf000000bf0000 00bf000000bf000000bfffffffffffffffffffff407f0000407f0000407f 0000407f0000407f0000407fffffffffffffffffffff61a1000061a10000 61a1000061a1000061a1000061a1ffffffffffffffffffff000000000000 00000000000000000000000000000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: grate-2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff004000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff007f00ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff004000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff007f00ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff004000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff007f00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff004000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff007f00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff004000ffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: grate-2.118.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffff40ff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff007f0040ffffffffffffffff ffffffffffffffffffffffffffffffffffffffff40ff407fffffffffffff ffffffffffffffffffffffffffffffffffffffffff007f007fffffffffff ffffffffffffffffffffffffffffffffffffffffffffff406140ff00ffff ffffffffffffffffffffffffffffffffffffffffffffffff007f007f0040 ffffffffffffffffffffffffffffffffffffffffffffffffffff40ff40ff 407fffffffffffffffffffffffffffffffffffffffffffffffffff007f00 7f007fffffffffffffffffffffffffffffffffffffffffffffffffffff40 ff406140ff00ffffffffffffffffffffffffffffffffffffffffffffffff 007f007f007f0040ffffffffffffffffffffffffffffffffffffffffffff ffff406140ff40ff407fffffffffffffffffffffffffffffffffffffffff ffffff007f007f007f007fffffffffffffffffffffffffffffffffffffff ffffff000040ff40ff406140ffffffffffffffffffffffffffffffffffff ffffffffff00007f007f007f007f00ffffffffffffffffffffffffffffff ffffffffffffff004000406140ff40ff40ffffffffffffffffffffffffff ffffffffffffffffff007f007f007f007f007fffffffffffffffffffffff ffffffffffffffffffffff000040ff40ff406140ffffffffffffffffffff ffffffffffffffffffffffffff00007f007f007f007fffffffffffffffff ffffffffffffffffffffffffffffff004000406140ff40ffffffffffffff ffffffffffffffffffffffffffffffffff007f007f007f007fffffffffff ffffffffffffffffffffffffffffffffffffff000040ff40ff40ffffffff ffffffffffffffffffffffffffffffffffffffffff00007f007f007fffff ffffffffffffffffffffffffffffffffffffffffffffff004000406140ff ffffffffffffffffffffffffffffffffffffffffffffffffff007f007f00 7fffffffffffffffffffffffffffffffffffffffffffffffffffff000040 ff40ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 007f007fffffffffffffffffffffffffffffffffffffffffffffffffffff ff00400040ffffffffffffffffffffffffffffffffffffffffffffffffff ffffff007f007fffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000040ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00007fffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff004000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff007f00ffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: iron-gate1.118.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000000000000000 0000000000000000000000000000ffffffffffffffff0061616161616161 61616161616161616161616161616100ffffffffffffffff210000000000 000000000000000000000000000000000000ffffffffffffff00007f7f7f 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f00ffffffffffffffff21217f 7f217f7f7f217f7f7f217f7f7f217f7f7f217f7f00ffffffffffffff0021 7f7fff217f7fff217f7fff217f7fff217f7fff217f00ffffffffffffffff 21217f61617f7f61617f7f61617f7f61617f7f61617f7f00ffffffffffff ff00007f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f00ffffffffff ffffff21217f7f217f7f7f217f7f7f217f7f7f217f7f7f217f7f00ffffff ffffffff00217f7fff217f7fff217f7fff217f7fff217f7fff217f00ffff ffffffffffff21217f61617f7f61617f7f61617f7f61617f7f61617f7f00 ffffffffffffff00007f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 00ffffffffffffffff21217f7f217f7f7f217f7f7f217f7f7f217f7f7f21 7f7f00ffffffffffffff00217f7fff217f7fff217f7fff217f7fff217f7f ff217f00ffffffffffffffff21217f61617f7f61617f7f61617f7f61617f 7f61617f7f00ffffffffffffff00007f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 7f7f7f7f7f7f00ffffffffffffffff21217f7f217f7f7f217f7f7f217f7f 7f217f7f7f217f7f00ffffffffffffff00217f7fff217f7fff217f7fff21 7f7fff217f7fff217f00ffffffffffffffff21217f61617f7f61617f7f61 617f7f61617f7f61617f7f00ffffffffffffffff007f7f7f7f7f7f7f7f7f 7f7f7f7f7f7f7f7f7f7f7f7f00ffffffffffffffffff217f7f217f7f7f21 7f7f7f217f7f7f217f7f7f217f7f00ffffffffffffffffff000000000000 0000000000000000000000000000000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: odoorm2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 00ffffffffffffffffffffffffffffffffffff00000f0000000000000000 0000000000ffffffffffffffffffffffffffff00000f00000f0f2b0f0f18 090318090f0f0000ffffffffffffffffffffffff000f00000f15422b1542 18093018093030150f0000ffffffffffffffffffff000f000f152b15422b 09301809421809301815420f00ffffffffffffffffff000f000f152b1542 2b09301809422b15301809302b150f00ffffffffffffff000f000f15422b 15301809302b15422b15301809302b150f00ffffffffffffff0015001542 2b15301809302b15422b15422b09301809420f00ffffffffffff0015000f 15421809301815422b15302b15422b09301809420f00ffffffffffff0015 0015424209304215422b1530180942421542420930180f00ffffffffff00 1500424242424242424242180930180942424242424242424200ffffffff ff000900424242094242154218093018093042154242153042424200ffff ffff0009000309302b15422b09301809421809301815422b1530180300ff ffffffff00090009302b15422b09301809422b15301809302b15422b0903 00ffffffff0009000315422b15301809302b15422b15301809302b15422b 0300ffffffffff00150015422b15301809302b15422b15422b0930180942 2b150f00ffffffff0015000f15421809301815422b15302b15422b093018 09422b0f00ffffffffff00150015421809301815422b15301809422b1542 18093018150f00ffffffff0015000f093042094242154218093018094242 1542420930180f00ffffffffff0009004242424242424242420930180930 42424242424242424200ffffffff00090042423042154242093018094218 0930421542421530424200ffffffffff00090009302b15422b0930180942 2b15301809302b15422b090300ffffffffff09000315422b15301809302b 15422b15301809302b15422b0300ffffffffffff150015422b1530180930 2b15422b15422b09301809422b150f00ffffffffffff000f0f0f03030303 0f0f0f0f030f0f0f0f030303030f0f0f00ffffffffffffff000000000000 00000000000000000000000000000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sdoor.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000ffffffffffffff ffffffffffffffffffffffffffffffffffff00000000adad00ffffffffff ffffffffffffffffffffffffffffffffffff00000000ad948400ffffffff ffffffffffffffffffffffffffffffffffffffff0000adadb5947300ffff ffffffffffffffffffffffffffffffffffffffffff007300adb5b57300ff ffffffffffffffffffffffffffffffffffffffffffffff00730084847384 00ffffffffffffffffffffffffffffffffffffffffffffff007300adadad ad00ffffffffffffffffffffffffffffffffffffffffffffffff007300ad adadbd00ffffffffffffffffffffffffffffffffffffffffffffff007300 84bdbdbd00ffffffffffffffffffffffffffffffffffffffffffffffff00 73009c9c9c8400ffffffffffffffffffffffffffffffffffffffffffffff 0073009cadadad8c00ffffffffffffffffffffffffffffffffffffffffff ffff0073009cadadad00ffffffffffffffffffffffffffffffffffffffff ffffff0073008c9cadadad00ffffffffffffffffffffffffffffffffffff ffffffffff0073008484848400ffffffffffffffffffffffffffffffffff ffffffffffff007300947b739c8400ffffffffffffffffffffffffffffff ffffffffffffffff007300bdda73ad00ffffffffffffffffffffffffffff ffffffffffffffffff007300adadad94ad00ffffffffffffffffffffffff ffffffffffffffffffffff007300adadad8400ffffffffffffffffffffff ffffffffffffffffffffffff007300adadadad9400ffffffffffffffffff ffffffffffffffffffffffffffff007300a5adadad00ffffffffffffffff ffffffffffffffffffffffffffffff0073007b8494bdb500ffffffffffff ffffffffffffffffffffffffffffffffff007300848cb5ad00ffffffffff ffffffffffffffffffffffffffffffffffff007300bd9cadbdbd00ffffff ffffffffffffffffffffffffffffffffffffffff007300ad73adad0000ff ffffffffffffffffffffffffffffffffffffffffffff00007300000000ff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sdoor.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 000000000000000000ffffffffffffffffffffff00000000000000000000 000000000000000000000000ffffffffffffffffff008200adb5b5739cad bdb57b8294bdb5947badadb5b500ffffffffffffffffff00820082827382 adadadbd828cb5adbd82737382827300ffffffffffffffff008200adadad adad9cadadbd9cadbdbdbd949cadadad00ffffffffffffffffff008200ad adadbdbdbdadadad73adadadbd9473adadad00ffffffffffffffff008200 82bdbdbd82738c63ad8c8cbdbdbd948282bdbd00ffffffffffffffffff00 82009c9c9c8273adadbdbddb7b63bdb582739c9c9c00ffffffffffffffff 0082009cadadad8c9cadadadadad949cbdadca9cadad00ffffffffffffff ffff0082009cadadadad73adadadadbd829cadad949cadad00ffffffffff ffffff0082008c9cadadadbd8cb5bda5bdbd82adadbd8c9cad00ffffffff ffffffffff00820082828282ad9482738263737b7badbd9482828200ffff ffffffffffff008200947b739c82adbd73caa5bde7e77b7b0000007300ff ffffffffffffffff008200bddb73adadcaa59cadadadadadbd739c000073 00ffffffffffffffff008200adadad94adadadad94adadadadadbd9c0000 ad00ffffffffffffffffff008200adadad8294adadada5a5adadadad8200 00adad00ffffffffffffffff008200adadadad94adadadadad9482adadbd 82adadad00ffffffffffffffffff008200a5adadad949cadadadb5947363 73947ba5adad00ffffffffffffffff0082007b8294bdb5947badadb5b573 9cadbdb57b829400ffffffffffffffffff008200828cb5adbd8273738282 7382adadadbd828cb500ffffffffffffffff008200bd9cadbdbdbd949cad adadadad9cadadbd9cad00ffffffffffffffffff008200ad73adadadbd94 73adadadbdbdbdadadad73ad00ffffffffffffffffff0000ad8c8cbdbdbd 948282bdbdbd82738c63ad8c8c00ffffffffffffffffffffff0000000000 00000000000000000000000000000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 124 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: spike.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff00ed00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff00ed00ffffffffffffffffffffffffffffff ffffffffffffffffffff00000000ed00ffffffffffffffffffffffffffff ffffffffffffffffffff000034343400ed0000ffffffffffffffffffffff ffffffffffffffffffffff00002f2f00a4d2ed000000ffffffffffffffff ffffffffffffffffffffffffff002b2b2b00a4d2ed003400ffffffffffff ffffffffffffffffffffffffffff0027272700a4d2ed002f343400ffffff ffffffffffffffffffffffffffffffff0023232300a4d2ed002f2f3400ff ffffffffffffffffffffffffffffffffffff002000a4a4b8d2ed002b2f34 00ffffffffffffffffffffffffffffffffffffff001d00a4a4b8d2ed002b 2f3400ffffffffffffffffffffffffffffffffffffff0000a4a4b8d2ed00 272b2f3400ffffffffffffffffffffffffffffffffffffffff00a4a4b8d2 ed00272b2f00ffffffffffffffffffffffffffffffffffffffffff0000ac b8d2ed00272b0000ffffffffffffffffffffffffffffffffffffffffffff 0000b8d2ed00270000ffffffffffffffffffffffffffffffffffffffffff ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 125 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: stwallsec.118.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000000000000000000000000000000000000000000000 000000000000000000007f00007f00000000007f00007f0000007f000000 007f00007f00000000007f7fbf007fbf007f7f7f7fbf007fbf007f7fbf00 7f7f7fbf007fbf007f7f7f7fbfbfbf7fbfbf7fbfbfbfbfbf7fbfbf7fbfbf bf7fbfbfbfbf7fbfbf7fbfbfbfbf00000000000000000000000000000000 00000000000000000000000000000000bfbfbf7fbfbfbfbfbfbfbfbf7fbf bfbfbfbf7fbfbfbfbfbf7fbfbfbfbfbfbf7f7f7fbf007f7f7f7f7f7f7fbf 007f7f7f7fbf007f7f7f7fbf007f7f7f7f7fbf007fbf007f7f7f7f7f7f7f bf007f7f7f7fbf007f7f7f7fbf007f7f7f7f7fbf007f007f000000000000 00007f00000000007f00000000007f0000000000007f0000bfbf7fbfbfbf bfbfbfbf7fbfbfbfbfbfbf7fbfbfbfbfbf7fbfbfbfbfbf7fbfbf7fbf007f 7f7f7f7f7fbf007f7f7f7f7fbf007f7f7f7fbf007f7f7f7fbf007f7fbf00 7f7f7f7f7f7fbf007f7f7f7f7fbf007f7f7f7fbf007f7f7f7fbf007f7f7f 7f000000000000007f0000000000007f00000000007f00000000007f0000 0000bfbfbfbfbfbfbfbf7fbfbfbfbfbf7fbfbfbf7fbfbfbfbfbfbfbfbf7f bfbfbfbf7f7f7fbf007f7fbf007f7f7f7fbf007f7fbf007f7f7f7f7f7f7f bf007f7f7f7f7f7fbf007f7fbf007f7f7f7fbf007f7fbf007f7f7f7f7f7f 7fbf007f7f7f7f7f00007f0000007f00000000007f0000007f0000000000 0000007f000000000000bfbfbfbfbfbf7fbfbfbfbfbf7fbfbfbfbfbf7fbf bfbfbfbfbf7fbfbfbfbfbfbf7f7f7f7f7fbf007f7f7f7fbf007f7f7f7fbf 007f7f7f7f7fbf007f7f7f7f7f7f7f7f7f7fbf007f7f7f7fbf007f7f7f7f bf007f7f7f7f7fbf007f7f7f7f7f7f7f000000007f00000000007f000000 00007f0000000000007f0000000000000000bfbfbfbf7fbfbfbfbfbfbfbf bfbf7fbfbfbf7fbfbfbfbf7fbfbfbfbfbfbfbf7f7f7f7fbf007f7f7f7f7f 7f7f7fbf007f7fbf007f7f7fbf007f7f7f7f7f7fbf007f7fbf007f7f7f7f 7f7f7f7fbf007f7fbf007f7f7fbf007f7f7f7f7f7fbf007f00007f000000 0000000000007f0000007f000000007f000000000000007f000000000000 00000000000000000000000000000000000000000000000000000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 5535 a @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: wdoor.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000ffffffffffffff ffffffffffffffffffffffffffffffffffff000000004f4f00ffffffffff ffffffffffffffffffffffffffffffffffff0000004f4f694f4fffffffff ffffffffffffffffffffffffffffffffffffffff0000694f4f4f4f00ffff ffffffffffffffffffffffffffffffffffffffffff0033004f4f694f4fff ffffffffffffffffffffffffffffffffffffffffffffff0033694f4f4f4f 00ffffffffffffffffffffffffffffffffffffffffffffff0033004f4f69 4f4fffffffffffffffffffffffffffffffffffffffffffffffff0033694f 4f4f4f00ffffffffffffffffffffffffffffffffffffffffffffff003300 4f4f694f4fffffffffffffffffffffffffffffffffffffffffffffffff00 33694f4f4f4f00ffffffffffffffffffffffffffffffffffffffffffffff 003300694f69e24f00ffffffffffffffffffffffffffffffffffffffffff ffff0033694f4fe2e2e2ffffffffffffffffffffffffffffffffffffffff ffffff003300694f694fe200ffffffffffffffffffffffffffffffffffff ffffffffff0033004f4f694f00ffffffffffffffffffffffffffffffffff ffffffffffff003300694f694f4f00ffffffffffffffffffffffffffffff ffffffffffffffff0033004f4f694f00ffffffffffffffffffffffffffff ffffffffffffffffff003300694f694f4f00ffffffffffffffffffffffff ffffffffffffffffffffff003300694f694f00ffffffffffffffffffffff ffffffffffffffffffffffff003300694f694f4f00ffffffffffffffffff ffffffffffffffffffffffffffff003300694f694f00ffffffffffffffff ffffffffffffffffffffffffffffff003300694f694f4f00ffffffffffff ffffffffffffffffffffffffffffffffff003300694f694f00ffffffffff ffffffffffffffffffffffffffffffffffff003300694f694f4f00ffffff ffffffffffffffffffffffffffffffffffffffff003300694f694f0000ff ffffffffffffffffffffffffffffffffffffffffffff00004f00000000ff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: wdoor.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 000000000000000000ffffffffffffffffffffff00000000000000000000 000000000000000000000000ffffffffffffffffff0033004f694f4f694f 4f694f4f694f4f694f4f694f6900ffffffffffffffffff0033004f4f4f69 4f4f694f4f694f4f694f4f694f4f6900ffffffffffffffff0033004f694f 4f694f4f694f4f694f4f694f4f694f6900ffffffffffffffffff0033004f 4f4f694f4f694f4f694f4f694f4f694f4f6900ffffffffffffffff003300 4f694f4f694f4f694f4f694f4f694f4f694f6900ffffffffffffffffff00 33004f4f4f694f4f694f4f694f4f694f4f694f4f6900ffffffffffffffff 0033004f694f4f694f4f694f4f694f4f694f4f694f6900ffffffffffffff ffff0033004f4f4f694f4f694f4f694f4f694f4f694f4f6900ffffffffff ffffff0033004f694f4f694f4f694f4f694f4f694f4f694f6900ffffffff ffffffffff0033004f4f4f694f4f694f4f694f4f69e24f694f4f6900ffff ffffffffffff0033004f694f4f694f4f694f4f694f4fe2e2e2694f6900ff ffffffffffffffff003300694f4f694f4f694f4f694f4f694fe2694f4f69 00ffffffffffffffff003300694f4f694f4f694f4f694f4f694f4f694f4f 6900ffffffffffffffffff003300694f4f694f4f694f4f694f4f694f4f69 4f4f6900ffffffffffffffff003300694f4f694f4f694f4f694f4f694f4f 694f4f6900ffffffffffffffffff003300694f4f694f4f694f4f694f4f69 4f4f694f4f6900ffffffffffffffff003300694f4f694f4f694f4f694f4f 694f4f694f4f6900ffffffffffffffffff003300694f4f694f4f694f4f69 4f4f694f4f694f4f6900ffffffffffffffff003300694f4f694f4f694f4f 694f4f694f4f694f4f6900ffffffffffffffffff003300694f4f694f4f69 4f4f694f4f694f4f694f4f6900ffffffffffffffffff0000694f4f694f4f 694f4f694f4f694f4f694f4f6900ffffffffffffffffffffff0000000000 00000000000000000000000000000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 5651 a Fz(Gates)34 b(are)f(often)h(tied)g(to)f(a)h (handle)g(or)f(button)h(and)g(can)g(only)g(b)s(e)g(op)s(ened)g(b)m(y)h (manipu-)227 5768 y(lating)h(the)j(the)f(handle/button.)60 b(Do)s(ors)38 b(that)g(are)g(lo)s(c)m(k)m(ed)h(can)f(either)g(b)s(e)h (smashed)f(do)m(wn)1948 6057 y(14)p eop end %%Page: 15 19 TeXDict begin 15 18 bop 227 333 a Fz(b)m(y)35 b(attac)m(king)f(the)h (do)s(or,)f(b)m(y)h(using)f(k)m(eys)i @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: key2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff40404040ffffffffff ffffffffffffffffffffffffffffffffffffffffffff404040000000ffff ffffffffffffffffffffffffffffffffffffffffffffff404000ffff0000 ffffffffffffffffffffffffffffffffffffffffffffffff00000000ffff 7f00ffffffffffffffffffffffffffffffffffffffffffffffff0000ffff ffff7f00ffffffffffffffffffffffffffffffffffffffffffffffff007f ffffffff7f00ffffffffffffffffffffffffffffffffffffffffffffffff 00007f7f7f7f000000ffffffffffffffffffffffffffffffffffffffffff ffffff000000000000bf0000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00bf0000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00bf0000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00bf0000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00bf0000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00bf0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00bf0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f40 400000ffffffffffffffffffffffffffffffffffffffffffffffffffff7f 404040400000ffffffffffffffffffffffffffffffffffffffffffffffff 7f404040404000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff7f4000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff7f00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 129 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bagpipe.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff000000000000000000ffffffffff ffffffffffffffffffffffffffffffff0000000000adadadad0000000000 0000000000ffffffffffffffffffffffff0000adadadadadadad00000000 00000000000000ffffffffffffffffffffffff00adadadadadadadad0000 000000ad00ffffffffffffffffffffffffffffff0000adadadadadadadad ad00adadadad000000ffffffffffffffffffffffffff00adadadadadadad adadadadadadadadadad0000ffffffffffffffffffffffff00adadadadad adadadadad00adadadadadadad0000ffffffffffffffffffffff00adadad adadadadadad00adadadadadadadadad0000ffffffffffffffffffff0000 00000000adadad000000adadadadadadadadad0000ffffffffffffffffff 00000000ff0000ad00000000adadadadadadadadadad00ffffffffffffff ffff00000000ffff00ad0000000000adadadadadadadadad0000ffffffff ffffffff00000000ff00adadad0000000000adadadadadadadadad00ffff ffffffffffffff0000ffff00adadadadad00000000adadadadadadadad00 ffffffffffffffffff0000ffff00adadadadadad00000000adadadadadad ad00ffffffffffffffffff0000ffff00adadadadadadad00000000adadad adadad00ffffffffffffffffff0000ffff00adadadadadadadad00000000 adadadadad00ffffffffffffffffff0000ffff00adadadadadadadadad00 000000adadadad00ffffffffffffffffff0000ffff00adadadadadadadad adad00000000adadad00ffffffffffffffffff0000ffff00adadadadadad adadadadad0000adadadad00ffffffffffffffffff0000ffff00adadadad adadadadadadad00adadadad0000ffffffffffffffffff0000ffffff00ad adadadadadadadadadadadadad0000ffffffffffffffffffff0000ffffff 00adadadadadadadadadadadadadad00ffffffffffffffffffffff0000ff ffffff00adadadadadadadadadadadad0000ffffffffffffffffffff0000 0000ffffffff00000000000000000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 128 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: key1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff1e1e1effffffffffffffffffffffffffffffffffffffffffffffffffff ffff1e1e1e1e1effffffffffffffffffffffffffffffffffffffffffffff ffffffff1e1eff1e1effffffffffffffffffffffffffffffffffffffffff ffffffffffff1e1eff1e1e1e1e1e1e1e1e1e1e1e1effffffffffffffffff ffffffffffffffff1e1eff1e1ebdbdbdbdbdbdbdbdbd1effffffffffffff ffffffffffffffffffff1e1eff1e1e1e1e1e1e1e1e1e1e1e1effffffffff ffffffffffffffffffffffff1e1eff1e1effffffffff1ebdbd1effffffff ffffffffffffffffffffffffffff1e1e1e1e1effffffffff1e1e1e1effff ffffffffffffffffffffffffffffffffff1e1e1effffffffffff1effff1e ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 163 w(whic)m(h)f(can)f(b)s(e)h(found)f(throughout)g(the) 227 449 y(game,)e(or)g(b)m(y)i(pic)m(king)e(the)h(lo)s(c)m(k.)374 682 y Fw(\017)f Fy(Pits:)42 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: trapdoor-1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000000000000000000000000ffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffff00000000ffffffffffffffffffffff00 00ffffffffffff0000000000000000ffffffff0000ffffffffffffffff00 0000ffffffffffff00003e683e3e683e1d00ffffffff000000ffffffffff 0000ffffffffffffff00003ebfffbfffbfff7f0000ffffffffff0000ffff ffff00ffffffffffffffff007fbf3e0ebfbf683e7fbf00ffffffffffff00 ffffffff00ffffffffffffffff00bfbf0000bfbf00007fbf00ffffffffff ff00ffffffff00ffffffffffffffff003ebf683e7f7f683e7fbf00ffffff ffffff00ffffffff0000ffffffffffffff00003ebfff7f3effbf7f0000ff ffffffffff00ffffffffff0000ffffffffffffff000068bfffbfff7f1d00 ffffffffffff0000ffffffffffff0000ffffffffffffff00007f7f7f7f00 00ffffffffffff0000ffffffffffffffff0000ffffffffffffff00000000 0000ffffffffff000000ffffffffffffffffffff000000000000ffffffff ffffffff000000000000ffffffffffffffffffffffffffffffffff000000 00000000000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 798 a Fz(Pits)30 b(can)h(b)s(e)g(do)s(orw)m(a)m(ys)g (to)g(new)g(areas)g(of)f(the)h(map)f(to)s(o,)g(but)h(b)s(e)g(careful,)f (for)g(y)m(ou)i(could)227 914 y(fall)f(do)m(wn)i(in)m(to)f(a)g(pit)g (full)e(of)i(ghosts)i(or)e(dragons)g(and)h(not)f(b)s(e)h(able)f(to)g (get)h(bac)m(k)g(out!)374 1146 y Fw(\017)f Fy(Break)38 b(a)m(w)m(a)m(y)g(w)m(alls:)k @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: earthwall.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff2263536363636363636363636363636363636363636363636363 ffffffffff2281b3b3927982928282828282828292828282828282928282 92925322ffff2279b3d3d392929279829292928292828282929282928279 928279799253ffff79bad3c7d3c7d3b382aad3c7c7c7d3ba82aad3c7c7d3 b382baaa6382828263ff92c7d3c7c7d3ae92b3d3c7d3c7d3d3d379aad3d3 d39e92bad3c79e82799279ff3881bac7c7d39e82c7d3c7c7c7c7b39e9eb3 c7c7c7aa9ed3c7d3c782798263ff8263b3d3c7c79282c7c7c7c7c7d3ae82 c7d3c7c7c7d3d3c7c7c7aa79798263ff79bac7c7c7927992c7d3c7c7c7c7 c7c7d3c7c7c7c7c7c7d3d39e7982798263ff82bad3d3d3ba9282c7c7c7c7 c7d3ae92c7c7c7c7c7d3ae92baba9e82799263ff82c7baaac7d3aa82c7d3 c7c7c7d3ae92c7c7c7c7c7d3ae92bad3ba82798263ff82ba9e82c7d39e82 c7c7bac7c7c7d3d3c7c7c7d3c7c7d3d3c7d3b382799263ff82799ed3c7d3 9e82c79292d3c7c7c7c7c7c7c7c7c7c7c7c7d3d3ba79798263ff829ebad3 c7d39e82c7baaed3c7c7c7c7c7d3d3c7c7c7c7c792aec782799263ff79c7 d3c7d3b39e9ec7d3d3c7c7c7c7c7d3aeaec7c7c7d3c79e9e9e82798263ff 82b3c7c7c7829ed3c7c7c7c7c7c7c7c7c7929ec7d3c7c7c7d3ae79827982 63ff8279aeba82b3ae82c7d3c7c7c7c7d3c792aec7c7c7c7c7c7d3c7ae82 799263ff799ebac7aed39e82c7c7c7d3c7c7c7c7aeaed3c7c7c7c7c79eae c782639263ff82c7d3c7b3d39e82c7d3baaec7c7c7c7d3c7c7c7c7c7d3ba 9eaeba82799263ff79b3d3b382baae82c7d3ae82c7d3c7c7c7c7c7c7c7c7 c7c7c7d3ae82798263ff82c7aa82bad39e82c7d3babac7c7c7c7c7c7c7d3 c7c7c7c7c7d3ba82829263ff82c7baaad3d3b39e9ebad3d3d3c7d3d3c7d3 ba9ec7d3d3d3d3ae9282798263ff539ec7d3c7bad3c77992baaeb3aeaeae aeb3ae92aeaeaeaeb3ae8282828263ff8263aac7c7c7d3ba828282828282 828292829eba9282928282aeba82799263ff63aac7c7c7d3ae82bababaae 7992babaaebaae92aeb3aeb3aec7b382639263ff92c7d3c7d3ae92aad3d3 d3d3aec7d3d3d3b392aec7d3d3d3d3d3baae828263ff79aed3c7b382aad3 c7b3b3c7bac7c7c7d3929ed3d3b3bac7c7bad3c7928263ff82bad3b382b3 d3c7d3829ec782aed3bac7c7c7c7d39e92c7d3c7d3ba928263ff82c7ae82 b3c7d3c7c7bac7ba829ed3c7c7d3ba92b3bababa9eaec7c7baae63ff389e aeaad3d3b3aec7d3d3aeaebad3d3d3b39eaebad3d3d392aed3d3c78238ff ff389ec7baba9282b3c78263b3c7b3baba9282bac7b3bab36392bab38222 22ffffff3882828282828292828282828282828282828282928282829282 22ffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: hedge.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0a0affffff0a0affffffffff ffffffffffffffffffffffffffffffff0000000a6d30000000505500ffff ff00ffffffffffffffffffffffffff00000a505055686d5d425068686d50 00000a500a0000ffffffffffffffffff003030306d7b68305d7b7b6d3050 7b6830425d6d30301d00ffffffffffffffff00507b6d6d681d0a68685d5d 17427b687b5d5d6d6d7b680affffffffffffffff0000307b6d1d1d7b7b17 1d6d686868687b1d177b6d687b680affffffffffffff0000307b1d17307b 1d30687b687b501d68681d1d6d4217300000ffffffffff0a301d1d420000 1d301d3050426d681d171d7b5d1d30421d00301d00ffffffff1d681d0017 000a170a7b3017005d1d000a0a307b6d17305d0a5d3000ffffffffff0a00 000000506868686d300000170a68686868686d1d0a681d1700ffffffffff 0000305000427b6d686d684230425d7b6d6d6d687b50506d5d1dffffffff ff0a301d1d421d506d686d68687b7b7b6d686850506868687b68501dffff ffffff1d681d171d687b68685d6868685d6868687b17176d6d686868170a ffffffffff00000030686d68685d17427b5d17307b686d1d0a6d6d686868 7b3000ffffffff0a420a0a42686d7b6800307b68305d68687b5d5d686868 686830170affffffff0a5d42170a5d5042421d506d687b7b686842425068 685d7b68301700ffffffffff005d420068301717687b68685d5d7b5d1717 1d6d7b685d687b3000ffffffffff000a0a0a6868505d68687b6817427b68 5d5d6868687b501f684200ffffffff0a5d00005d5d7b7b6d686850173050 68687b423068365d5d001d1d00ffffffff0a5d3030686d50506d6d7b421d 6d7b6d7b501d307b1d304200ff17ffffffffffff005d301768171d6d6868 686d6868685d17307b686d3000ffffffffffffffffffff0a17000a0a0017 0a17426d5d360a17000a170a5d3600ffffffffffffffffffffff0a001f36 0a003600175d5d1700003617001f4b1700ffffffffffffffffffffff001f 5d5d361f5d0a175d5d1f0a1736170a5d5d3617ffffffffffffffffffff00 365d4b4b5d4b0000175d4b5d360a0a00175d4b5d360affffffffffffffff 003636170a4b5d0a0036360a4b5d3600ff1f5d5d1f171f4b17ffffffffff ffff003617ff00171700001f170a4b5d170aff17361f0aff0a360affffff ffffffff000affffff0000ffff0aff0a361700ffff0a0000ffffff0000ff ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 1263 a Fz(Are)35 b(a)f(common)f(o)s(ccurrence)j(in)d Fx(Cross\034re)p Fz(.)51 b(These)36 b(t)m(yp)s(e)g(of)e(w)m(alls)f(can) i(b)s(e)g("destro)m(y)m(ed")227 1379 y(b)m(y)41 b(attac)m(king)e(them.) 65 b(Th)m(us,)43 b(sometimes)c(it)f(ma)m(y)i(b)s(e)g(w)m(orth)g(a)f (pla)m(y)m(er's)i(time)d(to)h(test)i(the)227 1495 y(w)m(alls)32 b(of)g(a)g(map)g(for)g(\020secret)h(do)s(ors\021.)374 1728 y Fw(\017)f Fy(Fire)37 b(w)m(alls:)85 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bul-wall-0.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image cacaca80486448644864486448644864486448644864486448644864a5ca cacacacae2a5a5a5a5a5caa5a5a5caa5a5a5caa5a5a5caa5a5a5caa5a5a5 cacacacacacaa53affffffff00ffffff00ffffff00ffffff00ffffff00ff ff0048e2caca64a54880a564000000000000000000000000000000000000 00000000ff48caca484848e2e2ca48644800486448644864486448644864 48644848000000ff64a54848e2cacacae2ca4848cae2e2e2e2e2e2e2e2e2 e2e2e2e2e2ca4800000000a54848cacacacacaff48e2cacacacacacacaca cacacacacacacacaa548000000a5643aa5cacacaac3a64cacacacacacaca cacacacacacacacacacacaff000000a54848cacacacaca4848e2cacacaca cacacacacacacacacacacacaca480000ffa564ffcacacacacaff48cacaca cacacacacacacacacacacacacacacaff000000a54848cacacacaca4848e2 cacacacacacacacacacacacacacacacaca3e000000a564ffcacacae2a548 48cacacacacacae26448cacacacacacacacacaff000000a54848cacacaca caff48e2cacacacaca64484848cacacacacacacaca3e000000a564ffa5a5 a5a5a54864cacacacacae24848a548a5cacacacacacacaff000000a54848 ca3a0048caff48e2cacacacacaca483acacacacacacacacaac480000ffa5 64ffa54800ffa54848cacacacacacae2caa5cacacacacacacacacaff0000 00a54848ca6448a5caff64e2cacacacacacacacacacacacacacacacaca48 000000a564ffcae2e2caca4848cacacacacacacacacacacacacacacacaca caff000000a54848cacacacacaff48e2cacacacacacacacacacacacacaca cacaca3e000000a564ffcacacacaca4848cacacacacacacacacacacacaca cacacacacaff000000a54848cacacacaa5ff64e2cacacacacacacacacaca cacacacacacaca3e0000ffa564ffcacacacae24848a5cacacacacacacaca cacacacacacacacaa5ff000000a54848cacacacacaca4848cacacacacaca cacacacacacacacacaa50000000000a564ffa5cacacacae24800ffff3eff ff3effffff3effffff3effffa53e000000a54848cacacaa5486448a54848 48644848646448486464484864a5a5ff000000a564ffcacae2a5ffff48e2 cae2cae2cacaa5cacae2cae2cae2cacaca64ff0000a54848cacacaa500ff 64e2cacacacacaff0048cacacacacacacacacaca4800ffa564ffcae264ff a5a5cacacacacacaca4800ffcacacacacacacacacae2640000a54848ca48 48a5cacacacacacacacaca6448a5cacacacacacacacacacaa548ffa5643a a54864e2cacacacacacacacacae2e2cacacacacacacacacacacaca6448a5 64a5ffa5e2caa5cacacacacacaa5cacaa5cacaa5cacacacacacacaca483a cacacacaa548ffff48ffff3effff48ff3eff48ff48ff48ff3effff3eff3a 48a5caca currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: earthwall.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff2263536363636363636363636363636363636363636363636363 ffffffffff2281b3b3927982928282828282828292828282828282928282 92925322ffff2279b3d3d392929279829292928292828282929282928279 928279799253ffff79bad3c7d3c7d3b382aad3c7c7c7d3ba82aad3c7c7d3 b382baaa6382828263ff92c7d3c7c7d3ae92b3d3c7d3c7d3d3d379aad3d3 d39e92bad3c79e82799279ff3881bac7c7d39e82c7d3c7c7c7c7b39e9eb3 c7c7c7aa9ed3c7d3c782798263ff8263b3d3c7c79282c7c7c7c7c7d3ae82 c7d3c7c7c7d3d3c7c7c7aa79798263ff79bac7c7c7927992c7d3c7c7c7c7 c7c7d3c7c7c7c7c7c7d3d39e7982798263ff82bad3d3d3ba9282c7c7c7c7 c7d3ae92c7c7c7c7c7d3ae92baba9e82799263ff82c7baaac7d3aa82c7d3 c7c7c7d3ae92c7c7c7c7c7d3ae92bad3ba82798263ff82ba9e82c7d39e82 c7c7bac7c7c7d3d3c7c7c7d3c7c7d3d3c7d3b382799263ff82799ed3c7d3 9e82c79292d3c7c7c7c7c7c7c7c7c7c7c7c7d3d3ba79798263ff829ebad3 c7d39e82c7baaed3c7c7c7c7c7d3d3c7c7c7c7c792aec782799263ff79c7 d3c7d3b39e9ec7d3d3c7c7c7c7c7d3aeaec7c7c7d3c79e9e9e82798263ff 82b3c7c7c7829ed3c7c7c7c7c7c7c7c7c7929ec7d3c7c7c7d3ae79827982 63ff8279aeba82b3ae82c7d3c7c7c7c7d3c792aec7c7c7c7c7c7d3c7ae82 799263ff799ebac7aed39e82c7c7c7d3c7c7c7c7aeaed3c7c7c7c7c79eae c782639263ff82c7d3c7b3d39e82c7d3baaec7c7c7c7d3c7c7c7c7c7d3ba 9eaeba82799263ff79b3d3b382baae82c7d3ae82c7d3c7c7c7c7c7c7c7c7 c7c7c7d3ae82798263ff82c7aa82bad39e82c7d3babac7c7c7c7c7c7c7d3 c7c7c7c7c7d3ba82829263ff82c7baaad3d3b39e9ebad3d3d3c7d3d3c7d3 ba9ec7d3d3d3d3ae9282798263ff539ec7d3c7bad3c77992baaeb3aeaeae aeb3ae92aeaeaeaeb3ae8282828263ff8263aac7c7c7d3ba828282828282 828292829eba9282928282aeba82799263ff63aac7c7c7d3ae82bababaae 7992babaaebaae92aeb3aeb3aec7b382639263ff92c7d3c7d3ae92aad3d3 d3d3aec7d3d3d3b392aec7d3d3d3d3d3baae828263ff79aed3c7b382aad3 c7b3b3c7bac7c7c7d3929ed3d3b3bac7c7bad3c7928263ff82bad3b382b3 d3c7d3829ec782aed3bac7c7c7c7d39e92c7d3c7d3ba928263ff82c7ae82 b3c7d3c7c7bac7ba829ed3c7c7d3ba92b3bababa9eaec7c7baae63ff389e aeaad3d3b3aec7d3d3aeaebad3d3d3b39eaebad3d3d392aed3d3c78238ff ff389ec7baba9282b3c78263b3c7b3baba9282bac7b3bab36392bab38222 22ffffff3882828282828292828282828282828282828282928282829282 22ffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: firechest.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00000000000000ffffffffffffffffffffffffffffffff ffff0000000000000000000000000000000000ffffffffffffffffffffff ffffffff0000000000000000000000000000000000ffffffffffffffffff ff00000000000000000000000000000000000000000000ffffffffffffff 000000003e1d000000000000000000000000000000000000000000ff0000 0000000000648064000000000000000000000000000000000000000000ff 000000000000003e1d3e641d000000000000000000000000000000000000 00ff0000003e1d000000003e933e0000000000000000000000000000483e 483e00ff0000006464003e000000483e00000000000000001d003e1d3e3e 9393936400ff000000649393801d00001d64480000000000000064938093 6493939393641dff0000001d649393936464009348000048806464649393 939393643e1d3e1d00ff000000003e483e9393933e936448489393939393 64484848483e0000000000ff000000000000004864939393939393936493 64933e00000000000000000000ff000000000000001d003e64939393931d 001d00000000000000000000000000ff000000000000000000001d93641d 3e00000000000000000000000000000000ff000000000000000000000064 3e000000000000000000000000000000000000ff00000000000000000000 00933e000000000000000000000000000000000000ff0000000000000000 0000006448000000000000000000000000000000000000ff000000000000 00000000007f48000000000000000000000000000000000000ffffffffff 00000000000000804800000000000000000000000000ffffffffffffffff ffffffff000000001d483e00000000000000ffffffffffffffffffffffff ffffffffffff0000000000000000000000000000ffffffffffffffffffff ffffffffffffffffffffff00000000000000ffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: lbull-wall.101.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffff000000000000000000000000000000000000000000000000000000ff ffffffff0000000000000000000000000000000000000000000000000000 00ffffff0000000000000000000000000000000000000000000000000000 0000000000ff000000644800000000000000000000000000000000000000 00000000000000ff3e0048a5480000481d00644864486448644864486448 64486448000000000000481da5ca48481d646448cae2e2e2e2e2e2e2e2e2 e2e2e2e2e2a5480000000000483ea5a5a5a5a51d64e2cacacacacacacaca cacacacacacacacaca1d00000000481da5a5a5a5a54848cacacacacacaca cacacacacacacacacacaca4800000000483ea5a5a5a5a50048e2cacacaca cacacacacacacacacacacacaca1d000000004800a5a5a5a5a54848cacaca cacacaa5a5a5a5cacacacacacacaac48000000004848a5a5a5a5a51d64e2 cacacacaca1d001d00a5cacacacacacaca1d000000004800a5a5a5a5a51d 48cacacacaa548004880001d64cacacacacaca48000000004848a5484864 a51d64e2cacacaa50048caa51d0048e2cacacacaca1d00000000481d8048 001d804848cacacacaa51d48a564001d64cacacacacaac48000000004848 a51d0048a51d48e2cacacaa51d1d1d00000048e2cacacacaca1d00000000 481d643e001d804848cacacacacaa51d00001d64cacacacacacaca480000 00004848a51d003ea51d48e2cacacacaca80486448e2cacacacacacaca1d 00000000481da5481d48804848cacacacacacacae2e2e2cacacacacacaca ac4800000000483e80a5a5a5a51d48e2cacacacacacacacacacacacacaca cacaca1d00000000481da5a5a5a5a54848cacacacacacacacacacacacaca cacacacaca4800000000483ea5a5a5a5a50048e2cacacacacacacacacaca cacacacacacaca1d00000000481da5a5a5a5a54848a5cacacacacacacaca cacacacacacacaca803e00000000483ea5a5a5a5a5a54848cacacacacaca cacacacacacacacacaa51d00000000004800a5a5a5801da548001d1d1d3e 1d1d003e1d1d3e1d1d1d1d48a51d000000004848a5a5644800484848643e 4848646464486448486464486448481d00000000481da5a54800000048a5 a5accae2cacaa5a5a5cae2cae2cae2ca000000000000483ea5a5481d0000 0048a5cacacaca1d1d1d1da5cacacacacaa51d00000000004800a5ca4800 00001da5a5cacacaca48000000a5cacacacacacaa5ac480000004848a548 48484848a5cacacacacaa51d000000a5cacacacacacacacaa5480000481d 484864a5caa5cacacacacacaca48481d48a5cacacacacacacae2a5a50000 00001d64a5a5a5a5cacacacacacacacaa5caa5cacacacacacaa5caca481d 00000000001d481d3e1d3e1d3e1d1d3e1d481d481d481d1d3e1d1d481d48 1d0000ff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: light-wall.101.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffff000000000000000000000000000000000000000000000000000000ff ffffffff0000000000000000000000000000000000000000000000000000 00ffffff0000000000000000000000000000000000000000000000000000 0000000000ff00000048a564000000000000000000000000000000000000 00000000000000ff3e0048a5a5a548484800486448644864486448644864 486448480000000000004848a5a5a5a5a5a54848cae2e2e2e2e2e2e2e2e2 e2e2a5e2e2ca480000000000481da5a5a5a5a51d48e2cacacacacacacaca cacacaa51da5cacaa54800000000641da5a5a5a5a51d64cacacacacacaca caa548a5801da5cacacaca1d00000000483ea5a5a5a5a53e48e2cacacaca cacaa548004848a5cacacacaca48000000004800a5a5a5a5a51d48cacaca cacacaa5481d003a48cacacacacaca1d000000004848a5a5a5a5a51d64e2 cacacacaca4848a51da5e2cacacacacaca3e000000004800a5a5a5a5a548 48cacacacaa54848cacaa5cacacacacacacaca1d000000004848a5a5a5a5 a50064e2cacacaa548e2e2cacacacacacacacacaca3e00000000481da564 a564a54848cacacacae2e2cacacacacacacacacacacaca1d00000000483e a51d0048a51d48e2cacacacacacacacacacacacacacacacaca3e00000000 481d803e001d644848cacacacacacacacacacacacacacacacacaac1d0000 00004848a5484864a51d64e2cacacacacacacacacacacacacacacacaca48 00000000481da5a5a5a5a54848cacacacacacacacacacacacacacacacaca ca1d00000000483ea5a5a5a5a51d48e2cacacacacacacacacacacacacaca cacaca3e00000000481da5a5a5a5a54848cacacacacacacacacacacacaca cacacacaca1d00000000483ea5a5a5a5a50048e2cacacacacacacacacaca cacacacacacaca3e00000000481da5a5a5a5a54848a5cacacacacacacaca cacacacacacacacaa51d00000000483ea5a5a5a5a5a54848cacacacacaca cacacacacacacacacaa50000000000004800a5a5a5a5a5ca48001d3e1d00 3e1d1d1d3e1d1d1d3e1d1d3a803e000000004848a5a5a5a5484848484848 4848486464644864644848646480ca1d00000000481da5a5a564000048ca a5a5a5cae2a5a5a5cacae2cae2cacae2ca481d000000483ea5a5a5641d1d 48a5a5cacacaca481d48cacacacacacacacacaca64000000481da5a54848 6480a5a5a5cacacaca1d001dcacacacacacacacacae248000000483ea548 4848caa5a5caa5cacacaca8048a5cacacacacacacacacacaa5480000481d 484864a5a5a5cacacacacacacae2cacacacacacacacacacacae2a5a50000 00001d80a5a5a5a5a5cacacacacacaa5cacaa5cacacacacacacacaca481d 00000000001d1d1d1d3e1d1d3e1d3e1d481d481d481d1d3e1d1d3e1d1d48 1d0000ff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: speedbwall.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffff0000000000000000000000000000000000000000000000000000 00ffffffffff000000000000000000000000000000000000000000000000 000000ffffff000000000000000000000000000000000000000000000000 000000000000ffff00000000000000000000000000000000000000000000 00001d64a58000000000000000000048486448644864481d484864486448 481d484864cae2ca481d00000000000048a5e2e2e2e2e2e2a51d48cae2e2 e2e2e24848a5e2cacacaca48000000000048a5cacacacacacaa500000048 a5cacacacaca4848cacacacaca1d00000000001dcacacacaca483e1d00a5 4800481d64cacae2481dcacacacaa548000000000048cacacaca481d1d64 48caa548481d4864e2ca4848cacacacaca1d00000000001dcacacaa5001d 80cae2cacae2e2481d1dcae2641dcacacacaca48000000000048accacaa5 1da5cacacacacacacaca6448a5ca4848cacacacaca1d00000000001dcae2 4848a5ca4848cacacaa548a5ca4848ca641da5cacacaa548000000000048 a5643a48cacaa54848caa54848a5e2a51d481d48cacacacaca1d00000000 001dca48001da5cae2ca3aca4848cae2ca64001d1d1dcacacacaca480000 00000048caca641d00a5caa5cacacacacaca481d1dac6448a5e2cacaca1d 00000000001dcacaca641da5801d481d481d3aa5641da5ca481dcacacaca a548000000000048cacacaa500484848000000006448481dcaca4848caca cacaca1d00000000001da5cae2a5481d48a5481d4848a5481d48cae2641d cacacacaca48000000000048cacacacaa51d1d48a5cacaa51d0048cacaca 4848a5cacacaca1d00000000001dcacacacae2a5a5801d481d1da5a5caca cae2481dcacacacaa548000000000048cacacacacacae2a5481d3e64caca cacacaca641dcacacacaca1d00000000001d80cacacacacacae2e24864ca e2cacacacaca4848cacacacaca480000000000001da5cacacacacaaccaca cacacacacacaa51d64e2cacacacaca1d00000000001da5481d1d3e1d1d1d 3e1d1d3e1d1d1d1d481d48cacacacacaa54800000000003eac6448644864 64484864484864646448486448a5cacacacaca1d000000001d48cae2e2e2 cae2cae2e2e2e2e2e2cae2cae2e2a53aa5cacacaca480000000064cacaca cacacacacacacacacacacacacacacacaca801da5cacaca1d0000001d48ca cacacacacacacacacacacacacacacacacacacacaa54848caa54800000048 a5e2cacacacacacacacacacacacacacacacacacacacaca4848a5ca1d0000 1d64cacacacacacacacacacacacacacacacacacacacacacae2e2a53a643e 0000000048cacacacacacacacaaccacaaccacacacaa5cacaa5cacaa5caa5 1d00ffff00001d481d3e1d3e1d1d481d481d481d3e1d481d481d481d481d 481d0000 currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 1844 a Fz(Will)30 b(sho)s(ot)i(missiles)e(\(including) h(bullets,)g(ligh)m(tning,)g(etc.\))43 b(at)32 b(pla)m(y)m(ers.)45 b(Some)32 b(\034rew)m(alls)227 1960 y(can)h(b)s(e)g(destro)m(y)m(ed)i (while)c(others)i(cannot.)374 2193 y Fw(\017)f Fy(Spinners)38 b(and)g(Directors:)85 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: spinner.11B.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00000000000000ff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00 ff0000ffffffffffffffffffffffffffffffffffffff0000ffffffffffff ff00ffffff0000ffffffffffffffffffffffffffffffff00ff00ffffffff ffffff00ffffffffff00ffffffffffffffffffffffffffff00ffffff00ff ffffffff00ffffffffffffff00ffffffffffffffffffffffffff00ffffff ff00ffffffff00ffffffffffff0000ffffffffffffffffffffffff00ffff ffffff00ffffffff00ffffffffff00ffff00ffffffffffffffffffffff00 ffffffffffff00ffff00ffffffff0000ffffff00ffffffffffffffffffff 00ffffffffffffffff00ff00ffffff00ffffffffffff00ffffffffffffff ffff00000000ffffffffffff0000ffff00ffffffffffffff00ffffffffff ffffffff00ffffff000000ffffff00000000ffffffffffffffff00ffffff ffffffffffff00ffffffffffff00000000ff00000000ffffffffffff00ff ffffffffffffffff00ffffffffffffffff00000000ffffff000000ffffff 00ffffffffffffffffff00ffffffffffffff00ffff0000ffffffffffff00 000000ffffffffffffffffff00ffffffffffff00ffffff00ff00ffffffff ffffffff00ffffffffffffffffffff00ffffff0000ffffffff00ffff00ff ffffffffff00ffffffffffffffffffffff00ffff00ffffffffff00ffffff ff00ffffffffff00ffffffffffffffffffffffff0000ffffffffffff00ff ffffff00ffffffff00ffffffffffffffffffffffffff00ffffffffffffff 00ffffffffff00ffffff00ffffffffffffffffffffffffffff00ffffffff ff00ffffffffffffff00ff00ffffffffffffffffffffffffffffffff0000 ffffff00ffffffffffffff0000ffffffffffffffffffffffffffffffffff ffff0000ff00ffffffffff0000ffffffffffffffffffffffffffffffffff ffffffffffff00000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: director.181.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff1d1dffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff1d1d1d1dffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff1dff1d1d1dffffffffffff ffffffffffffffffffffffffffffffffffffffffff1d1d1d1dff1d1dffff ffffffffffffffffffffffffffffffffffffffffffffffff1d1dffff1d1d 1d1dffffffffffffffffffffffffffffffffffffffffffffffff1dffff1d 1d1dffff1d1dffffffffffffffffffffffffffffffffffffffffffffff1d 1d1d1dffff1d1d1d1d1dffffffffffffffffffffffffffffffffffffffff ff1d1d1dffff1d1d1dffff1d1d1dffffffffffffffffffffffffffffffff ffffffff1dffff1d1d1dffff1d1d1dff1d1dffffffffffffffffffffffff ffffffffffff1dff1d1d1dffff1d1d1dffff1d1d1d1dffffffffffffffff ffffffffffffffffff1d1d1dffff1d1d1dffff1d1d1dffff1d1dffffffff ffffffffffffffffffffff1d1dffff1d1d1dffff1d1d1dffff1d1d1d1dff ffffffffffffffffffffffffffff1dff1d1d1dffff1d1d1dffff1d1d1d1d ffffffffffffffffffffffffffffffff1d1d1d1dffff1d1d1dffff1d1d1d 1dffffffffffffffffffffffffffffffffffff1d1dffff1d1d1dffff1d1d 1d1dffffffffffffffffffffffffffffffffffffff1dffff1d1d1dffff1d 1d1d1dffffffffffffffffffffffffffffffffffffffffff1d1d1d1dffff 1d1d1d1dffffffffffffffffffffffffffffffffffffffffffff1d1d1dff ff1d1d1d1dffffffffffffffffffffffffffffffffffffffffffffffff1d ffff1d1d1d1dffffffffffffffffffffffffffffffffffffffffffffffff ff1dff1d1d1d1dffffffffffffffffffffffffffffffffffffffffffffff ffffffff1d1d1d1dffffffffffffffffffffffffffffffffffffffffffff ffffffffffff1d1d1dffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff1dffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 2309 a Fz(These)34 b(o)s(dd)e(items)f(will)f(c)m (hange)k(the)e(direction)g(of)g(an)m(y)h(item)e(\035ying)h(o)m(v)m(er)h (them,)f(suc)m(h)i(as)227 2425 y(missile)d(w)m(eap)s(ons)i(and)g(sp)s (ells.)227 2812 y Fy(Section)k(3.2.)h(Matters)f(of)g(life)f(and)j (death)227 3031 y(3.2.1.)f(A)m(ttac)m(k)e(system)227 3211 y Fz(Ev)m(ery)63 b(time)d(y)m(ou)i(mak)m(e)f(an)g(attac)m(k,)69 b(y)m(our)62 b(attac)m(k)f(is)g(classi\034ed)g(with)g(one)g(or)g(more) 227 3328 y(\020attac)m(kt)m(yp)s(es\021.)105 b(F)-8 b(or)52 b(example,)57 b(an)c(attac)m(k)g(made)f(with)h(a)f(ordinary)g(sw)m(ord) i(results)f(in)227 3444 y(the)47 b(attac)m(k)g(b)s(eing)e(made)h(with)f (the)i(attac)m(kt)m(yp)s(e)g(of)f(\020ph)m(ysical\021.)83 b(F)-8 b(or)45 b(another)i(example,)227 3560 y(if)d(a)h(Mage)g(attac)m (ks)h(with)f(a)g(\034reball)e(sp)s(ell)h(the)i(attac)m(k)f(is)g(made)g (with)f(the)i(\020magic\021)k(and)227 3676 y(\020\034re\021)45 b(attac)m(kt)m(yp)s(es.)60 b(In)38 b(similar)c(fashion,)j(a)h(defender) g(ma)m(y)f(b)s(e)h(protected,)h(vulnerable,)g(or)227 3792 y(imm)m(une)32 b(to)g(an)m(y)h(attac)m(kt)m(yp)s(e.)227 4025 y(Here)h(is)e(a)g(summary)g(of)g(the)h(attac)m(k)g(system;)g(in)f (fact,)h(its)f(a)g(bit)g(more)f(complicated.)227 4401 y Fy(Hitting)k(an)j(opp)s(onen)m(t)227 4581 y Fz(Sev)m(eral)33 b(quan)m(tities)e(are)h(in)m(v)m(olv)m(ed)g(in)f(determining)f(whether) j(an)f(attac)m(k)g(will)d(hit)i(its)g(target.)227 4698 y(The)j(attac)m(k)m(er)f(will)d(hit)i(if)f(his)h Fv(Wc)h Fz(is)f(less)h(than)f(or)g(equal)h(to)f(the)h(defender's)h Fv(Ac)f Fz(+)f(1D20)3607 4662 y Ft(1)3679 4698 y Fz(or)227 4814 y(if)24 b(the)i(D20)f(giv)m(es)h(a)f(20)f(\(remem)m(b)s(er,)i(b)s (oth)f Fv(Wc)h Fz(and)f Fv(Ac)h Fz(impro)m(v)m(e)f(as)g(their)g(v)-5 b(alue)24 b(drops)i Fu(lower)p Fz(\).)227 5190 y Fy(Damaging)37 b(a)h(hit)e(opp)s(onen)m(t)227 5370 y Fz(Damages)29 b(are)f(randomly)g (generated,)i(with)e(the)h(magnitude)e(of)h(the)h(random)f(n)m(um)m(b)s (er)h(b)s(eing)227 5487 y(based)43 b(on)f(the)h(attac)m(k)m(er's)h Fv(Dam)e Fz(stat.)73 b(If)42 b(defender)h(is)f(imm)m(une)e(to)i(an)g (attac)m(kt)m(yp)s(e)h(in)f(the)p 227 5574 1416 4 v 340 5635 a Fs(1)377 5665 y Fr(a)27 b(random)g(n)n(um)n(b)r(er)g(b)r(et)n(w) n(een)g(1)g(and)h(20)1948 6057 y Fz(15)p eop end %%Page: 16 20 TeXDict begin 16 19 bop 227 388 a Fz(T)-8 b(able)33 b(3.1)f (Relationship)e(b)s(et)m(w)m(een)35 b(exp)s(erience)e(and)g Fv(level)h Fz(for)e(the)h(\034rst)g(10)f(lev)m(els.)p 1563 518 868 4 v 1561 631 4 113 v 1612 597 a Fi(Level)100 b Fo(Exp)s(erience)p 2428 631 V 1563 634 868 4 v 1563 651 V 1561 764 4 113 v 1772 730 a(...)g(...)p 2428 764 V 1563 767 868 4 v 227 1141 a Fz(attac)m(k,)32 b(he)f(receiv)m(es)g(no) g(damage,)f(if)f(he's)i(protected)h(he)e(receiv)m(es)i(half)d(damage,)h (if)g(he's)h(vul-)227 1257 y(nerable)f(to)f(this)g(kind)g(of)h(attac)m (kt)m(yp)s(e,)h(he)f(receiv)m(es)h(double)f(damage.)41 b(F)-8 b(or)29 b(ph)m(ysical)g(attac)m(ks,)227 1373 y(the)42 b(p)s(ercen)m(t)g(of)f(y)m(our)g Fv(Arm)h Fz(v)-5 b(alue)40 b(is)h(subtracted)h(from)e(incoming)f(damage.)67 b(Some)41 b(magic)227 1490 y(w)m(eap)s(ons)32 b(can)f(\020sla)m(y\021)39 b(v)-5 b(arious)30 b(races)h(of)g(creatures.)44 b(If)31 b(the)g(w)m(eap)s(on)g(sla)m(ys)h(the)f(defender,)i(the)227 1606 y(attac)m(k)g(damage)f(is)g(tripled.)227 1866 y Fy(3.2.2.)38 b(Exp)s(erience)227 2046 y Fz(A)m(ccum)m(ulation)32 b(of)g(exp)s(erience)h(will)e(result)h(in)g(increasing)f(the)i Fv(level)h Fz(of)e(the)h(pla)m(y)m(er's)g(c)m(har-)227 2162 y(acter.)66 b(In)40 b(a)f Fx(Cross\034re)i Fz(game)e(where)i (skills)d(are)i Fu(not)f Fz(presen)m(t,)44 b(exp)s(erience)d(is)e(only) g(gained)227 2279 y(for)30 b(remo)m(ving)f(traps)h(and)g(killing)c (monsters.)43 b(A)30 b(pla)m(y)m(er)g(will)e(gain)g(a)i(new)h Fv(level)g Fz(when)g(their)227 2395 y(exp)s(erience)j(total)d(reac)m (hes)j(a)f(new)g(amoun)m(t)f(in)g(the)h(hierarc)m(h)m(y)g(sho)m(wn)h (in)e(table)f(3.1.)374 2511 y(In)d(the)h(skills-based)f(game,)g Fu(sever)-5 b(al)28 b Fz(kinds)h(of)f(exp)s(erience)h(exist.)43 b(The)29 b Fv(score)h Fz(represen)m(ts)227 2627 y(the)42 b(\020)8 b Fu(over)-5 b(al)5 b(l)p Fz(\021)47 b(pro\034ciency)41 b(of)g(the)g(pla)m(y)m(er)g(and)g(is)f(the)h Fu(sum)g Fz(of)f(all)f(the)i(di\033ering)f(kinds)h(of)227 2744 y(exp)s(erience)34 b(p)s(ossessed.)374 2860 y(The)26 b(pla)m(y)m(er)f(accum)m(ulates)g(exp)s(erience)h(in)m(to)f(v)-5 b(arious)24 b(\020)8 b Fu(exp)-5 b(erienc)g(e)26 b(c)-5 b(ate)g(gories)p Fz(\021)32 b(according)227 2976 y(to)40 b(their)g(actions.)67 b(Another)41 b(w)m(a)m(y)g(of)f(putting)g(this)g (is)g(that)g(y)m(ou)h(b)s(ecome)f(b)s(etter)h(at)f(what)227 3092 y(y)m(ou)34 b(do)f(most)f(often)i(and)f(most)f(successfully)-8 b(.)46 b(F)-8 b(or)32 b(example,)h(a)g(pla)m(y)m(er)g(who)h(kills)d (monsters)227 3208 y(with)c(incan)m(tations)e(gains)h(exp)s(erience)i (in)e(casting)g(incan)m(tations.)41 b(A)27 b(pla)m(y)m(er)g(who)g (steals)f(from)227 3325 y(creatures)34 b(often)f(will)d(get)i(b)s (etter)h(at)f(stealing,)g(and)g(so)h(on.)374 3441 y(Eac)m(h)25 b(exp)s(erience)h(category)f(will)d(ha)m(v)m(e)k(a)f Fv(level)h Fz(assigned)f(to)f(it)f(based)j(on)f(the)g(amoun)m(t)f(of) 227 3557 y(exp)s(erience)33 b(accum)m(ulated)d(in)g(it)g(\(using)h(the) g(same)g(sc)m(hedule)i(sho)m(wn)f(in)e(table)g(3.1\).)43 b(Use)32 b(the)227 3673 y Fv(skills)c Fz(command)d(to)g(in)m(v)m (estigate)h(whic)m(h)h(skills)e(y)m(our)h(c)m(haracter)h(has)f(and)h (to)e(see)i(the)g Fv(level)227 3790 y Fz(of)32 b(abilit)m(y)d(y)m(ou)j (ha)m(v)m(e)h(in)e(eac)m(h)i(exp)s(erience)g(category)-8 b(.)43 b(See)32 b(c)m(hapter)h(5)e(for)h(more)e(information)227 3906 y(ab)s(out)i(skills)g(and)g(skill-based)f(exp)s(erience.)374 4022 y(As)43 b(an)f(aside,)j(monsters)e Fu(also)e Fz(are)i(assigned)g (a)f Fv(level)h Fz(of)f(pro\034ciency)i(and)e(ma)m(y)g(gain)227 4138 y(exp)s(erience.)80 b(The)46 b(main)c(w)m(a)m(y)k(whic)m(h)f (monsters)f(gain)f(exp)s(erience)j(is)e(b)m(y)h Fu(kil)5 b(ling)43 b Fz(pla)m(y)m(ers!)227 4255 y(Bew)m(are)37 b(going)d(after)h(a)g(monster)g(that)g(has)h(killed)d(sev)m(eral)j(pla) m(y)m(ers,)h(it)e(will)e(b)s(e)i(m)m(uc)m(h)h(more)227 4371 y(di\036cult)c(to)g(c)m(hallenge!)227 4631 y Fy(3.2.3.)38 b(Calculation)e(of)h(selected)g(secondary)h(stats)227 4811 y Fz(Both)46 b(the)h(primary)d(stats)i(and)g Fv(level)i Fz(of)d(the)h(c)m(haracter)h(will)d(in\035uence)i(the)h(secondary)227 4927 y(stats)32 b(giv)m(en)e(b)s(elo)m(w.)43 b(In)31 b(the)g(skills-based)f(game,)g(the)i(appropriate)d(exp)s(erience)j (category)3629 4891 y Ft(2)3700 4927 y Fz(is)227 5044 y(iden)m(ti\034ed)c(for)g(purp)s(oses)i(of)d(determining)g(whic)m(h)i Fv(level)g Fz(is)f(used)h(in)f(the)h(calculation.)39 b(In)29 b(the)227 5160 y(non-skills)i(game,)h(the)h Fu(over)-5 b(al)5 b(l)32 b Fv(level)h Fz(is)f(alw)m(a)m(ys)h(used.)374 5276 y(Refer)f(to)h(table)e(2.1)i(if)e(a)h(quan)m(tit)m(y)h(in)f(a)g (calculation)e(is)i(left)g(unexplained.)p 227 5363 1416 4 v 340 5425 a Fs(2)377 5455 y Fr(categories)25 b(are)i(giv)n(en)f(for) i(the)f(default)h(settings,)g(this)g(can)f(b)r(e)h(c)n(hanged)e(b)n(y)i (the)f(serv)n(er)f(administrator)1948 6057 y Fz(16)p eop end %%Page: 17 21 TeXDict begin 17 20 bop 227 333 a Fy(W)-9 b(eap)s(on)38 b(class)g(\()p Fv(Wc)p Fy(\))227 513 y Fz(The)c Fv(Wc)f Fz(calculation)d(is:)471 663 y(class)j Fv(Wc)g Fz(-)f Fv(thaco)p Fz(\(STR\))i(-)e(w)m(eap)s(on)h Fv(Wc)g Fz(-)f Fv(level)i Fz(-)e(1)g(ev)m(ery)j(6)d Fv(level)p Fz(s)227 813 y(where)40 b Fv(thaco)f Fz(is)e(found)h(using)g(the)g(STR)g(stat)g (on)g(table)g(2.1,)g(the)h(w)m(eap)s(on)f Fv(Wc)h Fz(can)f(b)s(e)g(de-) 227 929 y(termined)43 b(from)f(the)i Fx(Cross\034re)i Fy(Sp)s(oiler)c Fz(and)i(the)f Fv(level)i Fz(is)e(tak)m(en)i(from)d (the)i Fv(physique)227 1045 y Fz(exp)s(erience)34 b(category)-8 b(.)227 1297 y Fy(W)f(eap)s(on)38 b(Sp)s(eed)227 1477 y Fz(The)f(calculation)c(for)j(w)m(eap)s(on)g(sp)s(eed)h(is)f(quite)f (complex)h(\(but)g(here)g(it)f(is!\).)53 b(The)37 b(v)-5 b(alue)35 b(for)227 1594 y(the)e(w)m(eap)s(on)h(sp)s(eed)f(is:)471 1743 y Fv(speed)p Fz(/\()p Fv(LF)h Fz(*)e Fx(Nast)m(yF)-8 b(actor)33 b Fz(*)g Fx(LessNast)m(yF)-8 b(actor)p Fz(\))227 1893 y(where)40 b Fv(LF)g Fz(\(\020lev)m(el)e(factor\021\))f(is)i(a)f (n)m(um)m(b)s(er)h(b)s(et)m(w)m(een)i(0.8)e(and)g(1.2)f(that)h (increases)g(with)g(the)227 2009 y Fv(level)g Fz(as)e(\(4+)p Fv(level)p Fz(\)/\(6+)p Fv(level)p Fz(\)*1.2,)h(\(the)g Fv(level)g Fz(is)e(tak)m(en)i(from)e(the)h(o)m(v)m(erall)f Fv(level)p Fz(\),)227 2126 y(and)d(b)s(oth)f Fx(Nast)m(yF)-8 b(actor)33 b Fz(and)g Fx(LessNast)m(yF)-8 b(actor)34 b Fz(are)e(calculated)g(b)s(elo)m(w.)374 2239 y(The)h(v)-5 b(alue)32 b(of)g Fx(Nast)m(yF)-8 b(actor)33 b Fz(is:)471 2385 y Fo(2/3)e(+)f Fi(MaxC)p Fo(/363)h(-)g(\(\(0.00167*)p Fi(WpnW)p Fo(\)/)p Fi(MaxC)p Fo(\))h(+)e(\()p Fi(speed)p Fo(/5\))h(+)f(\(\(Dex-14\)/28\))227 2535 y Fz(where)44 b Fv(MaxC)f Fz(is)f(the)g(maxim)m(um)e(carrying)i(limit)c(of)k(the)h(c) m(haracter,)i Fv(WpnW)e Fz(is)f(the)h(w)m(eap)s(on)227 2651 y(w)m(eigh)m(t.)68 b(W)-8 b(eap)s(on)40 b(w)m(eigh)m(t)h(can)g(b)s (e)f(determined)h(from)e(examining)f(the)j(giv)m(en)g(w)m(eap)s(on)g (\(ie)227 2767 y(lo)s(ok)32 b(at)g(the)h(n)m(um)m(b)s(er)g(to)f(the)h (righ)m(t)f(side)g(of)g(the)h(w)m(eap)s(on)g(icon)f(in)g(the)h(in)m(v)m (en)m(tory)h(windo)m(w\).)374 2883 y(The)f(v)-5 b(alue)32 b(of)g Fx(LessNast)m(yF)-8 b(actor)34 b Fz(is:)471 3033 y(2)f(-)f(\(\(W)-8 b(pnF)32 b(-)g Fv(magic)p Fz(/2\)/10\))227 3183 y(where)41 b Fv(WpnF)f Fz(is)f(the)g(\020w)m(eap)s(on)g (factor\021)47 b(and)39 b Fv(magic)h Fz(is)f(the)h(v)-5 b(alue)38 b(of)h(the)h(enc)m(han)m(tmen)m(t)g(on)227 3299 y(the)24 b(w)m(eap)s(on)h(\(i.e.)40 b Fh(+)p Fz(1,)25 b Fh(+)p Fz(2,)g(etc.\).)41 b(W)-8 b(eap)s(on)23 b(factor)h(is)f(giv)m (en)h(for)f(some)g(w)m(eap)s(ons)i(in)e(table)g(3.2.)227 3667 y Fy(Damage)38 b(\()p Fv(Dam)p Fy(\))227 3847 y Fz(Curren)m(t)30 b(w)m(eap)s(on,)f(c)m(haracter)g(class)f(\(table)g (2.2\))f(and)h(STR)h(\()p Fv(DmB)g Fz(in)e(table)g(2.1\))h(all)e (e\033ect)j(the)227 3963 y(v)-5 b(alue)32 b(of)g Fv(Dam)p Fz(.)45 b(The)33 b(calculation)d(for)i Fv(Dam)h Fz(is:)471 4113 y(Class)g(b)s(on)m(us)g Fh(+)g Fv(DmB)g Fh(+)f Fz(W)-8 b(eap)s(on)33 b(damage)e Fh(+)i Fz(Skill)d(damage)227 4263 y(In)39 b(addition,)e(for)g(ev)m(ery)j(4)e(lev)m(els)g(of)f (\034gh)m(ting)g(exp)s(ertise)i(\()p Fv(physique)h Fz(exp)s(erience)f (category)227 4379 y(lev)m(el\))25 b(1)p Fh(+)p Fz(\()p Fv(Dmb)p Fz(/5\)\))g(is)g(added)g(to)g Fv(Dam)p Fz(.)42 b(Some)25 b(skills)f(\(namely)g(the)h(hand-to-hand,)i(or)d(martial)227 4496 y(arts)g(skills\))f(can)h(add)g(signi\034can)m(t)f(damage)f(to)i (the)g(o)m(v)m(erall)f(total.)39 b(The)25 b(amoun)m(t)e(that)g(is)h (added)227 4612 y(dep)s(ends)i(on)e(the)g(user's)h Fv(level)g Fz(in)e(that)h(skill.)39 b(Note)23 b(that)h(w)m(eap)s(on)h(damage)d(is) i(automatically)227 4728 y(added)34 b(to)e(y)m(our)h(damage)e(rating)h (in)f(the)i(stat)g(windo)m(w)g(when)h(y)m(ou)f(wield)e(an)m(y)j(w)m (eap)s(on.)227 4979 y Fy(Armour)j(class)g(\()p Fv(Ac)p Fy(\))227 5160 y Fz(F)-8 b(or)41 b(c)m(haracters)h(that)f(cannot)g(w)m (ear)h(armour)d(\(ex.)70 b(Fireb)s(orn\),)42 b(their)f Fv(Ac)g Fz(can)g(impro)m(v)m(e)g(as)227 5276 y(their)32 b(score)i(increases.)44 b(The)34 b(calculation)c(for)i Fv(Ac)h Fz(is)f(then:)471 5426 y(Class)h Fv(Ac)g Fw(\000)g Fv(level)p Fz(/3)227 5576 y(The)e(v)-5 b(alue)29 b(of)h(the)g(c)m (haracter)h Fv(Ac)f Fz(ma)m(y)g(decrease)h(to)f(the)g(v)-5 b(alue)29 b(of)g(-10.)42 b(After)30 b(that,)g(no)g(more)227 5692 y(impro)m(v)m(emen)m(t)35 b(is)f(made)g(regardless)h(of)f(earned)i (exp)s(erience.)51 b(The)36 b(o)m(v)m(erall)e Fv(level)i Fz(is)e Fu(always)227 5808 y Fz(used)g(for)e(this)g(calculation.)1948 6057 y(17)p eop end %%Page: 18 22 TeXDict begin 18 21 bop 227 394 a Fz(T)-8 b(able)33 b(3.2)f(W)-8 b(eap)s(on)32 b(factor)g(\()p Fv(WpnF)p Fz(\))i(for)e(selected)h(w)m (eap)s(ons)p 571 530 2851 4 v 569 643 4 113 v 3420 643 V 569 756 V 866 722 a Fo(1.6)100 b(n)m(unc)m(hacu)p 3420 756 V 569 869 V 866 835 a(1.5)g(dagger)p 3420 869 V 569 981 V 866 948 a(1.4)g(Sting,)31 b(k)-5 b(atana,)31 b(shortsw)m(ord,)h (taifu)p 3420 981 V 569 1094 V 866 1061 a(1.3)100 b(Belzebub's)31 b(sw)m(ord,)h(Darkblade,)f(Excalibur)p 3420 1094 V 569 1207 V 866 1173 a(1.2)100 b(Firebrand,)32 b(F)-8 b(rostbrand,)32 b(Mjo)s(ellnir,)e(Mourn)m(blade,)p 3420 1207 V 569 1320 V 1081 1286 a(Storm)m(bringer,)j(broadsw)m(ord,)f(falc)m(hion,)g(ligh)m (t)f(sw)m(ord)p 3420 1320 V 569 1433 V 1081 1399 a(long)g(sw)m(ord,)g (quartersta\033,)g(sabre,)g(sw)m(ord,)g(triden)m(t)p 3420 1433 V 569 1546 V 866 1512 a(1.1)100 b(Death)m(bringer,)33 b(Demon)m(bane,)f(Dragonsla)m(y)m(er,)h(Holy)c(A)-10 b(v)m(enger)p 3420 1546 V 569 1659 V 1081 1625 a(club,)31 b(hammer,)h(mace,)f(unicorn)g(horn)p 3420 1659 V 569 1772 V 866 1738 a(1.0)100 b(axe,)30 b(stonehammer)p 3420 1772 V 569 1885 V 866 1851 a(0.9)100 b(Skullclea)m(v)m(er,)32 b(morningstar,)g(stak)m(e,)f(stoneaxe)p 3420 1885 V 569 1998 V 866 1964 a(0.8)100 b(large)31 b(morningstar)p 3420 1998 V 569 2111 V 866 2077 a(0.5)100 b(Bonecrusher,)32 b(Gram,)f(sho)m(v)m(el)p 3420 2111 V 569 2223 V 866 2190 a(0.3)100 b(large)31 b(club)p 3420 2223 V 569 2336 V 720 2303 a(0.1-0.4)101 b(c)m(hair)p 3420 2336 V 569 2449 V 866 2415 a(0.1)f(b)s(ed)p 3420 2449 V 569 2562 V 3420 2562 V 571 2566 2851 4 v 227 2920 a Fy(Hit)36 b(p)s(oin)m(ts)h(\()p Fv(Hp)p Fy(\))227 3101 y Fz(A)32 b(c)m(haracter)h(will)c(gain)h(the)i (follo)m(wing)d(n)m(um)m(b)s(er)j(of)g Fv(Hp)g Fz(for)f Fu(e)-5 b(ach)31 b Fz(new)h(o)m(v)m(erall)f Fv(level)i Fz(gained)227 3217 y(b)s(et)m(w)m(een)i(lev)m(els)e(1)p Fw(\000)p Fz(10:)471 3387 y(\()p Fv(HpB)p Fz(\)/2)g(+)f(D4)h(+)f(D4)h (+)f(1)h(+)f(1/ev)m(ery)i(ev)m(en)g Fv(level)g Fu(if)e Fv(HpB)h Fz(is)g(ev)m(en.)227 3558 y(Where)43 b(D4)f(is)f(a)h(random)e (n)m(um)m(b)s(er)i(b)s(et)m(w)m(een)i(1)e(and)f(4)h(and)f(y)m(ou)i(alw) m(a)m(ys)f(get)g(1)f(hit)g(p)s(oin)m(t)227 3674 y(gained)28 b(p)s(er)g Fv(level)p Fz(,)i(regardless)e(of)f Fv(HpB)p Fz(.)i(F)-8 b(or)27 b(lev)m(els)h(after)g(10th,)g Fv(Hp)g Fz(gro)m(w)g(2)g(p)s(er)g Fv(level)p Fz(.)43 b(The)227 3790 y(o)m(v)m(erall)32 b Fv(level)i Fz(pro)m(vides)f(the)g(correct)g (v)-5 b(alue)32 b(for)g Fv(level)i Fz(in)d(the)i(calculation.)227 4045 y Fy(Mana)39 b(\()p Fv(Sp)p Fy(\))227 4226 y Fz(A)k(c)m(haracter)h (will)c(gain)h(the)i(follo)m(wing)d(n)m(um)m(b)s(er)j(of)f Fv(Sp)h Fz(for)g Fu(e)-5 b(ach)41 b Fz(new)j Fv(magic)g Fz(exp)s(erience)227 4342 y(category)33 b Fv(level)h Fz(gained)e(b)s(et)m(w)m(een)i(lev)m(els)f(1)p Fw(\000)p Fz(10:)471 4512 y(\()p Fv(MgB)p Fz(\(PO)m(W\)\)/2)g(+)g(D3)g(+)f(D3)h (+)f(1)g(ev)m(ery)j(ev)m(en)f Fv(level)g Fu(if)e Fv(MgB)h Fz(is)f(ev)m(en.)227 4683 y(Where)h(D3)e(is)g(a)g(random)f(n)m(um)m(b)s (er)h(b)s(et)m(w)m(een)j(1)d(and)g(3)g(and)g(y)m(ou)h(alw)m(a)m(ys)g (get)f(1)g(mana)f(gained)227 4799 y(p)s(er)j(new)h Fv(level)p Fz(.)44 b(F)-8 b(or)32 b Fv(magic)i Fz(lev)m(els)e(past)h(the)g(10th,)f (mana)g(gro)m(ws)h(2)f(p)s(er)h(lev)m(el.)227 5054 y Fy(Grace)38 b(\()p Fv(Gr)p Fy(\))227 5235 y Fz(A)h(c)m(haracter)h(will) c(gain)h(the)j(follo)m(wing)c(n)m(um)m(b)s(er)j(of)f Fv(Gr)h Fz(for)f Fu(e)-5 b(ach)38 b Fz(new)i Fv(wisdom)g Fz(exp)s(erience)227 5351 y(category)33 b Fv(level)h Fz(gained)e(b)s(et)m(w)m(een)i(lev)m(els)f(1)p Fw(\000)p Fz(10:)471 5521 y(\()p Fv(MgB)p Fz(\(WIS\))h(+)e Fv(MgB)p Fz(\(PO)m(W\)\)/8)i(+)e(D3)227 5692 y(Where)h(D3)f(is)g(a)f(random)g(n) m(um)m(b)s(er)h(b)s(et)m(w)m(een)i(1)e(and)g(3)g(and)f(y)m(ou)i(alw)m (a)m(ys)f(get)g(1)g(grace)g(gained)227 5808 y(p)s(er)h(new)h Fv(level)p Fz(.)44 b(F)-8 b(or)32 b(lev)m(els)h(past)f(the)h(10th,)g (grace)f(gro)m(ws)h(1)g(p)s(er)f Fv(wisdom)i(level)p Fz(.)1948 6057 y(18)p eop end %%Page: 19 23 TeXDict begin 19 22 bop 227 333 a Fy(3.2.4.)38 b(Death)g Fw(\000)22 b(\000)h(\000)38 b Fy(the)f(ultimate)e(p)s(enalt)m(y?)227 513 y Fz(Should)44 b(y)m(our)h(hit)f(p)s(oin)m(t)f(total)g(drop)h(b)s (elo)m(w)g(0)g(y)m(ou)h(will)d(die)i @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gravestone.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000000000 000000ffffffffffffffffffffffffffffffffffffffffff0000e0e0e0e0 e0e0e0e0e000ffffffffffffffffffffffffffffffffffff0000e0e0e0e0 e0e0e0e0e0e0e0e000ffffffffffffffffffffffffffffffff00bfbfe0e0 e0e0e0e0e0e0e0e0e0e000ffffffffffffffffffffffffffffff00a1bfbf e0e0000000000000000000e0e000ffffffffffffffffffffffffff00a1a1 bfbf0000e0e0e0e0e0e0e0e0e000e000ffffffffffffffffffffffff007f a1a10000e0e0e0e0e0e0e0e0e0e0e0e00000ffffffffffffffffffffff00 7f7fa100e0e0e0e0e0e0e0e0e0e0e0e0e0e00000ffffffffffffffffffff 007f7f7f00e0212121e0e0e0212121e0212100e0e000ffffffffffffffff ffff007f7f00e0e021e0e021e0e0e021e0e021e0e000e000ffffffffffff ffffff00617f00e0e0212121e0e0e0e021e0e021212121e0e000ffffffff ffffffffff006100e0e0e021e0e021e0e021e0e0e021e0e0e0e0e000ffff ffffffffffff006100e0e0e021e0e021e0e0212121e021e0e0e0e0e0e000 ffffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 e0e000ffffffffffffffff006100e0e0e0e0e0e0e0e0e02121e0e0e0e0e0 e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0e0a121e0e0e0 e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e02121a1212121 e0e0e0e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0a1a1a1a1 a121e0e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e0e0e0a1 21e0e0e0e0e0e0e0e0e000ffffffffffffff006100e0e0e0e0e0e0e0e0e0 e0a121e0e0e0e0e0e0e0e000ffffffffffffffff006100e0e0e0e0e0e0e0 e0e0a121e0e0e0e0e0e0e0e0e000ffffffffffffffff0000e0e0e0e0e0e0 e0e0e0e0a121e0e0e0e0e0e0e0e000ffffffffffffffffff0000e0e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffff00e0e0e0 e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e000ffffffffffffffffffff0000 0000000000000000000000000000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 139 w(.)79 b(What)44 b(happ)s(ens)h(next)227 630 y(dep)s(ends)34 b(on)f(the)g(options)f(the)h(serv)m(er)h (administrator)c(c)m(ho)s(ose.)374 746 y(If)k(the)h Fv(NOT_PERMDEATH)i Fz(option)c(is)h(b)s(eing)f(used)j(\(this)e(is)f(the)i(default\))f (then)g(y)m(our)h(c)m(har-)227 862 y(acter)k(\(and)f(his)g(all)e(of)i (his)g Fu(c)-5 b(arrie)g(d)38 b Fz(equipmen)m(t)g(at)g(the)h(instan)m (t)f(of)g(death\))g(will)e(app)s(ear)j(at)227 978 y(the)33 b(last)f(sa)m(v)m(eb)s(ed)j(y)m(ou)e(used.)374 1095 y(F)-8 b(or)43 b(eac)m(h)i(time)d(y)m(ou)j(die,)h(y)m(our)e(c)m(haracter)h (loses)f(20\045)g(\(this)f(is)h(the)g(default)f(and)h(can)227 1211 y(b)s(e)37 b(di\033eren)m(t)f(dep)s(ending)h(on)f(the)g(serv)m (er\).)57 b(of)35 b(their)h(exp)s(erience)i(\(in)d(all)f(categories\))i (and)g(a)227 1327 y(random)c(primary)g(stat)h(decreases)i(b)m(y)f(1.)44 b(A)m(t)33 b(lo)m(w)f(lev)m(els,)h(the)h(stat)f(loss)f(is)h(bad)g (news,)h(while)227 1443 y(it)e(is)g(the)i(exp)s(erience)g(loss)e(that)h Fu(r)-5 b(e)g(al)5 b(ly)32 b Fz(h)m(urts)i(at)e(those)i(high)e(lev)m (els.)44 b(Y)-8 b(ou)33 b(ma)m(y)f(still)f(re-gain)227 1559 y(lost)h(stats)h(\(up)g(to)f(y)m(our)h(natural)f(limit\))d(b)m(y)k (drinking)e(p)s(otions.)374 1676 y(If)42 b(the)h(serv)m(er)h (administrator)c(has)j(made)f(death)h(p)s(ermanen)m(t,)i(there)e(is)f (still)e(hop)s(e)j(for)227 1792 y(y)m(our)49 b(c)m(haracter.)92 b(When)49 b(the)g Fv(RESURRECTION)i Fz(option)c(is)h(enabled)g(\(the)h (default)e(option)227 1908 y(when)34 b Fv(NOT_PERMDEATH)i Fz(is)c Fu(not)g Fz(b)s(eing)g(used\))i(other)e(c)m(haracters)i(ma)m(y) e(bring)g(y)m(ou)h(bac)m(k)g(from)227 2024 y(the)g(b)s(ey)m(ond.)44 b(There)34 b(are)e(3)g(sp)s(ells)g(that)g(are)g(capable)g(of)g(doing)f (this,)h(but)g(y)m(ou)h(ma)m(y)f(need)i(to)227 2141 y(retriev)m(e)g (the)f(corpse)g @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: corpse1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff107fb85effffffffffffffffffffffffffffffffff ffffffffffffffffffff0877a256aa10ffffffffffffffffffffffffffff ffffffffffffffffffffffff18b85488a818ff00080808ffffffffffffff ffffffffffffffffffffffffffffff4eaab0a300394a73522900ffffffff ffffffffffffffffffffffffffffffffffff211008084a5a42736321ffff ffffffffffffffffffffffffffffffffffffffffffff636b636321317b5a 00ffffffffffffffffffffffffffffffffffffffffffffff3163523954b0 6b520800ffffffffffffffffffffffffffffffffffffffffff217b5a4208 293963522108ffffffffffffffffffffffffffffffffffffffffff215a21 cbb0424a7352214a08ffffffffffffffffffffffffffffffffffffffff29 6b4a93b042636b42005208ffffffffffffffffffffffffffffffffffffff ffff295a4a29081008001063080000ffffffffffffffffffffffffffffff ffffffffff001842636b31215a2900294a18ffffffffffffffffffffffff ffffffffffffffffff00000031524208106384631000ffffffffffffffff ffffffffffffffffffffffff00001021002142527b84842108ffffffffff ffffffffffffffffffffffffffffffffff0000527373845a847b3100ffff ffffffffffffffffffffffffffffffffffffffff00316b946300185a5a10 ffffffffffffffffffffffffffffffffffffffffffffff00429473100000 009429ffffffffffffffffffffffffffffffffffffffffffff00005a8484 10ff00636331ffffffffffffffffffffffffffffffffffffffffffff0008 5a7331ffff00186b100000ffffffffffffffffffffffffffffffffffffff ff0008424208ffffff0000000000ffffffffffffffffffffffffffffffff ffffffff00107b8400ffffff00000000ffffffffffffffffffffffffffff ffffffffffffff00186342ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff295a0000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 160 w(of)f(the)h(c)m(haracter)g(that)f(is)g(to)g(b)s(e)h (resurrected!)227 2410 y Fy(Section)k(3.3.)h(Some)f(adv)-6 b(anced)39 b(stu\033)227 2629 y(3.3.1.)f(Some)f(useful)h(adv)-6 b(anced)39 b(commands)227 2814 y(Meta-command)f(\()p Fv(')p Fy(\))227 2994 y Fz(An)m(y)33 b(command)e(listed)g(b)m(y)i(the)f (use)h(of)e(help)h(\()p Fv(?)43 b Fz(k)m(ey\))34 b(can)e(b)s(e)g(used)h (b)m(y)g(sp)s(elling)d(it)h(out)g(after)227 3111 y(the)f(meta-command)e (is)h(issued.)43 b(F)-8 b(or)29 b(example,)g(y)m(ou)i(can)f(use)g(the)g (command)f Fv(say)h Fz(either)f(b)m(y)227 3227 y(hitting)i(the)i (double-quote)f(\()p Fv(")h Fz(k)m(ey\))h(or)e(b)m(y)i(issuing)e(the)h (command)e(string)h Fv('say)p Fz(.)227 3486 y Fy(Binding)k(commands)i (\()p Fv('bind)g Fy(and)g Fv('unbind)p Fy(\))227 3666 y Fz(Y)-8 b(ou)32 b(ma)m(y)g(bind)f(an)m(y)i(k)m(ey)g(with)e(a)h (complex)f(command.)42 b(F)-8 b(or)31 b(example,)h(y)m(ou)g(could)f (bind)h(the)227 3782 y(use)i(of)e(the)h(meditation)d(skill)h(to)h(the)h (k)m(ey)h(\020)8 b Fv(m)p Fz(\021.)43 b(T)-8 b(o)32 b(do)h(this)f (\034rst)h(t)m(yp)s(e:)471 3976 y Fv('bind)53 b(use_skill)g(meditation) 227 4169 y Fz(then)33 b(press)h Fj(<)p Fv(return)p Fj(>)p Fz(.)45 b(The)33 b(game)e(will)f(then)j(ask)g(y)m(ou)g(for)f(a)g(k)m (ey)i(to)e(bind)g(the)g(command)227 4285 y(to,)f(y)m(ou)h(then)f(hit)f Fv(m)p Fz(.)43 b(Y)-8 b(ou)31 b(can)g(also)f(re-bind)h(this)f(k)m(ey)i (to)f(something)f(else)h(later)f(if)g(y)m(ou)h(wish)227 4401 y(to)s(o.)43 b(Issue)34 b(the)f(command:)42 b(command:)471 4594 y Fv('unbind)53 b(reset)227 4788 y Fz(to)33 b(totally)d(reset)k (bindings)d(on)i(k)m(eys.)227 5046 y Fy(Pic)m(k)j(up)i(toggle)e(\()p Fv(@)p Fy(\))227 5227 y Fz(This)23 b(allo)m(ws)e(y)m(ou)i(to)f(c)m (hange)i(y)m(our)f(pic)m(kup)g(status.)41 b(Eigh)m(t)22 b(di\033eren)m(t)g(mo)s(des)g(for)g(pic)m(k)h(up)g(exist:)227 5343 y(\020don't)29 b(pic)m(k)h(up\021,\020pic)m(k)e(up)i(1)f (item\021,)f(\020pic)m(k)h(up)g(1)g(item)f(and)h(stop\021,)h(\020stop)f (b)s(efore)g(pic)m(king)f(up\021,)227 5459 y(\020pic)m(k)f(up)f(all)f (items\021,)h(pic)m(k)h(up)g(all)d(items)i(and)g(stop\021,)i(\020pic)m (k)e(up)h(all)d(magic)h(items\021,)h(\020pic)m(k)g(up)h(all)227 5576 y(coins)j(and)f(gems\021.)42 b(Whenev)m(er)31 b(y)m(ou)f(mo)m(v)m (e)g(o)m(v)m(er)g(a)f(pile)f(of)h(stu\033)h(y)m(our)g(pic)m(kup)g(mo)s (de)e(con)m(trols)227 5692 y(if)g(and)i(what)f(y)m(ou)h(collect.)41 b(Y)-8 b(ou)29 b(can)h(alw)m(a)m(ys)f(pic)m(kup)h(stu\033)g(using)f (the)g(pic)m(kup)h(command)e(\()p Fv(,)p Fz(\))227 5808 y(regardless)33 b(of)f(y)m(our)h(curren)m(t)h(pic)m(kup)f(mo)s(de.)1948 6057 y(19)p eop end %%Page: 20 24 TeXDict begin 20 23 bop 227 333 a Fy(In)m(v)m(ok)m(e)38 b(\()p Fv('invoke)p Fy(\))227 513 y Fz(A)f(useful)g(w)m(a)m(y)g(to)g (quic)m(kly)g(cast)g(b)s(oth)f(incan)m(tations)g(and)g(pra)m(y)m(ers)j (is)d(via)g(the)h(in)m(v)m(ok)m(e)g(com-)227 630 y(mand.)56 b(T)-8 b(o)37 b(use)g(it)f(e\033ectiv)m(ely)-8 b(,)38 b Fv(bind)53 b(invoke)f Fj(<)p Fv(spell)p Fj(>)38 b Fz(to)f(an)m(y)g(k) m(ey)-8 b(.)58 b(Then,)39 b(when)e(that)227 746 y(binded)h(k)m(ey)h(is) e(pressed,)k(y)m(our)d(c)m(haracter)g(will)d(cast)j(that)f(magic)f(in)h (the)h(direction)e(they're)227 862 y(curren)m(tly)e(facing.)227 1122 y Fy(3.3.2.)k(Pla)m(ying)e(with)g(other)h(p)s(eople)227 1302 y Fz(As)f(a)f(general)g(rule,)g(other)g Fx(Cross\034re)i Fz(pla)m(y)m(ers)f(will)d(prefer)j(to)e(co-op)s(erate)h(or)g(at)g (least)g(lea)m(v)m(e)227 1419 y(eac)m(h)c(other)f(alone.)41 b(If)30 b(y)m(ou)g(go)f(ab)s(out)g(killing)e(other)i(pla)m(y)m(er's)i (c)m(haracters)g(y)m(ou)f(ma)m(y)f(not)h(only)227 1535 y(risk)g(their)f(con)m(tin)m(ued)h(wrath,)g(but)g(the)g(anger)f(of)g (the)h(serv)m(er)h(administrator)c(as)i(w)m(ell.)42 b(Chec)m(k)227 1651 y(out)33 b(the)g(house)g(rules)g(b)s(efore)f(y)m(ou)h(start)g(sla) m(ying)f(pla)m(y)m(ers.)227 1911 y Fy(Useful)38 b(m)m(ulti-pla)m(y)m (er)c(commands)227 2091 y Fz(Here)g(are)e(some)h(useful)f(commands)g (for)g(pla)m(ying)f(with)h(other)h(pla)m(y)m(ers:)227 2324 y Fv(shout)227 2440 y Fz(This)38 b(meta-command)c(will)h (broadcast)j(y)m(our)g(message)f(to)g(ev)m(ery)i(pla)m(y)m(er)e(curren) m(tly)h(logged)227 2556 y(in.)44 b(The)34 b(sa)m(y)f(command)f(only)g (sends)i(messages)g(to)f(pla)m(y)m(ers)g(who)g(share)h(y)m(our)f (curren)m(t)h(map.)227 2673 y(In)m(v)m(ok)m(e)h(this)d(command)g(just)h (lik)m(e)e Fv(say)p Fz(.)227 2905 y Fv(who)227 3021 y Fz(This)45 b(will)d(giv)m(e)j(y)m(ou)g(a)f(listing)f(of)h(all)e(the)j (curren)m(t)h(pla)m(y)m(ers)f(and)g(the)g(maps)f(they)i(are)e(on)227 3138 y(curren)m(tly)-8 b(.)44 b(In)m(v)m(ok)m(e)35 b(this)d(command)g (as)g Fv('who)p Fz(.)227 3370 y Fv(tell)227 3486 y Fz(Will)48 b(send)j(y)m(our)g(message)f(only)g(to)f(the)i(pla)m(y)m(er)f (indicated.)95 b(It)50 b(is)g(in)m(v)m(ok)m(ed)h(as:)79 b Fv('tell)227 3602 y Fj(<)p Fv(character)54 b(name)p Fj(>)e(<)p Fv(message)h(string)p Fj(>)p Fz(.)227 3978 y Fy(The)38 b(simple)e(part)m(y)h(system)227 4159 y Fz(If)47 b(the)h Fv(SIMPLE_PARTY_SYSTEM)k Fz(has)47 b(b)s(een)h(enabled)g(on)f (y)m(our)g(serv)m(er)i(y)m(ou)f(can)f(use)i(this)227 4275 y(to)41 b(adv)m(en)m(ture)j(with)d(other)g(pla)m(y)m(ers.)71 b(All)39 b(exp)s(erience)k(gained)e(b)m(y)h(mem)m(b)s(ers)f(of)g(the)h (part)m(y)227 4391 y(is)c(split)g(equally)-8 b(,)39 b(and)g(in)f (addition,)g(part)m(y)h(mem)m(b)s(ers)g(are)f(alw)m(a)m(ys)h(p)s (eaceful)g(to)m(w)m(ards)g(eac)m(h)227 4508 y(other.)44 b(Here's)34 b(2)e(useful)h(part)m(y)g(commands:)227 4740 y(1\))g(T)-8 b(o)32 b(form)f(a)i(part)m(y)g(issue)g(the)g(command:)471 4939 y Fv('party)53 b(form)f Fj(<)p Fv(party)h(name)p Fj(>)227 5139 y Fz(2\))33 b(T)-8 b(o)32 b(join)f(a)i(part)m(y)-8 b(,)33 b(t)m(yp)s(e:)471 5338 y Fv('party)53 b(join)f Fj(<)p Fv(party)h(name)p Fj(>)227 5537 y Fz(T)-8 b(o)33 b(see)h(all)c(of)i(the)h(options,)f(t)m(yp)s(e)i Fv('party)52 b(help)p Fz(.)1948 6057 y(20)p eop end %%Page: 21 25 TeXDict begin 21 24 bop 227 542 a FA(Chapter)44 b(4.)58 b(Magic)44 b(System)227 963 y Fy(Section)37 b(4.1.)h(Description)227 1178 y Fz(T)-8 b(w)m(o)44 b(broad)f(categories)f(of)h(magic)e(exist)i (in)g Fx(Cross\034re)p Fz(:)65 b(\020wizardry\021)51 b(and)43 b(\020divine)e(magic\021.)227 1294 y(The)32 b(fundamen)m(tal)d(di\033erence)j(b)s(et)m(w)m(een)g(the)f(t)m(w)m(o)g (comes)g(do)m(wn)h(to)e(the)h(source)g(that)g(p)s(o)m(w)m(ers)227 1410 y(the)h(magic)d(of)h(eac)m(h.)44 b(In)31 b(divine)f(magic)g(the)h (practitioners,)f(\020priests\021,)h(do)g(not)f(use)i(their)f(o)m(wn) 227 1526 y(p)s(o)m(w)m(er)36 b(but)g(rather)f(c)m(hannel)g(p)s(o)m(w)m (er)h(from)e(divine)h(en)m(tities)f(\(\020go)s(ds\021\).)50 b(They)37 b(utilize)c(v)-5 b(arious)227 1642 y(\020pra)m(y)m(ers\021)38 b(to)28 b(cast)g(their)g(magic)f(and)h(grace)h(is)f(the)g(measure)h(of) f(ho)m(w)h(m)m(uc)m(h)g(magic)d(the)j(priest)227 1759 y(ma)m(y)44 b(c)m(hannel.)79 b(The)45 b(higher)e(the)i(lev)m(el)f(of)f (the)i(priest)f(and)g(the)h(b)s(etter)f(his)g(wisdom)f(and)227 1875 y(p)s(o)m(w)m(er,)e(the)e(more)f(grace)h(the)g(priest)f(will)e(ha) m(v)m(e)k(in)e(the)h(ey)m(es)h(of)e(his)h(go)s(d.)60 b(In)39 b(the)g(practice)227 1991 y(of)33 b(wizardry)h(a)f (\020wizard\021)41 b(calls)32 b(up)s(on)i(his)f(o)m(wn)h(lifeforce)e (\(or)h(\020mana\021\))f(to)h(p)s(o)m(w)m(er)i(his)e(arcane)227 2107 y(incan)m(tations.)46 b(Mana)34 b(is)f(based)h(on)g(of)f(the)h (wizard's)g(innate)f(p)s(o)m(w)m(er)i(but)e(ma)m(y)h(b)s(e)g(increased) 227 2224 y(through)f(his)f(skill)f(in)h(wizardry)-8 b(.)374 2340 y(The)44 b(scop)s(e)h(and)f(sphere)h(of)e(these)i(t)m(w)m(o)f (magics)f(are)h(di\033eren)m(t.)77 b(Through)44 b(the)g(use)h(of)227 2456 y(divine)d(magic)f(the)h(priest)h(has)f(access)i(to)e(p)s(o)m(w)m (erful)h(sp)s(ells)2526 2420 y Ft(1)2607 2456 y Fz(of)f(protection,)i (healing,)f(and)227 2572 y(of)38 b(sla)m(ying)g Fu(unholy)g Fz(creatures.)62 b(If)39 b(the)g(m)m(ultiple)c(go)s(ds)k(option)e(is)h (used)2965 2536 y Ft(2)3006 2572 y Fz(,)h(the)g(go)s(d)f(a)g(priest)227 2689 y(w)m(orships)28 b(will)c(ha)m(v)m(e)k(other)f(impacts)f(on)h(the) g(priest's)g(magic)e(and)i(abilities)d(\(see)k(section)f(4.4\).)227 2805 y(In)41 b(con)m(trast,)j(wizardry)c(is)h(more)f(orien)m(ted)g(to)m (w)m(ards)i(the)f(harnessing)g(of)f(elemen)m(tal)g(forces)227 2921 y(of)d(creation,)g(alteration)d(and)j(destruction.)57 b(There)37 b(are)g(t)m(w)m(o)h(minor)d(v)-5 b(arian)m(ts)36 b(of)g(wizardry:)227 3037 y(alc)m(hem)m(y)d(\(section)f(4.5\))h(and)f (rune)h(magic)e(\(section)i(4.6\).)374 3153 y(Eac)m(h)43 b(form)e(of)h(magic)f(is)h(orthogonal)f(to)h(the)h(other.)73 b(In)43 b(some)f Fu(no)i(magic)d Fz(areas,)46 b(the)227 3270 y(wizard)35 b(is)f(blo)s(c)m(k)m(ed)h(from)f(accessing)h(his)g (store)g(of)f(mana,)h(but)g(the)g(priest)f(ma)m(y)h(op)s(erate)f(his) 227 3386 y(magic)22 b(normally)-8 b(.)37 b(Similarly)-8 b(,)21 b(there)j(are)f Fu(unholy)g Fz(areas)h(in)e(whic)m(h)i(the)f (priest)h(loses)f(his)g(con)m(tact)227 3502 y(with)35 b(his)f(go)s(d)h(and)g(cannot)g(cast)g(magic;)f(in)g(unholy)h(areas)g (the)g(wizard)g(is)f(unhindered.)52 b(Of)227 3618 y(course,)34 b(no)e(magic)f(and)i(unholy)f(areas)h(can)g(sometimes)e(coincide.)374 3735 y(In)f(addition,)f(wizards)i(ha)m(v)m(e)g(the)g(handicap)f(that)g (if)f(they)i(are)f(encum)m(b)s(ered)i(with)e('stu\033)7 b(',)227 3851 y(they)41 b(are)e(less)h(e\033ectiv)m(e)g(at)f(incan)m (tations.)63 b(Hea)m(vy)41 b(w)m(eap)s(ons)f(and)f(hea)m(vy)i(armour)d (are)i(the)227 3967 y(main)33 b(cause)j(sp)s(ell-failures.)47 b(See)36 b(the)f(section)g(on)g(encum)m(brance)h(\(section)f(6.3\))f (for)g(details.)227 4083 y(W)-8 b(eap)s(ons)39 b(and)e(armour)g(ha)m(v) m(e)i(no)f(e\033ect)g(on)g(the)g(practice)f(of)h(divine)f(magic)f(but)i (grace)f(re-)227 4200 y(generates)e(slo)m(w)m(er)g(than)f(mana,)f(and)h (the)h(amoun)m(t)e(of)h(grace)g(that)g(a)f(priest)h(p)s(ossesses)j (helps)227 4316 y(to)c(determine)f(the)h(success)i(of)d(their)g(pra)m (y)m(ers.)227 4585 y Fy(Section)37 b(4.2.)h(Learning)f(sp)s(ells)227 4800 y Fz(Both)31 b(t)m(yp)s(es)i(of)e(sp)s(ells)f(ma)m(y)h(b)s(e)g (learned)g(b)m(y)i(reading)d(b)s(o)s(oks)h(\(see)h(section)g(6.2\).)42 b(The)32 b(o)m(v)m(erall)227 4916 y(c)m(hance)i(of)e(learning)f(a)i(sp) s(ell)e(uses)j(the)f(follo)m(wing)d(form)m(ula)870 5224 y(\045)j(c)m(hance)h(to)e(learn)g Fh(=)g Fz(\(base)h(c)m(hance)h Fh(+)f Fz(\(2)p Fw(\002)p Fv(level)p Fz(\)\)/1.5)227 5416 y(The)47 b(base)g(c)m(hance)h(that)e(a)g(pra)m(y)m(er/incan)m (tation)f(will)f(b)s(e)j(learn)m(t)e(is)h(based)h(on)f(WIS/INT)227 5532 y(resp)s(ectiv)m(ely)-8 b(.)61 b(Lo)s(ok)38 b(at)g(table)f(2.1)h (to)g(\034nd)g(y)m(our)h Fu(b)-5 b(ase)37 b Fz(c)m(hance)j(in)d(the)i (learn\045)e(column.)59 b(If)p 227 5617 1416 4 v 340 5678 a Fs(1)377 5709 y Fr(A)28 b(\020sp)r(ell\021)34 b(is)27 b(a)g(common)g(name)h(referring)e(to)h(b)r(oth)h(pra)n(y)n(ers) d(and)j(incan)n(tations.)340 5778 y Fs(2)377 5808 y Fr(this)g(is)f(the) h(default)1948 6057 y Fz(21)p eop end %%Page: 22 26 TeXDict begin 22 25 bop 227 388 a Fz(T)-8 b(able)33 b(4.1)f(Kno)m(wn)h (Sp)s(ell)e(P)m(aths)p 356 518 3280 4 v 354 631 4 113 v 3634 631 V 354 744 V 506 710 a Fo(Mind)424 b(Creation)227 b(T)-8 b(elep)s(ortation)102 b(Information)f(T)-8 b(ransm)m(utation)p 3634 744 V 354 857 V 506 823 a(Protection)221 b(Fire)408 b(F)-8 b(rost)430 b(Electricit)m(y)161 b(Missiles)p 3634 857 V 354 970 V 506 936 a(Self)489 b(Summoning)102 b(Ab)5 b(juration)196 b(Restoration)109 b(Detonation)p 3634 970 V 354 1083 V 506 1049 a(T)-8 b(ransferrence)101 b(T)-8 b(urning)255 b(W)-8 b(ounding)232 b(Death)328 b(Ligh)m(t)p 3634 1083 V 354 1196 V 3634 1196 V 356 1199 3280 4 v 227 1573 a Fz(y)m(ou)32 b(are)e(attempting)f(to)i(learn)f(a)g Fu(pr)-5 b(ayer)p Fz(,)31 b(y)m(ou)g(w)m(ould)g(use)h(y)m(our)f(WIS)g (stat)g(to)f(\034nd)h(the)g(base)227 1689 y(c)m(hance.)57 b(Lik)m(ewise,)38 b(the)f Fv(level)h Fz(used)f(in)f(the)h(form)m(ula)e (is)h(related)g(to)g(the)h(t)m(yp)s(e)g(of)f(sp)s(ell.)54 b(If)227 1805 y(y)m(ou)32 b(are)f(attempting)e(to)i(learn)f(an)h(incan) m(tation,)f(the)h(v)-5 b(alue)31 b(of)f(lev)m(el)h(to)g(use)h(is)e(y)m (our)i(magery)227 1921 y(exp)s(erience)47 b(lev)m(el)f(\(and)f(y)m(ou)i (use)f(the)g(wisdom)f(exp)s(erience)i(lev)m(el)e(for)h(learning)e(pra)m (y)m(ers\).)227 2038 y(Once)34 b(y)m(our)f(c)m(hance)h(to)e(learn)g(a)g (sp)s(ell)f(exceeds)k(100all)30 b(attempts)i(to)h(learn)e(sp)s(ells.) 227 2308 y Fy(Section)37 b(4.3.)h(Magic)f(paths)227 2523 y Fz(Long)e(ago)g(a)f(n)m(um)m(b)s(er)i(of)f(arc)m(hmages)g(disco)m(v)m (ered)i(patterns)e(in)g(the)g(w)m(eb)i(that)e(sp)s(ells)f(w)m(ea)m(v)m (e)227 2639 y(in)44 b(the)g(aether.)79 b(They)45 b(found)f(that)g(some) g(sp)s(ells)f(had)h(structural)g(similarities)c(to)k(others)227 2755 y(and)38 b(some)f(of)g(the)g(mages)g(to)s(ok)g(to)g(studying)h (particular)d(groups)j(of)f(sp)s(ells.)57 b(These)39 b(mages)227 2872 y(found)23 b(that)g(b)m(y)g(molding)d(their)i(though)m (t)h(patterns)h(to)e(matc)m(h)g(the)i(patterns)f(of)f(the)h(sp)s(ells)f (they)227 2988 y(could)k(b)s(etter)g(utilize)f(all)f(the)i(sp)s(ells)f (of)h(the)h(group.)41 b(Because)27 b(of)f(their)f(disciplined)g (approac)m(h,)227 3104 y(the)37 b(mages)e(w)m(ere)j(describ)s(ed)e(as)h (follo)m(wing)c(sp)s(ell)i(P)m(aths.)54 b(As)37 b(they)g(attuned)f (themselv)m(es)i(to)227 3220 y(particular)27 b(sp)s(ell)h(P)m(aths)i (they)g(found)e(that)h(they)h(w)m(ould)f(b)s(ecome)f(rep)s(elled)g (from)g(others,)i(and)227 3336 y(in)e(some)h(cases)h(found)e(they)i(w)m (ere)g(denied)f(an)m(y)g(access)h(to)f(some)f(paths.)43 b(The)29 b(legacy)g(of)f(these)227 3453 y(mages)34 b(remains)g(in)f (some)h(of)g(the)h(magical)c(items)i(to)h(b)s(e)h(found)f(around)g(the) h(w)m(orld.)48 b(Use)36 b(of)227 3569 y(these)30 b(\020attuned\021)36 b(items)28 b(will)e(strongly)i(e\033ect)h(the)g(qualit)m(y)f(of)g(the)h (incan)m(tations)e(and)i(pra)m(y)m(ers)227 3685 y(cast)35 b(b)m(y)h(the)f(magician.)46 b(See)36 b(section)e(4.4)g(to)h(see)g(ho)m (w)g(the)g(w)m(orship)g(of)f(a)g(go)s(d)g(migh)m(t)f(e\033ect)227 3801 y(the)g(sp)s(ell)f(casting)g(of)g(the)h(magician.)227 4061 y Fy(T)-9 b(ec)m(hnical)36 b(details)227 4242 y Fz(The)e(P)m(aths)f(themselv)m(es)h(are)f(giv)m(en)f(in)g(table)g(4.1.) 374 4358 y(A)37 b(c)m(haracter)i(\(or)e(NPC\))h(that)f(is)g(attuned)h (to)g(a)f(P)m(ath)h(can)g(cast)g(incan)m(tations/pra)m(y)m(ers)227 4474 y(from)50 b(that)h(P)m(ath)g(at)g(80\045)f(of)h(the)g(mana/grace)f (cost)h(and)g(in)f(addition)f(receiv)m(es)k(dura-)227 4590 y(tion/damage)22 b(b)s(on)m(uses)j(as)e(if)g(the)h(caster)g(w)m (ere)h(\034v)m(e)g(lev)m(els)e(higher.)40 b(A)24 b(p)s(erson)g(that)f (is)g(rep)s(elled)227 4707 y(from)32 b(a)g(P)m(ath)i(casts)f(incan)m (tations/pra)m(y)m(ers)h(from)d(that)i(P)m(ath)g(at)f(125\045)h(of)f (the)h(mana/grace)227 4823 y(cost)43 b(and)e(receiv)m(es)j (duration/damage)39 b(b)s(on)m(uses)k(as)f(if)f(the)h(caster)g(w)m(ere) h(\034v)m(e)g(lev)m(els)f(lo)m(w)m(er)227 4939 y(\(minim)m(um)36 b(of)i(\034rst)h(lev)m(el\).)61 b(The)40 b(casting)e(time)f(is)h(also)g (mo)s(di\034ed)g(b)m(y)h(80\045)g(and)f(125\045)g(re-)227 5055 y(sp)s(ectiv)m(ely)-8 b(.)71 b(If)41 b(a)g(wizard)g(or)g(priest)h (is)e(denied)i(access)h(to)e(a)g(P)m(ath)h(they)g(cannot)g(cast)g(an)m (y)227 5172 y(sp)s(ells)32 b(from)g(it.)374 5288 y(P)m(aths)42 b(are)g(quite)g(p)s(o)m(w)m(erful;)k(they)d(don't)f(come)f(c)m(heaply) -8 b(.)72 b(Most)42 b(magical)d(items)i(with)227 5404 y(path_attuned)46 b(attributes)f(will)e(ha)m(v)m(e)j(path_rep)s(elled)e (and)i(path_denied)f(attributes)g(as)227 5520 y(w)m(ell,)32 b(to)g(balance)h(them)f(out.)1948 6057 y(22)p eop end %%Page: 23 27 TeXDict begin 23 26 bop 227 333 a Fy(Section)37 b(4.4.)h(Multiple)d(go) s(ds)227 548 y Fz(Go)s(ds)26 b(in)f Fx(Cross\034re)i Fz(are)f(not)g(omnip)s(oten)m(t)e(b)s(eings.)41 b(Eac)m(h)27 b(is)e(though)m(t)h(of)f(p)s(ossessing)i(a)f(certain)227 664 y(sphere)44 b(of)d(in\035uence,)k(indeed,)g(some)d(philosophers)f (ha)m(v)m(e)j(though)m(t)e(that)g(the)g(go)s(ds)g(migh)m(t)227 780 y(spring)k(from)f(the)h(same)g(m)m(ystical)e(patterns)j(that)f (form)e(the)j(sp)s(ell)d(P)m(aths.)85 b(Certainly)45 b(it)227 896 y(app)s(ears)35 b(that)g(eac)m(h)g(of)f(the)i(go)s(ds)e (em)m(b)s(o)s(dies)g(one)h(or)f(more)g(of)g(these)i(P)m(aths)g(\(but)f (not)f(all)f(of)227 1013 y(them!!\).)50 b(Because)36 b(the)f(go)s(ds)f(are)h(not)f(omnip)s(oten)m(t,)g(w)m(e)i(often)e(sp)s (eak)i(of)e(their)g(religions)e(as)227 1129 y(b)s(eing)g('cults'.)374 1245 y(Under)41 b(the)g(m)m(ultigo)s(d)d(option,)j(priests)g(are)g (allo)m(w)m(ed)f(to)g(select)h(from)e(an)i(arra)m(y)g(of)f(dif-)227 1361 y(feren)m(t)35 b(go)s(ds.)48 b(W)-8 b(orship)34 b(of)g(eac)m(h)h(go)s(d)e(is)h(unique,)h(and)f(brings)g(di\033ering)f (capabilities)e(to)j(the)227 1478 y(priest.)55 b(See)37 b(app)s(endix)f(C)h(for)e(a)h(listing)e(of)i(the)h(go)s(ds)f(and)g (some)g(of)g(the)g(attributes/e\033ects)227 1594 y(of)c(w)m(orshiping)g (of)g(these)i(cults.)227 1854 y Fy(4.4.1.)k(Joining)e(a)i(cult)227 2034 y Fz(Pra)m(ying)32 b(at)g Fu(aligne)-5 b(d)31 b Fz(altars)f @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: altar.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff0000000000000000000000000000 000000000000000000ffffffffffffffffff008888888888888888888888 8888888888888888888800ffffffffffffffff0000885656565656565656 56565656565656565656568800ffffffffffffffff000088888888888888 888888888888888888888888888800ffffffffffffff0056008856565656 5656565656565656565656565656568800ffffffffffffff005600888888 88888888888888888888888888888888888800ffffffffffff0056560088 565656565656565656565656565656565656568800ffffffff0000005656 0088888888888888888888888888888888888888888800ffffffff000056 56560088565656565656565656565656565656565656568800ffffff0000 005656560088888888888888888888888888888888888888888800ffffff 0000565656560088565656565656565656565656565656565656568800ff ffff00005656565600888888888888888888888888888888888888888888 00ffffff0000565656560000000000000000000000000000000000000000 000000ffffff000056565600568888885688888856888888568888885688 88885600ffffffff00005656560056565688565656885656568856565688 565656885600ffffffff0000565600568888885688888856888888568888 88568888885600ffffffffff000056560056565688565656885656568856 565688565656885600ffffffffff00005600568888885688888856888888 56888888568888885600ffffffffffff0000560056565688565656885656 568856565688565656885600ffffffffffff000000568888885688888856 8888885688888856888888560000ffffffffffff00000056565688565656 88565656885656568856565688560000ffffffffffff0000000000000000 000000000000000000000000000000000000ffffffffffff005656565656 56565656565656565656565656565656565600ffffffffffffff00000000 000000000000000000000000000000000000000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goldflagstone.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image add6adb59cb59c7b7b7b7b8c948473847b847b7373ad9c9c8cad84847363 9c9ca5adbdade7ade7bd7b847b736373949c7b8473739c9484adadc6bd73 7394c6adadadadadadbd9cbd948473739cce9cc6b584739c9cada58cadad ce849494adbdadadadadadadadd6bd73739c9cadbdadde94739cadadadad ce9ca5f79ca5adadadadadadadadadadce849c9cadadadad9cce739cadad adadadbdbdb594a5adadadadadadadb9bbc2cac9c2c0c0c0cbc0c2c1c1c0 d5b9bbb9caafd8f7949cadadadadadadadc9cdc2c9cac9c2c2bec5c2c2c9 c2c2c2c9cdb9afcad8ada573a5adadadadadadc2c2c2c2c2c2ae9c9ba4b6 9ec2c2c2c2c2c2c2c2c2d8d6a584a5adadadadadadc2c9cac9c2b19cafd4 a49eb6c0c2c0c2c2c9cac9c2d8ada5b57b9484bdadadadc1c5bbb9c2a4ac c9b4acaca4cac9c9c2c1c5bbb9c2d8adadde947b848494bdbdc2c9c9c9c9 a7a7bca7b6afa4c5c2c5c9c2c9c9c9c9d8a5adb5a5847373637373b9c2c2 c2c2af9ca4beb9b1acc2b9c2c2c2c2c2c2c2d8adb5bd9484739c9cc69cc2 bba4bcc2c2a09ec5cac5c0c9c5bcd4c2bbcacac2d8adb59484739c9cadad bdc2c09bbec1a9af9eacc1d4c9cdaf9c9ba4b69ec2c1d8bdb594739cadad adadadc2ac9bc1aeacc2a7a4c0c9c0b59cafc3a49cbac1bbd89494947394 adadadadadc2b49eaca7c2c2a0a7c2c2c2a4a9c2b5acaca4c2c2d8737384 84ad84adadadadc2c2b59ba7b1a49ebcc2dcb9aca7baa5c2aea0c0bbd89c bd9c84739c9cadadadc0b6a5b6a7a5a9b6c2c9c0c9c09ca4bec0a9acc2c0 d8e7add6ad739cadadadadc2c0c9c9c2c2c2c2c5a4b9b9bba09ec5c2c0c9 c9c2d8adbdadf7adbdadadadadc2c2c2c2c2c2b9c2af9bbec2a7b1a0acc2 c2c2c2c2d8adbdbdbda58494bdadbdc1dfb9c9bbc9c2c2b59bbcb5aec9ac a4c1dfb9c9bbd8bdbd8c84848c736373adb9bbc9cac9c2c0c0bc9ea7a7c1 c0a0afb9bbc9caafd8bd8484738cd6d69cc6cec9cdb9c9cac9c2c2c2b49b a7b1a49ebec9cdb9afcad894849c9c9cadbdbdadbdc2c2c2c2c2c2c2b9c2 a5b6a9a4a9bec2c2c2c2c2c2d873739cadadadadadadadcdc9cac9c2c2c9 c2c0c2c2c9c0c2c0c2c2c9cac9c2d8739c9cadadadadadadadc1b9bbb9c2 c0c9c9c9c2c1c5cac9c9c2c1c5bbb9c2d8739cadadadadadadadadd8d8d8 d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8849cadadadadadadadadad bdbd849c9cadadadadbd94849cadadadadadadadada573adadadadadadad adadbd8c849cadadadadbdbd8c739cadadadadadadadbdbd8494adadbda5 a5a5bdbdbd94849cadadadbdbd8c8c849ca5adadadadadbdbd8c8c84b5bd 849cbdbdbd9494947b73adadbdbd948c84847bbdbdbdbdadbdbd94948484 73848494638473847b7b7b7badbdbd8c9484847b848484848484ad949484 8473739c currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goldgrass.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image 786161616161616161786151786161616161517861517861786161616178 616178786151786151956178615178617861614d51786161616178615178 786161616161517861517861517851cb61517861517861515178cb515178 616161cb615161cb61614d6161517861515178516161cb61517851785178 614d617861cb5178cb61517851785178615e6178616161cb616151786151 517861615178616161616151785178b9bbc2cac9c2c0c0c0cbc0c2c1c1c0 d5b9bbb9caafd861616161786161616161c9cdc2c9cac9c2c2bec5c2c2c9 c2c2c2c9cdb9afcad851786151516161cb6161c2c2c2c2c2c2ae9c9ba4b6 9ec2c2c2c2c2c2c2c2c2d8955178517851956161cbc2c9cac9c2b19cafd4 a49eb6c0c2c0c2c2c9cac9c2d878517851785178615178c1c5bbb9c2a4ac c9b4acaca4cac9c9c2c1c5bbb9c2d878616161616161517861c2c9c9c9c9 a7a7bca7b6afa4c5c2c5c9c2c9c9c9c9d851616151784d61616161b9c2c2 c2c2af9ca4beb9b1acc2b9c2c2c2c2c2c2c2d878cb6151786161519561c2 bba4bcc2c2a09ec5cac5c0c9c5bcd4c2bbcacac2d8786178616161615178 78c2c09bbec1a9af9eacc1d4c9cdaf9c9ba4b69ec2c1d861786161615178 616151c2ac9bc1aeacc2a7a4c0c9c0b59cafc3a49cbac1bbd8cb61517861 5178615178c2b49eaca7c2c2a0a7c2c2c2a4a9c2b5acaca4c2c2d8615178 61616161615178c2c2b59ba7b1a49ebcc2dcb9aca7baa5c2aea0c0bbd878 616161616151786161c0b6a5b6a7a5a9b6c2c9c0c9c09ca4bec0a9acc2c0 d87861517861517861cb61c2c0c9c9c2c2c2c2c5a4b9b9bba09ec5c2c0c9 c9c2d861615178616161616161c2c2c2c2c2c2b9c2af9bbec2a7b1a0acc2 c2c2c2c2d878616178616161519551c1dfb9c9bbc9c2c2b59bbcb5aec9ac a4c1dfb9c9bbd84d617861617861517851b9bbc9cac9c2c0c0bc9ea7a7c1 c0a0afb9bbc9caafd861785178517851786161c9cdb9c9cac9c2c2c2b49b a7b1a49ebec9cdb9afcad878615178516161616161c2c2c2c2c2c2c2b9c2 a5b6a9a4a9bec2c2c2c2c2c2d851786161616161517861cdc9cac9c2c2c9 c2c0c2c2c9c0c2c0c2c2c9cac9c2d878615178615178616151c1b9bbb9c2 c0c9c9c9c2c1c5cac9c9c2c1c5bbb9c2d861517861615178615178d8d8d8 d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d86161616161616161cb6161 5178616151786161517861615178cb517851785195615178517861517861 5e517861cb51786151517861517851787861517861517851786151786151 7861616161615178616178616151786151786161616161616161cb616161 7861615178cb51786151786151786161cb61616151956151785178615178 615161616151785178615178615178616161cb6178615178517861517851 51615178 currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 159 w(is)h(the)h(usual)g(w)m(a)m(y)h(in)e(whic)m(h)i(a)f (priest)f(in)m(teracts)i(with)227 2150 y(their)42 b(go)s(d/cult.)71 b(Aligned)41 b(altars)g(are)h(iden)m(ti\034ed)g(b)m(y)h(their)e(name)h (\(e.g.)72 b(altar)41 b(of)g Fj(<)p Fz(go)s(d's)227 2267 y(name)p Fj(>)p Fz(\))c(and)g(ma)m(y)f(b)s(e)i(found)f(in)f(v)-5 b(arious)36 b(maps)h(all)e(o)m(v)m(er)j(the)f(w)m(orld)g(of)f Fx(Cross\034re)p Fz(.)58 b(When)227 2383 y(a)35 b(pla)m(y)m(er)g(pra)m (ys)h(o)m(v)m(er)g(an)f(aligned)e(altar,)h(one)i(of)e(three)i(things)e (ma)m(y)h(happ)s(en)g(based)h(on)f(the)227 2499 y(pla)m(y)m(ers)f (curren)m(tly)f(w)m(orship)s(ed)g(go)s(d:)471 2698 y(\(1\))28 b Fy("Unaligned")k(pla)m(y)m(er)h(pra)m(ys)g(o)m(v)m(er)f(an)h(altar)28 b Fw(\000)h Fz(results)f(in)g(that)g(pla)m(y)m(er)471 2815 y(b)s(ecoming)j(a)i(w)m(orship)s(er)g(of)f(the)h(go)s(d)e(the)i (altar)e(is)h(dedicated)h(to.)471 2972 y(\(2\))45 b Fy(Pla)m(y)m(er)52 b(pra)m(ys)h(o)m(v)m(er)f(their)f(go)s(d's)i(altar)45 b Fw(\000)h Fz(results)g(in)e(faster)i(grace)471 3088 y(regeneration.)78 b(In)45 b(addition,)g(pla)m(y)m(er)f(ma)m(y)g(pra)m (y)h(to)f(gain)f(up)h(to)g(t)m(wice)h(their)471 3205 y(normal)35 b(amoun)m(t)i(of)f(grace.)57 b(Also,)38 b(from)e(time)f(to) i(time)f(y)m(our)h(go)s(d)g(migh)m(t)e(giv)m(e)471 3321 y(y)m(ou)29 b(information,)d(blessings,)k(or)e(something)f(really)g(go) s(o)s(d;)i(it)e(dep)s(ends)j(on)f(y)m(our)471 3437 y(WIS,)k(PO)m(W)h (and)e(wisdom)g(exp)s(erience.)471 3595 y(\(3\))k Fy(Pla)m(y)m(er)k (pra)m(ys)i(o)m(v)m(er)f(alien)f(go)s(d's)i(altar)36 b Fw(\000)g Fz(results)g(in)g(punishmen)m(t)g(of)471 3711 y(the)h(pla)m(y)m(er)g(\(generally)e(they)i(lose)f(some)h(of)f (their)f(wisdom)h(exp)s(erience\).)56 b(This)471 3827 y(action)32 b Fu(c)-5 b(an)32 b Fz(result)g(in)g(the)h(defection)f(of)h (the)f(pla)m(y)m(er)h(to)g(the)g(alien)d(go)s(d's)j(cult.)227 4027 y(Note)47 b(that)g(once)h(a)e(pla)m(y)m(er)h(has)h(joined)e(a)h (cult,)j(it)c(is)g(imp)s(ossible)f(to)h(go)g(bac)m(k)i(to)f(b)s(eing) 227 4143 y(\020unaligned\021)39 b(to)32 b(an)m(y)h(go)s(d.)227 4403 y Fy(Summary)k(of)h(b)s(ene\034ts/p)s(enalties)g(for)f(joining)227 4583 y Fz(The)d(follo)m(wing)c(things)i(happ)s(en)h(when)g(a)g(w)m (orship)s(er)g(joins)e(a)i(go)s(d's)f(cult:)471 4782 y(-)k(the)g(w)m(orship)s(er)g(gains)f(access)j(to)d(the)i(sp)s(ecial)e (\035a)m(v)m(or)h(of)g(magic)e(b)s(elonging)g(to)471 4899 y(the)f(cult)f(\(see)i(table)e(4.2\).)471 5056 y(-)41 b(the)g(abilit)m(y)e(to)i(cast)h(magic)d(is)i(altered)f(to)h(re\035ect) h(the)g(p)s(o)m(w)m(ers)g(of)f(the)g(w)m(or-)471 5173 y(ship)s(er's)46 b(go)s(d.)82 b(Some)45 b(sp)s(ells)g(will)e(b)s(e)j (easier)f(to)g(cast;)53 b(others)46 b(will)d(b)s(e)j(more)471 5289 y(di\036cult,)i(and)e(some)g(sp)s(ell)e(P)m(aths)j(will)c(b)s(e)j (forbidden.)82 b(It)46 b(is)f(imp)s(ossible)f(to)471 5405 y(regain)32 b(forbidden)g(sp)s(ells)g(b)m(y)h(an)m(y)h(means)e (except)i(lea)m(ving)e(the)h(cult.)471 5563 y(-)d(the)g(w)m(orship)s (er)g(b)s(ecomes)g(protected)h(and/or)f(vulnerable)f(to)h(certain)f (attac)m(ks.)227 5762 y(Note)k(that)f(a)h(pla)m(y)m(er)f(can)h(b)s (elong)f(to)g(only)g Fu(one)g Fz(cult)g(at)g(an)m(y)h(one)g(time.)1948 6057 y(23)p eop end %%Page: 24 28 TeXDict begin 24 27 bop 227 509 a Fz(T)-8 b(able)33 b(4.2)f(Sp)s(ecial) f(priest)h(pra)m(y)m(ers.)p 416 639 3162 4 v 414 739 4 100 v 683 709 a Fr(Pra)n(y)n(er)695 b(Description)p 3575 739 V 416 742 3162 4 v 416 759 V 414 858 4 100 v 3575 858 V 414 958 V 683 928 a(Bless)751 b(Enhances)27 b(the)h(recipien)n(ts)f(com)n(bat)g(abilit)n(y)p 3575 958 V 414 1058 V 1619 1028 a(and)g(confers)g(some)g(of)g(the)h(go)r(ds) f(sp)r(ecial)p 3575 1058 V 414 1157 V 1619 1127 a(sphere)g(of)g (protection.)p 3575 1157 V 414 1257 V 3575 1257 V 414 1357 V 683 1327 a(Banishmen)n(t)505 b(An)28 b Fl(AT_DEATH)2107 1297 y Fm(1)2131 1327 y Fr(attac)n(k)f(is)g(made)g(v)n(ersus)p 3575 1357 V 414 1456 V 1619 1426 a(enemies)g(of)h(the)g(caster's)e(go)r (d.)p 3575 1456 V 414 1556 V 3575 1556 V 414 1655 V 683 1626 a(Call)h(holy)h(serv)-5 b(an)n(t)318 b(W)-7 b(eak)n(er)26 b(v)n(ersion)g(of)i(an)f(a)n(v)-5 b(atar)26 b(is)h(summoned.)p 3575 1655 V 414 1755 V 3575 1755 V 414 1855 V 683 1825 a(Cause)g(w)n(ounds)420 b(These)27 b(pra)n(y)n(ers)e(use)i(the)h(attac) n(kt)n(yp)r(e)f(of)p 3575 1855 V 414 1954 V 1619 1924 a(\020go)r(dp)r(o)n(w)n(er\021.)34 b(This)28 b(means)f(they)g(will)h (e\033ect)p 3575 1954 V 414 2054 V 1619 2024 a(magic)e(imm)n(une)i (creatures)e(AND)j(eac)n(h)e(pra)n(y)n(er)e(has)p 3575 2054 V 414 2154 V 1619 2124 a(the)j(sp)r(ecial)f(attac)n(kt)n(yp)r (e\(s\))g(of)g(the)h(priest's)f(go)r(d.)p 3575 2154 V 414 2253 V 3575 2253 V 414 2353 V 683 2323 a(Consecrate)537 b(Dedicates)27 b(an)g(altar)g(to)g(the)h(caster's)f(go)r(d.)p 3575 2353 V 414 2452 V 3575 2452 V 414 2552 V 683 2522 a(Curse)727 b(Decreases)26 b(the)i(recipien)n(ts)f(com)n(bat)f(abilit)n (y)p 3575 2552 V 414 2652 V 1619 2622 a(and)h(confers)g(some)g (vulnerabilities)g(particular)p 3575 2652 V 414 2751 V 1619 2721 a(to)g(the)h(caster's)e(go)r(d.)p 3575 2751 V 414 2851 V 3575 2851 V 414 2951 V 683 2921 a(Holy)i(orb)616 b(Its)27 b(lik)n(e)g(a)h(\034reball,)f(but)h(has)f(the)h(same)f (e\033ect)p 3575 2951 V 414 3050 V 1619 3020 a(as)g(holy)g(w)n(ord)2082 2990 y Fm(2)2082 3020 y Fr(.)35 b(This)28 b(pra)n(y)n(er)d(is)j(most)f (e\033ectiv)n(e)p 3575 3050 V 414 3150 V 1619 3120 a(against)f(single)h (creatures.)p 3575 3150 V 414 3249 V 3575 3249 V 414 3349 V 683 3319 a(Holy)h(w)n(ord)1061 3289 y Fm(2)1619 3319 y Fr(This)f(pra)n(y)n(er)f(sho)r(ots)g(forth)i(a)f(cone)g(of)h(p)r (o)n(w)n(er)p 3575 3349 V 414 3449 V 1619 3419 a(that)f(will)h(damage)f (only)g(enemies)g(of)h(the)g(caster's)p 3575 3449 V 414 3548 V 1619 3518 a(go)r(d.)p 3575 3548 V 414 3648 V 3575 3648 V 414 3748 V 683 3718 a(Holy)g(wrath)524 b(Curren)n(tly)26 b(the)i(most)g(p)r(o)n(w)n(erful)e(\020holy)h(w)n(ord\021)3104 3688 y Fm(2)p 3575 3748 V 414 3847 V 1619 3817 a Fr(pra)n(y)n(er)e(a)n (v)-5 b(ailable.)p 3575 3847 V 414 3947 V 3575 3947 V 414 4046 V 683 4017 a(Summon)28 b(a)n(v)-5 b(atar)362 b(Summons)27 b(a)g("golem")f(that)i(is)f(tailored)g(to)p 3575 4046 V 414 4146 V 1619 4116 a(the)h(p)r(o)n(w)n(ers)e(of)h(the)h (w)n(orship)r(ed)f(go)r(d.)36 b(This)p 3575 4146 V 414 4246 V 1619 4216 a(pra)n(y)n(er)25 b(is)i(more)g(p)r(o)n(w)n(erful)g (\(in)h(general\))p 3575 4246 V 414 4345 V 1619 4315 a(than)f(a)g(summoned)h(elemen)n(tal)f(and)h(is)f(one)p 3575 4345 V 414 4445 V 1619 4415 a(of)g(the)h(priest's)f(most)h(p)r (oten)n(t)f(attac)n(k)g(sp)r(ells.)p 3575 4445 V 414 4545 V 3575 4545 V 414 4644 V 683 4614 a(Summon)h(cult)g(monsters)99 b(Summons)27 b(creatures)f(friendly)i(to)f(the)h(priest's)p 3575 4644 V 414 4744 V 1619 4714 a(go)r(d.)36 b(Dep)r(ending)28 b(on)f(the)h(go)r(d)f(this)h(can)g(b)r(e)f(a)p 3575 4744 V 414 4843 V 1619 4814 a(p)r(o)n(w)n(erful)f(or)h(wimp)n(y)h(pra)n(y)n (er.)p 3575 4843 V 414 4943 V 3575 4943 V 416 4946 3162 4 v 227 5226 1416 4 v 190 5324 a Fm(1)227 5354 y Fr(The)k(target)f(and) g(caster's)g Fl(levels)e Fr(are)i(compared.)48 b(If)32 b(the)g(caster's)e Fl(level)g Fr(is)h(higher,)h(then)h(the)f(creature) 227 5454 y(will)c(probably)f(b)r(e)g(destro)n(y)n(ed.)190 5541 y Fm(2)227 5571 y Fr(\020holy)i(w)n(ord\021)35 b(also)29 b(de\034nes)g(a)h(class)e(of)i(pra)n(y)n(ers.)40 b(These)30 b(sp)r(ells)f(are)g(all)g(designed)g(to)h(sla)n(y)e(only)h(the)h (enemies)227 5671 y(of)e(the)g(priest's)f(go)r(d.)1948 6057 y Fz(24)p eop end %%Page: 25 29 TeXDict begin 25 28 bop 227 333 a Fy(4.4.2.)38 b(Example)f(go)s(d)227 513 y Fz(Lets)31 b(create)g(an)f(example)g(go)s(d)p Fw(\000)p Fz(the)g(\020go)s(d)f(of)h(the)h(undead\021.)42 b(If)31 b(y)m(ou)f(w)m(orship)h(the)g(go)s(d)e(of)h(the)227 630 y(undead,)c(don't)e(exp)s(ect)g(to)f(b)s(e)g(able)g(to)g(gain)f(priest) h(exp)s(erience)2580 593 y Ft(3)2644 630 y Fz(for)f(killing)e(the)k (undead!)41 b(But)227 746 y(y)m(ou)c(migh)m(t)d(gain,)h(as)h(a)f (priest)h(of)f(the)h(undead,)h(greater)f(p)s(o)m(w)m(ers)h(of)e (commanding)e(undead,)227 862 y(and)h(exp)s(erience)g(for)f(killing)d (certain)j(\(living\))e(creatures)j(that)g(serv)m(e)h(an)e(enem)m(y)h (go)s(d.)45 b(Eac)m(h)227 978 y(priest)34 b(tak)m(es)i(on)e(a)g(p)s (ortion)f(of)g(the)i(\020aura\021)41 b(of)33 b(their)h(go)s(d;)h(this)e (means)h(that)g(our)g(priest)h(will)227 1095 y(probably)k(b)s(ecome)g (protected)h(to)f(life-damaging)c(magic)i(lik)m(e)h(draining)g(and)h (death,)i(while)227 1211 y(con)m(v)m(ersely)47 b(b)s(ecoming)d(more)g (vulnerable)g(to)h(\034re.)80 b(Suc)m(h)46 b(a)f(priest,)j(b)s(ecause)e (their)e(go)s(d's)227 1327 y(domain)31 b(do)s(es)i(not)f(include)g(the) h(living,)e(probably)h(w)m(on)m(t)h(b)s(e)g(capable)f(of)g(healing)f (either.)227 1598 y Fy(Section)37 b(4.5.)h(Alc)m(hem)m(y)227 1812 y Fz(Alc)m(hem)m(y)28 b(is)f(a)h(sub-t)m(yp)s(e)g(of)g(wizardry)-8 b(.)41 b(Being)27 b(an)h(alc)m(hemist)e(is)h(easy;)j(y)m(ou)f(only)e (need)h(satisfy)227 1929 y(the)33 b(follo)m(wing:)471 2128 y(1\))f(b)s(e)h(able)f(to)g(cast)h(the)g Fv(alchemy)i Fz(sp)s(ell.)471 2256 y(2\))d(ha)m(v)m(e)i(access)h(to)d(a)g(cauldron)g @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: cauldron.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000ffffffffffffff ffffffffffffffffffffffffffffffffffff000000212121000000ffffff ffffffffffffffffffffffffffffffffffff000000002121404040400000 00ffffffffffffffffffffffffffffffffffff0000002121214040406161 61616100ffffffffffffffffffffffffffffffff00000021212140404061 61616161616100ffffffffffffffffffffffffffffff0000002121404040 400000616161616100ffffffffffffffffffffffffffff00000021212140 40400061617f61616161610061ffffffffffffffffffff21402100212121 214040000061617fa161616161004061ffffffffffffffff214021210000 212140404000007f7fa1a17f7f616161004061ffffffffffff2140ff0000 00002121404040006100a1a17f7f7f616161004061ffffffffffff214000 00000000212121404000616161007f7f7f7f6161004061ffffffffffff21 4000000000002121214040000000007f7f7f7f7f6161004061ffffffffff ff2140000000000021212140406161617f7f7f7f7f616161004061ffffff ffffffff21402121000021212140404061617f7f7f7f7f6161004061ffff ffffffffffffff214021000021212140404061617f7f7f7f6161610061ff ffffffffffffffffffff000000002121214040406161617f7f61616100ff ffffffffffffffffffffffff000000000021214040406161616161616161 00ffffffffffffffffffffffffff00000000002121404040406161616161 6100ffffffffffffffffffffffffff000000000000002121404040616161 61000000ffffffffffffffffffffffff0000000000002121002140404040 6100006100ffffffffffffffffffffffffff000000000000002121400000 000000610000ffffffffffffffffffffffffffff00000000ff2121000040 404040610000ffffffffffffffffffffffffffffffffff0000ffff210000 0000000000000000ffffffffffffffffffffffffffffffffffffffffffff 0021400000ff000000ffffffffffffffffffffffffffffffffffffffffff ffff00214000ffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000210000ffffffffffffffffffffffffffffffffffffffffffff ffffffffff00214000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: cauldron.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000ffffffffffffff ffffffffffffffffffffffffffffffffffff000000212121000000ffffff ffffffffffffffffffffffffffffffffffff000000002121404040400000 00ffffffffffffffffffffffffffffffffffff0000002121214040406161 61616100ffffffffffffffffffffffffffffffff00000021212140404061 61616161616100ffffffffffffffffffffffffffffff0000002121404040 400000616161616100ffffffffffffffffffffffffffff00000021212140 40400061617f61616161610061ffffffffffffffffffff21402100212121 214040000061617fa161616161004061ffffffffffffffff214021210000 212140404000007f7fa1a17f7f616161004061ffffffffffff2140ff0000 00002121404040006100a1a17f7f7f616161004061ffffffffffff214000 00000000212121404000616161007f7f7f7f6161004061ffffffffffff21 4000000000002121214040000000007f7f7f7f7f6161004061ffffffffff ff2140000000000021212140406161617f7f7f7f7f616161004061ffffff ffffffff21402121000021212140404061617f7f7f7f7f6161004061ffff ffffffffffffff214021000021212140404061617f7f7f7f6161610061ff ffffffffffffffffffff000000002121214040406161617f7f61616100ff ffffffffffffffffffffffff000000000021214040406161616161616161 00ffffffffffffffffffffffffff00000000002121404040406161616161 6100ffffffffffffffffffffffffff000000000000002121404040616161 61000000ffffffffffffffffffffffff0000000000002121002140404040 6100006100ffffffffffffffffffffffffff000000000000002121400000 000000610000ffffffffffffffffffffffffffff00000000ff2121000040 404040610000ffffffffffffffffffffffffffffffffff0000ffff210000 0000000000000000ffffffffffffffffffffffffffffffffffffffffffff 0021400000ff000000ffffffffffffffffffffffffffffffffffffffffff ffff00214000ffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000210000ffffffffffffffffffffffffffffffffffffffffffff ffffffffff00214000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w(.)471 2372 y(3\))g(ha)m(v)m(e)i(some)f(ingredien)m (ts.)227 2571 y(T)-8 b(o)42 b(create)f(something)f(put)i(ingredien)m (ts)f(in)f(the)i(cauldron,)g(then)g(cast)g(the)f(')p Fv(alchemy)p Fz(')i(in-)227 2687 y(can)m(tation.)59 b(Y)-8 b(ou)38 b(migh)m(t)f(mak)m(e)h(something)f(:\).)59 b(Be)39 b(w)m(arned)g(though!)59 b(bac)m(k\034re)40 b(e\033ects)f(are)227 2803 y(p)s(ossible,)26 b(esp)s(ecially)e(if)f(y)m(ou)j(thro)m(w)f(a)f (lot)g(of)g(stu\033)h(in)f(the)h(p)s(ot.)41 b(In)25 b(fact,)h(the)f (more)f(junk)i(whic)m(h)227 2920 y(is)h(in)f(the)h(cauldron,)h(the)f Fu(worse)f Fz(an)m(y)h(p)s(oten)m(tial)e(bac)m(k\034re)k(is)d(lik)m (ely)g(to)g(b)s(e.)42 b(Bac)m(k\034re)28 b(generally)227 3036 y(o)s(ccurs)h(when)f(y)m(ou)h(get)e(the)i(ingredien)m(ts)e(wrong)h (but)g(lo)m(w-lev)m(el)e(alc)m(hemists)h(attempting)f(v)m(ery)227 3152 y(di\036cult)32 b(\(4)p Fh(+)g Fz(ingredien)m(t\))g(form)m(ulae)f (ma)m(y)h(ha)m(v)m(e)i(problems)e(to)s(o!)374 3268 y(In)i(order)g(to)f (get)h(b)s(etter)g(at)f(making)g(stu\033,)h(y)m(ou)h(will)c(need)k(to)e (learn)g(the)h Fv(alchemy)i Fu(skil)5 b(l)p Fz(.)227 3385 y(Bo)s(oks)27 b(found)f(in)g(shops)h(\(and)f(elsewhere\))i(will)c (giv)m(e)i(y)m(ou)h(form)m(ulae)e(for)g(making)g(stu\033.)42 b(There)227 3501 y(is)32 b(no)g(hard)h(limit)28 b(on)k(the)h(n)m(um)m (b)s(er)g(of)f(form)m(ulae)e(whic)m(h)j(migh)m(t)e(mak)m(e)h(something) f(\(the)i(co)s(de)227 3617 y(is)47 b(prett)m(y)i(\035exible\),)i(so)d (y)m(ou)g(can)g(alw)m(a)m(ys)g Fu(exp)-5 b(eriment)47 b Fz(on)g(y)m(our)i(o)m(wn,)j(but)47 b(this)h(will)d(b)s(e)227 3733 y(dangerous!)227 4004 y Fy(Section)37 b(4.6.)h(Rune)f(magic)227 4219 y Fz(Runes)24 b(are)f(another)g(sp)s(ecial)f(form)g(of)g (wizardry;)k(essen)m(tially)d(runes)h(are)f(magical)d(inscriptions)227 4335 y(on)41 b(the)g(dungeon)g(\035o)s(or)e(whic)m(h)i(cast)g(a)f(sp)s (ell)g(\(or)g(\020detonate\021\))g(when)h(something)e(steps)j(on)227 4451 y(them.)g(Flying)26 b(ob)5 b(jects)30 b(don't)e(detonate)g(runes.) 43 b(Bew)m(are!)g(Runes)29 b(are)f(in)m(visible)f(most)g(of)h(the)227 4567 y(time!)374 4684 y(There)43 b(are)e(sev)m(eral)i(runes)g(whic)m(h) f(are)f(sp)s(ecialized;)46 b(these)d(can)f(b)s(e)g(set)g(as)g(y)m(our)g (range)227 4800 y(sp)s(ell.)h(Some)32 b(of)g(these)i(are:)p 227 4887 1416 4 v 340 4948 a Fs(3)377 4979 y Fr(i.e.)j(exp)r(erience)27 b(for)g(the)h Fl(wisdom)d Fr(exp)r(erience)i(category)1948 6057 y Fz(25)p eop end %%Page: 26 30 TeXDict begin 26 29 bop 521 328 a Fz(Rune)33 b(of)f(Fire)g @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-fire.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff4dffffff ffffffff4d4d4d4dffffffffffffffffffffffffffffffffffffffffff4d 4d4d4d4d4d4d4d4d4d4d4dffffffffffffffffffffffffffffffffffffff ffff4d4d4dffffffffff4d4d4dffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff4d4dffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff4d4dffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff4d4dffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff4d4dffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff4d4dffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff4d4dffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff4d4dffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff4dffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff4dffff ffffffffffffffffffffffffffffffff4dffffffffffff4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4dffffffffffffffffffff4d4d4d4d4d4d4d4d4dffff ffffffffffff4d4d4d4d4d4dffffffffffffffffffff4d4d4dffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 436 w(-)99 b(do)s(es)33 b(\034re)g(damage)1661 448 y(when)h(it)e(detonates)521 579 y(Rune)h(of)f(F)-8 b(rost)32 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-frost.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff7bffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff7b7b7bffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff7b7b7bffffffffffffffffffffffffffffffffffffffff ffffffff7b7bffffffff7bffffffff7b7bffffffffffffffffffffffffff ffffffffffff7b7b7bffffff7bffffff7b7b7bffffffffffffffffffffff ffffffffffffffffffff7b7b7bff7bff7b7b7bffffffffffffffffffffff ffffffffffffffffffffffffffffff7b7b7bffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff7b7b7bffffffffffffffffffff ffffffffffffffffffffffffffffffff7b7b7bff7bff7b7b7bffffffffff ffffffffffffffffffffffffffffffff7b7b7bffffff7bffffff7b7b7bff ffffffffffffffffffffffffffffffffffff7b7bffffffff7bffffffff7b 7bffffffffffffffffffffffffffffffffffffffffffffffff7b7b7bffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff7b7b7b ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 7bffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 390 w(-)99 b(do)s(es)33 b(cold)f(damage)521 709 y(Rune)h(of)f(Blasting)f @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-blast.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffa7ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffa7ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffa7a7 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffa7a7ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffa7a7ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffa7a7ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffa7ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffa7ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffa7ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffa7ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffa7ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffa7ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffa7a7ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffa7a7a7a7a7a7a7a7ff ffffffffffffffffffffffffffffffffffffffffffa7a7a7a7ffffffffff a7a7a7a7ffffffffffffffffffffffffffffffffffa7a7ffffffa7ffffff ffffffffffa7a7ffffffffffffffffffa7ffffffffa7a7ffffffffffa7a7 ffffffffffffffa7a7a7ffffffffffffffffa7ffffa7a7a7ffffffffffff a7a7ffffffffffa7a7a7a7a7ffffffffffffffffffa7a7a7a7ffffffffff ffffa7a7ffffffffffffffa7a7ffffffffffffffffffffa7a7a7ffffffff a7a7a7a7a7a7ffffffffffffffffffffffffffffffffffffffffa7ffffff ffffffffa7a7a7ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 257 w(-)99 b(do)s(es)33 b(ph)m(ysical)g(damage)521 840 y(Rune)g(of)f(Sho)s(c)m(king)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-shock.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffe2e2e2e2ffffffffffffffffffffffffffffe2ffffffffe2e2e2e2e2 e2e2e2e2e2e2e2e2e2e2ffffffffffffffffffffffffe2e2e2e2e2e2e2e2 ffffffffffffffffffe2e2e2e2ffffffffffffffffffffffffe2e2e2ffff ffffffffffffffffffffe2e2e2e2e2ffffffffffffffffffffffffffffff ffffffffe2e2ffffffffffe2e2e2e2ffffffffffffffffffffffffffffff ffffffffffffffe2e2e2ffffe2e2ffffffffffffffffffffffffffffffff ffffffffffffffffffffe2e2e2e2ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffe2e2ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffe2e2ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffe2e2ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffe2e2ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffe2ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffe2e2ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffe2ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffe2e2ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffe2ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffe2e2ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff e2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffe2ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 226 w(-)99 b(do)s(es)33 b(electric)f(damage)521 971 y(Rune)h(of)f(Death)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-death.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff ffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffff00 ffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffff ff0000ffffffffffffffffffffffffffffffffffffff0000ffffffff00ff ffff000000000000ffffffffffffffffffffffffffffffff0000ffffff00 ffff0000ffff00ffffff0000ffffffffffffffffffffffffffff0000ffff ff00ff00ffffffff00ffffffff0000ffffffffffffffffffffffffff0000 ffffff0000ffffffffff0000ffffffff0000ffffffffffffffffffffffff 00ffffffff00ffffffffffff0000ffffffff0000ffffffffffffffffffff ff0000ffffff0000ffffffffffff0000ffffffffff0000ffffffffffffff ffffff0000ffff00ff00ffffffffffff0000ffffffffff0000ffffffffff ffffffffff0000ffff00ff00ffffffffffff0000ffffffffff0000ffffff ffffffffffffff0000ff00ffffff00ffffffffff0000ffffffffff0000ff ffffffffffffffffff0000ff00ffffff00ffffffffff0000ffffffff0000 ffffffffffffffffffffff0000ff00ffffffff00ffffff0000ffffffffff 0000ffffffffffffffffffffffff0000ffffffffff00ffffff0000ffffff ff0000ffffffffffffffffffffffffff0000ffffffffffff00ffff0000ff ff000000ffffffffffffffffffffffffffff0000ffffffffffffff000000 0000000000ffffffffffffffffffffffffffffffff00ffffffffffffffff 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 350 w(-)99 b(attac)m(ks)34 b(with)e(attac)m(kt)m(yp)s(e) 1661 1091 y("death")h(at)f(caster)h(lev)m(el)521 1332 y(+)f(some)h(others)g(y)m(ou)g(ma)m(y)f(disco)m(v)m(er)i(in)e (grimores.)374 1553 y(The)i(sp)s(ell)e('disarm')g(ma)m(y)h(b)s(e)g (used)i(to)e(try)g(and)g(destro)m(y)i(a)e(rune)h(y)m(ou'v)m(e)h(disco)m (v)m(ered.)47 b(In)227 1669 y(addition,)37 b(there)i(are)e(some)g(sp)s (ecial)g(runes)h(whic)m(h)g(ma)m(y)g(only)f(b)s(e)g(called)g(with)g (the)h('in)m(v)m(ok)m(e')227 1785 y(command:)521 1996 y(Magic)32 b(Rune)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: penta.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0000000000000000ffffffffffffffff ffffffffffffffffffffffffff000000e2e2e2e2e2e2e2e2000000ffffff ffffffffffffffffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e21d ffffffffffffffffffffffffffff0000e2e2e2e2000000e2e2000000e2e2 e2e21d00ffffffffffffffffffffff00e2e2e2e21d00ffff00e2e200ffff 1d00e2e2e2e200ffffffffffffffffff00e2e2e20000ffffffff00e2e200 ffffffff0000e2e2e200ffffffffffffffff00e2e200ffffffffff00e2b7 b7e200ffffffffff00e2e21dffffffffffffff00e2e200ffffffffffff00 e26666e200ffffffffffff00e2e200ffffffffff00e2e2e200ffffffffff ff00e24b4be200ffffffffffff00e2e2e200ffffffff00e2e200ffffffff ffff00e2a82e2ea8e21dffffffffffff00e2e200ffffffff00e200000000 0000000000e2be7575bee2000000000000000000e200ffffff00e2e2e2e2 e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e200ffff00e2e2 0000e2e25f582e2e83e200000000e2832e2e5866e2e20000e2e200ffff00 e2e200ff00e2e2a0582ea0e200ffff00e2a02e58a0e2e200ff00e2e200ff ff00e2e200ffff0000e2e2c5e200ffffffff1de2bee2e20000ffff00e2e2 00ffff00e2e200ffffffff00e2e2e200ffffffff00e2e2e200ffffffff00 e2e200ffff00e2e200ffffffffff00e2e2e200ffff00e2e2e200ffffffff ff00e2e200ffff00e2e200ffffffffff00e275e2e20000e2e27ce200ffff ffffff00e2e21dffff00e2e200ffffffff00e2a02e6dbee2e2be752ea0e2 00ffffffff00e2e200ffffff00e2e200ffffff00e2582eb0c5e2e2c5b02e 5fe200ffffff00e2e200ffffffff00e2e200ffffff00e22ea8e2e20000e2 e2a02ee200ffffff00e2e200ffffffff00e2e2e200ff00e25fb7e20000ff ff0000e2b766e200ff00e2e2e200ffffffffff00e2e200ff00e2e2e200ff ffffffffff00e2e2e200ff00e2e21dffffffffffffff00e2e20000e2e200 ffffffffffffffff00e2e20000e2e21dffffffffffffffff00e2e2e2e2e2 1dffffffffffffffffffff00e2e2e2e2e200ffffffffffffffffff00e2e2 e2e20000ffffffffffffffff0000e2e2e2e200ffffffffffffffffffffff 0000e2e2e2e20000000000000000e2e2e2e20000ffffffffffffffffffff ffffffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e200ffffffffffffffffffff ffffffffffffff000000e2e2e2e2e2e2e2e2001d00ffffffffffffffffff ffffffffffffffffffffffff0000000000000000ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: glyph.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffaaaaffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaa aaaaffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffaaaaffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffaaaaffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffaaaaffffffffaaaaaaffffffffffffffffffffffffffaaffff ffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaffffffffffffffffffffffff aaaaaaaaaaaaaaaaaaaaaaffffffffffffffaaaaffffffffffffffffffff ffffffaaaaaaaaffffffffaaaaffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffaaaaffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffaaaaffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffaaaaffffffffaaffffffffffff ffffffffffffffffffffffffffaaffffffffffaaaaffffffffffaaffffff ffffffffffffffffffffffffffffffaaffffffffffaaaaffffffffffaaaa ffffffffffffffffffffffffffffffffaaaaffffffffffaaaaffffffffff ffaaaaffffffffffffffffffffffffffffffaaffffffffffffaaaaffffff ffffffaaaaaaffffffffffffffffffffffffffaaaaffffffffffffaaaaff ffffffffffffaaaaffffffffffffffffffffffffaaaaaaffffffffffffaa aaffffffffffffffaaaaffffffffffffffffffffffffaaaaffffffffaaff ffaaaaffffffffffffffffffffffffffffffffffffffffffffffffffffff ffaaaaaaaaffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffaaaaaaffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffaaffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 226 w(-)100 b(Y)-8 b(ou)32 b(ma)m(y)g(store)h(an)m(y)h (incan)m(tation)1553 2116 y(in)d(this)i(rune)g(that)f(y)m(ou)h(kno)m(w) h(and)1553 2237 y(ha)m(v)m(e)f(the)g(mana)f(to)g(cast.)521 2488 y(Marking)g(Rune)h @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rune-mark.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff00 00ffffffffffffffffffffffffffffffffffff0000000000000000000000 000000ffffffffffffffffffffffffffffffffffff0000ffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffff0000ffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffff0000ffffffffffffffffffffffffffffffffffff0000ff ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff00 00ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff ff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffff ffff000000000000000000000000000000ffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffff0000ffffffffffffffffff0000ffff ffffffffffffff00000000ffffffffffff0000ffffffffffffff0000ffff ffffffffffffffff000000000000ffffffffff0000ffffffffff0000ffff ffffffffffffffffffffffffffff000000ffffffff0000ffffff000000ff ffffffffffffffffffffffffffffffffffff0000ffffff0000ffff000000 ffffffffffffffffffffffffffffffffffffffffff0000ffff0000ff0000 00ffffffffffffffffffffffffffffffffffffffffffffff00ffff0000ff 0000ffffffffffffffffffffffffffffffffffffffffffffffffff00ff00 000000ffffffffffffffffffffffffffffffffff00000000000000000000 0000000000000000000000000000ffffffffffffffffff0000ffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 253 w(-)100 b(this)32 b(is)g(basically)f(a)h(sign.)43 b(Y)-8 b(ou)1553 2608 y(ma)m(y)32 b(store)h(an)m(y)g(w)m(ords)h(y)m(ou) f(lik)m(e)f(in)1553 2728 y(this)g(rune,)h(and)g(p)s(eople)f(ma)m(y)g (apply)1553 2849 y(it)f(to)h(read)h(it.)43 b(Ma)m(yb)s(e)33 b(useful)g(for)1553 2969 y(mazes!)43 b(This)33 b(rune)g(will)d(not)j (detonate,)1553 3089 y(nor)f(is)g(it)g(ordinarily)e(in)m(visible.)227 3342 y Fy(P)m(artial)36 b(Visibilit)m(y)c(of)38 b(Runes)227 3523 y Fz(Y)-8 b(our)41 b(runes)h(will)d(b)s(e)i(partially)d(in)m (visible.)67 b(That)41 b(is,)i(they'll)d(b)s(e)h(visible)e(only)i(part) f(of)h(the)227 3639 y(time.)h(They)34 b(ha)m(v)m(e)g(a)e(1/\(y)m(our)g Fv(level)p Fz(/2\))h(c)m(hance)h(of)e(b)s(eing)f(visible)g(in)h(an)m(y) h(giv)m(en)f(round,)h(so)227 3755 y(the)g(higher)f(y)m(our)h(lev)m(el,) g(the)g(b)s(etter)g(hidden)f(the)h(runes)h(y)m(ou)f(mak)m(e)g(are.)227 4015 y Fy(Examples)k(of)h(usage)227 4195 y Fz(Here)c(are)e(sev)m(eral)h (examples)g(of)f(ho)m(w)h(y)m(ou)g(can)g(use)h(the)f(runes.)374 4428 y Fv('invoke)53 b(magic)f(rune)h(heal)471 4627 y Fz(will)37 b(place)h(a)g(magic)f(rune)i(of)g(healing)e(one)i(square)g (ahead)g(of)f(y)m(ou,)j(whic)m(hev)m(er)471 4743 y(w)m(a)m(y)34 b(y)m(ou're)g(facing.)374 4943 y Fv('invoke)53 b(magic)f(rune)h (transfer)471 5142 y Fz(as)33 b(ab)s(o)m(v)m(e,)g(except)i(the)d(rune)i (will)c(con)m(tain)i(the)h(sp)s(ell)e(of)h(transference)374 5341 y Fv('invoke)53 b(magic)f(rune)h(large)f(fireball)471 5540 y Fz(as)32 b(ab)s(o)m(v)m(e,)h(except)g(the)f(sp)s(ell)e(large)h (\034reball)f(will)f(b)s(e)j(cast)g(when)g(someone)g(steps)471 5657 y(on)39 b(the)g(rune.)63 b(the)39 b(\034reball)e(will)g(\035y)i (in)f(the)h(direction)f(the)h(caster)h(w)m(as)f(facing)471 5773 y(when)34 b(he)f(created)g(the)g(rune.)1948 6057 y(26)p eop end %%Page: 27 31 TeXDict begin 27 30 bop 374 333 a Fv('cast)52 b(rune)g(of)g(fire)471 532 y Fz(prepares)30 b(the)e(rune)h(of)f(\034re)g(as)h(the)f(range)h (sp)s(ell.)40 b(Use)30 b(the)e(direction)f(k)m(eys)j(to)e(use)471 648 y(up)33 b(y)m(our)g(mana)f(and)g(place)h(a)f(rune.)374 848 y Fv('invoke)53 b(marking)g(rune)f(fubar)471 1047 y Fz(places)33 b(a)f(rune)h(of)f(marking,)g(whic)m(h)h(sa)m(ys)h ("fubar")d(when)j(someone)f(applies)e(it.)374 1246 y Fv('invoke)53 b(marking)g(rune)f(touch)h(my)e(stuff)i(and)f(I)f(will)i (hunt)f(you)g(down!)471 1445 y Fz(places)33 b(the)g(marking)e(rune)i(w) m(arning)f(w)m(ould-b)s(e)g(thiev)m(es)i(of)e(their)g(danger.)227 1705 y Fy(Restrictions)j(on)j(runes:)227 1886 y Fz(Y)-8 b(ou)31 b(ma)m(y)f(not)g(place)g(runes)i(underneath)f(monsters)g(or)f (other)g(pla)m(y)m(ers.)44 b(Y)-8 b(ou)30 b(ma)m(y)g(not)g(place)227 2002 y(a)40 b(new)h(rune)g(on)f(a)f(square)i(whic)m(h)g(already)e(has)i (a)e(rune.)67 b(An)m(y)41 b(attempt)e(to)h(do)g(the)g(latter)227 2118 y(strengthens)35 b(the)e(pre-existing)e(rune.)1948 6057 y(27)p eop end %%Page: 28 32 TeXDict begin 28 31 bop 227 542 a FA(Chapter)44 b(5.)58 b(Skills)46 b(System)227 963 y Fy(Section)37 b(5.1.)h(Description)227 1178 y Fz(Under)32 b(the)g(skills)d(system)j(the)g(\035o)m(w)g(of)e (pla)m(y)h(c)m(hanges)h(dramatically)2834 1141 y Ft(1)r Fg(;)s Ft(2)2934 1178 y Fz(.)43 b(Instead)32 b(of)e(gaining)227 1294 y(exp)s(erience)h(for)e(basically)e(just)j(killing)c(monsters)j (\(and)g(disarming)e(traps\))j(pla)m(y)m(ers)g(will)d(no)m(w)227 1410 y(gain)46 b(a)g(v)-5 b(ariet)m(y)47 b(of)f(exp)s(erience)i (through)e(the)h(use)h(of)e(skills.)84 b(Some)46 b(skills)g(replicate)f (old)227 1526 y(functions)35 b(in)g(the)g(game)f(\(e.g.)52 b(melee)34 b(w)m(eap)s(ons)i(skill,)f(missile)d(w)m(eap)s(on)k(skill\)) d(while)i(others)227 1642 y(add)40 b(new)g(functionalit)m(y)e(\(e.g.)64 b(stealing,)40 b(hiding,)f(writing,)h(etc\).)65 b(A)39 b(complete)g(list)f(of)h(the)227 1759 y(a)m(v)-5 b(ailable)23 b(skills)g(can)j(b)s(e)f(found)g(in)f(table)g(5.1.)41 b(App)s(endix)25 b(B)g(con)m(tains)g(descriptions)g(for)f(man)m(y)227 1875 y(of)32 b(the)h(skills.)227 2145 y Fy(Section)k(5.2.)h(Ab)s(out)f (exp)s(erience)g(and)h(skills)227 2364 y(5.2.1.)g(Asso)s(ciated)f(and)h (miscellaneous)e(skills)227 2545 y Fz(In)42 b Fx(Cross\034re)h Fz(t)m(w)m(o)e(t)m(yp)s(es)i(of)e(skills)e(exist;)46 b(The)c(\034rst)g(kind,)h(\020asso)s(ciated\021)48 b(skills,)42 b(are)g(those)227 2661 y(skills)e(whic)m(h)h(are)g Fu(asso)-5 b(ciate)g(d)41 b(with)h(a)g(c)-5 b(ate)g(gory)42 b(of)g(exp)-5 b(erienc)g(e)p Fz(.)67 b(The)41 b(other)g(kind)g(of)f(skill,)227 2777 y(\020miscellaneous\021)e(skills,)32 b(are)g Fu(not)h Fz(related)f(to)g(an)m(y)h(exp)s(erience)h(category)-8 b(.)374 2894 y(The)29 b(main)d(di\033erence)i(b)s(et)m(w)m(een)i(these) f(t)m(w)m(o)g(kinds)f(of)g(skills)e(is)i(in)f(the)h(result)g(of)g (their)f(use.)227 3010 y(When)33 b(asso)s(ciated)e(skills)g(are)g(used) i Fu(suc)-5 b(c)g(essful)5 b(ly)31 b Fz(exp)s(erience)i(is)e(accrued)i (in)e(the)h(exp)s(erience)227 3126 y(category)g Fu(asso)-5 b(ciate)g(d)32 b(with)i(that)f(skil)5 b(l)p Fz(.)43 b(In)31 b(con)m(trast,)h(the)g(use)g(of)f(miscellaneous)e(skills)h Fu(never)227 3242 y Fz(gains)i(the)h(pla)m(y)m(er)g(an)m(y)g(exp)s (erience)h(regardless)f(of)f(the)h(success)i(in)d(using)g(it.)374 3359 y Fu(Both)i Fz(miscellaneous)f(and)i(asso)s(ciated)g(skills)e(can) i Fu(fail)p Fz(.)50 b(This)34 b(means)h(that)g(the)g(attempt)227 3475 y(to)d(use)h(the)g(skill)d(w)m(as)j(unsuccessful.)45 b Fu(Both)32 b Fz(miscellaneous)f(and)h(asso)s(ciated)g(skills)e Fu(c)-5 b(an)32 b Fz(ha)m(v)m(e)227 3591 y(certain)47 b(primary)e(stats)j Fu(asso)-5 b(ciate)g(d)46 b Fz(with)g(them.)87 b(These)48 b(asso)s(ciated)f(stats)h(can)f(help)g(to)227 3707 y(determine)32 b(if)g(the)h(use)g(of)f(a)h(skill)d(is)i (successful)j(and)d(to)h(what)f Fu(de)-5 b(gr)g(e)g(e)32 b Fz(it)g(is)g(successful.)374 3824 y(All)26 b(gained)h(exp)s(erience)i (is)f(mo)s(di\034ed)e(b)m(y)j(the)f(asso)s(ciated)g(stats)g(for)g(that) f(skill)g(\(table)g(5.1\))227 3940 y(and)33 b(then)g(the)g(appropriate) f(exp)s(erience)h(category)g(automatically)c(up)s(dated)k(as)g(needed.) p 227 4027 1416 4 v 340 4088 a Fs(1)377 4119 y Fr(The)27 b(skills)h(system)f(is)g(enabled)h(as)f(the)g(default)h(option)g(as)f (of)g(v)n(ersion)f(0.92.0)340 4188 y Fs(2)377 4218 y Fr(The)c(new)h(skills/exp)r(erience)e(system)h(is)h(compatible)f(with)h (c)n(haracter)d(\034les)j(from)f(at)g(least)g(v)n(ersion)f(0.91.1)227 4318 y(on)n(w)n(ard.)227 4668 y Fz(T)-8 b(able)33 b(5.1)f(Skills)p 683 4779 2628 4 v 681 4892 4 113 v 832 4858 a Fo(Skill)100 b(Exp)s(erience)31 b(Category)341 b(Asso)s(ciated)30 b(Stats)p 3308 4892 V 681 5005 V 2027 4971 a(\(Stat)h(1\))100 b(\(Stat)31 b(2\))100 b(\(Stat)31 b(3\))p 3308 5005 V 683 5008 2628 4 v 683 5025 V 681 5138 4 113 v 3308 5138 V 681 5251 V 3308 5251 V 683 5254 2628 4 v 1948 6057 a Fz(28)p eop end %%Page: 29 33 TeXDict begin 29 32 bop 227 333 a Fy(5.2.2.)38 b(Restrictions)d(on)j (skills)d(use)j(and)g(gaining)f(exp)s(erience)227 513 y Fz(Neither)d(a)g(c)m(haracter's)h(stats)f(nor)g(the)g(c)m(haracter)g (class)g(restricts)h(the)f(pla)m(y)m(er)g(from)e(gaining)227 630 y(exp)s(erience)37 b(in)e(an)m(y)h(of)g(the)g(exp)s(erience)h (categories.)52 b(Also,)36 b(there)g(are)g(no)g(inheren)m(t)g(restric-) 227 746 y(tions)c(on)h(c)m(haracter)g(skill)e(use)p Fw(\000)p Fz(an)m(y)k(pla)m(y)m(er)d(ma)m(y)h(use)g(an)m(y)g Fu(ac)-5 b(quir)g(e)g(d)32 b Fz(skill.)227 1006 y Fy(5.2.3.)38 b(Algorithm)c(for)k(Exp)s(erience)f(Gain)g(under)h(the)f(skills)e (system)227 1186 y Fz(Here)25 b(w)m(e)h(tak)m(e)e(the)h(view)g(that)f (a)g(pla)m(y)m(er)g(m)m(ust)g('o)m(v)m(ercome)h(an)g(opp)s(onen)m(t')f (in)g(order)g(to)g(gain)f(ex-)227 1302 y(p)s(erience.)43 b(Examples)28 b(include)f(fo)s(es)h(killed)e(in)h(com)m(bat,)h (\034nding/disarming)d(a)j(trap,)h(stealing)227 1419 y(from)j(some)g(b)s(eing,)g(iden)m(tifying)f(an)h(ob)5 b(ject,)34 b(etc.)374 1535 y(Gained)g(exp)s(erience)i(is)e(based)i (primarily)31 b(on)k(the)g(di\033erence)g(in)f(lev)m(els)h(b)s(et)m(w)m (een)i('opp)s(o-)227 1651 y(nen)m(ts',)47 b(exp)s(erience)d(p)s(oin)m (t)e(v)-5 b(alue)42 b(of)g(a)h(\020v)-5 b(anquished)43 b(fo)s(e\021,)h(the)f(v)-5 b(alues)43 b(of)f(the)h(asso)s(ciated)227 1767 y(stats)33 b(of)g(the)f(skill)f(b)s(eing)h(used)i(and)e(t)m(w)m(o) i(factors)e(that)g(are)h(set)g(in)m(ternally)3055 1731 y Ft(3)3093 1767 y Fz(.)374 1884 y(Belo)m(w)48 b(the)h(algorithm)c(for) j(exp)s(erience)h(gain)e(is)h(giv)m(en)h(where)g(pla)m(y)m(er)g (\020pl\021)55 b(that)48 b(has)227 2000 y(\020v)-5 b(anquished\021)41 b(opp)s(onen)m(t)33 b(\020op\021)40 b(using)32 b(skill)e(\020sk\021:) 471 2199 y(EXP)k(GAIN)e(=)g(\(EXP)1351 2214 y Fg(op)1458 2199 y Fz(+)h(EXP)1772 2214 y Fg(sk)1848 2199 y Fz(\))f(*)h(lvl_m)m(ul) 227 2398 y(where)j(EXP)716 2413 y Fg(sk)827 2398 y Fz(is)e(a)g(constan) m(t)i(a)m(w)m(ard)f(based)g(on)g(the)g(skill)e(used,)j(EXP)2939 2413 y Fg(op)3048 2398 y Fz(is)e(the)h(base)h(exp)s(e-)227 2515 y(rience)d(a)m(w)m(ard)g(for)f(`op')h(whic)m(h)g(dep)s(ends)h(on)f (what)f(op)h(is)f(\(see)h(b)s(elo)m(w\),)227 2631 y(F)-8 b(or)32 b(lev)m(el)592 2646 y Fg(pl)686 2631 y Fj(<)g Fz(lev)m(el)984 2646 y Fg(op)1058 2631 y Fz(::)471 2830 y(lvl_m)m(ult)e(=)i(F)-11 b(A)m(CTOR)1402 2845 y Fg(sk)1511 2830 y Fz(*)32 b(\(lev)m(el)1820 2845 y Fg(op)1926 2830 y Fz(-)g(lev)m(el)2181 2845 y Fg(pl)2242 2830 y Fz(\))227 3029 y(F)-8 b(or)32 b(lev)m(el)592 3044 y Fg(pl)686 3029 y Fh(=)g Fz(lev)m(el)984 3044 y Fg(op)1058 3029 y Fz(::)471 3229 y(lvl_m)m(ult)e(=)i(F)-11 b(A)m(CTOR)1402 3244 y Fg(sk)227 3428 y Fz(F)j(or)32 b(lev)m(el)592 3443 y Fg(pl)686 3428 y Fj(>)g Fz(lev)m(el)984 3443 y Fg(op)1058 3428 y Fz(::)471 3627 y(lvl_m)m(ult)e(=)i(\(lev)m(el)1219 3642 y Fg(op)1293 3627 y Fj(=)p Fz(lev)m(el)1532 3642 y Fg(pl)1593 3627 y Fz(\);)227 3826 y(where)i(lev)m(el)699 3841 y Fg(op)805 3826 y Fz(is)e(the)h(lev)m(el)g(of)f(`op',)h(lev)m(el) 1812 3841 y Fg(pl)1906 3826 y Fz(is)f(the)h(lev)m(el)f(of)g(the)h(pla)m (y)m(er,)g(and)g(F)-11 b(A)m(CTOR)3591 3841 y Fg(sk)3700 3826 y Fz(is)227 3943 y(an)33 b(in)m(ternal)e(factor)h(based)i(on)e (the)h(skill)e(used)i(b)m(y)h(pl.)374 4059 y(There)f(are)g(three)g (di\033eren)m(t)g(cases)h(for)e(ho)m(w)h(EXP)2254 4074 y Fg(op)2361 4059 y Fz(can)g(b)s(e)g(computed:)471 4258 y(1\))k Fy(op)44 b(is)e(a)i(living)d(creature)p Fz(:)53 b(EXP)1976 4273 y Fg(op)2088 4258 y Fz(is)38 b(just)g(the)g(base)g(exp) s(erience)h(a)m(w)m(ard)471 4374 y(giv)m(en)33 b(in)f(the)h Fx(Cross\034re)h Fy(Sp)s(oiler)p Fz(.)471 4648 y(2\))39 b Fy(op)46 b(is)f(a)g(trap)p Fz(:)58 b(EXP)1477 4663 y Fg(op)1591 4648 y Fw(/)40 b Fz(1/\(the)f(time)f(for)h(whic)m(h)h(the) g(trap)g(is)f(visible\).)471 4764 y(Th)m(us,)34 b(traps)f(whic)m(h)g (are)g(highly)e Fu(visible)h Fz(get)g Fu(lower)g Fz(v)-5 b(alues.)471 5038 y(3\))45 b Fy(op)52 b(is)f(not)h(a)h(trap)e(but)h(is) g(non-living)p Fz(:)67 b(EXP)2615 5053 y Fg(op)2735 5038 y Fz(=)45 b(in)m(ternal)f(exp)s(eri-)471 5155 y(ence)37 b(a)m(w)m(ard)f(of)f(the)h(item.)51 b(Also,)36 b(the)g(lvl_m)m(ult)d (is)i(m)m(ultiplied)d(b)m(y)37 b(an)m(y)f Fv(magic)471 5271 y Fz(enc)m(han)m(tmen)m(t)e(on)f(the)g(item.)1948 6057 y(29)p eop end %%Page: 30 34 TeXDict begin 30 33 bop 227 388 a Fz(T)-8 b(able)33 b(5.2)f(Skills)f (commands)p 422 507 3148 4 v 420 620 4 113 v 3568 620 V 420 733 V 572 699 a Fi(skills)1134 b Fo(This)30 b(command)i(lists)e (all)g(the)h(pla)m(y)m(er's)p 3568 733 V 420 846 V 1988 812 a(curren)m(t)h(kno)m(wn)f(skills,)f(their)h(lev)m(el)p 3568 846 V 420 959 V 1988 925 a(of)f(use)g(and)h(the)f(asso)s(ciated)h (exp)s(erience)p 3568 959 V 420 1072 V 1988 1038 a(category)g(of)f(eac) m(h)h(skill.)p 3568 1072 V 420 1185 V 3568 1185 V 420 1298 V 572 1264 a Fi(ready_skill)47 b Ff(<)p Fi(skill)p Ff(>)475 b Fo(This)30 b(command)i(c)m(hanges)f(the)g(pla)m(y)m(er's)p 3568 1298 V 420 1410 V 1988 1377 a(curren)m(t)h(readied)f(skill)f(to)h Ff(<)p Fi(skill)p Ff(>)p Fo(.)p 3568 1410 V 420 1523 V 3568 1523 V 420 1636 V 572 1602 a Fi(use_skill)47 b Ff(<)p Fi(skill)p Ff(>)f(<)p Fi(string)p Ff(>)99 b Fo(This)30 b(command)i(c)m(hanges)f(the)g(pla)m(y)m(er's)p 3568 1636 V 420 1749 V 1988 1715 a(curren)m(t)h(readied)f(skill)f Fe(and)g Fo(then)p 3568 1749 V 420 1862 V 1988 1828 a(executes)g(it)h (in)f(the)h(facing)g(direction)p 3568 1862 V 420 1975 V 1988 1941 a(of)f(the)h(pla)m(y)m(er.)41 b(Similar)32 b(in)e(action)h(to)p 3568 1975 V 420 2088 V 1988 2054 a(the)g Fi(invoke)f Fo(command.)p 3568 2088 V 420 2201 V 3568 2201 V 422 2204 3148 4 v 227 2578 a Fy(Section)37 b(5.3.)h(Ho)m(w)e(skills)g(are)h(used)227 2793 y Fz(Three)45 b(pla)m(y)m(er)f(commands)f(are)g(related)g(to)h(skills)e(use:)66 b Fv(ready_skill)p Fz(,)49 b Fv(use_skill)p Fz(,)g(and)227 2909 y Fv(skills)d Fz(\(see)f(table)e(5.2\).)77 b(Generally)-8 b(,)46 b(a)d(pla)m(y)m(er)i(will)c(use)k(a)f(skill)e(b)m(y)j(\034rst)f (readying)g(the)227 3025 y(righ)m(t)36 b(one,)i(with)f(the)g Fv(ready_skill)i Fz(command)d(and)g(then)i(making)d(a)h(ranged)h (\020attac)m(k\021)45 b(to)227 3141 y(activ)-5 b(ate)28 b(the)i(skill;)e(using)h(most)f(skills)g(is)g(just)h(lik)m(e)f (\034ring)g(a)h(w)m(and)h(or)e(a)h(b)s(o)m(w.)43 b(In)29 b(a)f(few)i(cases)227 3258 y(ho)m(w)m(ev)m(er,)k(a)c(skill)f(is)i(b)s (e)g(used)h(just)f(b)m(y)g(ha)m(ving)g(it)f Fu(r)-5 b(e)g(adie)g(d)p Fz(.)42 b(F)-8 b(or)30 b(example,)g(the)h Fv(mountaineer)227 3374 y Fz(skill)g(allo)m(ws)h(fa)m(v)m(orable)g(mo)m(v)m(emen)m(t)h (though)f(hilly)f(terrain)g(while)h(it)f(is)i(readied.)374 3490 y(T)-8 b(o)29 b(c)m(hange)h(to)f(a)g(new)h(skill,)e(a)h(pla)m(y)m (er)h(can)f(use)h(either)f(the)h Fv(use_skill)i Fz(or)c Fv(ready_skill)227 3606 y Fz(commands,)f(but)f(note)g(that)f(the)h(use) h(of)e(sev)m(eral)h(common)f(items)f(can)i(automatically)c(c)m(hange) 227 3722 y(the)35 b(pla)m(y)m(er's)h(curren)m(t)f(skill)e(to)s(o.)48 b(Examples)35 b(of)f(this)g(include)f(readying)i(a)f(b)s(o)m(w)h (\(whic)m(h)g(will)227 3839 y(cause)i(the)g(co)s(de)f(to)f(mak)m(e)h (the)g(pla)m(y)m(er's)h(curren)m(t)g(skill)d Fv(missile_weapons)p Fz(\))39 b(or)d(readying)f(a)227 3955 y(melee)k(w)m(eap)s(on)g (\(curren)m(t)h(skill)d(auto-matically)e(b)s(ecomes)40 b Fv(melee)52 b(weapons)p Fz(\).)64 b(Also,)40 b(some)227 4071 y(pla)m(y)m(er)29 b(actions)e(can)h(cause)i(a)d(c)m(hange)i(in)e (the)i(curren)m(t)g(skill.)40 b(Running)27 b(in)m(to)h(a)f(monster)h (while)227 4187 y(y)m(ou)h(ha)m(v)m(e)g(a)f(readied)f(w)m(eap)s(on)i (in)e(y)m(our)h(in)m(v)m(en)m(tory)h(causes)h(the)e(co)s(de)g(to)g (automatically)c(mak)m(e)227 4304 y(our)38 b(curren)m(t)h(skill)c Fv(melee)53 b(weapons)p Fz(.)60 b(As)38 b(another)g(example)f(of)g (this)p Fw(\000)p Fz(casting)h(a)f(sp)s(ell)g(will)227 4420 y(cause)f(the)g(co)s(de)f(to)f(switc)m(h)i(the)f(curren)m(t)h (skill)d(to)i Fv(wizardry)i Fz(or)d Fv(praying)j Fz(\(as)e(appropriate) 227 4536 y(to)e(the)g(sp)s(ell)e(t)m(yp)s(e\).)374 4652 y(It)h(is)g(not)h(p)s(ossible)f(to)g(use)h(more)f(than)h(one)f(skill)f (at)h(a)h(time.)227 4923 y Fy(Section)k(5.4.)h(A)m(cquiring)d(skills) 227 5138 y Fz(Skills)c(ma)m(y)g(b)s(e)i(gained)e(in)g(t)m(w)m(o)i(w)m (a)m(ys.)44 b(In)33 b(the)f(\034rst,)h(new)g(skills)d(ma)m(y)i Fu(le)-5 b(arne)g(d)p Fz(.)42 b(This)32 b(is)g(done)227 5254 y(b)m(y)39 b(reading)f(a)g(\020skill)d(scroll\021)45 b(and)38 b(the)g(pro)s(cess)i(is)d(v)m(ery)j(similar)35 b(to)i(learning)g(a)h(sp)s(ell.)59 b(Just)227 5370 y(as)43 b(in)f(attempts)h(to)f(learn)g(incan)m(tations,)j(success)g(in)d (learning)f(skills)h(is)g(dep)s(enden)m(t)j(on)d(a)227 5486 y(random)37 b(test)h(based)g(on)g(the)g(learner's)f(INT.)i(Using)e (y)m(our)h(INT)g(stat,)h(lo)s(ok)d(in)h(the)h(learn\045)p 227 5574 1416 4 v 340 5635 a Fs(3)377 5665 y Fr(If)28 b(y)n(ou)f(w)n(an)n(t)f(to)i(kno)n(w)f(more)f(ab)r(out)i(this,)g(c)n (hec)n(k)e(out)i(the)g(skills_dev)n(elop)r(ers.do)r(c)1948 6057 y Fz(30)p eop end %%Page: 31 35 TeXDict begin 31 34 bop 227 333 a Fz(column)37 b(in)g(table)g(2.1)g(to) h(\034nd)g(y)m(our)g(\045)g(c)m(hance)i(of)d(learning)f(a)h(skill.)58 b(Once)38 b(y)m(ou)h(hit)e(100\045)227 449 y(y)m(ou)d(will)c(alw)m(a)m (ys)j(b)s(e)g(successfull)g(in)f(learning)f(new)i(skills.)374 565 y(The)38 b(acquisition)e(of)h(a)h Fu(skil)5 b(l)39 b(to)-5 b(ol)37 b Fz(will)e(also)i(allo)m(w)f(the)i(pla)m(y)m(er)g(to)f (use)i(a)e(new)i(skill.)57 b(An)227 682 y(example)30 b(of)g(a)g(skill)f(to)s(ol)f(is)i(\020lo)s(c)m(kpic)m(ks\021)38 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: lockpicks.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff01010101ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 010101ffffffffffffffffffffffffffffffffffffffff010101ffffffff 0101ffff0101ffffffffffffffffffffffffffffffffffff0101ff0101ff ffffffffffff0101ffffffffffffffffffffffffffffffffffff01ffffff bd01ffffffffffffff0101ffffffffffffffffffffffffffffffffff0101 ffffffbd01ffffffffffff0101ffffffffffffffffffffffffffffffffff ff01ffffffffbd01ffffffffffff0101ffffffffffffffffffffffffffff ffffffffffffffffffbd01ffffffffff0101ffffffffffffffffffffffff ffffffffffffffffffffffffbd01ffffffffff0101ffffffffffffffffff ffffffffffffffff010101ffffff01bd01ffffffff0101ffffffffffffff ffffffffffffffffff0101ff0101ffffffbdbd01ffffffff0101ffffffff ffffffffffffffffffff0101ffffff0101ffffff01bd01ffffff0101ffff ffffffffffffffffffffffffffffffffffff0101ffffffbdbd01ffffff01 01ffffffffffffffffffffffffffffffffffffffff0101ffffff01bd01ff ff0101ffffffffffffffffffffffffffffffffffffffffff0101ffffffbd bd01ffff01ffffffffffffffffffffffffffffffffffffffffffff0101ff ffff01bd01ffffffffffffffffffffffffffffffffffffffffffffffffff 0101ffffffbd01ffffffffffffffffffffffffffffffffffffffffffffff ffffff0101ffffff01ffffffffffffffffffffffffffffffffffffffffff ffffffffffff0101ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0101ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 155 w(\(whic)m(h)31 b(allo)m(w)e(the)i(pla)m(y)m(er)g(to)f (pic)m(k)g(do)s(or)g(lo)s(c)m(ks\).)227 798 y(The)35 b(pla)m(y)m(er)e(merely)g(applies)f(the)i(skill)d(to)s(ol)h(in)g(order) i(to)f(gain)f(use)i(of)f(the)g(new)i(skill.)44 b(If)33 b(the)227 914 y(to)s(ol)e(is)h(unapplied,)g(the)h(pla)m(y)m(er)g(lo)s (oses)f(the)h(use)g(of)f(the)h(skill)e(asso)s(ciated)i(with)f(the)h(to) s(ol.)374 1030 y(After)28 b(a)g(new)i(skill)d(is)h(gained)f(\(either)i (learned)f(or)g(if)f(pla)m(y)m(er)i(has)g(an)g(applied)e(skill)g(to)s (ol\))f(it)227 1146 y(will)j(app)s(ear)i(on)f(the)i(pla)m(y)m(er's)f (skill)e(roster)i(\(use)h(the)f('skills')f(command)g(to)g(view)h(its)f (status\).)227 1263 y(If)41 b(the)g(new)h(skill)d(is)h(an)h(asso)s (ciated)f(skill,)h(then)g(it)f(will)e(automatically)g(b)s(e)i(gained)g (at)h(the)227 1379 y(pla)m(y)m(er's)g(curren)m(t)h(lev)m(el)d(in)h(the) g(appropriate)f(exp)s(erience)j(category)-8 b(.)66 b(F)-8 b(or)39 b(example,)j(Stilco)227 1495 y(the)35 b(W)-8 b(raith,)34 b(who)h(is)f(5th)h(lev)m(el)f(in)g Fv(agility)p Fz(,)j(buys)e(a)g(set)g(of)f(lo)s(c)m(kpic)m(ks)h(and)g(applies)e (them.)227 1611 y(He)e(ma)m(y)e(no)m(w)i(use)f(the)g(skill)e(lo)s(c)m (kpic)m(king)h(at)h(5th)f(lev)m(el)h(of)f(abilit)m(y)f(since)i(that)f (is)h(an)f Fv(agility)227 1728 y Fz(asso)s(ciated)k(skill.)1948 6057 y(31)p eop end %%Page: 32 36 TeXDict begin 32 35 bop 227 542 a FA(Chapter)44 b(6.)58 b(Equipmen)l(t)227 963 y Fy(Section)37 b(6.1.)h(Going)e(to)h(mark)m (et..)227 1263 y @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-alch.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000000000000000000000000000000000000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00004d004d004d00 4d004d004d004d004d004d004d004d004d004d004d004d004d004d0000ff ffffffffffffffffffffffffffffffffffffffffffffffffff000000004d 004d004d004d004d004d004d004d004d004d004d004d004d004d004d004d 004d0000ffffffffffffffffffffffffffffffffffffffffffffffffff00 00004d004d004d004d004d004d004d004d004d004d004d004d004d004d00 4d004d004d004d00ffffffffffffffffffffffffffffffffffffffffffff ffff00650000004d004d40000000004d004d004d004d004d004d004d004d 004d004d004d004d004d0000ffffffffffffffffffffffffffffffffffff ffffffffffff0065009300004d00007fffff00ffffffbf00bf004d004d00 4d004d004d004d004d004d004d004d0000ffffffffffffffffffffffffff ffffffffffffffffff0065650093004d000000bfbfffff4dbf4dff4d004d 004d004d004d004d004d004d004d004d004d004d00ffffffffffffffffff ffffffffffffffffffffffffff006565009300004d00007fffbf00004d00 4d004d004d004d004d004d004d004d004d004d004d004d0000ffffffffff ffffffffffffffffffffffffffffffff0065656500939300000000000000 004d004d004d004d004d004d004d004d004d004d004d004d004d004d0000 ffffffffffffffffffffffffffffffffffffffff00656565009393000000 00bfbfbf0000000000000000000000000000000000000000000000000000 00000000ffffffffffffffffffffffffffffffffffffff00656565650093 93000000bfbfbf00004d00004d00004d00004d00004d00004d00004d0000 4d00004d00004d00ffffffffffffffffffffffffffffffffffffff006565 0065009393004d00000000004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffffff 0065656500650093930000004d00004d00004d00004d0000000000000000 0000004d00004d00004d00004d000000ffffffffffffffffffffffffffff ffffffff0065656500650093004d4d4d4d4d4d4d4d4d4d4d4d4d004d4d4d 4d4d4d4d4d004d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffff ffffffffffffff00656500650065009300004d00004d00004d00004d0000 004d4d4d4d4d4d4d4d0000004d00004d00004d00004d00ffffffffffffff ffffffffffffffffffffff006565006500650093004d4d4d4d4d4d4d4d4d 4d4d4d4d004d4d4d4d4d4d4d4d004d4d4d4d4d4d4d4d4d4d4d4d00ffffff ffffffffffffffffffffffffffff006565000065006500930000004d0000 4d00004d00004d00004d4d4d4d4d4d4d4d004d00004d00004d00004d0000 00ffffffffffffffffffffffffffffffffff00656500006565650093004d 4d4d4d4d4d4d4d4d4d4d4d00004d4d4d4d4d4d4d4d004d4d4d4d4d4d4d4d 4d4d4d4d00ffffffffffffffffffffffffffffffffff0065006500656565 0093004d00004d00004d00004d000000004d4d4d4d4d4d4d4d00004d0000 4d00004d00004d0000ffffffffffffffffffffffffffffffffff00650065 006565650093004d4d4d4d4d4d4d4d4d4d4d4d00004d4d4d4d4d4d4d4d00 4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffff 0000656500656565000000004d00004d00004d00004d0000004d4d4d4d4d 4d4d4d0000004d00004d00004d000000ffffffffffffffffffffffffffff ffffffff000065650065006500004d4d4d4d4d4d4d4d4d4d4d4d4d00004d 4d4d4d4d4d4d4d004d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffff ffffffffffffffffff0065006565006500004d00004d00004d00004d0000 4d00000000000000000000004d00004d00004d00004d0000ffffffffffff ffffffffffffffffffffffffff0065006565006500004d4d4d4d4d4d4d4d 4d4d4d4d4d00009393000000939393004d4d4d4d4d4d4d4d4d4d4d00ffff ffffffffffffffffffffffffffffffffff000065656500650000004d0000 4d00004d00004d000000939300bfbf0000930000004d00004d00004d0000 4d00ffffffffffffffffffffffffffffffffffffff000065656500650000 4d4d4d4d4d4d4d4d4d4d4d4d00009300bfbf00009393004d4d4d4d4d4d4d 4d4d4d4d4d00ffffffffffffffffffffffffffffffffffff000065650065 0065000000004d00004d00004d00004d00939300000000939300004d0000 4d00004d00004d000000ffffffffffffffffffffffffffffffffffff0000 65650065006500004d4d4d4d4d4d4d4d4d4d4d4d00000000000000000000 4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffff ffff006565000065006500004d00004d00004d00004d00004d00004d0000 4d00004d00004d00004d00004d00004d00ffffffffffffffffffffffffff ffffffffffff0065650000656565004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffff ffffffffffffffffffff006500bf006565650000004d00004d00004d0000 4d00004d00004d00004d00004d00004d00004d00004d000000ffffffffff ffffffffffffffffffffffffffff006500bf006565650000000000000000 0000000000000000000000000000000000000000000000000000000000ff ffffffffffffffffffffffffffffffffffff000000000000650093939393 939393939393939393939393939393939393939393939393939393939393 9300ffffffffffffffffffffffffffffffffffffffff0000e200e2006500 9300009393930f0f93930f0f0f930f0f0f930f930f0f0f930f93930f9393 000093939300ffffffffffffffffffffffffffffffffffffffff00e200e2 0065009300e2cb0093930f930f930f930f93930f93930f930f930f930f0f 930f9300e2cb009300ffffffffffffffffffffffffffffffffffffffffff 000000000065009300cbcb00930f0f0f930f930f93930f93930f930f930f 930f930f0f939300cbcb009300ffffffffffffffffffffffffffffffffff ffffffff006500656500939393000093930f9393930f0f0f93930f93930f 930f0f0f930f93930f93939300009300ffffffffffffffffffffffffffff ffffffffffffffff00650065650093939393939393939393939393939393 9393939393939393939393939393939393939300ffffffffffffffffffff ffffffffffffffffffffffff006565650093939393939393939393939393 9393930000000093939393939393000000009393939300ffffffffffffff ffffffffffffffffffffffffffffffff0065656500939393939300000093 93939393930000bfbfbf0000939393930000bfbfbf000093939300ffffff ffffffffffffffffffffffffffffffffffffffff00656500939393939300 656500009393939300bfbfbfbfbf000093939300bfbfbfbfbf0000939300 ffffffffffffffffffffffffffffffffffffffffffffffff006565009393 93930065656565009393939300bf00bfbfbf000093939300bf00bfbfbf00 00939300ffffffffffffffffffffffffffffffffffffffffffffffff0065 00939393930065656565000093939300bf00cb00bf000093939300bf007a 00bf0000939300ffffffffffffffffffffffffffffffffffffffffffffff ffff006500939393930000656565000093939300bfbf00bfbf0000939393 00bfbf00bfbf0000939300ffffffffffffffffffffffffffffffffffffff ffffffffffff000093939393006565656500009393930000000000000000 9393930000000000000000939300ffffffffffffffffffffffffffffffff ffffffffffffffffffff0000939393930065656565000093939300000000 000000009393930000000000000000939300ffffffffffffffffffffffff ffffffffffffffffffffffffffff00939393930000000000000093939393 939393939393939393939393939393939393939393ffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000ffffffffff00 00000000000000000000000000000000000000000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-armo-fant.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00000000000000000000000000000000000000 000000000000000000000000000000000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffff000027002700270027002700270027 00270027002700270027002700270027002700002700ffffffffffffffff ffffffffffffffffffffffffffffffffffff005200002700270000000000 270027002700270027002700270027002700270027002700000000ffffff ffffffffffffffffffffffffffffffffffffffffffff0052002700270027 00007f7f002700270027002700270027002700270027002700270000007f 7f00ffffffffffffffffffffffffffffffffffffffffffffff0033520000 270027407f7fbfbfbf002700270027002700270027002700270027002700 407f7fbfbfbf00ffffffffffffffffffffffffffffffffffffffffffff00 335233000027007f40bfbfbf000000270027002700270027002700270027 002700277f40bfbfbf0000ffffffffffffffffffffffffffffffffffffff ffff0052335233002700407f40bfbfbf0000000027002700270027002700 27002700270027407f40bfbfbf0000ffffffffffffffffffffffffffffff ffffffffffff00523352330000277fbfbf4040ff00270027002700270027 00270027002700270027007fbfbf4040ff00ffffffffffffffffffffffff ffffffffffffffffff0033523352335200007f40bfbfbfbf270027002700 2700270027002700270027002700277f40bfbfbfbf0000ffffffffffffff ffffffffffffffffffffffffff0033523352335200007fbf40bfff000000 000000000000000000000000000000000000007fbf40bfff000000ffffff ffffffffffffffffffffffffffffffff0052335233523352000027bfbfbf 000027000027000027000027000027000027000027000027bfbfbf000027 00ffffffffffffffffffffffffffffffffffffff00523352335233520027 272727272727272727272727272727272727272727272727272727272727 2727272700ffffffffffffffffffffffffffffffffffff00335233523352 335200000027000027000027000027000000000000000000000027000027 000027000027000000ffffffffffffffffffffffffffffffffffff003300 335233523300272727272727272727272727270027272727272727270027 272727272727272727272700ffffffffffffffffffffffffffffffffffff 005233003352335233000027000027000027000027000000272727272727 27270000002700002700002700002700ffffffffffffffffffffffffffff ffffffff0052000033523352330027272727272727272727272727002727 2727272727270027272727272727272727272700ffffffffffffffffffff ffffffffffffff0033520000335233523300000027000027000027000027 000027272727272727270027000027000027000027000000ffffffffffff ffffffffffffffffffffff003300bf003352335233002727272727272727 27272727000027272727272727270027272727272727272727272700ffff ffffffffffffffffffffffffffffff003300bf0033523352330027000027 000027000027000000002727272727272727000027000027000027000027 0000ffffffffffffffffffffffffffffffffff003300bf00335233523300 272727272727272727272727000027272727272727270027272727272727 272727272700ffffffffffffffffffffffffffffffffff003300bf003352 335200000027000027000027000027000000272727272727272700000027 000027000027000000ffffffffffffffffffffffffffffffffffff003300 005233523352002727272727272727272727272700002727272727272727 00272727272727272727272700ffffffffffffffffffffffffffffffffff ff0033000052335233520027000027000027000027000027000000000000 0000000000270000270000270000270000ffffffffffffffffffffffffff ffffffffff00330033523352335200272727272727272727272727270000 333300000033333300272727272727272727272700ffffffffffffffffff ffffffffffffffffff003300335233523352000027000027000027000027 000000696900bfbf0000690000002700002700002700002700ffffffffff ffffffffffffffffffffffffff0033523352335233520027272727272727 272727272700005200bfbf000052520027272727272727272727272700ff ffffffffffffffffffffffffffffffffff00335233003352335200000027 000027000027000027003333000000003333000027000027000027000027 000000ffffffffffffffffffffffffffffffffffff003352330033523352 002727272727272727272727270000000000000000000027272727272727 27272727272700ffffffffffffffffffffffffffffffffffff0033520000 335233520027000027000027000027000027000027000027000027000027 00002700002700002700ffffffffffffffffffffffffffffffffffffff00 335200003352330027272727272727272727272727272727272727272727 2727272727272727272727272700ffffffffffffffffffffffffffffffff ffffff003300bf0033523300000027000027000027000027000027000027 000027000027000027000027000027000000ffffffffffffffffffffffff ffffffffffffff003300bf00335233000000000000000000000000000000 00000000000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffffffff003300bf003352006969696969696969696969 69696969696969696969696969696969696969696969696900ffffffffff ffffffffffffffffffffffffffffff003300bf0033520052525252520f52 520f0f0f520f5252520f520f0f0f520f520f520f0f0f52525252525200ff ffffffffffffffffffffffffffffffffffffff0033000052330033333333 330f330f330f330f330f0f330f0f330f330f330f330f330f330f33333333 3300ffffffffffffffffffffffffffffffffffffffffff00330000523300 696969690f0f0f690f0f0f690f0f0f0f0f690f690f690f690f690f0f0f69 696969696900ffffffffffffffffffffffffffffffffffffffffff003300 33520052525252520f520f520f520f520f520f520f520f0f0f520f0f0f52 0f520f525252525200ffffffffffffffffffffffffffffffffffffffffff ff0033003352003333333333330000003333333333333333333333333333 33333333333333333333333300ffffffffffffffffffffffffffffffffff ffffffffff003352330069696969690000c85ac800006969696969690000 00006969696969690000000069696900ffffffffffffffffffffffffffff ffffffffffffffffff00335233005252520023c8c840c8c8230052525252 0000bfbfbf00005252520000bfbfbf0000525200ffffffffffffffffffff ffffffffffffffffffffffffff003352003333333300c8c8234023c8c800 33333300bfbfbfbfbf0000333300bfbfbfbfbf00003300ffff0000000000 00ffffffffffffffffffffffffffffffff00335200696900c8c823235a23 23c8c80069696900bf00bfbfbf0000696900bf00bfbfbf00006900ffff00 ffffffff00ffffffffffffffffffffffffffffffff00330052525200c823 23c85ac82323c800525200bf009300bf0000525200bf009300bf00005200 ffff00ffffffff00ffffffffffffffffffffffffffffffffff0033003333 002323c8c840c8c823230033333300bfbf00bfbf0000333300bfbf00bfbf 00003300ffff000000000000ffffffffffffffffffffffffffffffffff00 006969690023c8c8234023c8c82300696900000000000000006969000000 00000000006900ffffffffff00ffffffffffffffffffffffffffffffffff ffffff0000525200c8c823235a2323c8c800525252000000000000000052 5200000000000000005200ffffffffff00ffffffffffffffffffffffffff ffffffffffffff0033333300c82323c85ac82323c8003333333333333333 3333333333333333333333333333ffffffffff00ffffffffffffffffffff ffffffffffffffffffffff00000000000000000000000000000000000000 000000000000000000000000000000000000ffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-armo.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00000000000000000000000000000000000000 000000000000000000000000000000000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffff00004d004d004d004d004d004d004d 004d004d004d004d004d004d004d004d004d00004d00ffffffffffffffff ffffffffffffffffffffffffffffffffffff000000004d004d0000000000 4d004d004d004d004d004d004d004d004d004d004d004d00000000ffffff ffffffffffffffffffffffffffffffffffffffffffff0000004d004d004d 00007f7f004d004d004d004d004d004d004d004d004d004d004d0000007f 7f00ffffffffffffffffffffffffffffffffffffffffffffff0065000000 4d004d407f7fbfbfbf004d004d004d004d004d004d004d004d004d004d00 407f7fbfbfbf00ffffffffffffffffffffffffffffffffffffffffffff00 65009300004d007f40bfbfbf0000004d004d004d004d004d004d004d004d 004d004d7f40bfbfbf0000ffffffffffffffffffffffffffffffffffffff ffff0065650093004d00407f40bfbfbf000000004d004d004d004d004d00 4d004d004d004d407f40bfbfbf0000ffffffffffffffffffffffffffffff ffffffffffff006565009300004d7fbfbf4040ff004d004d004d004d004d 004d004d004d004d004d007fbfbf4040ff00ffffffffffffffffffffffff ffffffffffffffffff0065656500939300007f40bfbfbfbf4d004d004d00 4d004d004d004d004d004d004d004d7f40bfbfbfbf0000ffffffffffffff ffffffffffffffffffffffffff0065656500939300007fbf40bfff000000 000000000000000000000000000000000000007fbf40bfff000000ffffff ffffffffffffffffffffffffffffffff006565656500939300004dbfbfbf 00004d00004d00004d00004d00004d00004d00004d00004dbfbfbf00004d 00ffffffffffffffffffffffffffffffffffffff0065650065009393004d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d00ffffffffffffffffffffffffffffffffffff00656565006500 93930000004d00004d00004d00004d00000000000000000000004d00004d 00004d00004d000000ffffffffffffffffffffffffffffffffffff006565 6500650093004d4d4d4d4d4d4d4d4d4d4d4d4d004d4d4d4d4d4d4d4d004d 4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffffff 00656500650065009300004d00004d00004d00004d0000004d4d4d4d4d4d 4d4d0000004d00004d00004d00004d00ffffffffffffffffffffffffffff ffffffff006565006500650093004d4d4d4d4d4d4d4d4d4d4d4d4d004d4d 4d4d4d4d4d4d004d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffff ffffffffffffff006565000065006500930000004d00004d00004d00004d 00004d4d4d4d4d4d4d4d004d00004d00004d00004d000000ffffffffffff ffffffffffffffffffffff00656500006565650093004d4d4d4d4d4d4d4d 4d4d4d4d00004d4d4d4d4d4d4d4d004d4d4d4d4d4d4d4d4d4d4d4d00ffff ffffffffffffffffffffffffffffff006500bf006565650093004d00004d 00004d00004d000000004d4d4d4d4d4d4d4d00004d00004d00004d00004d 0000ffffffffffffffffffffffffffffffffff006500bf00656565009300 4d4d4d4d4d4d4d4d4d4d4d4d00004d4d4d4d4d4d4d4d004d4d4d4d4d4d4d 4d4d4d4d4d00ffffffffffffffffffffffffffffffffff006500bf006565 65000000004d00004d00004d00004d0000004d4d4d4d4d4d4d4d0000004d 00004d00004d000000ffffffffffffffffffffffffffffffffffff006500 bf0065006500004d4d4d4d4d4d4d4d4d4d4d4d4d00004d4d4d4d4d4d4d4d 004d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffff ff006500006565006500004d00004d00004d00004d00004d000000000000 00000000004d00004d00004d00004d0000ffffffffffffffffffffffffff ffffffffff006500006565006500004d4d4d4d4d4d4d4d4d4d4d4d4d0000 9393000000939393004d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffff ffffffffffffffffff00650065656500650000004d00004d00004d00004d 000000939300bfbf0000930000004d00004d00004d00004d00ffffffffff ffffffffffffffffffffffffff006500656565006500004d4d4d4d4d4d4d 4d4d4d4d4d00009300bfbf00009393004d4d4d4d4d4d4d4d4d4d4d4d00ff ffffffffffffffffffffffffffffffffff0065656500650065000000004d 00004d00004d00004d00939300000000939300004d00004d00004d00004d 000000ffffffffffffffffffffffffffffffffffff006565650065006500 004d4d4d4d4d4d4d4d4d4d4d4d000000000000000000004d4d4d4d4d4d4d 4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffffff0065650000 65006500004d00004d00004d00004d00004d00004d00004d00004d00004d 00004d00004d00004d00ffffffffffffffffffffffffffffffffffffff00 65650000656565004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffff ffffff00650065006565650000004d00004d00004d00004d00004d00004d 00004d00004d00004d00004d00004d000000ffffffffffffffffffffffff ffffffffffffff0065006500656565000000000000000000000000000000 00000000000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffffffff00000000000065009393939393939393939393 93939393939393939393939393939393939393939393939300ffffffffff ffffffffffffffffffffffffffffff0000e200e20065009393939393930f 93930f0f0f930f9393930f930f0f0f930f930f930f0f0f939393939300ff ffffffffffffffffffffffffffffffffffffff00e200e200650093939393 93930f930f930f930f930f0f930f0f930f930f930f930f930f930f939393 9300ffffffffffffffffffffffffffffffffffffffffff00000000006500 93939393930f0f0f930f0f0f930f0f0f0f0f930f930f930f930f930f0f0f 939393939300ffffffffffffffffffffffffffffffffffffffffffff0000 6565009393939393930f930f930f930f930f930f930f930f0f0f930f0f0f 930f930f9393939300ffffffffffffffffffffffffffffffffffffffffff ffff00656565009393939393939393939393939393939393939393939393 93939393939393939393939300ffffffffffffffffffffffffffffffffff ffffffffff00006565009393939393939393939393939393939300000000 93939393939393000000009393939300ffffffffffffffffffffffffffff ffffffffffffffffff006565650093939393930000009393939393930000 bfbfbf0000939393930000bfbfbf000093939300ffffffffffffffffffff ffffffffffffffffffffffffff0065650093939393930065650000939393 9300bfbfbfbfbf000093939300bfbfbfbfbf0000939300ffff0000000000 00ffffffffffffffffffffffffffffffff00656500939393930065656565 009393939300bf00bfbfbf000093939300bf00bfbfbf0000939300ffff00 ffffffff00ffffffffffffffffffffffffffffffff006500939393930065 656565000093939300bf009300bf000093939300bf009300bf0000939300 ffff00ffffffff00ffffffffffffffffffffffffffffffffff0065009393 93930000656565000093939300bfbf00bfbf000093939300bfbf00bfbf00 00939300ffff000000000000ffffffffffffffffffffffffffffffffff00 009393939300656565650000939393000000000000000093939300000000 00000000939300ffffffffff00ffffffffffffffffffffffffffffffffff ffffff000093939393006565656500009393930000000000000000939393 0000000000000000939300ffffffffff00ffffffffffffffffffffffffff ffffffffffffff0093939393000000000000009393939393939393939393 9393939393939393939393939393ffffffffff00ffffffffffffffffffff ffffffffffffffffffffff000000000000ffffffffff0000000000000000 000000000000000000000000000000000000ffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 202 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-gene-fant.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000ffffffffffffffffffffffffffffffff00 330000200020002000200020002000200020002000200020002000200020 002000200020002000200020002000200000ffffffffffffffffffffffff ffffff003300200020002000200020002000200020002000200020002000 20002000200020002000200020002000200020002000ffffffffffffffff ffffffffffff002433240020002000200020002000200020002000200020 002000200020002000200020002000200020002000200020002000ffffff ffffffffffffffffffff0024332400002000200020002000200020002000 200020002000200020002000200020002000200020002000200020002000 00ffffffffffffffffffffffff004f243324330000200020002000200020 002000200020002000200020002000200020002000200020002000200020 002000200000ffffffffffffffffffffff00332433243300200020002000 200020002000200020002000200020002000200020002000200020000000 0000bfbf20a1bf002000ffffffffffffffffffff00804f24332433240020 002000200020002000200020002000200020002000200020002000200020 00200040404000a1a1bfa1bf00bf00ffffffffffffffffff004f33243324 332400002000200020002000200020002000200020002000200020002000 200020002000004040bf00bf51005100200000ffffffffffffffff004f80 4f2433003324000000000000000000000000000000000000000000000000 000000000000000000000040404000000000000000000000ffffffffffff ff00334f332433cb33240000290029002900290029002900290029002900 290029002900290029002900004000000000000029002900290000ffffff ffffffff004f4f00332400ad332400292929292929292929292929292929 2929292929292929292929292929292900007fa1a1002929292929292929 00ffffffffffffff008000ad3324cbcb3324002900290029002900290029 00290029002900290029002900290029002900290000a17fa10000290029 0029002900ffffffffffff004f4fcbad4f24cb0033240029292929292929 29292929292929292929292929292929292929292929292900a17fa10029 292929292929292900ffffffffffff004f00adcb3324cb24332400002900 290029002900290029002900290029002900290029002900290029000000 00000000290029002900290000ffffffffffff0033cbad00332400003324 002929292929292929292929292929292929292929292929292929292929 2929292929292929292929292929292900ffffffffffff004fcbad4f3324 33cb33000029002900290029002900290029002900290029002900290029 0029002900290029002900290029002900290000ffffffffffffff0033cb cb804f2400ad330029292929292929292929292929292929292929292929 292929292929292929292929292929292929292929292900ffffffffffff ff004fcb00803324cbcb3300290029002900290029002900290029002900 29002900290029002900290029002900290029002900290029002900ffff ffffffffff0033cb33803324cb0033002929292929292929292929292929 292929292929292929292929292929292929292929292929292929292929 2900ffffffffffffff003300334f4f24cb24330000290029002900290029 002900290029002900290029002900290029002900290029002900290029 002900290000ffffffffffffff00334f4f00332400243300292929292929 292929292929292929292929292929292929292929292929292929292929 29292929292929292900ffffffffffffff004f8000ad4f24332400002900 290029002900290029002900290029002900290029002900290029002900 29002900290029002900290000ffffffffffffffff003380cbad33243324 002929292929292929292929292929292929292929292929292929292929 2929292929292929292929292929292900ffffffffffffffff003300adcb 4f2433240029002900290029002900290029002900290029002900290029 002900290029002900290029002900290029002900ffffffffffffffff00 33cbad003324332400292929292929292929292929292929292929292929 29292929292929292929292929292929292929292929292900ffffffffff ffffff004fcbad804f243324000029002900290029002900290029002900 2900290029002900290029002900290029002900290029002900292900ff ffffffffffffff0033cbcb4f332433002929292929292929292929292929 292929292929292929292929292929292929292929292929292929292929 2900ffffffffffffffffff0033cb00804f24330000290029002900290029 002900290029002900290029002900290029002900290029002900290029 002900290000ffffffffffffffffff004fcb334f33243300292929292929 292929292929292929292929292929292929292929292929292929292929 29292929292929292900ffffffffffffffffff0033004f80332433002900 290029002900290029002900290029002900290029002900290029002900 2900290029002900290029002900ffffffffffffffffff00334f334f3324 330029292929292929292929292929292900000000000000000000000000 0000000000000000000000000000000000000000ffffffffffffff004f80 4f004f24330000290029002900290029002900290000a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a100ffffffffffff ff00334f332d33240029292929292929292929292929292900a1a1000000 a1000000a100a1a100a1000000a1000000a1a100a1a100a1a1a100ffffff ffffffffff004f80002d33240000290029002900290029002900290000a1 a100a1a1a10000a1a10000a100a10000a1a100a100a100a100a100a1a1a1 00ffffffffffffffff00334f2d2d33240029292929292929292929292929 2900a1a100a100a100a1a1a100a10000a100a1a1a1000000a1000000a100 a1a1a100ffffffffffffffffff004f002d2d4f2400290029002900290029 002900290000a1a1000000a1000000a100a1a100a1000000a100a100a100 a100a1000000a100ffffffffffffffffff00332d2d2d3324002929292929 292929292929292900a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffff00002d2d0033240000 000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000ffffffffffffffffffff002d2d2d4f 4f00a7a780a7a7a780a7a7a780a7a780a7a7a7a780a7a780a7a7a780a7a7 a7a780a7a7a780a7a7a7a780a7a780a7a700ffffffffffffffffffffff00 2d2d00804f0080a74f8080a74f8080a74f80a74f808080a74f80a74f8080 a74f808080a74f8080a74f808080a74f80a74f808000ffffffffffffffff ffffff002d2d3380004f4f804f4f4f804f4f4f804f4f804f4f4f4f804f4f 804f4f4f804f4f4f4f804f4f4f804f4f4f4f804f4f804f4f00ffffffffff ffffffffffffff002d00334f00a780a700000000a7a780a7a78000000000 80a7a780a7a700000000a7a780a7a780a700000000a7a7a780a7a78000ff ffffffffffffffffffffff002d4f4f0080a74f00cbcbcba600a74f80a700 cbcbcba60080a74f8000cbcbcba600a74f80a74f0000363e360000a74f80 a700ffffffffffffffffffffffffff0000804f004f8000cbcbcba6a60080 4f4f00cbe2e2a6a6004f804f00cbe2e2a6a600804f4f0024363640363624 00804f4f8000ff000000000000ffffffffffff00338000a780a700cbcbcb a60000a7a78000cbe2e2a6000080a7a700cbe2e2a60000a7a7a700363624 4024363600a7a7a700ffff00ffffffff00ffffffffffff00334f00a74f00 cba6a6a6a6004f80a700cba6a6a6a600a74f8000cba6a6a6a6004f800036 3624243e24243636008080a700ff00ffffffff00ffffffffffffff004f00 4f804f000000000000004f4f8000000000000000804f4f00000000000000 4f4f00362424363e36242436004f4f00ffff000000000000ffffffffffff ff004f00a7800000000000000080a7a700000000000000a7a78000000000 00000080a70024243636403636242400a7a78000ffffffff00ffffffffff ffffffffff000080a74f808080a74f80a74f8080a74f8080a74f8080a74f 80a74f808080a74f80002436362440243636240080a700ffffffffff00ff ffffffffffffffffff00004f804f4f4f4f804f4f804f4f4f804f4f4f804f 4f4f804f4f804f4f4f4f804f00363624243e24243636004f4f8000ffffff ff00ffffffffffffffffffffff0000000000000000000000000000000000 0000000000000000000000000000000000362424363e3624243600000000 ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-gene-west.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffff0000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000 ffffffffffffffffffffffffffffffff000000b074747474b07474b07474 74b0747474b0747474b074747474b07474b074b0b0b0cc74b0cc74b0b0cc 74b0b000ffffffffffffffffffffffffffffff00007400b0ccccb0cccccc ccb0ccccb0ccccccb0ccccb0ccb0ccccb0ccccccccb074747474b07474b0 747474b074747400ffffffffffffffffffffffffffffff0074500074b0cc 74b0b0b0cc74b0cc74b0b0cc74b0b0b0cc74b0cc74b0b0b0cc74ccccb0cc ccccb0ccccb0ccccccccb000ffffffffffffffffffffffffffff0074b074 007474b074747474b07474b0747474b074747474b07474b074747474b074 b0cc74b0b0cc74b0cc74b0b0b0cc7400ffffffffffffffffffffffffff00 0050745000ccb0ccccccb0ccccccb0ccccb0ccccccccb0ccccccccb0cccc ccb0cccc74b0747474b07474b074747474b07400ffffffffffffffffffff ffffff007474005000cc74b0b0cc74b0b0cc74b0cc74b0b0b0cc74b0cccc cc74b0cccc74b0ccb0ccccb0ccccccccb0ccccccccb0cc00ffffffffffff ffffffffffff0000b000af5000b0ccccb0ccccccccb0ccccb0ccccccb0cc ccb0ccccb07474b0b07474b074b0cc74b0b0b0cc74b0b0cc74b0cc00ffff ffffffffffffffffffff007474cbaf7400b0cc74b0b0b0cc74b0cc74b0b0 cc74b0b0cc74b0b0b0ccccb0ccccb0cc7474b074747474b0747474b07474 b000ffffffffffffffffffffff00747400afcb500074b074747474b07474 b0747474b0747474b074b07474b0747474b074747474b0ccccccb0ccccb0 ccccccccb000ffffffffffffffffffffff005050cbaf005000ccb0ccccb0 ccccccccb0ccccb0ccccccb0ccccccccb0ccccb0ccccccccb0cc74b0cccc 74b0cc74b0b0b0cc7400ffffffffffffffffffff00b07474cbaf745000cc 74b0cc74b0b0b0cc74b0cc74b0b0cc74b0b0b0cc74b0cc74b0b0b0cc74b0 b0cc74b0b0cc74b0b0b0b0b07400ffffffffffffffffffff00745050cbcb b07400b07474b074747474b07474b0747474b074747474b07474b0747474 74b0747474b0747474b07474747474b07400ffffffffffffffffff0074b0 7474cb00b05000ccccb0ccccccb0ccccccb0ccccb0ccccccccb0cccccccc b0ccccccccb0ccccccb0ccccb0ccccccccb0cccccc00ffffffffffffffff ff0050745050cb50b05000b0cc74b0b0cc74b0b0cc74b0cc74b0b0b0cc74 b0b0b0cc74b0b0cc74cc74b0cc74b0cc74b0b0b0cc74b0cccc00ffffffff ffffffff007474007450005074740074b0747474b0747474b07474b07474 7474b074747474b0747474b074b07474b0ccccb0ccccccb0ccccb0cccc00 ffffffffffffffff00b000af50507474005000b0ccccccb0ccccb0cccccc ccb0ccccccccb0ccccccb0ccccb0ccccccccccccb0cc74b0b0cc74b0b0cc 74b0b000ffffffffffffff007474cbaf7474b000af740074b0b0cc74b0cc 74b0b0b0cc74b0b0cc74ccb0cccc74b0cc74b0b0b0b0b0ccb0b0747474b0 747474b074747400ffffffffffffff007400afcb5050b0cbaf5000747474 b07474b074747474b0747474b074b074b0b07474b0747474747474b074b0 ccccb0ccccccb0ccccb0cc00ffffffffffffff0050cbaf00745000afcb74 00ccb0ccccccccb0ccccccb0ccccb0ccccccccccb0ccccb0ccccccb0cccc ccb0cc74b0cc74b0b0cc74b0b0b0cc00ffffffffffffff0074cbaf745050 cbaf005000cc74b0b0b0cc74b0cccc74b0cc74b0b0b0b0b0cc74b0cccc74 b0cc74b0b0b0cc7474b0747474b074747474b000ffffffffffffff0050cb cbb07474cbafb07400b074747474b07474b0b07474b0747474747474b074 74b0b07474b074747474b0ccb0ccccb0ccccccccb0cccc00ffffffffffff ff0074cb00b05050cbcb745000b0ccccccccb0ccccb0ccccb0ccccccb0cc ccccb0ccccb0ccccb0ccccccb0cccccc74b0cc74b0b0b0cc74b0cc00ffff ffffffffff0050cb50b05050cb00b07400b0b0b0cc74b0cc74b0b0cc74b0 b0cc74b0cc74b0cc74b0b0cc74b0b0cc74b0b0b07474b074747474b07474 b000ffffffffffffff00500050747474cb50745000747474b07474b07474 74b0747474b07474b07474b0747474b0747474b0747474ccccccb0cccccc ccb0ccccb000ffffffffffffff005074740050500050747400b0ccccb0cc ccccccb0ccccb0ccccccb0ccb0ccccccccb0ccccb0ccccccb0ccccb0b0cc 74b0b0cc74b0cc74b000ffffffffffffff0074b000af74507474005000b0 cc74b0b0b0cc74b0cc74b0b0cc74b0b0b0b0b0cc74b0cc74b0b0cc74b0b0 cc7474b0747474b07474b0747400ffffffffffffff0050b0cbaf5074b000 af740074b074747474b07474b0747474b0747474747474b07474b0747474 b0747474b0b07474b074747474b07474b000ffffffffffffff005000afcb 7450b0cbaf5000ccb0ccccb0ccccccccb0ccccb0ccccccb0ccb0cccccccc b0ccccb0ccccccb0ccccccccb0ccccccccb0ccccb000ffffffffffffff00 50cbaf00505000afcb7400cc74b0cc74b0b0b0cc74b0cc74b0b0cc74cc74 b0b0b0cc74b0cc74b0b0cc74b0b0b0cc74b0b0cc74b0cc74b000ffffffff ffffff0074cbafb07450cbaf005000b07474b074747474b07474b0747474 b074b074747474b07474b0747474b074747474b0747474b07474b0747400 ffffffffffffff0050cbcb745074cbafb07400ccccb0ccccccb0ccccccb0 ccccb0ccccccccccccb0ccccccb0ccccb0ccccccccccb0ccccb0cccccccc b0cccc00ffffffffffffff0050cb00b07450cbcb745000b0cc74b0b0cc74 b0b0cc74b0cc74b0b0b0cc74b0cc74b0b0cc74b0cccc74b0cccc74b0cc74 b0b0b0cc74b0cc00ffffffffffffff0074cb50745050cb00b0740074b074 7474b0747474b07474b074747474b07474b0747474b07474b0b07474b0b0 7474b074747474b07474b000ffffffffffffff00500074b05074cb507474 000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000ffffffffffffff00507450745050 0074b000b0cc74b0b0cc74b0b0cc74b0cc00000000000000000000000000 0000000000000000000000000000000000000000ffffffffffffff0074b0 740074b0b074740074b0747474b0747474b074740000a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a100ffffffffffff ff00507450315074b07400b0ccb0cc00000000ccccb0cccc00a1a1000000 a1000000a100a1a100a1000000a1000000a1a100a1a100a1a1a100ffffff ffffffffff0074b000315074b0740074007400cbcbcbb000cc74b00000a1 a100a1a1a10000a1a10000a100a10000a1a100a100a100a100a100a1a1a1 00ffffffffffffffff005074313150747400b0740000cbcbcbb0b000b074 7400a1a100a100a100a1a1a100a10000a100a1a1a1000000a1000000a100 a1a1a100ffffffffffffffffff007400313174b07400b0000000cbcbcbb0 0000cccc0000a1a1000000a1000000a100a1a100a1000000a100a100a100 a100a1000000a100ffffffffffffffffff005031313150b0007474b0b0cb b0b0b0b00074b0cc00a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffff000031310050740074 7474740000000000007474b0000000000000000000000000000000000000 000000000000000000000000000000ffffffffffffffffffff0031313174 7400ccccb0cccc0000000000b0cccc00000000000000ccccb00000000000 0000b0ccb000000000000000b0cccccccc00ffffffffffffffffffffff00 313100b07400b0cc74b0b0cc74b0b0cc74b0cc74b0b0b0cc74b0cc74b0b0 cc74b0b0b0cc74b0b0cc74b0b0b0cc74b0cc74b0b000ffffffffffffffff ffffff00313150b0007474b0747474b0747474b07474b074747474b07474 b0747474b074747474b0747474b000000000b07474b0747400ffffffffff ffffffffffffff003100507400ccb0cc00000000ccccb0ccccb000000000 b0ccccb0cccc00000000ccccb0ccccb000003f3f1f3f0000b0ccccb000ff ffffffffffffffffffffff0031747400b0cc7400cbcbcbb000cc74b0cc00 cbcbcbb000b0cc74b000cbcbcbb000cc74b0003f3f3f3f1f3f3f3f0074b0 cc00ffffffffffffffffffffffffff0000b0740074b000cbcbcbb0b000b0 747400cbe1e1b0b00074b07400cbe1e1b0b000b074003f3f3f3f3f1f3f3f 3f3f0074b000ff000000000000ffffffffffff0050b000ccb0cc00cbcbcb b00000ccccb000cbe1e1b00000b0cccc00cbe1e1b00000cc003f3f3f3f3f 1f3f3f3f3f00cccc00ffff00ffffffff00ffffffffffff00507400cc7400 cbb0b0b0b00074b0cc00cbb0b0b0b000cc74b000cbb0b0b0b00074b0b000 3f3f3f3f1f3f3f3f00b0b0cc00ff00ffffffff00ffffffffffffff007400 74b074000000000000007474b000000000000000b0747400000000000000 747474003f3f3f1f3f3f00b074747400ffff000000000000ffffffffffff ff007400ccb000000000000000b0cccc00000000000000ccccb000000000 000000b0ccccb0003f3f3f1f3f3f00b0ccccb000ffffffff00ffffffffff ffffffffff0000b0cc74b0b0b0cc74b0cc74b0b0cc74b0b0cc74b0b0cc74 b0cc74b0b0b0cc74b0cc003f3f3f1f3f3f00cc74b0cc00ffffffffff00ff ffffffffffffffffff000074b074747474b07474b0747474b0747474b074 7474b07474b074747474b07474b0003f3f3f1f3f3f00b07474b000ffffff ff00ffffffffffffffffffffff0000000000000000000000000000000000 000000000000000000000000000000000000ffffffffffff000000000000 ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 202 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-gene.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000ffffffffffffffffffffffffffffffff00 3f00003f003f003f003f003f003f003f003f003f003f003f003f003f003f 003f003f003f003f003f003f003f003f0000ffffffffffffffffffffffff ffffff003f003f003f003f003f003f003f003f003f003f003f003f003f00 3f003f003f003f003f003f003f003f003f003f003f00ffffffffffffffff ffffffffffff002d3f2d003f003f003f003f003f003f003f003f003f003f 003f003f003f003f003f003f003f003f003f003f003f003f003f00ffffff ffffffffffffffffffff002d3f2d00003f003f003f003f003f003f003f00 3f003f003f003f003f003f003f003f003f003f003f003f003f003f003f00 00ffffffffffffffffffffffff00612d3f2d3f00003f003f003f003f003f 003f003f003f003f003f003f003f003f003f003f003f003f003f003f003f 003f003f0000ffffffffffffffffffffff00402d3f2d3f003f003f003f00 3f003f003f003f003f003f003f003f003f003f003f003f003f003f000000 0000bfbf3fa1bf003f00ffffffffffffffffffff00a1612d3f2d3f2d003f 003f003f003f003f003f003f003f003f003f003f003f003f003f003f003f 003f0040404000a1a1bfa1bf00bf00ffffffffffffffffff0061402d3f2d 3f2d00003f003f003f003f003f003f003f003f003f003f003f003f003f00 3f003f003f00004040bf00bfa100a1003f0000ffffffffffffffff0061a1 612d3f003f2d000000000000000000000000000000000000000000000000 000000000000000000000040404000000000000000000000ffffffffffff ff004061402d3fcb3f2d0000520052005200520052005200520052005200 520052005200520052005200004000000000000052005200520000ffffff ffffffff00616100402d00ad3f2d00525252525252525252525252525252 5252525252525252525252525252525200007fa1a1005252525252525252 00ffffffffffffff00a100ad402dcbcb3f2d005200520052005200520052 00520052005200520052005200520052005200520000a17fa10000520052 0052005200ffffffffffff006161cbad612dcb003f2d0052525252525252 52525252525252525252525252525252525252525252525200a17fa10052 525252525252525200ffffffffffff006100adcb402dcb2d3f2d00005200 520052005200520052005200520052005200520052005200520052000000 00000000520052005200520000ffffffffffff0040cbad00402d00003f2d 005252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525200ffffffffffff0061cbad61402d 3fcb3f000052005200520052005200520052005200520052005200520052 0052005200520052005200520052005200520000ffffffffffffff0040cb cba1612d00ad3f0052525252525252525252525252525252525252525252 525252525252525252525252525252525252525252525200ffffffffffff ff0061cb00a1402dcbcb3f00520052005200520052005200520052005200 52005200520052005200520052005200520052005200520052005200ffff ffffffffff0040cb40a1402dcb003f005252525252525252525252525252 525252525252525252525252525252525252525252525252525252525252 5200ffffffffffffff0040004061612dcb2d3f0000520052005200520052 005200520052005200520052005200520052005200520052005200520052 005200520000ffffffffffffff0040616100402d002d3f00525252525252 525252525252525252525252525252525252525252525252525252525252 52525252525252525200ffffffffffffff0061a100ad612d3f2d00005200 520052005200520052005200520052005200520052005200520052005200 52005200520052005200520000ffffffffffffffff0040a1cbad402d3f2d 005252525252525252525252525252525252525252525252525252525252 5252525252525252525252525252525200ffffffffffffffff004000adcb 612d3f2d0052005200520052005200520052005200520052005200520052 005200520052005200520052005200520052005200ffffffffffffffff00 40cbad00402d3f2d00525252525252525252525252525252525252525252 52525252525252525252525252525252525252525252525200ffffffffff ffffff0061cbada1612d3f2d000052005200520052005200520052005200 5200520052005200520052005200520052005200520052005200525200ff ffffffffffffff0040cbcb61402d3f005252525252525252525252525252 525252525252525252525252525252525252525252525252525252525252 5200ffffffffffffffffff0040cb00a1612d3f0000520052005200520052 005200520052005200520052005200520052005200520052005200520052 005200520000ffffffffffffffffff0061cb4061402d3f00525252525252 525252525252525252525252525252525252525252525252525252525252 52525252525252525200ffffffffffffffffff00400061a1402d3f005200 520052005200520052005200520052005200520052005200520052005200 5200520052005200520052005200ffffffffffffffffff0040614061402d 3f0052525252525252525252525252525200000000000000000000000000 0000000000000000000000000000000000000000ffffffffffffff0061a1 6100612d3f0000520052005200520052005200520000a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a100ffffffffffff ff004061402d402d0052525252525252525252525252525200a1a1000000 a1000000a100a1a100a1000000a1000000a1a100a1a100a1a1a100ffffff ffffffffff0061a1002d402d0000520052005200520052005200520000a1 a100a1a1a10000a1a10000a100a10000a1a100a100a100a100a100a1a1a1 00ffffffffffffffff0040612d2d402d0052525252525252525252525252 5200a1a100a100a100a1a1a100a10000a100a1a1a1000000a1000000a100 a1a1a100ffffffffffffffffff0061002d2d612d00520052005200520052 005200520000a1a1000000a1000000a100a1a100a1000000a100a100a100 a100a1000000a100ffffffffffffffffff00402d2d2d402d005252525252 525252525252525200a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 a1a1a1a1a1a1a1a1a1a100ffffffffffffffffffff00002d2d00402d0000 000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000ffffffffffffffffffff002d2d2d61 6100bfbfa1bfbfbfa1bfbfbfa1bfbfa1bfbfbfbfa1bfbfa1bfbfbfa1bfbf bfbfa1bfbfbfa1bfbfbfbfa1bfbfa1bfbf00ffffffffffffffffffffff00 2d2d00a16100a1bf61a1a1bf61a1a1bf61a1bf61a1a1a1bf61a1bf61a1a1 bf61a1a1a1bf61a1a1bf61a1a1a1bf61a1bf61a1a100ffffffffffffffff ffffff002d2d40a1006161a1616161a1616161a16161a161616161a16161 a1616161a161616161a1616161a161616161a16161a1616100ffffffffff ffffffffffffff002d00406100bfa1bf00000000bfbfa1bfbfa100000000 a1bfbfa1bfbf00000000bfbfa1bfbfa1bf00000000bfbfbfa1bfbfa100ff ffffffffffffffffffffff002d616100a1bf6100cbcbcba600bf61a1bf00 cbcbcba600a1bf61a100cbcbcba600bf61a1bf61003f3f3f0000a1bf61a1 bf00ffffffffffffffffffffffffff0000a1610061a100cbcbcba6a600a1 616100cbe2e2a6a60061a16100cbe2e2a6a600a16161a1003f3f3f3f0000 61a16161a100ff000000000000ffffffffffff0040a100bfa1bf00cbcbcb a60000bfbfa100cbe2e2a60000a1bfbf00cbe2e2a60000bfbfbf003f3f3f 3f3f0000a1bfbfbf00ffff00ffffffff00ffffffffffff00406100bf6100 cba6a6a6a60061a1bf00cba6a6a6a600bf61a100cba6a6a6a60061a1a1bf 003f3f3f3f3f000061a1a1bf00ff00ffffffff00ffffffffffffff006100 61a161000000000000006161a100000000000000a1616100000000000000 61616100a6a63f3f3f0000a161616100ffff000000000000ffffffffffff ff006100bfa100000000000000a1bfbf00000000000000bfbfa100000000 000000a1bfbfa1003f3f3f3f3f0000a1bfbfa100ffffffff00ffffffffff ffffffffff0000a1bf61a1a1a1bf61a1bf61a1a1bf61a1a1bf61a1a1bf61 a1bf61a1a1a1bf61a1bf003f3f3f3f3f00000061a1bf00ffffffffff00ff ffffffffffffffffff000061a161616161a16161a1616161a1616161a161 6161a16161a161616161a16161a1003f3f3f3f3f0000a16161a100ffffff ff00ffffffffffffffffffffff0000000000000000000000000000000000 000000000000000000000000000000000000ffffffffffff000000000000 ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-magi-fant.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000002929290033330000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000002929292929002900330033330000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00002929292929290029002900330033333300ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000292929292900290029292900333333003300ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000292929002900292929002900330033003300ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff003300290029002929290029002900330033 333300ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff0033002900292929002900292929 00333333003300ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0033330029292900290029 2929002900330033003300ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff004f4f00290029 002929290029002900330033333300ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00334f33 00290029292900290029292900333333003300ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff 004f5a3300292929002900292929002900330033003300ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00006c00ffff ffffff0033335a4f00290029002929290029002900330033333300ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000023 7300ffffffffff005a335a33002900292929002900292929003333330033 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 232332736100ffffffff00335a004f330029292900290029292900290033 0033003300ffffffffffffffffffffffffffffffffffffffffffffffffff 000030322341554d4d00ffffffff334f5acb5a3300290029002929290029 002900330033333300ffffffffffffffffffffffffffffffffffffffffff ff0000233041233241556c4d6100ffffff005a3300ad5a4f002900292929 00290029292900333333003300ffffffffffffffffffffffffffffffffff ffffff002323303032234141424d61734d00ffffff334f4fcbcb4f330029 2929002900292929002900330033003300ffffffffffffffffffffffffff ffffffffffff002323303032234141324261736c4d00ffffff4f5a33cb00 5a3300290029002929290029002900330033333300ffffffffffffffffff ffffffffffffffffff0023303023323041323255554d4d616100ffffff33 4f33cb335a4f00290029292900290029292900333333003300ffffffffff ffffffffffffffffffffffff0023303032234141324255614d6c73734d00 ffffff4f5a3300335a3300292929002900292929002900330033003300ff ffffffffffffffffffffffffffffff00303023323041323255554d4d6161 6c6c6100ffffff335a4f5a334f4f00290029002929290029002900330033 333300ffffffffffffffffffffffffffffffff0030233230413232555542 4d61616c6c736100ffffff005a335a335a33002900292929002900292929 00333333003300ffffffffffffffffffffffffffffff0023234130323241 55424261614d4d61736c4d61000029002900290029002900290000000000 2900000000330033003300ffffffffffffffffffffffffffffff00234130 32324155424261614d4d61736c4d73610029002900290029002900290029 002900290029002900330033333300ffffffffffffffffffffffffffff00 00412332414142325561424d61614d4d73736c4d00000000000000000000 00000000000000000000000000333333003300ffffffffffffffffffffff ffffff00003041414142325561424261614d4d73736c4d73003333333333 3333333333333333333333333333333333000033003300ffffffffffffff ffffffffffff000000414132424155424261614d4d61614d6c73736c0000 330000330000330000330000330000330000330000000033333300ffffff ffffffffffffffffffff0000240032424155424261554d4d61614d6c7373 6c0033333333333333333333333333333333333333333333330033330033 00ffffffffffffffffffffffff0000001a00414142425561424d61614d4d 61616c6c7300003300003300003300003300003300003300003300003333 0033003300ffffffffffffffffffffffff0000cb00330032425555424d61 614d4d61616c6c7300333333333333333333333333333333333333333333 333333330033333300ffffffffffffffffffffff000000ad444400555542 4261554d4d61614d4d61736c000033000033000033000033000033000033 00003300003300000033003300ffffffffffffffffffffff0000cbcb4444 4f00424261554d4d61614d4d61736c003333333333333333333333333333 3333333333333333333333333300003300ffffffffffffffffffff000024 cb00334f4f670000424261614d4d61614d00000000330000330000000000 000000000000000000000000000000000000000000ffffffffffffffffff ff000024cb33334f4467675a0000614d4d61610000000033333333330050 50505050505050505050505050505050505050505050500000ffffffffff ffffffff0000241a331a6744675a4f5a89890000000000c7c7c700003300 0033005050005050500050500050500000005000500000005050500000ff ffffffffffffffff00001a1a332467674f80808989898080c7e5e5c7a700 333333333300505050000000000050005000500050505000500050505050 003300ffffffffffffffff00001a1a244467335a5a6789c78000000000c7 80a7a7000033000033005050005000500050000000500050005000500050 50505050003300ffffffffffffffff00001a2424444f333389c7675a00ad adcb0080a7d4003333333333005050500050005000500050005000000050 0050000000505000330000ffffffffffffff0000242444334f4f8989445a 80a700adcbcb00d4c7c70000330000330050505050505050505050505050 505050505050505050505000330000ffffffffffffff0000242433334f44 67675a805a00cbcbcb00a7aae50000000000000000000000000000000000 00000000000000000000000000000000000000ffffffffffff0000241a33 1a6744675a4f5a89aa0000000000aac7a7005a8080805a8080805a80805a 808080805a80805a8080805a808080805a80805a4f4fffffffffffffff00 001a1a332467674f808067c7c7d4a7a7e5e5c75a00004f5a5a804f5a5a80 4f5a804f5a5a5a804f5a804f5a5a804f5a5a5a804f5a805a5a00ffffffff ffff00001a1a244467335a5a6767c78000000000c7805aa7005a4f4f4f5a 4f4f4f5a4f4f5a4f4f4f4f5a4f4f5a4f4f4f5a4f0000005a4f4f5a4f4fff ffffffffffff00001a2424444f333389c7895a00adadcb0080a7d4000080 805a8000000000005a8080800000000000805a8080800000363e36000080 5a5a00ffffffffffff0000242444334f4f8989445a80a700adcbcb00d4e5 c7004f5a804f00cbcbcbcb00005a5a00cbcbcbcb00004f5a002436364036 362400804f4fffffffffffffff0000242433334f4467675a805a00cbcbcb 00a7aac700004f4f5a4f00cbcbcbcb00004f4f00cbcbcbcb00004f4f0036 362440243636005a4f00ffffffffffffff002424331a4f4467894f5a5aaa 0000000000aac7c7005a5a808000cbcbcbcb0000808000cbcbcbcb00005a 00363624243e24243636005a4fffffffffffffffff00241a331a67676780 804fc7aae5d480d4e5c7890000804f5a5a00cbcbcbcb00005a8000cbcbcb cb00004f00362424363e36242436004f00ffffffffffffffff001a333367 44895a4f5ac7c700000000c7aa89a700335a4f4f000000000000004f4f00 0000000000005a00242436364036362424005a4fffffffffffffffffffff 1a33446744335aa76789005252525200c7d400005a808080000000000000 00805a000000000000008000243636244024363624004f00ffffffffffff ffffffff0044674f5a5a4467aa005252525200d4d4a7005a4f5a5a5a804f 5a804f5a5a804f5a804f5a5a804f00363624243e24243636005a4fffffff ffffffffffffffffff004f4f4f6789aa5a00cb5252520080a70000804f4f 4f4f5a4f4f5a4f4f4f5a4f4f5a4f4f4f5a4f00362424363e362424360033 00ffffffffffffffffffffffff004f6789675a5a005252525200aac7c700 000000000000000000000000000000000000000000000000000000000000 00000000ffffffffffffffffffffffffffff0067aa804f00005252525200 c78900ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff000080aa005252 525200aa0000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 202 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-magi-northwest.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00000000000000000000000000000000000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000045454545456545656565658cafafafb9af00ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000454545454545654565658c8c8cafb9afb900ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff004e0045454545454545656565658cafb9af b9b900ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff004e00454545454545654545658c afafb9b9b9b900ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000000ffff0000ffffffffffffff004e4e0045454565456545 6565afb9afb9b9b9b9b900ffffffffffffffffffffffffffffffffffffff ffffffffffffff000000003f0000b000ffffffffffffff00727200654565 4565658c658cafafffffb9b9b9b900ffffffffffffffffffffffffffffff ffffffffffffffffff00003f3f3f0000003fb000ffffffffffff004e724e 0045654565658c658cafafafb9b9b9b9b9b900ffffffffffffffffffffff ffffffffffffffffffffff003f3f3f3f00003f3f59b097000000ffffffff 0072904e006545654565658c658cafafb9b9b9b9b9b900ffffffffffffff ffffffffffffffffffffffffffff003f3f3f00003f593f59779797009700 ffffff004e4e90720045654565658c658cafafafb9b9b9b9b9b900ffffff ffffffffffffffffffffffffffffffffff003f3f3f3fb03f593f595977b0 97970000ffffff00904e904e006545654565658c658cafafb9b9b9b9b9b9 00ffffffffffffffffffffffffffffffffffffffff003f3f3f59b0593f59 59779797b097009700ff004e9000724e0045654565658c658cafafafb9b9 b9b9b9b900ffffffffffffffffffffffffffffffffffffff003f3f3f593f 59b05959597797b0b097009700ff4e7290cb904e006545654565658c658c afafb9b9b9b9b9b900ffffffffffffffffffffffffffffffffffffff003f 3f593f595997595977779797979700970000904e00af9072004565456565 8c658cafafafb9b9b9b9b9b900ffffffffffffffffffffffffffffffffff ff003f3f593f595959779777779797b0b0b0590097007272cbcb724e0065 45654565658c658cafafb9b9b9b9b9b900ffffffffffffffffffffffffff ffffffffff003f593f59595977777797777797973f3f97b09700904ecb00 904e0045654565658c658cafafafb9b9b9b9b9b900ffffffffffffffffff ffffffffffffffffff00593f59595977597797779797595997b0b0b09700 724ecb4e9072006545654565658c658cafafb9b9b9b9b9b900ffffffffff ffffffffffffffffffffffffff003f59595977597797777797979797b0b0 b097b000904e004e904e0045654565658c658cafafafb9b9b9b9b9b900ff ffffffffffffffffffffffffffffffff0000595959775977777797979797 979797b0b0b0b0009072904e7272006545654565658c658cafafb9b9b9b9 b9b900ffffffffffffffffffffffffffffffff002f000059775977777797 779797979797b0b0b0b00000904e904e904e0045654565658c658c8cafaf b9b9b9b9b9b900ffffffffffffffffffffffffffffff002f2f4200595977 7777977797979797979797b0b0b000656565656565654545654545654565 65afafafb9b9b9b9b9b900ffffffffffffffffffffffffffffff002f422f 4200597777777797979797979797b0b0b000656565656565656565454545 65456545658cafafb9b9b9b9b9b900ffffffffffffffffffffffffffff00 00422f42420077777777977797979797979797b0b0004565656565656565 656545654545456545afafafb9b9b9b9b9b900ffffffffffffffffffffff ffffff00002f42424256007777977797979797979797b0b0004565656565 656565656565656545654545658cafafb9b9b9b9b9b900ffffffffffffff ffffffffffff000000424242564256000077779797979797979700000065 4545654565456565656565656545656545afafafb9b9b9b9b9b900ffffff ffffffffffffffffffff0000290042564256565669000097979797970000 000065456565af65afb9afb9afb9afb9afb9afb9afb9afb9afb9b9b9b9b9 00ffffffffffffffffffffffff0000002900424256565669566969000000 00008b8b0000658c658cafafafafafafafafafafafafafafafafafafffff ffb9b9b900ffffffffffffffffffffffff0000cb004c0042565656566969 69696969698b8b8b00658c658cafafafafafafafafafafafafafafafafaf afafb9ffffffb9b900ffffffffffffffffffffff000000af4c4c00565656 566956696969696969698b8b0065658c8c8cafb9b9afb9b9afb9b9afb9b9 afb9b98cafb9b9ffffffffb900ffffffffffffffffffffff0000cbcb4c4c 700056566956696969696969698b8b0065658c8c8cafafafb9afafb9afaf b9afafb9afafb9afafafb9b9ffffffb900ffffffffffffffffffff000029 cb004c70708f0000565669696969696969000000658c8c8caf0000000000 000000000000000000000000000000000000000000ffffffffffffffffff ff000029cb4c4c704c70708f0000696969696900000000658c658c8c0061 61616161616161616161616161616161616161616161610000ffffffffff ffffffff000029294c29704c708f708f8fad0000000000c8c8c8008c658c 8c8c006161006161610061610061610000006100610000006161610000ff ffffffffffffffff000029294c29707070adad8f8f8fadadc8e5e5c8c800 8c658c8c8c00616161000000000061006100610061616100610061616161 00ff00ffffffffffffffff00002929294c704c8f8f708fc8ad00000000c8 adc8c800658c8c8c8c006161006100610061000000610061006100610061 6161616100ff00ffffffffffffffff00002929294c704c4c8fc8708f00af afcb00adc8e500658c8c8c8c006161610061006100610061006100000061 0061000000616100b9ff00ffffffffffffff000029294c4c70708f8f4c8f adc800afcbcb00e5c8c8008c658c8c8c0061616161616161616161616161 616161616161616161616100b9ff00ffffffffffffff000029294c4c704c 70708fad8f00cbcbcb00c8ade50000000000000000000000000000000000 00000000000000000000000000000000000000ffffffffffff000029294c 29704c708f708f8fad0000000000adc8c80090adadad90adadad90adad90 adadadad90adad90adadad90adadadad90adad907272ffffffffffffff00 0029294c29707070adad70c8c8e5c8c8e5e5c88f0000729090ad729090ad 7290ad72909090ad7290ad729090ad72909090ad7290ad909000ffffffff ffff00002929294c704c8f8f7070c8ad00000000c8ad8fc8009072727290 7272729072729072727272907272907272729072727272907272907272ff ffffffffffff00002929294c704c4c8fc88f8f00afafcb00adc8e50000ad ad90ad000000000090adadad0000000000ad90adadadad00000000adadad 909000ffffffffffff000029294c4c70708f8f4c8fadc800afcbcb00e5e5 c8007290ad7200cbcbcbcb0000909000cbcbcbcb000072909090005c5c5c 5c0090ad7272ffffffffffffff000029294c4c704c70708fad8f00cbcbcb 00c8adc800007272907200cbcbcbcb0000727200cbcbcbcb000072727200 5c5c5c5c5c0072907200ffffffffffffff0029294c29704c708f708f8fad 0000000000adc8c8009090adad00cbcbcbcb0000adad00cbcbcbcb000090 adadad005c5c5c5c5c00ad9072ffffffffffffffff0029294c29707070ad ad70c8ade5e5ade5e5c88f0000ad72909000cbcbcbcb000090ad00cbcbcb cb0000729090005c5c5c5c5c0090ad7200ffffffffffffffff00294c4c70 4c8f8f708fc8c8000000adadad8fc8004e90727200000000000000727200 0000000000009072727200cbcb5c5c5c00729072ffffffffffffffffffff 294c4c704c4c8fc87000583e5800c8c8c8e5000090adadad000000000000 00ad9000000000000000adadad005c5c5c5c5c00ad727200ffffffffffff ffffffff004c70708f8f4c700058583e585800e5e5c8009072909090ad72 90ad729090ad7290ad729090ad72909090005c5c5c5c5c00ad9072ffffff ffffffffffffffffff00707070708fad0058583e585800adc80000ad7272 7272907272907272729072729072727290727272005c5c5c5c5c0072904e 00ffffffffffffffffffffffff0070708f708f8f8f003e585800adc8c800 000000000000000000000000000000000000000000000000000000000000 00000000ffffffffffffffffffffffffffff0070adad707000583e5800c8 c88f00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff0000adadad0058 3e5800ad0000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-magi-west.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00000000000000000000000000000000000000ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000424242424261426161616183a6a6a6b2a600ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff000042424242424261426161838383a6b2a6b200ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff004e00424242424242426161616183a6b2a6 b2b200ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff004e004242424242426142426183 a6a6b2b2b2b200ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff004e4e0042424261426142 6161a6b2a6b2b2b2b2b200ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00727200614261 426161836183a6a6ffffb2b2b2b200ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff004e724e 004261426161836183a6a6a6b2b2b2b2b2b200ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0072904e00614261426161836183a6a6b2b2b2b2b2b200ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff004e4e9072004261426161836183a6a6a6b2b2b2b2b2b200ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00904e904e00614261426161836183a6a6b2b2b2b2b2b2 00ffffffffffffffffffffffffffffffffffffffffffffffffff000000ff ff0000ffffffffffffff004e9000724e004261426161836183a6a6a6b2b2 b2b2b2b200ffffffffffffffffffffffffffffffffffffffffffffff0000 00003c0000a800ffffffffffffff4e7290cb904e00614261426161836183 a6a6b2b2b2b2b2b200ffffffffffffffffffffffffffffffffffffffffff 00003c3c3c0000003ca800ffffffffffff00904e00af9072004261426161 836183a6a6a6b2b2b2b2b2b200ffffffffffffffffffffffffffffffffff ffff003c3c3c3c00003c3c54a88f000000ffffffff4e7272cbcb724e0061 4261426161836183a6a6b2b2b2b2b2b200ffffffffffffffffffffffffff ffffffffff003c3c3c00003c543c54718f8f008f00ffffffff72904ecb00 904e004261426161836183a6a6a6b2b2b2b2b2b200ffffffffffffffffff ffffffffffffffff003c3c3c3ca83c543c545471a88f8f0000ffffffff4e 724ecb4e907200614261426161836183a6a6b2b2b2b2b2b200ffffffffff ffffffffffffffffffffffff003c3c3c54a8543c5454718f8fa88f008f00 ffffff72904e004e904e004261426161836183a6a6a6b2b2b2b2b2b200ff ffffffffffffffffffffffffffffff003c3c3c543c54a8545454718fa8a8 8f008f00ffffff4e9072904e727200614261426161836183a6a6b2b2b2b2 b2b200ffffffffffffffffffffffffffffffff003c3c543c54548f545471 718f8f8f8f008f00ffffff00904e904e904e00426142616183618383a6a6 b2b2b2b2b2b200ffffffffffffffffffffffffffffff003c3c543c545454 718f71718f8fa8a8a854008f006161616161616161614242614242614261 61a6a6a6b2b2b2b2b2b200ffffffffffffffffffffffffffffff003c543c 5454547171718f71718f8f3c3c8fa88f0042616161616161616161424242 614261426183a6a6b2b2b2b2b2b200ffffffffffffffffffffffffffff00 00543c5454547154718f718f8f54548fa8a8a88f00614261616161616161 616142614242426142a6a6a6b2b2b2b2b2b200ffffffffffffffffffffff ffffff00003c5454547154718f71718f8f8f8fa8a8a88fa8004261616161 6161616161616161426142426183a6a6b2b2b2b2b2b200ffffffffffffff ffffffffffff00000054545471547171718f8f8f8f8f8f8fa8a8a8a80061 4242614261426161616161616142616142a6a6a6b2b2b2b2b2b200ffffff ffffffffffffffffffff000029005471547171718f718f8f8f8f8fa8a8a8 a80061426161a661a6b2a6b2a6b2a6b2a6b2a6b2a6b2a6b2a6b2b2b2b2b2 00ffffffffffffffffffffffff000000290054547171718f718f8f8f8f8f 8f8fa8a8a80061836183a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6ffff ffb2b2b200ffffffffffffffffffffffff0000cb004c0054717171718f8f 8f8f8f8f8fa8a8a80061836183a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6 a6a6b2ffffffb2b200ffffffffffffffffffffff000000af4c4c00717171 718f718f8f8f8f8f8f8fa8a8006161838383a6b2b2a6b2b2a6b2b2a6b2b2 a6b2b283a6b2b2ffffffffb200ffffffffffffffffffffff0000cbcb4c4c 700071718f718f8f8f8f8f8f8fa8a8006161838383a6a6a6b2a6a6b2a6a6 b2a6a6b2a6a6b2a6a6a6b2b2ffffffb200ffffffffffffffffffff000029 cb004c707070000071718f8f8f8f8f8f8f00000061838383a60000000000 000000000000000000000000000000000000000000ffffffffffffffffff ff000029cb4c4c704c70708f00008f8f8f8f8f000000006183618383005e 5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e0000ffffffffff ffffffff000029294c29704c708f708f8f8f0000000000c8c8c800836183 8383005e5e005e5e5e005e5e005e5e0000005e005e0000005e5e5e0000ff ffffffffffffffff000029294c29707070adad8f8f8fadadc8e5e5c8c800 8361838383005e5e5e00000000005e005e005e005e5e5e005e005e5e5e5e 00ff00ffffffffffffffff00002929294c704c8f8f708fc8ad00000000c8 adc8c8006183838383005e5e005e005e005e0000005e005e005e005e005e 5e5e5e5e00ff00ffffffffffffffff00002929294c704c4c8fc8708f00af afcb00adc8e5006183838383005e5e5e005e005e005e005e005e0000005e 005e0000005e5e00b2ff00ffffffffffffff000029294c4c70708f8f4c8f adc800afcbcb00e5c8c8008361838383005e5e5e5e5e5e5e5e5e5e5e5e5e 5e5e5e5e5e5e5e5e5e5e5e00b2ff00ffffffffffffff000029294c4c704c 70708fad8f00cbcbcb00c8ade50000000000000000000000000000000000 00000000000000000000000000000000000000ffffffffffff000029294c 29704c708f708f8fad0000000000adc8c80090adadad90adadad90adad90 adadadad90adad90adadad90adadadad90adad907272ffffffffffffff00 0029294c29707070adad70c8c8e5c8c8e5e5c88f0000729090ad729090ad 7290ad72909090ad7290ad729090ad72909090ad7290ad909000ffffffff ffff00002929294c704c8f8f7070c8ad00000000c8ad8fc8009072727290 7272729072729072727272907272907272729072727272907272907272ff ffffffffffff00002929294c704c4c8fc88f8f00afafcb00adc8e50000ad ad90ad000000000090adadad0000000000ad90adadadad00000000adadad 909000ffffffffffff000029294c4c70708f8f4c8fadc800afcbcb00e5e5 c8007290ad7200cbcbcbcb0000909000cbcbcbcb000072909090005c5c5c 5c0090ad7272ffffffffffffff000029294c4c704c70708fad8f00cbcbcb 00c8adc800007272907200cbcbcbcb0000727200cbcbcbcb000072727200 5c5c5c5c5c0072907200ffffffffffffff0029294c29704c708f708f8fad 0000000000adc8c8009090adad00cbcbcbcb0000adad00cbcbcbcb000090 adadad005c5c5c5c5c00ad9072ffffffffffffffff0029294c29707070ad ad70c8ade5e5ade5e5c88f0000ad72909000cbcbcbcb000090ad00cbcbcb cb0000729090005c5c5c5c5c0090ad7200ffffffffffffffff00294c4c70 4c8f8f708fc8c8000000adadad8fc8004e90727200000000000000727200 0000000000009072727200cbcb5c5c5c00729072ffffffffffffffffffff 294c4c704c4c8fc87000583e5800c8c8c8e5000090adadad000000000000 00ad9000000000000000adadad005c5c5c5c5c00ad727200ffffffffffff ffffffff004c70708f8f4c700058583e585800e5e5c8009072909090ad72 90ad729090ad7290ad729090ad72909090005c5c5c5c5c00ad9072ffffff ffffffffffffffffff00707070708fad0058583e585800adc80000ad7272 7272907272907272729072729072727290727272005c5c5c5c5c0072904e 00ffffffffffffffffffffffff0070708f708f8f8f003e585800adc8c800 000000000000000000000000000000000000000000000000000000000000 00000000ffffffffffffffffffffffffffff0070adad707000583e5800c8 c88f00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff0000adadad0058 3e5800ad0000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-magi.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000005252520065650000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000005252525252005200650065650000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00005252525252520052005200650065656500ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000525252525200520052525200656565006500ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff0000525252005200525252005200650065006500ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff004000520052005252520052005200650065 656500ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff0040005200525252005200525252 00656565006500ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0040400052525200520052 5252005200650065006500ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00616100520052 005252520052005200650065656500ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00406140 00520052525200520052525200656565006500ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff 00617f4000525252005200525252005200650065006500ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00008300ffffffff ffffff0040407f6100520052005252520052005200650065656500ffffff ffffffffffffffffffffffffffffffffffffffffffffffff0000002d8300 ffffffffffffff007f407f40005200525252005200525252006565650065 00ffffffffffffffffffffffffffffffffffffffffffffffffff00002d2d 3f836500ffffffffffff00407f0061400052525200520052525200520065 0065006500ffffffffffffffffffffffffffffffffffffffffffffff0000 2d3f2d3f52656500ffffffffffff40617fcb7f4000520052005252520052 005200650065656500ffffffffffffffffffffffffffffffffffffffffff 00002d2d3f2d3f3f5283656500ffffffff007f4000ad7f61005200525252 00520052525200656565006500ffffffffffffffffffffffffffffffffff ffff002d2d2d2d3f2d3f3f526565836500ffffffff406161cbcb61400052 5252005200525252005200650065006500ffffffffffffffffffffffffff ffffffffff002d2d2d2d3f2d3f3f3f526583836500ffffffff617f40cb00 7f4000520052005252520052005200650065656500ffffffffffffffffff ffffffffffffffff002d2d2d2d3f2d3f3f3f52526565656500ffffffff40 6140cb407f6100520052525200520052525200656565006500ffffffffff ffffffffffffffffffffffff002d2d2d3f2d3f3f3f525265658383836500 ffffff617f4000407f4000525252005200525252005200650065006500ff ffffffffffffffffffffffffffffff002d2d2d3f2d3f3f3f525265656565 83836500ffffff407f617f40616100520052005252520052005200650065 656500ffffffffffffffffffffffffffffffff002d2d3f2d3f3f3f525252 6565658383836500ffffff007f407f407f40005200525252005200525252 00656565006500ffffffffffffffffffffffffffffff002d2d3f2d3f3f3f 525252656565656583836565000052005200520052005200520000000000 5200000000650065006500ffffffffffffffffffffffffffffff002d3f2d 3f3f3f525252656565656583836583650052005200520052005200520052 005200520052005200650065656500ffffffffffffffffffffffffffff00 003f2d3f3f3f523f52655265656565658383836500000000000000000000 00000000000000000000000000656565006500ffffffffffffffffffffff ffffff00002d3f3f3f523f52655252656565658383836583006565656565 6565656565656565656565656565656565000065006500ffffffffffffff ffffffffffff0000003f3f3f523f52525265656565656565838383830000 650000650000650000650000650000650000650000000065656500ffffff ffffffffffffffffffff000021003f523f52525265526565656565838383 830065656565656565656565656565656565656565656565650065650065 00ffffffffffffffffffffffff00000021003f3f52525265526565656565 656583838300006500006500006500006500006500006500006500006565 0065006500ffffffffffffffffffffffff0000cb0040003f525252526565 656565656583838300656565656565656565656565656565656565656565 656565650065656500ffffffffffffffffffffff000000ad404000525252 526552656565656565658383000065000065000065000065000065000065 00006500006500000065006500ffffffffffffffffffffff0000cbcb4040 610052526552656565656565658383006565656565656565656565656565 6565656565656565656565656500006500ffffffffffffffffffff000021 cb0040616161000052526565656565656500000000650000650000000000 000000000000000000000000000000000000000000ffffffffffffffffff ff000021cb4040614061617f00006565656565000000006565656565005e 5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e0000ffffffffff ffffffff0000212140216140617f617f7f7f0000000000bfbfbf00006500 0065005e5e005e5e5e005e5e005e5e0000005e005e0000005e5e5e0000ff ffffffffffffffff000021214021616161a1a17f7f7fa1a1bfe0e0bfbf00 6565656565005e5e5e00000000005e005e005e005e5e5e005e005e5e5e5e 006500ffffffffffffffff00002121214061407f7f617fbfa100000000bf a1bfbf000065000065005e5e005e005e005e0000005e005e005e005e005e 5e5e5e5e006500ffffffffffffffff0000212121406140407fbf617f00ad adcb00a1bfe0006565656565005e5e5e005e005e005e005e005e0000005e 005e0000005e5e00650000ffffffffffffff00002121404061617f7f407f a1bf00adcbcb00e0bfbf000065000065005e5e5e5e5e5e5e5e5e5e5e5e5e 5e5e5e5e5e5e5e5e5e5e5e00650000ffffffffffffff0000212140406140 61617fa17f00cbcbcb00bfa1e00000000000000000000000000000000000 00000000000000000000000000000000000000ffffffffffff0000212140 216140617f617f7fa10000000000a1bfbf007fa1a1a17fa1a1a17fa1a17f a1a1a1a17fa1a17fa1a1a17fa1a1a1a17fa1a17f6161ffffffffffffff00 0021214021616161a1a161bfbfe0bfbfe0e0bf7f0000617f7fa1617f7fa1 617fa1617f7f7fa1617fa1617f7fa1617f7f7fa1617fa17f7f00ffffffff ffff00002121214061407f7f6161bfa100000000bfa17fbf007f6161617f 6161617f61617f616161617f61617f6161617f616161617f61617f6161ff ffffffffffff0000212121406140407fbf7f7f00adadcb00a1bfe00000a1 a17fa100000000007fa1a1a10000000000a17fa1a1a1a100000000a1a1a1 7f7f00ffffffffffff00002121404061617f7f407fa1bf00adcbcb00e0e0 bf00617fa16100cbcbcbcb00007f7f00cbcbcbcb0000617f7f7f00525252 52007fa16161ffffffffffffff000021214040614061617fa17f00cbcbcb 00bfa1bf000061617f6100cbcbcbcb0000616100cbcbcbcb000061616100 525252525200617f6100ffffffffffffff00212140216140617f617f7fa1 0000000000a1bfbf007f7fa1a100cbcbcbcb0000a1a100cbcbcbcb00007f a1a1a100525252525200a17f61ffffffffffffffff0021214021616161a1 a161bfa1e0e0a1e0e0bf7f0000a1617f7f00cbcbcbcb00007fa100cbcbcb cb0000617f7f005252525252007fa16100ffffffffffffffff0021404061 407f7f617fbfbf00000000bfa17fbf00407f616100000000000000616100 0000000000007f61616100cbcb52525200617f61ffffffffffffffffffff 2140406140407fbf617f005252525200bfe000007fa1a1a1000000000000 00a17f00000000000000a1a1a100525252525200a1616100ffffffffffff ffffffff004061617f7f4061a1005252525200e0e0bf007f617f7f7fa161 7fa1617f7fa1617fa1617f7fa1617f7f7f00525252525200a17f61ffffff ffffffffffffffffff00616161617fa17f00cb52525200a1bf0000a16161 61617f61617f6161617f61617f6161617f61616100525252525200617f40 00ffffffffffffffffffffffff0061617f617f7f005252525200a1bfbf00 000000000000000000000000000000000000000000000000000000000000 00000000ffffffffffffffffffffffffffff0061a1a16100005252525200 bf7f00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff0000a1a1005252 525200a10000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 202 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-weap-fant.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00000000000000000000000000000000000000 000000000000000000000000000000000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffff000027002700270027002700270027 00270027002700270027002700270027002700002700ffffffffffffffff ffffffffffffffffffffffffffffffffffff005200002700270027002700 270027002700270027002700270027002700270027002700270000ffffff ffffffffffffffffffffffffffffffffffffffffffff0052002700270027 002700270027002700270027002700270027002700270027002700270027 00ffffffffffffffffffffffffffffffffffffffffffffffff0033520000 270027002700270027002700270027002700270027002700270027002700 2700270000ffffffffffffffffffffffffffffffffffffffffffffffff00 335233000027002700270027002700270027002700270027002700270027 00270027002700270000ffffffffffffffffffffffffffffffffffffffff ffff00523352330027002700270027002700270027002700270027002700 27002700277f7f00270027002700ffffffffffffffffffffffffffffffff ffffffffffff005233523300002700270027002700270027002700270027 002700270027002700277f7f002700270000ffffffffffffffffffffffff ffffffffffffffffff00335233523352000027bfbfbfbfbfbfbfbfbfbfbf bfbfbfbfbfbfbfbfbfbfbfbfbfbfbf7fbf7fbf7f270000ffffffffffffff ffffffffffffffffffffffffff00335233523352000000007f7f7f7f7f7f 7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f000000ffffff ffffffffffffffffffffffffffffffff0052335233523352000027000027 000027000027000027000027000027000027000027007f7f000027000027 00ffffffffffffffffffffffffffffffffffffff00523352335233520027 272727272727272727272727272727272727272727272727277f7f272727 2727272700ffffffffffffffffffffffffffffffffffff00335233523352 335200000027000027000027000027000027000027000027000027000027 000027000027000000ffffffffffffffffffffffffffffffffffff003352 335233523300272727272727272727272727272727272727272727272727 272727272727272727272700ffffffffffffffffffffffffffffffffffff 005233523352335233000027000027000027000027000027000027000027 00002700002700002700002700002700ffffffffffffffffffffffffffff ffffffff0052335233523352330027272727272727272727272727272727 2727272727272727272727272727272727272700ffffffffffffffffffff ffffffffffffff0033523352335233523300000027000027000027000027 000027000027000027000027000027000027000027000000ffffffffffff ffffffffffffffffffffff00335233523352335233002727272727272727 27272727272727272727272727272727272727272727272727272700ffff ffffffffffffffffffffffffffffff003352335233523352330027000027 000027000027000027000027000027000027000027000027000027000027 0000ffffffffffffffffffffffffffffffffff0033523352335233523300 272727272727272727272727272727272727272727272727272727272727 272727272700ffffffffffffffffffffffffffffffffff00335233523352 335200000027000027000027000027000027000027000027000027000027 000027000027000000ffffffffffffffffffffffffffffffffffff003352 335233523352002727272727272727272727272727272727272727272727 27272727272727272727272700ffffffffffffffffffffffffffffffffff ff0033523352335233520027000027000027000027000027000027000027 0000270000270000270000270000270000ffffffffffffffffffffffffff ffffffffff00335233523352335200272727272727272727272727272727 272727272727272727272727272727272727272700ffffffffffffffffff ffffffffffffffffff003352335233523352000027000027000027000027 00002700002700002700002700002700002700002700002700ffffffffff ffffffffffffffffffffffffff0033523352335233520027272727272727 2727272727272727272727272727272727272727272727272727272700ff ffffffffffffffffffffffffffffffffff00335233523352335200000027 000027000027000027000027000027000027000027000027000027000027 000000ffffffffffffffffffffffffffffffffffff003352335233523352 002727272727272727272727272727272727272727272727272727272727 27272727272700ffffffffffffffffffffffffffffffffffff0033523352 335233520027000027000027000027000027000027000027000027000027 00002700002700002700ffffffffffffffffffffffffffffffffffffff00 335233523352330027272727272727272727272727272727272727272727 2727272727272727272727272700ffffffffffffffffffffffffffffffff ffffff003352335233523300000027000027000027000027000027000027 000027000027000027000027000027000000ffffffffffffffffffffffff ffffffffffffff0033523352335233000000000000000000000000000000 00000000000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffffffff00335233523352006969696969696969696969 69696969696969696969696969696969696969696969696900ffffffffff ffffffffffffffffffffffffffffff003352335233520052524d5252524d 524d4d4d52524d52524d4d4d524d4d4d524d52524d52524d4d52525200ff ffffffffffffffffffffffffffffffffffffff003352335233003333334d 334d334d334d4d33334d334d334d334d334d334d334d4d334d334d333333 3300ffffffffffffffffffffffffffffffffffffffffff00335233523300 69694d694d694d694d6969694d4d4d694d4d4d694d694d694d694d4d6969 694d69696900ffffffffffffffffffffffffffffffffffffffffff003352 335200525252524d524d52524d4d4d524d524d524d5252524d4d4d524d52 524d524d4d52525200ffffffffffffffffffffffffffffffffffffffffff ff0033523352003333333333333333333333333333333333333333333333 33333333333333333333333300ffffffffffffffffffffffffffffffffff ffffffffff00335233006969696969000000006969696969696969000000 69696969696969690000000069696900ffffffffffffffffffffffffffff ffffffffffffffffff00335233005252520000bfbfbf0000525252525200 00423f420000525252520000bfbfbf0000525200ffffffffffffffffffff ffffffffffffffffffffffffff0033520033333300bfbf00bfbf00003333 3300ac4242404242ac0033333300bfbf00bfbf00003300ffff0000000000 00ffffffffffffffffffffffffffffffff0033520069696900bf00e200bf 0000696969004242ac40ac42420069696900bf00e200bf00006900ffff00 ffffffff00ffffffffffffffffffffffffffffffff00330052525200bfbf 0000bf00005252004242acac3facac424200525200bfbf0000bf00005200 ffff00ffffffff00ffffffffffffffffffffffffffffffffff0033003333 3300bfbf00bfbf000033330042acac423f42acac4200333300bfbf00bfbf 00003300ffff000000000000ffffffffffffffffffffffffffffffffff00 006969690000000000000000696900acac4242404242acac006969000000 00000000006900ffffffffff00ffffffffffffffffffffffffffffffffff ffffff00005252520000000000000000525200ac4242ac40ac4242ac0052 5200000000000000005200ffffffffff00ffffffffffffffffffffffffff ffffffffffffff0033333333333333333333333333004242acac3facac42 4200333333333333333333333333ffffffffff00ffffffffffffffffffff ffffffffffffffffffffff00000000000000000000000000000042acac42 3f42acac4200000000000000000000000000ffffffffff00ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 203 w @beginspecial 275 @llx 365 @lly 337 @urx 427 @ury 204 @rwi 204 @rhi @setspecial %%BeginDocument: store-weap.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 275 365 337 427 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 64 string def %%EndSetup %%Page: 1 1 gsave 275.28 365.28 translate 61.44 61.44 scale 64 64 8 [ 64 0 0 -64 0 64 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000000000000000000000000000000000000000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00004d004d004d00 4d004d004d004d004d004d004d004d004d004d004d004d004d004d0000ff ffffffffffffffffffffffffffffffffffffffffffffffffff000000004d 004d004d004d004d004d004d004d004d004d004d004d004d004d004d004d 004d0000ffffffffffffffffffffffffffffffffffffffffffffffffff00 00004d004d004d004d004d004d004d004d004d004d004d004d004d004d00 4d004d004d004d00ffffffffffffffffffffffffffffffffffffffffffff ffff00a60000004d004d004d004d004d004d004d004d004d004d004d004d 004d004d004d004d004d0000ffffffffffffffffffffffffffffffffffff ffffffffffff00a6006500004d004d004d004d004d004d004d004d004d00 4d004d004d004d004d004d004d004d0000ffffffffffffffffffffffffff ffffffffffffffffff00a6a60065004d004d004d004d004d004d004d004d 004d004d004d004d004d004d007f7f4d004d004d00ffffffffffffffffff ffffffffffffffffffffffffff00a6a6006500004d004d004d004d004d00 4d004d004d004d004d004d004d004d004d007f7f4d004d0000ffffffffff ffffffffffffffffffffffffffffffff00a6a6a600656500004d00bfbfbf bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf7fbf7fbf7f0000 ffffffffffffffffffffffffffffffffffffffff00a6a6a6006565000000 00007f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f 7f7f0000ffffffffffffffffffffffffffffffffffffff00a6a6a6a60065 6500004d00004d00004d00004d00004d00004d00004d00004d00004d0000 7f7f004d00004d00ffffffffffffffffffffffffffffffffffffff00a6a6 00a6006565004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d7f7f4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffffff 00a6a6a600a60065650000004d00004d00004d00004d00004d00004d0000 4d00004d00004d00004d00004d000000ffffffffffffffffffffffffffff ffffffff00a6a6a600a60065004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffff ffffffffffffff00a6a600a600a6006500004d00004d00004d00004d0000 4d00004d00004d00004d00004d00004d00004d00004d00ffffffffffffff ffffffffffffffffffffff00a6a600a600a60065004d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffff ffffffffffffffffffffffffffff00a6a60000a600a600650000004d0000 4d00004d00004d00004d00004d00004d00004d00004d00004d00004d0000 00ffffffffffffffffffffffffffffffffff00a6a60000a6a6a60065004d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d00ffffffffffffffffffffffffffffffffff00a6000000a6a6a6 0065004d00004d00004d00004d00004d00004d00004d00004d00004d0000 4d00004d00004d0000ffffffffffffffffffffffffffffffffff00a600bf 00a6a6a60065004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffffff 00a600bf00a6a6a6000000004d00004d00004d00004d00004d00004d0000 4d00004d00004d00004d00004d000000ffffffffffffffffffffffffffff ffffffff00a600bf00a6a6a600004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffff ffffffffffffffff00a60000a6a6a6a600004d00004d00004d00004d0000 4d00004d00004d00004d00004d00004d00004d00004d0000ffffffffffff ffffffffffffffffffffffff00a60000a6a6a6a600004d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d00ffff ffffffffffffffffffffffffffffffff00a600a6a6a6a6a60000004d0000 4d00004d00004d00004d00004d00004d00004d00004d00004d00004d0000 4d00ffffffffffffffffffffffffffffffffffff00a600a6a6a6a6a60000 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d00ffffffffffffffffffffffffffffffffffff00a6a6a600a6 a6a6000000004d00004d00004d00004d00004d00004d00004d00004d0000 4d00004d00004d000000ffffffffffffffffffffffffffffffffffff00a6 a6a600a6a6a600004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffffffffffffffffff ffff00a6a60000a6a6a600004d00004d00004d00004d00004d00004d0000 4d00004d00004d00004d00004d00004d00ffffffffffffffffffffffffff ffffffffffff00a6a60000a6a6a6004d4d4d4d4d4d4d4d4d4d4d4d4d4d4d 4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d00ffffffffffffffffff ffffffffffffffffffff00a6000000a6a6a60000004d00004d00004d0000 4d00004d00004d00004d00004d00004d00004d00004d000000ffffffffff ffffffffffffffffffffffffffff00a6006500a6a6a60000000000000000 0000000000000000000000000000000000000000000000000000000000ff ffffffffffffffffffffffffffffffffffff000000000000a600cbcbcbcb cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb cb00ffffffffffffffffffffffffffffffffffffffff0000e200e200a600 cbcb4dcbcbcb4dcb4d4d4dcbcb4dcbcb4d4d4dcb4d4d4dcb4dcbcb4dcbcb 4d4dcbcbcb00ffffffffffffffffffffffffffffffffffffffff00e200e2 00a600cbcbcb4dcb4dcb4dcb4d4dcbcb4dcb4dcb4dcb4dcb4dcb4dcb4d4d cb4dcb4dcbcbcbcb00ffffffffffffffffffffffffffffffffffffffffff 0000000000a600cbcb4dcb4dcb4dcb4dcbcbcb4d4d4dcb4d4d4dcb4dcb4d cb4dcb4d4dcbcbcb4dcbcbcb00ffffffffffffffffffffffffffffffffff ffffffffff6500a6a600cbcbcbcb4dcb4dcbcb4d4d4dcb4dcb4dcb4dcbcb cb4d4d4dcb4dcbcb4dcb4d4dcbcbcb00ffffffffffffffffffffffffffff ffffffffffffffffff00a6a6a600cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb00ffffffffffffffffffff ffffffffffffffffffffffff0000a6a600cbcbcbcbcb00000000cbcbcbcb cb4d4d4d4d4d4dcbcbcbcbcbcb00000000cbcbcbcbcb00ffffffffffffff ffffffffffffffffffffffffffffffff00a6a6a600cbcbcb0000bfbfbf00 00cbcbcb4dcb000000cbcb4dcbcbcb0000bfbfbf0000cbcbcbcb00ffffff ffffffffffffffffffffffffffffffffffffffff00a6a600cbcbcb00bfbf 00bfbf0000cbcbcbcb0065650000cbcbcbcb00bfbf0000bf0000cbcbcb00 ffff404040404040ffffffffffffffffffffffffffffffff00a6a600cbcb cb00bf00e200bf0000cbcbcb006565656500cbcbcbcb00bfbf0000bf0000 cbcbcb00ffff40ffffffff40ffffffffffffffffffffffffffffffff00a6 00cbcbcb00bfbf0000bf0000cbcbcb00656565650000cbcbcb00bfbf65bf bf0000cbcbcb00ffff40ffffffff40ffffffffffffffffffffffffffffff ffff00a600cbcbcb00bfbf00bfbf0000cbcbcb00006565650000cbcbcb00 bf65bfbfbf0000cbcbcb00ffff404040404040ffffffffffffffffffffff ffffffffffff0000cbcbcb0000000000000000cbcbcb00656565650000cb cbcb0000000000000000cbcbcb00ffffffffff00ffffffffffffffffffff ffffffffffffffffffff0000cbcbcb0000000000000000cbcbcb00656565 650000cbcbcb0000000000000000cbcbcb00ffffffffff00ffffffffffff ffffffffffffffffffffffffffff00cbcbcbcbcbcbcbcbcbcbcbcbcbcb00 000000000000cbcbcbcbcbcbcbcbcbcbcbcbcbcb00ffffffffff00ffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000ffffffffff00000000000000000000000000000000ffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 1340 a Fz(Y)-8 b(ou)28 b(can)g(\034nd)g(equipmen)m(t)h (for)e(sale)h(at)f(easily)h(recognizable)f(buildings.)40 b(T)-8 b(o)28 b(buy)h(an)f(item)227 1456 y(just)h(pic)m(k)f(it)f(up)h (and)g(w)m(alk)g(out)f(of)h(the)g(building)e(b)m(y)i(stepping)g(on)g(a) g(shop)g(mat)f @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: shop-mat.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 0000000000000000000000000000000000ffffffffffffffffa600a64949 494949494949494949494949494949494949a600a6ffffffffffffffa649 49a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a64949a6ffffffffffffffa6 00a649a6a6a6a6494949a6a6a649494949a6a6a6a649a600a6ffffffffff ffffa64949a6a6a649494949a6a6494949494949a6a6a64949a6ffffffff ffffffa600a649a6a64949a6a6a6a64949a6a6a6a64949a6a649a600a6ff ffffffffffffa64949a6a64949a6a6a6a64949a6a6a6a64949a6a64949a6 ffffffffffffffa600a649a6a64949a6a6a6a64949a6a6a6a64949a6a649 a600a6ffffffffffffffa64949a6a6a6494949494949a6a649494949a6a6 a64949a6ffffffffffffffa600a649a6a6a6a649494949a6a6a6494949a6 a6a6a649a600a6ffffffffffffffa64949a6a6a6a6a6a6a6a6a6a6a6a6a6 a6a6a6a6a64949a6ffffffffffffffa600a6494949494949494949494949 4949494949494949a600a6ffffffffffffffff0000000000000000000000 0000000000000000000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 122 w(.)42 b(The)29 b(cost)227 1572 y(of)37 b(the)g(item)e(will)f(auto-matically)f(b)s(e)k(deducted)h(from)e(y)m (our)h(money)g @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: amber-coin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff65 65635e5bffffffffffffffffffffffffffffffffffffffffffffffffff69 79aba9aaaaa8606effffffffffffffffffffffffffffffffffffffffffff 66b0aeaaa8a8a9a9a8a75cffffffffffffffffffffffffffffffffffffff ffff63acb2b0ad97a7a5a4a457ffffffffffffffffffffffffffffffffff ffffff63acafb0b29fafc4ababa8a85dffffffffffffffffffffffffffff ffffffffff69b6b3b0b6a4b0ccb3b5b3ae66ffffffffffffffffffffffff ffffffffffff6569b1b2bba4b5b3bad6b8b7b266ffffffffffffffffffff ffffffffffffffff6a63afb0a997b1b2b3cbaeb3af5dffffffffffffffff ffffffffffffffffff5b5b61abaa94dddee2ded9bd999953ffffffffffff ffffffffffffffffffffff62648661a8a8aaa99f9e9d94a25affffffffff ffffffffffffffffffffffffff57587f5ba5a2a2a09c9da09d9d55ffffff ffffffffffffffffffffffffffffff5277568d58559c999a9ca05953ffff ffffffffffffffffffffffffffffffffff577b577b8d894f4e515453bc59 ffffffffffffffffffffffffffffffffffffffff558b55528187b7d0b957 55ffffffffffffffffffffffffffffffffffffffffff69889c9f6a606163 5ec461ffffffffffffffffffffffffffffffffffffffffffff6d669ea1cd e7ce6a6affffffffffffffffffffffffffffffffffffffffffffffffff72 6c6d6c6affffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goldcoin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff0000000000ffffffffffffffffff ffffffffffffffffffffffffffffffff0021cbcbcbcbcb0021ffffffffff ffffffffffffffffffffffffffffffffff00cbcbcbcbcbcbcbcbcb00ffff ffffffffffffffffffffffffffffffffffffff00cbcba6a6a6a6a6cbcb00 ffffffffffffffffffffffffffffffffffffffff00cbcba6cbcbcbcbcbe2 cbcb00ffffffffffffffffffffffffffffffffffffff00cbcba6cbcbcbcb cbe2cbcb00ffffffffffffffffffffffffffffffffffff0000cbcba6cbcb cbcbcbffcbcb00ffffffffffffffffffffffffffffffffffff0000cbcba6 cbcbcbcbcbe2cbcb00ffffffffffffffffffffffffffffffffff000000cb cba6cbcbcbcbcbffcbcb00ffffffffffffffffffffffffffffffffff0000 a600cbcbe2e2ffe2ffcbcb00ffffffffffffffffffffffffffffffffff00 0000a600cbcbcbcbcbcbcbcbcb00ffffffffffffffffffffffffffffffff ff0000a600cb0000cbcbcbcbcb0000ffffffffffffffffffffffffffffff ffffff0000a600a6cbcb0000000000e2000000000000ffffffffffffffff ffffffffff00a600cb0000cbcbe2ffe2000021cbcbcbcbcb0021ffffffff ffffffffffffff00a600a6cbcb000000000000cbcbcbcbcbcbcbcbcb00ff ffffffffffffffffffff00cb0000cbcbe2ffe20000cbcba6a6a6a6a6cbcb 00ffffffffffffffffffffff00a6cbcb000000000000cbcba6cbcbcbcbcb e2cbcb00ffffffffffffffffffffff0000cbcbe2ffe20000cbcba6cbcbcb cbcbe2cbcb00ffffffffffffffffffffffffff00000000000000cbcba6cb cbcbcbcbffcbcb00ffffffffffffffffffffffffffffffffffff0000cbcb a6cbcbcbcbcbe2cbcb00ffffffffffffffffffffffffffffffffff000000 cbcba6cbcbcbcbcbffcbcb00ffffffffffffffffffffffffffffffffff00 00a600cbcbe2e2ffe2ffcbcb00ffffffffffffffffffffffffffffffffff ff0000a600cbcbcbcbcbcbcbcbcb00ffffffffffffffffffffffffffffff ffffff00a600cb0000cbcbcbcbcb0000ffffffffffffffffffffffffffff ffffffffff00a600a6cbcb0000000000e200ffffffffffffffffffffffff ffffffffffffffff00cb0000cbcbe2ffe20000ffffffffffffffffffffff ffffffffffffffffffff00a6cbcb0000000000e200ffffffffffffffffff ffffffffffffffffffffffffff0000cbcbe2ffe20000ffffffffffffffff ffffffffffffffffffffffffffffffffff0000000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: jade-coin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff050505 0505ffffffffffffffffffffffffffffffffffffffffffffffffff0511b0 b0b0b0b00511ffffffffffffffffffffffffffffffffffffffffffff05b0 b0b0b0b0b0b0b0b005ffffffffffffffffffffffffffffffffffffffffff 05b0b0b0b081b0b0b0b005ffffffffffffffffffffffffffffffffffffff ff05b0b0b0b081b0d0b0b0b0b005ffffffffffffffffffffffffffffffff ffffff05b0b0b0b081b0d0b0b0b0b005ffffffffffffffffffffffffffff ffffffff0505b0b0b081b0b0b0d0b0b0b005ffffffffffffffffffffffff ffffffffffff0505b0b0b081b0b0b0d0b0b0b005ffffffffffffffffffff ffffffffffffff050505b0b081fbfbfbfbfbd0b0b005ffffffffffffffff ffffffffffffffffff05058105b0b0b0b0b0b0b0b0b005ffffffffffffff ffffffffffffffffffff0505058105b0b0b0b0b0b0b0b0b005ffffffffff ffffffffffffffffffffffff05058105b00505b0b0b0b0b00505ffffffff ffffffffffffffffffffffffffff0505810581b0b00508050505d005ffff ffffffffffffffffffffffffffffffff058105b00505b0b0d0fbd00505ff ffffffffffffffffffffffffffffffffffff05810581b0b00505050505d0 05ffffffffffffffffffffffffffffffffffffffff05b00505b0b0d0fbd0 0505ffffffffffffffffffffffffffffffffffffffffff0581b0b0050505 0505d005ffffffffffffffffffffffffffffffffffffffffffff0505b0b0 d0fbd00505ffffffffffffffffffffffffffffffffffffffffffffffffff 0505050505ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: plt-coin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff7979797979ffffffffffffffff ffffffffffffffffffffffffffffffffff798bdddddddddd798bffffffff ffffffffffffffffffffffffffffffffffff79dddddddddddddddddd79ff ffffffffffffffffffffffffffffffffffffffff79ddddcececececedddd 79ffffffffffffffffffffffffffffffffffffffff79ddddcedddddddddd efdddd79ffffffffffffffffffffffffffffffffffffff79ddddcedddddd ddddefdddd79ffffffffffffffffffffffffffffffffffff7979ddddcedd ddddddddffdddd79ffffffffffffffffffffffffffffffffffff7979dddd ceddddddddddefdddd79ffffffffffffffffffffffffffffffffff797979 ddddceddddddddddffdddd79ffffffffffffffffffffffffffffffffff79 79bc79ddddefefffefffdddd79ffffffffffffffffffffffffffffffffff ff7979bc79dddddddddddddddddd79ffffffffffffffffffffffffffffff ffffff79bc79ce7979dddddddddd7979ffffffffffffffffffffffffffff ffffffffff79bc79bccece7979797979ef797979797979ffffffffffffff ffffffffffffffff79ce7979ceceefffef79798bdddddddddd798bffffff ffffffffffffffffffff79bccece797979797979dddddddddddddddddd79 ffffffffffffffffffffffffff7979ceceefffef7979ddddcececececedd dd79ffffffffffffffffffffffffffffff797979797979ddddcedddddddd ddefdddd79ffffffffffffffffffffffffffffffffffff7979ddddcedddd ddddddefdddd79ffffffffffffffffffffffffffffffffffff7979ddddce ddddddddddffdddd79ffffffffffffffffffffffffffffffffffff7979dd ddceddddddddddefdddd79ffffffffffffffffffffffffffffffffffff79 79ddddceddddddddddffdddd79ffffffffffffffffffffffffffffffffff ff79bc79ddddefefffefffdddd79ffffffffffffffffffffffffffffffff ffffff79bc79dddddddddddddddddd79ffffffffffffffffffffffffffff ffffffffffff79ce7979dddddddddd7979ffffffffffffffffffffffffff ffffffffffffffff79bccece7979797979ef79ffffffffffffffffffffff ffffffffffffffffffffff7979ceceefffef7979ffffffffffffffffffff ffffffffffffffffffffffffffffff7979797979ffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: silvercoin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff1e1e1e1effffffffffffffffffffff ffffffffffffffffffffffffffffff1e1ebfbfbfbf1e1effffffffffffff ffffffffffffffffffffffffffffffff1ebfbfbfbfbfbfbfbf1effffffff ffffffffffffffffffffffffffffffffff1e44bfbfaeaeaeaebfbf1effff ffffffffffffffffffffffffffffffffffffff1ebfbfaebfbfbfbfe0bfbf 1effffffffffffffffffffffffffffffffffffff1e1ebfbfaebfbfbfbfe0 bfbf1effffffffffffffffffffffffffffffffffffff1e1ebfbfaebfbfbf bfe0bfbf1effffffffffffffffffffffffffffffffffff1e441ebfbfaebf bfbfbfe0bfbf1effffffffffffffffffffffffffffffffffff1e44981ebf bfe0e0e0e0bfbf1effffffffffffffffffffffffffffffffffff1e444444 1ebfbfbfbfbfbfbfbf1effffffffffffffffffffffffffffffffffff1e44 9844d51e1ebfbfbfbf1e1effffffffffffffffffffffffffffffffffffff 444444444444d51e1e1e1e441effffffffffffffffffffffffffffffffff ffff449844d5444444440044441effffffff1e1e1e1effffffffffffffff ffffffffff44444444d544444444441effff1e1ebfbfbfbf1e1effffffff ffffffffffffff44d51e1e1e1e0044441effff1ebfbfbfbfbfbfbfbf1eff ffffffffffffffffff1e1ebfbfbfbf1e1e44ffff1e1ebfbfaeaeaeaebfbf 1effffffffffffffffff1ebfbfbfbfbfbfbfbf1effff1ebfbfaebfbfbfbf e0bfbf1effffffffffffff1e1ebfbfaeaeaeaebfbf1eff1e1ebfbfaebfbf bfbfe0bfbf1effffffffffffff1ebfbfaebfbfbfbfe0bfbf1e441ebfbfae bfbfbfbfe0bfbf1effffffffffff1e1ebfbfaebfbfbfbfe0bfbf1e441ebf bfaebfbfbfbfe0bfbf1effffffffffff441ebfbfaebfbfbfbfe0bfbf1e44 981ebfbfe0e0e0e0bfbf1effffffffffffff441ebfbfaebfbfbfbfe0bfbf 1e44441ebfbfbfbfbfbfbfbf1effffffffffffff44981ebfbfe0e0e0e0bf bf1e449844d51e1ebfbfbfbf1e1effffffffffffffff44441ebfbfbfbfbf bfbfbf1eff44444444d51e1e1e1e441effffffffffffffffff44d51e1ebf bfbfbf1e1effff44d5444444444444441effffffffffffffffffff444444 d51e1e1e1e1effffffff4444d50044441e1effffffffffffffffffffffff 444444444444441effffffffffff4444441effffffffffffffffffffffff ffffffff004444441effffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w(.)56 b(T)-8 b(o)227 1688 y(sell)35 b(an)g(item,)g(en)m(ter)i(the)f(shop)g(and)g(drop)f(the)h(item)e(on)i (the)g(shop)g(\035o)s(or.)52 b(Money)36 b(from)f(the)227 1804 y(sale)c(will)d(auto-matically)e(b)s(e)31 b(placed)g(in)f(y)m(our) h(in)m(v)m(en)m(tory)-8 b(.)44 b(Use)31 b(the)g Fv(examine)i Fz(command,)d(or)227 1921 y(the)k(cursor)g(and)g(left)e(button)i(of)f (the)g(mouse)h(to)f(examine)g(the)g(price)h(of)f(an)g(item)f Fu(b)-5 b(efor)g(e)33 b Fz(y)m(ou)227 2037 y(buy)h(or)e(sell.)227 2297 y Fy(6.1.1.)38 b(Some)f(notes)h(ab)s(out)g(shopping)227 2477 y Fz(Most)e(items)f(will)e(ha)m(v)m(e)k(a)e(v)-5 b(alue)35 b(based)h(on)f(their)g(\020standard\021)43 b(cost)36 b(m)m(ultiplied)c(b)m(y)37 b(a)e(factor)227 2593 y(based)h(on)f(y)m(our)h(c)m(harisma)e(\(see)i(table)e(2.1\).)50 b(Y)-8 b(ou)35 b(can)g(nev)m(er)i(lo)s(ok)d(go)s(o)s(d)f(enough)j(that) f(y)m(ou)227 2710 y(can)e(buy)h(stu\033)e(then)i(sell)d(it)h(at)g(a)g (pro\034t.)227 2942 y(Some)g(notable)g(exceptions)i(to)e(the)h(ab)s(o)m (v)m(e:)471 3141 y Fw(\017)k Fz(Gems)g @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: amethyst.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff80c7f6f6f68bffffffffffffffffffffffffffffffffffffffffffff ffffff9b6dadf6c78b5522ffffffffffffffffffffffffffffffffffffff ffffffff805c556d9b4e5542181fffffffffffffffffffffffffffffffff ffffffffffff55424e64765c5c42181fffffffffffffffffffffffffffff ffffffffffffff4e48426455485c6d3807ffffffffffffffffffffffffff ffffffffffffffff4e64425c484848555c2c11ffffffffffffffffffffff ffffffffffffffffffff5c556d48484e5c5c3418ffffffffffffffffffff ffffffffffffffffffffffff555c6464556d550a14ffffffffffffffffff ffffffffffffffffffffffffffff554848556d1f0e1bffffffffffffffff ffffffffffffffffffffffffffffffff0e181b1b181fffffffffffffffff ffffffffffffffffffff8bf6f6f6c780ffffffffffffffffffffffffffff ffffffffffffffffffffffff558bc7f6ad6d9bffffffffffffffffffffff ffffffffffffffffffffffffffff42554e9b6d555c80ffffffffffffffff ffffffffffffffffffffffffffffffff425c5c76644e4255ffffffffffff ffffffffffffffffffffffffffffffffffff386d5c48556442484effffff ffffffffffffffffffffffffffffffffffffffff2c5c554848485c42644e ffffffffffffffffffffffffffffffffffffffffffffff345c5c4e48486d 555c1bffffffffffffffffffffffffffffffffffffffffffffffff556d55 64645c551bffffffffffffffffffffffffffffffffffffffffffffffffff ff6d5548485518ffffffffffffffffffffffffffffffffffffffffffffff ffffffff1818181b1bffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: chalice.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00000000000000000000 ffffffffffffffffffffffffffffffffffffffff00003f623f6238623f62 625f0000ffffffffffffffffffffffffffffffffff00753f7a38813f813f 8181957a72a300ffffffffffffffffffffffffffffffff00000a38993f9c 3f959295958b880000ffffffffffffffffffffffffffffffff007500003f ad3aad3fadadab00008b00ffffffffffffffffffffffffffffffff006988 a30000000000000000bc99ab00ffffffffffffffffffffffffffffffffff 0088acd4d4d4d2d3d3d2c4b2ab00ffffffffffffffffffffffffffffffff ffff0081a8cdecece4e5e5e5cdad9200ffffffffffffffffffffffffffff ffffffff00819ccdecece7e7e7e4c49c8800ffffffffffffffffffffffff ffffffffffffff0081bbddece7e7e7ddbb9900ffffffffffffffffffffff ffffffffffffffffff0081bbd5e6e7e7e7d6539500ffffffffffffffffff ffffffffffffffffffffff00813fcde4e7e7e6d23a9200ffffffffffffff ffffffffffffffffffffffffffff008b3fdce4ded43ab400ffffffffffff ffffffffffffffffffffffffffffffff007a9cbcd2d3bcbbb200ffffffff ffffffffffffffffffffffffffffffffffffff00009cabadab0000ffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff4b72724bff ffffffffffffffffffffffffffffffffffffffffffffffffffffff008b8b 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 abab00ffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000abab00000000ffffffffffffffffffffffffffffffffffffffffff00 abcddc00d5dc00d5ccad00ffffffffffffffffffffffffffffffffffffff ff0000d2dcddd4d5dcd5cc0000ffffffffffffffffffffffffffffffffff ffffffffff0000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: emerald.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff691d3b3b1d69696969ffff ffffffffffffffffffffffffffffffffffffffff1d1d1d1d1d1d3b3b3b69 3bffffffffffffffffffffffffffffffffffffffff1d1d1d1d1d1d1d3b3b 3b3b783bffffffffffffffffffffffffffffffffffffff1d1d1d1d1d1d3b 3b3b3b3b783bffffffffffffffffffffffffffffffffffffff691d1d1d1d 1d3b6969693b783bffffffffffffffffffffffffffffffffffffff1d691d 1d3b3b3b693b3b95783bffffffffffffffffffffffffffffffffffffffff 691d691d3b693b3b95783bffffffffffffffffffffffffffffffffffffff ffffff3b3b3b1d3b3b3b693bffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff3b1d1d1d1d3b3b3bffffffffffff1d1d1d3b3b3b3b3bffffffff ffffffffff1d1d1d1d1d1d3b3b3b3bffffffff1d1d1d1d1d1d3b3b783bff ffffffffffff3b1d1d1d1d1d3b3b3b3b3b3bffff1d3b1d1d1d1d1d3b3b3b 3b3bffffffffffff1d1d1d1d1d1d3b693b3b693bffff1d1d1d1d1d1d3b1d 3b3b7869ffffffffffff1d1d1d3b1d3b3b3b3b3b783bffff1d1d1d1d1d3b 1d1d1d3b7869ffffffffffff1d3b1d3b3b3b3b3b3b953b3bffff3b1d1d1d 1d1d1d1d3b78783bffffffffffff3b691d1d3b693b3b3b953b3bffffff1d 1d1d3b3b3b3b3b3b3bffffffffffffffff6969693b3b3b3b783b3bffff3b 1d1d1d1d1d1d3b3b696969ffffffffffffffffff6969696969696969ffff ff691d1d1d1d1d1d1d3b3b78693bffffffffffffffffffffffffffffffff ffffff3b1d1d1d1d1d1d3b3b3b783b69ffffffffffffffffffffffffffff ffffffffff3b1d1d1d1d1d1d3b3b3b783b69ffffffffffffffffffffffff ffffffffffffff3b691d1d1d1d1d3b1d3b783b69ffffffffffffffffffff ffffffffffffffffffff3b693b3b1d1d1d783b3b3bffffffffffffffffff ffffffffffffffffffffffffff69693b3b3b3b3b3b69ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gem.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffd6f7ffffffdeffffffffffffffffffffffffffffffffffff ffffffffffffffe7c6effff7dead52ffffffffffffffffffffffffffffff ffffffffffffffffd6b5adc6e7a5ad94394affffffffffffffffffffffff ffffffffffffffffffffad94a5bdceb5b594394affffffffffffffffffff ffffffffffffffffffffffa59c94bdad9cb5c68410ffffffffffffffffff ffffffffffffffffffffffffa5bd94b59c9c9cadb56b29ffffffffffffff ffffffffffffffffffffffffffffb5adc69c9ca5b5b57b39ffffffffffff ffffffffffffffffffffffffffffffffadb5bdbdadc6ad1831ffffffffff ffffffffffffffffffffffffffffffffffffad9c9cadc64a2142ffffffff ffffffffffffffffffffffffffffffffffffffff21394242394affffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goldbar.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff9f8db0ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffa380878896ffffffffffffffffffffffffffffff ffffffffffffffffffffffa17f7b8b989a92a6ffffffffffffffffffffff ffffffffffffffffffffffff9e838a959790919f9794ffffffffffffffff ffffffffffffffffffffffffffaa91959d9d979eabb5aaac9ab1ffffffff ffffffffffffffffffffffffffffa1b6bbafaaa8a5b4bfb3acbfc2beb5ff ffffffffffffffffffffffffffffffff886e9dc9b3b4b8b7b8a5bec8c5bc bbb5b3ffffffffffffffffffffffffffffff908f7e8bc2b6b6aea2bbcdce bdacb6b6a99fffffffffffffffffffffffffffb09fa0978d83b6c9c3c6cd d2c2bdb5b3aeb6a596a1ffffffffffffffffffffffafadaea8a0998ea7d1 d0d0ccc3c0c2b5bfb5a9989092ffffffffffffffffffffb3b7b7b5b7b4a7 9f9ec8cec9c4c4b6c1c2b5a39f9a918ea2ffffffffffffffffacb9bdbcbc b8bbb8aba3bbcacab8c3c6c1b3a3a5a493919194ffffffffffffffffa9b9 bfbfbdbdbdbdb8b2b0c3b9cac7bda9ada6a39492939390a3ffffffffffff ffffb4c1c3c0bcbbc0bcbbacbfcdc9bfa9a6aaa197959a99959c9cffffff ffffffffffb0c2c3bebcbebebebeb8bdcec7b6a2a79c99999d969c97bfe8 ffffffffffffffffabc0c4c0bdbcbdbdc5c4cacdbcada19c9aa1989ea0b0 e5e4efffffffffffffffffb0bcc3c2bfc1bebec8c8c8c7afa29d9ea39e9a a3dbe6e7ecffffffffffffffffffffb2c3c2bcbbbdc1c7caccc6ad9f9c9a a09ec5e8e2e8eff7ffffffffffffffffffffacc3c2c0bfbfc3c8cdcdc7ba a0a2a2ace5e4e0ebeeebffffffffffffffffffffffaab9c3c4c5c3c8c4ca cac9c3a89dd4e4e1dfece5d7ffffffffffffffffffffffffffafc4c7c8c6 c4c5cbcbcbc8c0e3dddadfe9d2ffffffffffffffffffffffffffffffa7c1 c6c7c7cacbcacbcdc6d9d7d9e8d3ffffffffffffffffffffffffffffffff ffa6becacbc8cacacccccbd4d6dde2c6ffffffffffffffffffffffffffff ffffffffa9b8c5c7c7cacbcbcad3d9e1cbffffffffffffffffffffffffff ffffffffffffffffaec7c9c7cbcbcad6ddd7ffffffffffffffffffffffff ffffffffffffffffffffffa6c4cbcacbc9d7e0c0ffffffffffffffffffff ffffffffffffffffffffffffffffa8bccbcbcbdacaffffffffffffffffff ffffffffffffffffffffffffffffffffffafaecacbd8b9ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffa8c4c0ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffa5baffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goldblock.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffa6a5a69a9790929198a2a89ba1adb8b8bebec2c0c3c5 c2aca5ffffffffffffc3a3bbb3aeb7b5a6afb3b0b3a0b2bdbdc0ccd0c6cd cfcac9b0b9ffffffffffc3a4a3bcc9bdbfb0b7b0aea19aa9acb3c3bcc3be c0bbb8b0a8b7b7ffffffffff809e9dbdbdbab4b5b3b4a3aab7bdc1c0c0bc b4b2b1b2a9a6b2bbbefffffff46ea0ba98c7b6b9c3c2c9c3ccc9bcc4c6c6 b0afbabac0b9bec0b7c0c6fffffdc7a3a6ba95b4bec5c8c4c7c1bcbebeb8 aca8acb2b2afb0acabb1b8b8b4ffffe686a6aeb999a8bcc0c1c3c2c0b6b5 b7afa29ba9a9a5a5a3a4a0a2aaaba7fffd8f8aa8afa9a8a5b0adb2bbbdc0 b9aea7aaa8a4a89b9b9e9ea19c93909ba1fffd7c96acb1b891a8acb1b3b4 b9bab4a9a5a5a8a6a4a19e9c9d9e99909097a3fffd8095b0aabe9ba9afae aab3b1afc0bbb1aba39e9c9991979899acaeaaa8a9fffd7d98b5a5baaaad b4afb4afb0b7b9bfc0b7a7acaea5a5a09da4a8afb3aca6fffd7697bda3b1 aca6b2b3b1bfc9c3bbcaccbbbdc3c8c2b7b9bcaea2aba99299fffd7c95b6 a1a5afaeafb6b5bfbcc0d6cbc7c3d5d6d0cdc0b8ada6aa9f958ea7fffd6e 97b397a0b3b1b6c9c4b1b5b9a8abbdbec1b9b6c2b69f9a988d8ca5abb3ff f85894b88d97b7afab9a9caaacaaa3a6a6b2a99d947c7b868d919198a2b4 b2fff8618dc08c90b0a28cafb3acaba4a5aba58c8b886f9498939796a0a9 ad9ca2fffa4086b98695ac9e929094999a9c94958e83869086878c909599 9796928b90fff6457ab18598a9a49582858e90948a827c7f848f95868a94 979d958a828588ffee5975bd8c98a8a6918f8f908e8d847a778088869196 9aa1a1a39c918d9292ffdd8d87b48d97a8b0888f8c888a846e7e83818a90 8b9ca1a7aeaca0a5a49d9cffe3907ea29094aeae91c1c0b3b6bfc3aaacaf a1a5aaa8aaafb2b8b4babab59fffe69389a4989aadb0cdcad4cbb8bbc2bf bec3c3c3c6cdcfcbced4d4cdd1d0c2ffeb978b939a9bb3cfc8d6dadadad7 c9c9c7c5c5c8c8cccdc8c3c3c2c1c4c6d4fff09c8d90979aa7c2c3bfcbcc cacfcacccac6c1bfbfbfc0c1c0c1c3c4c5c6defff4a18b8f97afc3c3c2bf babdccc5bcc3c2c5b6c1b9b6b9b9b8bcb8adbbbefffff8ab898c9dc1c4c3 c2cedbd0c2dde2c8c5c3c7c6b3bac2b1bcc4c4bebffffffffba887bac5c4 c5c5c4c5cbcbc5c5c3cfcbced4ccc5c3c5bfb3bcbab5bafffffffda18dc5 bdbdbdc0c6c7c5c5c3c2c6c2b8a89fa4a7afb2b8b7b4b4c0e9ffffffff99 9fb6b4b4b4b2b1aeabafb4ada098a2b0adafaeaca8a6afb2a7a4ffffffff ffb3beb6bbaeafb0b1a9978c8ca0acb3b8b8b9b6babeb5a5a1a4cbffffff ffffffb4aea49fa0a0a1a8afb2b3b1afb1b7b8b8bec2c4c6c9c8c5bfffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goldround.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff5c55585e646469ffff ffffffffffffffffffffffffffffffffffffffffff625fc8bbc8d2d1d2db 736effffffffffffffffffffffffffffffffffffff645ec6be9baaacc8c3 bbc3d0d26664ffffffffffffffffffffffffffffffff63c5cca2aababbc0 d4c0bdb4b6b2c8c25bffffffffffffffffffffffffffff6ed8cbc4ccc6bd d7d8d7c7c4b7bac1babdd264ffffffffffffffffffffffffff6ed2c4c3bc bdbfb7a9c1adb0b2b0b1adacc967ffffffffffffffffffffffff6bd4c4c1 c0bababab1a5b8a9a9a5a5a4a49fa5c15effffffffffffffffffffff5ec9 bcbdc0b6b0a5a9a5c0a8a4939f9ba59690b058ffffffffffffffffffff5f c9b2b6b6bab6a7a5a5a5c0a5a4a4a593a593938eb459ffffffffffffffff ff64c8a5b6c8adc0bcb1aba5ba93948a939a93c4afa9c358ffffffffffff ffff5e64c9b2afc5b6babfc0b6a8c4b0a5a7a49fa5c0b1b2c45cffffffff ffffffff595fc9c8d8d8d8cfd9dbcdced7d8d3cccbd3c7bdc3c3b058ffff ffffffffffff6464c8b2bdc8c0d5cbc9c6d5e2d0d0c0baa9a5c29f96af5c ffffffffffffffff5e61d9c6b0cdb7a9a9bcbbc0cdb6c1b59ba496ae8aa5 c164ffffffffffffffff5f5eb4a4a8adaba5a5a5b2a5ba937c7c868e9090 96a4c562ffffffffffffffff588e5fc5ada9a4a4a9a58e8aaa6f95939093 93a5abc558ffffffffffffffffff55904fb49693a493968a8686ae86898e 9193939696b14cffffffffffffffffffff51834ab090918a827f7f83b093 838a93999f93af48ffffffffffffffffffffff4f904fb0908a837a76a5aa afb0b093a5a4a49ab04dffffffffffffffffffffffff4d8a4aa8af6e7c83 828aae8aa4a4a5adc2c058ffffffffffffffffffffffffff6db7b46469d6 c3abafa4c1a5a5a9c8c9666666ffffffffffffffffffffffffffff78cdb7 bb6a6ad2d4d5d4d7dbdd6f71d075ffffffffffffffffffffffffffffffff 7878d8c8ca6e696d6f6e6f71c76d6cffffffffffffffffffffffffffffff ffffffff7270cccac7c1bebec06a6affffffffffffffffffffffffffffff ffffffffffffffff6b6b6b666b6664ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: nugget-lar.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000000000 00ffffffffffffffffffffffffffffffffffffffffffffffffff48caa5ca a5a500ffffffffffffffffffffffffffffffffffffffffffffffff48cae2 e2e2e2ca481dffffffffffffffffffffffffffffffffffffffffff003aa5 e2caa5a5cacae248481d00ffffffffffffffffffffffffffffffffff0048 e2cacacae2e2caa5e2e2e2a51d00ffffffffffffffffffffffffffffffff 48cacacaa5e2e2cacae2e2a5cacaa51dffffffffffffffffffffffffffff 0048a5e2caa5e2caa5cae2cacacacae2e2a548ffffffffffffffffffffff ffff1da5e2a5e2e2cacaa5e2cae2cae2e2cacae248ffffffffffffffffff ffffffff00cae2e2cae2cae2e2cae2e2e2caa5a5cae248ffffffffffffff ffffffffffff1da5e2cacaa5a5e2cae2caa5cae2e2cae2e2a5ffffffffff ffffffffffffff1d64a5e2e2e2cae2e2cae2caa5e2e2cacacae248ffffff ffffffffffffffffff1de2e2a5cae2cacae2e2cae2e2cacacacaa5e2a51d 00ffffffffffffffffffff48e2e2e2cacacaa5a5cae2cacae2a5e2e2caca e2a51dffffffffffffffffffff1de2cacae2a5cae2e2caa5cae2e2caa5ca e2a5e2a500ffffffffffffffffffff1d64e2e2cacae2e2cae2a5cae2caa5 e2e2cacaa53a1dffffffffffffffffffffff1d48a5cae2e2cacacae2caca e2caa5e2cae248ffffffffffffffffffffffffff001d48e2caa5a5caa5e2 a5a5cae2e2caca1d1dffffffffffffffffffffffffffffff3a48e2e2e2e2 e2e2e2e2e2e2e2ca3a00ffffffffffffffffffffffffffffffffff1d4848 4848a5484848a5484848ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: nugget-sma.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff001d48481d00ffffffffffffffffffffffffffffffffffffffffffffff ffff0048cae2caa51d00ffffffffffffffffffffffffffffffffffffffff ffffffff48a5e2a5cae2a51dffffffffffffffffffffffffffffffffffff ffffffff0048a5e2e2caa5cae2a51dffffffffffffffffffffffffffffff ffffffffffff1da5e2a5cae2e2a5e2caa54800ffffffffffffffffffffff ffffffffffffff001da5e2e2cacacae2caa5caa51d00ffffffffffffffff ffffffffffffffffff1da5cacaa5e2e2e2cae2e2e2caa51dffffffffffff ffffffffffffffffffffff48e2e2cacae2a5e2caa5e2a5cae248ffffffff ffffffffffffffffffffffffff1da5cacae2e2a5cae2a5cacaa5e21dffff ffffffffffffffffffffffffffffff001da5e2cae2e2e2cae2cae2e2ca48 ffffffffffffffffffffffffffffffffffff1da5e2a5caa5a5caa5e2e2ca 3a00ffffffffffffffffffffffffffffffffffff0048a5e2e2e2e2e2ca48 4848ffffffffffffffffffffffffffffffffffffffffffff3aa5a5a5a5a5 a53affffffffffffffffffffffffffffffffffffffffffffffff001d1d1d 001d0000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: pearl.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffa1a1bfffffffffffffff ffffffffffffffffffffffffffffffffffffffffffa1bfbfbfbfffffffff ffffffffffffffffffffffffffffffffffffffffffffa1bfbfe0e0e0e0ff ffffffffa1a1bfffffffffffffffffffffffffffffffffffa1bfe0ffff95 e0ffffffffa1bfbfbfbfffffffffffffffffffffffffffffffffbfbfd4ff ff95e0ffffffa1bfbfe0e0e0e0ffffffffffffffffffffffffffffffffbf e0ffb2ffffffffffa1bfe0ffffb2e0ffffffffffffffffffffffffffffff ffffe0e0e0ffffffffffbfbfe0ffff95e0ffffffffffffffffffffffffff ffffffffffffffffffffffffffbfe0ffd4d4ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffe0e0e0ffffa1a1bfffffffffffff ffffffffffffffffffffffffffffffffffffffffffffa1bfbfbfbfffffff ffffffffffffffffffffffffffffffffffa1a1bfffffffa1bfbfe0e0e0e0 ffffffffffffffffffffffffffffffffffffa1bfbfbfbfffffa1bfe0ffff ffe0ffffffffffffffffffffffffffffffffffa1bfbfe0e0e0e0ffbfbfe0 ffffffe0ffffffffffffffffffffffffffffffffffa1bfe0ffd4d4e0ffff bfe0b2d4ffffffffffffffffffffffffffa1a1bfffffffbfbfe0ffffb2e0 ffffffe0e0e0ffffffffffffffffffffffffa1bfbfbfbfffffffbfe095ff ffffffa1a1bfffffffffffffffffffffffffffa1bfbfe0e0e0e0ffffffe0 e0e0ffffa1bfbfbfbfffffffffffffffffffffffffa1bfe0ffff95e0ffff ffffffffffa1bfbfe0e0e0e0ffffffffffffffffffffffbfbfe0d4ffb2e0 ffffffffffffffa1bfe0ffd4d4e0ffffffffffffffffffffffffbfe0ffff ffffffffffffffffffbfbfe0ffff95e0ffffffffffffffffffffffffffe0 e0e0ffffffffffffffffffffbfe0b2ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffe0e0e0ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: platbar.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffc7bcd1ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffc9b5b9bac1ffffffffffffffffffffffffffffff ffffffffffffffffffffffc8b5b2bbc3c4bfcbffffffffffffffffffffff ffffffffffffffffffffffffc6b7bbc1c2bfbfc7c3c1ffffffffffffffff ffffffffffffffffffffffffffcebfc1c6c6c2c7ced4cecfc4d2ffffffff ffffffffffffffffffffffffffffc8d5d7d1cecdcbd3dad3cfdadcd9d4ff ffffffffffffffffffffffffffffffffbaabc6e0d2d3d5d5d5cbd9dfddd8 d8d4d3ffffffffffffffffffffffffffffffbebeb4bcdcd5d5d0c9d8e2e2 d9cfd5d5cdc7ffffffffffffffffffffffffffd1c7c8c3bdb7d5e0dcdee2 e5dbd9d4d3d0d5cbc2c8ffffffffffffffffffffffd0cfd0cdc8c4bdcce4 e4e4e1dcdadcd4dad4cdc3bfc0ffffffffffffffffffffd2d5d5d4d5d3cc c7c6dfe3e0ddddd5dbdcd4cac7c4bfbdc9ffffffffffffffffcfd6d9d8d8 d6d7d6cecad8e0e0d6dcdedbd3cacbcac0bfbfc0ffffffffffffffffcdd6 dadad9d9d9d9d6d2d1dcd6e0ded9cdcfcbcac1c0c0c0bfcaffffffffffff ffffd3dbdcdad8d8dad8d7cfdae2e0dacdcbcec8c3c1c4c4c1c6c6ffffff ffffffffffd1dcdcd9d8d9d9d9d9d6d9e3ded5c9ccc6c4c4c6c2c6c3daf1 ffffffffffffffffcedadddad9d8d9d9dddce0e2d8cfc8c6c4c8c3c7c8d1 f0eff6ffffffffffffffffd1d8dcdcd9dbd9d9dfdfdfded1c9c6c6cac7c4 caeaf0f0f3ffffffffffffffffffffd2dcdcd8d8d9dbdee0e1decfc7c6c4 c8c6ddf2eef1f5faffffffffffffffffffffcedcdcdadad9dcdfe2e2ded7 c8c9c9cff0efedf3f5f3ffffffffffffffffffffffcdd6dcdddddcdfdde0 e0e0dccdc6e6efedecf4efe7ffffffffffffffffffffffffffd0dddedfde dddde1e0e1dedaefebeaecf2e4ffffffffffffffffffffffffffffffccdb dededee0e1e0e1e2dee8e8e9f2e5ffffffffffffffffffffffffffffffff ffcbd9e0e1dfe0e0e1e1e0e6e7ebeedeffffffffffffffffffffffffffff ffffffffcdd5dddedee0e1e1e0e5e8eee0ffffffffffffffffffffffffff ffffffffffffffffcfdee0dee1e1e0e7ebe8ffffffffffffffffffffffff ffffffffffffffffffffffcbdde1e0e1e0e8eddaffffffffffffffffffff ffffffffffffffffffffffffffffcdd8e1e1e1eae0ffffffffffffffffff ffffffffffffffffffffffffffffffffffd0d0e0e1e8d6ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffcddddaffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffcbd7ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: platblock.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffd2d2d2cccbc7c8c8ccd0d3cdd0d6dcdbdedee1e0e1e2 e1d5d2ffffffffffffe1d1ddd9d7dbdad2d7d9d7d9d0d8dededfe6e7e2e6 e7e4e4d7dcffffffffffe1d2d1dde4dedfd7dbd8d6d0ccd4d5d9e1dde1de dfdddbd7d3dbdbffffffffffbfcecedededcdadad9dad1d4dbdee0dfdfdd dad9d8d9d4d2d9dddefffffffab6cfdccbe3dbdce1e1e4e1e5e4dde2e3e2 d7d7dcdcdfdcdedfdbe0e3fffffee3d1d3dccadadee2e3e2e3e0dddededb d6d3d5d8d8d7d7d5d5d8dcdbdafffff2c2d2d6dcccd3dde0e0e1e0dfdbda dbd7d0cdd4d4d2d2d1d1cfd0d4d5d3fffec7c4d3d7d4d3d2d8d6d9dddedf dcd6d3d4d3d1d3cdcdceced0cdc9c7cdd0fffebdcad5d8dbc8d3d5d8d9da dcdcdad4d2d2d3d2d1d0cecdcececcc7c7cbd1fffebfcad7d5decdd4d7d6 d4d9d8d7dfddd8d5d1cecdccc8cbcbccd5d6d4d3d4fffebecbdad2dcd4d6 dad7dad7d8dbdcdfdfdbd3d5d6d2d2cfced1d3d7d9d6d2fffebbcbded1d8 d5d2d8d9d8dfe4e1dde5e6dddee1e3e0dbdcddd6d0d5d4c8ccfffebdcada d0d2d7d6d7dbdadfdde0ebe5e3e1eaeae7e6dfdcd6d2d4cfcac6d3fffeb6 cbd9cbd0d9d8dae4e1d8dadcd3d5dedee0dcdae1dbcfccccc6c5d2d5d9ff fbacc9dcc6cbdbd7d5cccdd4d5d4d1d2d2d8d4cec9bebdc2c6c8c8cbd0d9 d8fffcb0c6dfc5c7d7d0c6d7d9d5d5d1d2d5d2c5c5c3b7c9ccc9cbcacfd4 d6cdd1fffd9fc3dcc2cad5cfc8c7c9cccccdc9cac6c1c2c7c2c3c5c7cacc cbcac8c5c7fffaa2bdd8c2cbd4d1cac0c2c6c7c9c4c0bebfc1c7cac2c4c9 cbcecac4c0c2c3fff7acbadec6cbd4d2c8c7c7c7c6c6c1bdbbbfc3c2c8ca ccd0d0d1cdc8c6c8c8ffeec6c3dac6cbd3d7c3c7c5c3c4c1b6bfc1c0c4c7 c5cdd0d3d6d5cfd2d1cecdfff1c7bed1c7cad7d6c8e0dfd9dadfe1d4d6d7 d0d2d4d3d4d7d8dbdadcdcdacffff3c9c4d1ccccd6d7e6e4e9e5dbdde0df dfe1e1e1e3e6e7e5e6e9e9e6e8e8e0fff5cbc5c9cccdd9e7e3ebececedeb e4e4e3e2e2e3e3e6e6e3e1e1e1e0e1e2eafff7cdc6c8cbccd3e0e1dfe5e5 e4e7e4e6e4e3e0dfdfdfdfe0e0e0e1e2e2e3eefff9d0c5c7cbd7e1e1e0df dddee5e2dde1e1e2dae0dcdadcdcdcdddbd6dddefffffcd5c4c6cee0e1e1 e1e6ede7e1eef0e4e2e1e3e2d9dce0d8dde1e1dedffffffffdd3c3dce2e2 e2e2e1e2e5e5e2e2e1e7e5e7e9e5e2e1e2dfd9dddcdaddfffffffed0c6e2 dededee0e3e3e2e2e1e0e2e1dbd3cfd2d3d7d9dbdbdadadff4ffffffffcc cfdbd9dadad9d8d7d5d7dad6cfcbd1d8d6d7d6d5d3d3d7d9d3d2ffffffff ffd9dedbddd6d7d7d8d4cbc5c6cfd5d9dbdcdcdadcdfdad2d0d2e5ffffff ffffffdad7d1cfd0d0d0d3d7d9d9d8d7d8dbdcdbdee0e1e2e4e4e2dfffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: platround.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffa09c9ea2a6a5a7ffff ffffffffffffffffffffffffffffffffffffffffffa5a3dfd7dfe5e4e5ea aeaaffffffffffffffffffffffffffffffffffffffa5a2ded9c5cdcfdfdc d7dce3e5a7a5ffffffffffffffffffffffffffffffffa5dee2c9cdd7d7db e6dbd8d4d6d3dfdc9fffffffffffffffffffffffffffffaae8e1dde2dfd8 e8e8e8dfded6d7dbd7d8e5a5ffffffffffffffffffffffffffaae5dddcd7 d8dbd6cddbd0d2d3d1d2d0cfe0a7ffffffffffffffffffffffffa9e6dddb dbd7d7d7d2cad6cdcdcacacacac8cadba2ffffffffffffffffffffffa2e0 d7d8dbd6d2cacdcadbcccac0c8c5cac2bed19effffffffffffffffffffa3 e0d3d6d5d7d6cccacacadbcacacacac0cac0c0bdd49effffffffffffffff ffa5e0cad6e0d0dbd7d2cecad7c0c0bcc0c4c0ded0cddd9effffffffffff ffffa2a5e0d3d0ded6d7dbdbd6ccded1cacccac8cadbd2d3dea0ffffffff ffffffff9ea3e0e0e8e8e8e2e9eae2e2e8e8e6e2e1e6dfd8dcddd19effff ffffffffffffa5a5e0d3d8e0dbe6e1e0dfe6eee3e3dbd7cdcadcc8c2d0a0 ffffffffffffffffa2a4e9dfd2e2d6cdcdd7d7dbe2d5dbd4c5cac2d0bcca dba5ffffffffffffffffa3a2d4caccd0cecacacad3cad7c0b3b3b9bdbfbf c2cadea5ffffffffffffffff9ebda3ded0cdcacacdcabdbbcdabc1c0bfc0 c0cacede9effffffffffffffffff9cbf99d4c2c0cac0c2bbb9b9d0b9bbbd bfc0c0c2c2d297ffffffffffffffffffff9bb796d1bebfbbb6b5b5b7d1c0 b7bbc0c4c8c0d094ffffffffffffffffffffff99bf99d1bfbbb7b2b0cacd d0d1d1c0cacacac4d197ffffffffffffffffffffffff97bb96ccd0aab3b7 b6bbd0bbcacacad0dcdb9effffffffffffffffffffffffffaad6d4a5a7e7 ddced0cadbcacacde0e0a7a7a7ffffffffffffffffffffffffffffb1e2d6 d7a8a8e5e6e6e6e8eaecabade3afffffffffffffffffffffffffffffffff b1b1e8e0e0aba7aaabababaddfaaaaffffffffffffffffffffffffffffff ffffffffadace2e0dfdbd9dadba9a9ffffffffffffffffffffffffffffff ffffffffffffffffa9a9a9a7a9a7a5ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: platter1-gol.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 00000000000000ffffffffffffffffffffffffffffffffffffff000000e1 e1e1e1e1e1e1e1e1e1000000ffffffffffffffffffffffffffff0000e2e1 e1e1e1e1e1e1e1e1e1e1d8d8d7d60000ffffffffffffffffffffff00e2e2 e1dee1e1e1e1e1d9d9d9d8d8d8d7d6d6d6d500ffffffffffffffffff00e2 e2e1dedededd0000000000000000d6d6d6d6d5d5d400ffffffffffffff00 e2e2e1dede000000babababac8c8cfcf000000d5d5d4d4d300ffffffffff 00e2e2e1dede00bababac8c8c8c8c8cfcfcfd4d7de00d4d4d3d3c800ffff ffff00e2e1dede00bac8c8c8c8d4d4d4d4d4d4d4d4d7e1e100d3d3d2c800 ffffffff00e1dedede00bac8d5d4d4d4d4d4d4d4d4d4d7e1e2e200d3d2c8 ba00ffffffff00dedededd00c8c8d4d4d7d7d7d7d7d7d7d7e1e2e2e200d2 d2c8ba00ffffffff00dededddddc00d4d7d7d9dcdddddededee1e2e2e200 d2d2c8c8ba00ffffffffff00ddddd8d8d7000000dcdddddededee1e20000 00d2d2c8c8ba00ffffffffffffff00d5d5d5d5d5d5d50000000000000000 d3d3d2c8c8c8ba00ffffffffffffffffff00d5d5d5d5d5d5d5d5d5d5d5d5 d5d5d3c8c8c8baba00ffffffffffffffffffffff0000d5d5d5d5cfcfcfcf c8c8c8c8c8bababa0000ffffffffffffffffffffffffffff000000cfcfcf c8c8c8babababa000000ffffffffffffffffffffffffffffffffffffff00 000000000000000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ruby.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff4d274d4d274d4d4d4dffff ffffffffffffffffffffffffffffffffffffffff2727272727274d4d4d4d 4dffffffffffffffffffffffffffffffffffffffff272727272727274d4d 4d4d8a4dffffffffffffffffffffffffffffffffffffff2727272727274d 4d4d4d4d8a4dffffffffffffffffffffffffffffffffffffff4d27272727 274d4d4d4d4d8a4dffffffffffffffffffffffffffffffffffffff274d27 274d4d4d4d4d4da38a4dffffffffffffffffffffffffffffffffffffffff 4d274d274d4d4d4da38a4dffffffffffffffffffffffffffffffffffffff ffffff4d4d4d274d4d4d4d4dffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff4d272727274d4d4dffffffffffff2727274d4d4d4d4dffffffff ffffffffff2727272727274d4d4d4dffffffff2727272727274d4d8a4dff ffffffffffff4d27272727274d4d4d4d4d4dffff274d27272727274d4d4d 4d4dffffffffffff2727272727274d4d4d4d4d4dffff2727272727274d27 4d4d8a4dffffffffffff2727274d274d4d4d4d4d8a4dffff27272727274d 2727274d8a4dffffffffffff274d274d4d4d4d4d4da34d4dffff4d272727 272727274d8a8a4dffffffffffff4d4d27274d4d4d4d4da34d4dffffff27 27274d4d4d4d4d4d4dffffffffffffffff4d4d4d4d4d4d4d8a4d4dffff4d 2727272727274d4d4d4d4dffffffffffffffffff4d4d4d4d4d4d4d4dffff ff4d272727272727274d4d8a4d4dffffffffffffffffffffffffffffffff ffffff4d2727272727274d4d4d8a4d4dffffffffffffffffffffffffffff ffffffffff4d2727272727274d4d4d8a4d4dffffffffffffffffffffffff ffffffffffffff4d4d27272727274d274d8a4d4dffffffffffffffffffff ffffffffffffffffffff4d4d4d4d2727278a4d4d4dffffffffffffffffff ffffffffffffffffffffffffff4d4d4d4d4d4d4d4d4dffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sapphire.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff1d0f15150f1d1d1d1dffff ffffffffffffffffffffffffffffffffffffffff0f0f0f0f0f0f1515151d 15ffffffffffffffffffffffffffffffffffffffff0f0f0f0f0f0f0f1515 15155e15ffffffffffffffffffffffffffffffffffffff0f0f0f0f0f0f15 151515155e15ffffffffffffffffffffffffffffffffffffff1d0f0f0f0f 0f151d1d1d155e15ffffffffffffffffffffffffffffffffffffff0f1d0f 0f1515151d15157a5e15ffffffffffffffffffffffffffffffffffffffff 1d0f1d0f151d15157a5e15ffffffffffffffffffffffffffffffffffffff ffffff1515150f1515151d15ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff150f0f0f0f151515ffffffffffff0f0f0f1515151515ffffffff ffffffffff0f0f0f0f0f0f15151515ffffffff0f0f0f0f0f0f15155e15ff ffffffffffff150f0f0f0f0f151515151515ffff0f150f0f0f0f0f151515 1515ffffffffffff0f0f0f0f0f0f151d15151d15ffff0f0f0f0f0f0f150f 15155e1dffffffffffff0f0f0f150f15151515155e15ffff0f0f0f0f0f15 0f0f0f155e1dffffffffffff0f150f1515151515157a1515ffff150f0f0f 0f0f0f0f155e5e15ffffffffffff151d0f0f151d1515157a1515ffffff0f 0f0f15151515151515ffffffffffffffff1d1d1d151515155e1515ffff15 0f0f0f0f0f0f15151d1d1dffffffffffffffffff1d1d1d1d1d1d1d1dffff ff1d0f0f0f0f0f0f0f15155e1d15ffffffffffffffffffffffffffffffff ffffff150f0f0f0f0f0f1515155e151dffffffffffffffffffffffffffff ffffffffff150f0f0f0f0f0f1515155e151dffffffffffffffffffffffff ffffffffffffff151d0f0f0f0f0f150f155e151dffffffffffffffffffff ffffffffffffffffffff151d15150f0f0f5e151515ffffffffffffffffff ffffffffffffffffffffffffff1d1d1515151515151dffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: silverbar.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff8b7a9affffffffffffffffffffffffffffffffffff ffffffffffffffffffff8e70757782ffffffffffffffffffffffffffffff ffffffffffffffffffffff8d6f6c7985877f90ffffffffffffffffffffff ffffffffffffffffffffffff89737982837e7f8b8481ffffffffffffffff ffffffffffffffffffffffffff957f828989838a969e9596879bffffffff ffffffffffffffffffffffffffff8d9fa3999593909da79d96a7aaa69eff ffffffffffffffffffffffffffffffff776089b09c9da09fa090a6afaca4 a49e9dffffffffffffffffffffffffffffff7d7d6e7aaa9f9f988ea4b3b3 a5969f9f948affffffffffffffffffffffffff9a8b8c847b739fb0abadb3 b8a9a59e9d989f90838dffffffffffffffffffffff989798938c867c92b7 b6b6b2aba8aa9ea79e94857e80ffffffffffffffffffff9ca0a09ea09d92 8b89afb4b0abab9fa9aa9e8f8b877f7b8effffffffffffffff96a2a5a4a4 a1a3a1968fa4b1b1a1abada99d8f908f817f7f81ffffffffffffffff94a2 a7a7a5a5a5a5a19c9aaaa2b1aea59497908f818081817e8fffffffffffff ffff9da9aba8a4a4a8a4a396a7b3b0a79491958d84828786828888ffffff ffffffffff9aaaaba6a4a6a6a6a6a1a5b4ae9f8e9288868689838884a7ca ffffffffffffffff95a8aba8a5a4a5a5ababb1b3a4978d88878d858a8c9a c8c7d1ffffffffffffffff9aa4abaaa6a9a6a6afafafad998e89898f8a87 8fc0c8c9ceffffffffffffffffffff9caaaaa4a4a5a9aeb1b2ad978b8887 8c89abcbc6cad0d7ffffffffffffffffffff96abaaa8a7a6abafb3b3aea3 8c8e8e96c8c7c4ced0cdffffffffffffffffffffff94a2ababababafabb1 b1b0ab9389b9c7c4c3cec7bbffffffffffffffffffffffffff98abaeafad abacb2b1b2aea8c7c1bfc3ccb7ffffffffffffffffffffffffffffff92a9 adaeaeb1b2b1b2b3adbdbcbecbb9ffffffffffffffffffffffffffffffff ff91a6b1b2afb1b1b2b2b1b9bbc1c6adffffffffffffffffffffffffffff ffffffff94a0acaeadb1b2b2b1b9bdc5b1ffffffffffffffffffffffffff ffffffffffffffff97aeb0aeb2b2b1bac0bcffffffffffffffffffffffff ffffffffffffffffffffff90abb2b0b2b0bcc4a8ffffffffffffffffffff ffffffffffffffffffffffffffff93a4b2b2b2bfb1ffffffffffffffffff ffffffffffffffffffffffffffffffffff9898b1b2bda1ffffffffffffff ffffffffffffffffffffffffffffffffffffffffff93aba7ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff90a3ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 132 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: silverblock.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffa6a5a69a9790929199a2a89ba1adb9b8bebec3c1c4c5 c3aca5ffffffffffffc3a3bbb4afb8b6a6afb3b0b4a1b2bdbdc0cdd0c6ce d0cac9b0b9ffffffffffc3a5a4bcc9bdbfb0b7b1aea19aa9acb4c4bcc3be c0bbb8b0a8b7b8ffffffffff809e9dbdbdbab5b5b3b5a3aab8bdc1c0c0bc b5b3b2b3a9a6b3bbbefffffff56ea0ba98c8b7bac4c3c9c4ccc9bcc5c7c6 b0afbabac0babec0b7c1c7fffffcc8a4a7ba96b5bec6c8c5c7c1bcbebeb8 ada8acb2b2afb0acabb2b9b8b5ffffe686a6aeb999a8bcc1c2c3c2c0b7b6 b7afa29ba9a9a5a5a3a4a0a2aaaba7fffd908aa8afa9a8a5b1adb3bbbdc0 b9aea7aaa8a4a89b9b9e9ea19c93909ba1fffd7c96acb2b891a8acb1b4b5 b9bab5a9a5a5a8a6a4a19e9c9d9e99909097a3fffd8095b0abbe9ba9afae aab4b1afc0bbb1aba39e9c9991979899acaeaaa8a9fffd7d98b6a6baaaad b5afb5b0b1b7b9bfc0b8a7acaea5a5a09da4a8afb4ada6fffd7798bea3b1 aca6b2b4b2bfc9c4bbcbcdbbbdc4c8c2b7b9bcaea2aba99299fffd7c95b6 a1a5afaeb0b7b6bfbcc1d7cbc7c4d5d6d0cec0b9ada6aa9f958ea7fffd6e 97b397a1b3b2b6c9c4b1b6b9a8abbdbec1b9b6c3b7a09a998d8ca5abb3ff f85994b98e97b7afac9a9caaacaaa3a6a6b2a99d947d7c868d919198a2b4 b2fff8618dc08c90b0a28db0b4acaba4a5aca68c8b886f9499939796a0a9 ae9ca3fffa4087b98695ac9f929094999a9c94958e83869086878c909599 9796928b90fff6457bb28698a9a49582858e90948a827d7f848f95868a94 979d958a828588ffee5975bd8d98a9a6918f8f908e8d847b788088869196 9aa1a1a39c918d9292ffdd8e87b58d98a8b0888f8c888a846e7f83828a90 8b9ca1a7aeaca0a5a49d9cffe3907ea39095afae91c1c0b4b6bfc3aaadaf a1a5aaa8aaafb2b8b5babab69fffe6948aa4999aaeb0cdcad4cbb8bbc2bf bfc3c3c3c7cdcfccced4d4cdd2d1c2ffeb978b949a9bb4d0c8d7dadadbd8 cacac8c5c6c8c8cdcdc8c3c3c3c1c4c6d4ffef9c8e91989aa8c2c3bfcccc cad0cacdcac7c2bfc0bfc0c2c1c2c3c5c5c7defff4a18c9098b0c4c4c2c0 bbbdccc5bcc3c3c5b6c1b9b6b9b9b9bcb8aebbbefffff8ab8a8d9ec1c4c3 c3cedcd0c3dde2c9c5c3c8c6b4bac2b1bcc4c4bec0fffffffba887bac5c5 c5c5c4c6cccbc6c6c4d0cbcfd4ccc5c3c6bfb4bcbab6bbfffffffda28ec5 bdbdbdc1c7c8c5c5c4c2c6c3b8a89fa5a8b0b3b8b7b5b5c0eaffffffff99 a0b7b4b5b5b3b2afacafb5ada098a3b1adafaeaca8a7b0b3a8a5ffffffff ffb4beb7bcaeafb0b2aa988c8da0acb4b8b9b9b6babfb6a6a1a5cbffffff ffffffb5afa4a0a1a1a2a8afb3b4b2afb2b7b9b8bec2c4c6c9c9c5bfffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 131 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: silverround.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff5c55585e656469ffff ffffffffffffffffffffffffffffffffffffffffff6360c8bcc8d2d1d2db 736effffffffffffffffffffffffffffffffffffff645ec6be9baaacc8c3 bcc3d0d26664ffffffffffffffffffffffffffffffff64c6cca2aababcc1 d5c1bdb4b7b2c8c35bffffffffffffffffffffffffffff6ed8cbc4ccc7bd d7d8d7c7c5b7bac2babdd264ffffffffffffffffffffffffff6ed2c4c3bc bdc0b7a9c2adb1b2b0b1adacc967ffffffffffffffffffffffff6bd5c4c2 c1bababab1a5b8a9a9a5a5a4a49fa5c25effffffffffffffffffffff5ec9 bcbdc1b7b1a5a9a5c1a8a4949f9ba59690b058ffffffffffffffffffff60 c9b2b7b6bab7a7a5a5a5c1a5a4a4a594a594948eb459ffffffffffffffff ff64c9a5b7c9adc1bcb1aba5ba94948b949a94c5afa9c458ffffffffffff ffff5e64c9b2afc5b7bac0c1b7a8c5b0a5a7a49fa5c1b1b2c55cffffffff ffffffff5960c9c9d8d8d8cfd9dbcdced7d8d4cccbd4c7bdc3c4b058ffff ffffffffffff6464c9b2bdc9c1d5cbc9c7d5e2d0d0c1baa9a5c39f96af5c ffffffffffffffff5e62d9c7b1cdb7a9a9bcbcc1cdb6c1b59ba496af8ba5 c264ffffffffffffffff605eb4a4a8adaba5a5a5b2a5ba947c7c878e9191 96a4c663ffffffffffffffff588e60c5ada9a4a4a9a58e8aaa6f95949194 93a5abc558ffffffffffffffffff55914fb49694a493968a8686af868a8e 9194949696b14cffffffffffffffffffff51834ab090918a827f7f83b094 838a93999f93af48ffffffffffffffffffffff4f914fb0918a837a77a5aa afb0b094a5a4a49ab04dffffffffffffffffffffffff4d8a4aa8af6e7c83 828aaf8aa4a4a5adc3c158ffffffffffffffffffffffffff6db8b46469d6 c4abafa4c1a5a5aac9c9666666ffffffffffffffffffffffffffff78cdb8 bc6a6ad2d4d5d4d7dbde6f71d075ffffffffffffffffffffffffffffffff 7878d8c9ca6f696d6f6f6f71c86d6cffffffffffffffffffffffffffffff ffffffff7270cccac7c1bebfc06b6bffffffffffffffffffffffffffffff ffffffffffffffff6b6b6b666b6664ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 169 w(will)471 3258 y(alw)m(a)m(ys)c(b)s(e)g(sold)f(or)g (b)s(ough)m(t)h(3\045)f(more)g(or)g(less)h(their)f(standard)h(v)-5 b(alue.)471 3374 y Fw(\017)33 b Fz(F)-8 b(or)31 b(magic)g(stu\033)i(v) -5 b(alue)32 b(is)g(3)p Fw(\002)p Fz(\()p Fv(magic)p Fz(\))2037 3338 y Fd(3)2110 3374 y Fz(of)g(standard)h(v)-5 b(alue.)471 3490 y Fw(\017)33 b Fz(Uniden)m(ti\034ed)f(items)g(v)-5 b(alue)32 b(is)g(2/3)g(of)g(standard.)227 3750 y Fy(6.1.2.)38 b(Plundering)e(shops)227 3930 y Fz(It)30 b(is)f(not)h(p)s(ossible)e(to) i(steal)f(from)f(shops)j(\(sorry!\).)43 b(If)29 b(y)m(ou)h(someho)m(w)h (mak)m(e)e(it)g(out)g(of)g(a)h(shop)227 4047 y(with)42 b(\020unpaid\021)48 b(items,)c(y)m(ou)e(will)d(\034nd)k(that)e(they)i (will)d(b)s(e)i(un)m(usable)g(un)m(til)f(paid)f(for.)71 b(On)227 4163 y(another)31 b(note,)g(if)e(y)m(ou)i(sa)m(v)m(e)h(y)m (ourself)e(with)g(unpaid)g(items)g(in)f(a)h(shop,)h(then)g(crash)g(the) g(game)227 4279 y(and)i(reload,)f(y)m(ou)h(will)d(\034nd)j(that)f(the)h (unpaid)g(items)e(will)f(not)j(b)s(e)f(sa)m(v)m(ed.)227 4550 y Fy(Section)37 b(6.2.)h(Items)227 4764 y Fz(In)43 b(this)e(section)h(w)m(e)h(detail)d(some)i(in)m(teresting)g(prop)s (erties)f(of)h(v)-5 b(arious)41 b(bits)g(of)h(equipmen)m(t)227 4881 y(whic)m(h)33 b(ma)m(y)g(b)s(e)f(found)h(in)f Fx(Cross\034re)p Fz(.)374 5113 y Fy(Bo)s(oks:)43 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bankcard.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00000000000000000000 0000000000000000000000000000ffffffffffffff000087878787878787 8787ffffffffffffffffffffffffff0000ffffffffffff00878787870087 87878787ffffffffffffffffffffffffffff00ffffffffffff00870000a6 ada600008787ffffffffffffffffffffffffffff00ffffffffffff008700 8ba6ada68b008787ff00ffff00ffffff00ff00ff00ff00ffffffffffff00 87878ba6ada68b878787ff0000ffff0000ff0000ffff00ff00ffffffffff ff00878700a6ada600878787ff00ff0000ffff0000ff00ff00ff00ffffff ffffff0087878787878787878787ffffffffffffffffffffffffffff00ff ffffffffff0087878787878787878787ffffffffffffffffffffffffffff 00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffff00ffffff00ffffff00ffff00ff00ff00ff00ff0000 ffffffff00ffffffffffff00ffffff00ffff0000ffff00ff00ff00ff0000 ffff0000ffff00ffffffffffff00ffff00ff00ffff00ff00ff00ffff00ff 00ff0000ffff00ff00ffffffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffff00ffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffff00ffffffffffff0000ffffffffffffffffff ffffffffffffffffffffffffff0000ffffffffffffff0000000000000000 00000000000000000000000000000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: book-clasp.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 0000000000000000ffffffffffffffffffffffffffffff00003a3a3a3a3a 3a3a3a3a3a3a3a3a3a00ffffffffffffffffffffffffffff0000003a3a3a 3a3a3a3a3a3a3a3a3a3a0000ffffffffffffffffffffffffffff003a003a 3a3a3a3a3a3a3a3a3a3a3a3a00e200ffffffffffffffffffffffffff0000 003a3a3a3a3a3a3a3a3a3a82828200ff00ffffffffffffffffffffffffff 003a003a3a3a3a3a3a3a3a3a3a3a828282ff00ffffffffffffffffffffff ff0000003a3a3a3a3a3a3a3a3a3a3a3a3a00820000ffffffffffffffffff ffffff003a003a3a3a3a3a3a3a3a3a3a3a3a3a008200ffffffffffffffff ffffffffff0000003a3a3a3a3a3a3a3a3a3a3a3a3a00e200ffffffffffff ffffffffffffff003a003a3a3a3a3a3a3a3a3a3a3a3a3a00ff00ffffffff ffffffffffffffff000000003a3a3a3a3a3a3a3a3a3a82828200ff00ffff ffffffffffffffffffff003a003a3a3a3a3a3a3a3a3a3a3a3a82828200ff ffffffffffffffffffffffff0000003a3a3a3a3a3a3a3a3a3a3a3a3a0082 00ffffffffffffffffffffffffff003a003a3a3a3a3a3a3a3a3a3a3a3a3a 008200ffffffffffffffffffffffff000000000000000000000000000000 000000e200ffffffffffffffffffffffff003a0000ffffe2e2ffffe2ffff e2e2e2000000ffffffffffffffffffffffffff000000ff00ff000000ffe2 e2e200ff00ffff00ffffffffffffffffffffffffff000000e2ffffe2ffff ffffffffffff00ffff00ffffffffffffffffffffffffffff000000e20000 e200ff00e200ff00ff000000ffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: book-red.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 0000000000000000ffffffffffffffffffffffffffffff00004e4e4e4e4e 4e4e4e4e4e4e4e4e4e00ffffffffffffffffffffffffffff0000004e4e4e 4e4e4e4e4e4e4e4e4e4e0000ffffffffffffffffffffffffffff004e004e 4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffffffffffffffffff0000 004e4e4e4e4e4e4e4e4e4e82828200ff00ffffffffffffffffffffffffff 004e004e4e4e4e4e4e4e4e4e4e4e828282ff00ffffffffffffffffffffff ff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00820000ffffffffffffffffff ffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e008200ffffffffffffffff ffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffff ffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e00ff00ffffffff ffffffffffffffff000000004e4e4e4e4e4e4e4e4e4e82828200ff00ffff ffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e82828200ff ffffffffffffffffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e0082 00ffffffffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e 008200ffffffffffffffffffffffff000000000000000000000000000000 000000e200ffffffffffffffffffffffff004e0000ffffe2e2ffffe2ffff e2e2e2000000ffffffffffffffffffffffffff000000ff00ff000000ffe2 e2e200ff00ffff00ffffffffffffffffffffffffff000000e2ffffe2ffff ffffffffffff00ffff00ffffffffffffffffffffffffffff000000e20000 e200ff00e200ff00ff000000ffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: book-red.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 0000000000000000ffffffffffffffffffffffffffffff00004e4e4e4e4e 4e4e4e4e4e4e4e4e4e00ffffffffffffffffffffffffffff0000004e4e4e 4e4e4e4e4e4e4e4e4e4e0000ffffffffffffffffffffffffffff004e004e 4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffffffffffffffffff0000 004e4e4e4e4e4e4e4e4e4e82828200ff00ffffffffffffffffffffffffff 004e004e4e4e4e4e4e4e4e4e4e4e828282ff00ffffffffffffffffffffff ff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00820000ffffffffffffffffff ffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e008200ffffffffffffffff ffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffff ffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e00ff00ffffffff ffffffffffffffff000000004e4e4e4e4e4e4e4e4e4e82828200ff00ffff ffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e82828200ff ffffffffffffffffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e0082 00ffffffffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e 008200ffffffffffffffffffffffff000000000000000000000000000000 000000e200ffffffffffffffffffffffff004e0000ffffe2e2ffffe2ffff e2e2e2000000ffffffffffffffffffffffffff000000ff00ff000000ffe2 e2e200ff00ffff00ffffffffffffffffffffffffff000000e2ffffe2ffff ffffffffffff00ffff00ffffffffffffffffffffffffffff000000e20000 e200ff00e200ff00ff000000ffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: book-red.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 0000000000000000ffffffffffffffffffffffffffffff00004e4e4e4e4e 4e4e4e4e4e4e4e4e4e00ffffffffffffffffffffffffffff0000004e4e4e 4e4e4e4e4e4e4e4e4e4e0000ffffffffffffffffffffffffffff004e004e 4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffffffffffffffffff0000 004e4e4e4e4e4e4e4e4e4e82828200ff00ffffffffffffffffffffffffff 004e004e4e4e4e4e4e4e4e4e4e4e828282ff00ffffffffffffffffffffff ff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00820000ffffffffffffffffff ffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e008200ffffffffffffffff ffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffff ffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e00ff00ffffffff ffffffffffffffff000000004e4e4e4e4e4e4e4e4e4e82828200ff00ffff ffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e82828200ff ffffffffffffffffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e0082 00ffffffffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e 008200ffffffffffffffffffffffff000000000000000000000000000000 000000e200ffffffffffffffffffffffff004e0000ffffe2e2ffffe2ffff e2e2e2000000ffffffffffffffffffffffffff000000ff00ff000000ffe2 e2e200ff00ffff00ffffffffffffffffffffffffff000000e2ffffe2ffff ffffffffffff00ffff00ffffffffffffffffffffffffffff000000e20000 e200ff00e200ff00ff000000ffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: book-red.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 0000000000000000ffffffffffffffffffffffffffffff00004e4e4e4e4e 4e4e4e4e4e4e4e4e4e00ffffffffffffffffffffffffffff0000004e4e4e 4e4e4e4e4e4e4e4e4e4e0000ffffffffffffffffffffffffffff004e004e 4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffffffffffffffffff0000 004e4e4e4e4e4e4e4e4e4e82828200ff00ffffffffffffffffffffffffff 004e004e4e4e4e4e4e4e4e4e4e4e828282ff00ffffffffffffffffffffff ff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00820000ffffffffffffffffff ffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e008200ffffffffffffffff ffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffff ffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e00ff00ffffffff ffffffffffffffff000000004e4e4e4e4e4e4e4e4e4e82828200ff00ffff ffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e82828200ff ffffffffffffffffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e0082 00ffffffffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e 008200ffffffffffffffffffffffff000000000000000000000000000000 000000e200ffffffffffffffffffffffff004e0000ffffe2e2ffffe2ffff e2e2e2000000ffffffffffffffffffffffffff000000ff00ff000000ffe2 e2e200ff00ffff00ffffffffffffffffffffffffff000000e2ffffe2ffff ffffffffffff00ffff00ffffffffffffffffffffffffffff000000e20000 e200ff00e200ff00ff000000ffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: book-red.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 0000000000000000ffffffffffffffffffffffffffffff00004e4e4e4e4e 4e4e4e4e4e4e4e4e4e00ffffffffffffffffffffffffffff0000004e4e4e 4e4e4e4e4e4e4e4e4e4e0000ffffffffffffffffffffffffffff004e004e 4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffffffffffffffffff0000 004e4e4e4e4e4e4e4e4e4e82828200ff00ffffffffffffffffffffffffff 004e004e4e4e4e4e4e4e4e4e4e4e828282ff00ffffffffffffffffffffff ff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00820000ffffffffffffffffff ffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e008200ffffffffffffffff ffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e00e200ffffffffffff ffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e00ff00ffffffff ffffffffffffffff000000004e4e4e4e4e4e4e4e4e4e82828200ff00ffff ffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e82828200ff ffffffffffffffffffffffff0000004e4e4e4e4e4e4e4e4e4e4e4e4e0082 00ffffffffffffffffffffffffff004e004e4e4e4e4e4e4e4e4e4e4e4e4e 008200ffffffffffffffffffffffff000000000000000000000000000000 000000e200ffffffffffffffffffffffff004e0000ffffe2e2ffffe2ffff e2e2e2000000ffffffffffffffffffffffffff000000ff00ff000000ffe2 e2e200ff00ffff00ffffffffffffffffffffffffff000000e2ffffe2ffff ffffffffffff00ffff00ffffffffffffffffffffffffffff000000e20000 e200ff00e200ff00ff000000ffffffffffffffffffffffffffffff000000 00000000000000000000000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: card.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0000000000000000 00000000000000000000000000ffffffffffffffffffffff00ffffffffff ffffffffffffffffffffffffffff00ffffffffffffffffffffff00ffffff ffffffffffffffffffffffffffffffff00ffffffffffffffffffffff00ff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff 00ffffff00ffff00ffffff00ff00ffff00ffffff00ffffffffffffffffff ffff00ffffff0000ffff0000ff0000ffffff00ffffff00ffffffffffffff ffffffff00ffffff00ff0000ffff0000ff00ff00ffffffff00ffffffffff ffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ff ffffffffffffffffffff00ffffffff00ffffff00ffff00ff00ff00ffffff 00ffffffffffffffffffffff00ffffffff00ffff0000ffff00ff00ff00ff ffff00ffffffffffffffffffffff00ffffff00ff00ffff00ff00ff00ffff 00ffffff00ffffffffffffffffffffff00ffffffffffffffffffffffffff ffffffffffff00ffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffffff ffffffffffffffffffff00ffffffffffffffffffffff00ffffffffffffff ffffffffffffffffffffffff00ffffffffffffffffffffff000000000000 000000000000000000000000000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: checkbook.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 000000000000000000000000000000000000ffffffffffffffff0000003f 3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f00ffffffffffffffff00df 003fcbcb3f3f3f3f3f3f3f3f3f3f3f3f3f3fcbcb3f00ffffffffffffffff 00df003fcb3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fcb3f00ffffffffffff ffff00df003f3f3f933f3f933f3f3f3f3f933f3f3f933f3f3f00ffffffff ffffffff00df003f3f3f93933f3f93933f3f3f933f3f93933f3f3f00ffff ffffffffffff00df003f3f3f933f93933f3f933f933f933f3f933f3f3f00 ffffffffffffffff00df003fcb3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3fcb 3f00ffffffffffffffff00df003fcbcb3f3f3f3f3f3f3f3f3f3f3f3f3f3f cbcb3f00ffffffffffffffff00df003f3f3f3f3f3f3f3f3f3f3f3f3f3f3f 3f3f3f3f3f00ffffffffffffffff00df0000000000000000000000000000 0000000000000000ffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdf dfdfdfdfdfdfdfdf00ffffffffffffffffff000000000000000000000000 0000000000000000000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: diploma.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00000000000000000000000000 00000000000000000000ffffffffffffffffff00ffcbffffffffffffffff ffffffffffffffffffcbff00ffffffffffffffffff00cbcbcbcbcbcbcbcb cbcbcbcbcbcbcbcbcbcbcbcbcb00ffffffffffffffffff00ffcbffffffff ffffffffffffffffffffffffffcbff00ffffffffffffffffff00ffcbffff ffffff00000000000000ffffffffffcbff00ffffffffffffffffff00ffcb ffffffffffffffffffffffffffffffffffcbff00ffffffffffffffffff00 ffcbff0000ff000000ffff000000ff0000ffffcbff00ffffffffffffffff ff00ffcbffffffffffffffffffffffffffffffffffcbff00ffffffffffff ffffff00ffcbff00000000ff0000000000000000ff00ffcbff00ffffffff ffffffffff00ffcbffffffffffffffffffffffffffffffffffcbff00ffff ffffffffffffff00ffcbff0000ff0000ff00000000ff00ff0000ffcbff00 ffffffffffffffffff00ffcbffffffffffffffffffffffffffffffffffcb ff00ffffffffffffffffff00ffcbffffffffffff4dffffffffffffffffff ffcbff00ffffffffffffffffff00ffcbffffffffff4d4d4dffff00000000 00ffffcbff00ffffffffffffffffff00ffcbffffffffffff4dffffffffff ffffffffffcbff00ffffffffffffffffff00ffcbffffffffffffffffffff ffffffffffffffcbff00ffffffffffffffffff00cbcbcbcbcbcbcbcbcbcb cbcbcbcbcbcbcbcbcbcbcb00ffffffffffffffffff00ffcbffffffffffff ffffffffffffffffffffffcbff00ffffffffffffffffff00000000000000 00000000000000000000000000000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: imperial.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 0000000000000000000000000000ffffffffffffff008787878787878787 87878787878787878787878787878700ffffffffffff0000878787878787 878787878700878787878787878787008700ffffffffffff000087878787 87870087870087ad870087870087878787008700ffffffffff0000008787 878787007f0087a600ad00a687007f00878787008700ffffffffff000000 8787878787007f8b00a6adadada6008b7f00878787878700ffffffffff00 00008787878787007f8be2a6adadada6e28b7f00878787878700ffffffff ff0000008787878787007f8b9ca6adadada69c8b7f00878787878700ffff ffffff000000878787878787008be2a6adadada6e28b0087878787878700 ffffffffff000000878787878787008be2a6adadada6e28b008787878787 8700ffffffffff00000087008787878787009ca6adadada69c0087878787 87878700ffffffffff000000870087878787878700000000000000878787 878787878700ffffffffff00000087008787878787878787878787878787 8787008700878700ffffffffff0000008787878787878787878787878787 87878787878787878700ffffffffff000000000000000000000000000000 000000000000000000000000ffffffffff00008787878787878787878787 87878787878787878787878700ffffffffffff0000000000000000000000 000000000000000000000000000000ffffffffffff008787878787878787 87878787878787878787878787878700ffffffffffffff00000000000000 000000000000000000000000000000000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: letter.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff ffffffffffffff0000df00dfdf00ffffffffffffffffffffffffffffffff ffffffffffffff0000dfdfdf00dfdfdf00ffffffffffffffffffffffffff ffffffffffffff0000dfdfdfdf00dfdfdfdf00ffffffffffffffffffffff ffffffffffffff0000dfdfdfdfdf00dfdfdfdfdfdf00ffffffffffffffff ffffffffffffff0000dfdfdfdfdfdf00dfdfdfdfdfdfdfdf00ffffffffff ffffffffffffff0000dfdfdfdfdfdfdfdf00dfdf00dfdfdfdfdfdf00ffff ffffffffffffff0000dfdfdf00000000000000dfdfdf00dfdfdfdf0000ff ffffffffffffffff000000000000000000000000dfdfdfdf0000000000ff ffffffffffffffffffffff00df000000dfdfdfdfdfdfdfdfdfdf00ffffff ffffffffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdf0000ff ffffffffffffffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdf0000ff ffffffffffffffffffffffffffffffffffffff00df00dfdfdfdfdf0000ff ffffffffffffffffffffffffffffffffffffffffffff00dfdfdfdf0000ff ffffffffffffffffffffffffffffffffffffffffffffffff00dfdf0000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: naz-report.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 00000000000000ffffffffffffffffffffffffff003d0095959595959595 95959595959595957c00ffffffffffffffffffffffff007c00e2e2e2e2e2 e2e2e2e2e2e2e2e2e2e2e200ffffffffffffffffffffffff007c00e2e2e2 e2e2e2e2e2e2e2e2e2e2e2e2e200ffffffffffffffffffffffff003d00e2 007ce2e200e27c00e2ac00e200e2e200ffffffffffffffffffffffffff00 00e27cac00e27ce27ce2ace27c7ce2e200ffffffffffffffffffffffffff ffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e20000ffffffffffffffffffffff ffffffff00e2e27ce27ce200e200e27ce27ce2e200ffffffffffffffffff ffffffffffff00e27c00e200ace2007ce2007cace2e200ffffffffffffff ffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e200ffffffffff ffffffffffffffffff00e2e27ce2007ce2e27ce2ac7ce200e2e200ffffff ffffffffffffffffffffff0000e200ace200e27cac00e200ac7ce200ffff ffffffffffffffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e2e200 ffffffffffffffffffffffffffff00e2e2e27c00e2ac7ce200e2ac00e200 e200ffffffffffffffffffffffffffff00006b6b63636b6b6b6b63636363 6b6b6b6b00ffffffffffffffffffffffffff003d00acacacacacacacacac acacacacacacac00ffffffffffffffffffffffff007c00e2e2e2e2e2e2e2 e2e2e2e2e2e2e2e2e200ffffffffffffffffffffffff007c00ace2ace2ce e2cee2e2e2e2e2e2e2e27c00ffffffffffffffffffffffff003b007c7c7c 7c7c7c7c007c7c7c7c7c7c7c7c00ffffffffffffffffffffffffff000000 000000000000ff0000000000000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: note.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff000000000000ffffffffffffff ffffffffffffffffffffffffffffffffffffff00ffffffffff0000ff0000 00ffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00 ffffff000000000000ffffffffffffffffffffffffffff00ffffffffffff ffffffffffffffffffff00ffffffffffffffffffffffffffffff00ff0000 0000ffffffff00ffffffffff00ffffffffffffffffffffffffffffff00ff ff00ff000000ff00000000ffff00ffffffffffffffffffffffffffffffff 00ffff00ff000000ff0000ff00ffff00ffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffff00ffffffffffff00ff00ffff00ff00ffffffffffffffffffff ffffffffffff000000ff0000000000ff00000000ff00ffffffffffffffff ffffffffffffff00ffff00ff00ff00ff00ff00ff0000ff00ffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffff00ffffff ffffffffffffffffffffff00ffffff00ffffffff00ffff00ffffffff00ff ffffffffffffffffffffffffff00ffff0000ff0000000000ff0000ffff00 ffffffffffffffffffffffffffffff00ffff0000ff0000000000ff0000ff 00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffff00ffff00ff00ffffffff 00ffffffffff00ffffffffffffffffffffffffffffff00ff00000000ff00 ff0000000000ffffff00ffffffffffffffffffffffffffff00ffff00ffff 00ff00ff00ff0000ffffff00ffffffffffffffffffffffffffff00ffffff 0000ffff00ffffffffffffffff00ffffffffffffffffffffffffffff0000 0000ffffffffff00000000ffffffff00ffffffffffffffffffffffffffff ffffffffffffffffffffffffff0000000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: quarto.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 0000000000ffffffffffffffffffffffffffffffff003f3f3f3f3f3f3f3f 3f3f3f3f3f3f00ffffffffffffffffffffffffffffff00003fcbcb3f3f3f 3f3f3f3f3fcbcb3f00ffffffffffffffffffffffffffffff00003fcb3f3f 3f3f3f3f3f3f3f3fcb3f00ffffffffffffffffffffffffffffff00003f3f 3f3f3f3f3f3f3f3f3f3f3f3f00ffffffffffffffffffffffffffffff0000 3f3f3f93933f3f3f3f933f3f3f3f00ffffffffffffffffffffffffffffff 00003f3f3f933f3f933f933f933f3f3f00ffffffffffffffffffffffffff ffff00003f3f3f933f933f933f3f933f3f3f00ffffffffffffffffffffff ffffffff00003f3f3f3f3f3f3f3f3f3f3f3f3f3f00ffffffffffffffffff ffffffffffff00003f3f3f3f3f3f3f3f3f3f3f3f3f3f00ffffffffffffff ffffffffffffffff00003f3f3f933f3f3f933f3f933f3f3f00ffffffffff ffffffffffffffffffff00003f3f3f93933f3f933f3f933f3f3f00ffffff ffffffffffffffffffffffff00003f3f3f3f3f3f3f3f3f3f3f3f3f3f00ff ffffffffffffffffffffffffffff00003f3f3f3f3f3f3f3f3f3f3f3f3f3f 00ffffffffffffffffffffffffffffff00003f3f3f3f3f3f3f3f3f3f3f3f 3f3f00ffffffffffffffffffffffffffffff00003f3f3f3f3f3f3f3f3f3f 3f3f3f3f00ffffffffffffffffffffffffffffff00003f3f3f3f3f3f3f3f 3f3f3f3f3f3f00ffffffffffffffffffffffffffffff00003fcb3f3f3f3f 3f3f3f3f3f3fcb3f00ffffffffffffffffffffffffffffff00003fcbcb3f 3f3f3f3f3f3f3fcbcb3f00ffffffffffffffffffffffffffffff00003f3f 3f3f3f3f3f3f3f3f3f3f3f3f00ffffffffffffffffffffffffffffff0000 000000000000000000000000000000ffffffffffffffffffffffffffffff 00dfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffffff ffff00000000000000000000000000000000ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: scrollr.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffff0000000000000000000000 00000000000000ffffffffffffffffffffffffff00420094949494949494 94949494949494948400ffffffffffffffffffffffff008400ffffffffff ffffffffffffffffffffff00ffffffffffffffffffffffff008400ffffff ffffffffffffffffffffffffff00ffffffffffffffffffffffff004200ff 0084ffff00ff8400ffc600ff00ffff00ffffffffffffffffffffffffff00 00ff84c600ff84ff84ffc6ff8484ffff00ffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffff0000ffffffffffffffffffffff ffffffff00ffff84ff84ff00ff00ff84ff84ffff00ffffffffffffffffff ffffffffffff00ff8400ff00c6ff0084ff0084c6ffff00ffffffffffffff ffffffffffffff00ffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffff00ffff84ff0084ffff84ffc684ff00ffff00ffffff ffffffffffffffffffffff0000ff00c6ff00ff84c600ff00c684ff00ffff ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffff00ffffff8400ffc684ff00ffc600ff00 ff00ffffffffffffffffffffffffffff00006b6b6b6b6b6b6b6b6b6b6b6b 6b6b6b6b00ffffffffffffffffffffffffff004200cecececececececece cecececececece00ffffffffffffffffffffffff008400ffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffff008400ceffceffce ffceffffffffffffffff8400ffffffffffffffffffffffff004200848484 8484848400848484848484848400ffffffffffffffffffffffffff000000 000000000000ff0000000000000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tome.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff00000000000000000000000000000000 000000ffffffffffffffffffffffff004800666666666666666666666666 6666666600ffffffffffffffffffffff00004800662d2d2d2d6666666666 662d2d2d2d6600ffffffffffffffffffffff00294800662d666666666666 6666666666662d6600ffffffffffffffffffffff00294800662d66666666 66666666666666662d6600ffffffffffffffffffffff00299200662d6697 a066a066a066a066a0662d6600ffffffffffffffffffffff007592006666 6666a066a066a0976666a066666600ffffffffffffffffffffff004a4800 6666666666666666666666666666666600ffffffffffffffffffffff0029 48006666666666666666666666666666666600ffffffffffffffffffffff 0029480066666666a06666a066a066669766666600ffffffffffffffffff ffff00294800666666a0a066a06666a066a0a066666600ffffffffffffff ffffffff002948006666666666666666666666666666666600ffffffffff ffffffffffff002948006666666666666666666666666666666600ffffff ffffffffffffffff002948006666666666666666666666666666666600ff ffffffffffffffffffff0029480066666666666666666666666666666666 00ffffffffffffffffffffff002992006666666666666666666666666666 666600ffffffffffffffffffffff00757500662d66666666666666666666 66662d6600ffffffffffffffffffffff004a4800662d6666666666666666 666666662d6600ffffffffffffffffffffff00294800662d666666666666 6666666666662d6600ffffffffffffffffffffff00294800662d2d2d2d66 66666666662d2d2d2d6600ffffffffffffffffffffff0029480066666666 66666666666666666666666600ffffffffffffffffffffff002900000000 000000000000000000000000000000ffffffffffffffffffffff0000e2e2 e2e2e2e2e2e2e2e2e2e2e2e2e2e2e200ffffffffffffffffffffffff00e2 9292e292e2929292e292e29292e292929200ffffffffffffffffffffffff 0092e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e29200ffffffffffffffffffff ffffff00000000000000000000000000000000000000ffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 268 5229 a Fz(This)e(is)g(ho)m(w)h(pla)m(y)m(ers)f(can)h (obtain)e(magical)e(sp)s(ells,)k(sometimes)e(a)h(pla)m(y)m(er)g(can)g (learn)g(the)227 5346 y(sp)s(ell,)29 b(other)h(times)e(they)i(cannot.) 42 b(The)31 b(c)m(hance)f(dep)s(ends)h(on)e(the)h(t)m(yp)s(e)g(of)f(sp) s(ell,)f(either)h(INT)227 5462 y(\(incan)m(tations\))42 b(or)g(WIS)h(\(pra)m(y)m(ers\))h(is)e(used)h(to)f(help)g(determine)g (the)h(p)s(ercen)m(tage)h(c)m(hance)227 5578 y(that)33 b(the)g(sp)s(ell)e(migh)m(t)g(b)s(e)i(learned)f(\(see)i(section)e(4.2)h (for)f(details\).)1948 6057 y(32)p eop end %%Page: 33 37 TeXDict begin 33 36 bop 374 333 a Fz(There)35 b(are)f(man)m(y)-8 b(,)34 b(man)m(y)g(di\033eren)m(t)g(t)m(yp)s(es)i(of)d(b)s(o)s(oks)h (out)g(there,)h(as)g(w)m(ell)e(as)h(b)s(eing)f(sp)s(ell)227 449 y(b)s(o)s(oks)38 b(\(grimores)e(and)i(pra)m(y)m(erb)s(o)s(oks\),)i (the)e(follo)m(wing)d(information)f(can)k(app)s(ear)f(in)g(b)s(o)s(oks) 227 565 y(generated)d(in)d(shops)j(and/or)e(monster)g(treasure)i (hoards)p Fw(\000)471 756 y(\017)c Fz(Comp)s(endiums)e(on)i(monsters.) 43 b(Their)29 b(p)s(o)m(w)m(ers/abilities)f(are)i(describ)s(ed)g(as)g (in)471 872 y(the)j Fx(Cross\034re)h Fy(Sp)s(oiler)p Fz(.)471 1029 y Fw(\017)23 b Fz(Comp)s(endiums)g(of)g(incan)m (tations/pra)m(y)m(ers)h(b)m(y)g(sp)s(ell)e(P)m(ath.)41 b(Higher)23 b(lev)m(el)g(texts)471 1145 y(are)33 b(more)f(complete)f (in)h(their)g(description)g(of)g(a)m(v)-5 b(ailable)30 b(sp)s(ells.)471 1301 y Fw(\017)f Fz(\020Bibles\021:)40 b(v)-5 b(arious)29 b(asp)s(ects,)i(prop)s(erties,)f(and)f(c)m (haracteristics)h(of)f(a)g(Go)s(d/cult)471 1417 y(are)k(describ)s(ed.) 44 b(Higher)32 b(lev)m(el)g(texts)i(ha)m(v)m(e)g(more/b)s(etter)e (information.)471 1574 y Fw(\017)25 b Fz(Comp)s(endiums)e(explaining)g (the)i(p)s(o)m(w)m(ers)h(of)e(magic)f(items.)40 b(Higher)24 b(lev)m(el)g(texts)471 1690 y(ha)m(v)m(e)34 b(more)e(items)g(detailed.) 471 1846 y Fw(\017)h Fz(Alc)m(hemical)d(F)-8 b(orm)m(ulae.)471 2003 y Fw(\017)33 b Fz(Other)f(randomly)f(generated)j(information.)227 2194 y(Bo)s(ok)29 b(lev)m(el)f(is)g(assigned)h(when)h(the)f(b)s(o)s(ok) f(is)g(generated)i(as)e(treasure.)43 b(Lev)m(el)30 b(is)e(based)h(on)g (the)227 2310 y(di\036cult)m(y)k(of)f(the)h(map)e(the)i(b)s(o)s(ok)g (is)f(generated)h(on.)43 b(All)31 b(information)e(is)j Fu(server)g Fz(sp)s(eci\034c.)374 2542 y Fy(Scrolls)j(and)j(P)m (otions:)k @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: balm-gen.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 01010101ffffffffffffffffffffffffffffffffffffffffffffffffffff 01017f7f7f7f0101ffffffffffffffffffffffffffffffffffffffffffff ff017f7f7f7f7f7f7f7f01ffffffffffffffffffffffffffffffffffffff ffff017f7f7f7f7f7f7f7f7f7f01ffffffffffffffffffffffffffffffff ffffffff01017f7f7f7f7f7f7f7f01ffffffffffffffffffffffffffffff ffffffffffff010101017f7f7f7f01010101ffffffffffffffffffffffff ffffffffffffffff0101ff0101010101ff010101ffffffffffffffffffff ffffffffffffffffffff01a6010101ff010101010101ffffffffffffffff ffffffffffffffffffffffff0101a60101010101a601a601ffffffffffff ffffffffffffffffffffffffffff01ff01a601a601ff01a60101ffffffff ffffffffffffffffffffffffffffffff0101ff01a601a601ff01a601ffff ffffffffffffffffffffffffffffffffffff01a601ff01a601a601ff0101 ffffffffffffffffffffffffffffffffffffffff0101a601ff01a601a601 ff01ffffffffffffffffffffffffffffffffffffffff01a601a601ff01a6 01a60101ffffffffffffffffffffffffffffffffffffffffff01a601a601 ff01a60101ffffffffffffffffffffffffffffffffffffffffffffff0101 01a601ff0101ffffffffffffffffffffffffffffffffffffffffffffffff ffff01010101ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: dust-gen.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff007fffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff7f7fbf7fffffffffffffffffffffffffffffffffffffffffffffff ffffffff007f7fbf7fbfffffffffffffffffffffffffffffffffffffffff ffffffffff7f007f7f7fbfbfbfffffffffffffffffffffffffffffffffff ffffffffffffff007f007f7f7fbf7fbfffffffffffffffffffffffffffff ffffffffffffffff7f7f7f7fbf7fbf7fbfbfffffffffffffffffffffffff ffffffffffffffffffff007fbf7f7f7fbf7f7fbf7fffffffffffffffffff ffffffffffffffffffffff7f007f7f7f007f7fbf7fbfbf7fffffffffffff ffffffffffffffffffff7fff7f007f007fbf7f7fbfbfbf7fbf7fffff7fff ffffffffffffffffffffffffbf7f007f007f7f7fbf7f7f7f7fbfbf7f7fff ffffffffffffffffffffffffffffffff007fbf7fbf7f7f7f7fbf7f7fbfbf 7fffbf7fffffffffffffffffffffffffffffff7f7f7f7f7fbf7f7f7fbfbf bfbfbfffffffffffffffffffffffffffffffffff7fff007f7f7f7f7fbf7f bf7f7fbf7fffffffffffffffffffffffffffffffffff7fffffff7f7f7f7f 7f7f7fffffffffffffffffffffffffffffffffffffffffffffffff7fbfff 7f7fbf7fffbf7fffffffffffffffffffffffffffffffffffffffff7fffff ffff7fffffff7fbfffffffffffffffffffffffffffffffffffffffffffff ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: figurine-gen.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff01ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0169 01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 017801ffffffffffffffffffffffffffffffffffffffffffffffffffffff 01016901780101ffffffffffffffffffffffffffffffffffffffffffffff ff016969786978780101ffffffffffffffffffffffffffffffffffffffff ffff0169690178697801787801ffffffffffffffffffffffffffffffffff ffffffff0169016969690169697801ffffffffffffffffffffffffffffff ffffffffffff6969016969780169697878ffffffffffffffffffffffffff ffffffffffffffff0169690101010101787801ffffffffffffffffffffff ffffffffffffffffff01690169697801697869017801ffffffffffffffff ffffffffffffffffffffff01696901010101010101787801ffffffffffff ffffffffffffffffffffffffff01696978697869787878787801ffffffff ffffffffffffffffffffffffffffff01696969696978697878787801ffff ffffffffffffffffffffffffffffffffffff0169696901010169697801ff ffffffffffffffffffffffffffffffffffffffff0169786901ff01697878 01ffffffffffffffffffffffffffffffffffffffffff01696901ffffff01 787801ffffffffffffffffffffffffffffffffffffffffffff010101ffff ff010101ffffffffffffffffffffffffffffffffffffffffffffffff0169 01ff017801ffffffffffffffffffffffffffffffffffffffffffffffffff ff0101ff0101ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potion-aether.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potioncha.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00838300ffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00658300ffffffffffffffffffffffffffffffffffff ffffffffffffff0000008d000000ffffffffffffffffffffffffffffffff ffffffffffffff00004d4d008dad00ffffffffffffffffffffffffffffff ffffffffffffffff004d4d80008dadad00ffffffffffffffffffffffffff ffffffffffffffffff004d4d808d8dadad00ad00ffffffffffffffffffff ffffffffffffffffffffff004d80808dadadadffad00ffffffffffffffff ffffffffffffffffffffffff004d4d80808dadadadffad00ffffffffffff ffffffffffffffffffffffffffff004d4d80808dadadadadad00ffffffff ffffffffffffffffffffffffffffffff004d4d80808d8dad8dad8d00ffff ffffffffffffffffffffffffffffffffffff004d4d8080808d00008d8d00 ffffffffffffffffffffffffffffffffffffffffff004d4d808000808080 00ffffffffffffffffffffffffffffffffffffffffffff004d4d4d800000 4d8000ffffffffffffffffffffffffffffffffffffffffffffff00004d4d 4d4d0000ffffffffffffffffffffffffffffffffffffffffffffffffffff 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potioncol.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000006d000000ffffffffffffffffffffffffffffffffffff ffffffffff00007c7c00939400ffffffffffffffffffffffffffffffffff ffffffffffff008399a500c3c7c500ffffffffffffffffffffffffffffff ffffffffffffff0083a5bbc5ceceff00ce00ffffffffffffffffffffffff ffffffffffffffffff0099b9c5ccceceffffce00ffffffffffffffffffff ffffffffffffffffffff007ca0bbcacecececeffce00ffffffffffffffff ffffffffffffffffffffffff007ca7c5ccce1dcececed100ffffffffffff ffffffffffffffffffffffffffff0083a0bbcc1de91dd1cece00ffffffff ffffffffffffffffffffffffffffffff008399b91de91de91dcebb00ffff ffffffffffffffffffffffffffffffffffffff0092b9cc1de91dcebb00ff ffffffffffffffffffffffffffffffffffffffffff008392afcc1db9bba5 00ffffffffffffffffffffffffffffffffffffffffffffff00008aa5a5b1 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potioncol.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000006d000000ffffffffffffffffffffffffffffffffffff ffffffffff00007c7c00939400ffffffffffffffffffffffffffffffffff ffffffffffff008399a500c3c7c500ffffffffffffffffffffffffffffff ffffffffffffff0083a5bbc5ceceff00ce00ffffffffffffffffffffffff ffffffffffffffffff0099b9c5ccceceffffce00ffffffffffffffffffff ffffffffffffffffffff007ca0bbcacecececeffce00ffffffffffffffff ffffffffffffffffffffffff007ca7c5ccce1dcececed100ffffffffffff ffffffffffffffffffffffffffff0083a0bbcc1de91dd1cece00ffffffff ffffffffffffffffffffffffffffffff008399b91de91de91dcebb00ffff ffffffffffffffffffffffffffffffffffffff0092b9cc1de91dcebb00ff ffffffffffffffffffffffffffffffffffffffffff008392afcc1db9bba5 00ffffffffffffffffffffffffffffffffffffffffffffff00008aa5a5b1 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potioncon.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000006e000000ffffffffffffffffffffffffffffffffffff ffffffffff00005151007ca800ffffffffffffffffffffffffffffffffff ffffffffffff005d5d7c0090b9b400ffffffffffffffffffffffffffffff ffffffffffffff00646c89a1a1d4c700b400ffffffffffffffffffffffff ffffffffffffffffff006c94acccd4d4e7e7b900ffffffffffffffffffff ffffffffffffffffffff005d79a1bcd4d4d4e7e7bc00ffffffffffffffff ffffffffffffffffffffffff006479a8c0ccd4d4d4d4c000ffffffffffff ffffffffffffffffffffffffffff006479a1c0cc810000d4b400ffffffff ffffffffffffffffffffffffffffffff00576c9bcc8100ccccc7ac00ffff ffffffffffffffffffffffffffffffffffffff005d719900a8ccb9a800ff ffffffffffffffffffffffffffffffffffffffffff004b64819400009481 00ffffffffffffffffffffffffffffffffffffffffffffff00005764696c 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potiondex.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000009f000000ffffffffffffffffffffffffffffffffffff ffffffffff0000888e0098d900ffffffffffffffffffffffffffffffffff ffffffffffff0081a18100b2d1d900ffffffffffffffffffffffffffffff ffffffffffffff0086a17fa1aac9d100d900ffffffffffffffffffffffff ffffffffffffffffff006481a1aac9c9eff7df00ffffffffffffffffffff ffffffffffffffffffff00908eaab2c9d1d1eff7da00ffffffffffffffff ffffffffffffffffffffffff006e8e8ebac2d9d9dad9df00ffffffffffff ffffffffffffffffffffffffffff00908eb2bac20000c2dac200ffffffff ffffffffffffffffffffffffffffffff006e8e9098c300c200c2c200ffff ffffffffffffffffffffffffffffffffffffff009090ba00c2c200c200ff ffffffffffffffffffffffffffffffffffffffffff006e959500004e9f9f 00ffffffffffffffffffffffffffffffffffffffffffffff000075989f9f 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionfir.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000003c000000ffffffffffffffffffffffffffffffffffff ffffffffff0000373700429700ffffffffffffffffffffffffffffffffff ffffffffffff00292f4a003f8c8c00ffffffffffffffffffffffffffffff ffffffffffffff00262f485b638186008c00ffffffffffffffffffffffff ffffffffffffffffff00243753668187869d9d00ffffffffffffffffffff ffffffffffffffffffff0024263a5b71ff8c8c9d8c00ffffffffffffffff ffffffffffffffffffffffff00202637ff768c91ff918700ffffffffffff ffffffffffffffffffffffffffff002026375b71ff867b8c7600ffffffff ffffffffffffffffffffffffffffffff001b24ff48ff76ff71ff7100ffff ffffffffffffffffffffffffffffffffffffff001b2b3c4aff5b635300ff ffffffffffffffffffffffffffffffffffffffffff001b20ff3c3f3fff3f 00ffffffffffffffffffffffffffffffffffffffffffffff00002426ff26 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionfir.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000003c000000ffffffffffffffffffffffffffffffffffff ffffffffff0000373700429700ffffffffffffffffffffffffffffffffff ffffffffffff00292f4a003f8c8c00ffffffffffffffffffffffffffffff ffffffffffffff00262f485b638186008c00ffffffffffffffffffffffff ffffffffffffffffff00243753668187869d9d00ffffffffffffffffffff ffffffffffffffffffff0024263a5b71ff8c8c9d8c00ffffffffffffffff ffffffffffffffffffffffff00202637ff768c91ff918700ffffffffffff ffffffffffffffffffffffffffff002026375b71ff867b8c7600ffffffff ffffffffffffffffffffffffffffffff001b24ff48ff76ff71ff7100ffff ffffffffffffffffffffffffffffffffffffff001b2b3c4aff5b635300ff ffffffffffffffffffffffffffffffffffffffffff001b20ff3c3f3fff3f 00ffffffffffffffffffffffffffffffffffffffffffffff00002426ff26 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potiongen.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionhea.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000079000000ffffffffffffffffffffffffffffffffffff ffffffffff00003a3a00799500ffffffffffffffffffffffffffffffffff ffffffffffff003a3a680079959500ffffffffffffffffffffffffffffff ffffffffffffff003a3a6879799595009500ffffffffffffffffffffffff ffffffffffffffffff003a68e279959595ff9500ffffffffffffffffffff ffffffffffffffffffff003a3a68797995e295ff9500ffffffffffffffff ffffffffffffffffffffffff003a3a687979959595959500ffffffffffff ffffffffffffffffffffffffffff003aa768e279e29579957900ffffffff ffffffffffffffffffffffffffffffff003a3a686879797979797900ffff ffffffffffffffffffffffffffffffffffffff003a3a68687979ca7900ff ffffffffffffffffffffffffffffffffffffffffff003aa76868a7686868 00ffffffffffffffffffffffffffffffffffffffffffffff00003a3a3a3a 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potion-heal2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potion-heal2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potion-heal2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potion-heal2.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionhero.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000063000000ffffffffffffffffffffffffffffffffffff ffffffffff000021210063a500ffffffffffffffffffffffffffffffffff ffffffffffff002121420063a5a500ffffffffffffffffffffffffffffff ffffffffffffff002121426363a5a500a500ffffffffffffffffffffffff ffffffffffffffffff002142637ba5a5ffffa500ffffffffffffffffffff ffffffffffffffffffff00212142637ba5a5ffffa500ffffffffffffffff ffffffffffffffffffffffff00212142637ba5a5a5a5a500ffffffffffff ffffffffffffffffffffffffffff00212142637b7ba57ba57b00ffffffff ffffffffffffffffffffffffffffffff0021214242637b7b7b7b7b00ffff ffffffffffffffffffffffffffffffffffffff00212142426363636300ff ffffffffffffffffffffffffffffffffffffffffff002121214242424242 00ffffffffffffffffffffffffffffffffffffffffffffff000021212121 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionimp.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00838300ffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00658300ffffffffffffffffffffffffffffffffffff ffffffffffffff000000cb000000ffffffffffffffffffffffffffffffff ffffffffffffff00003b3b00cbe200ffffffffffffffffffffffffffffff ffffffffffffffff003b3ba600cbe2e200ffffffffffffffffffffffffff ffffffffffffffffff003b3ba6cbcbe2e200e200ffffffffffffffffffff ffffffffffffffffffffff003ba6a6cbe2e2ffffe200ffffffffffffffff ffffffffffffffffffffffff003b3ba6a6cbe2e2ffffe200ffffffffffff ffffffffffffffffffffffffffff003b3ba6a6cbe2e2e2e2e200ffffffff ffffffffffffffffffffffffffffffff003b3b69a6a6cbcbcbcb7800ffff ffffffffffffffffffffffffffffffffffff003b3b697878a6a6a6787800 ffffffffffffffffffffffffffffffffffffffffff003b3b696978787878 00ffffffffffffffffffffffffffffffffffffffffffff003b3b3b696969 696900ffffffffffffffffffffffffffffffffffffffffffffff00003b3b 3b3b0000ffffffffffffffffffffffffffffffffffffffffffffffffffff 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 2658 a @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionint.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000004c000000ffffffffffffffffffffffffffffffffffff ffffffffff00004c4c004c7300ffffffffffffffffffffffffffffffffff ffffffffffff003f494c0063867300ffffffffffffffffffffffffffffff ffffffffffffff0040636d877fa9ae008600ffffffffffffffffffffffff ffffffffffffffffff005a79aeaeaeaee4e4ac00ffffffffffffffffffff ffffffffffffffffffff00406591aeaeaeaee4e4ae00ffffffffffffffff ffffffffffffffffffffffff00656996aeaeaeaeaeaeae00ffffffffffff ffffffffffffffffffffffffffff00656d96aeae000000aea900ffffffff ffffffffffffffffffffffffffffffff00405a87a4ae9600aeae9f00ffff ffffffffffffffffffffffffffffffffffffff00657696a10096ae9600ff ffffffffffffffffffffffffffffffffffffffffff00405a6d000000866d 00ffffffffffffffffffffffffffffffffffffffffffffff000040556d86 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potioninv.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000009c000000ffffffffffffffffffffffffffffffffffff ffffffffff0000736700aee000ffffffffffffffffffffffffffffffffff ffffffffffff008492a800b7e7e800ffffffffffffffffffffffffffffff ffffffffffffff007aa3bbcacbf0ee00e200ffffffffffffffffffffffff ffffffffffffffffff0084bacce0f8f8fffee200ffffffffffffffffffff ffffffffffffffffffff007095bbd2e9f8f8fffee200ffffffffffffffff ffffffffffffffffffffffff006e99bbd2eefdfdf8f7e200ffffffffffff ffffffffffffffffffffffffffff006995bad1e8f1f8e9f0ca00ffffffff ffffffffffffffffffffffffffffffff006c8bb4c4d9e8e8e0d3c400ffff ffffffffffffffffffffffffffffffffffffff00739cbac4ccccc4b400ff ffffffffffffffffffffffffffffffffffffffffff00697a99aeb4ae9c84 00ffffffffffffffffffffffffffffffffffffffffffffff000073707073 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionmag.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000005a000000ffffffffffffffffffffffffffffffffffff ffffffffff00005e47005a6b00ffffffffffffffffffffffffffffffffff ffffffffffff004747477b5a6b6b00ffffffffffffffffffffffffffffff ffffffffffffff00475e476a5a6a6b006b00ffffffffffffffffffffffff ffffffffffffffffff0047477b5a6b6bffff6b00ffffffffffffffffffff ffffffffffffffffffff005e475e5a6a6b6affff6b00ffffffffffffffff ffffffffffffffffffffffff00477b475a5a7b6b6a6b6a00ffffffffffff ffffffffffffffffffffffffffff005e476a5a6a5a6a6b7b6b00ffffffff ffffffffffffffffffffffffffffffff00475e476a5a6a5a6a5a6b00ffff ffffffffffffffffffffffffffffffffffffff00477b47475a7b5a5a00ff ffffffffffffffffffffffffffffffffffffffffff005e475e475e475e47 00ffffffffffffffffffffffffffffffffffffffffffffff000047474700 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionpow.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000051000000ffffffffffffffffffffffffffffffffffff ffffffffff00004a490061a900ffffffffffffffffffffffffffffffffff ffffffffffff004e545d0072bab200ffffffffffffffffffffffffffffff ffffffffffffff004e6a7a8d8fbdc000b400ffffffffffffffffffffffff ffffffffffffffffff005a7a9bbfc5caeaeab400ffffffffffffffffffff ffffffffffffffffffff004e6890b5cacad0eaeabd00ffffffffffffffff ffffffffffffffffffffffff00546d95bfc2b7b4bdc8b700ffffffffffff ffffffffffffffffffffffffffff005471a0bfb6000000b7ad00ffffffff ffffffffffffffffffffffffffffffff004e6386ada6009c008fad00ffff ffffffffffffffffffffffffffffffffffffff00547a7f000000957f00ff ffffffffffffffffffffffffffffffffffffffffff004b545d0072806a6c 00ffffffffffffffffffffffffffffffffffffffffffffff00005253545a 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionstr.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000004d000000ffffffffffffffffffffffffffffffffffff ffffffffff00004e4e004da700ffffffffffffffffffffffffffffffffff ffffffffffff004e4e4e004da7a700ffffffffffffffffffffffffffffff ffffffffffffff004e4e4e4d4da7a700a700ffffffffffffffffffffffff ffffffffffffffffff004e4e4d4da7a7d6d6a700ffffffffffffffffffff ffffffffffffffffffff004e4e4e4d4da7a7d6d6a700ffffffffffffffff ffffffffffffffffffffffff004e4e4e4d4da7a7a7a7a700ffffffffffff ffffffffffffffffffffffffffff004e4e4e4d4d4d0000a74d00ffffffff ffffffffffffffffffffffffffffffff004e4e4e4e4d004d4d4d4d00ffff ffffffffffffffffffffffffffffffffffffff004e4e4e4e4d004d4d00ff ffffffffffffffffffffffffffffffffffffffffff004e4e4e00004e4e4e 00ffffffffffffffffffffffffffffffffffffffffffffff00004e4e4e4e 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potionwis.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff0000007b000000ffffffffffffffffffffffffffffffffffff ffffffffff00007b6b008c9400ffffffffffffffffffffffffffffffffff ffffffffffff007b94aa00c6bda500ffffffffffffffffffffffffffffff ffffffffffffff007394add6deded300ad00ffffffffffffffffffffffff ffffffffffffffffff007ba5cedededeefefbd00ffffffffffffffffffff ffffffffffffffffffff006389b5d6dededeefefc600ffffffffffffffff ffffffffffffffffffffffff006b8cb5d6dededee3dec600ffffffffffff ffffffffffffffffffffffffffff007094b5d600e700e700c600ffffffff ffffffffffffffffffffffffffffffff00688cbdce00ef00e700bd00ffff ffffffffffffffffffffffffffffffffffffff0080a100c600c600c600ff ffffffffffffffffffffffffffffffffffffffffff00648caa00c600ad94 00ffffffffffffffffffffffffffffffffffffffffffffff00008994a199 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tear.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff61ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff61ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff616161ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff61b26161ffffffffffffffffffffffffffffffffffff ffffffffffffffffff61b2b2b261ffffffffffffffffffffffffffffffff ffffffffffffffffffffff61b2b2b26161ffffffffffffffffffffffffff ffffffffffffffffffffffff61b2b2b2616161ffffffffffffffffffffff ffffffffffffffffffffffffffff61b2b261611d1d61ffffffffffffffff ffffffffffffffffffffffffffffffff61b2b261611d1d61ffffffffffff ffffffffffffffffffffffffffffffffffff61b261611d1d1d61ffffffff ffffffffffffffffffffffffffffffffffffffff6161611d1d1d61ffffff ffffffffffffffffffffffffffffffffffffffffffffff611d1d1d6161ff ffffffffffffffffffffffffffffffffffffffffffffffffffff616161ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 160 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: scroll.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000ffffffffffffffffffffffffffffff0000a6a6a6a6a6a6a6a6a6 a6a6a6a6a6a600ffffffffffffffffffffffffffff009300dfdfdfdfdfdf dfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff009300df000000 df00df0000dfdfdf00dfdf00ffffffffffffffffffffffffff009300dfdf 00df000000dfdfdf00df00dfdf00ffffffffffffffffffffffffffff0000 dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffffff ff00dfdf000000df00df00dfdf00dfdfdf00ffffffffffffffffffffffff ffff00df0000df00dfdf0000df0000dfdfdf00ffffffffffffffffffffff ffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffff ffffffffffff00df00dfdf00dfdf00dfdf00df00dfdf00ffffffffffffff ffffffffffffffff00dfdf0000dfdf000000df00df0000df00ffffffffff ffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffff ffffffffffffffffffffffff00dfdf00dfdfdf00dfdf00df00dfdfdf00ff ffffffffffffffffffffffffff00dfdf00df000000000000dfdfdf00df00 ffffffffffffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdf df00ffffffffffffffffffffffffffffff00dfdfdf00dfdf00dfdfdfdf00 dfdfdf00ffffffffffffffffffffffffffffff00a6a600a6000000a6a600 a6a6a600a600ffffffffffffffffffffffffffffff00a6a6a6a6a6a6a6a6 a6a6a6a6a6a6a600ffffffffffffffffffffffffffffff00000000000000 00000000000000000000ffffffffffffffffffffffffffffff0093009393 93939393939393939393939300ffffffffffffffffffffffffffff000093 00dfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff00 9300a6a6a6a6a6a6a6a6a6a6a6a6a6a6a600ffffffffffffffffffffffff ffff0000000000000000000000000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 374 2891 a Fz(Most)c(of)f(these)h(items)f(pro)m(vide)h(a)f (one-shot)g(use)i(of)e(a)g(sp)s(ell)f(without)h(making)f(the)i(user)227 3007 y(exp)s(end)g(either)e(mana)f(or)g(grace.)55 b(Scroll)34 b(use)j(dep)s(ends)h(on)e(the)g(user's)i Fv(literacy)g Fz(skill)c(and)227 3123 y(ma)m(y)42 b(fail.)68 b(P)m(otions)41 b(alw)m(a)m(ys)i(w)m(ork,)h(but)e(are)g(more)f(exp)s(ensiv)m(e)i(to)e (buy)-8 b(.)72 b(Sev)m(eral)42 b(kinds)g(of)227 3240 y(items)g(are)h(classed)h(as)f("p)s(otions":)63 b(balms,)45 b(\034gurines,)g(and)f(dusts.)76 b(Some)42 b(p)s(otions)g(don't)227 3356 y(cast)35 b(sp)s(ells,)g(but)g(instead)f(raise)h(the)g(drink)m (er's)g(stats.)50 b(Bew)m(are)36 b(cursed)g(p)s(otions.)49 b(They)36 b(can)227 3472 y Fu(lower)c Fz(y)m(our)h(stats)g(instead!)374 3705 y Fy(W)-9 b(ands\(Sta)m(v)m(es\)/Ro)s(ds/Horns:)43 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: staff.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 4d4d4dffffffffffffffffffffffffffffffffffffffffffffffffffffff ffa64d4d4d4dffffffffffffffffffffffffffffffffffffffffffffffff ffffa64d4d4dffff4dffffffffffffffffffffffffffffffffffffffffff ffffffffa64da64d4dff4dffffffffffffffffffffffffffffffffffffff ffffffffff00e24da6e24d4d4dffffffffffffffffffffffffffffffffff ffffffffffff003f52a64d4d4de2ffffffffffffffffffffffffffffffff ffffffffffffff00003f9365a6a6e2ffffffffffffffffffffffffffffff ffffffffffffffff00003f65659300ffffffffffffffffffffffffffffff ffffffffffffffffff002d2d65939300ffffffffffffffffffffffffffff ffffffffffffffffffff002d3f6565df00ffffffffffffffffffffffffff ffffffffffffffffffffff002d3f65936500ffffffffffffffffffffffff ffffffffffffffffffffffff003f3f93936500ffffffffffffffffffffff ffffffffffffffffffffffffff002d3f65839300ffffffffffffffffffff ffffffffffffffffffffffffffff002d8093659300ffffffffffffffffff ffffffffffffffffffffffffffffff002d3f6565df00ffffffffffffffff ffffffffffffffffffffffffffffffff002d3f65659300ffffffffffffff ffffffffffffffffffffffffffffffffff002d3f65939300ffffffffffff ffffffffffffffffffffffffffffffffffff002d2d6565df00ffffffffff ffffffffffffffffffffffffffffffffffffff00003f3f659300ffffffff ffffffffffffffffffffffffffffffffffffffff002d3f93938300ffffff ffffffffffffffffffffffffffffffffffffffffff002d6565df9300ffff ffffffffffffffffffffffffffffffffffffffffffff002d3f93659300ff ffffffffffffffffffffffffffffffffffffffffffffff002d3f65938300 ffffffffffffffffffffffffffffffffffffffffffffffff003f3f936583 00ffffffffffffffffffffffffffffffffffffffffffffffff002d6593df 8300ffffffffffffffffffffffffffffffffffffffffffffffff003fdf93 936500ffffffffffffffffffffffffffffffffffffffffffffffffff0065 93938300ffffffffffffffffffffffffffffffffffffffffffffffffffff 0065936500ffffffffffffffffffffffffffffffffffffffffffffffffff ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: wand.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff3f65ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff3f65ffffffffffffffffffffffffffffffffffff ffffffffffffffffffff3f658383ffffffffffffffffffffffffffffffff ffffffffffffffffffffff3f6583ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff6583ffffffffffffffffffffffffffffff ffffffffffffffffffffffffff3f6583ffffffffffffffffffffffffffff ffffffffffffffffffffffffffff3f658383ffffffffffffffffffffffff ffffffffffffffffffffffffffffffff3f83ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff6583ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff3f3f6583ffffffffffffffff ffffffffffffffffffffffffffffffffffff3f3f656583ffffffffffffff ffffffffffffffffffffffffffffffffffff3f3f656583ffffffffffffff ffffffffffffffffffffffffffffffffffffff3f656583ffffffffffffff ffffffffffffffffffffffffffffffffffffffff3f656583ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff3f658383ffffffff ffffffffffffffffffffffffffffffffffffffffffffff3f836583ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff83ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 160 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rod-heavy.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff ffffffffffffffffffffffffff0000cb40616100ffffffffffffffffffff ffffffffffffffffffffffffff0000404061cb7f7f00ffffffffffffffff ffffffffffffffffffffffffff0000404061b2b2b2e2a1bf00ffffffffff ffffffffffffffffffffffffff000040406161b27fa1a1e2bfa100ffffff ffffffffffffffffffffffffff0000404061617f7fb2a1bfbfa10000ffff ffffffffffffffffffffffffff0000404061617fb2b2b2bfbfa10000ffff ffffffffffffffffffffffffff000040406161cbcbb2a1bfbfa10000ffff ffffffffffffffffffffffffff000040cbcb61cbcba1a1bfbfa10000ffff ffffffffffffffffffffffffff000040406161cbcba1a1bfbfa10000ffff ffffffffffffffffffffffffff0000404061cb7f7fa1e2bfbfa10000ffff ffffffffffffffffffffffffff0000404061cb7fcba1a1bfe2a10000ffff ffffffffffffffffffffffffff0000404061cbb2cba1a1e2bfa10000ffff ffffffffffffffffffffffffffffff000061617fcbb2b2e2bfa10000ffff ffffffffffffffffffffffffffffffffff0040007fa1a1e2bfa10000ffff ffffffffffffffffffffffffffffffffffffff00404000bfbfa10000ffff ffffffffffffffffffffffffffffffffffffffffffff004000a10000ffff ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rod-light.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff ffffffffffffffffffffffffffff000040616100ffffffffffffffffffff ffffffffffffffffffffffffffff0000cb61617f7f00ffffffffffffffff ffffffffffffffffffffffffffff0000406161b27fa1a1bf00ffffffffff ffffffffffffffffffffffffffff00004061617f7fe2a1bfbf00ffffffff ffffffffffffffffffffffffffff0000cb61617f7fa1a1cbbf0000ffffff ffffffffffffffffffffffffffff0000406161e27fa1a1bfbf0000ffffff ffffffffffffffffffffffffffff00004061617f7fb2a1bfbf0000ffffff ffffffffffffffffffffffffffff0000a661617f7fa1a1e2bf0000ffffff ffffffffffffffffffffffffffff0000406161cb7fa1a1bfbf0000ffffff ffffffffffffffffffffffffffff00004061617f7fe2a1bfbf0000ffffff ffffffffffffffffffffffffffffff000061407f7fa1a1b2bf0000ffffff ffffffffffffffffffffffffffffffffff0040007fa1a1bfbf0000ffffff ffffffffffffffffffffffffffffffffffffff00404000bfbf0000ffffff ffffffffffffffffffffffffffffffffffffffffffff0040000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 192 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: claypipe.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff375615ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff685637ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff92568affffffffffffffffffffffffffffffffffffffffff ffffffffffffff15158affffffffffffffffffffffffffffffffffffffff ffffffffffffff8a565656ffffffffffffffffffffffffffffffffffffff ffffffffffffffff6856158affffffffffffffffffffffffffffffffffff ffffffffffffffffff8a56568affffffffffffffffffffffffffffffffff ffffffffffffffffffff68567068ffffffffffffffffffffffffffffffff ffffffffffffffffffffff56707068ffffffffffffffffffffffffffffff ffffffffffffffffffffffff377c5668ffffffffffffffffffffffffffff ffffffffffffffffffffffffff37707068ffffffffffffffffffffffffff ffffffffffffffffffffffffffff377c7068ffffffffffffffffffffffff ffffffffffffffffffffffffffffff68707068ffffffffffffffffffffff ffffffffffffffffffffffffffffffff8a567c15ffffffffffffffffffff ffffffffffffffffffffffffffffffffffff157c56ffffffffffffffffff ffffffffffffffffffff9270ffffffffffffff157c7068ffffffffffffff ffffffffffffffffffffff15376915ffffffffff37561537ffffffffffff ffffffffffffffffffffffff155637697c37ffffff8a565615ffffffffff ffffffffffffffffffffffffff3737151569707068ffff1556568affffff ffffffffffffffffffffffffffffff151515377c7070703737155615ffff ffffffffffffffffffffffffffffffff8a1515377c70707070567c7015ff ffffffffffffffffffffffffffffffffffff373715697070707070707070 68ffffffffffffffffffffffffffffffffffffff8a567c70707070707070 7037ffffffffffffffffffffffffffffffffffffffffffff375670707070 707070ffffffffffffffffffffffffffffffffffffffffffffffffffff37 5656705615ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff568affffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gu-horn.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff000000ffffffff000000ff00 0000ffffffffffffffffffffffffffffffffffff000000ffffffff000000 ff000000ffffffffffffffffffffffffffffffffffff0000000000ffff00 0000ff000000ffffffffffffffffffffffffffffffffffff0000000000ff ff000000ff000000ffffffffffffffffffffffffff000000ffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffff00000000ffffff ffffffffff004800ff000000ffffffffffffffffffffffffff00000000ff ffffffff00000048a51dff000000ffffffffffffffffffffffffffff0000 00ffffffffff1d64a5644800ff000000ffffffffffffffff0000ffffffff ffffffffffffff0064caa548ffffffffffffffffffffffffffff00000000 ffffffffffffffff1d48cae248ffffffffffffffffffffffffffffff0000 0000ffffffffff00000064e2ffca48ffffff000000ffffffffffffffffff ff000000ffffffffff1da5a5cacade481dffffff000000ffffff000000ff ffffffffffffffffffff4864cadee2a5481dffffffff00000000ffff0000 000000ffffffffffffff001da5cae2dede801dffffffffffff000000ffff 0000000000ffffffffffff0000a5cacacaca481d00ffffffffffff000000 ffffffff000000ffffffffffff1da5deffdeca481dffffffffffffffffff ffffffffffffffffffffffffff4864a5cadededeca48ffffffffff000000 ffffffffffffffffffffffffff0048a5cacacacacacaa51dffffffffff00 000000ffffffffffffffffffffff0048a5e2cadeffcacaa50000ffffffff ff00000000ffffffffffffffffffffff48a5cacacae2dede801d00ffffff ffffffff000000ffffffffffffffffffff48a5dedededecadea51dffffff ffffffffffffffffffffffffffffffffff001dcadedeffdedecaa51dffff ffffff000000ffffffffffffffffffffffffff48cacacacacacacaa50000 ffffffffff00000000ffffffffffffffffffffffff1dcacacacacacae2a5 00ffffffffffff00000000ffffffffffffffffffffffff48cacacacacaca a54800ffffffffffffffff0000ffffffffffffffffffffffff00a5cacaca caa548ffffffff000000ffffffffffffffffffffffffffffffffff0000a5 cacaca1d1dffffffff00000000ffffffffffffffffffffffffffffffffff 001d1d1d4800ffffffffff00000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: gu-horn.114.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffff000000ffffffff000000ff00 0000ffffffffffffffffffffffffffffffffffff000000ffffffff000000 ff000000ffffffffffffffffffffffffffffffffffff0000000000ffff00 0000ff000000ffffffffffffffffffffffffffffffffffff0000000000ff ff000000ff000000ffffffffffffffffffffffffff000000ffffffff0000 00ffffffffffffffffffffffffffffffffffffffffffff00000000ffffff ffffffffff004800ff000000ffffffffffffffffffffffffff00000000ff ffffffff00000048a51dff000000ffffffffffffffffffffffffffff0000 00ffffffffff1d64a5644800ff000000ffffffffffffffff0000ffffffff ffffffffffffff0064caa548ffffffffffffffffffffffffffff00000000 ffffffffffffffff1d48cae248ffffffffffffffffffffffffffffff0000 0000ffffffffff00000064e2ffca48ffffff000000ffffffffffffffffff ff000000ffffffffff1da5a5cacade481dffffff000000ffffff000000ff ffffffffffffffffffff4864cadee2a5481dffffffff00000000ffff0000 000000ffffffffffffff001da5cae2dede801dffffffffffff000000ffff 0000000000ffffffffffff0000a5cacacaca481d00ffffffffffff000000 ffffffff000000ffffffffffff1da5deffdeca481dffffffffffffffffff ffffffffffffffffffffffffff4864a5cadededeca48ffffffffff000000 ffffffffffffffffffffffffff0048a5cacacacacacaa51dffffffffff00 000000ffffffffffffffffffffff0048a5e2cadeffcacaa50000ffffffff ff00000000ffffffffffffffffffffff48a5cacacae2dede801d00ffffff ffffffff000000ffffffffffffffffffff48a5dedededecadea51dffffff ffffffffffffffffffffffffffffffffff001dcadedeffdedecaa51dffff ffffff000000ffffffffffffffffffffffffff48cacacacacacacaa50000 ffffffffff00000000ffffffffffffffffffffffff1dcacacacacacae2a5 00ffffffffffff00000000ffffffffffffffffffffffff48cacacacacaca a54800ffffffffffffffff0000ffffffffffffffffffffffff00a5cacaca caa548ffffffff000000ffffffffffffffffffffffffffffffffff0000a5 cacaca1d1dffffffff00000000ffffffffffffffffffffffffffffffffff 001d1d1d4800ffffffffff00000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: horn.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffadffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffadffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffadadffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffade2adffffffffffffffffffffffffffffff ffffffffffffffffffffffffffade2adadffffffffffffffffffffffffff ffffffffffffffffffffffffffadade2adadadffffffffffffffffffffad adffffffffffffffffffffadadadade2adadadadadffffffffffffffffff ffade2adadadadadadadadadffffade2adadadadadadadffffffffffffff ffffffadade2e2ade2adadadadadadade2adadadadadadadadffffffffff ffffffffffadadadadadadadadadadadadadade2adadadadadadadffffff ffffffffffffffadadffffffffade2ade2adadadadadffadadadadadadff ffffffffffffffffffffffffffffadadadadadffffadadadffffffadadad adffffffffffffffffffffffffffffade2adadffffffffffadadadffffff adadadffffffffffffffffffffffffffffadadadffffffffffffadadadff ffffffadadffffffffffffffffffffffffffffadadadffffffffffffade2 adffffffffffadffffffffffffffffffffffffffffadadadffffffffffff ade2adffffffffffadffffffffffffffffffffffffffffffadadadffffff ffade2adffffffffffffffffffffffffffffffffffffffffffffadadadad adadadadadadffffffffffffffffffffffffffffffffffffffffffffffad adadadadadadadffffffffffffffffffffffffffffffffffffffffffffff ffffffadadadadffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: shellhorn1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff484848ffff48484848 94ffffff48484848ffffffffffffffffffffffffffffffffff4848614848 48484a5250484848484848ffffffffffffffffffffffffffffffff484848 48484848464848485a595b5a484848ffffffffffffffffffffffffffffff 48484848394148485c484848484861484848ffffffffffffffffffffffff ffffffffff9b374848594848484848485c5848484dffffffffffffffffff ffffffffffffffff4448575d48484848836a5955484848ffffffffffffff ffffffffffffffffffff4c48485b48484848645a574848484848ffffffff ffffffffffffffffffffffff3f484857585b59575648484848484848ffff ffffffffffffffffffffffffffff7747484848484848484a3f4439485968 ffffffffffffffffffffffffffffffffff5d4448483b48433c5a78725748 48915dffffffffffffffffffffffffffffffffffff60422d334448616c61 4848483e3effffffffffffffffffffffffffffffffffffffff2e30484848 48484848483e482a68ffffffffffffffffffffffffffffffffffff323048 4848484848484e3e4848484870ffffffffffffffffffffffffffffffff7c 304848484848484b49484848484848486098ffffffffffffffffffffffff ffff4848484848484448484848484848483e3136ffffffffffffffffffff ffffffffff484848484848484848484848484821134affffffffffffffff ffffffffffffffff48484848484848484248481f121a68ffffffffffffff ffffffffffffffffffffff7c484848484848484850598fffffffffffffff ffffffffffffffffffffffffffffffa1484848488bffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: shellhorn1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff484848ffff48484848 94ffffff48484848ffffffffffffffffffffffffffffffffff4848614848 48484a5250484848484848ffffffffffffffffffffffffffffffff484848 48484848464848485a595b5a484848ffffffffffffffffffffffffffffff 48484848394148485c484848484861484848ffffffffffffffffffffffff ffffffffff9b374848594848484848485c5848484dffffffffffffffffff ffffffffffffffff4448575d48484848836a5955484848ffffffffffffff ffffffffffffffffffff4c48485b48484848645a574848484848ffffffff ffffffffffffffffffffffff3f484857585b59575648484848484848ffff ffffffffffffffffffffffffffff7747484848484848484a3f4439485968 ffffffffffffffffffffffffffffffffff5d4448483b48433c5a78725748 48915dffffffffffffffffffffffffffffffffffff60422d334448616c61 4848483e3effffffffffffffffffffffffffffffffffffffff2e30484848 48484848483e482a68ffffffffffffffffffffffffffffffffffff323048 4848484848484e3e4848484870ffffffffffffffffffffffffffffffff7c 304848484848484b49484848484848486098ffffffffffffffffffffffff ffff4848484848484448484848484848483e3136ffffffffffffffffffff ffffffffff484848484848484848484848484821134affffffffffffffff ffffffffffffffff48484848484848484248481f121a68ffffffffffffff ffffffffffffffffffffff7c484848484848484850598fffffffffffffff ffffffffffffffffffffffffffffffa1484848488bffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: violin.x11.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image e292b1c6faffffffffffffffffffffffffffffffffffffffffffffffffff ffffcf414357b8f8ffffffffffffffffffffffffffffffffffffffffffff ffffffffc236393d59b9f8ffffffffffffffffffffffffffffffffffffff fffffffffffffa9e35383f67bffaffffffffffffffffffffffffffffffff fffffffffffffffffff6a33c415470bcfdfffffffeffffffffffffffffff fffffffffffffffffffffffff5ad53535a6cb7fffcf5e7ebede8f1f9ffff fffffffffffffffffffffffffffffff5b25e535968add3afa595908991be f9fffffffffffffffffffffffffffffffffff7ba65535a637c8b8f909090 8f8bbffbfffffffffffffffffffffffffffffffffff9c268535963778c8e 8c8c8d8da1f1fffffffffffffffffffffffffffffffffffff8a155505962 74888b8b8b8a8fd2ffffffffffffffffffffffffffffffffffffe397654e 50586173878b868284b0fbffffffffffffffffffffffffffffffffffdd8b 6a624f4f58606f7b775f6b85bffffefffffffffffffffffffffffffffff5 ad72696963504e58607a73232b577fb5c2ebfcffffffffffffffffffffff fffdbb7469696963504d577eb14b514f77777c8aabdae8ffffffffffffff fffffffdbf7669696969645e6c96cab4702f525c4a797b7c94e6ffffffff fffffffffffbbd7669696968646796b6c3cdbb71324d3f6f72787a98e9ff fffffffffffffffec8836e696968531e428cb9c4ccbd76585169696e7787 d7feffffffffffffffffcb86797070695f344b6196b8c3ccc28269696969 6d7aa9f5fffffffffffffffff3b67f6b776e724a332f4f92b6c3ca8a6269 6969697597ecfffffffffffffffffff6b9a47f73787668522d528faf8c47 3d5c686969738fe3fffffffffffffffffffff9f4d8d39d77745b3e3b687f 4d33363c6169697188dffffffffffffffffffffffffffdfdeea47758494a 66675137333856636a7784ceffffffffffffffffffffffffffffffec9570 636368696651322c2d445b7882ccfefffffffffffffffffffffffffffff4 97736969696968552b2220333565aaf1ffffffffffffffffffffffffffff ffffe8896f69696966492121213b254abbffffffffffffffffffffffffff fffffffee58d7169696966422121293f2566dcffffffffffffffffffffff fffffffffffffcd07f716b6a6429212131214ebbfcffffffffffffffffff fffffffffffffffffdd6867673746c37232751609ef6ffffffffffffffff fffffffffffffffffffffffacc8a7d7b715a3e529cbaeeffffffffffffff fffffffffffffffffffffffffffffad9c6a79d9e98ace5ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 3821 a Fz(These)38 b(items)d(pro)m(vide)h(use)h(of)e (sp)s(ells.)53 b(W)-8 b(ands)36 b(ha)m(v)m(e)h(a)f(limited)d(n)m(um)m (b)s(er)j(of)f(c)m(harges,)j(while)227 3937 y(horns)44 b(and)f(ro)s(ds)g(will)e(rec)m(harge)j(\(but)f(don't)g(\034re)g(as)h(m) m(uc)m(h)f(damage)f(in)g(a)h(small)e(amoun)m(t)227 4053 y(of)c(time\).)56 b(Horns)38 b(are)f(used)h(at)f(the)g(o)m(v)m(erall)g (lev)m(el)f(of)h(abilit)m(y)e(of)i(the)g(user,)j(while)c(ro)s(ds)h(and) 227 4169 y(w)m(ands)d(cast)f(sp)s(ells)f(at)g(the)h(item)e(lev)m(el.) 374 4402 y Fy(Rings:)42 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ring.110.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff a6a6a6ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffa6adadada6ffffffffffffffffffffffffffffffffffffffffffffffff ffffa6ad4d4d4dada6ffffffffffffffffffffffffffffffffffffffffff ffffffa6a6ad4da34dada6a6ffffffffffffffffffffffffffffffffffff ffffffffa6cbadadad4dadadadada6ffffffffffffffffffffffffffffff ffffffffffffffa6adadadadadcbcba6ffffffffffffffffffffffffffff ffffffffffffffffffa6adcbada6cbadada6ffffffffffffffffffffffff ffffffffffffffffffffa6cbada6a6ffa6a6adada6ffffffffffffffffff ffffffffffffffffffffffffa6ada6ffffffffffa6ada6ffffffffffffff ffffffffffffffffffffffffffa6adada6ffffffffffa6adada6ffffffff ffffffffffffffffffffffffffffffa6ada6ffffffffffffffa6cba6ffff ffffffffffffffffffffffffffffffffffa6adada6ffffffffffa6adada6 ffffffffffffffffffffffffffffffffffffffffa6ada6ffffffffffa6ad a6ffffffffffffffffffffffffffffffffffffffffffa6adcba6a6ffa6a6 adada6ffffffffffffffffffffffffffffffffffffffffffffa6adadada6 adadcba6ffffffffffffffffffffffffffffffffffffffffffffffffa6a6 cbadada6a6ffffffffffffffffffffffffffffffffffffffffffffffffff ffffa6a6a6ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ring-drain.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a1a 1a1affffffffffffffffffffffffffffffffffffffffffffffffffff1a1e 1e51511e1e1effffffffffffffffffffffffffffffffffffffffffffff1e 1e5a5a5a5a5a5a211effffffffffffffffffffffffffffffffffffffffff 1c5121636363636363245a1cffffffffffffffffffffffffffffffffffff ff19515a63276c6c6c6c2b63635a1cffffffffffffffffffffffffffffff ffffff1c5a27272b757575752e2b27631fffffffffffffffffffffffffff ffffffff1d512427ff2e327f7f3232ff2b275a20ffffffffffffffffffff ffffffffffff1d2024ffffff32363636ffffff272420ffffffffffffffff ffffffffffffffff1d20ffffffffffffffffffffffff2420ffffffffffff ffffffffffffffffffff1d20ffffffffffffffffffffffff2420ffffffff ffffffffffffffffffffffff1d20ffffffffffffffffffffffff2420ffff ffffffffffffffffffffffffffff1d20ffffffffffffffffffffffff2420 ffffffffffffffffffffffffffffffffff1d20ffffffffffffffffffff24 20ffffffffffffffffffffffffffffffffffff1d20ffffffffffffffffff ff2020ffffffffffffffffffffffffffffffffffffff1d2020ffffffffff ff242020ffffffffffffffffffffffffffffffffffffffffff1d1d202020 202020201dffffffffffffffffffffffffffffffffffffffffffffffff1d 1d1d1d1d1dffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 280 4518 a Fz(Man)m(y)55 b(di\033eren)m(t)e(t)m(yp)s(es,) 59 b(rings)53 b(can)g(b)s(e)h(w)m(orn)f(to)g(add/remo)m(v)m(e)h (di\033eren)m(t)f(imm)m(unities,)227 4634 y(gain/lose)31 b(sp)s(ell)h(P)m(aths)h(and)g(alter)e(all)g(t)m(yp)s(es)j(of)e(stats.) 374 4867 y Fy(F)-9 b(o)s(o)s(d/Flesh:)44 b @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: apple.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff687968 79ffffffffffffffffffffffffffffffffffffffffffffffffffffff7979 6868ffffffffffffffffffffffffffffffffffffffffffffffff8266ffff 686879ffffffffffffffffffffffffffffffffffffffffffffffffffffff 826679ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff82ffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ff66ff00000000ffffffffffffffffffffffffffffffffffffff ffff004e4e4e004e004d4e4d0000ffffffffffffffffffffffffffffffff ffffff004e4e4d4d4e004e4d4d4d4d00ffffffffffffffffffffffffffff ffffffff004e4e4d4e4e4d4e4d4d4ee24d4e00ffffffffffffffffffffff ffffffffffff004e4e4e4e4d4e4d4e4de24e4d4d00ffffffffffffffffff ffffffffffffffff004e4d4e4e4e4e4e4e4d4d4de24d00ffffffffffffff ffffffffffffffffffff004e4e4e4d4e4d4e4d4e4d4d4e4d00ffffffffff ffffffffffffffffffffffff004e4e4e4e4e4e4d4d4d4e4d4d4d00ffffff ffffffffffffffffffffffffffffff004e4e4d4e4d4e4d4e4d4d4e4e00ff ffffffffffffffffffffffffffffffffff004d4e4e4e4e4e4d4e4d4e4d00 ffffffffffffffffffffffffffffffffffffffff004e4e4d4e4d4e4d4e4d 4e00ffffffffffffffffffffffffffffffffffffffff004e4e4e4e4e4d4e 4d4d00ffffffffffffffffffffffffffffffffffffffffffff004d4e4e4d 4e4e4d4e00ffffffffffffffffffffffffffffffffffffffffffffff004e 4e4e4e4e4e00ffffffffffffffffffffffffffffffffffffffffffffffff ff000000000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: apple-eighth.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffff004d4e4d0000ffffffffffffffffffffffffffffffff ffffffffffffffffffff0000004d4d00ffffffffffffffffffffffffffff ffffffffffffffffffffffff00e100004d4e00ffffffffffffffffffffff ffffffffffffffffffffffffffff00e1e1e1004d00ffffffffffffffffff ffffffffffffffffffffffffffffffff00e1e1e1004d00ffffffffffffff ffffffffffffffffffffffffffffffffffff00e1e1e1004d00ffffffffff ffffffffffffffffffffffffffffffffffffffff002ce1e1004d00ffffff ffffffffffffffffffffffffffffffffffffffffffff002ce1e1004e00ff ffffffffffffffffffffffffffffffffffffffffffffff00e1e1e1e10000 ffffffffffffffffffffffffffffffffffffffffffffffffff00e1e1e100 4e00ffffffffffffffffffffffffffffffffffffffffffffffffff00e1e1 e10000ffffffffffffffffffffffffffffffffffffffffffffffffffff00 e1e1004e00ffffffffffffffffffffffffffffffffffffffffffffffffff ff00e1e10000ffffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: apple-fourth.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffff004e4e4d4d00ffffffffffffffffffffffffffffffffffffff ffffffffffff004e4d4d4e4d4d00ffffffffffffffffffffffffffffffff ffffffffffffffff00000000004d4d00ffffffffffffffffffffffffffff ffffffffffffffffffff00e1e1e100004d4e00ffffffffffffffffffffff ffffffffffffffffffffffff00e1e1e1e1e1004d00ffffffffffffffffff ffffffffffffffffffffffffffff00e1e1e1e1e1004d00ffffffffffffff ffffffffffffffffffffffffffffffff002ce1e1e1e1004d00ffffffffff ffffffffffffffffffffffffffffffffffff002c2ce1e1e1004d00ffffff ffffffffffffffffffffffffffffffffffffffff002ce1e1e1e1004e00ff ffffffffffffffffffffffffffffffffffffffffffff00e1e1e1e1e10000 ffffffffffffffffffffffffffffffffffffffffffffffff00e1e1e1e100 4e00ffffffffffffffffffffffffffffffffffffffffffffffff00e1e1e1 e10000ffffffffffffffffffffffffffffffffffffffffffffffffff00e1 e1e1004e00ffffffffffffffffffffffffffffffffffffffffffffffffff 00e1e1e10000ffffffffffffffffffffffffffffffffffffffffffffffff ffff0000000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: apple-half.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff687968 79ffffffffffffffffffffffffffffffffffffffffffffffffffffff7979 6868ffffffffffffffffffffffffffffffffffffffffffffffff8266ffff 686879ffffffffffffffffffffffffffffffffffffffffffffffffffffff 826679ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff82ffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ff66ff00000000ffffffffffffffffffffffffffffffffffffff ffff00e1e1e1004e004d4e4d0000ffffffffffffffffffffffffffffffff ffffff00e1e1e1e1e1000000004d4d00ffffffffffffffffffffffffffff ffffffff00e1e1e1e1e1e1e1e1e100004d4e00ffffffffffffffffffffff ffffffffffff00e1e1e1e1e1e1e1e1e1e1e1004d00ffffffffffffffffff ffffffffffffffff00e1e1e1e1e1e1e1e1e1e1e1004d00ffffffffffffff ffffffffffffffffffff00e1e1e1e12ce12ce1e1e1e1004d00ffffffffff ffffffffffffffffffffffff00e1e1e12c2ce12c2ce1e1e1004d00ffffff ffffffffffffffffffffffffffffff00e1e1e12ce12ce1e1e1e1004e00ff ffffffffffffffffffffffffffffffffff00e1e1e1e1e1e1e1e1e1e10000 ffffffffffffffffffffffffffffffffffffffff00e1e1e1e1e1e1e1e100 4e00ffffffffffffffffffffffffffffffffffffffff00e1e1e1e1e1e1e1 e10000ffffffffffffffffffffffffffffffffffffffffffff00e1e1e1e1 e1e1004e00ffffffffffffffffffffffffffffffffffffffffffffff00e1 e1e1e1e10000ffffffffffffffffffffffffffffffffffffffffffffffff ff000000000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bag-popcorn.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00e2ff 0000ff000000ffffffffffffffffffffffffffffffffffffffffffff00e2 e2e2ffe2e2e2ffe200ffffffffffffffffffffffffffffffffffffffff00 e2e2ff00e2ffe2ff00e2ff00ffffffffffffffffffffffffffffffffffff ff0000ff00e200e2ff00e2ffe200ffffffffffffffffffffffffffffffff ffffff000d00e200e2ffe2ff00ff00ffffffffffffffffffffffffffffff ffffffffff00201b00ffffe2ff00ff000000ffffffffffffffffffffffff ffffffffffffff000c201b000000000000000000ffffffffffffffffffff ffffffffffffffffff0007112019323c404548484500ffffffffffffffff ffffffffffffffffffffff00050f162f404a4d4d4d4d4500ffffffffffff ffffffffffffffffffffffffff000a1919233e4a4d4d4d4d4500ffffffff ffffffffffffffffffffffffffffff000a1620203c4a4d4d4d4d4500ffff ffffffffffffffffffffffffffffffffff000f201e23394a4d4d4a4a4300 ffffffffffffffffffffffffffffffffffffff00191e252539484a4a4a4a 4300ffffffffffffffffffffffffffffffffffffff001120252539434545 45454000ffffffffffffffffffffffffffffffffffffff001111162a393e 404043433e00ffffffffffffffffffffffffffffffffffffff000d070c25 3439393c3c3e3600ffffffffffffffffffffffffffffffffffffffff0002 051620282d2d2f320000ffffffffffffffffffffffffffffffffffffffff ff00000000001900000000ffffffffffffffffffffffffffffffffffffff ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: blackroot.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffff00282828 282800ffffffffffffffffffffffffffffffffffffffffffffff0000ffff 002828282800ffffffffffffffffffffffffffffffffffffffffffffffff ffffffff28282828ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff0028282800ffffffffff00ffffffffffffffffffffffffff ffffffffffffffffff002828282828280000ffffffffffffffffffffffff ffffffffffffffffffff0000282828282800ffffffffffffffffffffffff ffffffffffffffffffffffff0028280000ffffffffffffffffffffffffff ffffffffffffffffffffffffff0028262800ffffffffffffffffffffffff ffffffffffffffffffffffffff00002828262800ffffffffffffffffffff ffffffffffffffffffffffff000000282828282800ffffffffffffffffff ffffffffffffffffffffffffff002828280028262800ffffffffffffffff ffffffffffffffffffffffffffff0000000000ff002800ffffffffffffff ffffffffffffffffffffffffffff000000ff0000ffff00002800ffffffff ffffffffffffffffffffffffffffff000028ffff002800ffffff0028ffff ffffffffffffffffffffffffffffffffff00ffffffff00000000ffff0000 00ffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffff 00ff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: cabbage.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff68ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff6800 6868ffffffffffffffffffffffffffffffffffffffffffffffffffff6868 686868686868ffffffffffffffffffffffffffffffffffffffffffffff68 006868009568009568ffffffffffffffffffffffffffffffffffffffffff 6868686800956895680068ffffffffffffffffffffffffffffffffffffff ff00686895689568950068950068ff68ffffffffffffffffffffffffffff ff0000689568680068950068006868006868ffffffffffffffffffffffff ffffff0068956895680095686868686868680068ffffffffffffffffffff ffffffff0068956895686895006895bd95bd95bd680068ffffffffffffff ffffffffffff00956895689568686895689568956895686800ffffffffff ffffffffffffff00956895689568686895bd956895bd956895680068ffff ffffffffffffffffff006895689568956800689568956895689568956868 ffffffffffffffffffffff00956895689568006895bd95bd95bd95bd95bd 6868ffffffffffffffffffffff0068956895689568956895689568956895 68956868ffffffffffffffffffffff00956895689568006895bd956895bd 9568956868ffffffffffffffffffffffff00689568956895689568956895 68956895686868ffffffffffffffffffffffffff00689568956895689568 9568956895689568ffffffffffffffffffffffffffff0000686868956895 689568956895689568ffffffffffffffffffffffffffffffffff00006868 6868956895689568686868ffffffffffffffffffffffffffffffffffffff 000000686868686868686868ffffffffffffffffffffffffffffffffffff ffffffff0000000000000000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: cake.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ff00ffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffff00ffffffffffffffffffffffffffffffffffffff ffffffff0000ffff4d4dffff00ffffffffffffffffffffffffffffffffff ffffff000000ffffff4da74d4effff00ffffffffffffffffffffffffffff ffffff0000ffffffffffff4d4d4d4effff00ffffffffffffffffffffffff ffffff0000bdffffffffffffffff4e4effffff00ffffffffffffffffffff ffffffffff6682bdbdbdbdbdffffffffffffffffffff00ffffffffffffff ffffffffffffff668282ad8282bdbdbdbdbdffffffffffff00ffffffffff ffffffffffffffffff66a7ad8282adad828282bdbdbdbdbdffff00ffffff ffffffffffffffffffffff66cacaa7caca8282adad8282ad82bdbdbdbdff ffffffffffffffffffffffffff6682ad82a7caa7caa7ca82adad82adad82 66ffffffffffffffffffffffffffff666682ad82ad8282cacaa7cacaca82 ad8266ffffffffffffffffffffffffffffffff6666666682ad82ad82ada7 caa7caca66ffffffffffffffffffffffffffffffffffffffff6666666682 ad82ad82caa766ffffffffffffffffffffffffffffffffffffffffffffff ff66666666adad8266ffffffffffffffffffffffffffffffffffffffffff ffffffffffffff66666666ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: carrot.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff0000000000000000ffffffff ffffffffffffffffffffffffffffffffffffff0095009595009500950000 0000ffffffffffffffffffffffffffffffffffff00956895689595956800 6895959500ffffffffffffffffffffffffffffffff009568950095009500 956895689568950000ffffffffffffffffffffffffff0095689500ff00ff 00ff00956895009500956800ffffffffffffffffffffffff0066666600ff ffffffffff00006895680068000000ffffffffffffffffffffff00956895 00000000ffffffff0095006895689500ffffffffffffffffffffffff0068 95689568959500ffffff956895680095689500ffffffffffffffffffffff 0095ff95ff95ff00000000ff009568956800000000ffffffffffffffffff ffff009568ff6895000000ad00ffff00000000950000ffffffffffffffff ffffffffff006895ff0000ad0000ad0000ff00956800ffff00ffffffffff ffffffffffffff009500000000adad0000ad00ffff0000ffffffffffffff ffffffffffffffffffff000000ad000000ad00adad0000ff00ffffffffff ffffffffffffffffffffffffff00adad000000ad000000ad00ffffffffff ffffffffffffffffffffffffffffff00ad00adad0000adad00adad0000ff ffffffffffffffffffffffffffffffffff000000ad00adad00ad000000ad 00ffffffffffffffffffffffffffffffffffffff00000000adad0000adad 00adad00ffffffffffffffffffffffffffffffffffffffff00000000adad 00ad0000ad00ffffffffffffffffffffffffffffffffffffffffffff0000 00adad00adad00ad00ffffffffffffffffffffffffffffffffffffffffff ff00000000ad0000ad0000ffffffffffffffffffffffffffffffffffffff ffffffffffff0000000000ad00ffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ff000000ffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ch-burger.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff7a7ab3b3 b3b3b3b3b3b3b3b3ffffffffffffffffffffffffffffffffffff7a7a69b3 b3b3b3b3b3b3b3b3b3b3ffffffffffffffffffffffffffffffffff2d4669 69696969b3b3b3b3b3b3b3b3b3b3ffffffffffffffffffffffffffff0f2d 2d2d2d46466969697ab3b3b3b3b3b3b3b3ffffffffffffffffffffffffff 0f0f0f0f2d2d2d2d6969696969696987b3b3b3ffffffffffffffffffffff ffff2d0f0f0f0f0f2d2d2d2d2d2d2d2d2d2d467a7affffffffffffffffff ffffffa32d0f0f0f0f0f2d2d2d462d46462d462d0f0fcba3a3ffffffffff ffffffffffffa37a0f000f0f0f0f0f0f0f0f0f2d7aa32d2d2dffffffffff ffffffffffffffffa32d2d2dcbcbcb467a7a2d2d7a7a2d7a2d2d2ddff4ff ffffffffffffffffffffff7a54f40f0f0f2d2d2d2d0f0f2d69cbcbcbdfff ffffffffffffffffffffffffd754547acb7a7acbcbcbcbdfdf7a7a547acb cbffffffffffffffffffffffffffff2d2d2d0f2d2d6969697a7ab3b3b3b3 6969b3ffffffffffffffffffffffffffff2d2d2d2d0f2d2d696969696969 6969697a7affffffffffffffffffffffffffffff2d0f0f2d2d2d2d466969 696969697a7affffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: chocolate.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff66666666666666666666 666666ffffffffffffffffffffffffffffffffffffff6682668266826682 6682668266ffffffffffffffffffffffffffffffffffffff666682828282 82828282826666ffffffffffffffffffffffffffffffffffffff66828282 668266826682828266ffffffffffffffffffffffffffffffffffffff6666 8266826682668266826666ffffffffffffffffffffffffffffffffffffff 66828282668266826682828266ffffffffffffffffffffffffffffffffff ffff66668266826682668266826666ffffffffffffffffffffffffffffff ffffffff66828282668266826682828266ffffffffffffffffffffffffff ffffffffffff66668266826682668266826666ffffffffffffffffffffff ffffffffffffffff66828282668266826682828266ffffffffffffffffff ffffffffffffffffffff66668266826682668266826666ffffffffffffff ffffffffffffffffffffffff66828282668266826682828266ffffffffff ffffffffffffffffffffffffffff66668266826682668266826666ffffff ffffffffffffffffffffffffffffffff66828282668266826682828266ff ffffffffffffffffffffffffffffffffffff666682668266826682668266 66ffffffffffffffffffffffffffffffffffffff66828282668266826682 828266ffffffffffffffffffffffffffffffffffffff6666826682668266 8266826666ffffffffffffffffffffffffffffffffffffff668282826682 66826682828266ffffffffffffffffffffffffffffffffffffff66668266 826682668266826666ffffffffffffffffffffffffffffffffffffff6682 8282828282828282828266ffffffffffffffffffffffffffffffffffffff 66668266826682668266826666ffffffffffffffffffffffffffffffffff ffff66666666666666666666666666ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: clover.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff68686868ffff ffffffffffffffffffffffffffffffffffffffffffffffffff6879797979 68ffffffffffffffffffffffffffffffffffffffffffffffffffff687979 79797968ffffff686868ffffffffffffffffffffffffffffffffffffff68 797979797968ffff6868797968ffffffffffffffffffffffffffffffffff ff68797979797968ff68797979797968ffffffffffffffffffffffffffff ffffffff686879797968ff68797979797968ffffffffffffffffffffffff ffffffffffffffff68686868ff68797979797968ffffffffffffffffffff ffffffffffffffffffffffffff6868686868686868ffffffffffffffffff ffffffffffffffffffff68686868687968ffffffffffffffffffffffffff ffffffffffffffffffffff687979797979687968ffffffffffffffffffff ffffffffffffffffffffffffff68797979797968ff6879ffffffffffffff ffffffffffffffffffffffffffffff68797979797968ffff68ffffffffff ffffffffffffffffffffffffffffffffff686879797968ffffff6868ffff ffffffffffffffffffffffffffffffffffffffffff686868ffffffffff79 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff6868ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff79ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff68ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff68ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: coffee.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff 0000ffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff ffff00ffffffffffffffffffffffffffffffffffffffffffff00ffff00ff ffff0000ffffffffffffffffffffffffffffffffffffffffffff00ffffff ff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff00 000000ff000000ffffffffffffffffffffffffffffffffffffffffffffff 000000ffff00ffffff0000ffffffffffffffffffffffffffffffffffffff ff00ffffff000000000000ffff00ffffffffffffffffffffffffffffffff ffff00ffff000000000000000000ffff00ffffffffffffffffffffffffff ffffffff00ffff000000000000000000ffff00000000ffffffffffffffff ffffffffffff0000ffffff0000000000ffffff0000ffffff00ffffffffff ffffffffffffffff00ff0000ffffffffffffff0000ff000000ff00ffffff ffffffffffffffffffff00b2ffff00000000000000ffffb2000000ff00ff ffffffffffffffffffffffff00ffb2b2ffffffffffffffb2b2ff0000ffff 00ffffffffffffffffffffffffffff00ffffb2b2b2b2b2b2b2ffff00ffff 0000ffffffffffffffffffffffffffffff00ffffffffffffffffffffff00 0000ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: dead-neko.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff0000000000000000000000ffffffffffffffff ffffffffffffffffffffffff00007fbfbfbf7f3ebfbf7f00ffffffffffff ffffffffffffffffffffffffffff007fbfffbf7f7f7f7fffbf00ffffffff ffffffffffffffffffff00ff000000ff007fffbf3e1dbfbf3ebf3e00ffff ffffffffffffffffffffffff4c004d3e000000007fffffffffffbf6800ff ffffffffffffffffffffffffffff00ff0000003ebf3e007fffffffffff3e 00ffffffffffffffffffffffffffffff3e004c4c001d7f7f6800ffffffff ff0e0000000000ffffff0000ffffffffffff3e004c4d4c3e007f7f7fffff ffffff480000683e1d00ff001d3e00ffffffffff00ff004d4d4c00007fff bfffffffff1d003effff7f00ff007fbf000000ffffff3e3e4c4d4d4d4d00 7fbf7fbfffffffbf7f0effff7f0000007fffbf3e00ffffff3e004d4d805b 4c003e7f7fbfffffffbf7f7fffbf001d7f003ebfff7f6800ffff4c3e4d4d d3bf68480e3effffffffbf3ebfffbf683e7fff7f1d00bfffbf3e00ff4d4d 4dd3ffffd3ff7f1dffffffbf1dbfbfbf3ebfffffffff7f000ebfffbf00ff 4c3e4d4da24da2d3bfbf3ebfffbf00bfbf68bfbfffffffffffbfbfffffbf 00ff3e004d4c3e4c4d7fbfff7f7fbfff7f7f7f7fffffbf7fffffffff7f7f 7f7f00ff4c3e4c00ff004d3e7fbfbf0e3ebfff7f7fbfffbf7f7fffffffbf 3e00000000ff3e4c00ff003e4d4d3e001d001d3effbf7f3ebf3e7fbfffff ffffbf6800ffffff003effff3e4d4d4d4d4cbf4c3e3e5b3e3e4c3e4c3e7f ffffbf0e3e0000ffffff003e003e4c3e4d4d80a2a24d4c3e4c3e4c3e3e3e 3e7fff7f7f481d00ffffffff4c4c3e4c4c3e4d4da2d34d4d4d4d004c3e3e 4c3ebfffff1d7fff3e0000ffffff3e3e4d4d4d4d4d4da2ff4d4d4d4d4d3e 3e4c00bfd3ffff3e7fffbf7f0000ffff4c4c004c4d4d4d4da2d34d4d4d4d d34c4c0000bfffffff0e007fffbf7f00ffff3e4c3e4c4c4d4d4da2a2a2d3 804da24c3e7fbfd3ffff7f1d00007fff7f00ffff3e004d004c4d4c4d4d4d d3d3a24d4c3ebfffbfbfbfbf000000003ebf7f00ffff0000004c4d4c004d 4d4d4d4d4d4c00bfbfbf0000000000ff007fbfff7f00ffff3e4c003e003e 4c4d4d4d4d4d4d4d4c3e3e3e0000000000007fbfff7f1d00ffff3e3e00ff 004c4d4c4c4d4d4d4d4d4c7f7f7f7fbf7fbf7f7fbfff7f0000ffffffffff ff004c4c4d004c4d4d4d4d4c007fbfbfbfbfbfbfbfbfbfbf0000ffffffff 0000004d3e00004c4d4d4d4d4d4c00000000000000000000000000ffffff ffff3e004c3e00ff003e003e4d4d4c0000ffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: fishfood.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffa7ffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffa7ffff ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffa7 a7ffffffffffffa768a7a7a7ffa7a7a7ffffffffffffffffffffffffffff ffa700a7ffffffa7a768a768a768a7a7ffffa7ffffffffffffffffffffff ffffffffa7a7ffa7a7a768a768a768a7a7ffffffffa7ffffffffffffffff ffffffffffffa768a768a768a7680068a7a7ffffffffffffa7ffffffffff ffffffffffffffffa7a768a768a76800a7a768a7ffffff00ffffa7ffffff ffffffffffffffffffffa768a768a76800a70068a700ffffffffffffa7ff ffffffffffffffffffffffffa7a7ffa7a7a76800a7a768a7a7ffff000000 ffffffffffffffffffffffffffa700a7ffffffa7a7680068a768a7a7ffff 00ffffffffffffffffffffffffffffa7a7ffffff00ffffa768a7a7a768a7 a7a7a7ffffffffffffffffffffffffffffa7ffffffffffffffff0000ffff ffffffffffffffffffffffffffffffffffffa7ffffffffffffffff0000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: food.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff003f6500ffffffffffffffffffffffffffffffffff ffffffffffffffffffffff003f938300ffffffffffffffffffffffffffff ffffffffffffffffffffffff003f52838300ffffffffffffffffffffffff ffffffffffffffffffffffff00003f52830000ffffffffffffffffffffff ffffffffffffffffffffffff00003f3f528300ffffffffffffffffffffff ffffffffffffffffffffff0000003f3f52528300ffffffffffffffffffff ffffffffffffffffffffff00002d3f3f525252658300ffffffffffffffff ffffffffffffffffffffff00002d2d3f52525265658300ffffffffffffff ffffffffffffffffffffffff002d2d3f3f5293656583838300ffffffffff ffffffffffffffffffffffffff002d2d3f835265656565838300ffffffff ffffffffffffffffffffffffffff002d2d3f52656583838383658300ffff ffffffffffffffffffffffffffffff002d2d3f52656565839383838300ff ffffffffffffffffffffffffffffffffff002d2d3f836565839383836583 00ffffffffffffffffffffffffffffffffffff002d2d3f52658393938365 8300ffffffffffffffffffffffffffffffffffffff002d2d3f5265658383 83658300ffffffffffffffffffffffffffffffffffffffff002d3f526565 6583838300ffffffffffffffffffffffffffffffffffffffffff00002d3f 526565656500ffffffffffffffffffffffffffffffffffffffffffffff00 003f5265650000ffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: food.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff003f6500ffffffffffffffffffffffffffffffffff ffffffffffffffffffffff003f938300ffffffffffffffffffffffffffff ffffffffffffffffffffffff003f52838300ffffffffffffffffffffffff ffffffffffffffffffffffff00003f52830000ffffffffffffffffffffff ffffffffffffffffffffffff00003f3f528300ffffffffffffffffffffff ffffffffffffffffffffff0000003f3f52528300ffffffffffffffffffff ffffffffffffffffffffff00002d3f3f525252658300ffffffffffffffff ffffffffffffffffffffff00002d2d3f52525265658300ffffffffffffff ffffffffffffffffffffffff002d2d3f3f5293656583838300ffffffffff ffffffffffffffffffffffffff002d2d3f835265656565838300ffffffff ffffffffffffffffffffffffffff002d2d3f52656583838383658300ffff ffffffffffffffffffffffffffffff002d2d3f52656565839383838300ff ffffffffffffffffffffffffffffffffff002d2d3f836565839383836583 00ffffffffffffffffffffffffffffffffffff002d2d3f52658393938365 8300ffffffffffffffffffffffffffffffffffffff002d2d3f5265658383 83658300ffffffffffffffffffffffffffffffffffffffff002d3f526565 6583838300ffffffffffffffffffffffffffffffffffffffffff00002d3f 526565656500ffffffffffffffffffffffffffffffffffffffffffffff00 003f5265650000ffffffffffffffffffffffffffffffffffffffffffffff ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: haggis.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000000000 ffffffffffffffffffffffffffffffffffffffffffffffff0000001e6e1e 1e00000000ffffffffffffffffffffffffffffffffffffffff00001e1e6e a56e1e1e1e1e00ffffffffffffffffffffffffffffffffffffff00001e00 6ea56ea56e6e6e1e0000ffffffffffffffffffffffffffffffffffff001e 001e6e6ea56e6e006e1e1e0000ffffffffffffffffffffffffffffffffff 001e6e1e1e6e6e6e6e6e1e6e1e1e00ffffffffffffffffffffffffffffff ffff001e1e6e1e6e006ea5a56e6e1e1e00ffffffffffffffffffffffffff ffffffff001e1e006e1e00a56e6ea5a5a51e1e00ffffffffffffffffffff ffffffffffff001e6e1e6ea56ea56ea56e6e6ea51e0000ffffffffffffff ffffffffffffffff001e001e6ea51ea56ea500a56ea51e1e00ffffffffff ffffffffffffffffffff001e1e1e1e1e6e6ea5a56e6ea56ea51e0000ffff ffffffffffffffffffffffff001e1e006e1e1e6e6e6ea56ea56e6e001e00 ffffffffffffffffffffffffffff00001e1e001e1e1e1e6e6e6e6e6e6e00 1e00ffffffffffffffffffffffffffffff00001e1e1e6e1e1e1e001e6e6e 6e001e00ffffffffffffffffffffffffffffffff00001e1e1e1e6e1e1e1e 1e1e1e1e1e00ffffffffffffffffffffffffffffffffff0000001e1e1e1e 00001e6e1e1e1e00ffffffffffffffffffffffffffffffffffffff000000 1e1e1e1e1e001e1e0000ffffffffffffffffffffffffffffffffffffffff ff00000000001e1e1e0000ffffffffffffffffffffffffffffffffffffff ffffffffffffff0000000000ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: loaf.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff82828282828282ffffff ffffffffffffffffffffffffffffffffffffffff828282e2e2e2e2e2e282 82ffffffffffffffffffffffffffffffffffffffff828282e2e2e266e266 e2e2e28282ffffffffffffffffffffffffffffffffff8282e2e2e266e2e2 e282e2e2e2e2e28282ffffffffffffffffffffffffffffff8282e282e2e2 82e266e2e266e2e2e2e2e282ffffffffffffffffffffffffffff82e2e2e2 e2e2e2e2e2e2e2e2e2e2e2e2e2e28282ffffffffffffffffffffffff0082 e282e282e282e2e282e2e266e2e266e2e2e282ffffffffffffffffffffff 0000820082e2e2e2e2e2e2e2e2e2e2e2e2e2e2e282ffffffffffffffffff ffffff008282e282e282e282e282e2e28266e2e2e2e282ffffffffffffff ffffffffff006600820082e282e2e2e2e2e2e2e2e2e2e2e282ffffffffff ffffffffffffff820066828282820082e282e2e2e2e2e2e28282ffffffff ffffffffffffffffff00660066006682828282e2e2e2e2668266e282ffff ffffffffffffffffffffff8200660066006682820082668266e266e26682 ffffffffffffffffffffffffff0066006600660066006682e266e266e266 e282ffffffffffffffffffffffffff820066006600660066008266e266e2 66e26682ffffffffffffffffffffffffff0066006600660066006600e266 e266e266e282ffffffffffffffffffffffffff8282660066006600660082 66e266e266e26682ffffffffffffffffffffffffffff8282828266006600 6600e266e266e266e282ffffffffffffffffffffffffffffffff82828266 0066008266e266e266e26682ffffffffffffffffffffffffffffffffff82 828266006600e266e266e2828282ffffffffffffffffffffffffffffffff ffffff828282008266e266828282ffffffffffffffffffffffffffffffff ffffffffffffff828282e2828200ffffffffffffffffffffffffffffffff ffffffffffffffffffff828282ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: mint.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff7979ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff7979ff79ffff ffffffffffffffffffffffffffffffffffffffffffffffffffff7979ff79 79ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ff79ff7900ff7979ffffffffffffffffffffffffffffffffffffffffffff ff797900797900007979ffffffffffffffffffffffffffffffffffffffff ffffffffffff7979ff007900ffffffffffffffffffffffffffffffffffff ffffffffffffff000000ff7900ffffffffffffffffffffffffffffffffff ffffffffffffff797900ffff000000ff00ffffffffffffffffffffffffff ffffffffffffffff797979ffff7979ffff0079ffffffffffffffffffffff ffffffffffffffffffffff00ff0000797900ff7900ffffffffffffffffff ffffffffffffffffffffffffffff000079ff00ff007900ffffffffffffff ffffffffffffffffffffffffffffffffffff007900ff00ffffffffffffff ffffffffffffffffffffffffffffffffffffffff0000ffffff00ffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: mushroom-1.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffbd00ffffffffffffffffffffffffffffffffffffffffffffffffffffff 00ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ff68ffbd00ffffffffffffffffffffffffffffffffffffffffffff ffffff00ffffbdbd0000ffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffbdbd0000ffffffffffffffffffffffffffffffffff ffffffffff00ffffbdffff68bdbd0000ffffffffffffffffffffffffffff ffffffffffff0000ff68ffffbdffbdbdbd0000ffffffffffffffffffffff ffffffffffffff00ffffffffffbdffbdffbd68bd0000ffffffffffffffff ffffffffffffffffffff00ffff68ffffbdffbdbdbd0000ffffffffffffff ffffffffffffffffffffffffff00bdffff68bdbd68bd0000ffffffffffff ffffffffffffffffffffffffffffffff0000bdffbdbd000000ffffffffff ffffffffffffffffffffffffffffffffffffffff0000000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00bd0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffff0000bd001d00 ffffffffffffffffffffffffffffffffffffffffffffffffffff001d1d1d 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000bd0000ffffffffffffffffffffffffffffffffffffffffffffffffff ff0000bdff0000ffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000bd00ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: onion.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffff000000ffff00ffffffffffffffffffffffffffffffffffffff ffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffff ffffffffffffffff0000ffffffffff00ffffffffffffffffffffffffffff ffffffffffffffff0000ff00ffffffffffff00ffffffffffffffffffffff ffffffffffffffff0000004e0000ffffffffffffffffffffffffffffffff ffffffffffffff00ff00ff4eff4e00ffffffffffffffffffffffffffffff ffffffffffffff00004eff4eff4e4e00ffffffffffffffffffffffffffff ffffffffffffffff00ffffff4eff4effff00ffffffffffffffffffffffff ffffffffffffffffffff004eff4eff4e4e4e4e4e00ffffffffffffffffff ffffffffffffffffffffff00ffff4eff4eff4eff4e4e00ffffffffffffff ffffffffffffffffffffffffff004eff4eff4e4e4e4e4eff00ffffffffff ffffffffffffffffffffffffffffffff4e4eff4e4eff4e4e4e4e00ffffff ffffffffffffffffffffffffffffffffff00ff4eff4effff4eff4e00ffff ffffffffffffffffffffffffffffffffffffffff4e4effff4e4e4e4e4e00 ffffffffffffffffffffffffffffffffffffffffff00ff4e4e004eff4e4e 00ffffffffffffffffffffffffffffffffffffffffffff00000000ff0000 0000ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 4995 a @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: orange.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000000000ffffffffffffffffffffffffffffffffffffffffffffffff00 00adadadadad660000ffffffffffffffffffffffffffffffffffffffffff 0000adadadcaadad6666ad00ffffffffffffffffffffffffffffffffffff ff00adadadadadadadadadadadad00ffffffffffffffffffffffffffffff ffffff00adadcaadadadadadadadadad00ffffffffffffffffffffffffff ffffffff0000adadadadadadadcaadadadadad00ffffffffffffffffffff ffffffffffff00adadadadadcaadadadadadcaadad00ffffffffffffffff ffffffffffffffff00adcaadadadadadadadadadadadad00ffffffffffff ffffffffffffffffffff00adadadadadadadadadadadadadad00ffffffff ffffffffffffffffffffffff00adadadcaadadadadadadadadadad00ffff ffffffffffffffffffffffffffff00adadadadadadadadadadadadad00ff ffffffffffffffffffffffffffffffffff00adadadadadadadadadadadad 00ffffffffffffffffffffffffffffffffffff00adadadadcaadadadadad ad0000ffffffffffffffffffffffffffffffffffffff00adadadadadadad adad0000ffffffffffffffffffffffffffffffffffffffffff0000adadca adad000000ffffffffffffffffffffffffffffffffffffffffffffff0000 0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: orcchop.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff3b3bffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff3b663bffffffffffffffffffffffffffffffffffffffffff ffffffffffffff3b663bffffffffffffffffffffffffffffffffffffffff ffffffffffffffff3b66663bffffffffffffffffffffffffffffffffffff ffffffffffffffffff3b66a7663bffffffffffffffffffffffffffffffff ffffffffffffffffffff3b66a7a7663bffffffffffffffffffffffffffff ffffffffffffffffffffff3b66a7a7a7663bffffffffffffffffffffffff ffffffffffffffffffff3b3b3b66a7a7a766663bffffffffffffffffffff ffffffffffffffffff3b3b3b66a7a7a7a7a7a7663bffffffffffffffffff ffffffffffffffffffffff3ba7a7a7a7a7a7a7a7a7663bffffffffffffff ffffffffffffffffffffffff3b66a7a7a7a7a7a7a7a766663bffffffffff ffffffffffffffffffffffffffff3ba7a7a7663b66a7a7a766663bffffff ffffffffffffffffffffffffffffffff3ba7a7a73b923ba7a7a7663bffff ffffffffffffffffffffffffffffffffffff3ba7a7a7663ba7a7a766663b ffffffffffffffffffffffffffffffffffffffff3ba7a7a7a7a7a7a76666 3bffffffffffffffffffffffffffffffffffffffffff3b66a7a7a7a7a766 3b3bffffffffffffffffffffffffffffffffffffffffffff3b3b66666666 663bffffffffffffffffffffffffffffffffffffffffffffffffffff3b3b 3b3b3bffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: pear.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff000000ffffffffffffffffffffffffffffffff ffffffffffffffff0000000000ffffffffffffffffffffffffffffffffff ffffffffffffffff000095ca9500ffffffffffffffffffffffffffffffff ffffffffffffff0000000095ca959500ffffffffffffffffffffffffffff ffffffffffffff000095ca95ca95959500ffffffffffffffffffffffffff ffffffffffffffff0095ca959595ca95959500ffffffffffffffffffffff ffffffffffffffffffff00ca9595caca9595959500ffffffffffffffffff ffffffffffffffffffffff00ca95959595959595959500ffffffffffffff ffffffffffffffffffffffffff00959595ca9595ca95959500ffffffffff ffffffffffffffffffffffffffffff00ca95959595959595959500ffffff ffffffffffffffffffffffffffffffffff009595009595959595959500ff ffffffffffffffffffffffffffffffffffffffff00950000959595959500 ffffffffffffffffffffffffffffffffffffffffffff0095959595959595 9500ffffffffffffffffffffffffffffffffffffffffffffff0000959595 950000ffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: pipeweed.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff174dffffff4dffffffffffffff ffffffffffffffffffffffffffffffff56ff174d4dff4dff4d4dffffffff ffffffffffffffffffffffffffffffffffff384d6538ff4d4d4dff5fffff ffffffffffffffffffffffffffffffffffffffffffff6538ffff4dffff4d 6517ffffffffffffffffffffffffffffffffffffffffff4d696917656565 4d4d4dffff38ffffffff17ffffffffffffffffffffffffffffffff174d65 38afb84dffff3865ffffff3817ffffffffffffffffff171717ffffff2c4d 4d4d65384dffffff6565ffff386517ffffffffffffffffffff386538ffff ff4dff4d17ecffffff6565173865651717ffffffffffffffffffffff1765 65ffffffff1738ffffff6565651765656517ffffffffffffffffffffffff ff386565ffff4dff65ffff656565651765656517ffffffffffffffffffff ffffff17656517ffffff1717656565656517656538ffffffffffffffffff ffffffffffff65653817ffff1765656565656517653817ffffffffffffff ffffffffffffffff17656517ff1717656565656517656538ffffffffffff ffffffffffffffffffffff3865651765176565656565176517ffffffffff ffffffffffffffffffffffff176565656538176565656517656517ffffff ffffffffffffffffffffffffffff1765656565383865656565656538ffff ffffffffffffffffffffffffffffffffff176565653865656565176517ff ffffffffffffffffffffffffffffffffffffffff17656565386538656538 ffffffffffffffffffffffffffffffffffffffffffff1765656538656517 6538ffffffffffffffffffffffffffffffffffffffffffffff3865653865 176565ffffffffffffffffffffffffffffffffffffffffffffffff176565 38386565ffffffffffffffffffffffffffffffffffffffffffffffffffff 386565386517ffffffffffffffffffffffffffffffffffffffffffffffff ffffff1765383817ffffffffffffffffffffffffffffffffffffffffffff ffffffffff17386517ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff176517ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff17ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potato.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ff82ffe200ffffffffffffffffffffffffffffffffffffffffffffff ffff008282e200ff00ffffffffffffffffffffffffffffffffffffffffff ffffffff00e200e282e28200ffffffffffffffffffffffffffffffffffff ffffffffff0082008282e28200e200ffffffffffffffffffffffffffffff ffffffffffff0000000000828282e28200ffffffffffffffffffffffffff ffffffffffff0000e282ffe2ff0000e282e200ffffffffffffffffffffff ffffffffffffff0082ff82e2820082e200828200000000ffffffffffffff ffffffffffffffff008282e200e282e2ffe2820000ff82ff8200ffffffff ffffffffffffffffffff0082e282e282e282e200e2820000e282e20000ff ffffffffffffffffffffffff0082828282e282e28282ffe2008282e282ff 00ffffffffffffffffffffffffff00828200828282e200e2828200828200 828200ffffffffffffffffffffffffff008200828282e282e28200e20000 82008200ffffffffffffffffffffffffffffff000000828282e282008200 00ff000000ffffffffffffffffffffffffffffffffffffff000082008200 8200ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: roast-bird.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff1e1eff ffffffffffffffffffffffffffffffffffffffffff1e00ffffffffffff00 1effffffffffffffffffffffffffffffffffffffffffff001effffffffff ffff1e1effffffffffffffffffffffffffffffffffffffffffff1e1effff 0000001e6e6effffffffffffffffffffffffffffffffffffffffffff6e1e ff006ea5a5a56e1e00ffffffffffffffffffffffffffffffffffffffffff 006e1e00a5a56ea5a5a51e00ffffffffffffffffffffffffffffffffffff ff001ea5a5a7a5a5a56ea56ea500ffffffffffffffffffffffffffffffff ffffff00a56ea51ea5a5a56ea5a5a51e00ffffffffffffffffffffffffff ffffffffff006ea5a5a51ea5a5a56ea5a5a500ffffffffffffffffffffff ffffffffffffff006ea7a51e6ea56ea56ea56ea500ffffffffffffffffff ffffffffffffffffffff1e6ea7a71ea5a5a5a5a5a5a500ffffffffffffff ffffffffffffffffffffffff001e6e6e1ea5a5a5a56ea5a500ffffffffff ffffffffffffffffffffffffffffff000000001ea5a76ea76ea5a500ffff ffffffffffffffffffffffffffffffffffffffffff006ea5a5a500a7a500 ffffffffffffffffffffffffffffffffffffffffffffffff00000000001e a500ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: root.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffff000000ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff008b8b00ffffffffffffffffffffffffffff ffffffffffffffffffffffffff008b668b00ffffffffffffffffffffffff ffffffffffffffffffffffffff00008b8b668b00ffffffffffffffffffff ffffffffffffffffffffffff0000008b8b8b8b8b00ffffffffffffffffff ffffffffffffffffffffffffff008b8b8b008b668b00ffffffffffffffff ffffffffffffffffffffffffffff0000000000ff008b00ffffffffffffff ffffffffffffffffffffffffffff000000ff0000ffff00008b00ffffffff ffffffffffffffffffffffffffffff00008bffff008b00ffffff008bff00 00ffffffffffffffffffffffffffffffff00ffffffff00000000ffff0000 008b00ffffffffffffffffffffffffffffffffff00ffffffffff00ffffff 00ff00ff00ffffffffffffffffffffffffffffffffff00ffffffff00ffff ff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffff 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rose-black.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff0033000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000333300 ffffffffffffffffffffffffffffffffffffffffffffffffffff00330033 3300ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 33000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000006666ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff006666ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0066ffffff6868ffffffffffffffffff ffffffffffffffffffffffffffffffffff66ffff6866ffffffffffffffff ffffffffffffffffffffffffffffffffffffff6600ff6868ffffffffffff ffffffffffffffffffffffffffffffffffff6868ffff66ff68ffffffffff ffffffffffffffffffffffffffffffffffffff68686668680066ffffffff ffffffffffffffffffffffffffffffffffffffffffffff6868ff6666ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff6666ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff6600ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rose-pink.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00a8000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000a8a800 ffffffffffffffffffffffffffffffffffffffffffffffffffff00a800a8 a800ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 a8000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000006666ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff006666ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0066ffffff6868ffffffffffffffffff ffffffffffffffffffffffffffffffffff66ffff6866ffffffffffffffff ffffffffffffffffffffffffffffffffffffff6600ff6868ffffffffffff ffffffffffffffffffffffffffffffffffff6868ffff66ff68ffffffffff ffffffffffffffffffffffffffffffffffffff68686668680066ffffffff ffffffffffffffffffffffffffffffffffffffffffffff6868ff6666ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff6666ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff6600ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rose-red.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff004d000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffff0000004d4d00 ffffffffffffffffffffffffffffffffffffffffffffffffffff004d004d 4d00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 4d000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000006666ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff006666ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0066ffffff6868ffffffffffffffffff ffffffffffffffffffffffffffffffffff66ffff6866ffffffffffffffff ffffffffffffffffffffffffffffffffffffff6600ff6868ffffffffffff ffffffffffffffffffffffffffffffffffff6868ffff66ff68ffffffffff ffffffffffffffffffffffffffffffffffffff68686668680066ffffffff ffffffffffffffffffffffffffffffffffffffffffffff6868ff6666ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff6666ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff6600ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rose-wh.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00ff000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000006666ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff006666ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0066ffffff6868ffffffffffffffffff ffffffffffffffffffffffffffffffffff66ffff6866ffffffffffffffff ffffffffffffffffffffffffffffffffffffff6600ff6868ffffffffffff ffffffffffffffffffffffffffffffffffff6868ffff66ff68ffffffffff ffffffffffffffffffffffffffffffffffffff68686668680066ffffffff ffffffffffffffffffffffffffffffffffffffffffffff6868ff6666ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff6666ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff6600ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: rose-yel.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00e2000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000e2e200 ffffffffffffffffffffffffffffffffffffffffffffffffffff00e200e2 e200ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 e2000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff0000006666ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff006666ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffff0066ffffff6868ffffffffffffffffff ffffffffffffffffffffffffffffffffff66ffff6866ffffffffffffffff ffffffffffffffffffffffffffffffffffffff6600ff6868ffffffffffff ffffffffffffffffffffffffffffffffffff6868ffff66ff68ffffffffff ffffffffffffffffffffffffffffffffffffff68686668680066ffffffff ffffffffffffffffffffffffffffffffffffffffffffff6868ff6666ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff66ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff6666ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff6600ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff66ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff6666ffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: s-weasel.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff1dffffff1dffffff 1dffffff00ffffffffffffffffffffffffffffffffffffffff1dffffff1d ffffffffff00ffffffffffffffffffffffffffffffffff1dffff1dffffff ffff1dff00000000ffffffffffffffffffffffffffffffffffffffffff1d ff1dff1dffff00800000ffffffffffffffffffffffffffffff1dffff1dff 1dffffffffff0000800000ffffffffffffffffffffffffffffff1dffff1d ffffff1dffffffff00808000ffffffffffffffffffffffffffffffffffff ffffffffffffffff0000000000ffffffffffffffffffffffffffffffffff ff1dff1dffffffff00008080000000ffffffffffffffffffffffffffffff ffff1dffffff1dffff0000808000008000ffffffffffffffffffffffffff ffffffffff1dffffffffff0080800000000000ffffffffffffffffffffff ffffffffffffffff1dffffff000080800000ffffffffffffffffffffffff ffffffffffffffffffffffffffff008080008000ffffffffffffffffffff ffffffffffffffffffffffff1dffffff008000800000ffffffffffffffff ffffffffffffffffffffffffffffff1dffff0080008000ffffffffffffff ffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffff80000000ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00008000ffffffff ffffffffffffffffffffffffffffffffffffffffffffff00808000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff008000ff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tomato.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff6faf9f95c5 ffffffffffffffffffffffffffffffffffffffffffffffffffffff733b66 565691a5fafffffffffffffffffffffffffffffffffffffffffffffff4c8 504f544b353866ade3f2fffffffffffffffffffffffffffffffffffffff1 9f8070554d37303c484c5593f2ffffffffffffffffffffffffffffffffff f597787d796c60514b514d454259e3ffffffffffffffffffffffffffffff fff0957778716d665f5954534e49494aa0e0ffffffffffffffffffffffff ffffffd571787474736a615c57524c4845424aa8ffffffffffffffffffff ffffffffff8272757d9890756a645b534d4e433e459affffffffffffffff ffffffffffffc6707477a2cfad806d665c545059473f409cffffffffffff ffffffffffffffffc66c7280add7ba876b6257514f51443c379affffffff ffffffffffffffffffffff766d808ba49777665f544e4c453d3638b1ffff ffffffffffffffffffffffffffa5698285716761605e574c463e383149fb ffffffffffffffffffffffffffffffdc6d7b84695c595b5951453d37332c 9dfffffffffffffffffffffffffffffffffbb16b74665753524d463f3733 305be8ffffffffffffffffffffffffffffffffffffa95f5e564f48433e38 323058d6fffffffffffffffffffffffffffffffffffffff9a15b4e47413d 38333b6adcffffffffffffffffffffffffffffffffffffffffffdabc885b 49414e7ab9ffffffffffffffffffffffffffffffffffffffffffffffffff f5ded5d2dbf5ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tomato-big.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffff1eff8fb4a5a2ffffffffffffffffff ffffffffffffffffffffffffffffffffff483953746a2886ffffffffffff ffffffffffffffffffffffffffffffffffffff63372f74693e4d3f3178ff ffffffffffffffffffffffffffffffffffffffffffff613855614c573d27 37545bffffffffffffffffffffffffffffffffffffff907b70583a344c25 2f2d3f4751566a78ffffffffffffffffffffffffffffff72798582706864 50353035454743453a5a79ffffffffffffffffffffffffff75777a7f7c79 6c6559524f545750484340426affffffffffffffffffffffff73777a776f 6c6b66625d58535453504b4649514cffffffffffffffffffffff74717877 7870706c65605d585754504e4a474a44464b82ffffffffffffffffff6a75 7a747273757269635f5b5854504c4948464041465cffffffffffffffff89 6b76767277888e7b706a66615c56524d4a49413d3f4641ffffffffffffff ff6b707472799bbdb489756e69655e58524d5258443d41445affffffffff ffff7c6a6f787487d1e2c59c7c716a645f57524e585c473f3f3a4bffffff ffffffff7b676c7a7b8fe2e1cca7826f65625954504f5453473d3e3345ff ffffffffffffff6569718385a5cccc987c6d635f57514e4d4b493f3c372f 59ffffffffffffffff766670808781938f796e66615c56514c4c47403c37 322c85ffffffffffffffff9f646f84897f6e696560615f5d59524b48423c 39342f29ffffffffffffffffffff616b828f7e68615d5a5d5d5d594e4540 3c3835312c42ffffffffffffffffffff856375887e625b58575b58555147 403a3835322e26ffffffffffffffffffffffff626674776559535353514c 48433d393532302973ffffffffffffffffffffffffff5b6168635a54504c 4745413d3834322f2b5affffffffffffffffffffffffffffff59595a5751 4b4743403d383532302d66ffffffffffffffffffffffffffffffffff5e51 4e4a46423e3b383432302e86ffffffffffffffffffffffffffffffffffff 7d974f4641403c373532315cffffffffffffffffffffffffffffffffffff ffffffffffa66f5c4f4a6091ffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: waybread.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffff00cbb5 b5b500ffffffffffffffffffffffffffffffffffffffffffffffffff00b5 b500b5b5b500ffffffffffffffffffffffffffffffffffffffffffffffff 00b5cbb5cbb5b5b500ffffffffffffffffffffffffffffffffffffffffff 0000b500b500b500cbb5b500ffffffffffffffffffffffffffffffffffff ff00cbb5cbb5b5b5cbb5b500b5b500ffffffffffffffffffffffffffffff ffffff00b500b500cbb5b500b5cbb5b500ffffffffffffffffffffffffff ffffffffff00cbb5cbb5b500b5b5b5b500b5b50000ffffffffffffffffff ffffffffffffff00b500b500b5cbb5b500b5b5cbb5b5b500ffffffffffff ffffffffffffffffff0000b5b5cbb5b500b5cbb5b5b500b5b500ffffffff ffffffffffffffffffffffff0000b5b500b5cbb5b500cbb5b5b5b500ffff ffffffffffffffffffffffffffff008300b5b5b5b500b5b5b500b5cbb500 ffffffffffffffffffffffffffffffffff008300b5cbb5b5cbb5cbb5b5b5 0000ffffffffffffffffffffffffffffffffffff008300b500b5b500b500 b5000000ffffffffffffffffffffffffffffffffffffff008300b5cbb5b5 b5b500b500ffffffffffffffffffffffffffffffffffffffffff008300b5 00b5b500b500ffffffffffffffffffffffffffffffffffffffffffffff00 83000000000000ffffffffffffffffffffffffffffffffffffffffffffff ffff0093b5b500ffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 158 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ant-egg.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00000000000000ffffffffffffffffffffffffffff ffffffffffffffffff0000e2e2e2e2e2e2e200ffffffffffffffffffffff ffffffffffffffffffffff00e2ffffffffffffffe20000ffffffffffffff ffffffffffffffffffffffff00e2ffffffffffffffffe2e200ffffffffff ffffffffffffffffffffffffffff00e2bfffe2ffffffffe2ffe200ffffff ffffffffffffffffffffffffffffffffff00e2e2ffffffffffffe200ffff ffffffffffffffffffffffffffffffffffffff000000e2bfe2bfe2000000 ffffffffffffffffffffffffffffffffffffffffffffff00000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: arm.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00004d00ffffffffffffffffffffffffffffffffffffffffffffffffffff ffff4d0000e200ffffffffffffffffffffffffffffffffffffffffffffff ffffff000000e2e2e200ffffffffffffffffffffffffffffffffffffffff ffffffffff0000e2e2e2e2e200ffffffffffffffffffffffffffffffffff ffffffffffffffff0000e2e2e2e200ffffffffffffffffffffffffffffff ffffffffffffffffffffffff00e2e2e2e2000000000000ffffffffffffff ffffffffffffffffffffffffffffff00e2e2e2e2e2e2e2e2e200ffffffff ffffffffffffffffffffffffffffffffffff000000e2e2e2e2000000ffff ffffffffffffffffffffffffffffffffffffffffffff0000000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: bat-wing.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000000ffffffffffffffffffffffffffffffffffffffffffff0000004343 4343434300000000ffffffffffffffffffffffffffffffffffff00004343 434343434343434343002bffffffffffffffffffffffffffffffff000043 4343434343434343434300000000f3ffffffffffffffffffffffffff0000 434300000000004343430000fffffffffeffffffffffffffffffffffffff 00434343434343000000000032fbffffffffffffffffffffffffffffffff ff00434343434343434343000000ffffffffffffffffffffffffffffffff ffffff0043430000004343434343000066ffffffffffffffffffffffffff ffffffffff0043434343000000000000ec0000ffffffffffffffffffffff ffffffffffff00004343434343430000fffff3ffffffffffffffffffffff ffffffffffffffff00004343434343434300ffffffffffffffffffffffff ffffffffffffffffffff00434300004343430000a1ffffffffffffffffff ffffffffffffffffffffffff0043434300191900000000ffffffffffffff ffffffffffffffffffffffffffff00434343436600fffff6ffffffffffff ffffffffffffffffffffffffffffffff004343434300e6ffffffffffffff ffffffffffffffffffffffffffffffffffff00434343000000ffffffffff ffffffffffffffffffffffffffffffffffffffff0043430000fcffffffff ffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: big-eye.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffff4dff0000ffffffffffffffffffffffffffffffffffff ffffffffff00ffffffffffffff4d00ffffffffffffffffffffffffffffff ffffffffffffff00ffff0000ffff4dff00ffffffffffffffffffffffffff ffffffffffffffff00ffff00828200ffffffff00ffffffffffffffffffff ffffffffffffffffffff00ff0082bdbd8200ffffff00ffffffffffffffff ffffffffffffffffffffffff00ff0082bdbd8200ffffff00ffffffffffff ffffffffffffffffffffffffffff00ffff00828200ffff4d4d00ffffffff ffffffffffffffffffffffffffffffffff00ffff0000ffffffff00ffffff ffffffffffffffffffffffffffffffffffffff00ffffffffffff4dff00ff ffffffffffffffffffffffffffffffffffffffffffff0000ffffffff0000 ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: brain.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 00000000000000ffffffffffffffffffffffffffffffffffff0000000096 0096009600000000960000ffffffffffffffffffffffffffffff00000000 960096969696969696000000960000ffffffffffffffffffffffff009600 969696969600969600960096960000960000ffffffffffffffffffffff00 0096000096009600960000969696009600009600ffffffffffffffffffff ff000000009600969696969696969696960096960000ffffffffffffffff ffffffff000096009696000096009696000096969696960000ffffffffff ffffffffffff000000969696969696009696960096000096009600ffffff ffffffffffffffffff0000009600969696000096960096969600000000ff ffffffffffffffffffffffff000000000096969696969696969600009600 00ffffffffffffffffffffffffffffff0000960000969600000096960096 0000ffffffffffffffffffffffffffffffffffff00000000969696960096 96969600ffffffffffffffffffffffffffffffffffffffffff0000960000 960096960000ffffffffffffffffffffffffffffffffffffffffffff0000 00969696969600ffffffffffffffffffffffffffffffffffffffffffffff 000000009696960000ffffffffffffffffffffffffffffffffffffffffff ffffffff00000000000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: corpse.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff00000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffff023331 0000ffffffffffffffffffffffffffffffffffffffffffffffffff02053d 3d330000ffffffffffffffffffffffffffffffffffffffffffffffff0240 40403d3b00ffffffffffffffffffffffffffffffffffffffffffffffff02 404c4c3f35330000ffffffffffffffffffffffffffffffffffffffffffff ff0a45504e44ffff3100ffffffffffffffffffffffffffffffffffffffff ffff003d2e484a483c3a3100ffffffffffffffffffffffffffffffffffff ffffff0c54562e484d4d43413a00ffffffffffffffffffffffffffffffff ffffffffff0a4c4f402b4a4c52504a0cffffffffffffffffffffffffffff ffffffffffffff0a4b4c462b4852555654480affffffffffffffffffffff ffffffffffffffffffff134a4c462b4a5250565213ffffffffffffffffff ffffffffffffffffffffffffff0a4041412e4e54544b0cffffffffffffff ffffffffffffffffffffffff0000ffff02353f494c545413ffffffffffff ffffffffffffffffffffffff3730374800ffff075256514f4a0affffffff ffffffffffffffffffffffff21596b7b85734a00004269745d563d02ffff ffffffffffffffffffffffff4c77635c5c5b6b735c3b3b5a747b7c7019ff ffffffffffffffffffffffffffff328154211900617a755b62797b727c73 19ffffffffffffffffffffffffffffff0f22ffff5b006473847c7d857b74 75610fffffffffffffffffffffffffffffffffffff6e710000657e7b8383 7c7c6e19ffffffffffffffffffffffffffffffffffffff885d00ff638b84 7c81847a5907ffffffffffffffffffffffffffffffffffffff002b232b63 7c79798181640fffffffffffffffffffffffffffffffffffffffff224a70 7055546b7c857319ffffffffffffffffffffffffffffffffffffffff2b3b 33587967556b736921ffffffffffffffffffffffffffffffffffffffffff 1a332d32545525302116ffffffffffffffffffffffffffffffffffffffff ffff123a3d3a552bffffffffffffffffffffffffffffffffffffffffffff ffffffffff1222221affffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: demon-head.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000ffffffffffffffffffffffffffffff0000ffffffffffffffffffffff ff004d00ffffffffffffffffffffffffffffff0000000000ff0000000000 0000004d4d00ffffffffffffffffffffffffffffffff004d4d0000004e4e 4e4e4e4e4e004d00ffffffffffffffffffffffffffffffff0000004d004e 004e4e4d4e4e4d4e0000ffffffffffffffffffffffffffffffffff004d4d 004e4e4e4e4e4e4e4e4e4e0000ffffffffffffffffffffffffffffffff00 004d004e4d4e4e4e4e4d4e4e004e00ffffffffffffffffffffffffffffff ff00000000004e0000004e4e4e4e000000ffffffffffffffffffffffffff ffffffff00004e0000004d00004e4e00004d00ffffffffffffffffffffff ffffffffffff004e004e004d004d004e00004d004d00ffffffffffffffff ffffffffffffffff00004e4d4e00ff00004e4e0000ff0000ffffffffffff ffffffffffffffffffff004e004e004e00004e4d4e004e0000ffffffffff ffffffffffffffffffffffff00004e004e004e4e004e004e4d4e00ffffff ffffffffffffffffffffffffffffff000000004e4e004e00004e4e000000 ffffffffffffffffffffffffffffffffffff00000000000000e24d004e00 e200ffffffffffffffffffffffffffffffffffffff00004e00004d000000 4d000000ffffffffffffffffffffffffffffffffffffff004e000000ff00 00000000ff00ffffffffffffffffffffffffffffffffffffffff00004e00 ff0000000000ff00ffffffffffffffffffffffffffffffffffffffff0000 000000ff00000000ff00ffffffffffffffffffffffffffffffffffffffff ffffff000000000000000000ffffffffffffffffffffffffffffffffffff ffffffffffff0000004e004e00ffffffffffffffffffffffffffffffffff ffffffffffffffffff000000000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: dragon-eye.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 00000000ffffffffffffffffffffffffffffffffffffffffffffff000000 ffffffff4d000000ffffffffffffffffffffffffffffffffffffffff0000 00ffff00ffffffff4d0000ffffffffffffffffffffffffffffffffffff00 00ffffff006800ffffff00ff0000ffffffffffffffffffffffffffffffff 0000ffffff0068006800ff4dffffff0000ffffffffffffffffffffffffff ff00004d00ffff0068006800ffffff4d00ff0000ffffffffffffffffffff ffffff00ffffffff00680000006800ffff00ffffff00ffffffffffffffff ffffffffff00ffffffff00680000006800ff00ffffffff00ffffffffffff ffffffffffffff00ff4d00ff00680000006800ffffff4dffff00ffffffff ffffffffffffffffff00ff00ffff00680000006800ffffffff000000ffff ffffffffffffffffffffff00004dffff00680000006800ff004dffffff00 ffffffffffffffffffffffffffff00ffffffff0068006800ffffff004dff 0000ffffffffffffffffffffffffffff00004d00ff0068006800ffffffff ff0000ffffffffffffffffffffffffffffffff0000ffffff006800ffff00 ffff0000ffffffffffffffffffffffffffffffffffff0000ffffff00ffff ffff4d0000ffffffffffffffffffffffffffffffffffffffff00004dffff ffffff000000ffffffffffffffffffffffffffffffffffffffffffffff00 000000000000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: dragon-wing.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff0000007900 000000ffffffffffffffffffffffffffffffffffffffffffff0000797900 0000007900000000ffffffffffffffffffffffffffffffffffff00797900 006800680000006800680000ffffffffffffffffffffffffffffff007900 000068006800680000000000000000ffffffffffffffffffffffffff0079 000000000000007900680000ffffffff0000ffffffffffffffffffffffff 0079006800680000006800000000ffffffffffffffffffffffffffffffff ff000079000068006800000000ffffffffffffffffffffffffffffffffff ffffff007900000000000068000000ffffffffffffffffffffffffffffff ffffffffff007900680068000000000000ffffffffffffffffffffffffff ffffffffffff00790000000079000000ffff00ffffffffffffffffffffff ffffffffffffffff00790068006800680000ffffffffffffffffffffffff ffffffffffffffffffff00790000000000006800ffffffffffffffffffff ffffffffffffffffffffffff0079006800ffffff0000ffffffffffffffff ffffffffffffffffffffffffffff0079000000ffffffff00ffffffffffff ffffffffffffffffffffffffffffffff007900ff00ffffffffffffffffff ffffffffffffffffffffffffffffffffffff007900ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff007900ffffffffffffff ffffffffffffffffffffffffffffffffffffffffffff00790000ffffffff ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: drag-steak.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff66 666666666666ffffffffffffffffffffffffffffffffffffffffffffff66 6666e2e2e2666666ffffffffffffffffffffffffffffffffffffffffffff 6666e2e2e2e2e2666666ffffffffffffffffffffffffffffffffffffffff ff6666e2e266e2e2e26666ffffffffffffffffffffffffffffffffffffff ffff6666e2e2e2e2e266e26666ffffffffffffffffffffffffffffffffff ffffff6666e2e266e2e2e2e26666ffffffffffffffffffffffffffffffff ffffffff6666e2e2e2e2e2e2e2e26666ffffffffffffffffffffffffffff ffffffff666666e2e266e2e2e266e2e26666ffffffffffffffffffffffff ffffffffff666666e2e2e2e2e2e2e2e2e2e26666ffffffffffffffffffff ffffffffff666666e2e2e266e2e2e266e2e2e2666666ffffffffffffffff ffffffffff666666e2e2e2e2e2e2e2e2e2e2e2e2e26666ffffffffffffff ffffffffffff6666e2e266e2e266e2e2e266e2e2e266e26666ffffffffff ffffffffffffff6666e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2666666ffffff ffffffffffffffffff6666e266e2e2e2e2e2e266e2e2e2e2e2666666ffff ffffffffffffffffffffff66e2e2e2e2e266666666e2e2e266e266666666 ffffffffffffffffffffffff6666e266e2e26666e2e266e2e2e2e2e26666 66ffffffffffffffffffffffffff66e2e2e2e26666e2e26666e266e2e266 6666ffffffffffffffffffffffffffff66e266e2e266e2e26666e2e2e2e2 666666ffffffffffffffffffffffffffffff6666e2e2e266666666e2e2e2 e2666666ffffffffffffffffffffffffffffffffff66e2e266e2e2e2e2e2 e266666666ffffffffffffffffffffffffffffffffffff6666e2e2e2e2e2 6666666666ffffffffffffffffffffffffffffffffffffffff6666666666 6666666666ffffffffffffffffffffffffffffffffffffffffffffffff66 66666666ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 126 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: ectoplasm.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff7b7b7b7bffffffffffffffffffffffffffffffffffffffffffff ffff7b7bffffffff7b7b7b7b7bff7bffffffffffffffffffffffffffffff ffffffffff7b7b7b7b7b7bffffffff7b7b7bffffffffffffffffffffffff ffffffffffff7b7bffffffffffffffffffff7bff7bff7b7bffffffffffff ffffffffffffff7b7bffffff7bffffffffffffffffff7b7b7bffffffffff ffffffffffffffff7b7bffffffffffffffffffffff7bffffffff7b7bffff ffffffffffffffffffff7bffffff7bffffffffffffffffffffffffff7b7b ffffffffffffffffffffffff7b7bffffffffffffffffffffffffff7bffff 7bffffffffffffffffffffffffffff7b7b7bff7b7b7b7b7bffff7b7bffff ff7b7bffffffffffffffffffffffffffffffff7b7b7bff7bff7b7b7bffff ff7b7bffffffffffffffffffffffffffff7bff7bffffff7b7bffff7bff7b 7b7b7b7bffff7bffffffffffffffffffffffffffffffffffffffffff7bff ffffff7b7bffff7b7bffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: eye.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffff00ff00ffffffffffffffffffffffffffffffff ffffffffffffffff004d4d4d004d00000000ffffffffffffffffffffffff ffffffffffffffff0000000000000000ffffffff00ffffffffffffffffff ffffffffffffffff000000ff004d004d00ffffffffffff00ffffffffffff ffffffffffffffffffffffffffffff00000000ffffffffffff00ffffffff ffffffffffffffffffffffffffffffffffff004d00ffffff6666ff00ffff ffffffffffffffffffffffffffffffffffffffffff0000ffffff66ffff00 ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 5111 a @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: finger.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000000000ffffffffffffffffffffffffffffffffffffffffffff0000 0000e2e2e24e4e00ffffffffffffffffffffffffffffffffffffffffff00 00e2e2e2e2e2e2e2e200ffffffffffffffffffffffffffffffffffffffff 00e2e2e2e2e2e2e2e2e200ffffffffffffffffffffffffffffffffffffff ff00e2e2e2e2e2e200000000ffffffffffffffffffffffffffffffffffff ffffff00e2e2e2e2e2e200ffffffffffffffffffffffffffffffffffffff ffffffff0000e2e2e2e2e200ffffffffffffffffffffffffffffffffffff ffffffffffff00e2e2e2e2e200ffffffffffffffffffffffffffffffffff ffffffffffffff00e2e2e2e20000ffffffffffffffffffffffffffffffff ffffffffffffffffff00e2e2e2e2e200ffffffffffffffffffffffffffff ffffffffffffffffffffff00e2e2e2e2e200ffffffffffffffffffffffff ffffffffffffffffffffffffff00e2e2e2e2e200ffffffffffffffffffff ffffffffffffffffffffffffffffff00e2e2e2e2e200ffffffffffffffff ffffffffffffffffffffffffffffffffff00e2e2e2e2e200ffffffffffff ffffffffffffffffffffffffffffffffffffff00e2e2e2e2e200ffffffff ffffffffffffffffffffffffffffffffffffffffffff00e2e2e20000ffff ffffffffffffffffffffffffffffffffffffffffffffff00004d000000ff ffffffffffffffffffffffffffffffffffffffffffffffffff004d004d4d 00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: foot.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff000000004d00ffffffffffffffffffffffffffffffffffffffff ffffffffffff004d4d004d4d00ffffffffffffffffffffffffffffffffff ffffffffffffff0000000000000000ffffffffffffffffffffffffffffff ffffffffffffffffff00e2e200e2e2e200ffffffffffffffffffffffffff ffffffffffffffffffffff00e2e2e2e2e200ffffffffffffffffffffffff ffffffffffffffffffffffff00e2e2e2e2e2e200ffffffffffffffffffff ffffffffffffffffffffffffff00e2e2e2e2e200e200ffffffffffffffff ffffffffffffffffffffffffffff00e2e2e2e2e20000e200ffffffffffff ffffffffffffffffffffffffffff0000e2e2e2e2e2e2e2e2e200ffffffff ffffffffffffffffffffffffffff0000e2e2e2e2e2e2e2e2e2e2e2e200ff ffffffffffffffffffffffffffff000000e2e2e2e2e2e2e2e2e2e2e2e2e2 00ffffffffffffffffffffffffff00006600e2e2e2e2e2e2e2e2e2e2e2e2 e2e200ffffffffffffffffffffffffff00e2006600e2e2e2e2e2e2e2e2e2 e2e2e2e200ffffffffffffffffffffffffff0000e200e2e2e2e200000000 00e2e2e2e200ffffffffffffffffffffffffffff00e2e2e200000000ffff ffffff00000000ffffffffffffffffffffffffffffff0000000000ffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: fried-egg.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff99999999ccffffffffffffffffffffffffffffffffffff ffffffffffffff9999ffffffffccffffffffffffffffffffffffffffffff ffffffff9999999999ffffffffffccffffffffffffffffffffffffffffff ffffffff9999ffffffffffffffffffffccffffffffffffffffffffffffff ff9999999999ffffffffffffffffffffccccffffffffffffffffffffffff ffff99ffffffffffffffffffffffffffffccffffffffffffffffffffffff ffffffff99ffffffffffffffffffffffffffffccffffffffffffffffffff ffffffffff99ffffffffffffffffffffffffffffffccffffffffffffffff ffffffffff9999ffffffcfcfcfcfcfffffffffffffffffccffffffffffff ffffffffff9999ffffffcfcfcfcfcfe2e2cfcfffffffffffffffccffffff ffffffffff9999ffffffffffb3cfcfcfcfe2cfe2cfffffffffffffffffcc ccffffffffffff99ffffffffffffb3cfcfcfcfcfcfcfcfffffffffffffff ffffffccffffffff99ffffffffffffffb3b3cfcfcfcfcfcfcfffffffffff ffffffffffccffffffff999999ffffffffffffb3b3b3b3b3b3b3ffffffff ffffffffffffffccffffffffffffff9999ffffffffffffffffffffffffff ffffffffffffffffccffffffffffffffffffffccffffffffffffffffffff ffccccccccccccccccccffffffffffffffffffffffccffffffffffffffff ffccccffffffffffffffffffffffffffffffffffff9999ffffffffffffff ffccccffffffffffffffffffffffffffffffffffff9999ffffffffffffff ffffccffffffffffffffffffffffffffffffffffffffff99ffffffffffff ffffccccffffffffffffffffffffffffffffffffffffffffff99ffffffff ffffffccffffffffffffffffffffffffffffffffffffffffffffffcccccc ccccccccccccffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: goblin-head.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffffffffffffffffffffffff00ffffffffffffffffff ffffffffffff0000ffffffffffffffffffffffffffff0000ffffffffffff ffffffffffffff00006800ffffffffffffffffffffffffff007b00ffffff ff00000000000000ff00000000ffffffffffffffffffffffffff00680000 ff000068687b686868680000680000ffffffffffffffffffffffffff007b 7b68007b6868686868686868680000000000ffffffffffffffffffffffff 00007b007b006868686868686868686868000000ffffffffffffffffffff ffff00680068006868686868686868000000686800ffffffffffffffffff ffffffff00007b00686868000000686868004d0068686800ffffffffffff ffffffffffffff000068687b68004d0068686800000068686800ffffffff ffffffffffffffffff0000687b686800000068686868686868687b00ffff ffffffffffffffffffffffff006868686868686868686800006868680000 ffffffffffffffffffffffffffff007b68687b6868686800000068686868 00ffffffffffffffffffffffffffffff0068686868687b68686800006868 680000ffffffffffffffffffffffffffffffff00687b6868686868686800 0000680000ffffffffffffffffffffffffffffffffff0068686868680000 000000ff0000ffffffffffffffffffffffffffffffffffffff00687b6868 00ff000000ff0000ffffffffffffffffffffffffffffffffffffffff007b 686800ff0000000000ffffffffffffffffffffffffffffffffffffffffff ffff0000686868686800ffffffffffffffffffffffffffffffffffffffff ffffffffffff0000000000ffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: hand.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff ffffffffffff00000000d800ffffffffffffffffffffffffffffffffffff ffffffffff0000ff00d80000d800ffffffffffffffffffffffffffffffff ffffffffffff00d800ff00d80000d800ffffffffffffffffffffffffffff ffffffffffffffff00d800ff00d80000d80000ffffffffffffffffffffff ffffffffffffffffff00d800ff00d8d800d8d80000ffffffffffffffffff ffffffffffffffffffffff00d80000d8d800d8d800d800ffffffffffffff ffffffffffffffffffffffff00d8d800d8d800d8d800d80000ffffffffff ffffffffffffffffffffffffffff00d8d8d8d8d8d8d800d800d800ffffff ffffffffffffffffffffffffffffffff00d8d8d8d8d8d8d8d800d8d800ff ffffffffffffffffffffffffffffffffff00d8d8d8d8d8d8d8d8d8d8d800 ffffffffffffffffffffffffffffffffffff00d8d8d8d8d8d8d8d8d8d800 00ffffffffffffffffffffffffffffffffffff0000d8d8d8d8d8d8d8d8d8 0000ffffffffffffffffffffffffffffffffffffff00d8d8d8d8d8d8d8d8 d800ffffffffffffffffffffffffffffffffffffffffff00d8d8d8d8d8d8 000000ffffffffffffffffffffffffffffffffffffffffffffff00d8d800 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: head.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 0000ffffffffffffffffffffffffffffffffffffffffffffffff00000000 006600000000ffffffffffffffffffffffffffffffffffffffffff000000 0066000000000000ffffffffffffffffffffffffffffffffffffffff0000 0000660000006600000000ffffffffffffffffffffffffffffffffffffff 82e20000000066000066000000ffffffffffffffffffffffffffffffffff ffff8200e200e20000000000000000ffffffffffffffffffffffffffffff ffffff8282e2e2e2e2e20000000066000000ffffffffffffffffffffffff ffffffff0000e2000000e20000000000000000ffffffffffffffffffffff ffffffffffffff1d82e21de2e20000e20066000000ffffffffffffffffff ffffffffffffffffffff8282e2e2e2e200e2000000000000ffffffffffff ffffffffffffffffffffff82e2e2e2e2e2e2e2e20000000000ffffffffff ffffffffffffffffffffffffff828282e2e2e2e2e2e2006600660000ffff ffffffffffffffffffffffffffffffff82e2e2e2e2e2e2e2e2000000ffff ffffffffffffffffffffffffffffffffff4e4e4ee2e2e2e2e2e2e2820000 ffffffffffffffffffffffffffffffffffffffff4e4e4ee2e28282e2e24d 00ffffffffffffffffffffffffffffffffffffffffff82e2e2e28282e2e2 e24d00ffffffffffffffffffffffffffffffffffffffffffff82828282e2 e2e2e2e24dffffffffffffffffffffffffffffffffffffffffffffffff82 82e2e2e24d004dffffffffffffffffffffffffffffffffffffffffffffff ffff82e2004d004dffffffffffffffffffffffffffffffffffffffffffff ffffffff4d4d004d4d4dffffffffffffffffffffffffffffffffffffffff ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: heart.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffff001d0000000000 0000ffffffffffffffffffffffffffffffffffffff00000000ff004e0000 004e004e00000000ffffffffffffffffffffffffffff00004e0000004e00 00004e004e4e4e4e4e4e00ffffffffffffffffffffffffff00001d000000 00004e00004e004e004e004e0000ffffffffffffffffffffffffff000000 000000004e004e004d4d004e4e4e4e00ffffffffffffffffffffffffffff ff00004e004e00004d000000004d0000000000ffffffffffffffffffff00 0000000000004e00004d004e4e4e4e004e004d0000ffffffffffffffffff ff00001d0000004e004e004e004e004e004e00004e0000ffffffffffffff ffffffff000000000000004d00004e004e004e4e4e4e4e0000ffffffffff ffffffffffffffff004e004e0000004e004e004e004e004e004e00ffffff ffffffffffffffffffff00004e00004e000000004d004e4e004e4e4e00ff ffffffffffffffffffffff00004e004e0000004e004e004d004e004e004e 00ffffffffffffffffffffffff0000004e004e4d4e004e004e004d4d4e00 4e4e00ffffffffffffffffffffffff00004e1d4e0000004e004e004e0000 4d4e004e00ffffffffffffffffffffffffff000000004e004d004e004e00 00004d00004e00ffffffffffffffffffffffffffff00004e1d4e004e004e 004e004e004d000000ffffffffffffffffffffffffffffff000000004e00 4e004e0000004e004e00ffffffffffffffffffffffffffffffffffff0000 0000004e1d4e004e1d4e4e00ffffffffffffffffffffffffffffffffffff ffffff000000000000004e000000ffffffffffffffffffffffffffffffff ffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: hide-black.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffff ffffffffffffffffffffffffffffffffffffffff00ff0000000000ffffff ffffffffffffffffffffffffff00000000ffffffffff00000010000000ff 0000ffffffffffffffffffffffffff0003000000ffffff00000000000806 000000ffffffffffffffffffffffffffff000000000000ff000000001300 0304020000ffffffffffffffffffffffffffffff00000000000000000000 00001700060500000000ffffffffffffffffffffffffff00000000000000 000000000000000a030000ffffffffffffffffffffffffff00ff00000000 000e000000000000002f0400000000ffffffffffffffffff00ff00000001 00000000000000000a09000000030200ffffffffffffffffffff00ff0000 010000000709040009000000000003042100ffffffffffffffffffff0000 0000010001020907000000000000000001002700ffffff0000ffffff00ff 0000000000000002060500060000000000000300000000ffff000000ffff 00000000000000000002050900070b0000000000000300ffffffff001600 00ffff0000000000000000021208001c000000000000000200ffffffff00 120b000000000700000000000000000000000000000100020000000000ff ff00000a0905050806000004000000000000001800000304030400000506 0000ffff00090000000c0000000000000000000000070000000605050000 00080800ffff001100000000000000000000000000000000000000051200 00ffff000000ffff000d0000000000000006000000080006000000000000 00000000ffff0000ffff000c0000000000000a0000000a0b060000000000 00000000ffffffffffffffff000000000000000000000000000000000000 0000000000ffffffffffffffffff000018000e00000d060000000a110000 1c00000000ff000000ffffffffffff0000000a0000000000090001000000 00000000060000ffffff00ffffffffffff00ff0000000000000000000008 0700000000050000ff00ffffffffffffffffffffffff0000060203000000 0000050b0000060600ffff00ffffffffffffffffffffff00ff0003050616 0202000000000000031000ffffffffffffffffffffffffffffffff000510 0e130000000000002700021e000000ffffffffffffffffffffffffff000f 0c0000000200010105160000001809070000ffffffffffffffffffffffff 000000ffffff0001010107250500000005140a00ffffffffffffffffffff ffffff00ffffff000000000000000000000000000700ffffffffffffffff ffffffffffffffffffff00ff000000ffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: icor.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff7878787878787878ffffffffffffffffffffffffffffff ffffffffffffff787878787878787865787878ffffffffffffffffffffff ffffffffffffffff7878787865657878657865787878ffffffffffffffff ffffffffffffffffff78787878657878657878787878787878ffffffffff ffffffffffffffffffffff78787878787878787878787878787878ffffff ffffffffffffffffffffff7878787878657878787878786578787878ffff ffffffffffffffffffffffff7878787878657865787878786578657878ff ffffffffffffffffffffffffffff78787878787878787878787878787878 787878ffffffffffffffffffffffffff7878787878787865657878787878 787878787878ffffffffffffffffffffffffff7878787878657878657878 78787878787878ffffffffffffffffffffffffffffffff78787878787878 78ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: icor.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffff7878787878787878ffffffffffffffffffffffffffffff ffffffffffffff787878787878787865787878ffffffffffffffffffffff ffffffffffffffff7878787865657878657865787878ffffffffffffffff ffffffffffffffffff78787878657878657878787878787878ffffffffff ffffffffffffffffffffff78787878787878787878787878787878ffffff ffffffffffffffffffffff7878787878657878787878786578787878ffff ffffffffffffffffffffffff7878787878657865787878786578657878ff ffffffffffffffffffffffffffff78787878787878787878787878787878 787878ffffffffffffffffffffffffff7878787878787865657878787878 787878787878ffffffffffffffffffffffffff7878787878657878657878 78787878787878ffffffffffffffffffffffffffffffff78787878787878 78ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: insect-sting.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff ffffffffffffffffffffffff000000004e4e0000ffffffffffffffffffff ffffffffffffffffffffffffff000000ff00004e4e0000ffffffffffffff ffffffffffffffffffffffffffff0000ffffffff00004e4e00ffffffffff ffffffffffffffffffffffffffffffff00ffffffffffff00000000ffffff ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: insect-wing.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff 00bdbdbdbd00ffffffffffffffffffffffffffffffffffffffffffffffff ff00bdbdbdbdbd00ffffffffffffffffffffffffffffffffffffffffffff ffff00bdbdbd62bd6200ffffffffffffffffffffffffffffffffffffffff ffffffff00bd62bd6262bd00ffffffffffffffffffffffffffffffffffff ffffffffffff00bd62bd62bdbd00ffffffffffffffffffffffffffffffff ffffffffffffff00bdbd62bd62bdbd00ffffffffffffffffffffffffffff ffffffffffffffffff00bdbd626262bd00ffffffffffffffffffffffffff ffffffffffffffffffffff0062bdbdbd62bd00ffffffffffffffffffffff ffffffffffffffffffffff000000bd62bdbd62bd00ffffffffffffffffff ffffffffffffffffffffff0000bdbdbdbd6262bd626200ffffffffffffff ffffffffffffffffffffffff00bdbd6262bd62bdbd62006200ffffffffff ffffffffffffffffffffffffff00bdbdbdbdbd62bdbdbdbd6200ffffffff ffffffffffffffffffffffffffffff00bd6262bd6262bdbd000000ffffff ffffffffffffffffffffffffffffffffff00bdbdbd62bdbdbd00ffffffff ffffffffffffffffffffffffffffffffffffffff00bdbd00000000ffffff ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: leg.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffff00004d0000ffffffffffffffffffffffffffffffffffffffff ffffffffffff00e2e200004dffffffffffffffffffffffffffffffffffff ffffffffffffff00e2e2e2e20000ffffffffffffffffffffffffffffffff ffffffffffffffff00e2e2e2e2e2e20000ffffffffffffffffffffffffff ffffffffffffffffffff00e2e2e2e2e20000ffffffffffffffffffffffff ffffffffffffffffffffff00e2e2e2e2e2e20000ffffffffffffffffffff ffffffffffffffffffffffffff0000e2e2e2e20000ffffffffffffffffff ffffffffffffffffffffffffffffff00e2e2e2e20000ffffffffffffffff ffffffffffffffffffffffffffffffff00e2e2e2e20000ffffffffffffff ffffffffffffffffffffffffffffffffffff00e2e2e200ffffffffffffff ffffffffffffffffffffffffffffffffffffffff00e2e2e200ffffffffff ffffffffffffffffffffffffffffffffffffffffffff00e2e2e200ffffff ffffffffffffffffffffffffffffffffffffffffffffffffff00e2e200ff ffffffffffffffffffffffffffffffffffffffffffffffffffffff00e200 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 e200ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff004d00ffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: liver.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000 000000000000000000ffffffffffffffffffffffffffffffffffff000000 4d005e005e004d005e00000000ffffffffffffffffffffffffffff00005e 005e005e5e5e005e005e005e00000000ffffffffffffffffffffffff0000 4d005e5e5e005e005e005e000000005e005e00ffffffffffffffffffffff 005e005e005e5e5e005e005e005e005e00005e0000ffffffffffffffffff ffff00005e5e5e005e005e005e005e005e005e00000000ffffffffffffff ffffff00004d005e005e005e005e005e005e005e005e0000ffffffffffff ffffffffff005e005e005e005e005e005e005e00000000000000ffffffff ffffffffffffff000000005e005e005e005e005e005e005e000000ffffff ffffffffffffffffff00005e00005e005e005e005e005e0000000000ffff ffffffffffffffffffffffff00005e000000005e005e5e00005e0000ffff ffffffffffffffffffffffffffff000000005e005e00005e0000000000ff ffffffffffffffffffffffffffffffffff00005e000000005e00005e0000 ffffffffffffffffffffffffffffffffffffffff0000005e000000000000 00ffffffffffffffffffffffffffffffffffffffffffff00000000000000 ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: residue.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff73838b837bffffffffffffffffffffffffff ffffffffffffffffff7382838b939daeb3aea3938b8373ffffffffffffff ffffffffffffffffffff7b9dabaeaeb3b6bdbdbdbbb5b5b39bffffffffff ffffffffffffffffffffff829db3bdbdbdbdbdbdbdbdbdbdbde7e79d7bff ffffffffffffffffffffffff7b9db3bdbdbdbdbdbdbdbdbdbdbdbdc6e7e7 a67bffffffffffffffffffffffff8babb6bdbdbdbdbdbdbdbdbdbdbdbdbd c6e7b58bffffffffffffffffffffffff7b9daeb5bbbbb6b6bbbdbdbdbdbd bdbdbdb6a682ffffffffffffffffffffffffff778ea3aba69b939babb6bd bdbdbdb5a69380ffffffffffffffffffffffffffffffff77837bffffff82 9ba6b5b3a6937bffffffffffffffffffffffffffffffff52ffffffffffff ffffff828b8b7bffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: residue.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff73838b837bffffffffffffffffffffffffff ffffffffffffffffff7382838b939daeb3aea3938b8373ffffffffffffff ffffffffffffffffffff7b9dabaeaeb3b6bdbdbdbbb5b5b39bffffffffff ffffffffffffffffffffff829db3bdbdbdbdbdbdbdbdbdbdbde7e79d7bff ffffffffffffffffffffffff7b9db3bdbdbdbdbdbdbdbdbdbdbdbdc6e7e7 a67bffffffffffffffffffffffff8babb6bdbdbdbdbdbdbdbdbdbdbdbdbd c6e7b58bffffffffffffffffffffffff7b9daeb5bbbbb6b6bbbdbdbdbdbd bdbdbdb6a682ffffffffffffffffffffffffff778ea3aba69b939babb6bd bdbdbdb5a69380ffffffffffffffffffffffffffffffff77837bffffff82 9ba6b5b3a6937bffffffffffffffffffffffffffffffff52ffffffffffff ffffff828b8b7bffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: residue.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffff73838b837bffffffffffffffffffffffffff ffffffffffffffffff7382838b939daeb3aea3938b8373ffffffffffffff ffffffffffffffffffff7b9dabaeaeb3b6bdbdbdbbb5b5b39bffffffffff ffffffffffffffffffffff829db3bdbdbdbdbdbdbdbdbdbdbde7e79d7bff ffffffffffffffffffffffff7b9db3bdbdbdbdbdbdbdbdbdbdbdbdc6e7e7 a67bffffffffffffffffffffffff8babb6bdbdbdbdbdbdbdbdbdbdbdbdbd c6e7b58bffffffffffffffffffffffff7b9daeb5bbbbb6b6bbbdbdbdbdbd bdbdbdb6a682ffffffffffffffffffffffffff778ea3aba69b939babb6bd bdbdbdb5a69380ffffffffffffffffffffffffffffffff77837bffffff82 9ba6b5b3a6937bffffffffffffffffffffffffffffffff52ffffffffffff ffffff828b8b7bffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: serpent-skin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 6868686868ffffffffffffffffffffffffffffffffffffffffffffffff68 68686868ffffff6868ffffffffffffffffffffffffffffffffffffff6868 68ff68ffff68686868ffff68ffffffffffffffffffffffffffff68686868 ffffff6868ffffffffffff6868ff68ffffffffffffffffffffffffff68ff 6868686868ffffffffffffffffff68ff68ffffffffffffffffffffffffff 6868ffffffffffffffffffffffffffff68ff68ffffffffffffffffffffff ffff68ffffffffffffffffffffffffffff6868ff68ffffffffffffffffff ffffffffffffffffff686868686868ffffff6868ffff68ffffffffffffff ffffffffffffffffff6868ffffffffff68686868ffff6868ffffffffffff ffffffffffffffffffff6868ff686868686868ffffffff68ffffffffffff ffffffffffffffffffffff68ffff68ffffffffffff68686868ffffffffff ffffffffffffffffffffffffff68ff6868ffffffffffffffffffffffffff ffffffffffffffffffffffffffffff68ff68ffffffffffffffffffffffff ffffffffffffffffffffffffffffffffff6868ff68ffffffffffffffffff ffffffffffffffffffffffffffffffffffffffff68ff68686868ffffffff ffffffffffffffffffffffffffffffffffffffffffff6868ffffffff6868 ffffffffffffffffffffffffffffffffffffffffffffffffff6868686868 ff6868ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffff68ff68ffffffffffffffffffffffffffffffffffffffff68ff686868 68ffff68ffffff68ffffffffffffffffffffffffffffffffffffffff6868 68ffff6868ffffff68ffffffffffffffffffffffffffffffffffffffffff ffffff68686868686868ffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: sheepskin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffff00000000ffffffffffff000000ffffffffffffffffff ffffffffffffffffffff00cccc0000ffffff0000000000000000ffffffff ffffffffffffffffffffffff0000cccc0000ffff00ffffffffffff0000ff ffffffffffffffffffffffffffffff0000cccc00000000ffffffffffffff ff00ffffffffffffffffffffffffffffffff0000ccccffffffffccccffff ffffff0000ffffffffffffffffffffffffffffffff00ffffffffffffffcc ffffffffffff000000ffffffffffffffffffffffffffff00ffffffffcccc ffffffffffffffffff0000ffffffffffffffffffffffff000000ffffffff ffccffffccccffccccffffff0000ffffffffffffffffffffff00ffffffcc ccccffffffffccffffffccffffffff00ffff0000ffffffffffff0000ffff ffffffccffffffffffffffffffffffffff00ffff000000ffffffff0000ff ffccccffffffffffffffffffffffffffffffff00ffff00cc0000ffff0000 ffffffffccffffffccccffffffccffccccffffff0000ffff00cccc000000 00ffccccffffffffccffffccffffccccffffccffffff00ffffff0000ffff ffffffffffccffffffccccffffffffffffffffffffffffff00ffffffff00 ffffffffffffffffffffffffffccffffffffffffffffffffffff000000ff ff00ffffffffccccccffccccffffffffffffffccffffccffffffffffcccc 0000ff00ffffffffffffccffffccffffffffffffffccccffccccffff0000 00cccc00ff00ffffffccccffffffffffffffccccffffffffffffffffff00 00ff00000000ff00ffffffffffccffffffccffffffccffccccffffffffff 0000ffffffff0000ff00ffffffffffffffccccffffffffffffffccffffff ffff00ffffffffffffffff00ffffffccccffffffccffffffffffffffffff ffffff00ffffffffffffffffff0000ffffffccffffffffffffccccffffcc ccffffff00ffffffffffffffffffffff0000ffffffffccccffffffffccff ffffccffff0000ffffffffffffffffffffffff0000ffffffffccffffffff ffffffffffff0000ffffffffffffffffffffffffffff000000ffffffffff ffffffffffffffff00ffffffffffffffffffffffffffffff00ff0000ffff ffffccccffffffffffff0000ffffffffffffffffffffffffffff00ffff00 0000ffffffccffffffffffff000000ffffffffffffffffffffffffff00ff ffffff0000ffffffffffffffffffcccc0000ffffffffffffffffffffffff 0000000000000000ffffffffffffffcccccccc0000ffffffffffffffffff ffffffffffffffffff0000ff0000000000000000cc0000ffffffffffffff ffffffffffffffffffffffff000000ffffffffffff000000ffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: skin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 000000ffffffffffffffffffffffffffffffffffffffffffffffff000000 00e266e2e200ffffffffffffffffffffffffffffffffffffffff00000000 e2e2e266e2e2e20000ffffffffffffffffffffffffffffffffffff0000e2 e2e266e2e2e2e2e2e2e200ffffffffffffffffffffffffffffffffff0000 e2e2e2e266e2e2e2e2e26600ffffffffffffffffffffffffffffffffff00 00e2e2e2e2e2e2e2e266e266e2e200ffffffffffffffffffffffffffffff ff00e2e2e266e2e2e2e266e2e2e2e2e200ffffffffffffffffffffffffff ffffff0000e2e266e2e2e2e2e2e2e266e2e20000ffffffffffffffffffff ffffffffffff00e2e2e2e2e2e2e2e2e2e266e2e2e2e200ffffffffffffff ffffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e2e20000ffffffff ffffffffffffffffff0000e2e266e2e266e2e2e2e2e2e2e2e2e2e200ffff ffffffffffffffffffff0000e2e266e2e2e266e2e2e2e2e2e2e2e2e200ff ffffffffffffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e266e2e2e2e2 00ffffffffffffffffffffffffff0000e2e2e2e2e2e2e2e2e2e266e2e2e2 e2e200ffffffffffffffffffffffffff0000000000000000e2e2e2e2e2e2 e2e2e2e20000ffffffffffffffffffffffffffff0000ffff4d0000e2e2e2 e2e2e2e2e2e200ffffffffffffffffffffffffffffff00ffffffffff4d00 e2e2e2000000000000ffffffffffffffffffffffffffffffffffffffffff ff00000000004d4d00ffffffffffffffffffffffffffffffffffffffffff ffffffff004d00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: skin.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 000000ffffffffffffffffffffffffffffffffffffffffffffffff000000 00e266e2e200ffffffffffffffffffffffffffffffffffffffff00000000 e2e2e266e2e2e20000ffffffffffffffffffffffffffffffffffff0000e2 e2e266e2e2e2e2e2e2e200ffffffffffffffffffffffffffffffffff0000 e2e2e2e266e2e2e2e2e26600ffffffffffffffffffffffffffffffffff00 00e2e2e2e2e2e2e2e266e266e2e200ffffffffffffffffffffffffffffff ff00e2e2e266e2e2e2e266e2e2e2e2e200ffffffffffffffffffffffffff ffffff0000e2e266e2e2e2e2e2e2e266e2e20000ffffffffffffffffffff ffffffffffff00e2e2e2e2e2e2e2e2e2e266e2e2e2e200ffffffffffffff ffffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e2e2e2e20000ffffffff ffffffffffffffffff0000e2e266e2e266e2e2e2e2e2e2e2e2e2e200ffff ffffffffffffffffffff0000e2e266e2e2e266e2e2e2e2e2e2e2e2e200ff ffffffffffffffffffffffff00e2e2e2e2e2e2e2e2e2e2e2e266e2e2e2e2 00ffffffffffffffffffffffffff0000e2e2e2e2e2e2e2e2e2e266e2e2e2 e2e200ffffffffffffffffffffffffff0000000000000000e2e2e2e2e2e2 e2e2e2e20000ffffffffffffffffffffffffffff0000ffff4d0000e2e2e2 e2e2e2e2e2e200ffffffffffffffffffffffffffffff00ffffffffff4d00 e2e2e2000000000000ffffffffffffffffffffffffffffffffffffffffff ff00000000004d4d00ffffffffffffffffffffffffffffffffffffffffff ffffffff004d00ffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tongue.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff ffffffffffffffffffffffffffffffffffffffffffffffff00ffff004d00 4e00ffffffffffffffffffffffffffffffffffffffffffffffffff00004e 004e004e00ffffffffffffffffffffffffffffffffffffffffffffff004e 4d004d004d004d00ffffffffffffffffffffffffffffffffffffffffffff 004d004e004d4d4d4d4d0000ffffffffffffffffffffffffffffffffffff ff00ff004e00004d00004d4d4d4d00ffffffffffffffffffffffffffffff ffffffff004e004d4d4d4d00004d4d4d4d00ffffffffffffffffffffffff ffffffffffff004d004d4d4d4d4d4d00004d4d4d00ffffffffffffffffff ffffffffffffffffff004d004d4d4d4d4d4d00004d4d4d00ffffffffffff ffffffffffffffffffffffff0000004d4d4d4d4d4d004d4d4d00ffffffff ffffffffffffffffffffffffffffffff0000004d4d4d4d00004d4d4d00ff ffffffffffffffffffffffffffffffffffffff0000004d4d4d4d004d4d4d 00ffffffffffffffffffffffffffffffffffffffffffff00004d4d4d4d00 4d4d00ffffffffffffffffffffffffffffffffffffffffffffff004d4d4d 4d004d4d00ffffffffffffffffffffffffffffffffffffffffffffff0000 4d4d4d4d4d00ffffffffffffffffffffffffffffffffffffffffffffffff ff00004d000000ffffffffffffffffffffffffffffffffffffffffffffff ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tooth.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff ff0000ff00ff000000ff0000ffffffffffffffffffffffffffffffffffff ffff0000ff00000000ff00626200ffffffffffffffffffffffffffffffff ffffffff00ff62ffff00626200ffff00ffffffffffffffffffffffffffff ffffffffffff00ffff626200ff0062ffff00ffffffffffffffffffffffff ffffffffffffffff00ffffffffff62ffffffff00ffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffff ffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffff0000ffffffff000000ffff00 ffffffffffffffffffffffffffffffffffffffff000000ffff00004d00ff ff00ffffffffffffffffffffffffffffffffffffffff004d00ffff00ff00 ff00ff00ffffffffffffffffffffffffffffffffffffffff00ff00ff00ff ffffff000000ffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff 0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 127 w @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: tooth.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff ff0000ff00ff000000ff0000ffffffffffffffffffffffffffffffffffff ffff0000ff00000000ff00626200ffffffffffffffffffffffffffffffff ffffffff00ff62ffff00626200ffff00ffffffffffffffffffffffffffff ffffffffffff00ffff626200ff0062ffff00ffffffffffffffffffffffff ffffffffffffffff00ffffffffff62ffffffff00ffffffffffffffffffff ffffffffffffffffffffff00ffffffffffffffffff00ffffffffffffffff ffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffff ffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffff ffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffff ffffffffffffffffffffffffffffffffffff0000ffffffff000000ffff00 ffffffffffffffffffffffffffffffffffffffff000000ffff00004d00ff ff00ffffffffffffffffffffffffffffffffffffffff004d00ffff00ff00 ff00ff00ffffffffffffffffffffffffffffffffffffffff00ff00ff00ff ffffff000000ffffffffffffffffffffffffffffffffffffffffffff0000 ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff 0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffff ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 227 5227 a Fz(These)34 b(items)e(pro)m(vide)g(sustenance.) 46 b(F)-8 b(o)s(o)s(d)31 b(is)h(generally)f(more)h(health)m(y)g(to)g (eat,)h(while)e(some)227 5343 y(\035esh)h(items)e(can)i(b)s(e)f(sold)f (for)h(go)s(o)s(d)e(cash.)44 b(Both)31 b(t)m(yp)s(es)h(ma)m(y)f(temp)s (orarily)d(alter)i(y)m(our)i(stats,)227 5459 y(and/or)k(b)s(e)h(p)s (oisonous.)55 b(Man)m(y)38 b(\035esh)g(items)d(inherit)g(the)i(prop)s (erties)g(of)f(the)h(monster)f(they)227 5576 y(came)g(from.)53 b(F)-8 b(or)35 b(example,)i(a)e(\020p)s(oisonous\021)43 b(monster)36 b(will)e(lea)m(v)m(e)i(b)s(ehind)g(p)s(oisonous)g (\035esh.)227 5692 y(Don't)d(eat)g(it)e(if)h(y)m(ou)h(kno)m(w)h(what's) f(go)s(o)s(d)e(for)h(y)m(ou!!)1948 6057 y(33)p eop end %%Page: 34 38 TeXDict begin 34 37 bop 374 333 a Fy(W)-9 b(eap)s(ons/Armour:)227 449 y Fz(T)h(ons)41 b(of)e(items,)i(it)e(is)g(up)h(to)g(y)m(ou)g(as)g (the)g(pla)m(y)m(er)g(to)g(\034gure)g(out)g(whic)m(h)g(w)m(ork)g(b)s (etter)h(then)227 565 y(others.)64 b(T)-8 b(ak)m(e)40 b(a)f(lo)s(ok)e(at)i(w)m(eap)s(on/armour)f(w)m(eigh)m(t)i(in)e(the)h Fx(Cross\034re)i Fy(Sp)s(oiler)d Fz(to)g(get)h(an)227 682 y(idea)32 b(of)g(ho)m(w)i(enc)m(han)m(ted)g(uniden)m(ti\034ed)f (items)e(are.)374 914 y Fy(Artifacts:)227 1030 y Fz(These)46 b(are)e(the)g(real)f(treasures)i(of)f(the)g(game.)77 b(There)45 b(are)f(more)f(than)h(20)f(artifacts)g(out)227 1146 y(there,)34 b(but)e(they)i(are)e(v)m(ery)i(hard)f(to)f(come)g(b)m (y)-8 b(.)227 1533 y Fy(Section)37 b(6.3.)h(Encum)m(brance)227 1748 y Fz(Armour,)46 b(w)m(eap)s(ons,)h(shields)c(will)f(encum)m(b)s (er)i(a)f(wizard)g(and)h(cause)g(sp)s(ell)f(failure.)74 b(Ligh)m(t)227 1864 y(equipmen)m(t)33 b(causes)g(no)f(failure)e(at)i (all)e(whereas)j(hea)m(vy)h(equipmen)m(t)e(causes)h(mondo)e(failures.) 374 1981 y(The)j(reasoning)e(is)h(that)g(the)g(bulkiness)h(of)e(ob)5 b(jects,)35 b(not)e(their)f(w)m(eigh)m(t)i(exactly)-8 b(,)33 b(is)g(what)227 2097 y(causes)g(failures.)42 b(So)32 b(the)g(basic)f(idea)g(of)g(encum)m(brance)i(is)e(that)g(items)g(get)g (in)g(the)h(w)m(a)m(y)h(more)227 2213 y(than)e(they)g(w)m(eigh)g(do)m (wn.)43 b(Unfortunately)-8 b(,)31 b(our)f(only)g(measure)h(of)f ('getting)f(in)h(the)h(w)m(a)m(y')g(w)m(as)227 2329 y(the)i(w)m(eigh)m (t.)227 2589 y Fy(6.3.1.)38 b(Ho)m(w)f(encum)m(brance)h(is)e (calculated)227 2770 y Fz(Encum)m(brance)41 b(p)s(oin)m(ts)d(are)h (tallied)d(only)j(from)e Fu(applie)-5 b(d)38 b Fz(ob)5 b(jects.)64 b(W)-8 b(eap)s(ons)39 b(giv)m(e)g(3x)g(their)227 2886 y(w)m(eigh)m(t)c(in)f(kg)g(in)g(encum)m(brance)h(p)s(oin)m(ts.)49 b(Shields)34 b(giv)m(e)g(1/2)f(their)h(w)m(eigh)m(t)h(in)e(kg)i(in)e (encum-)227 3002 y(brance)h(p)s(oin)m(ts.)43 b(Armour)31 b(giv)m(es)i(its)f(w)m(eigh)m(t)h(in)f(encum)m(brance)i(p)s(oin)m(ts.) 374 3118 y(There's)42 b(an)f(allo)m(w)m(ance)g(of)f(encum)m(brance)j(p) s(oin)m(ts)d(whic)m(h)i(all)c(pla)m(y)m(ers)k(get)f(b)s(efore)g(they) 227 3234 y(start)33 b(losing)e(incan)m(tations,)g(this)i(w)m(as)g(ab)s (out)f(35-45,)f(not)i(to)s(o)e(m)m(uc)m(h.)374 3351 y(The)25 b(form)m(ula)d(w)m(orks)j(lik)m(e)e(this:)39 b(Y)-8 b(ou)24 b(mak)m(e)g(a)g(roll)e(of)i(1-200.)39 b(Y)-8 b(ou)24 b(compare)f(it)h(to)f(a)h(failure)227 3467 y(threshold.)44 b(This)31 b(threshold)h(is:)42 b(encum)m(brance)33 b(+)e(incan)m (tation)f Fv(level)j Fz(-)e(caster)h Fv(level)h Fz(-)e(35)374 3583 y(F)-8 b(or)25 b(example,)h(lets)g(sa)m(y)h(a)e(4th)h Fv(level)h Fz(wizard)f(is)f(casting)g(a)h(5th)f Fv(level)j Fz(incan)m(tation.)39 b(The)227 3699 y(wizard)33 b(is)f(w)m(earing)h (plate)f(mail)e(\(100)i(kg\),)h(a)f(20)h(kg)g(shield)f(and)h(wielding)e (a)h(15)g(kg)h(w)m(eap)s(on.)227 3816 y(His)i(encum)m(brance)h(is)e (100)g(+)h(10)f(+)h(45)f(=)g(155.)50 b(Th)m(us,)37 b(his)d(threshold)h (for)f(failure)f(is)h(155)g(+)227 3932 y(5)f(-)f(4)g(=)g(156)g(or)g (just)h(ab)s(out)f(3/4)g(failure)f(rate.)374 4048 y(There)41 b(is)f(no)h(sp)s(ecial)e(b)s(on)m(uses)j(for)e(using)g(magical)e (equipmen)m(t,)43 b(although,)e(it)f(is)g(clear)227 4164 y(that)33 b(magical)c(armour)j(and)g(w)m(eap)s(ons)i(mak)m(e)f(things)f (b)s(etter)h(through)f(their)g(w)m(eigh)m(t.)227 4435 y Fy(Section)37 b(6.4.)h(Enc)m(han)m(tmen)m(ts)227 4650 y Fz(Some)26 b(items)f(will)e(ha)m(v)m(e)28 b(n)m(umerical)c(v)-5 b(alues)26 b(suc)m(h)h(as)f(+1,)h(+2,)g(+3,)g(etc.)42 b(trailing)23 b(their)i(names.)227 4766 y(These)40 b Fu(magic)c Fz(v)-5 b(alues)38 b(indicate)e(that)h(the)h(item)e(is)h (enc)m(han)m(ted,)k(and)d(in)f(some)g(w)m(a)m(y)i(ma)m(y)e(b)s(e)227 4882 y(b)s(etter)c(or)f(\(if)g(the)h(v)-5 b(alue)32 b(is)g(negativ)m (e\))g(w)m(orse)i(than)f(ordinary)e(runada)m(y)j(items)d(of)h(its)g (kind.)227 5142 y Fy(6.4.1.)38 b(Enc)m(han)m(ting)f(armour)227 5322 y Fz(Enc)m(han)m(tmen)m(t)32 b(of)d(armour)g(is)h(ac)m(hiev)m(ed)h (with)f(the)g Fu(enchant)i(armour)d @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: scroll.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000ffffffffffffffffffffffffffffff0000a6a6a6a6a6a6a6a6a6 a6a6a6a6a6a600ffffffffffffffffffffffffffff009300dfdfdfdfdfdf dfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff009300df000000 df00df0000dfdfdf00dfdf00ffffffffffffffffffffffffff009300dfdf 00df000000dfdfdf00df00dfdf00ffffffffffffffffffffffffffff0000 dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffffff ff00dfdf000000df00df00dfdf00dfdfdf00ffffffffffffffffffffffff ffff00df0000df00dfdf0000df0000dfdfdf00ffffffffffffffffffffff ffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffff ffffffffffff00df00dfdf00dfdf00dfdf00df00dfdf00ffffffffffffff ffffffffffffffff00dfdf0000dfdf000000df00df0000df00ffffffffff ffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffff ffffffffffffffffffffffff00dfdf00dfdfdf00dfdf00df00dfdfdf00ff ffffffffffffffffffffffffff00dfdf00df000000000000dfdfdf00df00 ffffffffffffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdf df00ffffffffffffffffffffffffffffff00dfdfdf00dfdf00dfdfdfdf00 dfdfdf00ffffffffffffffffffffffffffffff00a6a600a6000000a6a600 a6a6a600a600ffffffffffffffffffffffffffffff00a6a6a6a6a6a6a6a6 a6a6a6a6a6a6a600ffffffffffffffffffffffffffffff00000000000000 00000000000000000000ffffffffffffffffffffffffffffff0093009393 93939393939393939393939300ffffffffffffffffffffffffffff000093 00dfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff00 9300a6a6a6a6a6a6a6a6a6a6a6a6a6a6a600ffffffffffffffffffffffff ffff0000000000000000000000000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 155 w Fz(scrolls.)42 b(Eac)m(h)31 b(time)227 5439 y(y)m(ou)h(successfully)h(use)f(a)f(scroll,)f(y)m(ou)i(will)d(add) j(a)f(plus)g(v)-5 b(alue,)31 b(more)f(armour)g(to)h(the)h(piece)g(of) 227 5555 y(equipmen)m(t)h(and)g(some)f(fractional)e(amoun)m(t)i(of)g(w) m(eigh)m(t.)374 5671 y(Y)-8 b(ou)31 b(ma)m(y)h(only)f(add)g(up)h(to)g (1)f(+)h(\(o)m(v)m(erall)e Fv(level)p Fz(/10\))i(\(rounded)h(do)m(wn)f (lik)m(e)f(an)g(in)m(teger\))227 5787 y(in)h(pluses)h(to)e(an)m(y)i (one)f(piece)h(of)e(armour.)43 b(Ho)m(w)32 b(m)m(uc)m(h)h(armour)e(v)-5 b(alue)31 b(y)m(ou)i(add)f(to)g(the)h(item)1948 6057 y(34)p eop end %%Page: 35 39 TeXDict begin 35 38 bop 227 333 a Fz(is)32 b(also)g(dep)s(enden)m(t)i (on)e(y)m(our)h(o)m(v)m(erall)e Fv(level)p Fz(.)45 b(Y)-8 b(ou)32 b(ma)m(y)g(nev)m(er)i(enc)m(han)m(t)g(a)e(piece)h(of)e(armour) 227 449 y(to)i(ha)m(v)m(e)g(an)g(armour)e(rating)g(greater)i(than)f (their)g(o)m(v)m(erall)g Fv(level)i Fz(or)e(99.)227 709 y Fy(6.4.2.)38 b(Enc)m(han)m(ting)f(w)m(eap)s(ons)227 889 y Fz(This)44 b(is)f(done)h(via)f(a)g(series)h(of)f(scrolls)f @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: scroll.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffff000000000000000000000000 00000000ffffffffffffffffffffffffffffff0000a6a6a6a6a6a6a6a6a6 a6a6a6a6a6a600ffffffffffffffffffffffffffff009300dfdfdfdfdfdf dfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff009300df000000 df00df0000dfdfdf00dfdf00ffffffffffffffffffffffffff009300dfdf 00df000000dfdfdf00df00dfdf00ffffffffffffffffffffffffffff0000 dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffffff ff00dfdf000000df00df00dfdf00dfdfdf00ffffffffffffffffffffffff ffff00df0000df00dfdf0000df0000dfdfdf00ffffffffffffffffffffff ffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffff ffffffffffff00df00dfdf00dfdf00dfdf00df00dfdf00ffffffffffffff ffffffffffffffff00dfdf0000dfdf000000df00df0000df00ffffffffff ffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffff ffffffffffffffffffffffff00dfdf00dfdfdf00dfdf00df00dfdfdf00ff ffffffffffffffffffffffffff00dfdf00df000000000000dfdfdf00df00 ffffffffffffffffffffffffffffff00dfdfdfdfdfdfdfdfdfdfdfdfdfdf df00ffffffffffffffffffffffffffffff00dfdfdf00dfdf00dfdfdfdf00 dfdfdf00ffffffffffffffffffffffffffffff00a6a600a6000000a6a600 a6a6a600a600ffffffffffffffffffffffffffffff00a6a6a6a6a6a6a6a6 a6a6a6a6a6a6a600ffffffffffffffffffffffffffffff00000000000000 00000000000000000000ffffffffffffffffffffffffffffff0093009393 93939393939393939393939300ffffffffffffffffffffffffffff000093 00dfdfdfdfdfdfdfdfdfdfdfdfdfdf00ffffffffffffffffffffffffff00 9300a6a6a6a6a6a6a6a6a6a6a6a6a6a6a600ffffffffffffffffffffffff ffff0000000000000000000000000000000000ffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 182 w(that)h(y)m(ou)h(ma)m(y)f(\034nd)h(or)f(buy)h(in)f (shops.)77 b(The)227 1006 y(pro)s(cedure)31 b(is)e(done)i(in)e(t)m(w)m (o)h(steps.)44 b(Use)31 b(the)f Fu(pr)-5 b(ep)g(ar)g(e)32 b(we)-5 b(ap)g(on)29 b Fz(scroll)f(to)i(la)m(y)f(a)h(magic)e(matrix)227 1122 y(on)34 b(y)m(our)g(w)m(eap)s(on.)46 b(Then)35 b(use)f(an)m(y)g (of)f(the)h(other)g(scrolls)e(to)h(add)h(enc)m(han)m(tmen)m(ts)h(y)m (ou)f(w)m(an)m(t.)227 1238 y(Note)g(that)e(some)h(of)g(these)h(scrolls) e(will)f(also)h(require)h(a)g(\020sacri\034ce\021)41 b(to)32 b(b)s(e)i(made)e(when)i(they)227 1354 y(are)e(read.)43 b(T)-8 b(o)32 b(sacri\034ce)g(an)g(ob)5 b(ject)32 b(just)g(stand)g(o)m (v)m(er)h(it)d(when)j(y)m(ou)f(read)g(the)g(w)m(eap)s(on)g(scroll.)227 1471 y(Scrolls)g(for)g(w)m(eap)s(on)h(enc)m(han)m(tmen)m(t)h(are:)374 1703 y Fy(Prepare)j(w)m(eap)s(on)227 1819 y Fz(Diamonds)29 b(are)h(required)g(for)f(the)h(sacri\034ce.)43 b(The)31 b(item)d(can)i(b)s(e)g(enc)m(han)m(ted)h(the)f(square)h(ro)s(ot)227 1935 y(of)44 b(the)g(n)m(um)m(b)s(er)g(of)f(diamonds)g(sacri\034ced.)77 b(Th)m(us,)49 b(if)42 b(100)h(diamonds)g(are)h(sacri\034ced,)j(the)227 2052 y(w)m(eap)s(on)34 b(can)e(ha)m(v)m(e)i(10)e(other)h(enc)m(han)m(t) h(scrolls)e(read.)374 2284 y Fy(Impro)m(v)m(e)k(damage)227 2400 y Fz(There)42 b(is)e(no)g(sacri\034ce.)68 b(Eac)m(h)41 b(scroll)e(read)i(will)d(increase)j(the)g(damage)e(b)m(y)j(5)e(p)s(oin) m(ts,)i(and)227 2517 y(the)33 b(w)m(eigh)m(t)g(b)m(y)h(5)e(kilograms.) 374 2749 y Fy(Lo)m(w)m(er)37 b(\(Impro)m(v)m(e\))f(W)-9 b(eigh)m(t)227 2865 y Fz(There)30 b(is)d(no)h(sacri\034ce.)42 b(Eac)m(h)29 b(scroll)e(read)h(will)e(reduce)j(the)g(w)m(eigh)m(t)f(b)m (y)h(20\045.)42 b(The)29 b(minim)m(um)227 2982 y(w)m(eigh)m(t)k(a)f(w)m (eap)s(on)i(can)e(ha)m(v)m(e)i(is)e(1)h(gram.)374 3214 y Fy(Enc)m(han)m(t)k(w)m(eap)s(on)227 3330 y Fz(This)c(do)s(es)g(not)f (require)h(an)m(y)g(sacri\034ces,)h(and)f(increases)g(the)g(magic)e(b)m (y)i(1.)374 3563 y Fy(Impro)m(v)m(e)j(Stat)d Fz(\(ie,)f(Strength,)h (Dexterit)m(y)-8 b(,)33 b(etc\))227 3690 y(The)39 b(sacri\034ce)g(is)e (the)i(p)s(otion)d @beginspecial 290 @llx 380 @lly 321 @urx 411 @ury 113 @rwi 113 @rhi @setspecial %%BeginDocument: potiongen.111.ps %!PS-Adobe-3.0 EPSF-3.0 %%LanguageLevel: 1 %%Creator: pnmtops %%Title: noname.ps %%Pages: 1 %%BoundingBox: 290 380 321 411 %%EndComments %%BeginSetup /readstring { currentfile exch readhexstring pop } bind def /picstr 32 string def %%EndSetup %%Page: 1 1 gsave 290.64 380.64 translate 30.72 30.72 scale 32 32 8 [ 32 0 0 -32 0 32 ] { picstr readstring } image ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff00858500ffffffffffffffffffffffffffffffffffffffffffff ffffffffffff00668500ffffffffffffffffffffffffffffffffffffffff ffffffffff00000039000000ffffffffffffffffffffffffffffffffffff ffffffffff00004537004e7800ffffffffffffffffffffffffffffffffff ffffffffffff00444f54005c879200ffffffffffffffffffffffffffffff ffffffffffffff0039556d71789ba800a500ffffffffffffffffffffffff ffffffffffffffffff00446580929eb2eaeeb300ffffffffffffffffffff ffffffffffffffffffff002d4f6d8a9ba5bceaeebc00ffffffffffffffff ffffffffffffffffffffffff0039546d8a9ea8b2c5d0b200ffffffffffff ffffffffffffffffffffffffffff0039536a879ba8afb2ba9e00ffffffff ffffffffffffffffffffffffffffffff002b4e65798a969da09b8a00ffff ffffffffffffffffffffffffffffffffffffff0037546a798087806f00ff ffffffffffffffffffffffffffffffffffffffffff002b3d546565666055 00ffffffffffffffffffffffffffffffffffffffffffffff000038444449 0000ffffffffffffffffffffffffffffffffffffffffffffffffffff0000 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffff currentdict /inputf undef currentdict /picstr undef currentdict /rpicstr undef currentdict /gpicstr undef currentdict /bpicstr undef grestore showpage %%Trailer %%EndDocument @endspecial 170 w(of)i(the)g(same)g(t)m(yp)s(e)h(as)f(the)h(abilit)m (y)c(to)j(b)s(e)g(increased)h(\(ie,)227 3807 y(Impro)m(v)m(e)c (Strength)f(requires)h(strength)f(p)s(otions\).)46 b(The)35 b(n)m(um)m(b)s(er)f(of)f(p)s(otions)g(needed)i(is)f(the)227 3923 y(sum)45 b(of)g(all)e(the)i(abilities)d(the)k(w)m(eap)s(on)f (presen)m(tly)i(giv)m(es)e(m)m(ultiplied)d(b)m(y)k(2.)80 b(The)46 b(abilit)m(y)227 4039 y(will)37 b(then)i(b)s(e)f(increased)h (b)m(y)h(1)e(p)s(oin)m(t.)61 b(Th)m(us,)41 b(if)d(a)g(sw)m(ord)h(is)f (In)m(t)h(+2)g(and)f(Str)h(+2,)g(then)g(8)227 4155 y(p)s(otions)d(w)m (ould)h(b)s(e)g(needed)h(to)e(raise)g(an)m(y)i(stat)e(b)m(y)i(one)f(p)s (oin)m(t.)55 b(But)37 b(if)e(the)i(sw)m(ord)h(w)m(as)g(In)m(t)227 4272 y(+2,)26 b(Str)d(+2,)j(and)e(Wis)f(-2,)i(then)f(only)g(4)f(p)s (otions.)40 b(A)24 b(minim)m(um)c(of)k(2)f(p)s(otions)g(will)f(b)s(e)i (needed.)374 4504 y Fy(W)-12 b(ARNING:)53 b Fz(something)i(to)g(k)m (eep)i(in)e(mind)f(b)s(efore)i(y)m(ou)g(start)g(enc)m(han)m(ting)g(lik) m(e)227 4620 y(crazy)p Fw(\000)p Fz(y)m(ou)44 b(can)f(only)e(use)i(a)f (w)m(eap)s(on)h(that)f(has)g(5)g(+)g(1)g(enc)m(han)m(tmen)m(ts)i(for)d (ev)m(ery)j(5)e(lev-)227 4736 y(els)47 b(of)g Fv(physique)i Fz(exp)s(erience)g(y)m(ou)f(p)s(ossess.)89 b(So,)51 b(a)c(c)m(haracter) h(with)f(10th)g(lev)m(el)f(in)h(the)227 4853 y Fv(physique)36 b Fz(exp)s(erience)f(category)f(ma)m(y)f(only)g(b)s(e)h(able)f(to)h (use)g(a)g(w)m(eap)s(on)g(with)f(a)h(maxim)m(um)227 4969 y(of)e(7)h(enc)m(han)m(tmen)m(ts!)1948 6057 y(35)p eop end %%Page: 36 40 TeXDict begin 36 39 bop 227 542 a FA(Chapter)44 b(7.)58 b(Hin)l(ts)44 b(on)g(pla)l(ying)h Fk(Cross\034re)227 959 y Fz(This)35 b(section)f(amoun)m(ts)g(to)g(sp)s(oilers)g(for)f(the) i(game.)48 b(If)34 b(y)m(ou)h(don't)f(lik)m(e)g(that)g(kind)g(of)g (infor-)227 1075 y(mation,)d(don't)i(read)f(an)m(y)i(further)e(in)g (this)g(c)m(hapter!)227 1345 y Fy(Section)37 b(7.1.)h(Beginning)e(pla)m (y)m(ers)227 1560 y Fz(I'm)h(on)g(the)g(starting)f(map,)h(what)h(do)e (I)i(do)e(no)m(w?)58 b(Y)-8 b(ou)37 b(should)f(b)s(e)i(in)e(a)g(cit)m (y)i(square)g(with)227 1676 y(a)c(few)g(sign)g(p)s(osts)g(in)f(the)h (middle.)46 b(Mo)m(v)m(e)35 b(o)m(v)m(er)g(the)f(signs)g(and)g Fv(apply)h Fz(them)e(\(")p Fv(A)p Fz("\))h(to)f(read)227 1793 y(what)g(they)h(sa)m(y)-8 b(.)374 1909 y(F)g(or)35 b(b)s(eginners,)h(there)h(are)e(sev)m(eral)i(maps)e(designed)i(for)e (them.)52 b(Find)35 b(these)i(areas)f(and)227 2025 y(clear)28 b(them)f(out.)42 b(All)26 b(throughout)h(these)i(lev)m(els,)g(a)f(pla)m (y)m(er)g(can)g(\034nd)g(signs)g(and)g(b)s(o)s(oks)g(whic)m(h)227 2141 y(they)k(can)g(read)f(b)m(y)h(stepping)f(on)m(to)g(them)f(and)h (hitting)f(')p Fv(A)p Fz(')h(to)g(apply)f(the)i(b)s(o)s(ok/sign.)41 b(These)227 2257 y(messages)35 b(will)d(help)i(the)g(pla)m(y)m(er)h(to) e(learn)h(the)g(system.)49 b(Probably)34 b(the)g(\034rst,)h(b)s(est)g (area)f(for)227 2374 y(a)e(b)s(eginning)d(pla)m(y)m(er)j(to)f(start)h (out)f(in)f(is)h(\020Beginners\021.)43 b(This)31 b(area)h(is)f(a)g (small)e(house)j(lo)s(cated)227 2490 y(south-w)m(est)i(of)e(y)m(our)i (starting)d(lo)s(cation.)227 2750 y Fy(Flailing)k(ab)s(out)j(with)f(sp) s(ells)227 2930 y Fz(Some)28 b(items)f(are)h(p)s(erishable.)41 b(If)28 b(y)m(ou)h(sho)s(ot)f(a)g(\034reball)e(in)m(to)i(a)f(ro)s(om)g (full)f(of)i(scrolls,)g(y)m(ou)h(will)227 3046 y(notice)k(them)f(going) f(up)i(in)e(smok)m(e!)45 b(So)32 b(b)s(e)h(careful)f(not)g(to)g(destro) m(y)i(v)-5 b(aluable)31 b(items.)227 3306 y Fy(Tips)37 b(on)h(surviving)227 3487 y Fx(Cross\034re)30 b Fz(is)e(p)s(opulated)g (with)g(a)g(w)m(ealth)g(of)g(di\033eren)m(t)g(monsters.)43 b(These)30 b(monsters)e(can)h(ha)m(v)m(e)227 3603 y(v)-5 b(arying)35 b(imm)m(unities)d(and)k(attac)m(kt)m(yp)s(es.)53 b(In)36 b(addition,)e(some)h(of)g(them)g(can)g(b)s(e)h(quite)f(a)g(bit) 227 3719 y(smarter)j(than)g(others.)60 b(It)38 b(will)e(b)s(e)i(imp)s (ortan)m(t)e(for)i(new)h(pla)m(y)m(ers)f(to)g(learn)f(the)i(abilities)c (of)227 3835 y(di\033eren)m(t)e(monsters)g(and)g(learn)e(just)i(ho)m(w) g(m)m(uc)m(h)h(it)d(will)f(tak)m(e)k(to)e(kill)e(them.)374 3952 y(Most)39 b(monsters)f(in)g(the)h(game)f(are)g(out)h(to)f (mindlessly)f(kill)f(and)j(destro)m(y)g(the)g(pla)m(y)m(ers.)227 4068 y(Killing)31 b(monsters)k(will)e(help)h(b)s(o)s(ost)g(a)h(pla)m(y) m(er's)g(score.)51 b(When)36 b(\034gh)m(ting)e(a)g(large)g(amoun)m(t)g (of)227 4184 y(monsters)h(in)f(a)g(single)g(ro)s(om,)f(attempt)h(to)g (\034nd)h(a)f(narro)m(w)m(er)i(hallw)m(a)m(y)e(so)g(that)h(y)m(ou)g (are)f(not)227 4300 y(b)s(eing)e(attac)m(k)m(ed)i(from)e(all)e(sides.) 45 b(Charging)31 b(in)m(to)h(a)h(ro)s(om)e(full)g(of)h(Beholders)h(w)m (ould)f(not)h(b)s(e)227 4417 y(wise,)g(instead,)g(op)s(en)g(the)g(do)s (or)e(and)i(\034gh)m(t)g(them)f(one)h(at)f(a)g(time.)227 4687 y Fy(Section)37 b(7.2.)h(Priorities)33 b(for)38 b(lo)m(w-lev)m(el)d(c)m(haracters)227 4902 y Fz(The)29 b(priorit)m(y)d(for)h(c)m(haracters)h(b)s(elo)m(w)f(ab)s(out)g(5th)g (lev)m(el)g(is)g(to)g(gain)g(some)g(basic)g(items.)41 b(In)28 b(this)227 5018 y(regard,)f(b)s(etter)f(armour)e(and)i(b)s (etter)f(sp)s(ells)g(are)h(b)s(est.)41 b(Lo)s(ok)25 b(for)g(a)g(quest)i (among)d(the)i(v)-5 b(arious)227 5134 y(islands)38 b(that)h(will)d (allo)m(w)i(y)m(ou)h(to)g(obtain)e(mithril)f(mail.)59 b(Whenev)m(er)41 b(y)m(ou)f(scrap)s(e)f(together)227 5251 y Fw(\030)p Fz(100)p Fw(\000)p Fz(200)33 b(platin)m(um)d(pieces)k (go)e(shopping)g(for)g(armour)g(and)h(w)m(eap)s(ons)g(\(or)g(sp)s (ells\).)43 b(If)33 b(y)m(ou)227 5367 y(are)e(a)g(\034gh)m(ter)h(t)m (yp)s(e,)g(try)f(to)g(ha)m(v)m(e)h(at)f(least)f(a)h(+2)g(w)m(eap)s(on,) h(+2)e(helmet,)h(+2)f(suit)h(of)f(armour,)227 5483 y(and)37 b(+2)f(shield)g(b)s(efore)h(y)m(ou)g(reac)m(h)h(5th)e(lev)m(el.)56 b(F)-8 b(or)35 b(wizards,)j(attempt)e(to)g(reco)m(v)m(er)j(enough)227 5599 y(treasure)i(to)e(b)s(e)h(able)f(to)g(buy)h(up)g(go)s(o)s(d)e (attac)m(k)i(sp)s(ells.)64 b(F)-8 b(or)39 b(priests,)i(\034rst)f(thing) f(to)g(do)h(is)1948 6057 y(36)p eop end %%Page: 37 41 TeXDict begin 37 40 bop 227 333 a Fz(w)m(orship)31 b(a)f(go)s(d!)42 b(T)-8 b(ry)31 b(to)f(get)h(the)f Fu(holy)j(wor)-5 b(d)30 b Fz(pra)m(y)m(er)h(as)g(so)s(on)f(as)h(p)s(ossible.)42 b(Mak)m(e)31 b(sure)h(y)m(our)227 449 y(curren)m(t)i(go)s(d)e(allo)m (ws)f(go)s(o)s(d)h(p)s(oten)m(tial)f(use)i(of)f(this)g(sp)s(ell.)374 565 y(F)-8 b(or)40 b(all)e(classes,)44 b(get)d(access)h(to)e(the)h Fu(dete)-5 b(ct)43 b(magic)c Fz(incan)m(tation)h(as)g(so)s(on)h(as)g(p) s(ossible.)227 682 y(This)25 b(will)d(allo)m(w)g(y)m(ou)j(to)f(sort)h (through)f(the)h(treasure)g(y)m(ou)g(\034nd)g(while)e(y)m(ou're)i(in)f (the)h(dungeon,)227 798 y(and)33 b(will)d(sa)m(v)m(e)k(y)m(ou)g(time)d (and)h(money)h(at)f(the)h(shops.)1948 6057 y(37)p eop end %%Page: 38 42 TeXDict begin 38 41 bop 227 542 a FA(Chapter)44 b(A.)g(Pla)l(y)l(er)h (Commands)411 1020 y Ft(apply)24 b Fg(<)p Ft(string)p Fg(>)565 b Ft(Without)30 b(an)n(y)f(parameter,)j(applies)d(the)g(top)h (ob)t(ject)g(in)f(the)g(ground)i(view.)1456 1099 y(With)24 b(a)g(string,)f(applies)h(the)h(\034rst)f(ob)t(ject)h(matc)n(hing)e (the)i(string.)411 1178 y(bind)908 b(Used)23 b(to)i(bind)e(commands)f (to)j(k)n(eys.)411 1257 y(brace)882 b(T)-6 b(oggles)24 b(brace)h(status.)32 b(While)24 b(braced)h(y)n(ou)f(will)f(not)h(mo)n (v)n(e.)411 1336 y(cast)g Fg(<)p Ft(sp)r(ell)p Fg(>)650 b Ft(Readies)24 b(named)f(sp)r(ell.)411 1415 y(clearinfo)785 b(Clears)24 b(the)g(text)h(screen.)411 1494 y(disarm)836 b(Executes)25 b(a)f(disarming)e(action)j(in)e(facing)h(direction.)411 1572 y(dm)f Fg(<)p Ft(passw)n(ord)p Fg(>)533 b Ft(Pla)n(y)n(er)24 b(b)r(ecomes)g(the)g(dm.)30 b(Y)-6 b(ou)24 b(c)n(haracter)j(is)c(unsa)n (v)l(able)i(after)f(this.)411 1651 y(drop)h Fg(<)p Ft(ob)t(ject)p Fg(>)581 b Ft(Drops)20 b(ob)t(ject)g(from)f(pla)n(y)n(er)i(in)n(v)n(en) n(tory)-6 b(.)31 b(All)19 b(items)f(matc)n(hing)i Fg(<)p Ft(ob)t(ject)p Fg(>)g Ft(are)1456 1730 y(dropp)r(ed,)25 b(unless)e(they)i(are)f(lo)r(c)n(k)n(ed)h(or)f(cursed.)411 1809 y(dropall)830 b(Drops)24 b(all)f(but)h(lo)r(c)n(k)n(ed)h(ob)t (jects)f(in)f(in)n(v)n(en)n(tory)-6 b(.)411 1888 y(east)924 b(Execute)25 b(a)f(mo)n(v)n(e)f(east.)411 1967 y(examine)g Fg(<)p Ft(ob)t(ject)p Fg(>)470 b Ft(Examines)22 b(ob)t(ject,)j (defaults)f(to)g(top)g(ob)t(ject)h(in)e(lo)r(ok)h(windo)n(w.)411 2046 y(get)952 b(Pic)n(ks)23 b(up)h(top)g(ob)t(ject)h(in)e(lo)r(ok)h (windo)n(w.)411 2125 y(gsa)n(y)912 b(Sends)24 b(a)g(message)f(only)h (to)g(mem)n(b)r(ers)e(of)i(y)n(our)g(part)n(y)-6 b(.)411 2203 y(help)24 b Fg(<)p Ft(sub)t(ject)p Fg(>)561 b Ft(Help)20 b(on)i(sub)t(ject,)f(defaults)g(to)h(sho)n(ws)f(list)f(of)h(a)n(v)l (ailable)g(help.)30 b(If)21 b Fg(<)p Ft(sub)t(ject)p Fg(>)1456 2282 y Ft(is)i Fc(commands)p Ft(,)i(will)d(displa)n(y)i(a)f (list)g(of)h(a)n(v)l(ailable)g(commands.)411 2361 y(hiscore)834 b(Sho)n(w)24 b(list)f(of)g(highest)h(pla)n(y)n(er)h(scores.)411 2440 y(in)n(v)n(en)n(tory)759 b(Lists)23 b(all)g(ob)t(jects)h(in)g(y)n (our)g(in)n(v)n(en)n(tory)i(in)d(text)i(windo)n(w.)411 2519 y(in)n(v)n(ok)n(e)g Fg(<)p Ft(sp)r(ell)p Fg(>)d(<)p Ft(string)p Fg(>)269 b Ft(Readies,)23 b(then)i(casts)f(a)g(sp)r(ell.)30 b(String)25 b(is)e(optional)411 2598 y(listen)880 b(Changes)24 b(the)h(lev)n(el)e(of)h(y)n(our)g(hearing.)411 2677 y(mapinfo)795 b(Sho)n(w)24 b(information)f(ab)r(out)i(curren)n(t)h(map.)411 2756 y(maps)d Fg(<)p Ft(name)p Fg(>)585 b Ft(Sho)n(w)32 b(status)h(of)f(all)f(activ)n(e)i(maps.)55 b(If)32 b Fg(<)p Ft(name)p Fg(>)g Ft(is)f(pro)n(vided,)k(only)d(lists)1456 2834 y(maps)22 b(with)i(matc)n(hing)g(name.)411 2913 y(motd)884 b(Sho)n(w)24 b(message)f(of)g(the)i(da)n(y)f(again.)411 2992 y(north)878 b(Execute)25 b(a)f(mo)n(v)n(e)f(north.)411 3071 y(northeast)757 b(Ditto)24 b(to)g(north)h(east.)411 3150 y(north)n(w)n(est)745 b(Ditto)24 b(to)g(the)g(north)i(w)n(est.)411 3229 y(output-coun)n(t)646 b(T)-6 b(oggles)17 b(message)g(grouping,)j (so)d(that)h(iden)n(tical)g(messages)f(are)h(put)g(together.)411 3308 y(output-sync)680 b(No)23 b(idea)h(what)h(this)e(do)r(es.)411 3386 y(part)n(y)i Fg(<)p Ft(command)p Fg(>)448 b Ft(Set)24 b(of)f(commands)g(used)h(with)f(simple)f(part)n(y)k(system.)411 3465 y(p)r(eaceful)795 b(T)-6 b(oggle)24 b(p)r(eaceful)g(status.)411 3544 y(pic)n(kup)g Fg(<)p Ft(command)p Fg(>)409 b Ft(Change)24 b(pic)n(kup)h(status)f(b)n(y)g(n)n(um)n(b)r(er)g(or)g(v)l(alue)g (densit)n(y)-6 b(.)411 3623 y(prepare)816 b(Alias)22 b(for)i(cast)g(command.)411 3702 y(quit)922 b(Quit)23 b(the)i(game)e(and)h(totally)g(remo)n(v)n(es)g(y)n(our)h(c)n(haracter.) 411 3781 y(ready_skill)f Fg(<)p Ft(skill)p Fg(>)437 b Ft(Prepare)25 b(a)f(skill)e(for)i(use.)411 3860 y(rotatesho)r(ott)n(yp) r(e)563 b(Rotate)25 b(the)f(range)h(slot)f(b)n(y)g(1.)411 3939 y(sa)n(v)n(e)918 b(Sa)n(v)n(e)24 b(y)n(our)h(curren)n(t)h(p)r (osition)e(and)g(status.)411 4017 y(sa)n(v)n(ewinp)r(os)704 b(Sa)n(v)n(e)24 b(y)n(our)h(curren)n(t)h(windo)n(w)e(la)n(y)n(out.)411 4096 y(sa)n(y)947 b(Sa)n(y)24 b(something)f(to)i(all)e(pla)n(y)n(ers)h (on)g(y)n(our)h(map.)411 4175 y(searc)n(h)856 b(Execute)25 b(a)f(searc)n(h)h(in)e(all)g(nearb)n(y)i(squares.)411 4254 y(searc)n(h-items)f Fg(<)p Ft(command)p Fg(>)233 b Ft(Change)24 b(the)h(status)f(of)g(items)e(searc)n(hed)k(for.)411 4333 y(shout)877 b(Send)24 b(a)g(message)f(to)h(all)f(pla)n(y)n(ers)i (regardless)g(of)e(map.)411 4412 y(sho)n(w)411 4491 y(sho)n(win)n (vicon)675 b(T)-6 b(oggle)24 b(status)g(of)g(in)n(vicon)g(in)f(in)n(v)n (en)n(tory)j(windo)n(w.)411 4570 y(skills)892 b(Sho)n(w)22 b(all)g(a)n(v)l(ailable)g(skills,)f(exp)r(erience)j(categories)g(and)f (lev)n(el.)30 b(If)22 b(a)g(string)h(is)1456 4648 y(pro)n(vided,)h (only)g(lists)f(matc)n(hing)h(skills.)411 4727 y(south)877 b(Execute)25 b(a)f(mo)n(v)n(e)f(south.)411 4806 y(southeast)756 b(Ditto)24 b(to)g(southeast.)411 4885 y(south)n(w)n(est)744 b(Ditto)24 b(to)g(south)n(w)n(est.)411 4964 y(sta)n(y)411 5043 y(tak)n(e)917 b(Alias)22 b(for)i(pic)n(kup.)411 5122 y(tell)g Fg(<)p Ft(who)p Fg(>)f(<)p Ft(msg)p Fg(>)432 b Ft(T)-6 b(ell)23 b(c)n(haracter)j(who)e(the)h(msg.)411 5201 y(thro)n(w)868 b(Thro)n(ws)24 b(an)g(item.)411 5279 y(time)907 b(Displa)n(ys)23 b(the)h(ingame)f(time)411 5358 y(title)h Fg(<)p Ft(string)p Fg(>)610 b Ft(Change)24 b(y)n(our)h(title)f(to)g(string.)411 5437 y(un)n(bind)g Fg(<)p Ft(command)p Fg(>)399 b Ft(A)23 b(set)h(of)f(commands)g(to)h (rev)n(erse)i(k)n(ey)e(bindings.)411 5516 y(use_skill)f Fg(<)p Ft(skill)p Fg(>)f(<)p Ft(string)p Fg(>)201 b Ft(Ready)-6 b(,)24 b(then)g(use)g(a)g(skill.)411 5595 y(v)n(ersion)830 b(Prin)n(t)24 b(out)g(all)f(the)i(con)n(tributors)h(to)e Fb(Cross\034re)p Ft(.)411 5674 y(w)n(est)910 b(Execute)25 b(a)f(mo)n(v)n(e)f(w)n(est.)411 5753 y(who)920 b(Sho)n(w)18 b(what)h(pla)n(y)n(ers)g(are)g(curren)n(tly)i(logged)e(on.)29 b(If)18 b(a)h(parameter)g(is)f(sp)r(eci\034ed,)1456 5831 y(only)23 b(displa)n(ys)h(pla)n(y)n(ers)g(in)g(regions)g(with)g(matc)n (hing)g(name.)1948 6057 y Fz(38)p eop end %%Page: 39 43 TeXDict begin 39 42 bop 411 333 a Ft(wimp)n(y)22 b Fg(<)p Ft(p)r(ercen)n(t)p Fg(>)483 b Ft(Auto-matically)23 b(run)h(a)n(w)n(a)n (y)g(when)h(hp)p Fg(<)p Ft(\045)p Fa(\002)p Ft(Max)e(hp.)227 512 y(Commands)f(for)i(Dungeon)h(Masters)f(only:)411 680 y(mallo)r(c)842 b(Sho)n(ws)24 b(whic)n(h)f(stu\033)i(is)d(taking)j (up)f(ho)n(w)g(m)n(uc)n(h)f(memory)-6 b(.)411 758 y(sstable)837 b(Sends)24 b(to)g(the)h(serv)n(er)g(log)f(statistics)g(ab)r(out)h (shared)f(strings.)411 837 y(strings)841 b(Sho)n(ws)24 b(the)g(status)h(of)e(shared)i(sting)f(parameters.)411 916 y(sync)g Fg(<)p Ft(in)n(teger)p Fg(>)568 b Ft(Change)24 b(sync)g(v)l(alue)h(to)f(in)n(teger.)1948 6057 y Fz(39)p eop end %%Page: 40 44 TeXDict begin 40 43 bop 227 542 a FA(Chapter)44 b(B.)g(Skills)227 959 y Fz(The)35 b(follo)m(wing)d(is)i(the)g(curren)m(t)i(\(7/15/96\))c (roster)i(of)g(skills)f(and)h(the)h(description)f(for)f(eac)m(h.)227 1075 y(Use)i(the)f(command)f Fv(crossfire)53 b(-m5)35 b Fz(to)f(see)g(the)h(arra)m(y)f(of)f(skills)g(and)g(exp)s(erience)j (in)d(y)m(our)227 1191 y(v)m(ersion)d(of)e(cross\034re.)43 b(\(Note:)f(y)m(ou)29 b(need)h(to)e(ha)m(v)m(e)i(compiled)d(with)h(the) h Fv(DUMP_SWITCHES)j Fz(and)227 1307 y Fv(ALLOW_SKILLS)k Fz(\035ags)d(for)f(this)g(to)g(w)m(ork!\))374 1423 y(Emphasis)g(on)g(t) m(yp)s(e)i(denotes)g(a)e(skill)f(whic)m(h)i(monsters/NPC's)h(ma)m(y)e (also)g(use.)p 361 1551 3271 4 v 361 1551 V 360 1672 4 121 v 411 1636 a(alc)m(hem)m(y)p 1404 1672 V 701 w(User)h(can)g(iden) m(tify)f(p)s(otions,)f(con)m(tainers,)i(\035esh)h(parts,)p 3630 1672 V 360 1792 V 1404 1792 V 1456 1756 a(and)e(am)m(ulets.)p 3630 1792 V 360 1912 V 1404 1912 V 3630 1912 V 360 2033 V 411 1997 a(bargaining)p 1404 2033 V 593 w(While)26 b(this)h(skill)f(is)h(readied)h(the)g(user)h(has)f(added)g(CHA)p 3630 2033 V 360 2153 V 1404 2153 V 1456 2117 a(for)j(purp)s(oses)i(of)f (purc)m(hase)i(and)e(selling)e(of)i(items)f(only)-8 b(.)p 3630 2153 V 360 2274 V 1404 2274 V 1456 2237 a(Cha)32 b(is)h(nev)m(er)h(allo)m(w)m(ed)d(to)i(exceed)h(30.)p 3630 2274 V 360 2394 V 1404 2394 V 3630 2394 V 360 2514 V 411 2478 a(b)s(o)m(wy)m(er)p 1404 2514 V 743 w(User)f(can)g(iden)m (tify)f(missile)e(w)m(eap)s(ons)k(and)e(missiles.)p 3630 2514 V 360 2635 V 1404 2635 V 3630 2635 V 360 2755 V 411 2719 a Fu(clawing)p 1404 2755 V 730 w Fz(User)h(can)g(mak)m(e)f(a)h Fu(b)-5 b(ar)g(e-hande)g(d)33 b(attack)p Fz(.)43 b(Damage)p 3630 2755 V 360 2875 V 1404 2875 V 1456 2839 a(is)32 b(based)h(on)g(the)f(user's)i(Str)f(and)g Fv(level)p Fz(.)44 b(This)33 b(is)f(the)p 3630 2875 V 360 2996 V 1404 2996 V 1456 2960 a(default)f(\020hand-to-hand\021)39 b(\034gh)m(ting)32 b(skill)f(for)h(the)p 3630 2996 V 360 3116 V 1404 3116 V 1456 3080 a(Quetzecoatl)g(c)m(haracter)h(class.) p 3630 3116 V 360 3237 V 1404 3237 V 3630 3237 V 360 3357 V 411 3321 a(\034nd)g(traps)p 1404 3357 V 633 w(User)g(can)g (searc)m(h)h(\(more)d(e\033ectiv)m(ely\))i(for)f(traps.)p 3630 3357 V 360 3477 V 1404 3477 V 1456 3441 a(Not)g(a)g('passiv)m(e')i (skill,)d(it)g(is)h(applied)g(in)f(order)p 3630 3477 V 360 3598 V 1404 3598 V 1456 3562 a(to)h(gain)f(the)i(adv)-5 b(an)m(tage)33 b(in)e(disco)m(v)m(ering)i(traps.)p 3630 3598 V 360 3718 V 1404 3718 V 3630 3718 V 360 3839 V 411 3802 a Fu(\035ame)h(touch)p 1404 3839 V 550 w Fz(User)f(can)g(mak)m (e)f(a)h Fu(b)-5 b(ar)g(e-hande)g(d)33 b(attack)p Fz(.)43 b(Damage)p 3630 3839 V 360 3959 V 1404 3959 V 1456 3923 a(is)32 b(based)h(on)g(the)f(user's)i(Str)f(and)g Fv(level)p Fz(.)44 b(This)p 3630 3959 V 360 4079 V 1404 4079 V 1456 4043 a(is)32 b(the)h(default)e(hand-to-hand)h(\034gh)m(ting)g(skill)p 3630 4079 V 360 4200 V 1404 4200 V 1456 4164 a(for)g(the)h(Fireb)s(orn) e(c)m(haracter)i(class.)p 3630 4200 V 360 4320 V 1404 4320 V 3630 4320 V 360 4440 V 411 4404 a Fu(hide)p 1404 4440 V 870 w Fz(User)g(enjo)m(ys)h(limited)29 b(form)j(of)g(in)m (visibilit)m(y)-8 b(.)40 b(If)p 3630 4440 V 360 4561 V 1404 4561 V 1456 4525 a(they)26 b(attac)m(k)f(or)g(mo)m(v)m(e)h(to)s (o)f(m)m(uc)m(h)g(they)h(b)s(ecome)g(visible.)p 3630 4561 V 360 4681 V 1404 4681 V 3630 4681 V 360 4802 V 411 4765 a(jew)m(eler)p 1404 4802 V 753 w(User)33 b(can)g(iden)m(t)f (gems)h(and)f(rings)g(that)g(they)i(hold.)p 3630 4802 V 360 4922 V 1404 4922 V 3630 4922 V 360 5042 V 411 5006 a Fu(jumping)p 1404 5042 V 703 w Fz(User)f(can)g('skip')g(o)m(v)m(er)g (1-2)f(spaces)i(in)e(a)g(selected)p 3630 5042 V 360 5163 V 1404 5163 V 1456 5127 a(direction.)42 b(Distance)33 b(dep)s(ends)h(on)f(w)m(eigh)m(t)f(carried,)p 3630 5163 V 360 5283 V 1404 5283 V 1456 5247 a(STR)g(and)h(DEX)h(of)e(the)h (user.)44 b(This)33 b(skill)d(ma)m(y)j(also)p 3630 5283 V 360 5404 V 1404 5404 V 1456 5367 a(b)s(e)f(used)i(as)f(an)f(attac)m (k.)p 3630 5404 V 360 5524 V 1404 5524 V 3630 5524 V 360 5644 V 411 5608 a Fu(kar)-5 b(ate)p 1404 5644 V 787 w Fz(User)33 b(can)g(mak)m(e)f(a)h Fu(b)-5 b(ar)g(e-hande)g(d)33 b(attack)p Fz(.)43 b(Damage)p 3630 5644 V 360 5765 V 1404 5765 V 1456 5729 a(is)32 b(based)h(on)g(the)f(user's)i(Str)f(and)g Fv(level)p Fz(.)44 b(This)33 b(attac)m(k)p 3630 5765 V 1948 6057 a(40)p eop end %%Page: 41 45 TeXDict begin 41 44 bop 360 369 4 121 v 1404 369 V 1456 333 a Fz(is)32 b(the)h(fastest)g(and)f(\(at)h(higher)f(lev)m(els\))g (most)g(deadly)p 3630 369 V 360 489 V 1404 489 V 1456 453 a(of)g(the)h(hand-to-hand)e(attac)m(ks)j(a)m(v)-5 b(ailable.)p 3630 489 V 360 610 V 1404 610 V 3630 610 V 360 730 V 411 694 a(literacy)p 1404 730 V 727 w(User)33 b(can)g(iden)m(t)f(b)s(o)s(oks)h(and)f(scrolls)g(that)g(they)i(hold.)p 3630 730 V 360 850 V 1404 850 V 1456 814 a(It)e(also)g(allo)m(ws)f(the) i(pla)m(y)m(er)g(to)f(read)h(scrolls,)f(b)s(o)s(oks,)p 3630 850 V 360 971 V 1404 971 V 1456 935 a(grimores)f(and)h(pra)m(yb)s (o)s(oks.)p 3630 971 V 360 1091 V 1404 1091 V 3630 1091 V 360 1212 V 411 1176 a Fu(lo)-5 b(ckpicking)p 1404 1212 V 585 w Fz(User)33 b(ma)m(y)f('pic)m(k)h(lo)s(c)m(ks')g(\(op)s(en)g(do) s(ors\).)43 b(User)33 b(needs)p 3630 1212 V 360 1332 V 1404 1332 V 1456 1296 a(to)f(ha)m(v)m(e)i(readied)e('lo)s(c)m(kpic)m (ks')h(to)f(use)i(this)e(skill.)p 3630 1332 V 360 1452 V 1404 1452 V 3630 1452 V 360 1573 V 411 1537 a(meditation)p 1404 1573 V 582 w(Pla)m(y)m(er)d(can)h(regain)e(mana/hp)g(at)h(an)g (accelerated)g(rate.)p 3630 1573 V 360 1693 V 1404 1693 V 1456 1657 a(Pla)m(y)m(er)k(m)m(ust)f(\034rst)h(strip)f(o\033)h(encum) m(b)s(ering)f(armour)p 3630 1693 V 360 1814 V 1404 1814 V 1456 1777 a(ho)m(w)m(ev)m(er.)45 b(This)33 b(skill)e(is)h(only)g(a)m (v)-5 b(ailable)30 b(to)i(the)h(Monk)p 3630 1814 V 360 1934 V 1404 1934 V 1456 1898 a(c)m(haracter)g(class.)p 3630 1934 V 360 2054 V 1404 2054 V 3630 2054 V 360 2175 V 411 2139 a(melee)f(w)m(eap)s(ons)p 1404 2175 V 417 w(User)h(ma)m(y)f(use)i(hand-held)e(w)m(eap)s(ons)i(\(eg)e(sw)m(ords,)p 3630 2175 V 360 2295 V 1404 2295 V 1456 2259 a(sp)s(ears,)h(mace,)f (etc\).)p 3630 2295 V 360 2415 V 1404 2415 V 3630 2415 V 360 2536 V 411 2500 a(missile)e(w)m(eap)s(ons)p 1404 2536 V 373 w(The)j(user)g(is)g(allo)m(w)m(ed)e(to)h(mak)m(e)h(attac)m (ks)h(with)p 3630 2536 V 360 2656 V 1404 2656 V 1456 2620 a(ranged)e(w)m(eap)s(ons)i(\(eg)e(b)s(o)m(w,)h(crossb)s(o)m(w\).)p 3630 2656 V 360 2777 V 1404 2777 V 3630 2777 V 360 2897 V 411 2861 a(moun)m(taineer)p 1404 2897 V 516 w(While)e(the)i(skill)e (is)h(readied,)g(the)h(p)s(ossessor)h(will)p 3630 2897 V 360 3017 V 1404 3017 V 1456 2981 a(mo)m(v)m(e)f(faster)f(through)h ("hilly")d(terrain)h(\(hills,)p 3630 3017 V 360 3138 V 1404 3138 V 1456 3102 a(moun)m(tains,)g(etc.\))p 3630 3138 V 360 3258 V 1404 3258 V 3630 3258 V 360 3379 V 411 3342 a(oratory)p 1404 3379 V 733 w(User)i(ma)m(y)f('recruit')h (follo)m(w)m(ers.)42 b(Recruitees)34 b(m)m(ust)e(b)s(e)p 3630 3379 V 360 3499 V 1404 3499 V 1456 3463 a(of)g(lo)m(w)m(er)g Fv(level)p Fz(,)i(and)f(unaggressiv)m(e)g(to)g(start.)43 b(Use)p 3630 3499 V 360 3619 V 1404 3619 V 1456 3583 a(of)32 b(this)g(skill)f(ma)m(y)h(anger)g(the)h(audience.)44 b(Also,)p 3630 3619 V 360 3740 V 1404 3740 V 1456 3704 a('sp)s(ecial')31 b(monsters)i(are)g(imm)m(une)e(to)h(recruitmen)m(t.)p 3630 3740 V 360 3860 V 1404 3860 V 1456 3824 a(Success)i(dep)s(ends)h (on)d(User)h(Cha)g(and)g Fv(level)p Fz(.)p 3630 3860 V 360 3980 V 1404 3980 V 3630 3980 V 360 4101 V 411 4065 a(pra)m(ying)p 1404 4101 V 725 w(User)e(is)g(allo)m(w)m(ed)f(to)g(cast) i(\020priest\021)38 b(sp)s(ells.)k(In)31 b(addition,)p 3630 4101 V 360 4342 4 241 v 1404 4342 V 1456 4185 a(this)g(skill)g(ma) m(y)h(b)s(e)g(used)i(to)e(accelerate)g(the)h(accum)m(ula-)1456 4305 y(tion)p 3630 4342 V 360 4462 4 121 v 1404 4462 V 1456 4426 a(of)f(grace.)43 b(This)33 b(skill)e(ma)m(y)h(b)s(e)h (either)f Fu(le)-5 b(arne)g(d)32 b Fz(or)p 3630 4462 V 360 4582 V 1404 4582 V 1456 4546 a(acquired)g(through)h(the)g(use)g (of)f(a)h Fu(holy)h(symb)-5 b(ol)p Fz(.)p 3630 4582 V 360 4703 V 1404 4703 V 3630 4703 V 360 4823 V 411 4787 a Fu(punching)p 1404 4823 V 663 w Fz(User)33 b(can)g(mak)m(e)f(a)h Fu(b)-5 b(ar)g(e-hande)g(d)33 b(attack)p Fz(.)43 b(Damage)p 3630 4823 V 360 4943 V 1404 4943 V 1456 4907 a(is)32 b(based)h(on)g(the)f(user's)i(Str)f(and)g Fv(level)p Fz(.)44 b(This)33 b(is)p 3630 4943 V 360 5064 V 1404 5064 V 1456 5028 a(the)g(most)e(feeble)i(of)f(the)h(hand-to-hand)f (attac)m(ks.)p 3630 5064 V 360 5184 V 1404 5184 V 3630 5184 V 360 5305 V 411 5269 a(remo)m(v)m(e)h(traps)p 1404 5305 V 495 w(User)g(ma)m(y)f(remo)m(v)m(e)h(previously)g(disco)m(v)m (ered)h(traps.)p 3630 5305 V 360 5425 V 1404 5425 V 3630 5425 V 360 5545 V 411 5509 a(sense)g(curse)p 1404 5545 V 579 w(User)f(ma)m(y)f(disco)m(v)m(er)i(whether)g(items)d(that)i(they) g(hold)p 3630 5545 V 360 5666 V 1404 5666 V 1456 5630 a(are)f Fu(curse)-5 b(d)p Fz(.)p 3630 5666 V 360 5786 V 1404 5786 V 3630 5786 V 1948 6057 a(41)p eop end %%Page: 42 46 TeXDict begin 42 45 bop 360 369 4 121 v 411 333 a Fz(sense)34 b(magic)p 1404 369 V 544 w(User)f(ma)m(y)f(disco)m(v)m(er)i(whether)g (items)d(that)i(they)g(hold)p 3630 369 V 360 489 V 1404 489 V 1456 453 a(are)f Fu(magic)p Fz(.)p 3630 489 V 360 610 V 1404 610 V 3630 610 V 360 730 V 411 694 a(set)h(traps)p 1404 730 V 676 w(Unimplemen)m(ted.)p 3630 730 V 360 850 V 1404 850 V 3630 850 V 360 971 V 411 935 a(singing)p 1404 971 V 745 w(User)g(ma)m(y)f(pacify)g(hostile)g(monsters)h(with)f (this)g(skill.)p 3630 971 V 360 1091 V 1404 1091 V 1456 1055 a(Certain)g(kinds)h(of)f(monsters)h(are)f(imm)m(une.)42 b(Success)p 3630 1091 V 360 1212 V 1404 1212 V 1456 1176 a(dep)s(ends)34 b(on)e(user)i Fv(level)f Fz(and)g(CHA.)p 3630 1212 V 360 1332 V 1404 1332 V 3630 1332 V 360 1452 V 411 1416 a(smithery)p 1404 1452 V 673 w(User)g(ma)m(y)f(iden)m(t)h (arms)f(and)g(armour)g(that)g(they)h(hold.)p 3630 1452 V 360 1573 V 1404 1573 V 3630 1573 V 360 1693 V 411 1657 a(wizardry)p 1404 1693 V 674 w(User)g(is)f(allo)m(w)m(ed)g(to)g(cast)h (\020wizard\021)39 b(sp)s(ells.)k(This)p 3630 1693 V 360 1814 V 1404 1814 V 1456 1777 a(skill)30 b(ma)m(y)j(b)s(e)f (acquired)h(either)f(through)h(the)g(use)p 3630 1814 V 360 1934 V 1404 1934 V 1456 1898 a(of)f(a)g Fu(talisman)f Fz(or)i Fu(le)-5 b(arne)g(d)31 b Fz(via)h(a)g(skill)f(scroll.)p 3630 1934 V 360 2054 V 1404 2054 V 3630 2054 V 360 2175 V 411 2139 a Fu(ste)-5 b(aling)p 1404 2175 V 728 w Fz(User)33 b(can)g(steal)f(items)f(from)h(other)g(creatures.)p 3630 2175 V 360 2295 V 1404 2295 V 3630 2295 V 360 2415 V 411 2379 a(thaumagragist)p 1404 2415 V 430 w(User)h(can)g(iden)m(t)f (ro)s(ds,)h(w)m(ands)h(and)e(horns)h(that)g(they)p 3630 2415 V 360 2536 V 1404 2536 V 1456 2500 a(are)f(holding.)p 3630 2536 V 360 2656 V 1404 2656 V 3630 2656 V 360 2777 V 411 2740 a(thro)m(wing)p 1404 2777 V 668 w(Unimplemen)m(ted.)p 3630 2777 V 360 2897 V 1404 2897 V 3630 2897 V 360 3017 V 411 2981 a(use)i(magic)c(item)p 1404 3017 V 404 w(User)j(can)g(use)g (magic)e(items)h(lik)m(e)f(ro)s(ds/w)m(ands/horns.)p 3630 3017 V 360 3138 V 1404 3138 V 3630 3138 V 360 3258 V 411 3222 a(w)m(o)s(o)s(dsman)p 1404 3258 V 597 w(While)g(the)i(skill) e(is)h(readied,)g(the)h(p)s(ossessor)h(will)p 3630 3258 V 360 3379 V 1404 3379 V 1456 3342 a(mo)m(v)m(e)f(faster)f(through)h (\020w)m(o)s(o)s(ded\021)40 b(terrain)31 b(\(forest,)p 3630 3379 V 360 3499 V 1404 3499 V 1456 3463 a(grasslands,)h(brush,)i (jungle,)e(etc.\).)44 b(If)32 b(activ)m(ely)h(used,)p 3630 3499 V 360 3619 V 1404 3619 V 1456 3583 a(this)f(skill)e(will)h (iden)m(tify)h(fo)s(o)s(ds)f(and)i(\035esh)h(parts.)p 3630 3619 V 360 3740 V 1404 3740 V 3630 3740 V 360 3860 V 411 3824 a(writing)p 1404 3860 V 740 w(User)23 b(ma)m(y)f(b)s(oth)g (write)g(messages)h(in)f(b)s(o)s(oks)g Fu(and)g Fz(rewrite)p 3630 3860 V 360 3980 V 1404 3980 V 1456 3944 a(sp)s(ell)31 b(scrolls)h(with)g(a)g(previously)h(kno)m(wn)g(sp)s(ell.)43 b(F)-8 b(or)p 3630 3980 V 360 4101 V 1404 4101 V 1456 4065 a(new)33 b(sp)s(ell)e(scrolls)h(mana,)g(time)f(and)h(an)h(old)e (scroll)h(are)p 3630 4101 V 360 4221 V 1404 4221 V 1456 4185 a(needed.)45 b(Bac)m(k\034re)33 b(e\033ects)h(are)f(p)s(ossible.) 43 b(T)-8 b(o)32 b(write)p 3630 4221 V 360 4342 V 1404 4342 V 1456 4305 a(text)h(in)f(a)g(b)s(o)s(ok,)g(use)h(the)g(skill)e (as:)44 b Fv(use_skill)p 3630 4342 V 360 4462 V 1404 4462 V 1456 4426 a(writing)53 b Fj(<)p Fv(msg)p Fj(>)p Fz(.)43 b(This)32 b(skills)e(is)h(only)g(a)m(v)-5 b(ailable)29 b(as)j(a)p 3630 4462 V 360 4582 V 1404 4582 V 1456 4546 a('writing)f(p)s(en';)i(the)g(literacy)e(skill)g(m)m(ust)h(b)s(e)h(p)s (ossessed)p 3630 4582 V 360 4703 V 1404 4703 V 1456 4667 a(b)s(efore)f(this)g(can)h(b)s(e)g(used.)p 3630 4703 V 361 4706 3271 4 v 361 4706 V 1948 6057 a(42)p eop end %%Page: 43 47 TeXDict begin 43 46 bop 227 542 a FA(Chapter)44 b(C.)g(Description)h (of)e(Go)t(ds)227 959 y Fz(Belo)m(w)35 b(in)f(b)s(o)m(xes,)j(the)e(go)s (ds)f(in)g(y)m(our)i(compiled)c(v)m(ersion)k(of)e Fx(Cross\034re)i Fz(are)f(sho)m(wn.)51 b(Use)36 b(the)227 1075 y(command)41 b Fv(crossfire)54 b(-m8)43 b Fz(to)f(c)m(hec)m(k)i(if)d(the)i (information)c(presen)m(ted)44 b(here)f(is)f(accurate.)227 1191 y(\(Note:)65 b(y)m(ou)43 b(need)h(to)f(ha)m(v)m(e)h(compiled)d (with)h(the)i Fv(DUMP_SWITCHES)i Fz(and)d Fv(MULTIPLE_GODS)227 1307 y Fz(\035ags)33 b(for)f(this)g(to)g(w)m(ork!\))45 b(The)33 b(b)s(o)m(xed)h(attributes)e(ha)m(v)m(e)i(meaning)d(as)i (follo)m(ws:)424 1524 y(Enem)m(y)g(cult:)389 b(Name)32 b(of)g(the)h(enem)m(y)g(go)s(d)424 1645 y(Aligned)e(race\(s\):)231 b(Names)32 b(of)g(races)i(friendly)d(to)h(the)h(cult.)43 b(The)34 b(priest)1329 1765 y(of)e(this)g(cult)g(has)h(greater)g(p)s(o) m(w)m(er)g(o)m(v)m(er)h(these)f(creatures.)1329 1885 y(In)g(some)f(cases)i(the)f(pra)m(y)m(er)h Fv(summon)52 b(cult)h(monsters)1329 2006 y Fz(will)30 b(summon)i(these)h(monsters)g (to)f(help)h(the)g(priest.)424 2126 y(Enem)m(y)g(race\(s\):)265 b(Names)32 b(of)g(races)i(hated)f(b)m(y)g(the)g(cult.)43 b(\020Holy)31 b(w)m(ord\021)1329 2247 y(pra)m(y)m(ers)j(of)e(this)g(go) s(d)g(ma)m(y)g(b)s(e)h(used)h(to)e(kill)e(these)1329 2367 y(creatures.)424 2487 y(A)m(ttac)m(kt)m(yp)s(e\(s\):)292 b(A)m(ttac)m(kt)m(yp)s(es)35 b(used)e(b)m(y)h(this)e(go)s(d's)h(a)m(v) -5 b(atar)32 b(and)1329 2608 y(b)m(y)h(cult)f Fv(cause)53 b(wounds)34 b Fz(pra)m(y)m(ers.)424 2728 y(Imm)m(unit)m(y:)460 b(Gran)m(ted)32 b(b)m(y)i(the)f Fv(holy)52 b(possession)35 b Fz(pra)m(y)m(er.)424 2849 y(Protected:)466 b(Gran)m(ted)32 b(to)h(a)f(cult)g(priest)g(and)h(b)m(y)g(the)g Fv(bless)1329 2969 y Fz(pra)m(y)m(er.)424 3089 y(V)-8 b(ulnerable:)422 b(Giv)m(en)32 b(to)g(a)h(cult)f(priest)g(and)h(b)m(y)g(the)g Fv(curse)1329 3210 y Fz(pra)m(y)m(er.)424 3330 y(A)m(ttunded:)473 b(The)33 b(cult)f(priest)h(is)f(attuned)h(to)f(these)i(sp)s(ellpaths.) 424 3450 y(Rep)s(elled:)510 b(The)33 b(cult)f(priest)h(is)f(rep)s (elled)g(to)g(these)i(sp)s(ellpaths.)424 3571 y(Denied:)582 b(The)33 b(cult)f(priest)h(is)f(denied)h(use)g(of)f(these)i(sp)s (ellpaths.)424 3691 y(A)m(dded)f(gifts/limits:)96 b(A)32 b(cult)g(priest)h(has)g(these)h(addtional)c(b)s(ene\034ts)1329 3812 y(and)i(restrictions.)374 4024 y(Note)39 b(that)g(not)g(all)e(go)s (ds)i(ha)m(v)m(e)h(v)-5 b(alues)39 b(for)g(all)e(p)s(ossible)h (attributes.)63 b(In)40 b(this)f(case,)i(no)227 4140 y(attribute)32 b(will)e(app)s(ear)j(in)f(that)g(go)s(d's)g(b)s(o)m(x.)p 361 4263 3271 4 v 361 4263 V 360 4383 4 121 v 411 4347 a Fy(V)-9 b(alriel)722 b Fz(Lord)32 b(of)g(Angels)p 3630 4383 V 361 4386 3271 4 v 361 4386 V 360 4507 4 121 v 411 4471 a(Enem)m(y)h(cult:)529 b(Gorokh)p 3630 4507 V 360 4627 V 411 4591 a(Aligned)31 b(race\(s\):)371 b(Angel)p 3630 4627 V 360 4748 V 411 4712 a(Enem)m(y)33 b(race\(s\):)405 b(Demon)p 3630 4748 V 360 4868 V 411 4832 a(A)m(ttac)m(kt)m(yp)s (e\(s\):)432 b(Blinding)p 3630 4868 V 360 4988 V 411 4952 a(A)m(ttuned:)667 b(Protection,)32 b(Mind)p 3630 4988 V 360 5109 V 411 5073 a(Denied:)722 b(W)-8 b(ounding,)32 b(Death)p 3630 5109 V 361 5112 3271 4 v 361 5112 V 361 5356 V 361 5356 V 360 5477 4 121 v 411 5440 a Fy(Gorokh)678 b Fz(Demon)32 b(King)p 3630 5477 V 361 5480 3271 4 v 361 5480 V 360 5600 4 121 v 411 5564 a(Enem)m(y)h(cult:)529 b(V)-8 b(alriel)p 3630 5600 V 360 5721 V 411 5685 a(Aligned)31 b(race\(s\):)371 b(Demon)p 3630 5721 V 360 5841 V 411 5805 a(Enem)m(y)33 b(race\(s\):)405 b(Angel)p 3630 5841 V 1948 6057 a(43)p eop end %%Page: 44 48 TeXDict begin 44 47 bop 360 369 4 121 v 411 333 a Fz(A)m(ttac)m(kt)m (yp)s(e\(s\):)432 b(F)-8 b(ear)p 3630 369 V 360 489 V 411 453 a(A)m(ttuned:)667 b(W)-8 b(ounding)p 3630 489 V 360 610 V 411 574 a(Rep)s(elled:)650 b(Protection,)32 b(Restoration)p 3630 610 V 360 730 V 411 694 a(A)m(dded)i (gifts/limits:)p 3630 730 V 360 850 V 1456 814 a(hp)e(regenerate)i(at)e (-2)p 3630 850 V 360 971 V 1456 935 a(sp)h(regenerate)g(at)f(-1)p 3630 971 V 360 1091 V 1456 1055 a(luc)m(k)g(is)h(-1)p 3630 1091 V 361 1095 3271 4 v 361 1095 V 361 1339 V 361 1339 V 360 1459 4 121 v 411 1423 a Fy(Dev)m(ourers)547 b Fz(Soul)31 b(Eaters)p 3630 1459 V 361 1462 3271 4 v 361 1462 V 360 1583 4 121 v 411 1547 a(Enem)m(y)i(cult:)529 b(Gaea)p 3630 1583 V 360 1703 V 411 1667 a(Aligned)31 b(race\(s\):)371 b(Undead)p 3630 1703 V 360 1824 V 411 1787 a(Enem)m(y)33 b(race\(s\):)405 b(None)p 3630 1824 V 360 1944 V 411 1908 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(Depletion,)32 b(death,)h(life)d(stealing)p 3630 1944 V 360 2064 V 411 2028 a(A)m(ttuned:)667 b(W)-8 b(ounding,)32 b(Death)p 3630 2064 V 360 2185 V 411 2149 a(Rep)s(elled:)650 b(Protection,)32 b(Fire,)f(Restoration,)p 3630 2185 V 360 2305 V 1456 2269 a(Ligh)m(t)p 3630 2305 V 360 2425 V 411 2389 a(Denied:)722 b(T)-8 b(urning)p 3630 2425 V 360 2546 V 411 2510 a(A)m(dded)34 b(gifts/limits:)p 3630 2546 V 360 2666 V 1456 2630 a(is)e(undead)p 3630 2666 V 360 2787 V 1456 2750 a(has)g(infra)m(vision)p 3630 2787 V 360 2907 V 1456 2871 a(hp)g(regenerate)i(at)e(-1)p 3630 2907 V 360 3027 V 1456 2991 a(digestion)f(is)h(faster)h(\(60\))p 3630 3027 V 361 3031 3271 4 v 361 3031 V 361 3275 V 361 3275 V 360 3395 4 121 v 411 3359 a Fy(Sorig)793 b Fz(Lord)32 b(of)g(Storms)p 3630 3395 V 361 3398 3271 4 v 361 3398 V 360 3519 4 121 v 411 3483 a(Enem)m(y)h(cult:)529 b(NONE)p 3630 3519 V 360 3639 V 411 3603 a(Aligned)31 b(race\(s\):)371 b(Air)31 b(elemen)m(tal)p 3630 3639 V 360 3760 V 411 3723 a(Enem)m(y)i(race\(s\):)405 b(None)p 3630 3760 V 360 3880 V 411 3844 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(Electricit)m(y)p 3630 3880 V 360 4000 V 411 3964 a(A)m(ttuned:)667 b(Electricit)m(y)-8 b(,)31 b(Missiles,)h(W)-8 b(ounding)p 3630 4000 V 360 4121 V 411 4085 a(Rep)s(elled:)650 b(Restoration)p 3630 4121 V 360 4241 V 411 4205 a(Denied:)722 b(Protection,)32 b(T)-8 b(urning)p 3630 4241 V 361 4244 3271 4 v 361 4244 V 361 4489 V 361 4489 V 360 4609 4 121 v 411 4573 a Fy(Ruggilli)659 b Fz(Chaos)33 b(Go)s(d)e(of)h(slaugh)m(ter)h(and)g(terror)p 3630 4609 V 361 4612 3271 4 v 361 4612 V 360 4733 4 121 v 411 4696 a(Enem)m(y)g(cult:)529 b(Ixalo)m(vh)p 3630 4733 V 360 4853 V 411 4817 a(Aligned)31 b(race\(s\):)371 b(Consuming)31 b(\034re)i(creatures)p 3630 4853 V 360 4973 V 411 4937 a(Enem)m(y)g(race\(s\):)405 b(Chaotic)32 b(w)m(ater)h(creatures)p 3630 4973 V 360 5094 V 411 5058 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(Ph)m(ysical,)32 b(\034re)p 3630 5094 V 360 5214 V 411 5178 a(A)m(ttuned:)667 b(Fire,)31 b(W)-8 b(ounding)p 3630 5214 V 360 5335 V 411 5298 a(Rep)s(elled:)650 b(F)-8 b(rost,)32 b(Restoration,)f (Creation)p 3630 5335 V 360 5455 V 411 5419 a(Denied:)722 b(T)-8 b(urning)p 3630 5455 V 360 5575 V 411 5539 a(A)m(dded)34 b(gifts/limits:)p 3630 5575 V 360 5696 V 1456 5660 a(no)e(armour)f(ma)m (y)i(b)s(e)f(w)m(orn)p 3630 5696 V 360 5816 V 1456 5780 a(re\035ect)h(missiles)p 3630 5816 V 1948 6057 a(44)p eop end %%Page: 45 49 TeXDict begin 45 48 bop 360 369 4 121 v 1456 333 a Fz(hp)32 b(regenerate)i(at)e(1)p 3630 369 V 360 489 V 1456 453 a(digestion)f(is)h(slo)m(w)m(ed)h(\(-1\))p 3630 489 V 361 493 3271 4 v 361 493 V 361 737 V 361 737 V 360 857 4 121 v 411 821 a Fy(Ixalo)m(vh)684 b Fz(Chaos)33 b(Go)s(ddess)g(of)f (man)m(y)g(ten)m(tacles)p 3630 857 V 361 860 3271 4 v 361 860 V 360 981 4 121 v 411 945 a(Enem)m(y)h(cult:)529 b(Ruggilli)p 3630 981 V 360 1101 V 411 1065 a(Aligned)31 b(race\(s\):)371 b(Chaotic)32 b(w)m(ater)h(creatures)p 3630 1101 V 360 1222 V 411 1185 a(Enem)m(y)g(race\(s\):)405 b(Consuming)31 b(\034re)i(creatures)p 3630 1222 V 360 1342 V 411 1306 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(Ph)m(ysical,)32 b(cold)p 3630 1342 V 360 1462 V 411 1426 a(A)m(ttuned:)667 b(F)-8 b(rost,)32 b(T)-8 b(ransm)m(utation)p 3630 1462 V 360 1583 V 411 1547 a(Rep)s(elled:)650 b(Fire,)31 b(Detonation)p 3630 1583 V 360 1703 V 411 1667 a(Denied:)722 b(T)-8 b(urning)p 3630 1703 V 361 1706 3271 4 v 361 1706 V 361 1951 V 361 1951 V 360 2071 4 121 v 411 2035 a Fy(Gaea)798 b Fz(Go)s(ddess)33 b(of)f(p)s(eace)p 3630 2071 V 361 2074 3271 4 v 361 2074 V 360 2195 4 121 v 411 2159 a(Enem)m(y)h(cult:) 529 b(Dev)m(ourers)p 3630 2195 V 360 2315 V 411 2279 a(Aligned)31 b(race\(s\):)371 b(Animal,Bird,Slime,)p 3630 2315 V 360 2435 V 1456 2399 a(Insect,Reptile,W)-8 b(ater)32 b(elemen)m(tal,)p 3630 2435 V 360 2556 V 1456 2520 a(Earth)g(elemen)m(tal,Air)f(elemen)m(tal,Fire)f(elemen)m(tal)p 3630 2556 V 360 2676 V 411 2640 a(Enem)m(y)j(race\(s\):)405 b(Undead,Unnatural)p 3630 2676 V 360 2797 V 411 2760 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(F)-8 b(ear)p 3630 2797 V 360 2917 V 411 2881 a(A)m(ttuned:)667 b(Protection,)32 b(Summoning)p 3630 2917 V 360 3037 V 411 3001 a(Denied:)722 b(W)-8 b(ounding,)32 b(Death)p 3630 3037 V 360 3158 V 411 3122 a(A)m(dded)i(gifts/limits:)p 3630 3158 V 360 3278 V 1456 3242 a(w)m(eap)s(on)f(use)g(is)f(forbidden)p 3630 3278 V 360 3398 V 1456 3362 a(hp)g(regenerate)i(at)e(2)p 3630 3398 V 360 3519 V 1456 3483 a(grace)g(regenerates)i(at)e(3)p 3630 3519 V 361 3522 3271 4 v 361 3522 V 361 3766 V 361 3766 V 360 3887 4 121 v 411 3850 a Fy(V)-9 b(alkyrie)636 b Fz(The)33 b(Bra)m(v)m(e)p 3630 3887 V 361 3890 3271 4 v 361 3890 V 360 4010 4 121 v 411 3974 a(Enem)m(y)g(cult:)529 b(NONE)p 3630 4010 V 360 4131 V 411 4095 a(Aligned)31 b(race\(s\):)371 b(Human,T)-8 b(roll)p 3630 4131 V 360 4251 V 411 4215 a(Enem)m(y)33 b(race\(s\):)405 b (Unnatural,Angel,Demon,)p 3630 4251 V 360 4371 V 1456 4335 a(Undead)p 3630 4371 V 360 4492 V 411 4456 a(A)m(ttac)m(kt)m(yp)s (e\(s\):)432 b(Ph)m(ysical,)32 b(w)m(eap)s(onmagic)p 3630 4492 V 360 4612 V 411 4576 a(Denied:)722 b(Protection,)32 b(Fire,)f(F)-8 b(rost,)p 3630 4612 V 360 4733 V 1456 4696 a(Electricit)m(y)g(,)31 b(Missiles,)h(Self,)p 3630 4733 V 360 4853 V 1456 4817 a(Summoning,)e(Ab)5 b(juration,)32 b(Restoration,)p 3630 4853 V 360 4973 V 1456 4937 a(Detonation,)g (Mind,)g(Creation,)p 3630 4973 V 360 5094 V 1456 5058 a(T)-8 b(elep)s(ortation,)30 b(Information,)h(T)-8 b(ransm)m(utation,)p 3630 5094 V 360 5214 V 1456 5178 a(T)g(ransferrence,)34 b(T)-8 b(urning,)32 b(W)-8 b(ounding,)p 3630 5214 V 360 5335 V 1456 5298 a(Death,)33 b(Ligh)m(t)p 3630 5335 V 360 5455 V 411 5419 a(A)m(dded)h(gifts/limits:)p 3630 5455 V 360 5575 V 1456 5539 a(sp)f(regenerate)g(at)f(-5)p 3630 5575 V 361 5579 3271 4 v 361 5579 V 1948 6057 a(45)p eop end %%Page: 46 50 TeXDict begin 46 49 bop 361 372 3271 4 v 361 372 V 360 493 4 121 v 411 457 a Fy(Mostrai)663 b Fz(Dw)m(arv)m(en)34 b(deit)m(y)f(of)f(metal)f(smithing)g(and)h(w)m(arcraft)p 3630 493 V 361 496 3271 4 v 361 496 V 360 616 4 121 v 411 580 a(Enem)m(y)h(cult:)529 b(Gnarg)p 3630 616 V 360 737 V 411 701 a(Aligned)31 b(race\(s\):)371 b(Dw)m(arf)p 3630 737 V 360 857 V 411 821 a(Enem)m(y)33 b(race\(s\):)405 b(Goblin,Gian)m(t)p 3630 857 V 360 978 V 411 941 a(A)m(ttac)m(kt)m(yp)s (e\(s\):)432 b(W)-8 b(eap)s(onmagic)p 3630 978 V 360 1098 V 411 1062 a(A)m(ttuned:)667 b(Creation,)32 b(T)-8 b(ransm)m(utation)p 3630 1098 V 360 1218 V 411 1182 a(Rep)s(elled:)650 b(Summoning)p 3630 1218 V 361 1222 3271 4 v 361 1222 V 361 1466 V 361 1466 V 360 1586 4 121 v 411 1550 a Fy(Lythander)538 b Fz(Elv)m(en)33 b(go)s(d)f(of)g(luc)m(k)p 3630 1586 V 361 1589 3271 4 v 361 1589 V 360 1710 4 121 v 411 1674 a(Enem)m(y)h(cult:)529 b(Gnarg)p 3630 1710 V 360 1830 V 411 1794 a(Aligned)31 b(race\(s\):)371 b(F)-8 b(aerie)p 3630 1830 V 360 1951 V 411 1914 a(Enem)m(y)33 b(race\(s\):)405 b(Goblin,T)-8 b(roll)p 3630 1951 V 360 2071 V 411 2035 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(Confusion,)32 b(slo)m(w)p 3630 2071 V 360 2191 V 411 2155 a(A)m(ttuned:)667 b(Missiles,)32 b(T)-8 b(urning)p 3630 2191 V 360 2312 V 411 2276 a(Denied:)722 b(Detonation)p 3630 2312 V 360 2432 V 411 2396 a(A)m(dded)34 b(gifts/limits:)p 3630 2432 V 360 2552 V 1456 2516 a(is)e(stealth)m(y)p 3630 2552 V 360 2673 V 1456 2637 a(sp)h(regenerate)g(at)f(1)p 3630 2673 V 360 2793 V 1456 2757 a(luc)m(k)g(is)h(2)p 3630 2793 V 361 2797 3271 4 v 361 2797 V 361 3041 V 361 3041 V 360 3161 4 121 v 411 3125 a Fy(Gnarg)739 b Fz(F)-8 b(ather)32 b(of)g(goblins)p 3630 3161 V 361 3164 3271 4 v 361 3164 V 360 3285 4 121 v 411 3249 a(Enem)m(y)h(cult:)529 b(Lythander)p 3630 3285 V 360 3405 V 411 3369 a(Aligned)31 b(race\(s\):)371 b(Goblin,Gian)m(t,T)-8 b(roll)p 3630 3405 V 360 3525 V 411 3489 a(Enem)m(y)33 b(race\(s\):)405 b(F)-8 b(aerie,Dw)m(arf)p 3630 3525 V 360 3646 V 411 3610 a(A)m(ttac)m(kt)m(yp)s(e\(s\):)432 b(P)m(oison)p 3630 3646 V 360 3766 V 411 3730 a(A)m(ttuned:)667 b(Missiles,)32 b(W)-8 b(ounding)p 3630 3766 V 360 3887 V 411 3850 a(Rep)s(elled:)650 b(Protection,)32 b(T)-8 b(urning)p 3630 3887 V 360 4007 V 411 3971 a(A)m(dded)34 b(gifts/limits:)p 3630 4007 V 360 4248 4 241 v 1456 4091 a(08/02/09)26 b(15:59:10)h([Debug])i (Clean)m(up)g(called.)41 b(freeing)1456 4212 y(data.)p 3630 4248 V 360 4368 4 121 v 1456 4332 a(08/02/09)30 b(15:59:10)h([Info])i(Cleaning)e(up...)p 3630 4368 V 361 4371 3271 4 v 361 4371 V 1948 6057 a(46)p eop end %%Page: 47 51 TeXDict begin 47 50 bop 1834 484 a FA(Index)1948 6057 y Fz(47)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF crossfire-1.70.0/doc/experience0000644000014500000120000003274211731300542013325 00000000000000Obsolete file kept for historical reasons. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& A New EXPERIENCE/SKILLS system for CF &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& This patch represents a "developer's" version of the exp/skills system. While I have now achieved all of the objectives in sections "B" and "C" of the coding proposal (see README.PROPOSAL) and have play-tested as much of the code as possible, I am sure some big bugs must remain. (One for sure is that exp gained when using rod/horn/wand is wrong.) Below this section I outline 1) coding philosophy, 2) gross description of how the code impinges/interacts within older code. 3) designer's notes on the changes to the code. Comments on any area of this coding would be appreciated. Personally, I would like to see the Pow stat and a 2-type system of magic come into being. After all of you check out the code, I would like to discuss enhancements/bug fixes/implementation. For instance, is it too hard to figure out how to use the code! Sometime tomorrow exp2.tar.gz will be available in pub/thomas on ftp.astro.psu.edu. b.t. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& CODE PHILOSOPHY - &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& To move CF over to a new skills-based experience system. In this implementation several kinds of experience will exist. Players will gain experience in each kind of experience (or category) based on their actions in the game. The sum of all the various categories of experience equals the player "score", from which dam, wc, and hp are determined. All experience gaining actions will be through the use of certain skills -- so called "associated skills". Associated skills are each related to 1 kind of experience. Thus, for example, "stealing" is a skill associated with "agility" experience. There exists also "miscellaneous" skills which allow the use of a unique skill, but which are not related to any kind of experience and whose use does not generate experience points. In this implementation, skills and objects are both treated as objects in the inventory of the user. Experience "objects" each represent one kind of experience and are always invisible. Skills objects each represent one kind of skill available in the game. Skills objects may either be invisible or have an associated bitmap (in which case they are "tools"). All experience gaining actions will be through the use of certain skills -- called "associated skills". Associated skills are each related to 1 kind of experience. Thus, for example, "stealing" is a skill associated with "agility" experience. Both Players and NPC's may only use skills which are in their inventories. NPC's do not use experience objects. A breakdown of the properties of skills and exp objects objects is as follows: Object Property NPC use? ------ ----------------------------------- ------- Experience Each represents a different kind of NO experience in the game. The object in the player inventory keeps track of player experience in that category. Always is invisible. Skill- Represents a skill the player may YES associated perform. May be either invisible or visible as a "tool". Successful use of this skill generates experience. Experience is allocated to appropriate experience object. Skill- Same as above, *but* this skill is not YES miscell. related to any experience category, and use of this skill generates *no* experience. Linking of associated skills to experience categories is done during initialization of the code (in init()) based on the shared stats of both. How skills and experience categories are named and linked may be changed by editing the skills/experience object archetypes. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& CODE STRUCTURE and IMPLEMENTATION - &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& The most important thing is that I moved most of the code into the server/skills.c and server/skill_util.c files. The skills code is loosely implemented along the lines of the spell code. This is to say that: 1. skills use (do_skill) is called from fire(). 2. there is a skills[] table similar to spells[]. 3. server files skills.c and skill_util.c parallel spell_effect.c and spell_util.c in respective functionallity. Particular notes about the implementation are outlined below. Defines ------- #define MAX_EXP_CAT maximum number of exp categories. Must be >= number in the game. Always include the "NULL" exp object - EXP_NONE. #define EXP_NONE (MAX_EXP_CAT - 1) #define NROFSKILLS Equal to the number of elements in the skills[] array. See skillist.h for more info. #define MAX_EXP_IN_OBJ (MAX_EXPERIENCE/MAX_EXP_CAT) the maximum experience that an experience object may have. See fuller description in common/living.c Dump switch ----------- How the experience and skills archetypes are configured in any CF session can be seen by using the "-m5" flag. You must have DUMP_SWITCHES defined. Global parameters ----------------- Unfortunately, I had to make use of several global parameters. These are: exp_cat[] - the default experience objects nrofexpcat - number of exp categories in the current session. New Flags used by the code -------------------------- FLAG_IS_WOODED -- needed by the woodsman skill. Should be set on all "wooded" terrain (eg woods2, swamp, etc.) FLAG_IS_HILLY -- needed by the mountaineer skill. Should be set on all "mountainous" terrain. FLAG_READY_WEAPON -- Code needs this for both players and monsters, and its use differs for each. FLAG_READY_SKILL -- Code needs this for both players and monsters, and its use differs for each. New structures -------------- A couple of changes to the object structure where made: (following excerpt taken from structs.h) /* These are used by the skills code */ struct obj *chosen_skill; /* the skill chosen to use */ struct obj *exp_obj; /* the exp. obj (category) assoc. w/ this object */ uint32 hide; /* The object is hidden, not invisible */ And the 'skill' structure used by the skills[] table is: typedef struct skill_struct { char *name; /* how to describe it to the player */ short category; /* the experience category to which this skill belongs */ long time; /* How many ticks it takes to use the skill */ long bexp; /* base exp gain for this skill */ float lexp; /* level multiplier of exp gain for using this skill */ short stat1; /* primary stat effecting use of this skill */ short stat2; /* secondary stat for this skill */ short stat3; /* tertiary stat for this skill */ } skill; Interaction of the skills patch with older code ----------------------------------------------- Interaction of the skills "patch" with older code is minimized. below is an outline of how skills/exp code impinges on older CF code (did I miss anything here??)): -- in apply() and apply_special() changes were made to allow the use of skill "tools" and to better handle the readying of combat weapons (swords, bows, etc). -- in hit_player() changes made to allow skills control attacking. -- cosmetic changes (as in c_object.c to make pick_up() routine monster friendly) Changes in c_wiz.c, input.c fall into this category. -- new commands are inserted into the code 'skills' and 'use_skills'. -- In init() init_new_exp_system() is called. Linking of exp objects/skills is done here. -- add_exp() was rewritten to accommodate changes needed. new add_exp() is called from all same locations as before, plus it is called by do_skill(). See calc_skill_exp() in skills_util.c for details of how experience is calculated in skill use. -- fix_player() changed to allow skills to affect player/monster status. -- skill_attack() is called by hit_player(). -- do_skill() is called from fire(). This is the core routine for the use of skills. Only other way to use skills is by player undertaking an action requiring a skill (a "key" skill). These are currently: (unimplemented skills in parenthesis) action skill(s) auto-readied Notes ------ --------------------- ---------------------- combat - hand_weapons, Occurs when player: missile_weapons. 1. readies a weapon 2. runs into opponent *and* has ready weapon wand/rod/horn- use magic item Occurs when player zaps approprite item. magic use - spellcasting, Occurs when player (praying) attempts to cast a spell of appropriate nature rod/horn/wand - (magic item use) Occurs when player use uses wand/rod/horn. In all of these cases, skills are used merely as "keys" needed by the player in order to perform an action. For example, if a player doesn't have "spellcasting", they are unable to cast spells. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& DESIGNER'S NOTES - more nitty gritty &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& I have just taken the objectives from the crossfire proposal I made earlier. Each is discussed one-by-one: > Part B - Multiple experience categories > -------- > B1 - Multiple categories in which a player may gain experience. Experience objects owned by the player are not directly viewed. The "skills" command does give some information. > B3 - Each experience category will have an associated stat(s)- There must exist an experience category with Str and Int set. Otherwise, no wc, or sp will be gained after 1st level. Multiple Str, Int experience objects could exist, but will only accelerate player wc, sp gains. > B4 - Wc, hp and dam will become related to the appropriate Right now hp are related to the player "score" which is the total of all player experience. > Part C - Skills > -------- > C1 - Two kinds of skills will be available: "associated" skills Implemented. Seems to work well. > C2 - Skills will be objects in the character inventory. These Implemented. Seems to work well. > C3 - experience will be now only be gained through the use of > skills associated to one of the categories of experience. Implemented. Seems to work well. > C4 - Both NPC and players will be able to use skills. Implemented. Seems to work well. > C5 - Players will be able to learn skills by reading scrolls of Fixed a minor bug in this. General background note on why experience objects change stats from Brian Thomas, Aug 20, 1997: Nope. Stats are used by experience objects to 'tag' the category of experience, ie "physique" exp objects have Str 1 "wisdom" exp object have Wis 1 There shouldnt be an increase in the stat in question. [ now for a bit of explaination, longish...] This setup seems a bit arcane I know..so why this way? Why not hardcode the experience archetypes, eg have type EXP_FIGHTING, EXP_MAGIC, and so on? Well... at the time I did this, there was some debate about what experience system was the best, as some ppl wanted to have only 4 instead of 6 categories, and so on .. (*sigh*). In the attempt to make the experience system as flexible as possible, I coded the experience 'categories' to be defined by the archetypes and using various stats to differentiate them. Properities of the experience categories are set by the stat(s) they have defined. To my knowledge the stats have the following properties: str --> gains experience, from fighting con --> controls hp progression somewhat (if a define in living.c is set). dex --> gains exp from agility skills wis --> gains exp from priest skills, effects grace calculation int --> gain exp from mental skills cha --> gain exp from personality skills pow --> gain exp from wizard skills, effects mana calc. So, If you didnt like the current 6 experience catagories and wanted only 3 for your server, say "fighting" "presense" and "holyness" you could remove all of the old experience archetypes and define the following new ones: Name Properties Explaination fighting Str 1, Con 1, Dex 1 Combines old physique, agility exp presence Pow 1, Cha 1 Combines old magic, personality exp holyness Wis 1 same as old wisdom exp So, every player on this server would only see 3 types of experience to be gained. If you fight or steal something, then experience points go to the "fighting" category. And note, since we DIDNT design an arch with Int 1, there will be NO experience gained for use of mental skills (at least in theory this should be the case. I dont recogmend leaving out a stat, eg you should have a every stat covered between all of your new experience archetypes). Even though I wrote a doc to help explain how to do this, probably nobody but me (or maybe Peter) really is knowledgeable enough (and has the desire) to reconfigure the game experience to suit their individual tastes. This might be some code we could 'simplify' (heh, remove it). crossfire-1.70.0/doc/Makefile.in0000644000014500000120000005641311732537021013326 00000000000000# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile for crossfire 0.95.0 and beyond # # This file will eventually be replaced by a configure script. But for # now, this simple makefile should do the job. # # Copyright (C) 1992 Frank Tore Johansen # Copyright (C) 2001 Mark Wedel # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # The author can be reached via e-mail to mwedel@scruz.net VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = README $(dist_man6_MANS) $(dist_noinst_DATA) \ $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/macros/cf_python.m4 \ $(top_srcdir)/macros/cf_visibility.m4 \ $(top_srcdir)/macros/cf_xslt.m4 $(top_srcdir)/macros/check.m4 \ $(top_srcdir)/macros/libcurl.m4 \ $(top_srcdir)/macros/libtool.m4 \ $(top_srcdir)/macros/ltoptions.m4 \ $(top_srcdir)/macros/ltsugar.m4 \ $(top_srcdir)/macros/ltversion.m4 \ $(top_srcdir)/macros/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/autoconf.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SCRIPTS = $(dist_noinst_SCRIPTS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man6dir = $(mandir)/man6 am__installdirs = "$(DESTDIR)$(man6dir)" NROFF = nroff MANS = $(dist_man6_MANS) DATA = $(dist_noinst_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BASENAME = @BASENAME@ BUNZIP = @BUNZIP@ BZIP = @BZIP@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_CFLAGS = @CHECK_CFLAGS@ CHECK_LIBS = @CHECK_LIBS@ COMPRESS = @COMPRESS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GDLIB_CONFIG = @GDLIB_CONFIG@ GD_LIBS = @GD_LIBS@ GREP = @GREP@ GUNZIP = @GUNZIP@ GZIP = @GZIP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LATEX = @LATEX@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBCURL = @LIBCURL@ LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PLUGIN_PYTHON = @PLUGIN_PYTHON@ PYTHON_LIB = @PYTHON_LIB@ PY_INCLUDES = @PY_INCLUDES@ PY_LIBS = @PY_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SVNVERSION = @SVNVERSION@ TAR = @TAR@ UNCOMPRESS = @UNCOMPRESS@ VERSION = @VERSION@ XSLTENGINE = @XSLTENGINE@ _libcurl_config = @_libcurl_config@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ check_xslt_forcedprogfound = @check_xslt_forcedprogfound@ check_xslt_sablotronfound = @check_xslt_sablotronfound@ check_xslt_xsltprocfound = @check_xslt_xsltprocfound@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfdir = @pkgconfdir@ pkgstatedir = @pkgstatedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = scripts Developers playbook spoiler spell-docs spoiler-html playbook-html dist_noinst_DATA = handbook.ps spoiler.ps dist_noinst_SCRIPTS = include_html.pl dist_man6_MANS = crossfire-server.man crossfire-config.man \ crossloop.web.man crossloop.man EXTRA_DIST = PlayerStats \ README RunTimeCommands SurvivalGuide alchemy.doc \ experience metaserver multigod plugins skills.doc \ spellcasters_guide_to_runes DTOP = $(top_srcdir)/$(PACKAGE)-doc all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man6: $(dist_man6_MANS) @$(NORMAL_INSTALL) test -z "$(man6dir)" || $(MKDIR_P) "$(DESTDIR)$(man6dir)" @list='$(dist_man6_MANS)'; test -n "$(man6dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^6][0-9a-z]*$$,6,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man6dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man6dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man6dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man6dir)" || exit $$?; }; \ done; } uninstall-man6: @$(NORMAL_UNINSTALL) @list='$(dist_man6_MANS)'; test -n "$(man6dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^6][0-9a-z]*$$,6,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man6dir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(man6dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-man install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man6 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local uninstall-man uninstall-man: uninstall-man6 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man6 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-local \ uninstall-man uninstall-man6 spoiler.ps: (cd spoiler; $(MAKE) spoiler) handbook.ps: (cd playbook; $(MAKE) handbook) crosslib.doc: (cd ../common; make doc) # workaround for bug in automake 1.6.2 & 1.6.3 (& probably others) uninstall-local: rm -f $(DESTDIR)$(man6dir)/crossfire.6* rm -f $(DESTDIR)$(man6dir)/crossfire-config.6* archive: spoiler playbook $(mkinstalldirs) $(DTOP) cp $(EXTRA_DIST) $(DTOP) cp spoiler.ps handbook.ps $(DTOP) cp spell-docs/*.txt spell-docs/*.ps $(DTOP) (cd spoiler-html ; make archive ) (cd playbook-html ; make archive ) (cd $(DTOP)/..; gtar --exclude=CVS -cvhzf $(PACKAGE)-$(VERSION).doc.tar.gz `$(BASENAME) $(DTOP)`) $(RM) -rf $(DTOP) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: crossfire-1.70.0/doc/playbook/0000755000014500000120000000000011732537045013156 500000000000000crossfire-1.70.0/doc/playbook/chap7.tex0000644000014500000120000000547511731300535014624 00000000000000 \chapter{Hints on playing \cf} This section amounts to spoilers for the game. If you don't like that kind of information, don't read any further in this chapter! \section{Beginning players}\label{sec:first}\index{beginning players} \noindent{I'm on the starting map, what do I do now?} You should be in a city square with a few sign posts in the middle. Move over the signs and {\tt apply} them ("{\tt A}") to read what they say. For beginners, there are several maps designed for them. Find these areas and clear them out. All throughout these levels, a player can find signs and books which they can read by stepping onto them and hitting '{\tt A}' to apply the book/sign. These messages will help the player to learn the system. Probably the first, best area for a beginning player to start out in is ``Beginners''. This area is a small house located south-west of your starting location. \subsubsection{Flailing about with spells} Some items are perishable. If you shoot a fireball into a room full of scrolls, you will notice them going up in smoke! So be careful not to destroy valuable items. \subsubsection{Tips on surviving} \cf\ is populated with a wealth of different monsters. These monsters can have varying immunities and attacktypes. In addition, some of them can be quite a bit smarter than others. It will be important for new players to learn the abilities of different monsters and learn just how much it will take to kill them. Most monsters in the game are out to mindlessly kill and destroy the players. Killing monsters will help boost a player's score. When fighting a large amount of monsters in a single room, attempt to find a narrower hallway so that you are not being attacked from all sides. Charging into a room full of Beholders would not be wise, instead, open the door and fight them one at a time. \section{Priorities for low-level characters}\label{sec:low} The priority for characters below about 5th level is to gain some basic items. In this regard, better armour and better spells are best. Look for a quest among the various islands that will allow you to obtain mithril mail. Whenever you scrape together $\sim$100$-$200 platinum pieces go shopping for armour and weapons (or spells). If you are a fighter type, try to have at least a +2 weapon, +2 helmet, +2 suit of armour, and +2 shield before you reach 5th level. For wizards, attempt to recover enough treasure to be able to buy up good attack spells. For priests, first thing to do is worship a god! Try to get the {\em holy word} prayer as soon as possible. Make sure your current god allows good potential use of this spell. For all classes, get access to the {\em detect magic} \incantation\ as soon as possible. This will allow you to sort through the treasure you find while you're in the dungeon, and will save you time and money at the shops. crossfire-1.70.0/doc/playbook/local.sty0000644000014500000120000005263111731300535014727 00000000000000% local.sty should give a right format for your thesis. % written by T.Bulik and modified by B. Thomas for the playbook % TEXT DEFINITIONS \def\etal{{\it et al.}} \def\cf{{\sl Crossfire}} \def\playbook{{\sl Crossfire} player's handbook} \def\spoiler{{\sl Crossfire} {\bf spoiler}} \def\divinemagic{divine magic} \def\wizardry{wizardry} \def\incantation{incantation} % this is the case a/an for 'incantation' def \def\ina{n} % using this caus Klaus yelled at me ;) \def\emdash{{\em $-$}} % here are some names \def\angband{{\sl Angband}} \def\ragnarok{{\sl Ragnarok}} \def\gauntlet{{\sl Gauntlet (TM)}} \def\rogue{{\sl Rogue}} \def\hack{{\sl NetHack}} \def\moria{{\sl Moria}} \def\sngc#1{\multicolumn{1}{c}{#1}} \def\snglc#1{\multicolumn{1}{|c}{#1}} \def\sngLc#1{\multicolumn{1}{|c|}{#1}} \def\tplc#1{\multicolumn{3}{c|}{#1}} % Define the command \mychapter{}{}. % is the text to put in the chapter head if there is a % chapter number; , if not. \def\@chapapp{Chapter} \def\chapapp{\@chapapp} \def\mychapter#1#2{ \def\@chaphead##1{#1} \def\@schaphead##1{#2} } \def\@makechapterhead#1{ \vspace*{\chaptopsep} { \parindent 0pt \raggedright \ifnum \c@secnumdepth >\m@ne \@chaphead{#1} \else \@schaphead{#1} \fi \par \nobreak \vskip \chapaftersep } } \def\@makeschapterhead#1{ \vspace*{\chaptopsep} { \parindent 0pt \raggedright \@schaphead{#1}\par \nobreak \vskip \chapaftersep } } % \chaptopsep is the space between the top of the text page and the % chapter head. \chapaftersep is the space between the chapter % head and the text. \newlength{\chaptopsep} \setlength{\chaptopsep}{.1in} \newlength{\chapaftersep} \setlength{\chapaftersep}{.5in} % Default chapter headings. % \mychapter{\LARGE \sc \thechapter. #1}{\LARGE \sc #1} % \mychapter{\LARGE \sc . #1}{\LARGE \sc #1} % % This defines the chapter headings as required by you know who. % % \mychapter{\large\bf \begin{center} \chapapp\ \thechapter \end{center} % \mychapter{\large\bf \thechapter . #1 $-$ } \mychapter{\large\bf Chapter \thechapter . #1 } {\large\bf \begin{center} #1 \end{center}} % Define the command \mysection{}{